[发明专利]一种流水线型FPGA回读帧ECC电路有效
申请号: | 201210005852.0 | 申请日: | 2012-01-10 |
公开(公告)号: | CN102594334A | 公开(公告)日: | 2012-07-18 |
发明(设计)人: | 毛劲松;来金梅;周灏;王元 | 申请(专利权)人: | 复旦大学 |
主分类号: | H03K19/177 | 分类号: | H03K19/177;G06F11/10 |
代理公司: | 上海正旦专利代理有限公司 31200 | 代理人: | 陆飞;盛志范 |
地址: | 200433 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 流水 线型 fpga 回读帧 ecc 电路 | ||
技术领域
本发明属于FPGA配置安全技术领域,具体为一种流水线的FPGA回读帧ECC(Error Correcting Code)汉明码校验检错纠错电路。
背景技术
传统的FPGA(可编程逻辑门阵列)下载一般采用CRC(循环冗余校验)进行配置数据的校验,以检验FPGA的配置数据是否正确下载到编程点。但随着FPGA的不断开发和应用,例如SRAM型FPGA在太空中内部编程点容易因射线粒子的冲击而发生翻转,因此很有必要对编程点内的数据进行回读,以纠正发生错误的编程点。
汉明码是 1950 年由美国贝尔实验室提出来的,是第一个设计用来纠正错误的线性分组码,汉明码及其变型已广泛应用于数字通信和数据存储系统中作为差错控制码。汉明码通过在通信的数据信息中插入一定的监督码元来检测和纠正发生错误的信息位。
FPGA的ECC(错误检测与纠正)校验电路是对回读的单帧数据进行汉明译码,传统的方法是先存储回读的单帧数据然后再进行校验,这种方法会造成额外的存储资源开销,而且把一帧回读数据全部同时进行异或运算会降低整个配置电路的速度。本发明所采用的流水线型帧ECC电路充分利用FPGA回读数据的特征,在FPGA回读帧数据的同时即完成单帧数据的ECC校验,而且也不用额外的存储资源,每一级流水线的延时相对于整个电路的延时而言是非常小的,不会影响到整个配置电路的速度。
发明内容
本发明目的在于提供一种高速、低功耗、低面积的FPGA回读帧ECC电路。
本发明提供的FPGA回读帧ECC电路,可以根据不同的回读总线位宽,回读数据帧的长度来灵活地调整流水线的级数以及每级流水线的具体计算内容。设回读总线位宽为M位,每一帧包含N个有效数据,则FPGA回读帧ECC电路设计为N级流水线,每级流水线的输入数据为M位(如图1所示);生成k个校验位,k的值由公式(1)决定。每一级共用相同的时钟、复位、数据端口。每一级的输出作为下一级的输入,第N级的输出作为整个ECC电路的输出。
以回读总线位宽为32位,每一帧包含40个有效数据为例(即M=32,N=40),则电路共需要40级流水线,每一级流水线输入数据为32位。通过公式(1)计算可得共产生12位校验位,每一级流水线在使能有效的情况下对输入数据进行一定的异或运算,产生12位临时的校验位。这12位临时校验位传输给下一级,参与下一级的计算,以此顺序往后传递,直到最后一级(第40级)计算完成,第40级计算输出的12位校验位作为整体汉明码校验计算结果(如图1所示)。
本发明的FPGA回读帧ECC电路中,单级流水线的计算示意图如图2所示,每一级包含k个触发器以及相应的组合逻辑,组合逻辑由异或计算单元组成,主要用于对上一级的校验位输出以及输入的M位数据进行异或运算,每一个校验位所对应的组合逻辑都不相同,但是相同位置的校验位是随着流水线传递的。
因为第一级流水线不接收上一级流水线的输入,所以第一级流水线的输入端没有来自上一级的P[(k-1) : 0],除第一级流水线以外,每一级流水线都包含M位的数据输入位,以及K位的上一级校验位输入,因为有了上一级校验位的输入,这样才能保证计算的连续性和传递性。每一级流水线都是完成特定的异或计算功能,我们把汉明码校验计算的某些与当前流水线级相关的位放在当前流水线里面计算,这样就把整体的计算分摊到了每一级去,而且计算结果往后传递,总能够保证最后计算的完整性。除此以外每一级流水线还包括必要的使能控制端,时钟,复位等信号,每一级流水线的使能端都不相同,通过一个全局移位寄存器来使能特定的流水线级。
图3是针对图1的输入端口给出的一个工作时序图,复位信号Rst低有效,时钟Clk信号上升沿采样使能En信号和数据Data[(M-1):0]。如图3所示,时钟上升沿采样到第一个En有效之后启动第一级流水线开始计算,第一级流水线对当前的输入数据进行异或运算,计算之后的结果(临时校验位)传递给第二级流水线。在时钟上升沿采样到第二个En有效之后启动第二级流水线,第二级流水线把第一级计算的结果连同当前所输入的有效数据一同进行异或计算,产生新的临时校验位传递给第三级。以此往后传递直到最后一级计算完成,使能Ecc_valid信号有效,则整个汉明码的计算过程就结束。
采用流水线的方式最终生成校验位的数量k是不会发生变化的,实际上就是对于每一个校验位把高达几百位的异或计算分成N次来计算,计算总的结果是不会变化的,每一级的输出的宽度都是k,k的计算满足以下公式:
(1)
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于复旦大学,未经复旦大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210005852.0/2.html,转载请声明来源钻瓜专利网。