《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動態(tài) > 一種基于VHDL語言的全數(shù)字鎖相環(huán)的實(shí)現(xiàn)

一種基于VHDL語言的全數(shù)字鎖相環(huán)的實(shí)現(xiàn)

2009-06-25
作者:范寒柏1,陶 杰1,王 欣2

  摘 要: 介紹一種基于VHDL語言的全數(shù)字鎖相環(huán)實(shí)現(xiàn)方法,并用這種方法在FPGA中實(shí)現(xiàn)了全數(shù)字鎖相環(huán),作為信號解調(diào)的位同步模塊。
  關(guān)鍵詞: VHDL;全數(shù)字鎖相環(huán);位同步;FPGA

?

  隨著集成電路技術(shù)的不斷進(jìn)步,數(shù)字化應(yīng)用逐漸普及,在數(shù)字通信、電力系統(tǒng)自動化等方面越來越多地運(yùn)用了數(shù)字鎖相環(huán)。它的好處在于免去了模擬器件的繁瑣,而且成本低、易實(shí)現(xiàn)、省資源。本文綜合以上考慮,在一片F(xiàn)PGA中以Quartus II為平臺用VHDL實(shí)現(xiàn)了一個(gè)全數(shù)字鎖相環(huán)功能模塊,構(gòu)成了片內(nèi)鎖相環(huán)。
  數(shù)字鎖相環(huán)是一種相位反饋控制系統(tǒng)。在數(shù)字鎖相環(huán)中,由于誤差控制信號是離散的數(shù)字信號而不是模擬信號,與之相對應(yīng),受控的輸出相位的改變是離散的而不是連續(xù)的;此外,環(huán)路組成的部件也全由數(shù)字電路實(shí)現(xiàn),故名“數(shù)字鎖相環(huán)”[1]。常用的數(shù)字鎖相環(huán)原理如圖1所示。

1 數(shù)字鎖相環(huán)的結(jié)構(gòu)及工作原理
  如圖1所示,數(shù)字鎖相環(huán)主要由鑒相器、K變模可逆計(jì)數(shù)器、脈沖加減器、N分頻器構(gòu)成。
  鑒相器其實(shí)就是一個(gè)異或門,它將輸入信號Din與位同步脈沖輸出信號Dout相異或,比較它們之間的相位差,并輸出相位誤差信號作為K變??赡嬗?jì)數(shù)器的計(jì)數(shù)方向的控制信號CS。當(dāng)環(huán)路鎖定時(shí),這個(gè)控制信號為占空比是50%的方波。
  K變??赡嬗?jì)數(shù)器根據(jù)相差信號CS的變化,向不同的方向計(jì)數(shù)。當(dāng)CS為邏輯“1”時(shí),計(jì)數(shù)器向下計(jì)數(shù),如果計(jì)到0,則輸出一個(gè)借位脈沖給脈沖加減器;當(dāng)CS為邏輯“0”時(shí),計(jì)數(shù)器向上計(jì)數(shù),如果計(jì)到模值,則輸出一個(gè)進(jìn)位脈沖給脈沖加減器。
  脈沖加減器是根據(jù)K變模可逆計(jì)數(shù)器輸出的進(jìn)位、借位脈沖來不斷地對本地時(shí)鐘進(jìn)行調(diào)整。當(dāng)有進(jìn)位脈沖時(shí),脈沖加減器就在本地時(shí)鐘上加入一個(gè)周期的時(shí)鐘信號;當(dāng)有借位脈沖時(shí),脈沖加減器就在本地時(shí)鐘上扣除一個(gè)周期的時(shí)鐘信號。如此反復(fù)不斷地對本地時(shí)鐘進(jìn)行調(diào)整,最終達(dá)到準(zhǔn)確確定出輸入信號時(shí)鐘的目的,從而實(shí)現(xiàn)位同步[2]
  N分頻器是將脈沖加減器輸出的經(jīng)過調(diào)整以后的時(shí)鐘信號進(jìn)行分頻,以減小同步誤差。N值越大得到的同步誤差越小。
2 數(shù)字鎖相環(huán)各部分的VHDL實(shí)現(xiàn)
  K變??赡嬗?jì)數(shù)器根據(jù)預(yù)設(shè)模值Kmode來設(shè)置對應(yīng)的模值寄存器的值,也即當(dāng)預(yù)設(shè)模值范圍在0~15變化時(shí),與之相對應(yīng)的Ktop的變化范圍為20~215。模值的大小直接決定了數(shù)字鎖相環(huán)鎖定時(shí)間的長短,模值越大鎖定時(shí)間越長,反之越小。但鎖定時(shí)間越長,鎖定時(shí)的相位誤差越小,反之越大。這部分的VHDL設(shè)計(jì)程序[3]如下:

  有了K變??赡嬗?jì)數(shù)器產(chǎn)生的進(jìn)位、借位脈沖,脈沖加減器就可以按照這兩種脈沖對本地高頻時(shí)鐘進(jìn)行不斷地調(diào)整,如圖2所示。

?


  N分頻器的設(shè)計(jì)相對簡單,其功能是將脈沖加減器輸出的經(jīng)過了調(diào)整的本地時(shí)鐘進(jìn)行N分頻,以減小同步脈沖輸出誤差。本例暫時(shí)用32分頻代替,其VHDL設(shè)計(jì)程序如下:

  

  按照圖1數(shù)字鎖相環(huán)原理框圖的設(shè)計(jì)理念,設(shè)計(jì)出各個(gè)主要的功能塊,并將它們各自進(jìn)行仿真。在確認(rèn)無誤后再連接起來進(jìn)行綜合仿真,以驗(yàn)證設(shè)計(jì)的正確性。在綜合仿真的過程中一個(gè)最關(guān)鍵的問題就是分析各個(gè)功能塊的時(shí)序關(guān)系、頻率關(guān)系。
3 頻率關(guān)系、時(shí)序分析
  假設(shè)輸入信號的頻率為fi=1 200 Hz,則位同步輸出信號頻率fo=1 200 Hz,脈沖加減器輸出信號頻率fm2=N×fo,則其時(shí)鐘頻率fm1=2×fm2;K變模可逆計(jì)數(shù)器工作時(shí)鐘可設(shè)為M fo。這里的M、N值一般均為2的整數(shù)次冪,他們之間的具體關(guān)系需根據(jù)fi確定。綜合仿真的時(shí)序圖如圖3所示。

?


  由圖3可以看出,CS控制信號逐漸變成了占空比為50%的方波,這也從側(cè)面反映出了鎖定過程。當(dāng)鎖相環(huán)鎖定后,信號CODEIN出現(xiàn)連“0”和連“1”時(shí),也能準(zhǔn)確實(shí)現(xiàn)位同步。鎖定時(shí)間約為15.8 ms。通過以上仿真,驗(yàn)證了設(shè)計(jì)的正確性。對于不同的設(shè)計(jì),只需要計(jì)算好頻率關(guān)系、修改一下N分頻器的N值,就可以實(shí)現(xiàn)不同輸入信號的同步。
  本文介紹的這種以VHDL語言實(shí)現(xiàn)的全數(shù)字鎖相環(huán),是在ALTERA公司的Cyclone系列FPGA—EP1C12Q240C8上實(shí)現(xiàn)的。它僅僅需要FPGA的95個(gè)邏輯單元,對于擁有12 060個(gè)邏輯單元的EP1C12來說,消耗的資源微乎其微,但卻是信號的差分相干解調(diào)過程中不可或缺的重要部分。通過以上方法介紹、仿真的實(shí)現(xiàn),再一次體現(xiàn)了用硬件描述語言在可編程器件中實(shí)現(xiàn)數(shù)字電路的優(yōu)越性。


參考文獻(xiàn)
[1] 胡春華.數(shù)字鎖相環(huán)路原理與應(yīng)用[M].上海:上海科技出版社,1990.
[2] Phase Locked Loop(PLL) in High Speed Designs.Lattice Semiconductor Corporation[J],AN8017~01,1997.
[3] 候伯亭,顧新.VHDL硬件描述語言與數(shù)字邏輯電路設(shè)計(jì)[M].西安:西安電子科技大學(xué)出版社,2003.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。