PCB的Siwave交流阻抗仿真

2、PCB的Siwave交流阻抗仿真

本文Siwave工程下载:PCB的Siwave交流阻抗仿真-工程文件

0、前言

最近对信号完整性(SI)、功率完整性(PI)比较感兴趣,博主六年前上本科时也是一个画板子好手,平时用AD软件搞点FR4的简单嵌入式的电路板子玩玩,几十兆的时钟玩得不亦乐乎,放在现在真的是out了。

现在像模像样的高大上的板子基本时钟频率非常高,板子上CPU高速内存电源信号线有许多的要求,在实际投板前需要进行信号完整性(SI)、功率完整性(PI)的仿真,因此来学习一下下。学习资料是于博士的书籍《信号完整性揭秘》,还有配套的视频啥的,非常好用,简单开坑记录下。

Siwave是Ansys旗下的软件,专门用于SI和PI的仿真,之前用它家的HFSS非常多,这次也来尝尝鲜。软件的下载可以去老吴那边下载:Ansys EM 2025 R2 电磁仿真安装包已发布

本文在1、PCB导入Siwave并设置叠层数据基础上设置电容模型,并且启动AC的交流阻抗仿真,观察结果。

1、设置电容模型

1.1 电容模型下载

首先我们要具备电容模型,SIWave中已经预置了一些电容的模型,但是可能无法满足我们需求,我们先看看如何从官方下载电容模型:
在这里插入图片描述
此处以TDK的2.2uF电容模型为例,首先访问官网:TDK Product Center,输入目标电容的编号,此处是C1005X7S1A225K050BC在这里插入图片描述
此处可以下载三种类型的模型,推荐使用S参数模型,这个是直接测量得到的。而Spice模型一般是基于S参数拟合得出的,是否精确是取决于拟合所使用的器件的格数。
在这里插入图片描述

1.2 导入电容模型

在工程目录,已经下载了一些电容的S参数文件,下面我们来把这些文件导入到Siwave中:
在这里插入图片描述
导入的按钮如下所示:
在这里插入图片描述在弹出的界面点击如下按钮:
在这里插入图片描述在界面导入电容并填写一些参数,其中Rated是写的电容的耐压值,可以参考器件手册填写,此处仿真不需要这个参数,可以写个100V(dc)
在这里插入图片描述
导入后会在器件管理窗口直接看到:
在这里插入图片描述
按照同样的步骤继续导入其余的电容模型:
在这里插入图片描述

1.3 赋予电容模型

假定此处的目标是设置VCC_MAIN电源网格上的电容模型,先看看这个网络上的电容有哪些:
在这里插入图片描述
尤其注意其电容的part编号,主要有150-79706、150-79706_1、150-75975、150-79354这几个:
在这里插入图片描述
下面开始附加模型,以100uF的150-75975为例:
在这里插入图片描述
在这里插入图片描述
选择 1.2 导入电容模型中导入的模型:
在这里插入图片描述
导入后如下所示:
在这里插入图片描述
按照同样的步骤,将150-79354、150-79706、150-79706_1也赋上:
在这里插入图片描述

此时,这些赋值的电容模型已经到了指定的型号和系列下面:
在这里插入图片描述
此时,在电容模型管理窗口也可以快速查看导入模型的阻抗特性:
在这里插入图片描述

2、AC开路阻抗仿真

此处的仿真对象是红色框框里面的大芯片,仿真的电源网络是VCC_MAIN,我们上面已经将这个网络上的电容赋模型了:
在这里插入图片描述

2.1、设置端口的组

AC仿真实际上是在提取电源网络的SYZ参数矩阵,因此需要将芯片的要仿真的电源网络和地网络打包。

首先要在器件视图打开集成电路的选择按钮,否则选不上器件:
在这里插入图片描述
在芯片高亮的情况下选择创建Pin组:
在这里插入图片描述
由于创建时已经选择了器件,此时在其引脚网络中选择GND和VCC_MAIN网络并点击创建Pin Group即可:
在这里插入图片描述
点击创建后会发现所需网络自动添加到了右侧:
在这里插入图片描述
端口组设置完成后,下一步设置提取参数的端口,在选中芯片的情况下单击如下按钮
在这里插入图片描述
一定要选中芯片再点按钮,点击后设置正负端子,然后点击Create:
在这里插入图片描述
此处设置参考阻抗为0.01Ohm,这个阻抗要和电源阻抗在同一量级,因为FEM仿真是从S参数转换为Z参数的,参考阻抗50Ohm会导致误差放大:
在这里插入图片描述

2.2、仿真设置

在Simulation菜单栏下选择Compute SYZ参数:
在这里插入图片描述
需要修改的地方如下:
在这里插入图片描述
设置完成后点击Launch
在这里插入图片描述
此时会弹出进度条:
在这里插入图片描述

2.3、仿真结果查看

仿真结束后会出现结果:
在这里插入图片描述
双击打开,按照下面方法查看电路的Z参数:
在这里插入图片描述
此处可以使用Export按钮导入到数据查看器:
在这里插入图片描述
在这里插入图片描述

3、AC短路阻抗仿真

在进行AC短路阻抗仿真时,需要将电压调节模块VRM(Voltage regulator module)的输出设置为短路。
在这里插入图片描述

3.1、设置端口分组

这个VRM芯片有两路输出,分别是LX1_MAIN和LX2_MAIN,通过电感连接到主芯片的VCC_MAIN网络:
在这里插入图片描述
按住Ctrl同时选择LX1_Main和LX2_Main端口。在选择前可以在SelectionFilter中中打开Pads选中:
在这里插入图片描述
右键创建端口分组:
在这里插入图片描述
创建成功后如下所示:
在这里插入图片描述

3.2、创建短路电阻

按照下图操作:
在这里插入图片描述
按照如下选择,其中GND选择57是因为功率器件的中心的大接地焊盘的编号是57。选中后选择Resistor,并点击创建:
在这里插入图片描述在这里插入图片描述
点击Create后选择创建0欧姆电阻:在这里插入图片描述
创建后可以在右侧选择指定的电阻,随后点击OK即可:
在这里插入图片描述
创建后会在界面出现电阻标识:
在这里插入图片描述

3.3、主电源网络和VRM的相连电感设为短路

VRM的电源输出通过电感供给到VCC_MAIN,默认值是1uH,在此需要将其设置为0Ohm电阻:
在这里插入图片描述
直接依据电感的型号修改其电感值:
在这里插入图片描述
将其设置为一个非常小的电感值,就相当于短路了:
在这里插入图片描述
此处也可以使用3.2、创建短路电阻类似的方法,创建0Ohm电阻失能原来的电感。此处不过多赘述了。

3.4、仿真与结果分析

设置之前开路仿真基本设置好了,此处修改导出snp文件的后缀并点击Launch即可:
在这里插入图片描述
在网络查看器中查看Z参数取消,发现开路和短路仿真在低频差别较大,在高频阻抗特性几乎一致:
在这里插入图片描述

### 使用 SIwave 进行 PCB 的信号完整性仿真 #### 1. 准备工作 在使用 Ansys SIwave 进行 PCB 的信号完整性(SI)仿真之前,需要确保以下几点: - **PCB 文件格式**:确保 PCB 文件的格式是 SIwave 支持的格式,例如 Allegro、PADS 或 Altium Designer 等。 - **模型准备**:准备好相关的 IBIS 模型或其他必要的器件模型,以确保仿真的准确性 [^2]。 #### 2. 导入 PCB 文件PCB 文件导入 SIwave 是进行仿真的第一步。具体步骤如下: 1. 打开 SIwave 软件。 2. 选择“File” > “Import” > “PCB Design”,然后选择相应的 PCB 文件。 3. 在导入过程中,设置好单位和坐标系,并检查是否有错误提示 [^2]。 #### 3. 添加端口(Port) 在进行信号完整性仿真时,需要为待分析的网络添加端口。端口可以自动生或手动添加: - **自动生**:使用 SIwave 提供的自动端口生功能,快速为所有需要分析的网络添加端口。 - **手动添加**:推荐手动添加端口,以便更精确地控制每个网络的端口位置和参数 [^5]。 #### 4. 设置仿真参数 根据具体的仿真需求,设置仿真参数: - **频率范围**:定义仿真的频率范围,通常从几百 MHz 到几 GHz。 - **激励信号**:选择合适的激励信号类型,如脉冲信号或正弦波。 - **仿真模式**:选择适合的仿真模式,如 S 参数提取、TDR 分析等 [^2]。 #### 5. 运行仿真上述设置后,运行仿真: 1. 点击“Simulation” > “Run Simulation”。 2. 在仿真过程中,SIwave 会计算各个网络的 S 参数、TDR 曲线等数据 [^2]。 #### 6. 查看仿真结果 仿真后,查看并分析结果: - **S 参数**:通过 S 参数图,评估信号在不同频率下的传输特性。 - **TDR 曲线**:通过 TDR 曲线,识别信号路径中的阻抗不连续点。 - **眼图分析**:如果进行了眼图分析,可以通过眼图评估信号的质量 [^2]。 #### 7. 优化设计 根据仿真结果,对 PCB 设计进行优化: - **调整布线**:修改布线以减少信号反射和串扰。 - **增加去耦电容**:在电源和地之间增加去耦电容,改善电源完整性。 - **调整端接电阻**:优化端接电阻值,以匹配阻抗 [^2]。 ### 示例代码:S 参数提取流程 ```python # 伪代码示例,展示如何在 SIwave 中进行 S 参数提取 def extract_s_parameters(pcb_file): # 导入 PCB 文件 import_pcb(pcb_file) # 添加端口 add_ports_manually() # 设置仿真参数 set_simulation_parameters(frequency_range=(0.1, 10), excitation_type='pulse') # 运行仿真 run_simulation() # 获取 S 参数结果 s_parameters = get_s_parameters() return s_parameters # 调用函数 s_params = extract_s_parameters('example.pcb') print(s_params) ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

怡步晓心l

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

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

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

打赏作者

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

抵扣说明:

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

余额充值