← ブログに戻る学習ロードマップ

デジタル論理ロードマップ:ゲートから CPU まで30日間

AND ゲートから動作する CPU まで進む、日ごとのデジタル論理カリキュラム。30日間、毎日1本のブログ記事と1つのインタラクティブテンプレートで集中的に学びます。

DennyDenny
読了まで約30分
Chalkboard feature illustration for “デジタル論理ロードマップ:ゲートから CPU まで30日間”

要約: 30日間、4週間、最初の AND ゲートから自分で配線した動作する CPU までを結ぶ、ひとつの体系的な道筋です。毎日、ブログ記事1本(理論)とインタラクティブなシミュレーターテンプレート1つ(実践)を組み合わせます。1日1時間を充てましょう。30日目には、コンピューターの仕組みを比喩としてではなく、クロックサイクルごとに追跡できる回路として理解できるようになります。

デジタル論理は、代数と回路を切り離して教えると難しくなります。回路のない代数は実感を持ちにくく、ゲートレベルの習熟なしに CPU の回路図を見ると、ただ配線を写す作業になりかねません。このロードマップでは2つの視点を常に一緒に扱い、すべてのブール式に対応する回路があり、すべての回路には理由がある状態を保ちます。

この計画では、30回の学習セッションを4つのテーマ別週間に編成し、焦点を絞った読書とシミュレーター演習を組み合わせます。1日1時間は約束ではなく、推奨ペースです。実行する前に回路の振る舞いを予測できないなら、そのセッションを繰り返してください。

これは独学計画、4単位の学部講義のシラバス、ハードウェア面接の学習ガイド、または仕事で特定の話題が出たときの参照索引として使えます。このページをブックマークして順に取り組めば、デジタル論理の分野はもう威圧的には感じられなくなるでしょう。

このロードマップは誰のためのものか?

ハードウェアは「単なる抽象化レイヤー」だと聞かされてきたものの、その最下層を見てみたいコンピューターサイエンスの学生なら、これはあなたのためのものです。組込み、カーネル、コンパイラー、性能といった低レベルシステムを扱うソフトウェアエンジニアで、シリコンの中に実際には何があるのかという頭の中のモデルがまだ曖昧なら、これもあなたのためのものです。「CPU の仕組み」動画を何千本も見て、実際に自分で作りたいホビイストにも向いています。

必要な前提は、2進数の実用的な知識(第1週で復習します)、基本的な代数、そして4週間にわたり毎日およそ1時間を使う粘り強さだけです。必要なのはブラウザーだけです。すべてのテンプレートは、インストール不要でブラウザー上で動作する DigiSim.io にリンクしています。

ロードマップの構成

第1週   1〜 7日目   ゲートとブール代数の基礎
第2週   8〜14日目   組合せ回路
第3週  15〜21日目   順序回路
第4週  22〜28日目   算術とメモリー
最終   29〜30日目   CPU として統合する

毎日の構成は同じです。

  • 目標 — その日の終わりに身につけるスキルを、1〜2文で示します。
  • 読む — 理論を教える特定のブログ記事1本です。
  • 作る — 実地練習になる特定のシミュレーターテンプレート1つです。

読む時間を約20分、作る時間を約40分にしてください。学びが定着するのは「作る」部分です。構築を飛ばすことが、独学者がデジタル論理を身につけられない最も一般的な理由です。

第1週 — ゲートとブール代数の基礎

CPU を理解するには、まず最小の構成要素を理解しなければなりません。第1週では、すべてのブール基本演算、真理値表、記号、そしてそれらが式へ組み合わさる仕組みを通して、ゲートレベルの流暢さを身につけます。日曜日までには、ブール式を見て回路を予測し、回路を見て真理値表を予測できるようになるはずです。

1日目 — デジタル論理へようこそ

目標: デジタル信号とは何か、論理ゲートが物理レベルで何をするのかを理解する。

読む: デジタル論理101:AND、OR、NOT ゲートへの最初の一歩

作る: 基本的なスイッチとライトのデモ — スイッチを切り替えるとライトが点きます。これは可能な限り小さなデジタル回路であり、すべてのマイクロプロセッサーの系譜が始まる場所です。

2日目 — AND ゲート

目標: AND の真理値表を身につけ、AND 型の論理がどこに現れるかを見分ける。

読む: AND ゲート:デジタル論理と意思決定の基盤

作る: AND ゲートのセキュリティシステム — 2つの条件が満たされたときだけ開くドアです。続けて AND コンポーネントリファレンスも確認しましょう。

3日目 — OR ゲートと NOT ゲート

目標: 普遍的なブール演算子の三つ組を完成させ、OR と NOT が AND とどう組み合わさるかを見る。

読む: OR ゲート:デジタル論理における民主的な投票を理解する、続けて 控えめな NOT ゲート。

作る: OR ゲートのアラームシステム — どれか1つのセンサーが作動すれば鳴るアラームです。この日のコンポーネントリファレンスは OR 基本要素 と NOT 基本要素 です。

4日目 — 排他的な仲間:XOR と XNOR

目標: OR と XOR の違い、および排他的論理が等値判定と加算に現れる理由を理解する。

読む: XOR ゲート:差異の論理を極める、続けて XNOR ゲート:等値性のチャンピオン。実用的な動機として XOR vs XNOR:エラー検出における重要な違いも組み合わせてください。

作る: XOR コンポーネントリファレンスと XNOR コンポーネントリファレンスを調べます。2つのスイッチを XOR に配線し、出力を観察しましょう。

5日目 — NAND と NOR:万能ゲート

目標: NAND だけ(または NOR だけ)がなぜ機能的完全なのか、そしてそれがチップ製造に何を意味するのかを理解する。

読む: NAND ゲート:すべてのデジタル論理を作る唯一の構成ブロック、続けて 知られざる主役:NOR ゲートはいかにアポロを支えたか。

作る: NAND ゲートだけを使って AND ゲートを構成します。NAND 基本要素と NOR 基本要素を参照してください。次に 論理ゲート真理値表リファレンスを調べ、構成を検証します。

6日目 — ブール代数とド・モルガンの法則

目標: ブール式を代数的に操作し、ド・モルガンの法則で回路を簡略化する。

読む: ブール代数を極める:デジタル回路設計の基礎、続けて ド・モルガンの法則を極める。

作る: F=A⋅B+A‾⋅CF = A \cdot B + \overline{A} \cdot C のような3変数式を取り上げ、回路を描いてからド・モルガンの法則で変形し、両方の回路が同じ出力を生成することを確かめます。バッファーコンポーネントと、バッファーが存在する理由の記事で、ゲートレベルの学びを締めくくりましょう。

7日目 — 記号、多入力ゲート、2進数の歴史

目標: ANSI と IEC の両方の表記で回路図を読み、多入力ゲートを自在に扱い、2進数の起源を知る。

読む: デジタル論理を読み解く:ANSI と IEC の記号、続けて 2入力を超えて:多入力論理ゲートを極める。週の締めくくりに、興味深い寄り道である 2進数の3,500年の旅を読みましょう。

作る: 同じ4入力関数を、シミュレーターで ANSI と IEC の両方の表記で描きます。両者を自在に切り替えられることを確認してください。

第2週 — 組合せ回路

第2週では、個々のゲートから、出力が入力の純粋な関数である完全な回路へ進みます。日曜日までには、ブール式を取り、カルノー図で簡略化し、マルチプレクサー、デコーダー、エンコーダー、バッファーといった適切な基本要素を使って高速な組合せ実装をレイアウトできるはずです。

8日目 — 積和形

目標: 任意の真理値表を積和形の式と AND-OR 回路に変換する。

読む: 積和形(SOP)を極める。

作る: 任意の3変数関数を選び、SOP 形式で実装します。正準形(簡略化前)とゲート数を比較してください。

9日目 — 和積形と双対形式

目標: 双対表現、POS が SOP より適する場面、両者の変換方法を理解する。

読む: 積和形を超えて:和積形を極める。

作る: 昨日の関数を POS 形式で再実装し、真理値表が同一であることを確認します。ゲート数の差にも注目してください。

10日目 — カルノー図

目標: カルノー図を用いて、任意の4変数関数の最小 SOP および POS 実装を見つける。

読む: 論理を可視化する:カルノー図を極める。

作る: 関数 F(A,B,C,D)=∑m(0,1,2,5,6,7,8,9,10,14)F(A,B,C,D) = \sum m(0,1,2,5,6,7,8,9,10,14) を取り、カルノー図を描いて最小被覆を見つけます。その後、回路を構築します。

11日目 — ドントケア条件

目標: ドントケアを使い、関心のある入力に対して最小となる回路を見つける。

読む: カルノー図のドントケア条件。

作る: 10日目の関数に3つのドントケアを追加して、再度最小化します。通常、ゲート数は目に見えて減ります。

12日目 — マルチプレクサーとデマルチプレクサー

目標: マルチプレクサーをプログラム可能な配線ルーターとして、デマルチプレクサーをその逆として理解する。

読む: マルチプレクサー(MUX)を解き明かす、続けて デマルチプレクサーチュートリアル:1対4と1対8。

作る: 4対1マルチプレクサーを使って任意の2変数関数を実装します(MUX は万能な組合せブロックです)。コンポーネントリファレンス:MULTIPLEXER、DEMULTIPLEXER。

13日目 — デコーダー、エンコーダー、優先エンコーダー

目標: 7セグメントディスプレイドライバーを作り、割込みコントローラーのための優先エンコードを理解する。

読む: デコーダーとエンコーダー:7セグメントディスプレイを駆動する、続けて 優先エンコーダーの解説 と BCD から7セグメントへのデコーダー。

作る: BCD-7セグメントデコーダーを配線し、0から9までの数字を表示します。コンポーネントリファレンス:DECODER、ENCODER。

14日目 — トライステートバッファーとバス調停

目標: 第3の状態である高インピーダンスと、共有バスが物理的に可能な理由を理解する。

読む: 知られざる主役:デジタルバッファーが不可欠な理由、続けて トライステートバッファーとバス調停。

作る: トライステートバッファーを使い、2つのレジスターを共有4ビットバスに配線します。TRI_STATE_BUFFER コンポーネントがリファレンスです。おまけとして、タイミング上の落とし穴について 組合せ論理のハザードの記事も読んでください。

第3週 — 順序回路

組合せ回路には記憶がありません。実際のコンピューターにはあります。第3週では、ラッチ、フリップフロップ、レジスター、カウンター、シフトレジスターという記憶要素と、それらを正しく機能させるタイミング規律を導入します。

15日目 — SR ラッチ

目標: 双安定性と、ラッチが値をいつまでも保持できる理由を理解する。

読む: SR ラッチ:基本構成ブロックを解き明かす。

作る: SR ラッチのデモ。すべての入力の組合せを順に試し、禁止状態を確認します。SR_LATCH 基本要素がコンポーネントリファレンスです。

16日目 — D ラッチ

目標: SR ラッチにデータ入力とイネーブルを加え、最も単純なレベルセンシティブメモリーを得る。

読む: 順序論理を極める:D ラッチの解説。

作る: 基本 D ラッチ。透過ウィンドウを観察しましょう。イネーブルが HIGH の間は出力が入力に追従し、LOW になると値が保持されます。

17日目 — D フリップフロップ

目標: レベルセンシティブな記憶とエッジトリガーの記憶の違い、および現代のすべてのレジスターが後者を使う理由を理解する。

読む: D フリップフロップ:同期デジタル回路の知られざる主役。

作る: エッジトリガー D フリップフロップ。そのタイミング図を昨日の D ラッチと比較します。D_FLIP_FLOP 基本要素がリファレンスです。

18日目 — JK と T フリップフロップ

目標: フリップフロップファミリーを完成させ、各バリエーションが存在する理由を理解する。

読む: SR vs JK フリップフロップ:順序論理の基礎、続けて JK フリップフロップ:万能構成ブロックを極める、さらに T フリップフロップ:デジタルカウントの知られざる主役。

作る: マスタースレーブ JK フリップフロップ。JK_FLIP_FLOPと T_FLIP_FLOPの基本要素がリファレンスです。

19日目 — クロックとタイミング規律

目標: セットアップ時間、ホールド時間、伝搬遅延、メタステーブル状態、すなわち同期設計が依存するアナログ物理を理解する。

読む: クロックパルス:コンピューターに鼓動が必要な理由、続けて 見えないクロック:セットアップ、ホールド、メタステーブルを極める、さらに 伝搬遅延:デジタル速度を決める物理 と クロックスキュー。

作る: クロックコンポーネントでフリップフロップを駆動します。データ遷移をサンプリングエッジへ少しずつ近づけ、デジタルモデルがどの値を取り込むかを比較してください。次に、同等の物理的な交差がなぜメタステーブルになり得るかを計算します。論理シミュレーターは、実際のメタステーブルノードのアナログ電圧や統計的な解決時間を再現しません。

20日目 — レジスターとシフトレジスター

目標: フリップフロップを複数ビットの記憶装置へ組み合わせ、4つのシフトレジスターモードを学ぶ。

読む: シフトレジスターを極める:シリアルからパラレルへ、続けて SISO、SIPO、PISO、PIPO シフトレジスターモード。パラレルロードレジスターを 8ビットレジスターコンポーネントと関連付けましょう。

作る: クロック付き4ビットレジスターと 基本シフトレジスターデモ。コンポーネントリファレンス:REGISTER、SHIFT_REGISTER。

21日目 — カウンターと状態機械

目標: 様々な法のカウンターを作り、状態機械における Mealy と Moore の違いを理解する。

読む: カウンターと状態機械:デジタルシーケンスを制御する、続けて 周波数分周を極める:フリップフロップからモジュロNへ、さらに ジョンソンカウンター:ツイストリングを極める、最後に FSM 理論として Mealy vs Moore 状態機械。

作る: 4ビット2進カウンター、続けて 4ビット非同期リップルカウンター。タイミングを比較します。COUNTER コンポーネントがリファレンスです。

第4週 — 算術とメモリー

第4週では、本物の CPU の入り口まで進みます。加算器、比較器、ALU、そしてデータと命令の両方を格納するメモリー基本要素を構築します。日曜日には、CPU に必要なすべてのコンポーネントがそろいます。

22日目 — 半加算器と全加算器

目標: 最小の算術回路を作り、複数ビット加算器へ連結する。

読む: 半加算器:デジタル論理設計への最初の一歩、続けて 半加算器 vs 全加算器。

作る: 半加算器コンポーネントデモ、続けて 1ビット半加算器、さらに キャリー付き全加算器。リファレンス:HALF_ADDER、FULL_ADDER。

23日目 — リップルキャリー加算器とキャリールックアヘッド加算器

目標: リップルキャリーが規模の拡大で遅くなる理由と、キャリールックアヘッドがシリコン面積を使う価値を理解する。

読む: 2進加算を極める:4ビットリップルキャリーを作る、続けて キャリールックアヘッド加算器:リップルキャリーより高速。

作る: 4つの全加算器を配線して4ビットリップルキャリー加算器を作ります。最悪時の伝搬時間を測定してください。ADDERと ADDER_8BITコンポーネントがリファレンスです。

24日目 — 2の補数と符号付き算術

目標: 加算によって減算がどう行われるか、符号フラグとオーバーフローフラグがどう計算されるかを理解する。

読む: 2の補数を解説:符号付き2進算術。

作る: 23日目の加算器を変更し、第2オペランドを反転してキャリー入力を1に設定することで減算を処理します。負の数に対して正しい2の補数結果を生成することを検証してください。

25日目 — 比較器

目標: 等値比較器と大小比較器を作り、それらが CPU のどこに位置するかを理解する。

読む: デジタル比較器の解説:等値性と大小。

作る: XNOR と AND ツリーを使って4ビット等値比較器を配線します。COMPARATOR 基本要素がリファレンスです。

26日目 — ALU

目標: 加算器、比較器、論理ブロックをマルチプレクサーの背後で組み合わせ、プログラム可能な演算装置を作る。

読む: ALU の仕組み:ゲートから作る算術論理演算装置。

作る: 4ビット ALU デモから始め、次に 8ビット ALU システムへ進みます。リファレンス:ALU、ALU_8BIT。

27日目 — フラグ

目標: ALU 出力からゼロ、キャリー、符号、オーバーフローフラグを計算し、格納する。

読む: CPU フラグレジスター:キャリー、ゼロ、オーバーフロー、符号。

作る: CPU フラグレジスターテンプレート。FLAGS_REGISTER 基本要素がリファレンスです。

28日目 — メモリー:RAM と ROM

目標: アドレス指定可能なメモリーを作り、揮発性 RAM と不揮発性 ROM の違いを理解する。

読む: RAM vs ROM:回路で学ぶ本質的な違い。

作る: 基本 RAM メモリーシステムと アドレス制御付き RAM。コンポーネントリファレンス:RAM、ROM。おまけ:複数バイト値の配置については エンディアンの記事を読んでください。

29〜30日目 — 完全な CPU を作る

これで、基本的な CPU に必要なコンポーネントがすべてそろいました。最後の2日間で、それらを統合します。

29日目 — フェッチ・デコード・実行サイクル

目標: 1つの命令を、メモリーから実行、書き戻しまで、マイクロオペレーションごとに追跡する。

読む: フェッチ・デコード・実行サイクルを可視化する、続けて詳しい マイクロプロセッサーの仕組み:フェッチ・デコード・実行を深掘りする。構成要素については、プログラムカウンター、命令レジスターとデコード段を参照してください。

作る: 逐次命令実行器テンプレート。サイクルごとに一時停止し、すべてのレジスター転送を観察します。コンポーネントリファレンス:PROGRAM_COUNTER_8BIT、INSTRUCTION_REGISTER、CONTROL_UNIT、ACCUMULATOR。

30日目 — 自分の CPU を作る

目標: 第4週のコンポーネントと、29日目のプログラムカウンター、命令レジスター、制御ユニットを配線して、動作するプログラム可能な CPU にする。

読む: シミュレーターでゼロから CPU を作る。

作る: 逐次命令実行器テンプレートを出発点として変更します。新しい命令を1つ追加し、それを実行してください。自分のアセンブリー言語でプログラムを書き、自分の CPU がそれを実行するのを見る最初の瞬間に、ロードマップ全体が報われます。

30日後 — 次に進む場所

30日で動作する CPU に到達できます。そこから進める方向はいくつかあります。

より深いアーキテクチャ

基本サイクルが直感的にわかるようになったら、次の層は現代の CPU を高速にする仕組みです。パイプライン、キャッシュ、分岐予測、アウトオブオーダー実行です。マイクロプロセッサーの深掘りは、それらのトピックへの橋渡しになります。

さらに算術へ

乗算と浮動小数点はそれぞれ独自の世界です。次の2つの層として、ブースの乗算器と IEEE 754 浮動小数点を読んでください。

エラー検出と訂正

実際のシステムではビットが失われます。パリティ、ハミング符号、チェックサムによってシステムはそれを乗り越えます。パリティビットチュートリアルと ハミング符号のエラー訂正を読んでください。

特殊なエンコーディング

通常の2進数がうまく機能しない場面では、グレイコードと BCD が現れます。グレイコードの解説と BCD の基礎を読んでください。

ツールと方法論

実際の回路をシミュレートするようになると、デバッグツールが重要になります。オシロスコープでデジタル回路をデバッグするを読み、オシロスコープコンポーネントのリファレンスも確認してください。

レッスンを作る

学んだことを教えたいなら、レッスンやブログにインタラクティブな回路を埋め込むと SimCast レッスン:段階的に進む回路チュートリアルを参照してください。

ツールを選ぶ

どのシミュレーターに取り組むか決めているなら、2026年のおすすめデジタル論理シミュレーターの比較と ブレッドボードの終焉で、ブラウザーベースのシミュレーションが学習ツールキットの恒久的な一部である理由を確認できます。DigiSim が初めてなら、DigiSim.io で過ごす最初の5分が最も親しみやすい出発点です。

ロードマップに取り組むためのヒント

完走する学習者と途中で止まる学習者を分ける習慣がいくつかあります。

  • 毎日学んだことを書き留める。 日記に2文メモするだけでも、すべてを頭の中だけに保持しようとするより有効です。概念は積み重なります。23日目にマルチプレクサーが出てきたとき、12日目を参照できるようにしておきましょう。
  • 記事を読む前に回路を作る。 直感に反しますが、効果があります。目標をざっと見て回路を配線してみてから、記事を読みます。すでに適切な箇所でつまずいているため、記事の内容がより深く理解できます。
  • 行き詰まったら真理値表を読む。 デジタル論理での混乱のほとんどは、真理値表の1行に立ち返れば解消します。論理ゲート真理値表リファレンスが索引です。
  • すべてのクロックサイクルを追いかける。 特に第3週以降は重要です。シミュレーターを連続実行に任せたくなりますが、こらえてください。順序回路は1サイクルずつでしか理解できません。
  • 次の日を始める前に前日を読み返す。 3分の復習が積み重なります。
  • 1日も飛ばさない。 生活の都合で難しいなら半分の長さの日にしてもよいですが、何かはしてください。2週間の空白は、1週間分の勢いを消してしまいます。

印刷できる読書スケジュール

カリキュラム全体をひと目で見たい場合はこちらです。

日トピック主な記事作るもの
1デジタル論理とはデジタル論理101スイッチとライト
2AND ゲートAND ゲートAND セキュリティ
3OR と NOTOR ゲートOR アラーム
4XOR と XNORXOR ゲートXOR 基本要素
5NAND と NORNAND ゲートNAND 基本要素
6ブール代数ブール代数簡略化して検証
7記号、多入力ANSI vs IEC両方の表記で描く
8積和形SOP3変数関数を実装
9和積形POSPOS で再実装
10カルノー図カルノー図4変数関数を最小化
11ドントケアドントケア再最小化
12MUX と DEMUXマルチプレクサーMUX 基本要素
13デコーダーとエンコーダーデコーダー7セグメントドライバー
14トライステートバッファーバッファートライステート基本要素
15SR ラッチSR ラッチSR ラッチデモ
16D ラッチD ラッチD ラッチ
17D フリップフロップD フリップフロップD フリップフロップのエッジ
18JK と T フリップフロップJK フリップフロップJK マスタースレーブ
19クロックとタイミングクロックパルスCLOCK 基本要素
20レジスターとシフトレジスターシフトレジスターモード4ビットレジスター
21カウンターと FSMカウンターと FSM4ビットカウンター
22半加算器と全加算器半加算器全加算器
23リップルキャリー vs キャリールックアヘッドリップルキャリー4ビット加算器
242の補数2の補数減算器
25比較器比較器COMPARATOR 基本要素
26ALUALU4ビット ALU
27フラグフラグフラグテンプレート
28RAM と ROMRAM vs ROM制御付き RAM
29フェッチ・デコード・実行マイクロプロセッサーの深掘り逐次命令実行器
30自分の CPU を作るCPU を作る変更して拡張

難しくなるところと、乗り越える方法

何も難しくないふりをする30日間のロードマップは不誠実です。すんなり進む日もあります。読んで、配線して、理解する日です。一方で、崖のような日もあります。どれがどれかを知れば、スタミナを配分できます。

私たちが見てきた、学習者がつまずく崖:

  • 6日目(ブール代数)。 記号上の代数は、配線上のゲートと切り離されて感じられます。解決策は、代数と並べて必ず回路を描くことです。ド・モルガン変換を適用したら、回路を描き直してください。抽象を定着させるのは視覚的なフィードバックです。
  • 10日目(カルノー図)。 カルノー図は数独のように見えます。しかしそうではありません。隣り合うセルがちょうど1つの変数だけ異なる真理値表の2次元展開です。行と列を グレイコード順でラベル付けして、そのことを自分で確かめてください。そうすれば、残りの手法は自然に導かれます。
  • 17日目(D フリップフロップ)。 レベルセンシティブからエッジトリガーへの飛躍です。記号がほとんど同じなので、多くの学習者はその重要性を過小評価します。概念的な変化は巨大です。フリップフロップは時間的不連続性を導入します。時刻 t+ϵt+\epsilon の出力値は、時刻 tt の入力値ではなく、時刻 t−ϵt-\epsilon の入力値に依存します。ここには余分に時間をかけてください。同じ入力パターンを D ラッチと D フリップフロップの両方に通し、タイミング図を並べて比較しましょう。
  • 19日目(タイミング規律)。 セットアップ、ホールド、メタステーブルは、デジタル設計が純粋なブール論理ではなく、そのアナログ的基盤を認める瞬間です。解決策は 伝搬遅延の記事を自分のものにすることです。ゲートには時間がかかり、その時間は変動することを受け入れれば、タイミング規則は必然になります。
  • 26日目(ALU の統合)。 動作する ALU には何十本もの配線があります。回路図をただ写して先へ進みたくなる誘惑は強いものです。抗ってください。1つの演算を1ビットずつ追えば、頭の中のモデルを保てます。ここを飛ばすと、30日目が苦しくなります。
  • 30日目(統合の日)。 ここは、すべてが複利のように積み上がる日です。以前の構築を飛ばしていれば、ここで現れます。解決策は、1か月を通じてどの構築も絶対に飛ばさないことです。

見た目より簡単な日:

  • 5日目(NAND/NOR の万能性)。 証明はゲートごとに1つの回路です。NAND から AND を作るのを見れば、残りは機械的です。
  • 12日目(マルチプレクサー)。 MUX は選択線を持つ配線ルーターです。それが全体のアイデアです。12日目の「関数生成器としての MUX」という手法は楽しいですが、任意です。
  • 22〜24日目(算術)。 第4週まで来ていれば、加算器ファミリーは番号どおりに色を塗るようなものです。楽な日を楽しんでください。後でエネルギーが必要になります。

ある日に構築を飛ばしたくなったなら、それはまさにその構築を飛ばしてはいけない部分だという、これ以上ない強い合図です。作らずに読むと、言葉で説明できても配線できない回路が残ります。

各週の終わりに「完了」と言える状態

各週はチェックポイントで終わります。チェックポイントを達成できなければ、先へ進む前にその週をやり直してください。

  • 第1週の終わり。 4入力の真理値表が与えられたとき、出力のブール式を書き、対応するゲートレベル回路を描き、任意の入力に対する出力を予測できます。同じ回路を ANSI または IEC 表記で描かれても読めます。
  • 第2週の終わり。 ブール関数が与えられたとき、カルノー図でほぼ最小の実装を見つけ、SOP と POS のどちらが安価かを決め、仕事に適した基本要素(MUX、デコーダー、エンコーダー)を選べます。7セグメントディスプレイドライバーをゼロから配線できます。
  • 第3週の終わり。 クロック駆動回路が与えられたとき、複数のクロックサイクルにわたる波形を予測できます。任意の法のカウンターを作れます。セットアップ時間とホールド時間が存在する理由、およびメタステーブルとは何かを説明できます。
  • 第4週の終わり。 正しいフラグ生成を伴う加算、減算、AND、OR、XOR をサポートする n ビット ALU を作れます。RAM を配線し、カウンターからアドレス指定できます。
  • 30日目の終わり。 CPU の命令セットで短いプログラムを書き、RAM にロードし、リセットを押して、自分の CPU が実行するのを観察できます。

このロードマップが機能する理由

私たちは、学習者が同じ場所、すなわち順序論理が組合せ論理には不要だったタイミング直感を突然求める第3週で、同じ停滞にぶつかるのを見てきました。このロードマップは第1週にゲートへの習熟を前倒しするため、第3週には XOR が何をするかを思い出すことまで同時にする必要がありません。理論と実践を交互に配置するので、どの概念も24時間を超えて抽象のままにはなりません。そして現実の CPU で終わります。そこでは分野全体が腑に落ちるからです。配線したすべてのゲート、フリップフロップ、マルチプレクサーが同じ回路に入り、実際の仕事をします。

このロードマップは拡張できるようにも設計されています。1か月ではなく1週間しかないなら、第1週、第2週、第4週の26〜30日目に集中すれば、深さは失いますが背骨は得られます。1学期あるならスケジュールを2倍にします。各日を2日間にし、2日目を演習とプロジェクトに使います。1年あるなら、「30日後」の分岐をたどって、パイプライン、エラー訂正、浮動小数点へ進んでください。

デジタル論理を教えているなら、このロードマップは自由に使えます。学生に渡し、カスタマイズし、フォークしてください。ブログ記事はオープンアクセスで、シミュレーターテンプレートは自由にリミックスできます。お願いはただ1つ、学生と何かを作り、彼らが作ったものを共有することです。ハードウェアは人前で楽しむ方が面白いのです。

30日間プランのバリエーション

このロードマップには明確な考え方がありますが、各日を契約ではなく順序として扱ってください。注目すべきバリエーションは3つあります。

短期集中版(10日)。 すでに触れた経験があり圧縮したいなら、1〜7日目を各1日で進め、その後、第2〜4週を各週で最も代表的な概念(カルノー図、D フリップフロップ、ALU)につき1日へ圧縮します。8〜10日目を CPU の構築に使います。深さはいくらか失いますが、背骨は保てます。

マラソン版(90日)。 各日を理論 + 構築 + 拡張の3つにします。拡張では、その日の概念を記事にない問題へ適用します。たとえば、2入力 AND から7入力 AND を作る、6ビットカウンターを設計する、シリアルビットストリームで「1011」を検出する Mealy 機械をシミュレートする、といったものです。こうしてロードマップをコースに変えられます。

トピック主導版。 たとえばホビーのプロジェクト用にカスタムカウンターを設計することだけに関心があるなら、ロードマップの依存関係ツリーが取り組むべき日を教えてくれます。カウンターにはクロックとフリップフロップが必要で、フリップフロップにはラッチが、ラッチにはゲートが必要です。目標から基礎へ逆向きにたどれば、独自の計画ができます。

ロードマップとサイトの他の部分をつなぐ

ブログとシミュレーターは、1つのリソースとして設計されています。ロードマップはその中を進むキュレーションされた経路ですが、自由に寄り道もしてください。

  • ドキュメント索引には公開済みの Logic コンポーネントリファレンスがまとまり、Relay、Electricity、目的を絞った Analog Beta ガイドにも個別にリンクしています。JK フリップフロップの J と K 入力を忘れたときは、JK_FLIP_FLOP コンポーネントリファレンスで素早く確認できます。すべてのコンポーネントに個別ページがあると仮定せず、索引を確認してください。
  • ブログ索引は新しい順に並び、タグ付けされています。primaryTag でフィルターすれば、シリーズ内のすべての記事を見つけられます。
  • 料金ページでは、無料の機能(このロードマップの内容はすべて無料)と Professional バンドルに含まれる機能(エクスポート、プレミアムテンプレート、高度なレッスン)を説明しています。
  • 一時停止したステップを伴うレッスン形式のナレーションが必要なら、SimCast レッスンを参照してください。

このロードマップにある話題について、より深く掘り下げる記事が見つからないなら、おそらく執筆キューに入っています。今後数か月は ブログフィードを見ていてください。

最後に

このページをブックマークしてください。カリキュラムの進化に伴う新しい記事を受け取れるよう、DigiSim ブログ RSSを購読しましょう。新しい記事はおよそ毎週追加され、その多くは既存の日を深掘りする内容としてロードマップに直接加わります。終えたら、どこかに自分の CPU を投稿してください。誰かに説明する行為によってこそ、どの部分を本当に自分のものにしたかがわかります。

1日目はクリック1回先です。デジタル論理101を開き、基本的なスイッチとライトのデモを表示して、始めましょう。


今すぐ始める: 1日目に読むのは デジタル論理101、作るのは 基本的なスイッチとライトのデモです。このページをブックマークし、ブログフィードを購読して、明日は2日目に戻ってきてください。

アイデアを実際に動く回路にしましょう。