"What The Hardware Does" is not What Your Program Does: Uninitialized Memory

Having learnt just enough VHDL to be dangerous, the idea that bits are always zero or one got pushed out; in VHDL modelling of real hardware, a single hardware bit can take on one of nine possible values.

There’s the expected 0 and 1; but there’s also weak 0 and 1 (which can be overriden by a forcing signal to 0, 1 or unknown), weak unknown and strong unknown, high impedance, don’t care and uninitialised. Of these, the last state is a simulation-only state, but the 8 preceding states are all needed to represent what can happen in a real digital chip.

8 Likes