これは、4000円から始めるVHDLと脱チューリングマシンの世界への続編(その2)になります。
高位合成環境にて回路記述をするのが今時?のようだが、
私の目標が彼等と異なる事を理解したので今回はタイトル一部通りに、VHDL記述の前準備として組む論理回路そのものの復習及び以降の設計題材を記述してみた。
前回の記事にある高速切り替え装置の一部である論理演算によるインクリメント処理である半加算器になる。
半加算器論理回路図
0から2の計3ビット幅のカウンタをインクリメントする回路
説明
値は0〜7まで、
各ビットをXORで該当ビットの加算結果を求めANDで該当ビットを加算した結果の桁上がりを求める。
1ビットずつ(データ幅分)これを処理する。処理は上から下、左から右と流れる。
緑のラインで今回、そして青のラインで次回のサイクルに入る事を意味する。
A〜Cのdフリップフロップ回路は、メモリやレジスタとして実際が実態となる想定。
処理(以下の記載は全て処理対象一つ=1論理回路であり、1論理回路が1ビット幅のデータを処理するのでは無い!)
最初、A〜Cの3bitは全て0である、
加算サイクル1
ステップ1:
0bit目を計算する1:のXORは1と0が与えられ、結果は1。
0bit目の桁上がりを求める2:のANDにも1と0が与えられ、結果は0
ステップ2:
次に、1bit目を計算する3:のXORには2:の0と自身の0が与えられ、結果は0。
1bit目の桁上がりを求める4:のANDにも0と0が与えられ、結果は0
ステップ3:
同じく、2bit目を計算する5:のXORには4:の0と自身の0が与えられ、結果は0。
2bit目の桁上がりを求める63:のANDにも0tp0が与えられ、結果は0。
この3ステップを加算サイクル分繰り返す
加算サイクル1
1: 1XOR0→1 、2: 1AND0→0
3: 0XOR0→0 、4: 0AND0→0
5: 0XOR0→0 、6: 0AND0→0
加算サイクル2
1: 1XOR1→0 、2: 1AND1→1
3: 1XOR0→1 、4: 1AND0→0
5: 0XOR0→0 、6: 0AND0→0
加算サイクル3
1: 1XOR0→1 、2: 1AND0→0
3: 0XOR1→1 、4: 0AND1→0
5: 0XOR0→0 、6: 0AND0→0
加算サイクル4
1: 1XOR1→0 、2: 1AND1→1
3: 1XOR1→0 、4: 1AND1→1
5: 1XOR0→1 、6: 1AND0→0
....