system verilog代码
`define PIC_W 176 //图像宽
`define PIC_H 144 //图像高
`define FRAME 300 //总帧数
`define H_CLK 5 //半周期
typedef byte unsigned ubyte_t;
//读取一帧图像,num表示第几帧,读取的像素存放在数组frame中
import "DPI-C" function int read_yuv(inout ubyte_t frame[][], input int num);
program automatic RD_YUV
int i_frame = 0; //表示读第几帧,从第0帧开始计
ubyte_t frame[`PIC_H][`PIC_W]; //存放像素的数组
initial begin
bit clk;
//读取参考帧
a1: assert(read_yuv(frame, i_frame) == 1)
else $error("read frame failed!");
fork
forever #`H_CLK clk = !clk;
forever @(posedge clk) begin
//处理
#100 ++i_frame;
//处理
a2: assert(read_yuv(frame, i_frame) == 1)
else $error("read frame failed!");
end