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指导书相关推荐

  1. 【8086】中国电力出版社 微机原理实验与课程设计指导书 实验二 数据处理实验程序设计 答案

    在标题所述书的P5页所示. 题目如下: 设在内存缓冲区BUF+1单元开始,存放若干个单字节数,其数据长度在BUF单元,要求在这些数据中查找某个特定数据,若有把存放该字符的地址送入AX,否则把FF送入A ...

  2. 小插曲:我和Nios II的故事

    想必学习Altera家FPGA的小码农们都会有一个共同的困扰吧,那就是Nios II该不该学的问题.这个问题说白了,就是学Nios II到底有没有用.观点1.无用论,常常会听FPGA群里的某位前辈说道 ...

  3. FPGA学习[2]——致敬Mbed!使用C++开发NIOS II

    前言 NIOS II项目搭建 Hello World on Nios ii 点亮LED 快速的开发:使用C++的类 前言 在上一篇文章中博主介绍了如何让nios ii跑在板子自带的SDRAM里,这样大 ...

  4. HDMI系列之一:基于Nios II的HDMI显示图片

    一休哥将在本文中介绍一个基于Nios II的HDMI显示图片的工程.我将主要分三个部分来介绍这一工程,从而实现工程效果. 1. Nios II的常规使用套路 2. 自定义HDMI IP核的制作 3. ...

  5. 【连载】【FPGA黑金开发板】NIOS II那些事儿--LED实验(四)

    声明:本文为原创作品,版权归本博文作者所有,如需转载,请注明出处http://www.cnblogs.com/kingst/ 这一节,我将给大家讲解第一个与硬件有关的程序,虽然内容简单,却极具代表性. ...

  6. 【Nios II】以SOPC开发流程完成流水灯以及串口输出实验

    一.前言 实验内容及步骤 使用 FPGA 资源搭建一个简单 Nios II 处理器系统,具体包括: (1) 在 Quartus Prime 中建立一个工程: (2) 使用 PD 建立并生成一个简单的基 ...

  7. 【原创】FPGA (Verilog/NIOS II/Microblaze) 编程小提醒

    1.打开NIOS II IDE  建立好工程以后,先编译一下(Ctrl+B),然后打开system.h检查下目标硬件信息是否正确, 避免选择错误的目标硬件. 2.在NIOS II IDE 编写程序的时 ...

  8. [原创].怎样制作一个简单ip,以方便在Quartus II和Nios II中使用?

    概述:此处,我以Lcd12864(ST7920)作为范例,进行粗浅讲解,望各位网友踊跃拍砖.   0 软硬件环境 软件:Altera Quartus II 9.1 + Nios II  9.1 Sof ...

  9. [转载].怎样制作一个简单ip,以方便在Quartus II和Nios II中使用?

    1 硬件部分 1.1 Avalon-MM接口(读作:阿窝龙妹妹接口) Avalon Memory-Mapped接口,简称为 Avalon-MM接口,用于在存储映射系统中描述主从元件(component ...

最新文章

  1. 你不懂的JS学习笔记(作用域和闭包)
  2. 约瑟夫问题-学习笔记
  3. java 数组练习题,Java练习题 - 数组01
  4. 加载(WebView)页面,调JS刷新数据
  5. C++中两个常用的控制语句格式的函数(width和precision函数)
  6. 解决“第一次偶然出现的异常”问题
  7. Java打卡Day4-算术运算符
  8. 硬件设备 —— 蓝牙
  9. Embedding技术在商业搜索与推荐场景的实践
  10. 提高办公效率的wps、office插件
  11. iOS硬解码H264视频流
  12. face++ 行驶证OCR识别
  13. 淡入淡出文字垂直滚动
  14. java抓取百度搜索结果,一个百度搜索结果内容获取爬虫
  15. 以太坊中metamask、imtoken等钱包签名的php验证
  16. ThreeJS 骨架图显示、骨骼修改颜色
  17. EETI eGTouch Linux 驱动的安装与使用
  18. emc服务器装什么系统,EMC DD系统安装指南.pdf
  19. 802.11 帧(MAC架构)
  20. python 错误--UnboundLocalError: local variable 'num' referenced before assignment

热门文章

  1. [Github项目推荐] 推荐三个助你更好利用Github的工具
  2. python两列数据生成邻接矩阵_用python实现邻接矩阵转换为邻接表,python语言实现...
  3. docker构建oracle集群,docker 构建 oracle数据库 镜像-Go语言中文社区
  4. 小甲鱼python课后题007_[Python]小甲鱼Python视频第007-008课(了不起的分支和循环)课后题及参考解答...
  5. [05] Session概要
  6. sublimeclang里面使用相对路径
  7. js对象数组 按对象的某一属性进行去重
  8. 基于Docker的Redis集群简单搭建
  9. Android 地图搜索商家,检索关键字(高德地图,百度地图),地址搜索
  10. linux下怎么将html换成pdf,如何在Linux上使用PHP将HTML/CSS转换为PDF