Микрополу-ЛОГО

Microsemi DG0618 Обнаружение и исправление ошибок на устройствах SmartFusion2 с использованием памяти DDR

Microsemi -DG0618-Обнаружение-и-исправление-ошибок-на-устройствах-SmartFusion2-использующих-память-DDR-ИЗОБРАЖЕНИЕ ПРОДУКТА

Штаб-квартира корпорации Microsemi
One Enterprise, Алисо Вьехо,
CA 92656 США
В пределах США: +1 800-713-4113
За пределами США: +1 949-380-6100
Факс: +1 949-215-4996
Электронная почта: sales.support@microsemi.com
www.microsemi.com
© 2017 Корпорация Microsemi. Все права защищены. Microsemi и логотип Microsemi являются товарными знаками корпорации Microsemi. Все другие товарные знаки и знаки обслуживания являются собственностью их соответствующих владельцев.

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

О Микросеми
Корпорация Microsemi (Nasdaq: MSCC) предлагает комплексный портфель полупроводниковых и системных решений для аэрокосмической и оборонной промышленности, связи, центров обработки данных и промышленных рынков. Продукты включают в себя высокопроизводительные и радиационно-стойкие аналоговые интегральные схемы со смешанными сигналами, FPGA, SoC и ASIC; продукты управления питанием; устройства хронометража и синхронизации, а также решения для точного времени, устанавливающие мировой стандарт времени; устройства обработки голоса; РЧ-решения; дискретные компоненты; корпоративные решения для хранения и связи, технологии безопасности и масштабируемая защита от атакampпродукты; Ethernet-решения; ИС и инжекторы Power-over-Ethernet; а также возможности индивидуального дизайна и услуги. Штаб-квартира Microsemi находится в Алисо-Вьехо, Калифорния, и насчитывает около 4,800 сотрудников по всему миру. Узнайте больше на www.microsemi.com.

История изменений

История изменений описывает изменения, которые были реализованы в документе. Изменения перечислены по редакции, начиная с самой последней публикации.

  • Редакция 4.0
    Обновлен документ для версии программного обеспечения Libero v11.8.
  • Редакция 3.0
    Обновлен документ для версии программного обеспечения Libero v11.7.
  • Редакция 2.0
    Обновлен документ для версии программного обеспечения Libero v11.6.
  • Редакция 1.0
    Первоначальный выпуск программного обеспечения Libero SoC v11.5.

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

Введение
В среде, подверженной сбоям в результате одного события (SEU), оперативная память (ОЗУ) склонна к временным ошибкам, вызванным тяжелыми ионами.
В этом документе описаны возможности EDAC SoC FPGA, которые используются в приложениях с памятью, подключенной через подсистему микроконтроллера (MSS) DDR (MDDR).
Контроллеры EDAC, реализованные в устройствах SmartFusion2, поддерживают исправление одиночных ошибок и обнаружение двойных ошибок (SECDED). Вся память — расширенная статическая оперативная память (eSRAM), DDR, маломощная DDR (LPDDR) — в устройствах SmartFusion2 MSS защищена SECDED. Синхронная динамическая память произвольного доступа (SDRAM) DDR может быть DDR2, DDR3 или LPDDR1, в зависимости от конфигурации MDDR и аппаратных возможностей ECC.
Подсистема SmartFusion2 MDDR поддерживает плотность памяти до 4 ГБ. В этой демонстрации вы можете выбрать любую ячейку памяти размером 1 ГБ в адресном пространстве DDR (от 0xA0000000 до 0xDFFFFFFF).
Когда SECDED включен:

  • Операция записи вычисляет и добавляет 8 бит кода SECDED (к каждые 64 бита данных).
  • Операция чтения считывает и сверяет данные с сохраненным кодом SECDED для поддержки исправления 1-битных ошибок и обнаружения 2-битных ошибок.

На следующем рисунке описана блок-схема SmartFusion2 EDAC на DDR SDRAM.

Рисунок 1 • Блок-схема верхнего уровня

Функция EDAC в DDR поддерживает следующее:

  1.  механизм SECDED
  2. Обеспечивает прерывания процессора ARM Cortex-M3 и структуры FPGA при обнаружении 1-битной или 2-битной ошибки.
  3. Сохраняет количество 1-битных и 2-битных ошибок в регистрах счетчика ошибок.
  4. Сохраняет адрес последней 1-битной или 2-битной ошибки, затронутой ячейкой памяти.
  5. Сохраняет 1-битные или 2-битные данные об ошибках в регистрах SECDED.
  6. передает сигналы шины ошибок в структуру FPGA

Для получения дополнительной информации о EDAC см. UG0443: Руководство пользователя по безопасности и надежности SmartFusion2 и IGLOO2 FPGA и UG0446: Руководство пользователя по высокоскоростным интерфейсам DDR SmartFusion2 и IGLOO2 FPGA.

Требования к проектированию
В следующей таблице перечислены требования к конструкции.

Таблица 1 • Требования к конструкции

  • Описание требований к проекту
  • Требования к оборудованию
  • Плата SmartFusion2 Advanced Development Kit версии B или более поздней версии
  • Программатор FlashPro5 или выше
  • USB-кабель USB A — mini-B
  • Адаптер питания 12 В
  • Дочерняя плата DDR3
  • Операционная система Любая 64-битная или 32-битная Windows XP SP2.
  • Любая 64-битная или 32-битная версия Windows 7.
  • Требования к программному обеспечению
  • Система на кристалле Libero® (SoC) v11.8
  • СофтКонсоль v4.0
  • ПО для программирования FlashPro v11.8
  • Драйверы хост-компьютера Драйверы USB-UART
  • Платформа для запуска демонстрационного клиента Microsoft .NET Framework 4

Демонстрационный дизайн
Демонстрационный дизайн fileдоступны для загрузки по следующему пути в Microsemi. webсайт: http://soc.microsemi.com/download/rsc/?f=m2s_dg0618_liberov11p8_df
Демонстрационный дизайн fileвключают в себя:

  • Конфигурация ГДР File
  • DDR_EDAC
  • Программирование files
  • Исполняемый файл с графическим интерфейсом
  • Прочти меня file

На следующем рисунке описана структура верхнего уровня проекта. fileс. Более подробную информацию смотрите в readme.txt. file.

Рис. 2. Структура верхнего уровня демо-проекта

Microsemi -DG0618-Обнаружение и исправление ошибок на SmartFusion2-Устройствах, использующих память DDR-2

Реализация демо-проекта
Подсистема MDDR имеет выделенный контроллер EDAC. EDAC обнаруживает 1-битную или 2-битную ошибку при чтении данных из памяти. Если EDAC обнаруживает 1-битную ошибку, контроллер EDAC исправляет бит ошибки. Если EDAC включен для всех 1-битных и 2-битных ошибок, соответствующие счетчики ошибок в системных регистрах увеличиваются и генерируются соответствующие прерывания и сигналы шины ошибок для структуры FPGA.
Это происходит в режиме реального времени. Чтобы продемонстрировать эту функцию SECDED, вручную вводится ошибка, а затем наблюдается ее обнаружение и исправление.
Этот демонстрационный проект включает в себя реализацию следующих шагов:

  1. Включить EDAC
  2. Запись данных в DDR
  3. Чтение данных из DDR
  4. Отключить EDAC
  5. Повреждены 1 или 2 бита
  6. Запись данных в DDR
  7. Включить EDAC
  8. Прочтите данные
  9. В случае 1-битной ошибки контроллер EDAC исправляет ошибку, обновляет соответствующие регистры состояния и выдает данные, записанные на шаге 2, при операции чтения, выполненной на шаге 8.
  10. В случае 2-битной ошибки генерируется соответствующее прерывание и приложение должно исправить данные или выполнить соответствующее действие в обработчике прерывания. Эти два метода продемонстрированы в этой демонстрации.

В этой демонстрации реализованы два теста: циклический тест и ручной тест, и они применимы как к 1-битным, так и к 2-битным ошибкам.

Циклический тест
Тестирование контура выполняется, когда устройства SmartFusion2 получают команду тестирования контура из графического пользовательского интерфейса. Первоначально все счетчики ошибок и регистры, связанные с EDAC, переводятся в состояние RESET.
Следующие шаги выполняются для каждой итерации.

  1. Включить контроллер EDAC
  2. Запишите данные в определенную ячейку памяти DDR.
  3. Отключить контроллер EDAC
  4. Запишите 1-битные или 2-битные данные, вызванные ошибками, в одну и ту же ячейку памяти DDR.
  5. Включить контроллер EDAC
  6. Считайте данные из той же ячейки памяти DDR.
  7. Отправьте 1-битные или 2-битные данные обнаружения ошибок и 1-битные данные исправления ошибок в случае 1-битной ошибки в графический интерфейс.

Ручной тест
Этот метод позволяет вручную тестировать обнаружение и исправление 1-битных ошибок, а также обнаружение 2-битных ошибок для адреса памяти DDR (от 0xA0000000 до 0xDFFFFFFF) с инициализацией. Ошибка размером 1/2 бита вводится вручную в выбранный адрес памяти DDR. Данные данные записываются в выбранную ячейку памяти DDR с включенным EDAC. Поврежденные 1-битные или 2-битные данные об ошибках затем записываются в ту же ячейку памяти с отключенным EDAC. Информация об обнаруженной 1-битной или 2-битной ошибке записывается при чтении данных из одной и той же ячейки памяти с включенным EDAC. Высокопроизводительный контроллер DMA
(HPDMA) используется для чтения данных из памяти DDR. Обработчик прерываний обнаружения двухбитных ошибок реализован для выполнения соответствующих действий при обнаружении двухбитной ошибки.
На следующем рисунке описаны демонстрационные операции EDAC.

Рисунок 3. Схема проектирования

Microsemi -DG0618-Обнаружение и исправление ошибок на SmartFusion2-Устройствах, использующих память DDR-3

Примечание: В случае 2-битной ошибки, когда процессор Cortex-M3 считывает данные, выполнение кода переходит к обработчику жесткой ошибки, поскольку полученное прерывание задерживается для ответа процессора. К тому моменту, когда он отреагирует на прерывание, он, возможно, уже передал данные и случайно запустил команду. В результате HRESP прекращает обработку неверных данных. Обнаружение 2-битных ошибок использует HPDMA для чтения данных из адреса DDR, который сообщает процессору, что при чтении данных имеется 2-битная ошибка, и система должна предпринять соответствующие действия для восстановления (обработчик прерываний ECC).

Настройка демонстрационного дизайна
В этом разделе описывается настройка платы SmartFusion2 Advanced Development Kit, параметры графического пользовательского интерфейса и выполнение демонстрационного проекта.
Следующие шаги описывают, как настроить демо:

  1. Подключите один конец кабеля USB mini-B к разъему J33, предусмотренному на плате SmartFusion2 Advanced Development Kit. Подключите другой конец USB-кабеля к хост-компьютеру. Светодиод (LED) DS27 должен загореться, указывая на то, что соединение UART установлено. Убедитесь, что драйверы моста USB-UART обнаружены автоматически (можно проверить в диспетчере устройств), как показано на следующем рисунке.
    Рис. 4 • Драйверы моста USB-UART
    Microsemi -DG0618-Обнаружение и исправление ошибок на SmartFusion2-Устройствах, использующих память DDR-4
    Если драйверы моста USB-UART не установлены, загрузите и установите драйверы по адресу: www.microsemi.com/soc/documents/CDM_2.08.24_WHQL_Certified.zip.
  2. Подключите перемычки на плате SmartFusion2 Advanced Development Kit, как показано в Таблице 4, стр. 11. При подключении перемычек выключатель питания SW7 должен быть выключен.

Рисунок 5 • Настройка платы расширенного комплекта разработки SmartFusion2

Microsemi -DG0618-Обнаружение и исправление ошибок на SmartFusion2-Устройствах, использующих память DDR-5

 Графический пользовательский интерфейс
В этом разделе описывается демонстрационный графический интерфейс DDR – EDAC.

Рисунок 6 • DDR — демонстрационный графический интерфейс EDAC

Microsemi -DG0618-Обнаружение и исправление ошибок на SmartFusion2-Устройствах, использующих память DDR-6

Графический интерфейс поддерживает следующие функции:

  1. Выбор COM-порта и скорости передачи данных
  2. Выбор вкладки исправления 1-битных ошибок или обнаружения 2-битных ошибок.
  3. Поле адреса для записи или чтения данных на указанный адрес DDR или с него.
  4. Поле данных для записи или чтения данных на указанный адрес DDR или с него.
  5. Раздел последовательной консоли для печати информации о состоянии, полученной от приложения.
  6. Включить EDAC/Отключить EDAC: включает или отключает EDAC.
  7. Запись: позволяет записывать данные по указанному адресу.
  8.  Чтение: позволяет читать данные с указанного адреса.
  9. Тестирование цикла ВКЛ/ВЫКЛ: позволяет тестировать механизм EDAC циклическим методом.
  10.  Инициализация: позволяет инициализировать предопределенную ячейку памяти (в этой демонстрации A0000000-A000CFFF).

Запуск демо-дизайна
Следующие шаги описывают, как запустить проект: Следующие шаги описывают, как запустить дизайн:

  1. Включите выключатель питания, SW7.
  2. Запрограммируйте устройство SmarFusion2 с помощью программирования file предусмотрено в конструкции files.(\ПрограммированиеFile\EDAC_DDR3.stp) с помощью программного обеспечения для проектирования FlashPro, как показано на следующем рисунке.
    Рис. 7. Окно программирования FlashPro.
    Microsemi -DG0618-Обнаружение и исправление ошибок на SmartFusion2-Устройствах, использующих память DDR-7
  3. Нажмите переключатель SW6 для сброса платы после успешного программирования.
  4. Запустите исполняемый файл демонстрационного графического интерфейса EDAC_DDR. file доступен в дизайне files (\GUI Executable\EDAC_DDR.exe). Отображается окно графического интерфейса, как показано на рисунке 8, страница 9.
  5. Нажимаем Connect, он выбирает COM-порт и устанавливает соединение. Опция «Подключиться» изменится на «Отключить».
  6. Выберите вкладку «1-битное исправление ошибок» или «2-битное обнаружение ошибок».
  7. Могут быть выполнены ручные и циклические тесты.
  8. Нажмите «Инициализировать», чтобы инициализировать память DDR для выполнения ручного и циклического тестов. На последовательной консоли отобразится сообщение о завершении инициализации, как показано на рис. 8, стр. 9.

Рис. 8. Окно «Инициализация завершена».

Microsemi -DG0618-Обнаружение и исправление ошибок на SmartFusion2-Устройствах, использующих память DDR-8

Выполнение теста контура
Нажмите «Тестирование контура ВКЛ.». Он работает в циклическом режиме, в котором выполняется непрерывная коррекция и обнаружение ошибок. Все действия, выполняемые на устройстве SmartFusion2, протоколируются в разделе последовательной консоли графического пользовательского интерфейса.

Таблица 2. Адреса памяти DDR3, используемые в циклическом тесте

  • Память DDR3
  • 1-битная коррекция ошибок 0xA0008000
  • Обнаружение 2-битной ошибки 0xA000C000

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

Таблица 3. Адреса памяти DDR3, использованные при ручном тестировании

Поля ввода адреса и данных (используйте 32-битные шестнадцатеричные значения).

  • Память DDR3
  • 1-битная коррекция ошибок 0xA0000000-0xA0004000
  • Обнаружение 2-битной ошибки 0xA0004000-0xA0008000
  1. Нажмите «Включить EDAC».
  2. Нажмите «Написать».
  3. Нажмите «Отключить EDAC».
  4. Измените один бит (в случае исправления 1-битной ошибки) или два бита (в случае обнаружения 2-битной ошибки) в поле «Данные» (вносящая ошибку).
  5. Нажмите «Написать».
  6. Нажмите «Включить EDAC».
  7. Щелкните Читать.
  8. Обратите внимание на отображение количества ошибок и поле данных в графическом интерфейсе. Значение счетчика ошибок увеличивается на 1.

Окно коррекции 1-битной ошибки показано на следующем рисунке.

Рис. 9. Окно обнаружения 1-битной петли ошибок

Microsemi -DG0618-Обнаружение и исправление ошибок на SmartFusion2-Устройствах, использующих память DDR-9

Окно руководства по обнаружению 2-битных ошибок показано на следующем рисунке.

Рис. 10. Окно ручного обнаружения 2-битных ошибок.

Microsemi -DG0618-Обнаружение и исправление ошибок на SmartFusion2-Устройствах, использующих память DDR-10

Заключение
В этой демонстрации показаны возможности SmartFusion2 SECDED для подсистемы MDDR.

Приложение: Настройки перемычек

В следующей таблице показаны все необходимые перемычки, которые необходимо установить в комплекте усовершенствованной разработки SmartFusion2.

Таблица 4. Настройки перемычек комплекта расширенной разработки SmartFusion2

Перемычка : Контакт (От) : Контакт (К) : Комментарии

  • J116, J353, J354, J54 1 2 Это настройки перемычек по умолчанию для расширенного режима.
  • J123 2 3 Плата комплекта разработки. Убедитесь, что эти перемычки установлены соответствующим образом.
  • J124, J121, J32 1 2 ДжTAG программирование через FTDI

Демонстрационное руководство DG0618 Редакция 4.0

Документы/Ресурсы

Microsemi DG0618 Обнаружение и исправление ошибок на устройствах SmartFusion2 с использованием памяти DDR [pdf] Руководство пользователя
DG0618 Обнаружение и исправление ошибок на устройствах SmartFusion2, использующих память DDR, DG0618, Обнаружение и исправление ошибок на устройствах SmartFusion2, использующих память DDR, Устройства SmartFusion2, использующие память DDR, Память DDR

Ссылки

Оставьте комментарий

Ваш адрес электронной почты не будет опубликован. Обязательные поля отмечены *