1. 程式人生 > 其它 >關於VHDL中case語句多執行語句的書寫方式(轉載stackoverflow.com並做翻譯彙總)

關於VHDL中case語句多執行語句的書寫方式(轉載stackoverflow.com並做翻譯彙總)

很多國內的教材對於case語句的講解非常單一,比如:

1 [標號:]CASE 多值表示式 IS
2     WHEN 選擇值 => 被賦值變數 <=賦值變數;
3     WHEN 選擇值 => 被賦值變數 <=賦值變數;
4     WHEN 選擇值 => 被賦值變數 <=賦值變數;
5     ...
6     WHEN OTHERS =>被賦值變數 <=賦值變數;
7     END CASE

這會造成CASE語句“在一個條件下只能執行一條語句”的經典誤解,在翻閱了一些資料後我在StackOverflow上找到了CASE語句多執行條件的寫法:

 1 CASE input24 IS
 2   WHEN "00" =>
 3     output0 <= '1' ;
 4     output1 <= '0' ;
 5     output2 <= '0' ;
 6     output3 <= '0' ;
 7 ...
 8   WHEN OTHERS => 
 9     output0 <= 'X'; 
10     output1 <= 'X';
11     output2 <= 'X'; 
12     output3 <= 'X';
13     END CASE;

這樣就能實現在一個條件下對多個變數進行處理。

參考:https://stackoverflow.com/questions/25961126/multiple-assignments-in-case-statement-in-vhdl