專利名稱:基于rd-的8b/10b解碼電路的制作方法
技術領域:
本發明涉及一種解碼電路,尤其涉及一種基于rd-的8b/10b解碼電路。
背景技術:
8b/10b,也叫做8比特/10比特,是目前許多高速串行總線采用的編碼機制,如1394b、Serial ΑΤΑ、PCI Express、Infin1-band、Fibre Channel (網狀通道)、RapidIO 等總線或網絡等。8b/10b編碼的特性之一是保證DC平衡,采用8b/10b編碼方式,可使得發送的“O”、“ I”數量保持基本一致,連續的“ I”或“O”不超過5位,即每5個連續的“ I”或“O”后必須插入一位“O”或“ I ”,從而保證信號DC平衡,它就是說,在鏈路超時時不致發生DC失調。通過8b/10b編碼,可以保證傳輸的數據串在接收端能夠被正確復原,除此之外,利用一些特殊的代碼(在PC1-Express總線中為K碼),可以幫助接收端進行還原的工作,并且可以在早期發現數據位的傳輸錯誤,抑制錯誤繼續發生。8b/10b編碼是將一組連續的8位數據分解成兩組數據,一組3位,一組5位,經過編碼后分別成為一組4位的數據和一組6位的數據,從而組成一組10位的數據發送出去。相反,解碼是將I組10位的輸入數據經過變換得到8位數據位。數據值可以統一的表示為DX.Y或KX.Y,其中D表示為數據字符,K表示為控制字符,X表示輸入的原始數據的低5位EDCBA,Y表示輸入的原始數據的高3位HGF。現有8b/10b解碼電路大多采用查表的方法實現8b/10b解碼,以數據字符的8b/10b解碼為例,現有8b/10b解碼電路需512個寬度為8比特的寄存器來存儲相關數據,占用的存儲器資源較多。
發明內容
本發明所要解決的技術問題是提供一種基于rd-的8b/10b解碼電路,能大量節省存儲器資源。為解決上述技術問題,本發明提供的基于rd-的8b/10b解碼電路由6b預處理模塊、4b預處理模塊、基于rd-的5b/6b數據字符解碼器、基于rd-的5b/6b控制字符解碼器、基于rd-的3b/4b數據字符解碼器、基于rd-的3b/4b控制字符解碼器、數據合并模塊以及兩個異或模塊構成;外部輸入數據為10比特數據,該10比特數據拆分為前6比特數據和后4比特數據,所述前6比特數據輸入到所述6b預處理模塊,所述后4比特數據輸入到所述4b預處理模塊;一當前字符極性信號,分別輸入到所述6b預處理模塊和第一異或模塊;該當前字符極性信號表示當前輸入字符的極性,所述6b預處理模塊在當前字符極性信號的控制下對所述前6比特數據進行預處理操作,并輸出第一數據字符數據,第一控制字符數據和第一極性變化標示符信號;第一異或模塊用于對所述當前字符極性信號和所述第一極性變化標示符信號進行異或處理并輸出第二字符極性信號;所述第二字符極性信號分別輸入到所述4b預處理模塊和第二異或模塊;所述4b預處理模塊在第二字符極性信號的控制下對所述后4比特數據進行預處理操作,并輸出第二數據字符數據,第二控制字符數據和第二極性變化標示符信號;第二異或模塊用于對所述第二字符極性信號和所述第二極性變化標示符信號進行異或處理,產生下一字符極性信號,并將所述下一字符極性信號對外輸出;所述第一數據字符數據輸入到所述基于rd-的5b/6b數據字符解碼器進行處理,并輸出第一數據字符解碼數據和第一數據字符解碼標示符信號;所述第一控制字符數據輸入到所述基于rd-的5b/6b控制字符解碼器進行處理,并輸出第一控制字符解碼數據和第一控制字符解碼標示符信號;所述第二數據字符數據輸入到所述基于rd-的3b/4b數據字符解碼器進行處理,并輸出第二數據字符解碼數據和第二數據字符解碼標示符信號;所述第二控制字符數據輸入到所述基于rd-的3b/4b控制字符解碼器進行處理,并輸出第二控制字符解碼數據和第二控制字符解碼標示符信號;所述第一數據字符解碼數據、第一數據字符解碼標示符信號、所第一控制字符解碼數據、第一控制字符解碼標示符信號、第二數據字符解碼數據、第二數據字符解碼標示符信號、第二控制字符解碼數據和第二控制字符解碼標示符信號輸入到所述數據合并模塊,進行處理并輸出一8比特的輸出數據和一指示符信號。本發明能大量節省存儲器資源,以數據字符的8b/10b解碼為例,本發明只需8個3比特和32個5比特的寄存器來存儲數據,所占存儲資源僅為現有8b/10b解碼電路的
4.492 %,資源節省效果非常顯著。
下面結合附圖和具體實施方式
對本發明作進一步詳細的說明:附圖是本發明實施例基于rd-的8b/10b解碼電路結構圖。
具體實施例方式本發明中所涉及的rd指的是運行字符不一致,也稱為極性,即指字符中I的數目和O的數目不一致;其中,rd+為字符中的I比O多,此時為正(+)不一致;rd-為字符中的I比O少,此時為負㈠不一致。結合附圖所示,所述基于rd-的8b/10b解碼電路,將外部輸入的10比特數據拆分為前6比特數據和后4比特數據,分別送入6b預處理模塊和4b預處理模塊。前6比特數據經6b預處理模塊預處理后,產生的第一數據字符數據data_6b和第一控制字符數據ctl_6b分別送往基于rd-的5b/6b數據字符解碼器和基于rd-的5b/6b控制字符解碼器。后4比特數據經4b預處理模塊預處理后,產生的第二數據字符數據data_4b和第二控制字符數據ctl_4b分別送往基于rd-的3b/4b數據字符解碼器和基于rd-的3b/4b控制字符解碼器。最后,經四個解碼器解碼后的數據都送往數據合并模塊,該數據合并模塊從這些數據中選擇合適的數據,合并成8比特的數據并通過數據輸出端dout輸出。第一異或模塊通過對6b預處理模塊輸出的第一極性變化標不符信號rd_flag_6b和當前字符極性信號crd進行異或操作產生第二極性變化標示符信號rd_6b,用來控制4b預處理模塊做進一步運算。第二異或模塊通過對4b預處理模塊輸出的第二極性變化標示符信號rd_f lag_4b和第二極性變化標示符信號rd_6b進行異或操作,產生下一字符極性信號nrd并輸出。所述6b預處理模塊將前6比特輸入數據轉化成可進行rd-解碼的數據的過程是,如果外部輸入的當前字符極性信號crd為rd+域,則將輸入數據分別按照數據字符轉化規則和控制字符轉化規則從rd+域轉化到rd-域,分別通過其輸出端送往基于rd-的5b/6b數據字符解碼器和基于rd-的5b/6b控制字符解碼器;如果外部輸入的當前字符極性信號crd為rd-域,則直接將輸入數據分別通過其輸出端送往基于rd-的5b/6b數據字符解碼器和基于rd-的5b/6b控制字符解碼器;在數據預處理過程中極性的變化,通過第一極性變化標不符信號rd_f lag_6b輸出。所述4b預處理模塊將后4比特輸入數據轉化成可進行rd-解碼的數據的過程是,如果外部輸入的當前字符極性信號crd為rd+域,則將輸入數據分別按照數據字符轉化規則和控制字符轉化規則從rd+域轉化到rd-域,分別通過其輸出端送往基于rd-的3b/4b數據字符解碼器和基于rd-的3b/4b控制字符解碼器;如果外部輸入的當前字符極性信號crd為rd-,則直接將輸入數據分別通過其輸出端送往基于rd-的3b/4b數據字符解碼器和基于rd-的3b/4b控制字符解碼器;在數據預處理過程中極性的變化情況,通過第二極性變化標不符信號rd_f lag_4b輸出。所述基于rd-的5b/6b數據字符解碼器是基于數據字符的rd_解碼規則來進行5b/6b解碼操作的解碼器,所做的操作為:將所述第一數據字符數據data_6b按照數據字符的rd-解碼規則來進行5b/6b解碼,產生所述第一數據字符解碼數據dout_data_6b,而所述第一數據字符解碼標示符信號flag_data_6b則用來表示該解碼操作是否成功。所述基于rd-的5b/6b控制字符解碼器是基于控制字符的rd_解碼規則來進行5b/6b解碼操作的解碼器,所做的操作為:將所述第一控制字符數據ctl_6b按照控制字符的rd-解碼規則來進行5b/6b解碼,產生所述第一控制字符解碼數據dout_ctl_6b,而所述第一控制字符解碼標示符信號flag_ctl_6b則用來表示該解碼操作是否成功。所述基于rd-的3b/4b數據字符解碼器是基于數據字符的rd_解碼規則來進行3b/4b解碼操作的解碼器,所做的操作為:將所述第二數據字符數據data_4b按照數據字符的rd-解碼規則來進行3b/4b解碼,產生所述第二數據字符解碼數據dout_data_4b輸出,而所述第二數據字符解碼標示符信號flag_data_4b則用來表示該解碼操作是否成功。所述基于rd-的3b/4b控制字符解碼器是基于控制字符的rd_解碼規則來進行3b/4b解碼操作的解碼器,所做的操作為:將所述第二控制字符數據ctl_4b按照控制字符的rd-解碼規則來進行3b/4b解碼,產生所述第二控制字符解碼數據dout_ctl_4b,而所述第二控制字符解碼標示符信號flag_ctl_4b則用來表示該解碼操作是否成功。所述數據合并模塊是從四組輸入數據中選擇合適的數據,合并成八比特的數據并輸出;所做的操作為:如果所述第一數據字符解碼標示符信號flag_data_6b和所述第二數據字符解碼標示符信號flag_data_4b都表示各自的解碼操作是成功的,則將所述第一數據字符解碼數據dout_data_6b作為低5位,所述第二數據字符解碼數據dout_data_4b作為高3位,合并成8比特位寬的所述輸出數據,且所述指示符信號symbol表示當前輸出的是數據字符;如果所述第一控制字符解碼標示符信號flag_ctl_6b和所述第二控制字符解碼標示符信號flag_ctl_4b都表示各自的解碼操作是成功的,則將所述第一控制字符解碼數據dout_ctl_6b作為低5位,所述第二控制字符解碼數據dout_ctl_4b作為高3位,合并成8比特位寬的所述輸出數據,且所述指示符信號symbol表示當前輸出的是控制字符。所述第一異或模塊是對外部輸入的當前字符極性信號crd以及6b預處理模塊的第一極性變化標示符信號rd_flag_6b做異或運算,并通過輸出端輸出第二極性變化標示符信號rd_6b。所述第二異或模塊是對第二極性變化標示符信號rd_6b以及4b預處理模塊的第二極性變化標示符信號rd_flag_4b做異或運算,并通過輸出端輸出下一字符極性信號nr do下面是一個具體的實施例。結合附圖所示,當外部輸入的數據為10’ bl0_1000_0011,且當前字符極性信號crd為rd+域時,數據拆分的前6比特數據為6’ b00_0011,后4比特數據為4’ blOlO。在6b預處理模塊中,前6比特數據和當前字符極性信號crd送入6b預處理模塊后,由于當前字符極性信號crd為rd+域,與解碼的極性相反,故將輸入數據6’b00_0011分別按照數據字符轉化規則和控制字符轉化規則從rd+域轉化到rd-域,得到的第一數據字符數據data_6b和第一控制字符數據ctl_6b都為6’bll_1100,而6b預處理模塊的第一極性變化標示符信號rd_flag_6b所表示的極性發生了改變。在第一異或模塊中,由于第一極性變化標不符信號rd_flag_6b所表不的極性發生了改變,故第二極性變化標示符信號rd_6b為當前字符極性信號crd的取反,為rd-域。在4b預處理模塊中,后4比特數據和第二極性變化標示符信號rd_6b送入4b預處理模塊后,由于第二極性變化標示符信號rd_6b的極性為rd-域,與解碼的極性相同,故將輸入數據直接通過其輸出端輸出,第二數據字符數據data_4b和第二控制字符數據ctl_4b都為4’bl010,4b預處理模塊輸出的第二極性變化標示符信號rd_f lag_4b所表示的極性也發生了改變。在第二異或模塊中,由于第二極性變化標示符信號rd_flag_4b所表示的極性發生了改變,故下一字符極性信號nrd為第二極性變化標示符信號rd_6b的取反,為rd+域。在基于rd-的5b/6b數據字符解碼器中,對輸入數據6’ bll_11001進行基于數據字符的rd-解碼規則來進行5b/6b解碼后,得到第一數據字符解碼數據dout_data_6b為5’ b0,第一數據字符解碼標示符信號flag_data_6b表示為失敗。在基于rd-的5b/6b控制字符解碼器中,對輸入數據6’ bll_1100進行基于控制字符的rd-解碼規則來進行5b/6b解碼后,得到的第一控制字符解碼數據dout_Ctl_6b為5’ bl_1100,第一控制字符解碼標示符信號flag_ctl_6b表示為成功。在基于rd-的3b/4b數據字符解碼器中,對輸入數據4’ blOlO進行基于數據字符的rd-解碼規則來進行3b/4b解碼后,得到的第二數據字符解碼數據dout_data_4b為3’ b010,第二數據字符解碼標示符信號flag_data_4b表示為成功;在基于rd-的3b/4b控制字符解碼器中,對輸入數據4’ blOlO進行基于控制字符的rd-解碼規則來進行3b/4b解碼后,得到的第二控制字符解碼數據dout_Ctl_4b為3’ blOl,第二控制字符解碼標示符信號flag_ctl_4b表示為成功。在數據合并模塊中,當收到四組被解碼后的數據后,由于第一數據字符解碼標示符信號flag_data_6b表示為失敗,而第一控制字符解碼標示符信號flag_ctl_6b和第二控制字符解碼標示符信號flag_ctl_4b都表示為成功,故輸出數據由第一控制字符解碼數據dout_ctl_6b和第二控制字符解碼數據dout_ctl_4b組成,其中第一控制字符解碼數據dout_ctl_6b做低5位,第二控制字符解碼數據dout_ctl_4b做高3位,合并后的數據為:8’ bl011_1100,且指示符信號symbol表示為控制字符,即K28.5。以上通過具體實施方式
和實施例對本發明進行了詳細的說明,但這些并非構成對本發明的限制。在不脫離本發明原理的情況下,本領域的技術人員還可做出許多變形和改進,這些也應視為本發明的保護范圍。
權利要求
1.一種基于rd-的8b/10b解碼電路,其特征在于:由6b預處理模塊、4b預處理模塊、基于rd-的5b/6b數據字符解碼器、基于rd-的5b/6b控制字符解碼器、基于rd-的3b/4b數據字符解碼器、基于rd-的3b/4b控制字符解碼器、數據合并模塊以及兩個異或模塊構成; 外部輸入數據為10比特數據,該10比特數據拆分為前6比特數據和后4比特數據,所述前6比特數據輸入到所述6b預處理模塊,所述后4比特數據輸入到所述4b預處理模塊;一當前字符極性信號,分別輸入到所述6b預處理模塊和第一異或模塊;該當前字符極性信號表示當前輸入字符的極性,所述6b預處理模塊在當前字符極性信號的控制下對所述前6比特數據進行預處理操作,并輸出第一數據字符數據,第一控制字符數據和第一極性變化標示符信號; 第一異或模塊用于對所述當前字符極性信號和所述第一極性變化標示符信號進行異或處理并輸出第二字符極性信號; 所述第二字符極性信號分別輸入到所述4b預處理模塊和第二異或模塊;所述4b預處理模塊在第二字符極性信號的控制下對所述后4比特數據進行預處理操作,并輸出第二數據字符數據,第二控制字符數據和第二極性變化標示符信號; 所述第二異或模塊用于對所述第二字符極性信號和所述第二極性變化標示符信號進行異或處理,產生下一字符極性信號,并將所述下一字符極性信號對外輸出; 所述第一數據字符數據輸入到所述基于rd-的5b/6b數據字符解碼器進行處理,并輸出第一數據字符解碼數據和第一數據字符解碼標示符信號; 所述第一控制字符數據輸入到所述基于rd-的5b/6b控制字符解碼器進行處理,并輸出第一控制字符解碼數據和第一控制字符解碼標示符信號; 所述第二數據字符數據輸入到所述基于rd-的3b/4b數據字符解碼器進行處理,并輸出第二數據字符解碼數據和第二數據字符解碼標示符信號; 所述第二控制字符數據輸入到所述基于rd-的3b/4b控制字符解碼器進行處理,并輸出第二控制字符解碼數據和第二控制字符解碼標示符信號; 所述第一數據字符解碼數據、第一數據字符解碼標示符信號、第一控制字符解碼數據、第一控制字符解碼標示符信號、第二數據字符解碼數據、第二數據字符解碼標示符信號、第二控制字符解碼數據和第二控制字符解碼標示符信號輸入到所述數據合并模塊,進行處理并輸出一8比特的輸出數據和一指示符信號。
2.如權利要求1所述的解碼電路,其特征在于:所述6b預處理模塊將所述前6比特數據轉化成可進行rd-解碼運算的數據,如果外部輸入的所述當前字符極性信號為rd+,則將所述前6比特數據分別按照數據字符轉化規則和控制字符轉化規則從rd+域轉化到rd-域,并將轉化后產生的第一數據字符數據,第一控制字符數據分別送往基于rd-的5b/6b數據字符解碼器和基于rd-的5b/6b控制字符解碼器;如果外部輸入的所述當前字符極性信號為rd-,則所述前6比特數據直接產生第一數據字符數據,第一控制字符數據,并分別送往基于rd-的5b/6b數據字符解碼器和基于rd-的5b/6b控制字符解碼器;在數據預處理過程中發生的極性變化情況,通過第一極性變化標示符信號輸出。
3.如權利要求1所述的解碼電路,其特征在于:所述4b預處理模塊將所述后4比特數據轉化成可進行rd-解碼運算的數據,如果所述第二字符極性信號為rd+,則將所述后4比特數據分別按照數據字符轉化規則和控制字符轉化規則從rd+域轉化到rd-域,并將轉化后產生的第二數據字符數據,第二控制字符數據分別送往基于rd-的3b/4b數據字符解碼器和基于rd-的3b/4b控制字符解碼器;如果所述第二字符極性信號為rd-,則所述后4比特數據直接產生第二數據字符數據,第二控制字符數據,并分別送往基于rd-的3b/4b數據字符解碼器和基于rd-的3b/4b控制字符解碼器;在數據預處理過程中發生的極性變化情況,通過第二極性變化標示符信號輸出。
4.如權利要求1所述的解碼電路,其特征在于:所述基于rd-的5b/6b數據字符解碼器是基于數據字符的rd-解碼規則來進行5b/6b解碼操作的解碼器,所做的操作為:將所述第一數據字符數據按照數據字符的rd-解碼規則來進行5b/6b解碼,產生所述第一數據字符解碼數據,而所述第一數據字符解碼標示符信號則用來表示該解碼操作是否成功。
5.如權利要求1所述的解碼電路,其特征在于:所述基于rd-的5b/6b控制字符解碼器是基于控制字符的rd -解碼規則來進行5b/6b解碼操作的解碼器,所做的操作為:將所述第一控制字符數據按照控制字符的rd-解碼規則來進行5b/6b解碼,產生所述第一控制字符解碼數據,而所述第一控制字符解碼標示符信號則用來表示該解碼操作是否成功。
6.如權利要求1所述的解碼電路,其特征在于:所述基于rd-的3b/4b數據字符解碼器是基于數據字符的rd-解碼規則來進行3b/4b解碼操作的解碼器,所做的操作為:將所述第二數據字符數據按照數據字符的rd-解碼規則來進行3b/4b解碼,產生所述第二數據字符解碼數據,而所述第二數據字符解碼標示符信號則用來表示該解碼操作是否成功。
7.如權利要求1所述的解碼電路,其特征在于:所述基于rd-的3b/4b控制字符解碼器是基于控制字符的rd-解碼規則來進行3b/4b解碼操作的解碼器,所做的操作為:將所述第二控制字符數據按照控制字符的rd-解碼規則來進行3b/4b解碼,產生所述第二控制字符解碼數據,而所述第二控制字符解碼標示符信號則用來表示該解碼操作是否成功。
8.如權利要求1所述的解碼電路,其特征在于:所述數據合并模塊是從四組輸入數據中選擇合適的數據,合并成8比特的數據并輸出;所做的操作為:如果所述第一數據字符解碼標示符信號和所述第二數據字符解碼標示符信號都表示各自的解碼操作是成功的,則將所述第一數據字符解碼數據作為低5位,所述第二數據字符解碼數據作為高3位,合并成8比特位寬的所述輸出數據,且所述指示符信號表示當前輸出的是數據字符;如果所述第一控制字符解碼標示符信號和所述第二控制字符解碼標示符信號都表示各自的解碼操作是成功的,則將所述第一控制字符解碼數據作為低5位,所述第二控制字符解碼數據作為高3位,合并成8比特位寬的所述輸出數據,且所述指示符信號表示當前輸出的是控制字符。
全文摘要
本發明公開了一種基于rd-的8b/10b解碼電路,將外部輸入的10比特數據拆分為前6比特和后4比特數據,分別送入6b預處理模塊和4b預處理模塊,前6比特數據經6b預處理模塊預處理后,產生的第一數據字符數據和第一控制字符數據分別送往基于rd-的5b/6b數據字符解碼器和基于rd-的5b/6b控制字符解碼器;后4比特數據經4b預處理模塊預處理后,產生的第二數據字符數據和第二控制字符數據分別送往基于rd-的3b/4b數據字符解碼器和基于rd-的3b/4b控制字符解碼器;四個解碼器解碼后的數據都送往數據合并模塊,選擇合適的數據,合并成8比特的數據輸出。本發明能大量節省存儲器資源。
文檔編號H03M7/14GK103199866SQ20121000443
公開日2013年7月10日 申請日期2012年1月6日 優先權日2012年1月6日
發明者左耀華 申請人:上海華虹集成電路有限責任公司