直接数字频率合成器设计报告_第1页
直接数字频率合成器设计报告_第2页
直接数字频率合成器设计报告_第3页
直接数字频率合成器设计报告_第4页
直接数字频率合成器设计报告_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

课程设计:直接数字频率合成器设计PAGEPAGEPAGE21江西理工大学应用科学学院SOPC/EDA综合课程设计报告设计题目:直接数字频率合成器设计设计者:罗勇学号:08040110109班级:电气工程及其自动化101班指导老师:王忠锋完成时间:2013年设计报告综合测试总评格式(10)内容(40)图表(10)答辩(20)平时(20)目录TOC\o"1-3"\h\z31074引言 24186一、课程设计的内容 313381二、课程设计的目的 418686三、设计背景和需要分析 562923.1、DDS基本原理 5289133.2、DDS的结构原理 65492四、开发环境与准备工作 8151054.1、QuattusⅡ软件简介 8262474.2、MATLAB7.0简介 8202584.3、利用FPGA设计DDS 921694五、设计步骤方法与实现 1017104FPGA设计DDS电路的具体实现 1011085.1、相位累加器部分 10172265.2、相位/幅度转换部分 10183865.3、ROM查找表的生成 11210395.4、D/A转换部分 115805六、设计仿真与实验结果 12235926.1、DDS仿真生成截图 12229836.2、ROM仿真生成截图 1386796.3、SUM99仿真生成截图 13176656.4、REG1仿真生成截图 14281516.5、REG2仿真生成截图 155489致谢 1632229参考文献 1728399附录 18引言直接数字频率合成(DirectDigitalFrequencySynthesis,即DDFS,一般简称DDS)是从相位概念出发直接合成所需要波形的一种新的频率合成技术。目前各大芯片制造厂商都相继推出采用先进CMOS工艺生产的高性能和多功能的DDS芯片(其中应用较为广泛的是AD公司的AD985X系列),为电路设计者提供了多种选择。然而在某些场合,专用的DDS芯片在控制方式、置频速率等方面与系统的要求差距很大,这时如果用高性能的FPGA器件设计符合自己需要的DDS电路就是一个很好的解决方法。ACEX1K是Altera公司着眼于通信、音频处理及类似场合的应用而推出的FPGA器件芯片系列,总的来看将会逐步取代FLEX10K系列,成为首选的中规模器件产品。它具有如下特点:(1)ACEX1K采用查找表(LUT)和EAB(嵌入式阵列块)相结合的机构,特别适用于实现复杂逻辑功能和存储器功能,例如通信中应用的数据信号处理、多通道数据处数据传递和微控制等。(2)典型门数为1万到10万门,有多达49152位的RAM(每个EAB有4096位RAM)。(3)器件内核连续式延时可预测的快速通道互连(FastTarck);具有实现快速加法器、计数器、乘法器和比较器等算术功能的专用进位链和实现高速多扇入逻辑功能的专用级连链。ACEXEP1K50具有典型门数5000门,逻辑单元2880个,嵌入系统块10个,完全符合单片实现DDS电路的要求。因此采用它设计DDS电路,设计工具为Altera的下一代设计工具Quartus软件。随着集成电路技术和器件水平的提高,直接数字频率合成(DDS)技术得到了飞速的发展,它有别于其他频率合成方法,具有频率分辨率高,频率转换速度快,相位可连续线性变化等优点,并且其数字压控振荡器(NCO)的相位、幅值均已数字化,可以直接进行高精度的数字调制等特性一、课程设计的内容1971年,美国学者J.Tierncy、C.M.Reader和B.Gold提出了以全数字技术从相位概念出发直接合成所需波形的一种新的频率合成原理。随着技术和水平的提高,一种新的频率合成技术——直接数字频率合成(DDS,DirectDigtalSynthesis)技术得到了飞速发展。DDS技术是一种把一系列数字形式的信号通过DAC转换成模拟形式的信号合成技术,目前使用最广泛的一种DDS方式是利用高速存储器作查找表,然后通过高速DAC输出已经用数字形式存入的正弦波。DDS技术具有频率切换时间短(<20ns),频率分辨率高(0.01Hz),频率稳定度高,输出信号的频率和相位可以快速程控切换,输出相位可连续,可编程以及灵活性大等优点,它以有别于其他频率合成方法的优越性能和特点成为现代频率合成技术中的姣姣者。DDS广泛用于接受机本振、信号发生器、仪器、通信系统、雷达系统等,尤其适合跳频无线通信系统。具体工作过程如下:每来一个时钟脉冲,N位加法器将频率控制数据X与累加寄存器输出的累加相位数据相加,把相加后的结果Y送至累加寄存器的输入端。累加寄存器一方面将在上一时钟周期作用后所产生的新的相位数据反馈到加法器的输入端,一使加法器在下一时钟的作用下继续与频率控制数据X相加;另一方面将这个值作为取样地址值送入幅度/相位转换电路(即图1中的波形存储器),幅度/相位转换电路根据这个地址值输出相应的波形数据。最后经D/A转换器和低通滤波器将波形数据转换成所需要的模拟波形。相位累加器在基准时钟的作用下,进行线性相位累加,当相位累加器累加满量时就会产生一次溢出,这样就完成了一个周期,这个周期也就是DDS信号的一个频率周期。二、课程设计的目的直接数字频率合成技术在数字通信系统中被广泛采用。在研究直接数字频率合成技术基本原理的基础上,基于FPGA对直接数字频率合成器进行了建模设计,通过仿真分析,证明这种设计方法的正确性和实用性。关键词:直接数字频率合成;FPGA;仿真分析正弦信号发生器作为电子技术领域中最基本的电子仪器,广泛应用于航空航天测控、通信系统、电子对抗、电子测量、科研等各个领域中。随着电子信息技术的发展,对其性能的要求也越来越高,如要求频率稳定性高、转换速度快,具有调幅、调频、调相等功能,另外还经常需要两路正弦信号不仅具有相同的频率,同时要有确定的相位差[4]。随着数字信号处理和集成电路技术的发展,直接数字频率合成(DDS)的应用也越来越广泛。DDS具有相位和频率分辨率高、稳定度好、频率转换时间短、输出相位连续、可以实现多种数字与模拟调制的优点,而可编程门阵列(FPGA)具有集成度高、通用性好、设计灵活、编程方便、可以实现芯片的动态重构等特点,因此可以快速地完成复杂的数字系统。由于模拟调相方法有生产性差、调试不方便、调制度控制不精确等缺点,因此采用数字方法实现各种模拟调制也越来越普遍[5]。现在许多DDS芯片都直接提供了实现多种数字调制的功能,实现起来比较简单,而要实现模拟线性调制具有一定的难度。因此本设计介绍了一种由单片机控制,并采用FPGA实现DDS功能,产生频率和相位可调的正弦波信号的方法。设计背景和需要分析3.1、DDS基本原理对于正弦信号发生器,其输出信号波形(1)式中————输出信号对应的频率。式(1)的表述对于时间t是连续的,为了用数字逻辑实现该表达式,必须进行离散化处理。用基准时钟clk进行抽样,令正弦信号的相位(2)在一个clk周期内,相位的变化量(3)其中指clk的频率,对于,可以理解成“满”相位。为了对进行数字量化,把切割成等份,由此,每个clk周期的相位增量可用量化值,其中(4)来表示为整数,与式(3)联立求解可得即(5)故信号发生器的输出(6)是前一个clk周期的相位值,同样可以得出(7)基本DDS结构常用的参考量有:DDS的输出频率(8)DDS的频率分辨率(9)DDS的频率输入字(10)由上面的推导可以看出,只要对相位量化值进行简单的累计运算,就可以得到正弦信号的当前相位值;就可以得到正弦信号的当前相位值;而用于累加的相位增量量化值决定了信号的输出频率,并呈现简单的线性关系。DDS就是根据上述原理而完成数字控制频率合成。DDS基本原理如图1所示。图1DDS的基本原理图3.2、DDS的结构原理DDS的基本原理是利用采样定理,通过查表法产生波形。DDS的结构有很多种,其基本的电路原理如图2所示。D/A转换器相位累加器波形D/A转换器相位累加器波形存储器低通滤波器图2直接数字频率合成器原理框图相位累加器由N位加法器与N位累加寄存器级联构成。每来一个时钟脉冲,加法器将频率控制字K与累加寄存器输出的累加相位数据相加,把相加后的结果送至累加寄存器的数据输入端。累加寄存器将加法器在上一个时钟脉冲作用后所产生的新相位数据反馈到加法器的输入端,以使加法器在下一个时钟脉冲的作用下继续与频率控制字K相加。这样,相位累加器在时钟作用下,不断对频率控制字进行线性相位累加。由此可以看出,相位累加器在每一个时钟脉冲输入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位,相位累加器的溢出频率就是DDS输出的信号频率。用相位累加器输出的数据作为波形存储器(ROM)的相位取样地址,这样就可把存储在波形存储器内的波形存储器内的波形抽样值(二进制编码)经查找表查出,完成相位到幅值转换。波形存储器的输出送到D/A转换器,D/A转换器将数字量形式的波形幅值转换成所要求合成频率的模拟量形式信号。低通滤波器用于滤除不需要的取样分量,以便输出频谱纯净的正弦波信号。图3相位累加器原理框图开发环境与准备工作4.1、QuattusⅡ软件简介QuattusⅡ是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。QuattusⅡ可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具体运行速度快,界面同意,功能集中,易学易用等特点。QuattusⅡ支持Altera的IP核,包含LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外,QuattusⅡ通过和DSPBuider工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。4.2、MATLAB7.0简介MATLAB产品族它们的一大特性是有众多的面向具体应用的工具箱和仿真块,包含了完整的函数集用来对图像信号处理、控制系统设计、神经网路等特殊应用进行分析和设计。它具体数据采集、报告生成和MATLAB语言编程产生独立C/C++代码等功能。MATLAB产品族具有下列功能:数据分析;数值和符号计算;工程与科学绘图;控制系统设计;数字图像信号处理;财务工程;建模、仿真、原型开发;应用开发;图形用户界面设计等。MATLAB产品族被广泛地应用于信号与图像处理、控制系统设计、通讯系统仿真等诸多领域。开放式的结构使MATLAB产品族很容易针对特定的需求进行扩充,从而在不断深化对问题的认识同时,提高自身的竞争力。4.3、利用FPGA设计DDS随着微电子技术的发展,现场可编程门阵列(FPGA)器件得到了飞速发展。由于该器件具有工作速度快,集成度高和现场可编程等优点,因而在数字信号处理中得到了广泛应用。本设计采用的器件是Altera公司的StatixⅡ系列之EP2S60F672C5芯片。它采用新的逻辑结构,有“自适合逻辑模块”(ALM)组成,允许相邻功能之间共享逻辑。每个ALM还有两个可编程寄存器,两个加法器,一个进位链,一个加法树链和一个寄存器链,这些都能够高效的利用器件的逻辑容量。EP2S60F672C5有60440个LE,36个DSP模块,329个M512,255个M4K,2个MRAM模块,可以满足DDS系统设计的要求。选用的开发工具是Altera公司的设计步骤方法与实现FPGA设计DDS电路的具体实现FPGA设计的DDS系统主要由相位累加器及相位/幅度转换电路组成。另外采用VHDL硬件描述语言实现整个DDS电路,不仅利于设计文档的管理,而且方便设计的修改和扩充,还可以在不同FPGA器件之间实现移植。

5.1、相位累加器部分在用FPGA设计DDS电路的时候,相位累加器是决定DDS电路性能的一个关键部分。小的累加器可以利用FLEX器件的进位链得到快速、高效的电路结构。然而由于进位链必须位于临近的LAB(逻辑阵列块)和LE(逻辑单元)内,因此长的进位链势必会减少其它逻辑使用的布线资源,同时过长的进位链也会制约整个系统速度的提高。另一种提高速度的办法是采用流水线技术,即把在一个时钟内要完成的逻辑操作分成几步较小的操作,并插入几个时钟周期来提高系统的数据吞吐率。但是流水线技术比较适合开环结构的电路,要用在累加器这样的闭环反馈的电路中必须谨慎考虑,以保证设计的准确无误。综合考虑后,相位累加器采用流水线技术来实现,这样能保证较高的资源利用率,又能提高系统的性能和速度。设计中整个系统只加入了一级流水线来提高速度。5.2、相位/幅度转换部分相位/幅度转换电路是DDS电路中的另一个关键部分。该电路通常采用ROM结构,相位累加器的输出是一种数字式锯齿波,通过取它的若干位作为ROM的地址输入,而后通过查表和运算,ROM就能输出所需波形的量化数据。在FPGA(针对Altera公司的器件)中,ROM一般由EAB实现,且ROM表的尺寸随地址位数或数据位数的增加成指数递增关系,因此在满足信号性能的前提下,如何有效利用FPGA的有限资源,成为相位/幅度转换电路中最关键的一点。在设计时可充分利用信号周期内的对称性和算术关系来减少EAB的开销。相位/幅度转换电路中的主要问题在于ROM的大小。由于本设计只需要输出正弦波,故考虑了以下的优化方式:正弦波信号对于x=π直线成奇对称,基于此可以将ROM表减至原来的1/2,再利用左半周期内,波形对于点(π/2,0)成偶对称,进一步将ROM表减至最初的1/4,因此通过一个正弦码表的前1/4周期就可以变换得到的正弦的整个周期码表,这样就节省了将近3/4的资源[19]。5.3、ROM查找表的生成针对不同的可编程器件,ROM查找表的设计采用的方法也不相同。主要是基于lpm_rom和VHDL选择语句这两种方法。使用lpm_rom的波形存储表只需要产生数据文件*.mif,然后直接在定制lpm_rom时,添加数据文件即可。不过这种方法在FPGA支持内部嵌入式阵列块(EAB)时才可以使用;使用VHDL选择语句比较直观,但当输入数据量大的时候,这种方法是比较繁琐的。此次设计采用第一种方法。Mif文件是在编译和仿真过程中作为存储器(ROM或RAM)初始化输入的文件,即memoryinitializationfile。创建mif文件的方式有很多种,在这次设计中,在Matlab中采用C语言来生成mif文件。Mif文件编写格式如下:Depth=1024;%存储单元数;Width=12;%数据宽度为12位;N=0:1:1023;S=sin(pi*N/512);%计算0—π/2的sin值;Fide=fopen(‘dds.mif’,’wt’);%以“wt”的形式打开,\n为换行%写入dds,mif%Fprintf(fiide,’depth=%d;\n’,depth);Fprintf=(fiide,’width=%d;\n’,widths);Fprintf=(fiide,’address_radix=dec;\n’);Fprintf=(fiide,’data_radix=dec;\n’);Fprintf=(fiide,’contentbegin\n’);For(x=1:depth)Fprintf(fidc,’%d:%d:\n’,x-1,round(2047*sin((pi*(x-1)/1024)+2048));End%采样波形数据存储入mif文件Fprinth(fide,’end;’);%按mif文件内容格式输出Fclose(fidc);%关闭文件5.4、D/A转换部分因为要产生两路具有相位差的正弦波,所以必须采用两片D/A转换芯片将两路信号分别转换成模拟量输出。在此选用转换速率为500ns的芯片AD7521作为数字量到模拟量的转换器件。六、设计仿真与实验结果用QuattusⅡ设计DDS系统数字部分最简单的方法是采用原理图输入。相位累加器调用SUM99加减法器模块,相位累加器设计的好坏将直接影响到整个系统的速度,采用流水线技术能大幅度地提升速度。波形存储器(ROM)通过调用ROM1元件实现,其正弦查找表的值.mif是一个存放波形幅值的文件。波形存储器设计主要考虑的问题是其容量的大小,相位寄存器REG1和输出数据寄存器REG2。6.1、DDS仿真生成截图6.2、ROM仿真生成截图6.3、SUM99仿真生成截图6.4、REG1仿真生成截图6.5、REG2仿真生成截图致谢在课设即将完成之际,首先要对王忠峰老师表示最真挚的感谢。在课设的写作期间,王老师在百忙之中抽出时间指导我的课设,在很多关键的知识点上进行了讲解疏通,给我宏观框架提出了宝贵的意见。我在课设之初,对很多的东西还比较陌生,王老师特别给我们推荐了参考书籍,为我的课设提供了知识基础,我要特别提出感谢王老师,感谢他无私的帮助由于本人学识有限,加之时间仓促,文中不免有错误和待改进之处,真诚欢迎各位师长、同学提供宝贵的意见。参考文献[1]郑凤涛,陈金佳.基于CPLD的数控正弦波的信号源的设计.黎明职业大学学报,2003,38(1):25~30[2]徐志军,徐光辉.CPLD/FPGA的开发与应用.北京:电子工业出版社,2002:192~272[3]黄正谨,徐坚,章小丽等.CPLD系统设计技术入门与应用.北京:电子工业出版社,2002:93~209[4]韩素敏,郑征.基于VHDL的正弦波发生器设计.陕西工学院学报,2003,19(4):8~10[5]陈新原,龙世瑜.DDS芯片AD9850的EEP接口设计.微型机与应用,2005,(2):24~26[6]姜萍,王建新,吉训生.FPGA实现的直接数字频率合成器.电子工程师.2002,28(5):43~47[7]邵正途,高玉良.DDS/FPGA在信号产生系统中的应用.电子技术,2005,(1):82~84[8]周峻峰,陈涛.基于FPGA的直接数字频率合成器的设计与实现.国外电子元器件,2003,(1):4~6[9]IEEETran.ADirect_DigitalsynthesizerwithImprovedspectralperformance.oncommunication,1991,39(7):16~20[10]傅玉朋,李明浩,吕进华.DDS技术的FPGA设计与实现.大连民族学院学报,2004,6(3):46~47[11]文卓然.数字式移相信号发生器中的一个误区.电子世界,2004,(5):42~43[12]VankkaJ.Spurreductiontechniquesinsineout-putdirectdigitalsynthesis,IEEEProc.50thAFCS,2001:951~959[13]AlteraInc.DATABOOK.Alteracorporation,2001:24~31[14]贾方亮,赵泳,郝立果,张锡鹃.高精度数字式移相信号发生器的研制.天津职业技术师范学院学报,2004,14(2):23~25[15]王皓,刘克刚,李小青.低频相位测量系统的研究与实现.电子技术,2004(9):22~25附录LIBRARYIEEE;DDS程序USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYDDSISPORT(K:INSTD_LOGIC_VECTOR(9DOWNTO0);EN:INSTD_LOGIC;RESET:INSTD_LOGIC;CLK:INSTD_LOGIC;Q:OUTSTD_LOGIC_VECTOR(11DOWNTO0));ENDENTITYDDS;ARCHITECTUREARTOFDDSISCOMPONENTSUM99ISPORT(K:INSTD_LOGIC_VECTOR(9DOWNTO0);EN:INSTD_LOGIC;RESET:INSTD_LOGIC;CLK:INSTD_LOGIC;OUT1:OUTSTD_LOGIC_VECTOR(9DOWNTO0));ENDCOMPONENTSUM99;COMPONENTREG1ISPORT(D:INSTD_LOGIC_VECTOR(9DOWNTO0);CLK:INSTD_LOGIC;Q:OUTSTD_LOGIC_VECTOR(9DOWNTO0));ENDCOMPONENTREG1;COMPONENTROMISPORT(inclock:INSTD_LOGIC;address:INSTD_LOGIC_VECTOR(9DOWNTO0);q:OUTSTD_LOGIC_VECTOR(11DOWNTO0));ENDCOMPONENTROM;COMPONENTREG2ISPORT(D:INSTD_LOGIC_VECTOR(11DOWNTO0);CLK:INSTD_LOGIC;Q:OUTSTD_LOGIC_VECTOR(11DOWNTO0));ENDCOMPONENTREG2;SIGNALS1:STD_LOGIC_VECTOR(9DOWNTO0);SIGNALS2:STD_LOGIC_VECTOR(9DOWNTO0);SIGNALS3:STD_LOGIC_VECTOR(11DOWNTO0);BEGINU0:SUM99PORTMAP(K=>K,EN=>EN,RESET=>RESET,CLK=>CLK,OUT1=>S1);U1:REG1PORTMAP(D=>S1,CLK=>CLK,Q=>S2);U2:ROMPORTMAP(address=>S2,inclock=>CLK,q=>S3);U3:REG2PORTMAP(D=>S3,CLK=>CLK,Q=>Q);ENDARCHITECTUREART;LIBRARYieee;ROM程序USEieee.std_logic_1164.all;LIBRARYaltera_mf;USEaltera_mf.all;ENTITYROMIS PORT ( address :INSTD_LOGIC_VECTOR(9DOWNTO0); inclock :INSTD_LOGIC; q :OUTSTD_LOGIC_VECTOR(11DOWNTO0) );ENDROM;ARCHITECTURESYNOFromIS SIGNALsub_wire0 :STD_LOGIC_VECTOR(11DOWNTO0); COMPONENTaltsyncram GENERIC( clock_enable_input_a :STRING; clock_enable_output_a :STRING; init_file :STRING; intended_device_family :STRING; lpm_hint :STRING; lpm_type :STRING; numwords_a :NATURAL; operation_mode :STRING; outdata_aclr_a :STRING; outdata_reg_a :STRING; widthad_a :NATURAL; width_a :NATURAL; width_byteena_a :NATURAL ); PORT( clock0 :INSTD_LOGIC; address_a :INSTD_LOGIC_VECTOR(9DOWNTO0); q_a :OUTSTD_LOGIC_VECTOR(11DOWNTO0) ); ENDCOMPONENT;BEGIN q<=sub_wire0(11DOWNTO0); altsyncram_component:altsyncram GENERICMAP( clock_enable_input_a=>"BYPASS", clock_enable_output_a=>"BYPASS", init_file=>"sine.mif", intended_device_family=>"StratixII", lpm_hint=>"ENABLE_RUNTIME_MOD=YES,INSTANCE_NAME=rom1", lpm_type=>"altsyncram", numwords_a=>1024, operation_mode=>"ROM", outdata_aclr_a=>"NONE", outdata_reg_a=>"UNREGISTERED", widthad_a=>10, width_a=>12, width_byteena_a

温馨提示

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

评论

0/150

提交评论