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

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.xdnf.cn/news/6321.html

相关文章:

  • 麒麟系统下Tomcat部署Java Web程序(WAR包)及全链路问题排查指南
  • R语言的专业网站top5推荐
  • recvfrom和sendto函数中地址参数的作用
  • Redis学习打卡-Day2-缓存更新策略、主动更新策略、缓存穿透、缓存雪崩、缓存击穿
  • Cocos Creator 3.8.5 构建依赖环境配置文档
  • 从零开始创建一个 Next.js 项目并实现一个 TodoList 示例
  • 计算机网络八股
  • Reactor模型详解与C++实现
  • 云原生数据库排障新挑战:AI驱动与分布式架构深度解析
  • 什么是抖动以及如何使用抖动缓冲区来减少抖动?
  • 深度解析IP静态的工作原理,IP静态的应用场景又哪些?
  • 实现可靠的 WebSocket 连接:心跳与自动重连的最佳实践
  • [c语言日寄]数据结构:栈
  • CSS AI 通义灵码 VSCode插件安装与功能详解
  • SSM项目集成redis、Linux服务器安装redis
  • 在vs code 中无法运行npm并报无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查
  • 【Java ee】关于抓包软件Fiddler Classic的安装与使用
  • 【day01】 Chroma 核心操作流程
  • 基于互联网和LabVIEW的多通道数据采集系统仿真设计
  • Ruby 循环与迭代器
  • 趣味编程:钟表
  • 阿里巴巴 1688 数据接口开发指南:构建自动化商品详情采集系统
  • React 轻量级富文本编辑器推荐(中文版)
  • 左手坐标系、右手坐标系、坐标轴方向
  • 每日Prompt:磨砂玻璃后的虚实对比剪影
  • k8s 1.10.26 一次containerd失败引发kubectl不可用问题
  • Java 开源报表系统全解析:免费工具、企业案例与集成实践
  • 图形语言中间层:重构 AI 编程的未来之路
  • 大语言模型三大演进方向:记忆增强、工具集成与多模态突破
  • 数据结构——例题3