当前位置: 首页 > 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。

http://www.dtcms.com/a/193366.html

相关文章:

  • 轻量级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类加载器深度解析:从原理到实践
  • 通用软件项目全技术栈综合能力评估 - 架构师级挑战
  • 第三章:JavaScript引擎 · 行为之火
  • 黑马程序员c++2024版笔记 第一章
  • vue-quill-editor富文本编辑器
  • 【有理数加法结构体】2022-1-3
  • “禁塑行动·我先行”环保公益项目落地宁夏,共筑绿色生活新篇章
  • HashSet
  • 使用CMake中的configure_file命令自动生成项目版本信息
  • 后端面试题:java中什么是快速失败?
  • 白平衡模块中普朗克曲线拟合硬件实现的猜想
  • 在你窗外闪耀的星星--一维前缀和