Bird
Raised Fist0
VHDLprogramming~5 mins

Selected assignment (with-select) in VHDL - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a selected assignment in VHDL?
A selected assignment in VHDL is a way to assign values to a signal based on the value of another signal, using the with-select statement. It is like a switch-case for signals.
Click to reveal answer
beginner
Write the syntax structure of a selected assignment using with-select.
The syntax is:
with <expression> select
<target_signal> <assignment_operator> <value_1> when <choice_1>,
<value_2> when <choice_2>,
...
<default_value> when others;
Click to reveal answer
beginner
What happens if none of the choices in a selected assignment match the expression value?
The value assigned is the one specified by the when others clause, which acts as a default case to cover all unmatched values.
Click to reveal answer
intermediate
Can a selected assignment be used for signals of any type?
No, the expression used in with-select must be of a discrete type like enumeration, integer, or std_logic, and the choices must cover all possible values or use when others.
Click to reveal answer
beginner
Example: What is the output of this code?
with sel select
out_sig <= '1' when '1',
'0' when others;

If sel = '0'?
The output out_sig will be '0' because sel is '0' and the when others clause covers all values except '1'.
Click to reveal answer
What keyword is used in VHDL for selected assignment?
Aif-else
Bcase-when
Cwith-select
Dloop
In a selected assignment, what does when others mean?
AIt is the default case for unmatched values
BIt repeats the last value
CIt causes an error
DIt assigns a null value
Which of these is NOT valid in a selected assignment expression?
AInteger
BReal number
CEnumeration
Dstd_logic_vector
What happens if you omit when others and not all values are covered?
ASignal keeps previous value
BDefault value assigned
CSimulation runs but output is undefined
DCompilation error
Which signal type is commonly used with selected assignment?
AAll of the above
BBoolean
Cstd_logic
DInteger
Explain how a selected assignment with with-select works in VHDL.
Think of it like choosing an output based on a signal's value.
You got /4 concepts.
    Describe the importance of the when others clause in selected assignments.
    What happens if the expression value is not listed explicitly?
    You got /3 concepts.

      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