基于FPGA的多功能波形發(fā)生器設(shè)計(jì)課程設(shè)計(jì)_第1頁(yè)
基于FPGA的多功能波形發(fā)生器設(shè)計(jì)課程設(shè)計(jì)_第2頁(yè)
基于FPGA的多功能波形發(fā)生器設(shè)計(jì)課程設(shè)計(jì)_第3頁(yè)
基于FPGA的多功能波形發(fā)生器設(shè)計(jì)課程設(shè)計(jì)_第4頁(yè)
基于FPGA的多功能波形發(fā)生器設(shè)計(jì)課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、課 程 設(shè) 計(jì)題 目多功能波形發(fā)生器的設(shè)計(jì)學(xué) 院信息工程學(xué)院專 業(yè)班 級(jí)姓 名指導(dǎo)教師年月日摘要3abstract4多功能波形發(fā)生器的設(shè)計(jì)41.課題簡(jiǎn)介61.1 課設(shè)目的61.2課設(shè)要求62設(shè)計(jì)方案82.1方案選擇82.2 設(shè)計(jì)原理82.3設(shè)計(jì)流程93仿真結(jié)果153.1編譯警告153.2編譯結(jié)果163.3建立仿真文件163.4仿真結(jié)果183.5 rtl視圖194程序分析214.1vhdl語(yǔ)言分析214.2主要函數(shù)語(yǔ)句分析215小結(jié)236參考文獻(xiàn)247附錄源程序代碼25摘要 多功能信號(hào)發(fā)生器已成為現(xiàn)代測(cè)試領(lǐng)域應(yīng)用最為廣泛的通用儀器之一,代表了信號(hào)源的發(fā)展方向。直接數(shù)字頻率合成(dds)是二十世紀(jì)

2、七十年代初提出的一種全數(shù)字的頻率合成技術(shù),其查表合成波形的方法可以滿足產(chǎn)生任意波形的要求。由于現(xiàn)場(chǎng)可編程門(mén)陣列(fpga)具有高集成度、高速度、可實(shí)現(xiàn)大容量存儲(chǔ)器功能的特性,能有效地實(shí)現(xiàn)dds技術(shù),極大的提高函數(shù)發(fā)生器的性能,降低生產(chǎn)成本。 本文首先介紹了函數(shù)信號(hào)發(fā)生器的研究背景和dds的理論。然后詳盡地?cái)⑹隽死胿hdl語(yǔ)言描述dds模塊的設(shè)計(jì)過(guò)程,以及設(shè)計(jì)過(guò)程中應(yīng)注意的問(wèn)題。文中詳細(xì)地介紹了多種信號(hào)的發(fā)生理論、實(shí)現(xiàn)方法、實(shí)現(xiàn)過(guò)程、部分vhdl代碼以及利用quartus仿真的結(jié)果。 文中還介紹了altera公司的de2多媒體開(kāi)發(fā)平臺(tái)的部分功能及使用,并最終利用de2平臺(tái)完成了多功能信號(hào)發(fā)生器

3、的大部分功能。包括由lcd顯示和按鍵輸入構(gòu)成的人機(jī)界面和多種信號(hào)的發(fā)生。數(shù)字模擬轉(zhuǎn)換器是burr-brown公司生產(chǎn)的dac902。該信號(hào)發(fā)生器能輸出8種不同的信號(hào),并且能對(duì)輸出信號(hào)的頻率、相位以及調(diào)制信號(hào)的頻率進(jìn)行修改設(shè)定。關(guān)鍵詞:vhdl d/a接口 abstract multi function signal generator has become the most widely used in modern testing field of general instrument, and has represented one of the development direction

4、 of the source. direct digital frequency synthesis (dds) is a totaly digital frequency synthesis technology, which been put forward in the early 1970s. using a look-up table method to synthetic waveform, it can satisfy any requirement of waveform produce. due to the field programmable gates array (f

5、pga) with high integrity, high speed, and large storage properties, it can realize the dds technology effectively, increase signal generators performance and reduce production costs. firstly, this article introduced the function signal generator of the research background and dds theory. then, it de

6、scribed how to design a dds module by vhdl, and introduced various signal occurs theory, method and the implementation process, vhdl code and simulation results. this paper also introduces the function of de2 multimedia development platform, and completed most of the functions of multi-function sign

7、al generator on de2 platform finally. including the occurrence of multiple signal and the man-machine interface which composed by lcd display and key input. digital-to-analog converters is dac902, which produced by company burr-brown. this signal generator can output eight different kinds of signals

8、, and the frequency of the output signal, phase and modulation frequency signal also can be modifyed. keywords: vhdl d/a interface 多功能波形發(fā)生器的設(shè)計(jì)信號(hào)發(fā)生器又稱信號(hào)源或振蕩器,在生產(chǎn)實(shí)踐和科技領(lǐng)域中有著廣泛的應(yīng)用。它能夠產(chǎn)生多種波形,如三角波、鋸齒波、矩形波(含方波)、正弦波等,在電路實(shí)驗(yàn)和設(shè)備檢測(cè)中具有十分廣泛的用途。例如在通信、廣播、電視系統(tǒng)中,都需要射頻(高頻)發(fā)射,這里的射頻波就是載波,把音頻(低頻)、視頻信號(hào)或脈沖信號(hào)運(yùn)載出去,就需要能夠產(chǎn)生高頻的

9、振蕩器。在工業(yè)、農(nóng)業(yè)、生物醫(yī)學(xué)等領(lǐng)域內(nèi),如高頻感應(yīng)加熱、熔煉、淬火、超聲診斷、核磁共振成像等,都需要功率或大或小、頻率或高或低的信號(hào)發(fā)生器。 傳統(tǒng)的信號(hào)發(fā)生器主要有兩類:正弦波和脈沖波信號(hào)發(fā)生器,而函數(shù)發(fā)生器介于兩類之間。它能夠提供正弦波、鋸齒波、方波、三角波等幾種常用標(biāo)準(zhǔn)波形,產(chǎn)生其它波形時(shí),需要采用較復(fù)雜的電路和機(jī)電結(jié)合的方法。這個(gè)時(shí)期的波形發(fā)生器多采用模擬電子技術(shù),但是模擬器件構(gòu)成的電路存在著尺寸大、價(jià)格貴、功耗大等缺點(diǎn)。而且要產(chǎn)生的信號(hào)波形越復(fù)雜,則電路結(jié)構(gòu)也會(huì)越復(fù)雜。同時(shí)還有兩個(gè)突出問(wèn)題,一是通過(guò)電位器的調(diào)節(jié)來(lái)實(shí)現(xiàn)輸出頻率的調(diào)節(jié),因此很難將頻率調(diào)到某一固定值;二是脈沖的占空比不可調(diào)節(jié)

10、。 現(xiàn)代科學(xué)技術(shù)的飛速發(fā)展對(duì)信號(hào)源提出了越來(lái)越高的要求。這些要求主要表現(xiàn)在高分辨率、高輸出頻率、任意波形等方面。此時(shí)傳統(tǒng)的信號(hào)發(fā)生器已經(jīng)無(wú)法滿足要求。 直接數(shù)字頻率合成(direct digital synthesizer簡(jiǎn)稱dds)技術(shù)是一種新的全數(shù)字的頻率合成原理,它從相位的角度出發(fā)直接合成所需波形。這種技術(shù)由美國(guó)學(xué)者jtiercy,mrader和bgold于1971年首次提出,但限于當(dāng)時(shí)的技術(shù)和工藝水平,dds技術(shù)僅僅在理論上進(jìn)行了一些探討,而沒(méi)有應(yīng)用到實(shí)際中去。但是隨著電子技術(shù)的飛速發(fā)展,微處理器性能大幅提高,高速的d/a以及隨機(jī)存儲(chǔ)器大量涌現(xiàn),dds技術(shù)已經(jīng)變得很容易實(shí)現(xiàn)。它已廣泛應(yīng)

11、用于通訊、雷達(dá)、遙控測(cè)試、電子對(duì)抗以及現(xiàn)代化的儀器儀表工業(yè)等許多領(lǐng)域。將其與簡(jiǎn)單電路相結(jié)合就可以精確模擬仿真各種信號(hào)。 不論是在生產(chǎn)、實(shí)驗(yàn)還是在科研與教學(xué)上,多功能信號(hào)發(fā)生器都是用于仿真實(shí)驗(yàn)的最佳工具。隨著我國(guó)經(jīng)濟(jì)和科技的發(fā)展,對(duì)相應(yīng)的測(cè)試儀器和測(cè)試手段也提出了更高的要求,多功能信號(hào)生器己成為測(cè)試儀器中至關(guān)重要的一類,因此開(kāi)發(fā)多功能信號(hào)發(fā)生器具有重大意義。1.課題簡(jiǎn)介1.1 課設(shè)目的(1)懂得多功能波形發(fā)生器的結(jié)構(gòu)組成(2)懂得利用fpga芯片實(shí)現(xiàn)多種波形的產(chǎn)生方法(3)懂得一種復(fù)雜fpga電路的設(shè)計(jì) 1.2課設(shè)要求 設(shè)計(jì)一個(gè)多功能波形發(fā)生器。該波形發(fā)生器能產(chǎn)生正弦波、方波、三角波和由用戶編輯

12、的特定形狀波形。具體要求如下: (1) 具有產(chǎn)生正弦波、方波、三角波、鋸齒波4種周期性波形的功能。 (2) 用鍵盤(pán)輸入編輯生成上述4種波形(同周期)的線性組合波形。 (3)具有波形存儲(chǔ)功能。 (4)輸出波形的頻率范圍為100hz200khz;重復(fù)頻率可調(diào),頻率步進(jìn)間隔100hz。 (5)輸出波形幅度范圍05v(峰-峰值),可按步進(jìn)0.1v(峰-峰值)調(diào)整。 (6)具有顯示輸出波形的類型、重復(fù)頻率(周期)和幅度的功能。 (7)用鍵盤(pán)或其他輸入裝置產(chǎn)生任意波形。多功能波形發(fā)生器系統(tǒng)由以下四部分組成:輸入部分、fpga部分、dac、顯示部分組成。 圖1 多功能波形發(fā)生器系統(tǒng)框圖1.3課設(shè)工具本次設(shè)計(jì)

13、是基于altera公司的quartusii軟件。quartus ii 是altera公司的綜合性pld開(kāi)發(fā)軟件,支持原理圖、vhdl、veriloghdl以及ahdl(altera hardware description language)等多種設(shè)計(jì)輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整pld設(shè)計(jì)流程。quartusii支持altera的ip核,包含了lpm/megafuction宏功能模塊庫(kù),使用它,可以簡(jiǎn)化設(shè)計(jì)的復(fù)雜性,加快設(shè)計(jì)速度。quartusii平臺(tái)支持一個(gè)工作組環(huán)境下的設(shè)計(jì)要求,其中包括支持基于internet的協(xié)作設(shè)計(jì)。此外,quartusii

14、通過(guò)和dsp builder工具與matlab/simulink相結(jié)合,可以方便地實(shí)現(xiàn)各種dsp應(yīng)用系統(tǒng);支持altera的片上可編程系統(tǒng)開(kāi)發(fā),集系統(tǒng)級(jí)設(shè)計(jì)、嵌入式軟件設(shè)計(jì)、可編程邏輯設(shè)計(jì)于一體,是一種綜性的開(kāi)發(fā)平臺(tái)。2設(shè)計(jì)方案2.1方案選擇1、模擬鎖相環(huán)實(shí)現(xiàn)模擬鎖相環(huán)技術(shù)是一項(xiàng)比較成熟的技術(shù)。應(yīng)用模擬鎖相環(huán),可將基準(zhǔn)頻率倍頻,或分頻得到所需的頻率,且調(diào)節(jié)精度可以做到相當(dāng)高、穩(wěn)定性也比較好。但模擬鎖相環(huán)模擬電路復(fù)雜,不易調(diào)節(jié),成本較高,且由于受模擬器件的影響,波形變換調(diào)節(jié)時(shí)間較長(zhǎng),輸出波形的毛刺較多,因此模擬鎖相環(huán)實(shí)現(xiàn)在低頻(0500khz)信號(hào)發(fā)生系統(tǒng)中不是很好的方案。2、直接數(shù)字頻率合成實(shí)

15、現(xiàn)直接數(shù)字頻率合成(ddfs)技術(shù)是經(jīng)典的數(shù)字頻率合成技術(shù)。由于數(shù)字量的可操作性遠(yuǎn)遠(yuǎn)高于模擬量,采用ddfs的優(yōu)點(diǎn)在于頻率精度高、波形調(diào)節(jié)方便、且輸出波形毛刺少等?;趩纹瑱C(jī)的數(shù)字波形發(fā)生系統(tǒng)受單片機(jī)指令頻率的限制,輸出波形頻率較低,而基于fpga的波形發(fā)生系統(tǒng)就不存在這樣的問(wèn)題,其輸出頻帶較單片機(jī)實(shí)現(xiàn)有很大的展寬。本系統(tǒng)設(shè)計(jì)選定以fpga作為系統(tǒng)控制核心的直接數(shù)字頻率合成實(shí)現(xiàn)方案。2.2 設(shè)計(jì)原理采用dds技術(shù)可以很方便地產(chǎn)生各種高質(zhì)量的波形。dds技術(shù)是從相位概念出發(fā)之結(jié)合成所需要波形的一種頻率合成技術(shù)。以正弦波為例,首先要按照一定的采樣點(diǎn)數(shù)將正弦波形一個(gè)周期的數(shù)據(jù)信息存于rom表中,表中

16、包含著一個(gè)周期正弦波的數(shù)字幅度信息,每個(gè)地址對(duì)應(yīng)正弦波中0到360度范圍內(nèi)的一個(gè)相位點(diǎn)的幅度值,查找表時(shí)即是把輸入的地址相位信息映射成正弦波幅度的數(shù)字量信號(hào),通過(guò)設(shè)置的輸出端口輸出。在實(shí)物設(shè)計(jì)中,可以使用d/a接口來(lái)實(shí)現(xiàn)波形信號(hào)的輸出。為簡(jiǎn)化設(shè)計(jì)過(guò)程,本設(shè)計(jì)并未采用dds技術(shù),而是采用描點(diǎn)輸出的方式,實(shí)現(xiàn)波形發(fā)生器的設(shè)計(jì)。程序中設(shè)置一個(gè)波形的起始點(diǎn),經(jīng)過(guò)比較、計(jì)算得出波形的其他數(shù)值,將這些點(diǎn)依次連續(xù)輸出,從而實(shí)現(xiàn)波形的仿真。以遞增鋸齒波為例,首先定義初始點(diǎn)為 tmp=“00000000”;在時(shí)鐘上升沿到來(lái)時(shí),執(zhí)行tmp lcd(7 downto 1) lcd(7 downto 1) lcd(7

17、 downto 1) lcd(7 downto 1) lcd(7 downto 1) lcd(7 downto 1) lcd(7 downto 1) lcd(7 downto 1) lcd(7 downto 1) lcd(7 downto 1) lcd(7 downto 1)=0000001; end case;end process;綜合時(shí),信號(hào)y被添加到敏感信號(hào)表中。第二個(gè)警告,認(rèn)為引腳p180直接到正電源了。port(clk : in std_logic; -時(shí)鐘信號(hào)輸入 set, clr, up, down, zu, zd : in std_logic; -各個(gè)波形特征的調(diào)節(jié)觸發(fā)信號(hào)

18、posting : in std_logic; -任意波鍵盤(pán)置入信號(hào) u0,d0,sw : in std_logic; -方波a、b的切換sw,和方波b的幅度調(diào)節(jié)按鍵 ss : in std_logic_vector( 3 downto 0 ); -檔位選擇信號(hào) sss : in std_logic_vector( 4 downto 0 ); -波形選擇信號(hào) data3, data2, data1,data0 : in std_logic_vector(3 downto 0); -bcd碼輸入 p180 : out std_logic; -預(yù)留接口 lcd : out std_logic_ve

19、ctor(7 downto 0); -顯示輸出 shift : out std_logic_vector(3 downto 0); -位碼輸出 dd, a : out std_logic_vector( 7 downto 0); -波形、幅度數(shù)據(jù)輸出但實(shí)際上引腳p180是預(yù)留接口未用。3.2編譯結(jié)果 圖9 編譯結(jié)果3.3建立仿真文件 在編譯通過(guò)后,要建立后綴為vwf的仿真波形文件。執(zhí)行菜單命令,選擇new,再選擇需要的vector waveform file,單擊ok。在波形文件編輯方式下,右鍵選擇insert添加信號(hào)節(jié)點(diǎn),設(shè)置相應(yīng)的參數(shù)。如下圖所示。 圖10 仿真波形文件建立 圖11 仿真波

20、形參數(shù)設(shè)置3.4仿真結(jié)果仿真結(jié)果如下圖所示 圖12仿真波形3.5 rtl視圖生成的rtl視圖如下 圖13 rtl視圖4程序分析4.1vhdl語(yǔ)言分析一個(gè)vhdl語(yǔ)言的設(shè)計(jì)程序描述的是一個(gè)電路單元,這個(gè)電路單元可以是一個(gè)門(mén)電路,或者是一個(gè)計(jì)數(shù)器,也可以是一個(gè)cpu,一般情況下,一個(gè)完整的vhdl語(yǔ)言程序至少包括實(shí)體、結(jié)構(gòu)體和程序包三個(gè)部分。實(shí)體給出電路單元的外部輸入輸出接口信號(hào)和引用信息,結(jié)構(gòu)體給出了電路單元的內(nèi)部結(jié)構(gòu)和信號(hào)的行為特點(diǎn),程序包定義在設(shè)計(jì)結(jié)構(gòu)體和實(shí)體中將用到的常數(shù)、數(shù)據(jù)類型、子程序和設(shè)計(jì)好的電路單元等。第一部分是程序包,程序包是用vhdl語(yǔ)言編寫(xiě)的共享文件,定義在設(shè)計(jì)結(jié)構(gòu)體和實(shí)體中

21、將要用到的常數(shù)、數(shù)據(jù)類型、子程序和設(shè)計(jì)好的電路單元等,放在文件目錄名稱為ieee的程序包庫(kù)中。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;第二部分是程序的實(shí)體,定義電路單元的輸入/輸出引腳名稱。程序的實(shí)體名稱可以任意取,但必須與vhdl程序的文件名稱相同。實(shí)體的標(biāo)示符是entity,實(shí)體以entity開(kāi)頭,以end結(jié)束。entity fulladder isport(a,b,ci:in std_logic;co,s: out std_l

22、ogic_vector(7 downto 0);end fulladder;其中,定義了a,b, ci為輸入信號(hào)引腳,定義co,s為輸出信號(hào)引腳。第三部分是程序的結(jié)構(gòu)體,具體描述電路的內(nèi)部結(jié)構(gòu)和邏輯功能。結(jié)構(gòu)體有三種描述方式,分別是行為(behavior)描述方式、數(shù)據(jù)流(dataflow)描述方式和結(jié)構(gòu)描述方式。其中數(shù)據(jù)流描述方式又被稱為寄存器(rtl)描述方式。結(jié)構(gòu)體以表示architechture開(kāi)頭,以end結(jié)尾。結(jié)構(gòu)體的名稱可以任取。architecture behav of fulladder isbegins=a xor b xor ci;co 順序語(yǔ)句when 選擇值 = 順序

23、語(yǔ)句.end case 當(dāng)執(zhí)行到case語(yǔ)句時(shí),首先計(jì)算表達(dá)式的值,然后根據(jù)條件句中與之相同的選擇值。執(zhí)行對(duì)應(yīng)的順序語(yǔ)句,最后結(jié)束 case語(yǔ)句。表達(dá)式可以是一個(gè)整數(shù)類型或枚舉類型的值,也可以是由這些數(shù)據(jù)類型的值構(gòu)成的數(shù)組。5小結(jié)通過(guò)這次fpga課程設(shè)計(jì),我對(duì)fpga的基本原理有了進(jìn)一步的認(rèn)識(shí)。fpga的基礎(chǔ)就是數(shù)字電路和vhdl語(yǔ)言,其開(kāi)發(fā)需要從頂層設(shè)計(jì)、模塊分層、邏輯實(shí)現(xiàn)、軟硬件調(diào)試等多方面著手。開(kāi)發(fā)環(huán)境常用的有altera公司的quartus ii和xilinx公司的ise,本次課程設(shè)計(jì)選用的是quartus ii。此次課程設(shè)計(jì)暴露了我平時(shí)學(xué)習(xí)中的許多不足。在設(shè)計(jì)的過(guò)程中我遇到了一些問(wèn)題

24、,比如對(duì)quartus軟件的使用還不太熟悉,在編譯的時(shí)候出現(xiàn)的錯(cuò)誤不知道怎么解決,請(qǐng)教了很多同學(xué)才弄明白。還有進(jìn)行仿真之前需要自己建立仿真波形文件,才能進(jìn)行仿真等等,但在和老師、同學(xué)的交流下,最后我都解決了問(wèn)題。另一方面我也感受到動(dòng)手實(shí)踐的重要性。動(dòng)手實(shí)踐是理論知識(shí)得以靈活運(yùn)用的必要前提,也是今后走上工作崗位之后能夠很好的完成設(shè)計(jì)工作的技術(shù)保證。fpga是實(shí)用性很強(qiáng)的課程,只有多學(xué)多用,邊學(xué)邊用,才能促進(jìn)提高自己的能力。雖然課設(shè)完成了,但是我意識(shí)到,我對(duì)fpga技術(shù)僅僅只是停留在入門(mén)的階段,想要有更大的發(fā)展,更深入的研究,還需要更多的努力與實(shí)踐。6參考文獻(xiàn)【1】潘松 黃繼業(yè). eda技術(shù)與vh

25、dl(第二版).北京:清華大學(xué)出版社,2005.7【2】康華光.電子技術(shù)基礎(chǔ).北京:高等教育出版社.2006.1【3】付家才. eda工程實(shí)踐技術(shù).北京:化學(xué)工業(yè)出版社,2007.1【4】漢澤西. eda技術(shù)及其應(yīng)用.北京:北京航空航天大學(xué)出版社,2004.5【5】趙剛.eda技術(shù)簡(jiǎn)明教程.成都:四川大學(xué)出版社,2004.6【6】章彬宏 周正林.eda應(yīng)用技術(shù).北京:北京理工大學(xué)出版社,2007.7【7】劉艷萍 高振斌 李志平.eda實(shí)用技術(shù)及應(yīng)用.北京:國(guó)防工業(yè)出版社,2006.17附錄源程序代碼library ieee;use ieee.std_logic_1164.all;use iee

26、e.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity keshe isport(clk : in std_logic; -時(shí)鐘信號(hào)輸入 set, clr, up, down, zu, zd : in std_logic; -各個(gè)波形特征的調(diào)節(jié)觸發(fā)信號(hào) posting : in std_logic; -任意波鍵盤(pán)置入信號(hào) u0,d0,sw : in std_logic; -方波a、b的切換sw,和方波b的幅度調(diào)節(jié)按鍵 ss : in std_logic_vector( 3 downto 0 ); -檔位選擇信號(hào) sss : in

27、 std_logic_vector( 4 downto 0 ); -波形選擇信號(hào) data3, data2, data1,data0 : in std_logic_vector(3 downto 0); -bcd碼輸入 p180 : out std_logic; -預(yù)留接口 lcd : out std_logic_vector(7 downto 0); -顯示輸出 shift : out std_logic_vector(3 downto 0); -位碼輸出 dd, a : out std_logic_vector( 7 downto 0); -波形、幅度數(shù)據(jù)輸出end keshe;archi

28、tecture behav of keshe issubtype word is std_logic_vector( 7 downto 0 );type unit is array(63 downto 0) of word;signal ram : unit;signal qqq : integer range 0 to 250000000;signal qq : integer range 0 to 78125000;signal tmp : integer range 0 to 9999;signal coun : integer range 0 to 78125000;signal co

29、un0 : integer range 0 to 250000000;signal b : integer range 0 to 78125000;signal c : integer range 0 to 500000000;signal z, con : integer range 0 to 63;signal f : std_logic_vector( 7 downto 0 );signal amp, amp0, d : std_logic_vector(7 downto 0);signal bcd0,bcd1,bcd2,bcd3 : integer range 0 to 9;signa

30、l bcd01,bcd11,bcd21,bcd31 : integer range 0 to 9;signal bcd00,bcd10,bcd20,bcd30 : integer range 0 to 9;signal y : integer range 0 to 9;signal addr : integer range 0 to 63;beginqq=781250 when ss=1000 else 7812500 when ss=0100 else 78125000 when ss=0010 else 78125;-qq信號(hào)對(duì)應(yīng)sw=0時(shí)的檔位選擇信號(hào)ss,實(shí)現(xiàn)方波a和其他三種波形的頻率

31、預(yù)置qqq= 500000 when ss=1000 else 5000000 when ss=0100 else 50000000 when ss=0010 else50000;-qqq信號(hào)對(duì)應(yīng)sw=1時(shí)的檔位選擇信號(hào)ss,實(shí)現(xiàn)方波b的頻率預(yù)置process(clk) -此進(jìn)程分別描述了各種波形的頻率、幅度(方波a的占空比)調(diào)節(jié)以及各種波形的任意線-形疊加等。variable count4 : integer range 0 to 6250000;variable count : integer range 0 to 78125000;variable count3 : integer ra

32、nge 0 to 250000000;variable count1 : integer range 0 to 12500000;variable count0 : integer range 0 to 3249999;variable ddd : std_logic_vector(9 downto 0);variable dd0,dd1,dd2,dd3,dd4 : integer range 0 to 255;variable adr : integer range 0 to 63;beginif rising_edge(clk) then if posting=1 then if coun

33、t4=6249999 then count4:=0; adr:=conv_integer(data3)*10+conv_integer(data2);-存儲(chǔ)單位地址 if adr64 then if set=1 then ram(adr)=conv_std_logic_vector(conv_integer(data1)*10+conv_integer(data0)*2,8); -對(duì)置入的任意波形數(shù)據(jù)進(jìn)行儲(chǔ)存 elsif clr=1 then adr:=0; -存儲(chǔ)器所有單元清零 for i in 0 to 63 loopram(i)0);end loop; end if; end if; e

34、lse count4:=count4+1; end if; else if set=1 then coun=0; b=0; coun0=0;c=0;z=31;amp0=01111111; addr=0;tmp=conv_integer(data3)*1000+conv_integer(data2)*100+conv_integer(data1)*10+conv_integer(data0); -頻率數(shù)據(jù) amp0 then if sw=0 then if counqq then coun=coun+tmp; b=b+1; -頻率到采樣點(diǎn)間隔脈沖數(shù)轉(zhuǎn)換 else if count=b then

35、count:=1; if f=63 then f=00000000; else f=f+1; end if; if sss=00010 then -方波a if con=z then dd=amp0; con=con+1; elsif con=63 then con=0; dd=00000000; else con=con+1; dd=00000000; end if; elsif sss=10000 then dd=d; -正弦波 elsif sss=00100 then dd31 then dd=(111111-f(5 downto 0)&00; else dd=f(5 downto 0)

36、&00; end if; elsif sss=00001 then -任意波 if addr63 then dd=ram(addr); addr=addr+1; elsif addr=63 then dd=ram(63); addr=0; end if; else -完成5種波形的線形疊加 if sss(1)=1 then if con=z then con=con+1; dd0:=conv_integer(amp0); -方波波形數(shù)據(jù)dd0 else con31 then dd3:=conv_integer(111111-f(5 downto 0)&00); else dd3:=conv_i

37、nteger(f(5 downto 0)&00); -三角波波形數(shù)據(jù)dd3 end if; end if; if sss(0)=1 then if addr63 then dd4:=conv_integer(ram(addr); addr=addr+1; elsif addr=63 then dd4:=conv_integer(ram(63); addr=0; end if; -任意波波形數(shù)據(jù)dd4 end if; ddd:=conv_std_logic_vector(dd0+dd1+dd2+dd3+dd4),10);-波形線形疊加輸出dd=ddd(9 downto 2); end if; e

38、lse count:=count+1; end if; end if; else if coun0qqq then coun0=coun0+tmp; c=c+1; else if count3=c/2 then count3:=count3+1; dd=amp0; elsif count3=c then count3:=1;dd=00000000; else count3:=count3+1; dd=00000000; end if; end if; end if; end if; if count1=12499999 then count1:=0; -調(diào)方波a的占空比 if zu=1 then if z63 then z=z+1; else z0 then z=z-1; else z=0; end if; end if; else count1:=count1+1; end if; if count0=3249999 then count0:=0;-up、down對(duì)4種波形幅度調(diào)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論