It's time to bring FPGA design to the masses

(this is part of a paper originally proposed for a conference)

Abstract: making custom integrated circuits at home or school that are more powerful and much more flexible than the popular Open Source Arduino platform is still a relatively unknown concept. This activity, however, is not just much more affordable and easy today than just a few years ago thanks to FPGAs: it may also have important social and educational consequences. The first part sums up the current status of certain technologies and their unique nature; you should really read that first unless you already know what Arduino and FPGAs are. This page discusses why and how to spread knowledge of those technologies through society.

Unlike what happens with Free Software, or even with Arduino, making custom integrated circuits at home is still a relatively unknown concept, even if the technology is now affordable. Many people, including hobbyists, don’t really know or ever think about this. Certain activities are still considered as very esoteric, highly difficult and specialized jobs for very gifted, full time professionals. There is no doubt that this is still the case when you need to push technology to the limit, but the barrier to use FPGAs for something useful for normal folks is much lower today.

This is relevant because today’s world, beginning by its communication and culture production systems, is built on invisible stuff (software) that runs inside something even invisible, since transistors are extremely small and locked inside plastic cases. Microelectronics is seen as the exclusive realm of powerful corporations that can afford the extremely expensive machinery that fabricates the basic integrated circuits. But while this is true, at least in the foreseeable future, if we look at the production of “empty” FPGAs, that is not the case for the digital circuits, too complex to be made with Arduino and similar boards, that everybody can build with them.

This has huge social implications, because what can be made with FPGAs isn’t just products that are only relevant and useful for rich people in first world cities. FPGAs can be the basis for “mass customization” of many small and economical but advanced microelectronic products very useful in all fields of science, education and manufacturing, from hydroponic control systems to home-made robots.

Prof. Ahrun Mehta gave in Telecom infrastructure for the new age a perfect example of this, by discussing FPGA-based communications in rural villages:

Imagine a device in the village, which recognizes one's GSM or CDMA phone, or even one's Bluetooth headset, `[reconfigures its FPGA on the fly to be a transmitter/receiver for that particular phone or headset to let her owner]` make the calls, free of cost, through the Internet `[even where there's no cell phone coverage, but maybe only a satellite link]`.
That same device could be the community radio or TV transmitter, ham radio, and myriad other products rolled into one – just as the PC lets you run a spreadsheet one minute, and a chat programme next, or even alongside. Think of the ways in which it could help a blind person navigate using GPS, recognise street names and billboards, and use the Internet at WiFi hotspots.

What is required for this to become reality? The realisation by NGOs, that they do not have to wait for multinational telecommunications giants to come to their village, or develop a cheap solution for their problem. When people take charge of their own telecommunications, they get the benefits of broadband connectivity much quicker, at far lower cost, while creating local jobs.

While the specific scenario and need described by Dr Mehta is somehow superated or solved by the diffusion of relatively unexpensive smartphones, it shows fairly well the general potential. Even if, after one year, the arrival of cheap smartphone made that device obsolete as a telephony gateway, it could continue to be useful to the community in many other ways, becoming solar panel and battery controller to an educational platform similar to the XO minicomputers of the One Laptop Per Child project.

At the educational level, teachers in the many high-schools that already have computer or electronic labs may want to add FPGA design to their activities (and probably they should) to keep students interested and motivated, and to provide them with useful skills. However, stimulating students to learn FPGA design has long term advantages bigger than those, already relevant, of giving them very valuable job skills.

Teaching to design FPGAs passes the message that everybody can contribute to design, if not build from scratch, even the most complex and more critical parts that make our society work. It’s the next logical step, and much more empowering, after Free Software: “don’t just create software for computers, create the computer themselves”. It’s the same difference between being able to buy an existing house to do whatever you want inside it, and being actually able to build and assemble bricks and other raw material to build from scratch a house that matches exactly all and only what you really want and need from it. Teaching FPGA design also fosters a culture of efficiency, reuse and may reduce e-waste.

Conclusion

The current costs of FPGA development boards, the possibility to order custom ones at relatively affordable prices and the availability of communities like opencores.org make it possible and worthwhile to spread the knowledge of how to design and use FPGAs and other field-programmable chips outside academia and high-tech industry in which it lives today.

In order for this to happen, it is necessary to work on two main lines of action. The first is to create proper educational resources: manuals, tutorials and other documentation that, unlike those already existing, are specifically targeted to average high-school students and home hobbyists without any previous knowledge of microelectronics.

The second line of action is creating interest and motivation to use those resources, that is spread the message among high schools and NGOs worldwide. This should be done by writing much more detailed versions of this paper, that discuss in detail specific projects, and setting up “FPGA for social development” contests reserved to students and NGO members.