Multi-bit cells作为一种控制功耗的手段已经广泛应用于大量的芯片设计中,各种EDA工具中也提供了广泛而完善的支持。今天我们将对这种cell的基本构造和原理开始,带大家一起认识一下multi-bit cell。
首先,顾名思义,所谓multi-bit cell,就是同一个cell中包含多个逻辑位,也可以理解成把多个完全相同的cell合并在一个cell里。以DFF为例,single bit 和multi bit的逻辑关系一般如下(注:此处展示的均为scan DFF):
1-bit register vs 2-bit register
当然这种合并一般不会是单纯的把两个或更多的standard cell直接放在一起,而是晶体管级别的合并。在晶体管级别的版图设计过程中,会采用优化晶体管连接,晶体管共用等手段来节约面积。因此在很多数时候,multi-bit cell总是比single-bit cell的单位版图面积要小一些。也就是说,假设一个1-bit DFF的面积为
,那么一个2-bit DFF的面积一般会比
小一些,4-bit DFF的面积会比
小更多。
1-bit DFF layout vs 2-bit DFF layout
这种multi-bit结构会在功耗上带来的好处主要体现在一下几个方面:
1)clock pin capacitance减少从而降低clock switching power
下表列出了同种DFF不同bit的clock pin capacitance数值。从中可以看出,single-bit结构与multi-bit结构并未在clock pin cap上有明显差别,因此当design中有大量multi-bit DFF来替代single-bit DFF时,其时钟上整体的pin cap数值下降将是非常明显的。而基于我们对switching power的理解可知,cap越小switching power也会越小,这就会对时钟树上整体的动态功耗降低起到很好的作用。
pin cap comparison
2)时钟树buffer数量减少,降低switching和leakage power
由于multi-bit DFF中每个DFF的pin cap相对于single-bit DFF明显减小,在multi-bit design中一个相同的buffer可以驱动更多bit的DFF,从而显著减少时钟树上的buffer数量和面积,进一步降低时钟树上的功耗。
clock tree buffer count
3)时钟树绕线资源优化,有效减少时钟树寄生RC从而降低dynamic power
当design中的multi-bit DFF数量站据绝大多数的时候,相对于single-bit design来说,整体的DFF standard cell数量必然大幅下降,而且在很多时候DFF的摆放也可能会更加集中,这就会在时钟树上节约更多的绕线,进而减少整个时钟网络的绕线寄生RC。下图展示了一种典型的single-bit DFF与multi-bit DFF的绕线差异,可以看出右侧的绕线明显更少。通过这样的方式,时钟整体的寄生RC得到减少,从而降低功耗。
尽管multi-bit有以上诸多优点,但是在实际应用中并不总能得到最好的结果。其主要原因在于以下几个方面:
a) single-bit到multi-bit的转化有诸多条件限制,因此在很多时候会发现design实际的multi-bit cell比率不高,从而达不到想要的降低功耗的效果
b) multi-bit cell摆放的不合理可能会引起绕线资源紧张,甚至使timing恶化,反而会增加更多的组合逻辑的power从而抵消clock line上带来的功耗降低的效果
c) IR/EM方面的考虑可能会故意让multi-bit cell互相摆放的远一些,从而无法达到减少clock line寄生RC从而降低功耗的效果
网友评论