Altera Cyclone V Cyclone V 器件 用户手册

Altera Cyclone V Cyclone V 器件 用户手册

以下是有关Cyclone V 器件 Cyclone V 的简要信息。此手册重点介绍了 Cyclone V 器件的错误检测功能和内部擦除功能。

advertisement

Assistant Bot

Need help? Our chatbot has already read the manual and is ready to assist you. Feel free to ask any questions about the device, but providing details will make the conversation more productive.

Altera Cyclone V Cyclone V 器件 用户手册 | Manualzz

Cyclone V器件的SEU缓解

2013.05.06

CV-52008

订阅 反馈

这一章节介绍 Cyclone ®

错误。

V器件的错误检测功能。您可以使用这些功能来缓解单粒子翻转 (SEU)或软

相关链接

Cyclone V 器件手册:已知问题

列出了Cyclone V器件手册的章节的所计划的更新。

8

错误检测功能

片上错误检测CRC电路使您可以执行以下的操作,而对器件的布局布线或性能没有任何的影响:

• 配置期间CRC错误的自动检测。

• 用户模式中可选的CRC错误检测和识别。

• 用户模式中可选的内部刷洗。当使能时,该功能自动纠正单比特和双邻近错误。

• 通过JTAG接口特意注入错误来进行错误检测功能的测试。

配置错误检测

当QuartusII生成配置比特流时,软件也计算每个帧的16位CRC值。根据比特流中的数据帧的数量,

一个配置比特流可以包含多个CRC值。数据帧的长度根据器件的不同而不同。

配置期间,一个数据帧加载到FPGA时,与计算出的CRC值被移进CRC电路。同时,FPGA中的CRC

引擎计算数据帧的CRC值并且将其与预计算出的CRC值进行比较。如果两个CRC值不匹配,那么 nSTATUS

管脚被设置为低电平以表示配置错误。

配置期间,可以通过修改配置比特流或特意地损坏比特流来测试该功能的性能。

用户模式错误检测

用户模式中,配置的CRAM位的内容可能会被软错误影响。这些电离粒子导致的软错误在Altera器

件中不常见。然而, 要求器件无差错运行的高可靠性应用可能需要设计应对这些错误。

©

2013 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, HARDCOPY, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html

. Altera warrants performance of its semiconductor products to current specifications in accordance with

Altera's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services.

ISO

9001:2008

Registered www.altera.com

101 Innovation Drive, San Jose, CA 95134

8-2

内部涮洗

CV-52008

2013.05.06

您可以使能错误检测电路来检测软错误。存储在CRAM中的每个数据帧包含一个32位预计算出的

CRC值。当使能该功能时,错误检测电路连续地计算CRAM中每个帧的32位CRC值并且将CRC值和

预计算出的值进行比较。

• 如果CRC值匹配,那么综合寄存器中的32位CRC签名会被设置为零,以表明没有检测到错误。

• 否则,综合寄存器中产生的32位CRC签名为非零,以表明一个CRC错误。

CRC_ERROR

管脚被拉

高,并且错误类型和位置被识别。

在一个帧里,错误检测电路可以检测出所有的单位、双位、三重位、四重位和五重位错误。当检测

到单位或双相邻位错误时,错误检测电路报告位的位置并且决定单位和双相邻错误的类型。其它错

误码型的可能性很低并且不保证位位置的报告。多于5个CRAM位被软错误翻转的可能性非常低。

通常,所有错误模式检测的成功率为99.9999%。错误检测的过程继续进行直到器件通过设置 nCONFIG

信号为低电平而被复位。

内部涮洗

在用户模式中,内部涮洗能够从内部纠正软核错误。该功能纠正每个数据帧中检测到的单位和双相

邻错误,而无需重配置器件。

8-1: 结构图

Error Detection

State Machine

32-Bit CRC

Calculation and Error

Search Engine

Internal Scrubbing

Data Registers, CRC

Registers, and CRAM

Array

规范

该部分列出了用户模式中错误检测的EMR更新间隔、错误检测频率和CRC计算时间。

最小EMR更新间隔

每次错误信息寄存器的更新之间的间隔取决于器件和错误检测时钟的频率。使用较低时钟频率增加

间隔时间,从而增加了从单粒子翻转(SEU)恢复的所需时间。

8-1: 所评估Cyclone V器件中的最低EMR更新间隔—初步数据

器件类型

Cyclone E

成员代码

A2

A4

A5

A7

A9

时间间隔(µs)

1.47

1.47

1.79

2.33

3.23

Altera公司

Cyclone V器件的SEU缓解

反馈

CV-52008

2013.05.06

器件类型

Cyclone V GX

Cyclone V GT

Cyclone V SE

Cyclone V SX

Cyclone V ST

成员代码

C6

D5

D6

A5

A6

C4

C5

D7

D9

A2

A4

C3

C4

C5

C7

C9

D5

错误检测频率

时间间隔(µs)

2.31

2.31

1.77

2.31

2.31

2.31

2.31

2.33

3.23

1.77

1.77

1.09

1.79

1.79

2.33

3.23

1.79

8-3

错误检测频率

您可以通过在 Quartus II中设置时钟频率的分频因子来控制错误检测过程的速度。除数是 2 n

,其中 n可以是下表中列出的任意值。

每个数据帧的错误检测过程的速度由以下公式决定:

8-2: 错误检测频率公式

Error Detection Frequency =

Internal Oscillator Frequency

2 n

8-2: Cyclone V器件的错误检测频率范围

下表列出了n的频率和有效值。

错误检测频率

内部振荡器频率

最大值 最小值

100 MHz 100 MHz 390 kHz

n

0、1、2、3、4、5、

6、7、8

1 – 256

除数范围

Cyclone V器件的SEU缓解

反馈

Altera公司

8-4

CRC计算时间

CRC计算时间

错误检测电路计算每个帧的CRC所用时间由使用的器件和错误检测时钟的频率决定。

8-3: Cyclone V器件中的CRC计算时间—初步数据

下表列出了计算 CRC值所用的最短和最长时间:

• 最短时间是使用带有除数因子0的最大时钟频率计算的。

• 最长时间是使用带有除数因子8的最小时钟频率计算的。

器件类型

Cyclone E

Cyclone V GX

Cyclone V GT

Cyclone V SE

Cyclone V SX

Cyclone V ST

部件代码

D7

D9

A2

A4

C5

C7

C9

D5

A7

A9

C3

C4

A2

A4

A5

C6

D5

D6

A5

A6

C4

C5

最短时间(ms)

7

15

7

7

7

7

15

7

7

15

8

7

4

4

7

13

13

13

13

13

7

13

最长时间(s)

3.62

7.40

3.59

3.59

3.54

3.62

7.40

3.54

2.08

2.08

3.54

3.62

7.40

4.05

3.54

6.30

6.30

3.59

6.30

6.30

6.30

6.30

使用用户模式中的错误检测功能

这一部分介绍用户模式中错误检测的管脚、寄存器、工艺流程和过程。

CV-52008

2013.05.06

Altera公司

Cyclone V器件的SEU缓解

反馈

CV-52008

2013.05.06

使能错误检测和内部刷洗

使能错误检测和内部刷洗

8-5

要使能Quartus II中的用户模式错误检测和内部刷洗,请遵循以下这些步骤:

1. 在Assignment菜单里,点击Device

2. 在Device对话框中,点击 Device and Pin Options

3. Category列表中, 点击Error Detection CRC标签。

4. 打开 Enable Error Detection CRC_ERROR pin

5. 要设置

CRC_ERROR

管脚为输出开漏, 打开 Enable open drain on CRC_ERROR pin。关闭该选项

会设置

CRC_ERROR

管脚为输出。

6. 要使能片上错误纠正功能, 打开 Enable internal scrubbing

7. Divide error check frequency by下拉列表中,选择一个有效除数。

8. 点击OK。

CRC_ERROR管脚

8-4: 管脚说明

管脚名称

CRC_ERROR

管脚类型 说明

I/O或输出/输出开漏

一个高有效信号,驱动为高电平时标明在CRAM位中检测出

错误。当使能用户模式中的错误检测时才使用该管脚。否

则,管脚会被用作用户I/O管脚。

当使用WYSIWYG功能时,可以 从WYSIWYG atom到专用

CRC_ERROR

管脚或任何用户I/O管脚布线 crcerror

端口。

要将 crcerror

端口布线到用户I/O管脚,那么要在它们之

间插入一个D触发器。

错误检测寄存器

这一小节介绍用户模式中使用的寄存器。

Cyclone V器件的SEU缓解

反馈

Altera公司

8-6

错误检测寄存器

8-3: 用户模式中错误检测的结构图

结构图显示了用户模式中的寄存器和数据流程。

Readback

Bitstream with

Expected CRC

Error

Detection

State

Machine

Control

Signals

32-bit Error Detection

CRC Calculation, Error

Search Engine, and

Internal Scrubbing

Error

Message

Register

Error Injection

Block

Fault

Injection

Register

JTAG

Fault

Injection

Register

JTAG

Update

Register

JTAG

Shift

Register

User

Update

Register

User

Shift

Register

JTAG TDO General Routing

Syndrome

Register

8-5: 错误检测寄存器

名称

综合寄存器

错误信息寄存器

JTAG更新寄存器

JTAG移位寄存器

用户更新寄存器

用户移位寄存器

CRC_ERROR

CV-52008

2013.05.06

宽度(Bit)

32

67

67

67

67

67

说明

包含对当前帧所计算的32位CRC签名。如果CRC值是0,那么

CRC_ERROR

管脚被驱动为低电平以表明没有错误。否则,管脚

被拉高。

包含单位和双相邻错误的错误详细信息。每次电路 检测出错

误时,错误检测电路更新该寄存器。 图8-4

显示了寄存器中的

区域并且 表8-6

列出了可能的错误类型。

该寄存器的内容被验证后的一个时钟周期,该寄存器被自动地

更新为 EMR的内容。JTAG更新寄存器包含一个时钟使能,它

必须在其内容被写入到JTAG移位寄存器之前被置位。这个要

求确保JTAG更新寄存器不被重写 (当其内容在被JTAG移位寄

存器读取时)。

该寄存器使您能够使用

SHIFT_EDERROR_REG JTAG

指令通过

JTAG接口访问JTAG更新寄存器的内容。

该寄存器的内容被验证后的一个时钟周期,该寄存器被自动地

更新为 EMR的内容。用户更新寄存器包含一个时钟使能,它

必须在其内容被写入到用户移位寄存器之前被置位。这个要求

确保用户更新寄存器不被重写(当其内容在被用户移位寄存器

读取时)。

该寄存器使得用户逻辑通过内核接口访问用户更新寄存器的内

容。

Altera公司

Cyclone V器件的SEU缓解

反馈

CV-52008

2013.05.06

名称

JTAG故障注入寄存器

宽度(Bit)

46

故障注入寄存器

8-4: 错误信息寄存器映射

46

错误检测过程

8-7

说明

您可以使用该寄存器以及

EDERROR_INJECT JTAG

指令在比

特流中注入错误。 表8-7

列出了该寄存器中的域。

该寄存器被更新为JTAG故障注入寄存器的内容。

MSB

Syndrome Frame Address

Double Word

Location

Byte Offset

32 bits 16 bits 10 bits 2 bits

Bit Offset

3 bits

LSB

Error Type

4 bits

8-6: EMR中的错误类型

下表列出了 EMR中错误类型域所报告的可能的错误类型。

错误类型

Bit 3

0

0

0

1

0

0

0

1

Bit 2

0

0

1

1

Bit 1

说明

1

0

0

Bit 0

1

没有CRC错误。

识别了单位错误的位置。

识别了双相邻错误的位置。

除了单位和双相邻错误以外的错误类型。

8-7: JTAG故障注入寄存器映射

域名称

错误字节值

位范围

31:0

字节位置

说明

包含与域的错误注入类型相一致的位错误

的位置。

包含第一个数据帧中注入的错误的位置。

错误类型

Bit 45

0

0

0

41:32

Bit 44

0

45:42

Bit 43

0

0

0

0

1

Bit 42

0

1

0

指定以下错误类型

没有错误

单位错误

双相邻错误

错误检测过程

使能后,FPGA进入用户模式时,用户模式错误检测进程自动激活。即使在当前帧中检测到了一个

错误,进程继续进行直到器件被复位。

Cyclone V器件的SEU缓解

反馈

Altera公司

8-8

错误检测过程

8-5: 用户模式中的错误检测进程流程

CV-52008

2013.05.06

Receive

Data Frame

Calculate and

Compare

CRC Values

Error

Detected?

Yes

Update Error

Message Register

(Overwrite)

No

Pull CRC_ERROR

Signal Low for

32 Clock Cycles

Search for

Error Location

Drive

CRC_ERROR

Signal High

时序

CRC_ERROR

管脚总是在CRC计算期间驱动为低电平最少32个时钟周期。当错误出现时,只要EMR

被更新或32个时钟周期失效,管脚就会被驱动为高电平。因此,您可以开始在

CRC_ERROR

管脚的

上升沿检索EMR的内容。管脚保持高电平直到当前的帧被读取,然后驱动为低电平最少32个时钟周

期。要确保信息完整性,在CRC验证的一个帧内完成读操作。下图显示了这些事件的时序。

8-6: 时序要求

Frame

Data Integrity

Read Data Frame

N

No CRC Error

N+1

CRC Error

N+2

CRC Error

N+3

No CRC Error

N+4

CRC Error

N+5

No CRC Error

CRC ERROR Pin

CRC Calculation

(minimum 32 clock cycles)

Read Error Message

Register (allowed time)

Read Error Message for frame N+1

Read Error Message for frame N+2

Read Error Message for frame N+4

检索错误信息

可以使用

SHIFT_EDERROR_REG JTAG

指令通过内核接口或JTAG接口检索错误信息。

CRC错误中恢复

FPGA所在的系统必须控制器件重配置。要从CRC错误恢复,驱动 nCONFIG

信号为低电平。系统在

重配置器件之前等待一个安全时间。当重配置成功完成时,FPGA按所计划的进行操作。

相关链接

错误检测频率

(第8-3页)

提供了关于最小和最大错误检测频率的更多信息。

最小EMR更新间隔

(第8-2页)

提供了关于每个 Cyclone V器件的持续时间的更多信息。

Altera公司

Cyclone V器件的SEU缓解

反馈

CV-52008

2013.05.06

测试错误检测模块

8-9

• 使用Altera FPGA 器件中CRC的错误检测和恢复的测试方法

提供了关于如何检索错误信息的更多信息。

测试错误检测模块

您可以将错误注入到配置数据中以测试错误检测模块。这一错误注入方法提供了设计验证和系统容

错特性。

通过JTAG接口的测试

通过使用

EDERROR_INJECT

JTAG指令可以特意地将单或双相邻错误注入到配置数据。

8-8: EDERROR_INJECT指令

JTAG指令

EDERROR_INJECT

指令编码

00 0001 0101

说明

使用指令将错误注入到配置数据。该指令控制JTAG

故障注入寄存器,它包含想要注入到比特流中的错

误。

仅可以将错误注入到配置数据的第一个帧。然而,您可以随时监控错误信息。Altera建议在测试完

成后重配置FPGA。

自动化测试进程

通过创建Jam

文件 (.jam)可以自动化测试进程。通过使用该文件,可以在系统上即时验证CRC功

能性,而无需重配置器件。然后切换到CRC电路以检验SEU导致的真正错误。

相关链接

使用Altera FPGA 器件中CRC的错误检测和恢复的测试方法

提供了关于如何测试错误检测模块的更多信息。

文档修订历史

日期

2013年5月

2012年12月

版本

2013.05.06

2012.12.28

修订内容

• 将链接添加到Knowledge Base中的已知文档问题中。

• 更新了Cyclone V E、 Cyclone V GX和 Cyclone V GT器件的最小

EMR更新间隔和CRC计算时间。

• 将所有的链接移到各个内容的相关的信息部分以便易于参考。

• 更新了JTAG故障注入和故障注入寄存器的宽度。

Cyclone V器件的SEU缓解

反馈

Altera公司

8-10

文档修订历史

日期

2012年6月

版本

2.0

2011年10月

1.0

CV-52008

2013.05.06

修订内容

• 添加了“基本的说明”、“错误检测功能”、“错误检测类型”、

“错误检测组件”、 “使用错误检测功能”和“测试错误检测模

块”部分。

• 更新了表8-4、表8-5和表8-6。

• 重新组织了章节结构。

首次发布。

Altera公司

Cyclone V器件的SEU缓解

反馈

advertisement

Key Features

  • 配置期间CRC错误的自动检测
  • 用户模式中可选的CRC错误检测和识别
  • 用户模式中可选的内部擦除
  • 通过JTAG接口特意注入错误来进行错误检测功能的测试
  • CRC_ERROR管脚
  • 错误检测寄存器
  • 错误检测过程
  • 测试错误检测模块

Frequently Answers and Questions

如何使能用户模式错误检测和内部擦除功能?
在Quartus II中,选择Assignment菜单,点击Device,在Device对话框中点击Device and Pin Options,在Category列表中选择Error Detection CRC标签,打开Enable Error Detection CRC_ERROR pin,可以选择设置CRC_ERROR管脚为输出开漏或输出,使能片上错误纠正功能,打开Enable internal scrubbing,选择有效的除数,点击OK。
如何测试错误检测模块?
可以使用JTAG接口特意地将单或双相邻错误注入到配置数据中进行测试,或者通过创建Jam™文件 (.jam)自动化测试过程,在系统上即时验证CRC功能性。
如何从CRC错误中恢复?
FPGA所在的系统必须控制器件重配置,通过驱动 nCONFIG信号为低电平,等待一个安全时间,重配置成功完成之后,FPGA按所计划的进行操作。
CRC_ERROR管脚的作用是什么?
CRC_ERROR管脚是一个高有效信号,当驱动为高电平时标明在CRAM位中检测出错。当使能用户模式中的错误检测时才使用该管脚,否则会被用作用户I/O管脚。
什么是EMR?
EMR是错误信息寄存器,包含单位和双相邻错误的错误详细信息。每次电路检测出错时,错误检测电路会更新该寄存器。

Related manuals

Download PDF

advertisement