[Dave] wanted to learn more about the ARM architecture, so he started with an image of the ARMV1 die. If you’ve had some experience looking at CPU die, you can make some pretty good guesses at what parts of the chip have certain functions. [Dave], however, went further. He reverse engineered the entire ALU–about 2,200 transistors worth.
From the image, he worked out the transistor structures and how they map to gates. Since the ARM is a 32-bit processor, there are 32 separate slices of the ALU, each with about 70 transistors (see below). There are slight differences between certain slices to support zero and carry propagation. A PLA generates control signals that route data through the ALU to perform the desired operation.
[Dave] was inspired by the visual6502 project as well as [Ken Shirriff’s] 8085 reverse engineering, both of which we’ve covered in the past. If the FET transistor logic isn’t to your liking, you could always try Minecraft.