当前位置: 首页 > news >正文

信号完整性简介第一篇

本章将讲述信号完整性相关问题。首先提出什么是高速系统设计中的信号完整性,其次结合影响信号完整性的各种因素,深入讨论在高速系统设计过程中会碰到的几类信号完整性问题,并对每一类问题提出相应的预防措施和解决方案。

需要说明,本章所阐述的内容已经有很多执着于此领域的先贤前辈们进行了大量的研究,并出版了很多经典的专著加以论述。作者在学习和工作中从这些专著中汲取了很多知识,受益匪浅,因此在对这些问题的阐述中,会借鉴已有的一些经典著作,本章中将对所引用内容标明出处。

为尊重原作者劳动,同时照顾读者在阅读理解上的连贯性,本章内容的阐述风格,将从一般性问题叙述出发,对信号完整性的各类问题加以描述和说明,为读者阅读本书后续内容做铺垫和基础。然后在针对每种信号完整性的具体应用和解决方案上,作者从本身实际工作的体会和经验出发,结合经典著作中的观点,为读者进行全新的展示。

另外,对信号完整性问题的描述和分析,建议读者参看原著中对应的部分,以获得更加完整的理论体系和经典的经验知识。

3.1 什么是信号完整性

近几年来,电子设计工程师们一直热衷于谈论高速系统设计中的信号完整性问题,似乎如果你是一个电子工程师,在你的项目中不谈信号完整性问题,你都不好意思和人家打招呼。然而究竟什么是信号完整性问题?这不同于其他的技术名词,无论从学术界还是工程界都找不到统一的答案,也就是说缺乏一个统一的、公认的定义。

为什么会有这样的情况发生?作者认为这主要有两个原因,其一,信号完整性问题不是从学术界产生的。它来源于实际的工程设计实践中,因此没有来自学术界的统一定义;其二,信号完整性问题不像频率、功耗这类可公式化和量化的物理量,它是一个度,是一个具有可行性的设计范围,依据工程实施的具体条件而变化,因此也不存在来自工程界的统一定义。但为了交流讨论的方便,我们还必须要给出一个定性的定义,从而使我们的交流和讨论基于一个共同的基础和理解平台。

在作者提出自己的定义之前,我们先把信号完整性做一个类比,以便更好地理解作者给出的定义。读者是否想让人的完整性和信号的完整性这两个概念之间的关系。首先,作为个体的人,我们要从自己出发,从知识、道德、甚至自身的身体健康等各个方面,做好“好”每个个体的人,然后再通过每个个体的人,经过有机的组合,来形成一个完整的、健康的、和谐的社会。同样,在一个电子系统中,信号完整性和系统的完整性具有类似的关系。

因此,基于这样的理解,依据作者多年的工作经验总结,在此提出一个适合于对本书整体内容阅读和理解的定义“所谓信号完整性,是指在不影响系统中其他信号质量的前提下,位于此信号传输路径上的各个负载能够尽最大可能复原(接收到)驱动端所发出的原始信号的状态”。如果每个信号都达到了这样的完整性,那由这些“完整的”信号组成的系统,同样具有很好的完整性。

需要再次强调的是,这个定义只是一个定性的概括,并非一个量化的概念。读者不能僵化地去按照某个标准或者限制条件把信号完整性量化,因为它所涵盖的内容会随不同的系统设计环境发生变化。

还是以我们熟悉的PCI系统做例子,今天我们谈信号完整性的时候,设计者都推崇或不遗余力地减小信号反射,以达到完美匹配,把反射减小到最小作为目标。然而对于已经占据系统总线主流地位十余年的PCI总线,它的“信号完整性”恰恰是利用了反射机制,这正好和很多人认为的信号完整性概念相抵触。所以,对于这个概念的掌握是应该在实践中灵活运用,以达到每个信号安全传输,整个系统安全稳定为工作的最终目的。

3.2 信号完整性问题分类

在继续深入讨论各类信号完整性问题及其解决方案之前,我们先来看看在实际工作中,我们都遇到过哪些信号完整性的相关问题,图3-1中,列举了一些实际工作中遇到的信号完整性的相关名词,相信读者已熟知其中的一些名词或者对某些名词所代表的含义有了些许体会。

这些名词和术语经常会在信号完整性的相关书籍中出现。通常我们读书读到此处不会有什么特别的感觉。然而,如果当这些名词曾经或者正出现在读者负责调试的系统中,恐怕会别有一番滋味吧。

如果读者面对如此众多的信号完整性问题感到困惑,甚至无所适从,那么请不要担心,Eric博士已经对这些问题进行了深入的研究,为那些迷失在信号完整性问题中的工程师们指明了正确的方向,并在他的一篇论文中详细阐述了处理信号完整性问题的方法。在此,作者根据自己的体会对Eric博士的研究成果进行复述,对此感兴趣的读者,可以参照Eric博士的原文,参考文献列表中的(Signal Integrity:Problems and Solutions)一文进行深入研究。

按照Eric博士的观点,所有的信号完整性问题可以分为四类。


• Single Trace Signal Integrity——单条传输线的信号完整性问题;

• Crosstalk——相邻传输线之间的信号串扰问题;

• PI Related——与电源和地分布相关的问题;

• EMI——由于系统自身的高速信号传输缺陷,造成高速信号不能很好地在规定环境范围内进行传输,部分能量从传输路径逃逸而对周围环境造成的电磁干扰和污染问题。

在实际应用中,这四类解决方案是按照层次逐级递进的,也就是说,在实施信号完整性解决方案时,要按照上述的分类顺序依次解决好问题,然后再解决下一个层次的问题。这样的依据是,工程实践表明,超过90%的信号完整性问题,其根源来自于单个信号或信号之间的串扰问题。在充分保证每个信号自身的信号完整性之后,再考虑两个或者多个信号之间的串扰问题,然后再考虑电源和地的供电能力和分布问题,最后考虑EMI问题。

只有按照这样逐级递进的方法,才能很好地解决整个系统的信号完整性问题。相反,如果不是按照这个方法解决问题,当工程师直接面临如图3-1所示的那些信号完整性问题时,必然会感到无从下手,因为对于同样一个信号完整性问题,工程师所面对的是纠结在一起的各种问题的表象,而引起这种表象的根源却有很多种,在多种可能性中找出问题的根源,那必然会费时费力,而且不得要领。

其实这种层次化的分析问题方法,已经是大家的共识了,只是在面临实际问题的时候,人们往往会忘记这个最基本的解决问题的方法。我国古代哲学家曾子就曾经论述过处世哲学“修身,齐家,治国,平天下”。作者认为,这个处世观点与Eric博士对待信号完整性的观点有异曲同工之妙。作为一个人,首先要修身,做好自己该做的事情,接着处理好家庭、社会关系等,然后才能逐步提高层次修养和能力范畴。面临纷繁复杂的信号完整性问题,首先要考虑的是单个关键信号的完整性,在对所有关键信号的完整性有了一个很好的控制和掌握之后,再去考虑串扰,有时你会发现,当你处理好单个信号的传输质量之后,串扰也就不存在了,电源的抖动效应也没有了,整板的EMI问题也消失了。因此,结构化、层次化的分析问题和解决问题的方法,是我们在处理高速信号完整性问题时的一个基本原则。

还有一点需要说明的是,在影响信号完整性的众多因素中,时间是一个非常重要的因素。但是对于时间这个因素,它除了和物理载体,也就是传输线的物理特性相关外,更多的是受到整体信号逻辑的约束,所以对于时间因素的讨论将结合具体应用中所采用的信号逻辑一起分析,这部分内容将在随后的一章中给出详细的例子分析。因此,本章的后续内容围绕着和噪声相关的这四类信号完整性问题进行讨论,对这四类信号完整性问题产生的原因逐一进行详细阐述,对每种影响信号完整性的原因给出一般性的解决方案。

3.3 反射的产生和预防

在电子系统中,一个电气网络就是一系列的金属导体及由这些导体连接在一起的所有输入输出端口的总和,如图3-2中所显示的网络结构。从定义上可以看出,一个电气网络应该至少包括三种元素:驱动、负载及互连体。当然这里的驱动和负载的个数都不只限于一个。

对于这样的网络,要研究其信号完整性,应该是构成网络的所有元素的整体效果。然而,在实际设计中,对于驱动和负载的性能,应用工程师的干预能力几乎没有。在定义了系统需求和选定器件之后,工程师就几乎没有任何能力和手段来影响驱动器件和负载器件的性能了。因此,留给信号完整性工程师们的只有对

互连结构及互连体本身特性的设计和优化(在某些公司的硬件流程中,该部分称为无源设计)。在本节中,我们从最基本的网络结构出发,研究最简单的互连结构和互连体的性能对网络信号完整性的影响。然后,从最简单的互连结构出发,进一步来讨论复杂互连结构和多驱动多负载网络的信号完整性设计技术。

前面已经讲过,在涉及信号完整性问题时,有90%以上的问题来源于单个网络。而对于单个网络而言,几乎所有的问题都来源于信号传输路径上的不连续所导致的反射。因此,对于单个网络的信号完整性问题的研究就是对这个网络的阻抗分布和反射特征的研究。当整个网络上的反射足够多,累积到一定程度,就会破坏在这个网络上传输的信号,使得信号质量严重下降,负载接收端不能正确判别源驱动端发出的原始信号含义,从而也就导致信号传输失败。严重的反射不仅仅使自身网络上的信号不能正确识别,还会导致对邻近网络的串扰,使电路供电特性紊乱,以及地辐射等一系列信号完整性问题。可见,对于单个网络传输特性的研究始终是首要任务。

3.3.1 反射的产生

本节中,我们通过详细的理论计算来说明反射的产生过程。

在2.3节中,我们已经讨论了微波发生反射的原理。按照这个原理和推导的反射系数公式,我们来计算一下如图3-3所示的电路结构中发生的反射情况。注意,此时我们要从微波信号的观点来看待传输线。

图中,理想信号源Vs,内阻Rs,均匀介质传输线AB,传输线的特征阻抗为Z0,延迟为TD,终端负载电阻R。

1)在t=0时刻,信号源Vs发出一个上升沿信号。该上升沿信号在A点产生的入射电压V1是由Rs和特征阻抗分压得到的:V1=Vs·Z0/(Rs+Z0),该信号经过均匀传输线AB时,经过TD传输时间,在到达B端前的任一时刻,没有发生任何反射和畸变,如图3-3所示。

 2)在t=TD时刻,上升沿信号到达传输线B端,遇到终端负载R,根据反射的原理,此时会发生反射,反射系数为:ρB=R1-Z0/R1+Z0,反射电压为:VTB=Vi·ρB,从而B点的电压为:VB=VTB+Vi。而这反射电压信号会沿着传输线从B传向A。在经过TD时间的传输,到达A点前一时刻,A点的电压还是保持t=0时刻的入射电压。而从B点回来的反射电压会在A点再次发生反射,并和A点电压叠加,形成新的A点电压,如图3-4所示。

3)在t=2TD时刻,从B端反射回来的信号到达A端,遇到源端内阻Rs,根据反射原理,此时会在A点再次发生反射,反射系数为:ρA=Rs+Z0/Rs+Z0,反射电压为:VATB=VTB·ρA=(Vi·ρB)·ρA,从而A点的电压为:VA=Vi+VTB+VATB。

此时该网络上各点的电压状态为图3-4所示。而该反射电压信号VATB会沿着传输线再次从A传向B。在经过TD时间的传输,到达B点,发生新的一次反射,并形成新的B点电压,如图3-5所示。

 4)这样,经过多次反射叠加过程,可以用图3-6表示。此图即是在信号完整性分析中著名的梯形反射分析图,读者可以在很多关于信号完整性的书籍中发现它的身影。

5)当时间趋于∞时,达到稳定状态,这时就可以用直流的观点来看待电路。传输线AB对于直流信号阻抗为0。A点和B点电压相等,其电压值就是R1和R2按着欧姆定律进行分压的结果,即:VA=VB=Vs·R1/(R1+R2)。

对于这样的反射过程,我们可以通过Cadence的仿真工具来验证上述分析结果。这是我们第一次引入Cadence工具,这里我们先不考虑其使用方法和技巧,只是通过实际的电路仿真来验证我们的实验结果。关于Cadence高速信号仿真工具的使用方法,在以后的章节中会详细介绍,包括仿真电路模型和拓扑结构的建立。图3-7是一个电路的拓扑结构。为了对比观察方便,这个电路结构中的终端电阻R1的值被设置为三个值:20Ω、50Ω和80Ω。Cadence仿真工具提供这样的功能,运行一次仿真,可以按照这三个值,得到三个不同的仿真结果。

图3-8是这个电路按照三种不同的R1终端电阻配置,得到的仿真结果。

在该实例中,信号源ES10被设置成发出一个幅度为5V的脉冲信号,在0时刻发出上升沿,48ns时发出下降沿,上升时间和下降时间都为2ns,传输线TL1的传播延迟设置为5ns。依照这些参数,读者可以仔细按照我们的分析过程,对照图3-7检验仿真结果。

该仿真实例的Cadence环境下的电路结构和所使用的仿真模型,可以从网上下载的资料中得到,实例名为“Reflect.top”(注意下图是程序输出图,其中的Ohm即Ω)。

在这个网络中,电压源是5V,内阻Rs为50Ω,传输线阻抗为50Ω,我们分别用三种不同阻值的电阻做负载R,阻值分别为20Ω、50Ω和80Ω。我们可以粗略计算一下这个仿真结果,只计算第一次反射结果,入射电压由电源内阻和传输线阻抗做分压,为2.5V,这个入射电压对于三种情况都是一样的。然后在传输线的末端,依据R阻值的不同,我们将得到三个反射系数,分别为:

ρ=(R1-Z0)/(R1+Z0)=20-50/20+50=-3/7;ρ=50-50/50+50=0;ρ=80-50/80+50=3/13

那么第一次反射后,得到的R1上的电压(入射电压加上反射电压)就分别为2.5+2.5×(-3/7)=1.428V,2.5V 和 2.5+2.5×3/13=3.077V

从这个实例的分析结果中,我们还可以解读到其他的一些有用信息。请读者注意,随着R1阻值的变化,我们得到的反射电压变化趋势也是不一样的。按照反射系数公式ρ=(R1-Z0)/(R1+Z0),我们知道,当R1>50Ω,即传输线阻抗大于50Ω时,终端反射的电压极性正,叠加后终端电压增加;而当R1<50Ω时,终端反射的电压极性为负,叠加后终端电压减小。三种极端情况下反射系数如下。


• 终端匹配,反射系数为0;

• 终端开路,反射系数为+1;

• 终端短路,反射系数为-1。

参照图3-9对这三种情况的总结,记住这个变化规律,作为参考我们在进行高速系统设计和信号完整性分析时能够快速解决问题。

3.3.2 反射的消除和预防

通过上一节中对传输线中反射现象的分析,我们知道,不论在传输网络上哪一点有阻抗不连续,都会引起传输信号的反射,当这些反射累积达到一定程度,就会严重影响信号质量。因此,要提高单条传输线网络的信号质量,首要的问题就是要保证这条传输线上阻抗的一致连续性。然而,在实际的PCB设计环境中,影响微波传输路径上阻抗变化的因素主要有。


• 微波传输线线宽W的变化;

• 传输线通过过孔,从一个布线层切换到另外一个布线层;

• 参考平面(回流路径)的变化;

• 通过连接器连接的网络;

• 传输线上分支结构和引入芯片的Sub线;

• 位于传输线终点的负载,其阻抗和传输线阻抗不匹配。

通常,对于高速系统设计,经常采用以下策略来保证阻抗一致连续性。


• 仔细设计系统的叠层结构,并按照一致的阻抗设计原则,来决定各个布线层传输线的物理和几何参数,以达到期望阻抗;

• 仔细设计信号的回流路径,保证回流路径的完整性,能够为传输线提供一致的参考平面;

• 按照阻抗匹配的设计原则,在传输路径的适当位置放置匹配电阻来控制反射;

• 仔细设计整个传输路径的拓扑结构,尽量减少分支数量和减小Stub线的长度。

本节中,我们已经反复强调过,对于高速传输线系统不能忽略其回流路径,即参考平面。这里,我们通过简单的图例来说明一下,完整的参考平面对传输线阻抗一致性的影响。对比图3-10中的A和B两个图,由于B中的参考平面出现缝隙,造成高速传输线在缝隙区域不能建立和其他区域一致的电磁场,因此也就得不到一致连续的阻抗,会在此处造成反射。一般,在参考平面上出现缝隙是由于高密度的过孔,或者由通孔式连接器引起的。因此,前两个策略的应用方法比较直观,实际上也比较好操作,可以有效地为高速传输线提供连续阻抗。而对于影响阻抗变化的后两种因素,即传输线的拓扑结构和负载阻抗不匹配问题,就要应用后两个策略,这两种消除反射的策略不像前两种那样直观和易于使用,我们将用独立的章节进行阐述。

3.3.2.1 匹配

通过3.3.1节中对反射产生机理的分析,我们知道,要消除所传输的信号由于阻抗不匹配而在终端引起的反射(通常我们称为终端反射,或者一次反射),唯一、也是最有效的办法就是使传输线的特征阻抗和终端负载阻抗匹配。然而,听起来很简单的方法在实践中往往是行不通的。虽然我们可以通过仔细地设计PCB的各种物理参数,选择合适的PCB材料做出我们想要的特征阻抗传输线,然而我们却没有权利来选择或者更改负载特性。由于生产工艺和芯片设计商之间的差别,我们不可能要求所有的负载都保持一个阻抗。退一步讲,即使单个芯片的负载阻抗符合要求,但是当对于一个复杂信号的拓扑逻辑使用多个负载时,总的等效阻抗还是会发生变化的。因此,只有在芯片外部寻找办法才是可行途径。


1. 终端匹配

既然负载的阻抗是造成终端反射的原因,那么可以通过外接电阻的方式来改变等效负载的阻抗。如图3-11所示,在终端上拉匹配和终端下拉匹配中,匹配电阻的阻值要和传输线阻抗相匹配,这样就会有效地消除终端反射。然而,需要特别注意的是,无论是终端上拉匹配,还是终端下拉匹配,由于额外电阻的引入,使得终端信号的直流工作点会发生偏移,从而影响信号的判决门限和噪声容限(Noise Margin)。所以,对这种方式的使用,要经过仿真,仔细确定其工作点的偏移情况。在终端戴维南匹配中,采用了两个电阻匹配,这种方式的灵活之处在于它能够在保证达到匹配的前提下,通过改变Rp和Rn的值来调节接收端信号的直流偏压。

为了弥补上述匹配方式的缺陷,通过改进,我们有如图3-12所示的终端交流匹配方式。交流匹配方式的优点是,可以有效控制直流工作点的偏移,然而它的缺点也是很明显的。


• 由于加入了电容,所以匹配的成本开销和布线开销都增加了,尤其不适于大规模并行总线的匹配方案;

• 同样是由于这个电容,使得信号的边沿变得平缓,因此不适于高速信号的匹配应用。


2. 二极管匹配

在并行匹配中,还有一种特殊方式,就是二极管匹配,如图3-13所示。

 该匹配方式的工作原理是这样的,当传输线上并没有信号传输时,实际上两个二极管都不工作,也就是说在静态时,该电路结构并没有阻抗匹配的作用。而当驱动端在传输线上发出信号后,由于该结构是失配状态,因此,信号在终端R处发生反射。当反射电压大于VCC+VT时,VT是二极管的正向导通电压,二极管VD1导通,多余的反射能量通过VD1吸收掉,这时VD1相当于耗能器件,阻抗的大小取决于通过VD1的I/V曲线关系。同样的道理,当反射电压低于-VT时,VD2导通,吸收多余的反射能量。然而,应该注意到,如果反射电压大小落在[VCC+VT,-VT]之间时,该部分能量不会被吸收,而是反射回源端。因此,要使用这种机构达到比较理想的信号传输效果,还需要在源端进行并行匹配,以吸收二极管不能吸收掉的能量。也正是如此,该结构更多地用于ESD保护,而不是解决信号完整性问题。


3. 差分匹配

同样,对于差分线的终端匹配,我们有如图3-14所示的方案。对于这两种差分匹配的区别,读者可以看到,100Ω(当然,也可以是120Ω,这要由具体的差分阻抗的值而定)的跨接电阻是针对差分信号中的差模信号分量进行匹配的;在π型匹配中的多个终端串联电阻,是针对差分信号中的共模分量进行匹配的。这两种方式,是最基本的差分线匹配方式,当然不只限于这些。而差分匹配1在不考虑共模分量的影响时,在成本和可行性方面是最理想的方式。


4. 源端匹配

有些时候,当不适合在终端做匹配,或者为了防止被终端反射的信号在信号源形成二次反射(源端反射)时,需要在信号源端做匹配。这种方式类似于微波源或微波放大器中的隔离器,如图3-15所示。

 实用的微波源、毫米波源甚至包括激光器,一般都应该在其输出端口加隔离器。其主要目的是为防止被终端负载反射回来的信号进入微波信号源,从而干扰微波信号源。加了隔离器后,它们的频谱特性、稳定性和输出功率都将大幅度提高。

借用这样的思想,对于高速信号电路,我们可以以同样的方式在源端进行匹配。如图3-16中所示的22Ω电阻,一方面它可以有效吸收由终端反射回来的信号,另一方面,它和信号源内阻配合,防止发生源端二次反射(注意,在此结构中,TL1的长度一般都是比较短的,否则起不到源端匹配效果,反而会进一步恶化信号质量)。


5. 匹配的总结和应用

在以上介绍的几种匹配方案中,在达到基本的阻抗匹配要求的前提下,各有利弊,在此通过表格的方式,对这些匹配方案做一个总结,以便读者能够更清晰地了解各种匹配方案的利弊和应用场合,如表3-1所示。

对于以上几种常见的匹配方式,并非是固定、独立的使用模式。在实际应用中,要结合应用的要求,灵活组合各种方式进行阻抗匹配,以达到理想的信号效果。比如图3-17中所示的混合匹配方案,既有源端串行匹配,也有并行上拉匹配。

这种方式看起来功耗和代价都比较高,但由于应用的需要,仍然被广泛应用于DDR及DDR2的总线设计中。

因此,对于匹配方式的使用,首先要了解每种匹配方式的原理,以及每种方式对原信号的影响,然后在实际要求的基础之上,灵活使用各种方式进行组合。在充分考虑实现代价和充分仿真的前提下,以得到理想的信号质量为唯一目的。

3.3.2.2 拓扑结构设计

上一节中,我们了解到,通过匹配可以达到改善信号效果的目的,并充分讨论了各种匹配方式的利弊,以及这些匹配方式的适用场合。似乎通过设计完美的匹配策略,我们可以得到完美的信号质量,然而不幸的是,事实并非如此。让我们先来看一个实际的设计例子。图3-18中是一个电路结构模型,一个输出驱动,三个负载,依次连接到一起,适用的是串行源端匹配方式。可以看到,从驱动输出到最远的一个负载为3000mil。该实例可从网上下载的资料中得到,仿真文件名称为“Examples\Test_Chap3_Series.top”。

图3-19是该电路模型的仿真结果。可以看出,每个负载上得到的信号,几乎是完美的方波,也就是驱动端输出的激励,并且上升沿和下降沿还保持高度的单调性和最大的噪声容限。

 现在,我们改动下该电路结构,如图3-20所示。在这个结构中,驱动和负载的个数没有改变,唯一改变的是该电路的连接方式,也就是并行拓扑结构。但仍然保持驱动和负载之间最远距离为3000mil,从OUT到IN2的距离。该实例可从网上下载的资料中得到,仿真文件名称为“Examples\Test_Chap3_Branch.top”。

然后我们在不改变激励的条件下(除了改变了电路的连接方式,其他参数都没有改变),再做一次仿真,其结果如图3-21所示。

 图3-22 是图3-21的噪声容限细节放大后的仿真波形。

从这个仿真波形中,我们可以清楚地看到,在信号的平坦期,也就是高电平和低电平期间,出现了很强烈的振铃现象。同时在信号的上升沿和下降沿期间,也不再平滑单调。经过测量,上升沿的噪声容限为462mV,下降沿的噪声容限为82mV。

比较这两个电路结构,除了负载的连接方式不同,其他几乎都相同。那么为什么在信号质量上会有这么大的差别呢?(如果读者认为这是由于激励信号频率过高造成的,那就错了。这里的激励信号频率只有50MHz,读者可以通过检查Top文件中的激励参数验证,而在类似的Intel的Multi-Processor FSB结构中,信号频率可达667MHz。因此这也再次证明,信号的绝对频率并非造成信号完整性问题的关键因素。)

Stephen H.Hall 在《High-Speed Digital System Design》一书中,对由布线的分支所引起的信号传输路径上的阻抗不匹配造成的反射有精彩论述。在此只引用其中一部分加以描述,以便读者对这类问题有个大致的了解。参照图3-23中所示的布线分支结构,当信号由传输线L1传导到分支点T时,由于信号在T点同时看到了两个为50Ω的传输路径,实际上就等于两个50Ω阻抗并联,因此该信号在T点遇到的是25Ω的阻抗,这就造成了信号反射,反射系数为ρ=(Zin-Z0)/(Zin+Z0)(符号表示两阻抗并联)。注意,图中描述的是对称长度的传输线L2=L3的情况,如果L2≠L3,那么反射会变得更加严重。

不论从以上的仿真结果还是理论分析,我们都可以清楚地看到,影响一个信号传输质量的不仅仅在于信号源和负载,而和该信号所在的电路结构,也即拓扑结构有密切关系。这也正是我们在3.2节中所要表达的意义,一个信号的完整性问题,是由组成该信号网络的三要素共同决定的:驱动、负载和互连体。互连体的概念不仅是单条传输线的特性,而是整个网络结构的传输特性。

目前,电子技术的发展使得现代高速系统中的网络结构变得越来越复杂,每个网络上所连接的器件数也数倍于传统电路。举例来说,在一个应用Nand Flash进行大容量存储的项目中,一个信号驱动源,要带动16个Flash芯片载入负载。在系统设计中,无论是信号完整性工程师,还是对PCB布局布线工程师都带来极大的挑战。然而幸运的是,虽然这种多负载的互连网络结构需要仔细的设计,但是其设计原则还是有章可寻的,也很简单,那就是,不管怎样的网络结构,其根本目的是使得整个传输路径尽量保持阻抗一致连续性,由于网络结构的复杂性,在不能保证一致连续性的情况下,要尽量降低信号的反射。经过长期的实践(当然也经过理论计算验证),目前,比较实用的几种网络拓扑结构如图3-24所示。

对于这几种网络拓扑结构,由于其阻抗特性不同,都有各自的特点和适用范围,表3-2中对这些拓扑结构做了总结,以便能够作为读者在实际应用中进行拓扑结构设计的参考。

 以上四种是最普遍应用的拓扑结构。事实上,在实际工作中,并不是所有的网络结构都能直接映射到这四种拓扑结构上。这就需要工程师们根据具体情况做相应的变动。比如说,对一个大容量的,采用DDR芯片颗粒(不是DIMM存储模块,事实上在每个DIMM存储模块上的DDR存储颗粒就是按照这样的拓扑结构进行搭建的,有兴趣的读者可以阅读关于DIMM设计规范或实例的书籍进行学习)搭建的存储结构设计时,通常会采用如图3-25所示的拓扑结构,这个结构可以说是远端簇的一种典型应用。

在这个结构中,最典型的特征就是从DDR控制器到DDR存储颗粒的第一段传输线的长度L1要远远大于其他几段传输线的长度;其次需要注意的是位于第一级的四个星型分支L2的长度要匹配,进入每个DDR芯片颗粒的Stub,二级分支L3和L4长度也尽量匹配,但并不严格,并且长度要尽量短。其实这些要求和前面的拓扑结构总结中的要求是一样的,目的都是尽量保证阻抗的一致连续性,以及减少反射。所以,在实际应用中,可以根据具体的系统要求,从系统的物理尺寸要求、布局,以及散热等多方面考虑,来选择合适的拓扑结构。

在多驱动/负载网络结构中,进行信号完整性设计的正确方法是,先选择恰当的拓扑结构,再经过仿真,针对仿真中出现的噪声和反射进行适当的匹配设计,仿真可以帮助设计者快速达到设计目的。因此,恰当的拓扑逻辑设计是通向良好信号完整性的第一步。而不幸的是,现实中很多工程师,包括从事多年高速信号分析的工程师,往往忽略这一点。

 

 

相关文章:

信号完整性简介第一篇

本章将讲述信号完整性相关问题。首先提出什么是高速系统设计中的信号完整性&#xff0c;其次结合影响信号完整性的各种因素&#xff0c;深入讨论在高速系统设计过程中会碰到的几类信号完整性问题&#xff0c;并对每一类问题提出相应的预防措施和解决方案。 需要说明&#xff0…...

Qt开发环境的安装与问题的解决(2)

文章目录 1. Qt开发环境安装的说明2. 通过安装包进行安装3. 通过在线下载程序 解决问题下载 https....网路错误问题解决开始安装--第一部分开始安装--第二部分 4. 建议配置环境变量&#xff08;非必须&#xff09;配置环境变量的意义 简介&#xff1a;这篇文章主要分享Qt开发环…...

STM32 ADC模数转换器

一、ADC简介 ADC&#xff08;Analog-Digital Converter&#xff09;模拟-数字转换器ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量&#xff0c;建立模拟电路到数字电路的桥梁12位逐次逼近型ADC&#xff0c;1us转换时间 输入电压范围&#xff1a;0~3.3V&#x…...

World of Warcraft [CLASSIC] Hunter[Grandel] R12

World of Warcraft [CLASSIC] Hunter[Grandel] R12 R13&#xff0c;[Freeblue] 可惜当时没有截图&#xff0c;唉&#xff0c;没有纪念 --- 挂机脚本...

kalibr:相机模型

文章目录 📚简介Kalibr标定支持的相机模型及适用场景📌 针孔相机模型(Pinhole)🌐 全向相机模型(Omnidirectional)🔍 特殊模型💡 选型建议⚠️ 注意事项📚简介 Kalibr作为多传感器标定的重要工具,支持多种相机模型以适应不同光学特性的视觉传感器。其核心相机…...

【AI News | 20250428】每日AI进展

AI Repos 1、dyad Dyad 是一款免费开源的本地化 AI 应用开发工具&#xff0c;兼容 Windows 和 Mac 双平台。支持使用自有 API 密钥灵活调用主流 AI 模型&#xff08;包括 Gemini、GPT-4.1、Claude 等&#xff09;&#xff0c;内置数据库与身份验证系统可快速构建完整应用。 …...

DNS区域的类型

在BIND9中&#xff0c;type 用于定义DNS区域的类型&#xff0c;不同的类型决定了BIND如何处理该区域的DNS数据。以下是主要的类型及其作用详解&#xff1a; 1. master&#xff08;主区域&#xff09; 作用&#xff1a; 表示该区域是权威DNS服务器的主副本&#xff0c;负责存储…...

​​HTTP vs HTTPS:传输协议的安全演进与核心差异​

HTTP&#xff08;HyperText Transfer Protocol&#xff09;和HTTPS&#xff08;HTTP Secure&#xff09;作为两种最常用的协议&#xff0c;其安全性和实现方式直接关系到用户隐私和数据完整性。 目录 ​​一、HTTP与HTTPS的基础概念​​ ​​二、HTTP与HTTPS的核心差异​​ ​…...

Android平台Unity引擎的Mono JIT机制分析

一、分析背景 Unity引擎开发游戏采用了C#语言,Unity采用了Mono的Jit机制实现C#逻辑代码动态编译和执行,Mono属于开源的工程,可通过查看Mono源码了解其中的处理。本文针对Mono的Jit动态编译和执行的机制进行分析,更好的了解Unity引擎在Android平台所采用的处理方式。 二、M…...

【java】接口

一、定义 1.接口中所有方法都是抽象方法和公共方法&#xff08;可以省略 abstract、public&#xff09;&#xff0c;不可以有正常的方法&#xff0c;所有变量都是全局静态常量 2.能继承接口的只能是接口 3.接口和类的关系通过实现&#xff08;重写&#xff08;实现&#xff09;…...

Vuex(二) —— 用Vuex完成购物车案例

目录 需求需求分析 组件分析组件通信 开发 准备环境准备模块结构商品列表组件 展示商品列表添加购物车 我的购物车组件 购物车列表商品数量和统计功能删除购物车商品 购物车列表组件 购物车列表全选操作数字加减并统计小计删除功能统计总数量和总钱数处理金额小数的问题 本地存…...

数字孪生的浪潮:从虚拟镜像到现实世界的 IT 变革

文章目录 数字孪生的本质&#xff1a;物理与虚拟的实时镜像数字孪生的演进&#xff1a;从工业试验到全行业热潮核心技术&#xff1a;数字孪生的基石与工具链物联网&#xff08;IoT&#xff09;&#xff1a;数据采集云计算与大数据&#xff1a;模型存储AI 与机器学习&#xff1a…...

Web开发之三层架构

实例&#xff1a; 分层解耦 耦合:衡量软件中各个层/各个模块的依赖关联程度。 内聚:软件中各个功能模块内部的功能联系。 软件设计原则:高内聚低耦合 控制反转:Inversion 0f Control&#xff0c;简称IQC。对象的创建控制权由程序自身转移到外部(容器)&#xff0c;这种思想称为…...

社交电商和泛娱乐平台出海南美市场支付方式与策略

随着中国社交电商和泛娱乐平台加速全球化布局,南美市场凭借庞大的人口基数、快速增长的互联网渗透率和活跃的社交媒体使用率,成为出海企业的重要战略要地。然而,这片"新蓝海"的支付生态复杂多元,信用卡欺诈率高企,现金支付仍占主导,不同国家支付偏好差异显著。…...

Miniconda Windows10版本下载和安装

Miniconda Windows10版本下载和安装 步骤1&#xff1a;Miniconda3下载和安装 # 1、下载地址&#xff08;Windows 64位&#xff09; https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe #2、双击进行安装 # 安装注意事项&#xff1a; 1. 安装路径建议&a…...

编译原理:由浅入深从语法树到文法类型

文法与语言基础&#xff1a;从语法树到文法类型 文法&#xff08;Grammar&#xff09;和语言&#xff08;Language&#xff09;是计算机科学和语言学中解析和理解语言结构的核心概念。无论是编程语言的编译器设计&#xff0c;还是自然语言处理&#xff08;NLP&#xff09;中的…...

初识Python

哈哈哈&#xff0c;为了让初学者对python进一步了解&#xff0c;懒惰的博主特地去问了AI&#xff0c;如何更加形象的形容python这一么语言 &#x1f31f; Python 是什么&#xff1f; 想象一下&#xff0c;编程语言是一群性格各异的人&#xff1a; C语言&#xff1a;穿格子衫的…...

C++ —— 正向迭代器与反向迭代器

目录 1. 正向迭代器&#xff08;Forward Iterator&#xff09; 1.1 基本概念 1.2 核心特性 1.3 典型使用 1.4 重要特点 2. 反向迭代器&#xff08;Reverse Iterator&#xff09; 2.1 基本概念 2.2 核心特性 2.3 典型使用 2.4 重要特点 3. 正反迭代器对比 4. 正反迭代…...

FDA会议类型总结

1. 会议类型及目的 1.1 Type A会议 1.1.1 争议解决会议 用于解决药物研发过程中与FDA产生的争议,明确双方分歧点。 通过讨论达成共识,避免因争议影响研发进度。 1.1.2 临床保留讨论会议 针对临床试验中出现的问题进行讨论,决定是否保留临床试验。 综合评估临床试验的安全性…...

数据结构算法竞赛训练网站OJ(Online Judge)

都是个人使用过的算法训练OJ&#xff0c;存个档 洛谷 https://www.luogu.org/ 个人使用最多的&#xff0c;题目较全&#xff0c;每题都有题解博客&#xff0c;社区比较完善。 PTA https://pintia.cn/ 学习数据结构和练习天梯赛的时候使用的。 牛客 https://ac.nowcoder.co…...

快速搭建对象存储服务 - Minio,并解决临时地址暴露ip、短链接请求改变浏览器地址等问题

本文要解决的问题 基础的Minio下载安装、java操作方法、完整的工具类。 使用minio时需要注意的地方&#xff1a; 使用Minio的时候&#xff0c;生成资源的临时访问链接时&#xff0c;生成的地址IP是真实的IP和端口&#xff0c;不安全&#xff0c;怎么办&#xff1f; 生成的Min…...

2025年- H11-Lc118-53.最大子数组和(普通数组)---java版

1.题目描述 2.思路 用动态规划方法来解决【最大子数组和】&#xff08;Maximum Subarray&#xff09;问题。 pre&#xff08;当前位置最大和&#xff09;、 maxAns&#xff08;全局最大和&#xff09; 3.代码实现 class H53 {public int maxSubArray(int[] nums) {int curr…...

基于蓝牙Beacon人员导航方案

基于蓝牙Beacon人员导航方案 一、室内定位市场痛点与技术选择 大型商场&#xff08;单层超2万㎡&#xff09;和医院&#xff08;科室超200个&#xff09;的复杂空间中&#xff0c;传统GPS信号衰减超90%&#xff0c;用户平均寻路耗时10-15分钟&#xff0c;30%购物决策因“找店…...

mysql模糊多次OR查询某一个字段,针对这个字段进行查询分组

一. 需求 有一个mysql表t_test,有两个字段className和studentStr 其中studentStr会用来模糊查询 假如现在有6条数据 1.studentStr字段数据:“小明,小红,小同,小芳,小特,小兰” 2.studentStr字段数据:“小明,小红,小同” 3.studentStr字段数据:“小芳,小特,小兰” 4.stud…...

OpenGL进阶系列21 - OpenGL SuperBible - blendmatrix 例子学习

一:概述 颜色输出阶段是 OpenGL 渲染管线中最后一个阶段。它决定了片段在离开片段着色器之后,最终显示在用户屏幕上的颜色值。颜色输出阶段最重要的一个操作就是混合。本例子重点介绍下OpenGL中的混合操作。 对于每个通过片段测试(per-fragment tests)的片段,会执行混合操…...

阿里语音处理工具ClearerVoice-Studio项目上手指南

ClearerVoice-Studio:开源语音处理全能工具箱 🚀 核心功能速览 语音增强:消除环境噪声(支持16kHz/48kHz)语音分离:多人对话场景的说话人分离(8kHz/16kHz)超分辨率:16kHz→48kHz音质提升目标说话人提取:基于人脸/手势/EEG的多模态提取语音质量评估:9种客观评价指标A…...

31、简要描述Promise.all的用途

Promise.all 是 JavaScript 中用于处理多个异步操作的核心方法&#xff0c;其核心用途是并行聚合多个 Promise 的结果&#xff0c;并在所有操作成功时统一返回结果数组。以下是其关键特性与典型应用场景的简要描述&#xff1a; 核心功能 1、并行执行 接收一个 Promise 数组&…...

OpenVLA-OFT

TL;DR 2025 年斯坦福提出的 OpenVLA 工作的续作 OpenVLA-OFT&#xff0c;优化 VLA 能够有效适应新的机器人平台和任务&#xff0c;优化的技术主要有并行解码、动作块处理、连续动作、L1 回归和&#xff08;可选的&#xff09;FiLM 语言调节 Paper name Fine-Tuning Vision-La…...

2025“钉耙编程”中国大学生算法设计春季联赛(8)10031007

题目的意思很好理解找从最左边到最右边最短路&#xff08;BFS&#xff09; #include <bits/stdc.h> using namespace std; int a[510][510]; // 存储网格中每个位置是否有障碍&#xff08;1表示有障碍&#xff0c;0表示无障碍&#xff09; int v[510][510]; // 记录每…...

代码随想录算法训练营第六十一天 | floyd算法

Floyd 算法精讲 题目链接&#xff1a;97. 小明逛公园 文章讲解&#xff1a;代码随想录 思想&#xff1a;本题是多源最短路&#xff0c;即求多个起点到多个终点的多条最短路径。用Floyd 算法。 Floyd 算法对边的权值正负没有要求&#xff0c;都可以处理&#xff0c;Floyd算法…...

[三分钟]web自动化测试(三):selenium自动化测试常用函数(下)

文章目录 4.等待4.1 强制等待4.2 隐式等待4.3 显式等待 5.浏览器导航5.1 浏览器的前进、后退、刷新5.2 打开网站 6. 弹窗6.1 确认和取消6.2 输入信息 7. 文件上传 4.等待 如果页面渲染的速度赶不上代码执行的速度&#xff0c;可能会因为渲染过慢出现自动化误报的问题。 此时可…...

文档声明:HTML文档的基石

在前端开发的世界里&#xff0c;文档声明虽是一个看似不起眼的细节&#xff0c;却在网页的解析和渲染过程中扮演着至关重要的角色。今天&#xff0c;就让我们深入探讨文档声明的奥秘&#xff0c;揭开它背后的原理和重要性。 一、文档声明的定义与作用 文档声明&#xff0c;顾…...

光学涡旋干涉仪

一、什么是涡旋干涉仪&#xff1f; 涡旋光束一般指电场含有螺旋相位因子exp(iℓθ)的光束&#xff0c;其中ℓ为拓扑荷数&#xff0c;θ为方位角&#xff0c;其波前为螺旋形&#xff0c;光束中心存在相位奇点&#xff0c;因此涡旋光束的光强轮廓是中心强度为零的圆环。早在1992…...

Wireshark快速入门--对启动的后端程序进行抓包

怎么对自己启动的后端程序进行抓包&#xff1f; 1. 安装并启动 Wireshark 你要先从 Wireshark 官网 下载对应系统的安装包&#xff0c;然后进行安装。安装完成后&#xff0c;启动该软件。 可以快速入门可以参考博文&#xff1a;从零开始学 Wireshark&#xff1a;网络分析入门…...

ViTa-Zero:零样本视觉触觉目标 6D 姿态估计

25年4月来自Amazon 公司、Brown 大学和 Northestern 大学的论文“ViTa-Zero: Zero-shot Visuotactile Object 6D Pose Estimation”。 目标 6D 姿态估计是机器人技术中的一项关键挑战&#xff0c;尤其对于操作任务而言。虽然先前结合视觉和触觉&#xff08;视觉触觉&#xff0…...

继承(c++版 非常详细版)

一. 继承的概念及定义 1.1 继承的概念 继承(inheritance)机制是⾯向对象程序设计使代码可以复⽤的最重要的⼿段&#xff0c;它允许我们在保持原有 类特性的基础上进⾏扩展&#xff0c;增加⽅法(成员函数)和属性(成员变量)&#xff0c;这样产⽣新的类&#xff0c;称派⽣类。继…...

解锁服务器迁移的未来:《2025 服务器迁移效率白皮书》(附下载)

一、背景&#x1f3d9;️ 随着全球数字化转型的不断加速&#xff0c;企业在推动 IT 基础设施现代化过程中&#xff0c;面临着前所未有的服务器迁移挑战。传统的迁移工具和多云、混合云环境带来的复杂性&#xff0c;导致迁移效率低、成本高、人力投入大&#xff0c;从而严重阻碍…...

STM32的Flash映射双重机制

在STM32微控制器中&#xff0c;存在一个重要的内存映射特性&#xff1a;Flash存储器可以同时出现在两个不同的地址区域&#xff0c;而且可以通过重映射功能改变CPU启动时从哪个地址获取初始指令。 STM32的Flash映射双重机制 当描述"通常起始于地址0x00000000&#xff0c…...

简单了解跨域问题

什么是跨域&#xff1f; 跨域是浏览器基于同源策略的安全机制。 如何两个请求之间&#xff0c;域名&#xff0c;端口&#xff0c;协议三者中有任意一个不同&#xff0c;就会产生跨域问题。 跨域的解决方案 1. CORS&#xff08;跨源资源共享&#xff09; 后端通过设置响应头声…...

sql学习笔记(四)

今天看到一个sql题&#xff0c;“近30天&#xff0c;******”&#xff0c;这里需要用到一个函数&#xff0c;date_add&#xff0c;其作用是在指定日期基础上添加一个时间间隔。 语法&#xff08;以mysql为例&#xff09;&#xff1a; DATE_ADD(date, INTERVAL value unit) d…...

基于 Java 的实现前端组装查询语句,后端直接执行查询方案,涵盖前端和后端的设计思路

1. 前端设计 前端负责根据用户输入或交互条件,动态生成查询参数,并通过 HTTP 请求发送到后端。 前端逻辑: 提供用户界面(如表单、筛选器等),让用户选择查询条件。将用户选择的条件组装成 JSON 格式的查询参数。发送 HTTP 请求(如 POST 或 GET)到后端。示例: 假设用…...

反射与注解实现动态功能扩展案例-插件系统

学海无涯&#xff0c;志当存远。燃心砺志&#xff0c;奋进不辍。 愿诸君得此鸡汤&#xff0c;如沐春风&#xff0c;事业有成。 若觉此言甚善&#xff0c;烦请赐赞一枚&#xff0c;共励学途&#xff0c;同铸辉煌&#xff01; 开发一个需要高度扩展性的应用&#xff0c;比如Web框…...

auto(x) decay copy

该提案为auto又增加了两个新语法&#xff1a;auto(x) 和auto{x}。两个作用一样&#xff0c;只是写法不同&#xff0c;都 是为x 创建一份拷贝。 为什么需要这么个东西&#xff1f;看一个例子&#xff1a; void bar(const auto&);void foo(const auto& param) {auto co…...

基于STM32、HAL库的DS2411R安全验证及加密芯片驱动程序设计

一、简介: DS2411R是Maxim Integrated(现为Analog Devices)生产的一款1-Wire硅序列号芯片,具有以下特点: 64位唯一ROM序列号(包括8位家族码、48位序列号和8位CRC校验码) 工作电压范围:2.8V至5.25V 工作温度范围:-40C至+85C 采用TO-92或SOT-223封装 通过1-Wire协议通信…...

疫苗接种体系进入“全生命周期”时代:公共卫生治理再提速

疫苗接种体系进入“全生命周期”时代&#xff1a;公共卫生治理再提速 在防控重大传染病的国家公共卫生战略中&#xff0c;疫苗接种始终处于基础性、先导性地位。2025年4月25日是第39个全国儿童预防接种日&#xff0c;活动主题为“打疫苗、防疾病、保健康”。近年来&#xff0c…...

zynq 7010 PS 串口打印

前言 之前写过一篇文章《zynq 7010 PL 点灯例程》&#xff0c;介绍的是 zynq PL 部分的使用&#xff0c;今天这篇文章则是介绍 zynq PS 部分的使用。 在此之前&#xff0c;先总结点题外话 PL 编程&#xff0c;核心思想是生成 bitstream 文件&#xff0c;加载到 FPGA 运行PS …...

【补题】ACPC Kickoff 2025 F. Kinan The Bank Robber

题意&#xff1a;给出长度为n的序列&#xff0c;接下来给出了两个包裹&#xff0c;你可以选择把数字放进这两个包裹当中&#xff0c;要求你放的的方式&#xff0c;最终会让包裹内的数字双双互质&#xff0c;请你给出你的放法&#xff0c;如果没有输出-1 思路&#xff1a; 1.包…...

局域网传文件——基于flask实现

项目地址 git clone gitgitee.com:xhdx/co_-shared_-doc_in_-local_-net.git 所需python包 flask2.2.3 markdown3.4.1 bleach5.0.1 通过局域网的方式实现文件夹共享&#xff0c;共享的文件会放在uploads这个文件夹下&#xff1a; 运行界面&#xff1a; 包括预览、删除、下载等…...

苍穹外卖10

WebSocket WebSocket是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工通信----浏览器和服务器只需要完成一次握手&#xff0c;两者之间就可以创建持久性的连接&#xff0c;并进行双向数据传输。 HTTP协议和WebSocket协议对比&#xff1a; HTTP是短链接 WebSocke…...

第一天 车联网定义、发展历程与生态体系

前言 车联网&#xff08;Internet of Vehicles, IoV&#xff09;作为物联网&#xff08;IoT&#xff09;在汽车领域的延伸&#xff0c;正在彻底改变人们的出行方式。无论是自动驾驶、远程诊断&#xff0c;还是实时交通优化&#xff0c;车联网技术都扮演着核心角色。本文将从零…...