直列加算器は、並列加算器と比べてあまり使われていませんが回路が簡単になるという利点があります。 直列加算器の構成は、1ビットの加算器と、シフトレジスタ2つと、D−FFだけで、多桁計算をする場合も、シフトレジスタの桁数を増やすだけで出来るので、桁数分加算器が必要な並列加算器と比べ回路構成が簡単になります。 しかし、並列加算器と比べ、クロックが必要で、計算時間も桁数分多くなります。 |
直列加算器の最小構成は、 ・1ビット加算器 ・シフトレジスタx2 ・D−FF ですが、今回は、データを入力するシフトレジスタと、出力するシフトレジスタを別々にしたので、シフトレジスタを3つ使いました。 ・1ビット加算器 → 7480 ・シフトレジスタx3 → 74LS95 ・D−FF → 74LS74 クロックは手動にしたかったので、CRとシュミットトリガのインバータ74LS14を使って組みました。 桁上げ信号を次の桁の計算に反映させる為、D−FFのクロックはインバータで反転させて加えています。 今回使ったシフトレジスタ74LS95は、シフトレジスタとしてシリアル入出力が出来る他に、パラレルにデータの入出力が出来るので、データを入力するシフトレジスタA、シフトレジスタBには、パラレル入力からデータをセットしています。。 (データ入力側のシフトレジスタA、Bのシリアル入力はGNDに接続していますのでシフトクロックを押し続けてデータクリアをします) シフトレジスタCは、計算結果をシリアル入力からシフト_クロックごとに1桁づつ入力し、パラレル出力から結果を見られるようにしました。 二進1ビット加算器には、SN7480を使いました。 |
今回の直列加算器の実験回路は、このSN7480の為になかなか完成しませんでした。 SN7480は、上の図のようにデータ入力A、Bにはそれぞれ4つも端子があり、和の出力も正論理・負論理、桁上げも負論理で信号が出ています。 このICを、ただ1桁の全加算器として使いたいだけなのですが、どうしても動作してくれません。 そこで、SN7480単体の動作をみてました。 1桁の全加算器として、入力A、B、Cn、出力煤A/Cn+1になるように確認してみたところ、 A1とA2をショートして入力Aに B1とB2をショートして入力Bに A*、B*はOPEN、 AC、BCはH でやっと、1桁加算器として動作してくれました。 動作しなかった原因は、A*、B*をVccかGNDに接続していたからでした。 ピンが空いているとつい何処かにつなぎたくなりますが、A*とB*は、VccにつないでもGNDにつないでも入力A1、A2、B1、B2からの入力が出力に反映しなくなります。 これらの端子が何の目的であるのかわかりませんが、他の端子、AC、BCも何の為に付いているのかわかりませんし、キャリー出力/Cn+1も負論理でわかりにくいので、論理通り素直にゲートICで1ビット全加算を組んだり、並列加算器の1桁だけ上手く使って実験した方がスムーズに実験できたかもしれません。 |