RTL Bench PRO

The schematic & view modes

Every time you click Generate, RTL Bench draws a schematic of your design. It shows structure, connectivity, and hierarchy โ€” from a single top-level block down to individual logic gates, depending on how much detail you ask for.

Three views, one canvas

Three buttons in the top bar โ€” Block, Hybrid, and Gate โ€” control how much detail the schematic shows. The design does not change; only the level of abstraction does.

studio โ€” view modes
// Same design, // three ways to // look at it. Block โ†’ high-level Hybrid โ†’ auto-switch Gate โ†’ every gate
rv32_alu_top 1 module
u_adder u_logic mux
$dff $dff $dff + xor and
Block view
Hybrid
Gate view
Block โ†’ Hybrid โ†’ Gate. Hybrid switches between the two automatically based on zoom level.

Block view

The whole design collapses into one rectangle. Ports on the left are inputs (green), ports on the right are outputs (blue). Useful when you are looking at a single module as a black box, or when you want to see the boundary of the current top without any internal detail.

Gate view

Every instantiated submodule is flattened and every primitive cell is drawn โ€” $dff, $add, $mux, $xor, and so on. This is the closest view to what a synthesizer sees.

The labels are Yosys's cell types with the leading $ stripped. Cells whose names contain recognisable patterns are drawn with friendly labels (+ for add, MUX for mux, and so on).

Hybrid

This is the default and the one most users end up in. Each instantiated submodule stays as a labelled box with its ports, but the top-level logic between them is shown as gates. You see the hierarchy and the connectivity at the same time.

๐Ÿ’ก In Hybrid mode, zoom is what flips between views: below about 0.75ร— you see submodules as blocks, above that the gate-level detail appears. If a view feels "wrong", try scrolling a notch.

Code โ†” diagram linking

The editor and the schematic are linked bidirectionally. Hover a line of Verilog or VHDL in the source and the corresponding node on the right lights up. Hover a node and the corresponding source range is highlighted in the editor.

The link is built during elaboration โ€” Yosys records the source location of every signal and cell it creates, and RTL Bench maps those back to character offsets in your file.

studio โ€” hover link
logic [31:0] add_out; logic [31:0] logic_out; logic [31:0] slt_out;
add_out logic_out slt_out mux
Hovering a declaration highlights its node โ€” and vice versa.

The link only works when the file that declared a signal is the one currently shown in the editor. If your design spans multiple files, clicking a node opens the file where the signal was declared.

Navigating the canvas

Pan and zoom

  • Pan โ€” click and drag anywhere on the canvas.
  • Zoom โ€” scroll wheel, or pinch on a trackpad.
  • Fit to view โ€” the โŒ– button in the top-right corner. Zooms out so the entire design is visible.
  • Fullscreen โ€” the โคข button next to it. Expands the canvas to fill the browser window.

Selecting wires

Click any wire to select the net it carries. Selected nets stay highlighted in blue across the canvas, which is the fastest way to trace a signal through a complex design.

Buses โ€” multi-bit nets โ€” are drawn thicker than single-bit wires and carry a width badge at branch points (32 or [31:0]).

What the boxes mean

ShapeWhat it is
Green ports (left side) Module inputs. Fan-in from the outside world.
Blue ports (right side) Module outputs. Fan-out to the outside world.
Yellow dashed rectangle An instantiated submodule. The name inside is the instance name (like u_adder), and the smaller label under it is the module type it instantiates.
Solid grey rectangle A primitive cell from Yosys โ€” a logic gate, mux, adder, or flip-flop. Only appears in Hybrid and Gate views.
Circle with a symbol An arithmetic operator (+, โˆ’, ร—) or comparison (==, <, >).

Comparing block and gate views on the same design

Flip between Block and Gate on a design with submodules and you see why both modes matter. Block shows you what the module does; gate view shows you how it does it. Hybrid is the middle ground โ€” a top-level view that shows hierarchy but drops into gates where the interesting logic lives.

โš ๏ธ Gate view on a design with many multipliers (15+) or a flattened netlist over 50k gates will freeze the browser while ELK lays out the graph. RTL Bench asks for confirmation before flattening. If you accept and it hangs, reload the page and switch back to Hybrid.

Resizing the panes

studio โ€” splitter drag
module ...
schematic
Drag the thin vertical bar between editor and canvas. Double-click it to reset to 40 / 60.

The editor and the schematic share the screen. Drag the vertical splitter between them to give more room to whichever side you need. Double-click the splitter to reset the ratio to 40 / 60.

Keyboard shortcuts

KeyAction
Ctrl / Cmd + Enter Force re-generate the schematic from the current editor contents.
Esc Exit fullscreen, close modals.

There is no keyboard shortcut to switch between Block, Hybrid, and Gate. Click the buttons.

Frequently asked questions

How does RTL Bench generate schematic diagrams from HDL code?

RTL Bench uses Yosys to elaborate your HDL into an abstract syntax tree and RTL Intermediate Language (RTLIL). It converts coarse-grained modules and fine-grained logic cells into an interactive visual graph using the Eclipse Layout Kernel (ELK) in the browser.

Can I click on schematic gates to trace back to my source code?

Yes. Clicking any cell, flip-flop, or multiplexer in the schematic highlights the corresponding source code lines in the editor, making it easy to see how HDL expressions map into physical hardware.

What is the difference between the RTL schematic and the gate-level schematic?

The RTL schematic preserves coarse-grained operations like word-level adders, multiplexers, and state machine registers. The gate-level schematic shows the mapped standard cells (NAND, NOR, DFF) after technology mapping against a specific foundry PDK or FPGA target.

Next

Try it in the workbench โ†’