在科技高速发展的当今世界,随着电子技术和集成电路技术的不断进步,半导体工艺的迅猛发展以及人们对信息高速化、宽带化的需求,高速电路设计已经成为电子产品开发的一个必不可少的环节。
如果想设计出一款高端产品,就意味着需要不断地挑战电子设计的各种极限。不论你是PCB工程师、系统工程师,还是芯片设计工程师,都面临着信号完整性——当今高速电子设计的一大挑战。如何高效地设计高速接口电路如DDR4、PCI Express、40G比特以太网接口或者SerDes接口?如何在设计过程中得到可预见的误码率和减少电磁干扰和串扰?如何处理由高速信号互连线引起的反射、串扰、开关噪声等信号完整性问题,确保信号传输的质量?这些都不是简单的工作。
高速设计有何特别?
所谓能力越大,责任越大。高速设计在电子设计领域也带来了自己独特的挑战。多年来,高频信号设计部分的增加与电子系统性能的不断提高紧密相连。随着系统性能的提高,PCB设计师的挑战开始加剧。芯片越来越小,电路板布局越来越密集,我们也在不断寻求提供最低功耗的芯片。随着所有这些技术的快速发展,高速设计作为优秀高性能产品设计的核心,包括其所有的复杂性和解决方案便应运而生。
过去30年来PCB设计发生了很大的变化。 1987年,我们认为0.5微米技术是全能的,但是今天我们发现22nm技术是常见的。 1985年推出的在当时代表主流设计复杂度的边缘速率(通常为30ns)与今天的边缘速率(1ns)相比简直是小巫见大巫,如下图所示:
当涉及到高速电路设计的时候,电路的布局布线工作将不再是简单地快速连线或者为满足产品的外形尺寸去简单的布局。工程师需要事先规划每个处理器、内存模块和连接器的位置,并仔细确定它们之间的高速互连设计。完善的高速设计意味着在设计之初就制定好电路的约束和规范。确保电路板上的所有信号完美地进行传输,并最大限度地降低信号相互之间的干扰。那么这里就要提到一个专业名词信号完整性(SI)。SI就是确保瞬时跳变的数字信号通过较长的一段传输线后,在接收端仍能完整地被正确接收,并保证良好的电磁兼容性。SI主要涉及到延迟、反射、串扰、时序、端接策略、电流回路等问题。
信号完整性问题产生的根源:
-
数字信号开关速度不断提高,上升沿变快,造成的信号反射、过冲、振铃和串扰
-
信号的幅度不断降低,信号/噪声比越来越小
-
信号速度的提高
-
信号在传输线上的传输延迟
信号完整性主要问题表现:
-
信号反射:
如果一根走线没有被正确终结(终端匹配),那么来自于驱动端的信号脉冲在接收端被反射,从而引发不预期效应,使信号轮廓失真。
信号反射产生原因:
-
过长的走线
-
未被匹配终结的传输线
-
过量电容或电感,以及阻抗失配
2. 过冲与下冲
虽然大多数元件接收端都有输入保护二极管保护, 但有时这些过冲电平会远远超过元件电源电压范围,损坏元器件。
过冲与下冲产生的原因:
-
过长的走线
-
信号变化太快
3. 振铃(Ringing)
信号的振荡发生在逻辑电平门限附近,多次跨越逻辑电平门限从而导致逻辑功能紊乱。信号如果在传输线上来回反射,就会产生振铃。
4. 时钟偏移(Clock Skew)
时钟偏移(Skew)是指不同的接收设备接收到同一时钟驱动输出之间的时间差。对于参考时钟而言,时钟偏移有正延时和 负延时之分。时钟偏移可引起有效时钟周期的减小。
产生的原因:
-
由不同时钟路径的延时或驱动器件不同驱动门之间的时差所造成
-
由于接收端之间的阈值不同、负载电容不同、信号质量的差异所造成
5. 串扰
串扰是指两个不同的电性能网络之间的相互作用。产生串扰(crosstalk) 的一方被称作Aggressor,而收到干扰的一方被称作Victim。通常,一个网络既是入侵者,又是受害者。串扰会导致误触发。
-
串扰是由同一个PCB板上的两条信号线之间互容和互感的容性耦合和感性耦合引起线上的噪声。容性耦合引发耦合电流,而感性耦合引发耦合电压。
-
影响串扰的因素:PCB板层的参数(厚度,介电常数)等、信号线间距、线端接方式等。
-
易产生串扰的信号:异步信号和时钟信号
串扰的解决方法?
信号线距离地线越近,线间距越大,产生的串扰信号就越小。因此解决串扰的方法是移开发生串扰的信号或屏蔽被严重干扰 的信号(包地)。
6. 电磁辐射
EMI所产生的问题包括过量的电磁辐射及对电磁辐射的敏感性两个方面。当数字系统加电运行时,会向周围环境辐射电磁波, 从而干扰周围环境中电子设备的正常工作。
电磁辐射产生的主要原因:
-
电路频率太高
-
布局布线不合理,包括特性阻抗控制、线宽控制
高速设计的解决方案
针对上述高速设计中有关信号完整性方面常见的问题,在进行具体的设计过程中都有哪些解决方案?
-
PCB分层设计
PCB的叠层结构设计是进行信号完整性的分析的基础, 建议采用多层设计,设计的一般原则如下:
-
元件面的下层为地平面,以提供器件屏蔽层和为顶层布线提供参考平面
-
所有信号层尽可能与地平面相邻
-
尽量避免两信号层直接相邻
-
主电源尽量与对应地相邻
-
兼顾层压结构对称
-
关键信号与地平面相邻,不跨分割区
如上图所示,对于多层板,关键布线层(时钟线、总线、接口信号线、射频线、复位信号线、片选信号线以及各种控制信号 线等所在层)应与完整地平面相邻,优选两地平面之间。因为,关键信号线一般都是强辐射或极其敏感的信号线,靠近地平面布线能够使其信号回路面积减小,减小其辐射 强度或提高抗干扰能力。
另外,多层板中,电源平面应相对于其相邻地平面内缩(建议值5H~20H)。 如下图所示,电源平面相对于其回流地平面内缩可以有效抑制“边缘辐射”问题。
-
PCB布局设计
PCB布局设计时,应充分遵守沿信号流向直线放置的设计原则,尽量避免来回环绕。避免信号直接耦合,影响信号质量。
多种模块电路在同一PCB上放置时,数字电路与模拟电路、高速与低速电路应分开布局。避免数字电路、模拟电路、高速电路以及低速电路之间的互相干扰。
当线路板上同时存在高、中、低速电路时,应该遵从下图中的布局原则。避免高频电路噪声通过接口向外辐射。
存在较大电流变化的单元电路或器件(如电源模块的输入输出端、风扇及继电器)附近应放 置储能和高频滤波电容。储能电容的存在可以减小大电流回路的回路面积。
线路板电源输入口的滤波电路应应靠近接口放置。避免已经经过了滤波的线路被再次耦合。
在PCB板上,接口电路的滤波、防护以及隔离器件应该靠近接口放置。可以有效的实现防护、滤波和隔离的效果。
-
PCB布线设计
普通走线要注意的地方
-
PCB走线需要避免直角走线。直角走线导致阻抗不连续,导致信号发射,从而产生振铃或过冲,形成强烈的EMI辐射。
-
PCB走线特别是时钟线与总线的粗细应保持一致。粗细不一致时,走线阻抗会发生突变, 导致如同前页中的问题。
3W原则
为了减少线间串扰,应保证线间距足够大,当线中心间距不少于3倍线宽时,则可保持70%的电场不互相干扰,称为3W规 则。如要达到98%的电场不互相干扰,可使用10W的间距。时钟、总线、射频线等关键信号走线和其他同层平行走线应尽量满足3W原则。避免信号之间的串扰。
差分对布线(Differential Pairs)
差分信号就是利用两根线分别传输正信号和负信号,接收端根据两根线的差值就能判定接收到的比特,差分信号能够极大缓解远距高速通信的共模信号偏移问题。成对的布线,信号相反,由于干扰对两根走线影响相同,增强了抗干扰能力。良好的差分对应当距离足够近,并且具有一定的绞合度以抵消空间电(磁)场的影响。所以在布线中尽量保持等长,等宽且紧密靠近。所谓尽量靠近且平行是因为间距会影响到差分阻抗(differential impedance)的值, 此值是设计差分对的重要参数。若两线忽远忽近, 差分阻抗就会不一致, 就会影响信号完整性(signal integrity)及时间延迟(timing delay)。
在Alitum Designer中,可以在原理图设计阶段就定义差分对信号。如下图所示。
当原理图导入到PCB时,其设计规则设置同样一起导入到PCB design rule里。然后在PCB中进行差分对布线。如下图。
From-Tos 布线
From-To主要是用来定义多节点网络上的pin-to-pin管脚之间的布线长度。通过这种方式,我们可以控制一个网络上某个特定管脚到另一个特定管脚之间的走线长度,以及对应的信号传输延迟。这项设置主要在PCB设计中进行。
对于多节点网络,我们需要对每个重要的驱动端-接收端的管脚对创建这些From-To对象。对于多节点网络中这些驱动端到接收端的多组From-To对象来说,最主要的目的是要控制对节点网络中每组信号(从驱动端某管脚到接收端另一管脚)的飞行时间。该飞行时间是指信号从驱动端传输到接收端,并达到一定的电平之间的延时。和传输延迟和上升时间有关。这种情况下,需要在每组驱动端到接收端进行网络分段控制(静态时序)。From-To用来进行多节点分段控制的方法在高速设计中,对保持信号完整性非常重要。如下图所示为From-To用于多节点网络中各组信号传输的时序考虑的例子。参考http://publish-it-online.com/publication/?i=49146 第26页。
阻抗布线(Impedance control)
阻抗控制在高速PCB设计中是非常重要的。俗话说的好,工欲善其事,必先利其器。要想板子利索的跑起来,传输线阻抗计算肯定不能等闲视之。
在高速设计流程里,叠层设计和阻抗计算是必须要认真考虑的。基于精确的叠层结构设计,AItiumDesigner建立了标准的PCB微带线和带状线模型,由此可以通过设计目标阻抗来自动控制所需的走线宽度,避免在换层走线时重新计算线宽,再人工改变走线宽度的繁琐。如下图所示。
阻抗计算方法很成熟,除了Altium Designer中内置的阻抗计算功能之外,由于更多高速设计特定的要求不同,设计师还可以辅助外部的专门计算阻抗的软件来计算,并综合考虑。比如Polar Instruments的SI8000,SI9000,或Freeware的TNT-MMTL都可以。不同的软件计算的差别很小。
阻抗的计算是相对比较繁琐的,但我们可以总结一些经验值帮助提高计算效率。对于常用的FR4,50ohm的微带线,线宽一般等于介质厚度的2倍;50ohm的带状线,线宽等于两平面间介质总厚度的二分之一,这可以帮我们快速锁定线宽范围。
除了提升计算效率,我们还要提高计算精度。因为阻抗控制跟制造板厂的关系也很大。由于加工工艺不同,材料介电系数差异等情况,阻抗设计需要设计师与PCB制造板厂共同协作,根据经验调整,才能对阻抗有一个理想的控制。
长度调整走线(Length Tuning)
匹配走线长度保证了时间敏感信号同时到达目标引脚。在不违反设计规则的前提下,通过对网络走线中增加蛇形线等方式,能够动态优化和控制网络或差分对走线长度。走线长度调整一般是为了控制时序。
比如等长线是为了减少信号相对延时,常用在高速存储器的地址和数据线上。简单来说:等长线的作用,就是让信号传输的速度一致。I2C总线无需画等长线,虽然I2C信号与内存一样都是有相对时序要求,但由于信号频率较低,此时由导线长度引起的延时不足以影响正常时序,所以无需等长。当然如果等长也没什么不好的。差分线也一样,高速信号要注意等长。差分线在等长布线时要保证2根线等距平行。
走线长度调整有多种应用。比如:
点对点网络走线长度调整。如下图所示。
差分对走线长度调整(差分对内部两个网络之间走线等长,以及两对差分对之间走线等长)。如下图所示。
封装内管脚延迟所需要的长度调整。 比如大型BGA器件内部到器件引脚的信号走线长度,通常没有进行匹配,而且各引脚的信号走线都不相同。这些芯片内部的引脚走线数据可以从芯片的数据手册拿到。而我们这里所讲的长度匹配,就是在芯片外部进行PCB设计走线的时候,进行长度调整,来匹配芯片内部到引脚的走线部分,进行相应的延时补偿。如下图所示。
Xsignal
在高速布线设计时,网络的布线拓扑结构是根据这个网络的脚对脚(pin-to-pin)连接方式来安排的。默认情况下网络的 pin-to-pin 连接方式是按照最小长度定义的。网络拓扑结构的选择有多种原因:
-
在高速设计中,我们要尽可能地减少信号的反射现象,所以一般选择菊花链形式的网络拓扑结构;
-
对于地网络,星形拓扑结构可以保障所有电流回到一个共同的公共点。
-
DDR2(某些情况下的DDR3),可采用平衡T(balanced-T)或支路匹配(branch matched)的拓扑结构。
-
DDR3和DDR4 中引入了飞越(fly-by)拓扑结构。在fly-by拓扑结构下,地址/控制线/时钟信号从一个SDRAM到下一个之间依次布线,这种方式可以消除反射干扰。
所以,XSignal实际上是指设计师定义的两个节点之间的信号路径。可以是同一个网络中的两个节点,也可以是相关的网络之间(由一器件分隔开来)的两个节点。一旦节点对被确定,即可通过相关的设计规则来设置它们的长度以及需要匹配的长度。在信号长度规则中使用 XSignal (pin pairing) ,实现每个支路不同的延时补偿。
如上图所示,Altium Designer可以自动根据XSignal Wizard简单快捷地生成XSignal,并对其进行相应的规则设置来进行高速布线。
如上图所示,采用XSignal对DDR4的连接方式进行配置。在长度规则中使用 xSignals (Pin Pairs),并调整每个pin-pair 的长度达到延时要求。从金手指到第一个器件之间的总线连接长度必须相等。
相关链接: