基于VHDL语言正弦波信号发生器EDA实训报告.docVIP

基于VHDL语言正弦波信号发生器EDA实训报告.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于VHDL语言正弦波信号发生器EDA实训报告

EDA实训报告 学生姓名: XXX 学 号: XXXXXXXXXXXX 学 院: 理工学院 专 业: 电子科学与技术 题 目: 基于FPGA的正弦波发生器 指导教师: 安国臣 2013年1月 课程设计成绩评定表 学生姓名 XXX 学 号 0XXXXX 成绩 专业班级 电子科学与技术 起止时间 设计题目 基于FPGA的正弦波发生器 指 导 教 师 评 语 指导教师: 安国臣 年 月 日 基于FPGA的正弦波发生器 摘 要:本设计结合了EDA技术和直接数字频率合成(DDS)技术。EDA技术是现代电子设计技术的核心,是以电子系统设计为应用方向的电子产品自动化的设计技术。DDS技术则是最为先进的频率合成技术,具有频率分辨率高、频率切换速度快、相位连续、输出相位噪声低等诸多优点。 本文在对现有DDS技术的大量文献调研的基础上,提出了符合FPGA结构的正弦信号发生器设计方案并利用MAXPLUSⅡ软件进行了设计实现。文中介绍了EDA技术相关知识,同时阐述了DDS技术的工作原理、电路结构,及设计的思路和实现方法。经过仿真测试,设计达到了技术要求。 关键词:现场可编程门阵列(FPGA);直接数字频率合成(DDS); 正弦波信号发生器 一、DDS的基本原理 正弦波信号发生器是由地址发生器和正弦波数据存储器ROM两块构成,输入为时钟脉冲,输出为8位二进制。 1. 地址发生器的原理 地址发生器实质上就是计数器,ROM的地址是6位数据,相当于64位循环计数器。 2.只读存储器ROM的设计 (1)、VHDL编程的实现 ①基本原理:为每一个存储单元编写一个地址,只有地址指定的存储单元才能与公共的I/O相连,然后进行存储数据的读写操作。 ②逻辑功能:地址信号的选择下,从指定存储单元中读取相应数据。 直接数字频率合成器根据相位间隔对正弦信号进行取样、量化、编码,然后储存在EPROM中构成一个正弦查询表由参考时钟、相位累加器、正弦查询表和D/A转换器组成,如图所示。 图1 直接数字频率合成器原理框图 相位累加器由N位加法器与N位累加寄存器级联构成,以相加后的果形成正弦查询表的地址,取出表中与该相位对应的单元中的幅度量化正弦函数值, 图2 相位累加器原理框图 由此可以看出,相位累加器在每一个时钟脉冲输入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位。当相位累加器加满量时就会产生一次溢出,溢出频率就是DDS输出的信号频率。 相位累加器的最大计数长度与正弦查询表中所存储的相位分隔点数相同,在取样频率(由参考时钟频率决定)不变的情况下,由于相位累加器的相位增量不同,将导致一周期内的取样点数不同,输出信号的频率也相应变化。如果设定累加器的初始相位,则可以对输出信号进行相位控制。由采样原理可知,如果使用两个相同的频率合成器,并使其参考时钟相同,同时设定相同的频率控制字、不同的初始相位,那么在原理上就实现输出两路具有一定相位差的同频信号 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 downto 0)); end; architecture bhv of sin is component sine port(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_out port(ins:in std_logic_vector(3 downto 0); outs:out

文档评论(0)

ipad0d + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档