利用FPGA實(shí)現(xiàn)HDB3編解碼功能
摘要:HDB3(三階高密度雙極性)碼具有無直流分量、低頻成分少、連零個數(shù)不超過3個、便于提取時鐘信號等特點(diǎn)。通過對HDB3編解碼原理進(jìn)行分析和研究,提出一種基于FPGA的HDB3編解碼實(shí)現(xiàn)方法,給出Verilog HDL語言的實(shí)現(xiàn)方法和仿真波形,完成硬件電路的設(shè)計和測試,采用該方法設(shè)計的HDB3編解碼器已應(yīng)用于相關(guān)實(shí)驗(yàn)設(shè)備中。
關(guān)鍵詞:HDB3編碼;HDB3解碼;FPGA;Verilog HDL
1 引言
數(shù)字通信系統(tǒng)的某些應(yīng)用可對基帶信號不載波調(diào)制而直接傳輸,其中傳輸線路對碼型的要求如下:信碼中不宜有直流分量,低頻分量應(yīng)盡可能的少,碼型要便于時鐘信號提取。根據(jù)這些要求,ITU-T(國際電聯(lián))在G.703建議中規(guī)定,對于2 MHz、8 MHz、32 MHz速率的數(shù)字接口均采用HDB3(三階高密度雙極性)碼。HDB3碼具有無直流分量,低頻成分少,連零個數(shù)不超過3個等特點(diǎn),便于時鐘信號的提取和恢復(fù),適合在信道中直接傳輸。這里利用Verilog HDL語言設(shè)計用于數(shù)字通信系統(tǒng)中的HDB3編解碼器。
2 HDB3編碼模塊設(shè)計
要設(shè)計一個實(shí)用的編碼模塊,首先要深入研究其編碼規(guī)則及其特點(diǎn),然后根據(jù)編碼規(guī)則設(shè)計符合電路特性的編碼流程。HDB3碼的編碼規(guī)則包括:①將消息代碼變換成AMI碼,AMI碼的編碼規(guī)則是對碼流中的非“0”符號進(jìn)行正負(fù)交替;②檢查AMI碼中的連零情況,當(dāng)連零的個數(shù)小于4個時,保持AMI的形式不變;當(dāng)連零的個數(shù)達(dá)到4個或超過4個時,則將非零碼后的第4個“0”替換成V碼,其中V碼的極性與前一非零碼(+1或-1)的極性保持一致,例如,前面的非零碼是+1,則將V碼記為+V;③完成插V操作后,檢查2個相鄰V碼之間非零碼的個數(shù)是否為偶數(shù),若為偶數(shù),則再將相鄰2個V碼中后一個V碼的前一非零碼后的第一個“0”變?yōu)锽碼,B碼的極性與前一非“0”碼的極性相反,同時B碼后面的非“0”碼極性再次進(jìn)行交替變換,保證極性交替反轉(zhuǎn)特性。
編碼規(guī)則中出現(xiàn)的V碼、B碼只是作為標(biāo)識符,最終的電路實(shí)現(xiàn)還是“0”和“1”這兩種邏輯電平,因此需要采用二進(jìn)制編碼對“1”、“0”、V、B進(jìn)行編碼,“00”表示“0”、“0l”表示“1”,“10”表示B,“11”表示V。根據(jù)編碼規(guī)則和利用FPGA實(shí)現(xiàn)的特點(diǎn),將編碼過程:首先插入V碼,然后插入B碼,最后是單雙極性變換。如果按照編碼規(guī)則的順序設(shè)汁.應(yīng)該首先進(jìn)行單雙極性變換,在完成插V和插B后,還需根據(jù)編碼規(guī)則變換當(dāng)前B碼之后的非零碼的極性,這需要大量的寄存器來保存當(dāng)前數(shù)據(jù)的狀態(tài),導(dǎo)致電路非常復(fù)雜,占用大量的FPGA內(nèi)部邏輯單元,實(shí)現(xiàn)難度大,且成本高。HDB3編碼過程示意圖如圖l所示。
評論