Well, this is a bit of a surprise. I just received an email from Mike Santarini, who is the publisher of the Xilinx Xcell Journal magazine. Mike pointed me to the Website for a guy called Nick Johnson, who has built his own FPGA out of discreet (7400-series) components.
Apparently, this was Nick's entry to the Open 7400 Logic Competition on the Dangerous Prototypes Website. I've never heard of these guys before, but they look to be very, very interesting. The tagline for their site is "A new open source hardware project every month."
When we say "discrete logic," we're typically talking about simple, 14-pin or 16-pin DIL (dual in-line) silicon chips, each of which contains a handful of logic functions like six inverters, or four 2-input AND gates, or a couple of D-type flip-flops.
As Nick points out on his blog, hobbyists often build simple microprocessors out of discrete logic as an interesting and instructional exercise, so he decided that building his own FPGA out of discrete devices would be similarly educational.
As we know, the fundamental building block that forms traditional programmable fabric is the logic block, or logic element, each of which contains a lookup table (LUT), a flip-flop, and a smattering of other functions.
Well, in the image below, each of the small, white circuit boards implements a single logic block. The small boards plugged into the sides carry switches that are used to provide values to the inputs. The entire thing is programmed using an Arduino (not shown in this image).
Come on, you have to admit that this is rather cool. The truly amazing thing is that this really makes you realize how far we’ve come in regard to silicon chip fabrication and packaging technologies. When I was a lad, 7400-series TTL logic devices were pretty much "state of the art" -- before that you had to build everything out of individual transistors. Now, a high-end FPGA can contain billions of transistors, implementing hundreds of thousands of programmable logic blocks, that can represent functionality equivalent to tens of millions of logic gates.
As physically large as it is, Nick's discrete logic implementation is equivalent to the tiniest fraction of a percent of the logic capability provided by a modern FPGA. For your delectation and delight, Nick has provided a video on YouTube. I LOVE this stuff!
One point I noted was that Nick is using an Arduino to program his DIY FPGA. This made me think that the Papilio FPGA development board employs an FPGA that can be configured to look like an Arduino processor. Sometimes the recursive nature of all this really makes my head spin. What do you think? Wouldn't you like to play with one of these little DIY FPGA beauties?
@Myplanet: I've ben trying to get contact details for the guy who created this to see if we can persuade him to join us here on All Programmable Planet -- it looks like he did a very nice job creating this.
Max, Amazing. I am suggesting you to bring more peoples to our community having similar experiments and related works. This is a very interesting and encouraging work, which may not get sparked in everybody's brain.
@imac: I agree -- I look forward to seeing your implementation (grin).
In reality, this was for a competition to build something interesting out of discrete logic devices. Personally, I applaud this guy for coming up with an idea I would never have thought of in a million years...
The appellation "primary colors" refers to a small collection of colors that can be combined to form a range of additional colors, but which "small collection of colors" should we use as our primaries?