Introduction

SCI-Compiler provides extensive keyboard shortcuts that dramatically reduce the time required to design FPGA firmware. Mastering these shortcuts transforms diagram editing from a slow, mouse-heavy process into a fast, efficient workflow.

Shortcut Categories

  1. Standard editing - Copy, paste, undo, redo
  2. Selection - Multi-select blocks and wires
  3. Zoom and navigation - View control
  4. Wiring automation - Advanced connection shortcuts
  5. Block manipulation - Rotate, arrange

Standard Editing Shortcuts

Common clipboard and editing operations:

Shortcut Function Alternative
Ctrl+C Copy selected blocks/wires Toolbar: Copy button
Ctrl+X Cut selected blocks/wires Toolbar: Cut button
Ctrl+V Paste from clipboard Toolbar: Paste button
Delete or Canc Delete selected items Right-click → Delete
Ctrl+Z Undo last action Toolbar: Undo button
Ctrl+Shift+Z or Ctrl+Y Redo undone action Toolbar: Redo button

Selection Methods

Single selection:

  • Click on block or wire

Multiple selection - Drag area:

  1. Click and hold left mouse button on empty space
  2. Drag to create selection rectangle
  3. Release to select all enclosed items

Multiple selection - Ctrl+Click:

  1. Hold Ctrl key
  2. Click individual blocks/wires to add to selection
  3. Click selected items again to deselect

Select all:

  • Ctrl+A - Select all blocks and wires in diagram

Zoom and Navigation Shortcuts

Control diagram view efficiently:

Shortcut Function
Q or - (minus) Zoom out
W or + (plus) Zoom in
Mouse Wheel Zoom in/out (scroll up/down)
A Zoom to fit (show entire design)
B Zoom to selected block (center and focus)
Alt+Drag Pan diagram (move view)

Exploring large designs:

  1. Press A to see full overview
  2. Click area of interest
  3. Press B to zoom to selection
  4. Use mouse wheel for fine zoom adjustment
  5. Alt+Drag to pan around

Working on specific area:

  1. Select relevant blocks
  2. Press B to center view
  3. Zoom in with W or mouse wheel
  4. Work efficiently in focused view

Advanced Wiring Shortcuts

These powerful shortcuts automate complex connection patterns, saving hours of manual wiring.

P - Quick Variable/Register/Port Access

Fast in-place creation of connection points.

P Menu

P Menu Extended

Figure 1: Quick access menu for variables, registers, and ports

Function: Opens context menu for creating:

  • Variables - Named connection points
  • Registers - Memory-mapped registers
  • Ports - Board I/O pins

Usage:

  1. Press P key in diagram
  2. Menu appears at cursor
  3. Select variable/register/port type
  4. Item created in-place
  5. Connect immediately

Benefits:

  • Faster than toolbar navigation
  • Creates at exact cursor position
  • Minimal interruption to workflow

Alt+V - Multiply Registers

Automatically create multiple registers from a template.

Alt+V Dialog

Figure 2: Creating multiple registers with auto-increment

Function: Creates N register blocks with auto-incremented names.

Requirements:

  • One or more register blocks selected
  • Register names should end with number (e.g., “reg_0”) for proper increment

Usage:

  1. Select register block(s)
  2. Press Alt+V
  3. Dialog appears: “How many registers?”
  4. Enter number (e.g., 15)
  5. Click OK

Naming logic:

Original Name Generated Names
reg reg_1, reg_2, reg_3, …
threshold_0 threshold_1, threshold_2, threshold_3, …
baseline_5 baseline_6, baseline_7, baseline_8, …

Multiple selections:

  • If multiple registers selected, process runs independently for each
  • Each creates its own series of incremented registers

Alt+S - Serial Register Connection

Connect incrementing registers to series of identical blocks.

Alt+S Step 1

Alt+S Step 2

Figure 3: Serial connection from registers to processing blocks

Function: Auto-connect register_N, register_N+1, register_N+2… to multiple block instances.

Requirements:

  • Connection to/from register with numeric suffix (e.g., “Threshold_0”)
  • Multiple instances of same block type

Usage - Register to Block:

  1. Create connection: Threshold_0 → Leading Edge Trigger
  2. Select the wire
  3. Press Alt+S
  4. Wire turns pink (active mode)
  5. Click next Leading Edge Trigger block
  6. New wire created: Threshold_1 → clicked block
  7. Repeat clicking more blocks
  8. Press Esc to exit mode

Usage - Block to Register:

  1. Create connection: Baseline Restorer → Baseline_0
  2. Select the wire
  3. Press Alt+S
  4. Wire turns pink
  5. Click next Baseline Restorer block
  6. New wire created: clicked block → Baseline_1
  7. Repeat for more blocks
  8. Press Esc to exit

Use cases:

  • Configure 16 identical processing channels
  • Each channel has its own threshold register
  • Connect threshold_0 through threshold_15 efficiently

Alt+E - Fan-out to Multiple Blocks

Connect one source to same input pin on multiple destination blocks.

Alt+E Example

Figure 4: Fan-out from single source to multiple destinations

Function: One output connects to same input pin on N identical blocks.

Usage:

  1. Create connection: REG_0 → Leading Edge Trigger (Threshold input)
  2. Select the wire
  3. Press Alt+E
  4. Wire turns pink
  5. Click another Leading Edge Trigger block
  6. New wire created: REG_0 → clicked block (Threshold input)
  7. Repeat clicking more blocks
  8. Press Esc to exit mode

Common scenarios:

Shared configuration:

  • One threshold register to all 16 channels
  • Global enable signal to multiple blocks
  • Common clock to processing chain

Broadcast signals:

  • Trigger to multiple DAQ blocks
  • Reset to all counters
  • Gate to parallel processing paths

Alt+D - Sequential Channel Assignment

Connect multiple sources to incrementing channels of multi-input block.

Alt+D Dialog

Figure 5: Channel assignment dialog

Alt+D Result

Figure 6: Multiple sources connected to sequential oscilloscope channels

Function: Auto-connect identical blocks to sequential channels (D00, D01, D02…).

Supported multi-channel blocks:

  • Digitizer - Multiple data channels
  • Oscilloscope - Multiple trace inputs
  • Spectrum - Multiple input channels
  • Imaging Module - Multi-channel imaging
  • Multi-input gates - AND, OR, XOR, Mux, Adder, etc.

Usage:

  1. Create connection: Trigger_0 → Oscilloscope (D00 channel)
  2. Select the wire
  3. Press Alt+D
  4. Dialog appears: “Enter channel index”
  5. Enter starting index (e.g., 1 for D01)
  6. Click OK
  7. Wire turns pink
  8. Click next source block (Trigger_1)
  9. New wire created: Trigger_1 → Oscilloscope (D01)
  10. Click Trigger_2 → connects to D02
  11. Continue for all channels
  12. Press Esc to exit

Channel index:

  • Zero-based (0 = first channel)
  • Increments automatically for each connection

Use case - 16-channel oscilloscope:

  1. Connect Trigger_0 → Oscilloscope D00
  2. Alt+D → Enter 1
  3. Click Trigger_1 through Trigger_15
  4. All 16 channels connected in seconds!

Alt+R - Replicate Sequential Connections

Auto-create N connections between sequential pins.

Alt+R Dialog

Figure 7: Specify number of connections to replicate

Alt+R Result

Alt+R Multiple

Figure 8: Replicated connections between sequential pins

Function: Create N identical connections between adjacent pins.

Usage:

  1. Create connection: Wire Split[0] → Logic Analyzer[0]
  2. Select the wire
  3. Press Alt+R
  4. Dialog appears: “Number of links to create”
  5. Enter number (e.g., 15)
  6. Click OK
  7. 15 additional connections created:
    • Wire Split[1] → Logic Analyzer[1]
    • Wire Split[2] → Logic Analyzer[2]
    • …
    • Wire Split[15] → Logic Analyzer[15]

Requirements:

  • Source block has multiple sequential outputs (e.g., [0], [1], [2]…)
  • Destination block has multiple sequential inputs
  • Both blocks have enough pins for N connections

Classic use case - Wire Split to Logic Analyzer:

  • Split 16-bit bus into 16 individual signals
  • Connect all 16 to Logic Analyzer channels
  • One connection + Alt+R with 15 = Done!

Escape to deselect:

  • Press Esc to deselect wire and end replication mode

Alt+F - Fan-out Sequential Outputs

Connect sequential outputs from one block to same input on multiple blocks.

Alt+F Example 1

Alt+F Example 2

Figure 9: Sequential fan-out from one source to multiple destinations

Function: Output[N], Output[N+1], Output[N+2]… → Same input pin on multiple blocks.

Usage:

  1. Create connection: Counter[0] → Register_0
  2. Select the wire
  3. Press Alt+F
  4. Wire turns pink
  5. Click Register_1
  6. New wire created: Counter[1] → Register_1
  7. Click Register_2
  8. New wire created: Counter[2] → Register_2
  9. Continue for all registers
  10. Press Esc to exit

Supported destinations:

  • Register blocks
  • Output signal blocks
  • Variable blocks
  • Identical block instances

Use case - Multi-channel counter readout:

  • 16 counters with sequential Counts outputs
  • 16 register blocks for readout
  • Connect Counts[0]→reg_0, then Alt+F click remaining 15 registers
  • All connections created instantly

Block Manipulation Shortcuts

Transform and organize blocks efficiently:

Shortcut Function
Spacebar Rotate selected blocks 90° clockwise
R Rearrange wires for optimal visualization

Spacebar - Rotate Blocks

Function: Rotate selected blocks 90° clockwise.

Usage:

  1. Select one or more blocks
  2. Press Spacebar
  3. Blocks rotate 90° clockwise
  4. Repeat for 180°, 270°, or back to 0°

Why rotate:

  • Optimize signal flow direction (left→right, top→bottom)
  • Reduce wire crossings
  • Improve diagram readability
  • Fit blocks in tight spaces

R - Rearrange Wires

Function: Automatically optimize wire routing.

Usage:

  1. Select wires to rearrange (or Ctrl+A for all)
  2. Press R
  3. Wires automatically re-routed for clarity

Benefits:

  • Reduces wire crossings
  • Creates cleaner right-angle paths
  • Improves visual organization
  • Makes diagram more professional

Shortcut Combinations

Combine shortcuts for maximum efficiency.

Multi-Channel Design Workflow

Creating 16-channel signal processing system:

  1. Add first processing block
2. Alt+V → Create 16 registers (threshold_0...threshold_15)
3. Connect threshold_0 → block
4. Alt+S → Click 15 more blocks (auto-connect incrementing registers)
5. Add output register
6. Alt+V → Create 16 output registers
7. Connect first block → output_0
8. Alt+S → Click 15 more blocks
9. Alt+F → Connect all outputs to USB endpoint
10. Press A to zoom out and view complete design
  

Result: 16 identical channels with unique registers in under 2 minutes!

Bus Manipulation Workflow

Processing 32-bit parallel bus:

  1. Add Wire Split (32 outputs)
2. Add Logic Analyzer (32 channels)
3. Connect Split[0] → Analyzer[0]
4. Alt+R → Enter 31 → All 32 connections created
5. Select connections
6. Press R → Wires rearranged neatly
  

Result: Perfect 32-bit bus to analyzer connection in 10 seconds!

Replication Workflow

Copy proven design to all channels:

  1. Design single-channel processing (trigger + filter + QDC)
2. Select all blocks (Ctrl+A or drag-select)
3. Ctrl+C to copy
4. Ctrl+V to paste → 15 times
5. Arrange pasted groups vertically
6. Alt+V on each register to increment names
7. Connect inputs with Alt+E
8. Connect outputs with Alt+F
  

Result: 16-channel processing from 1-channel template in minutes!


Shortcut Reference Table

Complete quick reference for all shortcuts:

Editing & Selection

Shortcut Function
Ctrl+C Copy
Ctrl+X Cut
Ctrl+V Paste
Ctrl+A Select All
Delete / Canc Delete selected
Ctrl+Z Undo
Ctrl+Shift+Z / Ctrl+Y Redo

Zoom & Navigation

Shortcut Function
Q / - Zoom out
W / + Zoom in
Mouse Wheel Zoom in/out
A Zoom to fit all
B Zoom to selected
Alt+Drag Pan view

Advanced Wiring

Shortcut Function
P Quick variable/register/port menu
Alt+V Multiply registers
Alt+S Serial register connection
Alt+E Fan-out to multiple blocks
Alt+D Sequential channel assignment
Alt+R Replicate sequential connections
Alt+F Fan-out sequential outputs
Esc Exit wiring mode

Block Manipulation

Shortcut Function
Spacebar Rotate 90° clockwise
R Rearrange wires

Best Practices

Learning Shortcuts

Beginner approach:

  1. Start with standard editing (Ctrl+C/V/Z)
  2. Learn zoom (Q/W/A/B)
  3. Add one wiring shortcut per week
  4. Practice on example projects

Progressive mastery:

  • Week 1: Ctrl+C/V/Z, Q/W/A/B
  • Week 2: Alt+R (most useful!)
  • Week 3: Alt+E (fan-out)
  • Week 4: Alt+F (sequential fan-out)
  • Week 5: Alt+S (register series)
  • Week 6: Alt+D (channel assignment)
  • Week 7: Alt+V, P, Spacebar, R

Efficiency Tips

  1. Muscle memory - Practice shortcuts until automatic
  2. Pink wire - Remember pink = active shortcut mode
  3. Esc to exit - Always press Esc when done
  4. Preview first - Create one connection to verify, then use shortcut
  5. Combine shortcuts - Chain multiple shortcuts in workflow

Common Mistakes

Wrong selection:

  • Shortcut requires specific selection (e.g., Alt+S needs register connection)
  • Solution: Read “Requirements” for each shortcut

Forgot to press Esc:

  • Wire stays pink, interferes with other operations
  • Solution: Always press Esc after shortcut operation

Wrong block types:

  • Alt+E clicking non-matching block types
  • Solution: Ensure destination blocks are identical type

Not enough pins:

  • Alt+R requesting more connections than pins available
  • Solution: Check source/destination pin counts

Troubleshooting

Shortcut Doesn’t Work

Problem: Pressing shortcut does nothing

Solutions:

  • Verify correct selection (wire/block as required)
  • Check focus is in Diagram tab (not Editor or Output)
  • Ensure no modal dialog is open
  • Try clicking diagram first to focus

Wire Doesn’t Turn Pink

Problem: Alt+[key] doesn’t activate mode

Solutions:

  • Verify wire is selected (highlighted)
  • Check wire meets requirements (e.g., Alt+S needs register)
  • Ensure Alt key is pressed while pressing letter
  • Try selecting wire again

Wrong Connections Created

Problem: Shortcut creates unexpected connections

Solutions:

  • Verify block types match expectations
  • Check pin names are identical
  • Review connection logic for that shortcut
  • Undo (Ctrl+Z) and try again carefully

Can’t Exit Shortcut Mode

Problem: Wire stays pink, can’t work normally

Solutions:

  • Press Esc key
  • Click empty diagram space
  • Select different item
  • Restart SCI-Compiler if stuck

Summary

Keyboard shortcuts are essential for efficient SCI-Compiler workflow:

Category Key Shortcuts Impact
Editing Ctrl+C/V/Z Standard productivity
Navigation Q/W/A/B Fast diagram exploration
Wiring Alt+R/E/F/S/D 10-100x faster connections
Manipulation Spacebar, R Cleaner diagrams

Most impactful shortcuts:

  1. Alt+R - Replicate connections (saves hours on buses)
  2. Alt+E - Fan-out (common configurations)
  3. A - Zoom to fit (orientation)
  4. Ctrl+Z - Undo (fix mistakes)
  5. Alt+F - Sequential fan-out (multi-channel)

Time savings:

  • Manual wiring 16-channel design: 2-3 hours
  • With shortcuts: 10-15 minutes
  • Efficiency gain: 10-20x faster!

Practice makes perfect:

  • Shortcuts feel awkward initially
  • Become natural with repetition
  • Essential for professional productivity
  • Transform firmware design experience

Master these shortcuts to become a SCI-Compiler power user!