一个乘法器大致组成(最简单的真值乘法器,当然不存在真值乘法器,这里以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个数值做乘法运算,再将符号位做一次异或操作既可以得到结果的符号位,添加上即可。关于复杂的补码计算器和更复杂的浮点。有机会再学习。
分享到:
相关推荐
在数字电路设计中,乘法器是至关重要的元件,它能执行两个数字的乘法运算。在现代的FPGA(Field-Programmable Gate Array)设计中,Vivado工具提供了一个强大的平台来实现这样的功能。本文将深入探讨如何利用Vivado...
本项目涉及到了32位无符号乘法器和带符号乘法器的Verilog实现,这两种类型的乘法器在不同的计算场景中有各自的用途。 首先,我们来看标题中的“32位无符号乘法器”。32位指的是参与运算的两个数字的长度,每个数字...
乘法器设计报告 本设计报告关注于带符号的乘法器的设计,目标是设计一个高性能的乘法器电路,满足16*16位有符号乘法器的设计要求。为了实现这个目标,本设计采用了全并行的乘法器电路,设计指标设为传播延时为5ns。...
《深入理解Wallace树形乘法器:8*8位实现与应用》 Wallace树形乘法器,是数字信号处理和计算机体系结构中的一种高效乘法算法,尤其在高性能计算和数字信号处理器(DSP)中有着广泛的应用。本文将深入探讨8*8位的...
在推出AD834之前,ADI公司已经有了大约20年设计模拟乘法器的历史,也推出过其他的模拟乘法器产品,如:AD734四象限模拟乘法器(带宽仅为10MHz)、AD539二象限模拟乘法器(带宽为60MHz)、AD534四象限模拟乘法器(带宽为...
"阵列乘法器设计实验" 阵列乘法器是一种常用的数字电路设计,在计算机组成及汇编原理实验中,设计一个 4x4 位阵列乘法器,以验证阵列乘法的计算原理。该实验的主要目的是掌握乘法器的原理及其设计方法,并熟悉 CPLD...
在数字电路设计中,乘法器是至关重要的元件,它能执行两个二进制数的乘法运算。本文将深入探讨如何使用硬件描述语言Verilog实现乘法器,包括有符号和无符号乘法器的设计,并介绍如何进行仿真测试。 首先,让我们...
本实战训练的主题是设计一个16位的乘法器芯片,这是一项核心的数字逻辑设计任务,因为它在各种计算和数据处理应用中都起着关键作用。 1. **乘法器的基本原理**: 乘法器是数字电路中的基本组件,用于执行两个二...
在数字电路设计中,乘法器是至关重要的元件,它能执行两个二进制数的乘法运算。本文将深入探讨如何使用Verilog这一硬件描述语言(HDL)来实现一个16位并行乘法器。Verilog是一种广泛使用的编程语言,用于描述和模拟...
原码一位乘法器的设计原理课程设计 原码一位乘法器是计算机组成原理课程设计的重要组成部分,它们之间的相乘结果的符号为相乘两数符号的异或值,而数值则为两数绝对值之积。本文将讲解原码一位乘法器的设计原理和...
1、通过multisim仿真平台设计一个能计算含符号位的4位乘法器,即内部为一个3×3阵列乘法器,符号位单独处理,如图7所示。 2、输入为两个4位含符号位的补码数,输出结果亦是含符号位的数补码。 图7带求补级的阵列...
在数字电路设计中,乘法器是至关重要的元件,它能执行数字信号的乘法运算。Altera乘法器IP核是一种预配置的硬件模块,专门设计用于FPGA(Field Programmable Gate Array)器件,提供了高效的乘法操作。在本教程中,...
旋转因子乘法器VHDL代码 旋转因子乘法器是数字信号处理领域中一种常用的算法,用于实现复数乘法运算。该算法的核心思想是使用旋转因子来将复数乘法运算转换为实数乘法运算,从而降低计算复杂度。 在VHDL语言中实现...
CSD编码乘法器在FPGA上的实现可以显著降低硬件复杂度,因为CSD编码可以简化乘法操作,减少乘法器所需的AND和XOR门数量。此外,由于FPGA的并行处理能力,CSD乘法器在FPGA上的运行速度通常比软件模拟快得多。 在实际...
"4*4乘法器的设计" 本文主要介绍了 4*4 乘法器的设计,使用 C 语言实现简单易懂的乘法器设计。该设计适合硬件和软件结合的人。 乘法器是数字电路中的一种基本逻辑电路,用于实现数字信号的乘法运算。乘法器的设计...
MSP430F5438单片机搭载了一个32位硬件乘法器,这个特性是其核心优势之一,因为它可以高效执行乘法运算,尤其适用于需要大量数学计算的应用场景,比如数字信号处理(DSP)任务。 在介绍32位硬件乘法器之前,我们需要...
【8位乘法器设计概述】 8位乘法器是一种数字逻辑电路,其主要功能是接收两个8位二进制数作为输入,并产生它们的乘积。在数字系统设计中,乘法操作是基础运算之一,广泛应用于计算、数据处理和控制应用中。基于...
在数字电路设计中,阵列乘法器是一种用于高效执行两个二进制数乘法的硬件结构。在本文中,我们将深入探讨如何使用Verilog硬件描述语言(HDL)来实现这种流水线式的阵列乘法器。 Verilog是集成电路设计中广泛使用的...