CN109656593B - 基于zynq芯片实现fpga程序远程升级的方法 - Google Patents

基于zynq芯片实现fpga程序远程升级的方法 Download PDF

Info

Publication number
CN109656593B
CN109656593B CN201811495151.3A CN201811495151A CN109656593B CN 109656593 B CN109656593 B CN 109656593B CN 201811495151 A CN201811495151 A CN 201811495151A CN 109656593 B CN109656593 B CN 109656593B
Authority
CN
China
Prior art keywords
zynq
fpga
chip
program
selectmap
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
CN201811495151.3A
Other languages
English (en)
Other versions
CN109656593A (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.)
Tianjin Optical Electrical Communication Technology Co Ltd
Original Assignee
Tianjin Optical Electrical Communication 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 Tianjin Optical Electrical Communication Technology Co Ltd filed Critical Tianjin Optical Electrical Communication Technology Co Ltd
Priority to CN201811495151.3A priority Critical patent/CN109656593B/zh
Publication of CN109656593A publication Critical patent/CN109656593A/zh
Application granted granted Critical
Publication of CN109656593B publication Critical patent/CN109656593B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Abstract

一种基于ZYNQ芯片实现FPGA程序远程升级的方法,涉及到的主要器件有zynq、FPGA、QSPI存储芯片、EMMC存储芯片、DDR3内存芯片。当程序需要升级时,PC与ZYNQ通过以太网连接,把程序从PC端传输到ZYNQ外配的EMMC存储芯片中进行存储,每次设备上电时,ZYNQ的PS中的应用程序把EMMC存储芯片中的FPGA程序搬移到ZYNQ的PL部分,PL中编写了SelectMap的传输逻辑,可以把程序从PL部分通过SelectMap方法传输给FPGA供其启动。从EMMC存储芯片到PL中的数据搬移是完成物理地址到虚拟地址的映射后在ZYNQ外配的DDR3中实现的。本方法可以实现设备的远程升级。

Description

基于ZYNQ芯片实现FPGA程序远程升级的方法
技术领域
本发明涉及一种基于ZYNQ芯片实现FPGA程序远程升级的方法,适用于FPGA进行高速数据处理,ZYNQ作为主控情况下,对FPGA进行远程程序更新及正常启动配置。
背景技术
随着技术的发展,需要对设备的原有程序进行更新升级来增加新的功能或者修复bug。FPGA器件通常有3种程序下载方式:JTAG方式,主动配置方式,被动配置方式。JTAG通常用于调试。主动配置方式为FPGA每次上电时作为控制器,由FPGA器件引导配置操作过程,它控制着外部存储器和初始化过程,向存储器件主动读取数据。这种配置方式需要占用FPGA内部资源实现配置逻辑,就会挤占实现数据处理的资源;并且需要单独的外置存储器,就会占用更多的PCB空间。更新程序需要专用的烧写器与器件直连,不利于设备的高效维护。
被动配置方式则是通过控制器控制,把FPGA当做存储器,把数据写入FPGA中。控制器件可以是通常的ARM架构的处理器,如stm32,也可以使用异构处理器,如ZYNQ。使用纯ARM处理器,如果不想占用FPGA资源,则需要把传输配置逻辑全部在处理器的应用层程序中完成,该方法虽然也可实现远程升级,但是完全的应用层传输效率较低。
发明内容
鉴于现有技术的状况及存在的不足,本发明提供了一种被动配置方式,即基于ZYNQ芯片实现FPGA程序远程升级的方法,用C++语言描述的基于异构ZYNQ芯片的SelectMap方法实现FPGA程序的远程升级。
本发明为实现上述目的,所采用的技术手段是:一种基于ZYNQ芯片实现FPGA程序远程升级的方法,其特征在于,本方法利用Xilinx ZYNQ主控芯片作为运行平台,外围芯片包括Xilinx FPGA、QSPI存储芯片、EMMC存储芯片,DDR3内存芯片;QSPI存储芯片中存储启动文件,包括uboot、设备树和uImage,EMMC存储芯片中设有linux操作系统,ZYNQ与FPGA通过SelectMap连接,ZYNQ与上位机通过以太网连接;当需要更新FPGA程序时,上位机把程序文件通过网络通信的方式传给ZYNQ并替换掉原来存储在EMMC存储芯片中的旧版本FPGA程序,在每次设备上电时,ZYNQ芯片PS中的应用程序把EMMC存储芯片中的FPGA程序搬移到ZYNQ的PL部分,PL中编写了SelectMap的传输逻辑,可以把程序从PL部分的数据通过SelectMap方法传输给FPGA供其启动,这样便实现了FPGA的远程升级;
SelectMap的控制线和数据线都与ZYNQ的GPIO相连,在ZYNQ的PL部分定义多个标志寄存器及控制寄存器,并通过编程实现SelectMap的传输过程;定义的寄存器有数据长度寄存器,PS与PL的握手状态寄存器,存储升级芯片的标识寄存器,状态重置寄存器;SelectMap的传输过程为program_b拉低再拉高,等待init_b的上升沿,然后先拉低rdwr_b,再拉低csi_b,然后cclk和数据匹配发送,具体的数据发送过程是由ps和pl交互完成的,ps每次从EMMC存储芯片中读取500个32bit的寄存器,发送给pl,待pl配置完成后ps再读下一次,直至配置完成;
ZYNQ芯片PS中嵌入式程序设计思路为将PL中定义的多个寄存器的物理地址映射到虚拟内存,将EMMC存储芯片中存储的程序文件映射到虚拟内存,通过多种标志及控制寄存器实现数据流的控制;文件传输实际是首先将映射后的文件数据赋值到PL映射后的数据传输寄存器中,然后通过PL中的SelectMap逻辑实现数据从PL中传输到FPGA中;从EMMC存储芯片到PL中的数据搬移是完成物理地址到虚拟地址的映射后在ZYNQ外配的DDR3中实现的。
本发明的有益效果是:ZYNQ芯片的PS部分使用基于linux操作系统,使用C++语言进行程序控制,PL部分实现SelectMap的传输逻辑,通过内存映射的方法进行PS到PL的数据搬移。
本发明不需要专用的烧写工具,省去一个外置的存储器件,节省了成本及PCB空间,节省了FPGA资源,不需要与设备直接接触,只要设备在网络环境中便可以对其进行更新升级。
附图说明
图1为本发明的电路连接框图;
图2为本发明ZYNQ的PS中SelectMap控制流程图。
具体实施方式
如图1和图2所示,一种基于ZYNQ芯片实现FPGA程序远程升级的方法,本方法利用Xilinx ZYNQ主控芯片作为运行平台,外配的存储芯片有QSPI存储芯片和EMMC存储芯片,QSPI存储芯片中存储uboot和设备树等启动文件,EMMC存储芯片中为linux操作系统,ZYNQ与FPGA通过SelectMap连接,ZYNQ与上位机通过网线连接。
当需要更新FPGA程序时,上位机把程序文件传给ZYNQ并存储在EMMC存储芯片中,ZYNQ通过程序控制在每次设备上电时把FPGA程序文件从EMMC存储芯片中读取并通过SelectMap方式传递给FPGA,这样便实现了对FPGA程序的远程升级。
SelectMap的控制线和数据线都与ZYNQ的GPIO相连,在ZYNQ的PL部分定义多个标志寄存器及控制寄存器,并通过编程实现SelectMap的传输过程。定义的寄存器有数据长度寄存器,PS与PL的握手状态寄存器,确定何时可以向PL发送数据,存储升级芯片的标识寄存器,状态重置寄存器等。SelectMap的传输过程为program_b拉低再拉高,等待init_b的上升沿,然后先拉低rdwr_b,再拉低csi_b,然后cclk和数据匹配发送,具体的数据发送过程是由ps和pl交互完成的,ps每次从EMMC存储芯片中读取500个32bit的寄存器,发送给pl,待pl配置完成后ps再读下一次,直至配置完成。
ZYNQ的PS中嵌入式程序设计思路为将PL中定义的多个寄存器的物理地址映射到虚拟内存,将EMMC存储芯片中存储的程序文件映射到虚拟内存,通过多种标志及控制寄存器实现数据流的控制。文件传输实际是首先将映射后的文件数据赋值到PL映射后的数据传输寄存器中,然后通过PL中的SelectMap逻辑实现数据从PL中传输到FPGA中。

Claims (1)

1.一种基于ZYNQ芯片实现FPGA程序远程升级的方法,其特征在于,本方法利用XilinxZYNQ主控芯片作为运行平台,外围芯片包括Xilinx FPGA、QSPI存储芯片、EMMC存储芯片,DDR3内存芯片;QSPI存储芯片中存储启动文件,包括uboot、设备树和uImage,EMMC存储芯片中设有linux操作系统,ZYNQ与FPGA通过SelectMap连接,ZYNQ与上位机通过以太网连接;当需要更新FPGA程序时,上位机把程序文件通过网络通信的方式传给ZYNQ并替换掉原来存储在EMMC存储芯片中的旧版本FPGA程序,在每次设备上电时,ZYNQ芯片PS中的应用程序把EMMC存储芯片中的FPGA程序搬移到ZYNQ的PL部分,PL中编写了SelectMap的传输逻辑,可以把程序从PL部分的数据通过SelectMap方法传输给FPGA供其启动,这样便实现了FPGA的远程升级;
SelectMap的控制线和数据线都与ZYNQ的GPIO相连,在ZYNQ的PL部分定义多个标志寄存器及控制寄存器,并通过编程实现SelectMap的传输过程;定义的寄存器有数据长度寄存器,PS与PL的握手状态寄存器,存储升级芯片的标识寄存器,状态重置寄存器;SelectMap的传输过程为program_b拉低再拉高,等待init_b的上升沿,然后先拉低rdwr_b,再拉低csi_b,然后cclk和数据匹配发送,具体的数据发送过程是由PS和PL交互完成的,PS每次从EMMC存储芯片中读取500个32bit的寄存器,发送给PL,待PL配置完成后PS再读下一次,直至配置完成;
ZYNQ芯片PS中嵌入式程序设计思路为将PL中定义的多个寄存器的物理地址映射到虚拟内存,将EMMC存储芯片中存储的程序文件映射到虚拟内存,通过多种标志及控制寄存器实现数据流的控制;文件传输实际是首先将映射后的文件数据赋值到PL映射后的数据传输寄存器中,然后通过PL中的SelectMap逻辑实现数据从PL中传输到FPGA中;从EMMC存储芯片到PL中的数据搬移是完成物理地址到虚拟地址的映射后在ZYNQ外配的DDR3中实现的。
CN201811495151.3A 2018-12-07 2018-12-07 基于zynq芯片实现fpga程序远程升级的方法 Active CN109656593B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811495151.3A CN109656593B (zh) 2018-12-07 2018-12-07 基于zynq芯片实现fpga程序远程升级的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811495151.3A CN109656593B (zh) 2018-12-07 2018-12-07 基于zynq芯片实现fpga程序远程升级的方法

Publications (2)

Publication Number Publication Date
CN109656593A CN109656593A (zh) 2019-04-19
CN109656593B true CN109656593B (zh) 2022-04-15

Family

ID=66113005

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811495151.3A Active CN109656593B (zh) 2018-12-07 2018-12-07 基于zynq芯片实现fpga程序远程升级的方法

Country Status (1)

Country Link
CN (1) CN109656593B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110244276A (zh) * 2019-06-24 2019-09-17 成都航天科工微电子系统研究院有限公司 一种双基前视sar回波与运动参数数据同步录取方法及装置
CN110806889B (zh) * 2019-11-01 2023-05-26 中电凯杰科技有限公司 一种基于5g的zynq程序远程升级系统及升级方法
CN111142909B (zh) * 2019-12-26 2022-01-25 中国电子科技集团公司第五十八研究所 基于xc7z045芯片实现can网络远程升级的终端、方法和系统
CN111142950B (zh) * 2019-12-26 2022-08-12 中国电子科技集团公司第五十八研究所 使用jtag实现emmc启动操作系统的设备
CN111142914B (zh) * 2019-12-31 2021-05-28 南京中科晶上通信技术有限公司 一种基于zynq固件升级的方法及计算机可读存储介质
CN112015449B (zh) * 2020-08-24 2022-08-02 中国电子科技集团公司第五十八研究所 基于zlib压缩算法下的ZYNQ FPGA异构平台在线升级的方法
CN112231005B (zh) * 2020-10-19 2023-05-12 天津津航计算技术研究所 一种基于uboot管理fpga版本的方法
CN112631678B (zh) * 2020-12-25 2022-12-02 理工雷科电子(西安)有限公司 一种基于zynq的动态加载方法
CN114721695A (zh) * 2022-06-08 2022-07-08 成都航天通信设备有限责任公司 一种基于双fpga芯片的软件在线升级系统及方法
CN115857998B (zh) * 2023-02-10 2023-05-23 国仪量子(合肥)技术有限公司 基于zynq和fpga架构的升级方法、装置和介质
CN116088927B (zh) * 2023-04-10 2023-06-20 成都远望科技有限责任公司 一种基于zynq处理器配置fpga程序电路及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014089497A (ja) * 2012-10-29 2014-05-15 Mitsubishi Electric Corp 情報処理装置
CN107729091A (zh) * 2017-11-30 2018-02-23 天津光电通信技术有限公司 基于Zynq的嵌入式系统平台及Linux内核相关文件生成方法
CN107797816A (zh) * 2017-09-15 2018-03-13 西南电子技术研究所(中国电子科技集团公司第十研究所) Fpga程序在线更新电路
CN107918545A (zh) * 2017-12-13 2018-04-17 天津光电通信技术有限公司 一种基于zynq的远程升级系统及其实现方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014089497A (ja) * 2012-10-29 2014-05-15 Mitsubishi Electric Corp 情報処理装置
CN107797816A (zh) * 2017-09-15 2018-03-13 西南电子技术研究所(中国电子科技集团公司第十研究所) Fpga程序在线更新电路
CN107729091A (zh) * 2017-11-30 2018-02-23 天津光电通信技术有限公司 基于Zynq的嵌入式系统平台及Linux内核相关文件生成方法
CN107918545A (zh) * 2017-12-13 2018-04-17 天津光电通信技术有限公司 一种基于zynq的远程升级系统及其实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"星载可重构系统的设计与实现";王浩然;《中国优秀硕士学位论文全文数据库工程科技Ⅱ辑》;20141115;全文 *

Also Published As

Publication number Publication date
CN109656593A (zh) 2019-04-19

Similar Documents

Publication Publication Date Title
CN109656593B (zh) 基于zynq芯片实现fpga程序远程升级的方法
CN105573800B (zh) 一种基于zynq的单板或多板系统及在线更新方法
CN105159731B (zh) 一种fpga配置文件远程升级的装置
CN107977217B (zh) 在线加载xilinx-fpga多版本更新程序的方法
WO2021164170A1 (zh) 多路高速协议接口动态可重构系统及实现方法
WO2017041567A1 (zh) 基于软核处理器的fpga多镜像升级加载方法及装置
CN108415717B (zh) 一种zynq soc固件升级方法及升级装置
CN102053850A (zh) 一种在线升级fpga逻辑的方法
EP3200077B1 (en) Vehicle control device, reprogramming system
US7487344B2 (en) Implementing a microprocessor boot configuration prom within an FPGA
CN113010470B (zh) 边缘节点远程控制系统、方法、设备及存储介质
CN107690630B (zh) 计算设备中的桥配置
CN105320531A (zh) 一种基于MicroBlaze软核的FPGA软件在线升级方法
CN104156221A (zh) 芯片、修改芯片配置的方法及装置
CN108139916A (zh) 可编程逻辑设备的多阶段引导映像加载和配置
WO2016033941A1 (zh) Boot在线升级装置及方法
CN104077166A (zh) 基于fpga中ip核的epcs与epcq存储器在线升级方法
CN110175056A (zh) 一种异构平台远程动态加载多目标fpga的控制装置及控制方法
CN104461589A (zh) 单片机升级方法及升级系统
WO2016197883A1 (zh) 一种在线更新单片机程序的方法及系统
CN105278976A (zh) 一种fpga重构装置、系统及方法
US8458730B2 (en) Multi-level driver configuration
KR102304091B1 (ko) 자원 재구성을 위한 방법 및 디바이스
CN102298531B (zh) 在嵌入式系统中对闪存文件系统进行升级的方法
CN109426511A (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
GR01 Patent grant
GR01 Patent grant