CN102360302B - 一种fpga配置文件在线升级方法及装置 - Google Patents

一种fpga配置文件在线升级方法及装置 Download PDF

Info

Publication number
CN102360302B
CN102360302B CN201110310780.6A CN201110310780A CN102360302B CN 102360302 B CN102360302 B CN 102360302B CN 201110310780 A CN201110310780 A CN 201110310780A CN 102360302 B CN102360302 B CN 102360302B
Authority
CN
China
Prior art keywords
fpga
configuration file
cpu
fpga configuration
storage area
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.)
Expired - Fee Related
Application number
CN201110310780.6A
Other languages
English (en)
Other versions
CN102360302A (zh
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.)
Ruijie Networks Co Ltd
Original Assignee
Fujian Star Net Communication 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 Fujian Star Net Communication Co Ltd filed Critical Fujian Star Net Communication Co Ltd
Priority to CN201110310780.6A priority Critical patent/CN102360302B/zh
Publication of CN102360302A publication Critical patent/CN102360302A/zh
Application granted granted Critical
Publication of CN102360302B publication Critical patent/CN102360302B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种FPGA配置文件在线升级的方法及装置,用以在不增加额外的逻辑器件的前提下,完成FPGA配置文件的在线升级,并实现FPGA上电即可用的目的。其中,FPGA配置文件在线升级的方法,包括:在进行FPGA配置文件升级时,CPU控制总线切换开关将FPGA与存储器之间的第一数据通路断开、将CPU与存储器之间的第二数据通路连通;所述CPU更新所述存储器中存储的FPGA配置文件;并在完成FPGA配置文件的更新之后,所述CPU控制所述总线切换开关将所述第一数据通路连通、将所述第二数据通路断开;以及所述CPU触发所述FPGA从所述存储器中重新载入更新后的FPGA配置文件,并所述FPGA进行配置。

Description

一种FPGA配置文件在线升级方法及装置
技术领域
本发明涉及电子电路设计技术领域,尤其涉及一种FPGA配置文件在线升级方法及装置。
背景技术
现场可编程门阵列(FPGA,Field-Programmable Gate Array)是在可编程阵列逻辑(PAL,Programming array logic)、通用阵列逻辑(GAL,generic arraylogic)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)的基础上进一步发展的产物。其允许涉及人员使用硬件描述语言(Verilog或者VHDL)完成电路设计,通过对应综合工具的编译生成配置文件,当FPGA载入配置文件后,即可使得FPGA实现设计需要的逻辑功能。
FPGA载入配置文件时,可以使用联合测试行动小组(JTAG,Joint TestAction Group)下载线缆与其JTAG接口连接,通过下载线缆将配置文件载入FPGA,但是,在芯片下电后通过配置文件形成的逻辑功能无法保存,所以,FPGA在使用前均有一个配置的过程,使用FPGA的电子设备在上电后,会首先进行配置文件的载入。
现有技术中,FPGA载入配置文件分为主动配置方式和被动配置方式。主动配置方式即为FPGA主动读取存储器中的配置文件,其中,存储器可以为可编程只读存储器(PROM),高速同步串行口闪存(SPI-flash),非易失闪存(Nor-flash)等,按照存储器与FPGA之间的接口采用的协议,主动配置方式可以包括以下四种工作模式:图1a为主动串行配置模式,图1b为主动SPI配置模式,图1c为主动BPI配置模式,图1d为主动SelectMAP模式;被动配置方法即为外部的控制器件,例如中央处理器(CPU),微处理器(MCU)以及模拟配置时序的CPLD等,通过控制FPGA的配置管脚,以满足FPGA时序的方式进行配置,按照存储器与FPGA之间采用的接口协议,被动配置方式可以包括以下四种工作模式:图2a为被动串行模式,图2b为被动JTAG模式,图2c为被动SelectMAP模式。
当使用FPGA的电子设备做好之后,其配置文件就固定下来了,通过烧片机烧片的方式录入存储器芯片中,在板卡制版的时候焊接带有配置文件的存储芯片,这样,如果需要改变或者增加FPGA的逻辑功能,就需要更改FPGA的配置文件,如果在电路设计上未考虑FPGA配置文件的在线升级,只能将存储芯片从板卡上取下,重新烧写后焊接上。
为了解决上述问题,现有技术中,主要通过以下两种方案进行FPGA配置文件的在线升级:1、增加一块CPLD(复杂可编程逻辑器件),专门用作FPGA的升级。FPGA配置在被动配置方式之下,其配置管脚和CPLD相连,同时CPLD和存储配置文件的存储芯片相连。CPLD的逻辑功能固定,专门用作配置FPGA。在上电的时候由CPLD读取存储芯片中的配置文件,再写入FPGA完成配置。当需要进行FPGA升级的时候,通过CPU将新的配置文件通过写入CPLD这一中间器件写入存储芯片覆盖原来的配置文件。在重启FPGA整个配置流程或系统断电重启后,CPLD从存储芯片中读取到的就是更新后的配置文件了。这样就完成了配置的升级;2、直接通过CPU的GPIO(通用输入输出)管脚使用软件模拟FPGA的下载时序,对FPGA进行配置。配置文件可放在CPU下挂的存储芯片中,或者与CPU运行的主程序合为一体,在CPU程序运行加载后将配置文件部分写入FPGA。如果需要更新FPGA配置文件,可以通过更新存储芯片中配置文件的方式进行,或跟随CPU主程序的更新一起进行升级。
上述两种解决方案中,存在以下问题:上述第一种方案中,需要增加专门的CPLD器件,且CPLD需要模拟和CPU和存储器间的接口时序,以及配置FPGA的时序,占用了CPLD较多的管脚,耗费逻辑资源;上述第二种方案中,需要占用资源紧张的CPU较多的处理资源,而且,由于这种配置方式需要在CPU自身启动配置完成,软件开始执行以后才能通过CPU的GPIO模拟时序对FPGA进行下载,在这之前FPGA处于未配置状态,其逻辑功能无法实现,而在很多情况下,需要FPGA一上电即可用,因此,不是所有使用FPGA的场合都适用这种方式。
发明内容
本发明提供一种FPGA配置文件在线升级的方法及装置,用以在不增加额外的逻辑器件的前提下,完成FPGA配置文件的在线升级,并实现FPGA上电即可用的目的。
本发明实施例提供一种FPGA配置文件在线升级的方法,包括:
在进行现场可编程门阵列FPGA配置文件升级时,中央处理器CPU控制总线切换开关将FPGA与存储器之间的第一数据通路断开、将CPU与存储器之间的第二数据通路连通;
所述CPU更新所述存储器中存储的FPGA配置文件;并
在完成FPGA配置文件的更新之后,所述CPU控制所述总线切换开关将所述第一数据通路连通、将所述第二数据通路断开;以及
所述CPU触发所述FPGA从所述存储器中重新载入更新后的FPGA配置文件,并对所述FPGA进行更新;
所述存储器的存储空间包括第一存储区、第二存储区和第三存储区,其中,第一存储区存储本次更新后的FPGA配置文件,第二存储区存储本次更新前的FPGA配置文件,第三存储区存储初始FPGA配置文件;
CPU在确定FPGA重新载入第一存储区存储的本次更新后的FPGA配置文件,进行配置未成功时,用第二存储区存储的本次更新前的FPGA配置文件覆盖第一存储区存储的本次更新后的FPGA配置文件;并触发所述FPGA从所述第一存储区中重新载入本次更新前的FPGA配置文件,并进行配置;以及
CPU在确定FPGA从所述第一存储区中重新载入本次更新前的FPGA配置文件,进行配置仍未成功时,用第三存储区存储的初始FPGA配置文件覆盖第一存储区存储的本次更新前的FPGA配置文件;并触发所述FPGA从所述第一存储区中重新载入初始FPGA配置文件,并进行配置。
本发明实施例提供一种FPGA配置文件在线升级的装置,包括:
存储器,用于存储现场可编程门阵列FPGA配置文件;所述存储器的存储空间包括第一存储区、第二存储区和第三存储区,其中,第一存储区存储本次更新后的FPGA配置文件,第二存储区存储本次更新前的FPGA配置文件,第三存储区存储初始FPGA配置文件;
中央处理器CPU,用于在进行FPGA配置文件升级时,控制总线切换开关将FPGA与存储器之间的第一数据通路断开、将CPU与存储器之间的第二数据通路连通,并更新所述存储器中的FPGA配置文件;以及在完成FPGA配置文件的更新之后,控制所述总线切换开关将所述第一数据通路连通、将所述第二数据通路断开;并触发所述FPGA重新从所述存储器中载入更新后的FPGA配置文件,并进行配置。
总线切换开关,用于在所述CPU的控制下,分别连通或者断开所述第一数据通路和所述第二数据通路;
FPGA,用于在所述CPU的触发下,从所述存储器中重新载入更新后的FPGA配置文件,并进行配置;以及在确定FPGA重新载入第一存储区存储的本次更新后的FPGA配置文件,进行配置未成功时,用第二存储区存储的本次更新前的FPGA配置文件覆盖第一存储区存储的本次更新后的FPGA配置文件;并触发所述FPGA从所述第一存储区中重新载入本次更新前的FPGA配置文件,并进行配置;以及在确定FPGA从所述第一存储区中重新载入本次更新前的FPGA配置文件,进行配置仍未成功时,用第三存储区存储的初始FPGA配置文件覆盖第一存储区存储的本次更新前的FPGA配置文件;并触发所述FPGA从所述第一存储区中重新载入初始FPGA配置文件,并进行配置。
本发明实施例提供的FPGA配置文件在线升级的方法及装置,当需要进行FPGA配置文件升级时,CPU控制总线切换开关将FPGA与存储器之间的第一数据通路断开、将CPU与存储器之间的第二数据通路连通,使得CPU能够更新存储器中存储的FPGA配置文件,并在完成FPGA配置文件的更新之后,CPU触发FPGA重新加载更新后的FPGA配置文件,以完成FPGA配置文件的升级,采用本发明实施例提供的FPGA配置文件在线升级的方法,无需增加额外的逻辑器件,且在升级完成后,FPGA上电后即可从存储器读取配置文件进行配置,由于无需通过CPU的GPIO模拟FPGA的下载时序,从而对FPGA的配置无需在CPU自身启动配置完成后再进行,实现了FPGA上电即可用的目的。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
图1a为现有技术中,主动串行配置模式下的主动配置方式示意图;
图1b为现有技术中,主动SPI配置模式下的主动配置方式示意图;
图1c为现有技术中,主动BPI配置模式下的主动配置方式示意图;
图1d为现有技术中,主动SelectMAP模式下的主动配置方式示意图;
图2a为现有技术中,被动串行模式下的被动配置方式示意图;
图2b为现有技术中,被动JTAG模式下的被动配置方式示意图;
图2c为现有技术中,被动SelectMAP模式下的被动配置方式示意图;
图3为本发明实施例中,总线切换开关的结构示意图;
图4为本发明实施例中,FPGA配置文件在线升级的方法的实施流程示意图;
图5为本发明实施例中,使用SPI-Flash主动配置方式下的电路结构示意图;
图6为本发明实施例中,使用SPI-Flash主动配置方式下,FPGA配置文件在线升级方法的实施流程示意图;
图7为本发明实施例中,FPGA配置文件在线升级装置的结构示意图。
具体实施方式
为了在不增加额外的逻辑器件的前提下,完成FPGA配置文件的在线升级,并实现FPGA上电即可用的目的,本发明实施例提供了一种FPGA文件在线升级的方法及装置。
采用本发明实施例提供FPGA文件在线升级的方法及装置,使得FPGA可以在正常模式与升级模式之间进行切换。为了实现上述目的,本发明实施例中,利用FPGA的主动配置方式,通过总线切换开关进行数据通路的选通。如图3所示,为总线切换开关的结构示意图,图3中以3384总线切换开关的结构为例进行说明。3384总线切换开关一共有10路数据通路,通过两组OE使能键进行控制,1OE#有效时(即为低电平时),则对应的1A,1B侧数据通路连通,即1A1和1B1可认为物理上连通,1A2与1B2连通…1A5与1B5连通。而在1OE#无效时,中间连通断开。同理2OE#可控制2A1与2B1,2A2与2B2…等的通断情况。
基于此,本发明实施例中,FPGA的配置管脚通过总线切换开关的1OE#与存储器相连,CPU通过总线切换开关的2OE#与存储器相连,并通过CPU向总线切换开关输入使能信号,控制1OE#或者2OE#有效,使得FPGA能够在正常模式与升级模式之间进行切换,即当1OE#有效且2oe#无效时,FPGA处于正常模式下;当1OE#无效且2oe#有效时,FPGA处于升级模式下。正常模式下,当上电时,FPGA从存储器中读取FPGA配置文件完成FPGA的配置。当需要进行FPGA配置文件升级时,总线切换开关将FPGA与存储器之间的数据通路断开,即使得1OE#无效,同时,将CPU与存储器之间的数据通路连通,即使得2OE#有效,这样,便建立了CPU与存储器之间的连接,使得CPU可以对存储器中存储的FPGA文件进行更新操作,即使得CPU能够将更新后的FPGA配置文件写入到存储器中,CPU在完成FPGA配置文件的更新操作之后,控制总线切换开关将FPGA与存储器之间的数据通路连通,即使得1OE#有效,同时,将CPU与存储器之间的数据通路断开,即使得2OE#无效,并触发FPGA从存储器中重新载入更新后的FPGA配置文件,完成了FPGA配置文件的在线升级。
以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本发明中的实施例可以相互组合使用或者进行任意变型。
如图4所示,为本发明实施例提供的FPGA配置文件在线升级的方法,包括以下步骤:
S401、在FPGA配置文件升级时,CPU控制总线切换开关将FPGA与存储器之间的第一数据通路断开、将CPU与存储器之间的第二数据通路连通;
S402、CPU更新所述存储器中存储的FPGA配置文件;
S403、CPU在完成FPGA配置文件的更新之后,控制总线切换开关将第一数据通路连通、将所述第二数据通路断开;
S404、CPU触发FPGA从存储器中重新载入更新后的FPGA配置文件,并对该FPGA进行配置。
具体实施时,存储器可以为可编程只读存储器(PROM),高速同步串行口闪存(SPI-flash),非易失闪存(Nor-flash)等,为了便于描述,本发明实施例中,以存储器为SPI-flash为例进行说明。
如图5所示,为使用SPI-Flash主动配置方式下的电路示意图,SPI-flash的SPI接口的数据线、时钟线及控制线分别与总线切换开关一边的两组数据通路相连接,例如,SPI-flash的数据输入线datain同时与1A1和2A1连接,而接口对应的FPGA端的MOSI数据线、CPU的MOSI数据线分别与1B1和2B1连接,SPI-flash的数据输出线dataout同时与1A2和2A2连接,而接口对应端的FPGA的DIN数据线、CPU的MISO数据线分别与1B2和2B2连接,SPI-flash的时钟线同时与1A4和2A4连接,而接口对应端的FPGA的clk时钟线、CPU的clk时钟线分别与1B4和2B4连接;CPU通过GPIO配置管脚引出的控制线向总线切换开关输入电平信号,来控制总线切换开关的1OE#有效且2OE#无效,或者控制1OE#无效且2OE#有效。
在正常模式下,上电后,从CPU的GPIO出来的控制线默认上拉,即CPU向1OE#输入高电平信号,向2OE#输入反向(低电平)信号,使得1OE#有效,2OE#无效,这时,使得控制总线切换开关将SPI-flash与FPGA之间的数据通路连通,将CPU和SPI-flash之间的数据通路断开;当需要进行FPGA配置文件升级时,通过CPU的GPIO对总线切换开关的势能管脚进行控制,向1OE#输入低电平信号,使得1OE#无效,从而将FPGA与SPI-flash之间的1OE#断开,并同时向2OE#输入高电平信号,使得2OE#有效,从而将CPU与SPI-flash之间的第二数据通路连通。这样,CPU与SPI-flash之间建立了连接,此时,可以通过CPU的SPI接口对SPI-flash进行写入操作,更新SPI-flash存储的FPGA配置文件。其中,CPU的SPI接口可以是CPU自带的,如果CPU无SPI接口,可以通过GPIO进行模拟。在完成FPGA配置文件的更新之后,CPU对FPGA的配置管脚PROG_B进行操作,拉低FPGA的配置管脚PROG_B并持续设定时长后释放,即可触发FPGA重新从存储器中载入更新后的FPGA配置文件,进行FPGA配置文件升级后的配置。
具体实施中,CPU在触发FPGA重新载入更新后的配置文件,并进行配置之后,还需要确定FPGA配置是否成功。具体的,CPU可以通过检测FPGA的配置管脚DONE,当检测到DONE重新拉高时,则确定FPGA重新载入更新后的FPGA配置文件之后,进行配置成功,否则,确定FPGA重新载入更新后的FPGA配置文件之后,进行配置失败。
本发明实施例中,FPFA配置文件的升级过程对于FPGA来说是不可见的,在FPGA配置文件升级的过程中,对于FPGA来说,与主动SPI模式下的配置过程无异,在上电后主动的从对应的配置接口去载入FPGA配置文件,完成对FPGA的配置,这样,使得FPGA上电即可用。
具体实施中,由于可能出现更新后的FPGA无法正常配置的情况出现,而FPGA的未成功配置在某些情况下会影响到整个设备的正常工作。
较佳地,本发明实施例中,为了避免上述情况的出现,增强FPGA配置文件升级的可靠性,可以将存储器的存储空间划分为连续的三段,分别为第一存储区、第二存储区和第三存储区,其中,第一存储区存储本次更新后的FPGA配置文件,第二存储区存储本次更新前的FPGA配置文件,第三存储区存储初始FPGA配置文件;即第一存储区为正常读取配置空间,第二存储区为升级配置存储区,第三存储区为保留区,其中,第三存储区原则上不允许进行写操作。初始时,三个存储区都写入初始FPGA配置文件。在后续进行FPGA配置文件在线升级时,CPU将更新后的FPGA配置文件写入第一存储区中,并覆盖第一存储区中原来的FPGA配置文件,CPU在写入更新后的FPGA配置文件之后,通过重新上电或者拉低FPGA的配置管脚PROG_B的方式触发FPGA重新载入更新后的FPGA配置文件,FPGA默认从第一存储区载入更新后的FPGA配置文件。CPU通过检测FPGA的配置管脚DONE的状态变化,判断FPGA进行配置是否成功。若DONE重新拉高,则确定FPGA载入更新后的FPGA配置文件,进行配置成功,否则,确定FPGA进行配置未成功。
较佳地,当CPU在确定FPGA重新载入第一存储区存储的FPGA配置文件,进行配置成功时,比较第一存储区存储的本次更新后的FPGA配置文件与第二存储区存储的本次更新前的FPGA配置文件是否一致;以及
在比较结果不一致时,用第一存储区存储的本次更新后的FPGA配置文件覆盖第二存储区存储的本次更新前的FPGA配置文件;在比较结果一致时,则不进行操作。
较佳地,当CPU在确定FPGA重新载入第一存储区存储的本次更新后的FPGA配置文件,进行配置未成功时,用第二存储区存储的本次更新前的FPGA配置文件覆盖第一存储区存储的本次更新后的FPGA配置文件;并触发FPGA从第一存储区中重新载入本次更新前的FPGA配置文件,并进行配置。特别地,当CPU在确定FPGA从第一存储区中重新载入本次更新前的FPGA配置文件,进行配置仍未成功时,即在用第二存储区存储的本次更新前的FPGA配置文件覆盖第一存储区存储的本次更新后的FPGA配置文件之后,对FPGA进行配置仍未成功时,用第三存储区存储的初始FPGA配置文件覆盖第一存储区存储的本次更新前的FPGA配置文件;并触发FPGA从第一存储区中重新载入初始FPGA配置文件,并进行配置。
具体实施过程中,对于存储区之间的读写均是在总线切换开关在CPU的控制下将存储器与CPU之间的数据通路连通的情况下完成的,在触发FPGA重现载入FPGA配置文件进行配置之前,总线切换开关在CPU的控制下将存储器与FPGA之间的数据通路连通,对于FPGA来说,均是通过主动配置方式,从第一存储区载入FPGA配置文件,升级过程对其不可见。通常情况下,不会出现载入更新后的FPGA配置文件,进行配置失败的情况。但是如果在进行FPGA配置文件升级的过程中,恰好出现设备断电等意外情况时,可以采取用第二存储区存储的更新前的FPGA配置文件覆盖第一存储区的存储的更新后的FPGA配置文件。特别地,考虑极端情况,如果在用第二存储区存储的更新前的FPGA配置文件覆盖第一存储区的存储的更新后的FPGA配置文件的过程中,也出现了意外情况,此时,可以用第三存储区存储的初始FPGA配置文件覆盖第一存储区存储的本次更新前的FPGA配置文件,从而,保证了FPGA配置文件升级过程的可靠性。
为了便于理解本发明,以下以使用SPI-Flash主动配置方式下,FPGA配置文件在线升级方法为例,进行说明。如图6所示,为本发明实施例中,使用SPI-Flash主动配置方式下,FPGA配置文件在线升级方法的实施流程示意图,包括以下步骤:
S601、CPU控制总线切换开关将FPGA与存储器之间的数据通路断开、将CPU与存储器之间的数据通路连通;
具体的,CPU向FPGA与存储器之间的数据通路输入低电平信号,将FPGA与存储器之间的数据通路断开,并同时向CPU与存储器之间的数据通路输入高电平信号,将CPU与存储器之间的第二数据通路连通。
S602、CPU向存储器的第一存储区写入更新后的FPGA配置文件;
S603、CPU控制总线切换开关将FPGA与存储器之间的数据通路连通、将CPU与存储器之间的数据通路断开;
S604、CPU拉低FPGA的配置管脚PROG_B,并持续设定时长后释放;
具体实施时,也可以通过对FPGA重启上电的方式,触发FPGA从第一存储区中重新载入更新后的FPGA配置文件,并进行配置。
S605、FPGA从第一存储区中重新载入更新后的FPGA配置文件,并进行配置;
S606、CPU判断FPGA配置是否成功,如果是,执行步骤S607,否则,执行步骤S609;
具体的,CPU通过检测FPGA的配置管脚DONE,若检测到其重新拉高时,则确定FPGA配置成功,否则,确定FPGA配置失败。
S607、比较第一存储区的FPGA配置文件与第二存储区的FPGA配置文件是否一致,如果是,执行步骤S616,否则执行步骤S608;
S608、用第一存储区存储的本次更新后的FPGA配置文件覆盖第二存储区存储的本次更新前的FPGA配置文件,并执行步骤S616;
S609、用第二存储区的存储的本次更新前的FPGA配置文件覆盖第一存储区存储的本次更新后的FPGA配置文件;
S610、CPU拉低FPGA的配置管脚PROG_B,并持续设定时长后释放;
S611、FPGA重新从第一存储区载入本次更新前的FPGA配置文件,并进行配置;
S612、CPU判断FPGA配置是否成功,如果是,执行步骤S616,否则,执行步骤S613;
S613、用第三存储区存储的初始FPGA配置文件覆盖第一存储区存储的本次更新前的FPGA配置文件;
S614、CPU拉低FPGA的配置管脚PROG_B,并持续设定时长后释放;
S615、FPGA重新从第一存储区载入初始FPGA配置文件,并进行配置;
S616、流程结束。
基于同一发明构思,本发明实施例中还提供了一种FPGA配置文件在线升级的装置,由于该装置解决问题的原理与上述FPGA配置文件在线升级的方法相似,因此该装置的实施可以参见上述FPGA配置文件在线升级的方法的实施,重复之处不再赘述。
如图7所示,为本发明实施例提供的FPGA配置文件在线升级装置的结构示意图,包括:
存储器701,用于存储现场可编程门阵列FPGA配置文件;
CPU702,用于在进行FPGA配置文件升级时,控制总线切换开关将FPGA704与存储器701之间的第一数据通路断开、将CPU702与存储器701之间的第二数据通路连通,并更新存储器701中的FPGA配置文件;以及在完成FPGA配置文件的更新之后,控制总线切换开关703将第一数据通路连通、将第二数据通路断开;并触发FPGA704重新从存储器701中载入更新后的FPGA配置文件,并进行配置。
总线切换开关703,用于在CPU702的控制下,分别连通或者断开第一数据通路和第二数据通路;
FPGA704,用于在CPU702的触发下,从所述存储器中重新载入更新后的FPGA配置文件,并进行配置。
具体实施中,CPU702,可以用于向第一数据通路输入低电平信号,将FPGA704与存储器之间的第一数据通路断开,并同时向第二数据通路输入高电平信号,将CPU702与存储器之间的第二数据通路连通。
具体实施中,CPU702,可以用于拉低FPGA704的配置管脚PROG_B并持续设定时长后释放,触发FPGA704重新从存储器701中载入更新后的FPGA配置文件。
具体实施中,CPU702,还可以用于确定FPGA704重新载入更新后的FPGA配置文件之后,进行配置成功。具体的,CPU702,具体用于在检测到FPGA704的配置管脚DONE重新拉高时,确定FPGA704重新载入更新后的FPGA配置文件成功。
具体实施中,存储器701的存储空间包括第一存储区、第二存储区和第三存储区,其中,第一存储区存储本次更新后的FPGA配置文件,第二存储区存储本次更新前的FPGA配置文件,第三存储区存储初始FPGA配置文件;以及
CPU702,还可以用于在确定FPGA704重新载入第一存储区存储的FPGA配置文件,进行配置成功时,比较第一存储区存储的本次更新后的FPGA配置文件与第二存储区存储的本次更新前的FPGA配置文件是否一致;以及在比较结果不一致时,用第一存储区存储的本次更新后的FPGA配置文件覆盖第二存储区存储的本次更新前的FPGA配置文件,在比较结果一致时,不进行操作。
具体实施中,CPU702,还可以用于在确定FPGA704重新载入第一存储区存储的本次更新后的FPGA配置文件,进行配置未成功时,用第二存储区存储的本次更新前的FPGA配置文件覆盖第一存储区存储的本次更新后的FPGA配置文件;并触发FPGA704从所述第一存储区中重新载入本次更新前的FPGA配置文件,并进行配置。
具体实施中,CPU702,还用于在确定FPGA704从第一存储区中重新载入本次更新前的FPGA配置文件,进行配置未成功时,用第三存储区存储的初始FPGA配置文件覆盖第一存储区存储的本次更新前的FPGA配置文件;并触发FPGA704从第一存储区中重新载入初始FPGA配置文件,并进行配置。
本发明实施例提供的FPGA配置文件在线升级的方法及装置,基于FPGA的主动配置模式,在默认情况下,使得FPGA与存储有FPGA配置文件的存储器之间的数据通路连通,上电时FPGA主动载入FPGA配置文件,在需要进行配置文件升级时,通过总线切换开关将CPU与存储器之间的数据通路连通,并断开FPGA与存储有FPGA配置文件的存储器之间的数据通路,使得CPU能够将更新的FPGA配置文件写入到存储器中。
本发明实施例提供的FPGA配置文件在线升级的方法及装置,当需要进行FPGA配置文件升级时,CPU控制总线切换开关将FPGA与存储器之间的第一数据通路断开、将CPU与存储器之间的第二数据通路连通,使得CPU能够更新存储器中存储的FPGA配置文件,并在完成FPGA配置文件的更新之后,CPU触发FPGA重新加载更新后的FPGA配置文件,以完成FPGA配置文件的升级,采用本发明实施例提供的FPGA配置文件在线升级的方法,无需增加额外的逻辑器件,且在升级完成后,FPGA上电后即可从存储器读取配置文件进行配置,由于无需通过CPU的GPIO模拟FPGA的下载时序,从而对FPGA的配置无需在CPU自身启动配置完成后再进行,实现了FPGA上电即可用的目的。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (12)

1.一种FPGA配置文件在线升级的方法,其特征在于,包括:
在进行现场可编程门阵列FPGA配置文件升级时,中央处理器CPU控制总线切换开关将FPGA与存储器之间的第一数据通路断开、将CPU与存储器之间的第二数据通路连通;
所述CPU更新所述存储器中存储的FPGA配置文件;并
在完成FPGA配置文件的更新之后,所述CPU控制所述总线切换开关将所述第一数据通路连通、将所述第二数据通路断开;以及
所述CPU触发所述FPGA从所述存储器中重新载入更新后的FPGA配置文件,并对所述FPGA进行配置;
所述存储器的存储空间包括第一存储区、第二存储区和第三存储区,其中,第一存储区存储本次更新后的FPGA配置文件,第二存储区存储本次更新前的FPGA配置文件,第三存储区存储初始FPGA配置文件;
CPU在确定FPGA重新载入第一存储区存储的本次更新后的FPGA配置文件,进行配置未成功时,用第二存储区存储的本次更新前的FPGA配置文件覆盖第一存储区存储的本次更新后的FPGA配置文件;并触发所述FPGA从所述第一存储区中重新载入本次更新前的FPGA配置文件,并进行配置;以及
CPU在确定FPGA从所述第一存储区中重新载入本次更新前的FPGA配置文件,进行配置仍未成功时,用第三存储区存储的初始FPGA配置文件覆盖第一存储区存储的本次更新前的FPGA配置文件;并触发所述FPGA从所述第一存储区中重新载入初始FPGA配置文件,并进行配置。
2.如权利要求1所述的方法,其特征在于,CPU控制总线切换开关将FPGA与存储器之间的第一数据通路断开、将CPU与存储器之间的第二数据通路连通,具体包括:
所述CPU向所述第一数据通路输入低电平信号,将FPGA与存储器之间的第一数据通路断开,并同时向所述第二数据通路输入高电平信号,将CPU与存储器之间的第二数据通路连通。
3.如权利要求1所述的方法,其特征在于,触发所述FPGA重新从所述存储器中载入更新后的FPGA配置文件,具体包括:
所述CPU拉低所述FPGA的配置管脚PROG_B并持续设定时长后释放,触发所述FPGA重新从所述存储器中载入更新后的FPGA配置文件。
4.如权利要求1所述的方法,其特征在于,还包括:
所述CPU确定FPGA重新载入更新后的FPGA配置文件之后,进行配置成功检测。
5.如权利要求4所述的方法,其特征在于,所述CPU在检测到所述FPGA的配置管脚DONE重新拉高时,确定FPGA重新载入更新后的FPGA配置文件成功。
6.如权利要求1~5任一权利要求所述的方法,其特征在于,所述方法,还包括:
CPU在确定FPGA重新载入第一存储区存储的FPGA配置文件,进行配置成功时,比较第一存储区存储的本次更新后的FPGA配置文件与第二存储区存储的本次更新前的FPGA配置文件是否一致;以及
在比较结果不一致时,用第一存储区存储的本次更新后的FPGA配置文件覆盖第二存储区存储的本次更新前的FPGA配置文件。
7.一种FPGA配置文件在线升级的装置,其特征在于,包括:
存储器,用于存储现场可编程门阵列FPGA配置文件;所述存储器的存储空间包括第一存储区、第二存储区和第三存储区,其中,第一存储区存储本次更新后的FPGA配置文件,第二存储区存储本次更新前的FPGA配置文件,第三存储区存储初始FPGA配置文件;
中央处理器CPU,用于在进行FPGA配置文件升级时,控制总线切换开关将FPGA与存储器之间的第一数据通路断开、将CPU与存储器之间的第二数据通路连通,并更新所述存储器中的FPGA配置文件;以及在完成FPGA配置文件的更新之后,控制所述总线切换开关将所述第一数据通路连通、将所述第二数据通路断开;并触发所述FPGA重新从所述存储器中载入更新后的FPGA配置文件,并进行配置;
总线切换开关,用于在所述CPU的控制下,分别连通或者断开所述第一数据通路和所述第二数据通路;
FPGA,用于在所述CPU的触发下,从所述存储器中重新载入更新后的FPGA配置文件,并进行配置;以及在确定FPGA重新载入第一存储区存储的本次更新后的FPGA配置文件,进行配置未成功时,用第二存储区存储的本次更新前的FPGA配置文件覆盖第一存储区存储的本次更新后的FPGA配置文件;并触发所述FPGA从所述第一存储区中重新载入本次更新前的FPGA配置文件,并进行配置;以及在确定FPGA从所述第一存储区中重新载入本次更新前的FPGA配置文件,进行配置仍未成功时,用第三存储区存储的初始FPGA配置文件覆盖第一存储区存储的本次更新前的FPGA配置文件;并触发所述FPGA从所述第一存储区中重新载入初始FPGA配置文件,并进行配置。
8.如权利要求7所述的装置,其特征在于,
所述CPU,具体用于向所述第一数据通路输入低电平信号,将FPGA与存储器之间的第一数据通路断开,并同时向所述第二数据通路输入高电平信号,将CPU与存储器之间的第二数据通路连通。
9.如权利要求8所述的装置,其特征在于,
所述CPU,具体用于拉低所述FPGA的配置管脚PROG_B并持续设定时长后释放,触发所述FPGA重新从所述存储器中载入更新后的FPGA配置文件。
10.如权利要求7所述的装置,其特征在于,
所述CPU,还用于确定FPGA重新载入更新后的FPGA配置文件之后,进行配置成功检测。
11.如权利要求10所述的装置,其特征在于,
所述CPU,具体用于在检测到所述FPGA的配置管脚DONE重新拉高时,确定FPGA重新载入更新后的FPGA配置文件成功。
12.如权利要求7~11任一权利要求所述的装置,其特征在于,所述CPU,还用于在确定FPGA重新载入第一存储区存储的FPGA配置文件,进行配置成功时,比较第一存储区存储的本次更新后的FPGA配置文件与第二存储区存储的本次更新前的FPGA配置文件是否一致;以及在比较结果不一致时,用第一存储区存储的本次更新后的FPGA配置文件覆盖第二存储区存储的本次更新前的FPGA配置文件。
CN201110310780.6A 2011-10-13 2011-10-13 一种fpga配置文件在线升级方法及装置 Expired - Fee Related CN102360302B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110310780.6A CN102360302B (zh) 2011-10-13 2011-10-13 一种fpga配置文件在线升级方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110310780.6A CN102360302B (zh) 2011-10-13 2011-10-13 一种fpga配置文件在线升级方法及装置

Publications (2)

Publication Number Publication Date
CN102360302A CN102360302A (zh) 2012-02-22
CN102360302B true CN102360302B (zh) 2014-01-22

Family

ID=45585634

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110310780.6A Expired - Fee Related CN102360302B (zh) 2011-10-13 2011-10-13 一种fpga配置文件在线升级方法及装置

Country Status (1)

Country Link
CN (1) CN102360302B (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103777972B (zh) * 2012-10-24 2018-08-31 上海联影医疗科技有限公司 基于现场可编程门阵列的系统、配置方法以及升级方法
CN103530164A (zh) * 2013-10-30 2014-01-22 广东威创视讯科技股份有限公司 一种fpga配置文件远程更新的方法及装置
CN103605542A (zh) * 2013-11-18 2014-02-26 曙光信息产业(北京)有限公司 Fpga配置文件的在线升级装置
CN103617056B (zh) * 2013-11-25 2017-02-01 广东威创视讯科技股份有限公司 Fpga逻辑代码的在线升级方法和装置
CN104050067B (zh) * 2014-05-23 2016-01-27 北京兆易创新科技股份有限公司 Fpga在mcu芯片中工作的方法和装置
CN105320531A (zh) * 2014-07-15 2016-02-10 北京自动化控制设备研究所 一种基于MicroBlaze软核的FPGA软件在线升级方法
CN104503787B (zh) * 2014-12-16 2018-01-30 上海斐讯数据通信技术有限公司 Cpu系统升级方法及系统
CN104636168A (zh) * 2015-02-09 2015-05-20 南京国电南自美卓控制系统有限公司 基于mlvds总线的soc fpga在线升级方法
CN104881312B (zh) * 2015-06-02 2017-11-03 嘉应学院 一种fpga逻辑代码迭代升级的方法及电路
CN105718416A (zh) * 2016-01-20 2016-06-29 青岛海信电器股份有限公司 一种升级fpga的配置文件的方法和升级设备
CN105930284A (zh) * 2016-04-14 2016-09-07 青岛海信电器股份有限公司 一种fpga加载的方法和设备
CN106201590B (zh) * 2016-06-29 2019-06-11 瑞斯康达科技发展股份有限公司 一种fpga配置文件加载方法和系统
CN106598639B (zh) * 2016-10-24 2020-07-28 浙江宇视科技有限公司 一种逻辑芯片的升级方法以及升级系统
CN107168720B (zh) * 2017-06-06 2020-09-08 武汉虹信通信技术有限责任公司 一种基于fpga的spi接口配置方法
CN112486585B (zh) * 2017-11-03 2024-01-02 超聚变数字技术有限公司 恢复fpga芯片中的逻辑的方法、系统和fpga设备
CN107908418B (zh) * 2017-12-12 2021-03-30 上海赛治信息技术有限公司 光纤通道节点卡的逻辑程序升级方法及光纤通道总线设备
CN109062622A (zh) * 2018-08-21 2018-12-21 北京无线电测量研究所 一种基于远程fpga加载系统和方法
CN109542484B (zh) * 2018-11-20 2022-02-18 浪潮集团有限公司 一种在线更新fpga配置芯片的方法及系统
CN109542492A (zh) * 2018-12-03 2019-03-29 郑州云海信息技术有限公司 一种fpga板卡在线更新的方法、系统及设备
CN109358893A (zh) * 2018-12-10 2019-02-19 武汉精立电子技术有限公司 一种fpga程序的在线升级方法、装置及系统
CN109918135A (zh) * 2019-02-21 2019-06-21 新华三技术有限公司 一种cpld中的逻辑代码恢复方法及电子设备
CN110196726B (zh) * 2019-05-17 2023-05-26 江西山水光电科技股份有限公司 一种基于cpu+cpld实现fpga程序远程升级加载的方法
CN110569053A (zh) * 2019-09-03 2019-12-13 深圳市东微智能科技股份有限公司 电子设备中应用芯片的升级方法及电子设备
CN110673871A (zh) * 2019-10-08 2020-01-10 北京淳中科技股份有限公司 在线升级装置、控制方法、电子设备及计算机可读介质
CN110944234A (zh) * 2019-10-31 2020-03-31 康佳集团股份有限公司 一种电视升级方法、系统及存储介质
CN111061677B (zh) * 2019-12-26 2023-01-24 杭州迪普科技股份有限公司 Fpga配置方法、装置以及fpga器件
CN111538260A (zh) * 2020-04-01 2020-08-14 深圳市汇顶科技股份有限公司 引脚配置方法及装置、多引脚互连互通系统
CN112181526B (zh) * 2020-09-30 2022-11-11 锐捷网络股份有限公司 设备启动方法及装置
CN112769613B (zh) * 2021-01-04 2022-08-09 武汉光迅科技股份有限公司 一种fpga在线升级的系统及其在线升级方法
CN113535213B (zh) * 2021-07-21 2024-03-29 联想长风科技(北京)有限公司 一种可编程逻辑器件的固件更新方法及系统
CN115167885B (zh) * 2022-08-03 2024-02-06 江苏新质信息科技有限公司 一种多fpga系统的上电后程序加载方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030046231A (ko) * 2001-12-05 2003-06-12 엘지전자 주식회사 에프피지에이 퓨징 장치 및 방법
CN1987787A (zh) * 2006-12-06 2007-06-27 华为技术有限公司 一种在线升级逻辑器件的方法和系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030046231A (ko) * 2001-12-05 2003-06-12 엘지전자 주식회사 에프피지에이 퓨징 장치 및 방법
CN1987787A (zh) * 2006-12-06 2007-06-27 华为技术有限公司 一种在线升级逻辑器件的方法和系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
FPGA配置及Cyclone系列PS模式的工程应用;丛文等;《北京电子科技学院学报》;20061231;第14卷(第4期);正文第2页第3.1节、表3-1及图3-1 *
一种针对嵌入式远程升级安全的存储解决方案;尹恒等;《计算机应用》;20110430;第31卷(第4期);正文第2页第4节部分及图2-3 *
丛文等.FPGA配置及Cyclone系列PS模式的工程应用.《北京电子科技学院学报》.2006,第14卷(第4期),
尹恒等.一种针对嵌入式远程升级安全的存储解决方案.《计算机应用》.2011,第31卷(第4期),

Also Published As

Publication number Publication date
CN102360302A (zh) 2012-02-22

Similar Documents

Publication Publication Date Title
CN102360302B (zh) 一种fpga配置文件在线升级方法及装置
CN102609286B (zh) 一种基于处理器控制的fpga配置程序远程更新系统及其方法
CN104166566A (zh) 一种fpga配置文件升级方法及系统
CN108304282B (zh) 一种双bios的控制方法及相关装置
CN103605542A (zh) Fpga配置文件的在线升级装置
US20070260790A1 (en) Embedded controller and method for updating the firmware thereof
CN101770384A (zh) 一种车载音响系统及其软件升级方法
CN102339242A (zh) 计算机系统数据修复装置
CN101169729A (zh) 嵌入式系统及其更新应用程序的方法
CN104035803A (zh) 一种更新cpld/fpga固件的方法、装置及烧录器
CN105718281A (zh) 一种触摸屏固件升级方法及装置
CN101477838B (zh) 一种与非快闪记忆体状态检测装置、系统及电子设备
CN102867158B (zh) 一种切换内存的方法、装置及具有双系统的终端
CN116737244A (zh) 芯片多硬件域启动方法及装置
CN104050006A (zh) 一种fpga的更新系统及其更新方法
CN108182079B (zh) 一种基于串口的tms320c6748程序加载方法
CN106066453A (zh) 串行线调试桥
WO2019159715A1 (ja) 車両制御装置およびプログラム更新システム
CN101667133A (zh) 固件更新方法和使用该方法更新固件的芯片
CN1677346A (zh) 可编程器件程序更新方法及可更新程序的板卡
CN104423984A (zh) 在线升级方法和在线升级系统
US10013383B2 (en) Method for power control handshaking of hot swappable components using programmable logic devices
CN101727333A (zh) 微处理器中固件更新的方法及固件更新系统
CN104699410A (zh) 一种信息处理方法及电子设备
CN113703850A (zh) 一种bios程序的启动方法、系统及相关组件

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: 350002 19 Building, Citrus Industrial Park, 618 Jinshan Road, Cangshan District, Fuzhou, Fujian.

Patentee after: RUIJIE NETWORKS Co.,Ltd.

Address before: 350002 19 Building, Citrus Industrial Park, 618 Jinshan Road, Cangshan District, Fuzhou, Fujian.

Patentee before: Fujian Star-net Ruijie Network Co.,Ltd.

CP01 Change in the name or title of a patent holder
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140122

Termination date: 20211013

CF01 Termination of patent right due to non-payment of annual fee