注意:本博文介紹了利用POST_CRC試錯(cuò)的方法,但總體而言,賽靈思推薦在所有架構(gòu)上使用Soft Error Mitigation (SEM)IP。
SEM IP 提供了一種可用于測(cè)試 SEU 檢測(cè)與糾正能力的機(jī)制并提供了更強(qiáng)大的調(diào)試能力。
本博文中討論的功能僅受 7 系列器件的支持。
|
功能 |
7系列 |
Kintex? UltraScale? 和 Virtex? UltraScale? |
Kintex UltraScale+? 和 Virtex UltraScale+? |
|
是 |
否,使用 SEM IP 替代 |
否,使用 SEM IP 替代 |
賽靈思 FPGA 中循環(huán)冗余校驗(yàn) (CRC) 的不同類型:
1) 一般 CRC 校驗(yàn)在一般比特流加載過(guò)程中,CRC 校驗(yàn)利用 CRC 寄存器進(jìn)行。該“CRC 寄存器”的描述詳見(jiàn)《7 系列 FPGA 配置用戶指南》(UG470)。
FPGA 在比特流被加載時(shí)計(jì)算 CRC 值,然后該值與在比特流加載結(jié)束時(shí)預(yù)期的 CRC 值進(jìn)行比較。如果兩個(gè)值匹配,則 FPGA 成功加載。
一般情況下默認(rèn)啟用 CRC 校驗(yàn)。比特流屬性為 BITSTREAM.GENERAL.CRC,其中有效選項(xiàng)包括“ENABLE”(啟用)或“DISABLE”(禁用)。
2) 回讀 CRC/POST CRC 校驗(yàn)
POST_CRC 校驗(yàn)在配置 FPGA 之后,設(shè)計(jì)運(yùn)行過(guò)程進(jìn)行。
一般情況下,比特流 CRC 校驗(yàn)是一種獨(dú)立功能,具有其自己的 CRC 校驗(yàn)寄存器。
POST_ CRC 校驗(yàn)具有用于存儲(chǔ)校驗(yàn)值的不同以上比特流 CRC 的寄存器。
啟用 POST_CRC 校驗(yàn)的目的是什么?
啟用 POST_CRC 校驗(yàn)的目的是檢測(cè)單粒子翻轉(zhuǎn)(SEU)。SEU 導(dǎo)致配置存儲(chǔ)器中的數(shù)位翻轉(zhuǎn)。
POST_CRC 可與 FRAME_ECCE2 原語(yǔ)配合使用,以便提供針對(duì)此等錯(cuò)誤的額外功能和更好的可見(jiàn)性。
可利用 FRAME_ECCE2 的輸出監(jiān)控錯(cuò)誤檢查和糾正(ECC)和回讀 CRC 電路的狀態(tài)。
如需了解更多有關(guān) FRAME_ECCE2 原語(yǔ)的詳細(xì)信息,請(qǐng)參閱《Vivado Design Suite 7 系列 FPGA 和 Zynq-7000 SoC 庫(kù)指南》(UG953)。
用戶通常想要測(cè)試這種崩潰發(fā)生時(shí)的實(shí)例,以便確保此等錯(cuò)誤被成功檢測(cè)到。
測(cè)試插入錯(cuò)誤的一種方法是編輯 PRE_COMPUTED CRC 值。
測(cè)試插入錯(cuò)誤的步驟:
將以下設(shè)置放置在設(shè)計(jì) XDC 中:
set_property POST_CRC ENABLE [current_design]#Enables the Post CRC checkingset_property POST_CRC_SOURCE PRE_COMPUTED [current_design]#Determines an expected CRC value from the bitstreamset_property POST_CRC_ACTION CONTINUE [current_design]#Even if a CRC error is detected, continue CRC checking.#Other options include HALT, CORRECT_AND_CONTINUE and CORRECT_AND_HALTset_property POST_CRC_INIT_FLAG ENABLE [current_design]#Leaves the INIT_B pin enabled as a source of the CRC error signal. Useful especially if FRAME_ECC is not used
如需了解更多有關(guān)這些設(shè)置的詳細(xì)信息,請(qǐng)參閱《Vivado Design Suite 屬性參考指南》(UG912)。
運(yùn)行設(shè)計(jì)流程并生成比特流。
在生成了比特流之后,PRE_COMPUTED CRC 的值可在 .bit 文件中校驗(yàn)。
該值會(huì)是非零值。
若要確定 PRE_COMPUTED CRC 值在比特流中的哪個(gè)位置,可查閱《7 系列 FPGA 配置用戶指南》(UG470)中的示例 7 系列比特流。
若要測(cè)試插入錯(cuò)誤,您就要禁用一般 CRC 校驗(yàn),以便讓比特流成功載入。
切記,如果對(duì)位于正常 CRC 覆蓋范圍內(nèi)的比特流進(jìn)行了任何編輯,即會(huì)標(biāo)注 CRC 錯(cuò)誤并阻止比特流加載。
若要禁用一般 CRC 校驗(yàn),您應(yīng)使用以下設(shè)置:
set_property BITSTREAM.GENERAL.CRC DISABLE [current_design]#Disables the general CRC checkingset_property POST_CRC ENABLE [current_design]#Enables the Post CRC checkingset_property POST_CRC_SOURCE PRE_COMPUTED [current_design]#Determines an expected CRC value from the bitstreamset_property POST_CRC_ACTION CONTINUE [current_design]#Even if a CRC error is detected, continue CRC checking.#Other options include HALT, CORRECT_AND_CONTINUE and CORRECT_AND_HALTset_property POST_CRC_INIT_FLAG ENABLE [current_design]#Leaves the INIT_B pin enabled as a source of the CRC error signal.Useful especially if FRAME_ECC is not used
再次運(yùn)行設(shè)計(jì)流程并生成比特流。
在生成比特流之后,您應(yīng)觀察 PRE_COMPUTED CRC 的值是否為零。這是禁用 GENERAL.CRC 的結(jié)果,以便進(jìn)行錯(cuò)誤測(cè)試。
由于預(yù)計(jì)有前面的非零值,要配置器件并觀察其行為。
INIT_B 引腳的監(jiān)控應(yīng)顯示 CRC 錯(cuò)誤。
FRAME_ECCE2 也可被用于接收連接到 ILA 上的 FRAME_ECCE2 發(fā)出的輸出信號(hào)。然后它將有可能觀察到 CRCERROR。
下文的例化可被用于 FRAME_ECCE2 原語(yǔ)的連接:
然后輸出可被傳輸給 ILA。
當(dāng)器件被編程后,通過(guò)校驗(yàn) ILA 上的信號(hào),它應(yīng)有可能查看類似于以下示例的輸出。
例如,由于未找到預(yù)期的非零 PRE_COMPUTED 值,標(biāo)注了 CRCERROR 錯(cuò)誤。
可以理解的是,大部分用戶都想要測(cè)試錯(cuò)誤檢測(cè),以確定在此等錯(cuò)誤被檢測(cè)到時(shí),將會(huì)以某種形式予以報(bào)告。該測(cè)試可讓用戶堅(jiān)信,在真實(shí)的情景中,錯(cuò)誤會(huì)被正確檢測(cè)并報(bào)告。
如上文所述,由于 SEM IP 所提供的能力,賽靈思推薦使用 SEM IP,而不是 POST_CRC。POST_CRC 的功能在較新的架構(gòu)中不受支持。
-
FPGA
+關(guān)注
關(guān)注
1660文章
22412瀏覽量
636413 -
crc
+關(guān)注
關(guān)注
0文章
205瀏覽量
30845
原文標(biāo)題:如何利用 7 系列 FPGA 中的 POST_CRC 試錯(cuò)
文章出處:【微信號(hào):FPGA-EETrend,微信公眾號(hào):FPGA開(kāi)發(fā)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
CRC循環(huán)冗余校驗(yàn)的算法
循環(huán)冗余校驗(yàn)碼的單片機(jī)及CPLD 實(shí)現(xiàn)
循環(huán)冗余校驗(yàn)碼---CRC碼
基于FPGA的循環(huán)冗余校驗(yàn)實(shí)驗(yàn)系統(tǒng)
STM32L4循環(huán)冗余校驗(yàn)模塊(CRC)介紹
循環(huán)冗余校驗(yàn)奇偶校驗(yàn)累加和校驗(yàn)等知識(shí)分享
crc循環(huán)冗余校驗(yàn)碼算法
基于EP2C35-672 FPGA實(shí)現(xiàn)CRC循環(huán)冗余校驗(yàn)的自定義指令設(shè)計(jì)
并行循環(huán)冗余校驗(yàn)算法
使用FPGA實(shí)現(xiàn)循環(huán)冗余校驗(yàn)CRC編碼器的設(shè)計(jì)資料說(shuō)明
Verilog數(shù)字系統(tǒng)基礎(chǔ)設(shè)計(jì)中的循環(huán)冗余校驗(yàn)
CRC循環(huán)冗余校驗(yàn)簡(jiǎn)介
32位可編程循環(huán)冗余校驗(yàn)(CRC)
FPGA中循環(huán)冗余校驗(yàn)的不同類型
評(píng)論