]> git.madduck.net Git - etc/vim.git/blob - .vim/bundle/ale/doc/ale-vhdl.txt

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

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.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

Do not set EDITOR/VISUAL for shell
[etc/vim.git] / .vim / bundle / ale / doc / ale-vhdl.txt
1 ===============================================================================
2 ALE VHDL Integration                                         *ale-vhdl-options*
3
4
5 ===============================================================================
6 ALE can use four different linters for VHDL:
7
8   ghdl:
9     Using `ghdl --std=08`
10
11   ModelSim/Questa
12     Using `vcom -2008 -quiet -lint`
13
14   Vivado
15     Using `xvhdl --2008`
16
17   HDL Checker
18     Using `hdl_checker --lsp`
19
20 ===============================================================================
21 General notes
22
23 ghdl, ModelSim/Questa and Vivado linters default to VHDL-2008 support. This,
24 and other options, can be changed with each linter's respective option
25 variable.
26
27 Linters/compilers that utilize a "work" directory for analyzing designs- such
28 as ModelSim and Vivado- can be passed the location of these directories as
29 part of their respective option strings listed below. This is useful for
30 holistic analysis of a file (e.g. a design with components, packages, or other
31 code defined external to the current file as part of a larger project) or
32 when wanting to simply pass an alternative location for the auto-generated
33 work directories (such as '/tmp') so as to not muddle the current directory.
34 Since these type of linters often use this work directory for holding compiled
35 design data as part of a single build process, they sometimes cannot handle
36 the frequent, asynchronous application launches when linting while text is
37 changing. This can happen in the form of hangs or crashes. To help prevent
38 this when using these linters, it may help to run linting less frequently; for
39 example, only when a file is saved.
40
41 HDL Checker is an alternative for some of the issues described above. It wraps
42 around ghdl, Vivado and ModelSim/Questa and, when using the latter, it can
43 handle mixed language (VHDL, Verilog, SystemVerilog) designs.
44
45 ===============================================================================
46 ghdl                                                            *ale-vhdl-ghdl*
47
48                                              *ale-options.vhdl_ghdl_executable*
49                                                    *g:ale_vhdl_ghdl_executable*
50                                                    *b:ale_vhdl_ghdl_executable*
51 vhdl_ghdl_executable
52 g:ale_vhdl_ghdl_executable
53   Type: |String|
54   Default: `'ghdl'`
55
56   This variable can be changed to the path to the 'ghdl' executable.
57
58                                                 *ale-options.vhdl_ghdl_options*
59                                                       *g:ale_vhdl_ghdl_options*
60                                                       *b:ale_vhdl_ghdl_options*
61 vhdl_ghdl_options
62 g:ale_vhdl_ghdl_options
63   Type: |String|
64   Default: `'--std=08'`
65
66   This variable can be changed to modify the flags/options passed to 'ghdl'.
67
68
69 ===============================================================================
70 hdl-checker                                              *ale-vhdl-hdl-checker*
71
72 HDL Checker is a wrapper for VHDL/Verilg/SystemVerilog tools that aims to
73 reduce the boilerplate code needed to set things up. It can automatically
74 infer libraries for VHDL sources, determine the compilation order and provide
75 some static checks.
76
77 You can install it using pip:
78 >
79   $ pip install hdl-checker
80
81 `hdl-checker` will be run from a detected project root, determined by the
82 following methods, in order:
83
84 1. Find the first directory containing a configuration file (see
85    |g:ale_hdl_checker_config_file|)
86 2. If no configuration file can be found, find the first directory containing
87    a folder named `'.git'
88 3. If no such folder is found, use the directory of the current buffer
89
90                                            *ale-options.hdl_checker_executable*
91                                                  *g:ale_hdl_checker_executable*
92                                                  *b:ale_hdl_checker_executable*
93 hdl_checker_executable
94 g:ale_hdl_checker_executable
95   Type: |String|
96   Default: `'hdl_checker'`
97
98   This variable can be changed to the path to the 'hdl_checker' executable.
99
100                                               *ale-options.hdl_checker_options*
101                                                     *g:ale_hdl_checker_options*
102                                                     *b:ale_hdl_checker_options*
103 hdl_checker_options
104 g:ale_hdl_checker_options
105   Type: |String|
106   Default: `''`
107
108   This variable can be changed to modify the flags/options passed to the
109   'hdl_checker' server startup command.
110
111                                           *ale-options.hdl_checker_config_file*
112                                                 *g:ale_hdl_checker_config_file*
113                                                 *b:ale_hdl_checker_config_file*
114 hdl_checker_config_file
115 g:ale_hdl_checker_config_file
116   Type: |String|
117   Default: `'.hdl_checker.config'` (Unix),
118            `'_hdl_checker.config'` (Windows)
119
120   This variable can be changed to modify the config file HDL Checker will try
121   to look for. It will also affect how the project's root directory is
122   determined (see |ale-vhdl-hdl-checker|).
123
124   More info on the configuration file format can be found at:
125   https://github.com/suoto/hdl_checker/wiki/Setting-up-a-project
126
127
128 ===============================================================================
129 vcom                                                            *ale-vhdl-vcom*
130
131                                              *ale-options.vhdl_vcom_executable*
132                                                    *g:ale_vhdl_vcom_executable*
133                                                    *b:ale_vhdl_vcom_executable*
134 vhdl_vcom_executable
135 g:ale_vhdl_vcom_executable
136   Type: |String|
137   Default: `'vcom'`
138
139   This variable can be changed to the path to the 'vcom' executable.
140
141                                                 *ale-options.vhdl_vcom_options*
142                                                       *g:ale_vhdl_vcom_options*
143                                                       *b:ale_vhdl_vcom_options*
144 vhdl_vcom_options
145 g:ale_vhdl_vcom_options
146   Type: |String|
147   Default: `'-2008 -quiet -lint'`
148
149   This variable can be changed to modify the flags/options passed to 'vcom'.
150
151
152 ===============================================================================
153 xvhdl                                                          *ale-vhdl-xvhdl*
154
155                                             *ale-options.vhdl_xvhdl_executable*
156                                                   *g:ale_vhdl_xvhdl_executable*
157                                                   *b:ale_vhdl_xvhdl_executable*
158 vhdl_xvhdl_executable
159 g:ale_vhdl_xvhdl_executable
160   Type: |String|
161   Default: `'xvhdl'`
162
163   This variable can be changed to the path to the 'xvhdl' executable.
164
165                                                *ale-options.vhdl_xvhdl_options*
166                                                      *g:ale_vhdl_xvhdl_options*
167                                                      *b:ale_vhdl_xvhdl_options*
168 vhdl_xvhdl_options
169 g:ale_vhdl_xvhdl_options
170   Type: |String|
171   Default: `'--2008'`
172
173   This variable can be changed to modify the flags/options passed to 'xvhdl'.
174
175
176 ===============================================================================
177   vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: