CN110175056B - 一种异构平台远程动态加载多目标fpga的控制装置及控制方法 - Google Patents
一种异构平台远程动态加载多目标fpga的控制装置及控制方法 Download PDFInfo
- Publication number
- CN110175056B CN110175056B CN201910460780.0A CN201910460780A CN110175056B CN 110175056 B CN110175056 B CN 110175056B CN 201910460780 A CN201910460780 A CN 201910460780A CN 110175056 B CN110175056 B CN 110175056B
- Authority
- CN
- China
- Prior art keywords
- loading
- fpga
- control
- target fpga
- target
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种异构平台远程动态加载多目标FPGA的控制装置及控制方法,属于嵌入式系统通信领域。一种异构平台远程动态加载多目标FPGA的控制装置,包括主控器、闪存、加载控制FPGA和EEPROM;闪存用于存储加载目标FPGA的镜像文件;主控器用于向加载控制FPGA发送加载控制命令并从闪存中读取加载目标FPGA的镜像文件发送给加载控制FPGA;加载控制FPGA用于接收并执行加载控制命令,选择加载目标FPGA并产生该加载目标FPGA的被动加载时序,完成对加载目标FPGA的程序加载。本发明的异构平台远程动态加载多目标FPGA的控制方法具有加载操作简单、加载目标灵活、加载成功率高特点。
Description
技术领域
本发明属于嵌入式系统通信领域,尤其是一种异构平台远程动态加载多目标FPGA的控制装置及控制方法。
背景技术
在高性能信息处理平台中,许多功能刀片都会使用FPGA芯片进行高速接口设计,实现相关接口协议和数据转发功能,其中就涉及多个刀片内FPGA的程序加载。
目前,平台内一般采用一对一的主动加载方式,由于下载接口位于刀片侧面,因此,对平台内FPGA进行程序加载时需要插拔目标刀片的相邻槽位刀片,工序复杂、操作难度大、耗时长,并存在接插下载接口错误导致硬件损坏的风险,且不能实现在线升级,不利于后期对平台的远程维护和逻辑升级。
中国专利文件CN201010578746公开了一种单板及单板在线升级的方法,中国专利文件CN201210535152公开了一种卫星导航接收机FPGA快速加载方法、中国专利文件CN201710071858公开了远程升级现场可编程门阵列的系统及控制方法,这些技术方案主要是对单板内FPGA的加载、在线升级方法进行了研究,不支持多目标FPGA的加载;中国专利文件CN201620782164公开了一种集中式加载的中频信号处理模块,支持单板内多目标FPGA的加载,但对加载顺序有严格要求,不灵活,且没有解决加载失败的问题。
发明内容
本发明的目的在于克服上述现有技术的缺点,提供一种异构平台远程动态加载多目标FPGA的控制装置及控制方法。
为达到上述目的,本发明采用以下技术方案予以实现:
一种异构平台远程动态加载多目标FPGA的控制装置,包括主控器、闪存、加载控制FPGA和EEPROM;
闪存用于存储加载目标FPGA的镜像文件;
EEPROM用于存储加载控制FPGA的逻辑镜像文件;
主控器用于向加载控制FPGA发送加载控制命令,从闪存中读取加载目标FPGA的镜像文件,并发送给加载控制FPGA;
加载控制FPGA用于接收并执行加载控制命令,选择加载目标FPGA并产生该加载目标FPGA的被动加载时序,完成对加载目标FPGA的程序加载。
进一步的,加载控制FPGA包括总线接口模块、加载控制模块、镜像文件缓存模块和被动加载时序产生模块;
总线接口模块用于解析主控器执行的读写操作,实现对加载控制模块寄存器和镜像文件缓存模块的访问操作;
加载控制模块用于识别主控器的加载控制命令,进行选择加载目标FPGA和启动加载流程的操作,并输出控制信号给被动加载时序产生模块;
镜像缓存模块用于缓存主控器发送的加载目标FPGA镜像文件;
被动加载时序产生模块根据选择的加载目标FPGA产生对应的被动加载控制时序,然后从镜像缓存模块中实时取出加载目标FPGA镜像文件并进行格式转换,完成加载目标FPGA的加载。
一种异构平台远程动态加载多目标FPGA的控制装置的控制方法,包括以下步骤:
1)闪存存储加载目标FPGA的镜像文件;
2)主控器发送加载控制命令给加载控制FPGA,主控器从闪存中读取加载目标FPGA的镜像文件并发送给加载控制FPGA;
3)加载控制FPGA接收并执行加载控制命令,选择加载目标FPGA,并产生该加载目标FPGA的被动加载时序,完成对加载目标FPGA的程序加载。
进一步的,还包括以下操作:
当第一次下载或者逻辑升级时,主控器接收异构平台外主机发送的多个加载目标FPGA的镜像文件,并将各个镜像文件数据写入闪存的不同区域中。
进一步的,步骤3)具体为:
301)总线接口模块解析主控器总线操作,完成对加载控制模块寄存器和镜像文件缓存模块的读写操作访问;
302)加载控制模块识别主控器的加载控制命令,选择相对应的加载目标FPGA和使能加载流程并通知被动加载时序产生模块;
303)镜像缓存模块缓存主控器发送的加载目标FPGA镜像文件;
304)被动加载时序产生模块根据选择的加载目标FPGA产生对应的被动加载控制时序,然后从镜像缓存模块中实时取出加载目标FPGA镜像文件并进行格式转换,完成加载目标FPGA的加载。
进一步的,步骤304)被动加载时序产生模块产生选择加载目标FPGA的被动加载控制时序的具体过程为:
加载控制FPGA拉低编程信号,编程信号保持预设时间段的低电平后,等待加载目标FPGA的初始化信号拉高;
当加载目标FPGA的初始化信号拉高后,加载控制FPGA拉低写信号和片选信号,之后产生加载时钟信号,将满足加载目标FPGA数据格式的数据发送到加载目标FPGA;
当加载完成信号拉高后,加载控制FPGA不再发送数据,并继续产生16个加载时钟,完成加载目标FPGA的初始化,然后拉高片选信号和写信号,本次加载成功并结束;
当加载完成信号未拉高时,主控器通过查询加载控制FPGA内部的加载状态寄存器,根据设定的超时时间,判定是否进行重加载;
当超时时,判定本次加载失败,无需复位主控器和加载控制FPGA,主控器重新向加载控制FPGA发起加载控制命令,同时清空加载控制FPGA内部缓存的加载数据,加载控制FPGA再次发起被动加载时序,直至加载成功。
与现有技术相比,本发明具有以下有益效果:
本发明的一种异构平台远程动态加载多目标FPGA的控制装置及控制方法,采用FPGA实现远程动态被动式加载,解决了异构平台内传统一对一加载方式时需要插拔相邻槽位刀片的问题,提高了平台内FPGA加载的效率,保证了平台内硬件环境的稳定可靠;采用软件定义的方式进行远程动态加载目标FPGA,加载目标灵活;本发明中提出加载未成功时的自动重加载策略,提高了加载成功率,且不影响主控器的其他进程。
附图说明
图1为本发明的加载多目标FPGA的控制装置的结构框图;
图2为本发明的加载控制FPGA的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
下面结合附图对本发明做进一步详细描述:
参见图1,图1为本发明的异构平台远程动态加载多目标FPGA的控制装置的原理框图;异构平台远程动态加载多目标FPGA的控制装置包括由主控器、闪存、加载控制FPGA、EEPROM、加载目标FPGA;其中,闪存与主控器电性连接,加载控制FPGA与主控器、EEPROM、第一加载目标FPGA、第二加载目标FPGA电性连接;
闪存用于存储加载目标FPGA的镜像文件,可将其空间划分多个区域,存储多个加载目标FPGA的镜像文件;
主控器可通过外置网口与平台外以太网节点通信,获取加载目标FPGA的镜像文件并直接将其写入闪存中,加载目标FPGA的镜像文件的获取与存储无需加载控制FPGA模块的介入;同时主控器负责向加载控制FPGA发送加载控制命令和镜像文件;
EEPROM用于存储加载控制FPGA的逻辑镜像文件;
加载控制FPGA用于接收主控器的加载控制命令和加载目标FPGA的镜像文件,选择对应加载目标FPGA,并产生该加载目标FPGA的被动加载时序,完成对加载目标FPGA的程序加载。
参见图2,图2为本发明的加载控制FPGA的模块结构框图;加载控制FPGA包括总线接口模块、加载控制模块、镜像文件缓存模块和被动加载时序产生模块;总线接口模块实现对主控器总线操作的解析,完成对内部资源的读写操作访问;加载控制模块识别主控器发来的加载控制命令,选择对应加载目标FPGA,并启动加载操作;镜像缓存模块缓存主控器发送的加载目标FPGA镜像文件;被动加载时序产生模块负责被动式加载时序的控制,并上报加载状态。
本发明的异构平台远程动态加载多目标FPGA的控制装置的控制方法,具体为:
上电后,加载控制FPGA从EEPROM中获取加载控制逻辑镜像文件,完成加载控制FPGA本芯片的逻辑加载;
主控器通过网口接收异构平台外主机发送的多个加载目标FPGA的镜像文件,将镜像文件转换为FIASH接口相关的数据,并通过写时序接口写入闪存的不同区域中(第一次下载和需要升级逻辑时进行该操作);
加载目标FPGA的镜像文件存储完毕后,主控器向加载控制FPGA发送加载控制命令,选择加载目标FPGA并使能加载操作,然后通过读时序接口从闪存中读取第一加载目标FPGA或第二加载目标FPGA的镜像文件,并发送给加载控制FPGA。
具体被动加载控制时序为:加载控制FPGA拉低编程信号,标志被动加载时序开始,编程信号在保持1ms时间的低电平之后拉高,等待加载目标FPGA的初始化信号拉高;
当初始化信号拉高后,加载控制FPGA拉低写信号和片选信号,然后产生加载时钟信号,将满足加载目标FPGA数据格式的数据发送到加载目标FPGA。
当加载完成信号拉高后,加载控制FPGA不再发送数据,继续产生16个加载时钟,完成加载目标FPGA的初始化,然后并拉高片选信号和写信号,本次加载成功并结束。
当加载完成信号未拉高时,主控器通过查询加载控制FPGA内部的加载状态寄存器,根据设定的超时时间,判定是否进行重加载。
如果超时,判定本次加载失败,无需复位主控器和加载控制FPGA,主控器重新向加载控制FPGA发起加载控制命令,同时清空加载控制FPGA内部缓存的加载数据,加载控制FPGA再次发起被动加载时序,直至加载成功。
根据上述方案,用Verilog HDL语言对动态加载FPGA功能进行描述,并完成逻辑综合与布局布线;将逻辑设计映射到可编程逻辑器件中实现,并对远程动态加载多目标FPGA的功能进行测试。测试结果表明本发明具有很好的可实施性,且性能满足预期。
以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。
Claims (2)
1.一种异构平台远程动态加载多目标FPGA的控制装置的控制方法,其特征在于,所述异构平台远程动态加载多目标FPGA的控制装置,包括主控器、闪存、加载控制FPGA和EEPROM;
闪存用于存储加载目标FPGA的镜像文件;
EEPROM用于存储加载控制FPGA的逻辑镜像文件;
主控器用于向加载控制FPGA发送加载控制命令,从闪存中读取加载目标FPGA的镜像文件,并发送给加载控制FPGA;
加载控制FPGA用于接收并执行加载控制命令,选择加载目标FPGA并产生该加载目标FPGA的被动加载时序,完成对加载目标FPGA的程序加载;
控制方法包括以下步骤:
1)闪存存储加载目标FPGA的镜像文件;
2)主控器发送加载控制命令给加载控制FPGA,主控器从闪存中读取加载目标FPGA的镜像文件并发送给加载控制FPGA;
3)加载控制FPGA接收并执行加载控制命令,选择加载目标FPGA,并产生该加载目标FPGA的被动加载时序,完成对加载目标FPGA的程序加载;
还包括以下操作:
当第一次下载或者逻辑升级时,主控器接收异构平台外主机发送的多个加载目标FPGA的镜像文件,并将各个镜像文件数据写入闪存的不同区域中;
步骤3)具体为:
301)总线接口模块解析主控器总线操作,完成对加载控制模块寄存器和镜像文件缓存模块的读写操作访问;
302)加载控制模块识别主控器的加载控制命令,选择相对应的加载目标FPGA和使能加载流程并通知被动加载时序产生模块;
303)镜像缓存模块缓存主控器发送的加载目标FPGA镜像文件;
304)被动加载时序产生模块根据选择的加载目标FPGA产生对应的被动加载控制时序,然后从镜像缓存模块中实时取出加载目标FPGA镜像文件并进行格式转换,完成加载目标FPGA的加载;
步骤304)被动加载时序产生模块产生选择加载目标FPGA的被动加载控制时序的具体过程为:
加载控制FPGA拉低编程信号,编程信号保持预设时间段的低电平后,等待加载目标FPGA的初始化信号拉高;
当加载目标FPGA的初始化信号拉高后,加载控制FPGA拉低写信号和片选信号,之后产生加载时钟信号,将满足加载目标FPGA数据格式的数据发送到加载目标FPGA;
当加载完成信号拉高后,加载控制FPGA不再发送数据,并继续产生16个加载时钟,完成加载目标FPGA的初始化,然后拉高片选信号和写信号,本次加载成功并结束;
当加载完成信号未拉高时,主控器通过查询加载控制FPGA内部的加载状态寄存器,根据设定的超时时间,判定是否进行重加载;
当超时时,判定本次加载失败,无需复位主控器和加载控制FPGA,主控器重新向加载控制FPGA发起加载控制命令,同时清空加载控制FPGA内部缓存的加载数据,加载控制FPGA再次发起被动加载时序,直至加载成功。
2.根据权利要求1所述的异构平台远程动态加载多目标FPGA的控制装置的控制方法,其特征在于,加载控制FPGA包括总线接口模块、加载控制模块、镜像文件缓存模块和被动加载时序产生模块;
总线接口模块用于解析主控器执行的读写操作,实现对加载控制模块寄存器和镜像文件缓存模块的访问操作;
加载控制模块用于识别主控器的加载控制命令,进行选择加载目标FPGA和启动加载流程的操作,并输出控制信号给被动加载时序产生模块;
镜像缓存模块用于缓存主控器发送的加载目标FPGA镜像文件;
被动加载时序产生模块根据选择的加载目标FPGA产生对应的被动加载控制时序,然后从镜像缓存模块中实时取出加载目标FPGA镜像文件并进行格式转换,完成加载目标FPGA的加载。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910460780.0A CN110175056B (zh) | 2019-05-30 | 2019-05-30 | 一种异构平台远程动态加载多目标fpga的控制装置及控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910460780.0A CN110175056B (zh) | 2019-05-30 | 2019-05-30 | 一种异构平台远程动态加载多目标fpga的控制装置及控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110175056A CN110175056A (zh) | 2019-08-27 |
CN110175056B true CN110175056B (zh) | 2022-02-11 |
Family
ID=67696557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910460780.0A Active CN110175056B (zh) | 2019-05-30 | 2019-05-30 | 一种异构平台远程动态加载多目标fpga的控制装置及控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110175056B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110865972B (zh) * | 2019-11-25 | 2023-02-28 | 中国科学院微小卫星创新研究院 | 星载fpga重构及上注系统 |
CN112180788B (zh) * | 2020-09-28 | 2022-03-08 | 西安微电子技术研究所 | 动态关联脉络的控制平台架构设计方法、存储介质及设备 |
CN113742003B (zh) * | 2021-09-15 | 2023-08-22 | 深圳市朗强科技有限公司 | 一种基于fpga芯片的程序代码执行方法及设备 |
CN115291898B (zh) * | 2022-08-03 | 2023-11-10 | 江苏新质信息科技有限公司 | 一种多fpga从模式快速烧录方法及装置 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6266273B1 (en) * | 2000-08-21 | 2001-07-24 | Sandisk Corporation | Method and structure for reliable data copy operation for non-volatile memories |
AU2004273406A1 (en) * | 2003-05-23 | 2005-03-24 | Data Search Systems, Inc. | Intelligent data storage and processing using FPGA devices |
US8434087B2 (en) * | 2008-08-29 | 2013-04-30 | International Business Machines Corporation | Distributed acceleration devices management for streams processing |
US8639871B2 (en) * | 2009-04-08 | 2014-01-28 | Google Inc. | Partitioning a flash memory data storage device |
WO2012067710A1 (en) * | 2010-11-18 | 2012-05-24 | Thomson Licensing | Method to safely reprogram an fpga |
CN202331426U (zh) * | 2011-10-21 | 2012-07-11 | 上海湾流仪器技术有限公司 | 现场可编程门阵列的动态加载系统 |
CN102662686B (zh) * | 2012-03-09 | 2015-05-13 | 中国科学院微电子研究所 | Fpga的加载方法及其装置 |
US9424019B2 (en) * | 2012-06-20 | 2016-08-23 | Microsoft Technology Licensing, Llc | Updating hardware libraries for use by applications on a computer system with an FPGA coprocessor |
CN103885804A (zh) * | 2014-03-20 | 2014-06-25 | 四川九洲电器集团有限责任公司 | 一种fpga多功能项动态加载系统及其方法 |
CN104461660B (zh) * | 2014-12-30 | 2017-12-22 | 西安电子科技大学 | 一种异构系统的多模式动态加载方法 |
US20170371659A1 (en) * | 2016-06-23 | 2017-12-28 | Microsoft Technology Licensing, Llc | Load-store queue for block-based processor |
CN106201629A (zh) * | 2016-07-22 | 2016-12-07 | 北京广利核系统工程有限公司 | 一种对多片目标fpga编程的方法和装置 |
US10528765B2 (en) * | 2016-09-16 | 2020-01-07 | Intel Corporation | Technologies for secure boot provisioning and management of field-programmable gate array images |
CN106502723A (zh) * | 2016-09-29 | 2017-03-15 | 四川九洲电器集团有限责任公司 | 用于实现fpga程序动态升级及自加载的装置及方法 |
US11023258B2 (en) * | 2016-12-30 | 2021-06-01 | Intel Corporation | Self-morphing server platforms |
CN106874051A (zh) * | 2017-02-20 | 2017-06-20 | 中国电子科技集团公司第二十九研究所 | 一种基于以太网的多片fpga高速动态加载装置及方法 |
US10402219B2 (en) * | 2017-06-07 | 2019-09-03 | Dell Products L.P. | Managing shared services in reconfigurable FPGA regions |
CN108563808B (zh) * | 2018-01-05 | 2020-12-04 | 中国科学技术大学 | 基于fpga的异构可重构图计算加速器系统的设计方法 |
-
2019
- 2019-05-30 CN CN201910460780.0A patent/CN110175056B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110175056A (zh) | 2019-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110175056B (zh) | 一种异构平台远程动态加载多目标fpga的控制装置及控制方法 | |
CN102855146B (zh) | 固件更新系统及方法 | |
CN109669729B (zh) | 一种处理器的启动引导方法 | |
CN107832078B (zh) | 基于dsp的fpga程序在线更新电路 | |
CN108037938B (zh) | 一种eMMC的开卡方法 | |
CN110941444B (zh) | 一种升级配置逻辑电路、方法、系统及可编程逻辑器件 | |
US8607038B2 (en) | Apparatus and method for downloading contents using an interior mass storage in a portable terminal | |
CN109542478A (zh) | 一种更新SPI Flash内FPGA程序的系统及方法 | |
CN112231005B (zh) | 一种基于uboot管理fpga版本的方法 | |
US20130227205A1 (en) | Data Transfer in Memory Card System | |
WO2011088701A1 (zh) | 一种跨平台版本在线升级的方法及装置 | |
CN110597533A (zh) | 一种fpga板卡程序更新系统及方法 | |
CN113270137B (zh) | 一种基于fpga嵌入式软核的ddr2测试方法 | |
CN111026427A (zh) | 一种含cpu和fpga的嵌入式系统远程在线升级方法 | |
CN101667133B (zh) | 固件更新方法和使用该方法更新固件的芯片 | |
CN114594970A (zh) | 一种dsp软件远程升级系统及方法 | |
CN116088927A (zh) | 一种基于zynq处理器配置fpga程序电路及方法 | |
CN116560688B (zh) | 用于域控制器的软件更新方法 | |
CN108536458A (zh) | 一种fpga在线升级方法、装置、设备及存储介质 | |
CN109426511A (zh) | 软核更新方法和系统 | |
CN117033093A (zh) | 芯片验证装置及方法、电子设备、计算机可读存储介质 | |
CN115268987A (zh) | 一种异构平台fpga多版本配置文件加载管理方法 | |
CN106648807B (zh) | 一种基于flash存储器的dsp软件上传更新方法 | |
CN111241026A (zh) | 一种多个时钟的自适应系统 | |
CN111026428A (zh) | 能同时远程在线更新多个板卡中fpga固件程序的系统及方法 |
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 |