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)
connected
本文摘要介绍了Calibre3Dstack工具中"connected"命令的详细使用方法。该命令主要用于检查3D芯片堆叠设计中的连接关系,包含两种工作模式:有源网表时验证物理连接有效性,无源网表时检查文本字符串匹配。命令支持多种参数配置,包括层类型指定、裸片间连接检查、详细报告选项等,并能检测短路、开路、文本不匹配等多种问题。文中提供了6个典型应用示例,涵盖内部连接检查、裸片间连接验证等场景,展示了如何通过参数组合实现不同的验证需求。该命令是3D芯片设计验证中的重要工具,可确保多层堆叠结构的正确互连。
存在源网表 时,检查连通图形之间的连接关系 ;无源网表 时,检查连通图形上的文本字符串是否匹配。
用法
tcl
connected -check_name check_name
{[-layer_type1 placed_layer_type1 [-layer_type2 placed_layer_type2]]
| [-die1 die_name {[-standalone] | [-die2 die_name]}]}
[-stack '{' stack_name_list '}']
[-detailed] [-black_box] [-white_box]
[-net_mismatch {ALL | {[MULTI_NAME] [MISMATCH] [MISSING_NAME]}}]
[-nothrutier] [-no_dangling_ports] [-no_extra_ports] [-no_missing_ports]
[-pin_list list_of_pins]
[-text_checks '{'ALL | NONE | [type ...]'}']
[-comment "comment"] [rve_option ...]
参数
-
-check_name check_name必选参数,指定检查名称,该名称用于写入输出结果。若多次指定此命令,每个check_name必须唯一。 -
-layer_type1 placed_layer_type1 [-layer_type2 placed_layer_type2]参数集,指定执行检查的层类型。若未通过-layer_type2选项指定第二种层类型,Calibre 3DSTACK 会对裸片内的placed_layer_type1层执行内部连接检查 ,详情参见第 140 页的 "内部连接检查"。若未指定层类型或裸片,工具会对整个组装执行连接检查。 -
-die1 die_name {[-standalone] | [-die2 die_name]}参数集,检查一个或多个裸片的连接关系。此参数不能与-layer_type1或-layer_type2参数同时指定。这种 "裸片到裸片" 连接检查的优势在于,引脚文本层可附着到裸片中的任意一个(或多个)层,Calibre 3DSTACK 会自动为该裸片构建引脚。若执行 "层类型到层类型" 的连接检查,引脚文本层必须附着到代表引脚的层类型。该参数集包含以下两种模式:-
-die1 die_name -standalone:检查指定裸片的内部连接。此选项会独立检查裸片的内部连接,忽略来自组装操作的任何外部连接。若使用此选项且组装仅包含一个裸片,则无需包含任何堆叠定义,因为工具会在内部生成堆叠。 -
-die1 die_name -die2 die_name2:检查两个指定裸片之间的连接关系。
-
-
-stack '{' stack_name_list '}'可选参数集,指定应用该规则检查的堆叠。若未指定此参数集,检查将应用于所有 堆叠。指定的堆叠名称必须已定义;若指定-stack参数,检查仅应用于指定的堆叠。 -
-detailed可选参数,启用连接错误的详细报告。指定此参数后,每个结果会额外报告两个属性:-
LNC(版图网组件):连接到版图网的端口名称。 -
SNC(源网组件):连接到源网的端口名称。若芯片堆叠规则文件中不存在source_netlist,此选项无效。
-
-
-net_mismatch {ALL | {[MULTI_NAME] [MISMATCH] [MISSING_NAME]}}可选参数,指定检查指定层上的网文本问题 。根据规则文件语法,必须在该层上指定attach_text -net_text或die -layer_info -net_text。若未为该层指定这些选项,工具会发出警告并跳过网文本检查。MISMATCH和MISSING_NAME错误为默认报告项。详情参见第 142 页的 "网文本不匹配检查"。各选项功能如下:-
ALL:报告所有网不匹配问题。 -
MULTI_NAME:报告版图中属于源网表单个网名称的多个网名称。 -
MISMATCH:报告版图中与源网表网名称不一致的网名称,工具默认执行此检查。 -
MISSING_NAME:报告源网表中存在但版图中缺失的网名称,工具默认执行此检查。示例:
tcl
connected ... -net_mismatch {MULTI_NAME MISMATCH} -
-
-no_dangling_ports可选参数,指定在验证结果中排除DanglingPort(悬空端口)错误。当端口放置实例与连接层无物理连接时,会报告此错误。若要在不执行完整连接检查的情况下检查此类错误,请使用dangling_ports命令。 -
-no_extra_ports可选参数,指定在验证结果中排除ExtraPort(多余端口)错误。若要使此选项应用于整个层,必须在所有指定该层的connected检查中进行设置。若要在不执行完整连接检查的情况下检查此类错误,请使用extra_ports命令。注 若应用此选项,多余端口错误会在每个
connected命令的上下文内列于报告中。 -
-pin_list list_of_pins可选参数集,指定要报告短路或开路 的引脚列表。此参数集仅可在 通过-layer_type1参数集检查单个层类型 时使用。若未指定此选项,会报告所有引脚的短路和开路情况,详见本节后的示例 3。 -
-no_missing_ports可选参数,指定在验证结果中排除MissingPort(缺失端口)错误。若要使此选项应用于整个层,必须在所有指定该层的connected检查中进行设置。若要在不执行完整连接检查的情况下检查此类错误,请使用missing_ports命令。 -
-text_checks '{'ALL | NONE | [type ...]'}'可选参数,指定要执行的文本检查类型 ,检查结果会针对每个指定的connected命令进行报告。可指定以下选项之一来启用或禁用所有文本检查:-
ALL:执行所有文本检查,为默认值。 -
NONE:不执行任何文本检查。也可指定以下一种或多种文本类型选项: -
NO_TEXTS:检查缺失的文本。 -
FLOATING_TEXTS:检查浮空文本。 -
MULTI_TEXTS:检查单个对象上的多个文本标签。注 若要在不执行完整连接检查的情况下检查这些类型的错误,请使用
floating_texts、multi_texts和no_texts命令。
-
-
-comment "comment"可选参数,指定规则检查的注释。可使用\n转义序列指定多行注释。 -
rve_option ...可选参数集,控制 Calibre RVE 如何显示规则检查结果,允许指定多个选项。rve_option的允许值详见第 201 页的 "Calibre 3DSTACK 检查文本覆盖注释"。 -
-black_box可选参数,指定黑盒 连接检查。例如,即使组装文件中定义了中介层的内部布线层,仍会执行黑盒检查。若通过stack命令定义了层(tier),连接检查会应用于中介层与交互层中的裸片之间,但不包括同一层内的裸片之间。 -
-white_box可选参数,指定白盒 连接检查。例如,会检查通过中介层的布线层。若通过stack命令定义了层,连接检查会应用于与中介层交互的同一层内的裸片之间。若组装文件中未定义中介层的内部布线层且仅指定了-white_box,会发生编译错误。注 可同时指定
-black_box和-white_box;若两者均未指定,则同时使用两种模式。 -
-nothrutier可选参数,指定在connected检查中不执行 跨层(through-tier)连接检查。此选项会忽略在connected检查中贯穿裸片的内部层。
说明
在 3DSTACK+ 规则文件中,connected 检查的应用方式如下:
-
检查由堆叠定义的交互放置层之间的连接。
-
检查同一层内直接与中介层裸片放置实例交互的放置层之间的连接。
-
通过指定两个裸片名称,检查裸片之间的连接。
-
可同时指定
-black_box和-white_box;若两者均未指定,则同时使用两种模式。
根据规则文件中是否存在源网表,此命令分为两种模式:
-
模式 1 :当芯片堆叠规则文件中存在
config -source_netlist时,验证指定放置层上的连通图形是否形成有效连接 ,并将结果输出到名为check_name的检查中(更多信息参见第 24 页的 "创建 Calibre 3DSTACK 规则文件")。 -
模式 2 :当芯片堆叠规则文件中不存在
config -source_netlist时,验证指定层上的连通图形是否包含完全相同的文本字符串 ,并将结果输出到名为check_name的检查中(更多信息参见第 24 页的 "创建 Calibre 3DSTACK 规则文件")。
本节后续将详细介绍每种模式。
注 若未指定第二个层或层类型(取决于语法),Calibre 3DSTACK 会仅使用第一个指定的层类型,在裸片内部 执行连接检查,详情参见第 140 页的 "内部连接检查"。通常,此命令在芯片堆叠规则文件中会多次出现。
警告 若参与connected检查的放置实例不属于连接堆叠 ,Calibre 3DSTACK 会发出错误消息。连接堆叠可通过在规则文件中显式执行die -wb_connect命令,或通过 Calibre 3DSTACK 生成的隐式交互来定义。为避免此错误,应正确定义连接关系。
模式 1
若芯片堆叠规则文件中存在 config -source_netlist 命令,此命令会验证指定放置层上的连通图形是否形成有效连接 ,并将结果输出到名为 check_name 的检查中。
连接数据会基于放置层连接(通过 die -wb_connect 语句显式定义,或在无连接语句时隐式定义)和文本层,从芯片堆叠中提取。也可使用 connect 命令定义裸片层之间的隐式连接。此连接数据会与源网表中定义的连接数据进行比较,所有不匹配项均被视为无效连接,并作为错误报告。不包含文本的连通图形会在单独的文本检查中输出。
默认情况下,每个结果会报告三个属性:
-
Net:引脚所连接的 3D 组装节点编号。 -
Port:3D 组装端口名称,格式为placement_name:net_name。 -
SourceNet:引脚所连接的网表节点编号。若无法确定网表节点编号,值为UNKNOWN。
可通过 -detailed 选项启用额外属性 LNC 和 SNC。
模式 2
若芯片堆叠规则文件中不存在 config -source_netlist 命令,此规则检查会验证指定层上的连通图形是否包含完全相同的文本字符串 ,并将结果输出到名为 check_name 的检查中。不包含文本的连通图形会在单独的文本检查中输出。若规则文件中无连接语句,会为指定层隐式执行连接检查。
内部连接检查
若未通过 -layer_type2 选项指定第二个放置层或层类型,Calibre 3DSTACK 会仅使用第一个层类型,在裸片内部 执行连接检查。此类检查无需源网表。在此模式下,会执行以下检查:
-
短路(Shorts) :检查连接到同一网的所有引脚是否具有相同名称。若名称不同,Calibre 3DSTACK 会为相关几何图形报告短路错误。
-
开路(Opens) :检查共享相同名称的一个或多个引脚是否物理连接。若未连接,Calibre 3DSTACK 会为相关几何图形报告开路错误。
短路和开路错误会在 Calibre 3DSTACK 报告文件的以下部分中列出:
RuleCheck: CONNECT_1
-------------------------------------------------------------------------
----------------------
OPENS
----------------------
1
Port: pRAM_stack1:vdd
Net: 68
LNC: pRAM_stack1:vdd
...
----------------------
SHORTS
----------------------
200
Port: pRAM_stack1:vdd
Net: 68
SNC: pRAM_stack1:vdd
...
文本检查
所有与文本相关的验证检查都会按文本结果的类型及其所属的芯片(若放置实例属于连接检查的一部分)进行报告。文本结果分为以下类别:
-
浮空文本(Floating text) :未与焊盘重叠的文本标签。可在
connected语句外使用floating_texts命令进行检查。 -
无文本(No text) :缺失文本标签的焊盘。可在
connected语句外使用no_texts命令进行检查。 -
多文本(Multi text):带有多个文本标签(重叠标签)的焊盘。在某些情况下,焊盘可能重叠并产生重叠文本标签,此时会发出以下警告消息:
plaintext
WARNING: there are multiple text-labels overlapping with the pads on layer layer. "connected" check may produce incorrect results!若重叠文本标签完全相同 ,则不会发出多文本警告。可在
connected语句外使用multi_texts命令进行检查。若版图中多个文本标签与一个焊盘重叠,工具会生成多文本错误,并选择使用该焊盘上附着的其中一个文本标签进行连接分析。由于所选标签可能与设计意图不符,因此必须检查并解决所有多文本错误,以确保版图正确;若未解决,连接分析结果可能不准确。注 若一个芯片存在多个放置实例,且这些放置实例未使用
rename_text操作,则文本结果仅会针对第一个放置实例进行报告(其他受影响的放置实例会在生成的 Calibre RVE 检查注释中提及)。 -
多余端口(Extra Port) :源中缺失的端口(或版图中多余的端口)。要生成这些结果,必须包含
source_netlist命令。Calibre RVE 允许从详情窗格中高亮并交叉引用LNC和SNC端口。若满足以下一个或多个条件,可能会出现此结果:-
源网表中缺失放置实例子电路的引脚定义。
-
若一个焊盘上存在多个文本标签,Calibre 3DSTACK 会在连接提取期间选择其中一个标签并将其与该焊盘关联。因此,可能会因放置实例端口在源网表中未找到而产生多余端口结果。可通过指定
-no_extra_ports选项禁用此检查。
-
-
缺失端口(Missing Ports) :源网表中存在但无对应版图焊盘的端口。要生成这些结果,必须包含
source_netlist命令。当高亮此结果时,没有可高亮的版图对象,因此结果属性会显示在组装顶层单元的左下角。结果包含SourceNet和MissingPort属性,这些属性会在结果数据窗格中显示为链接 ------ 点击链接可高亮源网和端口。必须在 Calibre RVE 中打开 Calibre 3DSTACK DFM 数据库和源网表,详情参见第 43 页的 "在 Calibre 3DSTACK 中调试连接错误"。可通过指定-no_missing_ports选项禁用此检查。
网文本不匹配检查
要设置版图网文本与源网的检查,根据规则文件语法,必须在该层上指定 die -layer_info -net_text。要执行网文本检查,必须在指定层上使用 connected -net_mismatch 选项。
当给定路径中仅存在一个网文本标签 ,且该网文本标签与源网表中的源网名称匹配时,认为网匹配(无问题)。若不满足此条件,路径上的所有版图引脚实例几何图形都会被标记为网不匹配错误。
<check_name>_net_mismatch 结果会报告以下问题:
-
缺失名称(Missing Name):当前版图网无关联名称,会报告该网的所有焊盘。
-
不匹配(Mismatch):源网名称不在关联的网名称中。
-
多名称(Multi Name):同一版图网附着了多个网名称,会报告所有文本焊盘。
结果还包含以下信息:
Net:所有关联的网名称。SourceNet:源网名称。
示例
示例 1
本示例定义了两个裸片(INT 和 MEM)以及一个包含两个放置实例的堆叠,其中 MEM 裸片放置在一个 INT 裸片的顶部。基于定义的堆叠,连接检查 conn1 会衍生出三个独立的连接检查:
-
INT裸片放置实例的bump类型放置层与MEM裸片的第一个 放置实例的bump类型放置层之间。 -
INT裸片放置实例的bump类型放置层与MEM裸片的第二个 放置实例的bump类型放置层之间。 -
两个
MEM裸片放置实例的bump类型放置层之间(因它们定义在同一层内)。
tcl
die -die_name INT -interposer -layout {-path ./INT.gds} \
-anchor {-name mem1 -placement 0 0} \
-anchor {-name mem2 -placement 1000 0} \
-layer_info {-type bump -bottom -layer 43 -text 44}
die -die_name MEM -layout {-path ./MEM.gds} \
-anchor {-name int -placement 0 0} \
-layer_info {-type bump -bottom -layer 40 -text 40}
stack -stack_name w_tier \
-die {-name INT -invert -rotate 90} \
-tier { \
-die {-name MEM -anchor INT mem1 anchor_INT} \
-die {-name MEM -anchor INT mem2 anchor_INT} \
}
connected -check_name conn1 -layer_type1 bump -layer_type2 bump
此示例会同时执行白盒和黑盒检查(默认行为)。
示例 2
以下示例对 2.5D 设计执行黑盒连接检查。即使组装文件中定义了中介层的内部布线层,仍可执行此检查。
tcl
connected -check_name connect_bb -layer_type1 pad -layer_type2 pad \
-black_box -detailed \
-comment "BB CONNECT between interposer and interacting dies"
以下检查执行白盒检查,会检查焊盘层通过中介层的物理连接。
tcl
connected -check_name connect_wb -layer_type1 pad -layer_type2 pad \
-white_box -detailed \
-comment "WB CONNECT between interposer and interacting dies"
示例 3
若仅指定一种层类型,Calibre 3DSTACK 会检查该层在裸片内部 的连接。例如,以下规则检查连接到 bump 层类型的几何图形的开路和短路情况。
tcl
connected -check_name internal_open_short \
-stack assembly \
-layer_type1 bump \
-comment "Opens or Shorts detected on dies" \
-detailed
对于同一示例,可指定要在该层类型上检查的引脚列表,如下所示:
tcl
connected -check_name internal_open_short \
-stack assembly \
-layer_type1 bump \
-pin_list {VDD VSS} \
-comment "Opens or Shorts detected on dies for VSS/VDD" \
-detailed
在此情况下,工具仅会 报告 VDD 和 VSS 引脚的短路或开路情况。
示例 4
以下示例检查两个裸片之间的连接关系:
tcl
connected -check_name cont_to_ram \
-die1 controller -die2 ram \
-comment "CONT_CHECK: Die to Controller" \
-detailed
示例 5
以下示例检查单个裸片的内部连接:
tcl
connected -check_name interp_conn_internal \
-die1 interposer -standalone \
-comment "CONT_CHECK: INTERNAL CONNECTIVITY CHECK" \
-detailed
示例 6
以下示例通过单个检查 验证组装中所有裸片之间的连接关系:
tcl
connected -check_name CONNECT_ALL -comment "FULL CHECK"