CN110889257A - Fpga电路验证生成网表的方法及电路逻辑验证平台 - Google Patents
Fpga电路验证生成网表的方法及电路逻辑验证平台 Download PDFInfo
- Publication number
- CN110889257A CN110889257A CN201910944787.XA CN201910944787A CN110889257A CN 110889257 A CN110889257 A CN 110889257A CN 201910944787 A CN201910944787 A CN 201910944787A CN 110889257 A CN110889257 A CN 110889257A
- Authority
- CN
- China
- Prior art keywords
- module
- circuit
- netlist
- fpga
- generating
- 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
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明实施例提供一种FPGA电路验证生成网表的方法及电路逻辑验证平台,通过获取FPGA电路的电路网表,根据待测电路文件生成布局布线文件,获取待测电路在所述FPGA电路中所需模块的位置信息,获取FPGA电路调用的各个模块的实例名和各个模块的实例名在FPGA电路中的位置坐标的映射关系,然后根据所需模块的位置信息和映射关系获取所需模块的实例名或需屏蔽的模块的实例名,最后根据所需模块的实例名或需屏蔽的模块的实例名从FPGA电路网表中生成所需模块的网表。在某些实施过程中可实现在对待测电路使用FPGA芯片电路模块仿真验证时,验证待测电路在FPGA芯片电路需要的网表模块,缩短仿真验证的时长的效果。
Description
技术领域
本发明实施例涉及FPGA电路领域,具体而言,涉及但不限于一种FPGA电路验证生成网表的方法及电路逻辑验证平台。
背景技术
FPGA(Field-Programmable Gate Array)芯片在通信、安防、工业等领域有着举足轻重的作用。随着工艺水平的逐步提升,FPGA芯片的规模不断扩大、性能不断提升,同时验证工作量也随之增加。
FPGA电路规模的扩大,意味着各个模块的数量、电路网表的规模、电路的复杂度也在增加。由于仿真工具的运行速度有限,网表规模的增大会导致仿真运行时间地增长,致使验证效率的降低。事实上,在验证时,通常大部分的电路网表模块不会被运用上,而加载全芯片所有资源进行验证,并不会对验证的精确度、覆盖率有大的帮助,反而导致仿真工具运行时间增长。
发明内容
本发明实施例提供的一种FPGA电路验证生成网表的方法及电路逻辑验证平台。主要解决的技术问题是对待测电路进行FPGA芯片电路模块验证时,放开所有的芯片电路网表模块进行验证,验证效率低。
为解决上述技术问题,本发明实施例提供一种FPGA电路验证生成网表的方法,所述FPGA电路验证生成网表的方法包括:
获取FPGA电路的电路网表;
根据所述待测电路文件生成布局布线文件;
获取所述待测电路在所述FPGA电路中所需模块的位置信息;
获取所述FPGA电路调用的各个模块的实例名和所述各个模块的实例名在所述FPGA电路中的位置坐标的映射关系;
根据所述所需模块的位置信息和所述映射关系获取所需模块的实例名或需屏蔽的模块的实例名;
根据所述所需模块的实例名或所述需屏蔽的模块的实例名从所述FPGA电路网表中生成所需模块的网表。
进一步地,所述获取所述待测电路在所述FPGA电路中所需模块的位置信息包括:根据所述布局布线文件,用第一脚本获取所述所需模块的位置信息;所述布局布线文件包括:所述待测电路在所述FPGA电路中所需模块的位置和走线资源。
进一步地,所述获取所述待测电路在FPGA电路中所需模块的位置信息包括:获取所述待测电路在FPGA电路中所需模块的位置信息,排除所述所需模块的位置信息重复的位置信息。
进一步地,所述获取所述待测电路中在所述FPGA电路调用的各个模块的实例名和所述各个模块的实例名在所述FPGA电路中的位置坐标的映射关系还包括:根据定义所需模块的位置信息的标准修改所述映射关系中的位置坐标。
进一步地,所述根据所述所需模块的位置信息和所述映射关系获取需屏蔽的模块的实例名之前还包括:删除所述映射关系中的预设的模块实例名和所述预设的模块实例名在所述FPGA电路中的位置坐标的映射关系。
进一步地,所述根据所述需屏蔽的模块的实例名从所述FGPA电路网表中生成所需模块的网表包括:根据所述需屏蔽的模块的实例名把所述FPGA电路网表中有所述需屏蔽的模块的实例名的网表内容用“/*”和“*/”将所述需屏蔽的模块的实例名的网表内容进行屏蔽,生成所需模块的网表。
进一步地,所述根据所述所需模块的实例名从所述FPGA电路网表中生成所需模块的网表包括:使用第二脚本根据所述所需模块的实例名从所述FPGA电路网表中生成所需模块的网表。
进一步地,所述根据所述需屏蔽模块的实例名从所述FPGA电路网表中生成所需模块的网表包括:使用第三脚本根据所述需屏蔽模块的实例名从所述FPGA电路网表中生成所需模块的网表。
本发明实施例还提供一种电路逻辑验证平台,所述电路的逻辑验证平台包括第一获取模块、输入模块、第二获取模块、网表生成模块及验证模块;
所述第一获取模块,用于获取FPGA电路的电路网表;
所述输入模块,用于获取待测电路的在所述FPGA电路中所需模块的位置信息;获取所述FPGA电路调用的各个模块的实例名和所述各个模块的实例名在所述FPGA电路中的位置坐标的映射关系;
所述第二获取模块,用于根据所述所需模块的位置信息和所述映射关系获取所需模块的实例名或需屏蔽的模块的实例名;
所述网表生成模块,用于根据待测电路所需模块的实例名或需屏蔽的模块的实例名从所述FPGA电路的电路网表中生成待测电路所需模块的网表;
所述验证模块,用于对所述所需模块的网表进行编译并仿真。
进一步地,所述根据待测电路所需模块的实例名或需屏蔽的模块的实例名从所述FPGA电路的电路网表中生成待测电路所需模块的网表包括:使用第二脚本根据所述所需模块的实例名或所述需屏蔽的模块的实例名从所述FPGA电路网表中生成所需模块的网表。
本发明的有益效果是:
根据本发明实施例提供的FPGA电路验证生成网表的方法及电路逻辑验证平台,通过获取FPGA电路的电路网表,然后根据待测电路文件生成布局布线文件,获取待测电路在所述FPGA电路中所需模块的位置信息,获取FPGA电路调用的各个模块的实例名和各个模块的实例名在FPGA电路中的位置坐标的映射关系,然后根据所需模块的位置信息和映射关系获取所需模块的实例名或需屏蔽的模块的实例名,最后根据所需模块的实例名或需屏蔽的模块的实例名从FPGA电路网表中生成所需模块的网表。避免了对待测电路进行FPGA芯片电路模块验证时,放开所有的芯片电路网表模块进行验证,验证效率低的问题,在某些实施过程中可实现在对待测电路使用FPGA芯片电路模块仿真验证时,验证待测电路在FPGA芯片电路需要的网表模块,缩短仿真验证的时长。
附图说明
图1为本发明实施例一的FPGA电路验证生成网表的方法的基本流程图;
图2为本发明各实施例的FPGA电路调用模块的示意图;
图3为本发明实施例一或实施例二的FPGA电路网表的例化模块的示意图;
图4为本发明实施例一或实施例二的待测电路所需网表的例化模块的示意图;
图5为本发明实施例二的FPGA电路验证生成网表的方法的细化流程图;
图6为本发明实施例三的FPGA电路验证生成网表的方法的细化流程图;
图7为本发明实施例四的电路逻辑验证平台结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面通过具体实施方式结合附图对本发明实施例作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例一:
为了避免了对待测电路进行FPGA芯片电路模块验证时,放开所有的芯片电路网表模块进行验证,验证效率低的问题。本发明提供一种FPGA电路验证生成网表的方法,下面结合实施例对本发明提供的FPGA电路验证生成网表的方法进行说明。
请参见图1,图1为本实施例的FPGA电路验证生成网表的方法的基本流程图,该生成网表的方法包括:
S101、获取FPGA电路的电路网表。
在本实施例中,是获取FPGA全芯片电路的所有电路网表。
S102、根据待测电路文件生成布局布线文件。
在本实施例中,是利用生成位流的软件工具生成待测电路的布局布线文件,先创建待测电路设计的源文件,然后将该待测电路的设计文件进行综合、映射、布局布线后生成位流文件,在一些软件工具中还需要将该设计文件进行综合后,还需要经过翻译后在进行映射、手动或自动布局布线生成位流文件。其中在布局布线后会生成一个布局布线文件,该文件记录了该待测电路再FPGA芯片电路上所用到的模块的具体位置和走线资源。在本实施例中,布局布线文件为.route的中间文件。但不同的软件工具生成的布局布线文件格式不同,文件的后缀名也是不同的,不限于本实施例中的.route的后缀名的中间文件。在本实施例中,该布局布线文件中的部分信息如下:
pip INT_L_X0Y0 ER1END1->IMUX_L43,
pip INT_R_X0Y1 LOGIC_OUTS18->ER1BEG1,
pip INT_R_X0Y3 GFAN0->CTRL0,
pip INT_R_X1Y1 GFAN0->IMUX10,
pip INT_R_X1Y2 GFAN0->IMUX24,
pipINT_X1Y2 SL2BEG1->IMUX_B22,
其中,该信息中X*Y*就是该设计在FPGA电路中所用到的模块的位置信息。
S103、获取待测电路在FPGA电路中所需模块的位置信息。
在本实施例中,根据布局布线文件获取待测电路在FPGA电路中所需模块的位置信息,其中,在本实施例中,可以根据第一脚本对待测电路在FPGA电路中所需模块的位置信息进行获取,其中所需模块的位置信息有:X0Y0、X0Y1、X0Y3、X1Y1、X1Y2、X1Y2。
其中在本实施例中还可以将重复的位置信息X1Y2排除。在本实施例中还可以将排除后的所需模块的位置信息保存在第一文件中,其中文件名称可以根据需要进行自定义。在本实施例中,第一文件名称为file_used。
S104、获取FPGA电路调用的各个模块的实例名和各个模块的实例名在FPGA电路中的位置坐标的映射关系。
在本实施例中,是利用EDA电路工具导出的FPGA电路调用的各个模块的实例名和各个模块的实例名在FPGA电路中的位置坐标的映射关系。
在本实施例中,大规模FPGA电路的顶层往往调用数量很庞大的底层模块,其中底层模块都是按行按列排布比较规整,如图2所示,每个被调用的模块在这一层都有唯一的实例名,不同的实例名用以与其他被调用的模块区分。坐标原点设置在FPGA顶层电路的左下角,则左下角第一个模块I4的位置坐标表示为X0Y0。从原点向右X坐标从0递增,从原点向上Y坐标递增,则模块5的实例名为I5,位置坐标可表示为X1Y3。其中,本实施例中导出的FPGA电路调用的各个模块的实例名和各个模块的实例名在FPGA电路中的位置坐标的映射关系如下:X0Y0 I4;X0Y1 I3;X0Y2 I2;X0Y3 I1;X1Y1 I8;X1Y2 I7;X1Y3 I6;X1Y4 I5。在本实施例中,可以将映射关系保存在文件中,文件名可以为ARRAY_coor_to_inst,但不限于此文件名称。
在本实施例中,FPGA电路的实例名为I*,不同的FPGA芯片电路有不同的实例名名称,而坐标的原点、X轴、Y轴及每个单位长度的设置都要根据实际所用的软件工具对模块坐标的定义来决定,并不限于本实施例中的FPGA芯片电路、不限于本实施例中对模块坐标的定义。
S105、根据所需模块的位置信息和映射关系获取所需模块的实例名或需屏蔽的模块的实例名。
在本实施例中,根据所需模块的位置信息和映射关系获取所需模块的实例名或需屏蔽的模块的实例名包括:根据定义所需模块的位置信息的标准修改映射关系中的位置坐标,然后根据所需模块的位置信息和修改后的映射关系获取所需模块的实例名或需屏蔽的模块的实例名。
在本实施例中,所需模块的实例名为:I1、I3、I4、I7、I8。需屏蔽的模块的实例名为:I2、I5、I6。其中可以将所需模块的实例名保存在need_inst文件中,将需屏蔽的模块的实例名保存在del_inst文件中。在本实施例中不限于上述的文件名称。
在本实施例中,在根据所需模块的位置信息和映射关系获取需屏蔽的模块的实例名之前还可以包括:将映射关系中的预设模块实例名和预设模块实例名唉FPGA电路中的位置坐标的映射关系删除,其中预设模块包括:配置FPGA电路相关模块。
S106、根据所需模块的实例名或需屏蔽的模块的实例名从FPGA电路网表中生成所需模块的网表。
在本实施例中,根据需屏蔽的模块的实例名从FPGA电路网表中生成所需模块的网表包括:根据需屏蔽的模块的实例名把FPGA电路网表中有需屏蔽的模块的实例名的网表内容用“/*”和“*/”将需屏蔽的模块的实例名的网表内容进行屏蔽,生成所需模块的网表。其中如图4所示,根据需要屏蔽的模块的实例名将FPGA电路网表的例化模块(如图3所示)有需屏蔽的模块的实例名的网表内容用“/*”和“*/”将需屏蔽的模块的实例名的网表内容进行屏蔽,生成所需模块的网表。在本实施例中,FPGA电路网表的例化模块内容的示意图如图3所示,其中第一列module_*为例化的模块名,第二列I*为芯片调用此模块的实例名,括号中的port*是此模块的端口在芯片中所连接的线名。
在本实施例中,根据所需模块的实例名或需屏蔽的模块的实例名从FPGA电路网表中生成所需模块的网表包括:使用第二脚本根据所需模块的实例名或使用第三脚本根据需屏蔽的模块的实例名从FPGA电路网表中生成所需模块的网表。其中第二脚本记录了前面获取所需模块实例名的过程,可根据所需模块的实例名从FPGA电路网表中生成所需模块的网表。第三脚本记录了前面获取需屏蔽的模块的实例名的过程,可根据需屏蔽的模块的实例名从FPGA电路网表中生成所需模块的网表。
本发明实施例提供的FPGA电路验证生成网表的方法,通过获取FPGA电路的电路网表,然后根据待测电路文件生成布局布线文件,获取待测电路在所述FPGA电路中所需模块的位置信息,获取FPGA电路调用的各个模块的实例名和各个模块的实例名在FPGA电路中的位置坐标的映射关系,然后根据所需模块的位置信息和映射关系获取所需模块的实例名或需屏蔽的模块的实例名,最后根据所需模块的实例名或需屏蔽的模块的实例名从FPGA电路网表中生成所需模块的网表。避免了对待测电路进行FPGA芯片电路模块验证时,放开所有的芯片电路网表模块进行验证,验证效率低的问题。达到在对待测电路使用FPGA芯片电路模块仿真验证时,验证待测电路在FPGA芯片电路需要的网表模块,缩短仿真验证的时长。
实施例二:
本发明的FPGA电路验证生成网表的方法可实现在对待测电路使用FPGA芯片电路模块仿真验证时,验证待测电路在FPGA芯片电路需要的网表模块,缩短仿真验证的时长。为了便于理解,下面结合一种应用场景对本发明的FPGA电路验证生成网表的方法进行说明。
图5为本发明实施例二提供的FPGA电路验证生成网表的方法的细化流程图,该生成网表的方法包括:
S501、获取FPGA电路的电路网表。
在本实施例中,是获取FPGA全芯片电路的所有电路网表。
S502、根据待测电路文件生成布局布线文件。
在本实施例中,是利用生成位流的软件工具生成待测电路的布局布线文件,先创建待测电路设计的源文件,然后进行将该待测电路的设计文件进行综合、翻译、映射、自动布局布线后生成位流文件。其中在布局布线后会生成一个布局布线文件,该文件记录了该待测电路再FPGA芯片电路上所用到的模块的具体位置和走线资源。在本实施例中,布局布线文件为.route的中间文件。在本实施例中,该布局布线文件中的部分信息如下:
pip INT_L_X0Y0 ER1END1->IMUX_L43,
pip INT_R_X0Y1 LOGIC_OUTS18->ER1BEG1,
pip INT_R_X0Y3 GFAN0->CTRL0,
pip INT_R_X1Y1 GFAN0->IMUX10,
pip INT_R_X1Y2 GFAN0->IMUX24,
pipINT_X0Y1 SL2BEG1->IMUX_B22,
其中,该信息中X*Y*就是该设计在FPGA电路中所用到的模块的位置信息。
S503、根据第一脚本对待测电路在FPGA电路中获取所需模块的位置信息。
其中所需模块的位置信息有:X0Y0、X0Y1、X0Y3、X1Y1、X1Y2、X0Y1。在本实施例中还可以将重复的位置信息X1Y2排除。在本实施例中还将排除后的所需模块的位置信息保存在第一文件中,其中文件名称可以根据需要进行自定义。在本实施例中,第一文件名称为file_used。
S504、利用EDA电路工具导出的FPGA电路调用的各个模块的实例名和各个模块的实例名在FPGA电路中的位置坐标的映射关系。
在本实施例中,大规模FPGA电路的顶层往往调用数量很庞大的底层模块,其中底层模块都是按行按列排布比较规整,如图2所示,每个被调用的模块在这一层都有唯一的实例名,不同的实例名用以与其他被调用的模块区分。坐标原点设置在FPGA顶层电路的左下角,则左下角第一个模块I4的位置坐标表示为X0Y0。从原点向右X坐标从0递增,从原点向上Y坐标递增,则模块5的实例名为I5,位置坐标可表示为X1Y3。其中,本实施例中导出的FPGA电路调用的各个模块的实例名和各个模块的实例名在FPGA电路中的位置坐标的映射关系如下:X0Y0 I4;X0Y1 I3;X0Y2 I2;X0Y3 I1;X1Y1 I8;X1Y2 I7;X1Y3 I6;X1Y4 I5。在本实施例中,将映射关系保存在文件中,文件名可以为ARRAY_coor_to_inst。
S505、将映射关系中的预设模块实例名和预设模块实例名FPGA电路中的位置坐标的映射关系删除。
在本实施例中,预设模块包括:配置FPGA电路相关模块。
S506、根据所需模块的位置信息和映射关系获取需屏蔽的模块的实例名。
在本实施例中,根据所需模块的位置信息和映射关系获取所需模块的实例名或需屏蔽的模块的实例名包括:根据定义所需模块的位置信息的标准修改映射关系中的位置坐标,然后根据所需模块的位置信息和修改后的映射关系获取需屏蔽的模块的实例名。
在本实施例中,需屏蔽的模块的实例名为:I2、I5、I6,将需屏蔽的模块的实例名保存在del_inst文件中。
S507、根据需屏蔽的模块的实例名从FPGA电路网表中生成所需模块的网表
在本实施例中,根据需屏蔽的模块的实例名从FPGA电路网表中生成所需模块的网表包括:根据需屏蔽的模块的实例名把FPGA电路网表中有需屏蔽的模块的实例名的网表内容用“/*”和“*/”将需屏蔽的模块的实例名的网表内容进行屏蔽,生成所需模块的网表。
其中如图4所示,根据需要屏蔽的模块的实例名将FPGA电路网表的例化模块(如图3所示)有需屏蔽的模块的实例名的网表内容用“/*”和“*/”将需屏蔽的模块的实例名的网表内容进行屏蔽,生成所需模块的网表。在本实施例中,FPGA电路网表的例化模块内容的示意图如图3所示,其中第一列module_*为例化的模块名,第二列I*为芯片调用此模块的实例名,括号中的port*是此模块的端口在芯片中所连接的线名。
本发明实施例提供的FPGA电路验证生成网表的方法,通过获取FPGA电路的电路网表,然后根据待测电路文件生成布局布线文件,再根据第一脚本对待测电路在FPGA电路中所需模块的位置信息进行获取。利用EDA电路工具导出的FPGA电路调用的各个模块的实例名和各个模块的实例名在FPGA电路中的位置坐标的映射关系。将映射关系中的预设模块实例名和预设模块实例名FPGA电路中的位置坐标的映射关系删除,再根据所需模块的位置信息和映射关系获取需屏蔽的模块的实例名。最后根据需屏蔽的模块的实例名从FPGA电路网表中生成所需模块的网表,达到在对待测电路使用FPGA芯片电路模块仿真验证时,验证待测电路在FPGA芯片电路需要的网表模块,缩短仿真验证的时长。
实施例三:
本发明的FPGA电路验证生成网表的方法可实现在对待测电路使用FPGA芯片电路模块仿真验证时,验证待测电路在FPGA芯片电路需要的网表模块,缩短仿真验证的时长。为了便于理解,下面结合一种应用场景对本发明的FPGA电路验证生成网表的方法进行说明。
图6为本发明实施例三提供的FPGA电路验证生成网表的方法的细化流程图,该生成网表的方法包括:
S601、获取FPGA电路的电路网表。
在本实施例中,是获取FPGA全芯片电路的所有电路网表。
S602、根据待测电路文件生成布局布线文件。
在本实施例中,是利用生成位流的软件工具生成待测电路的布局布线文件,先创建待测电路设计的源文件,然后进行将该待测电路的设计文件进行综合、翻译、映射、自动布局布线后生成位流文件。其中在布局布线后会生成一个布局布线文件,该文件记录了该待测电路再FPGA芯片电路上所用到的模块的具体位置和走线资源。在本实施例中,布局布线文件为.route的中间文件。在本实施例中,该布局布线文件中的部分信息如下:
pip INT_L_X0Y0 ER1END1->IMUX_L43,
pip INT_R_X0Y1 LOGIC_OUTS18->ER1BEG1,
pip INT_R_X0Y3 GFAN0->CTRL0,
pip INT_R_X1Y1 GFAN0->IMUX10,
pip INT_R_X1Y2 GFAN0->IMUX24,
其中,该信息中X*Y*就是该设计在FPGA电路中所用到的模块的位置信息。
S603、根据第一脚本对待测电路在FPGA电路中所需模块的位置信息进行获取。
其中所需模块的位置信息有:X0Y0、X0Y1、X0Y3、X1Y1、X1Y2。在本实施例中还将所需模块的位置信息保存在第一文件中,其中文件名称可以根据需要进行自定义。在本实施例中,第一文件名称为file_used。
S604、利用EDA电路工具导出的FPGA电路调用的各个模块的实例名和各个模块的实例名在FPGA电路中的位置坐标的映射关系。
在本实施例中,大规模FPGA电路的顶层往往调用数量很庞大的底层模块,其中底层模块都是按行按列排布比较规整,如图2所示,每个被调用的模块在这一层都有唯一的实例名,不同的实例名用以与其他被调用的模块区分。坐标原点设置在FPGA顶层电路的左下角,则左下角第一个模块I4的位置坐标表示为X0Y0。从原点向右X坐标从0递增,从原点向上Y坐标递增,则模块5的实例名为I5,位置坐标可表示为X1Y3。其中,本实施例中导出的FPGA电路调用的各个模块的实例名和各个模块的实例名在FPGA电路中的位置坐标的映射关系如下:X0Y0 I4;X0Y1 I3;X0Y2 I2;X0Y3 I1;X1Y1 I8;X1Y2 I7;X1Y3 I6;X1Y4 I5。在本实施例中,将映射关系保存在文件中,文件名可以为ARRAY_coor_to_inst。
S605、根据所需模块的位置信息和映射关系获取所需的模块的实例名。
在本实施例中,根据所需模块的位置信息和映射关系获取所需模块的实例名或需屏蔽的模块的实例名包括:根据定义所需模块的位置信息的标准修改映射关系中的位置坐标,然后根据所需模块的位置信息和修改后的映射关系获取所需模块的实例名。
在本实施例中,所需模块的实例名为:I1、I3、I4、I7、I8。将所需模块的实例名保存在need_inst文件中。在本实施例中不限于上述的文件名称。
S606、根据所需模块的实例名从FPGA电路网表中生成所需模块的网表。
在本实施例中,使用第二脚本根据所需模块的实例名从FPGA电路网表中生成所需模块的网表。其中第二脚本记录了前面获取所需模块实例名的过程,可根据所需模块的实例名从FPGA电路网表中生成所需模块的网表。
本发明实施例提供的FPGA电路验证生成网表的方法,通过获取FPGA电路的电路网表,然后根据待测电路文件生成布局布线文件,获取待测电路在所述FPGA电路中所需模块的位置信息,获取FPGA电路调用的各个模块的实例名和各个模块的实例名在FPGA电路中的位置坐标的映射关系,然后根据所需模块的位置信息和映射关系获取所需模块的实例名或需屏蔽的模块的实例名,最后用脚本语言根据所需模块的实例名从FPGA电路网表中生成所需模块的网表。避免了对待测电路进行FPGA芯片电路模块验证时,放开所有的芯片电路网表模块进行验证,验证效率低的问题。达到在对待测电路使用FPGA芯片电路模块仿真验证时,验证待测电路在FPGA芯片电路需要的网表模块,缩短仿真验证的时长,利用脚本语言获得所需模块的网表,使验证过程自动化,验证效率提高。
实施例四:
为了避免了对待测电路进行FPGA芯片电路模块验证时,放开所有的芯片电路网表模块进行验证,验证效率低的问题,本发明提供一种电路逻辑验证平台。下面结合实施例对本发明提供的电路逻辑验证平台进行说明。
请参见图7,图7为本实施例的电路逻辑验证平台的结构图,该验证平台包括:第一获取模块701、输入模块702、第二获取模块703、网表生成模块704及验证模块705;
第一获取模块701,用于获取FPGA电路的电路网表;
输入模块702,用于输入待测电路在FPGA电路中所需模块的位置信息;输入FPGA电路调用的各个模块的实例名和各个模块的实例名在FPGA电路中的位置坐标的映射关系;
第二获取模块703,用于根据所需模块的位置信息和映射关系获取所需模块的实例名或需屏蔽的模块的实例名;
网表生成模块704,用于根据待测电路所需模块的实例名或需屏蔽的模块的实例名从FPGA电路的电路网表中生成待测电路所需模块的网表;
验证模块705,用于对所需模块的网表进行编译并仿真。
在本实施例中,输入模块702中输入的待测电路在FPGA电路所需模块的位置信息是从相关软件工具获得的,其中软件工具将该待测电路的设计文件进行综合、映射、布局布线后生成位流文件,在一些软件工具中还需要将该设计文件进行综合后,还需要经过翻译后在进行映射、手动或自动布局布线生成位流文件。其中在布局布线后会生成一个布局布线文件,该文件记录了该待测电路再FPGA芯片电路上所用到的模块的具体位置和走线资源,根据该文件使用第一脚本获取所需模块的位置信息。
在本实施例中,输入模块702中输入的FPGA电路调用的各个模块的实例名和各个模块的实例名在FPGA电路中的位置坐标的映射关系为EDA电路工具导出的映射关系。
在本实施例中,第二获取模块703还用于先删除映射关系中的预设的模块实例名和预设的模块实例名在FPGA电路中的位置坐标的映射关系。比如配置FPGA电路相关模块。避免由于第三脚本的bug导致将必要的模块实例名放入需屏蔽的模块的实例名的文件中。
其中,输入模块702还用于输入定义所需模块的位置信息的标准。第二获取模块在根据所需模块的位置信息和映射关系获取需屏蔽的模块的实例名时,先根据定义所需模块的位置信息的标准修改所述映射关系中的位置坐标。
在本实施例中,网表生成模块704,还可以根据第二脚本将待测电路所需模块的实例名或根据第三脚本将需屏蔽的模块的实例名从FPGA电路的电路网表中生成待测电路所需模块的网表。其中第二脚本记录了前面获取所需模块实例名的过程,可根据所需模块的实例名从FPGA电路网表中生成所需模块的网表。第三脚本记录了前面获取需屏蔽的模块的实例名的过程,可根据需屏蔽的模块的实例名从FPGA电路网表中生成所需模块的网表。
本发明实施例提供的电路逻辑验证平台,通过第一获取模块获取FPGA电路的电路网表,输入模块输入待测电路在FPGA电路中所需模块的位置信息;输入FPGA电路调用的各个模块的实例名和各个模块的实例名在FPGA电路中的位置坐标的映射关系。然后第二获取模块根据所需模块的位置信息和映射关系获取所需模块的实例名或需屏蔽的模块的实例名。再经过生成模块根据待测电路所需模块的实例名或需屏蔽的模块的实例名从FPGA电路的电路网表中生成待测电路所需模块的网表。最后验证模块对所需模块的网表进行编译并仿真。达到在对待测电路使用FPGA芯片电路模块仿真验证时,验证待测电路在FPGA芯片电路需要的网表模块,缩短仿真验证的时长,提高了验证效率。
可见,本领域的技术人员应该明白,上文中本发明的各个模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算机可执行的程序代码来实现,可以将它们存储在存储介质(ROM/RAM、碟盘、光盘)中由计算装置可执行的计算机程序代码来实现,也可以是软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。
以上内容是结合具体的实施方式对本发明实施例所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (10)
1.一种FPGA电路验证生成网表的方法,所述FPGA电路验证生成网表的方法包括:
获取FPGA电路的电路网表;
根据所述待测电路文件生成布局布线文件;
获取所述待测电路在所述FPGA电路中所需模块的位置信息;
获取所述FPGA电路调用的各个模块的实例名和所述各个模块的实例名在所述FPGA电路中的位置坐标的映射关系;
根据所述所需模块的位置信息和所述映射关系获取所需模块的实例名或需屏蔽的模块的实例名;
根据所述所需模块的实例名或所述需屏蔽的模块的实例名从所述FPGA电路网表中生成所需模块的网表。
2.如权利要求1所述的FPGA电路验证生成网表的方法,其特征在于,所述获取所述待测电路在所述FPGA电路中所需模块的位置信息包括:
根据所述布局布线文件,用第一脚本获取所述所需模块的位置信息;所述布局布线文件包括:所述待测电路在所述FPGA电路中所需模块的位置和走线资源。
3.如权利要求1所述的FPGA电路验证生成网表的方法,其特征在于,所述获取所述待测电路在FPGA电路中所需模块的位置信息包括:获取所述待测电路在FPGA电路中所需模块的位置信息,排除所述所需模块的位置信息重复的位置信息。
4.如权利要求1所述的FPGA电路验证生成网表的方法,其特征在于,所述获取所述待测电路中在所述FPGA电路调用的各个模块的实例名和所述各个模块的实例名在所述FPGA电路中的位置坐标的映射关系还包括:根据定义所需模块的位置信息的标准修改所述映射关系中的位置坐标。
5.如权利要求1所述的FPGA电路验证生成网表的方法,其特征在于,所述根据所述所需模块的位置信息和所述映射关系获取需屏蔽的模块的实例名之前还包括:删除所述映射关系中的预设的模块实例名和所述预设的模块实例名在所述FPGA电路中的位置坐标的映射关系。
6.如权利要求5所述的FPGA电路验证生成网表的方法,其特征在于,所述根据所述需屏蔽的模块的实例名从所述FGPA电路网表中生成所需模块的网表包括:根据所述需屏蔽的模块的实例名把所述FPGA电路网表中有所述需屏蔽的模块的实例名的网表内容用“/*”和“*/”将所述需屏蔽的模块的实例名的网表内容进行屏蔽,生成所需模块的网表。
7.如权利要求1-4任一项所述的FPGA电路验证生成网表的方法,其特征在于,所述根据所述所需模块的实例名从所述FPGA电路网表中生成所需模块的网表包括:使用第二脚本根据所述所需模块的实例名从所述FPGA电路网表中生成所需模块的网表。
8.如权利要求1-6任一项所述的FPGA电路验证生成网表的方法,其特征在于,所述根据所述需屏蔽模块的实例名从所述FPGA电路网表中生成所需模块的网表包括:使用第三脚本根据所述需屏蔽模块的实例名从所述FPGA电路网表中生成所需模块的网表。
9.一种电路逻辑验证平台,其特征在于,所述电路逻辑验证平台包括第一获取模块、输入模块、第二获取模块、网表生成模块及验证模块;
所述第一获取模块,用于获取FPGA电路的电路网表;
所述输入模块,用于输入待测电路在所述FPGA电路中所需模块的位置信息;输入所述FPGA电路调用的各个模块的实例名和所述各个模块的实例名在所述FPGA电路中的位置坐标的映射关系;
所述第二获取模块,用于根据所述所需模块的位置信息和所述映射关系获取所需模块的实例名或需屏蔽的模块的实例名;
所述网表生成模块,用于根据待测电路所需模块的实例名或需屏蔽的模块的实例名从所述FPGA电路的电路网表中生成待测电路所需模块的网表;
所述验证模块,用于对所述所需模块的网表进行编译并仿真。
10.如权利要求9所述的电路逻辑验证平台,其特征在于,所述根据待测电路所需模块的实例名或需屏蔽的模块的实例名从所述FPGA电路的电路网表中生成待测电路所需模块的网表包括:使用第二脚本根据所述所需模块的实例名或使用第三脚本根据所述需屏蔽的模块的实例名从所述FPGA电路网表中生成所需模块的网表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910944787.XA CN110889257B (zh) | 2019-09-30 | 2019-09-30 | Fpga电路验证生成网表的方法及电路逻辑验证平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910944787.XA CN110889257B (zh) | 2019-09-30 | 2019-09-30 | Fpga电路验证生成网表的方法及电路逻辑验证平台 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110889257A true CN110889257A (zh) | 2020-03-17 |
CN110889257B CN110889257B (zh) | 2023-02-24 |
Family
ID=69746017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910944787.XA Active CN110889257B (zh) | 2019-09-30 | 2019-09-30 | Fpga电路验证生成网表的方法及电路逻辑验证平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110889257B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112632884A (zh) * | 2020-12-23 | 2021-04-09 | 海光信息技术股份有限公司 | 门级网表生成方法、装置及电子设备 |
CN113536718A (zh) * | 2021-09-15 | 2021-10-22 | 中科亿海微电子科技(苏州)有限公司 | 一种门级仿真网表文件正确性的验证方法及装置 |
CN116011374A (zh) * | 2023-01-28 | 2023-04-25 | 广东高云半导体科技股份有限公司 | 实现布线资源验证的方法、装置、计算机存储介质及终端 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6099584A (en) * | 1996-12-06 | 2000-08-08 | Vsli Technology, Inc. | System to fix post-layout timing and design rules violations |
US20060271899A1 (en) * | 2005-05-31 | 2006-11-30 | Altera Corporation | Methods for producing structured application-specific integrated circuits that are equivalent to field-programmable gate arrays |
CN102063518A (zh) * | 2009-11-12 | 2011-05-18 | 英业达股份有限公司 | 电路布局走线转换方法 |
CN106202761A (zh) * | 2016-07-15 | 2016-12-07 | 中国电子科技集团公司第五十八研究所 | 用于大容量fpga电路功能仿真的最优网表的生成方法 |
-
2019
- 2019-09-30 CN CN201910944787.XA patent/CN110889257B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6099584A (en) * | 1996-12-06 | 2000-08-08 | Vsli Technology, Inc. | System to fix post-layout timing and design rules violations |
US20060271899A1 (en) * | 2005-05-31 | 2006-11-30 | Altera Corporation | Methods for producing structured application-specific integrated circuits that are equivalent to field-programmable gate arrays |
CN102063518A (zh) * | 2009-11-12 | 2011-05-18 | 英业达股份有限公司 | 电路布局走线转换方法 |
CN106202761A (zh) * | 2016-07-15 | 2016-12-07 | 中国电子科技集团公司第五十八研究所 | 用于大容量fpga电路功能仿真的最优网表的生成方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112632884A (zh) * | 2020-12-23 | 2021-04-09 | 海光信息技术股份有限公司 | 门级网表生成方法、装置及电子设备 |
CN112632884B (zh) * | 2020-12-23 | 2023-03-03 | 海光信息技术股份有限公司 | 门级网表生成方法、装置及电子设备 |
CN113536718A (zh) * | 2021-09-15 | 2021-10-22 | 中科亿海微电子科技(苏州)有限公司 | 一种门级仿真网表文件正确性的验证方法及装置 |
CN113536718B (zh) * | 2021-09-15 | 2021-12-31 | 中科亿海微电子科技(苏州)有限公司 | 一种门级仿真网表文件正确性的验证方法及装置 |
CN116011374A (zh) * | 2023-01-28 | 2023-04-25 | 广东高云半导体科技股份有限公司 | 实现布线资源验证的方法、装置、计算机存储介质及终端 |
CN116011374B (zh) * | 2023-01-28 | 2024-04-05 | 广东高云半导体科技股份有限公司 | 实现布线资源验证的方法、装置、计算机存储介质及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN110889257B (zh) | 2023-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110889257B (zh) | Fpga电路验证生成网表的方法及电路逻辑验证平台 | |
US7409652B1 (en) | Debuggable opaque IP | |
CN102866349B (zh) | 集成电路测试方法 | |
US9298865B1 (en) | Debugging an optimized design implemented in a device with a pre-optimized design simulation | |
US10592631B2 (en) | Method for performing netlist comparison based on pin connection relationship of components | |
CN110046394B (zh) | 集成电路网表生成方法、装置、计算机设备及存储介质 | |
CN107451112B (zh) | 表格工具数据检查方法、装置、终端设备及存储介质 | |
WO2016026328A1 (zh) | 一种信息处理方法、装置及计算机存储介质 | |
CN106682268B (zh) | 可编程逻辑器件配置方法及设备 | |
CN112597718B (zh) | 集成电路设计的验证方法、验证装置以及存储介质 | |
CN110941934A (zh) | 一种fpga原型验证开发板分割仿真系统、方法、介质及终端 | |
US20160314007A1 (en) | Flexible physical function and virtual function mapping | |
CN116450427A (zh) | 芯片中复用引脚的自动化验证方法、装置、存储介质及计算机设备 | |
US8645897B1 (en) | Integrated circuit design verification system | |
CN115422866A (zh) | 用于在仿真器上仿真逻辑系统设计的方法及相关设备 | |
US9619598B2 (en) | Input space reduction for verification test set generation | |
CN112632884B (zh) | 门级网表生成方法、装置及电子设备 | |
CN111506362B (zh) | 用于游戏的配置表格的处理方法、装置、存储介质和系统 | |
Han et al. | ShakeFlow: Functional Hardware Description with Latency-Insensitive Interface Combinators | |
US10747920B2 (en) | Semiconductor LSI design device and design method | |
CN111624475A (zh) | 大规模集成电路的测试方法及系统 | |
CN103197292B (zh) | 多通道雷达回波模拟信号的生成及验证方法 | |
US7086017B1 (en) | Method of post-implementation simulation of a HDL design | |
CN115470125A (zh) | 基于日志文件的调试方法、设备以及存储介质 | |
CN111400994A (zh) | 网表形式验证方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |