第3章 レジスタ転送論理
3.1 マイクロ操作とレジスタ転送言語
�ディジタルシステムを設計する場合 全体を1つの機能ブロックとみないで
いくつかの機能ブロックが有機的に接続されて構成されるシステム と考える
3
3.1 マイクロ操作とレジスタ転送言語
�ディジタルシステムの設計の流れは システム設計
機能設計 論理設計 レイアウト設計
と上位から下位へ流れ 抽象的な設計から詳細な設計へ
と設計される
4
レジスタ転送論理
�機能設計では
レジスタの間のデータのやりとりを記述するために ゲート論理より高水準のレジスタ転送論理で設計する
レジスタ転送論理では
ディジタル・システムの基本素子はレジスタであり レジスタに格納される情報の流れとその処理
を記述することにより システムを記述する
5
マイクロ操作、レジスタ転送言語
�レジスタに格納されている情報に施す操作を マイクロ操作という
レジスタ間のデータのやりとりは このマイクロ操作によって記述することができる
マイクロ操作を基本にして
コンピュータの動作を記述する言語をレジスタ転送言語と呼ぶ ハードウェア記述言語とも呼ばれている
VHDL (VHSIC Hardware Description Language)
マイクロ操作(micro-operation)
�マイクロ操作はそれを起動する制御条件を示した論理式とともに つぎのように記述する
制御条件: マイクロ操作, マイクロ操作, ...
制御条件を表現する論理式が成立すると そのあとに書かれたマイクロ操作が実行される
7
マイクロ操作:例
タイミング変数 T1 = 1 のときに フリップフロップ X の値が1であれば
レジスタ B の値をレジスタ A に転送
X T 1 : A ! B
X T 2 : A ! B + C
X T 2 : A ! B – C
8
レジスタのブロック図
AR(0 : 7) レジスタAR の0ビットから7ビットまで PC(L) レジスタPC の下位のビット
M(AR) レジスタAR が示すアドレスのメモリMの内容
A ← B レジスタB の内容をレジスタ A に移す
9
マイクロ操作を実現する回路 例1
X T
1: R0 ! R1
マイクロ操作を実現する回路 例2
T
1: R0 ! R1
T
1T
2
: R0 !
11
マイクロ操作を実現する回路 例2
T
1: R0 ! R1
T
1T
: R0 !
MUX 0
1
12
3状態ゲート
13
3状態ゲート
1 0 X
X 0
X
3状態ゲート
0 1 0
0 1
Z 高抵抗(ハイインピーダンス) Yが電源線、接地線と 高抵抗で接続された状態
回路から切り離された状態
15
3状態ゲート
C=1: Y=X
C=0: YとXが切り離された状態
16
3状態ゲートで実現 例2
T
1: R0 ! R1
T
1T
: R0 !
17
演習問題
�つぎのマイクロ操作を実現する回路をブロック図で示せ。 マルチプレクサを用いた場合
3状態ゲートを用いた場合
x ! T 1 : R0 " R1
x ! T 1 : R0 " R2
演習問題(解答)MUX
x ! T 1 : R0 " R1
x ! T 1 : R0 " R2
x T
1
19
演習問題(解答)3状態ゲート
x ! T 1 : R0 " R1
x ! T 1 : R0 " R2
R1
R2
R0
x T
1ロード
x
20
演習問題
つぎのマイクロ操作を実現する回路を 3状態ゲートを用いて、ブロック図で示せ。
T
1: R0 ! R1
T
2: R0 ! R2
T
3: R0 ! R3
T
4
: R0 !
21
演習問題(解答)
R2
R3
R0
T
1: R0 ! R1
T
2: R0 ! R2
T
3: R0 ! R3
T
: R0 !
R1
T
1R4
T
2T
3T
4マルチプレクサによるバスシステム
R1 ! R2
このマイクロ操作を実現するには、 マルチプレクサで入力2を選び、 同時にデコーダで E1=1 となるように 選択入力を加える
23
マルチプレクサによるバスシステム
R1 ! R2
このマイクロ操作を実現するには、 マルチプレクサで入力2を選び、 同時にデコーダで E1=1 となるように 選択入力を加える
1 0 1
10
1
24
3状態ゲートによるバスシステム
R1 ! R2
25
3状態ゲートによるバスシステム
R1 ! R2
1
0 1
0 1
1 1
1
メモリ転送
�読み出しマイクロ操作 Read : DR ! M(AR)
�書き込むマイクロ操作
Write : M(AR) ! DR
27
メモリ転送
読み出しマイクロ操作 Read : DR ! M(AR)
書き込むマイクロ操作
Write : M(AR) ! DR
28
双方向バス
複数ビットのデータを並列伝送するためのバスは 導線を並べて走らせたものにすぎず もともと双方向に信号を伝送することができる
送信用と受信用にバスを別々に用意するかわりに 1組のバスを切り替えて送信と受信に兼用することができる
これを双方向バス(bidirectional bus)と呼ぶ
これにより、バス本数が半減し、貴重な回路の面積を節約することができる
29
3.3 演算用マイクロ操作
演算用マイクロ操作には
算術マイクロ操作 論理マイクロ操作 シフト・マイクロ操作 算術マイクロ操作には 加算、減算、補数を求める操作 1加算、1減算、などの基本操作
タイミング信号 T1 のときにレジスタR1 と R2 の加算を行ない その結果を レジスタR0 に転送するマイクロ操作は
T1 : R0 ← R1 + R2
算術マイクロ操作
31
論理マイクロ操作
32
シフトマイクロ操作
33
論理シフト
論理シフトはレジスタの各ビットを1ビットづつシフトする操作である が、空になる端のビットには0が埋められる
R = 1 1 0 1 0 0 0 1 lsl R = 1 0 1 0 0 0 1 0
R = 1 1 0 1 0 0 0 1 lsr R = 0 1 1 0 1 0 0 0
回転シフト
回転シフトでは両端が接続され回転するようにシフトを行ない、端にあ ふれるビットをその反対側の端のビットに転送する
R = 1 1 0 1 0 0 0 1 rol R = 1 0 1 0 0 0 1 1
35
算術シフト
算術左シフトは符号付き2進数に2を掛け算することと等価 算術右シフトは符号付き2進数を2で割り算することと等価
算術シフトではシフトの前後で符号ビットは不変 符号ビット以外のビットだけが1ビットづつシフト R = 1 : 1 0 1 0 0 0 1 asl R = 1 : 0 1 0 0 0 1 0
R = 1 : 1 0 1 0 0 0 1
asr R = 1 : 1 1 0 1 0 0 0
36