A combinational process is a block of code where outputs depend only on the current inputs, without any memory or storage elements. It models logic circuits like AND, OR gates.
Click to reveal answer
beginner
What defines a sequential process in VHDL?
A sequential process uses clock signals and stores values, so outputs depend on current inputs and past states. It models flip-flops and registers.
Click to reveal answer
intermediate
Which signals are typically in the sensitivity list of a combinational process?
All input signals that affect the output must be in the sensitivity list to ensure the process runs whenever inputs change.
Click to reveal answer
intermediate
Why do sequential processes usually include a clock in their sensitivity list?
Because sequential processes update outputs only on clock edges, the clock signal triggers the process to run and update stored values.
Click to reveal answer
advanced
Give an example difference in VHDL code between combinational and sequential processes.
Combinational: process(a, b) begin c <= a and b; end process; Sequential: process(clk) begin if rising_edge(clk) then q <= d; end if; end process;
Click to reveal answer
What does a combinational process in VHDL depend on?
AOnly current input signals
BCurrent input and past output values
COnly clock edges
DPast input signals
✗ Incorrect
Combinational processes depend only on current inputs, not on past values or clocks.
Which signal is essential in the sensitivity list of a sequential process?
AReset signal only
BNo signals needed
CClock signal
DAll input signals
✗ Incorrect
Sequential processes usually trigger on clock edges, so the clock must be in the sensitivity list.
What kind of hardware does a sequential process model?
AFlip-flops and registers
BLogic gates
CMultiplexers
DCombinational adders
✗ Incorrect
Sequential processes model hardware that stores state, like flip-flops and registers.
If a process has inputs 'a' and 'b' and output 'c', what should the sensitivity list contain for combinational logic?
AOnly 'a'
B'a' and 'b'
COnly 'b'
D'c'
✗ Incorrect
All inputs that affect the output must be in the sensitivity list to update outputs correctly.
Which statement is true about sequential processes?
AThey do not use clocks
BThey update outputs immediately when inputs change
CThey ignore past states
DThey update outputs on clock edges
✗ Incorrect
Sequential processes update outputs only on clock edges, reflecting stored state changes.
Explain the main differences between combinational and sequential processes in VHDL.
Think about memory and timing behavior.
You got /4 concepts.
Describe how sensitivity lists differ for combinational and sequential processes and why.
Consider when the process should run.
You got /4 concepts.
Practice
(1/5)
1. Which statement best describes a combinational process in VHDL?
easy
A. It updates outputs only on clock edges.
B. It produces outputs based only on current inputs without memory.
C. It stores data over multiple clock cycles.
D. It requires a reset signal to function.
Solution
Step 1: Understand combinational logic behavior
Combinational processes produce outputs immediately based on current inputs without storing any previous state.
Step 2: Compare with sequential behavior
Sequential processes depend on clock edges and store data, unlike combinational ones.
Final Answer:
It produces outputs based only on current inputs without memory. -> Option B
Quick Check:
Combinational = current inputs only [OK]
Hint: Combinational = output changes instantly with inputs [OK]
Common Mistakes:
Confusing combinational with sequential processes
Thinking combinational processes use clocks
Assuming combinational processes store data
2. Which of the following is the correct way to start a sequential process in VHDL?
easy
A. process(clk, reset) begin output <= input; end process;
B. process(a, b) begin output <= a and b; end process;
C. process(clk) begin if rising_edge(clk) then ... end if; end process;
D. process begin output <= input; end process;
Solution
Step 1: Identify sequential process syntax
Sequential processes use a clock signal and check for clock edges, typically with if rising_edge(clk).
Step 2: Check options for clock edge usage
Only process(clk) begin if rising_edge(clk) then ... end if; end process; uses rising_edge(clk) correctly to trigger sequential logic.
Final Answer:
process(clk) begin if rising_edge(clk) then ... end if; end process; -> Option C
Quick Check:
Sequential process needs clock edge check [OK]
Hint: Sequential process always checks clock edge with rising_edge() [OK]
Common Mistakes:
Omitting clock edge condition in sequential process
Using input signals instead of clock in sensitivity list
Writing combinational style inside sequential process
3. Given the following VHDL process, what is the output q when d = '1' and the clock rises?
process(clk)
begin
if rising_edge(clk) then
q <= d;
end if;
end process;
medium
A. q becomes '1' only at the rising edge of clk.
B. q never changes because d is not in sensitivity list.
C. q immediately becomes '1' when d changes.
D. q becomes '1' at the falling edge of clk.
Solution
Step 1: Analyze the process sensitivity and trigger
The process triggers only on clk changes, specifically on rising edges.
Step 2: Understand when q updates
q updates to d only at the rising edge of clk, not immediately when d changes.
Final Answer:
q becomes '1' only at the rising edge of clk. -> Option A
Quick Check:
Sequential output updates on clock edge [OK]
Hint: Sequential outputs update only on clock edges [OK]
Common Mistakes:
Thinking output changes immediately with input
Confusing sensitivity list with output update timing
Assuming falling edge triggers update
4. Identify the error in this VHDL process intended as combinational logic:
process(clk)
begin
output <= input1 and input2;
end process;
medium
A. The process must check for rising_edge(clk) to work correctly.
B. The process should not have any sensitivity list.
C. The output assignment should use <= only inside sequential processes.
D. The process sensitivity list should include input1 and input2, not clk.
Solution
Step 1: Understand combinational process sensitivity
Combinational processes must list all inputs that affect outputs in the sensitivity list.
Step 2: Check the given sensitivity list
The process sensitivity list incorrectly has only clk, which is unrelated to the inputs used.
Final Answer:
The process sensitivity list should include input1 and input2, not clk. -> Option D
Quick Check:
Combinational sensitivity = all inputs [OK]
Hint: Combinational process sensitivity must list all inputs [OK]
Common Mistakes:
Using clock in combinational process sensitivity list
Forgetting to include all inputs in sensitivity list
Adding clock edge checks in combinational processes
5. You want to design a VHDL process that sets flag high immediately when input_signal is '1', but also resets flag to '0' on the rising edge of clk. Which approach correctly combines combinational and sequential behavior?
hard
A. Use a combinational process for flag set with sensitivity input_signal, and a separate sequential process triggered by clk to reset flag.
B. Use one process with sensitivity list (clk, input_signal) and inside check rising_edge(clk) to reset flag, else set flag based on input_signal.
C. Use only a sequential process triggered by clk to set and reset flag based on input_signal.
D. Use a combinational process triggered by clk to set flag and a sequential process triggered by input_signal to reset flag.
Solution
Step 1: Recognize need for immediate response and clocked reset
Immediate set on input_signal='1' requires sensitivity to input_signal; clocked reset requires rising_edge(clk).
Step 2: Combine in single process
Using separate processes avoids multiple driver conflicts: one combinational process sensitive to input_signal sets flag immediately, and a separate sequential process triggered by clk resets flag on rising edge.
Final Answer:
Use a combinational process for flag set with sensitivity input_signal, and a separate sequential process triggered by clk to reset flag. -> Option A
Quick Check:
Separate processes for immediate set and clocked reset [OK]
Hint: Separate combinational and sequential processes avoid conflicts [OK]
Common Mistakes:
Using separate processes causing multiple driver conflicts
Omitting input_signal from sensitivity list
Using only sequential process with no immediate set
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.