HOME > 4ビットCPUの設計 その3

 4ビットCPUの設計 その3 

ここでは,8ビットCPUのK-COMを元に,4ビットCPU設計を行う.命令長は8ビットのままとし, 図1に示すように4ビットのデータを命令レジスタに2回に分けて読み込むことにする. 機械語の構成は8ビットK-COMと同じである.4ビット版K-COMの全体の構成を図2に示す.

kcom43image001
図1 4ビットCPUの命令構成

kcom43image002
図2 4ビットCPUの構成


命令の読み出し方法が変わったため,フェッチおよび実行サイクルは図3に示すように変更した.

kcom43image003
図3 コントローラの動作

この場合,コントローラの回路も変更が必要となる.全部でS0からS5までの6サイクルあるので, 3ビットの記憶素子が必要となる.K-COMの状態遷移回路はPROMとD-FFにより作成されていたが, PROMのアドレスは5ビットしかなく,命令コード3ビットと記憶素子3ビットを入力することはできない.
そこで,命令コードの冗長性から2ビットにエンコードして状態遷移ROMの設計を行った. 具体的には,命令の種類によって実行サイクルが1サイクルと2サイクルに分岐する部分のみの検出を行えばよい. IR7が0なら演算命令で実行サイクルは2サイクル,IR7が1でIR6の否定とIR5のANDが1の時にST命令実行で2サイクル, それ以外では1サイクルとなる.以上から状態遷移ROMの真理値表を表1のように設計した.

表1 状態遷移ROMの設計
kcom43table1

そのほか,制御信号にも若干の変更がある.命令レジスタを2回に分けて読み込む際,2個のレジスタを 4ビットずつ用い,それぞれのCE信号を制御したが,制御信号出力用のROMのデータバスにも余りがない. そこで,K-COMの命令レジスタのCE制御信号と状態遷移回路のD-FFの出力を組み合わせて2個のレジスタを それぞれ制御するようにした.
フェッチサイクル制御用ROMの回路も変更した.フェッチにはS0からS3までの4サイクルの出力が必要なため, ROMのアドレス信号を変更し,アドレス0,1,2,3までを有効とし,8ビット版K-COMのS0,S1,S0,S1状態の 制御信号を順に出力するようにROMデータを追加した.
以上の変更を加えて作成した4ビットCPUの全回路は図4である.

kcom43image005
図4 4ビットCPUの全回路

CircuitMaker用回路データのダウンロード

< 前の記事へ次の記事へ >


ページトップに戻る



ESP32 Wifi Bluetooth開発ボード

Arduino Nano Every
​​
Raspberry Pi pico

FPGA XILINX Artix-7