これは、主に、論理回路や実験2ハードウェアをまじめにやっていなかった人への軽い参考資料です。 ただし、ちょっとしたTipsも入っているので、まじめにやった人も目を通しておくと良いと思います。 あと、あくまでも軽い参考資料なので、詳しく調べたい場合はちゃんと 教科書を使って復習すること。
回路記号
|
真理値表
|
備考
論理積のゲート。入力数が増えたAND3,AND4,...等のバリエーションがある。
また、出力の真偽が反転した(出力側にNOTがついた)NANDや、
入力の真偽が反転した(入力側にNOTがついた)BANDもある。
ORと組み合せて組み合わせ論理回路の構成によく使われる。
プロセッサの制御部を作った後(デバッグもした後)では、
見るのもいやになるかもしれない・・・。
|
回路記号
|
真理値表
|
備考
論理和のゲート。入力数が増えたOR3,OR4,...等のバリエーションがある。
また、出力の真偽が反転した(出力側にNOTがついた)NORや、
入力の真偽が反転した(入力側にNOTがついた)BORもある。
ANDと組み合せて組み合わせ論理回路の構成によく使われる。
プロセッサの制御部を作った後(デバッグもした後)では、
見るのもいやになるかもしれない・・・。
|
回路記号
|
真理値表
|
備考
排他的論理和のゲート。出力の真偽が反転した(出力にNOTがついた)XNOR等のバリエーションもある。
通常の手順で組み合わせ回路を作ると
これを使う機会はないが、うまく使うとAND,ORだけで作るよりも
ゲート数を減らすことができる。
ただし、無理に使ってゲート数を減らすよりは、
素直にAND,ORだけで作った方が楽なことが多いと思います。
|
回路記号
|
真理値表
|
備考
否定の論理ゲート。AND,OR等への入力がAだったりする場合、
そのゲートの入力の前に置いたりする。
なお、プロセッサの制御部など否定値を多数必要とする場合は、
いちいちゲートの入口にNOTを置くのではなく、
最初にNOTを通した信号を作り、それを各ゲートに分配させる方が簡潔になる。
|
回路記号
|
真理値表
|
備考
入力された値は変化せずに出力される。何のためにあるのかというと、
信号を増幅するためにある。
基本的に、CMOSトランジスタで実装された論理ゲートでは、
ゲートの出力値の変化は
基本的に、CADがコンパイル時に自動的に入れてくれるので、 自分でファンアウト数をチェックしつつ入れる必要はありません。 ただし、1つの配線に複数のインスタンスを持たせたい場合、 CADの都合で配線をバッファで分割させる必要が出てくる。 基本的に、こちらの目的で使うことになります。 |
回路記号
|
真理値表
|
備考
3状態バッファ(tri state buffer)は、簡単に言えば、Aの入力値によって
Bの入力をoutに出力するかどうかを制御できるバッファである。
真理値表でZはハイ・インピーダンス状態を示しており、
このゲートにおいて出力側はVDDとGNDのどちらにも導通していないことを示す
(一般的なのCMOSゲートはどのような入力値が来ても、
必ずVDDかGNDに導通している)。このゲートの最も重要な利用先は、メモリのアドレス・バス/データ・バスの調停である。 また、セレクタ(マルチプレクサ)の実現にも使うことができる。 |
回路記号
|
真理値表
|
備考
真理値表の"↑"はクロック・パルスの立ち上がりを示し、Q nextはQの次状態を示す。真理値表から分かるように、D-フリップフロップはクロック・パルスが立ち上がった時、 その時にDに入力されていた値を取り込み、次のクロック・パルスで更新されるまで Qより出力し続ける。 一般的に、レジスタを構成するのに使われる。 真理値表上では、クロック・パルスが立ち上がる瞬間のみDの値が決まっていれば良いように見えるが、 実際には、クロック・パルスが立ち上がる前の一定時間(セットアップ時間)と クロック・パルスが立ち上がった後の一定時間(ホールド時間)の間、 Dの値を一定に保たないと正しい値を保持できない。 |
回路記号
|
真理値表
|
備考
真理値表から分かるように、ラッチはEが1の時にDの値をそのままQに出力し、
Eが0の時には、Eが1→0となった瞬間の値を保持し続ける。D-フリップフロップと同様にレジスタとして使われることがあるが、 普通にプロセッサを構成するならば、入力値が透過しない D-フリップフロップの方が扱いやすい。 |