一文教你高速PCB信号完整性仿真怎么做

我们知道,在做 PCB 设计时,原理图规定了各信号的连线关系。设计者在走线时只需要按照连线关系,在满足走线的物理和电气规则的情况下连接完所有的信号线,似乎就完成了设计。但是正如前面所说的,对于像内存电路板这样的高速电路板设计,仅仅考虑信号的连线关系时远远不够的,粗糙的设计不仅会带来诸如反射、串扰等信号完整性问题,也影响系统的时序,严重的情况下就会导致设计出来的产品无法正常工作。如何提前预见并保证在设计中避免各种问题呢?

下面我们将会对以使用Cadence SPECCTRAQuest 进行仿真分析为例,给大家对于如何做高速PCB前后仿真的过程,做一个初步的介绍。

01 仿真前的准备工作

无论要做前仿真还是后仿真,大多数情况下都需要做好下列准备工作。

1)获取元件的 IBIS 模型

SPECCTRAQuest 和任何其他电路分析软件一样,要得到精确的仿真结果,必须给电路元件提供准确的电气模型。这些模型可能是由元件的制造商提供,也可能设计者按照一定的条件下的测试结果以正确的格式制定出来。一般情况下,我们无法得知元件的测试结果,所以我们需要获得由元件制造商提供的模型。

通常我们在 SPECCTRAQuest 中使用的是元件的 IBIS 模型。必须明确,选用任何不同厂商提供的相同型类或不同类型的元件,都必须找到此元件对应的 IBIS模型。一旦选择的模型不正确,那么此后的任何分析仿真都是毫无意义的。在某些不得已的情况下,例如无法找到某一元件对应的 IBIS 模型,我们可能使用类似的元件模型来进行仿真,以得到近似的仿真结果。但是我们仅能验证大多数情况下相似的模型能得到相似的波形,却无法排除出现不相似波形的可能性。

当然,对于无需参与仿真的元件或是我们不关心其功能的元件,例如内存模块中的 EEPROM,就不必考虑其 IBIS 模型了。第一部分的第七章提供了一些网站可以下载一些常见的 IBIS 模型。

2)转换 IBIS 文件格式及调入模型

进入 SPECCTRAQuest,并打开需要分析的“.brd”文件。SPECCTRAQuest 仿真工具虽然不是直接读取 IBIS 文件,但它能将 IBIS 模型能转换为软件本身支持的 dml 格式进行调用。具体操作步骤为:在 SPECCTRAQuest 界面下,点击 Analyze->SI/EMI Sim->Library;

图1

弹出的窗口的右下方有一个“Translate”功能按键,单击选中“ibis2signoise”,在目录路径里选择你想转换的 Ibis 模型文件,转换完成之后可以在你的 library browse 里看到相应的 dml 文件。如果已经存在转换好的 dml 文件,也可以通过单击“Add Existing Library->”,在目录路径里直接添加相应的 dml 文件。

图2

3)给元件加载对应的模型

这一步的目的是将各模型加载到相对应的元器件上,具体步骤是:

a.在 SI/EMI Sim 菜单下选择 model assign;

图3

b.这时会出现Signal Model Assignment窗口。选中元器件,点击Find model;

图4

c.在出现的 Model Browser 窗口中选择你所需要的模型即可。其中 Show Model From 一栏可选择模型所在的库,Model Type Fitter 一栏可选择模型的类型,而 Model Name Pattern 输入“*”即可显示在所选择的库和类型中所有的模型。有些元件,比如电阻、电容等无源器件,需要自己建立模型,点击 create model(对于无源器件选择 Espicemodel,其他 I/O 模型用 IBISdevice 模型),然后按提示输入 value 及各管脚的功能即可,同时可以存盘生成*.dat 文件,这样以后进行仿真时直接 load 即可,可避免重复上述过程。

图5

4)定义电源电压

这里的电源也包括地。只有定义了电源电压和地电平,才能在提取拓扑结构模型时将电源的模型调出来。这一步骤对于前后仿真而言都不是必需的,只要所需仿真分析的信号线中与电源和地均没有关联。具体操作步骤为:

a.在 SPECCTRAQuest 中选择 Logic->Identify DC Nets;

b. 这时会出现 Identify DC Nets 对话框,选择电源信号,在 Voltage 一栏中填上对应的电压,并确认(“OK”或“Apply”)即可。

图6

5)PCB 叠层设置

通过调整 PCB 的每一层的物理厚度和走线层的线宽,使 PCB 各层上的走线的特征阻抗符合设计的要求,以确保仿真结果的精确性。具体操作步骤为:

在 SPECCTRAQuest 中选择 Setup->Cross-section 或快捷按钮。这时会弹出 Layout Cross Section 对话框。此对话框中,可以添加或删除叠层,也可以更改每一层的类型、材料、厚度、电导率、介电常数、线宽、特征阻抗等参数。一般而言,PCB 叠层的数量和顺序以及每一层的类型、材料、电导率、介电常数等已经确定了,需要按照给定的要求设置。而为了达到要求的特征阻抗,对于前仿真,一般调整的是线宽(一定的范围内)和介质厚度,对于后仿真,由于走线已经结束,能调整的主要就是介质的厚度。

图7

另外,我们在使用 Cadence PSD 14.2 版本做叠层设置时,常常会出现程序的不正常退出,这可以通过使用 Script 指令代替手工设置来解决。

6)仿真参数的确定

在进行仿真前,需要对各种不同的仿真参数进行设定,以使仿真结果能够更精确的反映设计者的要求。当然,如果需要的话,仿真分析过程中也可以调整仿真参数。具体操作步骤为:

在 SPECCTRAQuest 中选择 Analyze->SI/EMI Sim->Preferences(或是在Sigxplore 中选择 Analyze->Preferences);

这时会弹出 Analysis Perferences 对话框。这里可以设置的参数包括器件模型参数,互联模型参数,仿真设置参数,单位,EMI 参数和电源完整性参数等。其中常用的大致有:仿真的周期数(measurement cycle),时钟频率(Clock frequency),占空比(duty cycle),偏移量(offset),固定仿真时间(fixed duration),波形取样时间(waveform resolution),截止频率(cutoff frequency),仿真模式(FTS mode),驱动激励(drive excitation),测量模式(measurement mode)等等。一般可以使用默认值,各人根据自己的要求进行个别调整。

图8

02 设计后仿真的过程

由于设计后仿真更为普遍,其执行过程也更为公式化,所以在此我将后仿真的过程提到前面来阐述。

目前我们使用 Cadence SPECCTRAQuest 做项目的后仿真主要是针对单个电路板内由反射一系列信号完整性问题,而暂时较少的考虑其他因素诸如串扰、EMI等。

1)确定准备工作已经做好

一般来说,做仿真前还是先检查一下准备工作是否做好了,否则当仿真做到一半,才发现原来叠层没有设置(还是默认的),或者有哪个模型没有设置正确,先前做的仿真就白费了,一切只有重头来过。

2)选择信号线

在 Signal Analysis 对话框里选择需要仿真的信号线。其实 Signal Analysia 对话框中有很多比较有用的功能,稍后会讲到。具体操作步骤为:

a.选择 AnalyzeÆSI/EMI SimÆProbe(或者快捷键),这时会出现Signal Analysis 对话框。在 Net 一栏中填入*,这样所有的 net 会出现在左方的框里,用户可以选择其中任一信号线进行仿真。当然,也可以通过点击 List of Nets,调入已存在的网表文件(网表文件可以通过在SPECCTRAQuest 中选择 Logic->Create List of Nets 创建),或点击 Net Bowser,选择自己所希望显示的 Nets。

图9

b.在 Driver Pins,Load Pins,和 Other Pins 中,会按输入输出关系分类显示所选中的 Net 的管脚。但这不是必然的,是否能显示 Net 的管脚在对应的框里,取决于在做原理图的器件封装时是否准确器件管脚类型;或者,设计者也可以在 SPECCTRAQuest 的 Logic->Pin Type 中编辑各器件的管脚类型。

3)提取电路拓扑结构

这是我们后仿真中最常用的方式,选择目标 Net,提取它的拓扑结构,进入Sigxplorer 中分析仿真。具体步骤为:

在 Signal Analysis 对话框中选择好目标 Net 后,点击右下方的 View Topology。这时 SPECCTRAQuest 进入 Sigxplorer, 并在 Sigxplorer 界面中显示所提取电路的拓扑模板。所以,我们也可以把 View Topology 按键当作连接 SI Expert 和 Sigxplorer 的桥梁。

图10

观察提取出来的电路拓扑模板是否正确。由于某些我们尚未明了的原因,偶尔会出现仅仅提取出电路上各元件的模型(驱动器,接收器,传输线等),但没有这些元件的连接关系。个人猜想可能是过孔(Via)模型不全或是 PCB 设计中过多使用任意角度走线的缘故。

在 Sigxploer 界面,电路拓扑模板的下方,是一个电子表格。这个电子表格有几栏,分别是 Parameters,Measurements,Results 和 command,点击它们就会在表格中显示对应的模块。

4)选择不同的驱动激励和元件参数进行仿真

分析仿真应该在设计者要求的设置环境下进行,Sigxplorer 提供了多种驱动激励模式,以及各种元件比较细致全面的可编辑的参数,而且还允许参数扫描分析。对于目前我们后仿真的设计要求,Sigxplorer 提供的功能是强大而有效的。

具体步骤为:

点击此电路驱动源的上方第二行白字“TRISTATE”,会出现如下窗口:

图11

在此窗口中给驱动源选择正确的驱动模式(我们通常激励类型选为 Pulse,脉冲激励),某些模式参数如需更改需要在 Analyze->Preferences 中进行。如果需要对传输线模型和电路上一些例如电阻电容的元件的参数进行调整,可以点击此元件的第一行文字,即元件名,这时 Sigxplorer 的电子表格会自动跳到 Parameters 一栏,并展开此元件的所有参数,如下图所示:

图12

然后根据需要在电子表格中更改参数的值。参数设置完毕后,选择 Analyze->Simulate 或快捷按钮执行仿真。这样Sigxplorer 的电子表格界面会自动跳到 Results 一栏并显示仿真结果,而且在没有执行参数扫描仿真的情况下(即所有参数都是某一个定值),还会自动调入SigWave 显示仿真结果的波形。

5)仿真结果的分析

对于仿真结果,以反射分析为例,如下图:

图13

它包含的信息有:SIM ID(模拟的次数),diver(驱动源),receiver(接收端),cycle(测量的周期),FTS MODE(仿真模式),monotonic(单调性),Noise Margin( 噪 声 裕 量 ) , overshoothigh( 上 过 冲 ) , overshootlow( 下 过 冲 ) ,PropDelay(传输延迟,驱动端到接收端),switch delay(开关延迟),settle delay(建立时间)等。而很多的情况下,我们更看重以 SigWave 显示的结果波形图,可以结合波形图一起分析。一般要求噪声裕量足够大,上冲和下冲不要超过规定电压,没有明显的振铃现象,波形没有严重失真,波形上下升沿要保持单调性等等。但对于不同的电路,有时对于传输延迟时间的长短,或者上升时间的快慢有特别的要求,这就需要设计者具体问题具体分析了。

6)SigWave 的使用

SigWave 波形显示器的作用是把仿真结果(其实就是一种电子数据表文件)以波形图的形式直观的显示出来。SigWave 支持多种格式的仿真结果输入,例如Hspice、Quad 等;同时也可以将当前波形存为.sim 格式文件或以 Bitmap(位图)、JEPG 等图形格式及 Spreadsheet 表格文本格式输出。对于显示功能而言,SigWave也是比较强大而易用的,波形的缩小和放大、显示和隐藏,测量标记和注释的添加和删除,显示颜色的更改等等,都能够轻松实现,还提供了诸如频谱图、眼图等显示模式。

图14

7)后仿真的收尾工作

当在 Sigxplorer 中完成一条 Net 的仿真,可以关闭 Sigxplorer 程序再退回到 SI Expert 中。如果想仿真新的信号,并和前面的信号仿真波形在同一个示波器窗口比较,则可以通过窗口切换,在 SI Expert 的 Signal Analysis 对话框中选择另一 Net 并提取,出现提示时选择“Yes”,这样新的结构被提取的同时,示波器窗口不会被关闭。但有的时候,这样做会造成 Sigxplorer 中造成模型混乱而导致新 Net 拓扑模板的仿真无法进行,这大概是 SPECCTRAQuest 的一个 Bug。在关闭 Sigxplorer 之前,出于为方便仿真报告的撰写和以后查证等方面考虑,一般需要把提取出来的拓扑模板以.top 的文件格式存盘,连同.sim 格式图形格式的波形文件储存在易于查找和管理的地方。

来源:EDA365电子论坛

免责声明:本文系网络转载,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请第一时间告知,我们将立即删除内容!本文内容为原作者观点,并不代表本站赞同其观点和对其真实性负责。