全數(shù)字鎖相環(huán)的設(shè)計及分析
1 引 言
鎖相環(huán)是一種能使輸出信號在頻率和相位上與輸入信號同步的電路,即系統(tǒng)進(jìn)入鎖定狀態(tài)(或同步狀態(tài))后,震蕩器的輸出信號與系統(tǒng)輸入信號之間相差為零,或者保持為常數(shù)。傳統(tǒng)的鎖相環(huán)各個部件都是由模擬電路實現(xiàn)的,一般包括鑒相器(PD)、環(huán)路濾波器(LF)、壓控振蕩器(VCO)三個環(huán)路基本部件。
隨著數(shù)字技術(shù)的發(fā)展,全數(shù)字鎖相環(huán)ADPLL(AllDigital Phase-Locked Loop)逐步發(fā)展起來。所謂全數(shù)字鎖相環(huán),就是環(huán)路部件全部數(shù)字化,采用數(shù)字鑒相器、數(shù)字環(huán)路濾波器、數(shù)控振蕩器構(gòu)成鎖相環(huán)路,并且系統(tǒng)中的信號全是數(shù)字信號。與傳統(tǒng)的模擬電路實現(xiàn)的鎖相環(huán)相比,由于避免了模擬鎖相環(huán)存在的溫度漂移和易受電壓變化影響等缺點,從而具備可靠性高、工作穩(wěn)定、調(diào)節(jié)方便等優(yōu)點。全數(shù)字鎖相環(huán)的環(huán)路帶寬和中心頻率編程可調(diào),易于構(gòu)建高階鎖相環(huán),并且應(yīng)用在數(shù)字系統(tǒng)中時,不需A/D及D/A轉(zhuǎn)換。在調(diào)制解調(diào)、頻率合成、FM立體聲解碼、圖像處理等各個方面得到廣泛的應(yīng)用。
隨著電子設(shè)計自動化(EDA)技術(shù)的發(fā)展,可以采用大規(guī)??删幊踢壿嬈骷?如CPLD或FPGA)和VHDL語言來設(shè)計專用芯片ASIC和數(shù)字系統(tǒng)。本文完成了全數(shù)字鎖相環(huán)的設(shè)計,而且可以把整個系統(tǒng)嵌入SoC,構(gòu)成片內(nèi)鎖相環(huán)。
2全數(shù)字鎖相環(huán)的體系結(jié)構(gòu)和工作原理
74XX297 是出現(xiàn)最早,應(yīng)用最為廣泛的一款全數(shù)字鎖相環(huán),在本文中以該芯片為參考進(jìn)行設(shè)計、分析。ADPLL基本結(jié)構(gòu)如圖1所示,主要由鑒相器、K變??赡嬗嫈?shù)器、脈沖加減電路和除N計數(shù)器4部分構(gòu)成。K變模計數(shù)器和脈沖加減電路的時鐘分別為Mfc和2Nfc。這里fc是環(huán)路中心頻率,一般情況下M和N都是2的整數(shù)冪。
2.1 鑒相器
常用的鑒相器有兩種類型:異或門(XOR)鑒相器和邊沿控制鑒相器(ECPD)。異或門鑒相器比較輸入信號Fin相位和輸出信號Fout相位之間的相位差 θe,并輸出誤差信號Se作為K變??赡嬗嫈?shù)器的計數(shù)方向信號。環(huán)路鎖定時,θe=0,Se為一占空比50%的方波。當(dāng)θe=+π/2時,Se等于1;當(dāng) θe=-π/2時,Se等于0。因此異或門鑒相器相位差極限為±π/2,邊沿控制鑒相器相位差極限為±π。
2.2 K變??赡嬗嫈?shù)器
K 變模可逆計數(shù)器消除了鑒相器輸出的誤差信號Se中的高頻成分,保證環(huán)路的性能穩(wěn)定。K變??赡嬗嫈?shù)器主要是根據(jù)鑒相器的輸出作為方向脈沖,輸出加減脈沖信號。當(dāng)Se為低電平時,計數(shù)器進(jìn)行加運算,如果相加的結(jié)果達(dá)到預(yù)設(shè)的模值,則輸出一個進(jìn)位脈沖信號CARRY;當(dāng)Se為高電平時,計數(shù)器進(jìn)行減運算,如果減的結(jié)果達(dá)到零,則輸出一個借位脈沖信號BORROW。
2.3脈沖加減電路
K變模可逆計數(shù)器的CARRY和BORROW信號分別接到脈沖加減電路的INC和DEC信號。脈沖加減電路實現(xiàn)了對輸入信號頻率和相位的跟蹤和調(diào)整,最終使輸出信號鎖定在輸入信號的頻率和相位上,可以稱之為數(shù)控振蕩器。
2.4除N計數(shù)器
除N計數(shù)器對脈沖加減電路的輸出IDOUT進(jìn)行N分頻,得到整個環(huán)路的輸出信號Fout。同時,因為fc=IDCLOCK/2N,因此通過改變分頻值N可以得到不同的環(huán)路中心頻率fc。
3全數(shù)字鎖相環(huán)的實現(xiàn)與仿真
本設(shè)計在Altera公司的Max+PlusⅡ開發(fā)軟件平臺上,利用VHDL語言運用自頂向下的系統(tǒng)設(shè)計方法,完成ADPLL的設(shè)計。首先根據(jù)系統(tǒng)中各個功能模塊的要求分別設(shè)計環(huán)路各個部件的邏輯電路,并進(jìn)行仿真驗證,然后再將各部件組合起來,進(jìn)行系統(tǒng)仿真和驗證。
異或門鑒相器和除N計數(shù)器的實現(xiàn)較為簡單,不再進(jìn)行詳細(xì)說明。
3.1 K變模可逆計數(shù)器
K 變??赡嬗嫈?shù)器由兩個獨立的計數(shù)器"UPCOUNTER","DOWN COUNTER"組成,分別對應(yīng)設(shè)計中的q0,q1。K為計數(shù)器的模值,總是2的整數(shù)冪,可由輸入a[3..0]控制改變。計數(shù)器的操作由DN/UP信號控制。時鐘clk頻率為數(shù)字鎖相環(huán)中心頻率的M倍,clk上升沿計數(shù)。K計數(shù)器首先預(yù)置模數(shù),然后把鑒相器的輸出信號作為方向脈沖,控制內(nèi)部計數(shù)器進(jìn)行加、減計數(shù)。如果這個信號為高,"DOWN COUNTER"有效進(jìn)行遞減計算,"UP COUNTER"保持為零;相反,"UP COUNTER"有效進(jìn)行累加計算,"DOWN COUNTER"保持為預(yù)置模數(shù)。"UP COUNTER"計數(shù)值超過K時,increase輸出為1,計數(shù)器清零。"DOWN COUNTER"計數(shù)值為0時,decrease輸出為1,計數(shù)器恢復(fù)為預(yù)置模數(shù)。
a[3..0]=1時,設(shè)定K值為4。K變??赡嬗嫈?shù)器仿真波形如圖2所示。
3.2脈沖加減電路
脈沖加減電路需要利用多個觸發(fā)器配合產(chǎn)生時序,其輸出為IDOUT。當(dāng)沒有進(jìn)位或借位脈沖信號時,他把外部參考時鐘進(jìn)行二分頻;當(dāng)有進(jìn)位脈沖信號inc 時,則在輸出的二分頻信號中插入半個脈沖,以提高輸出信號的頻率;當(dāng)有借位脈沖信號dec時,則在輸出的二分頻信號中減去半個脈沖,以降低輸出信號的頻率。VHDL設(shè)計代碼如下,圖3為其仿真波形。
3.3全數(shù)字鎖相環(huán)的實現(xiàn)與仿真
將環(huán)路各個模塊連接起來完成ADPLL的設(shè)計。為了簡化設(shè)計,將K變模可逆計數(shù)器的時鐘Mclk與脈沖加減電路時鐘2Nclk接在一起,fin等于環(huán)路中心頻率fc,fc=312.5 kHz。取M=16,N=8,Mclk=5 MHz。當(dāng)a[3..0]=1時,設(shè)定K值為4。為了便于觀察,將K變??赡嬗嫈?shù)器的輸入信號udcon引出。
環(huán)路在進(jìn)入鎖定狀態(tài)后,udcon為占空比為50%的方波。系統(tǒng)原理圖和仿真波形分別如圖4,圖5所示。
由可得ADPLL的同步帶理論值為:f0/4,即234.375~390.625 kHz。根據(jù)仿真實驗結(jié)果,可以實現(xiàn)穩(wěn)定鎖相的頻率范圍為:250~357.14 kHz,略小于理論值范圍。
4全數(shù)字鎖相環(huán)數(shù)學(xué)模型的建立與分析
結(jié)合模擬和數(shù)字鎖相的理論分析,可以得到全數(shù)字鎖相環(huán)的相位和相差傳遞函數(shù)。圖6為全數(shù)字鎖相環(huán)的數(shù)學(xué)模型。
鑒相器可以看作增益為Kd的模塊,輸出占空比因子δk作為K變模計數(shù)器的輸入DN/UP,控制"UP COUNTER"和"DOWN COUNTER"的動作。
對于異或門鑒相器,相差等于π/2時,δk=1,相差等于-π/2時,δk=-1。因此對于異或門鑒相器增益Kd=2/π,同理可得邊沿控制鑒相器增益Kd=1/π。
K變模計數(shù)器產(chǎn)生CARRY信號的頻率為(f0為環(huán)路的中心頻率):
對于K變模計數(shù)器,其輸入輸出信號分別為δk和θcarry,對應(yīng)的Laplace變換為δk(s)和θcarry(s),所以K變模計數(shù)器的相位傳遞函數(shù)為:
對于脈沖加減電路,由于每個CARRY脈沖使其輸出IDOUT增加1/2個周期,可以將他看作增益為1/2的模塊。除N計數(shù)器可以看作增益為1/N的模塊。系統(tǒng)的相位傳遞函數(shù)H(s)表示為:
為了獲得最小波紋,對于異或門(XOR)鑒相器和邊沿控制鑒相器(ECPD),K模值分別取為M/4和M/2,相應(yīng)的時間常數(shù)分別為:τ(EXOR)= (N/8)T0,τ(ECPD)=(N/2)T0,其中T0=1/f0。由此可見,N越小,ADPLL的穩(wěn)定時間越短。在本文中設(shè)計的鎖相環(huán),Kd=2/π,M=16,N=8,K=M/4=4,代入時間常數(shù)公式可得:τ=T0。
5 結(jié) 語
本文介紹了一種一階ADPLL的設(shè)計方法,利用VHDL語言完成系統(tǒng)設(shè)計和仿真。ADPLL中可逆計數(shù)器的模值可以隨意改變,用來控制ADPLL的跟蹤補償和鎖定時間。除N計數(shù)器的分頻值也可隨意改變,使ADPLL可以跟蹤不同中心頻率的輸入信號。設(shè)計好的ADPLL模塊還可以作為可重用的IP核,應(yīng)用于其他設(shè)計。同時,在理論分析的基礎(chǔ)上,建立了全數(shù)字鎖相環(huán)的一階數(shù)學(xué)模型,從而可以根據(jù)具體的設(shè)計要求定量的計算參數(shù),簡化了ADPLL的設(shè)計。