|
NiosII/FPGA学习板
实现用户自定义指令
|
|
下面将通过一个具体的实例,来演示如何利用 用户指令 在不增加主频的情况下,提高 NiosII 系统的处理能力。 |
1. |
启动 Qartus II 软件,打开先前实验中所建立的项目。启动 SOPC Builder 工具软件,编辑 SOPC 系统。 |
2. |
双击 cpu 组件,在弹出的参数设置对话框上,点击 Custom Instructions 表头,进入到 Custom Instructions 参数设置页。 |
3. |
点击 Import 按钮。在随后弹出的对话框中,点击 Add 按钮。浏览到 altera_trn\nios_II_lab 文件夹,选择 crc.vhd 作为用户指令设计文件。在 Top module 栏目中,输入 crc 。 |
4. |
点击 Read port-list 按钮,读出设计的端口列表,并设置每个端口的 Width 、Direction 、Type 等参数,如下图所示。点击 Add to System 按钮,加入系统。 |
|
设置 Clock Cycles 为 “2” ,点击 Finish 按钮。 |
5. |
在 SOPC Builder 主界面上,点击 System Generation 表头,进入 System Generation 页。 |
6. |
去掉 Simulation 选项,点击 Generate 按钮。 |
7. |
在 SOPC 系统重新创建完成之后,回到 Quartus II 软件。右键点击 NiosII 模块,在弹出菜单中选择 Update Symbol or Block 命令,更新该模块。保存,并通过 Processing => Start Compilation 菜单命令重新编译该项目。完成后,点击 OK 按钮。 |
8. |
启动 programmer 工具软件,选中 Program/Configure 选项,点击 Start 按钮,将设计下载到开发板上。 |
9. |
启动 Nios II IDE 软件,使用 Black Project 模板创建一个新项目( File => New Project => C/C++ Application ),取名 crc_project 。点击 Finish 按钮。 |
10. |
使用 Windows 浏览器 打开 altera_trn\nios_II_lab\software 文件夹。复制 crc.c 文件。在 Nios II IDE 的 Navigator 窗口中,选中 crc_project 项目,点击右键,在右键菜单中选择 Paste 命令,将这个文件粘贴到项目中。 |
11. |
选中 niosII_pwm_project_syslib ,点击右键,在右键盘菜单中点击 Properties 命令。去掉 Modelsim only 选项,确认 stdout 、stderr 、stdin 设置为 jtag_uart ,同时,确认 Periodic system timer 设置为 SYS_CLK_TIMER ,Timestamp timer 设置为 HIGH_RES_TIMER 。对于 Program Memory 、Read-only data Memory 、Read/write memory 、Heap memory 、Stack Memory 几个参数,均设为 sdram 。点击 OK 按钮确认。切换到 C/C++ Build 设置页,设定 Optimization 为 level 3 。点击 OK 按钮。 |
12. |
选中 crc_project 项目, 点击右键,在弹出菜单中选择 Properties 命令。切换到 C/C++ Build 页,设定 Optimization 为 level 3 。点击 OK 按钮。 |
13. |
在 C/C++ Projects 窗口中,选中 crc_project 项目。点击右键,在弹出菜单中选择 Build Project 命令。编译结束后,在同一菜单中选择 Run As => Nios II Hardware 命令,运行该项目。 |
|
注: 如果系统提示“more than one JTAG cable available”,通过 Run => Run… 菜单命令启动运行参数设置对话框。在 Target Connection 页中选择恰当的下载电缆型号,点击 Apply 和 Run 按钮,确认并执行。 |
14. |
按下开发板上的 S1 按键,可以启动 软件计算CRC 流程;按下开发板上的 S2 按键,可以启动 用户指令计算CRC 流程。计算次数将显示在两个 LED 数码管上。当数码管显示 "80" 的时侯,本次计算结束。计算结果及使用时间将显示在 Nios II IDE 的 Console 窗口。观察两种计算模式在用时上差异。 |
|
|
|