Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: JTAG usb-blaster
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Putnik
Здравствуйте!
задача встроиться своим JTAG-контроллером реализованном в ПЛИС в цепочку конфигурирования этой же ПЛИС.
интересно, возможно ли это в принципе?
iosifk
Цитата(Putnik @ Aug 29 2011, 11:49) *
интересно, возможно ли это в принципе?

Да, но зависит от типа ПЛИС...
Putnik
Цитата(iosifk @ Aug 29 2011, 12:05) *
Да, но зависит от типа ПЛИС...

Cyclone IV
iosifk
Цитата(Putnik @ Aug 29 2011, 12:08) *
Cyclone IV


У Альтеры есть мегафункция. Она прицепляется к проекту.
У меня на сайте есть статьи о "Микропроцессор своими руками"... И там одна из статей - об отладке проектов. Вот там и написано об этой мегафункции... Но, можно и перешерстить библиотеку мегафункций... И описание к ней...
XVR
Цитата(Putnik @ Aug 29 2011, 11:49) *
задача встроиться своим JTAG-контроллером реализованном в ПЛИС в цепочку конфигурирования этой же ПЛИС.
Очень похоже за попытку поднять себя за волосы
Цитата
интересно, возможно ли это в принципе?
У барона Мюнхаузена получилось 1111493779.gif
iosifk
Цитата(XVR @ Aug 29 2011, 13:11) *
Очень похоже за попытку поднять себя за волосы


Да нет.. Просто человек хочет иметь на JTAG порт общего назначения, но не умеет об этом правильно сказать. И хочет через Байт-бластер отлаживать что-то у себя в проекте.
Вот он скоро узнает, что это можно. Потом будет встраивать порт, потом будет задавать вопросы про API к USB байт-бластеру. Потом будет материть Альтеру, когда узнает, что API не доступен... Красота и простор для творчества. А потом он на это дело плюнет, когда надоест переключать драйвера к USB после загрузки на отладку... Потом он к паре свободных пинов прицепит микроконтроллер или стартовый набор с микроконтроллером и будет отлаживаться. Или вот найдет у Экзара чипы PCIe - UART. встроит в свой проект высокоскоростной UART, прямо от стартового набора и будет счастлив...
Думаю что так. Впрочем, через пару дней увидим...
Удачи!
Stewart Little
Цитата(iosifk @ Aug 29 2011, 13:41) *
Просто человек хочет иметь на JTAG порт общего назначения, но не умеет об этом правильно сказать. И хочет через Байт-бластер отлаживать что-то у себя в проекте.

Вы телепат??? blink.gif
Про отладку в посте топикстартера нет ни слова...

Цитата(iosifk @ Aug 29 2011, 13:41) *
Вот он скоро узнает, что это можно. Потом будет встраивать порт, потом будет задавать вопросы про API к USB байт-бластеру. Потом будет материть Альтеру, когда узнает, что API не доступен... Красота и простор для творчества. А потом он на это дело плюнет, когда надоест переключать драйвера к USB после загрузки на отладку... Потом он к паре свободных пинов прицепит микроконтроллер или стартовый набор с микроконтроллером и будет отлаживаться.

Но если топикстартеру нужна таки именно отладка, то сперва он узнает, что есть такая штука, как SignalTap, и станет его использовать, безо всяких вопросов про API, и внешних контроллеров.
Putnik
Цитата
Да нет.. Просто человек хочет иметь на JTAG порт общего назначения, но не умеет об этом правильно сказать. И хочет через Байт-бластер отлаживать что-то у себя в проекте.

Вы все правильно поняли, нужно для отладки микропроцессорной системы в ПЛИС

Цитата(Stewart Little @ Aug 29 2011, 16:00) *
Но если топикстартеру нужна таки именно отладка, то сперва он узнает, что есть такая штука, как SignalTap, и станет его использовать, безо всяких вопросов про API, и внешних контроллеров.

SignalTap не помошник для прогона миллиона тестов
iosifk
Цитата(Stewart Little @ Aug 29 2011, 16:00) *
Но если топикстартеру нужна таки именно отладка, то сперва он узнает, что есть такая штука, как SignalTap, и станет его использовать, безо всяких вопросов про API, и внешних контроллеров.

Здесь все довольно просто. Если надо отладить взаимодействие нескольких сигналов, то тогда можно их либо вывести на тестовые выводы, либо подключить встроенный лог. анализатор.
НО! Если дело идет не об отладке "сигналов", а скажем так, об отладке "алгоритмов", то тут никакой анализатор не поможет. А разработчик смотрит на коллегу-программиста, который по шагам отлаживает что-то в микроконтроллере и тихо воет от зависти. Ему тоже хочется отладки в стиле "микроконтроллер по шагам"... Вот об этом топикстартер и пытался написать.
Беда только в том, что по USB, через штатный бластер, это ему сделать вряд ли удастся... А про LPT я не пишу... Хотя у меня же проект под LPT для сканирования давно выложен на сайте.
wpost
IMHO проще заложить RS232 или USB-UART (типа CP2103) и отлаживать свою процессорную систему через обычный COM порт... и не париться с JTAG...
Stewart Little
Цитата(Putnik @ Aug 29 2011, 16:16) *
Вы все правильно поняли, нужно для отладки микропроцессорной системы в ПЛИС

А что за система, если не секрет?
Какое ядро используете?

Цитата(Putnik @ Aug 29 2011, 16:16) *
SignalTap не помошник для прогона миллиона тестов

А вот это: http://www.synopsys.com/Tools/Implementati...s/Identify.aspx случайно не сможет спасти отца российской демократии?
Putnik
через компорт через отдельные пины ПЛИС для JTAG отладка у нас отлично работает, но USB-blaster быстрее, для большого количества тестов это существенно, есть и другие ньюансы


Цитата(Stewart Little @ Aug 29 2011, 16:44) *
А что за система, если не секрет?
Какое ядро используете?

микропроцессорные системы собственной разработки, линейки разные, подход один
Цитата
А вот это: http://www.synopsys.com/Tools/Implementati...s/Identify.aspx случайно не сможет спасти отца российской демократии?

сигнал-тап использую здесь в дополнение, идентифаем в свое время пользовался, необходимости в нем здесь не вижу.

байтбластер же представляется более красивым решением чем компорт



Цитата(iosifk @ Aug 29 2011, 16:29) *
Здесь все довольно просто. Если надо отладить взаимодействие нескольких сигналов, то тогда можно их либо вывести на тестовые выводы, либо подключить встроенный лог. анализатор.
НО! Если дело идет не об отладке "сигналов", а скажем так, об отладке "алгоритмов", то тут никакой анализатор не поможет. А разработчик смотрит на коллегу-программиста, который по шагам отлаживает что-то в микроконтроллере и тихо воет от зависти. Ему тоже хочется отладки в стиле "микроконтроллер по шагам"... Вот об этом топикстартер и пытался написать.
Беда только в том, что по USB, через штатный бластер, это ему сделать вряд ли удастся... А про LPT я не пишу... Хотя у меня же проект под LPT для сканирования давно выложен на сайте.

все так и есть, читаю ваши статьи, ищу решение
Stewart Little
Цитата(Putnik @ Aug 29 2011, 17:01) *
... но USB-blaster быстрее, для большого количества тестов это существенно, есть и другие ньюансы

Через USB-Blaster, как указал уважаемый iosifk, это сделать весьма проблематично, т.к. Altera никому не дает описания API jtagserver'а.
Как вариант - можно попробовать действовать через System Console, но, тогда, неверное, придется пересмотреть подходы к проектированию (использовать Qsys, как минимум).
Еще можно попробовать работать с JTAG'ом не через альтеровский бластер, а использовать что-нибудь типа FT232H или FT2232H (MPSSE в режиме JTAG - на сайте у FTDI есть примеры).
iosifk
Цитата(Putnik @ Aug 29 2011, 17:16) *
через компорт через отдельные пины ПЛИС для JTAG отладка у нас отлично работает, но USB-blaster быстрее, для большого количества тестов это существенно, есть и другие ньюансы

....


Ну вот теперь и встанет вопрос: А как же написать собственную программу для отладки проекта, если API альтера не дает?
Если будете писать свой драйвер, то придется каждый раз после загрузки выключать драйвера Квартуса и ставить свои, а потом соотв. наоборот...
Putnik
Есть проект(микропроцессор), у него есть внутрисхемный отладчик, для отладки программ. А именно чтение/запись памяти, регистров, точки останова и прочее.
Доступ к этому отладчику(транспорт) осуществляется через жтаг (tck/tms/tdi/tdo сигналы), эти сигналы заводим на ПЛИС.
Cейчас это все работает, но через LPT жтаг (Xilinx parallel cable IV),.
Отладочная плата DE2-115, на ней так имеется возможность встроиться в jtag цепочку usb blaster'а через внешние выводы. то есть снаружи также доступны эти 4 сигнала, если их так же завести на жтаг, и переключить один джампер.
то уже становится возможным подключиться в внутрисхемному отладчику через usb blaster (при этом в цепочке видно 2 устройства: альтера и наш отладчик). Одно НО мы используем сигналы на плате, которые (часть из них) выходят из ПЛИС и мы их обратно заводим и нее.
Вопрос заключается в следующем:
Возможно ли внутри ПЛИС получить доступ к сигналам TMS/TCK/TDI/TDO с usb blaster'а?
Так понял это возможно сделать через внутреннюю мегафункцию virtual_jtag, так ли это?
Shivers
Цитата(Putnik @ Aug 29 2011, 17:42) *
Есть проект(микропроцессор), у него есть внутрисхемный отладчик, для отладки программ. А именно чтение/запись памяти, регистров, точки останова и прочее.
Доступ к этому отладчику(транспорт) осуществляется через жтаг (tck/tms/tdi/tdo сигналы), эти сигналы заводим на ПЛИС.

Свой процессор? Что то много вскорости отечественных процессоров народится, чувствую.
Могу только сказать, каким путем пошли некоторые другие "разработчики процессоров" в РФ - встроили E-Jtag для отладки, говорят что очень удобно для таких задач, хотя монстр тот еще. Для отладки в ПЛИС он по отдельному порту доступен, разумеется, а в силиконе - к общему тап контроллеру привязан.
XVR
Сделать в ПЛИСине 2й TAP JTAG'а и подсоединить его последовательно со встроенным JTAG'ов (в цепочку) невозможно. При таком включении вы не сможете прошить ПЛИС, т.к. до загрузки прошивки ваш самопальный TAP не будет работать, а значит и JTAG цепочка окажется разорванной.

Подключиться изнутри к JTAG пинам ПЛИС скорее всего можно. Я вижу 2 варианта (с Альтерой не работал, так что за их реализуемость не поручусь).

1. Объявить TMS/TCK/TDI/TDO пользовательскими ногами после конфигурирования, и посадить на них свой JTAG в прошивке. ПЛИС должна поддерживать возможность отдать JTAG ноги прошивке (Xilinx например умеет, насколько я помню)

2. Забрать ноги JTAG'а через virtual_jtag. Опять же, мегафункция должна это поддерживать. (Xilinx умеет это частично, TDO он не отдаст. Т.е. для ваших целей - не умеет)

_pv
Цитата(Stewart Little @ Aug 29 2011, 20:20) *
Через USB-Blaster, как указал уважаемый iosifk, это сделать весьма проблематично, т.к. Altera никому не дает описания API jtagserver'а.
Еще можно попробовать работать с JTAG'ом не через альтеровский бластер, а использовать что-нибудь типа FT232H или FT2232H (MPSSE в режиме JTAG - на сайте у FTDI есть примеры).

можно и с blaster'om самому работать, там же внутри тот же самый ft245 (fifo) и мелкая плисина которая прилетающие байты разбирает и соответственно ногами jtaga дергает. Протокол там не сказать чтобы сложный (описание тут), а то что лежит в папке quartus\drivers\usb-blaster\ - так просто переименованные драйвера D2XX от ftdi.

iosifk
Цитата(Putnik @ Aug 29 2011, 16:16) *
Вы все правильно поняли, нужно для отладки микропроцессорной системы в ПЛИС

Кстати, а Вы софт-симулятор для Вашего процессора сделали? Мне, например, это сильно помогло при отладке.
И что за процессор у Вас?
Putnik
Цитата(iosifk @ Aug 30 2011, 16:06) *
Кстати, а Вы софт-симулятор для Вашего процессора сделали? Мне, например, это сильно помогло при отладке.
И что за процессор у Вас?

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

Архитектур процессоров 2, собственной разработки, с уникальными системами команд.
Ссылка

Hoodwin
Так если у вас хватило терпения нарисовать целиком две архитектуры, то может быть и отладочный интерфейс к ним можно нарисовать свой собственный, и не привязывать его к альтеровскому JTAG'y? Ну и, кроме того, появляется возможность вообще управлять интерфейсом отладочного модуля, хоть JTAG, хоть SPI или 2-wire, а то и вовсе 1-wire протокол прикрутить для компактных вариантов корпусов типа QFN.
Putnik
Цитата(Hoodwin @ Aug 31 2011, 00:04) *
Так если у вас хватило терпения нарисовать целиком две архитектуры, то может быть и отладочный интерфейс к ним можно нарисовать свой собственный, и не привязывать его к альтеровскому JTAG'y? Ну и, кроме того, появляется возможность вообще управлять интерфейсом отладочного модуля, хоть JTAG, хоть SPI или 2-wire, а то и вовсе 1-wire протокол прикрутить для компактных вариантов корпусов типа QFN.

Дык, он и есть свой собственный, и в Хилых плисках так же работает.
Пока вот только не получается через usb-blaster его на специализированных ногах TMS/TCK/TDI/TDO запустить. Пробовал к sld_virtual_jtag подключаться нашим контроллером JTAG используя только эти 4 сигнала, бросив все остальные. не работает - в цепочке только альтера после прошивки, хотя в Technology Map и файлике с пинами видно что к ящику макрофункции заходят TMS/TCK/TDI/TDO с правильных ножек ПЛИС а выходят на мой блок. копаю дальше..
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.