Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>VHDL HelperNew to Visual Studio Code? Get it now.
VHDL Helper

VHDL Helper

CookieJAR499

|
74 installs
| (0) | Free
VHDL snippets + a language server
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

VHDL Helper

VHDL Helper is a Visual Studio Code extension that provides VHDL snippets, and syntax highlighting. This extension is similar to the awesome-vhdl but has a few tweaks that better suited my use-case.

Syntax highlighting and semantics were forked from the awesome-vhdl extension.

Features

  • VHDL snippets for common language patterns.
  • A command that converts clipboard COMPONENT declarations into DUT PORT MAP text.
  • A header snippet that can prefill author and course from settings.
  • A Language Server that allows mistakes to be caught before compile-time

Usage

  1. Copy a VHDL COMPONENT declaration to your clipboard.
  2. Open a VHDL file and place your cursor where you want the DUT PORT MAP inserted (or select text to replace).
  3. Run the command or use the keybinding to insert the generated port map.

Language Server

In order to use the "GHDL" or "BOTH" option as a Language Server, GHDL needs to be installed on your computer.

For Windows users, GHDL can be installed via WINGET (winget install ghdl) or via MSYS2. More details on the installation process can be found here.

Once GHDL is installed, close and reopen VScode.

Language Server features

This extension bundles and integrates the VHDL Language Server which provides the following features:

  • Context-aware completion: VHDL-2008 keywords; locals in scope (signals, variables, constants, callable parameters); user-defined types/subtypes and callables; imported package members via use clauses; selected-name completion (e.g. pkg. and lib.pkg.); enum literal completion inferred from typed objects; and built-in based-literal snippets (x"", b"", o"").
  • Semantic highlighting: semantic tokens for user-defined types/subtypes and called user functions.
  • Hover: keyword help and declaration signatures for entities, components, ports, generics, signals, variables, constants, types/subtypes, package members, and callables.
  • Diagnostics: optional GHDL-powered analysis or a lightweight built-in checker (configurable via vhdl.diagnostics.mode).
  • Go to Definition / Navigation: workspace-wide Ctrl+Click / F12 navigation for instantiations, components, entities, port-map formals, package members, and general identifiers with workspace indexing and sensible tie-breakers.
  • Package/use-clause-aware semantics: understands library/use clauses, explicit and .all imports, resolves package members from declarations and bodies, and detects ambiguous imports.
  • Workspace indexing: background scanning of VHDL source files to build an in-memory index used for definition resolution and completion. Open document content takes precedence over on-disk files.
  • Windows path handling: correctly parses GHDL output with Windows drive-letter paths.
  • Incremental document sync: efficient tracking of text changes for responsive language features.

Configure these behaviors via the vhdl.* settings described below.

Commands

  • VHDL: Clipboard COMPONENT → DUT PORT MAP (vhdlHelper.clipboardComponentToDut)
    • Default keybinding: Ctrl+Alt+D
  • VHDL: Clipboard COMPONENT → SIGNAL DECLARATIONS (vhdlHelper.clipboardComponentToSignals)
    • Default keybinding: Ctrl+Alt+S
  • VHDL Helper: Refresh GHDL Cache (vhdlHelper.refreshGhdlCache)
    • Performs a workspace-wide GHDL cache refresh. The language server will:
      • Scan the workspace for all VHDL files
      • Clear existing work-obj*.cf cache files
      • Recompile all files in dependency order with GHDL
      • Re-index the workspace for accurate definitions and completion
    • Useful when the GHDL cache becomes stale or out of sync with source files. No manual file opening required—all dependencies are automatically compiled.

Settings

  • vhdlHelper.authorName: Default author name used in the VHDL header snippet.
  • vhdlHelper.courseName: Default course name used in the VHDL header snippet.
  • vhdl.languageStandard: VHDL language standard used by the language server. Supported values: 87, 93, 02, 08, 19.
  • vhdl.diagnostics.mode: Diagnostic source to use. Supported values: basic, ghdl, both, off.
  • vhdl.ghdl.path: Absolute path to the ghdl executable. Leave empty to use the system PATH.
  • vhdl.ghdl.args: Extra arguments appended to each ghdl -a invocation.
  • vhdl.ghdl.run: When GHDL analysis runs. Supported values: onSave, onType.
  • vhdl.ghdl.debounceMs: Debounce delay in milliseconds when vhdl.ghdl.run is onType.
  • vhdl.workspace.sourceGlobs: Glob patterns used to discover VHDL source files for workspace indexing and navigation.
  • vhdl.workspace.includeGhdlStandardLibraries: Whether to index GHDL's bundled ieee and std libraries for hover, definition, and completion support.
  • vhdl.workspace.indexing.enabled: Whether workspace-wide indexing is enabled for navigation features.
  • vhdl.workspace.indexing.rescanIntervalMs: How often the workspace indexer re-scans files. Set to 0 to disable periodic rescans.

AI Authorship Notice

Most of the code in this repository was written by AI, but it has been verified by a competent human.

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft