CN117234991A - 对fpga进行配置、回读和刷新的电路及控制方法 - Google Patents
对fpga进行配置、回读和刷新的电路及控制方法 Download PDFInfo
- Publication number
- CN117234991A CN117234991A CN202311349055.9A CN202311349055A CN117234991A CN 117234991 A CN117234991 A CN 117234991A CN 202311349055 A CN202311349055 A CN 202311349055A CN 117234991 A CN117234991 A CN 117234991A
- Authority
- CN
- China
- Prior art keywords
- data
- fpga
- module
- serial port
- memory
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 101100521334 Mus musculus Prom1 gene Proteins 0.000 description 45
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 6
- 230000002457 bidirectional effect Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- JJWKPURADFRFRB-UHFFFAOYSA-N carbonyl sulfide Chemical compound O=C=S JJWKPURADFRFRB-UHFFFAOYSA-N 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开一种对FPGA进行配置、回读和刷新的电路及控制方法,包括存储控制器、串口模块、数据通路、FPGA接口模块以及状态机,所述存储控制器与所述FPGA接口模块之间、所述存储控制器与所述串口模块之间以及所述FPGA接口模块与所述串口模块之间均通过所述数据通路连接,所述状态机分别与所述存储控制器、所述串口模块、所述数据通路以及所述FPGA接口模块相连接,所述存储控制器连接有存储器,所述串口模块与上位机相连接,利用状态机控制存储控制器对存储器的操作及控制FPGA接口模块对FPGA的配置/回读/刷新操作等,通过配置、回读、刷新操作。
Description
技术领域
本发明涉及集成电路技术领域,具体涉及一种对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配码的回读、比对、刷新。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种对FPGA进行配置、回读和刷新的电路,其特征在于,所述电路包括存储控制器、串口模块、数据通路、FPGA接口模块以及状态机,所述存储控制器与所述FPGA接口模块之间、所述存储控制器与所述串口模块之间以及所述FPGA接口模块与所述串口模块之间均通过所述数据通路连接,所述状态机分别与所述存储控制器、所述串口模块、所述数据通路以及所述FPGA接口模块相连接,所述存储控制器连接有存储器,所述串口模块与上位机相连接;
所述状态机包括:
信息接收模块,用于通过所述串口模块接收所述上位机发送的信息,所述信息的内容包括指令、数据以及控制信息;
读写控制模块,用于基于所述控制信息控制所述存储控制器对其连接的存储器进行所述数据的读写操作;
配置模块,用于基于所述控制信息和所述指令控制所述FPGA接口模块通过所述数据通路获取所述存储器中的数据或所述串口模块发送的数据,以对所述FPGA接口模块连接的FPGA芯片进行配置;
回读模块,用于基于所述控制信息和所述指令控制所述FPGA接口模块对所连接的FPGA芯片进行回读,并将获取的回读数据经所述数据通路发送至所述串口模块;
刷新模块,用于在所述FPGA接口模块将回读数据与存储器中的数据或串口模块所发送的数据进行比对进行比对出错时,所述状态机用于基于所述控制信息控制所述FPGA接口模块,以使所述FPGA接口模块利用所述存储器中的数据或所述串口模块发送的数据对FPGA芯片的配置数据进行刷新。
2.如权利要求1所述的对FPGA进行配置、回读和刷新的电路,其特征在于,所述信息的内容还包括地址,所述串口模块接收所述上位机发送的信息,并将所述数据发送至与所述地址对应的所述存储器或所述FPGA接口模块。
3.如权利要求1所述的对FPGA进行配置、回读和刷新的电路,其特征在于,所述串口模块还连接有配置寄存器,所述信息的内容还包括用于表示所述存储器的工作状态的状态信息;
所述串口模块用于将所述数据、所述状态信息和所述控制信息写入所述配置寄存器。
4.如权利要求1所述的对FPGA进行配置、回读和刷新的电路,其特征在于,所述状态机用于基于所述控制信息控制所述存储控制器,使得所述存储控制器通过所述数据通路接收所述串口模块发送的数据并写入所述存储器,或使得所述存储控制器读取存储器中的数据并通过所述数据通路发送给所述串口模块或所述FPGA接口模块。
5.如权利要求1所述的对FPGA进行配置、回读和刷新的电路,其特征在于,所述存储控制器包括SPI Flash控制器、并口NOR Flash控制器以及PROM控制器中的至少一种,所述存储器包括SPI Flash、NOR Flash以及PROM中的至少一种,所述SPI Flash控制器与所述SPIFlash相连接,所述并口NOR Flash控制器与所述NOR Flash相连接,所述PROM控制器与所述PROM相连接。
6.如权利要求1所述的对FPGA进行配置、回读和刷新的电路,其特征在于,所述电路还包括ECC译码模块,所述数据通路与所述FPGA接口模块之间经所述ECC译码模块连接,所述ECC译码模块用于采用BCH编码或汉明码或LDPC码对存储器中编码后的数据进行检错和纠错。
7.如权利要求1所述的对FPGA进行配置、回读和刷新的电路,其特征在于,所述FPGA接口模块设置的数量为至少一个。
8.如权利要求1-7任一项所述的对FPGA进行配置、回读和刷新的电路,其特征在于,所述电路为采用硬件描述语言实现的数字逻辑电路。
9.一种如权利要求1-8任一项所述的对FPGA进行配置、回读和刷新的电路的控制方法,其特征在于,应用于上位机,所述方法包括:
通过所述串口模块接收所述上位机发送的信息,所述信息的内容包括指令、数据以及控制信息;
基于所述控制信息控制所述存储控制器对其连接的存储器进行所述数据的读写操作;
基于所述控制信息和所述指令控制所述FPGA接口模块通过所述数据通路获取所述存储器中的数据或所述串口模块发送的数据,以对所述FPGA接口模块连接的FPGA芯片进行配置;
基于所述控制信息和所述指令控制所述FPGA接口模块对所连接的FPGA芯片进行回读,并将获取的回读数据经所述数据通路发送至所述串口模块;
在所述FPGA接口模块将回读数据与存储器中的数据或串口模块所发送的数据进行比对进行比对出错时,基于所述控制信息控制所述FPGA接口模块,以使所述FPGA接口模块利用所述存储器中的数据或所述串口模块发送的数据对FPGA芯片的配置数据进行刷新。
10.如权利要求9所述的对FPGA进行配置、回读和刷新的电路的控制方法,其特征在于,所述串口模块还连接有配置寄存器,所述信息的内容还包括用于表示所述存储器的工作状态的状态信息;
所述串口模块用于将所述数据、所述状态信息和所述控制信息写入所述配置寄存器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311349055.9A CN117234991A (zh) | 2023-10-17 | 2023-10-17 | 对fpga进行配置、回读和刷新的电路及控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311349055.9A CN117234991A (zh) | 2023-10-17 | 2023-10-17 | 对fpga进行配置、回读和刷新的电路及控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117234991A true CN117234991A (zh) | 2023-12-15 |
Family
ID=89084345
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311349055.9A Pending CN117234991A (zh) | 2023-10-17 | 2023-10-17 | 对fpga进行配置、回读和刷新的电路及控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117234991A (zh) |
-
2023
- 2023-10-17 CN CN202311349055.9A patent/CN117234991A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8489907B2 (en) | Method of selective power cycling of components in a memory device independently by reducing power to a memory array or memory controller | |
KR100375217B1 (ko) | 전기적으로 재기입 가능한 불휘발성 메모리를 구비하는마이크로컨트롤러 | |
JP3823087B2 (ja) | 組み込み型メモリを含むシステム及びビルトイン・セルフテスト機構を備える集積回路及びこれのテスト方法。 | |
US7774661B2 (en) | Register read mechanism | |
US8095834B2 (en) | Macro and command execution from memory array | |
JP5651784B2 (ja) | 内蔵自己試験を使用するデバッガベースのメモリダンプ | |
US10636506B2 (en) | Methods for testing a storage unit and apparatuses using the same | |
JP2008310955A (ja) | 不良な列にあるアドレスでプログラミングするのに時間を消費することを回避する方法 | |
CN114237122A (zh) | 一种对sram型fpga进行配置、回读和刷新的电路和操作方法 | |
CN101785066B (zh) | 可编程诊断存储器模块及测试方法 | |
US7571357B2 (en) | Memory wrap test mode using functional read/write buffers | |
US5802268A (en) | Digital processor with embedded eeprom memory | |
KR100445042B1 (ko) | 동적 번인 테스트 기능을 갖는 단일칩 마이크로컴퓨터 및이를 위한 동적 번인 테스트 방법 | |
JP6816990B2 (ja) | プログラマブルロジックデバイス、情報処理装置、ソフトエラー記録方法、及びソフトエラー記録プログラム | |
CN117234991A (zh) | 对fpga进行配置、回读和刷新的电路及控制方法 | |
CN115310391A (zh) | Fpga配置控制系统、fpga配置方法及fpga芯片 | |
CN114927159A (zh) | 应用于闪存控制器的编码器自我测试电路及相关的方法 | |
US7210079B2 (en) | Apparatus and method for adapting a level sensitive device to produce edge-triggered behavior | |
TWI615713B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN112534414A (zh) | 软件跟踪消息接收器外围设备 | |
JP2008071490A (ja) | 半導体集積回路装置、icカードおよび検査装置 | |
JPH11250031A (ja) | プログラマブルロジックおよび情報処理装置 | |
JP2006107049A (ja) | 半導体装置及びその半導体装置を備えたメモリカード | |
CN117171097A (zh) | 一种现场可编程门阵列远程加载方法及系统 | |
CN115966246A (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 |