Timing Optimization Techniques

VLSI設計工学4
1. テクノロジマッピングの説明
2. ハードウェア設計の流れ
3. VLSIの基本素子: 組合せ素子について
1
面積最小のマッピング
-対象がTree回路の場合-
• 動的プログラミング(Dynamic Programming)の典型
• 要点
– 入力から現在のゲートまでの部分回路の最適マッピングは、現在のゲ
ートより出力側のゲートには依存しない
– 遅延最小化のマッピングでは成立しない
• 第1ステップ
– 回路を入力から順に辿り、入力から現在のゲートまでの部分回路に対
する最適マッピングのみを保存していく
• 第2ステップ
– 回路を出力から入力へ辿りながら、最適マッピングを決定していく
2
(a)
nand2 (3)
not (2)
nand3 (4)
nand4 (5)
and2 (4)
aio21 (4)
oai21 (4)
library
(b)
図6
3
5
nand2(3)
6
not(6) nand2(12)
not(5)
and2(8) nand3(11)
nand2(3) and2(4)
nand2(7) 4
nand4(8)
1
2
nand3(4)
3
not(10)
aoi21(8)
7
8
nand2(11)
nand3(13)
nand4(12)
(c)
図6
4
nand2(3)
5
aoi21(8)
6
not(6)
nand2(3) and2(4)
1
2
nand3(4)
4
7
nand4(8)
8
nand2(11)
3
(c)
図6
5
5
aoi21(8)
6
7
8
1
2
nand3(4)
4
nand2(11)
3
(c)
図6
6
aoi21
5
6
7
8
nand3
1
4
2
nand2
3
(d)
図6
7
設計の流れ(基本)
module WaitState(load,lo
input load;
input [1:0] loadValue
always @(positive Clk)
if (load)
仕様(RTL)
動作合成
論理合成
より詳細な設計レベルほど:
・ 面積・遅延見積もりはより正確
・ 回路変換の余地はより小さい
LSIの大規模化により、計算機
設計支援技術(CAD: Computer
Aided Design)なしでは設計で
きない!
配置
配線
8
ハードウェア設計言語と対応するハードウェ
アの例(組合せ回路の場合)
Register a[32], b[32], c[32], d[32];
Terminal y[32]
If c==d then y = a+b else y = a-b;
•
•
•
•
•
32ビットのレジスタが4個必要
32ビットの加算器1つと、減算器1つ必要
32ビットの比較器1つ必要
データの切り替えのためのセレクタが必要
全体を制御する回路が必要(ランダムロジックと呼ばれる)
a
+
c
Sel
b
-
y
Comp
d
9
組合せ基本素子
• 組合せ回路=回路の出力は現在の入力値のみから決まる
• データパス内で主に利用される。通常、すでに設計されており、自分
では設計しない
– 加算器(ripple carry, carry look-ahead)
– 減算器
– 乗算器(booth, array, etc)
– 論理演算器(AND, OR, Complement, EOR, …)
– まとめたもの(ALU)
– セレクタ、マルチプレクサ
– デマルチプレクサ
– シフタ、ローテイタ
– パリティチェッカ(EOR, ENOR)
– メモリの利用
– などなど...
10
Ripple carry 加算器とcarry look ahead 加算器
• キャリーチェインをスキップする
c0
s0
a0
b0
p0
c1
s1
a1
b1
p1
1
0
c2
11