CN108196890A - 在轨混合加载fpga与cpu的方法 - Google Patents

在轨混合加载fpga与cpu的方法 Download PDF

Info

Publication number
CN108196890A
CN108196890A CN201711413515.4A CN201711413515A CN108196890A CN 108196890 A CN108196890 A CN 108196890A CN 201711413515 A CN201711413515 A CN 201711413515A CN 108196890 A CN108196890 A CN 108196890A
Authority
CN
China
Prior art keywords
cpu
fpga
prom
loading
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.)
Granted
Application number
CN201711413515.4A
Other languages
English (en)
Other versions
CN108196890B (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.)
Beijing Institute of Satellite Information Engineering
Original Assignee
Beijing Institute of Satellite Information Engineering
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 Beijing Institute of Satellite Information Engineering filed Critical Beijing Institute of Satellite Information Engineering
Priority to CN201711413515.4A priority Critical patent/CN108196890B/zh
Publication of CN108196890A publication Critical patent/CN108196890A/zh
Application granted granted Critical
Publication of CN108196890B publication Critical patent/CN108196890B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor 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的方法
技术领域
本发明属于通信的领域,涉及一种在轨混合加载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 (6)

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进行再次加载。
2.根据权利要求1所述的在轨混合加载FPGA与CPU的方法,其特征在于,所述方法还包括对融合生成统一加载配置文件格式设置。
3.根据权利要求2所述的在轨混合加载FPGA与CPU的方法,其特征在于,所述统一加载配置文件的格式设置为:将SRAM型FPGA加载配置文件设置为前段,由同步字命令加CPU引导软件数据组成后段。
4.根据权利要求1所述的在轨混合加载FPGA与CPU的方法,其特征在于,所述方法还包括当SRAM型FPGA配置加载成功后,所述反熔丝FPGA刷新SRAM型FPGA的配置区。
5.根据权利要求1所述的在轨混合加载FPGA与CPU的方法,其特征在于,所述方法还包括对PROM数据指针进行控制,满足复位当前PROM所读取内容的地址指针。
6.根据权利要求5所述的在轨混合加载FPGA与CPU的方法,其特征在于,所述方法还包括PROM生成片选信号,利用反熔丝FPGA控制PROM的控制信号和片选信号的切换,以调取所需的数据,满足对PROM中存放的配置文件进行指向化读取操作。
CN201711413515.4A 2017-12-24 2017-12-24 在轨混合加载fpga与cpu的方法 Active CN108196890B (zh)

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 true CN108196890A (zh) 2018-06-22
CN108196890B 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)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109614122A (zh) * 2018-12-04 2019-04-12 上海无线电设备研究所 一种星载多处理器软件在轨编程系统及其设计方法
CN112099832A (zh) * 2020-11-04 2020-12-18 中国人民解放军国防科技大学 星载设备的单粒子翻转恢复方法及系统
CN112486577A (zh) * 2020-11-04 2021-03-12 北京遥测技术研究所 一种新型的cpu加载方法
CN113608720A (zh) * 2021-07-23 2021-11-05 中国电子科技集团公司第三十研究所 一种抗单粒子翻转的星载数据处理系统及方法
CN114924808A (zh) * 2022-05-12 2022-08-19 中国电子科技集团公司第二十九研究所 一种基于双份存储程序的sram型fpga在轨可靠加载方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070208926A1 (en) * 2006-03-03 2007-09-06 Alcatel 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
CN101165652A (zh) * 2006-10-18 2008-04-23 中兴通讯股份有限公司 一种用cpu同时加载多片fpga的方法
CN101493809A (zh) * 2009-03-03 2009-07-29 哈尔滨工业大学 一种基于fpga的多核心星载计算机
CN104239090A (zh) * 2014-07-15 2014-12-24 上海微小卫星工程中心 一种基于fpga的卫星星务计算机在轨重构系统及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070208926A1 (en) * 2006-03-03 2007-09-06 Alcatel 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
CN101165652A (zh) * 2006-10-18 2008-04-23 中兴通讯股份有限公司 一种用cpu同时加载多片fpga的方法
CN101493809A (zh) * 2009-03-03 2009-07-29 哈尔滨工业大学 一种基于fpga的多核心星载计算机
CN104239090A (zh) * 2014-07-15 2014-12-24 上海微小卫星工程中心 一种基于fpga的卫星星务计算机在轨重构系统及方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109614122A (zh) * 2018-12-04 2019-04-12 上海无线电设备研究所 一种星载多处理器软件在轨编程系统及其设计方法
CN109614122B (zh) * 2018-12-04 2022-03-29 上海无线电设备研究所 一种星载多处理器软件在轨编程系统及其设计方法
CN112099832A (zh) * 2020-11-04 2020-12-18 中国人民解放军国防科技大学 星载设备的单粒子翻转恢复方法及系统
CN112486577A (zh) * 2020-11-04 2021-03-12 北京遥测技术研究所 一种新型的cpu加载方法
CN112099832B (zh) * 2020-11-04 2021-04-20 中国人民解放军国防科技大学 星载设备的单粒子翻转恢复方法及系统
CN112486577B (zh) * 2020-11-04 2023-09-29 北京遥测技术研究所 一种新型的cpu加载方法
CN113608720A (zh) * 2021-07-23 2021-11-05 中国电子科技集团公司第三十研究所 一种抗单粒子翻转的星载数据处理系统及方法
CN113608720B (zh) * 2021-07-23 2023-11-10 中国电子科技集团公司第三十研究所 一种抗单粒子翻转的星载数据处理系统及方法
CN114924808A (zh) * 2022-05-12 2022-08-19 中国电子科技集团公司第二十九研究所 一种基于双份存储程序的sram型fpga在轨可靠加载方法

Also Published As

Publication number Publication date
CN108196890B (zh) 2021-04-20

Similar Documents

Publication Publication Date Title
CN108196890A (zh) 在轨混合加载fpga与cpu的方法
Farber et al. SNOBOL, a string manipulation language
US3374466A (en) Data processing system
Wassyng et al. Lessons learned from a successful implementation of formal methods in an industrial project
EP0032515B1 (en) A method of pipeline control for a computer
CN108415740A (zh) 一种应用于数据分析任务的工作流调度方法
JP6550268B2 (ja) プログラム作成支援装置、プログラムおよび判別方法
CN104977892A (zh) 可编程逻辑控制器用程序的创建支持装置
US3248707A (en) Semi-asynchronous clock system
US5758164A (en) Method and system for processing language
CN108491202A (zh) 一种基于qml的图形引擎的实现方法
EP0142562B1 (en) Pipeline system for microprogram control unit
CN107315587A (zh) 一种基于二次链接的航天器在轨维护注入码生成方法
US20230134007A1 (en) Support device, non-transitory computer-readable storage medium, and support method
Leiner et al. System design of the SEAC and DYSEAC
JPS62150416A (ja) 低消費電力状態への移行方式
JPS6398033A (ja) マイクロプログラム制御装置
White et al. Design of an integrated programming and operating system, Part VI: Implementation on the 7040/44 data processing system
Lim et al. Fault tree conditioning methods to trace system configuration changes for the application to low-power/shutdown PSA
SU1134935A1 (ru) Микропрограммное устройство управлени
CN116661750A (zh) 一种基于schma生成前端项目源码的方法及装置
Tittus et al. Automated generation of plant-specific recipes in batch control
Noguez A standardized microprogram sequencing control with a push down storage
KR970011897B1 (ko) 언어해석 처리장치
Skaali The SINTRAN III NODAL 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