Introduction

The diagram editor treats pins as selectable objects. Once one or more pins are selected, the right-click menu offers a set of one-click actions that create variables, ports, registers or constants already wired to the pins, removing most of the manual plumbing from repetitive designs.


Block Common Name

Every block owns a persistent Common name, used as prefix whenever the editor generates named objects from its pins (variables COMMON_PIN, registers COMMON_PIN, …).

  • A default is assigned automatically when the block is placed: the component name plus a progressive number when more blocks of the same type live on the page (Trigger, Trigger_2, …).
  • It can be edited directly in the right-click menu of the block, in the Common name text field under the Node Menu section.
  • It is saved with the project and preserved across property edits and IP upgrades.
  • Names are validated with the standard rules (letters, digits, underscore, no leading digit, no HDL reserved words).

Common name in the right-click menu

Figure 1: the Common name field in the block contextual menu


Selecting Pins

Action Effect
Click on a pin row Selects that pin (highlighted in red)
Ctrl + click Adds / removes a pin from the selection (works across blocks)
Shift + click First click sets the range start, second click selects the whole vertical range; a third Shift+click starts a new range
Drag from inside a block body Rubber-band selection: every pin whose bullet falls inside the rectangle is selected (Ctrl adds to the selection)
Click on canvas / caption / other block Clears the pin selection

Notes:

  • A new net can only be started by dragging from the pin bullet at the block edge; dragging from the middle of the block always selects pins.
  • Rubber-band selection started outside a block keeps the normal behaviour (selects blocks and nets).
  • Blocks are selected by clicking their caption; a selected block can be moved by dragging its body.

Pin selection

Figure 2: a multi-pin selection (red pins) made with Ctrl+click


Pin Menu Actions

With one or more pins selected, right-click a pin to open the contextual menu. The Pin Menu section offers:

Create variable from pin

Creates one variable per selected pin, named <Common name>_<pin>. A preview window lists every variable that will be created; the common name is editable in place. On confirm each variable is added to the page variable list and its VAR block is placed in front of the pin and wired: outputs get a Variable Read on the right, inputs a Variable Write on the left.

Create variables preview

Figure 3: the variables preview window

Created variables wired to the pins

Figure 4: the result — each output pin gets its named variable (Variable Read) wired in front of it, and the same variables can then be read anywhere on the page through Variable Write blocks

Connect pin to variable

  • Single pin: opens the quick variable picker (same list as the quick menu P → Variables); the chosen variable block is placed in front of the pin and wired.
  • Multiple pins: opens the mapping window — variables with search box on the left, one row per pin on the right. Connect by typing (autocomplete), dragging variables onto the rows (multi-selection supported), or with the center arrows. Rows can be reordered by dragging their ⠿ handle or with the up/down buttons. Type / size / TM compatibility is verified live (✔ / ✘ icons) and after each association the focus moves to the next row.

Connect pins to variables

Figure 5: the multi-pin variable mapping window

Fanout pin to port / to Register / Create Constant

The classic single-pin actions now support the multi selection and wire what they create:

  • Fanout pin to port: one SCHEMATIC ENTRY per pin, named after the pin, connected.
  • Fanout pin to Register: one register <Common>_<pin> per pin, created in the page register file, REG block placed in front of the pin and connected (Register Write for outputs, Register Read for inputs).
  • Create Constant: one constant per selected input pin; the value is asked once per signal family, the bit size follows each pin, and every constant is wired.

Fanout pin to Register File block

Builds a Register File component definition straight from the selected pins: design outputs become readable registers, inputs become writable ones. The standard customization dialog opens with the register list already filled (editable); on confirm the block is placed next to the pins and every pin is wired to its register.

Register file fanout

Figure 6: register file generated from a pin selection


Node Menu Actions

Right-clicking a block offers two block-level fan-outs (no dialog: the Common name property drives the naming):

  • Fan-out to variable: one variable <Common>_<pin> per pin of the block, VAR blocks placed and wired. Inputs already driven by a net are skipped.
  • Fan-out to register file: same, but with registers in the page register file.

Replace Net with Variable

Select one or more nets (Ctrl+click to multi-select), right-click and choose Replace net with variable. A preview window lists the variables that will be created (<source Common name>_<source pin>); rows whose source block has no Common name yet are shown in red and block the operation — selecting such a row zooms the diagram (~50%) on the source block with the net highlighted, and the Common name can be typed directly in the grid. On confirm the source pin gets a wired Variable Read, every destination pin a wired Variable Write, and the original nets are removed.

Replace net with variable

Figure 7: net conversion preview with a missing common name (red row)


Connect to Block (from the Variables window)

In the Variables window, select one or more variables, right-click the list and choose Connect to block…: the cursor becomes a yellow picker; click the target block and the variable mapping window opens on all its pins with the chosen variables preselected.


See Also