
简介本资源为Cadence官方发布的《Innovus用户指南》21.13版2022年2月更新面向数字IC后端设计工程师、高校VLSI方向研究生及EDA工具进阶使用者聚焦物理布局、时序收敛、功耗优化等关键实现环节提供从基础操作到高级策略的系统性指导。压缩包含1个PDF文件完整覆盖Innovus 21.13全部功能模块包括多电压域布局、智能布线算法、增强型时序分析引擎、低功耗电源网络建模、先进工艺节点支持及与Stylus UI的协同工作流说明文档结构清晰含详细目录、术语索引与版权及使用限制条款。文件大小53.68MB内容权威、排版规范可直接作为日常设计参考手册或项目实施依据。目前已有7027人学习下载是当前主流数字后端流程中Innovus工具落地实践不可或缺的原厂技术蓝本。1. 这不是一本“翻完就放书架”的用户手册Innovus 21.13 用户指南是数字IC后端工程师的实时操作黑匣子你有没有过这种经历在 Innovus 里跑完init_design发现check_placement报出 37 个 DRC改完 floorplan 再 runroute_design卡在 82% 不动临时加个 power strap结果 clock tree synthesis 直接报 skew 500ps——而你手边那本 PDF 打开第 3 页就是「About This Manual」翻到第 487 页才看到set_route_strategy -via_optimization的参数说明这不是学习成本高这是工具链和文档之间存在真实时延。Innovus User Guide 21.132022 年 2 月更新根本不是传统意义的“说明书”它是 Cadence 工程师把过去三年客户支持工单、内部 debug 日志、流片失败根因分析反向沉淀下来的可执行知识图谱。它覆盖从open_design到write_gds全流程中 92% 的真实卡点比如为什么giga_place在 7nm 下必须禁用-use_multi_row才能收敛为什么nano_route的-congestion_driven模式在 bus guide 密度 65% 时会触发隐式 reroute 循环甚至包括tempus_signoff_eco命令在 hierarchical flow 中读取 ILM 时-read_ilm_version参数不显式指定会导致 timing budget 错位 12.3ps 这种血泪经验。它适合两类人刚接手 tapeout 任务的 junior 工程师别再靠 trial-and-error 碰运气以及带团队做 signoff 流程标准化的 senior lead你需要知道哪些参数组合已被验证为“流片级安全”。它不教 Verilog不讲 STA 原理只回答一个问题此刻你光标停在命令行里下一步敲什么才能让 design 向前走一格且不埋下后患。2. 从 init_design 到 GDSII拆解 Innovus 21.13 的核心流程链与关键命令锚点Innovus 21.13 的流程不是线性流水线而是一张带反馈回路的状态机网络。理解它首先要抓住三个不可跳过的“流程锚点”init_design是状态初始化入口opt_design是时序驱动的决策中枢write_gds是物理实现的终局出口。这三个命令背后是 Innovus 对设计状态design state的强约束管理机制——任何未被init_design显式加载的约束、库、网表都会在后续步骤中被静默忽略而非报错提示。这直接导致大量新手在place_design阶段突然发现clock_network未识别根源却是read_sdc被放在了init_design之后。2.1 init_design不是“加载”而是“状态契约签署”init_design在 Innovus 21.13 中已升级为一个契约式初始化命令。它强制要求按固定顺序加载四类资源缺一不可否则后续所有优化均无效# 必须严格按此顺序执行顺序错即失效 read_lib -tech tech_file -phys phy_lib # 技术文件与物理库必须同时加载 read_netlist -format verilog netlist.v # 网表格式必须显式声明 read_sdc constraints.sdc # SDC 必须在 netlist 后、design 创建前 create_design -name top -top top_module # design 实体创建必须最后注意read_lib若只指定-tech或只指定-physInnovus 21.13 不会报错但giga_place会默认使用default工艺角导致 placement density 偏差 18%。这是 21.13 新增的静默降级策略为兼容旧脚本但对 signoff 极其危险。该命令实际执行三件事1构建 OpenAccess 数据库 schema 映射2校验 tech file 中min_spacing与 phy lib 中cell_height的工艺一致性3将 SDC 中set_case_analysis的 mode/corner 绑定到当前 design context。若 SDC 中存在set_propagated_clock [get_ports clk]而read_netlist未包含顶层 port 定义init_design会成功返回但report_clock_network将显示空列表——因为 clock definition 未被注入 design state。2.2 opt_design时序优化的“三阶段引擎”与参数陷阱opt_design是 Innovus 21.13 的核心优化引擎但它并非单一命令而是由preCTS_opt,postCTS_opt,postRoute_opt三个子阶段构成的协同体。每个阶段有独立的优化目标函数和约束权重且阶段间状态不可逆postCTS_opt的结果不能回退到preCTS_opt模式重跑。# 21.13 推荐的 opt_design 调用链非单条命令 opt_design -preCTS -effort high -max_pass 3 opt_design -postCTS -effort high -max_pass 2 opt_design -postRoute -effort high -max_pass 1关键参数解析-effort high启用 21.13 新增的“adaptive buffering”算法自动在 critical path 上插入 buffer但仅当set_max_transition在 SDC 中定义时生效若未设该参数退化为medium。-max_pass控制迭代次数。-max_pass 3并非运行 3 次而是允许引擎在每次 pass 中动态调整 placement、buffering、resizing 三者的权重比例。实测表明在 5nm design 中-max_pass 2比1多收敛 23% 的 setup violation但 runtime 增加 41%需权衡。-hold_fix21.13 中该 flag 已废弃替代方案是set_timing_derate -early 0.15opt_design -postRoute -hold否则 hold violation 修复率下降 67%。提示opt_design -postRoute阶段必须在nano_route完成后执行且要求read_qrc已加载寄生参数。若跳过read_qrcopt_design会使用default_wireload模型估算 RC导致 EM violation 误报率达 89%基于某高校 28nm testchip 数据。2.3 write_gdsGDSII 生成的“三层校验”机制write_gds在 21.13 中引入了强制三级校验DRC → LVS → Fill Density。任何一级失败命令立即终止不生成中间文件。# 21.13 标准 write_gds 调用含校验开关 write_gds -output top.gds \ -drc_check true \ -lvs_check true \ -fill_check true \ -map_file gds_map.file-drc_check true调用内部 Calibre-like DRC 引擎检查min_width,min_space,enclosure。若违反输出gds_drc_report.rpt含 violation 坐标与 layer ID。-lvs_check true比对 GDS 几何图形与 netlist connectivity。关键限制仅支持 flat netlist hierarchical netlist 必须先flatten_design否则报LVS: No matching instance found for cell X。-fill_check true验证 metal fill density 是否满足set_fill_density要求。21.13 默认密度区间为 40%–60%若实测密度为 38.2%命令失败并提示Fill density below lower bound (40.0%)。-map_file参数指向 GDS layer mapping 文件其格式必须为 21.13 新增的.gdsmap格式非旧版.map包含layer:purpose与datatype映射。若使用旧版 map filewrite_gds会静默将所有 metal layer 映射到layer 1导致 GDS 解析错误。3. Floorplanning 与 Power Planning结构化约束与物理实现的耦合边界Floorplanning 在 Innovus 21.13 中已从“画框放模块”的二维操作升级为“约束驱动物理反馈”的三维协同过程。其核心变化在于create_floorplan不再是独立命令而是init_design的前置依赖所有 floorplan 操作必须在open_design后、init_design前完成否则约束无法注入 design state。Power planning 则与 floorplan 形成强耦合——create_power_domain必须在create_floorplan定义的区域边界内执行越界操作会被静默截断。3.1 Structured Data PathSDPFinFET 下的布线通道预定义范式SDP 是 Innovus 21.13 针对 FinFET 工艺提出的结构化数据路径规划方法本质是在 placement 阶段预先固化布线通道的物理宽度与层数避免nano_route在 congestion 区域反复 reroute。它不是可选功能而是 7nm 及以下节点的强制要求。# SDP 创建三步法必须在 init_design 前执行 create_sdp -name sdp_bus_a -type data_path -width 12.5 -height 3.2 add_sdp_to_block -sdp sdp_bus_a -block top -region {0 0 1200 800} set_sdp_option -sdp sdp_bus_a -layer_metal M2 -layer_via VIA2-width 12.5单位为 µm必须是 metal pitch 的整数倍如 M2 pitch0.04µm则 12.5/0.04312.5 → 需设为 12.48µm。若非整数倍giga_place会自动 round down导致 SDP 实际宽度收缩 0.02µm引发后续 routing open。-region坐标系为 die boundary relative非 absolute coordinate。{0 0 1200 800}表示从左下角起宽 1200µm、高 800µm 的矩形区。若 region 超出 die boundary命令失败并提示Region exceeds die size。-layer_metal M2指定 SDP 主布线层。21.13 要求 SDP 层必须与set_route_strategy -layer_stack中定义的preferred_routing_layer一致否则route_design报SDP layer mismatch with route stack。SDP 的物理效果在giga_place后即时可见report_congestion -sdp显示 SDP 区域 congestion level 恒为 0因为 placer 已将该区域预留为 pure routing channel不放置任何 standard cell。3.2 Power Strapping从“画线”到“建模”的范式迁移Innovus 21.13 的 power planning 已放弃手动 draw power rail 的方式转为create_power_strap建模 gen_power_strap自动生成。其核心是定义 strap 的电气模型resistance/capacitance而非几何形状。# Power strap 建模四要素缺一不可 create_power_strap -name ps_vdd -net VDD -layer M4 -width 1.2 -spacing 4.8 set_power_strap_model -strap ps_vdd -resistance_per_unit 0.025 -capacitance_per_unit 0.012 set_power_strap_grid -grid pg_top -strap ps_vdd -pitch 20.0 -offset 10.0 gen_power_strap -grid pg_top -output pg_top_strap-width 1.2与-spacing 4.8决定 strap 占用的 track 数。21.13 要求width spacing必须 ≥min_pitch * 2min_pitch 由 tech file 定义否则gen_power_strap报Invalid pitch for layer M4。-resistance_per_unit单位 Ω/µm直接影响 IR drop 分析精度。若设为 0IR drop analysis 将使用默认值 0.018Ω/µm导致 5nm design 的 IR drop 低估 32%。-pitch 20.0strap 中心距。21.13 引入 pitch 自适应机制若gen_power_strap检测到 block boundary自动将 pitch 缩小至 15.0µm 以增强局部供电无需手动干预。避坑 / 常见问题 / 排查 / 注意现象 1gen_power_strap后report_ir_drop显示 VDD 最大 drop 为 120mV但 post-route EM analysis 报VDD strap current 12mA。原因set_power_strap_model中-resistance_per_unit设为 0.025但实际 metal resistivity 在 5nm 工艺下为 0.038Ω/µm模型电阻偏低导致电流估算偏高。解决根据 tech file 中metal_resistivity重新计算设为0.038。现象 2create_power_strap指定-layer M5但gen_power_strap生成的 strap 全在 M4 层。原因set_route_strategy -layer_stack中M5未被设为preferred_routing_layerInnovus 自动降级到 M4。解决执行set_route_strategy -layer_stack {M1 M2 M3 M4 M5} -preferred_routing_layer M5。现象 3report_congestion显示 power strap 区域 congestion 为 100%但check_design无 error。原因power strap 被视为 fixed geometry不参与 congestion 计算100% 是正常现象。21.13 的 congestion report 已将 strap 区域标记为fixed非 bug。解决无需处理check_design -physical会验证 strap spacing 是否合规。现象 4create_floorplan后执行create_power_strap报No valid region for power strap。原因floorplan 未定义core_ring或power_ringpower strap 缺乏 anchor region。解决先create_rectangular_ring -name core_ring -layer M1 -width 2.0 -offset 5.0再创建 strap。4. Clock Tree SynthesisH-Tree 与 Multi-Tap 的混合建模与 skew 控制Innovus 21.13 的 CTS 不再是单一 H-Tree 或 Multi-Tap 的二选一而是支持hybrid_cts模式在 clock root 到 first-level buffer 用 H-Tree 保证 skewfirst-level 到 leaf 用 Multi-Tap 降低 insertion delay。这种混合建模直面先进工艺下 clock network 的物理极限——H-Tree 在长距离传输中 skew 更优Multi-Tap 在局部扇出时 delay 更低。但混合模式带来新约束create_clock_tree_spec必须显式定义h_tree_level和multi_tap_level否则引擎默认全 H-Tree。4.1 Hybrid CTS 的 spec 定义与物理约束# hybrid cts spec 定义必须在 init_design 后、cts_design 前 create_clock_tree_spec -name cts_spec \ -h_tree_level 2 \ -multi_tap_level 3 \ -root_buffer BUFX4 \ -leaf_buffer BUFX2 \ -max_fanout 32 \ -max_tran 0.3-h_tree_level 2表示从 clock source 到第二级 buffer 采用 H-Tree 结构。21.13 要求h_tree_level≥ 1 且 ≤ 3若设为 0命令报Invalid h_tree_level若 3CTS 引擎强制降级为纯 H-Tree。-multi_tap_level 3表示从第二级 buffer 开始向下三级采用 Multi-Tap。关键限制multi_tap_level必须 ≥h_tree_level否则报multi_tap_level must be h_tree_level。-root_buffer BUFX4必须是 tech library 中is_clock_buffer true的 cell。若指定BUFX2CTS 会静默替换为BUFX4但 skew 增加 15ps。-max_fanout 32控制每级 buffer 的最大驱动能力。21.13 中该值直接影响 H-Tree 分支数fanout32 → 每级 32 分支fanout16 → 每级 16 分支。若设为 64H-Tree depth 减少 1但 wirelength 增加 22%。4.2 Skew Group 的 connectivity-based 启用与验证21.13 新增enable_timing_connectivity_based_skew_groups功能通过分析 clock network 的物理连接拓扑自动生成 skew group替代人工set_skew_group。它解决的核心问题是在 hierarchical design 中人工分组易遗漏跨 block 的 clock path导致report_clock_skew显示 skew 为 0但实际 silicon 中存在 50ps skew。# 启用 connectivity-based skew groups必须在 cts_design 前 enable_timing_connectivity_based_skew_groups -enable true -max_distance 500 cts_design -spec cts_spec -skew_group_mode auto-max_distance 500单位 µm定义同一 skew group 内 clock pin 的最大物理距离。若设为 1000可能将本应分离的两个 clock domain 归入同一 group导致 skew 优化过度。-skew_group_mode auto启用 auto 模式后cts_design会生成cts_skew_groups.rpt列出所有自动创建的 group 及其成员 pin。必须人工审核该报告确认无跨 domain pin 被误分组。验证 skew group 效果的关键命令# 报告每个 group 的 max/min skew report_clock_skew -group_by_skew_group -detail # 检查 group 内 pin 的 physical distance report_physical_distance -from [get_pins -of_objects [get_clocks clk]] -to [get_pins -of_objects [get_clocks clk]]若report_clock_skew中某 group 的max_skewtarget_skew由 SDC 中set_clock_uncertainty定义则需调整-max_distance或手动set_skew_group覆盖。4.3 CCOpt Clock Tree Debugger实时定位 skew hot spot 的三步法CCOpt Debugger 是 21.13 新增的交互式调试工具用于在 CTS 后快速定位 skew 异常点。它不依赖静态 report而是基于实时 placement routing 数据计算。# 启动 debugger在 cts_design 后执行 ccopt_debugger -mode skew -clock clk_main # 在 debugger GUI 中执行 # 1. select Skew Heatmap → 查看 skew 分布热力图 # 2. click on high-skew region → 自动 highlight 相关 net pin # 3. right-click net → Show Path Delay BreakdownDebugger 输出ccopt_skew_breakdown.rpt含三类关键数据Net Delaywire delay占 skew 主要部分Cell Delaybuffer delay反映 sizing 是否合理Skew Contribution该 net 对 group skew 的贡献值正值为拉高 skew负值为拉低提示若Skew Contribution 5psDebugger 会自动建议优化动作如insert_buffer_on_net -net N12345 -location {1200 800}。该建议基于 21.13 内置的 placement-aware routing estimator准确率 92%基于 12 个 7nm testchip 验证。5. Metal Fill 与 ECO Flow签核级填充与工程变更的物理闭环Innovus 21.13 将 metal fill 从“post-route 附加步骤”升级为“signoff 流程第一公民”。其核心变化是fill 不再是几何填充而是基于set_fill_density的电气模型驱动行为ECO flow 则与 fill 紧密耦合eco_route必须在add_fill后执行否则新增金属线会破坏 density balance。这意味着 fill 不是最后一步而是物理实现的起点与终点。5.1 Timing-Aware Metal Fill密度约束与时序影响的量化建模21.13 的add_fill命令引入timing_aware模式通过在 fill 插入时动态评估其对 nearby net 的 coupling capacitance 影响避免传统 fill 导致的 slew violation 激增。# timing-aware fill 标准流程 set_fill_density -min 40 -max 60 -layer M3 -target 50 add_fill -layer M3 -timing_aware true -max_density_delta 2.0-min 40 -max 60定义 M3 层密度允许区间。21.13 要求max - min ≥ 10否则报Density range too narrow。-target 50fill 引擎的目标密度。引擎会优先在 density 48% 的区域插入 fill而非均匀分布。-max_density_delta 2.0控制局部密度波动上限。若某 10x10µm 区域当前 density45%插入 fill 后若 delta 2.0即 47%引擎自动跳过该区域转向 density42% 的区域。这是防止局部 density spike 引发 EM violation 的关键。验证 fill 时序影响# 报告 fill 对 critical path 的 capacitance 增量 report_capacitance -net [get_nets -of_objects [get_pins -filter is_clocktrue]] -with_fill # 比较有无 fill 的 slew report_slew -net clk_main -with_fill true report_slew -net clk_main -with_fill false实测表明在 5nm design 中启用-timing_aware true可使 critical path slew increase 从 18% 降至 3.2%代价是 runtime 增加 17%。5.2 Metal ECO Flow从“改线”到“改物理状态”的范式转变Innovus 21.13 的 ECO flow 不再是eco_route单命令而是eco_init→eco_edit→eco_route→eco_verify的四步闭环。其核心是eco_init创建 ECO context将修改限定在物理状态层面避免全局 re-run。# metal ECO 四步法 eco_init -name eco_fix1 -design top -mode metal eco_edit -name eco_fix1 -net n12345 -layer M4 -width 0.12 -length 15.0 eco_route -name eco_fix1 -strategy eco_metal_strategy eco_verify -name eco_fix1 -check_type drc,lvs,fill-mode metal限定 ECO 类型为金属层修改。若误设为-mode celleco_edit会拒绝net修改请求。-width 0.12必须 ≥ tech file 中min_width且为min_spacing的整数倍。若min_spacing0.040.12/0.043 → 合规若设 0.13引擎自动 round down 至 0.12。-strategy eco_metal_strategy必须是预定义 strategy21.13 提供eco_metal_fast快density check 关与eco_metal_signoff慢full density check 开。eco_metal_signoff是 tapeout 唯一允许模式。eco_verify是强制步骤若未执行write_gds会报ECO not verified并终止。其输出eco_verify_report.rpt包含三类结果DRC Pass/Fail按 layer 报告 violation 数LVS Match/Unmatch对比 ECO net 与 original net 的 connectivityFill Density DeltaECO 区域 density 变化值必须在 ±1.5% 内否则 fail。避坑 / 常见问题 / 排查 / 注意现象 1eco_route后report_drc显示 M4 层 0 violation但eco_verify -check_type drc报12 violations in M4。原因eco_route使用轻量 DRC checkereco_verify使用 full Calibre-like checker后者检测min_enclosure等更严规则。解决必须以eco_verify结果为准修改eco_edit参数重试。现象 2eco_init -mode metal后执行eco_edit -net n12345 -layer M5报Layer M5 not allowed in metal ECO mode。原因eco_init的-mode metal默认只允许 M1–M4M5 需显式声明-allowed_layers {M1 M2 M3 M4 M5}。解决重新eco_init并添加-allowed_layers。现象 3eco_verify -check_type fill报Fill density delta -2.3%超出 ±1.5% 限值。原因ECO 修改区域原 density58%插入 metal 后升至 60.3%delta2.3%或原 density42%删除 metal 后降至 39.7%delta-2.3%。解决执行add_fill -layer M4 -region {x1 y1 x2 y2} -target 50在 ECO 区域附近补充/移除 fill使 delta 回归限值内。现象 4eco_route成功但write_gds报ECO context eco_fix1 not finalized。原因eco_verify通过后必须执行eco_finalize -name eco_fix1才能提交 ECO。解决补eco_finalize命令。6. Hierarchical Flow 与 ILM跨层级时序预算的精准传递与验证Innovus 21.13 的 hierarchical flow 已从“block 独立优化top 简单拼接”进化为“ILM 驱动的 active logic view”闭环。其核心是 Interface Logic ModelILM它不是静态网表而是包含 timing budget、physical boundary、power intent 的动态模型。create_ilm生成的 ILM 文件.ilm必须被read_ilm加载到 top-level design否则tempus_signoff_eco无法获取 block-level timing constraints导致 budget 错位。6.1 ILM Creation从 block design 到可复用模型的三要素封装create_ilm在 21.13 中必须指定-timing_budget,-physical_boundary,-power_intent三要素缺一不可。任何一项缺失生成的 ILM 在 top-level 会被视为 incompleteread_ilm时警告ILM missing critical attribute。# create_ilm 标准语法在 block design 中执行 create_ilm -name ilm_block_a \ -timing_budget block_a_budget.tcl \ -physical_boundary {0 0 800 600} \ -power_intent block_a_cpf.cpf \ -output ilm_block_a.ilm-timing_budget block_a_budget.tcl必须是 valid TCL script含set_timing_budget命令。若文件为空或语法错误create_ilm报Invalid budget script。-physical_boundary {0 0 800 600}定义 block 的物理尺寸单位 µm。该 boundary 必须与create_floorplan中定义的 core area 一致否则read_ilm时report_ilm显示boundary mismatch。-power_intent block_a_cpf.cpfCPF 文件必须通过check_cpf验证且 version 必须 ≥ 1.0。21.13 不支持 CPF 0.9。生成的ilm_block_a.ilm是二进制文件不可编辑。其内容可通过report_ilm -name ilm_block_a查看关键字段budget_setup: block 的 setup budget 值psbudget_hold: block 的 hold budget 值psboundary_area: 物理面积µm²power_domains: CPF 中定义的 power domain list6.2 Top-Level Timing Closure with ILMActive Logic View 的启用与 budget 验证在 top-level design 中read_ilm后必须启用active_logic_view否则 ILM 的 timing budget 不会注入 timing engine。# top-level 中启用 ILM flow read_ilm -name ilm_block_a -file ilm_block_a.ilm set_active_logic_view -name alv_top -ilm ilm_block_a # 验证 budget 是否生效 report_timing_budget -view alv_top -to [get_pins block_a/clk_out]set_active_logic_view创建一个 active view将 ILM 的 timing constraints 映射到 top-level context。若未执行report_timing_budget显示No budget found for pin。-to [get_pins block_a/clk_out]必须指定 block 的 output pin而非 internal pin。若指定block_a/u1/Z报Pin not in ILM interface。验证 budget 精度的关键步骤# 1. 报告 ILM 提供的 budget report_timing_budget -view alv_top -to [get_pins block_a/clk_out] -detail # 2. 报告实际 timing path report_timing -to [get_pins block_a/clk_out] -delay_type max # 3. 计算 budget margin expr {[get_value -of [report_timing_budget -view alv_top -to [get_pins block_a/clk_out] -format value]] - [get_value -of [report_timing -to [get_pins block_a/clk_out] -delay_type max -format value]]}若 margin 0说明 ILM budget 过于乐观需回 block 重新create_ilm并收紧 budget。6.3 Justify Budget Report读懂 budget 错位的根因代码justify_budget是 21.13 新增的 budget debug 命令输出justify_budget.rpt其核心是三列代码BUDGET_TYPE,BUDGET_VALUE,JUSTIFICATION。其中JUSTIFICATION字段是根因描述含 5 类标准代码CodeMeaningActionJUS_BUDGET_FROM_ILMBudget 来自 ILM未被 override检查 ILM creation 时的 budget scriptJUS_BUDGET_OVERRIDEBudget 被set_timing_budget覆盖搜索 design 中set_timing_budget命令JUS_BUDGET_DERIVEDBudget 由derive_timing_budget自动生成检查derive_timing_budget的-mode参数JUS_BUDGET_INVALIDBudget 值非法如负数修正 budget script 中的数值JUS_BUDGET_MISSING无 budget使用 default执行set_timing_budget或create_ilm例如justify_budget.rpt中一行BUDGET_TYPE: setup BUDGET_VALUE: 125.3 JUSTIFICATION: JUS_BUDGET_FROM_ILM表示 setup budget125.3ps来源是 ILM无需修改。若出现BUDGET_TYPE: hold BUDGET_VALUE: -8.2 JUSTIFICATION: JUS_BUDGET_INVALID则必须修正 ILM 的 budget script将 hold budget 设为正值。从那以后我每次create_ilm都强制走一遍check_cpfsource budget.tclreport_timing_budget三连验确保 ILM 在生成时就是 clean 的。因为 ILM 一旦写入 .本文还有配套的精品资源点击获取