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.mzph.cn/news/15550.shtml

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

相关文章

APP自动化测试-Python+Appium+Pytest+Allure框架实战封装(详细)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 pytest只是单独的…

JVM入门篇-JVM的概念与学习路线

JVM入门篇-JVM的概念与学习路线 什么是 JVM 定义 Java Virtual Machine - java 程序的运行环境(java 二进制字节码的运行环境) 好处 一次编写,到处运行自动内存管理,垃圾回收功能数组下标越界检查多态 比较 jvm jre jdk 常…

单片机第一季:零基础12——I2C和EEPROM

目录 1,EEPROM 2,I2C 2.1,I2C物理层 2.2,I2C协议层 3,AT24C02介绍 4,代码 1,EEPROM 为什么需要EEPROM? 单片机内部的ROM只能在程序下载时进行擦除和改写,但是…

护眼灯全光谱和减蓝光哪个好?推荐五款好用护眼台灯

如今,面临视力下降的问题越来越重视,护眼灯越来越成为人们日常生活中不可或缺的一部分,特别是在工作和学习中使用电脑、手机等电子设备时间较长的人群中。对于护眼灯来说,全光谱和减蓝光都是其主要功能之一,那么哪一种…

aws中opensearch 日志通(Centralized Logging with OpenSearch)2.0(一)

aws日志通2.0 实现全面的日志管理和分析功能 一体化日志摄取 :把aws服务器日志和应用日志传输到opensearch域中无代码日志处理 :在网页控制台中就可以实现数据处理开箱即用 :提供可视化模版(nginx、HTTP server ) 架构…

使用 CSS 自定义属性

我们常见的网站日夜间模式的变化,其实用到了 css 自定义属性。 CSS 自定义属性(也称为 CSS 变量)是一种在 CSS 中预定义和使用的变量。它们提供了一种简洁和灵活的方式来通过多个 CSS 规则共享相同的值,使得样式更易于维护和修改。…

【LeetCode每日一题】——566.重塑矩阵

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 矩阵 二【题目难度】 简单 三【题目编号】 566.重塑矩阵 四【题目描述】 在 MATLAB 中&…

小红书运营推广方法分享

大家好,我是网媒智星,今天跟大家讨论一下小红书的运营推广方法,总结了七点经验分享给大家。 首先,让我们了解一下什么是热门文案。热门文案可从以下三个方面来定义: 1. 阅读量:如果一篇小红书的阅读量达到上…

【RabbitMQ】golang客户端教程1——HelloWorld

一、介绍 本教程假设RabbitMQ已安装并运行在本机上的标准端口(5672)。如果你使用不同的主机、端口或凭据,则需要调整连接设置。如果你未安装RabbitMQ,可以浏览我上一篇文章Linux系统服务器安装RabbitMQ RabbitMQ是一个消息代理&…

《MySQL 实战 45 讲》课程学习笔记(四)

深入浅出索引 索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。 索引的常见模型 哈希表 哈希表是一种以键 - 值(key-value)存储数据的结构,我们只要输入待查找的值即 key,就可以找到其对应的值即 Val…

docker中涉及的挂载点总结

文章目录 1.场景描述2. 容器信息在主机上位置3. 通过docker run 命令4、通过Dockerfile创建挂载点5、容器共享卷(挂载点)6、最佳实践:数据容器 1.场景描述 在介绍VOLUME指令之前,我们来看下如下场景需求: 1&#xff…

xshell连接liunx服务器身份验证不能选择password

ssh用户身份验证不能选择password 只能用public key的解决办法 问题现象 使用密码通过Workbench或SSH方式(例如PuTTY、Xshell、SecureCRT等)远程登录ECS实例时,遇到服务器禁用了密码登录方式错误. 可能原因 该问题是由于SSH服务对应配置文件/etc/ssh/sshd_config中…

路由器工作原理

路由器原理 路由概述 路由:跨越从源主机到目标主机的一个互联网络来转发数据包的过程。(为数据包选择路径的过程) 作用:路由器是连接不同网段的。 转发依据: 路由表:路径选择全看路由表,根…

蓝桥杯2018省赛全球变暖dfs

全球变暖 问题描述格式输入格式输出样例输入样例输出评测用例规模与约定解析参考程序 问题描述 格式输入 格式输出 输出一个整数 样例输入 样例输出 1 评测用例规模与约定 最大运行时间:1s最大运行内存: 256M 解析 采用dfs的方式进行搜索,首先输入地…

Xshell使用是出现全黑或全白问题

Xshell使用是出现全黑或全白问题,这是我实际遇到的问题如图。 解决方式: 设置字体 解决成功:

整理mongodb文档(一):增

个人公众号 整理mongodb文档(一):增 看前提示 本文主要用到的工具是mongodb的db管理工具-----mongo compass。 本文主要讲的是在上述工具中如何对db的增加的操作,对应转化为mongose里面的语句我想应该不需要我帮忙了吧。。。 选用mongose的理由也很简单&#xf…

一个监控系统的典型架构

监控系统的典型架构图,从左往右看,采集器是负责采集监控数据的,采集到数据之后传输给服务端,通常是直接写入时序库。然后就是对时序库的数据进行分析和可视化,分析部分最典型的就是告警规则判断,即图上的告…

Java阶段五Day14

Java阶段五Day14 文章目录 Java阶段五Day14分布式事务整合demo案例中架构,代码关系发送半消息本地事务完成检查补偿购物车消费 鲁班周边环境调整前端启动介绍启动前端 直接启动的项目gateway(网关)login(登录注册)atta…

网络请求fetch

fetch()是 XMLHttpRequest 的升级版,用于在 JavaScript 脚本里面发出 HTTP 请求。浏览器原生提供这个对象 fetch()的功能与 XMLHttpRequest 基本相同,但有三个主要的差异。 与 Ajax 类似,Fetch 也是前后端通信的一种方式。Fetch 要比 Ajax …

React Flow

// 创建项目 npm create vitelatest my-react-flow-app -- --template react // 安装插件 npm install reactflow npm install antd // 运行项目 npm run dev 1、App.jsx import { useCallback, useState } from react; import ReactFlow, {addEdge,ReactFlowProvider,MiniMap…