1、图 3.1信号发生器结构框图通过查找资料把各类信号模块的程序输入到 Quartus 中进行运行仿真, 每一步都要慎重小心,错误难免的,还需要通过课本和资料一一更正。最后,在前面模块做好的基础上再考虑如何输出波形的问题,通过对四种波形采样就可以得到。4、硬件电路的设计与软件设计根据题目分析与整体构思可知,要完成设计任务必须设计出以下模块: 4.1 正弦波发生器的实现该模块产生以 64 个时钟为一个周期的正弦波。其 VHDL 语言源程序代码如下所示: LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;-打开库文件USE IEEE.STD_LOGIC_UNSIGNED
2、.ALL;ENTITYsinqi ISPORT (clk : IN STD_LOGIC;-声明clk 是标准逻辑位类型的输入端口clr :IN STD_LOGIC; -声明 clr 是标准逻辑位类型的输入端口d : OUT integer range 0 to 255); -声明d 是标准逻辑向量类型的-输出端口ENDsinqi;ARCHITECTURE sinb OF sinqi IS BEGINPROCESS(clr,clk)variable temp:integer range 0 to 63; BEGINIF clr=0 THEN dd=254;when 02=252; when 03
3、=249;when 04=245;when 05=239; 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
4、;when 29=4;when 30=1;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 o
5、thers=null; -当 temp 值不是选择值,Q 作未知-处理ENDCASE;ENDIF;ENDPROCESS;END sinb;4.2 方波信号发生器的实现该模块产生方波,是通过交替送出全 0 和全 1 实现,每 16 个时钟翻转一次。LIBRARY IEEE;-打开库文件USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY fangboqi ISPORT (clk:-声明 clk 是标准逻辑位类型的输入端口clr:-声明 clr 是标准逻辑位类型的输入端口q: OUT STD_LOGIC_VECTOR(
6、7 DOWNTO 0);-声明 q 是标准逻辑-向量类型的输出端口END fangboqi;ARCHITECTURE fangbo1 OF fangboqi IS-结构体说明SIGNAL a: STD_LOGIC;BEGINPROCESS(clk,clr)VARIABLEtmp:std_logic_vector(3 downto 0);-变量定义BEGINTHENa=;ELSIF clkevent AND clk= THEN-clk 为上升沿IFtmp=1111 THEN tmp:=0000tmp:=tmp+1;IF tmp1000 THEN aELSEa END PROCESS; PROCE
7、SS(clk,a) BEGINIF clk THEN-clk 为上升沿IF a= THENq11111111-q 赋值00000000-结束进程ENDfangbo1;-结束结构体4.3 三角波信号发生器的实现该模块产生的三角波形以 64 个时钟为一个周期,输出 q 每次加减 8-打开库文件USE IEEE.STD_LOGIC_1164.ALL;ENTITY sjbo ISPORT (clk :clr :END sjbo;ARCHITECTURE sjqi OF sjbo IS-结构体说明BEGINVARIABLE tmp:STD_LOGIC_VECTOR(7 DOWNTO 0);-变量说明VA
8、RIABLE a:STD_LOGIC;event AND clk=IF tmp=11111000 a:=tmp+8;00000111=tmp-8;=tmp;END PROCESS;END sjqi;4.4 阶梯波信号发生器的实现该模块产生的是阶梯波形。ENTITY jietiboqi IS-声明 clk 是标准逻辑位类型的输入端口clr :-声明 clr 是标准逻辑位类型的输入端口Q: BUFFER STD_LOGIC_VECTOR(7 DOWNTO 0);END jietiboqi;ARCHITECTURE jietibo OF jietiboqi IS-结构体说明BEGIN -变量定义BEGIN-变量赋值ELSE IF clk THE
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1