ディジタル回路 山梨大学 工学部 電気電子工学科 2015 年度 山梨大学 工学部 電気電子工学科 ディジタル回路 今回の講義内容 組合せ論理回路その1 比較回路 1bit 比較回路 多 bit 比較回路 加算回路 半加算器 全加算器 加減算器 多 bit 加算器 山梨大学 工学部 電気電子工学科 ディジタル回路 比較器 (comparator) 2 つの 2 進数の大小を比較したい ↓ まず,1bit の比較器を作る ↓ 複数 bit に拡張する 1bit の比較器 A 0 0 1 1 B U (A > B) V (A = B) W (A < B) 0 0 1 0 1 0 0 1 0 1 0 0 0 1 0 1 山梨大学 工学部 電気電子工学科 ディジタル回路 対応する論理式 U =A·B V =A·B+A·B =A⊕B W =A·B 回路図 A U (A>B) V (A=B) W (A<B) B 山梨大学 工学部 電気電子工学科 ディジタル回路 回路図は以下のように描くこともできる A U (A>B) A V (A=B) B W (A<B) 山梨大学 工学部 電気電子工学科 U (A>B) V (A=B) B ディジタル回路 W (A<B) VHDL の例 library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity COMP is port(A,B:in std_logic; U,V,W:out std_logic); end COMP; architecture RTL of COMP is begin U <= A and (not B); V <= ((not A) and (not B)) or (A and B); W <= (not A) and B; end RTL; 山梨大学 工学部 電気電子工学科 ディジタル回路 問 2bit の 2 進数 A1 A0 と B1 B0 の大小を比較する 2bit 比較器の真理値表を書け. 山梨大学 工学部 電気電子工学科 ディジタル回路 多 bit 比較器 多 bit の 2 進数を比較するときは,MSB(Most Significant Bit) から順に 1bit づつ比較する 例えば A = A1 A0 と B = B1 B0 を比較する 場合 A1 > B1 なら A > B A1 < B1 なら A < B A1 = B1 のとき A0 > B0 なら A > B A0 < B0 なら A < B A0 = B0 なら A = B 山梨大学 工学部 電気電子工学科 ディジタル回路 2 つの 1bit 比較器で 2bit 比較器を作る A1 A U 1bit comp B1 A0 B W A U 1bit comp B0 B V V W U1 U (A>B) V1 W1 V (A=B) U0 V0 W (A<B) W0 U = U1 + V1 · U0 , V = V1 · V0 , W = W1 + V1 · W0 山梨大学 工学部 電気電子工学科 ディジタル回路 問 3 つの 1bit 比較器を用いて 3bit 比較器を作るとす る.各 1bit 比較器の出力 U2 ,V2 ,W2 ,U1 ,V1 , W1 ,U0 ,V0 ,W0 を用いて 3bit 比較器の出力 U , V ,W を表す論理式はどうなるだろうか? 山梨大学 工学部 電気電子工学科 ディジタル回路 半加算器 (half adder) 2 進 1 ビットの加算 2 進数 A 2 進数 B 和 S 桁上げ C 0 0 0 0 1 0 0 1 1 0 1 0 1 1 0 1 論理式は S =A·B+A·B =A⊕B C =A·B (⊕ は EX-OR を表す) 山梨大学 工学部 電気電子工学科 ディジタル回路 加算そのものは排他的論理和 (EX-OR) で表現 できる A,B の両方が 1 のとき,1 つ上の桁への桁上 げ C が発生する 半加算器では,下の桁からの桁上げ信号は考慮 していない 山梨大学 工学部 電気電子工学科 ディジタル回路 A S B C 半加算器の回路例 山梨大学 工学部 電気電子工学科 ディジタル回路 A S B C EX-OR を使用した半加算器 山梨大学 工学部 電気電子工学科 ディジタル回路 VHDL の例 library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity HA is port(A,B:in std_logic; S,C:out std_logic); end HA; architecture RTL of HA is begin S <= A xor B; C <= A and B; end RTL; 山梨大学 工学部 電気電子工学科 ディジタル回路 問 半加算器は,下記の回路図で実現することもで きる. A S B C この回路の論理式を求め,半加算器となっているこ とを確認せよ. 山梨大学 工学部 電気電子工学科 ディジタル回路 全加算器 (full adder) 複数ビットの 加算を考える 場合,あるビッ トの加算は 1 つ 下のビットか らの桁上がり 信号 Ci を考慮 する. A 0 0 0 0 1 1 1 1 山梨大学 工学部 電気電子工学科 B 0 0 1 1 0 0 1 1 Ci 0 1 0 1 0 1 0 1 ディジタル回路 S Co 0 0 1 0 1 0 0 1 1 0 0 1 0 1 1 1 論理式は S = A · B · Ci + A · B · Ci + A · B · Ci + A · B · Ci Co = A · B · Ci + A · B · Ci + A · B · Ci + A · B · Ci (= A · B + B · Ci + Ci · A) (= A · B + Ci · (A + B)) EX-OR を用いると S = Ci ⊕ A ⊕ B Co = A · B + Ci · (A ⊕ B) 山梨大学 工学部 電気電子工学科 ディジタル回路 A B S Ci Co 全加算器の回路例 山梨大学 工学部 電気電子工学科 ディジタル回路 A S B Co Ci EX-OR を使用した全加算器 2 個の半加算器と 1 個の OR ゲートで全加算器を作 ることができる 山梨大学 工学部 電気電子工学科 ディジタル回路 VHDL の例 library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity FA is port(A,B,Ci:in std_logic; S,Co:out std_logic); end FA; architecture RTL of FA is signal S0: std_logic; begin S0 <= A xor B; S <= S0 xor Ci; Co <= (A and B) or (Ci and S0); end RTL; 山梨大学 工学部 電気電子工学科 ディジタル回路 半減算器 (half subtracter) 減算器の出力は,差 (difference) と借り (borrow) 2 進数 X 2 進数 Y 0 0 0 1 1 0 1 1 差 D 借り B 0 1 1 0 0 1 0 0 論理式は D =X ·Y +X ·Y =X ⊕Y B =X ·Y 加算器との違いは,NOT ゲート1つだけ 山梨大学 工学部 電気電子工学科 ディジタル回路 全減算器 複数ビットの 減算を考える 場合,あるビッ トの減算は,1 つ下のビット への借し Bi も 考慮する. X 0 0 0 0 1 1 1 1 山梨大学 工学部 電気電子工学科 Y Bi 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 ディジタル回路 D Bo 0 0 1 1 1 1 0 1 1 0 0 0 0 0 1 1 論理式は D = X ⊕ Y ⊕ Bi Bo = X · Y + (X ⊕ Y ) · Bi 山梨大学 工学部 電気電子工学科 ディジタル回路 加減算器 加算器 減算器 Y X S Y1 X1 D B C Y2 X2 SD CB control 加減算器 (control=0 で加算,control=1 で減算) 山梨大学 工学部 電気電子工学科 ディジタル回路 加減算器の別な作り方 計算機内部では負の数は補数表示されている. (例) 5bit(4bit +符号桁 1bit),2 の補数の場合 1110 → 010112 ,910 → 010012 , −910 → 101112 減算を負の数の加算に置き換える. (例) 1110 − 910 の計算 010112 − 010012 = 010112 + 101112 = 1000102 右(LSB 側)から 5bit だけ取り出す. 000102 → 210 2 の補数を求めるには,元の数の bit を反転し,1 を 足せば良い(教科書の図 4.11). 山梨大学 工学部 電気電子工学科 ディジタル回路 多ビット加算器 直列加算器 (serial adder) 1 ビットずつ順に計算する.現在ではほとんど 使用されないので省略. 並列加算器 (parallel adder) 各ビットを並列に計算する. リップルキャリー方式 加算は並列に行われるが,桁上げの計算は下の桁 から順次行う. キャリー先見方式 桁上げの計算も並列に行う. 山梨大学 工学部 電気電子工学科 ディジタル回路 キャリー先見方式 X Xn Yn X1 Y1 X0 Y0 C’ C S X C’ S X C’ Sn LA X1 Y1 C S LA X0 Y0 山梨大学 工学部 電気電子工学科 S X C’ Sn C S X C’ S1 Y FA C S0 C -1 リップル・キャリー方式 C Y FA S1 Y FA C’ Y FA Yn Y FA C X Xn Y FA S C -1 キャリー・ルック・アヘッド方式 ディジタル回路 S0
© Copyright 2024 ExpyDoc