【定点数运算】定点的乘法和加法

2023-11-10

目录

 

定点的介绍

定点的优势

定点数的乘法和加法

乘法

加法


 

定点的介绍

在之前的博客中介绍了定点数和浮点数,想要了解的可以前往以下链接:

【定点和浮点】定点数与浮点数的解释

定点的优势

使用定点表示有什么优势?为什么不简单地将所有值规范化为整数范围并处理整数。将所有值规范化为整数,这会产生非常不可读的代码和文档。在观察某些代码时,定点通常更加方便。例如,如果我正在查看源代码,如下代码所示:

c0 = fixbv(0.0032, min=-1, max=1, res=2**-15)
c1 = fixbv(-0.012, min=-1, max=1, res=2**-15)

可以很容易地将其与滤波器的系数联系起来,但是如果只看到整数:

c0 = intbv(0x0069, min=-2**15, max=2**15)
c1 = intbv(-0x0189, min=-2**15, max=2**15)

需要在看其他信息。仅整数很难理解这些值要表示的内容。

除了表示优势之外,用于处理舍入和溢出的情况时,在定点数据中也很常见。

定点数的乘法和加法

定点数的乘法操作和普通的十进制数相乘可以用很类似的方法——列式子计算;同理定点数的加法也是类似。

乘法

在计算定点数的乘法时,只要将数值转换成二进制,可以暂时先忽略小数点的存在,因为之前说过,定点数之所以叫定点数,就是因为它的小数点位置是固定的,因此,可以先做计算再定小数点的位置。

下面是一个示例,以两个数分别为 6.5625(一共8位,其中3位整数部分,4位小数部分)和 4.25 (一共8位,其中5位整数部分,2位小数部分)两个数的相乘。

0110.1001  == 6.5625
000100.01  == 4.25
          01101001  
        x 00010001  
      ------------
          01101001
         00000000 
        00000000  
       00000000  
      01101001    
     00000000      
    00000000
   00000000 
 --------------------
  x000011011111001   ==  0000011011.111001  ==  27.890625
 

乘积结果所需的位数是两个数值的位数之和。通常,乘法和加法的结果要调整大小并减少位数。在定点中,这具有直观的意义,因为较小的小数位被丢弃,并且值根据丢弃的位四舍五入。这样可以减少数据的位宽,以达到减少位宽的作用。

加法

加法稍微复杂一些,因为在做加法之前需要对齐小数点。使用与乘法例子中相同的数值:

0110.1001  == 6.5625
000100.01  == 4.25
            0110.1001  
        + 000100.01  
        -------------
          001010.1101  ==  10.8125

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【定点数运算】定点的乘法和加法 的相关文章

  • 随机信号分析实验(matlab仿真实验)

    一 实验内容 1 产生均匀分布的随机数 高斯分布的随机数和其他分布 瑞利 卡方 的随机数及画图 对生成的随机数进行分析 2 检验 1 中产生的均匀分布 高斯分布的数学期望和方差 并画出各种分布的随机变量的概率密度直方图 3 两组及多组独立的
  • Xilinx平台SRIO介绍(二)SRIO IP核基础知识

    使用SRIO IP核必须掌握的基础知识 理解了这篇 剩下的只是代码罢了 汇总篇 Xilinx平台SRIO介绍 汇总篇 目录 前言 SRIO RapidIO GT 有什么关系
  • 硬件设计---了解电源篇

    1 概述 在高速电路设计中一块单板上常存在多种电源 3 3V 1 8V 1 2V 1 0V 0 9V 0 75V等 有时光是对FPGA供电就需要五六种电源 为了便于使用往往用户只需要提供一种或几种电源 然后经过板上电源模块转换到各个目标电源
  • 用Vscode编辑verilog代码配置

    这篇教程感觉很详细了 我这里分享一下vscode和插件的安装包链接 都是官网下载的 放心食用 用VSCode编辑verilog代码 iverilog编译 自动例化 自动补全 自动格式化等常用插件 链接 https pan baidu com
  • 【Xilinx DDR3 MIG】Xilinx FPGA DDR3读写实验相关用户接口引脚解释

    目录 DDR3读写实验 实验框图 时钟模块 DDR3读写及LED指示模块 MIG IP核 用户接口解释
  • FPGA(3)验证数字逻辑(与门、与非门、二选一数据选择器、2-4译码器、半加器、全加器)

    目录 一 验证与门 二 验证与非门 三 验证二选一数据选择器 四 验证2 4译码器 五 验证半加器 六 验证全加器 0 初始化定义 1 第一个半加器 2 第二个半加器 3 得到最终进位Co 代码 0决定与 1决定或 一 验证与门 只要有一个
  • 采用Vivado 配置xilinx GTX的SATA设计

    从Vivado开始 配置GTX的时候 多了一个SATA协议支持 但有些小地方还需要自己另外设置 整理了一下 分享给大家 首先打开Transceivers wizard 打开页签 线速率和参考时钟选择 在协议里面选择SATA2或者SATA3
  • verilog 基本语法 {}大括号的使用

    的基本使用是两个 一个是拼接 一个是复制 下面列举了几种常见用法 基本用法 表示拼接 第一位 第二位 表示复制 4 a 等同于 a a a a 所以 13 1 b1 就表示将13个1拼接起来 即13 b1111111111111 拼接语法详
  • libero-soc许可证申请和环境配置

    环境 64位机 在哪台电脑上安装libero soc 就用哪台电脑申请许可证 1 注册 https www microsemi co 在官网注册 之后申请的许可证会发到注册时填写的邮箱 2 申请许可证 https www microsemi
  • 数据密集型应用系统设计(2)

    文章目录 数据模型与查询语言 NoSQL 数据库历史 关系数据库与文档数据库现状 数据查询语言 图状数据模型 小结 数据模型与查询语言 大多数应用程序是通过一层层叠加数据模型来构建的 例如 应用程序开发人员观测现实世界 通过对象或者数据结构
  • VHDL——连接开关和LED

    我有 Xilinx Spartan6 和下一个 VHDL 代码 library ieee use ieee std logic 1164 all use ieee numeric std all entity Switches Leds i
  • 异步FIFO设计之格雷码

    目录 二进制转格雷码 格雷码转二进制 相邻的格雷码只有1bit的差异 因此格雷码常常用于异步fifo设计中 保证afifo的读地址 或写地址 被写时钟 或读时钟 采样时最多只有1bit发生跳变 在不考虑路径延时的情况下 因为源数据 读写地址
  • 使用 VHDL 实例化 FPGA 中的 RAM

    我试图按照中的指导实现双端口 RAM这篇优秀的博文 http danstrother com 2010 09 11 inferring rams in fpgas 然而 ModelSim 在编译时给出以下警告 Warning fifo ra
  • VHDL门控时钟如何避免

    我收到了避免使用门控时钟的建议 因为它可能会导致松弛和时序限制问题 但我想问一下我可以认为什么是门控时钟 例如 此代码对时钟进行门控 因为 StopCount 对它进行门控 process ModuleCLK begin if rising
  • Linux驱动程序DMA传输到PC作为主机的PCIe卡

    我正在开发一个 DMA 例程 将数据从 PC 传输到 PCIe 卡上的 FPGA 我阅读了 DMA API txt 和 LDD3 ch 15 详细信息 但是 我不知道如何从 PC 到 PCIe 卡上的一致 iomem 块进行 DMA 传输
  • PyOpenCL 中的时间测量

    我正在 FPGA 和 GPU 中使用 PyOpenCL 运行内核 为了测量执行所需的时间 我使用 t1 time event mykernel queue c width c height block size block size d c
  • UIO 设备上的 mmap EINVAL 错误

    在尝试使用 UIO 而不是直接映射后 我在 Xilinx Zynq 上映射物理内存时遇到问题 dev mem 虽然计划是以普通用户身份运行应用程序 而不是root这仍在运行root 显然 第一个映射成功 其余映射到同一个文件描述符12 de
  • 模拟器和合成器之间初始化状态机的差异

    我的问题是关于合成状态机中使用的第一个状态 我正在使用莱迪思 iCE40 FPGA 用于仿真的 EDA Playground 和用于综合的莱迪思 Diamond Programmer 在下面的示例中 我生成一系列信号 该示例仅显示引用状态机
  • VHDL 中的 BRAM_INIT

    我正在模拟基于处理器的设计 其中程序存储器内容保存在 BRAM 中 我正在使用 VHDL 推断 BRAM 实现程序存储器 我试图避免使用 CoreGen 因为我想保持设计的可移植性 最终该设计将进入 FPGA 我想看看是否有一种方法可以使用
  • 从 OpenCV 代码到 FPGA 代码的转换是否比 Matlab 代码更容易? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想做一个关于图像处理的项目 我想知道如果我想在FPGA上实现这个项目 我应该在第一阶段选择Matla

随机推荐

  • 几款主流好用的富文本编辑器(所见即所得常用编辑器)介绍

    富文本编辑器 富文本编辑器 Rich Text Editor RTE 是一种可内嵌于浏览器 所见即所得的文本编辑器 它提供类似于Office Word 的编辑功能 方便那些不太懂HTML用户使用 富文本编辑器的应用非常广泛 它的历史与图文网
  • CMOS图像传感器OV7725数据手册

    下载地址 阿里云盘分享https www aliyundrive com s RuxT3cpHpiK
  • windwos、linux在虚拟机中共享文件

    因为工作的关系 目前的工作机器是ubuntu桌面版 因为有时需要用到windows下的软件 因此装了个虚拟机virtualbox 在里面装个了个windows 为了能够让两个机器相互访问 需要设置一个共享文件夹 在网上找了一圈 基本上都是w
  • 【char类型转换】

    文章目录 前言 经典例题 典例1 变式1 典例2 总结 前言 今天我们一起来了解一下关于整形提升和进制转换的问题 经典例题 典例1 计算下面程序打印的结果 include
  • 牛客网算法教程-中级篇-第一章

    文章目录 学习目标 学习内容 学习时间 学习产出 1 旋转词 模拟 2 旋转矩阵 模拟 3 数轴覆盖 贪心 4 1 完整字符串1 括号字符串的有效性 栈 4 2 完整字符串2 缺失的括号 栈 4 3 完整字符串3 最长合法括号子串 栈 5
  • vue项目中使用http-proxy-middleware解决前端开发中跨域的问题

    使用方式 1 安装 npm install http proxy middleware save dev 2 使用 一般的使用 新建js文件 在此小编命名为proxy js const proxy require http proxy mi
  • rust输入输出

    一 获取命令行参数 很多语言获取命令行参数 是通过主函数的参数获得的 但Rust主函数是个无参数函数 命令行参数只能通过std env args 函数获得 std env args 返回一个迭代器 其中包含了程序名和后面所有参数 实例 fn
  • android 弹出选择框,简单通用弹出选择框

    LinearLayout ll LinearLayout getActivity findViewById R id log sel qyport ll setOnClickListener new View OnClickListener
  • windows输出文件的树状结构

    场景 今天突然看到同事的项目里面有一个文件 类型这样 项目的一个树状图 以前也看见过但是从来没有探究过 今天来看一下 描述 提示 需要windows 系统 其他系统需要安装tree windows系统下 我们可以打开我们的一个项目 在红框内
  • 传奇DBC数据库变量详细解释传奇DB文件详解

    传奇DBC数据DB文件详解 MagicDB MagicDB 是你所修炼的法术和各种技能 1 MagID 技能代号 2 MagName 技能名称 3 Effect Type 效果类型 使用技能时角色的动作效果 4 Effect 效果 技能产生
  • 【C++|排序算法】冒泡、快排、归并、堆排序算法模版

    目录 简介 冒泡排序 快速排序 归并排序 堆排序 结语 简介 Hello 非常感谢您阅读海轰的文章 倘若文中有错误的地方 欢迎您指出 昵称 海轰 标签 程序猿 C 选手 学生 简介 因C语言结识编程 随后转入计算机专业 获得过国家奖学金 有
  • 计算机操作系统--基础篇

    操作系统的演进 多道程序设计 早期批处理系统只能一次处理一个任务 多道程序设计使得批处理系统可以一次处理多个任务 多道程序设计是指在计算机内存中同时存放多个程序 多道程序在计算机的管理程序之下相互穿插运行 多道程序的管理是操作系统的重要功能
  • Security-Onion-Solutions安全洋葱安装方法

    Security Onion Solutions安全洋葱安装方法 securityonion安全洋葱介绍 安全洋葱是一款开源的入侵检测系统 集成了日志分析 流量分析安全告警如 Grafana TheHive Playbook Fleet O
  • 怎么访问服务器网站根目录,如何访问网站根目录

    如何访问网站根目录 内容精选 换一换 根据 互联网信息服务管理办法 非经营性互联网信息服务备案管理办法 等法律法规的规定 国家对经营性互联网信息服务实行许可制度 对非经营性互联网信息服务实行备案制度 未取得许可或者未履行备案手续 不得指向中
  • labview串口,网口,DSC可用OPC通讯链接三菱欧姆龙西门子等PLC

    labview串口 网口 DSC可用OPC通讯链接三菱欧姆龙西门子等PLC 需要的取 可帮助使用 通过NI OPC控制三菱 欧姆龙西门子等各种型号PLC ID 4450645066968702
  • 余光中:书斋·书灾

    本文转载至 http www yuwenonline com Item 1577 aspx 物以类聚 我的朋友大半也是书呆了 很少有朋友约我去户外恋爱春天 大半的时间 我总是与书为伍 大半的时间 总是把自己关在六叠之上 四壁之中 制造氮气
  • 在阿里6年,但今年这情况,劝大家还是多一手准备吧

    大家期待的经济繁荣 没有来 往年的金三银四 跳槽涨薪 也没有来 来了的 是大公司裁员的消息频频爆出 来了的 是ChatGPT 第一批受到影响的人已经失业了 而且你有没有发现 它平时没什么声音 但每次一发布更新 就是一个重磅炸弹 真的 不知道
  • Unity3D独立游戏开发日记(一):动态生成树木

    目前写的独立游戏是一个沙盒类型的游戏 游戏DEMO视频如下 提到沙盒类型的游戏 就有人给出了这样的定义 游戏世界离现实世界越近 自由度 随机度越高才叫沙盒游戏 所谓自由度 就是你在游戏里想干啥就干啥 想开车就开车 想走路就走路 想盖房子就盖
  • QT release版虚拟键盘无反应

    1 在main Cpp 加入 int main int argc char argv qputenv QT IM MODULE QByteArray qtvirtualkeyboard 虚拟键盘调用 QApplication a argc
  • 【定点数运算】定点的乘法和加法

    目录 定点的介绍 定点的优势 定点数的乘法和加法 乘法 加法 定点的介绍 在之前的博客中介绍了定点数和浮点数 想要了解的可以前往以下链接 定点和浮点 定点数与浮点数的解释 定点的优势 使用定点表示有什么优势 为什么不简单地将所有值规范化为整