新闻中心

EEPW首页 > EDA/PCB > 设计应用 > 基于FPGA的星载计算机自检EDAC电路设计

基于FPGA的星载计算机自检EDAC电路设计

作者:时间:2012-08-30来源:网络收藏

在本设计中,我们采用外置的CPU芯片和内置的RAM单元,作为自检电路的硬件平台 (或环境、资源)。CPU芯片在这里起到的作用是启动自检,处理错误中断,向地面传 送错误信息,并根据地面要求对错误信息进行处理。

在该设计中,检测一个存储单元地址仅需要4个时钟周期,如果开启自纠错功能,并且 检测到单比特错误,再增加2个时钟周期用来纠错。因此如果时钟为20MHz,并且错误数据较 少,则更新1M个RAM存储单元需要的时间约为:4×1M 20MHz = 0.2s。

更重要的是,在这0.2s的时间里,仅在出现错误时需要向产生中断,进行相应处 理,对地面进行错误报告,因而CPU处理时间很短,节省了宝贵的CPU资源。

3.3 仿真与验证

在空间环境下普遍存在的SEU,在地面环境下是很难获得的,为了在地面对该电路 设计进行验证,需要采取故障注入手段。由于在本例中RAM存储单元采用内部资源,因 此故障注入变得相对简单。在进行程序综合时,可将预先编制好的RAM存储单元初始化 文件一起综合。因此我们可在编制RAM存储单元初始化文件时,对某些比特位进行修改,以 模拟空间环境下SEU对RAM存储单元的影响。

在这里采用Xilinx公司的XQRV300为硬件载体,该型号芯片在航天领域内被广泛使 用。为节省仿真时间,数据RAM存储单元采用256*8bit,检验RAM存储单元采用25*bit。在 RAM存储单元初始化文件中,人工加入了12个单比特错误,以及1个两比特错误,如下表所示。

为仿真简便起见,向存储单元存放的正确数据与存储单元地址相同。

时钟选择为20MHz,通过采用ModelSim软件进行布线后仿真,我们可以得到图3所示结果。

图中: Clk — 系统时钟;

En — EDAC 模块使能控制;

Check — 自检启动/使能信号(信号上升沿触发一次巡检,信号为低暂停巡检);

Rw_En — 自纠错使能信号(为高允许纠错);

Err — 错误中断(标志)信号;

Rw — 自纠错标志信号(为高表示正在进行自纠错操作);

MErr — 多比特错误中断(标志)信号;

Checking — 自检标志(为高表示尚未完成本次巡检操作);

Err_Sum,Err_A,Err_D,Err_C — 错误计数,错误地址,原始数据,原始校验码;

D,A,Wr,Rd — 单片机数据、地址、写操作、读操作信号;



关键词: FPGA EDAC 星载 计算机

评论


相关推荐

技术专区

关闭