基于VHDL语言正弦波信号发生器--EDA实训报告-.doc
《基于VHDL语言正弦波信号发生器--EDA实训报告-.doc》由会员分享,可在线阅读,更多相关《基于VHDL语言正弦波信号发生器--EDA实训报告-.doc(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 EDA实训报告学生姓名: XXX 学 号: XXXXXXXXXXXX学 院: 理工学院 专 业: 电子科学与技术 题 目: 基于FPGA的正弦波发生器 指导教师: 安国臣 2013年1月课程设计成绩评定表学生姓名XXX学 号0XXXXX成绩专业班级电子科学与技术起止时间设计题目基于FPGA的正弦波发生器指导教师评语指导教师: 安国臣 年 月 日基于FPGA的正弦波发生器摘 要:本设计结合了EDA技术和直接数字频率合成(DDS)技术。EDA技术是现代电子设计技术的核心,是以电子系统设计为应用方向的电子产品自动化的设计技术。DDS技术则是最为先进的频率合成技术,具有频率分辨率高、频率切换速度快、
2、相位连续、输出相位噪声低等诸多优点。本文在对现有DDS技术的大量文献调研的基础上,提出了符合FPGA结构的正弦信号发生器设计方案并利用MAXPLUS软件进行了设计实现。文中介绍了EDA技术相关知识,同时阐述了DDS技术的工作原理、电路结构,及设计的思路和实现方法。经过仿真测试,设计达到了技术要求。关键词:现场可编程门阵列(FPGA);直接数字频率合成(DDS); 正弦波信号发生器一、DDS的基本原理正弦波信号发生器是由地址发生器和正弦波数据存储器ROM两块构成,输入为时钟脉冲,输出为8位二进制。1地址发生器的原理地址发生器实质上就是计数器,ROM的地址是6位数据,相当于64位循环计数器。2.只
3、读存储器ROM的设计(1)、VHDL编程的实现基本原理:为每一个存储单元编写一个地址,只有地址指定的存储单元才能与公共的I/O相连,然后进行存储数据的读写操作。逻辑功能:地址信号的选择下,从指定存储单元中读取相应数据。直接数字频率合成器(DDFS)的基本原理:DDS是利用采样定理,根据相位间隔对正弦信号进行取样、量化、编码,然后储存在EPROM中构成一个正弦查询表,通过查表法产生波形。它是由参考时钟、相位累加器、正弦查询表和DA转换器组成,如图1所示。图1 直接数字频率合成器原理框图相位累加器由N位加法器与N位累加寄存器级联构成,其原理框图如图2所示。每来一个时钟脉冲Fc,N位加法器将频率控制
4、数据K与累加寄存器输出的累加相位数据相加,把相加后的结果Y送至累加寄存器的输入端。累加寄存器一方面将在上一时钟周期作用后所产生的新的相位数据反馈到加法器的输入端,以使加法器在下一时钟的作用下继续与频率控制数据K相加;另一方面以相加后的结果形成正弦查询表的地址,取出表中与该相位对应的单元中的幅度量化正弦函数值,作为取样地址值送入幅度/相位转换电路。这样就可把存储在波形存储器内的波形抽样值(二进制编码)经查找表查出,完成相位到幅值转换。波形存储器的输出送到D/A转换器,D/A转换器将数字量形式的波形幅值转换成所要求合成频率的模拟量形式信号。图2 相位累加器原理框图由此可以看出,相位累加器在每一个时
5、钟脉冲输入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位。当相位累加器加满量时就会产生一次溢出,溢出频率就是DDS输出的信号频率。相位累加器的最大计数长度与正弦查询表中所存储的相位分隔点数相同,在取样频率(由参考时钟频率决定)不变的情况下,由于相位累加器的相位增量不同,将导致一周期内的取样点数不同,输出信号的频率也相应变化。如果设定累加器的初始相位,则可以对输出信号进行相位控制。由采样原理可知,如果使用两个相同的频率合成器,并使其参考时钟相同,同时设定相同的频率控制字、不同的初始相位,那么在原理上就可以实现输出两路具有一定相位差的同频信号。二、设计方案1.基于VHDL编程的设
6、计在地址信号的选择下,从指定存储单元中读取相应数据系统框图如下:2、总体设计框图 信号发生器结构框图三、原理图1、顶层原理图四、VHDL编程的实现1、 顶层文件library ieee;use ieee.std_logic_1164.all;entity sin is port(clk:in std_logic; b:in std_logic_vector(15 downto 0); qout:out std_logic_vector(6 downto 0); sel_out:out std_logic_vector(3 downto 0); q:out std_logic_vector(7
7、downto 0);end;architecture bhv of sin is component sineport(clk:in std_logic; div_set:in std_logic_vector(15 downto 0); qout:out std_logic_vector(7 downto 0) );end component;component seg_outport(ins:in std_logic_vector(3 downto 0); outs:out std_logic_vector(6 downto 0);end component;component selpo
8、rt(clk:in std_logic; qin:in std_logic_vector(15 downto 0); qout:out std_logic_vector(3 downto 0); sel_out:out std_logic_vector(3 downto 0);end component;signal se:std_logic_vector(3 downto 0);beginu1:sine port map(clk,b,q);u2:seg_out port map(se,qout);u3:sel port map(clk,b,se,sel_out);end;2、rom设计lib
9、rary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity sine is port(clk:in std_logic; div_set:in std_logic_vector(15 downto 0); qout:out std_logic_vector(7 downto 0) );end;architecture bhv of sine issignal addr:std_logic_vector(5 downto 0);signal cn
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 VHDL 语言 正弦波 信号发生器 EDA 报告
限制150内