这是我对 ASIC 世界的看法(99% Verilog,1% VHDL)。
我们努力消除日志文件中的所有警告,因为一般来说,我们将警告解释为告诉我们不应期待可预测结果的工具。
由于有许多类型的工具可以生成警告(模拟/调试器/linter/synthesis/equivalence-checking 等),因此我将重点讨论模拟器编译器警告。
我们分析警告并将它们分为两大类:我们认为不会影响模拟结果的警告,以及可能影响结果的其他警告。首先,我们使用工具的选项来显式启用尽可能多的警告。对于第一组,我们然后使用工具的选项来选择性地禁用这些警告消息。对于第二组,我们修复 Verilog 源代码以消除警告,然后将警告提升为错误。如果稍后在这些类别中引入任何警告,我们会在允许模拟之前强制自己修复它们。
上述方法的一个例外是第三方 IP,我们不允许修改其 Verilog 代码。
这种方法在 RTL 模拟中效果很好,但是当我们使用反向注释 SDF 运行门模拟时,它变得更加困难。根本没有足够的时间来分析和消除数以百万计的警告。我们能做的最好的事情是使用脚本(Perl)来解析日志文件并对警告进行分类。
总之,我们尽最大努力消除警告,但这样做并不总是可行的。