Jump to content

    

Нужна помощь по JTAG

а объясните мне как ламеру, почему это все "так сложно"?

 

сейчас есть микросхемы, в которых реализован JTAG

например

http://www.ftdichip.com/Support/SoftwareEx...SSE/FTCJTAG.htm

ты ей говоришь: перейти в тактое-то состояние, рагрузить в DR хоть 100К бит, выгрузить и т.д. а она делает.

да и написать самому такую машинку, хоть чезез LPT, хоть через что иное :) вобщем-то сильно не сложно

по крайней мере мне не раз приходилось делать для всяческих ISP и т.п.

 

отпарсить тот же EDIF и BSDL задачка тоже не ахти, для питона наверняка нагуглить готовые парсеры можно

да и в данном случае, и в моих тоже, когда производство не тыща наименований в год, можно вручную векторы прописать

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

а тут проверка на обрыв, проверка на закорот с землей/питанием,

ну и задача минимизировать длину вектора не важна

 

а когда я к платоделателям подкатываю с предложением использовать JTAG для проверки пайки, мне говорят это дорого, это трудно и т.п.

какой-то сенс в этом есть или просто "тут так принято?"

 

Share this post


Link to post
Share on other sites
а объясните мне как ламеру, почему это все "так сложно"?
Если вам нужно загрузить пару самописных векторов и вы никуда не торопитесь - то несложно. А если вам надо оттестить железку из тысяч соединений и десятков м/сх в JTAG цепочке, а вы не хотите ждать окончания процесса сутками, равно как и писать тысячи тестовых векторов руками, то вот тут и возникают железки, которые способны управляться JTAG'ом на десятках мегагерц, грузить в себя эти самые тысячи векторов и стоить десятки тысяч $. Да и софт, который способен этих тестовых векторов нагенерить хотя бы с нетлиста тоже не дешевый (как и все CAD'ы)

 

Share this post


Link to post
Share on other sites

Слышал про железки XJTAG и JTAGMaster

XJTAG у нас мегратек продвигает - стоит порядка 18 тыщ баксов.

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

 

Меня заинтересовал вопрос - как с помощью стандартного альтеровского программатора сделать граничное сканирование?

Share this post


Link to post
Share on other sites
Меня заинтересовал вопрос - как с помощью стандартного альтеровского программатора сделать граничное сканирование?

Написать свой jam. А дальше альтеровский Jam Player.

Share this post


Link to post
Share on other sites

Господа модераторы, перенесите этот топик в более соответствующую тему. О языках проектирования на ПЛИС тут ни слова. Спасибо.

 

Share this post


Link to post
Share on other sites
Если вам нужно загрузить пару самописных векторов и вы никуда не торопитесь - то несложно. А если вам надо оттестить железку из тысяч соединений и десятков м/сх в JTAG цепочке, а вы не хотите ждать окончания процесса сутками, равно как и писать тысячи тестовых векторов руками, то вот тут и возникают железки, которые способны управляться JTAG'ом на десятках мегагерц, грузить в себя эти самые тысячи векторов и стоить десятки тысяч $. Да и софт, который способен этих тестовых векторов нагенерить хотя бы с нетлиста тоже не дешевый (как и все CAD'ы)

 

У меня была задача такая. Связей, которые нужно было проверять более 5 тыс. Правда схема была регулярной и потому тесты соединений делались не парсером, а вручную, по списку связей. Микросхем на плате было 25 по 500 пинов... По поводу "управляться JTAG'ом на десятках мегагерц" - чистое надувательство. Не поучится никак выше 1 мгц, т.к. линии связи длинные и не согласованные. Тест передавался из РС в FTDI2232, через USB, и далее в плату. Время тестирования было от 8 до 5 часов в зависимости от программной реализации... Потом еще была возможность подсократить время тестирования, путем модернизации софта. Софт представлял собой самодельный интерпретатор команд. Его пример лежит у меня на сайте и он описан в статьях. На все: от изучения проблемы и до работающего варианта ушло 3 месяца. Правда уже чарез 1,5 месяца работало тестирование через LPT... Что касается "долго", то платы такой сложности не делаются сотнями в месяц. А так, оставляете ее на ночь, утром тест завершен. или ставите пару старых компьютеров...

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

Так, что если есть желание, то что-то сделать точно можно...

Удачи!

 

Share this post


Link to post
Share on other sites
Меня заинтересовал вопрос - как с помощью стандартного альтеровского программатора сделать граничное сканирование?

Подключить к разъему и выполнить инструкции extest или sample. Делов-то... :)

Share this post


Link to post
Share on other sites
... тесты соединений делались не парсером, а вручную, по списку связей. Микросхем на плате было 25 по 500 пинов... По поводу "управляться JTAG'ом на десятках мегагерц" - чистое надувательство. Не поучится никак выше 1 мгц, т.к. линии связи длинные и не согласованные. ... Время тестирования было от 8 до 5 часов в зависимости от программной реализации...
Об этом и речь. За то, что бы избавиться от всего вышеизложенного производители тестового JTAG оборудования и берут нехилую денюжку :crying:

Что касается "долго", то платы такой сложности не делаются сотнями в месяц.
Опять же, там где покупают это самое оборудование - там делают (и возможно более, чем сотнями). Иначе нет смысла.

 

Была у меня идея сделать открытый проект железки для тестирования на базе какого либо стартового набора, но потом время "ушло" и не получилось...
У меня тоже есть некий проект вокруг JTAG (и не только для тестирования), но времени хронически нету, так что дальше дизайна дело не пошло, увы.

 

Так, что если есть желание, то что-то сделать точно можно...
'Что-то' конечно сделать можно. Если устраивает 10 часов на тест платы и ручная подготовка данных для тестирования (где то несколько недель или месяцев на плату, в зависимости от ее сложности), то такое сделать можно. Но это явно не система промышленного уровня :cranky:

 

Share this post


Link to post
Share on other sites

Может, окажется кому то полезным:

В квартусе есть новый интерпретатор ..\quartus\bin\quartus_jli.exe , который может использовать удаленный житаг сервер. Т.е. я в в quartus programmer в опциях hardware подцепился к тестовой машине с поднятым житаг сервером (по IP), и теперь quartus_jli видит этот удаленный порт как локальный. Сейчас ломаю idcode.jam c сайта альтеры, отлично работает с указанным тулзом и удаленным сервером.

А JAM умеет работать только с локальным LPT, я так понимаю. Мне это не очень удобно, поскольку на рабочей машине нет LPT.

Share this post


Link to post
Share on other sites

У jtag.com появилась бесплатная приблуда чтобы вручную "подергать" ногами. JtagLive называется. Может юзать стандартный кабель. Там есть какой-то дополнительный модуль, который позволяет на питоне писать скрипты управления пинами (за деньги, но немного вроде...)

Share this post


Link to post
Share on other sites

Доброго времени суток!

Касательно тестирования интерфейсов LVDS, RIO(Rapid IO?) уже достаточно давно выпущены дополнения к стандарту 1149.1 -> 1149.6, и дальнейшее развитие.

Если Ваши схемы поддерживают соответствующие аналоговые дополнения к 1149.1, то протестировать и эти ножки можно.

Как правильно написали выше, BSDL описывается в приложении к стандарту 1149.1 - Annex B (normative) Boundary-scan description language.

У самой компании JTAG есть представительство в РФ, они устраивают презентации периодически. На одной из них видел из офф. прожку для Ваших целей, делает всё красиво и шустро.

Показалась для нормального инженера достаточно user-friendly. Сам, конечно, не юзал. Цены были серьезные.

П.С. Некоторые наши компании-изготовители PCB очень даже дружелюбно относятся, если им предлагают паттерны для тестирования на плате, особенно, если несколько BGA корпусов.

Им же самим проще делать контроль пайки.

Share this post


Link to post
Share on other sites
П.С. Некоторые наши компании-изготовители PCB очень даже дружелюбно относятся, если им предлагают паттерны для тестирования на плате, особенно, если несколько BGA корпусов.

Им же самим проще делать контроль пайки.

А можно назвать поименно эти самые наши компании? Я просто до сих пор ни одной не видел (только половину, и то с натяжкой).

Share this post


Link to post
Share on other sites
А JAM умеет работать только с локальным LPT, я так понимаю. Мне это не очень удобно, поскольку на рабочей машине нет LPT.

Можно дописать любой свой бекэнд под Jam Player, поскольку есть исходники и описано портирование его под другие платформы. Оригинальный Jam Player USB не поддерживает. Однако, тот же quartus_jli.exe может выполнить jam файл в том числе и удаленно и через USB Blaster, см. командную строку.

http://www.altera.com/support/kdb/solution...152005_912.html

Share this post


Link to post
Share on other sites

Привет!

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

ПО так и не было куплено (счет нам выкатили на 40к евро, решили что ннах), писал код и ковырял BSDLки вручную. За это время написаны тесты для 4х разных процессорных плат, с проверкой всех используемых интерфейсов. Писать оказалось не слишком сложно; но язык допотопный и горбатый, поэтому код получается очень здоровый по размерам. Тесты состоят не только в поднятии/опускании ножек (как для флеша и PCI), но и в анализе всяких служебных регистров и прочего, с помощью расширенных наборов инструкций - это с помощью платного ПО всеравно бы пришлось писать ручками. В ближайшем будущем надо будет расширить эти тесты на целый кросс набитый модулями, а также в планах написать скрипт для прошивки nvram по житагу, чтобы на серийных платах не кроватки делать, а припаивать микросхемы. Ну, и до кучи хочется тесты scan и mbist добавить, чтобы дополнительно проверять асик, правда пока не знаю как это сделать.

 

Еще, хочу написать для тех, кому впервые придется ковыряться с житагом. Пара советов: Для начала советую залезть на сайт альтеры и бесплатно скачать altera standalone programmer - хороший визуальный интерфейс для работы с житагом, а также интерпретатор для проигрывания JAM файлов. А также в качестве примера советую скачать оттудаже idcode.jam - скрипт полностью раскрывает возможности языка. Ну а потом уже пытаться чтото написать наподобие.

 

В общем, дописал себе еще один пунктик в резюме, авось пригодится когданибудь.

Всем спасибо за помощь!

Share this post


Link to post
Share on other sites

mbist он внутре АЗИКа делается,

то есть к памяти цепляется мультиплексор, а к мультиплексору некая внутрикристальная машинка (IP), которая память проверяет (псевдослучайной последовательностью)

снаружи только команды "вкл/выкл" доступны :)

сейчас самый популярный производитель bist-ов и atpg софта - Mentor

 

а со сканом приблизетельно та же фигня, что и с boundary scan, но проверяют логику (И-ИЛИ-Не и т.п.) между триггерами в цепочке, а не просто соединение (по этому поводу есть целая наука, то есть нужно хитрый алгоритм генерации патернов, чтобы дефекты выявлять), также там еще есть проблема проверки удовлетворения частоты

и так как в типичном АЗИКе общая длинна цепочек 100К, то их режут, чтобы паралельно засовывать/доставать патерны, то есть тут хитрый тестер за несметные мильйоны баксов уже, имхо, оправдан

 

ну и это - азиковский нетлист нужен, или готовые патерны

 

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this