摘 要: USB3.0幀同步電路設(shè)計的關(guān)鍵在于高速率下串行數(shù)據(jù)流的幀定位與數(shù)據(jù)對齊,需同時兼顧高效率和低功耗。使用Verilog HDL描述語言設(shè)計了一種基于多相位和并行檢測技術(shù)的幀同步電路,重點對并行檢測電路進(jìn)行分析和優(yōu)化。該電路在ISE中編譯和仿真,結(jié)合數(shù)據(jù)進(jìn)行分析,并將仿真結(jié)果進(jìn)行比較驗證,證明該電路能滿足幀同步的速率和時序要求。
關(guān)鍵詞: USB3.0;多相位技術(shù);并行檢測;幀同步;Verilog HDL
0 引言
近年來,USB(通用串行總線)作為一種標(biāo)準(zhǔn)的傳輸接口[1],應(yīng)用十分廣泛。從2008年11月首次發(fā)布USB3.0規(guī)范以來,在快速存儲、大數(shù)據(jù)高速傳輸?shù)阮I(lǐng)域都出現(xiàn)了USB3.0[2]的身影,延續(xù)USB2.0時代的輝煌,繼續(xù)展現(xiàn)出強大的競爭力。與USB2.0高速版本的設(shè)計[3]相比,USB3.0的復(fù)雜度大大增加,尤其是5 Gb/s的差分傳輸速率成為設(shè)計者重點考慮的問題之一。高速率、低功耗是當(dāng)前芯片設(shè)計的主流趨勢,在提高器件工作頻率的情況下,更需要有效地控制功耗。本文將介紹多相位技術(shù)在USB3.0幀同步系統(tǒng)設(shè)計中的應(yīng)用,通過對并行檢測電路的優(yōu)化,實現(xiàn)系統(tǒng)復(fù)雜度、實用性以及功耗方面的平衡。
1 接收電路的功能與分析
USB3.0接收部分的功能結(jié)構(gòu)如圖1所示。
為了抑制共模干擾,USB3.0的數(shù)據(jù)采用差分輸入,經(jīng)過雙端轉(zhuǎn)單端電路,分為兩路送入時鐘數(shù)據(jù)恢復(fù)(Clock Data Recovery,CDR)模塊和串轉(zhuǎn)并模塊。
CDR模塊完成從串行數(shù)據(jù)流中提取時鐘信號的功能,送至?xí)r鐘管理模塊,得到625 MHz、500 MHz和125 MHz時鐘信號供其他模塊使用。
幀同步模塊完成對高速串行數(shù)據(jù)流的并行低速化,通過并行檢測幀定界符得到幀同步信號,同時控制時鐘管理模塊的時鐘輸出,完成數(shù)據(jù)的對齊處理,經(jīng)過彈性緩沖模塊得到500 MHz、10 bit的并行數(shù)據(jù)流。
幀同步模塊輸出的并行數(shù)據(jù)流先后通過8 b/10 b解碼模塊、解擾模塊得到500 MHz、8 bit數(shù)據(jù)流與控制信號;通過位寬拼接處理最終得到125 MHz、36 bit的數(shù)據(jù)流(其中包含32 bit數(shù)據(jù)和4 bit控制位)寫入數(shù)據(jù)FIFO,供LINK層讀取使用。
2 幀同步模塊的設(shè)計及要點
幀同步模塊是接收模塊的難點,主要由以下功能模塊組成:多相位串轉(zhuǎn)并模塊、并行幀定界符檢測模塊、并行數(shù)據(jù)流對齊模塊、彈性緩沖模塊。各大模塊及相關(guān)時鐘結(jié)構(gòu)電路如圖2所示。其中,串轉(zhuǎn)并模塊和并行檢測模塊是本設(shè)計的優(yōu)化重點。電路選用XLINX公司的Virtex-5芯片作為設(shè)計與測試平臺。
2.1 基于多相位技術(shù)的串轉(zhuǎn)并模塊設(shè)計
傳統(tǒng)的低速串轉(zhuǎn)并電路采用移位寄存器實現(xiàn),電路的功耗與工作時鐘成線性關(guān)系。USB3.0的輸入信號高達(dá)5 Gb/s,移位寄存器產(chǎn)生的功耗很大,并且工藝要求很高,而0.15 m CMOS工藝條件只能達(dá)到3.0 Gb/s的頻率,繼續(xù)提升工作頻率極易引起電路的不穩(wěn)定。因此,有效地降低器件工作時鐘頻率,在降低器件功耗和降低生產(chǎn)工藝要求方面具有重要意義,同時對相同工藝下提升器件的性能也非常有效。
多相位技術(shù)的原理為:利用PLL將CDR恢復(fù)得到的f頻率時鐘分成多個頻率為f/N,彼此相位間隔為360°/N的時鐘信號,利用這N個時鐘對串行數(shù)據(jù)流進(jìn)行分時采樣,在相移為0°的f/N頻率時鐘同步下,合并為N bit的數(shù)據(jù)。這種技術(shù)的優(yōu)勢在于:在不增加原有功能復(fù)雜度的情況下,利用PLL降低CMOS器件的運行時鐘,從而降低功耗。PLL的引入,能夠一定程度上改善恢復(fù)時鐘的抖動。在PLL設(shè)計中,當(dāng)分頻值N取2的冪次方時,可有效簡化設(shè)計,在此N取2^3=8。
使用Verilog HDL[4]語言對1:8多相位串轉(zhuǎn)并模塊進(jìn)行描述,部分關(guān)鍵代碼為:
always@(posedge clk_XXX or negedge rstn)begin
if(!rstn)pdata[n]<=1′b0;
else pdata[n]<=sdata_i;
end
其中clk_XXX代表clk_000~clk_315這8個相位間隔為45°的時鐘。采樣得到的數(shù)據(jù)以8 bit為單位送入并行檢測模塊。
經(jīng)過ISE綜合后模塊非常簡潔,RTL電路如圖3所示。
2.2 優(yōu)化并行幀定界符檢測模塊設(shè)計
根據(jù)USB3.0規(guī)范,傳輸?shù)臄?shù)據(jù)采用控制碼K28.5作為幀定界符。它的特殊性在于:在所有選定使用的控制碼與數(shù)據(jù)碼中,有且只有K28.5存在5個連續(xù)的高電平信號‘1’。因此,許多采用8 b/10 b編碼的傳輸系統(tǒng)都將其作為幀定界符。在傳輸?shù)臄?shù)據(jù)流中,檢測到“001111010”就可以判定新一幀的開始。
USB3.0發(fā)送部分的數(shù)據(jù)經(jīng)過8 b/10 b編碼后,數(shù)據(jù)塊由8 bit為單位轉(zhuǎn)換為10 bit為單位,常用的做法為:接收端在f/10的工作時鐘驅(qū)動下,并行檢測10個相鄰位置的10 bit數(shù)據(jù)。通過并行的方式,從而降低電路的運行速度要求,實際是以空間換時間的思想。雖然電路工作頻率降低,但整體功耗因電路規(guī)模的相應(yīng)增大而沒有減小。
通過對并行檢測電路的分析可以發(fā)現(xiàn):假定串轉(zhuǎn)并模塊采用1:N結(jié)構(gòu),并行檢測模塊對M bit數(shù)據(jù)塊進(jìn)行檢測,檢測單元的規(guī)模為N×M bit。在并行度M bit相同條件下,N越大,需要的邏輯運算單元就越多。串轉(zhuǎn)并模塊選擇1:8的比例,不僅可以簡化PLL設(shè)計,同時也能降低邏輯運算單元的消耗。
其次,減少檢測數(shù)據(jù)塊的并行度M也是重要途徑。根據(jù)K28.5的特點,在數(shù)據(jù)正確傳輸?shù)那疤嵯轮恍铏z測其中7 bit,即“0011111”或者“1111101”[5]就能判定為K28.5碼。取M=7 bit,則只需要8×7=56 bit邏輯運算單元,相比未優(yōu)化前的10×10=100 bit邏輯運算單元減少44%,簡化了電路的結(jié)構(gòu),能夠一定程度地提升器件的運行效率。
2.3 并行數(shù)據(jù)流對齊模塊設(shè)計
并行檢測模塊檢測到幀定界符后,需通過鎖定單元[6]鎖定當(dāng)前的數(shù)據(jù)流分塊方式,鎖定單元結(jié)構(gòu)設(shè)計如圖4所示。
鎖定機構(gòu)的工作原理為:當(dāng)某一檢測單元成功檢測到幀定界符K28.5的前7 bit,便可推斷數(shù)據(jù)流3 bit后即為實際所需數(shù)據(jù)流的起始位置,鎖定單元在下一時鐘沿鎖定當(dāng)前檢測結(jié)果不再更改,并根據(jù)鎖定的結(jié)果在對應(yīng)位置每次取出10 bit并行數(shù)據(jù)送至下級電路,直到檢測到當(dāng)前幀結(jié)束或者復(fù)位解除鎖定。
鎖定單元關(guān)鍵代碼如下所示:
wire comma_detect[n]=detect_data_X==7′b1111100;
always@(posedge clk or negedge rstn)begin
if(!rstn)
comma_lock[n]<=1′b0;
else if((!(|comma_lock[7:0]))|fram_end)
comma_lock[n]<=comma_detect[n];
else
comma_lock[n]<=comma_lock[n];
end
其中,n為0~7,detect_data_X表示第0~7個檢測單元。
由于串轉(zhuǎn)并模塊輸出為8 bit并行數(shù)據(jù),根據(jù)USB3.0規(guī)范,實際送入彈性緩沖須為10 bit,因此需要使用位寬轉(zhuǎn)換電路對數(shù)據(jù)流位寬進(jìn)行轉(zhuǎn)換。方法為:將8 bit位寬拼接成40 bit位寬,通過判斷鎖定單元輸出的comma_lock信號,重新選取對齊后的40 bit,最后分割成實際需要的10 bit位寬輸出。
3 仿真及驗證
編寫test bench,改變串行數(shù)據(jù)流中K28.5的位置,模擬發(fā)送數(shù)據(jù)幀,在ISim中對設(shè)計的電路進(jìn)行仿真驗證,仿真波形如圖5所示。
經(jīng)過8組不同位置數(shù)據(jù)(在此只貼出2個結(jié)果)的對比可以看出,在不同的數(shù)據(jù)流中,幀定界符K28.5的位置總能夠被正確檢測,通過數(shù)據(jù)對齊模塊后成功分離出后續(xù)模塊所需10 bit并行數(shù)據(jù),結(jié)果完全正確,且滿足運行500 MHz的運行速度要求。
4 結(jié)論
多相位技術(shù)能夠顯著降低器件的工作頻率,從而減少功耗,同時也可以降低制造器件的工藝難度;并行處理技術(shù)是當(dāng)前高速電路發(fā)展的趨勢,合理地利用編碼自身特點,進(jìn)行針對性的優(yōu)化,能夠使電路更加簡潔,運行速度更快。這兩者對于提高器件的性能而言,都具有十分重要的現(xiàn)實意義。
參考文獻(xiàn)
[1] Don Anderson Dave Dzatko.USB系統(tǒng)體系(第二版)[M].北京:中國電力出版社,2003.
[2] Hewlett-Packard Company, Intel, et al. Universal serial bus 3.0 specification Revision1.0[R]. USA: Hewlett-Packard Company. 2008.
[3] 王永,白雪飛,方毅,等.基于UTMI協(xié)議的USB2.0收發(fā)器邏輯電路設(shè)計[J].微型機與應(yīng)用,2014,33(10):13-15,19.
[4] 夏字聞.Verilog數(shù)字系統(tǒng)設(shè)計(第二版)[M].北京:北京航空航天大學(xué)出版社,2008.
[5] 楊卿.RapidIO高速互聯(lián)接口的設(shè)計研究與應(yīng)用[D].成都:電子科技大學(xué),2009.
[6] 劉昭,金德鵬,曾烈光.基于連續(xù)性判別的并行幀同步系統(tǒng)[J].電子學(xué)報,2005,33(7):1177-1182.