八、仿真测试
仿真在 FPGA 的设计中是很重要的,它可以在前期帮我们验证我们的设计以及功能是否是正确的,可以省去我们后期调试很多的问题。
1、右键 SIMULATION -> simulation Settings
2、仿真时间修改为 50ms(这是一个初始的仿真时间),其他保持不变,点击 “OK”
3、添加源文件
①、点击 “+”
②、添加或者创建仿真源
③、Create File
④、在弹出的窗口输入 File name 为 vtf_led_test
⑤、点击 “Finish”
⑥、弹出窗口再点击 “OK”
⑦、弹出窗口再点击 “Yes”
4、在 Simulation Sources 下面可以看到我们创建的 vtf_led_test.v 文件
5、把下面的测试代码拷贝到 vtf_led_test.v 中
`timescale 1ns/1ps // 时间单位/精度 //------------<模块及端口声明>---------------------------------------- module vtf_led_test; // Input reg sys_clk; reg rst_n; // Output wire led; //------------<例化被测试模块>--------------------------------------- led uut ( .sys_clk(sys_clk), .rst_n(rst_n), .led(led) ); //------------<设置初始测试条件>---------------------------------------- initial begin sys_clk = 1'b0; // 初始时钟为0 rst_n = 1'b0; #5; // 5个时钟周期后 rst_n = 1'b1; end //------------<设置时钟>---------------------------------------------- always #10 sys_clk = ~ sys_clk; // 系统时钟周期20ns endmodule
6、保存后可以看到层级关系
7、进行仿真,左键 Run Simulation -> Run Behavioral Simulation 进行行为级仿真
8、仿真初始界面
9、将 timer_cnt 拖拽到仿真界面 Name 栏目中
10、timer_cnt 右键 -> Radix -> Unsigned Decimal
11、执行 Run All(F3)
12、等待一会儿时间停止运行,搜索 1s 的时候(右键 Go To Time),可以看 led 从 0 变成了 1,如此反复
九、下载测试
1、AC7020 开发平台支持三种启动模式。这三种启动模式分别是 JTAG 调试模式,QSPI FLASH 和 SD 卡启动模式,ZYNQ7000 芯片上电后会检测响应 MIO 口的电平来决定那种启动模式。可以通过核心板上的 J13 的跳线来选择不同的启动模式,我们这里选择链接右边两个引脚,启动模式是 JTAG
2、连接好开发板的 JTAG 接口(仿真器线),给开发板上电(电源线)
3、在 “HARDWARE MANAGER” 界面点击 “Auto Connect”,自动连接设备
4、可以看到 JTAG 扫描到 arm 和 FPGA 内核(图中为 xc7z020,AC7010 开发板实际为 xc7z010_1,AC7020 开发板实际为 xc7z020_1),还有一个 XADC,可以检测系统电压、温度
5、选择 xc7z020_1,右键 “Program Device…”
6、在弹出窗口中点击“Program”
7、等待下载
8、下载完成以后,我们可以看到 1 颗 LED 开始每秒变化一次。(因为未将程序下载到 flash 里面,因此掉电后程序不可保存
)
fpga_led闪烁