24578

Применение микросхем загрузочного ППЗУ 5576РС1У(РТ1У) для конфигурирования ПЛИС Intel Altera, Xilinx, ВЗПП-С (5576ХСх)

Автор статьи: Лампадов Илья Александрович (Инженер)
Дата последнего изменения: 15.07.2021 18:28:44

Компанией Миландр выпускаются микросхемы памяти 5576РС1У и 5576РТ1У для конфигурирования ПЛИС. Микросхема 5576РС1У является функциональным аналогом микросхемы памяти от Intel EPC4QC100N, когда как 5576РТ1У является функциональным аналогом микросхемы памяти от Intel EPC1. Основное различие между ними в объеме памяти: 4 Мбит против 768 Кбит соответственно - помимо этого микросхема памяти 5576РТ1У является радиационно-стойкой. Технически же обе микросхемы памяти работают одинаково. В статье особое внимание будет уделено работе именно с микросхемой памяти 5576РС1У из-за большего объема памяти, а также из-за того, что для неё, в отличие от 5576РТ1У, нет официального программно-инструментального средства для программирования (https://ic.milandr.ru/soft/) и требуется больше манипуляций для программирования.

При использовании микросхемы памяти для конфигурации FPGA компании Миландр, в первую очередь при работе необходимо учитывать следующие аспекты:

1. Модель используемой микросхемы ПЛИС. Производитель гарантирует работу со следующими семействами популярных микросхем ПЛИС:

  • Intel Altera - Cyclone, Flex;
  • Xilinx - Spartan;
  • Воронежский Завод Полупроводниковых Приборов - 5576ХСх (фактически является аналогом ПЛИС семейства Flex от Intel Altera).

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

2. В зависимости от размера данных, необходимого для конфигурации той или иной микросхемы ПЛИС, важно связать каскадным образом нужное количество микросхем памяти, учитывая вдобавок и объем памяти микросхем 5576РС1У(РТ1У).
Например, если в изделии используется ПЛИС от Intel Altera семейства Cyclone IV EP4CE22, то на основании информации о том, что размер конфигурационных данных для данной микросхемы равен 5.748.552 бит, потребуется использовать две микросхемы 5576РС1У

Важно отметить, что программными средствами (подробнее ниже) можно выбрать режим компрессии (уменьшение размера файла при сохранении исходных данных) конфигурационных данных, из-за чего конфигурационный образ будет занимать меньше места. Но следует учитывать, что ППЗУ 576РС1У не содержит схему декодирования сжатых данных, поэтому эту опцию можно применять лишь для тех ПЛИС, которые в своём составе содержат схему декодирования и не требуют предварительного раскодирования данных. Представленная в примере ПЛИС Cyclone IV содержит в своём составе такую схему, поэтому для неё можно использовать компрессию, и такое применение позволит использовать меньше микросхем памяти, соответственно, позволит отказаться от каскадного соединения микросхем.

Метод каскадного объединения двух микросхем памяти представлен типовой схемой включения 5576РС1У из официальной документации, наглядно на рисунке 1.

Рисунок 1 - Схема включения ПЛИС с двумя конфигурационными микросхемами 5576РС1У

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

  • вывод nINIT_CONF не требует подключения подтягивающего резистора. Если nINIT_CONF не применяется, то nCONFIG можно подключить к питанию;
  • выводы OE и nCS обязательно должны иметь подтягивающие резисторы к питанию, так как не имеют внутренних подтягивающих резисторов. Номинал резисторов определяется пользователем, в пределах от 1 до 4,7 кОм;
  • вывод LAST первого конфигурационного устройства должен быть подключен к земле, последнего конфигурационного устройства - к питанию;
  • может применяться режим AS (активного состояния) для всех конфигурационных устройств, либо режим PS (пассивного состояния) для первого устройства и режим AS для всех остальных устройств в цепочке.

3. На основании пункта 2, если применяется каскадное включение микросхем памяти на плате, необходимо при разработке учитывать расположение микросхем памяти друг относительно друга и относительно микросхемы ПЛИС. Это необходимо для минимизации длин цепей DATA и DCLK.
Например, если каскадным образом включены две микросхемы памяти (учитывать длины линий необходимо и при одной микросхеме памяти для конфигурации ПЛИС аналогичным способом), то: 

  • длина цепи DCLK от первой микросхемы памяти в цепочке до второй должна быть не более 2.5 см, аналогичная длина от первой микросхемы памяти до микросхемы ПЛИС;
  • длина цепи DATA от микросхемы ПЛИС до первой микросхемы памяти в цепочке не более 1.5 см, аналогичная длина от микросхемы ПЛИС до второй в цепочке микросхемы памяти;
  • длина цепи от выхода nCASC первой микросхемы памяти в цепочке до входа nCS второй микросхемы памяти в цепочке не более 2.5 см.

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

4. Пассивный режим конфигурации. Прежде чем перейти к описанию особенностей работы в этом режиме, рассмотрим, что он из себя представляет. В этом режиме синхросигнал для обмена данными формируется на выводе DCLK микросхемы памяти, этот сигнал является входным для ПЛИС. Режим данный выбирается при логическом нуле на выводе AS_PS микросхемы памяти, поэтому его применение должно закладываться на этапе проектирования изделия. Диаграмма конфигурации в этом режиме представлена на рисунке 2.

Рисунок 2 - Диаграмма конфигурации ПЛИС в пассивном режиме (AS_PS = 0)

Цветом на рисунке показано, какое устройство формирует тот или иной сигнал в связке. Зеленым цветом выделено все, что формируется 5576РС1У, синим - все что формируется FGPA, черным - действие подтягивающих резисторов.

В качестве теории опишем процесс конфигурирования данной организации подключения в несколько шагов:

  • стадия Reset. При подаче питания FPGA находится в сбросе и удерживает в логическом нуле сигналы OE/nSTATUS и nCS/CONF_DONE, которые являются выводами с открытым стоком. В 5576РС1У для этих сигналов внутренней подтяжки нет, поэтому применяются внешние резисторы для подтяжки к питанию. Когда по команде JTAG "INIT_CONFIG" конфигурирующее устройство (5576РС1У) выводит на nINIT_CONFIG высокий уровень, то FPGA выходит из сброса и отвечает о готовности к приему данных, отпустив сигнал OE/nSTATUS. Этот сигнал уходит в высокий уровень за счет внешней подтяжки, и по формированию логической "1" на входе ОЕ 5576РС1У понимает, что можно слать данные. Выводы User IO находятся в 3-м состоянии;
  • стадия конфигурирования. Данные передаются в FPGA до тех пор, пока FPGA не отпустит сигнал nCS/CONF_DONE, что означает, что все данные получены. Внешняя подтяжка приведет к возникновению "1" на nCS/CONF_DONE, поэтому 5576РС1У прекращает передачу данных;
  • стадия инициализации. После получения данных в FPGA проходит инициализация, то есть применяется настройка пользователя. Выводы User IO переключаются в заданный режим;

  • рабочая стадия. FPGA функционирует в соответствии с загруженной в нее схемой.

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

В случае же работы в пассивном режимом важно учесть следующее:

5. Особенность работы чистой микросхемы памяти 5576РС1У и ПЛИС.
Зачастую в ходе разработки проекта необходимо подключаться к ПЛИС через её отладочный интерфейс при помощи программатора. В случае работы с микросхемой памяти 5576РС1У необходимо учитывать, что если она уже подключена напрямую к ПЛИС и является полностью пустой, то на её вывод nINIT_CONF выдаётся постоянный логический ноль, что может делать недоступным отладочный интерфейс ПЛИС. Таким образом ключевых решений два:

  • В микросхему памяти 5576РС1У, которая подключена напрямую к ПЛИС, необходимо записать какие-нибудь данные, чтобы на выводе nINIT_CONF больше не выдавался логический ноль.
  • Предусмотреть при разводке платы перемычки, которые позволят отключить линию nINIT_CONF/nCONFIG.

Ключевые особенности работы микросхем памяти 5576РС1У(РТ1У) в связке с микросхемами ПЛИС рассмотрены. Перейдем к особенностям создания бинарных файлов конфигурации для ПЛИС различных производителей.
В случае, если применяется, например, ПЛИС производства Xilinx, рекомендуем также для более глубокого понимания ознакомиться и с особенностями создания бинарных файлов конфигурации для ПЛИС Intel Altera и Воронежского Завода Полупроводниковых приборов - и наоборот. Так или иначе часть информации будет продублирована, если работа ведется с ПЛИС конкретного производителя, чтобы ничего не было упущено.

Особенности создания бинарного файла конфигурации под микросхему(ы) памяти при работе с ПЛИС от Intel Altera или Воронежского Завода Полупроводниковых Приборов для последующего преобразования в файл формата .pof

Как ранее упоминалось, необходимо учитывать размер данных конфигурации для конкретной ПЛИС, и на основе этого подключать каскадным образом нужное количество микросхем памяти. Более наглядно для микросхем ПЛИС семейства Cyclone информация представлена на рисунке 3.

Рисунок 3 - Сводная таблица по ПЛИС семейства Cyclone с указанием размера конфигурационных данных и необходимого количества микросхем памяти 5576РС1У

Размер данных, необходимый для конфигурации других микросхем ПЛИС, должен быть представлен в официальной документации.

Для загрузки ППЗУ 5576РС1У используются файлы с расширением .pof, которые программируются с помощью Quartus II посредством USB Blaster. Но не для всех семейств ПЛИС поддерживается создание pof-файлов для 5576РС1У из Quartus II. Для решения этой проблемы применяется набор программ, которые преобразуют файл(ы) формата .rbf (простой бинарный файл с ПО), в файл(ы) необходимого расширения .pof. Архив со всеми поставляемыми программами находится в подразделе "Файлы для скачивания" после статьи - архив PROM_CREATOR.zip.

На самом же деле Миландр всегда рекомендует прибегать к созданию файлов .pof посредством официально поставляемых программ, поскольку в сложных схемах подключения автоматически созданный файл .pof средствами САПР может приводить к некорректному конфигурированию ПЛИС, что будет сопровождаться либо запуском с ошибками, либо отсутствием запуска вовсе.

В случае с рассматриваемыми семействами ПЛИС компании Intel Altera работа будет вестись в САПР Quartus II. Всё начинается с создания бинарного файла .rbf. Для его создания на закладке, представленной на рисунке 4, необходимо установить флажок в строке "Raw Binary File (.rbf)"

Рисунок 4 - Закладка "Programming Files"

Тем не менее, этих настроек недостаточно. Рассмотрим пассивный режим конфигурации для того, чтобы захватить настройку синхросигнала CLKUSR для корректного запуска пользовательского режима ПЛИС - для активного режима конфигурации настройку синхросигнала CLKUSR производить не нужно. Выбор режима можно осуществить всё в том же окне САПР Quartus II, в закладке "Configuration". Там же можно осуществить компрессию данных, если Ваша конфигурация позволяет работать с такими данными - параметр "Generate compressed bitstreams". Подробнее на рисунке 5.


Рисунок 5 - Закладка "Configuration"

После выбора нужного режима конфигурации (в приведенном случае пассивного режима конфигурации), важно поставить галочку на опции "Enable user-supplied start-up clock (CLKUSR)во вкладке "General" окна "Device and Pin Options"

Готовый после сборки бинарный файл .rbf при помощи поставляемых программ может быть преобразован в файл .pof, готовый для программирования подпрограммой "Programmer" в САПР Quartus II посредством программатора USB Blaster. Процесс преобразования бинарного файла в готовый файл ПО формата .pof описан ниже в статье, подзаголовок "Создание файлов .pof из бинарных файлов .rbf (Altera и Воронежский Завод Полупроводниковых приборов) и .bin (Xilinx) для последующего программирования в подпрограмме "Programmer" САПР Quartus II средствами USB Blaster".

Особенности создания бинарного файла конфигурации под микросхему(ы) памяти при работе с ПЛИС от Xilinx для последующего преобразования в файл формата .pof

Аналогично данным для семейства ПЛИС Cyclone, приведем на рисунке 6 размер данных конфигурации, требуемый для ПЛИС семейств Spartan 3 и Spartan 6, а также необходимое количество микросхем памяти 5576РС1У.

Рисунок 6 - Сводная таблица по ПЛИС семейств Spartan 3 и Spartan 6 с указанием размера конфигурационных данных и необходимого количества микросхем памяти 5576РС1У

Размер данных, необходимый для конфигурации других микросхем ПЛИС, должен быть представлен в официальной документации.

Для загрузки ППЗУ 5576РС1У используются файлы с расширением .pof, которые программируются с помощью Quartus II посредством USB Blaster. Но не для всех семейств ПЛИС поддерживается создание pof-файлов для 5576РС1У из Quartus II. Для решения этой проблемы применяется набор программ, который преобразуют файл(ы) формата .bin (простой бинарный файл с ПО), созданные в среде iMPACT компании Xilinx, в файл(ы) необходимого расширения .pof. Архив со всеми поставляемыми программами находится в подразделе "Файлы для скачивания" после статьи - архив PROM_CREATOR.zip.

Для создания файла .bin нужно воспользоваться САПР ISE iMPACT (в ходе сборки проекта в САПР ISE получается файл формата .bit - НЕ ПУТАТЬ с .bin). Для этого необходимо выполнить шаги, представленные на рисунке 7.

Рисунок 7 - Создание файла .bin

То есть, выбрав задачу "Create PROM File" в подпрограмме iMPACT среды ISE, на шаге 1 необходимо выбрать пункт "Generic Parallel PROM", на шаге 2 установить флажок "Auto Select PROM", на шаге 3 выбрать формат выходного файла "BIN (Swap Bits ON)", имя выходного файла и директорию, в которой он будет располагаться. После этого нажать "ОК", В следующем окне "Add Device" опять следует нажать "ОК" и выбрать файл формата .bit, который был создан при компиляции Вашего проекта в САПР ISE. На предложение добавить еще одно устройство ответить "No" и в следующем сообщении об окончании добавления устройства нажать "ОК". В результате всех выполненных действий должно появится окно, представленное на рисунке 8.

Рисунок 8 - Размер файла

Здесь необходимо нажать "ОК" и после этого сгенерировать файл с помощью "Generate File". После этого будет создан файл с расширением .bin в ранее указанной директории.

Готовый после сборки бинарный файл .bin при помощи официально поставляемых программ может быть преобразован в файл .pof, готовый для программирования в подпрограмме "Programmer" в САПР Quartus II посредством программатора USB Blaster. Процесс преобразования бинарного файла в готовый файл ПО формата .pof описан ниже в статье, подзаголовок "Создание файлов .pof из бинарных файлов .rbf (Altera и Воронежский Завод Полупроводниковых приборов) и .bin (Xilinx) для последующего программирования в подпрограмме "Programmer" САПР Quartus II средствами USB Blaster".

Важно отметить, что при работе в пассивном режиме конфигурации также необходимо обеспечить достаточно большое количество тактов для перехода ПЛИС в пользовательский режим, которое микросхема памяти не может обеспечить. Для обеспечения этого условия на закладке САПР ISE, представленной на рисунке 9, требуется установить соответствующие опции.

Рисунок 9 - Закладка "Process Properties"

После установки этих опций нужно заново создать файл .bit в процессе перекомпиляции проекта, а затем и .bin файл согласно инструкциям, описанным выше. Соответственно, для активного режима конфигурации данная настройка не требуется.

Создание файлов .pof из бинарных файлов .rbf (Altera и Воронежский Завод Полупроводниковых приборов) и .bin (Xilinx) для последующего программирования в подпрограмме "Programmer" САПР Quartus II средствами USB Blaster

Для создания файлов .pof требуется несколько программ, которые поставляются официально и доступны для загрузки в подразделе "Файлы для скачивания" после статьи - архив PROM_CREATOR.zip. Каждая программа имеет входные параметры в виде файла определенного формата и выходные параметры в виде файла нужного выходного формата.

Первая программа из этой группы "rbf2svf.exe", которая конвертирует полученный на этапе компиляции бинарный файл в формат .svf.

Синтаксис этой программы следующий:

rbf2svf.exe <входной файл> <выходной файл> [/<число ППЗУ>]

Соответственно,

  • для одной ППЗУ: rbf2svf.exe test.rbf test.svf
  • для двух ППЗУ: rbf2svf.exe test.rbf test.svf /2
В случае указания ключа /2 будет создано два файла test1.svf и test2.svf. Если ключ отсутствует, то будет создан только файл test.svf.

После создания файла формата .svf, этот файл передается другой программе "svf2pof.exe". Эта программа разработана компанией Altera и её можно найти на их официальном сайте с оригинальным названием "convert_epc_file.exe". Для понимания производимых процедурой действий она была переименована.

Синтаксис этой программы следующий:

svf2pof.exe <входной файл> <выходной файл> 

Соответственно,

  • для одной ППЗУ: svf2pof.exe test.svf test.pof
  • для двух ППЗУ: svf2pof.exe test1.svf test1.pof и svf2pof.exe test2.svf test2.pof
Для упрощения запуска этих программ используются .bat файлы для создания образа одной и двух ППЗУ соответственно - rbf2pof.bat и rbf2pof_v2.bat.

Синтаксис в этом случае следующий:

  • rbf2pof.bat <входной файл> <выходной файл> - создание одного образа;
  • rbf2pof_v2.bat <входной файл> <выходной файл> - создание двух образов.

Обратите внимание, что данные программы работают не только с бинарными файлами формата .rbf, но и с бинарными файлами формата .bin

После полученных файлов .pof можно приступать к их загрузке в соответствующие ППЗУ с помощью САПР Quartus II, подпрограмма "Programmer" средствами USB Blaster.

Но прежде чем к этому приступить, следует отметить одну особенность при работе с бинарными файлами, которая может иметь частный характер в зависимости от размера полученного бинарного файла и количества микросхем памяти в цепочке.
Желательно, чтобы количество байт, размещаемое в каждое ППЗУ в цепочке, было чётным. Соответственно, при разбиении исходного бинарного файла на необходимое количество ППЗУ это условие должно удовлетворяться. Если бинарный файл не удовлетворяет таким условиям, то необходимо его дополнить значения "FF" в конце файла, открыв бинарный файл блокнотом. 
Например, полученный .bin файл для Spartan 3 содержит 402.936 байт или 3.223.488 бит, при разбиении его на два ППЗУ получается по чётному количеству байт 201.468. Поэтому перед созданием .pof файла .bin не требует правки. Файл, полученный для Spartan 6, содержит 801.462 байт или 6.411.696 бит, поэтому при разбиении его на два ППЗУ получается 400.731 байт. Следовательно, перед созданием .pof необходимо дополнить .bin файл двумя байтами "FF", чтобы при разбиении его на два ППЗУ получалось 400.732 байта.

Если же требуется каскадное включение более двух микросхем ППЗУ, то следует учитывать следующие особенности работы программы "rbf2svf.exe". Разбиение на файлы ориентировано на чётное количество байт в бинарном файле (при разбиении на соответствующее количество ППЗУ) и на чётное количество ППЗУ в цепочке. Если требуется загрузка нечётного количества байт или количество ППЗУ в цепочке нечётное, то требуется доработка "rbf2svf.exe" под конкретное приложение. Для решения этой задачи в архиве PROM_CREATOR.zip приложены исходные коды этой программы.

Программирование файлов .pof в САПР Quartus, в подпрограмме "Programmer" средствами USB Blaster

В подпрограмме "Programmer" САПР Quartus II после подключения программатора USB Blaster к ПК можно увидеть статус его активного подключения справа от кнопки "Hardware Setup". Убедившись, что схема подключения микросхемы памяти (или каскада микросхем памяти) и отладочного интерфейса корректна, а программатор USB Blaster подключен к отладочному интерфейсу памяти, можно нажать кнопку "Auto Detect", после чего, в случае успеха, графически будет определена подключенная конфигурация. Теперь для подключенной конфигурации необходимо выбрать полученные ранее файлы .pof, а далее выставить галочки у опций "Program/Configure"  для инициирования процесса программирования - если микросхем несколько, то выбрать для каждой микросхемы памяти. И, нажав "Start", запустить процесс программирования памяти. Пример настройки подпрограммы "Programmer" для программирования цепочки из двух микросхем памяти 5576РС1У представлен на рисунке 10.

Рисунок 10 - Загрузка двух ППЗУ конфигурационными файлами

Задача выполнена. Конфигурация для ПЛИС готова.
Сохранить статью в PDF

Файлы для скачивания

Документация

Теги

Была ли статья полезной?