在较大的工程中,检查FPGA中模块的中间数据是一件工作量很大的事情,尤其是一张图片的处理用Verilog代码描述出来,一幅图的中间数据量很大,如果可以通过仿真把中间模块的处理数据提取出来,用matalb转化成二维图形或者写一个小程序把仿真数据与算法数据进行对比,然后画图,这样会比较直观,也会更容易检查。
1、模块中间数据提取
在FPGA的仿真文件中,需要把要中间变量拉到仿真文件的顶层模块中
以下面的代码为例:
reg clk;
reg rst;
reg en;
reg [3:0]data_i;
wire [3:0]data_test;
wire test_en;
wire ov;
always #5 clk = ~clk;
always #10 data_i = data_i + 1;
initial
begin
clk = 0;
rst = 1;
data_i = 0;
#100 rst = 0'
#50 en = 1;
#10 en = 0;
end
top top(
.clk (clk ),
.rst (rst ),
.en (en ),
.data_i (data_i),
.data_test (data_test),
.test_en (test_en ),
.ov (ov )
);
integer file;