タブ切替
単体ゲート
半加算器
全加算器
SRフリップフロップ
2ビットカウンタ
ゲート選択
AND
OR
NOT
NAND
NOR
XOR
XNOR
入力切替
A
0
B
0
0
Y = A AND B
ANDゲート
両入力が1のときのみ出力が1。論理積(A・B)。 ブール式: Y = A · B
SRフリップフロップ(SR Latch)
S R Q Q̄ 状態
0 0 Q Q̄ 保持
1 0 1 0 セット
0 1 0 1 リセット
1 1 — — 禁止
理論・主要公式
Sum = A XOR B(2入力の和)
Carry = A AND B(桁上がり)
1ビット同士の2進数加算の基本回路。
Sum = A XOR B XOR Cin
Cout = (A AND B) OR (Cin AND (A XOR B))
前の桁の桁上がり(Cin)も含めた3入力加算が可能。
1ビットの記憶素子。S=1でQ=1(セット)、R=1でQ=0(リセット)、S=R=0で前状態を保持。
S=R=1は禁止状態(不定)。
JKフリップフロップ2段で00→01→10→11→00と循環。
クロック入力ごとにカウントアップし、3(11)の次は0(00)に戻る。
論理ゲート・論理回路シミュレーターとは
🙋
論理ゲートって、実際のコンピューターの中でどうやって計算してるんですか?
🎓
大まかに言うと、電気のスイッチのON/OFFを組み合わせて「論理」を実現してるんだ。例えばANDゲートは、2つのスイッチが両方ONの時だけ電気が流れる回路だね。このシミュレーターで、上の「AND」を選んで、入力AとBをクリックしてON/OFFを切り替えてみ。真理値表がリアルタイムで変わるのがわかるよ。
🙋
え、そうなんですか!NANDとかNORって、NOTがついてるから逆の動きなんですか?
🎓
その通り!NANDは「ANDの出力をNOT(反転)」したものだ。実はこのNANDゲートが全ての基本で、これだけで他のどんなゲートも作り出せる「万能ゲート」なんだ。シミュレーターでNANDを選び、真理値表を確認してみよう。ANDの出力の1と0がひっくり返ってるだろ?
🙋
半加算器やフリップフロップって、ゲートを組み合わせて作ってるんですか?
🎓
そう、まさにそこが面白いところ!半加算器はXORとANDの2つのゲートでできている。シミュレーターのプリセットから「半加算器」を選んでみて。AとBを変えると、SumとCarryがどう出るか見えるよね。この小さな回路が積み重なって、CPUの計算機能や記憶機能(フリップフロップ)ができあがるんだ。
よくある質問
半加算器と全加算器の違いは何ですか?
半加算器は2つの1ビット入力(A, B)を加算し、Sum(和)とCarry(桁上がり)を出力します。一方、全加算器はさらに下位からの桁上がり入力(Cin)を受け取り、3つの1ビットを加算します。全加算器を複数連結することで、多ビットの加算回路を構成できます。シミュレーターのプリセットで両方の動作を比較してみてください。
真理値表はどのように自動生成されますか?
シミュレーターは、選択された論理ゲートや回路の全入力パターン(0と1の組み合わせ)を自動で列挙し、各入力に対する出力値を計算して表形式で表示します。例えば2入力ゲートなら4通り、3入力なら8通りの組み合わせが瞬時に生成されるため、手計算不要で回路の動作を確認できます。
フリップフロップのプリセットはどのような動作を体験できますか?
プリセットでは、代表的なRSフリップフロップやDフリップフロップの回路が組まれており、NANDやNORゲートを使った状態保持の仕組みを可視化できます。クロック信号や入力の変化に応じて出力がどのように変化するか、タイミングを追いながら確認できるため、記憶回路の基本を直感的に理解できます。
論理式と回路図の対応がわかりません。どう確認すればよいですか?
各ゲートの出力には対応するブール式(例:ANDならY=A·B)が表示されます。また、半加算器のSum=A⊕BやCarry=A·Bのように、複合回路でも式が自動で紐づくため、配線と数式を照らし合わせながら学習できます。入力値を変えて出力が式通りになるか、真理値表と併せて確認するのがおすすめです。
実世界での応用
中央演算処理装置(CPU): CPU内部の演算回路(ALU)は、無数の論理ゲート(特にNAND, NOR)の組み合わせで構成されています。加算、減算、比較などのあらゆる演算は、半加算器や全加算器を基本ブロックとして実現されています。
メモリ(RAM, レジスタ): データを一時的に記憶するためにはフリップフロップ回路が使われます。SRフリップフロップはNANDゲートを組み合わせて作られ、1ビットの情報を「記憶」する基本素子です。これが大量に集積されてメモリチップとなります。
デジタル信号処理: エンコーダ、デコーダ、マルチプレクサなどの制御・選択回路は、論理ゲートを組み合わせて設計されます。例えば、複数の入力信号から1つを選び出す動作は、入力パターンに応じた論理で制御されます。
組み込みシステムと制御: 家電製品や自動車のECU(電子制御ユニット)では、センサーからの入力(ON/OFF)を論理的に判断し、アクチュエーターを駆動するための簡単な論理回路が多用されています。信頼性が高く、消費電力の少ないCMOSロジックICの形で実装されます。
よくある誤解と注意点
シミュレーターで遊び始めるときに、いくつかつまずきやすいポイントがあるよ。まず、「ゲートの動作は一瞬で完了する」と思いがちな点 。実際の電子回路では、信号が伝わるのにごくわずかな時間(伝播遅延)がかかる。このシミュレーターでは理想的な即時動作を想定しているけど、現実ではタイミングがずれると誤動作の原因になるんだ。例えば、フリップフロップにデータを書き込む際、クロック信号とデータ信号のタイミングがほんの数ナノ秒ずれただけで、意図しない値が記憶されてしまうことがある。
次に、未使用入力の扱い 。実務でICを使う場合、使わない入力ピンをそのまま放置するのは絶対にNGだ。特にNANDゲートやNORゲートでは、未使用入力が「浮いている」状態だと、ノイズの影響で意図しない0や1とみなされ、出力が不安定になる。必ず論理的に確定した電圧(VCCまたはGND)に接続(プルアップ/プルダウン)する必要がある。シミュレーターではこの「浮き」状態を再現できないから、意識しておこう。
最後に、理論通りに動かない「現実の特性」 。シミュレーターのゲートは無限の駆動能力を持つが、実際のICにはファンアウト(一つの出力が駆動できる入力数)の制限がある。例えば、あるゲートの出力を10個の別のゲート入力に繋ぐと、電圧が低下して論理レベルが崩れ、システム全体が誤動作する可能性がある。回路を設計する時はデータシートを確認することが鉄則だ。