一、实验目的
(1) 学习 Quartus Prime 、 Platform Designer、 Nios II SBT 的基本操作;
(2) 初步了解 SOPC 的开发流程,基本掌握 Nios II 软核的定制方法;
(3) 掌握 Nios II 软件的开发流程,软件的基本调式方法。
二、实验设备
硬件: PC 机、 DE2-115 FPGA 实验开发平台;
软件: Quartus Prime 18.1、 Platform Designer、 Nios II SBT
三、实验内容
使用 FPGA 资源搭建一个简单 Nios II 处理器系统,具体包括:
(1) 在 Quartus Prime 中建立一个工程;
(2) 使用 PD 建立并生成一个简单的基于 Nios II 的硬件系统;
(3) 在 Quartus Prime 工程中编译基于 Nios II 的硬件系统并生成配置文件.sof;
(4) 在 Nios II SBT 中建立对应硬件系统的用户 C/C++工程,编写一简单用户程序,在
Nios II SBT 中编译程序生成可执行文件.elf;
(5) 将配置文件.sof 和可执行文件.elf 都下载到 FPGA 进行调试运行。
四、实验原理
控制 LED 灯闪烁的用户程序代码很小,可将其固化在片内 ROM 来执行。变量、堆栈
等空间使用片内 RAM,不使用任何片外存储器。整个系统的框图如图 1 所示。
从图 1.1 控制 LED 闪烁的系统框图可知,其它逻辑与 Nios II 系统一样可存在于 FPGA
中。 Nios II 系统可与其它片内逻辑相互作用,取决于整个系统的需要。为了简单起见,本实
验在 FPGA 内不包括其它逻辑。
五、实验步骤
1.硬件部分设计
(1)先建立新项目
步骤与实验一一样
(2)进行 Qsys 系统设计
①
②启动 Platform Designer 后,点击 File-save,如图 1.7 所示,在文件名中填写为 kernel
后点击 OK,
③
鼠标放在 clk_0 处点击右键 Edit 或是双击 clk_0 元件,对 Clock 进行时钟设置,设
为为 50M
④添加 CPU 和外围器件。从 PD 的元件池中选择以下元件加入到当前设计的系统中:
Nios II 32-bit CPU、 jtag uart、片上存储器、 PIO、 system ID。
- 添加 Nios II 32-bit CPU
a. 在“component library”标签栏中找到“Nios II Processor”后点击 Add(在查找窗口
输出 nios 即可)。
b. 在 Nios Core 栏中选择 Nios II/f 选项,其他保持默认选项,
c. 在”Caches and Memory Interfaces”标签栏中保持默认设置(Instruction Cache 选择4Kbytes) 。
d.点击 Finish 回到 PD 界面。将 nios2_qsys_0 重命名为 cpu,点击”Rename”即可重新命名
e.将 cpu 的 clk 和 reste_n 分别与系统时钟 clk_0 的 clk 和 clk_reset 相连
2.添加 jtag uart 接口。 jtag uart 接口是 Nios II 嵌入式处理器新添加的接口元件,通过
内嵌在 Intel FPGA 内部的 JTAG 电路,可以实现在 PC 主机与 Qsys 系统之间进行串行字符
流通信。
a. 从下图左侧”Component Library”标签栏中的查找窗口输入 jtag 找到”JTAG UART ”,
然后点击 Add。
b. 在 JTAG UART-jtag-uart_0 的设置向导中保持默认选项,点击 Finish。
c. 返回”