Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>HDL OutlinerNew to Visual Studio Code? Get it now.
HDL Outliner

HDL Outliner

HDL-Tools

|
1 install
| (0) | Free
Side-panel outline of SV/Verilog/VHDL files: instances, processes, constants, types, signals.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

HDL-Outliner

HDL-Outliner adds a side-panel view that breaks the active SystemVerilog, Verilog or VHDL file into collapsible groups: Instances, Processes, Ports, Constants, Types, Signals and Functions, per module / entity / package / interface. Click any entry to jump to it. It reads symbols from the language server you already use (verible-ls, vhdl_ls) and fills in what those servers leave out with a small text scan.

HDL Outline for aes_top.sv: instances, ports with direction arrows (interface ports shown as inout) and signals

SystemVerilog (verible-ls): aes_top.sv from the AES project. Interface-typed ports such as axil_if.slave s_axil show as inout.

HDL Outline for aes_core.vhd: entity ports with direction arrows, then the architecture's instances, processes and signals

VHDL (vhdl_ls): aes_core.vhd from the AES project. Ports show their direction; the architecture lists its instances, processes and signals.

Version 0.1.2. See the changelog.

Install

This release is distributed as a VSIX:

code --install-extension hdl-outliner-0.1.2.vsix

Then open the HDL Outline icon in the activity bar and click an SV, Verilog or VHDL file.

Features

  • Shows the active editor's file only and follows you as you switch tabs. The outline refreshes shortly after you stop typing. While the file has a syntax error and the language server returns nothing, the last good outline stays on screen.
  • Ports show their direction: in, out or inout. Interface-typed ports (axil_if.slave s_axil) show as inout.
  • The filter button in the panel title hides groups you don't want, for example Signals. The choice is remembered per workspace.
  • The refresh button re-reads the file, useful if the language server wasn't ready when the file was opened.
  • If no language server answers for a file, the panel says so instead of showing a partial outline silently.
  • HDL Outline: Dump Symbols (debug) (command palette) opens what the language servers returned next to what the outline built from it. Attach it to bug reports.

Requirements

You need a language server running for each language you want a full outline for:

  • SystemVerilog / Verilog: e.g. the chipsalliance.verible extension (verible-verilog-ls).
  • VHDL: e.g. the hbohlin.vhdl-ls extension.
    • On Apple Silicon that extension has no embedded server, so set vhdlls.languageServer to systemPath and install vhdl_ls (cargo install vhdl_ls). vhdl_ls also needs its vhdl_libraries folder next to the install (~/.cargo/vhdl_libraries), or it exits on start-up.
    • Add a vhdl_ls.toml to the project so the server knows which files belong to which library.

If you have more than one extension providing symbols for a language (for example Verible and eirikpre.systemverilog), units with the same name are merged rather than shown twice.

Known limits

  • verible-ls omissions: it does not report parameters, typedefs, tasks, ports, plain wire declarations, unlabeled always / initial blocks, assign, modports or assertions. Constants, types, tasks and ports are recovered with a regex scan of the source; the rest are not shown.
  • Port scan: only the first name after a direction keyword is found (input logic a, b misses b), and an interface port with no modport (axil_if s) is missed. Interface ports show as inout without reading the modport.
  • Regex scan: constants and types are not parsed, so parameter A = 1, B = 2 loses B.
  • VHDL: component declarations are listed under Types and aliases under Signals.
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft