background image

Chapter 1. Tools Utilized

57

Table 5.1: std logic values

Character

Value

’U’

uninitialized

’X’

strong drive, unknown logic value

’0’

strong drive, zero

’1’

strong drive, one

’Z’

high impedance

’W’

weak drive, unknown logic value

’L’

weak drive, logic zero

’H’

weak drive, logic one

’-’

don’t care

The introduction of logic synthesis for HDLs pushed HDLs from the background into the

foreground of digital design. Synthesis tools compiled HDL source files (written in a con-

strained format called RTL) into a manufacturable netlist description in terms of gates

and transistors. A circuit design from a skilled engineer, using labor-intensive schematic-

capture/hand-layout, would almost always outperform its logically-synthesized equiva-

lent, but the productivity advantage held by synthesis soon displaced digital schematic

capture to exactly those areas that were problematic for RTL synthesis: extremely high-

speed, low-power, or asynchronous circuitry.

5.1.1

The IEEE standard

The IEEE Standard 1076 defines the VHSIC Hardware Description Language or VHDL.

It was originally developed under contract F33615-83-C-1003 from the United States Air

Force awarded in 1983 to a team with Intermetrics, Inc. as language experts and prime

contractor, with Texas Instruments as chip design experts and IBM as computer system

design experts. The language has undergone numerous revisions and has a variety of

sub-standards associated with it that augment or extend it in important ways.

The IEEE 1164 standard uses ”multi-valued” signals, where a signal’s drive strength

(none, weak or strong) and unknown values are also considered. As a result a signal of

type std logic can acquire 9 values according to table

5.1

.

his system promoted a useful set of logic values that typical CMOS logic design could

utilize in the vast majority of modeling situations. The ’Z’ literal makes tri-state buffer

logic easy. The ’H’ and ’L’ weak drives permit wired-AND and wired-OR logic. Ad-

ditionally, the ’U’ state is the default value for all object declarations so that during