1.本发明属于芯片测试技术领域,涉及一种数据验证方法,特别是涉及一种数据验证平台及其数据验证方法、计算机可读存储介质。
背景技术:2.使用fpga的原型/仿真系统对于asic的系统有效性验证和其他系统级验证有着至关重要的作用。随着asic设计时的使用的逻辑门数量日益增多,一个原型系统或仿真系统可能会使用多片fpga以满足用户的设计需求。
3.部署多fpga的大型原型或仿真系统可以进行asic最终的系统级验证。但在进入这一阶段前,用户可能更多地会使用该系统进行单ip的验证。单ip验证仅需占用小部分fpga的能力,需等待特定的硬件被释放后才可以进行数据作业,产生fpga资源的使用效率较低,灵活性低等缺陷。
4.因此,如何提供一种数据验证平台及其数据验证方法、计算机可读存储介质,以解决现有技术需等待特定的硬件被释放后才可以进行数据作业,无法高效使用fpga资源等缺陷,实已成为本领域技术人员亟待解决的技术问题。
技术实现要素:5.鉴于以上所述现有技术的缺点,本发明的目的在于提供一种数据验证平台及其数据验证方法、计算机可读存储介质,用于解决现有技术需等待特定的硬件被释放后才可以进行数据作业,无法高效使用fpga资源的问题。
6.为实现上述目的及其他相关目的,本发明一方面提供一种数据验证平台,包括至少两组扩展模块及与该扩展模块连接的主控模块;所述扩展模块用于接收所述待验证项目数据,并验证所述待验证项目数据;所述主控模块用于编译与所述待验证项目数据相关的基础数据文件及检测所述扩展模块的运行状态;且当检测到已验证过所述待验证项目数据的扩展模块处于被占用状态,且存在处于空闲状态的另一组扩展模块时,将所述基础数据文件中的环境配置变量进行修改;根据修改后的环境配置变量将所述基础数据文件映射至所述另一组扩展模块;所述基础数据文件包括用于表征数据验证地址的环境配置变量;所述扩展模块的运行状态包括占用状态和空闲状态。
7.于本发明的一实施例中,所述扩展模块包括至少一fpga;或所述扩展模块包括至少两个级联的扩展单元及与每一扩展单元连接的控制单元;其中,所述扩展单元包括若干级联的fpga;所述环境配置变量包括fpga的物理位置id和/或控制单元的物理位置id。
8.于本发明的一实施例中,所述主控模块还用于为每一所述控制单元分配物理位置id。
9.本发明又一方面提供一种基于数据验证平台的数据验证方法,所述数据验证平台包括至少两组级联的扩展模块及与该扩展模块连接的主控模块;所述数据验证方法包括:当至少一组扩展模块接收到所述待验证项目数据时,验证所述待验证项目数据,并且所述
主控模块编译与所述待验证项目数据相关的基础数据文件;所述基础数据文件包括用于表征数据验证地址的环境配置变量;待所述主控模块检测到已验证过所述待验证项目数据的扩展模块处于占用状态状态,且存在处于空闲状态的另一组扩展模块时,将所述基础数据文件中的环境配置变量进行修改;根据修改后的环境配置变量将所述基础数据文件映射至所述另一组扩展模块,以便所述另一组扩展模块验证所述待验证项目数据。
10.于本发明的一实施例中,所述编译与所述待验证项目数据相关的基础数据文件的步骤包括:编译与所述待验证项目数据相关的代码,设置约束条件、综合rtl代码、生成网表文件及布局布线。
11.于本发明的一实施例中,当每组扩展模块包括至少一fpga时,所述环境配置变量包括fpga的物理位置id。
12.于本发明的一实施例中,当至少一个fpga组成项目运行组,所述环境配置变量包括fpga的物理位置id时,所述数据验证方法包括:当项目运行组接收到所述待验证项目数据时,验证所述待验证项目数据,并且所述主控模块编译与所述待验证项目数据相关的基础数据文件;待所述主控模块检测到已验证过所述待验证项目数据的项目运行组处于占用状态时,检测是否存在处于空闲状态的fpga;若是,将处于空闲状态的fpga组合成另一项目运行组;将所述基础数据文件中已验证过所述待验证项目数据的项目运行组中fpga的物理位置id修改为另一项目运行组中fpga的物理位置id;根据另一项目运行组中fpga的物理位置id将所述基础数据文件映射至所述另一项目运行组,以便所述另一项目运行组验证所述待验证项目数据;其中,所述另一项目运行组中fpga的数量与已验证过所述待验证项目数据的项目运行组中fpga的数量一致。
13.于本发明的一实施例中,当每组扩展模块包括至少两个级联的扩展单元及与每一扩展单元连接的控制单元,所述扩展单元包括至少两个级联的fpga;每一所述控制单元均与所述主控单元连接;每一所述控制单元具有所述主控模块其分配的物理位置id;所述环境变量包括控制单元的物理位置id。
14.于本发明的一实施例中,当至少一个扩展单元组成项目运行组,所述环境变量包括控制单元的物理位置id时,所述数据验证方法包括:当项目运行组接收到所述待验证项目数据时,验证所述待验证项目数据,并且所述主控模块编译与所述待验证项目数据相关的基础数据文件;待所述主控模块检测到已验证过所述待验证项目数据的项目运行组处于已占用状态时,检测是否存在处于空闲状态的扩展单元;若是,将处于空闲状态的扩展单元组合成另一项目运行组;所述主控模块将所述基础数据文件中已验证过所述待验证项目数据的项目运行组中控制单元的物理位置id修改为另一项目运行组中控制单元的物理位置id;根据另一项目运行组中控制单元的物理位置id将所述基础数据文件映射至所述另一项目运行组,以便所述另一项目运行组验证所述待验证项目数据;其中,所述另一项目运行组中扩展单元的数量与已验证过所述待验证项目数据的项目运行组中扩展单元的数量一致。
15.本发明最后一方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现所述基于数据验证平台的数据验证方法。
16.如上所述,本发明的数据验证平台及其数据验证方法、计算机可读存储介质,具有以下有益效果:
17.本发明可以使得“设计”或“数据”不拘泥于特定的硬件,可以将相关的设计和数据
按需映射到任意空闲的硬件资源上,以进行必要的ip核验证。将验证数据与硬件解耦,可以使得多用户同时进行多ip核的验证,而无需等待特定的硬件被释放后才进行作业便可以向用户提供共享整个fpga原型/仿真系统的能力与灵活性,高效率使用fpga资源。
附图说明
18.图1显示为本发明的数据验证平台于一实施例中的原理结构示意图。
19.图2a显示为本发明的数据验证平台的一实施结构示意图。
20.图2b显示为本发明的数据验证平台的另一实施结构示意图。
21.图3显示为本发明的基于数据验证平台的数据验证方法的流程示意图。
22.元件标号说明
23.1数据验证平台
24.11扩展模块
25.12主控模块
26.111fpga
27.112扩展单元
28.113控制单元
29.s31~s33步骤
具体实施方式
30.以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
31.需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
32.实施例一
33.本实施例提供一种数据验证平台,包括至少两组扩展模块及与该扩展模块连接的主控模块;
34.所述扩展模块用于接收所述待验证项目数据,并验证所述待验证项目数据;
35.所述主控模块用于编译与所述待验证项目数据相关的基础数据文件及检测所述扩展模块的运行状态;且当检测到已验证过所述待验证项目数据的扩展模块处于被占用状态状态,且存在处于空闲状态的另一组扩展模块时,将所述基础数据文件中的环境配置变量进行修改;根据修改后的环境配置变量将所述基础数据文件映射至所述另一组扩展模块;所述基础数据文件包括用于表征数据验证地址的环境配置变量;所述扩展模块的运行状态包括占用状态和空闲状态。
36.以下将结合图示对本实施例所提供的数据验证平台进行详细描述。本实施例所述
数据验证平台支持便携数据库,该数据验证平台中一扩展模块在设计验证项目数据后,待后续该扩展模块出于占用状态后,无需重新编译即可将项目数据映射至另一扩展模块上。
37.请参阅图1,显示为数据验证平台于一实施例中的原理结构示意图。如图1所示,本实施例所述数据验证平台1包括至少两组扩展模块11及与该扩展模块11连接的主控模块12。
38.所述扩展模块11用于接收所述待验证项目数据,并验证所述待验证项目数据。在本实施例中,所述待验证项目数据包括芯片的电路逻辑,时钟功能等等。验证待验证项目数据是指模拟/仿真电路芯片的电路逻辑、时钟功能等。
39.所述主控模块12用于编译与所述待验证项目数据相关的基础数据文件及检测所述扩展模块11的运行状态;且当检测到已验证过所述待验证项目数据的扩展模块11处于被占用状态,且存在处于空闲状态的另一组扩展模块时,将所述基础数据文件中的环境配置变量进行修改;根据修改后的环境配置变量将所述基础数据文件映射至所述另一组扩展模块11。
40.在本实施例中,所述主控模块12编译与所述待验证项目数据相关的基础数据文件包括编译与所述待验证项目数据相关的代码,设置约束条件、综合rtl代码、生成网表文件及布局布线
41.待所述另一组扩展模块11接收与所述待验证项目数据相关的基础数据文件后,继续验证该待验证项目数据。
42.请参阅图2a,显示为数据验证平台的一实施结构示意图。如图2a所示,所述扩展模块11包括至少一fpga111。
43.当所述扩展模块11包括至少一fpga111,至少一个fpga组成项目运行组,所述环境配置变量包括fpga的物理位置id时,当项目运行组接收到所述待验证项目数据时,验证所述待验证项目数据,并且所述主控模块编译与所述待验证项目数据相关的基础数据文件;
44.待所述主控模块12检测到已验证过所述待验证项目数据的项目运行组处于占用状态时,检测是否存在处于空闲状态的fpga;若是,将处于空闲状态的fpga组合成另一项目运行组;将所述基础数据文件中已验证过所述待验证项目数据的项目运行组中fpga的物理位置id修改为另一项目运行组中fpga111的物理位置id;根据另一项目运行组中fpga111的物理位置id将所述基础数据文件映射至所述另一项目运行组中的fpga111,以便所述另一项目运行组验证所述待验证项目数据。
45.在本实施例中,所述另一项目运行组中fpga的数量与已验证过所述待验证项目数据的项目运行组中fpga的数量一致。
46.例如,所述扩展模块11包括fpga111a和111b时,
47.当fpga111a接收到芯片的电路逻辑时,模拟所述芯片的电路逻辑,并且所述主控模块编译与所述芯片的电路逻辑相关的基础数据文件;
48.待所述主控模块12检测到已模拟所述芯片的电路逻辑的fpga11a处于占用状态时,检测是否存在处于空闲状态的fpga11b;若是,将处于空闲状态的fpga11b组合成另一项目运行组;将所述基础数据文件中已模拟过芯片的电路逻辑的fpga11a的物理位置id修改为fpga11b的物理位置id;根据fpga11b的物理位置id将所述基础数据文件映射至所述fpga11b,以便所述fpga11b继续模拟所述芯片的电路逻辑。
49.请参阅图2b,显示为数据验证平台的另一实施结构示意图。如图2b所示,所述扩展模块11包括至少两个级联的扩展单元112(所述扩展单元112包括若干级联的fpga)及与每一扩展单元连接的控制单元113,每一所述控制单元113具有所述主控模块12其分配的物理位置id。所述环境配置变量包括控制单元的物理位置id。
50.当至少一个扩展单元组成项目运行组,所述环境变量包括控制单元的物理位置id时,所述数据验证方法包括:
51.当所述项目运行组接收到所述待验证项目数据时,验证所述待验证项目数据,并且所述主控模块12编译与所述待验证项目数据相关的基础数据文件。
52.待所述主控模块12检测到已验证过所述待验证项目数据的项目运行组处于已占用状态时,检测是否存在处于空闲状态的扩展单元;若是,将处于空闲状态的扩展单元组合成另一项目运行组;所述主控模块12将所述基础数据文件中已验证过所述待验证项目数据的项目运行组中控制单元的物理位置id修改为另一项目运行组中控制单元113的物理位置id;根据另一项目运行组中控制单元113的物理位置id将所述基础数据文件映射至所述另一项目运行组,以便所述另一项目运行组验证所述待验证项目数据。在本实施例中,所述另一项目运行组中扩展单元的数量与已验证过所述待验证项目数据的项目运行组中扩展单元的数量一致,每一个扩展单元中级联的fpga之间的管脚连接相同。
53.例如,主控模块管理8个扩展单元(亦称slot),而每个slot中又有多个fpga进行级联,且每个slot内fpga之间的管脚连接完全相同,同时以背板来连接8块slot,slot1-slot4之间的管脚连接与slot5-8之间的管脚连接完全相同,且slot1-2/3-4/5-6/7-8之间的管脚连接也完全相同。因此,在设计验证项目数据只占用一块slot时,在第二次进行设计验证时更换任一slot进行设计验证。在设计验证项目数据占用2块slot时,可以由slot1&slot2更换到slot3&slot4、slot5&slot6、slot7&slot8进行设计验证,在设计验证项目数据占用3块slot时,可以由slot1&slot2&slot3更换到slot5&slot6&slot7进行设计验证。
54.需要说明的是,应理解以上装置的各个模块/单元的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块/单元可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块/单元通过处理元件调用软件的形式实现,部分模块/单元通过硬件的形式实现。例如,x模块/单元可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上x模块/单元的功能。其它模块/单元的实现与之类似。此外这些模块/单元全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块/单元可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
55.例如,以上这些模块/单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,简称asic),或,一个或多个微处理器(digital singnal processor,简称dsp),或,一个或者多个现场可编程门阵列(field programmable gate array,简称fpga)等。再如,当以上某个模块/单元通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,简称cpu)或其它可以调用程序代码的处理器。再
如,这些模块/单元可以集成在一起,以片上系统(system-on-a-chip,简称soc)的形式实现。
56.实施例二
57.本实施例提供一种基于数据验证平台的数据验证方法,所述数据验证平台包括至少两组级联的扩展模块及与该扩展模块连接的主控模块;所述数据验证方法包括:
58.当至少一组扩展模块接收到所述待验证项目数据时,验证所述待验证项目数据,并且所述主控模块编译与所述待验证项目数据相关的基础数据文件;所述基础数据文件包括用于表征数据验证地址的环境配置变量;
59.待所述主控模块检测到已验证过所述待验证项目数据的扩展模块处于占用状态状态,且存在处于空闲状态的另一组扩展模块时,将所述基础数据文件中的环境配置变量进行修改;根据修改后的环境配置变量将所述基础数据文件映射至所述另一组扩展模块,以便所述另一组扩展模块验证所述待验证项目数据。
60.以下将结合图示对本实施例所提供的基于数据验证平台的数据验证方法进行详细描述。所述数据验证平台包括至少两组扩展模块及与该扩展模块连接的主控模块。所述扩展模块包括至少一fpga;或所述扩展模块包括至少两个级联的扩展单元及与每一扩展单元连接的控制单元;其中,所述扩展单元包括若干级联的fpga,每一所述控制单元具有所述主控模块其分配的物理位置id。所述环境配置变量包括fpga的物理位置id和/或控制单元的物理位置id。
61.请参阅图3,显示为基于数据验证平台的数据验证方法的流程示意图。如图3所示,所述基于数据验证平台的数据验证方法具体包括以下步骤:
62.s31,当至少一组扩展模块接收到所述待验证项目数据时,验证所述待验证项目数据,并且所述主控模块编译与所述待验证项目数据相关的基础数据文件;所述基础数据文件包括用于表征数据验证地址的环境配置变量。
63.在本实施例中,所述s31中主控模块编译与所述待验证项目数据相关的基础数据文件包括编译与所述待验证项目数据相关的代码,设置约束条件、综合rtl代码、生成网表文件及布局布线。
64.s32,待所述主控模块检测到已验证过所述待验证项目数据的扩展模块处于占用状态状态,且存在处于空闲状态的另一组扩展模块时,将所述基础数据文件中的环境配置变量进行修改;根据修改后的环境配置变量将所述基础数据文件映射至所述另一组扩展模块。
65.当每组扩展模块包括至少一fpga时,所述环境配置变量包括fpga的物理位置id。
66.当至少一个fpga组成项目运行组,所述环境配置变量包括fpga的物理位置id时,所述s32包括:
67.待所述主控模块检测到已验证过所述待验证项目数据的项目运行组处于占用状态时,检测是否存在处于空闲状态的fpga;若是,将处于空闲状态的fpga组合成另一项目运行组;将所述基础数据文件中已验证过所述待验证项目数据的项目运行组中fpga的物理位置id修改为另一项目运行组中fpga的物理位置id;根据另一项目运行组中fpga的物理位置id将所述基础数据文件映射至所述另一项目运行组;其中,所述另一项目运行组中fpga的数量与已验证过所述待验证项目数据的项目运行组中fpga的数量一致。
68.当每组扩展模块包括至少两个级联的扩展单元及与每一扩展单元连接的控制单元,所述扩展单元包括至少两个级联的fpga及与该fpga连接的控制单元时,所述环境变量包括控制单元的物理位置id。
69.当至少一个扩展单元组成项目运行组,所述环境变量包括控制单元的物理位置id时,所述s32包括:
70.待所述主控模块检测到已验证过所述待验证项目数据的项目运行组处于已占用状态时,检测是否存在处于空闲状态的扩展单元;若是,将处于空闲状态的扩展单元组合成另一项目运行组;所述主控模块将所述基础数据文件中已验证过所述待验证项目数据的项目运行组中控制单元的物理位置id修改为另一项目运行组中控制单元的物理位置id;根据另一项目运行组中控制单元的物理位置id将所述基础数据文件映射至所述另一项目运行组。其中,所述另一项目运行组中扩展单元的数量与已验证过所述待验证项目数据的项目运行组中扩展单元的数量一致。
71.s33,所述另一组扩展模块验证所述待验证项目数据。
72.当至少一个fpga组成项目运行组时,包括fpga的项目运行组验证所述待验证项目数据。
73.当至少一个扩展单元组成项目运行组时,包括扩展单元的项目运行组验证所述待验证项目数据。
74.本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如图3所述数据验证方法。
75.在任何可能的技术细节结合层面,本技术可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本技术的各个方面的计算机可读程序指令。
76.计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是(但不限于)电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
77.这里所描述的计算机可读程序可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。用于执行本技术操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据
或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本技术的各个方面。
78.综上所述,本发明数据验证平台及其数据验证方法、计算机可读存储介质可以使得“设计”或“数据”不拘泥于特定的硬件,可以将相关的设计和数据按需映射到任意空闲的硬件资源上,以进行必要的ip核验证。将验证数据与硬件解耦,可以使得多用户同时进行多ip核的验证,而无需等待特定的硬件被释放后才进行作业,便可以向用户提供共享整个fpga原型/仿真系统的能力与灵活性,高效率使用fpga资源。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
79.上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。