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

FPGA电路TILE层级连接检查方法、装置、电子设备及存储介质与流程

2022-07-02 12:50:28 来源:中国专利 TAG:

fpga电路tile层级连接检查方法、装置、电子设备及存储介质
技术领域
1.本发明涉及fpga电路检查技术领域,尤其涉及一种fpga电路tile层级连接检查方法、装置、电子设备及计算机可读存储介质。


背景技术:

2.fpga(field-programmable gatearray)芯片在通信、安防、工业等领域有着举足轻重的作用,随着工艺水平的逐步提升,fpga芯片的规模不断扩大、性能不断提升,同时验证工作量也随之增加。如何有效地提升大规模fpga电路的验证效率,已经成为重要课题。
3.fpga电路规模的扩大,意味着模块的数量、电路网表的规模、连接的复杂度的增加,而tile层级作为fpga电路验证层次之一,编写断言检查文件用于连接检查趋于消耗更多时间,与此同时,tile bma(behaviormicro-architecture)模型与tile netlist网表的连接检查相互独立进行,存在一定的重复和冗余,使得tile层级验证效率较低。


技术实现要素:

4.本发明的目的在于提供一种fpga电路tile层级连接检查方法、装置、电子设备及计算机可读存储介质,以解决现有技术中tile层级验证效率较低的技术问题。
5.本发明的技术方案如下,提供了一种fpga电路tile层级连接检查方法,包括:
6.获取tile层级tile bma模型中各功能模块及cram单元之间的连接关系,根据该连接关系,生成第一连接检查断言文件;
7.获取tile层级tile netlist网表中各功能模块及cram单元之间的连接关系,根据该连接关系,生成第二连接检查断言文件;
8.利用所述第一连接检查断言文件先后检查所述tile bma模型与所述tile netlist网表的连接是否正确,利用所述第二连接检查断言文件先后检查所述tile netlist网表与所述tile bma模型的是否正确。
9.进一步地,所述fpga电路tile层级连接检查方法,所述获取tile层级tile bma模型中各功能模块及cram单元之间的连接关系,包括:
10.获取tile层级tile bma模型中各功能模块及cram单元的端口连接的线名,根据所述端口连接线名获取各功能模块及cram单元之间的连接关系。
11.进一步地,根据所述端口连接线名获取各功能模块及cram单元之间的连接关系,包括:
12.若两个功能模块的的端口连接线名一致,则该两个功能模块相连接,以此获取各功能模块及cram单元之间的连接关系。
13.进一步地,根据所述端口连接线名获取各功能模块及cram单元之间的连接关系,还包括:
14.若一个功能模块与一个cram单元的端口连接线名一致,则该功能模块与该cram单元连接,以此获取各功能模块及cram单元之间的连接关系。
15.进一步地,在利用所述第一连接检查断言文件先后检查所述tile bma模型与所述tile netlist网表的连接是否正确之前,还包括,若所述tile bma模型与所述tile netlist网表中相同功能模块或者相同cram单元的例化名不一致,则使所述tile bma模型与所述tile netlist网表中相同功能模块或者相同cram单元的例化名一致。
16.进一步地,使所述tile bma模型与所述tile netlist网表中相同功能模块或者相同cram单元的例化名一致,包括:
17.分别从所述tile bma模型、tile netlist网表中提取模块名及其实例化名,将所述tile netlist网表中与所述tile bma模型相同的模块名,对应的实例化名修改为与tile bma模型中该模块名的实例化名一致。
18.进一步地,使所述tile bma模型与所述tile netlist网表中相同功能模块或者相同cram单元的例化名一致,包括:
19.分别从所述tile bma模型、tile netlist网表中提取模块名及其实例化名,将所述tile bma模型中与所述tile netlist网表相同的模块名,对应的实例化名修改为与tile netlist网表中该模块名的实例化名一致。
20.本发明的另一技术方案如下,提供了一种fpga电路tile层级连接检查装置,包括第一断言文件生成模块、第二断言文件生成模块及连接检查模块;
21.所述第一断言文件生成模块,用于获取tile层级tile bma模型中各功能模块及cram单元之间的连接关系,根据该连接关系,生成第一连接检查断言文件;
22.所述第二断言文件生成模块,用于获取tile层级tile netlist网表中各功能模块及cram单元之间的连接关系,根据该连接关系,生成第二连接检查断言文件;
23.所述连接检查模块,用于利用所述第一连接检查断言文件先后检查所述tile bma模型与所述tile netlist网表的连接是否正确,利用所述第二连接检查断言文件先后所述tile netlist网表与所述tile bma模型的是否正确。
24.本发明的另一技术方案如下,提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一项技术方案所述的fpga电路tile层级连接检查方法。
25.本发明的另一技术方案如下,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项技术方案所述的fpga电路tile层级连接检查方法。
26.本发明的有益效果在于:获取tile层级tile bma模型中各功能模块及cram单元之间的连接关系,根据该连接关系,生成第一连接检查断言文件;获取tile层级tile netlist网表中各功能模块及cram单元之间的连接关系,根据该连接关系,生成第二连接检查断言文件;利用所述第一连接检查断言文件先后检查所述tile bma模型与所述tile netlist网表的连接是否正确,利用所述第二连接检查断言文件先后检查所述tile netlist网表与所述tile bma模型的是否正确;通过上述方式,提高了tile层级验证效率。
附图说明
27.图1为本发明第一实施例的fpga电路tile层级连接检查方法的流程示意图;
28.图2为本发明第一实施例的tile层级结构的示意图;
29.图3为本发明第二实施例的fpga电路tile层级连接检查装置的结构示意图;
30.图4为本发明第三实施例的电子设备的结构示意图。
具体实施方式
31.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
32.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
33.图1是本发明第一实施例的fpga电路tile层级连接检查方法的流程示意图。需注意的是,若有实质上相同的结果,本发明的fpga电路tile层级连接检查方法,并不以图1所示的流程顺序为限。如图1所示,该fpga电路tile层级连接检查方法,主要包括以下步骤:
34.s101,获取tile层级tile bma模型中各功能模块及cram单元之间的连接关系,根据该连接关系,生成第一连接检查断言文件;
35.s102,获取tile层级tile netlist网表中各功能模块及cram单元之间的连接关系,根据该连接关系,生成第二连接检查断言文件;
36.s103,利用所述第一连接检查断言文件先后检查所述tile bma模型与所述tile netlist网表的连接是否正确,利用所述第二连接检查断言文件先后检查所述tile netlist网表与所述tile bma模型的是否正确。
37.其中,fpga电路tile层级中包括多个功能模块及cram单元等基本模块,这些功能模块为能实现一些fpga基本功能的模块,例如,iob tile层级的各功能模块包括iobd、iobs、bscr、bkcl、ccs等;该cram单元用于存放能控制上述功能模块基本功能的配置点,cram单元为通过字线位线控制配置数据流走向的电路模块。
38.具体实施时,在生成连接检查断言文件时,使用脚本,先基于tile bma模型提取内部各模块的第一连接检查断言文件,然后基于tile netlist网表,提取出第二断言检查文件。
39.在一个可选的实施方式中,所述获取tile层级tile bma模型中各功能模块及cram单元之间的连接关系,包括:
40.获取tile层级tile bma模型中各功能模块及cram单元的端口连接的线名,根据所述端口连接线名获取各功能模块及cram单元之间的连接关系。
41.一个具体实施例中,在tile层级结构中存在几种连接关系,这些连接关系包括各功能模块之间的连接关系、功能模块到顶层的连接关系、cram单元到功能模块的连接关系、cram单元到顶层(地址和数据端口)的连接关系,tile层级结构的示意图,如图2所示。tile层级连接检查,需要保证上述几种连接关系的正确性,从而确保功能模块之间、功能模块到顶层的信号传递正常,并保证在全芯片层面,位流通过cram能正确配置到功能模块的各个具体配置点。
42.在一个可选的实施方式中,根据所述端口连接线名获取各功能模块及cram单元之间的连接关系,包括:
43.若两个功能模块的的端口连接线名一致,则该两个功能模块相连接,以此获取各功能模块及cram单元之间的连接关系。
44.一个具体实施例中,通过脚本从tile bma模型或tile netlist网表中提取各模块的例化名,其后提取出模块的端口,然后提取出端口连接线名,通过脚本比对提取出的信息,查询哪两个模块的端口连接线名一致。tile层级bma模型基本格式的部分脚本代码为
45.‘
timescale 1ns/1ps
46.moduleand_or_tile(
47.inout data,
48.input addr_1.
49.input addr_2,
50.input[1:0]a,
[0051]
output[1:0]b);
[0052]
wire q_1;
[0053]
wire q_2;
[0054]
ram ram_1(.data(data),.q(q_1),.addr(addr_1));
[0055]
ram ram_2(.data(data),.q(q_2),.addr(addr__2));
[0056]
and_orinst_1(.a(a[0]),.b(b[0]),.pa(q_1));
[0057]
and_orinst_2(.a(a[1]),.b(b[1]),.pa(q_2));
[0058]
endmodule
[0059]
ram ram_1(.data(data),.q(q_1),.addr(addr_1))为cram单元ram例化名ram_1的实例化,and_or inst_1(.a(a[0]),.b(b[0]),.pa(q_1))为功能模块and_or例化名inst_1实例化。上述代码中,a、b、pa为功能模块的端口,上述代码中,a[0]、b[1]、q_1为端口连接线名net,若提取出来的inst_1.pa端口连接线名和ram_1.q端口连接线名是一致的,那么将生成检查inst_1.pa与ram_1.q连接断言检查文件,关于连接断言检查文件生成的部分脚本代码如下,
[0060]
assertproperty(
[0061]
@(posedge clk)ram_1.0==inst_1.pa)
[0062]
else begin
[0063]
$display("assertion_check:","q assertion fail");$fatal;
[0064]
end
[0065]
上述代码表示,判断inst_1.pa端口和ram_1.q端口是否一致,当一致时,则进行下一步判断,否则显示失败警告。通过上述方式可以分别基于tile bma模型、tile netlist网表生成的第一连接检查断言文件和第二连接检查断言文件。
[0066]
在一个可选的实施方式中,根据所述端口连接线名获取各功能模块及cram单元之间的连接关系,还包括:
[0067]
若一个功能模块与一个cram单元的端口连接线名一致,则该功能模块与该cram单元连接,以此获取各功能模块及cram单元之间的连接关系。
[0068]
在一个可选的实施方式中,在利用所述第一连接检查断言文件先后检查所述tile bma模型与所述tile netlist网表的连接是否正确之前,还包括,若所述tile bma模型与所述tile netlist网表中相同功能模块或者相同cram单元的例化名不一致,则使所述tile bma模型与所述tile netlist网表中相同功能模块或者相同cram单元的例化名一致。
[0069]
需要说明的是,由于tile bma模型和tile netlist网表可能出现层次结构不一致的情况,需要检查所述tile bma模型与所述tile netlist网表中相同功能模块或者相同cram单元的例化名是否一致,若不一致,则使用脚本,使所述tile bma模型与所述tile netlist网表中相同功能模块或者相同cram单元的例化名一致。
[0070]
在一个可选的实施方式中,使所述tile bma模型与所述tile netlist网表中相同功能模块或者相同cram单元的例化名一致,包括:
[0071]
分别从所述tile bma模型、tile netlist网表中提取模块名及其实例化名,将所述tile netlist网表中与所述tile bma模型相同的模块名,对应的实例化名修改为与tile bma模型中该模块名的实例化名一致。
[0072]
在一个可选的实施方式中,使所述tile bma模型与所述tile netlist网表中相同功能模块或者相同cram单元的例化名一致,包括:
[0073]
分别从所述tile bma模型、tile netlist网表中提取模块名及其实例化名,将所述tile bma模型中与所述tile netlist网表相同的模块名,对应的实例化名修改为与tile netlist网表中该模块名的实例化名一致。
[0074]
其中,可以采用脚本的方式基于tile bma模型连接关系生成第一连接检查断言文件,从而比编写连接检查断言文件省下大量时间,该第一连接检查断言文件可以直接用于tile bma的连接验证,对于tile bma模型和tile netlist网表层次结构不一致问题,使用脚本对tile neltist网表进行处理,脚本索引tile bma模型中各模块对应的例化名称,替换tile netlist网表中共有模块例化名称,使之与tile bma模型中一致,此时之前生成的断言文件就可以复用于tile netlist连接检查了;以上所述流程重复针对tile netlist网表进行,基于tile netlist网表生成断言检查文件,脚本处理tile bma模型,使基于tile netlist网表生成的第二连接检查断言文件可复用于tile bma连接检查,这种断言检查文件复用的方式,实现了交叉验证的效果,保证了tile层级连接检查的完备性。
[0075]
一个具体实施例中,tile bma模型和tile netlist网表模块名的例化名可能会不一致,例如,脚本从tile bma模型、tile netlist网表中提取出模块名及其例化名,在tile bma模型中某模块module1例化名为inst1,tile netlist网表中同样模块module1例化名为inst2,则从tile bma提取出来的连接检查文件用于检查netlist时,需要将netlist中相关的模块的例化名改成和bma中的一致,再进行检查;同理,从tile netlist提取出来的连接检查文件用于检查bma模型的时候,也需要将bma中的相关模块的例化名改成和netlist模型中的例化名一致。
[0076]
另一个具体实施例中,可以基于tile bma模型,对tile netlist网表进行处理,得到文件netlist_modify,同时基于tile netlist网表,对tile bma模型进行处理,得到文件bma_modify,使netlist_modify和tile bma模型中模块的例化名一致,bma_modify和tile netlist网表中模块的例化名一致。在检查所述tile bma模型与所述tile netlist网表的连接是否正确时,利用第一连接检查断言文件对tile bma模型与netlist_modify进行连接
检查,利用第二连接检查断言文件对tile netlist网表与bma_modify进行连接检查,以此在确定tile bma模型和tile netlist网表中各个模块的连接关系是否正确的同时,确定两者的连接关系是否一致。
[0077]
本发明实施例提供的fpga电路tile层级连接检查方法,获取tile层级tile bma模型中各功能模块及cram单元之间的连接关系,根据该连接关系,生成第一连接检查断言文件;获取tile层级tile netlist网表中各功能模块及cram单元之间的连接关系,根据该连接关系,生成第二连接检查断言文件;利用所述第一连接检查断言文件先后检查所述tile bma模型与所述tile netlist网表的连接是否正确,利用所述第二连接检查断言文件先后检查所述tile netlist网表与所述tile bma模型的是否正确;通过上述方式,提高了tile层级验证效率。
[0078]
现有技术中进行fpga全芯片tile层级连接检查中,会因端口数量多、连接复杂,编写断言检查耗时较长,造成了tile层级验证效率低下的情况,本发明实施例在tile层级连接检查中,使用脚本分别基于tile bma模型与tile netlist网表生成断言检查文件,并在模型与网表连接检查时的相互复用的方法,解决了tile bma(行为级)模型和tile netlist(门级)网表,因为分别由设计人员编写及电路直接提取造成的层次结构不同,导致断言文件验证不兼容问题,本发明实施例同时通过连接检查断言文件复用的交叉验证,保证了tile层级bma模型与netlist网表的连接一致性,从而达到减少验证时间、提升验证效率、保证验证完备性的目的。
[0079]
图3是本发明第二实施例的fpga电路tile层级连接检查装置的结构示意图。如图3所示,该fpga电路tile层级连接检查装置包括第一断言文件生成模块31、第二断言文件生成模块32及连接检查模块33;
[0080]
所述第一断言文件生成模块31,用于获取tile层级tile bma模型中各功能模块及cram单元之间的连接关系,根据该连接关系,生成第一连接检查断言文件;
[0081]
所述第二断言文件生成模块32,用于获取tile层级tile netlist网表中各功能模块及cram单元之间的连接关系,根据该连接关系,生成第二连接检查断言文件;
[0082]
所述连接检查模块33,用于利用所述第一连接检查断言文件先后检查所述tile bma模型与所述tilenetlist网表的连接是否正确,利用所述第二连接检查断言文件先后所述tile netlist网表与所述tile bma模型的是否正确。
[0083]
图4是本发明第三实施例的电子设备的结构示意图。如图4所示,该电子设备40包括处理器41及和处理器41通信连接的存储器42。
[0084]
存储器42存储有用于实现上述任一实施例的所述fpga电路tile层级连接检查方法的程序指令。
[0085]
处理器41用于执行存储器42存储的程序指令以进行代码测试。
[0086]
其中,处理器41还可以称为cpu(central processing unit,中央处理单元)。处理器41可能是一种集成电路芯片,具有信号的处理能力。处理器41还可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0087]
所述存储器42可用于存储所述计算机程序和/或模块,所述处理器41通过运行或
执行存储在所述存储器42内的计算机程序和/或模块,以及调用存储在存储器42内的数据,实现所述电子设备的各种功能。所述存储器42可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等。
[0088]
所述存储器42可以集成在所述处理器41中,也可以与所述处理器41分开设置。
[0089]
本发明第四实施例提供一种存储介质,本发明实施例的存储介质存储有能够实现上述所有方法的程序指令,所述存储介质可以是非易失性,也可以是易失性。非易失性存储器可包括只读存储器(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)等。其中,该程序指令可以以软件产品的形式存储在上述存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccess memory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。
[0090]
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0091]
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。以上仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围。
再多了解一些

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

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

相关文献