CN115315702A - 早期阶段电路设计中基于机器学习的度量的预测 - Google Patents

早期阶段电路设计中基于机器学习的度量的预测 Download PDF

Info

Publication number
CN115315702A
CN115315702A CN202180020956.6A CN202180020956A CN115315702A CN 115315702 A CN115315702 A CN 115315702A CN 202180020956 A CN202180020956 A CN 202180020956A CN 115315702 A CN115315702 A CN 115315702A
Authority
CN
China
Prior art keywords
circuit design
qor
partial circuit
metric
run
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
Application number
CN202180020956.6A
Other languages
English (en)
Inventor
R·玛米迪
S·纳思
W-T·陈
V·卡恩德尔瓦尔
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.)
Synopsys Inc
Original Assignee
Synopsys Inc
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 Synopsys Inc filed Critical Synopsys Inc
Publication of CN115315702A publication Critical patent/CN115315702A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/04Constraint-based CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Computer Hardware Design (AREA)
  • Computational Linguistics (AREA)
  • Geometry (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

当设计电路以满足某些约束要求时,确定给定的电路设计是否将满足这些约束是有挑战性的。在电路设计的早期阶段(例如,综合或放置),设计者可能具有有限的信息来依赖,以便确定最终的电路或其一些设计变化是否将满足约束而不需要完整设计电路。本文描述的方法使用机器学习(ML)模型来基于在设计流程的早期阶段的部分电路设计的特征预测整个电路是否可能满足约束。附加地,所公开的方法允许对各种电路设计或设计实施例进行排序以确定进行完整设计的最佳候选者。

Description

早期阶段电路设计中基于机器学习的度量的预测
相关申请的交叉引用
本申请要求于2020年3月14日提交的题为“Machine Learning-Based Predictionof Achievable QoR Metrics at Post-Route and Post-Route Optimization Stages toEnable Early-Stage Design Exploration”的美国专利申请No.62/989,687的权益,该申请的全部内容通过引用结合于此。
技术领域
本发明总体上涉及电子设计自动化(EDA)领域,并且更明确地说,涉及机器学习(ML)在部分EDA电路设计的结果质量(QoR)度量的预测中的使用。
背景技术
针对诸如芯片上系统(SoC)设计之类的许多现代电路的设计闭合在计算上变得复杂。另外,物理设计者通过探索诸如性能、区域、定时、功率等的多个度量,在诸如综合、初始放置或放置优化的早期阶段处花费大量时间和资源来尝试改进设计质量。
设计者当前运行实现流程的多次迭代,以观察其每次运行的结果质量(QoR)从而获得反馈。这个过程是耗时的,因为完整的实现流程可以需要几天到几周的时间才能完成。
因此,所需要的是在早期设计阶段处获得用于设计运行的QoR度量的方法,从而避免从完整运行观察这种QoR度量所需的时间投入。
发明内容
本文公开了用于早期阶段电路设计中基于机器学习(ML)的度量的预测的系统、方法和计算机程序产品。在示例性方法中,用于电路的部分电路设计运行被生成。通过在部分电路设计运行上执行ML模型,预测的结果质量(QoR)度量被产生以用于部分电路设计运行。使用在开发阶段从训练电路中提取的特征和来自训练电路的完整设计运行的实际QoR度量来训练ML模型。基于预测的QoR度量,确定部分电路设计运行满足对预测的QoR度量的约束。并且,基于该确定,从部分电路设计运行来执行用于电路的完整电路设计运行。
此概述并不试图提供任何特定创新、实施例或示例的完整意义,因为其可用于商业中。另外,本概述不旨在表示创新,实施例或示例的关键或重要元素或限制本公开的主题的范围。在本公开中发现的创新,实施例和/或示例不是全部包含的,而是描述了主题的基本意义。因此,本概述的一个用途是作为以下呈现的详细描述的序言。
附图说明
从以下给出的详细描述和从本公开的实施例的附图将更全面地理解本公开。附图被使用以提供对本公开的实施例的知识和理解,而不将本公开的范围限制于这些特定实施例。此外,附图不必按比例绘制。
图1示出了根据实施例的具有从综合到布线选择/签发的各个阶段的后端物理实现流程。
图2示出了根据实施例的ML-QoR建模和预测流程的预测元素。
图3是示出了根据实施例的ML-QoR建模和预测流程所利用的示例性预测器的流程图。
图4是示出了根据实施例的实现流程结束QoR度量的预测的表格,该度量使得能够使用顺序统计对设计运行进行排序。
图5描绘了根据本发明的一些实施例在集成电路的设计和制造期间使用的各种过程的流程图。
图6描绘了根据本公开的一些实施例的示例仿真系统的抽象图。
图7描绘了本公开的实施例可以在其中操作的示例计算机系统的抽象图。
图8示出了根据实施例的ML-QoR与ICCII/FC的集成。
图9示出了根据实施例的具有ML定时模型的定时预测流程。
图10示出了根据实施例的示例定时预测流程结果。
图11描绘了根据实施例的示例性设计中的一组排序运行的示例性结果。
图12示出了根据实施例的定时预测的示例性结果。
图13示出了根据实施例的示例性布线评分流程。
图14示出了根据实施例的可布线性评分的示例性结果。
具体实施方式
本发明的各方面涉及早期阶段电路设计中基于机器学习(ML)的度量的预测。在早期设计阶段处(例如,综合、放置、放置优化等)工作的电路设计者通常必须在多个可能的设计解决方案中决定以完全模拟。完全模拟电路的过程可能是耗时的,特别是针对更复杂的电路,诸如芯片上系统(SoC)设计。本文所公开的方法允许设计者使用ML模型来分析早期阶段电路设计以预测最终电路设计是否将满足设计约束。
目前,不存在能够在设计和流程的早期阶段中提供所需的结果质量(QoR)度量的准确和可靠估计的工具。特别地,需要工具来提供关于给定电路设计运行是否具有满足QoR目标的潜力,或者其是否应当被丢弃以节省资源的预测。现有的启发式模型缺乏公开的ML模型方法的准确性,以及简单地集成到本文所公开的早期阶段设计流程中。典型QoR度量被优化用于包括用于每个全流量运行的定时、可布线性、区域、功率、运行时间和存储器。设计者已经开始依赖于许多启发式方法来在早期设计阶段估计这些QoR度量,但是诸如先进节点技术之类的许多复杂因素可以加剧预测QoR度量和实际度量之间的差异,其只能通过全流量运行来被确定。并且由于全流量运行通常需要数天来完成,因此需要更好的预测模型。
除了提供针对QoR目标约束的预测之外,本文公开的ML模型可以通过提供快速和准确的方法来帮助早期阶段电路设计者预测流程结束QoR和瓶颈。度量可以作为反馈被实时提供给设计者以帮助改进寄存器传送级(RTL)综合、约束和早期阶段(诸如综合和放置)中的布局。
另外,当设计者具有可以满足QoR目标约束的多个可能可用设计时,本文所公开的ML模型可以向设计者提供基于使用次序统计的经估计的流程结束QoR度量在早期设计阶段对多个运行进行排序的准确方法。这允许设计者仅针对期望最好地满足给定一组QoR目标的最高排序的早期阶段设计进行完整设计。当前,基于QoR度量对多个设计排序再次需要全流量运行以用于准确性。
QoR“前瞻”预测和排序方法在与一个或多个完整电路设计相关联的开发流程期间的各个设计阶段使用ML技术来建模以下方面中的每个方面如何影响最终电路设计的QoR度量:(1)优化期间放置变化;(2)网表由于时钟树综合(CTS)和多轮优化而发生变化;(3)在定时窗口上的布线的影响;(4)定时器和提取变化;以及(5)用户流设置。
然后ML-QoR模型在新电路设计的开发期间被使用以(a)识别哪些设计运行具有满足已建立的QoR目标的潜力,并且哪些运行可以被丢弃以节省资源,(b)快速并且准确地预测流程结束QoR和瓶颈,其被提供作为反馈以在电路设计开发的综合和放置阶段期间改进RTL/约束/布局,以及(c)使用顺序统计方法基于经估计的流程结束QoR度量在早期设计阶段对多个运行进行准确排序。
图1示出了根据实施例的后端物理实现流程100,其具有从综合到布线选择/签发的各个阶段。各个阶段102a-102h被描述,其与用于电路设计的实现流程的示例性设计阶段相对应。特征在各个早期设计阶段(例如,阶段102a-102e)的每个阶段从部分电路中被提取,并且被提供给ML模型存储装置108中的各种ML模型的每个ML模型以用于处理。
在训练期间,后面的设计阶段(例如,阶段102f-102g)的结果可以被使用作用于确定实际QoR度量并且相应地调整ML模型存储装置108中的ML模型的基础真值。从早期设计阶段102a-102e提取的特征可以在训练期间被不同地加权,以便用于ML模型存储装置108中的ML模型产生在后期设计阶段102f-102g结束时已知的QoR度量结果。根据一个实施例,基础真值标签在布线后阶段处、在细节布线102f处或在布线后优化102g步骤处被收集用于每个QoR度量。
在机器学习中,术语“基础真值”是指用于监督学习技术的训练集的分类的准确性。这被用于统计模型中以证明或证伪研究假设。术语“基础真值(ground trothing)”是指收集用于该测试的适当目标(可证明)数据的过程。作为示例,贝叶斯垃圾邮件过滤是针对监督学习的典型使用情况,其中算法人工地被教导垃圾邮件和非垃圾邮件之间的差异。这取决于被使用以训练算法的消息的基础真值—基础真值中的不准确性消息将与所得垃圾邮件/非垃圾邮件判决中的不准确性相关。
针对ML模型存储装置108中的各种ML模型,不同的基础真值在设计流程的后期阶段102f-102g被收集。针对定时预测,基础真值特征针对每个多角度多模式场景中的所有受约束端点被收集。针对可布线性预测,基础真值特征在设计上被执行详细布线102f之后被收集。针对区域/功率,基础真值特征针对每个多角度多模式场景中的所有实例被收集。基于在实现流程期间这些特征对功率和区域的改变有贡献的假设,这些特征被用作基础真值。相关领域的技术人员将理解,其它特征可以适当地被收集以建立用于完整电路设计所需的基础真值。
过去运行104可以被使用以提供在训练中使用的特征。根据实施例,基于使用相同技术和过程作为测试下的部分电路的相同设计(早期版本)或类似设计的先前实现运行,过去运行104被选择用于ML模型存储装置108的ML模型中。这些保存的过去运行104然后可以具有提取的所需特征,用于基于保存的过去运行104与部分电路设计的类似特征来训练特定的部分电路设计。作为非限制性示例,指示给定放置方案中的两个相关联的单元的相对放置位置的关联位置矢量、以及在指示放置方案运行中的两个单元之间的信号路径中存在的阶段的数目的关联路径级矢量可以被提取。训练阶段可以包括通过改变约束、流设置和布局上下文而被获得的相同设计的多个设计或多个实现。
在训练电路设计的开发阶段期间,可以使用传统的电子设计自动化(EDA)工具(例如,放置工具、位置_选择工具、布线工具、布线_选择工具等)来生成过去运行104,以生成多个完整电路设计运行。例如,放置EDA工具被使用以生成用于第一电路设计的当前版本的放置解决方案运行,其中每个放置解决方案运行通过将相关联的一组预条件应用于当前测试电路设计并且然后执行生成完整放置解决方案所需的所有常规放置工具操作来被生成。
例如,当放置工具完成放置过程时,使用已知技术来计算用于每对相关联的单元的实际延迟/定时值,并且然后延迟/定时模型按照需要被修改(例如,使用诸如均方误差损失的已知技术),使得其针对每对相关联的单元的预测更准确地对应于经计算的实际延迟/定时值。即,在模型训练过程的早期阶段期间,模型可以生成相对不准确的预测的定时/延迟值,其与在每次训练运行结束时计算的实际延迟/定时值显著不同,但是随着时间的推移,模型被逐渐修改,直到其生成与实际延迟/定时值精确匹配的预测的延迟/定时值。
在用于ML模型的执行流程中,EDA工具被配置为针对早期阶段(例如放置_选择102c)的一组设计上运行流程。作为训练过程的一部分,训练特征在早期阶段处被提取。EDA工具继续穿过布线102f和布线_选择102g的末端。为了预测设计规则检查(DRC),标签在详细的布线102f之后被提取。为了预测定时和功率,标签在布线_选择102g的末端被提取。
ML模型存储装置108包括多个ML模型,每个都被训练以预测单独的QoR度量。例如,公开的ML训练算法可以被使用以训练延迟/定时ML模型,其预测在给定放置解决方案运行中使用的两个相关联单元之间传输信号所需的时间量(“延迟/定时”)。
利用训练方法,ML模型存储装置108中的ML模型可以被配置为在设计实现流程早期中考虑可以影响QoR度量的各种因素,诸如优化期间的放置改变、由于时钟树综合(CTS)和多轮优化而导致的网表改变、布线在定时窗口上的影响、定时器和提取改变,以及用户流设置。在相同修改的设计或新设计的后续运行中,EDA工具将仅运行通过早期设计阶段(例如,102a或102b),在此时其将提取预测特征。
通过训练ML模型存储装置108中的ML模型,来自早期设计阶段(例如阶段102a-102e)的特征可以被提供给ML模型以预测各种QoR度量预测110,诸如针对用于部分电路设计的定时、可布线性、区域、功率、运行时间和存储器的QoR预测。另外,可以通过改变约束、流设置和布局上下文来提供设计和布局约束106,以确定用于多个设计或相同设计的多个实现的QoR预测110。QoR预测110因此可以在没有全电路设计的情况下被提供。设计者可以以有效的方式探索运行时间中的参数、约束、布局和流设置。
除了在早期设计阶段预测可实现的QoR度量之外,EDA工具还可以提供多个部分电路设计(例如,基于约束106手动地选择或生成),针对这些部分电路设计可以生成QoR预测110。针对给定的QoR度量,这些设计运行然后针对彼此被进行排序,从而向设计者提供对哪些运行最可能产生用于给定QoR度量的最佳结果的理解。然后,设计者可以使用该排序以继续进行一个或多个最高排序部分设计的完整设计,并且丢弃其余。根据一个实施例,传统的EDA工具可以被使用来针对最高排序部分电路设计生成完整电路设计运行。
图2示出了根据实施例的ML-QoR建模和预测流程200的预测元素。设计202是设计早期阶段(例如,在物理综合或放置后)中的部分电路设计。根据实施例,待由ML-QoR模型分析的特征从设计202被提取,诸如网表特征204、定时约束206、电特征208和物理特征210。
特征204、206、208和210被提供给各种ML-QoR模型以便预测QoR度量。例如,延迟/定时预测器212、DRC预测器214、功率模型218、区域模型220和存储器模型222都是被使用以预测对应的QoR度量的ML-QoR模型216的示例。这些ML-QoR模型216可以为诸如定时、区域、功率、可布线性、运行时间和存储器等各种QoR度量中的每个QoR度量提供最终QoR预测224。
相关领域的技术人员将理解,ML-QoR模型216可以使用上述训练方法以各种不同的方式来被训练。本文不讨论这些单个ML-QoR模型216的每个ML-QoR模型的细节。然而,为了便于理解,在给定诸如特征204、206、208和210的早期阶段/预布线特征的情况下,ML-QoR模型216中的每个ML-QoR模型可以通过做出的特定预测来广泛地被描述。例如,延迟/定时预测器212(ML-延迟)可以被训练以预测布线优化阶段之后的定时。预测器214(ML-DRC)可以被训练以预测详细布线之后的DRC严重性和热图。功率模型218(ML-功率)可以在布线优化阶段之后被训练以预测单元的内部泄漏和网的交换功率。区域模型220(ML-区域)可以被训练以预测布线优化阶段之后的单元的数量和单元的区域。并且存储器模型222(ML-存储器)可以被训练以预测布线和布线优化阶段的峰值存储器使用。
ML-QoR模型216的集合使能通过改变约束、流设置和布局上下文来预测单个设计以及多个设计或相同设计的多个实现。在测试阶段期间,基于设计202的部分电路,ML-QoR模型被依赖用于其的QoR预测,并且EDA工具不贯穿设计流程的末尾。针对集合中的每个预测器(ML-延迟、ML-DRC、ML-功率等),在早期阶段中提取的特征足以以先行方式描述网表转换。图8示出了根据实施例的ML-QoR与SynopsysIC编译器II(ICCII)和融合编译器(FC)的集成800。
图3是示出根据实施例的由ML-QoR建模和预测流程利用的示例性预测器的流程图300。ML-QoR预测器302可以从诸如ML-延迟预测器304、ML-DRC预测器306和ML-功率预测器308的多个预测器获得结果,以便确定总体QoR预测(例如,分数)。这些示例性预测器被配置为由EDA工具调用并且从EDA工具接收用于部分电路设计的特征信息。
ML-QoR预测器302使用诸如ML-延迟预测器304、ML-DRC预测器306和ML-功率预测器308的预测器集合,以通过改变约束、流设置和布局上下文使能对单个设计以及多个设计或相同设计的多个实现的预测。
针对定时预测,ML-延迟预测器304关联布线前和布线后定时,以在310处预测每个定时端点的延迟/裕量。ML-延迟预测器304通过从EDA工具接收包括物理特征、逻辑特征、约束、时钟、定时等的关于部分电路设计的唯一特征316来做出这些预测。同样地,ML-延迟预测器304使用来自部分电路设计的这些特征来被训练,对照针对来自全电路设计的对应的QoR结果的基础真值信息来被测试。
图9示出了根据实施例的具有ML定时模型900的定时预测流程。流程类似于图1所示的流程,但是是特定于定时预测的示例性方法。图10示出了根据实施例的示例定时预测流程结果1000。这些结果示出了来自定时模型(例如,图3的ML-延迟预测器304)的预测的准确性,并且由此示出了其对运行全流程电路设计的可用性。
图12示出了根据实施例的定时预测1200的示例性结果。任何基于机器学习的预测工具将具有建模误差。本文描述的ML模型可以使用顺序统计量来计算误差的大小和分布。在一个实施例中,针对每个端点预测计算基于置信区间的定时,并且平均值、标准偏差、变异系数和基于置信区间的总负裕量(TNS)的等级之和被使用来计算每个设计/实现的最终排序。以非限制性示例的方式示出了针对定时预测1200的多个结果所计算的这些结果。
针对DRC预测,ML-DRC预测器306预测DRC误差的严重性,并且可以在312处提供每个布局单元的热图。ML-DRC预测器306通过从EDA工具接收关于部分电路设计的唯一特征318来进行预测,这些特征包括估计的网布线、单元类型放置、层等。同样地,ML-DRC预测器306使用来自部分电路设计的特征来被训练,对照来自全电路设计的用于对应的QoR结果的基础真值信息来被测试。
ML-DRC预测器306被使用以预测布线后DRC并且以生成给定技术节点中不同类型DRC的规范表示。图13示出了根据实施例的示例性布线评分流程1300。这些表示可以是图像(例如位图)格式、文本格式或任何其它格式。格式化数据可以表示DRC热图。在一个实施例中,ML-DRC预测器306针对每个设计(或设计实现)处理预测的DRC报告,与存储的DRC的规范表示(例如,训练DRC严重性模式,也以与表示相同的格式)执行卷积,并且计算新的“可布线性分数”。可布线性分数向设计者提供关于设计(或设计实现)的DRC多样性的反馈,即,低分数表明设计(或设计实现)具有很少DRC并且是可布线性的,而高分数表明设计(或设计实现)具有大量DRC并且可能是不可布线性的。该分数可以被使用以在设计(或设计实现)之间执行排序以选择最佳设计(或设计实现)或最佳设计集。图14示出了根据实施例的可布线性分数的示例性结果1400。通过在早期阶段部分电路设计上运行经过充分训练的ML-DRC预测器306,ML-QoR布线排序可以使用与实际布线-选择DRC强烈关联的可布线性分数来针对假设的7nm设计被确定。
类似地针对功率预测,ML-功率预测器308在314处预测每网功率(切换)和每单元功率(泄漏、内部)。ML-功率预测器308通过从EDA工具接收关于部分电路设计的唯一特征320来做出预测,其包括单元的邻域、网、库特性、约束等。同样地,ML-功率预测器308使用来自部分电路设计的特征来被训练,对照来自全电路设计的用于对应的QoR结果的基础真值信息来被测试。
图4是示出根据实施例的使能使用顺序统计对设计运行进行排序的可实现的流程结束QoR度量的预测的表416。在所示的示例性方法400中,设计402运行五次(例如,五个不同的实现404、406、408、410和412),但是也可以表示五个不同的设计。针对使用中的每个ML模型所需的特征被早期阶段部分电路设计提供(例如,如方法400中所示的放置-选择),其被提供给一个或多个ML模型414并且被使用以针对每个运行,计算针对每个ML模型的每个QoR结果的排序。早期流程阶段(例如,综合或放置)中的这种应用使能设计者以选择可能实现QoR约束的设计(或设计实现),并且丢弃剩余的设计,从而改进生产率。
图11描绘了根据实施例的示例性设计中的一组排序运行的示例性结果。虽然如以上关于图12所讨论的置信区间的概念被提供以帮助处理建模误差,但是较低CI TNS(即,TNS的置信度区间)统计以独特的方式被使用以使预测和排序方法稳健。TNS是设计中所有端点最差负裕量度的函数。结果,预测的较低CI TNS(示例:95%的较低置信区间)被呈现为用于设计TNS的最坏情况场景以及用于TNS等级计算的更相关度量。该结果被提供而不需要在完整流运行中完整地设计电路。
图5示出了在诸如集成电路的制品的设计、验证和制造期间使用以转换和验证表示集成电路的设计数据和指令的一组示例性过程500。这些过程中的每一个都可以被构造和实现为多个模块或操作。术语“EDA”表示术语“电子设计自动化”。这些过程开始于具有由设计者提供的信息的产品概念510的创建,该信息被转换以创建使用一组EDA过程512的制品。当设计被完成时,设计被流片(taped-out)534,这是当用于集成电路的图形(例如,几何图案)被发送到制造设备以制造掩模组时,该掩模组然后被使用以制造集成电路。在流片之后,536半导体裸片被制造并且封装和组装工艺538被执行以产生完整集成电路540。
针对电路或电子结构的规格可以从低级晶体管材料布局到高级描述语言。高级抽象可以使用诸如VHDL、Verilog、SystemVerilog、SystemC,MyHDL或OpenVera等硬件描述语言(“HDL”)来被使用以设计电路和系统。HDL描述可以被转换为逻辑级寄存器传送级('RTL')描述、门级描述、布局级描述或掩码级描述。作为较少抽象描述的每个较低抽象级将更有用的细节添加到设计描述中,例如,针对包括该描述的模块的更多细节。抽象描述较少的抽象的较低级可以被计算机生成,从设计库被导出,或被另一设计自动化过程创建。用于指定更详细说明的在较低级抽象语言的规范语言的示例是SPICE,其被用于具有许多模拟组件的电路的详细说明。在每个抽象级的描述使能由该层的对应的工具(例如,形式验证工具)使用。设计过程可以使用图5所示的顺序。EDA产品(或工具)应启用所描述的过程。
在系统设计514期间,待制造的集成电路的功能性被指定。可以针对诸如功耗、性能、区域(物理和/或代码行)和成本降低等期望特性来优化设计。在此阶段可以将设计划分为不同类型的模块或组件。
在逻辑设计和功能验证516期间,用一种或多种描述语言来指定电路中的模块或组件,并且检查规范的功能准确性。例如,电路的组件可以被验证以生成与设计的电路或系统的规范的要求相匹配的输出。功能验证可以使用模拟器和其他程序,诸如测试台(testbench)生成器、静态HDL检验器和正式验证器。在一些实施例中,被称为“仿真器”或“原型系统”的组件的特定系统被使用以加速功能验证。
在用于测试518的综合和设计期间,HDL代码被转换为网表。在一些实施例中,网表可以是图形结构,其中图形结构的边表示电路的组件,并且图形结构的节点表示组件如何被互连。HDL代码和网表两者都是可以由EDA产品用来验证集成电路在制造时按照指定的设计执行的分级制品。可以针对目标半导体制造技术优化网表。此外,完整集成电路可以被测试以验证集成电路满足规范的要求。
在网表验证520期间,检查网表是否符合定时约束以及是否与HDL代码相对应。在设计规划522期间,针对定时和顶级布线构造并且分析针对集成电路的总体平面布置图。
在布局或物理实现524期间,发生物理放置(诸如晶体管或电容器的电路组件的定位)和布线(通过多个导体连接电路组件),并且来自库的单元的选择以使能特定逻辑功能可以被执行。如本文中所使用,术语“单元”可以指定提供布尔逻辑功能(例如,AND、OR、NOT、XOR)或存储功能(诸如,触发器或锁存器)的一组晶体管、其它组件及互连。如本文所使用的,电路“块”可以指两个或更多个单元。单元和电路块两者都可以被称为模块或组件,并且被使能为物理结构和模拟两者。针对所选择的电池指定参数(基于“标准电池”),诸如尺寸,并且使其可以在数据库中访问以用于EDA产品使用。
在分析和提取526期间,电路功能在布局级处被验证,这允许改进布局设计。在物理验证528期间,布局设计被检查以确保制造约束是正确的,诸如DRC约束、电约束、光刻约束,并且电路装置功能匹配HDL设计规范。在分辨率增强530期间,布局的几何形状被转换以改进电路设计如何被制造。
在流片(tape-out)期间,数据被创建以用于(如果适当的话,在光刻增强被应用之后)生产光刻掩模。在掩模数据准备532期间,“流片”数据被使用以产生光刻掩模,光刻掩模用于产生完整集成电路。
计算机系统(诸如图7的计算机系统700或图6的主机系统607)的存储子系统可以被使用以存储由本文所描述的由EDA产品的一些或全部使用的程序和数据结构,并且产品用于库的单元的开发以及使用库的物理和逻辑设计。
图6描绘了示例仿真环境600的抽象图。仿真环境600可以被配置为验证电路设计的功能性。仿真环境600可以包括主机系统607(例如,作为EDA系统的一部分的计算机)和仿真系统602(例如,诸如现场可编程门阵列(FPGA)或处理器的一组可编程设备)。主机系统通过使用编译器610来构造仿真系统以仿真电路设计来生成数据和信息。待仿真的电路设计也被称为受测设计(“DUT”),其中来自仿真的数据和信息被用于验证DUT的功能。
主机系统607可以包括一个或多个处理器。在主机系统包括多个处理器的实施例中,本文所描述的由主机系统执行的功能可以被分布在多个处理器中。主机系统607可以包括编译器610以转换以表示DUT的描述语言编写的规范,并且产生用于构造仿真系统602以仿真DUT的数据(例如,二进制数据)和信息。编译器610可以转换、改变、重构、添加新功能和/或控制DUT的定时。
主机系统607和仿真系统602使用仿真连接所承载的信号来交换数据和信息。连接可以是但不限于一个或多个电缆,诸如具有与推荐标准232(RS232)或通用串行总线(USB)协议兼容的引脚结构的电缆。连接可以是有线通信介质或网络,诸如局域网或广域网,诸如因特网。该连接可以是使用诸如蓝牙或IEEE 802.11的无线协议的具有一个或多个接入点的无线通信介质或网络。主机系统607和仿真系统602可以通过诸如网络服务器的第三设备交换数据和信息。
仿真系统602包括多个FPGA(或其它模块),诸如FPGA 6041和6042以及附加的FPGA到604N。每个FPGA可以包括一个或多个FPGA接口,通过这些FPGA接口FPGA被连接到其它FPGA(以及可能的其它仿真组件),以用于FPGA交换信号。FPGA接口可以被称为输入/输出引脚或FPGA焊盘。虽然仿真器可以包括FPGA,但仿真器的实施例可以包括其它类型的逻辑块来代替FPGA或与FPGA一起用于仿真DUT。例如,仿真系统602可以包括定制FPGA、用于仿真或原型制作的专用ASIC、存储器、以及输入/输出设备。
可编程设备可以包括可编程逻辑块的阵列和互连的分层结构,其使能可编程逻辑块以根据HDL代码中的描述被互连。每个可编程逻辑块可以使能复杂的组合功能或使能逻辑门诸如AND,以及XOR逻辑块。在一些实施例中,逻辑块还可以包括存储器元件/设备,其可以是简单的锁存器、触发器或其它存储器的块。取决于不同逻辑块之间的互连的长度,信号可以在不同时间到达逻辑块的输入端子处,并且因此可以临时存储在存储器元件/设备中。
FPGA 6041-604N可以被放置在一个或多个板6121和6122以及附加板612M上。多个板可以被放置到仿真单元6141中。仿真单元内的板可以使用仿真单元的底板或任何其它类型的连接来被连接。另外,多个仿真单元(例如,6141和6142穿过614K)可以通过电缆或任何其它装置彼此被连接以形成多仿真单元系统。
针对待仿真的DUT,主机系统607向仿真系统602传输一个或多个位文件。位文件可以指定DUT的描述,并且可以进一步指定由主机系统607用迹线和注入逻辑创建的DUT的分区,分区到仿真器的FPGA的映射以及设计约束。使用位文件,仿真器构造FPGA以执行DUT的功能。在一些实施例中,仿真器的一个或多个FPGA可以具有构建于FPGA的硅中的迹线和注入逻辑。在这种实施例中,FPGA可以不被主机系统构造以仿真迹线和注入逻辑。
主机系统607接收待仿真的DUT的描述。在一些实施例中,DUT描述采用描述语言(例如,寄存器传送语言(RTL))。在一些实施例中,DUT描述在网表级文件或网表级文件和HDL文件的混合中。如果DUT描述的一部分或整个DUT描述处于HDL中,则主机系统可以合成DUT描述以使用DUT描述来创建门级网表。主机系统可以使用DUT的网表来将DUT划分为多个分区,其中一个或多个分区包括迹线和注入逻辑。迹线和注入逻辑跟踪通过FPGA的接口被交换的接口信号。此外,迹线和注入逻辑可以将跟踪的接口信号注入到FPGA的逻辑中。主机系统将每个分区映射到仿真器的FPGA。在一些实施例中,迹线和注入逻辑被包括在用于一组FPGA的选择分区中。迹线和注入逻辑可以被构建于仿真器的一个或多个FPGA中。主机系统可以合成待映射到FPGA中的多路复用器。迹线和注入逻辑可以使用多路复用器来将接口信号注入到DUT逻辑中。
主机系统创建描述DUT的每个分区以及分区到FPGA的映射的位文件。针对其中被包括迹线和注入逻辑的分区,位文件还描述所包括的逻辑。位文件可以包括位置和布线信息以及设计约束。主机系统存储位文件和描述哪些FPGA将仿真DUT的每个组件(例如,每个组件被映射到哪些FPGA)的信息。
根据请求,主机系统向仿真器传输位文件。主机系统发送信号给仿真器以开始DUT的仿真。在DUT的仿真期间或仿真结束时,主机系统通过仿真连接从仿真器接收仿真结果。仿真结果是在DUT仿真期间由仿真器生成的数据和信息,其包括接口信号和接口信号的状态,接口信号的状态已经由每个FPGA的迹线和注入逻辑跟踪。主机系统可以存储仿真结果和/或将仿真结果发送到另一处理系统。
在仿真DUT之后,电路设计者可以请求调试DUT的组件。如果做出这样的请求,则电路设计者可以指定调试的仿真的时间段。主机系统使用存储的信息来标识哪些FPGA正在仿真该组件。主机系统检索与该时间周期相关联的接口信号并且由每个识别的FPGA的迹线和注入逻辑跟踪。主机系统发送信号给仿真器以重新仿真标识的FPGA。主机系统将检索的接口信号传输到仿真器以针对指定的时间段重新仿真组件。每个标识的FPGA的迹线和注入逻辑将其从主机系统接收到的相应的接口信号注入到映射到FPGA的DUT的逻辑中。在FPGA的多个重新仿真的情况下,合并结果产生全调试视图。
主机系统从仿真系统接收在组件的重新仿真期间由所标识的FPGA的逻辑跟踪的信号。主机系统存储从仿真器接收的信号。在重新仿真期间跟踪的信号可以具有比初始仿真期间的采样率更高的采样率。例如,在初始仿真中,跟踪的信号可以每X毫秒包括组件的保存状态。然而,在重新仿真中,跟踪的信号可以包括每Y毫秒保存的状态,其中Y小于X。如果电路设计者请求以查看在重新仿真期间跟踪的信号的波形,则主机系统可以检索存储的信号并且显示该信号的曲线图。例如,主机系统可以生成信号的波形。之后,电路设计者可以请求针对不同的时间周期重新仿真相同的组件或重新仿真另一个组件。
主机系统607和/或编译器610可以包括子系统,诸如但不限于设计合成器子系统、映射子系统、运行时间子系统、结果子系统、调试子系统、波形子系统和存储子系统。子系统可以被构造和被使能为单个或多个模块,或者两个或更多个可以被构造为一个模块。这些子系统一起构成仿真器并且监视仿真结果。
设计合成器子系统将表示DUT 605的HDL转换为门级逻辑。针对待仿真的DUT,设计合成器子系统接收DUT的描述。如果DUT的描述全部或部分在HDL中(例如,RTL或其它抽象级),则设计合成器子系统合成DUT的HDL以创建具有按照门级逻辑的DUT描述的门级网表。
映射子系统划分DUT并且将这些分区映射到仿真器FPGA中。映射子系统使用DUT的网表将门级处的DUT划分成多个分区。针对每个分区,映射子系统检索迹线和注入逻辑的门级描述,并且将逻辑添加到该分区。如上所述,被包括在分区中的迹线和注入逻辑被使用以跟踪经由该分区映射到的FPGA的接口交换的信号(跟踪接口信号)。迹线和注入逻辑可以在划分之前被添加到DUT。例如,可以在合成DUT的HDL之前或之后由设计合成器子系统添加迹线和注入逻辑。
除了包括迹线和注入逻辑之外,映射子系统可以在分区中包括附加的跟踪逻辑,以跟踪未被跟踪和注入跟踪的某些DUT组件的状态。映射子系统可以包括在分区之前的DUT中或分区之后的分区中的附加跟踪逻辑。设计合成器子系统可以在合成HDL描述之前在DUT的HDL描述中包括附加的跟踪逻辑。
映射子系统将DUT的每个分区映射到仿真器的FPGA。针对划分和映射,映射子系统使用设计规则、设计约束(例如,定时或逻辑约束)和关于仿真器的信息。针对DUT的组件,映射子系统在存储子系统中存储描述哪些FPGA将仿真每个组件的信息。
使用划分和映射,映射子系统生成一个或多个位文件,其描述创建的分区和逻辑到仿真器的每个FPGA的映射。位文件可以包括附加信息,诸如DUT的约束以及在FPGA之间的连接和每个FPGA内的连接的布线信息。映射子系统可以针对DUT的每个分区生成位文件,并且可以将该位文件存储在存储子系统中。根据来自电路设计者的请求,映射子系统将位文件传输到仿真器,并且仿真器可以使用位文件来构造FPGA以仿真DUT。
如果仿真器包括专用ASIC,其包括迹线和注入逻辑,则映射子系统可以生成将专用ASIC连接到DUT的特定结构。在一些实施例中,映射子系统可以保存跟踪的/注入的信号的信息,并且其中该信息被存储在专用ASIC上。
运行时间子系统控制由仿真器执行的仿真。运行时间子系统可以使仿真器开始或停止执行仿真。另外,运行时间子系统可以向仿真器提供输入信号和数据。输入信号可以通过连接直接提供给仿真器,或者通过其它输入信号设备间接提供给仿真器。例如,主机系统可以控制输入信号设备以向仿真器提供输入信号。输入信号设备可以是例如测试板(直接或通过电缆)、信号生成器、另一仿真器或另一主机系统。
结果子系统处理由仿真器生成的仿真结果。在仿真期间和/或在完成仿真之后,结果子系统从仿真期间生成的仿真器接收仿真结果。仿真结果包括在仿真期间跟踪的信号。具体地,仿真结果包括由每个FPGA仿真的迹线和注入逻辑跟踪的接口信号,并且可以包括由包括在DUT中的附加逻辑跟踪的信号。每个跟踪的信号可以跨越仿真的多个周期。跟踪的信号包括多个状态并且每个状态与仿真的时间相关联。结果子系统将跟踪的信号存储在存储子系统中。针对每个存储的信号,结果子系统可以存储指示哪个FPGA生成跟踪的信号的信息。
调试子系统允许电路设计者以调试DUT组件。在仿真器已经仿真DUT并且结果子系统已经在仿真期间接收到由迹线和注入逻辑跟踪的接口信号之后,电路设计者可以请求通过针对特定时间段重新仿真DUT的组件来调试该组件。在调试组件的请求中,电路设计者标识组件并且指示要仿真时间段以调试。电路设计者的请求可以包括指示被调试组件的状态应由跟踪信号的逻辑保存的频率的采样率。
调试子系统使用存储子系统中的映射子系统存储的信息来标识正在仿真组件的仿真器的一个或多个FPGA。针对每个标识的FPGA,调试子系统从存储子系统检索在电路设计者指示的时间段期间由FPGA的迹线和注入逻辑跟踪的接口信号。例如,调试子系统检索由与该时间段相关联的迹线和注入逻辑跟踪的状态。
调试子系统将检索的接口信号传输到仿真器。调试子系统指示调试子系统以使用标识的FPGA,并且针对每个标识的FPGA的迹线和注入逻辑以将其相应的跟踪的信号注入到FPGA的逻辑中,以针对请求的时间段以重新仿真组件。调试子系统可以进一步将电路设计者提供的采样率传输到仿真器,使得跟踪逻辑以适当的间隔跟踪状态。
为了调试组件,仿真器可以使用该组件被映射到的FPGA。另外,部件的重新仿真可以在电路设计者指定的任何点处被执行。
针对标识的FPGA,调试子系统可以向仿真器传输指令以加载具有与标识的FPGA相同配置的多个仿真器FPGA。调试子系统还向仿真器发送信号以并行使用多个FPGA。来自多个FPGA的每个FPGA与接口信号的不同时间窗口一起被使用,以在较短的时间量中生成较大的时间窗口。例如,标识的FPGA可能需要一小时或更长时间来使用一定量的周期。然而,如果多个FPGA具有与标识的FPGA相同的数据和结构,并且这些FPGA中的每个FPGA运行周期的子集,则仿真器可能需要几分钟来针对FPGA以共同使用所有周期。
电路设计者可以标识要重新仿真的DUT信号的层次或列表。为了使能这点,调试子系统确定仿真信号的分层结构或列表所需的FPGA,检索必要的接口信号,并且将检索的接口信号传输到仿真器用于重新仿真。因此,电路设计者可以标识DUT任何元件(例如,组件、设备或信号)以调试/重新仿真。
波形子系统使用跟踪的信号生成波形。如果电路设计者请求查看在仿真运行期间跟踪的信号的波形,则主机系统从存储子系统检索信号。波形子系统显示信号图。针对一个或多个信号,当信号从仿真器被接收时,波形子系统可以自动生成信号的曲线。
图7示出了计算机系统700的示例性机器,在该机器内可以执行用于使该机器执行本文讨论的任何一个或多个方法的一组指令。在备选实现中,机器可以被连接(例如,联网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可以在客户端-服务器网络环境中的服务器或客户端机器的能力下操作,作为对等(或分布式)网络环境中的对等机器,或者作为云计算基础设施或环境中的服务器或客户端机器。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、web设备、服务器、网络路由器、交换机或网桥、或能够执行指定机器要采取的动作的一组指令(顺序的或其它的)的任何机器。此外,虽然单个机器被示出,但是术语“机器”还应当被理解为包括单独地或联合地执行一组(或多组)指令以执行本文讨论的任何一个或多个方法的机器的任何集合。
示例计算机系统700包括经由总线730彼此通信的处理设备702、主存储器704(例如,只读存储器(ROM)、闪存、诸如同步DRAM(SDRAM)的动态随机存取存储器(DRAM)、静态存储器706(例如,闪存、静态随机存取存储器(SRAM)等)和数据存储设备718。
处理设备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或软件。在由计算机系统700执行指令726期间,指令726还可以完全或至少部分地驻留在主存储器704内和/或处理设备702内,主存储器704和处理设备702也构成机器可读存储介质。
在一些实现中,指令726包括实现对应于本公开的功能的指令。虽然机器可读存储介质724在示例实现中被示出为单个介质,但是术语“机器可读存储介质”应当被理解为包括存储一组或多组指令的单个介质或多个介质(例如,集中式或分布式数据库、和/或相关联的高速缓存和服务器)。术语“机器可读存储介质”还应当被理解为包括能够存储或编码用于由机器执行的一组指令并且使机器和处理设备702以执行本公开的任何一个或多个方法的任何介质。因此,术语“机器可读存储介质”应被理解为包括但不限于固态存储器、光学介质和磁性介质。
前面的详细描述的某些部分是根据对计算机存储器内的数据位的操作的算法和符号表示来被呈现的。这些算法描述和表示是数据处理领域中的技术人员用来最有效地将其工作的实质传达给本领域中的其他技术人员的方式。算法可以是导致期望的结果的操作序列。操作是需要物理量的物理操纵的操作。这些量可以采取能够被存储、组合、比较和以其他方式操纵的电或磁信号的形式。这种信号可以被称为位、值、元素、符号、字符、项、数字等。
然而,应当记住,所有这些和类似的术语将与适当的物理量相关联,并且仅仅是应用于这些量的方便标记。除非特别声明,否则如从本公开显而易见的,应当理解在整个说明书中,某些术语是指计算机系统或类似的电子计算设备的动作和过程,其将表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操纵和转换为类似地表示为计算机系统存储器或寄存器或其他这样的信息存储设备内的物理量的其他数据。
本公开还涉及一种用于执行本文操作的装置。该装置可以针对预期目的而专门被构造,或者它可以包括由存储在计算机中的计算机程序选择性地被激活或被重新配置的计算机。这种计算机程序可以被存储在计算机可读存储介质中,诸如但不限于任何类型的盘包括软盘、光盘、CD-ROM以及磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡、或者适合用于存储电子指令的任何类型的介质,每个耦合到计算机系统总线。
本文给出的算法和显示并不固有地涉及任何特定的计算机或其它装置。根据本文的教引,各种其它系统可以与程序一起被使用,或者可以证明构造更专用的装置来执行该方法是方便的。此外,本公开不参考任何特定编程语言来被描述。将了解,多种编程语言可以被使用来实施本文所描述的本发明的教示。
本公开可以被提供为计算机程序产品或软件,其可以包括其上存储有指令的机器可读介质,指令可以被使用以对计算机系统(或其他电子设备)编程以执行根据本公开的过程。机器可读介质包括用于以由机器(例如,计算机)可读的形式存储信息的任何机制。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质,诸如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、闪存设备等。
在前述公开中,已经参考其特定示例实现描述了本公开的实现。显然,在不脱离如以下权利要求中阐述的本公开的实现的更宽精神和范围的情况下,可以对其进行各种修改。在本公开以单数形式提及一些元件的情况下,可以在附图中描绘多于一个元件,并且相同的元件用相同的数字标记。因此,本公开和附图被认为是说明性的而不是限制性的。

Claims (20)

1.一种方法,包括:
由一个或多个处理器生成用于电路的部分电路设计运行;
由所述一个或多个处理器通过对所述部分电路设计运行执行机器学习(ML)模型,来产生用于所述部分电路设计运行的预测结果质量(QoR)度量,其中所述ML模型使用在开发阶段从训练电路提取的特征和来自所述训练电路的完整设计运行的实际QoR度量而被训练;
由所述一个或多个处理器并且基于所述预测QoR度量,来确定所述部分电路设计运行满足对所述预测QoR度量的约束;以及
基于所述部分电路设计运行满足所述约束的所述确定,由所述一个或多个处理器从所述部分电路设计运行来执行用于所述电路的完整电路设计运行。
2.根据权利要求1所述的方法,进一步包括:
由所述一个或多个处理器生成用于所述电路的附加部分电路设计运行;
由所述一个或多个处理器通过对所述附加部分电路设计运行执行所述ML模型,来产生用于所述附加部分电路设计运行的附加预测QoR度量;
基于所述预测QoR度量和所述附加预测QoR度量,由所述一个或多个处理器对所述部分电路设计运行相对于所述附加部分电路设计运行进行排序;以及
基于所述部分电路设计运行的排序高于基于所述预测QoR度量和所述附加预测QoR度量的所述附加部分电路设计运行,由所述一个或多个处理器选择所述部分电路设计运行用于所述完整电路设计运行的所述执行。
3.根据权利要求1所述的方法,其中对所述部分电路设计运行执行所述ML模型包括:
由所述一个或多个计算设备从所述部分电路设计运行中提取一个或多个特征;以及
由所述一个或多个计算设备将来自所述部分电路设计运行的所述一个或多个特征作为输入提供给所述ML模型,
其中所述一个或多个特征包括:所述部分电路设计运行的网表特征、定时约束、电特征或物理特征中的至少一项。
4.根据权利要求1所述的方法,其中用于所述部分电路设计运行的所述QoR度量包括:所述电路中每个定时端点的延迟和裕量。
5.根据权利要求1所述的方法,其中用于所述部分电路设计运行的所述QoR度量包括:所述电路中的设计规则检查(DRC)严重性。
6.根据权利要求5所述的方法,其中所述DRC严重性被表示为热图,并且从所述训练电路提取的所述特征包括:训练DRC严重性热图模式,产生所述预测QoR度量进一步包括:
由所述一个或多个计算设备对所述热图和所述训练DRC严重性热图模式进行卷积,以产生可布线性分数。
7.根据权利要求1所述的方法,其中用于所述部分电路设计运行的所述QoR度量包括:所述电路中的每网功率和每单元功率。
8.一种系统,包括:
存储器,所述存储器被配置为存储操作;以及
一个或多个处理器,所述一个或多个处理器被配置为执行所述操作,所述操作包括:
生成用于电路的部分电路设计运行,
通过对所述部分电路设计运行执行机器学习(ML)模型,来产生用于所述部分电路设计运行的预测结果质量(QoR)度量,其中所述ML模型使用在开发阶段从训练电路提取的特征和来自所述训练电路的完整设计运行的实际QoR度量而被训练,
基于所述预测QoR度量来确定所述部分电路设计运行满足对所述预测QoR度量的约束,以及
基于所述部分电路设计运行满足所述约束的所述确定,从所述部分电路设计运行执行用于所述电路的完整电路设计运行。
9.根据权利要求8所述的系统,所述操作进一步包括:
生成用于所述电路的附加部分电路设计运行,
通过对所述附加部分电路设计运行执行所述ML模型,来产生用于所述附加部分电路设计运行的附加预测QoR度量,
基于所述预测QoR度量和所述附加预测QoR度量,对所述部分电路设计运行相对于所述附加部分电路设计运行进行排序,以及
基于所述部分电路设计运行的排序高于基于所述预测QoR度量和所述附加预测QoR度量的所述附加部分电路设计运行,选择所述部分电路设计运行以用于所述完整电路设计运行的执行。
10.根据权利要求8所述的系统,其中对所述部分电路设计运行执行所述ML模型包括:
从所述部分电路设计运行提取一个或多个特征;以及
将来自所述部分电路设计运行的所述一个或多个特征作为输入提供给所述ML模型,
其中所述一个或多个特征包括:所述部分电路设计运行的网表特征、定时约束、电特征或物理特征中的至少一项。
11.根据权利要求8所述的系统,其中用于所述部分电路设计运行的所述QoR度量包括:所述电路中的每个定时端点的延迟和裕量。
12.根据权利要求8所述的系统,其中用于所述部分电路设计运行的所述QoR度量包括:所述电路中的设计规则检查(DRC)严重性。
13.根据权利要求12所述的系统,其中所述DRC严重性被表示为热图,并且从所述训练电路提取的所述特征包括:训练DRC严重性热图模式,产生所述预测QoR度量进一步包括:
将所述热图和所述训练DRC严重性热图模式进行卷积,以产生可布线性分数。
14.根据权利要求8所述的系统,其中用于所述部分电路设计运行的所述QoR度量包括:所述电路中的每网功率和每单元功率。
15.一种计算机可读存储设备,具有存储在所述计算机可读设备上的指令,所述指令由一个或多个处理设备执行使所述一个或多个处理设备执行以下操作:
生成用于电路的部分电路设计运行;
通过对所述部分电路设计运行执行机器学习(ML)模型,来产生用于所述部分电路设计运行的预测结果质量(QoR)度量,其中所述ML模型使用在开发阶段从训练电路提取的特征和来自所述训练电路的完整设计运行的实际QoR度量而被训练;
基于所述预测QoR度量来确定所述部分电路设计运行满足对所述预测QoR度量的约束;以及
基于所述部分电路设计运行满足所述约束的确定,从所述部分电路设计运行执行用于所述电路的完整电路设计运行。
16.根据权利要求15所述的计算机可读存储设备,所述操作进一步包括:
生成用于所述电路的附加部分电路设计运行;
通过对所述附加部分电路设计运行执行所述ML模型,来产生用于所述附加部分电路设计运行的附加预测QoR度量;
基于所述预测QoR度量和所述附加预测QoR度量,对所述部分电路设计运行相对于所述附加部分电路设计运行进行排序;以及
基于所述部分电路设计运行的排序高于基于所述预测QoR度量和所述附加预测QoR度量的所述附加部分电路设计运行,选择所述部分电路设计运行用于所述完整电路设计运行的执行。
17.根据权利要求15所述的计算机可读存储设备,其中对所述部分电路设计运行执行所述ML模型包括:
从所述部分电路设计运行提取一个或多个特征;以及
将来自所述部分电路设计运行的所述一个或多个特征作为输入提供给所述ML模型,
其中所述一个或多个特征包括:所述部分电路设计运行的网表特征、定时约束、电特征或物理特征中的至少一项。
18.根据权利要求15所述的计算机可读存储设备,其中用于所述部分电路设计运行的所述QoR度量包括:所述电路中的每个定时端点的延迟和裕量。
19.根据权利要求15所述的计算机可读存储设备,其中用于所述部分电路设计运行的所述QoR度量包括:所述电路中的设计规则检查(DRC)严重性。
20.根据权利要求15所述的计算机可读存储设备,其中所述DRC严重性被表示为热图,并且从所述训练电路提取的所述特征包括:训练DRC严重性热图模式,产生所述预测QoR度量进一步包括:
将所述热图和所述训练DRC严重性热图模式进行卷积,以产生可布线性分数。
CN202180020956.6A 2020-03-14 2021-03-15 早期阶段电路设计中基于机器学习的度量的预测 Pending CN115315702A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202062989687P 2020-03-14 2020-03-14
US62/989,687 2020-03-14
PCT/US2021/022353 WO2021188429A1 (en) 2020-03-14 2021-03-15 Machine learning-based prediction of metrics at early-stage circuit design

Publications (1)

Publication Number Publication Date
CN115315702A true CN115315702A (zh) 2022-11-08

Family

ID=75426687

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180020956.6A Pending CN115315702A (zh) 2020-03-14 2021-03-15 早期阶段电路设计中基于机器学习的度量的预测

Country Status (4)

Country Link
US (1) US11836641B2 (zh)
KR (1) KR20220148913A (zh)
CN (1) CN115315702A (zh)
WO (1) WO2021188429A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117744547A (zh) * 2024-02-18 2024-03-22 北京汤谷软件技术有限公司 电路器件资源的预估方法、装置、电子设备及存储介质

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021050434A1 (en) * 2019-09-10 2021-03-18 Synopsys, Inc. Machine-learning driven prediction in integrated circuit design
US11366948B2 (en) 2019-10-18 2022-06-21 Synopsys, Inc. Machine-learning enhanced compiler
US11991210B2 (en) * 2020-10-26 2024-05-21 Microsoft Technology Licensing, Llc Machine learning-based techniques for identifying deployment environments and enhancing security thereof
US11301612B1 (en) * 2021-01-03 2022-04-12 Bqr Reliability Engineering Ltd. Method and apparatus for predicting electrical values in electronic circuits
US11562118B2 (en) * 2021-01-04 2023-01-24 Taiwan Semiconductor Manufacturing Company, Ltd. Hard-to-fix (HTF) design rule check (DRC) violations prediction

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9792397B1 (en) * 2017-01-08 2017-10-17 Alphaics Corporation System and method for designing system on chip (SoC) circuits through artificial intelligence and reinforcement learning
US20180197110A1 (en) * 2017-01-11 2018-07-12 Netspeed Systems, Inc. Metrics to Train Machine Learning Predictor for NoC Construction
US10268795B2 (en) * 2017-04-20 2019-04-23 Taiwan Semiconductor Manufacturing Company Ltd. Method and system for timing optimization with detour prediction
US10607039B1 (en) * 2017-11-27 2020-03-31 Cadence Design Systems, Inc. Constrained metric optimization of a system on chip
US10817634B2 (en) * 2018-01-19 2020-10-27 Synopsys, Inc. Machine-learning circuit optimization using quantized prediction functions
US20200074276A1 (en) * 2018-08-28 2020-03-05 International Business Machines Corporation Providing Real-Time Predictive Feedback During Logic Design
US10885246B2 (en) * 2018-10-26 2021-01-05 The Regents Of The University Of California Structural matching for fast re-synthesis of electronic circuits
WO2020112023A1 (en) * 2018-11-26 2020-06-04 Agency For Science, Technology And Research Method and system for predicting performance in electronic design based on machine learning
WO2020112025A1 (en) * 2018-11-26 2020-06-04 Agency For Science, Technology And Research Method and system for generating training data for a machine learning model for predicting performance in electronic design
US11227087B1 (en) * 2019-01-04 2022-01-18 Cadence Design Systems, Inc. System, method, and computer program product for distributed learning in an electronic design
US10796046B2 (en) * 2019-01-18 2020-10-06 Mentor Graphics Corporation Machine learning-based parasitic extraction automation for circuit design and verification
US11275882B1 (en) * 2019-07-26 2022-03-15 Cadence Design Systems, Inc. System, method, and computer program product for group and isolation prediction using machine learning and applications in analog placement and sizing
US11048852B1 (en) * 2019-07-26 2021-06-29 Cadence Design Systems, Inc. System, method and computer program product for automatic generation of sizing constraints by reusing existing electronic designs
US11093681B2 (en) * 2019-09-27 2021-08-17 Taiwan Semiconductor Manufacturing Company Ltd. Method and system for generating layout design of integrated circuit
US11531802B2 (en) * 2019-10-18 2022-12-20 Taiwan Semiconductor Manufacturing Company Ltd. Layout context-based cell timing characterization
US10949585B1 (en) * 2019-11-15 2021-03-16 Arteris, Inc. System and method for predicting performance, power and area behavior of soft IP components in integrated circuit design
JP7409220B2 (ja) * 2020-05-12 2024-01-09 富士通株式会社 推定プログラム、モデル生成プログラム、推定方法、モデル生成方法、推定装置およびモデル生成装置
US11036908B1 (en) * 2020-06-08 2021-06-15 Apex Semiconductor Techniques for simulation-based timing path labeling for multi-operating condition frequency prediction
US20230086307A1 (en) * 2021-09-23 2023-03-23 International Business Machines Corporation Data transformation and quality checking

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117744547A (zh) * 2024-02-18 2024-03-22 北京汤谷软件技术有限公司 电路器件资源的预估方法、装置、电子设备及存储介质
CN117744547B (zh) * 2024-02-18 2024-05-24 北京汤谷软件技术有限公司 电路器件资源的预估方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
WO2021188429A1 (en) 2021-09-23
US11836641B2 (en) 2023-12-05
KR20220148913A (ko) 2022-11-07
US20210287120A1 (en) 2021-09-16

Similar Documents

Publication Publication Date Title
US11836641B2 (en) Machine learning-based prediction of metrics at early-stage circuit design
US10867091B1 (en) Machine learning based power optimization using parallel training and localized data generation
US11853662B2 (en) Machine-learning enhanced compiler
US11461523B1 (en) Glitch analysis and glitch power estimation system
US20220129611A1 (en) Method to Compute Timing Yield and Yield Bottleneck using Correlated Sample Generation and Efficient Statistical Simulation
US20220385280A1 (en) Testable time-to-digital converter
CN113642285A (zh) 确定和验证时钟域交叉中的亚稳态
US20210374314A1 (en) Engineering Change Order Scenario Compression by Applying Hybrid of Live and Static Timing Views
US11526641B2 (en) Formal gated clock conversion for field programmable gate array (FPGA) synthesis
US11022634B1 (en) Rail block context generation for block-level rail voltage drop analysis
US20210312113A1 (en) Method for finding equivalent classes of hard defects in stacked mosfet arrays
US11080446B2 (en) Method to regulate clock frequencies of hybrid electronic systems
US11797737B2 (en) Finding equivalent classes of hard defects in stacked MOSFET arrays
US11636244B1 (en) Performance tuning of a hardware description language simulator
US20240169135A1 (en) Reinforcement learning (rl) based chip design optimization using trained graph convolutional networks (gcn) for ultra-fast cost function calculation
US20230071521A1 (en) Detecting simulation, emulation and prototyping issues using static analysis tools
US20240028812A1 (en) Waveform capture using multicycle path properties
US20230177244A1 (en) Creation of reduced formal model for scalable system-on-chip (soc) level connectivity verification
US20230195982A1 (en) Transformations for multicycle path prediction of clock signals
US11816409B1 (en) Strongly connected component (SCC) graph representation for interactive analysis of overlapping loops in emulation and prototyping
US11403450B2 (en) Convergence centric coverage for clock domain crossing (CDC) jitter in simulation
US11941339B1 (en) Automated equal-resistance routing in compact pattern
US11907630B1 (en) Power validation based on power assertion specification
US11983474B1 (en) Connecting random variables to coverage targets using an ensemble of static analysis, dynamic analysis and machine learning and guided constraint solving of the random variables during simulation of an integrated circuit
US11816407B1 (en) Automatic channel identification of high-bandwidth memory channels for auto-routing

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