之前整理的multibit文章 (低功耗——Multibit)留有遗留问题,为什么要debanking?
解释之前需要了解为什么要做multibit以及做multibit的条件:
为什么要做multibit:
1,优化面积,共用一些管子,在晶体管级优化layout 的面积
2,减小total clock tree net length,sinks减少了,clock tree length自然就减少了,clock net cap减小
3,减小clock tree buffers 的数量,降低power。因为共用了CP端,所以会减少很多clock buffers 的使用
两个或多个reg做bank 的条件:
1,同一种cell 类型
2,Driven by the same clock and the same common control logic
3,没有设置dontouch 或者size only属性
4,没有在common pin上或者clock pin上设置有timing exceptions(包含path group)
5,multibit cell 必须在target lib 中有定义的
弊端:
bank 之后的cell area较大不利于leaglize,对opt timing也有不利影响,所以一般会在优化timing 的时候(timing driven true) 会进行多次的banking 和debanking,最终达到一个最有PPR。