第五章数字ASIC设计特点5.1信号的分类静态同步ASIC中的所有信号可以分为以下三种:时钟、控制信号和数据。1.简单的时钟信号用于控制所有的边缘敏感触发器,别无他用。它不受任何其他信号的控制。2.控制信号,如“允许”和“复位”,用于使电路元件初始化、使之保持在当前状态、在几个输入信号间作出选择或使信号通到另外的输出端。若干控制信号可以全部来自同一个允许产生器,但受到状态计数器的控制。3.数据信号中含有数据,它可以是—一些单独的比特,也可以是总线中的并行数据。静态同步ASIC中的所有信号可以分为以下三种:时钟、控制信号和数据。1.简单的时钟信号用于控制所有的边缘敏感触发器,别无他用。它不受任何其他信号的控制。2.控制信号,如“允许”和“复位”,用于使电路元件初始化、使之保持在当前状态、在几个输入信号间作出选择或使信号通到另外的输出端。若干控制信号可以全部来自同一个允许产生器,但受到状态计数器的控制。3.数据信号中含有数据,它可以是—一些单独的比特,也可以是总线中的并行数据。5.2驱动能力、绝对扇出和相对扇出一片ASIC由若干功能单元(部件或门)组成,每一单元有一个或多个输入信号,并产生一个或多个输出信号。每一输出信号受一定强度的驱动,即具有一定的驱动能力,它决定于此部件的晶体管结构。每一输入端在驱动它的部件(或外部输入端)上加了一定的负载。负载的大小也取决于部件的晶体管结构。单位负载和单位驱动能力是由一个最小尺寸反相器产生的。最小尺寸反相器的输出定义为具有单位驱动能力,而其输入则定义为在驱动它的任何电路上施加有一单位负载。ASIC设计中,“扇出”一词指加到每一连接线上的等效单位负载数目。由被驱动部件和外部输出加成的负载总和是驱动部件输出端的“绝对扇出”。ASIC设计中,“扇入”一词仍保持其原来含意,即连接到一部件上的输入端数目。一个3输入端“与”门具有的扇入为3。有些CMOS部件的驱动能力小于一,这时常使用反相缓冲器增强这种部件的驱动能力。图示出一缓冲器,它等效于4个反相器并联。此部件的驱动能力为4(并且作为负载也等于4)。另外一个很有用的概念是相对扇出:绝对扇出和驱动能力之比。右图给出一个驱动能力为4的缓冲器,它连接了12个反相器,给出绝对扇出为12。该电路结点的相对扇出为3。电路中任一结点处的相对扇出为:驱动能力绝对扇出相对扇出CMOS的扇出没有固定的限制。结点的相对扇出决定着它的若干特性,特别是决定其电路延迟。ASIC性能要求给予相对扇出一个上限,它和生产工艺过程有关,通常在8至16之间。5.3电路延迟CMOS电路中的延迟基本上是两部分延迟之和:惰性延迟传送延迟电路延迟传送延迟是由于栅极下面的耗尽层充电和放电需要时间产生的。它取决于栅的类型,供电电压,温度和工艺过程参数。通常,温度愈高则载流子的迁移率愈低、电阻愈高,故延迟愈长。供电电压低和驱动输入的上升时间长也使传送延迟增加。惰性延迟产生的主要原因是输出电路的电容和驱动门的内阻抗。惰性延迟和传送延迟一样,也受环境变化的影响,但是它正比于结点的相对扇出。在右图中给出总延迟和惰性延迟、传送延迟及相对扇出的关系。电路延迟的公式还可表达为:电路延迟=传送延迟十(单位负载的惰性延迟x相对扇出)惰性延迟长的影响除使总电路延迟增大外,还使上升时间和下降时间增大。5.4扇入的影响在选择门的时候,要考虑扇入的影响。一个门的扇入和其驱动能力之间有一定关系。让我们考虑2输入端和3输入端“与非”门的驱动能力问题。一个2输入端与非门作为负载,从正电源向源极消耗电流的能力和一反相器的能力相同。若两个输入都是逻辑0,因为有两个p型晶体管的并联电阻,故从低至高的源阻抗是基本反相器的一半。然而,它的两个输入由逻辑0变为逻辑1时,两个串联n型管导通,其导通电阻是反相器的两倍,使输出端高电位下降速度比反相器也慢一倍,即自高向低过渡有两倍的延迟。一个3输入端与非门作为负载,它的三个输入逻辑1时,由第三个n型晶体管带来的另一串联电阻进一步降低3输入端“与非”门的n型管的通过电流能力(至基本反相器的三分之一)。因为p型载流子的迁移率较低,因此这些门与其“与非”门等效电路相比,性能较低。为了得到高性能电路,建议:和或非门相比,优先选用:与非门。2输入端“或非”门和3输入端“或非”门也存在相似的关系。5.5边缘缓慢在基本反相器中,电流与输入电压的关系示于下图中。由图可见,当输入电压在高和低之间变化时,将有一大电流出现。所以若边缘缓慢将使大暂态电流出现时间拖长。当信号是一个加到边缘敏感部件的时钟时,上升时间长的后果更为严重。在同步系统中,边缘缓慢加上门限电压有差别以及本地引入的噪声,将使时钟线上产生不同的延迟,结果将出现我们不希望有的所谓“时钟歪斜”现象。时钟歪斜是指有效时钟边缘不在同一时刻出现,当用上升缓慢的边缘触发不同的边缘敏感部件时就可能发生这种情况。时钟歪斜是同步系统中最严重的问题之一。若歪斜的程度大于从边缘敏感存储器的输出到下一级输入的延迟时间,则其影响将变得很明显。它能使移存器中的数据丢失,使同步计数器发生错误。时钟歪斜可以由适当的时钟缓冲使之减小,或者在边缘敏感器件的输出和其馈给的任何边缘敏感输入端之间加入一定的延迟。5.6时钟缓冲同步系统中时钟(及其他全局控制线,如复位线)必然负载很重。这样有可能导致电路延迟和时钟歪斜不能容忍。克服这个问题的方法有二:线形缓冲和树形缓冲。5.6.1线形缓冲线形缓冲在信号线上使用一串缓冲器,使驱动强度逐步增大。每一缓冲器的驱动强度(它通常和负载一样)分配,应使每一结点的相对扇出相同。例如,图示出一个反相器,它驱动的负载等价于64个反相器,而同样的负载可以通过一串中间缓冲器来驱动。在每一中间结点,相对扇出为4。理论上最佳相对扇出为e(2.71828…),它使总延迟最小。表面上看来,似乎不用缓冲器要比用缓冲器的方案更快,因为后者层次更多。应用传送延迟和惰性延迟的计算公式(按每单位负载标称1ns传送延迟和1ns惰性延迟计算),可以得出下列结果:1.不用缓冲器的电路:总延迟=1十64×1=65ns2.用上例的线形缓冲电路:总延迟=(1十4×1)十(1十4×1)十(1十4×1)=15ns5.6.2树形缓冲超过一定的绝对负载量之后,通过线形缓冲增加驱动能力的优点不再存在。这是由于在ASIC中的线条宽度有时有限,电流大时在线上会产生大的电压降。在这种情况下,用树形缓冲较好。使用树形缓冲时,时钟电路分成若干分支,每一分支的驱动强度按几何级数增长。在实际设计中,通常使每一分支驱动某一局部电路中的各部件。在这个局部电路内有一缓冲器,缓冲器常由一反相器和由其驱动的功率缓冲器组成。这样做的另一个好处是,可以保持信号的符号不变,以及在分文点处呈现一单位负载。值得指出的是,这种时钟分配方案的各个分支在各级之间应该具有相同的相对扇出,因为不平衡的分支是时钟歪斜的最大来源。由于布线电容通常是一结点上总负载的重要组成部分,在设计好版图后应当再次校核相对扇出。5.8三态缓冲器用于总线控制三态部件允许在ASIC中支持含有多个数据发送器的总线系统,这样就产生了共享通信资源的管理问题。总线不容许浮动或处于高阻抗,并且绝对不能有两个或多个数据发送器同时接入引起的竞争。浮动的总线可能位于中间电压,它将使总线上任一接收器的n型和p型晶体管都导通,这将导致接收器通道中电流过大。争夺总线也是同样严重的问题。若两个数据发送器同时试图使总线上一根线取相反的逻辑值,则这将使结点上出现不确定值,并且在两个数据发送器中的电流过大。5.8.1译码器用于总线数据发送器选择使用译码器选择总线数据发送器就消除了总线浮动或竞争的可能性,在任一时间只可能选择一个数据发送器。按照这一原理设计的典型总线访问系统示于图中。5.8.2降低总线负载若一总线上有大量的数据发送器和接收器,则在任一数据发送器上的电容性负载可能使性能降低到不能接受的程度。总线上的电容性负载有三个来源:接收器的输入电容;总线布线的电容;其他数据发送器的输出电容(即使它们处于高阻(断)状态)。增大总线数据发送器的驱动强度可以克服输入电容和布线电容问题,但是其他数据发送器的电容也随着驱动强度而增大,导致驱动强度反而下降。还产生一个缺点,即三态驱动器功率增大要求占用芯片面积也增大。解决负载大的问题第一步是把数据发送器和接收器分开接在总线的两部分上,如图所示。数据发送器还可以进一步用访问总线的三态缓冲器分组在极端情况下,可以通过多路选择器树访问总线5.10ASIC设计不宜采用的电路5.10.1延迟线延迟线对于工艺过程的变化极为敏感,在军用温度范围(-55至125℃)内延迟量的变化可以达到5倍。任何设计中,若或明或暗地包含延迟线,将给测试带来麻烦。5.10.2到5.10.4小节的讨论都与延迟线有关。5.10.2倍频器在离散逻辑设计中通常使用的产生倍频时钟的方法是用一延迟线和异或门产生一窄脉冲。倍频器应当用外部电路实现,例如用锁相环等。5.10.3单稳触发器与倍频器与延迟线一样,单稳触发器的定时关系也不能保证。若在ASIC设计中必须使用单稳触发器类型的电路,则应当另外解决。5.10.4片内振荡器在设计上可以将奇数个倒相器组成一个闭合环,从而构成一个片内振荡器。片内振荡器与单稳触发器和延迟线属于同一类,其频率与工艺过程有关,不能保证ASIC设计的频率精度要求。许多ASIC工厂提供片上振荡器作为压焊盘库中的一个部件,应优先使用它。它通常可以外接选频元件(例如晶体),并且有禁止端作测试用。5.10.5RS触发器异步RS触发器有三个严重缺点:第一,在R=0和S=0时,其状态不确定。第二,RS触发器为异步工作方式,输入端有任何变化都有可能使输出值立刻改变。第三,也是最严重的一点,即它对于输入端上的尖峰和假信号很敏感。5.10.6JK触发器JK触发器电路功能有些含糊,不适合用于层次设计中,并且当用CMOS实现时,比D触发器占用更大的硅片面积。此外,异步输入对JK触发器也会产生问题。5.10.7隐含触发器设计者有时不小心会发生设计错误,在组合电路中由于采用反馈环路而形成一隐含触发器。这将引起上述异步RS触发器的所有问题,应该避免发生这种情况。5.10.8错误使用控制元件5.10.9用触发器的输出作为另一触发器的时钟5.10.10门控时钟5.10.14中央时钟产生器许多离散逻辑设计采用中央时钟产生器。它有一来自外部信号源的一次时钟作为输入,用分频方法产生一些较低频率的二次时。虽然时钟产生器可以是用同步原理设计的,但这种方案有一严重缺点,即二次时钟相对于一次系统时钟可能存在过大的歪斜。这意味着一次系统时钟不能使用了。