随着技术的发展,半导体的几何尺寸越来越小。在旧工艺制程中,例如在0.35um或以上的工艺,逻辑单元门的延迟在设计的时序路径延迟中,占了很大的比例,而连线的延迟只占了整个时序延迟的很小比例。因此,人们在设计工具和提出方法论时把重点主要放在了最小化单元门的延迟。然而,随着工艺制程技术的进步,单元门的延迟降低了,同时连线的延迟则增加了。随着更新工艺制程技术的出现,我们需要新的工具和新的方法来尽量减少连线的延迟。再用线负载模型就很不精确了。
1、逻辑综合的问题
逻辑综合的输入包括RTL代码,设计的约束和综合库。综合库由半导体厂商提供,它一般用非线性模型来计算门单元的延迟,用线负载模型来计算连线的延迟。工艺库的线负载模型是统计的结果,即在一个给定的模块中,它根据连线的扇出,计算连线的长度和延迟。用线负载模型计算连线的长度和延迟,并不考虑连线以及相连接的单元在版图中的位置,因此在超深亚微米的工艺中,是很不精确的。例如,有两组逻辑完全相等的逻辑,他们将来的布局可以很不相同,但是DC在综合的时候根据线负载模型,连线的长度和延迟是完全一样的。见图1
图1
而布线后的连线长度和延迟则可能有很大的差别
所以,使用线负载模型,根据连线的扇出计算连线的延迟在超深亚微米工艺是很不精确的。
在做版图设计时,是根据布线的结构来计算连线的延迟。这时候,连线的延迟再也不是估计的结果,而是按照连线经过某金属层(layer)的长度,布线穿孔(via)以及金属的电介参数等等来计算连线的延迟。同样扇出的连线在版图中延迟可能会有很大的差别。
因此,当连线的延迟在时序路径的总延迟中占较大的比例时,再用线负载模型来估算连线的延迟是很不准确和不恰当的。再DC中用线负载模型计算出的关键路径(critical path),在版图设计中,可能已经变成了非关键路径。而原来的非关键路径则变为关键路径。时序要求高的设计,要做到时序收敛,就变得相当困难。
在编写RTL时,我们通常并没有把物理设计(physical design)的信息包括在其中。例如,如果设计中包含RAM宏单元,在RTL代码中,常用例化的方法是描述它们和电路其他部分的连接关系以及它们自己之间的连接关系,RTL代码并不包含它们在芯片中的位置。根据RTL代码,我们并不知道RAM是摆放在芯片的右下角还是摆放在芯片的中间等位置。
2、物理综合的基本流程
当做完布局(placement)后,用已做完的整体布线(global routing)的结果来计算连线延迟时,布局后的连线延迟和做完详细布线(detail routing)后的连线延迟已经很接近,它们之间的误差很小。
整体布线包括下面步骤:
· 连接每条连线
· 把连线的线段指派到金属层上
· 提供初步的布线拓扑结构
· 提供拥塞区域的信息
由此可见,当设计做完物理布局后,根据布局后的单元位置来计算连线的延迟,时序结果与实际版图的时序结果已经很接近。物理布局是计算连线延迟精准度的关键。
物理综合的目的就是在设计流程的早期就提取出芯片的物理效应,以此减少由于实际延迟(做完版图后测量到的延迟)和估算延迟(逻辑综合时用线负载模型计算出的延时)之间的误差所产生的时序错误。使用物理综合,可以使设计能更快地满足时序的收敛,并使得设计的结果更可预测。