rz80 at transistor level

The chip's layout run as transistors in ngspice, from the latest transistor.yml run on main @ 30e9bf8 2026-10-23 05:37 UTC, the layout from Targets run 39799433058. All builds.

The whole chip, GlobalFoundries GF180MCU

The chip's layout extracted with Magic to its transistors and their wiring, and run in ngspice at each corner (tt, ss, ff): power-up, RESET, and a short program -- a memory read, a memory write, an I/O write and read -- at 4 MHz with 15 ns edges, its outputs into 100 pF (chip.py; on GitHub's runners by transistor.yml, each corner in windows of one job each). Its pins are checked against the RTL at every clock edge after RESET, and the cycles measured as the Z80 manual draws them; the figures below are each corner's: the switch over them changes the corner in place, the dimensions too.

CornerPins against the RTL: mismatchesAC parameters met Closest to its limitFigures
tt025 of 2521.8 ns TwWRprogram · opcode fetch (M1) · memory read · memory write · I/O write · I/O read
ss025 of 2518.4 ns TwWRprogram · opcode fetch (M1) · memory read · memory write · I/O write · I/O read
ff025 of 2523.6 ns TwWRprogram · opcode fetch (M1) · memory read · memory write · I/O write · I/O read
The datasheet's AC parameters: 25 of 25 met at every corner, over every cycle that has them
#ParameterLimittt: SPICE (cycles)ss: SPICE (cycles)ff: SPICE (cycles)
6TdCr(A)≤ 110 ns12.7 – 21.2 ns (16) STA 21.324.7 – 36.6 ns (16) STA 37.16.9 – 13.3 ns (16) STA 13.4
7TdA(MREQf)≥ 65 ns131.8 – 140.2 ns (10) STA 131.8131.0 – 142.9 ns (10) STA 131.0132.7 – 139.2 ns (10) STA 132.7
8TdCf(MREQf)≤ 85 ns27.9 – 28.1 ns (16) STA 28.242.6 – 42.9 ns (16) STA 43.121.0 – 21.2 ns (16) STA 21.1
9TdCr(MREQr)≤ 85 ns13.2 – 13.3 ns (5) STA 13.725.4 – 25.6 ns (5) STA 26.57.2 – 7.2 ns (5) STA 7.5
10TwMREQh≥ 100 ns139.8 – 139.8 ns (5) STA 139.5142.3 – 142.4 ns (5) STA 141.6138.9 – 139.0 ns (5) STA 138.6
11TwMREQl≥ 210 ns241.9 – 492.5 ns (10) STA 242.7238.5 – 489.6 ns (10) STA 240.0243.6 – 494.0 ns (10) STA 244.2
12TdCf(MREQr)≤ 85 ns19.9 – 20.4 ns (11) STA 20.831.4 – 32.2 ns (11) STA 33.114.8 – 15.1 ns (11) STA 15.3
13TdCf(RDf)≤ 95 ns27.8 – 27.9 ns (10) STA 27.742.4 – 42.6 ns (10) STA 42.320.9 – 21.0 ns (10) STA 20.8
14TdCr(RDr)≤ 85 ns13.0 – 13.1 ns (5) STA 13.225.2 – 25.3 ns (5) STA 25.77.1 – 7.1 ns (5) STA 7.2
19TdCr(M1f)≤ 100 ns20.6 – 20.7 ns (5) STA 21.235.7 – 35.8 ns (5) STA 37.013.0 – 13.0 ns (5) STA 13.4
20TdCr(M1r)≤ 100 ns12.5 – 12.5 ns (5) STA 13.724.3 – 24.3 ns (5) STA 26.56.8 – 6.8 ns (5) STA 7.5
21TdCr(RFSHf)≤ 130 ns20.6 – 20.7 ns (5) STA 21.435.7 – 35.9 ns (5) STA 37.213.0 – 13.0 ns (5) STA 13.4
22TdCr(RFSHr)≤ 120 ns12.6 – 12.6 ns (5) STA 13.924.4 – 24.4 ns (5) STA 26.96.8 – 6.8 ns (5) STA 7.6
23TdCf(RDr)≤ 85 ns19.8 – 20.2 ns (6) STA 20.431.1 – 32.0 ns (6) STA 32.314.7 – 15.0 ns (6) STA 15.1
24TdCr(RDf)≤ 85 ns21.0 – 21.0 ns (1) STA 20.936.5 – 36.5 ns (1) STA 36.413.3 – 13.3 ns (1) STA 13.2
26TdA(IORQf)≥ 180 ns250.5 – 250.7 ns (2) STA 249.8250.8 – 251.1 ns (2) STA 249.7250.3 – 250.5 ns (2) STA 249.9
27TdCr(IORQf)≤ 75 ns21.2 – 21.4 ns (2) STA 21.136.8 – 37.0 ns (2) STA 36.813.4 – 13.5 ns (2) STA 13.3
28TdCf(IORQr)≤ 85 ns20.3 – 20.7 ns (2) STA 20.631.9 – 32.7 ns (2) STA 32.815.0 – 15.3 ns (2) STA 15.2
29TdD(WRf)_memory≥ 80 ns249.3 – 249.3 ns (1) STA 248.4248.7 – 248.7 ns (1) STA 247.0249.6 – 249.6 ns (1) STA 249.0
30TdCf(WRf)≤ 80 ns27.8 – 27.8 ns (1) STA 27.642.5 – 42.5 ns (1) STA 42.221.0 – 21.0 ns (1) STA 20.8
31TwWR≥ 220 ns241.8 – 624.1 ns (2) STA 242.7238.4 – 620.4 ns (2) STA 240.0243.6 – 626.7 ns (2) STA 244.3
32TdCf(WRr)≤ 80 ns19.6 – 20.0 ns (2) STA 20.330.9 – 31.6 ns (2) STA 32.214.6 – 14.8 ns (2) STA 15.0
33TdD(WRf)_io≥ -10 ns126.2 – 126.2 ns (1) STA 116.6130.1 – 130.1 ns (1) STA 116.0123.5 – 123.5 ns (1) STA 116.3
34TdCr(WRf)≤ 65 ns20.9 – 20.9 ns (1) STA 20.836.2 – 36.2 ns (1) STA 36.313.2 – 13.2 ns (1) STA 13.1
53TdCf(D)≤ 150 ns19.8 – 28.5 ns (2) STA 29.231.1 – 43.8 ns (2) STA 45.214.7 – 21.3 ns (2) STA 21.8
power-up, RESET, and the program at 4 MHz
power-up, RESET, and the program at 4 MHz, tt
opcode fetch (M1)
opcode fetch (M1), tt
memory read
memory read, tt
memory write
memory write, tt
I/O write
I/O write, tt
I/O read
I/O read, tt