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

下载本文档

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

文档简介

本科毕业论文(设计)题 目: 基于fpga的直接数字 频率合成器设计 学 院: 自动化工程学院 专 业: 电子信息科学与技术 班 级: 2004级2班 姓 名: # 指导教师: # 2008年 6 月 2 日基于fpga的直接数字频率合成器设计the design of direct digital frequency synthesizer based on fpga 摘 要设计由可编程逻辑阵列fpga(field programmable gate array)器件实现直接数字频率的合成器。直接数字频率合成器(direct digital synthesizer)是从相位概念出发直接合成所需波形的一种频率合成技术。由于fpga的自身特点,能够很容易在fpga内部生成多个基本模块,从而开发出功能更强大的芯片。本文在对现有dds技术的学习基础上,在fpga器件上实现了基于dds技术的信号源,并通过键盘控制其波形输出所需的控制字。方案利用quartus开发工具在altera公司的acex1k系列器件上进行了实现。关键词 信号源 可编程逻辑阵列 直接数字频率合成器(dds) 控制字 abstractthe design is based on fpga (field programmable gate array) device to achieve direct digital frequency synthesis. direct digital synthesizer from the concept of phase synthesis necessary waveform. as the fpga its own characteristics, can be easily generated in a number of basic internal fpga module, which developed the more powerful chips. on a large number of investigation of existing research literature,the papers involves the proposed structure of the direct digital frequency synthesizer fpga design. the programmer uses the quartus ii development tool for designing the altera acex1k series devices.keywords signal generator field programmable gate array(fpga) dds control words 5青岛大学本科生毕业论文(设计)目录目 录第1章 绪论21.1频率合成技术简介21.2课题研究意义31.3 设计任务41.4 设计原理及思路41.4.1 dds工作过程51.4.2 原理框图5第2章 dds系统电路的原理及设计62.1 系统框图62.2 具体实现原理分析和说明62.2.1 核心模块-相位累加器62.2.2 基于fpga的 rom查找表122.2.3 模数转换152.2.4 低通滤波输出电路162.3软件验证及仿真172.4其他功能的设计182.4.1 调频、调幅及调相182.4.2 其余波形的产生18第3章 器件选择及具体硬件电路193.1 芯片的选择与使用193.2 设计硬件连接电路图20第4章实验及开发系统214.1实验开发系统的选择214.2演示程序及软件仿真234.3 实验过程与结果分析25总 结28谢 辞29参考文献30青岛大学本科生毕业论文(设计)绪论第1章 绪论1.1 频率合成技术简介频率合成(frequeney synthesis)是指以一个或数个参考频率为基准,在某一频段内,综合产生并输出多个工作频率点的过程。基于这个原理制成的频率源称为频率合成器(frequeney synthesizer)。频率合成器被人们喻为众多电子系统的“心脏”,在空间通信、雷达测量、遥测遥控、射电天文、无线电定位、卫星导航和数字通信等先进的电子系统中都需要有一个频率高度稳定的频率合成器。一个性能优良的频率合成器应同时具备输出相位噪声低、频率捷变速度快、输出频率范围宽和捷变频率点数多等特点。频率合成器一般可分为直接式、间接式(锁相式)、直接数字式。直接式频率合成器是最早出现最先使用的一种频率合成器。它是由一个或多个晶体振荡器经过开关转换、分频、倍频、混频、滤波得到所需要的频率。虽然提出的时间早,最初的方案也显得十分落后,但由于直接模拟合成具有频率捷变速度快,相位噪声低的主要优点而使之在频率合成领域占有重要的地位。这种方法的主要优点是频率转换时间短,理论上可产生任意小的频率间隔。主要缺点有频率范围有限、频率间隔不能太多、采用的大量倍频器、分频器和混频器等,增大了输出信号的噪声以及设备庞大,造价较高等。而且直接模拟频率合成器容易产生过多的杂散分量。随着集成技术和数字技术的发展,直接频率合成器的发展受到了限制。间接式(锁相式)频率合成器有模拟和数字两种,分别为模拟间接式频率合器和数字间接式频率合成器。模拟间接式频率合成具有多种技术途径,如注入锁相振荡源,它是将一个外来基准信号源注入到被锁振荡器时,被锁振荡器所产生振荡的相位和外来基准信号的相位之差保持恒定,称为注入锁相。注入锁相振荡源,实质上是用频率稳定度高的小功率晶振倍频参考源去稳定高频大功率振荡器的频率。注入锁相的方案在很大程度上受到直接频率合成方案的影响,噪声抑制性能差及不能可靠入锁是其缺点。模拟间接式频率合成还有模拟环路锁相源,取样锁相振荡源等。锁频环频率合成器提供了另一种间接频率合成方法。与pll不同,fll频率稳定度取决于鉴频器中的无源色散元件如谐振子或延迟线的相位稳定度。同模拟pll类似,fll的频率切换也是靠vco的粗调电压使频率落入相位的捕捉带内来实现。 数字锁相频率合成器是以数字锁相环为基础构成的锁相频率合成器。应用数字鉴相器和可编程数字分频器是数字锁相频率合成器有别于模拟锁相频率合成器的主要特征。利用可编程分频器,使被合成的频率都有合适的分频比,可得到频率间隔相等的频率。除了鉴相是在参考频率及vco的分谐波频率下完成外,这一锁相环的工作原理与模拟环路锁相振荡源的工作原理类似。用数字指令改变分频比以完成频率切换。具有鉴频功能的数字鉴相器输出与频率有关的误差电压经放大、滤波,使vco的频率达到锁定。有些情况下,为了缩短频率切换时间,需要外加辅助扩捕电路。由于使用了数字器件,数字锁相频率合成器的带内相位噪声受鉴频/鉴相器、数字分频器、参考源、环路放大器等多项累积噪声的限制,所以数字锁相频率合成器的相噪性能比模拟频率合成器的要差,一般被认为应用于对相噪要求不很高的场合。事实上,只要合理优化设计合成器方案,有效控制数字器件引入的噪声,数字锁相频率合成器的相位噪声完全可以做得很低。总的来说,锁相频率合成法基于锁相环路的同步原理,是从一个高准确度、高稳定度的参考晶体振荡器综合出大量离散频率的一种技术。它由基准频率产生器提供一个高稳定度的参考频率,锁相环路利用其良好的窄带跟踪特性,使频率准确的锁定在参考频率或其n次谐波频率上。当锁相环路 (pll)达到稳定状态后,若输入信号为一固定频率的正弦波,则压控振荡器的输出信号频率与输入信号频率相等,它们之间的相位差为一常值。这种状态为环路的锁定状态。这种方法的优点是结构简单,输出频率纯度高,易于得到大量的离散频率,虽然锁相环频率合成技术发展非常快,应用也很广泛,但其频率转换速度不快,分辨率低,电路和微机控制复杂。直接数字频率合成技术是一种新的频率合成方法,上世纪七十年代初由美国学者j.tierncy,c.m.rader和b.gold提出,是频率合成技术的一次革命。直接数字频率合成技术是全数字技术从相位概念出发直接合成所需波形的频率合成方法。近30年间,随着集成电路技术和器件水平的提高,直接数字频率合成技术dds(direct digital frequency synthesizer)得到了飞速的发展,它以有别于其它频率合成方法的优越性能和特点成为现代频率合成技术中的佼佼者1。直接数字频率合成器的基本优点是在微处理器的控制下,能够准确而快捷地调节输出信号的频率、相位和幅度。由于应用全数字的大规模集成技术,除了具有体积小、价格低、频率分辨率高、快速换频,易于智能控制等突出特点此外,dds还具有频率和相位分辨率高、频率切换速度快、易于智能控制等突出特点。这些特点使新出现的dds技术已经成为频率合成技术的理想的解决方案之一。青岛大学本科生毕业论文(设计)绪论1.2 课题研究意义直接数字频率合成技术是近年来发展起来的一种新的频率合成技术,他是将先进的数字处理理论与方法引入信号合成领域的一项新的技术,标志着合成技术进入第三代(第一代是直接频率合成技术,第二代是锁相环频率合成技术,第三代是直接数字频率合成技术)。其特点是计算机参与频率合成,把一系列数字量形式的信号通过数模器转换成模拟量形式的信号,在时域中进行频率合成。直接数字式频率合成的优点是:(1)转换频率的时间短(可达ns级),直接数字频率合成是一个开环系统,其频率转换时间主要由频率控制字状态改变所需的时间及各电路的延迟时间所决定,转换时间很短。(2)频率分辨率高,频点数多。dds输出频率的分辨率和频点数随着相位累加器位数的增加而成指数增长,分辨率可以达到很高。(3)相位连续。dds在改变频率时只需改变频率控制字(即累加器累加步长),而不需要改变原有的累加值,故改变频率时相位时连续的。(4)相位噪音小。dds相位噪音主要取决于参考源的相位噪音。(5)频率、相位和幅度均可实现程序控制,输出频率的稳定度与系统的时钟稳定度相同。高集成度、高速和高可靠性是fpga最明显的特点,其时钟延迟可达纳秒级,结合其并行工作方式,在超高速应用领域和实时测控方面有非常广阔的应用前景。更主要的是,由于能与计算机紧密的结合在一起,故可充分发挥软件的作用。随着大规模集成电路和微型计算机技术的迅速发展,新的高速器件不断出现,dds的应用前景是十分广泛的。在现代通信领域,直接数字频率合成器的应用越来越广泛,在数字化的调制解调模块中,dds取代了vco(模拟的压控振荡器)而被大量应用。同时,高速集成电路的发展进一步改善了dds的性能,它与传统技术相结合组成的各种混合设计方案将频率源的性能提升到了一个新的水平,因此,未来的dds不仅可应用于需要使用信号源的传统领域,而且也必将开拓出许多新的应用领域。目前市场上性能优良的dds产品不断推出,主要有qualcomm、ad、sciteg和stanford等公司单片电路。虽然这些专用dds芯片的功能也比较多,他们的输出频率高、输出波形好,但控制方式却是固定的,因此不一定是我们所需要的。而利用可编程逻辑门阵列fpga(field programmable logic gate array)则可以根据需要方便地实现各种比较复杂的调频、调相和调幅功能,具有良好的实用性。就合成信号质量而言,专用dds芯片由于采用特定的集成工艺,内部数字信号抖动很小,可以输出高质量的模拟信号;利用 fpga也能输出较高质量的信号,虽然达不到专用dds芯片的水平,但信号精度误差在允许范围之内。2对于本次设计,采用fpga设计的dds电路,充分发挥了fpga系统可编程的优点,可以通过软件灵活改变相关参数,设计出的dds功能灵活,而且尽可能的留下扩展的空间,因为只要改变fpga中存储数据,就可以产生所需波形。采用fpga来实现,能让我们熟悉可编程器件的选择,而且熟悉硬件描述编程语言vhdl(very high speed integrated circuit hardware description language)和相关的软件开发环境。1.3 设计任务要求设计基于fpga的直接数字频率合成系统。设计目标为:可以实现稳定的正弦波输出,输出最高频率256khz,且频率可调,控制字由键盘输入。1.4 设计原理及思路dds主要由按键输入部分、输入及控制、相位累加器、幅度/相位转换电路、d/a转换器和低通滤波器(lpf)组成。输入控制电路负责采集频率字,相位累加器由n位全加器和n位累加寄存器级联而成,对代表频率的2进制码进行累加运算,是典型的反馈电路,产生累加结果。幅度/相位转换电路实质上是一个波形寄存器,以供查表使用。读出的数据送入d/a转换器和低通滤波器。1.4.1 dds工作过程首先由键盘输入所需频率的频率控制字,经过fpga控制转换后,送至数码管显示,同时控制字信号送至下一级的相位累加器。相位累加器是整个dds的核心,它由n位加法器和n位相位寄存器级联构成,类似一个简单的加法器,完成相位累加的功能。每来一个时钟脉冲,加法器就将输入的n位频率字与相位寄存器输出的累加相位数据相加,然后将相加后的结果送至相位寄存器的输入端,相位寄存器就在下一个时钟到来后产生的新相位数据反馈到相位累加器的输入端,以使加法器在时钟的作用下继续将相位数据与输入的频率字相加。当相位累加器累加满量时,就会产生一次溢出,完成一个周期性的动作,这个周期就是合成信号的一个周期,累加器的溢出频率就是dds的合成信号频率。同步寄存器的使用是为了当输入的频率字改变时不会干扰相位累加器的正常工作。正弦rom查找表的作用是完成相位幅度的查表转换。将相位累加器输出的相位数据作为取样地址,来寻找正弦rom表进行相位到幅度的变换,输出不同的幅度编码。再经d/a转换器得到相应的阶梯波,最后经过低通滤波器对阶梯波进行平滑处理,衰减和滤除不需要的取样分量,得到由输入频率字决定的连续变化的输出正弦波。系统时钟由一个高稳定度的晶体振荡器产生,用来同步整个合成器的各组成部分。模拟部分包括d/a转换器和低通滤波器,d/a转换器作用是将合成的数字信号转换为模拟信号,d/a转换器输出的模拟锯齿信号再经过低通滤波产生平滑的正弦信号。青岛大学本科生毕业论文(设计)绪论1.4.2 原理框图32dds核心模块正弦查找表同步寄存器相位寄存器低通滤波相位累加d/a转换模拟输出输入控 制数字输入led显示图1.1所示是一个dds电路的基本工作原理框图。图1.1 dds工作原理框图青岛大学本科生毕业论文(设计)绪论青岛大学本科生毕业论文(设计) 系统电路的原理及设计第2章 dds系统电路的原理及设计2.1 系统框图按照要求,整体设计方案如下:以fpga芯片acex1k为核心,处理由按键输入的频率控制字,送入数码管显示,同时将控制字信号送入累加器,rom查找表将存在rom中的波形数据相应输出给d/a转换器dac0832完成数模转换,继而经过低通滤波器进行滤波,从而得到纯净的正弦波。系统总体框图如图2.1所示。波形输出低通滤波数码管显示d/a转换dac0832波形存储器相位累加器fpgaacex1按键输入控制字图2.1 dds总体设计框图2.2 具体实现原理分析和说明2.2.1 核心模块-相位累加器这一模块是由fpga接受由键盘输入的频率控制字,送至相位累加器,完成相位累加的功能。相位累加器是实现dds的核心,它由一个8位字长(可自定义)的二进制加法器和一个固定时钟脉冲取样的8位(可自定义)相位寄存器组成。dds的基本原理是利用采样定理,通过查表法产生波形,对于正弦信号发生器,其输出的波形可以用下式来描述:sout=asint=asin(2foutt) 上式的表述对于时间是连续变化的,式中sout是指输出信号波形,fout指输出信号对应的频率。对上式进行离散化处理,以便能用数字逻辑实现。用基准时钟clk进行抽样,令正弦信号的相位:=2foutt在一个clk周期tclk,相位的变化量为:=2fouttclk= 2fout/ fclk式中,fclk为clk的频率,为了对信号进行数字量化,把信号切割成2n份,由此每个clk周期的相位增量用量化值来表述,则b2n /2且b为整数,与的表达式联立,可得b/2n =fout/ fclk ;b=2nfout/ fclk由上式可知,相位增量量化值b与输出频率fout为线性关系。当系统时钟的频率fclk为2n时,b就等于fout。显然,信号发生器的输出可描述为:sout=asin(k-1+)=asin2(bk-1+b)=afsin(bk-1+b)其中k-1指前一个clk周期的相位值,同样得出bk-12nk-1/2由上面的推导,可以看出,只要对相位的量化值进行简单的累加运算,就可以得到正弦信号的当前相位值,而用于累加的相位增量量化值b决定了信号的输出频率fout,并呈现简单的线性关系。因此,通过调节输入时钟频率和位宽就可以合成出任意频率的信号。直接数字频率合成器dds就是根据上述原理而设计的数字控制频率合成器。4由于受到fpga芯片资源限制,所能达到的频率不是很高,范围也不是很广。根据设计目标,本设计中的系统时钟采用12mhz晶振经过16分频得到750khz的频率信号,当正弦信号采样周期为tclk=1/fclk时,每个采样周期相应的相位增量为根据nyquist准则,dds允许输出频率最高为fo=fclk/2。在实际情况中受低通滤波器的限制,一般fomax=40%fclk=300khz,满足系统要求的最高输出频率256khz的要求。频率分辨率可用频率输入值步进一个最小间隔对应的频率输出变化量来衡量:fout=fclk /2n=750khz /1024=750hz,dds的频率输入字b的计算:b=2nfout/ fclk,注意b要取整,有时会有误差。基于上面的讨论,在quartus ii开发环境中(图2.2)实现相位累加器模块。图2.2 quartus ii开始向导界面quartus ii软件是altera公司新一代pld开发软件,适合大规模fpga的开发,支持altera最新的fpga和cpld,其向导界面如图2.2所示,quartus ii软件用来进行所有新的设计。max+plusii 软件适用于已经做过的设计,对于新设计不推荐使用。quartus ii软件目前包括一个max+plus ii用户界面设置,用户能够轻松的从max+plus ii软件转换到quartus ii。quartus ii是本设计所应用的核心工具,提供从设计输入到器件编程的全部功能,用来完成dds的核心部分的设计与仿真,支持altera最新的fpga和cpld和几乎所有老的器件系列5。quartus ii可以产生并识别edif网表文件、vhdl网表文件和verilog hdl网表文件,为其他eda工具提供了方便的接口;可以在quartus ii集成环境中自动运行其他eda工具。利用quartus ii软件的开发流程可概括为以下几步,如图2.3所示: 设计输入设计输入包括使用硬件描述语言hdl、状态图与原理图输入三种方式。hdl设计方式是现今设计大规模数字集成电路的良好形式,除ieee标准中vhdl与verilog hdl两种形式外,尚有各自fpga厂家推出的专用语言,如quartus下的ahdl。通常,fpga厂商软件与第三方软件设有接口,可以把第三方设计文件导入进行处理。如quartus与foundation都可以把edif网表作为输入网表而直接进行布局布线,布局布线后,可再将生成的相应文件交给第三方进行后续处理。 设计综合综合,就是针对给定的电路实现功能和实现此电路的约束条件,如速度、功耗、成本及电路类型等,通过计算机进行优化处理,获得一个能满足上述要求的电路设计方案。也就是是说,被综合的文件是hdl文件(或相应文件等),综合的依据是逻辑设计的描述和各种约束条件,综合的结果则是一个硬件电路的实现方案,该方案必须同时满足预期的功能和约束条件。对于综合来说,满足要求的方案可能有多个,综合器将产生一个最优的或接近最优的结果。因此,综合的过程也就是设计目标的优化过程,最后获得的结构与综合器的工作性能有关。 仿真验证输入原理图/vhdl代码设计综合功能仿真及波形分析行为仿真验证 转换映射fpga配置时序分析编程下载/配置和硬件测试从广义上讲,设计验证包括功能与时序仿真和电路验证。仿真是指使用设计软件包对图2.3 quartus ii软件设计开发流程图已实现的设计进行完整测试,模拟实际物理环境下的工作情况。前仿真是指仅对逻辑功能进行测试模拟,以了解其实现的功能否满足原设计的要求,仿真过程没有加入时序信息,不涉及具体器件的硬件特性,如延时特性;而在布局布线后,提取有关的器件延迟、连线延时等时序参数,并在此基础上进行的仿真称为后仿真,它是接近真实器件运行的仿真。 设计实现实现可理解为利用实现工具把逻辑映射到目标器件结构的资源中,决定逻辑的最佳布局,选择逻辑与输入输出功能连接的布线通道进行连线,并产生相应文件(如配置文件与相关报告)。在实现过程中可以进行选项设置。因其支持增量设计,可以使其重复多次布线,且每次布线利用上一次布线信息以使布线更优或达到设计目标。在实现过程中应设置默认配置的下载形式,以使后续位流下载正常。 时序分析在设计实现过程中,在映射后需要对一个设计的实际功能块的延时和估计的布线延时进行时序分析;而在布局布线后,也要对实际布局布线的功能块延时和实际布线延时进行静态时序分析。从某种程序来讲,静态时序分析可以说是整个fpga设计中最重要的步骤,它允许设计者详尽地分析所有关键路径并得出一个有次序的报告,而且报告中含有其它调试信息,比如每个网络节点的扇出或容性负载等。静态时序分析器可以用来检查设计的逻辑和时序,以便计算各性能,识别可靠的踪迹,检测建立和保持时间的配合,时序分析器不要求用户产生输入激励或测试矢量。 下载验证下载是在功能仿真与时序仿真正确的前提下,将综合后形成的位流下载到具体的fpga芯片中,也叫芯片配置。fpga设计有两种配置形式:直接由计算机经过专用下载电缆进行配置;由外围配置芯片进行上电时自动配置。6将位流文件下载到fpga器件内部后进行实际器件的物理测试即为电路验证,当得到正确的验证结果后就证明了设计的正确性。电路验证对fpga投片生产具有较大意义。基本dds结构的vhdl描述如下:- ddsc: dds主模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity ddsc is - dds主模块generic( freq_width : integer := 8; - 输入频率字位宽adder_width : integer := 8; - 累加器位宽romad_width : integer := 8; - 正弦rom表地址位宽rom_d_width : integer := 8); - 正弦rom表数据位宽port( clk: in std_logic; - dds合成时钟 freqin: in std_logic_vector (freq_width-1 downto 0); - 频率字输入 ddsout: out std_logic_vector(rom_d_width-1 downto 0); - dds输出end entity ddsc;architecture behave of ddsc issignal acc : std_logic_vector(adder_width-1 downto 0);signal romaddr : std_logic_vector(romad_width-1 downto 0);signal freqw : std_logic_vector(freq_width-1 downto 0);beginprocess (clk)beginif(clkevent and clk = 1) thenfreqw = freqin; - 频率字输入同步acc = acc + freqw; - 相位累加器end if;end process;romaddr rom_d_width,lpm_widthad = romad_width,lpm_address_control = unregistered,lpm_outdate = registered,lpm_file = sim_rom.mif ) -指向rom文件port map ( outclock = clk,address = romaddr,q = ddsout );end architecture behave;这段程序中的正弦rom查找表是采用了altera的lpm_rom模块,所以该程序必须在altera含有eab(嵌入式阵列块)的器件上使用,如flex10k系列,也可以经过适当的转化,在其他fpga上实现时,使用其他fpga厂家的rom模块。“sin_rom.mif”是正弦rom中的值,放置幅度相位的查表值。在上面的程序中大量使用了generic语句,是为了便于在dds主模块调用时更改设计,并放大使vhdl程序便于阅读。在quartus ii 编译环境中,设计的累加器模块如图2.4所示。图2.4 相位累加器模块下面给出一个实际的正弦信号发生器的源程序,调用了dds主模块。- 简易频率合成器- dds(10bit频率字,1024 points 10bit out) library ieee;use ieee.std_logic_1164.all;entity ddsall isport( sysclk : in std_logic; - 系统时钟ddsout : out std_logic_vector(9 downto 0);- dds输出fpin : in std_logic_vector(9 downto 0);end ddsall;architecture behave of ddsall iscomponent ddsc isgeneric( freq_width : integer := 10; - 输入频率字位宽 adder_width : integer := 10; - 累加器位宽romad_width : integer := 10; - 正弦rom表地址位宽port(clk:in std_logic; - dds合成时钟 freqin:in std_logic_vector(freq_width-1 downto 0); - 频率字输入ddsout:out std_logic_vector(rom_d_width-1 downto 0);- dds输出end component ddsc;signal clk : std_logic;signal freqind : std_logic_vector(9 downto 0); - 频率字begini_ddsc : ddsc - 例化ddscport map(clk = clk,ddsout = ddsout,freqin = freqind);clk = sysclk;process(sysclk)beginif(sysclkevent and sysclk = 1) thenfreqind(9 downto 0) = fpin; end if;end process; end behave;2.2.2 基于fpga的 rom查找表fpga的结构是由基于半定制门陈列的设计思想而得到的。从本质上讲, fpga是一种比半定制还方便的asic 设计技术。fpga的结构主要分为三部分: 可编程逻辑块、可编程io 模块、可编程内部连线。查找表型fpga的可编程逻辑单元是由功能为查找表的sram构成逻辑函数发生器, 实现与其它功能块的可编程连接。在此,选用acex1k系列ep1k30tc-144的fpga作为目标芯片。ep1k30芯片属于altera公司的acex系列,采用0.18微米混合工艺,密度达100 000门,兼容64bit,66mhz的pci,并支持锁相环电路。acex1k采用查找表(lut)和嵌入式阵列块(eab)想结合的结合的结构,可用来实现存储器、专用逻辑功能和通用逻辑功能,每个eab能提供4 096比特的存储空间,每个le包含四个输入lut、一个可编程的触发器、进位链和一个层叠链。合理运用进位链能够提高系统运行速度。ep1k30tc-144的最大系统门数为119 000,它有1 728个逻辑宏单元和五个嵌入式阵列块,最大可提供2kbde rom/ram位,因而可完全满足dds的设计要求。另外altera还在它们公司的vhdl设计平台quartus ii上提供了lpm rom核,利用max+plus综合可以自动编译包含lpm rom元件的文件, 在acex1k的eab上产生rom功能。本设计利用lpm rom核预置正弦查找表在fpga上4。在quartus ii中自定义rom模块,如下图2.5所示图2.5 自定义rom查找表模块设定rom的输入宽度,输出宽度,本设计均为8位。配置查找表文件sin_rom.mif,如下图2.6所示图2.6 rom查找表mif文件配置“sin_rom.mif”是正弦rom中的值,放置幅度相位的查表值,可由文本形式生成,也可由高级语言如c语言生成11。rom查找表在整个设计中是一个比较重要的部分,为了保证波形的平滑,设计时可将一个周期分为1024个点。但是,点数太多时,用文本方式输入可能有很多困难。因此,应当用c语言描述正弦方程式,最后再将其转化为所需的mif文件。下面是用turbo c在“sin_rom.mif”文件里产生1024个点的正弦波数据的源程序:#include #include math.hmain( )int i;float s;for(i=0;i sin_rom.mif;生成sin_rom.mif文件,再加上下面的头部说明即可,其中sin为产生的dos下可执行文件名。具体参数:lpm_width:输出数据的宽度(164任选);lpm_widthad:输入地址的宽度(112任选);lpm_file:存储器初始化文件名(.mif或.hex)。本设计中各参数设置如下:lpm_width =8;lpm_widthad=8; lpm_outdata=”unregistered”;lpm_address_control=unregistered;lpm_file=”sim_rom.mif如果位宽为10位,则产生的sin_rom.mif文件如下:width=10; -文件中头部说明depth=1024;address_radix=dec;data_radix=dec;content begin0:511;1:514;2:517;3:520;4:524;5:527;1019:495;1020:498;1021:502;1022:505;1023:508;end;在quartus ii 编译环境中,产生的rom查找表模块如图2.7所示图2.7 rom查找表模块实际上,dds还可以产生任意频率的正弦信号发生器,可用来作任意波形发生器,只要改变rom查找表中的数据就可以实现,程序中介绍了正弦波形实现,直接频率合成技术还有一个很重要的为了让频率发生器产生任意波形,从上面直接数字频率合成的原理可知,其输出波形取决于波形存储器的数据。因此,产生任意波形的方法取决于向该存储器(ram)提供数据的方法,只需要改变查找表中的数据。目前有以下几种方法7。(1) 表格法将波形画在小方格纸上,纵坐标按幅度相对值进行二进制量化,横坐标按时间间隔编制地址,然后制成对应的数据表格,按序放入ram。对经常使用的定了“形”的数据,可将数据固化于rom或存入非易失性ram中,以便反复使用。(2) 数学方程法对能用数学方程描述的波形,先将其方程(算法)存入计算机,在使用时输入方程中的有关参数,计算机经过运算,提供波形数据。(3) 折线法对于任意波形可以用若干线段来逼近,只要知道每一段的起点和终点的坐标位置(x1y1和x2y2)就可以按照下式计算波形各点的数据yiy1+(xi-x1)(4) 作图法在计算机显示器上移动光标作图,生成所需波形数据,将次数据送入ram。(5) 复制法将其他仪器(如数字存储示波器,x-y绘图仪)获得的波形数据通过微机系统总线传输给波形数据存储器。在自然界有很多无规律的现象,例如,雷电、地震及机器运转时产生的震动等现象都是无规律的,甚至不能再现。为了研究这些问题,就要模拟这些现象的产生。过去只能采用很复杂的方法实现,现在采用任意波形发生器则方便的多。2.2.3 模数转换输出处理子系统是一模拟系统,用来完成数字频率到模拟频率的转换,通过dac可将数字量形式的波形幅值转换成所要求的合成频率模拟量形式信号12。 考虑到dds的输出为8位数字量,工程要求的最高输出频率为256khz,因此可以直接利用dac0832完成转换。dac0832是双列直插式8位d/a转换器。能完成数字量输入到模拟量(电流)输出的转换。图1-1和图1-2分别为dac0832的引脚图和内部结构图。其主要参数如下:分辨率为8位,转换时间为1s,满量程误差为1lsb,参考电压为(+10?/span-10)v,供电电源为(+5+15)v,逻辑电平输入与ttl兼容。从图1-1中可见,在dac0832中有两级锁存器,第一级锁存器称为输入寄存器,它的允许锁存信号为ile,第二级锁存器称为dac寄存器,它的锁存信号也称为通道控制信号 /xfer。图2.8中,当ile为高电平,片选信号 /cs 和写信号 /wr1为低电平时,输入寄存器控制信号为1,这种情况下,输入寄存器的输出随输入而变化。此后,当 /wr1由低电平变高时,控制信号成为低电平,此时,数据被锁存到输入寄存器中,这样输入寄存器的输出端不再随外部数据db的变化而变化对第二级锁存来说,传送控制信号 /xfer 和写信号 /wr2同时为低电平时,二级锁存控制信号为高电平,8位的dac寄存器的输出随输入而变化,此后,当 /wr2由低电平变高时,控制信号变为低电平,于是将输入寄存器的信息锁存到dac寄存器中。图2.8中其余各引脚的功能定义如下:(1)、di7di0 :8位的数据输入端,di7为最高位。(2)、iout1 :模拟电流输出端1,当dac寄存器中数据全为1时,输出电流最大,当 dac寄存器中数据全为0时,输出电流为0。(3)、iout2 :模拟电流输出端2, iout2与iout1的和为一个常数,即iout1iout2常数。(4)、rfb :反馈电阻引出端,dac0832内部已经有反馈电阻,所以 rfb端可以直接接到外部运算放大器的输出端,这样相当于将一个反馈电阻接在运算放大器的输出端和输入端之间。(5)、vref :参考电压输入端,此端可接一个正电压,也可接一个负电压,它决定0至255的数字量转化出来的模拟量电压值的幅度,vref范围为(+10-10)v。 图2.8 dac0832vref端与d/a内部t形电阻网络相连。(6)、vcc :芯片供电电压,范围为(+5 15)v。(7)、agnd :模拟量地,即模拟电路接地端。(8)、dgnd :数字量地。2.2.4 低通滤波输出电路d/a输出后,低通滤波器用于衰减和滤除不需要的取样分量,以便输出频谱纯净的正弦波信号。滤波器在通带内的平坦程度对我们而言,比其衰减更为重要,而且,巴特沃斯滤波器的元件值也较合乎实际情况,不像绝大多数其他类型滤波器对元件值要求那么苛刻。在截止频率附近,频率响应钝化可能使这些滤波器在要求锐截止的地方不合要求。二阶巴特沃斯有源低通滤波器设计(图2.9)正弦波的输出频率小于10khz,为保证10khz频带内输出幅度平坦,又要尽可能抑制谐波和高频噪声,综合考虑取图2.9 有源低通滤波器设计图r1 = 1 k,r2 = 1 k,c1 = 100 pf,c = 100pf 2.3 软件验证及仿真图2.10 dds仿真结果窗口fpga部分电路是整个电路设计系统中最主要的部分,所以其能否正常工作对整个系统的工作起关键作用。fpga部分仿真主要是观察波形数据的值的输出是否正确和值输出的频率是否和预置的频率控制字相对应,仿真部分波形如图2.10所示。在quartus ii的仿真文件.scf里对fpga部分的电路进行了验证。由于外部有源晶振的频率为4.096mhz,故将.scf的option里的grid size设置为244.1ns,即周期差不多是4.096mhz,当频率输入字为“0000000001”时,输出二进制数据应该按照“sin_rom.mif”正弦查找表中的数据变化。仿真在这里是由quartus ii开发工具直接提供(当然也可以使用第三方的专业仿真工具),运行仿真,得到的结果跟理论的结果几乎一样,因此,可以确定整个fpga部分电路可以正常运行。quartus ii的设计软件中的.tbl文件是纯文本文件,它包含了.scf文件中的所有信息。.tbl文件的生成很简单,在quartus ii波形仿真结束后,打开.scf文件,然后从“file”菜单中选择“create table file”选项,就可产生.tbl文件。.tbl文件的基本结构可分为四大部分,其中第三部分和第四部分是最关键的,可从中获取仿真波形数据,并利用计算机高级语言处理这些数据,将其转换为直观的波形曲线。需要注意的是,每做一次quartus ii波形仿真,都要重新生成一次.tbl文件,以更新.tbl文件内的数据。从图2.11的波形仿真结果中很难直观地看出dds输出正弦波的情况。为了便于调试设计电路,我们可以利用计算机高级语言将quartus ii波形仿真结果转换为波形曲线,其中需要借助于quartus ii的表格文件(.tbl文件)。2.4 其他功能的设计2.4.1 调频、调幅及调相调频是根据调制信号,不断地改变频率控制字,使相位累加器的输入数据中包含有调制信号的信息,并将其准确地反应到dds输出频率上;调相则是根据调制信号改变相位/幅值查找表的查询地址,使输出波形的相位发生相应的变化;而调幅是直接根据调制信号的大小,改变从rom中输出的幅值,使得输出信号的包络随调制信号改变。因此,在频率控制字寄存器与相位累加器之间插入一个加法器调频,在相位寄存器与相位/幅值查找表之间插入一个加法器实现调相,而在相位/幅值查找表之后插入一个乘法器实现调幅,如图2.11所示。图2.11 调频、调相及调幅框图频率控制寄存器相位累加器调频输入相位寄存器相位幅值查找表调相输入调幅输入daclpffclkfout2.4.2 其余波形的产生相位累加器中的相位累加值随着时间呈线性变化,包络的形状为锯齿波,而频率与设定的频率控制字相对应。因此,把累加器的累加结果直接送往adc,再经过lpf后即可直接获得锯齿波;把象限求补器的输出送往adc可得到三角波,频率是频率控制字设定的两倍;把相码的最高位送往adc,即可得到矩形波,频率也与设定的频率控制字相对应,如图2.12所示。图2.12 根据dds特性构建其他波形青岛大学本科生毕业论文

温馨提示

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

评论

0/150

提交评论