从零开始学习信号完整性--7-SI分析仿真

解释完带宽这一概念,我们来考虑如何才能通过仿真准确的预测信号完整性。

信号带宽的确定、器件模型的获取

当我们确定了要分析的信号的信息(包含速率、接口电平、上升时间等等)、以及驱动器和接收器型号之后,我们就可以计算得到信号的带宽。一般来说芯片厂家提供的仿真模型无论是IBIS还是Spice模型都是很信号带宽相匹配的。比如说一个器件的IBIS模型中肯定不会包含serdes信号的模型,如果器件中有serdes接口厂家肯定会提供Spice或者IBIS-AMI模型供仿真使用。也就是说芯片厂家提供的仿真模型的带宽一般情况下要比模型中包含的信号带宽要高,我们是可以放心使用的。

无源链路的建模

对于无源链路需要工程师借助仿真软件进行建模。第一,建模的过程中必须保证模型的准确度,也就是模型必须能够准确的反映无源链路的真实特征。这就要求SI工程师能够根据所设计的总线接口的特性选择合适的仿真建模方法以及软件工具。第二,无源链路的性能要能够满足信号带宽的要求。SI工程师需要通过对模型进行仿真优化使模型在信号的带宽范围内具有良好的损耗和反射性能,如果无源链路的性能不能满足要求,工程师就需要对无源链路的材料或者结构进行调整以提高模型带宽。

第一点就是保证模型的准确,保证使用这个模型进行仿真的结果和实际测试结果的偏差可控。第二点包含的意思就是我们需要通过对无源链路的优化来达到信号完整性最优的效果。如果无源链路的模型带宽太低会出现什么情况呢?

为了解释这个问题,我们再来看一下带宽的计算公式:BW= 0.35/Trise,可以导出Trise = 0.35/BW。应用在互连线模型中,Trise就代表了互连线的本征上升时间。互连线的带宽为1GHz,那么它能传输信号的最短上升时间就是350ps,这个350ps就是这条互连线的本征上升时间。驱动器输出一个上升时间为Trise_drv的信号输入到一条本征上升时间为Trise_interconnect的互连线,在接收器处接收到的信号上升时间为Trise_rev,则有如下关系:

Triserev=\sqrt{Trisedrive^2+Triseinterconnect^2 }

不难看出,由于互连线的本征上升时间导致接收器接收到的信号上升时间Trise_rev相对于Trise_drv增大了,我们通常也说信号经过互连线传输之后发生了边沿退化。如果互连线的带宽太低,其本征上升时间就会比较长,那么接收器接收到的信号上升时间就会比较大,也就是说信号在传输过程中发生的边沿退化就越严重。

测试设备的带宽和本征上升时间

同样,在使用测试设备对接收器的信号进行测量时也会有上升时间的退化问题。一般来说示波器和测试探头都有自身的带宽和本征上升时间,以此来描述它所能测试信号的最高带宽和最短上升时间。接收器上升时间为Trise_rev的信号,通过本征上升时间为Trise_probe的探头在示波器上显示测试波形的上升时间为Trise_measure

Trisemeasure=\sqrt{Triserev^2+Triseprobe^2}

也就是说当示波器、探头的带宽很低时,其本征上升时间就会比较长,测试到的信号上升时间也就比实际信号上升时间要长。这样的话很可能会错过实际信号的一些细节特征得到错误的结论。

如果测试结果没有能够测到实际存在在上边沿上的台阶、回沟,这对时钟信号来说是致命的,因为回沟会导致时钟对数据信号的误采样。我们在进行时序测试也会导致我们得到错误的建立保持时间裕量;也可能导致测试到的信号过冲、振铃幅度比实际的过冲和振铃要小,很可能实际信号的过冲以及超过了芯片手册的要求这样会影响器件寿命,也有可能实际信号的振铃已经严重的影响了信号的噪声裕量,在恶劣情况下很容易导致数据错误。等等这些都是产品开发中的隐患。由此可见正确的对信号进行仿真预测和测量验证有着非常重要的意义。

什么是高速信号

通过上面关于时域、频域的转换以及信号、互连线带宽的分析,我们现在就可以理解什么是高速信号了。高速信号并不等于高频信号,信号是不是高速信号关键要看信号的带宽,也就是信号的上升时间是否足够短。而信号的上升时间和信号频率之间并没有必然的关系系,唯一的关系就是信号的上升时间肯定要小于信号周期的50%。当信号的频率达到5GHz、10GHz时,其上升时间必然会小于100ps、50ps,此时信号的带宽必然会很高,无疑这种信号就是高速信号,其信号完整性问题就会非常突出。但是对于一个频率仅为1MHz的信号,我们能否就说它不是高速信号呢?当然不能,因为尽管芯片的频率很低,但是它的上升时间也可能非常小也可能是高速信号。

信号完整性的设计流程

基于前两个章节的关于时域、频域以及带宽的介绍,我们这里对信号完整性分析设计流程进行归纳总结,整个过程大体可分为前期准备、无源链路建模、时域仿真分析、测试验证四个环节。其中前期准备是基础、无源链路建模和时域仿真分析是核心、并通过测试验证形成闭环。下面简要介绍这四个阶段所涉及到的主要工作内容,后续篇幅会针对高速并行总线、高速串行总线的信号完整性、以及电源完整性设计详细介绍设计流程。

 SI分析设计流程图

前期准备

前期准备工作是通过对器件手册的研读和芯片仿真模型的分析得到仿真设计所需要的信息,主要包含: 信号或者电源的特性,包含时域波形和电流的大小、频谱特性等等,以及接收或者负载芯片对信号质量和电源噪声、压降等要求。并以此确定无源链路模型建立的方法、仿真分析的评判标准以及测试验证方案。

无源链路建模

无源链路建模就是对信号传输路径进行建模优化,其目的就是为信号“安全”到达接收器件扫清障碍。信号完整性设计和电源完整性设计都需要对无源链路进行建模,但由于信号和电源对无源链路的要求不同,因此建模的关注点也有所不同。信号完整性关注链路的损耗、阻抗连续性,而电源完整性则要求PDN阻抗尽量低,主要关注各组成部分的寄生电感特性,并配合去耦电容消除电感影响。

同时无源链路建模的过程就是频域仿真的过程,通过无源链路的建模观察信号和电源无源传输路径的频域特性并对其进行优化使其满足设计要求。

时域仿真分析

 时域仿真分析就是在无源模型上加入激励源进行仿真从而观测时域仿真结果。对于信号完整性仿真将芯片的有源模型(IBIS、Spice或者AMI模型)、传输路径的无源模型搭建成仿真电路,在驱动器端添加激励在接收器端直接观测信号波形和眼图,并对仿真结果进行分析。对于电源完整性则需要加入电流负载以及VRM模型仿真观测负载端的电源噪声。有些情况下无法获取芯片的电流模型,此时就不能进行精确的电源完整性时域仿真,此时要求PI频域仿真有足够的裕量,时域仿真也是可以缺省的。

时域仿真分析目的有两个:一是更加直观的判断信号、电源质量是否满足要求;二是确定芯片buffer选型、加重、均衡等各项参数配置为后续测试调试工作提供参考。

测试验证

测试验证是在产品生产完成后,在实际的系统中进行信号质量测试。测试验证的目的有两个,一是验证接收端信号质量是否满足要求;二是与前期的仿真结果进行对比进行差异分析,优化仿真建模方法。

测试验证要得到正确的测试结果需要注意以下事项:

  • 根据信号带宽选择合适的示波器和探头;

测试点位置选择需靠近接收芯片管脚,往往选择PCB上的过孔。但我们选择的测试点并不是芯片实际的接收端,因此测试波形会受到封装内部布线的影响。此时需要使用“去嵌入”技术消除封装内部布线的影响。

  • 8
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
### 回答1: 信号完整性仿真PCB设计中非常重要的一步,能够确保信号在电路板中传输过程中不会受到噪声、干扰等因素的影响而导致失真或错误。而Allegro PCB是一款常用的PCB设计软件,支持导入DML(Design Markup Language)库文件进行信号完整性仿真。 首先,我们需要准备好两个文件:Allegro PCB设计文件和DML库文件。打开Allegro PCB软件,并打开你的PCB设计文件。 接下来,我们需要将DML库文件导入到Allegro PCB软件中。在菜单栏中选择“文件”,然后选择“导入”-“DML”。在弹出的对话框中选择你要导入的DML库文件,点击“打开”按钮即可完成导入。 导入完成后,你可以在Allegro PCB软件的库浏览器中看到导入的DML库文件。你可以通过浏览器中的搜索功能或者按照目录结构查找你所需要的库文件。 在进行信号完整性仿真之前,我们需要在Allegro PCB软件中配置仿真设置。在菜单栏中选择“仿真”-“仿真控制台”打开仿真控制台窗口。在仿真控制台中,你可以设置仿真的各种参数,比如仿真范围、仿真类型、仿真结果保存位置等。 完成仿真设置后,你可以选择要进行仿真的信号线或者信号网络,然后通过右键菜单选择“仿真”-“仿真选项”来设置具体的仿真参数,比如仿真模型、仿真时间等。 最后,点击仿真控制台窗口的“运行”按钮,Allegro PCB软件将开始进行信号完整性仿真仿真完成后,你可以在仿真结果保存位置中查看仿真结果文件,以了解信号在电路板中传输过程中的完整性情况。 通过以上步骤,你就可以在Allegro PCB软件中导入DML库文件,并进行信号完整性仿真。这将帮助你更好地分析和优化PCB设计,确保信号传输的稳定性和可靠性。 ### 回答2: 信号完整性仿真是一种重要的电路设计验证方法,可以通过仿真分析和解决信号传输过程中的电路问题。其中,Allegro PCB SI是一种常用的信号完整性仿真工具,可以模拟信号在PCB中的传输过程,帮助设计师发现和解决潜在的信号完整性问题。 在进行信号完整性仿真时,首先需要导入DML(Design and Manufacturing Library)库文件,以方便仿真工具识别元件和连接关系。下面是使用Allegro PCB SI导入DML库文件的图文演示: 1. 打开Allegro PCB SI软件,在工具栏上选择“文件”>“打开”来打开设计文件。 2. 在软件界面的左侧资源管理器中,展开“库”文件夹。右键点击该文件夹,选择“导入”>“库”。 3. 弹出一个对话框,选择要导入的DML库文件,点击“确定”按钮。 4. 导入的库文件会出现在资源管理器的库列表中,在其中可以看到库文件的层次结构和包含的元件。 5. 在设计文件中,可以通过拖拽库文件中的元件到PCB布局中来添加电路元件。 6. 添加完元件后,还可以通过拖拽连接线来建立元件之间的连接关系。 7. 在设计完成后,可以进行信号完整性仿真。选择软件工具栏上的“仿真”按钮,并选择“信号完整性仿真”。 8. 调整仿真的参数和设置,比如信号源、仿真模型等。 9. 点击“开始仿真”按钮,仿真工具将对信号的传输过程进行模拟计算,并显示仿真结果。 通过以上步骤,我们可以使用Allegro PCB SI导入DML库文件,并进行信号完整性仿真。这样可以帮助我们及时发现和解决电路布局和连线中可能存在的信号完整性问题,提高电路设计的可靠性和稳定性。 ### 回答3: 信号完整性仿真实战3: Allegro PCB SI导入DML库文件图文演示 1. 首先,打开Cadence Allegro PCB设计软件,并创建一个新的项目。选择菜单栏中的"File"->"New"->"Project"。 2. 在弹出的对话框中,选择一个合适的目录并输入项目的名称,然后点击"OK"按钮。 3. 在项目窗口中,右键点击"Design"文件夹,选择"Import"->"Design via DML"。 4. 在弹出的对话框中,点击"Browse"按钮,选择要导入的DML库文件,并点击"OK"按钮。 5. 在左侧的"Design"树形目录中,可以看到已经导入的DML库文件。展开该文件,在其中可以看到库文件中包含的器件和信号模型。 6. 在设计窗口中,双击要添加信号完整性仿真的器件,以打开"Properties"对话框。 7. 在"Properties"对话框的"Symbol"选项卡中,点击"Model"下拉菜单,选择要使用的信号模型。 8. 在同一对话框中,您还可以设置器件的其他属性,如电阻、电容和电感等。 9. 设置完所有必要的器件信号模型后,保存设计并退出"Properties"对话框。 10. 现在,在设计窗口中,选择菜单栏中的"Simulate"->"Simulated Signals"。 11. 在弹出的对话框中,选择要仿真的信号源和观测点,并点击"OK"按钮。 12. 在仿真结果窗口中,可以查看信号完整性仿真的结果,如波形图和时钟边际分析等。 13. 使用仿真结果来评估设计的信号完整性,并根据需要进行相应的修改和改进。 通过以上步骤,您可以在Allegro PCB设计软件中导入DML库文件,并进行信号完整性仿真。这对于信号完整性分析和优化非常有帮助,可以确保设计的可靠性和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值