Fpga部分重配置实现方法、装置及电子设备和存储介质

文档序号:1755362 发布日期:2019-11-29 浏览:22次 >En<

阅读说明:本技术 Fpga部分重配置实现方法、装置及电子设备和存储介质 (FPGA portion reconfigures implementation method, device and electronic equipment and storage medium ) 是由 王贤坤 于 2019-08-09 设计创作,主要内容包括:本申请公开了一种FPGA部分重配置实现方法、装置及一种电子设备和计算机可读存储介质,该方法包括:确定FPGA的逻辑结构;其中,所述逻辑结构描述所述FPGA中多个逻辑区域的划分结果;为每个所述逻辑区域分配逻辑资源,并为每个所述逻辑区域设置约束标志,以便实现FPGA的部分重配置;基于每个所述逻辑区域的代码生成每个所述逻辑区域的网表,并根据所述网表对所述FPGA进行布局布线。由此可见,本申请提供的FPGA部分重配置实现方法,降低了实现FPGA部分重配置的硬件结构的复杂程度和软件依赖性。(This application discloses a kind of FPGA portions to reconfigure implementation method, device and a kind of electronic equipment and computer readable storage medium, this method comprises: determining the logical construction of FPGA;Wherein, in FPGA described in the logical structure description multiple logic regions division result;Logical resource is distributed for each logic region, and constraint flag is set for each logic region, to realize that the part of FPGA reconfigures;The netlist of each logic region of code building based on each logic region, and wiring is laid out to the FPGA according to the netlist.It can be seen that FPGA portion provided by the present application reconfigures implementation method, the complexity and software dependence of the hardware configuration for realizing that FPGA portion reconfigures are reduced.)

FPGA部分重配置实现方法、装置及电子设备和存储介质

技术领域

本申请涉及计算机技术领域,更具体地说,涉及一种FPGA部分重配置实现方法、装置及一种电子设备和一种计算机可读存储介质。

背景技术

FPGA(中文全称:现场可编程门阵列,英文全称:Field-Programmable GateArray)由于可编程灵活性高、开发周期短、并行计算等特点,在各个领域各个业中的应用越来越广泛。部分重配置是一种动态修改逻辑模块的技术,可以在不妨碍其他逻辑运行的情况下更新部分比特文件。部分重配置允许设计者在系统运行过程中修改功能,而无需全面重新配置和重新建立连接,极大地提高了FPGA的灵活性。

在相关技术中,开发人员可以利用软件设置FPGA中的逻辑区域支持部分重配置功能,可按设计需求调整重配置区域逻辑,但其硬件结构复杂,软件依赖性强,操作繁琐。

因此,如何降低实现FPGA部分重配置的硬件结构的复杂程度和软件依赖性是本领域技术人员需要解决的技术问题。

发明内容

本申请的目的在于提供一种FPGA部分重配置实现方法、装置及一种电子设备和一种计算机可读存储介质,降低了实现FPGA部分重配置的硬件结构的复杂程度和软件依赖性。

为实现上述目的,本申请提供了一种FPGA部分重配置实现方法,包括:

确定FPGA的逻辑结构;其中,所述逻辑结构描述所述FPGA中多个逻辑区域的划分结果;

为每个所述逻辑区域分配逻辑资源,并为每个所述逻辑区域设置约束标志,以便实现FPGA的部分重配置;

基于每个所述逻辑区域的代码生成每个所述逻辑区域的网表,并根据所述网表对所述FPGA进行布局布线。

其中,所述逻辑区域之间通过片内信号线或总线连接,所述逻辑区域与主机之间通过外部管脚相连。

其中,还包括:

当接收到重配置命令时,确定所述重配置命令对应的目标逻辑区域;

根据所述重配置命令对所述目标逻辑区域的代码进行更新。

其中,所述根据所述重配置命令对所述目标逻辑区域的代码进行更新,包括:

下载所述目标逻辑区域的代码,并根据所述重配置命令对所述代码进行更新。

其中,所述根据所述重配置命令对所述目标逻辑区域的代码进行更新,包括:

下载所有所述逻辑区域,利用所述目标逻辑区域的约束标志所述根据所述重配置命令对所述目标逻辑区域的代码进行更新。

为实现上述目的,本申请提供了一种FPGA部分重配置实现装置,包括:

确定模块,用于确定FPGA的逻辑结构;其中,所述逻辑结构描述所述FPGA中多个逻辑区域的划分结果;

设置模块,用于为每个所述逻辑区域分配逻辑资源,并为每个所述逻辑区域设置约束标志,以便实现FPGA的部分重配置;

生成模块,用于基于每个所述逻辑区域的代码生成每个所述逻辑区域的网表,并根据所述网表对所述FPGA进行布局布线。

其中,还包括:

接收模块,用于当接收到重配置命令时,确定所述重配置命令对应的目标逻辑区域;

更新模块,用于根据所述重配置命令对所述目标逻辑区域的代码进行更新。

其中,所述更新模块具体为下载所有所述逻辑区域,利用所述目标逻辑区域的约束标志所述根据所述重配置命令对所述目标逻辑区域的代码进行更新的模块。

为实现上述目的,本申请提供了一种电子设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上述FPGA部分重配置实现方法的步骤。

为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述FPGA部分重配置实现方法的步骤。

通过以上方案可知,本申请提供的一种FPGA部分重配置实现方法,包括:确定FPGA的逻辑结构;其中,所述逻辑结构描述所述FPGA中多个逻辑区域的划分结果;为每个所述逻辑区域分配逻辑资源,并为每个所述逻辑区域设置约束标志,以便实现FPGA的部分重配置;基于每个所述逻辑区域的代码生成每个所述逻辑区域的网表,并根据所述网表对所述FPGA进行布局布线。

在本申请中,在出厂时将FPGA划分为多个逻辑区域,即FPGA的逻辑结构在出厂时已确定,相对于相关技术,牺牲了部分重配置的区域调整灵活性和适用度,但硬件结构实现简单明确,因此对控制该硬件的软件工具的性能要求较低。由此可见,本申请提供的FPGA部分重配置实现方法,降低了实现FPGA部分重配置的硬件结构的复杂程度和软件依赖性。本申请还公开了一种FPGA部分重配置实现装置及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的

具体实施方式

一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1为根据一示例性实施例示出的一种FPGA部分重配置实现方法的流程图;

图2为根据一示例性实施例示出的一种逻辑区域划分的示意图;

图3为根据一示例性实施例示出的一种FPGA部分重配置实现装置的结构图;

图4为根据一示例性实施例示出的一种电子设备的结构图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例公开了一种FPGA部分重配置实现方法,降低了实现FPGA部分重配置的硬件结构的复杂程度和软件依赖性。

参见图1,根据一示例性实施例示出的一种FPGA部分重配置实现方法的流程图,如图1所示,包括:

S101:确定FPGA的逻辑结构;其中,所述逻辑结构描述所述FPGA中多个逻辑区域的划分结果;

本实施例的执行主体可以为与FPGA连接的主机的处理器,在本实施例中,在出厂时可以根据实际应用需求将FPGA划分为多个相对独立的逻辑区域,各逻辑区域支持独立的程序适配,即FPGA的逻辑结构在出厂时已确定。如图2所示,(a)和(b)为两种不同的划分方式,可以理解的是,此处不对逻辑区域的数量进行限定,本领域技术人员可以根据实际情况灵活设置,图2仅为简单示例。

逻辑区域按照其是否支持重配置分为部分重配置区域和其他区域,部分重配置区域可满足FPGA的部分重配置功能需求,支持独立的程序更新。如图2所示,可以仅将区域A设置为部分重配置区域,也可以将区域A和区域B同时设置为部分重配置区域。

对于部分重配置区域的代码设计,需要进行其与其他区域间信号接口的设计,例如与其他区域间的通信和控制信号处理等。需要说明的是,本实施例不对各逻辑区域之间的连接方式和逻辑区域与主机的连接方式进行限定,逻辑区域之间可以通过片内信号线或总线连接,逻辑区域与主机之间可以通过外部管脚相连。逻辑区域可以进行两两的通信连接,也可以选取部分逻辑区域进行通信连接,在此不进行具体限定。同样,每个逻辑区域均可以与主机相连,也可以选取部分逻辑区域与主机相连,在此不进行具体限定。

S102:为每个所述逻辑区域分配逻辑资源,并为每个所述逻辑区域设置约束标志,以便实现FPGA的部分重配置;

在本步骤中,各逻辑区域可以按照常用的需求比例分配逻辑资源,本实施例不对具体的分配比例进行限定。同时,在设计代码顶层例化模块时,设置各逻辑区域的约束标志,用于后续步骤生成该逻辑区域的网表和实现部分重配置。例如图2中,区域A的约束标志为(*SET_AREA=A*),区域B的约束标识为(*SET_AREA=B*)。

S103:基于每个所述逻辑区域的代码生成每个所述逻辑区域的网表,并根据所述网表对所述FPGA进行布局布线。

FPGA是一种具有特定逻辑结构的芯片,设计软件可根据选定的FPGA芯片型号特点将设计代码综合后的网表文件进行适配并布局布线到芯片中,实现设计功能的定制实现。因此,在本步骤中,可以根据逻辑区域的约束标志,将代码综合成信号相关的相对独立的网表文件,然后根据选定的FPGA芯片型号,即可识别具体的逻辑区域,并将相应的网表文件适配到相对的逻辑区域中,优化布局布线,最终完成对FPGA芯片的下载更新。

优选的,本实施例还可以包括重配置过程,即当接收到重配置命令时,确定所述重配置命令对应的目标逻辑区域;根据所述重配置命令对所述目标逻辑区域的代码进行更新。

作为一种可行的实施方式,所述根据所述重配置命令对所述目标逻辑区域的代码进行更新可以包括:下载所述目标逻辑区域的代码,并根据所述重配置命令对所述代码进行更新。

作为另一种可行的实施方式,所述根据所述重配置命令对所述目标逻辑区域的代码进行更新,包括:下载所有所述逻辑区域,利用所述目标逻辑区域的约束标志所述根据所述重配置命令对所述目标逻辑区域的代码进行更新。

在具体实施中,需要对代码部分重配置时,可以单独对需要重配置的代码进行综合适配和下载更新,也可以在顶层文件中添加约束标志,标注出需要更新的代码和无需更新的代码,由软件工具实现。

在本申请实施例中,在出厂时将FPGA划分为多个逻辑区域,即FPGA的逻辑结构在出厂时已确定,相对于相关技术,牺牲了部分重配置的区域调整灵活性和适用度,但硬件结构实现简单明确,因此对控制该硬件的软件工具的性能要求较低。由此可见,本申请实施例提供的FPGA部分重配置实现方法,降低了实现FPGA部分重配置的硬件结构的复杂程度和软件依赖性。

下面对本申请实施例提供的一种FPGA部分重配置实现装置进行介绍,下文描述的一种FPGA部分重配置实现装置与上文描述的一种FPGA部分重配置实现方法可以相互参照。

参见图3,根据一示例性实施例示出的一种FPGA部分重配置实现装置的结构图,如图3所示,包括:

确定模块301,用于确定FPGA的逻辑结构;其中,所述逻辑结构描述所述FPGA中多个逻辑区域的划分结果;

设置模块302,用于为每个所述逻辑区域分配逻辑资源,并为每个所述逻辑区域设置约束标志,以便实现FPGA的部分重配置;

生成模块303,用于基于每个所述逻辑区域的代码生成每个所述逻辑区域的网表,并根据所述网表对所述FPGA进行布局布线。

在本申请实施例中,在出厂时将FPGA划分为多个逻辑区域,即FPGA的逻辑结构在出厂时已确定,相对于相关技术,牺牲了部分重配置的区域调整灵活性和适用度,但硬件结构实现简单明确,因此对控制该硬件的软件工具的性能要求较低。由此可见,本申请实施例提供的FPGA部分重配置实现装置,降低了实现FPGA部分重配置的硬件结构的复杂程度和软件依赖性。

在上述实施例的基础上,作为一种优选实施方式,所述逻辑区域之间通过片内信号线或总线连接,所述逻辑区域与主机之间通过外部管脚相连。

在上述实施例的基础上,作为一种优选实施方式,还包括:

接收模块,用于当接收到重配置命令时,确定所述重配置命令对应的目标逻辑区域;

更新模块,用于根据所述重配置命令对所述目标逻辑区域的代码进行更新。

在上述实施例的基础上,作为一种优选实施方式,所述更新模块具体为下载所有所述逻辑区域,利用所述目标逻辑区域的约束标志所述根据所述重配置命令对所述目标逻辑区域的代码进行更新的模块。

在上述实施例的基础上,作为一种优选实施方式,所述更新模块具体为下载所述目标逻辑区域的代码,并根据所述重配置命令对所述代码进行更新的模块。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本申请还提供了一种电子设备,即与上述实施例中的FPGA连接的主机,参见图4,本申请实施例提供的一种电子设备400的结构图,如图4所示,该主机可以包括处理器11和存储器12,还可以包括多媒体组件13,输入/输出(I/O)接口14,以及通信组件15中的一者或多者。

其中,处理器11用于控制该电子设备400的整体操作,以完成上述的FPGA部分重配置实现方法中的全部或部分步骤。存储器12用于存储各种类型的数据以支持在该电子设备400的操作,这些数据例如可以包括用于在该电子设备400上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器12可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件13可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器12或通过通信组件15发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口14为处理器11和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件15用于该电子设备400与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件15可以包括:Wi-Fi模块,蓝牙模块,NFC模块。

在一示例性实施例中,电子设备400可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的FPGA部分重配置实现方法。

在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述FPGA部分重配置实现方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器12,上述程序指令可由电子设备400的处理器11执行以完成上述的FPGA部分重配置实现方法。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

10页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:嵌入式FPGA集群智能计算平台硬件框架

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!