Circuit Design#

In JITX, circuit design is expressed as code. Rather than drawing schematics by hand, you define your circuits programmatically using Python classes. This approach enables powerful abstractions, reusable modules, and design automation that would be impossible with traditional schematic capture.

The core building blocks are Circuits and Components. Components represent physical parts (resistors, ICs, connectors) while Circuits are logical groupings that organize components into functional modules. Together they form a hierarchical circuit graph that JITX compiles into schematic and layout data.

JITX’s code-based approach unlocks capabilities like pin assignment, where the tool automatically selects optimal pin configurations, and introspection, where your code can query and respond to the design structure.

This series covers the fundamentals of circuit design in JITX:

  1. Design Hierarchy - Understanding the circuit graph and how Circuits and Components relate

  2. Object Relationships - How Ports, Pins, Pads, Nets, and other objects connect

  3. Building the Design - Creating a complete Design with a Board, Substrate, and Circuit

  4. Pin Assignment - Defining flexible pin configurations with provide/require

  5. Introspection - Querying the design tree programmatically

  6. Recursive Designs - Working with recursive circuit structures

  7. Footguns - Common pitfalls and how to avoid them