实验 5.2 跑马灯实验
· 实验说明
在 FPGA 实验板上用 VHDL 语言或者Verilog语言都能够很快地写出跑马灯实验程序。本实验要求完成的是基于 SOPC 的跑马灯设计,具有一定的操作复杂性。
· 实验步骤
5.2.1 建立 Quartus 工程
1. 新建 Quartus 工程 RunningLED,顶层实体名 RunningLED。 2. 重新设置编译输出目录为../ RunningLED/release。
5.2.2 建立SOPC系统
3. 点击 Quartus II 软件右上方图标
打开SOPC Builder,创建一个 SOPC 系统。
填写系统名称为 RinningLED_System,并指定 VHDL 为描述系统的语言,如图 5-23。
4. 在系统上添加 On-Chip Memory
在程序左侧列表中选择 Memory and Memory Controllers -> On-Chip -> On-Chip Memory (RAM or ROM),双击添加至系统中。
在弹出的对话框中指定片上 RAM 的属性,因为不需要显示,编译结果很小,保持默 认即可。
图 5-23 添加系统名称并指定语言
图 5-24 指定 On-Chip Memory 属性
鼠标移动到片内存储器的名称onchip_memonry2.0上并点击右键,在弹出菜单中选择Rename,然后更改名称为onchip_mem。
5. 添加 Nios II Processor
双击 Altera SOPC Builder -> Nios II Processor,在弹出的对话框中间选择处理器NIOS II/s;硬件乘法器(Hardware Multiply)选择None,即不需要硬件乘法器;复位向量和异常向量存储器(Memory)均选择前面刚刚添加的片内存储器onchip_mem,此时二者的偏移量(Offset)自动设置为0x0和ox20。复位向量是指整个系统软件复位后启动的程序地址,一般为非易失存储器。异常向量是软件的起始地址,一般是易失存储器,如SDRAM等。如图 5-24 所 示。
选择
图 5-25 添加 CPU 设置参数
更改指令缓存(Instruction Cache)为2Kbyte,其他地方使用默认设置。最后点击Finish完成处理器设置。
6. 添加定时器
在列表中选择 Peripherals -> Microcontroller Peripherals -> Interval Timer,弹出如下对话框。定时器在本系统中主要作用是产生一个固定间隔的中断信号,让 CPU 改变 LED 灯的状态。因此在 Period 中选择 500ms,表示灯的状态每 500ms 改变一次。更改预置(Presets)选项为Full-featured。如图 5-25。更改定时器组件名为sys_clk_timer。
Full-featured
图 5-26 添加定时器并设置参数
7.配置JTAG UART
如图所示,双击组件库中的JTAG UART,添加JTAG UART组件。
更改JTAG UART组件名为jtag_uart。 8. 添加 IO 控制器
双击 Peripherals -> Microcontroller Peripherals -> PIO (Parallel I/O),保持默认设置即可,表示有 8 个输出用 IO口,分别控制开发板上的 8 个绿色 LED 灯(LEDG[7..0])。如图 5-26。
图 5-27 添加 IO 控制器并设置参数
更改PIO组件名为led_pio。 9. 配置系统ID
如图所示,双击组件库中的System ID Peripheral,添加系统ID组件。
无需做任何设置,直接点击系统ID配置窗口的Finish按纽即可。不过请注意其中的警告信息。是的,在配置完成后,务必更改系统ID名称为sysid。