The basics of digital logic are pretty easy to master, and figuring out how the ones and zeroes flow through various kinds of gates is often an interesting exercise. Taking things down a level and breaking the component AND, OR, and NOR gates down to their underlying analog circuits adds some complexity, but the flow of electrons is still pretty understandable. Substitute all that for photons, though, and you’ll enter a strange world indeed.
At least that’s our take on [Jeroen Vleggaar]’s latest project, which is making logic gates from purely optical components. As he himself admits in the video below, this isn’t exactly unexplored territory, but his method, which uses constructive and destructive interference, seems not to have been used before. The basic “circuit” consists of a generator, a pair of diffraction patterns etched into a quartz plate, and an evaluator, which is basically a pinhole in another plate positioned to coincide with the common focal point of the generator patterns. An OR gate is formed when the two generators are hit with in-phase monochromatic light. Making the two inputs out of phase by 180° results in an XOR gate, as destructive interference between the two inputs prevents any light from making it out of the evaluator.
The 8721 PLA, or programmable logic array, was one of the chips that had to be invented to make the Commodore 128, the last of the 8-bit computers that formed the leading edge of the early PC revolution, a reality. [Johan Grip] got a hold of one of these chips and decided to reverse engineer it, to see what the C-128 designers had in mind back in mid-1980s.
PLAs were the FPGAs of the day, with arrays of AND gates and OR gates that could be connected into complex logic circuits. [Johan]’s investigation started with liberating the 8721 die from its package, for which he used the quick and easy method favored by [CuriousMarc]. The next step was tooling up, as the microscope he was using proved insufficient to the task. Even with a better microscope in hand, [Johan] still found the need to tweak it, adding one of the new high-quality Raspberry Pi cameras and motorizing the stage with some stepper motors and a CNC controller board.
With optics sorted out, he was able to identify all the pads on the die and to find the main gate array areas. Zooming in a little further, he was able to see the connections between the matrices of the AND and OR gates, which makes decoding the logic a relative snap, although the presence of what appears to be an output block with latching functions confounds this somewhat.
The end result is a full Verilog HDL file that reflects the original 8721 logic, which we think is a pretty neat trick. And we’d love it if our own [Bil Herd] could chime in on this; after all, he literally designed the C-128.
There’s some good detail in [Aliaksei]’s translated post on the “Only Paper” forum, a Russian site devoted to incredibly detailed models created entirely from paper. [Aliaksei] starts with the basic building blocks of logic circuits, the AND and OR gates. Outputs are determined by the position of double-headed pistons in chambers, with output states indicated by pistons that raise a flag when pressurized. The adder looks complicated, but it really is just a half-adder and full-adder piped together in exactly the same way it would be wired up with CMOS or TTL gates. The video below shows it in action.
If [Aliaksei]’s name seems familiar, it’s because we’ve featured his paper creations before, including this working organ and a tiny working single cylinder engine. We’re pleased with his foray into the digital world, and we’re looking forward to whatever is next.
The aptly named [Clickity Clack]’s new YouTube channel promises to be very interesting if he can actually pull off a working computer using nothing but relays. But even if he doesn’t get beyond the three videos in the playlist already, the channel is definitely worth checking out. We’ve never seen a simpler, clearer explanation of binary logic, and [Clickity Clack]’s relay version of the basic logic gates is a great introduction to the concepts.
Using custom PCBs hosting banks of DPDT relays, he progresses from the basic AND and XOR gates to half adders and full adders, explaining how carry in and carry out works. Everything is modular, so four of his 4-bit adder cards eventually get together to form a 16-bit adder, which we assume will be used to build out a very noisy yet entertaining ALU. We’re looking forward to that and relay implementations of the flip-flops and other elements he’ll need for a full computer.
Add some feedback to an original NES controller by making it vibrate. This feature is often known as Rumble Pak, a controller add-on for the Nintendo 64 which vibrated as a game feature. This version adds a small DC motor (in the upper right) with a screw soldered off-center to the motor shaft.
[Andy Goetz] and his friend built this as a robot controller, taking advantage of the latch and clock pins. Normally, nothing happens while both pins are held high, a signal that they easily patched into using an AND gate. This is actually a neat find, as the addition of an internal microcontroller could add bi-directional communication when the latch is high and the clock is strobed.