ハードウェア記述言語と検証

状態機械の状態の符号化で、ワンホット符号化の特徴として正しいものはどれか。

  1. A状態を2進数で表し、フリップフロップの数を最も少なくする
  2. Bすべてのフリップフロップが常に1になる
  3. C状態の数だけフリップフロップを使い、常に1つだけが1になるので、次の状態や出力の論理が簡単で速くなりやすい
答えと解説を見る

正解:C. 状態の数だけフリップフロップを使い、常に1つだけが1になるので、次の状態や出力の論理が簡単で速くなりやすい

ワンホット符号化では、例えば4つの状態を0001、0010、0100、1000のように表し、各状態に1つのフリップフロップを割り当てます。フリップフロップは増えますが、ある状態にいるかどうかは1ビットを見るだけで分かるので、次の状態や出力を決める論理が浅く速くなります。フリップフロップが豊富なFPGAでよく使われ、フリップフロップの数を減らしたいときはバイナリ符号化を使います。

  • A. それはバイナリ符号化です。
  • B. 1になるのは常に1つだけです。
  • C. 正しい。フリップフロップの多いFPGAでよく使われます。
この分野を解く 分野ページへ

ハードウェア記述言語と検証のほかの問題

  1. 3つの状態を持つ状態機械で、状態を覚えるのに必要なフリップフロップの数の組み合わせとして正しいものはどれか(バイナリ符号化/ワンホット符号化)。
  2. 上の4ビットのカウンタで、countが15のときにクロックが立ち上がると、countはいくつになるか。
  3. Verilogで8ビットの信号aとbを足し、その結果を8ビットの信号sに代入した(assign s = a + b;)。注意すべき点として正しいものはどれか。
  4. aを符号付きの-1のつもりで上のように書いたところ、gtが1になった。理由として正しいものはどれか。
  5. Verilogのシミュレーションで使われる4値論理の値の組み合わせとして正しいものはどれか。