CN111539176A - 集成电路设计与制造的多实例时间预算 - Google Patents
集成电路设计与制造的多实例时间预算 Download PDFInfo
- Publication number
- CN111539176A CN111539176A CN202010235960.1A CN202010235960A CN111539176A CN 111539176 A CN111539176 A CN 111539176A CN 202010235960 A CN202010235960 A CN 202010235960A CN 111539176 A CN111539176 A CN 111539176A
- Authority
- CN
- China
- Prior art keywords
- blocks
- integrated circuit
- design
- block
- delay
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- Evolutionary Computation (AREA)
- Databases & Information Systems (AREA)
- Architecture (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
一种对集成电路(IC)设计与制造的多实例时间预算的方法,包括获取图形数据结构和时钟循环要求,其中,图形数据结构包括多个块中的至少两个相同的块,至少两个相同的块对应于相同的设计模块。该方法获取每个设计模块的端口的内部延迟的值和外部延迟的值,并将相同的块的包括至少两个相同的块的内部延迟的值和外部延迟的值的参数设置为相等。该方法对所有块的端口的参数进行优化,并确定每个端口的优化的参数是否满足集成电路的预定要求。该方法基于优化的结果输出集成电路设计的最终设计以用于基于该最终设计制造集成电路。
Description
背景技术
示例性实施例大体上涉及在集成电路(IC)的设计和制造中针对半导体集成电路(IC)的组件的多实例时间预算。
IC包括大量的电子组件,通过在基板上形成不同材料和不同几何形状的多层而制造这些电子组件。IC设计继续不断发展,从而增加了IC设计和制造所需的复杂性和时间。此外,制造技术继续不断减小组件的尺寸,以允许将大量的功能集成在单个IC中。IC设计者能够在IC上创建越来越复杂和强大的组件系统,并且IC设计者需要高级设计语言来构造、验证和测试IC。
电子设计自动化(EDA)系统是用于帮助设计者设计IC的软件。对于复杂的IC,IC的物理布局和设计被分为具有多个层次结构的多个功能块,并且每个块可以对应于相同的设计模块或不同的设计模块。设计模块是完整IC设计的功能分区,该功能分区根据安装在块中的电子组件来描述块的功能。例如,EDA系统可以接收定义IC上的节点和组件的互连的IC装置的说明和参数,并且包括电路组件的多种类型的物理信息。时间预算可获得输入和输出延迟约束和用于块或分区的时序收敛的路径异常,从而同时实现所有块的时序收敛。
集成电路设计者可以使用EDA系统根据IC的逻辑电路设计创建物理集成电路设计布局。EDA系统使用不同材料的几何形状来设计基板上各种电气组件的布局。在创建初始集成电路布局时,设计者然后使用EDA系统分析和优化IC布局。EDA系统的一项功能是确定IC设计是否满足设计中沿信号路径的时序要求。设计未能充分满足时序要求可能会导致IC在使用过程中发生故障和/或无法按预期目的正常运行。因此,出于设计目的,对于设计者而言,能够准确地确认IC设计将能够满足其时序要求是很重要的。
为IC上的块的每个端口处的每个数据路径定义了时间预算。时间预算从整个IC设计的时序约束中得到块的时序约束。时间预算是大型IC设计的必要步骤,且使用算法将时序周期要求分配到IC的每个块的每个输入端口和输出端口。
具有用于执行时间预算的现有方法。用于执行时间预算的现有方法的第一个示例是将整个芯片设计转换为有向无环图(directed acyclic graph,DAG),并使用算法来确定IC设计中的每个块的输入和输出端口的时序规范。各个块的时序规范彼此不同,因此要求每个块的每个时序规范的实现彼此不同。
用于执行时间预算的现有方法的第二个示例是以自下而上的方法规定时间预算。设计者根据其专业知识或特定设计模块的已知时序规范来分配时序规范,而不是使用完整IC设计的时序规范。当块的物理布局无法满足完整IC中的块时序约束时,设计者可以通过手动重新分配块时序约束来解决这些问题。
然而,随着设计集成电路的复杂性继续增加,需要提高集成电路的设计和制造的时间预算的效率和准确性。
发明内容
示例性的实施例提供了一种划分为多个块的多实例IC的时间预算方法,其中,至少两个块包含组件的相同的设计模块。示例性的实施例将相等量的时间预算分配给具有相同的设计模块的块,同时仍实现完整IC的时序规范。因此,对于IC的具有相同的设计模块的多个块,将同时执行具有相同的设计模块的多个块的时间预算,从而减少了工程师的工作量和对计算资源机器(计算机)的要求,提高了设计过程的速度和效率,并生成了IC芯片的最终设计,在该IC芯片的最终设计中,具有相同的设计模块的块具有相同的最终时间预算设计。块的相同时间预算也使得在制造时的块的组件具有相同的物理设计。因此,示例性的实施例的设计过程还改变了在制造IC时块的物理实现方式。
在现有方法的第一个示例中,尽管多个块具有相同的设计模块,但每个块的时间预算彼此不同。该现有方法彼此独立地对每个块执行时间预算。由于时间预算会影响所制造的IC的物理布局,因此,当为相同的设计模块和块设置不同的时间预算时,物理实现方式需要不同的优化,从而导致连接IC的输入端口和输出端口的元件的最终设计不同。
根据该现有方法,在整个IC设计中出现“n”次的设计模块将需要“n”个不同的物理实现方式。当没有广泛的使用同一设计模块时,可能已经在之前允许这种耗时的过程以用于较小且较不复杂的IC。但是,这种耗时的方法目前很繁琐,并且浪费了当前和将来具有设计模块的IC的工程和计算资源,该设计模块可以在现代和未来设计中的单个IC中重复使用数次或数百次。
在现有方法的第二个示例中,时序规范是根据每个设计模块而不是完整IC时序规范计算的。尽管仅需要为每个设计模块的一个实现执行时序规范,但该实现仅仅考虑了该设计模块。
作为类似的例子,传统技术单独计算每个块的时间预算,从而导致不同块的内部延迟的值和外部延迟的值不同。因此,常规设计者必须单独创建每个块的物理实现方式,这可能需要巨大的工程量。对于另一种传统技术,设计者可以选择延迟值中的一个以实现相同的设计模块,这可能导致另一个模块中的时序路径的时序不良。然后,这将导致设计者需要通过几轮设计和修复来迭代地修复时序路径。另一个例子中,如果工作量太大,设计者可以利用先前的经验来设置延迟值,这也可能导致设计不良和/或繁琐的迭代以修复相邻的块。
然而,这些现有方法需要过多的时间和处理资源,尤其是随着现代电子装置中组件和功能部件的数量增加。
为了解决现有方法中的这些问题,示例性的实施例将相等的时间预算分配给具有相同的设计模块的块,同时仍然实现完整IC的时序规范。例如,示例性的实施例对具有相同设计的所有块设置相同的时间预算,然后为同一设计模块的设置块一起确定时间预算,而不是如常规技术中那样单独地确定。
时间预算方法分配相对于每个块的不同输入端口和输出端口的时间延迟。随着IC设计的发展,且在当前的电子装置中IC设计变得越来越复杂,整个IC中可能会有多个具有相同设计的块,即具有相同的设计模块的块。在常规的预算方法下,这些块根据不同算法具有单独的时间预算分配,工程师需要一对一地优化这些块。示例性的实施例通过确定具有相同的设计模块的块的相等时间预算来改进传统方法,同时仍然实现完整IC时序规范。
示例性的实施例通过一起而不是单独地对具有相同的设计模块的多个块执行时间预算来提供改进的时间预算,从而使得具有相同的设计模块的多个块的时间预算被确定为彼此相同。改进的时间预算减少了物理设计的工程师和计算资源(计算机)需求,提高了设计过程的速度和效率,并生成了IC芯片的最终设计,在该IC芯片的最终设计中,具有相同的设计模块的块具有相同的最终时间预算设计(和制造的布局)。
附图说明
图1示出了根据示例性实施例的具有四个块且四个块中的两个块具有相同的设计模块的完整IC。
图2示出了根据示例性实施例的具有IC的端口具有内部延迟和外部延迟的IC的块的示例。
图3示出了根据示例性实施例的图1所示的完整IC的每个块的端口的内部延迟和外部延迟。
图4示出了根据示例性实施例的完整IC的块之间的沿着时序路径的时序关系。
图5示出了根据示例性实施例的用于多实例时间预算的示例性处理的流程图。
图6示出了根据示例性实施例的用于IC的多实例时间预算的示例性时间预算装置的框图。
具体实施方式
示例性的实施例涉及IC设计的时钟信号时序的时间预算。图1是示出了完整集成电路(IC)100的框图,该集成电路100被划分为例如电子组件的四个功能块101(未示出)。将集成电路100划分为不同区域的块101根据每个块101内的电子组件执行功能。每个块101是完整集成电路100中的设计模块102的物理实例。
示例性的实施例针对用于集成电路100的块101的时间预算的集成电路设计的时钟信号时序的预算,以便满足预定的时间预算。时间预算划分了数据信号沿在集成电路100的不同块101之间延伸的数据路径传播的时间。时钟预算时序可以基于不同块101和/或完整集成电路100的时序模型。示例性的实施例通过一起而不是单独地对具有相同的设计模块102的多个块101执行时间预算来提供改进的时间预算,从而使得具有相同的设计模块102的多个块101的时间预算被确定为彼此相同。如此处进一步详细讨论的,这种改进的时间预算减少了EDA的计算需求,提高了设计过程的速度和效率,并生成了IC芯片的最终设计,在该IC芯片的最终设计中,具有相同的设计模块的块具有相同的最终时间预算设计(和制造的布局)。
时间预算是集成电路100设计中块实现的一部分,其允许为每个分区(例如,设计模块、块等)生成时序和物理约束。
示例性的实施例用于设计集成电路,例如集成电路100。可以以多种不同的方式,例如,不同电路等级的扁平芯片或树状层次结构,来描绘集成电路100。例如,出于说明性目的,图1示出的集成电路100为扁平芯片。
图1是示出被划分为电子组件的四个功能块101的集成电路100的框图。每个块101是完整集成电路100中的设计模块102的物理实例。设计模块102是集成电路100的功能分区。设计模块定义块101中电子组件的功能行为。设计模块102可以在集成电路中具有一个或多个物理实现方式。换句话说,完整集成电路100可以具有相同的多个设计模块102。
例如,如图1所示,块101中的两个块(块1和块3)具有相同的设计模块(设计模块A)。设计模块A定义了块1和块3的功能行为,其与设计模块B定义的功能行为和设计模块C定义的功能行为均不同。设计模块B和设计模块C分别定义块2和块4。
如图2和3所示,每个块101由一个或多个端口103(P11-P19、P21-P29、P210、P211、P31-39和P41-P46)定义。例如,端口103位于第一侧并作为输入端口以接收进入到块101的数据信号,并且端口103位于第二侧上作为输出端口以从每个块101发送传出数据信号。端口103具有连接元件107,连接元件107最初位于相对于每个块101的端口103的指定位置处。在时间预算的优化期间,时间预算将在下面更详细地讨论,一个或多个连接元件107的位置可以根据时间预算的变化而相对于端口103中的相应一个端口移动。在使用集成电路制造和/或制作工具制造时,集成电路100的最终设计中的每个端口103和连接元件107的位置标识了集成电路100上每个端口103和连接元件107的物理位置。
对于时钟时间预算,集成电路100的最高层次的总时钟延迟与数据信号路径的数据时间预算并行地在块101之间划分。将集成电路100的总时钟延迟指定为每个块101的外部时钟延迟104或内部时钟延迟105。
如图2至图4所示,为每个块101外部的延迟设置了外部延迟104(e11、e1824、e2833、e3843和e45),并为每个块101中的组件的延迟设置内部延迟105(d11-d19、d21-d25、d210、d211、d31-d35、d38、d39、d41-d43和d46)。也就是说,外部延迟104是所有块103之外的段,其是从“顶部”设计给出的值。内部延迟105是每个块101的“内部”的段,并且是通过时间预算的优化而优化的值。
如图4所示,时序路径106连接在集成电路100的不同块101之间。时序路径106指示在不同块101的端口之间传播的数据信号。时序路径106可以被配置为基于集成电路100上的电子组件的配置而在各种不同的块101之间连接。
例如,如图4所示,从块1延伸到块2再延伸到块3的第一时序路径106指示块1内传播的数据信号,其中,考虑了内部延迟d18、端口P18、外部延迟e1824、端口P24、内部延迟d24、端口P28、外部延迟e2833、端口P33和内部延迟d33。此外,第二时序路径106从块3延伸到块4,第二时序路径106指示块3内传播的数据信号,其中,考虑了内部延迟d38、端口P38、外部延迟e3843、端口P43、内部延迟d43、端口P45和外部延迟e45。
为了使集成电路100正常运行,集成电路100的时钟周期必须设置为等于或大于所有时序路径106,其中,数据信号具有足够的时间通过集成电路100传播。类似地,每个块101的时钟周期必须设置为等于或大于数据信号沿延伸通过相应块101的时序路径106传播所需的时间。因此,优化集成电路100的块101的时间预算以确保集成电路100的正常运行是重要的。
对集成电路(IC)进行时间预算的方法
图5示出了流程图,该流程图解释了对集成电路100进行时间预算的方法的示例性步骤。该方法可以包括比本文阐述的示例性实施例更少或更多的步骤。
在步骤S200中,基于集成电路100的电子组件的初始物理数据库,获取用于集成电路100的集成电路设计的图形数据结构。图3示出了图形数据结构的示例。图形数据结构将集成电路设计的电子组件划分为多个块101。多个块101中的每个块对应于设计模块102中的一个设计模块。至少两个块101(例如,块1和块3)对应于相同的设计模块102。
图形数据结构表示每个块101(块1、块2、块3和块4)的端口103(P11-P19、P21-P29、P210、P211、P31-39和P41-P46)的初始布局。图形数据结构还表示每个端口103的外部延迟104和内部延迟105。
在步骤S210中,获取并与多个块101相对应地初始设置每个设计模块103的多个端口103的内部延迟105的值和外部延迟104的值。内部延迟105的值和外部延迟104的值是由在端口103之间传播的数据信号引起的时间延迟。
在步骤S210至步骤S230中,对内部延迟105的值和外部延迟104的值进行优化,以满足集成电路100的预定时钟周期。优化是指一种定量计算机算法或方法,该算法或方法用于找到时间预算的可行的解。例如,算法可以是线性优化,其也可以称为线性编程。由于内部延迟105和外部延迟104之间的关系以及时钟循环的时钟周期是线性关系,因此使用线性优化或线性编程来计算变量的解是可行的。
时间预算算法相对于集成电路100的每个端口103为外部延迟104和内部延迟105分配时序要求。时序要求可以采用多种格式,例如一个时钟周期、一个时钟周期的一半或多个时钟周期。随着集成电路技术的发展,在整个芯片中可能存在多个具有相同的电子组件组成的块101,即,具有相同的设计模块102的块101。
在步骤220中,将具有相同的设计模块102的这些块101设置为彼此相等,因此,当在步骤S230中执行外部延迟104和内部延迟105的优化时,如下所述,对于集成电路100中具有相同的设计模块102的每个块101,内部延迟105的计算得到的时间预算是相同的。作为对传统技术的改进,通过将具有相同的设计模块102的块101设置为相等,该方法在优化过程中实现了对具有相同设计102的这些块101的多实例化,以减少对整个集成电路100进行优化的计算要求,并将与具有相同的设计模块102的这些块101的时间预算保持为相同。
在传统的时间预算下,根据不同的算法,将为图1的块1-4分配单独的时间预算分配,并且要求工程师逐一优化块1-4。然而,示例性实施例将相等量的时间预算分配给相同的设计模块102的块101(即,块1和块3),而仍实现完整集成电路100的时钟周期要求。因此,仅需要对相同的块(块1和块3)进行一次优化,而不是像传统技术中低效率地分别单独进行优化。
在步骤S230中,对内部延迟105的值和外部延迟104的值进行优化,以确定满足集成电路100的预定时钟周期的解。在具有不同设计模块102的每个块101上执行优化。这意味着,在图3和图4所示的示例中,由于块1和块3都具有相同的设计模块102(设计模块A),因此对块1和块3一起执行优化,如图1所示。除了对块1和块4的组合执行优化之外,还对块2和块4的每一个分别执行优化。
该优化修改端口103的至少一个连接元件107的物理位置,以满足所获取的时钟周期要求。
在优化中,将沿每个时序路径106的所有延迟变量/值104/105相加,并且总和必须等于或小于每个时序路径106的时钟周期。以图4中的时序路径106为例,对于该实例,假设时序路径106都在一个时钟循环内。将内部延迟和外部延迟的以下关系设置为要求:
e11+d11≤时钟周期
d19+e19≤时钟周期
d18+e1824+d24+e2833+d33≤时钟周期
d38+e3843+d43+e45≤时钟周期
另外,步骤S220需要设置相同的设计模块102的块101的参数之间的相等性。由于块1和块3的每一个具有相同的设计模块102(设计模块A),设置以下相等要求以表示具有相同的设计模块102的块之间的关系:
d11=d31
d12=d32
d13=d33
d14=d34
d15=d35
d18=d38
d19=d39
在步骤S240中,获得用于所有内部延迟105和外部延迟104的时间预算的解作为在集成电路100上执行的优化的结果。该解至少指示每个dij的值和eij的值,这些值能够使得时间预算等于或小于沿每个时序路径106的时钟周期要求。
在该解中,通过将块1和块3的参数设置为相同并一起对块1和块3进行优化,由于具有相同的设计模块102的块1和块3的多重实例化,块1和块3的内部延迟105的值彼此相同。
在步骤S250中,执行结果质量(QoR)确定。在计算出一组输入和输出时序延迟变量(即dij、eij等)之后,这些变量将指导物理实施过程。基于从变量导出的信息,使用调整后的配置,将生成物理数据库的初始版本。可以使用不同的EDA工具来验证物理数据库的不同方面,并且评估结果质量(QoR)以检查物理数据库是否满足所有设计和制造标准。
当结果质量不满足集成电路100的预定时钟循环要求时,则方法返回到步骤S200,并反复执行步骤S200至S250,直到步骤S250中的结果质量满足集成电路100的所有设计和制造要求为止。当返回到步骤S200并在步骤S200中获取新的图形数据结构之前,基于在步骤S240中获得的解来设置所有块1-4的参数。然后,将基于集成电路100的新设置的参数来获取在步骤S200中获取的图形数据结构。
当结果质量满足集成电路100的所有设计和制造要求时,该方法继续到步骤S260。
在步骤S260中,生成集成电路100的最终设计。最终设计指示块101的所有参数,所有参数包括内部延迟105、外部延迟104、时序路径106以及集成电路100的端口103的连接元件107的物理位置。通过一起执行块1和块3的优化,并在优化过程中将块3的参数设置为与块1相同,那么,因为端口的连接元件107的物理位置设置为相同,并且块1和块3都对应于相同的设计模块102(设计模块A),则可以保证在制造时块1和块3在物理上是相同的。
在步骤S260中,输出最终设计以基于最终设计制造集成电路100。可以通过多种方法来执行输出,例如发送到制造工具、在显示屏上显示、通知用户等。
在步骤S270中,根据输出的最终设计来制造集成电路100。在制造的集成电路100中,内部延迟105的值、外部延迟104的值、时序路径106以及至少两个相同块的端口103的连接元件107的物理位置(块1和块3)相同。相反,由于在集成电路的所有块上分别执行时间预算,因此在传统技术中,具有相同的设计模块的块在制造时在物理上有所不同。
步骤S200至步骤S270仅是示例性的实施例的示例性步骤,并且可以包括附加步骤或子步骤。
例如,在确定了时序延迟变量——即dij和eij——的一组解之后,这些变量指导物理实施过程。基于这些变量,将生成物理数据库的初始版本。可以使用不同的EDA工具来检查此物理数据库的不同方面。然后,评估结果质量以确定物理数据库是否满足所有设计和制造要求,包括时钟循环要求。
通过步骤S200到步骤S250的每次迭代,逐渐改善外部延迟104的值和内部延迟105的值以考虑各种物理因素,直到设计收敛到满足所有要求的物理数据库为止。
时间预算装置110
如图6所示,时间预算装置110可以配置为一台或多台计算机,该一台或多台计算机包括一个或多个处理器120、一个或多个存储装置130和输入/输出(I/O)接口140。一个或多个处理器120可以是任何类型的编程计算装置,包括中央处理单元(CPU)、微处理器、微控制器、联网的计算机系统等,或者是用于执行集成电路设计的专用处理器。一个或多个存储装置130可以是计算机可读存储介质,包括存储器装置、由可拆卸的介质驱动和/或硬盘驱动可读的存储介质,例如随机存取存储器(RAM)、只读存储器(ROM)、磁性硬盘、光存储盘等,以用于存储控制处理器120执行各种操作的指令的一个或多个软件模块。
I/O接口140允许用户向处理器120输入数据并从处理器120接收数据。I/O接口140还允许控制由处理器102执行的各种操作。例如,I/O接口140可以包括一个或多个输入装置,诸如键盘、指示装置(例如,鼠标、跟踪球),触控显示器、麦克风等。I/O接口140还可以包括一个或多个输出装置,诸如显示器(包括触控显示器)。
时间预算装置110的一个或多个处理器120和一个或多个存储装置130至少执行与上述方法相同的功能。以上关于该方法的描述也适用于时间预算装置110的以下示例性实施例,且还将在下面详细讨论。
一个或多个处理器120获取用于集成电路100的集成电路设计的图形数据结构。图3示出了将集成电路设计的电子组件划分为多个块101的图形数据结构的示例。至少两个块101(例如,块1和块3)对应于相同的设计模块102。图形数据结构指示每个块101的端口103的连接元件107的初始布局,以及每个端口103的外部延迟104和内部延迟105。
一个或多个处理器120获取并初始设置多个端口103的内部延迟105的值和外部延迟104的值。内部延迟105的值和外部延迟104的值是由在端口103之间传播的数据信号引起的时间延迟周期。
一个或多个处理器120用于对内部延迟105的值和外部延迟104的值进行优化,以确定是否满足集成电路100的参数,例如预定时钟循环。
具有相同的设计模块102的块101被设置为彼此相等,从而使得当在步骤S230中执行外部延迟104和内部延迟105的优化时,如本文所述,对于集成电路100中具有相同的设计模块102的每个块101,外部延迟104和内部延迟105的时间预算是相同的。作为对传统技术的改进,通过设置具有相同的设计模块102的块101相等,该方法在优化过程中实现了对具有相同设计模块102的这些块101的多实例化,以减少对整个集成电路100进行优化的计算要求,并将与具有相同的设计模块102的这些块101的时间预算保持为相同。
一个或多个处理器120进行对参数的优化,参数例如内部延迟105的值和外部延迟104的值,以确定满足集成电路100的要求的解。由于块1和块3两者具有相同的设计模块102(设计模块A),所以对块1和块3一起执行了优化,如图1所示。除了对块1和块4的组合执行优化之外,还对块2和块4的每一个分别执行优化。
以图4中的时序路径106为例,对于该实例,假设时序路径106都在一个时钟循环内。将内部延迟和外部延迟的以下关系设置为要求:
e11+d11≤时钟周期
d19+e19≤时钟周期
d18+e1824+d24+e2833+d33≤时钟周期
d38+e3843+d43+e45≤时钟周期
另外,由于块1和块3的每一个具有相同的设计模块102(设计模块A),设置相同的设计模块102的块101的参数之间的相等。设置以下相等要求以表示具有相同的设计模块102的块之间的关系:
d11=d31
d12=d32
d13=d33
d14=d34
d15=d35
d18=d38
d19=d39
一个或多个处理器120获得所有内部延迟105和外部延迟104的时间预算的解,作为在集成电路100上执行的优化的结果。该解至少指示dij的值和eij的值的每一个,这些值能够使得时间预算等于或小于沿每个时序路径106的要求。在该解中,通过将块1和块3的参数设置为相互相同并一起组合对块1和块3进行优化,由于具有相同的设计模块102的块1和块3的多重实例化,块1和块3的外部延迟104的值和内部延迟105的值相同。
一个或多个处理器120确定解的结果质量,该结果质指示沿着每个时序路径106的参数,例如,内部延迟105的值和外部延迟104的值,是否满足集成电路100的预定时钟循环要求。
当结果质量不满足集成电路100的预定要求时,如上所述,一个或多个处理器120迭代地重新执行获取图形数据结构,设置块1的参数等于块3的参数,并执行优化,基于该优化获得解,直到结果质量满足集成电路100的预定要求为止。每次迭代的开始处,在获取新的图形数据结构之前,基于所获得的先前迭代的解来设置所有块1-4的参数。然后,基于集成电路100的新设置的参数来获取的已经获取的图形数据结构。
当结果质量满足集成电路100的预定要求时,一个或多个处理器120生成集成电路100的最终设计。最终设计指示块101的所有参数,所有参数包括内部延迟105、外部延迟104、时序路径106以及集成电路100的端口103的连接元件107的物理位置。通过对块1和块3一起执行优化,并在优化过程中将块3的参数设置为与块1的参数相同,由于端口的连接元件107的物理位置设置为相同,并且块1和块3二者对应于相同的设计模块102(设计模块A),则可以保证在制造时块1和块3在物理上是相同的。
一个或多个处理器120输出最终设计以用于基于该最终设计制造集成电路100。可以通过多种方法来执行输出,例如发送到制造工具、在I/O接口140上显示等。
一个或多个处理器120可以根据输出的最终设计来控制集成电路100的制造。在制造的集成电路100中,内部延迟105的值、外部延迟104的值、时序路径106以及至少两个相同块的端口103的连接元件107的物理位置(块1和块3)相同。相反,由于在集成电路的所有块上分别执行时间预算,因此传统技术的具有相同的设计模块的块在制造时在物理上有所不同。
上述实施例是实现本文阐述的改进的方法和装置的示例。尽管上述实施例的公开是涉及EDA软件,但是这些示例性实施例可以应用于其他类型的软件,例如脚本。
上述实施例提供了集成电路的具有相同的设计模块的块,并且一起对相同的块执行时间预算,从而降低了EDA的计算需求,提高了设计过程的速度和效率,并产生了IC芯片的最终设计,其中具有相同的设计模块的块具有相同的最终时间预算设计。相同块的相同时间预算也使得在制造时块的组件具有相同的物理设计。因此,当将集成电路制造为相同时,示例性实施例的设计过程还改变了块的物理设计,从而提高了制造过程的效率。
在传统工艺中,d18的时间预算可以是“时钟周期-e1824-d24-e2833-d33”,即,具有输出延迟约束“e1824+d24+e2833+d33”。而对于d38的时间预算,该时间预算为“时钟周期-e3843-d43-e45”,即“e3843+d43+e45”的输出延迟约束。这意味着,使用传统工艺时,d18和d38的值是不同的。相反,示例性实施例的方法和装置一起执行块1和块3的时间预算,从而导致d18和d38的值相同。
此外,使用上述示例时,当示例性实施例计算“时钟周期-e1824-d24-e2833-d33”的时间预算时,该时间预算小于“时钟周期-e3843-d43-e45”的常规算法的预算,该块实现方式移动块3的端口P38的连接元件的物理位置,使得可以满足具有较小值的时间预算。该示例性方法和装置还将端口P18的连接元件的物理位置改变为相同。与传统技术相反,这导致更有效的设计和优化过程,从而减少了优化的计算需求,并且还产生制造具有相同的设计模块102的两个块101在物理上相同的集成电路。
Claims (9)
1.一种对集成电路(IC)进行时间预算的方法,包括:
步骤一,获取集成电路设计的图形数据结构,并获取所述集成电路设计的组件的时钟循环要求,所述图形数据结构包括多个块,所述多个块的每个对应于设计模块,其中,所述多个块中的至少两个相同的块对应于相同的设计模块;
步骤二,获取与所述多个块对应的每个设计模块的多个端口的内部延迟的值和外部延迟的值;
步骤三,对于所述多个块中对应于所述相同的设计模块的所述至少两个相同的块,将所述至少两个相同的块的包括所述内部延迟的值和所述外部延迟的值的参数设置为相等;
步骤四,对所述多个块的每个端口的包括所述内部延迟的值和所述外部延迟的值的参数进行优化;以及
步骤五,基于所述优化的结果输出所述集成电路的最终设计以用于基于所述最终设计而制造所述集成电路,其中,所述多个块中的所述至少两个相同的块的参数相同。
2.根据权利要求1所述的方法,还包括以下步骤:
确定所有的所述多个块的每个端口的包括所述内部延迟的值和所述外部延迟的值的优化的参数是否满足所述集成电路的预定要求;以及
响应于确定未满足所述预定要求,迭代地重新执行所述步骤一至所述步骤四,直到满足所述预定要求为止。
3.根据权利要求1所述的方法,还包括以下步骤:根据输出的所述最终设计制造所述集成电路。
4.根据权利要求1所述的方法,还包括:通过以下步骤确定获取的所述时钟循环要求被满足:
将沿每个时序路径的所述内部延迟的值与所述外部延迟的值相加以得到总和;以及
将所述总和与所述时钟循环要求中的对应时钟周期进行比较,以确定所述总和是否小于或等于所述时钟循环要求中的所述对应时钟周期。
5.根据权利要求1所述的方法,其中,每个时序路径是所述多个块中的至少两个块的端口之间的数据信号路径,且定义了数据信号沿着对应的数据信号路径传播的时间段。
6.根据权利要求1所述的方法,其中,所述优化为线性优化。
7.根据权利要求1所述的方法,其中,在步骤六中,在重新执行所述步骤一至所述步骤五之前,基于执行所述步骤一至所述步骤五的先前迭代的优化的参数设置所述多个块的参数。
8.一种时间预算装置,包括:
存储器;以及
处理器,所述处理器与所述存储器可操作地耦接,且所述处理器被编程为执行:
步骤一,获取集成电路设计的图形数据结构,并获取所述集成电路设计的组件的时钟循环要求,所述图形数据结构包括多个块,所述多个块每个对应于设计模块,其中,所述多个块中的至少两个相同的块对应于相同的设计模块;
步骤二,获取与所述多个块对应的每个设计模块的多个端口的内部延迟的值和外部延迟的值;
步骤三,对于所述多个块中对应于所述相同的设计模块的所述至少两个相同的块,将所述至少两个相同的块的包括所述内部延迟的值和所述外部延迟的值的参数设置为相等;
步骤四,对所述多个块的每个端口的包括所述内部延迟的值和所述外部延迟的值的参数进行优化;以及
步骤五,基于所述优化的结果输出所述集成电路的最终设计以用于基于所述最终设计而制造所述集成电路,其中,所述多个块中的所述至少两个相同的块的参数相同。
9.一种非暂时性计算机可读存储介质,存储计算机可读指令,其中,当计算机执行所述计算机可读指令时,使得所述计算机执行以下步骤:
步骤一,获取集成电路设计的图形数据结构,并获取所述集成电路设计的组件的时钟循环要求,所述图形数据结构包括多个块,所述多个块每个对应于设计模块,其中,所述多个块中的至少两个相同的块对应于相同的设计模块;
步骤二,获取与所述多个块对应的每个设计模块的多个端口的内部延迟的值和外部延迟的值;
步骤三,对于所述多个块中对应于所述相同的设计模块的所述至少两个相同的块,将所述至少两个相同的块的包括所述内部延迟的值和所述外部延迟的值的参数设置为相等;
步骤四,对所述多个块的每个端口的包括所述内部延迟的值和所述外部延迟的值的参数进行优化;以及
步骤五,基于所述优化的结果输出所述集成电路的最终设计以用于基于所述最终设计而制造所述集成电路,其中,所述多个块中的所述至少两个相同的块的参数相同。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/370,008 US10810344B1 (en) | 2019-03-29 | 2019-03-29 | Multi-instantiation time budgeting for integrated circuit design and manufacturing |
US16/370,008 | 2019-03-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111539176A true CN111539176A (zh) | 2020-08-14 |
CN111539176B CN111539176B (zh) | 2023-04-07 |
Family
ID=71976869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010235960.1A Active CN111539176B (zh) | 2019-03-29 | 2020-03-30 | 集成电路设计与制造的多实例时间预算 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10810344B1 (zh) |
CN (1) | CN111539176B (zh) |
Citations (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1539114A (zh) * | 2001-06-08 | 2004-10-20 | �������Զ�������ƹ�˾ | 用于在分层集成电路设计系统中产生模块的设计约束的方法 |
US20070033561A1 (en) * | 2005-08-04 | 2007-02-08 | Jones Larry G | Speeding up timing analysis by reusing delays computed for isomorphic subcircuits |
US20080209181A1 (en) * | 2005-12-19 | 2008-08-28 | Tensilica, Inc. | Method and System for Automatic Generation of Processor Datapaths |
CN101846724A (zh) * | 2009-03-26 | 2010-09-29 | 台湾积体电路制造股份有限公司 | 用于诊断集成电路的方法和装置 |
CN102073007A (zh) * | 2009-11-25 | 2011-05-25 | 台湾积体电路制造股份有限公司 | 用于检测轻错误的系统和方法 |
CN102169515A (zh) * | 2010-02-26 | 2011-08-31 | 国际商业机器公司 | 一种专用集成电路中时钟树延迟时间的估计方法和系统 |
US20120095746A1 (en) * | 2010-10-15 | 2012-04-19 | Lsi Corporation | Novel modeling approach for timing closure in hierarchical designs leveraging the separation of horizontal and vertical aspects of the design flow |
US8365113B1 (en) * | 2007-01-10 | 2013-01-29 | Cadence Design Systems, Inc. | Flow methodology for single pass parallel hierarchical timing closure of integrated circuit designs |
US8397197B1 (en) * | 2011-05-25 | 2013-03-12 | Applied Micro Circuits Corporation | Integrated circuit module time delay budgeting |
CN103080938A (zh) * | 2010-07-09 | 2013-05-01 | 阿尔特拉公司 | 用于同时切换噪声优化的方法和装置 |
CN103155413A (zh) * | 2011-06-17 | 2013-06-12 | 爱立信(中国)通信有限公司 | 用于现场可编程门阵列(fpga)芯片组中的延迟电路的查找表 |
US20150326210A1 (en) * | 2014-05-09 | 2015-11-12 | University Of Southern California | Timing violation resilient asynchronous template |
CN105095604A (zh) * | 2015-09-10 | 2015-11-25 | 中国人民解放军国防科学技术大学 | 一种考虑距离与时钟的时序预算方法 |
CN106326510A (zh) * | 2015-06-30 | 2017-01-11 | 新思科技(上海)有限公司 | 验证时钟树延迟 |
CN106374891A (zh) * | 2011-07-21 | 2017-02-01 | 海力士半导体有限公司 | 半导体集成电路的信号传输方法 |
CN106575313A (zh) * | 2014-07-23 | 2017-04-19 | 爱路易斯科技有限公司 | 与预报系统相关的改进 |
US20170140074A1 (en) * | 2015-11-04 | 2017-05-18 | Chronos Tech Llc | System and method for application specific integrated circuit design |
CN106874593A (zh) * | 2017-02-13 | 2017-06-20 | 上海兆芯集成电路有限公司 | 数字电子装置设计调整方法以及服务器 |
US20170193138A1 (en) * | 2015-12-30 | 2017-07-06 | International Business Machines Corporation | Predicting target characteristic data |
CN107944073A (zh) * | 2017-10-12 | 2018-04-20 | 北京时代民芯科技有限公司 | 一种用于多通道时间测量的环振集成电路 |
CN108038312A (zh) * | 2017-12-13 | 2018-05-15 | 嘉兴倚韦电子科技有限公司 | 集成电路半定制后端设计时序预算方法 |
CN108139870A (zh) * | 2015-10-09 | 2018-06-08 | 奥奇系统公司 | 模块化设备和操作方法 |
TW201833801A (zh) * | 2016-10-31 | 2018-09-16 | 美商新諾普系統公司 | 早期積體電路佈局設計drc處理工具 |
CN108647422A (zh) * | 2018-05-03 | 2018-10-12 | 天津芯海创科技有限公司 | 端口时延约束方法及装置 |
CN108984806A (zh) * | 2017-05-31 | 2018-12-11 | 深圳市中兴微电子技术有限公司 | 一种时钟树综合方法以及计算机可读存储介质 |
CN109376467A (zh) * | 2018-11-19 | 2019-02-22 | 武汉工程大学 | 集成电路中时钟树布局流程方法和时钟树偏差补偿装置 |
CN109406902A (zh) * | 2018-11-28 | 2019-03-01 | 中科曙光信息产业成都有限公司 | 逻辑扫描老化测试系统 |
CN109444716A (zh) * | 2018-11-27 | 2019-03-08 | 中科曙光信息产业成都有限公司 | 一种具有定位功能的扫描测试结构及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8024686B2 (en) * | 2008-11-25 | 2011-09-20 | Synopsys, Inc. | Retiming of multirate system |
-
2019
- 2019-03-29 US US16/370,008 patent/US10810344B1/en active Active
-
2020
- 2020-03-30 CN CN202010235960.1A patent/CN111539176B/zh active Active
Patent Citations (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1539114A (zh) * | 2001-06-08 | 2004-10-20 | �������Զ�������ƹ�˾ | 用于在分层集成电路设计系统中产生模块的设计约束的方法 |
US20070033561A1 (en) * | 2005-08-04 | 2007-02-08 | Jones Larry G | Speeding up timing analysis by reusing delays computed for isomorphic subcircuits |
US20080209181A1 (en) * | 2005-12-19 | 2008-08-28 | Tensilica, Inc. | Method and System for Automatic Generation of Processor Datapaths |
US8365113B1 (en) * | 2007-01-10 | 2013-01-29 | Cadence Design Systems, Inc. | Flow methodology for single pass parallel hierarchical timing closure of integrated circuit designs |
CN101846724A (zh) * | 2009-03-26 | 2010-09-29 | 台湾积体电路制造股份有限公司 | 用于诊断集成电路的方法和装置 |
CN102073007A (zh) * | 2009-11-25 | 2011-05-25 | 台湾积体电路制造股份有限公司 | 用于检测轻错误的系统和方法 |
CN102169515A (zh) * | 2010-02-26 | 2011-08-31 | 国际商业机器公司 | 一种专用集成电路中时钟树延迟时间的估计方法和系统 |
CN103080938A (zh) * | 2010-07-09 | 2013-05-01 | 阿尔特拉公司 | 用于同时切换噪声优化的方法和装置 |
US20120095746A1 (en) * | 2010-10-15 | 2012-04-19 | Lsi Corporation | Novel modeling approach for timing closure in hierarchical designs leveraging the separation of horizontal and vertical aspects of the design flow |
US8397197B1 (en) * | 2011-05-25 | 2013-03-12 | Applied Micro Circuits Corporation | Integrated circuit module time delay budgeting |
CN103155413A (zh) * | 2011-06-17 | 2013-06-12 | 爱立信(中国)通信有限公司 | 用于现场可编程门阵列(fpga)芯片组中的延迟电路的查找表 |
CN106374891A (zh) * | 2011-07-21 | 2017-02-01 | 海力士半导体有限公司 | 半导体集成电路的信号传输方法 |
US20150326210A1 (en) * | 2014-05-09 | 2015-11-12 | University Of Southern California | Timing violation resilient asynchronous template |
CN106462553A (zh) * | 2014-05-09 | 2017-02-22 | 南加利福尼亚大学 | 时序违规弹性异步模板 |
CN106575313A (zh) * | 2014-07-23 | 2017-04-19 | 爱路易斯科技有限公司 | 与预报系统相关的改进 |
CN106326510A (zh) * | 2015-06-30 | 2017-01-11 | 新思科技(上海)有限公司 | 验证时钟树延迟 |
CN105095604A (zh) * | 2015-09-10 | 2015-11-25 | 中国人民解放军国防科学技术大学 | 一种考虑距离与时钟的时序预算方法 |
CN108139870A (zh) * | 2015-10-09 | 2018-06-08 | 奥奇系统公司 | 模块化设备和操作方法 |
US20170140074A1 (en) * | 2015-11-04 | 2017-05-18 | Chronos Tech Llc | System and method for application specific integrated circuit design |
US20170193138A1 (en) * | 2015-12-30 | 2017-07-06 | International Business Machines Corporation | Predicting target characteristic data |
TW201833801A (zh) * | 2016-10-31 | 2018-09-16 | 美商新諾普系統公司 | 早期積體電路佈局設計drc處理工具 |
CN106874593A (zh) * | 2017-02-13 | 2017-06-20 | 上海兆芯集成电路有限公司 | 数字电子装置设计调整方法以及服务器 |
CN108984806A (zh) * | 2017-05-31 | 2018-12-11 | 深圳市中兴微电子技术有限公司 | 一种时钟树综合方法以及计算机可读存储介质 |
CN107944073A (zh) * | 2017-10-12 | 2018-04-20 | 北京时代民芯科技有限公司 | 一种用于多通道时间测量的环振集成电路 |
CN108038312A (zh) * | 2017-12-13 | 2018-05-15 | 嘉兴倚韦电子科技有限公司 | 集成电路半定制后端设计时序预算方法 |
CN108647422A (zh) * | 2018-05-03 | 2018-10-12 | 天津芯海创科技有限公司 | 端口时延约束方法及装置 |
CN109376467A (zh) * | 2018-11-19 | 2019-02-22 | 武汉工程大学 | 集成电路中时钟树布局流程方法和时钟树偏差补偿装置 |
CN109444716A (zh) * | 2018-11-27 | 2019-03-08 | 中科曙光信息产业成都有限公司 | 一种具有定位功能的扫描测试结构及方法 |
CN109406902A (zh) * | 2018-11-28 | 2019-03-01 | 中科曙光信息产业成都有限公司 | 逻辑扫描老化测试系统 |
Non-Patent Citations (2)
Title |
---|
朱震海,洪伟: "超大规模集成电路中互连结构的逻辑模型" * |
王东平;毛军发;: "一种基于时延和功耗双重优化目标的布局算法" * |
Also Published As
Publication number | Publication date |
---|---|
CN111539176B (zh) | 2023-04-07 |
US10810344B1 (en) | 2020-10-20 |
US20200311224A1 (en) | 2020-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7865855B2 (en) | Method and system for generating a layout for an integrated electronic circuit | |
US9251300B2 (en) | Methods and tools for designing integrated circuits with auto-pipelining capabilities | |
US20140298281A1 (en) | Method of global design closure at top level and driving of downstream implementation flow | |
US10915685B1 (en) | Circuit stage credit based approaches to static timing analysis of integrated circuits | |
Su et al. | Performance optimization using variable-latency design style | |
US20030084416A1 (en) | Scalable, partitioning integrated circuit layout system | |
Papa et al. | Physical synthesis with clock-network optimization for large systems on chips | |
US20040060016A1 (en) | Time synthesis for power optimization of high performance circuits | |
CN106257467B (zh) | 用于在设计编译流程中利用针对寄存器重定时的估计的方法和装置 | |
US9298872B2 (en) | Apportioning synthesis effort for better timing closure | |
US11574101B2 (en) | Techniques for providing optimizations based on categories of slack in timing paths | |
US9047434B2 (en) | Clustering for processing of circuit design data | |
US8914755B1 (en) | Layout re-decomposition for multiple patterning layouts | |
US20220300688A1 (en) | Fast synthesis of logical circuit design with predictive timing | |
US7984415B1 (en) | Merging of equivalent logic blocks in a circuit design | |
US9721051B2 (en) | Reducing clock skew in synthesized modules | |
CN111539176B (zh) | 集成电路设计与制造的多实例时间预算 | |
US8875075B2 (en) | Generating pattern-based estimated RC data with analysis of route information | |
US10235486B2 (en) | Method, apparatus and system for automatically deriving parameters for an interconnect | |
US9892227B1 (en) | Systems, methods and storage media for clock tree power estimation at register transfer level | |
US9600613B1 (en) | Block-level code coverage in simulation of circuit designs | |
US7006962B1 (en) | Distributed delay prediction of multi-million gate deep sub-micron ASIC designs | |
US9760667B1 (en) | Method, system, and computer program product for implementing prototyping and floorplanning of electronic circuit designs | |
CN111563355A (zh) | 考虑多输入切换的操作时序分析装置和方法 | |
US20220114321A1 (en) | Systems And Methods For Generating Placements For Circuit Designs Using Pyramidal Flows |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |