關於VHDL中case語句多執行語句的書寫方式(轉載stackoverflow.com並做翻譯彙總)
阿新 • • 發佈:2022-03-10
很多國內的教材對於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