上篇文章開發者分享|延遲開始 SEM 功能的掃描 (一)介紹了如何推遲 SEM IP 的掃描。在 AMD Versal 器件中, SEM 功能的實現發生了很大變化,整個解決方案基于 library 實現。下面我們一起看一下如何推遲 XilSEM 掃描功能的開始。
我們建立一個使能了 XilSEM 功能的設計。觀察 CIPS 中 XilSEM 對應的選項:
本次測試以 CRAM 的掃描為例 (NPI 掃描方法相同):
Enable Configuration RAM soft error mitigation 選項下面有兩個小選項:Error correction capability,根據設計需求可以選擇為 Detect & Correct,或者 Detect Only。本次我們需要關注的是“Scan Strategy” 這個選項,默認是“Immediate Start”, 還有一個是“Deferred Start” 。這個選項是問是否在配置完成后立即開始 CRAM 掃描工作, 還是推遲掃描的開始直至收到指令。
接下來:
是問選擇使用硬件第一輪掃描結果作為 ECC golden 校驗值,還是使用軟件生成配置文件時計算出來的 golden 校驗值。這個選項對本次測試無影響,可以任意選擇。
高級選項“Enable PMC_PL_GPO for status signals into PL”,是把 XilSEM 的錯誤狀態輸出到 PL 里面,可以通過 PL 的 GPIO 或者邏輯監測 XilSEM 的運行情況。該選項對本次測試結果亦無影響,可以按需選擇。
綜上,我們測試以下兩種配置:
1. Immediate Scan
2. Deferred Scan
由于Deferred Start 必須由用戶發起請求,XilSEM 的工作才能開始。查看 XilSEM Example Design 的 source 文件發現如下定義:
檢測是否完成 CRAM 掃描對應的初始化工作,沒有則調用 XSem_CfrApiInitCram 來完成。
后續在插錯測試中,調用:
啟動掃描工作。
基于 VCK190 開發板, 分別生成 xsa 文件以及對應的 pdi 和 elf 文件。為便于查看 XilSEM 掃描的狀態,我們需要用到以下寄存器:
測試結果:
下載執行 Immediate Scan 的 pdi 文件:
看低四位寄存器, OBSERVATION_STATE以及 CRAM_IN_DESIGN 已經被置為1, 說明 CRAM 的掃描工作已經初始化完畢,并且正常進入了監測狀態.
接下來下載 Cram Scan 的 elf 文件:
由于 elf 文件里面默認有插錯測試,所以
CORRECTABLE_ERR 以及 ECC_CORRECTION_DONE
對應置位,表明有檢測到 ECC error,并且已經糾正。
對比測試 Deferred Scan 的效果。先下載 pdi 文件:
下載結束后, 對應寄存器的位全為0。說明 XilSEM 的工作沒有開始。
緊接著執行一次 elf 文件:
發現寄存器的返回值和 Immediate Scan 執行 elf 后的狀態一樣了。說明 XilSEM 的掃描功能已經被啟動,并且依次執行了插錯測試等。
通過這種設置,我們可以根據需要“無限”延遲 XilSEM 的掃描開始,需要時再啟動。
審核編輯:劉清
-
寄存器
+關注
關注
31文章
5357瀏覽量
120658 -
SEM
+關注
關注
0文章
225瀏覽量
14458 -
GPIO
+關注
關注
16文章
1211瀏覽量
52178
原文標題:開發者分享|延時開始 SEM 功能的掃描(二)
文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發者社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論