CN117521573A - 一种fpga芯片的eda前端工具集成设计方法及装置 - Google Patents
一种fpga芯片的eda前端工具集成设计方法及装置 Download PDFInfo
- Publication number
- CN117521573A CN117521573A CN202311573238.9A CN202311573238A CN117521573A CN 117521573 A CN117521573 A CN 117521573A CN 202311573238 A CN202311573238 A CN 202311573238A CN 117521573 A CN117521573 A CN 117521573A
- Authority
- CN
- China
- Prior art keywords
- file
- netlist file
- netlist
- tool
- open source
- 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
- 238000013461 design Methods 0.000 title claims abstract description 71
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000012795 verification Methods 0.000 claims abstract description 130
- 238000004088 simulation Methods 0.000 claims abstract description 34
- 230000006870 function Effects 0.000 claims description 122
- 238000013507 mapping Methods 0.000 claims description 29
- 230000015654 memory Effects 0.000 claims description 26
- 238000004891 communication Methods 0.000 claims description 4
- 238000011161 development Methods 0.000 description 8
- 230000006978 adaptation Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 230000015572 biosynthetic process Effects 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 238000003786 synthesis reaction Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012827 research and development Methods 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000005284 excitation Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 101100021996 Arabidopsis thaliana CYP97C1 gene Proteins 0.000 description 1
- 101100510695 Arabidopsis thaliana LUT2 gene Proteins 0.000 description 1
- 235000000332 black box Nutrition 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3323—Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明涉及电子设计自动化技术领域,公开了一种FPGA芯片的EDA前端工具集成设计方法及装置,本发明将函数代码文件和第一网表文件输入开源形式工具和开源仿真工具进行一次等价验证,在一次等价验证通过后,并对第一网表文件进行解析,再将第一网表文件和第二网表文件输入开源形式工具进行二次等价验证,无需基于三方厂家工具或开源工具进行定制化设计前端工具,可以降低前端工具的定制设计成本和设计周期,前端工具无论是从成熟厂家还是开源库获取最初都存在适配问题。并且,采用开源形式验证工具和开源仿真工具具有成熟的平台,其成本低,且针对于不同的前端工具设计并没有适配的需求。
Description
技术领域
本发明涉及电子设计自动化技术领域,具体涉及一种FPGA芯片的EDA前端工具集成设计方法及装置。
背景技术
FPGA芯片的使用离不开EDA工具的支持。EDA工具的核心功能可分为前端与后端两个部分。前端主要包括用户设计的解析、优化、逻辑综合、逻辑映射。后端主要包括布局布线和比特流生成。其中前端部分除逻辑映射外其余均为硬件无关功能,也就是说用户设计的读取、解析、优化、逻辑综合可完全独立于FPGA芯片的硬件结构去实现。也就是说,对于绝大部分FPGA芯片,其前端中的绝大部分功能可以实现复用。
相关技术中,主要基于三方厂家工具或开源工具或自主研发全流程打通FPGA芯片的前端工具设计,其中,基于三方厂家工具或开源工具进行定制化设计前端工具会增加较大的定制设计成本和设计周期,并且,前端工具无论是从成熟厂家还是开源库获取最初都存在适配问题,而自主研发该FPGA芯片的前端工具更会耗费较长的设计周期。
发明内容
有鉴于此,本发明提供了一种FPGA芯片的EDA前端工具集成设计方法,以解决基于三方厂家工具或开源工具进行定制化设计前端工具会增加较大的定制设计成本和设计周期,前端工具无论是从成熟厂家还是开源库获取最初都存在适配问题以及自主研发该FPGA芯片的前端工具更会耗费较长的设计周期的问题。
第一方面,本发明提供了一种FPGA芯片的EDA前端工具集成设计方法,方法包括:
获取用户设计的函数代码文件;
将函数代码文件输入厂家工具或开源工具,输出第一网表文件;
将函数代码文件和第一网表文件输入开源形式工具和开源仿真工具进行一次等价验证,并输出一次等价验证结果;
对第一网表文件进行解析映射得到第二网表文件;
将第一网表文件和第二网表文件输入开源形式工具进行二次等价验证,并输出二次等价验证结果。
通过执行上述实施方式,本实施例中的FPGA芯片的EDA前端工具集成设计方法,将函数代码文件和第一网表文件输入开源形式工具和开源仿真工具进行一次等价验证,在一次等价验证通过后,并对第一网表文件进行解析,再将第一网表文件和第二网表文件输入开源形式工具进行二次等价验证,无需基于三方厂家工具或开源工具进行定制化设计前端工具,可以降低前端工具的定制设计成本和设计周期,前端工具无论是从成熟厂家还是开源库获取最初都存在适配问题。并且,采用开源形式验证工具和开源仿真工具具有成熟的平台,其成本低,且针对于不同的前端工具设计并没有适配的需求。
在一种可选的实施方式中,将函数代码文件和第一网表文件输入开源形式工具和开源仿真工具进行一次等价验证,并输出一次等价验证结果,包括:
将函数代码文件和第一网表文件输入开源形式工具进行一次等价验证,若函数代码文件和第一网表文件等价,则直接输出一次等价验证结果;
若函数代码文件和第一网表文件未通过一次等价验证,则将函数代码文件和第一网表文件输入开源仿真工具进行一次等价验证,以输出一次等价验证结果。
通过执行上述实施方式,优先选择采用开源的形式验证工具,同时以仿真验证作为第二验证手段。仿真验证有成熟的平台,其成本低,且针对于不同的前端工具并没有适配的需求。
在一种可选的实施方式中,若通过开源仿真工具进行一次等价验证,则输出函数代码文件和第一网表文件不等价信息,以提示用户进行网表文件修改。
通过执行上述实施方式,可以提示用户及时对网表文件进行修改。
在一种可选的实施方式中,对第一网表文件进行解析映射得到第二网表文件,包括:
基于电路功能和网络接口,对第一网表文件进行解析映射得到第二网表文件。
通过执行上述实施方式,基于第一网表文件和第二网表文件的电路功能和网络接口进行解析,有利于减少文件解析成本。
在一种可选的实施方式中,对第一网表文件进行解析映射得到第二网表文件,包括:
若第一网表文件的电路功能和第二网表文件的电路功能相同,第一网表文件的网络接口和第二网表文件的网络接口相同,则第一网表文件与第二网表文件的解析映射结果相同;
若第一网表文件的电路功能和第二网表文件的电路功能相同,第一网表文件的网络接口和第二网表文件的网络接口不同,将第一网表文件的网络接口替换为第二网表文件的网络接口;
若第一网表文件的电路功能和第二网表文件的电路功能不同,第一网表文件的网络接口和第二网表文件的网络接口相同,将第一网表文件的网络接口替换为第二网表文件的电路功能。
通过执行上述实施方式,具体基于第一网表文件和第二网表文件的电路功能和网络接口进行解析,有利于减少文件解析成本。
在一种可选的实施方式中,将第一网表文件和第二网表文件输入开源形式工具进行二次等价验证,若第一网表文件和第二网表文件未通过二次等价验证,则重新对第一网表文件进行解析映射得到第二网表文件。
通过执行上述实施方式,有利于准确二次等价验证第二网表文件。
根据第二发面,本发明实施例提供一种FPGA芯片的EDA前端工具集成设计装置,装置包括:
文件获取模块,用于获取用户设计的函数代码文件;
文件输出模块,用于将函数代码文件输入厂家工具或开源工具,输出第一网表文件;
一次验证模块,用于将函数代码文件和第一网表文件输入开源形式工具和开源仿真工具进行一次等价验证,并输出一次等价验证结果;
文件解析模块,用于对第一网表文件进行解析映射得到第二网表文件;
二次验证模块,用于将第一网表文件和第二网表文件输入开源形式工具进行二次等价验证,并输出二次等价验证结果。
根据第三方面,本发明实施例提供一种计算机设备,包括:
存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行第一方面或第一方面任一实施方式中的FPGA芯片的EDA前端工具集成设计方法。
根据第四方面,本发明实施例提供一种计算机可读存储介质,特征在于,计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行第一方面或第一方面任一实施方式中的FPGA芯片的EDA前端工具集成设计方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的FPGA芯片的EDA前端工具集成设计方法的流程示意图;
图2是根据本发明实施例的另一FPGA芯片的EDA前端工具集成设计方法的流程示意图;
图3是根据本发明实施例的又一FPGA芯片的EDA前端工具集成设计方法的流程示意图;
图4是根据本发明实施例的FPGA芯片的EDA前端工具集成设计装置的结构框图;
图5是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
FPGA芯片的使用离不开EDA工具的支持。EDA工具的核心功能可分为前端与后端两个部分。前端主要包括用户设计的解析,优化,逻辑综合,逻辑映射。后端主要包括布局布线,比特流生成。如图1所示,一个EDA工具输入为用户设计,一般以HDL语言进行承载,之后EDA工具会对用户设计进行解析、优化、逻辑综合、逻辑映射处理,这四步处理可称为EDA工具的前端部分,之后的处理可称为EDA工具的后端部分,其划分的界限在于逻辑映射后生成的产物为一个primitive级的网表,而primitive是由FPGA芯片的硬件结构抽象出的一种描述形式,因此,从逻辑映射环节开始便与FPGA芯片硬件结构强绑定。逻辑映射之后生成的primitive级网表会作为布局布线环节的输入,布局布线完成后将生成比特流并最终输入到FPGA芯片从而使能FPGA芯片。
EDA工具的实现方案主要包括基于三方厂家工具或开源工具的前端部分以及自主研发的后端部分。后端部分的输入来源于前端部分,也就意味着后端部分的测试、优化是建立在前端部分完成的基础之上的。其中,前端部分除逻辑映射外其余均为硬件无关功能,也就是说用户设计的读取,解析,优化,逻辑综合可完全独立于FPGA芯片的硬件结构去实现。也就是说,对于绝大部分FPGA芯片,其前端中的绝大部分功能可以实现复用。这部分的自主研发成本极高,且有成熟的三方厂家工具以及开源工具能极大程度上支持EDA工具对于前端部分的需求。在EDA工具开发前期前端部分往往存在三点问题,一、全流程的打通,EDA工具的稳定有效开发需要完整的流程并基于这条流程不断进行测试并完善功能,也就意味着EDA工具需要快速被使能,从而要求前端部分需要快速使能。二、EDA前端工具自身FPGA架构的适配,前端工具无论是从成熟厂家还是开源库获取最初都存在适配问题,因为不同FPGA芯片公司,其FPGA芯片内部架构不同,前端中的逻辑映射部分与FPGA芯片内部架构强绑定往往无法在第一时间得到有效适配于自身架构的逻辑映射(后期可要求三方厂家针对公司的FPGA架构进行定制化支持或公司基于开源工具进行定制化开发,但是无论采用哪种方法都需要极长的周期与极高的成本,如果在前期尤其是各个工具评价完成之前就确定了方案则会带来极大的风险,比如选定了三方厂家签订了协议购买了定制化产品,最终却发现另一家厂家提供的方案可能会带来更好的收益)。三、如何以尽可能小的成本评价各个前端工具的性能,用于决策最终的前端工具实现方案。
上述三点问题是在说,相关技术中,主要基于三方厂家工具或开源工具或自主研发全流程打通FPGA芯片的前端工具设计,其中,基于三方厂家工具或开源工具进行定制化设计EDA前端工具会增加较大的定制设计成本和设计周期,并且,前端工具无论是从成熟厂家还是开源库获取最初都存在适配问题,而自主研发该FPGA芯片的前端工具更会耗费较长的设计周期。
有鉴于此,根据本发明实施例,提供了一种FPGA芯片的EDA前端工具集成设计方法,实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种FPGA芯片的EDA前端工具集成设计方法,可用于移动终端,如手机、平板电脑等(结合实际情况描述执行主体),图2是根据本发明实施例的FPGA芯片的EDA前端工具集成设计方法的流程图,如图1所示,该流程包括如下步骤:
步骤S201,获取用户设计的函数代码。
步骤S202,将函数代码文件输入厂家工具或开源工具,输出第一网表文件。
具体地,用户设计的函数代码文件一般可以为verilog文件,该文件上的内容通常是用户编程的一些函数代码。而第一网表文件是基于用户设计的函数代码输入至三方厂家工具或者开源工具输出的网表级文件,即上述中的第一网表文件,也即primitive文件,例如,可以为一些其他FPGA厂家如Xilinx的primitive,该primitive代表的是一些电路单元。在本实施例中,通过读写用户设计的函数代码文件其开发成本低,开发速度快,非常适用于EDA工具开发前期,满足快速打通流以及三方或开源工具评价的需求。
在本实施例中,前端工具对于用户设计的处理是不会影响到用户设计的功能,为了保证这一点需要对第一网表文件进行等价性验证,目的在于验证用户设计的函数代码文件。
步骤S203,将函数代码文件和第一网表文件输入开源形式工具和开源仿真工具进行一次等价验证,并输出一次等价验证结果。
具体地,等价性验证中最为常用的一种方式叫做形式验证,其本质是通过数学等价性证明来判断两份文件中的设计是否等价,其可靠性几乎为百分之百。形式验证需要相应的形式验证工具,该形式验证工具即上述中的开源形式工具。相关工具往往和综合工具有较强的绑定关系(前端工具在对用户设计进行处理的时候往往有一些关键的信息记录,这些信息往往需要提供给开源形式工具才能高效完成验证。然而,不同的前端工具对于关键信息的记录方式不同,因此,不同的前端工具往往会设计自己的形式验证工具),在没有确定前端工具的选择之前,如果选择直接购买形式验证工具除了需要极高的成本之外也伴随极大的风险(如果后期选择了另外的前端工具则需要做额外的适配,同时如果要验证其他前端工具的正确性也需要做额外的适配)。因此,本实施例选择采用开源形式验证工具,同时,以开源仿真工具作为第二验证手段。开源仿真工具有成熟的平台,其成本低,且针对于不同的前端工具并没有适配的需求。
进一步地,将函数代码文件和第一网表文件作为开源形式工具的输入,如果在一次等价验证通过,则认定用户设计的函数代码文件与第一网表文件逻辑功能等价,直接进行后续环节,即进行后续解析。如果通过开源形式工具不通过一次等价验证,则转向开源仿真工具验证环节,针对用户设计激励信号,将激励信号作用于函数代码文件和第一网表文件,观察函数代码文件与第一网表文件两者输出的波形是否完全一致,如果一致则判定二者等价,即一次等价验证通过后可以进入后续解析环节。
在本实施例中,对于用户设计的函数代码文件与厂家工具或开源工具输出的第一网表文件之间的一次等价性验证,选择采用开源形式工具验证与开源仿真工具验证共同使用的方案,该方案通过引入开源仿真工具弥补了仅仅采用开源形式工具验证对于前端工具的依赖性,从而不需要在EDA工具开发前期决定形式验证工具的选型,在保证结果可靠性的情况下,极大程度上降低了风险。
步骤S204,对第一网表文件进行解析映射得到第二网表文件。
在本实施例中,在经过一次等价验证完成之后将进入网表文件解析与转化环节,该环节要求基于厂家工具或开源工具输出的第一网表文件,将一次等价验证通过后的第一网表文件进行解析与转化为一个储存在计算机内部的primitive级网表,即通过重映射,映射为基于自身primitive级的网表,上述中的第二网表文件。
进一步地,在本实施例中,网表文件的解析与转化以及网表级文件输出主要涉及文件的读写功能。在重映射环节,该环节的主要工作在于将三方厂家或是开源工具的primitive级网表(第一网表文件)转化为基于自身的primitive级网表(第二网表文件),其转化主要是通过对网表中的primitive进行替换(所谓primitive即用于描述电路所需要的基本单元,比如LUT(lookup-table),FF(flip-flop),DSP等等)。
在上述步骤S204中,如果用户设计的函数代码文件与第一网表文件通过开源仿真工具仿真验证后,若仍然验证出用户设计的函数代码文件与第一网表文件不一致,则进入debug环节,可以向外输出提示信息,告知用户进一步分析不一致产生的原因。
步骤S205,将第一网表文件和第二网表文件输入开源形式工具进行二次等价验证,并输出二次等价验证结果。
具体地,在完成重映射环节之后,基于第一网表文件和第二网表文件,进入二次等价验证环节。该环节是二次等价验证第一网表文件与第二网表文件之间的等价性,因为之前已经验证过用户设计的函数代码文件与厂家工具或开源工具输出的第一网表文件之间的等价性,此处,仅需要验证第一网表文件与第二网表文件之间的等价性,即可证明第一网表文件与第二网表文件之间的等价性。二次等价验证与一次等价验证之间最主要的区别在于二次等价验证中的两个输入均为网表级文件,网表级文件相较于用户设计抽象程度大大降低(比如用户设计中的a+b在网表级文件中可以用一个carry的primitive进行承载,可以简单理解为一些抽象的逻辑比如数学逻辑变成了一个个实在的器件比如加法器,乘法器,只需要关注输入输出即可)。在保证primitive功能已知且正确的情况下,二次等价验证的难度远远低于一次等价验证的难度,因此,在该阶段仅需要采用开源形式工具验证即可,如果发现问题debug成本也较低。二次等价验证环节完成后即可得到功能正确的基于自身primitive的网表作为EDA工具后端部分的输入,以及可以用于对三方厂家工具或开源工具的性能测评(如统计基于自身primitive网表中的资源使用情况判断工具性能等)。在本实施例中,对于第一网表文件与第二网表文件之间的等价性验证,由于两个文件均为网表级文件,因此,形式验证的难度大大降低,仅需要形式验证即可满足要求。
因此,本实施例中的FPGA芯片的EDA前端工具集成设计方法,将函数代码文件和第一网表文件输入开源形式工具和开源仿真工具进行一次等价验证,在一次等价验证通过后,并对第一网表文件进行解析,再将第一网表文件和第二网表文件输入开源形式工具进行二次等价验证,无需基于三方厂家工具或开源工具进行定制化设计前端工具,可以降低前端工具的定制设计成本和设计周期,并且,前端工具无论是从成熟厂家还是开源库获取最初都存在适配问题。并且,采用开源形式验证工具和开源仿真工具具有成熟的平台,其成本低,且针对于不同的前端工具设计并没有适配的需求。
在本实施例中提供了一种FPGA芯片的EDA前端工具集成设计方法,可用于上述的移动终端,如手机、平板电脑等,图3是根据本发明实施例的FPGA芯片的EDA前端工具集成设计方法的流程图,如图3所示,上述步骤S203,将函数代码文件和第一网表文件输入开源形式工具和开源仿真工具进行一次等价验证,并输出一次等价验证结果,包括:
步骤S301,将函数代码文件和第一网表文件输入开源形式工具进行一次等价验证,若函数代码文件和第一网表文件等价,则直接输出一次等价验证结果。
具体地,在本实施例中,优先选择开源形式工具进行一次等价验证。在等价性验证中,最为常用的一种方式叫做形式验证,其本质是通过数学等价性证明来判断两份文件中的设计是否等价,其可靠性几乎为百分之百。
步骤S302,若函数代码文件和第一网表文件未通过一次等价验证,则将函数代码文件和第一网表文件输入开源仿真工具进行一次等价验证,以输出一次等价验证结果。
具体地,不同的前端工具对于关键信息的记录方式不同,因此,不同的前端工具往往会设计自己的形式验证工具),在没有确定前端工具的选择之前,如果选择直接购买形式验证工具除了需要极高的成本之外也伴随极大的风险(如果后期选择了另外的前端工具则需要做额外的适配,同时如果要验证其他前端工具的正确性也需要做额外的适配)。因此,本方案选择采用开源的形式验证工具,同时以仿真验证作为第二验证手段。仿真验证有成熟的平台,其成本低,且针对于不同的前端工具并没有适配的需求。
在一种可选的实施方式中,若通过开源仿真工具进行一次等价验证,则输出函数代码文件和第一网表文件不等价信息,以提示用户进行网表文件修改。
具体地,如果用户设计的函数代码文件与第一网表文件通过开源仿真工具仿真验证后,仍然验证出用户设计的函数代码文件与第一网表文件不一致,则进入debug环节,可以向外输出提示信息,告知用户进一步分析不一致产生的原因。
在一种可选的实施方式中,上述步骤S204,对第一网表文件进行解析映射得到第二网表文件,包括:
基于电路功能和网络接口,对第一网表文件进行解析映射得到第二网表文件。
在本实施例中,在对第二网表文件进行解析重映射过程中,主要存在三种情况:
1、三方厂家或开源工具的primitive(第一网表文件)与自身primitive(第二网表文件)相同(如LUT1、LUT2等),则无需替换,无需替换的第二网表文件,重新命名也即上述中的第二网表文件。
2、三方厂家或开源工具的primitive(第一网表文件)与自身primitive(第二网表文件)功能相同但接口不同,则需要将接口一一匹配(如carry等)。在接口一一匹配过后,得到上述中的第二网表文件。
3、三方厂家或开源工具的primitive(第一网表文件)在自身primitive(第二网表文件)中找不到(如muxcy,xor等),则需要将其逻辑功能进行抽象并以功能为单位通过自身的primitive组合进行替代,替代后的网表级文件即上述中的第二网表文件。
在一种具体的实施方式中,对第一网表文件进行解析映射得到第二网表文件,包括:
步骤a1,若第一网表文件的电路功能和第二网表文件的电路功能相同,第一网表文件的网络接口和第二网表文件的网络接口相同,则第一网表文件与第二网表文件的解析映射结果相同。
具体地,第一网表文件与第二网表文件的电路功能相同,也即第一网表文件的primitive与第二网表文件的primitive逻辑等价,无需进行替换,第二网表文件与第一网表文件相同。
步骤a2,若第一网表文件的电路功能和第二网表文件的电路功能相同,第一网表文件的网络接口和第二网表文件的网络接口不同,将第一网表文件的网络接口替换为第二网表文件的网络接口。
具体地,第一网表文件的电路功能和第二网表文件的电路功能相同,利用第一网表文件的网络接口替换为第二网表文件的网络接口。
步骤a3,若第一网表文件的电路功能和第二网表文件的电路功能不同,第一网表文件的网络接口和第二网表文件的网络接口相同,将第一网表文件的网络接口替换为第二网表文件的电路功能。
具体地,该第一网表文件与第二网表文件在电路功能上不同,可以基于第一网表文件作为参考,抽象出逻辑功能并通过自身的primitive组合进行替代。
在本实施例中,上述步骤a1、a2、a3中的三种情况都有一个核心问题需要处理,就是确定逻辑等价性的成本(步骤a1中的primitive相同也就意味着两个primitive的逻辑等价,步骤a2中的功能相同也就是功能上的逻辑等价性,步骤a3中抽象出逻辑功能并通过自身的primitive组合进行替代也就是自身primitive组合与三方厂家或开源工具的primitive或primitive组合的逻辑等价)。上述三种情况中无论哪一种完成替换之后都需要进行二次等价性验证其等价性,而primitive数量较多,组合情况更是多样验证的时间成本较高。本实施例中的一个核心目的就在于快速实现集成使能EDA整条流推动EDA后端部分持续开发演进,因此,只要保证在功能正确的情况下网表中仅存在自身的primitive即可。针对此情况本实施例采用了一种方式,即对于三方厂家或开源工具的primitive进行分类处理,对于一些逻辑简单的primitive(如LUT,FF,muxcy等)采用替换方式,按照上述步骤a1、a2、a3三种情况对应的处理方式进行处理。
在本实施例中,对于另一些逻辑复杂的primitive(如DSP,BRAM等),可以通过提示方式告知用户修改函数代码设计,告知用户修改用户设计,直接将其中的一些导致生成这些逻辑复杂的primitive的语句替换为自身的IP(即在保证逻辑功能相同的情况下修改用户设计,比如用户想使用一个两位宽的加法并写成了a+b的形式,在本实施例中可以直接将a+b去掉,等价调用一个carry模块,并将a和b作为参数传入)。IP可以理解为一个逻辑功能已知的模块,其内部通过自身的一系列primitive组成。对于哪些属于逻辑复杂的primitive会在最初期进行确认。首先将用户设计的函数代码文件输入到三方厂家工具或开源工具,通过对其网表文件进行解析,判断其是否存在逻辑复杂的primitive。如果存在则提示用户修改用户设计,将其中可能产生逻辑复杂primitive的语句换成逻辑相同的自身IP的调用(这个意义在于判断用户逻辑与自身IP逻辑的等价性成本低于判断三方厂家或是开源工具逻辑复杂的primitive与自身IP的逻辑等价性,以及节省了替换功能的开发成本)。自身IP的调用在用户设计中会被加上black-box的标签,即三方厂家或开源工具会将其当作黑盒,只暴露其接口而不对其进行其他处理。在之后的重映射环节,根据IP的名称可直接将其替换成自身的IP(一系列自身primitive的组成)。
在一种可选的实施方式中,将第一网表文件和第二网表文件输入开源形式工具进行二次等价验证,若第一网表文件和第二网表文件未通过二次等价验证,则重新对第一网表文件进行解析映射得到第二网表文件。
在本实施例中还提供了一种FPGA芯片的EDA前端工具集成设计装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例还提供一种FPGA芯片的EDA前端工具集成设计装置,如图4所示,包括:
文件获取模块41,用于获取用户设计的函数代码文件。
文件输出模块42,用于将函数代码文件输入厂家工具或开源工具,输出第一网表文件。
一次验证模块43,用于将函数代码文件和第一网表文件输入开源形式工具和开源仿真工具进行一次等价验证,并输出一次等价验证结果;;
文件解析模块44,用于对第一网表文件进行解析映射得到第二网表文件;
二次验证模块45,用于将第一网表文件和第二网表文件输入开源形式工具进行二次等价验证,并输出二次等价验证结果。
在一种可选的实施方式中,一次验证模块44,包括:
第一验证结果子模块,用于将函数代码文件和第一网表文件输入开源形式工具进行一次等价验证,若函数代码文件和第一网表文件等价,则直接输出一次等价验证结果;
第二验证结果子模块,用于若函数代码文件和第一网表文件未通过一次等价验证,则将函数代码文件和第一网表文件输入开源仿真工具进行一次等价验证,以输出二次等价验证结果。
在一种可选的实施方式中,包括:文件提示模块,用于若通过所述开源仿真工具进行一次等价验证,则输出所述函数代码文件和所述第一网表文件不等价信息,以提示用户进行网表文件修改。
在一种可选的实施方式中,文件解析模块44,包括:
文件解析子模块,用于基于电路功能和网络接口,对所述第一网表文件进行解析映射得到第二网表文件。
在一种可选的实施方式中,文件解析模块44,包括:
第一解析单元,用于若第一网表文件的电路功能和第二网表文件的电路功能相同,第一网表文件的网络接口和第二网表文件的网络接口相同,则第二网表文件与第一网表文件的解析映射结果相同;
第二解析单元,用于若第一网表文件的电路功能和第二网表文件的电路功能相同,第一网表文件的网络接口和第二网表文件的网络接口不同,将第一网表文件的网络接口替换为第二网表文件的网络接口;
第三解析单元,用于若第一网表文件的电路功能和第二网表文件的电路功能不同,第一网表文件的网络接口和第二网表文件的网络接口相同,将第一网表文件的网络接口替换为第二网表文件的电路功能。
在一种可选的实施方式中,还包括:返回模块,用于将第一网表文件和第二网表文件输入开源形式工具进行二次等价验证,若第一网表文件和第二网表文件未通过二次等价验证,则重新对第一网表文件进行解析映射得到第二网表文件。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例中的FPGA芯片的EDA前端工具集成设计装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本发明实施例还提供一种计算机设备,具有上述中的FPGA芯片的EDA前端工具集成设计装置。
请参阅图5,图5是本发明可选实施例提供的一种计算机设备的结构示意图,如图5所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图5中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,所述存储器20存储有可由至少一个处理器10执行的指令,以使所述至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种FPGA芯片的EDA前端工具集成设计方法,其特征在于,所述方法包括:
获取用户设计的函数代码文件;
将所述函数代码文件输入厂家工具或开源工具,输出第一网表文件;
将所述函数代码文件和所述第一网表文件输入开源形式工具和开源仿真工具进行一次等价验证,并输出一次等价验证结果;
对所述第一网表文件进行解析映射得到第二网表文件;
将所述第一网表文件和所述第二网表文件输入所述开源形式工具进行二次等价验证,并输出二次等价验证结果。
2.根据权利要求1所述的FPGA芯片的EDA前端工具集成设计方法,其特征在于,将所述函数代码文件和所述第一网表文件输入开源形式工具和开源仿真工具进行一次等价验证,并输出一次等价验证结果,包括:
将所述函数代码文件和所述第一网表文件输入所述开源形式工具进行一次等价验证,若所述函数代码文件和所述第一网表文件等价,则直接输出所述一次等价验证结果;
若所述函数代码文件和所述第一网表文件未通过所述一次等价验证,则将所述函数代码文件和所述第一网表文件输入所述开源仿真工具进行一次等价验证,以输出所述一次等价验证结果。
3.根据权利要求2所述的FPGA芯片的EDA前端工具集成设计方法,其特征在于,若通过所述开源仿真工具进行一次等价验证,则输出所述函数代码文件和所述第一网表文件不等价信息,以提示用户进行网表文件修改。
4.根据权利要求1所述的FPGA芯片的EDA前端工具集成设计方法,其特征在于,对所述第一网表文件进行解析映射得到第二网表文件,包括:
基于电路功能和网络接口,对所述第一网表文件进行解析映射得到第二网表文件。
5.根据权利要求4所述的FPGA芯片的EDA前端工具集成设计方法,其特征在于,对所述第一网表文件进行解析映射得到第二网表文件,包括:
若所述第一网表文件的电路功能和所述第二网表文件的电路功能相同,所述第一网表文件的网络接口和所述第二网表文件的网络接口相同,则所述第一网表文件与所述第二网表文件的解析映射结果相同;
若所述第一网表文件的电路功能和所述第二网表文件的电路功能相同,所述第一网表文件的网络接口和所述第二网表文件的网络接口不同,将所述第一网表文件的网络接口替换为所述第二网表文件的网络接口;
若所述第一网表文件的电路功能和所述第二网表文件的电路功能不同,所述第一网表文件的网络接口和所述第二网表文件的网络接口相同,将所述第一网表文件的网络接口替换为所述第二网表文件的电路功能。
6.根据权利要求1所述的FPGA芯片的EDA前端工具集成设计方法,其特征在于,将所述第一网表文件和所述第二网表文件输入所述开源形式工具进行二次等价验证,若所述第一网表文件和所述第二网表文件未通过所述二次等价验证,则重新对所述第一网表文件进行解析映射得到第二网表文件。
7.一种FPGA芯片的EDA前端工具集成设计装置,其特征在于,所述装置包括:
文件获取模块,用于获取用户设计的函数代码文件;
文件输出模块,用于将所述函数代码文件输入厂家工具或开源工具,输出第一网表文件;
一次验证模块,用于将所述函数代码文件和所述第一网表文件输入开源形式工具和开源仿真工具进行一次等价验证,并输出一次等价验证结果;
文件解析模块,用于对所述第一网表文件进行解析映射得到第二网表文件;
二次验证模块,用于将所述第一网表文件和所述第二网表文件输入所述开源形式工具进行二次等价验证,并输出二次等价验证结果。
8.根据权利要求7所述的FPGA芯片的EDA前端工具集成设计装置,其特征在于,所述一次验证模块,包括:
第一验证结果子模块,用于将所述函数代码文件和所述第一网表文件输入所述开源形式工具进行一次等价验证,若所述函数代码文件和所述第一网表文件等价,则直接输出所述一次等价验证结果;
第二验证结果子模块,用于若所述函数代码文件和所述第一网表文件未通过所述一次等价验证,则将所述函数代码文件和所述第一网表文件输入所述开源仿真工具进行一次等价验证,以输出所述二次等价验证结果。
9.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至6中任一项所述的FPGA芯片的EDA前端工具集成设计方法。
10.一种计算机可读存储介质,特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至6中任一项所述的FPGA芯片的EDA前端工具集成设计方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311573238.9A CN117521573B (zh) | 2023-11-23 | 2023-11-23 | 一种fpga芯片的eda前端工具集成设计方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311573238.9A CN117521573B (zh) | 2023-11-23 | 2023-11-23 | 一种fpga芯片的eda前端工具集成设计方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117521573A true CN117521573A (zh) | 2024-02-06 |
CN117521573B CN117521573B (zh) | 2024-07-02 |
Family
ID=89760489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311573238.9A Active CN117521573B (zh) | 2023-11-23 | 2023-11-23 | 一种fpga芯片的eda前端工具集成设计方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117521573B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140380287A1 (en) * | 2013-06-24 | 2014-12-25 | Xilinx, Inc. | Compilation of system designs |
CN111125975A (zh) * | 2019-12-09 | 2020-05-08 | 思尔芯(上海)信息科技有限公司 | 一种fpga时分复用多路数据传输的方法、存储介质及终端 |
US10922462B1 (en) * | 2019-11-22 | 2021-02-16 | SiFive, Inc. | Intellectual property block validation and design integration for integrated circuits |
US11138357B1 (en) * | 2020-05-15 | 2021-10-05 | Cadence Design Systems, Inc. | Formal verification with EDA application and hardware prototyping platform |
CN113706110A (zh) * | 2021-08-30 | 2021-11-26 | 航天中认软件测评科技(北京)有限责任公司 | 一种fpga测试工具一体化测试管理平台 |
CN114325336A (zh) * | 2021-12-31 | 2022-04-12 | 眸芯科技(上海)有限公司 | 基于fpga的面向wgl的芯片测试系统及应用 |
KR20220170146A (ko) * | 2021-06-22 | 2022-12-29 | 인하대학교 산학협력단 | 반도체 설계 공정 비용 감소를 위한 hdevs 기반 rtl 설계 도구 및 복합 시뮬레이터 |
WO2023015649A1 (zh) * | 2021-08-09 | 2023-02-16 | 长鑫存储技术有限公司 | 集成电路的后仿真方法和装置 |
-
2023
- 2023-11-23 CN CN202311573238.9A patent/CN117521573B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140380287A1 (en) * | 2013-06-24 | 2014-12-25 | Xilinx, Inc. | Compilation of system designs |
US10922462B1 (en) * | 2019-11-22 | 2021-02-16 | SiFive, Inc. | Intellectual property block validation and design integration for integrated circuits |
CN111125975A (zh) * | 2019-12-09 | 2020-05-08 | 思尔芯(上海)信息科技有限公司 | 一种fpga时分复用多路数据传输的方法、存储介质及终端 |
US11138357B1 (en) * | 2020-05-15 | 2021-10-05 | Cadence Design Systems, Inc. | Formal verification with EDA application and hardware prototyping platform |
KR20220170146A (ko) * | 2021-06-22 | 2022-12-29 | 인하대학교 산학협력단 | 반도체 설계 공정 비용 감소를 위한 hdevs 기반 rtl 설계 도구 및 복합 시뮬레이터 |
WO2023015649A1 (zh) * | 2021-08-09 | 2023-02-16 | 长鑫存储技术有限公司 | 集成电路的后仿真方法和装置 |
CN113706110A (zh) * | 2021-08-30 | 2021-11-26 | 航天中认软件测评科技(北京)有限责任公司 | 一种fpga测试工具一体化测试管理平台 |
CN114325336A (zh) * | 2021-12-31 | 2022-04-12 | 眸芯科技(上海)有限公司 | 基于fpga的面向wgl的芯片测试系统及应用 |
Non-Patent Citations (1)
Title |
---|
张峰 等: "用于FPGA的多层次集成设计系统的设计与实现", 深圳大学学报(理工版), vol. 29, no. 05, 30 September 2012 (2012-09-30), pages 377 - 385 * |
Also Published As
Publication number | Publication date |
---|---|
CN117521573B (zh) | 2024-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9298865B1 (en) | Debugging an optimized design implemented in a device with a pre-optimized design simulation | |
US9384313B2 (en) | Systems and methods for increasing debugging visibility of prototyping systems | |
CN113255258B (zh) | 逻辑综合方法、装置、电子设备及存储介质 | |
CN115470748A (zh) | 一种芯片仿真加速方法、装置、电子设备及存储介质 | |
US8140315B2 (en) | Test bench, method, and computer program product for performing a test case on an integrated circuit | |
CN111624475B (zh) | 大规模集成电路的测试方法及系统 | |
CN115858336A (zh) | 测试向量生成方法及装置、计算设备和存储介质 | |
CN115048888A (zh) | 集成电路验证方法、装置、仿真系统、电子设备及介质 | |
CN117094269A (zh) | 一种验证方法、装置、电子设备及可读存储介质 | |
CN117350208A (zh) | 时序逻辑元件性能检查方法及设备 | |
US8510692B2 (en) | Verification system and method using constrained random test parameter selection | |
CN117521573B (zh) | 一种fpga芯片的eda前端工具集成设计方法及装置 | |
US7949509B2 (en) | Method and tool for generating simulation case for IC device | |
Huggi et al. | Design and verification of memory elements using python | |
CN112567375A (zh) | 形式验证方法、信息识别方法、设备和存储介质 | |
CN115687108A (zh) | 基于uvm与fpv相结合的验证方法、平台、终端及存储介质 | |
JPWO2006025412A1 (ja) | 論理検証方法、論理モジュールデータ、デバイスデータおよび論理検証装置 | |
US20120151423A1 (en) | Large scale formal analysis by structural preprocessing | |
CN116861829B (zh) | 用于定位逻辑系统设计中错误的方法、电子设备 | |
CN117408198B (zh) | 一种仿真模型建模方法、装置、设备及存储介质 | |
US20230259683A1 (en) | Selective extraction of design layout | |
KR101095858B1 (ko) | 테스트 스터브 생성 방법 및 그 장치 | |
de la Fuente et al. | Building a dynamically reconfigurable system through a high-level development flow | |
CN114417763A (zh) | 一种形式验证的方法、系统、设备和存储介质 | |
JP4039347B2 (ja) | ラッチ変換による遅延最適化回路の等価性検証システム、及びプログラム |
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 |