胡建萍,張欣舒
(杭州電子科技大學電子信息學院,浙江杭州310018)
鎖相環(phase-locked loop)技術在調制和解調、調頻和解調、頻率合成電路和時鐘同步等很多領域應用極其廣泛。以前的鎖相環通常采用模擬鎖相環設計,由于容易受到電路物理特性影響等原因,導致故障率相對較多,逐漸被數字鎖相環技術取代,同時隨著集成電路技術的發展,采用可編程邏輯器件FPGA(Field Programmable Gate Array)設計數字系統,把整個數字系統的功能集成到一款芯片實現系統SOC已變得越來越普及。因此,本文采用FPGA控制為核心,設計數字鎖相環DPLL(digital phase-locked loop),其可靠性高、體積小的優點,在系統設計中具備極大的實用價值。
鎖相環主要由鑒相器、環路濾波器和振蕩器構成,用于實現系統輸出時鐘和某一外部時鐘相位同步。鎖相環可以對輸出信號頻率自動跟蹤,僅當輸出信號的頻率與輸入信號的頻率相同時,輸出電壓與輸入電壓相位差值固定,即被鎖住,得到最終輸出時鐘,如圖1所示。
鑒相器主要用于對fin和fout進行比較。當環路鎖定時,鑒相器輸出正比于這兩個信號相位差的直流電壓Ud。它的實現方式有很多,包括模擬式和數字式。在本次設計中,采用異或門(XOR)數字鑒相器。

圖1 鎖相環基本結構
數字鎖相環中使用的環路濾波器與模擬鎖相環中使用的功能一樣,主要用于對誤差電壓Ud進行低通濾波,因此環路濾波器參數對環路性能影響極大。同時,它還有校正環路的功能,對環路的穩定、噪聲的濾除和環路帶寬都有極大的影響,因此非常重要。
壓控振蕩器VCO為頻率可調的振蕩器,輸出信號的頻率隨著輸入控制電壓的變化發生變化,主要構成方式包括調諧振蕩器、多諧振蕩器兩種。當由于某種原因導致壓控振蕩器的頻率發生變化,使得輸出fout相位發生變化,此時fin和fout的相位變化通過在鑒相器中與參考時鐘相位進行比較,輸出與相位誤差信號成正比的誤差電壓Ud,經過環路濾波器后,得到緩慢變動數值,使得壓控振蕩器的輸出頻率恢復到穩定狀態,從而實現相位的鎖定。
隨著對數字技術研究的不斷進步,鎖相電路中的器件也逐步開始數字化。
設計中采用Verilog HDL進行編程,這種設計方法可以不必考慮特定的制造工藝而在抽象層對電路進行描述,通過使用Altera公司Quartus II軟件的邏輯綜合工具能夠將設計自動轉換為任意一種制造工藝版圖。如果需要移植到新的系統中,僅需要根據新的工藝對電路的時序和面積進行優化,即可生成新工藝的門級網表。
如圖2所示為數字鎖相FPGA設計原理圖,整個系統的工作方式:Phdetector模塊用于比較輸入信號fin和輸出信號fout的相位差,輸出誤差信號er;Nlf_K模塊用于消除相位誤差信號er中的高頻分量,產生標志信號;FBCounter模塊用于根據進位標志信號(fo)和借位標志信號(ba)進行輸出脈沖調整;Nlength模塊用于對輸入信號周期進行計數,自動量化輸出N值;Ndivider模塊用于對輸入信號進行N分頻。

圖2 鎖相環FPGA設計原理圖
本設計采用 Altera公司的 Cyclone EP1C6Q240 FPGA芯片,Cyclone系列芯片,可以內嵌各種IP核,實現強大的控制處理功能。同時這一系列芯片是目前市場上性價比最高且價格最低的FPGA芯片,所以很適用于成本敏感和大批量生產的產品設計,如通信類、消費類、視頻處理、測試和測量等各種產品領域。
此系列芯片設計靈活、系統集成能力高,Cyclone EP1C6Q240主要特性包括:
(1)工藝技術:采用300 mm晶元,基于TSMC公司130 nm工藝,小尺寸,低功耗。
(2)低成本架構:器件架構成本最低,可支持5980個邏輯單元(LE),完全可以滿足設計的運算需求。
當主電路過流時,電流互感器檢測到大電流,反饋給KA,達到KA的電流整定值時,KA將帶動YR跳閘,此時,QF3-4斷開,QF1-2閉合,綠燈亮。或者手動分閘,分閘繼電器KM觸點閉合,會給YR提供可以跳閘的電流,完成跳閘。
(3)嵌入式存儲器:內嵌M4K存儲器塊,可支持20塊存儲塊,用于實現單端口 RAM、雙端口 RAM、ROM以及同步FIFO(先入先出)和異步FIFO。
(4)I/O支持:185個用戶最大可用IO管腳。
在Verilog HDL設計過程中,應該采用自頂向下Top-Down的原則進行程序設計,如圖3所示。通過把硬件系統劃分為若干基本模塊A,B,C等,然后繼續對每個基本模塊A,B,C等繼續進一步劃分為下一層模塊,直到每個模塊的功能相對獨立,基本簡單為止。在此設計過程中,需要對每個模塊都要經過仿真驗證后再繼續下一層次設計,最后采用模塊調用的方式完成整個系統的描述。

圖3 自頂向下設計Top-Down原理
正是由于設計的仿真和調試過程都是從高層次開始,因此很容易在設計初期發現設計上的問題,避免進一步的損失。自頂向下的設計方法方便了系統劃分和項目管理,使得百萬門甚至千萬門的復雜數字電路設計成為可能,避免了重復性的勞動,提高了設計的效率。
目前常用的數字鑒相器有很多種類,比如異或門(XOR)鑒相器和RS觸發器鑒相器,鎖相環中鑒相器主要用于檢測輸入信號和輸出信號的相位差,本模塊設計采用異或門鑒相器方式,用于計算輸入信號fin和輸出信號fout的相位差并轉換為電平信號,同時輸出誤差信號er至Nlf_K模塊作為計數方向控制信號。主要代碼如下所示:

對于數字環路濾波器功能模塊的設計,本次采用模數可設置、可逆計數器構成。該計數器為10位(模數通過外部k值設置信號Kset設置)可逆計數器。當整個鎖相環系統正常工作,使得鑒相器輸出相位差為0時,那么鑒相器輸出為一個占空比為50%的方波,因此,當可逆計數器在相同時間間隔之內進行加計數或減計數時,只要外部k值設置信號值保持足夠大,那么整個計數器將不會產生超出或溢出的現象。
當整個鎖相環系統鎖定時,輸入信號fin和輸出信號fout經過鑒相器輸出相位誤差信號為0時,此時可逆計數器進行加計數和減計數的周期相同,因此不會產生進位或借位脈沖,僅對其時鐘進行二分頻;反之當鎖相環沒有鎖定時,如果誤差信號er為低電平時,表示fin和fout時鐘極性相同,此時計數器進行加計數,當可逆計數器到達Kset預設模值時,表示輸出信號超前,輸出減脈沖信號,可逆計數器復位為k值設置狀態;當誤差信號er為高電平時,表示fin和fout時鐘極性相反,可逆計數器每周期減1,當可逆計數器到達0時,表示輸出信號滯后,輸出增脈沖信號,可逆計數器復位為k值設置狀態;從而實現了環路濾波的功能。主要代碼如下所示:

數控振蕩器主要組成部分由輸出頻率穩定的時鐘源、計數器和比較器構成,輸出取樣脈沖序列,由數字環路濾波器輸出的校正電平信號控制。
對于數控振蕩器功能模塊的設計,主要根據環路濾波器功能模塊給出的借位標志信號(ba)、進位標志信號(fo)對輸出脈沖序列進行調整。當借位標志信號(ba)為高時,加減計數器模塊少輸出一個脈沖,從而降低輸出頻率;當進位標志信號(fo)為高時,加減計數器模塊多輸出一個脈沖,從而提高輸出頻率;當這兩個信號為低時,加減計數器模塊對時鐘進行二分頻輸出,具體實現硬件結構如圖4所示。

圖4 FBCounter模塊硬件結構
該模塊為除N的計數器,用于對上級模塊輸出的脈沖信號(cout)在系統時鐘下進行分頻,由于fout=clk/2N=fc,故通過改變N值得到相應的環路中心頻率fc,同時得到輸出信號fout。
分頻器的實現原理主要是通過對計數器進行計數,到達分頻的一半時時鐘進行翻轉達到分頻的目的,2N分頻器主要用于對時鐘信號進行偶數分頻,例如2分頻、4分頻、8分頻和16分頻。主要代碼如下所示:

使用QuartusII軟件對設計進行綜合、布局布線,得到最終下載至FPGA的bit流,進行下載測試。整個鎖相環系統占用芯片邏輯資源的5%(5980個LE單元),占用I/O管腳11%(185個管腳),在EP1C6 FPGA中僅占用了少量資源,并且時序條件滿足,完全可以達到高動態數字鎖相環的要求。實驗測試選擇的FPGA型號是在現有應用條件下選擇,只要內部資源滿足使用,當然選用成本越低的芯片越好,同時需考慮資源余量以便功能升級測試使用。
如圖5所示為采用QuartusII軟件進行時序仿真,通過對整個鎖相環源程序進行仿真后,發現本設計基本符合預定要求。仿真圖中可以看到系統會自動對輸出信號fout進行調節,使其在很短的幾個周期時間內既可以跟上輸入fin的頻率,相位差值固定,快速達到同步狀態,實現鎖相功能。

圖5 數字鎖相環時序仿真
本文主要就數字鎖相技術進行了研究,在本設計中,以Altera公司的EP1C6Q240芯片作為測試系統的核心器件,采用Verilog語言編程實現了高動態數字鎖相環設計方案。經過實際測試,完全能夠滿足實際使用,具有很高的兼容性和應用價值。
[1]黃良沛,羅忠誠.利用鎖相環實現大功率電機變頻轉工頻的研究[J].電氣應用,2005,(02):95-97,104.
[2]朱明亮,吳成柯,李云松.基于數字鎖相技術的視頻同步顯示[J].電視技術,2006,(12):43-45.
[3]余發強,徐東明,張云軍.應用于CDR電路的DPLL設計與實現[J].科技信息,2010,(01):78-79.
[4]王福昌,魯 昆.鎖相技術[M].武漢:華中理工大學出版社,1997.
[5]沈 軍,郭 勇,李志鵬.基于FPGA的DPLL設計與仿真實現[J].微計算機信息,2007,(14):201-203.