3.3 CMOS組合せ回路 教科書 3.4、3.5節 3.3.1 組合せ回路と順序回路の 実現方法 2 組合せ回路と順序回路 • 組合せ回路(Combinational Logic) – 入力によって出力が決定される回路 – 機能は論理式または真理値表で表現される – 基本ゲートの組合せまたはLUTで実現できる • 順序回路(Sequential Logic) – 入力と現在の状態(State)によって出力が決定される回路 – 機能は状態遷移図または状態変数を含む真理値表で表現される – 組合せ回路+レジスタ(D-FF)で実現できる ※ 計算機アーキテクチャの講義で出てくるレジスタは、ここ でいうレジスタにアドレス(ラベル)をつけて汎用的に使えるよ うにしたものである 3 組合せ回路の実現方法(復習) 論理式 論理ゲート x = a・b y = a+b = 真理値表 a b 0 0 0 1 1 0 1 1 x 1 1 1 0 y 1 0 0 0 LUT (Look-up Table) (ab) address Memory 00 1 1 DC DC DC DC DC DC 01 1 0 DC DC DC DC DC DC 10 1 0 DC DC DC DC DC DC 11 0 0 DC DC DC DC DC DC data (x y) 使用しない 4 順序回路の実現方法(復習) 特性表 r 0 0 1 1 c 0 1 0 1 状態遷移図 q1q0 (n + 1) q1q0 (n) q1q0 (n) + "01" 0 0 0 0 c=0 c=0 c=1 c=1 00 11 r=1 r=1 r=1 01 10 c=1 c=1 c=0 c=0 r c 論理回路 特性表に相 当する組合 せ回路 q1 q1 q0 q0 状態変数レジスタ 順序回路はレジスタ (D-FF)と組合せ回路で 構成される。つまり、組 合わせ回路の部分だ け設計すればよい 5 3.3.2 セレクタ,デコーダ,シフタ、 エンコーダ 6 セレクタ(マルチプレクサ,MUX) (教科書3.5) Truth table 条件分岐する回路 Z SEL A SEL B (SEL A) (SEL B) SEL A B 0 1 MUX Z De Morgan theorem SEL 0 0 0 0 1 1 1 1 A B 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 Z 0 0 1 1 0 1 0 1 if (SEL==0) Z=A; else Z=B; 7 セレクタの回路と多入力化 SEL 多入力化(制御ビット = 2bit) (2) (6) A SEL0 Z B (14) (6) A B (6) SEL (2) 0 1 0 1 (4) C A Z B SEL1 (4) (4) トランジスタ数削減 MOSFET 14個 0 1 D Z (14) (14) MOSFET 42個 8 セレクタの高速化 I1 I0 n-ch MOSFET CMOSスイッチを使用する方式 では、入力数が増えてもゲート 段数は増えない。ただし、I1, I0 に接続されるトランジスタ数が 多くなるので、負荷が大きいこ とに対する対策が必要。 A B C D Z CMOSスイッチ構成の4入力 セレクタ MOSFET 20個 ※ 真理値表を確認すること (前頁の4入力セレクタと異なるはず) I1 I1 I0 I0 p-ch MOSFET 9 セレクタの応用例(減算回路) 加算器を用いた減算 F A B A ( B) 0 1 Add F A B Add B A 加算器のシンボル I Cin (キャリー入力) 2の補数 F 1. ビット反転 0 -1 1 2. LSBに1を加える 000 111 001 (キャリーに1入力) -2 110 010 2 101 011 -3 100 3 -4 3bit 補数表現の例 10 セレクタの応用例(ALU) SUN SPARC A30 B30 データ RAM 乗算器 データ ROM F30 B1 Full Adder 入出力レ ジスタ F31 A0 B0 Full Adder A1 Full Adder B31 Full Adder Cout A31 F1 F0 (参考)減算命令 I0 1 I1 0 I2 0 Cin 1 B ALU(算術論 理演算ユニッ ト) ALU 累算レジスタ I0 I1 I2 Cin Z A SEL 32bit ALU CMOS MUX 11 デコーダ Decoder(教科書3.4) I={I1, I0}に対応するD={D3, D2, D1, D0} の要素を1つ選んで1を出力 (一般にバイナリコードから他のコード体系 に変換するものはデコーダと呼ばれる。 例:7セグメント・デコーダなど) D3 I1 D2 I0 D1 D0 Truth table I1 0 0 1 1 I0 0 1 0 1 加法標準形 Line D0 D1 D2 D3 D3 0 0 0 1 D2 0 0 1 0 D1 0 1 0 0 D0 1 0 0 0 D0 I1 I0 D1 I1 I0 D2 I1 I0 D3 I1 I0 12 デコーダ回路 D0 I1 I0 I1 I0 D1 I1 I0 D2 I1 I0 D0 D3 I1 I0 D1 D2 D3 13 デコーダの応用例(アドレス・デコーダ) メモリセルアレイ ・・・・ Cache Memory 行デコーダ A0 A1 メモリ セル ・・・・ 列デコーダ デコーダ A1 A2 A3 A0 SRAMメモリセル D0 Wi D1 D2 Intel Mobile Pen. III D3 Di Di 14 シフタ(教科書対応なし) • シフト機能 – 定数倍(シフト+加算)、浮動小数点演算などに必要 定数倍の例: a * b = a * (bn・2n + bn-1・2n-1 +・・・+ b0・20) = bn・ (a<<n) + bn-1・ (a<<n-1) +・・・+ b0・ a • 回路方式 – バレルシフタ(Barrel Shifter)・・・次ページ – 対数シフタ(Logarithmic Shifter) その他の基本演算(加算、乗算、比較、除算、Moduloなど)のアルゴリズ ム及び回路実装については、集積回路工学第2で扱う。 15 バレルシフタ n-ch 側のスイッチ・マトリクス 右シフト(桁下げ)の真理値表 Sh3 0 0 0 1 Sh2 0 0 1 0 Sh1 0 1 0 0 Sh0 1 0 0 0 B3 A3 A3 A3 A3 B2 A2 A3 A3 A3 B1 A1 A2 A3 A3 A3 B0 A0 A1 A2 A3 ※ 青色は符号拡張(sign-bit extension) B3 A2 B2 A1 B1 A0 B0 Buffer I1 I0 DECODER CMOSスイッチ1段+インバータ2段 16 (参考)2の補数による符号拡張 円の内側:10進数 円の外側:2進数(2の補数表現) 000 111 111 111 110 111 101 111 -1 0 1 110 -2 111 100 拡張された6bit 補数表現(負) 101 -3 001 000 000 000 001 2 010 000 010 011 000 011 3 -4 100 3bit 補数表現 拡張された6bit 補数表現(正) 最上位ビットの値を上位に必要ビット数だけ追加すればよい 17 エンコーダ Encoder(教科書対応なし) D3 D2 P1 D1 P0 D0 D0~D3のうち論理値が1となったライン に対応するバイナリコードを出力する。 但し、2つ以上のラインが値1のとき、D0 に近いほうを優先する。(任意のコード体 系からバイナリコードに変換するものは エンコーダと呼ばれる) Truth table D3 D2 D1 D0 0 0 0 0 DC DC DC 1 DC DC 1 0 DC 1 0 0 1 0 0 0 P1 (0 1 1 0 0 P0 0 ) 1 0 1 0 18 エンコーダ回路 P1 D0 D0 D1 D0 (1 D1) D0 D1 D3 D2 D0 D0 D1 D0 D1 D0 (D0 D0) D1 D0 D1 D1 D0 不要 P0 P1 P0 D0 D0 D1 D2 D0 D0 (D1 D2) D0 (1 D1 D2) D0 (D1 D2) D0 (D0 D0) (D1 D2) D0 D1 D2 (参考) ブール代数では、1のAND と0のORによって論理値が 変化しないことを利用 19 エンコーダの応用例 +Vref フラッシュ型ADC R/2 Comparator Encoder Latch 0.125V Vin Vref = 1V Vin = 0V の場合 0.25V 0.25V R 0.25V R Lecroy 10GS/s ADC 0.25V Vin (V) ~ -0.875 -0.875 ~ -0.625 -0.625 ~ -0.375 -0.375 ~ -0.125 -0.125 ~ 0.125 0.125 ~ 0.375 0.375 ~ 0.625 0.625 ~ 0.875 0.875 ~ Thermometer Code Binary Code 1111 1111 (1) 0 0 0 0111 1111 111 0011 1111 110 0001 1111 101 0000 1111 100 0000 0111 011 Encode 0000 0011 010 0000 0001 001 0000 0000 000 ゼロの数で値を表現 R 0.25V R R 0.25V R 0.25V R R/2 0.875 1 0.625 1 0.375 1 0.125 1 -0.125 0 -0.375 0 -0.625 0 -0.875 0.125V 0 Binary Data -Vref SYS_CLK Clocking Circuit 20 3.3.3 トライステート・バッファ 21 トライステート・バッファ または Symbol EN 0 0 1 1 IN 0 1 0 1 OUT Z Z 0 1 22 (参考) BUSの構造 • BUSは複数の回路ブロックが配線を共有できるので 配線本数の削減に有効 – データBUS、アドレスBUSなど • 問題点 – 複数の回路からの出力が競合しないように制御が必要 – 長い配線を共有するためノイズの影響を受けやすい – 配線容量が大きい(バッファを使用・・・4.1節参照) BUS インターフェース 回路1 回路2 回路3 回路4 23 BUSと論理回路の接続方式 1. マルチプレクサ(MUX) – 回路ブロックの出力をMUXを通して出力 – 出力する信号を制御信号で選択 2. OR BUS – 回路ブロックの出力のORを出力 – 出力しないブロックは、0を出力 3. トライステート・バッファ BUS 制御信号 回路1 – トライステート・バッファを通して出力 – 出力しないブロックは、Z(ハイインピーダンス)を出力 • • • 回路2 論理合成を使う場合、内部BUSは1か2の方法を使用する グローバルBUSや外部BUSは、通常3 の方法を使用する 3の方法はMUXやORが必要ないので、簡便に多数のモジュールをBUS に接続できるが、BUSの動作速度が接続された回路の入出力インピー ダンスに依存するのでシミュレーションによる動作確認が必要 24 演習3.3 (1) p.8, p.9のセレクタ、それぞれの真理値表を作成せよ。A, B, C, D の変 数を用いて表現してもよい (2) スライド9のようにn-ch MOSFETとp-ch MOSFETを分離して配置する とどのような利点があると考えられるか (3) カルノー図を応用してスライド19の4入力エンコーダの論理式を簡単 化する方法を説明せよ (4) 全加算器(FA)を設計し、回路シミュレータの過渡応答解析により論理 機能の検証を行え(回路図、シミュレーション結果のグラフ、ネットリス トを添付すること) (参考) 論理機能の検証は、過渡応答解析の結果と真理値表を比較する ことにより行うことができる。あまり高速に動作させると回路が誤動作する 可能性があるので、綺麗な矩形波出力となる程度のパルス幅で入力波形 (入力ベクトル)を作成する必要がある 25 演習3.3(4)の解説1 FAには、種々の構成法があるが、ここでは、マンチェスタ型と呼ばれる 回路についてシミュレーションを行うことにする(算術演算アルゴリズム の詳細は、集積回路工学第2で扱う) 論理回路 真理値表 A 0 A+B 0 0 0 A+B 1 1 1 A+B 1 B 0 0 1 1 0 0 1 1 CI 0 1 0 1 0 1 0 1 B CI B S 0 1 1 0 1 0 0 1 CO 0 0 0 1 0 1 1 1 26 演習3.3(4)の解説2 ここでは、階層的な回路設計を行う手順について解説する。まず、FAを構 成する論理ゲートである、インバータ、EXOR, クロックトインバータ(CMOS スイッチでもよい)を作成する。 MOSFETサイズ INV Param. M1 M2 Model N_1u P_1u L 1u 1u W 5u 15u AD 15p 45p AS 15p 45p PD 11u 21u PS 11u 21u M 1 1 27 演習3.3(4)の解説3 MOSFETサイズ EXOR param. M1 M2 M3 M4 Model N_1u P_1u N_1u P_1u L 1u 1u 1u 1u W 5u 15u 5u 15u AD 15p 45p 15p 45p AS 15p 45p 15p 45p PD 11u 21u 11u 21u PS 11u 21u 11u 21u M 2 2 1 1 28 演習3.3(4)の解説4 MOSFETサイズ CLKINV param. M1 ,M2 M3, M4 Model N_1u P_1u L 1u 1u W 5u 15u AD 15p 45p AS 15p 45p PD 11u 21u PS 11u 21u M 2 2 29 演習3.3(4)の解説5 各論理ゲートのシンボルを作成する。 F A Z A B Z A Z FB 1. 2. メニュー: [File] - [New Symbol] でシンボルエディタを起動 メニュー: [Draw] - [Line] 等でシンボルを描く – 3. メニュー: [Edit] - [Add Pin/Port] でピンを作成 – 4. 綺麗に書くのは面倒なので、四角のシンボル形状にし、 [Draw] - [Text]で、何の回 路か分かるように回路名を書いておいてもよい Schematic(回路図)のポート名と一致させること メニュー: [File] - [Save As…]でファイル名を付けて保存 – シンボルファイル名は、 Schematicのファイル名.asy とすること 30 演習3.3(4)の解説6 FAの回路図を作成する。 MOSFETのパラメータファイル グローバル配線の宣言 過渡応答解析 作成済みの回路は、通常の部品呼び出し と同じく、Select Component Symbol フォー ムで選択する。ただし、Top Directory を回 路とシンボルの保存先に切り替えること。 31
© Copyright 2024 Paperzz