新聞中心

EEPW首頁(yè) > 汽車(chē)電子 > 設(shè)計(jì)應(yīng)用 > 用FPGA技術(shù)實(shí)現(xiàn)某新型通信設(shè)備中PCM碼流處理

用FPGA技術(shù)實(shí)現(xiàn)某新型通信設(shè)備中PCM碼流處理

作者:■ 北京跟蹤與通信技術(shù)研究所 韓樂(lè) 時(shí)間:2005-04-27 來(lái)源:eaw 收藏

摘    要:本文根據(jù)器件的特點(diǎn),介紹了應(yīng)用設(shè)計(jì)某通信設(shè)備中PCM碼流處理模塊的一種方案。并就設(shè)計(jì)中遇到的問(wèn)題進(jìn)行了分析。
關(guān)鍵詞:

本文引用地址:http://butianyuan.cn/article/5370.htm

引言
由于FPGA器件可實(shí)現(xiàn)所有數(shù)字電路功能 ,具有結(jié)構(gòu)靈活、設(shè)計(jì)周期短、硬件密度高和性能好等優(yōu)點(diǎn),在高速信號(hào)處理領(lǐng)域顯示出愈來(lái)愈重要的作用。本文研究了基于FPGA技術(shù)對(duì)PCM碼流進(jìn)行處理的實(shí)現(xiàn)方法。變換后的數(shù)據(jù)寫(xiě)入,與DSP配合可完成復(fù)雜的信號(hào)處理功能。

設(shè)計(jì)方案
某新型通信設(shè)備中,在完成調(diào)度功能的板子上,需要進(jìn)行PCM碼流處理,實(shí)現(xiàn)串/并轉(zhuǎn)換、m律編解碼以及產(chǎn)生地址等功能。
功能模塊的組成
模塊結(jié)構(gòu)如圖1所示。PCM碼流被送入FPGA,進(jìn)行并/串轉(zhuǎn)換、串/并轉(zhuǎn)換、地址碼產(chǎn)生和時(shí)序控制信號(hào)產(chǎn)生,由線性/m律、m律/線性轉(zhuǎn)換完成PCM碼流到中線性數(shù)據(jù)及RAM中線性數(shù)據(jù)到PCM碼流的轉(zhuǎn)換工作。標(biāo)準(zhǔn)JTAG接口供與PC機(jī)并行口相連 ,用于下載設(shè)計(jì)數(shù)據(jù)至FPGA中。
由于本設(shè)計(jì)的電路規(guī)模并不十分大,所以采用了原理圖和硬件描述語(yǔ)言相結(jié)合的混合方法來(lái)設(shè)計(jì)。

設(shè)計(jì)實(shí)現(xiàn)
設(shè)定FPGA接收到的PCM碼流為32路調(diào)度用戶數(shù)據(jù)。
1. 首先要完成串/并轉(zhuǎn)換使串行碼流變成8位并行輸出數(shù)據(jù),根據(jù)話音分布特性再將這8位線性數(shù)據(jù)以m律轉(zhuǎn)換成16位數(shù)據(jù)。同時(shí)產(chǎn)生地址并將變換后的數(shù)據(jù)寫(xiě)入RAM送給DSP處理。FPGA的功能框圖如圖2所示。
計(jì)數(shù)器CB8CLE的時(shí)鐘及鎖存器X74-273的時(shí)鐘CS1等都通過(guò)FPGA實(shí)現(xiàn)。數(shù)據(jù)的線性與m律的相互轉(zhuǎn)換是運(yùn)用ABLE語(yǔ)言描述實(shí)現(xiàn)的。程序如下:
Declarations
INN7..INN0 PIN;
INN = [INN7..INN0];
OUU15..OUU0 PIN istype 'COM';
OUU = [OUU15..OUU0];
A = [INN6,INN5,INN4];
B = [INN7..INN4];
Equations
WHEN((A==0)&(B<8)) THEN      OUU=[0,0,0,0,0,0,0,0,0,0,0,INN3,INN2,INN1,INN0,0];
WHEN((A==0)&(B>=8)) THEN     OUU=[1,1,1,1,1,1,1,1,1,1,1,!INN3,!INN2,!INN1,!INN0,1];
……
test_vectors
  ([INN7..INN0]-> [OUU15..OUU0])
  ^B00001000->^B0000000000010000;
  ^B00010100->^B0000000001010000;
  ^B00101010->^B0000000011010000;
……
end WE00
2. DSP處理完16位數(shù)據(jù)后,以m律解碼成8位線性數(shù)據(jù),最后完成并/串轉(zhuǎn)換送回處理過(guò)的PCM碼流。同時(shí)送出地址。功能框圖如圖3所示。
3. 數(shù)據(jù)準(zhǔn)備好后,寫(xiě)入RAM及從RAM中讀取數(shù)據(jù)所需要的讀/寫(xiě)信號(hào)、片選信號(hào)也由FPGA產(chǎn)生。
4. 模塊提供了2MHz的時(shí)鐘晶振和FRAM幀同步信號(hào)。設(shè)計(jì)將2MHz作為FPGA的工作時(shí)鐘 ,經(jīng)分頻器X74-163進(jìn)行2分頻、4分頻和8分頻后產(chǎn)生作為并聯(lián)輸出的8位取數(shù)觸發(fā)時(shí)鐘CS1。同理可產(chǎn)生經(jīng)DSP處理后的、將并行8位數(shù)據(jù)轉(zhuǎn)換回8位串行數(shù)據(jù)的取數(shù)觸發(fā)時(shí)鐘CS2。邏輯圖及觸發(fā)時(shí)鐘波形圖如圖4、圖5所示。
5. 在FPGA內(nèi)部,F(xiàn)RAM幀同步到來(lái)后 ,打開(kāi)計(jì)數(shù)器開(kāi)始計(jì)數(shù) ,并將計(jì)數(shù)結(jié)果作為地址送入外接RAM等待DSP讀取。這樣,數(shù)據(jù)就可與相應(yīng)的地址一同被送入RAM中,而不會(huì)出現(xiàn)錯(cuò)位的現(xiàn)象。此處應(yīng)注意:FRAM到來(lái)后,來(lái)第一個(gè)用戶數(shù)據(jù),計(jì)數(shù)器要先置數(shù)產(chǎn)生地址,裝入相應(yīng)的數(shù)據(jù)。而這個(gè)數(shù)據(jù)并不是第一個(gè)用戶的數(shù)據(jù),而是此刻以前的數(shù)據(jù),即第32個(gè)用戶數(shù)據(jù)。所以地址置為31(共有32個(gè)地址,設(shè)為0~31)。CPU處理完16位數(shù)據(jù)后將其送回。地址置成1,因?yàn)镕RAM同步信號(hào)到來(lái)時(shí)經(jīng)過(guò)第一個(gè)用戶數(shù)據(jù),只好從第2用戶處開(kāi)始讀取完整數(shù)據(jù)。所以置對(duì)應(yīng)地址為1。
6. 設(shè)計(jì)編譯和設(shè)計(jì)驗(yàn)證
進(jìn)行設(shè)計(jì)錯(cuò)誤檢查,綜合邏輯,將設(shè)計(jì)與FPGA器件匹配以及測(cè)試邏輯。實(shí)現(xiàn)線性與m律相互轉(zhuǎn)換設(shè)計(jì)的ABLE語(yǔ)言程序經(jīng)調(diào)試成功后,與編譯后的原理圖一起被載入基于 XC95108芯片設(shè)計(jì)的真實(shí)硬件系統(tǒng)中。經(jīng)實(shí)際檢測(cè)和驗(yàn)證表明同理論設(shè)計(jì)結(jié)果完全吻合。

遇到的問(wèn)題與解決
在運(yùn)用FPGA技術(shù)的過(guò)程中,遇到一些應(yīng)用上的問(wèn)題,并且在實(shí)踐摸索中找到了化解的方法。
毛刺問(wèn)題
輸入某一器件的信號(hào)同時(shí)變化時(shí),產(chǎn)生功能冒險(xiǎn) ,即會(huì)出現(xiàn)毛刺。毛刺對(duì)數(shù)字通信是十分有害的。通常采用取樣的方法加以消除。但是簡(jiǎn)單的與或取樣電路在加了取樣脈沖后的輸出將不是電平信號(hào)而是脈沖信號(hào)。在取樣期間,有輸出脈沖表示組合電路的輸出為“1”,無(wú)脈沖則表示輸出為“0”。可以通過(guò)加數(shù)據(jù)鎖存器的方法消除毛刺。某信碼穩(wěn)定后讀至鎖存器 ,鎖存器在下一個(gè)時(shí)鐘周期將信號(hào)輸出。輸出雖延遲一個(gè)時(shí)鐘周期 ,但是信碼序列與時(shí)鐘的相位關(guān)系沒(méi)有發(fā)生變化 ,并且毛刺完全消除 ,信碼質(zhì)量得到提高。如圖6所示,從圖中可以看出,波形2比波形1滯后一個(gè)時(shí)鐘周期,毛刺已消失。
資源利用問(wèn)題
1. 使用一個(gè)反相器將信號(hào)反相后驅(qū)動(dòng)多個(gè)負(fù)載往往會(huì)多占資源,而且延遲也增加了。所以輸入信號(hào)需要反相 ,但應(yīng)盡可能地調(diào)用輸入帶反相功能的符號(hào) ,而不是用分離的反相器對(duì)輸入信號(hào)進(jìn)行反相。
2. 由于FPGA芯片的引腳比較多,引腳處走線密度大,所以引腳超過(guò) 1 0 0時(shí),最好采用多層板,對(duì)于引腳數(shù)目較少的情況,可以盡量將用戶使用的引腳固定在外圍引腳上,減少走線密度。
其他
FPGA的每一對(duì)電源和地線引腳之間必須并聯(lián)一個(gè) 0 .1 mF的無(wú)感電容,用以進(jìn)行電源濾波和去耦。

結(jié)語(yǔ)
使用 FPGA進(jìn)行設(shè)計(jì),工作大都在計(jì)算機(jī)上完成 ,PCB板只是最后的驗(yàn)證。它采用設(shè)計(jì)輸入、功能仿真和設(shè)計(jì)修改等可以反復(fù)循環(huán)的流程 ,使設(shè)計(jì)過(guò)程具有較強(qiáng)的靈活性和高效性 ,硬件具有了一定的設(shè)計(jì)柔性 ,工作效率得到很大提高?!?/p>

參考文獻(xiàn)
1朱明程編. Xilinx數(shù)字系統(tǒng)現(xiàn)場(chǎng)集成技術(shù). 東南大學(xué)出版社,2001.10
2朱明程. FPGA原理及應(yīng)用設(shè)計(jì). 電子工業(yè)出版社,1994.5

分頻器相關(guān)文章:分頻器原理


關(guān)鍵詞: FPGA RAM 存儲(chǔ)器

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉