- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
利用Cadence Allegro进行PCB级的信号完整性仿真
摘要:在高速PCB设计过程中仅仅依靠个人经验布线,往往存在巨大的局限性.利用Cadence的Allegro软件包对电路进行PCB级的仿真,可以最优化线路布局,极大地提高电路设计质量,从而缩短设计周期,本文结合作者的实际设计经验.介绍使用Cadence的一般步骤并列举在使用过程中所发现的一些问题.
随着信息宽带化和高速化的发展,以前的低速PCB已完全不能满足日益增长信息化发展的需要,而高速PCB的出现将对硬件人员提出更高的要求,仅仅依靠自己的经验去布线,会顾此失彼,造成研发周期过长,浪费财力物力, 生产出来的产品不稳定,一般认为高速PCB是指其数字信号边沿上升时间小于4倍信号传输时延,这种高速PCB的信号线必须按照传输线理论去设计,否则将会严重影响信号的完整性.Cadence公司针对PCB Design Studio发布一个功能非常实用的高速电路设计及信号完整性分析的工具选件-Allegro PCB.利用这个仿真软件能够根据叠层的排序,PCB的介电常数,介质的厚度,信号层所处的位置以及线宽等等来判断某一PCB线条是否属于微带线,带状线,宽带耦合带状线,并且根据不同的计算公式自动计算出信号线的阻抗以及信号的反射、串绕、电磁干扰等等,从而可以对布线进行约束以保证PCB的信号完整性.下面根据我们的具体实践,介绍其基本使用方法.
由于我们在实际设计过程中,通常使用ORCAD进行电路前期设计,得到的是电路的max文件为了利用Cadence进行电路仿真,首先需要将ORCAD的max文件转换为Allegro 的brd文件.完成这一转换的工具是Cadence公司提供的一组附件,该附件包含4个文件,分别是Layout.ctl,Layout.fnt,layout.ini和Toallegro.exe. 使用时需要设置好路径和环境变量然后运行Toallegro.exe文件,在提示下输入所要转换的max文件名就可以将max文件转换为bsd文件.但是需要特别注意的是 ,转换后的brd文件与原来的文件相比有一些隐蔽性的问题,列举如下:
首先,元件的焊盘名和封装名会出现问题,在ORCAD中合法的命名规则在ALLEGRO中则可能不合法.例如:在ORCAD中可这样定义一个封装名
"SBGA 1.27MK31W31P304",但是在转换至Allegro的bsd文件时会转变为"SBGA127ML31W31P304";而在ORCAD中定义的焊盘名 "9DT I0.038X0.032"在转换至ALLEGRO的brd文件时会转变为"9DTI0_038X0_032".即它将封装名的""删掉 而将焊盘名的"."改为"_"有的焊盘名如果与ALLEGRO 中的一些关键字重名,必须将其改名才能转换成功.
第二,它会给PCB自动加上默认叠层,然而ORCAD中没有叠层的选项.
第三,它不能将原来的各种线宽、间距带到allegro中.
第四,在将ORCAD的max文件转换至ALLEGRO的brd文件后,有时会发现转换后的brd文件在ALLEGRO中虽然能够正常打开,但是却不能正常存盘,它只能将PCB的brd文件存为*.SAV文件.解决的方法是在dos环境下执行dbfix命令纠正该错误.
第五,转换至ALLEGRO的brd文件的装焊层有些元件值没有带过来,因此不能在allegro的brd文件中输出装焊图.
第六,也是最重要的一点,在ALLEGRO中自动加上叠层后,将原来的通孔焊盘按照默认叠层结构自动改变, 如果要调整叠层结构,就必须对每一个通孔焊盘进行修改,否则会出现很严重的后果.因为在ALLEGRO中每一层都定义了各种焊盘,根据不同的层进行选择,相比之下,ORCAD只在平面层上才定义热焊盘.
在成功转到ALLEGRO之后还需要做些仿真前的准备. 首先是根据器件的Datasheet对器件的IBIS进行检查, 检查的内容包括:
- 察看IBIS库是否有语法上的错误,这个可以在将IBIS文件转换成dml文件报告时看出,或是在转换后的dml文件上,用ALLEGRO的工具中的dml check选项进行检查;
- 管脚的输入、输出类型是否正确;
- VI、VT曲线是否有明显的非单调性、不连续性或其他明显的错误;
- 对所有的管脚模型是否都有Max,Min,Typical值以及它们的关系是否正确,如果只有Typical值,那么仿真的时候只能用Typical;
- 所有的输出和双向管脚模型是否都有测试负载值,即 Cref,Rref,Vref和Vmeas,如果是纯容性测试负载,可以没有Rref;
- 在标准测试负载情况下,VT 的上升和下降的波形是否达到了Vmeas的值;
- IBIS库的管脚是否与器件的Datasheet管脚相一致.
做完这些检查之后,就要对相应的器件指定各自的IBIS库.而对离散器件,则要手工加上SPICE库,接着需要指定DC网线的电压值,这是为以后抽取模型时,不至于把 DC网线当成是信号网线.再下一步进行叠层编辑时, 还需要同制板厂商联系,让他们给出满足需要的pcb 各层的介电常数,介质厚度,铜皮厚度以及叠层的顺序 ,上述参数要填在叠层表中.
做完准备工作后,就可以抽取网线的拓扑结构进行信号完整性仿真了.仿真分为2种:一种是数据线仿真, 一种是时钟线仿真,这都是在同步电路下进行的.仿真时应该从器件的Datasheet中查找以下的参数:Tco.min,Tco.max,Tcycle,Tsetup.min,Thold.min;从所提供的时钟的Datasheet中查找以下参数Tskew.clk,Tjit;;另外还需要估计PCB的Tskew.pcb,给出余量Tmargin. 然后根据以下两个计算公式计算两个参数Tsettledelay.max和Tswitchdelay.min.这两个算式分别为:
Tsettledelay.max≤ Tclcle-Tco.max-Tsetup.min-Tskew.clk-Tskew.pcb-Tjit-Tadj;
Tswitchdelay.min≥Thold-Tco.min+Tskew.pcb+Tskew.clk
经过仔细分析,发现该公式确实已考虑得非常周全,把上升和下降沿的细微时间以及沿的细小抖动也,包含在内,这可能也是Cadence的PCB软件中最核心最精华的部分.通过公式算出Tsettledelay.max,Tswitchdelay.min后,需要和根据拓扑结构仿真出来的Tsettledelay.max,Tswitchdelay.min值进行比较以便用来调整参数这些参数包括:布线长度、线阻抗、线速、增加减电阻、电容、节点的位置以及线的连接方式等,时钟线还需考虑它的单调性,参数调节是不能随心所欲的,不仅要找一定的规律,还要考虑到PCB叠层的参数设置及一些现实所允许的值.这样才能找到适合实际PCB的,比较理想的拓扑结构.否则如果在自动布线完成后才发现拓扑结构有问题,就需要来回进行修改.还要注意一点,就是所有以上参数都必须在最坏情况下找出它们的最大范围. 所谓最坏情况是指,在仿真Tsettledelay.max数据时, 必须是在slow的环境下;而仿真Tswitchdelay.min数据时,必须在fast的环境下进行.在我们仿真的过程中,还发现有些器件的Tco.min和Tco.max是在不同的测试条件下测试的,在仿真时还要改变dml库的测试环境值,才能测出更准确的值.调整好拓扑结构后,千万别忘了填写拓扑结构的限制表,限制表里头才是最终起作用的限制条件,接下来只要将填好限制后的拓扑结构加在同类网线上,然后转到SPECTRA中进行自动布线,SPECTRA会尽量根据限制自动布线,但是,最后在ALLEGRO 中做检查时会发现有一些DRC报告是因为没有按照限制完成布线,它会提示限制是多长,而实际只布了多长,这时,一种解决方法是删除所有线,改变器件位置,重新自动布线;再一种就需要改变拓扑结构.如果两种方法都失败了就要考虑到换性能更好的器件.按照以上方法 一块高质量信号完整性的高速PCB就已基本完成.
通过使用Cadence软件进行信号完整性的仿真,我们体会到该软件具有很强的实用性,对于硬件设计人员来说,是一种不可多得的设计工具,对高速PCB来说尤为如此.当然,对于这样一个高智能仿真软件,使用起来也并不那么容易,如果对它的内部计算不甚了解, 很有可能会因为一两个参数或选项的错误而导致仿真结果失败,希望本文能够起到一定的帮助作用.
射频工程师养成培训教程套装,助您快速成为一名优秀射频工程师...
天线设计工程师培训课程套装,资深专家授课,让天线设计不再难...
上一篇:在Allegro
中如何输入原理
的网表(Netlist)文件?
下一篇:PCB设计软件ALLEGRO与POWER
PCB的优缺点分析