EDA实验 函数信号发生器
EDA实验-正弦波信号发生器设计
![EDA实验-正弦波信号发生器设计](https://img.taocdn.com/s3/m/32917f3b0c22590103029d8f.png)
实验八正弦信号发生器的设计一、实验目的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.函数信号发生器](https://img.taocdn.com/s3/m/80085279a76e58fafbb00352.png)
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课程设计(信号发生器)](https://img.taocdn.com/s3/m/dd955d78168884868762d68b.png)
课程设计报告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实验报告实验六信号发生器](https://img.taocdn.com/s3/m/b993d6658f9951e79b89680203d8ce2f006665a5.png)
南昌⼤学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课设分析方案--信号发生器的设计](https://img.taocdn.com/s3/m/f37a37f458f5f61fb73666c1.png)
《集成电路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信号发生器设计](https://img.taocdn.com/s3/m/8840392a83c4bb4cf6ecd10d.png)
目录摘要 (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课程信号发生器课程设计](https://img.taocdn.com/s3/m/7e5ed949a31614791711cc7931b765ce05087aea.png)
eda课程信号发生器课程设计一、课程目标知识目标:1. 学生能理解EDA课程中信号发生器的原理与功能,掌握相关电子元件的工作特性。
2. 学生能够掌握信号发生器的分类、特点及应用场景,了解各类信号发生器的优缺点。
3. 学生能够运用所学知识,分析并设计简单的信号发生器电路。
技能目标:1. 学生能够熟练运用EDA软件进行信号发生器电路的设计、仿真与调试。
2. 学生能够独立完成信号发生器的硬件搭建,并进行基本的性能测试。
3. 学生能够通过实际操作,提高动手实践能力,培养解决实际问题的能力。
情感态度价值观目标:1. 学生能够培养对电子工程的兴趣,激发创新意识,形成主动学习的习惯。
2. 学生能够培养团队协作精神,学会与他人沟通交流,共同解决问题。
3. 学生能够认识到信号发生器在现代社会中的重要作用,增强社会责任感和使命感。
本课程针对高年级学生,在分析课程性质、学生特点和教学要求的基础上,明确以上课程目标。
通过分解目标为具体的学习成果,使学生在掌握专业知识的同时,提高实践操作能力和团队协作能力,培养良好的情感态度价值观。
为后续的教学设计和评估提供明确的方向。
二、教学内容本章节教学内容依据课程目标,紧密结合教材,确保科学性和系统性。
主要内容包括:1. 信号发生器原理与分类:讲解信号发生器的基本原理、功能及分类,重点介绍函数发生器、脉冲发生器等常见类型的工作原理及应用。
2. 电子元件特性分析:分析常用电子元件(如运放、晶体管、二极管等)在信号发生器中的作用,掌握其工作特性。
3. 信号发生器电路设计:根据实际需求,设计不同类型的信号发生器电路,分析电路性能,优化设计方案。
4. EDA软件应用:教授学生如何使用EDA软件进行信号发生器电路的设计、仿真与调试,提高实际操作能力。
5. 硬件搭建与性能测试:指导学生搭建信号发生器硬件电路,进行基本性能测试,分析测试结果,找出问题并解决。
教学内容安排如下:1. 第1周:信号发生器原理与分类,电子元件特性分析。
EDA课程设计---函数信号发生器的设计
![EDA课程设计---函数信号发生器的设计](https://img.taocdn.com/s3/m/d237214c3c1ec5da50e27052.png)
摘要本说明书首先介绍了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,是硬件描述语言的业界标准之一。
它作为一个规范语言和建模语言,具有与具体硬件电路无关及设计平台无关的特性,而且还有很强的电路行为描述和建模能力,能从多个层次的数字系统进行建模和描述,从而大大简化了硬件设计的任务,提高了设计效率和可靠性。
EDA实验报告实验三:序列信号发生器与检测器设计++++
![EDA实验报告实验三:序列信号发生器与检测器设计++++](https://img.taocdn.com/s3/m/d15c59dd50e2524de5187e4f.png)
Nb大学实验报告学生姓名:EDA教父学号:6100xxxx99 专业班级:通信实验类型:□验证□综合□设计□创新实验日期:2012-10-15 实验成绩:实验三序列信号发生器与检测器设计一、实验目的1、进一步熟悉EDA实验装置和QuartusⅡ软件的使用方法;2、学习有限状态机法进行数字系统设计;3、学习使用原理图输入法进行设计二、设计要求完成设计、仿真、调试、下载、硬件测试等环节,在EDA实验装置上实现一个串行序列信号发生器和一个序列信号检测器的功能,具体要求如下:1、先用原理图输入法设计0111010011011010序列信号发生器,其最后6BIT数据用LED显示出来;2、再设计一个序列信号检测器,检测上述序列信号,若检测到串行序列“11010”则输出为“1”,否则输出为“0”;三、主要仪器设备1、微机1台2、QuartusII集成开发软件1套3、EDA实验装置1套四、实验原理1、序列信号发生器复位信号CLRN。
当CLRN=0时,使CNT=0000,当CLRN=1时,不影响程序运行,每来一个CLK脉冲CNT加一。
2、序列信号检测器状态转移图:五、实验步骤1、信号发生器1)建立工作库文件夹,输入设计项目VHDL代码,如下:L I B R A R Y I E E E;U S E I E E E.S T D_L O G I C_1164.A L L;U S E I E E E.S T D_L O G I C_A R I T H.A L L;U S E I E E E.S T D_L O G I C_U N S I G N E D.A L L;E N T I T Y X L S I G N A L16_1I SP O R T(C L K,C L R N:I N S T D_L O G I C;L E D:B U F F E R S T D_L O G I C_V E C T O R(5D O W N T O0);L E D O U T:O U T S T D_L O G I C_V E C T O R(5D O W N T O0);Z O U T:O U T S T D_L O G I C);E N D X L S I G N A L16_1;A R C H I T E C T U R E o n e O F X L S I G N A L16_1I SS I G N A L C N T:S T D_L O G I C_V E C T O R(3D O W N T O0);S I G N A L Z R E G:S T D_L O G I C;--S I G N A L C N T8:S T D_L O G I C_V E C T O R(2D O W N T O0);B E G I Np r o c e s s(c l K)b e g i nc a s e c n t i sW H E N"1000"=>L E D<="101001";W H E N"1001"=>L E D<="010011";W H E N"1010"=>L E D<="100110";W H E N"1011"=>L E D<="001101";W H E N"1100"=>L E D<="011011";W H E N"1101"=>L E D<="110110";W H E N"1110"=>L E D<="101101";W H E N"1111"=>L E D<="011010";W H E N"0000"=>L E D<="110100";W H E N"0001"=>L E D<="101001";W H E N"0010"=>L E D<="010011";W H E N"0011"=>L E D<="100111";W H E N"0100"=>L E D<="001110";W H E N"0101"=>L E D<="011101";W H E N"0110"=>L E D<="111010";W H E N"0111"=>L E D<="110100";W H E N O T H E R S=>L E D<=N U L L;E N D C A S E;E N D P R O C E S S;P R O C E S S(C L K,C L R N)B E G I NI F(C L R N='0')T H E N C N T<="0000";E L S EI F(C L K'E V E N T A N D C L K='1')T H E NC N T<=C N T+'1';E N D I F;E N D I F;E N D P R O C E S S;P R O C E S S(C N T)B E G I NW H E N"0000"=>Z R E G<='0';W H E N"0001"=>Z R E G<='1';W H E N"0010"=>Z R E G<='1';W H E N"0011"=>Z R E G<='1';W H E N"0100"=>Z R E G<='0';W H E N"0101"=>Z R E G<='1';W H E N"0110"=>Z R E G<='0';W H E N"0111"=>Z R E G<='0';W H E N"1000"=>Z R E G<='1';W H E N"1001"=>Z R E G<='1';W H E N"1010"=>Z R E G<='0';W H E N"1011"=>Z R E G<='1';W H E N"1100"=>Z R E G<='1';W H E N"1101"=>Z R E G<='0';W H E N"1110"=>Z R E G<='1';W H E N"1111"=>Z R E G<='0';W H E N O T H E R S=>Z R E G<='0';E N D C A S E;E N D P R O C E S S;Z O U T<=Z R E G;L E D O U T<=L E D;e n d o n e;2)对其进行波形仿真,如下图:2、信号检测器1)建立工作库文件夹,输入设计项目VHDL代码,如下:LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SCHK ISPORT(DIN, CLK, CLR : IN STD_LOGIC;ss : OUT STD_LOGIC_VECTOREND SCHK;ARCHITECTURE behav OF SCHK ISSIGNAL Q : INTEGER RANGE 0 TO 5 ;SIGNAL D : STD_LOGIC_VECTOR(5 DOWNTO 0);BEGIND <= "11010" ;PROCESS( CLK, CLR )BEGINIF CLR = '1' THEN Q <= 0 ;ELSIF CLK'EVENT AND CLK='1' THENCASE Q ISWHEN 0=> IF DIN = D(4) THEN Q <= 1 ; ELSE Q <= 0 ; END IF ;WHEN 1=> IF DIN = D(3) THEN Q <= 2 ; ELSE Q <= 0 ; END IF ;WHEN 2=> IF DIN = D(2) THEN Q <= 3 ; ELSE Q <= 2 ; END IF ;WHEN 3=> IF DIN = D(1) THEN Q <= 4 ; ELSE Q <= 0 ; END IF ;WHEN 4=> IF DIN = D(0) THEN Q <= 5 ; ELSE Q <= 2 ; END IF ;WHEN OTHERS => Q <= 0 ;END CASE ;END IF ;END PROCESS ;PROCESS( Q )BEGINIF Q = 5 THEN ss <= "1" ;ELSE ss <= "0" ;END IF ;END PROCESS ;END behav ;3)将其转换成可调用元件如图:3.序列信号检测器顶层文件1)调用序列信号发生器和序列信号检测器元件,建立工作库文件夹,输入设计项目原理图如下图:2)对总体进行波形仿真,如下图:4.管脚邦定六、实验心得只能copy到这,后面的自己写吧!DSFKLSD;GKJLSJDFG;LKSD;LG。
EDA课程设计的信号发生器
![EDA课程设计的信号发生器](https://img.taocdn.com/s3/m/cca1ce2dfc4ffe473368abf8.png)
重庆大学城市科技学院电气信息学院EDA课程设计报告课程题目函数信号发生器指导教师专业组员学号日期一摘要EDA技术作为现代电子设计的核心,它依赖于功能强大的计算机,在EDA 工具软件平台上,对以硬件描述语言HDL为系统逻辑描述手段完成的设计文件,自动的完成设计文件,自动的完成逻辑编译,逻辑化简,逻辑分割,逻辑综合,结构综合(布局布线),以及逻辑优化和仿真测试,直到完成既定的电子线路系统功能。
随着基于FPGA的EDA技术的发展和应用领域不断的扩大与深入,EDA技术在电子信息、通信、自动控制及计算机应用等领域的重要性日益突出。
随着技术市场与人才市场对EDA技术的需求不断提高,产品的市场效率和技术要求也将会影响到教学与科研。
本设计是一个基于VHDL的采用自顶向下设计方法实现的多功能函数信号发生器,该设计方法具有外围电路简单,程序修改灵活和调试容易等特点,并通过计算机仿真和实验证明了设计的正确性。
关键词:FPGA 信号发生器 VHDL 自顶向下二题目分析1、设计目的设计一个信号发生器,用于产生正弦波、方波、三角波、锯齿波信号2、设计要求设计一个信号发生器(1).能产生正弦波、方波、三角波、锯齿波。
(2).能够选择输出不同的波形。
(3).能够调节输出波形的频率。
三硬件电路设计由题目分析可知,要完成整体设计,可通过QuartusⅡ设计出以下各个模块的原理图:1)分频器的原理图2)地址发生器的原理图3)正弦波发生器的原理图4)方波信号发生器的原理图5)锯齿波信号发生器的原理图6)三角波信号发生器的原理图7)四选一选择器原理图其中各波形数据存储ROM的HEX数据文件分别如下各图所示:图3.9 正弦波数据图3.10 方波数据图3.11 锯齿波数据图3.12 三角波数据经过对设计要求的仔细分析与思考,把以上各模块根据其功能和设计思路设计出总的系统原理图如图3.13所示:图3.13 系统综合原理图对整个系统进行硬件测试的引脚设定锁定如图3.14所示,测试时采用的是GW48-EDA系统的电路模式6.图3.14 引脚锁定图四程序设计(1)数控分频器的程序设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DVF ISPORT( DIN: IN STD_LOGIC_VECTOR(7 DOWNTO 0);CLK: IN STD_LOGIC;FOUT:OUT STD_LOGIC);END DVF;ARCHITECTURE behav of DVF ISSIGNAL FULL: STD_LOGIC;BEGINP_REG: PROCESS(CLK)VARIABLE CNT8:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINIF CLK'EVENT AND CLK='1' THENIF CNT8="11111111" THENCNT8:=DIN;FULL<='1';ELSE CNT8:=CNT8+1;FULL<='0';END IF;END IF;END PROCESS P_REG;P_DIV:PROCESS(FULL)VARIABLE CNT2:STD_LOGIC;BEGINIF FULL'EVENT AND FULL='1' THENCNT2:=NOT CNT2;IF CNT2='1' THEN FOUT<='1'; ELSE FOUT<='0'; END IF;END IF;END PROCESS P_DIV;END behav;(2)地址发生器的程序设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT6B ISPORT (CLK,RST,EN : IN STD_LOGIC;DOUT : OUT STD_LOGIC_VECTOR(5 DOWNTO 0));END CNT6B;ARCHITECTURE behav OF CNT6B ISSIGNAL CQI : STD_LOGIC_VECTOR(5 DOWNTO 0);BEGINPROCESS(CLK, RST, EN)BEGINIF RST = '1' THEN CQI <= (OTHERS =>'0') ; --计数器异步复位ELSIF CLK'EVENT AND CLK='1' THEN --检测时钟上升沿IF EN = '1' THEN CQI <= CQI + 1;END IF;END IF;END PROCESS;DOUT<=CQI;END behav;(3)四选一选择器的程序设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY MUL41 ISPORT(A,B,C,D:IN STD_LOGIC_VECTOR(7 DOWNTO 0);S1,S0:IN STD_LOGIC;Y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END ENTITY MUL41;ARCHITECTURE ONE OF MUL41 ISSIGNAL S:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGINS<= S1 & S0;WITH S SELECTY<= A WHEN "00" ,B WHEN "01" ,C WHEN "10" ,D WHEN "11" ,"ZZZZZZZZ" WHEN OTHERS;END;(4)其余各波形数据存储ROM的设计可以利用MegaWizard Plug-In Manager定制信号数据ROM宏功能块,并将其相应的波形数据加载与定制的ROM中。
EDA课程设计——函数信号发生器
![EDA课程设计——函数信号发生器](https://img.taocdn.com/s3/m/a5ca3b7f7fd5360cba1adb7f.png)
EDA课程设计——函数信号发生器实验报告学院(系)专业、班级学生姓名学号小组其他队员:指导教师(1)实验要求(2)总体设计思路(3)程序仿真(4)实验结果(5)心得体会一.实验要求(1)利用VHDL语言设计一个多功能信号发生器,可以产生正弦波,三角波,锯齿波和方波的数字信号。
(2)焊接一个D/A转换器,对输出的数字信号转换成模拟信号并在示波器上产生波形。
(3)在电路板上可以对波形进行选择输出。
(4)在电路板上可以对波形的频率与幅度进行调节。
二.总体设计思路信号发生器主要由分频,波形数据的产生,四选一多路选择,调幅和D/A转换五个部分组成。
总体框架图如下:(1)分频分频器是数字电路中最常用的电路之一,在FPGA的设计中也是使用效率非常高的基本设计。
实现的分频电路一般有两种方法:一是使用FPGA芯片内部提供的锁相环电路,如ALTERA提供的PLL(Phase Locked Loop),Xilinx提供的DLL(Delay Locked Loop);二是使用硬件描述语言,如VHDL、Verilog HDL等。
本次我们使用VHDL进行分频器设计,将奇数分频,和偶数分频结合起来,可以实现50%占空比任意正整数的分频。
分频器原理图:在我们本次试验中的实现即为当按下按键时,频率自动减半。
如当输入为100MHZ,输出为50MHZ。
(2)信号的产生。
根据查找资料,我们最终确定了在QUARTUS中波形数据产生的方法,即利用地址信号发生器和LPM_ROM模块。
ROM 的地址信号发生器,有七位计数器担任。
LPM_ROM底层是FPGA 中的M4K等模块。
然后在VHDL顶层程序设计中将两部分调用从而实现信号的发生。
ROM中存放不同的初始化MIF文件(存放不同波形的数据)从而产生不同的波形。
信号产生模块:信号产生RTL图:此环节最重要的还有MIF文件的建立,经过查找资料,下载了MIFMAKER 2010软件,从而较为简单的产生了MIF文件。
eda课程设计 信号发生器
![eda课程设计 信号发生器](https://img.taocdn.com/s3/m/24a762ed551810a6f52486b5.png)
目录1. 引言 (1)2. VHDL语言及Quartus II软件介绍 (2)2.1 VHDL语言 (2)2.2 Quartus II软件 (2)3.总体设计思想及流程 (3)4. 具体程序实现模块 (4)4.1倍频器模块 (4)4.2主程序模块 (4)4.3 波形显示模块 (5)4.4频率显示模块 (5)5. 软件仿真 (6)6. 硬件显示 (7)7. 总结与体会 (8)参考文献 (9)附录 (10)附录1. 整体系统原理图 (10)附录2. 主程序 (11)1. 引言信号发生器是一种能够产生多种波形,如三角波、方波、锯齿波、正弦波的仪器。
信号发生器在电路实验和设备检测以及通信、雷达、导航、宇航等领域有广泛的应用。
正因为其在生活中应用的重要性,人们它做了大量的研究,总结出了许多实现方式。
可以基于FPGA 、VHDL、单片机、DOS技能、数字电路等多种方法实现。
简易信号发生器是信号发生器的一种。
可以实现信号发生器的一些基本功能。
本次课程设计要求设计的是一种简易信号发生器。
在本设计中要求设计的简易信号发生器是采用VHDL来实现的简易多功能信号发生器。
它能产生正弦波,三角波和方波。
且对各种波形的要求如下:(1)设计任意信号发生器,使之能够生成正弦波、三角波和方波;(2)电路的外部频率为40MHz,要求信号发生器可产生0-1KHz、1KHz~10KHz、10KHz~1MHz三档频率的信号;(3)要求具有波形选择和频率选择的功能;(4)在同一频率档内,可实现频率的加减;(5)要求显示波形的同时能够进行频率的调节;(6)要求能够显示波形:A——正弦波;B——三角波;C——方波;(7)要求能够显示频率值;(8)可用示波器进行波形的观测。
2. VHDL语言及Quartus II软件介绍2.1 VHDL语言本次设计使用的是VHDL语言。
VHDL 的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language,诞生于1982 年。
EDA实训函数信号发生器
![EDA实训函数信号发生器](https://img.taocdn.com/s3/m/c7ccac3dda38376bae1fae9b.png)
《EDA技术与应用》实训报告学号姓名指导教师:实训题目:1.系统设计1.1 设计要求1.1.1 设计任务设计一个多功能信号发生器1.1.2 技术要求①能够产生两种或以上种输出波形(正弦波、三角波、锯齿波等)。
②输出的波形的频率允许有多种选择。
③输出波形的幅度在1V~5V范围内。
④输出的波形能够用示波器测量。
1.2 方案比较运用了我们所学的Vverilog VHDL 语言及Quartus II 7.0软件,来完成并实现这一次实训。
1.3 方案论证1.3.1 总体思路多功能信号发生器的原理框图如图所示。
其中,fpq是分频器,用于对EDA实训仪主板上提供的20MHz的主频率进行分频,以得到满足多功能信号发生器设计需要的时钟频率,clk 是20MHz的主频率输入端,step是步长控制端,当step为0或1时,分别控制分频器的分频比,并由clk_out端输出到Lpm_counter0中,Lpm_counter0是参数可设置的计数器,用于产生lpm_rom4 ,lpm_rom2和lpm_rom3的8位位置,并从q[7..0]端输出到数据选择器abcd 中,并通过s1和s2的组合进行选择。
lpm_rom4, lpm_rom2和lpm_rom3是参数可设置的只读存储器,用于存放多功能信号发生器的波形数据信号,其中lpm_rom3存放的是正弦波,lpm_rom2中存放的是锯齿波,lpm_rom4中存放的是方波。
而波形的产生还需要一份Mif文件。
Mif是将波形分成N个点并将各点输入只读存储器中,这样只读存储器就可以输出相应的波形数据。
只读存储器的位置输出端接于s数据选择器的输入端abcd,而数据选择器便可通过改变从存储器中接受的数据进行区分选择,逐步地取出波形数据,经D/A转换后产生模拟波形输出。
1.3.2 设计方案2.各个模块程序的设计1分频器:module fpq(clk, newclk,step);input clk,step;output newclk;reg newclk;reg[24:0] cnter,sc;reg[1:0] stepcnt;always @(posedge step)beginstepcnt=stepcnt+1;beginif (stepcnt == 0) sc = 2000;else if (stepcnt == 1) sc = 200;else if (stepcnt == 2) sc = 20;else if (stepcnt == 3) sc = 2;else sc = 2000;endendalways @(posedge clk)beginif (cnter < sc) cnter = cnter+1;else cnter = 0;if (cnter < sc/2) newclk = 'b1;else newclk = 'b0;endendmodule2 数据选择器:module jsq(q,a,b,c,d,k1,k2);input k1,k2;input [7:0]a,b,c,d;output reg [7:0]q;always @(k1 or k2)begincase ({k1,k2})'b00: q=a;'b01: q=b;'b10: q=c;'b11: q=d;endcaseendendmodule3.整理与调试过程将示波器的探头与试验箱上DAOUT及GND进行连接,将试验箱接通电源,此时便产生了20MHz的时钟信号,由拨码开关s14和s15分别控制正弦波,方波,锯齿波与三角波的输出,可以在示波器上看到波形成,但是还需要在示波器上调整波的幅度等参数使之形成清晰稳定的波形。
EDA实训之多功能信号发生器
![EDA实训之多功能信号发生器](https://img.taocdn.com/s3/m/cca7281159eef8c75fbfb3d4.png)
桂林电子科技大学信息科技学院《EDA技术及应用》实训报告学号1251100113姓名王子琪指导教师:杨艺敏2014年4 月29 日多功能信号发生器1 系统设计多功能信号发生器的原理如图所示。
其中,fenpinqi是分频器,用于对EDA实训箱提供的20MHz的主频率进行分频,以得到满足多功能信号发生器设计需要的时钟频率,clk是20MHz的主频率输入端,k1,k2是控制端,当k1,k2改变时,分频器的分频比也随之改变,分频结果由cout端输出。
Lpm_counter1是参数可设置的计数器,用于产生lpm_rom0,lpm_rom1,lpm_rom2的8位地址,并从q[7..0]端输出。
lpm_rom0,lpm_rom1,lpm_rom2是参数可设置的只读存储器,用于存放多功能信号发生器的波形数据信号,mux4_1是数据选择器通过调节s来改变输出波形,经D/A转换后产生模拟波形输出。
1.1 设计要求能够产生两种或以上种输出波形(正弦波、三角波、锯齿波等)。
1.1.1 设计任务输出的波形的频率允许有多种选择。
输出的波形能够用示波器测量。
1.1.2 性能指标要求输出波形的幅度在1V ~5V 范围内。
1.2 设计思路及设计框图 1.2.1设计思路若设计的多功能信号发生器要实现将频率20Mhz 的验箱输出不同的频率则需要一个分频器,分频器的代码如附录中所示,分频器的输出端输出的频率再经过计数器后进入到各个波形的信号数据只读存储器中,之后经过信号数据选择器选择输出的波形。
1.2.2总体设计框图2 各个模块程序的设计数据选择器,分频器程序见下表计数器模块:计数器的元件生成时,首先在执行File 然后New ,打开一个 分频器 计数器 锯齿波正弦波 三角波 输出波形 选择器 新的模块或者原理图文件编辑窗口,双击窗口并选择libraries 栏中的选着arithemtic 的lpm_couter(计数器)lpm 元件,之后点击ok 并在弹出窗口中完成对参数的设置之后就可得到一个计数器元件。
EDA(FPGA)DDS信号发生器课程设计实验报告
![EDA(FPGA)DDS信号发生器课程设计实验报告](https://img.taocdn.com/s3/m/48fe751fb7360b4c2e3f640e.png)
《电子系统实验报告》课程设计总结报告题目:DDS信号发生器设计人员:学号:同组人员:班级:指导老师:日期:2010.06.12DDS信号发生器一主要功能要求:本课程系统DDS信号发生器设计我们组利用FPGA生成DDS函数信号发生器内核和利用89S52单片机最小系统实现频率字输出和波形选择。
DDS模块与单片机的通信采用SPI串口协议。
系统的16位频率字输出采用单片机的SPI串口协议输出,在DDS模块内部采用16位移位寄存器和16位锁存器进行串行数据到并行数据的转换。
从而实现单片机到DDS模块的通信。
DDS模块由频率累加器、相位累加器、波形查找表、D/A模块组成。
且系统时钟频率工作于75MHZ。
频率和相位累加器采用32位累加器。
波形查找表由三个ROM表组成,分别存储正弦波、方波、三角波的量化数据。
再用一个三选一选择器作为波形输出的控制器件,控制信号由单片机输出。
二进制振幅键控的数字基带信号由VHDL语言生成M序列的二进制信号。
正弦波信号由正弦波表输出。
二者再进过一个乘法器,再到D/A模块。
由此完成2ASK模块的设计。
二进制振幅键控的数字基带信号由VHDL语言生成M序列的二进制信号。
进过二选一模块选择移位全零或者全一,查ROM表,选择移位180度或者0度,再到D/A。
由此完成2PSK模块设计。
(注:正弦波进行1024次量化采用公式512+511*sin(6.18/1024*k)------k值为1到1024对方波进行1024次量化采用前512位量化数值全为1023 后512位量化数值全为0三角波进行1024次量化采用1.3.5.7…..1023.1021.1019………7.5.3.1的方式进行量化)二整体设计框图及整机概述三系统实现的功能(1)可显示信号发生器输出波形与频率。
(2)正弦波、方波、三角波输出频率范围为35HZ ~ 1.17MHZ。
(3)具有频率设置功能。
(4)输出信号频率稳定度优于0.1。
函数信号发射器的VHDL设计(EDA报告)
![函数信号发射器的VHDL设计(EDA报告)](https://img.taocdn.com/s3/m/a5cfb4c4af45b307e9719788.png)
EDA实习报告学院:电气信息工程学院专业班级:姓名:学号:指导教师:实验日期:目录一、实习题目 (2)二、实习目的 (2)三、实习技术要求1、FPGA与VHDL简介 (2)2、VHDL程序语言基本设计 (3)3、设计工具 (4)4、设计要求 (5)四、实现过程1、设计方案选择 (5)2、设计流程 (5)3、主要函数语句应用 (6)五、功能及代码1、四选一选择器 (8)2、方波发生器 (9)3、三角波发生器 (11)4、锯齿波发生器 (12)5、正弦波发生器 (13)6、顶层文件 (18)六、仿真及硬件测试 (20)七、总结 (23)八、参考文献 (23)函数信号发射器的VHDL设计一、实习题目函数信号发射器的VHDL设计二、实习目的通过实习,使学生能够熟练掌握1、VHDL硬件语言的编写2、数字逻辑电路的设计方法3、对学过知识的综合运用4、学会撰写实习报告和总结三、实习技术要求:1、FPGA与VHDL简介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)。
EDA实训函数信号发生起实训报告
![EDA实训函数信号发生起实训报告](https://img.taocdn.com/s3/m/77f84324647d27284b73517a.png)
EDA实训报告(基于FPGA的函数信号发生器接口模块)姓名刘斌学号20125403330111系部电子信息工程系专业12电子信息工程技术301班指导教师刘刚职称讲师2014年6月20日一、实验目的1.熟悉以FPGA芯片为核心的EDA技术的开发、研制过程。
2.能采用VHDL或verilog HDL语言进行基于FPGA的EDA技术的软、硬件设计。
4.掌握FPGA芯片为核心的EDA技术的硬件、软件调试方法。
5.熟悉Quartus II软件仿真模块的作用,基本掌握运用Quartus II软件对实际开发项目进行在线仿真、调试和配置的方法。
6.为今后从事EDA技术的开发和维护工作奠定基础。
二、课题任务设计一个能产生频率和电压均可调的正弦波、三角波、锯齿波、方波波等多种信号。
具有能切换各种波形的按键开关。
三、参考设计方案(1)参考硬件电路(外围扩展电路,FPGA核心模块采用试验箱中已设计好的模块)LCD1602显示模块硬件电路 TLC431稳压模块硬件电路TLC5615数模转换电路图按键模块电路LCD12864显示模块硬件电路TLC5620的电路(2) FPGA内部电路设计FPGA设计总体顶层原理图顶层电路FPGA内部电路主要分为按键消抖模块、按键控制模块、十进制转二进制模块、LCD1602显示模块、DDS产生模块、TLC5615数模转换器的控制模块。
四、原理图五、PCB原理图六、PCB制版安装调试(1)基于FPGA的函数信号发生器接口模块(2)四种波形正玄波三角波矩形波尖峰波(3)显示部分其显示为:频率f=1000HZ 电压Up=4.0u七、所需设备器材1.设备:微机、SOPC/EDA实验开发系统试验箱。
2.元器件、材料、工具:各课题组所需元器件、材料和工具见下表。
(1)LCD1602模块、LCD12864显示模块(2)TLC5615数模转换器、TLC5620数模转换器(3)按键(4)10K电阻、100欧电阻、1K电阻(5)104电容、10UF电容(6)四位一体数码管(7)蓝、黄、绿发光二极管(8)4007二极管、8550三极管(9)74LS138译码器(10)杜邦线。
EDA课程设计_DDS信号发生器
![EDA课程设计_DDS信号发生器](https://img.taocdn.com/s3/m/98a7557c580216fc700afd68.png)
电子课程设计------DDS信号发生器合成器学院:专业班级::学号:指导老师:2012年12月直接数字频率合成器(DDS)一、设计任务与要求直接数字频率综合技术,即DDS技术,是一种新型的频率合成技术和信号产生方法。
利用EDA技术和FPGA实现直接数字频率合成器DDS的设计。
设计要求:1、利用QuartusII软件实验箱实现DDS的设计;2、通过实验箱上的开关输入DDS的频率和相位控制字,并能用示波器观察加以验证;3、系统具有清零和使能的功能;4、DDS中的波形存储器模块用Altera公司的Cyclone系列FPGA芯片中的ROM实现。
二、总体框图图1 DDS总体框图1、模块的功能(1)频率预置和调节电路不变量K称作相位增量,也叫频率控制字。
此模块实现频率控制量的输入。
(2)相位累加器相位累加器是一个带有累加功能的N位加法器,它以设定的N位频率控制字K作为步长进行线性累加,当其和满时,计数器清零,并进行重新运算,它使输出频率正比于时钟频率和相位增量之积。
(3)相位寄存器相位寄存器是一个N位的寄存器,它对输入端输入的数据进行寄存,当下一个时钟到来时,输出寄存的数据。
图2 相位累加器相位累加器的组成=N位加法器+N位寄存器相位累加器的作用:在时钟的作用下,进行相位累加注意:当相位累加器累加满量时就会产生一次溢出,完成一个周期的动作。
(4)正弦查找表正弦查找表ROM是DDS最关键的部分,也是最复杂的部分,设计时首先需对正弦函数进行离散采样,接着将采样的结果放到ROM模块的对应存储单元中,每一位地址对应一个数值,输出为8位。
ROM中必须包含完整的正弦采样值,此设计采样256点,而且还要注意避免在按地址读取ROM容时可能引起的不连续点,避免量化噪音集中于基频的谐波上。
作用:进行波形的相位----幅值转换原理:ROM的N位地址把0° 360°的正弦角度离散成具有2N个样值的序列ROM的D位数据位则2N个样值的幅值量化为D位二进制数据(5) D/A转换器D/A转换器的作用:把已经合成的正弦波的数字量转换成模拟量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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)将上述模块生成符号,供顶层电路调用。