当前位置: 首页 > news >正文

75.xilinx复数乘法器IP核调试

(8+3*j)*(5+7j)    =  9+35j

正确的是 19+71j

分析出现的原因:(a+bj)* (c+dj) = (ac-bd)+j(ad+bc)

其中a,b,c,d都是16bit的有符号数,乘积的结果为保证不溢出需要32bit存储,最终的复数乘法结果是两个32bit数据的和差,为保证数据不溢出需要33bit存储,但上面IP核配置中选择的是32bit导致最终的结果会产生截位,有效数据存放在低bit,比如上述数据输出需要66bit存储,但ip核是AXI总线协议,数据是按字节来对齐的,因此输出数据位宽为80bit,高40bit为虚部(其中[72:40]为有效的33bit),低40bit为实部(其中[32:0]为有效的33bit),当选择的数据位宽不足33bit时会产生截位,如上面的选择输出32bit,截取时会截取数据的[32:1]bit到输出端口(截取高位),这样就会使得输出的数据相当于/2,并且上述复数运算结果中bit0刚好是1,进而导致数据输出运算错误。正确的结果为(9*2+1)+j(35*2+1)=19+71j与理论一致。

注意:输入数据为{虚部,实部}

当输出位宽选择不足进行截取的时候取的是高bit位

这与普通的加减法有所不同,普通加减法当输出位宽小于所需位宽时会将低bit输出,舍弃高bit。

相关文章:

  • 轻量级Web画板Paint Board如何本地部署与随时随地在线绘画分享
  • Linux系统中部署java服务(docker)
  • C盘清理秘籍:快速提升系统性能
  • 数据库设计
  • 溴化铬市场报告​
  • 设计模式(基于Python3)
  • 深度学习让鱼与熊掌兼得
  • 填报表之自动计算
  • 力扣-236.二叉树的最近公共祖先
  • 【Java Web】速通JSON
  • 【Fifty Project - D26】
  • Python函数返回值的艺术:为何True/False是更优实践及例外情况分析
  • Da14531蓝牙特征值1读没有回调解决
  • DataHub:现代化元数据管理的核心平台与应用实践
  • 数据结构与算法-线性表-单链表(Linked List)
  • 【免费分享】虚拟机VM(适用于 Windows)17.6.3
  • 一文讲透 Vue3 + Three.js 材质属性之皮革篇【扫盲篇】
  • JAVA:多线程使用哈希表
  • Java类加载器深度解析:从原理到实践
  • 通用软件项目全技术栈综合能力评估 - 架构师级挑战
  • 北方将现今年首场大范围高温天气,山西河南山东陕西局地可超40℃
  • 政企共同发力:多地密集部署外贸企业抢抓90天政策窗口期
  • 阿里上季度营收增7%:淘天营收创新高,AI产品营收连续七个季度三位数增长
  • 上海“城市文明开放麦”全城总动员,樊振东担任首位上海城市文明大使
  • 遭“特朗普关税”冲击,韩国今年经济增长预期“腰斩”降至0.8%
  • 财政部党组召开2025年巡视工作会议暨第一轮巡视动员部署会