STD_LOGIC value set (IEEE 1164): Which of the following is not a valid STD_LOGIC scalar value? (Choose the exception.)
-
A'z'
-
B'U'
-
C'?'
-
D'L'
Answer
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:'?'