CN101604244B - 一种实现fpga上电即用和远程升级的装置及方法 - Google Patents
一种实现fpga上电即用和远程升级的装置及方法 Download PDFInfo
- Publication number
- CN101604244B CN101604244B CN2008100677882A CN200810067788A CN101604244B CN 101604244 B CN101604244 B CN 101604244B CN 2008100677882 A CN2008100677882 A CN 2008100677882A CN 200810067788 A CN200810067788 A CN 200810067788A CN 101604244 B CN101604244 B CN 101604244B
- Authority
- CN
- China
- Prior art keywords
- fpga
- remote upgrade
- logical file
- fpga chip
- loading
- 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
Links
Images
Abstract
本发明提供一种实现FPGA上电即用和远程升级的装置,该装置包括FPGA芯片,还包括一个与CPU及FPGA芯片相连的缓冲电路,用于保证与该电路相连的FPGA芯片的引脚的电平在上电后一直为高,所述FPGA芯片内嵌有闪存;本发明还提供一种实现FPGA上电即用和远程升级的方法,该方法在逻辑文件远程下载到系统的闪存后,做如下操作:FPGA的加载模块读取闪存中的逻辑文件数据流,加载FPGA;检测加载中是否出现CRC校验错误,若是,则重新加载;否则,检测逻辑文件是否加载成功,若是,则升级完毕;否则,继续加载。本发明不仅可以使FPGA在上电后就能正常工作,而且也能实现其远程升级。
Description
技术领域
本发明涉及一种FPGA(Field Programmable Gate Array,现场可编程门阵列),尤其涉及一种实现FPGA上电即用和远程升级的装置及方法。
背景技术
在现代的嵌入式系统中,越来越多的采用了FPGA芯片来完成大规模的逻辑功能。有些系统除了需要具有FPGA的远程升级功能外,还需要在上电后很短时间内就用到FPGA的功能。一般FPGA的加载方法有以下几种:
1、使用CPU加载,方法是将FPGA的逻辑文件与软件程序一起存放在设备的FLASH存储器(闪存)里,系统启动后,CPU执行带有加载功能的应用程序,将逻辑文件加载到FPGA中。这种加载方式虽然方便于远程升级FPGA,但要在应用程序加载完逻辑后才能使用FPGA。
2、增加一片专用的配置PROM(可编程只读存储器),将FPGA逻辑文件先烧到PROM中,单板启动时采用FPGA的主串或主并模式,由FPGA主动发起,将逻辑文件从PROM中加载到FPGA中。这种方式下,逻辑文件烧入PROM后就固定了,无法实现FPGA的升级。
3、有的系统采用CPLD(Complex Programmable Logic Device,复杂的可编程逻辑器件)加上闪存的方法。闪存里存放FPGA的逻辑文件,通过CPLD将逻辑文件加载到FPGA中,CPLD可以与CPU通讯来升级闪存上的逻辑文件。这种方案虽然可以实现FPGA的上电即用和远程升级,但比较复杂,成本较高。
发明内容
本发明所要解决的技术问题是,提供一种实现FPGA上电即用和远程升级的装置,并且提供一种实现FPGA上电即用和远程升级的方法,本发明能够使FPGA在上电后就能正常工作并能实现远程升级。
一种实现FPGA上电即用和远程升级的装置,包括FPGA芯片,还包括一个与CPU及FPGA芯片相连的缓冲电路,用于保证与该电路相连的FPGA芯片的引脚的电平在上电后一直为高,所述FPGA芯片内嵌有闪存。
若系统中的CUP I/O引脚匮乏,则所述FPGA芯片通过锁存器与CPU连接。
若系统中的CUP I/O引脚匮乏,则所述FPGA芯片通过复杂的可编程逻辑器件CPLD的寄存器与CPU连接。
一种实现FPGA上电即用和远程升级的方法,逻辑文件远程下载到系统的闪存后,执行以下步骤:
步骤一:FPGA的加载模块读取闪存中的逻辑文件数据流,加载FPGA;
步骤二:检测加载中是否出现CRC校验错误,若是,则重新加载;否则,执行下一步;
步骤三:检测逻辑文件是否加载成功,若是,则升级完毕;否则,执行步骤一。
所述步骤一之前还包括:初始化FPGA芯片的加载时序。
所述步骤二与步骤三之间还包括:检测逻辑文件数据流是否加载完毕,若是,则执行步骤三;否则,执行步骤一。
所述步骤四进一步包括:检测加载次数是否小于等于事先设定的值,若是,则执行步骤一;否则结束流程。
本发明采用了一种内嵌闪存的FPGA器件,这种FPGA器件除了具有普通FPGA器件的配置模式外,还有一种SDM(Self Download Mode,自下载模式),一般情况下,此种FPGA器件只能实现上电即用和远程升级中的一种功能,但本发明不仅可以使FPGA在上电后就能正常工作,而且也能实现远程升级。
附图说明
图1是本发明中FPGA的从串加载实施例一电路示意图;
图2是本发明中FPGA的从串加载实施例二电路示意图;
图3是本发明中所述方法优选实施例流程图。
具体实施方式
下面结合附图的实施例对本发明进行详细描述:
本发明的装置可采用从串或者从并的加载方式,从并方式有8条数据线,而从串方式只需1条数据线,实施例采用了从串的加载方式。
图1是FPGA的从串加载实施例一电路示意图,图中包括CPU、缓冲电路、FPGA芯片,FPGA芯片采用Lattice的LFXP系列器件,缓冲电路的作用是保证信号CFG和PROGRAMN的电平在上电后一直为高,因为有些CPU的I/O脚在上电复位时电平状态不稳定,会影响到FPGA的SDM功能,所述FPGA芯片的INITN和DONE信号必须接上拉电阻。
FPGA芯片引脚功能说明:
DIN: 数据输入
CCLK: 同步时钟,由CPU提供
PROGRAMN:初始化配置时序
INITN: 指示是否出现CRC校验错误
DONE: 指示加载是否完成
CFG: 设置配置模式(值为1:SDM模式;值为0:从串模式)
该实施例中,CPU的I/O1、I/O2引脚通过缓冲电路与FPGA的CFG和PROGRAMN相连,I/O3、I/O4、I/O5、I/O6引脚分别与FPGA的INITN、DONE、CCLK、DIN引脚相连。
图2是本发明中FPGA的从串加载实施例二电路示意图。图中包括CPU、锁存器或者CPLD、FPGA芯片,FPGA芯片同样采用Lattice的LFXP系列器件,当CPU的通用I/O资源匮乏,没有足够的引脚分配给FPGA的加载端口时,可以采用这种电路。原理是采用锁存器或者小型CPLD里的寄存器,通过本地总线的读写操作来模拟和驱动加载信号。
基于以上两个实施例,在系统的单板上,CPU通过I/O口,或者经过锁存器、CPLD的接口转换,与FPGA的配置加载端口连接。单板第一次使用时,先在PC上用下载电缆通过JTAG(Joint Test Action Group,联合测试行动小组)接口将一份逻辑文件烧录进FPGA的闪存里面;当系统上电时,FPGA采用SDM模式,在有效上电后的微秒级时间内,逻辑文件数据流从内嵌闪存中自动加载到SRAM(Static RAM)中,当单板的应用软件启动时,如果需要升级FPGA逻辑文件,则CPU通过FPGA的配置加载端口使用从串(被动串行)模式或者从并(被动并行)模式来加载逻辑文件,实现FPGA的远程升级。
图3是本发明中所述方法优选实施例流程图。当进行FPGA的远程升级时,新的逻辑文件通过以太网或者HDLC(High level Data Link Control,高级数据链路控制)通道传送到FPGA,并写进FPGA的闪存里后,执行如下步骤:
步骤301:系统上电期间和之后,CFG和PROGRAMN信号一直为高,FPGA完成自下载(将逻辑数据流从内嵌闪存中自动加载到SRAM中),开始正常工作;
步骤302:若FPGA的闪存中的逻辑文件版本比FPGA的SRAM里的高,则执行加载逻辑文件的任务,主要步骤如下:
(1)将CFG信号置为低电平,采用从串配置模式;
(2)在PROGRAMN上送出一个低电平脉冲,初始化加载时序。然后检测INITN信号,如果此信号为高,说明初始化成功,延时一段时间后就可以加载数据;
(3)从闪存中读出逻辑文件数据流,在CCLK和DIN端口分别送出时钟及数据信号,加载FPGA;
(4)在加载过程中,检测INITN信号,若INITN=0,即为低,则说明加载过程出现了CRC校验错误,需要重新开始加载逻辑文件,执行(6);若INITN=1,即为高,则说明加载过程没有CRC校验错误,则加载一个字节后执行(5);
(5)检测数据是否加载完毕,若是,则检测DONE信号,若DONE=0,则说明加载失败,执行(6),DONE=1则加载成功,执行(7);否则执行(4);
(6)检测加载次数是否小于等于事先设定的值,若是,则执行(2);否则,结束流程;
(7)送出120个时钟,流程结束。
通过上面的方法就可以实现FPGA的上电即用和远程升级,使嵌入式系统的设计具有更大的灵活性。
Claims (3)
1.一种实现FPGA上电即用和远程升级的装置,包括FPGA芯片,其特征在于,还包括一个与CPU及FPGA芯片相连的缓冲电路,用于保证与该电路相连的FPGA芯片的引脚的电平在上电后一直为高,所述FPGA芯片内嵌有闪存;
当所述FPGA芯片采用Lattice的LFXP系列器件时,所述FPGA芯片的CFG和PROGRAMN引脚的电平在上电后一直为高。
2.如权利要求1所述的实现FPGA上电即用和远程升级的装置,其特征在于,若系统中的CPU I/O引脚匮乏,则所述FPGA芯片通过锁存器与CPU连接。
3.如权利要求1或2所述的实现FPGA上电即用和远程升级的装置,其特征在于,若系统中的CPU I/O引脚匮乏,则所述FPGA芯片通过复杂的可编程逻辑器件CPLD的寄存器与CPU连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100677882A CN101604244B (zh) | 2008-06-13 | 2008-06-13 | 一种实现fpga上电即用和远程升级的装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100677882A CN101604244B (zh) | 2008-06-13 | 2008-06-13 | 一种实现fpga上电即用和远程升级的装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101604244A CN101604244A (zh) | 2009-12-16 |
CN101604244B true CN101604244B (zh) | 2012-11-28 |
Family
ID=41469986
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100677882A Expired - Fee Related CN101604244B (zh) | 2008-06-13 | 2008-06-13 | 一种实现fpga上电即用和远程升级的装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101604244B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102298959B (zh) * | 2010-06-24 | 2015-10-21 | 中兴通讯股份有限公司 | 可编程逻辑器件及其访问方法 |
CN102043747B (zh) * | 2010-12-17 | 2012-07-18 | 浙江大学 | Jtag下载方式下fpga逻辑代码的下载方法 |
CN102567054B (zh) * | 2011-12-22 | 2015-05-20 | 深圳市大富科技股份有限公司 | 双塔放大器的控制方法及相应的装置 |
CN103617056B (zh) * | 2013-11-25 | 2017-02-01 | 广东威创视讯科技股份有限公司 | Fpga逻辑代码的在线升级方法和装置 |
CN104881286B (zh) * | 2015-05-28 | 2018-03-20 | 烽火通信科技股份有限公司 | 可编程器件配置系统及方法 |
CN104965743B (zh) * | 2015-07-10 | 2018-12-07 | 许继电气股份有限公司 | 一种mmc子模块软件程序在线升级方法、系统及mmc子模块 |
CN107766065A (zh) * | 2016-08-19 | 2018-03-06 | 西安中车永电捷通电气有限公司 | Fpga芯片的软件升级方法及系统 |
CN107766251B (zh) * | 2017-11-08 | 2021-02-02 | 苏州浪潮智能科技有限公司 | 加载image的检测方法、系统、设备及可读存储介质 |
CN107819883A (zh) * | 2017-12-13 | 2018-03-20 | 天津光电通信技术有限公司 | 一种多信号处理设备及其对fpga程序的远程升级方法 |
CN110069366B (zh) * | 2018-01-24 | 2023-09-26 | 阿里巴巴集团控股有限公司 | 一种重加载方法、装置及服务器 |
CN110618827A (zh) * | 2019-08-26 | 2019-12-27 | 国网河南省电力公司洛阳供电公司 | 一种内置flash的fpga远程升级方法 |
CN112702065B (zh) * | 2020-12-18 | 2021-10-08 | 广东高云半导体科技股份有限公司 | Fpga码流数据校验方法及装置 |
CN112698887B (zh) * | 2021-01-14 | 2023-02-28 | 成都壹石新科信息技术有限公司 | 具有隔离功能的fpga在线配置装置及方法 |
CN114706604A (zh) * | 2022-06-07 | 2022-07-05 | 杭州加速科技有限公司 | 一种fpga救援方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1883369A (zh) * | 2005-06-21 | 2006-12-27 | 奥林巴斯医疗株式会社 | 电子内窥镜装置 |
CN1983180A (zh) * | 2005-04-29 | 2007-06-20 | 美国凹凸微系有限公司 | 一种用于现场可编程门阵列位文件升级的系统及方法 |
CN1987835A (zh) * | 2005-12-22 | 2007-06-27 | 上海贝尔阿尔卡特股份有限公司 | 实现多个fpga映像文件串行下载的系统及其相关计算机 |
CN101000550A (zh) * | 2006-12-13 | 2007-07-18 | 青岛大学 | 一种嵌入式系统远程在线再配置方法 |
CN101165652A (zh) * | 2006-10-18 | 2008-04-23 | 中兴通讯股份有限公司 | 一种用cpu同时加载多片fpga的方法 |
-
2008
- 2008-06-13 CN CN2008100677882A patent/CN101604244B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1983180A (zh) * | 2005-04-29 | 2007-06-20 | 美国凹凸微系有限公司 | 一种用于现场可编程门阵列位文件升级的系统及方法 |
CN1883369A (zh) * | 2005-06-21 | 2006-12-27 | 奥林巴斯医疗株式会社 | 电子内窥镜装置 |
CN1987835A (zh) * | 2005-12-22 | 2007-06-27 | 上海贝尔阿尔卡特股份有限公司 | 实现多个fpga映像文件串行下载的系统及其相关计算机 |
CN101165652A (zh) * | 2006-10-18 | 2008-04-23 | 中兴通讯股份有限公司 | 一种用cpu同时加载多片fpga的方法 |
CN101000550A (zh) * | 2006-12-13 | 2007-07-18 | 青岛大学 | 一种嵌入式系统远程在线再配置方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101604244A (zh) | 2009-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101604244B (zh) | 一种实现fpga上电即用和远程升级的装置及方法 | |
CN101621293B (zh) | Jtag设备及隔离电路实现jtag数据下载的方法 | |
CN102999350B (zh) | 一种数字信号处理平台中fpga程序升级在线下载方法 | |
CN108319526B (zh) | 基于片上嵌入式微系统及其内部fpga资源内建自测试方法 | |
US10184983B2 (en) | Interface independent test boot method and apparatus using automatic test equipment | |
CN100498801C (zh) | 一种组合式现场可编程门阵列验证装置 | |
KR20110124617A (ko) | 시스템-온-칩 및 그것의 디버깅 방법 | |
CN106201590B (zh) | 一种fpga配置文件加载方法和系统 | |
CN100440805C (zh) | 一种atca中jtag器件远程维护的方法及系统 | |
CN112463243B (zh) | 基于边界扫描的在线级联加载固件系统及其方法 | |
CN102736938A (zh) | Fpga配置程序的烧写方法 | |
CN102214132A (zh) | 一种调试龙芯cpu和南北桥芯片的方法和装置 | |
CN112214345B (zh) | 一种基于多重加载的多fpga软件烧写故障恢复方法 | |
CN108664264A (zh) | 一种基于cpu通过jtag方式远程更新fpga的装置和方法 | |
CN103376340A (zh) | 一种转接板、多平台串行测试系统及方法 | |
CN103927279A (zh) | Fpga配置方法及系统、处理器 | |
CN109992555A (zh) | 一种供多路服务器共用的管理板卡 | |
US20140215123A1 (en) | Controller-Opaque Communication with Non-Volatile Memory Devices | |
CN101788646B (zh) | Fpga配置器件的ate测试方法 | |
US7830172B1 (en) | Accessing user registers in an integrated circuit | |
EP3380854A1 (en) | Scan logic for circuit designs with latches and flip-flops | |
CN109753394B (zh) | 一种实时调试固件配置信息的电路及方法 | |
CN109684152A (zh) | 一种risc-v处理器指令下载方法及其装置 | |
CN107506206A (zh) | 一种抗辐照反熔丝prom对sram型fpga的加载电路 | |
CN100543681C (zh) | 一种可编程器件升级的方法及装置 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121128 Termination date: 20170613 |