Difficulty: Easy
Correct Answer: Incorrect
Explanation:
Introduction / Context:
Understanding how VHDL models storage is essential for writing synthesizable code. Designers often confuse VHDL variables with hardware registers. This item checks whether a remembered (stored) value must be implemented with a VARIABLE, or whether SIGNAL-based coding in clocked processes is the normal route for storage inference.
Given Data / Assumptions:
Concept / Approach:
In synthesizable VHDL, storage inference comes from the presence of clocked processes (if rising_edge(clk)) and signal assignment patterns that require state to be held between clock events. VARIABLES are convenient for temporary values in a process activation, while SIGNALs represent wires and registers across delta cycles and clock edges. Registers are created because of the sequential semantics and clock conditions, not because a VARIABLE is used.
Step-by-Step Solution:
Verification / Alternative check:
Synthesis reports list inferred registers from SIGNAL assignments under clocked conditions, confirming that VARIABLES are not mandatory to “remember” values.
Why Other Options Are Wrong:
“Correct” reverses standard synthesis practice. “Applies only in testbenches” and “Applies only with shared variables” are misleading edge cases that do not define storage inference rules.
Common Pitfalls:
Confusing simulation convenience of VARIABLES with actual hardware registers; forgetting that registers arise from edge-guarded SIGNAL assignments and required state retention.
Final Answer:
Incorrect
Discussion & Comments