LoginSignup
5
2

1bit CPUを自作した

Last updated at Posted at 2021-06-13

1bit CPU を自作してみました。CPUがどんな原理で動いているか知りたかったので、最も簡単なモデルで試してみました。

回路図

1bit-cpu.jpg
※KiCadの回路図はGitHubよりダウンロードできます。

スペック

項目 スペック
汎用レジスタ 1bit x 1
アドレス空間 1bit
ROM容量 4bit
命令セット ADD, JMP
プログラムカウンタ 1bit
フラグレジスタ 未実装
算術演算 1bitの加算(XOR)
最高クロック周波数 8MHz程度
IC総数 4個

以上のような超低性能コンピュータです。プログラムは2行しか書けません。1bitしか扱えないため、1+1は0になります。ほぼ何もできないコンピュータです。

命令セット

命令 機械語 説明
ADD A, Im 0 AレジスタにIm(イミディエイトデータ)を加算する。
JMP Im 1 Imで指定した先の番地へジャンプする。

プログラム例

Aレジスタに1を加算し続けるプログラム
ADD A, 1
JMP 0
Aレジスタに1を加算するだけのプログラム
ADD A, 1
JMP 1
何もしないプログラム
JMP 0

プログラムの書き込み

スイッチが無かったので、ダイオードをスイッチ代わりにしました。プログラムを書き込むときは、0にしたいビットのダイオードを取り外します。1にしたいビットのみダイオードを取り付けます。これで書き込み完了です。

電源ON

   Aレジスタに1を加算し続けるプログラムです。リセット回路に0.1μFのコンデンサが入っているので、電源を入れると自動的にリセットされます。赤ランプがAレジスタ、緑ランプがプログラムカウンタ、黄ランプがクロックです。Aレジスタ(赤ランプ)が加算されています。オーバーフローすると0になるので、0と1を繰り返し、点滅動作になります。
5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2