The Languages of Hardware
Here’s a thought experiment: close your eyes and picture the office of a thriving software company. Say, Facebook or Google. What does it look like? You probably imagine a group of young people strewn about a bright, open office plan. Everyone has between one and ten large-screen monitors. And on those monitors, the one quantity you can be sure you’ll see: code.
Now let’s repeat this experiment, but replace the software group with a similarly successful team designing a chip. (Maybe it’s the same chip that “team A’s” code will run on.) What does this look like?
Many of us likely have a far less vivid idea. Is it the Intel clean-room? A high-tech manufacturing line? Are there robots? Maybe this looks more like a science lab, full of equipment taking measurements and readings of, well, something.
In reality, these activities don’t look terribly different. As we’ll learn, for the past several decades the majority of your electronics have been designed in code. Hardware has its own favorite (and least favorite) languages, and their accompanying programming paradigms. The process by which this code represents, and ultimately generates, a piece of hardware is the central topic of HW Makes SW. Our first stop will be the most widely-used languages and models.