CN114237122A - 一种对sram型fpga进行配置、回读和刷新的电路和操作方法 - Google Patents

一种对sram型fpga进行配置、回读和刷新的电路和操作方法 Download PDF

Info

Publication number
CN114237122A
CN114237122A CN202111550030.6A CN202111550030A CN114237122A CN 114237122 A CN114237122 A CN 114237122A CN 202111550030 A CN202111550030 A CN 202111550030A CN 114237122 A CN114237122 A CN 114237122A
Authority
CN
China
Prior art keywords
fpga
data
serial port
interface module
read
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
Application number
CN202111550030.6A
Other languages
English (en)
Inventor
不公告发明人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hefei Tengxin Microelectronics Co ltd
Original Assignee
Hefei Tengxin Microelectronics Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hefei Tengxin Microelectronics Co ltd filed Critical Hefei Tengxin Microelectronics Co ltd
Priority to CN202111550030.6A priority Critical patent/CN114237122A/zh
Publication of CN114237122A publication Critical patent/CN114237122A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0423Input/output
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25257Microcontroller

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开了一种对SRAM型FPGA进行配置、回读和刷新的电路,包括:存储控制器、串口模块、数据通路、FPGA接口模块、状态机、配置寄存器;存储控制器读取存储器中的数据并通过数据通路发送给串口模块或FPGA接口模块;串口模块与上位机之间双向通讯连接;FPGA接口模块通过数据通路接收存储器中的数据或串口模块的数据,对FPGA进行配置、回读和刷新;本发明电路可以对SRAM型FPGA片内的配码错误进行检测和更新,增强了FPGA对恶劣环境的适应性。并且电路采用了串口模块以接收上位机信息,既可以上电后按照默认的预定流程工作,也可以通过串口模块对电路的工作状态进行监测、对工作模式进行设置调整。

Description

一种对SRAM型FPGA进行配置、回读和刷新的电路和操作方法
技术领域
本发明涉及集成电路技术领域,尤其是一种对SRAM型FPGA进行配置、回读和刷新的电路和操作方法。
背景技术
FPGA即现场可编程门阵列,它是和CPU、DSP并列的一种通用集成电路。FPGA片内包括时序逻辑、组合逻辑、布线资源、存储器阵列、运算逻辑阵列、时钟网络、IO逻辑等资源,用户通过图形化设计方式、或者硬件描述语言(HDL)的设计输入方式,可以对FPGA片内的资源进行调用、进而搭建出各种数字电路。
用户完成FPGA功能开发设计之后,需要将电路设计转换为二进制码流,码流中只包含0、1数字组合,其不同的数字组合方式,决定了FPGA片内的电路结构。由于FPGA的功能是由码流所决定的,所以,如果希望FPGA行使预期的功能,就要先将码流传输进FPGA,这一过程称作“配置”(Configuration)。
在FPGA片内,有专门的存储器阵列,用于保存配置码流。多数FPGA都采用SRAM阵列来保存配置,称为“配置SRAM”即Configuration SRAM。也有一些FPGA采用Flash等非易失存储技术来保存码流,但这些FPGA一般容量较小、用途受限。
在片内采用SRAM来保存配置的FPGA,称为SRAM型FPGA,其容量大、速度高,主流的高性能电路应用场景,均采用这一类型的FPGA。但是,SRAM型FPGA有个缺点:当FPGA被应用于诸如辐照环境、人造卫星等严酷环境时,其Configuration SRAM阵列中的SRAM存储单元易受带电粒子的影响、发生误翻转,0、1数据发生错误,进而导致FPGA的用户电路功能出错。
对FPGA进行配置的电路,是领域内的公知技术:其一种典型方法是JTAG下载回读:从上位机,经过USB和JTAG接口的下载线,通过JTAG接口,将码流传输至FPGA,并可进行回读比对。此方法能够实现对FPGA的配置、回读,但缺点是,配置信息掉电即丢,只适用于调试,无法用于产品和设备的现场部署。另一种方法是:使用PROM对FPGA进行上电配置时的配置加载,其优点是PROM可以对配置数据作非易失存储,并且由于工作状态下不需要上位机,所以可以部署于实际的产品中,但是其缺点是,只能对FPGA进行上电配置的配置加载,无法对FPGA配置进行回读、比对、刷新。
经检索,中国专利公开号CN202011191407.9公开了SRAM型FPGA的配置数据动态刷新方法及装置,该专利存在以下缺陷:仅支持SPI NOR Flash,功能固定单一、无法实时对芯片的工作模式进行调整设置。中国专利公开号CN202011420884.8公开了一种星载SRAM型FPGA配置与刷新控制的IP核》,该专利存在以下缺陷:仅支持并口NOR Flash,功能固定单一、无法实时对芯片的工作模式进行调整设置。
综上所述,现有技术中,存在以下技术问题:
(1)SRAM型FPGA的配置SRAM阵列易受空间粒子、宇宙射线、带电粒子的影响,进而发生误翻转。
(2)JTAG配置方式无法进行产品的现场实际部署。
(2)PROM方式无法进行回读刷新。
发明内容
为了克服上述现有技术中的缺陷,本发明提供一种对SRAM型FPGA进行配置、回读和刷新的电路,可以对SRAM型FPGA片内的配码错误进行检测和更新,还采用串口模块可对芯片工作状态进行监测、对工作模式进行设置调整。
为实现上述目的,本发明采用以下技术方案,包括:
一种对SRAM型FPGA进行配置、回读和刷新的电路,电路包括如下组件:存储控制器、串口模块、数据通路、FPGA接口模块、状态机;
所述数据通路为存储控制器与FPGA接口模块之间,存储控制器与串口模块之间,以及FPGA接口模块与串口模块之间进行数据交互的双向数据传输通路;
所述存储控制器用于读取存储器中的数据并通过数据通路发送给串口模块或FPGA接口模块;
所述串口模块与上位机之间双向通讯连接,用于向上位机发送数据,以及接收上位机所发送的信息,所接收的信息内容包括指令、地址、数据、控制信息、状态信息;所述串口模块通过数据通路将数据发送至对应的地址中;所述串口模块还与状态机相连接,将上位机所发送的指令、控制信息、状态信息发送至状态机;
所述FPGA接口模块用于通过数据通路接收存储控制器所发送的数据即存储器中的数据,对FPGA进行配置;所述FPGA接口模块还用于通过数据通路接收串口模块所发送的数据,对FPGA进行配置;
所述FPGA接口模块用于对FPGA进行回读,获取FPGA的回读数据;所述FPGA接口模块还用于通过数据通路向串口模块发送FPGA的回读数据;
所述FPGA接口模块用于对FPGA的回读数据进行比对,即将FPGA的回读数据与存储器中的数据或串口模块所发送的数据进行比对,若一致,则表示FPGA功能正常,FPGA的配置数据正确;若不一致,则FPGA的配置数据错误;所述FPGA接口模块还用于利用存储器中的数据或串口模块所发送的数据对FPGA的配置数据进行刷新;
所述状态机分别与存储控制器以及电路中的其他各个组件相连接,所述状态机用于接收串口模块所发送的指令、控制信息、状态信息;所述状态机用于对电路中的各个组件进行控制;所述状态机用于获取电路中的各个组件的工作状态/参数。
进一步地,所述存储控制器还用于通过数据通路接收串口模块所发送的数据并写入对应的存储器中。
进一步地,所述存储控制器包括:SPI Flash控制器、并口NOR Flash控制器、PROM控制器;
所述SPI Flash控制器用于通过数据通路接收串口模块所发送的数据并写入SPIFlash中;所述SPI Flash控制器还用于读取SPI Flash中的数据并通过数据通路发送给串口模块或FPGA接口模块;所述SPI Flash控制器用于对SPI Flash进行读/写/擦操作;
所述并口NOR Flash控制器用于通过数据通路接收串口模块所发送的数据并写入NOR Flash中;所述NOR Flash控制器还用于读取NOR Flash中的数据并通过数据通路发送给串口模块或FPGA接口模块;所述NOR Flash控制器用于对NOR Flash进行读/写/擦操作;
所述PROM控制器用于读取PROM中的数据并通过数据通路发送给串口模块或FPGA接口模块;所述PROM控制器用于对PROM进行读操作;
所述FPGA接口模块用于通过数据通路接收SPI Flash控制器/并口NOR Flash控制器/PROM控制器所发送的数据,即SPI Flash/NOR Flash/PROM中的数据,对FPGA进行配置;
所述FPGA接口模块对FPGA的回读数据进行比对,即将FPGA的回读数据与SPIFlash/NOR Flash/PROM中的数据进行比对,若一致,则表示FPGA功能正常,FPGA的配置数据正确;若不一致,则FPGA的配置数据错误;若FPGA的配置数据错误,则所述FPGA接口模块利用SPI Flash/NOR Flash/PROM中的数据对FPGA的配置数据进行刷新;
所述状态机分别与SPI Flash控制器、并口NOR Flash控制器、PROM控制器相连接,所述状态机控制SPI Flash控制器对SPI Flash的读/写/擦操作;所述状态机控制NORFlash控制器对NOR Flash的读/写/擦操作;所述状态机控制PROM控制器对PROM的读操作;所述状态机还分别获取SPI Flash控制器、并口NOR Flash控制器、PROM控制器的工作状态/参数。
进一步地,电路还包括:配置寄存器;所述串口模块还与配置寄存器双向通讯连接;所述串口模块将上位机所发送的数据、控制信息、状态信息发送至配置寄存器;所述配置寄存器用于对电路中的各个组件的工作状态/参数进行控制;所述配置寄存器还用于获取电路中的各个组件的工作状态/参数。
进一步地,电路还包括:ECC译码模块;所述ECC译码模块与FPGA接口模块相连接;
向存储器写入数据时,先对数据进行ECC编码,即加入纠错检错码,再将编码后的数据写入存储器中;
所述FPGA接口模块通过数据通路接收存储器中的编码后的数据时,利用所述ECC译码模块对存储器中的编码后的数据进行检错和纠错。
进一步地,所述FPGA接口模块还用于检测FPGA中是否发生SEFI故障,若检测到FPGA中发生SEFI故障,则FPGA接口模块对FPGA进行芯片复位;FPGA接口模块对FPGA进行芯片复位后,FPGA接口模块重新接收SPI Flash/NOR Flash/PROM中的数据,或重新接收串口模块所发送的数据,对FPGA进行配置。
本发明还提供了一种对SRAM型FPGA进行配置、回读和刷新的电路的操作方法,包括以下步骤:
S1,所述状态机等待串口模块发送的指令,判断是否收到串口模块发送的指令即上位机的指令信息,若收到指令,则执行步骤S2;若未收到指令,则执行步骤S3;
S2,所述状态机收到串口模块所发送的指令即上位机的指令信息后,对指令进行解析,并进行对应操作:
若指令解析内容为访问存储器,则根据控制信息控制存储控制器对存储器进行读/写/擦;
若指令解析内容为访问FPGA,则根据控制信息控制FPGA接口模块对FPGA的配置/回读/刷新;
若指令解析内容为电路的状态/参数的设置,则根据状态信息对电路的状态/参数进行设置;
所述状态机根据指令解析内容完成对应操作后,跳转步骤S1;
S3,所述状态机未收到串口模块所发送的指令,状态机控制存储控制器读取存储器中的数据,并通过数据通路发送给FPGA接口模块;
S4,所述FPGA接口模块通过数据通路接收存储控制器所发送的数据即读取存储器中的数据,用于对FPGA进行配置,即存储器中的数据作为FPGA的配置数据;
S5,FPGA进入用户模式;
S6,等待固定时长后,判断是否进行回读:
若进行回读,则执行步骤S7;
若不进行回读,则判断是否进行刷新,若进行刷新,则执行步骤S8,若不进行刷新,则跳转回步骤S6;
S7,FPGA接口模块对FPGA进行回读,获取FPGA的回读数据;所述FPGA接口模块用于对FPGA的回读数据进行比对,即将FPGA的回读数据与存储器中的数据进行比对,若一致,则表示配置数据正确,跳转回步骤S6,等待固定时长;若不一致,则表示配置数据错误,对配置数据进行刷新,执行步骤S8;
S8,所述FPGA接口模块通过数据通路接收存储控制器所发送的数据即读取存储器中的数据,利用存储器中的数据对FPGA的配置数据进行刷新即覆盖;刷新完成后,跳转回步骤S6。
进一步地,步骤S2中,
若指令解析内容为访问存储器,则状态机控制存储控制器通过数据通路接收串口模块所发送的数据并写入对应的存储器;或者状态机控制存储控制器读取存储器中的数据并通过数据通路发送给串口模块;或者状态机控制存储控制器对存储器中的数据进行擦除;
若指令解析内容为访问FPGA,则状态机控制FPGA接口模块通过数据通路接收串口模块所发送的数据,并对FPGA进行配置,即串口模块所发送的数据作为FPGA的配置数据;或者,状态机控制FPGA接口模块对FPGA进行回读,获取FPGA的回读数据;FPGA接口模块对FPGA的回读数据进行比对,将FPGA的回读数据与串口模块所发送的数据进行比对,若一致,则表示FPGA功能正常,FPGA的配置数据正确;若不一致,则FPGA的配置数据错误;或者,状态机控制FPGA接口模块利用串口模块所发送的数据对FPGA的配置数据进行刷新;或者,状态机控制FPGA接口模块对FPGA进行回读,获取FPGA的回读数据,FPGA接口模块将FPGA的回读数据通过串口模块发送给上位机。
进一步地,步骤S3中,所述状态机根据存储器的访问优先级,控制对应的存储控制器读取访问优先级高的存储器中的数据。
进一步地,步骤S5之后,还等待固定时长,判断是否进行SEFI故障检测,若进行SEFI故障检测,则FPGA接口模块对FPGA进行SEFI故障检测,若检测到FPGA中发生SEFI故障,则FPGA接口模块对FPGA进行芯片复位;且FPGA接口模块对FPGA进行芯片复位后,FPGA接口模块重新接收存储器中的数据,或重新接收串口模块所发送的数据,对FPGA进行配置。
本发明的优点在于:
(1)通过配置、回读、刷新操作,可以对SRAM型FPGA片内的配码错误进行检测和更新,增强了FPGA对恶劣环境的适应性。
(2)与JTAG配置模式相比,可以在无上位机的情况下工作,能够实现现场部署。
(3)与PROM配置模式相比,能够实现FPGA配码的回读、比对、刷新。
(4)与已有专利相比,能够支持并口NOR Flash、SPI Flash、PROM等多种存储器芯片类型。
(5)与已有专利相比,克服了功能固定单一的缺点:既可以上电后按照默认的预定流程工作,也可以通过串口对芯片的工作模式进行实时的调整设置。
(6)配置回读刷新的电路,既可以通过1颗ASIC单芯片实现,也可以使用CPLD或另一颗FPGA来实现。
附图说明
图1为实施例1的电路结构图。
图2为实施例2的电路结构图。
图3为本发明提供一种对SRAM型FPGA进行配置、回读和刷新的电路的操作方法流程图。
图4为实施例1中上位机通过串口模块4访问各存储器的示意图。
图5为实施例1中上位机通过串口模块4访问FPGA的示意图。
图6为实施例1中上位机通过串口模块4访问配置寄存器9的示意图。
图7为实施例1中通过存储器中的数据对FPGA进行配置操作的示意图。
图8为实施例1中通过存储器中的数据对FPGA进行回读、刷新操作的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
由图1所示,一种对SRAM型FPGA进行配置、回读和刷新的电路,电路包括如下组件:SPI Flash控制器1、并口NOR Flash控制器2、PROM控制器3、串口模块4、数据通路5、FPGA接口模块6、状态机8、配置寄存器9。
所述SPI Flash控制器1、并口NOR Flash控制器2、PROM控制器3均为存储控制器。
所述SPI Flash控制器1与数据通路5进行双向数据交互;所述SPI Flash控制器1通过数据通路5接收串口模块4所发送的数据并写给SPI Flash;所述SPI Flash控制器1读取SPI Flash中的数据并通过数据通路5发送给串口模块4或FPGA接口模块6;所述SPIFlash控制器1接受状态机8的控制,在状态机8的控制下,对并口SPI Flash进行读写擦等操作。
所述并口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与上位机之间双向通讯连接,接收上位机送来的指令、地址、数据、控制信息、状态信息等信息。
所述串口模块4还与状态机8相连接,将上位机的指令、控制信息、状态信息发送至状态机8,状态机8根据上位机的指令、控制信息、状态信息,控制SPI Flash控制器1/并口NOR Flash控制器2/PROM控制器3对SPI Flash/并口NOR Flash/PROM进行读/写/擦等操作;控制FPGA接口模块6对FPGA进行配置/回读/刷新等操作;控制SPI Flash控制器1/并口NORFlash控制器2/PROM控制器3将所读取的来自SPI Flash/NOR/PROM中的数据,通过串口模块4外送至上位机;控制FPGA接口模块6将所回读的FPGA的配置数据即FPGA的回读数据,通过串口模块4外送至上位机。
所述串口模块4还与配置寄存器9相连接,将上位机的数据、控制信息、状态信息发送至配置寄存器9;即上位机通过串口模块4对配置寄存器9进行读写操作;所述配置寄存器9用于对电路中的各个组件的工作状态/参数进行控制;所述配置寄存器9还用于获取电路中的各个组件的工作状态/参数;配置寄存器9可以理解为电路内部的控制位,用于对电路的功能进行设定、控制等,相当于控制寄存器。
所述数据通路5作为SPI Flash控制器1、并口NOR Flash控制器2、PROM控制器3、串口模块4、FPGA接口模块6之间的双向数据传输通路;所述数据通路5接受状态机的控制;所述状态机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接口模块6对FPGA进行刷新,刷新所用的配置数据来自SPI Flash/NOR Flash/PROM中的数据之一,或者来自串口模块4所发送的数据。
所述FPGA接口模块6还用于检测FPGA中是否发生SEFI故障,若检测到FPGA中发生SEFI故障,则FPGA接口模块6对FPGA进行芯片复位,芯片复位的具体方式为对FPGA的PROG_B或PROGRAM_B管脚拉低,FPGA接口模块6对FPGA进行芯片复位后,需要重新获取SPI Flash/NOR Flash/PROM中的数据或者重新获取串口模块4所发送的数据,即重新获取配置数据,对FPGA进行配置。
其中,SEFI故障包括:
目标FPGA的DONE管脚信号值异常,说明出现POR SEFI;
目标FPGA内部的FAR寄存器出错,说明出现了SelectMAP SEFI;
目标FPGA的BUSY管脚值异常,说明遇到SelectMAP SEFI;
目标FPGA内部的STATUS寄存器异常,说明出现POR SEFI或全局SEFI;
目标FPGA内部的CTL寄存器异常,说明出现POR SEFI或全局SEFI。
所述状态机8分别与控制器以及电路中的其他各个组件相连接,所述状态机8用于接收串口模块4的指令、控制信息、状态信息;所述状态机8用于获取电路中的各个组件的工作状态/参数;所述状态机8还用于对电路中的各个组件进行控制,包括:状态机8用于控制存储控制器对存储器的操作;状态机8用于控制数据通路5对FPGA、存储控制器的选择,以及控制数据通路5的数据流向;状态机8控制FPGA接口模块6对FPGA的配置/回读/刷新。所述状态机8还用于对电路中的其他各组件进行启停控制、功能配置;对电路的总体工作流程、数据流动走向进行控制;还用于上电后对电路进行复位。
实施例2
为了提高***的可靠性,在实施例1的基础上,由图2所示,在电路中***ECC译码模块7:即,一种对SRAM型FPGA进行配置、回读和刷新的电路,电路包括:SPI Flash控制器1、并口NOR Flash控制器2、PROM控制器3、串口模块4、数据通路5、FPGA接口模块6、ECC译码模块7、状态机8。
所述ECC译码模块7与FPGA接口模块6相连接;
向SPI Flash/NOR Flash/PROM中写入数据时,先对数据进行ECC(ErrorCorrection Code)编码,即加入纠错检错码,再将编码后的数据写入对应的存储器中。本发明中,纠错检错码可以由用户在电路外部使用计算机里的软件来加,也可以由电路内部的存储控制器来加,如果由电路内部的存储控制器加,则需要有相应的ECC编码模块、解码模块;如果由电路外部的计算机软件加,则计算机软件要具备ECC编码功能。
FPGA接口模块6利用SPI Flash/NOR Flash/PROM中的编码后的数据对FPGA进行配置,或者对FPGA进行回读比对时,采用ECC译码模块7,对SPI Flash/NOR Flash/PROM中的编码后的数据进行检错和纠错,进而可以抵抗在SPI Flash/NOR Flash/PROM中出现的数据错误,提高电路的可靠性。
本实施例中,所述纠错检错码采用BCH编码或汉明码或LDPC码。其中,BCH编码算法可以实现每51bit数据纠2bit错误。
所述ECC译码模块7还与状态机8相连接,接受状态机8的控制,在状态机8的控制下,ECC译码模块7对SPI Flash/NOR Flash/PROM中的编码后的数据进行检错和纠错。
实施例3
基于实施例1所提供的电路结构,由图3所示,本发明的一种对SRAM型FPGA进行配置、回读和刷新的操作方法,如下所示:
S1,上电后,状态机8对电路进行复位,随后状态机8等待串口模块4发送的指令信息,判断是否收到串口模块4发送的指令即上位机的指令信息,若收到指令,则执行步骤S2;若未收到指令,则执行步骤S3;
S2,所述状态机8收到串口模块4所发送的指令即上位机的指令信息后,对指令进行解析,并根据指令解析内容进行对应操作:
若指令解析内容为访问存储器即访问SPI Flash/NOR Flash/PROM,则状态机8根据指令解析内容,控制SPI Flash控制器1/并口NOR Flash控制器2/PROM控制器3对SPIFlash/NOR Flash/PROM进行读/写/擦;其中,读即读取是指:存储控制器读取存储器中的数据并通过数据通路5发送给串口模块4;写即写入是指:存储控制器接收串口模块4所发送的数据并写入对应的存储器;擦即擦除是指:控制存储控制器对存储器中的数据进行擦除;
若指令解析内容为访问FPGA,则状态机8根据指令解析内容,控制FPGA接口模块6对FPGA的配置/回读/刷新;或者控制FPGA接口模块6将FPGA的回读数据通过串口模块发送给上位机;其中,配置是指:FPGA接口模块6通过数据通路5接收串口模块4所发送的数据,用于对FPGA进行配置,即串口模块4所发送的数据作为FPGA的配置数据;回读是指:FPGA接口模块6对FPGA进行回读,获取FPGA的回读数据,并发送给串口模块4;对FPGA的回读数据进行比对,将FPGA的回读数据与串口模块4所发送的数据进行比对,若一致,则表示FPGA功能正常,FPGA的配置数据正确;若不一致,则FPGA的配置数据错误;刷新是指:FPGA接口模块6利用串口模块4所发送的数据对FPGA的配置数据进行刷新;
若指令解析内容为电路的状态/参数的设置,则根据状态信息对电路的状态/参数进行设置;
所述状态机8根据指令解析内容完成对应操作后,跳转步骤S1;
S3,所述状态机8未收到串口模块4所发送的指令,状态机8控制SPI Flash控制器1/并口NOR Flash控制器2/PROM控制器3读取SPI Flash/NOR Flash/PROM中的数据,并通过数据通路5发送给FPGA接口模块6;
步骤S3中,SPI Flash、NOR Flash、PROM之间存在访问优先级,状态机8根据各个存储器的访问优先级,控制对应的存储控制器读取访问优先级高的存储器中的数据;
S4,所述FPGA接口模块6通过数据通路5接收存储控制器所发送的数据即读取存储器中的数据,用于对FPGA进行配置,即存储器中的数据作为FPGA的配置数据;
S5,FPGA进入用户模式;
S6,等待固定时长后,判断是否进行回读:本发明中,是否进行回读,取决于串口模块4是否接收到上位机的关于回读的指令和控制信息,且关于回读的控制信息存储于配置寄存器9中,即FPGA接口模块6是否进行回读受配置寄存器9的控制;
若进行回读,则执行步骤S7;
若不进行回读,则判断是否进行刷新,本发明中,FPGA接口模块6是否进行刷新受配置寄存器9的控制,若进行刷新,则执行步骤S8,若不进行刷新,则跳转步骤S6;本发明中,是否进行刷新,取决于串口模块4是否接收到上位机的关于刷新的指令和控制信息,且关于刷新的控制信息存储于配置寄存器9中;
S7,FPGA接口模块6对FPGA进行回读,获取FPGA的回读数据;所述FPGA接口模块6用于对FPGA的回读数据进行比对,即将FPGA的回读数据与存储器中的数据进行比对,若一致,则表示配置数据正确,跳转步骤S6;若不一致,则表示配置数据错误,对配置数据进行刷新,执行步骤S8;
S8,所述FPGA接口模块6通过数据通路5接收存储控制器所发送的数据即读取存储器中的数据,利用存储器中的数据对FPGA的配置数据进行刷新即覆盖;刷新完成后,跳转步骤S6。
本实施例中,步骤S5之后,还可以等待固定时长,判断是否进行SEFI故障检测,本发明中,FPGA接口模块6是否进行SEFI故障检测受配置寄存器9的控制,若进行SEFI故障检测,则FPGA接口模块(6)对FPGA进行SEFI故障检测,若检测到FPGA中发生SEFI故障,则FPGA接口模块(6)对FPGA进行芯片复位;且FPGA接口模块(6)对FPGA进行芯片复位后,FPGA接口模块(6)重新接收存储器中的数据,或重新接收串口模块(4)所发送的数据,对FPGA进行配置。
基于上述实施例1、3所提供的对SRAM型FPGA进行配置、回读和刷新的电路和操作方法,对电路中的数据流向做出如下说明:
从串口模块4接收指令、数据、地址等信息时,通过串口模块4访问各存储器,进行存储器的读写擦操作由图4所示。通过串口模块4对FPGA进行配置、回读、刷新等操作由图5所示。通过串口模块4对片内的配置寄存器9进行读写操作由图6所示。从存储器中读取数据时,通过存储器中的数据对FPGA进行配置操作由图7所示。通过存储器中的数据对FPGA进行回读、刷新等操作由图8所示。
基于上述实施例1、2所提供的对SRAM型FPGA进行配置、回读和刷新的电路,其中,所述串口模块4,具体而言可以是RS232、RS422、RS485;也可以更换为CAN总线、IIC总线等总线接口。所述存储器包括SPI Flash、并口NOR Flash、PROM这三种类型,在电路应用时,可以只放置1种,也可以放置2种或多种。SPI、并口NOR、PROM,这三种是最常见且成熟的存储器,其一种等价替换形式是:也可以使用RRAM阻变存储器、FRAM铁电存储器、PCRAM相变存储器等新型存储器。电路所服务的FPGA芯片,可以是1颗、2颗、3颗、4颗,电路可以修改升级为支持更多片FPGA芯片。
以上仅为本发明创造的较佳实施例而已,并不用以限制本发明创造,凡在本发明创造的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明创造的保护范围之内。

Claims (10)

1.一种对SRAM型FPGA进行配置、回读和刷新的电路,其特征在于,电路包括如下组件:存储控制器、串口模块(4)、数据通路(5)、FPGA接口模块(6)、状态机(8);
所述数据通路(5)为存储控制器与FPGA接口模块(6)之间,存储控制器与串口模块(4)之间,以及FPGA接口模块(6)与串口模块(4)之间进行数据交互的双向数据传输通路;
所述存储控制器用于读取存储器中的数据并通过数据通路(5)发送给串口模块(4)或FPGA接口模块(6);
所述串口模块(4)与上位机之间双向通讯连接,用于向上位机发送数据,以及接收上位机所发送的信息,所接收的信息内容包括指令、地址、数据、控制信息、状态信息;所述串口模块(4)通过数据通路(5)将数据发送至对应的地址中;所述串口模块(4)还与状态机(8)相连接,将上位机所发送的指令、控制信息、状态信息发送至状态机(8);
所述FPGA接口模块(6)用于通过数据通路(5)接收存储控制器所发送的数据即存储器中的数据,对FPGA进行配置;所述FPGA接口模块(6)还用于通过数据通路(5)接收串口模块(4)所发送的数据,对FPGA进行配置;
所述FPGA接口模块(6)用于对FPGA进行回读,获取FPGA的回读数据;所述FPGA接口模块(6)还用于通过数据通路(5)向串口模块(4)发送FPGA的回读数据;
所述FPGA接口模块(6)用于对FPGA的回读数据进行比对,即将FPGA的回读数据与存储器中的数据或串口模块(4)所发送的数据进行比对,若一致,则表示FPGA功能正常,FPGA的配置数据正确;若不一致,则FPGA的配置数据错误;所述FPGA接口模块(6)还用于利用存储器中的数据或串口模块(4)所发送的数据对FPGA的配置数据进行刷新;
所述状态机(8)分别与存储控制器以及电路中的其他各个组件相连接,所述状态机(8)用于接收串口模块(4)所发送的指令、控制信息、状态信息;所述状态机(8)用于对电路中的各个组件进行控制;所述状态机(8)用于获取电路中的各个组件的工作状态/参数。
2.根据权利要求1所述的一种对SRAM型FPGA进行配置、回读和刷新的电路,其特征在于,所述存储控制器还用于通过数据通路(5)接收串口模块(4)所发送的数据并写入对应的存储器中。
3.根据权利要求1所述的一种对SRAM型FPGA进行配置、回读和刷新的电路,其特征在于,所述存储控制器包括:SPIFlash控制器(1)、并口NOR Flash控制器(2)、PROM控制器(3);
所述SPI Flash控制器(1)用于通过数据通路(5)接收串口模块(4)所发送的数据并写入SPIFlash中;所述SPIFlash控制器(1)还用于读取SPIFlash中的数据并通过数据通路(5)发送给串口模块(4)或FPGA接口模块(6);所述SPI Flash控制器(1)用于对SPI Flash进行读/写/擦操作;
所述并口NOR Flash控制器(2)用于通过数据通路(5)接收串口模块(4)所发送的数据并写入NOR Flash中;所述NOR Flash控制器(2)还用于读取NOR Flash中的数据并通过数据通路(5)发送给串口模块(4)或FPGA接口模块(6);所述NOR Flash控制器(2)用于对NORFlash进行读/写/擦操作;
所述PROM控制器(3)用于读取PROM中的数据并通过数据通路(5)发送给串口模块(4)或FPGA接口模块(6);所述PROM控制器(3)用于对PROM进行读操作;
所述FPGA接口模块(6)用于通过数据通路(5)接收SPIFlash控制器(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)控制SPIFlash控制器(1)对SPI Flash的读/写/擦操作;所述状态机(8)控制NOR Flash控制器(2)对NOR Flash的读/写/擦操作;所述状态机(8)控制PROM控制器(3)对PROM的读操作;所述状态机(8)还分别获取SPIFlash控制器(1)、并口NORFlash控制器(2)、PROM控制器(3)的工作状态/参数。
4.根据权利要求1或2或3所述的一种对SRAM型FPGA进行配置、回读和刷新的电路,其特征在于,电路还包括:配置寄存器(9);所述串口模块(4)还与配置寄存器(9)双向通讯连接;所述串口模块(4)将上位机所发送的数据、控制信息、状态信息发送至配置寄存器(9);所述配置寄存器(9)用于对电路中的各个组件的工作状态/参数进行控制;所述配置寄存器(9)还用于获取电路中的各个组件的工作状态/参数。
5.根据权利要求1或2或3所述的一种对SRAM型FPGA进行配置、回读和刷新的电路,其特征在于,电路还包括:ECC译码模块(7);所述ECC译码模块(7)与FPGA接口模块(6)相连接;
向存储器写入数据时,先对数据进行ECC编码,即加入纠错检错码,再将编码后的数据写入存储器中;
所述FPGA接口模块(6)通过数据通路(5)接收存储器中的编码后的数据时,利用所述ECC译码模块(7)对存储器中的编码后的数据进行检错和纠错。
6.根据权利要求1或2或3所述的一种对SRAM型FPGA进行配置、回读和刷新的电路,其特征在于,所述FPGA接口模块(6)还用于检测FPGA中是否发生SEFI故障,若检测到FPGA中发生SEFI故障,则FPGA接口模块(6)对FPGA进行芯片复位;FPGA接口模块(6)对FPGA进行芯片复位后,FPGA接口模块(6)重新接收SPI Flash/NOR Flash/PROM中的数据,或重新接收串口模块(4)所发送的数据,对FPGA进行配置。
7.一种适用于权利要求1或2或3所述的对SRAM型FPGA进行配置、回读和刷新的电路的操作方法,其特征在于,包括以下步骤:
S1,所述状态机(8)等待串口模块(4)发送的指令,判断是否收到串口模块(4)发送的指令即上位机的指令信息,若收到指令,则执行步骤S2;若未收到指令,则执行步骤S3;
S2,所述状态机(8)收到串口模块(4)所发送的指令即上位机的指令信息后,对指令进行解析,并进行对应操作:
若指令解析内容为访问存储器,则根据控制信息控制存储控制器对存储器进行读/写/擦;
若指令解析内容为访问FPGA,则根据控制信息控制FPGA接口模块(6)对FPGA的配置/回读/刷新;
若指令解析内容为电路的状态/参数的设置,则根据状态信息对电路的状态/参数进行设置;
所述状态机(8)根据指令解析内容完成对应操作后,跳转步骤S1;
S3,所述状态机(8)未收到串口模块(4)所发送的指令,状态机(8)控制存储控制器读取存储器中的数据,并通过数据通路(5)发送给FPGA接口模块(6);
S4,所述FPGA接口模块(6)通过数据通路(5)接收存储控制器所发送的数据即读取存储器中的数据,用于对FPGA进行配置,即存储器中的数据作为FPGA的配置数据;
S5,FPGA进入用户模式;
S6,等待固定时长后,判断是否进行回读:
若进行回读,则执行步骤S7;
若不进行回读,则判断是否进行刷新,若进行刷新,则执行步骤S8,若不进行刷新,则跳转回步骤S6;
S7,FPGA接口模块(6)对FPGA进行回读,获取FPGA的回读数据;所述FPGA接口模块(6)用于对FPGA的回读数据进行比对,即将FPGA的回读数据与存储器中的数据进行比对,若一致,则表示配置数据正确,跳转回步骤S6,等待固定时长;若不一致,则表示配置数据错误,对配置数据进行刷新,执行步骤S8;
S8,所述FPGA接口模块(6)通过数据通路(5)接收存储控制器所发送的数据即读取存储器中的数据,利用存储器中的数据对FPGA的配置数据进行刷新即覆盖;刷新完成后,跳转回步骤S6。
8.根据权利要求7所述的一种对SRAM型FPGA进行配置、回读和刷新的操作方法,其特征在于,步骤S2中,
若指令解析内容为访问存储器,则状态机(8)控制存储控制器通过数据通路(5)接收串口模块(4)所发送的数据并写入对应的存储器;或者状态机(8)控制存储控制器读取存储器中的数据并通过数据通路(5)发送给串口模块(4);或者状态机(8)控制存储控制器对存储器中的数据进行擦除;
若指令解析内容为访问FPGA,则状态机(8)控制FPGA接口模块(6)通过数据通路(5)接收串口模块(4)所发送的数据,并对FPGA进行配置,即串口模块(4)所发送的数据作为FPGA的配置数据;或者,状态机(8)控制FPGA接口模块(6)对FPGA进行回读,获取FPGA的回读数据;FPGA接口模块(6)对FPGA的回读数据进行比对,将FPGA的回读数据与串口模块(4)所发送的数据进行比对,若一致,则表示FPGA功能正常,FPGA的配置数据正确;若不一致,则FPGA的配置数据错误;或者,状态机(8)控制FPGA接口模块(6)利用串口模块(4)所发送的数据对FPGA的配置数据进行刷新;或者,状态机(8)控制FPGA接口模块(6)对FPGA进行回读,获取FPGA的回读数据,FPGA接口模块(6)将FPGA的回读数据通过串口模块(4)发送给上位机。
9.根据权利要求7所述的一种对SRAM型FPGA进行配置、回读和刷新的操作方法,其特征在于,步骤S3中,所述状态机(8)根据存储器的访问优先级,控制对应的存储控制器读取访问优先级高的存储器中的数据。
10.根据权利要求7所述的一种对SRAM型FPGA进行配置、回读和刷新的操作方法,其特征在于,步骤S5之后,还等待固定时长,判断是否进行SEFI故障检测,若进行SEFI故障检测,则FPGA接口模块(6)对FPGA进行SEFI故障检测,若检测到FPGA中发生SEFI故障,则FPGA接口模块(6)对FPGA进行芯片复位;且FPGA接口模块(6)对FPGA进行芯片复位后,FPGA接口模块(6)重新接收存储器中的数据,或重新接收串口模块(4)所发送的数据,对FPGA进行配置。
CN202111550030.6A 2021-12-17 2021-12-17 一种对sram型fpga进行配置、回读和刷新的电路和操作方法 Pending CN114237122A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111550030.6A CN114237122A (zh) 2021-12-17 2021-12-17 一种对sram型fpga进行配置、回读和刷新的电路和操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111550030.6A CN114237122A (zh) 2021-12-17 2021-12-17 一种对sram型fpga进行配置、回读和刷新的电路和操作方法

Publications (1)

Publication Number Publication Date
CN114237122A true CN114237122A (zh) 2022-03-25

Family

ID=80758113

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111550030.6A Pending CN114237122A (zh) 2021-12-17 2021-12-17 一种对sram型fpga进行配置、回读和刷新的电路和操作方法

Country Status (1)

Country Link
CN (1) CN114237122A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115328401A (zh) * 2022-08-15 2022-11-11 西安大合智能科技有限公司 一种基于fpga的高速数据存储、回读***
CN116432574A (zh) * 2023-06-14 2023-07-14 中科亿海微电子科技(苏州)有限公司 一种fpga配置控制器自动回读flash数据方法及装置
CN116610631A (zh) * 2023-07-21 2023-08-18 西安智多晶微电子有限公司 支持多片SPI Flash访问的FPGA启动配置方法
CN116909951A (zh) * 2023-09-11 2023-10-20 归芯科技(深圳)有限公司 芯片及其控制方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7036059B1 (en) * 2001-02-14 2006-04-25 Xilinx, Inc. Techniques for mitigating, detecting and correcting single event upset effects in systems using SRAM-based field programmable gate arrays
CN103840823A (zh) * 2014-02-14 2014-06-04 北京时代民芯科技有限公司 基于jtag接口的宇航fpga通用刷新电路及其实现方法
CN108319465A (zh) * 2018-04-09 2018-07-24 中国科学院微电子研究所 对fpga配置数据进行升级的电路及方法
CN112433777A (zh) * 2020-10-30 2021-03-02 深圳市紫光同创电子有限公司 Sram型fpga的配置数据动态刷新方法及装置
CN112527350A (zh) * 2020-12-08 2021-03-19 中国科学院国家空间科学中心 一种星载sram型fpga配置与刷新控制的ip核
CN113268263A (zh) * 2021-06-10 2021-08-17 北京无线电测量研究所 一种fpga的回读刷新方法和***

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7036059B1 (en) * 2001-02-14 2006-04-25 Xilinx, Inc. Techniques for mitigating, detecting and correcting single event upset effects in systems using SRAM-based field programmable gate arrays
CN103840823A (zh) * 2014-02-14 2014-06-04 北京时代民芯科技有限公司 基于jtag接口的宇航fpga通用刷新电路及其实现方法
CN108319465A (zh) * 2018-04-09 2018-07-24 中国科学院微电子研究所 对fpga配置数据进行升级的电路及方法
CN112433777A (zh) * 2020-10-30 2021-03-02 深圳市紫光同创电子有限公司 Sram型fpga的配置数据动态刷新方法及装置
CN112527350A (zh) * 2020-12-08 2021-03-19 中国科学院国家空间科学中心 一种星载sram型fpga配置与刷新控制的ip核
CN113268263A (zh) * 2021-06-10 2021-08-17 北京无线电测量研究所 一种fpga的回读刷新方法和***

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115328401A (zh) * 2022-08-15 2022-11-11 西安大合智能科技有限公司 一种基于fpga的高速数据存储、回读***
CN115328401B (zh) * 2022-08-15 2024-02-13 西安大合智能科技有限公司 一种基于fpga的高速数据存储、回读***
CN116432574A (zh) * 2023-06-14 2023-07-14 中科亿海微电子科技(苏州)有限公司 一种fpga配置控制器自动回读flash数据方法及装置
CN116432574B (zh) * 2023-06-14 2023-09-19 中科亿海微电子科技(苏州)有限公司 一种fpga配置控制器自动回读flash数据方法及装置
CN116610631A (zh) * 2023-07-21 2023-08-18 西安智多晶微电子有限公司 支持多片SPI Flash访问的FPGA启动配置方法
CN116610631B (zh) * 2023-07-21 2023-09-26 西安智多晶微电子有限公司 支持多片SPI Flash访问的FPGA启动配置方法
CN116909951A (zh) * 2023-09-11 2023-10-20 归芯科技(深圳)有限公司 芯片及其控制方法
CN116909951B (zh) * 2023-09-11 2023-12-19 归芯科技(深圳)有限公司 芯片及其控制方法

Similar Documents

Publication Publication Date Title
CN114237122A (zh) 一种对sram型fpga进行配置、回读和刷新的电路和操作方法
CN111142962B (zh) 一种星载fpga的在轨重构方法及***
US10042700B2 (en) Integral post package repair
KR101898885B1 (ko) 스마트 메모리 아키텍쳐를 제공하기 위한 방법 및 시스템
US5933434A (en) Memory system having internal state monitoring circuit
US7894270B2 (en) Data restoration method for a non-volatile memory
CN109656870B (zh) 一种sram型fpga在轨动态重构管理***及方法
CN102135927B (zh) 一种基于nand flash的***引导方法和装置
US8037358B2 (en) Semiconductor device and boot method for the same
CN108511029B (zh) 一种fpga中双端口sram阵列的内建自测和修复***及其方法
KR102450553B1 (ko) 저장 장치 및 그것을 내장한 메인 보드 및 그것의 자가 진단 방법
JP2008310955A (ja) 不良な列にあるアドレスでプログラミングするのに時間を消費することを回避する方法
US20140185397A1 (en) Hybrid latch and fuse scheme for memory repair
KR20160018302A (ko) 스토리지 장치, 메모리 카드, 및 스토리지 장치의 통신 방법
CN109493911B (zh) 存储器控制器的操作方法、以及存储器件及其操作方法
US9064605B2 (en) Semiconductor system and method for reparing the same
CN111176732B (zh) 一种基于mram实现的软硬件冗余安全启动与维护方法
JP4359327B2 (ja) 半導体集積回路装置、icカードおよび検査装置
US10725862B2 (en) Data recovery method to error correction code in memory
US20210200661A1 (en) Debug systems for deterministic validation of data storage devices
CN117234991A (zh) 对fpga进行配置、回读和刷新的电路及控制方法
EP3249533A1 (en) Integral post package repair
US7079430B2 (en) Memory device with built-in error-correction capabilities
US11200925B2 (en) Read only memory (ROM)-emulated memory (REM) profile mode of memory device
CN113961227A (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