基于EDA的數(shù)據(jù)傳輸系統(tǒng)的HDB3編碼器
2.2 插“B”模塊的實現(xiàn)
插“B”模塊的建模思路是當(dāng)相鄰“V”符號之間有偶數(shù)個非0符號時,把后一小段的第1個“0”變換成一個“B”符號??捎靡粋€4位的移位寄存器來實現(xiàn)延遲,這樣經(jīng)插“V”處理過的碼元,可在同步時鐘的作用下同時進行是否插“B”的判決,等到碼元從移位寄存器里出來的時候,就可以決定是應(yīng)該變換成“B”符號,還是照原碼輸出。輸出端用“11”表示符號“V”,“01”表示“1”碼, “00”表示“0”碼,“10”表示符號“B”。其模型如圖3所示,VHDL的結(jié)構(gòu)代碼如artb:
2.3 單極性變雙極性的實現(xiàn)
根據(jù)編碼規(guī)則, “B”符號的極性與前一非零符號相反,“V”極性符號與前一非零符號一致。因此,可對“V”單獨進行極性變換(“V”已經(jīng)由“11”標(biāo)識,相鄰“V”的極性是正負交替的),余下的“1”和“B”看成一體進行正負交替,從而完成HDB3的編碼。
因為經(jīng)過插“B”模塊后, “V”、 “B”、“1”已經(jīng)分別用雙相碼“11”、 “10”、 “01”標(biāo)識。“0”用“00”標(biāo)識。而在實際應(yīng)用中,CPLD或FPGA端口的輸出電壓只有正極性電壓,且在波形仿真中也只有“+1”和“0”,而無法識別“-1”。所以要得到所需HDB3編碼的結(jié)果,需定義“00”、“01”、“10”來分別表示“0”、 “-1”、 “+1”。可將插“B”模塊后輸出的“00”、“01”、“10”、“11”組合轉(zhuǎn)換為“00”、“01”、 “10”組合,再通過“00”、 “01”、“10”控制四選一數(shù)字開關(guān)的地址來選擇輸出通道,就可以實現(xiàn)0、-B、+B。本設(shè)計使用CC4052的一組通道作為四選一數(shù)字開關(guān),從而將CPLD或FPGA目標(biāo)芯片的標(biāo)識性輸出轉(zhuǎn)換成雙極性信號,最終實現(xiàn)HDB3非歸零編碼。CC4052的接線如圖4所示,所實現(xiàn)的地址控制器的模型如圖5所示。其VHDL結(jié)構(gòu)代碼如artd:
評論