CN105404538B - 一种fpga的加载和升级目标代码的装置及方法 - Google Patents

一种fpga的加载和升级目标代码的装置及方法 Download PDF

Info

Publication number
CN105404538B
CN105404538B CN201511003726.1A CN201511003726A CN105404538B CN 105404538 B CN105404538 B CN 105404538B CN 201511003726 A CN201511003726 A CN 201511003726A CN 105404538 B CN105404538 B CN 105404538B
Authority
CN
China
Prior art keywords
fpga
main control
control processor
load
nonvolatile 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.)
Active
Application number
CN201511003726.1A
Other languages
English (en)
Other versions
CN105404538A (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.)
Guangzhou Huiruisitong Technology Co Ltd
Original Assignee
Guangzhou Huiruisitong Information Technology 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 Guangzhou Huiruisitong Information Technology Co Ltd filed Critical Guangzhou Huiruisitong Information Technology Co Ltd
Priority to CN201511003726.1A priority Critical patent/CN105404538B/zh
Publication of CN105404538A publication Critical patent/CN105404538A/zh
Application granted granted Critical
Publication of CN105404538B publication Critical patent/CN105404538B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1096Parity calculation or recalculation after configuration or reconfiguration of the system

Abstract

本发明公开的一种FPGA的加载和升级目标代码的装置,包括主控处理器、FPGA、带输出使能控制的双向缓存器,以及非易失性存储器,其中FPGA与非易失性存储器通过四根数据信号线、一根时钟信号线和一根片选信号线相连接,主控处理器与非易失性存储器相连,中间用双向缓存器进行隔离切换,主控处理器同时还控制双向缓存器的输出使能以及FPGA的初始化复位信号。本发明的装置及方法,不仅实现了升级功能,也保证了FPGA加载的速率,减少系统的启动时间。

Description

一种FPGA的加载和升级目标代码的装置及方法
技术领域
本发明涉及数据通信领域,特别涉及一种FPGA的加载和升级目标代码的装置及方法。
背景技术
FPGA(Field Programmable Gate Array,现场可编程门阵列)以其内部逻辑的并行运行,高速工作时钟,丰富的输入输出管脚资源,集成高速串行收发模块,特定接口协议的核资源等优势,广泛用于通信硬件设备系统中,完成板级逻辑控制,接口转换,数据传输,算法处理等功能。基于FPGA此类芯片的特性,目标代码在系统掉电时会丢失,所以在系统设计时需将目标代码存于芯片外部的非易失性的存储器上,每次系统启动时,都会进行加载FPGA目标代码的操作。
现有的设计中,最常见的是采用主控处理器,非易失性存储器,FPGA,CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)的组合加载和升级FPGA目标代码。主控处理器负责通过对外接口从上位机获取FPGA的目标代码数据并将其通过并行数据总线烧写到非易失性存储器中,完成目标代码的升级。系统启动时,由CPLD通过并行数据总线读取非易失性存储器中的目标代码,并同时加载到FPGA。这种实现方法的缺点主要有以下几点:1、占用了主控处理器较多的管脚;2、额外增加了一个逻辑芯片CPLD配合完成,增加了成本和功耗,使得芯片的布局空间更加紧张;3、实现较为复杂。这种实现方案消耗了较多的资源,不适用于对成本、功耗、空间敏感的系统。
通常的,FPGA还支持另一种加载模式,即主动加载模式。现用设计中,通常用FPGA外挂一个单线串行接口的非易失性存储器,FPGA复位初始化后,自主从该非易失性存储器中读取目标代码,FPGA在正常工作时,通过对外接口从上位机获取新的目标代码数据并写到非易失性存储器中,完成升级。这种模式的缺点有:1、由FPGA自己更新非易失性存储器中的内容,若出现获取了错误的目标代码或者更新过程中系统断电等事件,则不完整或不正确的目标代码会把非易失性存储器原来正确的目标代码覆盖掉,系统重新运行时,FPGA无法正常工作,也就无法再次升级FPGA的目标代码(除非另接仿真器等其他工具),这将成为一个严重的系统缺陷和隐患;2、单线串行接口的数据传输速率低,导致FPGA的加载时间较长,增加了整个系统的启动时间。这种实现方案的存在系统缺陷和隐患以及FPGA加载时间较长等不足。
发明内容
本发明的目的在于克服现有技术的缺点与不足,提供一种FPGA的加载和升级目标代码的装置。
本发明的另一目的在于提供一种FPGA的加载和升级目标代码的方法。
本发明的目的通过以下的技术方案实现:
一种FPGA的加载和升级目标代码的装置,包括主控处理器、FPGA、带输出使能控制的双向缓存器,以及非易失性存储器,其中FPGA与非易失性存储器通过四根数据信号线、一根时钟信号线和一根片选信号线相连接,主控处理器与非易失性存储器相连,中间用双向缓存器进行隔离切换,主控处理器同时还控制双向缓存器的输出使能以及FPGA的初始化复位信号。
所述非易失性存储器支持SPI接口访问并支持quad I/O模式(四数据线模式)。
所述主控处理器与非易失性存储器通过SPI(串行设备接口)接口相连。
所述FPGA采用主动自加载模式。
本发明的另一目的通过以下的技术方案实现:
一种FPGA的加载和升级目标代码的方法,包含以下步骤:
A、系统正常上电,主控处理器进入用户代码运行,使能FPGA初始化复位信号同时禁止使能双向缓存器的输出;FPGA处于初始化复位状态,双向缓存器处于高阻输出状态;
B、根据时序要求,主控处理器通过控制FPGA初始化复位信号保持FPGA处于复位状态,复位状态的持续时间为T,T为预设值;
C、主控处理器解除FPGA的初始化复位状态,FPGA从非易失性存储器搬移目标代码,完成FPGA目标代码的加载;
D、主控处理器接收到升级请求后,使FPGA处于复位状态,使能双向缓存器的输出,使非易失性存储器掉电重启,非易失性存储器处于单数据线SPI接口模式;
E、主控处理器接收外接接口传输过来的FPGA的目标代码数据,通过SPI接口将数据写进存储设备中;
F、目标代码写入完成后,进行CRC校验并将结果提示消息上报;
G、若校验通过,则上报升级成功,完成升级;若校验不通过,则上报校验失败,并回到步骤D。
步骤B中,所述复位状态保持100ms。
步骤C中,所述FPGA从非易失性存储器搬移目标代码是通过四数据线SPI接口完成的。
步骤D中,所述非易失性存储器通过掉电重启完成四数据线接口访问模式切换为单数据线SPI接口访问模式。
本发明与现有技术相比,具有如下优点和有益效果:
本发明通过采用FPGA的自主加载模式和支持SPI接口访问的非易失性存储器的quad I/O模式,不仅实现了升级功能,也保证了FPGA加载的速率,减少系统的启动时间。同时,通过非易失性存储器的访问接口的模式切换,主控制器仍保持传统的单数据线SPI接口模式访问FLASH,不仅释放了主控处理器的接口管脚资源,(单个FPGA加载只需占用主控处理器8个管脚信号就能满足设计要求)也避免对主控处理器的器件选型形成限制。减小了CPLD等其他逻辑芯片或处理芯片的依赖,在功耗,成本以及芯片布局空间上都得到明显的优化,且在发生升级失败,错误等意外时可以重新升级,直到正常,使得整个装置的实现清晰简单、严谨。
附图说明
图1为本发明所述一种FPGA的加载和升级目标代码的装置的原理框图。
图2为本发明所述一种FPGA的加载和升级目标代码的方法的流程图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
如图1所述,一种FPGA的加载和升级目标代码的装置包括MCU(Micro ControlUnit,微控制单元),FPGA,SPI FLASH(串行接口闪存),以及BUFFER(双向缓存器)。
MCU作为主控处理器用于与上位机通信,接收指令和FPGA目标代码数据,并将目标代码写入FLASH中,并控制整个流程的实现。
FLASH作为非易失性存储器,用于存储FPGA的目标代码,并通过四数据线的SPI接口模式与FPGA的加载专用管脚相连接,同时通过单数据线的SPI接口模式与MCU相连接,中间的BUFFER起隔离切换作用。
如图2所述,一种FPGA的加载和升级目标代码的方法,其加载FPGA目标代码的流程如下:
(1)系统完成上电复位后,主控处理器初始化管脚状态,拉低Nconfig信号,使FPGA处于复位状态,拉低BUFFER的OE信号,禁止使能输出。
(2)保持FPGA复位状态100ms。
(3)主控制器解除FPGA的复位状态,FPGA识别硬件配置管脚MSEL[4..0]=10010后进入主动加载模式,并开始通过四数据线SPI接口访问FLASH,搬移FLASH中的目标代码,数据传输速率最高可达400Mbps。
(4)FPGA目标代码搬移完成后,输出Done信号告知主控处理器,初始化内部逻辑寄存器,使能管脚,运行目标代码,完成FPGA目标代码的加载。
升级FPGA目标代码的流程如下:
(1)系统在进入正常工作状态时,主控处理器接收到上位机的升级FPGA目标代码的请求,进入升级FPGA状态。
(2)主控处理器拉高BUFFER的OE信号,使能输出。
(3)主控处理器拉低Nconfig信号,使FPGA处于复位状态。
(4)主控处理器拉低控制DC-DC(直流转直流)电源模块的使能管脚,使FLASH的供电电源掉电。
延时10ms,主控处理器拉高控制DC-DC(直流转直流)电源模块的使能管脚,FLASH重新上电,进入单数据线SPI接口访问模式。
(5)主控处理器接收目标代码,并同步擦除和写入到FLASH中。
(6)完成目标代码的写入后,对其数据进行CRC校验。若校验通过,则上报升级成功,拉低BUFFER的OE信号,禁止使能输出,完成升级。若校验不通过,则上报校验失败,并回到升级循环。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (8)

1.一种FPGA的加载和升级目标代码的装置,其特征在于:包括主控处理器、FPGA、带输出使能控制的双向缓存器,以及非易失性存储器,其中FPGA与非易失性存储器通过四根数据信号线、一根时钟信号线和一根片选信号线相连接,主控处理器与非易失性存储器相连,中间用双向缓存器进行隔离切换,主控处理器同时还控制双向缓存器的输出使能以及FPGA的初始化复位信号;
所述主控处理器的工作过程如下:
A、主控处理器进入用户代码运行,使能FPGA初始化复位信号同时禁止使能双向缓存器的输出;FPGA处于初始化复位状态,双向缓存器处于高阻输出状态;
B、根据时序要求,主控处理器通过控制FPGA初始化复位信号保持FPGA处于复位状态,复位状态的持续时间为T,T为预设值;
C、主控处理器解除FPGA的初始化复位状态,FPGA从非易失性存储器搬移目标代码,完成FPGA目标代码的加载;
D、主控处理器接收到升级请求后,使FPGA处于复位状态,使能双向缓存器的输出,使非易失性存储器掉电重启,非易失性存储器处于单数据线SPI接口模式;
E、主控处理器接收外接接口传输过来的FPGA的目标代码数据,通过SPI接口将数据写进存储设备中;
F、目标代码写入完成后,进行CRC校验并将结果提示消息上报;
G、若校验通过,则上报升级成功,完成升级;若校验不通过,则上报校验失败,并回到步骤D。
2.根据权利要求1所述的FPGA的加载和升级目标代码的装置,其特征在于:所述非易失性存储器支持SPI接口访问并支持quad I/O模式。
3.根据权利要求1所述的FPGA的加载和升级目标代码的装置,其特征在于:所述主控处理器与非易失性存储器通过SPI接口相连。
4.根据权利要求1所述的FPGA的加载和升级目标代码的装置,其特征在于:所述FPGA采用主动自加载模式。
5.一种FPGA的加载和升级目标代码的方法,其特征在于,包含以下步骤:
A、系统正常上电,主控处理器进入用户代码运行,使能FPGA初始化复位信号同时禁止使能双向缓存器的输出;FPGA处于初始化复位状态,双向缓存器处于高阻输出状态;
B、根据时序要求,主控处理器通过控制FPGA初始化复位信号保持FPGA处于复位状态,复位状态的持续时间为T,T为预设值;
C、主控处理器解除FPGA的初始化复位状态,FPGA从非易失性存储器搬移目标代码,完成FPGA目标代码的加载;
D、主控处理器接收到升级请求后,使FPGA处于复位状态,使能双向缓存器的输出,使非易失性存储器掉电重启,非易失性存储器处于单数据线SPI接口模式;
E、主控处理器接收外接接口传输过来的FPGA的目标代码数据,通过SPI接口将数据写进存储设备中;
F、目标代码写入完成后,进行CRC校验并将结果提示消息上报;
G、若校验通过,则上报升级成功,完成升级;若校验不通过,则上报校验失败,并回到步骤D。
6.根据权利要求5所述的FPGA的加载和升级目标代码的方法,其特征在于:步骤B中,所述复位状态保持100ms。
7.根据权利要求5所述的FPGA的加载和升级目标代码的方法,其特征在于:步骤C中,所述FPGA从非易失性存储器搬移目标代码是通过四数据线SPI接口完成的。
8.根据权利要求5所述的FPGA的加载和升级目标代码的方法,其特征在于:步骤D中,所述非易失性存储器通过掉电重启完成四数据线接口访问模式切换为单数据线SPI接口访问模式。
CN201511003726.1A 2015-12-25 2015-12-25 一种fpga的加载和升级目标代码的装置及方法 Active CN105404538B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201511003726.1A CN105404538B (zh) 2015-12-25 2015-12-25 一种fpga的加载和升级目标代码的装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201511003726.1A CN105404538B (zh) 2015-12-25 2015-12-25 一种fpga的加载和升级目标代码的装置及方法

Publications (2)

Publication Number Publication Date
CN105404538A CN105404538A (zh) 2016-03-16
CN105404538B true CN105404538B (zh) 2019-02-22

Family

ID=55470038

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201511003726.1A Active CN105404538B (zh) 2015-12-25 2015-12-25 一种fpga的加载和升级目标代码的装置及方法

Country Status (1)

Country Link
CN (1) CN105404538B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106547596B (zh) * 2016-11-07 2019-07-26 天津津航计算技术研究所 一种fpga远程升级方法
CN107423244B (zh) * 2017-04-27 2019-07-30 广州慧睿思通信息科技有限公司 一种复用功能管脚的灵活配置装置及其实现方法
CN107528571B (zh) * 2017-09-07 2021-01-26 成都航天通信设备有限责任公司 一种fpga仿真器切换装置及方法
CN107832078B (zh) * 2017-09-15 2020-09-22 西南电子技术研究所(中国电子科技集团公司第十研究所) 基于dsp的fpga程序在线更新电路
CN108279949B (zh) * 2018-01-18 2021-05-04 海信视像科技股份有限公司 一种应用于电视的开机方法、系统及电视
CN109542522A (zh) * 2018-11-02 2019-03-29 杭州迪普科技股份有限公司 一种fpga启动方法及装置
CN111857784A (zh) * 2019-04-24 2020-10-30 西安诺瓦电子科技有限公司 固件升级方法和固件升级系统
CN111158761B (zh) * 2019-11-28 2022-12-06 中国航空工业集团公司西安航空计算技术研究所 一种通过FPGA快速加载PowerPC处理器上电配置信息的方法
CN112698887B (zh) * 2021-01-14 2023-02-28 成都壹石新科信息技术有限公司 具有隔离功能的fpga在线配置装置及方法
CN113517950B (zh) * 2021-04-30 2024-03-12 山东英信计算机技术有限公司 一种信号收发方法、系统及介质
CN113466671B (zh) * 2021-09-06 2021-11-23 苏州贝克微电子有限公司 一种基于芯片内部电路结构重构的芯片测试方法和测试装置
CN114546453B (zh) * 2022-04-27 2022-09-09 成都凯天电子股份有限公司 Fpga配置项在线升级方法、系统、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902326A (zh) * 2012-12-29 2014-07-02 鸿富锦精密工业(武汉)有限公司 电子装置及其开机时间侦测方法
CN104881286A (zh) * 2015-05-28 2015-09-02 烽火通信科技股份有限公司 可编程器件配置系统及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005071234A (ja) * 2003-08-27 2005-03-17 Hitachi Ltd 電子機器、及び、かかる電子機器におけるシステムの起動方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902326A (zh) * 2012-12-29 2014-07-02 鸿富锦精密工业(武汉)有限公司 电子装置及其开机时间侦测方法
CN104881286A (zh) * 2015-05-28 2015-09-02 烽火通信科技股份有限公司 可编程器件配置系统及方法

Also Published As

Publication number Publication date
CN105404538A (zh) 2016-03-16

Similar Documents

Publication Publication Date Title
CN105404538B (zh) 一种fpga的加载和升级目标代码的装置及方法
US10552047B2 (en) Memory system
CN103325411B (zh) 一种用于fpga的抗单粒子翻转加固系统及其方法
CN105074832A (zh) 电力管理
US11650653B2 (en) Apparatuses and methods of entering unselected memories into a different power mode during multi-memory operation
US9607120B2 (en) Implementing system irritator accelerator FPGA unit (AFU) residing behind a coherent attached processors interface (CAPI) unit
CN103765522B (zh) 排特定的循环冗余校验
US8869004B2 (en) Memory storage device, memory controller thereof, and data transmission method thereof
CN109542478A (zh) 一种更新SPI Flash内FPGA程序的系统及方法
CN102623069B (zh) 随机激励闪存模型验证方法
CN106557442B (zh) 一种芯片系统
CN105095040B (zh) 一种芯片调试方法与装置
US20210055888A1 (en) Storage device temporarily suspending internal operation to provide short read response time for read request from host
CN111190855A (zh) 一种fpga多重远程配置系统及方法
CN104461660A (zh) 一种异构系统的多模式动态加载方法
CN103106155B (zh) 存储器储存装置、存储器控制器与其数据传输方法
CN208907999U (zh) 一种新型Raid扣卡
CN102890653B (zh) 指令执行方法、存储器控制器与存储器储存装置
CN105573947B (zh) 一种基于apb总线的sd/mmc卡控制方法
CN103729165A (zh) 应用于高速运动控制系统的pci从设备核心控制模块
CN109726149B (zh) 一种axi总线访问nand flash的方法及装置
CN103680638A (zh) 快闪存储器控制器和快闪存储器控制方法
CN102955872A (zh) 具有参数传递功能的仿真器
CN102034543A (zh) 在单任务中实现同时烧写多片nandflash的方法
EP3053023A1 (en) Programming memory controllers to allow performance of active memory operations

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 510000 no.2-8, North Street, Nancun Town, Panyu District, Guangzhou City, Guangdong Province

Patentee after: Guangzhou huiruisitong Technology Co.,Ltd.

Address before: No.2, Nancun North Street, Nancun Town, Panyu District, Guangzhou, Guangdong 511442

Patentee before: GUANGZHOU HUIRUI SITONG INFORMATION TECHNOLOGY Co.,Ltd.

PP01 Preservation of patent right
PP01 Preservation of patent right

Effective date of registration: 20230207

Granted publication date: 20190222

PD01 Discharge of preservation of patent

Date of cancellation: 20240402

Granted publication date: 20190222