当前位置: 首页 > news >正文

SDC命令详解:使用set_max_fanout命令进行约束

相关阅读

SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm=1001.2014.3001.5482


目录

        指定最大扇出负载值

        指定对象列表/集合

        简单使用

        写在最后


        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_fanoutfanout_valueobject_list//注:该命令的object_list参数一定要放在fanout_value参数后    

指定最大扇出负载值

        fanout_value是一个非负的扇出负载值,它是一个无量纲数值,不是电容也不是真实的扇出数量,它是一种对有效扇出的表示。

指定对象列表/集合

        指定一个列表/集合,包含输入端口对象或设计对象(影响设计中的所有输入端口和单元输出引脚),需要注意的是,无法直接指定某个单元引脚的最大扇出负载。对于列表而言,如果有多于一个对象,需要使用引号或大括号包围(对使用集合无效),关于列表和集合的区别,可以参考下面的博客。

SDC命令详解:使用集合(Collection)而不是字符串(String)/列表(List)作为命令参数https://chenzhang.blog.csdn.net/article/details/147144571

简单使用

        以图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.4+1.5-1.4=0.2。

图3 最大扇出负载(违例) 

写在最后

        如果同时在输入端口对象和设计对象上设置了最大扇出负载,Design Compiler在计算时会选择最严格的最大扇出负载。

相关文章:

  • Python文件读取漏洞深度解析与防护指南
  • 强化学习入门:Gym实现CartPole随机智能体
  • 基于正点原子阿波罗F429开发板的LWIP应用(5)——TFTP在线升级功能
  • 算法题(162):火烧赤壁
  • 看板中“进行中”任务过多如何优化
  • 【数据结构】树形结构--二叉树(二)
  • 梯度下降:机器学习优化的核心算法
  • 互联网大厂Java求职面试:AI与大模型技术在企业知识库中的深度应用
  • Oracle-高频业务表的性能检查
  • 【技术笔记】AI Agent 项目 SUNA 部署:MSYS2 环境中 Python 版本从 3.12 降级至 3.11 的实操指南
  • React 第五十三节 Router中 useRouteError 的使用详解和案例分析
  • 70年使用权的IntelliJ IDEA Ultimate安装教程
  • [论文阅读] 人工智能+项目管理 | 当 PMBOK 遇见 AI:传统项目管理框架的破局之路
  • Git 安装全攻略Linux、macOS、Windows 与源码编译
  • 电子行业AI赋能软件开发经典案例——某金融软件公司
  • Authpf(OpenBSD)认证防火墙到ssh连接到SSH端口转发技术栈 与渗透网络安全的关联 (RED Team Technique )
  • 总结HTML中的文本标签
  • 智能标志桩图像监测装置如何守护地下电缆安全
  • Unity 单例模式完全指南
  • SQL Server 2025 预览版新功能
  • 建站工具cms/上海网络推广联盟
  • 网站开发设计中的收获/提高网站排名软件
  • 网站开发教学/手机建站平台
  • 长春做网站多少钱/2022十大热点事件及评析
  • 做logo有哪些网站/今日军事新闻最新消息
  • 湘潭网站建设出色磐石网络/系统优化