论文部分内容阅读
时钟分布网络设计是高性能集成电路设计中最关键的步骤之一。时钟信号频率高,负载大,连线长,极大地影响着同步系统的性能。在基于标准单元的自动化设计中,时钟树综合与布线设计占据非常重要的地位。随集成电路制造工艺的发展,特征尺寸不断变小,时钟频率与电路功耗不断提高,各种连线上的寄生效应愈加显著,在这种情况下,时钟树布线算法达到时钟偏差、连线总长度和功耗的指标愈加困难。这对相关算法的研究工作提出了新的课题。
本文主要研究如何在时钟树布线时通过降低布线长度和利用门控单元来优化功耗,提出了能够部分嵌入到标准单元自动化设计流程内的优化算法,并将其应用于实际样例的时钟树布线设计之中。本文的主要创新点和贡献包括:
1.改进了基于给定偏差(PrescribedSkew)约束下的时钟布线算法。经过时钟偏差调度(ClockSkewScheduling)算法优化后,时钟结点往往附带偏差约束。在对这类设计进行时钟树布线时,由于需要同时考虑结点位置与延迟目标这对相互冲突的约束,传统的贪心法时钟树生成方式容易陷入极小值。对此,采用局部拓扑优化方案,通过对结点的合并策略进行修正,可以更为充分地优化时钟布线总长。实验结果表明,与原有的给定偏差布线算法结果相比,采用局部拓扑优化方案处理后的时钟树总电容可降低11%-29%,该算法还可以和时钟偏差调度算法结合,弥补因后者带来的时钟连线长度恶化。
2.改进了基于局部最小翻转电容(SwitchingCapacitance)合并策略的门控时钟布线(GatedClockRouting)算法。原有门控时钟布线算法在底层布线时未充分考虑门控单元对上层布线造成的影响,为弥补这一缺陷,在生成时钟树拓扑结构的同时,计算门控单元对上层时钟布线的附加代价,并将其反标给下一轮布线的相应结点上,迭代此步骤,通过模拟退火算法控制,对时钟树功耗进行优化。实验结果表明,在门控时钟组别随机分布的时钟结点集合中运行时,与原有的多种门控时钟布线方案相比,该算法可减小4%-23%的总翻转电容,有效降低时钟树功耗。
3.提出基于聚类(Clustering)的门控时钟布线算法。将物理位置分布相近,受同一门控单元控制的时钟结点视为一组聚类。针对实际设计中各种不同的门控分布,通过聚类参数的选择与区域划分,来调节聚类的规模与密度,可有效避免因不同门控的结点过早合并或相同门控远距离分布造成的冗余缓冲器或长连线。在每组聚类内部,还可以在合理的偏差容限下,采用最小直角Steiner树(MinimumRectilinearSteinerTree)算法构造时钟子树,进一步优化底层连线长度。实验结果表明,在给定的合理偏差容限下,与原有门控时钟布线算法相比,该算法可以减小3.1%-9.7%的时钟树翻转电容与12%-25%的门控时钟树连线,优化时钟树功耗。
4.建立面向连线长度和功耗优化的时钟树布线平台。该平台支持基于给定偏差的时钟布线以及基于聚类的门控时钟布线算法,可以部分嵌入到主流EDA工具中。使用该平台,将北大众志PKUnity863-2CPU系统芯片中的定点处理器UniCore32-Ⅱ进行时钟偏差调度后的结果作为测试样例,在合理的偏差容限下进行门控时钟树布线,与未进行偏差调度时相比,时钟频率提高了12%,连线长度减少了9.5%,而电路功耗仅恶化了7.9%。