英特尔 UG-01173 故障注入 FPGA IP 核
故障注入英特尔® FPGA IP 核用户指南
故障注入英特尔® FPGA IP 内核将错误注入到 FPGA 设备的配置 RAM (CRAM) 中。 此过程模拟在正常操作期间由于单事件干扰 (SEU) 可能发生的软错误。 SEU 是罕见事件,因此难以测试。 在您将故障注入 IP 核实例化到您的设计中并配置您的设备后,您可以使用英特尔 Quartus® Prime 故障注入调试器工具在 FPGA 中引入故意错误,以测试系统对这些错误的响应。
相关信息
- 单一事件干扰
- AN 737:英特尔 Arria 10 器件中的 SEU 检测和恢复
特征
- 允许您评估系统响应以减轻单一事件功能中断 (SEFI)。
- 允许您在内部执行 SEFI 表征,无需进行整个系统波束测试。 相反,您可以将波束测试限制在设备级别的时间故障 (FIT)/Mb 测量。
- 根据与您的设计架构相关的 SEFI 特性缩放 FIT 率。 您可以在整个设备中随机分布故障注入,或将它们限制在特定功能区域以加快测试速度。
- 优化您的设计以减少由单一事件干扰 (SEU) 引起的中断。
设备支持
故障注入 IP 内核支持 Intel Arria® 10、Intel Cyclone® 10 GX 和 Stratix® V 系列器件。 Cyclone V 系列支持在订购代码中带有 -SC 后缀的器件上进行故障注入。 有关 -SC 后缀 Cyclone V 器件的订购信息,请联系您当地的销售代表。
资源利用率和性能
英特尔 Quartus Prime 软件为 Stratix V A7 FPGA 生成以下资源估算。 其他设备的结果类似。
英特尔公司。 版权所有。 英特尔、英特尔徽标和其他英特尔标志是英特尔公司或其子公司的商标。 英特尔根据英特尔的标准保修保证其 FPGA 和半导体产品的性能符合当前规格,但保留随时更改任何产品和服务的权利,恕不另行通知。 英特尔不承担因应用或使用此处描述的任何信息、产品或服务而产生的任何责任或义务,除非英特尔明确书面同意。 建议英特尔客户在依赖任何已发布信息和下订单购买产品或服务之前获取最新版本的设备规格。 *其他名称和品牌可能被认为是他人的财产。
故障注入 IP 核 FPGA 性能和资源利用
设备 | 资产负债表 | 逻辑寄存器 | M20K | |
基本的 | 次要 | |||
Stratix V A7 | 3,821 | 5,179 | 0 | 0 |
英特尔 Quartus Prime 软件安装包括英特尔 FPGA IP 库。 该库提供了许多有用的 IP 核供您的生产使用,无需额外的许可证。 一些英特尔 FPGA IP 核需要购买单独的许可才能用于生产。 英特尔 FPGA IP 评估模式允许您在决定购买完整的生产 IP 核许可证之前,在仿真和硬件中评估这些许可的英特尔 FPGA IP 核。 在完成硬件测试并准备好在生产中使用 IP 后,您只需为许可的英特尔 IP 核购买完整的生产许可证。 Intel Quartus Prime 软件默认在以下位置安装 IP 内核:
IP核安装路径
IP核安装位置
地点 | 软件 | 平台 |
:\intelFPGA_pro\quartus\ip\altera | 英特尔 Quartus Prime 专业版 | 视窗* |
:\intelFPGA\quartus\ip\altera | 英特尔 Quartus Prime 标准版 | 视窗 |
:/intelFPGA_pro/quartus/ip/altera | 英特尔 Quartus Prime 专业版 | Linux * |
:/intelFPGA/quartus/ip/altera | 英特尔 Quartus Prime 标准版 | Linux |
笔记: Intel Quartus Prime 软件不支持安装路径中的空格。
定制和生成 IP 核
您可以定制 IP 核以支持各种应用。 Intel Quartus Prime IP Catalog 和参数编辑器允许您快速选择和配置 IP 核端口、特性和输出 files.
IP 目录和参数编辑器
IP 目录显示可用于您的项目的 IP 核,包括 Intel FPGA IP 和您添加到 IP 目录搜索路径的其他 IP。使用 IP 目录的以下功能来定位和定制 IP 核:
- 过滤 IP 目录以显示活动设备系列的 IP 或显示所有设备系列的 IP。 如果您没有打开项目,请在 IP Catalog 中选择 Device Family。
- 在 Search 字段中键入以在 IP Catalog 中查找任何完整或部分 IP 内核名称。
- 右键单击 IP 目录中的 IP 核名称以显示有关受支持设备的详细信息、打开 IP 核的安装文件夹以及指向 IP 文档的链接。
- 点击 搜索 Partner IP to access partner IP information on the web.
参数编辑器提示您指定 IP 变体名称、可选端口和输出 file 生成选项。 参数编辑器生成顶级 Intel Quartus Prime IP file (.ip) 用于 Intel Quartus Prime Pro Edition 项目中的 IP 变体。 参数编辑器生成顶层 Quartus IP file (.qip) 用于英特尔 Quartus Prime 标准版项目中的 IP 变体。 这些 files 代表项目中的 IP 变化,并存储参数化信息。
IP 参数编辑器(Intel Quartus Prime 标准版)
IP核生成输出(Intel Quartus Prime Pro Edition)
英特尔 Quartus Prime 软件生成以下输出 file 不属于 Platform Designer 系统的各个 IP 核的结构。
独立 IP 内核生成输出(Intel Quartus Prime Pro Edition)
- 如果您的 IP 核变体支持和启用。
输出 File英特尔 FPGA IP 生成
File 姓名 | 描述 |
<你的IP>.ip | 顶级 IP 变体 file 包含项目中 IP 核的参数化。 如果 IP 变体是 Platform Designer 系统的一部分,则参数编辑器还会生成一个 .qsys file. |
<你的IP>.cmp | VHDL 组件声明 (.cmp) file 是文本 file 包含您在 VHDL 设计中使用的本地通用和端口定义 files. |
<你的IP>_generation.rpt | IP 或 Platform Designer 生成日志 file. 显示 IP 生成期间的消息摘要。 |
持续… |
File 姓名 | 描述 |
<你的IP>.qgsimc(仅限 Platform Designer 系统) | 模拟缓存 file 比较 .qsys 和 .ip file与 Platform Designer 系统和 IP 核的当前参数化有关。 此比较确定 Platform Designer 是否可以跳过 HDL 的重新生成。 |
<你的IP>.qgsynth(仅限 Platform Designer 系统) | 综合缓存 file 比较 .qsys 和 .ip file与 Platform Designer 系统和 IP 核的当前参数化有关。 此比较确定 Platform Designer 是否可以跳过 HDL 的重新生成。 |
<你的IP>.qip | 包含集成和编译 IP 组件的所有信息。 |
<你的IP>.csv | 包含有关 IP 组件升级状态的信息。 |
.bsf | 用于框图的 IP 变体的符号表示 Files (.bdf)。 |
<你的IP>.spd | 输入 file ip-make-simscript 需要生成模拟脚本。 .spd file 包含一个列表 file您为模拟生成的 s,以及有关您初始化的内存的信息。 |
<你的IP>.ppf | 引脚规划器 File (.ppf) 存储您为与 Pin Planner 一起使用而创建的 IP 组件的端口和节点分配。 |
<你的IP>_bb.v | 使用 Verilog 黑盒 (_bb.v) file 作为用作黑盒的空模块声明。 |
<你的IP>_inst.v 或 _inst.vhd | 高密度脂蛋白前ample 实例化模板。 复制并粘贴此内容 file 进入你的 HDL file 实例化 IP 变化。 |
<你的IP>.regmap | 如果 IP 包含寄存器信息,则 Intel Quartus Prime 软件生成 .regmap file. .regmap file 描述了主从接口的寄存器映射信息。 这个 file 补充
.sopcinfo file 通过提供有关系统的更详细的注册信息。 这个 file 启用寄存器显示 views 和系统控制台中的用户自定义统计信息。 |
<你的IP>.svd | 允许 HPS 系统调试工具 view Platform Designer 系统中连接到 HPS 的外围设备的寄存器映射。
在综合期间,英特尔 Quartus Prime 软件存储 .svd files 表示对 .sof 中的系统控制台主机可见的从接口 file 在调试会话中。 系统控制台读取此部分,Platform Designer 查询寄存器映射信息。 对于系统从站,Platform Designer 按名称访问寄存器。 |
<你的IP>.v
<你的IP>.vhd |
高密度脂蛋白 files 例化每个子模块或子 IP 内核以进行综合或仿真。 |
导师/ | 包含用于设置和运行模拟的 msim_setup.tcl 脚本。 |
阿尔德克/ | 包含用于设置和运行模拟的脚本 rivierapro_setup.tcl。 |
/新思科技/vcs
/新思科技/vcsmx |
包含用于设置和运行模拟的 shell 脚本 vcs_setup.sh。
包含一个 shell 脚本 vcsmx_setup.sh 和 synopsys_sim.setup file 设置和运行模拟。 |
/节奏 | 包含一个 shell 脚本 ncsim_setup.sh 和其他设置 files 设置和运行模拟。 |
/xcelium | 包含一个并行模拟器 shell 脚本 xcelium_setup.sh 和其他设置 files 设置和运行模拟。 |
/子模块 | 包含高密度脂蛋白 files 用于 IP 核子模块。 |
<IP子模块>/ | Platform Designer 为 Platform Designer 生成的每个 IP 子模块目录生成 /synth 和 /sim 子目录。 |
功能描述
借助故障注入 IP 内核,设计人员可以在内部执行 SEFI 表征,根据 SEFI 表征调整 FIT 率,并优化设计以减少 SEU 的影响。
单事件干扰缓解
集成电路和可编程逻辑设备(如 FPGA)容易受到 SEU 的影响。 SEU 是随机的、非破坏性的事件,由两个主要来源引起:α 粒子和来自宇宙射线的中子。 辐射会导致逻辑寄存器、嵌入式存储器位或配置 RAM (CRAM) 位翻转其状态,从而导致意外的设备操作。 英特尔 Arria 10、英特尔 Cyclone 10 GX、Arria V、Cyclone V、Stratix V 和更新的设备具有以下 CRAM 功能:
- 错误检测循环冗余校验 (EDCRC)
- 自动纠正不规则的 CRAM(擦洗)
- 能够创建扰乱 CRAM 条件(故障注入)
有关 Intel FPGA 设备中 SEU 缓解的更多信息,请参阅相应设备手册中的 SEU 缓解章节。
故障注入 IP 引脚说明
故障注入 IP 内核包括以下 I/O 管脚。
故障注入 IP 内核 I/O 管脚
引脚名称 | 引脚方向 | 引脚描述 |
crcererror_pin | 输入 | 来自错误消息寄存器卸载器 Intel FPGA IP (EMR Unloader IP) 的输入。 当设备的 EDCRC 检测到 CRC 错误时,该信号被置位。 |
emr_数据 | 输入 | 错误消息寄存器 (EMR) 内容。 有关 EMR 字段,请参阅相应的设备手册。
该输入符合 Avalon Streaming 数据接口信号。 |
emr_有效 | 输入 | 指示 emr_data 输入包含有效数据。 这是一个 Avalon Streaming 有效接口信号。 |
重置 | 输入 | 模块复位输入。 复位完全由故障注入调试器控制。 |
错误注入 | 输出 | 表示错误已按照 J 的命令注入 CRAMTAG 界面。 该信号断言的时间长度取决于您对 J 的设置TAG TCK 和控制块信号。 通常,时间约为 TCK 信号的 20 个时钟周期。 |
错误清理 | 输出 | 指示设备清理已按照通过 J 发出的命令完成TAG 界面。 该信号断言的时间长度取决于您对 J 的设置TAG TCK 和控制块信号。 通常,时间约为 TCK 信号的 20 个时钟周期。 |
进入屏幕 | 输出 | 可选输出。 故障注入 IP 使用此时钟,例如ample,为 EMR_unloader 块提供时钟。 |
故障注入 IP 引脚图
使用故障注入调试器和故障注入 IP 内核
故障注入调试器与故障注入 IP 核一起工作。 首先,您在设计中实例化 IP 核,编译并下载生成的配置 file 进入您的设备。 然后,您从 Intel Quartus Prime 软件或命令行运行 Fault Injection Debugger 来模拟软错误。
- Fault Injection Debugger 允许您以交互方式或通过批处理命令操作故障注入实验,并允许您指定设计中用于故障注入的逻辑区域。
- 命令行界面对于通过脚本运行调试器很有用。
笔记
故障注入调试器通过 J 与故障注入 IP 核通信TAG 界面。 故障注入 IP 接受来自 J 的命令TAG 接口并通过 J 返回状态报告TAG 界面。 故障注入 IP 核在您的设备中以软逻辑实现; 因此,您必须在设计中考虑这种逻辑使用。 一种方法是在实验室中表征您的设计对 SEU 的响应,然后从最终部署的设计中省略 IP 核。
您将 Fault Injection IP 核与以下 IP 核一起使用:
- Error Message Register Unloader IP 核,它从 Intel FPGA 设备中的硬化错误检测电路读取和存储数据。
- (可选)高级 SEU 检测英特尔 FPGA IP 核,它在设备运行期间将单位错误位置与灵敏度图进行比较,以确定软错误是否影响它。
故障注入调试器结束view 框图
笔记:
-
故障注入 IP 翻转目标逻辑的位。
-
故障注入调试器和高级 SEU 检测 IP 使用相同的 EMR 卸载器实例。
-
高级 SEU 检测 IP 内核是可选的。
相关信息
- 关于 SMH File第 13 页
- 关于第 10 页的 EMR 卸载器 IP 内核
- 关于第 11 页的高级 SEU 检测 IP 内核
例化故障注入 IP 内核
笔记
Fault Injection IP 内核不需要您设置任何参数。 要使用 IP 核,请创建一个新的 IP 实例,将其包含在您的 Platform Designer (Standard) 系统中,并适当连接信号。 您必须将 Fault Injection IP 内核与 EMR Unloader IP 内核一起使用。 Platform Designer 和 IP Catalog 中提供了故障注入和 EMR 卸载器 IP 核。 或者,您可以使用 Verilog HDL、SystemVerilog 或 VHDL 将它们直接实例化到您的 RTL 设计中。
关于 EMR 卸载器 IP 内核
EMR 卸载器 IP 核提供了一个 EMR 接口,该接口由设备的 EDCRC 不断更新,该 EDCRC 检查设备的 CRAM 位 CRC 是否存在软错误。
Example Platform Designer 系统,包括故障注入 IP 核和 EMR 卸载器 IP 核
Example Fault Injection IP Core 和 EMR Unloader IP Core Block Diagram
相关信息
错误消息 Register Unloader Intel FPGA IP Core 用户指南
关于高级 SEU 检测 IP 核
当 SEU 容差是设计问题时,使用高级 SEU 检测 (ASD) IP 核。 您必须将 EMR Unloader IP 核与 ASD IP 核一起使用。 因此,如果您在同一设计中使用 ASD IP 和故障注入 IP,它们必须通过 Avalon®-ST 分离器组件共享 EMR Unloader 输出。 下图显示了一个 Platform Designer 系统,其中 Avalon-ST 分离器将 EMR 内容分发到 ASD 和故障注入 IP 内核。
在同一个 Platform Designer 系统中使用 ASD 和故障注入 IP
相关信息
高级 SEU 检测 Intel FPGA IP Core 用户指南
定义故障注入区
您可以使用 Sensitivity Map Header (.smh) 定义 FPGA 的特定区域以进行故障注入 file. SMH file 存储设备 CRAM 位的坐标、它们的分配区域(ASD 区域)和关键性。 在设计过程中,您使用层次结构 tag正在创建该区域。 然后,在编译期间,Intel Quartus Prime Assembler 生成 SMH file. 故障注入调试器将错误注入限制在您在 SMH 中定义的特定设备区域 file.
执行层次结构 Tag姜
您通过将 ASD 区域分配给位置来定义用于测试的 FPGA 区域。 您可以使用设计分区窗口为设计层次结构的任何部分指定 ASD 区域值。
- 选择 Assignments ➤ Design Partitions Window。
- 右键单击标题行中的任意位置并打开 ASD 区域以显示 ASD 区域列(如果尚未显示)。
- 为任何分区输入 0 到 16 之间的值,以将其分配给特定的 ASD 区域。
- ASD 区域 0 保留给设备的未使用部分。 您可以为该区域分配一个分区,以将其指定为非关键区域。
- ASD 区域 1 是默认区域。 除非您明确更改 ASD 区域分配,否则设备的所有使用部分都分配给该区域。
关于 SMH Files
SMH file 包含以下信息:
- 如果您不使用层次结构 tagging(即设计在设计层次结构中没有明确的 ASD 区域分配),SMH file 列出每个 CRAM 位并指示它是否对设计敏感。
- 如果您执行了层次结构 tagging 和更改默认 ASD 区域分配,SMH file 列出每个 CRAM 位及其分配的 ASD 区域。
Fault Injection Debugger 可以将注入限制到一个或多个指定区域。 指示汇编程序生成 SMH file:
- 选择 Assignments ➤ Device ➤ Device and Pin Options ➤ Error Detection CRC。
- 打开生成 SEU 敏感图 file (.smh) 选项。
使用故障注入调试器
笔记
要使用故障注入调试器,您可以通过 J 连接到您的设备TAG 界面。 然后,配置设备并进行故障注入。 要启动故障注入调试器,请在 Intel Quartus Prime 软件中选择 Tools > Fault Injection Debugger。 配置或编程器件类似于用于编程器或 Signal Tap Logic Analyzer 的过程。
故障注入调试器
配置您的 JTAG 链:
- 单击硬件设置。 该工具显示连接到您的计算机的编程硬件。
- 选择您要使用的编程硬件。
- 单击“关闭”。
- 单击 Auto Detect,这会使用在 J 中找到的可编程设备填充设备链TAG 链。
相关信息
有针对性的故障注入功能第 21 页
硬件和软件要求
使用故障注入调试器需要以下硬件和软件:
- 启用故障注入 IP 内核的 Intel FPGA 许可证中的 FEATURE 行。 如需更多信息,请联系您当地的英特尔 FPGA 销售代表。
- 下载电缆(英特尔 FPGA 下载电缆、英特尔 FPGA 下载电缆 II、或 II)。
- 带有 J 的英特尔 FPGA 开发套件或用户设计的电路板TAG 连接到被测设备。
- (可选)启用高级 SEU 检测 IP 核的 Intel FPGA 许可证中的 FEATURE 行。
配置您的设备和故障注入调试器
故障注入调试器使用 .sof 和(可选)灵敏度图标头 (.smh) file. 软件对象 File (.sof) 配置 FPGA。 .smh file 定义设备中 CRAM 位的灵敏度。 如果您不提供 .smh file,故障注入调试器在整个 CRAM 位中随机注入故障。 指定 .sof:
- 在 Device chain 框中选择要配置的 FPGA。
- 单击选择 File.
- 导航到 .sof 并单击 OK。 故障注入调试器读取 .sof。
- (可选)选择 SMH file.
如果不指定 SMH file,故障注入调试器在整个设备中随机注入故障。 如果指定 SMH file,您可以将注射限制在设备的使用区域。- 右键单击 Device chain 框中的设备,然后单击 Select SMH File.
- 选择您的 SMH file.
- 单击“确定”。
- 打开程序/配置。
- 单击“开始”。
故障注入调试器使用 .sof 配置设备。
用于选择 SMH 的上下文菜单 File
故障注入的约束区域
加载 SMH 后 file,您可以指示故障注入调试器仅在特定的 ASD 区域上运行。 要指定要在其中注入故障的 ASD 区域:
- 右键单击 Device chain 框中的 FPGA,然后单击 Show Device Sensitivity Map。
- 选择用于故障注入的 ASD 区域。
设备灵敏度图 Viewer
指定错误类型
您可以为注入指定各种类型的错误。
- 单个错误 (SE)
- 双相邻错误 (DAE)
- 不可纠正的多位错误 (EMBE)
如果启用清理功能,英特尔 FPGA 设备可以自行更正单个和双相邻错误。 英特尔 FPGA 设备无法纠正多位错误。 有关调试这些错误的更多信息,请参阅有关缓解 SEU 的章节。 您可以指定要注入的混合故障和注入时间间隔。 要指定注射时间间隔:
- 在故障注入调试器中,选择工具 ➤ 选项。
- 将红色控制器拖到错误组合中。 或者,您可以用数字指定混合。
- 指定注入间隔时间。
- 单击“确定”。
图 12. 指定 SEU 故障类型的混合
相关信息 减轻单一事件的不安
注入错误
您可以通过多种模式注入错误:
- 在命令中注入一个错误
- 在命令中注入多个错误
- 注入错误直到命令停止
要注入这些故障:
- 打开 Inject Fault 选项。
- 选择是否要为多次迭代运行错误注入或直到停止:
- 如果您选择运行直到停止,故障注入调试器将以在工具 ➤ 选项对话框中指定的时间间隔注入错误。
- 如果要针对特定的迭代次数运行错误注入,请输入该数字。
- 单击“开始”。
笔记: 故障注入调试器运行指定的迭代次数或直到停止。 Intel Quartus Prime Messages 窗口显示有关注入错误的消息。 有关注入故障的更多信息,请单击读取 EMR。 故障注入调试器读取设备的 EMR 并在消息窗口中显示内容。
英特尔 Quartus Prime 错误注入和 EMR 内容消息
录音错误
您可以通过注意 Intel Quartus Prime Messages 窗口中报告的参数来记录任何注入故障的位置。 如果,对于前amp例如,注入故障会导致您想要重放的行为,您可以定位该位置进行注入。 您可以使用 Fault Injection Debugger 命令行界面执行目标注入。
清除注入的错误
要恢复 FPGA 的正常功能,请单击 Scrub。 当您清理错误时,设备的 EDCRC 功能用于纠正错误。 擦除机制类似于设备操作期间使用的机制。
命令行界面
您可以在命令行中使用 quartus_fid 可执行文件运行故障注入调试器,如果您想从脚本执行故障注入,这将非常有用。
表 5. 故障注入的命令行参数
简短的论证 | 长论证 | 描述 |
c | 电缆 | 指定编程硬件或电缆。 (必需的) |
i | 指数 | 指定要注入故障的活动设备。 (必需的) |
n | 数字 | 指定要注入的错误数。 默认值为
1.(可选) |
t | 时间 | 注射之间的间隔时间。 (选修的) |
笔记: 使用 quartus_fid –help 来 view 所有可用选项。 下面的代码提供了examp使用故障注入调试器命令行界面的文件。
##############################################
- # 找出哪些 USB 电缆可用于此实例
- # 结果显示有一根数据线可用,名称为“USB-Blaster” #
- $ quartus_fid –列表。 . .
- 信息:命令:quartus_fid –list
- sj-sng-z4 [USB-0] 上的 USB-Blaster 信息:英特尔 Quartus Prime 64 位故障注入调试器成功。 0 错误,0 警告
- ################################################
- # 查找 USB-Blaster 电缆上可用的设备
- # 结果显示两个设备:Stratix V A7 和 MAX V CPLD。 #
- $ quartus_fid –电缆 USB-Blaster -a
- 信息:命令:quartus_fid –cable=USB-Blaster -a
- 信息 (208809):使用编程电缆“sj-sng-z4 [USB-0] 上的 USB-Blaster”
- sj-sng-z4 [USB-0] 上的 USB-Blaster
- 029030DD 5SGXEA7H(1|2|3)/5SGXEA7K1/..
- 020A40DD 5M2210Z/EPM2210
- 信息:英特尔 Quartus Prime 64 位故障注入调试器成功。
- 0 个错误,0 个警告
- ################################################
- # 对 Stratix V 器件进行编程
- # –index 选项指定在连接的设备上执行的操作。
- # “=svgx.sof” 关联一个 .sof file 与设备
- #“#p”表示对设备进行编程#
- $ quartus_fid –cable USB-Blaster –index “@1=svgx.sof#p”。 . .
- 信息 (209016):配置设备索引 1
- 信息 (209017):设备 1 包含 JTAG 识别码 0x029030DD
- 信息 (209007):配置成功 — 已配置 1 个设备
- 信息 (209011):成功执行操作
- 信息 (208551):将签名编程到设备 1 中。
- 信息:英特尔 Quartus Prime 64 位故障注入调试器成功。
- 0 个错误,0 个警告
- ################################################
- # 向设备注入故障。
- # #i 运算符表示注入故障
- # -n 3 表示注入3个故障#
- $ quartus_fid –电缆 USB-Blaster –index “@1=svgx.sof#i” -n 3
- 信息:命令:quartus_fid –cable=USB-Blaster –index=@1=svgx.sof#i -n 3
- 信息 (208809):使用编程电缆“sj-sng-z4 [USB-0] 上的 USB-Blaster”
- 信息 (208521):将 3 个错误注入设备
- 信息:英特尔 Quartus Prime 64 位故障注入调试器成功。
- 0 个错误,0 个警告
- ################################################
- # 交互模式。
- # 使用带-n 0 的#i 操作将调试器置于交互模式。
- # 注意在之前的session中注入了3个fault;
- # “E”读取当前在 EMR Unloader IP 内核中的故障。 #
- $ quartus_fid –电缆 USB-Blaster –index “@1=svgx.sof#i” -n 0
- 信息:命令:quartus_fid –cable=USB-Blaster –index=@1=svgx.sof#i -n 0
- 信息 (208809):使用编程电缆“sj-sng-z4 [USB-0] 上的 USB-Blaster”
- 进入 :
- 'F' 注入故障
- 'E' 读取电子病历
- 'S' 擦除错误
- 'Q' 退出 E
- 信息 (208540):读取 EMR 阵列
- 信息 (208544):在设备 3 中检测到 1 个帧错误。
- 信息 (208545):错误 #1:0x1028EA 帧 0x21 中的单个错误。
- 信息 (10914):错误 #2:帧 0x1116 中无法纠正的多位错误。
- 信息 (208545):错误 #3:帧 0x1848 中位 0x128C 的单个错误。
- 'F' 注入故障
- 'E' 读取电子病历
- 'S' 擦除错误
- 'Q' 退出 Q
- 信息: 英特尔 Quartus Prime 64 位故障注入调试器成功。 0 个错误,0 个警告
- 信息: 峰值虚拟内存:1522 兆字节
- 信息: 处理结束时间:3 年 18 月 50 日星期一 00:2014:XNUMX
- 信息: 经过时间:00:00:29
- 信息: 总 CPU 时间(在所有处理器上):00:00:13
有针对性的故障注入功能
笔记
故障注入调试器将故障随机注入 FPGA。 但是,目标故障注入功能允许您将故障注入 CRAM 中的目标位置。 此操作可能有用,例如amp文件,如果您记录了一个 SEU 事件并希望在修改恢复策略后测试 FPGA 或系统对同一事件的响应。 目标故障注入功能只能从命令行界面使用。 您可以指定从命令行或提示模式注入错误。 相关信息
安 539: 在英特尔 FPGA 设备中使用 CRC 的测试方法或错误检测和恢复
从命令行指定错误列表
Targeted Fault Injection 功能允许您从命令行指定错误列表,如下例所示ample: c:\Users\sng> quartus_fid -c 1 – i “@1= svgx.sof#i ” -n 2 -user=”@1= 0x2274 0x05EF 0x2264 0x0500″ 其中:c 1表示控制FPGA通过计算机上的第一根电缆。 i “@1= six.sof#i ”表示链中的第一个设备加载了对象 file svgx.sof 并将被注入故障。 n 2 表示将注入两个故障。 user=”@1= 0x2274 0x05EF 0x2264 0x0500” 是用户指定的要注入的故障列表。 在这个前amp例如,设备 1 有两个故障:帧 0x2274 的位 0x05EF 和帧 0x2264 的位 0x0500。
从提示模式指定错误列表
您可以通过将故障数指定为 0 (-n 0),以交互方式操作目标故障注入功能。 故障注入调试器提供提示模式命令及其描述。
提示模式命令 | 描述 |
F | 注入故障 |
E | 阅读电子病历 |
S | 擦洗错误 |
Q | 辞职 |
在提示模式下,您可以单独发出 F 命令以在设备的随机位置注入单个故障。 在下面的例子中amp在提示模式下使用 F 命令的文件,会注入三个错误。 F #3 0x12 0x34 0x56 0x78 * 0x9A 0xBC +
- 错误 1 – 帧 0x12 位 0x34 处的单位错误
- 错误 2 – 帧 0x56 的不可纠正错误,位 0x78(* 表示多位错误)
- 错误 3 – 帧 0x9A 处的双相邻错误,位 0xBC(a + 表示双位错误)
F 0x12 0x34 0x56 0x78 * 注入一个(默认)错误:错误 1 – 帧 0x12,位 0x34 处的单位错误。 第一个帧/位位置之后的位置将被忽略。 F #3 0x12 0x34 0x56 0x78 * 0x9A 0xBC + 0xDE 0x00
注入了三个错误:
- 错误 1 – 帧 0x12 位 0x34 处的单位错误
- 错误 2 – 帧 0x56 的不可纠正错误,位 0x78
- 错误 3 – 帧 0x9A,位 0xBC 处的双相邻错误
- 忽略前 3 个帧/位对之后的位置
确定 CRAM 位位置
笔记:
当故障注入调试器检测到 CRAM EDCRC 错误时,错误消息寄存器 (EMR) 包含检测到的 CRAM 错误的校正子、帧编号、位位置和错误类型(单、双或多位)。 在系统测试过程中,当您检测到 EDCRC 故障时,保存 Fault Injection Debugger 报告的 EMR 内容。 使用记录的 EMR 内容,您可以向故障注入调试器提供帧和位编号,以重放系统测试期间记录的错误,进一步设计和表征对该错误的系统恢复响应。
相关信息
AN 539:在英特尔 FPGA 设备中使用 CRC 的测试方法或错误检测和恢复
高级命令行选项:ASD 区域和错误类型加权
您可以使用 Fault Injection Debugger 命令行界面将错误注入 ASD 区域并对错误类型进行加权。 首先,您使用 –weight 指定错误类型的混合(单比特、双相邻和多比特不可纠正) . . 选项。 对于前amp例如,对于 50% 单一错误、30% 双相邻错误和 20% 多位不可纠正错误的混合,请使用选项 –weight=50.30.20。 然后,要定位 ASD 区域,请使用 -smh 选项来包含 SMH file 并指明要定位的 ASD 区域。 对于前amp例如:$ quartus_fid –cable=USB-BlasterII –index “@1=svgx.sof#pi” –weight=100.0.0 –smh=”@1=svgx.smh#2″ –number=30
这个前任amp勒命令:
- 对设备进行编程并注入故障(pi 字符串)
- 注入 100% 单位故障 (100.0.0)
- 仅注入 ASD_REGION 2(由 #2 表示)
- 注入 30 个故障
故障注入 IP 核用户指南档案
IP核版本 | 用户指南 |
18.0 | 故障注入 Intel FPGA IP Core 用户指南 |
17.1 | 英特尔 FPGA 故障注入 IP 核用户指南 |
16.1 | Altera 故障注入 IP 内核用户指南 |
15.1 | Altera 故障注入 IP 内核用户指南 |
如果未列出 IP 核版本,则适用先前 IP 核版本的用户指南。
故障注入 IP 核用户指南的文档修订历史
文档版本 | 英特尔 Quartus Prime 版本 | 更改 |
2019.07.09 | 18.1 | 更新了 故障注入 IP 引脚说明 主题以阐明 Reset、error_injected 和 error_scrubbed 信号。 |
2018.05.16 | 18.0 | • 添加了来自 Intel Quartus Prime Pro Edition Handbook 的以下主题:
— 定义故障注入区 和副题。 — 使用故障注入调试器 和副题。 — 命令行界面 和副题。 • 将Intel FPGA Fault Injection IP 核重命名为Fault Injection Intel FPGA IP。 |
日期 | 版本 | 更改 |
2017.11.06 | 17.1 | • 更名为英特尔。
• 添加了Intel Cyclone 10 GX 设备支持。 |
2016.10.31 | 16.1 | 更新了设备支持。 |
2015.12.15 | 15.1 | • 将Quartus II 更改为Quartus Prime 软件。
• 修复了自引用相关链接。 |
2015.05.04 | 15.0 | 初始版本。 |
文件/资源
![]() |
英特尔 UG-01173 故障注入 FPGA IP 核 [pdf] 用户指南 UG-01173故障注入FPGA IP核,UG-01173,故障注入FPGA IP核,注入c,注入FPGA IP核 |