nios ii小实验——第一个demo指导书

简介: nios ii小实验——第一个demo指导书

1.新建工程:打开Quartus II 13.0,点击File->New Project Wizard,点击Next后可以看到如图2所示的对话框,选择工程路径给工程命名(注意:工程名必须和顶层模块名一致,否则编译会报错)。这里我们将工程名命名为lights。

b1c1f3d2491c31ea7aef3c64faecb68d_SouthEast.jpg

2.选择器件:这里我们选择Cyclone II里头的EP2C35F672C6这个芯片。直接点击finish。至此我们完成了quartus II工程的建立。

a44cd762dc61c08c5f0bb8dc0730030a_SouthEast.jpg

3.添加nios II 处理器:点击Tool->Qsys,Qsys综合了之前的SOPCbuilder,打开后自动有时钟模块在里面了。在左上角的搜索栏中输入nios,点击Add(或双击)将nios II处理器添加到系统中,如图4所示,这里我们选择Nios II/e。Nios Ⅱ系列包括3种产品,分别是:Nios Ⅱ/f(快速)——最高的系统性能,中等FPGA使用量;Nios Ⅱ/s(标准)——高性能,低FPGA使用量;Nios Ⅱ/e(经济)——低性能,最低的FPGA使用量。

6536399ff7388313616fb1ffc6ef145f_SouthEast.jpg

4.添加on-chip memory:在左上角的搜索栏输入on-chip memory,点击Add添加,如图5所示,将Total memory size修改为8192Bytes。点击finish完成设置。On-chip memory用来跑软核程序的,太小的话可能会出现各种error,比如程序放不下了。

da842682d71f3c176a483d948e658902_SouthEast.jpg

5.添加PIO:与上两步类似,加两组PIO,一组为output,一组为input,如图6所示。PIO负责这个软核的输入输出管脚。

82441c0bbe6ad4b3e7a1a56f73b6e581_SouthEast.jpg

6.添加JTAG UART:步骤同上,使用默认设置。负责烧录软件程序到单片机里。

65280eb96bb11fe8041ac42225852bf1_SouthEast.jpg

7.连线,这地方比较复杂

clk与所有添加的组件都连上;

clk_reset和所有的reset和reset_n都相互连接到一起;

data_master与on-chip memory,pio0,pio1,jtag都连上;

instruction_masteron-chip memory连上;

此处连线规则:如果是存储器这类的IP核,需要将其Slave端口同Nios II的data_master和instruction_master相连,而其他非存储器IP核则只需连接到Nios II的data_master即可;

再将IRQ连上,IRQ应该是中断等级;

将pio0(输入)重命名为Switches(右键rename),pio1改为LEDs(输出)。双击Switches和LEDs的external_connection,将其接到片外

连线完成后如下图。此时下面会报一堆错,不用急。

278184829545182c305462efc4929ecd_SouthEast.png

8.双击nios2,将reset vector和exception vector指向onchip_memory,这样程序复位从RAM中走,便于调试,若是添加了epcs模块,则从flash中重启,最终程序完成后选择则可。

6b51707da9dc0ae088d9daa96fb01a5d_SouthEast.jpg

9.分配地址:点击system->assignbase addresses给各个接口及组件分配地址。

b7bc5c355d81f856f54fbd657573783a_SouthEast.png

10.保存并生成系统(.v文件)

点击file->save,命名为nios。

保证messages里头没有错误后,点击工具栏里头的generation生成搭建的系统。至此,我们完成了NIOSS II系统的搭建。


11.将系统添加到工程中:选择project navigator中的Files,右键添加上一节中的文件到工程中。将nios\sythesis下的所有文件添加入工程中(或者只添加.Qsys经过试验也是可以的)。

619e1ab858809907bf15b5e9459fdc29_SouthEast.jpg

12.实例化:点击file->new,如图11所示,新建顶层模块对系统实例化。点击保存。

5ca7ec746648eee4df26c470109c1a0a_SouthEast.jpg

2f1c1a1bb97ea237c65d638d94c1a2f8_SouthEast.jpg

13.导入管脚配置文件:点击assignment->importassignment将管脚配置文件导入。

bbaeb41cc5fb3e1b5066ab6798ad22eb_SouthEast.jpg

14.编译和配置:编译工程,通过后就可以将其配置到DE2开发板上了。至此,我们完成了硬件设计部分。


15.打开Nios II Eclips:tools->Nios II software build tools for Eclipse,workspace选择你建立的quartus project的路径。

eeddf934e3a6fcee1860671b3f156aaa_SouthEast.jpg

16.新建工程:点击files->new->Nios IIApplication and BSP from Template,如图15所示。选择quartus II工程目录下的nios.sopcinfo文件。命名工程名为lights,使用默认设置点击finish。

d6bf59c425df48b550de446fb5401528_SouthEast.jpg

17.添加C代码:选择lights目录下的hello_world.c下的主函数main():int,将其内容修改为如图16所示,其中宏定义Switches和LEDs的地址到Qsys的system contents里头的base查找。

986d36e64be6dc661256cbc73893079f_SouthEast.jpg

4f629619dace62de300368788b3b226d_SouthEast.jpg

18.修改设置:选中lights_bsp,右键选择properties->Nios II BSPProperties,将Reduced device drivers和Small C library选中,取消Support C++。点击OK。

7fd26930f47db5b110fe7a37768805dd_SouthEast.jpg

19.生成BSP:点击工具栏里头的NIOS II->BSPEditor->generate完成BSP的生成。

11bb95614038f24642a74e4fed04e2ab_SouthEast.jpg

20.建立工程:右击lights->Build Project,完成工程建立。

21.运行:选择RUN->run as->Nios IIHardware。


相关文章
|
Android开发 异构计算
nios ii FIFO读取FPGA数据交互实验1
nios ii FIFO读取FPGA数据交互实验1
429 0
nios ii FIFO读取FPGA数据交互实验1
|
异构计算
nios ii小实验——SDRAM读写
nios ii小实验——SDRAM读写
373 0
nios ii小实验——SDRAM读写
|
前端开发 API 定位技术
【百度地图API】如何使用suggestion--下拉列表方式的搜索建议
原文:【百度地图API】如何使用suggestion--下拉列表方式的搜索建议 摘要:   百度地图上有一个很强大的搜索建议功能,以下拉列表的方式展示出来。比如,输入“百度”,下拉列表中就会出现“北京市海淀区百度在线网络技术(北京)有限公司”。
2667 0
thinkphp6.0 集成Alipay 手机和电脑端支付的方法
第一步   下载 Alipay 的PHP SDK :https://docs.open.alipay.com/54/103419/ 第二步   解压下载都到的压缩包:   解压后得到的文件内容如图    第三步、上传得到的目录中的 aop 文件夹到 thinkphp 6.
6444 0
|
5月前
|
存储 SQL 前端开发
跟老卫学HarmonyOS开发:ArkTS关系型数据库开发
本节以“账本”为例,使用关系型数据库接口实现账单的增、删、改、查操作。通过创建ArkTSRdb应用,演示如何操作RdbStore进行数据管理,并结合界面按钮实现交互功能。
253 0
跟老卫学HarmonyOS开发:ArkTS关系型数据库开发
|
SQL 安全 PHP
DVWA File Inclusion 通关解析
DVWA File Inclusion 通关解析
|
存储 缓存 NoSQL
Redis缓存应用与最佳实践:优化性能与处理挑战
本篇深入探讨了Redis在缓存应用中的最佳实践,旨在优化性能并处理常见的缓存挑战。我们首先介绍了设计高效缓存架构的基本原则,展示了如何使用Redis作为缓存存储来提升应用性能。进一步地,我们讨论了缓存更新策略,演示了如何在源数据更新时同时更新缓存,以确保数据的一致性。
1205 0
|
Web App开发 存储 安全
就一次!带你彻底搞懂CSRF攻击与防御
与XSS攻击相比,利用CSRF漏洞发动攻击会比较困难,这也是在网络上看起来CSRF的人气小于XSS的原因之一。下面我们来利用CSRF漏洞发起攻击,并针对攻击进行防御,彻底弄懂CSRF,话不多说,我们直接开冲。
|
机器学习/深度学习 人工智能 自然语言处理
利用自然语言处理(NLP)改善客户服务:策略与实践
【5月更文挑战第14天】本文探讨了如何利用自然语言处理(NLP)技术优化客户服务,提高客户满意度和忠诚度。NLP作为AI的重要分支,通过机器学习和深度学习实现智能客服机器人、情感分析、文本分类与归纳及多渠道客服整合等功能。企业应明确业务需求,选择合适NLP工具,并持续优化,以提升服务质量和效率,塑造良好品牌形象。随着NLP技术发展,客户服务将迎来更高效、个性化的未来。