SDC命令详解:使用report_cell命令进行报告
相关阅读
SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm=1001.2014.3001.5482
目录
指定单元
指定不换行
指定连接信息
指定物理信息
指定详细信息
指定物理仅有单元
指定小数精度
报告中的属性含义
Multicorner-Multimode支持
report_cell命令可以报告设计中的单元信息,包括单元面积、单元属性、单元连接关系等(其实它并不是一个SDC命令,归为此类只是为了方便管理)。
本文针对Design Compiler,但该命令同样存在于PrimeTime、IC Compiler等工具中,它们大致相同,略有差别。report_cell命令的BNF范式(有关BNF范式,可以参考以往文章)为:
report_cell [cells] [-nosplit] [-connections] [-physical] [-verbose] [-only_physical] [-significant_digits digits] //注:该命令的选项和参数顺序任意指定单元
可以使用cells参数指定要报告的单元(可层次),如图1所示。如果未指定,将列出当前实例中的所有单元(非层次),如图2所示。默认报告的包括单元实例名、单元模块名、库名、面积、属性。对于列表而言,如果有多于一个对象,需要使用引号或大括号包围(对使用集合无效),关于列表和集合的区别,可以参考下面的博客。
SDC命令详解:使用集合(Collection)而不是字符串(String)/列表(List)作为命令参数https://chenzhang.blog.csdn.net/article/details/147144571
report_cell FA0/FA0图1 某个单元的报告
report_cell图2 当前实例的所有单元的报告
指定不换行
-nosplit选项用于指定报告不会自动换行,即使某个字段的信息超出了列的固定宽度。设计中的大部分信息都被组织成定宽的列(即每一列的宽度是固定的),如果某个字段的内容过长超出当前列的宽度,默认情况下,后面的字段会在下一行显示,并对齐到相应的列位置,如图3所示。如果使用了-nosplit选项,则后面的字段无法对齐,如图4所示,这样做的目的是方便软件从报告中提取信息。
report_cell FA0/FA*图3 未指定-nosplit选项的报告
report_cell FA0/FA* -nosplit图4 指定-nosplit选项的报告
指定连接信息
-connections选项用于指定报告单元所有引脚及其连接的网络,如图5所示。这改变了默认的报告信息。
report_cell FA0 -connections图5 某个单元的连接信息的报告
指定物理信息
-physical选项用于指定报告单元的物理位置和方向,DC不支持该选项,可以在ICC中使用。
指定详细信息
-verbose选项只能与-connections选项或-physical选项一起使用,使用它会让报告更加详细,如图6所示。
report_cell FA0 -connections -verbose图6 某个单元的连接信息的详细报告
指定物理仅有单元
-only_physical选项用于指定报告物理仅有单元(填充单元等)。
指定小数精度
-significant_digits选项用于指定单元信息的小数精度(可设置为0-13,默认为6)。
报告中的标记含义
报告中的单元标记有多种,它们的含义如下表所示(对于Design Compiler)。
| 标记名 | 含义 | 属性 |
| b | 该单元为黑盒,或者说unresolved | is_black_box为true |
| bo | 该单元允许边界优化 | boundary_optimization属性为true |
| BO | 该单元对应的设计允许边界优化 | boundary_optimization属性为true |
| c | 该单元是控制逻辑 | - |
| d | 该单元被设置了dont_touch属性 | dont_touch属性为true |
| h | 该单元是层次化的,即不是叶单元 | is_hierarchical属性为true |
| n | 该单元非纯组合逻辑 | is_sequential属性为true |
| r | 该单元可以被移除并使用更小的单元实现功能 | - |
| mo | 该单元是map_only的,不会在综合过程中进行逻辑级优化 | map_only属性为true |
| s | 该单元是可综合的操作符 | is_oper属性为true |
| S | 该单元是DesignWare组件 | - |
| u | 该单元包含未映射的逻辑 | is_unmapped为true |
| p | 该单元为参数化设计 | - |
| cg | 该单元为门控时钟单元(或其一部分) | clock_gating_logic属性为true |
Multicorner-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%257D&request_id=e3267dcc7cc26380435f53994dc8b9b8&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-149578771-null-null.nonecase&utm_term=MCMM&spm=1018.2226.3001.4450
