美文网首页
目前最好用的芯片低功耗方法-Multi-bits registe

目前最好用的芯片低功耗方法-Multi-bits registe

作者: 飞奔的大虎 | 来源:发表于2024-01-02 12:30 被阅读0次

    目前芯片功耗的问题越来越突出,我们到底需要采用什么样的方法才能降低功耗,并且对我们的DUT改动最小呢?(人心贪婪啊,吃在碗里,看着锅里)。 不过真的有这么一种方法,不仅可以使的芯片功耗降低,而且对设计的改动几乎为0。你一定问是什么大招。不过了解之前稍微有点耐心让我慢慢给你道来。

    下面是一个SoC动态功耗(dynamic power)的分布图,图中可以清楚看到时钟树和寄存器CK pin上的动态功耗的总和占据了总动态功耗的51%。纳尼,居然占比有这么大。这时候,我想大家应该知道从哪里下手。是的,如果能找到一种方法使得时钟树动态功耗和寄存器CP pin上的动态功耗降低,那我们的目标就达成了。

    其实,无论是DC,RC,ICC都能供了一种叫做multi-bits register banking(翻译成中文太别扭了)的方法。这种方法其实非常容易理解,就是将原来的single bit register根据一些规则等价替换成为multi-bits register. 工程证明,这种方法不仅降低寄存器CK pin上的动态功耗,也能有效降低时钟树上的BUF个数,从而带来时钟树上功耗的节省。

    ingle bit(单比特) register VS dual bits(双比特) register

    下方图片就是我们平常所看的single bit register,而dual bit register就是将2个寄存器进行集成变成一个大std cell。这中从左边2个single bit register 替换成1个dual bits register的过程我们称之为banking或者mapping。

    如果它是一个scan flip-flop,那么dual bit register就会少一个SI和SE端口。这种端口的减少,可以给route congestion减少不少工作量哦。

    在时钟树上,发现buf的数目急剧下降。这就是时钟树和寄存器CK pin上动态功耗节省的奥秘哦。

    你可能会问dual bit 还有其他方面的优势吗?接下来我们来比比PPA(power performance area)

    AREALeakageCP Internal PowerCP rise CAPCP fall CAPTcq riseTcq fall

    DE1:MB/SB2.001.861.500.990.990.961.10

    DE2:MB/SB2.001.801.480.990.991.001.13

    上面表格中,我们可以得出下面的结论:

    1. 面积:dual bit 是single bit的2倍,所以在面积上没什么收益;

    2. Leakage power:dual bit 可以节省15%左右;

    3. CP Internal power:dual bit可以节省25%,这是因为dual bit的CP CAP和一个single bitflop相当,也就意味着负载电容减少了一半;

    4. Timing上,dual bit的timing 性能差了10%左右;

    IC设计,就是在不停的tradeoff。

    信息量太大了,让我歇歇。

    Multi-bits register 综合方法

    我们最好利用DCT flow,因为DCT flow是physical aware的。否则,综合工具只会对在同一个BUS上的的寄存器进行banking,这样导致的结果就是banking的比率非常的低。为了提高banking的比例,并且同时获得最好的timing效果,我们一般都用DCT flow.

    在整个流程中,我们需要额外提供2个文件,分别是mapping 文件和register group 文件。

    Mapping file

    Mapping文件如下所示。我们很少看到把多于4个single bit寄存器mapping 成个一个multi-bits寄存器,原因是因为太多的bit,会加剧route的congestion问题。

    2 {1 dff_2bitA} # 把2个single bit register mapping 成1个2-bits register

    3 {1 dff_2bitA} # 把3个single bit register mapping 成1个3-bits register

    4 {1 dff_4bitA} # 把4个single bit register mapping 成1个4-bits register

    register group file

    除了需要提供map 文件之外,还需要提供register group 文件,该文件的作用是指导DC工具只对相同类型的寄存器进行mapping,不相同类型的寄存器不做任何mapping替换。否则会导致功能上出错,如下面的group文件,dffx1 ddf2 dff4 这几种类型的可以banking在一起并且mapping成等价的dff_2bit或者dff_4bit. sdffx1 sddf2 sdff4 这几种类型的可以banking在一起并且mapping成等价的sdff_2bit或者sdff_4bit. 但是dffx1和sdffx1 是不能做任何banking,否则会导致功能的错误。

    reg_group_1 3 {dffx1 dffx2 dffx4} {dff_2bit dff_4bit}

    reg_group_2 3 {sdffx1 sdffx2 sdffx4} {sdff_2bit sdff_4bit}

    Multi-bits register 对SCAN影响

    采用multi-bits register 策略后,我们会发现scan path的长度(length)变得比之前更长了,但是好在后端工具可以做scan-reorder, 这样scan path的length还是在一个可以控制的范围之内。

    Multi-bits register 对Congestion的影响

    左图是一个普通的布局布线图,而右边是词啊用multi-bit register策略的布局布线图。可以看到左图有3处的congestion问题(红色圈的都是),而右图只有一处congestion问题。

    Multi-bits register 实验结果

    采用multi-bits register 策略后,面积减小2%,timing变差了7%,寄存器CK pin动态功耗降低24%,时钟树动态功耗降低15%。

    原文链接:https://www.sohu.com/a/141467613_485357?_trans_=000019_wzwza

    相关文章

      网友评论

          本文标题:目前最好用的芯片低功耗方法-Multi-bits registe

          本文链接:https://www.haomeiwen.com/subject/ptwqkdtx.html