【正文】
以函數(shù)信號發(fā)生器的功能為設(shè)計對象,運用EDA技術(shù)的設(shè)計方法,進(jìn)行各種波形的輸入設(shè)計、設(shè)計處理和器件編程。WHEN OTHERS=NULL。 遞減波形輸出WHEN010=q=d2。其選擇VHDL程序如下:LIBRARY IEEE。 a=1, 輸出一個波形周期內(nèi)的高電平 ELSEq=0。 END IF。EVENT AND clk=39。 END square。END SYN。 計數(shù)器異步復(fù)位 elsif clk 39。 q: out std_logic_vector(5 downto 0))。BEGIN q = sub_wire0(7 DOWNTO 0)。 outdata_reg_a : STRING。 COMPONENT altsyncram 例化altsyncram元件,調(diào)用了LPM模塊altsyncram GENERIC ( 參數(shù)傳遞語句 address_aclr_a : STRING。USE 。 END behave。139。 THEN 檢測時鐘上升沿 IF a=39。ARCHITECTURE behave OF ladder ISBEGINPROCESS(clk,reset)VARIABLE tmp: STD_LOGIC_VECTOR(7 DOWNTO 0)。階梯波模塊階梯波ladder的VHDL程序如附錄所示,其中clk是輸入時鐘端口,reset為輸入復(fù)位端口,q為八位二進(jìn)制輸出端口。039。039。 VARIABLE a:STD_LOGIC。從仿真波形圖也能看出這種變化規(guī)律。 END IF。039。模塊程序如下:LIBRARY IEEE。 q=tmp。 THEN tmp:= 00000000。 USE 。五、各模塊程序設(shè)計及仿真根據(jù)自上而下的思路進(jìn)行項目設(shè)計。此種方案完全可以生成設(shè)計要求的6種波形,而且通過軟件仿真可以直觀的觀測的輸出的波形參數(shù),方便調(diào)試和更改波形參數(shù),外圍電路簡單,減少器件損耗,精度高。信號發(fā)生器在我們的日常中有很重要的應(yīng)用,用VHDL語言去實現(xiàn)設(shè)計將會使我們對本學(xué)科知識可以更好地掌握。FPGA是整個系統(tǒng)的核心,構(gòu)成系統(tǒng)控制器,波形數(shù)據(jù)生成器,加法器,運算/譯碼等功能。電路不需要外部搭建,節(jié)約成本且控制簡單方便。圖1 遞增斜波模塊仿真圖程序設(shè)計的當(dāng)復(fù)位信號為0時,輸出為0,無對應(yīng)的波形產(chǎn)生。 q: OUT STD_LOGIC_VECTOR(7 DOWNTO 0))。139。遞減斜波模塊遞減斜波dcrs的VHDL程序如附錄所示,其中clk是輸入時鐘端口,reset為輸入復(fù)位端口,q為八位二進(jìn)制輸出端口。ENTITY dcrs ISPORT (clk,reset:IN STD_LOGIC。EVENT AND clk=39。 END behave。 USE 。 THEN tmp:=00000000。139。 END IF。 USE 。039。 IF tmp=11111111 THENtmp:=00000000。039。LPM_ROM底層是FPGA中的EAB、ESB或M4K等模塊。 使用宏功能庫中的所有元件ENTITY sin_rom IS PORT ( address : IN STD_LOGIC_VECTOR (5 DOWNTO 0)。 類屬參量數(shù)據(jù)類型定義 lpm_hint : STRING。 width_byteena_a : NATURAL )。:library ieee。定義內(nèi)部變量 begin if clr=39。 then –檢測時鐘上升沿 cqi:=cqi+1。連續(xù)的輸出便成了觀測到的方波波形。 定義內(nèi)部整數(shù)變量BEGINIF clr=39。 計數(shù) ELSEt:=0。EVENT AND clk=39。 END IF。d0,d1,d2,d3,d4,d5:IN STD_LOGIC_VECTOR(7 DOWNTO 0)。 正弦波形輸出WHEN101=q=d5。(2)第二次sel選擇值設(shè)為1,輸出為遞減波,從圖中可以看出,輸出的波形成線性遞減,結(jié)果正確。實驗表明采用該方法能準(zhǔn)確的產(chǎn)生三角波、階梯波、正弦波等設(shè)計產(chǎn)生的波形,實現(xiàn)了信號發(fā)生器的功能