Перейти к содержанию
    

Вопросы по JTAG boundary scan

Здравия всем!

Помогите разобраться, плз.

Собираюсь ввести в схему функциональную возможность тестирования исправности ПЛИС через JTAG.

ПЛИС стоит в цепочке JTAG, основное конфигурирование идёт по PS от загрузочной микросхемы, отладочное - по JTAG .sof-файлом, загрузочная микросхема также программируется по JTAG (как это, например, сделано в отладочной плате ОП5576ХС1Т.01).

Можно в этом случае делать Boundary scan, или порт JTAG сканируемой ПЛИС должен быть освобождён специально для этого и подключен к отдельному разъёму?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно конечно, почему нет. Одно другому не мешает: когда все загрузилось, житаг свободен, передач по нему нет - можно использовать.

Переводите все устройства в цепочке в bypass, а в ПЛИС выбираете нужный режим - extest, intest. Потом формируете вектора с учетом, что в цепочке есть устройства в bypass, и тестируете.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, MrGalaxy сказал:

Собираюсь ввести в схему функциональную возможность тестирования исправности ПЛИС через JTAG.

ПЛИС стоит в цепочке JTAG, основное конфигурирование идёт по PS от загрузочной микросхемы, отладочное - по JTAG .sof-файлом, загрузочная микросхема также программируется по JTAG (как это, например, сделано в отладочной плате ОП5576ХС1Т.01).

Можно в этом случае делать Boundary scan, или порт JTAG сканируемой ПЛИС должен быть освобождён специально для этого и подключен к отдельному разъёму?

Только немного добавлю к предыдущему Алексу.

Я делал сканирование ПЛИС до загрузки. И при этом все пользовательские выводы были в одном и том же стандарте с током выхода 2 мА. А у Вас ПЛИС будет после загрузки? Но ведь тогда каждому пользовательскому выводу будут назначены разные стандарты. И это надо уточнить в даташитах. Потому как на длительное КЗ на выводе с 2 мА может быть и можно наплевать, а при 23 мА - кто знает?

Я бы сделал аппаратную блокировку загрузки, потом делал бы тестирование... 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

26 минут назад, iosifk сказал:

Я бы сделал аппаратную блокировку загрузки, потом делал бы тестирование... 

Или нужно не забывать стирать прошивку из загрузочной микросхемы перед тестированием...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 часов назад, Aleх сказал:

 а в ПЛИС выбираете нужный режим - extest, intest. 

Чем он выбирается не подскажете? Директивами jtag или какие служебные ноги ПЛИС надо задействовать дополнительно?

Схем подключения не смог найти .

 

4 часа назад, iosifk сказал:

Я бы сделал аппаратную блокировку загрузки, потом делал бы тестирование... 

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

А если на плате будет стоять второй тактовый генератор, подключённый к ПЛИС, его надо блокировать на время тестирования?

3 часа назад, Zig сказал:

Или нужно не забывать стирать прошивку из загрузочной микросхемы перед тестированием...

Хорошо б без этого обойтись, проще технологическую перемычку предусмотреть. 

У меня была другая мысль: можно ведь загружать прошивку мимо конфигурационной микросхемы непосредственно по jtag с немедленным  конфигурированием без перевключения питания. Если можно сбрасывать конфигурацию ПЛИС таким же макаром, было бы здорово. Завтра надо не забыть попробовать это на работе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

18 minutes ago, MrGalaxy said:

Чем он выбирается не подскажете? Директивами jtag или какие служебные ноги ПЛИС надо задействовать дополнительно?

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

Но судя по заданному вопросу, вам надо начать с азов - с чтения мануалов. Прочитать придется очень и очень много, погуглите статьи о житаге, изучите стандарт. И еще, надо раздобыть BSDL на вашу ПЛИС - только там есть описание boundary scan цепи. И вероятно, не только на ПЛИС.

 

p.s. и да, управление полностью софтверное, другие пины трогать не надо, только житаг.

Изменено пользователем Aleх

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

36 минут назад, Aleх сказал:

, управление полностью софтверное, другие пины трогать не надо, только житаг.

Сейчас это для меня главное (чтобы разработать Э3), очень надеюсь, что и пользоваться не придётся, но такую возможность надо заложить.

 

38 минут назад, Aleх сказал:

 судя по заданному вопросу, вам надо начать с азов - с чтения мануалов. 

Это верно. 

 

Всем спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Статьи на русском можете посмотреть на сайте у автора: Иосифа Григорьевича Каршенбойма iosifk http://iosifk.narod.ru/jtag_page.htm

 

Еще документация http://www.jtagtest.com/docs

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 минуты назад, Zig сказал:

Статьи на русском можете посмотреть на сайте у автора: Иосифа Григорьевича Каршенбойма iosifk http://iosifk.narod.ru/jtag_page.htm

Уже читаю, спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

16 часов назад, MrGalaxy сказал:

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

Однако, халява не прокатила - для файла .sof и девайса EPF10K50R240 птичка на erase не ставится, эта опция не активна. Так что или стирать конфиг. микросхему, или ставить перемычку.

1957509431_.thumb.png.977ee92041e9271861d3ad85a45d15a1.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тест паек делают на производстве, сразу после сборки. Прошивать можно после теста. Если же этот тест нужен для диагностики неработающего модуля - сделайте спец прошивку со слабыми драйверами, специально для житаг теста.

 

Но, как по мне, ничего не будет при кз 1-2 выводов. Это штатный режим, КМОП микросхемы от такого не горят.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 минут назад, Aleх сказал:

Тест паек делают на производстве, сразу после сборки.

Писал тут как-то. 9 блоков, два из них не работают, вернее работают частично: часть сигналов есть, а остальных нет, и потребление меньше, чем должно быть. Микросхема запаяна правильно, окружающие элементы тоже. Здесь на форуме писали, что может быть брак ПЛИСки и проверяется это через JTAG. JTAG у меня не был выведен, проверить не мог. ОТК било себя в грудь, что всё проверено, и сваливало на разработчика (т.е. на меня). Завод мощнейший, относится к серьёзному департаменту.

Две платы собирал один и тот же монтажник, оказалось, что при распайке на разъём он перепутал провода.

А Вы говорите тест делают. Человеческий фактор никто не отменял.

 

20 минут назад, Aleх сказал:

Но, как по мне, ничего не будет при кз 1-2 выводов. Это штатный режим, КМОП микросхемы от такого не горят.

Разве от этого легче? Работать-то не будет.

29 минут назад, Aleх сказал:

Если же этот тест нужен для диагностики неработающего модуля - сделайте спец прошивку со слабыми драйверами, специально для житаг теста.

Слабые драйвера - имеется в виду без OpenDrain, чисто TTL? Или специально надо как-то формировать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

54 minutes ago, MrGalaxy said:

Две платы собирал один и тот же монтажник, оказалось, что при распайке на разъём он перепутал провода.

Я около года занимался житаг тестами, как раз при производстве. Писал и приемочные тесты и диагностику неисправностей. Сложность, чтобы вы понимали - большие 6U крейты с десятком системных модулей, т.е. в цепи житаг было несколько десятков микросхем. А в режиме диагностики я кроме теста паек еще и читал и писал параллельные и последовательные NAND и NOR флешки, мигал диодами, и делал еще кучу всего полезного для дебага неисправности. Писал все руками, на JAM, гонял через терминал и альтеровский ByteBlasterII (давно дело было), причем мог это делать удаленно через виртуальный сервер. И вот что я могу обо всем этом сказать. Тест паек - работает только если на проверяемой линии подключено два концевых устройства: одно драйверит 1/0, второе принимает. Если это разъем (CPCI, RS-232, Ethernet и т.д.), то специально для теста паек на него ставится заглушка  -выходы замыкаются на входы и тестируется работа петли. И вот когда все точки паек контролируются - только тогда тест можно считать полным, и только тогда ни один ляп монтажника не проскочит. Бонусом - дамп содержимого ПЗУ (писал выше про флеш), т.к. их могут "забыть" прошить. Житаг дает очень много возможностей, и надо ими пользоваться.

 

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

 

Quote

Слабые драйвера - имеется в виду без OpenDrain, чисто TTL? Или специально надо как-то формировать?

Тут лучше спросить iosifk, что он имел ввиду под разными стандартами тока выхода.

Наверно буквально стандарты и имел ввиду - CMOS, PECL, CML и т.д. - все то, что можно задействовать в ПЛИС.

Изменено пользователем Aleх

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

19 минут назад, Aleх сказал:

Тут лучше спросить iosifk, что он имел ввиду под разными стандартами тока выхода.

Наверно буквально стандарты и имел ввиду - CMOS, PECL, CML и т.д. - все то, что можно задействовать в ПЛИС.

Я говорил о том, что для стандарта LVCMOS можно задать ток выхода: 2, 4, ...24 мА. Это тот ток, когда выход переходит в режим ограничения тока. Но умолчанию, на тех Виртексах, с которыми имел дело было 2 мА.

Вот кусочек usf-файла для одной цепи:

NET "I_FORCE_CONTROL0"  LOC = "A4";

INST "Buf_I_FORCE_CONTROL0" IOSTANDARD = LVCMOS33;

INST "I_FORCE_CONTROL0" IOB = FALSE;

INST "I_FORCE_CONTROL0" SLEW = SLOW;

NET "мА" SLEW = SLOW;

INST "I_FORCE_CONTROL0" DRIVE = 4;

Так вот, последняя строка как раз и задает ток выхода в 4 мА...

Ну и до кучи из этого: simultaneously switching outputs (SSO), хотя бы здесь Xilinx XAPP689.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 часа назад, MrGalaxy сказал:

Здесь на форуме писали, что может быть брак ПЛИСки и проверяется это через JTAG

Здесь нужно понять, вы хотите проверить прошивку в ПЛИС или соединения на плате?

В любом случае подаете команду EXTEST по JTAG. Она разрывает связи между ядром ПЛИС и внешним пином. Для каждого пина как правило используется 3 бита: DI OE DO.

Если нужно проверять внутренности ПЛИС - подаете биты на DI, контролируете биты OE и DO, на OE и DO подаете безопасные данные для остального окружения.

Если проверяете соединения/пайку, то используете все схемы с JTAG, так же EXTEST. Подаете биты на OE, DO, контролируете на DI. Аналогично можно проверить части не имеющие JTAG, считать/записать ПЗУ и т.п.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...