首页> 中国专利> 一种适用于航天领域基于FPGA的高可靠性嵌入式最小CPU核设计方法

一种适用于航天领域基于FPGA的高可靠性嵌入式最小CPU核设计方法

摘要

本发明公开了一种适用于航天领域基于FPGA的高可靠性嵌入式最小CPU核设计方法。该方法包括如下步骤:预先用仿汇编语言编写程序,转换为Binary格式的机器码,并写入PROM中;根据程序读取PROM中的数据;将读到的数据进行指令和目标源拆分,识别指令类型和目标源,进行数据的算数逻辑运算,并把运算结果放入指定的地方,最后根据指令进行对外数据的读写操作。与现有技术相比,其有益效果是:占用极小的FPGA资源,比现有的80C51核减小10倍以上资源开销,特别适合在航天领域中FPGA资源有限的情况下应用;工程运用效果好,可以对外进行数据的读写,实现422和1553B通信;采用仿汇编语言编写,程序可靠性高。

著录项

  • 公开/公告号CN102937888A

    专利类型发明专利

  • 公开/公告日2013-02-20

    原文格式PDF

  • 申请/专利权人 上海航天测控通信研究所;

    申请/专利号CN201110233884.1

  • 发明设计人 施未勋;徐建萍;周振宇;宋晓东;

    申请日2011-08-16

  • 分类号G06F9/30;

  • 代理机构上海航天局专利中心;

  • 代理人金家山

  • 地址 200086 上海市虹口区天宝路881号

  • 入库时间 2024-02-19 16:35:27

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-12-14

    授权

    授权

  • 2014-03-19

    实质审查的生效 IPC(主分类):G06F9/30 申请日:20110816

    实质审查的生效

  • 2013-02-20

    公开

    公开

说明书

技术领域

本发明涉及基于FPGA的嵌入式CPU核领域的软件,尤其适用于航天FPGA 的小资源、高可靠性的技术要求。

背景技术

航天领域由于其工作地点的特殊性,产品的质量和可靠性要求极高,不 允许出现任何故障。在太空中,由于高能粒子的冲击和持续辐照,对元器件 的等级要求极高,FPGA由于其本身工艺设计的原因,目前能上天的FPGA可 用资源有限,而用80C51核由于占用资源太多而不能应用。

目前航天领域大多数型号任务采用FPGA+单片机+片外RAM+片外PROM的 体系架构,这种体系架构用到的元器件较多,应用时要考虑每个元器件的质 量等级和可靠性指标,可靠性会降低。

发明内容

本发明要解决的问题是提供一种基于FPGA的高可靠性嵌入式最小CPU 核设计方法,它能够解决适用于航天领域FPGA的资源有限的问题,能增加航 天器的可靠性。

为解决上述技术问题,本发明的一种基于FPGA的高可靠性嵌入式最小 CPU核设计方法,其包括如下步骤:

步骤a:根据定义的指令,预先用仿汇编语言编写程序,转换为Binary 格式的机器码,并写入PROM中;

步骤b:根据程序读取PROM中的数据;

步骤c:将读到的数据进行指令和目标源拆分,识别指令类型和目标源, 进行数据的算数逻辑运算,并把运算结果放入指定的地方,最后根据指令进 行对外数据的读写操作。

上述步骤a包含有如下步骤:

步骤a1:根据定义的指令,用仿汇编语言编写程序;

步骤a2:将编译后的执行代码转换为Binary格式的机器码;

步骤a3:根据程序大小,写入片内ROM或片外PROM中。

所述步骤b包含有如下步骤:

步骤b1:根据程序指令,确定要访问的PROM的地址;

步骤b2:读取PROM中地址相对应的数据。

所述步骤c包含有如下步骤:

步骤c1:将读到的数据进行指令和目标源拆分;

步骤c2:识别指令类型和目标源操作目标源,进行数据的算数逻辑运算, 并把运算结果放入指定的地方;

步骤c3:根据指令进行对外数据的读写操作。

本发明通过一种基于FPGA的高可靠性嵌入式最小CPU核设计方法,与现 有技术相比,其有益效果是:占用极小的FPGA资源,比现有的80C51核减 小10倍以上资源开销,特别适合在航天领域中FPGA资源有限的情况下应用; 工程运用效果好,可以对外进行数据的读写,可实现422和1553B通讯;采 用仿汇编语言编写,程序可靠性高;与现有航天的体系架构相比,减少元器 件开销,节省成本。

附图说明

以下将结合附图和实施例对本发明作进一步详细说明。

图1是本发明的最小CPU核的内部数据流图;

图2是本发明的指令和目标源解析图;

图3是本发明Binary格式数据流的定义。

具体实施方式

适用于本发明需要有下面几个条件:

1、计算机配置和软件条件

需配置一台内存大于512M,硬盘存储空间大于1G的计算机,需要安装 FPGA仿真和烧写软件。

2、存储空间条件

一般航天领域的FPGA软件为了抵抗SEU(单粒子反转,Single Event  Upset)效应对程序的影响,在航天器发射之前进行FPGA反熔丝固化,固化 好的程序将不能进行修改。而Binary格式的机器码一般存放在PROM(可编程 只读存储器,Program Read Only Memory)中,为了抵抗SEU效应对程序的影 响,用于存放代码的PROM在航天器发射之前进行烧结固化,固化好的程序将 不能在原PROM基础上进行修改。

因此只需要可适用于航天领域的FPGA和PROM,存储空间条件较易满足, 本发明能适用于大多数的航天领域。

鉴于上述两个条件航天领域一般都满足,故本发明可以应用到大多数的 航天领域中FPGA的嵌入式CPU核设计。

具体实施例如下:

本实施例采用C语言编写一段程序(一个简单的1553B通讯程序),根据 图2的指令和目标源的解析用仿汇编语言将C语言程序转换为Binary格式的 机器码,并写入PROM中,并依据设计在FPGA软件内部的CPU核,对注入的 代码进行指令和目标源拆分,识别指令类型和目标源,然后进行数据的读写 操作。其方法的具体步骤如下:

C语言程序如下:

步骤a1:根据图2的指令和目标源的解析,根据C语言程序用仿汇编语 言编写程序。这一步是整个设计中的重要步骤,该步骤是整个数据的来源, 编写后的代码确保是正确的,代码的精简度与整个程序的效率密切相关。代 码如下:

步骤a2:根据图2的指令和目标源的解析,使用自制的转换格式软件,将 编译后的执行代码转换为Binary格式的机器码。值得注意的是,指令和目标 源拼成一个8位无符号数,操作数为16位无符号数,机器码如下:

0D 00 A011 0D 00 00 19 09 AD 01 00 85 FF AF 55 15 00 45 03 00 0D 01 00 10 03 80 0D 00 80 10 07 80 0D 13 00 10 00 80 0D 52 58 10 02 80 0D 19 80 10 07 80 0D 00 80 10 08 80 0D 00 00 10 09 80 0D A0 02 10 68 A1 0D 00 40 10 A8 A1 0D 80 8F 10 01 80

步骤a3:根据机器码大小,写入片内ROM或片外PROM中。如机器码存 在片内的ROM中,则读写速度更快,最快可接受70M的时钟驱动。如写入片 外PROM,则根据PROM芯片的读写周期进行操作。

步骤b1:根据程序指令,确定要访问的PROM的地址;初始化状态下, 默认访问PROM首地址中的指令内容,并设置相应的PC指针。

步骤b2:读取PROM中地址相对应的数据。数据从图1中的DATA_in端 口被读入,每次读取8位数据。

步骤c1:将读到的数据进行指令和目标源拆分。根据图3的机器码定义, 在图1的CONTROL FSM模块把读到的8位的数据(图1中的Pc0)进行拆分, 高5位是指令,低3位为目标源。

步骤c2:识别指令类型和目标源,进行数据的算数逻辑运算,并把运算 结果放入指定的地方。根据图2的指令和目标源的解析和图1的最小CPU核 的内部数据流图,进行不同的操作。

在算数逻辑运算中,如目标源为图1的REG模块中的内部R0~R3寄存器 中16位数据,则不需要再从PROM中读取操作数,直接把寄存器中的数据通过 MUXA.a端口放到ALU模块的A口。除此之外,所有指令都需要再从PROM中 读取16位的操作数(图1中的Pc1,Pc2),在ALU模块中参与算数逻辑运算, 运算结果通过ALU模块的C口根据指令分别送往REG模块和CONTROL FSM模 块。如指令的目标源为REG模块中的内部R0~R3寄存器或A和S,则运算结 果送往REG模块,这条指令的PC地址加1;如指令的目标源为@ADDR或#DATA, 则运算结果送往CONTROL FSM模块,这条指令的PC地址加3。

步骤c3:根据指令进行对外数据的读写操作。在CONTROL FSM模块中, 根据指令和目标源的不同进行对外数据的读写操作。

在读操作时,如目标源为@ADDR,则需要先把@ADDR的值存放在对外地址 线上,再读一遍该地址中的数据;如目标源为#DATA,则直接再从PROM中读 取16位的操作数即可;如目标源为R0~R3寄存器或A和S,则不需要对外读 取数据。

在写操作时,如指令类型为MOVA,则需识别目标源类型:目标源为@ADDR, 则把@ADDR的值存放在对外地址线上,然后把ALU模块的C口数据进行对外 写操作;目标源为R0~R3寄存器,则把把ALU模块的C口数据送往REG模块, 不需要对外写操作。如指令类型为MOVR,则把R0~R3寄存器中数据放在对外 地址线上,然后把ALU模块的C口数据进行对外写操作。

运行上述步骤后,再根据程序代码,循环执行b1--c3步骤,直到程序结 束。

实施例

以某型号为例,原采用FPGA+单片机+片外RAM+片外PROM的体系架构, 采用C语言程序进行代码编写。现用相同的程序,用仿汇编语言进行编写新 的代码后编译链接,生成Binary格式代码,并写入注入片外PROM,原程序 功能运行良好。

由上可知,采用本发明的方法对航天领域的FPGA嵌入式CPU核进行设计, 是一种价格低廉,增加了航天元器件可靠性,能节省大量的财力和物力。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号