Allegro PCB SI一步一步学会前仿真.docx
《Allegro PCB SI一步一步学会前仿真.docx》由会员分享,可在线阅读,更多相关《Allegro PCB SI一步一步学会前仿真.docx(107页珍藏版)》请在冰豆网上搜索。
![Allegro PCB SI一步一步学会前仿真.docx](https://file1.bdocx.com/fileroot1/2023-8/15/3c2f56eb-b29a-4221-b03a-daf67513a22a/3c2f56eb-b29a-4221-b03a-daf67513a22a1.gif)
AllegroPCBSI一步一步学会前仿真
DocScope:
Cadence16.5
DocNumber:
SFTEC12007
Author:
DanielZhong
CreateDate:
2012-04-10
Rev:
1.00
表格
图
1CadenceAllegroPCBSI简介
AllegroPCBSI是CadenceSPB系列EDA工具之一,针对电路板级的信号完整性和电源完整性提供了一整套完善、成熟而强大的分析和仿真方案,并且和CadenceSPB的其他工具一起,实现了从前端到后端、约束驱动的高速PCB设计流程。
信号完整性和电源完整性的仿真按照在这个设计流程中所处的阶段可以分为前仿真和后仿真,本文会介绍AllegroPCBSI在前仿真阶段基本的设计流程和操作步骤,并重点介绍其中的配置和模型加载环节。
1.1高速PCB设计流程
传统的PCB设计流程如下图所示:
图1:
传统的PCB设计流程图
而引入的AllegroPCBSI仿真工具后的设计流程改进为:
图2:
AllegroPCBSI高速PCB设计流程图
2AllegroPCBSI的前仿真
前仿真,顾名思义,就是布局或布线前的仿真,是以优化信号质量、避免信号完整性和电源完整性为目的,在众多的影响因素中,找到可行的、乃至最优化的解决方案的分析和仿真过程。
简单的说,前仿真要做到两件事:
其一是找到解决方案;其二是将解决方案转化成规则指导和控制设计。
一般而言,我们可以通过前仿真确认器件的IO特性参数乃至型号的选择,传输线的阻抗乃至电路板的叠层,匹配元件的位置和元件值,传输线的拓扑结构和分段长度等。
使用AllegroPCBSI进行前仿真的基本流程如下:
■准备仿真模型和其他需求
■仿真前的规划
■关键器件预布局
■模型加载和仿真配置
■方案空间分析
■方案到约束规则的转化
2.1准备仿真模型和其他需求
在本阶段,我们需要为使用AllegroPCBSI进行前仿真做如下准备工作:
■获取所使用元器件的仿真模型
■获取所使用连接器的仿真模型
■获取所使用元器件和连接器的器件手册和用户指南等相关资料
■获取所需的规范文档
■了解相关电路和接口工作原理
■从上述文档资料中提取与信号完整性相关的要求
■当需要时,预先创建拓扑样本
■当需要时,预先创建相对于不同阈值电压的眼图模板
■当需要时,预先创建自定义测量
下面,我们会以一个实际的电路板为例,介绍前仿真在AllegroPCBSI16.5中的具体执行过程。
案例电路板:
DDR3带寄存器内存条(RDIMM)B0公版,其原理图和brd设计文件可以在JEDEC网站上下载,下载链接为:
http:
//www.jedec.org/system/files/docs/design/DDR3/PC3-RDIMM_V072_RC_B0_20090713.zip。
编者注:
以上链接需要在JEDEC网站注册成功后才能下载。
对于DDR3内存条,它的分类有多种,RDIMM、UDIMM、SODIMM、MicroDIMM等;每一种类型又根据配置的不同(主要是所使用的内存芯片的数目和位宽的不同)分成多款公版(RawCard)。
分类的细节编者就不在此详述,如需了解可参阅JEDEC相关规范或其他相关文章。
对于RDIMM,从内存控制器发送过来的时钟和地址、命令、控制信号都会先经过内存条上的寄存器寄存,然后再发送到内存芯片。
所以在RDIMM内存条上,寄存器和内存芯片上的时钟和地址、命令、控制信号就构成了一个时域系统。
在本文中,我们将针对这个时域系统进行仿真和分析。
而对于数据类信号(数据、数据选通和数据掩码),需要通过金手指、内存插槽、主板上的信号线和内存控制器相连,文本将忽略对其的仿真和分析。
根据上文所述,本文中我们只关心寄存器和内存芯片的地址、命令、控制和时钟信号的时域系统,所以模型文件和文档资料也只需要准备与这部分系统相关的即可。
2.1.1获取所使用元器件的仿真模型
DDR3的寄存器多数由TI或IDT提供,但TI或IDT并没有在其公司网站上公开提供IBIS或Hspice仿真模型,我们可以向TI或IDT询问索要寄存器的IBIS模型;而内存芯片的IBIS模型可以在Samsung、Micron、Hynix、Elpida等公司的网站上找到,各个厂商的模型虽然在参数曲线上有少许区别,但其特性都符合JEDEC的DDR3规范,都可在RDIMM设计上使用,我们选择一个类型相符(位宽、容量、管脚数目、堆叠与否)的即可。
这里,我们可以在Micron网站上下载以下EBD模型,由于其本身的配置和RDIMM的B0公版一致(应该就是使用公版设计生产的),所以我们可以从下载到的EBD压缩包中解压得到所需的寄存器和内存芯片模型。
下载得到MT18JDF51272PDZ-1G6M1_ebd.zip,在压缩包中可解压找到EA32882_1p6.ibs和v78d.ibs两个文件,依次是寄存器和内存芯片的IBIS仿真模型。
2.1.2获取所使用连接器的仿真模型
本案例中,不执行通过内存金手指、内存插槽和主板相连的信号的仿真分析,所以相关金手指和插槽的模型忽略。
2.1.3获取所使用元器件和连接器的器件手册和用户指南等相关资料
TI寄存器的datasheet下载链接如下:
IDT寄存器的datasheet下载链接如下:
Micron内存芯片的datasheet下载链接如下:
2.1.4获取所需的规范文档
DDR3SDRAM规范可以在JEDEC网站如下网页下载:
http:
//www.jedec.org/sites/default/files/docs/JESD79-3E.pdf
DDR3RDIMMRCB设计规范可以在JEDEC网站如下网页下载:
http:
//www.jedec.org/sites/default/files/docs/4_20_20_AnnexBR21.pdf
DDR3SSTE32882寄存器规范可以在JEDEC网站如下网页下载:
http:
//www.jedec.org/sites/default/files/docs/JESD82-29A_0.pdf
编者注:
以上链接都需要在JEDEC网站注册成功后才能下载。
2.1.5了解相关电路和接口工作原理
做仿真分析前,了解相关电路和接口的原理是必须的。
但介绍DDR3RDIMM工作原理和DDR3接口规范等内容不在本文范畴内,本小节忽略。
2.1.6提取与信号完整性相关的要求
这一环节,简而言之,就是从元器件手册和相关规范中找到与信号完整性相关的要求,例如建立时间、保持时间、变化沿斜率范围、最大过冲电压、最小下冲电压等等,从而通过仿真分析找到符合这些要求或参数的解决方案。
相关的参数要求当需要时,会在下文介绍仿真执行时给出,这里不再详述。
2.1.7预先创建拓扑样本
预先创建拓扑样本这一环节,就是在CadenceSigXP中手动创建相关信号线的拓扑,供之后执行假设分析(What-if)和参数扫描仿真使用。
此环节不是必需,一般只出现在简单拓扑或拓扑结构已确定的信号线上,更多的情况下,常常是在空白的电路板上执行关键器件预布局后,通过初略预布线的方式连接信号线,然后在AllegroPCBSI中提取此信号线的拓扑进入到SigXP中进行仿真,这样对于多负载的负载拓扑而言更为方便一些。
本文会在下面的章节中介绍如何在SigXP中手动创建信号线拓扑,以及如何配置brd设计文件以提取信号线拓扑进入到SigXP中。
2.1.8预先创建相对于不同阈值电压的眼图模板
眼图模板是显示在CadenceSigWave波形显示器中眼图模式下的图案,用于辅助确认信号眼图的质量。
图3:
眼图模式下的眼图模板
在本环节中,我们可以依据信号阈值电压、建立和保持时间等参数预先创建信号的眼图模板,供信号分析时使用。
关于如何创建和编辑信号的眼图模板,笔者将另文介绍,本文不再详述。
2.1.9预先创建自定义测量
在SigXP中,Cadence提供了众多的默认测量,包括信号飞行时间、解决时间、传输延迟、单调性、最大过冲电压、最小下冲电压、眼图眼睛高度、眼图眼睛宽度等等。
但对于一些更复杂更细节的测量要求,就需要通过自定义测量来实现了,例如过冲面积、下冲面积、变化沿斜率、建立时间、保持时间等等。
自定义测量是Cadence为SigXP提供的一个接口,让用户可以通过对话框形式或文本形式在一定的语法格式下编辑所需的自动测量,然后可以在SigXP调用并将测量所得值显示在结果中。
关于如何创建和编辑自定义测量,笔者将另文介绍,本文不再详述。
2.2仿真前的规划
由于前仿真的主要目的就是在众多的待定参数中找到适宜的解决方案,所以常常不得不采用耗时耗力的假设分析和参数扫描的方式执行,这也就意味着,不确定的因素越多,所需执行的扫描仿真次数也就越多,执行仿真所需的时间也就越长。
因此在执行仿真前,我们常常需要通过通过各种方式去减少不确定的因素,或是缩小不确定的范围。
这基本上就是在仿真前的规划这一环节所需要完成的事情。
在本环节,我们常常可以通过芯片手册、用户指南和信号规范,以及所设计系统的具体情况,乃至自己和他人的经验,去对一些待定因素做出一些取舍。
例如本案例中,假定并没有JEDEC给出的设计规范,我们还未知道地址、命令、控制和时钟信号需要走Fly-by拓扑,那我们就有可能需要仿真平衡T型拓扑时信号的情况,这可能会带来两倍的仿真时间。
图4:
地址、命令和控制信号传输线拓扑
又例如按照板子的尺寸情况,我们确认了要完成布线至少需要6层板,而传输线密度又决定了传输线宽度不能大于5mil,板厂生产工艺方面又限制了线宽不能小于4mil,再依据板厚和可能的叠层方案我们可以知道内层传输线的阻抗范围只能在50~75ohm之间,这样我们仿真时就不需要再扫描此范围之外的阻抗。
再例如依据布局和布线空间,当采用Fly-by拓扑时,寄存器到第一个内存芯片的传输线长度的范围,每两个内存芯片的传输线长度的范围也可以大致确定,芯片的尺寸决定了传输线不能太短,布线空间决定了传输线不能太长。
以上种种,只是列举了少量我们为缩小扫描仿真的范围和次数所作的努力,实际设计中,还可以有更多因素可以通过非仿真手段进行确认,这里不再一一详述。
2.3关键器件预布局
关键器件的预布局这一环节,可以认为是在执行前仿真以前,根据之前初步的规划以及其他已确定的要求,对关键的元器件和接插件进行初略或精确的定位布局的过程。
对于结构上已经固定的器件,特别是接插件,布局需要根据MCAD工具提供的结构文件(例如DXF)精确地定位,而对于热分析或信号完整性预估所核定的器件位置,一般只是粗略地定位。
本环节在前仿真之前并不是必须的,对系统和相关信号有一定理解,并对仿真有一定经验的工程师可以直接通过手动的方式在SigXP中创建拓扑进行仿真。
在本案例中,为了虚拟前仿真阶段的环境,我们把之前下载到的PC3-RDIMM_V072_RC_B0_20090713.zip解压得到的PC3-RDIMM_V072_RC_B0_20080123.brd文件在Allegro中打开,并删除所有铜皮、铜线和过孔,另存为Pre_simu.brd备用。
图5:
RDIMM的布局示意图
2.4模型加载和仿真配置
在本章节中,将会依次介绍如何在AllegroPCBSI界面下进行模型加载和仿真配置,并提取网络拓扑进入到SigXP界面;以及如何在SigXP界面下手动创建拓扑。
■模型的转化
■使用SIDesignSetup配置
■选择需要配置的信号线
■设置仿真库
■设置电源和地网络
■设置叠层
■设置元器件类别
■为元器件分配和创建模型
■设置差分对
■设置仿真参数
■SIDesignAudit相关
■提取拓扑
■在SigXP中设置仿真库和仿真参数
■在SigXP中绘制拓扑
2.4.1模型的转化
信号完整性仿真大多针对由芯片IO、传输线以及可能存在的接插件和分立元件所构成的信号网络系统,为了实现精确的仿真,仿真模型的精确性是首先需要保证的。
一般情况下,AllegroPCBSI会执行传输线和分立元件的建模,而芯片IO和连接器的模型通常会由原厂提供。
当前业内常见的芯片IO模型有两种格式,IBIS模型和HSPICE模型;常见的连接器模型也是两种,SPICE(HSPICE)模型和S参数模型。
AllegroPCBSI支持包括上述四种模型在内业界流行的仿真模型,但一般都需要转化为Cadence自己的DML(DeviceModelingLibrary)后才能使用。
AllegroPCBSI在仿真时需要将仿真模型都转变成DML模型格式这一做法,区别于大多数EDA软件,这种做法可以说是有利有弊。
弊,很明显,就是多一个额外的步骤,虽然这一步骤非常简便;利,则是有利于仿真库的管理,做到仿真库和原始模型文件的隔离,并且在文件格式转换的同时也执行了模型的校验。
在大多数情况下,外部模型格式到CadenceDML模型格式的转换还是非常方便的,只需要用CadenceSPB系列工具包中的ModelIntegrity软件打开模型文件,然后点击转换到DML即可。
在本案例中,我们之前已经从Micron下载到寄存器和内存芯片的IBIS模型,可以有两种方法处理:
其一,在ModelIntegrity界面下或AllegroPCBSI界面下将IBIS模型转换成DML格式,供之后的仿真调用;
其二,从CadenceSPB16.5版本开始,AllegroPCBSI名义上也直接支持IBIS模型,所以可以保留现有的两个IBIS文件不做转换,然后在之后的仿真中直接调用。
之所以说是“名义上”,因为事实上AllegroPCBSI还是执行了转换,只是这个转换的过程在分配模型的同时一起执行了,没有摆在明面上。
我们先来看看如何使用ModelIntegrity转换IBIS模型。
1.在开始菜单找到
ModelIntegrity快捷方式,或者在目录%CDSROOT%\tools\pcb\bin(其中,%CDSROOT%是CadenceSPB的安装目录,例如D:
\Cadence\SPB_16.5)下找到modelintegrity.exe执行文件,点击即打开ModelIntegrity窗口。
图6:
ModelIntegrity界面
2.点击File->Open打开寄存器的IBIS模型文件EA32882_1p6.ibs;
3.右键点击浏览栏中的EA32882_1p6,选择IBIStoDML;
图7:
使用ModelIntegrity将IBIS文件转换至DML格式
4.转换得到的同名DML模型会显示在ModelIntegrity窗口中,同名文件也出现在IBIS文件同一目录下。
5.重复上述步骤将内存芯片的IBIS模型v79d.ibs也转换成DML格式。
不经转换直接调用IBIS的方式将在下面章节中介绍。
2.4.2使用SIDesignSetup配置
无论使用哪一种仿真软件,在执行仿真以前,一般都需要对电路板进行一定的配置,配置仿真的环境、模型的分配和参数的设定等等,目的是使仿真能够按照我们所要求的进行下去。
在AllegroPCBSI16.5版本中,引入了新的SIDesignSetup命令,能够更有效地引导用户进行仿真配置。
对于16.3及以前的版本,也存在类似的命令,如DatabaseSetupAdvisor。
SIDesignSetup和DatabaseSetupAdvisor这些命令本身并不是直接的配置命令,它只是一个向导,引导用户一步一步地执行配置,并在每一步上给出相关配置命令的接口。
所以事实上,熟练的工程师也可以不通过这些向导直接调用相关命令对电路板进行配置,效果是一样的。
AllegroPCBSI16.5版本中的SIDesignSetup命令会依次执行以下几个步骤,我们将会在随后的章节中介绍这些步骤的具体执行过程。
■选择需要配置的信号线
■设置仿真库
■设置电源和地网络
■设置叠层
■设置元器件类别
■为元器件分配和创建模型
■设置差分对
■设置仿真参数
2.4.3选择需要配置的信号线
为了方便起见,先将之前的所有文件,包括电路板brd文件和仿真模型文件(IBIS和DML)都存放到一个文件夹中,例如E:
\Pre_simu。
编者注:
CadenceSPB软件并不能完美的支持带空格、特殊符号和中文的文件名和目录名,所以建议将相关文件和目录只使用字母、数字、中划线和下划线命名。
在开始菜单找到
PCBSI快捷方式,或者在目录%CDSROOT%\tools\pcb\bin(其中,%CDSROOT%是CadenceSPB的安装目录,例如D:
\Cadence\SPB_16.5)下找到allegro.exe执行文件,点击即打开CadenceProductChoices窗口。
图8:
CadenceProductChoices产品选择器窗口
选择AllegroPCBSIGXL,并点击OK按钮,即打开AllegroPCBSI窗口。
然后通过File->Open打开Pre_simu.brd文件。
图9:
AllegroPCBSIGXL界面
编者注:
如果在之前的使用中已经在CadenceProductChoices窗口中勾选了UseasDefault的情况下选择了某个产品,例如AllegroPCBDesigner,可以在Allegro中选择File->ChangeEditor,就会弹出CadenceProductChoices窗口,供重新选择产品。
在AllegroPCBSI窗口中选择Setup->SIDesignSetup,会弹出SetupCategorySelection窗口。
勾选所有选项,并点击Next进入下一环节。
SetupCategorySelection窗口会切换SetupXnetSelection窗口。
图10:
SetupCategorySelection窗口
图11:
SetupXnetSelection窗口
这里做一下补充说明,在SetupCategorySelection窗口的选项中,除了最下面一项,其它都是我们需要通过此向导执行的配置项目;而勾选了最后一项“RunAudituponcompletionofeachsetupcategoty”则意味着我们在之后的每一项配置完成后,点击Next进入到下一环节前,都会自动执行针对此环节的仿真审核,以找出我们在配置过程中存在的问题。
而在SetupXnetSelection窗口中,我们可以只勾选我们关心的、需要执行仿真和配置的网络,这样随后的SIDesignSetup配置向导和审核就只会针对这些勾选网络相关的模型、网络和参数等,不需要花时间在无关的网络上。
在本案例中,我们勾选所有网络(毕竟板子规模小,全板配置也并不麻烦);大家可以自行比较只选择少量网络时的区别。
另外,由于这里我们勾选了所有网络,Allegro会弹出一个善意的提醒框,建议只选择高速网络以减少配置错误,选择“是(Y)”继续。
图12:
AllegroPCBSIGXL关于网络设置的提醒框
2.4.4设置仿真库
接上节,SetupXnetSelection窗口会切换至SetupLibrarySearchDirectories窗口,即设置仿真库搜索路径。
默认情况下,库路径包括brd文件所在目录以及Cadence自带库所在目录,本案例的默认路径即:
E:
\Pre_simu
d:
/Cadence/SPB_16.5/share/local/pcb/signal
d:
/Cadence/SPB_16.5/share/pcb/signal
d:
/Cadence/SPB_16.5/share/pcb/signal/power_integrity
我们可以通过SetupLibrarySearchDirectories窗口右方的按钮“AddDirectory”添加新目录;在选中某一原有目录后,可以用“RemoveDirectory”按钮移除;在选中某一原有目录后,还可以用“MoveToTop”、“MoveUp”、“MoveDown”和“MoveToBottom”调整目录的相对位置。
这里需要说明的是,当所有库路径下存在同名模型时,AllegroPCBSI会以最先找到的模型为准,也就是位置靠上的路径。
当确认了模型库所在目录都已正确设置,点击“Next”按钮继续。
SetupLibrarySearchDirectories窗口将切换至SetupLibraryFileExtensions窗口,即设置模型文件后缀窗口。
一般而言,这里可保持所有类型的模型文件后缀名为默认,直接点击““Next”按钮继续。
图13:
SetupLibrarySearchDirectories窗口
图14:
SetupLibraryFileExtensions窗口
SetupLibraryFileExtensions窗口将切换至SetupWorkingLibraries窗口,即设置工作模型库窗口。
这里会显示之前所设定的库路径下包含的所有DML和IML(InterconnectionModelLibrary)模型库,其中包括软件自动生成的devices.dml和interconn.iml模型库(位于brd文件所在目录,并且默认成为工作模型库)。
图15:
SetupWorkingLibraries窗口
在本案例中,我们可以看到之前转换得到的、存在于brd所在目录(E:
\Pre_simu)下的EA32882_1p6.dml和v79d.dml模型显示在DML模型库中。
而工作模型库是默认的devices.dml和interconn.iml。
这里需要说明的是,所有在AllegroPCBSI中新建的模型都会保存在工作模型库中,工作模型库可以叉选切换,但同时只存在一个。
另外,如果需要,我们还可以叉选IgnoreLibrary,选中的模型库将不会在AllegroPCBSI中调用。
在本案例中,我们保持SetupWorkingLibraries窗口为默认不变,直接点击“Next”按钮进入到下一环节。