zoukankan      html  css  js  c++  java
  • 加法器(行波与超前、全加与半加)

    行波进位加法器

    行波进位加法器,又称为逐级进位加法器,从左至右,每一级产生的进位传递到高一级的加法单元后该单元才能输出本级的运算结果,随着加数位宽的增加,最终得到的运算结果的延迟会不断增大,从而限制了系统的最高运算速度。

    以32位二进制加法为例,就是将一位的二进制加法重复32次(逐位进位加法器),由于每一位的CIN都是由上一位的COUT提供的,所以第二位的计算必须在第一位之后,,以此类推,最后的32位必须在前31位全部计算出结果后才能开始计算,这样的计算使的实现32位的二进制加法所需时间是实现1位二进制加法的时间的32倍。

    Example

    以一个4位行波进位加法器代码进行说明,

    FA u0( .a(a[0]),.b(b[0]),.cin(c_in),.sout(sum[0]),.cout(c_tmp[0]) );

    FA u1( .a(a[1]),.b(b[1]),.cin(c_tmp[0]),.sout(sum[1]),.cout(c_tmp[1]) );

    FA u2( .a(a[2]),.b(b[2]),.cin(c_tmp[1]),.sout(sum[2]),.cout(c_tmp[2]) );

    FA u3( .a(a[3]),.b(b[3]),.cin(c_tmp[2]),.sout(sum[3]),.cout(cout) );

    最终u3.模块的运算要在u0~u2全部运行完毕之后进行。

    超前进位加法器

    根据行波进位加法器可以知道,加法器中的每一级的和值sum和进位输出cout都取决于前一级的进位输入和本级的输入。

    全加器

    定义:进行加数、被加数和低位来的进位信号相加,并根据求和结果给出该位的进行信号

     

    逻辑表达式

    S1=A^B^C ……加数与被加数异或

    C1=AB|AC|BC…… 加数与被加数相与

    半加器

    定义:加法中并没有考虑来自低位的定义,就是只求本位的和下一位的进位,暂不考虑低位送来的进位数。

    逻辑表达式

    S=A^B ……加数与被加数异或

    C=AB…… 加数与被加数相与

  • 相关阅读:
    HTTP 协议详解
    SQL中Group By的使用
    转mysql 多表 update sql语句总结
    数据库SQL优化大总结之 百万级数据库优化方案
    PHP中include和require的区别详解
    【奇怪的知识二】:部分测试名词解释
    【python】UI自动化测试浏览器内部命令模拟F12
    【python】pip设置永久阿里云镜像源
    【奇怪的知识一】:网页缓存清理
    【python】脚本输出接口json数据为表格
  • 原文地址:https://www.cnblogs.com/luxinshuo/p/13684937.html
Copyright © 2011-2022 走看看