本帖最后由 pingis58 于 2015-3-17 17:43 编辑
如题 ,测试功能: 判断信号变化,计数。
百思不得其解,求高手解答。
在test bench 中的代码如下:
always @(posedge Bus2IP_Clk) begin
if(m_axi_mm2s_arready&m_axi_mm2s_arvalid)begin
m_axi_mm2s_rvalid = 1; //已在 初始化模块中初始化 为0
end //把= 改为 <= 则 仿真结果 test bench和uut中的计数就一致了
else if(sendok) begin
m_axi_mm2s_rvalid = 0;
end
end
reg [4:0] testnum;
always @(posedge Bus2IP_Clk) begin
if(m_axi_mm2s_rvalid)begin //已在 初始化模块中初始化 为 0
testnum <= testnum + 1;
end
end
在项目工程中,但被test bench 以uut实例化调用的代码 其中除 testc 其他值均从test bench中传入
always @(posedge Bus2IP_Clk)
begin
if( Bus2IP_Resetn == 1'b0 )
begin
testc <= 0;
end
else if(m_axi_mm2s_rvalid)
begin
testc <= testc +1;
end
end
仿真图为:
在test bench 中 计数会提前一个周期计数,如果把如果把= 改为 <= 则 仿真结果,两边计数就一致了
求解释!!
|