2

verilog 有哪些好的 linting 工具?我更喜欢可以配置为处理或忽略某些供应商特定原语(如 LUT、PLL 等)的。

我最近尝试了verilator-3.810,但是开箱即用它需要一些关于原语的帮助。

那么你使用什么(linting)工具来处理不那么严格的 verilog 语法?

4

4 回答 4

3

我从来没有使用过免费的 linting 工具,比如你提到的那个(verilator)。

我唯一的经验是使用(昂贵的)商业 linting 工具。到目前为止,我使用的每一个都要求我花时间自定义规则集以过滤掉我认为不重要的检查。例如,默认情况下,每个工具都会生成许多与信号命名约定相关的警告。由于这些绝不会影响 RTL 与门的合成方式或导致模拟问题,因此我选择禁用它们。

Spyglass 工具 (Atrenta) 似乎具有最广泛的功能,但也需要相当多的设置。我喜欢 Hal 工具 (Cadence),因为它很容易立即开始使用(但是,它也需要一些设置)。

于 2011-01-30T21:05:34.080 回答
2

根据我的经验,这通常是不值得的。我尝试过的任何东西都需要大量的初始设置,因为他们开箱即用地尝试检查所有内容。但是每家商店都有自己的编码标准——所以你要花大量时间来调味。然后,一旦您尝试集成公司其他部门的 IP 或代码(通常对好代码有不同的想法),linter 就会变得精神恍惚,所以您最终会说,wire im_happy = Verdi_happy & simulator_happy & synth_happy;

于 2011-01-30T18:45:17.173 回答
2

我也使用过 Spyglass,并且像工具说明的那样,它需要设置一个运行脚本来检查一个文件,并且默认检查会抱怨无用的东西,比如数组数据类型上的卸载位。Conformal 还将为其 RTL 警告输出相当多的详细信息,如果正式验证是您的流程的一部分,则无论如何您都必须排除某些模块。像 Spyglass 一样,它需要一些设置。

尽管可以访问这些工具,但我只在最后使用它们。在编码和验证期间,我使用打开了 lint 检查的 VCS,并修复了 Verdi 抱怨的任何问题。这捕获了很多,并且不需要使用任何配置/脚本文件。两者都不是免费的(或便宜的)。

于 2011-01-31T17:00:52.540 回答
1

Real Intent 的 Ascent Lint 非常好。它运行速度快且易于设置。

于 2012-06-02T14:30:13.777 回答