CN108196890B - 在轨混合加载fpga与cpu的方法 - Google Patents
在轨混合加载fpga与cpu的方法 Download PDFInfo
- Publication number
- CN108196890B CN108196890B CN201711413515.4A CN201711413515A CN108196890B CN 108196890 B CN108196890 B CN 108196890B CN 201711413515 A CN201711413515 A CN 201711413515A CN 108196890 B CN108196890 B CN 108196890B
- Authority
- CN
- China
- Prior art keywords
- cpu
- fpga
- loading
- prom
- configuration file
- 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/4401—Bootstrapping
- G06F9/4403—Processor initialisation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提出一种在轨混合加载FPGA与CPU的方法,包括:生成SRAM型FPGA加载配置文件;将其与生成的CPU引导软件加入了同步字命令融合生成统一加载配置文件并存储在PROM中;当上电后反熔丝FPGA根据从PROM中读取文件加载SRAM型FPGA,当配置加载成功后,返回加载成功信号;顺序读取文件,当判别到统一加载配置文件中的同步字命令后,识别文件中的CPU引导软件,桥接至CPU,对CPU进行引导软件加载;所述CPU自主产生读取PROM的控制信号发送至反熔丝FPGA,并从PROM中读回CPU的加载数据,以完成对CPU进行再次加载。本发明节省了FLASH的使用空间与成本,提高了其抗辐照能力,提高了CPU配置加载数据的可靠性。
Description
技术领域
本发明属于通信的领域,涉及一种在轨混合加载FPGA与CPU的 方法。
背景技术
空间电子产品中CPU是电子系统中非常重要的组成要素,在轨加载 CPU技术是一项不可避免的必经之路。随着当代电子产品的发展趋势,低 成本,高集成度,高可靠性,高灵活性成为了最终发展目标。
CPU掉电数据丢失,掉电后无法存储数据,故需要外挂存储设备储存 CPU代码。当上电后,通过控制芯片读取存储芯片的数据来加载进CPU 当中。以往的在轨加载CPU方案,较为普及的是将CPU引导软件放在高 等级flash的起始位置。依靠CPU上电后自主读取flash起始位置的4k数 据内容来一级加载CPU。由于应用背景为航空航天,对可靠性有着很高的 需求,故这种方案需耗费一片高等级flash。同时介于flash的抗辐照剂量, 又无法对flash中的数据进行可靠安全性处理。同时加载FPGA时所需配 置文件与加载CPU的引导软件分别存储在不同的器件上,造成空间与成 本的增加,降低使用率。
目前国内针对CPU与FPGA在轨混合加载方法,相关资料较少, 大多处于外挂flash,FPGA代码与CPU代码分别存储的方案阶段。
发明内容
发明所要解决的课题是现有的加载方法中,加载FPGA时所需配置 文件与加载CPU的引导软件分别存储在不同的器件上,造成空间与成本 的增加,降低使用率的问题。
用于解决课题的技术手段是,本发明提出一种在轨混合加载FPGA 与CPU的方法,包括如下步骤:
生成供PROM存储的SRAM型FPGA加载配置文件;
将生成的CPU引导软件加入了同步字命令得到CPU引导软件数据, 及与SRAM型FPGA的加载配置文件融合生成统一加载配置文件并存 储在PROM中;
当上电后反熔丝FPGA根据从PROM中读取的统一加载配置文件 加载SRAM型FPGA,当SRAM型FPGA配置加载成功后,返回加载 成功信号至反熔丝FPGA;所述反熔丝FPGA顺序读取统一加载配置文 件,当判别到统一加载配置文件中的同步字命令后,反熔丝FPGA识别文件中的CPU引导软件数据,且将从PROM中读取统一加载配置文件 桥接至CPU,对CPU进行引导软件加载;
所述CPU在执行完引导软件加载后,自主产生读取PROM的控制 信号发送至反熔丝FPGA,由反熔丝FPGA桥接该控制信号至PROM, 并从PROM中读回统一加载配置文件中的CPU的引导软件数据,以完 成对CPU进行再次加载。
进一步地,作为本发明的一种优选技术方案,所述方法还包括对融 合生成统一加载配置文件格式设置。
进一步地,作为本发明的一种优选技术方案,所述统一加载配置文 件的格式设置为:将SRAM型FPGA加载配置文件设置为前段,由同 步字命令加CPU引导软件数据组成后段。
进一步地,作为本发明的一种优选技术方案,所述方法还包括当 SRAM型FPGA配置加载成功后,所述反熔丝FPGA刷新SRAM型 FPGA的配置区。
进一步地,作为本发明的一种优选技术方案,所述方法还包括对 PROM数据指针进行控制,满足复位当前PROM所读取内容的地址指 针。
进一步地,作为本发明的一种优选技术方案,所述方法还包括 PROM生成片选信号,利用反熔丝FPGA控制PROM的控制信号和片 选信号的切换,以调取所需的数据,满足对PROM中存放的配置文件 进行指向化读取操作。
发明效果为,本发明与现有技术的有益效果如下:
(1)本发明针对一种在轨混合加载FPGA与CPU的方法,同以往CPU 加载方案不同,以往CPU引导软件与FPGA的配置文件分别存放在高等 级的FLASH中,高等级FLASH使用成本高昂,只存储CPU加载数据, 造成浪费;本发明技术将CPU加载数据与FPGA配置数据融合,对文件 内容进行了技术处理,合并生成一个新的统一加载配置文件,可供CPU 加载和FPGA加载时调用,节省了高等级FLASH的使用空间与成本;并 且将统一加载配置文件存储在PROM中,相较于存储FLASH芯片中,提 高了其抗辐照能力,提高了CPU配置加载数据的可靠性。
(2)本发明采用反熔丝型FPGA引导加载CPU,反熔丝型FPGA判 别到加载文件的命令字后负责从PROM中调取经过处理的加载文件,加 载CPU;当CPU一级引导boot后,主动通过反熔丝型FPGA向PROM中 调取数据,CPU引导软件数据形成的加载文件进行二次加载CPU,此时反 熔丝型FPGA作为CPU和PROM的桥接数据通道,反熔丝型FPGA肩负 着对SRAM型FPGA配置、刷新和加载CPU的功能,丰富了其反熔丝型 FPGA的功能,提高了功能集成度。
(3)通过反熔丝FPGA加载并配置SRAM型FPGA,提高了SRAM 型FPGA的在轨可靠性,针对SRAM型FPGA在轨易受单粒子效应影响 的现状,提出了可靠地保护性措施,提高了CPU在轨加载的可靠性和安 全性。
(4)反熔丝FPGA可以满足加载SRAM型FPGA、加载CPU、刷新 SRAM型FPGA的灵活切换需求。反熔丝FPGA通过控制PROM芯片的 clk和片选信号,灵活的选择各进程所需数据。
附图说明
图1为本发明在轨混合加载FPGA与CPU的方法的原理示意图。
图2为本发明生成的Boot1.txt文件示意图
图3为本发明包含同步字的Boot1.txt文件示意图
图4为本发明FPGA工程内TCL指令输入示意图。
图5为本发明最终加载文件与FPGA加载文件对比图。
具体实施方式
以下,基于附图针对本发明进行详细地说明。
如图1所示,本发明提出一种在轨混合加载FPGA与CPU的方法, 通过反熔丝FPGA、SRAM型FPGA、PROM、CPU的架构来实现CPU 与SRAM型FPGA的在轨加载功能,反熔丝FPGA为构架的核心,通 过反熔丝FPGA可以灵活地选择加载CPU或者SRAM型FPGA,将 FPGA的配置文件与CPU的加载配置文件。
本发明的方法,具体包括如下步骤:
步骤1、根据SRAM型FPGA的需求,通过FPGA编译软件对FPGA 进行综合编译、布局布线等操作,生成供PROM存储SRAM型FPGA 加载配置文件,如*.mcs文件。
步骤2、将生成的CPU引导软件加入了同步字命令得到CPU引导 软件数据,及与SRAM型FPGA的加载配置文件融合生成统一加载配 置文件并存储在PROM中。具体过程如下:
首先,对CPU的引导软件进行处理。CPU的引导软件一般以.bin 文件的形式存在,此处将执行CPU功能的引导软件命名为Boot1.bin。 要将CPU引导软件与SRAM型FPGA加载配置文件合并为一个文件, 需通过一个文件格式转化软件BIN-TXT.EXE,将CPU引导软件.bin文 件格式转换成.txt文件。
然后,对于生成的Boot1.txt文件每字节数据之间包含空格,如图2 所示,这不符合FPGA编译工程的要求,必须将内部数据变为十六进制的 连续数据段,在记事本页面下打开Boot1.txt,将所有的空格间隙去除,生 成无其他符号的仅包含引导软件的Boot1.txt文件。为了在加载引导软件时 能够识别到综合下载文件中引导软件开始的地方,需要在引导软件之前加 上同步字命令,同步字必须是16字节,且与加载配置文件中每连续16字 节的数据不重复。加完同步字的Boot1.txt文件如图3所示。
在上述过程中最后生成的Boot1.txt文件放在SRAM型FPGA软件 的工程里,将xapp694.exe放在ISE10.1的安装路径\ISE\bin\nt中。用ise 软件打开FPGA工程,通过tcl语言,在Tcl Shell中输入指令“xapp694 Boot1.txt switcher_inf_DC_test_5.mcsBoot1.mcs”,如图4所示,该指令 的通用格式在XAPP482-MicroBlaze平台Flash_PROM启动加载程序 和用户数据存储。指令输入后,会在FPGA软件的工程里生成一个名称 为Boot1.mcs的统一加载配置文件。
Boot1.mcs与switcher_inf_DC_test_5.mcs对比结果如图5所示,左 图中红色部分为综合的mcs文件与FPGA的mcs文件的差异部分,即 为CPU引导软件部分,本发明优选地对融合生成统一加载配置文件 Boot1.mcs的格式设置,将SRAM型的FPGA配置加载文件在前段,然 后是同步字命令加CPU引导软件的文本作为后段,通过同步命令字间 隔随后的CPU加载数据。
执行上述步骤后,CPU引导软件数据与FPGA的加载配置文件结 合为同一个mcs文件,供PROM存储的关键步骤已经完成。通过所述 CPU的配置加载文件存放在高等级PROM中,替代了以往的FLASH 芯片,大幅度的节省了设计成本并提高了存储芯片的利用率。
步骤3、当上电后反熔丝FPGA负责将“引导软件”从PROM中桥接 给CPU的ESPI总线,使得CPU进行一级引导boot。具体为,反熔丝 FPGA根据从PROM中读取的统一加载配置文件加载SRAM型FPGA, 当SRAM型FPGA配置加载成功后,返回加载成功信号至反熔丝FPGA; 所述反熔丝FPGA顺序读取统一加载配置文件,当判别到统一加载配置 文件中的同步字命令后,反熔丝FPGA识别文件中的CPU引导软件数 据,且将PROM中读取统一加载配置文件通过espi总线桥接至CPU, 对CPU进行引导软件加载。
优选地,还包括当SRAM型FPGA配置加载成功后,所述反熔丝 FPGA刷新SRAM型FPGA的配置区,对SRAM型FPGA进行加载的 目标部位刷新,使得SRAM型FPGA支持加载后被刷新功能,提高其 在轨可靠性。
步骤4、所述CPU在执行完引导软件加载后,开始自主产生读取 PROM的clk控制信号通过eSPI总线发送至反熔丝FPGA,由反熔丝 FPGA桥接该clk控制信号至PROM,并从PROM中读回统一加载配置文件中的CPU引导软件数据中的CPU的加载数据,以完成对CPU进 行再次的加载。直至完成二级加载,完整的CPU加载步骤结束。
该步骤还可以包括对PROM数据指针进行控制,满足复位当前 PROM所读取内容的地址指针;以及,PROM生成片选信号,利用反 熔丝FPGA控制PROM的控制信号和片选信号的切换,以调取所需的 数据,满足对PROM中存放的配置文件进行指向化读取操作。利用反 熔丝FPGA控制PROM的控制信号和片选信号的切换,以调取所需的 数据。反熔丝FPGA可以灵活的选择加载SRAM型FPGA、加载CPU、 刷新SRAM型FPGA的控制进程,反熔丝FPGA通过控制PROM芯片 的clk和片选信号,可以灵活的来调取不同控制进程所需的数据,满足 加载SRAM型FPGA、加载CPU、刷新SRAM型FPGA的灵活切换需 求。
综上,本发明提高了CPU加载的灵活性,降低了方案实施成本, 增加了单粒子翻转的保护措施,为CPU在轨加载执行多任务及任务灵 活变更提供途径,满足当代卫星等航空航天应用的高灵活性、高可靠性、 高执行力的需求。
需要说明的是,以上说明仅是本发明的优选实施方式,应当理解, 对于本领域技术人员来说,在不脱离本发明技术构思的前提下还可以做 出若干改变和改进,这些都包括在本发明的保护范围内。
Claims (4)
1.一种在轨混合加载FPGA与CPU的方法,其特征在于,包括如下步骤:
生成供PROM存储的SRAM型FPGA加载配置文件;
将生成的CPU引导软件之前加入了同步字命令得到CPU引导软件数据,及与SRAM型FPGA的加载配置文件融合生成统一加载配置文件并存储在PROM中;
当上电后反熔丝FPGA根据从PROM中读取的统一加载配置文件加载SRAM型FPGA,当SRAM型FPGA配置加载成功后,返回加载成功信号至反熔丝FPGA;所述反熔丝FPGA顺序读取统一加载配置文件,当判别到统一加载配置文件中的同步字命令后,反熔丝FPGA识别文件中的CPU引导软件数据,且将从PROM中读取统一加载配置文件桥接至CPU,对CPU进行引导软件加载;
所述CPU在执行完引导软件加载后,自主产生读取PROM的控制信号发送至反熔丝FPGA,由反熔丝FPGA桥接该控制信号至PROM,并从PROM中读回统一加载配置文件中的CPU的引导软件数据,以完成对CPU进行再次加载;
所述方法还包括对融合生成统一加载配置文件格式设置;
所述统一加载配置文件的格式设置为:将SRAM型FPGA加载配置文件设置为前段,由同步字命令加CPU引导软件数据组成后段。
2.根据权利要求1所述的在轨混合加载FPGA与CPU的方法,其特征在于,所述方法还包括当SRAM型FPGA配置加载成功后,所述反熔丝FPGA刷新SRAM型FPGA的配置区。
3.根据权利要求1所述的在轨混合加载FPGA与CPU的方法,其特征在于,所述方法还包括对PROM数据指针进行控制,满足复位当前PROM所读取内容的地址指针。
4.根据权利要求3所述的在轨混合加载FPGA与CPU的方法,其特征在于,所述方法还包括PROM生成片选信号,利用反熔丝FPGA控制PROM的控制信号和片选信号的切换,以调取所需的数据,满足对PROM中存放的配置文件进行指向化读取操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711413515.4A CN108196890B (zh) | 2017-12-24 | 2017-12-24 | 在轨混合加载fpga与cpu的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711413515.4A CN108196890B (zh) | 2017-12-24 | 2017-12-24 | 在轨混合加载fpga与cpu的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108196890A CN108196890A (zh) | 2018-06-22 |
CN108196890B true CN108196890B (zh) | 2021-04-20 |
Family
ID=62583788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711413515.4A Active CN108196890B (zh) | 2017-12-24 | 2017-12-24 | 在轨混合加载fpga与cpu的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108196890B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109614122B (zh) * | 2018-12-04 | 2022-03-29 | 上海无线电设备研究所 | 一种星载多处理器软件在轨编程系统及其设计方法 |
CN112099832B (zh) * | 2020-11-04 | 2021-04-20 | 中国人民解放军国防科技大学 | 星载设备的单粒子翻转恢复方法及系统 |
CN112486577B (zh) * | 2020-11-04 | 2023-09-29 | 北京遥测技术研究所 | 一种新型的cpu加载方法 |
CN113608720B (zh) * | 2021-07-23 | 2023-11-10 | 中国电子科技集团公司第三十研究所 | 一种抗单粒子翻转的星载数据处理系统及方法 |
CN114924808B (zh) * | 2022-05-12 | 2023-03-14 | 中国电子科技集团公司第二十九研究所 | 一种基于双份存储程序的sram型fpga在轨可靠加载方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7487344B2 (en) * | 2006-03-03 | 2009-02-03 | Alcatel Lucent | Implementing a microprocessor boot configuration prom within an FPGA |
US20070260869A1 (en) * | 2006-05-01 | 2007-11-08 | Symbol Technologies, Inc. | Apparatus and Method for Booting a Computing Device from a NAND Memory Device |
CN100504781C (zh) * | 2006-10-18 | 2009-06-24 | 中兴通讯股份有限公司 | 一种用cpu同时加载多片fpga的方法 |
CN101493809B (zh) * | 2009-03-03 | 2010-09-08 | 哈尔滨工业大学 | 一种基于fpga的多核心星载计算机 |
CN104239090B (zh) * | 2014-07-15 | 2017-12-22 | 上海微小卫星工程中心 | 一种基于fpga的卫星星务计算机在轨重构系统及方法 |
-
2017
- 2017-12-24 CN CN201711413515.4A patent/CN108196890B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108196890A (zh) | 2018-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108196890B (zh) | 在轨混合加载fpga与cpu的方法 | |
CN103207797B (zh) | 基于通用可扩展固件接口固件系统的胶囊式定制更新方法 | |
CN107704285B (zh) | 现场可编程门阵列多版本配置芯片、系统和方法 | |
US10802866B2 (en) | Central processing unit with DSP engine and enhanced context switch capabilities | |
JP2015049906A (ja) | 安全なブートromパッチのためのシステム及び方法 | |
CN101699402B (zh) | 一种多模式启动的嵌入式系统 | |
CN102156661A (zh) | 在线补丁的激活方法、装置及系统 | |
US20090204779A1 (en) | Controlling embedded memory access | |
CN106648758B (zh) | 一种多核处理器boot启动系统及方法 | |
CN103677923A (zh) | 一种boot引导程序运行保护方法 | |
CN106201608A (zh) | 计算机uefi固件更新方法 | |
CN105589729A (zh) | 一种基于嵌入式虚拟机的动态编译的方法及装置 | |
CN103218262A (zh) | 在线补丁的激活方法、装置及系统 | |
CN108897576A (zh) | 一种基于arm芯片的快速启动boot的方法 | |
CN108304140B (zh) | 闪存数据管理方法、装置及微控制器 | |
CN103064654A (zh) | 集成电路、电子系统及提供otp内存配置可更新的方法 | |
JPS61182160A (ja) | デ−タ処理装置 | |
CN106776186B (zh) | 一种多cpu架构下的cpu运行状态调试方法和系统 | |
CN102473090B (zh) | 可用于访问bios的多个接口文件 | |
TW201527976A (zh) | 積體電路無線電 | |
CN110703988B (zh) | 一种分布式存储的存储池创建方法、系统、终端及存储介质 | |
CN111930679A (zh) | 星载导航接收机的dsp程序存储方法及系统 | |
US20210173568A1 (en) | Integrity check of a memory | |
CN109308215B (zh) | 一种基于纤程的交互方法、交互系统及计算机装置 | |
CN118535199A (zh) | 一种基于dsp的程序在轨升级系统 |
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 |