久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > EDA/PCB > 設計應用 > FPGA異步FIFO設計中的問題與解決辦法

FPGA異步FIFO設計中的問題與解決辦法

作者: 時間:2009-09-18 來源:網絡 收藏

隨著數字電子系統設計規模的擴大,一些實際應用系統中往往含有多個時鐘,數據不可避免地要在不同的時鐘域之間傳遞。如何在異步時鐘之間傳輸數據,是數據傳輸中一個至關重要的問題,而采用正是解決這一問題的有效方法。異步是一種在電子系統中得到廣泛應用的器件,多數情況下它都是以一個獨立芯片的方式在系統中應用。本文介紹一種充分利用內部的RAM資源,在內部實現異步模塊的設計方法。這種異步FIFO比外部FIFO 芯片更能提高系統的穩定性。

本文引用地址:http://cqxgywz.com/article/191924.htm

1 FIFO的基本結構和工作原理
FIFO(First In First Out)是一種采用環形存儲結構的先進先出存儲器。其使用一個雙端口存儲器存放數據,數據發送方在一端寫入數據,接收方在另一端讀出數據,能夠協調好兩個時鐘域的工作,滿足高時鐘頻率的要求。FIFO在設計中主要用來緩沖數據和隔離時鐘或相位差異。訪問FIFO時不需要地址線,只需要數據線和讀寫控制信號線,且數據地址由內部讀寫指針自動加1完成,因此利用FIFO實現數據的緩存具有接口簡單、讀寫方便的優點。
根據FIFO的工作時鐘,可將FIFO分為同步FIFO和異步FIFO。同步FIFO是指讀時鐘和寫時鐘為同一個時鐘,在時鐘沿來臨時同時進行讀寫操作;異步FIFO是指讀寫時鐘不是同一個時鐘,而是相互獨立的。實際上,工作在同一時鐘的FIFO很少用到,多數都是讀寫時鐘獨立的異步FIFO。本文設計的異步FIFO位寬為8,深度(即FIFO可以存儲8位數據的個數)為1 024。異步FIFO的結構如圖1所示。

雙端口RAM存儲器具有獨立的讀寫端口。如果用一個單端口RAM存儲器實現異步FIFO,還應該包含一個仲裁器來保證同一時刻只能有一種操作(讀或寫操作)。本文選擇的雙端口RAM并不一定是真正的雙端口,只要有獨立的讀寫端口即可。讀寫控制邏輯由加法計數器構成,實現讀寫地址的自動加1功能??眨瘽M標志位的產生邏輯給系統提供空(empty)和滿(full)信號。

2 異步FIFO設計中的問題與解決辦法
2.1 亞穩態問題
在含有觸發器的電路中往往會出現亞穩態問題。亞穩態會使異步FIFO的讀寫地址發生錯誤,產生誤讀或者誤寫。為此異步FIFO設計中亞穩態問題也是一個比較重要的問題。亞穩態不可能完全消除,只能使其出現的概率降到最低。主要有2種方法來降低亞穩態出現的概率:
①采用觸發器冗余方式。即采用多個觸發器級聯的方式,使本來出現概率為P的亞穩態,其出現概率降低到P2,但這種方式會導致延時增加。
②使用格雷碼。格雷碼的相臨碼元之間只有一位發生變化,這就大大地降低了亞穩態出現的概率。本文采用格雷碼方式。


上一頁 1 2 3 下一頁

關鍵詞: FPGA FIFO

評論


相關推薦

技術專區

關閉