在 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 自动化迁移中的细节难题。