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

引言

在全加器设计中运用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”处的负载。总的说来,改进以后的全加器在布线上可以相对于未改进的电路减少近一半,但负载相对来说也增加了一倍。因此,在实际电路中可以灵活调整连接关系,以平衡布线与负载之间的矛盾,同时对某些负载重的节点需要增加若干反相器,以增大该节点的驱动能力。

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

 仿真与验证

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

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

结语

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

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

 参考文献:

1. P.M. Kogge, H.S. Stone. A Parallel Algorithm for the Efficient Solution of a General Class of Recurrence Equations. IEEE Trans, C-22(8): 831-838, Oct. 80

2. 汪东,李振涛,毛二坤,李宝锋等译. Neil H.E. Weste, David Harris著. CMOS超大规模集成电路设计(第三版). 北京:中国电力出版社,2006

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

嵌入式开发是一项综合了硬件设计、软件编程以及系统整合的技术活动,其目的是为了创造出能够在特定环境中高效、稳定运行的嵌入式系统。这一流程涵盖了多个紧密关联且不可或缺的阶段,从最初的客户需求分析到最终的产品测试和交付,每个环...

关键字: 嵌入式开发 硬件设计

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM

嵌入式开发作为信息技术的关键支柱,在全球数字化转型浪潮中扮演着无可替代的角色。从传统的嵌入式微控制器到如今先进的片上系统(SoC),再到与云计算、人工智能深度融合的智能终端,嵌入式系统的演进与发展始终紧跟时代脉搏。本文将...

关键字: 嵌入式开发 智能应用

嵌入式开发是一种专门针对特定硬件平台设计和实现软件系统的工程实践,它涵盖了从需求分析、系统设计、编程实现、调试测试直到产品部署及维护的全过程。本文将深入探讨嵌入式开发的主要阶段,分解其流程并阐述每个步骤的关键要点,以便于...

关键字: 嵌入式开发 嵌入式软件
关闭
关闭