16位先行进位加法器--原理篇
前话
这个加法器写的是一波三折啊,昨天晚上花了两三个小时好不容易写完编译通过了,之后modelsim莫名其妙弹出一个对话框,我没看清就那么不小心一点,结果代码没了,惨痛啊。害的我今天早上又花了一上午的时间重写,结果又遇到了搞不清楚的编译问题。不过在重写的过程中,我还是发现昨天写的一些地方有问题,通过这次重写,我把verilog的语句并行理解的更加深刻了。下面总结一下原理和具体的实现。
原理
进位的传递
ci+1 = ai*bi+ai*ci+bi*ci
= ai*bi+(ai+bi)*ci
= gi+pi*ci
gi=ai*bi称为进位生成因子, 只要gi为1, 就有进位
pi=ai+bi称为进位传递因子, 只要pi为1, 就有把低位的进位向前传递
四位进位传递为例
c1 = g0+(p0*c0)
c2 = g1+(p1*g0)+(p1*p0*c0)
c3 = g2+(p2*g1)+(p2*p1*g0)+(p2*p1*p0*c0)
c4 = g3+(p3*g2)+(p3*p2*g1)+(p3*p2*p1*g0)+(p3*p2*p1*p0*c0)
只要低位有一个进位生成, 而且被传递, 则进位输出为1.
对于16位先行加法器,采用4个4位先行进位加法器组成,块内并行,由于高位的块需要用到低位块的进位,快间仍然并行计算进位。方法是产生每块的进位传递因子和进位产生因子。
块间进位传递因子: 每一位的传递因子都为1时才能传递
P0 = p0*p1*p2*p3
块间进位产生因子: 块内产生进位, 不考虑进位输入
G0 = g3+(p3*g2)+(p3*p2*g1)+(p3*p2*p1*g0)
块间进位的计算方法同上(只需要将p,g换成P,G就可以了)。
16位加法器相当与16个半加器同时工作,而每个半加器输入的进位cin都有传递因子和生产因子通过最低进位c0得到,而这16歌进位也是同时得到的。这大大提高了加法器的速度,设一个与非门的延迟为T,先行进位加法器总的延迟11T=2T(产生组内p g)+2T(产生组间P G)+2T(产生组内进位)+2T(产生组间进位)+3T(计算全加)。注意依赖关系,组内p g依赖于操作数a b,组内进位依赖于p g,组间的PG依赖于组内的p g,组间的进位依赖于P G,而全加依赖于组内和组间的进位。
16位先行进位加法器--原理篇相关推荐
- 计算机组成原理快速加法器与32位ALU设计实验报告(8位可控加减法电路设计、CLA182四位先行进位电路设计、4位快速加法器设计、16位快速加法器设计、32位快速加法器设计)
实验二 快速加法器与32位ALU设计实验 本次实验,进行了五个实验,分别是8位可控加减法电路设计.CLA182四位先行进位电路设计.4位快速加法器设计.16位快速加法器设计.32位快速加法器设计.这次 ...
- 计算机原理74181芯片,利用SN74181芯片构成16位ALU及原理.ppt
利用SN74181芯片构成16位ALU及原理 (2)利用SN74181芯片构成16位ALU的原理 l)组间串行进位的16位ALU的构成 2)组间并行进位的16位ALU的构成 SN74182芯片:是一个 ...
- hnu 数字电路 实验2.4 4位先行进位加法器
4.用VHDL语言设计一个4位先行进位加法器 ① 理解要求,需要完成一个先行进位加法器,可采取化简后的公式,直接用逻辑门构造一个4位先行进位加法器. ② 公式和原理图: ③ 打开QuartusII,新 ...
- 第4关:16位快速加法器设计
实验目的 帮助学生理解成组进位产生函数,成组进位传递函数的概念,熟悉 Logisim 平台子电路的概念,能利用前述实验封装好的4位先行进位子电路以及4位快速加法器子电路构建16位.32位.64位快速加 ...
- 4位先行进位加法器_行波进位/超前进位加法器详解
行波进位加法器是串行执行的,其高位的运算要依赖低位的进位,所以当输入数据的位数较多时,会形成很大的延迟并可能成为芯片的关键路径. 采用超前进位加法器(也叫先行进位加法器)可以有效减小这种延迟.下面介绍 ...
- msp430系列16位超低功耗单片机原理与应用_第四章课后练习
1.三个时钟源:LFXT1CLK.XT2CLK.DCOCLK 2.可提供四种时钟信号:ACLK(辅助时钟,用于低速外设).ACLK/n(经过分频的由P1.5脚输出,仅供外部电路使用).MCLK(主要用 ...
- 4位先行进位加法器的vhdl程序_VHDL精密,Verilog简洁,但要写好都要遵守这25条通则...
欢迎FPGA工程师加入官方微信技术群 点击蓝字关注我们FPGA之家-中国最好最大的FPGA纯工程师社群 当前最流行的硬件设计语言有两种,即 VHDL 与 Verilog HDL,两者各有优劣,也各有相 ...
- 4位先行进位加法器的vhdl程序_CPU是如何执行程序的?
前言 代码写了那么多,你知道 a = 1 + 2 这条代码是怎么被 CPU 执行的吗? 软件用了那么多,你知道软件的 32 位和 64 位之间的区别吗?再来 32 位的操作系统可以运行在 64 位的电 ...
- vivado设计4bit先行进位加法器 并使用 4bit CLA 组合设计一个 16bit 加法器
vivado设计4bit先行进位加法器 并使用 4bit CLA 组合设计一个 16bit 加法器 前言 配置环境和文件 添加文件 实验代码测试 运行测试 4bit先行进位加法器 原理 代码实现 运行 ...
最新文章
- HTML`CSS_网站页面不同浏览器兼容性问题解决
- 惨!重新申请了网页的Counter
- js获取和设置属性的方法
- 图解WebGLThree.js工作原理【转】
- 数据结构1-树及常用算法
- php 不喜欢用对象,为什么PHP不在其默认库中使用对象?
- 分子进化和系统发育的基础知识
- URL重定向,rewrite命令
- 【数据分析面试】大厂高频SQL笔试题(一)
- Golang环境windows 设置 GOROOT 和 GOPATH
- 【工作日记18】渗透测试之xml注入攻击、CRLF漏洞
- 利用Powergui进行FFT Analysis,信号源为空解决方法
- 腾讯元老、上市公司CTO辞职后,每天对着200亩地发呆
- 计算机用户名含有中文,安装软件的时候,计算机用户名是中文名的解决办法
- R语言古风诗人转职c++
- 小书匠配置github图床服务(详细版)
- 交换机连接控制器_干货丨FIT控制器与eMotion LV1的配置场景介绍
- 致我们终将组件化的web
- vue的混入mixin拙见
- 实现一个自动搜狗搜索的小爬虫----user-agent反爬
热门文章
- java输出到文档如何排版_java word中表格怎么排版输出
- 整数划分的递归实现算法c语言,整数划分算法原理与实现
- 绘声绘影中文试用版下载
- Java模板引擎解析原理_关于前后端分离与模板引擎
- 鸿蒙用java虚拟机_漫画:趣解鸿蒙 OS 如何实现跨平台?
- Matlab中的复数运算函数
- nginx 杂文----01
- ubuntu18.10下wine运行大航海时代II、金庸群侠传1、三国志英杰传、笑傲江湖
- UESTC OJ1219 Ba Gua Zhen
- windows 7 共享打印机 给 window xp - 2/2