0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

verilog整数四则运算的位宽考量简介

Hack电子 来源:Hack电子 2023-06-06 17:07 次阅读

加、减 使用补码时,加减法可以统一,因而对加减不加区分,对有无符号也不加以区分。

为了不丢失进位,M位+N位时,设M>=N,则结果需要M+1位储存结果

5f8838c6-0448-11ee-90ce-dac502259ad0.png

图源:Xilinx FPGA数字信号处理设计:基础版 (杜勇),下同

当多个数据累加时,显然多一位存储结果,结果能够表示2倍(无符号数);当拥有3-4个操作数时,结果的最大值为4倍的单个操作数表示的最大值,因而增加2bit即可;类似的5-8个操作数,最大为8倍,因而增加3bit即可

5fb74c9c-0448-11ee-90ce-dac502259ad0.png

另一方面,当计算结果能够被约束时,不加证明地,存在一个结论:多个数相加,若结果需要Nbit即可,计算的中间值也只需Nbit

5fdf1146-0448-11ee-90ce-dac502259ad0.png

上面的计算过程若按照6bit运算过程如下,结果是一致的

601ae130-0448-11ee-90ce-dac502259ad0.jpg

2、乘法

对于无符号数,N位*M位将得到N+M位的结果。可以直观的证明,如下图移位相加,N*M将移位(M-1)次,从而至少有(N+M-1)位,若加法出现进位,还需要额外1bit,共(N+M)位

6045c184-0448-11ee-90ce-dac502259ad0.png

有符号数,最高位需要表征符号,同样进行无符号乘法,再确定符号。因而N*M的有符号数,可以看成(N-1)*(M-1)的无符号数相乘,结果需要N+M-2位,还需要增加符号位,因而总共需要N+M-1位。

3、除法

除法更为简单,M/N,对于整数而言,N的绝对值大于等于1,因而商最大和M一样,只需要M位就行。

4、more

当结果位宽不够,会进行截断,带来丢失精度的计算结果。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA设计
    +关注

    关注

    9

    文章

    425

    浏览量

    26273
  • Verilog
    +关注

    关注

    28

    文章

    1326

    浏览量

    109302

原文标题:verilog 整数四则运算的位宽考量

文章出处:【微信号:Hack电子,微信公众号:Hack电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    雾盈FPGA笔记之(二十五)六四则运算计算器(1)整体结构及设计思路

    本帖最后由 西疆木 于 2016-8-29 10:09 编辑 六十进制数四则运算计算器(1)整体结构及其设计思路 雾盈2016-8-26 一、写在之前上周做的是一个小项目—计算器。从这
    发表于 08-29 09:56

    雾盈FPGA笔记之(二十五)六四则运算计算器(1)整体结构及设计思路

    本帖最后由 雾_盈 于 2016-8-30 09:30 编辑 六十进制数四则运算计算器(1)整体结构及其设计思路 雾盈2016-8-26 一、 写在之前上周做的是一个小项目—计算器。从这
    发表于 08-29 11:37

    雾盈FPGA笔记之(二十八)六四则运算计算器(4)数码管消零显示模块

    本帖最后由 雾_盈 于 2016-8-30 09:35 编辑 六四则运算计算器(4)数码管消零模块雾盈 2016-8-27一、写在之前我之前已经发过一篇数码管文章,链接在上面。那一个
    发表于 08-29 11:48

    雾盈FPGA笔记之(二十九)六四则运算计算器(5)数码管显示

    本帖最后由 雾_盈 于 2016-8-30 09:36 编辑 六四则运算计算器(5) 数码管显示雾盈 2016-8-28一、写在前面之前发过一篇关于数码管显示原理的文章,文章链接在上。不了解
    发表于 08-29 11:50

    雾盈FPGA笔记之(三十)六四则运算计算器(6)小算法实现BCD转二进制

    本帖最后由 雾_盈 于 2016-8-30 09:37 编辑 六四则运算计算器(6)小算法实现BCD转二进制雾盈2016-8-27 一、写在前面这一篇文章讲BCD码转二进制,这个模块是为了将
    发表于 08-29 12:01

    雾盈FPGA笔记之(三十二)六四则运算计算器(8)算法实现加减乘除

    四则运算计算器(8)算法实现加减乘除雾盈 2016-8-31 一、写在前面今天来讲计算模块,这个模块在我的计算器设计里不是核心项目,只是个计算功能。一般情况下,童鞋写加减乘除运算都使
    发表于 09-01 09:03

    西门子S7200四则运算指令表分享

    以下是关于西门子S7200四则运算指令表详解:名称指令格式(语句表)功能操作数寻址范围加法指令+I IN1,OUT两个16带符号整数相加,得到一个16带符号
    发表于 12-04 17:10

    利用simulink设计四则运算仿真模型

    整体思路利用simulink设计四则运算仿真模型,借助simulink的代码生成工具生成c语言代码。同时介绍STM32扩展工具的安装,使用。所需工具MATLAB 2018bSTM32硬件支持工具下载连接:(用于配置STM32资源)
    发表于 08-17 09:33

    如何利用simulink去设计一种四则运算仿真模型

    STM32扩展工具怎样去安装并使用呢?如何利用simulink去设计一种四则运算仿真模型?
    发表于 11-19 06:28

    如何去实现基于单片机的四则运算计算器设计

    基于单片机四则运算计算器设计设计要求硬件设计设计要求使用keil c软件基于单片机系统设计一个“简单的计算器”。要求设计的模拟计算器必须从按钮输入0~9组成一个数,再从按钮输入加、减、乘和除运算
    发表于 11-19 08:04

    51单片机LCD1602显示四则混合运算计算器怎么实现?

    51单片机LCD1602显示四则混合运算计算器怎么实现
    发表于 09-27 06:06

    四则运算_实验10

    利用单片机AT89C51芯片实现4*4矩阵键盘扫描输入的四则运算
    发表于 01-12 16:50 4次下载

    Labview之四则运算

    Labview之四则运算,很好的Labview资料,快来下载学习吧。
    发表于 04-19 10:56 0次下载

    使用51单片机设计一个四则运算带括号的计算器设计报告免费下载

    在51单片机上编写烧录十进制四则运算计算机程序,使之具有计算、纠错、显示、括号运算(甚至浮点数运算)的功能。根据实习设计要求,经过分析可得整个实验可以分为两个部分,软件和硬件,要明白硬件结合软件
    发表于 08-13 17:32 5次下载
    使用51单片机设计一个<b class='flag-5'>四则运算</b>带括号的计算器设计报告免费下载

    基于单片机四则运算计算器设计+proteus仿真

    基于单片机四则运算计算器设计设计要求硬件设计设计要求使用keil c软件基于单片机系统设计一个“简单的计算器”。要求设计的模拟计算器必须从按钮输入0~9组成一个数,再从按钮输入加、减、乘和除运算
    发表于 11-12 17:06 7次下载
    基于单片机<b class='flag-5'>四则运算</b>计算器设计+proteus仿真