Ansoft 软件(spicelink)利用 和Hspice程序的编写及其参数的选择

[摘要] 本文结合ES8000项目高速背板的研发,阐述了Ansoft软件的使用,以及Hspice程序的编写方法.
[关键词] Ansoft软件  Hspice  高速信号仿真
1 序言
es8100项目中,我们的背板采用2.5Gb/s的串行信号进行传输,这个速率用目前用Cadence进行仿真已经显得力不从心,况且背板信号仿真还要牵涉到接插件的性能,包括过孔的性能已经成为影响信号质量的重要因数,对过孔的建模和仿真是一个必须突破的技术难题,传统的办法是用等效或集总参数进行建模,这种方法的仿真结果达不到理想的精度,而且不能精确定位部通过孔的参数,所以我们采用AadenceAnsoftlink以及Spicelink三种软件配合使用,提取三维结构件(过孔)的spice模型,并分析过孔的tdr波形,最后我们用hspice 编写完成整个信号链路的TDR及眼图仿真,分析在不同情况下的阻抗连续性和抖动性能、眼睛开度。
2 Asoft软件的使用
下面介绍一下结合高速背板仿真设计中的流程对各个软件的使用方法进行说明。
2.1 三维结构件性能参数的提取
在超高速设计中,过孔的性能成为设计中至关重要的一个环节,所以必须提取它的参数并对它进行优化。提取三维结构件的性能参数分为两个步骤。
1)  进行三维结构件的结构建立,ansoft软件本身(如HFSSSPICELINK)具有三维建模的能力,但是用起来非常复杂,所以我们采用cadence软件提取过孔的三维原型,然后通过软件ANSOFTLINKS转变成ANSOFT认识的数据格式。首先我们利用cadence软件建立一个过孔,如图1所示,注意过孔的尺寸必须要与实际使用的过孔尺寸相同,具体的步骤可以参考cadence软件的使用手册,然后建立一个元器件,使它的封装调用该过孔,最后在原理图中调用这个器件,要注意的一点是在原理图中该元器件必须接地,否则不能转化为ANSOFT能够认识的数据格式。
2)  CADENCE的原理图数据到入到allegro中,需注意的一点是必须设置好叠层结构,使它与实际使用的板子的叠层相同,接下来的一个步骤是设置好平面层的antipad,设置步骤如下:
1.选择add           shape             solid fill 画出一个区域,注意选择的平面应该是平面层(即地平面、电源层),选择的区域大小大于antipad尺寸的3倍。
2.选择void            shape挖出antipad的位置尺寸。
3.选择shape            fill命令覆盖solid fill antipad之间的空间,并赋该平面层的网络为地。
4.选择edit             z-copy将这个层的结构拷贝到其它的平面层。
这样整个cadence的三维建模已经结束,调用allegro软件的命令ansoft             write neutral命令将原先的pcb文件转换为 .anf 文件。

2.2 Ansoftlinks

ansoftlinksansoft电磁场仿真工具与主流eda软件的接口工具,它可以快速读取cadenceavantmentoreda软件的数据信息,操作步骤如下:
1)选择file          import anf命令将cadence软件中生成的anf软件读入,软件的界面见下面的图2
2)将net中的ground选项选中。
3)  选择edit           layerstack, 调整顶层和底层外的空气层的厚度为2mm
4)  选择 edit          via,不改变via的材料,但是将via fill改为100%
5)  选择file             export              export solid model 将三维结构模型转化为ansoft的三维电磁场模型 .sm3文件)。
2.3 spicelink
Spicelink ansoft公司专用的寄生参数提取器,它通过精确求解三维电磁场。提取三维结构和各种分离部件的精确RLC寄生参数,自动生成SPICE等效电路,从而方便各种SPICE仿真器的使用。提取寄生参数的步骤如下:
1.       建立工程文件,导入sm3文件。
2.       选择需要的参数(request parameter…),将所有的直流、交流及电容全部选上。
3.       按照实际PCB的结构编辑三维模型(Draw…)。在这里首先完成将所有相同种类物质的合并,采用solid          unite命令合并所有相同的材料进行,注意这些材料必须在结构上相连才能合并,顶层上的空气层和底层下的空气层就只能分别作为独立的两层物质,要注意的一点是必须将不在走线层的过孔焊盘和周围的fr4介质进行合并,见下面的图2

重命名材料并改变他们的显示属性,采用edit           attribute            by click,将金属材料设为实体,将非金属材料设为透视体。
4.       定义材料(setup material…)
绘制完模型后,用户可以从材料库中选择已有的材料来定义模型材料,也可以根据需要,自己定义材料。在实际使用中,我们采用cu作为作为过孔材料,fr4为介质材料,外围为空气。
5.       设置导体(setup conductor…),采用auto setup来完成设置。
6.       定义端口和边界(setup boundaries…),边界已经有cadence软件建立三维结构时候已经完成,关键是端口,在这里,端口是电流进入和出来的地方。对于差分线队,端口应是对称的。
7.       设置求解(setup solution),将全部选项选上。
8.       仿真运行(solve parameter),将所有的支流、交流、电容、电阻、电感参数选上,系统自动运行并将计算出三维模型的寄生参数。
9.       参数后处理(reduce matrices…),主要分为三步,第一步floatinfinity即将无限远浮地。第二步groundnet with gnd即将地网络接地,第三步 change fequence 即将工作频率设为1.25e+009HZ
10.   输出spice模型(export circuit equivalent…)选择formathspice, 电容、电阻、电感注意应该选择上面reduce后的结果,位于globmtrx目录下。最后选择create equivalent…生成最后的spice模型。

3 Hspice
hspice程序的编写是以spice语言的结构来描述仿真链路的结构。具体spice的语法可以参考硬件设计园地中专业小组的” hspice.pdf ”, 下面我将编程中主要的几个重要部分进行一下设计说明。
3.1 信号源的编写
在设计中我们经常要测试信号链路的阻抗情况和它的抖动特征,所以经常用到的信号源主要主要有以下两个,TDR源和眼图测试码,在我们的设计中,将这两个源都作为Macro,并且参数可以调用时候设定。下面我结合实际的源码进行说明:
1 差分眼图信号源
.MACRO df_eye_src outp outn ref lo=0v hi=0.6v tr=125ps ui=400ps ro=50 ff=0.1
xp outp1 outp ref rcfiltn rflt=ro tdflt=’ff*tr’
xn outn1 outn ref rcfiltn rflt=ro tdflt=’ff*tr’

Vp outp1 ref PWL
+0ns ‘hi/2-lo/2’
+’tr/2′            hi ‘ui-tr/2’    hi  
+’ui+tr/2′    hi ‘2*ui-tr/2’  hi
+’2*ui+tr/2′  hi ‘3*ui-tr/2’  hi
+’3*ui+tr/2′  hi ‘4*ui-tr/2’  hi
+’4*ui+tr/2′  hi ‘5*ui-tr/2’  hi
+’5*ui+tr/2′  lo ‘6*ui-tr/2’  lo
+’6*ui+tr/2′  hi ‘7*ui-tr/2’  hi
+’7*ui+tr/2′  lo ‘8*ui-tr/2’  lo
+’8*ui+tr/2′  hi ‘9*ui-tr/2’  hi
+’9*ui+tr/2′  hi ’10*ui-tr/2′ hi
+’10*ui+tr/2′ lo ’11*ui-tr/2′ lo
+’11*ui+tr/2′ lo ’12*ui-tr/2′ lo
+’12*ui+tr/2′ lo ’13*ui-tr/2′ lo
+’13*ui+tr/2′ lo ’14*ui-tr/2′ lo
+’14*ui+tr/2′ lo ’15*ui-tr/2′ lo
+’15*ui+tr/2′ hi ’16*ui-tr/2′ hi
+’16*ui+tr/2′ lo ’17*ui-tr/2′ lo
+’17*ui+tr/2′ hi ’18*ui-tr/2′ hi
+’18*ui+tr/2′ lo ’19*ui-tr/2′ lo
+’19*ui+tr/2′ lo ’20*ui-tr/2′ lo
+’20*ui ‘hi/2-lo/2’
+R

Vn outn1 ref PWL
+0ns ‘hi/2-lo/2’
+’tr/2′            lo ‘ui-tr/2’    lo   
+’ui+tr/2′    lo ‘2*ui-tr/2’  lo   
+’2*ui+tr/2′  lo ‘3*ui-tr/2’  lo   
+’3*ui+tr/2′  lo ‘4*ui-tr/2’  lo   
+’4*ui+tr/2′  lo ‘5*ui-tr/2’  lo   
+’5*ui+tr/2′  hi ‘6*ui-tr/2’  hi   
+’6*ui+tr/2′  lo ‘7*ui-tr/2’  lo   
+’7*ui+tr/2′  hi ‘8*ui-tr/2’  hi   
+’8*ui+tr/2′  lo ‘9*ui-tr/2’  lo   
+’9*ui+tr/2′  lo ’10*ui-tr/2′ lo   
+’10*ui+tr/2′ hi ’11*ui-tr/2′ hi   
+’11*ui+tr/2′ hi ’12*ui-tr/2′ hi   
+’12*ui+tr/2′ hi ’13*ui-tr/2′ hi   
+’13*ui+tr/2′ hi ’14*ui-tr/2′ hi   
+’14*ui+tr/2′ hi ’15*ui-tr/2′ hi   
+’15*ui+tr/2′ lo ’16*ui-tr/2′ lo   
+’16*ui+tr/2′ hi ’17*ui-tr/2′ hi   
+’17*ui+tr/2′ lo ’18*ui-tr/2′ lo   
+’18*ui+tr/2′ hi ’19*ui-tr/2′ hi   
+’19*ui+tr/2′ hi ’20*ui-tr/2′ hi   
+’20*ui ‘hi/2-lo/2’
+R

*k28.5 testcode:1111_1010_1100_0001_0100
.eom
上面是一个差分的眼图测试源,测试码是1111_1010_1100_0001_0100.其中,lo代表低电平,hi代表高电平,tr代表上升眼的时间,ui代表信号周期,ro是输出电阻,ff代表滤波参数,在这个信号源中,为了模拟实际的信号情况(即10%电平到90%电平之间的时间是tr,我们采用四级滤波,滤除高频信号,使输出信号跟实际信号相同。要说明的最后一点是必须在最后的地方加上+R,标示测试码重复循环。
2tdr
来源:Shannonhe

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2011年4月27日
下一篇 2011年5月1日

相关推荐