Vivado DDS IP协议的一些思考。

        由于项目需求,需要一个高精度的DDS/NCO模块,现在的DDS基本上都是基于查找表形成的,在高精度的要求下,比如频率控制字高达32位甚至48位的情况下,ROM的开销是远远不能接受的比如在32位幅度在10位的情况下,ROM的开销高达2^(32+10),其开销太大。

        由于项目需求笔者仔细阅读了Xilinx提供的DDS IP手册看能否得到相应的启发,在VIVADO的IP库中,相位精度最高可达48位,笔者设置了精度12位和48位的IP,并分别通过综合和布局布线去考证其资源利用率,对应的结果如下所示:

        48位:

       12位:

笔者发现在LUT查找表和DFF触发器的使用上差别较大,其他差别较小,多出来的IO就是多出来的相位位宽,但是有一点,Xilinx IP形成的DDS在资源上只占用了FPGA很小的一部分,所以其必然有某种算法减少ROM或RAM的使用数量,所以DDS的手册是一个突破口;

        Xilinx IP手册,在高精度的相位情况下,也就是相位位宽较大的情况下,IP的结构是怎么样的是如何工作的,通过何种方法去减小LUT资源的使用。

        Xilinx IP在使用查找表比较大的情况下会自动使用1/4对称法,实现内存资源最小化

        在标准模式下计算出来的相位增量可能是小数,而在FPGA中需要对相位进行截断取整,存在相位误差,对噪声要求较高的场合,可以使用8处的噪声整形配置来弥补,使用相位抖动(Phase Dithering)或者泰勒级数纠正(Taylor Series Correct)来补偿相位误差;

        综上可以看到在Vivado的DDS IP中实现位宽比价大时使用了如下的方法:

        波形对称减少位宽,高位截取压缩Rom,泰勒修正对截取后的幅值相位输出进行修正。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值