<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術 > 設計應用 > 用0.18um CMOS設計2.5Gb/s收發(fā)器的復用器電路

          用0.18um CMOS設計2.5Gb/s收發(fā)器的復用器電路

          作者: 時間:2009-10-15 來源:網(wǎng)絡 收藏

            1 引言

            近年來,隨著傳統(tǒng)電信業(yè)務和互聯(lián)網(wǎng)業(yè)務的迅猛發(fā)展,它們對網(wǎng)絡帶寬提出了越來越高的要求,由此導致了高速串行接口的出現(xiàn)。目前國內(nèi)關于2.5 Gb/s超高速串行研究開發(fā)尚處于起步階段。設計開發(fā)具有自主知識產(chǎn)權的高性能串行芯片及,打破國外對高端路由器、交換器芯片的壟斷,不僅能夠直接大幅度降低通信、網(wǎng)絡設備成本,產(chǎn)生顯著的經(jīng)濟效益,還能帶來巨大的社會效益。本文所設計的復用器,應用在2.5Gb/s系統(tǒng)中,該收發(fā)器的系統(tǒng)框圖如圖1所示。

          用0.18um CMOS設計2.5Gb/s收發(fā)器的復用器電路

          圖1 Transceiver結構示意圖

            眾所周知在高速的數(shù)據(jù)傳輸系統(tǒng)中,收發(fā)器對于實現(xiàn)整個系統(tǒng)的功能起著至關重要的作用。而在收發(fā)器系統(tǒng)中,復用器是工作在最高速度的電路單元之一,因此復用器電路設計的好壞直接影響整個系統(tǒng)的性能。本文所設計的復用器,采用SMIC 0.18μm CMOS工藝實現(xiàn)。

            2 電路結構及其設計

            2.1 16:1復用器結構設計

            本文設計的16:1復用器是將發(fā)送數(shù)據(jù)選擇模塊輸出的16位156.25Mb/s并行數(shù)據(jù)轉換為2.5Gb/s串行數(shù)據(jù)輸出,其實現(xiàn)框圖如圖2所示,該電路主要由1個16:4復用器電路和1個采用樹形結構(包括3個2:1復用器)實現(xiàn)的4:1的復用器電路構成。其中16:4復用器用數(shù)字電路實現(xiàn),4:1復用器電路用模擬電路實現(xiàn)。該電路接收從PLL送出的2.5GHz、1.25GHz和625MHz差分時鐘,為16:4復用器和2:1復用器電路提供所需要的時鐘。16位并行輸入數(shù)據(jù)經(jīng)過16:4復用器后輸出4位并行數(shù)據(jù)送入4:1復用器,經(jīng)4:1復用器后,數(shù)據(jù)變換成1比特寬度的串行數(shù)據(jù)流,發(fā)送順序最低位在前,即TXD_P[0]最先出現(xiàn)在TXD_S上,TXD_P[15]最后發(fā)出。由于本電路是數(shù)?;旌闲盘栐O計,仿真時需要給數(shù)字電路和模擬電路分別加激勵,對于4:1復用器電路,輸入采用互補的方波電壓源,峰峰值為0.4V。對于16:4復用器電路,通過用Verilog語言描述的方式加激勵。由于兩個模塊分別用數(shù)字電路和模擬電路實現(xiàn),因此在兩個模塊的連接處要進行電平的轉換。Virtuoso AMS Simulator中將接口模型劃分為A2D型和D2A型兩類。本設計是由數(shù)字電路送信號給模擬電路,因此要用到D2A接口模型,該模型主要有4個參數(shù):d2a_tf,d2a_tr,d2a_vh和d2a_vl。其中d2a_tf和d2a_tr分別表示接口模型的輸出從當前值上升到d2a_vh所需要的時間和下降到d2a_vl所需要的時間;d2a_vh和d2a_vl分別表示對應數(shù)字電路中的邏輯“1”和“0”而轉換成的最終電壓值。本設計的設置如下: d2a_tf=20ps, d2a_tr=20ps,d2a_vh=1.8V,d2a_vl=1.4V。

          16:1復用器實現(xiàn)框圖

          圖2 16:1復用器實現(xiàn)框圖

            2.2 單元電路設計

            2.2.1 16:4復用器電路

            16:4復用器電路由4個4:1復用器模塊和一個賦值語句模塊構成,本電路均采用Verilog語言來描述。4個4:1復用器的作用是將16路156.25M數(shù)據(jù)TXD_P[15:0]復用為4路625M數(shù)據(jù),這里我們用移位寄存器實現(xiàn)4:1復用器。首先將16位并行數(shù)據(jù),分為四個4位并行數(shù)據(jù),然后將4位并行數(shù)據(jù)送入4:1復用器,數(shù)據(jù)經(jīng)過4位移位寄存器后的輸出如圖3所示。由于后級的模擬電路需要差分輸入,因此本模塊輸出均為互補輸出。

          16:4復用器實現(xiàn)時序圖

          圖3 16:4復用器實現(xiàn)時序圖

            4:1復用器電路的Verilog實現(xiàn)的關鍵代碼如下:

          程序

            2.2.2 4:1復用器電路

            4:1復用器采用樹形結構實現(xiàn),其實現(xiàn)如圖2所示,它主要由三個2:1的高速復用器和一個主從D觸發(fā)器(MSDEF)構成。2:1復用器由一個主從D觸發(fā)器(由兩個鎖存器級連構成),一個主從主D觸發(fā)器(由三個鎖存器級連構成)和一個2:1數(shù)據(jù)選擇器構成。

            本文所設計的鎖存器和2:1數(shù)據(jù)選擇器均采用CML(電流模式邏輯)邏輯實現(xiàn),其基本結構如圖4(a)所示,按其功能可分為下拉邏輯網(wǎng)絡、尾電流源和上拉電阻三個部分。它可以在電壓擺幅較小的情況下正常工作。由于尾電流源的存在,CML電路的功耗近似為恒定值P=vdd*I,其中vdd是電源電壓,I為直流尾電流。眾所周知,傳統(tǒng)CMOS電路的功耗為P=CL`*f*vdd2,其中f是電路的開關頻率,CL`是輸出節(jié)點的負載電容。因此,在高速率的條件下,CML電路的功耗比與其相似的CMOS電路的功耗要小得多。此外,降低CML電路的電壓擺幅,還可以減小整個電路的延時,從而提高電路的工作速度。

          用0.18um CMOS設計2.5Gb/s收發(fā)器的復用器電路

          圖4 鎖存器及2:1數(shù)據(jù)選擇器電路圖

            3仿真結果

            該電路采用SMIC 0.18μm工藝模型,使用Virtuoso AMS Simulator 工具進行了仿真。輸入信號為16位156.25Mb/s并行數(shù)據(jù),如圖5(a)所示。仿真的corner包括:ff(fast model)、tt(typical model)、ss(slow model)。不同corner下的仿真輸出波形如圖5(b)-(d)所示。從仿真的結果可以看出,輸入數(shù)據(jù)為156.25Mb/s時,能較好的實現(xiàn)復用功能,輸出數(shù)據(jù)速率為2.5Gb/s,整個電路的功耗約為6mW。

            圖5 不同corner下的仿真波形

            4結論

            隨著CMOS工藝的發(fā)展,采用CMOS工藝已經(jīng)可以設計出高性能、低功耗、成本低的高速電路。本次設計采用0.18μm CMOS工藝,采用CML電路設計技術和數(shù)?;旌显O計技術,設計出了2.5Gb/s 16:1復用器電路。該電路能夠在電源電壓為1.8V,工作溫度范圍為0-70。C時,工作速率可達到2.5Gb/s,功耗約為6mW。

            本文作者創(chuàng)新觀點:本文將16:1復用器電路進行了模塊化分解,采用數(shù)?;旌系脑O計技術分別用Verilog語言描述的方式和CML電路邏輯設計了16:4復用器電路和4:1復用器電路,并采用混合信號仿真的驗證方式對所設計的16:1復用器進行了驗證。用該種方法大大縮短設計和驗證所需要的時間。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();