欢迎来到天天文库
浏览记录
ID:20316210
大小:248.97 KB
页数:9页
时间:2018-10-09
《在alterafpga设备中使用循环冗余检验(crc)实现错误的检查和恢复(陈少华_毕设翻译)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、在AlteraFPGA设备中使用循环冗余检验(CRC)实现错误的检查和恢复简介:在诸如航空,电信,系统控制和军事应用等关键应用中,重要的是能够实现丁面这些功能:1、确保在FPGA器件屮存储的配置数据是正确无误的。2、能够预告系统中的偶然的配置错误。专用电路被内置于某些设备屮,它们组成了循环冗余校验(CRC)的,可以随意为SEUs空间单粒子翻转效应(SingleEventUpset,SEU)连续自动检查的错误检测功能。(注:SEU是由带电粒子投射到集成电路器件的敏感区域引起的,通常会导致FPGA屮的存储单元内容改变(即位翻转),
2、带来的后果可能是计算结果的错误、程序执行序列错误,甚至是系统的崩溃。)从4.1版开始。Quamis®II软件(在FPGA器件中)就已经提供了CRC特征的错误检测功能。下面系列的器件都支持QuartusIICRC检测功能:■Stratix®IV■StratixIII■StratixII■StratixIIGX■Stratix■StratixGX■Cyclone®III■StratixGX■CycloneII■CycloneII■Cyclone■Cyclone■StratixII■StratixIIGX■Stratix关于Stra
3、tixIV,StratixIIIandCycloneIII系列的器件的CRC错误检测功能,请参阅有关的SEU章节的设备手册。本应用指南包括下列主题:■“错误检测原理”第2页■“配罝错误检测”第2页■“用户模式错误检测”第3页■“CRC_ERROR引脚输出”第4页■“错误各测块”第6页■“错误检测时间”第8页■“软件支持”第11页■“恢复从CRC错误”第16页■“结论”,第16页一、错误捡测基本原理:错误检测判定通过媒介接收到的数据是否在传输过程中损坏。为了实现这一目紐,发送端采用一函数来计算一个数据校验伉和追加校验原始数据帧。
4、接收器使用相同的计算方法生成一个接收到的数据校验值和比较得到校验传输的校验值。如果这两个校验值相等,收到的数据帧是正确的,没有任何数据在传输过程中发生损坏或储存。CRC特征的错误检测功能使用同一个概念。当Stratix和CycloneCStratixII,StratixIIGX,Stratix,StratixGX,CycloneII,和Cyclone)系列的设备在用户模式下,CRC特征的错误检测功能保证了配置数据的完整性。二、错误检测的配置:CRC特征的错误检测功能,只有当设备的川户模式,才是一个超出基于CRC帧功能的额外功能
5、,。此功能在配置Stratix和Cyclone系列器件时检查过程屮数据的完整性。在配貫模式,基于帧的CRC是存储在配罝数据中的,它还包含每个数据帧的CRC值。在配置过程中,FPGA器件计算出基于接收到的数据帧的CRC值并和数据流中CRC数据帧进行比较。整个配置过程一直进行,直至该设备检测到一个错误或配置就完成了。三、用户模式错误检测:所有Stratix和Cyclone系列的器件都内置丫错误检测电路用來检测在配置随机存储器CRAM(configurationrandom-accessmemory)单元中的巾软错误造成的数据错误。
6、软故障是由于辐射粒子造成CRAM屮的比特位状态发生变化的。当数据位改写与重新配置设备的正确值,该设备正常运行。此错误检测能力不断计算配貫的CRAM比特位CRC值,并与预先计算的CRC值比较。如果计算的CRC俏.相四配,则在当前的配罝CRAM比特位屮没有错误。整个错误检测过程将持续到设备位(通过设置nCONFIG为低电平)。Stratix和Cyclone系列器件的错误检测功能,不检查的内存块和I/O缓冲器。这些设备支持的内存块校验用来检查任何错误的内存块的内容位。这些I/O缓冲区在错误检测中米被验证,因为这些位使川移动存储作为更
7、能抵抗软错误存储元素。类似的触发器是用來存储预先计算CRC和其他错误检测电路的选择位。在Stratix和Cyclone系列器件的错误检测电路采用32位的IEEE802协会标准的CRC,32位多项式作为CRC的生成器。因此,一个32位CRC计算erformedrtl没备。如果软错误不会发生,巾此产生的32位签名侪为0X00000000,这个值将反映在输出信号CRC_ERROR的一个0上。如果在设备中发生一个软错误,这个结果签名值将非零并且输出信号CRC_ERROR为1。对于StratixII,StratixIIGX,andCyc
8、loneII系列的器件,在用户模式时,支持CHANGE_EDREG的JTAG指令,这些指令允许你写到32位存储寄存器。您可以使用Jam文件(.Jam),以自动实现测试和验证过程。这是一个强大的设计功能,它使您能够在系统,在运行状态T核对的CRC功能,却不用重新配置设备。然后,
此文档下载收益归作者所有