Hardware Description Language

A ProgrammingLanguage, that allows description of hardware in form of bits, gates, flip-flops, buses, pins and physical chip resources.

AllenNewell and GordonBell wrote, in the early seventies, arguably the definitive (at least for its day) treatise on this topic -- see http://research.microsoft.com/~gbell/Computer_Structures__Readings_and_Examples/contents.html.

Newell and Bell specified two related languages (reflecting two abstraction levels), as follows:

Digital systems can be characterized most generally as systems that at any time exist in one of a discrete set of states and that undergo discrete changes of state with time. This is a highly abstract view. Nothing is said about what physical state corresponds to a system state; nothing is said about what laws of physics transform the system from one state to another. The states are given abstract labels: S1, S2, . . . The transitions are provided by a state-transition table with many entries of the form: If the system is in state Si and the input is Ij, then the system is transformed to state Sk and evokes output O1. (Alternatively, a state diagram has the same information.) The virtue of this "state-system" view is that it truly seems to capture what we mean by a discrete (or digital) system. Its disadvantage lies in this same comprehensiveness, which makes it impossible to deal with large systems because of their immense number of states (of the order of 1010 10 states for a big computer).

Existing digital computers can be viewed as discrete state systems that are specialized in three ways. These three specializations make possible a much more compact and useful description of these systems, the one that we call the PMS description.


For the PMS level we ignore all the fine structure of information processing and consider a system consisting of components that work on a homogeneous medium called information. Information comes in packets. called i-units (for information units), and is measured in bits (or equivalent units, such as characters). I-units have the sort of hierarchical structure indicated by the phrase: A record consists of 300 words; a word consists of 4 bytes; a byte consists of 8 bits. A record, then, contains 300 x 4 x 8 = 9,600 bits. Each of these numbers-300, 4, 8-is called a length, since one often thinks of an i-unit as a spatial sequence of the next lower i-units of which it is composed. For example, one speaks of "word length" and of a record being "300 words long."

The behavior of a processor is completely determined by the nature and sequence of its operations. This sequence is completely determined by a set of bits in Mp, called the program, and a set of interpretation rules that specify how particular bit configurations evoke the operations. Thus, if we specify the nature of the operations and the rules of interpretation, the actual behavior of the processor depends solely on the particular program in Mp (and also on the initial state of data). This is the level at which the programmer wants the processor described-and which the programming manual provides-since he himself wishes to determine the program. Thus the ISP (Instruction-set processor) description must provide a scheme for specifying any set of operations and any rules of interpretation.


With these two additional specializations-instructions and data-types-we can define an ISP description of a processor. A processor is completely described at the ISP level by giving its instruction set and its interpreter in terms of its operations, data- types, and memories.

While much has changed since then, the basic concepts are still very much applicable.


View edit of January 6, 2005 or FindPage with title or text search