CN108334362B - 一种fpga芯片的升级方法、装置及存储设备 - Google Patents
一种fpga芯片的升级方法、装置及存储设备 Download PDFInfo
- Publication number
- CN108334362B CN108334362B CN201710704850.3A CN201710704850A CN108334362B CN 108334362 B CN108334362 B CN 108334362B CN 201710704850 A CN201710704850 A CN 201710704850A CN 108334362 B CN108334362 B CN 108334362B
- Authority
- CN
- China
- Prior art keywords
- data
- fpga
- flash
- upgrading
- programming
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000004590 computer program Methods 0.000 claims description 5
- 230000002093 peripheral effect Effects 0.000 claims description 4
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
- Logic Circuits (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种FPGA芯片的升级方法、装置及存储设备,所述方法包括:读取存储装置中用于升级的编程数据文件,计算数据量大小,确定升级数据占用FLASH中的扇区数N;通过拉低FPGA的编程引脚PROG_B的信号,控制FPGA处于通过升级接口对FLASH进行擦除和读写操作的高阻状态;通过从0地址开始擦除FLASH中N个扇区,控制从0地址开始写入所有编程数据;获取FLASH读出的数据并与编程数据文件比较,当一致时校验通过,拉高编程引脚PROG_B的信号,控制FPGA处于工作状态。本发明不需要通过电脑即可升级FPGA功能,并可以保留FLASH中的用户数据。
Description
技术领域
本发明涉及电子科学与技术领域领域,具体涉及一种FPGA芯片的升级方法、装置及存储设备。
背景技术
FPGA是英文Field-Programmable Gate Array的缩写,即现场可编程门阵列,FPGA内部包含大量的逻辑单元、存储单元、功能模块、内部连线等硬件资源,设计者可以根据需要来设计这些资源的连接方式,让FPGA实现想要的逻辑功能,具体来说,是通过向内部静态存储单元(RAM)加载编程数据来实现的,存储在RAM中的值决定了内部硬件资源的连接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。FPGA下电之后,内部资源的连接即刻消失,再次上电时,需要重新加载保存在外部FLASH(闪速存储器)里面的编程数据,因此,改变FLASH中的编程数据即可改变或升级FPGA的功能。
如图1所示,实际应用中,设计者通过下载器连接电脑和FPGA下载端口,然后运行电脑烧录工具软件,把保存在电脑里的编程数据文件通过FPGA写入FLASH中,但是这种升级方法存在两个缺点:一是升级需要电脑,现场应用有时不大方便;二是升级过程会擦除整片FLASH内部的数据,导致用户数据无法保留。
因此,现有技术还有待于改进和发展。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种FPGA芯片的升级方法、装置及存储设备,旨在简化FPGA芯片的升级过程,即不需要通过电脑即可升级FPGA功能,并可以保留FLASH中的用户数据,方便用户对FPGA芯片进行升级。
本发明解决技术问题所采用的技术方案如下:
一种FPGA芯片的升级方法,其中,所述升级方法包括以下步骤:
步骤A:读取存储装置中用于升级的编程数据文件,计算数据量大小,确定升级数据占用FLASH中的扇区数N;
步骤B:通过拉低FPGA的编程引脚PROG_B的信号,控制FPGA处于通过升级接口对FLASH进行擦除和读写操作的高阻状态;
步骤C:通过从0地址开始擦除FLASH中N个扇区,控制从0地址开始写入所有编程数据;
步骤D:获取FLASH读出的数据并与编程数据文件比较,当一致时校验通过,拉高编程引脚PROG_B的信号,控制FPGA处于工作状态。
所述的FPGA芯片的升级方法,其中,所述存储装置包括U盘和硬盘。
所述的FPGA芯片的升级方法,其中,所述步骤A中的1个扇区大小为4KB,扇区数N等于数据总量除以4KB,向上取整数。
所述的FPGA芯片的升级方法,其中,所述步骤A具体包括:
步骤A1:读取U盘或者硬盘中用于升级的编程数据文件,并计算数据量大小;
步骤A2:根据计算得到的数据量大小,确定升级数据占用FLASH中的扇区数N。
所述的FPGA芯片的升级方法,其中,所述步骤B具体包括:
步骤B1:控制拉低FPGA的编程引脚PROG_B的信号,使FPGA所有引脚进入高阻状态;
步骤B2:当FPGA的编程引脚PROG_B进入低电平时,FLASH存储器不受FPGA电气的影响,通过升级接口对FLASH进行擦除和读写操作。
所述的FPGA芯片的升级方法,其中,所述步骤C具体包括:
步骤C1:从0地址开始擦除FLASH中N个扇区,N个扇区以内为编程数据用于加载FPGA,N个扇区以外为用户数据,避免擦除用户数据,擦除方式为扇区擦除;
步骤C2:当N个扇区擦除完成后,控制从0地址开始写入所有编程数据。
所述的FPGA芯片的升级方法,其中,所所述步骤D具体包括:
步骤D1:FLASH读取数据,获取FLASH读出的数据并与编程数据文件比较;
步骤D2:当FLASH读出的数据并与编程数据文件比较后一致时,通过拉高编程引脚PROG_B的信号,控制FPGA处于工作状态。
所述的FPGA芯片的升级方法,其中,所述步骤D还包括:
当FLASH读出的数据并与编程数据文件比较后不一致时,重复执行步骤A-步骤C,直到编程引脚PROG_B保持高电平使FPGA处于工作状态为止。
一种FPGA芯片的升级装置,其中,所述升级装置包括:
FPGA芯片,用于安装所述FPGA芯片的FPGA电路板,与所述FPGA芯片连接的FLASH,与所述FPGA芯片连接的电脑下载端口,分别与所述FPGA芯片和所述FLASH连接的升级接口,通过升级电缆与所述升级接口连接的升级电路板;
所述升级电路板包括ARM处理器及其外围元件、USB接口以及第二升级接口;用于升级所需的编程数据文件保存在U盘或者硬盘中,升级时将U盘或者硬盘插入升级电路板中的USB接口,升级电缆连接升级电路板和FPGA电路板中的升级接口。
一种存储设备,其中,所述存储设备存储有计算机程序,所述计算机程序能够被执行以实现所述的FPGA芯片的升级方法。
本发明公开了一种FPGA芯片的升级方法、装置及存储设备,所述方法包括:读取存储装置中用于升级的编程数据文件,计算数据量大小,确定升级数据占用FLASH中的扇区数N;通过拉低FPGA的编程引脚PROG_B的信号,控制FPGA处于通过升级接口对FLASH进行擦除和读写操作的高阻状态;通过从0地址开始擦除FLASH中N个扇区,控制从0地址开始写入所有编程数据;获取FLASH读出的数据并与编程数据文件比较,当一致时校验通过,拉高编程引脚PROG_B的信号,控制FPGA处于工作状态。本发明不需要通过电脑即可升级FPGA功能,并可以保留FLASH中的用户数据。
附图说明
图1是现有技术中FPGA芯片升级过程的流程图。
图2是本发明所述的FPGA芯片的升级方法的较佳实施例的流程图。
图3是本发明所述的FPGA芯片的升级装置的功能原理框图。
图4是本发明所述的FPGA芯片的升级装置中升级电路板较佳实施例的结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明较佳实施例所述的FPGA芯片的升级方法,如图1所示,一种FPGA芯片的升级方法,包括如下步骤:
步骤S100、读取存储装置中用于升级的编程数据文件,计算数据量大小,确定升级数据占用FLASH中的扇区数N。
优选地,所述存储装置包括U盘和硬盘。且所述步骤S100中的1个扇区大小为4KB(4096字节),扇区数N等于数据总量除以4KB,向上取整数;例如,如果数据总量为464868B,那么464868/4096=113.5,则N取114。
具体实施时,所述步骤S100具体包括以下步骤:
步骤S101、读取U盘或者硬盘中用于升级的编程数据文件,并计算数据量大小;
步骤S102、根据计算得到的数据量大小,确定升级数据占用FLASH中的扇区数N。
步骤S200、通过拉低FPGA的编程引脚PROG_B的信号,控制FPGA处于通过升级接口对FLASH进行擦除和读写操作的高阻状态。
具体实施时,所述步骤S200具体包括以下步骤:
步骤S201、控制拉低FPGA的编程引脚PROG_B的信号,使FPGA所有引脚进入高阻状态;
步骤S202、当FPGA的编程引脚PROG_B进入低电平时,FLASH存储器不受FPGA电气的影响,通过升级接口对FLASH进行擦除和读写操作。
本发明中,需要通过拉低PROG_B的信号,使FPGA处于高阻状态,当FPGA处于高阻状态时,使得通过升级接口可以对FLASH进行擦除和读写操作。
步骤S300、通过从0地址开始擦除FLASH中N个扇区,控制从0地址开始写入所有编程数据。
具体实施时,所述步骤S300具体包括以下步骤:
步骤S301、从0地址开始擦除FLASH中N个扇区,N个扇区以内为编程数据用于加载FPGA,N个扇区以外为用户数据,避免擦除用户数据,擦除方式为扇区擦除;
步骤S302、当N个扇区擦除完成后,控制从0地址开始写入所有编程数据。
具体地,从0地址开始擦除FLASH中N个扇区,FLASH的擦除单位有整片擦除和扇区擦除,本发明使用扇区擦除,从0地址开始计,N个扇区以内为编程数据,用于加载FPGA,N个扇区以外为用户数据,使用本发明装置升级过程中不会擦除用户数据;接着从0地址开始写入所有编程数据。
步骤S400、获取FLASH读出的数据并与编程数据文件比较,当一致时校验通过,拉高编程引脚PROG_B的信号,控制FPGA处于工作状态。
具体实施时,所述步骤S400具体包括以下步骤:
步骤S401、FLASH读取数据,获取FLASH读出的数据并与编程数据文件比较;
步骤S402、当FLASH读出的数据并与编程数据文件比较后一致时,通过拉高编程引脚PROG_B的信号,控制FPGA处于工作状态。
具体地,从FLASH读出数据并与编程数据文件比较,如果一致校验通过,拉高PROG_B的信号,使FPGA处于工作状态。
进一步地,所述步骤S400还包括:当FLASH读出的数据并与编程数据文件比较后不一致时,重复执行步骤S100-步骤S300,直到编程引脚PROG_B保持高电平使FPGA处于工作状态为止。
本发明还提供了一种FPGA芯片的升级装置,如图3 所示,所述升级装置包括:FPGA芯片,用于安装所述FPGA芯片的FPGA电路板,与所述FPGA芯片连接的FLASH,与所述FPGA芯片连接的电脑下载端口,分别与所述FPGA芯片和所述FLASH连接的升级接口,通过升级电缆与所述升级接口连接的升级电路板;
所述升级电路板包括ARM处理器及其外围元件、USB接口以及第二升级接口;用于升级所需的编程数据文件保存在U盘或者硬盘中,升级时将U盘或者硬盘插入升级电路板中的USB接口,升级电缆连接升级电路板和FPGA电路板中的升级接口。
具体地,本发明的升级装置为在常规FPGA电路板基础上增加一块升级电路板和一个升级接口,接口包含FLASH的数据信号和读写控制信号以及FPGA的编程引脚PROG_B,当FPGA处于工作状态时PROG_B必须保持高电平,反之,当设置PROG_B为低电平时,FPGA所有引脚处于“高阻”状态,此时FPGA对FLASH存储器电气上没有任何影响,即可以通过升级接口对FLASH进行擦除和读写等操作。
如图4 所示,图4 是本发明升级电路板的实施例示意图,包含一颗ARM处理器及其外围元件201、USB接口202、第二升级接口203;升级所需的编程数据文件保存在U盘或者硬盘里,升级时将U盘或者硬盘插入升级电路板中的USB接口,升级电缆连接升级电路板和FPGA电路板中的升级接口。
本发明还提供一种存储装置,所述存储装置存储有计算机程序,所述计算机程序能够被执行以实现所述的FPGA芯片的升级方法。
综上所述,本发明提供一种FPGA芯片的升级方法、装置及存储设备,所述方法包括:读取存储装置中用于升级的编程数据文件,计算数据量大小,确定升级数据占用FLASH中的扇区数N;通过拉低FPGA的编程引脚PROG_B的信号,控制FPGA处于通过升级接口对FLASH进行擦除和读写操作的高阻状态;通过从0地址开始擦除FLASH中N个扇区,控制从0地址开始写入所有编程数据;获取FLASH读出的数据并与编程数据文件比较,当一致时校验通过,拉高编程引脚PROG_B的信号,控制FPGA处于工作状态。本发明不需要通过电脑即可升级FPGA功能,并可以保留FLASH中的用户数据。
当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来完成,所述的程序可存储于一计算机可读取的存储介质中,该程序在执行时可包括如上述各方法实施例的流程。其中所述的存储介质可为存储器、磁碟、光盘等。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (8)
1.一种FPGA芯片的升级方法,其特征在于,所述升级方法包括以下步骤:
步骤A:读取存储装置中用于升级的编程数据文件,计算数据量大小,确定升级数据占用FLASH中的扇区数N;
步骤B:通过拉低FPGA的编程引脚PROG_B的信号,控制FPGA处于通过升级接口对FLASH进行擦除和读写操作的高阻状态;
步骤C:通过从0地址开始擦除FLASH中N个扇区,控制从0地址开始写入所有编程数据;
步骤D:获取FLASH读出的数据并与编程数据文件比较,当一致时校验通过,拉高编程引脚PROG_B的信号,控制FPGA处于工作状态;
所述步骤D具体包括:
步骤D1:FLASH读取数据,获取FLASH读出的数据并与编程数据文件比较;
步骤D2:当FLASH读出的数据并与编程数据文件比较后一致时,通过拉高编程引脚PROG_B的信号,控制FPGA处于工作状态;
当FLASH读出的数据并与编程数据文件比较后不一致时,重复执行步骤A-步骤C,直到编程引脚PROG_B保持高电平使FPGA处于工作状态为止。
2.根据权利要求1所述的FPGA芯片的升级方法,其特征在于,所述存储装置包括U盘和硬盘。
3.根据权利要求1所述的FPGA芯片的升级方法,其特征在于,所述步骤A中的1个扇区大小为4KB,扇区数N等于数据总量除以4KB,向上取整数。
4.根据权利要求2所述的FPGA芯片的升级方法,其特征在于,
所述步骤A具体包括:
步骤A1:读取U盘或者硬盘中用于升级的编程数据文件,并计算数据量大小;
步骤A2:根据计算得到的数据量大小,确定升级数据占用FLASH中的扇区数N。
5.根据权利要求4所述的FPGA芯片的升级方法,其特征在于,
所述步骤B具体包括:
步骤B1:控制拉低FPGA的编程引脚PROG_B的信号,使FPGA所有引脚进入高阻状态;
步骤B2:当FPGA的编程引脚PROG_B进入低电平时,FLASH存储器不受FPGA电气的影响,通过升级接口对FLASH进行擦除和读写操作。
6.根据权利要求5所述的FPGA芯片的升级方法,其特征在于,
所述步骤C具体包括:
步骤C1:从0地址开始擦除FLASH中N个扇区,N个扇区以内为编程数据用于加载FPGA,N个扇区以外为用户数据,避免擦除用户数据,擦除方式为扇区擦除;
步骤C2:当N个扇区擦除完成后,控制从0地址开始写入所有编程数据。
7.一种FPGA芯片的升级装置,其特征在于,所述升级装置包括:
FPGA芯片,用于安装所述FPGA芯片的FPGA电路板,与所述FPGA芯片连接的FLASH,与所述FPGA芯片连接的电脑下载端口,分别与所述FPGA芯片和所述FLASH连接的升级接口,通过升级电缆与所述升级接口连接的升级电路板;
所述升级电路板包括ARM处理器及其外围元件、USB接口以及第二升级接口;用于升级所需的编程数据文件保存在U盘或者硬盘中,升级时将U盘或者硬盘插入升级电路板中的USB接口,升级电缆连接升级电路板和FPGA电路板中的升级接口;
FLASH读取数据,获取FLASH读出的数据并与编程数据文件比较;
当FLASH读出的数据并与编程数据文件比较后一致时,通过拉高编程引脚PROG_B的信号,控制FPGA处于工作状态;
当FLASH读出的数据并与编程数据文件比较后不一致时,重复读取和写入操作,直到编程引脚PROG_B保持高电平使FPGA处于工作状态为止。
8.一种存储设备,其特征在于,所述存储设备存储有计算机程序,所述计算机程序能够被执行以实现如权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710704850.3A CN108334362B (zh) | 2017-08-17 | 2017-08-17 | 一种fpga芯片的升级方法、装置及存储设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710704850.3A CN108334362B (zh) | 2017-08-17 | 2017-08-17 | 一种fpga芯片的升级方法、装置及存储设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108334362A CN108334362A (zh) | 2018-07-27 |
CN108334362B true CN108334362B (zh) | 2021-07-20 |
Family
ID=62922419
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710704850.3A Active CN108334362B (zh) | 2017-08-17 | 2017-08-17 | 一种fpga芯片的升级方法、装置及存储设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108334362B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111813432A (zh) * | 2020-06-01 | 2020-10-23 | 大唐微电子技术有限公司 | 一种fpga配置升级方法和fpga平台 |
CN112000360A (zh) * | 2020-08-25 | 2020-11-27 | 山东超越数控电子股份有限公司 | 一种基于动态局部重构的fpga在线升级方法 |
CN113110858B (zh) * | 2021-04-27 | 2023-02-17 | 云南电网有限责任公司电力科学研究院 | 一种基于pcram的fpga系统在线升级方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101545933B (zh) * | 2009-04-28 | 2012-01-11 | 国网电力科学研究院 | 用于雷电探测的远程智能升级装置及其实现方法 |
CN102662688B (zh) * | 2012-03-12 | 2015-09-23 | 深圳开立生物医疗科技股份有限公司 | 一种Nor flash更新方法及装置 |
CN102750175A (zh) * | 2012-07-10 | 2012-10-24 | 中国船舶重工集团公司第七二四研究所 | 基于Nand Flash多版本程序的FPGA加载技术 |
CN103631611A (zh) * | 2012-08-23 | 2014-03-12 | 杭州海康威视数字技术股份有限公司 | 对光端机进行升级的方法及该设备 |
CN104063257B (zh) * | 2014-07-23 | 2017-06-27 | 武汉邮电科学研究院 | 一种fpga自动加载系统及方法 |
CN105259891A (zh) * | 2015-09-29 | 2016-01-20 | 中航锂电(洛阳)有限公司 | 一种基于can总线的电池管理系统升级方法 |
-
2017
- 2017-08-17 CN CN201710704850.3A patent/CN108334362B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108334362A (zh) | 2018-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1938200B1 (en) | Initialization of flash storage via an embedded controller | |
KR101555210B1 (ko) | 휴대용 단말기에서 내장 대용량 메모리를 이용한 컨텐츠 다운로드 방법 및 장치 | |
CN108334362B (zh) | 一种fpga芯片的升级方法、装置及存储设备 | |
US8601464B2 (en) | Memory online update system and method | |
CN104123153A (zh) | 用于使用usb升级固件的装置与方法 | |
US20060212665A1 (en) | System and method for online firmware update and on-screen-display parameters modification | |
US10475516B2 (en) | Data storage device and data erasing method wherein after erasing process, predetermined value is written to indicate completion of said erasing method | |
CN108037938B (zh) | 一种eMMC的开卡方法 | |
CN105718281A (zh) | 一种触摸屏固件升级方法及装置 | |
JP6157637B2 (ja) | リードライトメモリデバイスのデータイメージ中の仮想境界コード | |
US20160179388A1 (en) | Method and apparatus for providing programmable nvm interface using sequencers | |
US9836417B2 (en) | Bridge configuration in computing devices | |
CN109460240A (zh) | 一种固件烧写组件及固件烧写方法、系统和存储介质 | |
KR20200005220A (ko) | 데이터 저장 장치 및 동작 방법, 이를 위한 펌웨어 제공 서버 | |
CN112925569A (zh) | 一种固件数据处理方法、装置、设备及存储介质 | |
TWI514281B (zh) | 具spi介面的sata儲存裝置、應用該sata儲存裝置之開機方法及基本輸入輸出系統程式碼更新方法 | |
CN108694052B (zh) | 一种固件升级方法、固件升级装置及固件升级系统 | |
CN109426511B (zh) | 软核更新方法和系统 | |
WO2000067132A1 (en) | Combination ata/linear flash memory device | |
CN110825421B (zh) | 一种固件升级方法、系统及可读存储介质 | |
US20100017554A1 (en) | System and method for managing a plugged device | |
CN116954674A (zh) | eMMC固件升级方法、固件升级设备和存储装置 | |
CN110515665B (zh) | 一种处理器系统的启动方法、系统及装置 | |
CN111338771B (zh) | 引导程序切换处理方法及装置、计算机设备、介质 | |
US9268554B2 (en) | Controlling method, memory controller, and data transmission system |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |