0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

改变原有全加器结构的等价型逻辑表达式

电子工程师 来源:网络整理 作者:工程师黄明星 2018-06-08 10:24 次阅读

引言

在全加器设计中运用PG逻辑是非常普遍的,本文在设计和研究全加器时,根据现有的PG逻辑公式推导出了一种新的逻辑公式,并论证了两者之间的等价关系。这一新的公式能够指导全加器设计中的连线方式,灵活更改连线策略。本文将从基本原理开始逐步引出该公式,对其进行论证,并应用于全加器设计中。

基本原理

N位全加器将{AN,……,A1}、{BN,……,B1}和进位输入Cin作为输入,计算得到和{SN,……,S1}以及最高位的进位输出Cout(见图1)。每一位得到的和与进位输出都直接受其上一位的影响,其进位输出也会影响下一位。最终,整个全加器的和与输出都受进位输入Cin的影响。

改变原有全加器结构的等价型逻辑表达式

图1 N位全加器

改变原有全加器结构的等价型逻辑表达式

图2 多位组传播Cin 或者直接产生进位输出

全加器最简单的构成方法就是把每一位的进位输出与下一位的进位输入简单地连接起来,得到的就是行波进位全加器。但在快速全加器中,是将加数和被加数中具有相同下标的位分成若干组,即多个多位组,并将各个多位组看作一个整体。通过计算多位组的PG逻辑,在求和之前可预测多位组的进位输出是传播进位输入还是直接产生进位输出。多位组所包括的位在i到j的范围内(见图2),如果该多位组的进位输出是与进位输入无关的“真”值,那么它就产生了一个进位;如果该多位组的进位输出只有当进位输入为“真”时才进位输出“真”值,那么它就传播了一个进位。对于i≥k≥j,这些信号能够递归地定义为:

Gi:j=Gi:k+Pi:kGk-1:j;Pi:j=Pi:kPk-1:j

其中 Gi:i≡Gi=AiBi;Pi:i≡Pi=Aii;定义 G0:0=Cin;P0:0=0

通过观察可知,第i位的进位输出总是与Cin有关,所以有Ci=Ci:0,和Si=Ai臖i臗i-1=Pii臛i-1:0。由此可见,只要算出各位的Pi:i值和Gi:0值,就可以将各位的Si值求出。而其中最关键的就是利用递归公式快速算出各Gi:0值。上述递归表达式可以用如图3所示的电路表示。

改变原有全加器结构的等价型逻辑表达式

图3 递归表达式的对应电路

为了能够更加简洁地表达全加器电路结构,可将图3中的电路用图4所示的黑色单元表示,并用图4中的白色单元表示图5所示的G逻辑产生电路。

改变原有全加器结构的等价型逻辑表达式

图4 黑色单元和白色单元

改变原有全加器结构的等价型逻辑表达式

图5 G逻辑产生电路

根据递归公式,可以得到各种不同结构的全加器,他们的逻辑级数、扇出、布线通道数、所用单元数等各不相同,在此不再赘述,只给出一种Kogge-Stone树型全加器PG网络,如图6所示。图的上部即是各位的本位Pi:i和Gi:i产生逻辑,中部是PG传播网络,下部是各位的进位输出Ci。这种树型全加器具有理想的逻辑级数和扇出,但是连线复杂,也需要更多的单元。

改变原有全加器结构的等价型逻辑表达式

图6 Kogge-Stone树型全加器PG网络

等价型PG逻辑的论证

对上文给出的递归表达式进行进一步推导,可得出如下结果:Gi:j=Gi:k+Pi:kGk-1:j=Gi:k+Pi:kGk:j(Gk-1:j可用Gk:j替代)

下面给出它的简单推导过程:

因为,Gk:j=Gk:k+Pk:kGk-1:j

所以,Gi:k+Pi:kGk:j=Gi:k+Pi:k(Gk:k+Pk:kGk-1:j)=Gi:k+Pi:kGk:k+Pi:kPk:kGk-1:j

将Gi:k展开以后,上式=Gi:k+1+Pi:k+1Gk:k+Pi:kGk:k+Pi:kPk:k Gk-1:j

因为,Pi:k=Pi:k+1Pk:k=Pi:kPk:k

所以,上式

=Gi:k+1+Pi:k+1Gk:k(1+Pk:k)+Pi:kGk-1:j

=Gi:k+1+Pi:k+1Gk:k+Pi:kGk-1:j

=Gi:k+1+Pi:kGk-1:j

=Gi:j

等价型PG逻辑的运用

运用新推导的等价型PG逻辑,可以改变PG传播网络的连接形式,如图7所示,原来某些应该独立连接的节点,现在可以利用等价型逻辑表达式将它们连在一起,比如在图7中的“5:4”和“4:3”两个节点,在图6中它们分别应该按原始公式连接“3:2”和“2:1”两点,现在可以根据新公式将它们都连接到“3:2”,其它节点以此类推。而且,在图7中的“3:0”节点处负载较重,因此可以将“11:4”、“10:4”连接到“4:0”,以减轻“3:0”处的负载。总的说来,改进以后的全加器在布线上可以相对于未改进的电路减少近一半,但负载相对来说也增加了一倍。因此,在实际电路中可以灵活调整连接关系,以平衡布线与负载之间的矛盾,同时对某些负载重的节点需要增加若干反相器,以增大该节点的驱动能力。

改变原有全加器结构的等价型逻辑表达式

图8 改进PG传播网络以后的全加器

仿真与验证

本文按照等价型PG逻辑的原理编写了如上所述的15位加法器的Verilog描述,并用ModelSim对其进行了仿真,对随机数进行相加,得到了正确的结果,说明在逻辑上该PG逻辑是正确的,如图8所示。其中a、b为两个15位的随机数,ci为随机的进位输入,co为进位输出,sum是最终的和(其最高位是co)。

图8 运用等价型PG逻辑设计的15位加法器的仿真波形

结语

本文根据现有PG逻辑计算公式,推导出了一种新的与之等价的逻辑表达式。将这一逻辑表达式运用到加法器设计中去,能够改变PG传播网络的结构,减少连线数目,降低布线复杂度,这样会更有利于后端的版图布线。但此方法会相应增大某些节点的负载,势必带来延迟的增加,因此需要精心设计晶体管尺寸或增加节点处的驱动能力,以使电路达到时序要求。

在今后的全加器设计中,可以根据具体情况灵活调整PG传播网络的结构,尽量使得布线与负载达到一定程度的平衡。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 负载
    +关注

    关注

    2

    文章

    556

    浏览量

    34207
  • 全加器
    +关注

    关注

    10

    文章

    61

    浏览量

    28410
收藏 人收藏

    评论

    相关推荐

    什么是正则表达式?正则表达式如何工作?哪些语法规则适用正则表达式

    正则表达式又称规则表达式(Regular Expression,在代码中常简写为 regex、regexp 或 RE),是一种用于匹配、查找、替换文本的强大工具。它能够以特定的模式匹配字符串,从而
    的头像 发表于 11-03 14:41 2556次阅读
    什么是正则<b class='flag-5'>表达式</b>?正则<b class='flag-5'>表达式</b>如何工作?哪些语法规则适用正则<b class='flag-5'>表达式</b>?

    MATLAB符号表达式

    = [a,b] [c,d]M以三种方式定义: 数字型(如果a、b、c、d已预先确定)、字符串或符号矩阵。许多符号函数非常巧妙能够自动将字符转变为符号表达式。但在某些
    发表于 09-22 15:45

    逻辑表达式的简化和转换方法的改进

    定理和公式将能更好地利用布尔代数法对逻辑表达式进行简化【关键词】:逻辑表达式;;布尔代数;;与-或;;与-异或【DOI】:CNKI:SUN:SHDZ.0.2010-01-009【正文快
    发表于 04-24 09:03

    防范表达式的失控

    在C 语言中,表达式是最重要的组成部分之一,几乎所有的代码都由表达式构成。表达式的使用如此广泛,读者也许会产生这样的疑问,像+ 、- 、3 、/ 、& & 这样简单的运算也会出现
    发表于 04-22 16:57 13次下载

    OFDM的基带信号表达式

    OFDM的基带信号表达式1 OFDM的系统结构 OFDM的系统结构如图1所示。
    发表于 10-20 16:07 6066次阅读
    OFDM的基带信号<b class='flag-5'>表达式</b>

    全加器逻辑表达式_全加器逻辑功能

    本文主要介绍了全加器逻辑表达式全加器逻辑功能。
    的头像 发表于 04-23 09:51 12.9w次阅读
    <b class='flag-5'>全加器</b><b class='flag-5'>逻辑</b><b class='flag-5'>表达式</b>_<b class='flag-5'>全加器</b>的<b class='flag-5'>逻辑</b>功能

    Python正则表达式指南

    本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例。本文的内容不包括如何编写高效的正则表达式、如何优化正则
    发表于 03-26 09:13 10次下载
    Python正则<b class='flag-5'>表达式</b>指南

    基于运算符信息的数学表达式检索技术

    传统的文本检索技术主要面向一维文本,难以用于对二维结构数学表达式的检索。针对该问题,通过引入公式描述结构,实现基于运算符信息的数学表达式检索。利用公式描述
    发表于 04-29 15:58 2次下载
    基于运算符信息的数学<b class='flag-5'>表达式</b>检索技术

    Lambda表达式详解

    C++11中的Lambda表达式用于 **定义并创建匿名的函数对象** ,以简化编程工作。下面看一下Lambda表达式的基本构成。
    的头像 发表于 02-09 11:28 1113次阅读

    表达式逻辑门之间的关系

    逻辑表达式是指表示一个表示逻辑运算关系的式子,是一个抽象的类似数学表达式,下面我们重点说明下其表达式
    的头像 发表于 02-15 14:54 1518次阅读
    <b class='flag-5'>表达式</b>与<b class='flag-5'>逻辑</b>门之间的关系

    C语言的表达式

    在C语言中,表达式是由操作符和操作数组成。表达式可以由一个或者多个操作数组成,不同的操作符与操作数组成不同的表达式,因此,表达式才是C语言的基本。
    的头像 发表于 02-21 15:09 1271次阅读
    C语言的<b class='flag-5'>表达式</b>

    逻辑运算符与表达式

    在C语言中,我们通常会进行真值与假值的判断,这时我们就需要用到逻辑运算符与逻辑表达式。如果表达式的值不为0,则通通返回为真值。只有当表达式
    的头像 发表于 02-21 15:16 2009次阅读
    <b class='flag-5'>逻辑</b>运算符与<b class='flag-5'>表达式</b>

    逻辑运算符与表达式

    逻辑运算符与位逻辑表达式可以实现位的编辑,比如位的清零、设置、取反和取补等操作。使用位逻辑运算符与位逻辑
    的头像 发表于 02-21 15:22 1194次阅读
    位<b class='flag-5'>逻辑</b>运算符与<b class='flag-5'>表达式</b>

    zabbix触发器表达式 基本RS触发器表达式 rs触发器的逻辑表达式

    zabbix触发器表达式 基本RS触发器表达式 rs触发器的逻辑表达式  Zabbix是一款开源的监控软件,它能通过监控指标来实时监测服务器和网络的运行状态,同时还能提供警报和报告等功
    的头像 发表于 08-24 15:50 1505次阅读

    全加器逻辑表达式怎么推

    全加器是计算机中常用的一种逻辑电路,用于实现二进制加法运算。全加器接受两个输入位和一个进位位,并输出一个和位和一个进位位。它的逻辑表达式可以
    的头像 发表于 12-25 16:09 3801次阅读