+基于FPGA的多功能信号发生器
- 格式:doc
- 大小:78.00 KB
- 文档页数:9
·16·仪表技术2007年第8期基于FPGA技术的多功能DDS信号发生器设计蔡丽1,翟小东1,高云红2(1.中国矿业大学信电学院,江苏徐州221008;2.沈阳航空工业学院自动控制系,辽宁沈阳110034)摘要:介绍DDS的基本理论及新型FPGA器件(EPlKl0)的特点,并结合EPIKIO对DDS信号发生器的设计过程及优化方案进行论述。
最终实现频率、相位、复合渡形皆可调节的直接数字合成的信号发生器。
关键词:直接数字合成器;单片机;FPGA;复合波形中图分类号:TM930文献标识码:B文章编号:1006—2394(2007)08—0016—02ADesignofMulti-purposeDDSSignalGeneratorBasedonFPGATechnologyCAILil.ZHAIXiao.don91,GAOYun.hon92(1.CollegeofInformationandElectricalEngineeringofCUMT,Xuzhou221008,China;2.DepartmentofAutomaticControl,ShenyangInstituteofAeronauticalEngineering,Shenyang110034,China)Abstract:ThebasictheoryofDigitalDirectSynthesizerandmainpointofnewFPGAdeviceEPlK10,andhowtoimplementtheDDSsignalgeneratordesignwithinEPlK10introducedinthispaper.TheDDSsignalgeneratorwhichcanadjustsignalphase,signalfrequencyandcomplexwaveisdesigned.Keywords:directdigitalsynthesizer;singlechipmicrocomputer;FPGA;complexwave1多功能直接数字频率合成DDS原理假设正弦信号的表达式为如下:Y=Asin(p+妒o)(1)Y=Asin(2rrfi+够o)=Asin2-rr(fi+90/2曩-)(2)式(1)中9为正弦函数的相位,妒。
基于FPGA的信号发生器摘要本次设计课题为应用VHDL语言及MAX+PLUS II软件提供的原理图输入设计功能,结合电子线路的设计加以完成一个可应用于数字系统开发或实验时做输入脉冲信号或基准脉冲信号用的信号发生器,它具结构紧凑,性能稳定,设计结构灵活,方便进行多功能组合的特点,经济实用,成本低廉。
具有产生三种基本波形脉冲信号(正弦波、矩形波和三角波),以及三次(及三次以下)谐波与基波的线性组合脉冲波形输出,且单脉冲输出脉宽及连续脉冲输出频率可调,范围从100HZ到1kHZ,步进为100HZ;幅度可调,从0到5伏,步进为0.1V。
关键词:信号发生器, FPGA,EDA,VHDL语言。
AbstractThe design project for the application VHDL language and MAX + PLUS II software provides the principle diagram input function design, combined with the design of the electronic circuit to complete a can be applied to digital system development or experiment do input pulse signal or reference pulse signal with signal generator, it has compact structure, stable performance, design structure agile, facilitate multi-function combination of characteristics, economic and practical, the cost is low. Ability to produce three basic wave pulse signal (sine wave, rectangular wave and triangular wave), and three times (and three times the following) harmonic and base wave linear combination of the pulse waveform output, and the single pulse output pulse width and continuous pulse output frequency adjustable, ranging from 100 hz to 1 KHZ, step by step for 100 hz; Amplitude can be adjusted from 0 to 5 V, step by step to 0.1 V. Key words:Signal generator, FPGA, EDA, VHDL language.1 前言随着我国的经济日益增长,社会对电子产品的需求量也就越来越大,目前,我国的电子产品市场正在迅速的壮大,市场前景广阔。
基于FPGA的多功能波形发生器设计研究设计以VHDL为开发语言,对FPGA芯片进行编程设计,并对输出数据进行数模转换,以完成一个简单的周期可调的多波形发生器。
标签:FPGA;VHDL;多波形发生器1 引言在教学实验和教学研究中,信号发生器作为提供测试用电信号的仪器必不可少。
目前通用的信号发生器一般只能输出常用的波形信号,无法满足教学实验和教学研究的需要。
基于可编程逻辑器件FPGA的多波形信号发生器,采用VHDL 编程实现,整个系统除晶体振荡器和D/A转换外,全部集成在一片美国Altera 公司生产的EPF10K10LC84-3的芯片上,FPGA输出的8位数据经DAC0832模数转换器后接示波器观察其波形,通过改变控制信号线的高低电平实现波行的转换。
它除了输出常用的正弦波、三角波、方波以外,还可以输出以上两种波形任意线性组合波形。
该信号发生器输出波形的频率可数控选择,100HZ~1KHZ,且可手动调节频率,频率步进间隔为100HZ。
2 各模块电路设计2.1 总体设计FPGA器件内部结构多功能波形发生器由初值模块、分频模块、方波产生模块、三角波产生模块、正弦波产生模块、波形输出控制模块等部分组成,如图1所示。
调频模块TIAOPIN的主要目的是使频率调节能够手动执行。
通过手动输入端口RESETY输入若干脉冲,可达到对周期可调的多波形发生器循环选择输出频率的目的。
初值模块CHUZHI提供初值,供下一个模块FANA分频时用,通过不同的初值,在波形产生模块得到不同的工作频率,从而实现调节波形频率的目的。
由于输入的晶振频率是5MHz。
而要求得到的波形的频率为100Hz~1KHz,频率步进为100Hz。
而又由于设计的波形模块都是64个时钟为一个周期。
因此要求波形模块得到的频率是6.4KHz~64KHz。
由5M/64KHz≈78,而又由频率输出分高电平和低电平。
这样78/2≈39,这样可以得到输入状态为1001时,Q的输出参数为39;分频模块FANA的功能是将前一模块CHUZHI送来的初值对时钟进行分频,得到不同的工作频率,从而调节波形频率;方波产生模块ZENG的功能是产生方波;三角波产生模块DELTA的功能是产生三角波;正弦波产生模块SIN的功能产生正弦波;波形输出控制模块CHPRO31设置了三个按键,分别控制三种波形任意一种,或任意两种波形的叠加。
基于FPGA的实用多功能信号发生器的设计与制作基于FPGA的实用多功能信号发生器的设计与制作摘要多功能信号发生器已成为现代测试领域应用最为广泛的通用仪器之一,代表了信号源的发展方向。
直接数字频率合成(DDS)是二十世纪七十年代初提出的一种全数字的频率合成技术,其查表合成波形的方法可以满足产生任意波形的要求。
由于现场可编程门阵列(FPGA)具有高集成度、高速度、可实现大容量存储器功能的特性,能有效地实现DDS技术,极大的提高函数发生器的性能,降低生产成本。
本文首先介绍了函数信号发生器的研究背景和DDS的理论。
然后详尽地叙述了利用Verilog HDL描述DDS模块的设计过程,以及设计过程中应注意的问题。
文中详细地介绍了多种信号的发生理论、实现方法、实现过程、部分Verilog HDL代码以及利用Modelsim仿真的结果。
文中还介绍了Altera公司的DE2多媒体开发平台的部分功能及使用,并最终利用DE2平台完成了多功能信号发生器的大部分功能。
包括由LCD显示和按键输入构成的人机界面和多种信号的发生。
数字模拟转换器是BURR-BROWN 公司生产的DAC902。
该信号发生器能输出8种不同的信号,并且能对输出信号的频率、相位以及调制信号的频率进行修改设定。
关键词:信号发生器;DDS;FPGA;DE2Practical FPGA-based multi function signal generatordesign and productionAbstractMulti function signal generator has become the most widely used in modern testing field of general instrument, and has represented one of the development direction of the source. Direct digital frequency synthesis (DDS) is a totaly digital frequency synthesis technology, which been put forward in the early 1970s. Using a look-up table method to synthetic waveform, it can satisfy any requirement of waveform produce. Due to the field programmable gates array (FPGA) with high integrity, high speed, and large storage properties, it can realize the DDS technology effectively, increase signal generator’s performance and reduce production costs.Firstly, this article introduced the function signal generator of the research background and DDS theory. Then, it described how to design a DDS module by Verilog HDL, and introduced various signal occurs theory, method and the implementation process, Verilog HDL code and simulation results.This paper also introduces the function of DE2 multimedia development platform, and completed most of the functions of multi-function signal generator on DE2 platform finally. Including the occurrence of multiple signal and the man-machine interface which composed by LCD display and key input. Digital-to-analog converters is DAC902, which produced by company BURR-BROWN.This signal generator can output eight different kinds of signals, and the frequency of the output signal, phase and modulation frequency signal also can be modifyed.Key Words: Signal generator; DDS; FPGA; DE2目录论文总页数:34页1 引言 (1)1.1课题背景 (1)1.2国内外波形发生器的发展现状 (1)1.3本文研究的主要内容 (2)2 信号发生器原理 (2)2.1直接数字频率合成技术的基本原理 (2)2.2相位偏移控制 (3)2.3多种信号的发生 (3)2.3.1方波的发生 (3)2.3.2三角波发生 (4)2.2.3锯齿波发生 (4)2.3.4 PWM信号发生 (4)2.3.5 SPWM信号发生 (5)2.3.6 AM信号发生 (5)2.3.7 FM信号发生 (6)2.4DDS的特点 (7)2.4.1 DDS 的优点 (7)2.4.2 DDS 系统的缺点 (7)3 系统整体设计 (8)3.1硬件部分 (8)3.1.1 DE2实验板 (8)3.1.2 LCD模块 (9)3.1.2 DAC902 (11)3.2基于VERILOG的FPGA设计 (12)3.3软件工具 (12)3.3.1 Modelsim (12)3.3.2 Quartus (12)3.4系统设计 (13)3.4.1 系统初始化模块 (13)3.4.2按键模块和LCD模块 (13)3.4.3 RAM模块 (14)3.4.4数据转换模块 (15)3.4.5 DAC驱动模块 (15)3.4.6系统的运行 (15)4 VERILOG HDL代码实现与仿真 (15)4.1信号发生器模块 (15)4.1.1频率控制字和相位累加器 (15)4.1.2 相位偏移控制 (16)4.1.3正弦波发生模块 (17)4.1.4 方波发生模块 (17)4.1.5 三角波发生模块 (18)4.1.6 锯齿波发生模块 (18)4.1.7 PWM信号发生模块 (19)4.1.8 SPWM信号发生模块 (19)4.1.9 AM信号发生模块 (20)4.1.10 FM信号发生模块 (21)4.2按键输入模块 (22)4.3LCD显示模块 (23)4.4RAM模块 (24)4.5数据转换模块 (25)5 系统测试 (26)5.1控制及显示部分测试 (27)5.2输出频率测试 (27)5.3信号发生测试 (28)5.3.1 正弦波、方波、三角波、锯齿波测试 (28)5.3.2 PWM信号测试 (29)5.3.3 SPWM信号测试 (29)5.3.4 AM信号测试 (29)5.3.5 FM信号测试 (30)结论 (31)参考文献 (32)致谢...................................................... 错误!未定义书签。
电子电路设计与方案0 前言现场可编程门阵列具有运行速度快,修改灵活方便,并自带大量的输入输出端口等优点,通过FPGA实现该信号发生器的核心部件DDS模块,可以灵活地对信号发生器的参数进行调整,另外通过单片机的配合实现对其他外设电路的控制,实现信号发生器显示、参数调节等辅助的功能,通过数模转换电路和波形处理电路实现所需信号波形的输出。
本设计的主要指标为:(1)频率范围:0~1MHz,可通过键盘任意设置频率,步进1Hz。
(2)频率精度:±1%。
(3)幅值范围:±5V,可通过键盘任意设置幅度,步进100mV。
(4)幅值精度:±5%。
(5)用液晶显示所选波形名称,频率,幅值。
1 系统硬件结构该信号发生器主要是由FPGA构成其最小系统,通过编程实现信号发生器的主要功能部件数字频率合成功能模块,并对其信号进行控制和处理,使得输出波形更加平滑、符合要求。
当然为了使电路能够实现人机对话、参数设置等功能,并设计了由单片机和外围电路构成的控制电路部分,实现对显示电路、输入电路的控制。
本系统通过单片机来识别按键所输入的指令,并根据其该指令,产生输出波形的参数要求,并将该数据送入FPGA 的ROM中,再由FPGA完成DDS数据处理功能(频率控制、移相等),将波形数据送入D/A转换器,并将波形参数(如频率、幅值等)送入到显示电路中显示,最后通过低通滤波电路滤波使输出的波形平滑。
系统硬件结构如图1所示。
本设计未采用专用DDS芯片,而是通Verilog HDL语言编程在目标芯片上来实现信号源的主要功能,可以根据实际设计的要求来增删DDS的功能,具有灵活、方便等特点,同时该DDS模块中的参数及子模块根据所用目标器件稍加调整,完全可用于其他需要DDS技术的应用场合,有很好的通用性。
图1 系统硬件结构图2 单元电路的设计整个硬件系统以FPGA为核心,配合外围电路控制参数实现波形的模拟输出。
外围电路主要包括控制电路及信号处理电路两部分。
基于DDS和FPGA的多功能信号发生器设计王新辉【摘要】根据直接数字频率合成技术,以FPGA为核心,设计了一种便携式多功能信号发生器,可产生正弦波、方波、三角波、锯齿波等信号。
通过仿真及硬件实验表明,该信号发生器具有信号频率误差小、分辨率高、体积小、质量轻等优点。
%According to direct digital synthesis(DDS),a portable multi-functional signal generator was designed based on FPGA,which could output sinusoidal wave,square wave,triangle wave and sawtoothwave.Simulation and hardware experiment show that the portable multi-functional signal generator has some advantages,such as high accuracy and high resolution with small size.【期刊名称】《湖南人文科技学院学报》【年(卷),期】2011(000)002【总页数】4页(P91-94)【关键词】DDS;FPGA;D/A转换器;信号发生器【作者】王新辉【作者单位】湖南人文科技学院计算机科学技术系,湖南娄底417001【正文语种】中文【中图分类】TP346近年来,随着微电子技术的迅速发展,模拟信号发生器在带宽,精确度,可控制性等方面体现出严重缺限;而直接数字频率合成器(Direct Digital Frequency Synthesis简称DDS或DDFS)在相对带宽、频率转换时间、高分辨力、相位连续性、正交输出以及集成化等一系列性能指标方面远远超过了传统频率合成技术所能达到的水平,为系统提供了优于模拟信号源的性能,输出频率相对带宽较宽的信号;输出波形的灵活性,只要在DDS内部加上相应控制如调频控制FM、调相控制PM和调幅控制AM,即可以方便灵活地实现调频、调相和调幅功能,产生FSK、PSK、ASK和MSK等信号。
基于FPGA的多功能信号发生器一.实验目的:1.了解GW48-CK综合实验箱结构2.熟悉VHDL语言3.了解FPGA芯片<EP1K30TC144-3)结构及引脚4.了解D/A芯片<DAC0832)结构[5.熟悉FPGA设计软件quartus ii 9.0的使用6.掌握产生三角波,锯齿波,梯形波的原理7.学会用FPGA设计多功能信号发生器二.实验仪器及设备:1.pc机2.GW48-CK型FPGA综合实验箱3.FPGA芯片:EP1K30TC144-34.D/A芯片:DAC08325.示波器6.quartus ii 9.0仿真软件三.实验要求:.设计基于FPGA的多功能信号发生器,此信号发生器可产生的波形有:正弦波,方波,三角波,斜升锯齿波,斜降锯齿波,梯形波,阶梯波,双阶梯波中的六种。
F1NgHcUqUBb5E2RGbCAP设计软件要求用quartus ii,先用该软件仿真,再接上FPGA实验箱,编译,运行并下载到实验箱,用示波器观察期指定输出端波形。
F1NgHcUqUBp1EanqFDPw四.实验原理:1.基于QUASTUS II 9.0平台,利用DDS<直接数字信号合成)技术,采用VHDL语言,设计一波形信号发生器。
首先根据对各波形的幅度进行采样,获得各波形的波形数据表,然后FPGA根据输入的时钟<频率可根据要求可变)作为地址信号,从FPGA数据线上输出相应的波形数据,再送入GW48-CK实验板上的D/A转换芯片进行转换为模拟信号,最后送入滤波电路滤波后输出。
F1NgHcUqUBDXDiTa9E3d2.实验整体框图如下:由方波模块<niushengli_fb)、阶梯波模块<niushengli_jtb)、正弦波模块<niushengli_sin)、三角波模块<niushengli_sjb)、斜升锯齿波模块<niushengli_xsjcb)、斜降锯齿波模块<niushengli_xjjcb)、6选1选择器<niushengli_mux61)以及反向器<not)组成。
第27卷第3期 2017年6月梧州学院学报JOURNAL OF W UZHOU UNIVERSITY No.3Vol.27Jun.2017基于FPGA的D D S多功能信号发生器的设计黄玉健、黄永庆2(1.2.梧州学院图像处理与智能信息系统广西高校重点实验室,广西梧州543002)[摘要]多功能信号发生器作为一种基本电子设备在教学、电子信息工程和科研等领域,都有着广泛的使用。
该文 以直接数字频率合成技术(D D S)为核心,描述了基于FPGA的DDS多功能信号发生器的原理结构和设计方法,重点阐述 了 FPGA的DDS内核设计方法。
设计结果表明,与普通的信号发生器相比,基于FPGA的DDS为核心技术的信号发生器能够灵活产生更加精准、更加稳定和更宽频率范围的正弦波、方波、三角波和锯齿波等信号。
[关键词]多功能信号发生器;DDS; FPGA[中图分类号]TN741 [文献标识码]A [文章编号]1673-8535(2017)03-0010-07〇引言信号发生器作为一种基本频率源发生器无论是在教学、电子信息工程和科研等领域,都有着广泛的使 用。
随着通信技术、卫星定位系统、精密机械控制以及航空航天测控等领域对测控技术要求的不断提高, X才信号发生器的稳定度、精确度和频率带宽等要求越来越高,而传统振荡器由于产生的频率信号精度不 高、太单一或者只能在比较小范围内调节频率而不能满足要求⑴。
利用频率合成技术就是解决该问题的最 好方法之一。
直接数字频率合成技术DDS(Direct Digital Synthesizer)是一种新型的频率合成技术,它是 把一系列数字信号通过D/A转换器转换为模拟信号的合成技术[1]。
DDS能够在频率带宽比较宽的范围内 实现比较高的频率分辨率,可以实现快速频率切换,并且在频率改变时能够保持相位的连续,比较容易实 现频率、相位和幅度的数控调制[2]。
利用专门DDS芯片设计产生信号源也是设计信号发生器的一种方法,该方法优点是输出正弦信号频 率范围大、波形好;缺点是DDS芯片的ROM里一般都只存储正弦波,产生其他波形需要加上一些外围电 路的方式获得,产生波形速度受到很大的限制,频率带宽受影响严重,导致使用不够灵活[3]。
基于FPGA的多功能信号发生器一.试验目的:1.了解GW48-CK综合实验箱结构2.熟悉VHDL语言3.了解FPGA芯片(EP1K30TC144-3)结构及引脚4.了解D/A芯片(DAC0832)结构[5.熟悉FPGA设计软件quartus ii 9.0的使用6.掌握产生三角波,锯齿波,梯形波的原理7.学会用FPGA设计多功能信号发生器二.试验仪器及设备:1.pc机2.GW48-CK型FPGA综合试验箱3.FPGA芯片:EP1K30TC144-34.D/A芯片:DAC08325.示波器6.quartus ii 9.0仿真软件三.实验要求:.设计基于FPGA的多功能信号发生器,此信号发生器可产生的波形有:正弦波,方波,三角波,斜升锯齿波,斜降锯齿波,梯形波,阶梯波,双阶梯波中的六种。
设计软件要求用quartus ii,先用该软件仿真,再接上FPGA试验箱,编译,运行并下载到实验箱,用示波器观察期指定输出端波形。
四.试验原理:1.基于QUASTUS II 9.0平台,利用DDS(直接数字信号合成)技术,采用VHDL语言,设计一波形信号发生器。
首先根据对各波形的幅度进行采样,获得各波形的波形数据表,然后FPGA根据输入的时钟(频率可根据要求可变)作为地址信号,从FPGA数据线上输出相应的波形数据,再送入GW48-CK 实验板上的D/A转换芯片进行转换为模拟信号,最后送入滤波电路滤波后输出。
2.实验整体框图如下:由方波模块(niushengli_fb)、阶梯波模块(niushengli_jtb)、正弦波模块(niushengli_sin)、三角波模块(niushengli_sjb)、斜升锯齿波模块(niushengli_xsjcb)、斜降锯齿波模块(niushengli_xjjcb)、6选1选择器(niushengli_mux61)以及反向器(not)组成。
五.试验步骤:a)在桌面上双击quartus ii 9.0图标(或在开始中→程序→Aler a→quartus ii9.0)启动设计软件。
b)新建工程命名(niushengli_xhfsq),在新建VHDL文本文件,分别输入正弦波、方波、三角波、斜升锯齿波,梯形波,斜降锯齿波以及6选1选择器程序。
c)点击保存并命名(注意:命名应与程序实体名相同,后缀为:.vhd),编译,若有错误,则调试程序直至编译成功d)新建模块/原理图输入方式文件,用编译后生成的各信号模块编写原理图文件并设置为顶层文件(命名为niushengli_xhfsq.bdf)保存e)新建一个仿真波形文件,添加输入/输出信号节点,编辑信号节点波形并保存(命名为:niushengli_xhfsq.vwf)f)点击Assignments菜单,选择目标芯片(EP1K30TC144-3)并进行管脚配置(详情见附录3)g)点击编译器processing/Start Compilation,再点击Start Simulation命令启动仿真器,查看仿真波形并记录h)连接好pc机和GW48-CK实验箱,下载编译好的程序到试验箱,用示波器观察输出端波形,检验设计的信号发生器功能并记录六.试验结果:a)当键3、键2、键1组合为000时,输出方波仿真图形记录如下:b)当键3、键2、键1组合为001时,输出阶梯波仿真图形记录如下:c)当键3、键2、键1组合为010时,输出正弦波仿真图形记录如下:d)当键3、键2、键1组合为011时,输出三角波仿真图形记录如下:e)当键3、键2、键1组合为100时,输出斜降锯齿波仿真图形记录如下:f)当键3、键2、键1组合为101时,输出斜升锯齿波仿真图形记录如下:七.试验心的体会:通过俩周的设计,我的设计较好地完成了既定目标,能够产生正弦波、方波、三角波、锯齿波等6种波形,并能改变波形发生的频率。
通过三个按键组合,可在6种波形中任意切换,使所设计系统容易使用。
成功的实现了系统的功能。
在实验中也有失败,如当经过几天的努力把各个信号模块做好后进行了整体的运作后,波形怎么也不出现。
后来才知道原来我们设计的电路只有在特定的试验箱特定的参数设置后才能实验成功,多亏老师的指导让我们少走很多弯路。
也从中发现自己还有很多知识不懂,最终把波形弄出来了!在这次设计中,我更进一步地了解了开发项目该如何组织进行,对正弦波信号发生器、方波信号发生器、三角波信号发生器、锯齿波信号发生器的实现有了更好的理解。
同时也提高了查阅文档解决问题的能力,对EDA技术的运用有了深一层的认识,对VHDL程序语言设计有了更深的理解,并熟练掌握了杭州康芯硬件结构动态可配置型EDA+SOPC试验箱、北京达盛公司全开方式EDA+SOPC试验箱的用法。
通过本实验设计更增加了我对电子技术的热爱,对专业知识有了更透彻的认识!有因掌握了这一技术而更加自信。
相信通过今后的学习会更成为一个科技含量高的技术人才!在试验过程中,充分体会到团队精神的重要,我们很默契很团结,才最终把实验做成功。
通过实验也给自己一个成就感,让平时所学的知识有了实用的机会,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,让我以后更有信心,无论遇到什么困难都要勇于克服,遇到问题要善于思考并虚心请教。
附录:(1).多功能信号发生器FPGA芯片配置说明:本次多功能信号发生器设计采用VHDL语言设计并通过QUARTUS II软件编译、仿真完成后,需将生成的配置文件下载到EDA试验箱中测试输出波形。
有关配制情况说明如下:1.试验平台:GW48系列EDA/SOC试验开发系统2.FPGA芯片型号:Altera EP1K30TC144-31. --锯齿波(斜升)LIBRARY IEEE;USE IEEE. STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY niushengli_xsjcb IS -- 牛胜利(40604030109)PORT (clk,reset: IN STD_LOGIC;q:OUT STD_LOGIC_VECTOR (7 DOWNTO 0));END niushengli_xsjcb;ARCHITECTURE behave OF niushengli_xsjcb ISBEGINPROCESS (clk,reset)V ARIABLE tmp: STD_LOGIC_VECTOR (7 DOWNTO 0);BEGINIF reset='0'THENtmp:="00000000";ELSIF clk'EVENT AND clk='1'THENIF tmp="11111111"THENtmp:="00000000";ELSEtmp:=tmp+1;END IF;END IF;q<=tmp;END PROCESS;END behave;2. --方波LIBRARY IEEE;USE IEEE. STD_LOGIC_1164.ALL;ENTITY niushengli_fb IS--牛胜利(40604030109)PORT (clk,reset: IN STD_LOGIC;q:OUT INTEGER RANGE 0 TO 255); END niushengli_fb;ARCHITECTURE behave OF niushengli_fb IS SIGNAL a: BIT;BEGINPROCESS (clk,reset)V ARIABLE cnt: INTEGER;BEGINIF reset='0'THENA<='0';ELSIF clk'EVENT AND clk='1'THENIF cnt<63 THENCnt:=cnt+1;ELSEcnt:=0;a<=NOT a;END IF;END IF;END PROCESS;Process (clk,a)BEGINIF clk'EVENT AND clk='1'THENIF a='1'THENQ<=255;ELSEQ<=0;END IF;END IF;END PROCESS;END behave;3. --双阶梯波library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity niushengli_jtb isport(clk,reset:in std_logic;q:out std_logic_vector(7 downto 0));end niushengli_jtb;architecture a of niushengli_jtb isbeginprocess(clk,reset)variable tmp:std_logic_vector(7 downto 0);beginif reset='0' thentmp:="00000000";else if clk'event and clk='1' thenif tmp="11111111" thentmp:="00000000";elsetmp:=tmp+16;end if;end if;end if;q<=tmp;end process;end a;4.--正弦波library ieee;use ieee.std_logic_arith.all;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity niushengli_sin is --牛胜利(40604030109)port(clk:in std_logic;reset:in std_logic;q:out std_logic_vector(7 downto 0));end niushengli_sin;architecture behav of niushengli_sin issignal b:integer range 0 to 63;signal d:integer range 0 to 255;beginprocess(clk)beginif reset='0'then b<=0;elsif clk'event and clk='1' thenif b=63 then b<=0;else b<=b+1;end if;end if;end process;process(b)begincase b iswhen 00=>d<=255; when 01=>d<=254; when 02=>d<=252; when 03=>d<=249;when 04=>d<=245; when 05=>d<=239; when 06=>d<=233; when 07=>d<=225;when 08=>d<=217; when 09=>d<=207; when 10=>d<=197; when 11=>d<=186;when 12=>d<=174; when 13=>d<=162; when 14=>d<=150; when 15=>d<=137;when 16=>d<=124; when 17=>d<=112; when 18=>d<=99; when 19=>d<=87;when 20=>d<=75; when 21=>d<=64; when 22=>d<=53; when 23=>d<=43;when 24=>d<=34; when 25=>d<=26; when 26=>d<=19; when 27=>d<=13;when 28=>d<=8; when 29=>d<=4; when 30=>d<=1; when 31=>d<=0;when 32=>d<=0; when 33=>d<=1; when 34=>d<=4; when 35=>d<=8;when 36=>d<=13; when 37=>d<=19; when 38=>d<=26; when 39=>d<=34;when 40=>d<=43; when 41=>d<=53; when 42=>d<=64; when 43=>d<=75;when 44=>d<=87; when 45=>d<=99; when 46=>d<=112; when 47=>d<=124;when 48=>d<=137; when 49=>d<=150; when 50=>d<=162; when 51=>d<=174;when 52=>d<=186; when 53=>d<=197; when 54=>d<=207; when 55=>d<=217;when 56=>d<=225; when 57=>d<=233; when 58=>d<=239; when 59=>d<=245;when 60=>d<=249; when 61=>d<=252; when 62=>d<=254; when 63=>d<=255;when others=>null;end case;end process;q<=conv_std_logic_vector(d,8);end behav;5 -- 三角波LIBRARY IEEE;USE IEEE. STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY niushengli_sjb IS --牛胜利(40604030109)PORT (clk,reset: IN STD_LOGIC;q:OUT STD_LOGIC_VECTOR (7 DOWNTO 0));END niushengli_sjb;ARCHITECTURE behave OF niushengli_sjb ISBEGINPROCESS (clk,reset)V ARIABLE tmp: STD_LOGIC_VECTOR (7 DOWNTO 0);V ARIABLE 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+1;END IF;ELSEIF tmp="00000001"THENtmp:="00000000";a:='0';ELSETmp:=tmp-1;END IF;END IF;END IF;q<=tmp;END PROCESS;END behave;6. --锯齿波(斜降)LIBRARY IEEE;USE IEEE. STD_LOGIC_1164.ALL;USE IEEE. STD_LOGIC_UNSIGNED.ALL;ENTITY niushengli_xjc IS --牛胜利(40604030109)PORT (clk,reset: IN STD_LOGIC;q:OUT STD_LOGIC_VECTOR (7 DOWNTO 0)); END niushengli_xjc;ARCHITECTURE behave OF niushengli_xjc ISBEGINPROCESS (clk,reset)V ARIABLE tmp: STD_LOGIC_VECTOR (7 DOWNTO 0);BEGINIF reset='0'THENtmp:="11111111";ELSIF clk'EVENT AND clk='1'THENIF tmp="00000000"THENTmp:="11111111";ELSEtmp:=tmp-1;END IF;END IF;q<=tmp;END PROCESS;END behave;7. --六选一选择器LIBRARY IEEE;USE IEEE. STD_LOGIC_1164.ALL;ENTITY niushengli_MUX61 IS --牛胜利(40604030109)PORT (sel: IN STD_LOGIC_VECTOR (2 DOWNTO 0);d0,d1,d2,d3,d4,d5: IN STD_LOGIC_VECTOR(7 DOWNTO 0);q: OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END niushengli_MUX61;ARCHITECTURE behave OF niushengli_MUX61 ISBEGINPROCESS (sel)BEGINCASE sel ISWHEN "000" =>q<=d0;WHEN "001" =>q<=d1;WHEN "010" =>q<=d2;WHEN "011" =>q<=d3;WHEN "100" =>q<=d4;WHEN "101" =>q<=d5;WHEN OTHERS =>NULL;END CASE;END PROCESS;END behave;。