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
© Copyright 2024 ExpyDoc