这个帖子用来记录一些没有在网上找到答案的warning或者error,或者一些想记录的使用细节,随缘更新。
warning
-
WARNING (CMI-2682): I29.I0.M0: The bulk-drain junction forward bias voltage (937.046 mV) exceeds `VjdmFwd’ = 926.301 mV. The results are now incorrect because the junction current model has been linearized
解决方法:
1). 输入的信号边沿跳变太快,在逻辑门仿真中很容易遇到这个,把rising time和falling time设大一点。
2). 真的是电源和地接反了,记得仔细检查。 -
WARNING (SPECTRE-16707): Only tran supports psfxl format, result of other analyses will be in psfbin format.
解决方法:
在ADE菜单中output>save all>output format中选择psf格式即可。 -
WARNING (ADE-6001): The number of terminals specified in CDF termOrder are more
than the actual number of terminals in the cellview cell-view “PLL_Probing” “Level_Shifter” “av_extracted”
解决方法:
在CIW窗口菜单中Tools>Edit,选择lib和cell name,在Simulation Information菜单下面对termOrder进行修改即可。
error
- 如下图所示,pss仿真时,报错ERROR(CMI-2208):‘V4’ is a periodic input signal, which is inconsistent with autonomous circuits.
这是由于pss选择了oscillator模式下,testbench有多个时钟频率导致的。
你可以:
1.1 如果是oscillator,需要将其他的时钟频率删除。
1.2 如果不是oscillator,可以将这个选项取消勾选即可。 - Spectre网表建立错误OSSHNL-153,具体报错如下:
ERROR (OSSHNL-153): Failed to initialize incremental netlisting
because the run directory contains \o netlist data from the previous
netlisting session which has a corrupt global \o map structure file
‘/xxx/maestro/results/maestro/Interactive/1/xxx/netlist/ihnl/globalmap’.
Remove the “ihnl” and “map” directories from the \o current run
directory and netlist again.
网表报错的问题真的是诡异又复杂,有的时候你也不知道哪里有问题,反正就是netlist建立错误,这时你可以尝试以下的一些方法:
2.1 删除simulation下之前仿真的记录。根据ERROR详情,有可能是previous netlist引起的
2.2 右键test下拉菜单到Netlist,选择recreate
然后再重新进行仿真即可。
如果还是不行,建议copy一份shcematic,移动某个器件之后重新保存,再建一个全新的maestro进行仿真。
- 提取pex时,Hcell报错 a many-many correspondence:
Hcell correspondence “nmos_rf_25*” “nmos_rf_25” leads to a many-many
correspondence. Corresponding cells could not be identified.
Correspondence “nmos_rf_25*” “nmos_rf_25” leads to a many-many
correspondence.
报错原因分析:
经查阅资料(参考手册:https://picture.iczhiku.com/resource/eetop/wHkyejiRhoyhDCcb.pdf)可知,Hcell表示source与layout之间的响应,一般以对的形式出现,即包含source和layout的名字。之所以报这个错是存在多个schematic或者layout导致的,此时Hcell无法在schematic和layout之间建立起正确的响应。在报这个error的情况下,lvs不会运行。
因此在做设计时,无论是系统模块,还是单个cell,都建议只包含一个schematic、一个layout。
可解决方法:
3.1. 仍然勾选使用hcell,但是在PEX Options > Include中加入如下指令:
LVS EXCLUDE HCELL “nmos_rf_"
LVS EXCLUDE HCELL "pmos_rf_”
即可跳过该error进入到lvs步骤。
3.2 直接在Inputs中将Hcell取消勾选,不建立模块schematic和layout之间的响应。
- schematic中包含verilog-A模块仿真时,报错如下:
Internal error found in spectre during AHDL read-in, during circuit
read-in…
此时修改spectre environment中的选项即可正常仿真。
如果还是不行,建议:
- 重启virtuoso
- 将tb shematic中某个器件的位置移动一下重新保存即可。这种情况通常发生在直接复制maestro的时候。
Tips
这里放些软件使用tips集合吧。
- 关于APS和Spectre模式,ug描述如下,APS能够加快仿真速度,同时不会降低精度。
pss可以用来计算稳定时间(settle time)和系统频域响应,拥有harmonic balance(hb)和shooting两种引擎。其中,hb在频域求解并且通过对频域响应做逆FFT变换来得到时域响应;shooting则是在时域求解并且通过对时域响应做FFT变换来得到频域响应。
pss需要beat frequency,这也限制了它只能在单输入/具有比例关系的多输入情况下使用。当有多个输入,但是公倍数频率太小时,推荐使用qpss。
- DC仿真之后可以通过Results Display Window中的region参数快速判断晶体管所处区域:
其中region=1,代表晶体管此时工作在线性区;
region=2,代表晶体管此时工作在饱和区;
region=3,代表晶体管此时工作在亚阈值区;
相关的仿真验证如下图所示:
- 如何将sp仿真的结果导出为.snp文件?
sp设置的option中有个OUTPUT PARAMETERS,在file栏输入路径和.snp文件的名字,如2端口网络为2port.s2p,datafmt选择touchstone即可。
- pss设置Tips: