All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@git.madduck.net.
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
1 ===============================================================================
2 ALE Verilog/SystemVerilog Integration *ale-verilog-options*
5 ===============================================================================
6 ALE can use seven different linters for Verilog HDL:
9 Using `hdl_checker --lsp`
12 Using `iverilog -t null -Wall`
15 Using `slang -Weverything`
18 Using `verilator --lint-only -Wall`
21 Using `vlog -quiet -lint`
27 Using `yosys -Q -T -p 'read_verilog'`
29 By default, both 'verilog' and 'systemverilog' filetypes are checked.
31 You can limit 'systemverilog' files to be checked using only 'verilator' by
32 defining 'g:ale_linters' variable: >
34 au FileType systemverilog
35 \ let g:ale_linters = {'systemverilog' : ['verilator'],}
38 ===============================================================================
41 Linters/compilers that utilize a "work" directory for analyzing designs- such
42 as ModelSim and Vivado- can be passed the location of these directories as
43 part of their respective option strings listed below. This is useful for
44 holistic analysis of a file (e.g. a design with components, packages, or other
45 code defined external to the current file as part of a larger project) or
46 when wanting to simply pass an alternative location for the auto-generated
47 work directories (such as '/tmp') so as to not muddle the current directory.
48 Since these type of linters often use this work directory for holding compiled
49 design data as part of a single build process, they sometimes cannot handle
50 the frequent, asynchronous application launches when linting while text is
51 changing. This can happen in the form of hangs or crashes. To help prevent
52 this when using these linters, it may help to run linting less frequently; for
53 example, only when a file is saved.
55 HDL Checker is an alternative for some of the issues described above. It wraps
56 around ghdl, Vivado and ModelSim/Questa and, when using the latter, it can
57 handle mixed language (VHDL, Verilog, SystemVerilog) designs.
59 ===============================================================================
60 hdl-checker *ale-verilog-hdl-checker*
62 See |ale-vhdl-hdl-checker|
65 ===============================================================================
66 iverilog *ale-verilog-iverilog*
70 ===============================================================================
71 slang *ale-verilog-slang*
73 *ale-options.verilog_slang_option*
74 *g:ale_verilog_slang_option*
75 *b:ale_verilog_slang_options*
77 g:ale_verilog_slang_option
81 This variable can be changed to modify 'slang' command arguments.
84 ===============================================================================
85 verilator *ale-verilog-verilator*
87 *ale-options.verilog_verilator_options*
88 *g:ale_verilog_verilator_options*
89 *b:ale_verilog_verilator_options*
90 verilog_verilator_options
91 g:ale_verilog_verilator_options
95 This variable can be changed to modify 'verilator' command arguments.
97 For example `'-sv --default-language "1800-2012"'` if you want to enable
98 SystemVerilog parsing and select the 2012 version of the language.
101 ===============================================================================
102 vlog *ale-verilog-vlog*
104 *ale-options.verilog_vlog_executable*
105 *g:ale_verilog_vlog_executable*
106 *b:ale_verilog_vlog_executable*
107 verilog_vlog_executable
108 g:ale_verilog_vlog_executable
112 This variable can be changed to the path to the 'vlog' executable.
114 *ale-options.verilog_vlog_options*
115 *g:ale_verilog_vlog_options*
116 *b:ale_verilog_vlog_options*
118 g:ale_verilog_vlog_options
120 Default: `'-quiet -lint'`
122 This variable can be changed to modify the flags/options passed to 'vlog'.
125 ===============================================================================
126 xvlog *ale-verilog-xvlog*
128 *ale-options.verilog_xvlog_executable*
129 *g:ale_verilog_xvlog_executable*
130 *b:ale_verilog_xvlog_executable*
131 verilog_xvlog_executable
132 g:ale_verilog_xvlog_executable
136 This variable can be changed to the path to the 'xvlog' executable.
138 *ale-options.verilog_xvlog_options*
139 *g:ale_verilog_xvlog_options*
140 *b:ale_verilog_xvlog_options*
141 verilog_xvlog_options
142 g:ale_verilog_xvlog_options
146 This variable can be changed to modify the flags/options passed to 'xvlog'.
149 ===============================================================================
150 yosys *ale-verilog-yosys*
152 *ale-options.verilog_yosys_executable*
153 *g:ale_verilog_yosys_executable*
154 *b:ale_verilog_yosys_executable*
155 verilog_yosys_executable
156 g:ale_verilog_yosys_executable
160 This variable can be changed to the path to the 'yosys' executable.
162 *ale-options.verilog_yosys_options*
163 *g:ale_verilog_yosys_options*
164 *b:ale_verilog_yosys_options*
165 verilog_yosys_options
166 g:ale_verilog_yosys_options
168 Default: `'-Q -T -p ''read_verilog %s'''`
170 This variable can be changed to modify the flags/options passed to 'yosys'.
171 By default, Yosys is an interactive program. To obtain linting functionality,
172 the `'read_verilog'` command is used.
175 ===============================================================================
176 vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: