基于fpga的數字鎖相環(huán)設計【畢業(yè)論文】_第1頁
已閱讀1頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  本科畢業(yè)設計(論文)</p><p><b>  ( 屆)</b></p><p>  論文題目 基于FPGA的數字鎖相環(huán)設計 </p><p>  (英文) Digital PLL Design Based on FPGA </p><p>  所在學院 電子信息學院

2、 </p><p>  專業(yè)班級 電子信息工程 </p><p>  學生姓名 學號 </p><p>  指導教師 職稱 </p><p>  完成日期 年 月 日</p>

3、;<p><b>  摘要</b></p><p>  鎖相環(huán)路是一種反饋電路,全稱是Phase-Locked Loop,簡稱PLL。其作用是使得電路上的時鐘和某一外部時鐘的相位同步。鎖相環(huán)可以實現輸出信號頻率對輸入信號頻率的自動跟蹤,通常被用于閉環(huán)跟蹤電路。</p><p>  本文先對現狀進行了概述,闡明了數字鎖相環(huán)在鎖相環(huán)中的重要地位;然后對于數字

4、鎖相環(huán)的理論知識如分類、優(yōu)缺點和原理進行了分析。根據鎖相環(huán)原理,數字鎖相環(huán)一般由三個模塊組成:數字鑒相器(DPD)模塊,數字環(huán)路濾波器(DPD)模和數字壓控振蕩器(DCO)模塊?;贔PGA的數字鎖相環(huán)實現主要包括K變模計數器、異或鑒相器、加減脈沖計數器、除N分頻計數器N分頻參數實現等五個模塊組成。論文詳細闡述了每個模塊的Verilog語言實現及仿真波形。通過仿真驗證了設計的正確性。論文最后總結了整個設計過程,并指出設計工作中的不足之處

5、。</p><p>  基于FPGA的數字鎖相環(huán)可以在線修改相關參數,鎖相帶寬較寬,是嵌入式鎖相環(huán)的一個重要實現手段。</p><p>  關鍵詞:鎖相環(huán),數字鑒相器,數字環(huán)路濾波器,數字壓控振蕩器</p><p><b>  Abstract</b></p><p>  The PLL is a feedback ci

6、rcuit, the full name of the Phase-Locked Loop, referred to the PLL. Its role is to make the circuit on the clock and an external clock phase synchronization. Phase-locked loop can achieve the automatic tracking of the ou

7、tput signal frequency of the input signal frequency is usually used for closed-loop tracking circuit.</p><p>  This article first provides an overview of the status quo, to clarify the important position of

8、the digital phase-locked loop PLL; then were analyzed for the theoretical knowledge of the digital phase-locked loop, such as classification, advantages and disadvantages, and principles. According to the phase-locked lo

9、op principle, the digital phase-locked loop generally consists of three modules: the module of the digital phase detector (DPD), digital loop filter (DPD) mode and the digital voltage-</p><p>  FPGA-based di

10、gital phase locked loop can modify the relevant parameters, the lock-in wide bandwidth, embedded phase-locked loop is an important means of achieving.</p><p>  KeyWords: Phase-locked loop, digital phase dete

11、ctor, the digital loop filter, digital voltage-controlled oscillator</p><p><b>  目 錄</b></p><p><b>  1 引言1</b></p><p>  1.1 本課題的背景及意義1</p><p>

12、;  1.2課題內容與論文組織結構1</p><p>  2 數字鎖相環(huán)概述3</p><p>  2.2 數字鎖相環(huán)的組成及工作原理4</p><p>  2.3 數字鎖相環(huán)的優(yōu)缺點5</p><p>  3基于FPGA的數字鎖相環(huán)設計7</p><p>  3.1 基于FPGA的數字鎖相環(huán)設計原理7&l

13、t;/p><p>  3.2基于FPGA的數字鎖相環(huán)分模塊實現7</p><p>  3.2.1 K模計數器模塊設計7</p><p>  3.2.2脈沖增減模塊10</p><p>  3.2.3 N分頻參數控制模塊13</p><p>  3.2.4 N分頻器模塊15</p><p>

14、  3.2.5異或門鑒相器模塊16</p><p>  3.2.6數字鎖相環(huán)的頂層模塊18</p><p>  4 設計總結和展望20</p><p>  4.1 設計總結20</p><p>  4.2 設計展望20</p><p><b>  致謝21</b></p>

15、<p><b>  參考文獻22</b></p><p><b>  1 引言</b></p><p>  1.1 本課題的背景及意義</p><p>  鎖相環(huán)路是一種反饋電路,鎖相環(huán)的英文全稱是Phase-Locked Loop,簡稱PLL。其作用是使得電路上的時鐘和某一外部時鐘的相位同步[1]。因為鎖相

16、環(huán)可以實現輸出信號頻率對輸入信號頻率的自動跟蹤,所以鎖相環(huán)通常被用于閉環(huán)跟蹤電路。全數字鎖相環(huán)路(ADPLL),顧名思義,其環(huán)路中的所有部件都是用數字電路來實現的,到20世紀70年代開始出現的數字鎖相環(huán),在現代科技的很多領域都有鎖相環(huán)的應用[2]。</p><p>  鎖相環(huán)在通信、測量、雷達、和自動化控制等領域應用極為廣泛,隨著電子技術向數字化方向發(fā)展,需要采用數字方式實現信號的鎖相處理。因此,對全數字鎖相環(huán)路

17、的研究與應用得到了越來越多的關注[3]。近年來,隨著VLSI技術的發(fā)展,隨著大規(guī)模,超高速集成電路的飛速發(fā)展,數字系統的集成度和邏輯速度越來越高,這使得數字鎖相環(huán)在數字通信,控制工程及無線電電子學的各個領域中的應用也越來越廣泛。隨著集成電路技術的發(fā)展,不僅能夠制成頻率較高的單片集成鎖相環(huán)路,而且可以把整個系統集成到一個芯片上去。在基于FPGA的電路中可以把數字鎖相環(huán)路作為一個功能模塊嵌入FPGA中,構成片內鎖相環(huán)。</p>

18、<p>  傳統的數字鎖相環(huán)路系統是通過采用具有低通特性的環(huán)路濾波器,獲得穩(wěn)定的振蕩控制數據[4]。對于高階全數字鎖相環(huán),其數字濾波器常常采用基于DSP的運算電路。</p><p>  1.2課題內容與論文組織結構</p><p>  圍繞本課題,主要進行了以下工作:</p><p>  1)根據任務書要求,查閱資料,熟悉了鎖相環(huán)的應用背景、發(fā)展概況,數

19、字鎖相環(huán)的關鍵技術等內容。</p><p>  2)掌握數字鎖相環(huán)的一般實現原理。數字鎖相環(huán)主要由數字鑒相器、數字環(huán)路濾波器和數字壓控振蕩器等三部分組成。數字鑒相器用來比較輸入信號與壓控振蕩器輸出信號的相位,其輸出電壓是對應于這兩個信號相位差的函數。數字環(huán)路濾波器則由一模值為變量K的可逆計數器來實現,其作用是對輸入噪聲起抑止作用,并且對環(huán)路的校正速度起調節(jié)作用。數控振蕩器相當于模擬鎖相環(huán)中的壓控振蕩器,輸出一脈沖

20、序列,由脈沖加減電路實現,根據前級濾波器的進位脈沖/借位脈沖信號調整輸出脈沖。</p><p>  3)熟悉FPGA的設計流程,掌握基于QUARTUS II的開發(fā)設計過程。</p><p>  4)通過查閱資料,提出基于FPGA的數字鎖相環(huán)設計方案,并對方案進行論證,保證方案的確實可行。根據數字鎖相環(huán)的實現原理,將整個系統分為K??勺冇嫈灯?,除N分頻器,加/減脈沖計數器,鑒相器等五個模塊。

21、</p><p>  5)在QUARTUS II平臺下分別實現各個模塊。每個模塊用Verilog語言進行編寫,然后編譯,仿真,觀察輸出信號的正確與否。</p><p>  6)進行系統聯調,對整個工程進行編譯,仿真,觀察最終的輸出波形。</p><p>  7)記錄并整理設計過程中出現的問題。</p><p>  論文第一章為引言,概述了數字

22、鎖相環(huán)的背景及意義,概括了本次設計所做的工作及論文的組織結構;第二章概述數字鎖相環(huán)的基本知識;第三章為本文重點,闡述設計的實現過程及其仿真與驗證,并給出相應的分析;最后對設計進行總結和展望。</p><p><b>  2 數字鎖相環(huán)概述</b></p><p>  鎖相環(huán)(Phase-Locked Loop)是一個相位反饋控制系統,是電路的重要環(huán)節(jié),尤其在高速信號處

23、理的集成電路中[5]。根據實現原理及元器件不同,可分為模擬鎖相環(huán)和數字鎖相環(huán)兩類。模擬鎖相環(huán)由于其速度等原因,目前應用不太廣泛。而數字鎖相環(huán)由于其卓越的性價比,近年來得到了迅速的發(fā)展。</p><p>  數字鎖相環(huán)(Digital Phase-Locked Loop,簡稱DPLL)是一種反饋控制電路[5]。就是指應用于數字系統的PLL,就是說數字PLL中的各個模塊都是以數字器件來實現的,是一個數字電路[7]。&

24、lt;/p><p>  2.1 鎖相環(huán)分類及原理</p><p>  鎖相環(huán)電路是一個使輸出信號與參與信號或者輸入信號在頻率和相位上同步的電路[8]。在同步狀態(tài),振蕩器輸出信號和參考信號之間的相位差為零,或者保持常數。按輸入信號可分為恒定輸入環(huán)路和隨動輸入環(huán)路;按環(huán)路部件可分為模擬鎖相環(huán)和數字鎖相環(huán)[9]。</p><p>  模擬鎖相環(huán)通常由鑒相器(PD)、環(huán)路濾波器

25、(LF)和壓控振蕩器(VCO)三部分組成,鎖相環(huán)組成的原理框圖如圖2-1所示。</p><p>  輸入信號fint Ud Uc</p><p><b>  重構信號fout</b></p><p>  圖2-1 鎖相環(huán)結構框圖</p><p>  鑒相器又稱相位比

26、較器,其作用是檢測輸入、輸出信號的相位差,然后將該相位差信號轉換成電壓信號Ud輸出,該輸出信號經低通濾波器濾波后形成壓控振蕩器的控制電壓Uc(t),對振蕩器輸出信號的頻率進行控制,從而使輸出信號與輸入信號嚴格同步[10]。</p><p>  數字鎖相環(huán)的基本原因與模擬鎖相環(huán)相同,只不過所用的元器件均為數字器件?;窘Y構如圖2-2所示,主要由數字鑒相器(異或門),可逆計數器,脈沖加減電路和除N計數器四部分組成[1

27、1]。</p><p>  圖2-2 數字鎖相環(huán)原理圖</p><p>  當環(huán)路失鎖時,異或門鑒相器會比較輸入、輸出信號之間的相位差,由此產生變模可逆計數器的計數方向控制信號; 變??赡嬗嫈灯鞲鶕嫈捣较蚩刂菩盘栒{整計數值,當輸出脈沖為高時進行減計數,并當計數值到達0時,輸出借位脈沖信號;當輸出脈沖為低時進行加計數,并當計數值達到預設的模值時,輸出進位脈沖信號;脈沖加減電路則根據進位脈沖

28、信號和借位脈沖信號在電路輸出信號中進行脈沖的增加和扣除操作,來調整輸出信號的頻率;重復上面的調整過程,當環(huán)路進入鎖定狀態(tài)時,異或門鑒相器的輸出為一占空比50%的方波,而變??赡嬗嫈灯鲃t周期性地產生進位脈沖輸出和借位脈沖輸出,導致脈沖加減電路的輸出信號周期性的加入和扣除半個脈沖[12]。這樣就實現了鎖相的功能。</p><p>  環(huán)路濾波器的性能優(yōu)劣會直接影響到跟蹤環(huán)路的性能。而采用數字化的環(huán)路濾波器便于調試參數

29、和提高系統可靠性。數字環(huán)中使用的數字環(huán)路濾波器與模擬環(huán)中使用的環(huán)路濾波器作用一樣,都對噪聲及高頻分量起抑制作用,并且控制著環(huán)路相位校正的速度與精度[13]。適當選擇濾波器的參數,可以改善環(huán)路的性能。</p><p>  2.2 數字鎖相環(huán)的組成及工作原理</p><p>  數字鎖相環(huán)的一般組成如下圖2-3所示,由數字鑒相器(DPD,Digital Phase Detector)、數字環(huán)路

30、濾波器(DLF,Digital Loop Filter)、數字壓控振蕩器(DCO,Digital Control Oscillator)三部分組成[14]。</p><p>  圖2-3 數字鎖相環(huán)組成圖</p><p> ?。?)數字環(huán)路鑒相器</p><p>  數字鑒相器是用來比較輸入信號與壓控振蕩器輸出信號的相位,它的輸出電壓是對應于這兩個信號相位差的函數。

31、它是鎖相環(huán)路中的關鍵部件,數字鑒相器的形式可分為:過零采樣鑒相器、觸發(fā)器型數字鑒相器、超前-滯后型數字鑒相器和奈奎斯特速率取樣鑒相器[15]。</p><p>  (2)數字環(huán)路濾波器(DLF)</p><p>  數字環(huán)路濾波器由一個模值為變量K的可逆計數器來實現。數字環(huán)路濾波器在環(huán)路中對輸入噪聲起抑止作用,并且對環(huán)路的校正速度起調節(jié)作用。數字濾波器是一種專門的技術,有各種各樣的結構形式

32、和設計方法[16]。引入數字環(huán)路濾波器和模擬鎖相環(huán)路引入環(huán)路濾波器的目的一樣,是作為校正網絡引入環(huán)路的。因此,合理的設計數字環(huán)路濾波器和選取合適的數字濾波器結構就能使DPLL滿足預定的系統性能要求[3]。</p><p>  (3) 數字壓控振蕩器(DCO)</p><p>  數控振蕩器,又稱為數字鐘。它在數字環(huán)路中所處的地位相當于模擬鎖相環(huán)中的壓控振蕩器(VCO)[5]。但是,它的輸出

33、是一個脈沖序列,由脈沖加減電路實現,根據數字濾波器給出的進位脈沖up信號和借位脈沖信號dn進行輸出脈沖的調整。其調整特點是:前一采樣時刻得到的校正信號將改變下一個采樣時刻的脈沖時間位置[7]。</p><p>  2.3 數字鎖相環(huán)的優(yōu)缺點</p><p>  數字鎖相環(huán)電路完全數字化,使用邏輯門電路和觸發(fā)器電路。系統中只有“導通”和“截止”兩種工作狀態(tài),受外界和電源的干擾的可能性大大減小

34、,電路容易集成,易于制成全集成化的單片全數字鎖相環(huán)路。因而系統的可靠性大大提高[8]。 </p><p>  數字鎖相環(huán)不僅吸收了數字電路可靠性高,體積小,價格低等優(yōu)點,還解決了模擬鎖相環(huán)的直流零點漂移,器件飽和以及容易受電源和環(huán)境溫度變化等缺點,此外還具有對離散樣值的實時處理能力,已成為鎖相技術發(fā)展的方向。</p><p>  數字鎖相環(huán)路中,因模擬量轉變?yōu)閿底至克氲牧?/p>

35、化誤差和離散控制造成的誤差,只要系統設計得當,均可以被忽略。</p><p>  數字鎖相環(huán)的特點是電路最簡單有效,可以采用沒有壓控的晶振,降低了成本,提高了晶振的穩(wěn)定性[9]。但缺點和模擬鎖相環(huán)一樣,一旦失去基準頻率輸出頻率會產生抖動,頻差越大,抖動會越大于密,不利于某些場合的應用。</p><p>  3基于FPGA的數字鎖相環(huán)設計</p><p>  本章是論

36、文的重點,詳細闡述數字鎖相環(huán)的設計過程。</p><p>  3.1 基于FPGA的數字鎖相環(huán)設計原理</p><p>  圖3 基于FPGA的數字鎖相環(huán)設計原理圖</p><p>  數字鎖相環(huán)中數字鑒相器由異或門構成,數字環(huán)路濾波器由變模可逆計數器構成,數控振蕩器由加減脈沖控制器和除N計數器構成。</p><p>  3.2基于FPGA的

37、數字鎖相環(huán)分模塊實現</p><p>  由上述原理,將整個數字鎖相環(huán)分為五個模塊:K模計數器、異或鑒相器、加減脈沖計數、除N計數和分頻等。本節(jié)進行詳細介紹。</p><p>  3.2.1 K模計數器模塊設計</p><p>  圖3-1 K變??赡婕夹g器原理圖</p><p>  圖3-1是K變??赡嬗嫈灯鞯脑韴D。K變??赡嬗嫈灯鞲鶕?/p>

38、數方向控制信號(dnup)調整計數值,dnup為高進行減計數,并當計數值到達0時,輸出借位脈沖信號(dn);為低進行加計數,并當計數值達到預設的K模值時,輸出進位脈沖信號(up)[10]。</p><p>  此模塊實現K模計數功能,模塊的輸入信號有:</p><p>  1)Kclock,此信號為系統的時鐘信號;</p><p>  2)reset,為復位信號,高

39、電平有效,即該信號為“1”時,進行復位;</p><p>  3)dnup,為加減控制信號,dnup為“1”時,使計數器進行加計數,dnup為“0”時,使計數器進行減計數;</p><p>  4)enable,為模塊的使能信號;</p><p>  5)Kmode[2..0],為計數器模值輸入信號, “001”時,模值為8;“010”時,模值為16;“011”時,

40、模值為32;“100”時,模值為64;“101”時,模值為128;“110”時,模值為256;“111”時,模值為512;不輸入時,模值默認為16;</p><p>  6)carryo:進位脈沖輸出信號;</p><p>  7)borrow:借位脈沖輸出信號。</p><p><b>  源代碼如下:</b></p><

41、p>  module KCounter(Kclock,reset,dnup,enable,Kmode,carryo,borrow);</p><p>  input Kclock; //系統時鐘信號</p><p>  input reset; //全局復位信號,高電平復位</p><p>  input dnup; //鑒相器輸出的加減控制

42、信號</p><p>  input enable; //可逆計數器計數允許信號,高電平有效</p><p>  input [2:0]Kmode; //計數器模值設置信號</p><p>  output carryo; //進位脈沖輸出信號</p><p>  output borrow; //借位脈沖輸出信號</

43、p><p>  wire carryo,borrow;</p><p>  reg [8:0]Count; //可逆計數器</p><p>  reg [8:0]Ktop; //預設模值寄存器</p><p>  //根據計數器模值設置信號Kmode來設置預設模值寄存器的值</p><p>  always @(Kmod

44、e)</p><p><b>  begin</b></p><p>  case(Kmode)</p><p>  3'b001:Ktop<=7;</p><p>  3'b010:Ktop<=15;</p><p>  3'b011:Ktop<=31;

45、</p><p>  3'b100:Ktop<=63;</p><p>  3'b101:Ktop<=127;</p><p>  3'b110:Ktop<=255;</p><p>  3'b111:Ktop<=511;</p><p>  default:Kt

46、op<=15;</p><p><b>  endcase</b></p><p><b>  end </b></p><p>  //根據鑒相器輸出的加減控制信號dnup進行可逆計數器的加減運算</p><p>  always @(posedge Kclock or posedge re

47、set)</p><p><b>  begin</b></p><p><b>  if(reset)</b></p><p>  Count<=0; </p><p>  else if(enable)</p><p><b>  begin</b&

48、gt;</p><p><b>  if(!dnup)</b></p><p><b>  begin</b></p><p>  if(Count==Ktop)</p><p><b>  Count<=0;</b></p><p><b&

49、gt;  else</b></p><p>  Count<=Count+1;</p><p><b>  end </b></p><p><b>  else</b></p><p><b>  begin</b></p><p>

50、  if(Count==0)</p><p>  Count<=Ktop;</p><p><b>  else</b></p><p>  Count<=Count-1;</p><p><b>  end</b></p><p><b>  end&

51、lt;/b></p><p><b>  end </b></p><p>  //輸出進位脈沖carry和借位脈沖borrow</p><p>  assign carryo=enable&(!dnup)&(Count==Ktop);</p><p>  assign borrow=enable&

52、amp;dnup&(Count==0);</p><p><b>  endmodule</b></p><p>  圖3-2和圖3-3是K值為“010”時、dnup為“1”時的仿真圖。由圖3-3可以看出,16個CLK后,borrow信號有輸出,符合設計的情況,驗證了程序設計的正確性。</p><p>  圖3-2 K值為010時的仿

53、真界面</p><p>  圖3-3 K值為010時的仿真輸出波形</p><p>  3.2.2脈沖增減模塊</p><p>  脈沖增減電路根據進位脈沖信號和借位脈沖信號在電路輸出信號中進行脈沖的增加和扣除操作,來調整輸出信號的頻率。</p><p>  此模塊的引腳定義有:</p><p>  1)IDcloc

54、k,此信號為系統的時鐘信號;</p><p>  2) reset,為復位信號,高電平有效,即該信號為“1”時,進行復位;</p><p>  3)inc,為增脈沖;</p><p>  4)dec,為減脈沖;</p><p>  5)IDout,模塊的輸出信號;</p><p><b>  源代碼如下:&l

55、t;/b></p><p>  module IDCounter (IDclock,reset,inc,dec,IDout);//脈沖增減模塊</p><p>  input IDclock,reset,inc,dec;</p><p>  output IDout;</p><p>  reg IDout;</p>&l

56、t;p>  reg inc_new,dec_new,inc_pulse,dec_pulse;</p><p>  reg delayed,advanced,Tff;</p><p>  always @(posedge IDclock)</p><p><b>  begin </b></p><p><b

57、>  if(!inc)</b></p><p><b>  begin</b></p><p>  inc_new<=1;</p><p>  inc_pulse<=0;</p><p><b>  end</b></p><p>  else

58、if (inc_pulse)</p><p><b>  begin </b></p><p>  inc_new<=0;</p><p>  inc_pulse<=0;</p><p><b>  end</b></p><p>  else if (inc&a

59、mp;&inc_new)</p><p><b>  begin</b></p><p>  inc_pulse<=1;</p><p>  inc_new<=0;</p><p><b>  end</b></p><p><b>  else

60、 </b></p><p><b>  begin</b></p><p>  inc_pulse<=0;</p><p>  inc_new<=0;</p><p><b>  end</b></p><p><b>  end </

61、b></p><p>  always @(posedge IDclock)</p><p><b>  begin </b></p><p><b>  if(!dec)</b></p><p><b>  begin</b></p><p>

62、  dec_new<=1;</p><p>  dec_pulse<=0;</p><p><b>  end</b></p><p>  else if (dec_pulse)</p><p><b>  begin </b></p><p>  dec_new

63、<=0;</p><p>  dec_pulse<=0;</p><p><b>  end</b></p><p>  else if (dec&&dec_new)</p><p><b>  begin</b></p><p>  dec_pu

64、lse<=1;</p><p>  dec_new<=0;</p><p><b>  end</b></p><p><b>  else </b></p><p><b>  begin</b></p><p>  dec_pulse&l

65、t;=0;</p><p>  dec_new<=0;</p><p><b>  end</b></p><p><b>  end </b></p><p>  always@(posedge IDclock)</p><p><b>  begin<

66、;/b></p><p>  if (reset) </p><p>  begin Tff<=0; delayed<=1;advanced<=1; end </p><p><b>  else </b></p><p><b>  begin</b></p&g

67、t;<p>  if (inc_pulse) </p><p>  begin advanced<=1;Tff<=!Tff; end</p><p>  else if(dec_pulse)</p><p>  begin delayed<=1; Tff<=!Tff; end</p><p>  el

68、se if (Tff==0)</p><p><b>  begin</b></p><p>  if(!advanced)</p><p>  Tff<=!Tff;</p><p>  else if(advanced)</p><p>  begin Tff<=Tff; advan

69、ced<=0; end </p><p><b>  end</b></p><p><b>  else</b></p><p><b>  begin</b></p><p>  if (!delayed)</p><p>  Tff<=

70、!Tff;</p><p>  else if(delayed)</p><p>  begin Tff<=Tff;delayed<=0; end</p><p><b>  end</b></p><p><b>  end </b></p><p><b

71、>  end</b></p><p>  always @(IDclock or Tff)</p><p><b>  begin </b></p><p><b>  if (Tff)</b></p><p><b>  IDout=0;</b></p

72、><p><b>  else</b></p><p><b>  begin</b></p><p>  if(IDclock) </p><p><b>  IDout=0;</b></p><p><b>  else</b>&l

73、t;/p><p><b>  IDout=1;</b></p><p><b>  end</b></p><p><b>  end </b></p><p>  endmodule </p><p>  圖3-4和圖3-5為此模塊的仿真圖。由圖3-

74、5可看出,當輸入加脈沖時,輸出信號則相應增加脈沖,驗證了設計的正確性。</p><p>  圖3-4 脈沖加減模塊的仿真界面</p><p>  圖3-5脈沖加減模塊的仿真輸出波形</p><p>  3.2.3 N分頻參數控制模塊</p><p>  此模塊對輸入脈沖進行N分頻,并給出N值。引腳定義有:</p><p&

75、gt;  1)clk,此信號為系統的時鐘信號;</p><p>  2)fin,脈沖信號;</p><p>  3)reset,為復位信號,高電平有效,即該信號為“1”時,進行復位;</p><p>  4)count_N,利用clk對fin脈沖的測量并給出N值;</p><p><b>  源代碼如下:</b><

76、/p><p>  module counter_N (clk, fin, reset, count_N);//利用clk對fin脈沖的測量并給出N值 </p><p>  input clk, fin, reset;</p><p>  output [14:0] count_N; </p><p>  reg [14:0

77、] count_N; </p><p>  reg [15:0] cnt; </p><p>  reg cnt_en;</p><p>  reg load;</p><p>  wire cnt_clr; </p><p>  always @ (

78、posedge fin )//fin上升沿到的時候,產生各種標志以便后面控制</p><p><b>  begin</b></p><p>  if (reset)</p><p><b>  begin</b></p><p><b>  cnt_en=0;</b><

79、/p><p><b>  load=1;</b></p><p><b>  end</b></p><p><b>  else </b></p><p><b>  begin</b></p><p>  cnt_en=~cnt_e

80、n;</p><p>  load=~cnt_en;</p><p><b>  end</b></p><p><b>  end</b></p><p>  assign cnt_clr=~(~fin & load);</p><p>  always @(pos

81、edge clk or negedge cnt_clr)</p><p><b>  begin</b></p><p>  if (!cnt_clr) </p><p><b>  cnt=0;</b></p><p>  else if (cnt_en)</p><p&g

82、t;<b>  begin</b></p><p>  if (cnt==65536)</p><p><b>  cnt=0;</b></p><p><b>  else </b></p><p>  cnt=cnt+1;</p><p><b

83、>  end</b></p><p><b>  end</b></p><p>  always @ (posedge load)</p><p><b>  begin</b></p><p>  count_N=cnt/2; //這里取fin周期的一半</p&

84、gt;<p><b>  end</b></p><p><b>  endmodule</b></p><p>  圖3-6和圖3-7是此模塊的仿真界面。圖3-7中可看,輸入信號CLK對輸入信號FIN進行計數,并將計數值賦給CNT輸出。此次仿真中,CLK的周期是20NS,FIN的周期是60NS。驗證了設計的正確性。</p&g

85、t;<p>  圖3-6 N分頻參數控制模塊的仿真界面</p><p>  圖3-7 N分頻參數控制模塊的仿真輸出波形</p><p>  3.2.4 N分頻器模塊</p><p>  此模塊實現N分頻。引腳定義:</p><p>  1)clkin,此信號為系統的輸入時鐘信號;</p><p>  2)

86、reset,為復位信號,高電平有效,即該信號為“1”時,進行復位;</p><p><b>  3)n,為分頻數;</b></p><p>  4)clkout,此系統的輸出時鐘信號;</p><p><b>  源代碼如下:</b></p><p>  module div_N (clkin,n

87、,reset,clkout); //N分頻模塊</p><p>  input clkin,reset;</p><p>  input [14:0] n;</p><p>  output clkout;</p><p>  reg clkout; </p><p>  integer count; &

88、lt;/p><p>  always@(posedge clkin) </p><p><b>  if(reset)</b></p><p><b>  begin</b></p><p><b>  clkout=0;</b></p><p><b

89、>  count=0;</b></p><p><b>  end</b></p><p><b>  else</b></p><p><b>  begin</b></p><p>  if(count>=(n/2)-1)</p>&l

90、t;p>  begin clkout<=~clkout;count<=0;end</p><p><b>  else</b></p><p>  count<=count+1;</p><p><b>  end</b></p><p><b>  endmod

91、ule</b></p><p>  圖3-8和圖3-9為此模塊的仿真波形。圖中將分頻系數設為8,因此輸出波形為輸出信號的8分頻。驗證了設計的正確性。</p><p>  圖3-8 N分頻器模塊的仿真界面</p><p>  圖3-9 N分頻器模塊的仿真輸出波形</p><p>  3.2.5異或門鑒相器模塊</p>

92、<p>  此模塊實現鑒相功能。引腳定義:</p><p>  1)a,輸入信號波形;</p><p>  2)b,另一輸入信號波形;</p><p>  3)y,輸出信號波形;</p><p><b>  源代碼如下:</b></p><p>  module xormy(a,b,y

93、);//異或門鑒相器</p><p>  input a,b;</p><p><b>  output y;</b></p><p><b>  reg y;</b></p><p>  always @(a or b)</p><p><b>  begin &

94、lt;/b></p><p><b>  y=a^b;</b></p><p><b>  end </b></p><p><b>  endmodule</b></p><p>  圖3-10和圖3-11為此模塊的仿真波形。</p><p> 

95、 圖3-10 異或門鑒相器模塊的仿真界面</p><p>  圖3-11 異或門鑒相器模塊的仿真輸出波形</p><p>  異或門鑒相器實際上是對Fin和Fout信號進行異或操作,其仿真圖波形如上圖所示。當兩個輸入信號電平不同時(一個信號為高電平“1”,另一個信號為低電平“0”),則輸出才為高電平“1”,而當兩個輸入信號相同時(兩個同為“1”,或同為“0”時),則輸出為低電平“0”。

96、</p><p><b>  異或門真值表如下:</b></p><p>  3.2.6數字鎖相環(huán)的頂層模塊</p><p>  以上實現了各模塊的功能。接下來需要對這些模塊進行連接。此模塊實現了此功能。</p><p><b>  引腳定義:</b></p><p>  1

97、)clk,此信號為系統的時鐘信號;</p><p>  2)fin,脈沖信號;</p><p>  3)reset,為復位信號,高電平有效,即該信號為“1”時,進行復位;</p><p>  4)enable,為模塊的使能信號;</p><p>  5)Kmode[2..0],為計數器模值輸入信號;</p><p> 

98、 6)fout,鎖頻鎖相輸出;</p><p>  7)fin_dac,輸入信號經過數模轉換的輸出;</p><p>  8)fout_dac,輸出信號經過數模的輸出;</p><p>  9)se,鎖相環(huán)的輸出波形;</p><p><b>  源代碼如下:</b></p><p>  modu

99、le pll_top (fin,fout,se,clk,reset,enable,Kmode,fin_dac,fout_dac);</p><p>  input fin,clk; //clk時鐘100ns(10MHZ)</p><p>  input reset,enable; //reset高電平復位,enable高電平有效</p><

100、;p>  input [2:0]Kmode; //濾波計數器的計數模值設定</p><p>  output fout; //fout是鎖頻鎖相輸出</p><p>  output [7:0]fin_dac,fout_dac;</p><p>  //fin_dac,fout_dac分別是兩個輸入輸出信號經過數模dac的輸出&

101、lt;/p><p>  output se;</p><p>  wire idout,reset,ca,bo;</p><p>  wire [14:0]N;</p><p>  xormy u1(.a(fin),.b(fout),.y(se));</p><p>  Kcounter u2(.Kclo

102、ck(clk),.reset(reset),.dnup(se),.enable(enable),.Kmode(Kmode),.carryo(ca),.borrow(bo));</p><p>  IDCounter u3(.IDclock(clk),.reset(reset),.inc(ca),.dec(bo),.IDout(idout));</p><p>  counter_N u

103、4(.clk(clk), .fin(fin), .reset(reset), .count_N(N));</p><p>  div_N u5(.clkin(idout),.n(N),.reset(reset),.clkout(fout));</p><p>  dac u6(.clk(fin),.dout(fin_dac),.dd());</p>&

104、lt;p>  dac u7(.clk(fout),.dout(fout_dac),.dd());</p><p><b>  endmodule</b></p><p>  圖3-12和圖3-13為最終的頂層仿真波形。</p><p>  圖3-12 頂層模塊的仿真界面</p><p>  圖3-1

105、3 頂層模塊的仿真輸出波形</p><p>  圖3-14為頂層文件的RTL分析圖,從圖中可以清晰地看到每個模塊之間的連接關系。</p><p>  圖3-14 頂層文件的RTL分析圖</p><p><b>  4 設計總結和展望</b></p><p><b>  4.1 設計總結</b>&l

106、t;/p><p>  論文實現了基于FPGA的數字鎖相環(huán)設計。根據數字鎖相環(huán)的實現原理,分別設計實現了數字鑒相器、數字環(huán)路濾波器和數字壓控振蕩器等模塊。對整個系統進行了仿真,驗證了設計的可行性。</p><p>  數字鎖相環(huán)具有很寬的鎖相范圍、快速的響應能力和良好的穩(wěn)定性,由于采用FPGA平臺,可以進行在線修改,因此該鎖相環(huán)能夠依據鎖相速度和穩(wěn)定性要求選取設計參數。</p>&

107、lt;p><b>  4.2 設計展望</b></p><p>  鎖相環(huán)的發(fā)展非常迅速,從最初的模塊鎖相環(huán)到現在的數字鎖相環(huán),從最初的專用鎖相芯片,到現在的嵌入式鎖相環(huán),都說明了鎖相環(huán)的重要性。本次畢業(yè)設計對于數字鎖相環(huán)進行了初步的嘗試,距離真正的產品還很遠。</p><p>  目前的高速芯片中,很多都自帶鎖相環(huán)電路,只要輸入簡單的參數即可實現。但是使用者往

108、往不熟悉鎖相環(huán)的真正原理。而通過本次畢業(yè)設計,對于數字鎖相環(huán)的原理與實現,有了深切的體會。而且,對于基于FPGA的開發(fā)設計也有了感性認識,熟悉了基于FPGA的整個設計流程,為今后走上工作崗位打下了一定的專業(yè)基礎。</p><p>  關于鎖相環(huán)的理論參數計算,鎖相時間等概念,還不是很理解,這是設計的不足之處,有待在今后工作中繼續(xù)研究與探索。</p><p><b>  致謝<

109、;/b></p><p>  在本文的撰寫過程中,謝老師作為我的指導老師,她治學嚴謹,學識淵博,視野廣闊,為我營造了一種良好的學術氛圍。置身其間,耳濡目染,潛移默化,使我不僅接受了全新的思想觀念,樹立了明確的學術目標,領會了基本的思考方式,掌握了通用的研究方法,而且還明白了許多待人接物與為人處世的道理。其嚴以律己、寬以待人的崇高風范,樸實無華、平易近人的人格魅力,與無微不至、感人至深的人文關懷,令人如沐春風

110、,倍感溫馨。正是由于她在百忙之中多次審閱全文,對細節(jié)進行修改,并為本文的撰寫提供了許多中肯而且寶貴的意見,本文才得以成型。</p><p><b>  參考文獻</b></p><p>  [1] 加德納Floyd M. Gardner,姚劍清.鎖相環(huán)技術[M].北京:人民郵電出版社,2007,11.</p><p>  [2] 劉順英.鎖相環(huán)

111、原理設計及其應用[M].北京:人民郵電出版社,1988,12.</p><p>  [3] 黃智偉.鎖相環(huán)與頻率合成器電路設計[M].西安:西安電子科技大學出版社,2008,10.</p><p>  [4] 方建邦.鎖相環(huán)原理及其應用[M].北京:人民郵電出版社,1988,6.</p><p>  [5] 田孝文.鎖相環(huán):原理,應用與計算機輔助分析[M].成都:電

112、子科技大學出版社,1986,5.</p><p>  [6] 鄭繼禹.鎖相環(huán)路原理與應用第2版 (修訂本)[M].北京:人民郵電出版社,1984,2.</p><p>  [7] 蓋格,楊興瑤.直流電動機速度控制鎖相環(huán)路[M].北京:科學出版社,1985,12.</p><p>  [8] 遠坂俊昭,何希才.鎖相環(huán)(PLL)電路設計與應用[M].北京:科學出版社,2

113、006,1.</p><p>  [9] 張欣.擴頻通信數字基帶信號處理算法及其VLSI實現[M].北京:科學出版社,2004,8.</p><p>  [10] 羅偉雄.通信電路與系統第2版[M].北京:北京理工大學出版社,2007,9.</p><p>  [11] 夏宇聞. Verilog數字系統設計教程[M].北京:北京航空航天大學出版社, 2003.<

114、;/p><p>  [12] 張厥盛.鎖相環(huán)頻率合成器[M].北京:電子工業(yè)出版社,1997,2.</p><p>  [13] 萬心平,張厥盛.集成鎖相環(huán)路--原理 特性 應用[M].北京:人民郵電,1990,12.</p><p>  [14] 董介春,李萬玉.基于VHDL語言的數字鎖相環(huán)的設計與實現[J].青島大學學報,2004,19(2);84—87.</

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論