第8章__应用VHDL语言方法设计简易正弦波信号发生器_第1页
第8章__应用VHDL语言方法设计简易正弦波信号发生器_第2页
第8章__应用VHDL语言方法设计简易正弦波信号发生器_第3页
第8章__应用VHDL语言方法设计简易正弦波信号发生器_第4页
第8章__应用VHDL语言方法设计简易正弦波信号发生器_第5页
已阅读5页,还剩13页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第8章 应用VHDL语言方法设计简易正弦波信号发生器 【要求】 掌握运用VHDL语言设计正弦波形发生器的基本方法 【知识点】 理解函数发生器的含义 理解VHDL设计正弦波形发生器 理解FPGA对D/A的接口和控制技术 【重点和难点】 VHDL设计正弦波形发生器 FPGA对D/A的接口和控制技术8.1 工作任务的陈述与背景一、工作任务 用VHDL语言方法设计一个正弦波形发生器。 基本要求: 学习VHDL设计正弦波形发生器; 掌握FPGA对D/A的接口和控制技术。 完成波形发生器的设计、仿真测试及实验系统上的硬件测试。 二、任务背景 自20世纪60年代以来信号发生器有了迅速的发展,出现了函数发生器

2、。作为电子系统的重要组成部分,它广泛地应用在电子技术实验、自动控制系统和其他科研领域。早期的信号发生器多采用模拟电子技术,电路形式有采用运放及分离元件构成,也有采用单片集成函数发生器专用芯片。但采用模拟电路组成的函数信号发生器,一般可靠性较差,频率输出精度、稳定度低,调节不够精确,设计过程复杂、困难,功能不易扩展,尤其对任意波信号产生较为困难,难以满足科研和高精度实验的需要。现代高精度函数发生器设计采用了EDA技术,不但大大缩短了开发研制周期,提高了设计效率,输出信号频率精度和稳定度有很大提升,而目使系统具有结构紧读、设计灵活、实现简单、性能稳定的特点。 本章着重介绍采用EDA技术,应用VHD

3、L语言,在ALTERA公司的Quartus软件环境下,完成频率可调的正弦波发生器的程序设计过程,并进行逻辑综合、仿真和硬件下载,产生正弦波信号。8.2 完成工作任务的引导一、资讯 要完成本任务,需要了解以下方面的知识。 1.函数(波形)信号发生器的定义和作用 函数(波形)信号发生器能产生某些特定的周期性时间函数波形(C n1,弦波、方波、二角波、锯齿波和脉冲波等)信号,频率范围可从几个微赫到几十兆赫。函数信号发生器在电路实验、设备检测、通信、宙达、导航、宇航等领域中具有十分广泛的用途。本次设计只是简单完成正弦波输出的功能。 2.直接数字合成器DDS ( Direct Digtal Synthe

4、sizer)知识 DDS中变要包括频率控制寄存器、高速相位累加器和正弦计算器二个部分,本次设计参考DDS设计电路结构。 频率变化知识。用户通过输入频率控制码来改变输出信号频率。 相位变化知识。通过相位累加器根据频率控制码在每个时钟周期内进行相位累加来改变相位值。 波形信号产生知识。正弦计算器计算数字化正弦波幅度值,再把幅度值保在芯片的ROM中。通过查表方式扫描数据输出。3. DAC控制器的知识 DDS芯片输出的一般是数字化的正弦波,因此还需经过高速D/A转换器和低通滤波器才能得到一个可用的模拟频率信号。使用DAC时要考虑DAC的位数和转换时间。常用的低速八位DAC为DAC0832。二、计划 采

5、用DDS方式设计波形信号发生器,首先要了解DDS的结构和每个部分的功能,如图8-1所示,本次设计在CPLD/FPGA芯片内部由频率控制字、相位累加器、波形数据ROM二个部分构成,在外部把波形数据循环扫描后输出给DAC转换成模拟信号,通过低通滤波器平滑波形最后输出所需波形。设计中着重完成以下部分内容。 完成频率控制器的设计。此设计可以通过计数器、分频器设计原理完成。 相位控制设计。对所查表中每个地址进行数据累加,即可改变信号输出相位。 计算正弦波各点的幅度离散值。在此设计中我们把一个正弦波分离成128个点坐标。由于VHDL只适合整数运算,此各离散值由计算器或公式求出,并存储在ROM中。三、决策

6、根据图8-1所示的正弦波信号发生器组成框图,分步完成正弦波信号发生器的设计。其设计步骤可参考如下步骤进行。 设计一个分频器,要求能进行频率调整。 设计一个相位累加器,相位可以前后移位。 通过计算求出正弦波128个离散幅值,并进行储存。 将程序下载至FPGA/CPLD芯片,并和DAC0832连接。 四、实施 如图8-1所示,完整的正弦波形发生器由3部分组成。 1.频率控制字设计 由于一个完整的波形由128个离散坐标点构成,所以要完整生成一个波形,则输入时钟需要128个脉冲。从而可得知要输出1 Hz的正弦波,需要128 Hz的时钟,也就是输入输出分频比128/1。若对输出信号频率进行控制,可通过对

7、输入时钟分频来改变频率,分频系数可以改变。 在下面实例中,“ clk”为芯片时钟输入端,可由品振提供高稳定度、高精度脉冲信号。“d” 和 “f”为分频系数控制脚,当f = “0”时,d脚每来一次脉冲,则分频系数自动加1;相反,若f = 1”时,根据d脚的脉冲数自动减。 图8-2为频率控制的仿真图。clk_o为输出脚进过分频后的时钟信号,该信号可以接入到下一级相位控制部分,然后进行相位调节。 如果仿真结果正确,可以将设计的项目生成一个元件符号备用。其步骤是:选择原理图文件为当前文件后,选择菜单命File Create/LTpdate Create Symbol Files for Current

8、 File即可。本电路生成的元件符号如图8-3所示。 频率控制程序参考: process(clk)一基准时钟分频 begin if clkevent and clk=1 then t0=t0+tl; end if;end process;-process(d,f) -频率控制字 begin if devent and d=1 then if f=0 then tl=t1+1; else t1 =tl-1; end if; end if; end process; Clk_o=t0(3); 2.相位累加器设计 对于正弦信号发生器,它的输出可以用下式来描述: (8-1) 其中, 是该信号发生器的输

9、出波形; 指输出信号对应的频率。上式的表述对于时间t是连续的,为了用逻辑实现该表达式,必须进行离散化处理,用基准时钟进行抽样,令正弦信号的相位为 (8-2) 在一个clk周期内,相位的变化为 (8-3)其中,foot指clk的频率,2可以理解为“满”相位。为了对其进行数字量化,把2切割成 份,由此每个clk周期的相位增量 用量化值 来表示: (8-4) 且 为整数。与式(8-3)联立,可得 (8-5) 显然,信号发生器的输出可描述为 (8-6) 其中, 指前一个clk周期相位值,同样得出 (8-7) 由上面的推导可以看出,只要对相位的量化值进行简单的祟加运算,就可以得到正弦信号的当前相位值,而

10、用于叠加的相位量量化值 决定了信号的输出频率 ,并呈现简单的线性关系: (8-8) 相位累加器的输入又可称为频率输入字,事实上当系统基准时钟 为 时, 就等于 。 图8-4为生成元件图,clk为系统基准时钟分频后的时钟输入; p为相位控制字端,每输入一个脉冲,波形前后移一个相位; d 为相位方向控制,当d = 0”时,相位后移,相反,当d= 1”时,相位前移。 相位控制仿真图如图8-5所示,当d=“0”时,P输入每个脉冲后,相位地址Y输出量发生改变,地址向后增加2。 相位控制程序参考: process(clk) - 相位地址累加进程 begin if clkevent and clk=1 th

11、en tt=tt+1; else ttDDDDDDD=231; End process; 4. 连接DAC0832设计 DAC0832是八位D/A转换器,转换周期为1s,其参考电压与+5 V工作电压相接(实用电路应接精密基准电压)。 DAC0832的引脚功能简述如下。 ILE: 数据锁存允许信号,高电平有效,系统上己经连接+5V上 :写信号1, 2,低电平有效。 :数据传送控制信号,低电平有效。 :基准电压,可正,可负,-10+10 V 。 Rfb:反馈电阻端。 IoutI/Iout2 CPIN11, PIN12)电流输出1和 2。 D/A转换量是以电流形式输出的,所以必须将电流信号变为电压信

12、号。 AGND/DGND CPIN3, PIN10):模拟地与数字地。在高速情况下,此一地的连接线必须尽可能短,目系统的单点接地点必须在此连接线的某一点上。 在本次设计中,FPGA芯片的波形数据输出脚D 7.0分别接到图8-7中的DA7-DAO脚上,DAC0832可以采用直接控制方式与FPGA同步工作,也可使 、 信号受控于FPGA工作;若直接工作,则将 、 直接接地即可;若受控于FPGA,则把该竹脚接在FPGA某个控制脚上,当该竹脚输出低电平时,DAC0832输出模拟波形。1.单独增加频率控制字对输出频率的影响(图8-9、图8-10) 从图中看出,当fre_d的脉冲个数增加时,输出D的频率与

13、clk的频率差距越来越示,也就是输出信号的频率增大。 当fre_f为“1”时,随着fre_d的脉冲输入,信号输出脚的频率降低,从而达到频率可调的功能。2.相位控制仿真(图8-11、图8-12) 部分波形数据对照表如图8-13: 从仿真图和波形数据可以看出,通过相位控制,使输出波形的数据提前或延迟输出。五、检查 以上对一个正弦信号波发生器的各组成部分进行了说明并给出了参考电路,读者可自行按照本设计方案的组成原理框图(如图8-1所示)将各部分连接起来,组成一个完整的正弦波信号发生器。频率控制字由fre_d和fre_f同时控制,fre_f控制频率的增减,fre_d控制频率增量大示。clk是系统基准时

14、钟,由晶振提供。 若要提高输出信号最高频率,则品振频率必须提高。Pha_p和pha_f共同负责相位移动。控制方法和频率控制相同。以下给出采用本方案设计而成的正弦波信号发生器整体框图(图8-8)和仿真波形图(图8-9和图8-10),以供读者设计时参考。 通过仿真效果达到预期设计目的,选择FPGA芯1k30TC144-3进行下载和验证。 引脚分配见表8-1(对于1 K30TC 144-3器件)。 六、评价 1.设计方案的改进 本设计方案可以做以下方面功能改进: 正弦波信号发生器只是函数信号发生器中一个典型信号,读者可以根据本次设计思路,只击修改波形数据中的离散幅值,即可增加方波信号、二角波信号及任

15、意波信号功能。 频率控制的步进精度可以进一步提高,同时频率控制方式可以改进为加减控制方式,以利于操作。 正弦波信号设计的重要调试过程,遇到具体问题的解决方法。 通过示波器查看正弦波信号设计的波形是否失真。 用频率计记录正弦波信号发生器的输出频率,通过调整频率大示,查看频率步进值,并进行记录。 对扩大本正弦波信号发生器的输出频率、提高频率计的性能提出设计思路。 总结本次设计的收获、存在问题。 8.3相关技术基本知识与基本技能一、频率控制字参考设计例8.1fre.vhdlibrary ieee;use ieee.std_logic_1164.a11;use ieee.std_logic_ unsi

16、gned.all; - entity fre isport(clk ,d,f: in std_ logic; clk_o:out std_ logic);end; - architecture choice of fre issignal t0: std_ logic_ vector(3 downto 0);signal t1:integer range 0 to 512;Begin process(clk) begin if clkevent and clk=1 then t0=t0+tl; end if; end process; process(d,0 begin if devent a

17、nd d=1 then if f=0 then tl=t1+1; else tl=tl一1; end if; end if; end process;clk_o=t0(3);end choice;二、相位累加器参考设计例8.2 phase.vhdlibrary ieee;use ieee.std_logic_1164.a11;use ieee.std_logic_ unsigned.all;entity phase is port (clk,p,d: in std_ logic; Y:out std_ logic_ vector(6 downto 0); end; architecture c

18、hoice of phase is signal bb:std_logic_ vector(6 downto 0); signal tt:integer range 0 to 127; begin process(clk) begin if clkevent and clk=1 then bb=bb+1; end if; end process; process(p,d) begin if pevent and p= 1 then if d=0 then tt=tt+ 1; else tt=tt-1; end if; end if; end process; yDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论