A comprehensive VS Code extension providing syntax highlighting, linting, formatting, and language server support for Verilog, SystemVerilog, VHDL, and related hardware description languages.
HDL support for VS Code is a Visual Studio Code extension that provides comprehensive language support for hardware description languages including Verilog, SystemVerilog, and VHDL. It transforms VS Code into a capable IDE for digital design by adding syntax highlighting, linting, formatting, and language server integration specifically tailored for hardware development workflows.
Digital design engineers, FPGA developers, ASIC designers, and verification engineers who use hardware description languages and want to leverage VS Code's modern editor features for their hardware projects.
This extension consolidates multiple hardware design tools into a single, familiar interface, eliminating the need to switch between different editors and command-line tools while providing intelligent code assistance through ctags integration and experimental language server support.
HDL support for VS Code
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports syntax highlighting for Verilog-HDL, SystemVerilog, VHDL, Verilog-AMS, and more, making it ideal for mixed-language hardware projects.
Integrates with popular linters like Icarus Verilog and Verilator, and formatters like verible-verilog-format, leveraging established industry tools without reinventing them.
Ctags integration enables autocomplete, go-to-definition, and module instantiation, providing essential IDE features for hardware design workflows.
Includes an embedded VCD viewer powered by fliplot and language server support, offering advanced capabilities for verification and code intelligence.
Language server and formatting features are labeled as experimental and can be unstable, as admitted in the README, making them unreliable for critical work.
The built-in ctags integration only supports tags in the currently opened file, restricting navigation in multi-file projects and requiring additional extensions for full coverage.
Requires manual installation and configuration of external tools like Universal Ctags and linters, which can be time-consuming and complex for new users.