摘 要: 根據(jù)USB3.0的發(fā)送速率要求和高速串行發(fā)送原理,使用Verilog HDL描述語言設(shè)計(jì)了一種基于多相位技術(shù)的USB3.0發(fā)送電路。電路各模塊在ISE中編譯和仿真,給出了電路實(shí)現(xiàn)的結(jié)構(gòu)圖、模塊的接口信號(hào)以及部分程序和仿真波形圖,并將仿真結(jié)果進(jìn)行比較驗(yàn)證,證明多相位技術(shù)設(shè)計(jì)的電路能滿足數(shù)據(jù)發(fā)送的準(zhǔn)確性和時(shí)序要求。
關(guān)鍵詞: USB3.0;多相位技術(shù);Verilog HDL
0 引言
USB(通用串行總線)是一種標(biāo)準(zhǔn)的傳輸接口[1],從1995年USB1.0版本開始,歷經(jīng)USB1.1、全速USB2.0(FullSpeed)、高速USB2.0(HighSpeed),到USB3.0(SurperSpeed)[2],數(shù)據(jù)傳輸速率已經(jīng)提升至5 Gb/s,相比USB 2.0的480 Mb/s提升了約10倍。從2008年11月首次發(fā)布規(guī)范以來,USB3.0已經(jīng)在快速存儲(chǔ)、大數(shù)據(jù)高速傳輸?shù)阮I(lǐng)域逐漸展現(xiàn)出強(qiáng)大的競(jìng)爭(zhēng)力??v觀各個(gè)版本的USB硬件設(shè)計(jì),USB3.0以其高達(dá)5 Gb/s的I/O轉(zhuǎn)換速率給設(shè)計(jì)者帶來了很大的難題,同時(shí),功耗的控制也成為需要考慮的重要環(huán)節(jié)。本文將介紹多相位技術(shù)的一種應(yīng)用,實(shí)現(xiàn)電路復(fù)雜度、實(shí)用性以及功耗方面的平衡。
1 發(fā)送電路的功耗分析
目前,數(shù)字集成電路普遍采用CMOS工藝。COMS工藝的功耗估算[3],以反相器為例,設(shè)電路的工作頻率為f,其中每個(gè)周期的一半時(shí)間是通過PMOS管對(duì)負(fù)載電容器充電。若此時(shí)的電源電壓為Vdd,記電容器上的實(shí)時(shí)充電電壓為V,由于充電電流,那么,這一期間轉(zhuǎn)移到電容器上的能量為:,將上式代入得到能量轉(zhuǎn)移為:
這是一個(gè)經(jīng)典的估算公式。同一期間PMOS管能量消耗為:
上述兩項(xiàng)是相等的。同樣,NMOS管能量消耗與電容器上存儲(chǔ)的能量相等。因此,一個(gè)反相器平均動(dòng)態(tài)功率消耗大致為:P=CfVdd2。
經(jīng)過上文的分析可知,降低CMOS電路功耗的三種主要途徑為:降低電源電壓Vdd、改進(jìn)工藝減少負(fù)載電容C以及降低工作頻率f。對(duì)于USB3.0高達(dá)5 Gb/s的串行輸出,在供電電壓一定、制造工藝相同的條件下進(jìn)行電路的優(yōu)化,有效地降低內(nèi)部器件的工作頻率,成為降低功耗的首要之選。
2 發(fā)送電路的結(jié)構(gòu)與實(shí)現(xiàn)
2.1 發(fā)送電路結(jié)構(gòu)
USB3.0發(fā)送模塊結(jié)構(gòu)如圖1所示。
發(fā)送電路輸入的數(shù)據(jù)為36 bit位寬,包括32 bit數(shù)據(jù)和4 bit數(shù)據(jù)有效控制位;時(shí)鐘管理模塊根據(jù)不同的數(shù)據(jù)位寬,產(chǎn)生不同的時(shí)鐘,協(xié)調(diào)各模塊的同步運(yùn)行。
如圖1所示,幀管理模塊以125 MHz/32 bit的速率從FIFO讀取數(shù)據(jù)并轉(zhuǎn)換成為500 MHz/8 bit數(shù)據(jù)流傳送至擾碼模塊;擾碼模塊和8 bit/10 bit編碼器模塊均采用500 MHz的時(shí)鐘,對(duì)并行8 bit的數(shù)據(jù)進(jìn)行處理;經(jīng)過 8 bit/10 bit編碼模塊后,數(shù)據(jù)流變成500 MHz/10 bit,送入并轉(zhuǎn)串模塊,最終以差分輸出的方式輸出串行數(shù)據(jù)。
2.2 基于多相位技術(shù)的并轉(zhuǎn)串模塊結(jié)構(gòu)
并轉(zhuǎn)串模塊是結(jié)構(gòu)優(yōu)化的重點(diǎn)[4]。傳統(tǒng)的并轉(zhuǎn)串電路通過移位寄存器實(shí)現(xiàn),在0.15 ?滋m CMOS工藝條件下只能達(dá)到3.0 Gb/s的頻率,并且所有器件運(yùn)行在最高工作頻率,功耗將非常大。采用多相位技術(shù)后,數(shù)據(jù)位在8個(gè)同頻不同相的時(shí)鐘控制下并發(fā)處理,電路運(yùn)行的時(shí)鐘頻率可以降為原先的1/8,顯著降低功耗。
并轉(zhuǎn)串模塊結(jié)構(gòu)電路如圖2所示。
為了適應(yīng)輸入數(shù)據(jù)的位寬需求,在并轉(zhuǎn)串模塊輸入端插入一個(gè)數(shù)據(jù)位寬轉(zhuǎn)換模塊,將10 bit位寬的數(shù)據(jù)調(diào)整為8 bit位寬,也就是將500 MHz的10 bit并行數(shù)據(jù)調(diào)整為625 MHz的8 bit并行數(shù)據(jù)流。主要方法為:將500 MHz*10 bit的數(shù)據(jù)流拼接為125MHz*40 bit的并行數(shù)據(jù)流,輸出則使用625 MHz時(shí)鐘以8 bit的位寬讀出。部分關(guān)鍵代碼如下:
reg[39:0] shift_buf40;
always@(posedge clk_500M_i or negedge rstn_i)begin
if(!rstn_i)
shift_buf40<=40′h0;
else//拼接成40 bit
shift_buf40<={shift_buf10,shift_buf40[39:10]};
end
reg stitch_load;//40 bit載入信號(hào)
always@(posedge clk_625M_i or negedge rstn_i)begin
if(!rstn_i)
stitch_load<=1′b0;
else if(clk_625M_i)
stitch_load<=~stitch_load;
else
stitch_load<=1′b0;
end
reg[39:0]stitch_buf40;
always@(posedge clk_625M_i or negedge rstn_i)begin
if(!rstn_i)
stitch_buf40<=40′h0;
else if(stitch_load)
stitch_buf40<=shift_buf40;//40 bit載入
else
stitch_buf40<={stitch_buf40[7:0],
stitch_buf40[39:8]};//每個(gè)clk移位8 bit
end
assign split_buf8_o=stitch_buf40[7:0];
此段代碼實(shí)現(xiàn)了不同時(shí)鐘的數(shù)據(jù)位寬變換。
PLL產(chǎn)生8個(gè)頻率為625 MHz的Clock,相鄰時(shí)鐘間相移為45°,占空比為1:1。通過8輸入的或門,在1/8時(shí)刻允許8 bit并行數(shù)據(jù)的某一位數(shù)據(jù)輸出。在此選用Xilinx的Virtex-5系列FPGA進(jìn)行設(shè)計(jì)仿真驗(yàn)證,由于單個(gè)PLL資源所限,使用2個(gè)PLL進(jìn)行8路多相時(shí)鐘輸出:其中一個(gè)PLL產(chǎn)生0°、45°、90°和135°相移,另一個(gè)PLL則產(chǎn)生180°、225°、270°和315°的相移,其配置如圖3所示。
2.3 并轉(zhuǎn)串模塊的電路實(shí)現(xiàn)
使用Verilog HDL[5]語言對(duì)并轉(zhuǎn)串部分進(jìn)行描述,部分關(guān)鍵代碼如下:
reg sdata_0;
always@(clk_mp045_i or clk_mp090_i)begin
if(clk_mp045_i &!clk_mp090_i)
sdata_0<=pdata_i[0];
else
sdata_0<=1′b0;
end
以上是其中的1/8個(gè)數(shù)據(jù)處理模塊,經(jīng)過ISE綜合后得到的RTL電路如圖4所示。
電路非常簡(jiǎn)潔,8個(gè)部分結(jié)構(gòu)完全一致,數(shù)據(jù)發(fā)送的精度取決于PLL的相位精度與8個(gè)相同結(jié)構(gòu)單元的布線。顯然,PLL在625 MHz產(chǎn)生45°的相移間隔可以達(dá)到很高的精確度,門電路布線長(zhǎng)度的一致性也很容易實(shí)現(xiàn)。也就是說該電路布局產(chǎn)生的時(shí)延可以做到基本一致,這一點(diǎn)對(duì)于高速電路的設(shè)計(jì)非常有利。
3 仿真及驗(yàn)證
編寫test bench,循環(huán)發(fā)送8′h00~8′hFF數(shù)據(jù),在ISim中對(duì)設(shè)計(jì)的多相位發(fā)送電路進(jìn)行仿真驗(yàn)證,仿真波形如圖5所示,并轉(zhuǎn)串模塊輸入的數(shù)據(jù)為8′hFF,圖中矩形框中為經(jīng)過并轉(zhuǎn)串模塊后的8路獨(dú)立輸出,下方箭頭指向經(jīng)過8輸入或門處理后的串行輸出,結(jié)果完全正確,滿足USB3.0協(xié)議規(guī)范要求。
4 結(jié)論
多相位技術(shù)的應(yīng)用可以使高速發(fā)送電路的大部分器件工作在一個(gè)相對(duì)較低的頻率下,并能在一定程度上降低制作器件的工藝難度。因此,多相位技術(shù)對(duì)降低功耗、提高性能而言,具有十分重要的現(xiàn)實(shí)意義。
參考文獻(xiàn)
[1] ANDERSON D, DZATKO D. USB系統(tǒng)體系(第二版)[M].孟文,譯.北京:中國(guó)電力出版社,2003.
[2] Hewlett-Packard Company, Intel. Universal serial bus 3.0 specification revision1.0[R]. USA: Hewlett-Packard Company, 2008.
[3] 汪小會(huì).集成電路低功耗設(shè)計(jì)[J].電子工程師,2006(1):9-11.
[4] 亓磊.3.125Gbps高速串行RapidIO數(shù)據(jù)發(fā)送器設(shè)計(jì)[D].長(zhǎng)沙:國(guó)防科學(xué)技術(shù)大學(xué),2010.
[5] 夏字聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)(第二版)[M].北京:北京航空航天大學(xué)出版社,2008.