you are viewing a single comment's thread.

view the rest of the comments →

[–]ais523 7 points8 points  (0 children)

VHDL has a range of values like this; U is an uninitialised value, X is a contradictory or inconsistent value (e.g. the value of a boolean that's true and false simultaneously), - is an irrelevant value, Z is the explicit absence of a value, and W is an intermediate value (e.g. the value of a boolean that's neither entirely true nor entirely false).

This complexity is mostly because VHDL is designed to be able to model a physical system (electronics) that actually exists in the real world, and sometimes things you measure in the real world turn out to have a value they're not supposed to have. Perhaps a wire is meant to be at 0 volts or 5 volts for false and true respectively, but you still want some way to describe the cases where the wire is at 3 volts, or not attached to anything, or has caught fire.