一種基于FPGA的全數(shù)字鎖相環(huán)設(shè)計
引言
數(shù)字鎖相環(huán)中的數(shù)字環(huán)路濾波器是由模數(shù)為K的可逆計數(shù)器構(gòu)成。鎖相環(huán)中可逆計數(shù)器的模數(shù)K越小,系統(tǒng)響應(yīng)越快,捕捉時間越短;反之,K越大,系統(tǒng)響應(yīng)越慢,捕捉時間越長。數(shù)字環(huán)路濾波器的作用在于提高環(huán)路相位校正的準(zhǔn)確性,減少噪聲對環(huán)路的干擾。雖然,在捕捉過程中K值較小,有利于加快鎖定速度,縮短捕捉時間。但在環(huán)路鎖定后的同步過程中,若K值太小,則會因可逆計數(shù)器頻繁地循環(huán)計數(shù)而產(chǎn)生持續(xù)的進位脈沖或借位脈沖,這就會導(dǎo)致輸出信號出現(xiàn)相位抖動,從而增加同步誤差。顯然,減少同步誤差與縮短捕捉時間是相互矛盾的,其矛盾的焦點在于對可逆計數(shù)器K值的選擇。
為了解決上述矛盾,本文設(shè)計了一個自動變模控制器,它可以根據(jù)輸入、輸出信號的相位誤差,實時控制模數(shù)K值的大小。因為在環(huán)路捕捉過程中,減少K值,可增加環(huán)路帶寬,使鎖定速度加快;而在同步過程中,增大K值,可縮小環(huán)路帶寬,有利于抑制相位抖動,減少同步誤差。
1? 系統(tǒng)結(jié)構(gòu)與工作原理
本鎖相環(huán)設(shè)計的系統(tǒng)框圖如圖1所示,由圖可見,本系統(tǒng)主要由數(shù)字鑒相器、數(shù)字環(huán)路濾波器、數(shù)控振蕩器及自動變??刂破魉膫€模塊構(gòu)成。
本文的自動變模鎖相環(huán)工作原理如下:
? ? ? ?當(dāng)環(huán)路失鎖時,由數(shù)字鑒相器會比較輸入信號ui和輸出信號uo之間的相位差異,并產(chǎn)生數(shù)字環(huán)路濾波器的計數(shù)方向控制信號ue。
數(shù)字環(huán)路濾波器是由模數(shù)為K的可逆計數(shù)器構(gòu)成的。K變??赡嬗嫈?shù)器可根據(jù)計數(shù)方向控制信號ue調(diào)整計數(shù)值,當(dāng)ue為低電平時做加計數(shù),ue為高電平時做減計數(shù)。當(dāng)計數(shù)值達到K時,產(chǎn)生一個進位信號carry作為加指令,當(dāng)計數(shù)值為0時,產(chǎn)生一個借位信號borrow作為扣指令。
相位控制器由控制脈沖變換電路和門控電路組成。它的功能是確保當(dāng)收到“加”指令時,在本地高速時鐘f0序列中插入一個脈沖,當(dāng)收到“扣"指令時,則在f0序列中扣除一個脈沖。相位控制器輸出的受控本地高速時鐘序列經(jīng)除M分頻后,便可對輸出信號u0的相位進行調(diào)整。
重復(fù)上面調(diào)整過程,可使M與S的相位差不斷減少,最終達到同步。
2? 數(shù)字鎖相環(huán)的VerilogHDL實現(xiàn)
本系統(tǒng)采用VerilogHDL進行硬件電路的設(shè)計。首先是根據(jù)系統(tǒng)中各功能模塊的要求分別設(shè)計環(huán)路各個部件的邏輯電路,并進行仿真驗證。然后,再將各部件組合起來進行系統(tǒng)設(shè)計和仿真。程序設(shè)計共包括6個模塊。分別為主模塊、鑒相器(單D觸發(fā)器)模塊、K變模可逆計數(shù)器模塊、自動變??刂破髂K、相位控制器模塊和除M計數(shù)器模塊。
2.1? 主模塊
主模塊即頂層模塊,一般由五個模塊組成,分別為鑒相器模塊(pd),K變??赡嬗嫈?shù)器模塊(kcounter),自動變??刂破髂K(m_change),相位控制器模塊(idcounter)和除M計數(shù)器模塊(f_divi-sion)o頂層模塊是一個全局設(shè)計,是自頂向下設(shè)計方法中的頂層設(shè)計。
2.2? 鑒相器模塊
鑒相器模塊采用單D觸發(fā)器。鑒相器模塊的輸出14反映著輸入信號Vi與輸出信號u.之間的相位關(guān)系。
2.3? 自動變??刂颇K
該模塊可以根據(jù)輸入ui、輸出uo信號的相位誤差來實時控制模數(shù)K值的大小。
自動變??刂破髂K能夠在鎖相過程中,根據(jù)量化相位誤差的大小來準(zhǔn)確、自動地調(diào)節(jié)模數(shù)K值的變化,實現(xiàn)對環(huán)路帶寬的實時控制,大大提高鎖相速度,消除縮短捕捉時間與減小同步誤差之間的矛盾。
2.4? K變??赡嬗嫈?shù)器
K變??赡嬗嫈?shù)器模塊中計數(shù)容量K的大小對于加快相位調(diào)整、減少捕捉時間影響很大。K取得小,“加”、"扣”脈沖控制信號產(chǎn)生的頻率就高,對相位的調(diào)整速度加快,使得環(huán)路鎖定時間縮短。反之,K取得大,“加”、"扣”脈沖控制信號產(chǎn)生的頻率較低,就會使環(huán)路鎖定時間延長。
K變??赡嬗嫈?shù)器模塊中使用了一個可逆計數(shù)器Count,當(dāng)鑒相器的輸出信號dnup為低時,即可進行加法運算,達到預(yù)設(shè)模值則輸出進位脈沖carry;為高時,則進行減法運算,為零時,就會輸出借位脈沖borrowoCount的模值可由輸入信號預(yù)設(shè)。模值的大小決定了DPLL的跟蹤步長,模值越大,跟蹤步長越小,鎖定時的相位誤差也越小,但捕捉時間越長;模值越小,跟蹤步長越大,鎖定時的相位誤差越大,但捕捉時間越短。
2.5? 相位控制器模塊
相位控制器模塊用于實現(xiàn)對輸入信號?,的頻率和相位跟蹤和調(diào)整,最終使輸出信號U3鎖定在輸入信號的頻率和相位上。
當(dāng)沒有進位/借位脈沖信號時,該模塊可以把外部參考時鐘進行二分頻;當(dāng)有進位脈沖信號carry時,則在輸出的二分頻信號中插入半個脈沖,以提高輸出信號的頻率。當(dāng)有借位脈沖信號borrow時,則在輸出的二分頻信號中減去半個脈沖,以降低輸出信號的頻率。
2.6? 除M計數(shù)器模塊
除M計數(shù)器模塊可對相位控制器模塊的輸出進行計數(shù)分頻。除M計數(shù)器模塊可對相位控制器模塊的輸出進行M分頻,從而得到整個環(huán)路的輸出信號uo。
3? 全數(shù)字鎖相環(huán)的頂層全局設(shè)計
本系統(tǒng)的頂層邏輯框圖是一個全局的設(shè)計,是自頂向下設(shè)計方法中的頂層設(shè)計,圖2所示是其設(shè)計框圖。它主要由鑒相器模塊(pd)、K變??赡嬗嫈?shù)器模塊(kcounter)、自動變模控制器模塊(m_change)、相位控制器模塊(idcounter)和除M計數(shù)器模塊(f_division)組成。
在頂層邏輯框圖中,模塊之間的聯(lián)系是用信號線來連接的。本設(shè)計的信號線用到了節(jié)點線(NodeLine)和總線(BusLine)兩種線型。節(jié)點線是只有一位的信號線,主要用于時鐘信號、復(fù)位信號、輸入信號以及一些控制信號的傳遞??偩€是含有多位的信號線,在本設(shè)計中用到了寬度為4位到8位不等的總線,這些總線在頂層邏輯框圖中主要用于數(shù)據(jù)的傳輸。
4? 全數(shù)字鎖相環(huán)的仿真結(jié)果分析
根據(jù)系統(tǒng)各部分電路的功能要求,我們釆用VerilogHDL語言對環(huán)路進行了綜合設(shè)計。即利用EDA軟件對源程序進行了邏輯綜合,并進行了功能仿真。圖3所示是鎖相環(huán)由快捕區(qū)進入慢捕區(qū)最后鎖定的仿真波形。在圖3中,ue為低電平,表示輸出信號uo滯后于輸入信號ui。ua反映了%與Uj的相位差,qo是量化計數(shù)器輸出的數(shù)字相位誤差序列。在每個鑒相周期內(nèi),當(dāng)ua為高電平時,計數(shù)器對其進行數(shù)字量化。qo值的大小可決定鎖相環(huán)處在快捕區(qū)、慢捕區(qū)或是鎖定,其對應(yīng)的模數(shù)控制字的大小不同,可實現(xiàn)自動變模控制。環(huán)路在“加”指令的作用下,經(jīng)反復(fù)調(diào)整,可使uo與ui的相位誤差逐漸減少。圖3所示是取elk頻率為25MHz(即周期為40ns),取ui周期為2.57μs(即頻率大約389.1kHz),同時M取32時的自動變模數(shù)字鎖相環(huán)仿真圖。
K變??赡嬗嫈?shù)器的模數(shù)K值對全數(shù)字鎖相環(huán)的鎖定時間起著關(guān)鍵的作用。選擇不同的K值,將會得到不同的仿真結(jié)果。圖3所示是K變??赡嬗嫈?shù)器的模數(shù)K值在快捕區(qū)取值20,在慢捕區(qū)取值21,在同步區(qū)取值211時的仿真波形。
從圖3的仿真圖中可看出,鎖相環(huán)的鎖定時間較短,為29.32μs,但同步誤差較大。當(dāng)模數(shù)K取值越大時,鎖定時間越長,同步誤差越小??梢愿鶕?jù)自己需要的情況,選擇合適的K值。
圖4所示為讓周期為2.58μs,即頻率大約為387.6kHz時的仿真結(jié)果。該結(jié)果需要的鎖定時間更長,為267.4μs。由于只是功能仿真,故有一定誤差,因此,這里并未指出此鎖相環(huán)的同步帶和捕捉帶。
?
5? 結(jié)語
本文設(shè)計的自動變模全數(shù)字鎖相環(huán)的功能基本達到了要求,但是,鎖定后穩(wěn)定度并不高。原因可能是同步誤差還不夠小,從而導(dǎo)致穩(wěn)定度不高。今后可以通過適當(dāng)增大模數(shù)K來減小同步誤差,或使用更強大的仿真軟件來提高仿真精度。





