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

發(fā)布時(shí)間:2010-7-22 10:27    發(fā)布者:vinda
關(guān)鍵詞: FIFO , FPGA , MPEG-2
近幾年基于MPEC-2的DVB普通數字電視在美國、南美、亞洲、大洋洲和非洲通過(guò)衛星進(jìn)行廣播;贛PEG-2/DVB的多路節目復用器是數字電視傳輸系統的關(guān)鍵設備之一,因此,它的研發(fā)顯得尤為重要。目前,復用器的設計方案主要基于DSP(數字信號處理器)的實(shí)現技術(shù),這種設計方法在理論上也能實(shí)現對傳送流的復用,考慮到實(shí)現復用器諸多高速、復雜的邏輯功能,同時(shí),FPGA(現場(chǎng)可編程門(mén)陣列)理論上可以無(wú)限次地重新配置,這樣在一定程度上為系統的升級或局部功能的改進(jìn)留下了余地。所以,從今后專(zhuān)用芯片的設計和開(kāi)發(fā)的角度來(lái)講,基于FPGA的設計無(wú)疑是最佳的選擇。本文提出了一套基于FPGA的復用器輸入部分的設計方案。  

1 復用器組成  

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

2 FIFO設計方案  

2.1 異步FIFO結構  

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




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

由圖1可以看出,FIFO的存儲介質(zhì)為一塊雙端口RAM,可以同時(shí)進(jìn)行讀寫(xiě)操作。在寫(xiě)時(shí)鐘域部分,由寫(xiě)地址產(chǎn)生邏輯產(chǎn)生寫(xiě)控制信號和寫(xiě)地址;讀時(shí)鐘部分由讀地址產(chǎn)生邏輯產(chǎn)生讀控制信號和讀地址。在空/滿(mǎn)/半滿(mǎn)標志產(chǎn)生部分,當FIFO里的數據超過(guò)188個(gè)字節時(shí),產(chǎn)生一個(gè)半滿(mǎn)信號,并將該信號送給復用控制模塊,由復用控制模塊產(chǎn)生一個(gè)讀使能,控制FIFO讀出數據。也就是說(shuō)寫(xiě)過(guò)程是連續的,而對于一個(gè)FIFO來(lái)說(shuō)讀過(guò)程是間斷的。  

2.2 異步時(shí)鐘同步電路  

設計的過(guò)程中,首先要同步異步信號,使觸發(fā)器不產(chǎn)生亞穩態(tài)。采取的方法是以讀時(shí)鐘為基準時(shí)鐘控制讀寫(xiě)數據,由讀時(shí)鐘觸發(fā),將寫(xiě)時(shí)鐘變?yōu)閷?xiě)使能來(lái)控制FIFO寫(xiě)入數據。如圖2所示的觸發(fā)器電路可以同步異步時(shí)鐘。



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

2.3 信號控制電路  

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



系統定義了寫(xiě)指針wp和讀指針rp,在FIFO寫(xiě)入或者讀出數據時(shí)開(kāi)始記數。通過(guò)比較wp與rp來(lái)產(chǎn)生標志信號。具體實(shí)現方法是:定義一個(gè)計數器(count)對存人FIFO的數據字節數計數,產(chǎn)生半滿(mǎn)信號hf-flag,當FIFO寫(xiě)入一個(gè)數據時(shí),計數器加"1",當從FIFO中讀取一個(gè)數據時(shí),計數器減"1",當計數器值大于187時(shí),該FIFO輸出一個(gè)半滿(mǎn)信號。另外,附加了一個(gè)并行的區間判斷邏輯來(lái)控制同步字節的寫(xiě)入。當同步字節syn到來(lái)時(shí),寫(xiě)指針wp開(kāi)始計數,FIFO開(kāi)始寫(xiě)入數據,這時(shí)需要同步判斷計數器的值,而這個(gè)值應為0或187,從而給wp賦初值,這保證了FTFO中寫(xiě)入的前4個(gè)字節即為傳送包的包頭。與此同時(shí),半滿(mǎn)計數器也在計數,當其值大于187時(shí),半滿(mǎn)信號HF跳變?yōu)?,表明FIFO接收到讀使能r-en時(shí),讀指針rp開(kāi)始計數,系統開(kāi)始從FIFO中依次讀取數據,讀取完1幀(188 B)數據后,讀使能關(guān)閉,系統不再讀取數據,此時(shí)hf-flag也變?yōu)?,FIFO的狀態(tài)又回到了初始狀態(tài)。  

2.4 緩存功能模塊  

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



3 結束語(yǔ)  

本文基于FPGA的復用器輸入部分設計方案,程序調試簡(jiǎn)單,通過(guò)實(shí)踐驗證,運行效果良好,達到了設計的要求,具有較高的實(shí)用價(jià)值。
本文地址:http://selenalain.com/thread-15980-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页