29
集積回路基礎 第7章 1 広島大学 2008/12/9 第7章 デジタル演算回路

第7章 デジタル演算回路 - dsl.hiroshima-u.ac.jpiwa/text/LB7.Arithmetic.pdf · 集積回路基礎第7章 2008/12/9 広島大学岩田穆 4 2進数の補数 1 の補数…各桁のビットを反転。

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

集積回路基礎 第7章

1広島大学 岩 田 穆2008/12/9

第7章 デジタル演算回路

集積回路基礎 第7章

2広島大学 岩 田 穆2008/12/9

デジタル信号処理音声,音楽,通信信号

信号=符号付き2進データ

負の数値の表現方法

集積回路基礎 第7章

3広島大学 岩 田 穆2008/12/9

2の補数 B+B=2n

B=2nーB=1+Σbi 2i

0

n-1

2n=1+Σbi 2i+Σbi 2i

0

n-1

0

n-1

B=Σbi 2i

0

n-12進数nビット

集積回路基礎 第7章

4広島大学 岩 田 穆2008/12/9

2進数の補数

1 の補数…各桁のビットを反転。

(例) 0101 の 1 の補数 = 1010

2 の補数…各桁のビットを反転した後で

最下位に 1 を加える

(例) 0101 の 2 の補数 = 1010 + 0001 = 1011

集積回路基礎 第7章

5広島大学 岩 田 穆2008/12/9

111110101100011010001000

76543210-1-2-3-4-5-6-7

011101100101010000110010000100001111111011011100101110101001

0001001000110100010101100111

2進10進

正の数字は最上位を0にする

負の数字は2の補数で表す

2の補数表現

集積回路基礎 第7章

6広島大学 岩 田 穆2008/12/9

111110101100011010001000

76543210-1-2-3-4-5-6-7

011101100101010000110010000100001001101010111100110111101111

0001001000110100010101100111

符号振幅表現2進10進

Sign-Magnitude

符号ビット+振幅

(絶対値)

集積回路基礎 第7章

7広島大学 岩 田 穆2008/12/9

加算回路

A3

B3

2 3

S3C3

+A2

B2

2 2

S2C2

A1

B1

2 1

S1C1

A0

B0

2 0

S0C0

和 SUM

加算数

被加算数

桁上げ

CARRY

筆算の手順

2進数

Adder

集積回路基礎 第7章

8広島大学 岩 田 穆2008/12/9

A B S C

0 0 0 00 1 1 01 0 1 01 1 0 1

AS

C

B

半加算回路

Half Adder (HA)

集積回路基礎 第7章

9広島大学 岩 田 穆2008/12/9

A C oB

0 0

C i

0 0

S

00 01 0 1

1 00 0 11 11 0 0

0 00 1 10 11 1 01 10 1 01 11 1 1

全加算回路Full Adder : FA

A B

Ci

Co

A B

Ci

S

集積回路基礎 第7章

10広島大学 岩 田 穆2008/12/9

A C oB

0 0

C i

0 0

S

00 01 0 1

1 00 0 11 11 0 0

0 00 1 10 11 1 01 10 1 01 11 1 1

全加算回路の論理式

キャリ-

Co = A・B + (A+B)・Ci = Ci B B( )A +( )BA + +

( )BA += Ci +Ci ( )BA + Ci + B( )A +S =

集積回路基礎 第7章

11広島大学 岩 田 穆2008/12/9

全加算回路の論理図

EXORの実現が重要

Co

B

A

C i

S+ BA

+ BA

+ BA

Co = A・B + (A+B)・Ci

キャリ-

( )BA += Ci +Ci ( )BA + Ci + B( )A +S =

= Ci B B( )A +( )BA + +

集積回路基礎 第7章

12広島大学 岩 田 穆2008/12/9

マンチェスタ型全加算回路

EXOR

Ci

キャリーの伝搬が速いのが特徴

+ BA

+ BAS

Co

Ci

B

AEXOR

Co = キャリ Ci + B

Ci +和 Ci ( )BA + B( )A +S =

B( )A +( )BA +

集積回路基礎 第7章

13広島大学 岩 田 穆2008/12/9

複合ゲートを用いた全加算回路

Vdd

Vdd

Vdd

Vdd

Ci

Ci

Ci

Ci

Ci

Ci

Co

A B

B

A

A B

A

B

A B

A

B

S

A

B

A B

X

集積回路基礎 第7章

14広島大学 岩 田 穆2008/12/9

nビット加算器

この形をリップルキャリー型という.

キャリーの伝搬が起こるので速度が遅い

A2

B2

C2

S2

A1

B1

C1

S1

A0

B0

C0

S0

0

An

Bn

Cn

Sn

1ビットの全加算器を接続して作る

全加算器

FA

全加算器

FA

全加算器

FA全加算器

FA

集積回路基礎 第7章

15広島大学 岩 田 穆2008/12/9

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)(符号ビットからの桁上がりは無視)

集積回路基礎 第7章

16広島大学 岩 田 穆2008/12/9

2の補数減算器

FA FA FA FAC-1

S0S1

Sn-2Sn-1

符号ビット

A0

B0

A1

B1

An-2

Bn-2

An-1

Bn-1

C0C1Cn-2

Cn-1"1"

集積回路基礎 第7章

17広島大学 岩 田 穆2008/12/9

FA FA FA FA

X0

C-1

Y0X1Xn-2Yn-2Xn-1Yn-1

C0

S0S1Sn-2Sn-1

Y1

Cn-3

Cn-2

Cn-1

符号ビット

上位あふれ

C1

モード制御

M

M = 0 … X + Y

M = 1 … X + Y の 2 の補数

= X + (- Y)

= X - Y

加減算器

※上位あふれが 1 となった場合演算結果は正しくない。上位あふれが 1 とならない場合でも正しくない結果が出る場合がある。それはどの様な場合か

集積回路基礎 第7章

18広島大学 岩 田 穆2008/12/9

固定小数点乗算器

乗数

乗算結果

被乗数X

Y

Z

乗算器

部分積

被乗算数

乗算結果

X0

Y0

2 0

乗数

P00

X2

Y2

2 2

P20

P11

P02

Z2

X1

Y1

2 1

P10

P01

Z1 Z0

P33

Z6

P32

P23

Z5

P31

P22

P13

Z4

X3

Y3

2 3

P30

P21

P12

P03

Z3C6

集積回路基礎 第7章

19広島大学 岩 田 穆2008/12/9

並列乗算器アレイ型

5x5ビット

X3 X2 X1 X0

Z6 Z5 Z4 Z3 Z2 Z1 Z0

Y0ANDゲート

C7

P20 P10 P00

Y2

Y1

P32 P22 P12 P02

P21 P11 P01

S

X Y Ci-1

Ci全加算器

被乗数

乗数

P30

P31

n x n 個 P40

P41

Y3P33 P23 P13 P03

Y4P34 P24 P14 P04

CY

SCX

C YS

CX

X4

Z6Z7

P42

P43

P44

乗算結果

集積回路基礎 第7章

20広島大学 岩 田 穆2008/12/9

並列乗算器アレイ型

キャリと和信号の伝搬パス

キャリの伝搬段数は最悪 11段

nビットの場合は3nー4段

X3 X2 X1 X0

Z6 Z5 Z4 Z3 Z2 Z1 Z0

Y0

C7

P20 P10 P00

Y2

Y1

P32 P22 P12 P02

P21 P11 P01

被乗数

乗数

P30

P31

P40

P41

Y3P33 P23 P13 P03

Y4P34 P24 P14 P04

CY

SCX

C YS

CX

X4

Z6Z7

P42

P43

P44

乗算結果

集積回路基礎 第7章

21広島大学 岩 田 穆2008/12/9

キャリセーブアダー方式

X3 X2 X1 X0

Y3

P03

P20 P10 P00

Y2

Y1

P12 P02

P21 P11 P01

被乗数

乗数

Y0

P30

集積回路基礎 第7章

22広島大学 岩 田 穆2008/12/9

キャリセーブアダ(CSA)方式乗算器

X3 X2 X1 X0

Z6 Z5 Z4 Z3 Z2 Z1 Z0

Y3

C8

P23 P13 P03

P20 P10 P00

Y2

Y1

P32 P22 P12 P02

P21 P11 P01

被乗数

乗数

Y0

P33

P30

P31

P34 P24 P14 P04

P43

CYS

C

P40

X

P41

P44

P42

X4

Z7

CLA高速加算器

Z8

Y4

CLAに入るまでのキャリと

和信号の伝搬段数は

それぞれ最悪 nー2段

5x5ビット

乗算結果

集積回路基礎 第7章

23広島大学 岩 田 穆2008/12/9

シフト加算による乗算回路

シフタ

累算器(アキミュレータ)

A

B

乗算結果

加算回路 乗算結果

被乗数 乗数A=10110

B=01101

1011010110

1011010110

10110+

0100011110

10

10

1

0bitシフト

2bitシフト

3bitシフト

x1

x4

x8

加算しない

加算しない

演習問題5ビットのシフタの回路を書け

集積回路基礎 第7章

24広島大学 岩 田 穆2008/12/9

シフタ

A

B

5ビットのシフタの回路

シフトS1

S2

S3

S4

S5

A4 A3 A2 A1 A0

セレクタ

集積回路基礎 第7章

25広島大学 岩 田 穆2008/12/9

並列乗算器アレイ型

5x5ビット

X3 X2 X1 X0

Z6 Z5 Z4 Z3 Z2 Z1 Z0

Y0ANDゲート

C7

P20 P10 P00

Y2

Y1

P32 P22 P12 P02

P21 P11 P01

S

X Y Ci-1

Ci全加算器

被乗数

乗数

P30

P31

n x n 個 P40

P41

Y3P33 P23 P13 P03

Y4P34 P24 P14 P04

CY

SCX

C YS

CX

X4

Z6Z7

P42

P43

P44

乗算結果

集積回路基礎 第7章

26広島大学 岩 田 穆2008/12/9

キャリセーブアダ(CSA)方式乗算器

X3 X2 X1 X0

Z6 Z5 Z4 Z3 Z2 Z1 Z0

Y3

C8

P23 P13 P03

P20 P10 P00

Y2

Y1

P32 P22 P12 P02

P21 P11 P01

被乗数

乗数

Y0

P33

P30

P31

P34 P24 P14 P04

P43

CYS

C

P40

X

P41

P44

P42

X4

Z7

CLA高速加算器

Z8

Y4

CLAに入るまでのキャリと

和信号の伝搬段数は

それぞれ最悪 nー2段

5x5ビット

乗算結果

集積回路基礎 第7章

27広島大学 岩 田 穆2008/12/9

宿題2 12月11日

5x5 ビットの並列乗算器キャリーセーブ型のゲート数を求めよ。ただし,FAは マンチェスター型を用いよ

CLA加算回路を用いないと アレイ型と同じCLA加算回路はキャリーを演算する回路である.ゲート数が増加する.

C0 = G0 + P0 ・C-1

C1 = G1 + P1 ・C0 = G1 + G0 ・P1+ P0・ P1 ・C-1

C2 = G2 + P2 ・C1 = G2 + G1 ・P2+ G0・ P1 ・P2+ P0 ・P1 ・P2 ・C-1

C3 = G3 + P3 ・C2 = G3 + G2 ・P3+ G1・ P2 ・P3+ G0 ・P1 ・P2 ・P3+ P0 ・P1 ・P2 ・P3 ・C-1

Co = A・B + (A+B)・Ci

G=A・B

P=A+B

A B

キャリーの論理式

集積回路基礎 第7章

28広島大学 岩 田 穆2008/12/9

演習問題 2008年12月9日

INV, NAND,NORを用いて全加算器の回路を書け.

複合ゲートを用いた全加算器の回路を書け.

それぞれの素子数と論理段数をマンチェスタ型全加算器と比較せよ.

集積回路基礎 第7章

29広島大学 岩 田 穆2008/12/9

宿題2008年12月9日ALUを設計し,論理回路図(デコーダを含む)を書け.

語長 2の補数 8ビットとする入力 A7~A0, B7~B0, C2~C0出力 Z8~Z0

制御コード 動作

0 0 0 A

0 0 1 B

0 1 0 A+B(和演算)

0 1 1 A-B(差演算)

1 0 0 A OR B

1 0 1 A AND B

1 1 0 A XOR B

1 1 1 Left Shift A (最上位は最下位へ)

C2 C1 C0