

图15 译码模块实体说明
Fig 15 Entity discription of the coding
4.4.4 实现算法
通过译码模块的功能描述可以得出译码模块的基本流程。实现译码模块进程的基本流程图如图16所示。
图16 译码模块进程
Fig 16 Process of the coding
4.4.5 元件符号图
根据各进程的算法流程图,我们容易编写对应的VHDL代码,把编写好的VHDL代码在Quartus II平台上运行,进行编译。编译成功之后,建立译码模块的符号元件,得到的译码模块的元件符号图如图17所示
图17 译码模块的元件符号图
Fig 17 Component symbol diagram of t the coding block
4.4.6 仿真
译码模块的仿真:CLK3为1KHZ并在上升沿时扫描显示数字。选位信号SE[3..0]在四个数字中按规律转换,同时数码管在SE[3..0]信号为低电平时显示倒计时间。仿真图结果与预计功能相符合。仿真图如图18所示。
图18 译码模块的仿真图
Fig 18 Simulation diagram of t the coding
4.5 顶层模块的设计
我们前面的设计是把整体系统划分成各个功能模块,并实现各模块的设计,但是我们未考虑把各个模块连接起来实现整体系统的功能。
4.5.1 顶层原理图的设计
原理图输入方式一般用于设计顶层模块,因为Quartus II软件提供的元件进行原理图输入是一种最为直接的输入方式,原理图输入方式直观,便于进行接口设计和管脚
锁定,便于信号的观察以及电路的调整,而且,采用图形方式设计的电路具有效率高和运行速度快等优点。上面设计的下层模块都生成了元件符号,所以很方便于上层模块原理图的生成。有了上面的底层模块,我们把底层模块连接起来实现系统整体的功能。连接好的顶层原理图如图19所示。
图19 顶层模块的原理图
Fig 19 Schematic diagram of The top-level block
顶层原理图包括了5个底层模块。图中的HOLD、CLK、RESET、CLK3是外部输入信号,GA,RA,YA,GB,RB,YB,LED[3..0],SE[3..0]是输出信号,顶层模块主要研究的是外部输入信号、输出信号,而输入信号经过怎么样的处理输出等应该是个模块内部考虑的问题。像NUM[5..0]、NUMA[4..0]、NUMB[4..0]等信号都是内部模块产生的信号。整个顶层原理图以CONTROLLER模块为核心,辅助模块则是COUNTER模块,而FENWEI模块和JIEMA模块主要是数码管显示模块。通过计数模块NUM值的传递给控制模块而决定信号灯状态和信号灯倒计时间,由于数码管只能显示0到9,因此需要通过分位模块把倒计时间分为0到2范围的十位和0到9范围的个位,再通过译码模块的选位信号,这样数码管才能同时显示4位数字。
4.5.2 顶层模块的仿真
在顶层原理图的基础上生成的顶层模块对应的仿真波形图。可以对顶层模块的仿真验证整体系统的正确性,也可以验证是否满足了设计要求。系统调试是分模块进行的。把每一个模块的功能调试完毕后,再把整个系统连接起来进行调试。在Quartus II中建立波形文件,设置好时钟和各信号的初始电平后程序经Quartus II中的Compiler编译。再通过Simulator和Timinganalyzer工具分别进行功能仿真和时序仿真。仿真结果如图20所示。其中RESET是开始信号、CLK是系统基准时钟信号为1HZ、CLK3是扫描数码管频率为1KHZ、HOLD是特殊情况信号、GA,GB,RA,RB,YA,YB是信号灯信号、LED[7..0],SE[3..0]是数码管显示信号。从图中可以看出信号灯信号在各自的时段内自动转换。通过分析得出交通灯控制器的设计是正确的,也满足了设计要求。仿真图如图20所示。
图20 顶层模块的仿真图
Fig 20 Simulatiom diagram of the top-level block
5 硬件下载与测试
5.1 硬件测试平台的搭建
使用Quartus II仿真正确以后,最后一步是下载并建立外围电路,进行硬件测试。而在之前我们还要进行引脚分配。在这里共有虚实四类引脚,具体为外围电路引脚(输入和输出两种)如开关单元K0;然后是SOPC引脚,SOPC引脚是片上系统在实验箱上的的IO引脚,PFGA是一种片上系统,在实验箱上外围电路引脚与芯片上的引脚是无法直接连线,实验箱将PFGA引脚与通用的IO引脚直接相连,如IO1与PFGA的 PIN_2引脚相连,这样只要将外围电路引脚与IO引脚相连,就可以实现对FPGA的输入输出。如将开关单元中的K0与IO1相连,就可以通过拨动开关实现对PFGA的PIN_2引脚的置1与置0;再则是FPGA引脚是芯片上的虚引脚,芯片上本身已经设置存在;最后是系统引脚,当我们在下载时,必须先把系统的端口(虚的)与FPGA上的引脚(实的)对应,这样就完成了从虚到实的一个转换过程,才能实现从Quartus II到试验箱的下载;如把系统的端口reset与PFGA的 PIN_2引脚映射,就实现了将reset端口分配到PIN_2引脚。
根据这四种引脚的关系与前面的系统设计,我们可以构建如21图所示的测试平台,其引脚的对应关系如表1所示。
表1 引脚对应表
Table 1 Pin relationship
外围引脚 SOPC引脚 FPGA引脚 系统端口
开关单元K0 IN1 PIN_175 HOLD转贴于 酷文网-论文下载中心 http://www.coolwen.net