第 7 章デジタル演算回路 1
デジタル信号処理音声, 音楽, 通信信号 信号 = 符号付き 2 進データ 負の数値の表現方法 2
2 進数 n ビット n-1 =Σb i 2 i 0 2 の補数 +=2 n n-1 n-1 2 n =1+Σb i 2 i +Σb i 2 i 0 0 n-1 =2 n ー =1+Σb i 2 i 0 3
2 進数の補数 2 の補数 各桁のビットを反転した後で最下位に 1 を加える ( 例 ) 0101 の 2 の補数 = 1010 + 0001 = 1011 1 の補数 各桁のビットを反転 ( 例 ) 0101 の 1 の補数 = 1010 4
10 進 7 6 5 4 3 2 1 0-1 -2-3 -4-5 -6-7 2 進 111 110 101 100 011 010 001 000 0001 0010 0011 0100 0101 0110 0111 正の数字は最上位を 0 にする 負の数字は 2 の補数で表す 2 の補数表現 0111 0110 0101 0100 0011 0010 0001 0000 1111 1110 1101 1100 1011 1010 1001 5
10 進 7 6 5 4 3 2 1 0-1 -2-3 -4-5 -6-7 2 進 111 110 101 100 011 010 001 000 0001 0010 0011 0100 0101 0110 0111 符号ビット + 振幅 ( 絶対値 ) 符号振幅表現 0111 0110 0101 0100 0011 0010 0001 0000 1001 1010 1011 1100 1101 1110 1111 Sign-Magnitude 6
加算回路 dder 筆算の手順 2 3 2 2 2 1 2 0 2 進数 3 2 1 0 被加算数 + 3 2 1 0 加算数 C3 S3 C2 S2 C1 S1 C0 S0 和 SUM 桁上げ CRRY 7
半加算回路 Half dder (H) S C 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 S C 8
全加算回路 Full dder : F S C i S C o 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 1 0 0 1 1 0 1 1 0 1 0 1 1 1 1 1 1 Ci Co Ci 9
全加算回路の論理式 C i S C o 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 和 0 0 1 1 0 0 1 1 0 1 1 0 1 0 1 1 1 1 1 1 S = ( + ) C i + ( + ) C i = ( + + C i ) キャリ - C o = + (+) C i = C i ( + ) + ( + ) 10
全加算回路の論理図 + S + C i + C o EXOR の実現が重要 和 S = ( + ) C i + ( + ) C i = ( + + C i ) キャリ - C o = + (+) C i = C i ( + ) + ( + ) 11
マンチェスタ型全加算回路 EXOR EXOR C i + S + C i C o 和 S = ( + ) C i + ( + ) C i キャリ C o = ( + ) C i + ( + ) キャリーの伝搬が速いのが特徴 12
複合ゲートを用いた全加算回路 Vdd Vdd Ci Ci Ci X Vdd Ci Ci Ci Vdd S Co 13
n ビット加算器 1 ビットの全加算器を接続して作る n n 2 2 1 1 0 0 0 全加算器 F 全加算器 F 全加算器 F 全加算器 F Cn Sn C2 S2 C1 S1 C0 S0 この形をリップルキャリー型という. キャリーの伝搬が起こるので速度が遅い 14
2 進数の減算 被減数に減数の 2 の補数を加える 減算結果は符号付の数字最上位ビットは符号ビット (0 + 1 -) ( 例 ) 下位から 4 ビット目を符号ビットとして 10 進数で 5-3 = 2 の演算を行う場合 0101-0011 = 0101 + (0011 の 2 の補数 ) = 0101 + 1101 = 0010 (+2) 3-5 = 0011-0101 = 0011 + 1011 = 1010 (-2) ( 符号ビットからの桁上がりは無視 ) 15
2 の補数減算器 符号ビット n-1 n-1 n-2 n-2 1 1 0 0 C n-1 F F F F C n-2 C 1 C 0 C -1 "1" S n-1 S n-2 S 1 S 0 16
加減算器 符号ビット Yn-1 Xn-1 Yn-2 Xn-2 Y1 X1 Y0 X0 M モード制御 Cn-1 F F F F Cn-3 C1 C0 Cn-2 C-1 上位あふれ Sn-1 Sn-2 S1 S0 上位あふれが 1 となった場合演算結果は正しくない 上位あふれが 1 とならない場合でも正しくない結果が出る場合がある それはどの様な場合か M = 0 X + Y M = 1 X + Y の 2 の補数 = X + (- Y) = X - Y 17
固定小数点乗算器 X 被乗数 乗算器 Y 乗数 2 3 2 2 2 1 2 0 Z 乗算結果 X3 X2 X1 X0 被乗算数 Y3 Y2 Y1 Y0 乗数 P30 P20 P10 P00 P32 P31 P22 P21 P12 P11 P02 P01 部分積 P33 P23 P13 P03 C6 Z6 Z5 Z4 Z3 Z2 Z1 Z0 乗算結果 18
X Y C i-1 並列乗算器アレイ型 5x5ビット NDゲート n x n 個 被乗数 X4 X3 X2 X1 X0 P40 P30 P20 P10 P00 Y0 C i 全加算器 P41 P31 P21 P11 P01 Y1 S P42 P32 P22 P12 P02 Y2 乗数 P43 P33 P23 P13 P03 Y3 P44 P34 P24 P14 P04 Y4 C7 C X Y S C C X Y C S Z7 Z6 Z6 Z5 Z4 Z3 Z2 Z1 Z0 乗算結果 19
並列乗算器アレイ型 被乗数 キャリと和信号の伝搬パス P40 X4 X3 X2 X1 X0 Y0 P30 P20 P10 P00 P41 P31 P21 P11 P01 Y1 キャリの伝搬段数は最悪 11 段 P42 P32 P22 P12 P02 Y2 乗数 n ビットの場合は 3n ー 4 段 Y3 P43 P33 P23 P13 P03 P44 P34 P24 P14 P04 Y4 C7 C X Y S C C X Y C S Z7 Z6 Z6 Z5 Z4 Z3 Z2 Z1 Z0 乗算結果 20
キャリセーブアダー方式 被乗数 X3 X2 X1 X0 Y0 P30 P20 P10 P00 Y1 P21 P11 P01 P12 P02 Y2 乗数 Y3 P03 21
キャリセーブアダ (CS) 方式乗算器 5x5 ビット CLに入るまでのキャリと和信号の伝搬段数はそれぞれ最悪 n ー 2 段 P42 被乗数 X4 X3 X2 X1 X0 Y0 P40 P30 P20 P10 P00 P41 P31 P21 P11 P01 P32 P22 P12 P02 Y1 Y2 乗数 P43 P33 P23 P13 P03 Y3 P44 P34 P24 P14 P04 Y4 X C Y S C C8 CL 高速加算器 Z8 Z7 Z6 Z5 Z4 Z3 Z2 Z1 Z0 乗算結果 22
シフト加算による乗算回路 シフタ + 被乗数 =10110 10110 10110 10110 10110 10110 0bit シフト x1 加算しない 2bitシフト x4 3bitシフト x8 加算しない 乗数 =01101 1 0 1 1 0 0100011110 加算回路 乗算結果 累算器 ( アキミュレータ ) 演習問題 5 ビットのシフタの回路を書け 乗算結果 23
5 ビットのシフタの回路 シフタ 0 0 0 4 3 2 1 0 シフト S1 S2 セレクタ 0 0 S3 S4 S5 24
X Y C i-1 並列乗算器アレイ型 5x5ビット NDゲート n x n 個 被乗数 X4 X3 X2 X1 X0 P40 P30 P20 P10 P00 Y0 C i 全加算器 P41 P31 P21 P11 P01 Y1 S P42 P32 P22 P12 P02 Y2 乗数 P43 P33 P23 P13 P03 Y3 P44 P34 P24 P14 P04 Y4 C7 C X Y S C C X Y C S Z7 Z6 Z6 Z5 Z4 Z3 Z2 Z1 Z0 乗算結果 25
キャリセーブアダ (CS) 方式乗算器 5x5 ビット CLに入るまでのキャリと和信号の伝搬段数はそれぞれ最悪 n ー 2 段 P42 被乗数 X4 X3 X2 X1 X0 Y0 P40 P30 P20 P10 P00 P41 P31 P21 P11 P01 P32 P22 P12 P02 Y1 Y2 乗数 P43 P33 P23 P13 P03 Y3 P44 P34 P24 P14 P04 Y4 X C Y S C C8 CL 高速加算器 Z8 Z7 Z6 Z5 Z4 Z3 Z2 Z1 Z0 乗算結果 26
宿題 2 12 月 11 日 5x5 ビットの並列乗算器キャリーセーブ型のゲート数を求めよ ただし,Fはマンチェスター型を用いよ CL 加算回路を用いないとアレイ型と同じ CL 加算回路はキャリーを演算する回路である. ゲート数が増加する. キャリーの論理式 C o = + (+) C i C0 = G0 + P0 C-1 C 1 = G 1 + P 1 C 0 = G 1 + G 0 P 1 + P 0 P 1 C -1 G= P= + C 2 = G 2 + P 2 C 1 = G 2 + G 1 P 2 + G 0 P 1 P 2 + P 0 P 1 P 2 C -1 C 3 = G 3 + P 3 C 2 = G 3 + G 2 P 3 + G 1 P 2 P 3 + G 0 P 1 P 2 P 3 + P 0 P 1 P 2 P 3 C -1 27
演習問題 2008 年 12 月 9 日 INV, NND,NOR を用いて全加算器の回路を書け. 複合ゲートを用いた全加算器の回路を書け. それぞれの素子数と論理段数をマンチェスタ型全加算器と比較せよ. 28
宿題 2008 年 12 月 9 日 LU を設計し, 論理回路図 ( デコーダを含む ) を書け. 語長 2の補数 8ビットとする入力 7~0, 7~0, C2~C0 出力 Z8~Z0 制御コード 動作 C2 C1 C0 000 001 0 1 0 +( 和演算 ) 0 1 1 -( 差演算 ) 1 0 0 OR 1 0 1 ND 1 1 0 XOR 1 1 1 Left Shift ( 最上位は最下位へ ) 29