異步 FIFO 控制器 (Asynchronous FIFO Controller)
FIFO 是設計中常用的器件,用于跨時鐘域的數據傳送。一般從廠家庫中直接調用即可,是不需要自己設計的。 但學習和理解 FIFO 設計方法,對于理解跨時鐘域異步信號的處理方法很有幫助。
項目地址:Laotzu
經典 FIFO 設計方法(見參考文檔) 參數化數據寬度和 FIFO 深度 增強的同步數據有效指示 增強的首數據預讀加速功能(可關閉)

| Name | I/O | Description |
|---|---|---|
| w_rst_n | I | Reset in write-side1 is normal0 is reset |
| w_clk | I | Clock in write-side |
| w_en | I | Write enable1 is write0 is NOP |
| w_full | O | 1 is FIFO full |
| w_error | O | Error in write-side1 is error0 is normal |
| w_counter [] | O | FIFO counter in write-side |
| r_rst_n | I | Reset in read-side1 is normal0 is reset |
| r_clk | I | Clock in read-side |
| r_en | I | Read enable1 is read0 is NOP |
| r_valid | O | 1 is data valid in read-side |
| r_error | O | Error in read-side1 is error0 is normal |
| r_counter [] | O | FIFO counter in read-side |
| w_ram_addr [] | O | Write address for dual-port RAM |
| w_ram_en | O | Write enable for dual-port RAM1 is enable0 is disable |
| r_ram_addr [] | O | Read address for dual-port RAM |
| r_ram_en | O | Read enable for dual-port RAM1 is enable0 is disable |
| Name | Description |
|---|---|
| FWFTEN | First Word PRe-read enable1 is enable0 is disable |
| ADDRWIDTH | Address bus width |
| FIFODEPTH | FIFO depth |
比較下面兩種情況下的時序,在 FWFTEN = 1 的情況,FIFO 從空到有數據的時候不用等到 r_en 有效,其第一個數據 (D0) 就被自動讀出。相對于 FWFTEN = 0 的情況,r_valid 指示信號提前了,這樣可以加快 FIFO 的吞吐率。
FWFT = 0 的情況 
FWFT = 1 的情況 
注: 在某些設計中,“首數據自動預讀”的功能可能引起錯誤,可以使 FWFTEN = 0 關掉這個功能。
和傳統 FIFO 控制器使用空信號 (EMPTY) 指示讀數據有效不同,此控制器采用 r_valid 信號同步指示 FIFO 讀數據有效,這樣可以給 FIFO 應用帶來一點方便。 如果 FIFO 讀側確實需要空信號或者需要進行門限控制設計,請使用 r_counter[] 替代。
注: 一般 Dual-port RAM 的時序是在 r_ram_en 和 r_ram_addr[] 有效的下一個時鐘周期輸出讀數據。
[1] Clifford E. Cummings, “Simulation and Synthesis Techniques for Asynchronous FIFO Design”, SNUG 2002 (Synopsys Users Group Conference, San Jose, CA, 2002). Also available at www.sunburst-design.com/papers [2] Clifford E. Cummings and Peter Alfke, “Simulation and Synthesis Techniques for Asynchronous FIFO Design with Asynchronous Pointer Comparisons,” SNUG 2002 (Synopsys Users Group Conference, San Jose, CA, 2002) User Papers, March 2002, Section TB2, 3rd paper. Also available at www.sunburst-design.com/papers
新聞熱點
疑難解答