1、递增斜波模块ZENG的VHDL程序设计:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ZENG IS PORT(CLK,RESET:IN STD_LOGIC; Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END ZENG;ARCHITECTURE ZENG_ARC OF ZENG IS BEGIN PROCESS(CLK,RESET) VARIABLE TMP:STD_LOGIC_VECTOR(7 DOWNTO 0); IF RESET=0 THEN TM
2、P:=00000000; ELSIF CLKEVENT AND CLK=1 IF TMP=11111111 ELSE =TMP+1; END IF; Q=TMP; END PROCESS;END ZENG_ARC;2.递减斜波模块的设计:递减斜波模块JIAN见图1.3。它是递减斜波产生模块。图1.3 模块JIAN递减斜波模块ZENG的VHDL程序设计:ENTITY JIAN ISEND JIAN;ARCHITECTURE JIAN_ARC OF JIAN IS ELSE TMP:=TMP-1;END JIAN_ARC;3.三角波模块的设计:三角波模块DELTA见图1.4。它是三角波产生的模块。
3、图1.4 模块DELTA三角波模块DELTA的VHDL程序设计:ENTITY DELTA ISEND DELTA;ARCHITECTURE DELTA_ARC OF DELTA IS VARIABLE A:STD_LOGIC; IF A=11111110A:= ELSE00000001END DELTA_ARC;4.阶梯波模块的设计:阶梯波模块LADDER见图1.5。它是阶梯波产生的模块,改变递增的常数,可改变阶梯的多少。图1.5 模块LADDER阶梯波模块LADDER的VHDL程序设计:ENTITY LADDER ISEND LADDER;ARCHITECTURE LADDER_ARC OF
4、 LADDER IS=TMP+16; A:END LADDER_ARC;5.正弦波模块的设计:正弦波模块SIN见图1.6。它是正弦波产生的模块。图1.6 模块SIN正弦波模块SIN的VHDL程序设计:ENTITY SIN IS PORT(CLK,CLR: D:OUT INTEGER RANGE 0 TO 255);END SIN;ARCHITECTURE SIN_ARC OF SIN IS PROCESS(CLK,CLR)INTEGER RANGE 0 TO 63; IF CLR= DD=254;WHEN 02=252; WHEN 03=249;WHEN 04=245;WHEN 05=239;
5、 WHEN 06=233;WHEN 07=225;WHEN 08=217; WHEN 09=207;WHEN 10=197;WHEN 11=186; WHEN 12=174;WHEN 13=162;WHEN 14=150; WHEN 15=137;WHEN 16=124;WHEN 17=112; WHEN 18=99; WHEN 19=87; WHEN 20=75; WHEN 21=64; WHEN 22=53; WHEN 23=43; WHEN 24=34; WHEN 25=26; WHEN 26=19; WHEN 27=13; WHEN 28=8; WHEN 29=4; WHEN 30=1
6、; WHEN 31= WHEN 32= WHEN 33= WHEN 34= WHEN 35= WHEN 36= WHEN 37= WHEN 38= WHEN 39= WHEN 40= WHEN 41= WHEN 42= WHEN 43= WHEN 44= WHEN 45= WHEN 46=WHEN 47= WHEN 48=WHEN 49=WHEN 50= WHEN 51=WHEN 52=WHEN 53= WHEN 54=WHEN 55=WHEN 56= WHEN 57=WHEN 58=WHEN 59= WHEN 60=WHEN 61=WHEN 62= WHEN 63=WHEN OTHERS=N
7、ULL; END CASE;END SIN_ARC;6.方波模块的设计:方波模块SQUARE见图1.7。它是方波产生的模块。图1.7 模块SQUARE方波模块SQUARE的VHDL程序设计:ENTITY SQUARE ISEND SQUARE;ARCHITECTURE SQUARE_ARC OF SQUARE ISSIGNAL A:BIT; VARIABLE CNT: A IF CNT63 THEN CNT:=CNT+1; ELSE CNT:A=NOT A; PROCESS(CLK,A) IF CLK ELSE QQEND CH61A_ARC;四、设计工具 计算机一台,Quartus 软件五、
8、设计结果1.若输入时钟信号CLK为100MHz,复位信号RESET=;当选择信号SEL=时,输出Q应为递增斜波,如图1.9所示:图1.9 递增斜波 注:仿真为时序仿真,所以输出波形存在瑕疵。2.若输入时钟信号CLK为100MHz,复位信号RESET=时,输出Q应为递减斜波,如图1.10所示:图1.10 递减斜波3.若输入时钟信号CLK为100MHz,复位信号RESET=时,输出Q应为三角波,如图1.11(a)、1.11(b)所示:图1.11(a) 三角波最高点处图1.11(b) 三角波最低点处4.若输入时钟信号CLK为100MHz,复位信号RESET=时,输出Q应为递增常数为20(十进制)的阶梯波,如图1.12所示:图1.12 递增常数为20(十进制)的阶梯波5.若输入时钟信号CLK为100MHz,复位信号RESET=时,输出Q应为正弦波,如图1.13所示:图1.13 正弦波6.若输入时钟信号CLK为100MHz,复位信号RESET=时,输出Q应为方波,如图1.14所示:图1.14 方波六、结论 经过程序仿真后,因为仿真为时序仿真,输出波形存在瑕疵;观察得到的输出波形,得出该智能函数发生器可行。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1