nios ii小实验——第一个demo指导书
1.新建工程:打开Quartus II 13.0,点击File->New Project Wizard,点击Next后可以看到如图2所示的对话框,选择工程路径给工程命名(注意:工程名必须和顶层模块名一致,否则编译会报错)。这里我们将工程名命名为lights。
2.选择器件:这里我们选择Cyclone II里头的EP2C35F672C6这个芯片。直接点击finish。至此我们完成了quartus II工程的建立。
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使用量。
4.添加on-chip memory:在左上角的搜索栏输入on-chip memory,点击Add添加,如图5所示,将Total memory size修改为8192Bytes。点击finish完成设置。On-chip memory用来跑软核程序的,太小的话可能会出现各种error,比如程序放不下了。
5.添加PIO:与上两步类似,加两组PIO,一组为output,一组为input,如图6所示。PIO负责这个软核的输入输出管脚。
6.添加JTAG UART:步骤同上,使用默认设置。负责烧录软件程序到单片机里。
7.连线,这地方比较复杂
clk与所有添加的组件都连上;
clk_reset和所有的reset和reset_n都相互连接到一起;
data_master与on-chip memory,pio0,pio1,jtag都连上;
instruction_master与on-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,将其接到片外
连线完成后如下图。此时下面会报一堆错,不用急。
8.双击nios2,将reset vector和exception vector指向onchip_memory,这样程序复位从RAM中走,便于调试,若是添加了epcs模块,则从flash中重启,最终程序完成后选择则可。
9.分配地址:点击system->assignbase addresses给各个接口及组件分配地址。
10.保存并生成系统(.v文件)
点击file->save,命名为nios。
保证messages里头没有错误后,点击工具栏里头的generation生成搭建的系统。至此,我们完成了NIOSS II系统的搭建。
11.将系统添加到工程中:选择project navigator中的Files,右键添加上一节中的文件到工程中。将nios\sythesis下的所有文件添加入工程中(或者只添加.Qsys经过试验也是可以的)。
12.实例化:点击file->new,如图11所示,新建顶层模块对系统实例化。点击保存。
13.导入管脚配置文件:点击assignment->importassignment将管脚配置文件导入。
14.编译和配置:编译工程,通过后就可以将其配置到DE2开发板上了。至此,我们完成了硬件设计部分。
15.打开Nios II Eclips:tools->Nios II software build tools for Eclipse,workspace选择你建立的quartus project的路径。
16.新建工程:点击files->new->Nios IIApplication and BSP from Template,如图15所示。选择quartus II工程目录下的nios.sopcinfo文件。命名工程名为lights,使用默认设置点击finish。
17.添加C代码:选择lights目录下的hello_world.c下的主函数main():int,将其内容修改为如图16所示,其中宏定义Switches和LEDs的地址到Qsys的system contents里头的base查找。
18.修改设置:选中lights_bsp,右键选择properties->Nios II BSPProperties,将Reduced device drivers和Small C library选中,取消Support C++。点击OK。
19.生成BSP:点击工具栏里头的NIOS II->BSPEditor->generate完成BSP的生成。
20.建立工程:右击lights->Build Project,完成工程建立。
21.运行:选择RUN->run as->Nios IIHardware。
转载于:https://www.cnblogs.com/mingmingruyue99/p/7202011.html
nios ii小实验——第一个demo指导书相关推荐
- 【8086】中国电力出版社 微机原理实验与课程设计指导书 实验二 数据处理实验程序设计 答案
在标题所述书的P5页所示. 题目如下: 设在内存缓冲区BUF+1单元开始,存放若干个单字节数,其数据长度在BUF单元,要求在这些数据中查找某个特定数据,若有把存放该字符的地址送入AX,否则把FF送入A ...
- 小插曲:我和Nios II的故事
想必学习Altera家FPGA的小码农们都会有一个共同的困扰吧,那就是Nios II该不该学的问题.这个问题说白了,就是学Nios II到底有没有用.观点1.无用论,常常会听FPGA群里的某位前辈说道 ...
- FPGA学习[2]——致敬Mbed!使用C++开发NIOS II
前言 NIOS II项目搭建 Hello World on Nios ii 点亮LED 快速的开发:使用C++的类 前言 在上一篇文章中博主介绍了如何让nios ii跑在板子自带的SDRAM里,这样大 ...
- HDMI系列之一:基于Nios II的HDMI显示图片
一休哥将在本文中介绍一个基于Nios II的HDMI显示图片的工程.我将主要分三个部分来介绍这一工程,从而实现工程效果. 1. Nios II的常规使用套路 2. 自定义HDMI IP核的制作 3. ...
- 【连载】【FPGA黑金开发板】NIOS II那些事儿--LED实验(四)
声明:本文为原创作品,版权归本博文作者所有,如需转载,请注明出处http://www.cnblogs.com/kingst/ 这一节,我将给大家讲解第一个与硬件有关的程序,虽然内容简单,却极具代表性. ...
- 【Nios II】以SOPC开发流程完成流水灯以及串口输出实验
一.前言 实验内容及步骤 使用 FPGA 资源搭建一个简单 Nios II 处理器系统,具体包括: (1) 在 Quartus Prime 中建立一个工程: (2) 使用 PD 建立并生成一个简单的基 ...
- 【原创】FPGA (Verilog/NIOS II/Microblaze) 编程小提醒
1.打开NIOS II IDE 建立好工程以后,先编译一下(Ctrl+B),然后打开system.h检查下目标硬件信息是否正确, 避免选择错误的目标硬件. 2.在NIOS II IDE 编写程序的时 ...
- [原创].怎样制作一个简单ip,以方便在Quartus II和Nios II中使用?
概述:此处,我以Lcd12864(ST7920)作为范例,进行粗浅讲解,望各位网友踊跃拍砖. 0 软硬件环境 软件:Altera Quartus II 9.1 + Nios II 9.1 Sof ...
- [转载].怎样制作一个简单ip,以方便在Quartus II和Nios II中使用?
1 硬件部分 1.1 Avalon-MM接口(读作:阿窝龙妹妹接口) Avalon Memory-Mapped接口,简称为 Avalon-MM接口,用于在存储映射系统中描述主从元件(component ...
最新文章
- 你不懂的JS学习笔记(作用域和闭包)
- 约瑟夫问题-学习笔记
- java 数组练习题,Java练习题 - 数组01
- 加载(WebView)页面,调JS刷新数据
- C++中两个常用的控制语句格式的函数(width和precision函数)
- 解决“第一次偶然出现的异常”问题
- Java打卡Day4-算术运算符
- 硬件设备 —— 蓝牙
- Embedding技术在商业搜索与推荐场景的实践
- 提高办公效率的wps、office插件
- iOS硬解码H264视频流
- face++ 行驶证OCR识别
- 淡入淡出文字垂直滚动
- java抓取百度搜索结果,一个百度搜索结果内容获取爬虫
- 以太坊中metamask、imtoken等钱包签名的php验证
- ThreeJS 骨架图显示、骨骼修改颜色
- EETI eGTouch Linux 驱动的安装与使用
- emc服务器装什么系统,EMC DD系统安装指南.pdf
- 802.11 帧(MAC架构)
- python 错误--UnboundLocalError: local variable 'num' referenced before assignment
热门文章
- [Github项目推荐] 推荐三个助你更好利用Github的工具
- python两列数据生成邻接矩阵_用python实现邻接矩阵转换为邻接表,python语言实现...
- docker构建oracle集群,docker 构建 oracle数据库 镜像-Go语言中文社区
- 小甲鱼python课后题007_[Python]小甲鱼Python视频第007-008课(了不起的分支和循环)课后题及参考解答...
- [05] Session概要
- sublimeclang里面使用相对路径
- js对象数组 按对象的某一属性进行去重
- 基于Docker的Redis集群简单搭建
- Android 地图搜索商家,检索关键字(高德地图,百度地图),地址搜索
- linux下怎么将html换成pdf,如何在Linux上使用PHP将HTML/CSS转换为PDF