3.2組み合わせ回路 -...
TRANSCRIPT
加算器(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 補数表現の例
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
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
加法標準形
11
デコーダの応用例(アドレス・デコーダ)
Intel Mobile Pentium III
Cache Memory
Di Di
Wi
デコーダ
SRAMメモリセル
・・・・
・・・・
A0A1
列デコーダ
A2 A3
行デコーダ
メモリセル
メモリセルアレイ
A1 A0
D0
D1
D2
D3
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の補数表現)
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