在进行测试同步FIFO时候,写的testbench :
`
timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 2017/05/11 11:14:59
// Design Name:
// Module Name: sy_fifo_test
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module sy_fifo_test;
reg clk;
reg rstn;
reg [3:0] data_in;
reg rd;
reg wd;
wire [3:0] data_out;
wire full;
wire empty;
//reg [3:0] i;
always #20
data_in=data_in+1;
always #10 clk=~clk;
initial
begin
rstn =1'b0;
clk =1'b0;
data_in ={3'b0,1'b1};
#10 rstn =1'b1;
#10 rstn =1'b0;
#20 rd =1'b0;
wd =1'b0;//不进行操作
#300 rd =1'b0;
wd =1'b1;//进行写操作
#400 rd =1'b1;
wd =1'b0;//进行读操作
#300 rd =1'b0;
wd =1'b1; //进行写操作
end
sy_fifo m(clk,rstn,data_in,data_out,full,empty,rd,wd);
endmodule
在进行
仿真时候,就会出现上述问题,若把最后的写操作 改成为:#300 rd=1'b1;
wd=1'b1;
就不会出现上述问题,求大神指点下???
initial begin
#200;
@(posedge clk)
begin
wr = 1;
end
#200;
@(posedge clk)
begin
wr = 0;
end
end
差不多这个意思把!不能再不能的块对同一个变量赋值!
一周热门 更多>