CN119088365A - 一种性能仿真模型构建方法、装置和性能仿真方法 - Google Patents
一种性能仿真模型构建方法、装置和性能仿真方法 Download PDFInfo
- Publication number
- CN119088365A CN119088365A CN202411067018.3A CN202411067018A CN119088365A CN 119088365 A CN119088365 A CN 119088365A CN 202411067018 A CN202411067018 A CN 202411067018A CN 119088365 A CN119088365 A CN 119088365A
- Authority
- CN
- China
- Prior art keywords
- simulation
- information
- access port
- performance simulation
- performance
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/33—Intelligent editors
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及计算机技术领域,公开了一种性能仿真模型构建方法、装置和性能仿真方法,包括:获取用户输入的片上系统性能仿真需求;根据片上系统性能仿真需求所表征的仿真场景信息、执行步骤序列信息、访问端口信息和启动条件信息,生成性能仿真模型的配置信息表;根据配置信息表所表征的各访问端口的接口配置信息和各仿真进程的目标配置信息,生成性能仿真模型的代码框架表;根据代码框架表,自动生成性能仿真模型的标准开发代码,以完成性能仿真模型的构建。通过对用户输入的片上系统性能仿真需求进行一系列的分析和处理,得到代码框架表,最后以代码框架表为依据自动生成性能仿真模型的标准开发代码,提高了性能仿真模型的创建效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种性能仿真模型构建方法、装置、电子设备和性能仿真方法。
背景技术
目前,片上系统(System on Chip,简称:SoC)在开发过程中,为了确保设计的SoC性能能够满足用户要求,将在对SoC进行寄存器转换级电路(事务级建模,简称:RTL)设计之前,进行深入的系统级仿真,以确认设计的体系架构是否恰当、总线是否能够满足吞吐量和实时性要求以及存储器是否被浪费。
在相关技术中,通常是采用人工编辑代码的方式,通过分析SoC的性能仿真需求,创建该SoC的性能仿真模型,降低了性能仿真模型的创建效率。
发明内容
本申请提供一种性能仿真模型构建方法、装置和性能仿真方法,以解决相关技术降低了性能仿真模型的创建效率等缺陷。
本申请第一个方面提供一种性能仿真模型构建方法,包括:
获取用户输入的片上系统性能仿真需求;
根据所述片上系统性能仿真需求所表征的仿真场景信息、执行步骤序列信息、访问端口信息和启动条件信息,生成性能仿真模型的配置信息表;
根据所述配置信息表所表征的各访问端口的接口配置信息和各仿真进程的目标配置信息,生成所述性能仿真模型的代码框架表;
基于预设代码生成工具,根据所述代码框架表,自动生成所述性能仿真模型的标准开发代码,以完成所述性能仿真模型的构建。
在一种可选的实施方式中,所述根据所述配置信息表所表征的各访问端口的接口配置信息和各仿真进程的目标配置信息,生成所述性能仿真模型的代码框架表,包括:
针对所述仿真场景信息表征的任一目标仿真场景,根据所述配置信息表所表征的在所述目标仿真场景下的执行步骤序列信息、访问端口信息和启动条件信息,确定每个仿真步骤与访问端口之间的接口配置关系;
根据所述目标仿真场景下所述执行步骤序列信息表征的每个仿真步骤的执行顺序和每个仿真步骤与访问端口之间的接口配置关系,确定各所述访问端口的接口配置信息;
根据所述目标仿真场景下每个仿真步骤之间的耦合关系,将所述仿真步骤划分为串行仿真步骤和并行仿真步骤;
将各所述串行仿真步骤作为一个独立的仿真进程,将多个所述并行仿真步骤联和作为一个独立的仿真进程;
根据各所述仿真进程与各所述仿真步骤之间的对应关系、每个仿真步骤与访问端口之间的接口配置关系以及各所述访问端口的接口配置信息,确定各所述仿真进程的目标配置信息;
根据各所述访问端口的接口配置信息和各所述仿真进程的目标配置信息,确定所述性能仿真模型在所述目标仿真场景下的代码框架表;
其中,所述访问端口的接口配置信息至少包括访问端口响应接口的事件触发信息,所述仿真进程的目标配置信息至少包括所述仿真进程的事件敏感信息和端口调用信息。
在一种可选的实施方式中,所述根据所述配置信息表所表征的在所述目标仿真场景下的执行步骤序列信息、访问端口信息和启动条件信息,确定每个仿真步骤与访问端口之间的接口配置关系,包括:
根据所述配置信息表所表征的在所述目标仿真场景下的执行步骤序列信息,确定所述目标仿真场景下每个仿真步骤的执行顺序;
根据每个仿真步骤的执行顺序和所述访问端口信息表征的各所述仿真步骤需调用的访问端口,确定各访问端口的调用顺序;
根据所述启动条件信息,确定访问端口响应接口的事件触发信息;
根据每个仿真步骤的执行顺序、各访问端口的调用顺序及访问端口响应接口的事件触发信息,确定每个仿真步骤与访问端口之间的接口配置关系。
在一种可选的实施方式中,所述根据各所述仿真进程与各所述仿真步骤之间的对应关系、每个仿真步骤与访问端口之间的接口配置关系以及各所述访问端口的接口配置信息,确定各所述仿真进程的目标配置信息,包括:
根据各所述仿真进程与各所述仿真步骤之间的对应关系,确定每个所述仿真进程的内部功能和各所述仿真进程的事件敏感信息;
根据每个仿真步骤与访问端口之间的接口配置关系,确定各所述仿真进程的端口调用信息;
根据各所述仿真进程的内部功能、事件敏感信息和端口调用信息,确定各所述仿真进程的目标配置信息。
在一种可选的实施方式中,所述方法还包括:
获取各所述仿真步骤的目标间隔时间;
根据各所述仿真步骤的目标间隔时间和各所述仿真步骤需调用的访问端口,确定所述访问端口响应接口的事件触发延时时间;
其中,所述访问端口响应接口的事件触发信息包括所述事件触发延时时间。
在一种可选的实施方式中,在完成所述性能仿真模型的构建之后,所述方法还包括:
获取用户输入的新增性能仿真需求;
根据所述新增性能仿真需求,生成模型扩展代码;
基于所述模型扩展代码,优化所述性能仿真模型,以使所述性能仿真模型扩展的仿真场景。
本申请第二个方面提供一种性能仿真模型构建装置,包括:
获取模块,用于获取用户输入的片上系统性能仿真需求;
第一生成模块,用于根据所述片上系统性能仿真需求所表征的仿真场景信息、执行步骤序列信息、访问端口信息和启动条件信息,生成性能仿真模型的配置信息表;
第二生成模块,用于根据所述配置信息表所表征的各访问端口的接口配置信息和各仿真进程的目标配置信息,生成所述性能仿真模型的代码框架表;
构建模块,用于基于预设代码生成工具,根据所述代码框架表,自动生成所述性能仿真模型的标准开发代码,以完成所述性能仿真模型的构建。
本申请第三个方面提供一种性能仿真方法,包括:
获取待测片上系统的待仿真场景;
根据所述待仿真场景,生成所述待测片上系统的性能仿真指令;
将所述性能仿真指令输入至采用如上第一个方面以及第一个方面各种可能的设计所述的方法所构建的性能仿真模型,以基于所述性能仿真模型进行所述待测片上系统在所述待仿真场景下的性能仿真,得到所述待测片上系统的性能仿真结果。
本申请第四个方面提供一种电子设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一个方面以及第一个方面各种可能的设计所述的方法或如上第三个方面以及第三个方面各种可能的设计所述的方法。
本申请第五个方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一个方面以及第一个方面各种可能的设计所述的方法或如上第三个方面以及第三个方面各种可能的设计所述的方法。
本申请第六个方面提供一种计算机程序产品,包括计算机指令,计算机指令用于使计算机执行如上第一个方面以及第一个方面各种可能的设计所述的方法或如上第三个方面以及第三个方面各种可能的设计所述的方法。
本申请技术方案,具有如下优点:
本申请提供一种性能仿真模型构建方法、装置和性能仿真方法,该性能仿真模型构建方法包括:获取用户输入的片上系统性能仿真需求;根据片上系统性能仿真需求所表征的仿真场景信息、执行步骤序列信息、访问端口信息和启动条件信息,生成性能仿真模型的配置信息表;根据配置信息表所表征的各访问端口的接口配置信息和各仿真进程的目标配置信息,生成性能仿真模型的代码框架表;基于预设代码生成工具,根据代码框架表,自动生成性能仿真模型的标准开发代码,以完成性能仿真模型的构建。上述方案提供的方法,通过对用户输入的片上系统性能仿真需求进行一系列的分析和处理,得到代码框架表,最后以代码框架表为依据自动生成性能仿真模型的标准开发代码,提高了性能仿真模型的创建效率。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请实施例基于的性能仿真模型构建系统的结构示意图;
图2为本申请实施例提供的性能仿真模型构建方法的流程示意图;
图3为本申请实施例提供的片上系统性能仿真需求的获取流程示意图;
图4为本申请实施例提供的性能仿真模型构建装置的结构示意图;
图5为本申请实施例提供的示例性的性能仿真模型构建装置的结构示意图;
图6为本申请实施例提供的性能仿真模型构建方法的流程示意图;
图7为本申请实施例提供的电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在以下各实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
在相关技术中,SoC的设计之难源于其复杂性,复杂性催生SystemC和电子系统级设计(ESL)方法学,事务处理级建模是电子系统级设计的关键。对于复杂的SoC,在进行RTL设计前需要进行深入的系统级仿真,以确认设计的体系架构是否恰当、总线是否能够满足吞吐量和实时性要求以及存储器是否被浪费。为了缩短SoC关键IP的设计周期并辅助设计过程,同时为了缩短从系统架构设计到硬件RTL电路实现之间的鸿沟,需采用一种建模方法学对整个电路系统的功能、架构进行描述,同时又不陷入硬件电路繁杂的信号时序、门电路之中,因此ESL(Electronic System Level)电子系统级设计应运而生。采用ESL设计方法学在合适的抽象层次描述系统,构造一个虚拟的硬件原型平台,进行硬件架构的探索和软件程序的开发,实现快速的系统建模和仿真分析。ESL的核心是TLM,即事务级建模(Transaction Level Modeling,简称:TLM)方法。
随着未来通信终端和设备的计算复杂度的增大,实时复杂系统芯片的集成规模需求将迅速增长,一块芯片上可能会集成数十个或成百上千的处理单元,基于多核的信号处理平台成为软件无线电的发展趋势。在这样的综合化系统中,设计可靠、高速、低功耗的高性能芯片内通信体系成为片上系统(System on Chip,SoC)发展的挑战与机遇。存储类芯片的关键性能指标包括响应延迟、吞吐量、最大并发连接数、系统可靠性等等,快速、准确的搭建性能模型,对架构设计的性能指标进行定量的评估和分析,是一个至关重要的技术。
在性能模型搭建的过程中,最广泛应用的是搭建事务级模型,事务级的抽象层次高于RTL级,可以根据系统的初始功能规范快速建立硬件的可执行规范、快速创建系统模型。通过在其中加入时序细节,可以评估系统的性能、探索系统的结构。事务级模型建模更快速,仿真更高效。如何快速准确的以用户的需求为输入,搭建出TLM模型或者部件(整个模块中的部分核心功能块),是一个亟待解决的问题。
传统的开发手段以用户的需求为输入,逐步进行需求分析、模型方案设计、模型编码、代码调试等正向开发流程,开发周期较长,效率较低;特别是模型包括多个功能模块,每个功能模块在具体实现时每个步骤之间有一定执行规律时,采用传统方法将编辑大量的冗余代码,也就无法实现快速建模和评估。
针对上述问题,本申请实施例提供一种性能仿真模型构建方法、装置和性能仿真方法,该性能仿真模型构建方法包括:获取用户输入的片上系统性能仿真需求;根据片上系统性能仿真需求所表征的仿真场景信息、执行步骤序列信息、访问端口信息和启动条件信息,生成性能仿真模型的配置信息表;根据配置信息表所表征的各访问端口的接口配置信息和各仿真进程的目标配置信息,生成性能仿真模型的代码框架表;基于预设代码生成工具,根据代码框架表,自动生成性能仿真模型的标准开发代码,以完成性能仿真模型的构建。上述方案提供的方法,通过对用户输入的片上系统性能仿真需求进行一系列的分析和处理,得到代码框架表,最后以代码框架表为依据自动生成性能仿真模型的标准开发代码,提高了性能仿真模型的创建效率。
下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明实施例进行描述。
首先,对本申请所基于的性能仿真模型构建系统的结构进行说明:
本申请实施例提供的性能仿真模型构建方法、装置和性能仿真方法,适用于快速构建SoC等芯片的性能仿真模型。如图1所示,为本申请实施例基于的性能仿真模型构建系统的结构示意图,主要包括数据采集设备和性能仿真模型构建设备,该性能仿真模型构建设备中设有性能仿真模型构建装置。数据采集设备用于采集用户输入的片上系统性能仿真需求,并将采集到的片上系统性能仿真需求发送至性能仿真模型构建设备,性能仿真模型构建设备基于性能仿真模型构建装置,根据片上系统性能仿真需求,快速构建对应的性能仿真模型。
本申请实施例提供了一种性能仿真模型构建方法,用于快速构建SoC等芯片的性能仿真模型。本申请实施例的执行主体为电子设备,比如服务器、台式电脑、笔记本电脑、平板电脑及其他可用于快速构建SoC等芯片的性能仿真模型的电子设备。
如图2所示,为本申请实施例提供的性能仿真模型构建方法的流程示意图,该方法包括:
步骤201,获取用户输入的片上系统性能仿真需求。
其中,如图3所示,为本申请实施例提供的片上系统性能仿真需求的获取流程示意图,用户依次输入模型部件内待自动生成的执行步骤序列、每个步骤的启动条件、每两个步骤之间期望的时间间隔、每个步骤对外通信的对应端口。
步骤202,根据片上系统性能仿真需求所表征的仿真场景信息、执行步骤序列信息、访问端口信息和启动条件信息,生成性能仿真模型的配置信息表。
其中,片上系统性能仿真需求包括仿真场景信息、执行步骤序列信息、访问端口信息和启动条件信息,也可以包括各仿真步骤的目标间隔时间。
具体地,在得到用户输入的片上系统性能仿真需求,首先对片上系统性能仿真需求进行数据分析,然后将经过数据分析的系统性能仿真需求写入预设配置信息表模板,以得到性能仿真模型的配置信息表。
示例性的,本申请实施例提供如下示例性的配置信息表:
其中,仿真场景具体指片上系统在实际应用中的场景,如片上系统SoC芯片作为加速卡等。外部模块可以为主机端、外部磁盘、数据处理设备和片上缓存器等,数据处理设备可以为CPU和GPU等设备。done标志为完成标识,ack标识为响应标识,响应标志是本模块将请求发送到总线上收到总线返回的响应状态;完成标志是本模块将请求发送到目标端模块,收到来自目标端的响应状态,请求在传输的路径上可以跨越多级总线。
步骤203,根据配置信息表所表征的各访问端口的接口配置信息和各仿真进程的目标配置信息,生成性能仿真模型的代码框架表。
具体地,通过对配置信息表进行分析,根据分析结果表征的各访问端口的接口配置信息和各仿真进程的目标配置信息,生成TLM模型部件的框架表,即得到性能仿真模型的代码框架表。
步骤204,基于预设代码生成工具,根据代码框架表,自动生成性能仿真模型的标准开发代码,以完成性能仿真模型的构建。
具体地,可以由脚本(预设代码生成工具)实现将输入的TLM模型部件的框架表格和标准SystemC代码进行翻译和对应的过程,最终输出可运行的TLM部件的标准SystemC代码,以完成性能仿真模型的构建。
在上述实施例的基础上,由于配置信息表包括的内容种类繁多且无法直观地看出步骤间的规律,为实现对配置表进行更充分合理的数据分析,以提高后续生成的代码框架表的准确性和简练程度,为进一步提高模型搭建效率奠定基础,作为一种可实施的方式,在上述实施例的基础上,在一实施例中,根据配置信息表所表征的各访问端口的接口配置信息和各仿真进程的目标配置信息,生成性能仿真模型的代码框架表,包括:
步骤2031,针对仿真场景信息表征的任一目标仿真场景,根据配置信息表所表征的在目标仿真场景下的执行步骤序列信息、访问端口信息和启动条件信息,确定每个仿真步骤与访问端口之间的接口配置关系;
步骤2032,根据目标仿真场景下执行步骤序列信息表征的每个仿真步骤的执行顺序和每个仿真步骤与访问端口之间的接口配置关系,确定各访问端口的接口配置信息;
步骤2033,根据目标仿真场景下每个仿真步骤之间的耦合关系,将仿真步骤划分为串行仿真步骤和并行仿真步骤;
步骤2034,将各串行仿真步骤作为一个独立的仿真进程,将多个并行仿真步骤联和作为一个独立的仿真进程;
步骤2035,根据各仿真进程与各仿真步骤之间的对应关系、每个仿真步骤与访问端口之间的接口配置关系以及各访问端口的接口配置信息,确定各仿真进程的目标配置信息;
步骤2036,根据各访问端口的接口配置信息和各仿真进程的目标配置信息,确定性能仿真模型在目标仿真场景下的代码框架表。
其中,访问端口的接口配置信息至少包括访问端口响应接口的事件触发信息,仿真进程的目标配置信息至少包括仿真进程的事件敏感信息和端口调用信息。
需要说明的是,访问端口为物理端口,访问端口支持多种接口,每种接口对应不同的通信协议,例如接收(slave)端口的响应接口,当接收端口有请求到来时进入到该接口中;发送(master)端口的响应接口,当发送端口有请求发一段时间后的响应信息时进入该接口中;发送(master)端口的调用接口,当发送端口有发送请求时进入到该接口中。每个仿真步骤与访问端口之间的接口配置关系即为每个访问步骤在采用该访问端口时具体利用哪种接口配置。
本申请实施例提供如下示例性的代码框架表:
具体地,在一实施例中,可以根据配置信息表所表征的在目标仿真场景下的执行步骤序列信息,确定目标仿真场景下每个仿真步骤的执行顺序;根据每个仿真步骤的执行顺序和访问端口信息表征的各仿真步骤需调用的访问端口,确定各访问端口的调用顺序;根据启动条件信息,确定访问端口响应接口的事件触发信息;根据每个仿真步骤的执行顺序、各访问端口的调用顺序及访问端口响应接口的事件触发信息,确定每个仿真步骤与访问端口之间的接口配置关系。
具体地,在一实施例中,还可以响应于用户的仿真需求,获取各仿真步骤的目标间隔时间;根据各仿真步骤的目标间隔时间和各仿真步骤需调用的访问端口,确定访问端口响应接口的事件触发延时时间。
其中,访问端口响应接口的事件触发信息包括事件触发延时时间。
其中,接口配置关系具体可以通过封装端口注册的接口的方式表示:
slave port 0--注册响应接口--在场景1下触发事件a,在场景2下触发事件a’;
master port0--注册响应接口,定义发送接口--在响应接口内触发事件b;
master port1--注册响应接口,定义发送接口--在响应接口内触发事件c;
master port2--注册响应接口,定义发送接口--在响应接口内触发事件d;
master port3--注册响应接口,定义发送接口--在响应接口内触发事件e。
其中,每个仿真步骤的执行通过触发事件来触发,即当需要执行某个仿真步骤时,则先触发对应的事件,以基于当前触发的事件去进一步触发对应的仿真步骤。
具体地,在一实施例中,可以根据各仿真进程与各仿真步骤之间的对应关系,确定每个仿真进程的内部功能和各仿真进程的事件敏感信息;根据每个仿真步骤与访问端口之间的接口配置关系,确定各仿真进程的端口调用信息;根据各仿真进程的内部功能、事件敏感信息和端口调用信息,确定各仿真进程的目标配置信息。
具体地,每级流水线对应一个SystemC进程(仿真进程),可以在同一级流水线中完成的步骤(即可以在同一个进程中执行的步骤)是指连续几个步骤且这几个步骤之间的关系都为前一个步骤执行完返回响应标志后一个步骤开始执行。必须在不同级流水线中完成的步骤(即必须在不同进程中执行的步骤)是指连续两个步骤且这两个步骤之间的关系为前一个步骤返回完成标志关系;或者连续几个步骤,且每两个步骤之间的关系都为前一个步骤返回完成标志关系,或者前面几个步骤完成的组合条件且这几个条件中至少有一个返回完成标志。由于连续两个步骤且相互影响仅为ack关系的可以在同一级流水线实现,对应一个进程;连续两个步骤且相互影响仅为done关系的不能在同一级流水线实现,分别对应多个进程。
分析场景:场景1下可以在同一级流水线实现的步骤为步骤2和步骤3;场景1下有3级流水线:步骤1、步骤2和步骤3、步骤4;对应3个进程;场景2下有2级流水线:步骤1、步骤2;对应2个进程;进一步对比步骤的内容,发现步骤1处理一致,进程可以合并;即将各串行仿真步骤作为一个独立的仿真进程,将多个并行仿真步骤联和作为一个独立的仿真进程。
因此上述配置信息表所描述的TLM部件内部总共需要4个仿真进程,分别定义如下:
进程1:从外部模块A读取数据struct aa;
进程2:向外部模块B写数据struct bb,向外部模块C写数据struct cc;
进程3:向外部模块D写数据struct dd;
进程4:从外部模块E读取数据struct ee;
进一步地,分析每个进程的触发条件,在接收端口的响应接口或者发送端口的响应接口中,会触发相应的事件,事件触发时可以添加延时信息,即从当前时刻开始,延时一段时间后触发事件;进程的触发条件为某个事件发生、或某几个事件同时发生、或者某几个事件已某种逻辑组合发生。将每一步完成后的ack标志和done标志实现为事件;
根据配置表中的描述,进程敏感的事件对应关系如下:
进程1:从外部模块A读取数据struct aa;--敏感于事件a;
进程2:向外部模块B写数据struct bb,向外部模块C写数据struct cc;--敏感于事件b;
进程3:向外部模块D写数据struct dd;--敏感于事件c&&事件d;
进程4:从外部模块E读取数据struct ee;--敏感于事件a’。
进一步地,分析每个进程执行时调用的接口方法:
进程1:从外部模块A读取数据struct aa;--内部调用master port 0发送接口;
进程2:向外部模块B写数据struct bb,向外部模块C写数据struct cc;--内部调用master port1和2发送接口;
进程3:向外部模块D写数据struct dd;--内部调用master port 3发送接口;
进程4:从外部模块E读取数据struct ee;--内部调用master port 4发送接口。
进一步地,在得到性能仿真模型的代码框架表后,具体的代码翻译过程包括:事件定义、端口定义、接收端口注册相应接口、发送端口注册相应接口、发送端口定义发送接口、进程定义和注册、进程触发条件定义(即进程的敏感表定义)和进程实现等,具体翻译内容如下。
(1)事件定义
定义事件类型为sc_event事件名;
sc_event event_a,event_a’;
sc_event event_b;
sc_event event_c;
sc_event event_d;
(2)端口定义
发送端口定义:simple_initiator_socket master_port0,master_port1,master_port2,master_port3,
接收端口定义:simple_target_socket slave_port0;
(3)接口方法定义
接收端口注册响应接口:
slave_port.register_nb_transport_fw(..module,slave_port_response_func);
发送端口注册响应接口:
master_port0.register_nb_transport_bw(..module,master_port_0_response_func);
master_port1.register_nb_transport_bw(..module,master_port_1_response_func);
master_port2.register_nb_transport_bw(..module,master_port_2_response_func);
master_port3.register_nb_transport_bw(..module,master_port_3_response_func);
发送端口定义发送接口:
在slave_port_response_func()内部,实现触发事件,在场景1下触发事件a的延时时间t1,在场景2下触发事件a’延时时间t1’
代码如下:
(4)进程定义和注册
以进程1为例,实现功能为从外部模块A读取数据struct aa,定义和注册如下:
SC_THREAD(read_data_from_module_a_thread)
(5)进程触发条件定义,即进程的敏感表定义:
以进程1为例,
SC_THREAD(read_data_from_module_a_thread)
sensitive<<event_a;
(6)进程实现代码
以进程1为例,
进一步地,在一实施例中,还可以在完成性能仿真模型的构建之后,获取用户输入的新增性能仿真需求;根据新增性能仿真需求,生成模型扩展代码;基于模型扩展代码,优化性能仿真模型,以使性能仿真模型扩展的仿真场景。
需要说明的是,本申请实施例构建的性能仿真模型是通过在各种仿真场景下进行特定的数据读写操作,根据读数据写操作结果表征的吞吐量、响应时延、读写速度和IOPS等指标,确定待测片上系统的性能仿真结果。然而由于片上系统的应用场景多种多样,为了能够使构建的性能仿真模型适用于更多场景,本申请实施例提供的方法还实现模型仿真场景的扩展。
其中,模型扩展代码的具体生成方式可以参见上述实施例提供的任一目标仿真场景下的模型代码自动生成,在此不再赘述。
进一步地,在一实施例中,还可以在完成性能仿真模型的构建之后,为了保证生成的性能仿真模型可以长期稳定地运行,可以对性能仿真模型进行代码安全检查,具体的代码安全检查方式包括语法和语义检查、代码规范检查、单元测试和集成测试。
具体地,针对语法和语义检查,可以使用合适的编程语言编译器或解释器对生成的代码进行语法检查,确保代码符合语言的语法规则。同时,进行语义检查,确保代码的逻辑和语义是合理的,没有明显的错误或不一致之处。针对代码规范检查,可以制定一套代码规范,并使用相应的工具对生成的代码进行检查,确保代码符合规范要求。这包括代码的格式、命名规范、注释规范等方面,有助于提高代码的可读性和可维护性。针对单元测试,可以编写单元测试用例,对模型中的各个功能模块进行单独测试。通过测试可以验证代码的功能是否正确,是否满足预期的行为。单元测试可以帮助发现代码中的逻辑错误、边界情况和异常处理等方面的问题。针对集成测试,可以在单元测试的基础上,进行集成测试,将各个功能模块组合在一起进行测试,验证它们之间的交互和协作是否正常。集成测试可以发现模块之间的接口问题和集成后的系统性能问题。
本申请实施例提供的性能仿真模型构建方法,通过获取用户输入的片上系统性能仿真需求;根据片上系统性能仿真需求所表征的仿真场景信息、执行步骤序列信息、访问端口信息和启动条件信息,生成性能仿真模型的配置信息表;根据配置信息表所表征的各访问端口的接口配置信息和各仿真进程的目标配置信息,生成性能仿真模型的代码框架表;基于预设代码生成工具,根据代码框架表,自动生成性能仿真模型的标准开发代码,以完成性能仿真模型的构建。上述方案提供的方法,通过对用户输入的片上系统性能仿真需求进行一系列的分析和处理,得到代码框架表,最后以代码框架表为依据自动生成性能仿真模型的标准开发代码,提高了性能仿真模型的创建效率。并且,由于分析过程和代码生成过程全是自动化,因此代码的正确率也有很好的保障。并且,能够支持在不同的系统场景下,生成不同的步骤执行序列,应用较为灵活,且具有可扩展性,支持在现有的模型框架基础上,添加新的场景输入信息,执行自动化流程即可。
本申请实施例提供了一种性能仿真模型构建装置,用于执行上述实施例提供的性能仿真模型构建方法。
如图4所示,为本申请实施例提供的性能仿真模型构建装置的结构示意图。该性能仿真模型构建装置40包括:获取模块401、第一生成模块402、第二生成模块403和构建模块404。
其中,获取模块,用于获取用户输入的片上系统性能仿真需求;第一生成模块,用于根据片上系统性能仿真需求所表征的仿真场景信息、执行步骤序列信息、访问端口信息和启动条件信息,生成性能仿真模型的配置信息表;第二生成模块,用于根据配置信息表所表征的各访问端口的接口配置信息和各仿真进程的目标配置信息,生成性能仿真模型的代码框架表;构建模块,用于基于预设代码生成工具,根据代码框架表,自动生成性能仿真模型的标准开发代码,以完成性能仿真模型的构建。
其中,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。如图5所示,为本申请实施例提供的示例性的性能仿真模型构建装置的结构示意图,如图5所示的装置包括执行步骤信息输入模块、执行序列分析模块和SystemC代码生成模块,如图5所示的装置为如图4所示的装置的一种示例性的实施方式,二者实现原理相同,不再赘述。
关于本实施例中的性能仿真模型构建装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本申请实施例提供的性能仿真模型构建装置,用于执行上述实施例提供的性能仿真模型构建方法,其实现方式与原理相同,不再赘述。
本申请实施例提供了一种性能仿真方法,用于对SoC等芯片进行性能仿真。本申请实施例的执行主体为电子设备,比如服务器、台式电脑、笔记本电脑、平板电脑及其他可用于对SoC等芯片进行性能仿真的电子设备。
如图6所示,为本申请实施例提供的性能仿真模型构建方法的流程示意图,该方法包括:
步骤601,获取待测片上系统的待仿真场景;
步骤602,根据待仿真场景,生成待测片上系统的性能仿真指令;
步骤603,将性能仿真指令输入至性能仿真模型,以基于性能仿真模型进行待测片上系统在待仿真场景下的性能仿真,得到待测片上系统的性能仿真结果。
关于本实施例中的性能仿真方法,其中各个步骤的具体实施方式已经在有关该性能仿真模型构建方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本申请实施例提供的性能仿真装置,用于执行上述实施例提供的性能仿真模型的应用方法,其实现方式与原理相同,不再赘述。
本申请实施例提供了一种电子设备,用于执行上述实施例提供的性能仿真模型构建方法。
如图7所示,为本申请实施例提供的电子设备的结构示意图。该电子设备70包括:至少一个处理器71和存储器72。
存储器存储计算机执行指令;至少一个处理器执行存储器存储的计算机执行指令,使得至少一个处理器执行如上实施例提供的方法。
本申请实施例提供的电子设备,用于执行上述实施例提供的方法,其实现方式与原理相同,不再赘述。
本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现如上任一实施例提供的方法。
本申请实施例提供的包含计算机可执行指令的存储介质,可用于存储前述实施例中提供的方法的计算机执行指令,其实现方式与原理相同,不再赘述。
本申请实施例提供了一种计算机程序产品,包括计算机指令,计算机指令用于使计算机执行前述实施例中提供的方法。
本申请实施例提供的包含计算机程序产品,可用于执行前述实施例中提供的方法的计算机指令,其实现方式与原理相同,不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。本领域技术人员应能理解,计算机程序指令在计算机可读介质中的存在形式包括但不限于源文件、可执行文件、安装包文件等,相应地,计算机程序指令被计算机执行的方式包括但不限于:该计算机直接执行该指令,或者该计算机编译该指令后再执行对应的编译后程序,或者该计算机读取并执行该指令,或者该计算机读取并安装该指令后再执行对应的安装后程序。在此,计算机可读介质可以是可供计算机访问的任意可用的计算机可读存储介质或通信介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种性能仿真模型构建方法,其特征在于,包括:
获取用户输入的片上系统性能仿真需求;
根据所述片上系统性能仿真需求所表征的仿真场景信息、执行步骤序列信息、访问端口信息和启动条件信息,生成性能仿真模型的配置信息表;
根据所述配置信息表所表征的各访问端口的接口配置信息和各仿真进程的目标配置信息,生成所述性能仿真模型的代码框架表;
基于预设代码生成工具,根据所述代码框架表,自动生成所述性能仿真模型的标准开发代码,以完成所述性能仿真模型的构建。
2.根据权利要求1所述的方法,其特征在于,所述根据所述配置信息表所表征的各访问端口的接口配置信息和各仿真进程的目标配置信息,生成所述性能仿真模型的代码框架表,包括:
针对所述仿真场景信息表征的任一目标仿真场景,根据所述配置信息表所表征的在所述目标仿真场景下的执行步骤序列信息、访问端口信息和启动条件信息,确定每个仿真步骤与访问端口之间的接口配置关系;
根据所述目标仿真场景下所述执行步骤序列信息表征的每个仿真步骤的执行顺序和每个仿真步骤与访问端口之间的接口配置关系,确定各所述访问端口的接口配置信息;
根据所述目标仿真场景下每个仿真步骤之间的耦合关系,将所述仿真步骤划分为串行仿真步骤和并行仿真步骤;
将各所述串行仿真步骤作为一个独立的仿真进程,将多个所述并行仿真步骤联和作为一个独立的仿真进程;
根据各所述仿真进程与各所述仿真步骤之间的对应关系、每个仿真步骤与访问端口之间的接口配置关系以及各所述访问端口的接口配置信息,确定各所述仿真进程的目标配置信息;
根据各所述访问端口的接口配置信息和各所述仿真进程的目标配置信息,确定所述性能仿真模型在所述目标仿真场景下的代码框架表;
其中,所述访问端口的接口配置信息至少包括访问端口响应接口的事件触发信息,所述仿真进程的目标配置信息至少包括所述仿真进程的事件敏感信息和端口调用信息。
3.根据权利要求2所述的方法,其特征在于,所述根据所述配置信息表所表征的在所述目标仿真场景下的执行步骤序列信息、访问端口信息和启动条件信息,确定每个仿真步骤与访问端口之间的接口配置关系,包括:
根据所述配置信息表所表征的在所述目标仿真场景下的执行步骤序列信息,确定所述目标仿真场景下每个仿真步骤的执行顺序;
根据每个仿真步骤的执行顺序和所述访问端口信息表征的各所述仿真步骤需调用的访问端口,确定各访问端口的调用顺序;
根据所述启动条件信息,确定访问端口响应接口的事件触发信息;
根据每个仿真步骤的执行顺序、各访问端口的调用顺序及访问端口响应接口的事件触发信息,确定每个仿真步骤与访问端口之间的接口配置关系。
4.根据权利要求2所述的方法,其特征在于,所述根据各所述仿真进程与各所述仿真步骤之间的对应关系、每个仿真步骤与访问端口之间的接口配置关系以及各所述访问端口的接口配置信息,确定各所述仿真进程的目标配置信息,包括:
根据各所述仿真进程与各所述仿真步骤之间的对应关系,确定每个所述仿真进程的内部功能和各所述仿真进程的事件敏感信息;
根据每个仿真步骤与访问端口之间的接口配置关系,确定各所述仿真进程的端口调用信息;
根据各所述仿真进程的内部功能、事件敏感信息和端口调用信息,确定各所述仿真进程的目标配置信息。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
获取各所述仿真步骤的目标间隔时间;
根据各所述仿真步骤的目标间隔时间和各所述仿真步骤需调用的访问端口,确定所述访问端口响应接口的事件触发延时时间;
其中,所述访问端口响应接口的事件触发信息包括所述事件触发延时时间。
6.根据权利要求1所述的方法,其特征在于,在完成所述性能仿真模型的构建之后,所述方法还包括:
获取用户输入的新增性能仿真需求;
根据所述新增性能仿真需求,生成模型扩展代码;
基于所述模型扩展代码,优化所述性能仿真模型,以使所述性能仿真模型扩展的仿真场景。
7.一种性能仿真模型构建装置,其特征在于,包括:
获取模块,用于获取用户输入的片上系统性能仿真需求;
第一生成模块,用于根据所述片上系统性能仿真需求所表征的仿真场景信息、执行步骤序列信息、访问端口信息和启动条件信息,生成性能仿真模型的配置信息表;
第二生成模块,用于根据所述配置信息表所表征的各访问端口的接口配置信息和各仿真进程的目标配置信息,生成所述性能仿真模型的代码框架表;
构建模块,用于基于预设代码生成工具,根据所述代码框架表,自动生成所述性能仿真模型的标准开发代码,以完成所述性能仿真模型的构建。
8.一种性能仿真方法,其特征在于,包括:
获取待测片上系统的待仿真场景;
根据所述待仿真场景,生成所述待测片上系统的性能仿真指令;
将所述性能仿真指令输入至采用如权利要求1至6任一项所述的性能仿真模型构建方法所构建的性能仿真模型,以基于所述性能仿真模型进行所述待测片上系统在所述待仿真场景下的性能仿真,得到所述待测片上系统的性能仿真结果。
9.一种电子设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1至6任一项所述的性能仿真模型构建方法或如权利要求8所述的性能仿真方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至6任一项所述的方法或如权利要求8所述的性能仿真方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202411067018.3A CN119088365A (zh) | 2024-08-05 | 2024-08-05 | 一种性能仿真模型构建方法、装置和性能仿真方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202411067018.3A CN119088365A (zh) | 2024-08-05 | 2024-08-05 | 一种性能仿真模型构建方法、装置和性能仿真方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN119088365A true CN119088365A (zh) | 2024-12-06 |
Family
ID=93696571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202411067018.3A Pending CN119088365A (zh) | 2024-08-05 | 2024-08-05 | 一种性能仿真模型构建方法、装置和性能仿真方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN119088365A (zh) |
-
2024
- 2024-08-05 CN CN202411067018.3A patent/CN119088365A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102508753B (zh) | Ip核验证系统 | |
CN115841089A (zh) | 一种基于uvm的系统级芯片验证平台及验证方法 | |
TWI837026B (zh) | 驗證系統、驗證方法、電子設備以及儲存媒體 | |
US20070156378A1 (en) | System and method for verification aware synthesis | |
US7472361B2 (en) | System and method for generating a plurality of models at different levels of abstraction from a single master model | |
CN115952758B (zh) | 芯片验证方法、装置、电子设备及存储介质 | |
CN112613257A (zh) | 验证方法、装置、电子设备和计算机可读存储介质 | |
CN118571297B (zh) | 一种存储电路的验证方法及计算设备 | |
CN102184290B (zh) | 嵌入式微处理器的周期精确和位精确系统级模型构建方法 | |
CN114841103B (zh) | 门级电路的并行仿真方法、系统、存储介质及设备 | |
CN115858336A (zh) | 测试向量生成方法及装置、计算设备和存储介质 | |
CN115658414A (zh) | 基于risc-v架构处理器核的功能验证方法及平台 | |
CN118536445B (zh) | 一种用于芯片仿真的方法和计算设备 | |
CN116933699A (zh) | 用于生成和存储电路仿真过程中的波形数据的方法、电子设备和存储介质 | |
CN117112447B (zh) | 一种数据传输方法、装置、电子设备及可读存储介质 | |
US7437282B2 (en) | Method and apparatus to provide alternative stimulus to signals internal to a model actively running on a logic simulation hardware emulator | |
CN119088365A (zh) | 一种性能仿真模型构建方法、装置和性能仿真方法 | |
US7496869B1 (en) | Method and apparatus for implementing a program language description of a circuit design for an integrated circuit | |
CN116306392A (zh) | 芯片仿真装置、方法、电子设备和存储介质 | |
CN115732025A (zh) | Ram访问冲突的验证方法及验证装置 | |
TWI427496B (zh) | 製造積體電路的模型的方法和系統 | |
CN116048952A (zh) | 一种基于可裁剪ip的实例化模块仿真验证方法及装置 | |
JP2013020425A (ja) | オープンソースソフトウェアを利用したハードウェア・ソフトウェア協調検証方法 | |
CN118297009B (zh) | 一种基于内嵌仿真验证的逻辑综合处理方法、装置及计算机可读存储介质 | |
US20190012418A1 (en) | Simulation program, method, and device |
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 |