【BUG记录】Xilinx复数乘法器、乘法器IP核,在modelsim仿真时,出现一个时钟内先算错,再算对的情况

问题描述

在vivado中使用复数乘法器IP核时,使用modelsim仿真看计算结果,发现了如下的情况:
在这里插入图片描述
图中,clk是IP核的工作时钟,result是乘法的计算结果,×代表计算结果不对,√表示计算结果正确,valid是IP核产生的输出结果有效信号(高有效)。
在一个时钟内,输出的结果先是算不对,然后又算对了。而我期望的波形如下:
在这里插入图片描述

问题分析

  1. 如果是输入的两个乘数没有按照自己想要的顺序对齐,即使算错,也应该是以时钟为单位错,不能是在一个时钟内先错后对。
    通过更改代码,使得两个乘数串位,发现上述问题依旧存在,故排除该问题。
  2. 怀疑是乘法器配置的问题,有可能影响的只有signed usigned选项。
    排列组合输入数据的signed usigned选项,上述问题依旧存在,排除该问题。
  3. 怀疑是输入数据的问题,目前输入的两个乘数,一个是1-48的递增,一个是5位数的负数,把两个乘数都换成1-48的递增,上述问题解决了,但是没懂,为啥负数就会导致计算错误。
  4. 把乘法器使用的资源从dsp48改为lut,计算结果正确。
    反复确认操作4,发现,使用lut时,计算结果就正确,使用dsp48时,计算结果就会先错再对。

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值