Virtuoso 使用笔记

这个帖子用来记录一些没有在网上找到答案的warning或者error,或者一些想记录的使用细节,随缘更新。

warning

  1. 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). 真的是电源和地接反了,记得仔细检查。

  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格式即可。

  3. 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进行修改即可。Virtuoso 使用笔记_第1张图片

error

  1. 如下图所示,pss仿真时,报错ERROR(CMI-2208):‘V4’ is a periodic input signal, which is inconsistent with autonomous circuits.
    Virtuoso 使用笔记_第2张图片
    这是由于pss选择了oscillator模式下,testbench有多个时钟频率导致的。
    你可以:
    1.1 如果是oscillator,需要将其他的时钟频率删除。
    1.2 如果不是oscillator,可以将这个选项取消勾选即可。
  2. 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
Virtuoso 使用笔记_第3张图片
然后再重新进行仿真即可。
如果还是不行,建议copy一份shcematic,移动某个器件之后重新保存,再建一个全新的maestro进行仿真。

  1. 提取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.

Virtuoso 使用笔记_第4张图片
报错原因分析:
经查阅资料(参考手册:https://picture.iczhiku.com/resource/eetop/wHkyejiRhoyhDCcb.pdf)可知,Hcell表示source与layout之间的响应,一般以对的形式出现,即包含source和layout的名字。之所以报这个错是存在多个schematic或者layout导致的,此时Hcell无法在schematic和layout之间建立起正确的响应。在报这个error的情况下,lvs不会运行。
因此在做设计时,无论是系统模块,还是单个cell,都建议只包含一个schematic、一个layout。
Virtuoso 使用笔记_第5张图片

可解决方法:
3.1. 仍然勾选使用hcell,但是在PEX Options > Include中加入如下指令:
LVS EXCLUDE HCELL “nmos_rf_"
LVS EXCLUDE HCELL "pmos_rf_

即可跳过该error进入到lvs步骤。
Virtuoso 使用笔记_第6张图片
3.2 直接在Inputs中将Hcell取消勾选,不建立模块schematic和layout之间的响应。

  1. schematic中包含verilog-A模块仿真时,报错如下:

Internal error found in spectre during AHDL read-in, during circuit
read-in…

Virtuoso 使用笔记_第7张图片
此时修改spectre environment中的选项即可正常仿真。
如果还是不行,建议:

  1. 重启virtuoso
  2. 将tb shematic中某个器件的位置移动一下重新保存即可。这种情况通常发生在直接复制maestro的时候。
    Virtuoso 使用笔记_第8张图片

Tips

这里放些软件使用tips集合吧。

  1. 关于APS和Spectre模式,ug描述如下,APS能够加快仿真速度,同时不会降低精度。
    在这里插入图片描述pss可以用来计算稳定时间(settle time)和系统频域响应,拥有harmonic balance(hb)和shooting两种引擎。其中,hb在频域求解并且通过对频域响应做逆FFT变换来得到时域响应;shooting则是在时域求解并且通过对时域响应做FFT变换来得到频域响应。
    pss需要beat frequency,这也限制了它只能在单输入/具有比例关系的多输入情况下使用。当有多个输入,但是公倍数频率太小时,推荐使用qpss。
    在这里插入图片描述
  2. DC仿真之后可以通过Results Display Window中的region参数快速判断晶体管所处区域:
    Virtuoso 使用笔记_第9张图片
    其中region=1,代表晶体管此时工作在线性区;
    region=2,代表晶体管此时工作在饱和区;
    region=3,代表晶体管此时工作在亚阈值区;
    相关的仿真验证如下图所示:
    Virtuoso 使用笔记_第10张图片
    Virtuoso 使用笔记_第11张图片
  3. 如何将sp仿真的结果导出为.snp文件?
    sp设置的option中有个OUTPUT PARAMETERS,在file栏输入路径和.snp文件的名字,如2端口网络为2port.s2p,datafmt选择touchstone即可。
    Virtuoso 使用笔记_第12张图片
  4. pss设置Tips:
    Virtuoso 使用笔记_第13张图片

你可能感兴趣的:(软件,Cadence,Virtuoso)