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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

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

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

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

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

5、。</p><p>  基于FPGA的數(shù)字鎖相環(huán)可以在線修改相關(guān)參數(shù),鎖相帶寬較寬,是嵌入式鎖相環(huán)的一個重要實現(xiàn)手段。</p><p>  關(guān)鍵詞:鎖相環(huán),數(shù)字鑒相器,數(shù)字環(huán)路濾波器,數(shù)字壓控振蕩器</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課題內(nèi)容與論文組織結(jié)構(gòu)1</p><p>  2 數(shù)字鎖相環(huán)概述3</p><p>  2.2 數(shù)字鎖相環(huán)的組成及工作原理4</p><p>  2.3 數(shù)字鎖相環(huán)的優(yōu)缺點5</p><p>  3基于FPGA的數(shù)字鎖相環(huán)設(shè)計7</p><p>  3.1 基于FPGA的數(shù)字鎖相環(huán)設(shè)計原理7&l

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

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

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

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

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

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

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

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

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

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

24、lt;/p><p>  2.1 鎖相環(huán)分類及原理</p><p>  鎖相環(huán)電路是一個使輸出信號與參與信號或者輸入信號在頻率和相位上同步的電路[8]。在同步狀態(tài),振蕩器輸出信號和參考信號之間的相位差為零,或者保持常數(shù)。按輸入信號可分為恒定輸入環(huán)路和隨動輸入環(huán)路;按環(huán)路部件可分為模擬鎖相環(huán)和數(shù)字鎖相環(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>  重構(gòu)信號fout</b></p><p>  圖2-1 鎖相環(huán)結(jié)構(gòu)框圖</p><p>  鑒相器又稱相位比

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

27、1]。</p><p>  圖2-2 數(shù)字鎖相環(huán)原理圖</p><p>  當(dāng)環(huán)路失鎖時,異或門鑒相器會比較輸入、輸出信號之間的相位差,由此產(chǎn)生變模可逆計數(shù)器的計數(shù)方向控制信號; 變??赡嬗嫈?shù)器根據(jù)計數(shù)方向控制信號調(diào)整計數(shù)值,當(dāng)輸出脈沖為高時進(jìn)行減計數(shù),并當(dāng)計數(shù)值到達(dá)0時,輸出借位脈沖信號;當(dāng)輸出脈沖為低時進(jìn)行加計數(shù),并當(dāng)計數(shù)值達(dá)到預(yù)設(shè)的模值時,輸出進(jìn)位脈沖信號;脈沖加減電路則根據(jù)進(jìn)位脈沖

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

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

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

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

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

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

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

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

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

37、數(shù)字鎖相環(huán)分模塊實現(xiàn)</p><p>  由上述原理,將整個數(shù)字鎖相環(huán)分為五個模塊:K模計數(shù)器、異或鑒相器、加減脈沖計數(shù)、除N計數(shù)和分頻等。本節(jié)進(jìn)行詳細(xì)介紹。</p><p>  3.2.1 K模計數(shù)器模塊設(shè)計</p><p>  圖3-1 K變??赡婕夹g(shù)器原理圖</p><p>  圖3-1是K變??赡嬗嫈?shù)器的原理圖。K變??赡嬗嫈?shù)器根據(jù)計

38、數(shù)方向控制信號(dnup)調(diào)整計數(shù)值,dnup為高進(jìn)行減計數(shù),并當(dāng)計數(shù)值到達(dá)0時,輸出借位脈沖信號(dn);為低進(jìn)行加計數(shù),并當(dāng)計數(shù)值達(dá)到預(yù)設(shè)的K模值時,輸出進(jìn)位脈沖信號(up)[10]。</p><p>  此模塊實現(xiàn)K模計數(shù)功能,模塊的輸入信號有:</p><p>  1)Kclock,此信號為系統(tǒng)的時鐘信號;</p><p>  2)reset,為復(fù)位信號,高

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

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

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

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

43、p><p>  wire carryo,borrow;</p><p>  reg [8:0]Count; //可逆計數(shù)器</p><p>  reg [8:0]Ktop; //預(yù)設(shè)模值寄存器</p><p>  //根據(jù)計數(shù)器模值設(shè)置信號Kmode來設(shè)置預(yù)設(shè)模值寄存器的值</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>  //根據(jù)鑒相器輸出的加減控制信號dnup進(jìn)行可逆計數(shù)器的加減運算</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>  //輸出進(jìn)位脈沖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信號有輸出,符合設(shè)計的情況,驗證了程序設(shè)計的正確性。</p><p>  圖3-2 K值為010時的仿

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

54、k,此信號為系統(tǒng)的時鐘信號;</p><p>  2) reset,為復(fù)位信號,高電平有效,即該信號為“1”時,進(jìn)行復(fù)位;</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可看出,當(dāng)輸入加脈沖時,輸出信號則相應(yīng)增加脈沖,驗證了設(shè)計的正確性。</p><p>  圖3-4 脈沖加減模塊的仿真界面</p><p>  圖3-5脈沖加減模塊的仿真輸出波形</p><p>  3.2.3 N分頻參數(shù)控制模塊</p><p>  此模塊對輸入脈沖進(jìn)行N分頻,并給出N值。引腳定義有:</p><p&

75、gt;  1)clk,此信號為系統(tǒng)的時鐘信號;</p><p>  2)fin,脈沖信號;</p><p>  3)reset,為復(fù)位信號,高電平有效,即該信號為“1”時,進(jìn)行復(fù)位;</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上升沿到的時候,產(chǎn)生各種標(biāo)志以便后面控制</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進(jìn)行計數(shù),并將計數(shù)值賦給CNT輸出。此次仿真中,CLK的周期是20NS,F(xiàn)IN的周期是60NS。驗證了設(shè)計的正確性。</p&g

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

86、reset,為復(fù)位信號,高電平有效,即該信號為“1”時,進(jìn)行復(fù)位;</p><p><b>  3)n,為分頻數(shù);</b></p><p>  4)clkout,此系統(tǒng)的輸出時鐘信號;</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為此模塊的仿真波形。圖中將分頻系數(shù)設(shè)為8,因此輸出波形為輸出信號的8分頻。驗證了設(shè)計的正確性。</p><p>  圖3-8 N分頻器模塊的仿真界面</p><p>  圖3-9 N分頻器模塊的仿真輸出波形</p><p>  3.2.5異或門鑒相器模塊</p>

92、<p>  此模塊實現(xiàn)鑒相功能。引腳定義:</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信號進(jìn)行異或操作,其仿真圖波形如上圖所示。當(dāng)兩個輸入信號電平不同時(一個信號為高電平“1”,另一個信號為低電平“0”),則輸出才為高電平“1”,而當(dāng)兩個輸入信號相同時(兩個同為“1”,或同為“0”時),則輸出為低電平“0”。

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

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

98、 6)fout,鎖頻鎖相輸出;</p><p>  7)fin_dac,輸入信號經(jīng)過數(shù)模轉(zhuǎn)換的輸出;</p><p>  8)fout_dac,輸出信號經(jīng)過數(shù)模的輸出;</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高電平復(fù)位,enable高電平有效</p><

100、;p>  input [2:0]Kmode; //濾波計數(shù)器的計數(shù)模值設(shè)定</p><p>  output fout; //fout是鎖頻鎖相輸出</p><p>  output [7:0]fin_dac,fout_dac;</p><p>  //fin_dac,fout_dac分別是兩個輸入輸出信號經(jīng)過數(shù)模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分析圖,從圖中可以清晰地看到每個模塊之間的連接關(guān)系。</p><p>  圖3-14 頂層文件的RTL分析圖</p><p><b>  4 設(shè)計總結(jié)和展望</b></p><p><b>  4.1 設(shè)計總結(jié)</b>&l

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

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

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

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

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

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

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

113、006,1.</p><p>  [9] 張欣.?dāng)U頻通信數(shù)字基帶信號處理算法及其VLSI實現(xiàn)[M].北京:科學(xué)出版社,2004,8.</p><p>  [10] 羅偉雄.通信電路與系統(tǒng)第2版[M].北京:北京理工大學(xué)出版社,2007,9.</p><p>  [11] 夏宇聞. Verilog數(shù)字系統(tǒng)設(shè)計教程[M].北京:北京航空航天大學(xué)出版社, 2003.<

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

溫馨提示

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

評論

0/150

提交評論