一种集成电路及方法与流程

文档序号:16135435发布日期:2018-12-01 00:54阅读:429来源:国知局
本申请主张在2017年03月27日提出的申请号为62/476,937的美国专利申请的优先权,其内容整体以引用方式并入本文中。本发明一般涉及数字集成电路(integratedcircuit,ic)设计,并且更具体而言,涉及使用自由金属段的时序收敛(timingclosure)技术。
背景技术
:除非此处另有说明外,本部分所描述的方法相对于下面列出的权利要求而言不是现有技术,并且通过本部分的引入不被承认是现有技术。对于数字和混合信号的集成电路设计,例如制作在一个或多个单片半导体基板上的超大规模集成(very-large-scaleintegrated,vlsi)电路或者系统的这些,必要的是,在时序逻辑门中满足时序要求或者约束,使得电路或者系统可以按照设计的预期进行工作。通常,时序要求可以包括各种建立时间、保持时间和跳变(例如,转换(slew)速率)标准,以在ic的时序逻辑门的输入端或者输出端处被满足。在当代ic设计流中,在ic的逻辑门被合成之后,时序要求在流的后续阶段被处理。专用软件工具通常被使用以检测ic设计内的所有时序要求是否均被满足。软件工具还可以细调或者微调设计以更正在设计内被发现的任何时序违例(timingviolation)(即“修复时序”或者“关闭时序”)。时序收敛工具或者软件所采用以修复保持时间违例(holdtimeviolation)的传统方法是在数据路径中插入一个或多个缓存器作为延迟,使得数据可以由ic的时序逻辑设备适当地获取或者锁定。然而,此方法易受到各种不利条件的影响,包括由于添加的缓存器而引起的增大面积和泄露功率,以及信号布线和重布线的潜在难度,尤其是在布线拥塞区域中。此外,由于在ic被制作或者处于操作状态时由工艺、电压或温度(process,voltage或temperature,pvt)参数改变而引起的缓存器的离散特性和延迟变化,所添加的延迟量可以是更少控制的或者可预测的。上述的传统方法的不利条件所引起的对ic的操作的负面影响可以是非常大的。例如,在大概具有200万逻辑实例的基准ic设计中,在ic设计流的时序修复阶段(timingfixingstage)处,可能需要增加大量接近5万缓存器,以使用传统方法修复ic的保持时间违例,导致了硅面积的5%增加。泄露功率的伴随增加也是非常大的。所添加的泄露功率对功率灵敏应用特别地不利,例如蜂窝电话机、平板电脑或者其他移动设备。技术实现要素:以下
发明内容仅是说明性的,不打算以任何方式加以限制。也就是说,以下
发明内容被提供以介绍此处所描述的新且非明显的技术的概念、重点、好处和优势。选择而不是所有的实施方式在下面的详细说明中进行进一步描述。因此,以下
发明内容不用于确定所要求主题的本质特征,也不用于确定所要求主题的范围。本发明的目的在于,提出解决方法或者方案,其解决上述传统方法的不利影响。在所提出的方案下,通过使得一个或多个自由金属段或者其他导电段以一个或多个补偿节(compensationstub)的形式附加到保持时间违例网上,ic的保持时间违例网或者电节点被提出。一个或多个补偿节中的每个可以贡献电节点处的额外延迟,以修复保持时间违例。在一方面中,具有自由段保持时间补偿的ic可以包括单片半导体基板,其上设置有第一设备和第二设备。另外,集成电路可以包括电节点,其电连接第一设备与第二设备。电节点可以包括一个或多个导电元件,其贡献电节点处的总电容,使得电节点处的总电容具有满足电节点处的保持时间要求的值。导电元件可以包括第一子集和第二子集。导电元件的第一子集可以形成将第一设备电耦接到第二设备的主接线。主接线可以具有连接到第一设备的输出端的第一端和连接到第二设备的输入端的第二端。导电元件的第二子集可以包括一个或多个补偿节。每个补偿节可以具有固定端和自由端。补偿节可以通过其固定端电耦接到电节点的主接线。补偿节的自由端不电耦接到除了电节点之外的ic的任何电节点。在另一方面中,本发明提出了一种方法,以用于将数字信号自ic的第一时序逻辑设备传导到ic的第二时序逻辑设备,并满足时序逻辑设备的输入端处的保持时间要求。本方法涉及第一时序逻辑设备,其生成可以具有至少一个逻辑跳变的数字信号。本方法也可涉及一个或多个延迟元件,其可以被放置在ic的第一时序逻辑设备与第二时序逻辑设备之间,用预设时间量的延迟,将数字信号自第一时序逻辑设备传导到ic的第二时序逻辑设备。延迟可以在数字信号达到第二时序逻辑设备的输入端时,使得数字信号的至少一个逻辑跳变符合保持时间要求。一个或多个延迟元件可以包括无源延迟元件,其包括导电主接线和至少一个导电补偿节。主接线可以将数字信号自第一时序逻辑设备传输到ic的第二时序逻辑设备。至少一个导电补偿节可以自主接线延伸,并结束在ic的金属层中,而无需连接到ic的有源设备。本发明的有益效果是:通过一个或多个导电元件,贡献电节点处的总电容,以修复保持时间违例,解决了传统方法的不利影响。附图说明下列附图用以提供本发明的进一步理解,并被纳入且构成本发明的一部分。这些附图说明了本发明的实施方式,并与说明书一起用以解释本发明的原理。为了清楚地说明本发明的概念,由于与实际实施方式中的尺寸相比,一些组件可以不按照比例被示出,这些附图无需按照比例绘制。图1是描述可以具有保持时间违例的示例ic的示意图。图2是描述示例ic及其短数据路径的示意图。图3是描述根据本发明实施方式的示例保持时间违例网和保持时间违例网周围的自由金属段的可用位置。图4是描述根据本发明实施方式的被应用到电节点的多个补偿节的示例布局的示意图。图5是描述根据本发明实施方式的使用自由段的保持时间补偿的示例流程。图6是描述根据本发明实施方式的图5的示例流程的数据流的示意图。图7是根据本发明实施方式的生成超角金属段延迟模型的示例流程的流程图。图8是描述根据本发明实施方式的所有场景保持时间预算的示例流程的示意图。图9是根据本发明实施方式的自由段提取的示例流程的示意图。图10是描述根据本发明实施方式的保持时间违例网周围处可用的示例自由段的示意图。图11是根据本发明实施方式的符合保持时间要求的ic内传输数据信号的示例流程的流程图。具体实施方式此处公开了所要求的主题名称的具体实施例和实施方式。然而,将理解的是,所公开的实施例和实施方式仅是可以以各种形式实施的所要求主题名称的示意性。然而,本发明可以以很多不同形式实施,且不应限制于此处所说明的示例性实施例和实施方式。相反,这些示例性实施例和实施方式被提供,使得对本领域技术人员而言,本发明的说明透彻且完整,并将完全覆盖本发明的范围。在下面的说明中,公知特征和技术的细节可以被省略以避免不必要地模糊所提出的实施例和实施方式。保持时间违例的概述如上所述,时序收敛优化了ic设计,以满足各种时序约束。例如,建立时间优化旨在实现目标工作频率,而保持时间修复或者补偿意在避免锁住来自于短路径的不正确数据(例如,双时钟)。不像建立时间违例,其可以通过降低频率来解决,硅芯片中的保持时间违例将对ic的操作不利。另外,由于随着半导体工艺技术趋向于更小特征尺寸而需要时序更准确,在ic设计流的早期阶段处执行的保持时间修复会在设计流的后期阶段处变得不够用。因此,保持时间补偿构成了设计流中的重要任务,并且通常作为时序收敛的最后步骤。在设计流的后期阶段中,电路将被合成,自动布局与布线(automaticplaceandroute,apr)将被执行,并且建立时间优化将已被应用,留下了有限且分散的空间以用于保持时间补偿。这使得修复或者补偿保持时间违例而不影响电路性能成为更具挑战性的任务。一种可能的保持时间违例可以如图1所示,其显示了根据本发明实施例的示例电路,即ic110。在图1中,ic110包括两个时序逻辑设备,即时序逻辑设备11和时序逻辑设备12,其可以使用典型的ic制作技术或者工艺而被制作在单片半导体基板上。时序逻辑设备可以是触发器(flip-flop)或者锁存器(latch),其通常用在数字或混合信号系统的状态机或者存储器电路中。具体地,图1中的时序逻辑设备11和时序逻辑设备12均是d触发器,每个具有输入端d和输出端q。时序逻辑设备11和时序逻辑设备12中的每个也具有接收时钟信号55的时钟端clk,其使d触发器11和d触发器12同步。ic110也包括“网”或者电节点13,其将d触发器11和d触发器12相互电连接或者耦接。在本发明中,术语“网”和术语“电节点”被交替使用。具体地,电节点13将d触发器11的q端连接到d触发器12的d端。从电路的角度来看,由于在ic110的操作期间,其将时变数据信号(即“数据”)自d触发器11的q端传输到d触发器12的d端的,网13可以被视为“数据路径”。需要满足数据和时钟信号的一些时序要求以使ic110按照其设计来正常工作,时序要求中的一个就是d触发器12的d端处的保持时间要求。如图1的时序图120所示,如ic110所示,在时钟路径53上达到d触发器12的clk端的时钟信号55可以具有一个或多个逻辑跳变,例如时钟波形550的正跳变或者正边沿ec1和正跳变或者正边沿ec3,以及负跳变或者负边沿ec2。正边沿被定义为电压自逻辑‘0’电平到逻辑‘1’电平的跳变,而负边沿被定义成电压自逻辑‘1’电平到逻辑‘0’电平的跳变。相似地,在由网13所形成的数据路径上达到d触发器12的d端的数据也具有一个或多个逻辑跳变,例如,数据波形331、数据波形332、数据波形333和数据波形334分别的正跳变或者正边沿ed1、正跳变或者正边沿ed2、正跳变或者正边沿ed3和正跳变或者正边沿ed4。d触发器12的d端处的保持时间要求要求数据跳变与时钟跳变之间的一定时间关系。也就是说,保持时间需要要求到达d触发器12的d端的数据的逻辑跳变或边沿(无论正或者负)(即“数据跳变”)和到达d触发器12的clk端的时钟信号55的逻辑跳变或者边沿(即“时钟跳变”)。具体地,假设d触发器12是正触发的触发器(例如,一旦正边沿达到其clk端,d触发器12进行操作,并且忽略达到其clk端的负边沿),保持时间要求必须要,紧接在d触发器12的正边沿到达之后(immediatelyafter),网13应在一定长度的时间窗口内具有不变的逻辑状态(即保持在逻辑‘1’或者逻辑‘0’处),这被称为“保持时间”并在时序图120中由thd标记。如果数据跳变在由两个阴影区域表示的保持时间窗口期间发生,则保持时间违例发生。数据波形331、数据波形332、数据波形333和数据波形334中的每个表示d触发器12的d端处由网13传导的数据信号的可能波形。波形331、波形332和波形334中的每个都满足网13处的保持时间要求,是因为数据跳变ed1、数据跳变ed2和数据跳变ed4中的每个都发生在由时序图120中thd标记的禁止保持时间窗口的外部。另一方面,由于数据跳变ed3发生在时钟跳变ec1之后的小于保持时间thd的时间长度处,波形333中存在保持时间违例,从而无法满足保持时间要求。由于数据跳变ed2发生在时钟跳变ec1之后的保持时间的结束(在时序图120中由数字551标记)之后,波形332具有正保持时间余量。由于数据跳变ed4大致发生在时钟跳变ec1之后的保持时间的结束551的同时,波形334具有零保持时间余量。由于数据跳变ed3发生在结束551之前,波形333具有负保持时间余量。保持时间余量通常以时间来进行测量,其由clk端处的保持时间的结束551与d端处的数据跳变(即ed2、ed3或者ed4)之间的时间差来表示。明显地,由于其无法满足保持时间要求,负保持时间余量在ic中是不允许的。本发明提出了一种新方法,以“修复保持时间”,使得保持时间余量可以自负值改变或者“补偿”到0或者正值,从而满足保持时间要求。通过将保持时间余量自负值补偿到0或者正值,以满足原本失败的保持时间要求的本时序收敛流程被称为“保持时间补偿”。在一些实施例中,d触发器12可以是负触发的触发器,(例如,一旦负边沿达到其clk端,d触发器12进行操作,并且忽视达到其clk端的正边沿),随后,保持时间要求必须要,紧接在d触发器12的clk端的负边沿到达之后(immediatelyafter),网13应在时间窗口(即“保持时间”)内具有不变的逻辑状态。需要注意的是,无需使两个时序逻辑设备接收相同的时钟信号以用于这两个时序逻辑设备进行同步操作,或者“时钟同步(clockedinsynchronization)”。只要其在其各自的clk端接收到的时钟信号在时间上彼此相关,两个时序逻辑设备就被认为是时钟同步的。例如,除以二时钟分频器(图1中示出)可以被放置在时钟路径53,以在进入时序逻辑设备12的clk端之前,使得时钟信号55在频率上除以二的因子。也就是说,由于提供了除以二时钟分频器,相比于时序逻辑设备11接收到的时钟信号而言,时序逻辑设备12将接收半速率的时钟信号。然而,由于在各自clk端处的接收到的时钟信号仍然是时间相关的,即均自时钟信号55推导出,时序逻辑设备11和时序逻辑设备12将仍然被认为是时钟同步的。实体上,网13包括ic的一个或多个导电元件。通常,使用不同种类材料的多层,其中一些层由导电材料制成,ic制作技术或者工艺实现ic。导电层可以包括金属层,例如,金属1层(即“m1层”)、金属2层(即“m2层”)、金属3层(即“m3层”)、金属4层(即“m4层”)、金属5层(即“m5层”)和金属6层(即“m6层”)。导电层也可以包括一个或多个多晶硅(polysilicon)层。使用导电层的任何组合,网13可以被实现。多层被放置在单片半导体基板,在其上,ic以一层层的方式被形成。也就是说,这些层被放置成:一个层在另一个的顶端上,一次一个层,并且基本相互平行且呈单片基板的主平面。基于所使用的具体ic制作技术,ic的导电元件可以包括放置在ic的一个或多个金属层上的一个或多个金属段,放置在一个或多个多晶硅层上的一个或多个多晶硅段和/或在ic制作技术中可用的其他导电材料。在网13在ic的多于一层上使用金属段和/或多晶硅段的情况中,通孔或者堆叠(stacked)通孔用于将各个金属段和/或多晶硅段电性连接在一起。通孔是两个相邻金属层和/或多晶硅层之间的电连接,而堆叠通孔包括在顶端相互堆叠的几个通孔,以形成ic的两个导电层之间的垂直电连接,其中一层是在另一层的至少两层上方或至少两层下方。例如,ic的m2层与m3层之间的单个通孔可足够将m2层上的金属段电连接到m3层上的金属段。另一方面,包括堆叠在垂直方向上的三个不同通孔(例如,m2层与m3层之间的第一通孔,m3层与m4层之间的第二通孔以及m4层与m5层之间的第三通孔)的堆叠通孔可以被需要以将m2层上的金属段电连接到m5层的金属段。使用延迟元件的保持时间补偿通过所谓的“延迟填充(delaypadding)”或者“缓存器插入”,也就是说,通过在短数据路径中添加延迟,保持时间违例可以被修复,或者“补偿”。短数据路径是ic中的数字信号的路径,在其上,承载在数据信号中的数据比时钟信号先达到,例如图1的波形333。例如,假设在数据达到d触发器12的d端时,图1的波形333表示网13上的数据。如上所述,保持时间要求不能被满足,并且因此网13是短数据路径,其需要用添加到网13上的一些延迟来修复。用添加到网13上的延迟,自d触发器11传导或者传输到d触发器12的数字信号可以被及时切换,从而不作为波形333,而作为波形334或者波形332达到d触发器12的输入端d,进而符合d触发器12的输入端d处的保持时间要求。在一些实施例中,例如图2的ic210,两个时序逻辑设备之间的短数据路径可以包括一个或多个组合逻辑门或者设备。如图2所示,ic210的数据路径23包括组合逻辑门31、组合逻辑门32和组合逻辑门33,以及电节点或网231、电节点或网232、电节点或网233和电节点或网234。达到图2的时序逻辑设备12的d端的数据信号可以具有图1的波形333,而到达图2的时序逻辑设备12的clk端的时钟信号可以具有图1的波形550。因此,图2的数据路径23可以构成ic210的短数据路径,并且保持时间违例可以在图2的时序逻辑设备12的d端处被观察到。同理于通过将一个或多个延迟元件添加到ic110的网13而图1的d触发器12的d端处的保持时间违例如何可以被修复,通过将一个或多个延迟元件添加到数据路径23的网231、网232、网233和网234中的一个或多个,图2的d触发器12的d端处的保持时间违例可以被修复。将延迟添加到短数据路径的方法之一是通过插入一个或多个有源延迟元件,例如串联连接的一个或多个逆变器和/或一个或多个缓存器,其在短数据路径中用作延迟元件。称为“有源延迟元件”(是因为延迟元件包括有源半导体设备,例如有源地消耗电流的晶体管),串联连接的逆变器和/或缓存器提供额外的传输延迟到向下传输短数据路径的数据或者数字信号。数据信号可以因而被延迟,并将不会比时钟信号达到下一阶段(例如图1的d触发器12)早很多。如上所述,仅使用诸如逆变器或者缓存器的有源延迟元件来修复保持时间违例,存在各种不利条件。具体地,有源延迟元件会占用很大硅面积,其在设计流的后续阶段尤其不足,并且也会导致更高功率泄露。从系统设计的角度来看,芯片尺寸(即ic所采用的硅面积)和功率消耗(即ic所消耗的电流)均是重要因素,特别是用于移动应用或者便携应用。缓存器也可能放大穿过不同pvt角(pvtcorner)的延迟变化,特别对于具有较小特征尺寸的高级技术节点。例如,对于28纳米或以下的半导体制作技术节点,插入的缓存器可能增大路径深度以及片上变化降额(derating)因子。此外,插入的缓存器可能以负面的方式影响金属可布线性(其导致不可预测的线延迟),以及设计的面积使用。有源延迟元件的另一重要不利条件是逆变器本质上提供离散的延迟量,使得很难修复较小保持时间违例,例如5ps或者10ps以下的这些。虽然通过串联连接的逆变器或者逆变器链,可以很容易提供更大延迟(例如,10–200ps或者以上),但是,对于逆变器而言,很难提供10ps或者以下的范围内的可靠延迟。然而,在当代vlsi电路或者系统中,5ps或者10ps以下的保持时间违例的实例很多,并且通常占所有保持时间违例的较大比例。通过单独地使用有源延迟元件来修复这些较小保持时间违例通常需要较大硅面积,以及在设计流的时序收敛阶段中,需要很多迭代。作为延迟元件的自由金属段通过用不涉及晶体管的无源延迟元件,补充或者替换有源延迟元件,可以减轻如上所述的通过单独地使用诸如缓存器或者逆变器而修复ic中的保持时间违例的不利条件。具体地,金属段的自由段(或者适当的导电段)可以被使用,作为无源延迟元件,其可以被添加到短数据路径。自由段是“自由的”是因为其没有额外的成本用在增加硅面积方面。例如,自由段可以被基于轨迹的虚拟填充所包容,或者直接自空布线空间提取。用于修复网的保持时间违例的金属段的自由段优选地位于物理上靠近此网的相邻区域。自由段,此处可互换称为“补偿节”,被附加到网上或者自网延伸,以贡献或者增加此网处的总电容,使得此网处的总电容具有满足此网处的保持时间要求的值,从而修复保持时间违例。例如,包括自由段的一个或多个补偿节可以被添加到图2的ic210的网234上,使得网234具有足够延迟网234上的数据的总电容。因此,当达到ic210的d触发器12的d端时,数据具有相对于达到d触发器12的clk端的波形550的时钟信号的波形331、波形332或者波形334的波形,而非图1的波形333,从而满足网234处的保持时间要求。在一些实施例中,通过将补偿节添加到ic210的网231、网231、网233和网234中的多于一个上,保持时间要求可以被满足。也就是说,需要减缓ic210的短数据路径23上的数据传输的额外的传输延迟可以被分布在数据路径23的多个网上。例如,为了修复d触发器12的d端处的保持时间违例,将需要添加200ff的电容到电节点234。然而,可用以被附加到电节点234作为补偿节的电节点234周围的自由金属段可以贡献小于所需的200ff,从而网234周围的可用的自由金属段本身不够修复保持时间违例。因此,通过额外地将一个或多个自由金属段作为补偿节附加到网231、网232和网233中的一个或多个,保持时间违例可以被修复,使得沿着数据路径23的各个网/电节点添加的所有补偿节可以一起贡献额外的传输延迟,其足够大以修复d触发器12的d端处的保持时间违例。相比于缓存器插入方法,根据本发明的修复保持时间违例的自由金属段方法具有很多优点。首先,金属段不会消耗泄露功率。其次,得到的延迟在不同的pvt角上相对稳定。第三,自由段不包括可能影响金属可布线性的问题。此外,短段的添加延迟是更可预测的。另外,自由段不会增加使用开销。图3示出了保持时间违例网(holdtimeviolatingnet)的示例布局,即ic的电节点(例如,图1的ic110的网13,或者图2的ic210的网231、网232、网233和网234中的任何),其将ic的第一时序逻辑设备(例如图1或图2的d触发器11)耦接到ic的第二时序逻辑设备(例如图1或图2的d触发器12),并在第二时序逻辑设备(例如图1或图2的d触发器12)的输入端处经受保持时间违例。另外,图3也示出了通过将自由金属段的补偿节附加到电节点或者网而如何修复保持时间违例。具体地,图3的布局310揭示了在附加自由金属端以修复保持时间违例之前,m2层和m3层的ic的金属使用。如布局310所示,使用包括金属段m23的ic的m2层,对保持时间违例网进行布线。布局310中也所示的是m2层的金属段m21、金属段m22、金属段m24和金属段m25以及m3层的金属段m31和金属段m32。段m21、段m22、段m24、段m25、段m31和段m32由ic的一个或多个其他网使用,一个或多个其他网从包括段m23的保持时间违例网电性去耦接。如图3所示,沿着多个虚拟m2轨迹trk2,m2层的金属段被布置在m2层的优选方向上。同样地,沿着多个虚拟m3轨迹trk3,m3层的金属段被布置在m3层的优选方向上。如上所述,ic制作工艺或者技术可以使用多个金属层。如果两个金属层中的一层是另一层的上方或下方的一层,两个金属层被认为是相互相邻的。例如,m2层可以具有两个相邻金属层,即m1和m3,m3层可以具有两个相邻金属层,即m2和m4。通常,对于用于制作ic的半导体制作工艺,ic的每个金属层(有时除了最底层之外)具有优选布线方向,沿着该优选布线方向,在各自金属层中的ic的金属段或者金属布线将被布置并实现。此外,金属的相邻层通常具有本质上相互正交的其各自的优选布线方向。例如,如图3所示,由m2轨迹trk2表示的m2层的优选布线方向本质上垂直于由m3轨迹trk3表示的m3层的优选布线方向。因此,如果存在ic中所使用的金属的7个层,则m2层、m4层和m6层将通常具有优选布线方向,其正交于m3层、m5层和m7层的优选布线方向。m1层,作为ic的最底层(即最靠近诸如晶体管的ic的有源设备的金属层),可能不具有特定的优选金属布线方向,并且m1层中的金属布线可以被布线在两个方向上。为了修复电节点(即保持时间违例网)处的保持时间违例,一个或多个补偿节,每个包括一个或多个自由金属段,可以被附加或者连接到图3的布局310的段m23处的保持时间违例网。每个补偿节将贡献补偿电容,作为保持时间违例网处的总电容的部分。总电容将具有满足电节点处的保持时间要求的值,从而修复保持时间违例。不用一个或多个补偿节所提供的补偿电容,电节点处的总电容的值将太低而不能减慢短数据路径,并且将不能满足电节点处的保持时间要求。在示意图320中,识别出了金属段m23周围的m2层和m3层上可用自由金属段的位置,其中6个被识别在m2层上(即自由段f21、自由段f22、自由段f23、自由段f24、自由段f25和自由段f26),4个被识别在m3层上(即自由段f31、自由段f32、自由段f33和自由段f34)。基于需要使得保持时间违例网处的总电容符合保持时间要求的补偿电容量,10个可用自由段中的一个或多个可被连接到金属段m23处的保持时间违例网,作为补偿节。图3的布局330显示了两个补偿节,即s2和s3,其在示意图320中所识别的可用自由段中被选择,并被连接到金属段m23。具体地,补偿节s2包括整体的自由段f23,而由于自由段f33的整体可能贡献比修复保持时间违例所需还要多的补偿电容,补偿节s3仅包括部分自由段f33。由于自由段f23和金属段m23均位于m2层上,通过在m2层的优选布线方向上延伸并相互接触,段f23和金属段m23被连接。也就是说,在使用自由金属段的保持时间补偿之后,金属段m23和补偿节s2本质上是布局330中多边形的单个连续m2片。这样,当被制作时,金属段m23和补偿节s2以m2层的一个连续片被实现,并且两者之间的连接是就地制作的。另一方面,如布局330所示,自由段f33位于m3层上,并且因此,由通孔v23所形成的电连接被需要以将补偿节s3连接到金属段m23。补偿节s2和补偿节s3中的每个可以被识别为具有一固定端和一自由端。固定端指的是补偿节的一端,其连接到保持时间违例网,自由端指的是补偿节的一端,其与固定端相对,并不与ic的另一电节点(除了固定端连接的保持时间违例网之外的)电耦接。如图3的示意图340所示,补偿节s2的固定端和自由端分别被标记为s2x和s2r,而补偿节s3的固定端和自由端分别被标记为s3x和s3r。补偿节s2可以被视为电耦接到金属段m23的第一接合位置(即接触补偿节s2的金属段m23的一端),第一接合位置与固定端s2x位于ic的同一金属层。事实上,补偿节s2的固定端s2x被就地连接到m2层上第一接合位置。同样地,补偿节s3也可以被视为电耦接到金属段m23的第二接合位置(即通孔v23连接到金属段s23的金属段s23的位置)。然而,金属段s23的第二接合位置位于m2层上,而补偿节s3的固定端s3x位于m3层上,m3层是m2层上方的一个金属层。因此,通孔v23用于将固定端s3x连接到第二接合位置。尽管图3的示意图320没有在除了m2层和m3层之外的金属层上显示可用自由金属段,但是在这些其他金属层上可以存在自由金属段,其适合用作补偿节并被连接到金属段m23以用于修复保持时间违例。例如,m1层上可以存在合适的自由金属段,并且m1层与m2层之间的通孔被需要以建立金属段m23与m1层上的补偿节之间的电连接。又例如,m5层上可以存在合适的自由金属段,并且m5层与m2层之间的堆叠通孔被需要以横穿m3层和m4层,并将m5层上的补偿节的固定端电耦接到m2层上的金属段m23的接合位置。基于所使用的半导体制作工艺,ic的金属层中的每个可以具有各自的最小线宽,或者wmin,其定义了各自金属层中所允许的金属布线的最小宽度。用于实现补偿节的自由金属段可以或者不可以具有等于各自金属层的wmin的物理宽度。例如,示意图320的自由段f21、自由段f22、自由段f23、自由段f24、自由段f25和自由段f26以及布局330的补偿节s2一般可以具有等于m2层的允许最小线宽的宽度。同理,示意图320的自由段f31、自由段f32、自由段f33和自由段f34以及布局330的补偿节s3一般可以具有等于m3层的允许最小线宽的宽度。然而,在一些实施例中,也可能的是,使用大于各自金属层的wmin的物理宽度的自由段,作为补偿节,尤其当更宽的自由段在布局中可用,且更高的补偿电容用于修复保持时间违例时。图4示出了耦接ic的d触发器11和d触发器12这两个d触发器的网43的示例布局,以及通过添加自由金属段作为补偿节而d触发器12的d端处的保持时间违例如何可以被修复。具体地,布局410示出了在修复保持时间违例之前的网43,而布局420示出了在修复保持时间违例之后的网43。在一些实施例中,ic可以具有6层金属,即m1–m6。如图4所示,网43具有多个导电元件,包括ic的m2层的金属段p21和金属段p22、ic的m3层的金属段p31以及分别将金属段p21和金属段p22连接到金属段p31的通孔v1和通孔v2。另外,如图4的布局420所示,多个导电元件还包括(m2层的)金属段s21、(m6层的)金属段s6、包括金属段s22a和金属段s22b的(m2层的)l型金属片s22、包括(m3层的)金属段s31和(m4层的)金属段s41的l型金属片s34、(m3层的)金属段s32和金属段s33、(m4层的)金属段s42、(m5层的)金属段s51、将金属段s6连接到金属段p31的堆叠通孔v3、将金属段s41连接到金属段s31的通孔v4,将金属段s32连接到金属段p22的通孔v5、连接金属段s32、金属段s42和金属段s51的堆叠通孔v6以及将金属段s42连接到金属段s32的通孔v7。图4的多个导电元件可以被分为两组或者两子集。如布局410所示,第一子集包括金属段p21、金属段p31和金属段p22以及通孔v1和通孔v2,其集体形成将d触发器11电耦接到d触发器12的主接线。主接线的布线(即主接线的每个金属段的位置和金属层)可以由apr设计工具或者软件确定,并且因此,主接线包括将d触发器11的q端连接到d触发器12的d端而无任何自由端或者松散端(looseend)的单个接线。也就是说,如布局410所示,网43的主接线具有连接到d触发器11的q端的第一端431和连接到d触发器12的d端的第二端432。是包括多个导电元件的第一子集的此主接线将数据或者数字信号自d触发器11的q端传输到d触发器12的d端。由于主接线是apr的结果,按照为单个金属层定义的其各自优选布线方向,第一子集的金属段被布线。例如,如图4的图例说明430所示,可以沿着优选方向pr246对ic的m2层、m4层和m6层进行布线,而同时如图4所示,可以沿着正交于优选方向pr246的优选方向pr35对ic的m3层和m5层进行布线。然而,仅用连接d触发器11和d触发器12的主接线,存在保持时间违例。也就是说,仅用连接d触发器11和d触发器12的主接线,不能满足d触发器12的d端处的保持时间要求。一个或多个补偿节将需要被添加到主接线上以修复保持时间违例。如图4的布局420所示,用由网43的多个导电元件的第二子集所实现的五个补偿节,这五个补偿节被附加到主接线上。第二子集包括金属段s21、金属段s6、金属段s22a、金属段s22b、金属段s31、金属段s41、金属段s32、金属段s42、金属段s51和金属段s33以及堆叠通孔v3、堆叠通孔v6、通孔v4、通孔v5和通孔v7。在这五个补偿节中,第一补偿节包括金属段s21;第二补偿节包括金属段s6;第三补偿节包括金属段s31、金属段s41和连接两个金属段的通孔v4;第四补偿节包括具有金属段s22a和金属段s22b的l型金属片s22;最后,第五补偿节包括树形金属片s35,其包括金属段s32、金属段s33、金属段s51、金属段s42、通孔v5、通孔v7和堆叠通孔v6。这五个补偿节中的每个具有固定端,通过使得固定端连接到主接线的接合位置而通过固定端将各自补偿节电耦接到主接线,以及自由端(注意的是:补偿节中的一个实际上具有两个自由端),其除了网43之外不电耦接到ic的任何网。也就是说,五个补偿节中的每个可以被视为自主接线的各自接合位置处延伸主接线,并结束在ic的金属层中,作为松散端(即自由端),而无需连接到ic的有源设备。例如,补偿节s21自通孔v1(即补偿节s21的主接线的接合位置)延伸,并结束在自由端s21r。补偿节s21的固定端是补偿节s21的一端,且与自由端s21r相对。补偿节s21的接合位置和补偿节s21的固定端位于ic的同一金属层(即m2层)。因此,补偿节s21的固定端被连接到m2层上原位的接合位置。同理于补偿节s21,补偿节s22的主接线的接合位置与补偿节s22的固定端也位于ic的相同层(即m2层)。如图4的布局420所示,l型补偿节s22具有固定端s22x和自由端s22r。补偿节s22的接合位置是金属段p22与补偿节s22的固定端s22x对接之处,并连接到m2层上原位的固定端s22x。补偿节s22的一个唯一特征是,其包括布线在m2层的非优选布线方向上(即图4中的方向pr35上)的金属段s22a。不像布线在m2层的优选布线方向pr246上的其他m2层金属段,即金属段p21、金属段s21、金属段p22和金属段s22b,金属段s22a被布线在pr35的方向上,即m2层的非优选布线方向。通常,布线在非优选布线方向上的金属段将不被apr设计工具允许,并且因此将不用于电节点的主接线。补偿节s22的另一唯一特征是,金属段s22b可能更宽于m2层的最小线宽,或者wmin。布局420中的所有其他金属段可以是处于各自金属层的最小线宽。布局420的补偿节s35是树形形状,其具有四个金属段:金属段s32、金属段s42、金属段s51和金属段s33。这四个金属段使用堆叠通孔v6和通孔相互连接,以形成补偿节s35。在补偿节s35的一端(即固定端),补偿节s35通过通孔v5连接到主接线的接合位置。补偿节s35的固定端,位于m3层上,是金属段s32与通孔v5对接(interface)之处。补偿节s35的主接线的接合位置,位于m2层,是通孔v5与金属段p22对接之处。补偿节s35的一个唯一特征是,补偿节s35具有两个自由端,即自由端s35r1和自由端s35r2。树形的补偿节s35结束在位于m3层上的自由端s35r1,也结束在位于m5层上的自由端s35r2。补偿节s35的主接线的接合位置和补偿节s35的固定端位于相邻的金属层(即m2层和m3层),并通过设置在两个相邻金属层之间的通孔v5而相互电耦接。注意的是,金属段s51,为m5金属段,被布线在m5层的非优选方向上。布局420的补偿节s6也具有自由端s6r和固定端(即对接堆叠通孔v3的金属段s6的一端)。也就是说,补偿节s6自主接线的接合位置(即堆叠通孔v3与金属段p31对接之处)处延伸,并结束在m6层的自由端s6r。通过通过位于接合位置处的堆叠通孔v3连接到主接线的固定端,补偿节s6电耦接到主接线。同理于补偿节s21和补偿节s22,补偿节s34的主接线的接合位置与补偿节s34的固定端(即对接金属段p31的金属段s31的一端)也位于ic的相同层(即m3层)。如图4的布局420所示,l型补偿节s34包括两个金属段,即m3层上的金属段s31和m4层上的金属段d41。补偿节s34也具有自由端s34r。补偿节s34的接合位置是金属段p31与补偿节s34对接之处,并被连接到m3层上原位补偿节s34的固定端。图4的布局420所示的补偿节均仅是示例性的,并不意味着穷举可基于本发明而实现的补偿节的可能场景。例如,补偿节可以包括相同层或不同层中的自由金属段,作为主接线的金属段。补偿节也可包括单个金属段,或者通过任何数量的通孔或者堆叠通孔相互电耦接并形成l型、树形形状、锯齿形或者任何其他分段线性拓扑的其他任何数量的自由段。然而,电节点的所有可能补偿节中的每个具有固定端,通过其,各自补偿节被电耦接到此电节点的主接线。另外,每个补偿节具有至少一个自由端,其结束在ic的一个或多个金属层,而无需连接到ic的有源设备,并且因此不电耦接到除了此电节点之外的任何电节点。在一些实施例中,图4的ic还可以包括插入在主接线的第一端431与d触发器11之间的一个或多个组合逻辑门。在一些实施例中,图4的ic还可以包括插入在主接线的第二端432与d触发器12之间的一个或多个组合逻辑门。也就是说,为了满足图2中的ic210的时序逻辑设备12的d端处的保持时间要求,ic210的网231、网232、网233和网234中的一个或多个可以包括像图4的布局410所示一个的主接线,以及如图4的布局420所示的一个或多个补偿节。如前面所述,无源延迟元件,即包括自由金属段的补偿节,可以是最适合用于更正或者修复低值的保持时间违例,例如,大概10ps或者以下的负保持时间余量。使用诸如逆变器的有源延迟元件,越大的保持时间违例(即具有越大的负保持时间余量)可以是越有效地被修复。因此,在一些实施例中,图4的网43还可以包括逆变器或者逆变器链,其与d触发器11与d触发器12之间的主接线串联电连接。在一些实施例中,补偿节可以包括一个或多个通孔或者堆叠通孔,而无需任何自由金属段。例如,补偿节可以仅包括图4的布局420的堆叠通孔v3(即自m3层到m6层的堆叠通孔),而无其金属段s6。也就是说,堆叠通孔v3本身可已贡献足够的电容到d触发器12的d端处的总电容,使得d触发器12的d端处的保持时间要求被满足。如上所述,在自由段方法中,金属段用作无源延迟元件,以修复保持时间违例。然而,也可行的是,使用ic的其他导电层的自由端作为无源延迟元件。例如,也可以单独地或者与自由金属段组合使用多晶硅的自由段,以修复网的保持时间违例。使用自由段的保持时间补偿的概述如图5的示例流程500所示,本发明提出了一种框架,以验证通过自由金属段分配的保持时间补偿,作为集成电路设计的时序收敛的最后一步。流程500可以包括如由步骤510、步骤520、步骤530、步骤540、步骤550、步骤560和步骤570中的一个或多个所表示的一个或多个操作、动作或者功能。基于实际的实施方式,虽然以离散步骤示出,但流程500的各种步骤可以被分割成额外步骤、被组合成更少步骤或者被消除。流程500可以始于步骤510。在步骤510中,基于特定于层的物理寄生,可以校准或构造金属与通孔延迟模型(称为“金属段延迟(metalsegmentdelay,msd)模型”),以记录每个金属层的单位长度金属段以及每种可能驱动强度的每种通孔和堆叠通孔的延迟(时间上的),其由ic中所使用的各种逻辑设备驱动。msd模型,与人工神经网络(artificialneuralnetwork,ann)方式一起建立,是“超角”模型,使得此模型的延迟信息能以统计上有意义的方式覆盖或者表示所有pvt工艺角。流程500可以自步骤510继续到步骤520。在步骤520中,使用用于ic的不同操作模式(例如,正常操作模式、测试模式、扫描模式和校准模式)的超级模型,执行保持时间预算,并将保持时间预算合并成覆盖或者表示所有场景(即所有pvt工艺角和电路操作模式)的单个保持时间预算集合。流程500可以自步骤520继续到步骤530。在步骤530中,自ic的整体布局提取未占用金属段(即自由金属段)。流程500可以自步骤530继续到步骤540。在步骤540中,将自由金属段分布或者分配为补偿节,其随后被附加到ic的短数据路径的网上以修复其保持时间违例。流网络可以被构造以捕获保持时间违例网中的每个与各自相邻金属段之间的关系。此流网络,通常在尺寸上较大,可以基于此流网络的接合点被减少并分割成子网络。随后,最小成本网络流可以被执行以获得自由段分布或者分配。流程500可以自步骤540继续到步骤550。在步骤550中,执行并报告ic的时序功率分析,以评估自由段分配的有效性。流程500可以自步骤550继续到步骤560。在步骤560中,比较来自于步骤550的时序功率分析的结果与来自于保持时间补偿的前一轮的时序与功率性能(即先前分配的性能)。在当前分配的性能相对于先前分配的性能(即更低功率和更少时间违例中至少一个)提高的情况中,流程500可以自步骤560继续到步骤540,以用于自由段分配的另一轮迭代。在当前分配的性能相对于先前分配的性能没有提高的情况中,流程500可以自步骤560继续到步骤570。在步骤570中,可以将前一轮迭代的自由段分配视为已优化分配,并且流程500可以结束于步骤570。图6示出了与图5的流程500相关的数据流600。如图6所示,四个信息片由流程500使用作为输入:设计布局601、技术文件602、标准单元库603和时序报告604。也就是说,给定一已放置与已布线设计(即设计布局601)、用于制作ic的半导体制作工艺的技术文件602、包括标准逻辑单元和ic中所使用的其他构建块以及当前设计的保持违例路径(作为时序报告604的部分),流程500将自由金属段分配给保持时间违例网,使得ic的保持时间违例的数量、硅面积和泄露功率中的一个或多个被最小化。具体地,流程500的步骤510可以将技术文件602、标准单元库603和时序报告604作为输入,以生成超角msd模型(supercornermsdmodel)610。另外,流程500的步骤510可以将标准单元库603和时序报告604作为输入,以生成所有场景保持时间预算620。所有场景保持时间预算表示,对于时序报告604中所示的每个短数据路径,多少保持时间余量需要被添加到已有保持时间余量或者自已有保持时间余量减去,使得包括建立时间要求、保持时间要求和跳变要求的时序要求可以在所有pvt工艺角和电路操作模式下被满足。此外,流程500的步骤530可以将设计布局601和技术文件602作为输入,以提取每个短数据路径的相邻区域中的可用自由段630(即对于构造补偿节而言可用自由段的位置,例如如图4的布局420中所示的那些)。用所构造的超角msd模型、所分配的所有场景保持时间预算620和所识别的可用自由段630,流程500的步骤540可将所有这三者均作为输入,并自可用自由段630选择或者分配一些自由段640,作为补偿节。通过查找超角msd模型610来选择,以找到合适的自由段,其可以贡献足够电容以使得短数据路径满足时序要求。最后,用添加到短数据路径的所选择的自由段640,流程500的步骤550可以执行全码片时序与功率分析。时序与功率分析的结果可以被保存为当前迭代的时序功率性能650,其后续由流程500的步骤560和步骤570使用,以确定当前迭代的所分配的自由段640是否可以或者不可以是已优化自由段分配,以用于修复ic的短数据路径的保持时间违例。结合图6的数据流600,下面将在本发明的后续部分讨论步骤510、步骤520、步骤530、步骤540、步骤550、步骤560和步骤570中的一些的具体细节。msd模型生成基于图6的技术文件602、标准单元库603和时序报告604,如图7所示,使用涉及一个或多个ann的方法,超角msd模型610可以被构造。一个或多个ann主要用于评估或者近似基于较大数量的输入的函数。通过ann处理一些数量的数据(称为“训练数据”),得到的msd模型可以被“训练”或者微调,使得msd模型变成能覆盖所有pvt角的所谓的“超级模型”。也就是说,具有此“超角”的保持时间补偿将自动确保保持时间补偿对所有其他pvt角有效。因此,时序收敛软件或者工具仅需要检测用于此超角的设计的时序约束,而不是逐个检测所有pvt角。在本发明的所提出方案下,为了通过ann训练msd模型,需要训练数据与各种查找表(look-uptable,lut)参数,各种查找表参数包括设备驱动强度、每个金属层的物理rc(即电阻和电容)寄生性、pvt角、网拓扑等。无论标准单元库中可用的特定设备类型如何,驱动强度(drivingstrength,ds)都是标准化的。设备的ds通常由ds速率表示,为1x,2x,4x,6x,8x等。无论物理特定设备类型如何,当驱动相同负载(例如,单位长度的m2层的金属片)时,具有相同ds速率的图6的标准单元库603中的所有设备具有相同数量的延迟。设计角对应于明确的工艺/电压/温度条件(包括内部设置,例如最小/最大rc)。基于关于角的时序报告,每个网的单位长度金属和通孔延迟值被计算。此外,各种网拓扑被考虑(例如,t1,t2,…,tm)。在训练之后,相同ds速率且具有相同网拓扑的所有设备将具有相同超角延迟模型(即图6的msd模型)。超角方法能将所有pvt角合并成一个超角,从而降低关于所有场景的检测时间。此外,当基于轨迹的虚拟填充被使用时,耦合效应被考虑。在流程500的后续部分中,超角msd模型将用作lut,其由自由段的金属层数、驱动单元的ds速率以及违例网的拓扑进行索引。图7的示意图710示出了上述的msd模型生成流程。对于每个ds速率,多个lut,例如lut71(1)、lut71(2)…和lut71(n),被馈入到ann72作为训练数据,一个lut用于每个pvt角。如图7所示,在-40℃温度、0.6v供应电压以及最慢rc(即相互连接)设置的pvt条件下,当由1xds速率的驱动设备驱动时,lut71(1)可以记录各种单位长度的金属段或者通孔的延迟信息。根据lut71(1),在此具体pvt条件下,当1xds速率设备驱动单位长度的m2段时,18ps延迟被引进。注意的是,对于每个金属层,具体单位长度可以被定义。相似地,在125℃温度、0.8v供应电压以及最快rc(即相互连接)设置的pvt条件下,当由1xds速率的驱动设备驱动时,lut71(2)可以记录单位长度的金属段或者通孔的延迟信息。根据lut71(2),在此具体pvt条件下,当1xds速率设备驱动单位长度的m5段时,6ps延迟被引进。通过lut参数的各种组合的总数,馈入到ann72的lut的总数被确定。使用软件工具,lut中的每个延迟值被特征化、校准或者模拟。如示意图710所示,总共存在n个不同的pvt角以用于每个ds速率。因此,用于具有1xds速率的设备的延迟信息由luts71(1)–71(n)表示,一个lut用于每个pvt角。ann72可以处理luts71(1)–71(n),并生成超角lut73(1)以用于所有1xds速率设备。假设标准单元库603包括具有m个不同ds速率的设备,如图7的示意图710所示,ann72可以处理(m乘以n)的总数的lut,并生成m个不同的超角lut73(1)–73(m),一个超角lut用于一个ds速率。超角lut73(1)–73(m)集体称为msd模型74,其称为如图6所示的数据流600中的超角msd模型610。所有场景保持时间预算不断缩小的制作技术与不断增长的设计复杂度已导致场景数量的爆发以用于时序收敛。场景数量等于电路操作模式的数量乘以pvt角的数量。不同于保持时间补偿的传统方法,其关注于每个场景,本发明采用保持时间预算之前的角降低且模式合并,以降低后续检测时间(即花费在检测场景中的每个的时间)。角优势(dominance)被使用以减少角,而使用团分隔(cliquepartitioning)以合并模式。也就是说,本发明提倡对所有场景可应用的保持时间预算,即“所有场景保持时间预算”在本发明所提出的方案下,为了满足跨设计的保持时间要求,用已减少的角和已合并的模式,保持时间预算被执行以确定哪些网应被添加延迟,以及这些网中的每个添加多少延迟。如图8所示,本发明采用向后-向前方案(即向后延时合并加上向前时序预算)。图8示出了向后-向前保持时间预算如何可以被应用到具有至少一个保持时间违例网的示例ic810。ic810具有三个时序逻辑设备,即时序逻辑设备81、时序逻辑设备82和时序逻辑设备83,以及三个组合逻辑设备,即组合逻辑设备84、组合逻辑设备85和组合逻辑设备86。设备85与设备83之间的网是网n3,设备86与设备82之间的网是网n2,连接设备84、设备85和设备86的网是网n1。ic810的时序报告(例如图6的数据流600所示的时序报告604)可以表示ic810的每个时序逻辑设备的输入端处的时序延时(timingslack)(即建立时间余量、保持时间余量和跳变余量)。例如,在所有场景时序预算被传导之前,时序报告可以显示网n3具有-6ps的保持时间余量,以及网n2具有-10ps保持时间余量。由于各自保持时间余量为负值,网n2和网n3均是保持时间违例网,其中各自网处的保持时间要求不被满足。此外,ic810的时序报告也表示网n2具有+20ps的建立延时和+10ps的跳变延时,以及网n3具有+30ps的建立延时和+20ps跳变延时。所有场景保持时间预算的目的在于,通过在ic810的某些网处添加额外的延迟,以将时序逻辑设备的输入端处的任何负保持时间延时改变或者补偿成0或者正值。预算可以始于在向后方向(即朝向数据路径的开端处)上执行最糟糕情况的时间延时合并。例如,如图8所示,网n3处的-6ps的保持时间延时和网n2处的-10ps的保持时间延时被合并在网n1处的-10ps。网n3处的+30ps的建立时间延时和网n2处的+20ps的建立时间延时被合并在网n1处的+20ps。由于其是网中的每个所固有的,跳变延时不被合并。用向后合并的时序延时,时序预算现在可以在向前方向(即朝向数据路径的末端)上被传导。例如,如图8所示,6ps延迟可以被预算在网n1处,期望补偿预算之前的网n3处的-6ps的保持时间延时。放置在网n1处的6ps延迟也可以帮助更正网n2处的-10ps保持时间延时的部分,将网n2处的保持时间延时自-10ps裁剪到-4ps。因此,4ps延迟后续可以被预算在网n2处,意在补偿网n2处剩余的-4ps保持时间延时。由于预算之前网n2处的-6ps保持时间延时应通过网n1处的6ps预算延迟而已经被补偿,没有延迟可以被需要以被预算给网n3。用已预算延迟,可以再次执行时序模拟,生成已更新时序报告。已更新时序报告可以显示,网n2和网n3中的每个处的保持时间余量已被补偿成按照计划的0ps的值。由于通过保持时间预算所添加的额外延迟可能同时影响沿着ic810的受影响的数据路径的建立余量和/或跳变余量,重要的是,检测已更新时序报告,并保证处于数据路径中的保持时间余量和跳变余量均仍足以满足相关时序要求。如图8所示,用已预算延迟,网n1、网n2和网n3的建立时间余量已分别下降到+15ps、+10ps和+25ps。另外,网n1、网n2和网n3的跳变余量已分别下降到+18ps、+2ps和+20ps。虽然网n1、网n2和网n3处的建立时间余量和跳变余量均受到用于修复保持时间违例的已预算延迟的不利影响,但是,其仍被保持为0或者正值,意味着尽管用更少余量,但建立时间要求和跳变要求仍然被满足。如由驱动网的驱动设备所指示,只要网处的总电容仍然在网的可用输出负载(availableoutputloading,aol)之内,网处的跳变要求就可以被满足,甚至用由于保持时间预算而添加的延迟。aol表示网处所允许的总电容的最大值,驱动设备能驱动其并在网处生成具有转换速率的输出数字信号,其转换速率后续与驱动设备的输入信号的转换速率相同。网处的总电容一般包括当前或已有线负载(currentorexistingwireloading,cwl)和下一阶段门电容(nextstagegatecapacitance,ngc)。在本发明所提出的方案下,使用包括一个或多个自由段的补偿节,添加到网以修复保持时间违例的每个延迟可以被实现。补偿节将补偿电容贡献到网处的总电容。为了保持网处的总电容处于最大所允许的阈值aol之内,需要的是,如下定义,补偿电容是处于剩余输入负载(remainingoutputloading,rol)之下:rol=aol–cwl–ngc。(1)也就是说,保持时间预算不被允许以在网处预算延迟,该延迟将通过具有高于网的rol的电容的补偿节而实现,或者网处的跳变要求可能失败。因此,对于如图8所示的保持时间预算,重要的是,已预算的延迟,即网n1处的6ps和网n2处的4ps,小于各自网n1和网n2的rol。例如,ic810的设备84可以在其输出(即网n1)处具有500ff的aol。也就是说,如果网n1处的总电容高于500ff(在超角中),设备84将不能传输具有与其输入(即网n0)处的数字信号的转换速率相同的转换速率的输出数字信号。另外,设备84可以具有200ff的cwl,其表示在由于保持时间预算而添加任何额外电容之前的网n1的线电容。此外,设备84和设备85中的每个可以具有130ff的输入门电容(即设备84和设备85中的每个的输入端处的电容)。根据如上等式(1),接下来的是,网n1的rol是500–220–(100+100)=80ff。应需要具有高于80ff的rol的电容的补偿节,以实现网n1处的已预算6ps的延迟,意味着6ps已预算延迟太多而不能被添加到网n1,并且不同的保持时间预算可能需要被寻求以修复ic810的保持时间违例。通常,在保持时间预算之后,建立时间要求或者跳变时间要求应不能被满足,另一轮的保持时间预算可能需要被传导以寻求不同集合的已预算延迟。由于用超角和合并的操作模式来传导上述的所有场景保持时间预算,在所有场景保持时间预设被传导之后,ic被期望满足用于所有pvt角和操作模式的保持时间要求。如下公开,使用在受影响的网附近可用的一个或多个自由段,已预算延迟后续可以被实现到ic中。自由段提取如图9所示,提出了ic的用于自由段提取(即图5的步骤530)的流程900。如下所述,流程900将设计布局(例如图6的设计布局601)作为输入,并且基于来自于用于制作ic的半导体制作工艺的技术文件的工艺信息,自设计布局提取可用自由段(例如图6的可用自由段630)。流程900可包括一个或多个操作、动作或者由步骤910、步骤920、步骤930和步骤940中一个或多个所表示的功能。基于实际的实施方式,虽然以离散步骤示出,但流程900的各种步骤可以被分割成额外步骤、被组合成更少步骤或者被消除。流程900可以始于步骤910。在步骤910中,根据技术文件中所描述的最小宽度和最小间距,构造层轨迹(即ic的层的轨迹)。流程900可以自步骤910继续到步骤920。在步骤920中,将已布局在设计布局中的所有已有金属段或者片排除在层轨迹之外。为了满足每个技术文件的最小间距约束,在排除之前,最小线间距的额外区域被附在每个已布线形状周围。偏离轨迹的已布线形状可能使得一些剩余段违反最小宽度约束;这些非法段也被排除。流程900可以自步骤920继续到步骤930。在步骤930中,也将排除用分配在设计布局中的通孔所覆盖的层轨迹的区域。根据技术文件,每个通孔的额外周围区域也被排除,以保证通孔间距。流程900可以自步骤930继续到步骤940。在步骤940中,还将排除用单元引脚所覆盖的层轨迹的区域。剩余部分是层轨迹的,其可用以用作自由段。在一些实施例中,越长的段还可以被分割成越短的段,以避免天线效应。最小金属对金属间距被保留在任何两个自由段之间。如步骤910、步骤920、步骤930和步骤940所述的操作可以由与ic设计流中所使用的物理设计流引擎集成的布尔引擎(booleanengine)执行。自由段分配自由段和保持时间违例的几个特征被观察到作为分配自由段以修复违例的基础:1)已在时序收敛的最后一步骤中提出,虽然保持时间违例一般很大且分散在设计周围,但是每个违例在延时值(即负保持时间余量的大小)上较小。2)保持时间违例网的布线可以跨过多层,这样存在多个选项以修复网的违例。3)在高级技术节点处,每层展现不同的物理寄生性。相比于相同尺寸的越高层金属的自由段而言,越低层金属的自由段通常贡献越大延迟。因此,位于越底金属层中的自由段越节省用于保持时间补偿的成本。4)在保持时间违例出现的本设计流的后续阶段中可用的自由金属段通常是分段且分布的,适合于修复较小保持时间违例(例如,9–10ps的这些),尽管其较大数量的示例,但是较小保持时间违例可以很容易被分割且处理。实际上,尽管可用自由段是较长的,但是其可以被分割成更短的片,以防止天线效应。基于上述观察,在本发明所提出的方案下,当分配自由段以形成补偿节时,可以使用几个优先权规则:(1)如果金属段在相同金属层中可用,作为保持时间违例网的主接线的接合位置,则相对于不同金属层中可用自由金属段,此金属段可以具有优先权以被使用在补偿节中。(2)如果金属段在不同于接合位置的层的多个层中可用,则由于相同尺寸的更底层金属通常比更高层上的金属贡献更大延迟,更底层上的自由段具有优先权以被分配。(3)在金属层内,可用的更短自由段可以具有优先权以被分配,使得更长自由段可以被分配以用于更短自由段不足以提供的更大延迟值。(4)相对于具有更少最差保持时间延时的另一短数据路径,具有最差保持时间延时(即具有更大负值的保持时间余量)的短数据路径可以具有优先权以被补偿。图10示出了六种示例自由段(即自由段10f11、自由段10f12、自由段10f21、自由段10f22、自由段10f31和自由段10f32),其在是ic的保持时间违例网的主接线的部分的m2段10m2周围可用。具体地,自由段10f11和自由段10f12位于m1层,自由段10f21和自由段10f22位于m2层,自由段10f31和自由段10f32位于m3层。基于上述的优先权规则,由于自由段10f21和自由段10f22与段10m2位于同一金属层(即m2层),相对于其余的自由段,自由段10f21和自由段10f22具有更高优先权以被选择或者分配给保持时间补偿节。另外,在自由段10f21和自由段10f22之间,由于自由段10f21在长度上比自由段10f22更短,自由段10f21具有更高优先权。在剩余四个自由段中,由于自由段10f11和自由段10f12位于m1层,且m1层比自由段10f31和自由段10f32所在的m3层更低,自由段10f11和自由段10f12比自由段10f31和自由段10f32具有更高优先权。另外,在自由段10f11和自由段10f12之间,由于自由段10f11在长度上比自由段10f12更短,自由段10f11具有更高优先权。同样地,在自由段10f31和自由段10f32之间,由于自由段10f31在长度上比自由段10f32更短,自由段10f31具有更高优先权。用所预算的额外延迟(即图5的流程500的步骤520)和所提取的可用自由段630(即流程500的步骤530),自由段分配(即流程500的步骤540)后续可以被传导。也就是说,基于所有场景保持时间预算620的额外延迟,可用自由段630中的一些可以被选择,以形成补偿节(例如图4的布局420中所示的那些)以用于保持时间违例网中的每个。由流程500的步骤510生成的超角msd模型610的lut用于选择正确长度或尺寸的自由段,其将产生如所有场景保持时间预算620所指示的额外延迟。上述的自由段分配的流程可以由如下示例示出:根据图8的所有场景保持时间预算,ic810的网n1被需要以添加6ps的额外延迟。假设ic810的网n1包括图10的金属段10m2(即m2段)。也假设图9的自由段提取表示,图10的自由段10f21、自由段10f22、自由段10f31和自由段10f32均可用以被使用以构造可以贡献所需6ps的一个或多个补偿节。还假设图8的驱动设备84具有1x的ds速率。因此,图7的msd模型74的超角lut73(1)可以被参考,并且使用具有适当金属长度的图10的自由段10f21、自由段10f22、自由段10f31和自由段10f32中的一个或多个构造补偿节。例如,通过简单地延伸金属段10m2以与自由金属段10f21合并,自由段10f21可以被使用作为可连接到金属段10m2的补偿节。显然,如图10所示,自由金属段10f21的全长度不被需要,是因为图7的lut73(1)表示单位长度的m2段将贡献15.2ps的延迟,而ic810的网n1处的所需额外延迟仅是6ps。如此,自由金属段10f21的部分,其大概0.4单位长度可以用作补偿节,如图10所示,通过延伸金属段10m2以连接位于自由金属段10f21处长0.4单位的m2金属的片,其可以给ic810的网n1贡献所需的6ps额外延迟。符合保持时间的信号传输图11示出了描述将ic内的数字信号自第一时序逻辑设备传输至第二时序逻辑设备的流程1100的流程图,符合第二时序逻辑设备的输入端处的保持时间需要。流程1100可以始于步骤1110。在步骤1110中,本流程可以涉及第一时序逻辑设备,其生成数字信号。数字信号可以具有至少一个逻辑跳变。例如,第一时序逻辑设备和第二时序逻辑设备可以分别是图1的d触发器11和d触发器12。数字信号可以是d触发器11所生成的数据,并具有至少一个逻辑跳变,自逻辑‘0’跳变到逻辑‘1’(例如如图1所示的波形333的边沿ed3),或者自逻辑‘1’跳变到逻辑‘0’(例如如图1所示的波形550的边沿ec2)。流程1100可以自步骤1110继续到步骤1120。在步骤1120中,本流程可以涉及一个或多个延迟元件,其用预设时间量的延迟,将数字信号自第一时序逻辑设备传导到第二时序逻辑设备。一个或多个延迟元件可以被放置在第一时序逻辑设备与第二时序逻辑设备之间。由于预设值的延迟,当数字信号达到第二时序逻辑设备的输入端时,至少一个逻辑跳变可以符合保持时间要求。例如,延迟元件可以是图1的网13,其连接d触发器11和d触发器12。网13可以用延迟将d触发器11所生成的数据传导到d触发器12。使用图1的时序图120中的波形作为示例。没有网13所提供的延迟,d触发器11所生成的数据可能达到d触发器12的d端,作为波形333,根据本发明前面部分中已解释的原因,违反了d触发器12的d端处的保持时间要求。然而,由于网13所提供的延迟,数据实际上可以达到d触发器12的d端,作为波形332。如图1所示,延迟使得数据的跳变自波形333的边沿ed3移动到波形332的边沿ed2,使得数据的跳变在时钟信号的边沿ec1之后的至少一个保持时间thd的量达到,从而通过具有正保持时间余量而符合保持时间要求。也就是说,网13提供预设时间量的延迟,预设时间量是图1的示意图120的边沿ed3与边沿ed2之间的时间差。也就是说,数据的跳变ed2比时钟跳变(即波形550的时钟信号的跳变ec1)晚d触发器12的至少一个保持时间(即保持时间thd)达到d触发器12。在一些实施例中,网13是无源延迟元件,其包括导电的主接线,例如如图4的布局410所示的网43的主接线。网43的主接线可以将数字信号自d触发器11的q端传输到d触发器12的d端。网13也包括至少一个导电补偿节,例如图4的布局420所示的那些。也如图4的布局420所示,每个导电的补偿节可以自主接线延伸,并结束在ic的一个或多个金属层中的一个,而无需连接到ic的有源设备。如上所述,导电的主接线和至少一个导电补偿节中的每个可以包括金属段、多晶硅段、通孔、堆叠通孔或者其任何组合。在一些实施例中,放置在第一时序逻辑设备与第二时序逻辑设备之间的一个或多个延迟元件也可以包括有源延迟元件(例如,逆变器或者串联连接的多个逆变器),其与无源延迟元件串联连接,并被位于在第一时序逻辑设备与第二时序逻辑设备之间。额外说明本文所描述的主题有时表示不同的组件,其包含在或者连接到其他不同的组件。可以理解的是,所描述的结构仅是示例,实际上可以由许多其他结构来实现,以实现相同的功能。从概念上讲,实现相同功能的组件的任何排列实际上是“相关联的”,以便实现所需的功能。因此,不论结构或中间部件,为实现特定的功能而组合的任何两个组件被视为“相互关联”,以实现所需的功能。同样地,任何两个相关联的组件被看作是相互“可操作连接”或“可操作耦接”,以实现特定功能,并且能相互关联的任何两个组件也被视为相互“可操作地耦合”以实现特定功能。可操作连接的具体例子包括但不限于物理可配对和/或物理上相互作用的组件,和/或无线可交互和/或无线上相互作用的组件,和/或逻辑上相互作用和/或逻辑上可交互的组件。此外,关于基本上任何复数和/或单数术语的使用,本领域的技术人员可以根据上下文和/或应用从复数转换为单数和/或从单数到复数。为清楚起见,本文明确规定了不同的单数/复数排列。此外,本领域的技术人员可以理解,通常,本发明所使用的术语和特别是权利要求中的属于,例如权利要求的主题,通常用作“开放”术语,例如,术语“包括”应解释为“包括但不限于,术语“有”应理解为“至少有”,术语“包括”应解释为“包括但不限于”等。本领域的技术人员可以进一步理解,若计划介绍特定数量的权利要求内容,将在权利要求内明确表示,并且,在没有这类内容时将不显示。例如,为帮助理解,下面权利要求可能包含短语“至少一个”和“一个或多个”,以介绍权利要求内容。然而,这些短语的使用不应理解为暗示使用不定冠词“a”或“an”介绍权利要求内容,而限制了任何特定的权利要求。甚至当相同的权利要求包括介绍性短语“一个或多个”或“至少有一个”,不定冠词,例如“a”或“an”,则应被解释为表示至少一个或者更多,对于用于介绍权利要求的明确描述的使用而言,同样成立。此外,即使明确引用特定数量的介绍性内容,本领域的技术人员可以认识到,这样的内容应被解释为表示所引用的数量,例如,没有其他修改的“两个引用”,意味着至少两个引用,或两个或两个以上的引用。此外,在使用类似于“a、b和c中的至少一个”的表述的情况下,通常如此表述是为了本领域的技术人员可以理解该表述,例如,“系统具有a、b和c中的至少一个”将包括但不限于单独具有a的系统,单独具有b的系统,单独具有c的系统,具有a和b的系统,具有a和c的系统,具有b和c的系统,和/或具有a、b和c的系统,等。本领域的技术人员进一步可理解,无论在说明书中、权利要求中或者附图中,由两个或两个以上的替代术语所表现的任何分隔的单词和/或短语应理解为,包括这些术语中的一个,其中一个,或者这两个术语的可能性。例如,“a或b”应理解为,“a”,或者“b”,或者“a和b”的可能性。从前述可知,为了说明目的,此处已描述了各种实施方案,并且在不偏离本发明的范围和精神的情况下,可以进行各种变形。因此,此处所公开的各种实施方式不用于限制,权利要求表示真实的范围和精神。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1