object定义
- 简单来说object实际上就是下图中的几中设计对象:
- design和cell可以相互转换,在TOP层级,可以认为ENCODER例化的U1是一个cell,在SOC层面可认为TOP是一个cell.
- design和cell存在相互转换,那么port/cell也存在相互转换
同名object处理
- 放5个单位的负载到SUM,一般是电容性负载
- 负载加到net、port的效果不同。若是加载到net上面,DC会将自己估算的负载值作废,使用人工设定的load值;若是加载到port上,那实际的load就是估算值和设定值的和。
获取期望的object
- 不同版本的dc对同名object的处理也许不同,推荐使用下图中get的方式明确指定操作对象:
- 上图中的*表示通配多个字符,?表示通配一个字符
object属性
集合操作
- 可以设置集合,下图中就是将所有以p开头的port设定为一个集合,使用句柄foo指向该集合
- 对已有集合进行操作:
- 筛选集合
- 第一个是筛选以AN开头的cell
- 第二个筛选没有被映射的cell
- 筛选出设定为dont_touch的cell
- 筛选出时钟周期小于10ns的时钟
- 对集合进行遍历:选出所有具有层级关系的cell给到cell指针,然后echo选中的集合元素
- list一般是设计人员定的通set定义的,collection是DC根据我们的命令从design中选出的集合。