详解乘法器的电路实现

  • 算法描述
  • 电路实现
  • 示例
  • 优化

算法描述

从4位二进制数乘法中寻找灵感

关键词 被乘数 乘数 乘积寄存器


详解乘法器的电路实现_第1张图片
顺序乘法器算法示意图.png

N位乘法器实现算法

  1. 测试乘数最低位
    如果乘数最低位为0,则直接跳转到第2步;
    如果乘数最低位为1,则执行第1a步;
    (1a) 取出乘积寄存器的值,加上被乘数,将结果写入乘积寄存器;
  2. 将被乘数左移1位
  3. 将乘数右移1位
  4. 循环结束测试:是否第N次执行了
    如果是,则执行结束;否则,执行步骤1;

电路实现

一个加法器、两个移位电路、寄存器(乘积寄存器、被乘数寄存器、乘数寄存器、控制测试单元)


详解乘法器的电路实现_第2张图片
顺序乘法器电路示意图.png

示例

参照顺序乘法器的算法实现,写出0010_2乘以0011_2执行过程。

详解乘法器的电路实现_第3张图片
0010乘以0011_优化前执行过程.png

优化

加法和移位并行

注意观察:下一个CPU周期上升沿来临前和来临时,寄存器内容的变化
优化前


详解乘法器的电路实现_第4张图片
![顺序乘法器算法优化前流程图.jpg](https://upload-images.jianshu.io/upload_images/7066251-fdf484642d38ede9.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

优化后


详解乘法器的电路实现_第5张图片
顺序乘法器算法优化1后流程图.jpg

减少不必要的硬件资源

  1. 查看下优化前的硬件浪费点,和优化后的改进方案


    减少硬件资源的乘法器优化方案图.png
  2. 优化后的电路实现图


    详解乘法器的电路实现_第6张图片
    顺序乘法寄存器的优化2_减少不必要的硬件资源.jpg
  3. 优化后的算法实现
    步骤1 检测乘积寄存器的最低位
    如果最低位为0,则跳转到步骤2开始执行;
    如果最低位为1,则执行步骤1a
    步骤1a:将乘数寄存器的高4位取出,跟被乘数相加后的结果,保存到乘数寄存器中;
    步骤2 将乘积寄存器右移1位
    步骤3 检查是否第N次执行了
    如果是,则结束执行;否则,跳转到第一步继续执行;

示例

参照顺序乘法器的减少硬件算法实现,写出0010_2乘以0011_2执行过程。

详解乘法器的电路实现_第7张图片
0010乘以0011_减少硬件资源优化后执行过程.png

移位电路实现图

详解乘法器的电路实现_第8张图片
移位电路实现图.jpg

你可能感兴趣的:(详解乘法器的电路实现)