3.2組み合わせ回路 -...

30
3.2 組み合わせ回路 マイクロプロセッサへの適用例

Upload: others

Post on 26-Dec-2019

1 views

Category:

Documents


0 download

TRANSCRIPT

3.2 組み合わせ回路

マイクロプロセッサへの適用例

3.2.1 加減算器

2

加算器(Ripple Carry Adder: RCA)

3

A B Cin Cout S0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 11 0 1 1 01 1 0 1 01 1 1 1 1

FAの真理値表

A+B+Cin

FA(Full Adder)

4

A B Cin Cout S0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 11 0 1 1 01 1 0 1 01 1 1 1 1

真理値表 論理回路

A + B

A + B

A + B

CI

B

B

A+B+Cin = 奇数If (A xor B) Cout = Cin;else Cout = B;

減算器

5

減算器加算器を用いた減算

B)(ABAF

2の補数1. ビット反転2. LSBに1を加える

(キャリーに1入力)

01

2

3-4

-3

-2

-1 000001010

011100

101110111

3bit 補数表現の例

6

加減算器

(オペコード)

I F0 A + B1 A - B

7

加減算器の応用例

入出力レジスタ

データRAM

データROM

乗算器

ALU

累算レジスタ

ALU(算術論

理演算ユニット)

Full

Add

erFu

ll A

dder

Full

Add

erFu

ll A

dder

B

ASEL

Z

F0

F1

F30

F31

Cout

A0

A1

A30

A31

B0

B1

B30

B31

32bit ALU MUX

I0I1I2

Cin

(参考)減算命令I0 1I1 0I2 0Cin 1

SUN SPARC

3.2.2 デコーダ

8

9

デコーダ Decoder

I1I0

D0D1D2D3 I={I1, I0}に対応するD={D3, D2, D1, D0}

の要素を1つ選んで1を出力

(一般にバイナリコードから他のコード体系に変換するものはデコーダと呼ばれる。例:7セグメント・デコーダなど)

I1 I0 Line D3 D2 D1 D00 0 D0 0 0 0 10 1 D1 0 0 1 01 0 D2 0 1 0 01 1 D3 1 0 0 0

Truth table

I0I1D3I0I1D2

I0I1D1

I0I1D0

加法標準形

10

デコーダ回路

I0I1D3I0I1D2

I0I1D1

I0I1D0

I1 I0

D0

D1

D2

D3

11

デコーダの応用例(アドレス・デコーダ)

Intel Mobile Pentium III

Cache Memory

Di Di

Wi

デコーダ

SRAMメモリセル

・・・・

・・・・

A0A1

列デコーダ

A2 A3

行デコーダ

メモリセル

メモリセルアレイ

A1 A0

D0

D1

D2

D3

3.2.3 シフタ

12

13

シフタの役割

• シフト機能– 定数倍(シフト+加算)、浮動小数点演算などに使用

• 回路方式– バレルシフタ(Barrel Shifter)・・・次ページ

– 対数シフタ(Logarithmic Shifter)

その他の基本演算(加算、乗算、比較、除算、Moduloなど)の演算アルゴリズム及び回路実装については、集積回路工学第2で扱う。

定数倍の例: a * b = a * (bn・2n + bn-1・2n-1 +・・・+ b0・20)= bn・ (a<<n) + bn-1・ (a<<n-1) +・・・+ b0・ a

(左シフトと加算に変換)

14

バレルシフタ

Sh3 Sh2 Sh1 Sh0 B3 B2 B1 B00 0 0 1 A3 A2 A1 A00 0 1 0 A3 A3 A2 A10 1 0 0 A3 A3 A3 A21 0 0 0 A3 A3 A3 A3

右シフト(桁下げ)の真理値表n-ch 側のスイッチ・マトリクス

※ 青色は符号拡張(sign-bit extension)

Buffer

DECODER

A0

A1

A2

A3

B0

B1

B2

B3

I1I0

CMOSスイッチ1段+インバータ2段

15

(参考)2の補数による符号拡張

0 12

3-2

-3-4

-1

000001

010

011

100101

110

111

3bit 補数表現 拡張された6bit 補数表現(正)

000 000

000 001

000 010

000 011

111 111

111 110

111 101

111 100

拡張された6bit 補数表現(負)

上位ビットの値を上位に必要ビット数だけ追加すればよい

円の内側:10進数円の外側:2進数(2の補数表現)

3.2.4 エンコーダ

16

17

エンコーダ Encoder

P1P0

D0D1D2D3

D0~D3のうち論理値が1となったライン

に対応するバイナリコードを出力する。但し、2つ以上のラインが値1のとき、D0に近いほうを優先する。(一般に任意のコード体系からバイナリコードに変換するものはエンコーダと呼ばれる)

D3 D2 D1 D0 P1 P00 0 0 0 (0 0 )DC DC DC 1 1 1DC DC 1 0 1 0DC 1 0 0 0 11 0 0 0 0 0

Truth table

18

エンコーダの実装例

D2D1D0

D2)D1()D0(D0D0

D2)D1(D0D2)D11(D0

D2)D1(D0D0

D2D1D0D0P0

D1D0D1)D0D0(D0

D1D0D1D0D0

D1D0)D11(D0

D1D0D0P1

(参考)ブール代数では、1のANDと0のORによって論理値が変化しないことを利用

D3

D2

D1D0

P0

P1

不要

19

エンコーダの応用例

Lecroy 10GS/s ADC

Vref = 1VVin = 0Vの場合

Vin (V) Thermometer Code Binary Code~ -0.875 1 1 1 1 1 1 1 1 (1) 0 0 0

-0.875 ~ -0.625 0 1 1 1 1 1 1 1 1 1 1-0.625 ~ -0.375 0 0 1 1 1 1 1 1 1 1 0-0.375 ~ -0.125 0 0 0 1 1 1 1 1 1 0 1-0.125 ~ 0.125 0 0 0 0 1 1 1 1 1 0 00.125 ~ 0.375 0 0 0 0 0 1 1 1 0 1 10.375 ~ 0.625 0 0 0 0 0 0 1 1 0 1 00.625 ~ 0.875 0 0 0 0 0 0 0 1 0 0 10.875 ~ 0 0 0 0 0 0 0 0 0 0 0

Encode

フラッシュ型ADC

Binary Data

Clocking CircuitSYS_CLK

Comparator+Vref

-Vref

Vin

R/2

R

R

R

R

R

R/2

Encoder Latch

R

R

-0.875

-0.625

-0.375

-0.125

0.125

0.375

0.625

0.875

0

0

0

0

1

1

1

1

0.125V

0.125V

0.25V

0.25V

0.25V

0.25V

0.25V

0.25V

0.25V

ゼロの数で値を表現

回路シミュレーションの準備(1)1. LTspiceのインストール

– 電子回路第2及び演習の受講者は、既にインストール済み

– 電子回路第2及び演習を取っていない人は、下記のサイトでダウンロードして、LTspiceをインストールしよう

– http://www.linear-tech.co.jp/designtools/software/– (初期設定) http://jaco.ec.t.kanazawa-u.ac.jp/edu/ より「公開作業日誌」

2. MOSFETモデルパラメータのインストール– http://jaco.ec.t.kanazawa-u.ac.jp/edu/micro1/cgi/ で自分用のMOSFET

モデルパラメータを生成し、ダウンロードする

– ファイル名が、cmos***.lib となってることを確認する(***は名列番号)

– モデルパラメータファイルは、LTspiceの回路図ファイル(拡張子 .asc)の保存先か、C:¥Users¥(ユーザ名)¥Documents¥LTspiceXVII¥lib¥cmp¥にコピーする

20

回路シミュレーションの準備(2)

3. MOSFETシンボルのインストール– http://jaco.ec.t.kanazawa-u.ac.jp/edu/ より、集積回路工学第1の案内

ページに入り、mosfet_symbols.zip をダウンロードする

– 解凍したフォルダには、N_1u.asy, P_1u.asy, N_50n.asy, P_50n.asyの4つのファイルが含まれている

– 解凍したフォルダ内の4個のファイルを C:¥Users¥(ユーザ名)¥Documents¥LTspiceXVII¥lib¥sym/ にコピーしておく

– 保存したシンボルは、Component(その他の部品配置)ボタンにより、Select Component Symbolフォームで選ぶことができる

21ドレインとソースの

位置に注意

(重要)市販半導体部品モデルとの違い

22

市販の半導体部品と集積回路の部品ではデバイスパラメータの設定方法や目的が大きく異なることに注意

市販半導体のデバイスモデル 集積回路のデバイスモデル

モデル名を指定するとパラメータ値が全て代入される

モデル名を指定しても、いくつかのパラメータは代入されない

全ての同じ型番の半導体素子に、同じパラメータ値が用いられる

各半導体素子毎に、異なるパラメータ値を設定できる

一度パラメータ値を決定すれば変える必要がない

通常は、半導体メーカが提供する

必要とする回路特性となるように、回路設計毎に、パラメータ値を調整する

ただし、変更できるのは、レイアウトに関係するパラメータのみ

23

演習3.2

全加算器(FA)を設計し、回路シミュレータの過渡応答解析により論理機能の検証を行え。(1) 回路図、(2) シミュレーション結果のグラフ、(3) ネットリスト(スライド30参照)を添付すること。

(参考) 論理機能の検証は、過渡応答解析の結果と真理値表を比較することにより行う。あまり高速に動作させると回路が誤動作する可能性があるので、綺麗な矩形波出力となる程度のパルス幅で入力波形(入力ベクトル)を作成する。

演習3.2の解説1

24

FAには、種々の構成法があるが、ここでは、マンチェスタ型と

呼ばれる回路についてシミュレーションを行うことにする。(算術演算アルゴリズムの詳細は、集積回路工学第2で扱う)

A B CI S CO0 0 0 0 00 0 1 1 00 1 0 1 00 1 1 0 11 0 0 1 01 0 1 0 11 1 0 0 11 1 1 1 1

真理値表 論理回路

A + B

A + B

A + B

CI

B

Bスイッチは、インバータ+トライステートインバータで構成

演習3.2の解説3

25

階層的な回路設計を行う手順について解説する。まず、FAを構成する論理ゲートである、インバータ、EXOR, クロックトインバータを作成する。各回路を作成したら、FAの保存先と同じフォルダに置くこと。

INV

MOSFETサイズ

Param. M1 M2Model N_1u P_1uL 1u 1uW 5u 15uAD 15p 45pAS 15p 45pPD 11u 21uPS 11u 21uM 1 1

右クリック

右クリック

※ パラメータ値の決定法は4.4節で解説する。

演習3.2の解説4

26

EXOR

param. M1 M2 M3 M4Model N_1u P_1u N_1u P_1uL 1u 1u 1u 1uW 5u 15u 5u 15uAD 15p 45p 15p 45pAS 15p 45p 15p 45pPD 11u 21u 11u 21uPS 11u 21u 11u 21uM 2 2 1 1

MOSFETサイズ

演習3.2の解説5

27

param. M1 ,M2 M3, M4Model N_1u P_1uL 1u 1uW 5u 15uAD 15p 45pAS 15p 45pPD 11u 21uPS 11u 21uM 2 2

CLKINV

MOSFETサイズ

演習3.2の解説6

1. メニュー: [File] - [New Symbol] でシンボルエディタを起動

2. メニュー: [Draw] - [Line] 等でシンボルを描く– 綺麗に書くのは面倒なので、四角のシンボル形状にし、[Draw] - [Text]で、何の回

路か分かるように回路名を書いておいてもよい

3. メニュー: [Edit] - [Add Pin/Port] でピンを作成– Schematic(回路図)のポート名と一致させること

4. メニュー: [File] - [Save As…]でファイル名を付けて保存– シンボルファイル名は、 Schematicのファイル名.asy とすること

– 回路図ファイルと同じフォルダに保存すること 28

各論理ゲートのシンボルを作成する。

A Z ZA

BZA

F

FB

演習3.2の解説7

29

MOSFETのパラメータファイル

グローバル配線の宣言

過渡応答解析

作成済みの回路は、通常の部品呼び出しと同じく、Select Component Symbol フォームで選択する。ただし、Top Directory を回路とシンボルの保存先に切り替えること。

FAの回路図を作成する。cmos***.lib (***は名列番号)を使用

演習3.2の解説8

• 回路図の貼り付け方法

– 回路図のウインドウを選択し、メニューよりTools > Copy bitmap to Clipboard

– レポートを作成しているアプリケーション上で貼り付け

• グラフの貼り付け方法

– シミュレーションを実行し、グラフを表示させる

– グラフのウインドウを選択し、メニューよりTools > Copy bitmap to Clipboard

– レポートを作成しているアプリケーション上で貼り付け

• ネットリストの出力の方法

– 回路図のウインドウを選択し、メニューよりView > SPICE Netlist– Netlistが表示されたウインドウを右クリックし、Generate Expanded

Listing を選び、適当なフォルダに保存する(拡張子 .sp)30