Virtuoso IC25 金属层纹理变纯色:关闭 LPP Transparency 恢复 display.drf stipple

{{badge:已解决}}

现象

升级或切换到 Virtuoso IC25.x 后,Layout 中部分金属层不再显示原有的斜线、数字或其他 stipple 纹理,而是显示为单一纯色块。

这一现象只影响屏幕显示,不会修改版图数据库,也不会影响 DRC、LVS、网表或导出的版图数据。

根因

工艺的 display.drf 仍然正确加载,相关 display packet 仍指向原本的 stipple,例如 backSlashfDash 或自定义数字纹理。

问题来自 IC25.x 的 LPP Transparency 显示功能。其默认 auto 模式会对指定的 metal/drawing LPP 做显示覆盖,使原本由 display.drf 定义的 outlineStipple 视觉上变成纯色填充。

因此,检查 packet 定义时可能仍能看到正确的纹理名称,但 layout 窗口中看不到纹理。

临时修复:当前会话立即生效

在 Virtuoso 的 CIW 中执行:

envSetVal("graphic" "lppTransparencyMode" 'cyclic "off")

执行成功后会返回 t。通常不需要额外重绘;切回 layout 窗口即可看到原有纹理恢复。

注意:不要把 hiRedraw() 单独在 CIW 中执行。部分版本要求它必须接收具体的 layout window,CIW 中没有当前版图窗口时会报参数类型错误;这不影响前一条设置生效。

永久修复:写入工程启动目录的 .cdsenv

先确认启动器是否设置了:

export CDS_LOAD_ENV=CWD

如果设置了该变量,Virtuoso 只读取启动工程当前目录中的 .cdsenv,不会自动读取用户主目录的 ~/.cdsenv。因此,应在实际启动 Virtuoso 的工程目录中创建或修改 .cdsenv,添加:

graphic lppTransparencyMode cyclic "off"

完整退出 Virtuoso 后,从同一工程目录重新启动,设置才会加载。

若环境没有设置 CDS_LOAD_ENV=CWD,才可以将同一行写入用户主目录的 ~/.cdsenv 作为默认显示配置。

注意:多个独立工程分别启动时,需要分别维护各自目录下的 .cdsenv。仅修改一份 ~/.cdsenvCDS_LOAD_ENV=CWD 环境中不会生效。

验证方法

  1. 重启 Virtuoso 并打开任意 layout。
  2. 检查原先变成纯色的金属层。
  3. 若能重新看到斜线、数字、网格等 stipple,说明修复成功。

常见误区

export CDS_USE_OPENGL=0 不能真正关闭 OpenGL

在部分 IC25.x 启动脚本中,CDS_USE_OPENGL 是“变量是否存在”的开关:即使赋值为 0,只要变量存在,启动器仍会启用 OpenGL 路径。

若需要排除 OpenGL,应使用:

unset CDS_USE_OPENGL
unset CDS_AUTO_OPENGL
unset CDS_AUTO_NATIVE_OPENGL

但当关闭后纹理仍为纯色时,应转而检查 LPP Transparency;本例的最终修复就是关闭该显示覆盖功能。

小结

display.drf 负责颜色、线型和 stipple;LPP Transparency 是 IC25.x 额外叠加的显示层。关闭透明度覆盖后,旧版 PDK 的纹理定义可以继续按原样显示。

最后修改:2026 年 07 月 13 日
如果觉得我的文章对你有用,请随意赞赏