移相正弦信号发生器设计

合集下载

基于FPGA的DDS移相变频正弦信号发生器设计

基于FPGA的DDS移相变频正弦信号发生器设计

基于FPGA的DDS移相变频正弦信号发生器设计杨春红;李石【期刊名称】《数字通信世界》【年(卷),期】2014(000)010【摘要】The direct digital frequency synthesis (DDS) technology has high frequency resolution, fast frequency switching, low phase noise and higher frequency stability, so it is widely used in communications, aerospace, instrumentation and other fields. In this paper, phase shift frequency variable sine signal generator with DDS as its core was designed based on Field Programmable Gate Array (FPGA) and hardware description language (VHDL). The experimental and simulation results show that the system has stable output frequency, high frequency accuracy, adjustable frequency and phase.%直接数字频率合成技术(DDS)由于具有频率分辨率高、频率切换速度快、相位噪声低和频率稳定度高等优点,广泛应用于通信、航空航天、仪器仪表等领域。

本文以FPGA为核心,以硬件设计语言VHDL为系统逻辑描述手段,设计了基于DDS原理的可移相、变频的正弦信号发生器。

仿真及实验结果表明:该系统具有输出频率稳定、频率精度高,频率和相位可调等特点。

第4章-数字式移相信号发生器的设计

第4章-数字式移相信号发生器的设计

第4章
2. DDS DDS技术将输出波形的一个完整周期的幅度值都顺 序地存放在波形存储器中, 通过控制相位增量产生频 率、相位可控制的波形。DDS电路一般包括基准时钟、 相位增量寄存器、相位累加器、波形存储器、D/A转换 器和低通滤波器(LPF)等模块, 如图4.4所示。
第4章
相位 增量
相位
地址
K
m
ax
128 359 45
1021.55
则相位控制字K的位数取10 bit就能满足设计任务关于
移相的要求(分辨率为1°, 移相范围是0~359°)。
若“相位加法器”采用24 bit加法器实现, 则上述10 bit的相位控制字应扩展成24 bit, 具体扩展方法是在上述 10 bit相位控制字后面(右边)添加14个逻辑0就可以了。
基于DDS技术的数字式移相信号发生器的主 要模块框图如图4.5所示。
第4章
频率 控制 字 寄 存 器
相位 控制 字 寄 存 器
相位 累加 器
相位 加法 器
寄 存
Address1

寄 存
Address2

图4.5 基于DDS技术的数字式移相信号发生器主要模块框图
第4章
3. 1)确定系统时钟频率fcp 不妨设输出信号最高频率为fmax 、最高频率 fmax下的最少采样点数为Smin , 则有
第4章
4.3 系统硬件设计
4.3.1 DDS 1. DDS 1971年, 美国学者J.Tierncy、C.M.Rader和B.Gold提出了以全数
字技术从相位概念出发直接合成所需波形的一种新的频率合成原理。 随着电子技术的发展和水平的提高, 一种新的频率合成技术——直接数 字频率合成(DDS, Direct Digital Synthesis)技术得到了飞速发展。 DDS技术是一种把一系列数字形式的信号通过D/A转换而成模拟形式的 信号合成技术, 目前使用最广泛的一种DDS方式是利用高速存储器作查 找表, 然后通过高速D/A转换输出已经用数字形式存入存储器的正弦波。

DDS数字移相正弦信号发生器的设计

DDS数字移相正弦信号发生器的设计

第30卷 第1期华侨大学学报(自然科学版)Vol.30 No.1 2009年1月Journal of Huaqiao University (Natural Science ) J an.2009 文章编号: 100025013(2009)0120034204DDS 数字移相正弦信号发生器的设计高 银,林其伟(华侨大学信息科学与工程学院,福建泉州362021)摘要: 在直接数字频率合成器(DDS )的基础上,利用现场可编程门阵列(FP GA )设计一款数字移相正弦信号发生器,并通过Altera 公司的DE2开发板来验证1在输入环节加入一个数据锁存器,用“软设置”替代“硬设置”,同时在ROM 的验证中只采样正弦波的正上半周,来代替整个周期的采样,以降低系统的设计规模,减少系统对逻辑资源的需求1最后,绘制数字移相正弦信号发生器的顶层电路图,在QUAR TUS 6.0软件中进行仿真和硬件验证结果1关键词: 直接数字频率合成器;现场可编程门阵列;信号发生器;正弦信号;数字移相中图分类号: TN 742.1文献标识码: A生成正弦波比较常用的方法是,用一片只读存储器(ROM )和一片数模转换器(DAC ),加上地址发生计数器和寄存器[122].由于直接数字频率合成器(DDS )具有频率分辨率高、频率变换速度快、相位可连续变化等特点[3],可以实现快速的频率切换,在频率改变时能够保持相位的连续性,很容易实现频率、相位和幅度的数控调制.因此,本文采用了DDS 的设计思路,通过现场可编程门阵列(FP GA )实现DDS 数字移相正弦信号发生器.1 设计方案1.1 DDS 数字移相原理DDS 技术的核心是相位累加器,它类似一个计数器.每来一个时钟信号,相位累加器的输出就增加一个步长的相位增量,相位增量的大小由频率控制字确定.经DDS 输出的信号可描述为S out =A sin (ωt )=A sin (2πf out t ),(1)其中,S out 为经DDS 输出的信号,f out 为对应的输出频率1时间t 是连续的.为便于数字逻辑描述该表达式,需进行离散化处理,用基准时钟信号clk 进行抽样1设正弦信号的相位φ=2πf out t ,而在一个时钟周期T clk 相位φ变化量为Δφ=2πf out T clk =2πf out f clk.(2)式(2)中,f clk 是clk 的频率,对于2π可以看成是满相位的1为了对输出的相位进行控制,通过一个常数P 来实现,而每个clk 周期的相位增量Δθ用P 来表示,即Δθ=P ・Δφ1与式(2)联立可得Δθ=P ・2πf out f clk.(3)显然,信号发生器的输出可描述为S out =A sin (φ+P ・Δφ)=A sin (φ+Δθ)1(4)上式中,φ代表正弦信号发生器原始相位值1由上述推导可看出,对相位值进行简单的累加运算,就可以得到正弦信号当前相位值,也就得到了DDS 输出的正弦信号.收稿日期: 2007212210 通信作者: 林其伟(19572),男,副教授,主要从事智能仪器仪表的研究.E 2mail :qwlin @. 基金项目: 国务院侨办科研基金资助项目(06QZR03)1.2 DDS 数字移相正弦信号发生器设计由式(3)得出相位累加器的输入又可以称为相位字输入,实际上系统的基准时钟频率为f clk =2N f out 1那么,由式(3)得DDS 数字移相正弦信号发生器相移为图1 信号发生器原理框图Fig.1 Block diagram of the signal generator Δθ=P ・2π2N . (5) 频率字输入要经过一组同步寄存器,使得频率字改变时不会干扰相位累加器正常工作.相移信号发生器就是在DDS 基础上多了一个波形数据SIN ROM 表1它的地址线没有经过移相用的N 位加法器,而直接与相位累加器相连,用此链路作为基准正弦信号输出,整个框架[4]原理如图1所示.为便于设计复杂性的控制,将频率控制字设置为10位宽(二进制).频率控制字通过相位累加器来控制相位地址的变化.相位累加器的地址累加到半个周期的地址(即地址值为512)时就会溢出,则从0开始重新再次累加.相位累加器输出的数据通过寄存器锁存,防止累加器输出的数据不稳定.在加法器的模块中加入相移控制字P ,用来直接控制着输出端相移大小.在加法器模块的输出数据也对应着SINROM 数值的地址,经寄存器出来的地址数据,在SINROM 表中查找对应地址的量化值,然后经寄存器输出,即得到经数字移相后的数字正弦信号.此SINROM 表就是采用半个周期的正弦幅值数据.通过对半周期正弦幅值数据复用,来代替整个周期正弦幅值数据,以达到简化逻辑资源的目的.对比经数字移相前后的数字正弦信号的相位可知,相移后的正弦信号相差Δθ可用示波器测出.再与式(5)计算的理论相比较,即可验证设计方案是否成功.对于图1中虚线所示部分的DAC 数模转换器及低通滤波(L PF ),在仿真中暂时不考虑1因为L PF 主要用于平滑由实际生产中外界的干扰、噪声,以及直接接入通信信道(DACC )出来的噪声及毛刺现象,可以在实现硬件生产时再加入这两个部分.2 仿真与硬件验证2.1 系统仿真对于数字移相正弦信号发生器构建的顶层电路图,在QUAR TU S 6.0软件中进行仿真,得到仿真波形图如图2所示.输出的P out 是基准没有经过移相的正弦信号数据,而P 作为相移控制字,它直接控图2 信号发生器数据仿真图Fig.2 Data imitating curve of the signal generator制相移的步长,从而控制DDS 数字移相正弦信号发生器相移的大小,q 是相移后的正弦波形数据.采用频率控制字为1,以便相位累加器出来的地址数据能遍历每一个采样地址.从图2中可以知道,控制端en 和清零重置端reset 对此正弦移相信号发生器具有控制作用.在P out 为2.26μs 时,q 是530;而在P out 为2.28μs 时,q 是530,均能准确地反映P =4时正弦相移的情况.2.2 硬件验证为了能够更清晰地分析DDS 正弦相移信号发生器,采用D E2开发板进行硬件验证,并选用QU 2AR TU S 6.0里面的Signal Tap Ⅱ型嵌入式逻辑分析仪对设计中的重要层次模块信号接点进行测试[5].53第1期 高 银,等:DDS 数字移相正弦信号发生器的设计对顶层电路图略作修改,把两路正弦信号通过七段译码转换接口连接到七段译码器中,如图3所示.选用Altera 公司定制好的IP 核,完成七段译码转换连接的工作.它的一个最大优点是,该IP 核自带了引脚锁定功能,不需要再进行烦琐的引脚锁定.这个已经被Altera 公司优化过的模块,内部结构很简单,对提高系统的性能也有很大的帮助.图3 硬件验证的原理框Fig.3 Block diagram for hardware validating将修改后的系统电路在综合仿真后,下载到D E2开发板上.下载完成后,理论上是可以通过七段译码器显示正弦幅度数据,但是要通过七段译码显示的数据1这是在几十微秒数量级的时间内来回变化的,七段译码器不能分辨出来.因此,只能通过Signal Tap Ⅱ型嵌入式逻辑分析仪来观察七段译码器所显示的数据,如图4所示.从图4(a ),(b )可以看到,在DE2开发板上8个七段译码器,显示数据的频率(a)(b )图4 硬件反馈波形Fig.4 The feed backing curve of hardware63华侨大学学报(自然科学版) 2009年都很高,只有扩大时间的分辨率才能观察到七段译码器的数据.通过Signal Tap Ⅱ型嵌入式逻辑分析仪来观察下载到硬件里的正弦移相信息,在P 移动时,所对应的相移也跟着发生变化.图4(a )是截取相位控制字为32时所得1当坐标对准410时,经相移后的正弦波数据对应的幅值为10,原始正弦信号的幅值为0;当坐标向前移动到440时,第1次遇到原始正弦信号对应的幅值为10,如图4(b )所示.由图4的示波形图得到输出的相移值Δθ=(440-410)・2π210=15π256;而由式(5)可得Δθ=P ・2π2N =32・2π210=16π256,其相对误差为6.25%.如果实际应用的是32位数字移相正弦信号发生器,则误差将非常小甚至可以忽略掉1这反映整个数字移相正弦信号发生器设计的精确性,有实际应用价值.3 结束语利用可编程逻辑芯片,设计基于DDS 的数字相移频率发生器1在输入环节加入了一个数据锁存器,利用“软设置”替代“硬设置”,并在ROM 的验证中,只采样正弦波的上半周来代替整个周期的采样,降低了系统的设计规模,减少了系统对逻辑资源的需求.实验结果也证明,在这方面能够提高硬件资源的利用率,提高运行速度.这在对真正的流片成产品时是非常重要的,它大大地降低成本,提高了芯片的整体性能.参考文献:[1] 潘 松,黄继业1EDA 技术与V HDL [M ].北京:清华大学出版社,2005:3882396.[2] 潘 松,黄继业1EDA 技术实用教程[M ].北京:科学出版社,2002:3412346.[3] 黄 飞,鲁迎春,何晓雄.基于DDS 的L FM 信号发生器的FP GA 设计[J ].合肥工业大学学报:自然科学版,2006,29(5):6172619.[4] 章小梅,姜茂仁,费元春.DDS 杂散的抑制与研究[J ].信息技术,2004,6(4):124.[5] 邓 成,张亚妮,白 璘,等.嵌入式逻辑分析仪在FP GA 设计中的应用[J ].现代电子技术,2006(2):76284.The Design of DDS Digital Phase 2Shift Sine Signal G eneratorGAO Yin ,L IN Qi 2wei(College of Information Science and Engineering ,Huaqiao University ,Quanzhou 362021,China )Abstract : Based on direct digital synthesizer (DDS )and using field programmable gate array (FP GA ),a digital phase 2shift sine signal generator had been designed.This signal generator was verified through Altera Corporation ′s DE2devel 2op board.In this design ,a data flip 2latch was added at the input side ,the “soft setting ”was employed instead of “hard setting ”.At the same time ,and the positive half period sampling was used instead of the f ull period sampling of sine wave in the ROM verification ,,the scale of system and the demand to the systemic logic resources were reduced.At the end ,the top layer circuit diagram of digital phase 2shift sine signal generator was drawn ,and the hardware circuit was simulated on the Quareus 6.0.K eyw ords : direct digital synthesizer ;field programmable gate array ;signal generator ;sine signal ;digital phase 2shift(责任编辑:鲁 斌 英文审校:吴逢铁)73第1期 高 银,等:DDS 数字移相正弦信号发生器的设计。

基于FPGA的高精度数字式移相正弦波信号发生器设计

基于FPGA的高精度数字式移相正弦波信号发生器设计

摘要: 文章介绍了基于FPGA和数字频率合成技术,利用VHDL 编制程序并下载至Xilinx公司的SpartanⅡ系列XC2S100E-6PQ208 FPAG芯片上,加以简单的外围电路,构成了高精度数字式移相正弦波信号发生器。

该装置能够产生频率、相位、幅度均可数字式预置并可调节的两路正弦波信号,相位差范围为0~359°,步进为1°。

关键词:数字移相;FPGA;VHDL;直接数字频率合成1.引言在一些试验、研究中,有时需要存在相位差的两同频信号。

通常采用移相网络来实现,如阻容移相,变压器移相等。

采用这些方法有许多不足之处,比如:输出波形受输入波形的影响,移相操作不方便,移相角度随信号频率和所接负载等因素的影响等。

若采用直接数字频率合成及数字移相技术,能得到频率及相位差高度稳定精确的信号且实现方便。

2.波形及移相波形发生器的系统组成原理如图1所示为波形及移相波形发生器的系统组成方框图。

500)this.style.width=500;" border=0>图1 波形及移相波形发生器的系统组成原理框图标准时钟(由晶振电路产生)加于进制可编程的n进制计数器,其溢出脉冲加于可预置初值的地址计数器,生成波形存储器所需的地址信号,地址信号的产生频率正比于时钟频率,且周而复始地变化,从而使波形数据存储器输出周期的正弦序列,D/A转换器则输出连续的模拟正弦电压(或电流)波形,如图2所示。

500)this.style.width=500;" border=0>为移相方便,设一周期的正弦波共采样360个点,即波形数据存储器共存储360个正弦波形的数据。

由于移相波形的地址计数器的第一次运行初值为m,故两正弦波存在相位差为m°。

相邻采样点有n 个标准时钟脉冲间隔,即500)this.style.width=500;" border=0> 。

图1中波形数据存储器的全部数据被读出一次的频率为:500)this.style.width=500;" border=0> 。

基于FPGA的数控移相正弦信号发生器设计

基于FPGA的数控移相正弦信号发生器设计

图一 数控移相正弦信号发生器系统结构框 图
数 可调性 、 高性价 比方 面都有 了显著的提高 。数控移相 正弦
信号 发生器等 功能更加完善 的波 形发生器不断 问世 , 而且正 朝着产生 更高质量 的波形发展。 当前信号发生器总的趋势是 高频
能化方 向发展 。
转换单元用 F G P A ̄
再将 输出信号送入 DA C器 件, 最后 通过低通滤波器输 出所需模拟波形 波形产生过程 如图二 所 示:
量信空电领子、 器应生测术中抗仪 ,用器控系基子 广号航子域对 测 正于作、统本 泛发天技 、的 弦航为信电 电 通最

科研等各个领域 中。 如 今, 数控 正弦信号发 生器 因为其

F^ P G ,

输 出幅值 稳定 、 输出频率 连续可调 等优点 , 随着大规模 集 且 成电路 的发展, 各种数字 式正弦 波发生器 层出不穷 , 出正 输 弦波频率范围越来越大 , 失真度也越来越小 。近年来信号发 生器 的性 能指标得到 了快速提高 , 在追求高精度 、 可靠性 、 参
wt HD n es l pr h r i utWhc a eea os v s i rcnetdadajs df q ec n hs i V La dt i e ei e c ci h h mp p y r . i cng nrt t i wae t peo cr n dut ' u nyadp ae h ew n wh e e i e
器即二进制计数器的低 8位 Q 0一 Q 7作为地址去寻址双路 R OM。这祥 R M 对应地址的样值送 D 0 3 O AC 8 2进行 D/ A转 换就可 以得到两 路正弦波形。 只要改变计数器 的输人脉冲频

用Protel制作移相式正弦波发生器

用Protel制作移相式正弦波发生器

用Protel制作移相式正弦波发生器一实验目的1.掌握99 SE电路原理图的设计及绘制;2.根据所绘制的电路原理图设计层次原理图和产生报表和电路板。

二实验原理1在protel环境中画出原理图如下原理:1 Protel 99 SE 是新一代电路原理图辅助设计与绘制软件,其功能模块包括电路原理图的设计、印制电路板设计、无线网格布线器、可编程逻辑器件设计、电路板的设计与仿真等。

2 该电路是由一个全通滤波器组成的移相式正弦波发生器,其输入与输出之间的相位差为九十度,并且根据全通滤波器的特点,可以求出输入相对于输出的相位。

三实验步骤1 画电路图(1)启动Protel 99 SE,打开设计环境。

(2)新建一个数据库,单击File-New命令,弹出以下对话框。

点击OK后,生成一个叫“李婷.ddb”的文件夹。

(3)新建一个空白的Sch文件,再次点击File-New命令,弹出以下对话框。

选择Sch后点击OK,就生成了一个空白的名叫“李婷. Sch”Sch文件,(4)根据实际电路需要,加载元件库。

(5)找到所需元件,根据原理图连接电路,Sch文件正式生成。

生成的电路如原理图所示。

2生成ERC结果(1)打开原理图文件,执行菜单命令Tools-ERC.(2)执行该命令后,会出现一对话框,用户可以设置有关电气规则检查的选项。

(3)设置完电气规则检查选项后,程序自动进入文本编辑器并生成相应的检查错误报告。

(4)系统在发生错误的位置放置红色的符号,提示错误的位置3产生网络表(1)执行Design→Creat Netlist菜单命令(2)执行该命令后,会出现一对话框,用户可以进行对话框设置。

(3)对话框设置完成后,将进入Protel 99 SE的记事本程序,将结果保存为.net文件,产生如下图所示的网络表4产生材料清单(1)打开原理图文件,执行Report-→Bill of Material菜单命令。

(2)执行该命令后,系统会弹出一对话框,可以选择是产生整个项目(Project)的元件列表,还是产生当前原理图(Sheet)的元件列表。

DDS数字移相正弦信号发生器的设计

DDS数字移相正弦信号发生器的设计

DDS数字移相正弦信号发生器的设计
高银;林其伟
【期刊名称】《华侨大学学报(自然科学版)》
【年(卷),期】2009(030)001
【摘要】在直接数字频率合成器(DDS)的基础上,利用现场可编程门阵列(FPGA)设计一款数字移相正弦信号发生器,并通过Altera 公司的DE2开发板来验证.在输入环节加入一个数据锁存器,用"软设置"替代"硬设置",同时在ROM的验证中只采样正弦波的正上半周,来代替整个周期的采样,以降低系统的设计规模,减少系统对逻辑资源的需求.最后,绘制数字移相正弦信号发生器的顶层电路图,在QUARTUS 6.0软件中进行仿真和硬件验证结果.
【总页数】4页(P34-37)
【作者】高银;林其伟
【作者单位】华侨大学,信息科学与工程学院,福建,泉州,362021;华侨大学,信息科学与工程学院,福建,泉州,362021
【正文语种】中文
【中图分类】TN742.1
【相关文献】
1.基于DDS与数字电位器的正弦信号发生器设计 [J], 孙莹莹;卢京阳;刘思久;贲洪奇
2.基于DDS的数字移相正弦信号发生器的设计 [J], 肖炎根
3.基于FPGA的DDS移相变频正弦信号发生器设计 [J], 杨春红;李石
4.基于单片机的数字式可移相正弦信号发生器设计 [J], 刘晓艳;杨宁
5.基于DDS技术的数字移相正弦信号发生器的CPLD设计与仿真 [J], 雷能芳;苏变玲
因版权原因,仅展示原文概要,查看原文内容请购买。

正弦信号发生器方案设计

正弦信号发生器方案设计

正弦信号发生器设计方案一、方案比较论证所有方案可按模拟式和数字式分为两大类模拟式:①利用电阻、电容、运放等传统器件搭建LC或RC正弦信号发生器。

通过改变电路中的元件的参数值来调节输出频率。

这种方式成本低廉,但由于采用大量分立器件,受其工作原理的限制频率稳定度较低(只有10-3量级)。

另外实现扩展功能中的各种调制等也比较麻烦,电路复杂,调试困难,精度差。

②采用专用信号发生芯片MAX038来实现正弦信号波形的输出。

是美信公司的低失真单片信号发生集成电路,内部电路完善,使用该器件能够产生精确的高频三角、锯齿、正弦及方波。

使用该芯片设计简单,但扩展功能电路部分实现起来和采用分立器件同样复杂,而且频率精度和稳度均难以达到要求。

③采用基于锁相环(PLL)技术或者非线性器件频率变换技术的频率合成器。

由晶体振荡器和锁相环组成的系统中,前者保证工作频率稳定度,后者完成输出频率的调整,但是这时输出频率只能是晶体谐振频率的整数倍。

故虽然频率稳定能达到要求却很难做到频率输出范围1KHZ—10MHZ和100HZ步进的要求。

数字式:①采用AD公司专用的DDS芯片AD9851合成FM和AM的载波,采用传统的模拟调制方式来实现AM调制和FM调制。

但该方案需要额外的模拟调制FM和AM的调制电路,且制作和调制电路都比较麻烦,还难免引入一定的干扰,而且此方案中的PSK调制也不容易实现。

②采用AD公司的AD9856作为调制芯片,是内含DDS的正交调制芯片,可以实现多进制的数字幅度调制,多进制的数字相位调制和多进制的数字幅度相位联合调制。

故AM 调制,PSK调、ASK调制都可以通过它实现但是AD9856不便于调频且控制复杂。

③利用微处理器和DAC实现DDS信号产生器。

微处理器能够实现DDS的电路结构,即实现相位累加器、波形的数据表、同时实现数字/模拟转换器的控制时序。

利用微处理器完成加法运算需要读取的数据进行运算,再把运算结果送到目标单元。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

设CLK=1MHZ,ROM地址线位10条(000-3FFH,1024个), [9..0] [7..0] 10位 [9..0] 加法器 ADD 10M2
FOUT
启始地址ADD=000H
当FW=08H=8D
当FW=01H=1D 下一个CLK,ADD=008H=8D 下一个CLK,ADD=001H=1D 扫描一次ROM需要的CLK 扫描一次ROM需要的CLK 1024÷1=1024 扫描一次ROM需要的时间 1µS×1024=1024µS 输出频率≈976HZ 1024÷8=128 扫描一次ROM需要的时间 1µS×128=128µS 输出频率=7.8125KHZ
SIGNAL F32B : STD_LOGIC_VECTOR(31 DOWNTO 0); SIGNAL D32B : STD_LOGIC_VECTOR(31 DOWNTO 0); SIGNAL DIN32B : STD_LOGIC_VECTOR(31 DOWNTO 0); SIGNAL P10B : STD_LOGIC_VECTOR( 9 DOWNTO 0); SIGNAL LIN10B : STD_LOGIC_VECTOR( 9 DOWNTO 0); SIGNAL SIN10B : STD_LOGIC_VECTOR( 9 DOWNTO 0); BEGIN F32B(27 DOWNTO 20)<=FWORD ; F32B(31 DOWNTO 28)<="0000"; F32B(19 DOWNTO 0)<="00000000000000000000" ; P10B( 9 DOWNTO 2)<=PWORD ; P10B( 1 DOWNTO 0)<="00" ; u1 : ADDER32B PORT MAP( A=>F32B,B=>D32B, S=>DIN32B ); u2 : REG32B PORT MAP( DOUT=>D32B,DIN=> DIN32B, LOAD=>CLK ); u3 : SIN_ROM PORT MAP( address=>SIN10B, q=>FOUT, inclock=>CLK ); u4 : ADDER10B PORT MAP( A=>P10B,B=>D32B(31 DOWNTO 22),S=>LIN10B ); u5 : REG10B PORT MAP( DOUT=>SIN10B,DIN=>LIN10B, LOAD=>CLK ); u6 : SIN_ROM PORT MAP( address=>D32B(31 DOWNTO 22), q=>POUT, inclock=>CLK ); END;
当PW=08H=8D 超前 0.351625°×8=2.8125°
32位加法器,10位加法器略去 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ADDER32B IS PORT ( A : IN STD_LOGIC_VECTOR(31 DOWNTO 0); B : IN STD_LOGIC_VECTOR(31 DOWNTO 0); S : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) ); END ADDER32B; ARCHITECTURE behav OF ADDER32B IS BEGIN S <= A + B; END behav;
ARCHITECTURE one OF DDS_VHDL IS COMPONENT REG32B --32位锁存器 PORT ( LOAD : IN STD_LOGIC; DIN : IN STD_LOGIC_VECTOR(31 DOWNTO 0); DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) ); END COMPONENT; COMPONENT REG10B --10位锁存器 PORT ( LOAD : IN STD_LOGIC; DIN : IN STD_LOGIC_VECTOR(9 DOWNTO 0); DOUT : OUT STD_LOGIC_VECTOR(9 DOWNTO 0) ); END COMPONENT; COMPONENT ADDER32B --32位加法器 PORT ( A : IN STD_LOGIC_VECTOR(31 DOWNTO 0); B : IN STD_LOGIC_VECTOR(31 DOWNTO 0); S : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) ); END COMPONENT; COMPONENT ADDER10B --10位加法器 PORT ( A : IN STD_LOGIC_VECTOR(9 DOWNTO 0); B : IN STD_LOGIC_VECTOR(9 DOWNTO 0); S : OUT STD_LOGIC_VECTOR(9 DOWNTO 0) ); END COMPONENT; COMPONENT SIN_ROM --10位地址10位数据正弦信号数据ROM PORT ( address : IN STD_LOGIC_VECTOR(9 DOWNTO 0); inclock : IN STD_LOGIC ; q : OUT STD_LOGIC_VECTOR(9 DOWNTO 0) ); END COMPONENT;
移相正弦信号发生器设计
采用直接数字综合器DDS发生器的设计 原理:图1是此电路模型图 正弦波ROM是存放正弦波数据的,10位数据线,10位地址线; “FW” 是8位频率控制字 “PW”是8位相移控制字 32位加法器和32位寄存器是控制”地址步长”的----控制了 频率 10位加法器和10位寄存器是控制读取正弦波ROM1与读取正 弦波ROM2的”地址差”----控制相位差(移相) POUT和FOUT分别为10位输出,可以分别与两个高速D/A 相接,他们分别输出参考信号和可移相正弦波信号。
图1 基于DDS的数字移相信号发生器电路模型图 [31..22] [9..2] 10位 加法器 [31..22] 10位 寄存器 正弦波 ROM1
PW
POUT
[31..0] [27..20] 32位 [31..0] 加法器 32位 寄存器
FW CLK
正弦波 ROM2
FOUT
图2 数字式移相信号发生器完整结构
设CLK=1MHZ,ROM地址线位10条(000-3FFH,1024个), [9..0] [7..0] 10位 [9..0] 加法器 ADD 10位 寄存器
PW CLK
正弦波 ROM1
POUT
启始地址ADD=000H
总比FOUT超前”一个”地 址 “跳一个”地址相当于 360°÷1024=0.351625° 当PW=01H=1D 超前 0.351625°
32位寄存器,10位寄存器略去 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY REG32B IS PORT ( CLK : IN STD_LOGIC; DIN : IN STD_LOGIC_VECTOR(31 DOWNTO 0); DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) ); END REG32B; ARCHITECTURE behav OF REG32B IS BEGIN PROCESS(CLK, DIN) BEGIN IF CLK'EVENT AND Load = '1' THEN DOUT <= DIN; END IF; END PROCESS; END behav;
数字移相信号发生器顶层设计文件
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY DDS_VHDL IS -- 顶层设计 PORT ( CLK : IN STD_LOGIC; --系统时钟 FWORD : IN STD_LOGIC_VECTOR(7 DOWNTO 0); --频率控制字 PWORD : IN STD_LOGIC_VECTOR(7 DOWNTO 0); --相位控制字 FOUT : OUT STD_LOGIC_VECTOR(9 DOWNTO 0); --可移相正弦信号输出 POUT : OUT STD_LOGIC_VECTOR(9 DOWNTO 0) ); --参考信号输出 END;
SIGNAL F32B : STD_LOGIC_VECTOR(31 DOWNTO 0); SIGNAL D32B : STD_LOGIC_VECTOR(31 DOWNTO 0); SIGNAL DIN32B : STD_LOGIC_VECTOR(31 DOWNTO 0); SIGNAL P10B : STD_LOGIC_VECTOR( 9 DOWNTO 0); SIGNAL LIN10B : STD_LOGIC_VECTOR( 9 DOWNTO 0); SIGNAL SIN10B : STD_LOGIC_VECTOR( 9 DOWNTO 0); BEGIN F32B(27 DOWNTO 20)<=FWORD ; F32B(31 DOWNTO 28)<="0000"; F32B(19 DOWNTO 0)<="00000000000000000000" ; P10B( 9 DOWNTO 2)<=PWORD ; P10B( 1 DOWNTO 0)<="00" ; u1 : ADDER32B PORT MAP( A=>F32B,B=>D32B, S=>DIN32B ); u2 : REG32B PORT MAP( DOUT=>D32B,DIN=> DIN32B, LOAD=>CLK ); u3 : SIN_ROM PORT MAP( address=>SIN10B, q=>FOUT, inclock=>CLK ); u4 : ADDER10B PORT MAP( A=>P10B,B=>D32B(31 DOWNTO 22),S=>LIN10B ); u5 : REG10B PORT MAP( DOUT=>SIN10B,DIN=>LIN10B, LOAD=>CLK ); u6 : SIN_ROM PORT MAP( address=>D32B(31 DOWNTO 22), q=>POUT, inclock=>CLK ); END;
相关文档
最新文档