RTG4 LSRAM 存储器上的 MICROCHIP 错误检测和纠正
修订历史
修订历史描述了文档中实施的更改。更改按修订列出,从最新发布开始。
修订版 4.0
以下是此次修订中所做更改的摘要。
- 更新了 Libero SoC v2021.2 的文档。
- 添加了附录 1:使用 FlashPro Express 对器件进行编程,第 14 页。
- 添加了附录 2:运行 TCL 脚本,第 16 页。
- 删除了对 Libero 版本号的引用。
修订版 3.0
更新了 Libero v11.9 SP1 软件版本的文档。
修订版 2.0
更新了 Libero v11.8 SP2 软件版本的文档。
修订版 1.0
本文档的首次发布。
RTG4 LSRAM 存储器的错误检测和纠正
此参考设计描述了 RTG4™ FPGA LSRAM 的错误检测和纠正 (EDAC) 功能。 在单粒子翻转 (SEU) 易受影响的环境中,RAM 容易出现由重离子引起的瞬态错误。 这些错误可以通过使用纠错码 (ECC) 来检测和纠正。 RTG4 FPGA RAM 块具有内置 EDAC 控制器,可生成用于纠正 1 位错误或检测 2 位错误的纠错码。
如果检测到 1 位错误,EDAC 控制器会纠正错误位并将纠错标志 (SB_CORRECT) 设置为高电平有效。 如果检测到 2 位错误,EDAC 控制器会将错误检测标志 (DB_DETECT) 设置为高电平有效。
有关 RTG4 LSRAM EDAC 功能的更多信息,请参阅 UG0574:RTG4 FPGA Fabric
用户指南。
在此参考设计中,1 位错误或 2 位错误是通过 SmartDebug GUI 引入的。 使用图形用户界面 (GUI) 观察 EDAC,利用 UART 接口访问 LSRAM 进行数据读/写,Libero® 片上系统 (SoC) SmartDebug (JTAG) 用于将错误注入 LSRAM 内存。
设计要求
表 1 列出了运行 RTG4 LSRAM EDAC 演示的参考设计要求。
表 1 • 设计要求
软件
- 自由人SoC
- FlashPro 快递
- 智能调试
- 主机驱动程序 USB 到 UART 驱动程序
笔记: 本指南中显示的 Libero SmartDesign 和配置屏幕截图仅用于说明目的。
打开 Libero 设计以查看最新更新。
先决条件
开始之前:
下载并安装 Libero SoC(如 web此设计的站点)从以下位置在主机 PC 上: https://www.microsemi.com/product-directory/design-resources/1750-libero-soc
演示设计
下载演示设计 files 来自 Microsemi web网站位于: http://soc.microsemi.com/download/rsc/?f=rtg4_dg0703_df
演示设计 file包括:
- Libero SoC项目
- GUI安装程序
- 编程 files
- 自述文件.txt file
- TCL_脚本
主机 PC 上的 GUI 应用程序通过 USB-UART 接口向 RTG4 设备发出命令。 此 UART 接口采用 CoreUART 设计,CoreUART 是 Libero SoC IP 目录中的逻辑 IP。 RTG4 结构中的 CoreUART IP 接收命令并将它们传输到命令解码器逻辑。 命令解码器逻辑解码读取或写入命令,该命令使用存储器接口逻辑执行。
内存接口块用于读/写和监控 LSRAM 错误标志。 内置 EDAC 会在从 LSRAM 读取数据时纠正 1 位错误,并将纠正后的数据提供给用户界面,但不会将纠正后的数据写回 LSRAM。 内置 LSRAM EDAC 不实现擦除功能。 演示设计实现了清理逻辑,它监视 1 位校正标志,并在发生单位错误时用校正后的数据更新 LSRAM。
SmartDebug GUI 用于将 1 位或 2 位错误注入 LSRAM 数据。
图 1 显示了 RTG4 LSRAM EDAC 演示设计的顶层框图。
图 1 • 顶层框图
以下是演示设计配置:
- LSRAM 配置为 ×18 模式,EDAC 通过将 LSRAM 的 ECC_EN 信号连接到高电平来启用。
笔记: LSRAM EDAC 仅支持 ×18 和 ×36 模式。 - CoreUART IP 配置为以 115200 波特率与主机 PC 应用程序通信。
- RTG4FCCCECALIB_C0 配置为以 80 MHz 为 CoreUART 和其他结构逻辑提供时钟。
特征
以下是演示设计功能:
- 读写 LSRAM
- 使用 SmartDebug 注入 1 位和 2 位错误
- 显示 1 位和 2 位错误计数值
- 提供清除错误计数值
- 启用或禁用内存清理逻辑
描述
此演示设计涉及以下任务的实现:
- 初始化和访问 LSRAM
结构逻辑中实现的内存接口逻辑接收来自 GUI 的初始化命令,并使用增量数据初始化 LSRAM 的前 256 个内存位置。 它还通过接收来自 GUI 的地址和数据对 LSRAM 的 256 个内存位置执行读写操作。 对于读取操作,设计从 LSRAM 获取数据并将其提供给 GUI 进行显示。 期望是设计在使用 SmartDebug 之前不会诱发错误。
笔记: 未初始化的内存位置可能有随机值,SmartDebug 可能会在这些位置显示单位或双位错误。
- 注入 1 位或 2 位错误
SmartDebug GUI 用于将 1 位或 2 位错误注入 LSRAM 的指定内存位置。 使用 SmartDebug 执行以下操作以向 LSRAM 注入 1 位和 2 位错误:- 打开 SmartDebug GUI,单击调试 FPGA 阵列。
- 转到 Memory Blocks 选项卡,选择内存实例,然后右键单击 Add。
- 要读取内存块,请单击读取块。
- 将单位或双位错误注入一定深度的 LSRAM 的任意位置。
- 要写入修改后的位置,请单击 Write Block。
在通过SmartDebug (JTAG) 接口,绕过 EDAC 控制器并且不计算步骤 e 中写入操作的 ECC 位。
- 错误计数
8 位计数器用于提供错误计数,并被设计到结构逻辑中以对 1 位或 2 位错误进行计数。 命令解码器逻辑在从 GUI 接收命令时向 GUI 提供计数值。
时钟结构
在此演示设计中,有一个时钟域。 内部 50 MHz 振荡器驱动 RTG4FCCC,后者进一步驱动 RTG4FCCCECALIB_C0。 RTG4FCCCECALIB_C0 生成一个 80 MHz 时钟,为 COREUART、cmd_decoder、TPSRAM_ECC 和 RAM_RW 模块提供时钟源。
下图显示了演示设计的时钟结构。
图 2 • 时钟结构
重置结构
在此演示设计中,COREUART、cmd_decoder 和 RAM_RW 模块的复位信号通过 RTG4FCCCECALIB_C0 的 LOCK 端口提供。 下图显示了演示设计的复位结构。
图 3 • 复位结构
设置演示设计
以下部分介绍如何设置 RTG4 开发套件和 GUI 以运行演示设计。
跳线设置
- 连接RTG4开发套件上的跳线,如表2所示。
表 2 • 跳线设置跳线 引脚(来自) 引脚(到) 评论 J11、J17、J19、J21、J23、J26、J27、J28 1 2 默认 J16 2 3 默认 J32 1 2 默认 J33 1 3 默认 2 4 笔记: 关闭电源开关 SW6,同时连接跳线。
- 将 USB 电缆(迷你 USB 转 Type-A USB 电缆)连接到 RTG47 开发套件的 J4,并将电缆的另一端连接到主机 PC 的 USB 端口。
- 确保自动检测到 USB 到 UART 桥接驱动程序。 这可以在主机 PC 的设备管理器中进行验证。
图 4 显示了 USB 2.0 串行端口属性和连接的 COM31 和 USB 串行转换器 C。
图 4 • USB 转 UART 桥接器驱动程序
笔记: 如果未安装 USB 转 UART 桥接驱动程序,请从以下位置下载并安装驱动程序 www.microsemi.com//documents/CDM_2.08.24_WHQL_Certified.zip
图 5 显示了用于在 RTG4 开发套件上运行 EDAC 演示的电路板设置。
对演示设计进行编程
- 启动 Libero SOC 软件。
- 使用作业对 RTG4 开发套件进行编程 file 作为设计的一部分提供 file如果要使用 FlashPro Express 软件,请参阅附录 1:使用 FlashPro Express 对设备进行编程,第 14 页。
笔记: 一旦编程完成工作 file 通过 FlashPro Express 软件,继续执行 EDAC 演示 GUI,第 9 页。否则,继续执行下一步。 - 在 Libero 设计流程中,单击运行程序操作。
- 编程完成后,“运行程序操作”前面会出现绿色勾号,表示演示设计的编程成功。
EDAC 演示图形用户界面
EDAC 演示提供了一个用户友好的 GUI,如图 7 所示,它在与 RTG4 开发套件通信的主机 PC 上运行。 UART 用作主机 PC 和 RTG4 开发套件之间的底层通信协议。
GUI 包含以下部分:
- COM 端口选择以 4 波特率建立与 RTG115200 FPGA 的 UART 连接。
- LSRAM Memory Write:将 8 位数据写入指定的 LSRAM 内存地址。
- 内存清理:启用或禁用清理逻辑。
- LSRAM Memory Read:从指定的 LSRAM 内存地址读取 8 位数据。
- 错误计数:显示错误计数并提供将计数器值清零的选项。
- 1 位错误计数:显示 1 位错误计数并提供将计数器值清零的选项。
- 2 位错误计数:显示 2 位错误计数并提供将计数器值清零的选项。
- 日志数据:提供使用 GUI 执行的每个操作的状态信息。
运行演示
以下步骤描述了如何运行演示:
- 去\v1.2.2\v1.2.2\Exe,双击EDAC_GUI.exe,如图8所示。
- 从列表中选择 COM31 端口并单击连接。
单比特错误注入和纠正
- 在提供的 Libero 设计中,双击设计流程中的 SmartDebug Design。
- 在 SmartDebug GUI 中,单击调试 FPGA 阵列。
- 在 Debug FPGA Array 窗口中,转到 Memory Blocks 选项卡。 它将以逻辑和物理方式显示设计中的 LSRAM 块 view. 逻辑块用 L 图标显示,物理块用 P 图标显示。
- 选择物理块实例并右键单击添加。
- 要读取内存块,请单击读取块。
- 在 LSRAM 深度 1 的任意位置向 8 位数据中注入 256 位错误,如下图所示,在 LSRAM 的第 1 位位置注入 0 位错误。
- 单击 Write Block 以将修改后的数据写入预期位置。
- 转到 EDAC GUI,在 LSRAM Memory Read 部分中输入 Address 字段,然后单击 Read,如下图所示。
- 观察 GUI 中的 1 位错误计数和读取数据字段。 错误计数值增加 1。
当 EDAC 纠正错误位时,读取数据字段显示正确的数据。
笔记: 如果未启用内存清理,则每次从同一 LSRAM 地址读取错误计数都会增加,因为它会导致 1 位错误。
双位错误注入和检测
- 执行单比特错误注入和纠正,第 1 页中给出的步骤 5 到步骤 10。
- 在深度为 2 的 LSRAM 的任何位置的 8 位数据中注入 256 位错误,如下图所示,其中 2 位错误被注入到 LSRAM 的位置“A”。
- 单击 Write Block 将修改后的数据写入到预期位置。
- 转到 EDAC GUI,在 LSRAM Memory Read 部分中输入 Address 字段,然后单击 Read,如下图所示。
- 观察 GUI 中的 2 位错误计数和读取数据字段。 错误计数值增加 1。
读取数据字段显示损坏的数据。
在 RTG4 中执行的所有操作都记录在 GUI 的串行控制台部分。
结论
该演示重点介绍了 RTG4 LSRAM 存储器的 EDAC 功能。 1 位错误或 2 位错误是通过 SmartDebug GUI 引入的。 使用 EDAC GUI 观察 1 位错误纠正和 2 位错误检测。
使用 FlashPro Express 对器件进行编程
本节介绍如何使用编程作业对 RTG4 设备进行编程 file 使用 FlashPro Express。
要对器件进行编程,请执行以下步骤:
- 确保板上的跳线设置与UG3的表0617中列出的相同:
RTG4 开发套件用户指南。 - 或者,当使用外部 FlashPro32、FlashPro2 或 FlashPro3 编程器时,跳线 J4 可以设置为连接引脚 5-6,而不是使用嵌入式 FlashPro5 的默认跳线设置。
笔记: 进行跳线连接时,电源开关 SW6 必须关闭。 - 将电源线连接到电路板上的 J9 连接器。
- 打开电源开关 SW6。
- 如果使用嵌入式 FlashPro5,将 USB 电缆连接到连接器 J47 和主机 PC。
或者,如果使用外部编程器,则将带状电缆连接到 JTAG 接头 J22 并将编程器连接到主机 PC。 - 在主机 PC 上,启动 FlashPro Express 软件。
- 单击新建或从项目菜单中选择 New Job Project from FlashPro Express Job 创建一个新的作业项目,如下图所示。
- 在来自 FlashPro Express 作业的新建作业项目对话框中输入以下内容:
- 编程工作 file:单击浏览,然后导航到 .job 所在的位置 file 位于并选择 file. 默认位置是: \rtg4_dg0703_df\Programming_Job
- FlashPro Express 作业项目位置:单击浏览并导航到所需的 FlashPro Express 项目位置。
- 单击确定。 所需的编程 file 被选中并准备在设备中进行编程。
- 将出现 FlashPro Express 窗口,确认编程器编号出现在编程器字段中。 如果没有,请确认电路板连接并单击 Refresh/Rescan Programmers。
- 单击运行。 当设备烧录成功后,会显示 RUN PASSED 状态,如下图所示。
- 关闭 FlashPro Express 或单击“项目”选项卡中的“退出”。
运行 TCL 脚本
设计中提供TCL脚本 fileTCL_Scripts 目录下的 s 文件夹。 如果需要,设计
可以重现从设计实施到作业生成的流程 file.
要运行 TCL,请按照以下步骤操作:
- 启动自由人软件
- 选择项目 > 执行脚本…。
- 单击浏览并从下载的 TCL_Scripts 目录中选择 script.tcl。
- 单击运行。
成功执行 TCL 脚本后,将在 TCL_Scripts 目录中创建 Libero 项目。
有关 TCL 脚本的更多信息,请参阅 rtg4_dg0703_df/TCL_Scripts/readme.txt。
有关 TCL 命令的更多详细信息,请参阅 Libero® SoC TCL 命令参考指南。 如果在运行 TCL 脚本时遇到任何疑问,请联系技术支持。
Microsemi 对此处包含的信息或其产品和服务对任何特定目的的适用性不作任何保证、陈述或保证,Microsemi 也不承担因应用或使用任何产品或电路而产生的任何责任。 在此销售的产品和 Microsemi 销售的任何其他产品都经过了有限的测试,不应与任务关键型设备或应用程序一起使用。 任何性能规格都被认为是可靠的,但未经验证,买方必须单独、与任何最终产品一起或安装在任何最终产品中进行并完成产品的所有性能和其他测试。 买方不得依赖 Microsemi 提供的任何数据和性能规格或参数。 买方有责任独立确定任何产品的适用性并对其进行测试和验证。 Microsemi 在此提供的信息是“按原样、在哪里”提供的,并且存在所有错误,与此类信息相关的全部风险完全由买方承担。 Microsemi 没有明确或暗示地向任何一方授予任何专利权、许可或任何其他知识产权,无论是关于此类信息本身还是此类信息所描述的任何内容。 本文档中提供的信息是 Microsemi 的专有信息,Microsemi 保留随时对本文档中的信息或任何产品和服务进行任何更改的权利,恕不另行通知。
关于 Microsemi Microsemi 是 Microchip Technology Inc.(纳斯达克股票代码:MCHP)的全资子公司,为航空航天与国防、通信、数据中心和工业市场提供全面的半导体和系统解决方案组合。 产品包括高性能和抗辐射模拟混合信号集成电路、FPGA、SoC 和 ASIC; 电源管理产品; 计时和同步设备以及精确的时间解决方案,为时间设定了世界标准; 语音处理设备; 射频解决方案; 分立元件; 企业存储和通信解决方案、安全技术和可扩展的反Tamp呃产品; 以太网解决方案; 以太网供电 IC 和中跨; 以及定制设计能力和服务。 了解更多信息 www.microsemi.com.
微半导体总部
一个企业,Aliso Viejo,
CA 92656美国
美国境内:+1 800-713-4113
美国境外:+1 949-380-6100
销售额:+1 949-380-6136
传真:+1 949-215-4996
邮箱:销售。support@microsemi.com
www.microsemi.com
©2021 Microsemi,Microchip Technology Inc. 的全资子公司。保留所有权利。 Microsemi 和 Microsemi 徽标是 Microsemi Corporation 的注册商标。 所有其他商标和服务标志均为其各自所有者的财产。
Microsemi 专有 DG0703 修订版 4.0
文件/资源
![]() |
RTG4 LSRAM 存储器上的 MICROCHIP 错误检测和纠正 [pdf] 用户指南 DG0703 Demo, RTG4 LSRAM 内存错误检测和纠正, RTG4 LSRAM 内存检测和纠正, RTG4 LSRAM 内存, LSRAM 内存 |