Bird
Raised Fist0
VHDLprogramming~20 mins

Selected assignment (with-select) in VHDL - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
VHDL Selected Assignment Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of a selected assignment with simple case
What is the output value of y when sel = "10"?
VHDL
architecture Behavioral of example is
  signal sel : std_logic_vector(1 downto 0);
  signal y : std_logic_vector(3 downto 0);
begin
  with sel select
    y <= "0001" when "00",
         "0010" when "01",
         "0100" when "10",
         "1000" when others;
end Behavioral;
A"0100"
B"0010"
C"0001"
D"1000"
Attempts:
2 left
💡 Hint
Check which value matches the selector "10" in the with-select statement.
❓ Predict Output
intermediate
2:00remaining
Selected assignment with overlapping conditions
Given this VHDL code, what value does out_sig have when mode = "11"?
VHDL
architecture Behavioral of example2 is
  signal mode : std_logic_vector(1 downto 0);
  signal out_sig : std_logic_vector(7 downto 0);
begin
  with mode select
    out_sig <= x"0F" when "00",
               x"F0" when "01",
               x"AA" when "10",
               x"55" when others;
end Behavioral;
Ax"F0"
Bx"55"
Cx"AA"
Dx"0F"
Attempts:
2 left
💡 Hint
The selector "11" is not explicitly listed, so it falls under others.
🔧 Debug
advanced
2:00remaining
Identify the syntax error in selected assignment
Which option contains the syntax error in this with-select assignment?
VHDL
with sel select
  result <= "0001" when "00",
            "0010" when "01",
            "0100" when "10",
            "1000" when others
;
AMissing semicolon after the last when clause
BUsing double quotes instead of single quotes for std_logic_vector
CMissing 'end process;' statement
DUsing commas instead of semicolons after each when clause
Attempts:
2 left
💡 Hint
Check the punctuation at the end of the with-select statement.
🧠 Conceptual
advanced
2:00remaining
Behavior of with-select when no matching choice and no others clause
What happens if a with-select statement does not include an 'others' clause and the selector value does not match any explicit choices?
AThe signal is assigned a default value of all zeros
BThe compiler raises a syntax error during compilation
CThe simulation raises a runtime error due to incomplete assignment
DThe signal retains its previous value without change
Attempts:
2 left
💡 Hint
No assignment occurs if no match and no others, so retains previous value.
🚀 Application
expert
3:00remaining
Determine the number of unique output values from with-select
Given this with-select statement, how many unique values can out_val take based on code?
VHDL
with code select
  out_val <= "000" when "000",
             "001" when "001",
             "010" when "010",
             "011" when "011",
             "100" when "100",
             "101" when others;
A5
B8
C6
D7
Attempts:
2 left
💡 Hint
Count the distinct output values assigned explicitly and by others.

Practice

(1/5)
1. What is the main purpose of a with-select statement in VHDL?
easy
A. To create a loop that repeats a set of statements
B. To declare a new signal in the architecture
C. To assign a value to a signal based on the value of another signal
D. To define a new data type

Solution

  1. Step 1: Understand the role of with-select

    The with-select statement chooses a value for a signal depending on another signal's value.
  2. Step 2: Compare with other options

    Loops, declarations, and data types are unrelated to with-select.
  3. Final Answer:

    To assign a value to a signal based on the value of another signal -> Option C
  4. Quick Check:

    Selected assignment = conditional signal assignment [OK]
Hint: Remember: with-select picks signal values based on another signal [OK]
Common Mistakes:
  • Confusing with loops or process statements
  • Thinking it declares signals
  • Mixing with data type definitions
2. Which of the following is the correct syntax for a with-select assignment in VHDL?
easy
A. with sel select out = "00" when "00", "01" when "01", others => "11";
B. with sel select out <= "00" when "00", "01" when "01", others => "11";
C. with sel select out <= "00" when => "00", "01" when => "01", others => "11";
D. with sel select out <= "00" when "00" "01" when "01", others => "11";

Solution

  1. Step 1: Check the syntax format

    The correct syntax uses commas between choices and when others => for default.
  2. Step 2: Identify the correct arrow symbol

    The assignment uses <= and the choices use => after when.
  3. Final Answer:

    with sel select out <= "00" when "00", "01" when "01", others => "11"; -> Option B
  4. Quick Check:

    Correct syntax uses commas and 'others =>' [OK]
Hint: Look for commas between choices and 'others =>' for default [OK]
Common Mistakes:
  • Using wrong arrow symbols
  • Missing commas between choices
  • Omitting 'others =>' clause
3. Given the following VHDL code:
with sel select
  out <= "00" when "00",
         "01" when "01",
         "10" when "10",
         others => "11";

sel = "10";

What will be the value of out?
medium
A. "10"
B. "01"
C. "00"
D. "11"

Solution

  1. Step 1: Match sel value with choices

    The value of sel is "10", which matches the third choice.
  2. Step 2: Determine assigned value

    When sel is "10", out is assigned "10".
  3. Final Answer:

    "10" -> Option A
  4. Quick Check:

    sel = "10" means out = "10" [OK]
Hint: Match sel value exactly to get out value [OK]
Common Mistakes:
  • Choosing default 'others' instead of exact match
  • Confusing when clauses
  • Ignoring quotes around values
4. Identify the error in this with-select statement:
with sel select
  out <= "00" when "00",
         "01" when "01",
         "10" when "10";
medium
A. Missing semicolon at the end
B. Incorrect use of commas between choices
C. Wrong assignment operator used
D. Missing when others => clause

Solution

  1. Step 1: Check completeness of choices

    The with-select must cover all possible values, including unexpected ones.
  2. Step 2: Identify missing default case

    There is no when others => clause to cover unmatched values.
  3. Final Answer:

    Missing when others => clause -> Option D
  4. Quick Check:

    Always include 'when others =>' in with-select [OK]
Hint: Always add 'when others =>' to cover all cases [OK]
Common Mistakes:
  • Forgetting the default 'others' clause
  • Thinking semicolon is missing
  • Misusing commas or arrows
5. You want to assign a 2-bit output signal out based on a 2-bit input sel using with-select. The mapping is:
- "00" -> "11"
- "01" -> "10"
- "10" -> "01"
For any other value, out should be "00".

Which of the following with-select statements correctly implements this?
hard
A. with sel select out <= "11" when "00", "10" when "01", "01" when "10", others => "00";
B. with sel select out <= "00" when "00", "01" when "01", "10" when "10", others => "11";
C. with sel select out <= "11" when "00", "10" when "01", "01" when "10";
D. with sel select out <= "11" when "00", "10" when "01", "01" when "10", others => "11";

Solution

  1. Step 1: Match each sel value to correct out

    "00" maps to "11", "01" to "10", "10" to "01" as given.
  2. Step 2: Check the default others value

    For any other sel, out should be "00".
  3. Step 3: Verify options

    with sel select out <= "11" when "00", "10" when "01", "01" when "10", others => "00"; matches all mappings and default correctly.
  4. Final Answer:

    with sel select out <= "11" when "00", "10" when "01", "01" when "10", others => "00"; -> Option A
  5. Quick Check:

    Correct mapping + others = "00" [OK]
Hint: Check each mapping and default carefully in with-select [OK]
Common Mistakes:
  • Missing 'others' clause
  • Swapping output values
  • Assigning wrong default value
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard