Внешний вид загрузочного кабеля для ПЛИС фирмы Xilinx

Программирование ПЛИС фирмы Xilinx в составе смешанной JTAG-цепочки средствами САПР Xilinx ISE Design Suite 14.4 при помощи кабеля Parallel Download Cable III

PDF версия
Статья посвящена практическим вопросам конфигурации ПЛИС фирмы Xilinx через диагностический интерфейс JTAG в составе цепочки из кристаллов различных производителей. Рассмотрена схема загрузочного кабеля, сопрягающего персональный компьютер или рабочую станцию с интерфейсом JTAG через параллельный порт LPT. Приведена организация порта LPT с позиций сопряжения с интерфейсом JTAG. Описан пример смешанной цепочки кристаллов, в составе которой присутствует конфигурируемая ПЛИС. Подробно рассмотрен порядок конфигурации ПЛИС средствами САПР Xilinx ISE Design Suite.

В большинстве современных устройств, содержащих микросхемы программируемой логики, микроконтроллеры, специализированные СБИС и прочие конфигурируемые компоненты, применяется внутрисхемное программирование (In-System-Programming, ISP). Технология внутрисхемного программирования предоставляет возможность изменять конфигурацию компонентов устройства без их демонтажа, иными словами, осуществлять программирование микросхем не на программаторах, а непосредственно в устройстве.

Для внутрисхемного программирования в большинстве реализаций применяется диагностический последовательный интерфейс JTAG [1]. Он состоит из четырех или пяти логических сигналов: TCK, TMS, TDI, TDO и TRST (необязательный). Уровни сигналов интерфейса JTAG не регламентированы и зависят от технологических особенностей микросхем. Вопросы организации взаимодействия в объеме одного устройства логических микросхем с различными уровнями сигналов, например выходов на 3,3 В с входами на 5 и 1,5 В, широко отработаны и в этой статье не рассматриваются. Для обеспечения внутрисхемного программирования сигналы интерфейса JTAG выводятся на специальный разъем, предназначенный для подключения загрузочных кабелей и адаптеров, выполняющих роль устройств сопряжения между цепочкой микросхем и компьютером, на котором работают системы проектирования.

В качестве разъема JTAG предлагается рассмотреть штыревой соединитель IDC-10 / BH-10 (ответная часть), с одним удаленным контактом, выполняющим роль ключа. Разводка разъема JTAG для программирования ПЛИС Xilinx показана на рис. 1 (вид со стороны отверстий соединителя IDC-10).

Разъем IDC-10 загрузочного кабеля для конфигурации ПЛИС Xilinx

Рис. 1. Разъем IDC-10 загрузочного кабеля для конфигурации ПЛИС Xilinx

Со времен IBM PC персональные компьютеры, серверы и рабочие станции оборудовались периферийным интерфейсом параллельного порта — LPT. В настоящее время этот интерфейс вытеснила шина USB, но при необходимости он может быть добавлен в конфигурацию компьютера при помощи установки адаптеров расширения стандарта PCI или PCI express. LPT-порт представляет собой 8-разрядный параллельный интерфейс с рядом служебных входов и выходов, сигналы которых изначально формировались программным способом для взаимодействия с принтерами. Впоследствии, для подключения сканеров и прочих быстродействующих периферийных устройств были разработаны более совершенные протоколы обмена через порт LPT на основе аппаратной логики. Тем не менее базовая регистровая модель адаптера порта LPT (рис. 2) включает всего три 8-разрядных регистра, доступных для чтения и записи в пространстве ввода/вывода, через которые доступны сигналы порта. На выводах порта используются сигналы с уровнями ТТЛ, допускающие высокий уровень 5 В. Таким образом, по существу, с современных позиций порт LPT следует рассматривать как набор ТТЛ-совместимых выходов — GPO и входов — GPI общего назначения (General Purpose Outputs and Inputs).

Базовая регистровая модель адаптера порта LPT

Рис. 2. Базовая регистровая модель адаптера порта LPT

Регистры LPT-порта занимают три последовательных адреса ввода/вывода. Младший адрес является базовым (BASE) и традиционно соответствует 378h для LPT-1 и 278h для LPT-2. При использовании интерфейсных адаптеров LPT для системных шин PCI или PCI express базовый адрес не совпадает с традиционными и назначается в течение программной конфигурации системы средствами BIOS.

Взаимодействие с интерфейсом JTAG через порт LPT реализовано исключительно программным способом, наподобие работы с портами GPIO современных микроконтроллеров. Драйвер, входящий в состав САПР, путем обращения к регистрам адаптера LPT формирует на выводах порта последовательность логических сигналов, соответствующую протоколу JTAG. Сигналы JTAG могут быть получены из сигнальных линий LPT-порта при помощи буферов-повторителей. Большинство схем сопряжения с интерфейсом JTAG через параллельный порт построены на микросхемах КМОП серий 74HC/HCT, а именно: 74HC125, 74HCT125, 74HC244, 74HCT244 и им подобных.

Соответствие сигналов интерфейса JTAG сигнальным линиям и контактам разъема LPT-порта для загрузочного кабеля ПЛИС фирмы Xilinx приведено в таблице.

Таблица. Соответствие сигналов интерфейса JTAG сигнальным линиям и контактам разъема LPT-порта

Разъем DB-25M

Сигнал JTAG, формируемый или анализируемый САПР Xilinx Design Suite

Контакт

Цепь

1

STROBE#

N.C.

2

DATA(0)

DIN / TDI

3

DATA(1)

CCLK / TCK

4

DATA(2)

PROG / TMS

5

DATA(3)

Включение выходов TCK, TMS, TDI

6

DATA(4)

Подача «0» на DONE / TDO

7

DATA(5)

N.C.

8

DATA(6)

Соединен с контактами 11, 12

9

DATA(7)

N.C.

10

ACK#

N.C.

11

BUSY

Соединен с контактами 8, 12

12

PE

Соединен с контактами 8, 11

13

SELECT

Вход DONE / TDO

14

AUTO_LF#

N.C.

15

ERR#

VCC sense

16

INIT#

N.C.

17

SELECT_IN#

N.C.

18

GND

GND

19

GND

GND

20

GND

GND

21

GND

GND

22

GND

GND

23

GND

GND

24

GND

GND

25

GND

GND

Согласно таблице соответствия сигнальных линий LPT линиям интерфейса JTAG можно построить различные устройства сопряжения персонального компьютера или рабочей станции с конфигурируемыми ПЛИС. Большинство таких схем используют логические элементы BUFT типа ‘125 (отечественные аналоги — ЛП8). На рис. 3 приведена принципиальная схема JTAG-кабеля, основанная на схеме, рекомендованной фирмой Xilinx в [3]. Предлагаемая схема построена на двух микросхемах 74HC125 (1564ЛП8), содержащих по четыре элемента BUFT каждая.

Принципиальная схема загрузочного кабеля для ПЛИС фирмы Xilinx

Рис. 3. Принципиальная схема загрузочного кабеля для ПЛИС фирмы Xilinx

Питание микросхем загрузочного кабеля осуществляется от устройства, содержащего конфигурируемые ПЛИС через контакт 4 разъема JTAG. При использовании в интерфейсе JTAG логических сигналов с уровнем 5 В на этот контакт допустимо подать напряжение питания с номиналом 5 В. Однако для подключения к микросхемам, использующим сигналы с уровнями 3,3 и 2,5 В, на контакт 4 разъема JTAG следует подать питание от источника с номиналом 5 В через кремниевый диод (например, 1N4001, 4148 или им подобные). В таком случае падение напряжения на двух последовательно включенных диодах составит 1,2–1,4 В, что обеспечит питание микросхем D1 и D2 загрузочного кабеля напряжением 3,6–3,8 В. Выходные логические уровни микросхемы D1 при таком напряжении питания будут соответствовать уровням LVCMOS33 и не повредят входные каскады цепей JTAG программируемых микросхем.

Дополнительная защита от перегрузки по току как со стороны JTAG, так и со стороны LPT обеспечена последовательно включенными согласующими резисторами. Номиналы этих резисторов выбирают из расчета обеспечения надежной защиты при устойчивом согласовании логических сигналов. Согласование особенно актуально со стороны LPT в связи с большой длиной интерфейсного кабеля. Падение скорости распространения сигналов, вносимое последовательными резисторами, ничтожно по сравнению с низкой скоростью вывода данных в порт LPT, поэтому им можно пренебречь.

При подключении загрузочного кабеля к порту LPT компьютера или рабочей станции, а также к целевому устройству, содержащему ПЛИС, следует обеспечить надежное соединение корпусов устройств и выполнять соединения при снятом напряжении питания. Эта рекомендация обусловлена отсутствием опережающего соединения цепей GND в разъемах IDC-10 и DB25.

Внешний вид загрузочного кабеля, созданного на основе аналогичного изделия фирмы SET, показан на рис. 4.

Внешний вид загрузочного кабеля для ПЛИС фирмы Xilinx

Рис. 4. Внешний вид загрузочного кабеля для ПЛИС фирмы Xilinx

После описания аппаратных средств сопряжения компьютера или рабочей станции с конфигурируемой ПЛИС рассмотрим пошаговую методику загрузки конфигурационной последовательности из САПР Xilinx DesignSuite в устройство, содержащее ПЛИС различных производителей. Предлагается рассмотреть JTAG-цепочку из четырех микросхем фирм Xilinx, Lattice-Semiconductor и Altera. Схема соединения разъема JTAG с четырьмя ПЛИС в объеме целевого устройства представлена на рис. 5.

Схема смешанной JTAG-цепочки из четырех ПЛИС различных производителей

Рис. 5. Схема смешанной JTAG-цепочки из четырех ПЛИС различных производителей

В непосредственной близости к разъему JTAG установлены подтягивающие и токоограничительные резисторы. Подтягивающие резисторы имеют сопротивление 10 кОм и предназначены для поглощения наводок, вызванных электромагнитными помехами, а также для удержания устойчивых логических уровней на цепях JTAG при отсутствии кабеля, подключаемого к разъему. Последовательные резисторы обеспечивают согласование линий и защиту от перегрузок по току. Фильтрующая RC-цепь на линии TCK заимствована из схемы, рекомендованной в [2].

Для программирования ПЛИС фирмы Lattice-Semiconductor используется дополнительный сигнал, разрешающий функционирование JTAG-интерфейса, — EPEN. Подтягивающий резистор на линии EPEN обеспечивает включение JTAG при использовании кабелей, не формирующих этот сигнал.

Нумерация кристаллов в составе JTAG-цепочки начинается с того кристалла, вход TDI которого подключен к разъему JTAG. Рассмотрим пример загрузки конфигурации в третью микросхему цепочки — XC95144XL. Предположим, что в САПР Xilinx Design Suite ранее создан проект реализации в кристалле этой ПЛИС требуемых функций, и в результате имплементации получен конфигурационный файл umsi_p_u19.jed. Работа с интерфейсом JTAG в САПР Xilinx Design Suite традиционно возложена на программный компонент iMPACT. Чтобы запустить iMPACT в окне процессов САПР, следует выбрать пункт Mange Configuration Project (iMPACT) (рис. 6).

Запуск iMPACT из Xilinx ISE DS Project Navigator

Рис. 6. Запуск iMPACT из Xilinx ISE DS Project Navigator

После нажатия откроется окно ISE iMPACT, в котором нужно создать новый конфигурационный проект через меню File. Будет задан вопрос об автоматическом создании конфигурационного проекта. Следует ответить отказом, нажав No (рис. 7).

Вопрос об автоматическом создании конфигурационного проекта

Рис. 7. Вопрос об автоматическом создании конфигурационного проекта

В следующем окне New iMPACT Project нужно выбрать пункт Create a new project и нажать кнопку Browse…(рис. 8).

Окно New iMPACT Project

Рис. 8. Окно New iMPACT Project

Откроется стандартный диалог сохранения файла, причем по умолчанию открыта папка текущего проекта САПР Xilinx Design Suite. В строке «Имя файла» вводим название конфигурационного проекта, в рассматриваемом примере — u19_prog (рис. 9).

Диалог создания нового проекта iMPACT

Рис. 9. Диалог создания нового проекта iMPACT

После сохранения будет создан файл u19_prog.ipf, являющийся конфигурационным проектом (iMPACT projectfile — *.ipf). Нажимаем OK.

Следующий диалог Welcome to iMPACT предлагает установить тип нового конфигурационного проекта. Рекомендуем выбрать Configure devices using Boundary-Scan (JTAG), при этом из выпадающего списка нужно выбрать действие Automatically connect to a cable and identify Boundary-Scan chain (рис. 10).

Окно выбора типа конфигурационного проекта

Рис. 10. Окно выбора типа конфигурационного проекта

В результате нажатия OK будет выполнено автоматическое определение типа используемого кабеля и сканирование цепочки JTAG. При обнаружении в цепочке неизвестных данной САПР микросхем может быть выдано сообщение об ошибке типа Bsdl reader is not available for device…. Однако это не препятствует полному сканированию цепочки и дальнейшей работе (рис. 11).

Результат сканирования смешанной JTAG-цепочки в iMPACT

Рис. 11. Результат сканирования смешанной JTAG-цепочки в iMPACT

После нажатия кнопки OK на сообщении об ошибке будет предложено назначить конфигурационные файлы для микросхем в составе просканированной JTAG-цепочки (рис. 12).

Вопрос о назначении конфигурационных файлов

Рис. 12. Вопрос о назначении конфигурационных файлов

Нажав кнопку Yes, мы инициируем запуск последовательности окон, назначающих конфигурацию для каждой микросхемы. Первое открывшееся окно задает конфигурацию первой микросхемы в цепочке — Xilinx XC95144XL (рис. 13).

Окно конфигурации первой микросхемы в цепочке

Рис. 13. Окно конфигурации первой микросхемы в цепочке

В правом нижнем углу находятся кнопки:

  • Cancel — отказ от конфигурации текущей микросхемы;
  • Bypass — включение транзитной передачи через микросхему;
  • Cancel All — отказ от конфигурации всех оставшихся микросхем цепочки.

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

После определения режима первой микросхемы откроется окно конфигурации для следующего кристалла в цепочке, идентифицированного САПР. В нашем примере откроется окно конфигурации для третьей микросхемы, аналогичной первой, но требующей программирования. Для загрузки конфигурации в ПЛИС CPLD следует выбрать соответствующий файл *.jed, в нашем случае — umsi_p_u19.jed (рис. 14). После выделения файла нажимаем кнопку Open.

Окно конфигурации третьей микросхемы в цепочке

Рис. 14. Окно конфигурации третьей микросхемы в цепочке

Помимо файлов типа *.jed микросхемам JTAG-цепочки также можно задать файлы *.mcs (для памяти, хранящей конфигурацию FPGA) и *.bsd (файлы описания периферийного сканирования — BSDL). Два файла unknown_1_5.bsd и unknown_3_10.bsd, показанные на рис. 14, созданы САПР автоматически при обнаружении в составе цепочки двух неизвестных кристаллов (ispGDX80VA и EPM7032S). Эти файлы далее будут заменены на файлы BSDL, написанные производителями этих микросхем и взятыми с официальных сайтов.

После назначения файла конфигурации третьей микросхемы выводится окно с параметрами программирования всех кристаллов в цепочке (рис. 15). Нажимаем OK.

Параметры программирования микросхем JTAG-цепочки

Рис. 15. Параметры программирования микросхем JTAG-цепочки

Файлы BSDL для неопознанных микросхем были загружены с сайтов производителей. Файл ispGDX80VA_T100.bsd описания периферийного сканирования микросхемы ispGDX80VA был загружен с сайта фирмы Lattice Semiconductor [4]. Для микросхемы EPM7032S файл 7032ST44.BSD доступен для скачивания на сайте фирмы Altera [5]. Формат BSDL-файла — текстовый, поэтому файл можно прочитать и отредактировать в текстовом редакторе. Оба файла были сохранены в папку с конфигурационным проектом u19_prog.ipf (рис. 16).

Файлы BSDL в составе папки с конфигурационным проектом

Рис. 16. Файлы BSDL в составе папки с конфигурационным проектом

Далее необходимо установить ассоциацию BSDL-файлов с неопознанными кристаллами. Для этого выделяем второй кристалл в цепочке правой кнопкой мыши, а затем — пункт Assign New Configuration File… (рис. 17).

Запуск диалога о назначении конфигурационного файла

Рис. 17. Запуск диалога о назначении конфигурационного файла

После этого будет выдано предупреждение о возможности дисфункции JTAG-цепочки при смене параметра — длины регистра команд (рис. 18).

Предупреждение о смене параметра — длины регистра команд

Рис. 18. Предупреждение о смене параметра — длины регистра команд

Запрос файла BSDL или BIT

Рис. 19. Запрос файла BSDL или BIT

После нажатия OK появится окно с вопросом о наличии файлов BSDL или BIT (рис. 19). Нажимаем Yes. Откроется стандартный диалог выбора файла, в котором следует задать файл ispGDX80VA_T100.bsd и нажать «Открыть» (рис. 20).

Выбор BSDL-файла для неопознанного кристалла

Рис. 20. Выбор BSDL-файла для неопознанного кристалла

Аналогичным способом был задан файл 7032ST44.BSD для четвертой микросхемы в рассматриваемой JTAG-цепочке.

В результате в окне iMPACT будет отображена цепочка с корректно идентифицированными микросхемами/кристаллами (рис. 21).

JTAG-цепочка с корректно идентифицированными микросхемами

Рис. 21. JTAG-цепочка с корректно идентифицированными микросхемами

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

 

Запуск проверки на чистоту

Рис. 22. Запуск проверки на чистоту

В результате проверки незапрограммированного кристалла будет выдано сообщение в синем прямоугольнике: Part is Blank (рис. 23). Аналогичное сообщение появится, если непосредственно перед этим применительно к проверяемому кристаллу была выполнена процедура стирания.

Результат проверки на чистоту незапрограммированного кристалла

Рис. 23. Результат проверки на чистоту незапрограммированного кристалла

Загрузка конфигурации в кристалл выполняется при помощи процедуры программирования (Program), запускаемой при нажатии правой кнопки мыши на условном изображении микросхемы (рис. 22). При этом появится окно с параметрами программирования для выбранной микросхемы, аналогичное изображенному на рис. 15. Оно позволяет установить защиту от считывания (Read Protect) и задать верификацию по завершении программирования (Verify). Прочие настройки целесообразно оставить в исходном состоянии.

После нажатия кнопки OK запустится процесс программирования, ход которого отражает горизонтальный индикатор (рис. 24).

Процесс программирования кристалла ПЛИС в iMPACT

Рис. 24. Процесс программирования кристалла ПЛИС в iMPACT

По завершении программирования по умолчанию выполняется верификация. После верификации в случае совпадения считанных из кристалла данных с конфигурационным файлом будет выдано сообщение об успешном программировании: Program Succeeded (рис. 25).

Сообщение об успешном программировании в iMPACT

Рис. 25. Сообщение об успешном программировании в iMPACT

Аналогичным способом, при нажатии правой кнопкой мыши на условном обозначении микросхемы можно выполнить верификацию — процедуру сравнения содержимого кристалла с конфигурационным файлом. В случае успеха iMPACT выдаст сообщение на синем прямоугольнике: Verify Succeeded. В случае несовпадения будет выдано сообщение об ошибке верификации на красном прямоугольнике: Verify Failed.

Настройка кабеля, используемого в конфигурационном проекте iMPACT, доступна через меню OutputCable Setup…. При этом появляется окно Cable Communication Setup (рис. 26), позволяющее выбрать порт, тип кабеля и режим работы (или частоту переключения JTAG для поздних версий загрузочных кабелей).

Окно настройки загрузочного кабеля в iMPACT

Рис. 26. Окно настройки загрузочного кабеля в iMPACT

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

В основном проекте ISE Design Suite, в котором создан конфигурационный файл ПЛИС, следует установить ассоциацию процесса Configure Target Device с конфигурационным проектом, сохраненным в iMPACT. Для этого необходимо нажать правой кнопкой мыши на строке Manage Configuration Project (iMPACT) и выбрать из списка пункт Process Properties… (рис. 27).

Запуск настроек конфигурационного проекта в ISE DS

Рис. 27. Запуск настроек конфигурационного проекта в ISE DS

В открывшемся окне Process Properties – Manage Configuration Project (iMPACT) Properties имеетсянастройка iMPACT Project File. Вместо значения Default путем нажатия на кнопку «…» через диалог открытия файла задается конфигурационный проект u19_prog.ipf (рис. 28).

Выбор конфигурационного проекта в ISE Design Suite

Рис. 28. Выбор конфигурационного проекта в ISE Design Suite

После нажатия кнопки «Открыть» значение Default будет заменено путем к файлу конфигурационного проекта. Следует отметить, что этот путь абсолютный и начинается с буквы диска. Это означает, что связка проекта ISE Design Suite с конфигурационным проектом iMPACT зависит от текущей конфигурации компьютера и пути к папке, в которой находится рабочий проект. При переносе проекта на другое рабочее место возможно несовпадение путей к файлам, вследствие чего эту настройку придется изменить.

Установив связь рабочего проекта ISE Design Suite с конфигурационным проектом, разработчик получает возможность быстрого запуска iMPACT без длительной конфигурации JTAG-цепочки. Это удобно при отладке устройства и многократном программировании ПЛИС.

 

Выводы

 Среда проектирования ISE Design Suite фирмы Xilinx предоставляет возможность программирования и верификации ПЛИС в составе смешанной JTAG-цепочки из кристаллов различных производителей.

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

Для удобства программирования ПЛИС фирмы Xilinx целесообразно создавать конфигурационный проект, содержащий полное описание и настройку JTAG-цепочки, включая конфигурационные и BSDL-файлы.

Литература
  1. 1-2013. IEEE Standard for Test Access Port and Boundary-Scan Architecture.
  2. Руководство по разработке устройств, пригодных для тестирования и внутрисистемного программирования. JTAG Technologies. June 2008.
  3. iMPACT User Guide — 4.1. Xilinx Development System. Xilinx, 2002.
  4. Раздел BSDL Models by Product в менюDownloads — www.latticesemi.com.
  5. http://www.altera.com/download/board-layout-test/bsdl/bsdl.html

Добавить комментарий

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