毕业论文--基于fpga的数字直接频率合成器的设计内容摘要:

,端口加入到波形文件中,同时可以在右边功能选择加入不同的波形或是时钟。 图 28 加入节点后的波形图 4) 设置为功能仿真: Assignmen— Timing Analysis Settings— Simulator Settings—Simulation mode 选择 Functional, 生 成 网 络 表 Processing —Generate Functional Simulation Netlist。 9 5)点 击快捷 按钮,开始仿真,完成后得到波形如图 29所示,根据分析,功能符合设计要求,得到的结果可以根据实际逻辑进行对比。 图 29 仿真结果 本章小结 本 章对 Quartus II软件的使用进行了较全面的介绍。 首先介绍本软件的基本功能;其次结合各中不同的输入方式对设计的流程及软件的操作的具体操作进行了详细介绍,同时给出了相应的设计举例;最后对 Quartus II 的仿真作了简短介绍。 通过以上介绍,使本设计完成更加完整、简单。 10 3 DDS 系统简介 DDS 是先进的数字 处理理论与方法引入频率合成的一项新技术,它能够把一系列数字量的信号通过数模转化成模拟量输出。 DDS 是一种全 数字化 的 频率合成器 ,其基本组成包括相位 累加器 、 波形 ROM、 D/A 转换器 和 低通滤波器。 时钟频率 给定后,输出信号的频率取决于频率控制字, 频率分辨率 取决于 累加器 位数,相位分辨率取决于 ROM 的地址线 位数,幅度 量化噪声 取决于 ROM 的 数据位 字长 和 D/A 转换器 位数。 DDS 系统工作原理 DDS 的理论基础是奈奎斯特抽样定理。 抽样定理内容是:当抽样频率大于等于模拟信号频率的 2倍时,可以由抽样得到的离散信号无失真地恢复原始信号。 [4]在 DDS 中,这个过程被颠倒过来了。 它不是对模拟信号进行抽样,而是一个假定抽样过程已经发生且抽样的值已经量化完成,通过某种映射把已经量化的数值送到 D/A 及后级的 LPF 重建原始信号的问题。 该系统的组成框图如图 31所示。 图 31 DDS 原理图 从图 31可知,相位累加器由 N 位加法器 与 N 位累加寄存器级联构成,每来一个时 参考频率源 输出信号 频率 控制字 相位 累加器 正弦波存储器 D/A 转化器 低通 滤波器 11 钟脉冲 Fc, N 位加法器将频率控制数据 K 与累加寄存器输出的累加相位数据相加,把相加后的结果 Y 送至累加寄存器的输入端。 累加寄存器一方面将在上一时钟周期作用后所产生的新的相位数据反馈到加法器的输入端,以使加法器在下一时钟的作用下继续与频率控制数据 K 相加;另一方面以相加后的结果形成正弦查询表的地址 ,取出表中与该相位对应的单元中的幅度量化正弦函数值,作为取样地址值送入幅度 /相位转换电路(即图 31中的波形存储器)。 这样就可把存储在波形存储器内的波形抽样值 (二进制编码 )经查找表查出, 完成相位到幅值转换。 波形存储器的输出送到 D/A 转换器, D/A 转器将数字量形式的波形幅值转换成所要求合成频率的模拟量形式信号。 理想正弦波信号可以表示为 )2c o s ()(   ftAtS ( 31) 式( 31)说明 S( t)在振幅 A 和初相位  确定后,频率由相位唯一确定,即 ftt  2)(  ( 32) DDS 就是利用式( 32)中 )(t 与时间 t 成线性关系原理进行频率合成的,在时间 t=Tc 间隔内,正弦信号的相位增量  与正弦信号的频率 f 构成一一对应关系, 即 CTf  2/ (33) 当 DDS 正常工作时,在标准参考频率源的控制下,相位累加器不断进行相位线性累加(每次累加值为频率控制字 K)。 相位累加器积满时就会产生一次溢出,从而完成一个周期性的动作,这个周期就是 DDS 合成信号的频率周期。 输出信号波形的频率为: N CcNoutfKfKf 22222   (34) 显而易见,当 K=1时输出最小频率,即频率分辨率为 Ncff 2/min 。 式 (34)中, fout 为输 12 出信号频率; K 为频率控制字; N 为相位累加器字长; fc 为标准参考频率源工作频率。 当 K=1时, DDS 输出最低频率(即漂亮分辨率)为: Ncff 2/min (35) DDS 的最大输出频率是由奈奎斯特采样定理决定,即 2/max cff  ( 36) 频率控制字 K 的最大值为 N2 1。 DDS 系统电路 DDS 的基本结构包括相位累加器、正弦查找表 ROM、数模转换器 DAC 以及低通滤波器等,如图 31所示。 其中相位累加器和正弦查找表 ROM 合称为数控振荡器 NCO。 下面对 DDS 的基本结构予以说明。 [5] 图 32中的参考时钟是一个稳定的晶体振荡器,用它来同步整个合成器的各个组成部分,相位累加器类似于一个简单的计数器,在每个时钟脉冲输入 时,它的输出就增加一个步长的相位增量值。 相位累加器把频率控制字 FSW 的数据变成相位抽样来确定输出频率大小。 相位增量的大小随外部指令 FSW 的不同而不同,一旦给定了相位增量,输出频率也就确定了。 图 32中正弦查询表是一个可编程只读存储器( PROM),存有一个或多个完整周期的正弦波数据。 在时钟 cf 驱动下,地址计数器逐步经过 PROM 存储器的地址,地址中相应的数字信号输出到 N 位数 /模转换器( DAC)的输入端,由 DAC 转换成模拟信号。 当用这 样的数据寻址时,正弦查找表就把存储在相位累加器中的抽样值转换成正弦波幅度的数字量函数。 数 /模转换器吧数字量编程模拟量,低通滤波器( LPF)进一步平滑并滤掉带外杂散信号,得到所需正弦波波形。 图 32 DDS 基本结构框图 输出 of 时钟 正 弦 查询表 地 址 计数器 DAC LPF 13 DDS 系统的主要技术指标 对于频率合成器的基本要求是既要合成所需频率,又要保证信号纯净。 综合来看,衡量频率合成器的主要性能指标有以下几个。 频率范围 1)输出频率范围。 输出频率范围是指频率合成器的最低输出频率minof和最高输出频率 maxof 之间的变化范围。 用相对带宽 f 来衡量输出频率范围 ( 37) 2)频率准确度和准确度。 频率准确度是在规定的时间间隔内,频率合成器的实际输出频率与漂亮标定值偏差的数值,可分为长期、短期和瞬时稳定度。 准 确度主要是由设定的频率与实际输出频率之间的偏差决定,偏差越小频率准确度越高。 频率分辨率 频率合成器的输出频率通常是不连续的,频率分辨率是指在两个输出频率之间的最下间隔。 频率切换时间 频率切换时间是指频率合成器输出频率由一个频点切换到另一个频点并能达到稳定工作时间所需要的时间。 该指标与频率合成器所采用的技术有紧密联系。 DDS 的不足之处主要有如下两点: 首先杂 散分量丰富。 这些杂散分量主要由相位舍位、幅度量化和 D/A 转换器的非理想特性所引起。 因为 DDS 在实际的电路中,为了达到足够小 的频率分辨率,通常将相位累加器的位数取大。 但受体积和成本的限制,即使采用先进的存储方法, ROM 的容量都远小于此,因此在对 ROM 寻址时,只是用相位累加器的高位去寻址,这样不可避免地引起误差,即相位舍位误差。 [6] 另外,一个幅值在理论上只能用一个无限长的二进制代码才能精确表示,由于 ROM 的存储能力,只采用了有限比特代码来表示这一幅值,这必然会引起幅度量化误差。 另外, D/A 转换器的有限分辨率以及非线性也会引起误差。 所以对杂散的分析和抑制,一直是国内外研究的特点,因为他从很大程度上决定了 DDS 的性能。 其次, 频带受限由于 DDS内部 D/A转换器和 ROM的工作速度限制,使得 DDS输出的最高频率有限。 目前市场上采用 CMOS、 TTL等工艺制作的 DDS芯片工作频率一般在几十%100)2minmax minmax(  ofof ofofΔf 14 MHz至几百 MHz。 本章小结 DDS 是数字控制方式从一个标准参考频率源产生多种频率的技术,它是吧一些列数字量形式的信号通过 D/A 转换成模拟量形式的信号合成技术。 利用高速存储器作查找表,然后通过高速 D/A 转换器产生已经用数字形式存入的正弦波、方波、锯齿波和三角波。 DDS 在相对带宽、频率转换时间、相位连续性和分辨率等一系列的指标都远超过了传统的平 率合成技术。 本设计按照以上介绍的正弦波合成原理,采用可编程逻辑器件 FPGA和硬件描述语言完成本次设计。 15 4 系统总体设计 FPGA 设计的 DDS 系统主要由相位累加器及相位 /幅度转换电路组成。 根据设计的具体要求,还设计了一个系统控制电路,该电路可灵活设计,以突出 FPGA 的优点所在。 另外采用硬件描述语言实现整个 DDS 电路,不仅利于设计文档的管理,而且方便设计的修改和扩充,还可以在不同 FPGA 器件之间实现相互移植。 模块设计和实现 相位累加器部分 在用 FPGA 设计 DDS 电路的时候,相位累加器是 决定 DDS 电路性能的一个关键部分。 小的累加器可以利用 FLEX 器件的进位链得到快速、高效的电路结构。 然而由于进位链必须位于临近的 LAB(逻辑阵列块)和 LE(逻辑单元)内,因此长的进位链势必会减少其它逻辑使用的布线资源,同时过长的进位链也会制约整个系统速度的提高。 另一种提高速度的办法是采用流水线技术,即把在一个时钟内要完成的逻辑操作分成几步较小的操作,并插入几个时钟周期来提高系统的数据吞吐率。 但是流水线技术比较适合开环结构的电路,要用在累加器这样的闭环反馈的电路中必须谨慎考虑,以保证设计的准确无误。 综合考虑 后,相位累加器采用流水线技术来实现,这样能保证较高的资源利用率,又能提高系统的性能和速度。 设计中整个系统只加入了一级流水线来提高速度。 为了进一步提高速度,在设计相位累加器模块和加法器模块时并没有采用 FPGA 单元库中 16~32 位加法器,尽管它们可以很容易地实现高达 32 位的相位累加器,但当工作频率较高时,它们较大的延时不能满足速度要求,故不可取。 因此,具体实现时分别采用了 4 个和 8个 4 位累加器,以流水线的方式实现 16 位累加器和 32 位加法器。 采用流水线技术可以大大提高系统的工作速度。 [7] 相位累加器分为加法器和寄 存器两个部分: 1) 相位累加器是由相位加法器和相位寄存器组成,相位累计器完成对输入 DDS 的频率控制字的累加。 如下图 41 所示为一个十位加法器的符号。 16 图 41 十位累加器 图 42 十位累计器仿真图 十位累加器仿真结果如图 42 所示。 由图结果分析可知,此模块符合要求。 2) 10 相位寄存器如图 43 所示 图 43 十位寄存器 键盘部分 1)按键状态机消抖 按键经消抖程序处理后,输出一个 低电平跳变检测按键是否按下时即检测是否有下降沿信号。 由于按键操作存在机械抖动,因此,要对按键进行消抖处理。 消抖其实是一个延迟过程,一般把系统频率分频成合适的频率就可以实现消抖。 图形符号如图 44 所示。 图 44 按键消抖 17 图 45 消抖仿真图 由图 45 明显可以看到按键消抖是符合实际的。 在时钟到来,按键按下时,明显有一个延时过程。 2)按键编码部分 该部分主要用于区分不同功能的按键,扫描从键盘得到信息, 根据设计要求,需要 3个按钮的键盘,判断键盘中有无按键按下是通过行线送入扫描信 号,然后从列线读取状态得到的。 其方法是依次给行线送低电平,检查列线的输入。 如果列线信号全为高电平,则代表低电平信号所在的行中无按键按下;如果列线有输入为低电平,则低电平信号所在的行和出现低电平的列的交点处有按键按下。 按键编码原理符号如图 46 所示。 图 46 按键 编。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。