初探NIOS II之hello_world
平台背景:
操作系统: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的更多相关文章
- 给NIOS II CPU添加一颗澎湃的心——sysclk的使用
给NIOS II CPU添加一颗澎湃的心——系统时钟的使用 本实验介绍如何在Qsys中添加一个定时器作为NIOS II的心跳定时器,并在NIOS II中软件编程使用该定时器. 将上一个实验watchd ...
- (原創) 如何在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 ...
- NIOS II 中直接调用Modelsim仿真
STEP1:创建一个工程,实现并编译该工程,编写TestBench文件. STEP2:设置启动Modelsim的路径 选择Nios II菜单Tools->Options..,在弹出的界面中,选择 ...
- NIOS ii 流水灯
为了做项目的前期验证工作,实验室购买了某开发板,下面是基于该板子的实现过程.作为笔记记录,供入门者参考. 1:创建一个Quartus II的工程 next选择器件,然后finish.我的器件是cycl ...
- sof文件和NIOS II的软件(elf)合并为jic文件以使用Quartus Programmer烧写
将Altera FPGA的sof文件和NIOS II的elf固件合并为一个jic文件以使用Quartus Programmer烧写 我们在学习和调试NIOS II工程的时候,一般都是先使用Quar ...
- 给NIOS II CPU增加看门狗定时器并使用
给NIOS II CPU增加看门狗定时器并使用 配置看门狗定时器: 设置计时溢出时间为1秒 计数器位宽为32位 勾选No Start/Stop control bits 勾选Fixed perio ...
- 关于Nios II的启动分析(转载)
原文地址:http://hi.baidu.com/goatdai/item/cc33671545d89243e75e06ad 常用到的存储器包括SDRMA.SRAM.FLASH.Onchip_memo ...
- NIOS II CPU复位异常的原因及解决方案
NIOS II CPU复位异常的原因及解决方案 近期在用nios ii做项目时,发现一个奇怪的现象,在NIOS II EDS软件中编写好的代码,烧写到芯片中,第一次能够正常运行,但是当我按下板卡上 ...
- 关于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处理器进行项目的 ...
随机推荐
- Session的使用过程中应注意的一个小问题
在学习AllEmpty大神的从零开始编写自己的C#框架系列文章中,发现的问题:在验证码的缓存Session["vcode"]的赋值时,发现Session["vcode&q ...
- 行内js函数调用
<ul> <li onclick=abc(this);><a href="javascript:void(0);">12234588</a ...
- ireport5.6+jasperreport6.3开发(二)--web开发的配置
ireport5.6只能编译出*.jasper的报表包,最终报表需要被输出为一个doc html pdf excel等文件,这时就需要jasperreport6.5的库进行配合了. jasperrep ...
- Python’s SQLAlchemy vs Other ORMs[转发 1]SQLObject
SQLObject SQLObject is a Python ORM that maps objects between a SQL database and Python. It is becom ...
- JS 面向对象、prototype原型的克隆
JS中的phototype是JS中比较难理解的一个部分 本文基于下面几个知识点: 1 原型法设计模式 在.Net中可以使用clone()来实现原型法 原型法的主要思想是,现在有1个类A,我想要创建一个 ...
- httpd服务的安装、配置和关于php留言本网站的搭建
搭建本地yum仓库的方法 http://www.cnblogs.com/lql123/p/5952788.html yum install httpd -y #安装httpd yum install ...
- 1. Two Sum I & II & III
1. Given an array of integers, return indices of the two numbers such that they add up to a specific ...
- ios基础篇(二十四)—— 文字、图片的绘制及其自定义Button
这篇文章我们主要来拿官方的控件来研究一下,我们来仿照官方的控件,自己来实现它提供的控件: 首先来看看基本的图片与文字的绘制,很简单. 一.imageView 所有的视图都是继承自UIView,所以我们 ...
- 十天学会DIV+CSS(DIV布局)
一列布局: 一列固定宽度.一列固定宽度居中.一列自适应宽度.一列自适应宽度居中 一列固定宽度 <head> <style type="text/css"> ...
- mysql 批量插入数据存储过程
create procedure pFastCreateNums (cnt int unsigned) begin declare s int unsigned default 1; truncate ...