Challenge - 5 Problems
VHDL Combinational Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate2:00remaining
Output of a simple combinational process
What is the output of the following VHDL process when inputs A = '1' and B = '0'?
VHDL
process(A, B) begin if A = '1' and B = '1' then Y <= '1'; else Y <= '0'; end if; end process;
Attempts:
2 left
💡 Hint
Think about the condition and the input values.
✗ Incorrect
Since B is '0', the condition A = '1' and B = '1' is false, so Y is assigned '0'.
🧠 Conceptual
intermediate2:00remaining
Why combinational logic is fundamental in VHDL
Why is combinational design considered the foundation of VHDL?
Attempts:
2 left
💡 Hint
Think about what combinational logic means in hardware.
✗ Incorrect
Combinational logic produces outputs based only on current inputs without memory, making it easy to model and simulate in VHDL.
🔧 Debug
advanced2:00remaining
Identify the error in combinational process sensitivity list
What error will occur with this VHDL process and why?
process(clk)
begin
Y <= A and B;
end process;
VHDL
process(clk)
begin
Y <= A and B;
end process;Attempts:
2 left
💡 Hint
Consider what signals must be in the sensitivity list for combinational logic.
✗ Incorrect
For combinational processes, all input signals used must be in the sensitivity list to update outputs correctly.
📝 Syntax
advanced2:00remaining
Correct syntax for combinational assignment
Which option shows the correct VHDL syntax for a combinational assignment of Y as AND of A and B?
Attempts:
2 left
💡 Hint
Remember the assignment operator in VHDL for signals.
✗ Incorrect
In VHDL, signal assignment uses '<=' operator, not '=', ':=', or '=='.
🚀 Application
expert2:00remaining
Number of output changes in combinational logic
Given the following VHDL combinational process, how many times will output Y change if inputs A and B cycle through all combinations (00, 01, 10, 11) once?
VHDL
process(A, B) begin Y <= A xor B; end process;
Attempts:
2 left
💡 Hint
Trace output Y for each input combination change.
✗ Incorrect
Y changes whenever A xor B changes. Cycling through 00(0)->01(1) change, 01(1)->10(1) no change, 10(1)->11(0) change. Total 2 changes.