<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

          作者: 時間:2009-09-18 來源:網(wǎng)絡 收藏

          2.2 空/滿標志位的判斷
          為保證數(shù)據(jù)的正確寫入和讀出,不發(fā)生寫滿和讀空操作,怎樣判斷空/滿標志位的產(chǎn)生就成為異步設計的核心問題。異步是環(huán)形存儲的,當讀寫地址指針相等時,意味著空標志位或者滿標志位的產(chǎn)生。但是卻不能確定是寫滿還是讀空狀態(tài)。為解決這一問題,本文將轉換為格雷碼后的讀寫地址指針分別經(jīng)過檢測和計數(shù)器。每當讀寫指針遍歷一圈(當讀寫地址指針指向雙端口RAM的最后一個地址)時,寫計數(shù)i加1,讀計數(shù)j加1。這樣寫滿狀態(tài)和讀空狀態(tài)的判斷就需要同時滿足兩個條件。下面分別給出寫滿和讀空狀態(tài)的判斷。
          ①寫滿狀態(tài)的判別:當讀地址指針等于寫地址指針,并且i>j時,產(chǎn)生滿標志。
          ②讀空狀態(tài)的判別:當寫地址指針等于讀地址指針,并且i=j時,產(chǎn)生空標志。
          由于空/滿標志位產(chǎn)生的結構圖對稱,故本文只給出滿標志位產(chǎn)生的結構圖,如圖2所示。其中,主數(shù)i為寫地址指針遍歷的圈數(shù),計數(shù)j為讀地址指針遍歷的圈數(shù)。

          本文引用地址:http://www.ex-cimer.com/article/191924.htm

          從圖2中可看出,地址指針轉換為格雷碼后,經(jīng)過檢測和計數(shù)環(huán)節(jié),將讀寫地址和讀寫指針遍歷的圈數(shù)分別送入比較器進行比較,從而準確地產(chǎn)生滿標志位。

          3 內(nèi)部軟異步設計
          本設計中采用的是Xilinx Spartan3系列中的XC3S400PQ208。內(nèi)部有56 Kb的分布式RAM和288 Kb的RAM,以及4個DCM(數(shù)字時鐘管理器)單元,為系統(tǒng)提供獨立的讀寫時鐘頻率。可以利用這些資源在內(nèi)部實現(xiàn)異步FIFO模塊。本文采用 VHDL語言對雙端口RAM的讀寫操作進行編程,實現(xiàn)FPGA內(nèi)部軟FIFO的設計。部分讀寫雙端口RAM和空/滿標志位的判斷源程序如下:

          4 系統(tǒng)仿真
          如果系統(tǒng)的讀時鐘頻率大于寫時鐘頻率,就有可能出現(xiàn)讀空的情況;如果系統(tǒng)的寫時鐘頻率大于讀時鐘頻率,就可能出現(xiàn)寫滿的情況。在實際系統(tǒng)中,一般都設置寫時鐘頻率大于讀時鐘頻率,故本文只考慮后一種情況。



          關鍵詞: FPGA FIFO

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();