CPUをつくろう -プログラムカウンタとデータセレクタ編1-

プログラムカウンタ

次に読み出すメモリのアドレスを指定する装置。クロックパルスを入力する度に指し示すアドレスを進めて行く。

今回のCPUは0〜3の計4アドレスなので、クロックを入力する度に0〜3をカウントアップする回路を作る。

フリップフロップ

カウンタはフリップフロップという回路を使って作る。フリップフロップにはいくつかの種類があるが、今回はDフリップフロップを用いる。フリップフロップについての詳細は今後の「レジスタ編」で説明する。

Dフリップフロップとは以下のような回路となる。NOT、AND、ORの論理回路を組み合わせた構成になっている。

入力DとCLK、出力Qがある。この回路のCLKにクロックパルスを入力すると、クロックの立ち上がり(LoからHiに切り替わる瞬間)にDに入力された値を記憶し、Qに出力する。

このDフリップフロップは以下のような記号で表す。

カウンタを作る

Dフリップフロップをつかって2bitのカウンタを作る。2bitのカウンタとは、00,01,10,11の2bitの値をカウントするということ、つまり0〜3をカウントアップするカウンタのこと。

2bitのカウンタは以下の構成で作る。CLKにクロックパルスを入力する度にbit1、bit0の出力が0,0、0,1、1,0、1,1と変化する。

最後にカウンタが動作する様子を示す。クロックの立ち上がりに合わせてbit1、bit0の値が変化するのが分かる。