How to create your own Integrated Circuits?

There are basically two options:

Programmable ICs based on pure Logic

Every hardware designer has a deep wish to build his own integrated circuits. I'm no exception on that. The design of real ASICs (Application Specific Integrated Circuits) or so called full-custom chips is very expensive. For hardware hobbyists or for small-scale companies it is almost completely impossible to take this approach.

For that reason, most electronic devices (except mass-production stuff) from the seventies and the eighties were completely messed up with simple ICs such as logic gates, flipflops, etc. Of course, that was already a very big advantage in comparison to designs built completely out of discrete transistors.

Back to the roots of my hardware activities in the beginning of the nineties, I started to use so-called GALs (Generic Array Logic) for my designs. These were rather small programmable logic devices. But many things could be implemented there that would require lots of standard ICs otherwise.

Later, Lattice Semiconductor (on of the inventors of programmable logic devices) introduced the so-called ispLSI (in system programmable Large Scale Integration) series. The ispLSI series belongs to the class of CPLDs (Complex Programmable Logic Devices). Roughly explained, the ispLSI devices combine multiple GALs in one chip while adding many additional features. One feature is the "in system progammability". This removes the need of special programming hardware - the chips are just soldered onto the board and can be programmed (and, of course, also re-programmed) later.

At the university I worked also with FPGAs (Field Programmable Gate Arrays), especially with the ORCA series introduced by Lucent Technologies. Typically, FPGAs have a much higher gate count than CPLDs. So they are a good choice for data path intensive designs. In contrast, CPLDs are a good solution for ultra-fast control paths.

In the year 2002, Lattice finally bought the FPGA branch of Lucent and continues manufacturing and developing these ORCA FPGAs (what a coincidence :-). Since my need for gate count for my private projects has increased over the time, I would like to use these ORCA FPGAs there as well. However, unfortunately Lattice has not yet released free development tools for these FPGAs and so I recently migrated to the biggest competitor: Xilinx

For more information about Lattice and Xilinx see their respective web sites:

No, I do not get money from these companies and there are many others active in the area of programmable hardware. Perhaps I can provide a more complete list here some day...

Programmable ICs based on Micro Controllers

Another approach for putting some functionality into a single chip is to use some micro controller. The fundamental difference between a micro controller and a programmable logic device is that the micro controller is working like a computer that is executing a programm. In contrast, a programmable logic device is being programmed in order to calculate some boolean equations and to store some values in flip flops etc. Also, a programmable logic device is massively parallel and everything is done concurrently. Instead, a micro controller can only execute one program at a time and even this has to be done step by step (instruction by instruction). Hence, a certain functionality that could be done within one clock cylce in an FPGA might need hundreads of cycles in a micro controller.

Anyways, micro controllers are getting more and more important and also become more and more sophisticated. They include a CPU, ROM, RAM, programmable IO-lines, and - depending from the type - lots of special-function units.

Micro controllers are primarily used in areas where speed is not a major concern. When it's going to embedded controlling systems with rather complicated algorithms it is mostly nonsense and even impossible to implement this functionality in a programmable logic device. Sometimes micro controllers are even implemented inside programmable logic devices to get things done (as soft- or hardcore). Due to power- and space-saving reasons it is also not feasible to make use of standard desktop processors together with all the things required around it.

So far I have been working with PIC microcontrollers from Microchip and 8051 derivates from Cypress.

Last modified: 26. February 2004 by Mario Trams
Email: Mario.Trams@digital-force.net