區別是 if else
的邏輯判斷有優先級,最內層的 if
的優先級最高,case
的邏輯判斷是並列的。
每個 if else
綜合出來的電路是一個 2 選 1 選通器。當信號有明顯優先級時使用該語句,但是 if
嵌套太多的話會導致路徑延遲過大,降低運行速度。所以在判定條件較少的時候使用。if else
綜合出的電路面積較小。
case 語句適用於無明顯優先級的邏輯判斷,這些邏輯條件都處於同一個優先級且互斥,比如實現對速度要求較高的編解碼;case 結構電路速度較快,但佔用面積較大,綜合為 n 選 1 mux 電路。