デジタル回路には、組み合わせ回路と順序回路が有ります。
組み合わせ回路は、入力から出力が決定するものです。
一方、順序回路は、入力値と内部状態から出力が決定します。
順序回路の代表的な例としては、以下の様なものがあります。
ラッチ(latch) RSラッチ Dラッチ フリップフロップ(flip flop) Dフリップフロップ JKフリップフロップ 加算器(adder) 全加算器 半加算器 並列加算器 カウンタ 5進カウンタ 10進カウンタ 24進カウンタ 60進カウンタ ... グレイコードカウンタ タイマ ワンショットタイマ/インターバルタイマ ウォッチドッグタイマ |
順序回路は、入力だけではなく内部状態に依存するため、順序回路自身が状態を保持するメモリ機能を持っています。
フリップフロップは、非常にシンプルな1ビットのメモリで、この仕組みを利用した記憶装置がSRAMです。
ラッチやフリップフロップについてはこちらの記事にも書きました。
カウンタ回路は、信号が来るたびに値が加算されていき、指定した値でリセット(桁上がり)されます。
24進や60進といったカウンタも用意されており、これらは時計を作る時に便利です。
また、グレイコードカウンタというのは特殊な値の変わり方をするカウンタです。
例えば3ビットのカウンタだと、以下の順に値が遷移します。
10進 グレイコード 0 000 1 001 2 011 3 010 4 110 5 111 6 101 7 100 |
カウンタで、複数のビットが同時に変わると、一瞬ノイズ(スタティック・ハザード)が発生するため、そのノイズをなくしつつ、指定ビット数のカウンタを作りたい場合に利用します。
タイマは、指定された時間後や、指定された周期でシグナルを発生させるものです。
他の順序回路と異なり、タイマはハードウェア的に作る場合と、ソフトウェア的に発生させる場合が有ります。
ハードウェアタイマについては、カウンタがあれば、リセットのタイミングでシグナルを発生させる事で、実装する事も可能です。
また特殊なタイマとして、ウォッチドッグタイマ(WDT)が有ります。
これは、プログラムが正しく動作しているかの確認タイマで、ソフトウェアからタイマを”一定周期以内に、かつ、定期的に”リセットする必要があります。
一定周期の間リセットが掛からなかった場合は、ハードウェア側でシステムの強制リセットを行わせます。
これにより、通常は定期的なWDTリセットが掛かるため問題ありませんが、ソフトが正しく動作していない場合に自動リセットをハード的にかけることが可能となります。
関連記事
コメントを残す