基于FPGA和高速DAC的DDS设计与频率调制(一)——X
现如今,随着高速模数-数模转换技术和FPGA的发展。FPGA的高速性、并行性、高数据吞吐量与高速数模-模数转换技术使得高速模拟信号的数字处理得以可能。(个人理解OS:相对与DSP而言,FPGA在高速计算和可扩展性方面具有更好的弹性)FPGA的弹性设计表现在使得每一个数字系统设计拥有最为高效的资源匹配。对一个有经验的FPGA设计者来说,使用FPGA设计数字系统可能要比使用DSP趁手许多。
出于兴趣爱好,博主最近刚好打算要深入学习下FPGA数字信号处理方面的知识,本设计就当作是学习的第一步,利用FPGA依据自己的现有认知打造一个初级的数字信号系统。除了数字信号处理的算法和软件设计,我还会通过博客的方式和大家分享我将要学习的高速数字信号的硬件设计(LVDS、HDMI协议、高速PCB布局、阻抗计算和信号完整性等等)。今后每周我都会以博客的方式更新我的所见所学,希望我们能够共同进步。
- DDS——一起设计一个函数发生器
- 调制器——调频的基本理论以及FPGA实现
- 高速DAC——把肚子里的信号全吐出来
一、DDS——一起设计一个函数发生器
DDS可谓是数字系统中的一个尤物,美的不可一世。对于一个刚刚接触数字系统的本科生来说,DDS就是画中仙一样,令人陶醉。DDS的原理非常简单,简单到一个学过三角函数理论的高中生都能够理解它的基本原理,而它的美也体现在这一点。我就简单直说吧,通过一个精确控制的基准时钟作为查表节拍,按照这个查表节拍依次查得存放在存储器中的离散化信号幅度值,这就是DDS的基本工作模式。依据奈奎斯特采样定理,我们至多可以得到这个采样时钟频率一半的信号。
说起来,好像市场上有很多诶。ADI家族有一箩筐的DDS供您选择,几十块钱的到上万的都有。不过。。。(划重点了),兄嘚,你都有FPGA了,数字芯片之母啊,为什么动键盘自己给自己写一个DDS呐。
首先你得有一个ROM,你可以使用IP核,也可以使用FPGA开发板上的外设。不过我推荐FPGA资源充足的小伙伴使用IP核构建一个ROM,为什么这样说呢,IP核比你使用外设芯片要灵活的多。我想要一个几BIT的,我想要多少字长的,随你所愿。关于IP核的介绍和使用,博主推荐参考intel官网关于知识产权核的说明https://www.intel.cn/content/www/cn/zh/products/programmable/intellectual-property.html(不是打广告啊,博主手上的板子都是ALTERA的,你懂的)。有些参数我细说下啊,我配置IP核的字长是4096(这是跟我生成的正弦表有关系的),一般资源使用选择AUTO,然后给ROM IP加载生成的正弦表文件(.mif或者.hex格式)。对于正弦表文件,生成的方式有很多种,我使用的是matlab,不了解的小伙伴可以自行百度下了。matlab以及本设计的Verilog代码后续我会上传的。FPGA数字设计开始了,下期再见。