一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

FPGA芯片验证方法、系统、设备及存储介质与流程

2021-11-29 13:55:00 来源:中国专利 TAG:

fpga芯片验证方法、系统、设备及存储介质
技术领域
1.本发明涉及电子技术领域,尤其涉及一种fpga芯片验证方法、系统、设备及存储介质。


背景技术:

2.现场可编程门阵列(field

programmable gate array,简称fpga)芯片在通信、安防、工业等领域有着举足轻重的作用,随着工艺水平的逐步提升,fpga芯片的规模不断扩大、性能不断上升,同时验证工作量也随之增加,因此,如何有效地对大规模fpga电路进行全芯片功能仿真、提升验证的效率,已经成为fpga芯片设计和开发的重要课题。
3.fpga电路规模的扩大,意味着各个模块的数量、电路网表的规模、电路网表的规模、电路的复杂度也在增加。由于仿真工具的运行速度有限,而在仿真的过程中电路加载配置数据占据了仿真中的相当一部分时间成本,随着电路规模的增大,配置数据加载过程所消耗的时间也跟着延长。
4.因此,亟需一种可以减少验证时间、提高验证效率的fpga芯片验证方法。


技术实现要素:

5.本发明提供一种fpga芯片验证方法、系统、设备及存储介质,其主要目的在于减少fpga芯片的验证时间,有效提高fpga芯片的验证效率。
6.第一方面,本发明实施例提供一种fpga芯片验证方法,包括:
7.获取目标fpga芯片和位流文件,所述目标fpga芯片被划分为若干个电路区域,所述位流文件被划分为若干个数据区域,所述电路区域与所述数据区域一一对应;
8.将每一数据区域中的数据强制赋值给对应电路区域的配置点,以对所述目标fpga芯片进行仿真验证。
9.优选地,所述目标fpga芯片的若干个电路区域的划分步骤,包括:
10.对所述目标fpga芯片按照io bank进行划分,获取若干时钟区域;
11.根据所述目标fpga芯片的电路结构,将每一时钟区域划分为若干电路区域。
12.优选地,所述位流文件的若干个数据区域的划分步骤,包括:
13.根据所述时钟区域的大小和个数,将所述位流文件划分为若干位流子区域,每一位流子区域与每一时钟区域一一对应;
14.对于任一时钟区域和任一位流子区域,根据所述任一时钟区域中每一电路区域的数据位宽和地址位宽,将所述任一位流子区域划分为若干数据区域,每一数据区域与每一电路区域一一对应,所述任一时钟区域与所述任一位流子区域对应。
15.优选地,所述根据所述任一时钟区域中每一电路区域的数据位宽和地址位宽,将所述任一位流子区域划分为若干数据区域,包括:
16.对于任一电路区域,根据所述任一电路区域的数据位宽,确定横向位置;
17.根据所述任一电路区域的地址位宽,确定纵向位置;
18.根据所述横向位置和所述纵向位置,确定与所述任一电路区域对应的数据区域。
19.优选地,所述电路区域包括存储单元,所述配置点与所述存储单元的输出端口连接。
20.优选地,所述位流文件通过与所述目标fpga芯片相对应的仿真软件得到。
21.第二方面,本发明实施例提供一种fpga芯片验证系统,包括:
22.映射模块,用于获取目标fpga芯片和位流文件,所述目标fpga芯片被划分为若干个电路区域,所述位流文件被划分为若干个数据区域,所述电路区域与所述数据区域一一对应;
23.验证模块,用于将每一数据区域中的数据强制赋值给对应电路区域的配置点,以对所述目标fpga芯片进行仿真验证。
24.优选地,所述电路区域包括存储单元,所述配置点与所述存储单元的输出端口连接。
25.第三方面,本发明实施例提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述fpga芯片验证方法的步骤。
26.第四方面,本发明实施例提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述fpga芯片验证方法的步骤。
27.本发明提出的fpga芯片验证方法、系统、设备及存储介质,由于并不关心目标fpga芯片配置数据的加载过程,因此,只要位流文件中的数据能正确的去到正确的配置点即可,本发明实施例中通过建立目标fpga芯片电路区域的配置点和位流文件中数据之间的映射关系,然后将位流文件中的数据强制赋值到电路区域中具体的配置点上,减少了配置数据加载步骤,从而达到减少验证时间,提升验证效率的目的。
附图说明
28.图1为本发明实施例提供的一种fpga芯片验证方法的应用环境示意图;
29.图2为现有技术中fpga芯片的配置过程示意图;
30.图3为现有技术中存储单元的引脚示意图;
31.图4为本发明实施例提供的一种fpga芯片验证方法的流程图;
32.图5为本发明实施例中所使用目标fpga芯片的被划分为电路区域的示意图;
33.图6为本发明一优选实施例中对位流子区域进行划分的示意图;
34.图7为本发明实施例提供的一种fpga芯片验证系统的结构示意图;
35.图8为本发明实施例中提供的一种计算机设备的结构示意图。
36.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
37.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
38.图1为本发明实施例提供的一种fpga芯片验证方法的应用环境示意图,如图1所示,客户端获取到目标fpga芯片和位流文件后,将其发送给服务端,服务端接收到目标fpga芯片和位流文件后,执行该fpga芯片验证方法,对该目标fpga芯片进行仿真验证。
39.需要说明的是,服务端可以用独立的服务器或者是多个服务器组成的服务器集群来实现。客户端可为智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。客户端和服务端可以通过蓝牙、usb(universal serial bus,通用串行总线)或者其他通讯连接方式进行连接,本发明实施例在此不做限制。
40.通常地,fpga芯片进入正常工作状态之前,需要先进行一系列配置操作,图2为现有技术中fpga芯片的配置过程示意图,如图2所示,加载配置位流文件在fpga芯片仿真过程中会占有大部分仿真时间,并且,fpga芯片的电路规模越大,其所占用的时间越长。
41.现有技术中加载配置位流文件的过程是fpga芯片中的配置控制模块将位流数据以一定的配置方式送到各个阵列模块的存储单元中,图3为现有技术中存储单元的引脚示意图,如图3所示,存储单元包括3个引脚,分别为数据控制信号引脚addr、地址控制信号引脚data和输出端口q,存储单元通过数据控制信号addr和地址控制信号data将配置数据一帧一帧地传送到存储单元的输出端口q上,q端口就能连到fpga芯片电路中具体的配置信号上去,从而对fpga芯片进行控制。
42.由于现有技术中提供的大规模fpga芯片仿真验证方法的配置过程时间太长,从而导致仿真验证效率太低,针对该问题,本发明提供一种提高大规模fpga芯片逻辑验证效率的方案,图4为本发明实施例提供的一种fpga芯片验证方法的流程图,如图4所示,该方法包括:
43.本发明实施例所提供的的验证方法的目标对象是fpga芯片,fpga是作为专用集成电路领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
44.s410,获取目标fpga芯片和位流文件,所述目标fpga芯片被划分为若干个电路区域,所述位流文件被划分为若干个数据区域,所述电路区域与所述数据区域一一对应;
45.首先获取目标fpga芯片,此处可以是获取该目标fpga芯片的电路图,也可以是fpga芯片的逻辑图,并还需要获取位流文件,该位流文件是在验证前对fpga芯片进行配置用的。
46.位流文件中包含的数据是用来配置fpga芯片各个模块的,其一般的生成方法是利用与目标fpga芯片对应的软件工具生成,通过该位流文件的配置,执行后可以使得目标fpga芯片由半定制电路变成具有某些特定功能的芯片。
47.本发明实施例中,该目标fpga芯片被划分为多个个电路区域,每个电路区域之间的大小可以相同,也可以不同,具体根据实际情况进行确定。并且位流文件也被划分为多个个数据区域,该数据区域的个数和电路区域的个数是相同的,并且数据区域与电路区域是一一对应的关系,每个电路区域对应唯一一个数据区域。
48.具体地,该电路区域所对应的数据区域中所包含的数据就是电路区域的配置数据,需要将该数据区域中的配置数据赋值给该电路区域,以使得该电路区域在仿真执行后具有相应的功能。
49.s420,将每一数据区域中的数据强制赋值给对应电路区域的配置点,以对所述目标fpga芯片进行仿真验证。
50.在具体配置数据时,依次将每个数据区域中的数据强制赋值给对应电路区域的配置点,,一般地,位流文件中的数据用二进制数据标识,包括0和1,0表示该配置点为低电平,
1表示该配置点为高电平,将数据强制赋值给电路区域后,就可以对目标fpga进行仿真验证。
51.本发明实施例中,将数据强制赋值给对应电路区域的配置点,强制赋值又叫force,与普通赋值不同的是,强制赋值可以在一瞬间将所有的数据都赋值进去,而不是像普通方法一帧一帧的赋值进去,这样也能减少赋值过程,进一步节省时间成本。
52.本发明提出的fpga芯片验证方法,由于并不关心目标fpga芯片配置数据的加载过程,因此,只要位流文件中的数据能正确的去到正确的配置点即可,本发明实施例中通过建立目标fpga芯片电路区域的配置点和位流文件中数据之间的映射关系,然后将位流文件中的数据强制赋值到电路区域中具体的配置点上,减少了配置数据加载步骤,从而达到减少验证时间,提升验证效率的目的。
53.在上述实施例的基础上,优选地,所述目标fpga芯片的若干个电路区域的划分步骤,包括:
54.对所述目标fpga芯片按照io bank进行划分,获取若干时钟区域;
55.根据所述目标fpga芯片的电路结构,将每一时钟区域划分为若干电路区域。
56.具体地,在已知目标fpga芯片电路结构的情况下,通常fpga电路会划分时钟区域,划分时钟区域是指按照io bank进行区域划分,得到多个时钟区域。
57.需要说明的是,一般fpga芯片的io都分为若干个bank,例如xilinx的高端fpga,能分为22甚至更多个bank。这么做主要是为了提高灵活性,因为fpga的io支持2.5v、3.3v等种类电平输入输出,为了获得这些io电平,就需要在对应bank的供电引脚输入对应的电源电压,这样在一些复杂的系统中非常实用。
58.然后根据电路结构,该电路结构可以是指电路的位宽或字宽等参数,将每个时钟区域划分为一个或多个电路区域,每个电路区域的大小可以相同,也可以不同,具体根据实际情况进行确定。
59.在上述实施例的基础上,优选地,所述位流文件的若干个数据区域的划分步骤,包括:
60.根据所述时钟区域的大小和个数,将所述位流文件划分为若干位流子区域,每一位流子区域与每一时钟区域一一对应;
61.对于任一时钟区域和任一位流子区域,根据所述任一时钟区域中每一电路区域的数据位宽和地址位宽,将所述任一位流子区域划分为若干数据区域,每一数据区域与所述每一电路区域一一对应,所述任一时钟区域与所述任一位流子区域对应。
62.具体地,根据时钟区域的个数,将位流文件中的数据也划分为同等个数的位流子区域,并且位流子区域的大小与时钟区域的大小也是一一对应的。然后对每个位流子区域进行划分,将每个位流子区域都划分为一个或多个数据区域。
63.以其中一个位流子区域为例进行说明,具体划分方法如下:
64.找到与该位流子区域对应的时钟区域,并根据该电路区域的数据位宽和地址位宽,对该位流子区域进行划分,将该位流子区域划分为一个或多个数据区域,并且使得该位流子区域中每个数据区域与该时钟区域中的每个数据区域都是一一映射的关系。
65.具体划分方法本发明实施例不做具体限制,只需要电路区域和数据区域是一一对应的关系即可。
66.举例地,某时钟区域划分成了1行乘以3列的电路区域,那么位流子区域也被划分为3个数据区域,这3个区域可以按照1行乘以3列的形式分布,也可以是按照3行乘以1列的形式分布,其具体分布形式可以随时调整,无论数据区域在位流子区域中的位置如何变化,只要保证映射关系是唯一的即可。
67.在上述实施例的基础上,优选地,所述根据所述任一时钟区域中每一电路区域的数据位宽和地址位宽,将所述任一位流子区域划分为若干数据区域,包括:
68.对于任一电路区域,根据所述任一电路区域的数据位宽,确定横向位置;
69.根据所述任一电路区域的地址位宽,确定纵向位置;
70.根据所述横向位置和所述纵向位置,确定与所述任一电路区域对应的数据区域。
71.举例地,如果某时钟区域被划分为4个电路区域,这4个电路区域按照2行2列的模式分布,且电路区域的数据位宽为2,地址位宽为5,那么,对于第1行第1列的电路区域,该电路区域对应的横向位置为位流子区域中第1行到第2行,该电路区域对应的纵向位置位位流子区域中的第1列到第5列,将该位流子区域中第1行到第2行、第1列到第5列的数据作为对应的数据区域;对于第1行第2列的电路区域,该电路区域的横向位置位第1行到第2行,纵向位置位第6列到第10列,将该位流子区域中第1行到第2行、第6列到第10列的数据作为对应的数据区域;对于第2行第1列的电路区域,该电路区域的横向位置位第3行到第4行,纵向位置位第1列到第5列,将该位流子区域中第3行到第4行、第1列到第5列的数据作为对应的数据区域;对于第2行第2列的电路区域,该电路区域的横向位置位第3行到第4行,纵向位置位第6列到第10列,将该位流子区域中第3行到第4行、第6列到第10列的数据作为对应的数据区域。
72.在上述实施例的基础上,优选地,所述电路区域包括存储单元,所述配置点与所述存储单元的输出端口连接。
73.具体地,每个电路区域都包括一个存储单元,存储单元的具体结构与现有技术中相同,具体参见图3,本发明实施例中的配置点与存储单元的输出端口q连接,在实施过程中,将数据区域中的数据强制赋值到对应电路区域中存储单元的q端口,通过q端口驱动该配置点,q端口的值发生变化,对应的配置点取值也随着发生变化。
74.本发明一优选实施例提供一种fpga芯片验证方法,图5为本发明实施例中所使用目标fpga芯片的被划分为电路区域的示意图,如图5所示,按照io bank,将该目标fpga芯片划分为6个时钟区域,配置数据的顺序是先给时钟区域1进行配置,然后依次配置时钟区域2、时钟区域3、时钟区域4、时钟区域5和时钟区域6,并且每个时钟区域被划分为6个电路区域,这6个电路区域呈3行2列进行排列,进行数据配置时,可以先配置左边的电路区域,再配置右边的电路区域,也可以按照从左到右、从上到下的顺序进行配置,具体可以根据实际情况进行调整。
75.本发明实施例中,以时钟区域1为例进行说明,将时钟区域1中的电路区域1、电路区域3和电路区域5称之为a类型模块,电路区域2、电路区域4和电路区域6称之为b类型模块,a类型模块的地址位宽为5,a类型模块的数据位宽为2,b类型模块的地址位宽为15,b类型模块的数据位宽为2。
76.那么,根据电路与位流文件的映射规律,该位流文件也被划分为6个位流子区域,分别为位流子区域1、位流子区域2、位流子区域3、位流子区域4、位流子区域5和位流子区域
6,时钟区域1与位流子区域1对应,时钟区域2与位流子区域2对应,时钟区域3与位流子区域3对应,时钟区域4与位流子区域4对应,时钟区域5与位流子区域5对应,时钟区域6与位流子区域6对应。
77.为了方便说明,以时钟区域1和位流子区域1相对应为例进行说明,图6为本发明一优选实施例中对位流子区域进行划分的示意图,如图6所示,电路区域1为a类型模块,其数据位宽为2,地址位宽为5,故将位流子区域中第1行和第2行中、第1列和第5列的数据作为数据区域1,与电路区域1相对应;将将位流子区域中第1行和第2行中、第1列和第5列的数据作为数据区域1,电路区域2为b类型模块,其数据位宽为2,地址位宽为15,故将位流子区域中第1行和第2行中、第6列到第15列的数据作为数据区域2。依此类推,划分出6个数据区域,并与每个电路区域相互对应。
78.在具体配置的过程中,从数据区域1中读取数据区域1中的数据,然后将读取数据区域1中的数据强制赋值给电路区域1中存储单元的q端口,将读取数据区域2中的数据强制赋值给电路区域2中存储单元的q端口。其它电路区域也进行同样的处理。
79.按照该方法,对每一个电路区域进行强制赋值,然后再对其它时钟区域的每个电路区域进行同样的操作,使得每个电路区域都被配置了相应的数据,从而在后期执行时能对目标fpga芯片进行校验。
80.本发明提出的fpga芯片验证方法、系统、设备及存储介质,由于并不关心目标fpga芯片配置数据的加载过程,因此,只要位流文件中的数据能正确的去到正确的配置点即可,本发明实施例中通过建立目标fpga芯片电路区域的配置点和位流文件中数据之间的映射关系,然后将位流文件中的数据强制赋值到电路区域中具体的配置点上,减少了配置数据加载步骤,从而达到减少验证时间,提升验证效率的目的。
81.且,将数据强制赋值给对应电路区域的配置点,与普通赋值不同的是,将位流数据强制赋值到电路区域的配置点,可以在一瞬间将所有的数据都赋值进去,而不是像普通方法一帧一帧的赋值进去,这样也能减少赋值步骤,进一步节省时间成本。
82.图7为本发明实施例提供的一种fpga芯片验证系统的结构示意图,如图7所示,该系统包括映射模块710和验证模块720,其中:
83.映射模块710用于获取目标fpga芯片和位流文件,所述目标fpga芯片被划分为若干个电路区域,所述位流文件被划分为若干个数据区域,所述电路区域与所述数据区域一一对应;
84.验证模块720用于将每一数据区域中的数据强制赋值给对应电路区域的配置点,以使得对所述目标fpga进行仿真验证。
85.具体地,所述电路区域包括存储单元,所述配置点与所述存储单元的输出端口连接。
86.本实施例为与上述fpga芯片验证方法的相对应的系统实施例,其具体实施过程与上述方法相同,详情请参考上述方法实施例,本系统实施例在此不再赘述。
87.上述fpga芯片验证系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
88.图8为本发明实施例中提供的一种计算机设备的结构示意图,该计算机设备可以
是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括计算机存储介质、内存储器。该计算机存储介质存储有操作系统、计算机程序和数据库。该内存储器为计算机存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储执行fpga芯片验证方法过程中生成或获取的数据,如目标fpga芯片和位流文件。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种fpga芯片验证方法。
89.在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中的fpga芯片验证方法的步骤,例如图4所示的步骤。或者,处理器执行计算机程序时实现fpga芯片验证系统这一实施例中的各模块/单元的功能,例如图7所示的各模块/单元的功能,为避免重复,这里不再赘述。
90.在一实施例中,提供一计算机存储介质,该计算机存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中fpga芯片验证方法的步骤,例如图2所示的步骤,为避免重复,这里不再赘述。或者,该计算机程序被处理器执行时实现上述fpga芯片验证系统这一实施例中的各模块/单元的功能,例如图7所示的各模块/单元的功能,为避免重复,这里不再赘述。
91.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
92.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
93.以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献