1 論理回路学 5. 組合せ回路 佐藤証 ⻄9-613 [email protected] 組合せ回路と順序回路 組合せ回路 - 出⼒はその時点の⼊⼒によって決定する ① ⼊出⼒の関係を表す真理値表を作る ② 出⼒を⼊⼒の論理式で表す ③ カルノー図などで簡単化(論理圧縮)する ④ MIL記号等による論理回路を構成する 順序回路 - メモリのように前の状態を内部に保存する機能を持つ - 出⼒は⼊⼒と内部状態によって決定する - 順序回路の中には組合せ回路も含まれる ⼊⼒信号 内部状態 出⼒信号 2 3 組合せ回路の設計 次の問題を決定する論理回路を構成する - サッカー観戦(F)を考えている - ⼆⼈の友⼈(A,B)が賛成したら実施する - ⼀⼈だけ賛成でも天候(C)が晴れならば実⾏する 友⼈A,B 天候C 観戦F 反対 賛成 ⾬0 晴1 中⽌ 実施 A 0 0 0 0 1 1 1 1 0 1 0 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 C F 0 0 0 1 0 1 1 1 A C B A B F=1の項を集める 0 00 AB 01 11 1 10 C + A B C + 1 1 1 1 A B C F=A・B+A・C+B・C F=A・B・C+A・B・C+A・B・C+A・B・C (多数決論理) (加法標準形) 4 組合せ回路の設計 F=(A・B+A・C)+B・C F=A・B+A・C+B・C A (A・B+A・C) B C B・C F=A・B+A・C+B・C =A・B+A・C+B・C =(A・B)・(A・C)・(B・C) ド・モルガンの定理による変換 CMOS回路ではこれが最適 A B 複合ゲート A・B A・C F C B・C F=(A・B+A・C) +B・C A B C 使えるゲートの種類に応じて柔軟に構成する必要がある F 組合せ回路の設計 5 同じ問題を情報標準形の論理回路で構成する - サッカー観戦をするではなくしない条件を調べる - 加法標準形はF=1の項を集めたが,乗法標準形はF=0を集める - 単純和の論理積をとる 友⼈A,B 天候C 観戦F 反対 賛成 ⾬0 晴1 中⽌ 実施 A 0 0 0 0 1 1 1 1 0 1 0 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F 0 0 0 1 0 1 1 1 0 0 0 A+B+C 0 0 1 A+B+C 0 1 0 A+B+C 1 0 0 A+B+C F=0の項を集める F=(A+B+C)・(A+B+C)・(A+B+C)・(A+B+C) カルノー図は使えず論理圧縮が⾯倒なので,F=0の項数がF=1 よりも⼤幅に少ないとき以外は加法標準形を使う⽅が無難 汎用ロジックIC 74シリーズ 74シリーズは1970年代に⽶Texas Instruments社が量産を始めた バイポーラ・トランジスタを使った5V電源の標準ロジックIC 74で始まる4〜5桁の型番で機能とピン配置が標準化され,互換品が 豊富なため広く⽤いられたが,現在は実⽤ではあまり利⽤されない 全ての論理式はNANDまたはNORだけで表現することができる 20~30円 基本の2⼊⼒NAND の型番は7400 F=A・B+C 7408と7432の 2つのICが必要 F=A・B・C・C A B C F 論理を変形 すると 7400⼀個で 実装できる 6 7 演習1 (解答) 右のAND-OR回路をNANDだけまた NORだけの回路に等価変換しなさい ただしNOTは○だけで⽰すこと A+B=A+B=A・B A・B=A・B=A+B = = = 8 半加算器 半加算器(Half Adder)は2ビットの⼊⼒の和を求める回路 0+0= 0 0+1= 1 1+0= 1 1+1=10 A 0 0 1 1 B 0 1 0 1 C 0 0 0 1 S 0 1 1 0 C:桁上げ(Carry) S:和(Sum) S=A・B+A・B C=A・B S=(A+B)・(A+B) C=(A+B)・(A+B)・(A+B) A B S C 半加算器は下からの桁上げを受けられず1ビットの加算しかできない 全加算器 9 全加算器(Full Adder)は 下からの桁上げを考慮し た3⼊⼒の加算器 A B Ci Co S 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 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+A・Ci+B・Ci 全加算器 Coを⽤いるとSを簡略化できる S=A・B・Ci+A・B・Ci+A・B・Ci+A・B・Ci =(A+B+Ci)・Co+A・B・Ci A B Ci S Co 10 11 演習2 (解答) ノイマン型の全加算器の式を加法標準形から導きなさい A・Co = A・(A・B+A・Ci+B・Ci) = A・(A+B)・(A+Ci)・(B+Ci) = A・B・(A+Ci)・(B+Ci) = A・B・Ci・(B+Ci) = A・B・Ci (A+B+Ci)・Co = A・B・Ci+A・B・Ci+A・B・Ci S = A・B・Ci+A・B・Ci+A・B・Ci+A・B・Ci = (A+B+Ci)・Co+A・B・Ci HAを⽤いたFAが正 しく動作すること を真理値表で確認 しなさい HA A A1 0 0 0 0 1 1 1 1 B B1 0 0 1 1 0 0 1 1 C1 0 0 0 0 0 0 1 1 HA S1 0 0 1 1 1 1 0 0 Ci A2 0 1 0 1 0 1 0 1 B2 0 0 1 1 1 1 0 0 S C2 0 0 0 1 0 1 0 0 FA S2 0 1 1 0 1 0 0 1 Co 0 0 0 1 0 1 1 1 A B Ci Co S 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 1 1 12 複数桁の加算器 データをシフトしながら ⼀つのFAで各桁を順次加算 回路が簡単 桁数に制限がない 演算速度が遅い 1桁⽬ 2桁⽬ for (i=0; i<4 i++){ S=A^B^Ci; Co=A&B|B&Ci|Ci&A; Ci=Co;} 3桁⽬ 1011+0011=1110 直列加算⽅式は順序回路 0 1 1 0 1 0 0 1 4桁⽬ 10進数との区別が不要な場合 は以降(2)を省略します 13 複数桁の加算器 1 回路が多少複雑 速度が速い 加算器の数で演算の最⼤桁 数が決まる 最下位は桁上げがないので HAでよい 1 S3 0 0 S2 0 1 S1 1 S0 1 Co S FA A B Ci Co S FA A B Ci Co S FA A B Ci Co S HA A B A3 B3 A2 B2 A1 B1 A0 B0 1 0 0 0 1 1 1 1 桁上げ 直列加算方式との組合せで 4bit毎に計算数する加算器 14 演習3 (解答) 右の加算器で下記の8ビットの 2数の加算を実⾏する過程を図 ⽰しなしさい 11101111+11001011 0 0 1 1 1 1 1 0 1 1 1 1 0 0 1 0 1 1 Co S FA A B Ci Co S FA A B Ci Co S FA A B Ci Co S FA A B Ci Co S FA A B Ci Co S FA A B Ci Co S FA A B Ci Co S FA A B Ci Co S FA A B Ci 1 1 1 0 0 0 1 1 0 0 1 0 1 1 1 0 0 0 1 1 11 101 111 + 11 001 011 = 110 111 010 1 1 0 1 1 0 0 15 加減算回路 減算は2の補数を加算することで実⾏できる 2の補数は全ビットを反転させて+1する 制御信号 0:加算 1:減算 11 (10) +6 (10) = 17 (10) 7 (10) -6 (10) = 1 (10) 6 (10) -7 (10) = -1 (10) 1011+0110 = 10001 0111-0110 = 0001 0110-0111 = 1111 減算(と符号付加算)では最上位ビットは符号に使われる点に注意 16 半減算器 半減算器(Half Subtractor)は2ビット⼊⼒の差を求める回路 0-0= 0 0-1= -1 1-0= 1 1-1= 0 A 0 0 1 1 B 0 1 0 1 Bo 0 1 0 0 D 0 1 1 0 B:借り(Borrow) D:差(Difference) A A B D Bo B D=A・B+A・B Bo=A・B D=(A+B)・(A+B) Bo=(A+B)・(A+B)・(A+B) D Bo 半減算器は下からの借りを処理できず1ビットの加算しかできない 17 全減算器 全減算器(Full Subtractor) は下からの借りを考慮した 3⼊⼒の減算器 A B Bi Bo D 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 D = A・B・Bi+A・B・Bi +A・B・Bi+A・B・Bi Bo=A・B・Bi+A・B・Bi +A・B・Bi+A・B・Bi =A・B+A・Bi+B・Bi 18 演習4 (解答) HSを⽤いたFSが正 しく動作すること を真理値表で確認 しなさい A A1 0 0 0 0 1 1 1 1 上がB HS B B1 Bo1 D1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 0 0 1 1 0 0 1 0 0 A2 0 0 1 1 1 1 0 0 HS Bi D B2 Bo2 D2 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 1 FS Bo A B Bi Bo D 0 1 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 並列減算器で次の計算をしなさい 0110-0111 = 1111 1 1 D3 1 1 D2 1 1 1 D1 1 D0 Do D FS A B Bi Do D FS A B Bi Do D FS A B Bi Do D HS A B A3 B3 A2 B2 A1 B1 A0 B0 0 0 1 1 1 1 0 1 借り 0 1 0 1 0 1 0 1 0 1 1 1 0 0 0 1 0 1 1 0 1 0 0 1 19 加算器の高速化 C3 S 3 Carryが次々隣に伝搬するのでRipple (さざ波) Carry加算器とも呼ばれる 桁数の増加とともに伝搬遅延も増⼤ C2 S2 C1 S1 C0 S0 Co S FA A B Ci Co S FA A B Ci Co S FA A B Ci Co S HA A B A3 B3 A2 B2 A1 B1 A0 B0 HAの出⼒をAND-ORゲー トに⼊⼒して直接Carry を計算するため下の加算 器からのCarry伝搬を待 つ必要がなく⾼速 論理演算の最適化は項数だけ でなく信号遅延(ゲート段数) も考慮する必要がある 加算器の高速化 1ビットずつ⼤きなFAブロックを作り,その上を桁上げ信号が スキップしていく構成を取ることで,無駄な信号の遅延待ちが ⽣じないようにしたもの 20 21 加算器の高速化 Carry Skip加算器を使ったRSA暗号回路 (1997年) - 1024bitのべき乗剰余算を3つの1024ビット加減算器を⽤いて 繰り返し加算(乗算)と繰り返し減算(除算)で実⾏ - 細⻑い1024bit加減算器を4つ折りして実装 - スキップする信号遅延に合せて加算器ブロックを1bitずつ⼤きく - HAやFAの種類はレイアウトに合わせて実際には30個弱ある 製造プロセス: 3層0.5um CMOS チップサイズ: 5.31 x 5.31mm2 RSA暗号コア: 4.9 mm2 RSA 処理速度: 21ms (1024-bt RSA) 動作周波数: 48MHz operation 消費電⼒: 330mW Low Low freq freq osc osc Rand Rand seed seed gen gen DES&MD5 DES&MD5 1kb 1kb reg reg MD5 MD5 adder adder RSA RSA ctrl ctrl RSA RSA accelerator accelerator 22 加算器の高速化 Z9 1 stage C A7 HA S A7 C A6 HA S A6 C A5 HA S A5 C A4 HA S A4 C A3 HA S A3 C A2 HA S A2 C A1 HA S A1 C A0 HA S A0 A7 B7 A6 B6 A5 B5 A4 B4 A3 B3 A2 B2 A1 B1 A0 B0 2 stages CX7 FA S X7 CX6 FA S X6 CX5 FA S X5 CX 4 FA S X4 CX3 FA S X3 CX2 FA S X2 C X1 FA S X1 CX0 HA SX0 X7 X6 X5 X4 X3 X2 X1 X0 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 CY 7 FA FA SY 7 CY 6 SY 6 CY 5 FA S Y5 CY 4 FA S Y4 CY 3 FA S Y3 CY 2 FA S Y2 CY1 FA S Y1 CY 0 HA S H I G H S P E E D A D D E R Z8 Z7 Z6 Z5 Z4 Z3 Z2 Z1 Z0 Y0 Z14 FA X 13 Y13 FA X4 Y4 FA X3 Y3 FA X2 Y2 FA FA X1 Y1 FA Z1 X0 Y0 FA Z0 C0 FA 0 1 X8 Y8 FA Z4 X7 Y7 FA Z3 X6 Y6 FA Z2 X5 Y5 FA FA S E L E C T O R FA FA C2 0 1 Z13 FA FA 3 stages FA Z8 X 12 Y12 FA Z7 X 11 Y11 FA Z6 X 10 Y10 FA Z5 X9 Y9 FA Z12 FA S E L E C T O R FA FA C5 0 加算器だけでも多種多様で,算術演算回路は奥が深い S E L E C T O R Z11 Z10 Z9 1 C9
© Copyright 2024 ExpyDoc