HDL

Hardware Description Language

A language to describe circuits, the base of computer hardware, etc.

Speaking of a HDL usually assumes that digital circuits are described, but there are languages for the description of analog circuits too.

Examples of such languages are [Verilog-HDL], [VHDL], Niklaus Wirth's LoLa , the Perl module [Perl::HDL], the Scala-based CHISEL and the Pythonic MyHDL . Systems based on Haskell and other languages also exist. More information can be found at http://en.wikipedia.org/wiki/Hardware_description_language .


Without question the most well known analog circuit description/simulation language is called spice, originating from berkeley, I think. It does an accurate simulation of real electronics parts, with great accuracy (parts of a percent easily, depending on how well the parameters of the parts are known), and also for very complicated circuits, which require simulation of complex non linear differential equations. HDL's, when they also include simulation or circuit verification limit themselves to logical circuits, which can be simulated a lot faster on computers. Since every circuit is essentially made of electronics. Or physics of course, which operationwise can be quite well modeled as complicated electronics part, with lets say a handfull parameters for simple, linear parts like resistors, and reactive elements, and maybe 80 or 200 for transistor-like parts.

HDL when they simulate will somehow have to deal with what in electronics simulations is obvious: the eigenvalues of the functions of its state machine, and how they can be identified, see some of my Theo Verelst pages on such subjects. Normal hardware can either be like a function, on one extreme end, or like memory. In electronics, every reactive element has a single, continuous state variable associated with it, explicitly or implicitly, which shows up in the overall differential equation which describes the circuit, and its input-output behaviour.

The relevance here is that certain distinctions and theoretically tainted assesments do absolutely not come from software engineering considerations or even mathematicals about such sec subject, but from physics and electrical engineering, where mathematically very complicated circuits were designed and verified long before the time even the transistor, let alone the modern software engineer were born.

The point of that in the tcl (not so much tk) area is that it is fun and quite practical to play around with hardware like descriptions in tcl, which is a very good idea to grasp the concepts of making machinery which is designed correctly and has verifiable behaviour, instead of sending some messages from some classes here and there and hoping God will bless what the program will do. Which He may not, and then some core dump happens again, or we need another service pack. TV