一种芯片的性能验证方法、装置、电子设备及存储介质与流程

摘要: 本发明涉及集成电路,尤其涉及一种芯片的性能验证方法、装置、电子设备及存储介质。背景技术:1、处理器是计算机的核心部件,处理器的性能的高低将直接影响计算机性能。为...
一种芯片的性能验证方法、装置、电子设备及存储介质与流程

本发明涉及集成电路,尤其涉及一种芯片的性能验证方法、装置、电子设备及存储介质。

背景技术:

1、处理器是计算机的核心部件,处理器的性能的高低将直接影响计算机性能。为了使处理器的设计能够达到预期的性能指标,一般需要对设计的处理器进行性能验证。

2、相关技术中,大多基于c++语言对待验证的处理器建模,并基于gem5平台运行建立的模型,从而对处理器进行性能验证。然而,c++语言是软件编程语言,处理器的设计一般采用硬件描述语言,硬件描述语言和软件编程语言在很多细节上存在着不可弥补的差异,这就使得模型在层次划分、流水线设计及具体实现上与处理器的硅前设计差异较大。这种差异会导致模型与设计在细节上会出现执行顺序和/或执行结果的差异,进而导致性能验证出现较大的偏差。

技术实现思路

1、有鉴于此,本发明实施例提供一种芯片的性能验证方法、装置、电子设备及存储介质,能够有效提高芯片性能验证的准确性。

2、第一方面,本发明的实施例提供一种芯片的性能验证方法,包括:获取待验证芯片的芯片性能验证模型,所述芯片性能验证模型包括至少一个性能验证子模型,其中每个所述性能验证子模型基于所述待验证芯片中的一个电路模块构建;各所述性能验证子模型基于硬件验证语言编写;基于所述芯片性能验证模型,对所述待验证芯片进行性能验证。

3、在一种实施方式中,所述获取待验证芯片的芯片性能验证模型包括:获取所述待验证芯片的设计文件,所述设计文件中包括所述待验证芯片中的至少一个电路模块的设计代码;根据性能验证需求,从所述至少一个电路模块中选择一个或多个第一电路模块;根据所述设计文件中各所述第一电路模块的设计代码,分别为各所述第一电路模块构建对应的性能验证子模型,其中,各所述性能验证子模型中携带初始时序信息;基于各所述性能验证子模型,构建所述待验证芯片的所述芯片性能验证模型。

4、在一种实施方式中,所述基于各所述性能验证子模型,构建所述待验证芯片的所述芯片性能验证模型包括:根据所述设计文件中各所述第一电路模块的设计代码,确定各所述第一电路模块之间的交互关系;根据各所述第一电路模块之间的交互关系,在各所述性能验证子模型之间建立通信通路,所述通信通路基于预设通信协议建立;基于各所述性能验证子模型及所述通信通路,构建所述待验证芯片的所述芯片性能验证模型。

5、在一种实施方式中,所述获取所述待验证芯片的设计文件之后,所述基于各所述性能验证子模型,构建所述待验证芯片的所述芯片性能验证模型之前,所述方法还包括:根据性能验证需求,从所述至少一个电路模块中选择一个或多个第二电路模块,其中每个所述第二电路模块用于与至少一个所述第一电路模块交互;所述基于各所述性能验证子模型,构建所述待验证芯片的所述芯片性能验证模型包括:基于各所述性能验证子模型及各所述第二电路模块,构建所述待验证芯片的所述芯片性能验证模型。

6、在一种实施方式中,所述基于各所述性能验证子模型及各所述第二电路模块,构建所述待验证芯片的所述芯片性能验证模型包括:根据所述设计文件中各所述第一电路模块的设计代码,确定各所述第一电路模块之间的交互关系;根据各所述第一电路模块之间的交互关系,在各所述性能验证子模型之间建立通信通路,所述通信通路基于预设通信协议建立;从各所述第一电路模块中查找与任一所述第二电路模块存在交互关系的电路模块,得到至少一个第一目标模块;为各所述第一目标模块的所述性能验证子模型分别生成信号格式转换接口,以使各所述第一目标模块的所述性能验证子模型通过各自的所述信号格式转换接口与对应的所述第二电路模块交互;基于各所述性能验证子模型、所述通信通路、所述信号格式转换接口及各所述第二电路模块,构建所述待验证芯片的所述芯片性能验证模型。

7、在一种实施方式中,所述根据所述设计文件中各所述第一电路模块的设计代码,分别为各所述第一电路模块构建对应的性能验证子模型包括:根据各所述第一电路模块的设计代码及接口向量文件,确定各所述第一电路模块的信号时序;根据各所述第一电路模块的信号时序,基于所述硬件验证语言中的类,分别为各所述第一电路模块构建性能验证子模型,所述初始时序信息与各所述第一电路模块的信号时序相对应。

8、在一种实施方式中,所述根据各所述第一电路模块的设计代码及接口向量文件,确定各所述第一电路模块的信号时序之后,所述根据各所述第一电路模块的信号时序,基于所述硬件验证语言中的类,分别为各所述第一电路模块构建性能验证子模型之前,所述方法还包括:对于每个所述第一电路模块,确定该第一电路模块的输入信号与输出信号的时序关系,是否符合预设条件;所述根据各所述第一电路模块的信号时序,基于所述硬件验证语言中的类,分别为各所述第一电路模块构建性能验证子模型包括:对时序关系符合所述预设条件的所述第一电路模块进行简化,得到第一简化模块;基于所述硬件验证语言中的类,为所述第一简化模块构建所述性能验证子模型。

9、在一种实施方式中,所述根据所述设计文件中各所述第一电路模块的设计代码,分别为各所述第一电路模块构建对应的性能验证子模型之后,所述方法还包括:获取各所述第一电路模块的仿真延时信息;利用所述仿真延时信息更新各所述第一电路模块对应的所述性能验证子模型的所述初始时序信息,得到优化时序信息;基于携带有所述优化时序信息的各所述性能验证子模型,更新所述待验证芯片的所述芯片性能验证模型。

10、在一种实施方式中,所述基于所述芯片性能验证模型,对所述待验证芯片进行性能验证包括:向所述芯片性能验证模型提供激励信号;收集所述芯片性能验证模型针对所述激励信号的输出信号;通过检测所述输出信号与所述激励信号的时序关系是否符合预设预期,确定所述待验证芯片是否通过性能验证。

11、在一种实施方式中,所述待验证芯片包括通用图形处理器芯片;所述通用图形处理器芯片包括:任务控制模块、指令处理模块;所述指令处理模块包括多个处理子模块;所述至少一个性能验证子模型包括所述任务控制模块的任务控制验证子模型以及所述指令处理模块的指令处理验证子模型;其中,所述指令处理验证子模型包括多个模型单元,每个所述模型单元与一个所述处理子模块对应;所述任务控制验证子模型,用于接收计算任务,并将所述计算任务拆分为多个子任务发送给所述指令处理验证子模型的多个所述模型单元;所述指令处理验证子模块,用于通过多个所述模型单元并行计算所述多个子任务。

12、第二方面,本发明的实施例还提供一种芯片的性能验证装置,包括:获取单元,用于获取待验证芯片的芯片性能验证模型,所述芯片性能验证模型包括至少一个性能验证子模型,其中每个所述性能验证子模型基于所述待验证芯片中的一个电路模块构建;各所述性能验证子模型基于硬件验证语言编写;验证单元,用于基于所述芯片性能验证模型,对所述待验证芯片进行性能验证。

13、在一种实施方式中,所述获取单元包括:第一获取模块,用于获取所述待验证芯片的设计文件,所述设计文件中包括所述待验证芯片中的至少一个电路模块的设计代码;第一选择模块,用于根据性能验证需求,从所述至少一个电路模块中选择一个或多个第一电路模块;第一构建模块,用于根据所述设计文件中各所述第一电路模块的设计代码,分别为各所述第一电路模块构建对应的性能验证子模型,其中,各所述性能验证子模型中携带初始时序信息;第二构建模块,用于基于各所述性能验证子模型,构建所述待验证芯片的所述芯片性能验证模型。

14、在一种实施方式中,所述第二构建模块,具体用于:根据所述设计文件中各所述第一电路模块的设计代码,确定各所述第一电路模块之间的交互关系;根据各所述第一电路模块之间的交互关系,在各所述性能验证子模型之间建立通信通路,所述通信通路基于预设通信协议建立;基于各所述性能验证子模型及所述通信通路,构建所述待验证芯片的所述芯片性能验证模型。

15、在一种实施方式中,所述获取单元还包括:第二选择模块,用于在获取所述待验证芯片的设计文件之后,基于各所述性能验证子模型,构建所述待验证芯片的所述芯片性能验证模型之前,根据性能验证需求,从所述至少一个电路模块中选择一个或多个第二电路模块,其中每个所述第二电路模块用于与至少一个所述第一电路模块交互;所述第二构建模块,具体用于基于各所述性能验证子模型及各所述第二电路模块,构建所述待验证芯片的所述芯片性能验证模型。

16、在一种实施方式中,所述第二构建模块包括:第一确定子模块,用于根据所述设计文件中各所述第一电路模块的设计代码,确定各所述第一电路模块之间的交互关系;建立子模块,用于根据各所述第一电路模块之间的交互关系,在各所述性能验证子模型之间建立通信通路,所述通信通路基于预设通信协议建立;查找子模块,用于从各所述第一电路模块中查找与任一所述第二电路模块存在交互关系的电路模块,得到至少一个第一目标模块;生成子模块,用于为各所述第一目标模块的所述性能验证子模型分别生成信号格式转换接口,以使各所述第一目标模块的所述性能验证子模型通过各自的所述信号格式转换接口与对应的所述第二电路模块交互;第一构建子模块,用于基于各所述性能验证子模型、所述通信通路、所述信号格式转换接口及各所述第二电路模块,构建所述待验证芯片的所述芯片性能验证模型。

17、在一种实施方式中,所述第一构建模块包括:第二确定子模块,用于根据各所述第一电路模块的设计代码及接口向量文件,确定各所述第一电路模块的信号时序;第一构建子模块,用于根据各所述第一电路模块的信号时序,基于所述硬件验证语言中的类,分别为各所述第一电路模块构建性能验证子模型,所述初始时序信息与各所述第一电路模块的信号时序相对应。

18、在一种实施方式中,所述第一构建模块还包括:第三确定子模块,用于在根据各所述第一电路模块的设计代码及接口向量文件,确定各所述第一电路模块的信号时序之后,根据各所述第一电路模块的信号时序,基于所述硬件验证语言中的类,分别为各所述第一电路模块构建性能验证子模型之前,对于每个所述第一电路模块,确定该第一电路模块的输入信号与输出信号的时序关系,是否符合预设条件;所述第一构建子模块,具体用于:对时序关系符合所述预设条件的所述第一电路模块进行简化,得到第一简化模块;基于所述硬件验证语言中的类,为所述第一简化模块构建所述性能验证子模型。

19、在一种实施方式中,所述获取单元,还包括:第二获取模块,用于在根据所述设计文件中各所述第一电路模块的设计代码,分别为各所述第一电路模块构建对应的性能验证子模型之后,获取各所述第一电路模块的仿真延时信息;第一更新模块,用于利用所述仿真延时信息更新各所述第一电路模块对应的所述性能验证子模型的所述初始时序信息,得到优化时序信息;第二更新模块,用于基于携带有所述优化时序信息的各所述性能验证子模型,更新所述待验证芯片的所述芯片性能验证模型。

20、在一种实施方式中,所述验证单元包括:提供模块,用于向所述芯片性能验证模型提供激励信号;收集模块,用于收集所述芯片性能验证模型针对所述激励信号的输出信号;确定模块,用于通过检测所述输出信号与所述激励信号的时序关系是否符合预设预期,确定所述待验证芯片是否通过性能验证。

21、在一种实施方式中,所述待验证芯片包括通用图形处理器芯片;所述通用图形处理器芯片包括:任务控制模块、指令处理模块;所述指令处理模块包括多个处理子模块;所述至少一个性能验证子模型包括所述任务控制模块的任务控制验证子模型以及所述指令处理模块的指令处理验证子模型;其中,所述指令处理验证子模型包括多个模型单元,每个所述模型单元与一个所述处理子模块对应;所述任务控制验证子模型,用于接收计算任务,并将所述计算任务拆分为多个子任务发送给所述指令处理验证子模型的多个所述模型单元;所述指令处理验证子模块,用于通过多个所述模型单元并行计算所述多个子任务。

22、第三方面,本发明的实施例还提供一种电子设备,所述电子设备包括:处理器、存储器,所述处理器与所述存储器电连接;所述存储器用于存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以实现本发明的实施例提供的任一种芯片的性能验证方法。

23、第四方面,本发明的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现本发明的实施例提供的任一种芯片的性能验证方法。

24、本发明的实施例提供的芯片的性能验证方法、装置、电子设备及存储介质,能够获取待验证芯片的芯片性能验证模型,所述芯片性能验证模型包括至少一个性能验证子模型,其中每个所述性能验证子模型基于所述待验证芯片中的一个电路模块构建;各所述性能验证子模型基于硬件验证语言编写。由于芯片性能验证模型中的性能验证子模型基于硬件验证语言编写,而硬件验证语言可以与芯片的rtl(register transfer level,寄存器传输级)设计代码无缝连接,方便地从rtl中移植关键功能逻辑,从而能较精准地复现与芯片逻辑设计代码相同的任务执行顺序和结果,因此能够有效提高芯片性能验证的准确性。