HDL Checker implements the core functionality of vim-hdl
and
because it now supports Language Server Protocol, vim-hdl
is being
deprecated
Any LSP client should work, be it on Vim or other editors.
Have a look at HDL Checker supported editors to check some examples of how to set it up.
You'll need to install HDL Checker pip package:
pip install hdl-checker --upgrade
or
pip install hdl-checker --upgrade --user
Just make sure you can run hdl_checker --version
and it should work just fine.
Back when vim-hdl started, Vim did not have the widespread support for LSP it has today and with it I can actually focus in the core functionality and support more platforms at the same time. This last update is likely the last one!
vim-hdl is a Vim plugin that uses HDL Checker to provide some helpers to VHDL development:
- Syntax checking (using third-party-compilers + Syntastic)
- Style checking
cd ~/.vim/bundle/
git clone https://github.com/suoto/vim-hdl.git
In your .vimrc:
Plugin 'suoto/vim-hdl'
- Requires Vim compiled with Python support, plus features needed by Syntastic itself
- Only tested on Linux with recent Vim versions (7.4+)
vim-hdl requires a configuration file listing libraries, source files, build flags, etc. Select the configuration file via
" Configure the project file
let g:vimhdl_conf_file = '<config/file>'
You use the VimhdlCreateProjectFile
command to search and help you setting up
the configuration file
:VimhdlCreateProjectFile <optional/path/to/files>
See the wiki for details on how to write it.
Any other Syntastic option should work as well.
You can clone vim-hdl-examples repository and try a ready to use setup.
Style checks are independent of a third-party compiler. Checking includes:
- Signal names in lower case
- Constants and generics in upper case
- Unused signals, constants, generics, shared variables, libraries, types and attributes
- Comment tags (
FIXME
,TODO
,XXX
)
Notice that currently the unused reports has caveats, namely declarations with
the same name inherited from a component, function, procedure, etc. In the
following example, the signal rdy
won't be reported as unused in spite of the
fact it is not used.
signal rdy, refclk, rst : std_logic;
...
idelay_ctrl_u : idelay_ctrl
port map (rdy => open,
refclk => refclk,
rst => rst);
- vim-hdl issue tracker should be used for bugs, feature requests, etc related to the Vim client itself (something that only happens with Vim)
- HDL Checker issue tracker should be used for bugs, feature requests, etc related to the code checker backend.
If unsure, use vim-hdl issue tracker, it will be moved to HDL Checker issue tracker if applicable.
This software is licensed under the GPL v3 license.
Mentor Graphics®, ModelSim® and their respective logos are trademarks or registered trademarks of Mentor Graphics, Inc.
Altera® and its logo is a trademark or registered trademark of Altera Corporation.
Xilinx® and its logo is a trademark or registered trademark of Xilinx, Inc.
vim-hdl's author has no connection or affiliation to any of the trademarks mentioned or used by this software.