Articles about hardware design, simulation, and the tools we're building.
How one generic call lets a callback know the types of the keys next to it. It's what Zod and tRPC do, and two parts of it are genuinely fiddly to get right.
A 16-bit counter, a table of numbers and one multiplier. Every sample is computed by a circuit you can open up, and the same netlist runs on an FPGA.
A complete Pong game built from logic gates, registers, and memory. Two paddles, a bouncing ball, and a 14-phase rendering pipeline, all without a CPU.
A complete Snake game built entirely from logic gates, registers, and memory. No CPU, no software, just digital circuits.
From NAND gates to a working processor: fetch, decode, execute, all built from logic gates you can click.
Inside Google's Tensor Processing Units: a 2x2 systolic array built from logic gates. Watch matrix multiplication happen one clock cycle at a time.
How calculators and GPUs compute sine and cosine using only bit shifts and addition. The CORDIC algorithm, built from logic gates.
A fixed wiring of comparators that sorts any input in the same number of steps, with no branches and no loops. The algorithm behind network switch fabrics, GPU sort, and median filters.
Packet buffering, MAC address lookup, and forwarding, all built from the same primitives as everything else.
A classic brick-breaking game built entirely from logic gates: ball physics, paddle control, brick collision detection, and score tracking, all without a CPU.
Why Intel built AES into the CPU. SubBytes, XTime, and MixColumns are the operations behind the world's most deployed cipher, verified against FIPS 197.
The TLS cipher that encrypts most of the internet, built from logic gates. Explore the ADD-XOR-ROTATE quarter-round with live interactive circuits.
The checksum at the end of every Ethernet frame and ZIP file: a 32-bit shift register with XOR feedback, running in the NIC on your machine right now.
A 5-stage pipelined RISC-V processor with data forwarding and hazard detection. Write C, compile it, and step through execution cycle by cycle.