Adventures in Programmable Logic – Introduction

Back in the very early 1980’s, as a young student of Electrical Engineering, I remember a particular Digital Design class where the lecturer described custom logic devices (as they were then known).

He described two in particular:

ASICs (Application-Specific Integrated Circuits) – which are silicon chips that have been customised by the end user (usually a product manufacturer) for a particular use. These are still widely used (though much more advanced versions than those in the ‘80s) in many household and industrial products. The difficulty is that there is a very significant cost in setting these up, and they are only practical for large volumes (think millions, both dollars and quantity).

https://en.wikipedia.org/wiki/Application-specific_integrated_circuit

PLDs (Programmable Logic Devices) – which are chips that can be programmed “in the field” by the end user to replace many 7400-series TTL devices.

https://en.wikipedia.org/wiki/Simple_programmable_logic_device

Note that the naming of these devices has changed and evolved over the years, with some even being retroactively renamed to avoid confusion with later devices. I will, wherever possible, use the currently understood terminology.

You could hear the interest in the class in the idea of being able to design our own devices, as we had already spent months working with Karnaugh Maps and designs using 7400-series devices. However, the lecturer immediately told us to calm down as there were many practical limitations.

  • The devices were very expensive.
  • They were programmed by “burning fuses” using a special programmer, which itself was even more expensive (think the price of a medium car).
  • The programming was not erasable, so these were One Time Programmable (OTP) devices. If there was a mistake, you threw away the (very expensive) dud, and “burnt” a new version.

For these reasons, the school did not use them, and we should not even think about using them in our assignment projects. You could almost feel the disappointment in the class.

And that is where things stood for me for the next four decades, as after I graduated and left home, I went into software development, and didn’t have access to a workshop for hobby electronics.

After I retired, and during the “global human malware crisis” of 2020/21, I found that I had a lot of spare time and ended up watching a lot of YouTube videos, especially about “Retro computers” – which I fondly remembered as the latest things to have when I was at school.

These were machines like the:

  • Commodore 64 and VIC-20 (both of which I had)
  • ZX 81 and ZX Spectrum
  • Apple II
  • Atari Home Computers
  • and many others

Often the YouTubers would mention things like “the GAL chip has failed” – which seemed to be a particularly difficult problem as the modern equivalents were not direct replacements. They would also talk about replacing a custom chip (an ASIC), or even a whole machine, with an “FPGA project”.

This piqued my interest, and I ended up going deep into the rabbit hole researching what had been happening with programmable logic during the intervening decades, and I had missed a lot.

Some history

Much of the development of these devices was driven by industry, which very much wanted (even needed) something to fill the gap between 7400-series logic chips and ASICs. In particular, a low-cost device that could easily prototype ASIC designs, or even be used directly for small production runs.

The first devices were PROMs and EPROMs (and later EEPROMs), which were non-volatile Read Only Memorys. PROMs were OTP by “fuses”, EPROMs were erasable by UV light, and EEPROMs were electrically erasable. While these did not do any logic themselves, they could be used as lookup-tables to implement combinational logic.

Lookup-tables became the core part of the Macrocell, which is the fundamental unit of programmable logic devices (such as FPGAs).

https://en.wikipedia.org/wiki/Macrocell_array

A funny story about this was that one of the students in my class was assigned a project that needed a lot of combinational logic (I can’t remember what it did, but there were a lot of inputs and outputs), and he decided to use an EPROM (which were common at the time) as a lookup-table. But when he showed the lecturer, he said, “That’s cheating” and to use 7400-series devices instead. Now I can understand why the school might have preferred that the student get experience with 7400-series design, but it was never explained why using an EPROM would be “cheating”?

So after great effort, the student produced a 7400-series design – it was over thirty chips and needed three PCB boards to hold them all. (Note that these were single-sided boards, with the tracks designed by hand with tape, then etched. And the school had a maximum board size that its equipment could handle.). The lecturer took one look at the design and declared it “ridiculous” and that it could be better.

Well, after all of the faculty had tried to make improvements, the design was just under thirty chips (which still needed three boards) – and it never worked correctly. In his own time, the student built a prototype of his original EPROM design using about six chips, and it worked first time.

This story highlights the challenges faced by industry at the time. These days that design could have been made in code (using Verilog or VHDL) and put on an FPGA development board in an afternoon, but back in the early ‘80s, this was months of work, including building actual hardware prototypes.

In this series I will explore some of my experiences with currently available Programmable Logic Devices (SPLD/CPLD/FPGA). This is not intended to be a comprehensive review of current practice, or a detailed history – there are other great resources for this information.

References

https://en.wikipedia.org/wiki/Simple_programmable_logic_device

https://en.wikipedia.org/wiki/Complex_programmable_logic_device

https://en.wikipedia.org/wiki/Field-programmable_gate_array


History of the FPGA

https://digilent.com/blog/history-of-the-fpga


The development history and overview of programmable logic devices

https://en.eeworld.com.cn/news/qrs/eic42433.html

Reproduced with permission from Secret Diary of a Geek

Scroll to Top