two years at cornell custom silicon systems wrapped

the goal was easy to say but stupidly hard to pull off: build a battery-powered chip small enough to tag a wild bird, and accurate enough to actually pick up its call.

kestrel

fall 2024, spring 2025

kestrel was our first project, and the first time we took something all the way through tapeout, fabrication, and got back real silicon that actually worked. it’s an 8-bit sar adc, fully differential, built in tsmc’s 180nm process.

sar adcs are kind of the go-to topology when you need something precise and reasonably fast without burning much power. they narrow in on the right value one bit at a time, like playing twenty questions against an analog voltage. kestrel’s job was to take an audio signal, eventually a bird’s call, and digitize it well enough that the frequency content came through intact.

signal flow, at a glance:

vin+ / vin− → sampling switches → cdac (binary-weighted) → comparator → fsm → 8-bit sar output

what came back from the fab

the chip worked, which honestly still feels like a small miracle in analog design, where one unbudgeted parasitic can quietly wreck months of work. here’s what we measured on silicon:

Metric Value Notes
ENOB (sinewave fit) 7.43 bits Out of 8-bit nominal
ENOB (SINAD) 7.60 bits  
SNR 54.59 dB  
SINAD 47.5 dB  
THD (10 harmonics) -47 dB  
INL < ±0.4 LSB Across full input range
Core IDD @ 5 MHz 151 µA Simulated core predicted only ~16 µA
Sample Rate (tested) 55.5 kS/s Target was ~4 MS/s

two things jump out here, for pretty different reasons. the enob and linearity numbers are genuinely solid, this chip digitizes cleanly. but the current draw tells a different story. 151 µa measured against ~16 µa simulated is about a 10x gap. tracing that back led to parasitic leakage paths and clock distribution power that just never made it into the simulation budget. that’s the kind of lesson only silicon can really teach you when your schematic has no idea the wires exist.

the best part, though, was proving the whole concept worked end to end. we digitized and reconstructed a scrub jay call through the adc, and the resulting spectrogram clearly showed the bird’s frequency-modulated chirps.

the design choices that made it work

none of this happens without a handful of deliberate tradeoffs made early on:

after kestrel

fall 2025, spring 2026

once kestrel proved the team could actually tape out a working adc, the obvious next question was how much further this could go. instead of picking one direction, the next phase split into two parallel projects: one chasing speed, one chasing the lowest power possible.

project 1: an adiabatic flash adc

flash adcs are the fastest architecture around. a bank of comparators fires all at once and decodes directly, no bit-by-bit searching. the catch is that speed costs power, since you need a comparator for every possible output level, all running continuously.

adiabatic (charge recovery) logic is a way around that. instead of dumping switching energy into the substrate as heat, it recovers that energy back into a resonant supply. combine that with a flash topology and you’re aiming for a power regime flash adcs have basically never lived in. as far as we could tell, a fully adiabatic flash adc like this hadn’t really been attempted before, which is exciting, but also means there’s no reference design to fall back on when something breaks.

the power budget:

Block Power Share
Adiabatic Comparators (×7) ~52.3 µW 64.5%
SR Latches (Output Sync) ~26.2 µW 32.3%
SCRL Digital Logic ~2.6 µW 3.2%
Total ~80 µW 100%

eighty microwatts total, for a 3-bit flash design. that’s roughly 30x lower power than kestrel, though it’s worth saying kestrel is 8-bit and this is 3-bit, so it’s not a perfectly fair comparison. still a striking number for what adiabatic switching buys architecturally.

a few results worth calling out:

why scrl specifically:

there are a handful of adiabatic logic families out there (ecrl, pfal, cal, scrl), and scrl wasn’t a random pick. it’s structurally close enough to regular cmos that the learning curve stayed manageable, it avoids some of the reverse logic paths that complicate the alternatives, and it needs a simpler power clock scheme overall. the trapezoidal clocks specifically ramp slower, which cuts resistive losses during transitions, and the 16-phase staggered structure leaves room to pipeline later.

layout followed a pretty disciplined plan to keep it all manageable: grid-aligned floorplan, metal 2 for cell routing, metal 3 horizontal for the power clock, metal 4 vertical for inter-cell routing, metal 5–6 for vdd/vss stripes. once you’re routing multiple clock phases that need to match tightly, floorplan discipline stops being optional.

project 2: asynchronous sar adc

the second project took kestrel’s synchronous architecture and asked what happens if you just remove the clock from the bit decision loop entirely. a synchronous sar always waits for a clock edge between decisions, whether or not the comparator has actually settled, so you’re constantly paying for worst-case timing margin. an async sar instead triggers each stage the moment the previous one sends a “done” signal, letting it run at the real speed of the analog circuit instead of some conservative clock period.

it’s still an 8-bit fully differential design with imcs switching, but now with a digitally tunable delay line and a custom edge-triggered sr latch to handle the self-timed handshake between stages.

three hard problems, and how we solved them: