我设计一个ip (avalon 接口),我打算使用2个fifo, 一个用于写入,一个用于读取。
比如usb, 这个ip 功能就是来了数据,就放fifo里, nios2 检测not IsEmpty, 就读取fifo, 数据发送就相反。
问题是读取fifo的时候需要有时序操作,主要是: rdreq, wrreq,这样的话,直接用avalon 接口读取,和写入有几个T 的延迟。
是不是有这问题,怎么处理好呢?
下面是一个串口例子中 写fifo 的过程:
always @ ( posedge CLK or negedge RSTn )
if( !RSTn )
begin
i <= 2'd0;
isWrite <= 1'b0;
isRX <= 1'b0;
end
else
case( i )
0:
if( RX_Done_Sig ) begin isRX <= 1'b0; i <= i + 1'b1; end
else isRX <= 1'b1;
1: if( !Full_Sig ) i <= i + 1'b1;
2: begin isWrite <= 1'b1; i <= i + 1'b1; end
3: begin isWrite <= 1'b0; i <= 2'd0; end
endcase
本文来自论坛,点击查看完整帖子内容。