【技术分享】详解FPGA中的DDS技术

2019-04-16 14:35:06 来源:elecfans
标签:
DDS   FPGA

 

我知道,我对与电子有关的所有事情都很着迷,但不论从哪个角度看,今天的现场可编程门阵列(FPGA),都显得“鹤立鸡群”,真是非常棒的器件。如果在这个智能时代,在这个领域,想拥有一技之长的你还没有关注FPGA,那么世界将抛弃你,时代将抛弃你。

 

DDS是直接数字式频率合成器(Direct Digital Synthesizer)的英文缩写,是一项关键的数字化技术。与传统的频率合成器相比,DDS具有低成本、低功耗、高分辨率和快速转换时间等优点,广泛使用在电信与电子仪器领域,是实现设备全数字化的一个关键技术。

 

 

上图所示是一个基本的DDS结构,主要由相位累加器、相位调制器、正弦ROM 查找表和D /A 构成。图中的相位累加器、相位调制器、正弦ROM查找表是DDS结构中的数字部分, 由于具有数控频率合成的功能,又合称为NCO。

 

相位累加器是整个DDS系统的核心,在这里完成相位累加功能。相位累加器的输入是相位增量B∆θ=2N X fout /fclk,故相位累加器的输入又称为频率控制字,fclk为系统基准时钟,fout为输出的频率。频率控制字还经过一组寄存器, 该寄存器是同步的, 使得当频率控制字改变时不会干扰相位累加器的工作。

 

相位调制器接收相位累加器的相位输出, 在这里加上一个相位偏移值, 主要用于信号的相位调制,如应用于通信方面的相移键控等, 不使用此部分时可以去掉, 或者将其设为一个常数输入。同样相位字输入也要用同步寄存器保持同步。

 

正弦ROM查找表,完成fsin(B∆θ)的查找表转换,是相位到幅度的转换, 内部存有一个完整周期正弦波的数字幅度信号,输入是ROM 的地址值, 输出送往D /A, 转化成模拟信号。

 

在参考时钟fclk控制下,频率控制字K与相位寄存器的输出反馈在相位累加器中完成加运算,存入寄存器,作为下一次加运算的一个输入值,相位累加器输出高位数据作为波形存储器的相位抽样地址值,查找波形存储器中相对应单元的电压幅值,得到波形二进制编码,实现相位到电压幅值的转变。波形二进制编码再通过D/A转换器,把数字信号转换成相应的模拟信号。

fout =K X fclk/ 2N

当K=l时,可得DDS的最小分辨率为:fout =fclk/ 2N

根据采样定理,K的最大值应小于2N/2。

 

累加器得到的相位是怎么去寻址正弦ROM的,对于N位的相位累加器对应2的N次方数量的相位累加值,如果正弦ROM中存储的点数也是2的N次方的话,对存储容量和资源的要求就比较高了,实际上在寻址正弦ROM表时,用的是相位累加值的高位,也就是说并不是每个时钟fc都从正弦ROM表中取一个数值,而是多个时钟取一个值,这样能保证相位累加器溢出时,从正弦ROM表中取出正好一个正弦周期的样点。因此,相位累加器每计数2的N次方次,对应一个正弦周期。而相位累加器1秒钟计数fc次,在k=1时,DDS输出的时钟频率就是频率分辨率。频率控制字K增加时,相位累加器溢出的频率增加,对应DDS输出的频率变为K倍的DDS频率分辨率。

 

深入剖析:

设定:ROM存储点数为1024,每个点是用8位二进制表示。即,ROM地址线宽度为10,数据线宽度为8。

 

根据上述条件可以知道,相位调制器位宽M=10,那么根据DDS原理,相位累加器位宽N=20。那么在相位调制器中与相位控制字进行累加时,应用相位累加器的高10位累加。

 

而相位累加器的低十位只与频率控制字累加。为什么是这样子?

 

我们以频率控制字K=1为例,相位累加器的低十位一直会加1,直到低十位溢出向高十位进位,此时ROM地址应该是0,也就是说,ROM的0地址中的数据被读了1024次,继续下去,ROM中的1024个点,每个点都将会被读1024次,最终输出的波形频率应该是参考时钟频率的1/1024。 fout =1 Xfclk/ 1024。反过来想,周期被扩大了1024 。同样当频率控制字为10时,相位累加器的低十位一直会加10,那么,相位累加器的低十位溢出的时间比上面会快十倍,则ROM中的每个点相比于上面会少读10次,所以最终输出频率是上述的10倍。fout =10 Xfclk/ 1024。这就是DDS。

 

DDS 最终输出的正弦波的幅值,必须都是ROM表中的正弦幅值。之前我们说根据采样定理,频率控制字K的最大值应小于2的N次幂除以2,这是有道理的,累加器数据位宽20位,ROM表地址位宽10位,在最终ROM表寻址时,用的是累加器的高10位,而低10位只用来进行累加。由于我们上述说DDS最终输出正弦波的赋值必须是ROM表中的幅值,也就是说,ROM表中的幅值必须都被用到,而不能跳过。以累加器位宽20位为例,它的一半是1024,当频率控制字以超过1024累加时,高十位输出累加值会超过1,也就是在寻址ROM表时跳过某些赋值。根据上述可以得出结论了,频率控制字K的最大值应小于2的N次幂除以2。

 
关注与非网微信 ( ee-focus )
限量版产业观察、行业动态、技术大餐每日推荐
享受快时代的精品慢阅读
 

 

继续阅读
物联网发展迎来新的活力,作为FPGA业界的佼佼者,赛灵思的表现会是如何?

近些年来,物联网的发展为工业和医疗领域带来了新的活力。由此,也催生了工业物联网(IIoT)和医疗物联网(HcIoT)的创新。这些新兴领域的崛起,为FPGA的发展提供了机会。作为FPGA业界的佼佼者,赛灵思在工业物联网和医疗物联网领域上的表现如何?

AI应用扩张,FPGA的市场规模未来四年有望达52亿美元?

过去几年,FPGA的CAGR大约一直保持在8-10%左右,随着该类器件在AI应用中的扩张,未来5年其CAGR增长将高达38.4%!根据市场调研公司Semico Research的预测,人工智能应用中FPGA的市场规模将在未来4年内增长3倍,达到52亿美元。

MachXO3D FPGA和sensAI 2.0同时发布,莱迪思用FPGA诠释AIoT
MachXO3D FPGA和sensAI 2.0同时发布,莱迪思用FPGA诠释AIoT

“FPGA的应用设计是从FPGA本身的灵活性出发的,只是刚好AI能够在乘法器和加法器上跑运算,因此FPGA的SoC和ASIC属于健康竞争的关系,更多时候是优势互补,通过性能搭配实现双赢。”

Spectral Edge在台北国际电脑展展示突破性FPGA图像信号处理器

位于英国剑桥的数码图像处理IP公司Spectral Edge已被Talents@Taipei机构认证为创新型初创公司,并获邀参加台北国际电脑展(Computex Taipei)(全球性计划的一部分),在台湾推动国际商务关系发展。

Achronix推出突破性的FPGA系列产品,以面向高带宽数据加速应用的灵活性而将性能提升到全新高度

基于现场可编程门阵列(FPGA)的硬件加速器件和高性能嵌入式FPGA(eFPGA)半导体知识产权(IP)领导性企业Achronix半导体公司(Achronix Semiconductor Corporation)今日宣布:推出创新性的、全新的FPGA系列产品,以满足人工智能/机器学习(AI/ML)和高带宽数据加速应用日益增长的需求.

更多资讯
预测2021年50%GDP为数字化,做FPGA的出路在哪?

数字化转型进入加速期,需要高效且灵活应变的系统,异构计算将大行其道,而FPGA堪当重任。

莱迪思新版sensAI实现10倍的性能提升,助力网络边缘低功耗、智能IoT设备

莱迪思半导体公司(NASDAQ: LSCC),低功耗、可编程器件的领先供应商,今日宣布其屡获殊荣的Lattice sensAITM解决方案的性能和设计流程将获得大幅增强。莱迪思sensAI提供了全面的硬件和软件解决方案,能为网络边缘的智能设备实现低功耗(1 mW-1 W)、实时在线的人工智能(AI)。

莱迪思全新MachX03D FPGA 搭配硬件可信根极大提升安全性

2019年5月20日——莱迪思半导体公司(NASDAQ:LSCC),低功耗可编程器件的领先供应商,今日宣布推出MachXO3D FPGA,用于在各类应用中保障系统安全。不安全的系统会导致数据和设计盗窃、产品克隆和过度构建以及设备篡改或劫持等问题。

实现自主可控,紫光同创FPGA芯片开始供客户试用

5月16日,紫光国微在投资者交流活动中表示,公司子公司紫光同创的FPGA芯片目前已经有几个系列的产品完成了开发,正在提供给客户试用,出货量还较小。

为什么要给程序瘦身?可执行程序代码瘦身有哪些方法?

随着应用程序的功能越来越多,实现越来越复杂,第三方库的引入,UI体验的优化等众多因素程序中的代码量成倍的增长,从而导致应用程序包的体积越来越大。当程序体积变大后不仅会出现编译流程变慢,而且还会出现运行性能问题,会增加应用下载时长和消耗用户的移动网络流量等等。因此在这些众多的问题下需要对应用进行瘦身处理。

电路方案