保证信号的完整性

要在原型设计或PCB制造前创建正确的板卡,一个关键因素就是维护高速信号的完整性。Altium Designer的统一信号完整性分析仪提供强大的功能集,保证您的设计以期望的方式在真实世界工作。下面就是如何做。

确保高速信号的完整性

最近越来越多的高速器件出现在数字设计中。这些器件也导致了高速的信号边沿速率。对设计师来说,需要考虑如何保证板卡上信号的完整性。快速的上升时间和长距离的布线会带来信号反射。特定传输线上明显的反射不仅会影响该线路上传输的真实信号,而且也会给相邻传输线带来‘噪声’– 讨厌的电磁干扰(EMI).

要监控信号反射和交叉信号干扰 (串话), 您需要可以详细分析设计中信号反射和串话干扰程度的工具。Altium Designer 就能提供这些工具!

在Altium Designer中进行信号完整性分析

Altium Designer 提供完整的集成信号完整性分析工具,可以在设计的输入 (只有原理图) 和版图设计阶段使用。先进的传输线计算和I/O 缓冲宏模型信息用作分析仿真的输入。再结合快速反射和串话模拟器后,分析工具使用业界实证过的算法进行准确的仿真。

注释: 无论只进行原理图分析还是从布线板卡进行分析,原理图或 PCB 文档都必须属于该项目。如果存在PCB,则分析始终要基于该 PCB 文档。

分析前的重要准备

很想开始分析吗?我们就快开始了,还有几件事情需要准备一下,否则得不到准确的分析结果,得到的结果也毫无意义。如果耐心是一种美德的话,那么充分的准备就是天赐之物了。

  1. 并不是所有的网络都可以进行信号完整性的特性分析。为了成功分析所有特性,网络必须包含有一个输出管脚的IC。如果没有输出管脚提供驱动源的话,电阻、电容和电感是不能仿真的。分析双向网络时要对两个方向都进行仿真,结果显示最坏的情况。
  2. 设计中每个组件的信号完整性模型类型必须正确。可通过信号完整性模型分配对话框进行定义。如果并不是所有组件都定义了模型,那么您就有机会在启动分析仪时使用该对话框。另外,您可以直接从原理图调整模型,编辑每个组件各自的模型链接 – 双击模型链接访问信号完整性模型对话框。

    对于 IC 组件来说,您一般要从IBIS文件导入模型 I/O 管脚特性。Altium Designer 会读取该文件并将管脚模型导入安装的管脚模型库中。此外,该文件为组件的所有管脚都指定了适当的管脚模型。

    与任何仿真一样,使用到的模型一定要准确。真的准确度只能和使用到的模型一样。

    Reduce guesswork by ensuring model types are defined correctly for each component in your design.

    通过确定模型来减少猜测工作被定义在设计中的每个组件中。

     

    Quickly import pin models using manufacturer supplied IBIS model files

    通过厂家提供的IBIS模型文件迅速导入管脚模型。

  3.  

    设计中每个供电网络的规则必须要设定。通常至少要有两种规则 – 一个用于电源网络一个用于地网络。从PCB简单定义 PCB 规则和约束编辑器对话框 (设计 » 规则)。设计项目中不存在 PCB 时,可指定规则,为每个要求的网络添加合适的PCB 版图指令。另外,也可把这些约束条件作为SI 设置选项的一部分指定 – 后面有更多介绍。

     

  4. 从布线板卡进行分析时,您必须确保正确定义了 PCB 层堆叠。信号完整性分析需要连续的电源平面层。不支持分离的电源平面层,因此要使用分配给该电源平面层的网络。如果不存在则假定其存在,所以最好添加并适当地配置它们。板卡所有层的厚度、内核和料坯也必须正确设置。这些特性以及电介值都可以在 Layer Stack Manager 对话框 (Design » Layer Stack Manager)中设置。

    在版图设计之前进行分析时,出于计算目的要使用具有两个内部电源平面的、缺省为两层的板卡。如果需要更多的控制,只需把一个空白的 PCB 文档添加到项目中,然后根据需要定义层堆叠。

  5. 虽然不要求,您可能也要定义一个信号激励设计规则–PCB上的标准规则和原理图上的文档级参数。激励是待分析网络上每个输出 (驱动) 管脚上注入的信号。如果您想要修改缺省激励设置就可以这样做。

运行信号完整性分析工具

信号完整性分析工具通过在原理图或 PCB上使用 Tools » Signal Integrity 菜单命令访问。如果您没有为所有组件定义模型,则分析仪会尝试猜测使用哪个模型。如果有未定义模型,则会弹出警告对话框。取决于您所感兴趣的信号分析,您可以继续分析或停下来修整一下模型定义– 只需点击Continue 或 Model Assignments 即可。
关于设置和运行信号完整性分析的详细信息,请参考指南 TU0113 进行信号完整性分析

设置缺省布线特性

Define default routing characteristics to be used

定义缺省布线特性,用于不存在真实布线的情况下。

对一个项目首次运行信号完整性分析仪时,无论是否存在 PCB文档,都会出现 SI Setup Options 对话框。使用该对话框定义 Track Impedance 和 Average Track Length的缺省值。

PCB 不存在时 (版图前分析),分析仪使用这些值获得设计可能的信号完整性性能图。因此,长度值应理想地反映出板卡的尺寸。对于版图前的分析,任何时候在Signal Integrity面板都可以访问 SI Setup Options。如果原理图上没有定义,则该对话框将包括定义Supply Net 和 Stimulus 规则的标签。

PCB存在时 (版图前分析),线轨阻抗仅用于不跨越PCB的网络。何已经转换的未布线网络都会使用合适的宽度/阻抗规则。线轨长度将应用于未布线网络。然而,如果您放置了组件,也可以对这些网络使用 Manhattan 长度。

一旦根据需求定义了选项/模型,则开始进行分析,显示出 Signal Integrity 面板 – 以后就更有趣了...

 

最初的筛选分析

信号完整性面板列出了设计中的所有网络 (不包括电源网络)。分析仪对设计中的所有网络进行初始的快速分析,这称作筛选分析,结果列在面板左侧。包括:

  • 网络数据 (如线轨的总长度以及网络是否布线)
  • 阻抗数据
  • 电压数据 (如上升和下降电压)
  • 定时数据 (如飞行数据)
  • 右键单击 Show/Hide Columns 子菜单可决定面板上显示哪个数据。默认情况下只显示上升电压和下降电压。这是判断哪个网络最有问题的最佳特性。
  • Interrogate initial screening analysis results to identify problem nets in the design

    调查最初的筛选分析结果,确定设计中的问题网络。
  • 筛选分析是一种粗线条的分析用于快速确定有问题的网络然后再做详细分析。如果要进一步分析一个或多个网络需要拖它们到右边的面板做反射或串扰分析。用双击或单箭头按钮来移动网络。

详细的反射分析

作为分析工具的一部分,信号完整性分析带有反射模拟器。模拟器通过来自PCB或指定的缺省布线特性和层信息,以及相应的驱动和接收I/O缓冲模型来计算网络节点电压。一个二维现场解析器会自动计算传输线的电气特性。建模时假定 DC路径损失可以忽略不计。

可仿真一个或多个网络。需要注意的是当要分析的网络增加时,分析时间也会大量增加。

点击反射按钮开始分析。

串扰分析细节

Quickly identify nets that are coupled to a particular problem net of interest

快速找出与特定问题网络相耦合的网络。

 

信号完整性分析仪具有专门的串话仿真器,可分析耦合网络间的干扰。请注意只能从PCB 进行串话分析,因为布线网络需要这种类型的分析。

进行串话分析时一般要考虑2个或3个网络 – 通常是一个网络及其相邻的两个。

信号完整性面板可快速判定哪个网络与您选定的网络耦合。种功能– 查找耦合网络– 对找出哪些网络可能发生串扰十分理想。据定义的耦合选项分析PCB 且确定并行运行的线轨十分关键。

仿真器可指定受害者或入侵者网络。如果要分析一个网络受到其相邻网络的干扰,则只需将其指定为受害者网络即可。如果要分析一个网络对其耦合网络的干扰,将其指定为入侵者即可。

单击串话按钮开始分析。

显示分析结果

分析进行时会生成一个仿真数据文件(*.sdf) 并在Simulation Data Editor的波形显示窗口显示。

Analysis results are presented in the Simulation Data Editor

分析结果显示在 Simulation Data Editor中。

在反射分析上,SDF文件包括每个分析网络的图表,网络中每个管脚状态的波形 (点状)图。

串话分析表的数据显示和反射分析表的显示同样重要。唯一区别是这种分析类型只有一个单个的图表,每个被分析网络的每个管脚都有绘图显示。

更多有关分析波形的信息,请参考应用注释 AP0106 使用 Sim Data Editor.

平衡传输线阻抗

Try out a range of virtual terminations and values to match impedances and reduce reflections and crosstalk
尝试各种虚拟终端和数值进行
阻抗匹配,减少反射和串扰。

在信号完整性方面成功设计的关键是在载入的时候就获得较好的信号质量。这在理想情况下意味着零反射 (无振铃)。在现实中不可能总是有零反射,但振铃的级别可以通过终结减小到设计可接受的范围。

信号完整性分析仪具有Termination Advisor,可通过Signal Integrity 面板进入,在您定义的网络位置插入'虚拟终端' 。这样您就可以自由测试各种终端类型,无须对板卡作出物理改动。

共有8种不同的终端类型可用,包括缺省的没有终端情况。在反射和串扰分析时可激活多个终端类型– 每种都有独立的波形集。您可以决定把最好的终端添加到设计中,获得传输线的最佳信号质量,从而把反射降低到可接受的水平。

也可使用终端组件值的扫描范围进行分析。

激活Perform Sweep 选项并指定扫描步骤的次数。比如,如果指定为2,则第一次分析通过使用该组件指定的最小值,第二次使用最大值。

一旦找到期望的终端类型,则可以直接将其放置在原理图上。可完全控制使用哪个库组件、是放在所有可用管脚还是只放在选定管脚上、以及该组件的准确值。您只需把附加终端电路和相关管脚连接起来即可。

Using an appropriate termination can greatly reduce ringing on a signal

如果在版图设计前进行分析,则工作就更简单了,您无需与现有– 可能是密集布线的 – PCB进行再次同步。

阻抗控制的布线 现在有了奢侈品

反射由不匹配的阻抗导致。目前为止我们都在讨论在组件管脚级别解决阻抗不匹配问题,添加合适的终端,使接收管脚的阻抗更好地匹配驱动管脚的阻抗。如果真实的传输线– 板卡上的布线线轨– 也能给出所需的阻抗不是更好吗?没问题, Altium Designer 可以做到。

Altium Designer的 PCB Editor 可指定要求的阻抗,通过计算每层所需的布线宽度来实现这一目的。在 PCB Rules 和 Constraints Editor 对话框中定义Routing Width 设计规则时激活Characteristic Impedance Driven Width选项,然后输入所需的最小/偏好/最大阻抗。这些会自动转换为每个单层的宽度,匹配用户定义的物理层属性。

注: 通过 Formula Editor 对话框中定义的公式来计算阻抗,该对话框通过 Layer Stack Manager 对话框 (Design » Layer Stack Manager)进入使用。

: Specify your minimum, preferred and maximum impedance requirements and the routing widths for each signal layer will be calculated for you

指定最小、偏好和最大阻抗需求后,每个单层的布线宽带会计算出来。

更多信息请参考应用注释AP0107 阻抗控制的布线

将信号完整性集成进标准的板卡设计流中

在生成制造输出前,您一定要 (也是虔诚地) 运行最终的设计规则检查 (DRC)。作为Batch DRC的一部分, Altium Designer的 PCB Editor 可定义各种信号完整性规则。用户可设定参数门限,如降压和升压、边沿斜率、信号级别和阻抗值。如果在检查过程中发现问题网络,那么您可以进行更详细的反射或串话分析。

Specify signal integrity rule checking as part of your routine DRC strategy

将信号完整性规则检查作为 DRC 布线策略的一部分。

这样,建立可接受的信号完整性参数成为正常板卡定义流程的一部分,和日常定义对象间隙和布线宽度一样。然后确定物理版图导致的信号完整性问题就自然成为完成板卡全部DRC 的一部分。

将信号完整性设计规则作为补充检查而不是分析设计的唯一途径来考虑。

信号完整性示例

Altium Designer 中有许多范例项目,演示了信号完整性分析仪的功能。

这些范例都可以在安装目录的 \Examples\Signal Integrity 文件夹中找到:

  • 差分对 – 这个例子 (DifferentialPair.PrjPcb) 演示了一个简单差分对传输线的反射分析。
  • NBP-28 – 这个例子 (NBP-28.PrjPcb) 演示了如何使用信号完整性为特定FPGA器件找到最优的驱动值。这几乎是信号完整性分析的逆向方法。 这个例子不是一个设计有信号完整性问题,通过分析问题网络修复该问题,而是说明"设计中特定信号在信号完整性和EMI 成为问题前可以怎样驱动?"
  • 简单 FPGA – 这个例子 (SimpleFPGA_SI_Demo.PrjPcb) 演示了如何在非常简单的 FPGA 设计中使用信号完整性分析。尤其演示了如何使用各种终端类型,减少连接到不同物理FPGA 器件 ( Spartan IIE)的传输线反射。
  • Spirit Level – 这个例子实际上是各阶段项目的集合,在真正的设计生命期中使用信号完整性分析– 是的,精神度确实存在,并决定了我办公室的书架不是水平的 ! 每个项目‘阶段’都会发现信号完整性问题 及其解决方法,首先在设计输入阶段 (SCH Issues.PrjPcb 和 SCH Issues Resolved.PrjPcb) 然后是板卡版图阶段 (PCB Issues.PrjPcb 和 PCB Issues Resolved.PrjPcb)。

底线

Altium Designer在信号完整性分析中为您提供工具,确保信号完整性和 EMI 满足特定指标。由于支持版图前的分析,因此问题可以在设计阶段早期发现和修复。 在原型设计前,版图后的分析可获得最准确的信号完整性结果 – 或者是再次确认信号反射满足规范,或者需要详细的检查以确保严格的 EMI 标准得到满足。

如果在版图设计前后分析信号,把约束条件作为制造前的DRC检查,那么您就可以确信唯一只有电话才有的振铃声,可以准备下一个项目了。