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