組み合わせ回路と順序回路の違い:出力の決まり方を比較

組み合わせ回路では、出力が現在の入力だけで決まるので、同じ入力にはいつも同じ出力が返ります。順序回路では、出力が、記憶している状態、つまり過去の入力の履歴にも依存します。順序回路は、フリップフロップなどの記憶素子を持ち、多くはクロックで制御されます。実際のデジタルシステムは両方を交互に使い、状態を保持するレジスタの間で、組み合わせ回路が計算します。

項目組み合わせ回路順序回路
出力が依存するもの現在の入力だけ現在の入力と、記憶している状態(履歴)
記憶素子なしフリップフロップやラッチ
クロック不要多くはクロックで動く(同期設計)
フィードバックなし。フィードバックのループがあれば、設計の誤り状態の素子を通したフィードバックがある
例加算器、マルチプレクサ、デコーダ、エンコーダ、比較器レジスタ、カウンタ、シフトレジスタ、ステートマシン
タイミングの注意点伝搬遅延と、入力が変わる間のグリッチ(ハザード)セットアップ時間とホールド時間、クロック周期、クロックスキュー
設計の道具真理値表、ブール代数、カルノー図状態遷移表と状態遷移図
Verilogでは連続代入、またはすべての分岐ですべての出力を設定するalwaysブロッククロックのエッジで動くalwaysブロック

数値は代表的な目安で、世代や製品によって異なります。

どんなときに使うか

組み合わせ回路
算術や選択のように、現在の値だけに依存すべき計算やデコードのとき。
順序回路
何かを覚えておくもの全般。カウンタ、レジスタ、制御回路、一連の手順に従う回路。
HDLのヒント
組み合わせ回路のalwaysブロックでは、すべての分岐ですべての出力に代入します。そうしないと、論理合成で意図しないラッチが推論されます。

よくある質問

フリップフロップは組み合わせ回路ですか、順序回路ですか?

順序回路です。1ビットを記憶するので、出力が入力だけでなく、記憶している状態にも依存します。

加算器は組み合わせ回路ですか、順序回路ですか?

組み合わせ回路です。出力が現在の入力だけに依存します。これに対して、カウンタは順序回路です。

1つの回路が両方になることはありますか?

あります。実際のデジタルシステムは、レジスタの間に組み合わせ回路を交互に置くので、システム全体は順序回路で、組み合わせ回路のブロックからできています。

なぜ組み合わせ回路でフィードバックのループは問題なのですか?

組み合わせ回路にはループがあってはなりません。ループがあると、出力が自分自身に依存し、発振したり、意図せず状態を保持したりすることがあります。

理解度チェック

順序回路の説明として正しいものはどれか。

  1. A出力が、現在の入力と、記憶している内部状態によって決まる
  2. B出力が現在の入力だけで決まる
  3. Cアナログ信号だけを扱う
答えと解説を見る

正解:A. 出力が、現在の入力と、記憶している内部状態によって決まる

順序回路は、フリップフロップなどの記憶素子をもち、出力が現在の入力だけでなく過去の入力の履歴(内部状態)にも依存する回路です。カウンタ、レジスタ、ステートマシンが代表例で、自動販売機の投入金額の管理などをモデル化できます。出力が現在の入力だけで決まる回路は組み合わせ回路(加算器、デコーダなど)で、実際のデジタル回路はこの2つをクロックで交互につないだ構造です。

組み合わせ回路で、入力が変化したときに、経路ごとの遅延の差によって出力に一瞬だけ現れる不要なパルスを何と呼ぶか。

  1. Aメタステーブル
  2. Bグリッチ(ハザード)
  3. Cラッチアップ
答えと解説を見る

正解:B. グリッチ(ハザード)

同じ入力の変化が異なる経路で出力に届くとき、遅延の差によって出力が一瞬誤った値になることがあり、これをグリッチ(ハザード)といいます。同期式回路ではクロックのエッジまでに落ち着けば機能上は問題ありませんが、余分な充放電で消費電力が増えます。一方、クロックや非同期リセット、他チップへの制御信号にグリッチが乗ると誤動作するため、これらはフリップフロップの出力から直接出すのが鉄則です。

出力が現在の状態だけで決まる順序回路(ステートマシン)の型はどれか。

  1. Aミーリ型
  2. Bムーア型
  3. Cハーバード型
答えと解説を見る

正解:B. ムーア型

ムーア型では出力が現在の状態だけで決まり、ミーリ型では状態と入力の両方で決まります。ムーア型は出力が状態レジスタから直接出るのでグリッチが少なく安定し、タイミングも予測しやすい反面、入力への反応が1クロック遅れ、状態数が増えがちです。ミーリ型は状態数を減らせて入力に即座に反応できますが、入力の変化が出力に直接伝わります。実際の設計では両者を組み合わせて使います。

  1. すべてのフリップフロップが共通のクロックで動作する同期式回路の利点として正しいものはどれか。
  2. 組み合わせ回路のつもりで上のように書いた。起こりうる問題として正しいものはどれか。
  3. 組み合わせ回路のalwaysブロックで、意図しないラッチを防ぐためによく使われる書き方はどれか。

論理回路の練習問題へ

関連する用語の解説

組み合わせ回路
出力がそのときの入力だけで決まる論理回路。加算器やマルチプレクサ、デコーダなど。
順序回路
フリップフロップなどで状態を記憶し、出力が入力と過去の状態の両方で決まる論理回路。カウンタやレジスタなど。
フリップフロップ
1ビットの情報を保持する順序回路の基本素子。D型はクロックのエッジで入力を取り込む。

関連する比較