




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
8.1时序设计8.2系统与电路结构设计8.3处理器并行算法与结构8.4芯片内外互连技术与信号完整性8.5芯片功耗与低功耗设计8.6可测性设计与可靠性分析8.7ASIC/SOC设计方法学第8章ASIC/SOC系统设计技术专题
8.1时序设计
8.1.1同步系统的时钟错位
在同步时序电路中,把全局时钟信号连接到所有的寄存器、触发器和锁存器上。一般时钟线的容抗负载很重,由巨大的扇出容性负载和可能长达几厘米的线电容负载叠加构成,总的电容量会在几百皮法(pF)至几个纳法(nF)之间。例如,DECAlpha工作站CPU芯片中的时钟线电容值为3.25nF,占整个芯片全部电容量的40%。时钟线的电阻性负载值也不小,从而形成分布式RC延迟线。这样,如果有两个触发器离同一个时钟源的距离不同,则两个触发器的本地时钟跳变时刻就会不同。这就是单纯的时钟不一致错位,它是导致竞争和工作不正常的重要根源,严重影响着时序电路的性能。
1.单相边沿触发时钟
假设数据信号D从寄存器R1传送到R2,而时钟布线延迟形成两个本地时钟时刻差δ,例如R2-f2时钟的#1脉冲比R1-f1时钟的#1时钟脉冲晚到δ,就将其称做时钟错,如图8-1所示。
若记f1的#1时钟脉冲边沿时刻为0,则f2的#1时钟脉冲边沿时刻为δ。简言之,为了系统能正常工作,其必要条件如下。图8-1同步系统的时钟错位示意图
(1)时钟错位δ要足够小,即
δ≤tr,min+ti+tc,min
其中“≤”号之后是表示数据信号的最小延迟和,其中tr,min是寄存器R内的最小延迟;ti为互连线的传播延迟,ti=tia+tib;tc,min为组合逻辑C部分的最小延迟。对于R2来说,从它前面电路C过来的处理后的新数据,相对于f1#1的总延迟要大于时钟延迟δ。
(2)时钟周期T要足够长,即
tr,max+ti+tc,max≤δ+T
对于R2来说,“≤”号之前是新数据的最大延迟tr,max+ti+tc,max,它不能超过下一个脉冲边沿到来的时刻δ+T。其中tr,max是寄存器内的最大延迟;ti为互连线传播延迟;tc,max为组合逻辑C部分的最大延迟。
归纳起来,显然上述两个式子可以写成一个统一的大联式:
δ≤tr,min+ti+tc,min≤tr,max+ti+tc,max≤δ+T
我们可以准确地说,R2的新数据应出现在从δ开始的一个周期(如图8-1所示R2-f2时钟波形图中的加粗线段)之内,而不应该在此之外,包括之前或之后都不行。以时钟上升边触发为例,记f2时钟#1的上升边相对于f1的时钟#1上升边发生δ错位,而R1的数据在f1时钟#1的上升边完成锁存。由R1再传送给R2的新数据应该在f2的时钟#1上升边结束之后;并且在f2的时钟#2上升边之前稳定出现在R2输入端,等待f2的时钟#2上升边的到来。
在深入讨论上述时序错位问题时,对于f2时钟#2与其数据信号D的关系,需要结合4.3.1节中的图4-12,在时钟上升边的前后给出满足要求的数据建立和保持时间。需要注意的是,δ的大小与时钟周期无关。在有些场合可以采用的一个有力措施就是沿着数据传播的相反方向布时钟线,使得δ<0。这时,条件(1)自然满足,但条件(2)更加严重,只有选择大T来加以解决,这当然又与提高工作速度需要提高时钟频率的要求相违背。
在设计有些电路时,例如流水线,可以采用双相主从时钟策略或者其他时钟形式。
需要提醒的是:δ是个变量,会有不同的布线延迟,还需要考虑串扰影响延迟的因素。
2.时钟错位对策
除了前面说过的反向布线策略外,需要特别关注的是,如何减小到达任意两个寄存器的时钟线之间的延迟相对值。
改善时钟错位可以有以下一些对策。
(1)选择时钟网络互连线材料,以减少绝对延迟。
(2)设计时钟布线网络,如图8-2举例所示,避免相对延迟。图8-2是一种H形树状结构,状态记忆单元电路被连挂在各个树枝上。图8-2同步系统的时钟布线网络
(3)设计必要的时钟驱动器和缓冲器,加速充放电。例如用第一级驱动器驱动众多的二级驱动器,然后再分别驱动不同的模块电路。
(4)设计时钟线上合适的扇出负载,尽量减轻负载拖累。
(5)设计特殊电路并结合布线,控制时钟的上升、下降时间。
(6)改善受到串扰的负面影响。
3.时钟的作用
各种同步设计方案,都假定有一个或多个中央时钟,统一协调全部电路彼此的步调。这些时钟具有双重功能。
(1)合理的时钟序列先后机制用于安排系统全局中多个事件的发生顺序。
时钟提供了一种时间基准,其先后次序用以安排在什么时刻该发生什么事件。每当时钟跳变时,就会启动多个操作,进而将整个时序网络改变到新的状态。
(2)适当的时钟周期长度用以满足单件操作的时间需求。
设计时钟周期时要包容所有相关的门延迟和线延迟。一定要等所有变化均已完成,系统进入到一个稳定状态后,下一个时钟周期才能开始。这样才能确保在下一轮计算期间各自所用的逻辑值都有合适的建立保持时间。
芯片内时钟信号的产生一般分为两步:片外电路先用晶体振荡器产生PCB上共用的时间基准信号;每一个芯片在自身的片内再完成整形、缓冲、分频、倍频以及不同占空比的时钟信号产生。需要注意,在设计系统启动时,要先将各记忆单元初始化复位到零状态。8.1.2自时序异步电路
DSP有两大特点:实时性和数据驱动。大量DSP运算所面对的数据驱动特点,不适合采用时钟同步电路,而更适合于流水线方式。在电路规模变大时如果采用同步方案,其时钟错位和信号错位(由于数据信号路径延迟的不一致性所造成)问题非常严重。为此,人们早就提出用自时序(Self-timed)这种异步方案来解决这一问题。它属于时序问题局部解决方案,是一种可靠又鲁棒(Robust)的途径。自时序电路也不能说成是全异步的纯粹数据流驱动型,它仍然需要同步,因此可以称为半异步。以如图8-3所示的电路为例,它由多级排列的记忆锁存单元(Rx)加功能处理单元(Fx)构成,其最大特点是模块内可以有时钟,但各模块是独立工作的。相互间不是靠时钟完成同步,而是根据握手(HandShake,HS)协议设计的局部交通管制HS电路来完成数据交换等事件操作间的控制通信。这是一种异步流水线形式的数据通路结构。当然,自时序并不局限于流水线形式。图8-3自时序流水线形式的数据通路下面,就以图8-3的流水线为例说明自时序电路的工作原理。这是一个非固定时序的简单流水线结构,由于每个模块功能不同,是不可以跳跃的。
握手电路根据HS协议,首先要建立请求Req(uest,R)、应答Ack(nowledge,A)信号机制,以确保各事件的逻辑顺序。就HS而言,某一方的HS在数据准备好后,经HS协议分析判断后提出对其他方HS的操作请求Req。作为被询问的运算器操作方HS还应将其状态用信令AckS告知对方,表明它已准备好接收新数据字的输入。在完善的握手机制中,对于功能模块而言,HS会用另外的输入信号Start启动功能处理单元的计算处理。每一个功能操作块在处理结束时再给HS出一个信标Done,表明它已经完成计算,并在输出端为其他方准备好了合用的数据字。对于这种数据驱动模式,自时序方案需要事先安排好按照实际物理约束所需的精确运算时间段。
1.HS握手机理
HS握手机理可如下描述。
(1)假设输入数据字已经到达R1的输入In处,握手电路HS1根据HS协议对块R1-F1提出了向记忆锁存单元转移数据的操作请求(Re1)。此时,F1还没有正式开始新的计算工作,它只需要把新数据转移到锁存单元R1中。完成后立即发出应答(Ac1)将这一现状通知HS1,表明它等待加工这一新的数据。
(2)然后F1被HS1的Start激活,开始对新的数据进行针对性处理。经过一个长度可能不固定的时间段之后,给出Done,表明计算完成,新结果数据也被放在它的输出端。R1-F1块整个的活动顺序是:Re1→Ac1→Start→Done。
(3) HS1向HS2发出Req。
(4) HS2对R2-F2模块发出Re2信号。如果R2空闲,则立即转移F1输出的数据到锁存单元R2中来,并给出应答Ac2信号。
(5) HS2向HS1发出Ack。以此为前提,握手电路HS1才有可能允许F1继续进行新的数据转移和计算进程;同时R2-F2模块也才有可能开始计算直至完成。除了流水线之外,完全的自时序技术允许逻辑功能顺序先后和实际的物理次序不同。完成信号Done表明该模块功能已经完成,电路处于新的稳态并且可以接收并加工处理新数据。通过Ack-Req途径,即所谓的握手协议(HandshakingProtocol),可以确保操作的逻辑顺序。有关各方通过握手,或者说双方认可,就实现了相互间的同步。用HS模块中实现上述有关顺序的协议,只是众多自时序方案中的一种。选择握手协议是重要的,因为它对电路性能和可靠性均有深远的影响。自时序正在进一步发展,其中之一就是采用基于网络的结构NOC。
2.异步时序的优缺点
与同步电路的方案相比,自时序电路有许多诱人的优点:
(1)与同步方法时钟全部集中方案相比,自时序只在局部范围中拥有定时信号,从而避免了由于高速时钟的全局分配网络带来的各种麻烦及代价。
(2)由于只在局部实现同步,避免了全局同步的副作用,这就进而改善了系统设计的模块化程度。
(3)性能也有一定程度的改善。在同步系统中,时钟周期必须拉大到包容对各种输入序列中最慢的路径。而在自时序系统中,一个处理完的数据字无需等待下一时钟边沿的到来,就可以即刻送给下一级交付处理。不难理解,因为每个模块电路实际延迟经常与实际数据有关,可以认为自时序电路以硬件平均速度运行,而不是同步电路中的最坏延迟模式。对于输入数据源源不断的情况,前述异步流水线数据通路的平均周期Tavg取决于单个模块平均延迟的最大值,即
Tavg=max(tavg,F1
;tavg,F2;t
avg,F3)+t
preg
从该式可以看出,通过分配资源设法保持运算负荷的大致平均,是提高流水线整体速度的有效途径。
(4)对于不工作的块可以实施自动关闭策略以减少功耗。此外,还可以部分消除由于高速时钟的产生与分配网络引起的额外功耗。如前所述,这一功耗约占总功耗的40%,是相当可观的。
(5)自然,对于各种制造和使用环境(例如温度)的离散性,自时序电路都是相当鲁棒的。同步系统性能的危险性在于它总是工作在极限状态,而自时序电路的性能一般只与实际的工作条件有关。
很遗憾,这些优点并不是没有代价的,其代价就是握手控制电路复杂度大为增加。主要设计内容是握手逻辑电路,该电路接收完成、应答等信号,生成启动、请求等信号。握手电路像一个现场交通管制员,负责安排电路事件的发生顺序(参见图8-3中的HS模块)。
近年来,在信号处理领域,已经出现自时序除法器电路等快速算术模块。但是自时序电路并不成熟,还处在发展阶段。
目前,有一种新型的时序逻辑电路设计方案,其时序(定时)模式采取近于全异步的方式,它允许有些同步岛单元,但相互连接完成之后形成的是一个完整的异步网络。
8.2系统与电路结构设计
8.2.1逻辑与物理结构
结构(Architecture)设计的实质是构造一个非常详尽的系统结构(逻辑+物理)模型。在逻辑和物理结构设计阶段应对功能、性能做广泛的仿真调试,否则将来由此阶段错误引起损失的弥补代价非常昂贵。一般,首先进行逻辑结构设计,而物理结构设计除了互连线之外,则应该是在保持逻辑电路拓扑结构不变前提下的一种有效映射结果。
结构研究和设计的层次有以下两类。
1.系统与电路的逻辑结构
客观硬件世界既有串行的顺序驱动,又有并行运行的并发。这一层次讨论的串行抑或并行,均离算法比较接近。
在逻辑设计时需要优先研究调度问题,先要规划每个操作所需要的时钟周期数,称之为控制步,保证运行各种输入测试矢量时其各部分的速度匹配不出问题。
关于逻辑结构资源,加法器、状态机等功能单元和寄存器组等记忆单元统称为宏单元,是建造一个功能齐全的系统集成ASIC芯片的元件资源。
在对整个资源的逻辑结构设计空间进行搜索时,还需要对多种代价,包括面积、速度、功耗、可测性等相冲突的约束进行折衷算计。在功能相同的前提下,逻辑电路结构会有多种选择。流水线(Pipeline)结构形式,既可以充分利用时钟资源,又尽量减少了等待迟延。相对而言,流水线是一种化简长组合操作时钟的简便易行方案,在并行结构中将做进一步介绍。
在寄存器转移以上的级别修改逻辑结构,其性能改善作用比较大。例如,将一般标准的乘法器改进为Booth算法的乘法器,可以降低乘法器的延迟50%。
即使在器件的晶体管级电路级别上,也会有多种逻辑结构供选择,例如半加器。其基本功能相同,由于结构不同,其延迟、面积都会不同,这就需要优化设计。修改晶体管级电路逻辑结构降低延迟的余地有20%以上。
2.系统与电路的物理结构(版图)
这一层次接近底层。合理的记忆单元布局有利于充分利用时钟周期;合理安排功能单元和信号互连线网可能会有效地降低延迟并改善信号完整性。这些就是物理结构层次的资源分配问题。
版图对应于芯片最底层的物理结构,可以从局部微观和全局宏观两个角度入手进行版图的优化设计。
局部改变芯片中电路单元的版图设计,可以减少晶体管一级的寄生参数;通过移动单元内部连线可以压缩芯片面积或者降低源/漏电容等。全局改变芯片系统中各个模块的布局布线,将会改进布局的合理性;降低布线的拥挤程度;或者可以降低互连线的多种寄生参数。
企图通过直接改变版图结构来优化版图设计,改善延迟和面积,效率往往是很低的。版图编辑主要被用来进行微调,版图编辑对芯片性能的改善余地为10%~20%,而且很麻烦。但是对于高速互连,还需要深入到版图进行设计。
为了改善和提高性能,一般在尽可能高的级别上花功夫进行深入研究、详细修改,方案确定不变之后,在确有必要时再在版图结构上进行微调。这里不适于采用闭环反馈的反复设计,最好不要再走回头路。8.2.2系统结构设计中的调度与分配
假设要设计一个数字信号处理器的任务已经明确,那么从系统硬件逻辑到物理结构的映射就是直接的和一次性的。我们将电路结构设计涵盖在系统之内,那么系统结构设计和映射流程如图8-4所示。这是一种宏观的创新设计技术。例如,设计流水线,时序调度就可能会与资源分配交替进行。
有关调度与分配的含义在第4章曾做过介绍,这里再进一步做一说明。图8-4系统结构设计和映射流程
(1)算法确定之后,首先要对算法中的算术操作预留算术逻辑运算和寻址时间(即时序调度(Scheduling)问题)。这时要根据需要,引入同步和定时时钟设计。调度从数据通路出发,在具体安排调度时与控制器设计更密切。
(2)其次要规划(Allocation)并指定(Assignment)计算处理资源,包括处理单元和记忆单元。规划和指定通常又被统称为分配,有人称之为绑定(Binding)。分配与调度是同时进行和同步交互进行的,分配时要依据调度的需求来规划并统一指定数据通路和控制器单元,但是分配与数据通路设计关系更大。
如果对系统要完成的所有处理事先已经掌握,可以进行静态调度。静态调度就是指不再改变的一次性调度。与之相对应的就是动态调度。通常这时对系统某些处理特性事先无法完全掌握,例如出现了由数据决定的操作运算分支转移。动态调度时可以配备辅助的监控程序,采用人机交互方式进行调整。在完成初步资源分配的情况下借助于CAD的模拟仿真手段,监视观察是哪些时序需要重新调度,或者需要用新的硬件结构来完成。
优化调度包括系统对信号取样周期的选取;处理总滞后(完整等待期,Latency);占用的处理资源和存储资源等的确定。其优化的最终目标还是体现在速度、面积、功耗、可测性上。资源规划牵涉到可供采用的物理资源品种和数量,包括各种处理单元、记忆单元和通信控制通道等;资源指定则是确定用哪个具体的硬件资源来实现哪种指定的功能。
在系统结构设计的全过程中,调度和分配工作应该采用不断交互迭代的方式同步地进行和完成。
设计芯片不单是为了完成某一功能而已。事实上,任何一种功能都可能有许多不同的系统与电路结构供选用和设计。所谓的芯片优化设计就是从所有的可能设计中采用有效的方法进行筛选,从中找到面积小、速度快的设计。这里,可以把电子系统模型化成一个大的程序设计,借鉴系统程序分析技术,往往能较好地保证按特定的需要完成整个设计。
有关电路结构设计不再赘述。电路级结构设计与系统结构设计相类似,可以认为它是在已经确定的系统设计大框架之内的进一步细化和映射。这里面仍然包括RTL、门级和晶体管级三个级别的逻辑结构和物理结构设计;同时包含并行和串行结构。8.2.3数据通路
数据通路(DataPath)由功能单元、记忆单元、互连网络构成,它将输入信号经过处理操作后传输到输出端。数据通路完成计算及逻辑运算并将结果存入寄存器中。它既是逻辑结构的概念,也具有物理结构的含义。
典型的数据通路包括下述几类模块。
1.处理功能单元类
这些单元实现各种处理操作,例如用加法器和ALU执行算术运算;移位器执行位操作;计数器用在程序中计数等。对大多数信号数据的操作是规则和重复的,像加法器、算术逻辑单元、移位器以及其他运算单元都是这样。复杂一点的包括DCT矩阵运算、卷积、数字滤波器、小波变换、运动估计等。这些规则的处理操作可以由小元件组成的并行阵列电路来完成。
2.记忆单元类
例如,可以用锁存器、触发器、寄存器、RAM等来存放数据。
3.互连线网
典型的数据通路采用多路开关(传输门构成)、开关矩阵(通路晶体管组成)、总线、H树、梳状结构、传输线、LVDS连接、线网(菊花链、远端簇等)实现互连。其中每个单元与其他每一个单元间有着复杂的连接关系。也有一些是单纯两个成对单元间简单的点对点连接。
单元间的数据传递常常在一个或几个数据总线或公用连接线上进行;总线中数据的位数决定了一个时钟周期内传递的最大数据宽度,它是数据通路的主要设计参数。
为了充分利用数据通路中数据操作的规则性和重复性,版图可以设计成多位片(BitSlice)形式。图8-5所示就是典型的位片数据通路中的一位。图8-5位片数据通路中的一位图8-5所示是一位形式的完整数据通路,将它加以复制就可以得到n位的数据通路。通常,数据流水平地沿着点对点连接或者总线通过位片;而控制信号垂直流动,控制信号包括寄存器的读写信号、ALU的操作码等。
数据通路—控制器结构的一种形式如图8-6所示。
图8-6数据通路—控制器结构数据通路的版图设计,要充分发掘和利用其中数据操作所具有的规则性和重复性。通常,数据通路的版图部分由人工完成设计;控制器部分则通常采用有限状态机来实现,根据前面对操作占用控制步的调度安排进行综合,采用EDA工具可以实现自动化设计与综合。结合前面的Verilog语言的学习,大致可以说,控制器部分适合用行为风格描述,数据通路部分则宜于采用层次化结构设计以及数据流风格。
芯片内和PCB板都需要设计数据通路。人们已经制定了各个级别的总线标准,包括系统级的通信总线、PCB板之间的总线、芯片之间的总线和芯片内总线,这些都是用于电路和系统设计时的规范式接口标准结构。许多芯片内外的总线标准,完全可以用作设计芯片内数据通路结构时的依据和参考。8.2.4寄存器转移结构
数据通路—控制器结构对应的可以是一种典型的寄存器转移机制,两者描述的内容是一样的。图8-7所示的寄存器转移子系统是一个功能抽象的时序机。图中的各种组合逻辑加上记忆单元构成了数据通路的主体。虽然控制部分被隐去,但状态转移过程必然是受控的,所以,仍然可以从整体上解释为数据通路—控制器逻辑结构描述。图8-8用结构方框图描述寄存器转移子系统,显得更直观,上面是控制器,下面则是数据通路。其中部件1、2的内部包括有组合逻辑和记忆单元。
对于图8-8中各方框间的连接,虽然不必给出逻辑设计细节,但是需要给出其时序关系。控制器要能产生数据通路中的读写控制信号和组合逻辑部件中的操作码等。
图8.7与图8.8是描述同一个问题的两个侧面。图8-7寄存器转移子系统结构图8-8寄存器转移子系统方框图为了方便,通常总是可以把结构分解为数据部分和控制部分两部分。如前所述,数据通路主体部分包括可加载寄存器,规则的算术逻辑功能;控制部分包括随机逻辑和状态机。也有少数一些结构是纯数据(例如数字滤波器)或者是纯控制(例如简单的通信协议),但大多数结构是数据加控制。需要注意,这种人为地将设计区别为数据通路和控制器,常常有助于理解系统的操作,但是必须指出数据和控制有时是难于划分的。
寄存器转移级(RTL)是对一类电路模块的抽象描述。寄存器转移将每一个转移操作分配一个控制步,一个控制步可能由一个或几个时钟周期组成。这些选择对将来整个设计的面积、速度和可测性都有比较深刻的影响。寄存器转移抽象是结构设计的基础。寄存器转移给出芯片在每一个控制步内应该做什么的完整描述。然而,即使只要求描述寄存器转移系统的抽象功能,而不要求给出逻辑电路,那么为了描述完整的时序关系,其工作量已经非常大了。因此我们更看重在RTL一级的宏观层面上来研究抽象的调度和分配,从中掌握如何优化寄存器转移设计,以达到改进速度、面积、功耗和可测性、可靠性的目的。对于特别大的系统,千万不要错过在系统级实现最高层次逻辑结构设计的决策机会。在进行这种系统级行为层次设计时,可以考虑DSP等大规模部件模块级别的资源分配和时序调度问题。更进一步,不论是采用EDA综合工具或者人工方式,在将行为规范描述转换为RTL结构描述的过程中,技术要点也还是调度和分配。
8.3处理器并行算法与结构
8.3.1引言
算法、体系结构、硬件实现是我们一贯倡导的三段论研发思路。这里讨论的是体系结构。
ASIC是电子系统硬件实现方案中的核心器件。设计师选择ASIC完成处理功能的最大优越性在于可以有效发挥它的并行运算潜能。算法是对加工处理过程的一种行为描述,“削铅笔”的不同削法就是不同的算法。为了设计好核心处理器芯片,算法研究当然是研发过程的龙头。只不过,这里的算法是通过硬件结构来体现的,或者说实际结构在运算时要执行某种算法。建造并行处理器的前提是发现、创造出具有并行性质的实时处理算法,尤其是在研究并行处理算法时,必须同时研究算法映射的并行硬件结构,充分利用硬件结构本身自然固有的并发性。并行性(Parallelism),指的是同一时刻或同一时间间隔内完成两种或两种以上性质相同或不相同的工作,只要时间上互相重叠,就存在并行性。严格地讲,把两个或多个事件在同一时刻发生的并行性叫做同时性(Simultaneity);而把两个或多个事件在同一时间间隔内发生的并行性称之为并发性(Concurrency)。
与前面讨论的数据通路-控制器结构一脉相承,研究并行性算法和实现的重点在于数据加工和控制两个着眼点,但是最终落脚点是数据通路,控制也要落实到数据通路上。将任务(指令)分解成不同的子任务(操作)进行处理,是控制流(又称指令流)意义上的并行;将数据分解成易于并行处理的结构是数据流意义上的并行。
Parallel、Pipeline主要用于无反馈的非递归计算。如果是递归和自适应滤波,则不适应并行及流水,因为它们存在反馈环。
并行性研究中许多词汇是计算机术语,例如指令、程序等。事实上设计算法专用处理器芯片的控制命令也可以等同于设计计算机指令,以下全部的论述都可以从通常软件的概念向硬件加以类比和扩展。
另外,同样的概念和原则可能会用于不同的论域。如果被操作对象很大很粗,称之为粗粒度;如果被操作对象很小很细,则称之为细粒度。
1.并行性的等级
(1)从指令(控制)流的角度看,并行性等级从低到高可以分为细粒度和粗粒度两类,由细到粗依次为:
①指令内部并行——指令内微操作间并行。
②指令间并行——并行执行几条指令。加、乘都被认为是一条指令。
③任务级或过程级并行——并行执行几个程序段。
④作业或程序级并行——并行执行几个作业。
(2)从被处理的数据流角度看,并行性等级从低到高也可以称为细粒度和粗粒度,并可以由细到粗再分为:
①字串位并——同时对一个字的全部位进行处理。
②字并位串——同时对许多字的同一位(称位片)进行处理。
③全并行——同时对许多字的全部或部分位进行处理。
以图像处理为例,细粒度就是指像素(一般占8位或16位),粗粒度就是指图像块、若干行、若干列、全图像等。
上述两类可以交叉配对,后面将论述到由它们交叉组成的类别。在一个信号处理器中,可以通过多种技术途径广泛采用多种并行性措施。既可以有执行程序指令方面的并行性,又可以有被处理数据方面的并行性。当并行性提高到一定级别时,则称为进入并行处理(ParallelProcessing)或者并行计算领域。例如从执行指令的并行性上升到任务级,或从被处理数据位的并行性上升到字并位串一级,即可认为进入并行处理领域。并行处理是实时信号信息处理的一种有效形式,它着重挖掘计算过程中的并行事件,尽可能使并行性达到较高的级别。实现并行处理牵涉到理论算法、结构及硬件设计、软件编程等多方面的配合,它是一个综合性的研究领域。不过,我们重点讨论的是处理器内部并行处理的设计技术。
2.途径
在计算机、处理器中提高并行性的措施有多种,一般可以归纳为三种实现途径:
(1)时间重叠(Time-Interleaving)。
(2)资源重复(Resource-Replication)。
(3)资源共享(Resource-Sharing)。
例如,流水线是并行处理研究领域的重要成果,它基本上属于时间重叠。而图像处理器中多数属于资源重复,即在并行性的概念中引入了空间因素,是根据“以数量取胜”的原则,通过重复地设置硬件资源来大幅度提高专用处理器的性能。另一方面,比如代价昂贵的浮点运算协处理器就可以用来实现资源共享。
3.分类
处理器的基本处理动作可以认为是对数据执行一系列处理指令,完成对一批批数据流的处理。据此,1966年M.J.Flynn(弗林)提出按指令流和数据流的多倍性对处理器、计算机进行分类,得到了业界的一致认同,并沿袭至今。该分类方法由所谓指令流(I—Instructionstream)、数据流(D—Datastream)和多倍性(M—Multiplicity,多;S—Single,单)将处理器分为四类:
(1) SISD——单指令流单数据流。
(2) SIMD——单指令流多数据流。
(3) MISD——多指令流单数据流。
(4) MIMD——多指令流多数据流。第一种是最简单的一种,而后面三种均为并行结构。图像处理中并行处理的主流是SIMD结构和MIMD结构,MIMD的例子有Systolic中的Wavefront。后面将对它们分别做进一步介绍。
4.研究路线
对专用处理器设计的研究,一般应遵循下述路线和步骤:
(1)处理计算理论与算法方案研究。
(2)逻辑体系结构资源分配映射与时序调度研究。
(3)物理层硬件实现系统与电路设计。
下面举例介绍几种并行逻辑结构,它们既可以是粗粒度,也可以是细粒度。8.3.2SIMD结构
大多数早期的并行处理器都属于SIMD结构,已经成功地被用作图像处理器的有STRAN、MPP、DAP等。它们都属于数据位片串行处理,即同时对许多字或字中的某一位进行处理。SIMD的基本结构如图8-9所示。图8-9SIMD的基本结构
SIMD结构包含多个重复处理单元PE(ProcessingElement),由单一指令部件CU(ControlUnit)按照同一指令流CS的要求同时为多个PE分配各自不同的数据流DSm。这里的处理单元PE是指不带指令控制功能的算术逻辑单元,也就是前面所说的数据通路。所谓并行处理器就是指重复设置多个这样的处理单元PE,按照一定的方式相互连接,在统一的控制部件CU的作用下,各自对分配来的数据流DSm并行地完成同一条指令所规定的操作。这里,简单地假设被处理数据来自一个数据缓冲存储器部件Mm中,而且处理后的结果又回到Mm中去。这里的存储器组织Mm需要精确地与图像结构相匹配。重复设置处理单元的理由是出于两个考虑:第一是经济性;第二是简化处理单元之间的通信。因为在这种处理器中,各处理单元执行相同操作,它们受同一控制部件作用,它们之间的通信是同步进行的。
SIMD无疑是最适于某种场合下的图像处理结构,它被公认为特别适于像素级处理。8.3.3MISD——流水线
流水线是并行处理的一种。这里的“流水”,是指被处理的数据像是流水流过。相对而言,流水线(Pipeline,管线、管道)是一种化简长组合操作、降低时钟周期的简便易行方法。简单的流水线可以看做是MISD结构的一种实例。流水线是一种排成一条线的结构,它是相对于不排成一条线的其他结构而独立存在的。其好处在于提高了处理速度;化简了关键路径;降低了功耗。如果在系统处理中有一个复杂的组合逻辑元件,其延迟比其他的元件大得多,那么它将严重影响处理器的速度。假如由该组合元件的传播延迟来确定时钟周期,那么芯片中的其余逻辑电路在时钟周期的大部分时间内将处于空闲状态。
流水线将大块的组合逻辑功能分解为许多组合逻辑片断电路,它们每个的延迟与处理器中其他元件的延迟差不多相等。其中二级流水的结构如图8-10所示。图8-10MISD同步流水线结构显然,在组合逻辑的断开处,需要引入一组记忆单元。通常,我们希望所有组合的输出都能在同一时钟周期内完成。也就是说,断开处要将输入、输出划分成简单不相交的两个集合。整个流水线处理器实现与以前相同的组合功能,只是被划分成几个时钟周期来完成处理和计算。
对于一个流水线来说,从它第一个输入到达算起,直到有相关的输出出现,这段时间所包含的周期个数就称之为流水线的滞后等待期(Latency)。如果流水线划分成的片断级数越多,或者说流水深度越深,则所需的时钟周期就越短,而等待期就越多。深度适当,时钟周期下降明显,效率提高;深度太深,效益非但不明显,且等待期呈线性上升。
整个流水线处理器的等待期延迟比原来不做流水划分的组合逻辑延迟总是要大一些,这主要是由于几个记忆单元需要留有必要的建立和保持时间。但是因为处理器中的关键延迟路径长度经过流水分解之后已经与其他模块大致相当,单个时钟周期的绝对值则得到显著的降低。如何划分,以便在合适的断开处放置记忆单元组等记忆单元,是一项比较讲究的技术。否则,放置不当又会出现新的延迟不平衡现象。每个流水线段完成的运算有移位、求绝对值、加减运算、比较等。以图像压缩中的运动估计为例,其基本运算是减法、绝对值、求和以及比较运算,很容易将其分解设计成流水线结构。
由于时钟频率通常较高,流水线设计中要特别注意解决好时钟错位问题。当工艺改变时,流水线有可能需要重新设计。
以图8-11的同步流水线数据通路为例,就像是一列士兵在班长口令下统一行动那样,待加工数据在时钟的指挥下,依次通过运算电路序列。图8-11流水线形式的同步数据通路在选择时钟的周期时,要求它比流水线中最慢的一个环节延迟还稍微长一点,即
T>max(tpF1,tpF2,tpF3)+t
preg
这是一种所谓的物理时序约束。在每一个时钟跳变时,对新的一批数据采样并重新开始计算。根据处理器吞吐量的定义,本电路每秒处理的数据样本数,其数值就是时钟速率。在本例中,何时采样新数据以及何时输出结果均取决于处理事件的逻辑顺序和物理顺序,并且还要受到同步时钟的统一协调控制。
图8-12介绍一个流水线及并行的两类设计改造方案。图8-12一般数据通路改造为流水线和并行处理设计示例8.3.4MIMD——Systolic结构
在并行处理器中比较著名的是Systolic——心搏式(搏动式)阵列结构。它是在一维流水的基础上扩展而成的,其特点是规则化、模块化。Systolic不属于SIMD/MISD结构,而属于MIMD结构。华裔学者孔重熙和贡三元在此方向上作出了开创性的贡献。Systolic阵列结构也是广义的流水线结构,是流水线的高级形式,该结构便于设计成ASIC形式。它的技术难点是如何保证数据不断流入阵列以使阵列连续忙碌,避免空闲,这是迄今的一个研究重点。
Systolic阵列结构由一组互连单元组成,每个单元执行一些简单的运算。其结构简单且具有相当规则的通信和控制。Systolic型处理器中的信息以流水线方式在各单元之间流动。在Systolic阵列中,只有阵列边界上的单元可以用作I/O端口。利用这种简单廉价的Systolic结构可以提高运算受限类的计算速度(如矩阵相乘。注:另一类为I/O受限,如矩阵相加等)。
设计Systolic结构有以下几点要素:内积步(InnerProductStep,乘加运算)操作;网格连接;统一的阵列控制。
1.内积步(Co←Ci+Ai×Bi)
这是所有算法中最通用的单步乘加操作,被称做是内积步处理器。它是DSP处理器中最基本的乘加(MAC)运算单元。当然,也可以将内积步扩展为某种广义的基本运算功能。
在这个处理器中有三个寄存器RA、RB、RC,它们级联起来就是移位寄存器阵列。每个寄存器有两个连接点,一个接输入,一个接输出,共有两种几何关系,如图8-13(a)、(b)所示。下面,我们分析解释一下DSP常规的乘加运算:C=a0b0+a1b1+a2b2+a3b3+…。它可以被分解为下列递推运算:
C0=0;C1=C0+a0b0;C2=C1+a1b1;C3=C2+a2b2
显然,后面三个式子模板就是内积步的Co←Ci+Ai×Bi结构。两种几何连接没有本质的差别,图8-13(c)是它们的内部逻辑连接关系。在一个单位时间间隔内,一个处理器之内只进行Co←Ci+Ai×Bi的运算,RA、RB以及新的RC将再输出到输入端Ao、Bo、Co上。图8-13内积步处理器结构
2.网格连接
将图8-13(a)加以正交扩展连接,见图8-14(a)、(b),它适于作矩阵—向量乘法;将图8-13(b)加以六边扩展连接,见图8-14(b),则更适用于矩阵乘法。
上述处理器之间所采用的基本网络组织是网格连接,一个处理器只和相邻的处理器连接。主要的连接方式有三种:
(1)直线连接(图8-14(a))。
(2)正交连接(图8-14(b))。
(3)六边连接(图8-14(c))。图8-14心搏式(Systolic)阵列结构
3.阵列控制
由这种连接所组成的处理器阵列统一受有规律指令的同步控制,阵列中的每个单元都按固定的规则对数据进行加工并输出,类似于人的心脏血液循环那样有节奏地进行。这种结构只有采用ASIC设计才能够得到充分体现。
目前,标准数字信号处理器比专用处理器的应用面更为广泛。它采用了新型的并行机制乘法累加器(MAC)结构以增强乘加运算能力。它可以同时进行一个乘加、取数、取指、译码和存储器指针加减等多种运算。缺点是片上内存小,I/O带宽不够,难以实现并行处理。不论通用或专用处理器,数据字长小于16位,在运算处理中普遍地采用定点运算。浮点运算的电路规模大、复杂度高,功耗大、速度低。浮点处理器一般都采用符合IEEE754标准的64位双精度运算。在通用计算机和处理器中已经普遍实现了浮点运算,其主要优点是被处理数据的动态范围增大。随着半导体工艺的不断进步,浮点运算处理部件也正在专用处理领域受到越来越多的关注。事实上,实际的数字信号处理应用中不得不采用浮点运算的场合是有限的,主要是三维物体重建和三维图形CAD方面。定点运算仍然是目前大多数硬件实现场合比较适用的形式,这时考虑精度问题往往比动态范围更重要,同时也可以避开浮点运算中乘积的舍入非线性问题等。目前,在我们最关心的实时专用DSP信号信息处理器设计中,仍然以定点处理为主,通常尽量避免采用通用处理器中的浮点运算。
8.4芯片内外互连技术与信号完整性
USB、IEEE1394串口逐渐取代了并行接口,片上网络(NOC)日渐盛行,FPGA留有LVDS接口及其IP核设计,并串(Serdes)收发(Transceiver)转换芯片以及LVDS接口标准大行其道,这都是由于高速互连引发的技术进展。
假设特征尺寸减小时的芯片面积不变,则芯片规模必然变大。这时,全局性的互连线更加增多,比重也会加大。平均互连线长度不是减短,而是明显变长,因此由互连引起的问题更加严重。为此,人们不得不关注互连及其信号完整性(SignalIntegrity,简称SI)问题,并且寻找能有效解决问题的途径。其他还有电源完整性、数据完整性、电磁完整性、热完整性等。8.4.1高速互连及信号完整性问题
1.高速互连引起的各种后果
互连线电容、互连电感、交直流电阻对信号完整性的影响是不同的,主要后果有以下几个方面。
(1)信号波形失真畸变、干扰噪声加大等,造成工作不正常,这是狭义的SI问题——SI分析。
(2)电源轨道塌陷(RailCollapse),这是狭义的电源完整性(PI)问题——PI分析。
(3)容性负载和导线趋肤/介质损耗造成符号间干扰(ISI),使传输误码率变大——数据完整性分析。
(4)电磁完整性——由于共模电流以及振铃的产生,引起电磁干扰(EMI)。
(5)热完整性——由于需要加大负载驱动能力,随之而来使电路功耗加大——IRDrop分析。
(6)产生严重的传播延迟造成时序问题,制约电路的工作速度——延迟(Delay)与时序(Timing)分析。
(7)电阻造成电迁徙(EM)等,使电路工作不可靠——EM和可靠性分析。上述这些问题都是高速系统与电路设计中的重要研究方向。可以对这七个问题分别专门研究,即:信号完整性;电源完整性;数据完整性(和符号间干扰);电磁完整性(EMI);热完整性(和低功耗);延迟及时序;EM和可靠性等的分析与设计。下面将重点讨论其中的信号完整性问题。
2.高速的含义
现代数字电子系统正在突破1GHz的壁垒,ASIC/PCB的设计必然面临日益突出的信号完整性问题。随着系统工作频率的提高,当数字信号的上升边小于1纳秒(ns)时,互连不再透明,它可能对电路和系统造成颠覆性的后果。
目前超过100MHz时钟的高速数字芯片和系统已经很普遍,而高频下的信号完整性问题非常严重,使得产品很难做到首件成功。信号完整性问题是物理互连在高速情况下的直接结果。
3.互连的范畴
物理互连包括芯片内连线、芯片封装、PCB板及电子系统连接等,它们极大地影响高速时的信号和电源分配网络质量。
真实的互连线,包括芯片内连线、压焊点、封装引线、芯片引脚,芯片外的PCB板线接头、线条、接插件、连接电缆等。此外还有各种无源元件,包括介质、基板、屏蔽盒、机壳、机架等。
4.信号完整性分类
信号完整性讨论的主要对象是数字信号,可以称这是一种模拟效应。数字信号的前沿包含大量的高频成分。
信号完整性,是指信号波形的形状及质量。由于互连干扰和噪声的存在,其波形外观变差,出现了非正常形状的变形,影响电路的正常工作,称为完整性被破坏。
在研究信号完整性时,将互连对系统电气性能的影响从本质上归结为四类噪声问题:反射、串扰、地弹(SSN,涵盖轨道塌陷)、EMI。各种互连线模型被用来分析它对系统带来的干扰和噪声。如图8-15所示,反射(Reflection)是指互连传输线单个网络上的回波现象。信号功率(电压和电流)的一部分经传输线上传输到负载端,另有一部分被反射回来形成振铃(Ringing)。
如图8-16所示,串扰(Crosstalk)是指在两个不同的互连网络之间由于互容和互感造成的相互干扰。产生串扰的被称为Aggressor,而收到干扰的被称为Victim。通常,每一个网络既是Aggressor,又是Victim。图8-15由于阻抗不匹配造成的反射和振铃现象图8-16两条互连线之间的远端和近端串扰情况符号间干扰(ISI),或者是数据完整性,首先是由于容性负载和导线趋肤/介质损耗造成的上升边退化,如图8-17所示。它将形成高速链路中串行的0、1符号间的拖累,进而导致传输误码率变大,产生抖动和噪声。图8-17由于有损线导线及介质损耗造成的信号上升边退化地弹特指互连网络的返回路径中两点之间的感应电压,它是由于回路中电流的急剧变化而产生的局部压降,如图8-18所示。电源分布系统(PDS)中的轨道塌陷,也是指地/电源网络中某段阻抗上的压降。轨道塌陷和电源噪声又统称为电源完整性。
电磁完整性(EMI,ElectroMagneticIntegrity,通常EMI是指电磁干扰),一般情况下,是共模电流使得某个传输线(互连线条、封装引线/管脚)充当天线作用发射电磁波的后果。集成电路芯片和许多电缆也都可能造成辐射泄漏而引起电磁干扰现象。图8-18同时开关电流造成的电源噪声和地弹情况
5.高速互连设计技术
高速互连是造成信号完整性问题的直接根源。为此,必须充分理解它们表现出的“模拟电路”效应,通过针对性设计确定互连的相关结构与参数,尽可能在全面系统级仿真之后再作硬件实现。这样,才有可能使产品具有较好的鲁棒性。
解决信号完整性问题主要在产品创建到设计完成前这一阶段进行,不允许多次执行创建、测试、再设计这种旧式循环过程。为此,只能采用新的设计方法学和新的策略,这就是:采用分析工具与技术,对芯片和系统设计进行建模、仿真以及辅助测量,以完成对信号完整性的验证和设计。采用并串/串并转换(SERDES)是实现高速数据传输行之有效的技术。由并串转换器实现并串转换;串并转换器则实现反向的串并转换,形成比特流,时钟信息被嵌入到比特流中。从数据流中恢复时钟和数据称为CDR(Clock&DataRecovery)。采用Serdes的结果是降低了布线密度,提供了点对点的连接,消除了容易出问题的时钟树。最高数据率已经可以达到10Gb/s。在每个转换端口需要10万个以上的晶体管来实现有效的串并/并串转换及对抗信号变形失真的预加重有源均衡和传输线中的RC无源均衡技术。
6.信号完整性分析技术
分析信号完整性分为时域和频域两种途径和手段。
由于传输线反射和振铃、串扰、地弹等引起的信号延迟和失真,需要通过分析并提出改善设计的补救措施。
电磁干扰破坏信号的完整性,这是分析完整性问题的另一个角度。电磁干扰分为电路传导干扰和电磁场辐射干扰两种。传导干扰是指经由导电介质(例如电容)耦合使得一个电网络上的信号干扰到另一个电网络;辐射干扰则是干扰源经由空间耦合把其信号干扰到另一个电网络上(这时的信号线、引脚都相当于天线)。为了能尽快找到问题的最佳解决方案,除了基本原理之外,必须拥有相应的技术工具。有两种主要的技术工具:分析型和描述表征型。分析型指的是计算推理工具;表征型指的是测量工具。
分析工具强调推理,又进一步分为三类:经验法则、解析近似和数值仿真。它们的准确度和难度各不相同,适用于不同场合。
经验法则很实用,例如简单地认为“线段单位长度的自感是1nH/mm”,可能对进一步的概念推理既直观又快捷。忽略次要因素实现必要的近似,在设计难度和性能指标实现折衷常常是很有必要的。但是在多数情况下需要注意掌握解析近似所达到的准确程度或者是精度。
如果设计要求给出准确的结果,则要用到数值仿真工具。一些新的仿真工具既好用又非常准确。它们不仅能预测特性阻抗、串扰、任意截面传输线的差模阻抗,也能仿真任意一种终端连接对信号完整性的可能影响。提高直觉和创新能力,基于数值仿真进行SI研究是目前我们所倡导的。
数值仿真的质量取决于元器件电气模型(即等效电路模型)的描述质量。
7.信号完整性测量技术
测量工具也可以分为三类测量仪器:阻抗分析仪、矢量网络分析仪(VNA)以及时域反射计(TDR)。
阻抗分析仪通过测量电压与电流之比得到阻抗。测量频率范围为100Hz~40MHz。它一般有四个接头,其中一对接头产生流过被测器件(DUT)的正弦波恒定电流,第二对接头测量被测器件(DUT)上的正弦电压。
矢量网络分析仪(VNA)也是在频域中工作。每个接头或端口发出一个正弦电压(其频率范围从几kHz到50GHz以上),在每个频率点测量入射电压的幅度与相位以及反射的幅度和相位。时域反射仪(TDR)在时域中工作。它发射边沿快速上升的阶跃信号,上升边一般为35~150ps,然后测量反射的瞬态幅度。
此外,眼图则是用示波器测量串行数据传送效果的有效手段。它不用一般的时钟来同步,而是用长周期比特流直接做激励,在示波器的横轴上把一串串比特周期叠加在一起,形成像人眼睛一样的波形。很多新式示波器都具有眼图工作模式选项。只有通过测量才能够真正极大地降低设计带来的信号完整性问题风险。
实际上,至今为止,还没有真正很方便的测试电子系统与电路中信号完整性各种指标及其严重性的直接测试仪器和测量技术。
8.用于分析的传输线模型
设计高速CMOS电路时,要用一半左右的精力研究互连问题。这时研究互连,必须采用传输线模型,重点考察互连线的传输线效应。从传输线的角度来设计互连已经得到90%以上设计师的认可。芯片的情况也必然这样,在设计中引入特性阻抗及其匹配、反射、驻波等一系列概念和分析技术。
任何一段互连线都可以看做传输线,互连线本质上就是传输线。在传输线模型中,将其中的一条线称做信号线(SignalPath),另一条线称之为返回线(ReturnPath),不能简单地把返回线理解成地线。要像设计信号线一样,仔细地设计返回线的物理尺寸,并让返回线尽量靠近信号线。只有按传输线的概念看待互连,才容易用阻抗观点理解反射;用回路互感理解串扰;用净电感理解地弹等等。
互连线参数的本质属于分布式。但是,在研究过程中可以采用不同的简化的集总参数模型,包括集总的RC或者LC模型,考虑了导线/介质损耗的有损传输线RLGC模型。只有当节距ΔX→0时才成为分布式的理想传输线模型(波动方程)。
在用于互连线仿真的模型库中,有四种基本元件,即电阻R、电容C、电感L、理想传输线T。传输线中最重要的概念是阻抗,传输线的阻抗是某段互连线的基本电气特征。传输线阻抗给出了互连线的基本特征,这是表征信号与互连线相互作用时的基本关系表达式。
关于阻抗的基本概念,这里与传统的认识是一致的。但是特性阻抗、输入阻抗、瞬态阻抗、奇模阻抗、偶模阻抗、差分阻抗、共模阻抗的含义还是不同的。
研究信号完整性问题,特别要分清三个参数间的不同:特性阻抗、一般输入阻抗和信号所看到的瞬态阻抗。特性阻抗描述了信号在均匀传输线上遇到的恒定阻抗,即
它与单位长度的电容值和信号速度成反比。
传输线的(输入)阻抗是指驱动器的源端感受到的阻抗,它可能会随传播时间而变。通常,在信号传播出发时,源端感受到的是线特性阻抗。但是随着终端匹配情况、线长和测量时刻的不同,传输线的输入阻抗可能会变成任何一个值。
传输线的瞬态阻抗是信号传输途中随时遇到且感受到的线阻抗。互连线中的材料光速
互连线单位长度的延迟TDL=,其中LL、CL分别为传输线单位长度的电感和电容值。
当数字信号的上升沿为1ns时,3cm以上长度的线就真正是以波的方式在传输线上传播。在更深入研究传输线时,我们需要用A参数、S参数、Z参数、Y参数去描述和分析互连问题。当信号的上升、下降时间与信号以材料光速传播过某线长的时间相当时,就必须正视传输线效应。其界限如下:
RT<2.5×2L/v
其中RT为信号上升边(或下降边)时间;L为互连线长度;L/v为
该线长的总延迟TD。一般介质材料不需要考虑导磁率,材料中的光速度为v = c /。其中,c=3×1010cm/s为自由空间中
的光速。上述条件实际上是放得很宽。例如,假设片内的布线最长为L=1.0cm,则当RT<160ps时,必须考虑传输线效应。这对于目前的一般CMOS工艺水平是不用担心的,在纳米CMOS或其他BiCMOS等高速工艺时则需要注意。
对于PCB板,其最大线长L=50cm不足为奇,此时当RT<8ns时就需考虑传输线效应。注意这种上升、下降速度恰恰已经非常一般。
对于线电容,当RC延迟tpRC大于或等于驱动门延迟Tpgate,即
tpRC≥Tpgate
时,就需要考虑互连线的RC网络延迟。
9.八个基本原则
研究信号完整性,可以提出八个基本原则作为参考:
(1)电容上电压变化时必然形成电流。对于高频信号分量,即使很小的分布电容都可能有很低的阻抗,从而使得信号完整性问题变得很严重。
(2)电感与围绕电流周围的磁力线匝数本质上是一致的。只要电流或者磁力线匝数发生改变,在导线的两端就会产生电压。这一电压导致了地弹(GroundBounce)、反射和串扰等。当流经返回路径电感上的电流变化时,在接地回路导线上产生的电压称之为地弹。它是产生开关噪声、轨道塌陷、EMI的内在机理。
(3)特别要小心“接地”,由于接地不当造成的问题比用接地去解决的问题要多。像关注信号路径一样去寻找“返回路径”,并仔细处理返回路径。
地平面和电源平面的三个功能:器件供电,为数字信号转换提供稳定的基准参考电压,降低噪声、抑制信号间串扰。
我们的着眼点是在其他功能不被破坏的前提下,如何最大限度地实现降噪功能。不然,三种功能都会走向反面:基准失效、供电塌陷、噪声干扰的垃圾通道。这是我们要极力避免并设法消除的。其中地线异常重要。
(4)任何一段互连线都是传输线,都有信号及返回路径问题。一个信号沿着互连线每前进一步,都会看到一个瞬态阻抗。如果瞬态阻抗恒为常数,其信号质量将极大改善。其他重要的传输线概念有:输入阻抗和特性阻抗。
(5)分析信号完整性有时域和频域两种途径和手段。在频域,理想传输线模型的带宽是无限的,而常用的集总参数互连传输线模型则具有一定的有效带宽。在互连线有效带宽的最高频率之上,互连线的性能难以用这种模型加以有效预测。因此,在实用中不能让实际信号的带宽超过互连线模型的有效带宽。
(6)有损耗传输线造成上升边变差,它的带宽是有限的。由于趋肤深度和介质损耗,损耗随着频率的升高而增加:其中导线损耗随频率的平方根增加;介质损耗随频率f线性增加。假设损耗随着频率的升高保持常数,那么上升时间就不会发生退化。眼图是测量串行数据传送效果及符号间干扰的有效手段。对于符号间干扰需要采用均衡技术。要研究有源均衡和无源均衡技术。
(7)分析SI问题的有效工具有:经验法则、解析近似、数值仿真技术。很多情况下,信号完整性公式给出的是定义或者是近似,需要事先了解近似的准确精度。在那些特别要求精确的场合是不能近似的,要采用数值仿真工具。用好SI分析工具可以实现近似及准确的性能预测。
(8)测量SI问题是指用测试仪器来实测信号相关数据。使用测量工具的目的是验证设计过程,降低风险,提高设计的可信度。目前,SI的测量仪器有三种:阻抗分析仪,矢量网络分析仪(VNA),时域反射仪(TDR)。由于属于高速测量,仪器(包括示波器的探头和垂直放大器)都会有一定的带宽而影响所测波形的形状。8.4.2线电容与串扰分析
根据对芯片内单元电路的分析,我们可以得出一个结论,就是逻辑门电路的延迟与负载电容呈线性关系。负载电容主要包括门内部电容和其扇出电容。随着工艺的改进和器件尺寸的缩小,电容减小使得门速度显著提高。当工艺特征尺寸进一步减小时,如果试图进一步提高芯片或者系统的工作速度并改进性能,一个主要对象就是线电容。其他的还有线电阻、线电感、封装、PCB板上芯片间的连接等一系列芯片内外互连问题。随着器件尺寸的减小,例如达到深亚微米、纳米时,线电容对电容量总的贡献所占的比例将会显著变大,甚至喧宾夺主,成为主导因素。
芯片内的电感比较小。线电容与负载电容叠加,直接影响CMOS门的传播延迟及上升边退化;另一方面,线间电容造成线间串扰(CrossTalk),影响了信号的完整性和电路的可靠工作。
1.电容量的计算
芯片中的任意一条金属线或多晶硅线都属于某一互连层上,它们都是有一定线宽的线条,这些线与衬底之间夹有绝缘的SiO2,这样就组成了分布电容。如果导线长l和宽w都比氧化层厚度tox大的多,则可以用平板电容器的计算公式:
其中εox(即εr)为氧化层相对介电常数。这里εo=8.89pF/m,εox=3.97εo=35pF/m。
对于典型的1μmCMOS工艺,其不同的互连层与衬底之间的典型电容量如表8-1所示。位于不同互连层的线与线之间电容的情况稍微复杂一点,此处做一简单介绍。互连层与互连层间的电容形成分为两种机理:平板面电容和边缘(Fringing)线电容。对于典型的1μmCMOS工艺,其电容计算的典型值如表8-2所示。注意:面电容计算只应考虑线间相向对视的面积部分;而边缘线电容由于是存在于线的两侧,具体计算时需要将有效线长再乘以系数2。同一层不同线之间的电容计算,可以参考上述经验值列表。
若芯片总面积为AD,则芯片内互连线的平均线长典型分布为
若设芯片对角线长度为lG,则进一步的研究表明,典型的片内归一化互连线长度l /lG的概率密度p分布规律如图8-19所示。图8-19典型片内互连线长度l / lG概率密度分布从图8-19可以明显看出,有两个峰值以及与之相对应的两个集中分布区域。一个代表局部互连线,一个代表全局互连线(注意两个峰值之间的凹谷常常会降至0)。一般认为,这一规律和趋势普遍存在。所以芯片越大,不论局部或者全局,其互连线的绝对长度将越大。这时,全局性互连线的电容值将显著变大。
2.串扰的减弱和消除
由于不希望的电磁耦合(包括互容或互感)存在,由邻近信号网络在本信号网络上造成的干扰,称之为串扰。
串扰是被动地听“别人说话”。分析串扰,需要分清两个信号网络中,谁是进攻(Aggressor)网络,谁是受害(Victim)网络,重点分析跳变时的影响。进攻网上的信号会在相邻的受害网上引起两类不同的噪声信号:容性耦合信号与感性耦合信号。容性耦合是进攻网上的电压变化在受害网上引起感应电流干扰;感性耦合则是进攻网上的电流变化在受害网上引起感应电压干扰。这种扰动是一种干扰噪声源,所注入噪声的量级取决于邻近信号线上信号跳变值的强度和耦合程度。其特点是错误呈间歇性地出现,因此难以跟踪。现在已经有专门分析串扰的EDA工具,例如Mentor公司的Hyperlynx。
串扰一方面增加到达稳态的延迟,同时又可能引起动态电路和记忆单元的误动作。串扰对异步信号的影响更大。
芯片内互连线具有可观的电容,片内串扰主要来自容性耦合。任意两个信号线之间必有电容,而电容上的电压不能突变。因此,一个线上的电压变化在另一个信号线上形成电荷(流),相当于由电容造成交流短路。对于另一个线来说,这也就是噪声源。因为电容器两端间的电压不能突变,串接电容对高频电压信号源的影响接近于短路。因此快变化的影响比慢变化要大,就是说对高频分量的影响更大。容性串扰是影响门电路电流开关速度的主导因素。要设法避开微带线设计,尽量选用带状线。因为理论上,带状线的远端串扰为0。下面是减少串扰的两个具体措施。
措施之一:错开排线,尽量减小耦合度,避免两个信号线之间形成一个大电容。为了消除串扰,可以限制线长和改变线的走向分布,不要让两个信号线并行布线走过太长的路程。这种情况在双相时钟的两个时钟线,或者总线中的各数据信号线布线时要特别小心。将模拟地和数字地分开主要是为了防止高速数字电路对模拟电路的干扰。
为了减小在同一布线层的两个信号线之间的容性串扰,一定要让相关信号线拉开足够大的间距。措施之二:加排地线(或电源线)隔离,使串扰耦合电容作用大大减弱。或者在两个信号线之间插布屏蔽线,例如电源线VDD或者地线Gnd。如图8-20所示就是这一布线策略的横截面图,这能大大减少同一层和不同层信号线间的串扰。PCB布线的情况与此相似,例如对于四层布线,中间就有专门的电源层和地线层。它们将信号线间的电容化解为线到地的电容,从而使信号间干扰显著降低。图8-20对抗线间串扰的屏蔽措施剖面说明
3.设计驱动电路缓解电容影响
对于那些全局布线,线电容显著变大,大到无法忍受。例如牵涉全局的时钟线、数据总线、控制总线、复位线、置位线等,往往某一个门电路的一个节点要经过数据线或控制线同时连到许多负载门上去。由于线电容和扇出双重重负,其容性负载很重,可以达到好多个pF的数量级!更坏的情况是芯片的输出级,在计算时需要另外加上封装线电容、PCB板上(又称上板)线电容、板上其他芯片及元件的输入负载电容等,这种板上电容的数量级在20~50pF左右,比片内标准负载强大上千倍。这将可能造成致命影响,也许这就是为什么50%以上的ASIC芯片单独测试尚属正常,而装入PCB板之后系统则不能正常工作的部分原因。在一定的前提下,实现对电容快速充放电,加大对扇出的驱动能力是保证设计成功至关重要的一环。这需要在某些门电路之后负载之前添加缓冲器电路设计,以保证电路在这些指定的节点上具有足够快的驱动能力。缓冲器的设计有许多讲究,其种类有:
(1)单级或多级反相缓冲器。在设计插入式单级缓冲门B的情况下,如果缓冲门B后面的最终总负载电容C是前面被缓冲门A的前端输入电容Cin的x倍,则在设计门B时的晶体管宽度应为门A的倍(此处假设二门的P、N管的比率
不变),以保证足够的驱动能力。在多级情况下,可能一级比一级尺寸大,相应的驱动能力也越来越大。
(2)三态缓冲器。
(3)上板驱动器(视具体负载情况而定)。
(4)驱动大电容负载的其他电路。对于容性负载,设计强驱动的意义是,相当于降低充电电阻。8.4.3电阻损耗与电迁徙
1.方块电阻
芯片中均匀导电材料线条的直流导线体电阻值计算公式为
其中R□=ρ/h称做方块电阻,单位为Ω/□,是某种材料形状为一正方形时的电阻值;l为线长;w为线宽;h为线高;ρ为电阻率。表8-3给出典型1.0μmCMOS工艺下不同互连材料的典型方块电阻值。由表8-3可知,金属可用于全局和局部互连;多晶硅只能用于局部互连线;扩散不能用于互连,因为由表8-1可知其电容太大,再与电阻一起所形成的RC网络会造成严重延迟。实际计算线电阻的方法就是查看沿电流方向共接续排列了多少个方块,即用l除以w得到方块个数。此时,不用计算线宽的绝对尺寸,因为线宽大致体现为单个方块面积变大而已。
2.通孔、接触与IR压降
布线层间的电接触转换增加了线电阻值。按惯例我们称距离半导体工艺层(包括扩散和多晶等)最近的金属布线层为金属1,依次类推为金属2、金属3、……各金属层之间的连接称之为通孔或过孔(Via);但是如果金属层2、金属层3等需要与半导体层相连,则首先需要在金属1与半导体层之间采用一个接触(Contact),或者称做接触孔,然后从金属1再通过过孔接续连到其他金属层上。过孔与接触孔的工艺不同,过孔简单得多。对于0.35~1μmCMOS工艺,通常,典型过孔电阻值为2~6Ω,接触(孔)的电阻值则为20Ω左右。一般而言,孔洞的直径越大,则电阻越小。但是实际情况是通孔在高频时具有不同程度的趋肤效应。随着频率
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汽车抵押销售代理合同样本
- 素描景观考试题及答案
- 仓库柜子改造方案(3篇)
- 旧屋安全检测方案
- 2026版《全品高考》选考复习方案生物0401 第11讲 细胞的增殖
- 美容老师培训课件
- 分泌性中耳炎的护理
- 2026版《全品高考》选考复习方案物理02 单元过关卷(二) 含答案
- 枣庄高考试题及答案
- 医学影像考试题及答案
- 柴油运输协议书年
- 2025年安徽中医药高等专科学校单招职业适应性测试题库有答案
- 成绩单申请书
- 接警调度培训课件
- 手术室的安全核查
- 高校人事档案数字化建设实践调研
- 学生行为习惯养成教育实施方案范例
- 收购公司股权项目可行性研究报告(完整版)
- 《农民工参与民族地区新农村建设的模式研究》
- 《仓储基本知识》课件
- 不动产登记知识课件
评论
0/150
提交评论