vhdl case statement code example

Example 1: switch case within process vhdl

p_CASE : process (r_VAL_1, r_VAL_2, r_VAL_3)
    variable v_CONCATENATE : std_logic_vector(2 downto 0);
  begin
    v_CONCATENATE := r_VAL_1 & r_VAL_2 & r_VAL_3;
     
    case v_CONCATENATE is
      when "000" | "100" =>
        r_RESULT <= 0;
      when "001" =>
        r_RESULT <= 1;
      when "010" =>
        r_RESULT <= 2;
      when others =>
        r_RESULT <= 9;
    end case;
     
  end process;

Example 2: excel vba case statement

v = "z"

Select Case v
    Case 1
  		'code runs here if v = 1
    Case 2
        'code runs here if v = 2
    Case 3 To 5
        'code runs here if v = 3 or 4 or 5
    Case Is < 10
        'code runs here if v = 6 or 7 or 8 or 9
    Case 10, 15, 20
        'code runs here if v = 10 or 15 or 20
    Case #12/25/2020#
        'code runs here if v = #12/25/2020#
    Case "abc"
        'code runs here if v = "abc"
    Case Is <= "m"
        'code runs here if v <= "m"
    Case True
        'code runs here if v = True
    Case Else
  		'Code runs here if v did not match any of the above cases.
  		'In this example, since v = "z", the 'Case Else' would match
  		'and only the code here would execute.
End Select

'Notes: The Select Case construct must be terminated by 'End Select'.
'       Only one case (at most) will have its code run.
'       Each case is evaluated in order, from the top down, until match found. 
'       No more cases are evaluated once a case matches the Select Expression.
'       An execution speed optimization is to place more likely cases on top.
'       The special 'Case Else' is optional.
'       If no case matches the Select Expression, execution exits the construct.

'A very useful variation is to set the Select Expression to True (or False):

Select Case True
	Case a <= b And b <= c: Debug.Print "b is between a and c"
	Case a = b:             Debug.Print "a = b"
	Case e > f:             Debug.Print "e > f"
	Case InStr(x, "z"):     Debug.Print "'z' is in x"
	Case IsEmpty(m):        Debug.Print "m is Empty"
End Select  

'In this second example, only the firt True case will print.
'
'
'

Example 3: vba select case

Dim Number 
Number = 8    ' Initialize variable. 
Select Case Number    ' Evaluate Number. 
Case 1 To 5    ' Number between 1 and 5, inclusive. 
    Debug.Print "Between 1 and 5" 
' The following is the only Case clause that evaluates to True. 
Case 6, 7, 8    ' Number between 6 and 8. 
    Debug.Print "Between 6 and 8" 
Case 9 To 10    ' Number is 9 or 10. 
Debug.Print "Greater than 8" 
Case Else    ' Other values. 
    Debug.Print "Not between 1 and 10" 
End Select

Example 4: case vhdl

case SEL is
  when "01" =>   Z <= A;
  when "10" =>   Z <= B;
  when others => Z <= 'X';
end case;

Tags:

Misc Example