标准单元库的选择非常重要,选择一套适合的库,对于芯片时序收敛,物理收敛,以及最终芯片的PPA(performance Power Area)都非常重要。
有时候,我们会有不同高度的单元库可供选择。单元库的高度是按照track来区分的。所谓7T,9T,12T,其实指的是这些库中标准单元的高度是7个track,9个track,12个track。
那么我们怎么来判断我们的design使用何种高度的单元库?
我们经常会有一个误区,就是在进行面积评估的时候,哪种综合出来的面积小,我们就使用哪种单元库。
这样的评估方法的缺陷在于,如果只考虑综合的结果,比较矮的单元库往往能够胜出。综合出来的面积小,但这其实是个假象。
比如,我们考虑一个design,其问题在于绕线,也就是说,芯片的面积是由绕线所决定的。采用矮的stdcell,并不能使绕线的复杂度减低。因为需要连接的pin的数目并没有降低。
而从lvt的比例的角度,矮的单元库由于驱动能力较弱,必然也会使得lvt比例
有所升高。所以如果leakage非常关键的design,采用过于矮的单元库,需要谨慎考虑。
还有一个需要注意的点,对于这种绕线limit的芯片来说,采用矮的stdcell,由于芯片面积无法减小,所以row的个数是会增加,这样,考虑到power打孔的资源占用,对于绕线并不友好。
那么什么时候需要选用比较矮的标准单元呢?一般来说,形状比较方正,绕线比较容易,同时时序不太紧的情况下,可以考虑比较矮的标准单元。这种情况下可以带来面积以及功耗的降低。
一个比较实用的方法就是,根据以往类似的design进行分析,如果最后实用的cell的驱动能力有很大比例都是最弱的那种,比如X1,X1.5等,这种情况下,就可以考虑采用更矮的单元库。