EDA实验 函数信号发生器

合集下载

EDA实验-正弦波信号发生器设计

EDA实验-正弦波信号发生器设计

实验八正弦信号发生器的设计一、实验目的1、学习用VHDL设计波形发生器和扫频信号发生器。

2、掌握FPGA对D/A的接口和控制技术,学会LPM_ROM在波形发生器设计中的实用方法。

二、实验仪器PC机、EDA实验箱一台Quartus II 6.0软件三、实验原理如实验图所示,完整的波形发生器由4部分组成:• FPGA中的波形发生器控制电路,它通过外来控制信号和高速时钟信号,向波形数据ROM 发出地址信号,输出波形的频率由发出的地址信号的速度决定;当以固定频率扫描输出地址时,模拟输出波形是固定频率,而当以周期性时变方式扫描输出地址时,则模拟输出波形为扫频信号。

•波形数据ROM中存有发生器的波形数据,如正弦波或三角波数据。

当接受来自FPGA的地址信号后,将从数据线输出相应的波形数据,地址变化得越快,则输出数据的速度越快,从而使D/A输出的模拟信号的变化速度越快。

波形数据ROM可以由多种方式实现,如在FPGA外面外接普通ROM;由逻辑方式在FPGA中实现(如例6);或由FPGA中的EAB模块担当,如利用LPM_ROM实现。

相比之下,第1种方式的容量最大,但速度最慢;,第2种方式容量最小,但速度最最快;第3种方式则兼顾了两方面的因素;• D/A转换器负责将ROM输出的数据转换成模拟信号,经滤波电路后输出。

输出波形的频率上限与D/A器件的转换速度有重要关系,本例采用DAC0832器件。

DAC0832是8位D/A转换器,转换周期为1µs,其引脚信号以及与FPGA目标器件典型的接口方式如附图2—7所示。

其参考电压与+5V工作电压相接(实用电路应接精密基准电压).DAC0832的引脚功能简述如下:•ILE(PIN 19):数据锁存允许信号,高电平有效,系统板上已直接连在+5V上。

•WR1、WR2(PIN 2、18):写信号1、2,低电平有效。

•XFER(PIN 17):数据传送控制信号,低电平有效。

•VREF(PIN 8):基准电压,可正可负,-10V~+10V.•RFB(PIN 9):反馈电阻端。

EDA技术与应用实践3.函数信号发生器

EDA技术与应用实践3.函数信号发生器

3 函数信号发生器的设计智能函数信号发生器一般是指能自动产生正弦波、三角波、锯齿波和方波等函数信号波形的电路和仪器,它与示波器、电压表、频率计等仪器一样,是最普通、最基本、应用最广泛的电子仪器之一,在电子技术实验、自动控制系统和其它科研领域,几乎所有的电参量的测量都需要用到信号发生器。

3.1 设计要求设计一个智能函数信号发生器,能够以稳定的频率产生正弦波、三角波、锯齿波和方波,并能够通过按键选择输出4种不同种类的函数波形,同时具有系统复位功能。

3.2 设计方案智能函数信号发生器主要由两大部分电路组成:即函数信号发生电路和函数信号选择电路。

其中函数发生电路包括产生正弦波、三角波、锯齿波和方波4种不同函数波形的模块,如图 3 - 1所示。

开关SEL时钟CLK波形输出复位CLR图 3 - 1 函数信号发生器组成框图函数发生电路要产生4种不同的波形,因此要针对每种函数波形设计对应的电路模块。

虽然每个模块的输入和输出设置相同,但不同的函数发生模块对信号的处理方式不同。

对于三角波、锯齿波和方波3种比较规则的波形,可以用程序代码产生;而对于正弦波,则可以使用宏模块实现。

3.3 模块设计⒈正弦波产生模块正弦波的产生可用图 3 - 2所示电路实现,其中XHQ_Cout是LAM计数器,XHQ_ROM是只读存储器。

ROM中保存正弦波信号的数据,其地址由计数器XHQ_Cout提供;而XHQ_Cout是一个8位加法计数器。

在时钟信号的控制下,计数器输出q[7..0]在00000000-11111111范围内循环变化,使ROM 输出周期性变化的正弦波形信号数据。

为此需要先设计计数器XHQ_Cout和只读存储器XHQ_ROM。

图 3 - 2 正弦波产生原理图⑴定制LPM计数器①新建工程文件后,选择【Tools】 【MegaWizard Plug-In Manager…】菜单命令,在弹出的如图 3 - 3所示〖MegaWizard Plug-In Manager[page 1]〗对话框中单击按钮,接着弹出图 3 - 4所示〖MegaWizard Plug-In Manager[page 2a]〗对话框。

EDA课程设计(信号发生器)

EDA课程设计(信号发生器)

课程设计报告2010 ~ 2011 学年第一学期设计题目:基于FPGA可调信号发生器学院:专业:课程名称: EDA原理与应用学生姓名:时间: 2011年1月指导教师:目录一、系统总体设计---------------------------------------------------------------------2二、系统功能模块设计---------------------------------------------------------------21、矩阵键盘模块------------------------------------------------------------32、频率显示模块-----------------------------------------------------------113、波形数据ROM初始化数据文件设计--------------------------------134、频率、幅度改变模块--------------------------------------------------145、DA转化模块-----------------------------------------------------------186、示波器检测-------------------------------------------------------------18三、结束语---------------------------------------------------------------------------191、矩阵键盘模块:矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。

在行线和列线的每一个交叉点上,设置一个按键,这样键盘中按键的个数是4×4个。

这种行列式键盘结构能够有效地提高系统中I/O口的利用率。

南昌大学EDA实验报告实验六信号发生器

南昌大学EDA实验报告实验六信号发生器

南昌⼤学EDA实验报告实验六信号发⽣器
南昌⼤学实验报告
学⽣姓名:xx 学号:xx 专业班级:xx
实验类型:□验证□综合□设计□创新实验⽇期:2016.11.04 实验成绩:
实验六LPM信号发⽣器
(⼀)实验要求
1、LPM定制⽅法实现。

2、信号数字值存储在ROM中,可以是64个或128个,位长8位。

3、产⽣的信号可以是正弦波或⽅波、三⾓波、锯齿波等,⾃选。

4、⽤SignalTap逻辑分析/或输出到DAC⽰波器观察
(⼆)实验原理
定制LPM-ROM模块,并利⽤其设计⼀个信号发⽣器,该信号发⽣器由以下三部分组成:
(1)计数器或地址信号发⽣器;
(2)信号数据存储器ROM(6位地址线,8位数据线)(3)VHDL顶层程序设计
本实验中待测信号ar和q。

时钟选择clk;使能信号为en,⾼电平触发。

(三)实验步骤
1、定制初始化波形数据⽂件:建⽴.mif格式⽂件。

2、定制LPM_ROM元件:利⽤定制信号数据ROM宏功能块,并将以上波形加载与ROM中。

3、⽤VHDL语⾔完成信号发⽣器的顶层设计。

(四)实验仿真波形
(五)管脚分配
(六)下载测试。

将FPGA板接⽰波器,可实现⽅波,正弦波,三⾓波的波形输出。

控制按键s1,s2,s3,s4可改变波形的频率幅度⼤⼩。

(七)实验⼩结
本次实验我⽤到了创建mif⽂件rom存储,以及嵌⼊式逻辑分析仪的使⽤。

EDA课设分析方案--信号发生器的设计

EDA课设分析方案--信号发生器的设计

《集成电路VHDL设计》课程设计报告设计题目专业班级:电信0901设计者:___03 庄威___________06 邓智超_______42 郭乐安______指导教师:蔡剑华设计时间:2012-06-23目录摘要 (2)Abstract (3)绪论 (4)1.V H D L简介 (5)1.1 VHDL的特点 (5)1.2 VHDL发展史 (5)2.设计的方案确定 (6)2.1.AD558工作原理 (6)2.2设计方案 (7)3.设计流程 (8)4.结束语 (14)5.参考文献 (15)附录 (16)摘要本说明书首先介绍了VHDL语言的特点及发展史;接着简要说明了D/A接口(函数发生器)的工作原理及设计思想和设计方案的确定;然后着重解释了使用VHDL语言设计D/A接口(函数发生器)的具体操作步骤及主要流程。

为了更加详细的解释清楚主要流程在本课程设计说明书中还附加了相应的图片。

最后还附加了实现设计的VHDL源程序。

关键词:VHDLD/A接口设计AbstractThis manual introduces the VHDL language features and development history。

followed by a brief description of the D/A interface and the working principle and design ideas and the way that the design program was confirmed。

and then I explain the emphasis on the use of VHDL language to design D/A interface and the specific steps and the main process. In order to explain in more details of the main process I also attached the corresponding pictures. Finally I added the VHDL design source codes in the addendum.Keywords: VHDL D/A Interface Design绪论EDA是电子设计自动化(Electronic Design Automation)的缩写。

eda信号发生器设计

eda信号发生器设计

目录摘要 (2)一、实验目的 (2)二、主要功能 (2)三、实验原理 (3)四、软件设计 (3)4.1、程序 (3)4.2、波形图 (4)五、引脚锁定后下载程序 (5)六、实验结果 (5)七、实训心得 (5)八、参考文献 (9)九、附录 (9)摘要信号发生器是一种能提供各种频率、波形和输出电平电信号的设备。

在测量各种电信系统或电信设备的振幅特性、频率特性、传输特性及其它电参数时,以及测量元器件的特性与参数时,用作测试的信号源或激励源。

信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。

各种波形曲线均可以用三角函数方程式来表示。

能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波的电路被称为函数信号发生器关键词:信号发生器;FPGA;Verilog HDL语言一、实验目的进一步巩固理论知识培养所学理论知识在实际中的应用能力:掌握EDA设计的一般方法;熟悉一种EDA软件,掌握一般EDA系统的调试方法:利用EDA软件设计一个电子技术综合问题,培养Verilog HDL编程;书写技术报告的能力,为以后进行工程实际问题的研究打下设计基础。

二、主要功能信号发生器,它用于产生被测电路所需特定参数的电测试信号。

在测试、研究或调整电子电路及设备时,为测定电路的一些电参量,如测量频率响应、噪声系数,为电压表定度等,都要求提供符合所定技术条件的电信号,以模拟在实际工作中使用的待测设备的激励信号。

当要求进行系统的稳态特性测量时,需使用振幅、频率已知的正弦信号源。

当测试系统的瞬态特性时,又需使用前沿时间、脉冲宽度和重复周期已知的矩形脉冲源。

并且要求信号源输出信号的参数,如频率、波形、输出电压或功率等,能在一定范围内进行精确调整,有很好的稳定性,有输出指示。

信号源可以根据输出波形的不同,划分为正弦波信号发生器、矩形脉冲信号发生器、函数信号发生器和随机信号发生器等四大类。

正弦信号是使用最广泛的测试信号。

eda课程信号发生器课程设计

eda课程信号发生器课程设计

eda课程信号发生器课程设计一、课程目标知识目标:1. 学生能理解EDA课程中信号发生器的原理与功能,掌握相关电子元件的工作特性。

2. 学生能够掌握信号发生器的分类、特点及应用场景,了解各类信号发生器的优缺点。

3. 学生能够运用所学知识,分析并设计简单的信号发生器电路。

技能目标:1. 学生能够熟练运用EDA软件进行信号发生器电路的设计、仿真与调试。

2. 学生能够独立完成信号发生器的硬件搭建,并进行基本的性能测试。

3. 学生能够通过实际操作,提高动手实践能力,培养解决实际问题的能力。

情感态度价值观目标:1. 学生能够培养对电子工程的兴趣,激发创新意识,形成主动学习的习惯。

2. 学生能够培养团队协作精神,学会与他人沟通交流,共同解决问题。

3. 学生能够认识到信号发生器在现代社会中的重要作用,增强社会责任感和使命感。

本课程针对高年级学生,在分析课程性质、学生特点和教学要求的基础上,明确以上课程目标。

通过分解目标为具体的学习成果,使学生在掌握专业知识的同时,提高实践操作能力和团队协作能力,培养良好的情感态度价值观。

为后续的教学设计和评估提供明确的方向。

二、教学内容本章节教学内容依据课程目标,紧密结合教材,确保科学性和系统性。

主要内容包括:1. 信号发生器原理与分类:讲解信号发生器的基本原理、功能及分类,重点介绍函数发生器、脉冲发生器等常见类型的工作原理及应用。

2. 电子元件特性分析:分析常用电子元件(如运放、晶体管、二极管等)在信号发生器中的作用,掌握其工作特性。

3. 信号发生器电路设计:根据实际需求,设计不同类型的信号发生器电路,分析电路性能,优化设计方案。

4. EDA软件应用:教授学生如何使用EDA软件进行信号发生器电路的设计、仿真与调试,提高实际操作能力。

5. 硬件搭建与性能测试:指导学生搭建信号发生器硬件电路,进行基本性能测试,分析测试结果,找出问题并解决。

教学内容安排如下:1. 第1周:信号发生器原理与分类,电子元件特性分析。

EDA课程设计---函数信号发生器的设计

EDA课程设计---函数信号发生器的设计

摘要本说明书首先介绍了VHDL语言的特点及发展史;接着简要说明了D/A接口(函数发生器)的工作原理及设计思想和设计方案的确定;然后着重解释了使用VHDL语言设计D/A接口(函数发生器)的具体操作步骤及主要流程。

为了更加详细的解释清楚主要流程在本课程设计说明书中还附加了相应的图片。

最后还附加了实现设计的VHDL源程序。

关键词:VHDL D/A接口设计绪论EDA是电子设计自动化(Electronic Design Automation)的缩写。

EDA技术就是依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL(Hardware Description Language)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。

EDA技术使设计者的工作仅局限于利用软件的方式来完成对系统硬件功能的实现,可以说EDA技术的产生与发展是电子设计技术的一个巨大进步。

EDA技术融合了众多电子设计技术和计算机辅助技术,使得它在现代电子学方面的应用越来越广泛,也成为电子、电气类大学生必须熟练掌握的一种设计工具。

硬件描述性语言HDL是EDA技术的重要组成部分,常见HDL的有VHDL、HDL、ABEL、Verilog、AHDL、SystemC等。

其中VHDL、Verilog在现在的EDA 设计中使用的最多,也拥有了几乎所有主流EDA工具的支持,而相对于其他语言VHDL更加完善。

VHDL是英文全名是VHSIC(Very High Speed Integrated Circuit) Hardware Description Language,是硬件描述语言的业界标准之一。

它作为一个规范语言和建模语言,具有与具体硬件电路无关及设计平台无关的特性,而且还有很强的电路行为描述和建模能力,能从多个层次的数字系统进行建模和描述,从而大大简化了硬件设计的任务,提高了设计效率和可靠性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

EDA设计实验题目:函数信号发生器作者:所在学院:信息科学与工程学院专业年级:指导教师:职称:2011 年12 月11 日函数信号发生器摘要:函数信号发生器在生产实践和科技领域有着广泛的应用。

本设计是采用了EDA技术设计的函数信号发生器。

此函数信号发生器的实现是基于VHDL语言描述各个波形产生模块,然后在QuartusⅡ软件上实现波形的编译,仿真和下载到Cyclone 芯片上。

整个系统由波形产生模块和波形选择模块两个部分组成。

最后经过QuartusⅡ软件仿真,证明此次设计可以输出正弦波、方波、三角波,锯齿波,阶梯波等规定波形,并能根据波形选择模块的设定来选择波形输出。

关键字:函数信号发生器;Cyclone;VHDL;QuartusⅡ引言:函数信号发生器即通常所说的信号发生器是一种常用的信号源,广泛应用于通信,雷达,测控,电子对抗以及现代化仪器仪表等领域,是一种为电子测量工作提供符合严格要求的电信号设备是最普通、最基本也是应用最广泛的电子仪器之一,几乎所有电参量的测量都要用到波形发生器。

随着现代电子技术的飞速发展,现代电子测量工作对函数信号信号发生器的性能提出了更高的要求,不仅要求能产生正弦波、方波等标准波形,还能根据需要产生任意波性,且操作方便,输出波形质量好,输出频率范围宽,输出频率稳定度、准确度、及分辨率高等。

本文基于EDA设计函数信号发生器,并产生稳定的正弦波、方波、锯齿波、三角波、阶梯波。

正文:1、Quartus II软件简介1)Quartus II软件介绍Quartus II 是Alera公司推出的一款功能强大,兼容性最好的EDA工具软件。

该软件界面友好、使用便捷、功能强大,是一个完全集成化的可编程逻辑设计环境,具有开放性、与结构无关、多平台完全集成化丰富的设计库、模块化工具、支持多种硬件描述语言及有多种高级编程语言接口等特点。

Quartus II是Altera公司推出的CPLD/FPGA开发工具,Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;芯片平面布局连线编辑;功能强大的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具;定时/时序分析与关键路径延时分析;可使用SignalTap II逻辑分析工具进行嵌入式的逻辑分析;支持软件源文件的添加和创建,并将它们链接起来生成编程文件;使用组合编译方式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具;可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。

2)Quartus II软件设计流程(1)打开Quartus II软件。

(2)选择路径。

注意:工作目录名不能有中文。

(3)添加设计文件。

(4)选择FPGA器件。

Family选择Cyclone,240,8。

(5)建立原理图或用VHDL语言描述设计电路。

(6)对原理图或用VHDL语言进行编译,无误后进行添加信号。

(7)对上述电路进行仿真。

(8)进行管脚分配。

(9)全局编译。

(10)采用JTAG或AS模式进行下载测试。

图1Quartus II软件运行界面2、设计主要任务及要求:a)波形选择:通过对拨码开关状态的设置选择不同的输出波形。

b)波形发生:通过软件实现各类波形的产生(数字量)。

c)波形清零:通过拨码开关状态的改变,输出直流波。

d)波形的观测:实现波形的数/模转换,便于直接在示波器上观察输出波形。

3、设计方案、原理、过程、调试(1)总体方案本论文设计的函数信号发生器主要由波形选择部分,波形发生部分和输出部分组成,其硬件结构图如图1所。

其中波形选择部分是数据选择器电路;波形发生部分包括递增斜波产生电路,递减斜波产生电路,三角波产生电路,斜梯波产生电路,正弦波产生电路和方波产生电路;输出部分是数/模转换电路。

其中数/模转换模块是通过硬件实现的,其它都是依靠软件实现的。

根据实验箱的硬件资源,本次设计选用ALTERA公司MAX7000S系列的EPM7128SLC84-15作为主控芯片。

它是一种基于乘积项结构的复杂可编程逻辑器件,它的基本逻辑单元是由一些与、或阵列加上触发器构成,其中与或阵列完成组合逻辑功能,触发器完成时序逻辑。

它的逻辑控制灵活,可反复编程,有利于系统的扩展和修改,而且其集成度高,保密性好。

在实际应用中,它体积小、功耗低、价格便宜,维护和升级都十分方便,具有较好的应用前景。

图2 硬件结构图数模转换器原理D/A转换器输入的是数字量,经转换后输出的是模拟量。

有关D/A转换器的技术性能很多,例如分辨率、建立时间、接口形式、偏移量误差以及线形度等等。

分辨率是D/A转换器对输入量变化敏感程度的描述,与输入数字量的位数有关。

数字量位数越多,分辨率也就越高。

建立时间是描述D/A转换速度快慢的一个参数,指从输入数字量变化到输出并达到终值误差正负(1/2)LSB(最低有效位)时所需时间。

通常以建立时间来表示转换速度。

D/A转换器与微机借口方便与否,主要决定于转换器本身是否带数据锁存器。

总的来说有两类D/A转换器,一类是不带锁存器的,另一类是带锁存器的。

带锁存器的D/A转换器,可以把它看作一个输出口,因此可直接在数据总线上,而不是另加锁存器。

偏移量误差是指输入数据量为0的时候,输出模拟量对0的偏移量。

这种误差可以通过DAC的外接VREF和电位计加以调整。

线形度是指DAC的实际转换特性曲线和理想直线之间的最大偏差。

D/A转换器有2大类:一类是在电子线路中使用,不能使能控制端口,只有数字量输入和模拟量输出;另一类带有使能控制端口,可以与微机直接连接。

此实验中采用后者的LM358,以实现数字信号到模拟信号的转换。

LM358转换模块8位D/A,I/O口定义如下:D0~D7:数据总线,输入口;/CE:转换允许,低电平有效;/CS:片选,低电平有效;有两种输出方式。

第一种,将短路子接在左侧的两个铜柱上,D/A转换输出到D/A OUT区域的第六个孔输出;第二种,将短路子接在右侧的两个铜柱上,D/A转换输出接到LM358的同相输入端。

LM358单电源二运放。

与AD558配合,将AD558的输出接到LM358的同相输入端,作为他的同相输入信号;在LM358的右上脚,有TEST IN模块,他的信号可作为LM358的反相输入端。

(2)单元电路的设计递增锯齿波信号产生模块a)代码:L IBRARY IEEE;--锯齿波递增USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY juchibo_add ISPORT (clk,reset:in std_logic;q:out std_logic_vector(7 downto 0));END;ARCHITECTURE behave OF juchibo_add ISBEGINPROCESS(clk,reset)VARIABLE 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;b)递增锯齿波仿真波形:图3递增锯齿波仿真波形c)递增锯齿波信号产生模块元件图:图4递增锯齿波元件图递减锯齿波信号产生模块a)代码:LIBRARY IEEE;--锯齿波递减USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY juchibo_jie ISPORT ( clk,reset:in std_logic;q:out std_logic_vector(7 downto 0));END;ARCHITECTURE behave OF juchibo_jie ISBEGINPROCESS(clk,reset)VARIABLE 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;b)递减锯齿波仿真波形:图5递减锯齿波原件图c)递减锯齿波信号产生模块元件图:图6递减锯齿波元件图三角波信号产生模块a)代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity sanjiaobo isport(reset:in std_logic;clk:in std_logic;q:out std_logic_vector(7 downto 0));end;architecture behave of sanjiaobo isbeginprocess(clk,reset)variable tmp:std_logic_vector(7 downto 0); variable a:std_logic;beginif reset='0' then q<="00000000";elsif clk'event and clk='1' thenif a='0' thenif tmp="11111110" thentmp:="11111111";a:='1';else tmp:=tmp+1;end if;elseif tmp="00000001" thentmp:="00000000";a:='0';else tmp:=tmp-1;end if;end if;end if;q<=tmp;end process;end;b)三角波仿真波形:图7三角波仿真波形c)三角波信号产生模块元件图:图8三角波元件图阶梯波信号产生模块a)代码:library ieee;--阶梯波use ieee.std_logic_1164.all;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY jietibo ISPORT (clk,reset:in std_logic;q:out std_logic_vector(7 downto 0));END;ARCHITECTURE behave OF jietibo ISBEGINPROCESS(clk,reset)VARIABLE 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+16;END IF;END IF;q<=tmp;END PROCESS;END;b)阶梯波仿真波形:图9阶梯波仿真波形c)阶梯波信号产生模块元件图:图10阶梯波元件图方波信号产生模块a)代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fangbo isport(clk,reset:in std_logic;q:out std_logic_vector(7 downto 0));end;architecture behave of fangbo issignal a:std_logic;beginprocess(clk,reset)variable tmp:std_logic_vector(7 downto 0);beginif reset='0' thena<='0';elsif clk'event and clk='1' 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 clk'event and clk='1' thenif a='1' thenq<="11111111";elseq<="00000000";end if;end if;end process;end;b)方波仿真波形:图11方波仿真波形c)方波信号产生模块元件图:图12方波元件图正弦波信号产生模块正弦波产生模块Zhengxianbo:a)代码:library ieee; --正弦波use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity Zhengxianbo isport(clk,clr:in std_logic;d:out integer range 0 to 255);end;architecture behave of Zhengxianbo isbeginprocess(clk,clr)variable tmp:integer range 0 to 63;beginif clr='0' thend<=0;elsif clk'event and clk='1' thenif tmp=63 thentmp:=0;elsetmp:=tmp+1;end if;case tmp 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; whenwhen 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; whenwhen 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 if;end process;end;b)正弦波仿真波形:图13正弦波仿真波形c)正弦波信号产生模块元件图:图14正弦波元件图波形输出选择器模块a)代码:LIBRARY IEEE;--选择器USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY Xuanzeqi ISPORT ( sel: in std_logic_vector(2 downto 0);d1,d2,d3,d4,d5,d6:in std_logic_vector(7 downto 0);q:out std_logic_vector(7 downto 0));END;ARCHITECTURE behave OF Xuanzeqi isBEGINPROCESS(sel)BEGINCASE sel ISWHEN "001"=>q<=d1;--锯齿波递增WHEN "010"=>q<=d2; --锯齿波递减WHEN "011"=>q<=d3; --三角波WHEN "100"=>q<=d4; --阶梯波WHEN "101"=>q<=d5; --方波WHEN "110"=>q<=d6; --正弦波WHEN OTHERS=>null;END CASE;END PROCESS;END;b)选择器仿真波形:图15选择器波形图c)选择器信号产生模块元件图:图16选择器元件图函数发生器的顶层设计(1)将上述模块生成符号,供顶层电路调用。

相关文档
最新文档