改进的booth编码实例

本文介绍了VLSI中的Booth编码改进方法,通过减少部分积提高乘法器效率。详细讲解了原码、反码、补码之间的转换,并提供两个乘法实例,涉及无符号和补码表示,以加深理解。
摘要由CSDN通过智能技术生成

今天学习VLSI(Very Large Scale Integration,超大规模集成电路)课程,其中涉及到一个波兹编码的知识点,书上(《数字集成电路:电路、系统与设计(第二版) 》)讲的不是很详细。接下来以几个乘法运算为例进行记录。

1、基础知识

1.1 原码、反码、补码

计算机中数据是由01字串组成,存储形式为补码。原码是我们人脑最容易理解的编码。
[+1] = [00000001]原 = [00000001]反
[- 1] = [10000001]原 = [11111110]反

1.1.1 原码–>补码

如果给定一个原码,求其补码。对于正数:原码=反码=补码;
对于负数:原码是符号位(MSB)+其对应正数的原码,反码=原码符号位不变,其余位按位取反,补码=反码+1。
这么说太抽象了,我们来举个例子来说明(以8位表示,实际中的整型int是4字节-32位):

整数 原码 反码 补码
13 0000 1101 0000 1101 0000 1101
23 0001 0111 0001 0111 0001 0111
-23 1001 0111 1110 1000 1110 1001
1.1.2 补码–>原码

同理,给定一个补码,求其原码(整数):对于正数:原码=反码=补码;
对于负数:有两种方式,第一种是1.1.1原码–>补码的逆过程(不推荐),反码=补码-1,原码=反码符号位不变,其余位按位取反;第二种是补码的符号位保持不变,其余位按位取反,加1得到原码。
以第二种为例:

补码 Temp 原码 整数
0001 1010 ~ 0001 1010 26
1111 1000 1000 0111 1000 1000 -8
1110 1001 1001 0110 1001 0111 -23

其余不多讲,请自行baidu。

1.2 改进的波兹编码

该算法建立在波兹编码之上,算法通过减少部分积的产生,加快乘法器的速度。
对于X*Y,首先将Y进行扩展,最高位(MSB)增补两位符号位(如果是unsigned,则补充两位0),最低位(LSB)增补一位0,即 y − 1 = 0 y_{-1}=0 y1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值