MPEG-2編碼復(fù)用器中的FPGA邏輯設(shè)計(jì)

相關(guān)專題: 芯片

  方案綜述:

  MPEG-2編碼復(fù)用器主要由DSP(數(shù)字信號(hào)處理器)和FPGA兩大部分組成。其中,DSP作為整個(gè)系統(tǒng)的主控單元,而FPGA則完成相應(yīng)的輔助邏輯功能。用FPGA實(shí)現(xiàn)的編碼復(fù)用器,具有設(shè)計(jì),升級(jí)都非常方便,快速的特點(diǎn),提高了工作效率。

  FPGA芯片簡(jiǎn)介

    編碼復(fù)用器中所使用的FPGA芯片是美國(guó)Altera公司生產(chǎn)的FLEX10K50V。 Flex10K系列是Altera公司在FLEX8000系列基礎(chǔ)上發(fā)展起來(lái)的一種新型器件。它的結(jié)構(gòu)的主要特點(diǎn)除了主要的邏輯陣列塊(LAB)之外,首次采用了嵌入陣列塊(EAB)。 FLEX10K50V的主要特性指標(biāo)為:

    ●邏輯門數(shù)目為50,000門;

    ●最大I/O引腳數(shù)為274個(gè);

    ●提供-1,-2,-3,-4四種速度級(jí)別;

    ●觸發(fā)器數(shù)目為3,184個(gè);

    ●LE(Logic Element,邏輯單元)數(shù)目為2,880個(gè);

    ●總的RAM為20,480bits。

  MAX+ PLUS II開發(fā)工具

    MAX+ PLUS II是開發(fā)Altera公司FPGA產(chǎn)品(包括MAX系列和FLEX系列)的軟件工具包。利用MAX+ PLUS II提供的設(shè)計(jì)環(huán)境和設(shè)計(jì)工具,可以靈活高效地完成各種數(shù)字電路設(shè)計(jì)。在MAX+ PLUS II的設(shè)計(jì)環(huán)境下, FPGA的整個(gè)設(shè)計(jì)流程如圖1所示:

    1. MAX+ PLUS II的設(shè)計(jì)輸入可以有三種方式,即圖形輸入,文本輸入和波形輸入。此外,符號(hào)編輯器用于編輯用戶自己的模塊符號(hào)。需要說(shuō)明的是: 在本系統(tǒng)中,我們使用AHDL(Altera,HDL) 語(yǔ)言作為文本輸入方式。

    2. 設(shè)計(jì)實(shí)現(xiàn)即在FPGA器件內(nèi)物理地實(shí)現(xiàn)所需地邏輯.這個(gè)過(guò)程由MAX+ PLUS II中的核心部分編譯器完成。它依據(jù)設(shè)計(jì)輸入文件自動(dòng)生成用于器件編程、波形仿真、延時(shí)分析等所需的數(shù)據(jù)文件。

    3. 設(shè)計(jì)仿真是由仿真器和時(shí)延分析器利用編譯器產(chǎn)生的數(shù)據(jù)文件,自動(dòng)完成邏輯功能仿真和延時(shí)特性仿真。通過(guò)仿真,發(fā)現(xiàn)設(shè)計(jì)中的錯(cuò)誤與不足,對(duì)設(shè)計(jì)輸入進(jìn)行修改和完善,最終達(dá)到設(shè)計(jì)要求。

    4. 在仿真結(jié)果正確以后,就可以進(jìn)行器件編程,即通過(guò)編程器(Programmer)將設(shè)計(jì)文件下載到FPGA芯片中,在實(shí)際芯片中進(jìn)行實(shí)際信號(hào)的時(shí)序驗(yàn)證,就芯片的實(shí)際運(yùn)行性能進(jìn)行系統(tǒng)測(cè)試。

  復(fù)用器中的FPGA邏輯設(shè)計(jì)

    在MPEG-2編碼復(fù)用器中,FPGA所實(shí)現(xiàn)的邏輯功能主要是:

    (1)系統(tǒng)上電后,完成對(duì)其他器件(如DSP、、FIFO)的復(fù)位;

    (2)響應(yīng)系統(tǒng)主控單元DSP的指令,從相應(yīng)的輸入FIFO中讀取TS流數(shù)據(jù),做并串變換后傳輸至DSP的串行輸入口;

    (3)由于復(fù)用器必須對(duì)進(jìn)入該系統(tǒng)的數(shù)據(jù)傳送流(TS流)中的程 序參考時(shí)鐘域(PCR域)中的數(shù)值進(jìn)行補(bǔ)償計(jì)數(shù).因此,FPGA還需要完成:

    a.在復(fù)用器的數(shù)據(jù)傳送流輸入端檢測(cè)PCR域并紀(jì)錄PCR域初值;

    b.在復(fù)用器的數(shù)據(jù)傳送流輸出端檢測(cè)PCR域并將經(jīng)過(guò)補(bǔ)償計(jì)數(shù)后的PCR的新值 裝載進(jìn)PCR域;

    (4)其他一些邏輯。

    1、輸入輸出FIFO的復(fù)位模塊

    輸入輸出FIFO復(fù)位模塊較為簡(jiǎn)單.它由文本輸入方式實(shí)現(xiàn),內(nèi)部主要由計(jì)數(shù)器和D觸發(fā)器組成。它對(duì)電路的控制主要包括:整個(gè)系統(tǒng)上電后,主控單元DSP通過(guò)I/O端口向FPGA發(fā)出FIFO復(fù)位的指令, FPGA通過(guò)地址譯碼,產(chǎn)生RSFIFO信號(hào).RSFIFO作為計(jì)數(shù)器內(nèi)部的清0端信號(hào),CLK38(全局時(shí)鐘信號(hào))作為計(jì)數(shù)器的時(shí)鐘信號(hào),并引導(dǎo)計(jì)數(shù)器開始計(jì)數(shù)。計(jì)數(shù)器計(jì)數(shù)到一定數(shù)值時(shí),再連通D觸發(fā)器先后產(chǎn)生RESET(輸入輸出FIFO復(fù)位信號(hào))以及FO_ENA(輸出FIFO讀允許信號(hào)),完成了FIFO復(fù)位模塊的邏輯時(shí)序.

    2、并/串轉(zhuǎn)換模塊

    I/O引腳情況見表1:

    表1 并/串轉(zhuǎn)換模塊I/O引管腳說(shuō)明

管腳名稱

管腳功能

CLK38

并串模塊工作時(shí)鐘

HF

輸入FIFO半滿信號(hào)

Q[8...0]

TS流并行數(shù)據(jù)信號(hào)

P——CLK

TS流串行數(shù)據(jù)包同步信號(hào)

S——DATA

TS流串行數(shù)據(jù)信號(hào)

S——CLK

TS流串行數(shù)據(jù)時(shí)鐘信號(hào)

FIFO——R——CLK

輸入FIFO讀時(shí)鐘信號(hào)

CLK——CONTROL

輸入FIFO讀時(shí)鐘控制信號(hào)

  由于MAX+PLUSII的老式宏函數(shù)中只提供了作4、5、8位和16位并串變換的移位寄存器 ,而此處系統(tǒng)完成的是9位并串變換(8位數(shù)據(jù)位加1位包同步位),因此必須自己編寫tdf文件,而不能直接調(diào)用宏函數(shù)。具體的功能實(shí)現(xiàn)為:

  選擇使用9個(gè)D觸發(fā)器,將它們相互連通組成9位的移位寄存器。一旦產(chǎn)生輸入FIFO的半滿信號(hào)(HF),模塊開始工作,將輸入FIFO中的9位并行數(shù)據(jù)讀入移位寄存器中,在CLK38的工作時(shí)鐘控制下,將9位數(shù)據(jù)順序串行移出產(chǎn)生S_DATA(TS流串行數(shù)據(jù))。并且,在模塊中還設(shè)置了一個(gè)4位計(jì)數(shù)器A。計(jì)數(shù)器A同樣在CLK38的工作時(shí)鐘控制下,整體模塊開始工作時(shí)開始同步計(jì)數(shù)。每計(jì)數(shù)到9時(shí)計(jì)數(shù)器清0,并輸出一個(gè)高電平信號(hào)。而在其他計(jì)數(shù)值時(shí),該信號(hào)輸出為低電平。那么,產(chǎn)生的這個(gè)信號(hào)就是TS流的串行數(shù)據(jù)包同步信號(hào)(P_CLK)。而TS流串行數(shù)據(jù)的時(shí)鐘信號(hào)(S_CLK),很顯然就是CLK38。

  此外,將CLK38時(shí)鐘進(jìn)行8分頻作為輸入FIFO的讀時(shí)鐘信號(hào)(FIFO_R_CLK)。而輸入FIFO讀時(shí)鐘的控制信號(hào)(CLK_CONTROL),則由模塊中設(shè)置的另外一個(gè)計(jì)數(shù)器B來(lái)產(chǎn)生,確保輸入FIFO一次半滿后,F(xiàn)PGA只從其中讀取該FIFO最大容量之一半的數(shù)據(jù)。例如:在本系統(tǒng)中,輸入FIFO的最大容量為512個(gè)字節(jié)。那么,設(shè)置的計(jì)數(shù)器B就必須是一個(gè)9位計(jì)數(shù)器。計(jì)數(shù)器的計(jì)數(shù)時(shí)鐘為FIFO_R_CLK,從輸入FIFO半滿,F(xiàn)PGA啟動(dòng)讀數(shù)時(shí)開始計(jì)數(shù)。每計(jì)數(shù)到256(輸入FIFO容量的一半)時(shí)計(jì)數(shù)器清0,并將輸入FIFO讀時(shí)鐘的控制信號(hào)(CLK_CONTROL)置為低電平,從而禁止再產(chǎn)生輸入FIFO讀時(shí)鐘信號(hào)。

  3、PCR補(bǔ)償計(jì)數(shù)模塊

  根據(jù)MPEGII標(biāo)準(zhǔn),TS流中的PCR域共有42位有效碼字,由兩部分組成:一部分以系統(tǒng)參考時(shí)鐘的1/300(90KHZ)為單位,稱為program_clock_reference_base,33字段;另一部分稱為program_clock_reference_extension, 以系統(tǒng)參考時(shí)鐘(27MHz)為單位的9位字段。

  因此,整個(gè)PCR補(bǔ)償計(jì)數(shù)模塊分為兩大部分:一部分是9位字段(E0~E8)的PCR域補(bǔ)償計(jì)數(shù)模塊,由一個(gè)8位計(jì)數(shù)器(調(diào)用宏函數(shù)8COUNT)和一個(gè)4位計(jì)數(shù)器(調(diào)用宏函數(shù)74161)組成。其中,8COUNT的計(jì)數(shù)時(shí)鐘為27MHz時(shí)鐘(由硬件電路中的27MHz晶振提供);而74161的計(jì)數(shù)時(shí)鐘則為8COUNT提供的最高位進(jìn)位時(shí)鐘(由8COUNT中的最高位E7取反后得到);另一部分為33位字段(Q32~Q0)的PCR域補(bǔ)償計(jì)數(shù)模塊,由4個(gè)8位計(jì)數(shù)器(調(diào)用宏函數(shù)8COUNT)和一個(gè)4位計(jì)數(shù)器(調(diào)用宏函數(shù)74161)組成。其中,74161的計(jì)數(shù)時(shí)鐘為27MHz時(shí)鐘300分頻后得到的90KHZ時(shí)鐘,它只對(duì)33位字段中的最低位Q0進(jìn)行補(bǔ)償計(jì)數(shù)。第一個(gè)8COUNT的計(jì)數(shù)時(shí)鐘為74161的Q0位的進(jìn)位時(shí)鐘(由Q0取反后得到);而其他3個(gè)8COUNT的計(jì)數(shù)時(shí)鐘則分別為前一個(gè)8COUNT的進(jìn)位時(shí)鐘(即分別由Q8,Q16,Q24取反后得到)。

  4、復(fù)用系統(tǒng)FPGA邏輯設(shè)計(jì)中一些技巧

  在該系統(tǒng)FPGA邏輯設(shè)計(jì)過(guò)程中,由于系統(tǒng)結(jié)構(gòu)比較復(fù)雜,整個(gè)FPGA邏輯設(shè)計(jì)也比較大,所以在作邏輯設(shè)計(jì)時(shí),一般應(yīng)有一個(gè)整體的考慮。具體作設(shè)計(jì)時(shí),應(yīng)該采用層次化的結(jié)構(gòu)設(shè)計(jì)。另外,還必須結(jié)合整個(gè)系統(tǒng)的特點(diǎn),有意識(shí)的對(duì)FPGA中邏輯設(shè)計(jì)進(jìn)行優(yōu)化和精簡(jiǎn)。例如:檢測(cè)TS數(shù)據(jù)流的包同步字0X47,由于該同步頭字節(jié)并不是唯一的,中間可能有碼字也恰為其值。因此,一般情況下,F(xiàn)PGA搜索同步碼字的邏輯如下:首先找到第一個(gè)0X47,然后進(jìn)行計(jì)數(shù),計(jì)到187字節(jié)后,再檢測(cè)是否為0X47,如果是,輸出包同步信號(hào);接著每隔187檢測(cè)一次,如是0X47,則繼續(xù)輸出包同步信號(hào),如不是,則從事開始搜索0X47。

  而在該系統(tǒng)的設(shè)計(jì)中,并沒(méi)有采用這種方法,而是利用了I/O FIFO的9比特特性,F(xiàn)PGA直接搜索9位包同步字節(jié)0X147。另外,在PCR域補(bǔ)償計(jì)數(shù)的模塊中,也存在一個(gè)PCR域確認(rèn)的問(wèn)題。PCR域的長(zhǎng)度為6個(gè)字節(jié)48位碼字(42位有效碼字加6位保留位),在FPGA已經(jīng)裝載PCR域的初值后,完全可以將PCR域中的6個(gè)字節(jié)改為預(yù)先設(shè)定好的協(xié)議碼字(當(dāng)然,它們必須對(duì)于碼流而言是唯一的)。這樣,在TS碼流輸出端進(jìn)行將補(bǔ)償計(jì)數(shù)后的PCR數(shù)值重新裝載進(jìn)PCR域的工作時(shí),F(xiàn)PGA不僅能夠很方便的識(shí)別出PCR域的具體位置,而且還可以從這些協(xié)議碼字中讀出較多的復(fù)用信息。

  簡(jiǎn)潔而有效的FPGA邏輯設(shè)計(jì),可以使系統(tǒng)運(yùn)行的穩(wěn)定性得到很大的改善。

  由CHINA通信網(wǎng)組稿


微信掃描分享本文到朋友圈
掃碼關(guān)注5G通信官方公眾號(hào),免費(fèi)領(lǐng)取以下5G精品資料
  • 1、回復(fù)“YD5GAI”免費(fèi)領(lǐng)取《中國(guó)移動(dòng):5G網(wǎng)絡(luò)AI應(yīng)用典型場(chǎng)景技術(shù)解決方案白皮書
  • 2、回復(fù)“5G6G”免費(fèi)領(lǐng)取《5G_6G毫米波測(cè)試技術(shù)白皮書-2022_03-21
  • 3、回復(fù)“YD6G”免費(fèi)領(lǐng)取《中國(guó)移動(dòng):6G至簡(jiǎn)無(wú)線接入網(wǎng)白皮書
  • 4、回復(fù)“LTBPS”免費(fèi)領(lǐng)取《《中國(guó)聯(lián)通5G終端白皮書》
  • 5、回復(fù)“ZGDX”免費(fèi)領(lǐng)取《中國(guó)電信5GNTN技術(shù)白皮書
  • 6、回復(fù)“TXSB”免費(fèi)領(lǐng)取《通信設(shè)備安裝工程施工工藝圖解
  • 7、回復(fù)“YDSL”免費(fèi)領(lǐng)取《中國(guó)移動(dòng)算力并網(wǎng)白皮書
  • 8、回復(fù)“5GX3”免費(fèi)領(lǐng)取《R1623501-g605G的系統(tǒng)架構(gòu)1
  • 本周熱點(diǎn)本月熱點(diǎn)

     

      最熱通信招聘

    業(yè)界最新資訊


      最新招聘信息