Перейти к содержанию
    

Vivado и waivers: кто-нибудь пользуется и рабочая/полезная ли штука?

Всем привет!

 

Собственно вопрос в сабже. Что-то у меня как-то пока не очень успешный опыт. Борюсь с предупреждениями (не люблю, когда много их болтается - из-за этого можно пропустить реально важное сообщение) - какие по моей вине, стараюсь решить, какие не по делу, добавляю в фильтр подавления. Но это работает с Messages. А вот DRC, Metodology и CDC репорты просто так фильтровать нельзя. Но там есть для этого механизм waivers, с помощью которого, как я понял, можно подавлять нежелательную ругань. Только вот в реале что-то не выходит. Вроде всё делаю правильно - как в доке пишут, и создаются эти waiver'ы. Только вот толку нет - всё равно ругань присутствует. И не сказать, что они совсем не работают - когда запускаю репорт с флагом 'Display only waived violations', оно показывает ровно эти же нарушения помеченные, как waived.

 

Возможно, просто готовить не умею, но чтение доков и гугление не помогло. Прошу помощи клуба.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Немного разобрался в вопросе. На самом деле всё работает, причина, почему у меня сложилось ошибочное впечатление, в том, что там этих нарушений под пару сотен, а сообщения там многословные с длиннющими путями иерархии, отличающиеся местами одной буквой, вот я и не различил, что там реально разные нарушения оно репортит. А в поскольку report_drc выдаёт ограниченное количество нарушений (20 в моём случае), то только это количество у меня и попало в waiver'ы.

 

Отсюда возник следующий вопрос, на который ответа я нигде не нашёл: как снять это дурацкое ограничение - чтобы выдавал все нарушения? Для сообщений в Message можно задавать через set_msg_config. А для DRC, Metodology, CDC где это рулится?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

могу только подсказать по non-project mode который использую.

в своё время делал шпаргалку для себя: http://idoka.ru/xilinx-vivado-cli-tips-and-tricks/

(проверялось в вивадо 2016)

если вкратце, то нужны эти переменные среды и команды:

 

set_msg_config

set_param messaging.defaultLimit

set_property SEVERITY {Warning} [get_drc_checks ...]
set_property is_enabled false [get_drc_checks ...]
 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за ответ!

 

Да, эти команды и использовал. Там проблема в том, что вивада показывает только 20 первых сообщений. А всего их может быть сотни и тысячи. И если хочется подавить конкретные сообщения, а не сразу целый класс (весь класс-то давить не очень разумно - ведь можно пропустить будущие, которые по делу), то нужно иметь их все. Чаще всего они одни и те же - текст одинаковый, отличается индексом сигнала:

 

bla-bla slon[0]

bla-bla slon[1]

...

bla-bla slon[n]

 

и это легко бы решалось с помощью масок. К сожалению, вивада не поддерживает маски (на удивление убогая система управления сообщениями), поэтому нужно все их перечислять. И вот тут следующая проблема, что она их выдаёт по 20 штук. Если с обычными сообщениями синтезатора ещё как-то прокатывает через установку лимитов, то DRC/Methodolgy этому не подчиняется. В итоге пришлось по 20 штук от DRC выцеплять.

 

Ну, и подавляются эти сообщения не через set_msg_config, а через create_waiver. Т.е. это немного другая, несколько ортогональная, система.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...