通过上面的介绍相信大家对数字变频已经有了一个较为整体性的认识,下面笔者来对照XILINX的DDS IP核对数字变频技术展开更进一步的说明,做到了理论和实践很好地结合,这样大家再带入Modelsim进行仿真测试就不仅掌握了数字变频的理论知识,也明白了其IP核的使用方法。
查阅XILINX的DDS IP核官方手册pg141-dds-compiler,如图1所示是DDS IP核的简化图,大家可以看到这里和前面数字变频理论基础介绍大同小异,XILINX的DDS IP核内部由累加器、寄存器、查找表等组成。

图1 DDS IP核的简化图
如图2所示是DDS IP核的频率控制字计算说明,这里XILINX也举实例说明频率控制字的计算方法,接着再归纳推导出一般性公式,大家可以看到例子当中fclk是120Mhz的 时钟频率即FPGA内部时钟,相位位宽Bθ(n)是10即正弦查找表是2的10次方,Δθ是十进制的12即每个时钟周期累加器在做12的递增操作。
整个操作合起来看就是FPGA内部以120Mhz的时钟频率,对一个累加器进行每个周期12的自加操作,同时每个周期再把累加器值映射到一张2的10次方正弦查找表中,取出表中的对应数值送到外部DAC中,外部DAC再通过硬件上的运放调理,输出给定幅值的特定频率正弦波,那么问题来了即经过这样一番操作后,输出正弦波的频率到底是多少赫兹呢?这里XILINX官方手册也给出了计算结果:fout=fclk*Δθ/2^Bθ(n)即fout=120*10^6*12/2^10=1.406250Mhz,当然对一般应用场景来说都是已知FPGA内部时钟频率fclk、DDS期望输出频率fout以及正弦查找表的位宽去求频率控制字Δθ,所以变换整理公式即可以得到:Δθ= fout*2^Bθ(n)/ fclk。

图2 DDS IP核的频率控制字计算说明
搞明白DDS IP核频率控制字的计算方法,相信细心的同学在思考过后肯定会抱有一些疑惑其中最典型的应该就是fclk是FPGA内部时钟频率这点好理解,fout是DDS期望输出频率也同样直观易懂,但是公式中的Bθ(n)正弦查找表位宽要怎么去选定呢,这个值的选取有没有什么特定的含义呢?
其实笔者刚接触到DDS IP核的时候在看完XILINX官方手册给出的频率控制字计算公式后同样抱有这样的困惑,当时也在网络上搜索了很多博客资料等,但遗憾的是很少看到真正有价值的文章,如图3所示是Bθ(n)正弦查找表位宽选取的计算说明,这个值的选取将会直接影响到DDS IP核输出的频率分辨率。
如下图所示,这里XILINX官方手册同样也人性化地举了一个例子进行说明,对于fclk为100Mhz的时钟频率系统,要想得到最小输出精度为1hz的正

文章详细介绍了XILINX的DDSIP核在数字变频技术中的应用,包括DDSIP核的结构、频率控制字计算、频率分辨率的确定以及IP核的配置和仿真测试。通过理论与实践的结合,阐述了如何利用DDSIP核生成特定频率的正弦波,并通过Modelsim进行仿真验证。
1633

被折叠的 条评论
为什么被折叠?



