CN106202685A - 一种软硬件协同仿真加速器运行环境搭建方法和装置 - Google Patents
一种软硬件协同仿真加速器运行环境搭建方法和装置 Download PDFInfo
- Publication number
- CN106202685A CN106202685A CN201610520856.0A CN201610520856A CN106202685A CN 106202685 A CN106202685 A CN 106202685A CN 201610520856 A CN201610520856 A CN 201610520856A CN 106202685 A CN106202685 A CN 106202685A
- Authority
- CN
- China
- Prior art keywords
- file
- hardware
- bsv
- tested
- language
- 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.)
- Granted
Links
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种软硬件协同仿真加速器运行环境搭建方法和装置,方法包括:接收用户待测试设计文件、测试文件和参数信息文件,解析用户待测试设计文件、测试文件和参数信息文件以生成配置信息文件,并发送配置信息文件;接收配置信息文件和用户待测试设计文件,根据配置信息文件和用户待测试设计文件搭建软硬件协同仿真加速器运行环境。本发明可在当前设计语言基础上完全统一SCE‑MI协议,便于规范软硬件协同仿真加速器接口和便于测试文件和用户待测试设计文件之间的数据交换;SCE‑MI参数文件在很大程度上使得后续软件接口的实现脱离了硬件;同时可自动架构起软硬件协同仿真加速器运行环境,大大加速软硬件协同仿真处理效率和技术发展。
Description
技术领域
本发明涉及软硬件协同仿真技术领域,特别是涉及一种软硬件协同仿真加速器运行环境搭建方法和一种软硬件协同仿真加速器运行环境搭建装置。
背景技术
随着集成电子电路的快速发展,IC(Integrated Circuit,集成电路)设计的复杂度也在不断提升,迫切需要一种既能克服硬件仿效成本高和软件仿真速度慢缺陷的新技术。在此背景下,软硬件协同仿真不断被提及,然而目前尚未有成熟的软硬件协同仿真技术,软硬件协同仿真加速器还存在功能单一的问题。
随着SCE-MI(Standard Co-Emulation Modeling Interface,标准协同仿真建模接口)协议的提出,软硬件协同仿真技术似乎看到了光明的未来。然而现有的硬件描述语言在更高级抽象层次上还存在问题,在当前设计语言基础上无法实现完全统一SCE-MI协议,导致现有的软硬件协同仿真加速器接口不规范。
同时,现有的软硬件协同仿真技术不能自动生成软硬件之间的高速互连接口,用户无法动态修改Testbench(测试文件),实际使用率低。以上这些缺陷均限制了软硬件协同仿真技术的发展。
发明内容
鉴于上述问题,本发明实施例的目的在于提供一种软硬件协同仿真加速器运行环境搭建方法和一种软硬件协同仿真加速器运行环境搭建装置,以解决现有的软硬件协同仿真加速器接口不规范,软硬件协同仿真技术不能自动生成软硬件之间的高速互连接口,且用户无法动态修改测试文件的问题。
为了解决上述问题,本发明实施例公开了一种软硬件协同仿真加速器运行环境搭建方法,包括以下步骤:接收用户待测试设计文件、测试文件和参数信息文件,解析所述用户待测试设计文件、所述测试文件和所述参数信息文件以生成配置信息文件,并发送所述配置信息文件;所述用户待测试设计文件通过硬件描述语言设计,所述测试文件通过所述硬件描述语言或编程语言设计;接收所述配置信息文件和所述用户待测试设计文件,根据所述配置信息文件和所述用户待测试设计文件搭建软硬件协同仿真加速器运行环境。
可选地,所述配置信息文件包括硬件信息文件、接口信息文件和测试信息文件。
可选地,所述接收用户待测试设计文件、测试文件和参数信息文件,解析所述用户待测试设计文件、所述测试文件和所述参数信息文件以生成配置信息文件,并发送所述配置信息文件,包括以下步骤:接收所述参数信息文件,解析所述参数信息文件,以获取所述参数信息文件中所定义开发板芯片的型号、顶层文件的名称和软硬件协同仿真频率,并根据所述开发板芯片的型号、所述顶层文件的名称和所述软硬件协同仿真频率生成所述硬件信息文件,并发送所述硬件信息文件;接收所述用户待测试设计文件,解析所述用户待测试设计文件的顶层文件,以获取所述顶层文件中的接口名称信息、接口类型信息、数据宽度信息和数据大小信息,并根据所述接口名称信息、所述接口类型信息、所述数据宽度信息和所述数据大小信息生成所述接口信息文件,并发送所述接口信息文件;根据所述测试文件、所述参数信息文件和预设GUI(Graphical User Interface,图形用户界面)的API(Application Programming Interface,应用程序编程接口)接口库生成软件界面调用代码和所述测试信息文件,并发送所述测试信息文件。
可选地,所述接收所述配置信息文件和所述用户待测试设计文件,根据所述配置信息文件和所述用户待测试设计文件搭建软硬件协同仿真加速器运行环境,包括以下步骤:接收所述硬件信息文件和所述接口信息文件,根据所述硬件信息文件和所述接口信息文件实例化所述用户待测试设计文件的顶层文件,将实例化的所述顶层文件进行封装,生成第一BSV(Bluespec-System-Berilog)语言文件,并发送所述第一BSV语言文件;接收所述第一BSV语言文件,将所述第一BSV语言文件和SCE-MI协议进行封装,生成第二BSV语言文件,发送所述第二BSV语言文件;接收所述第二BSV语言文件,将所述第二BSV语言文件和预设FPGA(Field-Programmable Gate Array,现场可编程门阵列)库进行封装,生成第三BSV语言文件;所述预设FPGA库包括PCIE(Peripheral Component Interconnect Express,外围器件快速互联)核和SCE-MI到PCIE核之间的桥文件,或TCP(Transmission ControlProtocol,传输控制协议)核和SCE-MI到TCP核之间的桥文件;接收所述第一BSV语言文件、所述第二BSV语言文件和所述第三BSV语言文件,编译所述第一BSV语言文件、所述第二BSV语言文件和所述第三BSV语言文件,并发送编译后生成的各文件;接收所述编译后生成的各文件,解析所述编译后生成的各文件以生成SCE-MI参数文件,并解析所述SCE-MI参数文件,发送解析后的SCE-MI参数文件;接收所述接口信息文件和所述解析后的SCE-MI参数文件,解析所述接口信息文件和所述解析后的SCE-MI参数文件,根据解析所述接口信息文件和所述解析后的SCE-MI参数文件过程中生成的全部文件搭建软件与硬件交互所需的数据通道,并发送所述全部文件;接收所述用户待测试设计文件和所述编译后生成的各文件中的硬件描述语言文件,对所述硬件描述语言文件和所述用户待测试设计文件进行综合和仿真;接收所述全部文件和所述测试信息文件,编译所述全部文件和所述测试信息文件。
可选地,所述对所述硬件描述语言文件和所述用户待测试设计文件进行综合和仿真,包括以下步骤:通过综合仿真工具对所述硬件描述语言文件、预设BSV库、所述预设FPGA库和所述用户待测试设计文件进行综合和仿真。
为了解决上述问题,本发明实施例还公开了一种软硬件协同仿真加速器运行环境搭建装置,包括:配置信息文件生成模块,用于接收用户待测试设计文件、测试文件和参数信息文件,解析所述用户待测试设计文件、所述测试文件和所述参数信息文件以生成配置信息文件,并发送所述配置信息文件;所述用户待测试设计文件通过硬件描述语言设计,所述测试文件通过所述硬件描述语言或编程语言设计;运行环境搭建模块,用于接收所述配置信息文件和所述用户待测试设计文件,根据所述配置信息文件和所述用户待测试设计文件搭建软硬件协同仿真加速器运行环境。
可选地,所述配置信息文件包括硬件信息文件、接口信息文件和测试信息文件。
可选地,所述配置信息文件生成模块包括:所述配置信息文件生成模块包括:硬件信息文件生成子模块,用于接收所述参数信息文件,解析所述参数信息文件,以获取所述参数信息文件中所定义开发板芯片的型号、顶层文件的名称和软硬件协同仿真频率,并根据所述开发板芯片的型号、所述顶层文件的名称和所述软硬件协同仿真频率生成所述硬件信息文件,并发送所述硬件信息文件;接口信息文件生成子模块,用于接收所述用户待测试设计文件,解析所述用户待测试设计文件的顶层文件,以获取所述顶层文件中的接口名称信息、接口类型信息、数据宽度信息和数据大小信息,并根据所述接口名称信息、所述接口类型信息、所述数据宽度信息和所述数据大小信息生成所述接口信息文件,并发送所述接口信息文件;测试信息文件生成子模块,用于根据所述测试文件、所述参数信息文件和预设GUI的API接口库生成软件界面调用代码和所述测试信息文件,并发送所述测试信息文件。
可选地,所述运行环境搭建模块包括:顶层文件封装子模块,用于接收所述硬件信息文件和所述接口信息文件,根据所述硬件信息文件和所述接口信息文件实例化所述用户待测试设计文件的顶层文件,将实例化的所述顶层文件进行封装,生成第一BSV语言文件,并发送所述第一BSV语言文件;SCE-MI协议封装子模块,用于接收所述第一BSV语言文件,将所述第一BSV语言文件和SCE-MI协议进行封装,生成第二BSV语言文件,发送所述第二BSV语言文件;外层封装子模块,用于接收所述第二BSV语言文件,将所述第二BSV语言文件和预设FPGA库进行封装,生成第三BSV语言文件;所述预设FPGA库包括PCIE核和SCE-MI到PCIE核之间的桥文件,或TCP核和SCE-MI到TCP核之间的桥文件;编译BSV文件子模块,用于接收所述第一BSV语言文件、所述第二BSV语言文件和所述第三BSV语言文件,编译所述第一BSV语言文件、所述第二BSV语言文件和所述第三BSV语言文件,并发送编译后生成的各文件;SCE-MI参数文件解析子模块,用于接收所述编译后生成的各文件,解析所述编译后生成的各文件以生成SCE-MI参数文件,并解析所述SCE-MI参数文件,发送解析后的SCE-MI参数文件;通道搭建子模块,用于接收所述接口信息文件和所述解析后的SCE-MI参数文件,解析所述接口信息文件和所述解析后的SCE-MI参数文件,根据解析所述接口信息文件和所述解析后的SCE-MI参数文件过程中生成的全部文件搭建软件与硬件交互所需的数据通道,并发送所述全部文件;综合和仿真子模块,用于接收所述用户待测试设计文件和所述编译后生成的各文件中的硬件描述语言文件,对所述硬件描述语言文件和所述用户待测试设计文件进行综合和仿真;测试文件编译子模块,用于接收所述全部文件和所述测试信息文件,编译所述全部文件和所述测试信息文件。
可选地,所述综合和仿真子模块包括:综合和仿真单元,用于通过综合仿真工具对所述硬件描述语言文件、预设BSV库、所述预设FPGA库和所述用户待测试设计文件进行综合和仿真。
本发明实施例包括以下优点:
在接收用户待测试设计文件、测试文件和参数信息文件后,解析用户待测试设计文件、测试文件和参数信息文件以生成配置信息文件,进而根据配置信息文件和用户待测试设计文件搭建软硬件协同仿真加速器运行环境。这样,在当前设计语言基础上实现完全统一SCE-MI协议,便于规范软硬件协同仿真加速器接口和便于测试文件和用户待测试设计文件之间的数据交换,同时提供规范化的软硬件协同仿真加速器运行环境搭建流程,可自动架构起软硬件协同仿真加速器运行环境,如果用户修改测试文件,则无需重新执行完整软硬件协同仿真加速器运行环境搭建流程,只需重新处理测试文件即可,大大加速了软硬件协同仿真中的处理效率,促进了软硬件协同仿真技术的现实应用和发展。
附图说明
图1是本发明的一种软硬件协同仿真加速器运行环境搭建方法实施例的步骤流程图;
图2是本发明的一种软硬件协同仿真加速器运行环境搭建方法具体实施例的步骤流程图;
图3是本发明的一种软硬件协同仿真加速器运行环境搭建装置实施例的结构框图;
图4是本发明的一种软硬件协同仿真加速器运行环境搭建装置具体实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明的一种软硬件协同仿真加速器运行环境搭建方法实施例的步骤流程图,该软硬件协同仿真加速器运行环境搭建方法具体可以包括如下步骤:
S1,接收用户待测试设计文件、测试文件和参数信息文件,解析用户待测试设计文件、测试文件和参数信息文件以生成配置信息文件,并发送配置信息文件。
其中,用户待测试设计文件可以通过硬件描述语言设计,测试文件可以通过硬件描述语言或编程语言设计,参数信息文件是在用户通过GUI对参数信息进行配置后,软件自动生成的文件。在用户通过硬件描述语言设计用户待测试设计文件后,步骤S1可以接收用户待测试设计文件;在用户通过硬件描述语言或编程语言设计测试文件后,步骤S1可以接收测试文件;在用户通过GUI配置好参数信息后,步骤S1可以接收参数信息文件。
具体地,配置信息文件可以包括硬件信息文件、接口信息文件和测试信息文件等。
S2,接收配置信息文件和用户待测试设计文件,根据配置信息文件和用户待测试设计文件搭建软硬件协同仿真加速器运行环境。
在步骤S2根据配置信息文件和用户待测试设计文件搭建软硬件协同仿真加速器运行环境的过程中,可以生成可综合的硬件设计,且在步骤S2根据配置信息文件和用户待测试设计文件搭建软硬件协同仿真加速器运行环境后,可以通过软硬件协同仿真加速器运行环境生成bit(FPGA编程比特流)文件,用户将该bit文件下载到对应的FPGA开发板芯片中,并可通过软硬件协同仿真加速器运行环境的软件界面发送激励到FPGA开发板中,即可完成测试文件和用户待测试设计文件的通信,实现了软硬件的高速互联。
具体地,在本发明的一个具体实施例中,配置信息文件包括硬件信息文件、接口信息文件和测试信息文件。参照图2,此时,步骤S1接收用户待测试设计文件、测试文件和参数信息文件,解析用户待测试设计文件、测试文件和参数信息文件以生成配置信息文件,并发送配置信息文件,可以包括以下步骤:
S21,接收参数信息文件,解析参数信息文件,以获取参数信息文件中所定义开发板芯片的型号、顶层文件的名称和软硬件协同仿真频率,并根据开发板芯片的型号、顶层文件的名称和软硬件协同仿真频率生成硬件信息文件,并发送硬件信息文件。
其中,所定义开发板芯片的型号可以为所定义FPGA开发板芯片的型号。
S22,接收用户待测试设计文件,解析用户待测试设计文件的顶层文件,以获取顶层文件中的接口名称信息、接口类型信息、数据宽度信息和数据大小信息,并根据接口名称信息、接口类型信息、数据宽度信息和数据大小信息生成接口信息文件,并发送接口信息文件。
S23,根据测试文件、参数信息文件和预设GUI的API接口库生成软件界面调用代码和测试信息文件,并发送测试信息文件。
其中,步骤S23根据测试文件、参数信息文件和预设GUI的API接口库生成软件界面调用代码后,用户即可在软件界面操作。
具体地,在本发明的一个具体实施例中,参照图2,步骤S2接收配置信息文件和用户待测试设计文件,根据配置信息文件和用户待测试设计文件搭建软硬件协同仿真加速器运行环境,可以包括以下步骤:
S24,接收硬件信息文件和接口信息文件,根据硬件信息文件和接口信息文件实例化用户待测试设计文件的顶层文件,将实例化的顶层文件进行封装,生成第一BSV语言文件,并发送第一BSV语言文件。
其中,第一BSV语言文件具有用户待测试设计接口。
S25,接收第一BSV语言文件,将第一BSV语言文件和SCE-MI协议进行封装,生成第二BSV语言文件,发送第二BSV语言文件。
其中,第二BSV语言文件具有SCE-MI协议端口。步骤S25可以通过用户待测试设计接口调用第一BSV语言文件。由于第二BSV语言文件符合SCE-MI协议,因此,可以便于实现完全统一SCE-MI协议和规范软硬件协同仿真加速器接口。
S26,接收第二BSV语言文件,将第二BSV语言文件和预设FPGA库进行封装,生成第三BSV语言文件。
其中,第三BSV语言文件包含有预设FPGA库中所有文件的顶层。其中,预设FPGA库可以包括PCIE核和SCE-MI到PCIE核之间的桥文件,或TCP核和SCE-MI到TCP核之间的桥文件。
S27,接收第一BSV语言文件、第二BSV语言文件和第三BSV语言文件,编译第一BSV语言文件、第二BSV语言文件和第三BSV语言文件,并发送编译后生成的各文件。
S28,接收编译后生成的各文件,解析编译后生成的各文件以生成SCE-MI参数文件,并解析SCE-MI参数文件,发送解析后的SCE-MI参数文件。
其中,SCE-MI参数文件可以包括结构化的硬件参数等。具体地,生成的SCE-MI参数文件包含有硬件侧用户待测试设计文件中的接口信息,可以使得后续软件接口的实现脱离硬件,使得软硬件协同仿真加速器运行环境的可移植性好。
S29,接收接口信息文件和解析后的SCE-MI参数文件,解析接口信息文件和解析后的SCE-MI参数文件,根据解析接口信息文件和解析后的SCE-MI参数文件过程中生成的全部文件搭建软件与硬件交互所需的数据通道,并发送全部文件。
通过步骤S29,即可架构起软硬件协同仿真加速器运行环境,其中,步骤S29中的软件与硬件交互所需的数据通道为软件侧测试文件对应的测试信息文件和硬件侧用户待测试设计文件对应的上述全部文件之间的高速互连通道。
S210,接收用户待测试设计文件和编译后生成的各文件中的硬件描述语言文件,对硬件描述语言文件和用户待测试设计文件进行综合和仿真。
可选地,步骤S210对硬件描述语言文件和用户待测试设计文件进行综合和仿真,可以包括以下步骤:
通过综合仿真工具对硬件描述语言文件、预设BSV库、预设FPGA库和用户待测试设计文件进行综合和仿真。
具体地,综合仿真工具可以包括Quartus仿真工具、Vivado仿真工具或ISE仿真工具等。
S211,接收全部文件和测试信息文件,编译全部文件和测试信息文件。
具体地,通过步骤S211编译全部文件和测试信息文件,即可实现测试文件和用户待测试设计文件的通信,即实现测试文件与用户待测试设计文件进行数据交换。
其中,由于通过步骤S29搭建接口信息文件和解析后的SCE-MI参数文件之间的软件和硬件交互通道,因此,如果用户修改测试文件,则只需自动重新执行步骤S23和步骤S211,即可实现修改后的测试文件和用户待测试设计文件的通信,大大加速了软硬件协同仿真中的处理效率,促进了软硬件协同仿真技术的现实应用和发展。
本发明实施例的软硬件协同仿真加速器运行环境搭建方法包括以下优点:
在接收用户待测试设计文件、测试文件和参数信息文件后,解析用户待测试设计文件、测试文件和参数信息文件以生成配置信息文件,进而根据配置信息文件和用户待测试设计文件搭建软硬件协同仿真加速器运行环境,其中,在根据配置信息文件和用户待测试设计文件搭建软硬件协同仿真加速器运行环境过程中,通过解析编译后生成的各文件生成SCE-MI参数文件。这样,在当前设计语言基础上实现完全统一SCE-MI协议,便于规范软硬件协同仿真加速器接口和便于测试文件和用户待测试设计文件之间的数据交换;SCE-MI参数文件在很大程度上使得后续软件接口的实现脱离了硬件;同时提供一整套规范化软硬件协同仿真加速器运行环境搭建流程,可自动架构起软硬件协同仿真加速器运行环境,如果用户修改测试文件,则无需重新执行完整软硬件协同仿真加速器运行环境搭建流程,只需重新处理测试文件即可,大大加速了软硬件协同仿真中的处理效率,促进了软硬件协同仿真技术的现实应用和发展。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图3,示出了本发明的一种软硬件协同仿真加速器运行环境搭建装置实施例的结构框图,该软硬件协同仿真加速器运行环境搭建装置具体可以包括如下模块:
配置信息文件生成模块1,用于接收用户待测试设计文件、测试文件和参数信息文件,解析用户待测试设计文件、测试文件和参数信息文件以生成配置信息文件,并发送配置信息文件。
其中,用户待测试设计文件可以通过硬件描述语言设计,测试文件可以通过硬件描述语言或编程语言设计,参数信息文件是在用户通过GUI对参数信息进行配置后,软件自动生成的文件。
运行环境搭建模块2,用于接收配置信息文件和用户待测试设计文件,根据配置信息文件和用户待测试设计文件搭建软硬件协同仿真加速器运行环境。
具体地,配置信息文件可以包括硬件信息文件、接口信息文件和测试信息文件。
具体地,在本发明的一个实施例中,参照图4,配置信息文件生成模块1可以包括:
硬件信息文件生成子模块41,用于接收参数信息文件,解析参数信息文件,以获取参数信息文件中所定义开发板芯片的型号、顶层文件的名称和软硬件协同仿真频率,并根据开发板芯片的型号、顶层文件的名称和软硬件协同仿真频率生成硬件信息文件,并发送硬件信息文件。
接口信息文件生成子模块42,用于接收用户待测试设计文件,解析用户待测试设计文件的顶层文件,以获取顶层文件中的接口名称信息、接口类型信息、数据宽度信息和数据大小信息,并根据接口名称信息、接口类型信息、数据宽度信息和数据大小信息生成接口信息文件,并发送接口信息文件。
测试信息文件生成子模块43,用于根据测试文件、参数信息文件和预设GUI的API接口库生成软件界面调用代码和测试信息文件,并发送测试信息文件。
具体地,在本发明的一个实施例中,参照图4,运行环境搭建模块2可以包括:
顶层文件封装子模块44,用于接收硬件信息文件和接口信息文件,根据硬件信息文件和接口信息文件实例化用户待测试设计文件的顶层文件,将实例化的顶层文件进行封装,生成第一BSV语言文件,并发送第一BSV语言文件。
SCE-MI协议封装子模块45,用于接收第一BSV语言文件,将第一BSV语言文件和SCE-MI协议进行封装,生成第二BSV语言文件,发送第二BSV语言文件。
外层封装子模块46,用于接收第二BSV语言文件,将第二BSV语言文件和预设FPGA库进行封装,生成第三BSV语言文件。
其中,预设FPGA库可以包括PCIE核和SCE-MI到PCIE核之间的桥文件,或TCP核和SCE-MI到TCP核之间的桥文件。
编译BSV文件子模块47,用于接收第一BSV语言文件、第二BSV语言文件和第三BSV语言文件,编译第一BSV语言文件、第二BSV语言文件和第三BSV语言文件,并发送编译后生成的各文件。
SCE-MI参数文件解析子模块48,用于接收编译后生成的各文件,解析编译后生成的各文件以生成SCE-MI参数文件,并解析SCE-MI参数文件,发送解析后的SCE-MI参数文件。
通道搭建子模块49,用于接收接口信息文件和解析后的SCE-MI参数文件,解析接口信息文件和解析后的SCE-MI参数文件,根据解析接口信息文件和解析后的SCE-MI参数文件过程中生成的全部文件搭建软件与硬件交互所需的数据通道,并发送全部文件。
综合和仿真子模块410,用于接收用户待测试设计文件和编译后生成的各文件中的硬件描述语言文件,对硬件描述语言文件和用户待测试设计文件进行综合和仿真。
进一步地,在本发明的一个实施例中,参照图4,综合和仿真子模块410可以包括:
综合和仿真单元,用于通过综合仿真工具对硬件描述语言文件、预设BSV库、预设FPGA库和用户待测试设计文件进行综合和仿真。
具体地,综合仿真工具可以包括Quartus仿真工具、Vivado仿真工具或ISE仿真工具等。
测试文件编译子模块411,用于接收全部文件和测试信息文件,编译全部文件和测试信息文件。
本发明实施例的软硬件协同仿真加速器运行环境搭建装置包括以下优点:
在接收用户待测试设计文件、测试文件和参数信息文件后,解析用户待测试设计文件、测试文件和参数信息文件以生成配置信息文件,进而根据配置信息文件和用户待测试设计文件搭建软硬件协同仿真加速器运行环境,其中,在根据配置信息文件和用户待测试设计文件搭建软硬件协同仿真加速器运行环境过程中,通过解析编译后生成的各文件生成SCE-MI参数文件。这样,在当前设计语言基础上实现完全统一SCE-MI协议,便于规范软硬件协同仿真加速器接口和便于测试文件和用户待测试设计文件之间的数据交换;SCE-MI参数文件在很大程度上使得后续软件接口的实现脱离了硬件;同时提供一整套规范化软硬件协同仿真加速器运行环境搭建流程,可自动架构起软硬件协同仿真加速器运行环境,如果用户修改测试文件,则无需重新执行完整软硬件协同仿真加速器运行环境搭建流程,只需重新处理测试文件即可,大大加速了软硬件协同仿真中的处理效率,促进了软硬件协同仿真技术的现实应用和发展。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种软硬件协同仿真加速器运行环境搭建方法和一种软硬件协同仿真加速器运行环境搭建装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种软硬件协同仿真加速器运行环境搭建方法,其特征在于,包括以下步骤:
接收用户待测试设计文件、测试文件和参数信息文件,解析所述用户待测试设计文件、所述测试文件和所述参数信息文件以生成配置信息文件,并发送所述配置信息文件;所述用户待测试设计文件通过硬件描述语言设计,所述测试文件通过所述硬件描述语言或编程语言设计;
接收所述配置信息文件和所述用户待测试设计文件,根据所述配置信息文件和所述用户待测试设计文件搭建软硬件协同仿真加速器运行环境。
2.根据权利要求1所述的软硬件协同仿真加速器运行环境搭建方法,其特征在于,所述配置信息文件包括硬件信息文件、接口信息文件和测试信息文件。
3.根据权利要求2所述的软硬件协同仿真加速器运行环境搭建方法,其特征在于,所述接收用户待测试设计文件、测试文件和参数信息文件,解析所述用户待测试设计文件、所述测试文件和所述参数信息文件以生成配置信息文件,并发送所述配置信息文件,包括以下步骤:
接收所述参数信息文件,解析所述参数信息文件,以获取所述参数信息文件中所定义开发板芯片的型号、顶层文件的名称和软硬件协同仿真频率,并根据所述开发板芯片的型号、所述顶层文件的名称和所述软硬件协同仿真频率生成所述硬件信息文件,并发送所述硬件信息文件;
接收所述用户待测试设计文件,解析所述用户待测试设计文件的顶层文件,以获取所述顶层文件中的接口名称信息、接口类型信息、数据宽度信息和数据大小信息,并根据所述接口名称信息、所述接口类型信息、所述数据宽度信息和所述数据大小信息生成所述接口信息文件,并发送所述接口信息文件;
根据所述测试文件、所述参数信息文件和预设GUI的API接口库生成软件界面调用代码和所述测试信息文件,并发送所述测试信息文件。
4.根据权利要求2所述的软硬件协同仿真加速器运行环境搭建方法,其特征在于,所述接收所述配置信息文件和所述用户待测试设计文件,根据所述配置信息文件和所述用户待测试设计文件搭建软硬件协同仿真加速器运行环境,包括以下步骤:
接收所述硬件信息文件和所述接口信息文件,根据所述硬件信息文件和所述接口信息文件实例化所述用户待测试设计文件的顶层文件,将实例化的所述顶层文件进行封装,生成第一BSV语言文件,并发送所述第一BSV语言文件;
接收所述第一BSV语言文件,将所述第一BSV语言文件和SCE-MI协议进行封装,生成第二BSV语言文件,发送所述第二BSV语言文件;
接收所述第二BSV语言文件,将所述第二BSV语言文件和预设FPGA库进行封装,生成第三BSV语言文件;所述预设FPGA库包括PCIE核和SCE-MI到PCIE核之间的桥文件,或TCP核和SCE-MI到TCP核之间的桥文件;
接收所述第一BSV语言文件、所述第二BSV语言文件和所述第三BSV语言文件,编译所述第一BSV语言文件、所述第二BSV语言文件和所述第三BSV语言文件,并发送编译后生成的各文件;
接收所述编译后生成的各文件,解析所述编译后生成的各文件以生成SCE-MI参数文件,并解析所述SCE-MI参数文件,发送解析后的SCE-MI参数文件;
接收所述接口信息文件和所述解析后的SCE-MI参数文件,解析所述接口信息文件和所述解析后的SCE-MI参数文件,根据解析所述接口信息文件和所述解析后的SCE-MI参数文件过程中生成的全部文件搭建软件与硬件交互所需的数据通道,并发送所述全部文件;
接收所述用户待测试设计文件和所述编译后生成的各文件中的硬件描述语言文件,对所述硬件描述语言文件和所述用户待测试设计文件进行综合和仿真;
接收所述全部文件和所述测试信息文件,编译所述全部文件和所述测试信息文件。
5.根据权利要求4所述的软硬件协同仿真加速器运行环境搭建方法,其特征在于,所述对所述硬件描述语言文件和所述用户待测试设计文件进行综合和仿真,包括以下步骤:
通过综合仿真工具对所述硬件描述语言文件、预设BSV库、所述预设FPGA库和所述用户待测试设计文件进行综合和仿真。
6.一种软硬件协同仿真加速器运行环境搭建装置,其特征在于,包括:
配置信息文件生成模块,用于接收用户待测试设计文件、测试文件和参数信息文件,解析所述用户待测试设计文件、所述测试文件和所述参数信息文件以生成配置信息文件,并发送所述配置信息文件;所述用户待测试设计文件通过硬件描述语言设计,所述测试文件通过所述硬件描述语言或编程语言设计;
运行环境搭建模块,用于接收所述配置信息文件和所述用户待测试设计文件,根据所述配置信息文件和所述用户待测试设计文件搭建软硬件协同仿真加速器运行环境。
7.根据权利要求6所述的软硬件协同仿真加速器运行环境搭建装置,其特征在于,所述配置信息文件包括硬件信息文件、接口信息文件和测试信息文件。
8.根据权利要求7所述的软硬件协同仿真加速器运行环境搭建装置,其特征在于,所述配置信息文件生成模块包括:
硬件信息文件生成子模块,用于接收所述参数信息文件,解析所述参数信息文件,以获取所述参数信息文件中所定义开发板芯片的型号、顶层文件的名称和软硬件协同仿真频率,并根据所述开发板芯片的型号、所述顶层文件的名称和所述软硬件协同仿真频率生成所述硬件信息文件,并发送所述硬件信息文件;
接口信息文件生成子模块,用于接收所述用户待测试设计文件,解析所述用户待测试设计文件的顶层文件,以获取所述顶层文件中的接口名称信息、接口类型信息、数据宽度信息和数据大小信息,并根据所述接口名称信息、所述接口类型信息、所述数据宽度信息和所述数据大小信息生成所述接口信息文件,并发送所述接口信息文件;
测试信息文件生成子模块,用于根据所述测试文件、所述参数信息文件和预设GUI的API接口库生成软件界面调用代码和所述测试信息文件,并发送所述测试信息文件。
9.根据权利要求7所述的软硬件协同仿真加速器运行环境搭建装置,其特征在于,所述运行环境搭建模块包括:
顶层文件封装子模块,用于接收所述硬件信息文件和所述接口信息文件,根据所述硬件信息文件和所述接口信息文件实例化所述用户待测试设计文件的顶层文件,将实例化的所述顶层文件进行封装,生成第一BSV语言文件,并发送所述第一BSV语言文件;
SCE-MI协议封装子模块,用于接收所述第一BSV语言文件,将所述第一BSV语言文件和SCE-MI协议进行封装,生成第二BSV语言文件,发送所述第二BSV语言文件;
外层封装子模块,用于接收所述第二BSV语言文件,将所述第二BSV语言文件和预设FPGA库进行封装,生成第三BSV语言文件;所述预设FPGA库包括PCIE核和SCE-MI到PCIE核之间的桥文件,或TCP核和SCE-MI到TCP核之间的桥文件;
编译BSV文件子模块,用于接收所述第一BSV语言文件、所述第二BSV语言文件和所述第三BSV语言文件,编译所述第一BSV语言文件、所述第二BSV语言文件和所述第三BSV语言文件,并发送编译后生成的各文件;
SCE-MI参数文件解析子模块,用于接收所述编译后生成的各文件,解析所述编译后生成的各文件以生成SCE-MI参数文件,并解析所述SCE-MI参数文件,发送解析后的SCE-MI参数文件;
通道搭建子模块,用于接收所述接口信息文件和所述解析后的SCE-MI参数文件,解析所述接口信息文件和所述解析后的SCE-MI参数文件,根据解析所述接口信息文件和所述解析后的SCE-MI参数文件过程中生成的全部文件搭建软件与硬件交互所需的数据通道,并发送所述全部文件;
综合和仿真子模块,用于接收所述用户待测试设计文件和所述编译后生成的各文件中的硬件描述语言文件,对所述硬件描述语言文件和所述用户待测试设计文件进行综合和仿真;
测试文件编译子模块,用于接收所述全部文件和所述测试信息文件,编译所述全部文件和所述测试信息文件。
10.根据权利要求9所述的软硬件协同仿真加速器运行环境搭建装置,其特征在于,所述综合和仿真子模块包括:
综合和仿真单元,用于通过综合仿真工具对所述硬件描述语言文件、预设BSV库、所述预设FPGA库和所述用户待测试设计文件进行综合和仿真。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610520856.0A CN106202685B (zh) | 2016-07-01 | 2016-07-01 | 一种软硬件协同仿真加速器运行环境搭建方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610520856.0A CN106202685B (zh) | 2016-07-01 | 2016-07-01 | 一种软硬件协同仿真加速器运行环境搭建方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106202685A true CN106202685A (zh) | 2016-12-07 |
CN106202685B CN106202685B (zh) | 2019-10-08 |
Family
ID=57466003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610520856.0A Active CN106202685B (zh) | 2016-07-01 | 2016-07-01 | 一种软硬件协同仿真加速器运行环境搭建方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106202685B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108121657A (zh) * | 2017-11-29 | 2018-06-05 | 北京京航计算通讯研究所 | 基于系统模型的可编程逻辑器件软件仿真验证系统 |
CN109711071A (zh) * | 2018-12-29 | 2019-05-03 | 成都海光集成电路设计有限公司 | 一种服务器SoC软硬件协同仿真加速方法及系统 |
CN112003792A (zh) * | 2020-07-23 | 2020-11-27 | 烽火通信科技股份有限公司 | 一种软硬件协同的报文加速方法和装置 |
CN112115010A (zh) * | 2020-08-27 | 2020-12-22 | 深圳市紫金支点技术股份有限公司 | 一种自助设备的模拟测试方法、智能终端、存储介质 |
CN112540359A (zh) * | 2020-12-17 | 2021-03-23 | 航天恒星科技有限公司 | 一种适用于微波雷达的通用测试系统 |
CN112614403A (zh) * | 2020-12-25 | 2021-04-06 | 深圳市小喵科技有限公司 | 硬件仿真方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101499937A (zh) * | 2009-03-16 | 2009-08-05 | 盛科网络(苏州)有限公司 | 一种基于fpga的软硬件协同仿真验证系统及方法 |
CN102830981A (zh) * | 2012-09-12 | 2012-12-19 | 上海斐讯数据通信技术有限公司 | 一种用于嵌入式系统软件开发工具的实现方法 |
CN103164228A (zh) * | 2013-03-29 | 2013-06-19 | 北京经纬恒润科技有限公司 | 一种现场可编程门阵列程序的生成方法及装置 |
CN105302685A (zh) * | 2015-11-30 | 2016-02-03 | 北京润科通用技术有限公司 | 一种软硬件协同仿真测试方法和装置 |
-
2016
- 2016-07-01 CN CN201610520856.0A patent/CN106202685B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101499937A (zh) * | 2009-03-16 | 2009-08-05 | 盛科网络(苏州)有限公司 | 一种基于fpga的软硬件协同仿真验证系统及方法 |
CN102830981A (zh) * | 2012-09-12 | 2012-12-19 | 上海斐讯数据通信技术有限公司 | 一种用于嵌入式系统软件开发工具的实现方法 |
CN103164228A (zh) * | 2013-03-29 | 2013-06-19 | 北京经纬恒润科技有限公司 | 一种现场可编程门阵列程序的生成方法及装置 |
CN105302685A (zh) * | 2015-11-30 | 2016-02-03 | 北京润科通用技术有限公司 | 一种软硬件协同仿真测试方法和装置 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108121657A (zh) * | 2017-11-29 | 2018-06-05 | 北京京航计算通讯研究所 | 基于系统模型的可编程逻辑器件软件仿真验证系统 |
CN109711071A (zh) * | 2018-12-29 | 2019-05-03 | 成都海光集成电路设计有限公司 | 一种服务器SoC软硬件协同仿真加速方法及系统 |
CN109711071B (zh) * | 2018-12-29 | 2023-05-05 | 成都海光集成电路设计有限公司 | 一种服务器SoC软硬件协同仿真加速方法及系统 |
CN112003792A (zh) * | 2020-07-23 | 2020-11-27 | 烽火通信科技股份有限公司 | 一种软硬件协同的报文加速方法和装置 |
CN112003792B (zh) * | 2020-07-23 | 2022-04-15 | 烽火通信科技股份有限公司 | 一种软硬件协同的报文加速方法和装置 |
CN112115010A (zh) * | 2020-08-27 | 2020-12-22 | 深圳市紫金支点技术股份有限公司 | 一种自助设备的模拟测试方法、智能终端、存储介质 |
CN112115010B (zh) * | 2020-08-27 | 2024-05-10 | 深圳市紫金支点技术股份有限公司 | 一种自助设备的模拟测试方法、智能终端、存储介质 |
CN112540359A (zh) * | 2020-12-17 | 2021-03-23 | 航天恒星科技有限公司 | 一种适用于微波雷达的通用测试系统 |
CN112540359B (zh) * | 2020-12-17 | 2024-03-15 | 航天恒星科技有限公司 | 一种适用于微波雷达的通用测试系统 |
CN112614403A (zh) * | 2020-12-25 | 2021-04-06 | 深圳市小喵科技有限公司 | 硬件仿真方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106202685B (zh) | 2019-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106202685A (zh) | 一种软硬件协同仿真加速器运行环境搭建方法和装置 | |
Slade et al. | Reconfigurable computing application frameworks | |
US7913222B2 (en) | Automatic generation of code for component interfaces in models | |
US7406626B2 (en) | Test agent architecture | |
CN103198009B (zh) | 一种通用测试方法、系统及相应装置 | |
CN113342583B (zh) | 芯片验证系统、方法、装置、设备和存储介质 | |
CN107480382A (zh) | 一种快速收敛的覆盖率驱动验证方法 | |
CN111859834B (zh) | 一种基于uvm的验证平台开发方法、系统、终端及存储介质 | |
US20230120227A1 (en) | Method and apparatus having a scalable architecture for neural networks | |
US9235670B2 (en) | Method and an apparatus for automatic generation of verification environment for processor design and verification | |
CN103049601A (zh) | 一种信息系统仿真建模方法 | |
CN117892665B (zh) | 基于电路系统级模型的建模仿真方法、装置、介质及设备 | |
CN115115048A (zh) | 模型转换方法、装置、计算机设备及存储介质 | |
CN118052196A (zh) | 基于uvm的芯片验证测试方法、装置及电子设备 | |
CN108228965B (zh) | 一种存储单元的仿真验证方法、装置和设备 | |
EP2541448A1 (en) | Method and system for partial reconfiguration simulation | |
CN116431103B (zh) | 一种面向嵌入式软件的数字化DevOps平台设计方法 | |
CN107526585B (zh) | 基于Scala的FPGA开发平台及其调试、测试方法 | |
US8689153B1 (en) | M and A for importing hardware description language into a system level design environment | |
Herrholz et al. | The ANDRES project: analysis and design of run-time reconfigurable, heterogeneous systems | |
US10318682B1 (en) | Systems and methods for analyzing node impedance state | |
Arias et al. | A framework for composition, verification and real-time performance of multimedia interactive scenarios | |
US9886538B1 (en) | System and method for using heterogeneous hierarchical configurations for electronic design reuse | |
Note et al. | Rapid prototyping of DSP systems: requirements and solutions | |
Bergeron et al. | Logarithmic-time FPGA bitstream analysis: A step towards JIT hardware compilation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |