基于VHDL语言的简易信号发生器
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.锯齿波的存储数据与三角波类似。
基于_VHDL_的函数信号发生器的设计毕业设计

毕业论文基于 VHDL 的函数信号发生器的仿真设计毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:日期:年月日导师签名:日期:年月日注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
基于vhdl的正负脉宽数控调制信号发生器的设计

基于VHDL的正负脉宽数控调制信号发生器的设计1. 引言正负脉宽数控调制信号发生器是一种常用的电子设备,用于产生特定频率和幅度的调制信号。
在很多应用中,如通信系统、音频处理等领域都需要使用到这种信号发生器。
本文将介绍基于VHDL语言实现正负脉宽数控调制信号发生器的设计。
2. 设计目标设计一个能够产生正负脉宽数控调制信号的电路,具体要求如下: - 支持设置输出频率范围; - 支持设置输出幅度范围; - 支持设置占空比范围; - 输出波形应为可调节幅度和频率的方波。
3. 设计思路基于VHDL语言实现正负脉宽数控调制信号发生器需要以下步骤: 1. 定义输入和输出接口; 2. 设计主模块,包括时钟分频模块、方波生成模块、幅度和频率控制模块; 3. 实现各个模块,并进行仿真验证; 4. 进行综合和布局布线操作; 5. 下载到目标设备进行测试。
4. 设计细节4.1 输入和输出接口正负脉宽数控调制信号发生器的输入和输出接口如下: - 输入接口: - 频率设置:用于设置输出频率范围; - 幅度设置:用于设置输出幅度范围; - 占空比设置:用于设置占空比范围。
- 输出接口: - 正负脉冲信号:产生正负脉宽数控调制信号。
4.2 主模块设计主模块是整个电路的核心,包括时钟分频模块、方波生成模块和幅度和频率控制模块。
4.2.1 时钟分频模块时钟分频模块用于产生时钟信号,通过对输入的时钟信号进行分频来实现不同的输出频率。
可以使用计数器来实现分频功能,具体步骤如下: 1. 接收输入的时钟信号; 2. 设置计数器初始值为0; 3. 每次接收到时钟信号后,计数器值加1; 4. 当计数器值达到设定值时,产生一个输出脉冲,并将计数器重置为0。
4.2.2 方波生成模块方波生成模块根据输入的时钟信号和占空比设置产生正负脉宽数控调制信号。
具体步骤如下: 1. 接收时钟信号和占空比设置; 2. 根据占空比设置,将时钟信号分为高电平和低电平两个阶段; 3. 在高电平阶段输出高电平信号,在低电平阶段输出低电平信号。
基于vhdl 的简单信号发生器的设计资料

目录设计任务及要求 (1)1、设计目的 (2)2、设计的主要内容和要求 (2)3、整体设计方案 (2)4、方案选择 (3)5、具体实现设计 (4)5.1正弦波的波形的产生 (4)5.2四种LPM_ROM的调用 (8)5.3四种波形的输出选择 (9)5.4 输出频率的选择 (9)5.5 数码管频率显示 (10)5.6 D/A的控制 (10)6、引脚锁定系统仿真和下载测试 (10)6.1 LPM_ROM的仿真 (10)6.2 引脚设置 (11)6.3系统总逻辑仿真(基于signaltap) (11)7、使用说明 (12)7.1 各相关元件符号名称 (12)7.2 使用方法 (12)8、总结 (13)参考文献 (13)《VHDL与数字系统设计》课程设计设计题目: 简单信号发生器的设计院系: 电子信息与电气工程系专业: 电子科学与技术班级: 电科学生姓名:学号:指导教师:201年月日设计任务及要求本课程设计主要是利用VHDL语言设计一个信号发生器,要求实现以下功能:1.信号发生器的控制模块可以用数据选择器实现,用4选1数据选择器实现对四种信号的输出进行选择。
2.根据输入信号的选择可以产生周期性输出正弦波、方波、三角波、锯齿波四种波形信号。
3.将波形数据送入D/A转换器,将数字信号转换为模拟信号输出,用示波器测试D/A转换器的输出,可以观测到4种信号的输出。
4.实现根据不同输入输出不同频率输出的功能,并且能把频率显示到数码管上。
5.实现多种波形的叠加功能。
6.实现波形幅度的增加功能。
7.上面的1,2,3这三点要求是基本要求,而4,5,6是本次课程设计的发挥部分。
1、设计目的1) 掌握使用EDA工具设计信号发生器系统的设计思路和设计方法,体会使用EDA综合过程中电路设计方法和设计思路的不同,理解层次化设计理念。
2) 熟悉在Quartus II环境中,用文本输入方式与原理图输入方式完成电路的设计,同时掌握使用这两种方式相结合的EDA设计思路。
FPGA VHDL 简易波形发生器 简易信号发生器 EDA课设

简易信号发生器1引言信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。
它能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波等,在电路实验和设备检测中具有十分广泛的用途。
例如在通信、广播、电视系统中,都需要射频(高频)发射,这里的射频波就是载波,把音频(低频)、视频信号或脉冲信号运载出去,就需要能够产生高频的振荡器。
在工业、农业、生物医学等领域内,如高频感应加热、熔炼、淬火、超声诊断、核磁共振成像等,都需要功率或大或小、频率或高或低的信号发生器。
本设计采用FPGA来设计制作多功能信号发生器。
该信号发生器可以产生锯齿波、三角波、方波等波形。
2 FPGA简介FPGA(Field-Programmable Gate Array)即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
与传统们阵列和掩模可编程门阵列(MPGA)相比,FPGA具有很多的优点,传统门阵列可以用来设计任何电路,但是只能在工厂中一次性编程,而且还需要针对该电路的特定的掩模。
FPGA是标准通用器件。
使用其代替MPGA,可以将设计时间由几个月缩短至几小时,并且使设计更加简单,从而减少了错误修改和设计指标变更的花费。
FPGA器件在结构上,由逻辑功能块排列为阵列,它的结构可以分为三个部分:可编程快CLB(Configurable Logic Blocks)、可编程I/O模块IOB(Input Block)和可编程内部连线PI(Programmable Interconnect)。
CL B在器件中排列为阵列,周围有环形内部连线,IOB 分布在四周的管脚上。
FPGA也存在缺点,FPGA中,每个可编程的点都有电阻和电容。
电阻和电容的使用减慢了信号的传输速度,所以FPGA的速度比传统门阵列要低,而且,FPGA中互联延迟是不可预测的。
基于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]。
第8章应用VHDL语言方法设计简易正弦波信号发生器
第8章应⽤VHDL语⾔⽅法设计简易正弦波信号发⽣器第8章应⽤VHDL语⾔⽅法设计简易正弦波信号发⽣器【要求】掌握运⽤VHDL语⾔设计正弦波形发⽣器的基本⽅法【知识点】理解函数发⽣器的含义理解VHDL设计正弦波形发⽣器理解FPGA对D/A的接⼝和控制技术【重点和难点】VHDL设计正弦波形发⽣器FPGA对D/A的接⼝和控制技术§8.1 ⼯作任务的陈述与背景⼀、⼯作任务⽤VHDL语⾔⽅法设计⼀个正弦波形发⽣器。
基本要求:①学习VHDL设计正弦波形发⽣器;②掌握FPGA对D/A的接⼝和控制技术。
完成波形发⽣器的设计、仿真测试及实验系统上的硬件测试。
⼆、任务背景⾃20世纪60年代以来信号发⽣器有了迅速的发展,出现了函数发⽣器。
作为电⼦系统的重要组成部分,它⼴泛地应⽤在电⼦技术实验、⾃动控制系统和其他科研领域。
早期的信号发⽣器多采⽤模拟电⼦技术,电路形式有采⽤运放及分离元件构成,也有采⽤单⽚集成函数发⽣器专⽤芯⽚。
但采⽤模拟电路组成的函数信号发⽣器,⼀般可靠性较差,频率输出精度、稳定度低,调节不够精确,设计过程复杂、困难,功能不易扩展,尤其对任意波信号产⽣较为困难,难以满⾜科研和⾼精度实验的需要。
现代⾼精度函数发⽣器设计采⽤了EDA 技术,不但⼤⼤缩短了开发研制周期,提⾼了设计效率,输出信号频率精度和稳定度有很⼤提升,⽽⽬使系统具有结构紧读、设计灵活、实现简单、性能稳定的特点。
本章着重介绍采⽤EDA技术,应⽤VHDL语⾔,在ALTERA公司的QuartusⅡ软件环境下,完成频率可调的正弦波发⽣器的程序设计过程,并进⾏逻辑综合、仿真和硬件下载,产⽣正弦波信号。
§8.2 完成⼯作任务的引导⼀、资讯要完成本任务,需要了解以下⽅⾯的知识。
1.函数(波形)信号发⽣器的定义和作⽤函数(波形)信号发⽣器能产⽣某些特定的周期性时间函数波形(C n1,弦波、⽅波、⼆⾓波、锯齿波和脉冲波等)信号,频率范围可从⼏个微赫到⼏⼗兆赫。
VHDL语言正弦波信号发生器设计
AS正弦波信号发生器设计一、实验内容1•设计一正弦信号发生器,采用ROM进行一个周期数据存储,并通过地址发生器产生正弦信号。
(ROM : 6位地址8位数据;要求使用两种方法:VHDL 编程和LPM)2•正弦信号六位地址数据128,140,153,165,177,188,199,209, 219,227,235, 241,246,250,253,255,255,254,252,248,244,238,231,223,214,204,194,183,171,159,147,134,121,109,96,84,72,61,51,41,32,24 ,17,11,7, 3 ,1,0,0,2,5,9,1420,28,36,46,56,67,78,90,102,115,127 。
二、实验原理正弦波信号发生器是由地址发生器和正弦波数据存储器ROM两块构成,输入为时钟脉冲,输出为8位二进制。
1.地址发生器的原理地址发生器实质上就是计数器,ROM勺地址是6位数据,相当于64位循环计数器。
2•只读存储器ROM的设计(1)、VHDL编程的实现①基本原理:为每一个存储单元编写一个地址,只有地址指定的存储单元才能与公共的I/O相连,然后进行存储数据的读写操作。
②逻辑功能:地址信号的选择下,从指定存储单元中读取相应数据。
addrp^O] data[7,.O] —rI II- Ii—en ■in st⑵、基于LPM宏功能模块的存储器的设计①LPM : Library of Parameterized Modules可参数化的宏功能模块库。
②Quartus II提供了丰富的LPM库,这些LPM函数均基于Altera器件的结构做了优化处理。
③在实际的工程中,设计者可以根据实际电路的设计需要,选择LPM库中适当的模块,并为其设置参数,以满足设计的要求,从而在设计中十分方便的调用优秀的电子工程技术人员的硬件设计成果。
1.基于VHDL S程的设计在地址信号的选择下,从指定存储单元中读取相应数据系统框图如下:FPGA屢理框團2. 基于LPM宏功能模块的设计LPM宏功能具有丰富的由优秀的电子工程技术人员设计的硬件源代码可供调用,我们只需要调用其设计的模块并为其设计必要的参数即可。
基于VHDL的PWM信号发生器的设计论文
Yi bin University EDA技术及应用课程设计报告题目基于VHDL的PWM信号发生器系别物理与电子工程学院专业电子信息科学与技术学生姓名学号班级2013 年 12月 21日摘要本次课程设计是基于VHDL的PWM信号发生器,PWM信号发生器应用所学的数字电路和模拟电路的知识进行设计。
在设计过程中,所有电路仿真均基于Quartus II 9.1仿真软件。
本课程设计介绍了PWM 信号发生器的设计方案及其基本原理,并着重介绍了PWM信号发生器各单元电路的设计思路,原理及仿真,整体电路的的工作原理,控制器件的工作情况。
设计共有三大组成部分:一是原理电路的设计,本部分详细讲解了电路的理论实现,是关键部分;二是性能测试,这部分用于测试设计是否符合任务要求。
三是是对本次课程设计的总结。
关键词: PWM信号发生器仿真设计目录第1章绪论1.1 EDA 和QuartusⅡ的简介及起源 (1)1.2 EDA的优势及发展趋势 (1)第2章系统设计思路 (3)第3章可自加载加法计数器的设计 (4)第4章信号发生器设计过程 (6)第5章软件仿真5.1 Quartus Ⅱ软件简介 (8)5.2 用Quartus Ⅱ的仿真步骤和图像 (9)5.3 逻辑综合结果 (12)第6章设计总结 (13)第7章参考文献 (15)附录设计程序 (16)第1章绪论1.1 EDA和QuartusⅡ的简介及起源EDA是英文“electronic design automation”(电子自动化设计)的缩写,EDA技术是20世纪90年代迅速发展起来的,是现代电子设计的最新技术潮流,是综合现代电子技术和计算机技术的最新研究成果,是电子线路设计与分析的一门技术。
EDA包括电子线路的设计、计算机模拟仿真和电路分析及印制电路板的自动化设计三个方面的内容。
随着可编程逻辑器件迅速发展,出现了功能强大的全新的EDA工具。
具有较强描述能力的硬件描述语言(VHDL、Verilog、HDL)及高性能综合工具的使用,使过去单功能电子产品开发转向系统级电子产品开发。
基于VHDL的2FSK的信号发生器
通信原理课程设计报告题目基于VHDL的2FSK的信号发生器学院电子信息工程学院专业电子信息工程(本)学生姓名XXX学号XXX 年级XXX 指导教师XX 职称XXX二〇一〇年十二月基于VHDL的2FSK信号发生器摘要:二进制频移键控技术(2FSK)具有方法简单,易于实现,解调不需恢复本地载波,可以异步传输,抗噪声和抗衰落性能较强等优点。
本文基于VHDL和MAX+plusⅡ软件开发平台,利用VHDL 硬件描述语言,自上而下地逐层完成相应的描述、综合、优化、仿真与验证,直到生成器件2FSK信号发生器的设计,介绍了具体设计方法和仿真分析结果。
上述设计除了系统行为和功能描述以外,其他所有的功能都是由计算机自动完成。
该设计容量大、速度快、体积小,在电子行业应用中,占有极其重要的地位。
关键词:2FSK;VHDL;信号发生器目录第1章绪论 (1)1.1选题背景 (1)1.2研究的主要内容 (1)第2章 2FSK信号发生器的原理 (2)2.12FSK信号的调制与解调 (2)2.22FSK信号产生原理 (2)2.3VHDL语言特点 (3)2.4VHDL语言结构 (3)第3章 2FSK信号发生器建模与程序设计 (5)3.12FSK的核心程序段 (5)3.22FSK信号发生器各模块 (6)3.2.1 分频器 (6)3.2.2 m序列产生器 (7)3.2.3 跳变检测 (7)3.2.4 正弦信号的产生 (8)3.3仿真波形及分析 (8)结论 (10)参考文献 (11)附录 (12)第1章绪论1.1 选题背景随着电子计算机的普及,数据通信技术正在迅速发展。
数字频率调制是数据通信中常见的一种调制方式。
二进制频移键控方法简单,易于实现,解调不需恢复本地载波,支持异步传输,抗噪声和抗衰落性能也较强。
因此2FSK调制技术在通信行业得到了广泛的应用,并且主要适用于低、中速数据传输。
2FSK是用两个不同频率的正弦波信号构成,分别表示基带信号的0和1,通过发送这两正弦信号来实现对基带信号的传输。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于V H D L语言的简易信号发生器Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998基于VHDL语言的简易信号发生器1 设计方案1.1 系统功能要求函数信号发生器是一种能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波等波形的电路。
函数信号发生器在电路实验和设备检测中具有十分广泛的用途。
现在我们通过对函数信号发生器的原理以及构成设计一个能变换出三角波、正弦波、方波的简易发生器。
1. 2 总体框图本设计由信号产生,信号选择,信号控制输出三大模块组合而成。
其中信号产生模块有:三角波模块、方波模块、正弦波模块。
本设计采用K0~K2这三个按键为信号选择开关,选择信号产生模块输出的信号。
其控制模块(SIG_CONTROL)是由数据选择器实现对以上三种信号的选择,并产生相应波形。
系统顶层设计图如图所示:图中左边为三个输入信号k0,k1,k2,clk,clrn; 信号选择开关,时钟信号和复位开关。
主要模块有:三角波信号(delta)、方波信号(square)、正弦信号的发生器(sin)各一个,数据选择器(sig_control)。
2 模块功能设计2. 1 三角波模块该模块部分VHDL 源程序如下:LIBRARY IEEE;USE delta ISport(clk,clrn:IN STD_LOGIC;q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END delta;ARCHITECTURE a OF delta ISBEGINPROCESS(clk,clrn)VARIABLE tmp:STD_LOGIC_VECTOR(7 DOWNTO 0); VARIABLE f:STD_LOGIC;BEGINIF clrn='0' THEN tmp:="00000000";ELSIF clk'EVENT AND clk='1' THENIF f='0' THENELSE tmp:=tmp+1;END IF;ELSEIF tmp ="00000001" THEN tmp:="00000000"; f:='0'; ELSE tmp:=tmp-1;END IF;END IF;END IF;q<=tmp;END PROCESS;END a;2. 2 方波模块该模块部分VHDL 源程序如下:LIBRARY IEEE;USE square IS PORT(clk,clrn: IN STD_LOGIC;q: OUT STD_LOGIC_VECTOR(7 downto 0)); END square; ARCHITECTURE a OF square ISSIGNAL f: STD_LOGIC;BEGIN PROCESS(clk, clrn)VARIABLE tmp:STD_LOGIC_VECTOR(7 downto 0); BEGIN IF clrn='0' THEN tmp:="00000000";ELSE IF clk'event and clk='1' THENELSE tmp:=tmp+1;END IF;ELSE f<='0';END IF; END IF;END IF;END PROCESS;PROCESS(clk,f)BEGINIF clk'event and clk='1' THENELSE q<="00000000";END IF;END IF;END PROCESS;END a;2. 3 正弦波模块该模块部分VHDL 源程序如下:LIBRARY IEEE;USEUSEENTITY sin ISPORT (clk,clrn:IN STD_LOGIC;q:OUT INTEGER RANGE 255 DOWNTO 0);END sin;ARCHITECTURE A OF sin ISBEGINPROCESS(clk,clrn)VARIABLE tmp:INTEGER RANGE 63 DOWNTO 0;BEGINIF clrn='0' THEN q<=0; tmp:=0;ELSEIF clk'EVENT AND clk='1' THENIF tmp=63 THEN tmp:=0;ELSE tmp:=tmp+1;END IF;CASE TMP ISWHEN 00=>q<=255; WHEN 01=>q<=254; WHEN 02=>q<=252;WHEN 03=>q<=249; WHEN 04=>q<=245;WHEN 05=>q<=239;WHEN 06=>q<=233; WHEN 07=>q<=225; WHEN 08=>q<=217; WHEN 09=>q<=207; WHEN 10=>q<=197; WHEN 11=>q<=186; WHEN 12=>q<=174; WHEN 13=>q<=162; WHEN 14=>q<=150; WHEN 15=>q<=137; WHEN 16=>q<=124; WHEN 17=>q<=112; WHEN 18=>q<=99; WHEN 19=>q<=87; WHEN 20=>q<=75; WHEN 21=>q<=64; WHEN 22=>q<=53; WHEN 23=>q<=43; WHEN 24=>q<=34; WHEN 25=>q<=26; WHEN 26=>q<=19; WHEN 27=>q<=13;WHEN 28=>q<=8; WHEN 29=>q<=4;WHEN 30=>q<=1;WHEN 31=>q<=0;WHEN 32=>q<=0; WHEN 33=>q<=1;WHEN 34=>q<=4;WHEN 35=>q<=8;WHEN 36=>q<=13;WHEN 37=>q<=19;WHEN 38=>q<=26;WHEN 39=>q<=34;WHEN 40=>q<=43;WHEN 41=>q<=53; WHEN 42=>q<=64; WHEN 43=>q<=75;WHEN 44=>q<=87;WHEN 45=>q<=99; WHEN 46=>q<=112; WHEN 47=>q<=124; WHEN 48=>q<=137;WHEN 49=>q<=150; WHEN 50=>q<=162;WHEN 51=>q<=174; WHEN 52=>q<=186; WHEN 53=>q<=197;WHEN 54=>q<=207; WHEN 55=>q<=217; WHEN 56=>q<=225; WHEN 57=>q<=233;WHEN 58=>q<=239; WHEN 59=>q<=245;WHEN 60=>q<=249; WHEN 61=>q<=252; WHEN 62=>q<=254;WHEN 63=>q<=255;WHEN OTHERS=>NULL; END CASE;END IF;END IF;END PROCESS;END a;2. 4 数据选择器模块该模块部分VHDL 源程序如下:LIBRARY IEEE;USE sig_control ISPORT(delta,square,sin:IN STD_LOGIC;d0,d1,d2:IN STD_LOGIC_VECTOR(7 DOWNTO 0);q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END sig_control;ARCHITECTURE behave OF sig_control ISSIGNAL sel:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINsel<=delta&square&sin;PROCESS(sel)BEGINCASE sel ISWHEN"100"=>q<=d0;WHEN"010"=>q<=d1;WHEN"001"=>q<=d2;WHEN OTHERS=>NULL;END CASE;END PROCESS;END behave;3仿真波形及分析各部分模块完成后, 用Quartus 对程序编译、仿真、得到的仿真波形,各模块仿真波形及顶层仿真波形如下:3.1三角波模块仿真clk:时钟信号clrn:复位信号低电平清零k0k1k2=100,控制输出三角波。
Q[7..0]输出0—255—0三角波。
3.2方波模块仿真clk:时钟信号clrn:复位信号低电平清零k0k1k2=010,控制输出三角波。
Q[7..0]输出0、255、0、255…方波。
3.3正弦模块仿真clk:时钟信号clrn:复位信号低电平清零k0k1k2=001,控制输出三角波。
Q[7..0]输出255—0—255—0半个正弦波。