CN117669463A - 用于架构设计布局的计算机系统、方法及计算机网络 - Google Patents
用于架构设计布局的计算机系统、方法及计算机网络 Download PDFInfo
- Publication number
- CN117669463A CN117669463A CN202211313842.3A CN202211313842A CN117669463A CN 117669463 A CN117669463 A CN 117669463A CN 202211313842 A CN202211313842 A CN 202211313842A CN 117669463 A CN117669463 A CN 117669463A
- Authority
- CN
- China
- Prior art keywords
- electronic design
- algorithm
- electronic
- layout
- possible solutions
- 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 302
- 238000000034 method Methods 0.000 title claims description 48
- 230000006870 function Effects 0.000 claims abstract description 211
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 158
- 238000012549 training Methods 0.000 claims abstract description 85
- 230000002787 reinforcement Effects 0.000 claims abstract description 31
- 230000009471 action Effects 0.000 claims description 137
- 238000009826 distribution Methods 0.000 claims description 32
- 238000004088 simulation Methods 0.000 claims description 29
- 238000002922 simulated annealing Methods 0.000 claims description 20
- 230000002708 enhancing effect Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 13
- 230000000875 corresponding effect Effects 0.000 description 12
- 238000004458 analytical method Methods 0.000 description 11
- 238000012795 verification Methods 0.000 description 11
- 238000003860 storage Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000011156 evaluation Methods 0.000 description 8
- 230000015572 biosynthetic process Effects 0.000 description 7
- 238000003786 synthesis reaction Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 6
- 230000005055 memory storage Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 229910044991 metal oxide Inorganic materials 0.000 description 4
- 150000004706 metal oxides Chemical class 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 229910052710 silicon Inorganic materials 0.000 description 4
- 239000010703 silicon Substances 0.000 description 4
- 238000011960 computer-aided design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000010845 search algorithm Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000009792 diffusion process Methods 0.000 description 2
- 230000002068 genetic effect Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000002184 metal Substances 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 229910021420 polycrystalline silicon Inorganic materials 0.000 description 2
- 229920005591 polysilicon Polymers 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000002790 cross-validation Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011985 exploratory data analysis Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000000059 patterning Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000013179 statistical model Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000009966 trimming Methods 0.000 description 1
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
- 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
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/08—Probabilistic or stochastic CAD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Architecture (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Optical Integrated Circuits (AREA)
Abstract
本发明的电子设计自动化(EDA)将电子电路的元件逻辑地放置到电子设计空间上,以确定电子电路的架构设计布局。EDA从电子电路的元件在电子设计空间上的初始布局开始评估元启发式算法,以提供用于将电子电路的这些元件放置到电子设计空间上的多个可能布局。EDA利用元启发式算法的多个可能布局来训练基于模型的强化学习(RL)算法的一个或多个概率函数。EDA利用一个或多个概率函数评估基于模型的RL算法,以确定架构设计布局。EDA可以通过从架构设计布局作为元件的初始布局开始重新评估元启发式算法、重新训练一个或多个概率函数以及利用一个或多个概率函数重新评估基于模型的RL算法来进一步迭代地增强架构设计布局。
Description
技术领域
本发明实施例通常涉及电子设计自动化,以及更具体地,涉及用于将电子装置的电子电路放置到电子设计空间上的计算机系统、方法及计算机网络。
背景技术
由于不断增加的设计约束和错综复杂的物理效应,将模拟电路放置在集成电路(integrated circuit,IC)装置上的过程一直是长期存在的难题。这个过程是劳动密集型和耗时的,其随着IC装置上的元件随着时间的推移变得越来越小,这种情况只会变得更糟。电子设计自动化(Electronic design automation,EDA),也称为电子计算机辅助设计(electronic computer-aided design,ECAD),可用于最大限度地减少电子装置设计的难度。电子设计人员可以使用许多电子设计软件工具来设计、仿真、分析和验证电子电路的集成电路和/或印刷电路板。EDA代表了可用于这些设计人员开发电子电路的集成电路和/或印刷电路板的一类软件工具。电子设计人员使用这些软件工具(包括EDA)将电子电路的电气元件、机械元件和/或机电元件放置在集成电路和/或印刷电路板的专用空间(也称为电子设计空间(electronic design real estate))内,以确定这些元件的架构设计布局(architectural design placement)。然而,电子设计软件工具常常需要电子设计人员手动将电子电路的这些元件绘制到电子设计空间上。这种手工制图在模拟集成电路和/或模拟印刷电路板的设计中尤其普遍,而这通常非常容易出错且非常耗时。
发明内容
有鉴于此,本发明的目的之一在于提供一种用于架构设计布局的计算机系统、方法及计算机网络,以解决上述问题。
以下发明内容仅是说明性的,而无意于以任何方式进行限制。即,提供以下概述来介绍本文描述的新颖和非显而易见的技术的概念,重点,益处和优点。选择的实施方式在下面的详细描述中进一步描述。因此,以下发明内容既不旨在标识所要求保护的主题的必要特征,也不旨在用于确定所要求保护的主题的范围。
第一方面,本发明提供了一种用于将电子装置的电子电路放置到电子设计空间上的计算机系统,其中,该计算机系统包括存储器和处理器,该存储器存储多个电子设计软件工具,以及,该处理器被配置为实施该多个电子设计软件工具,该电子设计软件工具在由该处理器实施时,该处理器被配置为:评估元启发式算法,以提供用于将该电子电路从该电子电路在电子设计空间上的初始布局放置到该电子设计空间上的第一多个可能解;利用该第一多个可能解训练基于模型的强化学习(RL)算法的一个或多个概率函数;利用该一个或多个概率函数评估该基于模型的RL算法,以将该电子电路放置到该电子设计空间上来确定第一架构设计布局。
在一些实施例中,该电子设计软件工具在由该处理器实施时,该处理器还被配置为:为该元启发式算法提供该第一架构设计布局;评估该元启发式算法,以提供用于将该电子电路从该第一架构设计布局放置到该电子设计空间上的第二多个可能解;利用该第二多个可能解训练该一个或多个概率函数;以及,利用该一个或多个概率函数评估该基于模型的RL算法,以将该电子电路放置到该电子设计空间上来确定第二架构设计布局。
在一些实施例中,该元启发式算法包括模拟退火算法,以及,该基于模型的RL算法包括MuZero RL算法。
在一些实施例中,该电子设计软件工具在由该处理器实施时,该处理器被配置为:将该第一多个可能解分解为由该元启发式算法执行的用以确定该第一多个可能解的多个状态和多个动作,以提供布局数据的多个轨迹。
在一些实施例中,该电子设计软件工具在由该处理器实施时,该处理器被配置为:估计在该多个状态上执行该多个动作的多个概率分布,以基于该一个或多个概率函数确定策略函数。
在一些实施例中,该电子设计软件工具在由该处理器实施时,该处理器被配置为:将该第一多个可能解还分解为与该布局数据的多个轨迹相关联的多个最终奖励分数;以及,使用回溯算法从该多个最终奖励分数开始来估计在该多个状态上执行该多个动作的多个预期奖励。
在一些实施例中,该电子设计软件工具在由该处理器实施时,该处理器被配置为:基于该一个或多个概率函数估计价值函数,使其近似等于在该多个状态中时执行该多个动作的该多个预期奖励与在该多个状态中时选择该多个动作的概率的多个乘积之和。
第二方面,本发明提供了一种用于将电子装置的多个模拟模块放置到电子设计空间上的方法,其中,该方法包括:计算机系统评估仿真退火算法,以提供用于将该多个模拟模块从该多个模拟模块在该电子设计空间上的初始布局放置到该电子设计空间的多个放置位置上的多个可能解;该计算机系统利用该多个可能解训练MuZero强化学习(RL)算法的策略函数和价值函数;该计算机系统利用该策略函数和该价值函数评估该MuZero RL算法,以将该多个模拟模块放置在该多个放置位置上来确定架构设计布局;以及,该计算机系统通过从该架构设计布局作为该初始布局开始重新评估该模拟退火算法,重新训练该策略函数和该价值函数,以及,利用该策略函数和该价值函数重新评估该MuZero RL算法来迭代地增强该架构设计布局。
在一些实施例中,该多个模拟模块包括多个模拟电路及其在功能上相互协作以提供该电子装置的多个功能的互连结构。
在一些实施例中,该方法还包括:该计算机系统逻辑地交叉该电子设计空间内的一系列的行和该电子设计空间内的多个列,以形成用于放置该多个模拟模块的该多个放置位置。
在一些实施例中,该利用多个可能解训练MuZero强化学习(RL)算法的策略函数和价值函数的步骤包括:将该多个可能解分解为由该模拟退火算法执行的用来确定该多个可能解的多个状态和多个动作,以提供布局数据的多个轨迹。
在一些实施例中,该利用多个可能解训练MuZero强化学习(RL)算法的策略函数和价值函数的步骤还包括:估计在该多个状态上执行该多个动作的多个概率分布,以确定该策略函数。
在一些实施例中,该利用多个可能解训练MuZero强化学习(RL)算法的策略函数和价值函数的步骤还包括:将该多个可能解还分解为与该布局数据的多个轨迹相关联的多个最终奖励分数;以及,使用回溯算法从该多个最终奖励分数开始来估计在该多个状态上执行该多个动作的多个预期奖励。
在一些实施例中,该利用多个可能解训练MuZero强化学习(RL)算法的策略函数和价值函数的步骤还包括:基于该一个或多个概率函数估计价值函数,使其近似等于在该多个状态中时执行该多个动作的该多个预期奖励与在该多个状态中时选择该多个动作的概率的多个乘积之和。
第三方面,本发明提供了一种计算机网络,用于将电子装置的电子电路放置到电子设计空间上,以实施电子设计平台,该计算机网络包括电子设计服务器平台和电子设计工作站,该电子设计服务器平台被配置为实施多个电子设计软件工具,该电子设计软件工具在由该电子设计服务器平台实施时,该电子设计服务器平台被配置为:评估元启发式算法,以提供用于将该电子电路从该电子电路在该电子设计空间上的多个放置位置上的初始布局放置到该多个放置位置上的多个可能解;利用该多个可能解训练基于模型的强化学习(RL)算法的策略函数和价值函数;利用该策略函数和该价值函数评估该基于模型的RL算法,以将该电子电路放置在该多个放置位置上来确定架构设计布局;以及,通过从该架构设计布局作为该初始布局开始重新评估该元启发式算法,重新训练该策略函数和该价值函数,以及,利用该策略函数和该价值函数重新评估该基于模型的RL算法来迭代地增强该架构设计布局;其中,该电子设计工作站被配置为与该电子设计服务器平台交互,以实施该电子设计平台。
在一些实施例中,该电子设计工作站被配置为实施图形用户接口(GUI)以与该电子设计服务器平台交互,以及,该GUI在由该电子设计工作站实施时,该电子设计工作站被配置为:将输入数据和信息发送到该电子设计服务器平台,其中,该输入数据和信息将由该电子设计服务器平台用来实施该电子设计平台;或者,从该电子设计服务器平台接收该电子设计服务器平台在实施该电子设计平台时确定出来的输出数据和信息。
在一些实施例中,该电子设计软件工具在由该电子设计服务器平台实施时,该电子设计服务器平台被进一步配置为:逻辑地交叉该电子设计空间内的一系列的行和该电子设计空间内的多个列,以形成用于放置该多个模拟模块的该多个放置位置。
在一些实施例中,该电子设计软件工具在由该电子设计服务器平台实施时,该电子设计服务器平台被配置为:将该多个可能解分解为由该元启发式算法执行的用来确定该多个可能解的多个状态和多个动作,以提供布局数据的多个轨迹。
在一些实施例中,该电子设计软件工具在由该电子设计服务器平台实施时,该电子设计服务器平台被配置为:估计在该多个状态上执行该多个动作的多个概率分布,以确定该策略函数。
在一些实施例中,该电子设计软件工具在由该电子设计服务器平台实施时,该电子设计服务器平台被配置为:将该多个可能解还分解为与该布局数据的多个轨迹相关联的多个最终奖励分数;以及,使用回溯算法从该多个最终奖励分数开始来估计在该多个状态上执行该多个动作的多个预期奖励。
在一些实施例中,该电子设计软件工具在由该电子设计服务器平台实施时,该电子设计服务器平台被配置为:基于该一个或多个概率函数估计价值函数,使其近似等于在该多个状态中时执行该多个动作的该多个预期奖励与在该多个状态中时选择该多个动作的概率的多个乘积之和。
本领域技术人员在阅读附图所示优选实施例的下述详细描述之后,可以毫无疑义地理解本发明的这些目的及其它目的。详细的描述将参考附图在下面的实施例中给出。
附图说明
附图(其中,相同的数字表示相同的元件)示出了本发明实施例。包括的附图用以提供对本发明实施例的进一步理解,以及,附图被并入并构成本发明实施例的一部分。附图示出了本发明实施例的实施方式,并且与说明书一起用于解释本发明实施例的原理。可以理解的是,附图不一定按比例绘制,因为可以示出一些部件与实际实施中的尺寸不成比例以清楚地说明本发明实施例的概念。
图1根据本发明一些实施例示出了电子设计平台的框图。
图2根据本发明一些实施例示出了可以由设计环境执行的基于模型的强化学习(RL)算法的策略函数(policy function)的训练。
图3根据本发明一些实施例示出了可以由设计环境执行的基于模型的强化学习(RL)算法的价值函数(value function)的训练。
图4根据本发明一些实施例示出了电子设计平台将模拟模块放置到布局位置上的操作的流程示意图。
图5根据本发明一些实施例图解说明了电子设计平台将模拟模块放置到布局位置上的操作。
图6根据本发明一些实施例图解说明了用于执行电子设计平台的计算机网络的简化框图。
图7根据本发明一些实施例图解说明了用于执行电子设计平台的计算机系统的简化框图。
在下面的详细描述中,为了说明的目的,阐述了许多具体细节,以便本领域技术人员能够更透彻地理解本发明实施例。然而,显而易见的是,可以在没有这些具体细节的情况下实施一个或多个实施例,不同的实施例可根据需求相结合,而并不应当仅限于附图所列举的实施例。
具体实施方式
以下描述为本发明实施的较佳实施例,其仅用来例举阐释本发明的技术特征,而并非用来限制本发明的范畴。在通篇说明书及权利要求书当中使用了某些词汇来指称特定的元件,所属领域技术人员应当理解,制造商可能会使用不同的名称来称呼同样的元件。因此,本说明书及权利要求书并不以名称的差异作为区别元件的方式,而是以元件在功能上的差异作为区别的基准。本发明中使用的术语“元件”、“系统”和“装置”可以是与计算机相关的实体,其中,该计算机可以是硬件、软件、或硬件和软件的结合。在以下描述和权利要求书当中所提及的术语“包含”和“包括”为开放式用语,故应解释成“包含,但不限定于…”的意思。此外,术语“耦接”意指间接或直接的电气连接。因此,若文中描述一个装置耦接于另一装置,则代表该装置可直接电气连接于该另一装置,或者透过其它装置或连接手段间接地电气连接至该另一装置。
其中,除非另有指示,各附图的不同附图中对应的数字和符号通常涉及相应的部分。所绘制的附图清楚地说明了实施例的相关部分且并不一定是按比例绘制。
文中所用术语“基本”或“大致”是指在可接受的范围内,本领域技术人员能够解决所要解决的技术问题,基本达到所要达到的技术效果。举例而言,“大致等于”是指在不影响结果正确性时,技术人员能够接受的与“完全等于”有一定误差的方式。
概述
本发明的电子设计自动化(EDA)将电子电路的元件(components)逻辑地放置到电子设计空间(electronic design real estate)上,以确定电子电路的架构设计布局(architectural design placement)。在本发明实施例中,电子电路通常以模拟模块进行示例说明,但本发明并不限于该示例说明。EDA从电子电路的元件在电子设计空间上的初始布局(initial placement,亦可描述为“初始解”)开始评估(evaluate)元启发式算法(metaheuristic algorithm),以提供用于将电子电路的这些元件放置到电子设计空间上的多个可能布局(possible placements,亦可描述为“可能解”或“可行解”)。换句话说,EDA应用/使用/利用元启发式算法从电子电路的元件在电子设计空间上的初始布局开始进行搜索/训练,以提供用于将电子电路的这些元件放置到电子设计空间上的多个可能布局(亦即后面实施例涉及的多个可能解)。EDA利用元启发式算法的多个可能布局来训练基于模型的强化学习(RL)算法(亦可描述为“RL算法”,例如,该RL算法内建有第一模型)的一个或多个概率函数(probabilistic functions)。例如,利用元启发式算法的多个可能布局来训练强化学习(RL)算法的第一模型,以获得一个或多个概率函数。EDA利用该一个或多个概率函数评估基于模型的RL算法,以确定架构设计布局。例如,利用该一个或多个概率函数训练该RL算法的第二模型,以确定用于将该电子电路放置到该电子设计空间上的第一架构设计布局。EDA可以通过从该架构设计布局作为元件的初始布局开始重新评估元启发式算法、重新训练一个或多个概率函数以及利用一个或多个概率函数重新评估基于模型的RL算法来进一步迭代地增强该架构设计布局。
电子设计平台(ELECTRONIC DESIGN PLATFORM)
图1是根据本发明实施例示出的示例性电子设计平台的框图。如图1所示,电子设计平台100表示包括一个或多个电子设计软件工具的电子设计流,当该一个或多个电子设计软件工具由一个或多个计算装置、处理器、控制器或在不背离本发明的精神和范围的情况下对相关领域技术人员显而易见的任何其它电气、机械和/或机电装置执行时,可以设计、模拟、分析和/或验证用于电子装置的电子电路的架构设计布局(architecturaldesign layout)。如以下更详细描述的,电子设计平台100将电子电路的电气、机械和/或机电元件(在本文中统称为“元件(component)”)逻辑地放置到电子设计空间上,以确定电子电路的架构设计布局。电子设计平台100从电子电路的元件在电子设计空间上的初始布局(亦可称为“初始解”)开始评估元启发式算法,以提供用于将电子电路的元件放置到电子设计空间上的多个可能解(possible solutions,亦可描述为“可能的解决方案”)。换句话说,电子设计平台100应用元启发式算法从电子电路的元件在电子设计空间上的初始布局开始进行搜索或训练,以提供用于将电子电路的元件放置到电子设计空间上的多个可能解。电子设计平台100利用元启发式算法的该多个可能解来训练基于模型的强化学习(reinforcement learning,RL)算法的一个或多个概率函数(probabilistic function)。换句话说,电子设计平台100利用元启发式算法的该多个可能解来训练强化学习算法的其中一个模型,以获得一个或多个概率函数(probabilistic function)。电子设计平台100利用该一个或多个概率函数来评估基于模型的RL算法,以确定架构设计布局。换句话说,电子设计平台100利用该一个或多个概率函数来训练RL算法的另一模型,以确定架构设计布局。在一些实施例中,电子设计平台100可以通过从该架构设计布局作为元件的初始布局开始重新评估元启发式算法、重新训练一个或多个概率函数以及利用一个或多个概率函数重新评估基于模型的RL算法来进一步迭代地增强该架构设计布局。
在图1所示的实施例中,电子设计平台100包括合成工具(synthesis tool,亦可描述为“综合工具”)102、布局布线工具(placing and routing tool)104、模拟工具(simulation tool,亦可描述为“仿真工具”)106、验证工具(verification tool)108和/或它们的任意组合。这些工具将在下文进一步详细描述,其代表一个或多个电子设计软件工具,当该一个或多个电子设计软件工具由一个或多个计算装置、处理器、控制器或在不背离本发明精神和范围的情况下对相关领域技术人员显而易见的其它电气、机械和/或机电装置执行时,可以设计、模拟、分析和/或验证用于电子装置的电子电路的架构设计布局。相关领域技术人员将认识到,在不背离本发明精神的情况下,本文描述的公开实施例可以以硬件、固件、软件(在进程上执行)或其任何组合来实现。替代地或除此之外,相关领域技术人员将认识到,在不脱离本发明精神的情况下,本文描述的公开实施例也可以实现为存储在机器可读介质上的指令,其可以由一个或多个处理器读取和执行。例如,机器可读介质可以包括用于以机器(例如,计算装置)可读的形式存储的任何机制。例如,机器可读介质可以包括只读存储器(read only memory,ROM);随机存取存储器(random access memory,RAM);磁盘存储介质;光存储介质;闪存装置;等等。此外,在不脱离本发明精神的情况下,相关领域的技术人员将认识到,固件、软件、例程、指令可以在本文中被描述为执行某些操作。然而,应当理解,这样的描述仅仅是为了方便,以及,这些操作实际上是由执行固件、软件、例程、指令等的计算装置、处理器、控制器或其它设备产生的。
合成工具102将电子电路的一个或多个特性(characteristics)、参数或属性(attributes)转换成一个或多个操作,例如,一个或多个逻辑运算、一个或多个算术运算、一个或多个控制操作,和/或,在不脱离本发明精神和范围的情况下,对于相关领域的技术人员显而易见的任何其它合适的操作。在一些实施例中,可以使用一个或多个高级软件级描述(high-level software level descriptions)来表达该一个或多个操作。在一实施例中,该一个或多个高级软件级描述可以表示电子电路的文本表示,例如网表;使用高级软件语言的电子电路的高级软件模型(例如,C、System C、C++、LabVIEW和/或MATLAB),通用系统设计语言(例如,SysML、SMDL和/或SSDL),或高级软件格式(例如,共享电源格式(CommonPower Format,CPF)、统一电源格式(Unified Power Formant,UPF));或电子电路的基于图像的表示,例如,计算机辅助设计(computer-aided design,CAD)模型。合成工具102可以利用仿真算法(simulation algorithm)来根据例如电子设计规范中概述的电子电路的一个或多个特性、参数或属性来仿真(simulate)一个或多个逻辑操作。
布局布线工具104根据与集成电路的扩散层(diffusion layers)、多晶硅层(polysilicon layers)和/或金属层(metal layers)以及这些层之间的互连相对应的几何形状定义来自合成工具102的一个或多个操作,以提供架构设计布局(architecturaldesign layout)。布局布线工具104将如一个或多个高级软件级描述所描述的电子电路的元件逻辑地放置到电子设计空间上,以确定电子电路的架构设计布局(architecturaldesign placement,亦可描述为“架构设计布置”)。在一些实施例中,电子电路的元件可以包括电子电路的模拟元件,例如,金属氧化物硅(metal oxide silicon,MOS)晶体管、电阻器、电感器和/或电容器。
如图1所示,布局布线工具104包括元启发式算法工具(metaheuristic algorithmtool,图中标注为“元启发式算法”)114、模型训练工具(model training tool,图中标注为“模型训练”)116和基于模型的RL算法工具(model-based RL algorithm tool,图中标注为“基于模型的强化学习(RL)算法”)118。元启发式算法工具114、模型训练工具116和基于模型的RL算法工具118在由一个或多个计算装置、处理器、控制器或其它电气、机械和/或机电装置执行时,能够将电子电路的元件逻辑地放置在电子设计空间上,以提供电子电路的架构设计布局。在图1所示的实施例中,电子电路的元件能够被配置和排列成模块(modules)。通常,模块可以包括电子电路的一个或多个元件及其在功能上相互协作以提供电子装置的一种或多种功能的互连结构。这些模块还具有允许这些模块连接到其它模块的引脚。在一些实施例中,模块可以占据电子设计空间上的任意形状,例如,矩形形状。在这些实施例中,一个或多个模块可以彼此具有不同的矩形形状。如以下更详细描述的,元启发式算法工具114、模型训练工具116和基于模型的RL算法工具118在功能上相互协作,以将模块最佳地(optimally)放置到电子设计空间上。
元启发式算法工具114评估(evaluate)元启发式算法(metaheuristicalgorithm),以将模块/电子电路放置到电子设计空间上来提供模块/电子电路在电子设计空间的放置位置上的多个布局,例如,元启发式算法包括迭代局部搜索算法(iteratedlocal search algorithm)、遗传算法(genetic algorithm)、模拟退火算法(simulatedannealing)、蚁群优化算法(ant colony optimization)、禁忌搜索算法(tabu search)和/或粒子群优化算法(particle swarm optimization)等等,本发明对此不做限制。也就是说,元启发式算法工具114应用元启发式算法进行搜索,以提供将电子电路/模块放置到电子设计空间上的多个可能布局或多个可能解。通常,元启发式算法工具114能够评估元启发式算法以确定模块在电子设计空间上的布局,其优化(例如最小化)一个或多个能量函数/>在一些示例中,该一个或多个能量函数/>可以与布局面积(placement area)、引线长度(wirelength)、链路损耗(link loss)、归一化死区(normalized dead space)、归一化半周引线长度(half-perimeter wirelength,HPWL)、可布线性(routability)、功耗(power consumption)、热属性(thermal property)、设计规则违规(design rule violation)和/或基于电子设计自动化(EDA)仿真结果的约束相关联。
电子设计空间可以包括一系列的行(row),这些行与一系列的列(column)相交(intersect),以形成用于放置模块的放置位置(placement site,亦可描述为“布局点”或“放置点”)。通常,这些放置位置代表集成电路设计(用于放置模块)的基本单元。作为元启发式算法的一部分,元启发式算法工具114从模块(亦可描述为“电子电路”)在放置位置上的初始布局(也称为“初始解决方案”或“初始解”)开始。在一些实施例中,初始解决方案可以是模块在放置位置上的随机初始布局和/或可以是如基于模型的RL算法工具118确定出来的架构设计布局,如下文将进一步详细描述的。在一些实施例中,元启发式算法工具114可以从模块在放置位置(亦可描述为“电子设计空间”)上的随机初始布局开始评估元启发式算法,以及,可以从由基于模型的RL算法工具118在后续评价中确定出来的架构设计布局开始评估元启发式算法。在一些实施例中,模块的随机初始布局可以满足一个或多个电子设计约束。在这些实施例中,一个或多个电子设计约束可以要求位于相同行或列的放置位置中的模块为相同类型,不具有共享引脚的模块被间隔开,和/或,相邻的行或列的放置位置具有来自一个或多个高级软件级描述中的至少一个共享电路节点。然而,在不脱离本发明精神和范围的情况下,对于相关领域的技术人员将显而易见的其它约束也是可能的。此后,元启发式算法工具114将一个或多个模块从它们在模块的现有布局(也称为现有的解决方案)中的位置移动到新的放置位置以提供模块的新布局(也称为新的解决方案)。在一些实施例中,该移动可以包括将一个或多个模块的位置与相邻的放置点交换位置、重新修整(reshaping)一个或多个模块、在多行或多列放置点之间插入其它行或列的放置点,和/或,切换一个或多个模块的配置,例如,切换到对称装置。该移动可以包括满足如上所述的一个或多个电子设计约束的合法移动和/或不满足该一个或多个电子设计约束的不合法移动。
在移动一个或多个模块之后,元启发式算法工具114根据新的解决方案评估一个或多个能量函数以确定是否接受新的解决方案作为进一步移动的起点或拒绝新的解决方案并恢复到现有的解决方案。在一些实施例中,当新的解决方案具有比现有的解决方案更低的能量时,元启发式算法工具114接受该新的解决方案。在一些实施例中,当新的解决方案具有比现有的解决方案更高的能量时,元启发式算法工具114可以基于概率分布函数(例如,玻尔兹曼分布(Boltzmann distribution))接受新的解决方案。在这些实施例中,当新的解决方案具有更高能量时接受该新的解决方案的概率随着元启发式算法工具114评估元启发式算法(例如随着时间的推移)的进行而降低。
在图1所示的实施例中,元启发式算法工具114继续从现有的解决方案中移动一个或多个模块以提供新的解决方案,直到达到停止准则。在一些实施例中,例如,停止准则可以在完成预定数量次的移动时,当跨多个解决方案(例如,连续三个解决方案)的能量变化足够小(例如,小于1%)时,和/或,当新的解决方案具有更高能量时接受该新的解决方案的概率小于下限时发生。在达到停止准则时,元启发式算法工具114提供当前的解决方案作为模块在放置位置上的可能布局,也称为可能解。优选地,元启发式算法工具114可以通过多次迭代评估元启发式算法,以提供模块在放置位置上的多个可能布局,也称为多个可能解。在一些实施例中,即使使用相同的初始解决方案来评估元启发式算法,但当相互比较时,这些多个可能解决方案中的一些仍然可能是模块在放置位置上的不同布局。
模型训练工具116利用元启发式算法工具114提供的元启发式算法的多个可能解来训练基于模型的RL算法(例如,AlphaGo RL算法、AlphaZero RL算法或MuZero RL算法)的一个或多个概率函数。在图1所示的实施例中,模型训练工具116将元启发式算法工具114提供的元启发式算法的多个可能解分解(decompose)为布局数据(placement data,亦可描述为“摆放/放置数据”)的多个轨迹(trajectories),其可用于训练一个或多个概率函数。布局数据的多个轨迹包括针对现有的解决方案(例如,初始解)中的每一个由元启发式算法工具114执行的移动或动作集合(set of actions)A,和/或,状态集合(set of states)S的顺序表示,以提供如上所述的多个可能解。在图2所示的实施例中,状态集合S中的每个状态s表示模块/电子电路在放置位置/电子设计空间上的不同布局/放置/布置(differentplacement)。动作集合A中的每个动作a表示元启发式算法工具114可以在状态集合S上执行的不同移动/动作。在一些实施例中,布局数据的多个轨迹可以包括多个马尔可夫决策过程(Markov decision process,MDP)轨迹。在这些实施例中,布局数据的多个轨迹当中的一轨迹τi可以在数学上表示为:
τi=(s0,a0,s1,a1…sT,aU) (1)
其中,(s0,s1,…sT)表示状态集合S中的状态序列(一系列状态),(a0,a1…aU)表示动作集合A中由元启发式算法工具114在状态(s0,s1,…sT)上执行的动作序列(一系列动作)。在一些实施例中,布局数据的多个轨迹可以与元启发式算法工具114从如上所述的一个或多个能量函数在状态集合S(例如,状态(s0,s1,…sT))上确定的能量或奖励分数相关联。在这些实施例中,布局数据的多个轨迹可以与元启发式算法工具114通过在来自状态集合S中的最后一个/最终(final)状态(例如,状态sT)上评估该一个或多个能量函数/>确定出来的最后一个/最终能量(final energies)或最后一个/最终奖励分数(finalrewardscores)相关联。
作为一些示例,上述一个或多个概率函数可以包括策略函数(policy function)和/或价值函数(value function)。策略函数在数学上描述了基于模型的RL算法工具118的决策过程,这将在下面进行更详细地描述。在一些实施例中,可以使用随机策略(例如,用于离散动作空间的分类策略)来实现策略函数,其概述了在状态集合S上执行来自动作集合A中的每个动作a的概率分布。在一些实施例中,随机策略函数(stochastic policyfunction)可以表示为:
π(a,s)=Pr(a=at|s=st) (2)
其中,策略函数π(a,s)提供在状态集合S当中的状态s上执行动作集合A中的动作a的概率。如下文进一步详细描述的,模型训练工具116可以基于布局数据的多个轨迹估计在状态集合S上执行动作集合A中的每个动作a的概率。在一些实施例中,当模型训练工具处于状态si中时,模型训练工具116可以基于布局数据的多个轨迹执行的动作(a0,a1…aU)针对来自状态集合S中的状态si估计概率密度函数或概率函数。或者说,当训练模型工具116处于状态Si中时,从状态集合S与动作集合A(例如(a0,a1,…aU))形成的布局资料的多个轨迹来估计概率密度函数或概率函数。应当说明的是,本发明实施例不区分上下标,即不以上下目标不同来标识不同的元素。
价值函数在数学上决定基于模型的RL算法工具118在状态集合S中处于特定状态s的价值(value)或价值(worth)。例如,在一些实施例中,价值函数可以包括在线策略价值函数(on-policy value function),在线策略动作价值函数(on-policy action-valuefunction)、最优价值函数(optimal value function)和/或最优动作价值函数(optimalaction-value function)。在图1所示的实施例中,价值函数可以用预期的未来奖励来定义,即,用预期奖励进行定义。通常,状态集合S中的特定状态s的价值函数可以在数学上近似为:
V(s)←V(s)+α(V(s'-V(s))(3)
其中,V(s)表示处于特定状态s中的价值,V(s’)表示处于状态集合S中的下一个状态s'的价值,α表示学习率。
如上所述,布局数据的多个轨迹可以与元启发式算法工具114根据如上所述的在状态集合S(例如,状态(s0,s1,...sT))上的一个或多个能量函数确定的能量(energy)或奖励分数(reward score)相关联。模型训练工具116能够在状态集合S的每个状态s中估计执行动作集合A中的动作a的预期奖励(reward)。在一些实施例中,模型训练工具116可以基于元启发式算法工具114通过在状态集合S中的最终状态(final state)上(例如,状态sT)评估一个或多个能量函数/>确定的最终能量或最终奖励分数来估计该奖励。根据上面的等式(3),模型训练工具116可以向后检查布局数据的多个轨迹的状态(s0,s1,...sT),然后可以使用例如回溯算法在状态集合S上从最终能量或最终奖励分数开始估计能量或奖励分数。
在估计了状态集合S上的能量或奖励分数之后,模型训练工具116可以估计价值函数。通常,用于马尔可夫决策过程(Markov decision process,MDP)轨迹的价值函数可以表示为:
V(s)=Eπ{Rt│st=s} (4)
其中,Eπ{}表示在基于模型的RL算法工具118遵循如上所述的策略函数π的情况下的期望值,Rt表示在状态集合S中处于特定状态s时的预期奖励。因此,模型训练工具116可以将价值函数估计为近似(approximately)等于或等于在状态(s0,s1,...sT)中执行动作(a0,a1...aU)的能量或奖励分数与如在上述策略函数概述的在状态(s0,s1,...sT)中时选择动作(a0,a1...aU)的概率的乘积(products)的总和(sum)。
基于模型的RL算法工具118可以利用模型训练工具116提供的一个或多个概率函数来评估基于模型的RL算法(例如,AlphaGo RL算法、AlphaZero RL算法或MuZero RL算法),以确定模块在放置位置上的布局,从而提供架构设计布局。在一些实施例中,基于模型的RL算法工具118可以将架构设计布局提供给元启发式算法工具114作为如上所述的元启发式算法的初始解。在一些实施例中,元启发式算法工具114、模型训练工具116和基于模型的RL算法工具118可以通过从该架构设计布局作为元件的初始布局开始重新评估元启发式算法(或者说,应用元启发式算法从RL算法工具118提供的架构设计布局作为初始解开始重新搜索),重新训练一个或多个概率函数,以及,使用一个或多个概率函数重新评估基于模型的RL算法来进一步迭代地增强架构设计布局。在图1所示的实施例中,基于模型的RL算法工具118可以使用诸如马尔可夫决策过程(MDP)的离散时间随机控制过程来评估基于模型的RL算法,以最大化预期的累积奖励。通常,可以使用状态集合S、动作集合A、模型训练工具116提供的策略函数和模型训练工具116提供的价值函数对MDP进行建模。在一些实施例中,状态集合S可以表示由具有水平切割和/或垂直切割的波兰表达式(Polish expression)构造的切片树(slicing tree)或由具有水平切割的简化波兰表达式构造的切片树。在每个时间点t,基于模型的RL算法工具118从状态集合S中识别出特定状态s以及与基于模型的RL算法工具118处于特定状态s相关联的奖励。在一些实施例中,对于来自状态集合S的非终止状态(non-terminating states)的奖励可以是零(0),以及,能量或奖励分数可以是通过针对状态集合S的终止状态(terminating states)评估如上所述的一个或多个能量函数确定的。然后,基于模型的RL算法工具118从动作集合A中识别出在特定状态s中要执行的最佳动作a。在一些实施例中,基于模型的RL算法工具118可以根据策略函数和/或价值函数实现迭代树搜索过程,例如,通用蒙特卡罗树搜索(general-purpose Monte Carlo treesearch,MCTS)算法,以在处于特定状态s中时从要执行的动作集合A中识别出最佳动作a。在一些实施例中,通用MCTS算法可以利用模型训练工具116提供的策略函数和模型训练工具116提供的价值函数来确定搜索树,以在处于特定状态s中时从动作集合A中识别出要执行的最佳动作a。在这些实施例中,基于模型的RL算法可以训练由模型训练工具116提供的动态函数、奖励函数和/或策略函数,以针对通用MCTS算法生成用于下游预测的一个或多个前瞻步骤。最佳动作a可以包括满足一个或多个电子设计约束的合法动作和/或不满足一个或多个电子设计约束的不合法动作。在这些实施例中,一个或多个电子设计约束可以要求位于相同行或列的放置位置中的模块为相同类型,不具有共享引脚的模块被间隔开,和/或,相邻行或列的放置位置具有来自一个或多个高级软件级描述中的至少一个共享电路节点。在识别出最佳动作a之后,基于模型的RL算法工具118前进到状态集合S中的下一个状态s'。
在执行元启发式算法工具114、模型训练工具116和基于模型的RL算法工具118之后,布局布线工具104给电子电路的各个元件分配几何形状,在电子设计空间内给该几何形状分配位置,和/或,在几何形状之间路由互连,以提供架构设计布局。在一实施例中,布局布线工具104利用描述电子电路的基于文本或图像的网表、用于制造电子器件的技术库、用于制造电子器件的半导体代工厂和/或用于制造电子器件的半导体技术节点,以放置各种元件,为电子电路的各种元件分配几何形状,为电子设计空间内的几何形状分配位置,和/或在几何形状之间路由互连。
模拟工具106模拟如架构设计布局所描述的几何形状、几何形状的位置和/或几何形状之间的互连以复制几何形状、几何形状的位置和/或几何形状之间的互连的一个或多个特征、参数或属性。在一实施例中,仿真工具106可以提供静态时序分析(static timinganalysis,STA)、电压降分析(voltage drop analysis,,也称为IREM分析)、时钟域交叉验证(Clock Domain Crossing Verification,或CDC检查)、形式验证(formalverification,也称为模型检查),等效性检查或任何其它合适的分析。在另一实施例中,模拟工具106可以实施交流(alternating current,AC)分析(例如,线性小信号频域分析)和/或直流(direct current,DC)分析,例如,在扫描电压、电流和/或参数以实施STA、IREM分析或其它合适的分析时计算出来的非线性静态点计算或一系列非线性操作点。
验证工具108验证由模拟工具106复制的几何形状、几何形状的位置和/或几何形状之间的互连的一个或多个特征、参数或属性是否满足电子设计规格。验证工具108还可以实施物理验证(也称为设计规则检查(design rule check,DRC)),以检查布局布线工具104分配的几何形状、几何形状的位置和/或几何形状之间的互连是否满足一系列推荐的参数(称为设计规则),其由用于制造电子装置的半导体代工厂和/或半导体技术节点定义。
可以由电子设计平台执行的策略函数的训练
图2示出了根据本发明一些实施例的训练基于模型的强化学习(RL)算法的策略函数(其可以由设计环境执行)的示意图。在图2所示的实施例中,当模型训练工具200由一个或多个计算装置、处理器、控制器或其它电气、机械和/或机电装置执行时,可以训练基于模型的强化学习(RL)算法(例如,AlphaGo RL算法、AlphaZero RL算法或MuZero RL算法)的策略函数。模型训练工具200可以代表以上在图1中描述的模型训练工具116的实施例。
如图2所示,模型训练工具200能够获得用于将电子电路的元件放置到电子设计空间上的N个/多个可能解202.1至202.N。在一些实施例中,可能解202.1至202.N可以是通过评估如上所述的元启发式算法以将电子电路的元件放置到电子设计空间上提供的。在获得可能解202.1到202.N之后,模型训练工具200将可能解202.1到202.N分解为布局数据的轨迹(trajectories)204.1到204.N,其能够用于训练基于模型的RL算法(例如,AlphaGo RL算法、AlphaZero RL算法或MuZero RL算法)的策略函数。
模型训练工具200将可能解202.1至202.N分解成它们的相应状态(s0,s1,…sT)和它们的相应动作(a0,a1...aU),以提供布局数据的轨迹204.1到204.N,其中,状态(s0,s1,…sT)来自如以上在图1中所描述的状态集合S,动作(a0,a1...aU)来自其在相应状态(s0,s1,…sT)上执行的动作集合A。或者说,可能解202.1可分解成与可能解202.1相对应的状态和动作,可能解202.N可分解成与可能解202.N相对应的状态和动作。为方便说明与理解,在图2中以相同的标号进行示例描述,但相关领域的技术人员应当理解其本意及变型。如图2所示,模型训练工具200将可能解202.1分解为状态s0和动作a0、动作a2、动作a3、…、aU-N,其中,动作a0是在状态s0中评估元启发式算法以进入状态s1执行的动作,动作a2是在状态s1中评估元启发式算法以进入状态s2执行的动作,动作a3是在状态s2中评估元启发式算法以进入例如状态sT-N执行的动作,以及,动作aU-N是在状态sT-N中评估元启发式算法执行的动作。类似地,模型训练工具200将可能解202.N分解为状态s0和动作a1、动作a4、动作aU,其中,动作a1是在状态s0中评估元启发式算法以进入状态s2执行的动作,动作a4是在状态s2中评估元启发式算法以进入例如状态sT执行的动作,以及,动作aU是在状态sT中评估元启发式算法执行的动作。然而,应该注意的是,如图2所示的状态(s0,s1,…sT)和动作(a0,a1…aU)仅用于说明目的而非限制。在不背离本发明精神的情况下,相关领域的技术人员将可能认识到不同的状态和/或动作。
一旦可能解202.1至202.N已经被分解(decomposed)为布局数据的轨迹204.1至204.N,则模型训练工具200估计概率密度函数(probability density functions)212.1到212.K,其概述在状态(s0,s1,...sT)中时执行动作(a0,a1...aU)中每一个的概率分布。如图2所示,模型训练工具200可以将在状态(s0,s1,...sT)上执行的动作(a0,a1...aU)转换成状态直方图210.1到210.K。模型训练工具200可以使用任何合适的众所周知的统计技术(在不背离本发明精神的情况下对本领域普通技术人员是显而易见的)将在状态(s0,s1,...sT)上执行的动作(a0,a1...aU)转换成状态直方图210.1到210.K。在图2所示的实施例中,状态直方图210.1到210.K可以包括多个容器(container)C0到CK,其中,多个容器C0到CK中的每一个对应于动作a0、a1、...aK中的一者。通常,这种合适的众所周知的统计技术可以将在状态(s0,s1,...sT)上执行的动作(a0,a1...aU)累加到多个容器C0到CK,以提供状态直方图210.1到210.K。例如,统计技术可以将多个容器C0到CK中与动作a0相对应的容器C0递增一(1),以累加针对布局数据的轨迹204.1的状态s0的动作a0;以及,统计技术可以将多个容器C0到CK中与动作a1相对应的容器C1递增一(1),以累加针对布局资料的轨迹204.N的状态s0的动作a1,以提供状态直方图210.1。
将在状态(s0,s1,...sT)上执行的动作(a0,a1...aU)转换为状态直方图210.1到210.K之后,模型训练工具200针对状态s0到sK中的每一个从状态直方图210.1到210.K估计出概率密度函数212.1到212.K。模型训练工具200可以使用参数密度估计技术(parametricdensity estimation technique)从状态直方图210.1到210.K估计得到概率密度函数212.1到212.K,然而,在不背离本发明精神的情况下,相关领域的技术人员将认识到的,用于估计概率密度函数212.1至212.K的更复杂的非参数密度估计技术也是可能的。作为参数密度估计技术的一部分,模型训练工具200选择众所周知的概率密度函数,例如,正态分布(normal distribution)、逻辑分布(logistic distribution)、学生t分布(Student's t-distribution)、对数正态分布(log-normal distribution)、对数逻辑分布(log-logisticdistribution)、Gumbel分布、指数分布(exponential distribution)、Pareto分布、Weibull分布、Burr分布、Fréchet分布、平方正态分布、倒Gumbel分布、Dagum分布或Gompertz分布,然后,从状态直方图210.1到210.K确定所选择的概率密度函数的一个或多个参数,例如,期望值(expectation)、均值(mean)、标准偏差(standard deviation)和/或方差(variance),以估计概率密度函数212.1到212.K。作为非参数密度估计技术的一部分,模型训练工具200可以执行密度估计技术(例如,核密度估计(kernel densityestimation,KDE)),以将一个或多个统计模型拟合到状态直方图210.1到210.K来估计概率密度函数212.1到212.K。
可以由电子设计平台执行的价值函数的训练
图3根据本发明的一些实施例示出了可以由设计环境执行的基于模型的强化学习(RL)算法的价值函数的训练。在图3所示的实施例中,模型训练工具300在由一个或多个计算装置、处理器、控制器或其它电气、机械和/或机电装置执行时,可以训练基于模型的强化学习(RL)算法(例如,AlphaGo RL算法、AlphaZero RL算法或MuZero RL算法)的价值函数。模型训练工具300可以代表在图1中描述的模型训练工具116的实施例。
如图3所示,模型训练工具300可以获得用于将电子电路的元件放置到电子设计空间上的可能解302.1到302.N。在一些实施例中,可能解302.1到302.N可以是通过评估如以上所描述的元启发式算法以将电子电路的元件放置到电子设计空间上来提供的。在获得可能解302.1到302.N之后,模型训练工具300将可能解302.1到302.N分解为布局数据的轨迹304.1到304.N,其可用于训练基于模型的RL算法(例如,AlphaGo RL算法、AlphaZero RL算法或MuZero RL算法)的策略函数。
模型训练工具300将可能解302.1到302.N分解成它们在如图1中所描述的状态集合S中的对应状态(s0,s1,...sT)及其在它们的对应状态(s0,s1,...sT)上从动作集合A中执行的对应动作(a0,a1...aU),以提供布局数据的轨迹304.1到304.N。如图3所示,模型训练工具300将可能解302.1分解为状态s0和动作a0、动作a2、动作a3、…、aU-N,其中,动作a0是在状态s0中评估元启发式算法以进入状态s1执行的动作,动作a2是在状态s1中评估元启发式算法以进入状态s2执行的动作,动作a3是在状态s2中评估元启发式算法以进入例如状态sT-N执行的动作,以及,aU-N是在状态sT-N中评估元启发式算法执行的动作。类似地,模型训练工具300将可能解202.N分解为状态s0和动作a1、动作a4、动作aU,其中,动作a1是在状态s0中评估元启发式算法以进入状态s2执行的动作,动作a4是在状态s2中评估元启发式算法以进入例如状态sT执行的动作,以及,动作aU是在状态sT中评估元启发式算法执行的动作。然而,应该注意的是,如图3所示的状态(s0,s1,…sT)和动作(a0,a1…aU)仅用于说明目的而非限制。在不背离本发明精神的情况下,相关领域的技术人员将认识到不同的状态和/或动作是可能的。
一旦可能解302.1到302.N已经被分解为布局数据的轨迹304.1到304.N,则模型训练工具300估计在状态(s0,s1,…sT)上执行动作(a0,a1…aU)的预期奖励分数r0到rT。在一些实施例中,模型训练工具116可以基于通过在状态(s0,s1,…sT)中的最终状态(例如,如在图3中所描述的状态sT和状态sT-N)上评估一个或多个能量函数确定的最终能量或最终奖励分数(例如,如在图3中所示的奖励分数RT和/或奖励分数RT-N)来估计该奖励。如图3所示,模型训练工具300可以从最终状态开始向后检查状态(s0,s1,…sT)和在状态(s0,s1,…sT)的每一个中执行的动作(a0,a1…aU)。在这些实施例中,模型训练工具300可以使用例如回溯算法(backtracking algorithm)基于最终奖励分数在状态(s0,s1,…sT-N-1)上估计奖励分数r0到rT-N-1。例如,针对可能解304.1,模型训练工具300可以基于奖励分数rT-N估计在例如状态s2中执行动作a3的预期奖励分数r3并且基于奖励分数r3估计在状态s1中执行动作a2的预期奖励分数r2。
在估计该奖励之后,模型训练工具300可以针对状态(s0,s1,…sT)估计价值函数V(0)到V(T)。如上所述,模型训练工具300可以将价值函数估计为近似等于在状态(s0,s1,…sT)中时执行动作(a0,a1…aU)的奖励分数r0到rT与如策略函数概述的在状态(s0,s1,…sT)中时选择动作(a0,a1…aU)的概率的乘积之和。例如,针对状态s0的价值函数可表示为V(0),以2个可能解为例(N=2),V(0)可以表示为奖励分数r0与如策略函数所概述的在状态s0中时执行动作a0的概率的第一乘积和奖励分数r1与如策略函数所概述的在状态s0中时执行动作a1的概率的第二乘积之和。
电子设计平台的操作
图4标出了电子设计平台在将模拟模块放置到放置位置上的操作的流程示意图。本发明不限于该操作描述。相反,对于相关领域的普通技术人员来说,其它操作控制流在本发明的范围和精神内将是显而易见的。以下讨论描述了将电子装置的模拟模块逻辑地放置到电子设计空间上以确定电子电路的架构设计放置的操作控制流400。通常,模拟模块可以包括一个或多个模拟电路和/或一个或多个模拟电路和一个或多个数字电路的一种或多种组合(通常称为一个或多个混合信号电路)。一个或多个模拟电路操作在一个或多个随时间连续变化的模拟信号上。一个或多个模拟电路可以包括一个或多个电流源、一个或多个电流镜、一个或多个放大器、一个或多个带隙基准源、和/或在不脱离本发明精神和范围的情况下对相关领域的技术人员来说是显而易见的其它合适的模拟电路。这些模拟模块可以用金属氧化物硅(metal oxide silicon,MOS)晶体管、电阻器、电感器、电容器和/或其它合适的模拟元件来实现,这些元件在不脱离本发明精神和范围的情况下对相关领域的技术人员来说是显而易见的。操作在一个或多个数字信号上的一个或多个数字电路具有一个或多个离散电平。一个或多个数字电路可包括一个或多个逻辑门,例如,逻辑与门、逻辑或门、逻辑异或门、逻辑异或门或逻辑非门,和/或在不脱离本发明精神和范围的情况下对相关领域的技术人员来说是显而易见的其它合适的数字电路。在图4所示的实施例中,模拟模块可以包括一个或多个模拟电路和/或一个或多个混合信号电路及其在功能上相互协作以提供电子装置的一个或多个功能的互连结构。在一些实施例中,模拟模块可以以与上述图1中的矩形模块基本相似的方式占据电子设计空间上的任意矩形形状。操作控制流400可以表示布局布线工具104在将电子装置的电子电路的元件逻辑地放置到电子设计空间上的操作,如上文在图1中所描述的。
在操作402处,操作控制流400获得(retrieve)模拟模块在电子设计空间(或其放置位置)上的布局(例如,初始布局)。该电子设计空间可以包括一系列的列,这些列与一系列的行相交以形成用于将模拟模块放置到电子设计空间上的放置位置。通常,这些放置位置代表了用于放置矩形模块的集成电路设计的基本单元。如以下更详细描述的,模拟退火算法从来自操作402的布局作为模拟模块在放置位置(或描述为“电子设计空间”)上的初始布局(也称为初始解决方案或初始解)开始。在一些实施例中,该初始解决方案可以是矩形模块在放置位置上的随机初始布局和/或可以是通过如下文进一步详细描述的通过MuZero强化学习(RL)算法确定出来的。应当说明的是,虽然图4所示的实施例以MuZero RL算法进行示例说明,但本发明对此并不做任何限制,且不应当限于该示例实施例。
在操作404处,操作控制流400使用来自操作402的布局来评估模拟退火算法,以提供用于将模拟模块放置到放置位置上的多个可能解。操作控制流400以与上面在图1中描述的基本相似的方式从操作402中的布局迭代地移动一个或多个模拟模块,以提供模拟模块在放置位置上的多个布局,也称为多个可能解。
在操作406处,操作控制流400利用来自操作404的多个可能解来训练MuZero强化学习(RL)算法的策略函数和/或价值函数。以与上文在图1、图2和图3中描述的方式基本相似的方式,操作控制流400将来自操作404的多个可能解分解成它们的状态、动作和/或奖励分数,以提供布局数据的多个轨迹。一旦来自操作404的多个可能解已经被分解为布局数据的多个轨迹,以与上面在图1、图2中描述的方式基本相似的方式,操作控制流400从来自操作404的多个可能解估计概率密度函数(其概述在处于多个状态中时执行多个动作的概率分布),以估计策略函数。可替代地或除此之外,以与上面在图1和图3中描述的基本相似的方式,操作控制流400可以从来自操作404的多个可能解估计处于多个状态中的价值,以估计价值函数。
在操作408处,操作控制流400利用来自操作406的策略函数和/或价值函数评估MuZero RL算法,以确定架构设计布局。在图4所示的实施例中,操作控制流400可以使用马尔可夫决策过程(MDP)以与上面在图1中描述的基本相似的方式来评估MuZero RL算法。作为MDP的一部分,操作控制流400可以实现如上文在图1中描述的通用蒙特卡洛树搜索(Monte Carlo tree search,MCTS)算法,以根据来自操作406的策略函数和/或价值函数从动作集合A中识别在特定状态s中时要执行的最佳动作a。在一些实施例中,操作控制流400可以将该架构设计布局提供给操作402以用作初始解决方案,其可用于再次评估来自操作404的模拟退火算法。在这些实施例中,操作控制流400可以进一步迭代地增强该架构设计布局,例如,通过在操作404处从将该架构设计布局作为元件的初始布局开始评估模拟退火算法,从操作406重新训练策略函数和/或价值函数,并利用来自操作406的策略函数和/或价值函数重新评估MuZero RL算法,以增强架构设计布局。
图5图解说明电子设计平台在将模拟模块放置到放置位置上的操作。本发明不限于该操作描述。相反,对于相关领域的普通技术人员来说,其它操作控制流在本发明的范围和精神内将是显而易见的。以下讨论描述了将电子装置的模拟模块逻辑地放置到电子设计空间上以确定电子电路的架构设计布局的操作控制流500。通常,模拟模块可以包括一个或多个模拟电路和/或一个或多个模拟电路和一个或多个数字电路的一种或多种组合(通常称为一个或多个混合信号电路)。在图5所示的实施例中,模拟模块可以包括一个或多个模拟电路和/或一个或多个混合信号电路及其在功能上相互协作以提供电子装置的一个或多个功能的互连结构。在一些实施例中,模拟模块可以以与上述图1中的矩形模块基本相似的方式占据电子设计空间上的任意矩形形状。操作控制流500可以表示布局布线工具104在将电子装置的电子电路的元件逻辑地放置到电子设计空间上的操作,如上文在图1中所描述的。
如图5所示,以与上面在图1中描述的基本相似的方式,一个或多个计算机系统(其实施例将在下面进一步详细描述)可以评估模拟退火算法502(即,应用模拟退火算法502进行搜索),以将模拟模块放置到电子设计空间上。在图5所示的实施例中,以与上面在图1中描述的基本相似的方式,一个或多个计算机系统可以从元件在现有布局(也称为现有的解决方案)中的放置位置移动到新的放置位置,以提供元件在放置位置(亦可描述为电子设计空间)上的新布局,也称为新的解决方案(也就是说,移动现有布局中的元件,以提供新的布局方案)。特别地,以与上面在图1中描述的方式基本相似的方式,一个或多个计算机系统可以移动模拟模块在模拟模块的初始布局(也称为初始解决方案550或初始解)中的放置点,以提供模拟模块在放置位置上的可能布局(也称为多个可能解552)。以与上面在图1中描述的基本相似的方式,一个或多个计算机系统可以多次迭代地评估模拟退火算法502,以从初始解决方案550开始提供可能解552中的剩余可能解。
在评估模拟退火算法502之后,一个或多个计算机系统可以执行模型训练操作504,以训练MuZero强化学习(RL)算法506的策略函数π(a,s)和/或价值函数V(s)。如上文在图1、图2和图3中描述的,一个或多个计算机系统将可能解552分解成它们的状态、动作和/或奖励分数,以提供布局数据的多个轨迹。如上文在图1和图2中所描述的,一旦来自操作404的多个可能解已经被分解为布局数据的多个轨迹,一个或多个计算机系统估计概率密度函数或概率函数,该函数概述在来自一个或多个计算机系统的多个状态中时执行多个动作的概率分布估计,以估计策略函数π(a,s)。可替换地或除此之外,如上文在图1和图3中描述的,操作控制流400可以从可能解552估计处于多个状态中的价值,以估计价值函数V(s)。
在训练策略函数π(a,s)和/或价值函数V(s)之后,一个或多个计算机系统利用策略函数π(a,s)和/或价值函数V(s)评估MuZero RL算法,以确定架构设计布局556。在图5所示的实施例中,一个或多个计算机系统可以使用马尔可夫决策过程(MDP)以与上面在图1中描述的基本相似的方式评估MuZero RL算法。作为MDP的部分,一个或多个计算机系统可以实现如上文在图1中描述的通用蒙特卡罗树搜索(MCTS)算法,以根据策略函数π(a,s)和/或价值函数V(s)在特定状态s中时从动作集合A中识别出要执行的最佳动作a。在一些实施例中,一个或多个计算机系统可以提供架构设计布局556给模拟退火算法502,以用作初始解决方案550。在这些实施例中,一个或多个计算机系统可以进一步迭代地增强架构设计布局,例如,通过从该架构设计布局作为元件的初始布局开始重新评估模拟退火算法,重新训练策略函数π(a,s)和/或价值函数V(s),以及,利用策略函数π(a,s)和/或价值函数V(s)重新评估MuZero RL算法,以增强架构设计布局。
用于执行设计环境的计算机网络
图6示出了根据本发明一些实施例的用于执行电子设计平台的计算机网络600的简化框图。如上所述,一个或多个电子设计软件工具可以由一个或多个计算装置、处理器、控制器或其它电气、机械和/或机电装置执行,以设计、模拟、分析和/或验证用于电子装置的电子电路的架构设计布局。图6描述了可用于执行一个或多个电子设计软件工具的计算机网络600,例如,如上文在图1中所描述的合成工具102、布局布线工具104、模拟工具106和/或验证工具108。计算机网络600可以代表这些一个或多个计算装置、处理器、控制器或其它电气、机械和/或机电装置的实施例。
如图6所示,计算机网络600可以包括电子设计服务器平台(electronic designserver platform)602、电子设计存储器存储系统(electronic design memory storagesystem)604和电子设计工作站(electronic design workstation)606.1到606.m。尽管在图6中示出的计算机网络600包括多个不同的装置,但相关领域的技术人员可以理解,在不脱离本发明精神和范围的情况下,这些装置中的一个或多个可以组合在一起,本发明对此不做任何限制。
电子设计服务器平台602代表一个或多个计算机系统,其实施例将在下文进一步地详细描述,其有助于确定用于电子装置的电子电路的架构设计布局。在一些实施例中,电子设计服务器平台602可以包括一个或多个处理器,以实施/执行电子设计平台608来确定架构设计布局。在一些实施例中,电子设计平台608表示包括一个或多个电子设计软件工具的电子设计流(electronic design flow),当电子设计软件工具由一个或多个处理器执行时可以设计、模拟、分析和/或验证架构设计布局。在这些实施例中,电子设计平台608可以代表如上所述的电子设计平台100的实施例。同样地,电子设计平台608可以包括合成工具102、布局布线工具104、模拟工具106、验证工具108和/或其任意组合,如上文在图1中描述的。替代地或除此之外,电子设计服务器平台602可以包括存储电子设计平台608的机器可读介质。在一些实施例中,一个或多个处理器可以执行存储在机器可读介质中的电子设计平台608,以确定架构设计布局。
电子设计存储器存储系统604可以存储由电子设计服务器平台602用来实施/执行电子设计平台608的数据和信息。在一些实施例中,电子设计存储器存储系统604可以包括一个或多个机器可读介质,以存储电子设计平台608确定的架构设计布置、架构设计布局(architectural design layout)和/或其部分,例如,以与上文在图1中描述的方式基本相似的方式。可替换地或除此之外,这些机器可读介质可以存储由电子设计服务器平台602用来确定架构设计布置和/或架构设计布局的任何数据和信息。该数据和信息可以包括由元启发式算法和/或基于模型的强化学习(RL)算法使用的状态、动作和/或奖励分数,如上文在图1至图5中所描述的。
电子设计工作站606.1至606.m与电子设计服务器平台602和/或电子设计存储器存储系统604交互(interface with),以实施/执行电子设计平台608。在图6所示的实施例中,电子设计工作站606.1到606.m可以实施/执行显示图形用户接口(graphical userinterface,GUI)610的软件,以与电子设计平台608交互。例如,在图6所示的实施例中,GUI610可以包括各种按钮、滑动条、列表框、微调器、下拉列表、菜单、菜单栏、工具栏、组合框、图标、容器窗口、浏览器窗口、子窗口和/或用于在电子设计服务器平台602和电子设计工作站之间提供数据和信息的消息窗口等等。在一些实施例中,该数据和信息可以包括由电子设计服务器平台602用来实施/执行电子设计平台608和/或输出由电子设计服务器平台602在实施/执行电子设计平台608时确定的数据和信息。
用于执行设计环境的计算机系统
图7示出了根据本发明一些实施例的用于实施电子设计平台的计算机系统的简化框图。如上所述,一个或多个电子设计软件工具可以由一个或多个计算装置、处理器、控制器或在不脱离本发明精神和范围的情况下对相关领域的技术人员而言是显而易见的其它电气、机械和/或机电装置实施,以设计、模拟、分析和/或验证用于电子装置的电子电路的架构设计布局。图7描述了一种计算机系统700,计算机系统700可用于实施一个或多个电子设计软件工具,例如,如上文在图1中所描述的合成工具102、布局布线工具104、模拟工具106和/或验证工具108。计算机系统700可以代表这些一个或多个计算装置、处理器、控制器或其它电气、机械和/或机电装置的实施例。
在图7所示的实施例中,计算机系统700包括一个或多个处理器702,以实施/执行一个或多个电子设计软件工具,如上文在图1中描述的。在一些实施例中,一个或多个处理器702可以包括或可以是任何微处理器、图形处理单元或数字信号处理器,以及它们的电子处理等效物,例如,专用集成电路(Application Specific Integrated Circuit,ASIC)或现场可编程门数组(Field Programmable Gate Array,FPGA)。如本文所使用的,术语“处理器”表示物理地转换数据和信息的有形数据和信息处理装置,通常使用序列转换(也称为“操作”)。数据和信息可以由能够被处理器存储、访问、传输、组合、比较或以其它方式操作的电、磁、光或声信号的物理表示。术语“处理器”可以表示单处理器和多核系统或多处理器数组,包括图形处理单元、数字信号处理器、数字处理器或这些元件的组合。处理器可以是电子的,例如,包括数字逻辑电路(例如,二进制逻辑),或模拟的(例如,运算放大器)。处理器还可以操作为支持在“云计算”环境中或作为“软件即服务”(software as a service,SaaS)执行的相关操作。例如,至少一些操作可以由在分布式或远程系统处可用的一组处理器执行,这些处理器可通过通信网络(例如,互联网)和通过一个或多个软件接口(例如,应用程序接口(application program interface,API)。在一些实施例中,计算机系统700可以包括操作系统,例如,Microsoft的Windows、Sun Microsystems的Solaris、AppleComputer的MacO、Linux或UNIX。在一些实施例中,计算机系统700还可以包括基本输入/输出系统(Basic Input/Output System,BIOS)和处理器固件。一个或多个处理器702使用操作系统、BIOS和固件来控制耦接到一个或多个处理器702的子系统和接口。在一些实施例中,一个或多个处理器702可以包括来自Intel的Pentium和Itanium、Advanced MicroDevices的Opteron和Athlon,以及,ARM Holdings的ARM处理器。
如图7所示,计算机系统700可以包括机器可读介质704。在一些实施例中,机器可读介质704还可以包括主要的随机存取存储器(random-access memory,RAM)706、只读存储器(read only memory,ROM)708和/或文件存储子系统(file storage subsystem)710。RAM730可以在程序执行期间存储指令和数据,而ROM 732可以存储固定指令。文件存储子系统710为程序和数据文件提供持久存储,并且可以包括硬盘驱动器、软盘驱动器以及相关的可移动介质、CD-ROM驱动器、光驱、闪存或可移动介质盒。具体地,本发明对此不做限制。
计算机系统700还可以包括用户接口输入设备712和用户接口输出装置714。例如,用户接口输入设备712可以包括字母数字键盘、小键盘、诸如鼠标、轨迹球、触摸板、触笔等的定点装置、或图形输入板、扫描仪、集成到显示器的触摸屏、音频输入设备(例如,语音识别系统或麦克风)、眼睛注视识别、脑电波模式识别和其它类型的输入设备。用户接口输入设备712可以通过有线或无线方式连接到计算机系统700。通常,用户接口输入设备712旨在包括将信息输入至计算机系统700的所有可能类型的装置和方式。用户接口输入设备712通常允许用户识别出现在某些类型的用户接口输出装置(例如,显示子系统)上的对象、图标、文本等。例如,用户接口输出装置714可以包括显示子系统、打印机、传真机或诸如音频输出装置的非视觉显示器。显示子系统可以包括阴极射线管(cathode ray tube,CRT)、诸如液晶显示器(liquid crystal display,LCD)的平板装置、投影装置或用于创建可视图像的一些其它装置,例如,虚拟现实系统。显示子系统还可以提供非视觉显示,例如经由音频输出或触觉输出(例如,振动)装置。通常,用户接口输出装置720旨在包括从计算机系统700输出信息的所有可能类型的装置和方式。
计算机系统700可以进一步包括网络接口716,以提供到外部网络的接口,包括到通信网络718的接口,并且通过通信网络718耦接到其它计算机系统或机器中的对应接口装置。通信网络718可以包括许多互连的计算机系统、机器和通信链路。这些通信链路可以是有线链路、光链路、无线链路或用于信息通信的任何其它装置。通信网络718可以是任何合适的计算机网络,例如,诸如因特网的广域网和/或诸如以太网的局域网。通信网络718可以是有线和/或无线的,以及,通信网络可以使用加密和解密方法,例如可用于虚拟专用网络。通信网络使用一个或多个通信接口,这些接口可以从其它系统接收数据,也可以将数据传输到其它系统。通信接口的实施例通常包括以太网卡、调制解调器(例如电话、卫星、电缆或ISDN)、(异步)数字用户线(digital subscriber line,DSL)单元、火线接口、USB接口等等。可以使用一种或多种通信协议,例如HTTP、TCP/IP、RTP/RTSP、IPX和/或UDP。
如图7所示,一个或多个处理器702、机器可读介质704、用户接口输入设备712、用户接口输出装置714和/或网络接口716可以使用总线子系统720相互通信耦接。尽管总线子系统720示意性地显示为单个总线,但总线子系统的替代实施例可以使用多个总线。例如,基于RAM的主存储器可以使用直接存储器访问(Direct Memory Access,DMA)系统直接与文件存储系统通信。
结论
上述具体实施方式参考附图来说明与本发明一致的示例性实施例。前述具体实施方式中对“示例性实施例”的参考表示所描述的示例性实施例可以包括特定特征/部件、结构或特征,但是每个示例性实施例可以不一定包括特定特征/部件、结构或特征。此外,这种短语不一定表示相同的示例性实施例。此外,与示例性实施例结合描述的任何部件、结构或特征可以包括、独立地或以任何组合的方式包括其他示例性实施例的部件、结构或特征,而不管是否明确地描述。
上述具体实施方式不意味着限制。相反,仅根据所附权利要求书及其等同物来定义本发明的范围。应该理解,上述具体实施方式而不是摘要部分旨在用于解释权利要求书。摘要部分可以阐述本发明的一个或多个但不是所有示例性实施例,并且因此不旨在以任何方式限制本发明以及所附权利要求书及其等同物。
上述具体实施方式中描述的示例性实施例已经提供为用于说明性目的,而不是限制性的。其他示例性实施例是可能的,并且可以在保持在本发明的精神和范围内的同时对示例性实施例进行修改。上述具体实施方式已经借助于说明特定功能及其关系的实现的功能构建块来描述本发明。为了方便描述,可以任意地定义这些功能构建块的边界。可以定义可选边界,只要适当地实施特定的功能及其关系即可。
可以以硬件、固件、软件或它们的任何组合来实现本发明的实施例。本发明的实施例还可以实现为存储在机器可读介质上的指令,其中,可以通过一个或多个处理器来读取和执行该指令。机器可读介质可以包括以机器(例如,计算电路)可读的形式存储或发送信息的任何机制。例如,机器可读介质可以包括诸如只读存储器(ROM)的非暂时性机器可读介质;随机存取存储器(RAM);磁盘存储介质;光存储介质;闪存设备;以及其他介质。作为另一实例,机器可读介质可以包括诸如电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等)的暂时性机器可读介质。此外,固件、软件、程序、指令可以在本文中描述为实施特定操作。然而,应当理解,这样的描述仅仅是为了方便起见,并且这种操作实际上来自计算设备、处理器、控制器或执行固件、软件、程序、指令等的其他设备。
上述具体实施方式充分公开了本发明的一般性质,在不背离本发明的精神和范围的情况下,其他人通过应用相关领域的技术人员的知识可以容易地修改和/或适应诸如示例性实施例的各种应用,而无需过度的实验。因此,基于本文呈现的教导和指导,这种改编和修改旨在在示例性实施例的含义和多个等同物内。应当理解,本文的措辞或术语是为了描述而不是限制的目的,从而使得本说明书的术语或措辞由相关领域的技术人员在本文中根据教导来解释。
在权利要求书中使用诸如“第一”,“第二”,“第三”等序数术语来修改权利要求要素,其本身并不表示一个权利要求要素相对于另一个权利要求要素的任何优先权、优先级或顺序,或执行方法动作的时间顺序,但仅用作标记,以使用序数词来区分具有相同名称的一个权利要求要素与具有相同名称的另一个元素要素。
虽然本发明已经通过示例的方式以及依据优选实施例进行了描述,但是,应当理解的是,本发明并不限于公开的实施例。相反,它旨在覆盖各种变型和类似的结构(如对于本领域技术人员将是显而易见的),例如,不同实施例中的不同特征的组合或替换。因此,所附权利要求的范围应被赋予最宽的解释,以涵盖所有的这些变型和类似的结构。
Claims (21)
1.一种计算机系统,用于将电子装置的电子电路放置到电子设计空间上,其中,该计算机系统包括存储器和处理器,该存储器存储多个电子设计软件工具,以及,该处理器被配置为实施该多个电子设计软件工具,该电子设计软件工具在由该处理器实施时,该处理器被配置为:
评估元启发式算法,以提供用于将该电子电路从该电子电路在电子设计空间上的初始布局放置到该电子设计空间上的第一多个可能解;
利用该第一多个可能解训练基于模型的强化学习RL算法的一个或多个概率函数;
利用该一个或多个概率函数评估该基于模型的RL算法,以将该电子电路放置到该电子设计空间上来确定第一架构设计布局。
2.如权利要求1所述的计算机系统,其特征在于,该电子设计软件工具在由该处理器实施时,该处理器还被配置为:
为该元启发式算法提供该第一架构设计布局;
评估该元启发式算法,以提供用于将该电子电路从该第一架构设计布局放置到该电子设计空间上的第二多个可能解;
利用该第二多个可能解训练该一个或多个概率函数;以及,
利用该一个或多个概率函数评估该基于模型的RL算法,以将该电子电路放置到该电子设计空间上来确定第二架构设计布局。
3.如权利要求1所述的计算机系统,其特征在于,该元启发式算法包括模拟退火算法,以及,该基于模型的RL算法包括MuZero RL算法。
4.如权利要求1所述的计算机系统,其特征在于,该电子设计软件工具在由该处理器实施时,该处理器被配置为:将该第一多个可能解分解为由该元启发式算法执行的用以确定该第一多个可能解的多个状态和多个动作,以提供布局数据的多个轨迹。
5.如权利要求4所述的计算机系统,其特征在于,该电子设计软件工具在由该处理器实施时,该处理器被配置为:估计在该多个状态上执行该多个动作的多个概率分布,以基于该一个或多个概率函数确定策略函数。
6.如权利要求4所述的计算机系统,其特征在于,该电子设计软件工具在由该处理器实施时,该处理器被配置为:
将该第一多个可能解还分解为与该布局数据的多个轨迹相关联的多个最终奖励分数;以及,
使用回溯算法从该多个最终奖励分数开始来估计在该多个状态上执行该多个动作的多个预期奖励。
7.如权利要求6所述的计算机系统,其特征在于,该电子设计软件工具在由该处理器实施时,该处理器被配置为:基于该一个或多个概率函数估计价值函数,使其近似等于在该多个状态中时执行该多个动作的该多个预期奖励与在该多个状态中时选择该多个动作的概率的多个乘积之和。
8.一种方法,用于将电子装置的多个模拟模块放置到电子设计空间上,其中,该方法包括:
计算机系统评估仿真退火算法,以提供用于将该多个模拟模块从该多个模拟模块在该电子设计空间上的初始布局放置到该电子设计空间的多个放置位置上的多个可能解;
该计算机系统利用该多个可能解训练MuZero强化学习RL算法的策略函数和价值函数;
该计算机系统利用该策略函数和该价值函数评估该MuZero RL算法,以将该多个模拟模块放置在该多个放置位置上来确定架构设计布局;以及,
该计算机系统通过从该架构设计布局作为该初始布局开始重新评估该模拟退火算法,重新训练该策略函数和该价值函数,以及,利用该策略函数和该价值函数重新评估该MuZero RL算法来迭代地增强该架构设计布局。
9.如权利要求8所述的方法,其特征在于,该多个模拟模块包括多个模拟电路及其在功能上相互协作以提供该电子装置的多个功能的互连结构。
10.如权利要求8所述的方法,其特征在于,该方法还包括:
该计算机系统逻辑地交叉该电子设计空间内的一系列的行和该电子设计空间内的多个列,以形成用于放置该多个模拟模块的该多个放置位置。
11.如权利要求8所述的方法,其特征在于,该利用多个可能解训练MuZero强化学习RL算法的策略函数和价值函数的步骤包括:将该多个可能解分解为由该模拟退火算法执行的用来确定该多个可能解的多个状态和多个动作,以提供布局数据的多个轨迹。
12.如权利要求11所述的方法,其特征在于,该利用多个可能解训练MuZero强化学习RL算法的策略函数和价值函数的步骤还包括:估计在该多个状态上执行该多个动作的多个概率分布,以确定该策略函数。
13.如权利要求11所述的方法,其特征在于,该利用多个可能解训练MuZero强化学习RL算法的策略函数和价值函数的步骤还包括:
将该多个可能解还分解为与该布局数据的多个轨迹相关联的多个最终奖励分数;以及,
使用回溯算法从该多个最终奖励分数开始来估计在该多个状态上执行该多个动作的多个预期奖励。
14.如权利要求13所述的方法,其特征在于,该利用多个可能解训练MuZero强化学习RL算法的策略函数和价值函数的步骤还包括:基于该一个或多个概率函数估计价值函数,使其近似等于在该多个状态中时执行该多个动作的该多个预期奖励与在该多个状态中时选择该多个动作的概率的多个乘积之和。
15.一种计算机网络,用于将电子装置的电子电路放置到电子设计空间上,以实施电子设计平台,该计算机网络包括电子设计服务器平台和电子设计工作站,该电子设计服务器平台被配置为实施多个电子设计软件工具,该电子设计软件工具在由该电子设计服务器平台实施时,该电子设计服务器平台被配置为:
评估元启发式算法,以提供用于将该电子电路从该电子电路在该电子设计空间上的多个放置位置上的初始布局放置到该多个放置位置上的多个可能解;
利用该多个可能解训练基于模型的强化学习RL算法的策略函数和价值函数;
利用该策略函数和该价值函数评估该基于模型的RL算法,以将该电子电路放置在该多个放置位置上来确定架构设计布局;以及,
通过从该架构设计布局作为该初始布局开始重新评估该元启发式算法,重新训练该策略函数和该价值函数,以及,利用该策略函数和该价值函数重新评估该基于模型的RL算法来迭代地增强该架构设计布局;
其中,该电子设计工作站被配置为与该电子设计服务器平台交互,以实施该电子设计平台。
16.如权利要求15所述的计算机网络,其特征在于,该电子设计工作站被配置为实施图形用户接口GUI以与该电子设计服务器平台交互,以及,该GUI在由该电子设计工作站实施时,该电子设计工作站被配置为:将输入数据和信息发送到该电子设计服务器平台,其中,该输入数据和信息将由该电子设计服务器平台用来实施该电子设计平台;或者,从该电子设计服务器平台接收该电子设计服务器平台在实施该电子设计平台时确定出来的输出数据和信息。
17.如权利要求15所述的计算机网络,其特征在于,该电子设计软件工具在由该电子设计服务器平台实施时,该电子设计服务器平台被进一步配置为:逻辑地交叉该电子设计空间内的一系列的行和该电子设计空间内的多个列,以形成用于放置该多个模拟模块的该多个放置位置。
18.如权利要求15所述的计算机网络,其特征在于,该电子设计软件工具在由该电子设计服务器平台实施时,该电子设计服务器平台被配置为:将该多个可能解分解为由该元启发式算法执行的用来确定该多个可能解的多个状态和多个动作,以提供布局数据的多个轨迹。
19.如权利要求15所述的计算机网络,其特征在于,该电子设计软件工具在由该电子设计服务器平台实施时,该电子设计服务器平台被配置为:估计在该多个状态上执行该多个动作的多个概率分布,以确定该策略函数。
20.如权利要求15所述的计算机网络,其特征在于,该电子设计软件工具在由该电子设计服务器平台实施时,该电子设计服务器平台被配置为:
将该多个可能解还分解为与该布局数据的多个轨迹相关联的多个最终奖励分数;以及,
使用回溯算法从该多个最终奖励分数开始来估计在该多个状态上执行该多个动作的多个预期奖励。
21.如权利要求20所述的计算机网络,其特征在于,该电子设计软件工具在由该电子设计服务器平台实施时,该电子设计服务器平台被配置为:基于该一个或多个概率函数估计价值函数,使其近似等于在该多个状态中时执行该多个动作的该多个预期奖励与在该多个状态中时选择该多个动作的概率的多个乘积之和。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163279205P | 2021-11-15 | 2021-11-15 | |
US17/903,873 US20230153505A1 (en) | 2021-11-15 | 2022-09-06 | Machine-learning based architectural design placement for electronic circuitry of an electronic device |
US17/903,873 | 2022-09-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117669463A true CN117669463A (zh) | 2024-03-08 |
Family
ID=86323554
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280043061.9A Pending CN117677889A (zh) | 2021-06-16 | 2022-06-16 | 光电子装置及其阵列 |
CN202211313842.3A Pending CN117669463A (zh) | 2021-11-15 | 2022-10-25 | 用于架构设计布局的计算机系统、方法及计算机网络 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280043061.9A Pending CN117677889A (zh) | 2021-06-16 | 2022-06-16 | 光电子装置及其阵列 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230153505A1 (zh) |
CN (2) | CN117677889A (zh) |
TW (1) | TWI827361B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114186368A (zh) * | 2021-11-22 | 2022-03-15 | 国网河南省电力公司经济技术研究院 | 一种基于蚁群算法的电缆敷设路径优化方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12008300B2 (en) * | 2021-08-31 | 2024-06-11 | Siemens Industry Software Inc. | Machine learning-based unravel engine for integrated circuit packaging design |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113261003B (zh) * | 2018-12-04 | 2024-10-15 | 谷歌有限责任公司 | 使用神经网络生成集成电路平面图 |
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 |
US11556862B2 (en) * | 2019-09-14 | 2023-01-17 | Oracle International Corporation | Techniques for adaptive and context-aware automated service composition for machine learning (ML) |
CN112836394B (zh) * | 2021-03-10 | 2024-05-14 | 东南大学 | 基于相关性和高斯过程回归的设计空间参数迁移学习方法 |
-
2022
- 2022-06-16 CN CN202280043061.9A patent/CN117677889A/zh active Pending
- 2022-09-06 US US17/903,873 patent/US20230153505A1/en active Pending
- 2022-10-25 CN CN202211313842.3A patent/CN117669463A/zh active Pending
- 2022-11-14 TW TW111143342A patent/TWI827361B/zh active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114186368A (zh) * | 2021-11-22 | 2022-03-15 | 国网河南省电力公司经济技术研究院 | 一种基于蚁群算法的电缆敷设路径优化方法 |
Also Published As
Publication number | Publication date |
---|---|
TWI827361B (zh) | 2023-12-21 |
US20230153505A1 (en) | 2023-05-18 |
TW202324176A (zh) | 2023-06-16 |
CN117677889A (zh) | 2024-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12086516B2 (en) | Generating integrated circuit floorplans using neural networks | |
TWI707241B (zh) | 開發電子裝置的電子架構設計的方法、將電子裝置的電子架構設計最佳化的電腦系統及非暫時性機器可讀取媒體 | |
US20240152679A1 (en) | Integrated Circuit Layout Validation Using Machine Learning | |
TWI827361B (zh) | 用於架構設計佈局的計算機系統、方法及計算機網絡 | |
WO2021216923A1 (en) | Generating integrated circuit placements using neural networks | |
US20160253445A1 (en) | Predictive multi-user client-server electronic circuit design system utilizing machine learning techniques | |
US20120290509A1 (en) | Training Statistical Dialog Managers in Spoken Dialog Systems With Web Data | |
CN109509056A (zh) | 基于对抗网络的商品推荐方法、电子装置及存储介质 | |
US20090199139A1 (en) | Method, system, and computer program product for improved electrical analysis | |
US11042806B1 (en) | Deep learning for fixability prediction of power/ground via DRC violations | |
Guerra et al. | Artificial neural networks as an alternative for automatic analog IC placement | |
Behdad et al. | Leveraging virtual reality experiences with mixed-integer nonlinear programming visualization of disassembly sequence planning under uncertainty | |
US10078723B1 (en) | Method and apparatus for design rules driven interactive violation display | |
US9378327B2 (en) | Canonical forms of layout patterns | |
US10002224B2 (en) | Interactive routing of connections in circuit using auto welding and auto cloning | |
US9916415B2 (en) | Integrated circuit performance modeling that includes substrate-generated signal distortions | |
Moradi et al. | A new automated design method based on machine learning for CMOS analog circuits | |
US20030120475A1 (en) | Method of generating asic design database | |
US9626474B2 (en) | Expanded canonical forms of layout patterns | |
Saraogi et al. | CNN Based design rule checker for VLSI layouts | |
Song et al. | Fast variation-aware circuit sizing approach for analog design with ML-assisted evolutionary algorithm | |
US11501048B1 (en) | Estimating hardness of formal properties using on-the-fly machine learning | |
Abazyan et al. | Enhanced pin-access prediction and design optimization with machine learning integration | |
CN105468805B (zh) | 一种表征数字模拟结果的图形表示的方法 | |
Pawar | Application of Machine Learning to Physical Design |
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 |