We don’t allow questions seeking recommendations for software libraries, tutorials, tools, books, or other off-site resources. You can edit the question so it can be answered with facts and citations.
Closed 9 years ago.
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
我从未使用过免费的 linting 工具,例如您提到的(verilator)。
我唯一的经验是使用(昂贵的)商业 linting 工具。到目前为止,我使用的每一个规则都要求我花时间定制规则集,以过滤掉我认为不重要的检查。例如,默认情况下,每个工具都会生成许多与信号命名约定相关的警告。由于这些绝不会影响 RTL 合成门的方式或导致仿真问题,因此我选择禁用它们。
Spyglass 工具 (Atrenta) 似乎具有最广泛的功能,但也需要相当多的设置。我喜欢 Hal 工具(Cadence),因为它很容易立即开始使用(但是,它也需要一些设置)。
I have never used a free linting tool, such as the one you mentioned (verilator).
My only experience has been with (expensive) commercial linting tools. Thus far, every one I have used has required me to spend time to customize the rule-set to filter out checks which I consider unimportant. For example, by default, every tool generates many warnings related to signal naming conventions. Since these in no way affect how RTL is synthesized to gates or lead to simulation issues, I choose to disable them.
The Spyglass tool (Atrenta) seems to have the widest range of capabilities, but also requires quite a bit of set-up. I like the Hal tool (Cadence) because it is very easy to start using right away (but, it too requires some set-up).
根据我的经验,这通常不值得。我尝试过的任何事情都需要大量的初始设置,因为开箱即用的他们会尝试检查所有内容。但每个商店都有自己的编码标准 - 因此您需要花费大量时间来调味 linter 来品尝。然后,一旦您尝试集成公司其他部门的 IP 或代码(这些部门通常对好的代码有不同的想法),linter 就会进入心理状态,因此您最终会说,
wire im_happy = Verdi_happy &模拟器_快乐合成快乐;
In my experience, it's generally not worth it. Anything I've tried needs loads of initial setup because out-of-the-box they try to check everything. But each shop has it's own coding standards - so you spend loads of time seasoning the linter to taste. Then once you try to integrate IP or code from another section of the company (which generally have a different idea of nice code), the linter goes mental, so you end up saying,
wire im_happy = Verdi_happy & simulator_happy & synth_happy;
我还使用过 Spyglass,并且像 toolic 所指出的那样,它需要设置一个运行脚本来检查甚至一个文件,并且默认检查会抱怨无用的事情,例如数组数据类型上的卸载位。 Conformal 还将为其 RTL 警告输出相当多的详细信息,并且如果形式验证是流程的一部分,则无论如何您都必须排除某些模块。与望远镜一样,它需要一些设置。
尽管可以使用这些工具,但我只是在最后才使用它们。在编码和验证过程中,我使用打开 lint 检查的 VCS,并修复 Verdi 抱怨的任何问题。这捕获了很多并且不需要使用任何配置/脚本文件。两者都不是免费的(或便宜的)。
I also have used Spyglass and, like toolic indicated, it requires setting up a run script just to check even one file and the default checks complain about useless things like unloaded bits on array data types. Conformal will also output quite a bit of detail for its RTL warnings and you would have to have certain modules excluded anyway, if Formal Verification is part of your flow. Like Spyglass it requires a bit of setup.
Despite having access to these tools I only use them at the very end. During coding and validation I use VCS with lint checks turned on, and fix anything Verdi complains about. This catches quite a bit and does not require any configuration/script files to use. Neither are free(or cheap).
Real Intent 的 Ascent Lint 相当不错。它运行速度快并且易于设置。
Ascent Lint from Real Intent is pretty good. It runs fast and is easy to set up.