0
0
VhdlComparisonBeginner · 4 min read

Transport vs Inertial Delay in VHDL: Key Differences and Usage

In VHDL, transport delay models the exact signal propagation time without filtering glitches, while inertial delay models real hardware behavior by ignoring pulses shorter than the delay time. Transport delay passes all changes, but inertial delay filters out short pulses as noise.
⚖️

Quick Comparison

Here is a quick table comparing transport and inertial delay in VHDL across key factors.

FactorTransport DelayInertial Delay
PurposeModels exact signal delayModels real hardware filtering
Pulse FilteringNo filtering; all pulses passFilters pulses shorter than delay
Default Delay TypeNo (must be specified)Yes (default in VHDL)
Use CaseIdeal signal propagationRealistic hardware timing
Effect on Short PulsesShort pulses appear at outputShort pulses are suppressed
Syntax Examplesignal <= transport value after time;signal <= value after time;
⚖️

Key Differences

Transport delay in VHDL models the pure propagation delay of a signal without any modification. It means every change on the input signal is delayed by the specified time and then passed to the output, regardless of how short the pulse is. This is useful when you want to simulate ideal wires or channels where no pulse is lost.

On the other hand, inertial delay models the physical behavior of real hardware components that cannot respond to very short pulses or glitches. It ignores any input pulse shorter than the specified delay time, effectively filtering out noise or glitches. This is the default delay type in VHDL when no keyword is specified.

In summary, transport delay passes all pulses delayed exactly, while inertial delay filters out pulses shorter than the delay, making it more realistic for hardware simulation.

⚖️

Code Comparison

This example shows how to assign a signal with transport delay in VHDL. The output signal will reflect all input changes delayed by 10 ns, including very short pulses.

vhdl
process(input_signal)
begin
  output_signal <= transport input_signal after 10 ns;
end process;
Output
Output signal changes exactly 10 ns after input changes, including short pulses.
↔️

Inertial Delay Equivalent

This example shows the same assignment using inertial delay, which is the default. Short pulses on the input shorter than 10 ns will be ignored and not appear on the output.

vhdl
process(input_signal)
begin
  output_signal <= input_signal after 10 ns; -- inertial delay by default
end process;
Output
Output signal changes 10 ns after input changes, but short pulses less than 10 ns are filtered out.
🎯

When to Use Which

Choose transport delay when you want to simulate ideal signal propagation without losing any pulses, such as modeling wires or communication channels. It is useful for timing analysis where every glitch matters.

Choose inertial delay when you want to simulate realistic hardware behavior that ignores glitches or very short pulses, such as gates and flip-flops. It helps avoid false triggering in your simulation.

Key Takeaways

Transport delay passes all input changes delayed exactly, including short pulses.
Inertial delay filters out pulses shorter than the delay time, modeling real hardware.
Inertial delay is the default delay type in VHDL.
Use transport delay for ideal signal timing and inertial delay for realistic hardware simulation.
Specify transport delay explicitly using the 'transport' keyword.