第8章 应用VHDL语言方法设计简易正弦波信号发生器
VHDL正弦信号发生器设计

VHDL正弦信号发生器设计第一章绪论 (III)1.1 课题的研究背景与意义 (III)1.2 课题的国内外研究现状 (III)1.3 本文主要研究内容 (IV)第二章主要工具及其应用................................... 错误!未定义书签。
2.1 硬件设计技术...................................... 错误!未定义书签。
2.2 常用工具.......................................... 错误!未定义书签。
2.2.1 EDA .......................................... 错误!未定义书签。
2.2.2 VHDL ......................................... 错误!未定义书签。
2.2.3 DAC0832 ...................................... 错误!未定义书签。
2.3 本章小结.......................................... 错误!未定义书签。
第三章系统设计与实现 (VII)3.1倍频器模块 (VII)3.2主程序模块 (VII)3.3 波形显示模块 (VIII)3.4 频率显示模块 (VIII)第四章软件仿真 (IX)第五章硬件测试 (X)5.1 编译 (X)5.2 引脚的锁定 (XI)5.3 编程下载 (XI)5.4 硬件验证 (XII)5.5 波形显示 (XII)参考文献第一章绪论1.1 课题的研究背景与意义信号发生器作为一种常用的信号源,在现代通信领域和测量领域得到广泛的应用。
本文设计了基本设计方案,在现有单一信号发生器的基础上,加上其它信号模块,通过组合与设计,用数模转换器(D/A)将选中的信号源发出的信号由数字信号转换为模拟信号,再用示波器显示出来,其信号发生器的结构框图如图1-1所示。
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语言正弦波信号发生器设计

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相连,然后进行存储数据的读写操作。
②逻辑功能:地址信号的选择下,从指定存储单元中读取相应数据。
(2)、基于LPM宏功能模块的存储器的设计①LPM:Library of Parameterized Modules,可参数化的宏功能模块库。
②Quartus II提供了丰富的LPM库,这些LPM函数均基于Altera器件的结构做了优化处理。
③在实际的工程中,设计者可以根据实际电路的设计需要,选择LPM库中适当的模块,并为其设置参数,以满足设计的要求,从而在设计中十分方便的调用优秀的电子工程技术人员的硬件设计成果。
三、设计方案1.基于VHDL编程的设计在地址信号的选择下,从指定存储单元中读取相应数据系统框图如下:2.基于LPM宏功能模块的设计LPM宏功能具有丰富的由优秀的电子工程技术人员设计的硬件源代码可供调用,我们只需要调用其设计的模块并为其设计必要的参数即可。
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):反馈电阻端。
基于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]。
VHDL课程设计_函数信号发生器

学生姓名:学号:专业:年级班级:课程名称: 可编程数字系统设计实验项目: VHDL设计一信号发生器试验时间: 2014年5月24日指导老师:一、实验目的:熟悉EDA工具,掌握用VHDL语言进行数字系统设计的基本方法和流程,提高工程实践能力二、设计任务设计信号发生器,用VHDL语言描述,用QuartusII工具编译和综合,并在实验板上调试并实现所要求功能和技术指标,撰写实验报告,最后提交验收并答辩。
题目一:设计正弦波发生器题目二:设计锯齿波发生器题目三:设计三角波发生器三、功能要求与技术指标基本功能:(1 )模拟输出:由于FPGA上无D/A转换模块,因此设计中必须包含PWM发生模块,PWM输出后经过RC低通波电路转换为电压幅值正比于占空比的模拟电压。
滤波电路需自行设计。
(2)可以通过按键设定波形的频率,频率可以显示在数码管上。
(3)按钮开关输入须消抖处理。
在完成以上功能的前提下,可增加其它一些实用的功能。
要求:1、每个同学必须完成基本功能,在完成基本功能的前提下可自由发挥。
2、实验报告主要内容包含:设计原理、系统分析、程序设计、仿真/实验结果(例如波形图和实验板运行时的照片)、结论或分析、使用说明等,在最后附上主要源程序。
3、程序代码结构清晰,可读性强,关键语句应注释。
四、设计原理:原理图:原理图(PS:RESTA按键已被删除)频器将FPGA上的晶振进行分频所得的时钟信号作为计数时钟。
最后进行利用比较的方式得到占空比可调的脉冲波。
同时,分频器的分频系数可由键盘和数码管配合的显示数值进行运算反馈回PWM模块,达到频率可调的目的。
此外,另设一输出接至LED2,无法测量波形的情况下,利用呼吸灯的效果可检测PWM模块的完成与频率可调的成功性。
2、键盘设移位复位键,数码管计数键与频率传送键。
同时设立消抖计数值,当按键按下以后进行计数,在按键退出后,停止计数,取最后一次计数作为按键信号完成按键消抖。
按下移位复位键,数码管位选下一位,同时示数复位清零,并且循环移位,当按完4次按键后,数码管全部清零。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第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,弦波、方波、二角波、锯齿波和脉冲波等)信号,频率范围可从几个微赫到几十兆赫。
函数信号发生器在电路实验、设备检测、通信、宙达、导航、宇航等领域中具有十分广泛的用途。
本次设计只是简单完成正弦波输出的功能。
2.直接数字合成器DDS ( Direct Digtal Synthesizer)知识DDS中变要包括频率控制寄存器、高速相位累加器和正弦计算器二个部分,本次设计参考DDS设计电路结构。
•①频率变化知识。
用户通过输入频率控制码来改变输出信号频率。
•②相位变化知识。
通过相位累加器根据频率控制码在每个时钟周期内进行相位累加来改变相位值。
•③波形信号产生知识。
正弦计算器计算数字化正弦波幅度值,再把幅度值保在芯片的ROM中。
通过查表方式扫描数据输出。
3. DAC控制器的知识DDS芯片输出的一般是数字化的正弦波,因此还需经过高速D/A转换器和低通滤波器才能得到一个可用的模拟频率信号。
使用DAC时要考虑DAC的位数和转换时间。
常用的低速八位DAC为DAC0832。
二、计划采用DDS方式设计波形信号发生器,首先要了解DDS的结构和每个部分的功能,如图8-1所示,本次设计在CPLD/FPGA芯片内部由频率控制字、相位累加器、波形数据ROM二个部分构成,在外部把波形数据循环扫描后输出给DAC转换成模拟信号,通过低通滤波器平滑波形最后输出所需波形。
设计中着重完成以下部分内容。
•①完成频率控制器的设计。
此设计可以通过计数器、分频器设计原理完成。
•②相位控制设计。
对所查表中每个地址进行数据累加,即可改变信号输出相位。
•③计算正弦波各点的幅度离散值。
在此设计中我们把一个正弦波分离成128个点坐标。
由于VHDL只适合整数运算,此各离散值由计算器或公式求出,并存储在ROM中。
三、决策根据图8-1所示的正弦波信号发生器组成框图,分步完成正弦波信号发生器的设计。
其设计步骤可参考如下步骤进行。
•①设计一个分频器,要求能进行频率调整。
•②设计一个相位累加器,相位可以前后移位。
•③通过计算求出正弦波128个离散幅值,并进行储存。
•④将程序下载至FPGA/CPLD芯片,并和DAC0832连接。
•四、实施•如图8-1所示,完整的正弦波形发生器由3部分组成。
• 1.频率控制字设计•由于一个完整的波形由128个离散坐标点构成,所以要完整生成一个波形,则输入时钟需要128个脉冲。
从而可得知要输出1 Hz的正弦波,需要128 Hz的时钟,也就是输入输出分频比128/1。
若对输出信号频率进行控制,可通过对输入时钟分频来改变频率,分频系数可以改变。
•在下面实例中,“ clk”为芯片时钟输入端,可由品振提供高稳定度、高精度脉冲信号。
“d” 和“f”为分频系数控制脚,当f = “0”时,d脚每来一次脉冲,则分频系数自动加1;相反,若f = "1”时,根据d脚的脉冲数自动减。
•图8-2为频率控制的仿真图。
clk_o为输出脚进过分频后的时钟信号,该信号可以接入到下一级相位控制部分,然后进行相位调节。
•如果仿真结果正确,可以将设计的项目生成一个元件符号备用。
其步骤是:选择原理图文件为当前文件后,选择菜单命File → Create/LTpdate→Create Symbol Files for Current File即可。
本电路生成的元件符号如图8-3所示。
频率控制程序参考:process(clk)一基准时钟分频beginif clk'event and clk='1' thent0<=t0+tl;end if;end process;--------------------------------------process(d,f) ---频率控制字beginif d'event and d='1' thenif f='0' thentl<=t1+1;elset1 <=tl-1;end if;end if;end process;Clk_o<=t0(3);2.相位累加器设计对于正弦信号发生器,它的输出可以用下式来描述:(8-1)其中, 是该信号发生器的输出波形; 指输出信号对应的频率。
上式的表述对于时间t 是连续的,为了用逻辑实现该表达式,必须进行离散化处理,用基准时钟进行抽样,令正弦信号的相位为(8-2)在一个clk 周期内,相位的变化为(8-3) 其中,foot 指clk 的频率,2π可以理解为“满”相位。
为了对其进行数字量化,把2π切割成 份,由此每个clk 周期的相位增量 用量化值来表示:(8-4)且 为整数。
与式(8-3)联立,可得 (8-5) 显然,信号发生器的输出可描述为 (8-6) t f out πθ2=clkout clk out f f T f ππθ22==∆)2sin(t f A s out out π=N B 22∙∆≈∆πθθclkout N clk out Nf f B f f B ∙==∆∆2,2θθ)sin()](22sin[)sin(111θθθθπθθ∆∆-+=+∙=∆+=--B B Af B B A A S k k N k out其中, 指前一个clk 周期相位值,同样得出(8-7)由上面的推导可以看出,只要对相位的量化值进行简单的祟加运算,就可以得到正弦信号的当前相位值,而用于叠加的相位量量化值 决定了信号的输出频率 ,并呈现简单的线性关系:(8-8) 相位累加器的输入又可称为频率输入字,事实上当系统基准时钟 为 时, 就等于 。
图8-4为生成元件图,clk 为系统基准时钟分频后的时钟输入; p 为相位控制字端,每输入一个脉冲,波形前后移一个相位; d 为相位方向控制,当d = "0”时,相位后移,相反,当d= "1”时,相位前移。
相位控制仿真图如图8-5所示,当d=“0”时,P 输入每个脉冲后,相位地址Y 输出量发生改变,地址向后增加2。
相位控制程序参考:process(clk) --- 相位地址累加进程beginif clk'event and clk='1' thentt<=tt+1;elsett<=tt-1;end if;end if;end process;3.波形数据存储正弦ROM 的查找表完成 的查表转换,在这里可以理解成相位到幅度的转换,它的相位输入是相位调制器的输出,事实上就是ROM 的数据值输出送往D/A ,转化成模拟信号。
ROM 中的数据为正弦波信号一个周期的离散值,可以通过相关计算求出。
N k k B 2211∙≈--πθθclk out Nf f B ∙=∆2θ若需把正弦波改为锯齿波、方波信号输出,只需改变ROM中的数据值即可达到产生任意波的功能。
求正弦波离散点的公式见式(8-5)因输出数据值范围为0~255,相位离散点为128,则求出每个相位对应的数据:(8-9)波形分割的离散点越大,相隔相位差别越示,输出的波形失真也越示。
但离散点过多,输出信号的频率与输入信号频率分频比过大,难以提高输出信号频率。
图8-6中a[6..0]为相位地址输入,数据宽度为7位,寻址范围为0~127; D[7..0]为波形数据输出,接DAC数据脚,即可把数字量变化为模拟量输出。
ROM中数据与相位地址关系描述:process(a)beginCASE a ISWHEN 00=>D<=255;WHEN O1=>D<=251;WHEN 02=>D<=247;WHEN 03=>D<=243;WHEN 04=>D<=239;WHEN OS=>D<=235;WHEN 06=>D<=231;………… End process;4. 连接DAC0832设计DAC0832是八位D/A转换器,转换周期为1μs,其参考电压与+5 V工作电压相接(实用电路应接精密基准电压)。
DAC0832的引脚功能简述如下。
• ILE: 数据锁存允许信号,高电平有效,系统上己经连接+5V上• :写信号1, 2,低电平有效。
• :数据传送控制信号,低电平有效。
• :基准电压,可正,可负,-10~+10 V 。
• Rfb:反馈电阻端。
• IoutI/Iout2 CPIN11, PIN12)电流输出1和 2。
D/A转换量是以电流形式输出的,所以必须将电流信号变为电压信号。
• AGND/DGND CPIN3, PIN10):模拟地与数字地。
在高速情况下,此一地的连接线必须尽可能短,目系统的单点接地点必须在此连接线的某一点上。
在本次设计中,FPGA芯片的波形数据输出脚D [7..0]分别接到图8-7中的DA7-DAO脚上,DAC0832可以采用直接控制方式与FPGA同步工作,也可使、信号受控于FPGA工作;若直接工作,则将、直接接地即可;若受控于FPGA,则把该竹脚接在FPGA某个控制脚上,当该竹脚输出低电平时,DAC0832输出模拟波形。