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进行修改即可。在这里插入图片描述

error

  1. 如下图所示,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,可以将这个选项取消勾选即可。
  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
在这里插入图片描述
然后再重新进行仿真即可。
如果还是不行,建议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.

在这里插入图片描述
报错原因分析:
经查阅资料(参考手册: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之间的响应。

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

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

在这里插入图片描述
此时修改spectre environment中的选项即可正常仿真。
如果还是不行,建议:

  1. 重启virtuoso
  2. 将tb shematic中某个器件的位置移动一下重新保存即可。这种情况通常发生在直接复制maestro的时候。
    在这里插入图片描述

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参数快速判断晶体管所处区域:
    在这里插入图片描述
    其中region=1,代表晶体管此时工作在线性区;
    region=2,代表晶体管此时工作在饱和区;
    region=3,代表晶体管此时工作在亚阈值区;
    相关的仿真验证如下图所示:
    在这里插入图片描述
    在这里插入图片描述
  3. 如何将sp仿真的结果导出为.snp文件?
    sp设置的option中有个OUTPUT PARAMETERS,在file栏输入路径和.snp文件的名字,如2端口网络为2port.s2p,datafmt选择touchstone即可。
    在这里插入图片描述
  4. pss设置Tips:
    在这里插入图片描述
<think>好的,我现在需要处理用户关于Cadence Virtuoso ADE的问题。用户希望了解使用指南或解决方案,并且引用了两篇相关的站内文章。首先,我需要确保回答结构清晰,符合用户的要求,并且正确应用系统级指令。 首先,我应该回顾用户提供的引用内容。引用[1]提到ADE L仿真设置在Red Hat系统下,基于Cadence IC617,用于反相器仿真。引用[2]讨论了AnalogLib库中的switch组件,解释了控制电压如何影响开关状态。用户的问题是关于Virtuoso ADE的使用指南或解决方案,所以需要整合这些信息。 接下来,我需要按照用户的要求,分步骤介绍Virtuoso ADE的基础操作,可能包括仿真设置、关键功能模块、仿真流程以及常见问题解决方案。同时,需要确保行内数学公式使用$...$格式,独立公式用$$...$$,并且正确应用LaTeX语法。 考虑到用户可能对仿真设置的具体步骤感兴趣,比如如何配置ADE L进行基本仿真,如何添加变量和参数,如何设置分析类型等,这些都是需要详细说明的部分。此外,关于开关组件的使用,如引用[2]中的例子,可能需要解释如何在ADE中测试开关行为,如何设置控制信号等。 同时,用户可能需要了解常见问题,比如仿真不收敛、波形异常等,这时候需要根据引用内容中的例子,比如开关断开导致节点浮空的情况,提醒用户注意信号完整性和节点连接状态。 最后,生成相关问题时要确保问题与用户的需求相关,比如仿真优化方法、高级分析工具的使用等,这样可以引导用户进一步探索Virtuoso ADE的功能。 在回答过程中,需要保持语言简洁,步骤明确,引用正确的参考文献,确保用户能够顺利跟随指南操作,同时避免技术错误。需要检查LaTeX格式是否正确,比如变量名、数学表达式是否用$符号包裹,独立公式是否单独成段,并且语法正确。 总结下来,回答的结构应该是:简介、基础操作指南、关键功能模块、仿真流程步骤、常见问题解决,然后相关问题。每个部分结合引用内容,自然地添加引用标识,确保用户能够找到对应的参考资料。</think>### Virtuoso ADE 使用指南与解决方案 #### 一、基础操作指南 1. **仿真设置初始化** - 打开原理图后选择`Tools → ADE L/XL`进入仿真环境[^1] - 通过`Setup → Simulator/Directory/Host`配置仿真器(如Spectre) - 设置工艺库路径:`Setup → Model Libraries`添加工艺模型文件(如`tsmc18.lib`) 2. **变量与参数定义** - 在`Variables → Copy From Cellview`导入原理图中的变量(如电源电压$V_{DD}=1.8V$) - 添加温度变量:`Analyses → Choose → Temperature`设置仿真温度范围 #### 二、关键功能模块 1. **AnalogLib基础组件** - 使用`switch`组件时需注意控制信号阈值,例如当$V_{ctrl} > 0.6V$时开关导通,$V_{ctrl} < 0.5V$时断开[^2] - 电阻/电容参数化设置:例如$R=1kΩ+{\text{process\_variation}}$ 2. **分析类型配置** ```plaintext DC分析:扫描电源电压VDD从0V到2V Transient分析:设置仿真时间t=100ns AC分析:频率范围1Hz到1GHz ``` #### 三、仿真流程步骤 1. **信号观测设置** - 通过`Outputs → To Be Plotted → Select On Schematic`选择观测节点 - 对浮空节点(如开关断开时的A点)需添加假负载避免仿真报错[^2] 2. **收敛性问题解决** - 修改`Simulation → Convergence`中的迭代参数: $$ \text{reltol}=1e-4, \quad \text{vabstol}=1e-6 $$ - 添加初始条件:`ic nodeName=0V` #### 四、典型问题解决方案 | 问题现象 | 解决方案 | |---------|----------| | 开关控制信号不生效 | 检查阈值设置是否符合工艺要求(如$V_{th}=0.6V$)[^2] | | 瞬态仿真不收敛 | 减小仿真步长`maxstep`至1ps | | 蒙特卡洛分析失败 | 确认工艺模型是否包含`mc`参数 |
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值