Allegro SI 高速信号完整性仿真

前面两节对Allegro SI信号仿真的各项条件进行了介绍,下面将结合具体例子来说明如何来仿真。如图所示一个预布局好的PCB,以下将对PCB中一对差分信号进行仿真,

4be3f07a76b68be5281b870b5bbecb98.jpeg

      首先必须进行阻抗控制,器件模型分配,前面已经讲过具体的操作过程,这里不再赘述,接下来我们需要对差分对进行拓扑提取。

1、设置互联模型参数

      从Allegro PCB SI GXL窗口选择Analyze---SI/EMI Sim---Preference命令,弹出Analyze Preferences窗口,选择“Interconnect Models”如下图:

f1041bec0cd93a06b487f8040e330cd4.jpeg

       在“Unrouted Interconnect Models”部分,设置“Percent Manhattan”为100,“Default Diff-Impedance”为100ohm,在“Topology Extraction”部分确保选择“Differential Extraction Mode”,如果没有选择,差分对拓扑将仅使用理想传输线模型。为了使用理想的耦合传输线模型,必须选择“Differential Extraction Mode”。

2、提取拓扑

        在“Allegro Constraint Manager”窗口选择“Net”---“Routing”---“Differential Pair”如下图:

95b61ddfe24fd32291ae1e3cbfa2f1f3.jpeg

       选择“DP_LOOPIN”差分对(差分对可以在原理图或者导入PCB之后设置),单击右键,选择“SigXplorer”命令,弹出“SigXplorer PCB SI GXL”窗口,显示了提取的有理想耦合的传输线模型的差分对拓扑,如下图所示:

85818fb985ea0485849c0954ac3982ce.jpeg

       在窗口的右侧有一个“Parameters”设置表格,为了直观,可以把“tlineDelayMode”的“time”改为“length”。保存拓扑结构。

316dd5e8500a7b6b89c8e4e378d93682.jpeg

3、分析差分对网络:

      选择“Analyze”---“Preference”选项,弹出“Analyze Preference”窗口,设置“Pulse Stimulus”(记录参数)、“Simulation Parameters”(仿真参数)、“Simulation Modes”(仿真模式)和“Measurement Modes”(测量模式),如下图:

e0ba5af4502ac9024ee9d3b4b1266550.jpeg

Measurement Cycle:设置仿真器在第几个周期进行参数测量。一般情况下,由于驱动器的瞬态效应,我们对于时钟信号从第三个周期进行测量,对于其它的信号从第一个周期进行测量。

Switching Frequency:开关频率或称为脉冲频率。该值决定了在设置激励源为PULSE 时所使用的频率值,该值我们通常设置时钟的频率。

Duty Cycle:占空比,缺省设置为0.5。

Offset:脉冲偏移量,用来控制主网络驱动器与相邻网络驱动器之间的激励时间差。如果该值为正,则相邻网络驱动器在主网络驱动器之后产生激励。

ba4f5effd22d372d5c4ae4d8981d715a.jpeg

Fixed Duration:指定仿真的持续时间长度。如果这个值未确定,则仿真器动态的为每一次仿真选择时长。当该值确定时,仿真运行的时间就为该项中所确定的固定时间长度。这项值的大小与波形文件的大小成正比。如果我们需要仿真的是2M 信号,一个周期应该是500ns(τ=1/f=1/2x106=5x10-7s=500ns),所以我们设成600ns,表示一个周期多一点。

Waveform Resolution:波形分辨率,决定仿真过程中产生波形的采样数据点的多少。使用Default 时,分辨率为传输线长的1/100。通常我们要求分辨率为最短传输线的1/10。

Cutoff Frequency:表明互连线寄生参数提取所适应的频率范围,缺省为0GHz。在对IBIS 的PACKEG等寄生参数进行RLGC 矩阵提取时,为了不考虑频率的影响将截止频率设为0,此时的矩阵不依赖于频率,并且提取速度较快,但精度稍差。当设置了截止频率后,RLGC 矩阵将是综合矩阵,它将基于频率的参数影响,考虑了频率参数影响的RLGC 矩阵具有较高的精度,但提取速度较慢。如果对该值设置,一般建议设置该值不要超过时钟频率的三倍。如果没有特殊要求通常设置为0 即可。

Buffer Delays:缓冲器延时选择。缓冲器延时有两种选择:On-the-fly 和From library。On-the-fly 是根据测试负载的参数计算出Buffer Delay 曲线,From library 是从库中获取。在实际应用时,我们均是通过器件的DATASHEET 查出测试条件由软件自动计算出Buffer Delay 曲线,因此,这项值的内容通常设为On-the-fly。

Save Sweep Cases:当选择时指明保存仿真波形和环境数据。

Simulator:选择仿真器,包括Tlsim 和Hspice 两种,一般选择Tlsim。

4326ee080a722c1ff2d866e472059c4c.jpeg

Measure Delays At:延时测量的参考点,有两种选择:Input Thresholds(输入门限值)和Vmeas 表示以输出Buffer 的参考电压进行测量的。通常选择Input Thresholds。

Receiver Selection:接收器选择。有两种选择:All(表示所有非驱动的器件都作为接收)和Select One(在仿真开始时它会让你选择其中的一个作为接收源)。根据需要选择,通常选择All。

Custom Simulation:仿真内容。包括:Reflection(反射仿真)、Crosstalk(串扰仿真)和EMI(电磁干扰仿真)。

Report Source Sampling Data:确定是否报告源采样数据。

4SigXplorer 中的仿真过程:

在发送端IOCell模型的TRISTATE上点击一下,在弹出的下面窗口中选择Pulse选项:

3534ec6b4a9dca710ea322d5ea9daacc.jpeg

Pulse:表示激励信号为连续脉冲方波,就是时钟源性质的波形,如果选择Pulse,整个界面

中的其他选项是灰的,不允许再选。

Rise:表示激励信号为上升沿。

Fall:表示激励信号为下降沿。

Quiet Hi:表示激励信号为恒高。

Quiet Lo:表示激励信号为恒低。

Custom:表示激励信号由该界面中的参数定制,此时界面中的其它参数将可设定。

Tristate:表示三态。通常接收端设为该状态。

其它组合框只有在Custom状态时可用。一般对于干扰源选择pulse,rise,fall;被干扰对象:选择QuiteHi,Quite Lo;接收器选择Tristate。

Terminal Name:表示仿真信号的类型有Data和Enable两种。Data为要仿真的数据信号,Enable为使能信号,当Enable为高时,仿真有效;当为低时,为激励源断开终端时的仿真结果。

Stimulus Type:表示激励类型。

Stimulus Name:取的激励信号名。

Cycle(s):表示在第几个周期测量数据。

Offset:仿真信号相对于时钟的延时。

该框设置时钟信号的频率(Frequency)、样式(Pattern)和抖动(Jitter)。

在SigXplorer 窗口最底端选择Measurements 标签,点击Reflection 前面的“+”号打开测量反射参数的列表,在弹出菜单中选择需要测量的反射参数。选择菜单File=》Save,保存一下拓朴模型。

与反射相关的参数简介:

BufferDelayFall:如图(1)所示。就是BufferDelay 曲线从高电平下降到测量电压值Vmeas 时的延时值。BufferDelay曲线是软件根据模型库中测试负载参数计算得到的,测试负载参数必须根据器件的DATASHEET手册得到,不能使用IBIS模型文件中缺省参数,原因是我们在进行时序分析时器件的各种延时参考数据都是从DATASHEET中得到,而该数据是以DATASHEET 中的测试负载为依据的。

7c18276bea84d325bb13a74faa8d205b.jpeg

BufferDelayRise:如图(2)所示。就是BufferDelay 曲线从低电平上升到测量电压值时的延时值。

4f861741471be2f821731e0f5ab467af.jpeg

FirstIncidentFall:第一次开关下降时间。

FirstIncidentRise:第一次开关上升时间。

Monotonic:输入波形的单调性检查,如果上升或下降沿中有非单调性现象,则检查结果为False。

c496e4e86bf9ff5c750b17fab26fa029.jpeg

MonotonicFall:输入波形上升沿的单调性检查。

MonotonicRise:输入波形下降沿的单调性检查。

NoiseMargin:噪声容限。如图(4)所示。该值在Result中报告的是NoiseMarginHigh和

NoiseMarginLow中的最小值。

082e6e2dac4f2d66be310a3c787c95c5.jpeg

NoiseMarginHigh:高电平噪声容限。是从VIH Min 到超过Vin Min 电压后震荡波形的最低点的电压差。

NoiseMarginLow:低电平噪声容限。是从VIL Max 到低于VIL Max 电压后震荡波形的最高点的电压差。

OvershootHigh:高电平过冲。如图(4)所示。以0V为参考点,上升波形的最高点电压值。

OvershootLow:低电平过冲。如图(4)所示。以0V为参考点,下降波形的最低点电压值。

PropDelay:如图(2)所示。它是传输线的传输延时值。

SettleDelay:是SettleDelayFall 和SettleDelayRise 两者的最大值。

SettleDelayFall:如图(1)所示。它是从BufferDelay 下降沿的Vmeas 点开始到接收波形下降曲线

最后一次穿过低电平阈值时的延时值。

SettleDelayRise:如图(2)所示。它是从BufferDelay 上升沿的Vmeas 点开始到接收波形上升曲线最后一次穿过高电平阈值时的延时值。

SwitchDelay:是SwitchDelayFall 和SwitchDelayRise 两者的最小值。

SwitchDelayFall:如图(1)所示。它是从BufferDelay 下降沿的Vmeas 点开始到接收波形下降曲线第一次穿过高电平阈值时的延时值。

SwitchDelayRise:如图(2)所示。它是从BufferDelay 上升沿的Vmeas 点开始到接收波形上升曲线第一次穿过低电平阈值时的延时值。

     以上参数中,Monotonic、MonotonicFall、MonotonicRise、NoiseMargin、NoiseMarginHigh、

NoiseMarginLow、OvershootHigh、OvershootLow 与信号完整性有关,其它的与时序仿真有关。

执行“Analyze”---“Simulate”,弹出仿真波形如下:

9b040cfd7c666b5f65915a3d6ae7ce07.jpeg

从“SigWave”菜单中选择“Graph”---“Eye Diagram Mode”命令---波形的眼图如下所示:

85dbb57a87992ace2f5d0fe13df9b0ab.jpeg

5、应用差分对约束:

        当以上仿真图形比较理想时,可以将拓扑约束应用到PCB设计。具体方法如下:

在“Constraint Manager”窗口中选择“File”---“Import”---“Electrical Csets”命令,弹出“Import Electrical Csets”窗口,将之前保存的拓扑文件加入。

选择之前的差分对“DIFFLOOPIN”后面的“Referenced Electrical CSet”表格,弹出“Elecreical CSet Reference”对话框,选择之前保存的拓扑约束。

接下来就可以对差分线进行布线了,如果布线违反了约束规则,就会出现DRC错误。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
epson机器⼈编程范例_SimulinkSimscapeMultibody机器⼈仿 真(⼀) 最近⼀直在做机器⼈仿真,⽤于多⾜机器⼈的步态规划。但经过这段时间的调试和软件选型,发现现在中⽂⽹站上相关的资料还是偏少,所 以想开设⼀个⼩系列来分享⼀下⼼得,希望对各位有所帮助。 软件选型 软件选型 先说⼀下结果:最终选择了⽤Simulink SimscapeMultibody。 最开始因为组⾥前⾯的机械臂项⽬⽤的是ROS,并且开发相对成熟,所以开始就希望基于ROS上已有的物理仿真环境,也就是gazebo进⾏ 开发。但后⾯发现gazebo不是很成熟: 1. 在应⽤过程中会遇到很多的bug:对于⼩数值⽀持不好:特别是在计算惯量的时候,因为开了各6次幂导致很多时候会出现下溢出,直 接在反应在仿真中就是:模型下陷,⼀开始仿真除⾮固定,否则就会陷在地⾯⾥,或者莫名其妙被弹飞。(为了解决这个事笔者基本 快把gazebo的底层给看完了……被⾃⼰蠢到了) 2. gazebo的调试可以说是没有任何便利性可⾔(虽然很丢⼈,但写makefile还是给从java转过来的笔者留下了很深的阴影)主要是IDE 不好⽤……不知道CS⼤神们有没有什么优雅的解决⽅案。 本来是希望matlab做规划算法, 然后通信控制gazebo中机器⼈(笔者嫌⿇烦所以⽤了两台电脑,其实⼀台也可以,可以⽤虚拟机,或者 win10的linux⼦系统,⾄于linux上装matlab,我就不是很清楚了),以此来进⾏运动控制。但经过两个⽉的gazebo后,最终下定决⼼放 弃gazebo…… 之后听过楼上有⼈⽤过unity3D开发物理仿真环境。下好了试了⼀下……在调了⼀天的UI字体字号后,果断放弃……(但到头来⼯作的时候 还是逃不掉⽤unity)其实真正使⽤国故城中⽤unity3D遇到的问题和gazebo会差不多,但解决难度会低很多,如果各位有兴趣的话还是可 以尝试下的,说不定⽤了⼀下之后就会爱上做三维渲染了,⼿动滑稽。 之后偶然间发现matlab中有⼀个Simscape Multibody模组。点开看了⼀下,嗯~有内味。简单来说Simscape Multibody⼊门要更简单, 但是基本的建模思想和上⾯两个软件都是⼀致的,并且作为simlunk的成员,这种图形编程能在更⼤程度上降低coding时的出错概率,这⼀ 点在IDE不是很强⼤的情景下是⼗分重要的。所以最终选择了⽤Simscape Multibody。 稍稍总结⼀下:如果要搭建有物理环境的机器⼈仿真平台,使⽤的⼯具更准确来说是引擎,底层的思路都是⼀致的:底层物理逻辑,上⾯套 上⼀个图形显⽰层,当处理接触交互时还需要加上⼀个在物理层中加⼊碰撞;⽽与运动相关的所有逻辑的理论基础就是各位喜闻乐见的机器 ⼈学(动⼒学)——⽤变换来表⽰⼀切,掌握了这些之后再看上⾯这些引擎,甚⾄是市⾯上常见的游戏引擎,就明朗很多了。(话说这⼀套 仿真做下来还真能去找个游戏开发的⼯作……) PS:不知道是不是我电脑的缘故,低版本matlab(2016a)中的Simulink Simscape Multibody较容易崩溃,建议各位⼯程中真要⽤最 好还是换到最新的matlab。(⽤的时候记得打开git)
### 回答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库文件,并进行信号完整性仿真。这对于信号完整性的分析和优化非常有帮助,可以确保设计的可靠性和稳定性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电子课堂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值