Внутрисхемное программирование и JTAG-цепочки

№ 6’2011
PDF версия
Многие инженеры и техники, лишь понаслышке знающие о технологии JTAG и тестировании на ее основе, тем не менее постоянно сталкиваются с JTAG-протоколом при выполнении вполне рутинных операций внутрисхемного программирования (или конфигурирования) ПЛИС и FPGA.

Общеизвестно, что без использования протокола JTAG зачастую просто невозможно провести программирование (или, если угодно, внутрисхемное конфигурирование) целого ряда повсеместно применяемых ИС программируемой логики фирм Altera, Xilinx, Lattice и т. д. после их монтажа на поверхность ПП. Два названия процесса связаны с двумя способами его выполнения с использованием каналов JTAG: один из них называется внутрисхемным программированием (In-System Programming, ISP), а другой — внутрисхемным конфигурированием (In-System Configuration, ISC). Между способами реализации этих двух подходов есть значительные различия. Однако оба способа реализуются в рамках протокола JTAG точно так же, как и собственно JTAG-тестирование, так как при этом используются одна и та же аппаратная шина и cхожие протоколы доступа: ISP определяется JTAG-стандартом IEEE 1149.1 [1], а ISC — стандартом IEEE 1532 [2], являющимся расширением стандарта IEEE 1149.1. Для выполнения этих процедур применяются одни и те же схемные цепи порта контроллера ТАР (TDI, TDO, TMS, TCK, TRST), а формат SVF ввода команд и данных для них общий, наряду с некоторыми другими, например, форматом JAM и т. д.

Оба процесса (ISP и ISC) обладают рядом неоспоримых преимуществ, чем и обусловлено их широкое применение. Во-первых, это возможность внутрисхемного программирования и перепрограммирования содержимого ПЛИС и FPGA после их монтажа на ПП и в любое время, в том числе при нахождении ПП на объекте, внешними или внутренними средствами (к примеру, под управлением процессора ПП), а также перепрограмирование этих ИС дистанционными средствами, например, с помощью Интернета. Во-вторых, существенно упрощается инвентаризация их содержимого, так как вместо наклеивания на них шильдиков с версией конфигурации, считывание которых требует организации визуального доступа, код версии конфигурации может быть считан по каналам JTAG без прерывания работы системы, в том числе и дистанционно. Тем не менее процедуры внутрисхемного программирования ПЛИС и FPGA в ряде случаев вовсе не совмещаются с JTAGтестированием на одном и том же стенде, что бывает вызвано, в частности, недостаточным пониманием их тесной взаимной связи. Одной из причин слабой совместимости стендов внутрисхемного программирования со стендами JTAG-тестирования является то, что широко распространенные программно-аппаратные средства фирм-изготовителей ИС (Quartus II для компонентов Altera, ISE и iMPACT — для компонентов Xilinx, ispLEVER — для компонентов Lattice) совершенно не предназначены для JTAG-тестирования: ни для разработки тестовых JTAG-программ, ни для их прогона. Например, система Quartus II предназначена только для программирования микросхем фирмы Altera, с микросхемами других производителей она вообще не работает. То же справедливо в отношении остальных систем ISP и ISC — каждая из них конфигурирует только «свои» ИС, пользуясь при этом только своими аппаратными средствами сопряжения с ПП: кабель USB-Blaster фирмы Altera, кабель XILINX Platform USB фирмы Xilinx, кабель USB2A фирмы Lattice. И это лишь неполный их список, приведенный для примера.

Любая из упомянутых систем ISP и ISC, тем не менее, позволяет получить файл в формате SVF для внутрисхемного программирования ПЛИС и FPGA [3], следует лишь ввести в такую систему описание JTAG-цепочки платы в соответствующей форме. Такой файл SVF представляет собой готовый этап JTAG-программы тестирования платы, разработанной в рамках любой из JTAG-платформ наряду с этапами собственно тестирования. Иными словами, разработчики структур всех JTAG-платформ исходят из предположения, что этапы внутрисхемного программирования ПЛИС или FPGA будут в них импортированы из соответствующей системы ISP или ISC в формате SVF. С другой стороны, аппаратные средства JTAG-тестеров любых платформ — Asset, Corelis, Goеpel, JTAG Technologies, XJTAG и других (кроме платформы onTAP фирмы Flynn Systems, но о ней речь ниже) — совершенно несовместимы с упомянутыми интерфейсными средствами систем ISP и ISC, а форматы их тестовых JTAG-программ заметно отличаются от стандартного формата SVF. Подобная несовместимость, обусловленная конкурентными соображениями маркетинга, приводит к тому, что для сопряжения систем прогона JTAG-тестов с тестируемыми платами приходится, в дополнение к аппаратным средствам внутрисхемного программирования ISP и ISC, приобретать и весьма недешевые интерфейсные средства JTAG-тестеров той или иной платформ. Мне часто приходится слышать такой вопрос: можно ли использовать уже имеющиеся в нашем распоряжении интерфейсные средства ISP-фирм (Altera, Xilinx, Lattice и т. д.) для сопряжения тестируемых ПП с одной из платформ JTAG-тестирования? Положительный ответ на такой вопрос можно дать только в отношении платформы JTAG-тестирования onTAP фирмы Flynn Systems [4]. Наряду с очень простыми и недорогими собственными средствами сопряжения с тестируемыми ПП (рисунок), система onTAP позволяет использовать для прогона своих JTAG-тестов также широко распространенные кабели XILINX Platform USB фирмы Xilinx.

Средство сопряжения с тестируемыми ПП

Все дело в том, что onTAP — это, пожалуй, единственная из платформ разработки JTAG-тестов, для которой стандартный формат SVF [3] является выходным форматом всех тестовых программ: теста инфраструктуры и межэлементных связей, тестов элементов памяти и кластеров, прожига ИС флэш-памяти и т. д. Это заметно повышает гибкость применения самих JTAG-тестов платформы onTAP, поскольку дает возможность использовать их (с некоторыми ограничениями) в любой другой JTAG-платформе. JTAG-тесты, сгенерированные на платформе onTAP, могут быть загружены и запущены через секвенсер тестовых этапов, позволяющий комбинировать выполнение любых наборов JTAG-тестов и импортированных ISP-файлов, поскольку все они присутствуют в одном и том же формате SVF.

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

Другое распространенное заблуждение связано с внутрисхемным программированием ПЛИС и FPGA. Разработчики схем ПП необоснованно полагают, что для применения к таким ИС программно-аппаратных средств фирмы-изготовителя (Quartus-II, ISE, ispLEVER) сами ИС непременно должны находиться в отдельных JTAG-цепочках. Это, однако, вовсе необязательно, поскольку каждая из упомянутых систем позволяет получить файл JTAG-конфигурирования в формате SVF, следует лишь предварительно ввести в программное обеспечение этих систем описание JTAG-цепочки, содержащей любые ИС JTAG в дополнение к программируемым. Полученный таким образом файл SVF содержит команды JTAG-конфигурирования для «своей» ИС и команды BYPASS — для «чужих» ИС. Кроме формата SVF, для этих целей применяются и другие форматы — JAM, STAPL и JEDEC. Если же конфигурируемые компоненты поддерживают и стандарт IEEE 1532 (а это верно для большинства из них), то даже применение формата SVF излишне для размещения таких компонентов в JTAG-цепочках с любым количеством произвольных ИС JTAG, совсем необязательно программируемых.

Сказанное вовсе не означает, конечно, что одновременное использование нескольких портов ТАР (или, другими словами, организация ИС JTAG тестируемой ПП в виде нескольких отдельных JTAG-цепочек) не является оправданным или даже желательным в ряде схемотехнических ситуаций. Известно, к примеру, что этапы JTAG тест-программ, связанные с прожигом ИС флэш-памяти, являются наиболее времяемкими среди прочих. Поскольку длительность прожига флэш-памяти напрямую связана со значением ТСК — частоты синхросигналов JTAG-цепочки, управляющей прожигом, а эта частота определяется ТСК наиболее медленной ИС цепочки, при проектировании схемы рекомендуется сконцентрировать JTAG-управляемость всеми сигналами ИС флэш-памяти (не только шинами адреса и данных, но и сигналами управления) в одной ИС JTAG с наибольшим значением ТСК. Зачастую эта ИС размещается в отдельной JTAG-цепочке. Довод о времени выполнения того или иного тестового этапа, не обязательно связанного с прожигом флэш-памяти, является, как правило, достаточным для выделения ответственных за этот этап ИС в отдельную JTAG-цепочку. Это решение, разумеется, должно быть принято на этапе тестопригодного проектирования схемы. Раздельные JTAG-цепочки могут понадобиться также при организации кластерного теста тех или иных фрагментов схемы при помощи внешней тестовой платы, подключаемой к тестируемой ПП через ее краевой разъем, покрытие дефектов монтажа которого тоже является одной из задач построения этого кластера. Мультипортовое JTAG-тестирование неизбежно и при тестировании блоков или узлов, состоящих из нескольких JTAG-тестируемых ПП (одинаковых или разных), если кросс-плата этого блока не поддерживает интерфейс JTAG. В таком случае каждая из одновременно тестируемых ПП подключается к одной или нескольким JTAG-цепочкам. Мультипортовое JTAG-тестирование — основа синхронного теста большого числа одинаковых ПП при их массовом или крупносерийном производстве. Решение о числе JTAG-портов в таких конфигурациях принимается в зависимости от ожидаемой производительности процесса тестирования и наличия на предприятии мультипортового тестового оборудования.

Аппаратное обеспечение всех существующих платформ поддержки JTAG-тестирования имеет те или иные мультипортовые модификации [5] — два, четыре или больше. Это, в частности, означает, что при проектировании ПП важно принимать во внимание, на каком оборудовании предполагается проводить тестирование этой ПП. Если линия монтажа вашей ПП оборудована одним четырехпортовым JTAG-контроллером, а вы планируете, к примеру, использовать в схеме шесть JTAG-цепочек, то следует быть готовым к тому, чтобы использовать некий наружный коммутатор цепочек (такие, разумеется, существуют) или же приобрести дополнительный двух или четырехпортовый JTAG-контроллер.

Литература
  1. www.jtag-test.ru/JTAGUniversity/articles/01-PE_5_2007.php /ссылка утрачена/
  2. www.jtag-test.ru/JTAGUniversity/articles/20_2011.php /ссылка утрачена/
  3. www.jtag-test.ru/JTAGUniversity/articles/04-PE_8_2007.php /ссылка утрачена/
  4. www.jtag-test.ru/JTAGUniversity/columns/KiT_05_2011.php /ссылка утрачена/
  5. www.jtag-test.ru/JTAGUniversity/articles/12-PE_6_2009.php /ссылка утрачена/

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

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