尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

40LL芯片签核指南:时序、功耗与物理验证的信任链

40LL芯片签核指南:时序、功耗与物理验证的信任链 简介面向集成电路设计与版图工程师的SMIC 40LL工艺设计签核指南文档聚焦中芯国际40纳米低漏电Low Leakage工艺节点在tape-out前需要完成的设计签核流程与合规要求。资源包内含1份PDF文档解压后约2.18MB共36页内容涵盖文档版本与保密声明、签核项目清单、各检查环节的判定标准及责任划分便于读者按官方规范逐项核对设计交付物。目前已吸引496人学习下载说明该文档在数字后端与物理验证圈内具有较高的参考需求。读者可从中获取签核检查的完整框架与项目条目对照自身项目梳理DRC、LVS、ERC、天线效应、密度检查等环节的准备顺序理解工艺厂对交付数据的格式与完整性要求也可作为团队内部流程培训与签核评审的对照材料减少因漏项导致的反复迭代与流片风险。1. 签核不是最后一道工序40LL 设计为什么在流片前就被“锁死”有个模块时序连续三周干净所有路径 slack 都是正的团队已经准备交付。回片后在一个低温 corner 上 hold 挂了复现出来只有几十皮秒的缺口。追到最后发现不是设计写错了是 OCV derate 用的库 corner 和签核指南里给的那套 corner 根本不是同一组参数。这类事故在 40LL 这种“看起来已经很熟”的节点上反而高发因为大家默认它足够简单。40LL 的 sign-off guide 值得逐页拆原因就在这里它把代工厂对工艺能力的承诺翻译成了设计侧一条条可验证的断言从库的 VT 档位一直管到你用什么版本的工具跑最后一遍 STA。搞懂它的机制等于拿到了一张“哪些数字可信、哪些数字只是自己骗自己”的对照表。2. 参考流程与版本矩阵为什么“我跑通了”和“签核通过”是两件事2.1 四个门禁步骤把设计质量切成可判定的段签核指南描述的参考流程里只有四个步骤被定义为 main gating stepstiming signoff、power signoff、physical verification、manufacturability analysis。注意“gating”这个词它的含义是前一步没过后一步的结果不具备判定价值。这和很多团队的实际做法有偏差——现实里常见的是 PnR 收尾后同时起一堆脚本STA、IR drop、DRC 并行跑谁先出结果谁先看。这种并行在工程效率上没毛病但在判定逻辑上有漏洞。举例DRC 报出的密度违例可能来自没做 dummy fill而 dummy fill 会改变寄生电容寄生变了时序要重抽。并行跑出来的时序结果是“无 fill 版图的时序”它对最终签核没有约束力。指南把顺序定死本质是承认数据之间存在依赖不是一个流程图画得好看的问题。四个门禁之间有明确的产物传递关系门禁步骤主要输入判定产物下游依赖时序签核标准单元库、PEX 网表、SDC 约束各 corner 的 setup/hold 余量无但依赖库与 PEX 版本一致功耗签核电源网格、开关活动率、封装模型静态压降、动态压降占比依赖 PnR 后的最终版图物理验证GDS、网表、DRC/LVS 规则干净 DRC、LVS 一致、签核 PEXdummy fill 之后必须重跑可制造性分析光刻模型、密度分布LFD 热点、dummy 覆盖率依赖物理验证通过后的版图表格里最容易出事的是“下游依赖”这一列。功耗签核依赖最终版图但最终版图要经过 dummy fill物理验证的 PEX 输出又要回头喂给时序。这个环一旦被并行打断最后交出去的就是四份互相不自洽的报告。2.2 工具版本为什么算签核内容的一部分版本矩阵那张表很多人扫一眼就过去了觉得是文档凑页数。实际它是整份指南里最硬的一条约束。原因在三个层面。第一层是模型格式。标准单元库的表征结果、寄生提取的 RC tech file、物理验证的规则 deck这三类输入都有版本语义。库文件里的时序模型在某些版本之后换了插值方式同一份 lib 在新旧工具里算出来的 cell delay 会有系统性偏移。这个偏移不大几皮秒量级但它会在成千上万条路径上累积最后体现为某个 corner 上整体余量缩水而你会以为是设计退化了。第二层是算法行为。串扰增量延迟算不算、算几轮迭代、OCV derate 和 AOCV 的叠加顺序、hold 检查里 clock 和 data 的 derate 是分别加还是合并加这些在不同版本里的默认值不一样。默认值一改同一份网表跑出来的数字就变了。签核指南锁版本等于锁住这一串默认行为让“签核通过”这个结论在时间上可复现。第三层是规则与工具的匹配。工艺侧的 DRC 规则文件是针对特定工具版本写的规则里的某些操作在旧版本里不支持会被静默忽略。静默忽略是最难查的——它不报错只是少查了一类图形。等到批量出问题时你已经流片了。我一般会建议把环境快照做成签核交付物的一部分跟着报告一起归档# 签核环境快照把跑出结果的环境固化成可复核记录 SIGNOFF_TAG40ll_mpw1_sta_r3 OUTsignoff_env_${SIGNOFF_TAG}.log { echo tag: ${SIGNOFF_TAG} echo host: $(hostname) echo start: $(date -Iseconds) # 工具主版本签核指南按阶段规定了推荐版本区间主版本偏离要单独说明 sta_bin -version 21 | head -n 1 pex_bin -version 21 | head -n 1 drc_bin -version 21 | head -n 1 # 工艺侧输入库、RC tech、PEX 规则文件的校验和防止换库不换结果 md5sum lib/*.lib rc/*.tch pex/*.rules 2/dev/null } | tee ${OUT}这段脚本的关键不是命令本身而是它记录的三个东西工具主版本、输入文件校验和、执行时间。sta_bin、pex_bin、drc_bin换成实际工具的可执行名即可head -n 1是为了只留版本行避免日志被 license 信息刷屏。md5sum那一行是重点——工艺库在项目周期内被悄悄更新过一次是极常见的翻车来源有了校验和至少能证明“这次结果用的是哪份库”。提示版本矩阵里有些阶段会给两个可选工具并且备注里写明“某几个 ISR 也支持”。这种备注不是给你挑顺手的用而是说明这几个版本之间做过交叉验证。跨出这个集合结果就不能直接拿去签核。3. 时序签核的四层信任链库、PEX、OCV、corner 谁在决定余量3.1 标准单元库的档位设计先决定了你能修什么签核指南在时序章节开头就把库摊开讲顺序是对的。因为后面所有余量讨论都建立在“你用的库被正确表征过”这个前提上。40LL 平台提供的库按三个维度切分栅长档C40 / C50、阈值电压档RVT / HVT / LVT / ULVT、用途档Basic Kits / Power Management Kits / ECO Library物理栅格统一是 8-Track。栅长两档的取舍很直白短栅长快但漏电高长栅长慢漏电低。同一个设计里混用两档是常规操作关键是时序签核时每个实例必须用对应档位的库表征不能拿 C40 的表征去算 C50 的单元。VT 档才是真正影响签核策略的维度。RVT 是基线HVT 慢但漏电低LVT 快但漏电高ULVT 更快、漏电更高。一条路径从 RVT 换成 LVT延迟能掉一截代价是静态功耗上升。设计侧的直觉是“先用快的收时序再回头换慢的省功耗”问题在于能不能换回来。这就碰到一个很具体的机制点ECO Library 只覆盖 RVT、HVT、LVT没有 ULVT。也就是说如果在综合或 PnR 阶段为了赶时序大量使用 ULVT到了 ECO 阶段想原地修补ECO 库里没有对应的 ULVT 单元可换。你只有两个选择用 LVT 顶替延迟对不上可能又把时序弄回去或者从 Basic Kits 里拉 ULVT 单元做非 ECO 流程的改动流程更重迭代更慢。我一般会这么理解这条设计的动机ECO 库的存在目的是“小改动、可预测、快速收敛”它不需要覆盖全部档位只需要覆盖最可能被用来做增量修正的那几档。ULVT 本身是性能极限手段用它做 ECO 的概率低所以被砍掉。理解这一点之后库的选型策略就清楚了——ULVT 应该留给真正卡死的少数关键路径而不是当默认选项铺开。3.2 PEX寄生提取不是“抽一遍就完了”寄生提取在时序签核里的位置很微妙。它既是时序的输入又在物理验证章节里单独出现一次。这不是文档重复而是两个不同用途的提取时序用的 PEX 要跟 STA 的延迟计算模型对齐物理验证用的 PEX 要保证网表与版图的器件级一致性。两次提取的精度设置、耦合处理方式、层次化划分都可能不同。对时序而言关键在于三件事提取的 corner 覆盖、耦合电容的处理、层次化边界。耦合电容如果不带进来串扰增量延迟就无从算起路径延迟会偏乐观层次化边界处理不当跨模块的线网寄生会被截断长线路径的余量直接失真。签核指南把 PEX 放在标准单元库之后、OCV 之前讲逻辑是库给出单元自身的延迟PEX 给出互连的延迟两者相加才是路径延迟OCV 再在这个基础上加偏差。顺序错了derate 就会加在一个不完整的基数上。3.3 OCVderate 不是拍脑袋的保险系数On-chip variation 解决的是一颗芯片内部的偏差问题同一片 die 上不同位置的晶体管即使版图完全一样实际阈值电压、沟道长度也会有分布差异。这个差异不体现在 corner 上因为 corner 描述的是“片与片之间”的工艺分布。片上偏差必须单独建模。最朴素的建模方式是全局 derate给 launch 路径的延迟乘一个大于 1 的系数给 capture 路径乘一个小于 1 的系数人为制造 worst case。这种做法简单、保守、可预测缺点是过于保守——它对所有路径一视同仁不管路径长短、不管逻辑级数。# 时序签核约束片段OCV derate 与 operating condition 的绑定 # max/min 两组 operating condition 分别对应 setup 与 hold 的检查方向 set_operating_conditions -analysis_type on_chip_variation \ -max ss_125c_0p99v -min ff_m40c_1p10v # 全局 derate 是下限保护不是精度手段所有路径至少按这个比例缩放 set_timing_derate -early 0.97 -late 1.03 # 时钟路径单独加严时钟树与数据路径的偏差来源不同不能共用一套系数 set_timing_derate -early 0.95 -late 1.05 -clock # 串扰增量延迟单独开关避免与 OCV derate 重复计算同一份偏差 set_delay_calculation_options -crosstalk_delta_delay true-early作用在 hold 检查的 launch 侧让数据更早到更悲观-late作用在 setup 检查的 launch 侧让数据更晚到。时钟单独一组系数是因为时钟树经过的缓冲器级数多、共用路径长其偏差特性和数据路径不一样用同一套系数会低估时钟偏斜。-crosstalk_delta_delay单独开关这一点尤其要注意串扰引起的增量延迟本身已经包含了部分随机性如果 OCV derate 再叠上去同一份偏差被算了两次结果会过度悲观逼着设计去做无谓的面积牺牲。更进阶的做法是基于路径级或统计的建模按逻辑深度、按单元类型给不同系数。签核指南给的是基线要求能不能用更精细的模型替代取决于你和工艺侧确认过没有。没确认就自己换模型等于把签核基准改了。3.4 corner 集合签核的“坐标系”corner 是 PVT 的组合工艺slow/fast/typical、电压标称上下浮动、温度高温/低温/室温。40LL 的签核 corner 集合不是简单地把所有组合都跑一遍而是按失效模式挑出有代表性的点。setup 检查关心最慢的条件慢工艺、低压、高温或低温取决于工艺特性。hold 检查关心最快的条件快工艺、高压、低温。这两组条件在物理上不可能同时出现在一颗芯片上但它们分别是两个检查方向的最坏情况所以要分开跑。真正容易漏的是那些“非典型” corner。比如低温下的 hold很多人只跑常温 hold觉得低温只会让电路更快、setup 更宽松。但 hold 恰恰是越快越危险。再比如电压偏高的 corner如果电源网格设计得刚好卡在边界高压会让动态压降的绝对值变大功耗和时序同时恶化。签核指南给出 corner 清单的目的是让所有项目在同一套坐标系里报数。你可以在清单之外加 corner 做裕度分析但不能用自己的一套坐标去替代清单。4. 从电源网格到版图功耗、物理验证与可制造性为什么必须一起看4.1 静态 IR drop 与动态压降两种不同的失效模型功耗签核分两条线静态 IR drop 和动态电压降。很多人把这两件事当成同一件事的两个精度档位其实它们建模的物理过程完全不同。静态 IR drop 看的是电阻网络。电流从封装凸点进入片上电源网格经过一层层金属走线到达每个标准单元每一段金属都有电阻电流流过就产生压降。这个压降是直流意义上的平均值跟开关活动无关只跟平均电流和网格电阻有关。它的失效模式是最远处的单元拿到的实际电压低于标称值延迟变长setup 恶化。动态电压降看的是瞬态。数字电路在时钟沿同时翻转瞬时电流变化率极高电源网格的电阻和电感、封装引线的电感、片上去耦电容共同决定了这个瞬态电流引起的电压塌陷。它的失效模式是时钟沿附近出现一个窄而深的电压凹陷让正在翻转的那批单元速度骤降表现为路径延迟的瞬时抖动。两者不能互相替代。静态压降合格不代表动态塌陷合格反过来也一样。签核指南把两者分开列是因为它们的修复手段不同——静态压降靠加宽网格、加更多电源条动态压降靠加去耦电容、优化开关时序、调整封装。# 两类余量的快速估算电源网格压降 与 金属线电流密度 V_NOM 1.10 # nominal 供电电压单位 V IR_BUDGET 0.05 # 静态压降允许占 nominal 的比例 R_MESH 0.018 # 从凸点到最远单元的等效电阻单位 ohm I_AVG 2.4 # 该区域的平均电流单位 A ir_drop I_AVG * R_MESH budget_mv V_NOM * IR_BUDGET * 1000 print(fIR drop {ir_drop*1000:.1f} mV, budget {budget_mv:.1f} mV) # Black 方程的一阶形式寿命随电流密度按幂律下降 J 1.2e6 # A/cm^2该段金属的实际电流密度 J_LIMIT 1.0e6 # A/cm^2规则给出的上限 n 2.0 # 电流密度指数工程上常见取 1.5~2 print(fEM margin ratio {(J_LIMIT/J)**n:.2f}x)第一段算的是静态压降的绝对值与预算的对比R_MESH是从凸点到最远单元的等效电阻这个值要靠网格提取得到不能靠估。第二段用 Black 方程的一阶形式算电迁移余量n是电流密度指数J超过J_LIMIT时比值小于 1意味着寿命低于设计目标。这个估算很粗只能用来快速判断“这个区域是不是明显超标”精确判定还是要靠工具出报告。4.2 DRC 与 LVS物理验证的两条正交轴DRC 检查的是几何规则线宽、间距、包围、密度。这些规则来自工艺能力违反就可能导致短路、断路、光刻失败。LVS 检查的是拓扑一致性版图抽出的网表和设计网表在器件连接关系上是否完全一致。两条轴是正交的。DRC 干净但 LVS 不一致说明图形合法但连接错了典型原因是电源地网络接错、器件识别错误、衬底接触漏加。LVS 一致但 DRC 脏说明连接对但图形不合法典型原因是密度不足、间距擦边。签核指南把 PEX 放在 DRC 和 LVS 之后是流程顺序的必然只有 DRC 干净、LVS 一致的版图提取出来的寄生参数才有意义。拿一个还有 DRC 违例的版图去抽 PEX抽出来的 RC 网络对应的是一个不存在的几何结构。4.3 LFD 与 dummy可制造性不是“锦上添花”LFDlitho-friendly design检查本质是在版图上做光刻仿真找出那些在规则上合法、但在实际光刻条件下会形成热点hotspot的图形。规则是离散的、局部的光刻是连续的、有邻域效应的。一条线单独看满足线宽和间距但它旁边三条线的组合可能让光强分布畸变最终印出来的形状和设计形状差很多。这就是 DRC 干净但硅片上出问题的经典场景。LFD 补的正是这个缺口。dummy insertion 解决的是另一个问题密度均匀性。化学机械抛光对图形密度敏感密度低的区域被抛得更深形成碟形凹陷影响后续金属层的光刻聚焦。dummy fill 通过在空旷区域填充无功能的图形把局部密度拉到均匀区间。这两件事跟时序签核的耦合点在于dummy 图形是金属它会引入寄生电容。填充之后被填区域附近的信号线电容变大延迟变长。所以在签核流程里dummy 填充完成后必须重抽 PEX、重跑 STA。指南把 dummy insertion 放在可制造性章节但它的影响会回传到时序这个回传关系是流程管理的重点。4.4 EM可靠性里的时间维度EM电迁移检查关注金属线上的电流密度。电流密度过高时金属原子沿电子流方向迁移长期累积会在某些位置形成空洞或凸起导致断路或短路。它的特殊之处是这是一个随时间演化的失效机制不是一上电就坏。Black 方程描述了这个过程寿命与电流密度的幂次成反比与温度呈指数关系。所以 EM 判定本质是在问“按这个电流密度设计寿命能不能覆盖目标年限”。电源线的 EM 和信号线的 EM 要分开看电源线承受的是持续的大电流信号线承受的是翻转时的瞬时电流两者的判定准则和关注点不同。签核指南把 EM 单独成章放在设计可靠性下是因为它的修复成本和时序、DRC 完全不在一个量级。时序违例可以改约束、换单元、加缓冲EM 违例往往意味着要改电源网格拓扑或者加宽整条走线在项目后期几乎没有可行性。所以 EM 的检查要提前不能等到最后一遍。5. 签核里最容易翻车的五件事现象、原因与排查顺序5.1 第三方库套用代工厂的签核清单现象时序报告全绿回片后批量失效失效模式集中在某个 VT 档的单元上。原因签核指南在开头就写明了文档里的清单适用于代工厂自有的标准单元和库如果用的是第三方库应该遵循第三方厂商的指引。第三方库的表征 corner、derate 假设、单元内部结构都可能不同硬套清单等于用错坐标系。解决拿到第三方库的第一件事是确认它的表征条件清单逐条对照签核指南里的 corner 定义找出差异项对差异项单独补跑。差异无法调和时找工艺侧确认替代方案不要自己拍板。5.2 corner 跑全了但 derate 全局一刀切现象所有 corner 的余量分布异常均匀长路径和短路径的 slack 几乎在同一水平线上。原因全局 derate 对所有路径施加同一个系数短路径本身延迟小被 derate 的绝对量也小长路径被 derate 的绝对量大。如果报告里看不到这个梯度说明 derate 没生效或者被后续的某个选项覆盖了。解决先确认 derate 命令在报告里的实际生效值再看路径延迟的分布是否呈现随逻辑深度递增的偏差。均匀分布是危险信号通常意味着约束没进到分析引擎或者被更晚的约束语句覆盖。5.3 PEX 提取没带耦合串扰被静默忽略现象时序余量看起来比预期宽松功耗也偏低二者同时偏乐观。原因寄生提取时关掉了耦合电容提取只留了接地电容。串扰增量延迟无从计算延迟偏小耦合电容对应的功耗也被漏算。两个偏乐观同时出现是这类配置错误的典型指纹。解决检查提取配置里耦合相关的开关确认输出网表里包含耦合电容段。抽一部分关键路径做带耦合和不带耦合的对比差异应该明显存在。差异为零就是没抽到。5.4 dummy fill 之后没有重跑时序现象DRC 干净、LVS 一致、时序也干净但签核报告之间的时间戳顺序不对——STA 的报告早于 fill 完成的记录。原因流程并行导致的数据不自洽。fill 引入的寄生变化没有回传到 STA报告描述的是 fill 之前的版图。解决把“fill 完成后重抽 PEX、重跑 STA”写进流程检查项用产物时间戳做自动校验。这类问题靠人眼看报告发现不了必须靠流程约束。5.5 工具版本对了但规则 deck 或库不是配套版本现象DRC 跑完零违例但和同项目其他模块的 DRC 报告在同类图形上的判定不一致。原因规则文件有版本库也有版本工具版本对上了不代表这三者配套。旧规则配新工具某些检查会被跳过且不报错。解决把工具版本、规则文件版本、库版本三者作为一组绑定关系管理任何一项变更都触发全量重跑。版本组合记录进签核归档和结果报告放在一起。6. 收紧还是放松签核标准的取舍与验证习惯签核标准不是一个“越严越好”的东西。每收紧一档都对应一个明确的代价而这些代价最终会体现在面积、功耗、周期三者中的某一项上。签核项收紧手段直接代价适用场景OCV derate提高全局系数或改路径级建模面积增加关键路径被迫用更快档位首次流片、无硅验证数据静态 IR drop 预算降低允许压降占比电源网格加宽布线资源紧张高开关活动率的大规模逻辑动态压降增加去耦电容、错开开关时序面积占用时序约束变复杂时钟频率接近工艺上限EM 电流密度上限降低允许密度走线加宽层数需求上升长寿命、高可靠要求corner 覆盖增加非典型 corner签核周期变长算力成本上升车规、工业级温度范围这张表的读法是先看“适用场景”再看“直接代价”。首次流片没有硅数据支撑OCV 收紧是买保险代价可接受已经有同工艺的量产数据就可以基于实测分布调整 derate把过度保守的部分释放出来。反过来如果项目本身对可靠性要求不高、生命周期短EM 上限就没必要往最严里压。这里有个容易被忽略的点签核标准的放松必须有依据而依据只能来自数据。没有硅数据的放松是赌博有硅数据的放松是工程判断。这两者在报告上看起来一样风险完全不同。验证方法上我习惯做一件事对同一份设计用两套略有差异的签核配置各跑一遍比较余量分布的差异。如果两套配置的结果几乎一致说明这套设计对该参数不敏感可以放心用宽松的那套如果差异明显说明设计正好卡在这个参数的敏感区那就得老老实实按严的来。这个对比跑一次的成本远低于流片后发现余量判断错误的成本。从那以后我每次起一个新项目的签核环境都强制走一遍“版本快照 输入校验和 产物时间戳顺序”这三件事不管项目多小。血泪经验是出问题的从来不是那些看起来复杂的地方而是那些“这么熟了不会错”的地方。希望帮到你。本文还有配套的精品资源点击获取
返回列表