黃安君,羅 旸,雷淑嵐
(中國(guó)電子科技集團(tuán)公司第58研究所,江蘇 無(wú)錫 214035)
隨著串行通訊速率向10 Gbps甚至100 Gbps發(fā)展,傳統(tǒng)的編解碼方式如8 b/10 b編碼,由于其效率較低,存在20%的帶寬浪費(fèi),如在高速系統(tǒng)中繼續(xù)采用這樣的編碼方式,將極大地浪費(fèi)信道的帶寬,降低數(shù)據(jù)的傳輸效率。因此在高速系統(tǒng)中,更多的使用高效率的編碼方式如64 B/66 B, 64 B/67 B[1]。在10G Base-R以太網(wǎng)物理編碼層協(xié)議中就規(guī)定使用64 B/66 B的編碼方式[2],如圖1所示。
圖1 10 Gbps以太網(wǎng)收發(fā)器結(jié)構(gòu)
但現(xiàn)在的數(shù)字系統(tǒng)總線(xiàn)位寬大多都是1,2,4,8等2的n次方字節(jié),例如在10G Base-R協(xié)議中,經(jīng)過(guò)64 B/66 B編碼后的數(shù)據(jù)在發(fā)送到Serdes模塊之前,一般要進(jìn)行位寬由多到少的轉(zhuǎn)換,因?yàn)樵?0G Base-R的物理層收發(fā)器設(shè)計(jì)過(guò)程中,Serdes的并行端數(shù)據(jù)輸入的位寬數(shù)一般不是66位,且一般都不超過(guò)20位,如8位、10位、16位等。同樣數(shù)據(jù)從Serdes模塊發(fā)送到PCS模塊時(shí),也需要進(jìn)行數(shù)據(jù)位寬由少到多的轉(zhuǎn)變。變速箱電路就是實(shí)現(xiàn)任意數(shù)據(jù)位寬之間的轉(zhuǎn)換,來(lái)保證芯片內(nèi)各模塊之間的無(wú)縫連接與正常的數(shù)據(jù)傳輸功能[3~4]。如果根據(jù)變速箱兩側(cè)的數(shù)據(jù)輸出和輸入的數(shù)據(jù)率相等的原理,利用兩個(gè)頻率的時(shí)鐘對(duì)數(shù)據(jù)位寬直接進(jìn)行轉(zhuǎn)換,而不對(duì)兩側(cè)時(shí)鐘或者數(shù)據(jù)進(jìn)行任何的控制或者處理,則會(huì)出現(xiàn)下面兩種情況:
當(dāng)變速箱數(shù)據(jù)輸出的時(shí)鐘頻率大于變速箱數(shù)據(jù)輸入的時(shí)鐘頻率,即輸出數(shù)據(jù)所用的時(shí)鐘周期小于輸入數(shù)據(jù)的寬度時(shí),在數(shù)據(jù)位寬轉(zhuǎn)換過(guò)程中,在某個(gè)時(shí)鐘周期下,輸出數(shù)據(jù)的時(shí)鐘會(huì)將當(dāng)前周期下的數(shù)據(jù)采樣2次,如圖2中的第3和第7時(shí)鐘周期,從而造成輸出數(shù)據(jù)的重復(fù)。
圖2 同一數(shù)據(jù)采樣2次
當(dāng)變速箱數(shù)據(jù)輸出的時(shí)鐘頻率小于變速箱數(shù)據(jù)輸入的時(shí)鐘頻率,即輸出數(shù)據(jù)所用的時(shí)鐘周期大于輸入數(shù)據(jù)的寬度時(shí),在數(shù)據(jù)位寬轉(zhuǎn)換過(guò)程中,在某個(gè)時(shí)鐘周期下,如圖3中的第5和第10個(gè)時(shí)鐘周期,輸出數(shù)據(jù)的時(shí)鐘會(huì)漏采當(dāng)前周期下的數(shù)據(jù),從而影響數(shù)據(jù)傳輸?shù)恼_性。
圖3 數(shù)據(jù)漏采
針對(duì)上述的問(wèn)題,可以通過(guò)借用時(shí)鐘周期的辦法解決:在數(shù)據(jù)位寬由多向少轉(zhuǎn)變的過(guò)程中,通過(guò)在某個(gè)時(shí)鐘周期暫停給變速箱輸入數(shù)據(jù),但不停止變速箱的數(shù)據(jù)輸出;在數(shù)據(jù)位寬由少向多轉(zhuǎn)變的過(guò)程中,通過(guò)在某個(gè)時(shí)鐘周期暫停給變速箱輸出數(shù)據(jù),但不停止變速箱的數(shù)據(jù)輸入。但是這種辦法會(huì)減少系統(tǒng)數(shù)據(jù)傳輸?shù)男?,尤其是在輸入?shù)據(jù)位寬和輸出數(shù)據(jù)位寬之間差距較大的情況下,系統(tǒng)的整體性能會(huì)有極大的下降,只適合FPGA設(shè)計(jì),因?yàn)镕PGA用戶(hù)可以自己來(lái)設(shè)計(jì)控制邏輯。而在一般的ASIC或者SOC設(shè)計(jì)中,這種顯著降低系統(tǒng)傳輸效率的方法是不能滿(mǎn)足系統(tǒng)要求的[5~6]。本文提出一種新的不均等時(shí)鐘周期的方法,可以在不改變數(shù)據(jù)傳輸速率的基礎(chǔ)上,很好地解決上述問(wèn)題。
在通信系統(tǒng)中,變速箱電路主要實(shí)現(xiàn)不同數(shù)據(jù)位寬之間的轉(zhuǎn)換,變速箱兩端的數(shù)據(jù)位寬和時(shí)鐘頻率在某一實(shí)際電路中是確定值。在本設(shè)計(jì)中,為了使數(shù)據(jù)傳輸效率最大化,變速箱兩端的比特率相同,由此可以確定變速箱兩端的位寬值和時(shí)鐘頻率之間的比例關(guān)系。為方便闡述,定義變速箱輸入端時(shí)鐘周期為T(mén)a,輸入端位寬為m,輸出端時(shí)鐘周期為T(mén)b,輸出端位寬為n,變速箱兩端的比特率相同,則存在:
在實(shí)際電路中,輸入時(shí)鐘和輸出時(shí)鐘都是由系統(tǒng)中的固定時(shí)鐘源產(chǎn)生,時(shí)鐘源的頻率是固定的,變速箱兩端的位寬m、n的值根據(jù)具體電路的值確定,Ta和Tb的值也要根據(jù)m、n的值做相應(yīng)的調(diào)整。電路中的時(shí)鐘源周期定義為T(mén),用于生成輸入時(shí)鐘和輸出時(shí)鐘。在本設(shè)計(jì)中,由周期為T(mén)的時(shí)鐘源先產(chǎn)生兩個(gè)基本的時(shí)鐘周期分別為T(mén)1和T2,其中T1和T2只相差一個(gè)時(shí)鐘源周期:
i為正整數(shù);再用T1和T2組成所需要時(shí)鐘周期Ta或Tb,具體電路中m、n的關(guān)系可以定義為m>n和m 當(dāng)m>n時(shí),輸入時(shí)鐘的周期值Ta大于輸出時(shí)鐘周期Tb,則輸出時(shí)鐘周期Tb=T,輸入時(shí)鐘Ta、T1和T2的關(guān)系為: T1和T2組合成輸入時(shí)鐘的周期: j和k為正整數(shù)??梢钥闯龃藭r(shí)的輸入時(shí)鐘的每個(gè)時(shí)鐘周期不完全相等,在一定的時(shí)鐘周期數(shù)下,其平均周期為T(mén)a。在每個(gè)T1或T2時(shí)鐘周期都輸入m位的數(shù)據(jù),在每一個(gè)T時(shí)鐘周期輸出n位的數(shù)據(jù)。當(dāng)m T1和T2組合成輸出時(shí)鐘的周期: j和k為正整數(shù)??梢钥闯龃藭r(shí)輸出時(shí)鐘的每個(gè)時(shí)鐘周期不完全相等,在一定的時(shí)鐘周期數(shù)下,其平均周期為T(mén)b。在每一個(gè)T時(shí)鐘周期輸入m位的數(shù)據(jù),在每個(gè)T1或T2時(shí)鐘周期都輸出n位的數(shù)據(jù)。 本變速箱設(shè)計(jì)的特點(diǎn)是在數(shù)據(jù)轉(zhuǎn)換中,生成不均等的時(shí)鐘周期的變速箱時(shí)鐘,在保證傳輸過(guò)程中數(shù)據(jù)比特率不變的情況下,解決數(shù)據(jù)的丟失或重復(fù)傳輸?shù)膯?wèn)題。 變速箱數(shù)據(jù)傳輸?shù)倪^(guò)程與其時(shí)鐘生成過(guò)程是密切相關(guān)的,也需要分成m>n和m 當(dāng)m>n時(shí),在數(shù)據(jù)的輸入端,每一個(gè)T1或T2時(shí)鐘周期,變速箱的輸入端都輸入m位的數(shù)據(jù);在數(shù)據(jù)的輸出端,在輸入時(shí)鐘周期為T(mén)1的時(shí)間內(nèi),輸出i個(gè)n位數(shù)據(jù),在輸入時(shí)鐘周期為T(mén)2的時(shí)間內(nèi),輸出i+1個(gè)n位數(shù)據(jù),在j+k個(gè)時(shí)鐘周期內(nèi),輸入端輸入了(j+k)×m位的數(shù)據(jù),在輸出端輸出[j×i+k×(i+1)]×n位的數(shù)據(jù),由于變速箱兩端的比特率相等: 化簡(jiǎn)可以得到: 則變速箱完成了(j+k)個(gè)m位數(shù)據(jù)到[j×i+k×(i+1)]個(gè)n位數(shù)據(jù)的位寬轉(zhuǎn)變。 以此類(lèi)推當(dāng)m 化簡(jiǎn)可以得到: 則變速箱完成了[j×i+k×(i+1)]個(gè)m位數(shù)據(jù)到(j+k)個(gè)n位數(shù)據(jù)的位寬轉(zhuǎn)變。 接下來(lái)具體說(shuō)明變速箱的實(shí)現(xiàn)過(guò)程,以10G BASE-R物理層為例,Serdes的位寬要求為8位,PCS采用64 B/66 B的編解碼方式,其數(shù)據(jù)波特率為10.312 5 Gbps,在與Serdes模塊進(jìn)行數(shù)據(jù)傳輸過(guò)程中,需要通過(guò)變速箱模塊實(shí)現(xiàn)66位到8位或者8位到66位兩種位寬的轉(zhuǎn)換。 輸入數(shù)據(jù)的位寬m為66位,輸出數(shù)據(jù)的位寬n為8位。 變速箱的輸入數(shù)據(jù)所用時(shí)鐘A的頻率: 輸出數(shù)據(jù)所用時(shí)鐘B的頻率: 其中,T表示為每一位數(shù)據(jù)傳輸?shù)闹芷?,T=0.096 97 ns。 變速箱時(shí)鐘源的周期定義為8 T,此8 T時(shí)鐘由Serdes內(nèi)置的PLL產(chǎn)生,則變速箱輸入數(shù)據(jù)的時(shí)鐘周期為66 T,變速箱輸出數(shù)據(jù)的時(shí)鐘周期為8 T。由時(shí)鐘周期為8 T的時(shí)鐘源先產(chǎn)生兩個(gè)基本的時(shí)鐘單 元:8×8 T 和 9×8 T,并 且 8×8 T<66 T<9×8 T,8×8 T和9×8 T按一定的比例關(guān)系組合成66 T的時(shí)鐘周期,根據(jù) [(64 T)×x+(72 T)×y]/(x+y)=66 T,計(jì)算得出x/y=3/1;也就是4個(gè)66 T的時(shí)鐘周期可以重組為 {8×8 T,8×8 T,8×8 T,9×8 T}。在數(shù)據(jù)位寬轉(zhuǎn)換過(guò)程中,輸入時(shí)鐘周期為8×8 T或9×8 T,輸出時(shí)鐘周期都為8 T,數(shù)據(jù)具體傳輸過(guò)程如圖4所示。 在第一個(gè)8×8 T輸入時(shí)鐘周期,變速箱輸入66位數(shù)據(jù),變速箱輸出端移位8次,輸出8個(gè)8位的數(shù)據(jù),保留2個(gè)位的數(shù)據(jù)在緩沖器的低位。在第二個(gè)8×8 T輸入時(shí)鐘周期,變速箱輸入66位數(shù)據(jù)作為緩沖器高位,變速箱輸出端移位8次,輸出8個(gè)8位的數(shù)據(jù),保留4個(gè)位的數(shù)據(jù)在緩沖器的低位;在第三個(gè)8×8 T輸入時(shí)鐘周期,變速箱輸入66位數(shù)據(jù)作為緩沖器高位,變速箱輸出端移位8次,輸出8個(gè)8位的數(shù)據(jù),保留6個(gè)位的數(shù)據(jù)在緩沖器的低位。在第一個(gè)9×8 T輸入時(shí)鐘周期,變速箱輸入66位數(shù)據(jù)作為緩沖器高位,變速箱輸出端移位9次,輸出8個(gè)8位的數(shù)據(jù),緩沖器中沒(méi)有保留的數(shù)據(jù),完成4個(gè)66位數(shù)據(jù)向33個(gè)8位數(shù)據(jù)位寬轉(zhuǎn)變過(guò)程。 圖4 66位位寬向8位位寬轉(zhuǎn)換 輸入數(shù)據(jù)的位寬m為8位,輸出數(shù)據(jù)的位寬n為66位。變速箱的輸入數(shù)據(jù)所用時(shí)鐘A的頻率a=1/(8 T)= 1.289 GHz,輸出數(shù)據(jù)所用時(shí)鐘B的頻率b=1/(66 T)=156.25 MHz,其中T表示為每一位數(shù)據(jù)傳輸?shù)闹芷?,T=0.096 97 ns。變速箱時(shí)鐘源的周期定義為8 T,此8 T時(shí)鐘由Serdes內(nèi)置的PLL產(chǎn)生,則變速箱輸入數(shù)據(jù)的時(shí)鐘周期為8 T,變速箱輸出數(shù)據(jù)的時(shí)鐘周期為66 T。 如上所述,66 T的時(shí)鐘周期可以重組為{9×8 T,8×8 T,8×8 T,8×8 T}。在數(shù)據(jù)位寬轉(zhuǎn)換過(guò)程中,輸入時(shí)鐘周期都為8 T,輸出時(shí)鐘周期為8×8 T或9×8 T,數(shù)據(jù)具體傳輸過(guò)程如圖5所示。在第一個(gè)9×8 T輸入時(shí)鐘周期,變速箱輸入9個(gè)8位數(shù)據(jù)進(jìn)緩沖器,變速箱輸出緩沖器的低66位作為輸出數(shù)據(jù),保留6個(gè)位的數(shù)據(jù)在緩沖器的低位。在第一個(gè)8×8 T輸入時(shí)鐘周期,變速箱輸入8個(gè)8位數(shù)據(jù)作為緩沖器高位,變速箱輸出緩沖器的低66位作為輸出數(shù)據(jù),保留4個(gè)位的數(shù)據(jù)在緩沖器的低位。在第二個(gè)8×8 T輸入時(shí)鐘周期,變速箱輸入8個(gè)8位數(shù)據(jù)作為緩沖器高位,變速箱輸出緩沖器的低66位作為輸出數(shù)據(jù),保留2個(gè)位的數(shù)據(jù)在緩沖器的低位。在第三個(gè)8×8 T輸入時(shí)鐘周期,變速箱輸入8個(gè)8位數(shù)據(jù)作為緩沖器高位,變速箱輸出緩沖器的低66位作為輸出數(shù)據(jù),緩沖器中沒(méi)有保留的數(shù)據(jù),完成33個(gè)8位數(shù)據(jù)向4個(gè)66位數(shù)據(jù)位寬轉(zhuǎn)變過(guò)程。 圖5 8位位寬向66位位寬轉(zhuǎn)換 使用verilog HDL語(yǔ)言對(duì)上述變速箱的功能進(jìn)行描述,搭建驗(yàn)證平臺(tái),并使用VCS軟件進(jìn)行仿真,仿真示意圖如圖6所示。 圖6 驗(yàn)證平臺(tái)示意圖 仿真結(jié)構(gòu)圖如圖6所示,pattern_gen模塊產(chǎn)生66位的數(shù)據(jù),gearbox_1和gearbox_2是例化本變速箱模塊,其中變速箱gearbox_1模塊的輸入數(shù)據(jù)位寬為66位,輸出數(shù)據(jù)位寬為8位,變速箱gearbox_2模塊的輸入數(shù)據(jù)位寬為8位,輸出數(shù)據(jù)位寬為66位,在pattern_chk模塊中把pattern_gen模塊產(chǎn)生66位數(shù)據(jù)延時(shí)幾個(gè)時(shí)鐘周期后和該數(shù)據(jù)經(jīng)過(guò)變速箱位寬轉(zhuǎn)變后的66位數(shù)據(jù)相比較。仿真的波形如圖7所示,仿真分為兩部分:數(shù)據(jù)寬度66位到8位的轉(zhuǎn)換和8位到66位的轉(zhuǎn)換。 clk8t是固定的時(shí)鐘源,其周期為0.776 ns,在每一個(gè)clk8t時(shí)鐘周期下傳輸8位的數(shù)據(jù)。clk66_out1是66位轉(zhuǎn)變?yōu)?位位寬組合后的輸入時(shí)鐘,其平均時(shí)鐘周期為6.402 ns,是由一個(gè)6.984 ns(9個(gè)clk8t時(shí)鐘周期)和3個(gè)6.208 ns(8個(gè)clk8t時(shí)鐘周期)組合而成。在gearbox_1中,在每個(gè)6.208 ns時(shí)鐘周期下,輸入66位的數(shù)據(jù),輸出8個(gè)8位數(shù)據(jù)。在每個(gè)6.984 ns時(shí)鐘周期下,輸入66位的數(shù)據(jù),輸出9個(gè)8位數(shù)據(jù)。gearbox_1中輸出的8 位數(shù)據(jù)作為gearbox_2中輸入,clk66_out2是8位轉(zhuǎn)變?yōu)?6位位寬組合后的輸出時(shí)鐘,其平均時(shí)鐘周期也為6.402 ns,同樣是由一個(gè)6.984 ns(9個(gè)clk8t時(shí)鐘周期)和3個(gè)6.208 ns(8個(gè)clk8t時(shí)鐘周期)組合而成。在gearbox_2中,在9個(gè)clk_8t時(shí)鐘周期下,輸入9個(gè)8位數(shù)據(jù),在clk66_out2的每個(gè)6.984 ns時(shí)鐘周期下輸出66位的數(shù)據(jù),在8個(gè)clk_8t時(shí)鐘周期下,輸入8個(gè)8位數(shù)據(jù),在clk66_out2的每個(gè)6.208 ns時(shí)鐘周期下輸出66位的數(shù)據(jù)。 把gearbox_1的66位輸入數(shù)據(jù)延時(shí)4個(gè)clk66_out1時(shí)鐘周期后和gearbox_2的66位輸出數(shù)據(jù)一一比較,result信號(hào)為高電平,表明這兩個(gè)數(shù)據(jù)完全相同,說(shuō)明變速箱在66位位寬轉(zhuǎn)變?yōu)?位位寬,再由8位位寬轉(zhuǎn)變?yōu)?6位位寬過(guò)程正確,沒(méi)有丟失或重復(fù)采樣。 圖7 仿真波形圖 在變速箱電路中,通過(guò)固定時(shí)鐘源產(chǎn)生的不均等時(shí)鐘周期的變速箱輸入輸出時(shí)鐘,可以保持變速箱兩邊的數(shù)據(jù)傳輸速率不變,并且保證在傳輸過(guò)程中沒(méi)有數(shù)據(jù)的丟失或重復(fù)采樣,可以用于高速的串行通信系統(tǒng)中。 [1] Zhou Qinglun, Li Chunyan, Wang Yong. Hardware Implementation of 64 B/66 B Encoder/Decoder for 10-Gigabit Ethernet [Z]. [2] IEEE Std 802.3ae-2002 [S/OL]. New Jersey: IEEE, 2002[2002-8-30]. http://standards.ieee.org. [3] S Sidiropoulos, N Acharya, P Chau, J Dao, A Feldman, H J Liaw, M Loinaz, R S Narayanaswami, C Portmann, S Rabii, A Salleh, S Sheth, L Thon, K Vleugels, P Yue, D Stark. An 800 mW 10 Gb ethernet transceiver in 0.13 μm CMOS [A]. in IEEE ISSCC Dig. Tech.Papers, 2004. 168-169. [4] H R Lee, M S Hwang, B J Lee, Y D Kim, D Oh, J Kim, S H Lee, D K Jeong, W Kim. A fully integrated 0.13 μm CMOS 10 Gb Ethernet transceiver with XAUI interface[A]. in IEEE ISSCC Dig. Tech. Papers, 2004. 170-171. [5] Virtex-II Pro Platform FPGA User Guide [EB/OL]. San Jose: Xilinx, 2005[2005-3-23]. http://www.xilinx.com. [6] Yongsam Moon, Member, IEEE, Sang-Hyun Lee, Daeyun Shim. A Divide-by-16.5 Circuit for 10-Gb Ethernet Transceiver in 0.13 μm CMOS [Z]. 1175-1179.3 不均等時(shí)鐘周期變速箱的實(shí)現(xiàn)
3.1 數(shù)據(jù)位寬由多向少轉(zhuǎn)變
3.2 數(shù)據(jù)位寬由少向多轉(zhuǎn)變
4 變速箱的仿真與性能分析
5 小結(jié)