毕业设计(论文)-数字频率合成器的FPGA设计实现.doc_第1页
毕业设计(论文)-数字频率合成器的FPGA设计实现.doc_第2页
毕业设计(论文)-数字频率合成器的FPGA设计实现.doc_第3页
毕业设计(论文)-数字频率合成器的FPGA设计实现.doc_第4页
毕业设计(论文)-数字频率合成器的FPGA设计实现.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

数字频率合成器的FPGA设计实现数字频率合成器的FPGA设计实现1 绪论1.1 频率合成技术的背景1)直接频率合成直接频率合成理论大约在20世纪30年代中期开始形成,当时是利用单个或多个不同频率的晶体振荡器作为基准信号源,经过倍频、分频、混频等途径直接产生许多离散频率的输出信号,这就是最早应用的频率合成器,称之为直接式频率合成器采用单一个或多个不同频率的晶体振荡器作为基准信号源,经过具有加减乘除四则运算功能的混频器、倍频器、分频器和具有选频功能的滤波器的不同组合来实现频率合成。利用不同组合的四则运算,即可产生大量的、频率间隔较小的离散频率系列。根据参考频率源的数目和四则运算电路组合的不同,直接式频率合成器有着许多不同的形式如可由较多晶体振荡器或频率源同时提供基准频率,或仅由一个或少数几个晶体振荡器提供基准频率。尽管合成器仅输入一个参考频率,但只需改变各倍频次数和分频器的分频数,即可获得一系列的离散频率。2)锁相频率合成相位反馈理论和锁相技术应用于频率合成领域,产生了间接式频率合成器。所谓间接式是指合成器的输出信号不是直接从参考源经过变换而得,而是由锁相环的压控振荡器间接产生所需要的频率输出,所以,间接式频率合成器又称为锁相频率合成器它是基于锁相环路的同步原理,从一个高准确度、高稳定度的参考晶体振荡器综合出大量离散频率的一种技术。锁相频率合成器由基准频率产生器和锁相环路两部分构成。基准频率产生器为合成电路提供一个或几个高稳准的参考频率,锁相环路则利用其良好的窄带跟踪特性,使频率准确地锁定在参考频率或其某次谐波上,并使被锁定的频率具有与参考频率一致的频率稳定度和较高的频谱纯度21。由于锁相环路具有良好的窄带滤波特性,故其输出信号质量较直接式频率合成器得到明显的改善。锁相技术在频率合成中的成功应用,使频率合成技术获得突破性进展。锁相频率合成器的结构简单、输出频率成分的频谱纯度高,而且易于得到大量的离散频率等优点引起了人们的极大关注,为频率合成器的广泛应用打下了基础。在锁相频率合成器中,输出频率系列是由压控振荡器(NCO)产生的。该频率在环路的鉴相器中,不断地与来自石英晶体振荡器的基准频率进行相位比较,并通过比较后产生的误差信号对振荡频率进行校准,使输出频率系列中的任一频率均具有与基准频率相同的频率稳定度41。由于鉴相器要求进行相位比较的两输入频率在数值上相等,由此形成了多种锁相频率合成的方法,其中主要有:脉冲控制锁相法和数字锁相合成法。3)直接数字频率合成 数字技术的飞速发展,使频率合成技术也跃上了一个新的台阶。1971年,美国学者JTiemey,CMRadcr和BGold提出了以全数字技术从相位概念出发,直接合成所需波形的种新的频率合成原理,形成了第三代频率合成方案DDs。限于当时的技术和器件水平,它的性能指标尚不能与已有的技术相比,故未受到重视。1.2 频率合成器的发展情况 随着现代电子技术的发展,在通讯、雷达、宇航、电视广播、遥控遥测和电子测量等使用领域,对信号源的频率稳定度、频谱纯度、范围和输出频率提出了越来越高的要求。为了提高频率稳定度,经常采用晶体振荡器等方法来解决,但已不能满足众多应用场合的要求,许多应用领域对信号频率的稳定性要求起来越高,而且不仅需要单一的固定频率,还需要多点频率。为了解决这个问题,于是产生了频率合成技术。频率合成就是将具有低相位噪声、高精度和高稳定度等综合指标的参考频率源经过电路上的混频,倍频或分频等信号处理以便对其进行数学意义上的加 - 31 -、减、乘、除等四则运行,从而产生大量具有同样精度的频率源,实现频率合成的电路叫频率合成器。频率合成技术起源于二十世纪30年代,至今已有七十多年的历史。早期的频率合成器是由一组晶体振荡器组成的,要输出多少个频率点,就需要多少个晶体。频率的切换由人工来完成,频率的准确度和稳定度主要由晶体来决定,很少与电路有关。后来这种合成方式被非相干合成的方法所代替。非相干合成虽然也使用了晶体,但它的工作方式是以少量的晶体产生许多频率。与早期的合成方式相比,成本降低了,而稳定性提高了。但是研制由多块开关晶体所组成的晶体振荡器是一个非常复杂的任务,而且成本高,不经济。所以后来科学家又提出了相干合成法。最早的相干合成法是直接频率合成(Direct Frequency synthesis)。直接频率合成是利用混频、倍频、分频的方法由参考源频率经过加、减、乘、除运算直接组合出所要需频率的方法。不过,直接合成也可以用多个基准源通过上述方式得到所需的频率。这种方法由于频率切变速度快,相噪低使之在频率合成领域占有重要地位,但因直接式频率合成器杂散多,体积大,研究复杂,成本也令人不可接受,故该方案已基本被淘汰。在直接频率合成之后出现了间接频率合成(Indirect Frequency Synthesis)。间接频率合成包括模拟间接频率合成(注入锁相、模拟环锁相、取样锁相),锁相环频率合成,数字锁相频率合成。这种方法主要是将相位反馈理论和锁相技术运用于频率合成领域,它的主要代表是锁相环Pu,(Ph蹴-Lockod Loop)频率合成,被称为第二代频率合成技术。现在最常用的结构是数模混合的锁相环,即数字鉴相器、分频器、模拟环路滤波和压控振荡器的组成方式,因具有相噪低,杂散抑制好,输出频率高,价格便宜等优点至今仍在频率合成领域占有重要地位。目前已有许多性能优良的单片PLL频率合成器面市,典型的有Motorola公司的MCl45191、Oualcomm公司的Q3236、NationalSemiconductor公司的LMX2325、LMX2326,LMX2330。这极大地推动了PLL频率合成方式的应用f2。众所周知,传统的锁相环频率合成器,每当编程分频器分频比改变1时,所得到的输出频率的改变量即为参考频率f。为提高频率分辨率,就必须减小参考频率f,结果就使频率切换时间变长。因此,频谱纯度、换频速度以及频率间隔是相互矛盾的。为了解决这对矛盾,1969年DANA实验室有限公司发明了一种利用单环频率合成器来减小频率间隔的新方法一“小数分频”。这种新颖、独特的单环小数分频频率合成器一经问世就受到各方面的关注和青睐,大有取代传统的多环结构合成器的趋势,是一种有效的新颖频率合成器。随着数字信号理论和超大规模集成电路VLSI的发展,在频率合成领域诞生了一种革命性的技术,那就是上世纪七十年代出现的直接数字频率合成DDS(Direct Di西tal frequency Synthesis),它的出现标志着频率合成技术迈进了第三代。1.3 本课题研究的内容和意义 本次设计是利用可编程器FPGA完成一个DDS系统,虽然但是用用FPGA实现DDS技术在某些方向存在着DDS芯片不能取代的优势,用FPGA实现DDS技术比较灵活,可以产生多种调制方式,多种组合方式,并且可以实现多个DDS芯片的功能,更加集成。专用的DDS芯片在控制方式、置频速率等方面与系统的要求差距很大,这时如果用高性能的FPGA器件设计符合自己需要的DDS电路就是一个很好的解决方法,而且还可以降低外国对高性能DDS芯片禁运的风险。 本论文主要是用FPGA实现直接频率合成器DDS的目的。DDS即直接频率合成器,主要是由相位累加器,相位调制器,正弦波数据表(ROM)和D/A转换器构成。每来一个时钟CLOCK,加法器就将频率控制字与累加寄存器输出的累加相位数据相加,相加的结果又反馈至累加寄存器的数据输入端,以使加法器在下一个时钟脉冲的作用下继续与频率控制字相加。这样,相位累加器在时钟作用下,不断对频率控制字进行线性相位累加。由此可以看出,在每一个时钟脉冲输入时,相位累加器便把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位,相位累加器的溢出频率就是DDS输出的信号频率。在这当中,使用了PLL提高和稳定输出频率,同时数据存储表中存储不同的波形数据,有三角波,正弦波,方波三种波形。可以调频,调相,调幅,也易于实现ASK,FSK,PSK的调制方式,在通信领域有一定的用途。 2 用FPGA实现DDS的关键技术2.1 DDS的主要知识2.1.1 DDS的基本原理1) 下图为DDS的基本原理图 ,频率控制字M和相位控制字分别控制DDS输出正弦波的频率和相位。DDS系统的核心是相位累加器,它是由一个累加器和一个N位相位寄存器组成。每来一个时钟脉冲,香味寄存器以步长M增加。相位寄存器的输出与相位控制字相加,其结果作为正弦查找表的地址。正弦查找表由ROM构成,内部存有一个完整周期正弦波的数字幅度信息,每个查找表的地址对应正弦波中0-360范围的一个相位点。查找表把输入的地址信息映射成正弦波的幅度信号,同时输出到数模转换器(DAC)的输入端,DAC输出的模拟信号经过低通滤波器(LPF),可得到一个频谱纯净的正弦波。 图2- 1 一个正弦波,虽然它的幅度不是线性的,但是它的相位却是线性增加的。DDS 正是利用了这一特点来产生正弦信号。如图 2,根据DDS 的频率控制字的位数N,把360 平均分成了2的N次等份。 图2- 2 2)可行性理论论证 以产生正弦信号为例,它的输出可以用下式来描述 Sout=Asinwt=Asin(2*pi*fout*t) ( 2-1) 其中Sout是指该信号发生器的输出信号波形,fout 是指输出信号对应的频率,式得表述对于时间t是连续的,为了用数字逻辑实现该表达式,必须进行离散化处理。用基准时钟clk进行抽样, 图2- 3令正弦信号的相位:=2*pi*fout*t。在一个clk周期Tclk内,相位的变化量为2*pi*fout*Tclk=2*pi*fout/fclk ( 2-2) 为了对进行数字量化,把2*pi切割成2N份,因此,每个clk周期的相位增量可用量化值B来表述为:B2N*/(2*pi),且B为整数。与=2*pi*fout/fclk联立得:B2N*fout/fclk。这样就可将正弦信号Sout=Asinwt=Asin(2*pi*fout*t)的表达式变为:Sout=Asin(2*pi*fout*t)=Asin(k-1+)=Asin2*pi*(Bk-1+ B)/2N (2-3) 由上面的推导可以看出,只要对行为的量化值进行简单的累加运算,就可以得到正弦信号的当前相位值,而用于累加的相位增量量化值决定了信号的输出频率,并呈现出简单的线性关系。 输出频率 fout=fclk*B/2N 频率分辨率 f=fclk/2N频率控制字 B2N*fout/fclk其中B要取整。3)形成方案根据上述原理,为合成所需的频率,需解决下列技术问题: 需控制每次采样的相位增量,并输出模2的累积相位。 将模2的累积相位变换成相应的正弦函数值的幅度,可用ROM存储一个正弦函数表的幅值代码。 将幅度代码变换成模拟电压。可用数模转换器DAC完成。 DAC输出的电压是经保持的阶梯波,需经低通滤波器之后才能得到模拟信号。2.1.2 DDS的结构 DDS的基本结构包括相位累加器(PD)、正弦查询表(ROM)、数模转换器DAC和低通滤波器(LPF),其中DDS从频率寄存器开始到波形存储表的数字部分通常也可称作数控振荡器(Nc0一Numerical Control Oscillator)。模块NCO实现由数字频率值输入生成相应频率的数字波形,其工作过程为:频率控制字K;l 在时钟脉冲的控制下,该频率控制字累加至相位累加器生成实时数字相位值;l 将相位值寻址ROM转换成正弦表中相应的数字幅码。模块DAC实现将NCO产生的数字幅度值高速且线性地转变为模拟幅度值,DDS产生的混叠干扰由DAC之后的低通滤波器滤除。 相位累加器(PD)相位累加器是DDS最基本的组成部分,用于实现相位的累加并存储其累加结果。若当前相位累加值为Pi,经过一个时钟周期后变成Pi+1,则满足: Pi+1=Pi+X式中,X为相位步进量,相位累加器的传统基本结构由一个L 位累加器和一个L 位寄存器构成寄存器常采用D 触发器来构成这个相位累加器。为降低最小频率,采用下图所示的做法。 图2- 4 ROM表 DDS查询表所存储的数据是每一个相位所对应的二进制数字正弦幅值,在每一个时钟周期内,相位累加器输出序列的高m位对其进行寻址,最后的输出为该相位相对应的二进制正弦幅值序列。若要频率分辨率高,则存储器的深度要深,要使输出波形好,则幅度的量化值得为数要多。由于正弦波的对称性,可以采取压缩法只取其中的四分之一,从来提高系统性能。 DAC转换模块 数模转换器的作用是将数字信号转变成模拟信号,而实际上由于DAC 分辨率有限,其输出信号并不能真正地连续可变,所以只能输出阶梯模拟信号,为系统正确地选择DAC 是一个十分关键的问题。因为DAC 直接决定了系统的性能,他对DDS 输出频谱质量有很大的影响。一般分析主要有三个:即DAC 的分辨率、DAC 的非线性以及DAC 转换过程中会出现尖峰脉冲等。DAC 的分辨率由所选器件决定的。它还受ROM 输出的二进制代码长度的限制。选择DAC 时还应考虑分辨率和价格之间的关系,它对输出频率的影响可归结到ROM舍位中去。DAC 的非线性相当复杂,并且每个DAC 的非线性特性也不尽相同,其数学模型难以建立而且DAC 工作时转换过程中存在的尖锋脉冲,对DAC 输出信号的频谱特性有着比较大的影响。2.1.3 DDS的主要性能指标 频率合成器技术指标有很多,在不同的场合有不同的适用描述,但其中最主要和最普遍的技术指标如下:u 工作频率范围合成器最高与最低输出频率所确定的频率范围,称为合成器的工作频率范围。在此范围内,合成器能输出间隔一定的众多离散频率中的某一振荡频率(称为信道)或某几个振荡频率。各振荡频率的稳定度及其它性能均应满足系统的性能要求u 频率间隔每个离散频率之间的最小间隔称为频率间隔,又称分辨力,频率间隔的大小,随合成器的用途而不同。例如,短波单边低通信的频率间隔一般为100Hz,有时为10Hz,1Hz甚至O.1Hz。超短波通信则多取50kHz,有时也取为25kHz,12.5Hz等等。u 频率转换时间由一个工作频率转换到另一个工作频率并达到稳定所需的时间。其数值与合成器的电路形式有关。u 频率稳定度与准确度频率稳定度是指在规定观测时间内,合成器输出频率偏离标称值的程度,一般用该偏离值与输出频率的相对值来表示。准确度则表示实际工作频率与其标称值之问的偏差,又称频率误差。稳定度与准确度有着密切的关系,因为只有频率稳定度高,频率准确度才有意义u 频谱纯度频谱纯度是指输出信号频谱的纯净程度。可以用输出端的有用信号电平与各寄生频率总电平之比的分贝数表示。图21示出在一般情况下,合成器在某选定输出频率附近的频谱分布。由图可见,除有用频率外,其附近尚存在各种周期性干扰与随机干扰以及有用信号的各次谐波成分这里,周期性干扰多数来源于混频器的高次组合频率,它们以某些频差的形式,成对地分布于有用信号的两边。而随机干扰则是由设备内部各种不规则的电扰动所产生,并以相位噪声的形式分布于有用频谱的两侧。有时也把各种周期性干扰视为另一种相位噪声。2.1.4 DDS的应用基于DDS波形产生的应用现阶段主要在两个方面:l 设计通讯系统需要灵活的和极好的相噪,极低的失真性能的频率源,它通常选用DDS结合它的光谱性能和频率调谐方案,这种应用包括用DDS于调制方面,作为PLL参考去加强整个频率的可调制度,作为本机振荡器(LO),或者射频率的直接传送。 l 许多工业和医学应用DDS作为可编程波形发生器。因为DDS是数字可编程,它的相位和频率在不改变外围成分的情况下能很容易地改变,而传统的基于模拟编程产生波形的情况下要改变外围成分。DDS允许频率的实时调整去定位参考频率或者补偿温度漂移。这种应用包括应用DDS在可调整频率源去测量阻抗(比如:基于阻抗的传感器),去产生脉冲波形已调制信号用于微型刺激,或者去检查LAN中的稀薄化和电缆。2.2 FPGA 的主要知识2.2.1 FPGA 的基本原理 FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。 2.2.2 FPGA 的设计流程 FPGA的详细设计流程如下图所示: 图2- 52.2.3 FPGA在DDS中的应用在DDS 系统中FPGA 的主要作用是:n 保存频率字构成相位累加器,产生ROM 地址 n 产生ROM 存储表结构 n 产生接口电路2.2.4 Cyclone 系列介绍Cyclone是Altera中等规模FPGA,2002年12月份推出。从那以后,己向全球数千位不同的客户交付了数百万片,成为Altera历史上采用最快的产品。它采用O13 um工艺、全铜SRAM工艺、15V内核供电,容量从2910个逻辑单元到20060个逻辑单元,并嵌入了4级最多为64个RAM块(128x36bit)。Cyclone器件支持大量的自外数据传输的单端I,O标准,包括LVTTL、LVCMOS、PCL、SSTL-2和SSTL-3。为满足设计者更快数据速率和信号传输能力的需要,Cyclone器件还设有高达311Mbps的低压差信令(LVDS)兼容通道。由于采用了特殊的三级布线结构,其裸片尺寸大大降低。 Cyclone器件的性能可与业界最快的FPGA芯片相抗衡,是一种低成本FPGA系列,目前的主流产品,它具有以下特点: 可编程逻辑器件,具有实现宏功能的增强嵌入式阵列(例如实现高效存储和特殊的逻辑功能)和实现一般功能的逻辑阵列,每个EAB的双口能力达到36比特宽,可提供低价的可编程片上系统(system-on-a-programmable-chip,SOPC)集成。 高密度:2万到20万个典型门,高达294912位内部RAM(每个EAB有4096位,这些都可在不降低逻辑能力的情况下使用)。 系统级特点:多电压接口支持15V、18V、25V、33V和5V设备;低功耗;双向IO性能达到640MHz:完全支持33MHz或66MHz,33V的PCI局部总线标准;内置JTAG边界扫描测试电路;可在15V内部电源电压下工作;通过外部的配置器件、智能控制器或JTAG端口可实现在线重配置(ICR,In-Circuit reconfigurability)。 灵活的内部连线:快速、可预测连线延时的快速通道;实现算术功能(诸如快速加法器、计数器和比较器)的专用进位链;实现高速、多扇入功能的专用级联链;实现内部总线的三态模拟;多达六个全局时钟信号和四个全局清除信号。 强大的IO引脚:每个引脚都有一个独立的三态输出使能控制和漏极配置选项;可编程输出电压的功率控制,可减小开关噪声。 具有锁相环(PLL)和全局时钟网络,提供完整的时钟管理方案。其PLL具有时钟倍频和分频、相位偏移、可编程占空比和外部时钟输出,进行系统级的时钟管理和偏移控制。PLL常用于同步内部器件时钟和外部时钟,使内部工作的时钟频率比外部时钟更高,时钟延迟和时钟偏移最小,减小或调整时钟到输出(TC0)和建立(TSU)时间。 本设计采用的是ALtera公司的EP1C6Q240的芯片。2.3 本章小结这一章主要是介绍了DDS和FPGA的相关知识,其中有DDS的基本原理,为下章DDS的设计打下基础,FPGA主要介绍了基于FPGA的设计流程。3 基于FPGA的DDS的设计实现3.1 MAX+PLUS II3.1.1 MAX+PLUS II软件的使用 1)所用的器件是EP1K30QC208-2; 2)常用的设计输入方法 a.通过图形编辑器,创建图形设计文件(.gdf); b.通过文本编辑器,使用AHDL语言,创建文本编辑文件(.tdf); c.使用VHDL语言,创建文本设计文件(.vhd); d.使用Verilog HDL 语言,创建文本设计文件(.v); e.通过波形编辑器,创建波形设计文件(.wdf); 3)文本输入后保存,名字要与实体名字一致,编译,若没错,建立一个新的波形计文件,填入节点,设初值,进行功能仿真,仿真没错后,可以下到板里进行时序仿真。 3.1.2 使用MAX+PLUS II 实现DDS 图3- 1该图所示DDS 的工作原理图,运用FPGA对个模块进行设计。说明:整个DDS模块采用一个时钟同步各个模块的运算速度。其中相位累加器SUM32是一个带有累加功能的32位加法器,它以设定的32位频率控制字K作为步长来进行加法运算,当其和满时计数器清零,并且高十二位作为输出,作为ROM表的地址。相位寄存器REGA时一个一般的十二位寄存器,它对输入端输入的数据进行寄存,当下一个时钟到来时,输出寄存的数据。正弦波查找表ROM是DDS最关键的部分,也是最复杂的部分。设计时首先对正弦函数进行采样,接着将采样的结果放到ROM模块的对应存储单元里,每一个地址对应一个数值,输出为10位,为了保证输出数据的稳定性,将ROM的输出数据先寄存在REGOUT中,待下一个时钟来到时,再将其输出。整个系统各模块是在同步时钟信号CLK的控制下协调工作的。这里的正弦波是采用查找表的方法实现的。同时可以输出正弦,三角,方波。l ROM的生成方法: 首先产生.mif的文件,然后使用Altera的MegaWizard Plug-In Manager定制一个 LPM_ROM即可。.mif可以用Quartus II软件生成。 用C语言编写的正弦函数数据采样程序如下:#include “stdio.h” #include “math.h”Main() int i;float s;for(i=0;isinmif.mif;可生成mif文件中的ROM表数据,然后再加上头部说明 width=10; depth=1024; address_radix=dec; data_radix=dec; content begin 可用Matlab来实现ROM表的数据利用MATLAB计算出正弦波形的浮点值,并量化10位的定点波形数值。x=linspace(0,6.28,4096);y=sin(x);y=y*1023;(存在C盘的文本中) fid=fopen(C:/sin_coe.txt,wt); fprintf(fid,%16.0fn,y1); fclose(fid); 可生成一个正弦波的数据表。 用振荡器产生正弦波 图3- 2仿真结果如下所示:1)直接用MAX+PLUS II来仿真图3- 32) 可以借助Matlab来仿真由于输出的数据与ROM表的值完全符合,因此将输出数据绘制矩阵在MATLAB仿真。在MATLAB 中的 SIMULINK 的DSP Builder中可以用下面的模型来仿真只要改变地址的位数就可以实现调频。因为地址数的长度不同,一个周期所用的时间就不同,这样频率就不同。只是简单的调频。图3- 4 结果如图所示:图3- 53.2 Quartus II 3.2.1 DSP Builder 软件 DSP Builder是一个系统级(或算法级)设计工具,它构架在多个软件工具之上,并把系统级(算法仿真建模)和RTL级两个设计领域的设计工具连接起来,都放在了Matlab/simulink图形设计平台上,而将Quartus II作为底层设计工具置于后台,最大程度地发挥了工具的优势。DSP Builder 依赖于MathWorks 公司的数学分析工具MATLAB/Simulink,以及Simulink的Blockset出现。可以在Simulink中进行图形化设计和仿真,同时又通过SignalCompiler把Matlab/Simulink 的模型设计文件(.mdl)转换成相应的硬件描述语言VHDL 设计文件,以及用于控制综合与编译的tcl脚本。对于综合以及此后的处理都由Quartus II 完成。由于在FPGA上设计一个算法模型的复杂性,设计的性能队形不同的应用目标有不同的要求,设计的软件工具也不仅仅是Simulink和Quartus II,DSP Builder 针对不同情况提供了两套设计流程,即自动流程和手动流程。图3- 6 使用步骤: 1)打开Matlab环境2)建立工作库 3)了解Simulink库管理器 4)建立新的模型文件 5)放置SignalCompiler 6) 放置器件 ,设置器件 7)保存,仿真3.2.2 DSP Builder 下DDS的设计仿真 设计电路如下所示:该设计电路可以调频,调相,调幅,其中正弦波是由查找表生成的。图3- 7 仿真结果: 调频 图3- 8 调相 图3- 9 调幅图3- 103.2.3 Modelsim 软件 Modelsim具有强大的模拟仿真功能,在设计、编译、仿真、测试、调试开发过程中,有一整套工具可供使用,而且操作起来极其灵活,可以通过菜单、快捷键和命令行等方式工作。Modelsim 的窗口管理界面使用起来很方便,它能很好的与操作系统环境协调工作,Modelsim的一个显著特点就是它具备命令行操作方式,类似于一个Shell,有很多操作指令供用户使用,就像是工作在UNIX环境下。这种命令行操作方式是基于Tcl/Tk的,其功能相当强大。 Modelsim的功能侧重于编译,仿真,不能指定编译的器件,不具有编程下载能力,不像Synplify、MAX+PLUS II和Quartus II软件那样可以在编译前选择器件。而且,Modelsim在时序仿真时无法编辑输入波形,不像MAX+PLUS II和Quartus II 那样可以自行设置输入波形,仿真后自动产生输出波形,而需要在源文件中就确定输入,如编写测试台程序来完成初始化,模块输入的工作,或者通过外部宏文件提供激励,这样才可以看到仿真模块的时序波形图。另外,Synplify只具有编译能力,比Quartus II可编译的VHDL和Verilog的内容要多,所以常常可以先在Synplify下编译,生成编译文件后再送到Quartus II软件中使用。 Modelsim还具有分析代码的能力,可以看出不同代码消耗资源的情况,从而可以对代码进行改善,以提高其效率。 Modelsim的使用 选择Create a Project ,写上工程名字 添加包含设计单元的文件 选择Compiler下Compiler All 编译完后,用鼠标点击Library标签栏,在Library标签页中,用鼠标点击Work库前面的“+”,展开Work库,将会看到两个编译了的设计单元 导入一个设计单元。双击Library标签中的源文件 进行仿真 Modelsim下实现DDS的仿真 1)编辑dds_test 文件timescale 1ns/100psdefine clk_cycle 50module dds_test;reg clock;reg 11:0pword;reg 31:0fword;wire da_mode,da_clk;wire 9:0da_data;always #clk_cycle clock=clock;initial begin clock=0; pword=12h010; fword=32h00000010; #100 pword=12h400; fword=32h00001000; #200 pword=12h7ff; fword=32h00100000; #1000 $stop; end dds dds( .clock(clock), .fword(fword), .pword(pword), .da_clk(da_clk), .da_data(da_data), .da_mode(da_mode);Enmodule2) 将dds模块和dds_rom模块添加到工程中 编译没错,但仿真时altsyncram模块不存在。这是因为dds_rom是由Quartus II 中的Megawizard Plug-In Manager 生成的,也就是由dds_rom.mif 生成的。而altsyncram是Quartus II的系统IP核,所以无法添加。在Modelsim 中可以看到ASK,PSK,FSK的调制信号。3.2.5 Quartus II 软件 Quartus II 提供了完整的多平台设计环境,能满足各种特定设计的需要。Quartus II 是单片可编程系统设计的综合环境和SOPC开发的基本设计工具;Quartus II与MATLAB和DSP Builder结合,可以进行基于FPGA的DSP系统开发,是DSP硬件系统实现的关键EDA工具。Quartus II可以直接利用第三方的综合工具,如Leonardo Spectrum ,并能直接调用这些工具。Quartus II 具备仿真功能,同时也支持第三方的仿真工具,如Modelsim。Quartus II 集成开发环境包括:系统级设计、嵌入式软件开发、可编程逻辑器件设计、综合、布局布线、验证和仿真等内容。Quartus II软件的主要设计特性:l 基于模块的设计方法提高工作效率Altera特别为Quartus II软件用户提供了LogicLock基于模块的设计方法,便于用户独立设计和实施各种设计模块,并且在将模块集成到顶层工程时仍可以维持各个模块的性能。由于每一个模块都只需要进行一次优化,因此LogicLock流程可以显著缩短设计和验证的周期。l 更快集成IPQuartus II软件包括SOPC Builder工具。SOPC Builder针对可编程片上系统SOPC的各种应用自动完成IP核的添加、参数设置和连接等操作。l 在设计周期的早期对I/O引脚进行分配和确认。Quartus II软件可以进行预先的I/O分配和验证操作,这样就可以在整个设计流程中尽早开始印刷电路板(PCB)的布线设计工作。l 存储器编译器用户可以使用Quartus II软件中提供的存储器编译器功能对Altera FPGA中的嵌入式存储器进行轻松管理。l 支持CPLD、FPGA和基于Hardcopy的ASIC除了CPLD和FPGA以外,Quartus II 软件还使用和FPGA设计完全相同的设计工具、IP和验证方式支持Hardcopy Stratix器件系列,在业界首次允许设计工程师通过易用的FPGA设计软件来进行结构化的ASIC设计,并且能够对设计后的性能和功耗进行准确的估算。l 使用全新的命令行和脚本功能自动化设计流程用户可以使用命令行或Quartus II软件中的图形用户界面独立运行Quartus II软件中的综合、布局布线、时序分析以及编程等模块。除了提供Synopsys设计约束的脚本支持以外,Quartus II软件中目前还包括了易用的工具命令语言界面,允许用户使用该语言来创建和定制设计流程和满足用户的需求。l 高级教程帮助深入了解Quartus II的功能特性Quartus II软件提供详细的教程,覆盖从工程创建、普通设计、综合、布局布线到验证等在内的各种设计任务。 Quartus II软件的使用:1. 创建工程,选择器件,也可以添加也存在的源文件2. 新建文本文件,保存,单个编译3. 全部文本文件输入后,把其中的顶层模块设为顶层实体,进行综合编译。4. 选择器件,将没用到的引脚设为三态状态,否则容易烧毁芯片5. 绑定管脚。再编译6. 仿真7. 下载,添加下载器,选定要下载的sof文件开始下载。3.2.6 Quartus II下的DDS的设计实现 设计步骤:(1) 启动Quartus II建立一个空白工程,命名为dds.qpf; (2)将dds_rom.mif、fangbo.mif、sanjiao.mif 拷贝到工作目录下,之前生成的。将其转换为LPM_ROM 这样就可以生成可以用的dds_rom,fangbo,sanjiao 的模块了。 (3)建立PLL宏单元 ,设置输出150Mhz 锁相环的原理: 锁相环是一种反馈电路,其作用是使得电路上的时钟和某一外部时钟的相位同步。PLL通过比较外部信号的相位和由压控晶振(VCXO)的相位来实现同步的,在比较的过程中,锁相环电路会不断根据外部信号的相位来调整本地晶振的时钟相位,直到两个信号的相位同步。在数据采集系统中,锁相环是一种非常有用的同步技术,因为通过锁相环,可以使得不同的数据采集板卡共享同一个采样时钟。因此,所有板卡上各自的本地80MHz和20MHz时基的相位都是同步的,从而采样时钟也是同步的。因为每块板卡的采样时钟都是同步的,所以都能严格地在同一时刻进行数据采集。 锁相环中的鉴相器通常由模拟乘法器组成,利用模拟乘法器组成的鉴相器电路鉴相器的工作原理是:设外界输入的信号电压和压控振荡器输出的信号电压分别为: 式中的0为压控振荡器在输入控制电压为零或为直流电压时的振荡角频率,称为电路的固有振荡角频率。则模拟乘法器的输出电压uD为: 用低通滤波器LF将上式中的和频分量滤掉,剩下的差频分量作为压控振荡器的输入控制电压uC(t)。即uC(t)为: (8-4-3)式中的i为输入信号的瞬时振荡角频率,i(t)和O(t)分别为输入信号和出信号的瞬时位相,根据相量的关系可得瞬时频率和瞬时位相的关系为: 即 (8-4-4)则,瞬时相位差d为 (8-4-5)对两边求微分,可得频差的关系式为 (8-4-6)上式等于零,说明锁相环进入相位锁定的状态,此时输出和输入信号的频率和相位保持恒定不变的状态,uc(t)为恒定值。当上式不等于零时,说明锁相环的相位还未锁定,输入信号和输出信号的频率不等,uc(t)随时间而变。因压控振荡器的压控特性如图8-4-3所示,该特性说明压控振荡器的振荡频率u以0为中心,随输入信号电压uc(t)的变化而变化。该特性的表达式为 (8-4-6) 上式说明当uc(t)随时间而变时,压控振荡器的振荡频率u也随时间而变,锁相环进入“频率牵引”,自动跟踪捕捉输入信号的频率,使锁相环进入锁定的状态,并保持0=i的状态不变。锁相环是为了稳定和提高输出频率。 (4)建立源程序文件 dds_test.v,dds.v ,dds_top.v 并且将其添加到工程中,还有之前的数据表和锁相环PLL。 (5)分别将其置为顶层实体,进行编译,没错后,把dds_top.v置为顶层实体进行综合编译,提示错误后改正直到编译成功。 (6)选择Altera公司Cyclone系列的EP1C6Q240C8芯片,然后绑定管脚。 信号引脚信号引脚信号引脚信号引脚seg0169Dig0160Key0121Da_data045seg1170Dig1159Key1122Da_data143Seg2167Dig2162Key2123Da_data241Seg3168Dig3161Key3124Da_data323Seg4165Dig4215Key4143Da_data420Seg5166Dig5216Key5141Da_data518Seg6163Dig6213Key6158Da_data616Seg7164Dig7214Key7156Da_data714Da_clk38Da_mode8clock28Da_data813Da_data946 (7) 硬件连接,下载程序 将AD_DA板插到EDAsmart实验箱上,AD_DA的-12V接到实验箱的-12V上。下载线连好,打开电源,执行下载。然后用示波器观察输出。 输出波形如下: 其中数码管的第一位显示时哪种波 1,正弦波 2,方波 3,三角波 第二到第四位显示的是相位控制字,在示波器上观察不到相位的变化 第五到最后一位是频率控制字。 设计方案dds.v的源文件中主要是设置相位累加器,频率控制字32位一直反馈相加,取其高十二位然后再与相位控制字相加,相加后的结果作为ROM表的地址。 在其中调用ROM表,三个ROM表分别有一使能端来选择。32位的累加器之所以取其高十二位作为ROM表的地址,是为了扩大频谱宽度,使最小频率降低。ROM表采用的是地址数为4096位的,幅度量化长度为十位。ROM表太浅,频率分辨率就会很低。幅度的量化长度主要决定输出波形的好坏,与频率分辨率无关。这里为了节省存储器的资源,可以将ROM表缩减为原来的二分之一或者四分之一。dds_test.v 文件主要负责频率控制字,相位控制字及使能端的控制键,按键的消抖以及数码管译码输出。控制dds的输出。dds_top.v文件为顶层模块,调用锁相环,dds,以及dds的测试模块。锁相环的作用是为了提高和稳定输出频率。DDS的改善和提高 1控制幅度 可以在ROM表的输出后加个乘法器,如DSP Builder 仿真时那样,由于实验箱的关系,没有设定幅度控制字 2减少ROM表的深度 相位/幅度转换电路中的主要问题在于ROM表的大小。采用外接ROM的方式,节省大量的内部资源,采用映射算法,只存入1/4或1/8的波形数据。这样即可减少数据点的数量,又可以加大逻辑单元的使用。优化方式:基于余弦波信号对于x=pi直线成偶对称,可以将ROM表减至原来的1/2;再利用左半周期内,波形对于点(pi/2,0)成奇对称,进一步将ROM表减至最初的1/4;因此通过一个正弦码表的前1/4周期就可以变换得到正余弦的整个周期码表。这样就节省了将近3/4的资源,非常可观,同时这样还可以改善DDS系统的频谱质量。 3相位累加器的提高 设计中最关键的是相位累加器的设计。相位累加器的设计好坏将直接影响到整个系统的性能和稳定。如果相位累加器采用串行累加器来实现,那么就会使系统速度很低,难以满足实际的要求。为了提高系统的处理速度,相位累加器可以用超前进位加法器来实现,为了进一步提高速度,还可以采用流水线技术,即把在一个时钟内

温馨提示

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

评论

0/150

提交评论