基于VHDL的方波三角板发生器设计
方波三角波发生器设计

方波三角波发生器设计设计思路:方波和三角波都是周期信号,因此我们可以使用周期信号发生器的原理来设计方波三角波发生器。
具体的设计思路如下:1.方波发生器设计:方波信号由高电平和低电平组成,所以我们需要设计一个产生高电平和低电平的电路。
可以使用一个三极管作为开关来实现方波的产生。
当输入信号为高电平时,三极管导通,输出高电平;当输入信号为低电平时,三极管截止,输出低电平。
2.三角波发生器设计:三角波信号是一个连续上升和下降的斜线信号,所以我们需要设计一个连续改变输出电压的电路。
可以使用一个集成电路比如操作放大器(OP-Amp)作为三角波发生器的核心组件。
使用一个电容和两个电阻来控制输出电压的上升和下降。
设计步骤:1.方波发生器设计:(1)选择一个适当的三极管,根据其参数确定电路中的电阻值。
(2)使用电阻和电源电压来确定三极管的偏置电压。
(3)将输入信号与三极管的基极相连。
(4)根据输入信号的高低电平改变三极管的导通和截止状态,从而实现方波的产生。
2.三角波发生器设计:(1)选择一个合适的操作放大器,根据其参数确定电路中的电阻值。
(2)使用电阻和电源电压来确定操作放大器的工作点。
(3)使用一个电容和两个电阻来控制操作放大器的输出电压的上升和下降。
(4)将操作放大器的输出电压与输入信号相连,并通过电容和电阻控制输出波形。
测试与调节:完成方波和三角波发生器的设计后,可以进行测试和调节,以确保输出信号的准确性和稳定性。
可以使用示波器来观察和测量输出波形,并通过调节电路中的电阻和电容来调节输出波形的频率和幅度。
此外,还可以根据需要进行性能优化和稳定性测试,以确保方波三角波发生器的正常工作。
总结:本文介绍了方波三角波发生器的设计思路和步骤。
方波三角波发生器的设计涉及了电路设计、参数选择、测试和调节等方面的知识,需要对电路原理和信号处理有一定的了解和掌握。
通过设计方波三角波发生器,我们可以产生方波和三角波信号,为实际应用提供了便利。
VHDL语言设计信号发生器实验报告

实验四用VHDL设计多功能信号发生器一、设计任务基于《VHDL语言》,通过给定的仪器(EDA6000试验箱)设计一个多功能信号发生器,要求:(1)能产生周期性正弦波、方波、三角波、锯齿波以及用户自己编辑的特定波形(选作);(2)输出信号的频率范围为100Hz~200KHz,且输出频率可以调节;(3)具有显示输出波形、频率的功能。
(选作)二、系统顶层框图弦波的数字幅度信息,每个查找表的地址对应正(余)弦波幅度信号,同时输出到数模转换器(DAC)输入端,DAC输出的模拟信号经过低通滤波器(LPF),可以得到一个频谱纯净的正(余)弦波。
二、设计步骤用VHDL语言结合原理图设计实现一个函数信号发生器,输出正弦波、方波和三角波三种波形。
将频率控制、分频、三角波、正弦波、方波发生邓各个模块分别用VHDL语言编程为一个子程序,并把每一个模块转换成图形文件,然后在原理图编辑框调用这些图形模块,连接电路如上图系统顶层框图所示。
通过按键1到按键8控制频率调节f〔7...0〕,用按键6、按键7、按键8控制dlt 、sin 、sqr 波形选通,最后把八位输出接DAC0832通过D/A 转换,从示波器上就能看到波形输出。
按下不同的按键输出不同的波形及频率。
三、系统设计(1)数控分频器模块在时钟的作用下,通过预置分频数DIN ,来改变输出频率。
假如分频系数为N ,波形存储模块存储一个周期的波形,实验里按照一个周期波形采样64个点存储在波形存储模块里。
则输出频率N f f clkout .64=(2).数据存储模块 (存储波形数据)数据存储模块主要存的是正弦波、三角波、锯齿波等一个周期的采样点。
三角波模块可设计一个可逆计数器实现,设计时设置一变量作为工作状态标志,在此变量为0时,当检测到时钟的上升沿进行加同一个数操作;为1时,进行减同一个数操作。
DA 转换采用的DA0832,输入有8个数据端,范围是0到255;而且设置64个时钟周期为一个三角波周期,所有每次加、减为8.锯齿波的存储数据与三角波类似。
方波-三角波波形发生器的设计

方波-三角波波形发生器的设计课程设计的目的《计算机电子线路制图课程设计》是学习课程之后的综合性实践教学环节。
目的是通过解决简单的实际问题巩固和加深在《计算机电子线路制图》课程中所学的理论知识和实验技能。
训练学生综合运用学过的电子设计自动化技术基础知识,在教师指导下完成查找资料,选择、论证方案,设计电路,运行仿真,设计印制电路板,分析结果,撰写报告等工作。
使学生初步掌握利用电子设计自动化工具设计电子电路的一般方法步骤,通过理论联系实际提高和培养学生分析、解决实际问题的能力和创新能力,为后续课程的学习、毕业设计和毕业后工作打下一定的基础。
关键词:方波、三角波、积分器、比较器一、设计方案论证1、概述由集成运放构成的方波和三角波发生器的电路形式很多,但通常由滞回比较器和积分电路构成。
按积分电路的不同,又可以分为两种类型:一类是由普通的RC积分电路组成,另一类由恒流充放电的积分电路和滞回比较器组成。
常用的方波和三角波发生电路是由集成运放组成的积分器和滞回比较器组成的,由于采用了由集成运算放大器组成弄鬼的积分器,电容C始终处在恒流充放电状态,使三角波和方波的性能得到很大的改善,不仅能得到线性度较理想的三角波,而且也便于调节振荡频率和幅度。
1.1设计任务:设计制造能产生方波、三角波的波形发生器并制作电路板1.2设计要求:1、频率在200Hz- 2kHz且连续可调2、方波幅值为15V3、三角波幅值为20V4、各种波形幅值均连续可调5、组装和调试设计的电路,使电路产生振荡输出。
频率稳定度较高。
当输出波形稳定且不失真时,测量输出频率的上限和下限。
检验该电路是否满足设计指标,若不满足,改变电路参数值,产生方波、三角波的方案有多种,本次实验主要采用由电压比较器和积分器同时产生方波和三角波。
其中电压比较器产生方波,对其输出波形进行一次积分产生三角波。
该电路的优点是十分明显的:1、线性良好、稳定性好;2、频率易调,在几个数量级的频带范围内,可以方便地连续地改变频率,而且频率改变时,幅度恒定不变;3、三角波和方波在半周期内是时间的线性函数,易于变换其他波形。
基于VHDL语言的简易信号发生器

基于VHDL语言的简易信号发生器1设计方案1.1??系统功能要求函数信号发生器是一种能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波等波形的电路。
函数信号发生器在电路实验和设备检测中具有十分广泛的用途。
现在我们通过对函数信号发生器的原理以及构成设计一个能变换出三角波、正弦波、方波的简易发生器。
1.2??总体框图(。
2??2.1BEGINBEGINIFclrn='0'THENtmp:="00000000";ELSIFclk'EVENTANDclk='1'THENIFf='0'THENIFTHENf:='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;ENDIF;BEGINENDIF;ENDIF;ENDa;2.3LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL; USEIEEE.STD_LOGIC_UNSIGNED.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=>q<=255;WHEN01=>q<=254;WHEN02=>q<=252;WHEN03=>q<=249; WHEN04=>q<=245;WHEN05=>q<=239;WHEN06=>q<=233;WHEN07=>q<=225;ENDIF;ENDIF;ENDa;2.4ENTITYsig_controlISPORT(delta,square,sin:INSTD_LOGIC;d0,d1,d2:INSTD_LOGIC_VECTOR(7DOWNTO0);q:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDsig_control;ARCHITECTUREbehaveOFsig_controlISSIGNALsel:STD_LOGIC_VECTOR(2DOWNTO0);BEGINsel<=delta&square&sin;PROCESS(sel)BEGINCASEselISWHEN"100"=>q<=d0;WHEN"010"=>q<=d1;WHEN"001"=>q<=d2;WHENOTHERS=>NULL;ENDCASE;ENDPROCESS;ENDbehave;3仿真波形及分析各部分模块完成后,用Quartus对程序编译、仿真、得到的仿真波形,各模块仿真波形及顶层仿真波形如下:3.13.23.3clkclrnQ[7..0]。
波形发生器课程设计vhdl

波形发生器课程设计vhdl一、教学目标本课程旨在通过学习VHDL(硬件描述语言),让学生掌握波形发生器的设计与仿真。
通过本课程的学习,学生应能理解VHDL的基本语法和编程技巧,能够运用VHDL设计简单的数字电路,特别是波形发生器。
此外,通过课程实践,培养学生分析问题、解决问题的能力,以及团队合作和沟通交流的能力。
具体来说,知识目标包括:1.掌握VHDL的基本语法和编程技巧。
2.理解波形发生器的工作原理和设计方法。
技能目标包括:1.能够运用VHDL设计简单的数字电路。
2.能够独立完成波形发生器的设计与仿真。
情感态度价值观目标包括:1.培养学生的创新意识和实践能力。
2.培养学生团队合作和沟通交流的能力。
二、教学内容本课程的教学内容主要包括VHDL基本语法、数字电路设计方法和波形发生器的设计与仿真。
1.VHDL基本语法:包括数据类型、信号声明、实体和架构、过程和函数、线网和赋值语句等。
2.数字电路设计方法:包括组合逻辑电路、时序逻辑电路和触发器的设计方法。
3.波形发生器的设计与仿真:包括正弦波、方波、三角波等波形发生器的设计方法,以及相应的仿真测试。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、案例分析法、实验法和讨论法等。
1.讲授法:用于讲解VHDL基本语法和数字电路设计方法。
2.案例分析法:通过分析实际案例,让学生学会波形发生器的设计与仿真。
3.实验法:让学生动手实践,独立完成波形发生器的设计与仿真。
4.讨论法:在课堂上引导学生进行思考和讨论,培养团队合作和沟通交流的能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:1.教材:《数字电路设计与VHDL编程》等。
2.参考书:《VHDL完全学习手册》、《数字电路与逻辑设计》等。
3.多媒体资料:包括PPT课件、教学视频、在线课程等。
4.实验设备:计算机、VHDL仿真软件(如ModelSim)、示波器等。
基于VHDL语言的波形发生器的设计

基于VHDL语言的波形发生器的设计基于VHDL语言的波形发生器的设计利用FPGA芯片信号发生器的设计。
当按下开关1时产生三角波,当按下开关2时产生正弦波,当按下开关3时产生方波。
本次设计采用xilinx公司的ISE设计工具,在zedboard开发板中的xc7z020芯片上用VHDL来实现,并且利用ISE自带的chipscop完成对FPGA内部的信号的读取。
这样的设计具有体积小,修改升级容易等特点。
本设计采用自顶向下、纯文本实现数字时钟的设计、下载和调试。
1 设计原理本设计由信号产生,信号选择,信号控制输出三大模块组合而成。
其中信号产生模块有:三角波模块、方波模块、正弦波模块。
本设计采用K0~K2这三个按键为信号选择开关,选择信号产生模块输出的信号。
(顶层设计的例化语句见附录一)其RTL 图1-1:RTL图1-12主要功能模块u1:square方波产生模块;u2:sin正弦波产生模块;u3:delta三角波产生模块;u4:sig_control数据选择器模块;u5,u6:为使用chipscope所需生成的IP核。
2.1 u1方波产生模块(程序见附录二)产生方波,初始化为幅值225的高电平,每有一次时钟上升沿触发产生一次计数,当计数值达到128时跳到为0的低电平。
利用循环语句不断的产生高低电平的方波输出。
原理如图2-1:方波模块RTL 图2-12.2 u1正弦波产生模块(程序见附录三)功能是产生正弦波,产用信号抽样的原理,在一个正弦信号中等间隔的抽样64点,此64点的幅值作为一个正弦波数据表,每有一次时钟上升沿触发便赋予输出端q一个点的数据,依次赋值64个点的数据便完成一个周期的正弦波的输出。
并利用循环语句不断的产生正弦波的输出。
原理如图2-2:正弦波模块RTL 图2-22.3 u1三角波产生模块(程序见附录四)功能是产生三角波,初始化为幅值为0,每有一次时钟上升沿触发便进行幅值加1,当幅值达到最大255时,每有一次时钟上升沿触发便进行幅值减1,当幅值减为0时完成一个周期的输出。
基于EDA技术的三角波信号发生器

基于EDA技术的三角波信号发生器摘要:信号发生器是科研及工程实践中最重要的仪器之一,以往多用硬件组成,系统结构比较复杂,可维护性和可操作性不佳。
随着计算机技术的发展,信号发生器的设计制作越来越多地使用计算机技术,种类繁多,价格、性能差异很大。
在各种类信号发生器中,三角波信号发生器是最普通的一类。
其原因除了三角信号容易产生,容易描述,还是比较广泛的载波信号。
显然,由于信号发生器的性能,被测器件、设备各项性能参数的测量质量,将直接依赖于信号发生器的性能。
关键词:EDA技术;三角波信号发生器;电路原理图中图分类号:R857,3文献标识码:A文章编号:1672―0407(2011)09―026―141.1本课题目前发展状况在研制、生产、测试和维修各种电子器件、部件以及整机设备时,都需要有信号源,由它产生不同频率、不同波形。
有的将电压、电流信号并加到被测器件、设备上,用其他测量仪器观察、测量被测者的输出响应,以分析确定他们的性能参数。
这种提供测试用电信号的装置,统称为信号发生器,用在电子测量领域,也称为测试信号发生器。
和示波器、频谱分析仪等一样,信号发生器是电子测量领域中最基本、应用最广泛的一类电子仪器。
除了在电子技术尤其是电子测量方面的应用外,信号发生器在其他领域也有很广泛的应用,例如机械部门的超声波探伤,医疗部门的超声波诊断、频谱治疗仪等。
信号发生器是输出供给量的仪器,它产生频率、幅度、波形等主要参数都可调节的信号,有以下作用:1 测元件参数。
如电感,电容的值及品质因数、损耗角等。
2测网络的幅频特性、相频特性。
连续改变信号源的频率,用示波器或电压表测网络的响应,属于稳态激励、点频测试。
3测接收机。
信号源发出射频已调波,测接收机的灵敏度、选择性、AGC范围等指标。
4测量网络的瞬态响应。
用方波或窄带脉冲激励,测网络的响应、冲击响应、时间等。
5校准仪表。
输出频率、幅度准确的信号,校准仪表的衰减器、增益及刻度。
基于VHDL的方波三角板发生器设计

摘要:随着EDA技术以及大规模集成电路技术的迅猛发展,波形发生器的各方面性能指标都达到了一个新的水平。
采用CPLD/FPGA器件在QuartuesII设计环境中用VHDL语言完成的波形发生器具有频率稳定性高,可靠性高,输出波形稳定等特点。
本文介绍了基于EDA技术的波形发生器的研究与设计。
关键词:VHDL,原理图输入,方波,三角波1实验目的本设计主要是利用VHDL语言设计一个多功能信号发生器,根据输入信号的选择可以产生方波与三角波。
2实验原理(1)方案论证方案一:本系统由FPGA(可编程门阵列),数模转换,时钟(提供clk信号)等组成。
全部为FPGA试验箱所有,不需要增加任何器件。
用FPGA产生的255—0的计数值输入到DAC0832中,将产生对应的模拟信号。
本系统采用的是软硬件结合的方法。
由于一个周期内的任意波形的离散样点数对硬件实现的复杂性直接产生影响,因此,为了简化硬件存储器件的规模,取64个样点进行讨论。
具体做法是先对一个周期进行64点采样,然后依次存于ROM中,再以fs频率给出地址码,控制存储器周期的读出数据,并经D、A转换和模拟放大,便能得到一定的频率的周期信号。
因此周期信号的频率为fo=fs/M.其中M为采样点个数,本设计中取为64;fs为存储器读出频率。
显然,通过改变读出频率fs,便可获得不同频率的周期信号fo.。
原理说明:完整的波形发生器由三部分组成:由计数器构成的地址信号发生器、波形数据ROM和D/A。
在FPGA的顶层文件中,计数器通过外来控制信号和高速时钟信号向波形数据ROM发出地址信号,输出波形的批评你率由发出的地址信号的速度决定;当以固定的频率扫描输出地址时,输出波形是固定频率,而当以周期性时变方式扫描输出地址时,则输出波形为扫频信号。
波形数据ROM中存有发生器的波形数据,如正弦波或者三角波数据等。
当接受来自FPGA的地址信号后,将从数据线输出相应的波形数据。
波形数据ROM可以由多种方式实现,如在FPGA外面外接普通ROM或者由FPGA中的EAB模块相当,即利用LPM-ROM来实现。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要:随着EDA技术以及大规模集成电路技术的迅猛发展,波形发生器的各方面性能指标都达到了一个新的水平。
采用CPLD/FPGA器件在QuartuesII设计环境中用VHDL语言完成的波形发生器具有频率稳定性高,可靠性高,输出波形稳定等特点。
本文介绍了基于EDA技术的波形发生器的研究与设计。
关键词:VHDL,原理图输入,方波,三角波1实验目的本设计主要是利用VHDL语言设计一个多功能信号发生器,根据输入信号的选择可以产生方波与三角波。
2实验原理(1)方案论证方案一:本系统由FPGA(可编程门阵列),数模转换,时钟(提供clk信号)等组成。
全部为FPGA试验箱所有,不需要增加任何器件。
用FPGA产生的255—0的计数值输入到DAC0832中,将产生对应的模拟信号。
本系统采用的是软硬件结合的方法。
由于一个周期内的任意波形的离散样点数对硬件实现的复杂性直接产生影响,因此,为了简化硬件存储器件的规模,取64个样点进行讨论。
具体做法是先对一个周期进行64点采样,然后依次存于ROM中,再以fs频率给出地址码,控制存储器周期的读出数据,并经D、A转换和模拟放大,便能得到一定的频率的周期信号。
因此周期信号的频率为fo=fs/M.其中M为采样点个数,本设计中取为64;fs为存储器读出频率。
显然,通过改变读出频率fs,便可获得不同频率的周期信号fo.。
原理说明:完整的波形发生器由三部分组成:由计数器构成的地址信号发生器、波形数据ROM和D/A。
在FPGA的顶层文件中,计数器通过外来控制信号和高速时钟信号向波形数据ROM发出地址信号,输出波形的批评你率由发出的地址信号的速度决定;当以固定的频率扫描输出地址时,输出波形是固定频率,而当以周期性时变方式扫描输出地址时,则输出波形为扫频信号。
波形数据ROM中存有发生器的波形数据,如正弦波或者三角波数据等。
当接受来自FPGA的地址信号后,将从数据线输出相应的波形数据。
波形数据ROM可以由多种方式实现,如在FPGA外面外接普通ROM或者由FPGA中的EAB模块相当,即利用LPM-ROM来实现。
D/A转换器负责将ROM输出的数据转换成模拟信号,经过滤波电路后输出。
输出波形的频率上限与D/A转换器件的转换速度有重要关系,我们的试验箱上用的是DAC0832。
DAC0832是8位并行、中速(其转换时间1us)、电流型D/A转换芯片。
DAC0832内部由三部分组成,“8位输入寄存器”用于存放CPU送来的数字量,使输入数字量得到缓冲和锁存,由LE1加以控制。
“8位DAC寄存器”用于存放待转换的数字量,由LE2控制。
“8位D/A 转换电路”由8位T 型网路和电子开关组成,电子开关受“8位DAC 寄存器”输出控制,T 型电阻网路能输出与数字量成正比的模拟电流。
因此,DAC0832通常需要外接运放才能得到模拟输出电压。
DAC0832共有20条引脚,双列直插式封装。
⑴ 数字输入线DI7~DI0(8条) DI7~DI0常和CPU 数据总线相连,用于输入CPU 送来的待转换数字里,DI7为最高位。
⑵ 控制线(5条) CS 为片选线。
当 CS 为低电平时,本片被选中工作;当CS 为高电平时,本片不被选中工作。
⑶ 输出线3条 fb R 为运算放大器的反馈线,常接到运放的输出端。
out1I 和out2I 为两条模拟电流输出线。
out1I +out2I 为一常数。
⑷ 电源线(4条) VCC 为电源输入线,可在+5~+15V 范围捏;REF V 为参考电压,一般在-10~+10V 范围内,由稳压电源提供;DGND 为数字地线;AGND 为模拟量地线。
通常接在一起。
波形发生器电路系统结构图:图一缺点:此方案虽思路简洁 、明朗。
但设计繁琐,程序复杂。
方案二:VHDL (Very High Speed Integrated Circuit Hardware Description Language,超高速集成电路硬件描述语言)诞生于1982年,是由美国国防部开发的一种快速设计电路的工具,目前已经成为IEEE (The Institute of Electrical and Electronics Engineers )的一种工业标准硬件描述语言。
相比传统的电路系统的设计方法,VHDL具有多层次描述系统硬件功能的能力,支持自顶向下(Top to Down)和基于库(LibraryBased)的设计的特点,因此设计者可以不必了解硬件结构。
从系统设计入手,在顶层进行系统方框图的划分和结构设计,在方框图一级用VHDL对电路的行为进行描述,并进行仿真和纠错,然后在系统一级进行验证,最后再用逻辑综合优化工具生成具体的门级逻辑电路的网表,下载到具体的CPLD器件中去,从而实现可编程的专用集成电路(ASIC)的设计。
方波发生器是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。
随着复杂可编程逻辑器件(CPLD)的广泛应用,以EDA工具作为开发手段,运用VHDL语言。
将使整个系统大大简化。
提高整体的性能和可靠性。
优点:采用VHDL可以使整个系统大大简化,不仅能够测量正弦波、方波和三角波等信号的频率,而且还能对其他多种物理量进行测量。
具有体积小、可靠性高、功耗低的特点。
综上所述:优先选择方案二。
3选择器材(1)EDA实验箱一台(2)含有QuartusⅡ软件的计算机一台(3)示波器一台(4)导线若干4功能模块的划分信号发生器的结构框图如图2所示:图2 信号发生器的结构框图其中信号产生模块将产生所需的各种信号,信号发生器的控制模块可以用数据选择器实现,用2选1数据选择器实现对2种信号的选择。
最后将波形数据送入D/A转换器,将数字信号转换为模拟信号输出。
用示波器测试D/A转换器的输出,可以观测到2种信号的输出。
4.1方波的实现程序通过reset信号控制方波,当reset信号为1时,选通输出,为0时,有清零功能。
并且每128个脉冲翻转一次,实现0,1的交替。
程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY xwhappy ISPORT( CLK ,RESET :IN STD_LOGIC;q :OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END xwhappy;ARCHITECTURE RTL OF xwhappy ISSIGNAL A : STD_LOGIC;BEGINPROCESS(CLK,reset)V ARIABLE TMP : STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINIF reset ='0' THENA <='0';ELSIF RISING_EDGE(CLK) THENIF TMP ="11111111" THENTMP := "00000000";ELSETMP :=TMP +1;END IF;IF TMP < "10000000" THENA <= '1';ELSEA <= '0';END IF;END IF;END PROCESS;PROCESS(CLK ,A)BEGINIF RISING_EDGE(CLK) THENIF A = '1' THENq <="11111111";ELSEq <="00000000";END IF;END IF;END PROCESS;END RTL;波形仿真图如下:方波发生器模块:4.2三角波的实现程序通过reset信号控制,当reset信号为1时,选通输出,为0时,有清零功能。
从零开始,并且在时钟脉冲的上升沿到来之后开始计数,每个时钟脉冲加1或减1,从0加到255,再从255 减到0,实现数字加1或减1的变换,从而实现三角波。
程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity delta isport(clk, reset: in std_logic;q: out std_logic_vector(7 downto 0));end delta;architecture behave of delta isbeginprocess(clk, reset)variable tmp: std_logic_vector(7 downto 0);variable a: std_logic;beginif reset='0' thentmp:="00000000";elsif clk'event and clk='1' thenif a='0' thenif tmp="11111110" thentmp:="11111111";a:='1';elsetmp:=tmp+1end if;elseif tmp="00000001" thentmp:="00000000";a:='0';elsetmp:=tmp-1end if;end if;end if;q<=tmp;end process;end behave;波形仿真图如下:三角波发生器模块:4.3二选一数据选择器的实现本程序通过0与1的选择来选通输出,当输入为0时,选通d0端口,及三角波输出,当输入为1时,选通d1端口,实现方波输出。
程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY select2_1 ISPORT (sel:IN BIT;d0,d1:in std_logic_vector(7 downto 0);q:OUT std_logic_vector(7 downto 0));END ENTITY select2_1;ARCHITECTURE one OF select2_1 ISBEGINPROCESS(sel)BEGINIF sel='0' THENq<=d0;ELSEq<=d1;end if;end process;end ARCHITECTURE one;波形仿真图如下:二选一数据选择器模块:4.4多波形信号发生器新建一工程,加载上述模块,利用原理图输入法生成整体多波形信号发生器。