Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Altera и Xilinx в одной jtag цепочке
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
disel
Добрый день!

На плате нужно установить микросхемы Altera и Xilinx. Ставить два jtag-разъема вроде не красиво. Можно ли их соеденить в одну цепочку?
xc4vsx35 -> xcf16p -> ep2cbt144. К ep2cbt144 прицеплена память epcs4si8. Программируется через jtag, как здесь описано: http://www.altera.ru/cgi-bin/go?549

Какие возможны траблы в такой схеме? Чипскоп вроде умеет работать с чуждыми микросхемами в цепочке, импакт тоже. Хотя сам не разу не пробывал, только по документации знаю. А как дела обстоят с этим делом у софта Альтеры?
DmitryR
bb-offtopic.gif А позвольте пожалуйста полюбопытствовать, к чему такая жесть?
zltigo
Цитата(disel @ May 25 2009, 14:09) *
А как дела обстоят с этим делом у софта Альтеры?

Да без проблем - любые чужие не мешают. Есль только специально для конкурентов кто-нибудь чего не заложил smile.gif
disel
Цитата(DmitryR @ May 25 2009, 15:42) *
bb-offtopic.gif А позвольте пожалуйста полюбопытствовать, к чему такая жесть?


Ну это вопрос не технический, а организационный. Коллеги из соседнего отдела сделали на Альтере в схематике, переделывать в ксалинксе не хотят, да и не смогут, языков не знают. Мне же проще еще одну микросхему поставить.

Цитата(zltigo @ May 25 2009, 15:52) *
Да без проблем - любые чужие не мешают. Есль только специально для конкурентов кто-нибудь чего не заложил smile.gif


Это Вы точно про Альтеру знаете? Если не затруднит киньте ссылку, где про это прочитать можно.
dsmv
Altera и Xilinx в одной JTAG работают. Проверено. Вот сегодня включали.
disel
Цитата(dsmv @ May 25 2009, 16:33) *
Altera и Xilinx в одной JTAG работают. Проверено. Вот сегодня включали.


Спасибо! А в каком месте в альтеровском софте размеры регистров инструкций вводить? Или можно сразу bsdl файл подсунуть? Где почитать об этом, какой документ?
SM
Цитата(disel @ May 25 2009, 16:53) *
Спасибо! А в каком месте в альтеровском софте размеры регистров инструкций вводить? Или можно сразу bsdl файл подсунуть? Где почитать об этом, какой документ?

А программатор обычно автодетектом все находит сам. Если нет - то там же, в программаторе, и описать весь jtag chain вручную.
disel
Цитата(SM @ May 25 2009, 18:50) *
А программатор обычно автодетектом все находит сам. Если нет - то там же, в программаторе, и описать весь jtag chain вручную.


Понял, спасибо.
sazh
Цитата(disel @ May 25 2009, 16:02) *
Ну это вопрос не технический, а организационный. Коллеги из соседнего отдела сделали на Альтере в схематике, переделывать в ксалинксе не хотят, да и не смогут, языков не знают. Мне же проще еще одну микросхему поставить.


Так ведь кто увидит такое (Ваше вроде бы bga с доходягой на 144 планарных ног), мнение однозначное составит.
Проще наверно в один кристалл вогнать.
SM
Цитата(disel @ May 25 2009, 20:13) *
Понял, спасибо.

Вдогонку - автодетект не увидит флешку на циклоне, там надо будет кликнуть контекстное меню, и сделать "attach flash device". И вдогонку-2. SignalTap, если нужен, тоже работает с любой цепочкой жтаг устройств без малейших проблем.
disel
Цитата(sazh @ May 26 2009, 00:11) *
Так ведь кто увидит такое (Ваше вроде бы bga с доходягой на 144 планарных ног), мнение однозначное составит.
Проще наверно в один кристалл вогнать.

В один кристалл - технически более грамотно и проще. Но административно - практически невозможно. Ту часть схемы, которая в альтере, делаю не я, и ни каких возможностей к принуждению не имею. Лучше уж иметь работающее устройство с лишней микросхемой, точно результат быстрее будет. Что до мнений - там на плате много чего будет, фиг с ней, с микросхемой лишней.

Цитата(SM @ May 26 2009, 01:12) *
Вдогонку - автодетект не увидит флешку на циклоне, там надо будет кликнуть контекстное меню, и сделать "attach flash device". И вдогонку-2. SignalTap, если нужен, тоже работает с любой цепочкой жтаг устройств без малейших проблем.

Спасибо, рассеяли последние сомненья.
DmitryR
Цитата(disel @ May 26 2009, 07:41) *
Но административно - практически невозможно.

IMHO в свете заданного вопроса это очень даже и просто. Скажите, что не будут работать они в одной цепочке и все.
disel
Цитата(DmitryR @ May 26 2009, 11:31) *
IMHO в свете заданного вопроса это очень даже и просто. Скажите, что не будут работать они в одной цепочке и все.


А что мешает ставить два разъема? Если человек не хочет работать, заставить практически невозможно.
SM
Цитата(DmitryR @ May 26 2009, 11:31) *
Скажите, что не будут работать они в одной цепочке и все.

Этот обман может легко всплыть, и закончиться гораздо более большими неприятностями, нежели ввод параметров JTAG-цепочки в двух разных программаторах.
sazh
Цитата(disel @ May 26 2009, 11:34) *
А что мешает ставить два разъема? Если человек не хочет работать, заставить практически невозможно.


Тогда тем более нет смысла в чем то общем.
Можно ведь полоску в два ряда по 10 пинов без ключа заложить. Смотреться будет как один разъем.
(А вообще то позавидовать Вам можно. Два отдела работают. А на выходе)
disel
Цитата(sazh @ May 26 2009, 14:35) *
Тогда тем более нет смысла в чем то общем.
Можно ведь полоску в два ряда по 10 пинов без ключа заложить. Смотреться будет как один разъем.
(А вообще то позавидовать Вам можно. Два отдела работают. А на выходе)


Cмысл есть использовать стандартные разъемы для джитага, работать с разъемом без ключа не удобно. Для альтеры джитаг нужен только для программирования флеши, это опереция не частая, ставить из за этого второй разъем смысла действително нет. Из этого и тема родилась.

Просьба не превращать тему в офтопик.
sazh
Цитата(disel @ May 26 2009, 14:43) *
ставить из за этого второй разъем смысла действително нет. Из этого и тема родилась.


Получается один разъем на два разных бластера. Врядли по пинам совпадут. Значит переходничок для кого то нужен.
На коленках спаять как минимум придется. А документа на него не будет.
iosifk
Цитата(sazh @ May 26 2009, 13:54) *
Получается один разъем на два разных бластера. Врядли по пинам совпадут. Значит переходничок для кого то нужен.
На коленках спаять как минимум придется. А документа на него не будет.

У Ксайлинкса бластер, который на Usb, заканчивается проводками. Так что тут проблем совсем нет.
А вот Amontec, хвастались, что у них бластер "сразу под все"...

И еще. Если Вы имеете возможность, то предусмотрите чтобы был дополнительный объем в Вашем чипе, и тогда после запуска платы Вы смогли бы интегрировать все в один чип. А второй - после этого сделать сначала как транзитные линии а потом вообще убрать...
Удачи!
disel
Цитата(iosifk @ May 26 2009, 15:17) *
У Ксайлинкса бластер, который на Usb, заканчивается проводками. Так что тут проблем совсем нет.
А вот Amontec, хвастались, что у них бластер "сразу под все"...

И еще. Если Вы имеете возможность, то предусмотрите чтобы был дополнительный объем в Вашем чипе, и тогда после запуска платы Вы смогли бы интегрировать все в один чип. А второй - после этого сделать сначала как транзитные линии а потом вообще убрать...
Удачи!


Все так и сделано smile.gif И место в большом кристалле есть, и все линии продублированы (благо их совсем немного).
iosifk, у меня к Вам вопрос, как к главному специалисту по jtag. Некоторые товарищи меня пытаются убедить, что для того чтобы ввести микросхему в режим BYPASS не нужно знать длину регистра инструкций. А мне так всегда казалось что без задания длины регистра и кодов команд управления, цепочкой jtag управлять невозможно.
SM
Цитата(disel @ May 26 2009, 15:39) *
Некоторые товарищи меня пытаются убедить, что для того чтобы ввести микросхему в режим BYPASS не нужно знать длину регистра инструкций. А мне так всегда казалось что без задания длины регистра и кодов команд управления, цепочкой jtag управлять невозможно.

Некоторые товарищи абсолютно правы. BYPASS имеет код "все единицы в IR", и чтобы загнать микруху в BYPASS, надо просканировать единиц больше либо равно, чем сумма длин всех IR во всей цепочке. А сумма длин всех IR вычисляется на раз при помощи ооооочень длинного скана сначала всех нулей, затем всех единиц, и анализа задержки, на сколько сдвинулись эти самые единицы от того, как их посылали. Отвечаю Вам как разработчик JTAG-эмуляторов smile.gif
disel
Цитата(SM @ May 26 2009, 16:06) *
Некоторые товарищи абсолютно правы. BYPASS имеет код "все единицы в IR", и чтобы загнать микруху в BYPASS, надо просканировать единиц больше либо равно, чем сумма длин всех IR во всей цепочке. А сумма длин всех IR вычисляется на раз при помощи ооооочень длинного скана сначала всех нулей, затем всех единиц, и анализа задержки, на сколько сдвинулись эти самые единицы от того, как их посылали. Отвечаю Вам как разработчик JTAG-эмуляторов smile.gif


Спасибо, теперь понял.
zltigo
Цитата(disel @ May 25 2009, 15:02) *
Это Вы точно про Альтеру знаете? Если не затруднит киньте ссылку, где про это прочитать можно.

Я не пересказываю прочитанное - я ставлю алтеры с другими чипами в цепочки.
dvladim
Цитата(SM @ May 26 2009, 16:06) *
Отвечаю Вам как разработчик JTAG-эмуляторов smile.gif

А вот как разработчик JTAG-эмуляторов поясните пожалуйста такую вещь: как определить количество устройств в цепочке и длину регистра инструкций от каждого? Ведь в стандарте длина IR не регламентирована и только 2 младших разряда должны быть "01", а остальные жестко не определены.
SM
Цитата(dvladim @ May 26 2009, 23:26) *
А вот как разработчик JTAG-эмуляторов поясните пожалуйста такую вещь: как определить количество устройств в цепочке и длину регистра инструкций от каждого? Ведь в стандарте длина IR не регламентирована и только 2 младших разряда должны быть "01", а остальные жестко не определены.

Последовательность дейсвий такая:
1) STATE TEST-LOGIC-RESET.
2) IRSCAN много-много единиц (загоняем всех гарантированно в BYPASS)
3) DRSCAN какой-нить паттерн, потом много-много единиц, каптурим TDI. Считаем смещение накаптуренного от исходной посылки - это количество устройств, благо мы знаем заранее, что все в BYPASS, и в BYPASS все имеют однобитный DR, и ноль оттуда придет. На всякий пожарный проверяем, чтобы паттерн был на месте...
4) STATE TEST-LOGIC-RESET. Это состояние грузит согласно IEEE 1149.1 (6.1.2) во все IR команды IDCODE, какая бы она у кого не была. Кто не поддерживает - BYPASS.
5) DRSCAN <чо угодно длиной кол-во девайсов*32>, каптурим TDI.
6) В цикле разгребаем - если принят нулевой бит, то IDCODE не поддерживается, оно в BYPASS-е. Если не нулевой - то берем оставшиеся 31 бит IDCODE. И так, пока все девайсы цепочки не будут отработаны.

А вот длину IR каждого из девайсов, увы... Только уже по имеющимся IDCODам можно определить, если есть инфа кто есть кто.

Если тема интересна, то советую скачать IDCODE Reader с альтеры, он там в виде исходника на JAM STAPL, там все очень понятно. И, кстати, там кроме альтеры детектятся и ксилинксы какие-то несвежие, и лэтисы...
rv3dll(lex)
всегда ставил на каждую законченную цепь (плис конфиг пзу) свой разъём и несколько раз это спасало от проблем при настройке. что разъём стоимостью несколько центов жалко?
disel
Цитата(rv3dll(lex) @ May 27 2009, 14:56) *
всегда ставил на каждую законченную цепь (плис конфиг пзу) свой разъём и несколько раз это спасало от проблем при настройке. что разъём стоимостью несколько центов жалко?


Нет, жалко место на плате. Не понял смысл ставить несколько разъемов. И тестировать связи между микросхемами при этом не возможно.
SM
Цитата(disel @ May 27 2009, 14:59) *
И тестировать связи между микросхемами при этом не возможно.

Ну это не так. Тестеры обычно позволяют работать с одной платой по нескольким JTAG-каналам. Или же тестер подключается через JTAG-маршрутизатор навроде SN74ACT8997. Но, в общем, согласен, нафиг не надо делить JTAGи на разные каналы, если не предусматривается одновременная параллельная отладка через разные несовместимые эмуляторы. А уж если речь идет только о прошивке - так вообще, все единообразно и фирмонезависимо шьется одним эмулятором при помощи SVF или JAM STAPL плеера (кому что более по душе).
disel
Я честно говоря только с Universal Scan работал.
SM
Цитата(disel @ May 27 2009, 15:11) *
Я честно говоря только с Universal Scan работал.

А я вот с ним дела не имел... Знаю производственные большие тестеры. А в домашних условиях пользую для теста свои программки на JAM STAPL (JEDEC standard JESD-71)....
rv3dll(lex)
Цитата(disel @ May 27 2009, 14:59) *
Нет, жалко место на плате. Не понял смысл ставить несколько разъемов. И тестировать связи между микросхемами при этом не возможно.


ха - а ставить 10 контактов на альтеру 14 на ксайлинкс и 20 на арм, когда задействовано 6 - не жалко.
disel
Цитата(rv3dll(lex) @ May 27 2009, 16:21) *
ха - а ставить 10 контактов на альтеру 14 на ксайлинкс и 20 на арм, когда задействовано 6 - не жалко.


Не понял. Я же ставлю один разъем.
rv3dll(lex)
Цитата(disel @ May 27 2009, 16:28) *
Не понял. Я же ставлю один разъем.


я про место на плате. про то что разъём хилинга в 14 концов по размеру как 10 концов алтера. а достаточно шести
disel
Цитата(rv3dll(lex) @ May 27 2009, 16:57) *
я про место на плате. про то что разъём хилинга в 14 концов по размеру как 10 концов алтера. а достаточно шести


Понял. Можно и меньше поставить и переходник сделать. Но с 14-ти ногим ксалинксом я уже смирился.
dvladim
Цитата(SM @ May 27 2009, 01:05) *
А вот длину IR каждого из девайсов, увы... Только уже по имеющимся IDCODам можно определить, если есть инфа кто есть кто.

Если тема интересна, то советую скачать IDCODE Reader с альтеры, он там в виде исходника на JAM STAPL, там все очень понятно. И, кстати, там кроме альтеры детектятся и ксилинксы какие-то несвежие, и лэтисы...

Спасибо. Понятно.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.