九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

基于fpga的直接數(shù)字頻率合成器的設(shè)計 本科畢業(yè)設(shè)計

上傳人:仙*** 文檔編號:29105204 上傳時間:2021-09-26 格式:DOC 頁數(shù):55 大小:1.14MB
收藏 版權(quán)申訴 舉報 下載
基于fpga的直接數(shù)字頻率合成器的設(shè)計 本科畢業(yè)設(shè)計_第1頁
第1頁 / 共55頁
基于fpga的直接數(shù)字頻率合成器的設(shè)計 本科畢業(yè)設(shè)計_第2頁
第2頁 / 共55頁
基于fpga的直接數(shù)字頻率合成器的設(shè)計 本科畢業(yè)設(shè)計_第3頁
第3頁 / 共55頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《基于fpga的直接數(shù)字頻率合成器的設(shè)計 本科畢業(yè)設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《基于fpga的直接數(shù)字頻率合成器的設(shè)計 本科畢業(yè)設(shè)計(55頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、河南理工大學畢業(yè)設(shè)計(論文)說明書畢業(yè)設(shè)計論文基于FPGA的直接數(shù)字頻率合成器的設(shè)計摘要 在頻率合成領(lǐng)域,常用的頻率合成技術(shù)有直接模擬合成、模擬鎖相環(huán)、小數(shù)分頻鎖相環(huán)等,直接數(shù)字頻率合成(Direct Digital Frequency Synthesis ,DDFS,簡稱DDS)是近年來的新的頻率合成技術(shù)。本文介紹了直接數(shù)字頻率合成器的基本組成及設(shè)計原理,給出了基于FPGA的具體設(shè)計方案及編程實現(xiàn)方法。仿真結(jié)果表明,該設(shè)計簡單合理,使用靈活方便,通用性好,可寫入各種FPGA芯片,最高可將頻率提高100萬倍。具有良好的性價比。關(guān)鍵詞 直接數(shù)字頻率合成器(DDS) FPGA Design of

2、direct digital frequency synthesizer based on FPGAAbstract In Frequency domain, the common Synthesis technology has Direct simulation, phase lock loop simulation, decimal Frequency and phase lock loop, Direct Digital Frequency Synthesis (as some DDFS, Digital, referred to as spurious bio-synthesis)

3、in recent years is the new Frequency Synthesis technology. The structure and principles of Direct Digital Frequency Synthesizer is introduced. Also a detailed design and the method of program realization based on FPGA are introduced. The result of simulation shows that the design is simple and feasi

4、ble, convenient and flexible, high universality, writeable various FPGA chip, the highest frequency can be 100 million times. Ratiofor quality to price.Keywords Direct Digital frequency Synthesizer(DDS) FPGA前言在頻率合成領(lǐng)域,常用的頻率合成技術(shù)有直接模擬合成、模擬鎖相環(huán)、小數(shù)分頻鎖相環(huán)等,直接數(shù)字頻率合成(DDS)是近年來的新的頻率合成技術(shù)。DDS以穩(wěn)定度高的參考時鐘為參考源,通過精密的相

5、位累加器和數(shù)字信號處理,再通過高速D/A變換器產(chǎn)生所需的數(shù)字波形,這個數(shù)字濾波經(jīng)過一個模擬濾波器后,得到最終的模擬信號波形。DDS是產(chǎn)生高精度、快速頻率變換、輸出波形失真小的優(yōu)先選用技術(shù)。隨著可編程邏輯器件的飛速發(fā)展,使用FPGA(FieldProgrammable Gate Array)設(shè)計DDS系統(tǒng)成為一種很好的選擇,由于FPGA現(xiàn)場可編程,設(shè)計復雜或者簡單系統(tǒng)完全從實際需要出發(fā),通過重寫RAM/ROM數(shù)據(jù),可以做到任意波形輸出和動態(tài)波形輸出,這是其他方法所無法比擬的。本章提出了一種基于FPGA的直接數(shù)字頻率合成設(shè)計方法,并利用比例乘法器,將頻率分辨率提高到驚人的程度。目錄1 DDS原理1

6、1.1 直接模擬(DAS)11.2 間接式頻率合成(PLL)11.3 直接數(shù)字頻率合成(DDS)22 系統(tǒng)設(shè)計62.1微控制器接口模塊82.2 相位累加寄存器82.3雙端口RAM83模塊設(shè)計與實現(xiàn)153.1 微控制器接口模塊153.1.1分頻寄存器(FWORD1-FWORD4)163.1.2控制寄存器(DDSCR)163.1.3數(shù)據(jù)輸入寄存器(DATA)173.2 比例乘法器模塊313.3 相位累加器模塊373.4 雙端口RAM模塊39致 謝48參考文獻49511 DDS原理 顧名思義頻率合成技術(shù),就是能從一個高穩(wěn)定和準確度的標準頻率中產(chǎn)生千百萬個同一高穩(wěn)定度和準確度的頻率。頻率合成技術(shù)廣泛地

7、應(yīng)用于通信、導航、雷達、儀器儀表、軍事裝備等領(lǐng)域、現(xiàn)代的電子系統(tǒng)對頻率合成器提出越來越高的要求,主要表現(xiàn)在:轉(zhuǎn)換速度快、頻段寬、步進間隔小、雜散小、體積小、重量輕、功耗低等。隨著大規(guī)模集成電路的發(fā)展,頻率合成技術(shù)日趨完善,目前,主要有以下幾種方式。1.1 直接模擬(DAS)直接模擬合成技術(shù)是通過對標準參考頻率進行加、減、乘、除運算而合成一系列相干頻率,其換頻率速度主要由電路部件響應(yīng)速度決定,相位噪聲指標也還不錯。主要技術(shù)問題是雜波干擾,由于直接模擬合成引入了大量的混頻器、倍頻器、分頻器,這些非線性的部件使得雜波抑制相當困難、在實際應(yīng)用中,這種技術(shù)的電路結(jié)構(gòu)比較復雜,體積、重量、成本等方面缺點大

8、大限制其應(yīng)用、1.2 間接式頻率合成(PLL)間接式頻率合成技術(shù)重要有鑒頻器、環(huán)路濾波器、壓控振蕩器、分頻器等4個基本部件構(gòu)成,如下圖1-1所示。鎖相環(huán)是一個相位誤差反饋控制系統(tǒng),它比較輸入信號和壓控振蕩器經(jīng)分頻后輸出信號之間的相位差,從而產(chǎn)生誤差控制電壓來調(diào)整壓控制振蕩器的輸出頻率,以達到與輸入信號倍頻的關(guān)系。鎖相環(huán)的頻率轉(zhuǎn)換速度與環(huán)路濾波器的帶寬有關(guān),環(huán)路帶寬越寬,轉(zhuǎn)換速度越快,而環(huán)路帶寬又取決于鑒相器頻率。才用這種技術(shù)產(chǎn)生的頻譜較純,系統(tǒng)體積小、重量輕、成本低、易集成,具有廣泛的應(yīng)用前景。但是,它也有一個致命的缺點,就是在高分辨率情況下,換頻速度較慢。分頻器鑒相器壓控振蕩器低通濾波器合成

9、頻率參考頻率圖 1-1 鎖相環(huán)電路基本結(jié)構(gòu)為了解決高分辨率于高鑒相頻率之間的矛盾,可以采用多環(huán)技術(shù)或者小數(shù)分頻技術(shù)。如果要求分辨率很高,那么采用多環(huán)PLL就顯得電路結(jié)構(gòu)復雜、成本高、調(diào)試困難;而采用小數(shù)分頻技術(shù),可以輕易解決高分辨率問題,但是小數(shù)分頻的主要問題是“尾數(shù)難抑”,國內(nèi)外對這方面的研究不少,但是還沒有徹底解決。1.3 直接數(shù)字頻率合成(DDS) DDS的概念最初是有美國學者J.Tierncy,C.M.Rader 和 B.Gold 提出的,它是以全數(shù)字技術(shù),從相位概念出發(fā)直接合成所需波形的一種新的頻率合成技術(shù),典型的DDS系統(tǒng)由相位累加器,波形查找表(ROM/RAM),D/A,低通濾波

10、器(Low Pass Filter簡稱LPF)構(gòu)成,如圖 1-2所示。低通濾波器m相位累加器波形查找表D/A圖 1-2 DDS原理框圖圖中,m為相位累加器步長,也有資料稱為頻率控制字,是參考頻率,是合成頻率。其系統(tǒng)的核心是相位累加器,它由一個累加器和一個n位相位寄存器組成(也可用帶有輸出鎖存的累加器代替),如圖1-3所示。每來一個時鐘脈沖,相位累加器以步長m累加,其結(jié)果作為波形查找表地址。當相位累加器加滿量程,就會產(chǎn)生一次溢出,完成一個周期性的動作,這個周期是合成信號的一個周期,換句話說,累加器的溢出頻率也就是DDS的合成信號頻率。相位累加器的輸出數(shù)據(jù)作為波形查找表地址,進行波形的相位幅值的轉(zhuǎn)

11、換,即可在給定的時間上確定輸出波形的抽樣幅值,如圖1-4所示。n位的尋址RAM/ROM相當于把正弦信號離散成具有個樣值的序列,以二進制數(shù)值形式存儲在個地址單元,按照地址不同輸出相應(yīng)的信號幅值。D/A轉(zhuǎn)換器的作用是把合成的數(shù)字波形轉(zhuǎn)換成模擬波形。離散量化幅度序列S(n)經(jīng)D/A轉(zhuǎn)換后變成了階梯波S(t),值得注意的是,頻率合成系統(tǒng)對D/A轉(zhuǎn)換器的分辨率有一定要求,D/A轉(zhuǎn)換器的分辨率越高,合成的階梯波S(t)臺階數(shù)越多,輸出的波形的精度也就越高,減少了量化失真。寄存器累加器步長m參考時鐘相位碼序列圖 1-3 相位累加器波形存儲器(ROM/RAM)幅度量化序列數(shù)據(jù)相位嗎序列地址圖 1-4 相位幅度

12、變換原理圖 低通濾波器的作用不容忽視。對D/A輸出的階梯波S(t)進行頻譜分析,可知S(t)中除了主頻外,還存在分布在,2兩邊處的非諧波分量。因此,為了取出主頻,必須在D/A轉(zhuǎn)換器的輸出端接入截止頻率為的低通濾波器。DDS具有以下特點:(1) 頻率分辨率高。DDS的頻率分辨率在固定時,取決于相位累加器的位數(shù)n,只要n足夠大,理論上就可以獲得相應(yīng)的分辨率精度,這是傳統(tǒng)方法難以實現(xiàn)的。(2) 頻率變換速度快。在DDS中,一個頻率的建立時間通常取決于濾波器的帶寬。影響因素為相位累加器,ROM/RAM的工藝結(jié)構(gòu),D/A轉(zhuǎn)換器及它信號處理過程中可能產(chǎn)生的時延。其中,信號處理的時延與時鐘周期相關(guān)。由于DD

13、S中不要相位反饋控制,頻率建立及切換快,與頻率分辨率,頻譜純度相互獨立,明顯優(yōu)于PLL。(3) DDS中相位改變是線性過程。數(shù)字相位累加器是優(yōu)良的線性數(shù)字增值發(fā)生器。因此,DDS的相位誤差主要依賴于時鐘的相位特性,相位誤差小。另外,DDS的相位是連續(xù)變化的,形成的信號具有良好的頻譜特性,這是傳統(tǒng)的直接頻率合成法所無法實現(xiàn)的。(4)輸出頻率范圍寬。 理論上,DDS輸出的頻率范圍在,實際上,考慮到低通濾波器的設(shè)計,為,而FPGA的時鐘頻率可達到100MHz,因此,利用FPGA,可以實現(xiàn)輸出頻率范圍很寬的信號。根據(jù)前面的講述,可以得到一下公式: 其中,是輸出波形的周期,n是相位累加器位數(shù),m是相位累

14、加器步長,是輸入波形周期。是參考頻率,是輸出波形頻率,是最小分辨率,是最高合成頻率。根據(jù)奈奎斯特(Nyquist)定理,即采樣頻率必須不小于被采樣信號的最高頻率,否則原信號不能被恢復,所以當時,得到最高合成頻率,當然,這僅是理論值,實際上與D/A精度、轉(zhuǎn)換速度,濾波網(wǎng)絡(luò)性能密切相關(guān),一般取,例如,晶振時鐘為100MHz時,可知輸出合成波頻率將出現(xiàn)在較寬頻段上。2 系統(tǒng)設(shè)計 本章所需要設(shè)計的直接數(shù)字頻率合成系統(tǒng)與前面介紹的DDS原理完全一致。從實現(xiàn)方式上看,有如下特色:(1) 引入8級級聯(lián)的BCD比例乘法器,將頻率分辨率提高100萬倍!(2) 利用FPGA內(nèi)部嵌入式存儲單元,在FPGA內(nèi)部集成了

15、2Kbit容量雙端口RAM,降低了硬件難度,提高了系統(tǒng)可靠性。從前面的介紹中可以知道,增加相位累加器的位數(shù)n,可以提高頻率分辨率,最低輸出頻率可達Hz、mHz甚至是Hz,即DDS的最低合成頻率接近零頻。有人計算過,如果為50MHz,那么當n為48位時,其分辨率可達179nHz。但是,增加相位累加器的位數(shù)n將使加法算法過于龐大,消耗驚人的FPGA資源。何不從入手,對實現(xiàn)任意可分頻,利用降低來換取高分辨率呢?事實證明,使用比例乘法器是可行的,經(jīng)過8級BCD比例乘法器的分頻,分頻比達到,例如,晶振頻率為100MHz,經(jīng)過分頻可以是Hz任意整數(shù)頻率,整個分頻模塊僅消耗65個宏單元?,F(xiàn)代FPGA內(nèi)部集成

16、了存儲單元,這些是寶貴的存儲資源,通常只有通過利用開發(fā)商提供的知識產(chǎn)權(quán)核(IP CORE)才能使用,這些知識產(chǎn)權(quán)核經(jīng)過嚴格的測試和優(yōu)化,可以在特定器件上發(fā)揮最大效能,利用這些模塊,就是將優(yōu)秀EDA開發(fā)人員的硬件成果嵌入到自己設(shè)計中,縮短了開發(fā)時間,提高了效率。本章設(shè)計的參數(shù)選取如下。由相位累加器位數(shù)n=8,存儲容量2568=2048 bit,晶振頻率為100MHz,可知:(1) 頻率分辨率 Hz(2) 最高合成頻率MHZ前面講過,這僅是理論值,實際中與具體電路(D/A,濾波器)有關(guān)。(3) 相位步進 本設(shè)計按照模塊化層次化設(shè)計方法,根據(jù)結(jié)構(gòu)功能,可以劃分出3個功能模塊,即微控制器接口模塊、相位

17、累加器模塊、雙端口RAM模塊,其連接關(guān)系如圖2-1所示。圖 2-12.1 微控制器接口模塊微控制器接口模塊向微控制器提供友好,方便的操作接口,MCU可通過片選(CS)、地址選通(AS)、數(shù)據(jù)選通(DS)、數(shù)據(jù)總線和地址總線來操作其內(nèi)部寄存器。微控制器接口模塊內(nèi)部實現(xiàn)了6個寄存器,其中,4個位分頻寄存器,1個位控制寄存器,1個位數(shù)據(jù)輸入寄存器。此外,8級比例乘法器組成的分頻模塊以端口映射的方式例化在控制器接口模塊中,對外輸出參考時鐘頻率fclk。2.2 相位累加寄存器相位累加寄存器是系統(tǒng)的核心模塊,使用經(jīng)過分頻器分頻后的時鐘,范圍相當寬廣。相位累加器輸出相位碼序列,作為查尋地址送入雙端口RAM,

18、相應(yīng)地,還有讀使能和讀時鐘信號。相位累加步長m可取,n=0,1,2, ,7這里,為了減小失真,一般m取值不超過322.3 雙端口RAM 利用ALtera提供的Mega Wizard Plug-In Manager定制了數(shù)據(jù)線和地址線寬度均為8位,存儲容量為2048bit的雙端口RAM,獨立的兩套讀/寫接口,有興趣的讀者不妨使用Mega Wizard Plug-In Manager定制其他的存儲器,看看哪種存儲器使用起來最方便。接口信號說明如下:RESET,系統(tǒng)復位,低電平有效;CS,片選信號,低電平有效;AS,地址選通信號,低電平有效;DS,數(shù)據(jù)選通信號,低電平有效;DATABUS,數(shù)據(jù)總線;

19、寬度為8位;ADDRBUS,地址總線,寬度為3位。頂層實體的VHDL程序如下:- dds.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY dds ISPORT(- 與微控制器接口信號- 全局復位reset: INSTD_LOGIC;- 全局時鐘clk: INSTD_LOGIC;- 地址總線addrbus: INSTD_LOGIC_VECTOR(2 DOWNTO 0);- 數(shù)據(jù)總線databus: INSTD_lOGIC_

20、VECTOR(7 DOWNTO 0);- 片選cs: INSTD_LOGIC;- 地址選通as: INSTD_LOGIC;- 數(shù)據(jù)選通ds: INSTD_LOGIC;- 數(shù)據(jù)輸出,送至D/A轉(zhuǎn)換器q: OUTSTD_LOGIC_VECTOR(7 DOWNTO 0);END dds;ARCHITECTURE rtl of dds IS- 元件說明- 接口模塊COMPONENT interfaceport(- 與微控制器接口信號- 全局復位reset: INSTD_LOGIC;- 全局時鐘clk: INSTD_LOGIC;- 地址總線addrbus: INSTD_LOGIC_VECTOR(2 DO

21、WNTO 0);- 數(shù)據(jù)總線databus: INSTD_lOGIC_VECTOR(7 DOWNTO 0);- 片選cs: INSTD_LOGIC;- 地址選通as: INSTD_LOGIC;- 數(shù)據(jù)選通ds: INSTD_LOGIC;- 與內(nèi)部模塊接口信號- DDS掃頻使能ddsen: OUTSTD_LOGIC;- 經(jīng)比例乘法器分頻后的時鐘fclk: OUT STD_LOGIC;- 步長m: OUTSTD_LOGIC_VECTOR(7 DOWNTO 0);- 數(shù)據(jù)輸出,送至雙端口RAMdataout: OUTSTD_LOGIC_VECTOR(7 DOWNTO 0);- 地址輸出,送至雙端口R

22、AMaddrout: OUTSTD_LOGIC_VECTOR(7 DOWNTO 0);- 雙端口RAM寫使能wren: OUTSTD_LOGIC;- 雙端口RAM寫時鐘wrclock: OUTSTD_LOGIC);END COMPONENT;- 雙端口RAMCOMPONENT ramdpPORT(wren: IN STD_LOGIC;wrclock: INSTD_LOGIC;rden: IN STD_LOGIC;rdclock: INSTD_LOGIC;data: INSTD_LOGIC_VECTOR(7 DOWNTO 0);wraddress:INSTD_LOGIC_VECTOR(7 DOW

23、NTO 0);rdaddress:INSTD_LOGIC_VECTOR(7 DOWNTO 0);q: OUTSTD_LOGIC_VECTOR(7 DOWNTO 0);END COMPONENT;- 相位累加器COMPONENT phasesumPORT(- 全局復位reset: INSTD_LOGIC;- 分頻時鐘fclk: INSTD_LOGIC;- 掃頻使能ddsen: INSTD_LOGIC;- 相位累加步長m: INSTD_LOGIC_VECTOR(7 DOWNTO 0);- 讀RAM時鐘rdclock: OUTSTD_LOGIC;- 讀RAM使能rden: OUTSTD_LOGIC;

24、- 讀RAM地址rdaddress:OUTSTD_LOGIC_VECTOR(7 DOWNTO 0);END COMPONENT;- 信號說明SIGNAL ddsen: STD_LOGIC;SIGNAL fclk: STD_LOGIC;SIGNAL wren: STD_LOGIC;SIGNAL wrclock: STD_LOGIC;SIGNAL rdclock: STD_LOGIC;SIGNAL rden: STD_LOGIC;SIGNAL dataout: STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL addrout: STD_LOGIC_VECTOR(7 DOWNT

25、O 0);SIGNAL m: STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL rdaddress: STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN- 元件例化 -INTER_CONTROL: interfacePORT MAP(- 與微控制器接口信號- 全局復位reset= reset,- 全局時鐘clk= clk,- 地址總線addrbus= addrbus,- 數(shù)據(jù)總線databus= databus,- 片選cs= cs,- 地址選通as= as,- 數(shù)據(jù)選通ds= ds,- 與內(nèi)部模塊接口信號- DDS掃頻使能ddsen= ddsen,-

26、經(jīng)比例乘法器分頻后的時鐘fclk= fclk,- 步長m= m,- 數(shù)據(jù)輸出,送至雙端口RAMdataout= dataout,- 地址輸出,送至雙端口RAMaddrout= addrout,- 雙端口RAM寫使能wren= wren,- 雙端口RAM寫時鐘wrclock= wrclock);- 雙端口RAMDP_RAM: ramdpPORT MAP(wren= wren, wrclock= wrclock,rden= rden,rdclock= rdclock,data= dataout,wraddress=addrout,rdaddress=rdaddress,q= q);- 相位累加器P

27、HASE_ADDER: phasesumPORT MAP(- 全局復位reset= reset,- 分頻時鐘fclk= fclk,- 掃頻使能ddsen= ddsen,- 相位累加步長m= m,- 讀RAM時鐘rdclock= rdclock,- 讀RAM使能rden= rden,- 讀RAM地址rdaddress=rdaddress);END rtl; 圖 2-2是頂層實體仿真波形,由圖中可以看到,首先,向地址為000的寄存器寫數(shù)據(jù)00010000,表示將晶振頻率10分頻,然后向地址為100的寄存器寫數(shù)據(jù)10000000,表示相位累加器使能,隨后,輸出波形。讀者可能暫時還不能理解整個系統(tǒng)的工

28、作原理,這里只需了解系統(tǒng)的輪廓即可,后面會詳細介紹各模塊的設(shè)計與實現(xiàn)。3 模塊設(shè)計與實現(xiàn)如前面所述,頂層實體由3個模塊構(gòu)成:微控制器接口模塊、相位累加器模塊及雙端口RAM模塊。由8個比例乘法器級聯(lián)組成的分頻器模塊以端口定義的形式例化在微控制器模塊中,屬于后者的子模塊,但是由于比例乘法器的本設(shè)計中所發(fā)揮的作用很大,加之相關(guān)資料少之又少,為了加深讀者的領(lǐng)悟,決定單獨作為一節(jié)。3.1 微控制器接口模塊微控制器接口向8位、16位、32位微處理器級微控制器提供友好的操作接口,如圖3-1所示。其輸入引腳前面已經(jīng)介紹過,這里不再重復?,F(xiàn)在,介紹一下輸出引腳。圖 3-1ddsen:相位累加器使能,有效時為高電

29、平;fclk:分頻時鐘,作為相位累加器的輸入時鐘;m:相位累加步長,m=,n=0,1,2, ,7;dataout:數(shù)據(jù)輸出,作為RAM輸入數(shù)據(jù);addrout:地址輸出,作為RAM輸入地址;wern:RAM寫使能信號;wrclock:RAM寫時鐘信號。前面已經(jīng)提到,DDS內(nèi)部實現(xiàn)了6個寄存器,其中,4個位分頻寄存器,1個位控制寄存器,1個位數(shù)據(jù)輸入寄存器,這些寄存器的地址在表3-1中。表 3-1 寄存器地址名稱訪問屬性地址FWORD1Write000FWORD2Write001FWORD3Write010FWORD4Write011DDSCRWrite100DATAWrite1013.1.1

30、分頻寄存器(FWORD1-FWORD4)以FWORD1為例,如表3-2所示。分頻寄存器用于存儲分頻系數(shù),分頻模塊由8個BCD比例乘法器構(gòu)成。每一個比例乘法器需要4位二進制碼來確定分頻系數(shù),48=32 bit,也就是4 byte。FWORD1對應(yīng)第一級和第二級比例乘法器,F(xiàn)WORD2對應(yīng)第三級和第四級比例乘法器,以此類推,F(xiàn)WORD4對應(yīng)第七級和第八級比例乘法器。表3-2 分頻寄存器FWORD1BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT03.1.2 控制寄存器(DDSCR)如表3-3所示,控制寄存器只有4位是有意義的,ddsen為相位累加器使能,當其為有效時(邏輯1),相位累

31、加器工作,輸出波形。m2、m1、m0是相位累加步長控制字,由于系統(tǒng)設(shè)計中規(guī)定相位累加步長m=,n=0,1,2, ,7,所以使用3位表示他們足夠了,對應(yīng)的累加步長值如表3-4所示。表 3-3 控制寄存器BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0DDSEN0000M2M1M0表 3-4 m2m1m0與相位累加步長m對照表m2m1m0m00010012010401181001610132110641111283.1.3 數(shù)據(jù)輸入寄存器(DATA)如表3-5所示,微控制器通過數(shù)據(jù)輸入寄存器緩沖,將數(shù)據(jù)寫入雙端口RAM中。復位時,地址為0,每向DATA寄存器寫一次數(shù)據(jù),地址自動加1

32、,直到地址寫滿,自動清零,準備下一次寫入過程。這意味著可以重復多次寫波形數(shù)據(jù),從而實現(xiàn)任意波形輸出和動態(tài)波形輸出的功能。表 3-5 控制寄存器BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0DATA7DATA6DATA5DATA4DATA3DATA2DATA1DATA0本模塊通過片選信號、地址選通信號、數(shù)據(jù)選通信號來鎖定地址和數(shù)據(jù),當片選信號CS和地址選通信號AS有效時,根據(jù)地址總線內(nèi)容使能對應(yīng)寄存器。在檢測到數(shù)據(jù)選通信號DS下降沿后,在系統(tǒng)時鐘的上升沿將數(shù)據(jù)寫入選中的寄存器中。微控制器接口模塊的狀態(tài)機如圖3-2所示:(1) IDLE。當系統(tǒng)上電或復位后,微控制器接口處于此狀態(tài)

33、。此狀態(tài)等待片選信號有效和AS信號的下降沿,當條件滿足時,狀態(tài)機切換到STROBE狀態(tài)。(2) STROBE。當片選信號有效時,狀態(tài)機在此狀態(tài)等待,直到DS信號出現(xiàn)下降時沿,切換到DATA_LAUNCH狀態(tài);當片選信號無效時,狀態(tài)機切換到IDLE狀態(tài)。(3) DATA_LAUNCH。 此狀態(tài)只持續(xù)1個時鐘周期,在時鐘上升沿寫入數(shù)據(jù),返回IDLE狀態(tài)。圖 3-2 微控制器接口狀態(tài)機文件interface內(nèi)部的各進程說明:第一個進程延遲信號,目的是檢測信號跳變。第二個進程是狀態(tài)寄存器,同步狀態(tài)。第三個進程是主狀態(tài)機。第四個進程是寫RAM狀態(tài)機。第五個進程根據(jù)地址譯碼,使能對應(yīng)寄存器。第六個進程根據(jù)

34、使能,寫對應(yīng)寄存器。描述微控制器接口模塊的VHDL程序如下:- interface.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY interface ISport(- 與微控制器接口信號- 全局復位reset: INSTD_LOGIC;- 全局時鐘clk: INSTD_LOGIC;- 地址總線addrbus: INSTD_LOGIC_VECTOR(2 DOWNTO 0);- 數(shù)據(jù)總線databus: INSTD_lOG

35、IC_VECTOR(7 DOWNTO 0);- 片選cs: INSTD_LOGIC;- 地址選通as: INSTD_LOGIC;- 數(shù)據(jù)選通ds: INSTD_LOGIC;- 與內(nèi)部模塊接口信號- DDS掃頻使能ddsen: OUTSTD_LOGIC;- 經(jīng)比例乘法器分頻后的時鐘fclk: OUT STD_LOGIC;- 步長m: OUTSTD_LOGIC_VECTOR(7 DOWNTO 0);- 數(shù)據(jù)輸出,送至雙端口RAMdataout: OUTSTD_LOGIC_VECTOR(7 DOWNTO 0);- 地址輸出,送至雙端口RAMaddrout: OUTSTD_LOGIC_VECTOR(7

36、 DOWNTO 0);- 雙端口RAM寫使能wren: OUTSTD_LOGIC;- 雙端口RAM寫時鐘wrclock: OUTSTD_LOGIC);END interface;ARCHITECTURE rtl of interface IS- 元件說明- 8個比例乘法器級聯(lián)COMPONENT fre_divPORT(- 輸入時鐘FIN: IN STD_LOGIC;- 分頻系數(shù)BCD1: INSTD_LOGIC_VECTOR(3 DOWNTO 0); BCD2: INSTD_LOGIC_VECTOR(3 DOWNTO 0);BCD3: INSTD_LOGIC_VECTOR(3 DOWNTO 0

37、); BCD4: INSTD_LOGIC_VECTOR(3 DOWNTO 0);BCD5: INSTD_LOGIC_VECTOR(3 DOWNTO 0); BCD6: INSTD_LOGIC_VECTOR(3 DOWNTO 0);BCD7: INSTD_LOGIC_VECTOR(3 DOWNTO 0); BCD8: INSTD_LOGIC_VECTOR(3 DOWNTO 0);- 分頻時鐘FOUT: OUTSTD_LOGIC);END COMPONENT;- 常數(shù)聲明CONSTANT RESET_ACTIVE : STD_LOGIC := 0;CONSTANT FWORD1_ADDR : ST

38、D_LOGIC_VECTOR(2 downto 0) := 000; CONSTANT FWORD2_ADDR : STD_LOGIC_VECTOR(2 downto 0) := 001; CONSTANT FWORD3_ADDR : STD_LOGIC_VECTOR(2 downto 0) := 010; CONSTANT FWORD4_ADDR : STD_LOGIC_VECTOR(2 downto 0) := 011;CONSTANT DDSCR_ADDR: STD_LOGIC_VECTOR(2 downto 0) := 100;CONSTANT DATA_ADDR: STD_LOGIC

39、_VECTOR(2 downto 0) := 101;- 信號聲明SIGNAL as_delay: STD_LOGIC; SIGNAL ds_delay: STD_LOGIC;SIGNAL bcd8: STD_LOGIC_VECTOR(3 downto 0);SIGNAL bcd7: STD_LOGIC_VECTOR(3 downto 0);SIGNAL bcd6: STD_LOGIC_VECTOR(3 downto 0);SIGNAL bcd5: STD_LOGIC_VECTOR(3 downto 0);SIGNAL bcd4: STD_LOGIC_VECTOR(3 downto 0);SI

40、GNAL bcd3: STD_LOGIC_VECTOR(3 downto 0);SIGNAL bcd2: STD_LOGIC_VECTOR(3 downto 0);SIGNAL bcd1: STD_LOGIC_VECTOR(3 downto 0);- 狀態(tài)機定義TYPE STATE_TYPE IS (IDLE,STROBE,DATA_LAUNCH); - 狀態(tài)機信號SIGNAL prs_state, next_state : STATE_TYPE;- 狀態(tài)機定義TYPE WR_STATE_TYPE IS (wr_idle,wr_high,wr_low); - 狀態(tài)機信號SIGNAL wr_st

41、ate : WR_STATE_TYPE;SIGNAL DDSCR_reg: STD_LOGIC_VECTOR(7 downto 0);SIGNAL wrclock_reg: STD_LOGIC;SIGNAL wren_reg: STD_LOGIC;SIGNAL ramaddress: STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL ramdata: STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL fout: STD_LOGIC;- FWORD1寄存器使能SIGNAL f1_en : STD_LOGIC;- FWORD2寄存器使能SIGNAL f2

42、_en: STD_LOGIC;- FWORD3寄存器使能SIGNAL f3_en: STD_LOGIC;- FWORD4寄存器使能SIGNAL f4_en: STD_LOGIC;- DDSCR 寄存器使能SIGNAL cr_en: STD_LOGIC;- DDSDATA寄存器使能SIGNAL data_en: STD_LOGIC;BEGIN- Delayed Signals Detection Process- 檢測延遲信號 Delay_Signals_Proc:PROCESS(reset,clk)BEGINIF(reset = RESET_ACTIVE) THEN as_delay = 1;

43、 ds_delay = 1;ELSIF rising_edge(clk) THEN as_delay = as; ds_delay = ds;END IF;END PROCESS;- Status Register Process- 狀態(tài)寄存器- 同步狀態(tài)State_Register_Proc: PROCESS (clk, reset)BEGINIF reset = RESET_ACTIVE THENprs_state = IDLE;ELSIF rising_edge(clk) THENprs_state = next_state;END IF;END PROCESS;- Next Statu

44、s Logic Process- 次態(tài)邏輯 Next_Logic_Proc: PROCESS (prs_state, as,as_delay,ds,ds_delay,cs)BEGINnext_state - 等待as的下降沿 IF cs = 0 THEN - 片選,低有?IF as = 0 AND as_delay = 1 THEN next_state - 等待ds的下降沿IF cs = 0 THENIF ds = 0 AND ds_delay = 1 THEN next_state = DATA_LAUNCH; ELSIF ds = 1 THEN next_state = STROBE;

45、END IF;ELSE next_state - 回到空閑狀態(tài) next_state = IDLE;END CASE;END PROCESS;- wr state Process- wr信號狀態(tài)機Wr_Logic_Proc: PROCESS (clk,reset)BEGINIF reset = RESET_ACTIVE THENwren_reg = 0;wrclock_reg = 0;ramaddress = 00000000;wr_state wren_reg = 0;wrclock_reg = 0;IF prs_state = DATA_LAUNCH THENIF data_en = 1

46、THENwren_reg = 1;ramdata = databus;wr_state - 產(chǎn)生wr上升沿wrclock_reg = 1;wr_state wrclock_reg = 0;- 計算RAM地址IF ramaddress = 11111111 THENramaddress = 00000000;ELSEramaddress = ramaddress + 1;END IF;- 回到空閑狀態(tài) wr_state = wr_idle;END CASE;END IF;END PROCESS;- 寫雙端口RAM的信號-wrclock = wrclock_reg;wren = wren_reg;

47、dataout = ramdata;addrout = ramaddress;- ADDR_DECODE Process- 地址譯碼Addr_Decode_Proc: PROCESS (reset, clk, addrbus, cs, as)BEGINIF reset = RESET_ACTIVE THEN f1_en = 0;f2_en = 0;f3_en = 0;f4_en = 0;cr_en = 0;data_enf1_en = 1;f2_en = 0;f3_en = 0;f4_en = 0;cr_en = 0;data_enf1_en = 0;f2_en = 1;f3_en = 0;f

48、4_en = 0;cr_en = 0;data_enf1_en = 0;f2_en = 0;f3_en = 1;f4_en = 0;cr_en = 0;data_enf1_en = 0;f2_en = 0;f3_en = 0;f4_en = 1;cr_en = 0;data_enf1_en = 0;f2_en = 0;f3_en = 0;f4_en = 0;cr_en = 1;data_enf1_en = 0;f2_en = 0;f3_en = 0;f4_en = 0;cr_en = 0;data_en f1_en = 0;f2_en = 0;f3_en = 0;f4_en = 0;cr_en = 0;data_en=0; END CASE; ELSEf1_en = 0;f2_en = 0;f3_en = 0;f4_en = 0;cr_en = 0;data_en=0; END IF;END IF;END PROCESS;-

展開閱讀全文
溫馨提示:
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. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!