Contact us Start a Trial

Block diagram

The Block Diagram offers an auto-generated, immutable, graphical view of all modules, architectures, their instantiations, processes, and many more constructs in your selected editor’s Verilog or VHDL code.

This diagram automatically updates while you are editing your code and offers a convenient way to visually inspect and navigate your code, even when it’s unfinished or broken.

Block diagram showing instantiations, processes, generate blocks, assignments, and interfaces

You can open the Block Diagram by clicking the Sigasi logo Sigasi logo in the editor toolbar (top right) and selecting Open Block Diagram. Alternatively, you can open the diagram through the Code Lens or via the command palette Ctrl+Shift+P by typing Sigasi: Open Block Diagram.

When you click on an element, it’s highlighted. This is especially useful for wires connecting many blocks. By double-clicking blocks, ports, or wires, you navigate to the corresponding HDL code. If you want to go into a block, you right-click it and select Open Module, Open Entity, or Open Architecture. To reveal constructs from your code in the Block Diagram: right-click the construct in the editor, select Show in… in the context menu, and then select Block Diagram in the pop-up menu. Show in… can also be accessed directly from the hover of an applicable code element.

Show in... context menu option for an instantiation

Note that the block diagram is generated automatically from code, but it’s not possible to modify the diagram or generate code from it.

Buttons in the block diagram

  • Automatically resizes the block diagram to fit in the current viewport
  • Save the diagram as an SVG. Other file formats are not supported

Visualization

You might’ve noticed that there are different kinds of blocks, wires, and ports. The tables below detail which elements are shown in the block diagram and how they’re represented. Additionally, the following rules apply:

  • Input & linkage (VHDL only) ports are always on the left
  • Output & buffer (VHDL only) ports are always on the right
  • In instantiations, ports are placed in the same order as they’re defined in the code
  • When right-clicking instantiations, you can open the corresponding module, architecture, or entity in the right-click context menu
  • Some blocks can be collapsed or expanded through the right-click context menu

Verilog

constructvisualizationcollapsible
modulessolid block✅
generate blockdotted line block✅
always blockrounded block❌
instantiationsolid block❌
interface instantiationI in rounded block❌
portsolid triangle❌
inout portsolid square❌
port with interface typesolid square❌
assignment<= in rounded block❌
assertion⊢ in rounded block❌
wire connectionsolid line❌
port connectionsolid line❌
multi-bit* connectionthick solid line❌
interface connectionthick solid line❌
modport connectionthick solid line❌

* For Verilog, multi-bit is defined as: !bit && !logic

VHDL

constructvisualizationcollapsible
architecturesolid block✅
generatedotted line block✅
block statementsolid block✅
processrounded block❌
instantiationsolid block❌
portsolid triangle❌
inout portsolid square❌
open porthollow square❌
assignment<= in rounded block❌
assertion⊢ in rounded block❌
signal connectionsolid line❌
port connectionsolid line❌
vector* connectionthick solid line❌

* For VHDL, vector is defined as: !boolean && !bit && !std_logic && !std_ulogic