circuitRF Reference Guide

The Stackup

The layers your board is actually made of — and, because it decides the ground plane, where the negative terminal of every EM port is.

Your layout is a set of flat shapes. The stackup is what turns those shapes into a physical structure: what each conductor is made of, how thick it is, what dielectric separates it from the next one, and — the part that catches people — which conductor is ground.

That last one is not a detail. An EM port has two terminals, and only one of them is anywhere near your artwork: the other is the ground plane. You do not set it per port. The stackup does, for every port in the run at once.

Where the stackup lives

The stackup is part of a technology — a .ctech file in the workspace's tech/ folder, edited in the technology editor's Stackup tab. It belongs to the technology rather than to a layout, because it describes a process: every board built on that process has the same layers, whatever is drawn on them.

A layout names a technology (or leaves the name blank to mean the workspace default). Everything else — the layer table, the DRC rules, the default display unit — lives in the same file. See The Layout Editor for the rest of it.

A missing technology does not block drawing, but it does block an EM run. Layers fall back to a generated palette and editing carries on; the EM run refuses rather than inventing a stackup, because there is no honest default for "how far above the ground plane is this trace".

Anatomy of a stackup

A stackup is an ordered list, top to bottom, of three kinds of entry, plus two boundary conditions for what is above and below the whole sandwich. Seen in cross-section, it is a sandwich:

Metal2 Air MIM Dielectric Metal1 GaAs Backside Metal 3 µm σ = 4.1e+7 S/m 2.55 µm εr = 1 tanδ = 0 MIM Metal 0.25 µm σ = 4.1e+7 S/m 0.2 µm εr = 6.8 tanδ = 0.001 patterned: Nitride 3 µm σ = 4.1e+7 S/m 100 µm εr = 12.9 tanδ = 0.0006 3 µm σ = 4.1e+7 S/m gnd Backside Via Metal1 → Backside Metal plated = 3 µm Metal1-Metal2 Post Metal1 → Metal2 solid MIM Via MIM Metal → Metal2 solid Top: Open — free space above Bottom: Ground Metal2 Air MIM Dielectric Metal1 GaAs Backside Metal 3 µm σ = 4.1e+7 S/m 2.55 µm εr = 1 tanδ = 0 MIM Metal 0.25 µm σ = 4.1e+7 S/m 0.2 µm εr = 6.8 tanδ = 0.001 patterned: Nitride 3 µm σ = 4.1e+7 S/m 100 µm εr = 12.9 tanδ = 0.0006 3 µm σ = 4.1e+7 S/m gnd Backside Via Metal1 → Backside Metal plated = 3 µm Metal1-Metal2 Post Metal1 → Metal2 solid MIM Via MIM Metal → Metal2 solid Top: Open — free space above Bottom: Ground
An MMIC stackup in cross-section: two signal metals over a GaAs substrate, a backside ground plane, the thin-film capacitor module between the metals, and the three vias that connect them. The heavy edge marks the ground-designated conductor - the negative terminal of every port in an EM run; the capacitor dielectric is marked with the plate it is patterned with, which is what keeps it out of runs that have no capacitor in them. Every thickness is printed. Heights are relative WITHIN a kind and never across kinds - a conductor against a conductor, a dielectric against a dielectric - and this process's dielectrics span 0.2 um to 100 um, which is too wide to draw even on its own, so they are compressed while staying in order.
Entry kind What it is What it carries
Conductor A metal layer Thickness, conductivity σ, the drawing layers that map onto it, and whether it is the ground reference
Dielectric The material between two conductors Thickness, εr, tanδ, µr
Via A connection between two conductors — not a layer of the sandwich The drawing layer via shapes are drawn on, the two conductors it spans by name, and its fill (plated or solid) with a wall thickness

That picture is in the application, and you edit it there

The cross-section above is not a diagram drawn for this page. It is the upper half of the Stackup tab, drawn from whichever .ctech you have open, and it is the main way to work on a stackup: the thing a list cannot tell you — which metal is on top, how thick the substrate is against the copper on it, which two conductors a via actually joins — is the thing a cross-section says at a glance.

The card list underneath it edits the same entries and always agrees with it. They are two views of one stackup, not two copies: whichever surface you change it on, the other follows immediately, the Undo and Redo buttons at the top of the window cover it, and the layouts you have open repaint against the changed technology without waiting for a save.

In roughly the order you will meet them:

Do this on the drawing What it does
Click a layer or a via Selects it — an outline round it on the drawing, and the card list below scrolls to that entry and shades it, so a click on the picture lands you on the fields. If the filter box was hiding that card, the filter clears, because a click that appears to do nothing is the worse outcome.
Double-click a value Opens a small edit box on the number itself — the same box the schematic editor uses. Return commits, Esc reverts, clicking away commits. Names, thicknesses, σ, εr, tanδ, µr and a via's wall are all typeable here; a via's span is not, because it is a pair of conductor names rather than a number — right-click, or use the card.
Drag a layer up or down Reorders the stack. The order top to bottom is z, so this is the same edit as the ↑ ↓ buttons on the card.
Drag a via's end gripper Moves that end of the span to another conductor. The small handle at each end of a barrel is what you grab; the drawing refuses a span it cannot resolve rather than silently snapping to something else.
Drag a via's barrel up or down Moves the whole span, both ends together.
Drag a via sideways Slides it across the picture, snapping to a column so two vias can be lined up by eye; hold Alt to place it freely. This is cosmetic only — it is where the via is drawn, never where it is. See Vias.
Right-click anything A menu built from what is under the pointer, and it selects that entry first so you can see what you are about to act on: Delete Conductor / Dielectric / Via, plus the choices that are not typed numbers — ground reference and metal thickness goes to on a conductor, Add Via and patterned with on a dielectric, plated hole and fill on a via, and the drawing-layer binding on either.
Delete Removes the selected layer or via. It is the same deletion as the card's ✕ and the menu's Delete Conductor / Dielectric / Via, so one Ctrl/Cmd+Z puts it back — and nothing is asked first, because that undo is the confirmation. On a Mac keyboard the key marked delete is the one to press. A field you are typing in keeps the key for its own text.
Esc Clears the selection and all its highlighting. With an edit box open, the first Esc reverts the edit and the selection stands; a second clears it.
Right-click ▸ Copy Puts the whole cross-section on the clipboard as a picture — vector where the receiving application takes it, and never a crop of what happened to be scrolled into view.

The drawing scrolls when a stack is taller than its pane, and the divider between it and the cards drags. Neither pane can be dragged out of existence — to give one of them the whole tab, use the two small chevron toggles at the left of the summary row, which collapse the drawing and the card list respectively.

How tall each layer is drawn

Heights are relative within a kind and never across kinds. A conductor twice the thickness of another conductor draws twice as tall, and so does a dielectric against another dielectric — but a metal is never drawn to scale against a substrate, because on a real process it would be a hairline — the MMIC stackup above puts 3 µm of metal beside 100 µm of substrate, and the metals are what most of this chapter is about. Where a kind's own range is too wide to draw even on its own, the heights are compressed while staying in order, so a thicker layer still looks thicker; the same MMIC process spans 0.2 µm to 100 µm of dielectric alone, which is 500:1 and would make either the capacitor film a hairline or the substrate four screens tall.

The drawing carries no note about this, deliberately — a caveat printed on every stackup anyone ever looks at is worse than a paragraph here. What it does carry is the real thickness, printed on every layer, which is what you actually need to read off it.

A field an EM run cannot use is marked as you look at it

A thickness of zero, a permittivity below 1, a conductivity of zero — anything an EM run would refuse outright — gets a faint amber outline on the box itself, and hovering it says what is wrong and what would fix it. It is amber and not red on purpose: an unfilled field is a normal state of a technology somebody is still writing, not a fault.

It marks unusable, never merely unlikely. A value that is present and plausible is never marked, because nothing in circuitRF knows which board you are looking at — so a mark means the run will stop, and an unmarked field is not a claim that the number is right.

The two boundary conditions are properties of the stack as a whole:

A dielectric is never drawn, and it is laterally infinite

A conductor entry has drawing layers; a dielectric entry has none. It is a sheet of material spanning the whole problem at its stated thickness, everywhere, because that is what the solver's Green's function is built on — a stratified medium, uniform in x and y.

This matters most for a thin dielectric that a real process only leaves under and just beyond a structure — a capacitor dielectric, say. The model carries it as a full sheet at its true height. That is the standard trade in this class of tool, and it is a good one where the structure is; it is not free everywhere else, and A thin-film (MIM) capacitor gives the measured cost.

A drawing layer is not a conductor

What you draw on is a drawing layer — a GDSII layer/datatype pair with a name and a colour. What gets simulated is a stackup conductor. The link between them is the conductor entry's drawing layers list, and a shape on a layer that is bound to nothing is simply not part of the EM problem. If a run tells you it found "nothing on a layer bound to a signal conductor", that binding is what is missing — not the artwork.

The Stackup tab, field by field

Below is the shipped four-layer FR-4 technology — the one a new workspace can be created against — open in the Technology Editor's Stackup tab. Nine entries: four coppers, three dielectrics between them, and two via entries. It is worth opening yourself alongside this page; everything on it is described below.

circuitRF - PCB 4-Layer FR-4 (62mil, 1/0.5oz) PCB 4-Layer FR-4 (62mil, 1/0.5oz) · Technology Unit for new layouts: mil Undo Redo Save Layers Stackup DRC Rules Interchange Top: Open Bottom: Ground + Dielectric + Conductor + Via Stack height: 62.1339 mil · conductors: 4 · dielectrics: 3 · vias: 2 Top Copper (1 oz) Prepreg (top) Core Prepreg (bottom) Bottom Copper (1 oz) 1.378 mil σ = 5.8e+7 S/m 8 mil εr = 4.4 tanδ = 0.02 Inner 1 (Ground Plane) 0.689 mil σ = 5.8e+7 S/m gnd 42 mil εr = 4.4 tanδ = 0.02 Inner 2 0.689 mil σ = 5.8e+7 S/m 8 mil εr = 4.4 tanδ = 0.02 1.378 mil σ = 5.8e+7 S/m gnd Plated Through-Hole Top Copper… → Bottom Copper… plated = 0.9843 mil Ground Via (L1-L2) Top Copper… → Inner 1… plated = 0.9843 mil Top: Open — free space above Bottom: Ground Filter by stackup layer name... 9 Conductor Top Copper (1 oz) ↑ ↓ Thickness: 1.377953 mil σ ( S/m): 5.8e+7 Copper Ground reference Metal thickness goes to: the layer above (default) Drawing layers: Top Copper Filter layers… Top Copper Inner 1 Inner 2 Bottom Copper Soldermask Top Soldermask Bottom Silk Top Silk Bottom Drill Ground Via Outline Courtyard Top Dielectric Prepreg (top) ↑ ↓ Thickness: 8 mil ε r: 4.4 tan δ: 0.02 µr: 1 Patterned with: (none) Conductor Inner 1 (Ground Plane) ↑ ↓ Thickness: 0.688976 mil σ ( S/m): 5.8e+7 Copper Ground reference Metal thickness goes to: the layer above (default) Drawing layers: Inner 1 Filter layers… Top Copper Inner 1 Inner 2 Bottom Copper Soldermask Top Soldermask Bottom Silk Top Silk Bottom Drill Ground Via Outline Courtyard Top Dielectric Core ↑ ↓ Thickness: 42 mil ε r: 4.4 tan δ: 0.02 µr: 1 Patterned with: (none) Conductor Inner 2 ↑ ↓ Thickness: 0.688976 mil σ ( S/m): 5.8e+7 Copper Ground reference Metal thickness goes to: the layer above (default) Drawing layers: Inner 2 Filter layers… Top Copper Inner 1 Inner 2 Bottom Copper Soldermask Top Soldermask Bottom Silk Top Silk Bottom Drill Ground Via Outline Courtyard Top Dielectric Prepreg (bottom) ↑ ↓ Thickness: 8 mil ε r: 4.4 tan δ: 0.02 µr: 1 Patterned with: (none) Conductor Bottom Copper (1 oz) ↑ ↓ Thickness: 1.377953 mil σ ( S/m): 5.8e+7 Copper Ground reference Metal thickness goes to: the layer above (default) Drawing layers: Bottom Copper Filter layers… Top Copper Inner 1 Inner 2 Bottom Copper Soldermask Top Soldermask Bottom Silk Top Silk Bottom Drill Ground Via Outline Courtyard Top Vias — outside the top-to-bottom order (each one spans two conductors) Via Plated Through-Hole ↑ ↓ Spans: Top Copper (1 oz) → Bottom Copper (1 oz) Fill: Plated Plated Wall: 0.984252 mil Drawing layer: Drill (9/0) Via Ground Via (L1-L2) ↑ ↓ Spans: Top Copper (1 oz) → Inner 1 (Ground Plane) Fill: Plated Plated Wall: 0.984252 mil Drawing layer: Ground Via (10/0) circuitRF - PCB 4-Layer FR-4 (62mil, 1/0.5oz) PCB 4-Layer FR-4 (62mil, 1/0.5oz) · Technology Unit for new layouts: mil Undo Redo Save Layers Stackup DRC Rules Interchange Top: Open Bottom: Ground + Dielectric + Conductor + Via Stack height: 62.1339 mil · conductors: 4 · dielectrics: 3 · vias: 2 Top Copper (1 oz) Prepreg (top) Core Prepreg (bottom) Bottom Copper (1 oz) 1.378 mil σ = 5.8e+7 S/m 8 mil εr = 4.4 tanδ = 0.02 Inner 1 (Ground Plane) 0.689 mil σ = 5.8e+7 S/m gnd 42 mil εr = 4.4 tanδ = 0.02 Inner 2 0.689 mil σ = 5.8e+7 S/m 8 mil εr = 4.4 tanδ = 0.02 1.378 mil σ = 5.8e+7 S/m gnd Plated Through-Hole Top Copper… → Bottom Copper… plated = 0.9843 mil Ground Via (L1-L2) Top Copper… → Inner 1… plated = 0.9843 mil Top: Open — free space above Bottom: Ground Filter by stackup layer name... 9 Conductor Top Copper (1 oz) ↑ ↓ Thickness: 1.377953 mil σ ( S/m): 5.8e+7 Copper Ground reference Metal thickness goes to: the layer above (default) Drawing layers: Top Copper Filter layers… Top Copper Inner 1 Inner 2 Bottom Copper Soldermask Top Soldermask Bottom Silk Top Silk Bottom Drill Ground Via Outline Courtyard Top Dielectric Prepreg (top) ↑ ↓ Thickness: 8 mil ε r: 4.4 tan δ: 0.02 µr: 1 Patterned with: (none) Conductor Inner 1 (Ground Plane) ↑ ↓ Thickness: 0.688976 mil σ ( S/m): 5.8e+7 Copper Ground reference Metal thickness goes to: the layer above (default) Drawing layers: Inner 1 Filter layers… Top Copper Inner 1 Inner 2 Bottom Copper Soldermask Top Soldermask Bottom Silk Top Silk Bottom Drill Ground Via Outline Courtyard Top Dielectric Core ↑ ↓ Thickness: 42 mil ε r: 4.4 tan δ: 0.02 µr: 1 Patterned with: (none) Conductor Inner 2 ↑ ↓ Thickness: 0.688976 mil σ ( S/m): 5.8e+7 Copper Ground reference Metal thickness goes to: the layer above (default) Drawing layers: Inner 2 Filter layers… Top Copper Inner 1 Inner 2 Bottom Copper Soldermask Top Soldermask Bottom Silk Top Silk Bottom Drill Ground Via Outline Courtyard Top Dielectric Prepreg (bottom) ↑ ↓ Thickness: 8 mil ε r: 4.4 tan δ: 0.02 µr: 1 Patterned with: (none) Conductor Bottom Copper (1 oz) ↑ ↓ Thickness: 1.377953 mil σ ( S/m): 5.8e+7 Copper Ground reference Metal thickness goes to: the layer above (default) Drawing layers: Bottom Copper Filter layers… Top Copper Inner 1 Inner 2 Bottom Copper Soldermask Top Soldermask Bottom Silk Top Silk Bottom Drill Ground Via Outline Courtyard Top Vias — outside the top-to-bottom order (each one spans two conductors) Via Plated Through-Hole ↑ ↓ Spans: Top Copper (1 oz) → Bottom Copper (1 oz) Fill: Plated Plated Wall: 0.984252 mil Drawing layer: Drill (9/0) Via Ground Via (L1-L2) ↑ ↓ Spans: Top Copper (1 oz) → Inner 1 (Ground Plane) Fill: Plated Plated Wall: 0.984252 mil Drawing layer: Ground Via (10/0)
The Technology Editor's Stackup tab on the shipped four-layer FR-4 technology. The cross-section at the top is the primary surface: click a band to select it and land on its fields below, double-click a value to edit it in place, drag to reorder a layer or to move a via's span, right-click for the choices that are not typed numbers. The card list under the splitter edits the same nine entries - four coppers, three dielectrics and two vias that span different pairs of conductors - and the two always agree, because they are two views of one stackup rather than two copies of it. The boundary conditions and the three Add buttons are on the top row; the summary beneath them is the stack height and what the stack is made of.

The top row: what is above and below, and how to add an entry

Control What it does
Top The boundary condition above the whole sandwich — Open (free space, the usual case) or Ground.
Bottom The boundary condition below it — Ground (the usual case) or Open.
+ Dielectric / + Conductor / + Via Appends an entry of that kind. A new entry lands at the bottom of the list; the ↑ ↓ buttons on its own row move it to where it belongs.

The summary row: what the stack adds up to, and what it is made of

Readout What it means
Stack height The sum of every Conductor and Dielectric thickness, in the technology's display unit. Via entries are excluded — a via occupies no slice of the stack; it traverses the dielectrics between the conductors it spans. 62.13 mil above is the 62 mil the board is sold as.
conductors / dielectrics / vias How many entries of each kind. conductors: 4 is the layer count a fabricator quotes; vias: 2 is two kinds of connection, not two holes.
board Shown only when some other document stated an overall board thickness — a Gerber job file's, today. If it disagrees with the stack height by more than 1%, the row says so and nothing is corrected: which of the two numbers is wrong is not something circuitRF can know.

The filter box below it narrows the list by entry name, and the count beside it is how many of the nine are showing.

Every entry: kind, name, order

Each entry is a card. The grey word at its left is its kind, fixed when it was added. The box beside it is its name, and the name is not decoration: a via entry names the two conductors it spans by name, and an EM setup names its analysis levels the same way. The three buttons at the right are ↑ and ↓ — the list is ordered top to bottom and that order is z — and ✕, which removes the entry.

A Conductor entry

Field What it is
Thickness The metal's thickness, in the display unit. Used by the cross-section kernel and by interchange; the full-wave planar kernel solves a zero-thickness sheet and uses this only to place it — see What the EM engine does not read.
σ (S/m) Conductivity at 20 °C. Sets conductor loss and skin depth in both EM kernels — on drawn metal, and on the ground reference layer, whose own σ becomes the loss of the infinite plane a microstrip returns through (about a fifth to a quarter of the conductor term; see the MoM engine). A ground layer left at zero is a perfect plane, and the run's notes say so. The combo beside it is a shortcut that fills the box with a metal's bulk value (copper 5.8e7, silver 6.3e7, gold 4.1e7, aluminium 3.77e7, nickel 1.43e7); the box stays typeable and is what gets saved, and a value matching none of them reads as Custom.
Ground reference Marks this conductor as the ground plane — the negative terminal of every port in an EM run. In the figure it is ticked on Inner 1 and on Bottom Copper; the rule for which one a given run uses is in the next section.
Metal thickness goes to The full-wave solver has no thickness for metal, so this conductor's thickness is given to the dielectric above it or the one below it. the layer above is the default and is what every technology authored before the field existed means. The stack height is the same either way. Full explanation, and the one case that needs the other setting: Where a conductor's thickness goes.
Drawing layer Which drawing layers map onto this conductor — a checkbox list, because a conductor may carry several, with a filter box above it for a process that has hundreds. A shape on a layer bound to nothing is simply not part of the EM problem.

A Dielectric entry

Field What it is
Thickness The separation this material provides. On the figure, 8 mil of prepreg either side of a 42 mil core.
εr Relative permittivity.
tanδ Loss tangent.
µr Relative permeability — 1 for everything that is not a magnetic material.
Patterned with (none) for an ordinary, laterally continuous dielectric, which is what all three on this board are. Naming a conductor here says this film exists only where that metal's artwork is — the thin-film capacitor case, described in The capacitor dielectric rides along only when its plate is analysed.

A dielectric has no drawing layer, and there is no picker for one. It is not drawn: it is a sheet of material spanning the whole problem at its stated thickness.

A Via entry

Via entries are listed as their own group below the ordered ones, under a line saying why: a via is not a layer of the sandwich and has no position in the top-to-bottom order.

Field What it is
Spans The two conductor entries this via connects, by name. The two on the figure differ, and that is the point of a four-layer board: Plated Through-Hole runs Top Copper → Bottom Copper, while Ground Via (L1-L2) runs Top Copper → Inner 1.
Fill · Plated Whether these holes are metal at all. Unticked means a non-plated hole — a mounting hole, a routed cutout — drawn as it is but not extracted as a vertical conductor.
Fill kind Plated or solid. Carried for thermal work; the RF solve does not read it, because a plated wall a few µm thick is already many skin depths.
Wall Plated wall thickness — the metal on the barrel wall, not the hole radius. 20–25 µm (about 1 mil) is typical and is what the shipped technologies use.
Drawing layer The one drawing layer via shapes are drawn on. One, not a list: a via binds at most one, so this is a plain picker with an explicit (none).
The ? in the corner opens this page

The Help button at the top right of the Technology Editor follows the tab you are on: the Stackup tab opens this chapter, and the Layers, DRC Rules and Interchange tabs open their own sections of The Layout Editor.

Where your port's negative terminal is

Every port in an EM run returns through one plane, and the stackup picks it. Not the panel, not the port label, not per port.

The rule, in order:

  1. The ground-designated conductor. Mark a conductor entry as the ground reference in the technology editor. The plane is the top surface of the highest ground-designated conductor that lies below the signal level being simulated.
  2. Failing that, the stack's bottom. If no conductor is marked and Bottom = Ground, the plane is taken at the bottom of the stack. The run says so in its notes, and asks you to mark one instead — this fallback places the plane by boundary condition rather than by a real conductor's surface, which is a different height by the thickness of whatever is down there.
  3. Failing both, the run is refused. No ground reference and no grounded bottom means no second terminal for any port, and there is nothing to solve.

Four consequences worth having in mind:

If the answer looks wrong by a constant factor, check this first

The height between the signal conductor and the ground plane is the single number a microstrip's impedance depends on most. A ground reference marked one entry too low — on the far side of a dielectric you forgot was there — changes every impedance in the run while leaving the result looking completely plausible. The run's own notes name the conductor it used and its height; read them.

Which conductors get simulated

A conductor entry that is not the ground reference is a signal conductor, and a signal conductor with artwork on it is an analysis level.

Where a conductor's thickness goes

The full-wave solver has no thickness for metal at all. It models a conductor as a zero-thickness sheet at one height — so the slice of the stack that conductor occupies has to be filled with something, and the stackup does not say what fills a metal layer where no metal is drawn. The answer is that the metal's thickness is given to the dielectric on one side of it, and which side is a per-conductor setting: Metal thickness goes to on the conductor's row in the Stackup tab.

Setting The metal's thickness is added to The sheet ends up at Height of a line on it
the layer above (default) the dielectric above the conductor the top surface of the dielectric below the substrate under it, exactly as entered
the substrate below the dielectric below the conductor the bottom surface of the dielectric above the substrate plus this conductor's own thickness

Neither setting moves anything, and the stack height is identical either way — the total is the same number in both cases. All that changes is which neighbour absorbs the vanished thickness, and therefore how high above the ground plane the sheet lands.

"The layer above" is what you want almost everywhere, and it is what a conductor that says nothing means: a trace deposited on a substrate and encapsulated by whatever comes next, whose height above the ground plane comes out as the substrate thickness. It is also the setting the closed-form microstrip models agree with — they model real metal of real thickness and measure their height to the metal's underside.

"The substrate below" is for the lower plate of a capacitor. With the thickness given to the layer above, that plate's whole metal thickness lands inside the plate gap, and the solver separates the two sheets by the capacitor dielectric plus that metal — 3.2 µm rather than 0.2 on a typical MMIC metal. Giving it to the substrate below instead puts the gap back to the dielectric alone. The shipped MMIC technology does exactly this on Metal1.

And it applies only where the capacitor does. A run that is not analysing the plate has no plate gap to get right, so a conductor directly under a patterned dielectric is put back to the default for that run — the same run note that reports the dielectric reports this. That is what lets one technology set it at all: an ordinary line on Metal1 still solves against 100 µm of GaAs, exactly as it did before the capacitor module existed.

This is not "expand up / expand down / symmetric"

Tools whose stackup gives you an interface and a metal thickness have to decide which way the copper grows from it — up, down, or half each way. circuitRF never asks that, because its stackup is an explicit ordered list: the conductor is its own row with its own thickness, already sitting between two named dielectric rows. Its extent is fully determined before any EM question is asked, and nothing is ever displaced.

This setting answers a later question, and one that exists only for the full-wave planar kernel: given that the metal already occupies a known slice, and the solver will represent it as a sheet at a single height, which face is that height and which neighbour fills the gap. There is deliberately no "symmetric". Half to each side is representable, but no structure wants it: it would place every ordinary line permanently half a metal thickness away from the closed-form models circuitRF validates itself against, and for the ground-referenced case that matters the field is in the substrate under the strip — the underside is the right face there, not a crude default that a midpoint would refine.

The cross-section kernel ignores this entirely

It models real metal of real thickness and has no sheet to place, so the setting is read by the full-wave planar path only. It also never applies to the ground plane, whose boundary is always taken at its top surface whatever its own row says.

The trade is stated rather than hidden: in a capacitor run a Metal1 microstrip's EM substrate is 103 µm of GaAs rather than 100 — a ~3% height shift, against a 16× error in the modelled plate separation. The closed-form microstrip models are unaffected either way; they model real metal of real thickness and measure their height to the metal's underside, so in such a run they and the EM result differ by up to one metal thickness. The run's notes name each level's z and the surface it sits on, which is where you read back what was actually solved.

The slab, and what makes one solvable

The solver works on the dielectric between the ground plane and the lowest analysis level. Two stackup mistakes are refused by name rather than solved around:

Several dielectric entries between the two are carried as several layers, each at its own thickness, εr and tanδ — the medium is stratified and the solver solves it that way. (It used to refuse a stratified region under the feed and tell you to merge the entries into one; merging them changes the physics, and the reason for it is gone.) The run's notes name the layers it found and print the single εr it uses to size the calibration standards and the mesh — the series-capacitance equivalent of the stack. That number is a mesh-sizing average and never the reference impedance the answer is published against.

Layers above the top conductor are not part of that slab: the top boundary is what is above, and it is Open unless you say otherwise.

Vias

A via entry is not a layer — it is a connection between two conductor entries, named by name in its Span from / Span to fields. Draw on the drawing layer the entry is bound to, and the EM extractor turns what you drew into a real vertical current path.

Two kinds of artwork count, and both go through the same rules below:

A path on a via layer is ignored, with a note — a path is a centreline and encloses no area, so there is no footprint to mesh. Draw the region instead.

Three rules the extractor applies, each reported when it bites:

Where a via sits on the cross-section means nothing

You can slide a via sideways on the drawing, and it is saved with the technology — but it is a drawing position and nothing else, there so a stack with several via entries can be laid out tidily rather than overlapping. A via entry is a kind of connection between two named conductors, not one hole at one place: every via you draw on its drawing layer is an instance of it, and where they are is in the layout. Nothing in the extraction, the solver or any export reads the drawn position.

An internal port does not need you to draw one

An internal port is placed on the metal and returns to the ground plane, so it needs a path down there. If you drew a via, it drives yours. If you did not, the solver builds one — a square of the technology's default via drill (or, if the technology declares none, a quarter of the substrate height), reported by size in the run's notes. That path is real metal and its inductance is in the answer, which is why you can override it simply by drawing the via you want.

A thin-film (MIM) capacitor

A MIM capacitor is a thin dielectric between two metal plates inside the interlayer dielectric. In a stackup it is three entries:

Entry Kind What it is
MIM Metal Conductor The top plate — a thin metal with its own drawing layer
MIM Dielectric Dielectric The capacitor dielectric: thin, higher εr, no drawing layer
MIM Via Via The plate's connection up to the routing metal above it

The bottom plate is the interconnect metal underneath — no fourth entry. You draw the two plates and the plate connection; the dielectric is never drawn. A Cap Dielectric or Nitride layer in a layer table is mask documentation, not this.

Both capacitor forms are ordinary multi-level artwork:

Metal2 Air MIM Dielectric Metal1 3 µm σ = 4.1e+7 S/m 2.55 µm εr = 1 tanδ = 0 MIM Metal 0.25 µm σ = 4.1e+7 S/m 0.2 µm εr = 6.8 tanδ = 0.001 patterned: Nitride 3 µm σ = 4.1e+7 S/m Metal1-Metal2 Post Metal1 → Metal2 solid MIM Via MIM Metal → Metal2 solid …then 100 µm of GaAs and the backside ground plane, unchanged by the module. Metal2 Air MIM Dielectric Metal1 3 µm σ = 4.1e+7 S/m 2.55 µm εr = 1 tanδ = 0 MIM Metal 0.25 µm σ = 4.1e+7 S/m 0.2 µm εr = 6.8 tanδ = 0.001 patterned: Nitride 3 µm σ = 4.1e+7 S/m Metal1-Metal2 Post Metal1 → Metal2 solid MIM Via MIM Metal → Metal2 solid …then 100 µm of GaAs and the backside ground plane, unchanged by the module.
The thin-film capacitor module in cross-section: the plate metal, the capacitor dielectric under it - marked with the plate it is patterned with, which is what keeps it out of runs that analyse no plate - and the plate via up to the routing metal. It is a WINDOW on the figure above, so it states no boundary conditions: a slice of a sandwich has none of its own. Every thickness is printed; heights are relative within a kind and never across kinds.

The capacitor dielectric rides along only when its plate is analysed

There is one MMIC technology, and it carries the capacitor module. That is only possible because the capacitor dielectric is tied to its plate — the Patterned with setting on its row names MIM Metal, and it means this film exists where that metal's artwork is, and nowhere else, which is what a thin film physically is: deposited under the plate and etched away everywhere around it.

So an EM run carries the film only if the plate is one of its analysis levels. Draw a capacitor and the plate has artwork on it, so the film is there and the plates are 0.2 µm apart. Draw plain interconnect and it is not, so the film enters the medium as air at the same thickness — nothing above it moves — and the lower metal's thickness goes back to the layer above. That run is then identical, number for number, to the same run on a stackup that never had a capacitor module in it. No setting to remember, and nothing to switch.

It is always reported. A run whose tie deactivated says so in its notes, naming the dielectric, the plate that would switch it back on, and the thickness setting it reverted. A medium you did not author and cannot see is exactly the kind of change that produces a complete, believable answer to a question nobody asked.

Why it has to work this way: a stackup dielectric is laterally infinite, so a film that was simply present would be present in every run. That is not free, and both costs are large enough to see:

Both are correct physics for a run that has a capacitor in it, and wrong for one that does not. The tie is what tells the two apart. (circuitRF shipped two MMIC technologies for exactly this reason until the tie existed; if you have a workspace holding its own copy of the older pair, they still work — nothing in a workspace is rewritten by a new release.)

What is still bounded: with the plate level in the analysis, a post between the two interconnect metals skips a level, and a via must span two conductors that are adjacent in the analysis. It is dropped with a note. Capacitor plates and airbridge posts in one EM setup remain separate runs — but they are now separate runs on one technology, not two.

Adding a capacitor module to an imported technology

A technology imported from a process description often arrives without its capacitor module. A process stack description states the interconnect — the metals, the insulation between them, the vias that join them — and treats an optional thin-film module as exactly that: optional, and frequently left out, while the layer table shipped beside it still lists the module's drawing layers. The import is faithful to what it was handed, so what you get is a valid technology whose plate layers draw perfectly and connect to nothing.

The import report says so, by name. Two of its notes are about this and only this:

Neither is an error, and neither is a guess: nothing in the file states the missing piece, so circuitRF names the gap rather than inventing an entry to fill it.

The fix is three rows in the Technology Editor's Stackup tab, in stack order, and it takes about two minutes. Numbers below are silicon-nitride-class examples — take yours from the process:

Row Kind What to set
The capacitor dielectric Dielectric Thickness d (50–300 nm; 0.2 µm here) and εr. No drawing layer.
The top plate Conductor Its thickness (0.25 µm here) and its drawing layer — the plate layer the import already brought in
The plate connection Via Span from the plate to the metal above it, and its own drawing layer — the plate-via layer the import already brought in

Insert them between the two interconnect metals, in that order, top plate above dielectric. The bottom plate is the interconnect metal underneath — there is no fourth row, and nothing is drawn for the dielectric.

εr comes from the capacitance density the process quotes, which is the number a process actually publishes:

εr = C″·d / ε₀

At C″ = 0.30 fF/µm² over d = 0.2 µm that is 6.8 — the value the shipped MMIC technology carries. Work it out from your own two numbers rather than copying a permittivity out of a materials table: the capacitance is what you want the model to reproduce, and d and εr only ever appear together in it.

Then two settings on the rows around it, and neither is optional:

Add the rows to the technology your designs already use — there is no copy to make and no retargeting to do. With the tie set, a run that draws no plate artwork extracts exactly as it did before you added the rows: the film enters the medium as air at the same thickness and the sheet surface goes back, and the run's notes say so.

What activation does change, stated so it is not a surprise the first time a capacitor run disagrees with an interconnect one: in a run that does analyse the plate, the film is real, and the lower metal's line sees it. Its thickness is given to the substrate instead, so that substrate grows by that metal's own thickness, and εeff/Z₀ move with it. That is the capacitor run's real physics, not an artifact — it is the same structure a capacitor sits in.

Two things to know before you read a number off the result: within a run the dielectric is laterally infinite — present everywhere at its stated thickness, which is a good approximation because the fields that set the capacitance are confined under the plates — and the mesh has to resolve the gap, which is the subject of the next section.

Reading a capacitance off a MIM run

Never read a small element off a RAW solve, and mesh the gap

The solver models the plate separation the process states — 0.2 µm on the shipped MMIC technology, the capacitor dielectric and nothing else. (It used to model 3.2 µm: a conductor is solved as a zero-thickness sheet, and with that thickness given to the layer above it the lower plate's whole metal thickness fell inside the gap. The lower plate's entry now gives its thickness to the substrate below instead — see Where a conductor's thickness goes.) The run's notes print every level's z and the surface it sits on, so you can always read back the separation it used.

A port on upper metal now de-embeds. It used to be refused: the reference impedance a de-embedded answer is published against is Zc = γ/(jωCpul), and Cpul came from an electrostatic image series over one grounded slab — the right problem for a trace on the substrate's own top surface and the wrong one for metal buried in the interlayer dielectric. The solver now solves that electrostatics at the port level's own height in the real stack, so an ordinary two-port MIM network de-embeds like anything else. The same change lets a technology carry several dielectrics under the lowest analysis level, which used to be refused with "merge the layers".

Read the capacitance from the de-embedded answer, never from a raw one. A raw solve's s-parameters include each port's own discontinuity, and that discontinuity is a fraction-of-a-femtofarad series element: read a small capacitance through it and you read the port, not the capacitor, whatever the plates do. That is not special to a capacitor — a matched 50 Ω GaAs microstrip reads |S21| = 0.07 raw at 10 GHz. (An earlier revision of this page said the plate capacitance was "not modelled", on a measurement taken through exactly that raw path — retracted.)

And mesh the gap. The one thing that genuinely limits a plate capacitance is the mesh: the cross-level part of the fill degrades as the cell size grows against the plate separation, and the extracted capacitance follows it — within 10% of ε₀εrA/d while the ratio is at most 5, 1.46× at 12.5, and the wrong sign at 25. The shipped MMIC technology's default mesh sits outside that (a 10 µm plate pair 0.2 µm apart meshes at 2.5 µm, i.e. 12.5), and the run says so in its notes — it is a note rather than a refusal because the rest of the structure is unaffected. Refine the mesh over the plates until the note stops firing before you trust the value.

The shunt form's backside via sets an upper frequency. A vertical basis carries uniform current along its whole run, so a via is refused above k·ℓ = 0.3. Through 100 µm of GaAs that ceiling is just under 40 GHz; the refusal says so and names the number it computed. The series form has no such via and no such bound.

What the EM engine does not read

Stated plainly, because a field that is carried but unused is worse than one that is absent:

Checking what it resolved to

Every EM run says which conductor it used as ground, and at what height, in its notes — along with the level list, the slab it built, and any via it ignored or built for you. That report is the authoritative answer to "where is my port's negative terminal", and it is written by the code that actually did it rather than re-derived for display.

If you are chasing a result that looks plausible but wrong, read those notes before anything else: almost every stackup mistake produces a complete, believable answer for a structure you did not draw.

See also: The MoM engine for the ports themselves, EM Setup for the panel that runs them, and The Layout Editor for the rest of the technology file.