基于vhdl语言的简易信号发生器

基于vhdl语言的简易信号发生器

ID:35618972

大小:142.74 KB

页数:7页

时间:2019-04-02

基于vhdl语言的简易信号发生器_第1页
基于vhdl语言的简易信号发生器_第2页
基于vhdl语言的简易信号发生器_第3页
基于vhdl语言的简易信号发生器_第4页
基于vhdl语言的简易信号发生器_第5页
资源描述:

《基于vhdl语言的简易信号发生器》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基于VHDL语言的简易信号发生器1设计方案1.1?系统功能要求函数信号发生器是一种能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波等波形的电路。函数信号发生器在电路实验和设备检测中具有十分广泛的用途。现在我们通过对函数信号发生器的原理以及构成设计一个能变换出三角波、正弦波、方波的简易发生器。1.2?总体框图本设计由信号产生,信号选择,信号控制输出三大模块组合而成。其中信号产生模块有:三角波模块、方波模块、正弦波模块。本设计采用K0~K2这三个按键为信号选择开关,选择信号产生模块输出的信号。其控制模块(SIG_CONTROL

2、)是由数据选择器实现对以上三种信号的选择,并产生相应波形。系统顶层设计图如图所示:图中左边为三个输入信号k0,k1,k2,clk,clrn;信号选择开关,时钟信号和复位开关。主要模块有:三角波信号(delta)、方波信号(square)、正弦信号的发生器(sin)各一个,数据选择器(sig_control)。2?模块功能设计2.1三角波模块该模块部分VHDL源程序如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYdeltaISp

3、ort(clk,clrn:INSTD_LOGIC;q:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDdelta;ARCHITECTUREaOFdeltaISBEGINPROCESS(clk,clrn)VARIABLEtmp:STD_LOGIC_VECTOR(7DOWNTO0);VARIABLEf:STD_LOGIC;BEGINIFclrn='0'THENtmp:="00000000";ELSIFclk'EVENTANDclk='1'THENIFf='0'THENIFtmp="11111110"THENtmp:="

4、11111111";f:='1';ELSEtmp:=tmp+1;ENDIF;ELSEIFtmp="00000001"THENtmp:="00000000";f:='0';ELSEtmp:=tmp-1;ENDIF;ENDIF;ENDIF;q<=tmp;ENDPROCESS;ENDa;2.2方波模块该模块部分VHDL源程序如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYsquareISPORT(clk,clrn:INSTD_LOG

5、IC;q:OUTSTD_LOGIC_VECTOR(7downto0));ENDsquare;ARCHITECTUREaOFsquareISSIGNALf:STD_LOGIC;BEGINPROCESS(clk,clrn)VARIABLEtmp:STD_LOGIC_VECTOR(7downto0);BEGINIFclrn='0'THENtmp:="00000000";ELSEIFclk'eventandclk='1'THENIFtmp="11111111"THENtmp:="00000000";ELSEtmp:=tmp+1;ENDIF;I

6、Ftmp<"10000000"THENf<='1';ELSEf<='0';ENDIF;ENDIF;ENDIF;ENDPROCESS;PROCESS(clk,f)BEGINIFclk'eventandclk='1'THENIFf='1'THENq<="11111111";ELSEq<="00000000";ENDIF;ENDIF;ENDPROCESS;ENDa;2.3正弦波模块该模块部分VHDL源程序如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.

7、ALL;ENTITYsinISPORT(clk,clrn:INSTD_LOGIC;q:OUTINTEGERRANGE255DOWNTO0);ENDsin;ARCHITECTUREAOFsinISBEGINPROCESS(clk,clrn)VARIABLEtmp:INTEGERRANGE63DOWNTO0;BEGINIFclrn='0'THENq<=0;tmp:=0;ELSEIFclk'EVENTANDclk='1'THENIFtmp=63THENtmp:=0;ELSEtmp:=tmp+1;ENDIF;CASETMPISWHEN00=>

8、q<=255;WHEN01=>q<=254;WHEN02=>q<=252;WHEN03=>q<=249;WHEN04=>q<=245;WHEN05=>q<=239;WHEN06=>q<=233;WHEN07=>q<=22

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。