相关阅读SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm1001.2014.3001.5482目录指定最大扇出负载值指定对象列表/集合Multicorner-Multimode支持简单使用写在最后set_max_fanout命令用于设置最大扇出负载设置了对象的max_fanout属性这是一种设计规则约束(Design Rule Constraint)Design Compiler在综合的门级优化阶段会尝试确保每个输入端口/输出引脚驱动的扇出负载总和不超过设置的最大扇出负载优先级高于优化约束(Optimization Constraint)即可能以时序违例为代价修复设计规则违例。在逻辑库中可以使用库属性default_fanout_load或库引脚属性fanout_load优先级高于库属性指定输入引脚的扇出负载对于输出端口可以使用set_fanout_load命令指定扇出负载默认情况下扇出负载为0使用库属性default_max_fanout或库引脚属性max_fanout优先级高于库属性指定输出引脚的最大扇出负载对于输入端口可以使用set_max_fanout命令指定最大扇出负载默认情况下最大扇出负载无穷大。需要注意的是set_max_fanout命令只能比库属性或库引脚属性更严格如果设置的值更宽松更大则会被忽略。如果想要移除最大扇出负载使用remove_attribute命令。本文针对Design Compiler但该命令同样存在于PrimeTime、IC Compiler等工具中它们大致相同略有差别。set_max_fanout命令的BNF范式有关BNF范式可以参考以往文章为set_max_fanout fanout_value object_list //注该命令的object_list参数一定要放在fanout_value参数后指定最大扇出负载值fanout_value是一个非负的扇出负载值它是一个无量纲数值不是电容也不是真实的扇出数量它是一种对有效扇出的表示。指定对象列表/集合指定一个列表/集合包含输入端口对象或设计对象影响设计中的所有输入端口和单元输出引脚需要注意的是无法直接指定某个单元引脚的最大扇出负载。对于列表而言如果有多于一个对象需要使用引号或大括号包围对使用集合无效关于列表和集合的区别可以参考下面的博客。SDC命令详解使用集合(Collection)而不是字符串(String)/列表(List)作为命令参数https://chenzhang.blog.csdn.net/article/details/147144571Multicorner-Multimode支持该命令仅对当前场景生效换句话说只能在当前场景设置最大扇出负载。关于场景的更多介绍可以参考下面的博客。Design Compiler多工艺角和多工作模式(Multicorner-Multimode, MCMM)https://blog.csdn.net/weixin_45791458/article/details/149578771?ops_request_misc%257B%2522request%255Fid%2522%253A%2522e3267dcc7cc26380435f53994dc8b9b8%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257Drequest_ide3267dcc7cc26380435f53994dc8b9b8biz_id0utm_mediumdistribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-149578771-null-null.nonecaseutm_termMCMMspm1018.2226.3001.4450简单使用以图1所示的电路图为例逻辑库中使用库属性default_fanout_load定义了扇出负载为1.0而库单元CLKBUFX1的输入引脚定义了库引脚属性fanout_load为1.5优先级更高逻辑库中使用库属性default_max_fanout定义了最大扇出负载为5而库单元CLKBUFX1的输出引脚定义了库引脚属性max_fanout为2优先级更高。图1 简单的例子考虑单元u1的输出引脚Y其驱动的扇出负载为1.5如果不使用set_fanout_load命令输出端口b的扇出负载为0小于其允许的最大扇出负载2也可以使用report_constraint -max_fanout命令查看此时设计的整体约束情况如图2所示。图2 最大扇出负载满足下面使用set_max_fanout命令设置设计的最大扇出负载为1.4此时对于输入端口a和单元输出引脚来说其需要满足的最大扇出负载变成了1.4。dc_shell set_max_fanout 1.4 [current_design]此时的整体约束情况如图3所示可以看出此时出现设计规则违例代价函数的值此时恰好为1.5-1.41.5-1.40.2。图3 最大扇出负载违例写在最后如果同时在输入端口对象和设计对象上设置了最大扇出负载Design Compiler在计算时会选择最严格的最大扇出负载。对于时钟信号等特殊信号其设计规则约束不会被检查具体可见下面的博客。Design Compiler时钟树等高扇出信号在综合时的特性文章浏览阅读1.7k次点赞61次收藏71次。本文讨论了在数字电路综合过程中对高扇出信号如时钟、复位、扫描使能信号的处理方法。重点分析了时钟树在综合阶段的特性由于综合工具不进行时钟树综合时钟路径被视为理想网络其DRC约束通常不被检查。文章比较了三种禁止缓冲器插入的方法set_dont_touch_network会报告DRC违例、set_ideal_network可能影响数据路径优化和推荐的set_auto_disable_drc_nets命令可完全禁止时钟路径的DRC检查。_长时钟树要避开drc的命令https://blog.csdn.net/weixin_45791458/article/details/154489915?ops_request_miscelastic_search_miscrequest_ide753ed6a1950984ee7d9bfa2a99ce736biz_id0utm_mediumdistribute.pc_search_result.none-task-blog-2~all~ElasticSearch~search_v2-1-154489915-null-null.541^v3^controlutm_term%E6%97%B6%E9%92%9F%E6%A0%91spm1018.2226.3001.4450