Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SignalTap: проблема с добавлением сигналов
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
RoadRunner
Всем доброго времени суток.
Столкнулся с тем, что не получается добавить произвольную шину в SignalTap. Раньше все исследуемые сигналы на пины выводил - проблем не было, они всегда отображались валидными в SignalTap.
А тут попробовал добавить внутреннюю шину: открываю SignalTap, открываю Node Finder, ставлю фильтр SignalTap II:pre-synthesis, ищу в списке нужные мне шины, добавляю, а часть из них красные.
Или еще другая фишка: после добавления красных шин нет, запускаю компиляцию, после компиляции некоторые шины становятся красными.
При добавлении через схематик вообще финиш: после добавления все шины синие, значит вроде как они в Post-Fit Netlist входят ( т.е. в ходе оптимизации они не исчезли), после компиляции - все красные.

Не пойму, то ли я чего-то капитально не догоняю, то ли SignalTap фортели выкидывает?

З.Ы. Среда Quartus 11, инкрементная компиляция отключена.
Stewart Little
Цитата(RoadRunner @ Aug 24 2012, 11:05) *
З.Ы. Среда Quartus 11, инкрементная компиляция отключена.

Инкрементальную компиляцию включите обязательно!!!
RoadRunner
Цитата(Stewart Little @ Aug 24 2012, 12:17) *
Инкрементальную компиляцию включите обязательно!!!

Пробовал уже. Изменений я не увидел, во всяком случае с точки зрения вышеописанной проблемы. Может там еще что-то надо сделать, там нетлист поменять или еще что.. я просто не использовал никогда инкрементную компиляцию, знания по ней у меня чисто теоретические.
Soflover
Цитата(RoadRunner @ Aug 24 2012, 11:05) *
Столкнулся с тем, что не получается добавить произвольную шину в SignalTap. Раньше все исследуемые сигналы на пины выводил - проблем не было, они всегда отображались валидными в SignalTap.
А тут попробовал добавить внутреннюю шину: открываю SignalTap, открываю Node Finder, ставлю фильтр SignalTap II:pre-synthesis, ищу в списке нужные мне шины, добавляю, а часть из них красные.
Или еще другая фишка: после добавления красных шин нет, запускаю компиляцию, после компиляции некоторые шины становятся красными.


На ум приходят два варианта:
1. Шина, по каким-то причинам никуда дальше не идет
2. Шина не идет на триггер и замешана с комбинационной логикой.

Попробуйте поиграться с аттрибутом noprune.
Stewart Little
Цитата(RoadRunner @ Aug 24 2012, 12:57) *
я просто не использовал никогда инкрементную компиляцию, знания по ней у меня чисто теоретические.

Настоятельно рекомендую почитать квартусовский мануал по инкрементальной компиляции и по сигналтапу.
Вкратце - нужно сделать, чтобы Ваш проект был бы одной партицией, а сигналтап - другой партицией. При инкрементальной компиляции изменения в одной из партиций не будут оказывать влияния на другие партиции (т.е. грубо говоря, при очередной компиляции изменения в размещении и разводке будут осуществляться только для измененной партиции, а все остальные останутся неизменными).
В Вашем случае, после изменения настроек сигналтапа перекомпилируется и переразводится весь проект целиком. Соответстенно, имена узлов могут измениться. Со всеми вытекающими...
RoadRunner
Цитата(Stewart Little @ Aug 26 2012, 12:18) *
Настоятельно рекомендую почитать квартусовский мануал по инкрементальной компиляции и по сигналтапу.
Вкратце - нужно сделать, чтобы Ваш проект был бы одной партицией, а сигналтап - другой партицией. При инкрементальной компиляции изменения в одной из партиций не будут оказывать влияния на другие партиции (т.е. грубо говоря, при очередной компиляции изменения в размещении и разводке будут осуществляться только для измененной партиции, а все остальные останутся неизменными).
В Вашем случае, после изменения настроек сигналтапа перекомпилируется и переразводится весь проект целиком. Соответстенно, имена узлов могут измениться. Со всеми вытекающими...

Тут проблема в том, что нетлист у проекта нужно будет делать Post-Fit (иначе он все равно что-нибудь переразведет). Я тогда внутренних шин не увижу, а мне их то и надо отлаживать. Мне по большому счету не так важно, что он переразведет все, больше важно чтобы определенные внутренние шины стабильно появлялись в сигналтапе валидными.

Попробовал вывести эти шины на пины, но не выводить эти пины наружу - не работает, он их убирает уже при анализе. А выводить наружу - это просто финиш, проект превращается в паутину.

З.Ы. Тут конечно я сам напортачил - надо было сначала внутренние блоки отдельно отладить, потом уж переходить к внешним (тогда выводить наружу ничего не понадобилось бы). Но все равно иногда нужно получить доступ к внутренним шинам. Просто не в таком объеме, как сейчас))
_Anatoliy
Цитата(RoadRunner @ Aug 27 2012, 10:08) *
Попробовал вывести эти шины на пины, но не выводить эти пины наружу - не работает, он их убирает уже при анализе. А выводить наружу - это просто финиш, проект превращается в паутину.

Вам же советовали использовать attribute noprune для интересующих сигналов.Ничего наружу выводить не нужно.
RoadRunner
Цитата(_Anatoliy @ Aug 27 2012, 12:57) *
Вам же советовали использовать attribute noprune для интересующих сигналов.Ничего наружу выводить не нужно.

Я не все в HDL пишу. Со схематиком, полагаю, такое не прокатит.

Странно то, что при добавлении в сигналтап сигналы валидные, а после полной перекомпиляции вдруг невалидные. Он же все переразводит - обязан завести эти сигналы в сигналтап. Хрен с ним, что проект изменится, сигналы то должны остаться.
_Anatoliy
Цитата(RoadRunner @ Aug 27 2012, 12:31) *
Я не все в HDL пишу. Со схематиком, полагаю, такое не прокатит.

В схематике давно не работаю,но попробуйте так:primitives->other->param. Но сам я так не пробовал,может и не из той оперы...
RoadRunner
Цитата(_Anatoliy @ Aug 27 2012, 14:39) *
В схематике давно не работаю,но попробуйте так:primitives->other->param. Но сам я так не пробовал,может и не из той оперы...

По-моему, это просто для задания констант, там ширины шин и т.п. Нужно то атрибут для синтеза задать. Могу ошибаться, но где-то вроде в доке натыкался на то, что нельзя атрибуты для синтеза на схематике задать. Могу ошибаться, конечно (рад бы:-))
Konst_777
Цитата(RoadRunner @ Aug 27 2012, 13:31) *
...Со схематиком, полагаю, такое не прокатит...

"Со схематиком" можно, с помощью MegaWizard Plug-In Manager добавить SignalTap II Logic Analyzer прямо в схему:
  • в контексном меню выбираете "Insert Symbol";
  • в диалоговом окне "Symbol" нажимаете кнопку "MegaWizard Plug-In Manager...";
  • на "MegaWizard Plug-In Manager [page 1]" нажимаете "Next>"
  • на "MegaWizard Plug-In Manager [page 2a]" раскрываете ветку "JTAG-accessible extensions" и в ней выбираете "SignalTap II Logic Analyzer";
  • конфигурируете SignalTap II Logic Analyzer и помещаете его символ в схему;
  • подключаете нужные сигналы к SignalTap II Logic Analyzer;
  • компилируете проект;
  • для создания *.stp в Quartus в меню "File" выбираете подменю "Create/Update", а в этом подменю "Create SignalTap II File from Design Instance(s)";
  • подключаете *.stp к проекту ("Assignments" -> "Settings" -> "SignalTap II Logic Analyzer" -> "Enable SignalTap II Logic Analyzer")

Достоинство такого подхода - можно вытащить любой сигнал с любого уровня вложенности схемы.
RoadRunner
Цитата(Konst_777 @ Aug 27 2012, 17:40) *
"Со схематиком" можно, с помощью MegaWizard Plug-In Manager добавить SignalTap II Logic Analyzer прямо в схему

Достоинство такого подхода - можно вытащить любой сигнал с любого уровня вложенности схемы.


Кстати действительно хороший вариант. Я вроде знал про такой вариант сигналтапа, но никогда не использовал, как начал с обычным, так и поехал..))

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