VHDL Programming

(C. Jardin) #1

20 Chapter Two


based on the sophistication of the synthesis tool and the constraints put
on the design.

Transport Versus Inertial Delay


In VHDL, there are two types of delay that can be used for modeling
behaviors. Inertial delay is the most commonly used, while transport delay
is used where a wire delay model is required.

Inertial Delay


Inertial delay is the default in VHDL. If no delay type is specified, iner-
tial delay is used. Inertial delay is the default because, in most cases, it
behaves similarly to the actual device.
In an inertial delay model, the output signal of the device has inertia,
which must be overcome for the signal to change value. The inertia value
is equal to the delay through the device. If there are any spikes, pulses,
and so on that have periods where a signal value is maintained for less
than the delay through the device, the output signal value does not
change. If a signal value is maintained at a particular value for longer
than the delay through the device, the inertia is overcome and the device
changes to the new state.
Figure 2-4 is an example of a very simple buffer symbol. The buffer has
a single input A and a single output B. The waveforms are shown for input
A and the output B. Signal A changes from a ‘ 0 ’to a ‘ 1 ’at 10 nanoseconds
and from a ‘ 1 ’to a ‘ 0 ’at 20 nanoseconds. This creates a pulse or spike
that is 10 nanoseconds in duration. The buffer has a 20- nanosecond delay
through the device.
The ‘ 0 ’to ‘ 1 ’transition on signal A causes the buffer model to be exe-
cuted and schedules an event with the value ‘ 1 ’to occur on output B at
time 30 nanoseconds. At time 20 nanoseconds, the next event on signal A
occurs. This executes the buffer model again. The buffer model predicts a
new event on output B of a 0 value at time 40 nanoseconds. The event
scheduled on output B for time 30 nanoseconds still has not occurred. The
new event predicted by the buffer model clashes with the currently
scheduled event, and the simulator preempts the event at 30 nanoseconds.
The effect of the preemption is that the spike is swallowed. The reason
for the cancellation is that, according to the inertial delay model, the first
Free download pdf