用于预测软IP部件的性能、功率和面积表现的系统和方法与流程

文档序号:25082403发布日期:2021-05-18 13:03阅读:52来源:国知局
用于预测软IP部件的性能、功率和面积表现的系统和方法与流程
用于预测软ip部件的性能、功率和面积表现的系统和方法
技术领域
1.本发明属于系统设计领域,并且更具体地涉及知识产权(ip)块 的性能、功率和面积的估计。


背景技术:

2.知识产权(ip)块或元件或核用于芯片设计中。ip表示设计中使 用的分立部件。ip是设计逻辑的可重用部件,具有已经过验证且可以 集成到更大的设计中的经定义的接口和表现。ip通常采用软ip或硬 ip的形式。硬ip被定义为无法修改的ip。设计者无法对硬ip的应用 功能进行有意义的修改。
3.另一方面,软ip包括可配置的逻辑描述。软ip包括可综合的核, 这些核例如以硬件描述语言(hdl)(诸如verilog或vhsic hdl (vhsl))交付或表示。这允许设计者可以在功能级别上修改设计。 软ip有时也作为通用门级网表被提供。网表是被实现为通用门或处 理特定的标准单元的ip逻辑功能的布尔代数表示。被实现为通用门 的ip核可移植到任何处理技术。网表和可综合核都称为“软ip”, 因为它们都允许在设计中进行综合、布局和布线(spr)。
4.片上系统(soc)和片上网络(noc)中使用的软ip通常以高级 别参数化的hdl表示或编写。在计算机系统设计中,hdl是用于描 述具有电子电路或数字逻辑电路的ip的结构和表现的专用计算机语 言。该表示使得能够对电子电路进行精确的形式化描述,从而允许对 ip作为电子电路进行自动分析和仿真。hdl也可以综合为网表,网 表是物理电子部件及其如何连接在一起的规范,其可以被布局和布线 来产生用于创建ip作为集成电路的一部分的掩码集。hdl看起来很 像编程语言。hdl是包括表达式、语句和控制结构的文本描述。大多 数编程语言和hdl之间的一个重要区别是hdl明确包含了时间概 念。特别是针对ip或复杂电路(诸如专用集成电路、微处理器和可 编程逻辑设备),hdl形成电子设计自动化(eda)系统的组成部 分。
5.ip的表示必须在功能上正确并且必须满足物理要求(包括功耗和 最小操作频率)。传统上,只有在ip综合为门级网表时才能进行性 能、功率和面积(ppa)评估。对于大型ip,该过程可能需要数小时 至数天,这对于在架构设计的早期阶段期间所需的分析来说是不切实 际的。因此,需要允许能够根据其hdl描述来直接地预测ip物理表 现以便缩短ip开发周期并且提供更多最佳解决方案的系统和方法。


技术实现要素:

6.公开了用于使用机器学习模型来从ip的hdl表示中预测ip的物 理表现(behavior)的系统和方法,其缩短了ip开发周期并且提供了 更优化的解决方案。根据本发明的各个方面,ppa估计包括捕获参数, 诸如ip的输入和输出端口之间的延迟、ip的面积以及ip使用的功率。 ppa估计是针对ip的特定部件的表征集合,其可以用于构建用于训 练机器学习模型的数据库。模型可以使用所收集的数据,并且提供针 对ip的表现的估计,以从
ip逻辑和物理参数值的组合向量直接地预 测ip核或块的表现。因此,在通过综合来运行每个ip部件并且使用 在多个参数变化下捕获的ppa而获得的数据上训练机器学习模型。 针对每个特定的物理条件集合,收集ppa信息并将其用于训练模型。 所收集的一些数据用于测试机器学习模型的有效性,而所收集的一些 数据用于训练机器学习模型。
附图说明
7.图1示出了根据本发明的各个方面的用于计算发送给训练模型的 软ip的功率、性能和面积的过程。
8.图2示出了根据本发明的各个方面的用于训练和测试用于预测ppa估计的模型的过程。
9.图3示出了根据本发明的各个方面的用于使用模型基于参数值来 预测ppa值的过程。
10.图4示出了根据本发明的各个方面的ip块。
11.图5示出了根据本发明的各个方面的用于部署模型的流程。
12.图6示出了根据本发明的各个方面的用于将参数数字化的过程中 的步骤。
具体实施方式
13.在下面的描述中参考附图根据各方面和实施例描述了本发明,在 附图中相同的附图标记表示相同或相似的元件。在整个说明书中,对
ꢀ“
一个实施例”、“实施例”或类似语言的引用意味着关于该实施例 描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。
14.因此,贯穿本说明书的短语“在一个实施例中”、“在实施例中”、
ꢀ“
在某些实施例中”以及类似语言的出现可以但不一定都指代相同的 实施例。注意,除非上下文另外明确指出,否则如本说明书中所使用 的单数形式“一”、“一个”和“该”包括复数指示物。
15.根据本发明的各方面和一个或多个实施例,可以以任何合适的方 式组合本发明所描述的特征、结构或特性。在以下描述中,记载了许 多具体细节来提供对本发明的各种实施例的理解。然而,相关领域的 技术人员将认识到,可以在没有一个或多个特定细节的情况下,或者 利用其他方法、部件、材料等来实践本发明。在其他情况下,未详细 示出或描述公知的结构、材料或操作,以避免使本发明的各个方面不 清楚。
16.在本说明书中引用的所有公开和专利均通过引用并入本文,就好 像每个单独的公开或专利均被具体地且单独地指出通过引用并入并 且通过引用并入本文,以结合所引用的公开内容来披露和描述方法和 /或系统。任何公开的引用均是其在提交日之前的披露并且不应解释为 承认本发明无权凭借在先发明而早于该公开。此外,所提供的公开日 期可能与可以需要独立确认的实际公开日期不同。
17.片上网络(noc)在片上系统(soc)ip(例如,cpu和存储器 控制器)之间传送消息。noc包括互连的交换机,借助交换机可以控 制或传递消息。每个交换机的尺寸和速度取决于以下因素:1)逻辑 参数,诸如输入/输出端口的数量和数据总线的宽度;2)物理条件, 诸如工艺技术、标准单元库的类型、操作电压和温度。
18.现在参考图1,示出了根据本发明各个方面的过程,该过程用于 收集关于ip块的
数据集,并且使用数据集来估计ip块的性能、功率 和面积(ppa),以构建用于训练和测试机器学习模型的数据集。如 本文所使用,机器学习模型可以是现实世界过程的任何数学表示。针 对模型的学习算法在训练数据中找到模式,使得输入参数对应于目标 或结果。训练过程的输出或结果是可以用于进行预测的机器学习模 型。如本文所使用,神经网络是通用机器学习方法中的一类模型。更 具体地,神经网络是通用函数逼近的特定算法集合,这就是为什么它 们可以应用于关于学习从输入到输出空间的复杂映射的几乎任何机 器学习问题的原因。所生成的数据被存储在数据库中并且被用于训练 机器学习模型,这将关于图2和图3进行讨论。因此,模型允许及早 预测与ppa相关的物理参数。例如,寄存器级应该被放置在何处并 且是多少个?或者信道中什么尺寸的总线适合?或者某个尺寸的交 换机能否以所需的速度操作?或者应在哪个时钟域内放置交换机? 或者发起方和目标之间的预期目标时延可实现?收集关于参数(诸如 时序弧(ip的输入和输出端口之间的延迟))、面积和功率的信息允 许ppa表征。
19.再次参考图1,所示出的过程产生训练数据。训练数据使用针对 物理参数和逻辑参数的向量而生成,这些向量落在合理的范围和间隔 内。这允许以后将用于训练机器学习模型的更精确的数据点集。过程 然后使用逻辑参数的向量作为verilog硬件描述语言(hdl)生成器 100的输入。过程还包括将针对ip块的参数化hdl提供给veriloghdl生成器。verilog生成器针对逻辑参数的每个组合产生verilog 描述。表示所有组合的所产生的verilog描述被输入到物理综合模块 110。另外,物理参数值的向量被提供给物理综合模块。物理综合模 块生成门级网表。物理综合模块使用库数据和脚本信息来针对每个组 合生成门级网表,从而产生若干门级网表。每个门级网表都要考虑以 确保结果是可接受的或合理的。确定结果是否合理是基于经验ic设 计知识的规则的集合。例如,通过理智复杂度的组合块的延迟不应超 过几纳秒。如果所产生的门级网表是可接受的,则将所产生的门级网 表存储在数据库中。如果所产生的门级网表不可接受,则将报告结果 并将结果丢弃。针对各种不同的ip块重复该过程来生成门级网表, 并且将所产生的门级网表存储,以建立用于训练机器学习模型的数据 库。
20.继续图1并且参考图4,提供了一个简单的示例。示例的简单性 不是对系统的限制,仅是为了清楚而简化。如上所述,根据本发明的 各个方面,数据生成用于基于参数化hdl来训练模型。参数化hdl (高级硬件描述语言)定义了高度可配置或可变ip的逻辑表现。例 如,交换机400是将数据分组从其输入端口转发到其输出端口的部件。 根据本发明的各个方面,将交换机端口的数目参数化。例如,交换机 400可以具有2、3或4个输入端口和2或3个输出端口。通过针对这 两个参数(输入端口和输出端口)的所有组合运行hdl生成器,结 果将得到3
×
2=6个常规(即,非参数)verilog描述,一个针对交换 机400的每个变体,这是逻辑描述。通过从特定技术映射到标准单元, 将这些逻辑描述转换为真实电路。该过程称为物理综合。因此,对于 来自16nm和7nm技术的标准单元库,在综合之后将存在6
×
2=12个 电路变体。注意,针对相同输入verilog的16nm和7nm电路在逻辑 上相同;物理特性不同,因为与16nm物理特性相比,7nm更快、更 小并且功耗更低。
21.再次参考图2和图6,示出了用于针对机器学习模型生成训练数 据和测试数据的过程。该过程访问数据库并且从数据库中提取相关的 数据点。枚举可以被转换为独热向量,例如,“ss”=>[0 0 1],“tt”=>[0 1 0],“ff”=>[1 0 0]。如图6所示,非数值数据参数
被转换成数字形式, 以产生机器学习数据集210。数据集210被划分为训练数据220和测 试数据230。训练数据220用于训练神经网络模型。利用经训练的模 型,测试数据230用于测试模型的准确性。如果测试结果可接受,则 可以部署该模型并且将其用于针对ip时钟的ppa估计和预测。如果 测试结果不可接受,则调整神经网络模型的控制,并且提供反馈来进 一步训练模型。
[0022]
现在参考图3,根据本发明的各个方面,一旦模型被测试和部署, 就可以基于使用模型提供的ip表征来执行针对ip部件的ppa估计。 设计工具(诸如soc设计工具)向模型提供实际ip块参数值集合。 模型基于ppa模型输入来预测ip块的ppa值。因此,模型根据其逻 辑和物理参数值的组合向量来直接预测ip块的ppa表现。模型之所 以能够做到这一点,是因为在从通过综合运行ip的每个部件而获得 的数据上训练模型,并且在多个参数变化下收集和捕获了ppa。
[0023]
现在参考图5,示出了根据本发明各个方面的用于训练和部署模 型的过程。在步骤500处,系统运行rtl生成来将具有逻辑参数值 的向量的ip块的参数化hdl描述转换为工业标准行为verilog语言。 在步骤502处,系统使用特定物理条件集合来综合来自步骤500的门 极verilog(电路)。在步骤504处,系统捕获时序、功率和面积, 同时压缩端口组之间的时序弧来减小数据大小。时序弧是ip块的每 个输入端口和输出端口之间的延迟。根据一个实施例,该压缩从所有 延迟测量值中选择最长延迟。在步骤506处,系统将从表征运行获得 的可接受数据作为文档存储在nosql数据库中,nosql数据库成为 用于模型后续训练的一个数据点。在步骤508处,系统确定是否需要 处理更多的组合,并且返回步骤800以用于扩大逻辑和物理参数的多 个组合。当已处理了所有组合时,系统移至步骤510。在步骤510处, 系统将非数值参数(诸如标准单元库名称)转换为数值表示。在步骤 512处,系统使用所累积的数据来训练模型。在步骤514处,系统通 过将模型应用于未用于模型训练的测试集来测试被训练模型的准确 性。在步骤516处,如果模型通过测试阶段,则在系统的ip设计工 具下部署模型。
[0024]
在本文中描述和要求保护的物理机器的一些实施例以许多变量 来可编程,这些变量的组合实质上提供了无限多种操作表现。本文中 描述和要求保护的硬件描述语言表示的一些实施例由提供大量参数 的软件工具配置,这些参数的组合实质上提供了所描述和要求保护的 本发明的无限多种物理机器实施例。使用这样的软件工具来配置硬件 描述语言表示的方法体现了所描述和要求保护的发明。物理机器(诸 如半导体芯片)、根据所描述和要求保护的本发明的机器的逻辑或功 能表现的硬件描述语言表示、以及布置为存储这样的硬件描述语言表 示的一个或多个非暂时性计算机可读介质都可以体现本文描述和要 求保护的机器。
[0025]
人与机器中任一个或两者结合的表现、在由一个或多个计算机执 行时将使得一个或多个计算机执行所描述和要求保护的本发明的方 法的指令、以及被布置为存储这样的指令的一个或多个非暂时性计算 机可读介质体现了本文描述和要求保护的方法。实践本文描述和要求 保护的发明所需的多于一个的非暂时性计算机可读介质中的每一个 都单独体现了本发明。
[0026]
另外,意图是不论结构如何,这样的等同物包括当前已知的等同 物和将来开发的等同物(即,所开发的执行相同功能的任何元件)。 因此,本发明的范围不旨在限于在本文
中示出和描述的示例性实施 例。
[0027]
根据本发明的教导,计算机和计算设备是制品。制品的其他示例 包括驻留于主板上的电子部件、服务器、大型计算机或其他专用计算 机,各自具有被配置为执行计算机可读程序代码(例如,算法、硬件、 固件和/或软件)来接收数据、传输数据、存储数据或执行方法的一个 或多个处理器(例如,中央处理单元、图形处理单元或微处理器)。
[0028]
制品(例如,计算机或计算设备)包括非暂时性计算机可读介质 或存储装置,其可以包括一系列指令,诸如计算机可读程序步骤或其 中编码的代码。在本发明的某些方面,非暂时性计算机可读介质包括 一个或多个数据存储库。因此,在根据本发明的任何方面的某些实施 例中,计算机可读程序代码(或代码)被编码在计算设备的非暂时性 计算机可读介质中。处理器或模块进而执行计算机可读程序代码来使 用工具创建或修改现有的计算机辅助设计。本文所使用的术语“模块
”ꢀ
可以指代一个或多个电路、部件、寄存器、处理器、软件子例程或其 任何组合。在实施例的其他方面中,计算机辅助设计的创建或修改被 实现为基于网络的软件应用,其中与计算机辅助设计或工具或计算机 可读程序代码有关的数据部分被接收或传输到主机的计算设备。
[0029]
根据本发明的各个方面的制品或系统以多种方式实现:利用一个 或多个不同的处理器或微处理器、易失性和/或非易失性存储器以及外 围设备或外围控制器;利用具有处理器、本地易失性和非易失性存储 器、外围设备和输入/输出引脚的集成微控制器;实现制品或系统的固 定版本的离散逻辑;以及实现通过本地或远程接口将制品或系统的版 本可重新编程的可编程逻辑。这样的逻辑可以以逻辑或经由处理器执 行的命令集来实现控制系统。
[0030]
因此,前面仅说明了被包含在本发明的各个实施例中的各个方面 和原理。应当理解,本领域普通技术人员将能够设计出尽管本文中没 有明确描述或示出、但是体现了本发明的原理并且被包括在本发明的 精神和范围内的各种布置。此外,本文记载的所有示例和条件语言主 要旨在帮助读者理解本发明的原理和发明人为进一步发展本领域所 做出的构思,并且应解释为不限于这样具体列举的示例和条件。此外, 本文中记载本发明的原理、方面和实施例及其特定示例的所有陈述旨 在涵盖其结构和功能上的等同物。另外,意图是不论结构如何,这样 的等同物包括当前已知的等同物和将来开发的等同物(即,所开发的 执行相同功能的任何元件)。
[0031]
本发明的范围因此并不旨在限于本文所讨论和描述的各个方面 和实施例。相反,本发明的范围和精神由所附权利要求体现。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1