在测试过程中,我们常常遇到功能仿真正常但是板机验证达不到自己想要的效果的场景,此时就需要利用vivado内置的IP核联合板机进行验证。
VIO核
一般情况下ILA和VIO都是用在chipscope上使用,VIO可以作为在chipscope时模拟IO。
在使用chipscope时需要使用按键出发,但是没有设计按键或者板子不再身边,所以需要模拟按键输入还有其他信号的输出。
参数配置,配置输入探针数量和输出探针数量。分别可以设置0-256个。
vio核选取
创建IP核
probe out port:参数配置输出探针的数据位宽,及初始化数据(in hex)
例化IP核
根据上述步骤将例化的程序复制到主程序中。如下:
module uart(
clk,
Reset_n,
uart_TXD,
led
);
input clk; //系统时钟输入,50M
input Reset_n; //复位信号输入,低有效
output uart_TXD; //串口输出信号
output led;
wire test_en;
wire [7:0]data_byte; //待传输8bit数据
vio_0 vio_0 (
.clk(clk), // input wire clk
.probe_out0(test_en), // output wire [0 : 0] probe_out0
.probe_out1(data_byte) // output wire [7 : 0] probe_out1
);
uart_tx uart_tx(
.Clk (clk),
.Reset_n (Reset_n),
.Data (data_byte),
.uart_EN (test_en),
.uart_TXD (uart_TXD),
.Tx_done (led)
);
endmodule
进行测试
在hw_vio界面加入配置的输入及输出探针,并且对应的参数可以设置.
1、模拟的按键IO,可以设置成active_high buttom.
2、对于输出参数,可以设置成text
比如本实例中将使能置1后,设置传输的数据80h,串口就会不断向外发送80h
ILA核
为了验证代码的正确性和不同条件下的可靠性,常通过仿真进行验证,但是仿真时间较长,工作量较大,有些驱动模块的模型无法获取的情况下,仿真很难进行,所以采用ILA工具,来实时抓取FPGA内部数字信号的波形,分析逻辑错误的原因,帮助debug。
ILA核创建方法主要有以下几种:
方法1:使用IP核创建ILA调试环境;
方法2:使用 Debug 标记创建 ILA;
方法3:使用路径标记和Set up debug 菜单创建 ILA 调试环境。
本文主要讲利用IP核创建。
例化IP核,方法类似于VIO核。
进行测试
选取触发信号,即当该信号满足某个条件后执行该IP核。
从串口发送数据,可以发现波形发生变化,表明FPGA可以接受到信号。
比如在串口发送数据,ILA核的波形会发生改变。