[發明專利]一種流水線型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.szxzyx.cn/pat/books/201210005852.0/2.html,轉載請聲明來源鉆瓜專利網。





