关于 calibre寄生参数多提,比芯片测试结果差
时间:10-02
整理:3721RD
点击:
采用Calibre提取寄生参数,对ADC进行后仿,分别采用了两种方法:
1:采用Calibre提取寄生网表,使用hspice后仿;
2:采用calview.cellmap提取了寄生参数,使用spectureVerilog后仿。
两种方法都是采用相同 PDK/Calire中的commandfile,后仿得到的结果与测试结果
对比为: calview.cellmap< netlist<test result 。
( 当ADC的输入接近vdd时,测试结果比后仿结果好了20-30个LSB)
查找原因,目前最大的可能是因为后仿过程中,寄生参数提取的不对(多提的可能
性很大了),使得后仿结果不能如实芯片反应真实情况。因此,我现在采用做实验的
办法,验证参数是否多提,方法为:手算跟calibre提得的寄生电容,电阻对比。这种
方法的优点是比较直观,缺点是难以实施,因为手动计算是参照pdk中 ".pex" 文件中
的公式计算得来的,但是该文件中的公式非常复杂,涉及的变量很多,手算几乎不可能
实现,因此现在非常困惑,摸不清方向,如果你有碰到类似的问,还请不吝赐教,谢谢!
1:采用Calibre提取寄生网表,使用hspice后仿;
2:采用calview.cellmap提取了寄生参数,使用spectureVerilog后仿。
两种方法都是采用相同 PDK/Calire中的commandfile,后仿得到的结果与测试结果
对比为: calview.cellmap< netlist<test result 。
( 当ADC的输入接近vdd时,测试结果比后仿结果好了20-30个LSB)
查找原因,目前最大的可能是因为后仿过程中,寄生参数提取的不对(多提的可能
性很大了),使得后仿结果不能如实芯片反应真实情况。因此,我现在采用做实验的
办法,验证参数是否多提,方法为:手算跟calibre提得的寄生电容,电阻对比。这种
方法的优点是比较直观,缺点是难以实施,因为手动计算是参照pdk中 ".pex" 文件中
的公式计算得来的,但是该文件中的公式非常复杂,涉及的变量很多,手算几乎不可能
实现,因此现在非常困惑,摸不清方向,如果你有碰到类似的问,还请不吝赐教,谢谢!
Fab一般都会比较保守,可能给的寄生提取的公式偏大了,这样他们可以保证出了问题不是他们的责任
根据你说的,有多种可能。1. calibre在用不同流程提取时算法有错误,这个是有可能的,未必是calibre的错,也许是提取流程的问题,比如一些option,工艺文件的错误,甚至不同文件格式不同仿真器的解释问题。这种事情以前经常发生。所以对比你两个流程的仿真结果可以判断出问题所在。2. 仿真器的精度设置问题。仿真和实际结果不一致是经常的事情。我有同样的设计,在不同工艺下实现,仿真结果一个好的离奇,一个差的离奇,实际测量则在中间。由于是thd指标,这和model的光滑性关系密切,所以只能归结于两个foundy的model小组不同。3.提取的寄生是否可靠。这点上没有任何的证据,说foundy故意把工艺文件多留一些margin的话十年前就有人这么说,有人说margin是2-3倍,有人说是1.x倍,但都是仅仅这么说,没见谁拿出证据来。1.x倍可以相信,因为毕竟工艺有偏差。而且如果是这种情况,很难debug出来,除非自己能亲自测量实际寄生。
有可能