Вот мой взгляд на мир ASIC (99% Verilog, 1% VHDL).
Мы прилагаем все усилия, чтобы исключить все предупреждения из наших файлов журнала, потому что в целом мы интерпретируем предупреждения как инструмент, говорящий нам, что нам не следует ожидать предсказуемых результатов.
Поскольку существует много типов инструментов, которые могут генерировать предупреждения (имитация / отладчик / линтер / синтез / проверка эквивалентности и т. Д.), Я сосредоточу это обсуждение на компиляторе симулятора предупреждений.
Мы анализируем предупреждения и подразделяем их на две основные группы: те, которые, по нашему мнению, не повлияют на результаты нашего моделирования, а другие, которые могут повлиять на результаты. Во-первых, мы используем параметры инструмента, чтобы явно включить как можно больше предупреждений. Для первой группы мы затем используем параметры инструмента, чтобы выборочно отключить эти предупреждающие сообщения. Для второй группы мы исправляем исходный код Verilog, чтобы исключить предупреждения, а затем добавляем предупреждения к ошибкам. Если в эти категории позднее будут введены какие-либо предупреждения, мы заставим себя исправить их, прежде чем нам будет разрешено имитировать.
Исключением из вышеприведенной методологии является сторонний IP, чей код Verilog мы не можем изменять.
Этот метод довольно хорошо работает для моделирования RTL, но становится намного сложнее, когда мы запускаем моделирование гейта с использованием обратно аннотированного SDF. Просто не хватает времени для анализа и устранения буквально миллионов предупреждений. Лучшее, что мы можем сделать, - это использовать скрипты (Perl) для разбора файлов журнала и классификации предупреждений.
Таким образом, мы делаем все возможное, чтобы устранить предупреждения, но это не всегда практично.