基于FPGA的DDS实验报告(xidian ).docVIP

  1. 1、本文档共11页,可阅读全部内容。
  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文档。上传文档
查看更多
基于FPGA的DDS实现 实验报告 实验目的 1.课程目标 通过以多种方法设计并制作一个直接数字合成器,借以增强骨干班同志科研工作能力,学会具体制作实现DDS的实践技能,达到锻炼并提高学员解决实际问题能力的目的。 2.具体目的 (1)信息技术资料和科技文档的搜集、编写、翻译、处理能力,采用办公应用软件如OCR、CAT、FDF-WORD、PPT等。 (2)DDS芯片硬件与软件的设计、制作及编程能力,包括信号放大、衰减、匹配和变换能力,EDA软件仿真设计能力,FPGA编程应用能力。 (3)微机应用能力,仪器仪表知识和测量方法、技术。 实验原理 直接数字频率合成器(Direct Digital Synthesizer)是从相位概念出发直接合成所需波形的一种频率合成技术。DDS以较高的频率通过相位累加来产生给定频率的数字化波形。根据抽样理论,产生的最高频率不能超过1/2时钟频率(Nyquist速率)。 图1、正弦波形的采样及系统时钟频率形成 图1所示的是产生频率为1/8时钟频率的正弦波形的相位累加过程。圆周表示每个时钟周期(/4相位累加过程,圆周上的各点表示给定时刻的相位值,正弦波表示相应的幅度,相位到幅度的转化是通过查表来实现的。具体地说就是,在每个时钟周期内,存储在输入频率寄存器中的相位值和相位累加器中的值相加,利用得到的结果相位值查表,得到相应的正弦幅度值,最后输出该值。 DDS系统的基本原理图2: 图2 DDS系统的原理图 由图可对频率控制字的2进制码进行累加运算,产生的累加结果作为ROM查找表的取样地址值,而此查找表中储存了一个周期的正弦波幅度值。存储器ROM直到相位累加器加满产生溢出,从而完成一个周期,用ROM的输出值来驱动DAC,然后经滤波即可转换成所需要的模拟正弦波形也就是DDS信号的频率周期。2007年11月13日 实验小组成员 旷海、李文杰、朱建光、任宇峰 实验仪器 方正电脑一台 日立V-1565 (100MHz)示波器一台 FPGA设计板一块 Quartus II 7.1版软件 实验步骤 1、DDS的FPGA实现方案 a、VHDL语言编写程序实现12位累加器(源代码见后) b、delphi语言编程对正弦信号量化编码生成.mif文件 (1)编码方法:由于,,存在负值,二存储器中的数是以无符号的二进制数来表示,我们对正弦值统一加1,使,为了用二进制表示,考虑到查找表以12位输出,其能表示的最大十进制值为,我们对,取小数点后三位,提高了精度。 例如: DEPTH=4096; WIDTH=12; ADDRESS_RADIX=dec; DATA_RADIX = dec; CONTENT BEGIN 0 : 2000 ; 1 : 2003 ; 2 : 2006 ; …………… …………… 4095 : 1997 ; END; (2)mif文件实现:用delphi编程,对正弦值进行量化,一周期采样4096点,加上文件头和尾生成mif文件。 图3 mif文件生成器 c、调用LPM_ROM模块载入mif文件实现波形储存器 d、编译后生成矢量波形文件进行软件模拟仿真,查找FPGA编程中问题 e、根据实验板电路图对FPGA管脚进行配置,编译下载到实验板进行硬件实现,并用示波器观察输出波形,拨动开关实现频率控制字变化,观察输出波形的变化并记录 2、VHDL程序 (相位累加器的实现) --phase_add.vhd --clk为参考时钟信号 --K为频率控制字(8位) --Address为累加器输出作为正弦查找表的地址线 --调用库文件 LIBRARY ieee; USE ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; --实体部分 entity add_phase is port( clk: in std_logic; K: in std_logic_vector(7 downto 0 ); Address: out std_logic_vector(11 downto 0) ); end add_phase; --结构体 --B为累加步进 --acc为累加器中间变量 ARCHITECTURE SYN OF add_phase IS signal acc: std_logic_vector(11 downto 0); signal B: std_logic_vector(11 downto 0); begin process(clk) begin if(clkevent and clk=1) then B=

文档评论(0)

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

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

1亿VIP精品文档

相关文档