数字电路基础知识(四) 加法器-半加器、全加器与超前进位加法器
半加器+半加法和全加法是算术运算电路中的基本单元,它们是完成1位二进制相加的一种组合逻辑电路。

一、半加器

半加器不考虑低位进位来的进位值,只有两个输入,两个输出。由一个与门和异或门构成.
真值表:


  1. verilog 数据流级描述:
//半加器模块
module adder_half(  input       wire    a,input     wire    b,output        reg     sum,output      reg     cout);always @(*)beginsum = a ^ b;cout = a & b;end
endmodule
  1. RTL电路

二、全加器

当多位数相加时,半加器可用于最低位求和,并给出进位数。第二位的相加有两个待加数和,还有一个来自前面低位送来的进位数。这三个数相加,得出本位和数(全加和数)和进位数。这种就是“全加"
真值表:



或者Ci=AiBi+(Ai+Bi)Ci-1![在这里插入图片描述](https://img-blog.csdnimg.cn/20190615163154326.png

这两种表达式的电路图对应如下,功能一样:

  1. verilog代码实现一(用两个半加器和一个或门实现一个全加器)结构性描述
//full_adder
module adder_full(a,b,cin,,cout,sum);
input a,b,cin;
output cout,sum;wire w1,w2,w3;adder_half u1(.a(a),.b(b),.sum(w1),.cout(w2));adder_half u2(.a(cin),.b(w1),.sum(sum),.cout(w3));
assign cout = w2 | w3;
endmodule
  1. verilog代码实现二行为级描述
//full_adder
module adder_full(a,b,cin,,cout,sum);
input a,b,cin;
output cout,sum;assign {cout,sum} = a+b+cin;endmodule
  1. 结构性描述的RTL电路

    行为级描述的RTL电路
  2. 对于多位输入的全加器
    例如八位全加器用verilog实现:
//8bit_full_adder
module adder_full(a,b,cin,,cout,sum);
input [7:0]a,b;
input cin;
output [7:0]sum;
output cout;assign {cout,sum} = a+b+cin;endmodule

RTL电路图:

之前用八位全加器实现了八位串行的全加器,缺点相当明显,即加法器的延时过高,电路的工作频率低。 此类进位输出,像波浪一样,依次从低位到高位传递, 最终产生结果的加法器,也因此得名为行波进位加法器(Ripple-Carry Adder,RCA)。
如下面的四位全加器

其关键路径如图中红线所示:则其延迟时间为(T+T)*4+T=9T。假设经过一个门电路的延迟时间为T。
对于一个n bit的行波加法器,其延时为(T+T)*n+T=(2n+1)T。

三、超前进位加法器

  1. 超前进位加法器 (Carry-Lookahead Adder,CLA)是高速加法器,每一级进位有附加的组合电路产生。高位的运算不需要地位的等待,因此速度很高。
    考虑每一级的进位:

    则对于4 bit的加法器,每个进位如下,可以看出,每个进位都不需要等待地位,直接计算可以得到。由此我们得到了提前计算进位输出的方法, 用这样的方法实现了加法器就被称为超前进位加法器
  2. 其组合电路如下:

    进位延时只有三个门的延时,加上最后一级全加器的延时,最多四个延时时间。

四、行波进位加法器与超前进位加法器比较


对于较大位数的加法器,如32位的加法器。如果采用行波进位的方式,我们已经分析过需要(32*2+1)= 65级的门延迟, 那如果采用超前进位的方式,理想情况下也只需要四级的门延迟,但可惜的是, 这也只是一个理想。因为要实现32位的完全的超前进位,电路就会变得非常的复杂。 因此通常的实现方法, 是采用多个小规模的超前进位加法器拼接而成一个较大的加法器,例如,用4个8-bit的超前进位加法器连接成32-bit加法器。

参考资料:https://www.jianshu.com/p/6ce9cad8b467

数字电路基础知识(四) 加法器-半加器、全加器与超前进位加法器相关推荐

  1. 加法器------半加法器,全加法器,超前进位加法器

    一.加法器是什么 举个例子,要表示一个 8 位数的整数,简单地用 8 个 bit,也就是 8 个电路开关.那 2 个 8 位整数的加法,就是 2 排 8 个开关.加法得到的结果也是一个 8 位的整数, ...

  2. 超前进位加法器实验报告_超前进位加法器设计实验分析

    课程 名称 计算机组成原理 实验课时 实验 项目 超前进位加法器设计实验 实验时间 实验 目的 1. 掌握超前进位加法器的原理及其设计方法 . 2. 熟悉 CPLD 应用设计及 EDA 软件的使用 实 ...

  3. 超前进位加法器实验报告_超前进位加法器设计报告

    华东交通大学理工学院 课 程 设 计 报 告 书 所属课程名称 EDA 课程设计 题 目 分 院 专业班级 学 号 学生姓名 指导教师 2013 年 7月 2日 目录 第一章设计内容与要求 ..... ...

  4. 超前进位加法器实验报告_超前进位加法器

    首先画出2位全加器的真值表与卡诺图 根据真值表可知二进制加法与十进制加法一样,进位值是逢二进一.而和值则是上级进位值跟被加数跟加数总和模二的余数.根据卡诺图化简得到S与Ci+1的全加器电路为: 多位加 ...

  5. 超前进位加法器(附Verilog代码)

    超前进位加法器: 普通全加器(行波进位加法器)是单比特全加器的级联,高位需要低位的进位位,故位宽增大时,加法的组合逻辑不断增大,超前进位加法器解决了这一问题. 优点:不需要等待低位的进位.直接计算就可 ...

  6. 超前进位加法器原理与设计

    超前进位加法器原理与设计 一.行波进位加法器关键路径分析 N比特行波进位加法器可由N个全加器级联而成,电路的延迟包括门延迟和线延迟等,分析忽略线延迟. 单比特全加器门电路图 从输入a,b,cin到输出 ...

  7. 四位行波进位加法器_【HDL系列】超前进位加法器原理与设计

    上期介绍了半加器.全加器以及行波进位加法器(RCA),本文介绍超前进位加法器(Lookahead Carry Adder,简称LCA).在介绍超前进位加法器前,我们先来分析下行波进位加法器的关键路径. ...

  8. verilog 延迟时间 超前进位加法器

    延迟时间: 如图4位全加器,此类进位输出,像波浪一样,依次从低位到高位传递, 最终产生结果的加法器,也因此得名为行波进位加法器(Ripple-Carry Adder,RCA).其关键路径如图中红线所示 ...

  9. 4bit超前进位加法器电路

    4bit超前进位加法器电路 题目描述 采用门级描述方式,实现此4bit超前进位加法器,接口电路如下: `timescale 1ns/1nsmodule lca_4(input [3:0] A_in , ...

  10. 超前进位加法器(较为详细讲解)

    先谈谈超前进位加法器设计的初衷. 我们从数电书学到的最基本的加法器的结构是下图这样的: 从图中很好理解加法器的组成. 一位的加法器直接卡诺图既可以画出来. 但是这样的结构有什么缺点?最直接的就是第4号 ...

最新文章

  1. yii连接mysql主从_Connection 数据库主从连接源码剖析
  2. Linux 常見的登錄檔檔名
  3. How is setModel triggering propery binding
  4. MySQL排序ORDER BY与分页LIMIT,SQL,减少数据表的网络传输量,完整详细可收藏
  5. html表单input file,input标签type=file的文件上传
  6. Mybatis if标签判断大小
  7. Java 并发编程AQS--源码解读
  8. Qt总结之二十:加载字体库
  9. tyvj p1016 装箱问题( 简单DP 01背包)
  10. Fail to queue the whole FAL gap in dataguard一例
  11. android 按端口获取流量,如何获取高性价比流量、开拓流量端口
  12. 大数据时代,计算模式从客户机/服务器到节点的转变
  13. 06_注册时密码加密
  14. 一步一步教你如何搭建自己的视频聚合站
  15. C-COT目标跟踪-----连续卷积算子
  16. python turtle画表情包--牛bi
  17. 太赞了!2021最新Android开发者学习路线,offer拿到手软
  18. springboot下生成复杂word文档方案 在Word软件里面制作模板
  19. mysql免安装版用法
  20. 【无标题】认知智能中国原生智能科技体系 一文看懂认知智能 道翰天琼认知智能奠基者领导者

热门文章

  1. win10系统64位安装与配置java环境,安装使用citespace经验
  2. HTML基础标签代码实例
  3. python爬取有妖气漫画
  4. tableau如何生成HTML文件,Tableau 入门
  5. vmware 无人参与应答文件包含的产品密钥无效
  6. java snmp walk,snmpwalk命令常用方法总结(转)
  7. RTKLIB学习:数据下载和数据转换
  8. UCGUI的消息处理
  9. 2019-2020 中国集成电路产业人才白皮书
  10. Eclipse修改JSP新建模板