摘要:
本文介绍了一个1GHz四核龙芯3号微处理的物理实现。它是基于65nmCMOS工艺,芯片面积174平方毫米,包含4.25亿个晶体管。最大频率为1GHz,最大功耗为15W。
龙芯3A的物理实现受到多方面的因素制约:超大的规模、高频的要求、深亚微米工艺的影响以及紧张的设计时间要求。要满足这些需求,在设计方法学上采用了全层次化的ASIC流程结合IP的设计方法,并且采用全定制的方法设计宏单元,采用半定制的方法解决设计中时序或面积关键的模块。
在全层次化设计中,特别对于是大规模、高复杂度的设计,顶层设计至关重要。物理RTL、布局规划、设计完成检查(signoff)是龙芯3A的顶层实现中最有挑战的部分。物理RTL是龙芯3A设计实现中与众不同的部分,在逻辑到物理RTL的转换中实现了模块重组、手工优化时序、手工时钟门控等工作。为了提高布局质量,在布局设计时采用了互联驱动的方法。设计完成检查的最大问题是运行时间。为了解决这一问题实现中采用了三级设计完成检查的方法,在运行时间和精度上取得平衡。
用标准单元的办法实现1GHz高性能微处理器是非常困难的。在整体设计中,处理器核及交叉开关部分是设计难度最大的。所以把处理器核单独拿出来,采用IP的设计方法,同时在内部采用层次化的方法解决时序问题。对于触发器或关键逻辑采用基于单元的半定制方法。在交叉开关部分,长距离点对点连接部分的时序、面积问题最为突出。自动化设计方法很难实现,而晶体管级的全定制又耗时耗力,为此我们在实现中开发了点工具,并且利用所有层走同向线的方法很好的解决了面积和时序的问题。
在龙芯3A的设计中,共有21个时钟域,其中绝大部分要求不高,采用了自动工具统一生成的办法。对于高频的处理器时钟域则采用了分级设计的办法。把它分成:顶层时钟树,IP级时钟树及模块级时钟树。顶层及IP级时钟树采用了手工定制的方法,利用特别的时钟延迟单元平衡各级时钟树。在模块级则采用了自己开发的时钟树生成工具来实现时钟树分布。它集合了模块级时钟树设计的各种需求:寄存器聚类、时钟调度、细粒度的时钟门控、有效时钟偏斜的平衡及H树的时钟分布。这一设计方法比自动化工具能得到更好的时钟性能。在一个实际模块的时钟树效果比较中,我们的时钟树生成工具可以得到20ps的时钟偏斜,而自动商业化工具在100ps以上。
低功耗是龙芯3系列的一个重要特征。为了降低功耗,在龙芯3A的物理设计中采用一些低功耗的设计方法。其中包括:使用静态CMOS逻辑,动态频率调整,粗粒度和细粒度的时钟门控,使用多阈值的标准单元。
在高性能微处理器设计中,在片波动的影响越来越大。在龙芯3A的物理实现中,采用了一些方法来降低在片波动的影响。这些方法包括:使用相同工艺的单元库,规则的时钟分布,在设计完成检查时加入一定比例的时序退化值,使用去耦单元等。
在龙芯3A的物理实现中遇到了诸多挑战:超大规模、严格的时序约束、低功耗、小面积、在片波动的问题以及严格的完成时间要求。为了满足这些要求采用了一系列的新方法。这也使得这一芯片能够工作在1GHz,最大功耗在15W以内。我们未来的工作主要是实现一个更高频率的八核龙芯3。为了解决频率及面积的问题,一些新的方法将会被采用:时钟网格、自动时钟偏斜调整等。另外对于在片波动及低功耗设计方法的研究也在进行中。