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

          新聞中心

          EEPW首頁 > 消費電子 > 基于FPGA的MPEG-2復用器中FIFO的一種設計方案

          基于FPGA的MPEG-2復用器中FIFO的一種設計方案

          ——
          作者:連云港職業(yè)技術學院 李紅軍 徐祥兵 時間:2007-08-03 來源: 收藏
           近幾年基于MPEC-2的DVB普通數字電視在美國、南美、亞洲、大洋洲和非洲通過衛(wèi)星進行廣播。基于/DVB的多路節(jié)目復用器是數字電視傳輸系統(tǒng)的關鍵設備之一,因此,它的研發(fā)顯得尤為重要。

               目前,復用器的設計方案主要基于DSP(數字信號處理器)的實現技術,這種設計方法在理論上也能實現對傳送流的復用,考慮到實現復用器諸多高速、復雜的邏輯功能,同時,(現場可編程門陣列)理論上可以無限次地重新配置,這樣在一定程度上為系統(tǒng)的升級或局部功能的改進留下了余地。所以,從今后專用芯片的設計和開發(fā)的角度來講,基于的設計無疑是最佳的選擇。本文提出了一套基于的復用器輸入部分的設計方案。

                1 復用器組成

                整個傳送流的復用器分為復用預處理、輸入和復用3部分。預處理部分是對多路傳送流的PSI(節(jié)目特殊信息)提取并修改,重新生成新的PSI表的過程;輸入部分是給各路經預處理的不同速率的傳送流提供緩存,并將半滿信號發(fā)送給后續(xù)的復用模塊;復用部分是將n路傳送流復合成一路傳送流的過程,控制對各路傳送流進行選擇性發(fā)送,適時插入空包和其他業(yè)務信息。復用器的數據緩存包括輸入FIFO和輸出FIFO,它為n路傳送流提供緩存,便于復用器隨時提取某一路傳送包進行處理。因此,復用器FIFO是否具有高速性和可靠性將直接影響復用器的性能。

                2 FIFO設計方案

                2.1 異步FIFO結構

                首先,由于輸入通道和輸出通道的時鐘頻率不同,所以用來實現輸入接口的FIFO必須支持異步讀寫功能,其結構如圖1所示。

                其次,考慮到輸入通道和輸出通道的時鐘頻率相差很大,為了避免數據溢出,FIFO的大小設計也需要考慮。FIFO的大小一方面與輸入傳送流的碼率和路數有關;另一方面,FPGA的處理能力也是影響緩沖器的一個因素。本設計中充分考慮了滿足產生半滿信號和節(jié)省系統(tǒng)資源的要求,FIFO的參考長度設計為一幀傳送流長度的2倍,即為376 B。n路傳送流以不相關的碼流速度寫入FIFO中,由于時鐘之間周期和相位完全獨立,因而數據的丟失概率不為O,如何設計一個高可靠性、高速的異步FIFO電路便成為一個難點。

                由圖1可以看出,FIFO的存儲介質為一塊雙端口RAM,可以同時進行讀寫操作。在寫時鐘域部分,由寫地址產生邏輯產生寫控制信號和寫地址;讀時鐘部分由讀地址產生邏輯產生讀控制信號和讀地址。在空/滿/半滿標志產生部分,當FIFO里的數據超過188個字節(jié)時,產生一個半滿信號,并將該信號送給復用控制模塊,由復用控制模塊產生一個讀使能,控制FIFO讀出數據。也就是說寫過程是連續(xù)的,而對于一個FIFO來說讀過程是間斷的。

                2.2 異步時鐘同步電路

                設計的過程中,首先要同步異步信號,使觸發(fā)器不產生亞穩(wěn)態(tài)。采取的方法是以讀時鐘為基準時鐘控制讀寫數據,由讀時鐘觸發(fā),將寫時鐘變?yōu)閷懯鼓軄砜刂艶IFO寫入數據。如圖2所示的觸發(fā)器電路可以同步異步時鐘。

                由圖2可以看出clk-r和clk-w分別是讀時鐘和寫時鐘,兩者異步且頻率相差很大。通過兩級D觸發(fā)器對這兩個時鐘進行同步,把寫時鐘clk-w轉變?yōu)橐粋€由讀時鐘clk-r上升沿觸發(fā)的寫使能w-en,由w-en控制寫入數據。

                2.3 信號控制電路

                同步了讀、寫時鐘后,下一個問題就是如何正確設計空/滿/半滿信號的控制電路。這些標志的產生是FIFO的核心部分,如何正確設計此部分的邏輯,直接影響到FIFO的性能。/DVB的傳送流復用的特殊性,決定著空/滿/半滿標志產生的原則。FIFO的標志產生邏輯如圖3所示。

                系統(tǒng)定義了寫指針wp和讀指針rp,在FIFO寫入或者讀出數據時開始記數。通過比較wp與rp來產生標志信號。具體實現方法是:定義一個計數器(count)對存人FIFO的數據字節(jié)數計數,產生半滿信號hf-flag,當FIFO寫入一個數據時,計數器加"1",當從FIFO中讀取一個數據時,計數器減"1",當計數器值大于187時,該FIFO輸出一個半滿信號。另外,附加了一個并行的區(qū)間判斷邏輯來控制同步字節(jié)的寫入。

                當同步字節(jié)syn到來時,寫指針wp開始計數,FIFO開始寫入數據,這時需要同步判斷計數器的值,而這個值應為0或187,從而給wp賦初值,這保證了FTFO中寫入的前4個字節(jié)即為傳送包的包頭。與此同時,半滿計數器也在計數,當其值大于187時,半滿信號HF跳變?yōu)?,表明FIFO接收到讀使能r-en時,讀指針rp開始計數,系統(tǒng)開始從FIFO中依次讀取數據,讀取完1幀(188 B)數據后,讀使能關閉,系統(tǒng)不再讀取數據,此時hf-flag也變?yōu)?,FIFO的狀態(tài)又回到了初始狀態(tài)。

                2.4 緩存功能模塊

                圖4給出了FIFO的引腳定義:syn為傳送流同步字節(jié);rst為復位信號;clk-r為讀時鐘;r-en為讀使能信號,當系統(tǒng)執(zhí)行讀操作時,該信號為"1",clk-w為寫時鐘;datain為并行8位數據輸人;hf-flag為半滿信號,當FIFO中數據個數大于187時,該引腳輸出一個高電平;emp-flag為空標志;full-flag為滿標志;dataout為并行8位數據輸出。

                3 結束語

                本文基于FPGA的復用器輸入部分設計方案,程序調試簡單,通過實踐驗證,運行效果良好,達到了設計的要求,具有較高的實用價值。



          關鍵詞: FPGA MPEG-2

          評論


          相關推薦

          技術專區(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); })();