verilog有哪些好的linting工具?我更喜欢可以配置为处理或忽略某些特定于供应商的原语(如LUT,PLL等)。
我最近尝试过verilator-3.810,但开箱即用它需要对原语进行一些帮助。
那么你使用什么(linting)工具来处理verilog不那么严格的语法?
答案 0 :(得分:3)
我从未使用过免费的linting工具,例如你提到的那个(verilator)。
我唯一的经验是(昂贵的)商业linting工具。到目前为止,我使用过的每一个都要求我花时间自定义规则集来过滤掉我认为不重要的检查。例如,默认情况下,每个工具都会生成许多与信号命名约定相关的警告。由于这些决不会影响RTL如何合成到门或导致模拟问题,因此我选择禁用它们。
Spyglass工具(Atrenta)似乎具有最广泛的功能,但也需要相当多的设置。我喜欢Hal工具(Cadence),因为它很容易立即开始使用(但是,它也需要一些设置)。
答案 1 :(得分:2)
根据我的经验,这通常是不值得的。我尝试过的任何东西都需要加载初始设置,因为开箱即用他们会尝试检查所有内容。但是每家商店都有自己的编码标准 - 所以你要花很多时间来品尝香槟。然后,一旦你尝试整合公司另一部分的IP或代码(通常对不错的代码有不同的想法),那么linter就是精神上的,所以你最终会说,wire im_happy = Verdi_happy & simulator_happy & synth_happy;
答案 2 :(得分:2)
我也使用过Spyglass,就像工具所示,它需要设置一个运行脚本来检查一个文件,默认检查会抱怨无用的东西,比如数组数据类型上的卸载位。 Conformal还会为其RTL警告输出相当多的细节,如果正式验证是您的流程的一部分,您将不得不排除某些模块。像Spyglass一样需要一些设置。
尽管可以访问这些工具,但我只在最后使用它们。在编码和验证期间,我使用VCS打开lint检查,并修复Verdi抱怨的任何内容。这会占用很多,并且不需要使用任何配置/脚本文件。两者都不是免费的(或便宜的)。
答案 3 :(得分:1)
来自Real Intent的Ascent Lint相当不错。它运行速度快,易于设置。