-
-
Notifications
You must be signed in to change notification settings - Fork 8
Requirements
Latest verilog-mode
version is required since verilog-ext
relies
on much of its latest patches to work correctly. The version included with
Emacs is not tested and most likely will not work.
Installing verilog-ext
through package.el
or straight
will
update automatically the version for verilog-mode
.
- Using straight and use-package:
(straight-use-package 'use-package)
(use-package verilog-mode
:straight (:repo "veripool/verilog-mode"))
- Other installation methods
- Refer to verilog-mode installation options
Installing verilog-ext
through package.el
or straight
will
install automatically verilog-ts-mode
since it is a dependency.
It will still be needed to install tree-sitter and Verilog grammar
to use tree-sitter as a backend for some verilog-ext
features.
verilog-ts-mode
has instructions about how to set up tree-sitter:
verilog-ext
makes use of several binaries as backend engines to support IDE-like functionality.
List of required binaries:
- Definitions and references navigation:
global
,gtags
,universal-ctags
,python
,pygments
- Jump to parent module:
ag
,ripgrep
- Hierarchy extraction:
vhier
- Linting:
verilator
,iverilog
,verible-verilog-lint
,slang
,svlint
,surelog
,xrun
/hal
- LSP:
hdl_checker
,svlangserver
,verible-verilog-ls
,svls
,veridian
For information on how to install/configure some of these binaries refer to the corresponding feature wiki page.
You can also check Bash script test-hdl/verilog/scripts/setup-env.sh
used in ERT regressions.
These should be handled automatically by straight
or package.el
.
If you want more information about these packages to change customization or extend functionality refer to their respective websites:
- verilog-ts-mode: SystemVerilog tree-sitter major-mode
- eglot: language server protocol client, bundled with Emacs 29
- lsp-mode: language server protocol client
- ag: frontend for the silversearcher, used to find parent module
- ripgrep: frontend for ripgrep, used to find parent module
- hydra: tie related commands into a family of short bindings with a common prefix, used for templates
- apheleia: frontend for code formatter
- flycheck: syntax checker for linters
- outshine: extension of outline-minor-mode used to navigate design hierarchy
- async: module for doing asynchronous processing in Emacs