Обнаружение и исправление ошибок с использованием crc в устройствах fpga фирмы Altera Сокращённый перевод документа an357 фирмы Altera «Error Detection & Recovery Using crc in Altera fpga devices» icon

Обнаружение и исправление ошибок с использованием crc в устройствах fpga фирмы Altera Сокращённый перевод документа an357 фирмы Altera «Error Detection & Recovery Using crc in Altera fpga devices»



НазваниеОбнаружение и исправление ошибок с использованием crc в устройствах fpga фирмы Altera Сокращённый перевод документа an357 фирмы Altera «Error Detection & Recovery Using crc in Altera fpga devices»
Дата конвертации26.08.2012
Размер152.85 Kb.
ТипДокументы

Обнаружение и исправление ошибок с использованием CRC в устройствах FPGA фирмы Altera


Сокращённый перевод документа AN357 фирмы Altera «Error Detection & Recovery Using CRC in Altera FPGA Devices», версия 1.2, апрель 2006 года.

Перевёл Дмитрий Иоффе dsioffe@yandex.ru


Ионизирующее излучение - главным образом, атмосферные нейтроны, порождаемые космическими лучами - может вызывать нежелательные переключения ячеек памяти в полупроводниковых устройствах. В частности, этому явлению подвержены программируемые логические интегральные схемы (ПЛИС) - в них содержится конфигурационная память, пользовательская память и регистры.

Такие переключения имеют характер одиночных сбоев (SEU - Single Event Upset). Они обратимы, то есть не приводят к повреждению устройства, а вызывают однократный отказ. В предлагаемой вниманию читателей статье рассматривается решение, которое предлагает фирма Altera - один из крупнейших производителей ПЛИС - для преодоления воздействия одиночных сбоев на аппаратуру.

Введение


Для ответственных применений, таких, как авиационная и военная электроника, телекоммуникации, системы управления, очень важно иметь возможность:

  • убедиться, что конфигурационные данные в ПЛИС не содержат ошибок;

  • подать системе сигнал в случае возникновения ошибки в конфигурации.

(Информация об однократных сбоях (SEU) содержится в разделе продукции на сайте фирмы Altera http://www.altera.com/.)


В устройства с повышенной надёжностью встраивается специальный блок для обнаружения ошибок циклического избыточного кода (cyclic redundancy check, CRC), который может выполнять автоматическую непрерывную проверку на отсутствие однократных сбоев.

В этой статье рассказывается, как активировать и использовать блок обнаружения ошибок CRC, когда устройство находится в пользовательском режиме 1, и описано, как устранить ошибку в конфигурации, обнаруженную при проверке CRC.

Использование обнаружения ошибок CRC для устройств FPGA поддерживается в САПР Quartus® II, начиная с версии 4.1. Оно реализовано для устройств из следующих семейств:

  • Stratix® II

  • Stratix II GX

  • Stratix

  • Stratix GX

  • Cyclone II

  • Cyclone


Блок обнаружения ошибок CRC, который используется в устройствах Stratix, Stratix GX и Cyclone, может обнаруживать ошибки в конфигурационной памяти. Его использование может отнимать часть ресурсов ПЛИС, замедлять трассировку (fitting) и влиять на производительность.


Ниже описываются эти потери:

  • Cyclone: уменьшение максимальной частоты на 9%, увеличение использования проводников на 21%, увеличение времени трассировки на 20% и использование 9% ресурсов.

  • Stratix и Stratix GX: уменьшение максимальной частоты на 10%, увеличение использования проводников на 16%, увеличение времени трассировки на 32% и использование 7% ресурсов.

Эти потери имеют место только тогда, когда используется блок CRC.


В устройствах Stratix II, Stratix II GX и Cyclone II нет аппаратных проблем, связанных с использованием CRC. Поэтому применение обнаружения ошибок CRC в этих семействах не влияет на производительность и использование ресурсов.


^ В устройствах Stratix HardCopy нет конфигурационных схем, поэтому для них не нужен блок проверки CRC.


В этой статье рассматриваются следующие темы:

  • Основы обнаружения ошибок

  • Обнаружение ошибок конфигурации

  • Обнаружение ошибок в пользовательском режиме

  • Вывод CRC_ERROR

  • Блок обнаружения ошибок

  • Временная диаграмма обнаружения ошибок

  • Программная поддержка

  • Восстановление после ошибок CRC

  • Выводы



^

Основы обнаружения ошибок


Если данные повреждаются во время прохождения через передающую среду, возникают ошибки. Для их обнаружения передатчик рассчитывает контрольную сумму для текущего кадра (frame) данных и добавляет её к исходному кадру. Приёмник рассчитывает контрольную сумму для принятого кадра данных по той же самой методике и сравнивает полученную контрольную сумму с переданной. Если контрольные суммы оказываются равными, то полученный кадр данных считается правильным, то есть повреждения данных при передаче или хранении не произошло.

При обнаружении ошибки CRC используется та же самая концепция. Когда устройства серий Stratix и Cyclone (Stratix II, Stratix II GX, Stratix, Stratix GX, Cyclone II или Cyclone) находятся в пользовательском режиме, блок обнаружения ошибок CRC проверяет целостность конфигурационных данных.


Существуют две разновидности проверки ошибок CRC в FPGA. Одна всегда выполняется во время конфигурации, а вторая может опционально работать фоновым образом в пользовательском режиме. Этот документ описывает обнаружение ошибок CRC в пользовательском режиме.

^

Обнаружение ошибок конфигурации


Блок обнаружения ошибок CRC, работающий в пользовательском режиме - это отдельный узел, не связанный с тем, который работает во время конфигурации и использует заранее рассчитанный кадровый CRC. Этот CRC сохраняется во время конфигурации для каждого кадра вместе с конфигурационными данными.

Во время конфигурации FPGA рассчитывает CRC для каждого кадра полученных данных и сравнивает его с кадровым CRC, полученным в потоке данных. Конфигурация продолжается до обнаружения ошибки или до завершения.

Учтройства Stratix II, Stratix II GX и Cyclone II, находясь в пользовательском режиме, поддерживают JTAG-команду CHANGE_EDREG, которая позволяет записывать данные в 32-разрядный регистр. Для автоматизации тестирования и верификации можно использовать Jam файлы (.jam). Это мощное средство разработки, которое позволяет проверять CRC прямо в работающей системе, на лету, без переконфигурации устройства. После этого можно переключить схему CRC на проверку реальных ошибок, возникающих в результате SEU.


^ Вы можете выполнять JTAG-команду CHANGE_EDREG только тогда, когда устройство находится в пользовательском режиме.


Таблица 1. JTAG-команда CHANGE_EDREG

^ Команда JTAG

Код команды

Описание

CHANGE_EDREG

00 0001 0101

Эта команда подключает 32-разрядный регистр CRC между выводами TDI и TDO. Для проверки работы схемы обнаружения ошибок CRC можно загрузить в этот регистр любой предварительно рассчитанный CRC и проверить уровень сигнала на выводе CRC_ERROR.


Устройства Stratix II и Stratix II GX рассчитывают значение CRC во время конфигурации. По окончании конфигурации эти устройства загружают значение CRC в 32-разрядный регистр.

Для устройств Stratix, Stratix GX, Cyclone II и Cyclone CRC рассчитывается в САПР Quartus II и загружается в устройство как часть потока конфигурационных данных. Эти устройства также загружают CRC в 32-разрядный регистр по окончании конфигурации.

Когда включено обнаружение ошибок CRC в пользовательском режиме, эти устройства пересчитывают CRC на основании содержания конфигурационных данных и сравнивают его с CRC, сохранённым в 32-разрядном регистре.

^

Обнаружение ошибок в пользовательском режиме


Все устройства серий Stratix и Cyclone содержат встроенную схему для обнаружения повреждения данных в ячейках конфигурационной памяти (configuration random-access memory, CRAM) в результате однократных сбоев.

Такие сбои возникают в результате изменения состояния битов конфигурационной памяти под воздействием ионизирующих частиц.

Когда в бит данных во время реконфигурации устройства перезаписывается правильное значение, устройство снова работает правильно. Схема обнаружения ошибок непрерывно вычисляет CRC ячеек сконфигурированной CRAM и сравнивает его с предварительно рассчитанным CRC. Если эти CRC совпадают, то считается, что в битах CRAM нет ошибок. Процесс обнаружения ошибок продолжается до сброса устройства (подачей низкого уровня на вывод nConfig).

В устройствах серий Stratix и Cyclone не производится обнаружение ошибок в блоках памяти и буферах ввода-вывода. Блоки памяти в этих устройствах поддерживают биты чётности, которые используются для проверки таких блоков на любые ошибки. Буфера ввода-вывода не проверяются потому, что в них в качестве ячеек памяти используются триггеры, которые более устойчивы к одиночным сбоям. Подобные триггеры используются также для хранения предварительно рассчитанного CRC и других битах схемы обнаружения ошибок.

Схема обнаружения ошибок в устройствах серий Stratix и Cyclone использует 32-разрядный CRC в соответствии со стандартом IEEE 802. Если ошибок не обнаружено, результирующая 32-разрядная сигнатура будет равна 0х00000000, в результате чего выходной сигнал CRC_ERROR окажется равным 0. Если же в устройстве произойдёт сбой, то результирующая сигнатура будет ненулевой, и на выходе CRC_ERROR будет 1.
^

Вывод CRC_ERROR


В таблице 2 описывается вывод CRC_ERROR. Расположение выводов CRC_ERROR для устройств Stratix и Stratix GX, приведённое в таблицах 3 и 4 оригинала, в переводе опущено.

Таблица 2. Описание вывода CRC_ERROR

^ Имя вывода

Тип вывода

Описание

CRC_ERROR

Ввод-вывод, выход

Сигнал с высоким активным уровнем, который сообщает, что обнаружена ошибка в битах конфигурационной памяти. Использование этого сигнала опционально, он действует только тогда, когда включена схема обнаружения ошибок CRC. Когда эта схема выключена, вывод работает как обычный пользовательский. Для вывода CRC_ERROR не поддерживается конфигурация с открытым стоком или инверсия.



^

Блок обнаружения ошибок


Для устройств серий Stratix и Cyclone Вы можете разрешить работу блока обнаружения ошибок при помощи САПР Quartus II (см. раздел «(2) Минимальное время соответствует максимальной тактовой частоте схемы обнаружения ошибок и может изменяться в зависимости от процессов, напряжений и температур.»). Этот блок содержит логику, необходимую для вычисления 32-разрядной сигнатуры CRC битов конфигурационной памяти устройства.

Схема CRC продолжает работать даже после возникновения ошибки. Когда происходит единичный сбой, устройство устанавливает высокий уровень на выходе CRC_ERROR. Существуют два типа проверки битов конфигурации:

  • Первый тип - это проверка ошибок конфигурационной памяти (32-разрядный CRC) в пользовательском режиме, с индикацией через вывод CRC_ERROR. Здесь используется только один 32-разрядный CRC для всех конфигурационных данных.

  • Второй тип - это 16-разрядный CRC, встроенный в каждый кадр конфигурационных данных. Во время конфигурации, после загрузки кадра данных в FPGA, предварительно вычисленный CRC поступает в схему CRC. В то же время рассчитывается CRC для загруженного кадра данных. Если предварительно вычисленный CRC не совпадает с только что рассчитанным, на выводе nStatus устанавливается низкий уровень. Каждый кадр данных сопровождается 16-разрядным CRC, поэтому в потоке конфигурационных битов присутствует множество 16-разрядных значений CRC. Каждое устройство имеет свою длину кадра конфигурационных данных.


В данном тексте рассматривается только первый тип, 32-разрядный CRC для пользовательского режима.
^

Регистры обнаружения ошибки


В схеме обнаружения ошибки есть два 32-разрядных регистра, в которых хранятся сигнатура текущего рассчитанного CRC и предварительно вычисленное значение CRC. При ненулевом значении регистра сигнатуры на выводе CRC_ERROR устанавливается высокий уровень. На рисунке 1 показана функциональная схема блока обнаружения ошибки с двумя этими регистрами.



Рисунок 1. Схема блока обнаружения ошибки

Рисунок находится в файле fig1.bmp.

В таблице 5 описаны регистры, показанные на рисунке 1.

^ Таблица 5. Регистры обнаружения ошибки

Регистр

Функция

32-разрядный регистр сигнатуры

Регистр сигнатуры содержит результат сравнения значения вычисленного в пользовательском режиме CRC и предварительно рассчитанного значения CRC. Если ошибок не обнаружено, регистр сигнатуры содержит ноль. Ненулевое значение этого регистра означает наличие ошибки в содержимом конфигурационной памяти. Сигнал CRC_ERROR вычисляется из содержимого этого регистра.

32-разрядный регистр хранения

В этот регистр по окончании конфигурации загружается предварительно рассчитанная 32-разрядная сигнатура CRC. Эта сигнатура затем поступает в 32-разрядную схему CRC (называемую блоком расчёта и сравнения CRC, как показано на рис. 1). Во время выполнения JTAG-команды CHANGE_EDREG этот регистр образует 32-разрядную сканируемую цепь. JTAG-команда CHANGE_EDREG может изменять содержимое регистра хранения. Следовательно, функционирование схемы обнаружения ошибки CRC можно проверить в работающей системе путём искусственного введения ошибочной сигнатуры. Во время выполнения команды CHANGE_EDREG работа устройства не прерывается.



^

Временная диаграмма обнаружения ошибок


Когда закончена конфигурация устройства, и оно перешло в пользовательский режим, Вы можете выполнять JTAG-команду CHANGE_EDREG. Если не было обнаружено сбоев, перед выполнением команды на выводе CRC_ERROR будет низкий уровень. Вы можете имитировать сбой, изменив содержимое 32-разрядного регистра в схеме обнаружения ошибок CRC. На выводе CRC_ERROR установится высокий уровень, сообщая об ошибке. После проверки индикации ошибки Вы можете восстановить правильное содержимое 32-разрядного регистра, используя ту же самую команду. Следовательно, перед тем, как записать ошибочное значение, надо прочитать и сохранить правильное значение. Для автоматизации этого процесса можно создать Jam файл.

Когда в САПР Quartus II разрешено обнаружение ошибок CRC, устройство автоматически активизирует процесс работы с CRC при входе в пользовательский режим, когда закончены конфигурация и инициализация. До возникновения ошибки на выводе CRC_ERROR будет низкий уровень. Когда схема обнаружения ошибки обнаружит повреждённый бит (биты) в ходе проведённого расчёта CRC, на этом выходе установится высокий уровень.

^ Altera рекомендует по окончании проверок реконфигурировать устройство, если Вы изменяли содержимое регистра CRC.


Когда на выходе CRC_ERROR появляется высокий уровень, он сохраняется там в течение следующего расчёта CRC. Этот вывод не сохраняет состояние, соответствующее предыдущему расчёту CRC. Если при новом вычислении CRC не будет выявлено сбойных битов, на выходе CRC_ERROR опять появится низкий уровень. Работа схемы обнаружения ошибок продолжается до сброса устройства.

Как только устройство входит в пользовательский режим, начинает работать схема обнаружения ошибок CRC. Она использует для тактирования внутренний конфигурационный генератор с делителем частоты на выходе. Вы можете задавать коэффициент деления делителя при помощи САПР Quartus II (см. раздел «(2) Минимальное время соответствует максимальной тактовой частоте схемы обнаружения ошибок и может изменяться в зависимости от процессов, напряжений и температур.»). Коэффициент деления равен степени числа 2 (2n), где n может быть целым числом от нуля или единицы до восьми.

В таблице 6 показаны минимальные и максимальные тактовые частоты схемы обнаружения ошибок.

^ Таблица 6. Минимальные и максимальные тактовые частоты схемы обнаружения ошибок

^ Тип устройства

Формула для тактовой частоты обнаружения ошибок

Максимальная тактовая частота обнаружения ошибок

Минимальная тактовая частота обнаружения ошибок

^ Возможные степени двух для делителя (2n)

Stratix и Stratix GX

100 MHz/2n

100 MHz

390 kHz

0,1,2,3,4,5,6,7,8

Stratix II и Stratix II GX

100 MHz/2n

100 MHz

390 kHz

1,2,3,4,5,6,7,8

Cyclone и Cyclone II

80 MHz/2n

80 MHz

312,5 kHz

0,1,2,3,4,5,6,7,8


Время, которое затрачивается на каждый расчёт CRC, зависит от конкретного устройства и от тактовой частоты. В таблице 7 приводится ориентировочное время одного расчёта CRC с минимальной и максимальной тактовой частотой для устройств серий Stratix и Cyclone.

^ Таблица 3. Время вычисления CRC (1)

Устройство

^ Минимальное время (ms) (2)

Максимальное время (с) (3)

Устройства Stratix II

EP2S15

10

1.28

EP2S30

22

2.816

EP2S60

39

4.992

EP2S90

59

7.552

EP2S130

86

11.008

EP2S180

115

14.72

Устройства Stratix

EP1S10

4.3

1.1

EP1S20

7.2

1.9

EP1S25

9.8

2.5

EP1S30

12.8

3.3

EP1S40

15.3

3.9

EP1S60

21.7

5.6

EP1S80

29.6

7.6

Устройства Cyclone

EP1C3

0.92

0.24

EP1C4

1.3

0.32

EP1C6

1.8

0.45

EP1C12

3.5

0.90

EP1C20

5.4

1.4

Устройства Stratix II GX

EP1SGX10C

4.3

1.1

EP1SGX10D

4.3

1.1

EP1SGX25C

9.8

2.5

EP1SGX25D

9.8

2.5

EP1SGX25F

9.8

2.5

EP1SGX40D

15.3

3.9

EP1SGX40G

15.3

3.9

Устройства Cyclone II

EP2C5

2

0.512

EP2C8

3

0.768

EP2C20

6

1.536

EP2C35

11

2.816

EP2C50

16

4.096

EP2C70

23

5.888

Замечания к таблице 7:

(1) Времена расчёта CRC для устройств Stratix II GX будут включены в следующую версию этого документа.

(2) Минимальное время соответствует максимальной тактовой частоте схемы обнаружения ошибок и может изменяться в зависимости от процессов, напряжений и температур.

(3) Максимальное время соответствует максимальной тактовой частоте схемы обнаружения ошибок и может изменяться в зависимости от процессов, напряжений и температур.

^

Программная поддержка


САПР Quartus II поддерживает возможность обнаружения ошибок CRC, начиная с версии 4.1. При включении этого режима вывод CRC_ERROR становится выходом схемы обнаружения ошибок.

Схема обнаружения ошибок CRC управляется через диалоговое окно «Device & Pin Options». Для контроля правильности данных она использует 32-разрядную схему CRC.

Для того, чтобы включить схему обнаружения ошибок CRC, надо выполнить следующие действия:

  1. Запустить САПР Quartus II и загрузить проект, в котором используется устройство из серий Stratix или Cyclone.

  2. В меню Assignments выбрать Settings. Появится диалоговое окно «Settings».

  3. Из списка Category выбрать Device. Появится страница «Device».

  4. Щёлкнуть по кнопке Device & Pin Options. Появится диалог «Device & Pin Options» (Рисунок 2).

  5. В диалоговом окне «Device & Pin Options» щёлкнуть по закладке «Error Detection CRC».

  6. Установить флажок «Enable error detection CRC».

  7. В поле «Divide error check frequency by» ввести нужный делитель, как описано в таблице 6.

  8. Щёлкните по кнопке OK.




Рисунок 2. Включение обнаружения ошибок CRC в САПР Quartus II

Рисунок находится в файле fig2.bmp.
^

Восстановление после ошибок CRC


Система, в состав которой входит FPGA Altera, должна управлять реконфигурацией устройства. При появлении сигнала ошибки на выходе CRC_ERROR система должна установить на заданное время низкий уровень на выводе nCONFIG, чтобы запустить реконфигурацию FPGA.

В некоторых применениях, где требуется высокая достоверность, может возникнуть необходимость подсчёта одиночных сбоев.

Выводы


Назначение схемы обнаружения ошибок CRC состоит в обнаружении переключений любого из битов конфигурационной памяти устройств серий Stratix или Cyclone. При использовании этой схемы Вы можете непрерывно проверять целостность данных в конфигурационной памяти.


1 Пользовательский режим - это режим, в который переходит ПЛИС после окончания конфигурации и инициализации. В этом режиме она выполняет функции, заданные пользователем (примечание переводчика).







Похожие:

Обнаружение и исправление ошибок с использованием crc в устройствах fpga фирмы Altera Сокращённый перевод документа an357 фирмы Altera «Error Detection & Recovery Using crc in Altera fpga devices» iconОбнаружение и исправление ошибок с использованием crc в устройствах fpga фирмы Altera Сокращённый перевод документа an357 фирмы Altera «Error Detection & Recovery Using crc in Altera fpga devices»
Сокращённый перевод документа an357 фирмы Altera «Error Detection & Recovery Using crc in Altera fpga devices», версия 2, апрель...
Обнаружение и исправление ошибок с использованием crc в устройствах fpga фирмы Altera Сокращённый перевод документа an357 фирмы Altera «Error Detection & Recovery Using crc in Altera fpga devices» iconДокументы
1. /FPGA Compiler II. FPGA Express. VHDL Reference Manual. 1999.pdf
Обнаружение и исправление ошибок с использованием crc в устройствах fpga фирмы Altera Сокращённый перевод документа an357 фирмы Altera «Error Detection & Recovery Using crc in Altera fpga devices» iconДокументы
1. /CRC Press - 2001 - Dictionary of Geophysics, Astrophysics and Astronomy - ISBN 0849328918...
Обнаружение и исправление ошибок с использованием crc в устройствах fpga фирмы Altera Сокращённый перевод документа an357 фирмы Altera «Error Detection & Recovery Using crc in Altera fpga devices» iconДокументы
1. /VHDL reference FPGA EXPRESS.pdf
Обнаружение и исправление ошибок с использованием crc в устройствах fpga фирмы Altera Сокращённый перевод документа an357 фирмы Altera «Error Detection & Recovery Using crc in Altera fpga devices» iconДокументы
1. /Design Warriors Guide To Fpga. 2004.pdf
Обнаружение и исправление ошибок с использованием crc в устройствах fpga фирмы Altera Сокращённый перевод документа an357 фирмы Altera «Error Detection & Recovery Using crc in Altera fpga devices» iconДокументы
...
Обнаружение и исправление ошибок с использованием crc в устройствах fpga фирмы Altera Сокращённый перевод документа an357 фирмы Altera «Error Detection & Recovery Using crc in Altera fpga devices» iconДокументы
...
Обнаружение и исправление ошибок с использованием crc в устройствах fpga фирмы Altera Сокращённый перевод документа an357 фирмы Altera «Error Detection & Recovery Using crc in Altera fpga devices» iconПоэт-песенник, журналист, эстрадный автор, про­дюсер Михаил Шабров родился 7 ноября 1944 года в Москве
Начинал он свою творческую карьеру как чинов­ник от культуры, занимая должности ответственного секретаря художественного совета фирмы...
Обнаружение и исправление ошибок с использованием crc в устройствах fpga фирмы Altera Сокращённый перевод документа an357 фирмы Altera «Error Detection & Recovery Using crc in Altera fpga devices» iconКонтрольная работа (итоговая) По курсу «Экономика отраслевых рынков» Семестр февраль-июнь 2003 г дневное отделение фио № группы
Товар продается в условиях олигополии, на долю каждой фирмы приходится 20% выпуска. Чему равен индекс Лернера фирмы при условии их...
Обнаружение и исправление ошибок с использованием crc в устройствах fpga фирмы Altera Сокращённый перевод документа an357 фирмы Altera «Error Detection & Recovery Using crc in Altera fpga devices» iconПодписка: экономим время и деньги
Это помогает отслеживать изменения в законодательстве и избегать ошибок. Самым распространенным способом приобретения печатных изданий...
Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©podelise.ru 2000-2014
При копировании материала обязательно указание активной ссылки открытой для индексации.
обратиться к администрации
Документы

Разработка сайта — Веб студия Адаманов