摘要:本文目标是根据航天电子设计的需要,提出一种高可靠性微处理器设计的设计方案。在分析了单粒子效应的和总结了高可靠性设计技术的基础上,对 oregano systems公司提供的 mc8051IP软核进行了修改。修改后的 IP核满足设计要求,运行稳定,最终实验结果说明:设计方案合理,实现简单,具备实用价值。
引言
随着我国航天事业的发展,高密度集成电路器件在航天器的研制中被大量使用,然而随着器件集成度的提高和工作电压的降低,空间辐射环境对电子系统的影响越来越多。空间辐射环境对电子系统的损害最主要的是单粒子效应(Single Event Effect) ,它们会使器件失效或者工作状态发生改变,影响电子设备的可靠运行 5。基于笔者所在单位承担的大量航天工程任务中关键部位均使用了 8051微控制器,本文根据航天电子设计的要求对一款8051IP软核进行了修改,以适应航天设备的需要。
1 mc8051IP核介绍
IP(Intellectual Property)原意指知识产权,在 IC设计领域则是指预先设计实现某种功能的模块。IP核(IP模块)则是指完成某种功能的虚拟电路模块,也称之为虚拟部件。
根据 IP的提供方式通常把 IP核分为硬 IP(硬核Hard Core)、软 IP(软核 Soft Core)和固 IP(固核 Firm Core )。
硬核是针对某个特定工艺的一套物理版图,电路布局布线和工艺是确定的,已经过样品电路的验证。硬核的优点是它的高速度和安全性,但由于依赖特定的工艺,所以缺少灵活性。
软核是用硬件描述语言(Verilog HDL或 VHDL)的形式描述功能块的行为,但是并不涉及用什么电路和电路元件实现这些行为。软核具有的特点是可以根据用户需要灵活的进行修改定制。
固核是一种介于软核和硬核之间的 IP核,通常以 RTL代码和对应具体工程网表的混合形式提供。固核是完成了综合的功能块,有较大的设计深度,通常以网表的形式提交客户。
mc8051IPcore是 Oreganosystems公司提供的一个应用广泛的开源 8051IP软核。
它由算术运算单元,定时器 /计数器,串口,内部 ram,外部 ram及 rom组成。mc8051_alu为运算单元,由加法器,乘法器,除法器等基本运算单元组成。mc8051_control为 mc8051的控制通路。包括有特殊寄存器,译码单元,多路选择器,中断及指令状态机等基本功能。2抗单粒子可靠性设计技术
可靠性设计的基本原理是冗余,包括信息冗余,时间冗余等。目前抗单粒子效应的设计技术中应用最广的技术有三模冗余(Triple Modular Redundance ,TMR),检错纠错(Error Detection And Correction ,EDAC) 1基于软件的控制流检测
2。本文主要采用前2种可靠性设计方法。
2.1 三模冗余(TMR)介绍
三模冗余是指将目标部件复制相成同的三个目标部件来实现一个目标部件的功能,三个目标部件最终将通过一个判决器来判断目标部件的正确状态。它利用的是相同一组部件同时出现错误概率较小的原理来实现可靠性的提高。
TMR可用于各种IP设计的各阶段,既可以在系统级进行冗余,也可以是局部冗余。
2.2 纠错检错(EDAC)
2.2.1 EDAC概述
EDAC可以用来检测电子设备中由SEU引起的存储为翻转错误。EDAC的基本结构包括3个部分:编码模块,解码模块,存储模块。其中EDAC 编码模块将需要处理的数据进行相关算法的编码,产生校验码,与待处理数据一同存入存储模块。数据需要读出的时候,EDAC解码模块将数据与相应校验码进行解码处理,得出正确结构。编码与解码所采用的编码方式可以根据需要选择,如汉明码,最佳奇权码,藤原英二码等等。
2.2.2 汉明码介绍
下面以扩展汉明码为例说明编码纠错检错的原理。 扩展汉明码(Extended Hamming Code)在存储系统的纠错检错中得到了广泛应用。他的最小码距是4,对于数据位数 k,校验位数 r,他们之间的关系需满足 2r-1 ≥ k+r。如果数据位 k增加一倍,校验位 r也只需要增加1位,所以它具有相当高的编码效率。 8位数据经过4位编码后的数据结构如下:
C= [D7D6D5D4D3D2D1D0C3C2C1C0]其中 D7~D0是数据位,C3~C0是校验位:
C3= D7 ⊕D6 ⊕ D5 ⊕ D4 ; C2= D7 ⊕D3 ⊕ D2 ⊕ D1; C1= D6 ⊕D5 ⊕ D3 ⊕ D2 ⊕ D0 ; C0= D6 ⊕D4 ⊕ D3 ⊕ D1⊕ D0
解码时需计算存储数据的伴随向量 S: S3= C3 ⊕CB3;S2= C2 ⊕CB2 ;S1= C1⊕CB1;S0= C0 ⊕CB0 其中 CB0,CB1,CB2,CB3为 8位数据在解码时刻的校验位。根据算得的伴随向量 S我们就可以判断数据位是否发生错误及错误发生的位置。
2.3 两种纠错方法的比较
TMR与 EDAC都属于硬件冗余,对于不同字长的存储器,他们所占用的面积开销和时间开销是不同的。TMR所占用的面积开销包括冗余的2个目标器件以及判决器及附属电路逻辑,EDAC所增加的面积开销则包括了增加的校验位,编码器,解码器及附属逻辑 1。根据以上分析我们可以得出结论,对于保护寄存器,寄存器组等容量较小的存储器件,TMR有实现简单,增加面积较少的有点。而对于大容量的存储器,则应当采用 EDAC来进行纠错检错。
3高可靠性 8051具体方案设计及实现通过对 SEU的机理分析及 mc8051结构分析可以得出,容易受到粒子辐射的关键部位有
3:特殊寄存器(Special Function Register ,SFR),内部 ram,外部 ram。本论文就上述三个模块对 mc8051IP核进行了该进。
3.1特殊寄存器(SFR)
mc8051IP核的特殊寄存器(SFR)均在 control_mem文件中实现。该模块实现 8051译码功能。SFR字节地址范围是80H-FFH,他们在 RAM中并不是完全连续的,21个 SFR离散的分布在上述字节区域的128个字节单元中。在mc8051IP核中并没用将这些SFR设计在内部 ram中,而是对应地址分别实现的。对 SFR的加固处理是采用了 TMR技术。具体实现步骤如下:
综合后结果截取如下图:
3.2内部 RAM
该 IP核可支持 128字节内部RAM.由 2.3分析,方案采用 TMR方式对内部 RAM进行处理,选用 3个相同的 128字节的 RAM作为冗余的存储器,由 mc8051_ram_fsm与 mc8051_ram_dataflow两个模块组成了内部 RAM的数据通路,其中前者完成写优先的读写状态控制,后者完成数据流向控制。数据通路负责完成数据校验。控制通路与数据通路组成内部 RAM接口逻辑。经过仿真后内部 RAM接口结构框图及读写时序如下:
图 2(B)可看出:写数据时,数据输入后第二个周期被写入RAM;读数据时,读指令被检测到后的第 5个周期经校验后的正确数据被输出并且被回写给RAM。在接入工程应用时需将外部时钟进行 6倍频以配合 cpu读写时序。
3.3 外部 RAM
外部 RAM最大可以支持64K,同样由 2.3分析,方案选取能纠 1位错检 2位错的扩展汉明码进行 EDAC处理。其中,数据处理单元完成数据的编码,解码,地址锁存及数据输出功能。读写状态机 FSM完成外部 RAM的读写状态控制,同样,为配合 ram的 IP软核时序,我们将 FSM设计为写优先。仿真后的 EDAC结构框图及读写时序如下:
需要指明的时上图仿真时外部时钟为 10Mhz,经过 altera公司 alt_pll进行了 6倍频及相位调整,前一个写指令未被执行的原因是 PLL需要 2到 3个时钟周期的调整稳定频率输出。 EDAC模块的读写时序与内部 RAM相似,写数据时第 2个时钟周期经过处理后的 8位原数据以及 4位校验数据一同被写进 RAM,读数据时,读出的 12位数据经过解码纠正后在第 5个时钟周期输出 8位数据并将纠正后的 12位数据回写进 RAM,以防止 SEE的积累。由时序图可知以上设计完全符合设计要求。
3.4全系统仿真
在完成上述几个方面的 IP定修改之后,对 mc8051的顶层系统进行了 modelsim的综合前仿真,仿真部分结果如下:
仿真时将 ROM的初始化文件设置为 mc8051文档中的 tc1.hex,方便与原 IP核进行对照。为在 modelsim仿真前,我们已将 altera的 altera_mf库加入到 modelsim库文件中。在进行功能仿真的时候调用了其中的 alt_pll来进行时钟处理。在使用该 IP核时可以根据具体采用的器件来完成倍频的功能。以上时序完全正确,说明修改后的 IP核与原 IP核功能上等同。
4结论
本文在oreganosystems公司提供的开源mc8051IP软核的基础上根据高可靠性航天电子设计的方法修改了部分模块,实践证明修改后的功能与原 mc8051IP 核完全相同,达到设计目的。可以根据需要将 IP核综合后生成的网表文件下载进现场可编程逻辑器件( FPGA)或者进行流片设计成 ASIC,具备航天使用价值。本文创新点:本文根据在研航天项目需要,定制了一种可适应航天工作环境的微控制器 IP核。采用常用的容错技术对普通商用 IP核进行了加固。该 IP核的成功改造,可以一定程度上减轻我国军品级芯片对国外的依赖,提高了效率,为后续的研究积累了宝贵经验。