CN103455655B - 用于设计集成电路的计算机实现的方法和装置 - Google Patents

用于设计集成电路的计算机实现的方法和装置 Download PDF

Info

Publication number
CN103455655B
CN103455655B CN201310214539.2A CN201310214539A CN103455655B CN 103455655 B CN103455655 B CN 103455655B CN 201310214539 A CN201310214539 A CN 201310214539A CN 103455655 B CN103455655 B CN 103455655B
Authority
CN
China
Prior art keywords
conversion ratio
module
place
different elements
elements
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.)
Expired - Fee Related
Application number
CN201310214539.2A
Other languages
English (en)
Other versions
CN103455655A (zh
Inventor
C·J·阿尔伯特
R·M·阿弗里尔
李卓
J·L·P·尼夫斯
S·T·奎
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.)
Core Usa Second LLC
GlobalFoundries Inc
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN103455655A publication Critical patent/CN103455655A/zh
Application granted granted Critical
Publication of CN103455655B publication Critical patent/CN103455655B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist

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

用于设计集成电路的计算机实现的方法和装置
技术领域
本发明主题的实施例一般地涉及计算机领域,更具体地说,涉及不同设计(例如,电子电路)的早期设计周期优化。
背景技术
在半导体的衬底上组织电路是一项这样的任务:当在数据处理系统上处理电子设计自动化指令以减少电路操作延迟时,可以实现整体电路速度效率。超大规模集成(VLSI)电路设计中的延迟源是与信号从一个元件传送到另一个元件关联的时间延迟。
传统上,对于某些电路设计,多名设计人员同时设计不同的元件。在早期设计周期中,在分层设计的单元或顶层处,缓冲器可能占主导地位;网表可能缺失断言;随机逻辑宏(RLM)尚未被优化;以及可能缺失锁存器。这种电路设计的优化可能没有认识到这些问题,因此通过大量层分配过度提升设计,并导致设计中产生较大拥挤或过度插入缓冲器,从而使得设计占据面积较大并且耗电量增加。相应地,在早期设计周期中,设计人员并不明确了解拥挤和计时。传统上,设计人员假设这种未完成计时信息可随后在设计过程中得以解决,或者宏设计人员可能随后更正宏缓冲器位置。但是,完全忽略存在问题的元件可能低估完成设计所需的资源。
发明内容
某些实例实施例包括一种用于设计集成电路的计算机实现的方法。所述计算机实现的方法包括接收所述集成电路的分层网络设计,其中所述分层设计包括耦合在一起的多个元件。所述计算机实现的方法包括检测所述多个元件中的一个元件具有失败计时和未完成计时中的至少一个,所述检测基于包括以下项中的至少一个的问题:缺失断言、一个或多个缺失锁存器、输入源转换率(slew)大于源转换率限制阈值的源驱动器,以及输入宿转换率大于宿转换率限制阈值的宿。所述计算机实现的方法包括使用与所述问题无关的不同元件替换该元件,以及基于所述不同元件而测试所述多个元件中的其它元件。
某些实例实施例包括一种用于设计集成电路的计算机实现的方法。所述计算机实现的方法包括接收所述集成电路的分层网络设计,其中所述分层设计包括耦合在一起的多个元件。所述计算机实现的方法包括检测所述多个元件中的第一元件具有失败计时和未完成计时中的至少一个,所述检测基于包括缺失断言和一个或多个缺失锁存器中的至少一个的问题,其中所述第一元件包括连接所述多个元件中的第二元件和第三元件的连线。所述计算机实现的方法包括使用与所述问题无关的不同元件替换所述第一元件,以及基于所述不同元件而测试所述多个元件中的其它元件。
附图说明
通过参考附图,可以更好地理解本发明,并且众多目标、特性和优点将对本领域的技术人员变得显而易见,这些附图是:
图1示出了根据某些实例实施例的用于对包含具有未完成或失败计时的元件的设计进行早期设计周期优化的系统;
图2示出了根据某些实例实施例的具有弱源(weak source)的未完成元件的替换;
图3示出了根据某些实例实施例的具有弱宿(flabby sink)的未完成元件的替换;
图4示出了根据某些实例实施例的具有一个或多个缺失锁存器的未完成元件的替换;
图5示出了根据某些实例实施例的具有错误断言的未完成元件的替换;
图6示出了根据某些实例实施例的用于对包含具有未完成或失败计时的元件的设计进行早期设计周期优化的流程图;以及
图7示出了根据某些实例实施例的计算机系统。
具体实施方式
下面的描述包括包含本发明主题的技术的示例性系统、方法、技术、指令序列和计算机程序产品。但是,应当理解,可以在没有这些特定的细节的情况下实现所述实施例。例如,尽管各实例涉及基于分层网络的集成电路,但某些实施例可以使用任何类型的集成电路。在其它情况下,未详细示出公知的指令实例、协议、结构和技术以避免使说明书变得模糊不清。
在某些实例实施例中,集成电路包括多个要设计的元件。某些实例实施例适用于具有多个层的分层网络设计,其中设计中的某些元件尚未完成。设计中的元件实例可以包括源元件、宿元件、连接其它元件的导线等。某些实例实施例识别具有失败或未完成数据的元件(“未完成元件”)。这些未完成元件可能具有非优化数据,例如元件内部的非优化长路径、缺失互连导线逻辑或错误断言(输入)。可以通过测量元件行为并将这些测量值与理想元件的测量值相比较而识别这些未完成元件。例如,要测量的元件行为可以包括被传输和处理的信号的计时。
可以使用理想元件替换这些未完成元件,从而使能优化网络的其余部分。此外,可以将替换元件定义的约束返回给被替换的未完成元件的设计人员。这种具有替换元件的设计可防止这些未完成元件通过过度缓冲和过度使用较高金属层而在设计中产生拥挤,从而使能在集成级别正确测试完成的其它元件。因此,对于分层网络设计,设计人员可以同时在不同级别进行设计,即使设计中的其它元件尚未完成。
某些实例实施例识别具有以下一个或多个问题的元件:1)缺失或失败的断言,2)一个或多个缺失锁存器,3)弱源,以及4)弱宿。此外,给定元件可能没有这些问题,或者具有其中某些或全部问题。将这些元件视为设计的不同类型的未完成元件。此外,使用替换元件替换未完成元件,以便最小化由过度缓冲导致的设计中的拥挤,并最大程度地减少使用设计中的较高金属层。这种实施例能够使不同元件的不同设计人员仍然明确了解拥挤和计时权衡。此外,不同设计人员可以确定设计中是否具有其它可能存在问题的路径。不同设计人员可以确定是否需要更改设计的平面图,或者是否需要调整引脚分配。
可以使用不同方法识别和替换设计中的未完成元件。为了识别包括缺失或失败的断言或者一个或多个缺失锁存器的问题,可以理想化分层设计中的顶层元件,以便具有零导线加载建模。备选地,对于该问题,可以使用“理想缓冲”建模,该建模假设可以在最高金属层插入缓冲器,所述最高金属层具有最佳寄生电阻和电容以及最佳斯坦纳拓扑(例如,忽略堵塞的斯坦纳树或者最佳堵塞感知斯坦纳树)。将识别不满足定义的计时裕度(slack)阈值的元件。对于这些元件,可以更改断言以使裕度变成正裕度和/或将下一个裕度标记为“不用于层提升”但仍然允许缓冲以修复转换率违反。但是,在这些元件的某些实例实施例中,不允许提升到设计中的较高层。
为了识别弱源的问题,在某些实例实施例中,断开设计顶层处的元件的连接。通过在边界处添加缓冲器,然后将如下元件识别为具有弱源(下面进一步描述)的元件:在该缓冲器处具有大于定义的源转换率限制阈值的输入源转换率。修改这些元件,以便在其输出边界处布置缓冲器。在该缓冲器的输入侧断言理想的输入源转换率,并且该缓冲器的输出转换率将小于所述源转换率限制阈值。此外,可以在分层设计的顶层执行这种缓冲。
为了识别弱宿的问题,在某些实例实施例中,断开设计顶层处的元件的连接。然后将如下元件识别为具有弱宿(下面进一步描述)的元件:其输入宿转换率大于定义的宿转换率限制阈值。修改这些元件,以便在其输入边界处布置缓冲器,从而使输入宿转换率小于所述宿转换率限制阈值。此外,可以在分层设计的顶层执行这种缓冲。
某些实例实施例并不限于集成电路。某些实例实施例适用于其它设计,所述其它设计具有由不同设计人员同时设计的多个元件。某些实例实施例适用于能源网络设计。例如,这种设计中的未完成元件可以包括变压器。某些实例实施例还适用于包括备用能源(例如,发电厂、风力、太阳能等)的设计。其中某些备用能源可能不会持续可用或者具有紧急故障。例如,局部电源连接导线可能断开。需要稳定网络,以便不仅修复故障元件,而且还不会导致网络的大规模中断或更改。在这种配置中,可以监视网络中的元件。当元件属性不匹配元件数据库中的预期值时,发出警报。可以针对故障网络启用备份网络。此外,可以使用模块对这些故障元件进行建模,以便对于网络外部的元件而言网络看似正常运行。
图1示出了根据某些实例实施例的用于对包含具有未完成或失败计时的元件的设计进行早期设计周期优化的系统。系统100包括电路设计模块102和用于存储理想设计元件的数据库104。例如,与微处理器进行通信的通信逻辑元件的设计和L1高速缓存作为微处理器设计的一部分。该设计可以包括布图、计时等。数据库104还可以定义理想元件的转换率限制阈值、裕度阈值等,下面将进一步进行描述。分层设计106中包括多个元件。这些元件可以位于设计的不同层级,并且尽管未示出,可以在通信上耦合在一起。
分层设计106可以表示为可由电路设计模块102处理的代码或语言。在该实例中,分层设计106包括已优化的元件或未完成的元件。已优化元件包括已优化元件108、110、114、116、118、120、122、124和126。未完成元件包括未完成元件112、128和130。电路设计模块102被配置为接收和处理分层设计106(如下面更详细地描述的那样)。具体而言,电路设计模块102可以处理分层设计106的不同元件以识别未完成元件并使用替换元件140替换未完成元件。在某些实例实施例中,对未完成元件及其替换元件的识别基于存储在理想元件数据库104中的元件。可通过测试元件来确定哪些元件具有未完成或失败计时。根据不同的问题测试和替换元件的实例将在下面参考图2-5进行描述。
图2示出了根据某些实例实施例的具有弱源的未完成元件的替换。图2示出在设计中具有弱源的元件的三个阶段。第一阶段250在元件测试之前。第二阶段252在测试元件以判定该元件是否具有弱源之时。第三阶段254在测试之后并包括替换未完成元件。
在第一阶段250,未完成元件202包括通过导线214与两个接收器210和212(处于未完成元件外部)耦合的驱动器208。驱动器208将信号驱动到两个接收器210和212。另外,信号到达驱动器208的时间被定义为到达时间1(AT1)。
图1的电路设计模块102在其中包括源的分层设计中测试元件。对于该实例,电路设计模块102将测试缓冲器216置于在驱动器208与接收器210和212之间的未完成元件的202的边界处(如在第二阶段252处所示)。电路设计模块102然后测量测试缓冲器216处的输入转换率。如果输入转换率大于源转换率限制阈值,则由于是弱源,将该元件视为未完成元件。源转换率限制阈值可以是根据特定设计、技术类型、设计规格等变化的值。
在响应期间(在第三阶段254示出),电路设计模块102将在分层设计中使用替换元件(被示为替换元件206)替换未完成元件。在该替换元件中,未完成元件的内部网络被移除并被替换元件206的边界处的用于将信号发送到接收器210和212的缓冲器218所替换。另外,缓冲器218被移到分层设计的顶层。信号到达缓冲器的时间被定义为到达时间2(AT2),该时间被定义为:
AT2=AT1+L*传送时间(内层)
其中L被定义为将驱动器208连接到测试缓冲器216所在边界的导线长度。传送时间的单位可基于皮秒/毫米。因此,AT2的单位可以是皮秒。AT2计算在元件的宏中假设理想的缓冲和层分配。此外,针对替换元件206定义新的输入转换率。指定新输入转换率小于源转换率限制阈值,并且可根据设计技术和元件而变化。
图3示出了根据某些实例实施例的具有弱宿的未完成元件的替换。图3示出在设计中具有弱宿的元件的三个阶段。第一阶段350在元件测试之前。第二阶段352在测试元件以判定该元件是否具有弱源之时。第三阶段354在测试之后并包括替换未完成元件。
在第一阶段350,未完成元件302包括通过导线310与驱动器306(处于未完成元件外部)耦合的接收器308。驱动器306通过导线310将信号驱动到接收器308。另外,信号需要到达接收器308的时间被定义为必要到达时间1(RAT1)。
图1的电路设计模块102在其中包括宿的分层设计中测试元件。对于该实例,电路设计模块102将测试缓冲器310置于在驱动器306与接收器308之间的未完成元件的302的边界处(如在第二阶段352所示)。在测试缓冲器310处断言理想的输入转换率。电路设计模块102然后在接收器处执行测量。如果输入转换率大于宿转换率限制阈值,则由于是弱宿,将该元件视为未完成元件。宿转换率限制阈值可以是根据特定设计、技术类型、设计规格等而变化的值。
在响应期间(在第三阶段354示出),电路设计模块102将在分层设计中使用替换元件(被示为替换元件306)替换未完成元件。在该替换元件中,未完成元件的内部网络被移除并被替换元件306的边界处的用于从驱动器306接收信号的缓冲器312所替换。另外,缓冲器312被移到分层设计的顶层。信号到达缓冲器的时间被定义为必要到达时间2(RAT2),该时间被定义为:
RAT2=RAT1+L*传送时间(内层)
其中L被定义为将测试缓冲器310在边界处的位置连接到接收器308的导线长度。传送时间的单位可基于皮秒/毫米。因此,RAT2的单位可以是皮秒。RAT2计算在元件的宏中假设理想的缓冲和层分配。
图4示出了根据某些实例实施例的具有一个或多个缺失锁存器的未完成元件的替换。图4可以表示作为设计中其它两个元件的连接件(例如,连线)的元件。在该实例中,第一元件的引脚406通过导线410连接到第二元件的引脚408。图4针对在设计中具有一个或多个缺失锁存器的元件示出两个阶段。第一阶段420在测试元件以判定该元件是否具有一个或多个缺失锁存器之前以及之时。第二阶段452在测试之后并包括替换未完成元件。
在第一阶段450,被测元件是连接第一元件的引脚406和第二元件的引脚408的导线410。导线410的长度为L。图1的电路设计模块102将测试连接分层设计中其它元件的元件。对于所示的两个引脚网络(pin nets),电路设计模块102将针对沿着导线410从引脚406到引脚408的信号传输做出如下假设:
最佳延迟=L*传送时间(层)
因此,忽略阻塞并且使用最强大的缓冲器。不考虑缓冲资源和区域阻塞。另外,电路设计模块102假设最佳层(通常为顶层)。电路设计模块102然后确定沿着导线410到达引脚408的信号的裕度值(slack value)。如果裕度值小于该元件的已定义阈值,则该元件(导线410)被定义为未完成。例如,假设分层设计是针对5千兆赫(GHz)微处理器的设计,其中周期时间为200皮秒。另外对于该实例,假设沿着导线410从引脚406到引脚408的信号的到达时间为150皮秒;L是3毫米(mm);并且最佳层上的传送时间为20皮秒/毫米。在该实例中,裕度将为90皮秒(150-3*20皮秒)。因此,该元件被视为无希望。在某些实例实施例中,电路设计模块102可通过迭代发现相关性元件。具体而言,电路设计模块102可以通过默认层在第一轮标注被视为无希望的元件。电路设计模块102然后可以再次运行以查找依赖于这些无希望元件的元件。
响应于元件未完成(无希望)(如在第二阶段452所示),电路设计模块102将在分层设计中使用替换元件(被示为替换元件404)替换未完成元件。具体而言,理想的方式是添加一个或多个锁存器(参见锁存器418)以使裕度为正(在导线中间添加一个锁存器将使裕度等于200-150-1.5*20=20皮秒)。但是,逻辑设计者可能未准备好添加锁存器。因此,可以更改断言(参见更改断言420)。例如,到达时间可以更改为150-30=120皮秒并且最佳裕度将为200-120-3*20=20皮秒。需要指出,通过此调整,电路设计模块102仍需插入真实的缓冲器以获得“最佳裕度”。在某些实例实施例中,不允许电路设计模块102更改元件的层分配以尝试校正该无希望的元件。例如,电路设计模块102被阻止将元件移到较高的层以增加信号速度。具体而言,已假设最佳延迟情景并且不校正无希望的元件。因此,允许电路设计模块102将元件移到分层设计中的较高层将不会校正无希望元件,却会无谓地阻塞较高的层(这些层否则将由其它元件使用)。在某些实例实施例中,设计者可以根据预测的锁存器数量预定义层的特性。
在某些实例实施例中,电路设计模块102可以判定元件内连线的裕度是否小于裕度阈值。电路设计模块102针对顶层元件应用零线延迟模块并针对元件内的网络(nets)应用真实的线延迟模块。如果网络的裕度小于裕度阈值,则将该网络视为无希望。因此,电路设计模块102可以添加缓冲器以减小网络内的裕度。另外在一些实例实施例中,不允许电路设计模块102更改该网络的层分配(如上所述)。
图5示出了根据某些实例实施例的具有错误断言的未完成元件的替换。与图4类似,图5的未完成元件可以表示作为设计中其它两个元件的连接件(例如,连线)的元件。元件的断言可以是不同的输入。现在返回作为5GHz微处理器(其中周期时间为200皮秒)的集成电路一部分的元件实例。错误或缺失断言可以定义引脚处不可能的到达时间。例如,假设引脚处信号的到达时间为250皮秒。该断言是错误的,因为即使使用零延迟,裕度也会为50皮秒。
在图5的实例中,第一元件的引脚506通过导线510连接到第二元件的引脚508。图5针对在设计中具有错误断言的元件示出两个阶段。第一阶段550在测试元件以判定该元件是否具有缺失或错误断言之前以及之时。第二阶段552在测试之后并包括替换未完成元件。
在第一阶段550,被测元件是连接第一元件的引脚506和第二元件的引脚508的导线510。导线510的长度为L。图1的电路设计模块102将测试连接分层设计中其它元件的元件。对于所示的两个引脚网络(pin nets),电路设计模块102将针对沿着导线510从引脚506到引脚508的信号传输做出如下假设:
最佳延迟=L*传送时间(层)
因此,忽略阻塞并且使用最强大的缓冲器。不考虑缓冲资源和区域阻塞。另外,电路设计模块102假设最佳层(通常为顶层)。电路设计模块102然后确定沿着导线510到达引脚508的信号的裕度值。如果裕度值小于该元件的已定义阈值,则该元件(导线510)被定义为未完成。因此,该元件被视为无希望。在某些实例实施例中,电路设计模块102可通过迭代发现相关性元件。具体而言,电路设计模块102可以通过默认层在第一轮标注被视为无希望的元件。电路设计模块102然后可以再次运行以查找依赖于这些无希望元件的元件。
响应于元件未完成(无希望)(如在第二阶段552所示),电路设计模块102将在分层设计中使用替换元件(被示为替换元件504)替换未完成元件。具体而言,可以更改断言(参见更改断言520)。例如,到达时间可以更改为150-30=120皮秒并且最佳裕度将为200-120-3*20=20皮秒。在某些实例实施例中,不允许电路设计模块102更改元件的层分配以尝试校正该无希望的元件。例如,电路设计模块102被阻止将元件移到较高的层以增加信号速度。具体而言,已假设最佳延迟情景并且不会校正无希望的元件。因此,允许电路设计模块102将元件移到分层设计中的较高层将不会校正无希望元件,却会无谓地阻塞较高的层(这些层否则将由其它元件使用)。
在某些实例实施例中,电路设计模块102可以判定元件内连线的裕度是否小于裕度阈值。电路设计模块102针对顶层元件应用零线延迟模块并针对元件内的网络(net)应用真实的线延迟模块。如果网络的裕度小于裕度阈值,则将该网络视为无希望。因此,电路设计模块102可以添加缓冲器以减小网络内的裕度。另外在一些实例实施例中,不允许电路设计模块102更改该网络的层分配(如上所述)。
图6示出了根据某些实例实施例的用于对包含具有未完成或失败计时的元件的设计进行早期设计周期优化的流程图。图6示出了流程图600。流程图600的操作参考图1-5进行描述,并且由图1的电路设计模块102执行。流程图600的操作从方框602开始。
在方框602,电路设计模块102接收集成电路的分层网络设计,其中所述分层设计包括耦合在一起的多个元件。现在参考图1,电路设计模块102接收表示为可由电路设计模块102处理的代码或语言的分层设计106。流程图600的操作继续到方框604。
在方框604,电路设计模块102判定任何元件是否具有失败计时和未完成计时中的至少一个,所述判定基于包括缺失断言、一个或多个缺失锁存器、弱源和弱宿中的至少一个的问题。如上参考图2-5所述,电路设计模块102根据不同的问题判定任何元件是否具有失败或未完成计时。如果根据其中一个问题判定任何元件具有失败或未完成计时,则流程图600的操作继续到方框606。否则,操作继续到方框610。
在方框606,电路设计模块102使用与所述问题无关的其它元件替换具有失败计时和未完成计时中的至少一个的元件。如上参考图2-5所述,电路设计模块102使用依赖于问题类型的替换元件替换未完成元件。此外,电路设计模块102可将替换元件定义的约束提供回被替换的未完成元件的设计者。流程图600的操作继续到方框608。
在方框608,电路设计模块102基于替换元件而测试所述多个元件中的其它元件。因此,可以在不使用会对元件当中的信号计时产生负面影响的未完成元件的情况下,测试分层设计中的其它元件。流程图600的操作沿着该路径完成。
在方框610,电路设计模块102在不使用不同元件进行替换的情况下测试元件。具体而言,采取分层设计的元件不被视为未完成。因此,可以使用一组当前元件测试设计中的元件。流程图600的操作完成。
所属技术领域的技术人员知道,本发明主题的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明主题的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明主题的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是—但不限于—电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何能够包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括例如在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括—但不限于—电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括—但不限于—无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明主题的各个方面的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明主题的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明主题的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其它设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
图7示出了根据某些实例实施例的计算机系统。具体地说,计算机系统700可以表示耦合到一个或多个链路本地区域的节点(如在此描述的)。计算机系统700包括处理器单元701(可能包括多个处理器、多个核心、多个节点和/或实现多线程等)。计算机系统700包括易失性机器可读介质707。易失性机器可读介质707可以是系统存储器(例如,以下一项或多项:高速缓存、SRAM、DRAM、零电容器RAM、双晶体管RAM、eDRAM、EDO RAM、DDR RAM、EEPROM、NRAM、RRAM、SONOS、PRAM等),或者上面已经描述的机器可读介质的可能实现的任意一种或多种。计算机系统700还包括总线703(例如,PCI、ISA、PCI-Express、 NuBus等)、网络接口705(例如,ATM接口、以太网接口、帧中继接口、SONET接口、无线接口等),以及非易失性机器可读介质709(例如,光存储装置、磁存储装置等)。网络接口705可以包括一个或多个要被配置的接口(如在此描述的)。计算机系统700包括电路设计模块725,其可以表示图1的电路设计模块102并可以执行操作(如在此描述的)。这些功能的任意一种都可以部分(或全部)在硬件和/或处理单元701中实现。例如,功能可以使用专用集成电路实现、以在处理单元701中实现的逻辑实现、在外围设备或卡中的协处理器中实现等。此外,实现可以包括未在图7中示出的更少或其它元件(例如,视频卡、音频卡、其它网络接口、外围设备等)。处理器单元701、非易失性机器可读介质709、易失性机器可读介质707、网络接口705和接口配置模块725都耦合到总线703。尽管被示为耦合到总线703,但易失性机器可读介质707可以耦合到处理器单元701。
虽然参考各种实现和利用描述实施例,但应当理解,这些实施例是示例性的,并且本发明主题的范围并不限于这些实施例。一般而言,可以使用与任何一个或多个硬件系统一致的工具,实现在此描述的用于页面转换的技术。可能具有许多变化、修改、增加和改进。
可以为作为单个实例在此描述的元件、操作或结构提供多个实例。最后,各种元件、操作和数据存储之间的界限具有某种程度的任意性,并且在特定示例性配置的上下文中示出特定操作。将设想其它功能分配,并且这些分配可以落入本发明主题的范围之内。一般而言,在示例性配置中作为单独元件提供的结构和功能可以被实现为组合的结构或元件。同样,作为单个元件提供的结构和功能可以被实现为单独元件。这些和其它变化、修改、增加和改进可以落入本发明主题的范围之内。

Claims (15)

1.一种用于设计集成电路的计算机实现的方法,所述计算机实现的方法包括:
接收所述集成电路的分层网络设计,其中所述分层设计包括耦合在一起的多个元件;
检测所述多个元件中的一个元件具有失败计时和未完成计时中的至少一个,所述检测基于包括以下项中的至少一个的问题:
缺失断言,
一个或多个缺失锁存器,
输入源转换率大于源转换率限制阈值的源驱动器,其中所述检测包括:
在所述源驱动器的边界处添加测试缓冲器;以及
确定所述测试缓冲器处的所述输入源转换率大于所述源转换率限制阈值;
以及
输入宿转换率大于宿转换率限制阈值的宿;
使用与所述问题无关的不同元件替换该元件,其中使用不同元件替换该元件包括:
在所述源驱动器的输出端处断言新缓冲器;
断言小于所述源驱动器的所述源转换率限制阈值的转换率;以及
断言所述新缓冲器处的数据的新到达时间,所述新到达时间近似等于该元件中的驱动器处的到达时间,加上连接所述测试缓冲器和所述驱动器的导线的长度乘以数据沿着所述驱动器和所述测试缓冲器之间的所述导线的传送时间;
以及
基于所述不同元件而测试所述多个元件中的其它元件。
2.根据权利要求1的计算机实现的方法,其中所述问题包括所述输入宿转换率大于宿转换率限制阈值的宿,其中该元件包括所述宿,其中检测包括:
在所述宿的边界处添加测试缓冲器;以及
确定该元件中的接收器处的所述输入宿转换率大于所述宿转换率限制阈值。
3.根据权利要求2的计算机实现的方法,其中使用不同元件替换该元件包括:
在所述宿的输入端处断言新缓冲器;
断言小于所述宿的所述宿转换率限制阈值的转换率;
断言所述新缓冲器处的数据的新到达时间,所述新到达时间近似等于该元件中的所述接收器处的到达时间,减去连接所述测试缓冲器和所述接收器的导线的长度乘以数据沿着所述驱动器和所述测试缓冲器之间的所述导线的传送时间。
4.根据权利要求1的计算机实现的方法,其中所述问题包括缺失断言和一个或多个缺失锁存器中的至少一个,其中该元件包括连接所述多个元件中的两个其它元件的连线,其中检测包括:
基于所述两个其它元件之间的最佳延迟,使用该元件配置所述两个其它元件的连接,其中所述最佳延迟被定义为所述连线的长度乘以沿着所述连线传送的信号的传送时间;以及
基于所述最佳延迟,判定所述两个其它元件中接收所述信号的接收器元件处的裕度是否小于裕度阈值;
其中使用不同元件替换该元件包括沿着所述两个其它元件之间的所述连线插入一个或多个锁存器,使得所述接收器元件处的裕度大于所述裕度阈值,其中使用不同元件替换该元件与所述不同元件在所述分层设计中相对于该元件的层的层提升无关。
5.一种用于设计集成电路的计算机实现的方法,所述计算机实现的方法包括:
接收所述集成电路的分层网络设计,其中所述分层设计包括耦合在一起的多个元件;
检测所述多个元件中的第一元件具有失败计时和未完成计时中的至少一个,所述检测基于包括缺失断言和输入源转换率大于源转换率限制阈值的源驱动器的问题,其中所述检测包括:
在所述源驱动器的边界处添加测试缓冲器;以及
确定所述测试缓冲器处的所述输入源转换率大于所述源转换率限制阈值,
其中所述第一元件包括连接所述多个元件中的第二元件和第三元件的连线;
使用与所述问题无关的不同元件替换所述第一元件,其中使用不同元件替换该元件包括:
在所述源驱动器的输出端处断言新缓冲器;
断言小于所述源驱动器的所述源转换率限制阈值的转换率;以及
断言所述新缓冲器处的数据的新到达时间,所述新到达时间近似等于该元件中的驱动器处的到达时间,加上连接所述测试缓冲器和所述驱动器的导线的长度乘以数据沿着所述驱动器和所述测试缓冲器之间的所述导线的传送时间;以及
基于所述不同元件而测试所述多个元件中的其它元件。
6.根据权利要求5的计算机实现的方法,其中检测包括:
基于所述第二元件和所述第三元件之间的最佳延迟,使用所述第一元件配置所述第二元件到所述第三元件的所述连接,其中所述最佳延迟被定义为所述连线的长度乘以沿着所述连线传送的信号的传送时间;以及
基于所述最佳延迟,判定所述第三元件处的裕度是否小于裕度阈值;
7.根据权利要求6的计算机实现的方法,其中使用不同元件替换所述第一元件包括沿着所述第二元件和所述第三元件之间的所述连线插入一个或多个锁存器,使得所述第三元件处的裕度大于所述裕度阈值。
8.根据权利要求7的计算机实现的方法,其中使用不同元件替换所述第一元件与所述不同元件在所述分层设计中相对于所述第一元件的层的层提升无关。
9.一种用于设计集成电路的装置,所述装置包括:
配置为接收所述集成电路的分层网络设计的模块,其中所述分层设计包括耦合在一起的多个元件;
配置为检测所述多个元件中的一个元件具有失败计时和未完成计时中的至少一个的模块,所述检测基于包括以下项中的至少一个的问题:
缺失断言,
一个或多个缺失锁存器,
输入源转换率大于源转换率限制阈值的源驱动器,其中所述检测包括:
配置为在所述源驱动器的边界处添加测试缓冲器;以及
配置为确定所述测试缓冲器处的所述输入源转换率大于所述源转换率限制阈值;
以及
输入宿转换率大于宿转换率限制阈值的宿;
配置为使用与所述问题无关的不同元件替换该元件的模块,其中配置为使用不同元件替换该元件包括:
配置为在所述源驱动器的输出端处断言新缓冲器;
配置为断言小于所述源驱动器的所述源转换率限制阈值的转换率;以及
配置为断言所述新缓冲器处的数据的新到达时间,所述新到达时间近似等于该元件中的驱动器处的到达时间,加上连接所述测试缓冲器和所述驱动器的导线的长度乘以数据沿着所述驱动器和所述测试缓冲器之间的所述导线的传送时间;以及
配置为基于所述不同元件而测试所述多个元件中的其它元件的模块。
10.根据权利要求9的装置,其中所述问题包括所述输入宿转换率大于宿转换率限制阈值的宿,其中该元件包括所述宿,其中配置为基于问题而检测所述多个元件中的一个元件具有失败计时和未完成计时中的至少一个的模块包括:
配置为在所述宿的边界处添加测试缓冲器的模块;以及
配置为确定该元件中的接收器处的所述输入宿转换率大于所述宿转换率限制阈值的模块。
11.根据权利要求10的装置,其中配置为使用不同元件替换该元件的模块包括:
配置为在所述宿的输入端处断言新缓冲器的模块;
配置作为断言小于所述宿的所述宿转换率限制阈值的转换率的模块;
配置为断言所述新缓冲器处的数据的新到达时间的模块,所述新到达时间近似等于该元件中的所述接收器处的到达时间,减去连接所述测试缓冲器和所述接收器的导线的长度乘以数据沿着所述驱动器和所述测试缓冲器之间的所述导线的传送时间。
12.根据权利要求9的装置,其中所述问题包括缺失断言和一个或多个缺失锁存器中的至少一个,其中该元件包括连接所述多个元件中的两个其它元件的连线,其中配置为基于问题而检测所述多个元件中的一个元件具有失败计时和未完成计时中的至少一个的模块包括:
配置为基于所述两个其它元件之间的最佳延迟,使用该元件配置所述两个其它元件的连接的模块,其中所述最佳延迟被定义为所述连线的长度乘以沿着所述连线传送的信号的传送时间;以及
配置为基于所述最佳延迟,判定所述两个其它元件中接收所述信号的接收器元件处的裕度是否小于裕度阈值的模块;
其中使用不同元件替换该元件包括操作,所述操作配置为沿着所述两个其它元件之间的所述连线插入一个或多个锁存器,使得所述接收器元件处的裕度大于所述裕度阈值,其中使用不同元件替换该元件与所述不同元件在所述分层设计中相对于该元件的层的层提升无关。
13.一种用于设计集成电路的装置,所述装置包括:
配置为接收所述集成电路的分层网络设计的模块,其中所述分层设计包括耦合在一起的多个元件;
配置为检测所述多个元件中的第一元件具有失败计时和未完成计时中的至少一个的模块,所述检测基于包括缺失断言和输入源转换率大于源转换率限制阈值的源驱动器的问题,其中所述检测包括:
在所述源驱动器的边界处添加测试缓冲器;以及
确定所述测试缓冲器处的所述输入源转换率大于所述源转换率限制阈值,
其中所述第一元件包括连接所述多个元件中的第二元件和第三元件的连线;
配置为使用与所述问题无关的不同元件替换所述第一元件的模块,其中使用不同元件替换该元件包括:
在所述源驱动器的输出端处断言新缓冲器;
断言小于所述源驱动器的所述源转换率限制阈值的转换率;以及
断言所述新缓冲器处的数据的新到达时间,所述新到达时间近似等于该元件中的驱动器处的到达时间,加上连接所述测试缓冲器和所述驱动器的导线的长度乘以数据沿着所述驱动器和所述测试缓冲器之间的所述导线的传送时间;以及
配置为基于所述不同元件而测试所述多个元件中的其它元件的模块。
14.根据权利要求13的装置,其中配置为基于问题而检测所述多个元件中的第一元件具有失败计时和未完成计时中的至少一个的模块包括:
配置为基于所述第二元件和所述第三元件之间的最佳延迟,使用所述第一元件配置所述第二元件到所述第三元件的所述连接的模块,其中所述最佳延迟被定义为所述连线的长度乘以沿着所述连线传送的信号的传送时间;以及
配置为基于所述最佳延迟,判定所述第三元件处的裕度是否小于裕度阈值的模块;
15.根据权利要求14的装置,其中配置为使用不同元件替换所述第一元件的模块包括:
配置为沿着所述第二元件和所述第三元件之间的所述连线插入一个或多个锁存器,使得所述第三元件处的裕度大于所述裕度阈值的模块,其中使用不同元件替换所述第一元件与所述不同元件在所述分层设计中相对于所述第一元件的层的层提升无关。
CN201310214539.2A 2012-06-01 2013-05-31 用于设计集成电路的计算机实现的方法和装置 Expired - Fee Related CN103455655B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/486,177 2012-06-01
US13/486,177 US8640075B2 (en) 2012-06-01 2012-06-01 Early design cycle optimzation

Publications (2)

Publication Number Publication Date
CN103455655A CN103455655A (zh) 2013-12-18
CN103455655B true CN103455655B (zh) 2017-04-12

Family

ID=49671907

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310214539.2A Expired - Fee Related CN103455655B (zh) 2012-06-01 2013-05-31 用于设计集成电路的计算机实现的方法和装置

Country Status (2)

Country Link
US (2) US8640075B2 (zh)
CN (1) CN103455655B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8640075B2 (en) 2012-06-01 2014-01-28 International Business Machines Corporation Early design cycle optimzation
US9536030B2 (en) * 2014-06-12 2017-01-03 International Business Machines Corporation Optimization of integrated circuit physical design
US10169523B2 (en) * 2015-08-27 2019-01-01 International Business Machines Corporation Timing constraints formulation for highly replicated design modules
US9798850B2 (en) 2016-01-05 2017-10-24 International Business Machines Corporation System and method for combined path tracing in static timing analysis
US9684756B1 (en) 2016-01-25 2017-06-20 International Business Machines Corporation Assigning nets to wiring planes using zero wire load and signal propagation timing for chip design
US10657211B2 (en) * 2018-04-20 2020-05-19 International Business Machines Corporation Circuit generation based on zero wire load assertions

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1716090A (zh) * 2004-06-28 2006-01-04 国际商业机器公司 在交替相移掩模中着色局部着色的设计的系统

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5764525A (en) 1994-01-28 1998-06-09 Vlsi Technology, Inc. Method for improving the operation of a circuit through iterative substitutions and performance analyses of datapath cells
US6701505B1 (en) 2001-11-30 2004-03-02 Sequence Design, Inc. Circuit optimization for minimum path timing violations
US7178118B2 (en) 2003-05-30 2007-02-13 Synplicity, Inc. Method and apparatus for automated circuit design
US7401307B2 (en) 2004-11-03 2008-07-15 International Business Machines Corporation Slack sensitivity to parameter variation based timing analysis
KR100593803B1 (ko) * 2004-12-06 2006-06-28 주식회사 엔타시스 반도체 집적회로의 블록배치 및 전력배선 설계방법
US20060253814A1 (en) 2005-05-03 2006-11-09 Howard Porter Method and apparatus for fixing hold time violations in a hierarchical integrated circuit design
US7444600B2 (en) * 2005-08-17 2008-10-28 Kabushiki Kaisha Toshiba System and method for circuit noise analysis
JP2008210858A (ja) * 2007-02-23 2008-09-11 Fujitsu Ltd 半導体集積回路の設計方法、設計装置及びcadプログラム
US7555740B2 (en) * 2007-02-27 2009-06-30 International Business Machines Corporation Method and system for evaluating statistical sensitivity credit in path-based hybrid multi-corner static timing analysis
US8239798B1 (en) * 2007-08-03 2012-08-07 Cadence Design Systems, Inc. Methods, systems, and apparatus for variation aware extracted timing models
US7810062B2 (en) 2007-09-11 2010-10-05 International Business Machines Corporation Method for eliminating negative slack in a netlist via transformation and slack categorization
US7886246B2 (en) 2008-04-16 2011-02-08 International Business Machines Corporation Methods for identifying failing timing requirements in a digital design
US8103997B2 (en) * 2009-04-20 2012-01-24 International Business Machines Corporation Method of employing slew dependent pin capacitances to capture interconnect parasitics during timing abstraction of VLSI circuits
US8640075B2 (en) 2012-06-01 2014-01-28 International Business Machines Corporation Early design cycle optimzation

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1716090A (zh) * 2004-06-28 2006-01-04 国际商业机器公司 在交替相移掩模中着色局部着色的设计的系统

Also Published As

Publication number Publication date
US20130326450A1 (en) 2013-12-05
US8640075B2 (en) 2014-01-28
US9038009B2 (en) 2015-05-19
CN103455655A (zh) 2013-12-18
US20140101629A1 (en) 2014-04-10

Similar Documents

Publication Publication Date Title
CN103455655B (zh) 用于设计集成电路的计算机实现的方法和装置
KR101471237B1 (ko) 적응형 전압 스케일링 최적화를 이용하는 집적 회로들을 설계하기 위한 시스템 및 방법
US8453085B2 (en) Method for estimating the latency time of a clock tree in an ASIC design
CN101877017B (zh) 使用快速估计技术的有效的采用穷尽法的基于路径的sta
US6950998B1 (en) Place-and-route with power analysis
US8806413B2 (en) Gradient AOCV methodology enabling graph-based timing closure with AOCV timing models
US8656331B1 (en) Timing margins for on-chip variations from sensitivity data
WO2009035813A1 (en) Method of constrained aggressor set selection for crosstalk induced noise
US9058456B2 (en) Method and system to fix early mode slacks in a circuit design
JP2011530763A5 (zh)
US8719752B1 (en) Hierarchical crosstalk noise analysis model generation
US8713506B2 (en) System and method for employing signoff-quality timing analysis information concurrently in multiple scenarios to reduce dynamic power in an electronic circuit and an apparatus incorporating the same
US20030188268A1 (en) Low Vt transistor substitution in a semiconductor device
US20160063171A1 (en) Method, system, and computer program product for schematic driven, unified thermal and electromagnetic interference compliance analyses for electronic circuit designs
CN112347722B (zh) 高效评估芯片Feed-through流水级数的方法及装置
US11443089B1 (en) Timing verification of non-standard library blocks
US20170308639A1 (en) Method for analyzing ir drop and electromigration of ic
US10073944B2 (en) Clock tree synthesis based on computing critical clock latency probabilities
US9727686B2 (en) Method for finding non-essential flip flops in a VLSI design that do not require retention in standby mode
US8839061B2 (en) System and method for scan chain re-ordering
US8527925B2 (en) Estimating clock skew
US20090210845A1 (en) Computer program product, apparatus, and method for inserting components in a hierarchical chip design
US9449127B1 (en) System for verifying timing constraints of IC design
US7231336B2 (en) Glitch and metastability checks using signal characteristics
US10885248B1 (en) Method for modeling glitches during circuit simulation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20171031

Address after: Grand Cayman, Cayman Islands

Patentee after: GLOBALFOUNDRIES INC.

Address before: American New York

Patentee before: Core USA second LLC

Effective date of registration: 20171031

Address after: American New York

Patentee after: Core USA second LLC

Address before: American New York

Patentee before: International Business Machines Corp.

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

Granted publication date: 20170412

Termination date: 20190531