新聞中心

EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于FPGA的8B/10B編解碼設(shè)計(jì)

基于FPGA的8B/10B編解碼設(shè)計(jì)

作者: 時(shí)間:2010-08-06 來(lái)源:網(wǎng)絡(luò) 收藏


8B/編碼模塊是整個(gè)系統(tǒng)主體部分之一,該模塊在邏輯上又分成3B/4B編碼模塊、5B/6B編碼模塊、RD控制模塊等3部分,如圖2所示。編碼器首先將接收到的8B數(shù)據(jù)分成3 bit和5 bil兩部分,然后分別編碼成4 bit和6 bit,編碼完成的4 bit和6 bit再按順序組合成lOB碼。整個(gè)系統(tǒng)首先將3 bit編碼成4 bit,RD控制器讀出4 bit數(shù)據(jù)的RD值,然后反饋控制5B/6B編碼模塊選擇合適的編碼。最終RD控制器判斷數(shù)據(jù)的RD值,若滿足要求則輸出,否則將報(bào)錯(cuò)。系統(tǒng)采用的編碼列表主要包括以下4種編碼:
1)“1”和“0”相鄰的完美平衡代碼 例如,通過(guò)查找3B到4B(簡(jiǎn)稱(chēng)3B/4B表)與5B到6B編碼表(簡(jiǎn)稱(chēng)5B/6B表)可知,如編碼“1001”與編碼“010101”,該類(lèi)編碼的RD值為0而且與其他任何形式的代碼組合都不會(huì)出現(xiàn)RD值超過(guò)±2或者連續(xù)的“0”“1”超過(guò)3個(gè)的情況,所以該類(lèi)代碼采用一對(duì)一的關(guān)系。
2)“l(fā)”和“O”有間隔的完美平衡代碼 例如,3B/4B表的編碼-3“1100”和“0011”與5B/6B表編碼-7“111000”和“000111”,該類(lèi)編碼的RD值為O,與其他代碼組合不會(huì)出現(xiàn)RD值超過(guò)±2的情況,但是會(huì)出現(xiàn)過(guò)多的連續(xù)“0”“l(fā)”的情況。所以該類(lèi)代碼采用一對(duì)二的關(guān)系。例如5B/6B表的編碼-7,如果采用“111000”和4B碼末位為“1”的代碼組合就會(huì)出現(xiàn)連續(xù)的“1”超過(guò)3的情況,此時(shí)就應(yīng)該采用“000-111”來(lái)避免該情況的發(fā)生。
3)“l(fā)”和“0”有間隔的不平衡代碼 例如3B/4B表的編碼4-“0100”和“1011”、“0010”和“110l”,5B到6B編碼表的編碼4-“110-101”和“001010”,該類(lèi)編碼的RD值是+2或者-2,與其他代碼組合有可能出現(xiàn)RD值為±4的情況,所以該類(lèi)代碼也采用一對(duì)二的關(guān)系。例如5B/6B表的編碼4,如果與RD值為+2的4B代碼組合時(shí)就采用RD值為-2的“001010”代碼,反之與RD值為-2的4B代碼組合時(shí)就采用RD值為+2的“110101”代碼。如果與RD值為0的代碼組合時(shí)就隨意采用一個(gè)代碼即可。
4)3個(gè)連續(xù)“1”或“O”的不平衡代碼 例如3B/4B表的編碼7-“0001”“l(fā)ll0”“1000”“0111”,該類(lèi)代碼與其他代碼組合時(shí)的RD值問(wèn)題同于第三類(lèi)代碼的處理方法,為了防止更多連續(xù)“l(fā)”或“0”出現(xiàn),提供了4種代碼選擇,結(jié)合具體情況特殊考慮。
通過(guò)上述對(duì)編碼代碼列表的討論,不難看出在實(shí)際的程序設(shè)計(jì)中需要避免如下3種情況出現(xiàn):RD值為+2的4B代碼和RD值為+2的6B代碼組合;RD值為-2的4B代碼和RD值為-2的6B代碼組合;連續(xù)4個(gè)或4個(gè)以上的“0”“l(fā)”的代碼。前兩種情況可通過(guò)代碼分組4B和6B代碼,輪流選擇6B和4B代碼的方法,該方法可以通過(guò)狀態(tài)機(jī)實(shí)現(xiàn)。程序流程如圖3所示。



關(guān)鍵詞: FPGA 10B 編解碼

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉