CN114303150A - 集成电路设计中的机器学习驱动的预测 - Google Patents
集成电路设计中的机器学习驱动的预测 Download PDFInfo
- Publication number
- CN114303150A CN114303150A CN202080059912.XA CN202080059912A CN114303150A CN 114303150 A CN114303150 A CN 114303150A CN 202080059912 A CN202080059912 A CN 202080059912A CN 114303150 A CN114303150 A CN 114303150A
- Authority
- CN
- China
- Prior art keywords
- design
- design flow
- flow
- training
- features
- 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.)
- Pending
Links
- 238000013461 design Methods 0.000 title claims abstract description 363
- 238000010801 machine learning Methods 0.000 title claims abstract description 64
- 238000012549 training Methods 0.000 claims abstract description 47
- 238000000034 method Methods 0.000 claims description 49
- 238000005457 optimization Methods 0.000 claims description 36
- 238000003786 synthesis reaction Methods 0.000 claims description 33
- 230000015572 biosynthetic process Effects 0.000 claims description 28
- 238000003860 storage Methods 0.000 claims description 21
- 230000015654 memory Effects 0.000 claims description 16
- 230000007704 transition Effects 0.000 claims description 16
- 230000004048 modification Effects 0.000 claims description 14
- 238000012986 modification Methods 0.000 claims description 14
- 230000002776 aggregation Effects 0.000 claims description 6
- 238000004220 aggregation Methods 0.000 claims description 6
- 239000000872 buffer Substances 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 210000004027 cell Anatomy 0.000 description 33
- 230000008569 process Effects 0.000 description 28
- 238000012545 processing Methods 0.000 description 16
- 238000004519 manufacturing process Methods 0.000 description 10
- 238000012795 verification Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 5
- 238000007637 random forest analysis Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000003071 parasitic effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 210000000677 aggregate cell Anatomy 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013440 design planning Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 235000013599 spices Nutrition 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/27—Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/213—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- 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
-
- 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/394—Routing
- G06F30/3947—Routing global
-
- 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/394—Routing
- G06F30/3953—Routing detailed
-
- 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/396—Clock trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
Abstract
针对训练集成电路(IC)设计集合中的每个训练IC设计通过以下方式收集训练数据:在IC设计流程的第一阶段中,提取IC设计特征的第一集合;以及在IC设计流程的第二阶段中,提取IC设计标签的第一集合,其中在IC设计流程中,IC设计流程的第一阶段比IC设计流程的第二阶段更早出现。接下来,基于训练数据训练机器学习模型。
Description
相关申请
本申请要求于2019年9月10日提交的美国临时申请序列号62/898,086的权益,上述申请的内容出于所有目的通过引用以其整体并入本文。
技术领域
本公开总体上涉及集成电路(IC)设计。更具体地,本公开涉及IC设计中的机器学习驱动的预测。
背景技术
工艺技术的进步以及对计算和存储的日益增长的需求推动了IC设计的尺寸和复杂性的增加。这种进步可以归因于半导体设计和制造技术的改进,这使得将数以千万计的器件集成到单个芯片上成为可能。
发明内容
本文描述的一些实施例针对训练IC设计集合中的每个训练IC设计通过以下方式收集训练数据:在IC设计流程的第一阶段中,提取IC设计特征的第一集合;以及在IC设计流程的第二阶段中,提取IC设计标签的第一集合,其中在IC设计流程中,IC设计流程的第一阶段比IC设计流程的第二阶段更早出现。接下来,训练机器学习模型,使得机器学习模型使用训练数据来基于IC设计特征的第一集合预测IC设计标签的第一集合。具体地,使用监督学习技术来训练机器学习模型。
在一些实施例中,第一阶段可以属于IC设计流程的前布线部分,前布线部分可以在IC设计流程中在全局布线已经被完成之后结束。在一些实施例中,第二阶段可以属于IC设计流程的后布线部分,后布线部分可以在IC设计流程中在轨道分配和详细布线已经被完成之后开始。
在一些实施例中,第一阶段可以属于IC设计流程的前时钟网络综合部分,前时钟网络综合部分可以在IC设计流程中在后放置优化已经被完成之后结束。在一些实施例中,第二阶段可以属于IC设计流程的后时钟网络综合部分,后时钟网络综合部分可以在IC设计流程中在时钟网络综合已经被完成之后开始。
在一些实施例中,训练机器学习模型以基于IC设计特征来预测IC设计标签包括减少误差项,误差项表示预测IC设计标签与实际IC设计标签(实际IC设计标签在IC设计流程的第二阶段期间被提取)之间的聚合误差。特别地,减少误差项可以包括:迭代地修改机器学习模型的参数。
在一些实施例中,IC设计特征包括但不限于:组合逻辑云中的逻辑级的计数、组合逻辑云中的平均扇出、反相器和缓冲器的计数、具有修改限制的单元的计数、转换违规的计数、聚合网络延迟与聚合单元延迟之间的比率、单元的位置、以及单元的大小。
在一些实施例中,IC设计标签包括但不限于:在时序端点处的到达时间、在时序端点处的所需时间、在时序端点处的时序松弛、在时序端点处的转换、在时序端点处的噪声容限、在逻辑门的端子处的到达时间、在逻辑门的端子处的所需时间、在逻辑门的端子处的时序松弛、在逻辑门的端子处的转换、在逻辑门的端子处的噪声容限。
一些实施例在处理给定IC设计(该给定IC设计可能不在训练IC设计集合中)时使用经训练的模型。具体地,当给定IC设计由IC设计流程的第一阶段处理时,实施例提取IC设计特征的第二集合;使用经训练机器学习模型来基于IC设计特征的第二集合预测IC设计标签的第二集合;以及基于IC设计标签的第二集合对给定IC设计执行操作。特别地,实施例可以基于IC设计标签的第二集合来选择修改的类型和/或程度,并且将所选择的修改应用于给定IC设计。
附图说明
可以基于下面给出的详细描述和附图来理解本公开。附图仅用于说明目的,并不限制本公开的范围。此外,附图并不一定按比例绘制。
图1图示了根据本文描述的一些实施例的IC设计流程。
图2图示了根据本文描述的一些实施例的用于使用机器学习基于IC设计特征来预测IC设计标签的过程。
图3图示了根据本文描述的一些实施例的可以如何使用IC设计特征和IC设计标签来训练机器学习模型。
图4图示了根据本文描述的一些实施例的可以如何在IC设计流程期间使用经训练机器学习模型。
图5图示了根据本文描述的一些实施例的机器学习模型的示例。
图6图示了根据本文描述的一些实施例的用于集成电路的设计、验证和制造的示例流程。
图7图示了计算机系统的示例机器,在该机器内可以执行指令集,该指令集用于使机器执行本文讨论的方法中的任何一个或多个方法。
具体实施方式
在本公开中,术语“IC设计流程”是指用于设计IC的过程。IC设计流程通常包括许多阶段(术语“阶段”、“步骤”和“过程”在本公开中可互换地被使用)。例如,时钟网络综合是IC设计流程中的阶段的示例,在该阶段期间,时钟网络被构建以将时钟信号分配给IC设计中的时序电路元件。布线是接近IC设计流程结束时出现的阶段的一个示例。布线过程可以采用多个输入,包括但不限于已放置的网表,该网表包括具有已知位置的单元(即已放置的单元)但不包括将单元相互电互连的经布线的导线。布线过程确定导线布线,以将放置的单元相互互连,并且输出经放置-布线的网表,经放置-布线的网表包括所放置的单元,并且包括将所放置的单元相互电互连的经导线的布线。在布线期间可以使用许多优化标准,包括但不限于减少设计规则违反、减少过孔数目、减少总导线长度、减少时序违反的可能性等。
随着IC设计通过IC设计流程进行,时序信息(例如,延迟、松弛、转换、信号完整性等)的准确性得到改进。例如,在时钟网络综合之后,时钟偏斜对时序信息的影响可以被准确计算。同样,导线的寄生电气特性(例如,寄生电阻和寄生电容)影响时序,但在完成布线之前,无法以高度准确性了解寄生电气特性。因此,在IC设计上完成布线之后,可以使用准确时序模型来计算IC设计的时序信息,准确时序模型在其计算中使用实际导线布线,并且可以使用准确计算的时序信息来确保IC设计满足时序约束集合。
随着IC设计通过IC设计流程进行,可以在IC设计中检查约束集合。如果违反了约束,则可能需要将IC设计发送回先前阶段,以进行附加的设计迭代,这可能增加项目成本和延迟。例如,后端签核过程可以用于使用后布线时序信息来检查时序约束,后布线时序信息使用时序模型而被计算,该时序模型使用IC设计中的实际导线布线。如果IC设计满足在后端签核过程中检查的约束,则可以确定IC设计已准备好用于制造。另一方面,如果在后端签核过程期间发现时序问题,则可能需要将IC设计发送回先前设计阶段以进行附加的设计迭代,这可能显著增加项目成本和延迟。
本公开中描述的一些实施例使用机器学习来预测IC设计标签,该IC设计标签预计在IC设计流程中的后期阶段中出现。预测的标签用于在IC设计流程中的当前阶段期间执行IC设计操作(例如,放置和优化操作)。本文公开的实施例的优点包括但不限于IC设计流程中更快的时序收敛,以及由IC设计流程产生的更好质量的结果。
在本公开中,术语“IC设计特征”和“IC设计标签”通常是指IC设计中的任何量。IC设计特征或标签的示例包括但不限于延迟、松弛、转换、噪声容限、组合逻辑云中的逻辑级的计数、组合逻辑云中的平均扇出、反相器和缓冲器的计数、具有修改限制的单元的计数、转换违规的计数、聚合网络延迟与聚合单元延迟之间的比率、单元的位置、单元的大小等。在机器学习领域中,术语“特征”是指作为输入被提供给机器学习模型的量(即,进行预测所基于的值),并且术语“标签”是指由机器学习模型产生作为输出的量(即,由机器学习模型预测的值)。
图1图示了根据本文描述的一些实施例的IC设计流程。
在综合102期间,逻辑设计被转换成包含单元的后综合网表。在后综合优化104期间,后综合网表中的单元被其他功能等效单元代替以优化IC设计的时序、面积和/或泄漏功率。在放置106期间,后综合网表中的单元被分配IC设计布局区域中的位置。在后放置优化108期间,后综合网表中的单元被移动和/或被其他功能等效的单元代替,以优化IC设计的时序、面积和/或泄漏功率。在时钟网络综合110期间,时钟网络被构建,以将时钟信号分配给IC设计中的时序单元。在后时钟网络综合优化112期间,时钟网络被修改(例如,时钟网络拓扑可以被修改,时钟缓冲器可以被添加、移除或替换等),以优化IC设计的时序、面积和/或泄漏功率。
在后时钟网络综合优化112之后,导线布线被确定以电互连IC设计中的单元。布线可以包括三个不同的阶段:全局布线、轨道分配和详细布线。在一些实施例中,轨道分配和详细布线操作可以被组合成单个阶段。具体地,在全局布线114期间,过程可以确定IC设计布局中的近似网络拓扑和布线路径,以减少总体布线拥塞和导线长度。然后,近似网络拓扑和布线路径可以在全局布线优化116期间被优化。
轨道分配和详细布线118阶段通过在轨道分配步骤中将导线分配给轨道(轨道是指紧密间隔的导线布线束)来细化全局布线规划,并且然后在详细布线步骤中针对每个导线确定准确路径和特定形状。轨道分配和详细布线118通常是布线中最耗时和计算密集的操作。
接下来,IC设计流程可以执行后布线优化120(以及可选地其他操作)以获得最终IC设计,如果最终IC设计满足可以在后端签核过程期间被检查的所期望的约束集合,则该最终IC设计可以被流片122。具体地,在后布线优化120期间,违反时序约束、设计规则和/或信号完整性约束的线网可以被重新布线。
在本公开中,前时钟网络综合IC设计流程包括:在IC设计上的时钟网络综合110阶段开始之前对IC设计执行的一个或多个IC设计流程操作,并且后时钟网络综合IC设计流程包括:在IC设计上的时钟网络综合112完成之后对IC设计执行的一个或多个IC设计流程操作。
类似地,前布线IC设计流程包括:在IC设计上的轨道分配和详细布线118阶段开始之前对IC设计执行的一个或多个IC设计流程操作,并且后布线IC设计流程包括:在IC设计上的轨道分配和详细布线118阶段完成之后对IC设计执行的一个或多个IC设计流程操作。
图2图示了根据本文描述的一些实施例的用于使用机器学习基于IC设计特征来预测IC设计标签的过程。
针对训练IC设计集合中的每个训练IC设计,过程可以在IC设计流程的第一阶段中从训练IC设计提取IC设计特征的第一集合,并且可以在IC设计流程的第二阶段中从训练IC设计提取IC设计标签的第一集合,其中在IC设计流程中,IC设计流程的第一阶段比IC设计流程的第二阶段更早出现(在202处)。
在一些实施例中,IC设计流程的第一阶段属于IC设计流程的前布线部分,并且第二阶段属于IC设计流程的后布线部分。在一些实施例中,IC设计流程的第一阶段属于IC设计流程的前时钟树综合部分,并且第二阶段属于IC设计流程的后时钟树综合部分
在本公开中,术语“时钟组”是指IC设计中处于相同时钟域中的时序路径,并且术语“路径组”通常是指已被分组到特定组中的时序路径的任意集合。具体地,给定时序端点对于不同的路径组可以具有不同的所需时间。在本公开中,术语“角(corner)”是指可以在其中制造IC设计的制造条件(或工艺条件)的特定集合,和/或是指可以在其中操作IC设计的操作条件的特定集合。在本公开中,术语“模式”是指可以在其中操作IC设计的特定操作模式(例如,待机模式、任务模式和测试模式)。在本公开中,术语“多角多模式(MCMM)场景”是指特定角和特定模式的组合。注意,单元和导线布线的电气特性对于每个MCMM场景不同,这使得时序信息对于每个MCMM场景不同。
一些实施例从IC设计流程的任何部分收集地面实况(ground truth)(即,真实标签)。从IC设计流程收集的训练数据的示例包括但不限于:来自后详细布线IC设计的IC设计数据、来自后布线优化的初始阶段的IC设计数据、来自后布线优化的任何中间阶段的IC设计数据、或来自后布线优化结束时的IC设计数据。特别地,针对每个MCMM场景中的所有受限端点以及每个时钟和路径组收集地面实况。换句话说,本文描述的实施例与具有任何数目的MCMM场景和路径组的任何种类的IC设计一起使用。
在一些实施例中,从IC设计提取的特征和标签不特定于任何特定的设计风格或技术。特别地,所提取的特征和标签通常适用于跨技术节点的所有设计风格。所提取的特征和标签的示例包括但不限于逻辑级的计数、在端点处或在逻辑门的端子处的所需时间、在端点处或在逻辑门的端子处的到达时间、扇出的计数等。本文公开的实施例使用特征集合,该特征集合全面地解释拟合地面实况时序中的变化,其已经通过实验结果证明。
参考图2,过程可以基于IC设计特征的第一集合和IC设计标签的第一集合,来训练机器学习模型(在204处)。具体地,可以使用监督学习技术来训练机器学习模型,以使经训练机器学习模型基于IC设计特征的第一集合来准确地预测(在容差范围内)IC设计标签的第一集合。
特别地,基于前布线特征来预测后布线时序可能具有挑战性,因为特征值可能在前布线IC设计和对应的后布线IC设计之间显著改变。因此,在一些实施例中,容忍输出(即,地面实况或后布线时序)中的变化的机器学习模型被选择。选择容忍变化的机器学习模型对于基于前布线IC设计特征来准确预测后布线时序(后布线时序可能受多个高级特征和物理效应影响)可以是重要的。
一些实施例使用非常适合对大输出变化建模的基于树的机器学习模型,因为每个子树可以对输出中的(相对于输入特征的)变化的子空间进行建模。具体地,基于随机森林的机器学习模型可以非常适合该目的,因为该模型可以分配多个树来处理输出中相对于前布线IC设计特征的不同子空间的多个变化。一些实施例使用梯度提升随机森林,因为每个提升森林可以增量地拟合更严格的输出变化,链中较早的森林不能准确拟合该更严格的输出变化。
一些实施例使用神经网络(及其变型,诸如深度神经网络、深度学习架构等),神经网络也可以非常适合基于前布线IC设计特征来预测后布线时序。在这些实施例中,一旦神经网络已经针对层数目和每层的隐藏神经元数目进行了调整,神经网络就可以用丰富的特征集对输出变化进行准确建模。注意,与梯度提升随机森林相比,神经网络在推理速度方面通常较慢。因此,基于梯度提升随机森林的方法可以被用在需要快速推理速度的应用中,例如,被用在经训练机器学习模型被重复使用以用于在IC设计流程中引导和/或执行增量优化的应用中。
图3图示了根据本文描述的一些实施例的可以如何使用IC设计特征和IC设计标签来训练机器学习模型。
当使用IC设计流程124处理IC设计时,IC设计在不同阶段可以包含不同内容,例如,在302-1处的IC设计到在302-n处的IC设计可以包含不同内容,并且特别地,较后阶段中的IC设计比较早阶段中的IC设计包含更详细或更优化的布局。在图3中,字母k和m是指在1和n之间的数字,即1<k<m<n。IC设计流程124中的每个阶段对先前阶段输出的IC设计进行工作,例如阶段302-m对由阶段302-(m-1)输出的IC设计进行工作。所提取的特征306可以从IC设计302-k(其可以对应于IC设计流程的第一阶段)提取,并且所提取的标签308可以从IC设计302-m(其可以对应于IC设计流程的第二阶段)提取。接下来,所提取的特征306和所提取的标签308可以用于训练机器学习模型310。
通常,机器学习模型包括误差项,误差项表示预测标签(例如,基于从第一阶段提取的特征预测的在时序端点处的时序松弛)和实际标签(例如,从第二阶段提取的在时序端点处的实际松弛)之间的聚合误差(例如,均方根误差)。训练机器学习模型涉及通过迭代修改机器学习模型的参数来减少误差项。训练过程结束时的机器学习模型的参数值表示经训练机器学习模型312。
参考图2,过程可以在IC设计流程期间使用经训练机器学习模型,例如,当给定IC设计被IC设计流程的第一阶段处理时,过程可以使用经训练机器学习模型,该给定IC设计可以不在训练IC设计集合中。具体地,过程可以在IC设计流程的第一阶段中,从给定IC设计提取IC设计特征的第二集合;使用经训练机器学习模型,基于IC设计特征的第二集合来预测IC设计标签的第二集合;以及基于IC设计标签的第二集合对给定IC设计执行操作(在206处)。
图4图示了根据本文描述的一些实施例的可以如何在IC设计流程期间使用经训练机器学习模型。
IC设计工具套件404可以在IC设计流程124期间被使用。IC设计工具套件404可以随着IC设计通过IC设计流程124进行而转换IC设计,例如,在IC设计流程124期间,在阶段402-i处的IC设计在阶段402-j处可以被转换成更详细或优化的IC设计版本。特别地,IC设计工具套件404可以在IC设计流程124的第一阶段(例如,阶段402-i)期间从IC设计提取IC设计特征,并且将所提取的IC设计特征提供给经训练机器学习模型312作为输入。经训练机器学习模型312可以使用所提取的IC设计特征来预测一个或多个IC设计标签,该一个或多个IC设计标签预计在IC设计流程124中的稍后阶段(例如,阶段402-j)处出现(例如,经训练机器学习模型312可以预测后布线时序信息),并且将预测的IC设计标签提供给IC设计工具套件404。然后,IC设计工具套件404可以使用预测的IC设计标签来选择要对当前IC设计进行的修改的类型和程度。尽管本文描述的一些实施例使用从前布线IC设计流程阶段和后布线IC设计流程阶段提取的IC设计特征和标签,但其他实施例通常可以使用从IC设计流程的任何两个阶段提取的IC设计特征和标签。
作为一个示例,物理设计流程可以使用经训练机器学习模型,以使物理设计流程可以预测时序值,网表将以瞬时方式在流程中提前“看到”该时序值。例如,前布线优化可以使用经训练机器学习模型来准确预测后布线时序,后布线时序包括对网表的各种改变、物理上下文改变(布线、信号完整性等)和时序特征改变(针对详细布线寄生的高级时序模型、签核工具相关的时序计算器)。
在模型已经被训练之后,前布线优化流程可以以如下方式使用模型:(1)提取特征,(2)将所提取的特征传递给经训练模型以预测“前瞻”时序(松弛,到达、延迟等),(3)基于经训练模型的预测来调整端点、阶段、单元/网络的时序,以及(4)使用经调整的时序值来执行一个或多个优化步骤。
在优化循环中应用经训练模型的一个示例如下。基于经训练模型的调整可以在数据路径延迟优化之前被应用。接下来,在并发时钟和数据优化已经被执行之后,新的特征集合被提取。此后,新调整可以在恢复优化之后被计算和应用。
在一个具体示例中,在前布线步骤中,假设端点的关键路径松弛在场景s1中是+3ps,但在详细布线之后它的松弛是-10ps。此外,假设模型已经在前布线步骤中被训练,以拟合所有场景中经详细布线的端点松弛。
在不使用模型的情况下,在场景sl中,前布线延迟优化可能不会优化通往端点的关键路径中的任何单元或网络。此外,面积、功率恢复可以优化单元,并且将松弛进一步减小到+0.5ps。但是,在详细布线之后,该路径具有-10ps的松弛。因此,设计的总负松弛在详细布线后降级。
利用该模型,端点的关键路径松弛可以被调整到-9.5ps(-0.5ps是建模误差,并且调整因子是-12.5ps)。现在,前布线延迟优化可以优化该路径,并且将松弛减小到-5ps。恢复算法可以保护该松弛不进一步降级,并且在详细布线之后,松弛可能降级了5ps并降级到-10ps。但是,一旦我们移除-12.5ps的调整因子,该路径的松弛现在是+2.5ps。因此,当使用该模型时,设计的总负松弛没有降级。
在另一个具体示例中,假设在前布线步骤中,端点的关键路径松弛在场景s1中是-5ps,但在详细布线之后其松弛是-10ps。还假设模型在前布线步骤处被训练,以拟合所有场景中详细布线的端点松弛。
在不使用模型的情况下,前布线延迟优化可以将该路径优化到+0ps。在详细布线之后,该路径具有-5ps的松弛。因此,设计的总负松弛在详细布线之后降级。
利用该模型,端点的关键路径松弛可以被调整为-6ps(-1ps是建模误差,并且调整因子是-1ps)。现在,前布线延迟优化可以优化该路径,并且将松弛减少到0ps。在详细布线之后,松弛可能降级了5ps并降级到-5ps。但是,一旦我们移除-6ps的调整因子,该路径的松弛现在是+1ps。因此,设计的总负松弛没有降级,实际上,设计的总负松弛从没有模型的情况得到改善。
注意,本公开中描述的实施例不仅仅预测布线的时序影响和时序模型的准确性的改变。相反,本文描述的实施例还预测在数据和时钟优化期间可能出现的网表或放置改变的影响。此外,注意,可以从由前布线IC设计步骤处理的任何前布线IC设计来提取前布线IC设计特征,前布线IC设计步骤可以包括但不限于综合、放置、时钟树综合和时钟优化。换句话说,本文描述的实施例不限于使用仅从前布线IC设计流程中的某些步骤提取的特征。因此,本文公开的实施例可以用于驱动任何前布线引擎,例如放置、物理综合、数据、时钟优化、全局布线等。具体地,在前布线引擎必须从候选修改集合选择修改时,前布线引擎可以使用经训练机器学习模型来预测候选修改中的每个候选修改的后布线时序信息,并且基于预测的后布线时序信息来选择候选修改。
因为从前布线IC设计和后布线IC设计提取的特征不特定于任何特定设计风格或技术,并且通常适用于跨技术节点的所有设计风格,所以本文描述的机器学习模型可以使用IC设计来被训练,该IC设计使用不同单元库、代工技术和IC设计流程被实现。然后,可以使用经训练机器学习模型来预测使用不同代工技术和/或单元库实现的IC设计的后布线时序信息。
在一些实施例中,机器学习模型包括两个分开的子模型:全局时序模型和局部时序模型。这两种模型都可以被用在本文描述的应用中。全局时序模型可以被训练并且被用来预测时序端点松弛,这可以使优化过程能够准确地选择时序关键路径,从而导致更快的时序收敛。局部时序模型可以被训练并且被用来预测逻辑级中的延迟和转换(例如,逻辑级可以是指驱动器门和由驱动器门驱动的一组负载门),这可以使优化过程准确评估局部优化修改对后布线时序的影响,从而防止局部优化修改后面在IC设计流程中引起时序问题。
可以由本文描述的实施例提取的特征/标签的类别包括但不限于:(1)网表和逻辑上下文,(2)物理上下文,(3)电气,(4)约束(MCMM、时钟、路径组等),(5)时序路径、以及(6)时序(松弛、到达、转换、所需等)。
属于网表和逻辑上下文类别的特征/标签的示例包括但不限于:关键路径中到时序路径端点的阶段计数、时序路径上的平均扇入和扇出、以及时序路径上的最大扇入和扇出。
属于物理上下文类别的特征/标签的示例包括但不限于:在到时序端点的关键时序路径中的针脚位置的边界框。
属于电气类别的特征/标签的示例包括但不限于:关键时序路径上的针脚上的最大转换、关键时序路径上的针脚上的平均转换、关键时序路径中的单元的最大针脚电容、关键时序路径中的单元的平均针脚电容、时序起点的时钟针脚的针脚电容、以及时序终点的时钟针脚的针脚电容。
属于约束类别的特征/标签的示例包括但不限于:最大转换约束、最大电容约束、时序路径的所需时间、以及MCMM场景。
属于时序类别的特征/标签的示例包括但不限于:单元延迟、网络延迟、时序端点处的前布线到达时间和时序端点处的前布线转换时间、时序起点处的时钟到达时间、以及时序终点处的时钟到达时间。在一些实施例中,对于对拟合到后详细布线时序标签的模型以及对拟合到后时钟网络综合标签的模型的偏斜效应进行建模,时钟到达特征可以是重要的。在没有这些特征的情况下,当端点具有相同的标签值(有或没有偏斜)时,模型可能被误导。
一些实施例在训练阶段期间依赖于足够大的特征空间和地面实况(即标签),该足够大的特征空间和地面实况可以在核心引擎运行时和/或在网表、物理上下文、约束、流程等在不在训练IC设计集合中的IC设计中改变时,对变化进行建模。如果这些类别中的任何类别有大的改变,则机器学习模型可以用新数据重新训练,以便新的改变可以被准确建模。具体地,本文描述的一些实施例检测到这种大的错误,并且提示用户重新训练模型。
本文描述的实施例可以预测由于布线以及网表改变对IC设计的时序影响。此外,本文描述的实施例用于预测除时序松弛之外的时序参数。例如,本文描述的实施例可以预测后布线波形传播、转换变化等。
图5图示了根据本文描述的一些实施例的机器学习模型的示例。图5中所示的机器学习模型仅用于说明目的,并且不将实施例的范围限制为所公开的形式。
机器学习模型500可以包括回归树Tl、T2和T3。回归树的每个非叶节点可以对应于一个条件,并且从非叶节点发出的每个向下分支可以对应于评估该条件的结果。例如,如果非叶节点将特定特征的值与阈值进行比较,则一个分支可以对应于具有小于阈值的值的特征,并且另一个分支可以对应于具有大于或等于阈值的值的特征。每个叶节点可以对应于训练数据的子集,该子集满足从根节点到叶节点的路径上的条件。
从IC设计流程的第一阶段提取的特征502可以用于向下遍历每个树以到达叶节点。例如,基于特征502遍历树T1、T2和T3可以使得叶节点504-1、504-2和504-3被选择。然后,对应于叶节点504-1、504-2和504-3的训练数据的子集可以被用来计算预测标签506(标签506预计将存在于IC设计流程的第二阶段的IC设计中,其中IC设计的第二阶段是从中提取标签以训练机器学习模型的阶段)。
在一些实施例中,对应于叶节点504-1、504-2和504-3的训练数据的子集中的标签的平均值可以用于计算预测标签。在训练期间,树的数目、树中的节点的数目、树的拓扑以及与每个节点相关联的条件可以被优化,以减少预测标签与实际标签之间的误差。
在一些实施例中,机器学习模型可以包括具有多个树集合的随机森林。在一些实施例中,可以通过使用输入特征的随机拆分来构建每个树,使得在树的每个节点处的信息增益被最大化。所选择的特征可以是N个特征中的任意k个特征(k≤N)。每个树的深度可以通过使用最大深度超参数来被控制。当多个树被构建时,输出可以从所有树轮询并且被平均。然后可以使用残差来构建后续树集合。学习技术的提升部分可以迭代地将来自树的先前预测的残差最小化。可以使用超参数来控制森林中的最大树数目。由模型输出的预测标签可以是来自树集合的结果的加权和。在训练期间,监督学习技术可以基于树的结构(即,叶的数目、深度等)来学习权重。
在一些实施例中,并且更具体地在预测时序标签的实施例中,过程可以优化(即,最小化)预测标签与实际标签之间的特定误差指标。特别地,一些实施例使用均方根误差(RMSE),并且在训练期间最小化RMSE指标。该指标确定实际误差,该实际误差在模型调整之后可以影响设计的总负松弛指标。在评估各种误差指标(例如,R2、均方误差、绝对误差平均值等)之后,发现RMSE指标与设计时序指标密切相关,并且将其最小化可以真正指导物理设计流程优化引擎来实现更好和收敛的时序指标。
图6示出根据本文中描述的一些实施例的集成电路的设计、验证和制造的示例流程600。
EDA过程612(首字母缩写“EDA”指代“电子设计自动化”)可以用于转换和验证表示集成电路的设计数据和指令。这些过程中的每个过程都可以被构造和实现为多个模块或操作。
流程600可以开始于利用由设计者提供的信息创建产品构思610,该信息是通过使用EDA过程612来转换和验证的。当设计完成时,设计被流片634,流片是指集成电路的原图(例如,几何图案)被发送到制造设备以制造掩模组,掩模组然后被用于制造集成电路。在流片之后,制造636半导体裸片,并且执行封装和组装638以产生所制造的IC芯片640。
电路或电子结构的规格可以从低级晶体管材料布局到高级描述语言。高抽象级可以用于使用诸如VHDL、Verilog、SystemVerilog、SystemC、MyHDL或OpenVera之类的硬件描述语言(“HDL”)来设计电路和系统。HDL描述可以被转换为逻辑级寄存器传输级(“RTL”)描述、门级描述、布局级描述或掩模级描述。作为较低抽象描述的每个较低抽象级将更多细节添加到设计描述中。作为较少抽象描述的较低抽象级可以由计算机生成、从设计库中导出、或由另一设计自动化过程创建。用于指定更详细描述的较低抽象级语言的指定语言的示例是SPICE(其代表“以集成电路为重点的仿真程序”)。每个抽象级的描述包含足以由该层的相应工具(例如,形式验证工具)使用的细节。
在系统设计614期间,指定要制造的集成电路的功能。可以针对诸如功耗、性能、面积(物理和/或代码行)以及成本降低等的期望特性来优化设计。将设计划分为不同类型的模块或部件可以在这个阶段出现。
在逻辑设计和功能验证616期间,以一种或多种描述语言指定电路中的模块或部件,并且检查该规格的功能准确性。例如,可以验证电路的部件以生成与正在设计的电路或系统的规格的要求相适配的输出。功能验证可以使用模拟器和其他程序,诸如测试台生成器、静态HDL检查器和形式验证器。在一些实施例中,被称为“仿真器”或“原型系统”的部件的特殊系统被用于加速功能验证。
在用于测试的综合和设计618期间,HDL代码被转换成网表。在一些实施例中,网表可以是图结构,其中图结构的边表示电路的部件,并且其中图结构的节点表示部件如何互连。HDL代码和网表都是分级制品,该分级制品可以由EDA产品用来验证集成电路在制造时是否根据指定设计运行。可以针对目标半导体制造技术优化网表。另外,可以测试完成的集成电路以验证集成电路是否满足规格的要求。
在网表验证620期间,检查网表与时序约束的一致性以及网表与HDL代码的对应性。在设计规划622期间,构造并分析集成电路的总体布局图以用于时序和顶层布线。
在布局或物理实现624期间,进行物理放置(诸如晶体管或电容器之类的电路部件的定位)和布线(通过多个导体连接电路部件),并且可以执行从库中选择单元以实现特定逻辑功能。如本文所使用的,术语“单元”可以指定提供布尔逻辑功能(例如,与、或、非、异或)或存储功能(诸如触发器或锁存器)的一组晶体管、其他部件和互连。如本文所使用,电路“块”可以指代两个或更多个单元。单元和电路块都可以被称为模块或部件并且被实现为物理结构和在仿真中实现。为被选择的单元(基于“标准单元”)指定参数,诸如尺寸,并且使参数在数据库中可访问以供EDA产品使用。
在分析和提取626期间,在布局级验证电路功能,这允许布局设计的精细化。在物理验证628期间,检查布局设计以确保制造约束是正确的,诸如DRC约束、电气约束、光刻约束,并且确保电路功能与HDL设计规格适配。在分辨率增强630期间,转换布局的几何形状以改进电路设计的制造方式。
在流片期间,创建数据以用于(在适当的情况下应用光刻增强之后)光刻掩模的生产。在掩模数据准备632期间,“流片”数据用于产生光刻掩模,该光刻掩模用于产生完成的集成电路。
计算机系统(诸如图7的计算机系统700)的存储子系统可以用于存储由本文描述的EDA产品中的一些或全部EDA产品使用的程序和数据结构、以及用于开发库的单元和用于使用库的物理和逻辑设计的产品。
图7示出了计算机系统700的示例机器,在该示例机器内可以执行用于使该机器执行本文所讨论的方法中的任何一个或多个方法的一组指令。
在备选实现方式中,机器可以连接(例如,联网)到LAN、内联网、外联网和/或因特网中的其他机器。机器可以作为客户端-服务器网络环境中的服务器或客户端机器、作为对等(或分布式)网络环境中的对等机器、或者作为云计算基础设施或环境中的服务器或客户端机器来操作。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、交换机或网桥、或者能够执行指定机器要采取的动作的一组指令(顺序的或其他方式)的任何机器。此外,虽然示出了单个机器,但是术语“机器”还应被理解为包括单独地或联合地执行一组(或多组)指令以执行本文所讨论的方法中的任何一个或多个方法的机器的任何集合。
示例计算机系统700包括处理装置702、主存储器704(例如,只读存储器(ROM)、闪存、诸如同步DRAM(SDRAM)之类的动态随机存取存储器(DRAM)、静态存储器706(例如,闪存、静态随机存取存储器(SRAM)等)以及数据存储装置718,它们经由总线730彼此通信。
处理装置702表示一个或多个处理器,诸如微处理器、中央处理单元等。更具体地说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、或实现其他指令集的处理器、或实现指令集的组合的处理器。处理装置702还可以是一个或多个专用处理装置,诸如专用集成电路(ASIC)、现场可以编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置702可以被配置成执行用于执行本文描述的操作和步骤的指令726。
计算机系统700还可以包括网络接口装置708,以通过网络720进行通信。计算机系统700还可以包括视频显示单元710(例如,液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入装置712(例如,键盘)、光标控制装置714(例如,鼠标)、图形处理单元722、信号生成装置716(例如,扬声器)、图形处理单元722、视频处理单元728、以及音频处理单元732。
数据存储装置718可以包括机器可读存储介质724(也称为非暂态计算机可读介质),在该机器可读存储介质上存储有体现本文描述的方法或功能中的任何一项或多项的一组或多组指令726或软件。指令726在由计算机系统700执行期间也可以完全或至少部分地驻留在主存储器704内和/或处理装置702内,主存储器704和处理装置702也构成机器可读存储介质。
在一些实现方式中,指令726包括用于实现与本公开相对应的功能的指令。虽然机器可读存储介质724在示例实现方式中被示为单个介质,但是术语“机器可读存储介质”应当被认为包括存储一组或多组指令的单个介质或多个介质(例如,集中式或分布式数据库、和/或相关联的缓存和服务器)。术语“机器可读存储介质”还应当被理解为包括能够存储或编码用于由机器执行的一组指令并且使机器和处理装置702执行本公开的方法中的任何一个或多个方法的任何介质。术语“机器可读存储介质”因此应当被理解为包括但不限于固态存储器、光学介质和磁介质。
已经根据对计算机存储器内的数据位的操作的算法和符号表示来呈现了前述详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用来最有效地将他们工作的实质传达给本领域的其他技术人员的方式。算法可以是导致期望结果的操作序列。这些操作是需要对物理量进行物理操作的操作。这种量可以采取能够被存储、组合、比较和以其他方式操纵的电信号或磁信号的形式。这样的信号可以被称为位、值、元素、符号、字符、项、数字等。
然而,应当记住,所有这些和类似的术语都与适当的物理量相关联,并且仅仅是应用于这些量的方便的标记。除非特别声明,否则从本公开中显而易见的是,应当理解,在整个说明书中,某些术语是指计算机系统或类似的电子计算装置的动作和处理,该动作和处理将表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操纵和转换为类似地表示为计算机系统存储器或寄存器或其他这样的信息存储装置内的物理量的其他数据。
本公开还涉及用于执行本文的操作的设备。该设备可以是为预期目的而专门构造的,或者该设备可以包括由存储在计算机中的计算机程序选择性地激活或重新配置的计算机。这样的计算机程序可以存储在计算机可读存储介质中,例如但不限于包括软盘、光盘、CD-ROM和磁光盘的任何类型的盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡、或适于存储电子指令的任何类型的介质,各自耦合到计算机系统总线。
本文提出的算法和显示与任何特定计算机或其他设备并非本质地相关。各种其他系统可以与根据本文教导的程序一起使用,或者可以证明构造更专用的设备来执行该方法是方便的。另外,本公开不是参考任何特定编程语言来描述的。将理解的是,各种编程语言可以用于实现如本文描述的本公开的教导。
本公开可以作为计算机程序产品或软件来提供,计算机程序产品或软件可以包括存储有指令的机器可读介质,该指令可以用于对计算机系统(或其他电子装置)进行编程以执行根据本公开的过程。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机制。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质,诸如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、闪存装置等。
在前述公开中,已经参考其特定示例实现方式描述了本公开的实现方式。显然可以对这些实现方式进行各种修改而不偏离如所附权利要求中阐述的本公开的实施方式的范围和广义精神。在本公开以单数形式提及一些元件的情况下,在附图中可以描绘多于一个的元件,并且相同的元件用相同的数字标记。因此,本公开和附图应被认为是说明性意义的而不是限制性意义的。
Claims (20)
1.一种方法,包括:
在IC设计流程的第一阶段中,基于训练IC设计集合中的每个训练IC设计,提取IC设计特征的第一集合,以及
在所述IC设计流程的第二阶段中,基于所述训练IC设计集合中的每个训练IC设计,提取IC设计标签的第一集合,其中在所述IC设计流程中,所述IC设计流程的所述第一阶段比所述IC设计流程的所述第二阶段更早出现;以及
由处理器,基于所述IC设计特征的第一集合和所述IC设计标签的第一集合,训练机器学习模型。
2.根据权利要求1所述的方法,其中所述IC设计流程的所述第一阶段属于所述IC设计流程的前布线部分,所述前布线部分在所述IC设计流程中在全局布线已经被完成之后结束,并且其中所述第二阶段属于所述IC设计流程的后布线部分,所述后布线部分在所述IC设计流程中在轨道分配和详细布线已经被完成之后开始。
3.根据权利要求1所述的方法,其中所述第一阶段属于所述IC设计流程的前时钟网络综合部分,所述前时钟网络综合部分在所述IC设计流程中在后放置优化已经被完成之后结束,并且其中所述第二阶段属于所述IC设计流程的后时钟网络综合部分,所述后时钟网络综合部分在所述IC设计流程中在时钟网络综合已经被完成之后开始。
4.根据权利要求1所述的方法,其中使用训练数据来训练所述机器学习模型以基于所述IC设计特征的第一集合来预测所述IC设计标签的第一集合包括:减少误差项,所述误差项表示IC设计标签的预测集合与所述IC设计标签的第一集合之间的聚合误差。
5.根据权利要求4所述的方法,其中减少所述误差项包括:迭代地修改所述机器学习模型的参数。
6.根据权利要求1所述的方法,其中所述IC设计特征的第一集合包括以下至少一项:组合逻辑云中的逻辑级的计数、所述组合逻辑云中的平均扇出、反相器和缓冲器的计数、具有修改限制的单元的计数、转换违规的计数、聚合网络延迟与聚合单元延迟之间的比率、单元的位置、以及单元的大小。
7.根据权利要求6所述的方法,其中所述IC设计标签的第一集合包括以下至少一项:在时序端点处的到达时间、在所述时序端点处的所需时间、在所述时序端点处的时序松弛、在所述时序端点处的转换、在所述时序端点处的噪声容限、在逻辑门的端子处的到达时间、在所述逻辑门的所述端子处的所需时间、在所述逻辑门的所述端子处的时序松弛、在所述逻辑门的所述端子处的转换、在所述逻辑门的所述端子处的噪声容限。
8.根据权利要求1所述的方法,包括:
在所述IC设计流程的所述第一阶段中,
从给定IC设计提取IC设计特征的第二集合,
使用经训练的所述机器学习模型来基于所述IC设计特征的第二集合预测IC设计标签的第二集合,以及
基于所述IC设计标签的第二集合,对所述给定IC设计执行操作。
9.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储指令,所述指令在由处理器执行时使所述处理器:
在IC设计流程的第一阶段中,从训练集成电路IC设计集合中的每个训练IC设计提取IC设计特征的第一集合;
在所述IC设计流程的第二阶段中,从所述训练IC设计集合中的每个训练IC设计提取IC设计标签的第一集合,其中所述IC设计流程的所述第二阶段比所述IC设计流程的所述第一阶段更晚出现;以及
基于所述IC设计特征的第一集合和所述IC设计标签的第一集合,训练机器学习模型。
10.根据权利要求9所述的非暂态计算机可读存储介质,其中所述IC设计流程的所述第一阶段属于所述IC设计流程的前布线部分,所述前布线部分在所述IC设计流程中在全局布线已经被完成之后结束,并且其中所述第二阶段属于所述IC设计流程的后布线部分,所述后布线部分在所述IC设计流程中在轨道分配和详细布线已经被完成之后开始。
11.根据权利要求9所述的非暂态计算机可读存储介质,其中所述第一阶段属于所述IC设计流程的前时钟网络综合部分,所述前时钟网络综合部分在所述IC设计流程中在后放置优化已经被完成之后结束,并且其中所述第二阶段属于所述IC设计流程的后时钟网络综合部分,所述后时钟网络综合部分在所述IC设计流程中在时钟网络综合已经被完成之后开始。
12.根据权利要求9所述的非暂态计算机可读存储介质,其中训练所述机器学习模型以基于所述IC设计特征的第一集合来预测所述IC设计标签的第一集合包括:减少误差项,所述误差项表示IC设计标签的预测集合与所述IC设计标签的第一集合之间的聚合误差。
13.根据权利要求12所述的非暂态计算机可读存储介质,其中减少所述误差项包括:迭代地修改所述机器学习模型的参数。
14.根据权利要求9所述的非暂态计算机可读存储介质,其中所述IC设计特征的第一集合包括以下至少一项:组合逻辑云中的逻辑级的计数、所述组合逻辑云中的平均扇出、反相器和缓冲器的计数、具有修改限制的单元的计数、转换违规的计数、聚合网络延迟与聚合单元延迟之间的比率、单元的位置、以及单元的大小。
15.根据权利要求14所述的非暂态计算机可读存储介质,其中所述IC设计标签的第一集合包括以下至少一项:在时序端点处的到达时间、在所述时序端点处的所需时间、在所述时序端点处的时序松弛、在所述时序端点处的转换、在所述时序端点处的噪声容限、在逻辑门的端子处的到达时间、在所述逻辑门的所述端子处的所需时间、在所述逻辑门的所述端子处的时序松弛、在所述逻辑门的所述端子处的转换、在所述逻辑门的所述端子处的噪声容限。
16.根据权利要求9所述的非暂态计算机可读存储介质,其中所述指令在由所述处理器执行时使所述处理器:
在所述IC设计流程的所述第一阶段中,
从给定IC设计提取IC设计特征的第二集合,
使用经训练的所述机器学习模型来基于所述IC设计特征的第二集合预测IC设计标签的第二集合,以及
基于所述IC设计标签的第二集合,对所述给定IC设计执行操作。
17.一种设备,包括:
存储器,存储指令;以及
处理器,与所述存储器耦合并且执行所述指令,所述指令在被执行时使所述处理器:
针对训练集成电路IC设计集合中的每个训练IC设计,收集训练数据,其中收集所述训练数据包括:在IC设计流程的第一阶段中,从每个训练IC设计提取IC设计特征的第一集合;以及在所述IC设计流程的第二阶段中,从所述训练IC设计集合中的每个训练IC设计提取IC设计标签的第一集合,所述IC设计流程的所述第二阶段比所述IC设计流程的所述第一阶段更晚出现;以及
使用所述训练数据来训练机器学习模型。
18.根据权利要求17所述的设备,其中所述IC设计流程的所述第一阶段属于所述IC设计流程的前布线部分,所述前布线部分在所述IC设计流程中在全局布线已经被完成之后结束,并且其中所述第二阶段属于所述IC设计流程的后布线部分,所述后布线部分在所述IC设计流程中在轨道分配和详细布线已经被完成之后开始。
19.根据权利要求17所述的设备,其中所述第一阶段属于所述IC设计流程的前时钟网络综合部分,所述前时钟网络综合部分在所述IC设计流程中在后放置优化已经被完成之后结束,并且其中所述第二阶段属于所述IC设计流程的后时钟网络综合部分,所述后时钟网络综合部分在所述IC设计流程中在时钟网络综合已经被完成之后开始。
20.根据权利要求17所述的设备,其中所述指令在由所述处理器执行时使所述处理器:
在所述IC设计流程的第一阶段中,
从给定IC设计提取IC设计特征的第二集合,
使用经训练的所述机器学习模型来基于所述IC设计特征的第二集合预测IC设计标签的第二集合,以及
基于所述IC设计标签的第二集合,对所述给定IC设计执行操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962898086P | 2019-09-10 | 2019-09-10 | |
US62/898,086 | 2019-09-10 | ||
PCT/US2020/049739 WO2021050434A1 (en) | 2019-09-10 | 2020-09-08 | Machine-learning driven prediction in integrated circuit design |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114303150A true CN114303150A (zh) | 2022-04-08 |
Family
ID=72644902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080059912.XA Pending CN114303150A (zh) | 2019-09-10 | 2020-09-08 | 集成电路设计中的机器学习驱动的预测 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11256845B2 (zh) |
EP (1) | EP4028928A1 (zh) |
KR (1) | KR20220054606A (zh) |
CN (1) | CN114303150A (zh) |
WO (1) | WO2021050434A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117151018A (zh) * | 2023-10-25 | 2023-12-01 | 深圳鸿芯微纳技术有限公司 | 缓冲器和反相器的布局方法、装置和电子设备 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11100270B1 (en) | 2019-06-21 | 2021-08-24 | Synopsys, Inc. | Pattern based die connector assignment using machine learning image recognition |
US11615494B2 (en) * | 2020-06-15 | 2023-03-28 | Taiwan Semiconductor Manufacturing Company, Ltd. | Intellectual property recommending method and system |
US11244099B1 (en) * | 2020-12-31 | 2022-02-08 | Cadence Design Systems, Inc. | Machine-learning based prediction method for iterative clustering during clock tree synthesis |
US20220318321A1 (en) * | 2021-04-02 | 2022-10-06 | Trackstreet, Inc. | System and method for reducing crawl frequency and memory usage for an autonomous internet crawler |
US11790139B1 (en) * | 2022-04-18 | 2023-10-17 | Xilinx, Inc. | Predicting a performance metric based on features of a circuit design and explaining marginal contributions of the features to the prediction |
GB2623541A (en) * | 2022-10-19 | 2024-04-24 | Ibm | Reinforcement learning based correction of timing failures |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100005041A1 (en) * | 2008-07-07 | 2010-01-07 | Nec Laboratories America, Inc. | Machine learning based volume diagnosis of semiconductor chips |
US8117568B2 (en) * | 2008-09-25 | 2012-02-14 | International Business Machines Corporation | Apparatus, method and computer program product for fast simulation of manufacturing effects during integrated circuit design |
US9824243B2 (en) * | 2015-09-11 | 2017-11-21 | Nxp Usa, Inc. | Model-based runtime detection of insecure behavior for system on chip with security requirements |
JP6801383B2 (ja) * | 2016-11-07 | 2020-12-16 | 富士通株式会社 | 設計支援プログラム、設計支援方法、および情報処理装置 |
US10192016B2 (en) * | 2017-01-17 | 2019-01-29 | Xilinx, Inc. | Neural network based physical synthesis for circuit designs |
US10372859B2 (en) * | 2017-03-09 | 2019-08-06 | Alphaics Corporation | System and method for designing system on chip (SoC) circuits using single instruction multiple agent (SIMA) instructions |
US10867091B1 (en) * | 2018-08-17 | 2020-12-15 | Synopsys, Inc. | Machine learning based power optimization using parallel training and localized data generation |
US10810346B2 (en) * | 2018-09-28 | 2020-10-20 | Taiwan Semiconductor Manufacturing Co., Ltd. | Static voltage drop (SIR) violation prediction systems and methods |
US10915685B1 (en) * | 2018-12-17 | 2021-02-09 | Cadence Design Systems, Inc. | Circuit stage credit based approaches to static timing analysis of integrated circuits |
US11263737B2 (en) * | 2019-01-10 | 2022-03-01 | Lam Research Corporation | Defect classification and source analysis for semiconductor equipment |
US11003826B1 (en) * | 2019-04-29 | 2021-05-11 | Xilinx, Inc. | Automated analysis and optimization of circuit designs |
US11042678B2 (en) * | 2019-06-19 | 2021-06-22 | Samsung Electronics Co., Ltd. | Clock gate latency modeling based on analytical frameworks |
KR20220148913A (ko) * | 2020-03-14 | 2022-11-07 | 시놉시스, 인크. | 초기 단계 회로 설계에서 기계 학습 기반 메트릭 예측 |
-
2020
- 2020-09-08 EP EP20780427.9A patent/EP4028928A1/en active Pending
- 2020-09-08 KR KR1020227007591A patent/KR20220054606A/ko active Search and Examination
- 2020-09-08 CN CN202080059912.XA patent/CN114303150A/zh active Pending
- 2020-09-08 WO PCT/US2020/049739 patent/WO2021050434A1/en unknown
- 2020-09-09 US US17/015,757 patent/US11256845B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117151018A (zh) * | 2023-10-25 | 2023-12-01 | 深圳鸿芯微纳技术有限公司 | 缓冲器和反相器的布局方法、装置和电子设备 |
CN117151018B (zh) * | 2023-10-25 | 2024-03-12 | 深圳鸿芯微纳技术有限公司 | 缓冲器和反相器的布局方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
KR20220054606A (ko) | 2022-05-03 |
EP4028928A1 (en) | 2022-07-20 |
US11256845B2 (en) | 2022-02-22 |
US20210073456A1 (en) | 2021-03-11 |
WO2021050434A1 (en) | 2021-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11256845B2 (en) | Machine-learning driven prediction in integrated circuit design | |
US10915685B1 (en) | Circuit stage credit based approaches to static timing analysis of integrated circuits | |
CN115315702A (zh) | 早期阶段电路设计中基于机器学习的度量的预测 | |
US20220300688A1 (en) | Fast synthesis of logical circuit design with predictive timing | |
US11694016B2 (en) | Fast topology bus router for interconnect planning | |
US11836425B2 (en) | Engineering change orders with consideration of adversely affected constraints | |
US20230260591A1 (en) | Transforming local wire thru resistances into global distributed resistances | |
US20220391566A1 (en) | Machine learning models for predicting detailed routing topology and track usage for accurate resistance and capacitance estimation for electronic circuit designs | |
US20220405458A1 (en) | Machine-learning-based power/ground (p/g) via removal | |
US20230004698A1 (en) | Dividing a chip design flow into sub-steps using machine learning | |
US11328109B2 (en) | Refining multi-bit flip flops mapping without explicit de-banking and re-banking | |
US20200394352A1 (en) | Satisfiability sweeping for synthesis | |
US11836435B1 (en) | Machine learning based parasitic estimation for an integrated circuit chip design | |
US11741282B2 (en) | Reinforcement learning-based adjustment of digital circuits | |
US20220058328A1 (en) | Synthesis placement bounds based on physical timing analysis | |
US20220382955A1 (en) | Constraint file-based novel framework for net-based checking technique | |
US11080450B1 (en) | Calculating inductance based on a netlist | |
US20230252208A1 (en) | Transforming a logical netlist into a hierarchical parasitic netlist | |
US11537775B1 (en) | Timing and placement co-optimization for engineering change order (ECO) cells | |
US11893332B2 (en) | Global mistracking analysis in integrated circuit design | |
US11972191B2 (en) | System and method for providing enhanced net pruning | |
US11087059B2 (en) | Clock domain crossing verification of integrated circuit design using parameter inference | |
US11586796B1 (en) | Keep-through regions for handling end-of-line rules in routing | |
US20230072923A1 (en) | Supervised machine learning based memory and runtime prediction using design and auxiliary constructs | |
US11416661B2 (en) | Automatic derivation of integrated circuit cell mapping rules in an engineering change order flow |
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 |