首页 基于fpga的dds设计论文

基于fpga的dds设计论文

举报
开通vip

基于fpga的dds设计论文基于fpga的dds设计论文 基于FPGA的DDS的设计 基于FPGA的DDS的设计 电子信息科学与技术专业 刘童 指导教师 孙红艳 摘要:在电子技术飞速发展的今天,人们对于信号源的要求也逐渐提高。传统的信号源采用独立元件或 简单数字电路设计,导致了经济代价大,设计周期长,产品的升级换代困难等诸多不足,显然已经不适 合现代电子技术的要求。因此,要利用全新的思路设计符合要求的信号源。采用DDS技术已成为当前 设计信号源的主流方法,DDS是指直接数字式频率合成器,它是利用相位的概念直接合成用户所需波 形,主要...

基于fpga的dds设计论文
基于fpga的dds设计论文 基于FPGA的DDS的设计 基于FPGA的DDS的设计 电子信息科学与技术专业 刘童 指导教师 孙红艳 摘要:在电子技术飞速发展的今天,人们对于信号源的要求也逐渐提高。传统的信号源采用独立元件或 简单数字电路设计,导致了经济代价大,设计周期长,产品的升级换代困难等诸多不足,显然已经不适 合现代电子技术的要求。因此,要利用全新的思路设计符合要求的信号源。采用DDS技术已成为当前 设计信号源的主流方法,DDS是指直接数字式频率合成器,它是利用相位的概念直接合成用户所需波 形,主要包括相位累加器,波形存储器,数模转换器和低通滤波器组成,通过FPGA利用硬件描述语 言VHDL来进行此设计。与传统的信号源相比,利用DDS原理设计的信号源具有频率分辨率高,频率 转换速度快,切换相位连续等优点,使用FPGA来进行设计,大大缩短了设计周期,降低了研发和制 作成本,同时设计可以根据用户不同需求进行改进和升级。 关键字:信号源;DDS;FPGA DDS Based on the design of the FPGA Student majoring in Electronic information science and technology Liu tong Tutor Sun hong yan Abstract:In the electronic technology rapid development today, people for the signal source requirement also gradually improve. The traditional signal source adopt independent components or simple digital circuit design, leading to the economic cost, the design cycle is long, the upgrade of products such as difficulty some shortcomings, have apparently not suitable for the modern electronic technology requirements. Therefore, to take advantage of the new idea design to meet the requirements of source. The technology has become the DDS design method of the mainstream of the signal source, is referred to as a direct DDS digital frequency synthesizer, it is to use the concept of phase the direct synthesis of customer need waveforms, mainly including phase accumulators, waveform memory, digital-to-analog converters and low pass filter composition, through the FPGA use hardware description language to this design VHDL. Compared with the traditional signal source, using the principle of the signal source has design DDS frequency resolution is high, the frequency conversion speed, switch phase continuous etc, and use to design the FPGA, greatly reducing the design period, lower the cost of making the research and development, and, at the same time, according to the different needs of the users design can improve and upgrades. Key words:signal source,signal source,DDS,FPGA 1 菏泽学院本科生毕业设计(论文) 1 绪论 1.1 设计背景 我国的电子行业伴随着经济的飞速增长进入了本行业发展的春天,随着物质生活的不断丰富,人们对于电子产品的要求不仅体现在需求量上,而且还 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 现在对产品的功能上。正因为如此,我国的电子市场正在迅速扩大,有着十分广阔的市场前景。 数字电子技术的飞速发展,有力地推动和促进了信息化的提高,它的应用已经渗透到我们生活的各个方面。不管是从计算机到手机,还是数字电话到数字电视,甚至军用设备、工业自动化及航天技术,都是采用了数字电子技术,它的核心是EDA(电子设计自动化,Electronic Design Automation)技术。就是以计算机工作平台,以EDA软件工具为开发环境,以硬件描述语言为设计语言,以可编程器件为实验载体,以电子系统设计为应用方向的电子产品自动化设计过程。它是以计算机科学和微电子技术发展为先导的,汇集了计算机图形学、拓扑逻辑学、微电子工艺与结构学和计算数学等多种计算机应用学科的最新成果的先进技术,是在先进计算机工作平台上开发出来的一整套电子系统设计的软件工具。 FPGA(现场可编程器件,Field Programmable Gate Array)便是EDA技术的一个分支,是20世纪80年代中期出现的高密度可编程器件,短短几十年来,取得了惊人的发展,其单片集成密度从最初的1200门发展到目前的几百万门,而且时钟频率由最初的不到10MHz发展到目前的300MHz,FPGA的结构类似于掩膜可编程门阵列(MPGA),有许多独立的可编程模块组成,用户可以通过编程将这些模块连接起来实现不同的设计。高密度可编程器件可以通过硬件描述语言进行设计,使得硬件的修改像软件一样方便,这一特性使得产品的研发时间大大缩短,便于产品的升级换代。高密度可编程可以设计成任何数字器件,无论是简单的门电路,还是高性能的处理器,它的发明对于数字电子电子技术来说具有里程碑式的意义。 通信是FPGA的传统领域。随着未细化的进步,芯片的面积越来越小、价格越来越低,市场发展正在逐步加快,同时由于FPGA灵活方便,不仅性能、速度、连接具有优势,而且可以缩短上市时间,因此应用领域在不断扩展。现在,许多用户都开始在一些批量生产的消费类电子产品上采用FPGA,如DVD、TV、游戏设备、空调、PDA、数字视频移动网络、无线局域网等。 1.2 设计的意义 在电子产品的研发,检测和维修等环节,都会用到信号源,而随着电子产品的品质不断提高,传统的信号源已经不能满足现代电子技术在其频率分辨率、转换速度等方面的要求;而有时我们需要通过计算机来控制信号源,从而完成一些复杂的操作。随着数字信号处理和集成电路技术的发展,DDS(直接数字频率合成器)得到越来越广泛的应用,DDS有如下优点:频率分辨率高,输出频点多,可达2的n次方个频点(n为相位累加器位数); 2 基于FPGA的DDS的设计 频率切换速度快,可达us量级;频率切换时相位连续;可以输出宽带正交信号;输出相位噪声低,对参考频率源的相位噪声有改善作用;可以产生任意波形;全数字化实现,便于集成,体积小,重量轻。 现代电子行业正在朝着功能更强,功耗更低,体积更小,速度更快,精度更高的方向发展,这些要求推动着集成电路不断发展。现场可编程器件(FPGA)具有集成度高,逻辑实现能力强、设计灵活性好等优点,可以快速完成复杂的数字系统的设计,符合现代电子行业的发展趋势,因此FPGA具有更强大的功能和市场前景,受到电子设计工程师们的普遍欢迎。 传统的信号源采用独立元件设计,导致体积庞大,不易携带,且功耗很高,这些缺点大大限制了它们的使用范围和效能,此设计利用FPGA为载体,不仅克服了上述不足,减小了体积,降低了功耗,而且设计的信号源性能更加优良,性能的提高不仅在研发过程中可以提高产品的质量,而且在检修过程中可以大幅度提高工作效率,发现一些不易发现的故障。而设计还可以根据需要进行升级和功能的扩展,表现出了极强的市场生命力。 1.3 设计实现的目标 本设计利用FPGA和外围电路来进行对DDS信号源的设计,并且利用EDA开发软件Quartus?来进行设计和功能仿真,设计的性能要求: (1)能够输出典型的正弦波。 (2)通过键盘控制频率的大小,并且利用数码管显示出来。 (3)输出的峰峰值?5V. 2设计 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 2.1 DDS设计 2.1.1 DDS设计原理 频率合成技术是将一个(或多个)基准频率变换成另一个(或多个)合乎质量要求的所需频率的技术。 一个的简单的原始单频信号可表示为: utUft()sin(2),,,, (2-1) 00 在它的初始相位θ和幅度U不变的情况下,它的频谱为一条谱线,频率为f。在这里,为00了简化表示,令U=1,θ=0,这是不会影响系统研究的,简化后的信号可以表示为: 0 utftt()sin(2)sin(),,,, (2-2) 0 如果对(2-2)式中表示的信号进行采样,令采样周期为T(即采样频率为f),则可得到cc离散的波形序列: unfnT()sin(2),(0,1,2,3)n,, (2-3) 0c 相应的离散相位序列为: ,,,nfnTn 2,,,,n,0,1,2,3 (2-4) ,,,,0c 3 菏泽学院本科生毕业设计(论文) 式中: 2,,,,,fnTn,,,0c (2-5) 是连续两次采样之间的相位增量。根据采样定理: fc f,02 (2-6) 分析上述关系式得:只要(2-3)式中的离散序列确定,便可唯一的恢复出(2-2)式中的模拟信号。从(2-2)可知,是相位函数的斜率决定了信号的频率;从(2-5)可知,决定相位函数斜率的是两次采样之间的相位增量Δθ。因此,只要控制这个相位增量,就可以 ,控制合成信号的频率。现将整个周期的相位2分成M份,每一份为δ=2π/M,若每次的相位增量选择为δ的K倍,即可得到信号的频率: fK,c,,fK02TM,c (2-7) 相应的模拟信号为: 2Kft,,,c,ut sin,,,,M,, (2-8) 式中K和M都是正整数,根据采样定理的要求,K的最大值应小于M的1/2。 综上所述,在采样频率一定的情况下,可以通过控制两次采样之间的相位增量(不得大于π)来控制所得离散序列的频率,经保持、滤波之后可唯一的恢复出此频率的模拟信号。DDS设计原理图如图2-1所示: 参考频率源 fclk foutA相位累加器MDLPF D/A转换器波形存储器(低通滤波器)(Nbit) 图2-1 DDS设计原理图 主要构成: 内部:相位累加器,波形存储器 外围:D/A转换器,LPF(低通滤波器) 图中M为频率控制字,N为相位累加器的位数,D为相位累加器的输出位数,A为波形存储部分输出的幅度码的位数,参考频率源的频率为fclk,输出频率为fout.。 2.1.2 DDS工作过程 在每一个参考频率fclk作用下,加法器就将频率控制字M与累加寄存器输出的累加相位数据相加,相加的结果又反馈到累加寄存器的数据输入端,以使加法器在下一个时钟脉冲的作用下继续与频率字相加。这样相位累加器在时钟作用下,不断对频率控制字进行线性相位累加。由此可以看出,在每一个时钟脉冲输入时,相位累加器便把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位,相位累加器的溢出频率就是DDS输出的信号频率。用相位累加器输出的数据作为波形存储器(ROM)的相位采样地址,这样就可以把存储在波形存储器内的波形采样值(二进制编码)经查表找出,完成相位到幅值的转换。波形存储器的输出送到D/A转换器,由D/A转化器将数字信号转换成模拟的阶梯电压信号,阶梯电压信号经过低通滤波器平滑后,可以得到所需的正弦波信号。DDS信号 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 示意图如图2-2所示: 4 基于FPGA的DDS的设计 相位 ROMD/ALPF累加器 图2-2 DDS信号流程示意图 由于相位累加器为N位,相当于把正弦信号在相位上的精度定为N位(N的取值范围 N一般为24~32),所以其分辨率为1/ 2。若系统的时钟频率为fclk,频率控制字M为1,则 N输出频率为:fout=fclk/2,这个频率相当于“基频”。若M为B则输出频率为: fclk,,foutB,,,,N2,, (2-9) 当系统输入时钟fclk不变时,输出信号频率由M所决定。由上式可得: ,,foutBN,,2,,fclk,, (2-10) 其中B为频率控制字,注意B要取整。 2.2 FPGA设计DDS的原理 根据DDS的实现原理,使用FPGA设计DDS更为实用,足够大的逻辑单元,保证了可以实现很小的步进频率,提高产品的精度,且辅助有高速的D/A转换器可以做到很高的频率。FPGA设计DDS原理框图如图2-3所示: N定模累加器(模值=2)波形ROM表 累加步进值DDS主输入(M)时钟fclk 图2-3 DDS原理框图 在主输入时钟fclk和步进累加器步进值M的共同作用下,累加器输出波形数据表地址,在ROM中查得相应波形当前幅度值,从而确定输出波形。 2.3 FPGA器件的选择与简介 FPGA是现场可编程门阵列(Field Programmable Gate Array)的英语缩写,它是在阵列的各个节点放上由门 、触发器等做成的逻辑单元,并在各个单元之间预先制作了许多连线。在FPGA中常用的编程工艺有反熔丝和SRAM两类。综合考虑设计、仿真和调试的全过程,在此主要考虑选用Altera公司的Cyclone系列的FPGA芯片。 Cyclone是Altera公司2003年推出的产品系列,它集合了可编程器件的灵活性,采用0.13um工艺,1.5v内核供电,与Stratix结构类似,是一种低成本FPGA系列 ,是目前主流产品,其配置芯片也改用全新的产品。系统时钟可以达到275MHZ,兼容66MHZ~64 bit PIC~采用独特的嵌入式阵列和逻辑阵列的逻辑实现结构,同一系列相同封装的芯片在管脚上满足兼容。 同时,可为用户提供92Kbit的片内RAM,其双口RAM为独立的读写操作提供了独立的读、写端口,且每个I/O口都有寄存器;PLL时钟管理和时钟增强电路提高了系统的 5 菏泽学院本科生毕业设计(论文) 性能,并且可以提供时钟倍频;专用进位链路,可实现快速加法器和计数器功能;专用级联链路,支持系统集成;支持多时钟系统的低时滞要求;具有JTAG边界扫描测试内速电路。本设计中采用Altera公司的Cyclone系列芯片EP1C6Q240~作为实现DDS的FPGA芯片。EP1C6Q240的主要 参数 转速和进给参数表a氧化沟运行参数高温蒸汽处理医疗废物pid参数自整定算法口腔医院集中消毒供应 如表2-4所示: 逻辑单元(LE) 4K bit+奇偶校验 I/O门数 RAM总量 /bit PLL 配置二进制文件大小(bit) 可选串行主动配置器件 5980 20 185 92160 2 1167216 EPCS1/EPCS4/EPCS16 表2-4 EP1C6Q240的主要参数 其3.3V外部电源和TTL、CMOS电平兼,丰富的寄存器资源和I/O口,48MHZ的工作频率满足基准时钟10MHZ的要求,其优良的特性完全可以实现DDS芯片的功能。电路原理图见附录5。 2.4 开发环境简介 本设计利用Altera公司提供的开发FPGA的集成环境Quartus?,简单易学易用,其可视化、集成化设计环境等优点为大家公认,从设计输入、仿真、编译、综合、布局布线和下载都可以使用这个集成环境来完成。它提供了一种与结构无关的设计环境,我们只需要使用自己熟悉的开发工具,通过软件提供的各种输入方式进行编译、仿真和综合,便可设计出需要的可编程器件。Quartus?能够直接满足特定的设计需要,为可编程器件提供全面的设计环境,它含有FPGA设计所有阶段的解决方案,其设计流程图如2-5所示 设计入口 综合 设计入口 布局布线 工程改变管理 时序分析设计入口 仿真 编程和重构 图2-5 FPGA设计流程图 此外~Quartus?软件为设计流程的每个阶段提供Quartus?图形用户界面、EDA工具界面和命令行界面。可以在整个流程中只是用这些界面中的一个,也可以在设计流程的不同阶段使用不同的界面。 2.5 设计语言选择与简介 硬件描述语言,HDL,是一种用形式化方法描述数字电路和系统语言。利用这种语言,数字电路系统的设计可以从上层到下层(从抽象到具体)逐层描述自己的设计思想,用一系列分层的模块来表示极其复杂的数字系统。然后,利用电子设计自动化,EDA,工具,逐层进行仿真验证,再把其中需要变为实际电路的模块组合,经过自动综合工具转换到门级电路网表。接下来,利用现场可编程门阵列FPGA自动布局布线工具,把网表转换成要 6 基于FPGA的DDS的设计 实现的具体电路布线结构。 目前,这种高层次,High-Level-Design,的方法已被广泛采用。据统计,目前在美国的硅谷约有90%以上的FPGA采用硬件描述语言进行设计。硬件描述语言HDL的发展至今已有20多年的历史了,并成功应用于EDA设计的各个阶段:建模、仿真、验证和综合等。到20世纪80年代,已经出现了上百种硬件描述语言,对设计自动化曾起到极大的促进和推动作用。但是,这些语言一般各自面向特点的设计领域和层次,而且众多的语言使用户无从适应。因此,急需一种面上设计的多领域、多层次并得到普遍认同的标准硬件描述语言。20世纪80年代后期,VHDL和Verilog HDL语言适应这种趋势的要求,先后成为IEEE标准。 本设计采用VHDL作为硬件描述语言,因为VHDL能够形象化地表示出电路的结构与行为,支持从系统到逻辑门级所有层次的设计,适合复杂电路和系统设计,除此之外它还是与显示技术相独立的语言,既不束缚于某一特定模拟程序或数字装置,也不把设计方法强加于设计者。其最大的特点是描述能力强,可覆盖逻辑设计的诸多领域和层次,并支持众多硬件模型。因此我们选用VHDL作为DDS设计的硬件描述语言。VHDL程序设计的基本结构如图2-6所示 VHDL整体程序 库、程序包使用模型实体结构体配置 图2-6 VHDL程序基本结构图 3综合设计 GENERIC类属说明PORT端口说明结构体说明结构体功能描述3.1 FPGA设计部分 此设计中,FPGA需要完成DDS模块、DDS顶层设计模块、DDS波形存储器模块和DDS接口测试模块的设计。 3.1.1 DDS顶层模块的设计 此模块是整个设计总模块,在此模块中不仅有调用其他模块的声明,而且还有整个设计中所有管脚的定义,它是整个程序的主函数,其他所有的功能模块都是在它的控制下进行工作的,这是整个设计的核心。DDS顶层模块生成的原理图如下: 图3-1 DDS顶层模块原理图 7 菏泽学院本科生毕业设计(论文) 此模块程序代码见附录1 3.1.2 DDS功能模块设计 在此模块中主要设计了频率相位累加器和相位调制器,相位累加器是此设计的关键功能模块,它的性能直接决定了此设计的系统性能,相位累加主要是利用频率控制字和相位控制字来累加出寻址地址,freq_count<=freq_count + fword_r;其中fword_r位频率控制字;freq_count为寻址地址。得出的地址再从DDS波形存储器中,找到相应的波形值,然后输出,从而控制输出波形的频率。相位调制器的输入端为相位累加器的相位输出,在这里设定一个相位偏移量,是为了实现对输出信号的相位调节,如果不使用此功能,可以将此处设定为固定的数值,或者直接去掉。DDS模块生成的原理图如下: 图3-2 DDS模块生成的原理图 此模块程序代码见附录2 频率相位累加器和相位调制器的进程代码如下: PROCESS(clock) --频率相位累加器 BEGIN IF RISING_EDGE(clock) THEN freq_count<=freq_count + fword_r; END IF; END PROCESS; PROCESS(clock) --相位调制器 BEGIN IF RISING_EDGE(clock) THEN rom_addr<=freq_count(31 DOWNTO 20) + pword_r; END IF; END PROCESS; 8 基于FPGA的DDS设计 3.1.3 DDS波形存储器模块的设计 DDS波形存储器(又称正弦ROM查找表),其功能是把存储在相位累加器中的抽样值转换成正弦波幅度的数字量函数,通俗的讲,是把相位转化成幅度。本设计中~DDS的输出为10位,相比于传统的的8位输出精度提高了4倍,大大调高了产品的性能。它的输入端为相位累加器的输出端,输出端将正弦幅度信号送往DA转换器,转化为模拟信号。DDS波形存储器模块生成的原理图如下: 图3-3 DDS波形存储器模块原理图 3.1.4 DDS接口测试模块的设计 在此模块中,主要有时钟分频部分、按键检测检测部分和数码管显示部分。接口测试模块生成的电路原理图如下: 图3-4 DDS接口测试模块原理图 此模块程序代码见附录3 3.1.4.1 时钟分频器的设计 本设计中,系统的时钟频率为48MHz,此设计中要用到120KHz的频率,本模块的功能将clock端口输入的时钟信号分频后送给div_clk端口,利用加法器,并且对时钟频率计数器count中的数值与我们之前设定的数值进行比较,当count小于我们设定的数值时,进行加1操作,且将输出端div_clk置零,若不小于我们之前设定的数值,则将时钟频率计数器清零,且将输出端div_clk置一,由此得到我们所需要的频率,分频器的进程代码如下: PROCESS(clock) --时钟分频部分 9 菏泽学院本科生毕业设计(论文) BEGIN IF RISING_EDGE(clock) THEN IF count 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 文件、编程文件和用于时间仿真的输出文件。 4.1 系统的编译 FPGA设计完成后进行编译,编译结果为图4-1所示: 图4-1编译结果 可以看出,此设计仅仅使用了1%的逻辑单元资源、318%的器件引脚,没有用到锁相环。 4.2 系统的仿真 利用Quartus?软件对设计直接进行仿真验证,首先先建立一个仿真文件Vector Waveform File~然后将设计的端口导入仿真窗口,设定输入波形,进行功能仿真和时序仿真。通过Quartus?软件进行仿真设定后得到分频,累加器和正弦波的仿真如图: 图4-2分频仿真 图4-3累加器仿真 14 基于FPGA的DDS设计 图4-4正弦波的仿真 由上图可以分析出此系统符合设计的逻辑关系,完成了设计任务。 4.3 管脚分配 将设计中定义的管脚分配到FPGA硬件资源上,分配如下 信号 引脚 信号 引脚 信号 引脚 Seg[0] 169 Dig[5] 216 da_data[2] 41 Seg[1] 170 Dig[6] 213 da_data[3] 23 Seg[2] 167 Dig[7] 214 da_data[4] 20 Seg[3] 168 Key[0] 121 da_data[5] 18 Seg[4] 165 Key[1] 122 da_data[6] 16 Seg[5] 166 Key[2] 123 da_data[7] 14 Seg[6] 163 Key[3] 124 da_data[8] 13 Seg[7] 164 Key[4] 143 da_data[9] 46 Dig[0] 160 Key[5] 141 da_clk 38 Dig[1] 159 Key[6] 158 da_mode 8 Dig[2] 162 Key[7] 156 clock 28 Dig[3] 161 da_data[0] 45 Dig[4] 215 da_data[1] 43 按照上表分配好管脚后,再进行一次编译,编译完成后,下载到FPGA芯片上。 5 总结与展望 本设计是以FPGA芯片为开发载体,以硬件描述语言VHDL为设计语言,以EDA软件工具Quartus?为开发环境,运用DDS频率合成新思路来进行设计的。主要完成了一下工作: 1. 阐述了DDS的基本概念和原理,详细介绍了DDS设计方法。 2. 介绍了利用FPGA芯片运用DDS原理进行信号源的设计思路和方法。 3. 简要介绍了开发环境和设计语言。 4. 利用设计语言VHDL完成了DDS功能和外部测试功能的设计,包括DDS顶层模块、 DDS功能模块、DDS波形存储器和DDS接口测试电路的设计。 5. 完成了外部相关电路的设计,包括时钟电路、电源电路、D/A转换电路、低通滤波 器等的相关设计。 15 菏泽学院本科生毕业设计(论文) 6. 对FPGA设计进行编译、调试、仿真和测试,找出设计的不足,加以改进。 在电子技术日新月异的发展的今天,利用EDA手段进行设计已成为不可阻挡的趋势。自上而下的设计相对于传统至底向上的设计方式具有其显著的优越性。利用EDA设计软件辅助设计和仿真,方便快捷,减少了错误率的产生,缩短了产品的设计及上市周期,既减轻了设计工作量又满足了商业利益的需求,市场前景十分广阔。 参考文献 [1]周立功.EDA实验与实践[M].北京航空航天大学出版社,2007,9:195 [2]李洪伟,袁斯华.基于Quartus?的FPGA/CPLD设计[J].电子工业出版社,2006,4(1):18-20. [3]雷伏容,李俊,尹霞.EDA技术与VHDL程序开发基础教程[M].清华大学出版社,2010,5:46. [4]刘福奇.FPGA嵌入式项目开发实战[M].电子工业出版社2009,4:283 [5]姜萍,王建新,吉训生.FPGA实现的直接数字频率合成器[J].电子工业出版社,2002,2 [6]邵正途,高玉良.DDS/FPGA在信号产生系统中的应用[J].电子技术,2005,(1): 82 [7]傅玉朋,李明浩,吕进华.DDS技术的FPGA设计与实现.大连民族学院学报, 2004,6(3):46-47 [8]余孟尝.数字电子技术基础简明教程.高等教育出版社,2009,7:424-447 [9]周峻峰,陈涛.基于FPGA的直接数字频率合成器的设计与实现[J]. 2003,(1):4-6 [10]全国大学生电子设计竞赛组委会编.第五届全国大学生电子设计竞赛获奖作品选编(2001)[J].北京理工大学出版社,2003:1,40 [11]文卓然.数字式移相信号发生器中的一个误区.电子世界,2004,(5): 42-43 [12]贾方亮,赵泳,郝立果,张锡鹃.高精度数字式移相信号发生器的研制[J].天津职业技术师范学院学报,2004,14(2):23,25 [13周正干,李和平,李然.超低频移相信号发生器的设计[M]. 2000(1):9-11 致谢 在论文即将完成之际,首先要对孙红艳老师表示最真挚的感谢。在论文的写作期间,孙老师在百忙之中抽出时间指导我的论文写作,在很多关键的知识点上进行了讲解疏通,讲解了许多信号方面的专业知识,为我的论文的写作提供了强大的理论基础,同时给我论文写作的宏观框架提出了宝贵的意见,特别是由于我今年忙完其他事情后,论文写作的时间比较仓储,为了能够顺利完成论文的写作,孙老师特别为我安排了实验室,给我们提供写论文和做设计的环境。我在论文写作之初,对很多的东西还比较陌生,孙老师特别给我们推荐了参考书籍,为我的论文写作提供了知识基础,感谢她无私的帮助。由于本人学识有限,加之时间仓促,文中不免有错误和待改进之处,真诚欢迎各位师长、同学提供宝贵的意见。 16 基于FPGA的DDS设计 附录 附录1:DDS顶层模块程序代码 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_Arith.ALL; USE IEEE.STD_LOGIC_Unsigned.ALL; ENTITY dds_top IS PORT( 系统时钟 clock: IN STD_LOGIC;-- key: IN STD_LOGIC_VECTOR(7 DOWNTO 0);--按键输入 da_data:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--DA数据输出 DA时钟输出 da_clk: OUT STD_LOGIC;-- da_mode:OUT STD_LOGIC;--DA模式选择输出 seg: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--数码管段码输出。 dig: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--数码管位码输出。 ); END; ARCHITECTURE one OF dds_top IS COMPONENT pll--调用PLL模块声明. PORT ( inclk0 : IN STD_LOGIC := '0'; c0 : OUT STD_LOGIC ); END COMPONENT; COMPONENT dds--调用DDS模块声明. PORT( clock: IN STD_LOGIC; fword: IN STD_LOGIC_VECTOR(31 DOWNTO 0);--输入频率字 pword: IN STD_LOGIC_VECTOR(9 DOWNTO 0);--输入相位字 da_data:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--输出DA数据 da_clk: OUT STD_LOGIC;--输出DA时钟 da_mode:OUT STD_LOGIC--DA模式控制 ); END COMPONENT; COMPONENT dds_test PORT( clock: IN STD_LOGIC;--系统时钟48MHz key: IN STD_LOGIC_VECTOR(7 DOWNTO 0);--按键输入key1 ~key5 fword: OUT STD_LOGIC_VECTOR(31 DOWNTO 0);--要发送的数据。 seg: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--数码管段码输出。 17 菏泽学院本科生毕业设计(论文) dig: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--数码管位码输出。 ); END COMPONENT; SIGNAL fword: STD_LOGIC_VECTOR(31 DOWNTO 0); SIGNAL dds_clk: STD_LOGIC;--pll输出时钟. BEGIN U1: pll PORT MAP(inclk0=>clock,c0=>dds_clk);--调用PLL模块 U2: dds PORT MAP(clock=>dds_clk,fword=>fword,pword=>X"000",da_clk=>da_clk,da_data=>da_data,da_m ode=>da_mode);--调用DDS模块. U3: dds_test PORT MAP(clock=>clock,key=>key,fword=>fword,seg=>seg,dig=>dig);-- END; 附录2DDS模块程序代码 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_Arith.ALL; USE IEEE.STD_LOGIC_Unsigned.ALL; ENTITY dds IS PORT( clock: IN STD_LOGIC; fword: IN STD_LOGIC_VECTOR(31 DOWNTO 0);--输入频率字 pword: IN STD_LOGIC_VECTOR(11 DOWNTO 0);--输入相位字 da_data:OUT STD_LOGIC_VECTOR(9 DOWNTO 0);--输出DA数据 da_clk: OUT STD_LOGIC;--输出DA时钟 da_mode:OUT STD_LOGIC--DA模式控制 ); END; ARCHITECTURE one OF dds IS COMPONENT dds_rom --调用元器件说明。 PORT ( address : IN STD_LOGIC_VECTOR (11 DOWNTO 0); clock : IN STD_LOGIC ; q : OUT STD_LOGIC_VECTOR (9 DOWNTO 0) ); END COMPONENT; SIGNAL fword_r: STD_LOGIC_VECTOR(31 DOWNTO 0); SIGNAL pword_r: STD_LOGIC_VECTOR(11 DOWNTO 0); 18 基于FPGA的DDS设计 SIGNAL freq_count: STD_LOGIC_VECTOR(31 DOWNTO 0);--频率相位累加器 SIGNAL rom_addr:STD_LOGIC_VECTOR(11 DOWNTO 0);--正弦波数据表地址 BEGIN da_mode<='0'; --DA选择二进制数据模式. da_clk<=NOT clock; PROCESS(clock) --同步锁存频率字、相位字 BEGIN IF RISING_EDGE(clock) THEN fword_r<=fword; pword_r<=pword; END IF; END PROCESS; PROCESS(clock) --频率相位累加器 BEGIN IF RISING_EDGE(clock) THEN freq_count<=freq_count + fword_r; END IF; END PROCESS; PROCESS(clock) --相位调制器 BEGIN IF RISING_EDGE(clock) THEN rom_addr<=freq_count(31 DOWNTO 20) + pword_r; END IF; END PROCESS; U1: dds_rom PORT MAP(address=>rom_addr,clock=>clock,q=>da_data); END; 附录3DDS接口测试模块程序代码 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_Arith.ALL; USE IEEE.STD_LOGIC_Unsigned.ALL; ENTITY dds_test IS PORT( clock: IN STD_LOGIC;--系统时钟48MHz key: IN STD_LOGIC_VECTOR(7 DOWNTO 0);--按键输入key1 ~key8 fword: OUT STD_LOGIC_VECTOR(31 DOWNTO 0);--要发送的数据。 seg: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--数码管段码输出。 dig: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--数码管位码输出。 ); END; 19 菏泽学院本科生毕业设计(论文) ARCHITECTURE one OF dds_test IS SIGNAL fword_r: STD_LOGIC_VECTOR(31 DOWNTO 0); SIGNAL seg_r: STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL dig_r: STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL count: STD_LOGIC_VECTOR(16 DOWNTO 0);--时钟频计数器 SIGNAL dout1,dout2,dout3: STD_LOGIC_VECTOR(7 DOWNTO 0);--消抖寄存器 SIGNAL buff: STD_LOGIC_VECTOR(7 DOWNTO 0);--边沿检测寄存器 SIGNAL cnt: STD_LOGIC_VECTOR(2 DOWNTO 0);--数码管扫描计数器 SIGNAL disp_dat: STD_LOGIC_VECTOR(3 DOWNTO 0);--数码管扫描显存 SIGNAL key_edge: STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL div_clk: STD_LOGIC;--分频时钟 BEGIN PROCESS(clock) --时钟分频部分 BEGIN IF RISING_EDGE(clock) THEN IF countdisp_dat<=fword_r(31 DOWNTO 28); --第一个数码管 WHEN "001"=>disp_dat<=fword_r(27 DOWNTO 24); --第二个数码管 WHEN "010"=>disp_dat<=fword_r(23 DOWNTO 20); --第三个数码管 WHEN "011"=>disp_dat<=fword_r(19 DOWNTO 16); --第四个数码管 WHEN "100"=>disp_dat<=fword_r(15 DOWNTO 12); --第五个数码管 WHEN "101"=>disp_dat<=fword_r(11 DOWNTO 8); --第六个数码管 WHEN "110"=>disp_dat<=fword_r(7 DOWNTO 4); --第七个数码管 WHEN "111"=>disp_dat<=fword_r(3 DOWNTO 0); --第八个数码管 END CASE; CASE(cnt) IS WHEN "000"=> dig_r<="01111111";--选择第一个数码管显示 WHEN "001"=> dig_r<="10111111";--选择第二个数码管显示 WHEN "010"=> dig_r<="11011111";--选择第三个数码管显示 WHEN "011"=> dig_r<="11101111";--选择第四个数码管显示 WHEN "100"=> dig_r<="11110111";--选择第五个数码管显示 WHEN "101"=> dig_r<="11111011";--选择第六个数码管显示 WHEN "110"=> dig_r<="11111101";--选择第七个数码管显示 WHEN "111"=> dig_r<="11111110";--选择第八个数码管显示 END CASE; END IF; END IF; END PROCESS; PROCESS(disp_dat) --七段译码 BEGIN CASE disp_dat IS WHEN X"0"=> seg_r<=X"c0";--显示0 WHEN X"1"=> seg_r<=X"f9";--显示1 WHEN X"2"=> seg_r<=X"a4";--显示2 WHEN X"3"=> seg_r<=X"b0";--显示3 WHEN X"4"=> seg_r<=X"99";--显示4 WHEN X"5"=> seg_r<=X"92";--显示5 WHEN X"6"=> seg_r<=X"82";--显示6 WHEN X"7"=> seg_r<=X"f8";--显示7 WHEN X"8"=> seg_r<=X"80";--显示8 WHEN X"9"=> seg_r<=X"90";--显示9 WHEN X"a"=> seg_r<=X"88";--显示a WHEN X"b"=> seg_r<=X"83";--显示b WHEN X"c"=> seg_r<=X"c6";--显示c WHEN X"d"=> seg_r<=X"a1";--显示d WHEN X"e"=> seg_r<=X"86";--显示e WHEN X"f"=> seg_r<=X"8e";--显示f WHEN OTHERS=> seg_r<=X"FF"; END CASE; END PROCESS; 23 菏泽学院本科生毕业设计(论文) dig<=dig_r; seg<=seg_r; fword<=fword_r; END; 附录4 FPGA设计总体RTL电路图 24 基于FPGA的DDS设计 附录5 EP1C6Q240电路原理图 25
本文档为【基于fpga的dds设计论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_841159
暂无简介~
格式:doc
大小:280KB
软件:Word
页数:37
分类:其他高等教育
上传时间:2017-09-19
浏览量:19