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