1. | 在 C:\ 下建一个名为 altera_trn 的文件夹。将实验文档 nios_II_lab.rar 复制并解压到该文件夹下。解压后生成的 nios_II_lab 文件夹中包含了本次实所需的文档。 |
2. | 启动 Quartus II6.0 软件,通过选择菜单 File => Open Project... 打开 nios_II_lab 下的 nios_II_lab.qpf 项目文件。 |
3. | 下面我们开始建立一个NiosII嵌入式系统。通过菜单 Tools => SOPC Builder... 启动 SOPC Builder 工具软件,并在随后弹出的对话框中给我们要建立的系统取名NiosII。我们还可以在这个对话框上选择一种我们熟悉的HDL语言,SOPC Builder 工具软件将使用这种HDL语言描述我们所要的系统。进入 SOPC Builder 主界面后,设置 Target Device Family 为 Cyclone , 确认系统时钟设置为66.0MHz。 |
4. | 从左手边的“元件池”窗口中选中 Nios II Processor 点击 Add 按钮。在随后弹出的属性对话框的 NiosII Core 页上先择 Nios II/e 型选项。 |
5. | 点击 Jtag Debug Module 表头,进入 Jtag Degug Module 属性页面。选择 JTAG Target Connection Download Level 1 选项,点击 Finish 按钮,加入系统。 |
6. | 用鼠标右键点击刚加入的 Nios II Processor 组件,在右键菜单中选择 Rename 命令,然后输入 cpu ,按 Enter 键,将其更名为cpu。 |
7. | 从左手边的"元件池"中的 Memory 组中选中 SDRAM Controller ,点击 Add 按钮。在属性对话框中设置 Data Width 为16bits,设置 Row 为12, 设置 Column 为8, 设置 Chip Selects 为1, 设置 Bank 为4,然后点击 Finish 按钮,加入系统。使用右键菜单的 Rename 命令将其更名为sdram。 |
8. | 从左手边的"元件池"窗口的 Memory 组中选中 Flash Memory (Common Flash Interface) 元件,点击 Add 按钮。在随后弹出的属性对话框的 Presets 复选框中选择 TE28F320J3A-110(BYTE mode) 选项,Address Width 自动设为22,Data Width 自动设置为 8。将 Reference Designator 设置为U202,点击 Finish 加入系统。通过右键菜单的 Rename 命令将其更名为 ext_flash。 |
9. | 从左手边的“元件池”的 Communication 组中选择 JTAG UART 元件,点击 Add 按钮。选中两个 Construct using registers instead of memory blocks 选项,如下图所示。 |
10. | 点击 Simulation 表头,选择 Create ModelSim alias to open a window showing output as ASCII text ,点击 Finish 按钮,加入系统,使用右键菜单的 Rename 命令将其更名为 jtag_uart。 |
11. | 从左手边的“元件池”的 Other 选择 PIO (Parallel I/O) 元件,点击 Add 按钮。在属性对话框中,设置 Width 为16 bits, 选择 Output ports only 选项。点击 Finish 按钮,加入系统。使用右键菜单将其更名为 seven_seg_pio 。 |
12. | 从左手边的“元件池”的 Other 选择 PIO (Parallel I/O) 元件,点击 Add 按钮。在属性对话框中,设置 Width 为8 bits, 选择 Output ports only 选项。点击 Finish 按钮,加入系统。使用右键菜单将其更名为 led_pio 。 |
13. | 从左手边的“元件池”的 Other 选择 PIO (Parallel I/O) 元件,点击 Add 按钮。在属性对话框中,设置 Width 为4 bits, 选择 Input ports only 选项。点击 Finish 按钮,加入系统。使用右键菜单将其更名为 button_pio 。 |
14. | 从左手边的“元件池”的 Other 组中选中 Interval Timer 元件,点击 Add 按钮。接受默认设置,点击 Finish 按钮,加入系统。使用右键菜单,将其更名为 sys_clk_timer 。 |
15. | 从左手边的“元件池”的 Other 组中选中 Interval Timer 元件,点击 Add 按钮。将 Period 改为1usec,点击 Finish 按钮,加入系统。使用右键菜单,将其更名为 high_res_timer。在以后的实验中,我们将使用这个定时器测定软件的执行速度。 |
16. | 从左手边的“元件池”的 Other 组中选择 System ID Peripheral 元件,点击 Add 按钮,加入系统。 |
17. | 从左手边的“元件池”的 Bridges 组中选中 Tri-State Bridge 元件,点击 Add 按钮,选中国 Registered 选项,点击 Finish 按钮,加入系统。 |
18. | 确认所有组件的基地址都是有效的,也可使用 System => Auto-Assign Base Addresses 命令进行自动分配。 |
19. | 点击 Next 按钮,在这一页上设置CPU的 reset 和 exception 地址。将 Reset 地址设到 ext_flash 中,将 Exception Address 地址设到 sdram 中。点击 Next 按钮确认。 |
20. | 在这一页上,去掉 Simulation 选项的标记。 |
21. | 通过 File => New board description 菜单命令启动 Board description editor 工具软件。在 Flash Memory 设置页上加入一个 CFI Flash Memory 型Flash存贮器,取名U202。 再加入一个 EPCS Serial Flash Memory 型Flash存贮器。在 device U202 中加入一个 image ,取名img,其 offset 设定为0x300000。点击 Finish 按钮。 |
22. | 在 SOPC Builder 的主界面上,设定 Target board 为 untitled 。 |
23. | 现在点击 Generate 按钮,SOPC Builder 开始创建所求的系统。 |
24. | 在 SOPC Builder 工具完成系统创建之后,回到Quartus II6.0软件界面。双击原理图,打开元件浏览器,在 Project 组里选项择 niosII 模块。 |
25. | 点击 OK 按钮,把模块入原理图,如下图所示。模块的引脚刚好同预先定义的各个端口或引线对齐,如果不是这样,请回到 SOPC Builder 中,检查你的设计。 |
26. | 保存原理图,通过 Processing => Start Compilation 菜单命令启动编译。编译成功,我们的NiosII 嵌入式系统就构建出来了。 |
|
|