利用FPGA實現(xiàn)HDB3編解碼功能
2.1 插入V碼過程
插入V碼過程是對消息代碼里的連零串進行檢測,一旦出現(xiàn)4個連零串的時候,就把第4個“O”替換成破壞符V,其他情況下消息代碼原樣輸出。輸入的代碼經(jīng)插V操作后全部轉(zhuǎn)換成雙相碼,即“0”變換成“00”,“1”變換成“01”,V變換成“l(fā)l”。圖2是插入V碼過程的流程,代碼輸入到插V模塊后,如果輸入是“l(fā)”,則輸出為“01”,同時計數(shù)器清零;如果輸入是“O”.則對輸入“O”的個數(shù)進行計數(shù),當(dāng)計數(shù)器計數(shù)到第4個“O”時,輸出“11”作為V碼,同時計數(shù)器要清零用于下一輪檢測;計數(shù)器未滿4個“0”,則輸出“00”。 本文引用地址:http://www.ex-cimer.com/article/191774.htm
2.2 插入B碼過程
當(dāng)相鄰兩個V碼之間有偶數(shù)個非“0”碼時.則把后一個V碼之前的第1個非“0”碼后面的“0”碼變換成B碼。該模塊設(shè)計的難點在于插入B碼的過程中涉及一個由現(xiàn)在事件的狀態(tài)控制過去事件狀態(tài)的問題,按照實時信號處理的理論,這是無法實現(xiàn)的,這里使用兩組4位移位寄存器。采用4位移位寄存器是根據(jù)HDB3編碼規(guī)則的特點確定,經(jīng)插V后,連零串中的第4個“0”變成V碼,代碼中連零個數(shù)最多是3個,而插入B碼操作是把在后一個V碼之前的第1個非零碼之后的“O”變換成B碼,這個長度不超過3個“0”,因此只需4位寄存器就可通過判斷現(xiàn)在的輸入狀態(tài)來決定是否應(yīng)插入B碼。圖3是判斷是否插入B碼的流程.2組4位移位寄存器在時鐘的作用下逐位將數(shù)據(jù)移出,在移位的同時還需對寄存器的最低位進行操作,即判斷是否需插入B碼。這部分功能的實現(xiàn)需設(shè)置一個檢測當(dāng)前V碼狀態(tài)的標(biāo)志位firstv。
評論