Jack Gassett continues his tale as to how he came to create the Papilio FPGA Development Platform...
After years of thought, I came to the conclusion that what I wanted to be was an inventor, not an engineer. Engineering is great if you need to build a bridge that lasts for hundreds of years and will never endanger human life. In my mind, this encapsulates the difference between an engineer and an inventor. Engineering is focused on getting every little detail worked out to perfection because lives or millions of dollars are at stake. By comparison, invention is about creating something that never existed before and is not yet well understood. Apart from anything else, this means that you are not likely to get all the details right the first time, because what you are doing has never been done before.
Good engineering requires specialization and a deep understanding of a specific topic, while being a good inventor requires the opposite. A good inventor needs to have a broad understanding of available technology, coupled with the ability to catalog the connections between different facets of technology and make new connections to create something unique. Once I had come to the realization that engineering and inventing are related, but are at opposite ends of the spectrum, I knew that invention is what comes naturally to me and that's what I wanted to do. My next realization was that there is no clear cut path to become an inventor -- there is no college degree or even a clear example to follow. All I knew was that I wanted to become an inventor and that I would have to figure out how to make this a reality on my own.
While I was growing up, I devoured every Robert A. Heinlein book I could lay my hands on. In one of these books, an engineer travels back in time, and the first thing he does is build his own tools before he starts inventing things. That always stuck in the back of my mind, so when I decided to become an inventor I figured I needed to do the same thing -- that is, I needed to make a platform for inventions.
While I was researching embedded Linux devices, I came across ucLinux running on an FPGA. I was intrigued by the concept of a System-on-Chip (SoC) type of device that could be reconfigured on the fly. As I did more and more research, I began to put all the pieces together and realized that places like OpenCores.org had building blocks that could be coupled with soft processors to make SoC's on an FPGA.
This whole concept floored me. You could use a computer to design a system that would have VGA, USB, an SD card, and whatever else you needed, then load the whole thing onto a circuit board that becomes what you designed, all without being locked into a chip that was set in stone and would be obsolete in a couple of years' time.
At first I thought that maybe I was not understanding everything correctly. Why was this not more widespread? I bought a development kit from Xilinx, quickly got ucLinux up and running on the board, and then I began experimenting with cores from OpenCores.org. During this learning process, I used a starter kit from Xilinx and cool open-source cores like the Sump logic analyzer to help debug things. Along the way, I began to understand that what I thought was possible was indeed possible, but also that there were good reasons why it was not more widespread.
In addition to the steep learning curve, all the FPGA boards on the market had the same problem I'd experienced when I was doing hacks in my basement, which is that you can't duplicate your work very easily. The Sump logic analyzer provided a great example of this problem. It's a great core that was developed and targeted for the Spartan 3E Starter kit. If you are a beginner who is lucky enough to have that starter kit, then you can use this amazing tool. But if you have a different starter kit, you are going to have to invest a lot of time getting over the learning curve before you can port the Sump logic analyzer to the FPGA board you do have.
The other problem is that, as an inventor, if you make something for an FPGA board that you want to share with the world, it is not very practical to buy something like the Spartan 3E starter kit, for example. The reason I say this is that this kit was on a special offer for $99 when I bought it, sometimes it sells for $150, and right now it is selling for $399. Oh, and you don't need the majority of features that come on that board either. As you can imagine, very few people will use your work with that type of a scenario.
Editor's Note: In Part 2, Jack describes the birth of the Gadget Factory and his Papilio FPGA Development Platform.