summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorJohn Gentile <johncgentile17@gmail.com>2019-01-27 04:46:33 -0500
committerw0rp <w0rp@users.noreply.github.com>2019-01-27 09:46:33 +0000
commitb8bf7b220d0f7ab461ed830b125f9dbc42a7836a (patch)
tree0f4b112c5c082b156ca8393d3242cb3fe762bfd8 /doc
parent91c1fc3bb396dfcb495c484db7d39193df8826eb (diff)
downloadale-b8bf7b220d0f7ab461ed830b125f9dbc42a7836a.zip
Add VHDL Support & Newer Verilog Linters (#2229)
* Added VHDL file support with ghdl compiler * Update ghdl.vim * Create vcom.vim * Create xvhdl.vim * Update xvlog.vim * Added documentation for VHDL & Verilog linters * Added tests to VHDL & Verilog linters
Diffstat (limited to 'doc')
-rw-r--r--doc/ale-verilog.txt61
-rw-r--r--doc/ale-vhdl.txt92
-rw-r--r--doc/ale.txt9
3 files changed, 160 insertions, 2 deletions
diff --git a/doc/ale-verilog.txt b/doc/ale-verilog.txt
index 2b8ce5e2..94b820b8 100644
--- a/doc/ale-verilog.txt
+++ b/doc/ale-verilog.txt
@@ -3,7 +3,7 @@ ALE Verilog/SystemVerilog Integration *ale-verilog-options*
===============================================================================
-ALE can use two different linters for Verilog HDL:
+ALE can use four different linters for Verilog HDL:
iverilog:
Using `iverilog -t null -Wall`
@@ -11,6 +11,12 @@ ALE can use two different linters for Verilog HDL:
verilator
Using `verilator --lint-only -Wall`
+ ModelSim/Questa
+ Using `vlog -quiet -lint`
+
+ Vivado
+ Using `xvlog`
+
By default, both 'verilog' and 'systemverilog' filetypes are checked.
You can limit 'systemverilog' files to be checked using only 'verilator' by
@@ -20,6 +26,20 @@ defining 'g:ale_linters' variable:
\ let g:ale_linters = {'systemverilog' : ['verilator'],}
<
+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.
+
===============================================================================
iverilog *ale-verilog-iverilog*
@@ -39,5 +59,44 @@ g:ale_verilog_verilator_options *g:ale_verilog_verilator_options*
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*
+
+g:ale_verilog_vlog_executable *g:ale_verilog_vlog_executable*
+ *b:ale_verilog_vlog_executable*
+ Type: |String|
+ Default: `'vlog'`
+
+ This variable can be changed to the path to the 'vlog' executable.
+
+
+g:ale_verilog_vlog_options *g:ale_verilog_vlog_options*
+ *b: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*
+
+g:ale_verilog_xvlog_executable *g:ale_verilog_xvlog_executable*
+ *b:ale_verilog_xvlog_executable*
+ Type: |String|
+ Default: `'xvlog'`
+
+ This variable can be changed to the path to the 'xvlog' executable.
+
+
+g:ale_verilog_xvlog_options *g:ale_verilog_xvlog_options*
+ *b:ale_verilog_xvlog_options*
+ Type: |String|
+ Default: `''`
+
+ This variable can be changed to modify the flags/options passed to 'xvlog'.
+
+
===============================================================================
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
diff --git a/doc/ale-vhdl.txt b/doc/ale-vhdl.txt
new file mode 100644
index 00000000..3fea947d
--- /dev/null
+++ b/doc/ale-vhdl.txt
@@ -0,0 +1,92 @@
+===============================================================================
+ALE VHDL Integration *ale-vhdl-options*
+
+
+===============================================================================
+ALE can use three different linters for VHDL:
+
+ iverilog:
+ Using `iverilog -t null -Wall`
+
+ ModelSim/Questa
+ Using `vcom -2008 -quiet -lint`
+
+ Vivado
+ Using `xvhdl --2008`
+
+Note all linters default to VHDL-2008 support. This, and other options, can be
+changed with each linter's respective option variable.
+
+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.
+
+===============================================================================
+ghdl *ale-vhdl-ghdl*
+
+g:ale_vhdl_ghdl_executable *g:ale_vhdl_ghdl_executable*
+ *b:ale_vhdl_ghdl_executable*
+ Type: |String|
+ Default: `'ghdl'`
+
+ This variable can be changed to the path to the 'ghdl' executable.
+
+
+g:ale_vhdl_ghdl_options *g:ale_vhdl_ghdl_options*
+ *b:ale_vhdl_ghdl_options*
+ Type: |String|
+ Default: `'--std=08'`
+
+ This variable can be changed to modify the flags/options passed to 'ghdl'.
+
+
+===============================================================================
+vcom *ale-vhdl-vcom*
+
+g:ale_vhdl_vcom_executable *g:ale_vhdl_vcom_executable*
+ *b:ale_vhdl_vcom_executable*
+ Type: |String|
+ Default: `'vcom'`
+
+ This variable can be changed to the path to the 'vcom' executable.
+
+
+g:ale_vhdl_vcom_options *g:ale_vhdl_vcom_options*
+ *b:ale_vhdl_vcom_options*
+ Type: |String|
+ Default: `'-2008 -quiet -lint'`
+
+ This variable can be changed to modify the flags/options passed to 'vcom'.
+
+
+===============================================================================
+xvhdl *ale-vhdl-xvhdl*
+
+g:ale_vhdl_xvhdl_executable *g:ale_vhdl_xvhdl_executable*
+ *b:ale_vhdl_xvhdl_executable*
+ Type: |String|
+ Default: `'xvhdl'`
+
+ This variable can be changed to the path to the 'xvhdl' executable.
+
+
+g:ale_vhdl_xvhdl_options *g:ale_vhdl_xvhdl_options*
+ *b:ale_vhdl_xvhdl_options*
+ Type: |String|
+ Default: `'--2008'`
+
+ This variable can be changed to modify the flags/options passed to 'xvhdl'.
+
+
+===============================================================================
+ vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
diff --git a/doc/ale.txt b/doc/ale.txt
index 517050ab..d9b1e418 100644
--- a/doc/ale.txt
+++ b/doc/ale.txt
@@ -348,6 +348,12 @@ CONTENTS *ale-contents*
verilog/systemverilog.................|ale-verilog-options|
iverilog............................|ale-verilog-iverilog|
verilator...........................|ale-verilog-verilator|
+ vlog................................|ale-verilog-vlog|
+ xvlog...............................|ale-verilog-xvlog|
+ vhdl..................................|ale-vhdl-options|
+ ghdl................................|ale-vhdl-ghdl|
+ vcom................................|ale-vhdl-vcom|
+ xvhdl...............................|ale-vhdl-xvhdl|
vim...................................|ale-vim-options|
vint................................|ale-vim-vint|
vim help..............................|ale-vim-help-options|
@@ -511,7 +517,8 @@ Notes:
* Thrift: `thrift`
* TypeScript: `eslint`, `prettier`, `tslint`, `tsserver`, `typecheck`
* VALA: `uncrustify`
-* Verilog: `iverilog`, `verilator`
+* Verilog: `iverilog`, `verilator`, `vlog`, `xvlog`
+* VHDL: `ghdl`, `vcom`, `xvhdl`
* Vim: `vint`
* Vim help^: `alex`!!, `proselint`, `write-good`
* Vue: `prettier`, `vls`