在FIFO的应用过程中,由于场景需要,在非空的下一个时钟才使得rd_en置1,导致出现问题。
rd_en<=~empty;
如果数据的输出有效按照以前的只是使用rd_en,dat_vld=rd_en,dat_out=dout,那么当当前时钟rd_en=0,empty=0,下一个时钟rd_en=1,empty=1。就会出现当前数据,即D3保持出现在两个时钟周期中
比较好的做法是dat_vld=rd_en & valid,这样D3就不会在两个时钟周期中出现了。
在FIFO的应用过程中,由于场景需要,在非空的下一个时钟才使得rd_en置1,导致出现问题。
rd_en<=~empty;
如果数据的输出有效按照以前的只是使用rd_en,dat_vld=rd_en,dat_out=dout,那么当当前时钟rd_en=0,empty=0,下一个时钟rd_en=1,empty=1。就会出现当前数据,即D3保持出现在两个时钟周期中
比较好的做法是dat_vld=rd_en & valid,这样D3就不会在两个时钟周期中出现了。