STD_LOGIC value set (IEEE 1164): Which of the following is <em>not</em> a valid STD_LOGIC scalar value? (Choose the exception.)

Difficulty: Easy

Correct Answer: '?'

Explanation:


Introduction / Context:
STD_LOGIC (IEEE 1164) extends binary logic to a 9-value set to model unknowns, high-impedance, weak/strong drives, and don’t-care conditions. Recognizing valid symbols prevents type errors and clarifies waveform interpretation during simulation.



Given Data / Assumptions:

  • Scalar STD_LOGIC values: 'U', 'X', '0', '1', 'Z', 'W', 'L', 'H', '-'.
  • Case is significant as typically shown in documentation (e.g., 'U' vs 'u').
  • Question asks for the invalid (non-member) symbol.


Concept / Approach:
Compare each option to the IEEE 1164 set. A symbol present in the list is valid; anything outside is invalid. Remember that '-' is the don’t-care symbol; there is no '?' in the standard value set.



Step-by-Step Solution:

Check 'z': equivalent to 'Z' (high-impedance). Tools typically accept uppercase; the concept is valid.Check 'U': uninitialized/unknown → valid.Check '?': not part of IEEE 1164 STD_LOGIC → invalid.Check 'L': weak 0 → valid.


Verification / Alternative check:
Consult any IEEE 1164 reference: set includes {U, X, 0, 1, Z, W, L, H, -}. The question mark is not included; '-' serves as don’t-care.



Why Other Options Are Wrong:

'z': Represents high-impedance; valid (typically written uppercase as 'Z').'U': Uninitialized; valid.'L': Weak 0; valid.


Common Pitfalls:
Confusing '-' (don’t-care) with '?'; mixing case conventions; assuming simulator-specific aliases are part of the standard.


Final Answer:
'?'

Discussion & Comments

No comments yet. Be the first to comment!
Join Discussion