EDA技术与实践教程_第1页
EDA技术与实践教程_第2页
EDA技术与实践教程_第3页
EDA技术与实践教程_第4页
EDA技术与实践教程_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、EDA技术与实践教程论文课题:DDS信号源的设计学院:电子信息工程学院班级:通信12301班作者:吴丹学号:12011221其他成员:陈敬焰、杨柳DDS信号源的设计一DDS概论DDS是一种以全数字技术从相位概念出发直接合成所需波形的一种频率合成技术。目前使用最广泛的方式是利用高速存储器查找表,然后通过高速DAC输出已经用数字形式存入的正弦波。DDS技术一般都是以数字控制振荡器NCO(Numerically Controlled Oscillator)为核心,来产生频率可调的sin正弦波的波形的数字量表示的幅值。这些数字量表示的波形幅值再通过一个DAC(Digital-Analog Conver

2、ter),得到正弦波的模拟量波形。它是在时域中进行频率合成,从而能够对输出频率进行快速而且精确的控制,并且这种控制全部都是数字控制,因此可以提供非常高的频率精度。 二DDS工作原理DDS的基本原理是利用采样定理,通过查表法产生波形。DDS的结构有很多种,其基本的电路原理可用下图1 来表示。相位累加器由N位加法器与N位累加寄存器级联构成。每来一个时钟脉冲FS,加法器将频率控制字K与累加寄存器输出的累加相位数据相加,把相加后的结果送至累加寄存器的数据输入端。累加寄存器将加法器在上一个时钟脉冲作用后所产生的新相位数据反馈到加法器的输入端,以使加法器在下一个时钟脉冲的作用下继续与频率控制字相加。这样,

3、相位累加器在时钟作用下,不断对频率控制字进行线性相位累加。由此可以看出,相位累加器在每一个时钟脉冲输入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位,相位累加器的溢出频率就是DDS输出的信号频率。 用相位累加器输出的数据作为波形存储器(ROM)的相位取样地址,这样就可把存储在波形存储器内的波形抽样值(二进制编码)经查找表查出,完成相位到幅值转换。波形存储器的输出送到转换器,转换器将数字量形式的波形幅值转换成所要求合成频率的模拟量形式信号。低通滤波器用于滤除不需要的取样分量,以便输出频谱纯净的正弦波信号。 DDS在相对带宽、频率转换时间、高分辨力、相位连续性、正交输出以及集成化

4、等一系列性能指标方面远远超过了传统频率合成技术所能达到的水平,为系统提供了优于模拟信号源的性能。三实验过程1.实验目的(1)学习掌握DDS信号源的设计方法。 (2)学习较复杂的数字系统设计方法。2.实验内容总体设计框图如下图所示。总体框图中包含dds_sin,dds_rom,dds_fen三个模块。dds_fen根据需要生成的信号频率值,产生对应的时钟信号;dds_sin实现正弦波地址数据输出;dds_rom用来保存正弦波形数据。(1) 端口说明Clk:系统时钟Clr:清零信号Datain19.0:设定频率值Dataout7.0:频率输出(2)dds_ fen模块根据需要生成的信号频率值,产生

5、对应的时钟信号,是DDS设计的核心部分。Clk为系统时钟,clr为清零信号, datain为所需频率值。产生对应的后续模块的时钟模块。在后续正弦波产生模块中需要提供的时钟信号为所需频率值的64倍,通过相位累加即可的得所需频率。dds_fen模块的VHDL源代码如下。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY dds_fen ISGENERIC(WIDTH:INTEGER:=20;clk_k:INTEGER:=1000000

6、0);PORT(clk,clr:IN STD_LOGIC;datain:IN STD_LOGIC_VECTOR(WIDTH-1 DOWNTO 0);clk_out:OUT STD_LOGIC);END;ARCHITECTURE one OF dds_fen ISSIGNAL INTEGER RANGE 0 TO clk_k;SIGNAL data_c:STD_LOGIC_VECTOR(WIDTH-1+6) DOWNTO 0);SIGNAL clk_out_c:STD_LOGIC;BEGINdata_c<=datain&”000000”;PROCESS(clk,clr,datain

7、)BEGINIF clr=1THEN q<=0;ELSIF clkEVENT AND clk=1THENIF q<clk_k-CONV_INTEGER(data_c)THENq<=q+CONV_INTEGER(data_c);clk_out_c<=0;ELSEq<=0;clk_out_c<=1;END IF;END IF;END PROCESS;clk-out<=clk_out_c;END;(3)DDS_SIN模块实现正弦波地址数据输出DDS_SIN的VHDL源代码如下。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;

8、USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY dds_sin ISGENERIC(WIDTH:INTEGER:=6;depth:INTEGER:=64);PORT(clk,clr:IN STD_LOGIC;q:OUT STD_LOGIC_VECTOR(WIDTH-1 DOWNTO 0);END;ARCHITECTURE one OF dds_sin ISSIGNAL q1:INTEGER RANGE 0 TO (depth-1);BEGINPROCESS(clk,clr)BEGINIF clr=1THEN

9、 q1<=0;ELSIF clkEVENT AND clk=1THENIF q1<(depth-1) THENq1<=q1+1;ELSEq1<=0;END IF;END IF;END PROCESS;q<=CONV_STD_LOGIC_VECTOR(q1,WIDTH);END;(4)dds_rom模块用来保存正弦波波形数据Dds_rom模块的VHDL源代码如下LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;EN

10、TITY dds_rom ISGENERIC(addr:INTEGER:=6;width:INTEGER:=8);PORT( clk:IN STD_LOGIC;address:IN STD_LOGIC_VECTOR(addr-1 DOWNTO 0);dataout:OUT STD_LOGIC_VECTOR(WIDTH-1 DOWNTO 0);END;ARCHITECTURE one OF dds_rom ISSIGNAL q:INTEGER RANGE 0 TO 63;SIGNAL d:INTEGER RANGE 0 TO 255;BEGINq<=CONV_INTEGER(address

11、);PROCESS(clk)BEGINCASE q ISWHEN 00=>d<=255; WHEN 01=>d<=254; WHEN 02=>d<=252; WHEN 03=>d<=249;WHEN 04=>d<=245; WHEN 05=>d<=239; WHEN 06=>d<=233; WHEN 07=>d<=225;WHEN 08=>d<=217; WHEN 09=>d<=207; WHEN 10=>d<=197; WHEN 11=>d<=186

12、;WHEN 12=>d<=174; WHEN 13=>d<=162; WHEN 14=>d<=150; WHEN 15=>d<=137;WHEN 16=>d<=124,WHEN 17=>d<=112; WHEN 18=>d<=99; WHEN 19=>d<=87;WHEN 20=>d<=75, WHEN 21=>d<=64; WHEN 22=>d<=53; WHEN 23=>d<=43;WHEN 24=>d<=34; WHEN 25=>

13、;d<=26; WHEN 26=>d<=19; WHEN 27=>d<=13;WHEN 28=>d<=8; WHEN 29=>d<=4; WHEN 30=>d<=1; WHEN 31=>d<=0;WHEN 32=>d<=0; WHEN 33=>d<=1; WHEN 34=>d<=4; WHEN 35=>d<=8;WHEN 36=>d<=13; WHEN 37=>d<=19; WHEN 38=>d<=26; WHEN 39=>d&

14、lt;=34;WHEN 40=>d<=43; WHEN 41=>d<=53; WHEN 42=>d<=64; WHEN 43=>d<=75;WHEN 44=>d<=87; WHEN 45=>d<=99; WHEN 46=>d<=112; WHEN 47=>d<=124;WHEN 48=>d<=137; WHEN 49=>d<=150; WHEN 50=>d<=162; WHEN 51=>d<=174;WHEN 52=>d<=186; WHE

15、N 53=>d<=197; WHEN 54=>d<=207; WHEN 55=>d<=217;WHEN 56=>d<=225; WHEN 57=>d<=233; WHEN 58=>d<=239; WHEN 59=>d<=245;WHEN 60=>d<=249; WHEN 61=>d<=252; WHEN 62=>d<=254; WHEN 63=>d<=255;WHEN OTHERS=>NULL;END CASE;END PROCESS;dataout<

16、=CONV_STD_LOGIC_VECTOR(d,WIDTH);END;(5)三个元件图如下所示(6)锁引脚,图如下。(7)锁好引脚,编译成功后,下载到DE2板,扩展端口GPIO_07GPIO_00外接D/A变换后送示波器观察波形。嵌入式逻辑分析仪SignalTap,可以方便把实际检测的信号通过JTAG口回送到计计算机进行分析。如下图所示,为最后输出波形。四实验收获经过本次实验,我学到了很多东西。首先以前我对DDS的原理一无所知因为本次实验要用这个原理我就到图书馆去借有关的书籍、在网上查阅各种与DDS相关的资料,然后开始慢慢解了DDS原理,虽然我们只是做的比较简单的DDS信号源的设计,但这次试验,对我们来讲都是受益匪浅的一次经历。 还有以前我对QuartusII原理图的方式不是很熟悉,每次做老师布置的作业都会出现一些问题,不是代码容易写错就是引脚没有锁。但因为这次我们是小组合作的方式,我们三个齐头并进,刚开始都一起做,然后大家分工利用VHDL写出源代码,这也让我告诉自己不能够有错误,不然大家做的都会前功尽弃,于是我认真的输入代码,并编译成功后,给其他组员提供。在后面的工作中,我们又遇到了很多问

温馨提示

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

评论

0/150

提交评论