收藏 分享(赏)

基于FPGA的DDS信号发生器设计.doc

上传人:HR专家 文档编号:4849441 上传时间:2019-01-16 格式:DOC 页数:14 大小:363.11KB
下载 相关 举报
基于FPGA的DDS信号发生器设计.doc_第1页
第1页 / 共14页
基于FPGA的DDS信号发生器设计.doc_第2页
第2页 / 共14页
基于FPGA的DDS信号发生器设计.doc_第3页
第3页 / 共14页
基于FPGA的DDS信号发生器设计.doc_第4页
第4页 / 共14页
基于FPGA的DDS信号发生器设计.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、IFPGA 高级应用 期末考试题 目 基于 FPGA的 DDS信号发生器设计 学 名 熊 金 齐 专业班级 电信工程 13-01 学 号 541301031041 院 (系) 电子信息工程学院 II目 录1.方案选择与方案论证 12.系统功能与原理 .32.1 DDS的基本原理 32.2 参数确定 43.硬件电路设计.53.1 分频器 .53.2 总体原理图 53.3 DDS的 FPGA实现 .63.4 D/A转换电路 64. 软件设计 64.1 Verilog程序设计 .64.2总程序流程设计图 .74.3子程序流程图 75.结果分析 .75.1 波形仿真 75.2.输出波形 86.设计小结

2、 .9附 录 10III摘 要波形发生器己成为现代测试领域应用最为广泛的通用仪器之一,代表了波形发生器的发展方向。随着科技的发展,对波形发生器各方面的要求越来越高。近年来,直接数字频率合成器(DDS)由于其具有频率分辨率高、频率变换速度快、相位可连续变化等特点,在数字通信系统中已被广泛采用而成为现代频率合成技术中的佼佼者。本次设计的是多功能信号发生器,它能够产生方波,三角波,锯齿波和正弦波四种基本波形。结合 DDS技术,通过对 FPGA的编程实现产生多种波,本电路是通过键盘扫描判断,进入相应的功能程序,然后实现频率调节,波形转换,幅度控制的。本次设计中我负责的是波形输出模块,通过调节要输出方波

3、,三角波,锯齿波和正弦波四种基本波形。关键字:波形发生器,直接数字频率合成器, 现场可编程门阵列IV01.方案选择与方案论证数据输入:方案一:4x4 矩阵键盘优点:由 8 个 IO 口检测 16 个按键,可以大大节省 IO 口资源。缺点:控制时序较复杂,增加编程和调试的难度。方案二:独立按键优点:控制时序较简单,较易于编程与调试。缺点:比较浪费 IO 口资源。方案三:拨码开关优点:控制时序简单,易于编程和调试。缺点:比较浪费 IO 口资源。通过比较各种因素,我选择方案一,波形输出:方案一:存储波形数据的 ROM/RAM + DAC0832优点:1.可以显示复杂波形2.可以有效控制输出波形的频率

4、,幅度及相位3.节省 FPGA 内部的逻辑资源4.可以简单的切换波形5.使波形输出方式单一化,降低了编程难度缺点:要消耗一定的 ROM/RAM 资源方案二:存储波形数据的 ROM/RAM + 分频器输出矩形波 + DAC0832优点:1.可以显示复杂波形2.可以有效控制输出波形的频率,幅度及相位3.节省 FPGA 内部的逻辑资源4.可以较简单的切换波形缺点:矩形波的频率,幅度和相位的调节需要另设相位累加电路,消耗一定的逻辑资源方案三:case 语句 + 分频器输出矩形波 + DAC0832优点:在数据传输的反应速度上,在所需速度很快时占优势1缺点:1.大量浪费 FPGA 内部的逻辑资源2. 波

5、形数据较大时,会给代码的调试和维护带来不便。方案四:存储波形数据的 ROM/RAM + 分频器输出矩形波 + 计数器输出锯齿波和三角波 + DAC0832优点:1.可以显示复杂波形2.可以有效控制输出波形的频率,幅度及相位缺点:每种波形都需要另设相位累加电路来控制其频率,相位和幅度,消耗较多的逻辑资源方案五:case 语句 + 分频器输出矩形波 + 计数器输出锯齿波和三角波 + DAC0832。优点:在数据传输的反应速度上,在所需速度很快时占优势。缺点:1.大量浪费 FPGA 内部的逻辑资源。2.波形数据较大时,会给代码的调试和维护带来不便。为了减小设计周期,减小编程难度,便于后期的调试工作,

6、而且能方便的对幅度和频率进行调节,我选择方案一。综上几种方案,我们组采用了数据输入的方案一,4x4 矩阵键盘,由 8 个 IO 口检测 16 个按键,可以大大节省 IO 口资源。波形输出的方案二,存储波形数据的 ROM/RAM + 分频器输出矩形波 + DAC0832 可以显示复杂波形,有效控制输出波形的频率,幅度及相位,容易达到我们需要的效果,可以较简单的切换波形,而且节省了 FPGA 内部的逻辑资源。2.系统功能与原理2.1 DDS的基本原理DDS 技术是一种把一系列数字量形式的信号通过 DAC 转换成模拟量形式的信号的合成技术,它是将输出波形的一个完整的周期、幅度值都顺序地存放在波形存储

7、器中,通过控制相位增量产生频率、相位可控制的波形。DDS 电路一般包括基准时钟、相位增量寄存器、相位累加器、波形存储器、D/A 转换器和低通滤波器(LPF)等模块,如图 1.1 所示。相位增量寄存器寄存频率控制数据,相位累加器完成相位累加的功能,波2形存储器存储波形数据的单周期幅值数据,D/A 转换器将数字量形式的波形幅值数据转化为所要求合成频率的模拟量形式信号,低通滤波器滤除谐波分量。整个系统在统一的时钟下工作,从而保证所合成信号的精确。每来一个时钟脉冲,相位增量寄存器频率控制数据与累加寄存器的累加相位数据相加,把相加后的结果送至累加寄存器的数据输出端。这样,相位累加器在参考时钟的作用下,进

8、行线性相位累加,当相位累加器累加满量时就会产生一次溢出,完成一个周期性的动作,这个周期就是 DDS 合成信号的一个频率周期, 累加器的溢出频率就是 DDS 输出的信号频率。相位累加器输出的数据的高位地址作为波形存储器的地址,从而进行相位到幅值的转换,即可在给定的时间上确定输出的波形幅值。相位增量寄存器 相位累加器 地址寄存器 D / A 转换顺波形存储器时钟滤波器波形输出控制数据图 1 DDS原理图 波形存储器产生的所需波形的幅值的数字数据通过 D/A转换器转换成模拟信号,经过低通滤波器滤除不需要的分量以便输出频谱纯净的所需信号。信号发生器的输出频率 fo可表示为: NsfMf20( 1.1)

9、 式中 sf为系统时钟, f为系统分辨率,N 为相位累加器位数, M为相位累加器的增量。2.2 参数确定首先确定系统的分辨率 f,最高频率 maxf,及最高频率 maxf下的最少采样点数 minN根据需要产生的最高频率 以及该频率下的最少采样点数 minN,由公式 minax.Nfs(1.2)3确定系统时钟 sf的下限值。同时又要满足分辨率计算公式 fNs2(1.3)综合考虑决定 sf的值。选定了 sf的值后,则由公式(1.3)可 得 N2 fs,据此可确定相位累加器位数 N。然后由最高输出频率 Mfo(1.4)推出 M S2,得出相位增量寄存器为 S位。确定波形存储器的地址位数 W,本系统中

10、决定寄存 Z个数据值,因此 RAM地址为 Z位。一般选用 FPGA/CPLD器件作为 DDS的实现器件,对于 D/A转换器的选择,首先要考虑到 D/A转换器的转换速率。要实现所需的频率,D/A 的转换速度要大于 minax.Nf,然后根据 D/A转换器字长所带来的误差,决定 D/A的位数。由此选择 D/A转换器的型号。3.硬件电路设计3.1 分频器信号发生器产生、控制和显示的总体结构图如图所示图 2 总体结构图外部输入一个 50MHZ 的时钟频率,经过频率控制单元控制其频率在要求的范围内,由 4 选 1 数据选择器实现对输出波形的选择,再通过 D/A 转换模块,将数字信号转换成模拟信号在示波器

11、上显示出来。3.2 总体原理图基于 VHDL 语言设计一个简易多功能信号发生器,通过选入输入信号,可以输出正弦波、三角波、方波和锯齿波四种波形信号。信号发生器的控制模块可以用数据选择器实现,四种信号的信号选择可以用 4 选 1 数据选择器实现。同时本设计使用原理图的方法,对正弦波、三角波、方波和锯齿波和 4 选 1 数频率控制单元 四种波形 D/A 示波器时钟频率选择单元4VCCsel INPUTVCCclk INPUTVCChigh INPUTVCClow INPUTVCCb10 INPUTVCCa10 INPUTwan30OUTPUT qian30OUTPUTbai30OUTPUT shi

12、30OUTPUTge30OUTPUTc70OUTPUTclkb10hladdr50anjianinstaddress50 s120wan30qian30bai30shi30ge30shuinst1shu120clk clk2fenpininst2clksel dout070zxinst3clksel dout170jcinst4clksel dout370sjinst5clksel dout270fbinst6a10dout070dout170dout270dout370b70xuanzeinst7据选择器元件进行调用。简易多功能信号发生器的原理图如下:图 3 总体原理图3.3 DDS的 FP

13、GA实现相位累加器与相位寄存器的设计相位累加器与相位寄存器主要完成累加,实现输出波形频率可调功能。利用 Quartus II 可编程逻辑器件系统开发工具进行设计。首先,打开 Quartus II 软件,新建一个工程管理文件,然后在此工程管理文件中新建一个 Verilog HDL源程序文件,并用硬件描述语言 Verilog HDL 编写程序实现其功能。在设计过程中,可在一个模块中描述。3.4 D/A转换电路5图 4 D/A转换电路数据转换器输出的数据是数字形式的电压值,为实现数字电压值与模拟电压值之间的转换,系统还专门设计 D/A 转换电路,其 D/A 转换电路原理图如图3 所示。4. 软件设计

14、 4.1 Verilog程序设计系统软件的主要任务是:将送入的频率,相位差控制字,控制输出波形种类进处理得到三种不同的波形,频率和相位差。首先是对 DDS子程序进行设计,利用类属语句对输入频率字,相位字,累加器,正弦 ROM表的地址位宽和数据进行说明,软件的主要任务是在累加器中按输入的频率字进行循环累加,将截断的数据与输入的相位字进行累加。4.2总程序流程设计图图 5 总程序流程图4.3子程序流程图开始判断按键波形选择频率输入结束图 6 子程序流程图65.结果分析:5.1 波形仿真图 7 正弦波仿真图图 8 方波仿真图图 9 三角波仿真图5.2.输出波形:7正弦波 三角波矩形波6.设计小结:本

15、次设计以直接数字频率合成技术(DDS)为基础的波形信号发生器工作原理和设计过程,并在 FPGA 实验平台上设计实现了满足各功能指标的信号发生器。系统硬件除需外加滤波整形电路外,其余部分均可在 FPGA 开发实验系统KH310 上集成开发,系统软件可在 Quartus 下编写代码,实现数据信息处理和控制操作等功能。整体开发环境成熟,应用工具齐全,随着 FPGA 性价比的不断提高,基于 FPGA 平台开发信号发生器将逐步走向标准化、规模化和产品化。在这次课程设计中,我的工作主要是相位累加器的底层模块的代码编写和调试和 ROM 定制,负责波形输出模块,能够完成顺利的完成对波形类型的输出,如:三角波、

16、方波、正弦波。虽然在设计过程中遇到很多困难 ,不过在老师和同学的帮助得到了解决,通过这次设计也使我的动手能力得到加强,学会发现问题并通过查阅资料,与同学讨论请教老师,来解决问题。总之,我在这次设计实践中受益匪浅,积累了经验。8附 录波形输出module ROM_READ(CLK50M,F,MOD,V,ROM_DATA);input CLK50M; /clock source 50Mhz - 20nsinput 15:0F; /11,000,000Hzinput 1:0MOD; /tri,sin,01input 7:0V; /voltage 050output reg 7:0ROM_DATA;w

17、ire DIV_CLK;wire 15:0DIVP;wire 0:7tri_data;wire 0:7sin_data;wire 0:7toc_data;wire 0:7mtx_data;reg 6:0address;assign DIVP = 50000000 / (256*F);DivClk rom_clk(CLK50M,DIVP,DIV_CLK);TAG tri_rom(address,CLK50M,tri_data);SIN sin_rom(address,CLK50M,sin_data);TOC toc_rom(address,CLK50M,toc_data);MTX mtx_rom

18、(address,CLK50M,mtx_data);always(posedge DIV_CLK)beginif(address = 7b1111110)address = address + 1;elseaddress = 7h00;endalways(posedge DIV_CLK)begin/根据 选 取方案不同, 删 除 对应语 句case(MOD)2b00:ROM_DATA = (tri_data * V)/50;/三角波2b01:ROM_DATA = (sin_data * V)/50;/正弦波2b10:ROM_DATA = (toc_data * V)/50;/锯齿 波2b11:ROM_DATA = (mtx_data * V)/50;/矩形波endcase9endendmodule

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 毕业论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报