X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/0ee596c5c5e11fc79598407eaf22f83d279f7e9e..5a4872f466ebd76ddd532bdf2798554421c53df4:/.vim/bundle/ale/doc/ale-verilog.txt?ds=sidebyside diff --git a/.vim/bundle/ale/doc/ale-verilog.txt b/.vim/bundle/ale/doc/ale-verilog.txt new file mode 100644 index 00000000..481b51cd --- /dev/null +++ b/.vim/bundle/ale/doc/ale-verilog.txt @@ -0,0 +1,176 @@ +=============================================================================== +ALE Verilog/SystemVerilog Integration *ale-verilog-options* + + +=============================================================================== +ALE can use seven different linters for Verilog HDL: + + HDL Checker + Using `hdl_checker --lsp` + + iverilog: + Using `iverilog -t null -Wall` + + slang: + Using `slang -Weverything` + + verilator + Using `verilator --lint-only -Wall` + + ModelSim/Questa + Using `vlog -quiet -lint` + + Vivado + Using `xvlog` + + Yosys + Using `yosys -Q -T -p 'read_verilog'` + +By default, both 'verilog' and 'systemverilog' filetypes are checked. + +You can limit 'systemverilog' files to be checked using only 'verilator' by +defining 'g:ale_linters' variable: > + + au FileType systemverilog + \ let g:ale_linters = {'systemverilog' : ['verilator'],} +< + +=============================================================================== +General notes + +Linters/compilers that utilize a "work" directory for analyzing designs- such +as ModelSim and Vivado- can be passed the location of these directories as +part of their respective option strings listed below. This is useful for +holistic analysis of a file (e.g. a design with components, packages, or other +code defined external to the current file as part of a larger project) or +when wanting to simply pass an alternative location for the auto-generated +work directories (such as '/tmp') so as to not muddle the current directory. +Since these type of linters often use this work directory for holding compiled +design data as part of a single build process, they sometimes cannot handle +the frequent, asynchronous application launches when linting while text is +changing. This can happen in the form of hangs or crashes. To help prevent +this when using these linters, it may help to run linting less frequently; for +example, only when a file is saved. + +HDL Checker is an alternative for some of the issues described above. It wraps +around ghdl, Vivado and ModelSim/Questa and, when using the latter, it can +handle mixed language (VHDL, Verilog, SystemVerilog) designs. + +=============================================================================== +hdl-checker *ale-verilog-hdl-checker* + +See |ale-vhdl-hdl-checker| + + +=============================================================================== +iverilog *ale-verilog-iverilog* + + No additional options + +=============================================================================== +slang *ale-verilog-slang* + + *ale-options.verilog_slang_option* + *g:ale_verilog_slang_option* + *b:ale_verilog_slang_options* +verilog_slang_option +g:ale_verilog_slang_option + Type: |String| + Default: `''` + + This variable can be changed to modify 'slang' command arguments. + + +=============================================================================== +verilator *ale-verilog-verilator* + + *ale-options.verilog_verilator_options* + *g:ale_verilog_verilator_options* + *b:ale_verilog_verilator_options* +verilog_verilator_options +g:ale_verilog_verilator_options + Type: |String| + Default: `''` + + This variable can be changed to modify 'verilator' command arguments. + + For example `'-sv --default-language "1800-2012"'` if you want to enable + SystemVerilog parsing and select the 2012 version of the language. + + +=============================================================================== +vlog *ale-verilog-vlog* + + *ale-options.verilog_vlog_executable* + *g:ale_verilog_vlog_executable* + *b:ale_verilog_vlog_executable* +verilog_vlog_executable +g:ale_verilog_vlog_executable + Type: |String| + Default: `'vlog'` + + This variable can be changed to the path to the 'vlog' executable. + + *ale-options.verilog_vlog_options* + *g:ale_verilog_vlog_options* + *b:ale_verilog_vlog_options* +verilog_vlog_options +g:ale_verilog_vlog_options + Type: |String| + Default: `'-quiet -lint'` + + This variable can be changed to modify the flags/options passed to 'vlog'. + + +=============================================================================== +xvlog *ale-verilog-xvlog* + + *ale-options.verilog_xvlog_executable* + *g:ale_verilog_xvlog_executable* + *b:ale_verilog_xvlog_executable* +verilog_xvlog_executable +g:ale_verilog_xvlog_executable + Type: |String| + Default: `'xvlog'` + + This variable can be changed to the path to the 'xvlog' executable. + + *ale-options.verilog_xvlog_options* + *g:ale_verilog_xvlog_options* + *b:ale_verilog_xvlog_options* +verilog_xvlog_options +g:ale_verilog_xvlog_options + Type: |String| + Default: `''` + + This variable can be changed to modify the flags/options passed to 'xvlog'. + + +=============================================================================== +yosys *ale-verilog-yosys* + + *ale-options.verilog_yosys_executable* + *g:ale_verilog_yosys_executable* + *b:ale_verilog_yosys_executable* +verilog_yosys_executable +g:ale_verilog_yosys_executable + Type: |String| + Default: `'yosys'` + + This variable can be changed to the path to the 'yosys' executable. + + *ale-options.verilog_yosys_options* + *g:ale_verilog_yosys_options* + *b:ale_verilog_yosys_options* +verilog_yosys_options +g:ale_verilog_yosys_options + Type: |String| + Default: `'-Q -T -p ''read_verilog %s'''` + + This variable can be changed to modify the flags/options passed to 'yosys'. + By default, Yosys is an interactive program. To obtain linting functionality, + the `'read_verilog'` command is used. + + +=============================================================================== + vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: