USB3.0中8b/10b編解碼器的設(shè)計(jì)
2 8 b/10 b編碼器的設(shè)計(jì)
8b/10b編碼器是把8 b數(shù)據(jù)輸入拆成低5位和高3位分別進(jìn)行5 b/6 b和3 b/4 b編碼,根據(jù)編碼表執(zhí)行編碼。因?yàn)槠渲杏行┨厥獾?b/4 b編碼,所以需要一個(gè)特殊3 b/4 b編碼模塊。編碼后數(shù)據(jù)通過RD控制模塊選擇輸出,并且把此時(shí)的RD狀態(tài)反饋給下一輪編碼。對(duì)于8 b控制輸入,由于K控制編碼只有12種有效,所以需要一個(gè)對(duì)無效K碼的識(shí)別模塊。因此,編碼器分為5個(gè)模塊:5 b/6 b編碼、3 b/4 b編碼、特殊3 b/4 b編碼、無效K碼檢測(cè)、RD_controller,前4個(gè)部分在RD_controller的控制下進(jìn)行并行編碼,如圖2所示。圖中,kin為8 b控制輸入,data_in為8 b數(shù)據(jù)輸入。由于USB 3.0傳輸速度為5 Gb/s,編碼器clk為500MHz。本文引用地址:http://www.ex-cimer.com/article/202419.htm
5 b/6 b編碼模塊、3 b/4 b編碼模塊對(duì)輸入的8 b數(shù)據(jù)輸入分為低5位和高3位進(jìn)行并行編碼,輸出6 b和4 b數(shù)據(jù)構(gòu)成10 b編碼,而輸出disp_6b,disp_4b是6 b和4 b數(shù)據(jù)的不平衡度。
由于在8 b/10 b轉(zhuǎn)換表中,8 b數(shù)據(jù)輸入高3位為“111”、低五位分別為“01011”,“01101”,“01110”,“10001”,“10010”,“10100”時(shí),輸出的4 b是特殊情況,特殊3 b/4 b編碼模塊就是完成對(duì)這幾種特殊情況輸出,輸出sp_4b_RDN和sp_4b_RDP是特殊編碼的不
平衡度。
當(dāng)8 b輸入是控制K碼時(shí),控制碼只有12種是有效的,無效K碼檢測(cè)模塊就是檢測(cè)輸入的控制碼是否有效,如果無效輸出invalid_k=1,如果有效則輸出invalid_k=0。
RD控制模塊除了將編碼后數(shù)據(jù)選擇輸出,主要是根據(jù)disp_6b,disp_4b,sp_4b_RDN和sp_4b_RDP來跟新當(dāng)前RD值,并反饋到下一輪編碼的RD輸入,保持差分信號(hào)傳輸?shù)闹绷髌胶狻?br />
評(píng)論