違いは if else
の論理判断に優先順位があり、最内層の if
の優先順位が最も高いのに対し、case
の論理判断は並列であることです。
各 if else
から合成される回路は 2 対 1 の選択器です。信号に明確な優先順位がある場合にこの文を使用しますが、if
が多くネストされると経路遅延が大きくなり、動作速度が低下します。したがって、判定条件が少ない場合に使用します。if else
から合成された回路の面積は比較的小さいです。
case 文は明確な優先順位がない論理判断に適しており、これらの論理条件は同じ優先順位にあり、互いに排他的です。例えば、速度要求が高いコーデックの実現などです;case 構造の回路は速度が速いですが、面積は大きく、合成されるのは n 対 1 の mux 回路です。