数字后端之布图简介

有了正确和优化的网表,用户可以用布图工具将设计转化为它的物理形式。虽然布图是一个复杂的过程,但可归纳为如下三个基本步骤:

——布图规划

——时钟树插入

——布线

1 布图规划

这是整个布图过程中最为关键的一步。首先,对设计进行布图规划时为了满足时序要求的同事得到最小的面积。其次,进行布图规划将设计划分为易处理的模块。

广义上,布图规划包括单元和宏单元(如RAM和ROM或子模块)放置在恰当的位置。目的是减小连线RC延迟和布线电容,从而得到更快的设计。将单元和宏单元放置到恰当的位置也有助于得到最小的面积和减小布线拥塞。

时序驱动布局

找到单元和宏单元的正确位置是十分耗时的,因为每一通都需要全面的时序分析和验证。如果涉及不满足时序要求,则重新进行布图规划。这显然是一个耗时并常常失败的方法,为克服这种苦难,布局工具厂商引进了时序驱动布局的概念,通常称作时序驱动布图(TDL)。

TDL方法包括向布图工具前向标注DC生成的设计时序信息。在使用这种方法时,单元的物理布局应由时序约束指明。布图工具在布局单元时给时序以先后顺序,并尽力不违反路径约束。

DC使用如下命令生成SDF格式的时序约束:

除了上述的选项外,write_constraints命令还提供了更多的可选项,但使用-cover_design可选项则更普遍。-cover_design可选项使DC输出刚好足够的时序约束以覆盖设计中通过每一驱动负载引脚对的最差路径。

2 时钟插入

布图工具进行时钟树综合(CTS)。CTS在单元布局后立即进行,并且在这些单元的布线之前完成。布图工具由设计者的输入确定最佳的布局和时钟树的类型。一般地,要求设计者提供时钟树层数及每层所用的缓冲器的类型。显然,层数由时钟信号的扇出决定。

广义上,时钟树的层数与时钟树所用的门的驱动强度成反比。换言之,如果使用低强度的门,那么需要更多的层,而如果使用高驱动强度的门,则层数会减少。

为了使始终扭曲和时钟延迟最小,设计者会发现如下建议有用,而这些建议并不是一成不变的规则,设计者经常采用混合的技术去解决时钟问题。

——使用具有最小层数的平衡时钟树结构,尽量不要用过多的层数。层数越多,时钟延迟越大。

——在时钟树中,采用高驱动强度的缓冲器。这也有助于减少层数。

——为减小不同时钟域间的始终扭曲,尽力平衡层数和每个时钟树中使用的门。

时钟树到Design Compiler的转移

布图工具所做的时钟树综合修改了物理设计(在时钟网络中添加了单元),这个修改在DC原有的网表中并不存在。因此,用户有必要将这信息准确地转移到DC中。

3 布线

在时钟树插入之后,最后一步包括布线芯片。广义上,布线分为两个阶段:

——全局布线;

——详细布线。

第一个阶段称为全局布线,其中全局布线器为每一连线分配一条通过版图的通用路径。在全局布线中,版图表面被分成几个区域。全局布线器决定在版图表面通过每一区域的最短布线,并不布几何连线。

第二阶段称为详细布线。详细布线器利用全局布线收集的信息,在版图表面的每一区域几何布线。

必须注意的是,如果全局布线的运行时间很长(超过了布局的运行时间),则它表明布局的品质很差。在此情况下,应再次进行布局,重点应放在减少拥塞。

4. 提取

对于使用线载模型的综合和优化,都是基于统计估算的最终布线电容。由于线载模型的统计特性,与布线后设计的真实延迟值相比,它们可能完全不准确。线载模型与真是延迟值间的差异导致了一个非优化的设计。

提取版图数据库以生成进一步优化所需的延迟值。将这些值反标注到PT进行静态时序分析,然后通过DC进一步优化和改善设计。

完整的后端提取流程如图所示:

你可能感兴趣的:(数字后端之布图简介)