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