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