A venture in retrotronics
Background: FPGAs, HDL, (System)Verilog, VHDL
Hardware is software
Hardware is mainly a software affair: the structure and inner workings of an Integrated Circuit (IC) are defined in a specification language and compiled into a chip layout – much like the way a software program representing an algorithm is compiled into an executable. From a computer-science point of view, the two are equivalent.
From a practical point of view, hardware licences are very similar to, or the same as, those used in the open-source software world. Likewise, the use of these licences facilitates collaborative development, reuse and interoperability. Although some designers use existing open-source software licences, others prefer licences that specifically address hardware specifications, like the TAPR Open Hardware License and the CERN Open Hardware Licence.
Tooling and terminology
What's different is the tooling and terminology used in hardware design: A digital design – or an IP core – is specified on Register-Transfer Level (RTL) in a Hardware Description Language (HDL), most commonly VHDL or (System)Verilog.
In a first step called logic synthesis these specifications are translated into a netlist of logic gates and circuits, i.e. a network of computational electronic components.
In a second step called place-and-route, these components are mapped onto the gate arrays and logic blocks of an actual chip. For an ASIC this results in a photo-lithographic mask set. For an FPGA it results in a configuration bitstream that is loaded at boot.
During all stages, from the logical to the electrical level, simulation and verification is done to validate the design. Notable open-source tools in this area are Verilator and Ngspice. The latter is also an integral part of KiCad, the open-source PCB design suite described here.
While the format of the bitstream typically is proprietary to the manufacturer of a specific FPGA chip, for some commercially available chips the whole process just described can be performed using open-source tools. A notable example is the IceStorm toolchain that produces a bitstream for the Lattice iCE40 series of FPGAs from a Verilog specification. Even makers can enter this high-tech arena starting with the crowdfunded, open-source TinyFPGA BX development board, which sells for about EUR 35.00.