4ビットCPUの設計 その1
ここでは,K-COMで学んだCPUの設計を元に,4ビットCPUの設計を行ってみる.
簡単に回路作成するため,汎用性は犠牲にして,以下のようにアーキテクチャを考えた.
図1に示すように命令長は4ビット,うち上位2ビットを命令コード,下位2ビットをアドレスとする.

図1 4ビットマイコンの命令構成
用意する命令と命令コードは表1のように定める.基本的に演算命令のみとし, 強制停止のHALT命令はハードウェア検出で行うことにした.

4ビットマイコンの構成を図2に示す.演算命令しかないため, メモリへの書き込み起こらないことからメモリはROMを用いた.

図2 4ビットマイコンの構成

図3 コントローラの動作
以上から,図4の全回路を作成した.ALUは4ビットなので,74LS181を使った. このALUの制御信号はK-COMと同様にPROM(U24)により与えている. プログラムカウンタは74LS193による2ビットのカウンタである.前述の通り,メモリにはPROMを用いている. アドレスはA0とA1の2ビット,データバスはO0,O1,O2,O3の4本である. 命令レジスタの4ビットのうち上位2ビットは命令コードであるが,ここではALUの制御とHALTの検出にしか 使っていない.下位2ビットのアドレスは,PCと切り替えによりメモリのアドレス指定に使われる. コントローラはPROM(U11)とD-FFのループにより作成された2ビットのカウンタである. これをデコードしてPROM(U20)により制御信号を出力している. コントローラの制御信号は表2の真理値表の通りである.

図4 4ビットCPUの全回路
表2 コントローラの制御信号設計

CircuitMaker用回路データのダウンロード
![]() ESP32 Wifi Bluetooth開発ボード |
![]() Arduino Nano Every |
![]() Raspberry Pi pico |
![]() FPGA XILINX Artix-7 |