跳转到主要内容
--## 电子创新网图库均出自电子创新网,版权归属电子创新网,欢迎其他网站、自媒体使用,使用时请注明“图片来自电子创新网图库”,不过本图库图片仅限于网络文章使用,不得用于其他用途,否则我们保留追诉侵权的权利。 ##--

本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
judy 提交于

作者:Ivy Guo,AMD工程师;来源:AMD开发者社区

上次介绍了如何推迟SEM IP的扫描。 在Versal器件中, SEM功能的实现发生了很大变化,整个解决方案是基于library实现的。下面我们一起看一下如何推迟XilSEM扫描功能的开始。

参考<如何使能Versal的XilSEM功能> 一文, 我们建立一个使能了XilSEM功能的设计。 观察CIPS中XilSEM对应的选项:

图1:CIPS中XilSEM对应的选项.jpg

本次测试以CRAM的扫描为例 (NPI扫描方法相同):

Enable Configuration RAM soft error mitigation选项下面有两个小选项: Error correction capability, 根据设计需求可以选择为Detect & Correct, 或者Detect Only. 本次我们需要关注的是’Scan Strategy’ 这个选项, 默认是’Immediate Start’, 还有一个是’Deferred Start’ . 这个选项是问是否在配置完成后立即开始CRAM扫描工作, 还是推迟扫描的开始直至收到指令。

图2:指令.jpg

接下来:

图2-2.jpg

是问选择使用硬件第一轮扫描结果作为ECC golden校验值, 还是使用软件生成配置文件时计算出来的golden校验值。 这个选项对本次测试无影响。 可以任意选择。

高级选项’Enable PMC_PL_GPO for status signals into PL’, 是把XilSEM的错误状态输出到PL里面,可以通过PL的GPIO或者逻辑监测XilSEM的运行情况. 该选项对本次测试结果亦无影响. 可以按需选择。

图3.jpg

综上,我们测试以下两种配置:

1、Immediate Scan

 图4:配置.jpg


2、Deferred Scan

图5.jpg

由于Deferred Start必须由用户发起请求,XilSEM的工作才能开始.查看XilSEM Example Design的source文件发现如下定义:

  /* Initialize CRAM scan if not initialized
        * This is applicable when CRAM Scan is set for deferred start up.
        */
       (void)XSem_CmdCfrGetStatus(&CfrStatusInfo);
       IsInitDone = CfrStatusInfo.Status & CRAM_STATUS_INIT_DONE_MASK;
       if (IsInitDone != CRAM_STATUS_INIT_DONE_MASK) {
             Status = XSem_CfrApiInitCram();
             if (XST_SUCCESS != Status) {
                    xil_printf("CRAM Initialization failed\n\r");
                    goto END;
             } else {
                    xil_printf("CRAM Initialization Done\n\r");
             }
       } else {
             xil_printf("CRAM scan is configured for immediate start\n\r");
       }

检测是否完成CRAM扫描对应的初始化工作,没有,则调用XSem_CfrApiInitCram来完成。
后续在插错测试中,调用:

       Status = XSem_CfrApiStartScan();
       if (XST_SUCCESS != Status) {
             xil_printf("Start Scan Failed\n\r");
             goto END;


启动扫描工作.
基于VCK190开发板, 分别生成xsa文件以及对应的pdi和elf文件. 为便于查看XilSEM扫描的状态,我们需要用到以下寄存器:

SEM_CRAM_SCAN_STATUS (PLM_RTCA) Register
Register Name   SEM_CRAM_SCAN_STATUS
Absolute Address            0x00F2014084 (PLM_RTCA)
Description        XILSEM CRAM Scan Status Register
https://docs.xilinx.com/r/en-US/am012-versal-register-reference/SEM_CRAM_SCAN_STATUS-PLM_RTCA-Register

图6.jpg

图7.jpg

测试结果:

下载执行Immediate Scan的pdi文件:

图8:测试结果.jpg

看低四位寄存器, OBSERVATION_STATE以及CRAM_IN_DESIGN已经被置为1, 说明CRAM的扫描工作已经初始化完毕,并且正常进入了监测状态。

接下来下载Cram Scan的elf文件:

图9:Cram Scan的elf文件.jpg

由于elf文件里面默认有插错测试, 所以CORRECTABLE_ERR以及ECC_CORRECTION_DONE对应置位,表明有检测到ECC error,并且已经纠正。

对比测试Deferred Scan的效果. 先下载pdi文件:

图10:下载pdi文件.jpg

下载结束后, 对应寄存器的位全为0. 说明XilSEM的工作没有开始。

紧接着执行一次elf文件:

图11:elf文件.jpg

发现寄存器的返回值和Immediate Scan执行elf后的状态一样了. 说明XilSEM的扫描功能已经被启动, 并且依次执行了插错测试等。

通过这种设置, 我们可以根据需要’无限’延迟XilSEM的扫描开始, 需要时再启动。

产品与工具

ACAP

ACAP(Adaptive Compute Acceleration Platform)是赛灵思(Xilinx)公司提出的概念,表示一种自适应计算加速平台。ACAP 是在 FPGA(可编程门阵列)的基础上演进而来的,结合了 FPGA 的灵活性和可编程性以及 ASIC(专用集成电路)的性能和效率。

ACAP 旨在应对多样化、动态性和高度定制化的计算需求。与传统的 FPGA 不同,ACAP 具有更高级别的自适应性,能够在运行时重新配置其硬件架构,以适应不同的工作负载。这种动态适应性使得 ACAP 在处理各种任务时能够更加高效地利用硬件资源。

精彩推荐

2026英伟达GTC大会专题

CES 2026(国际消费类电子产品展览会)专题

第四届南渡江智慧医疗与康复产业高峰论坛

第十五届松山湖中国IC创新高峰论坛

第四届滴水湖中国RISC-V产业论坛

Recent comments

  • 1873774516_516738
  • 2460440665_516737
  • 1457585548_516736
  • 780289498_516735
  • 2283262460_516734