掌桥专利:专业的专利平台
掌桥专利
首页

一种FPGA设计开发方法

文献发布时间:2024-04-18 19:58:21


一种FPGA设计开发方法

技术领域

本发明属于FPGA开发技术领域,涉及一种FPGA设计开发方法。

背景技术

目前几乎所有的开源FPGA EDA工具都采用命令行的方式进行调用。在FPGA设计开发过程中不同阶段对应的EDA工具不同,如行为综合工具有Yosys、ODIN-II等,工艺映射工具ABC,打包布局布线工具有VPR、nextpnr等,在FPGA开发过程中,需要人工选择适配的EDA工具,并在终端输入相应的命令进行调用,极大地影响了开发效率。

发明内容

为了解决现有技术中存在的上述问题,本发明提供了一种FPGA设计开发方法。本发明要解决的技术问题通过以下技术方案实现:

本发明实施例提供了一种FPGA设计开发方法,包括以下步骤:

S1、在集成开发环境中,接收开启工程指令,所述开启工程指令用于指示打开或创建工程,所述工程用于管理FPGA设计开发过程中涉及到的文件;

S2、根据所述开启工程指令打开或创建工程;

S3、在所述工程中添加资源文件,以调用所述集成开发环境对所述资源文件进行管理和编译转换;所述资源文件包括:设计文件和约束文件,或者,所述资源文件包括:设计文件、约束文件和仿真文件;

S4、调用所述集成开发环境的执行功能对所述工程中对应的所述资源文件进行编译和转换,并根据所述转换结果得到可载入所述FPGA芯片的比特流,所述执行功能包括:综合功能、实现功能和比特流生成功能,或者,所述执行功能包括:所述综合功能、所述实现功能、所述比特流生成功能和仿真功能。

在本发明一个实施例中,所述根据所述开启工程指令打开工程,包括:

接收在所述集成开发环境主界面的选项中的选择打开工程按钮的点击指令;

显示弹窗,所述弹窗中包括要打开的所述工程中的XML文件;

接收在所述弹窗中显示的目标XML文件的点击指令;

打开所述目标XML文件。

在本发明一个实施例中,所述根据所述开启工程指令创建工程,包括:

接收对所述集成开发环境主界面的选项中的创建工程按钮的点击指令;

接收待创建工程的工程名和工程所在路径;

接收工程对应的芯片型号;

根据所述工程名、所述工程所在路径和所述芯片型号创建工程。

在本发明一个实施例中,步骤S3,包括:

步骤S3.1、接收对目标资源文件夹的点击操作;

目标资源文件选择指令,所述目标资源文件选择指令指示所选择的目标资源文件;

步骤S3.2、显示选择窗口,所述选择窗口中包括添加现有文件的按钮;

步骤S3.3、接收文件选择指令,所述文件选择指令指示在文件资源管理器中所选择的想要添加的目标文件;

步骤S3.4、将所述目标文件添加至所述工程对应的工程文件夹中。

在本发明一个实施例中,步骤S3,包括:

步骤S3.5、接收对所述集成开发环境主界面的选项中的添加资源文件选项的点击指令;

步骤S3.6、接收待创建文件类型指示;

步骤S3.7、接收待创建文件的文件名称和文件类型;

步骤S3.8、判断所述文件名称是否合法;

步骤S3.9、在确定所述文件名称合法后,在所述工程对应的工程文件夹中创建所述待创建文件;

步骤S3.10、打开所述待创建文件。

在本发明一个实施例中,所述方法还包括:

接收文件处理指令,文件处理指令指示对打开的所述待创建文件进行编辑操作;所述编辑操作包括:添加内容、修改内容或删除内容;

根据所述文件处理指令对所述待创建文件执行相应的操作。

在本发明一个实施例中,所述调用所述集成开发环境的综合功能对所述工程中对应的所述资源文件进行编译和转换,包括:

检测所述设计文件的顶层模块上是否包括执行标识;

若包括,则在接收到对所述集成开发环境主界面的选项中的综合选项调用功能的点击指令后,执行综合转换;

若不包括,则提示用户添加所述执行标识,在检测添加了所述执行标识后,在接收到对所述集成开发环境主界面的选项中的综合选项调用功能的点击指令后,执行综合转换,其中,所述综合转换包括:行为综合和工艺映射,所述行为综合指将所述设计文件中的电路转化为抽象层次较低但功能等价的门级网表,所述工艺映射指将所述门级网表中的单元进行优化。

在本发明一个实施例中,所述调用所述集成开发环境的实现功能对所述工程中对应的所述资源文件进行编译和转换,包括:

在接收到对所述集成开发环境主界面的选项中的打包选项的点击指令后,将执行打包功能,所述打包功能包括将所述工艺映射后的逻辑单元填装到抽象逻辑单元中;

在接收到对所述集成开发环境主界面的选项中的布局选项的点击指令后,将执行布局功能,所述布局功能包括将打包功能后的逻辑单元映射到芯片的物理单元上;

在接收到对所述集成开发环境主界面的选项中的布线选项的点击指令后,将执行布线功能,所述布线功能包括将布局功能后的物理单元之间的抽象连接用FPGA芯片内部的物理连接资源连通;

或者,

在接收到对所述集成开发环境主界面的选项中的实现选项的点击指令后,将顺序执行所述打包功能、布局功能和布线功能。

在本发明一个实施例中,所述调用所述集成开发环境的仿真功能对所述工程中对应的所述资源文件进行编译和转换,包括:

接收仿真指令,所述仿真指令中包括待仿真的设计文件;

将所述待仿真的设计文件的状态设置为活跃;

将编写的仿真文件与所述待仿真的设计文件关联;

在接收到对所述集成开发环境主界面的选项中的前仿真选项的点击指令后,显示要验证的参数选择窗口;

接收参数选择指令,所述参数选择指令指示在所述参数选择窗口所选择的要验证的参数;

根据所述参数选择指令调出前仿真后的波形图,并显示;

或者,

在接收到对所述集成开发环境主界面的选项中的后仿真选项的点击指令后,调用后仿真功能,以通过波形图的方式展示后仿真结果。

在本发明一个实施例中,所述根据所述转换结果得到可载入所述FPGA芯片的比特流,包括:

在接收到对所述集成开发环境主界面的选项中的比特流生成选项的点击指令后,将执行布线功能后得到的文件结合所述FPGA芯片物理信息转化为二进制文件。

与现有技术相比,本发明的有益效果:

本发明所提供的FPGA设计开发方法可以是根据FPGA设计开发流程以及底层工具链的调用执行方法设计的集成开发环境,可供使用者完成FPGA功能设计开发的全部流程。在集成开发环境中,使用者可以管理FPGA设计开发工程,添加或编辑资源文件,将设计文件转化为比特流文件。集成开发环境需要有简单友好的交互模式,便于使用者使用,降低使用时的学习成本,同时要保证底层工具链的调用顺序和逻辑正确,避免产生不正确的结果,导致FPGA功能开发失败。

通过以下参考附图的详细说明,本发明的其它方面和特征变得明显。但是应当知道,该附图仅仅为解释的目的设计,而不是作为本发明的范围的限定,这是因为其应当参考附加的权利要求。还应当知道,除非另外指出,不必要依比例绘制附图,它们仅仅力图概念地说明此处描述的结构和流程。

附图说明

图1为本发明实施例提供的一种FPGA设计开发方法的流程示意图;

图2为本发明实施例提供的一种FPGA设计开发方法的流程示意图;

图3为本发明实施例提供的一种FPGA设计开发方法的流程示意图;

图4为本发明实施例提供的一种调用集成开发环境的执行功能的示意图。

具体实施方式

下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。

请参见图1,图1为本发明实施例提供的一种FPGA设计开发方法的流程示意图。本发明提供一种FPGA设计开发方法,包括以下步骤:

S1、在集成开发环境中,接收开启工程指令,开启工程指令用于指示打开或创建工程,工程用于管理FPGA设计开发过程中涉及到的文件;

S2、根据开启工程指令打开或创建工程;

在集成开发环境中选择打开或创建一个工程,用于管理FPGA设计开发过程中中涉及到的文件。

具体的,根据开启工程指令打开工程,包括以下步骤A1-A4:

A1、接收在集成开发环境主界面的选项中的选择打开工程按钮的点击指令;

A2、显示弹窗,弹窗中包括要打开的工程中的XML文件;

A3、接收在弹窗中显示的目标XML文件的点击指令;

A4、打开目标XML文件。

在集成开发环境主界面的选项中选择打开工程,然后在弹出的窗口中选择要打开工程中的XML文件,即可在集成开发环境中打开目标工程。

具体的,根据开启工程指令创建工程,包括以下步骤B1-B4:

B1、接收对集成开发环境主界面的选项中的创建工程按钮的点击指令;

B2、接收待创建工程的工程名和工程所在路径;

B3、接收工程对应的芯片型号;

B4、根据工程名、工程所在路径和芯片型号创建工程。

在主界面选项中选择创建工程,需要使用者在弹出的窗口的第一个界面中填写工程名和工程所在路径,其中工程所在路径可以通过点击浏览在文件资源管理器中直接选择,且在选择将当前路径作为默认路径后,下次创建工程则会自动将路径填写到相应位置。在填写完成且工程名称和路径均可用之后,点击下一步在第二个界面选择工程对应的芯片型号,选择完成之后点击确定即可创建工程。在创建完成之后集成开发环境将自动打开该工程。

值得注意的是,工程文件夹下又分为设计文件夹、仿真文件夹、约束文件夹和临时文件夹,用于存放对应类型的文件,且包含唯一的XML文件用于保存所有文件的信息和芯片信息。

S3、在工程中添加资源文件,以调用集成开发环境对资源文件进行管理和编译转换;资源文件包括:设计文件和约束文件,或者,资源文件包括:设计文件、约束文件和仿真文件。

添加资源文件,包括设计文件和约束文件,如需要进行仿真,则需要添加仿真文件。

在工程中添加设计文件、约束文件和仿真文件,便于调用集成开发环境的功能对资源文件进行管理和编译转换。

添加文件时可以选择添加现有文件,或者在工程中添加空白文件,然后编辑文件添加内容,具体的:

在一个实施例中,如图2所示,步骤S3,包括:

步骤S3.1、接收对目标资源文件夹的点击操作;

目标资源文件选择指令,目标资源文件选择指令指示所选择的目标资源文件;

步骤S3.2、显示选择窗口,选择窗口中包括添加现有文件的按钮;

步骤S3.3、接收文件选择指令,文件选择指令指示在文件资源管理器中所选择的想要添加的目标文件;

步骤S3.4、将目标文件添加至工程对应的工程文件夹中。

具体的,使用鼠标右键点击特定的设计文件夹、仿真文件夹或约束文件夹,在弹出的选项中选择添加现有文件,然后在文件资源管理器中选择想要添加的文件,点击确定,集成开发环境即会把该文件添加到选定的工程文件夹下。特别的,在文件资源管理器中显示为可选择的文件是经过集成开发环境筛选的,筛选的依据是选定的工程文件夹中可保存的文件类型。

在一个实施例中,如图3所示,步骤S3,包括:

步骤S3.5、接收对集成开发环境主界面的选项中的添加资源文件选项的点击指令;

步骤S3.6、接收待创建文件类型指示;

步骤S3.7、接收待创建文件的文件名称和文件类型;

步骤S3.8、判断文件名称是否合法;

步骤S3.9、在确定文件名称合法后,在工程对应的工程文件夹中创建待创建文件;

步骤S3.10、打开待创建文件。

具体的,点击集成开发环境主界面中的添加资源文件选项,首先在弹出的窗口中选择需要创建的文件类型,包括设计文件、仿真文件和约束文件,选择完成点击下一步,然后在下一个界面填写文件名称,选择具体的文件类型,点击确定,由集成开发环境判断文件名是否重复,确定文件名合法后在对应的工程目录下创建该文件。特别的,在创建设计文件时,可选填文件的topmodule名称;在创建仿真文件时,需要选择与之关联的设计文件。

在文件创建完成之后,集成开发环境会自动在编辑区打开该文件,文件内容空。

在一个实施例中,方法还包括以下步骤C1-C2:

C1、接收文件处理指令,文件处理指令指示对打开的待创建文件进行编辑操作;编辑操作包括:添加内容、修改内容或删除内容;

C2、根据文件处理指令对待创建文件执行相应的操作。

具体的,添加或创建到工程中的资源文件可在集成开发环境中打开,显示文件内容。对于打开的文件,可直接对其内容进行编辑,如添加、修改或删除内容,因此对于创建的空白文件,可通过编辑为其添加内容。在编辑的过程中可使用复制、剪切、粘贴、撤销和恢复快捷操作。

值得注意的是,在集成开发环境中,一个工程必须包含设计文件和约束文件,才能正常使用集成开发环境的功能。在使用仿真功能时必须包含仿真文件,并将需要仿真的目标设计文件与仿真文件进行关联。

S4、调用集成开发环境的执行功能对工程中对应的资源文件进行编译和转换,并根据转换结果得到可载入FPGA芯片的比特流,执行功能包括:综合功能、实现功能和比特流生成功能,或者,执行功能包括:综合功能、实现功能、比特流生成功能和仿真功能。

点击软件系统中的按钮或选项,执行FPGA设计开发流程,包括仿真、综合、实现(打包、布局和布线)和比特流生成,将设计文件转化为适配当前FPGA芯片类型的比特流。其中仿真步骤可选择执行,不影响最终结果,具体的:

调用集成开发环境的主要功能(包括:综合功能、实现功能和仿真功能),对工程中的资源文件进行编译和转换,最终生成可载入FPGA芯片的比特流,如图4所示。转化包括综合(可分为行为综合和工艺映射)、实现(可分为打包、布局和布线三步)和比特流生成。仿真分为前仿真和后仿真,为非必要执行步骤,用于验证功能的正确性,不影响最终生成的比特流的功能。

在一个实施例中,调用集成开发环境的综合功能对工程中对应的资源文件进行编译和转换,包括D1-D3:

D1、检测设计文件的顶层模块上是否包括执行标识;

D2、若包括,则在接收到对集成开发环境主界面的选项中的综合选项调用功能的点击指令后,执行综合转换;

D3、若不包括,则提示用户添加执行标识,在检测添加了执行标识后,在接收到对集成开发环境主界面的选项中的综合选项调用功能的点击指令后,执行综合转换,其中,综合转换包括:行为综合和工艺映射,行为综合指将设计文件中的电路转化为抽象层次较低但功能等价的门级网表,工艺映射指将门级网表中的单元进行优化。

具体的,行为综合将设计文件中的电路转化为抽象层次较低但功能等价的门级网表,工艺映射将门级网表中的单元进行优化。在集成开发环境中,这两个步骤合为一步执行,称为综合。若工程中设计文件的顶层模块上没有执行标识“(*top*)”,则需要使用者手动添加,否则无法正常执行综合。若满足以上条件,则可点击主界面中的综合选项调用功能,集成开发环境会自动识别所有设计文件,然后进行综合转换。

实现步骤可一步执行,也可分为打包、布局和布线三步执行。

在一个实施例中,调用集成开发环境的实现功能对工程中对应的资源文件进行编译和转换,包括E1-E3:

E1、在接收到对集成开发环境主界面的选项中的打包选项的点击指令后,将执行打包功能,打包功能包括将工艺映射后的逻辑单元填装到抽象逻辑单元中;

打包是将工艺映射后的逻辑单元(如:LUT、RAM、寄存器等)填装到抽象逻辑单元(如CLB、DSP等)中。在主界面中点击打包选项即可调用打包功能。打包需要在综合之后执行,因此集成开发环境执行打包前,会先验证综合步骤是否执行。若未执行,则集成开发环境会先调用执行综合,然后再执行打包,保证流程执行顺序的正确性。

E2、在接收到对集成开发环境主界面的选项中的布局选项的点击指令后,将执行布局功能,布局功能包括将打包功能后的逻辑单元映射到芯片的物理单元上;

布局是将打包后的逻辑单元(如CLB、DSP等)映射到芯片的物理单元上。在主界面中点击布局选项即可调用布局功能。布局需要在打包之后执行,与执行打包类似,集成开发环境会按照顺序从未执行的步骤开始执行,直到布局执行完成。

E3、在接收到对集成开发环境主界面的选项中的布线选项的点击指令后,将执行布线功能,布线功能包括将布局功能后的物理单元之间的抽象连接用FPGA芯片内部的物理连接资源连通;

布线是将布局后的物理单元之间的抽象连接用FPGA芯片内部的物理连接资源连通。在主界面中点击布线选项即可调用布线功能。集成开发环境会按照顺序从未执行的步骤开始执行,直到布线执行完成。

或者,

在一个实施例中,调用集成开发环境的实现功能对工程中对应的资源文件进行编译和转换,包括:

在接收到对集成开发环境主界面的选项中的实现选项的点击指令后,将顺序执行打包功能、布局功能和布线功能。

具体的,实现步骤即为以上三个步骤的合集。在主界面中点击实现选项,即可一次性执行打包、布局和布线。

仿真包括:前仿真和后仿真。

在一个实施例中,调用集成开发环境的仿真功能对工程中对应的资源文件进行编译和转换,包括F1-F6:

F1、接收仿真指令,仿真指令中包括待仿真的设计文件;

F2、将待仿真的设计文件的状态设置为活跃;

F3、将编写的仿真文件与待仿真的设计文件关联;

F4、在接收到对集成开发环境主界面的选项中的前仿真选项的点击指令后,显示要验证的参数选择窗口;

F5、接收参数选择指令,参数选择指令指示在参数选择窗口所选择的要验证的参数;

F6、根据参数选择指令调出前仿真后的波形图,并显示。

前仿真为功能仿真,用于验证所编写的电路设计文件功能是否正确。针对特定的设计文件进行仿真时,在执行时,选定需要仿真的设计文件,将其设为活跃;将编写的仿真文件与设计文件关联;在集成开发环境主界面中点击前仿真选项,在弹出的界面中选定要验证的参数,即可调出仿真后的波形图;使用者通过波形图查看功能的正确性。

或者,

在一个实施例中,调用集成开发环境的仿真功能对工程中对应的资源文件进行编译和转换,包括:

在接收到对集成开发环境主界面的选项中的后仿真选项的点击指令后,调用后仿真功能,以通过波形图的方式展示后仿真结果。

具体的,后仿真用于验证布线完成后,电路的时序正确性。在集成开发环境中点击后仿真按钮即可调用后仿真功能。后仿真的结果与芯片的物理信息相关,同样以波形图的方式展示仿真结果。

在一个实施例中,根据转换结果得到可载入FPGA芯片的比特流,包括:

在接收到对集成开发环境主界面的选项中的比特流生成选项的点击指令后,将执行布线功能后得到的文件结合FPGA芯片物理信息转化为二进制文件。

具体的,比特流生成用于将布线后的文件结合FPGA芯片物理信息转化二进制文件。在主界面点击比特流生成按钮即可生成完成转化。

其中,在步骤S4中的所有子流程生成的文件,都由集成开发环境保存在工程目录中的临时文件夹下,并将文件信息保存在工程XML文件中。

在集成开发环境执行步骤S1-S3时,所有操作的反馈都将在主界面最下方的终端中显示。在执行步骤S4时,编译转化设计文件时的所有输出也会显示在终端中。

除主要功能外,集成开发环境还支持调用执行脚本文件,在主界面中与操作系统终端进行交互。

目前所能调用的开源FPGA EDA工具链都没有很好的集成各个阶段的工具,没有良好的调用系统和交互界面,且工具的下载安装极为复杂,增加了FPGA开发人员的学习成本。

而本发明是根据FPGA设计开发流程以及底层工具链的调用执行方法设计的集成开发环境,可供使用者完成FPGA功能设计开发的全部流程。在集成开发环境中,使用者可以管理FPGA设计开发工程,添加或编辑资源文件,将设计文件转化为比特流文件。集成开发环境需要有简单友好的交互模式,便于使用者使用,降低使用时的学习成本,同时要保证底层工具链的调用顺序和逻辑正确,避免产生不正确的结果,导致FPGA功能开发失败。

进一步的,本发明主要通过为FPGA设计开发提供全流程调用以及简单友好的交互界面,以提高FPGA设计开发的效率。

本发明将支持FPGA设计开发不同阶段的EDA工具链进行整合,实现全流程调用,且为其提供交互界面,屏蔽工具链的复杂调用过程。

本发明可适用于多个公司开发的多款FPGA芯片,如赛灵思公司的Virtex-5、Virtex-6、Virtex-7以和Artix-7系列芯片,和Lattice公司的ICE40和ECP5系列芯片。

在本发明的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特数据点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特数据点可以在任何的一个或多个实施例或示例中以合适的方式结合。此外,本领域的技术人员可以将本说明书中描述的不同实施例或示例进行接合和组合。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

相关技术
  • 在FPGA开发中使用ViadoHLS实现openCV的设计方法
  • 一种基于FPGA开发板设计的仓储机器人电路老化测试系统
技术分类

06120116481739