在 Cadence Virtuoso 的 Layout 迁移(Migration)流程中,Device Mapping 文件是连接源工艺和目标工艺的关键。其中,#useStub 指令常用于在迁移后的实例引脚上自动生成一段“小短线”(wire stub),以方便后续的连线或标记。

不少用户在配置时会产生疑问:生成的短线方向(水平还是竖直)是由什么控制的?能否手动指定方向? 本文基于 Cadence Support 的官方文档,详细解析其背后的控制逻辑。

1. 核心逻辑:基于 Pin Side 的自动判断

根据《Virtuoso Custom Design Migrate User Guide》的说明,#useStub 产生的短线方向并未提供直接的“Horizontal”或“Vertical”参数。其方向是完全自动判断的,判断依据是 Pin 在目标 Symbol 上的位置 (Side) 以及 实例的旋转/镜像状态 (Orientation)

自动选择机制:

  • 水平短线 (Horizontal):如果 Pin 位于 Symbol 的 左侧 (Left)右侧 (Right)
  • 竖直短线 (Vertical):如果 Pin 位于 Symbol 的 顶部 (Top)底部 (Bottom)

[!IMPORTANT] 系统会沿着引脚所在的“侧边”法线方向向外延伸。例如,左侧的引脚会向左生成水平短线。

2. 关键参数与语法

在 Device Mapping 文件的 Other Parameters 列中,可以使用以下语法和辅助参数:

2.1 #useStub 语法

1
#useStub=<pin_name>[|<net_name>|<label_name>]
  • 示例:#useStub=VPP|VDD
  • 效果:在目标 Symbol 的 VPP 引脚处产生一个 stub,并连接到 VDD 网络。

2.2 #useStubWireLength (长度控制)

该选项用于全局或局部控制 stub 的长度。

  • 默认值:0.125 (User Units)。
  • 如果在 Mapping 文件中未指定,系统将采用迁移选项中的默认值。

2.3 autoMoveAndStub (重叠避免)

  • 默认值:True
  • 功能:当开启此项时,迁移工具会自动微调 Pin 和 stub 的位置,以确保在缩放或坐标变换后,短线不会与其他组件发生物理重叠或产生非预期的短路。

3. 常见问题 (FAQ)

Q: 我能强制让左侧的引脚产生竖直方向的 stub 吗?
A: 不可以。迁移引擎强制遵循 Symbol 的侧边定义。如果你需要改变 stub 方向,必须修改目标 Lib 中该单元 Symbol 的引脚布局(Pin Layout),将其侧边属性从 Left/Right 改为 Top/Bottom。

Q: 为什么迁移后 stub 的方向变了?
A: 请检查实例的 Orientation。如果实例被旋转了 90 度,原本在 Left 的 Pin 会变到 Top,对应的 stub 方向也会从水平变为竖直。这是正常的物理映射行为。

4. 总结与建议

  • 设计 Symbol 时需规范:确保 Symbol 引脚的 Side 属性准确反映了你预期的连接方向。
  • 检查缩放因子:如果 stub 看起来太短或太长,请调整 #useStubWireLength
  • 查阅日志:如果 stub 未能生成,请检查迁移日志,通常是因为目标 Pin 名称不匹配或存在严重的布线重叠。

5. 参考资料 (References)

  • Cadence Support Article 20358641: “How to use #useStub in Device Mapping file for Layout Migration” —— 详细介绍了语法和常见用例。
  • Virtuoso Custom Design Migrate User Guide: 章节 “Other Parameters Column of a Device Mapping File”
  • Cadence Support Article 11456721: “Controlling stub wire length during device migration”

本文由 [icinfra.cn] 团队整理,助力工程师攻克 EDA 自动化迁移中的细节难题。