美文网首页
第四讲 乘法器和除法器(Multiplier and Divid

第四讲 乘法器和除法器(Multiplier and Divid

作者: Lynn_4f26 | 来源:发表于2019-12-04 04:19 被阅读0次

内容要点:乘法运算,乘法器的实现,除法运算,除法器的实现

乘法器的实现

  • Multiplicand (8-bit,Shift left),Product(8-bit,Write),8-bit Adder,Multiplier(4-bit,Shift right),Control test

  • N位乘法器的工作流程图:

    • st=>start: 开始
      op1=>operation: 1a.将”Multiplicand“和”Product“的内容相加,结果放入”Product“ //加法:1*T
      op2=>operation: 2.将”Multiplicand“左移一位 //左移:1*T
      op3=>operation: 3.将”Multiplier“右移一位 //右移:1*T
      cond1=>condition: 1.检查"Multiplier"的最低位是否=1
      cond2=>condition: 4.检查是否已到第N次循环/是否循环了n次?
      e=>end
      
      st->cond1(yes)->op1->op2->op3->cond2
      cond1(no)->op2
      cond2(no)->cond1
      cond2(yes)->e
      
      
      
      
  • 乘法器的优化

    • 优化一:加法移位并行
      • 最低位=1:1a,2,3同时执行
      • 最低位=0:2,3同时执行,不执行1a
      • 每次循环只需要1*T,性能优化为原来的3倍
    • 优化二:减少不必要的硬件资源
      • 浪费一:“Multiplicand”8位宽带左移,但其中的有效数字始终只有4位
        • 优化:“Multiplicand”缩减为4位,且取消左移功能
      • 浪费二:”Multiplier“4位宽带右移,但其中有效数字每周期减少1位
        • 优化:取消”Mutiliper“,乘数始终置于”Product“低四位,此时”Control test“将连接在”Product“最低位
      • 浪费三:”Product“8位宽但初始时有效数字只有4位,且每周期增加1位
        • 优化:”Product“增加右移功能,乘积初始值置于其中高4位,随着运算过程不断右移
      • 浪费四:”Adder“8位宽,但参与运算的有效数字实际只有4位
        • 优化:”Adder“缩减为4位宽,”Product“只有高4位参与运算
      • 推广到N位乘法器:
        • Multiplicand (N-bit),Product(2N-bit,Write,Shift right),N-bit Adder,Control test

除法器的实现

  • Dividend = Quotient * Divisor + Remainder

  • 32-bit 除法器的工作流程图

    • st=>start: 开始
      op1=>operation: 1. 余数 = 余数 - 除数
      op2a=>operation: 2a. 商左移1位,新的最右位设为1
      op2b=>operation: 2b. 回退第一步操作;商左移1位,新的最右位设为0
      op3=>operation: 3.除数右移1位
      cond1=>condition: 2.检查余数<0?
      cond2=>condition: 4.第33轮循环/是否重复了33次循环?
      e=>end
      
      st->op1->cond1
      cond1(no)->op2a->op3
      cond1(yes)->op2b->op3
      op3->cond2
      cond2(no)->op1
      cond2(yes)->e
      
      
  • 4-bit 除法器的实现示例

    • Remainder(8-bit, write), Divisor(8-bit, shift right), Quotient(4-bit, Shift left), ALU(8-bit, support for both addition and substraction), Control tset
  • 32-bit 除法器的面积优化

    • ”Divisor“缩小为32-bit,无需支持移位
      • 原先:一个64-bit的”Divisor“寄存器,带右移功能
    • 取消"Quotient"寄存器
      • 原先:一个32-bit的”Quotient“寄存器,带左移功能
    • ALU缩小为32-bit
      • 原先:一个64-bit的ALU,支持加法和减法运算
    • ”Remainder“寄存器只有高32-bit参与加减法运算,需支持左移和右移,商从右端逐位移入余数寄存器,运算结束时,商占据”Remainder“的低32-bit
      • 原先:一个64位的"Remainder"寄存器

Quiz

  1. 对于第一班乘法器,控制逻辑的作用是:
    • 控制何时将新值写入积寄存器
    • 控制何时对被乘数寄存器进行移位
    • 控制何时对乘数寄存器进行移位
  2. 以4-bit的第一版除法器为例,对于二进制的0111/0010,当第2次循环结束时,商寄存器、除数寄存器和余数寄存器的值是:0000,0000 1000,0000 0111
    • 初始化:将8-bit被除数放入”Remainder“寄存器,将4-bit除数放入”Divisor“寄存器的高4位,将4-bit”Quotient“寄存器置为零

相关文章

  • 第四讲 乘法器和除法器(Multiplier and Divid

    内容要点:乘法运算,乘法器的实现,除法运算,除法器的实现 乘法器的实现 Multiplicand (8-bit,S...

  • 模拟乘法器和除法运算电路

    模拟乘法器可以实现乘法运算,利用模拟乘法器作为集成运放的反馈电路可以实现除法运算。模拟乘法器的表示图与除法运算电路如下:

  • P2P接口Booth乘法器设计

    本文首发于个人博客 描述 Booth乘法器是一种使用移位实现的乘法器,实现过程如下,对于乘法:扩展A的位数为n+1...

  • ROM乘法器

    基本算法 ROM乘法器的算法比较简单,即使用一个ROM保存乘法的结果,在需要运算的时候直接到相应的地址去查表即可。...

  • 简单的乘法器

    结果如下: 两个16位的数相乘,并以十进制、十六进制、二进制显示成绩

  • 【logisim】快速加法器、阵列乘法器

    一、四位先行进位(74182) PS:P、G是生成函数和传递函数而非计算位。封装电路的作用是:使用逻辑推导计算出进...

  • 乘法器简介,除法引入

    之前说过一点加法器的内容,大致讲了几个简单的类型的加法器,好像没有说加法器可以同时做减法的,做减法的思路其实就是变...

  • 403 - 乘法器的优化

    优化1:两个关键点: 每个寄存器的当前保存结果即为瞬时输出结果,不影响下一次内容改变; 加法器中保存的结果在下一个...

  • 算法题--实现乘法器

    0. 链接 题目链接 1. 题目 Given two non-negative integers num1 and...

  • 题蓬莱仙境图

    黄渤两海交界处,八位神仙曾此路。 昔人已乘法器去,此地空余仙境图。 细沙暖暖人脚部,碧水...

网友评论

      本文标题:第四讲 乘法器和除法器(Multiplier and Divid

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