Руководство по проектированию ST-DDR4 интерфейса памяти для FPGA контроллеров Xilinx

Вступление

Магниторезистивная память со спиновым переносом (STT-MRAM) – это технология постоянной памяти, характеризующаяся высокой производительностью и долговечностью, которая использует стандартные типы отраслевых интерфейсов. Компания Everspin представила устройства STT-MRAM, использующие стандартный JEDEC DDR4 интерфейс, именуемый ST-DDR4. За счет своей высокой функциональности, она обеспечивают полноценную системную поддержку. Этот документ является руководством для инженеров, позволяющий понять принцип подключения контроллера памяти Xilinx FPGA (ПЛИС) к постоянной памяти ST-DDR4.

Подключение памяти ST-DDR4

Начальной точкой для интеграции поддержки интерфейса ST-DDR является генератор интерфейса памяти 8Gb DDR4 SDRAM-2666 (MIG), генерируемый из среды разработки Xilinx Vivado. Допустимы следующие отклонения от 8 Gb DDR4 SDRAM (пояснения представлены в последующих разделах этого документа):

  • Тайминги (снижение рабочей частоты, увеличение тайминга доступа к строке, увеличение ширины счетчика и уменьшение размера CAS-страницы).
  • Включение питания (калибровка с включенным режимом «anti-scribble»).
  • Отключение питания (скремблирование либо перенос всех соответствующих данных в массив постоянной памяти).
  • Производительность (увеличение глубины конвейера с приростом эффективности процесса перемещения данных).

Примечание: это также важно для реализации надежной конструкции постоянной памяти ST-DDR4, однако реализация схемы корректировки ошибок по их кодам системного уровня вынесена за рамки этого документа.

Интерфейс памяти DDR4 SDRAM-1333

Логика интерфейса DDR4 в среде разработки Xilinx генерируется на основе входных параметров, представляющих характеристики скорости и таймингов интерфейса 8Gb DDR4 SDRAM-2666. Первый предварительный шаг – создание JEDEC-совместимого контроллера DDR4, поскольку MIG не способен генерировать интерфейсную логику с параметрами, выходящими за пределы используемого стандарта (JEDEC). 1Gb ST-DDR4 1333 от Everspin является наиболее схожим по характеристикам с 8 Gb DDR4-2666 SDRAM, поэтому разработчикам следует применять значения таймингов для 8 Gb DDR4-2666 SDRAM из спецификации к SDRAM DDR4-2666 (указаны в таблице 145, значения таймингов, используемых для измерений IDD – тактовые единицы из части, которая описывает DDR4-2666). После создания логики интерфейса DDR4 можно изменять параметры таймингов, включения, выключения и производительности, что необходимо для интеграции постоянной памяти ST-DDR4.

После реализации MIG рекомендуется создать тестовый шаблон в среде Vivado. Для этого необходимо нажать правой кнопкой на файл формата «.xci» и выбрать пункт меню «Open IP Example Design...». В результате будет создан новый проект Vivado со всеми тестовыми файлами, которые необходимы для симуляции вновь созданного MIG. Для получения более подробных сведений рекомендуется просмотреть учебное пособие по созданию Xilinx MIG - Designing a Memory Interface and Controller with Vivado MIG for UltraScale, а также Memory Interfaces Design Hub - UltraScale DDR4/DDR4 Memory.

Примечание: все действия по созданию MIG и внесению изменений, упомянутые в этом документе, производились в среде разработки Vivado версии 2018.3.

Пояснения модификаций контроллера FPGA Xilinx

Все изменения в контроллере Xilinx MIG DDR4, необходимые для обеспечения совместимости с ST DDR4, могут быть классифицированы как модификации параметров включения, таймингов, выключения и производительности. Ниже представлены пояснения по всем перечисленным категориям модификаций.

Включение

На официальном сайте компании Everspin доступна таблица, подробно описывающая последовательность включения для DDR4 STT-MRAM (таблица EMD4E00GAS2). Говоря кратко, чтобы определить последовательность включения, необходимо рассмотреть две основные области: значения регистров режима по умолчанию и уровни сигналов при включении питания.

Настройки регистра режима

Устройство обеспечивает полную совместимость с регистром режима. Она устанавливается в процессе включения или после перезагрузки чтобы обеспечить корректную работу ST-DDR4 1333. Ниже представлена последовательность программирования регистра режима:

  • Регистр режима 0 (MR0) – 14'b10_0001_0000_0100
  • Регистр режима 1 (MR1) – 13'b0_0000_0000_0101
  • Регистр режима 2 (MR2) – 13'b0_0000_0000_0000
  • Регистр режима 3 (MR3) – 13'b0_0001_1000_0000
  • Регистр режима 5(MR5) – 13'b0_0100_1110_0000

После калибровки и перед режимом нормального функционирования

  • Регистр режима 0 (MR0) – 14'b00_0000_0000_0100

Примечание: для перевода устройства STT MRAM в режим NOMEM необходимо, чтобы MR0 [13] принял значение 1 перед калибровкой. Это требуется для предотвращения повреждения данных в процессе выравнивания записи (это иначе называют антискриблингом – «anti-scribbling»). Поскольку STT-MRAM – это постоянная память, запись в разделы в процессе калибровки может привести к перезаписи уже имеющихся данных, поэтому была предусмотрена функция режима NOMEM. Перед режимом нормального функционирования необходимо установить значение параметра MR0[13] = 0. Это требуется для отключения NOMEM режима, чтобы разрешить доступ к массиву постоянной памяти.

Уровни сигнала включения

Описание уровней сигнала включения выходит за рамки этого документа. Подробная информация указана в таблице EMD4E00GAS2.

Тайминги

Как упоминалось выше, тайминги для ST-DDR4 были взяты из известного и хорошо генерируемого Xilinx DDR4 SDRAM MIG. Ключевые параметры таймингов для исходной памяти DDR4 SDRAM и ST-DDR4 MRAM перечислены ниже в таблице 1.

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

Таблица 1 - ключевые параметры синхронизации для DDR4 и ST-DDR4

Параметр Символ DDR4-2666 SDRAM 

ST-DDR4-1333, STT-MRAM

    ns(min) ck(min) ns(min) ck(min)
Clock Period tCK 0.75   1.2  
Cas Latency tCCK   18   10
Cas Write Latency CWL   7   9
Collumn to Collumn command delay tCCD   4   4
Internal READ to first data Taa 13.5 18 15 10
ACTIVE to internal READ or WRITE dealy time tRCD  13.5 18 135 90
Precharge command period tRP      7.5 5
ACTIVE to ACTIVE command period tRC tRAS +, еP   150 100
ACTIVE to Precharge command period tRAS 36 24 143 96
Write Recovery, WRITE to Precharge delay time  tWR 15 10 15 10
ACT to ACT Command period, different banks tRRD 6 4 10  
Four ACTIVE Window tFAW 30 20 240 160
REFRESH to ACT command delay (1Gb to 8Gb) tRFC   74-234 Must equal tST
Store Operation period tST - - 380 254

Таблица 2 – Изменения ширины столбцов и счетчиков для ST-DDR4

Parameter (blts) JEDEC DDR4 1 Gb ST-DDR4
IO Width x8 x8, x16
Page size 8192 1024(x8), 2048 (xx16)
tRASf 3 7
TXN_FIFO_DEPTH 4 16
TXN_FIFO_PWIDTH 2 4
CAS_FIFO_DEPTH 4 16
CAS_FIFO_PWIDTH 2 4
trcd_cntr / trcd_cntr_nxt 4 7
trp_cntr 5 7
tras_cntr_rb_nxt 4 7
Column Address Width (bits) A0 - A9 (10) A0 - A6 (7)

Используйте данные из представленных выше таблиц чтобы убедиться в том, что все изменения параметров таймингов соответствуют тем, которые были сгенерированы в модифицированном ST-DDR4 MIG.

Выключение (Scram)

Scram не является командой или кодом определенной операции – это процедура выключения. Это буквально означает, что питание больше не подается, поэтому контроллер должен гарантировать постоянство всех открытых страниц и буферов, записывая их в постоянный массив (независимо от того, является ли отключение питания плановым или неожиданным). Scram должен быть реализован максимально быстро, если выключение было неожиданным. Обычно это занимает около 10 мкс, однако реальное время зависит от реализации и должно быть тщательно рассчитано, смоделировано и протестировано, чтобы гарантировать запись всех важных данных в массив постоянной памяти. Сохранение данных после отключения питания гарантируется выполнением команды REFRESH, необходимой для перемещения данных в массив постоянной памяти.

Примечание: в некоторых вариантах исполнения, использующих как DRAM/MRAM так и DRAM емкости, превышающие объем MRAM, контроллер должен гарантировать, что все важные данные, которые хранятся в DRAM, никогда не превысят емкость MRAM массива (при нормальном режиме функционирования).

Последовательность выполнения процедуры Scram:

  • Контроллер получил сигнал отключения питания или обнаружил следующее: входное напряжение питания (как правило это +12 В постоянного тока) падает, либо возникли перенапряжение, перегрузка или перегрев. Для выполнения последующих 4 этапов требуется обеспечение необходимой длительности работы FPGA и MRAM и/или DRAM (то есть, объемная емкость постоянного тока на выходе должна иметь надлежащее значение). Многие варианты исполнений соответствуют требованиям по времени безотказной работы и объемному емкостному переходному току соответственно, но они не могут быть использованы. Более подробные сведения указаны в разделе Контрольный список уровня системы (Board Level Checklist).
  • Завершение всех обращений к MRAM на высшем уровне MIG, находящиеся в режиме ожидания. Управляющая логика завершает передачу данных и информации о состоянии в интерфейс MRAM MIG.
  • Отправка power_fail_has_scramed сигнала на MRAM MIG и удерживание его. Таким образом MIG «понимает», что работа управляющей логики была завершена, в свою очередь MIG должен выполнить процедуру Scram, передав все записи в постоянный массив MRAM. Режим периодического чтения данных также должен быть отключен. Во время выполнения команды power_fail_has_scramed чтение и запись данных в MRAM MIG для управляющей логики запрещены.
  • inflight_writes – выходной сигнал состояния. Когда все записи завершены, MIG выполнит команду REFRESH для закрытия открытых страниц и сохранения данных в массиве постоянной памяти.
  • Ожидание выходного сигнала cntr_power_fail_complete. Он свидетельствует о том, что все ожидающие записи в очереди MIG были записаны в постоянную память MRAM и все страницы были закрыты. Поскольку power_fail_has_scramed (входной сигнал MRAM MIG) отключает возможность периодического чтения, его подача должна продолжаться.
  • Если MIG отправил сигнал cntr_power_fail_complete, значит MRAM может быть отключен (без потери данных).
  • Если управляющая логика примет решение о новом запуске (например, в случае сбоя питания) без фактической перезагрузки при включении, сигнал power_fail_has_scramed может быть отменен управляющей логикой, а MIG выполнит сброс cntr_power_fail_complete соответственно. В результате могут быть начаты нормальные чтение и запись, а также возобновлено периодическое чтение.
Производительность

Производительность системы может быть увеличена благодаря применению STT-MRAM оптимизаций из следующего списка:

  • Установка организации/сопоставления адресов с целью максимизации производительности системы и минимизации износа ROW-BANK-COL.
  • Увеличение глубины очереди команд/данных для включения предпросмотра/предзагрузки с целью обеспечения управления более длительными задержками доступа к строкам и меньшими размерами CAS-страниц STT-MRAM.
  • Достижение высокой степени загрузки шины за счет доступа к данным на пиковых значениях тактовых частот.
Внесение изменений в параметры DDR4 MIG с использованием скрипта

Компания Everspin представила скрипт, который способен определять версию MIG на стороне клиента и вносить соответствующие изменения в RTL, а также обновлять модули MIG. Несмотря на отсутствие внешней поддержки, данный скрипт может быть использован разработчиками для ручного внесения изменений. Также он может быть изменен так, чтобы соответствовать требованиям системы, в рамках которой он используется. Данный скрипт доступен на официальном сайте компании Everspin.

Процесс внесения изменений

Процесс проектирования MIG с использованием скрипта аналогичен проектированию Xilinx DDR4 MIG:

  • Создание MIG в Vivado, совместимого с 8Gb DDR4;
  • Создание тестового проекта для симуляции нажатием правой кнопкой мыши по файлу формата «.xci» (затем необходимо выбрать пункт «Open IP Example Design...»). В результате среда разработки Vivado создаст новую директорию проекта с названием, заканчивающимся на «_ex». Примерный вид новой директории: following./<home directory>/<user defined MIG name>_ex /<user defined MIG name>_0_ex.srcs/sources_1/ip/<user defined MIG name>/rtl
  • Симуляция в созданном тестовом проект для проверки работоспособности 8Gb DDR4 MIG.
  • Скрипт включает некоторые дополнительные параметры, которые могут быть изменены непосредственно в нем. Большинство параметров предназначены для режима отладки. Но если требуется использование SEC/DED ECC совместно с MIG, необходимо выполнить следующее:

Изменить Set ECC 0 на Set ECC 1

Изменить Set ECC_Autocorrect 0 на Set ECC_Autocorrect 1

Рисунок 1 – Внесение изменений в скрипт

Внесение изменений в скрипт

Если MIG не требует ECC, рекомендуется использовать настройки по умолчанию.

  • Запуск tcl-скрипта в консоли Vivado Tcl: src patch_ddr4mig_mram_<version>.tcl
  • Скрипт выполняет анализ модулей, отображает наименования модулей, в которых были внесены изменения. Если в процессе возникает ошибка, скрипт сообщит об этом. Механизм самопроверки отслеживает ожидаемые изменения. Разработчикам рекомендуют проверять итоговые отчеты по завершении выполнения скрипта.
  • Повторные синтез и моделирование среды для обеспечения работоспособности обновленного 8Gb STT-DDR4 MIG с применением модели DDDR4 MRAM (st_mram_ddr4_model.sv). Данную модель можно найти на официальном сайте Everspin или запросить у официального представителя компании. Там же расположен файл README, который следует прочесть в первую очередь.

Внесение изменений в модули MIG

Таблица 3, приведенная ниже, содержит модули, перечисленные в соответствии с категориями, в которых требуются изменения относительно стандартного контроллера Xilinx MIG для устройства XCKU060-2FFVA1156E. Если тестовый проект был создан корректно, скрипт внесет все необходимые изменения автоматически.

Таблица 3 – Перечень модифицированных IP-модулей Xilinx

Перечень модифицированных IP-модулей Xilinx

Модифицированный вывод MIG DDR4

Таблица изменений, отображающая возможные модификации модулей после запуска скрипта, находится на сайте Everspin и может быть также предоставлена представителем компании. Эти изменения аналогичны тем, которые находятся в модулях вашего проекта, и могут иметь незначительные различия в зависимости от особенностей вашего варианта конструктивного исполнения. В файле ST-DDR4_Change_Table.docx отражены все изменения, которые имеют место после запуска скрипта с настройками по умолчанию.

Дополнительные компоненты

На сайте компании Everspin можно скачать следующие дополнительные компоненты:

  • Файл с примером скрипта TCL ST-DDR4: patch_ddr4mig_mram<version>.tcl
  • Ожидаемые изменения в документах модулей MIG: ST-DDR4_Change_Table.docx
  • Журнал проверки модуля ST-DDR4 MRAM: st_mram_ddr4_model.sv и README.TXT
  • Файлы схем Orcad для тестовой платы Everspin (свяжитесь с Everspin)
  • Схемы в формате PDF (свяжитесь с Everspin)
  • Доступные для просмотра файлы Allegro (свяжитесь с Everspin)
Контрольный список уровня платы

Ниже приведен перечень источников, которые должны быть учтены инженером-проектировщиком:

  • Следуйте установленным рекомендациям по высокоскоростной маршрутизации и аппаратному проектированию оборудования от PCI-Sig, JEDEC, Xilinx и Micron для проектов на основе PCIe и DDR4.
  • Все принципы высокоскоростной передачи сигналов в DDR4 также применимы к ST-DDR4. Просмотрите следующую спецификацию - DDR4 SDRAM Unbuffered DIMM Design Specification (пользователь должен быть зарегистрирован в JEDEC). Эта спецификация содержит данные об объемной емкости и емкости развязки для каждого устройства (см. Таблицу 9 спецификации DDR4 SDRAM Unbuffered DIMM Design Specification).
  • Компания Xilinx предоставляет руководство по проектированию высокоскоростных печатных плат, содержащее данные о емкости развязки и объемной емкости для каждого устройства (см. Таблицы 1-12 руководства UltraScale Architecture PCB User Guide). Вы также можете использовать руководства Xilinx по проектированию печатных плат для других семейств устройств.
  • Требования к питанию для STT-DDR4 (см. Таблицу 19 спецификации ST-DDR4 1Gb - Everspin ST-DDR4 Specification).
  • Требования к питанию микросхем FPGA Xilinx определяют с использованием (XPE) Xilinx Power Estimator (оценка потребления электроэнергии для наихудших ситуаций).
  • Для гарантии надлежащей функциональности микросхемы FPGA и маршрутизации внешнего сигнала при проектировании схемы и выводов платы в среде разработки Xilinx Vivado следует использовать метод итераций.
  • Как было указано в разделе Выключение (Scram) этого документа, корректный процесс Scram должен длиться не более 10 мкс. Для обеспечения времени удержания до 10 мкс почти всегда необходимо более высокое значение объемной емкости (требования к объемной развязке при переходных изменения нагрузки удовлетворены). В большинстве случаев это время не превышает 10 мкс. Однако, проектировщикам не следует пренебрегать расчетами, моделированием и измерениями количества времени удержания для каждого конкретного варианта исполнения.
  • VDDQ, VDD, VrefCA и VPP для ST-DDR4 соответствуют спецификации DDR4 1.2V (см. Таблицу 4 ниже).

Таблица 4 - Входные напряжения для ST-DDR4

Parameter JEDEC DDR 4 1Gb ST-DDR4
VDDQ, VDD 1.2V, 1.2V 1.2V, 1.2V
VPP 2.5V 2.5V
Vrefca VDDQ/2 VDDQ/2
Заключение

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

 

Корпорация Everspin Technologies

Корпорация Everspin Technologies

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

Everspin Technologies оставляет за собой право вносить изменения в любые представленные в этом документе продукты без предварительного уведомления. Everspin не предоставляет никаких гарантий или заверений пригодности любых продуктов Everspin при использовании их для каких-либо конкретных целей. Кроме того, Everspin не несет никакой ответственности за применение каких-либо его продуктов или схем, включая отказ от ответственности за какие-либо понесенные прямые или косвенные убытки. Некоторые «типичные» параметры, указанные в технических паспортах и/или спецификациях Everspin Technologies, могут меняться со временем и от продукта к продукту. Все параметры, включая «типичные», должны быть перепроверены экспертами по инициативе клиента. Everspin Technologies не передает никаких лицензий в рамках своих патентных прав или прав других лиц.

Продукты Everspin Technologies не предназначены и не разрешены для использования в составе медицинской техники, систем или в других устройствах, предназначенных поддержания жизни, а также для любых прочих применений, в которых сбой в работе продукта Everspin Technologies может привести к возникновению травм или летальному исходу. Если клиент приобретает продукты Everspin Technologies для любого подобного непреднамеренного или несанкционированного использования, он обязуется освободить компанию Everspin Technologies, ее должностных лиц, сотрудников, дочерние компании, филиалы и дистрибьюторов от любых претензий, убытков, издержек, связанных с возникновением травм или летальным исходом в связи с таким непреднамеренным или несанкционированным использованием продуктов Everspin, включая случаи, когда в таких претензиях утверждается, что компания Everspin Technologies проявила халатность в отношении разработки или изготовления какого-либо своего продукта. 

Everspin™ и логотип Everspin являются товарными знаками корпорации Everspin Technologies, Inc. Все остальные названия продуктов или услуг являются собственностью их владельцев.