Xilinx ISim 中双端口 BRAM 无法解释的红色 X(冲突?)

Unexplained Red X's (collisions?) with Dual-Port BRAM in Xilinx ISim

我已经阅读了很多这方面的内容,但我不明白为什么我会有 Red X(冲突?)和一个简单的双端口 BRAM IP 内核。

我认为只有几种情况会导致这种情况:

多个来源:我查过,我没有多个来源潜水 current_row_data_out。我只读过它。

同时读取和写入同一地址:不。如图所示,read_addr 和 write_addr 总是不同的。

还能是什么?

问题是由于在模拟开始时一直写入一两次未初始化数据引起的。它造成了直到后来才出现的连锁反应,因为一开始读取的值恰好是正确的。

我不知道这是否有帮助,但如果有人犯了和我一样的愚蠢错误,我会把我的案例放在这里。

我不小心将dout的wire初始化为0,这不会给我一个编译错误,但是当输出线不是0时,它会给我一个X。