Calibre 3Dstack --每日一个命令day3【stack】(3-3)

Calibre 3Dstack --每日一个命令day1【die】(3-1)

Calibre 3Dstack --每日一个命令day2【component】(3-2)

Calibre 3Dstack --每日一个命令day3【stack】(3-3)

Calibre 3Dstack --每日一个命令day4【connect】(3-4)

Calibre 3Dstack --每日一个命令day5【config】(3-5)

Calibre 3Dstack --每日一个命令day6【process&export_layout】(3-6)

Calibre 3Dstack --每日一个命令day7【centers】(3-7)

Calibre 3Dstack --每日一个命令day8【connected】(3-8)

Calibre 3Dstack --每日一个命令day9【copy】(3-9)

Calibre 3Dstack --每日一个命令day10【custom_check】(3-10)

Calibre 3Dstack --每日一个命令day11【dangling_ports】(3-11)

Calibre 3Dstack --每日一个命令day12【density】(3-12)

Calibre 3Dstack --每日一个命令day13【enclosure】(3-13)

Calibre 3Dstack --每日一个命令day14【external】(3-14)

Calibre 3Dstack --每日一个命令day15【extra_ports】(3-15)

Calibre 3Dstack --每日一个命令day16【floating_pads】(3-16)

Calibre 3Dstack --每日一个命令day17【floating_texts】(3-17)

Calibre 3Dstack --每日一个命令day18【floating_trace】(3-18)

Calibre 3Dstack --每日一个命令day19【internal】(3-19)

Calibre 3Dstack --每日一个命令day20【locations】(3-20)

Calibre 3Dstack --每日一个命令day21【missing_ports】(3-21)

Calibre 3Dstack --每日一个命令day22【multi_texts】(3-22)

Calibre 3Dstack --每日一个命令day23【multi_trace】(3-23)

Calibre 3Dstack --每日一个命令day24【no_texts】(3-24)

Calibre 3Dstack --每日一个命令day25【no_trace】(3-25)

Calibre 3Dstack --每日一个命令day26【offgrid_centers】(3-25)

Calibre 3Dstack --每日一个命令day27【overlap】(3-27)

Calibre 3Dstack --每日一个命令day28【select_checks】(3-28)

Calibre 3Dstack --每日一个命令day29【unselect_checks】(3-29)

Calibre 3Dstack --每日一个命令day30【3dstack_block】(3-30)

stack

本文介绍了3D堆叠组装语法文件中的核心命令定义,重点说明如何指定各类对象的位置信息。主要内容包括:

  1. 必选参数-stack_name定义堆叠名称;

  2. 对象放置参数集(-die/-component等)及其子参数:-name(必选)、-anchor/-placement(互斥位置定义)、-mag/-rotate/-flip等变换参数;

  3. 层级(tier)定义和堆叠引用(stack_ref)方法;

  4. 特殊功能参数如-rename_text文本重命名、-ignore_pin引脚忽略规则;

  5. 示例展示了包含多个层级的堆叠定义,演示了位置、旋转、翻转等参数的组合使用。

该语法支持构建复杂的3D/2.5D封装结构,通过坐标变换和层级分组实现精确的器件排布。

3DSTACK+ 扩展语法文件中的必选命令 定义组装中各类对象的位置信息

用法

tcl

复制代码
stack -stack_name stack_name {die_stack | tier_spec | stack_ref }...

die_stack 用法

tcl

复制代码
-die | -component | -package | -laminate | -substrate '{'
    -name name
    [-anchor anchor_name from_anchor_name to_anchor_name | -placement x y]
    [-mag factor] [-rotate angle] [-flip {x | y}] [-invert]
    [-rename_text {"expression"... | {-file file} }]
    [-ignore_pin {"expression"... | {-file file} } ]
    [-source source_name]
'}' [-z_origin value]

tier_spec 用法

tcl

复制代码
-tier '{'
    {die_stack | stack_ref }...
'}'

stack_ref 用法

tcl

复制代码
-stack stack_name

参数

  • -stack_name stack_name 必选参数集,指定用于规则检查命令的堆叠名称 。若多次指定此命令,每个 stack_name 的取值必须唯一

  • -die | -component | -package | -laminate | -substrate '{' arguments '}' 参数集,指定裸片、组件、封装、层压板或衬底的放置信息。其内部参数说明如下:

    • **-name name**必选参数集,指定一个放置实例。该对象必须已在文件中定义。

    • -anchor anchor_name from_anchor_name to_anchor_name 可选参数集,指定锚定信息

      • anchor_name:指定已在堆叠中放置的对象名称。

      • from_anchor_name:指定为 anchor_name 对象定义的锚点名称。

      • to_anchor_name:指定为当前对象定义的锚点名称。-anchor-placement 互斥 。若两者均未指定,该对象将被放置在上一个指定裸片的位置。

    • -placement x y 可选参数集,指定对象的放置位置。该位置由 x、y 坐标(x y)定义,单位为微米-anchor-placement 互斥 。若两者均未指定,该对象将被放置在上一个指定对象 的位置;若此前无已放置对象,默认位置为 (0 0)

    • -mag factor 可选参数集,指定放置实例的放大 / 缩小因子。对象内的坐标数据将乘以该因子。

    • -rotate angle 可选参数集,指定当前放置实例的旋转角度 。角度必须为 0 到 360 之间的整数

    • -flip {x | y} 可选参数集,指定当前放置实例的翻转轴。若从上方查看版图:

      • 沿 y 轴翻转:左侧图形移至右侧,右侧图形移至左侧。

      • 沿 x 轴翻转:顶部图形移至底部,底部图形移至顶部。该选项不影响 裸片的 -top-bottom 层定义,但会影响裸片的放置坐标。

    • -invert 可选参数,指示在当前放置实例中,顶层连接的层变为底层连接,底层连接的层变为顶层连接 。此时,若从侧面(横截面视图)查看版图,顶层的层将移至底层,底层的层将移至顶层。裸片的放置坐标不改变 ,但 -top-bottom 层定义会被影响。

    • -rename_text {"expression"... | {-file file} } 可选参数集,指定文本重命名规则。表达式为 GNU 正则表达式 。除了直接内联表达式,也可指定包含表达式列表的文件路径。文件中每行一个表达式,示例:

      复制代码
      /A/B/
      /A.*B/R/
      /^VDD.*/VCC/
      /A/B/g
    • -ignore_pin {"expression"... | {-file file} } 可选参数集,指定一个表达式,用于匹配在版图提取中需要忽略的一个或多个引脚名称 。源网表中与被忽略版图引脚匹配的对应端口也会被忽略。该表达式为不区分大小写 的 GNU 正则表达式。除了直接内联表达式,也可指定包含引脚忽略表达式列表的文件路径。文件中每行一个引脚或表达式,示例:

      复制代码
      VSS
      VDD
      ^A1$
      A2

      表达式选项与 -file 选项互斥

      若要在报告中列出所有成功忽略的引脚,请在 config -report 参数集中添加 -report_ignored_pins YES。详情参见第 103 页的 -report

    • -source source_name 可选参数集,指定单元对应的源放置实例 ,功能类似于标准 Calibre 3DSTACK 中的 map_placement 命令。若源网表为层级化结构,则支持层级化名称,使用正斜杠 (/) 作为层级分隔符。示例:

      1. 源网表的顶层单元名为 3DSTACK_TOP,包含一个子电路 INTERPOSER_CHIP 的放置实例,名称为 INTERPOSER

      2. INTERPOSER_CHIP 包含两个放置实例,名称为 DIE1DIE2

      3. 若要映射到 DIE1,需指定层级化 source_nameINTERPOSER/DIE1

  • -tier '{' {die_stack | stack_ref}... '}' 参数集,指定一个层级(tier) ,由放置在同一 z 坐标 的裸片和堆叠组成。层级提供了一种并排放置元素的方法。工具会对同一层级内的裸片放置实例执行额外的连接检查。

  • -stack stack_name 参数集,指定在 Calibre 3DSTACK+ 规则文件中定义的堆叠名称 。同一个堆叠不能被引用多次

  • -z_origin value 可选参数集,指定裸片距离堆叠底部的高度 ,取值为距离(单位:微米)。此选项用于生成横截面组装视图

说明

stack 语句定义了构建 3D 封装的组装操作 ,包括裸片放置实例的位置以及连接这些实例的接口层。堆叠代表任意一组垂直对齐的对象 。一个完整的 3D 堆叠可包含多个对象放置实例;在 2.5D 中介层方案中,每个堆叠由单个裸片放置实例和中介层组成;也可以存在包含多个堆叠的中介层,每个堆叠由多个裸片(或等效对象)放置实例组成。

对于 Calibre 3DSTACK,所有堆叠定义会被合并为一个单独的组装

命令中必须至少指定一个裸片、堆叠或层级 ,且这些元素可被多次指定。堆叠参数的顺序决定了堆叠的结构 ,顺序为从下到上 ,但并不一定表示裸片放置实例之间存在交互。堆叠中每个后续元素都会被放置在 z 坐标大于前一个元素的层中。

-tier 选项用于并排分组元素------ 同一层级内的所有元素位于相同的 z 位置。该选项在连接检查时具有特殊含义.

裸片层之间的连接关系由层定义和裸片位置 隐式决定。若需显式定义连接关系,请使用 connect 命令。

放置实例命名规则

生成的放置实例名称采用以下格式(尖括号 < > 不属于格式的一部分):

复制代码
<stack-name>_tier<tier-index>_<die-name><placement-id>

其中:

  • stack-name:堆叠的名称。
  • tier-index:层级在堆叠中位置的生成编号,从 1 开始,从堆叠底部到顶部,每个层级的编号递增 1。
  • die-name:裸片的名称。
  • placement-id:每个唯一层级 - 裸片对的标识编号。

示例

tcl

复制代码
stack
-stack_name w_tier
-tier {
    -die {-name RAM --mag 1.1 --flip x -placement 0 0}
    -die {-name RAM --mag 1.1 --rotate 90 --flip y -placement 0 750}
    -die {-name RAM --mag 1.1 --rotate 180 -placement 750 0}
    -die {-name RAM --mag 1.1 --rotate 270 -placement 750 750}
}
-die {-name INT --invert --rotate 90}
-tier {
    -die {-name MEM --anchor INT anchor_MEM1 anchor_INT -source pRam1}
    -die {-name MEM --anchor INT anchor_MEM2 anchor_INT -source pRam2}
    -die {-name MEM --anchor INT anchor_MEM3 anchor_INT -source pRam3}
}
-die {-name MEM --placement 100 100}

上述示例定义了一个名为 w_tier 的堆叠,包含以下裸片放置实例(为简化说明,每个裸片放置实例的高度均为 100):

  1. 前四个裸片构成一个层级

    • RAM 裸片放置在 (0, 0, 0),放大因子 1.1,沿 x 轴翻转。

    • RAM 裸片放置在 (0, 750, 0),放大因子 1.1,旋转 90 度,沿 y 轴翻转。

    • RAM 裸片放置在 (750, 0, 0),放大因子 1.1,旋转 180 度。

    • RAM 裸片放置在 (750, 750, 0),放大因子 1.1,旋转 270 度。

  2. INT 裸片 放置在 (0, 0, 100),旋转 90 度,且顶层与底层的层被反转。

  3. 接下来三个裸片构成另一个层级 ,并使用了 -source 选项:

    • MEM 裸片放置位置 (0, 0, 200),通过锚定定义计算得出。

    • MEM 裸片放置位置 (0, 500, 200),通过锚定定义计算得出。

    • MEM 裸片放置位置 (0, 1500, 200),通过锚定定义计算得出。

  4. MEM 裸片 放置在 (100, 100, 300)

忽略引脚

也可按如下方式指定忽略特定引脚:

tcl

复制代码
stack -die { -name die -ignore_pin "VSS" }
相关推荐
耶夫斯计3 分钟前
【SQL_agent】基于LLM实现sql助理
数据库·python·sql·语言模型
脩衜者4 分钟前
极其灵活且敏捷的WPF组态控件ConPipe 2026
前端·物联网·ui·wpf
Mike_jia9 分钟前
Dockge:轻量开源的 Docker 编排革命,让容器管理回归优雅
前端
徐同保15 分钟前
使用node清空pinecones向量数据库
数据库
GISer_Jing15 分钟前
前端GEO优化:AI时代的SEO新战场
前端·人工智能
陈逸轩*^_^*15 分钟前
软件工程考试速通
数据库·软件工程
没想好d18 分钟前
通用管理后台组件库-4-消息组件开发
前端
文艺理科生19 分钟前
Google A2UI 解读:当 AI 不再只是陪聊,而是开始画界面
前端·vue.js·人工智能
Lhan.zzZ19 分钟前
Qt绘制残留问题排查与修复日志
开发语言·数据库·qt
晴栀ay22 分钟前
React性能优化三剑客:useMemo、memo与useCallback
前端·javascript·react.js