| • Science | • People | • Locations | • Timeline |
| Contents | ||
VHDL was originally developed at the behest of the US Department of Defense in order to document the behaviour of the ASICs that supplier companies were including in equipment. That is to say, VHDL was developed as an alternative to huge, complex manuals which were subject to implementation-specific details.
As should be obvious from the example code below, VHDL has a syntax similar to Pascal and Ada, thus being a descendant of Algol. VHDL is case insensitive.
The idea of being able to simulate this behaviour was so obviously attractive that logic simulator s were developed that could read the VHDL files. The next step was the development of logic synthesis tools that read the VHDL, and output a definition of the physical implementation of the circuit. Modern synthesis tools can extract RAM, counter, and arithmetic blocks out of the code, and implement them according to what the user specifies. Thus, the same VHDL code could be synthesized differently for lowest cost, highest power efficiency, highest speed, etc.
The initial version of VHDL, to standard IEEE 1076-1987, included a wide range of data types, including numerical ( integerThe integers consist of the positive natural numbers (1, 2, 3, …) the negative natural numbers (−1, −2, −3,. and the number zero. The set of all integers is usually denoted in mathematics by Z (or Z in blackboard bold, ), which st and real), logical ( bitThis article is about the unit of information, see Bit (disambiguation) for other meanings. A bit (abbreviated b is the most basic information unit used in computing and information theory. A single bit (short for b inary dig it is a zero or a one, or a t and booleanIn mathematics and computer science, Boolean algebras or Boolean lattices are algebraic structures which "capture the essence" of the logical operations AND, OR and NOT as well as the corresponding set theoretic operations intersection, union and compleme), characterFor alternate meanings, see character. In computer terminology, a character is a unit of information that roughly corresponds to a grapheme, or written symbol, of a natural language, such as a letter, numeral, or punctuation mark. The concept also include and timeFor alternate uses of "time", see Time (disambiguation). Time quantifies or measures the interval between events, or the duration of events. Time has long been perceived as a dimension in which each event has a definite (but not necessarily unique) positi, plus arraysIn computer programming, an array also known as a vector or list, is one of the simplest data structures. Arrays hold a fixed number of equally-sized data elements, generally of the same data type. Individual elements are accessed by index using a consecu of bit called bit_vector and of character called stringGenerally, string is a thin piece of fiber which is used to tie, bind, or hang other objects. String can be made from a variety of fibres. You can get different kinds, twine for example. The term has more specific meanings, within certain academic discipl.
A problem not solved by this edition, however, was "multi-valued logic", where a signal's drive strength (none, weak or strong) and unknown values are also considered. This required IEEE standard 1164, which defined the 9-value std_logic.
The second issue of IEEE 1076, in 1993, made the syntax more consistent, allowed more flexibility in naming, extended the character type to match the full 8-bit ASCII definition, added the xnor operator, etc.
More recently, the language has been extended by introducing