Schematic Editor
Learn how to use the Mosaic schematic editor, including keyboard shortcuts and understanding schematic elements in .gsch files.
Keyboard Shortcuts
Use these shortcuts in the Schematic View for faster editing:
| Key | Action |
|---|---|
W |
Wire tool |
P |
Port tool |
E |
Eraser tool |
R / Shift+R |
Rotate clockwise / counterclockwise |
X / Y |
Flip horizontally / vertically |
V |
Place a voltage source |
I |
Place a current source |
G |
Place ground |
Delete / Backspace |
Delete selected elements |
Space (hold) |
Pan |
Home |
Zoom to fit |
Escape |
Dismiss overlays or cancel a tool |
Use the component selector to place PDK components, and drag selected components to move them. In the Livewire layout editor, W activates the Route tool, C the Component tool, and I the Instance tool.
Schematic in JSON Format
Both the Mosaic schematic editor and the Livewire layout editor share a .gsch file. It contains a JSON object whose keys identify individual entries, such as components, wires, physical routes, and ports. Each editor updates its own fields while preserving the other editor's information.
Instances
Each component entry has a type and a display name. Its model identifies the component factory or subcircuit, and props stores configurable parameters. For example, a component entry can look like this:
{
"rings:X1": {
"type": "ckt",
"name": "X1",
"model": "gf.components.ring_single",
"props": { "radius": 10 },
"x": 0,
"y": 0
}
}
The model name must refer to a component available in your project or PDK. This example illustrates the entry structure; the editors also save connectivity and layout fields as you design.
Placements
Mosaic stores schematic grid positions in x and y, with rotation and reflection in transform. Livewire stores physical positions in irl_x and irl_y (microns), with rotation in irl_orientation and reflection in irl_flip. Schematic and physical positions are independent.
Connections
Mosaic saves drawn wires as entries with type: "wire" and records port-to-net membership in each component's nets map. Livewire can also store explicit entries with type: "net", containing a ports array of component and port references. These describe logical connectivity; physical routing is stored separately.
Routes
Livewire saves physical routes as entries with type: "polyline". Their terminals identify the connected component ports, and vertices records the route's waypoints. Routing parameters such as bend radius are stored on the route entry.
Ports
Entries with type: "port" expose the circuit's external interfaces. Mosaic records their logical connectivity in nets; Livewire uses attached_port to bind a marker to a component's physical port. Add these markers with the Port tool for circuit inputs and outputs.
Auto-Rebuild and Error Monitoring
GDSFactory+ automatically tracks changes to your files and takes actions such as rebuilding your components and monitoring errors in real time. This means you do not need to manually trigger a rebuild every time you make a change.
How it Works:
- You edit a schematic file
- When you save, the app detects the change and rebuilds the component
- If there are errors, they are highlighted immediately for you to fix
- The GDS View updates to show your changes
Benefits:
- Saves time by automatically rebuilding on each save
- Reduces errors by providing immediate feedback during development
- Keeps the layout view synchronized with your schematic
Learn More
- Watch the Schematic Driven Layout video tutorial
- Follow the Design Your First Circuit tutorial guide
- Learn about schematic design and automatic routing in the Layout Design section