-
-
Notifications
You must be signed in to change notification settings - Fork 9
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/test-hdl/scripts/verilog/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
- async: module for doing asynchronous processing in Emacs