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

对FPGA进行配置、回读和刷新的电路及控制方法

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


对FPGA进行配置、回读和刷新的电路及控制方法

技术领域

本发明涉及集成电路技术领域,具体涉及一种对FPGA进行配置、回读和刷新的电路及控制方法。

背景技术

FPGA(Field-Programmable Gate Array)即现场可编程门阵列,它是和CPU、DSP并列的一种通用集成电路。FPGA片内包括时序逻辑、组合逻辑、布线资源、存储器阵列、运算逻辑阵列、时钟网络、IO逻辑等资源,用户通过图形化设计方式、或者硬件描述语言(HDL)的设计输入方式,可以对FPGA片内的资源进行调用、进而搭建出各种数字电路。

用户完成FPGA功能开发设计之后,需要将电路设计转换为二进制码流,码流中只包含0、1数字组合,其不同的数字组合方式,决定了FPGA片内的电路结构。由于FPGA的功能是由码流所决定的,所以,如果希望FPGA行使预期的功能,就要先将码流传输进FPGA,这一过程称作“配置”(Configuration)。

对FPGA进行配置的电路,是领域内的公知技术:其一种典型方法是JTAG下载回读:从上位机,经过USB和JTAG接口的下载线,通过JTAG接口,将码流传输至FPGA,并可进行回读比对。此方法能够实现对FPGA的配置、回读,但缺点是:配置信息掉电即丢,只适用于调试,无法用于产品和设备的现场部署。另一种方法是:使用PROM对FPGA进行上电配置时的配置加载,其优点是PROM可以对配置数据作非易失存储,并且由于工作状态下不需要上位机,所以可以部署于实际的产品中,但是其缺点是:只能对FPGA进行上电配置的配置加载,无法对FPGA配置进行回读、比对、刷新。

相关技术中,公布号为CN112433777A的专利申请文献提出了一种SRAM型FPGA的配置数据动态刷新方法,所存在的缺陷是:仅支持SPI NOR Flash,功能固定单一且无法实时对芯片的工作模式进行调整设置;需要生成配置文件和屏蔽文件,生成屏蔽文件需要更加复杂的设计流程且设计开发时间更长,需要的存储器空间更大,进而需要更多存储器芯片、更高的成本;另外该方案只实现了回读刷新,未记载上电初始化配置过程。公布号为CN112527350A的专利申请文献提出了一种星载SRAM型FPGA配置与刷新控制的IP核,所存在的缺陷是:仅支持并口NOR Flash,功能固定单一、无法实时对芯片的工作模式进行调整设置;再者其作为一个IP而出现,对外包括APB总线、AXI总线、DMA接口,只能由更大的电路的子模块使用,无法作为独立工作的模块。另外,SRAM型FPGA的配置方案中,SRAM阵列易受空间粒子、宇宙射线、带电粒子的影响,进而发生误翻转。

发明内容

本发明所要解决的技术问题在于如何提供一种对FPGA芯片进行配置、回读和刷新的电路。

本发明通过以下技术手段解决上述技术问题的:

第一方面,本发明提出了一种对FPGA进行配置、回读和刷新的电路,所述电路包括存储控制器、串口模块、数据通路、FPGA接口模块以及状态机,所述存储控制器与所述FPGA接口模块之间、所述存储控制器与所述串口模块之间以及所述FPGA接口模块与所述串口模块之间均通过所述数据通路连接,所述状态机分别与所述存储控制器、所述串口模块、所述数据通路以及所述FPGA接口模块相连接,所述存储控制器连接有存储器,所述串口模块与上位机相连接;

所述状态机包括:

信息接收模块,用于通过所述串口模块接收所述上位机发送的信息,所述信息的内容包括指令、数据以及控制信息;

读写控制模块,用于基于所述控制信息控制所述存储控制器对其连接的存储器进行所述数据的读写操作;

配置模块,用于基于所述控制信息和所述指令控制所述FPGA接口模块通过所述数据通路获取所述存储器中的数据或所述串口模块发送的数据,以对所述FPGA接口模块连接的FPGA芯片进行配置;

回读模块,用于基于所述控制信息和所述指令控制所述FPGA接口模块对所连接的FPGA芯片进行回读,并将获取的回读数据经所述数据通路发送至所述串口模块;

刷新模块,用于在所述FPGA接口模块将回读数据与存储器中的数据或串口模块所发送的数据进行比对进行比对出错时,所述状态机用于基于所述控制信息控制所述FPGA接口模块,以使所述FPGA接口模块利用所述存储器中的数据或所述串口模块发送的数据对FPGA芯片的配置数据进行刷新。

进一步地,所述信息的内容还包括地址,所述串口模块接收所述上位机发送的信息,并将所述数据发送至与所述地址对应的所述存储器或所述FPGA接口模块。

进一步地,所述串口模块还连接有配置寄存器,所述信息的内容还包括用于表示所述存储器的工作状态的状态信息;

所述串口模块用于将所述数据、所述状态信息和所述控制信息写入所述配置寄存器。

进一步地,所述状态机用于基于所述控制信息控制所述存储控制器,使得所述存储控制器通过所述数据通路接收所述串口模块发送的数据并写入所述存储器,或使得所述存储控制器读取存储器中的数据并通过所述数据通路发送给所述串口模块或所述FPGA接口模块。

进一步地,所述存储控制器包括SPI Flash控制器、并口NOR Flash控制器以及PROM控制器中的至少一种,所述存储器包括SPI Flash、NOR Flash以及PROM中的至少一种,所述SPI Flash控制器与所述SPI Flash相连接,所述并口NOR Flash控制器与所述NORFlash相连接,所述PROM控制器与所述PROM相连接。

进一步地,所述电路还包括ECC译码模块,所述数据通路与所述FPGA接口模块之间经所述ECC译码模块连接,所述ECC译码模块用于采用BCH编码或汉明码或LDPC码对存储器中编码后的数据进行检错和纠错。

进一步地,所述FPGA接口模块设置的数量为至少一个。

进一步地,所述电路为采用硬件描述语言实现的数字逻辑电路。

第二方面,本发明提出了一种如上所述的对FPGA进行配置、回读和刷新的电路的控制方法,应用于上位机,所述方法包括:

通过所述串口模块接收所述上位机发送的信息,所述信息的内容包括指令、数据以及控制信息;

基于所述控制信息控制所述存储控制器对其连接的存储器进行所述数据的读写操作;

基于所述控制信息和所述指令控制所述FPGA接口模块通过所述数据通路获取所述存储器中的数据或所述串口模块发送的数据,以对所述FPGA接口模块连接的FPGA芯片进行配置;

基于所述控制信息和所述指令控制所述FPGA接口模块对所连接的FPGA芯片进行回读,并将获取的回读数据经所述数据通路发送至所述串口模块;

在所述FPGA接口模块将回读数据与存储器中的数据或串口模块所发送的数据进行比对进行比对出错时,基于所述控制信息控制所述FPGA接口模块,以使所述FPGA接口模块利用所述存储器中的数据或所述串口模块发送的数据对FPGA芯片的配置数据进行刷新。

进一步地,所述串口模块还连接有配置寄存器,所述信息的内容还包括用于表示所述存储器的工作状态的状态信息;

所述串口模块用于将所述数据、所述状态信息和所述控制信息写入所述配置寄存器。

本发明的优点在于:

(1)本发明通过设置状态机对存储控制器、串口模块、数据通路、FPGA接口模块进行控制,控制存储控制器对存储器的操作及控制FPGA接口模块对FPGA的配置/回读/刷新操作等,通过配置、回读、刷新操作,可以对FPGA芯片内的配码错误进行检测和更新,增强了FPGA芯片对恶劣环境的适应性;与JTAG配置模式相比,可以在无上位机的情况下工作,能够实现现场部署,与PROM配置模式相比,能够实现FPGA配码的回读、比对、刷新。

(2)能够支持并口NOR Flash、SPI Flash、PROM等多种存储器芯片类型。

(3)既可以上电后按照默认的预定流程工作,也可以通过串口对芯片的工作模式进行实时的调整设置,克服了传统的配置电路功能固定单一的缺点。

(4)配置回读刷新的电路是纯数字逻辑电路,既可以通过1颗ASIC单芯片实现,也可以使用CPLD或另一颗FPGA来实现,是一个可以独立工作的电路。

本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

图1是本发明实施例一种对FPGA进行配置、回读和刷新的电路的结构框图;

图2是本发明实施例中上位机通过串口模块访问各存储器的示意图;

图3是本发明实施例中上位机通过串口模块访问FPGA的示意图;

图4是本发明实施例中上位机通过串口模块访问配置寄存器的示意图;

图5是本发明实施例中通过存储器中的数据对FPGA进行配置操作的示意图;

图6是本发明实施例中通过存储器中的数据对FPGA进行回读、刷新操作的示意图;

图7是本发明实施例中另一种对FPGA进行配置、回读和刷新的电路的结构框图;

图8是本发明实施例一种对FPGA进行配置、回读和刷新的电路的控制方法的流程示意图。

图中:

1-SPI Flash控制器;2并口NOR Flash控制器;3-PROM控制器;4-串口模块;5-数据通路;6-FPGA接口模块;7-上位机;8-状态机;9-配置寄存器。

具体实施方式

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

如图1所示,本发明第一实施例提出了一种对FPGA进行配置、回读和刷新的电路,所述电路包括存储控制器、串口模块4、数据通路5、FPGA接口模块6以及状态机8,所述存储控制器与所述FPGA接口模块6之间、所述存储控制器与所述串口模块4之间以及所述FPGA接口模块6与所述串口模块4之间均通过所述数据通路5连接,所述状态机8分别与所述存储控制器、所述串口模块4、所述数据通路5以及所述FPGA接口模块6相连接,所述存储控制器连接有存储器,所述串口模块4与上位机7相连接;

所述状态机8包括:

信息接收模块,用于通过所述串口模块4接收所述上位机7发送的信息,所述信息的内容包括指令、数据以及控制信息;

读写控制模块,用于基于所述控制信息控制所述存储控制器对其连接的存储器进行所述数据的读写操作;

配置模块,用于基于所述控制信息和所述指令控制所述FPGA接口模块6通过所述数据通路5获取所述存储器中的数据或所述串口模块4发送的数据,以对所述FPGA接口模块6连接的FPGA芯片进行配置;

回读模块,用于基于所述控制信息和所述指令控制所述FPGA接口模块6对所连接的FPGA芯片进行回读,并将获取的回读数据经所述数据通路5发送至所述串口模块4;

刷新模块,用于在所述FPGA接口模块6将回读数据与存储器中的数据或串口模块4所发送的数据进行比对进行比对出错时,所述状态机8用于基于所述控制信息控制所述FPGA接口模块6,以使所述FPGA接口模块6利用所述存储器中的数据或所述串口模块4发送的数据对FPGA芯片的配置数据进行刷新。

具体地,所述存储控制器用于读取存储器中的数据并通过数据通路5发送给串口模块4或FPGA接口模块6;所述串口模块4与上位机7之间双向通讯连接,用于向上位机7发送数据,以及接收上位机7所发送的信息。所述FPGA接口模块6用于对FPGA的回读数据进行比对,即将FPGA的回读数据与存储器中的数据或串口模块4所发送的数据进行比对,若一致,则表示FPGA功能正常,FPGA的配置数据正确;若不一致,则FPGA的配置数据错误;所述FPGA接口模块6还用于利用存储器中的数据或串口模块4所发送的数据对FPGA的配置数据进行刷新。

本实施例通过设置状态机8对存储控制器、串口模块4、数据通路5、FPGA接口模块6进行控制,控制存储控制器对存储器的操作及控制FPGA接口模块6对FPGA的配置/回读/刷新操作等,通过配置、回读、刷新操作,可以对FPGA芯片内的配码错误进行检测和更新,增强了FPGA芯片对恶劣环境的适应性。

在一实施例中,所述信息的内容还包括地址,所述串口模块4接收所述上位机7发送的信息,并将所述数据发送至与所述地址对应的所述存储器或所述FPGA接口模块6。

需要说明的是,所述地址包括存储器的地址和FPGA接口模块6的地址,写入存储器中的数据是非易失的(掉电后数据不丢,重新上电后,数据还在),在下一次上电,存储器中的数据,用于写给FPGA芯片、对FPGA芯片做配置。串口数据如果直接写给FPGA芯片,就是直接对FPGA芯片做配置的,但是写给FPGA芯片的数据,掉电即丢。

在一实施例中,所述串口模块4还连接有配置寄存器9,所述信息的内容还包括用于表示所述存储器的工作状态的状态信息;

所述串口模块4用于将所述数据、所述状态信息和所述控制信息写入所述配置寄存器9。

需要说明的是所述串口模块4还与配置寄存器9相连接,将上位机7的数据、控制信息、发送至配置寄存器9;即上位机7通过串口模块4对配置寄存器9进行读写操作,配置寄存器9可以理解为电路内部的控制位,用于对电路的功能进行设定、控制等,相当于控制寄存器。

在一实施例中,所述状态机8用于基于所述控制信息控制所述存储控制器,使得所述存储控制器通过所述数据通路5接收所述串口模块4发送的数据并写入所述存储器,或使得所述存储控制器读取存储器中的数据并通过所述数据通路5发送给所述串口模块4或所述FPGA接口模块6。

在一实施例中,所述存储控制器包括SPI Flash控制器1、并口NOR Flash控制器2以及PROM控制器3中的至少一种,所述存储器包括SPI Flash、NOR Flash以及PROM中的至少一种,所述SPI Flash控制器1与所述SPI Flash相连接,所述并口NOR Flash控制器2与所述NOR Flash相连接,所述PROM控制器3与所述PROM相连接。

具体地,如图2至图6所示,所述SPI Flash控制器1与数据通路5进行双向数据交互;所述SPI Flash控制器1通过数据通路5接收串口模块4所发送的数据并写给SPI Flash;所述SPI Flash控制器1读取SPI Flash中的数据并通过数据通路5发送给串口模块4或FPGA接口模块6;所述SPI Flash控制器1接受状态机8的控制,在状态机8的控制下,对并口SPIFlash进行读写擦等操作。

所述并口NOR Flash控制器2与数据通路5进行双向数据交互;所述并口NOR Flash控制器2通过数据通路5接收串口模块4所发送的数据并写给NOR Flash;所述并口NORFlash控制器2读取并口NOR Flash中的数据并通过数据通路5发送给串口模块4或FPGA接口模块6;所述并口NOR Flash控制器2接受状态机8的控制,在状态机8的控制下,对并口NORFlash进行读写擦等操作。

所述PROM控制器3与数据通路5进行数据交互;所述PROM控制器3读取PROM中的数据并通过数据通路5发送给串口模块4或FPGA接口模块6;所述PROM控制器3接受状态机8的控制,在状态机8的控制下,对PROM进行读取操作。由于PROM一般都是只读的,因此在典型的场景中,PROM控制器3只负责读取PROM中的数据,不对PROM进行读取和擦除的操作;本实施例中,对PROM的编程/烧写,可由专门的接口及通路实现。

所述串口模块4还与状态机8相连接,将上位机7的指令、控制信息、状态信息发送至状态机8,状态机8根据上位机7的指令、控制信息、状态信息,控制SPI Flash控制器1/并口NOR Flash控制器2/PROM控制器3对SPI Flash/并口NOR Flash/PROM进行读/写/擦等操作;控制FPGA接口模块6对FPGA进行配置/回读/刷新等操作;控制SPI Flash控制器1/并口NOR Flash控制器2/PROM控制器3将所读取的来自SPI Flash/NOR/PROM中的数据,通过串口模块4外送至上位机7;控制FPGA接口模块6将所回读的FPGA的配置数据即FPGA的回读数据,通过串口模块4外送至上位机7。

所述FPGA接口模块6用于通过数据通路5接收SPI Flash控制器1/并口NOR Flash控制器2/PROM控制器3所发送的数据,即SPI Flash/NOR Flash/PROM中的数据,对FPGA进行配置;

所述FPGA接口模块6对FPGA的回读数据进行比对,即将FPGA的回读数据与SPIFlash/NOR Flash/PROM中的数据进行比对,若一致,则表示FPGA功能正常,FPGA的配置数据正确;若不一致,则FPGA的配置数据错误;若FPGA的配置数据错误,则所述FPGA接口模块6利用SPI Flash/NOR Flash/PROM中的数据对FPGA的配置数据进行刷新;

所述状态机8分别与SPI Flash控制器1、并口NOR Flash控制器2、PROM控制器3相连接,所述状态机8控制SPI Flash控制器1对SPI Flash的读/写/擦操作;所述状态机8控制NOR Flash控制器对NOR Flash的读/写/擦操作;所述状态机8控制PROM控制器3对PROM的读操作。

具体地,所述数据通路5作为SPI Flash控制器1、并口NOR Flash控制器2、PROM控制器3、串口模块4、FPGA接口模块6之间的双向数据传输通路;所述数据通路5接受状态机8的控制;所述状态机8控制数据通路5对FPGA、存储控制器的选择,以及控制数据通路5的数据流向;

所述FPGA接口模块6接收SPI Flash控制器1/并口NOR Flash控制器2/PROM控制器3所发送的数据,即SPI Flash/NOR Flash/PROM中的数据,对FPGA进行配置;所述FPGA接口模块6接收串口模块4所发送的数据,对FPGA进行配置;所述FPGA接口模块6对FPGA进行回读,接收FPGA的回读数据;所述所述FPGA接口模块6将FPGA的回读数据与SPI Flash/NORFlash/PROM中的数据或与串口模块4所发送的数据进行比较:若一致,则表示FPGA功能正常,FPGA的配置数据正确;若不一致,则FPGA的配置数据错误,说明FPGA内的配置SRAM阵列出现了配置数据的误翻转,当FPGA的配置数据错误时,FPGA接口模块66对FPGA进行刷新,刷新所用的配置数据来自SPI Flash/NOR Flash/PROM中的数据之一,或者来自串口模块4所发送的数据。

所述状态机8分别与控制器、串口模块4、数据通路5、FPGA接口模块6相连接,所述状态机8用于接收串口模块4的指令、控制信息、状态信息;所述状态机8用于控制存储控制器对存储器的操作;所述状态机8用于控制数据通路5对FPGA、存储控制器的选择,以及控制数据通路5的数据流向;所述状态机8控制FPGA接口模块6对FPGA的配置/回读/刷新。所述状态机8还用于对片内其他各模块进行启停控制、功能配置;对芯片的总体工作流程、数据流动走向进行控制;还用于上电后对电路进行复位。

具体地,串口模块4具体而言可以是RS232、RS422、RS485;也可以更换为CAN总线、IIC总线等总线接口。所述存储器包括SPI Flash、并口NOR Flash、PROM这三种类型,在电路应用时,可以只放置1种,也可以放置2种或多种。电路所服务的FPGA芯片,可以是1颗、2颗、3颗、4颗,电路可以修改升级为支持更多片FPGA芯片

本实施例的用于对FPGA进行配置、回读和刷新的电路所支持的存储器类型更多,电路应用起来也更灵活。

在一实施例中,所述FPGA接口模块6设置的数量为至少一个。

在一实施例中,所述电路为采用硬件描述语言实现的数字逻辑电路,其具体实现形式是Verilog HDL代码(用VHDL或其他代码实现也可以),这种方式实现的电路,可以非常方便地以asic、cpld、fpga等方式实现。

在一实施例中,如图7所示,所述电路还包括ECC译码模块,所述数据通路5与所述FPGA接口模块6之间经所述ECC译码模块连接,所述ECC译码模块用于采用BCH编码或汉明码或LDPC码对存储器中编码后的数据进行检错和纠错。

具体地,向存储器写入数据时,先对数据进行ECC编码,即加入纠错检错码,再将编码后的数据写入存储器中;所述FPGA接口模块6通过数据通路5接收存储器中的编码后的数据时,利用所述ECC译码模块对存储器中的编码后的数据进行检错和纠错。

此外,如图8所示,本发明第二实施例提出了一种对FPGA进行配置、回读和刷新的电路的控制方法,应用于上位机,所述方法包括以下步骤:

S10、通过所述串口模块接收所述上位机发送的信息,所述信息的内容包括指令、数据以及控制信息;

S20、基于所述控制信息控制所述存储控制器对其连接的存储器进行所述数据的读写操作;

S30、基于所述控制信息和所述指令控制所述FPGA接口模块通过所述数据通路获取所述存储器中的数据或所述串口模块发送的数据,以对所述FPGA接口模块连接的FPGA芯片进行配置;

S40、基于所述控制信息和所述指令控制所述FPGA接口模块对所连接的FPGA芯片进行回读,并将获取的回读数据经所述数据通路发送至所述串口模块;

S50、在所述FPGA接口模块将回读数据与存储器中的数据或串口模块所发送的数据进行比对进行比对出错时,基于所述控制信息控制所述FPGA接口模块,以使所述FPGA接口模块利用所述存储器中的数据或所述串口模块发送的数据对FPGA芯片的配置数据进行刷新。

在一实施例中,所述信息的内容还包括地址,所述串口模块接收所述上位机发送的信息,并将所述数据发送至与所述地址对应的所述存储器或所述FPGA接口模块。

在一实施例中,所述串口模块还连接有配置寄存器,所述信息的内容还包括用于表示所述存储器的工作状态的状态信息;

所述串口模块用于将所述数据、所述状态信息和所述控制信息写入所述配置寄存器。

在一实施例中,所述方法还包括:

基于所述控制信息控制所述存储控制器,使得所述存储控制器通过所述数据通路接收所述串口模块发送的数据并写入所述存储器,或使得所述存储控制器读取存储器中的数据并通过所述数据通路发送给所述串口模块或所述FPGA接口模块。

在一实施例中,所述存储控制器包括SPI Flash控制器、并口NOR Flash控制器以及PROM控制器中的至少一种,所述存储器包括SPI Flash、NOR Flash以及PROM中的至少一种,所述SPI Flash控制器与所述SPI Flash相连接,所述并口NOR Flash控制器与所述NORFlash相连接,所述PROM控制器与所述PROM相连接。

在一实施例中,所述方法还包括:

控制向存储器写入数据时,对数据进行ECC编码,再将编码后的数据写入存储器中;

控制所述FPGA接口模块通过数据通路接收存储器中的编码后的数据时,利用所述ECC译码模块对存储器中的编码后的数据进行检错和纠错。

需要说明的是,本发明所述对FPGA进行配置、回读和刷新的电路的控制方法,对存储控制器、串口模块、数据通路、FPGA接口模块进行控制,控制存储控制器对存储器的操作及控制FPGA接口模块对FPGA的配置/回读/刷新操作等,通过配置、回读、刷新操作,可以对FPGA芯片内的配码错误进行检测和更新,增强了FPGA芯片对恶劣环境的适应性;与JTAG配置模式相比,可以在无上位机的情况下工作,能够实现现场部署,与PROM配置模式相比,能够实现FPGA配码的回读、比对、刷新。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

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

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

相关技术
  • 遥感相机FPGA配置程序集中式管理和上注更新与动态刷新方法及电路
  • 一种对SRAM型FPGA进行配置、回读和刷新的电路和操作方法
  • 一种FPGA的回读刷新方法和系统
技术分类

06120116506302