Foreword

Photo by Sourabh Belekar / Unsplash

Back in 2005 I was going through the papers in an internet conference of electronics engineers, electrical engineers and generally electrical tinkerers and DIYers. Most of the posts revolved around the then popular PIC16C84 single chip, or what equipment was sufficient for a workshop, and suddenly a real amateur entered the discussion. A man for whom microelectronics was a magical world that he was excited to explore and learn about.

At the beginning of the post he apologized for even daring to ask a question (yes, it was part of the etiquette... excuse me, you wise ones, for asking a silly beginner's question), and then asked a great question: If someone could give him some advice on how he could make his dream come true, namely to design his own microprocessor.

And once again, as if by magic, I found myself in 1984 in the district library, in the technology department, holding a book called "Semiconductor Memories and their Applications". Right in the introduction the author described how MOS transistors are created and how they work. It was so clear and understandable that I believed - I really believed! - that it was possible to make such transistors at home on your knee. After all, silicon is everywhere, you could get donors and acceptors somewhere too, it must be possible! And I believed that one day I would create my own semiconductor in a petri dish in the basement! Well, it was 1984, I was 11 years old, living in the Soviet bloc, and it seemed easier to make my own integrated circuits than to hope that one day I would buy them at Elektra on the corner.

Nota bene when I held a book in my hand where it was all described. How to put together gates from transistors, flip-flop circuits from gates, multiplexers, memory cell matrices... just everything. I could even make my own microprocessor, for sure!
I could totally feel the atmosphere of that library and my childhood joy as I traced transistors, silicon structures and circuits in my notebook and designed my own components. In pencil, on paper... I loved the fact that someone kept that dream alive after twenty years and bravely asked, "would you like to be "I want to design my own microprocessor, how do I do it?"

Unsurprisingly, he got an incredible scolding from the conference staff, a plus-minus along the lines of "we're solving real problems here and we're not curious about such crazy fantasies, shoo!" Your own processor? You can't, you'll never be able to do that, no factory will ever make that, no one will ever use that, so don't bother with it.

And after about twenty answers in this style, one of the members of that conference came up and didn't put the interviewer down, but instead encouraged him. He told him not to worry about the talk around him, to give it a try, because he would learn a lot more about electronics than all the other participants in that discussion put together, and not to worry that it wouldn't work, because he would still gain a lot of invaluable knowledge. Finally, he added that the easiest thing to do would be to look at CPLD or FPGA circuits and learn some HDL language that can be used to program those circuits.

How that worked out with the interviewer, and whether he ever designed his own processor, I have no idea. I just remember making a note somewhere in my head: FPGA, HDL, interesting. And then pushed it out for years because it was in the "expensive, unaffordable, not for gaming" box - and I want electronics mostly for gaming.

It wasn't that long ago, like seven years, when suddenly cheap FPGA kits appeared, available even for us bastards, and the first tentative attempts and first designs started to appear. And that's when I bought my first kit, for about a grand, and after a few weeks of experimentation I created a working replica of the PMI-80 microcomputer.

Today, FPGAs are even more affordable, and those of you who have already squeezed the most out of your Arduin, BluePill, and other Raspberry may be starting to look into these circuits. I'm not surprised - the reputation that precedes them is interesting. A circuit that can be anything you can define, isn't that the dream?

Maybe you're a little scared, maybe you have some inner beacon in your head that tells you it's complicated, you can't do it, it won't do any good... Screw the beacon! Seriously! Go for it.

The book you're holding in your hand right now, and which you're about to buy, is exactly what you need to go from being a person who would like to try it to a person who has tried it - and maybe got hooked and will keep going! We'll see what FPGAs actually are, what options you have as an amateur, and then learn one of the universal languages for describing electronics, namely VHLD. We'll also delve into Verilog, learn how to design, test, and simulate circuits, learn how to write basic design elements in VHDL, how to put them together, how to create circuits by describing their behavior, prepare a set of useful elements for your own experiments, and then show not only how to build an entire computer in an FPGA, but also how to make your own microprocessor.

The book is neither a technical manual nor a textbook. It is too colloquial and too popular for that. It won't replace your college scripts, and after reading it you probably won't be ready to join a development lab and make a living as a designer with FPGA circuits. That's not even its goal. Its goal is different: to show you the exciting world of FPGAs and user-defined electronics, which is today's "high-tech" field, to take away the shyness and fear of not understanding it, and to encourage you to try and invent new things.

Even if it's something useless and impractical.

Let's do it!

Comments powered by Talkyard.

Martin Maly

Martin Maly

Programmer, journalist, writer and electronic hobbyist. Vintage CPU lover. Creating new computers with the spirit of 80's.
Czechia