【HDL系列】乘法器(7)——Booth中的符号位扩展技巧

目录

一、无符号乘法符号位扩展原理

二、有符号位乘法符号位扩展原理

三、Verilog设计


文介绍了基4 Booth乘法器,并且设计了具有基本功能的Booth乘法器,其中在文末留下了几个有待优化的问题,本文将优化“生成部分和”与“符号位扩展”两部分,参考:https://zhuanlan.zhihu.com/p/143802580

本文原理部分意译自《Sign Extension in Booth Multipliers》,需要说明的是其中的表述存在多处歧义,且Booth编码表负数认定有误,请注意鉴别,其中位宽的问题更值得注意。对于有符号数乘法,其实在用如下符号位扩展时无需自动扩展部分和的符号位,这在参考的文档中是致命的误导,但好在可以通过图片获得该符号位扩展算法的启发。

先给出符号位扩展算法如下(算法有效,已验证):

    (1)将每个部分和的最高比特位取反;

    (2)对第一个部分和的最高比特位加“1”;

    (3)在所有部分和的最高位前增加1比特数“1”。

依据以上3条规则,我总结为“取反”“加一”“再加一”

以4*4有符号乘法器为例,A=4‘b1111=-1,B=4‘b0100=4,P=A*B=-4,如下图为使用符号位扩展技巧前后的阵列式:

图1. 符号位扩展技巧

上图中(1),仅仅将每一部分的符号位进行扩展,之后按列相加;而在(2)中使用符号位扩展技巧,将不必对每一个部分和进行符号

  • 10
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 17
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值