CN101322127A - 时钟树调谐填补单元和填补单元调谐方法 - Google Patents

时钟树调谐填补单元和填补单元调谐方法 Download PDF

Info

Publication number
CN101322127A
CN101322127A CNA2004800106458A CN200480010645A CN101322127A CN 101322127 A CN101322127 A CN 101322127A CN A2004800106458 A CNA2004800106458 A CN A2004800106458A CN 200480010645 A CN200480010645 A CN 200480010645A CN 101322127 A CN101322127 A CN 101322127A
Authority
CN
China
Prior art keywords
shim
library
integrated circuit
design
clock
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2004800106458A
Other languages
English (en)
Other versions
CN101322127B (zh
Inventor
詹姆斯·E·曼德里
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Altera Corp
TimeLab Corp
Original Assignee
Altera Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Altera Corp filed Critical Altera Corp
Publication of CN101322127A publication Critical patent/CN101322127A/zh
Application granted granted Critical
Publication of CN101322127B publication Critical patent/CN101322127B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

一种用于存储电子数据的数字存储介质,时钟树设计工具使用上述电子数据来设计集成电路内的时钟分配网络,所述电子数据实现填补单元库,其中,所述库中的每一个所述填补单元代表多个时钟驱动单元的不同时钟驱动单元的物理实施例,并且其中,在时钟分配网络设计中,所述库中的所有填补单元都是可互换的,而不需要改变集成电路内的布局或布线以保持符合集成电路的设计要求。

Description

时钟树调谐填补单元和填补单元调谐方法
本申请书主张2003年2月25日提交的美国临时专利申请第60/450,076号以及2003年4月24日提交的美国临时专利申请第60/465,089号的权益的权益。
技术领域
本发明涉及诸如可以用于集成电路设计的时钟树调谐方法和工具。
背景技术
在诸如图1所示的在芯片10上的数字电路的物理实施例中,需要提供一个网络12,用于向遍布于整个电路的时钟控制的部件(例如寄存器、触发器、锁存器和其它逻辑器件)或者时钟控制的部件组14分配时钟信号的副本。执行这种功能的网络被称为时钟分配网或时钟树。它之所以被称为树是因为它的结构具有多层分支的分层特性。
在具有许多元件的大规模电路中,时钟树的设计可能是整个电路设计过程中的十分具有挑战性的部分。例如,在具有700,000个可布置的元件的芯片中,那些元件的10%(即,70,000个元件)可能需要时钟信号的副本。如何把时钟信号送给这么多的元件本身就是一个挑战。而且,随着器件尺寸的缩小,随着集成电路芯片面积和部件数目的增加,所分配的时钟信号的质量已经成为限制电路性能的主要因素之一。
在设计时钟分配网络过程中的一个挑战是部分由于部件和互连寄生电容和电阻,使得经网络分配的时钟信号经受不同的延时。因此,被定位于所述电路的一个区域中的一组时钟控制的部件可能收到时钟信号晚于电路中的别处的其它时钟控制的部件。时钟信号到达各部件的这些时间差异被称为时钟定时偏差。如果时钟定时偏差过大,则所述偏差可以使电路工作于不良状态或者完全不工作。因此,许多设计过程的目标就是把这些定时偏差减小到零,或者,更实际地说,减小到某个指定的最小目标值以下。
在大规模专用集成电路(ASIC,Application Specific IntegratedCircuit)的制造工艺中,时钟树的生成已经成为一个主要的瓶颈。在当前的实践中,工程师使用时钟树合成设计工具来初步设计时钟树。在这个阶段中,用缓冲器和大的反相器来初步执行时钟树合成。在完成初步设计之后,设计者通常借助于定时分析工具来测量所述树上的各位置中处于“最坏情况”的角落的偏差。不变的是,在时钟树的某些数目的分支上,所述偏差是不能令人满意的,并且定时分析工具识别出这些分支。通常接着进行在其中实施对布局、缓冲器、扇出等进行各种“调节”或者调整的冗长和乏味的反复处理,并且再次测量结果偏差。在使处于最坏情况的角落处的偏差变为满意之后,必须检查位于“最佳情况”处的偏差,并且通常会接着进行进一步的反复。这种过程必须一次又一次地频繁重复,最后变为乏味和令人恼怒的。在时钟树设计过程中可能会到达这样一点,在该点时钟树必须被去除,并且设计努力必须重新开始,这种情况并不罕见。
在设计过程中,一个频繁使用的选项就是在进行布线之前测量所谓的布线前定时。如果进行这一步,则经常进行定时调整以减小任何过分的定时偏差。正如布线后的定时调整过程需要反复进行那样,布线前的定时调整过程也是如此。类似地,这个阶段也消耗大量的时间。
随着电路变得更大和更复杂,设计时钟分配网络所需的时间已经显著地增加。确实,上述的时钟树跟踪和错误过程可能使所述项目增加一个月或以上,甚至最后结果有时仍然是次最佳的,从而使芯片性能必须降级。
发明内容
上述实施例有助于在大规模集成电路的物理设计阶段,使用通过最小的试验和出错来实现的部件和步骤来调谐时钟树,以便获得十分小的偏差或者预定的偏差。虽然芯片与芯片之间在工艺上发生变化,但是仍然能够保持所获得的十分小的偏差或者预定的偏差。
一般来说,在本发明的一个方面中,提供一种存储电子数据的数字存储介质,时钟树设计工具使用上述电子数据来设计集成电路内的时钟分配网络。所述电子数据实现填补单元(shim cell)库,其中,所述库中的每一个所述填补单元代表多个时钟驱动单元的不同时钟驱动单元的物理实施例,并且其中,在时钟分配网络设计中,所述库中的所有填补单元都是可互换的,不需要对集成电路的布局或布线作出任何改变以保持符合集成电路的设计要求。
其它各实施例包括下列特征中的一项或多项。填补单元库内的所有填补单元具有处于相同物理位置的连接区,使得用一个填补单元来替换另一个时不需要布线变化;具有相同的尺寸和形状,使得用一个填补单元来替换另一个时不需要改变任何相邻部件的布局;具有相同的输入电容;具有相同的输出特性;在相同的负载条件下具有相同的上升和下降时间;并且具有相同的虚拟金属(dummy metal)布置,以便对于与相邻部件和布线中的信号耦合提供屏蔽。
一般来说,在本发明的另一个方面中提供了一种用于设计含有时钟分配网络的集成电路的方法,所述方法包括:提供含有多个填补单元的填补单元库,每一个填补单元代表多个时钟驱动单元的不同时钟驱动单元的物理实施例,并且每一个填补单元具有不同的相关指定延时;使用软件设计工具来布局含有时钟分配网络的集成电路的初步设计,其中,所述时钟分配网络的初步设计包括从所述填补单元库选择的占位符(placeholder)填补单元;测量初步设计的定时偏差;以及用从填补单元库的多个填补单元中选出的一些来替换多个占位符填补单元中的一些以调整集成电路的定时偏差,其中,填补单元库中的每一个填补单元都具有一组相关的特性,使填补单元中的任何一个被另一个所替换,而除了测得的定时偏差以外,基本上不改变初步设计的性能。
一般来说,在又一个方面中,本发明提供一种用于设计含有时钟分配网络并且满足一组特定的设计要求的集成电路的方法,所述方法包括:提供含有多个填补单元的填补单元库,每一个填补单元代表多个时钟驱动单元的不同时钟驱动单元的物理实施例,并且每一个填补单元具有不同的相关指定延时;使用软件设计工具来布置和布线含有时钟分配网络的集成电路的初步设计,其中,所述时钟分配网络的初步设计包括从所述填补单元库选择的占位符填补单元,并且满足一组特定的设计要求;测量初步设计的定时偏差;以及用从填补单元库选择的多个填补单元来替换选择的多个占位符填补单元,以调整集成电路的定时偏差,其中,填补单元库的每一个填补单元具有一组相关的特性,使填补单元中的任何一个可以被用来替换另一个,而不必改变集成电路内的任何其它部件的布线或布局以满足集成电路的设计要求。
一般来说,在本发明的再一个方面中,提供一种用于设计含有时钟分配网络并且满足一组特定的设计要求的集成电路的方法,所述方法包括:使用软件设计工具来布置和布线含有时钟分配网络的集成电路的初步设计,其中,所述时钟分配网络的初步设计包括被布置在所述时钟分配网络内的各个不同位置上的多个占位符填补单元,每一个占位符填补单元的特征在于相应的时钟信号定时延迟,并且代表一个准备纳入所述集成电路的相应时钟驱动单元;测量初步设计的定时偏差;以及用具有不同的相关延时的不同单元来替换多个占位符填补单元中的适当一些,以便调整时钟信号分配电路的相关部分的定时偏差,其中,每一个不同的单元都具有一组相关的特性,使得它可以被用来替换集成电路中的任何占位符单元,而不必改变集成电路内的任何其它部件的布线或布局以满足集成电路的设计要求。
所述库中的所述填补单元的重要优点在于,在电路内和设计中,它们是完全可互换的,而不显著地影响电路性能的各个方面-更重要的是,通常不需要改变电路的布局或布线。
在下面的附图和说明书中,将陈述本发明的一个或多个实施例的细节。通过附图、说明书和权利要求书,将使本发明的其他特征、目的和优点变得更加明显。
附图说明
图1是具有时钟树的代表性的集成电路芯片的示意图。
图2是正相时钟驱动器的示意图。
图3是反相时钟驱动器的示意图。
图4是双反相器时钟驱动器的示意图。
具体实施方式
在这里所叙述或说明的许多实施例所依据的一种概念就是由时钟树合成工具用来设计和布局时钟分配网络的定制填补单元的库。所述库中的每一个定制填补单元是用于或代表所述电路中的相应结构的模型,并且所述结构是将不同的相应延时引入时钟信号中的有源延时元件。每一个填补单元都以对应于它所代表的物理实施例(即,特定的有源延时元件)所引入的延时为单位来命名。整个库的可用延迟时间跨越足够大的范围,以处理在设计过程中设计者可能遇到的时钟偏差范围。而且,可用延时的全集被分为足够精细的等级,以提供在设计过程中设计者所需的细调程度。因此,通过用一个填补单元来替换时钟分配网络中的另一个,电路设计者能够按照在这个范围内的任何数量来调整时钟分配网络的任何受影响的分支中的结果时钟延迟。此外,库中的填补单元都共享一个特性,即,电路设计中所使用的任何单元可以用来自该库的任何其它填补单元来替换,而不需要对现有的排列和布线作出任何进一步的改变。这就是说,这些替换并不强迫设计者用设计工具进行进一步的反复以应对因替换而引起的电路中的改变。这些替换对特定电路设计布局的性能的唯一影响就是时钟偏差。
实质上,单元的库等效于具有可调延时的单个填补单元。在设计过程中,所述库的代表性成员(例如,具有处于所有可用延时的中心附近的相关延时的单元)被智能地插入到时钟分配网络的各分支中作为占位符。占位符可以是所述库的单个代表性成员,或者是所述库的少量被选成员。
在用设计工具完成包括所有部件的布置和所有互连的布线的初步设计之后,设计者测量电路中的时钟偏差。如果那些测量表明需要调整某些分支中的延时,则设计者简单地用来自填补单元库的适当的填补单元来替换那些分支内的占位符单元,使测出的偏差变为0。
显而易见,这样一个时钟驱动单元库的可用性大大地简化了满足特定电路要求的时钟分配网络的设计过程。所述库使电路设计者能避免以往曾经需要的通常十分耗时的、有时十分昂贵的、并且经常是无效的反复过程。
由填补单元代表的基础器件结构被设计成满足多种不同要求,因此,它们在电路内确实是完全可互换的,而不影响除时钟延时以外的电路性能。结构的外部设计的某些重要特征包括单元的尺寸和形状、接触位置以及使用虚拟金属层用于屏蔽。下面将详细地讨论其中的每一项。
在所述实施例中,实施特定库中的填补单元的结构全都具有相同的物理尺寸和形状。具有相同的物理尺寸和形状意味着表示不同的填补单元的结构的外形尺寸(即,不同的单元在实际集成电路内所占的面积)是相同的。因此,如果以后用一个填补单元来替换另一个填补单元以调整偏差,则在现有电路布局中,通常都有足够的空间接纳新的填补单元;不需要移动其它任何元件来为替换的填补单元提供空间。如果所述库内的各填补单元的尺寸和形状不相同,则尝试用一个较大的填补单元来替换一个较小的填补单元意味着必须移动所述电路中的其它元件以容纳新的填补单元。这将导致必须改变所述电路的布局,这就要求用设计工具来进行进一步的反复。
在本例中,结构的尺寸和形状简单地指在布局中被“分配”给所述填补单元的空间量。它表示不能被其它相邻部件使用的空间。它不一定仅指用于实施延时单元的反相器和电容性元件所需的物理空间量。
人们可以想象这样的情况,其中,只要需要考虑的后继替换不要求用较大的填补单元来替换较小的填补单元,那末相同的尺寸和形状的要求就可以放宽而不致在设计过程中产生问题。因此,例如,如果占位符填补单元被设计成较大的单元,则另一个填补单元的后继替换不会由于没有用于新单元的可用空间而产生问题。
除了相等的尺寸和形状以外,单元结构还从一个单元到下一个单元它们的连接区位于相同位置。所述连接区是进行电连接的区域,通常使用自上而下的金属。典型地,实现填补单元的结构将包括金属1、金属2和金属3金属化;而将所述单元连接到所述电路的金属来自较高层的金属化。为了到达连接区,一个后来形成(或较高层)的金属化层通过在单元上延伸的氧化物或电介质层中所形成的适当布置的通路连接到连接区。为了满足填补单元可完全互换的要求,所述库中的所有填补单元的连接区都位于相同的物理位置。因此,当用一个单元来替换另一个时,不需要重新定位与该单元建立连接所通过的通路。
在所述的实施例中,所有填补单元还具有匹配的输入特性。换句话说,所有单元的输入阻抗和电容都是相同的。因此,对于向填补单元提供信号的上游电路来说,所有填补单元都产生等量的负载。如果不是这样的情况,并且如果当更换填补单元时负载随之发生改变,则这可能改变上游电路的电气性能,反过来又需要用设计工具进行进一步的反复以校正这些改变。
类似地,所有填补单元都具有匹配的输出阻抗(例如,对于给定负载的上升/下降时间)。因此,如果在时钟树中用一个单元来替换另一个,则除了引进所预期的延时以外,它对时钟树的输出将不产生影响。
为了更进一步地保证互换性,用适当地布置的虚拟金属来屏蔽所述填补单元,以将所述单元与所述电路中靠近该单元的其它金属线中的信号的影响相隔离。通过例如金属3的金属化来实现虚拟金属。典型地,虚拟金属化将覆盖大面积的填补单元结构,并且用于屏蔽在所述单元内的基础电路防止电容耦合到与靠近所述单元或者在所述单元之上的线路中的信号。它还用于向相邻电路提供相同的寄生电容。可以使用SPICE仿真来确定虚拟金属的尺寸和位置。
总而言之,上述库内的填补单元具有下列特性:
(1)它们跨越足够宽范围的延时增量,以调节定时中的预期偏差;
(2)它们形成一个足够精细分级的集合;
(3)它们相互之间不改变物理尺寸和/或形状;
(4)它们相互之间不改变电气连接区的位置;
(5)它们不改变与相邻电路元件之间的寄生电容;
(6)它们相互之间不改变输入电容;
(7)它们相互之间不改变输出上升/下降时间;
(8)它们以易于对测量的偏差的单位来命名;以及
(9)它们包括屏蔽元件,以最小化串话并且提高精度。
可以构成一个足够宽和足够精细的分级的填补单元集的一个实例是填补单元库,它包括以10ps的最坏情况单位分隔的101个单元。使用最坏情况单位,即,代表过程的慢-慢角(show-slow corner),是因为通常按照这些单位来测量偏差。所述库跨越1纳秒的最坏情况的范围。“中心”单元用0皮秒的延时来标记,并且被用作用于首次通过的时钟树布局的占位符。50个具有较大延时的单元将具有正的延时标记,并且50个具有较小延时的单元将具有负的延时标记。
当然,只要可用的填补单元的集合适当地覆盖在设计过程中观察到的定时偏差范围,就不需要均等地分隔延时。也不需要选择处于所述范围中心的单元作为占位符单元。这里,重要的要求是在占位符单元的每一侧都有足够的空间来调整偏差,以容纳在设计过程中人们希望看到的偏差。实际上,比较好的做法是选择一个稍为靠近人们希望遇到的最小偏差的占位符单元,由此给出在高端进行控制的较大范围。
在大多数的设计情形中,希望所述库中的各单元以相同于电路中的其它器件的方式来跟踪工艺变化。事实上,如果使用相同于用于制造电路中的其它器件的工艺和设计规则来制造用于实现所述单元的基础器件,则填补单元将自然地趋向于跟踪工艺的变化。
但是为了实现真正的工艺跟踪,在每一个工艺角(processcorner),针对所述填补单元将在电路中看到的实际负载,选定的填补单元必须分开地和独立地满足所预期的插入延时。最少存在两个工艺角,被称为“最坏情况”(意味着最慢)和“最佳情况”(意味着最快)。在十分重要的应用中,还可以考虑和检查其它角。因此,填补单元的集合应当是多维的,即,多个工艺角上特征化的多个填补单元。
此外,为了最小化填补单元的插入延时,选择一个特定的填补单元以实现期望的偏差偏移将是负载类型的函数。例如,在有源负载(即,门负载)和无源负载(即,金属负载)之间存在差异。因此,为了构建一个更加完整的填补单元库,还可以纳入填补单元组,每一组代表一个特定的期望延时。在一个组中,每一个填补单元将和一种不同类型的负载和负载条件有关。
然而,纳入一个尽可能地偏离工艺、电压和温度(PVT)的函数的单元的库也是人们所希望的。通过使用已知的技术,包括适当地选择晶体管沟道长度、沟道宽度和其它器件参数,甚至包括所述器件在硅中相对于其它器件的取向,能容易地设计这样的单元。通过使各沟道变得更宽,例如,由于制造过程中的分辨率变化的沟道边沿的精细位置的变化将对沟道宽度产生较小的相对影响。
在各填补单元中进行区分的另一种可能的有用方法就是借助于驱动强度。这就是说,在某些设计情况下,具有用于不同的所需或期望驱动强度的不同填补单元集合可能是有用的。因此,可以根据它将被置入的电路的特定点上所需的驱动,从适当的集合中选择用于替换的填补单元。
因此,上述实施例的一个更加复杂的型式将包括多个库,每一个库具有用于多个工艺角落上特征化的特定负载条件的填补单元的完整集合。在这些库当中,将有一个或多个用于单元设计的库,它们很好地跟踪工艺,使得当其它元件的特性改变时,它们的特性也以类似的方式改变,并且一个或多个用于单元设计的库作为PVT的函数尽可能小地偏离。
当然,只要选项的范围对设计者来说有效地可用,如何去组织各填补单元就不是特别重要。因此,取代为每一组条件使用独立的库,人们可以改为使用在其中存在多组填补单元的单独的库,每一组用于相关的延时增量。并且在每一组内,将存在用于不同负载的填补单元,等等。无论哪一个方案都可以被用来表示基础的填补单元的多维特性。
然而,在实践中,即使使用仅包括一个填补单元集的单个库的更简单方案将是相对于先前已存在的重大改进。而且,所述方案具有这样的优点,即,填补单元的总数将是更加可管理的,并且可以容易地以预计算库的形式来提供。以后,如果需要更多的角落或提高的精度,则可以由时钟树工具自由地产生填补单元,在这种情况下,可能的填补单元的总数可以任意大。
在所述实施例中,实现填补单元的时钟驱动单元20示于图2。与诸如电容器的无源元件相反,它是一个有源器件,并且包括4个反相器,即,一个输入反相器24、两个内部反相器26和28以及一个输出反相器30,它们全都串联连接。它还包括用于实现电容器32的内部元件,其调整可以被用来帮助设定与所述单元有关的延时增量。输入反相器建立所述单元的输入特性,并且输出反相器建立所述单元的驱动能力。输入和输出反相器保证在所述库中相关的输入和输出特性在单元与单元之间是相同的。所述单元内部的反相器连同电容器,被用来增加/减小与该单元有关的延时增量。由于从填补单元将与之连接的外部电路设定这个填补单元的延时增量的内部机制被输入和输出反相器隔离,在不影响所述单元的输入和输出特性的条件下,可以容易地从一个单元到下一个单元改变延时。这就是说,延时增量的调整可以独立于填补单元的输入和输出特性。
图2所示的填补单元是同相型,因为在它里面具有偶数个反相器。反相型填补单元里面具有奇数个反相器,诸如图3所示的单元。
从理论上说,填补单元可以包括4个以上反相器。但是在所述单元内使用更多的反相器意味着为了实现所述单元要使用更多的空间。从设计者的观点来看,这可能是不期望的。因此,作为实际的事情,含有3到4个反相器的单元可能是优选的设计。
当然,也有可能实现一个仅有两个反相器的同相型单元。然而,采用较小数目的反相器,设计输入和输出特性在单元与单元之间不发生改变的单元遇到更大的挑战。这是因为实现不同延时增量所需的内部变化将趋向于也影响所述单元的输入和输出特性。这是由于只有有限数目的参数可以被调整,并且影响延时增量的参数集也影响与所述单元是否可以与另一个单元互换有关的所述电路的其它电气特性(例如,输入电容、上升和下降时间等)。结果,实现不同的延时增量将不仅是调整所述单元的几个内部参数的简单事情,而是还需要改变输入和输出反相器内的参数。简而言之,3到4个反相器的设计可能被视为较容易实现。
然而,如果愿意接受使用此种结构较大的复杂性,则可以使用一个双反相器的填补单元。跟踪双反相器的填补单元设计的通用工艺示于图4。它包括输入反相器40、输出反相器42和用于调整与所述单元有关的延时增量的内部电路44。在这个实例中,用n型和p型金属氧化物半导体(MOS,metal oxide semiconductor)器件的组合来实现每一个反相器和内部电路。在内部电路44中,每一个MOS器件的源极端和漏极端被连接在一起以实现电容元件。对角线箭头表示从一个填补单元到另一个补偿单元不同的部件。可以增加中心节点上的互连金属46以增加电容。通过改变内部MOS器件中的沟道的长度和宽度,以及通过改变内部连线的长度和布局,能控制内部电容。(这样的技术也可以被用来生成和调整图2和3所示的单元中的电容。)
对于从填补单元看去的给定负载来说,正如用定时工具在实际电路中的每一个工艺角落所测得的,可以在本范例的范围内设计一个填补单元,用于:
(a)在每一个角具有几乎与占位符填补单元相同的输入电容;
(b)在每一个角具有几乎与占位符填补单元相同的上升/下降时间;以及
(c)在每一个工艺角,延时与占位符填补单元相差期望的正或负的数量。
正如在迄今为止所讨论过的方案中的情形,选择期望的延时量以便最小化所有角上的总时钟偏差,或者将时钟偏差设置为小的和可控制的量(例如,以改善电源瞬变)。在某些情况下,精确调整整个芯片中的所有时钟沿可以显著地增加电源负载,因此,希望把时钟沿分布于理想时间附近的小范围上。
正如先前所建议的那样,上面所列举的期望行为的各种维数并不以任何简单的方式映射到由图中的对角线箭头所指明的可用自由度。需要解一组联立方程式。通过使用线性方程式和两或三次迭代,可以简化该计算。这些不是时钟树布局中的反复,而是可以在动态地产生单个填补单元用于时钟树中的给定点的过程中,由工具透明地进行。如果填补单元的总数足够小,使之成为预先计算的库,则可以根据所期望的偏差特性,而不是根据内部变量来组织所述库。
还有,另一个方案是使用这样一种填补单元设计,它表示一个可以被就地修改以改变与所述单元有关的延时增量,而不改变需要改变初步电路设计中的布局或芯片级布线的所述单元的任何其它特性的时钟驱动单元。在本例中,在所述库中将仅有一个单元,并且所述单元将具有可选的延时增量。
现在将提供使用软件实现的设计工具来设计时钟树的过程的高级描述。这个过程的中心是时钟树合成器。典型地,时钟树合成器是由设计者用来布置所述芯片的布局和布线工具的一部分。然而,如何把各项功能组合到市售的不同设计工具组内,各厂商的做法彼此不同。
设计者使用其它工具来提供有待于布置的逻辑和电路设计。此项设计,连同准备使用的技术(例如,CMOS)的说明以及其它设计约束条件被读入到一个布局和布线工具中,诸如可从Synopsys公司购买的AstroTM工具。向这些工具提供的信息是关于填补单元库的信息。
在所述的实施例中,用存储在设计工具可以访问的存储器和/或数据存储装置中的一个或多个电子文件来表示每一个填补单元。所述文件提供在布置、布局和定时测量过程中设计工具所需的关于相应填补单元的信息。例如,所述文件(或各文件)指明填补单元的特性,包括,例如它的物理尺寸和形状、连接区布局、电路图以及针对输入和输出条件范围的相关时延。每一个填补单元具有和它有关的那些特性,并且代表也具有那些特性的集成电路中的物理实施例。
一旦已经向所述工具提供了所需信息,所述工具内的定时驱动布局算法安排所述设计。这涉及排列时钟控制的部件并且把时钟树插入到所述设计中。在这个阶段,所述工具还在适当位置将占位符填补单元插入到时钟树的各个分支中。这些位置可以留给设计工具本身,或者设计者可以物理地和分层地(即,逻辑地)加以若干约束条件,关于何处可以插入这些占位符。
当初步布局完成之后,所述工具开始进行布线(即,金属化),以便互连已经布置好的模块和部件。为了执行这些功能,它施加设计者先前指定的设计约束条件。在进行这个设计阶段过程中,有时证明有必要修改在设计过程的早期阶段所提出的初步布局,以便实现整体的设计目标。换句话说,布局和布线过程可以是一个反复过程。
在各部件和时钟树已经被布局和布线之后,设计者使用一种定时测量工具来评估初步设计与设计要求接近到什么程度。如果证明存在定时问题,即,过多的偏差,则使用填补单元来校正偏差。这就是填补单元的价值变为最明显的所在。为了校正任何特定分支内的定时,产生时钟定时中的期望增量的适当的填补单元被插入到电路中,以代替在早期设计阶段中设计到电路中的占位符单元。由于各填补单元完全可以按照上述方式进行互换,所以在这一点上所作出的调整将不改变任何部件的布置或布局,或者任何金属的重新布线。
如果芯片包括大量的填补单元位置,则(例如以用于Synopsys布局工具的Scheme语言)的自动工具或工具驱动脚本将根据自动偏差测量来选择和布置所需的填补单元。由于检查偏差的定时工具一定知道在每一个工艺角的填补单元的负载,所以这个过程可以是完全自动的。然而,如果填补单元点的数目很小,则也可以使用手动选择和布局。
在许多当前市售的设计工具中,在这个阶段中,用户需要运行一条特殊的命令,它指示所述工具进行填补单元替换而不改变任何其它。由于当前市售的设计工具不被设计成使用这里所描述的类型的填补单元库,所以这是十分重要的。在Synopsys布局工具中,例如,所述命令序列为“auECOByChangeFile”,其后跟随“axgECORouteDesign”。与所述命令序列有关的参数也必须被正确地分配,以保证设计数据库的逻辑连接被更新,以反映与新的填补单元的连接,但是不会出现单元布局或物理布线的改变。
采用可以从填补单元库中得到的填补单元,将有可能实现定时封闭,而不必重新运行布置和布局工具来定位由于对时钟树进行调整而产生的问题。
可以使用各种各样的方案来优化设计过程。例如,今天市售的设计工具可以整个地自动产生时钟树。但是对设计者来说,优选的做法是,用时钟树的简单的初步设计来播种设计过程,在此基础上,设计工具将构建完整的设计。可替代地,可以就占位符单元可以被定位于何处对设计工具施加约束。经验表明,占位符填补单元的最佳位置通常位于时钟分配树的中间,即处于中间深度或层次。指令设计工具以限制它把占位符填补单元用在设计的那些区域,可以改进所得到的初步设计,并且加速到达所述初步设计的过程。设计者还可以希望限制在时钟树的最终设计中允许的层数(即,深度)。可以通过适当写的脚本文件容易地向所述工具提供这样的约束条件和初步设计。
另一种方案是将占位符时钟驱动单元插入到向所述工具提供的逻辑电路设计中。这将提供一种有效的方法来控制填补单元被逻辑地布置在何处。
又一个方案是使用不同的填补单元组,其中的每一组具有不同的延时增量间隔尺寸。因此,例如,第一组将仅允许延时的粗校正;第二组可以提供延时的中等校正;第三组可以提供定时的精细校正。如果这样一种方案被采用,则设计工具将被限制为仅将第一组填补单元用于时钟树的较高层,第二组填补单元用于时钟树的中层,并且第三组填补单元用于靠近时钟树的叶节点处。
其它的各实施例都被纳入下列权利要求书之中。例如,所述库可以被实现为具有可调谐延时的单个填补单元,在把所述填补单元置入所述电路之后,其延时可调整。具有特定的0延时增量的可调整填补单元将在占位符位置上被放置到电路中。一旦初步设计的定时偏差已知,就能适当地调整与每一个占位符填补单元有关的延时增量。
此外,通过计算提供延时增量的期望量所需的填补单元的特定参数,能自由地产生个别的填补单元。这当然需要在设计工具中提供更强的计算能力。但是它具有优点,即,能够实现预先计算的非常全面和完善的库,否则将需要有巨大容量的存储空间来容纳这些数据。

Claims (20)

1.一种用于存储电子数据的数字存储介质,时钟树设计工具使用上述电子数据来设计集成电路内的时钟分配网络,所述电子数据实现一个填补单元库,其中,所述库中的每一个所述填补单元代表多个时钟驱动单元的不同时钟驱动单元的物理实施例,并且其中,在时钟分配网络设计中,所述库中的所有填补单元都是可互换的,不需要对集成电路内的布局或布线作出任何改变以保持符合集成电路的设计要求。
2.如权利要求1所述的数字存储介质,其中,填补单元库内的所有填补单元具有处于相同物理位置的连接区,使得用一个填补单元来替换任何其它填补单元时不需要布线变化。
3.如权利要求1所述的数字存储介质,其中,填补单元库内的所有填补单元具有相同的尺寸和形状,使得用一个填补单元来替换另一个时不需要改变任何相邻部件的布局。
4.如权利要求1所述的数字存储介质,其中,填补单元库内的所有填补单元具有相同的输入电容。
5.如权利要求1所述的数字存储介质,其中,填补单元库内的所有填补单元具有相同的输出特性。
6.如权利要求1所述的数字存储介质,其中,填补单元库内的所有填补单元对于相同的负载条件具有相同的上升和下降时间。
7.如权利要求1所述的数字存储介质,其中,填补单元库内的所有填补单元具有相同的虚拟金属布置,以便对于与相邻部件和布线中的信号耦合提供屏蔽。
8.如权利要求1所述的数字存储介质,其中,填补单元库内的所有填补单元进行工艺跟踪。
9.如权利要求1所述的数字存储介质,其中,所述电子数据实现多个填补单元库,所述首先说明的库是所述多个库之一,并且其中,所述多个库中的每个库包括对应于不同驱动强度的填补单元。
10.一种用于设计含有时钟分配网络的集成电路的方法,所述方法包括:
提供含有多个填补单元的填补单元库,每个填补单元代表多个时钟驱动单元的不同时钟驱动单元的物理实施例,并且每个填补单元具有不同的相关指定延时;
使用软件设计工具来布局含有时钟分配网络的集成电路的初步设计,其中,所述时钟分配网络的初步设计包括从所述填补单元库选择的占位符填补单元;
测量初步设计的定时偏差;以及
用从填补单元库选择的多个填补单元中的一些来替换选择的一些占位符填补单元以调整集成电路的定时偏差,其中,填补单元库的每一个填补单元具有一组相关的特性,使得任何一个填补单元能够替换集成电路中的另一个填补单元,除所测得的定时偏差以外,基本上不改变初步设计的性能。
11.如权利要求10所述的方法,其中,填补单元库内的所有填补单元具有处于相同物理位置的连接区,使得用一个填补单元来替换任何其它填补单元时不需要布线变化。
12.如权利要求10所述的方法,其中,填补单元库内的所有填补单元具有相同的尺寸和形状,使得用一个填补单元来替换另一个时不需要改变任何相邻部件的布局。
13.如权利要求10所述的方法,其中,填补单元库内的所有填补单元具有相同的输入电容。
14.如权利要求10所述的方法,其中,填补单元库内的所有填补单元具有相同的输出特性。
15.如权利要求10所述的方法,其中,填补单元库内的所有填补单元对于相同的负载条件具有相同的上升和下降时间。
16.如权利要求10所述的方法,其中,填补单元库内的所有填补单元具有相同的虚拟金属布置,以便对于与相邻部件和布线中的信号耦合提供屏蔽。
17.如权利要求10所述的方法,其中,填补单元库内的所有填补单元进行工艺跟踪。
18.如权利要求10所述的方法,其中,所述电子数据实现多个填补单元库,所述首先说明的库是所述多个库之一,并且其中,所述多个库的每个库包括对应于不同驱动强度的填补单元。
19.一种用于设计含有时钟分配网络并且满足一组特定的设计要求的集成电路的方法,所述方法包括:
提供含有多个填补单元的填补单元库,每一个填补单元代表多个时钟驱动单元的不同时钟驱动单元的物理实施例,并且每一个补偿单元具有不同的相关指定延时;
使用软件设计工具来布置和布线含有时钟分配网络的集成电路的初步设计,其中,所述时钟分配网络的初步设计包括从所述填补单元库选择的占位符填补单元,并且满足一组特定的设计要求;
测量初步设计的定时偏差;以及
用从填补单元库选择的多个填补单元中的一些来替换选择的一些占位符填补单元以调整集成电路的定时偏差,其中,填补单元库的每一个填补单元具有一组相关的特性,使得任何一个填补单元能够替换集成电路中的另一个填补单元,而不必改变集成电路内的任何其它部件的布线或布局以满足集成电路的设计要求。
20.一种用于设计含有时钟分配网络并且满足一组特定的设计要求的集成电路的方法,所述方法包括:
使用软件设计工具来布置和布线含有时钟分配网络的集成电路的初步设计,其中,所述时钟分配网络的初步设计包括布置在所述时钟分配网络内的各个不同位置的多个占位符填补单元,每一个占位符填补单元的特征在于一个相应的时钟信号定时延迟,并且代表一个准备纳入所述集成电路的相应时钟驱动单元;以及
测量初步设计的定时偏差;以及
用具有不同相关延时的不同单元来替换多个占位符填补单元中的适当一些,以便调整时钟信号分配电路的相关部分的定时偏差,其中,每一个不同单元具有一组相关的特性,使得它能够替换集成电路中的任何占位符单元,而不必改变集成电路内的任何其它部件的布线或布局以满足集成电路的设计要求。
CN2004800106458A 2003-02-25 2004-02-24 时钟树调谐填补单元和填补单元调谐方法 Expired - Fee Related CN101322127B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US45007603P 2003-02-25 2003-02-25
US60/450,076 2003-02-25
US46508903P 2003-04-24 2003-04-24
US60/465,089 2003-04-24
PCT/US2004/005375 WO2004077514A2 (en) 2003-02-25 2004-02-24 Clocktree tuning shims and shim tuning method

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN2011101853900A Division CN102306209B (zh) 2003-02-25 2004-02-24 时钟树调谐填补单元和填补单元调谐方法

Publications (2)

Publication Number Publication Date
CN101322127A true CN101322127A (zh) 2008-12-10
CN101322127B CN101322127B (zh) 2012-03-07

Family

ID=32930541

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2004800106458A Expired - Fee Related CN101322127B (zh) 2003-02-25 2004-02-24 时钟树调谐填补单元和填补单元调谐方法
CN2011101853900A Expired - Fee Related CN102306209B (zh) 2003-02-25 2004-02-24 时钟树调谐填补单元和填补单元调谐方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN2011101853900A Expired - Fee Related CN102306209B (zh) 2003-02-25 2004-02-24 时钟树调谐填补单元和填补单元调谐方法

Country Status (4)

Country Link
US (1) US7346873B2 (zh)
EP (1) EP1599893A2 (zh)
CN (2) CN101322127B (zh)
WO (1) WO2004077514A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103532542A (zh) * 2013-10-15 2014-01-22 上海交通大学 一种用于时钟树的反相器电路
CN107784136A (zh) * 2016-08-24 2018-03-09 中国科学院微电子研究所 一种标准单元库的创建方法及系统
CN113177383A (zh) * 2021-04-29 2021-07-27 飞腾信息技术有限公司 一种基于dummy的时钟设计方法

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7129101B2 (en) * 2002-11-27 2006-10-31 Lsi Logic Corporation Failure analysis vehicle for yield enhancement with self test at speed burnin capability for reliability testing
ATE532288T1 (de) * 2003-03-04 2011-11-15 Timelab Corp Takt- und datenwiederherstellungsverfahren und - vorrichtung
TWI262411B (en) * 2004-05-07 2006-09-21 Dorado Design Automation Inc Integrated circuit design system
US7117472B2 (en) * 2004-07-09 2006-10-03 Lsi Logic Corporation Placement of a clock signal supply network during design of integrated circuits
US7299445B2 (en) * 2004-10-29 2007-11-20 Synopsys, Inc. Nonlinear receiver model for gate-level delay calculation
JP2006172641A (ja) * 2004-12-17 2006-06-29 Toshiba Corp 半導体回路およびその動作方法および遅延量制御回路システム
US20070006106A1 (en) * 2005-06-30 2007-01-04 Texas Instruments Incorporated Method and system for desensitization of chip designs from perturbations affecting timing and manufacturability
US20070247195A1 (en) * 2006-03-31 2007-10-25 Cypress Semiconductor Corporation Low output-to-output skew/low jitter staggered output buffer
US7831946B2 (en) 2007-07-31 2010-11-09 International Business Machines Corporation Clock distribution network wiring structure
US7956665B2 (en) 2008-02-29 2011-06-07 Qimonda Ag Methods and articles of manufacture for operating electronic devices on a plurality of clock signals
US8086982B2 (en) * 2009-03-04 2011-12-27 Springsoft Usa, Inc. Methods and systems for reducing clock skew in a gated clock tree
US8533645B2 (en) * 2011-04-29 2013-09-10 Apple Inc. Reducing narrow gate width effects in an integrated circuit design
US8762904B2 (en) * 2012-03-28 2014-06-24 Synopsys, Inc. Optimizing logic synthesis for environmental insensitivity
US8595668B1 (en) * 2012-09-26 2013-11-26 Lsi Corporation Circuits and methods for efficient clock and data delay configuration for faster timing closure
CN104268347B (zh) * 2014-09-30 2018-03-02 中国电子科技集团公司第三十八研究所 适用于纳米级工艺的抗辐射sram芯片后端物理设计方法
US10218360B2 (en) * 2016-08-02 2019-02-26 Altera Corporation Dynamic clock-data phase alignment in a source synchronous interface circuit
US10423743B2 (en) * 2016-11-15 2019-09-24 Synopsys, Inc. Context-dependent useful skew estimation for optimization, placement, and clock tree synthesis
US11681847B2 (en) * 2020-07-07 2023-06-20 Taiwan Semiconductor Manufacturing Company, Ltd. Method of manufacturing semiconductor device and system for same

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5781766A (en) * 1996-05-13 1998-07-14 National Semiconductor Corporation Programmable compensating device to optimize performance in a DRAM controller chipset
US6140883A (en) * 1997-10-17 2000-10-31 Intel Corporation Tunable, energy efficient clocking scheme
US6205571B1 (en) * 1998-12-29 2001-03-20 International Business Machines Corporation X-Y grid tree tuning method
JP2001022816A (ja) * 1999-07-12 2001-01-26 Matsushita Electric Ind Co Ltd 半導体集積回路装置のレイアウト方法
JP2001332693A (ja) * 2000-05-23 2001-11-30 Nec Corp バッファ回路ブロック及びこれを用いた半導体集積回路装置の設計方法
CN1110849C (zh) * 2000-08-29 2003-06-04 中国科学院微电子中心 超大规模集成电路的制造方法
JP2003037178A (ja) * 2001-07-25 2003-02-07 Nec Corp 半導体集積回路装置
US6880142B2 (en) * 2002-10-16 2005-04-12 Lsi Logic Corporation Method of delay calculation for variation in interconnect metal process

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103532542A (zh) * 2013-10-15 2014-01-22 上海交通大学 一种用于时钟树的反相器电路
CN103532542B (zh) * 2013-10-15 2016-08-31 上海交通大学 一种用于时钟树的反相器电路
CN107784136A (zh) * 2016-08-24 2018-03-09 中国科学院微电子研究所 一种标准单元库的创建方法及系统
CN107784136B (zh) * 2016-08-24 2021-02-12 中国科学院微电子研究所 一种标准单元库的创建方法及系统
CN113177383A (zh) * 2021-04-29 2021-07-27 飞腾信息技术有限公司 一种基于dummy的时钟设计方法
CN113177383B (zh) * 2021-04-29 2023-01-31 飞腾信息技术有限公司 一种基于dummy的时钟设计方法

Also Published As

Publication number Publication date
WO2004077514A3 (en) 2008-06-05
US20040243957A1 (en) 2004-12-02
US7346873B2 (en) 2008-03-18
EP1599893A2 (en) 2005-11-30
CN102306209A (zh) 2012-01-04
WO2004077514A2 (en) 2004-09-10
CN102306209B (zh) 2013-12-04
CN101322127B (zh) 2012-03-07

Similar Documents

Publication Publication Date Title
CN101322127B (zh) 时钟树调谐填补单元和填补单元调谐方法
US10808333B2 (en) Method and apparatus for performing layout designs using stem cells
US8024690B2 (en) Method, system and computer program product for determining routing of data paths in interconnect circuitry providing a narrow interface for connection to a first device and a wide interface for connection to a distributed plurality of further devices
US7937256B2 (en) Systems and methods of efficient library characterization for integrated circuit cell libraries
US7069523B2 (en) Automated selection and placement of memory during design of an integrated circuit
US20080229266A1 (en) Design Structure for a Clock Distribution Network, Structure, and Method for Providing Balanced Loading in Integrated Circuit Clock Trees
US9046573B1 (en) Addressable test arrays for characterizing integrated circuit device parameters
TWI806844B (zh) 非暫時性計算機可讀儲存媒體及其校準寫入操作方法
US10886903B1 (en) Programmable clock skewing for timing closure
CN101751976B (zh) 一种集成电路结构及应用该结构的芯片组
US7511548B2 (en) Clock distribution network, structure, and method for providing balanced loading in integrated circuit clock trees
US7092838B1 (en) Method and apparatus for the analysis and optimization of variability in nanometer technologies
CN109147859A (zh) 用于占空比测量、分析和补偿的系统和方法
US7644385B1 (en) Programmable logic device with performance variation compensation
Kabir et al. Holistic Chiplet–Package Co-Optimization for Agile Custom 2.5-D Design
US11368158B2 (en) Methods for handling integrated circuit dies with defects
KR100303675B1 (ko) 반도체 장치 및 반도체 장치의 제조 방법
US7479819B2 (en) Clock distribution network, structure, and method for providing balanced loading in integrated circuit clock trees
US20220263508A1 (en) Threshold logic gates using flash transistors
Maheshwari et al. Design flow for hybrid CMOS/memristor systems—Part II: Circuit schematics and layout
CN100410950C (zh) 半导体集成电路及其设计方法
US20070271541A1 (en) Cell arrangement method for designing semiconductor integrated circuit
US20020047789A1 (en) Method of designing semiconductor integrated circuit
US20240021600A1 (en) Semiconductor devices and methods of manufacturing thereof
Abusultan Digital Circuit Design Using Floating Gate Transistors

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120307

Termination date: 20190224

CF01 Termination of patent right due to non-payment of annual fee