nice_vladi 2 6 сентября, 2017 Опубликовано 6 сентября, 2017 · Жалоба Вопрос такой: можно ли каким-то образом вытащить в отладку сигналы модулей, не объявляя их выходными портами? Директивы keep synthesis и noprune не помогают - сигналы в signaltap не отображаются. Сейчас, для того, что бы посмотреть, допустим, какой-то счетчик в своем модуле я объявляю этот регистр как выходной, описываю порт. Затем тяну его в signaltap. Но это как-то некрасиво и неудобно. Quartus 13-16, Verilog. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
spectr 0 6 сентября, 2017 Опубликовано 6 сентября, 2017 · Жалоба Используйте Virtual Pins Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Burenkov 0 6 сентября, 2017 Опубликовано 6 сентября, 2017 · Жалоба Посмотрите как настроен фильтр в Node Finder при добавлении сигналов. Я обычно использую готовый пресет "Signal Tap II: pre-synthesis" - все внутренние регистры тогда видно под такими же именами как в коде. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nice_vladi 2 6 сентября, 2017 Опубликовано 6 сентября, 2017 · Жалоба Используйте Virtual Pins А смысл? Все равно же регистры и веревки, которые хочешь посмотреть нужно объявлять портами и затем делать их виртуальными. Посмотрите как настроен фильтр в Node Finder при добавлении сигналов. Я обычно использую готовый пресет "Signal Tap II: pre-synthesis" - все внутренние регистры тогда видно под такими же именами как в коде. Да, я знаю. Но дело в том, при добавлении через этот пресет, либо через "all entries" некоторые регистры не отображаются в окне сигналтапа. По-видимому, quartus их сокращает или сливает с другими. Я хочу как-то запретить ему это делать. Но директивы, о которых писал выше, не помогают. Возможно, я как-то не правильно их записываю в код. Например: reg [1:0] cnt/*keep synthesis*/; или reg [1:0] cnt(*noprune*); Или же нужно еще что-то в настройках quartus подкрутить. Это не слишком нужная и необходимая вещь. Можно и порты описывать. Но хочется красоты и изящества :yeah: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Burenkov 0 6 сентября, 2017 Опубликовано 6 сентября, 2017 · Жалоба Пробуйте reg reg1 /* synthesis preserve */; или reg reg1 /synthesis noprune */; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 6 сентября, 2017 Опубликовано 6 сентября, 2017 · Жалоба А у меня было такое что в списке нужных сигналов не было, но по маске они находились ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nice_vladi 2 6 сентября, 2017 Опубликовано 6 сентября, 2017 · Жалоба Пробуйте reg reg1 /* synthesis preserve */; или reg reg1 /synthesis noprune */; В течении дня попробую обязательно. Спасибо! А у меня было такое что в списке нужных сигналов не было, но по маске они находились ;) Да, я с каждым днем все больше и больше нюансов в использовании quartus'a замечаю. Что-то стараюсь записывать, что-то запоминать. Сейчас добрался до директив компилятора, осваиваю потихоньку) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex_vod 0 6 сентября, 2017 Опубликовано 6 сентября, 2017 · Жалоба можно создать тестовые регистры(на глобальной тактовой) и на них завести нужные вам сигналы, а тестовые регистры вывести в Signal Tap Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexxxxey 0 24 сентября, 2017 Опубликовано 24 сентября, 2017 · Жалоба А смысл? Все равно же регистры и веревки, которые хочешь посмотреть нужно объявлять портами и затем делать их виртуальными. Да, я знаю. Но дело в том, при добавлении через этот пресет, либо через "all entries" некоторые регистры не отображаются в окне сигналтапа. По-видимому, quartus их сокращает или сливает с другими. Я хочу как-то запретить ему это делать. Но директивы, о которых писал выше, не помогают. Возможно, я как-то не правильно их записываю в код. Например: reg [1:0] cnt/*keep synthesis*/; или reg [1:0] cnt(*noprune*); Или же нужно еще что-то в настройках quartus подкрутить. Это не слишком нужная и необходимая вещь. Можно и порты описывать. Но хочется красоты и изящества :yeah: Кажется, атрибуты нужно задавать так: (*noprune*) reg [1:0] cnt; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться