DC中wire_load_model与wire_load_mode

说起wire load model,IC设计EDA流程工程师就会想到DC的两种工具模式:线负载模式(wire load mode)和拓扑模式(topographicalmode)。为什么基本所有深亚微米项目都使用拓扑模式而不是wireload模式?现在还有必要了解wire load model么?其实wire load model是十分经典基础的模型,除了DC,许多EDA工具依然采用这一模型,了解这一模型,对理解多种工具的工作原理和使用都有帮助。

一 、什么是wire load model?
线性负载模型是由半导体工艺厂商根据自身工艺特点开发的,该模型包含单位长度面积因子、电容、电阻和一个扇出与线长查找表。在RTL代码综合阶段进行静态时序分析时,工艺库里面提供了标准单元的延时和功耗信息,但是互联线仍没有物理信息,这时就通过线负载模型来估算物理实现后的线负载大小,这种模型简单来说就是根据扇出预估连线长度,再根据连线长度来进行线上电阻、电容和面积等参数预估。图1为工艺库中截选的两个wire loadmodel,名字分别为w120,和w140。

   一条扇出为3的互联线,使用w120模型计算方法如下:
   互联线长度= 扇出1对应的互联线长度+(3-1)x slope = 133.334+(3-1)x133.334         
   互联线电容 = 互联线长度 x 互联线单位电容值= 1.5e-4 x互联线长度         
   互联线电阻 = 互联线长度 x 互联线单位电阻值= 8.5e-4 x 互联线长度         
   互联线面积 = 互联线长度 x 互联线单位长度面积值= 0.7 x 互联线长度

二 、wire load model和wire load mode的辨析与应用
Wireload model是线负载模型,wire load mode是为跨层次互联线选择线负载模型的方法。对于多层次设计,注意不同层次的子设计可以与父设计有不同线负载模型,这时除了需要决定某一层次采用何种wire load model,还需要确定对跨越不同层次的net采用何种wire load model。Wire load mode共有三种:TOP、enclosed 和segmented,图2给出了三种模式比较示意,design A和design B间的互联线,在top模式下,选用50x50 model;在enclosed模式下,选用40x40 model;在segmented模式下,分段选用model。

在这里插入图片描述

      综合人员可以使用set_wire_load_mode 命令明确声明使用何种模式;可以通过命令set_wire_load_model命令明确声明了综合过程使用的线性负载模型。如果综合人员没有声明,那么DC会到逻辑库中寻找,如果该逻辑库支持自动根据面积来选择线性负载模型,那么DC采用这种自动匹配方式 (可以通过设置变量auto_wire_load_selection值为false来关闭模型的自动选择功能),如果逻辑库不支持该方式,那么DC根据逻辑库中的默认参数default_wire_load_model和default_wire_load_mode来设置。

三 、wire load model的局限性与克服方法
wire load model这种通过扇出来估算线上参数的方法,只要连接数目确定,那么预估的互联线上的物理参数就确定了。图3 给出了下这种方法预估时遇到的问题。线1和线2 扇出相同,但线长其实差距很大,这样线上延时和功耗差距其实很大,但是wire load model给出的结果却是相同的。

在这里插入图片描述

面对这种问题,怎么办呢?精确性要求高的时序收敛。不再采用wire load mode,比如DC 就推出了拓扑模式;精确度要求不那么严格的、辅助性的分析工具,则可采用反推wire load model的方法,比如Synopsys公司的SpyGlass Power,一款用来预估功耗和分析功耗的工具,就是从.v网表和.spef (后端给出的包含物理参数的文件)中,反推wire load model,然后再采用上文提到的第三种模式segment mode来对跨层互联应用wireload model,以此达到校准效果,提升精确性。

四、小结
Wireload model是根据扇出预估连线长度,再根据连线长度来进行参数预估的。在特征尺寸比较大的时代,单元延时占主要部分,那么wire load model得到很好的应用;而在深亚微米设计中,互联寄生对路径延时的影响越发主要,这时wire load model的局限性需要设法克服。因而DC 使用了拓扑模式,拓扑模式是根据初步布局或者手动添加一些布局规划命令约束,从而使DC能够更精淮的预估线上延时。

<think>好的,用户想了解如何在Design Compiler中使用set_active_scenarios命令。首先,我需要回忆一下这个命令的基本用法和常见应用场景。记得set_active_scenarios用于设置当前活动的场景,这在多场景优化中很常见。可能需要结合SDC文件中的不同约束条件来管理不同模式,比如功能模式、测试模式或低功耗模式。 接下来,我应该检查用户提供的引用内容。引用1提到了set_wire_load_model,引用2是compile_preserve_subdesign_interfaces,引用3是关于移除CUDA Toolkit的命令。看起来这些引用可能多场景设置关系不大,但需要确认是否有相关的隐藏联系。比如,是否在设置不同场景时需要调整线负载模型或子设计接口的保留设置? 然后,考虑用户可能的实际需求。用户可能在进行多模式编译,例如同时优化芯片的性能和功耗,或者处理不同电压条件下的时序收敛。需要解释set_active_scenarios的基本语法,比如如何指定场景名称列表,以及如何结合read_scenario和compile命令使用。 还要注意用户提到的设计编译器(Design Compiler)是Synopsys的工具,所以需要确保语法和示例符合该工具的规范。例如,正确的命令格式是否包括大括号或引号,是否需要提前定义场景等。 可能用户遇到的问题包括:如何正确激活多个场景,编译时如何应用这些场景,以及常见错误处理。需要给出具体的示例步骤,比如创建场景文件、读取场景、设置活动场景,然后编译。同时,提醒用户注意事项,比如场景名称的正确性、场景定义的完整性以及编译后的结果验证。 最后,生成相关问题时要围绕多场景设置的其他命令、调试技巧、优化目标的结合,以及其他工具流程的整合。确保问题对用户进一步学习有帮助,并覆盖可能的扩展需求。</think>### 如何在Design Compiler中使用`set_active_scenarios`命令 `set_active_scenarios`是Synopsys Design Compiler(DC)中用于多场景优化的关键命令,通过激活特定场景以支持不同约束条件下的综合优化。以下是分步说明: --- #### **1. 命令功能** - **作用**:在多场景模式下,指定当前需要优化的场景集合。例如同时优化芯片的**性能模式**(performance mode)和**低功耗模式**(low-power mode)[^2]。 - **典型应用**:时序收敛、功耗优化、多电压域设计。 --- #### **2. 基本语法** ```tcl set_active_scenarios {scenario_name1 scenario_name2 ...} ``` - **参数**:场景名称列表(需提前通过`read_scenario`或`create_scenario`定义) - **示例**: ```tcl # 定义场景 create_scenario func_mode read_sdc func_mode.sdc create_scenario test_mode read_sdc test_mode.sdc # 激活双场景 set_active_scenarios {func_mode test_mode} ``` --- #### **3. 操作流程** 1. **定义场景**:为不同模式创建独立约束(如SDC文件) ```tcl create_scenario high_speed read_sdc -scenario high_speed high_speed_constraints.sdc ``` 2. **激活场景**: ```tcl set_active_scenarios {high_speed low_power} ``` 3. **编译优化**: ```tcl compile_ultra -scan ``` --- #### **4. 注意事项** - **场景一致性**:确保所有激活场景的约束文件(SDC)已正确定义,包括时钟、电压域、工作条件等。 - **编译策略**:多场景优化可能增加编译时间,建议结合`set_scenario_options`调整优化优先级[^1]。 - **结果验证**:使用`report_scenarios`检查场景激活状态,通过`report_timing -scenario`验证时序。 --- #### **5. 典型报错解决** - **错误**:`Error: Scenario 'xxx' not found. (UID-123)` - **原因**:场景未正确定义或名称拼写错误 - **解决**:检查`create_scenario`或`read_scenario`的执行顺序 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值