Xilinx FIFO IP核仿真没有数据输出和空满信号错误的解决
工程:使用生成的IP核,调用Modelsim仿真,但是问题出现了,仿真没有数据输出和空满信号错误的解决,输出为高阻态'Z'。如下图:
如图,空empty、满full、dout数据不变化。
原因:
ISE自动生成了.do文件仿真,本放着生成的.do代码如下:
问题出现在24行。编译了FIFO_W8_D32.v,同时编译了FIFO_W8_D32_synth.v,两个具有相同的module名字,但FIFO_W8_D32_synth.v只有声明,没有实体,则只生成了一个FIFO_W8_D32,后生成的覆盖了先生成的库。
把24行注释了,则结果正确。 23行和24行顺序调换,结果正确。
从正确的仿真图可见,在FIFO写满以后继续写入,是无效的,可以从读数据输出得到验证。读空以后,数据继续读也是无效的,输出保持最后有效数据不变。内部自动进行了读写的空和满逻辑控制。