Documentation
A lightweight, cross-platform RF circuit simulator — DC, S-parameters, harmonic balance, and loadpull.
Quick Start →
For engineers who already know circuit simulators. Run a simulation and see a plot in a couple of pages. Start here if you have used SPICE or a vendor RF tool.
New User's Guide →
Never used a circuit simulator? What a library, a cell and a simulation are — explained from the ground up, with worked examples.
Reference Guide →
The complete technical reference. Every analysis, every component, the layout and EM engines, the file formats and the bundled tools.
Application Notes →
Worked investigations of questions that only come up on a real board — what was measured, what it meant, and what to do differently.
What is circuitRF?
circuitRF studies the frequency response and nonlinear behaviour of RF circuits — from a handful of
components to hierarchical, multi-port designs. It is an RF simulator, not a SPICE simulator:
the analyses and the workflow are built around the RF/microwave problem, the file formats are
human-readable, and loadpull is a first-class experiment. Results are stored as NumPy .npy
datasets, so they drop straight into Python or MATLAB.
Alongside the circuit engines it carries a planar method-of-moments EM solver for layout, a 3D bondwire kernel, and harmonicaRF — an interactive harmonic load-pull bench for a single device — and the Model Composer, which builds a nonlinear FET model (or a passive one) from measured or simulated data and places it in a schematic as a ComposedFET.
Everything in this documentation
Every page below is in one reading order. Start anywhere and follow Next at the foot of each page to reach the end without coming back here.
Getting started
- circuitRF Quick Start Run a simulation and read a plot, for engineers who already use circuit simulators.
- Welcome to circuitRF! Libraries, cells, test benches and analyses, explained from the ground up.
Core concepts
- circuitRF Reference Guide The Reference Guide contents, and the in-app Help anchor scheme.
- The Workspace The workspace window: documents, tool panels, docking, and the folder behind it all.
- Settings The Settings dialog, tab by tab: launch, permissions, colour theme and wirebond defaults.
- Units DBU, display units, the snap grid, and how to type a value with an SI prefix.
- Expressions Variables, cell parameters, functions and conditionals — one expression language.
- Grid & Connectivity The schematic grid, wires, and how connectivity is decided.
- Pins, Ports & Terms Pin, Port and Term: three different things with three different jobs.
- File Formats Every circuitRF document type and what is inside it.
- History Everything circuitRF has kept of a workspace: the states it kept for you, the versions you kept on purpose, and how to go back to any of them.
Design
- The Schematic Editor Drawing a circuit: the palette, placing and wiring, and setting up the analysis that runs it.
- Components Every component in the standard library: symbol, purpose and parameters.
- The Signal Designer The modulated signal a MOD_Source plays - LTE, NR, CW or your own I/Q file - with its spectrum, CCDF and EVM.
- Vias VIA and VIAGND: a via's L, R and C from the stackup, the formulas, and how they compare with a 3D solve.
- Importing a SPICE Model Importing a SPICE .model card or .subckt: what is carried, what is not, and why.
- Importing a schematic A schematic from another editor as a cell of its own: what becomes a native part, what stays a symbol, and the connectivity check.
- System Components The ideal blocks a system diagram is drawn out of, and where passive intermod comes from.
- Dynamic Symbols (SDD, ZPort, SnP) Components whose symbol changes with their parameters.
- Symbol Editor Drawing and editing a symbol.
- The SDD (Symbolically-Defined Device) The Symbolically-Defined Device: writing a nonlinear model as equations.
- The Nonlinear Capacitor & the C–V Editor C(V) as a Taylor series, and the C–V Editor that fits one.
- Compiled Verilog-A Models Running a compact model you supply, from Verilog-A source or a compiled artefact.
- The Match Component Direct synthesis of a bandpass matching network that absorbs both terminations.
- Using Plugins Tools other people write that circuitRF draws: opening one, allowing it, installing, updating and removing them.
- Writing a Plugin Writing a plugin: the manifest, the panel, every message, view and host call, in Python or a compiled language.
- RF Chain Budget A receive chain's budget stage by stage, an array included, and its transfer to test benches that check every number.
Simulate
- Simulations DC, S-parameters, harmonic balance, parametric sweeps, loadpull and pursuit.
- Measurements Post-processing a run into named quantities.
- The Netlist (.cnl) Format The .cnl elaborated-netlist format.
- The Data Display Plots, tables, trace cards and markers.
- Plot Types Rectangular, Smith, Polar and Table — and which data each will accept.
- Tuning Sliders on any value, with every Data Display following them as you drag.
- Sensitivity Which values move each goal, ranked at the design as it stands — S-parameter blocks included.
- Optimization Goals, variables and algorithms: letting circuitRF find values that meet the specification.
- Yield Tolerances, Monte Carlo, yield and corners: how many builds meet the specification.
- Derived Metrics Stability, passivity, group delay and the passive impedance readouts — with the equations.
- The WSProbe The WSProbe: nodal transfer functions for stability and in-situ design — with an appendix on stability itself.
- Results & Data Export Getting results out into Python, MATLAB or a Touchstone file.
Layout & EM
- The Layout Editor The layout view: technology, drawing, snapping, and the schematic it belongs to.
- Footprints SMT land patterns: case sizes, density levels, and how a part gets its artwork.
- Layout versus schematic Layout versus schematic: does the artwork implement the drawing, and what the report names.
- Create Schematic from Artwork A board's copper read as a schematic of native lines, vias and parts, reviewed first in a parts table.
- Create from Image A picture of a layout traced into a layout, or read as a schematic, checked on the picture itself.
- PCells Parameterised cells — placing one, driving it, and its parameter handles.
- PDK Integration Importing a kit and simulating the parts it supplies.
- PDK Authoring Authoring a kit: the OpenPDK layout, Python PCells, models and artwork.
- Model Library Format A model library's folder format: every key, what a reader must do, and an example.
- Protected Models Publishing a model whose inside stays private: compile it, what that still reveals, and signing the library.
- Using a gdsfactory kit Using a gdsfactory kit: layout cells, ports and a technology from an open kit's Python package.
- The Stackup The layers your board is made of - and which conductor is ground.
- Materials Where materials are kept - a technology's own list or a .cmat library it names - and entering one, thermal and anisotropic values included.
- The MoM Engine The planar method-of-moments solver: what it does, what it will not do, and how.
- EM Setup The EM Setup panel, control by control, and where the results land.
- EM Cells Simulating a schematic by EM of its own layout, at whatever values its variables have — and reusing it as a part.
- EM Solvers: MoM, FEM and FDTD MoM, FEM and FDTD: what each solver is, what it costs, and which to use for which problem.
- 3D EM 3D EM with Palace and openEMS: when to use it, getting the solvers, the 3D view, and a worked example.
- Installing Palace on Windows Installing Palace on Windows, step by step: what each step changes, what you will see, and how to undo it.
- The 3D Editor The 3D editor: drawing a cell in 3D — solids, placed cells, bond wires and ports — with no solver needed to draw.
- Thermal: temperature on the 3D model Temperature on the 3D model: heat sources, probes, contacts, Rth and Z_th, taught through two worked examples.
- Antennas Patch antennas: the pattern, the numbers that go with it, and the limits that bound both.
SAR and MRI
- SAR and B1 SAR and B1 from a 3D run: setting it up, units and normalisation, the B1 convention, reading the results.
- Co-simulation: B1, SAR and the radiation pattern from a schematic Parts as ports: B1, SAR and the radiation pattern from a schematic, tuned, optimized and toleranced with no new EM run.
- Tissues and phantoms Body tissues and tissue-simulating liquids with their sources, and the phantoms they fill.
- Voxel and mesh import Your own anatomy: a segmented label map or one closed surface per tissue, imported into a 3D view.
- Phone SAR A device against a phantom at its bands, and psSAR at its rated power beside published reference values.
Tools
- Smith Chart Narrowband matching by hand: one curve per component, a handle on every joint, and the load moving as you drag.
- S-Parameter Viewer A Touchstone file at a glance: what it states, its reflections on a Smith chart, and every term in dB and phase.
- harmonicaRF Interactive harmonic load-pull on one device, at the speed of a mouse drag.
- Model Composer A nonlinear FET model, or a passive one, built from measured or simulated data.
- Model Data The data a model is built from: what it needs, sampling another simulator, and every file format with an example.
- Writing a .cmodel The .cmodel file, field by field, and scripts that write one without the Model Composer.
- wBond Bondwire arrays: geometry, the 3D kernel, and S-parameters out.
- railRF Power integrity on the board you drew: DC drop, Z(f) against a target, and which decaps earn their place.
Command Line & Agents
- The Command Line Running every analysis headless: the verbs, their options and their exit codes.
- The MCP Server circuitRF as an MCP server: installing it, connecting a client, and the tools it offers.
- Designing with an AI agent Connecting an AI agent through MCP, what to tell it, and the design flow that works.
Application notes
- circuitRF Application Notes Worked investigations of questions that come up on real boards.
- AN-01 — Coupled Lines, EM Ports, terminations and de-embedding AN-01: how to EM-simulate coupled lines - kernel choice, where the ports go, and how two coupled feeds are calibrated together.
- AN-02 — Importing a Gerber file set, and turning it into a schematic AN-02: a Gerber file set imported, its stackup checked, and its copper read back as a schematic that simulates without an EM run.
- AN-03 — Extracting capacitance AN-03: when an electrostatic solve is the right way to get a capacitance, which metal is ground and which floats, the Maxwell matrix against the circuit one, and the answer in a schematic.
- AN-04 — A nonlinear FET model from a reference kit AN-04: a nonlinear FET model from another simulator's design kit - what to sample, at which plane, what each Model Composer step does with it, and how to check the model against the kit.
circuitRF is in active development. These docs track the current build and details may shift between releases. Every figure in them is a vector capture of the running application, regenerated from the live interface rather than drawn by hand — so a picture here is what the build does.