CPUの創りかた

2021年9月1日


CPUの創りかた


マイナビ


著者:渡波郁


はじめに

Chapter 1 はじめの一歩のその前に
1-1 ココロの準備
 いちばん大事なこと
 IC10個だけでCPUを作る
 楽しむために
1-2 装備の点検
 抵抗
 コンデンサ
 ダイオー
 IC
 部品の初期不良
 テスターは信用できるものを
 アナログかデジタルか
 おまけ:テスターの安物って何が違うの?

Chapter 2 LED
2-1 とりあえずLEDの点灯方法
 完成したCPUを妄想してみる
 豆電球と何が違うのか
 解決策
2-2 もうちょっとだけ真面目に考える
 LEDの順電圧
 抵抗の消費電力の計算
 おまけ:LEDの購入の実際

Chapter 3 デジタル回路の基礎の基礎
3-1 74HCシリーズ
 汎用IC
 74シリーズの歴史(ショートバージョン)
 CPLDとFPGA
 どうやって1と0を表現するのか
 デジタル信号の電圧
 デジタル信号の電流
3-2 簡単な論理回路
 NOT(論理反転)
 AND(論理積)
 OR(論理和)
 NAND
 多入力ゲート
3-3 実際の回路
 使わないピン
 静電気はどんなときに犯行に及ぶのか
 電源も必要です
 まとめとか
 電源の配線

Chapter 4 リセットとクロック回路
4-1 リセットとスイッチ
 ここはアナログな話ですが
 プルアップ
 チャタリングの問題
 CRのフィルタ
 チャタリング防止
 シュミットトリガ
 リセット回路
 おまけ:スイッチと電流と接点不良とPC
4-2 クロックジェネレータ
 発振の原理
 実際の発振波形
 無極性電解コンデンサ

Chapter 5 ROMを作る
5-1 ROMというのは
 ROMとはプログラムを格納する場所ですか?
 使用するROM
 ROMとして必要な機能
 1bitのROM
 ビット数が多いときの問題点
5-2 ROMの回路
 メモリーセルの材料128人前
 8bit出力
 実際のROMの回路
 アドレスの選択
 74HC154の中身
 この回路での注意
 少しでも楽に製作する方法

Chapter 6 CPUの設計準備
6-1 CPUの仕様
 ようやくCPUの話になるわけですが
 勝手に仕様を決めさせていただきますが
 レジスタ構成
 命令フォーマット
 命令一覧
 PCとの比較
6-2 機械語とは
 CPUと機械語
 処理単位は4bit
 数値の転送命令
 レジスタ間転送命令
 加算命令
 プログラム
 ジャンプ命令
 フラグと条件付きジャンプ(条件分岐)命令
 プログラムカウンタ
 I/O
 入力命令(IN)
 出力命令(OUT)

Chapter 7 1bitCPU(らしきもの)
7-1 フリップ・フロップ
 フリップ・フロップ登場
 実際の動作
 データの保持
7-2 1bitCPU
 転送命令の正体
 演算が可能な1bitCPU
 おまけ:フリップ・フロップの仕組み
 データの流れを変更する方法
 おまけ:ドライブ能力とオーバークロック
7-3 切り替えスイッチを手に入れた我々が次に目指すもの
 電気式で命令を切り替えられる1bitCPU
 複数のレジスタを持つCPU(これが普通ですが)
 74HC161
 実際の回路

Chapter 8 ALUとプログラムカウンタ
8-1 ALU
 肝心のALUが売ってない!
 加算回路
 二進数1bitの加算回路
 全加算器
 演算回路を追加する
 演算回路を追加したのはいいのだけれど
 フラグ
 フラグの設計
8-2 プログラムカウンタ
 プログラムカウンタとは
 プログラムカウンタはいつカウントアップするのか
 ジャンプ命令
 条件ジャンプ命令
8-3 I/Oポート
 出力ポート
 入力ポート

Chapter 9 命令デコーダ
9-1 命令デコーダのお仕事
 後は何が必要なのか
 MOV A,Im
 MOV B,Im
 MOV A,B
 MOV B,A
 ADD A,Im
 ADD B,Im
 IN A
 IN B
 OUT Im
 OUT B
 JMP Im
 JNC Im
9-2 デコーダの設計
 とりあえず書き出してみました
 真理値表の単純化
 ド・モルガン律
 そろそろ最終回
 カルノー図(自由選択科目)
 紅白対抗カルノー図・ルールの説明
 最終兵器カルノー図、いよいよ実戦配備
 カルノー図から回路へ
 実際の回路

Chapter10 全回路図
10-1 回路図について
 CPUの全回路図
 クロックとリセット回路
 ROMの回路図
 製作例・部品面
 製作例・配線面

Chapter11 動作確認
11-1 最初は部分的な確認
 通電しなくても確認できること
 電源のチェック
 クリップなど
 リセット回路のチェック
 プログラムカウンタのチェック
 ROMのチェック
 命令デコーダのチェック
 イミディエイトデータのチェック
 加算器のチェック・加算器からレジスタへの配線
 いよいよ転送の実行
 ここまで書いてナンですが・・・
11-2 プログラムの実行
 サンプルプログラム1:LEDちかちか
 サンプルプログラム2:ラーメンタイマー
 ブザーを鳴らす回路
 おまけ:最大動作周波数
11-3 もう少しマトモなCPU
 8bit化
 ALUの強化
 CPLDなどについて
 既製品のCPUをいじってみる

APPENDIX
 配線作業などについて
 部品の値の読み方
 サポートについて

INDEX