李荃 項順祥 黃麟舒
摘要:本文介紹了一種數字鎖相環的FPGA實現,簡單介紹了鎖相環的基本原理,并對每一模塊的FPGA實現的設計進行了介紹,最后通過仿真驗證了其性能。
關鍵詞:數字鎖相環;FPGA;ModelSim
中圖分類號:TM764 文獻標識碼:A 文章編號:1007-9416(2018)02-0083-02
隨著科技的發展,產品的信息化數字化程度越來越高,數字電路的應用也是越來越廣泛,而鎖相環是絕大部分數字電路的必備模塊,信號的運算、傳輸、存儲都應用到了鎖相環技術,因此鎖相環設計的好壞,直接對產品整體性能產生影響。從1965年第一片集成電路鎖相環誕生,廣泛應用于廣播電視領域,當時的鎖相環是純模擬電路,利用模擬乘法器實現鑒相,隨著數字電路技術的發展,在20世紀70年代慢慢出現了數字鎖相環,因其在數字化、集成化以及低功耗方面的優勢,得以迅速發展。本文介紹了一種數字鎖相環的FPGA實現。
1 鎖相環基本原理
鎖相環(Phase Locked Loop,PLL)本質上是一個閉環相位負反饋控制系統,針對不同的應用場合,鎖相環的實際電路可能是多種多樣的,但是一個典型的鎖相環電路都應包含這如圖1所示三個模塊:鑒相器(Phase Detector,PD),環路濾波器(Loop Filter,LF)、壓控振蕩器(Voltage Controlled Oscillator,VCO)[1]。
鑒相器將輸入的周期信號與壓控振蕩器輸出的信號的相位進行比較,鑒相器輸出一個與相位誤差成正比例關系的電壓信號,誤差電壓信號輸入到環路濾波器,輸出一個直流的控制電壓來對壓控振蕩器的輸出頻率進行控制,通過反饋電路使輸入信號和輸出信號的相位差控制在一個比較小的區間。
2 數字鎖相環各模塊的FPGA實現
2.1 數字鑒相器的FPGA實現
鑒相器可以有多種設計方案,本文采用如圖2所示一個乘法器和一個低通濾波器串聯構成。
設乘法器的相乘系數為Km,則輸入信號與反饋信號的輸出為:
其中Ud為鑒相器最大輸出電壓,θe(t)為誤差相位。
對于乘法器的實現,直接可以用FPGA中的乘法器來進行實現,對于低通濾波器常用的數字濾波器有FIR和IIR兩種,本設計選用FIR來作為鑒相器中的濾波器,原因主要有以下幾點[2]:
(1)只要當FIR濾波器系數選取恰當(具有對稱性)的時候其具有嚴格的線性相位特性;(2)FIR濾波器為有限脈沖響應濾波器,必為問題系統,其單位脈沖為有限長,受限于寄存器長度有限、計算精度有限的影響較小。而IIR極點在圓內才能穩定受限于有限字長,運算誤差較大;(3)FIR濾波器進行的是卷積運算,可以使用快速傅里葉變換等快速算法得到,易于實現。
實踐中FIR濾波器我們使用Quartus II中提供的FIR Compiler IP核來實現,但我們要對其系數進行設置,為了得到我們所需要性能的濾波器系數,我們在MATLAB中進行仿真,得到最優濾波器設計[3]。仿真結果如圖3所示。最后對得到的系數進行量化轉換成二進制,進而對FPGA中FIR Compiler IP核進行配置。
2.2 數控振蕩器的FPGA實現
數控振蕩器可以將數字處理延續到正交調制之后或正交解調之前,濾波器和增益控制就可以用數字方法實現。Quartus II中提供的NCO 核功能十分強大,可以進行多種算法的運算,本文選用使用較為廣泛的,最為直接的CORDIC迭代算法作為迭代算法。這也是通過FPGA來實現較為有優勢的一種算法。我們在對一些參數進行設置就可以完成數控振蕩器的配置。
2.3 頂層模塊設計
頂層模塊(主模塊)是對整個系統進行設計,簡單點說就是將各個功能子模塊的管腳進行定義,將各個模塊進行組合連接。頂層文件的部分程序代碼如下:
wire signed[19:0] pd_mult_out; //鑒相乘法器輸出;
wire fir_filter_rst_n; //鑒相濾波器接口;
wire fir_filter_sink_valid;
wire fir_filter_source_ready;
wire fir_filter_source_valid_nc;
wire signed [29:0]fir_ filter_out; //鑒相濾波輸出
接下來我們就可以對整個系統進行綜合,圖4為進過編譯綜合后的RTL原理圖。
3 ModelSim仿真測試
針對上述設計,使用Verilog HDL語音實現了該數字鎖相環的FPGA實現,并通過Modesim進行仿真測試。測試當中我們使用的輸入信號采用MATLAB來進行得到,方法是產生一個單頻信號,然后對其進行量化處理,并將其轉換為2進制存儲在工程目錄中。編寫對應的激勵文件,進行仿真,我們得到了如圖5所示的仿真結果:
仿真結果顯示,通過一定的捕捉時間,環路成功鎖定,鑒相器的輸出很快的收斂為一條平滑的直線。通過對輸入信號和輸出信號的局部放大如圖6所示,我們可以看到,環路鎖定后,輸入信號和輸出信號頻率和相位都相同。實現了鎖相環的功能。
4 結語
本文介紹了一種數字鎖相環的FPGA實現的設計,對鎖相環的基本工作原理進行了闡述,并對相關模塊的FPGA實現設計進行了說明。通過仿真實現表明,該數字鎖相環,結構簡單,性能優良。
參考文獻
[1]張厥盛,鄭繼禹,萬心平.鎖相技術[M].西安:西安電子科技大學出版社,2012.
[2]鞠芳,馬昕,田嵐.基于FPGA的數字乘法器性能比較[J].電子器件,2011,(06):718-722.
[3]郭勇,楊歡.基于IP核FIR濾波器的設計與FPGA實現[J].無線電工程,2017,(01):79-82.