【发布时间】:2013-10-11 03:00:07
【问题描述】:
我有一个最奇怪的问题,我办公室的人都没有遇到过或知道如何处理,也许你们会发现问题所在。
在我的 verilog 测试平台中,我有以下比较代码:
if (refFifo[7:0] != DUT.fifo[7:0] && rnd == 1) begin
$display("Error! ref Fifo %h not equal DUT fifo %h after 1 byte", refFifo[7:0], DUT.fifo[7:0]);
$stop;
end
else if (refFifo[15:0] != DUT.fifo[15:0] && rnd == 2) begin
$display("Error! ref Fifo %h not equal DUT fifo %h after 2 byte", refFifo[15:0], DUT.fifo[15:0]);
$stop;
end
...(直到 5 个字节)else
$display("Success!");
现在,问题是 2 的比较总是失败,而其余的比较顺利通过(这搞砸了我的运行):
'>错误:ref Fifo 090c 在 2 个字节后不等于 DUT fifo 090c'
我尝试在此过程中更改比较的位置,在比较之前打印值(以防它们在比较期间以某种方式发生变化),添加括号,将比较范围更改为 [7:0] 并构建一个新环境,但没有任何帮助或给出一些关于比较 2 个字节时出了什么问题的指示。
有没有人遇到过这样的问题?有人知道如何解决吗?
我在没有优化的情况下使用 ModelSim 10.1d_1 运行,以防它与我的谜团有关。
更新也在 ModelSim 10.0d_1 上尝试过,但没有任何帮助。
【问题讨论】:
-
我加了一个聊天室讨论问题:chat.stackoverflow.com/rooms/info/38971/…
标签: verilog