图 4.3.11 内部电路
(8)在Processes的窗口中,直接以鼠标双击Generate Programming File 的选项.此时ISE 会自动执行并产生可以下载的.bit 类型文件,此步骤是最直接验证设计工作的正确性与否.---可以等待仿真验证后再执行。 (9)若在每一个步骤后都出现绿色的打勾,代表程序成功跑完而没有错误和警告。若有黄色的警告,一般可以忽略。若有一个程序都出现红色打叉[X]的符号,代表有错误,可以依显示结果来侦错. ---可以等待仿真验证后再执行。
图 4.3.12:成功执行
4.3.3 设计仿真
在实际烧录FGPA之前,为了验证设计的正确性,可以先利用测试模板(Testbench)来验证设计的正确性。在这里请注意一下,为了加快仿真进程,仿真时将counter的低4位传给led_out以提高频率,更快地看到输出仿真结果。这时,将代码led.v的第37行使能,第38行不使能,然后保存。
(1) 点击led HDL文件,创建一个新的测试平台源文件: Project ?New Source.在源文件向导里, 点击Verilog Test Fixture 作为源文件类型, 输入文件名称为test.
图 4.3.13:选择源文件
(2) 一直点击next,直到点击finish,自动生成test.v的测试模板,在此基础上编辑输入激励:时钟周期设定为10ns,复位信号为高持续500ns后,再将复位信号置低。
图 4.3.14:编辑输入激励
(3) 保存test.v。选择sources for Simulation
图 4.3.15:选择仿真进程
(4) 双击Simulate Behavioral Model ,ISE仿真器打开并开始仿真, ,将图形界面缩小到合适的界面,其仿真结果如图所示:
图 4.3.16:仿真结果
(5) 我们也可以查看设计的内部信号。添加内部信号的步骤是: 在Isim的Instances and Processes窗口中点选test,然后点击UUT,在object窗口则会出现全部信号:
图 4.3.17:选择内部信号
(6)拖动counter到仿真波形里,点击restart按钮段时间后点击暂停
,再点击run all按钮,运行一
,就可以看到内部信号仿真图。为了查看方便,将二进制数改为10
进制无符号数的形式,选择counter信号,点击右键选择radix扩展栏中的Unsigned Decimal,由图可知counter信号是在正确计数的。
图 4.3.18:添加了内部信号的仿真结果
(7)关闭Isim仿真器并保存。
4.3.4 创建约束
(1)设定I/O 脚的位置,可以利用LED.UCF 来设定I/O 脚的位置,以得到正确的输出文件. Project ? New Source. 设定输入的文件格式为Implementation Constraints File, 文件名称为led(自动储存为led.UCF)
图 4.3.19:选择源文件
(2)一直点击next,最后按finish
(3)选择source for Implementation选项 (4)点选Sourcees窗口内的led.ucf,点击processess窗口里的user constraints,双击edit constraints(txt),输入后储存文件. 其中,“LOC”代表管脚定义,相关管脚定义请参考实验板使用手册Basys2_rm.pdf或参照表4.3.1;“IOSTANDARD”代表电平标准,实验中设定为LVCMOS33;“SLEW”代表信号的翻转速率,有fast和slow之分,默认是slow,时钟信号clk变化比较快可设定为fast。