《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于CPLD的信道編解碼器的設(shè)計(jì)與實(shí)現(xiàn)
基于CPLD的信道編解碼器的設(shè)計(jì)與實(shí)現(xiàn)
Icbuy
Icbuy
摘要:  通過對(duì)可編程邏輯器件CPLD用VHDL語言進(jìn)行編程,,實(shí)現(xiàn)編碼譯碼過程,,本設(shè)計(jì)采用HDB3碼對(duì)可編成邏輯器件進(jìn)行編程,。
Abstract:
Key words :
  0 引言

  通過對(duì)可編程邏輯器件CPLDVHDL語言進(jìn)行編程,,實(shí)現(xiàn)編碼譯碼過程,本設(shè)計(jì)采用HDB3碼對(duì)可編成邏輯器件進(jìn)行編程,。

  1 CPLD相關(guān)內(nèi)容及信道編解碼

  CPLD(Complex Programmable Logic Device)是復(fù)雜可編程邏輯器件的簡稱,,它是20世紀(jì)90年代初期出現(xiàn)的高密度可編程邏輯器件,采用E2CMOS工藝制作,,一般由三種可編程電路組成,,即可編程邏輯宏單元,可編程輸入/輸出單元和可編程內(nèi)部連線,。它可利用EDA技術(shù)中的MAX+ PLUS2作為開發(fā)工具,,將設(shè)計(jì)的電路圖或硬件描述語言編寫的程序綜合成網(wǎng)表文件寫入其中,制成ASIC芯片,。CPLD的突出優(yōu)點(diǎn)是可反復(fù)編程,,集成度非常高,數(shù)據(jù)速率快,,同時(shí)具有較大的靈活性,。

  2 編碼器的VHDL建模與程序設(shè)計(jì)

  2.1 HDB3碼編碼規(guī)則

  HDB3碼是AMI碼的改進(jìn)型,稱為三階高密度雙極性碼,,它克服了AMI碼的長連0串現(xiàn)象,。HDB3碼的編碼規(guī)則為先檢查消息代碼(二進(jìn)制)的連0串,若沒有4個(gè)或4個(gè)以上連0串,,則按照AMI碼的編碼規(guī)則對(duì)消息代碼進(jìn)行編碼,;若出現(xiàn)4個(gè)或4個(gè)以上連0串,則將每4個(gè)連0小段的第4個(gè)0變換成與前一非0符號(hào)(+1或-1)同極性的V符號(hào),,同時(shí)保證相鄰Y符號(hào)的極性交替(即+1記為+V,,-1記為-V);接著檢查相鄰V符號(hào)間非0符號(hào)的個(gè)數(shù)是否為偶數(shù),,若為偶,,則將當(dāng)前的V符號(hào)的前一非0符號(hào)后的第1個(gè)0變?yōu)?B或-B符號(hào),且B的極性與前一非0符號(hào)的極性相反,,并使后面的非0符號(hào)從V符號(hào)開始再交替變化,。

  2.2 HDB3編碼器的VHDL建模與程序設(shè)計(jì)

  HDB3碼的VHDL建模思想是在消息代碼的基礎(chǔ)上,依據(jù)HDB3編碼規(guī)則進(jìn)行插入“V”符號(hào)和“B”符號(hào)的操作,,且用2位二進(jìn)制代碼分別表示,。最后完成單極性信號(hào)變成雙極性信號(hào)的轉(zhuǎn)換。其編碼模型如圖1所示,。

a.jpg

  2.2.1 插“V”模塊的實(shí)現(xiàn)

  插“V”模塊主要是對(duì)消息代碼里的四連0串的檢測,,即當(dāng)出現(xiàn)四個(gè)連0串的時(shí)候,把第四個(gè)“0”變換成符號(hào)“V”,,用“11”標(biāo)識(shí),。“1”用“01”標(biāo)識(shí),,“0”用“00”標(biāo)識(shí)。實(shí)現(xiàn)的VHDL結(jié)構(gòu)代碼如arty:

b.jpg

  2.2.2 插“B”模塊的實(shí)現(xiàn)

  插“B”模塊的建模思路是當(dāng)相鄰“V”符號(hào)之間有偶數(shù)個(gè)非0符號(hào)時(shí),,把后一小段的第1個(gè)“0”變換成一個(gè)“B”符號(hào),。可用一個(gè)4位的移位寄存器來實(shí)現(xiàn)延遲,,這樣經(jīng)插“V”處理過的碼元,,可在同步時(shí)鐘的作用下同時(shí)進(jìn)行是否插“B”的判決,等到碼元從移位寄存器里出來的時(shí)候,,就可以決定是應(yīng)該變換成“B”符號(hào),,還是照原碼輸出。輸出端用“11”表示符號(hào)“V”,,“01”表示“1”碼,,“00”表示“0”碼,“10”表示符號(hào)“B”,。VHDL的結(jié)構(gòu)代碼如artb:

c.jpg

d.jpg

  2.3 單極性變雙極性的實(shí)現(xiàn)

  因?yàn)榻?jīng)過插“B”模塊后,,“V”,、“B”,、“1”已經(jīng)分別用雙相碼“11”、“10”,、“01”標(biāo)識(shí),。“0”用“00”標(biāo)識(shí)。而在實(shí)際應(yīng)

  用中,,CPLD或FPGA端口的輸出電壓只有正極性電壓,,且在波形仿真中也只有“+1”和“0”,而無法識(shí)別“-1”,。所以要得到所需HDB3編碼的結(jié)果,,需定義“00”、“01”,、“10”來分別表示“0”,、“-1”、“+1”,??蓪⒉?ldquo;B”模塊后輸出的“00”、“01”,、“10”,、“11”組合轉(zhuǎn)換為“00”、“01”,、“10”組合,,再通過“00”、“01”、“10”控制四選一數(shù)字開關(guān)的地址來選擇輸出通道,,就可以實(shí)現(xiàn)0,、-B、+B,。本設(shè)計(jì)使用CC4052的一組通道作為四選一數(shù)字開關(guān),,從而將CPLD或FPGA目標(biāo)芯片的標(biāo)識(shí)性輸出轉(zhuǎn)換成雙極性信號(hào),最終實(shí)現(xiàn)HDB3非歸零編碼,。

  2.4 HDB3編碼器的仿真

  在此,,以四連“0”的可能性通過多“0”消息代碼進(jìn)行分析,并利用EDA工具對(duì)VHDL源程序進(jìn)行編譯,、適配,、優(yōu)化、邏輯綜合與仿真,。仿真結(jié)果顯示其完全可以達(dá)到編碼要求,。而將HDB3編碼硬件描述下載到CPLD或FPGA目標(biāo)芯片中,然后連接好CC4052進(jìn)行實(shí)際應(yīng)用測試(用示波器測得)的編碼波形如圖2所示,。

e.jpg

  3 實(shí)驗(yàn)結(jié)果

  利用QUARTUS2開發(fā)工具進(jìn)行編譯和仿真,,HDB3碼器仿真波形如圖3所示。

f.jpg

  4 結(jié)論

  本設(shè)計(jì)主要是通過用VHDL語言對(duì)可編程邏輯器件CPLD進(jìn)行控制,,基于Altera公司的Quartus X軟件開發(fā)平臺(tái),,以原理圖和VHDL語言方法混合輸入設(shè)計(jì),實(shí)現(xiàn)了信道編碼,、HDB3碼和卷積碼的編解碼過程,。該設(shè)計(jì)方案與專用的基帶傳輸碼型編碼芯片相比,有以下優(yōu)勢:體積小,,集成度高,,開發(fā)周期短,設(shè)計(jì)過程簡單便捷,,運(yùn)行速度快,,使用方便,成本低,。本文設(shè)計(jì)的編碼器能夠彌補(bǔ)專用基帶傳輸碼型編碼芯片的不足,,具備一定的工程應(yīng)用價(jià)值。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。