平台背景:

操作系统:win7  64bit

开发板:DE2-115

Quartus ii:15.0及配套的NIOS ii开发平台

一、硬件系统的建立

1、在Quartus里新建工程,这是很基本的就不在介绍了

2、新建一个bdf文件并保存,设置为顶层文件

2、打开Qsys

3、添加NIOS ii process也就是我们的cpu,重命名为cpu,在这里选择f型的,这里不需要设置什么,Vector页要等我们添加好SDRAM、epcs或者是RAM后才可以设置现在是不会有这些选项的,其中Reset Vector Memory是指复位启动时Memory的类型与偏移量;Exception Vector Memory是指异常情况时Memory的类型与偏移量;

4、从IP库里添加SDRAM Controller用于控制开发板上的SDRAM,当然这里我们也可以用on_chip_memory的RAM来做,不用RAM做的一个重要原因是FPGA上资源有限RAM的容量只能做到很小一般我们如果要编写一些小的程序还是可以用这个来做的。

SDRAM控制器的设置如下图:32bits,4个bank,13Row,10 column其他默认设置即可(这些参数一般根据开发板上的SDRAM的datasheet里的数据得出)Timing设为3,

5、添加epcs控制器,这个主要是用来控制FLASH的,当我们想要把程序固化在开发板上的时候就需要将程序烧写到FLASH里就要用到epcs控制器,设置均为默认

6、添加JTAG_UART接口(PC机与开发板进行数据传递用,包括烧写代码,接收发送数据)设置如下:

7、添加System ID这个是系统的ID标示一般设为0当然也可以自己设置一个数

8、手动连线,需要连线的主要有:

1)所有器件的时钟、复位接口;

2)非存储类器件的数据总线接口;

3)存储类器件的数据总线接口和指令总线接口;

4)中断接口;

9、System-àAssign Base Address自动设置各个器件的地址,设置各中断优先级,

双击cpu设置Vector都为SDRAM

保存文件命名为kernel;

设置时钟为100MHZ(这主要是由SDRAM工作的频率所限制)这是系统的工作频率;

点击Generate HDL产生HDL代码,点击finish

10、在之前建立的bdf文件上双击空白处将上面建立的kernel文件添加进来,注意在工程目录的files里把synthesis文件夹里的qip文件添加进来,该文件里包括kernel里所含的IP核的信息不添加的话后面编译时会出错;

11、添加pll的IP核到bdf文件中,pll的输入时钟是50MHZ,速度等级为7,一路next到设置输出时钟处将c0进行2倍频道100MHZ;c1进行2倍频到100MHZ并调整相移位为-65(实际为-63);c0为系统的时钟给kernel,c1为SDRAM的时钟,他们同频不同相至于相位差怎么算还没后面再讨论;

12、点击finish完成PLL的设置添加到bdf文件中连接c0到kernel的clock,c1接一个output接口;

13、选中kernel右击选择Generate pins for symbol ports产生接口,pLL同理;

14、编译,按照DE2-115引脚关系配置引脚,再编译;

到此硬件系统的搭建就完成了

二、软件系统的搭建

15、按如下所示打开NIOS开发软件

16、新建NIOS工程,Nios II Application and BSP from templare

17、将sopc信息文件指向刚刚产生的cpu文件,这样就利用这个sopc文件将软件与硬件连接起来了。

18、project->Build all

下载文件到FPGA

19、Run as->Nios II Hardware

20、refresh connection

21、点击run,一切工作正常出现下图

初探NIOS II之hello_world的更多相关文章

  1. 给NIOS II CPU添加一颗澎湃的心——sysclk的使用

    给NIOS II CPU添加一颗澎湃的心——系统时钟的使用 本实验介绍如何在Qsys中添加一个定时器作为NIOS II的心跳定时器,并在NIOS II中软件编程使用该定时器. 将上一个实验watchd ...

  2. (原創) 如何在Nios II顯示8位數的七段顯示器? (SOC) (Nios II) (SOPC Builder) (DE2-70)

    Abstract本文討論如何在Nios II控制8位數的七段顯示器. Introduction使用環境:Quartus II 8.0 + Nios II EDS 8.0 + DE2-70 (Cyclo ...

  3. NIOS II 中直接调用Modelsim仿真

    STEP1:创建一个工程,实现并编译该工程,编写TestBench文件. STEP2:设置启动Modelsim的路径 选择Nios II菜单Tools->Options..,在弹出的界面中,选择 ...

  4. NIOS ii 流水灯

    为了做项目的前期验证工作,实验室购买了某开发板,下面是基于该板子的实现过程.作为笔记记录,供入门者参考. 1:创建一个Quartus II的工程 next选择器件,然后finish.我的器件是cycl ...

  5. sof文件和NIOS II的软件(elf)合并为jic文件以使用Quartus Programmer烧写

    将Altera FPGA的sof文件和NIOS II的elf固件合并为一个jic文件以使用Quartus Programmer烧写   我们在学习和调试NIOS II工程的时候,一般都是先使用Quar ...

  6. 给NIOS II CPU增加看门狗定时器并使用

    给NIOS II CPU增加看门狗定时器并使用   配置看门狗定时器: 设置计时溢出时间为1秒 计数器位宽为32位 勾选No Start/Stop control bits 勾选Fixed perio ...

  7. 关于Nios II的启动分析(转载)

    原文地址:http://hi.baidu.com/goatdai/item/cc33671545d89243e75e06ad 常用到的存储器包括SDRMA.SRAM.FLASH.Onchip_memo ...

  8. NIOS II CPU复位异常的原因及解决方案

    NIOS II CPU复位异常的原因及解决方案   近期在用nios ii做项目时,发现一个奇怪的现象,在NIOS II EDS软件中编写好的代码,烧写到芯片中,第一次能够正常运行,但是当我按下板卡上 ...

  9. 关于Quartus II 13.0对应开发NIOS II软件程序时报错Symbol 'NULL' could not be resolved问题的解决方法

    关于Quartus II 13.0对应开发NIOS II软件程序时报错Symbol 'NULL' could not be resolved问题的解决方法 近期在评估使用NIOS II处理器进行项目的 ...

随机推荐

  1. Java开源BI系统介绍(转)

    http://blog.csdn.net/boboo_2000_0/article/details/4810420 BI解决方案中的工具 一个完整的BI解决方案中有多种工具来完成BI系统中各个阶段的工 ...

  2. 1. AE二次开发——地图的基本操作(加载地图文档,加载shape,加载mdb,地图的保存,缩放,漫游)

    1. 加载数据Icommand方法 ICommand Butdata = new ControlsAddDataCommandClass(); Butdata.OnCreate(axMapContro ...

  3. css学习笔记 5

    将css引入到html页面中的方法: 用style属性设置样式 用<style>标签设置样式 用<link>标签引入外部样式文件 用@import引入外部样式文件 <li ...

  4. 移动端设置字体px转换rem的脚本

    (function (){ var _self = this; _self.width = 640;//设置默认最大宽度 _self.fontSize = 100;//默认字体大小 _self.wid ...

  5. VC++使用Pro*CC++

    几种数据库访问技术的比较 由上所述, Visual C++ 通过以上方法都可以访问Oracle 数据 库, 但是上述方法各有优缺点.ODBC 出现得比较早, 几乎支持所 有的关系型数据库, 而且有MF ...

  6. Linux内核原子(1) - spinlock的实现

    spinlock的数据结构spinlock_t定义在头文件linux/spinlock_types.h里面: typedef struct { raw_spinlock_t raw_lock; #if ...

  7. django模板里循环变量<table>里想要两个一行如何控制

    2016-8-3 周三 做项目时遇到的问题: 每个div由循环变量输出: {% for key,value in formextenddetail %} <div id="div_id ...

  8. ecshop后台新功能及权限的添加

    1.在后台"推荐管理"里添加"推荐人分成"."会员分成"两个操作功能以及权限 index.php?act=menu incluedes/in ...

  9. Windows Store App JavaScript 开发:WinJS库控件

    在介绍了如何使用标准的HTML控件以及WinJS库中提供的新控件之后,下面来着重介绍WinJS库中几种常用的控件. (1)ListView控件 在开发Windows应用商店应用时可以使用ListVie ...

  10. POJ 3126 Prime Path

    给定两个四位素数a  b,要求把a变换到b 变换的过程要保证  每次变换出来的数都是一个 四位素数,而且当前这步的变换所得的素数  与  前一步得到的素数  只能有一个位不同,而且每步得到的素数都不能 ...