Resistance¶
DC resistance per polygon / shape.
Per-segment formula:
where ρ_sh is the metal layer’s sheet resistance (Ω/sq), L is
the segment length and W its width. The total DC resistance of
a shape is the sum over its segments. Vias contribute the
per-via-cell resistance from the tech file.
This mirrors the simplest path through compute_dc_resistance_per_polygon
(asitic_kernel.c:267) — that decompiled function additionally
splits the sum into “primary” / “secondary” buckets at a tap point and
computes microstrip capacitances; the bare resistance summation is
all we need for the standard Res REPL command.
- reasitic.resistance.dc.segment_dc_resistance(segment, tech)[source]¶
Return the DC resistance of one segment in Ω.
Resolves the metal layer from
techto read its sheet resistance. Zero-length or zero-width segments contribute 0.
- reasitic.resistance.dc.compute_dc_resistance(shape, tech)[source]¶
Return the total DC resistance of
shapein Ω.Sums
segment_dc_resistance()over every segment, treating the spiral as a single series chain (which is correct for the standard one-port self-resistance reported by ASITIC’sRescommand).
AC resistance with skin-effect correction.
Mirrors the per-segment formula in compute_inductance_inner_kernel
(asitic_kernel.c:142), which is the diagonal contribution to the
binary’s impedance matrix. Despite the function name in the binary
the body computes an AC resistance — the inductance part lives
elsewhere.
The kernel uses Wheeler-style empirical fits in two regimes, selected by a dimensionless skin parameter
ξ ≥ 2.5(high-frequency / well-developed skin effect):\[R(f) = R_\mathrm{dc} \cdot \Bigl[ 0.0035 \cdot u + \frac{1.1147 + 1.2868\,\xi}{1.2296 + 1.287\,\xi^{3}} + \frac{0.43093\,\xi}{1 + 0.041\,(\,W/T\,)^{1.8}} \Bigr]\]where
u = (W/T)^{1.19}.ξ < 2.5(low-frequency, slight correction):\[R(f) = R_\mathrm{dc} \cdot \bigl(1 + 0.0122 \cdot \xi^{p}\bigr)\]with
p = 3 + 0.01·ξ².
The constants come straight from the decompiled output and trace to the empirical fit Niknejad reports in the original ASITIC paper (Niknejad & Meyer, “Analysis of Eddy-Current Losses Over Conductive Substrates with Applications to Monolithic Inductors and Transformers,” IEEE Trans. MTT, 2001).
- reasitic.resistance.skin.skin_depth(rho_ohm_cm, freq_hz, mu_r=1.0)[source]¶
Return the classical skin depth in metres.
\[\delta = \sqrt{\rho / (\pi\, \mu\, f)}\]Inputs
rhoin Ω·cm,freqin Hz,mu_rdimensionless.
- reasitic.resistance.skin.ac_resistance_segment(*, length_um, width_um, thickness_um, rsh_ohm_per_sq, freq_ghz)[source]¶
AC resistance of one straight rectangular segment, in Ω.
Pure port of the metal-layer branch of
compute_inductance_inner_kernel(asitic_kernel.c:142). The via branch is handled separately inreasitic.resistance.dcvia the tech file’s per-via R.
- reasitic.resistance.skin.compute_ac_resistance(shape, tech, freq_ghz)[source]¶
Total AC resistance of
shapeatfreq_ghz, in Ω.Sums
ac_resistance_segment()over every segment using the metal layer’s rsh and thickness fromtech.