一个乘法器大致组成(最简单的真值乘法器,当然不存在真值乘法器,这里以2个正数为例,原码是相对于补码和反码而言)。3个寄存器和一个加法器和逻辑处理电路。
假设我们要计算 4 * 5。他们的原码则是 0100, 0101(注,以4位存贮单元,因为是原码,最高位不代表符号位)。用乘法器大致过程如下:
1. 3个寄存器分别存放乘数0101,被乘数0100和一个部分积(用来暂存部分结果的寄存器),部分积初值为0.
2. 首先判断乘数寄存器(目前值是0101,既为5)的最低位为1.如果为1则将部分积的值通过加法器加上被乘数0100。因此此次步骤结束后,部分积寄存器的内容是0100.
3. 将乘数寄存器右移一位,同时将部分积寄存器也右移一位。同时乘数寄存器最低位溢出丢弃。而部分积寄存器最高位补0(采用算术右移,这里由于是原码,补0即可),部分积寄存器最低位溢出后填充到乘数寄存器。因此,部分积寄存器原来值0100既变成了0010,而最低位的0溢出。乘数寄存器0101,变成了0|010,最低位0溢出,最高位被部分积溢出的0填充。(注 | 前面是被填充的0,后面是溢出后的乘数,后面都采用这种规则)
4.判断乘数寄存器。最低位为0,不做加法操作。直接执行第3步的移位操作。既有了部分积变成了0001,而乘数变成了00|01.
5.判断乘数寄存器的最低位为1,既采取2,3这2步,部分积0001加上被乘数0100变成了0101,移位后部分积变成了0010,而乘数变成了100|0.
6,判断乘数最低位为0,采取同3相同的步骤。既部分积0010变成了0001,而乘数变成了0100.至此所有乘数全部处理完毕。
最终结果为部分积做高位,乘数寄存器做低位的值 00010100,换成10进制为1 * 2^4 + 1 * 2^2 = 20 = 4 * 5.
处理流程:
1.初始化乘数寄存器,被乘数寄存器和部分积寄存器(0)
2.判断乘数寄存器最低位为1.进入2.1步骤,否则进入步骤3
2.1将部分积+被乘数,结果放到部分积
3.部分积和乘数右移一位。部分积最高位采用算术右移规则。低位溢出到乘数最高位,乘数最低位溢出丢弃。
4.判断乘数乘数是否所有位数都处理,处理完毕则结束,返回结果为部分积+乘数(部分积做高位,乘数做低位,不是简单的算术+)。否则返回到步骤2,循环。
数学原理: 4 * 5 = 100 * 101 = 100 *1 * 2^10 + 100 * 0 * 2^1 + 100 * 1 * 2^0
因为硬件无法表示真值的,最为简单的为原码,既添加一个位做符号位,0为正,负为1.在做乘法时候,符号位单独提出,后面2个数值做乘法运算,再将符号位做一次异或操作既可以得到结果的符号位,添加上即可。关于复杂的补码计算器和更复杂的浮点。有机会再学习。
分享到:
相关推荐
在推出AD834之前,ADI公司已经有了大约20年设计模拟乘法器的历史,也推出过其他的模拟乘法器产品,如:AD734四象限模拟乘法器(带宽仅为10MHz)、AD539二象限模拟乘法器(带宽为60MHz)、AD534四象限模拟乘法器(带宽为...
vivado 调用乘法器IP核实现乘法运算
1、通过multisim仿真平台设计一个能计算含符号位的4位乘法器,即内部为一个3×3阵列乘法器,符号位单独处理,如图7所示。 2、输入为两个4位含符号位的补码数,输出结果亦是含符号位的数补码。 图7带求补级的阵列...
乘法器的常规设计是适用“串行移位”和“并行加法”相结合的方法,这种方法并不需要很多器件。然而串行方法毕竟太慢,执行一次乘法的时间至少是执行一次加法时间的n倍,不能满足科学技术对高速乘法所提出的要求。...
计算机组成原理-定点补码阵列乘法器(3x3)实验报告 (2).pdf计算机组成原理-定点补码阵列乘法器(3x3)实验报告 (2).pdf计算机组成原理-定点补码阵列乘法器(3x3)实验报告 (2).pdf计算机组成原理-定点补码阵列乘法器(3x3)...
以5位乘5位不带符号的阵列乘法器(m=n=5)为例(如下图): FA为一位全加器,FA的斜线方向为进位输出,竖线方向为和输出,而所有被加数项的排列和正常的A*B=P乘法过程中的被加数矩阵相同.图中用矩形围成的阵列中最后一行...
实战训练6 16位乘法器芯片设计,硬件乘法器设计,可以参考
1、通过multisim仿真平台,设计一个能计算含符号位的5位阵列乘法器,即内部为一个4×4阵列乘法器,符号位单独处理,如图6所示。 2、输入为两个5位含符号位的原码,输出结果亦是含符号位的原码。 图6 5×5阵列乘法器...
EDA课程设计论文——EDA课程设计论文——乘法器乘法器EDA课程设计论文——乘法器
1 , 32 位硬件乘法器介绍 2 , 32 位硬件乘法器操作 3 , 32 位硬件乘法器寄存器
学生掌握原码一位乘法运算的基本原理,熟练掌握 Logisim 寄存器电路的使用,能在 Logisim 平台中设计实现一个 8*8 位的无符号数乘法器。 实验内容 在 alu.circ 文件中原码一位乘法器子电路中增加控制电路和数据通路...
Verilog 4位乘法器设计实现4位二进制数的乘法运算
4位并行乘法器的电路设计与仿真 1. 实现4位并行乘法器的电路设计; 2. 带异步清零端; 3. 输出为8位; 4. 单个门延迟设为5 ns。
带符号的 乘法器 报告 希望对大家有用,谢谢
计算机组成及汇编原理实验报告-----阵列乘法器器设计实验 (1)掌握乘法器的原理及其设计方法。 (2)熟悉CPLD应用设计及EDA软件的使用。
用VerilogHDL设计实现64bit二进制整数乘法器,底层乘法器使用16*16小位宽乘法器来实现,底层乘法器使用FPGA内部IP实现;经过基于modelsim仿真软件对电路进行功能验证,基于Quartus平台对代码进行综合及综合后仿真,...
在这个问题中,使用Protues来设计一个乘法器,实现两个四位二进制数的相乘,并通过七段数码管分别显示被乘数、乘数和积。 为了实现这个功能,你可以按照以下步骤进行设计和编程: 首先,使用Protues软件创建一个新...
用Verilog实现阵列乘法器,采用的是流水线的做法
乘法是数字信号处理中重要...本文将介绍三种高速乘法器实现原理:阵列乘法器、华莱士(WT)乘法器、布斯华莱士树超前进位乘法器。而且通过FPGA技术实现了这三种乘法器,并对基于以上三种架构的乘法器性能进行了分析比较。