📄 fpga_core_tb.v
字号:
// fpga_core_tb.v`timescale 1ns/100psmodule fpga_core_tb ( ); //input : reg tb_RESET; reg tb_reset; reg tb_frame_valid; reg tb_line_valid; reg tb_usb_flag; reg tb_clk_48; reg tb_clk_54;
reg [7:0] tb_datain; //output: reg [15:0] tb_data_out; //reg : reg tb_wen; //we fifo in fpga reg tb_ren; //re fifo in fpga reg [4:0] tb_state; reg [4:0] tb_next_state; //parament: parameter idle = 5'b00001, //FIFO is empty; write = 5'b00010, //move data to fifo; W_and_R = 5'b00100, //clear fifo data and read data to 68013a; write_c = 5'b01000, // only clear FIFO data==0; clear = 5'b10000; //clear is over; // main funtion fpga_core fpga_core_inst(
.clk_54 (tb_clk_54 ), //cmos work clk 54Mhz; .clk_48 (tb_clk_48 ), //usb IC work clk 48Mhz; .data_out( ), //16bit output data from FIFO; .datain (tb_datain ), //cmos output data; .RESET( tb_RESET ), //fpga reset ,active is high; .frame_valid (tb_frame_valid ) , //frame picture is valid;active is high .line_valid (tb_line_valid ), //line data is valid;active is high .usb_flag ( tb_usb_flag ), //fifo in 68013a is full or empty? .reset (tb_reset ) //FIFO in fpga ,active is high; );
always begin # 9.2; tb_clk_54 =1; # 9.2; tb_clk_54 =0; end always begin # 10.4; tb_clk_48 =1; # 10.4; tb_clk_48 =0; end ////////////////////////////////////////// task write_data; input [7:0] data; begin @(posedge tb_clk_54) tb_datain<=data; end endtask initial begin tb_RESET = 0; tb_reset =0; tb_frame_valid = 0; tb_frame_valid = 1'b0; # 100; tb_RESET = 1; tb_reset =1; tb_usb_flag = 1; tb_frame_valid = 0; tb_frame_valid = 1'b0; # 50; write_data(8'h12); # 10; tb_frame_valid = 1'b1; tb_line_valid = 1'b0; write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); #10; tb_line_valid = 1'b1; write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h12); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h12); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h12); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h12); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h12); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h12); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h12); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h12); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h12); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h12); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77); write_data(8'h15); write_data(8'h16); write_data(8'h10); write_data(8'h63); write_data(8'h64); write_data(8'h77);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -