Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Quartus & SignalTap
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Среды разработки - обсуждаем САПРы
nice_vladi
Вопрос такой: можно ли каким-то образом вытащить в отладку сигналы модулей, не объявляя их выходными портами?

Директивы keep synthesis и noprune не помогают - сигналы в signaltap не отображаются.

Сейчас, для того, что бы посмотреть, допустим, какой-то счетчик в своем модуле я объявляю этот регистр как выходной, описываю порт. Затем тяну его в signaltap. Но это как-то некрасиво и неудобно.

Quartus 13-16, Verilog.
spectr
Используйте Virtual Pins
Burenkov Sergey
Посмотрите как настроен фильтр в Node Finder при добавлении сигналов. Я обычно использую готовый пресет "Signal Tap II: pre-synthesis" - все внутренние регистры тогда видно под такими же именами как в коде.
nice_vladi
Цитата(spectr @ Sep 6 2017, 06:30) *
Используйте Virtual Pins


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

Цитата(Burenkov Sergey @ Sep 6 2017, 06:54) *
Посмотрите как настроен фильтр в Node Finder при добавлении сигналов. Я обычно использую готовый пресет "Signal Tap II: pre-synthesis" - все внутренние регистры тогда видно под такими же именами как в коде.


Да, я знаю. Но дело в том, при добавлении через этот пресет, либо через "all entries" некоторые регистры не отображаются в окне сигналтапа. По-видимому, quartus их сокращает или сливает с другими. Я хочу как-то запретить ему это делать. Но директивы, о которых писал выше, не помогают. Возможно, я как-то не правильно их записываю в код.

Например:

reg [1:0] cnt/*keep synthesis*/;
или
reg [1:0] cnt(*noprune*);

Или же нужно еще что-то в настройках quartus подкрутить.

Это не слишком нужная и необходимая вещь. Можно и порты описывать. Но хочется красоты и изящества yeah.gif
Burenkov Sergey
Пробуйте
reg reg1 /* synthesis preserve */;
или

reg reg1 /synthesis noprune */;
_Anatoliy
А у меня было такое что в списке нужных сигналов не было, но по маске они находились wink.gif
nice_vladi
Цитата(Burenkov Sergey @ Sep 6 2017, 08:35) *
Пробуйте
reg reg1 /* synthesis preserve */;
или

reg reg1 /synthesis noprune */;


В течении дня попробую обязательно. Спасибо!


Цитата(_Anatoliy @ Sep 6 2017, 08:35) *
А у меня было такое что в списке нужных сигналов не было, но по маске они находились wink.gif


Да, я с каждым днем все больше и больше нюансов в использовании quartus'a замечаю. Что-то стараюсь записывать, что-то запоминать. Сейчас добрался до директив компилятора, осваиваю потихоньку)
Alex_vod
можно создать тестовые регистры(на глобальной тактовой) и на них завести нужные вам сигналы, а тестовые регистры вывести в Signal Tap
Alexxxxey
Цитата(nice_vladi @ Sep 6 2017, 10:29) *
А смысл? Все равно же регистры и веревки, которые хочешь посмотреть нужно объявлять портами и затем делать их виртуальными.



Да, я знаю. Но дело в том, при добавлении через этот пресет, либо через "all entries" некоторые регистры не отображаются в окне сигналтапа. По-видимому, quartus их сокращает или сливает с другими. Я хочу как-то запретить ему это делать. Но директивы, о которых писал выше, не помогают. Возможно, я как-то не правильно их записываю в код.

Например:

reg [1:0] cnt/*keep synthesis*/;
или
reg [1:0] cnt(*noprune*);

Или же нужно еще что-то в настройках quartus подкрутить.

Это не слишком нужная и необходимая вещь. Можно и порты описывать. Но хочется красоты и изящества yeah.gif


Кажется, атрибуты нужно задавать так:
Код
(*noprune*) reg [1:0] cnt;

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