You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After installing, make sure that it is available on the $PATH. E.g for verilator:
$ which verilator
/usr/bin/verilator
Configuration
The simplest way to configure different linters is through M-x customize-group RET verilog-ext-flycheck.
You can add extra directories and files to search for additional
modules/classes through some of these variables. For example, to add
the UVM sources for slang:
Some linters will also look for modules/classes in the list
of current open Verilog files and directories if set. To enable this
functionality:
(setq verilog-ext-flycheck-use-open-buffers t)
Other linters, such as verible, will only parse current file without trying
to find instance module definitions in other files. verible offers
the option of configuring rules through customization of variable
verilog-ext-flycheck-verible-rules, according to its
syntax.
For example, the following snippet disables the lint checks for rule
line-length and enables checks for parameter-type-name-style:
Sometimes there might be some compilation order issues or missing arguments
for some specific cases. This can be overcome by adding a commands.f command
file in the project root for linters that support it.
verilog-ext-flycheck-mode is bound by default to C-c C-f.
If run with prefix-argC-u C-c C-f it allows selection of current active linter. This is particularly useful if switching between RTL and Verification code
Verilator is quite effective for RTL code but does not support SystemVerilog verification constructs
Verible can be very useful for one-file linting for Verification files, but might be less efective than Verilator for RTL