3.0 KiB
Introduction to HDL and Working with FPGAs
To an unprepared person, it may seem that in these labs we will be studying Yet Another Useless Programming Language, and with that attitude your opinion will most likely not change by the end of the course. This section contains documents intended to prepare you for the lab assignments and to shift your perspective on a few things.
The deeper you engage with the content of these documents, the smoother your experience in studying this course will be.
The recommended reading order is as follows:
- "What is HDL" — this document describes what Hardware Description Languages (HDL) are.
- "How FPGA Works" — this document explains how an FPGA works internally.
- "Sequential logic" — this document covers the classification of digital logic (combinational / sequential), the evolution of bistable cells from an inverter loop to a D flip-flop, the phenomenon of metastability, and the critical path.
- "Implementation Steps" — this document describes the process of implementing a project, from an HDL description of a digital circuit to the configuration of an FPGA with that circuit. Reading it will give a deeper understanding of how an FPGA works and allow you to look at some of its real internal elements.
Note that the second paragraph did not use the word "understand." That word often carries the wrong meaning. One can read a document and understand every word without grasping the meaning behind those words (hearing without listening). In Robert Heinlein's novel Stranger in a Strange Land, a special Martian word is introduced that cannot be translated into any Earth language: "grok," which carries many meanings. At first glance, one might think it simply means "to understand," but that is not so. For example, water is extremely scarce on Mars, and the act of drinking it (in the story, of course) is a full ritual, also described by the word "grok." To grok something means that it has become part of your very being. Applied to information, it means that the information has become part of you and has changed the way you think. To grok is to comprehend something at the deepest possible level — to see the girl in the red dress through the curtain of falling green symbols. Even this paragraph is written so that you do not merely understand that these documents are important to understand — but grok that these documents are important to grok.
In the end, it does not matter what word you use to describe the result of your reading. What matters is this: if after reading these documents you still find yourself using phrases like "declaring a variable" during lab sessions, then something has gone wrong, and your way of thinking is still locked in the "programming" paradigm. That is not necessarily bad — it will simply make the process of studying and completing the lab assignments more difficult.