基于Quartus Prime的NiosII基础开发流程

基于Quartus Prime的NiosII基础开发流程

本文原始文档及代码工程上传至https://download.youkuaiyun.com/download/botao_li/10804031
也许对新入门FPGA的朋友有所帮助

软件版本:Quartus Prime Standard Edition 18.0 Windows

1. 建立工程

启动Quartus Prime选择New Project Wizard
在这里插入图片描述
设置工程名及工作目录
在这里插入图片描述
根据提示使用默认配置直到器件选择页面,选择FPGA型号
在这里插入图片描述

2. 建立顶层模块

在File菜单选择New
在这里插入图片描述
在弹出窗口中选择Block Diagram/Schematic File
在这里插入图片描述
完成后弹出模块图设计界面
在这里插入图片描述

3. 添加时钟模块

板上时钟进入FPGA即使频率保持不变,最好也经过时钟模块以保证FPGA内的时钟质量

在Tools菜单选择IP Catalog
在这里插入图片描述
在IP Catalog页选择PLL Intel FPGA IP,双击
在这里插入图片描述
在弹出窗口输入模块名称及保存路径
在这里插入图片描述
在弹出的配置窗口中进行PLL功能配置
在这里插入图片描述
在弹出的确认窗口中选择将生成的IP加入当前工程
在这里插入图片描述
双击模块图设计界面的空白处,选择加入时钟模块
在这里插入图片描述
保存当前模块图设计
在这里插入图片描述
保存后的模块图设计界面
在这里插入图片描述

4. 创建Platform Designer模块(原QSys)

在Tools菜单选择Platform Designer
在这里插入图片描述
Platform Designer窗口的File菜单选择保存
在这里插入图片描述
在System Contents页双击clk_0
在这里插入图片描述
在弹出的Parameters页设置时钟频率与时钟模块输出频率一致
在这里插入图片描述

5. 添加片上ROM和RAM

Nios工作必须像PC一样连接ROM和RAM,ROM用于存储程序文件,RAM用于程序运行。

一般情况下使用板上外接的ROM(比如Flash)和RAM(比如SDRAM)。

由于本演示程序规模极小(而且试验板上没有外接),因此使用片上ROM和RAM。两者都是使用FPGA的RAM资源。

由于ROM数据在FPGA烧写时才能写入,因此完成Nios软件编程后,需要重新编译FPGA工程。

**在后续的Nios软件编写过程中发现此处设置的存储空间太小了,不足以存储Nios程序,因此ROM和RAM的存储空间大小都应当放大。**目前试验的空间大小为65536 bytes。见[Nios软件编写](#17. Nios软件编写)章节。

片上ROM

在IP Catalog页双击On-Chip Memory (RAM or ROM) Intel FPGA IP
在这里插入图片描述
在弹出的配置窗口作如下配置
在这里插入图片描述
为区分,在System Contents页右键Rename改名为onchip_memory2_rom

片上RAM

在IP Catalog页双击On-Chip Memory (RAM or ROM) Intel FPGA IP

在弹出的配置窗口作如下配置
在这里插入图片描述
为区分,在System Contents页右键Rename改名为onchip_memory2_ram

6. 添加CPU模块

在Platform Designer窗口的IP Catalog页(与Quartus的IP Catalog页内容不同)双击Nios II Processor
在这里插入图片描述
在弹出的配置窗口的Main页中选择Nios II/f
在这里插入图片描述
在Caches and Memory Interface页,选择设置Data Cache的Size为None
在这里插入图片描述
Data Cache相当于CPU内的数据高速缓冲,用于保证数据传输速度,而将部分数据打包进行传输。如果处理数据量较少并且需要突发处理,使用Data Cache可能导致数据在缓冲中保存而不会完成传输,在这种情况下可以设置Size为None,或者使用most-significant address位置1的方式将寄存器的最高位设置为1,使用该寄存器的数据传输不经过Data Cache

7. 添加System ID模块

用于自动校验的一个只读模块,用于确保软件程序与Nios的硬件配置相匹配

由Platform Designer的IP Catalog页查找并且添加System ID Peripheral Intel FPGA IP,保持默认参数
在这里插入图片描述

8. 添加JTAG UART模块

JTAG UART模块可以通过JTAG实现PC与Nios的串口通信

由Platform Designer的IP Catalog页查找并且添加JTAG UART Intel FPGA IP,保持默认参数
在这里插入图片描述

9. 连接各模块信号

添加完上述各模块后的System Contents页如下
在这里插入图片描述
上图左侧中的空心圆圈表示信号可连接但是未连接,鼠标点击空心圆圈后变成实心圆圈,表示建立连接。

简单起见,可以把所有的空心圆圈全部建立连接。
在这里插入图片描述

10. 分配基地址

给各模块分配基地址用于基功能寄存器的操作,选择System菜单的Assign Base Addresses
在这里插入图片描述
对于已分配地址空间的模块,在添加新模块重新执行该指令时会被重新分配地址,在开发过程中为了防止出现地址变化,可以将已分配的地址空间锁定,锁定方法为鼠标点击Base地址旁的锁图标,由开锁状态转为闭锁状态
在这里插入图片描述

11. 生成

设置CPU的Vector

在Vectors页,设置Reset vector memory和Exception vector memory
在这里插入图片描述

Reset Vector指的是CPU复位后启动时指向的存储器类型和地址偏移量,一般为掉电不可擦除型,如外接的Flash

Exception Vector指的是CPU异常情况时指向的存储器类型和地址偏移量,存储器为掉电即擦除型,如SDRAM

——“NiosII的奇幻漂流”——不理解

在Platform Designer的Generate菜单选择Generate HDL

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值