FWFT FIFO读操作注意
FWFT:First Word Fall Through的縮寫,好像是Xilinx的說法,Altera對應的概念是Show-ahead synchronous(SASO)。即數據在rdreq有效之前就有效了,rdreq作為一個應答(ACK)。
??? 需要注意的是當rdreq連續時,容易多讀一個數據,所以讀時需要對幾乎空進行判讀,在FIFO BFM的代碼讀任務里有如下代碼:
??? if(fifo_rd_req==1'b1)
??? begin
??????? fifo_rd_req <= #U_DLY ~fifo_alempty;
??? end
??? else
??? begin
??????? fifo_rd_req <= #U_DLY ~fifo_empty;
??? end
??? 代碼的目的就是在快空時讀一次停一次。
??? 如果不是連續的讀,例如在狀態機里讀一個數據,然后跳到下一個狀態,則可以不用判讀幾乎空標志,偽代碼如下:
??? ST1:
??? begin
??????? if(fifo_empty==1'b0)
??????? begin
??????????? fifo_rd_req <= #U_DLY 1'b1;
??????? end
??????? stm <= #U_DLY ST2;
??? end
??? ST2:
??? begin
??????? fifo_rd_req <= #U_DLY 1'b0;
??????? stm <= #U_DLY ST3;
??? end
轉載于:https://www.cnblogs.com/hfyfpga/p/4254888.html
總結
以上是生活随笔為你收集整理的FWFT FIFO读操作注意的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 黄山风景区走哪个门好
- 下一篇: Centos 修改时间地区及NTP同步北