第1章 逻辑势方法
电路系统开发过程中,为获取*高速度,或者满足延迟约束要求,可采纳的设计方法往往多种多样。如何取舍这些设计方法往往需要考虑若干基本问题,比如:实现逻辑功能的多个电路中,哪种*快?逻辑门的晶体管应该多大才能保证*小延迟(delay)要求?功能电路应该划分多少层级(stage)才能获得*低延迟?往往,向电路网络的路径中多添加几个层级反倒会降低延迟。
逻辑势方法是一种基于CMOS技术估算电路延迟的简单技术,使用这种方法可以对比多种电路结构的预期延迟,然后选择速度*快的电路。此外,该方法还可以得出一条路径上*合适的层级数及逻辑门的晶体管的*佳尺寸(size)。此方法非常简单易用,很适合评估早期设计阶段的各方案,也为复杂电路的优化提供了标准。
本章阐述逻辑势的基本方法及其简单实例,将在第2章探究更为复杂的例子。第1章和第2章向读者详尽地描述了一大类电路的逻辑势分析方法和相关的基础知识。将在本书的其余章节讲述逻辑势方法有效的原因,介绍详细的优化技术,并使用此方法来分析若干特殊的电路,如多米诺电路和选择器。
1.1 简 介
先来回顾下集成电路系统设计流程,再来详述逻辑势。众所周知,在设计流程中,电路的拓扑结构和逻辑门尺寸是关键。如果不采用某种系统化的设计方法对此进行考量,整个设计将会非常地烦琐和耗时。逻辑势正是应对这些问题的一种系统化解决方案。
图1.1显示了一个简化的芯片设计流程,包括逻辑设计、电路设计和物理设计三个阶段。芯片的规约(specification)是整个设计的起点,通常以文表的形式定义出芯片的功能和性能指标。通常,芯片在设计阶段会分成若干易于管理的模块,以便于将它们分配到多个工程师手中进行设计,并使用CAD工具一块一块地分析。在电路逻辑设计阶段,工程师用Verilog或VHDL等硬件描述语言编写各个模块的寄存器传输级(register transfer level,RTL)描述,进行仿真直到他们确信该模块符合规约;而后,因为RTL模块描述非常复杂,工程师需要估计模块的各项尺寸,并创建一个可以显示每块的相对位置的基础布图规划(floorplan)。该布图规划能够进行线长估计,并提供物理设计目标。
图1.1 芯片设计的简化流程
确定了RTL描述和基础布图规划,电路设计就可以开始了。通常而言,电路设计风格可以分为两种:定制方式和自动方式。定制设计方式涉及大量的手工设计工作,设计出的电路性能更佳。在定制设计电路过程中,工程师的选择非常灵活,可以选择使用晶体管搭建元器件,也可以直接从预定义的元器件库中选取。所以在此设计过程中,工程师需要做出许多决定:应该采用静态CMOS,还是传输门,还是多米诺电路和其他电路系列来实现RTL设计?哪种电路拓扑结构能更好地实现由RTL描述的功能?应该使用多级与非门、或非门还是更复杂的定制门电路?在选择好电路拓扑结构和绘制完原理图之后,工程师必须开始选择逻辑门中晶体管的尺寸,这种选择往往左右为难,比如,越大尺寸的门驱动负载就越快,但需要之前的层级提供更大的输入电容,也耗费更多的功耗和面积。当原理图(schema)确定之后,就开始功能检测,来验证原理图是否正确实现了RTL规约。*后,再进行时序检测,来核实电路能否满足性能指标。如果性能不足,工程师还需要再次调整逻辑门尺寸来提高吞吐速度,如果提速有限,甚至得完全更改当前的电路拓扑结构,如牺牲面积来加大并行性,或者将静态CMOS门替换成更快的多米诺逻辑门。
在电路自动设计的过程中,工程师直接采用综合工具来选择电路拓扑结构以及门尺寸。相对于手工设计,自动综合可以更快地优化路径和绘制原理图,但这种综合需要限定具体的静态CMOS单元库,欠缺灵活性,而且生成电路的速度要比熟练工程师慢。虽然自动综合和制造的方法持续进步,自动综合出的电路越来越好,越来越被工程师接受,但在可预见的未来,高端设计中的定制电路必不可少。自动综合的算法保证了所生成的电路在功能上无误,但时序验证仍然不可缺少。如果性能不够好,设计者就得设置若干约束,重新运行综合工具改进拓扑结构。
电路设计完成之后,紧接着需要进行版图级(layout)的物理设计。同电路设计类似,版图设计也可以采用两种方法:定制方法和依赖于布局和布线软件的自动方法。版图设计的功能正确性可以通过设计规则检测器(design rule checkers,DRC)和版图原理图对照器(layout versus schematic,LVS)来验证。版图设计过程会确定器件的电容和电阻数值,版图级的时序检测会依据这些值来验证版图设计是否能够符合时序目标,如果时序检测无法通过,该电路必须再次修改,直到验证无误为止。*后,芯片流片(tapeout)送往封装厂生产制造。
芯片设计流程的*大挑战之一是确保设计符合时序规约,被称为时序收敛。如果需求规约对芯片速度要求不高,电路设计就要容易得多了,这种情况下的时序收敛完全可以采用软件解决。
无论电路设计者的经验是否丰富,在定制电路的设计过程中,他们也得花费大量的精力来保证时序规约的满足性。若没有一个系统的方法,大多数人将不得不陷入“模拟(simulate)和调整”的困境中:修改电路结构,输入模拟器,观察结果,做更多修改,而后重复这些过程。通常而言,电路模块往往需要半个小时以上的模拟时间,所以上述过程是非常耗时的。而且设计人员在修改电路时,通常倾向于采用增加逻辑门面积来增快其导通速度,但如果较大的逻辑门对前一层级施加了更大的负载,可能会适得其反,影响前面层级增加的延迟将超过它自己减少的延迟!此外,设计者在对比修改前后的电路拓扑时,无法简单地估计延迟,而必须绘制电路图、确定面积,而后模拟每个电路,这个过程需要花费大量的时间和精力。所以说,一种高效的和系统的时序收敛分析方法是非常必要的,多年来已经基于启发式,甚至经验模型开发了一些工具集,来帮助设计者选择电路的拓扑结构和面积。
使用综合工具时,设计者遭遇着和手工设计的时序收敛问题类似的困境。当电路规模接近工具能力上限的时候,这种困境更加明显,上述手工设计时“模拟和调整”型综合对应了使用工具时的“添加约束和再综合”:为解决违反某个时序而添加的约束,往往导致另一条路径上的违规行为。设计者必须仔细分析综合器的输出结果,并理解导致路径缓慢的本质原因,否则无论如何添加约束并重新综合,电路设计也可能不会收敛到可接受的结果。
本书是为高速芯片的设计者而写的,作者基于多年设计经验,提出了一种系统进行电路拓扑和逻辑门面积选择的方法,并提供了一种可量化描述此问题的简洁语言。为了更好地阐述此类问题,首先定义了一个快速且易用的简单延迟模型,如果该模型预测到电路a比电路b显著地快,那么真实电路中,a一定会更快些。这种模型只需预测相对延迟,并用来对电路时序进行验证。这种模型不考虑绝对延迟,因为绝对延迟的计算通常是模拟器或时序分析器的工作。本章首先介绍这种简单的延迟模型,并引入一些术语来描述逻辑门拓扑结构的复杂度,以及负载电容和寄生电容对延迟的影响。从该模型出发,引入一个数值化的“路径势”概念,设计者无须调整晶体管尺寸并模拟就可以通过路径势来比较两个多级拓扑结构的电路。同时,也阐述了通过选择每个逻辑门尺寸来获取*佳逻辑门层级,而得到*小化延迟的过程。给出的许多实例都阐明了这些关键思想,也有反例说明了使用更少层级和更大逻辑门的电路,无法令电路更快。
1.2 逻辑门的延迟
逻辑势方法构建的基础是MOS管栅极 的简化延迟模型,该模型描述了由逻辑门驱动的电容负载及逻辑门拓扑结构两者引起的延迟。显然,随着负载的增加,延迟也相应增加,但延迟也取决于门电路的逻辑功能。反相器这种*简单的逻辑门电路,其驱动负载能力强,常被用作放大器驱动大电容。其他功能的逻辑门电路需要更多的晶体管,这些门中的部分内部晶体管串联,使得其电流驱动能力要比反相器差。
展开