FPGA学习笔记之Nios II(一)简单介绍及新建工程及下载

news2024/11/19 16:48:15

系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • Qsys
  • Nios II
  • hello world 实例
    • Platform Design
    • Nios II程序设计


前言

利用Quartus中的Qsys工具,可以实现在FPGA里面跑嵌入式的功能


Qsys

Altera 公司将主控制器、数字信号处理模块、存储器及其控制模块、各种接口协议等模块,通过硬件描述语言实现并封装成 IP 核。 用户可以在 Qsys 中直接调用这些 IP 核,从而节省了自己去Verilog编程的时间。
Qsys可以重构SoC(System on Chip, 片上系统),可以增减构成系统的 IP核或修改已有 IP 核的参数。

SOPC( System On a Programmable Chip, 也就是可编程片上系统)

Qsys 即Platform Designer,用Qsys来创建硬件环境,不同于 ARM、单片机等处理器的固定硬件环境,通常是指以 Nios II 处理器为核心的嵌入式系统。

Nios II

Nios II 是应用于 Intel FPGA 的嵌入式软核处理器,在一片 FPGA 内部构建多个 Nios II 处理器,它们可以作为主CPU,也可以是协处理器,在同一芯片内部协调有序地完成整个复杂系统的各项功能。32 位 RISC 架构(精简指令集架构) 处理器。
在这里插入图片描述
Nios II 处理器为用户提供了 Nios II/e(经济型) 、 Nios II/s(标准型) 、 Nios II/f(快速型) 三种内核,占用FPGA的资源依次增多,但运行速度也依次增强。

hello world 实例

Platform Design

打开设计平台
在这里插入图片描述
在这里插入图片描述
之后在左上角的IP Catalog界面搜索添加Nios II Processor、On-Chip Memory (设置为ROM,10240)、On-Chip Memory (设置为RAM,20480)、JTAG UART、System ID Peripheral。之后更改名字。
在这里插入图片描述
在“Connections”一栏中相应的结点,可以实现连线,连接后各结点处的空心圆会变成实心的点,同时相应的连线由浅灰色变成黑色。

按照这样的连接方式:
在这里插入图片描述
clk IP 核的时钟信号―clk‖和复位信号―clk_reset‖与其余的各个 IP 核都连接起来。

Nios II 处理器 IP 核的数据主端口data_master和指令主端口instruction_master:
数据主端口与所有的外设 IP 核连接
指令主端口只连接存储器 IP 核

Nios II 处理器 IP 核的jtag_debug_module_reset信号:连接起来并在“IRQ”一栏将 jtag_uartIP 核的中断信号与 Nios II 处理器连接起来。

在这里插入图片描述
设置NIOS的IP核,在Vector一栏中,指定复位地址(ResetVector) , 一般我们选择使用非易失性存储器来存储复位代码。复位地址是由所选存储器的基地址和偏移地址“Reset vector offset”共同计算出来的。

在“Exception Vector”一栏我们需要指定存储异常处理代码的存储器, 同时指定异常地址。 一般我们选择读写速度较快的存储器(多数为易失性存储器) 用来存储异常处理代码,异常地址是同样是由所选存储器的基地址和偏移地址“Exception vectoroffset”共同计算出来的,在异常事件发生时,程序从异常地址开始运行。
在这里插入图片描述
然后,我们进入基地址分配阶段。点击菜单栏中的【System】→【Assign Base Addresses】, Qsys 工具会自动为各个 IP 核分配基地址。 之后generate生成就行了。

之后把生成的qip文件添加了项目中:
在这里插入图片描述
Unused Pins, 设置为高阻输入(As inputtri-state)
Dual-Purpose Pins,全部设置为 Use asregular I/O ,这个不太明白是啥意思
在这里插入图片描述
之后就可以调用:(名字忘记改了),然后给他一个设置频率所对应的时钟核复位,编译
在这里插入图片描述
在生成的文件中可以查看verilog例化代码
在这里插入图片描述

Nios II程序设计

Quartus II 软件菜单栏中的【Toos】中的【Nios II SBT for Eclipse】
在这里插入图片描述
单击菜单栏中的【File】→【New】→【Nios II Application and BSP from Template】来新建 Nios II 工程
在这里插入图片描述
在第一栏中,选择我们利用Platform Design生成的.sopcinfo文件,之后CPU name会自动识别,这里可以命名项目核路径,默认会与.sopcinfo生成在一个路径下,生成一个software文件,最下方可以选择项目模板。

next之后,可以看到工具会自动创建板级支持包BSP(Board Support Package)
在这里插入图片描述
在这里插入图片描述
对项目,右键,build project,发现有报错,显示RAM容量不够,但我们分配了20KB的
在这里插入图片描述
右键项目,选择【Nios II】→【BSP Editor】,会出现Nios II BSP Editor界面

勾选:
在这里插入图片描述
取消勾选:
在这里插入图片描述
enable_reduced_device_drivers: BSP 为处理器的外设提供了两个版本的驱动库:一种是执行速度快,但代码量比较大的版本;另一种是封装小的版本 。默认使用的大代码量的,通过选项可以选另一种。

enalbe_small_c_library:完整的 ANSIC 标准库通常不适用于嵌入式系统, BSP 提供了一系列经过裁剪的 ANSI C 标准库,占用资源比较少,我们可以通过【enalbe_small_c_library】选项来选择精简的 ANSI C标准库。

enable_c_plus_plus: 我们使用 C 语言来编写软件程序,因此不需要使能 C++。

enable_clean_exit:当选中该选项时,系统库在主函数 main()返回时会调用 exit()。调用 exit()时,首先会清理 I/O 的缓冲区,然后再调用_exit()。当不选中该选项时,系统库会只调用_exit(),这样将会节省程序空间。对于嵌入式系统程序来说,一般都不会从 main()返回,所以可以不勾选该选项。

之后就可以下载程序了,先下载.sof文件,之后右键工程,然后点击【Run As】→【Nios II Hardware】
在这里插入图片描述
在“Target Connection‖标签页中点击【Refresh Connections】按钮, 这时软件便会自动识别我们开发板上的 Qsys 系统,并显示 Qsys 系统的相关信息。我们接着点击【Apply】→【Run】

在软件下方的Nios II Console中会打印Hello,World信息,说明下载成功
在这里插入图片描述

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

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

相关文章

机器学习圣经PRML作者Bishop推出重磅教材

图1 书籍《Pattern Recognition and Machine Learning》 只要学人工智能的人,必然学机器学习。 只要学机器学习的人,必然看PRML。 PRML为何物? PRML全名《Pattern Recognition and Machine Learning》,一部机器学习领域的内功…

【vue-3】动态属性绑定v-bind

1、文本动态绑定&#xff1a; <input type"text" v-bind:value"web.url"> 简写&#xff1a; <input type"text" :value"web.url"> 2、文字样式动态绑定 <b :class"{textColor:web.fontStatus}">vue学…

linuk shell脚本

1,创建变 只需要变量名变量 值 如果有空格则要用引号 等号两边不能有空格 变量名不能以数字开头 2.输出变量 echo $变量名 3&#xff0c;重复定义变量叠加 前两行没加$导致错误 4&#xff0c;变量的删除 unset 变量名 5&#xff0c;read 变量名 有-p 就会打印引号地内容…

微软文字转语音小工具(Text to speech)网页版

在线文字转语音工具&#xff1a;在线文本转语音 (text-to-speech.cn) 随着科技的迅猛发展&#xff0c;人工智能技术日益成熟&#xff0c;AI配音作为其中的一项重要应用&#xff0c;正在以惊人的速度改变着我们的生活。所谓AI配音&#xff0c;指的是利用人工智能技术模拟人类声音…

使用决策树对金融贷款数据进行分析

使用决策树对金融贷款数据进行分析 在本篇博客中&#xff0c;我们将通过使用 Python、Pandas 和多种机器学习技术&#xff0c;对一组贷款数据进行全面分析。通过详细的步骤展示&#xff0c;你将学会如何进行数据预处理、可视化分析以及构建预测模型。 第一步&#xff1a;导入…

2024-5-23 石群电路-14

2024-5-23&#xff0c;星期四&#xff0c;22:20&#xff0c;天气&#xff1a;晴&#xff0c;心情&#xff1a;晴。今天没有什么重要的事情发生&#xff0c;心情一如既往的平静&#xff0c;距离返校假期还有两天~~~。 今天观看了石群老师电路基础课程的第23/24个视频&#xff0…

蓝牙Classic加密算法设计和实现,SAFER+,E0,E1,E2,E3(python)

概述 之前用python给大家实现了所有LE相关加密工具算法。bobwenstudy/BluetoothCryptographicToolbox: LE SMP加密算法设计和实现(python) (github.com)&#xff0c;最近重温了下Classic加密&#xff0c;顺便将Classic所有加密算法给实现了一遍。 在蓝牙Classic Spec中&#…

IS-IS基本配置 IS-IS邻接关系

一.IS-IS基本配置 原理概述 和 OSPF 路由协议一样&#xff0c; IS-IS 也是一个应用非常广泛的 IGP 路由协议&#xff0c;很多 ISP 网络、特别是大型的ISP网络都部署了IS-IS网络协议。 RIP 、 OSPF 等许多 IGP 都是针对 IP ( Internet Protocol &#xff09;这个网络层协议而开…

深度学习之基于YoloV5人体姿态摔倒识别分析报警系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 随着人口老龄化的加剧和人们对健康安全的日益关注&#xff0c;摔倒事件在老年人、幼儿、体育运…

PMP项目管理资料

需要原件的私我&#xff01;&#xff01;&#xff01; 各种编程相关资料学习

Stable Diffusion【写实模型】:逼真,逼真,超级逼真的国产超写实摄影大模型万享XL

今天和大家分享的是一个国产万享系列中使用量最高的大模型:万享XL_超写实摄影&#xff0c;顾名思义&#xff0c;该大模型主要是面向写实摄影&#xff0c;一方面生成的图片人物皮肤纹理细节超级逼真&#xff0c;另一方面对于光影效果的处理也非常到位。对于万享XL超写实摄影大模…

Linux多线程系列2: 模拟封装简易语言级线程库,线程互斥和锁,线程同步和条件变量,线程其他知识点

Linux多线程系列2: 模拟封装简易语言级线程库,线程互斥和互斥锁,线程同步和条件变量,线程其他知识点 1.前言 一.模拟C11线程库自己封装简易语言级线程库1.实现框架2.迅速把构造等等函数写完3.start和work1.尝试一2.尝试二3.最终版本4.给出代码 二.模拟实现多线程(为编写线程池做…

互联网医院开发:引领智慧医疗新时代

随着科技的迅猛发展和互联网的普及&#xff0c;传统医疗模式正在迎来一场深刻的变革。互联网医院的崛起&#xff0c;打破了时间和空间的限制&#xff0c;为患者和医疗机构带来了更加便捷、高效、安全的医疗服务体验。本文将从技术角度深入探讨互联网医院的开发&#xff0c;包括…

Hotcoin Research | 市场洞察:2024年5月13日-5月19日

加密货币市场表现 目前&#xff0c;加密货币总市值为1.32万亿&#xff0c;BTC占比54.41%。 本周行情呈现震荡上行的态势&#xff0c;BTC在5月15日-16日&#xff0c;有一波大的拉升&#xff0c;周末为震荡行情。BTC现价为67125美元。 上涨的主要原因&#xff1a;美国4月CPI为3…

安防监控视频平台EasyNVR级联视频上云系统EasyNVS出现“Login error”报错的原因排查

EasyNVR安防视频云平台是旭帆科技TSINGSEE青犀旗下支持RTSP/Onvif协议接入的安防监控流媒体视频云平台。平台具备视频实时监控直播、云端录像、云存储、录像检索与回看、告警等视频能力&#xff0c;能对接入的视频流进行处理与多端分发&#xff0c;包括RTSP、RTMP、HTTP-FLV、W…

RNN-循环神经网络

目录 词嵌入层 RNN网络层 RNN 网络原理 这一节我们学习循环神经网络&#xff0c;RNN~~ 自然语言处理&#xff08;Nature language Processing, NLP&#xff09;研究的主要是通过计算机算法来理解自然语言。对于自然语言来说&#xff0c;处理的数据主要就是人类的语言&#…

安卓绕过限制直接使用Android/data无需授权,支持安卓14(部分)

大家都知道&#xff0c;安卓每次更新都会给权限划分的更细、收的更紧。   早在安卓11的时候还可以直接通过授权Android/data来实现操作其他软件的目录&#xff0c;没有之前安卓11授权的图了&#xff0c;反正都长一个样&#xff0c;就直接贴新图了。   后面到了安卓12~13的…

基于语音识别的智能电子病历(三)之 M*Modal

讨论“基于语音识别的智能电子病历”&#xff0c;就绕不开 Nuance 和 M*Modal。这2个公司长时间的占据第一和第二的位置。下面介绍一下M*Modal。 这是2019年的一个新闻“专业医疗软件提供商3M公司为自己购买了一份圣诞礼物&#xff0c;即M*Modal IP LLC的医疗技术业务&#xf…

Github上传时报错The file path is empty的解决办法

问题截图 文件夹明明不是空的&#xff0c;却怎么都上传不上去。 解决方案&#xff1a; 打开隐藏文件的开关&#xff0c;删除原作者的.git文件 如图所示&#xff1a; 上传成功&#xff01;

溪谷联运SDK功能全面解析

近期&#xff0c;备受用户关注的手游联运10.0.0版本上线了&#xff0c;不少用户也选择了版本更新&#xff0c;其中也再次迎来了SDK的更新。溪谷软件和大家一起盘点一下溪谷SDK的功能都有哪些吧。 一、溪谷SDK具有完整的运营功能和高度扩展性 1.登录&#xff1a;登录是SDK最基础…