4ビットCPUの設計 その2
ここでは,4ビットCPUに汎用性を持たせるため,命令を8種類(命令コード3ビット),
アドレスを16通り(4ビット)として設計する.

図1 4ビットCPUの命令構成
用意する命令と命令コードは表1のように定める.命令はK-COMとほぼ同じであるが, 右シフトとHALT命令は回路の簡単化のために省略した.

4ビットマイコンの構成を図2に示す.ここではアーキテクチャを改変し,プログラム領域をROMに, 変数領域をRAMにそれぞれ分担させた.

図2 4ビットCPUの構成
フェッチおよび実行サイクルは,図3に示すようにK-COMと同じである.

図3 コントローラの動作
以上から,図4の全回路を作成した.ALUは4ビットなので,74LS181を使った. このALUの制御信号はK-COMと同様にPROM(U24)により与えている. プログラムカウンタは74LS193による4ビットのカウンタである. 前述の通り,プログラム領域にはPROMを用いている.また変数領域にはRAMを用いている. コントローラの構成はK-COMと同様であるが,回路の視認性をよくするためと,メモリ構成の変更から, コントローラの制御信号はK-COMと異なっている.

図4 4ビットCPUの全回路
コントローラの状態遷移ROM(U5)の設計を表2に示す.真理値表はK-COMと同様であるが, 命令レジスタを7ビットとしたため,表内のIRの値が違っている. コントローラの制御信号は,フェッチサイクルと実行サイクルに分けて設計し,表3と表4にそれぞれ示す.

表3 フェッチサイクル時の制御信号設計

表4 実行サイクル時の制御信号設計

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