直接数字频率合成器DDS的优化设计

最新更新时间:2010-10-08来源: 电子技术应用关键字:DDS  流水线  累加器  ROM  接口同步 手机看文章 扫描二维码
随时随地手机看文章

  新一代的直接数字频率合成器DDS,采用全数字的方式实现频率合成。与传统的频率合成技术相比DDS具有以下特点:(1)频率转换快。直接数字频率合成是一个开环系统,无任何反馈环节,其频率转换时间主要由频率控制字状态改变所需的时间及各电路的延时时间所决定,转换时间很短。(2)频率分辨率高、频点数多。DDS输出频率的分辨率和频点数随相位累加器位数的增长而呈指数增长,分辨率高达μHz。(3)相位连续。DDS在改变频率时只需改变频率控制字(即累加器累加步长),而不需改变原有的累加值,故改变频率时相位是连续的。(4)相位噪声小。DDS的相位噪声主要取决于参考源的相位噪声。(5)控制容易、稳定可靠。高集成度、高速和高可靠是FPGA/CPLD最明显的特点,其时钟延迟可达纳秒级,结合其并行工作方式,在超高速应用领域和实时测控方面有非常广阔的应用前景。在高可靠应用领域,如果设计得当,将不会存在类似于MCU的复位不可靠和PC可能跑飞等问题。CPLD/FPGA的高可靠性还表现在,几乎可将整个系统下载于同一芯片中,实现所谓片上系统,从而大大缩小了体积,易于管理和屏蔽。所以,本文将在对DDS的基本原理进行深入理解的基础上,采用多级流水线控制技术对DDS的VHDL语言实现进行优化,同时考虑到系统设计中的异步接口的同步化设计问题,把该设计适配到Xilinx公司的最新90nm工艺的Spartan3E系列的FPGA中。

1 DDS基本原理及工作过程

  一个基本的DDS由相位累加器、波形存储器ROM、D/A转换器和低通滤波器组成,如图1所示。


  在图1中,fc为时钟频率,K为频率控制字(N位),m为ROM地址线位数,n为ROM数据线宽度(一般也为D/A转换器的位数),f0为输出频率。DDS的基本工作过程如下:每来一个时钟
脉冲fc,加法器将频率控制字K与累加寄存器输出的累加相位数据相加,把相加后的结果送至累加寄存器的数据输入端。其中相位累加器由N位加法器与N位累加寄存器级联构成,累加寄存器将加法器在上一个时钟脉冲作用后所产生的新相位数据反馈到加法器的输入端,以使加法器在下一个时钟脉冲的作用下继续与频率控制字相加。这样,相位累加器在时钟作用下,不断对频率控制字进行线性相位累加。由此可见,相位累加器在每一个时钟脉冲输入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位,相位累加器的溢出频率就是DDS输出的信号频率。用相位累加器输出的数据作为波形存储器ROM的相位取样地址,可把存储在波形存储器内的波形抽样值(二进制编码)经查找表查出,完成相位到幅值转换。波形存储器的输出送到D/A转换器,D/A转换器将数字量形式的波形幅值转换成所要求合成频率的模拟量形式信号,由低通滤波器滤除杂散波和谐波以后,输出一个频率为f0的正弦波。输出频率f0与时钟频率fc之间的关系满足下式:
  

  由式(1)可见,输出频率f0由fc和K共同决定,保持时钟频率一定,改变一次K值,即可合成一个新频率的正弦波。DDS的最小输出频率(频率分辨率)△f可由方程△f=f0/2N确定。可见,频率分辨率在fc固定时,取决于相位累加器的位数N。只要N足够大,理论上就可以获得足够高的频率分辨精度。另外,由采样定理,合成信号的频率不能超过时钟频率的一半,即f0≤f0/2,因此频率控制值的最大值Kmax应满足Kmax≤2N-1

2 DDS的优化设计与实现

  采用VHDL硬件描述语言实现整个电路,不仅利于设计文档的管理,而且方便了设计的修改和扩充,还可以实现在不同FPGA器件[4]之间的移植。以下采用VHDL语言,探讨对FPGA实现DDS电路的三点优化方法。

2.1 流水线累加器

  在用FPGA设计DDS电路时,相位累加器是决定DDS电路性能的一个关键部分。为使输出波形具有较高的分辨率,本系统采用32位累加器。但若直接用32位加法器构成累加器,则加法器的延时会大大限制累加器的操作速度。因此,这里引入了流水线算法,即采用4个8位累加器级联结构,每级用一个8位累加器实现该部分相位相加,然后将进位值传给下一级做进一步累加。这样可大幅提高系统的工作速度。但由于累加器是一个闭环反馈电路,因此必须使用寄存器,以保证系统的同步、准确运行。具体实现如图2所示。


2.2 相位/幅度转换电路

  相位/幅度转换电路是DDS电路中的另一个关键部分,设计中面临的主要问题就是资源的开销。该电路通常采用ROM结构,相位累加器的输出是一种数字式锯齿波,通过取它的若干位作为ROM的地址输入,而后通过查表和运算,ROM就能输出所需波形的量化数据。考虑到正弦函数的对称性:在[0,2π]内,正弦函数关于x=π成奇对称,在[0,π]内,关于x=π/2成轴对称。因此,在正弦查找表中只须存储相位在[0,π/2]的函数值。这样,通过一个正弦码表的前1/4周期就可以变换得到整个周期码表,节省了近3/4的资源,非常可观。具体实现如表1所示,为节省ROM资源,取相位累加器输出的高8位做为ROM的输入地址,其中最高位(MSB)控制对输出信号符号的处理,次高位(MSB-1)控制对输入地址的处理。


  当MSB-1为‘0’(一,三象限)时,对查找地址phase(5...0)不做任何处理;当其为‘1’(二,四象限)时,对phase(5...0)取反。ROM的输出为10位数据,其中最高位为符号位
。当MSB为‘0’(一,二象限)时,输出信号符号位为‘0’,低9为ROM中的幅度数据;当其为‘1’(三,四象限)时,输出信号符号位为‘1’,低9位为ROM中的幅度数据的相反数的补码。ROM的VHDL实现的主要部分如下:

  architecture Behavioral of rom is
  signal sin:STD_LOGIC_VECTOR(8 downto 0);
  signal temp:STD_LOGIC_VECTOR(5 downto 0);
  begin
  temp<=phase when MSB-1=′0′ else
    not phase;
  process(temp)
  begin
    case temp is
      when ″000000″=>
        sin<=″000000000″;
       …… --正弦查找表由MATLAB生成
    end case;
  end process;
  data_out<=″0″ & sin when MSB=′0′ else
     ″1″ & not sin+″000000001″;
  end Behavioral;

2.3 同步接口电路设计

  在使用DDS时,需要为其提供频率控制字K的值,一般通过中央控制单元MCU来完成,其以数据总线及写时钟信号的方式与FPGA内的DDS实体进行通讯,同时DDS在FPGA内部又是在本地时钟fc驱动下运行。由于MCU的写时钟和FPGA内的本地时钟异步,两者之间进行通讯难免存在数据不稳等问题,特别是在通讯速度较高时,这一异步接口问题会更加突出。为了实现异步接口的同步化,本文提出了如图3所示的接口同步电路。


3 硬件实现及仿真结果

  本文使用VHDL 语言对各个模块及DDS系统进行描述。顶层文件如下所示:

  Entity dds is
    Port(reset:in std_logic;--全局复位信号
    fre:in std_logic_vector(7 downto 0);
                    --频率控制字输入
    clk:in std_logic;
                    --系统时钟
    fwwrn:in std_logic;      --频率控制字写信号
    gen:in std_logic_vector(0 downto 0);--波形控制字
    amp_out:out std_logic_vector(9 downto 0));
                   --正弦波幅度输出
  end dds;
  architecture Behavioral of dds is
  component fcwld--接口同步模块
    Port(reset:in std_logic;
      clk:in std_logic;
      fre:in std_logic_vector(7 downto 0);
      fwwrn:in std_logic;
      syncfreq:out std_logic_vector(31 downto 0));
                     --合成频率控制字
  end component;
  component accumulator        --流水线累加器块
    Port(reset:in STD_LOGIC;
      clk:in STD_LOGIC;
      syncfreq:in STD_LOGIC_VECTOR(31 downto 0);
      phase:out STD_LOGIC_VECTOR(7 downto 0));
                    --相位高八位输出
  end component;
  component rom--波形存储器模块
    Port(phase:in STD_LOGIC_VECTOR(7 downto 0);
      gen:in STD_LOGIC_VECTOR(0 downto 0);
      amp_out:out STD_LOGIC_VECTOR(9 downto 0));
  end component;

  为了对DDS进行评估,将以上设计在Xilinx公司的开发软件中进行了设计及优化,目标器件为其最新的90nm工艺器件Spartan3E中最小器件XC3S100E-4VQ100C,该设计所占用的FPGA资源如表2所示。


  由表2可以看出,本文给出的DDS设计占用资源很少,由于XC3S100E的市场价格在2美金左右,故本设计所占的硬件成本可以缩减到0.2美金左右。同时在ISE8.2中该设计的系统
时钟最大达到159.6MHz。以上的设计性能几乎和现有的专用芯片相当,但成本下降很多。

  为了进一步验证本文给出的DDS设计系统在功能和时序上的正确性,对其进行了时序仿真,使用的仿真软件为Modelsim6.1。仿真结果表明,该DDS系统可以运行在较高的工作频率下。

  本文在对DDS的基本原理进行深入理解的基础上,通过采用三种优化与设计技术:(1)使用流水线累加器在不过多增加门数的条件下,大幅提高了芯片的工作速度;(2)压缩成正弦查找表,在保证芯片使用精度的情况下减少了近3/4面积,大大节约了ROM的容量。(3)采用同步接口电路设计方案,消除了系统的接口不稳定性。同时使用VHDL语言实现了优化,并把该设计适配到Xilinx公司的最新90nm工艺的Spartan3E系列的FPGA中,实际结果表明了本文给出的DDS设计方案在硬件开销方面的优势。

关键字:DDS  流水线  累加器  ROM  接口同步 编辑:金海 引用地址:直接数字频率合成器DDS的优化设计

上一篇:提高用于高温环境和电负载的薄膜电阻的性能
下一篇:农用超声波发生器的设计

推荐阅读最新更新时间:2023-10-12 20:17

基于单片机和FPGA的位移测量装置的设计
位移传感器广泛应用于工业和控制领域,如过程检测、物理测量和自动控制等。由于其测量精度不高,往往满足不了社会需求,也限制了传感器的应用。因此,这里设计了一套基于单片机和FPGA的位移测量装置,能够实现较高的精度测量,同时也能够达到较高的线性度,能够在各种恶劣环境下替代人工工作,实现较高精度的测量,并具有一定的实用价值。 1 整体设计方案及实现框图 系统整体实现框图如图1所示,由信号产生部分、差分放大部分、变压器耦合部分、信号处理部分、数据采样部分和处理及显示部分组成。利用DDS技术产生的信号经THS4503的差分放大之后送入差动变压器,差动变压器输出的信号经放大、整流以及滤波处理之后送入MAXl97采样,采样得到的数据经
[单片机]
基于单片机和FPGA的位移测量装置的设计
摩托罗拉新机现身GB 内存为前代两倍
近期,摩托罗拉一款型号为E7 Plus的新机现身GeekBench,预计在近期就将发布。这款手机是摩托罗拉E7的升级版,GeekBench数据显示,该手机的运行内存为4GB,是摩托罗拉E7的两倍。   摩托罗拉E7 Plus在GeekBench跑分单核为1152分,多核达到了4373分,尚不清楚是哪一款处理器。上一代摩托罗拉E7搭载了骁龙632处理器,E7 Plus应该会有所升级,大概率会是骁龙7系,毕竟Plus版本机型采用低端芯片有点奇怪。   此前网上曾曝光了几张疑似摩托罗拉E7 Plus的照片,从照片上来看,E7 Plus正面采用了中央挖孔设计,背面则是双摄设计,还具有激光对焦模块。E7 Plus采用了后置指纹
[手机便携]
摩托罗拉新机现身GB <font color='red'>内存</font>为前代两倍
精英K8M890M主板内存供电电路图
精英K8M890M主板内存供电电路图
[电源管理]
精英K8M890M主板<font color='red'>内存</font>供电电路图
NAND Flash价格崩盘前夕,国内存储面临大考验!
据悉,在经过为期一年半的价格暴涨之后,部分存储芯片的价格突然急速下滑,之后三星电子发布了一份并不乐观的2017年业绩预期,这两件事情让那些押注芯片行业的投资人陷入了深深的不安,一些投资人曾经认为芯片行业的红火至少还将持续一年半的时间。 此前有新闻指出,被广泛用在智能手机上的闪存芯片的价格在2017年第四季度出现了下跌,跌幅将近5%左右。伴随着这样的消息,一些分析人士预期今年存储芯片的市场增幅只能达到30%,较去年下降一半以上。 受此消息影响,上周三星电子的股票价格暴跌7.5%,另外三星的竞争对手SK海力士的股价也出现了大幅下跌,跌幅达6.2%。但是在分析人士看来,存储芯片市场应该不会出现突然间的大跌,2018年应该会是相对
[嵌入式]
在STM32中将变量或代码设定在指定内存地址的方法
各个编译器有自己不同的语法 对于arm_none_eabi_gcc: // Sampling variables #define ADC_SAMPLE_MAX_LEN 2000 __attribute__((section( .ram4 ))) static volatile int16_t m_curr0_samples ; __attribute__((section( .ram4 ))) static volatile int16_t m_curr1_samples ; __attribute__((section( .ram4 ))) static volatile int16_t m_ph1_samples ;
[单片机]
便携设备DDR2-3内存电源解决方案
  在笔记本电脑和PDA便携系统中,为达到JEDEC(电子器件工程设计联合会)的标准规范(JESD79E),对DDR2-3内存在静态稳压和动态响应方面提出了严格的要求。DDR2-3基本上需要三条电源轨:一个给内核供电的主电源(VDDQ)、一个给输入级供电的参考电压(VTTREF)和一个给非数据线路供电的终结电压(VTT)。JEDEC联合会要求在宽负载范围内,主电源电压必须有很高的调整精度,VTTREF必须保持在VDDQ的二分之一,然后,VTT必须保持在参考输出电压值,并具有源出和灌入电流功能。此外,根据先进配置和电源接口标准(ACPI),所有输出必须支持“挂起到内存”和“挂起到硬盘”两种系统睡眠状态。   图1示出了一个双
[电源管理]
便携设备DDR2-3<font color='red'>内存</font>电源解决方案
DDS芯片AD9832的原理及应用
    摘要: AD9832是AD公司生产的直接数字频率合成器。它体积小、重量轻、操作方便,同时具有极高的频率辩率。文章介绍了直接数字频率合成器(DDS)AD9832的原理,分析了AAD9832的内部结构、引脚功能以及在高频测试仪中的应用。     关键词: 直接数字频率合成器 DDS AD9832 高频测试仪 直接数字频率合成是一种新的频率合成技术和信号产生方法。直接数字频率合成器(DDS)具有超高速的频率转换时间,极高的频率分辨率和较低的相位噪声,在频率改变与调频时,DDS器件能够保持相位的连续,因此很容易实现频率、相位和幅度调制。此外,该器件还具有可编程控制的突出优点。因此,直接数字频率合成器得到了越
[应用]
NOR闪存巨头Spansion抛出“DRAM竞争论” 窥视内存市场
Spansion计划把它专有的MirrorBit技术定位成DRAM的竞争者,开辟高端手机、PDA和通讯手机市场。Spansion目前只供应NOR闪存,由于激烈竞争和价格压力,已经在10个季度中没有盈利。 Spansion的总裁兼首席执行官Bertrand Cambou在该公司的首次分析师吹风会上表示:“我们目前正在使用MirrorBit技术来设计与DRAM类似的器件。”他没有说该产品何时能够推向市场。 “人们说NOR的竞争者是NAND。这种说法是错误的。”他说,它的竞争者是DRAM。“我们有机会追赶DRAM。他把DRAM称为“一种脏内存(a kind of dirty memory)”,因为它采用电容器而且需要每毫秒刷新一次
[焦点新闻]
小广播
最新模拟电子文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved