Qsys介绍

文章目录

  • 前言
  • 一、为什么需要Qsys
    • 1、简化了系统的设计流程
    • 2、Qsys涉及的技术
  • 二、Qsys真身
    • 1、一种系统集成工具
    • 2、何为Nios II
      • 1、内核架构
      • 2、Nios II选型
  • 三、Qsys设计涉及到的软件&工具
  • 四、总结
  • 五、参考资料


前言

Qsys是Altera下的一个系统集成工具,可用于搭建复杂的嵌入式系统,搭建复杂的嵌入式系统,搭建完成的系统可以作为后续软件开发的硬件基础。并且可以通过Qsys来调用官方的IP核进行加速,也可以自己设计自己的IP核来制作符合需求的硬件系统。


一、为什么需要Qsys

1、简化了系统的设计流程

我们在各个领域中所需要的系统都是十分庞大的,包括有主控制器、存储器、数字信号处理模块、以及各种各样的接口协议模块。如果我们纯靠自己采用硬件描述语言去实现这些复杂的系统,工作量非常之大,所以Qsys出现了。

Altera 公司将主控制器、数字信号处理模块、存储器及其控制模块、各种接口协议等模块,通过硬件描述语言实现并封装成 IP 核。用户可以在 Qsys 中直接调用这些 IP 核,从而简化系统设计:
在这里插入图片描述

2、Qsys涉及的技术

  • 可重构 SoC(System on Chip,片上系统)的设计技术:

可以增减构成系统的IP核或修改已有IP核的参数。
优点:
1、简化设计
2、降低硬件电路尺寸
3、缩短产品研发周期
4、节约系统开发成本、可以根据不同项目设计出不同的SOPC。

  • SOPC (System On a Programmable Chip):

也就是可编程片上系统,它采用可编程逻辑技术(这里指的就是 FPGA)把整个系统集成到一个硅芯片上。在 Qsys 的帮助下,我们可能只需要点击几下鼠标,写几十行代码就可以实现一个 SOPC 系统

  • SOPC 与SOC有什么不同?

System-on-a-chip (SOC)是一种集成了处理器核心、存储器、周边接口等多个功能于一个芯片上的设计方案。而System-on-a-programmable-chip (SOPC) 则是基于可编程逻辑器件 (FPGA) 连接微处理器核心和其他外设来实现类似 SOC 的系统。SOC 是对于这种“一芯片式解决所有问题”的叫法,一般指定制的单个 IC,而SOPC则是通过现场可编程技术(FPGA)进行可灵活配置组合的“单芯片系统”。因此,SOPC 是具有更高灵活性和可重构性、适用于高度定制化的应用,而 SOC 更适合高性能、低功耗、成本控制要求较严格的应用场景。

二、Qsys真身

Qsys 的前身是―SOPC Builder‖,在最新的 Quartus 版本中,Qsys 再次被升级为―Platform Designer‖。因此在我们看到―Platform Designer‖时,要知道它实际上就是我们所常用的 Qsys。

1、一种系统集成工具

它主要是用于搭建、开发、以及维护系统的平台,这个系统通常指的是Nios II处理器为核心的嵌入式系统,也可以是除了它之外的系统。在嵌入式开发中,一般需要具备硬件环境和软件程序,Qsys就是用于创建硬件环境的,相对于ARM、单片机等处理器,其可以根据自己的需求来搭建硬件环境,这也是它的独到和创新之处。下面是基本的Qsys系统框图:
在这里插入图片描述

Qsys搭建的基本的嵌入式系统包含系统时钟、 Nios II处理器、JTAG接口、ROM和RAM等。其中,Nios处理器是Qsys系统中最为核心的一个IP核,它是系统的调控中心,负责中端分配、地址管理、内存调度等控制任务。而GPIO、SDRAM等外设控制器负责与外部设备连接,控制外设的行为。外设控制器与Nios II则是通过Avalon总线进行通信,最近也在学习,但是只有英文版的,看起来比较痛苦,后面估计会写一篇总结。

2、何为Nios II

应用于 Intel FPGA 的嵌入式软核处理器,它是 Qsys 嵌入式系统的核心部件,具有较强的性能和可定制特性。我们可以在一片 FPGA 内部构建多个 Nios II 处理器,它们可以作为主 CPU,也可以是协处理器,在同一芯片内部协调有序地完成整个复杂系统的各项功能。(感觉有点熟悉,与RTOS类似?)

1、内核架构

Nios II 处理器内核是 32 位 RISC 架构(精简指令集架构)处理器,它包含了大多数现代 32 位处理器中常见的基本架构元素:

1、32位指令大小
2、32位数据线与地址线
3、32个通用寄存器
4、32个外部中断源
5、可配置的指令高速缓存
6、可配置的数据高速缓存
7、用于集成定制外设的通用接口

在这里插入图片描述

2、Nios II选型

Nios II是我们的一个软核处理器,我们在Qsys开发有三种型号供我们选择。

  • Nios II/e(经济型):

占用资源最少、但运行速度最慢,适合不追求速度、资源少的器件进行选择。

  • Nios II/s(标准型):

Nios II/s 内核的资源占用率和运行速度处于 Nios II/e 和 Nios II/f 这两种内核之间。

  • Nios II/f(快速型):

占用资源最多、但运行速度最快,适合追求速度、资源多的器件进行选择。

在设计当中我们需要根据逻辑资源占用情况和对处理速度的要求来选择合适的 Nios II 内核,具体情况具体分析就对了。

三、Qsys设计涉及到的软件&工具

在Qsys设计中、包含有硬件开发、软件开发这两部分,需要用到Quartus II、Qsys、Nios II SBT for Eclipse等软件和工具。

  • 硬件电路:
    首先,我们创建的Quartus II 工程为开发 Nios II工程提供了一个平台。然后我们使用集成工具 Qsys 搭建一个用户定制的 SOPC 系统,系统可以包含 Nios II 处理器和其它的一些外设模块(IP 核)。这些模块可以是 Intel 官方提供的 IP 核、第三方提供的 IP 核或者用户自己定制的 IP核。紧接着将 SOPC 系统在 Quartus II 工程中集成到顶层模块,并将其与使用 verilog 语言设计实现的逻辑电路连接起来;最后将整个设计映射到 FPGA 芯片中,得到后面将会用到的硬件电路。
  • 软件部分的实现:
    软件部分的主角则是Nios II SBT for Eclipse,所有软件部分的开发都是在 Nios II SBT for Eclipse 工具中完成,包括编写、编译和调试程序。调试完成的程序由 Nios
    II SBT for Eclipse 生成可执行文件(后缀名为.elf 的文件),然后将其下载到目标系统(前面所完成的硬件电路)中运行。

四、总结

这里只是简单的介绍了下Qsys的概念,架构等,具体的操作还得后面的实操。因为学其他的乏味了,换换口味尝试一下。

五、参考资料

什么是SOPC 与SOC有什么不同?
以上资料均来自正点原子的教学视频或开拓者2开发教程:原子官方

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/74211.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用tinyxml解析和修改XML文件

首先要清楚XML文件包含哪些元素&#xff1a; 他是由元素、文本或者两者混合物组成。元素可以拥有属性&#xff0c;元素是指从开始标签到结束标签的部分。 <?xml version"1.0" encoding"UTF-8" ?> <books><book id"1001">&…

新一代开源流数据湖平台Apache Paimon入门实操-上

文章目录 概述定义核心功能适用场景架构原理总体架构统一存储基本概念文件布局 部署环境准备环境部署 实战Catalog文件系统Hive Catalog 创建表创建Catalog管理表查询创建表&#xff08;CTAS&#xff09;创建外部表创建临时表 修改表修改表修改列修改水印 概述 定义 Apache Pa…

Nginx安装和Nginx配置虚拟主机

Nginx安装 源码包获取地址&#xff1a;http://nginx.org/download/ RPM包获取地址&#xff1a;http://nginx.org/packages/centos/7Server/x86_64/RPMS/ RPM安装 这里选择的RPM包是 nginx-1.22.0-1.el7.ngx.x86_64.rpm [rootlocalhost ~]# yum install nginx-1.22.0-1.el7.…

快速排序——“数据结构与算法”

各位CSDN的uu们好呀&#xff0c;今天又是小雅兰的数据结构与算法专栏啦&#xff0c;下面&#xff0c;就让我们进入快速排序的世界吧&#xff01;&#xff01;&#xff01; 快速排序 快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法&#xff0c;其基本思想为&…

【C语言学习】数据类型转换

一、自动类型转换 1.当运算符两边的数据类型不同时&#xff0c;C语言会帮我们将其转换为较大的类型。即将数据转换成表达范围更大的类型。 将前一种类型转换为后一种类型 char --> short --> int --> long --> long long int --> float --> double2.对于…

C/C++的5大内存分区

1、堆区&#xff08;heap&#xff09;——由程序员分配和释放&#xff0c; 若程序员不释放&#xff0c;程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事 2、栈区&#xff08;stack&#xff09;——由编译器自动分配释放 &#xff0c;存放函数的参数值&#xff0c;局…

python基础

本篇博客的内容是《python编程从入门到实践》的精简版&#xff0c;主要是书中&#xff08;本人认为的&#xff09;重点精简&#xff0c;以及自己学习的一些理解。 文章目录 更好的阅读体验变量和简单的数据类型变量字符串字符串的几种定义方法字符串拼接 列表简介列表是什么运…

ELK + Fliebeat + Kafka日志系统

参考&#xff1a; ELKFilebeatKafka分布式日志管理平台搭建_51CTO博客_elk 搭建 ELK 日志分析系统概述及部署&#xff08;上&#xff09;-阿里云开发者社区 ELK是三个开源软件的缩写&#xff0c;分别表示&#xff1a;Elasticsearch , Logstash, Kibana , 它们都是开源软件。…

python 数据分析面试题:求分组排第n名的记录数据

近期面试遇到一个面试题&#xff0c;分享给大家。 文中会提供详细的解题思路以及问题延伸 一、面试题 面试题&#xff1a;输出各学科总分第一名的学员姓名、年龄、分数数据&#xff1a; class_a {name: [学员1, 学员2, 学员3, 学员4,学员5],age: [23, 24, 26, 27,25],course…

05|Oracle学习(UNIQUE约束)

1. UNIQUE约束介绍 也叫&#xff1a;唯一键约束&#xff0c;用于限定数据表中字段值的唯一性。 1.1 UNIQUE和primary key区别&#xff1a; 主键/联合主键每张表中只有一个。UNIQUE约束可以在一张表中&#xff0c;多个字段中存在。例如&#xff1a;学生的电话、身份证号都是…

AB 压力测试

服务器配置 阿里云Ubuntu 64位 CPU1 核 内存2 GB 公网带宽1 Mbps ab -c100 -n1000 http://127.0.0.1:9501/ -n&#xff1a;在测试会话中所执行的请求个数。默认时&#xff0c;仅执行一个请求。 -c&#xff1a;一次产生的请求个数。默认是一次一个。 ab -c 100 -n 200 ht…

PHP从入门到精通—PHP开发入门-PHP概述、PHP开发环境搭建、PHP开发环境搭建、第一个PHP程序、PHP开发流程

每开始学习一门语言&#xff0c;都要了解这门语言和进行开发环境的搭建。同样&#xff0c;学生开始PHP学习之前&#xff0c;首先要了解这门语言的历史、语言优势等内容以及了解开发环境的搭建。 PHP概述 认识PHP PHP最初是由Rasmus Lerdorf于1994年为了维护个人网页而编写的一…

无涯教程-Lua - 函数声明

函数是一起执行任务的一组语句&#xff0c;您可以将代码分成单独的函数。 Lua语言提供了程序可以调用的许多内置方法。如方法 print()打印在控制台中作为输入传递的参数。 定义函数 Lua编程语言中方法定义的一般形式如下- optional_function_scope function function_name(…

什么?你还没有用过JPA Buddy,那么你工作肯定没5年

1. 概述 JPA Buddy是一个广泛使用的IntelliJ IDEA插件&#xff0c;面向使用JPA数据模型和相关技术&#xff08;如Spring DataJPA&#xff0c;DB版本控制工具&#xff08;Flyway&#xff0c;Liquibase&#xff09;&#xff0c;MapStruct等&#xff09;的新手和有经验的开发人员…

【论文阅读】通过解缠绕表示学习提升领域泛化能力用于主题感知的作文评分

摘要 本文工作聚焦于从领域泛化的视角提升AES模型的泛化能力&#xff0c;在该情况下&#xff0c;目标主题的数据在训练时不能被获得。本文提出了一个主题感知的神经AES模型&#xff08;PANN&#xff09;来抽取用于作文评分的综合的表示&#xff0c;包括主题无关&#xff08;pr…

【MySQL】表的增删查改

文章目录 一、创建表create二、查看表desc三、修改表3.1 修改表名alter3.2 在表中插入数据insert3.3 在表中新增字段alter3.4 修改指定列的属性alter3.5 移除表中的一列alter3.6 修改表中某一列的列名alter 四、删除表drop 一、创建表create mysql> create table if not ex…

Python爬虫教程篇+图形化整理数据(数学建模可用)

一、首先我们先看要求 1.写一个爬虫程序 2、爬取目标网站数据&#xff0c;关键项不能少于5项。 3、存储数据到数据库&#xff0c;可以进行增删改查操作。 4、扩展&#xff1a;将库中数据进行可视化展示。 二、操作步骤&#xff1a; 首先我们根据要求找到一个适合自己的网…

【深度学习】High-Resolution Image Synthesis with Latent Diffusion Models,论文

13 Apr 2022 论文&#xff1a;https://arxiv.org/abs/2112.10752 代码&#xff1a;https://github.com/CompVis/latent-diffusion 文章目录 PS基本概念运作原理 AbstractIntroductionRelated WorkMethodPerceptual Image CompressionLatent Diffusion Models Conditioning Mec…

ERROR 1064 - You have an error in your SQL syntax;

ERROR 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near (/, 少个逗号吧&#xff0c;以前开始写SQL&#xff0c;特别是修改SQL的时候容易出现这样错误。 而且自己也知道在附近…

应用案例|基于高精度3D视觉引导压缩机抓取定位应用

Part.1 行业现状 3D机器视觉是一种新兴的人工智能技术&#xff0c;它在机器视觉和机器学习领域中发挥着重要的作用。在工业领域&#xff0c;3D视觉技术被广泛应用于引导工业机器人进行抓取和定位操作。使用显扬科技的技术可以实现识别和定位压缩机。 Part.2 如何识别和定位压缩…