美文网首页计算机组成原理
402 - 乘法器的硬件实现

402 - 乘法器的硬件实现

作者: 航航大魔王 | 来源:发表于2017-07-28 23:36 被阅读49次
    图1

    如图所示,以实现两个4bit的二进制数相乘为例。

    需要4个硬件部件(图中已编号):

    ①:一个8位寄存器,用来保存被乘数(根据机算乘法,每与乘数的一位相乘,就要向前移动一位,所以4位数相乘,要给8位来供被乘数移动);

    附加功能:左移,即每与乘数的一位相乘,就向前移动一位供下一轮与乘数的下一位相乘,这一部操作是为了使被乘数能与中间结果正确 。

    ②:同样的一个8位寄存器,用来保存乘积(中间结果+最终结果,最后一次运算时产生最终结果);

    ③:一个8位加法运算器,供每一次将中间结果与本次运算结果相加;

    ④:一个4位寄存器,用来保存乘数。

    附加功能:右移,最低位与控制逻辑相连。每与被乘数相乘一次,就向后移动一位供下一轮与乘数的下一位相乘。

    ⑤:一个控制逻辑部件,用来指挥每个部件的运行。

    附加功能:

    • 控制被乘数寄存器的左移
    • 控制乘数寄存器的右移
    • 判断是否进行下一轮计算(当前乘积寄存器中的结果是否为最终结果)

    基本运算步骤:

    图2

    接下来进行一次简单的二进制乘法运算:1000 x 1001

    图3

    ①.判断乘数最低位是否为1,是,进入③;
    ②.将被乘数左移1位;
    ③.乘数与被乘数在加法器中相加;
    ④.加法器结果再与乘积寄存器相加;
    ⑤.判断是否为第4次循环,是,直接输出结果;否,乘数寄存器右移1位,接着重复步骤①-⑤。

    图4 - 步骤②,第一轮过后,被乘数左移(注意看乘积寄存器的值,此时控制逻辑判断为非第四轮相乘,接着进行第二轮) 图5 - 步骤⑤,第一轮过后,乘数右移,此后第二、三、四轮重复之前操作

    那么第四轮运算结束之后,乘数寄存器4位数全部置0,被乘数被移动到被乘数寄存器的高4位,乘积寄存器此时保存的是最终结果(如图6)。

    图6

    相关文章

      网友评论

        本文标题:402 - 乘法器的硬件实现

        本文链接:https://www.haomeiwen.com/subject/sxpflxtx.html