許望洋,魏廷存,高 武,段延亮
(西北工業大學計算機學院,西安710072)
延遲鎖相環(Delay Locked Loop,簡稱為DLL)是一種采用延遲鏈產生多相延遲時鐘、并通過反饋環路控制延遲鏈精確鎖定的一種鎖相環結構。它是應用于無線和有線通信、多相時鐘產生以及高精度時間-數字轉換器(time-to-digital converter,簡稱為TDC)的重要功能模塊。由于DLL是基于時鐘的超大規模混合信號電路,在設計時存在仿真時間長、仿真數據量大的問題。尤其是對含DLL的全芯片仿真時,DLL仿真占用大量的空間和時間資源。因此,對DLL進行行為級建模,加快DLL模塊的仿真速度,是開發含DLL模塊的全芯片電路的重要手段。
目前已提出多種DLL的建模方法,文獻[1]建立了離散時間的DLL模型,分析了輸入噪聲、延遲鏈噪聲和控制電壓噪聲對DLL抖動的影響。但由于該模型未考慮器件失配和環路電容漏電流的影響,所以對延遲鎖相環的建模精度較差。文獻[2]對DLL中鑒相器、電荷泵和延遲鏈模塊進行了晶體管級的抖動分析,并建立了基于噪聲的DLL抖動模型,但并沒有提供精確的Verilog-A模型,因而不能實現行為級仿真。
筆者通過分析模擬DLL抖動來源,建立了各模塊的精確Verilog-A模型,從而提高了仿真精度,并縮短了DLL仿真時間,提高了基于DLL的芯片設計效率。第二部分介紹了電荷泵DLL的結構。第三部分在時域分析了噪聲和器件失配對抖動的影響,第四和第五部分對DLL進行了建模仿真和分析。
傳統的模擬延遲鎖相環主要由五部分構成[3]:電壓控制延遲鏈(VCDL)、鑒相器、電荷泵、環路濾波器以及啟動控制單元,如圖1所示。輸入時鐘Clk_ref經VCDL延遲后,最后一個輸出時鐘為Clk_out。Clk_ref和Clk_out的相位差被鑒相器檢測。為簡單起見,這里假設鑒相器檢測這兩個時鐘的上升沿之間的相位差,并且延遲鏈中延時單元的延時隨著控制電壓增大而減小。如果Clk_ref的上升沿在Clk_out之前,則Up為高電平,Down為低電平,此時電荷泵中上面的開關導通,下面的開關關閉,這樣,電荷泵就給環路濾波電容充電,導致控制電壓增大,電壓控制的延遲鏈中的延時就減少,從而使Clk_out的上升沿更接近于Clk_ref,即Clk_ref和Clk_out的相位差減小。由于時鐘信號的延時是連續變化的,經過若干個周期的調節后,理論上Clk_ref和Clk_out的相位差變為零,Clk_ref和Clk_out的相位被最終鎖定。但由于電路啟動時初始狀態的不確定性,DLL很容易產生不鎖定或者誤鎖定的現象。為此,在圖1中增加了一個啟動控制電路,在電路啟動時將環路濾波電容預充電至高電平,通過合理的設計,可以使VCDL的初始延遲時間小于一個時鐘周期。這樣即可消除DLL不鎖定或誤鎖定的現象,當電路進入正常工作后,通過反饋調節可以使DLL的終端輸出延時準確地鎖定至一個時鐘周期。

圖1 模擬延遲鎖相環的結構
在實際電路中,噪聲會使得DLL偏離理想的工作狀態,而這種非理想的工作狀態會使DLL的多相輸出時鐘產生抖動,從而影響DLL的延時精度。圖2表示DLL中各個模塊的噪聲對多相輸出時鐘產生的影響。由圖2可知,總的輸出抖動可以由各模塊的抖動分量通過下組公式計算得到[4]:

式中q(n)表示電荷泵在第n個時鐘周期泵入環路濾波電容的電荷量,ICP表示電荷泵的充放電電流,ΔtM(n)表示第n個時鐘周期延遲鏈輸出的時鐘抖動,Δtref(n)表示參考時鐘的抖動,ΔtPFD(n)表示鑒相器的鑒相誤差,qnoise(n)表示環路濾波電容噪聲,Cf表示環路濾波電容,Kd表示壓控延遲鏈的增益,ΔdL(n)表示第L個延遲單元在第n個時鐘周期時的抖動,VC表示理想狀態下DLL鎖定時VCDL的控制電壓。從上式可以看出,由于噪聲所引起的抖動在延遲鏈中發生了累積,這將導致最后一相輸出時鐘的抖動值最大。

圖2 DLL噪聲抖動模型
公式(1)-(3)考慮了整個DLL中各個組成模塊的噪聲對最終輸出時鐘抖動的影響。為了對DLL進行整體建模,需要先對DLL中各模塊進行單獨建模,因此需要單獨分析各模塊的噪聲對抖動的貢獻。為此,在分析某一個模塊的噪聲對抖動的貢獻時可以暫時將其他模塊假設為理想模塊,這樣可以得到各模塊所產生的抖動均方值為:

由于電路噪聲具有隨機性,因此對多相時鐘抖動的影響也具有隨機性,通常認為它符合正態分布。器件失配是在芯片生產過程中由于工藝誤差造成的,通常也服從正態分布。但器件失配和電路噪聲的區別在于器件失配是由于工藝誤差造成的,一旦芯片加工完成,失配的大小也就確定了,所以器件失配最終產生的是固定抖動,而噪聲的隨機性一直伴隨著芯片的整個工作過程,因此噪聲所造成的抖動為隨機抖動。
器件失配對DLL抖動性能的影響主要表現在延遲單元的失配和電荷泵充放電電流的失配。由于在設計電荷泵時可以將電流失配控制在一個很小的范圍內,故在建模時暫時只考慮由延遲單元失配所引起的抖動。
可以對延遲單元的性能進行如下數學描述[5]:

式中dL表示第L個延遲單元的延遲時間,dtune表示延遲單元在控制電壓VC下的理想延遲時間,eL(Vc)表示與MOS管的失配等效的控制電壓的變化。由此知道,在各延遲單元完全獨立的情況下,eL(Vc)的均值為0。同樣,在不考慮其他噪聲影響的情況下,整個延遲鏈應該準確的鎖定為一個時鐘周期。由此,單個延遲單元的延遲時間可以表示為:

式中Ts表示參考時鐘的周期,M表示延遲鏈的延遲單元數。這樣,可以計算出經過m個延遲單元后由于失配所導致的抖動為:

通過上式可得第m個延遲單元后由失配造成的抖動值為:

通過對式(11)的分析可知,當m=M/2時,由失配引起的抖動值達到最大。如圖3所示。其中σeL可以通過蒙特卡洛分析得到,通過對150組數據進行正態擬合,如圖4所示,可以得到它的σ值為15ps。
從圖3中可以看出,當總延遲單元數為32時,第16個延遲單元后的抖動值達到最大(不考慮電路噪聲和鑒相器的鑒相誤差),約為44ps。

圖3 失配引起的抖動隨延遲單元數的變化情況(理想狀態下)

圖4 延遲單元延遲時間的蒙特卡羅分析
設計的DLL的電壓控制延遲鏈由32個延遲單元構成。這樣當輸入時鐘頻率為50MHz時,可以實現625ps的時間分辨率。但是延遲單元的延遲時間隨控制電壓并不是線性變化,其變化曲線如圖5所示。

圖5 延遲時間隨控制電壓變化曲線
從圖5可以看出,當控制電壓由0V變化到3.3V時,延遲時間由950ps變化到550ps。為了提高建模的精確度,需要對該曲線進行多項式擬合。對于延遲單元的相位噪聲可以通過PSS+PNOISE仿真得到,其相位噪聲譜如圖6所示。因此根據文獻[6]提出的方法,可以計算出每一個延遲單元由噪聲所產生的抖動值約為2.3ps。

圖6 延遲單元相位噪聲
這樣可以對整個電壓控制延遲鏈進行Verilog-A建模如下:

在DLL中,鑒相器主要用來鑒別壓控延遲鏈的輸入時鐘與終端輸出時鐘之間的相位差,然后通過電荷泵將相位差轉換為相應的充放電電流。由于電路噪聲可能導致鑒相器的鑒相誤差和電荷泵充放電電流的失配,使得環路濾波電容上的控制電壓產生紋波,最終導致延遲單元的延時抖動。為了便于鑒相器和電荷泵建模,可以將噪聲轉換為一個等效到鑒相器輸入端的相位抖動。通過PSS+PNOISE仿真得到這個等效抖動約為2ps。在建模時,考慮到電路啟動時啟動控制電路會自動給環路濾波電容充電到高電平,因此在Verilog-A代碼中也必須體現這一點。這樣,可以對鑒相器和電荷泵統一建模如下:

嵌入到延遲鎖相環中的環路濾波電容主要有兩個作用,一是生成控制電壓,二是作為濾波器來降低噪聲。在建模時,控制電壓可以通過對流入環路濾波電容的電流進行積分得到。降低噪聲主要是靠較大的環路濾波電容對噪聲進行濾波來實現。在設計DLL時,采用的環路濾波電容大約為30pf。由此可以對環路濾波電容建模如下:



第四部分對DLL各模塊進行了單獨建模,現在需要對整個DLL進行整體仿真,以驗證建模的正確性。仿真的原理圖如圖7所示,圖中延遲鏈模塊用來產生多相時鐘,當電路鎖定時,VCDL每相鄰兩相時鐘在理論上相差625ps。
圖7(a)為對電路管子級的仿真結果,圖7(b)為對Verilog-A建模的仿真結果。兩圖中從上至下依次是第1、15、31個延遲單元的延遲時間的INL仿真結果。從圖7(a)中可以看出,隨著延遲單元的增多,其延遲時間的peak-to-peak抖動值也增大,依次約為 8ps,50ps,85ps。這是因為延遲單元的peak-to-peak抖動主要是由電路噪聲所造成的。在第三部分中,已經分析了噪聲對電路抖動的影響,隨著延遲單元的增多,噪聲引起的抖動會產生累積,因此最后一個延遲單元的peak-to-peak抖動值會達到最大。同時,可以看到,在圖7(b)中三條曲線的均值均不為0,其中中間那條曲線的偏離最大,達到了50ps。這主要是由延遲單元失配造成的。通過第三部分的分析知道,在延遲鏈的中間由失配造成的抖動值達到最大,這與以上建模仿真得到的結果相符合。
根據模擬延遲鎖相環的原理可以知道,延遲鏈的抖動會導致電荷泵隨機地向環路濾波電容充放電,最終表現為環路濾波電容上控制電壓的紋波。圖8(a)和(b)分別為由電路仿真和建模仿真得到的控制電壓的變化曲線,其中下部曲線為DLL鎖定后控制電壓的局部放大。

圖8 仿真變化曲線圖
由圖8(a)和(b)可知,DLL大約在啟動18us后達到鎖定狀態,鎖定后控制電壓紋波的peak-topeak值大約為4mV。通過比較圖8(a)和(b)可以看到,鎖定后建模仿真控制電壓穩定在1.909V,電路仿真控制電壓穩定在1.875V,誤差值約為0.035V,誤差小于1.8%,DLL的建模仿真和電路仿真結果能夠較好的吻合,因此Verilog-A建模具有較高的精度。
另外,對DLL進行了30us時長的仿真,行為級建模仿真大約耗時3分鐘,而電路級仿真需要約3.5個小時。因此,通過建模可極大的縮短仿真時間,提高仿真效率。
在分析模擬DLL抖動來源的基礎上,對DLL進行了Verilog-A精確建模與仿真,在保證仿真精度的前提下大大縮短了仿真時間。通過與電路管子級的仿真結果比較可知,建模的精度達到了混合信號仿真的要求。但是由于影響DLL抖動的因素很多,并未能夠對所有的抖動源進行建模,需要今后進一步完善。
[1] Aguiar RL,Santos DM.Modelling charge-pump delay locked loops[C].Proceedings of ICECS '99.The 6th IEEE International Conference on Electronics,Circuits and Systems.,2:823_826,1999.
[2] Barajas Enrique,Mateo Diego,Jos'e Luis Gonz 'alez.Behavioural modelling of DLLs for fast simulation and optimisation of jitter and power consumption[C].13thEuromicro Conference on Digital System Design:Architectures,Methods and Tools.2010.
[3] 高武.正電子發射斷層成像前端讀出芯片設計技術研究[D].西安:西北工業大學博士論文.2011.
[4] Beek RCH van de,Klumperink EAM,Vaucher CS.Analysis of Random Jitter in a Clock Multiplying DLL Architecture[C].ProRISC 2001,12thAnnual Workshop on Circuits,Systems and Signal Processing,Veldhoven,the Netherlands,29-30 November 2001.
[5] Beek RCH van de,Klumperink EAM,Vaucher CS,et al.Jitter in DLL-Based Clock Multipliers caused by Delay Cell Mismatch[C].ProRISC 2002,13thWorkshop on Circuits,Systems and Signal Processing,Veloven,the Netherlands,28-29 November,2002.
[6] Fordahl.Application Note AN-02-3[R].http://www.doc88.com/p-38231809540.html.