【正文】
WHEN OTHERS=NULL。 遞減波形輸出WHEN010=q=d2。 q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0))。其選擇VHDL程序如下:LIBRARY IEEE。 END PROCESS。 a=1, 輸出一個波形周期內的高電平 ELSEq=0。139。 END IF。 當計數的值大于64時,清零。EVENT AND clk=39。039。 END square。模塊程序如下:LIBRARY IEEE。END SYN。 計數 end if。 計數器異步復位 elsif clk 39。039。 q: out std_logic_vector(5 downto 0))。use 。BEGIN q = sub_wire0(7 DOWNTO 0)。 PORT ( clock0 : IN STD_LOGIC 。 outdata_reg_a : STRING。 lpm_type : STRING。 COMPONENT altsyncram 例化altsyncram元件,調用了LPM模塊altsyncram GENERIC ( 參數傳遞語句 address_aclr_a : STRING。 inclock : IN STD_LOGIC 。USE 。地址發(fā)生器的時鐘CLK的輸入頻率F0與每周期的波形數據點數以及D/A輸出頻率F的關系是:F=F0/64。 END behave。 循環(huán)計數 END IF。139。 計數到最大清零a:=39。 THEN 檢測時鐘上升沿 IF a=39。 THEN tmp:=00000000。ARCHITECTURE behave OF ladder ISBEGINPROCESS(clk,reset)VARIABLE tmp: STD_LOGIC_VECTOR(7 DOWNTO 0)。 USE 。階梯波模塊階梯波ladder的VHDL程序如附錄所示,其中clk是輸入時鐘端口,reset為輸入復位端口,q為八位二進制輸出端口。 END IF。039。 ELSE 不是最大值時遞增tmp:=tmp+1。039。 復位信號為0,置最小值 ELSIF clk39。 VARIABLE a:STD_LOGIC。 ENTITY delta IS PORT(clk,reset:IN STD_LOGIC。從仿真波形圖也能看出這種變化規(guī)律。三角波模塊三角波波delat的VHDL程序如附錄所示,其中clk是輸入時鐘端口,reset為輸入復位端口,q為八位二進制輸出端口。 END IF。139。039。 q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0))。模塊程序如下:LIBRARY IEEE。圖2 遞減斜波模塊仿真圖程序設計的是復位信號為0時輸出為0,無對應的波形產生。 q=tmp。 THEN IF tmp=11111111 THEN tmp:=00000000。 THEN tmp:= 00000000。 END icrs。 USE 。當復位信號為1時,每當檢測到時鐘上升沿時,計數器值加1,當增加到最大后清零。五、各模塊程序設計及仿真根據自上而下的思路進行項目設計。在實驗課時候已經完成8選1數據選擇器的設計制作,因此本次設計可以直接調用。此種方案完全可以生成設計要求的6種波形,而且通過軟件仿真可以直觀的觀測的輸出的波形參數,方便調試和更改波形參數,外圍電路簡單,減少器件損耗,精度高。通過以上分析設計要求完成的功能,確定函數發(fā)生器可由遞增斜波產生模塊、遞減斜波產生模塊、三角波產生模塊、階梯波產生模塊、正弦波產生模塊、方波產生模塊和輸出波形選擇模塊組成,以及按鍵復位控制和時鐘輸入。信號發(fā)生器在我們的日常中有很重要的應用,用VHDL語言去實現設計將會使我們對本學科知識可以更好地掌握。作為一個學通信工程專業(yè)的學生,我們必須不斷地去了解更多的新產品信息,這就更加要求我們對EDA有個全面的認識。FPGA是整個系統(tǒng)的核心,構成系統(tǒng)控制器,波形數據生成器,加法器,運算/譯碼等功能。用VHDL語言編寫程序,調試成功后下載至實驗裝