6
11. 除算回路とALU このテーマの要点 ディジタル回路でわり算を行う方法を理解する 各種の演算を行う専用ICについて知る 教科書の該当ページ 除算回路 [p.58] 算術論理演算装置 [p.62] 除算の特質 利用頻度は低い 直列除算 (筆算) 並列除算 (ROM利用) 乗算と同じ方式 引き戻し法 引き放し法 シフトによる計算 右に1bitシフト= 桁下げ 1000 = 8 0100 = 4 0010 = 2 0001 = 1 1100 = 12 0110 = 6 0011 = 3 = 1/2倍 0001.1 = 1+2 1 = 1. 5 引き戻し法 45 ÷ 6 A = 45 (10) = 101101 (2) B = 6 (10) = 110 (2) 商:何回引けたか? A: 1 0 1 1 0 1 B: 1 1 0 負:引けないので ( ) 正:引けたので ( ) = 0111 (2) = 7 (10) 余り = 011 (2) = 3 (10) 元に戻す 正:引けたので ( ) 正:引けたので ( )

11 除算回路とALU - 国立米子工業高等専門学校 11. 除算回路とALU このテーマの要点 ディジタル回路でわり算を行う方法を理解する 各種の演算を行う専用ICについて知る

  • Upload
    hanhu

  • View
    236

  • Download
    10

Embed Size (px)

Citation preview

Page 1: 11 除算回路とALU - 国立米子工業高等専門学校 11. 除算回路とALU このテーマの要点 ディジタル回路でわり算を行う方法を理解する 各種の演算を行う専用ICについて知る

1

11. 除算回路とALUこのテーマの要点

ディジタル回路でわり算を行う方法を理解する 各種の演算を行う専用ICについて知る

教科書の該当ページ 除算回路 [p.58]

算術論理演算装置 [p.62]

除算の特質

利用頻度は低い

直列除算 (筆算)

並列除算(ROM利用)

乗算と同じ方式引き戻し法引き放し法

シフトによる計算

右に1bitシフト= 桁下げ1000 = 8

0100 = 4

0010 = 2

0001 = 1

1100 = 12

0110 = 6

0011 = 3

= 1/2倍

0001.1 = 1+2−1

= 1. 5

引き戻し法

45 ÷ 6 A = 45(10) = 101101(2)

 B = 6(10) = 110(2)

商:何回引けたか?

A: 1 0 1 1 0 1B: 1 1 0−

負:引けないので ( )

正:引けたので ( )

= 0111(2)

= 7(10)

余り = 011(2)

= 3(10)

元に戻す

正:引けたので ( )

正:引けたので ( )

Page 2: 11 除算回路とALU - 国立米子工業高等専門学校 11. 除算回路とALU このテーマの要点 ディジタル回路でわり算を行う方法を理解する 各種の演算を行う専用ICについて知る

2

引き放し法

45 ÷ 6 A = 45(10) = 101101(2)

 B = 6(10) = 110(2)

A: 1 0 1 1 0 1B: 1 1 0−

負:引けないので ( )

次の桁で足す

1 0 1 1 0 1− 1 1 0

1 1 1 1 1 0 1

引けないのに引いた

2倍余計に引いた

次の桁で1つ引く 操作の手間が減るので効率的

次の桁で足す ( )

正:引けたので ( )

正:引けたので ( )

+ 次の桁で1つ足す

直列除算の例1

①被除数AC、除数Dの補数をセット

②カウンタK、桁上げCYをセット

101A

101C

11K

0CY

③引き算を実行、Kを減らす

④CY= 1ならば結果のACを左シフト、 CY= 0ならば引き算前のACを左シフト、 CYを右から入れる

K= 0まで繰り返し

110D

101 0D'

10

01

101 0+

00

101 0+

商余り

Page 3: 11 除算回路とALU - 国立米子工業高等専門学校 11. 除算回路とALU このテーマの要点 ディジタル回路でわり算を行う方法を理解する 各種の演算を行う専用ICについて知る

3

61 ÷ 6 A = 61(10) = 111101(2)

 B = 6(10) = 110(2)

直列除算の例2 (演習)

A C

D A>D

D = :bitを増やすAC = :2倍のbit数D' =

符号bit

100K CY A C

D'+

011

+

010

+

001

+

000

商余り

算術演算 +-×÷

AB

A

B

算術演算と論理演算, ALU

論理演算 AND, OR, NOT, etc.

算術論理演算装置 ALU : Arithmetic Logic Unit

各種の算術・論理演算を1つでこなすIC

Page 4: 11 除算回路とALU - 国立米子工業高等専門学校 11. 除算回路とALU このテーマの要点 ディジタル回路でわり算を行う方法を理解する 各種の演算を行う専用ICについて知る

4

ALU 74LS381

A, B データ入力

演算選択

F データ出力

Cn, P, G 桁上げ入出力

ALU 74LS181

Page 5: 11 除算回路とALU - 国立米子工業高等専門学校 11. 除算回路とALU このテーマの要点 ディジタル回路でわり算を行う方法を理解する 各種の演算を行う専用ICについて知る

直列除算の例 1 45÷6 = 7...3

 この場合は除数.D.=.6.=.110.が3bitで、被除数.=.45.を2倍のbitの6bitで表すと.45.=.AC.=.101101.とな

る。よって、上位3bitが.A.=.101.であり、A.<.D.となるので、商(=.7)が3bitを超えることはない。した

がって、A,.C,.D.のbit数を増やす必要はない。

ディジタル回路 (E3必修)  補足資料  11.除算回路とALU 1

A,.C,.D.のbit数だけ減算を行うので、

その数をカウンタにセットする。

除数を2の補数表現し、符号bitを加える。

これを被除数の先頭に揃え、減算を行う。

引き算を行ったところで、カウンタ

の値を減らす。

CY=1というのは減算が行えることを意味す

る。これをローテーションシフトすると、先

に行った減算のCYが商の上位bitとなる。ま

た、シフトすることによって、減算の桁を下

位に移動することができる。

カウンタの値が0となった後のロー

テーション処理も忘れずに。

Page 6: 11 除算回路とALU - 国立米子工業高等専門学校 11. 除算回路とALU このテーマの要点 ディジタル回路でわり算を行う方法を理解する 各種の演算を行う専用ICについて知る

直列除算の例 2 61÷6 = 10...1

 この場合は除数.D.=.6.=.110.が3bitで、被除数.=.61.を2倍のbitの6bitで表すと.61.=.AC.=.111101.とな

る。よって、上位3bitが.A.=.111.であり、A.>.D.となるので、商(=.10)が3bitを超え、Cレジスタに収まら

ない。したがって、A,.C,.D.のbit数を1つ増やす必要がある。

ディジタル回路 (E3必修)  補足資料  11.除算回路とALU 2

増やした後のbit数だけ減算を行うので、

その数"4"をカウンタにセットする。

除数をを被除数の先頭に揃え、減算を行う。

減算を行ったところで、カウン

タの値を1つ減らす。

CY=0のときは減算ができないというこ

と。よって、減算処理する前のデータを

ローテーションシフトし、その桁の商の

値を"0"とする。

カウンタの値が0となった後のローテーション処理も忘

れずに。この場合、CY=0なので、減算処理する前の

データを使う。