Skip to content

Tutorial: Organizing a Schematic

This tutorial demonstrates how to organize a JITX-generated schematic. You can follow the accompanying video above, or refer to the transcript below for code snippets.

Before Starting

You should have built the design from Tutorial: Build circuits with code

Resources

Key Concepts

  • JITX automatically generates both a schematic and PCB layout from code.
  • Schematics are fully flattened, with globally unique net names.
  • Hierarchical structure from code is preserved in the schematic for organization.
  • Example: core.ctl.EEPROM indicates an EEPROM module inside a controller, itself inside a communications core.

1. Multi-Page Management 1:03

1.1 Select Groups or Components

  • Click and drag to select groups or components within the drawn rectangle.
  • Click a single component to select it. Press Shift + Click to add more components to the selection.

1.2 Moving Groups to New Pages

  1. Select one or more groups.
  2. Press Shift + 2 to move them to page 2.
  3. A hierarchical diagram is automatically added.
  4. Connections across pages are handled with multi-page ports.
  5. Text labels on the same page remain as plain text.

1.3 Group Management

  • Press Q to merge groups with the same parent.
  • Merged groups can be moved together.
  • Schematic wires automatically route between merged groups.

2. Net Naming and Symbols 2:04

When you add net names to code, JITX updates the schematic accordingly.

2.1 Naming Nets in Code

Add a name to the net statement to identify it clearly.

net (ctl.USB usb-if.USB)
net USB-DATA (ctl.USB usb-if.USB)

2.2 Name Power/Ground Nets and Assign Symbols

Check the Schematic

Press Ctrl + Enter in main.stanza, then switch to the Schematic view to see newly named nets and power/ground symbols.

Use net statements to define power or ground nets, and symbol statements to assign symbols.

; Add these nets within pcb-module communications-core in main.stanza
net VBUS (ctl.VDD-USB.V+)
net P3V3 (ctl.rail-3v3.V+)
net GND  (ctl.rail-3v3.V-)
; In the same pcb-module communications-core:
symbol(GND)  = GND-SYMB
symbol(VBUS) = PWR-SYMB
symbol(P3V3) = PWR-SYMB

Read more on net Statements
Read more on symbol Statements

2.3 Effects and Benefits

  • More descriptive net names in the schematic.
  • Consistent power/ground symbols.
  • Improved schematic clarity and automated placement hints.
  • Preserves any existing manual layout adjustments.

3. Schematic UI Operations 4:21

Pop Out the Schematic View

Use the pop-out button on the Schematic View Toolbar to open the schematic in a stand-alone window.

3.1 Basic Controls

  • Move: Select and drag.
  • Rotate: Press r to rotate counter-clockwise, Shift + r to rotate clockwise.
  • Mirror:
  • x for horizontal mirror
  • y for vertical mirror
  • Select net labels: Press a to select all wire/net labels on the same net.
  • You can also rotate or mirror a schematic group or any selection.
  • Multiple views: Press the “new view” button to open another schematic window.

Read more on Selecting Schematic Elements
Read more on Transforms

3.2 Wire Management

  • Split wires: Select a wire, then press Delete or z
    (Read more on Net Split).
  • Remove extra net symbols for a cleaner schematic layout.

4. Layout Reuse and Optimization 5:00

4.1 Copy/Paste Layouts

  1. Arrange one instance of a repeating circuit.
  2. Select that group.
  3. Press Ctrl + c to copy.
  4. Press Ctrl + v to paste it into similar groups.

4.2 Auto-organization

  • Local layout optimization: Press l
  • Select a group, then press l to invoke local (packing) optimization again.
  • Organize ports around symbols: Press g
    (Read more on Organize Ports)

Copy/Paste & Auto-Organize

  • Select two schematic groups and press Ctrl + c, then Ctrl + v.
  • Press g to organize ports.
  • Press l for local layout optimization.

5. Progress Report Panel 6:20

  • Click the Progress Report icon in the upper-right corner: TodoIcon
  • This panel displays potential issues before exporting the schematic to CAD.
  • Double-click an issue to jump directly to that location.
  • Typical issues include:
    • Wire overlaps
    • Text label overlaps
    • Connection problems

Read more on Progress Report Panel

6. Advanced Features

  • Open the command window by pressing the backtick ( ` ).
  • Rebind any hotkey as needed.
  • Add custom commands and assign them to new hotkeys.
  • Find components:
    • find R1 finds an exact match.
    • find R1? finds components starting with “R1,” e.g., R10, R11, R12, R13, but not R1 itself.
      • Use the arrow key in the Command window to cycle through results.
  • Select items: select R1?

Design Philosophy

  1. Schematic UI for Layout Only

    • Cannot change connectivity in the UI.
    • Focus on visual clarity and organization.
    • All connections live in the code.
  2. Code-First Approach

    • Design correctness is driven by code.
    • The UI preserves any manual adjustments.
    • Powerful code can generate large, complex designs.
    • Schematic editing is the lowest-level design layer.
  3. Best Practices

    • Name significant nets to improve clarity.
    • Use consistent symbols for power/ground.
    • Organize repeated or similar circuits in the same manner.
    • Resolve issues before exporting to CAD.
    • Use multiple pages for complex designs.

Common Operations Reference

Operation Command Purpose
Move to Page 2 Shift + 2 Create a multi-page schematic
Merge Groups q Combine related groups
Rotate r Rotate selected items
Mirror H/V x / y Mirror horizontally/vertically
Select All a Select all nets/labels on the same net
Organize Ports g Arrange connections automatically
Relayout l Optimize layout for a selected group
Split Wire Delete/z Break a wire connection
Command Menu ` Access command interface for custom commands
Help Menu ? or / View all available commands

Help Menu (?)

Press ? or click the HelpIcon icon (upper-right corner) for a quick command reference.


Continue to the next tutorial: Tutorial: Autoroute and layout