VLSI工学 (3) 松澤 昭 2004年 9月 2004年 9月 新大VLSI工学 1 集積回路 1. VLSIとは? 2.VLSIの設計から製造まで 3. MOSトランジスタとCMOS論理回路 3.メモリー回路 4. アナログCMOS回路 5. 回路・レイアウト設計 6. 論理設計とテスト 7. スケーリング則と低消費電力化設計 8.システムLSIとVLSIの今後 2004年 9月 新大VLSI工学 2 設計の各ステップとツール •製造工程とマスクデータ •回路設計 •レイアウト設計と配置配線 •スタンダードセルとライブラリ •論理設計と論理合成 •設計検証 •アーキテクチャ設計と高位合成 •テストとテスト容易化 2004年 9月 新大VLSI工学 3 セルレイアウト 論理回路を構成する基本セルを設計する。 2入力NAND (0.25um CMOS) 2004年 9月 新大VLSI工学 4 LSI 設計 設計仕様作成 • セルの設計 I2 セル設計 機能設計 論理設計 テスト設計 NAND ゲート I1 I2 O I1 P拡散層 メタル第1層 VDD レイアウト設計 レイアウト検証 Poly Si層 (1)論理図 EBデータ作成 O N拡散層 LSI試作 VDD GND LSIテスト (3)セルレイアウト図 O I1 VDD I2 入力端子 出力端子 GND GND (2)トランジスタ回路図 2004年 9月 新大VLSI工学 (4)セルモデル(両面端子の例) 2章 5 全加算器 2004年 9月 新大VLSI工学 6 LSI 設計 設計仕様作成 • セルライブラリの位置付け セル設計 RTL データ セルライブラリ 機能設計 論理設計 テスト設計 レイアウト設計 I1 I2 module add4(s,a,b); output [4:0] s; input [3:0] a,b; assign s=a+b; endmodule O I2 I1 レイアウト検証 VDD VDD VDD VDD EBデータ作成 O ゲート論理データ GND GND GND GND LSI試作 LSIテスト I1 I2 module count4(out,ck); output [3:0] out; input ck; reg [3:0] q; always @(posedge ck) begin q <= q+1; end assign out=q; endmodule Flip Flop Flip Flop VDD VDD VDD VDD GND O GND GND GND レイアウトデータ デザインルール 多結晶Si メタル1 メタル配線 P拡散層 メタル2 多結晶Si n拡散層 2004年 9月 新大VLSI工学 7 ライブラリ情報 1)基本論理関数や記憶素子の集合としてのライブラリ 2)上記集合の各素子のレイアウト (プロセスのデザインルールに合致したプロセス固有のもの) 3)各素子の論理シミュレーション用のモデル (論理機能,遅延情報,電気特性などシミュレータ固有のもの) 4)各素子の論理合成用のモデル (論理機能,遅延情報,電気特性など論理合成系固有のもの) 5)各素子のレイアウトツール用のモデル (論理機能,遅延情報,電気特性,レイアウト形状などレイアウトツー ル固有のもの) 2004年 9月 新大VLSI工学 8 VLSI設計フロー 機能設計 論理合成 所望の動作を実現する為の HDLを論理合成ソフト LSIの機能を機能図又は により論理図に変換 HDLで記述し検証 論理設計 マスク設計 プロセス 論理が正しいことを 論理図をもとに標準セル シミュレーションで ROM/RAM等の部品を 確認 配置・配線 テスト 出来上がったチップの 動作の検証 タ イ ミン グ図 ck (1 k H z) k eyck (2 5 H z) r e s e t_ sw res 0 res 1 re s 機能図によるLSIの機能設計 module KeyScan(CLOCK,RESET,SIN,SCAN,VAL) input CLOCK,RESET input [3:0] SIN; output [3:0] SCAN,VAL; reg clk,rst; 論理図と論理シミュレーション 自動配置配 線 VDD always @(posedge clk or psedge rst) begin if(rst) r_scan <= 4'd0; else case(Init) 1'b1:r_scan <= 4'd8; // Cobstant: r_scan[3:0] 1'b0: case( Scanning ) 1'b1:r_scan <= { r_scan[3] , r_scan[2] , r_scan [1] } 1'b0:r_scan <= r_scan; default: r_scan <= 4'bx; endcase default: r_scan <= 4'bx; endcase end ハードウェア記述言語(HDL) によるLSIの機能設計 2004年 9月 レチクル(ガラス原板) VSS MN3456 標準セル 1チップ自動レイアウト 新大VLSI工学 9 デジタルLSIの設計フロー プロセス開発 アーキテクチャ設計 プロセスパラメータ デバイス開発 アーキテクチャ デバイスパラメータ RTL設計 ライブラリ開発 HDL記述 論理合成 ライブラリ情報 ネットリスト テスト生成 デザインルール レイアウト設計 テストベクタ テスト 機器の 制御パ ラメータ マスクデータ 製造プロセス チップ 2004年 9月 新大VLSI工学 10 設計の各ステップとツール •製造工程とマスクデータ •回路設計 •レイアウト設計と配置配線 •スタンダードセルとライブラリ •論理設計と論理合成 •設計検証 •アーキテクチャ設計と高位合成 •テストとテスト容易化 2004年 9月 新大VLSI工学 11 動作記述 2004年 9月 新大VLSI工学 12 -- KUE-CHIP2 RTL Description in VHDL Version 0.30 1997/Jul./07 -- Copyright 1997 ASTEM RI Written by H. Kanbara library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_unsigned.all; use WORK.pkg_kue2.all; entity kue_chip2 is port(CLOCK_p : in std_logic; RESET_p : in std_logic; DBI_p : in std_logic_vector(7 downto 0); SP_p : in std_logic; SI_p : in std_logic; SS_p : in std_logic; SET_p : in std_logic; ADR_INC_p : in std_logic; ADR_DEC_p : in std_logic; OBS_SEL_p : in std_logic_vector(3 downto 0); IBUF_FLG_IN_p : in std_logic; OBUF_FLG_IN_p : in std_logic; OP_p : out std_logic; PHASE_p : out std_logic_vector(4 downto 0); AB_p : out std_logic_vector(8 downto 0); OB_p : out std_logic_vector(7 downto 0); DBO_p : out std_logic_vector(7 downto 0); MEM_OB_p : out std_logic; MEM_RE_p : out std_logic; MEM_WE_p : out std_logic; IBUF_FLG_CLR_p : out std_logic; IBUF_RE_p : out std_logic; PANEL_RE_p : out std_logic; OBUF_WE_p : out std_logic ); end kue_chip2; 2004年 9月 VHDL記述 論理回路の機能(加算、減算、乗算、 シフトなど)を記述したもの 新大VLSI工学 13 architecture PHASE of kue_chip2 is type STATE is (P0, P1, P2, P3, P4); signal CUR_STA, NXT_STA : STATE; type MODE is (BAR, SP, SI, SS); signal CUR_MODE, NXT_MODE : MODE; type INSTRUCTION_SET is (NOP_i, HLT_i, OUT_i, IN_i, RCF_i, SCF_i, BA_i, BVF_i, BNZ_i, BZ_i, BZP_i, BN_i, BP_i, BZN_i, BNI_i, BNO_i, BNC_i, BC_i, BGE_i, BLT_i, BGT_i, BLE_i, SRA_i, SLA_i, SRL_i, SLL_i, RRA_i, RLA_i, RRL_i, RLL_i, LD_i, ST_i, SBC_i, ADC_i, SUB_i, ADD_i, XOR_i, OR_i, AND_i, CMP_i); signal INST : INSTRUCTION_SET; type REGIST is (ACC_reg, IX_reg); signal REG : REGIST; type ADDRESS is (ACC_ea, IX_ea, IMM_ea, DIR_PROG_ea, DIR_DATA_ea, IDX_PROG_ea, IDX_DATA_ea); signal ADDR : ADDRESS; type CONDITION is (WAIT_cnd, EXEC_cnd); signal COND : CONDITION; type MEMORY is (IN_mem, EX_mem); signal MEM : MEMORY; type OBSERVE is (MEM_P_obs, MEM_D_obs, PC_obs, FLAG_obs, ACC_obs, IX_obs, DBI_obs, DBO_obs, MAR_obs, IR_obs, CONT_obs); 2004年 9月 新大VLSI工学 14 -- ADDRESS BUS process(CUR_MODE, OBS, CUR_STA, MAR, INST, ADDR) begin case CUR_MODE is when BAR => case OBS is when MEM_P_obs => AB_p <= '0' & MAR ; when MEM_D_obs => AB_p <= '1' & MAR ; when others => AB_p <= '0' & MAR ; end case; when SI | SS | SP => case CUR_STA is when P0 => AB_p <= '0' & MAR ; when P1 => AB_p <= '0' & MAR ; when P2 => AB_p <= '0' & MAR ; when P3 => AB_p <= '0' & MAR ; when P4 => case INST is when LD_i => case ADDR is when ACC_ea => AB_p <= '0' & MAR ; when IX_ea => AB_p <= '0' & MAR ; when IMM_ea => AB_p <= '0' & MAR ; when DIR_PROG_ea => AB_p <= '0' & MAR ; when DIR_DATA_ea => AB_p <= '1' & MAR ; when IDX_PROG_ea => AB_p <= '0' & MAR ; when IDX_DATA_ea => AB_p <= '1' & MAR ; end case; when ST_i => 2004年 9月 新大VLSI工学 15 case ADDR is when ACC_ea => AB_p <= '0' & MAR ; when IX_ea => AB_p <= '0' & MAR ; when IMM_ea => AB_p <= '0' & MAR ; when DIR_PROG_ea => AB_p <= '0' & MAR ; when DIR_DATA_ea => AB_p <= '1' & MAR ; when IDX_PROG_ea => AB_p <= '0' & MAR ; when IDX_DATA_ea => AB_p <= '1' & MAR ; end case; when SBC_i | ADC_i | SUB_i | ADD_i | XOR_i | OR_i | AND_i | CMP_i => case ADDR is when ACC_ea => AB_p <= '0' & MAR ; when IX_ea => AB_p <= '0' & MAR ; when IMM_ea => AB_p <= '0' & MAR ; when DIR_PROG_ea => AB_p <= '0' & MAR ; when DIR_DATA_ea => AB_p <= '1' & MAR ; when IDX_PROG_ea => AB_p <= '0' & MAR ; when IDX_DATA_ea => AB_p <= '1' & MAR ; end case; when others => AB_p <= '0' & MAR ; end case; end case; end case; end process; 2004年 9月 新大VLSI工学 16 Verilog-HDLの記述の構成 module module_name ( ポートリスト ); ポート宣言 reg , wire, paramete 宣言 assign文 always文 case文 など モジュール宣言 入力/出力端子の名前、ビット幅等を記述 入力/出力以外の信号の名前、 ビット幅等を記述やパラメタ宣言 回路の構造、動作を記述 endmodule 2004年 9月 新大VLSI工学 17 Verilog-HDLの記述の例(回路図) SAMPLE CLK RST 4 4 A F/F D 4 D Q B [0] [1] [2] [3] C SEL 2004年 9月 新大VLSI工学 18 モジュール宣言 モジュールの宣言を行います。 module SAMPLE(CLK, RST, A, B, C, D) ; モジュールの名 前を記述する 2004年 9月 新大VLSI工学 端子名を 記述する。 19 ポート(端子)宣言 以下のことを記述します ○端子名 ○方向 input / output / inout ○ビット幅 (例) input input input input output inout 端子の方向の 定義 [3:0] [7:3] MSB 2004年 9月 ビット幅の定義(1bit の信号は指定しなくて よい) clk; rst; A; B; C; D; 端子名の定義 (モジュール宣言での 端子名を書く) LSB(0である必要はない) 新大VLSI工学 20 入出力端子以外の信号の宣言 信号の属性によりレジスタ(reg)とワイヤー (wire)の種類に分けられる。 wire:ロジック(論理)出力 reg:レジスタ(フリップフロップ)出力 2004年 9月 新大VLSI工学 21 reg/wire宣言の信号 reg宣言 SAMPLE wire宣言 CLK RST 4 4 A D 4 D Q B C SEL 2004年 9月 新大VLSI工学 22 reg/wire宣言の記述例 基本的にはポートの宣言と同じです (例) reg wire [3:0] E; F; reg/wire宣言は基本的にはどこに記述してもよいことになってい ますが、ポート宣言のあとにまとめて書くのを推奨します。 (コンパイラによってはエラーやワーニングを出すことがあります) 2004年 9月 新大VLSI工学 23 動作の記述(assign文) 簡単な論理回路を記述します。 (良い例) a assign c = a & b; c b (悪い例) HDLを記述では 文法的に間違っている c = a & b; 信号cはwire宣言する必要があります!! 2004年 9月 新大VLSI工学 24 動作の記述(always文)(1) 順序回路の記述に使用します。 (主にレジスタの記述) (例) always@(posedge CLK or negedge RST) begin if (!RST)begin B <= 0; イベントリスト end else begin B <= A; ステートメント end ノンブロッキング代入 (順序回路の記述で使用します) 2004年 9月 新大VLSI工学 A D Q B イベントリストのイ ベントが生じたらス テートメントの動作 を行います 25 動作の記述(always文)(2) (例) always(posedge CLK or negedge RST) begin if (!RST)begin B <= 0; end else begin B <= A; end end CLKの立ち上がりか、RSTの立 下りのイベントが起こったらその 後の記述の動作を行います RSTが’0’やったら、Bを‘0’にし まっせ。 RSTが’0’ 以外やったら、BにAを 代入しまっせ。 2004年 9月 新大VLSI工学 26 動作の記述(function文) 複雑な論理を記述する時に使用します。 (case文やif文を記述するときによく使用します) (例) function sample_func; input [3:0] A; input [3:0] B; begin C[3] = A[3] & B[3]; C[2] = A[2] | B[2]; C[1] = A[1] ^ B[1]; C[0] = ~(A[0] & B[0]); end endfuction 2004年 9月 新大VLSI工学 functionの名前を定義します 引数を定義します (function内で使用する引数) functionの論理の記述 endfunctionで記述を終了させ ます 27 動作の記述(case文) C言語のswitchにあたるもの。 (例) function sample_case; input [1:0] A; input [3:0] B; begin case(A) Aの値によりCの 値が選択できる A[1:0] 2’b00 : C = B[0]; 2’b01 : C = B[1]; 2’b10 : C = B[2]; 2’b11 : C = B[3]; default : C = B[3]; B[3:0] 2 4 [0] [1] [2] [3] 00 01 10 else endcase defaultは上記の条件以外の値が 入力されたときのCの値。必ず defaultは書いて下さい。 end endfuction 2004年 9月 新大VLSI工学 28 動作の記述(if文) (例) function sample_if; input [1:0] A; input [3:0] B; begin if (A==2’b00) begin C = B[0]; end else if (A==2’b01) begin C = B[1]; end else if (A==2’b10) begin C = B[2]; end else begin C = B[3]; end end endfuction 2004年 9月 新大VLSI工学 A=2’b00の時のC の値を記述 A[1:0] B[3:0] 2 4 [0] [1] [2] [3] 00 01 10 else A=2’b01の時のC の値を記述 A=2’b11又はそれ以外の 時のCの値を記述 29 階層構造(サブモジュール呼び出し) サブモジュールの呼び出し方 module名 インスタンス名 (例) AAA AAA0( モジュール名 .A .B .C .D .E ); (A), (B), (C0), (D0), (E0) .A .B .C .D .E ); (C0), (D0), (C), (D), (E1) 2004年 9月 AAA A C C B B D D0 B D D Z Z E サブモジュールの端子 名と今のモジュールの 信号名が違っていても よい ZZZ ZZZ( サブモジュールでの 端子名 C C0 同じモジュールを呼び 出す時はインスタンス名 を変える。 AAA AAA1( .X .Y .Z ); A AAA A (E0), (E1), (Z) 今のモジュールでの 信号名 E E0 ZZZ E1 X Y ポイント ○サブモジュールの接続はポート名接続で行う。 ○サブモジュールのモジュール名とインスタンス名は 違っていてもかまわない。 ○サブモジュールの端子名と今のモジュールでの信 号名は違っていてもかまわない 新大VLSI工学 30 論理合成 論理機能から実際の論理回路を合成する。 (高速・低電力・小面積など目的によって合成結果が異なる) 2004年 9月 新大VLSI工学 31 論理合成の方法 ブール式からの合成 2004年 9月 消費電力を考慮した合成 新大VLSI工学 32 基本的な考え方(1) 遅延(delay) FF1 A 論理 配線 B FF2 論理回路や配線により、 信号には遅延が生じる。 最低でもこの遅延が 1サイクル以内である 必要がある。 CLK A delay B 2004年 9月 新大VLSI工学 33 基本的な考え方(2) Input delay 入力信号 A 論理 配線 B FF2 このモジュールに 入力される前にも 遅延が生じている 入力信号には、その モジュールに来るまでの 論理や配線により遅延が 生じています。 このinput delayとこの モジュール内の遅延の 和が1サイクル以内である 必要がある。 CLK A Input delay delay B 2004年 9月 新大VLSI工学 34 基本的な考え方(3) output delay FF2 A 論理 配線 B この信号の接続先 に遅延が生じている 出力信号には、そのモジュ ールに出力されてからの 論理や配線により遅延が 生じています。 このoutput delayとこの モジュール内の遅延の 和が1サイクル以内である 必要がある。 CLK A delay B output delay 2004年 9月 新大VLSI工学 35 基本的な考え方(4) funout(ファンアウト) ドライブ先が多い 多数の素子にドライブすると、 遅延は大きくなる。 信号がどれだけの素子にドライブ しているかの数をfanoutといい、 遅延を減らすにはこれを小さくする 必要がある。 2004年 9月 新大VLSI工学 36 基本的な考え方(5) set up time FF1 A B FF2 このクロックの立ち上がりに 対してset up time より前に Bは変化してないと、FF2は Bのデータを取り込めない。 A delay B set up time 2004年 9月 新大VLSI工学 37 基本的な考え方(6) hold time FF1 A B FF2 このクロックの立ち上がりに 対してhold time 分、Bは変化 してはいけない。変化すると FF2はBのデータを取り込めない。 A delay B hold time 2004年 9月 新大VLSI工学 38 設計の各ステップとツール •製造工程とマスクデータ •回路設計 •レイアウト設計と配置配線 •スタンダードセルとライブラリ •論理設計と論理合成 •設計検証 •アーキテクチャ設計と高位合成 •テストとテスト容易化 2004年 9月 新大VLSI工学 39 論理検証 • 仕様・アーキテクチャ設計・RTL設計と論理設計 結果(ネットリスト)の等価性を確認する。 • シミュレーションと形式的検証 RTL設計 比較 検証入力 ネットリスト 2004年 9月 新大VLSI工学 40 LSI 設計 設計仕様作成 • 機能・論理設計 セル設計 機能A 機能設計 論理設計 テスト設計 機能分割 設計仕様 X+Y=Z 機能設計 Z-V=S 機能C X*W=V 機能B レイアウト設計 レイアウト検証 EBデータ作成 LSI試作 LSIテスト 検証環境 機能A テストベンチ 機能C テストベンチ ************* ************* RTLデータ **** 機能B テストベンチ 論理合成 論理シミュレーション 2004年 9月 新大VLSI工学 41 論理シミュレーション 2004年 9月 新大VLSI工学 42 LVS (Layout v.s. Schematic) • ネットリスト通りレイアウトがなされている かをチェックする 元のネットリスト レイアウトデータ 比較(グラフの等価性判定) 回路抽出 ネットリスト 2004年 9月 新大VLSI工学 43 性能の検証 • 論理検証ー>遅延検証 • LVS ー>回路パラメータ抽出、回路シミュ レーション(主にライブラリ開発で行う。) 2004年 9月 新大VLSI工学 44 設計の各ステップとツール •製造工程とマスクデータ •回路設計 •レイアウト設計と配置配線 •スタンダードセルとライブラリ •論理設計と論理合成 •設計検証 •アーキテクチャ設計と高位合成 •テストとテスト容易化 2004年 9月 新大VLSI工学 45 アーキテクチャ設計 2004年 9月 新大VLSI工学 46 システムLSI設計のフロー ツール モデル化 シミュレーション 合成と最適化 解探索 評価 システム仕様 アーキテクチャ選択 HW・SW分割 HW合成 2004年 9月 システム記述法 アーキテクチャ記述 選択手法,探索 アーキテクチャ方式 分割手法 (評価と最適化) SW合成 新大VLSI工学 47 ソフトウェア合成 ソフトウェア仕様 2004年 9月 プロセッサ メモリの合成 基本ソフト ウェアの合成 汎用・専用 データパス幅 命令体系など コンパイラ OS Debugger 新大VLSI工学 応用プログ ラムの合成 プログラムサイズ データサイズ 性能,消費電力 48 ハードウェア合成 ハードウェア仕様 ハイレベル合成 モジュール選択 スケジューリング 論理合成 レイアウト合成 2004年 9月 新大VLSI工学 49 仕様記述言語 VLSIシステム VHDL, Verilog, SpecC, System C... DSP COSSAP,... 連続系 MATLAB, MATRIXX,... プロトコル SDLーCLOTOS, ESTELLE,.. 同期システム ESTEREL, STATECHART,.. プログラム C++, JAVA, C, FORTRAN, 高位ソフトウェア VDM, Z, B, FUNMATH, 各分野でそれぞれの言語がある. 表現力,解析力,汎用性 2004年 9月 新大VLSI工学 50 何が難しいか? • モデル(Semantics)と文法(Syntax) a:=b; b:=a; 同時?逐次?非決定的? • 時間と順序関係 after 5ms; after event b; • 抽象化と詳細化 命令サイクル,クロックサイクル,実時間... • 計算精度 ワード,バイト,ビット,アナログ,... 2004年 9月 新大VLSI工学 51 アーキテクチャの探索 • 部品の選択 – プロセッサ,メモリ,バスなど • • • • • 2004年 9月 動作/変数/チャネルの分割 バインディング/アロケーション 結合の決定 スケジューリング 評価 新大VLSI工学 52 アーキテクチャの探索 Processor Processor DSP 専用回路 ROM I/O RAM 2004年 9月 新大VLSI工学 53 HW-SW分割 • 入力: – 機能ブロックの集合 – 基本アーキテクチャ – 設計目標と設計制約 • 出力 – 機能ブロックの実現形態(HW or SW) 2004年 9月 新大VLSI工学 54 HW-SW分割の概念 ソフトウェア A メモリ CPU B D 専用 ハードウェア C 機能ブロック 2004年 9月 ハードウェア 新大VLSI工学 55 HW-SW分割の仕組 機能ブロックの 集合 分割と割当て 設計制約と 設計目標 評価 HW-SW コシミュレーション 探索戦略 2004年 9月 新大VLSI工学 56 システム設計の要素技術 • システムのモデル化 • 検証技術 – HW-SW コシミュレーション – 検証パタンの生成 – 形式的検証 • 性能評価技術 • 最適化技術 2004年 9月 新大VLSI工学 57 ハイレベル合成 for i in 1 to 3 loop z:= z + x(i) * y(i); end loop; MUL MUL MUX Reg. File ADD 2004年 9月 新大VLSI工学 58 ソフトウェア合成 ソフトウェア仕様 2004年 9月 プロセッサ メモリの合成 基本ソフト ウェアの合成 汎用・専用 データパス幅 命令体系など コンパイラ OS Debugger 新大VLSI工学 応用プログ ラムの合成 プログラムサイズ データサイズ 性能,消費電力 59 基本ソフトウェアの合成 • リターゲッタブルコンパイラ – CPU, DSP, 専用プロセッサ • GCC, Mimola, Valen-C, SUIF,... • OSの合成 2004年 9月 新大VLSI工学 60 組み込みシステムのコンパイル技術 • プログラムはROMに固定される. • プログラムの実行状況が予測しやすい. • コンパイルに論理合成やレイアウト合成と 同じ程度の最適化努力が許される. • プログラムに対してハードウェアを変更す ることも出来る. 2004年 9月 新大VLSI工学 61 コンパイラによるシステム最適化 プログラム プロセッサ 定義 コンパイル 広域コード配置 局所命令スケジューリング 2004年 9月 新大VLSI工学 62 設計の各ステップとツール •製造工程とマスクデータ •レイアウト設計と配置配線 •スタンダードセルとライブラリ •論理設計と論理合成 •設計検証 •アーキテクチャ設計と高位合成 •テストとテスト容易化 2004年 9月 新大VLSI工学 63 集積回路のテスト • 製造した半導体から良品と不良品を選別 する必要がある. • 何らかの入力を印加し,その応答を見る. →その応答によって良品と不良品の違い を見極める. • 多くの故障モデルとそれらに関連するテス ト手法が提案されている. 2004年 9月 新大VLSI工学 64 故障モデル • • • • 2004年 9月 Single stuck-at faults(単一縮退故障) Multiple stuck-at faults(多重縮退故障) Bridging faults(ブリッジ故障) Delay faults(遅延故障) 新大VLSI工学 65 故障の種類 Stuck at 0 遅延故障 2004年 9月 ブリッジ故障 Stuck at 1 新大VLSI工学 66 故障の検出 0 0 0 0 2004年 9月 1 1 1 1 新大VLSI工学 0 1/0 0/1 Stuck at 1 67 テスト技術の分類 • 外部テスト・・・チップ外のテスタを用いる. – スキャン設計 – クロスチェック法 – IDDQテスト • 組込み自己テスト(BIST, Built-In SelfTest)・・・チップ上に搭載された簡易なテス タを用いてテストを行う. 2004年 9月 新大VLSI工学 68 外部テストと組込み自己テスト BIST 外部テスト 入力 入力 テスト専用パス テスト専用パス CUT CUT テスト専用パス テスト専用パス 応答 応答 2004年 9月 新大VLSI工学 69 LSI 設計 設計仕様作成 セル設計 • BIST(Built In Self Test) テスト方式 テスタ LSIチップ 機能設計 論理設計 ・LSIチップ大規模化 テスト設計 レイアウト設計 LSIテスト パターン 発生器 に対応して、 高検出率かつ高速 のアルゴリズム開発 が継続的に必要 レイアウト検証 比較器 EBデータ作成 LSI試作 数10MHz LSIテスト チップ内蔵 自己テスト (BIST) パターン 発生器 比較器 圧縮器 ・LSIチッップ内の 高速回路で ランダム法(乱数)で テストパターン発生 ・診断回路分の チップ面積増加 数100MHz 2004年 9月 新大VLSI工学 2章 70 外部テスト • 伝統的な手法. • LSIテスタを用いて,被テストデバイス(Device Under Test)をテ ストする. • 外部テストで用いられるテストパタンはATPG(Automatic Test Pattern Generation)によって作成される. • DUTにはテスト専用パスが付加される.これをテスト容易化設 計(Design-for-Testability, DFT)という。 2004年 9月 新大VLSI工学 71 組込み自己テスト(BIST) • • • • Built-In Self-Testの頭字語. 外部テストほどは用いられていない. デバイス上に簡易なテスタを搭載する. パタン発生器にLFSR(Linear Feedback Shift Register,線 形帰還レジスタ)などが,パタン圧縮器にMISR(Multiple Input Signature Register)などが用いられる. • 非効率的な乱数のテストパタン 2004年 9月 新大VLSI工学 72 LSI 設計 • テスト容易化設計 設計仕様作成 セル設計 ロジック・スキャン設計 機能設計 対象回路のレジスタ間にスキャンパスを生成し、 内部素子の状態を外部に出力して故障を検出 論理設計 テスト設計 レイアウト設計 スキャンチェーン レイアウト検証 EBデータ作成 スキャンIN LSI試作 SCAN F/F SCAN F/F スキャンOUT LSIテスト CLK テスト入力 バウンダリ・スキャン設計 LSIのI/O素子にスキャン用 レジスタを付加し、チェーン 状に接続することで、LSI間 の接続状態をテスト 断線 テスト出力 TAP シ ョ ー ト TAP 2004年 9月 新大VLSI工学 74 スキャンテスト 鈴木五郎 「システムLSI設計入門」 コロナ社 2004年 9月 新大VLSI工学 75 設計フローのまとめ LSIの設計フロー 仕様設計 アーキテクチャ設計 機能設計 論理設計 レイアウト設計 テスト 1章 2004年 9月 新大VLSI工学 76 LSIの設計フロー 仕様設計 アーキテクチャ設計 製品の要求仕様を分析し、システムの外部仕様を決定 システムの方式やアルゴリズムの決定、CPU、ファーム ウェアの選定等を行い、HWとSWで実現する機能を分割 機能設計 論理設計 レイアウト設計 1章 2004年 9月 HWで実現する部分を機能ブロックに分割し、HDLで記述 して動作検証を実施 RTLで論理検証後、論理合成を行い、ゲートレベルでの静的なタ イミング検証と動的な検証を実施 製造 フロアプランを実施し、機能ブロックレベルの配置決定後、タイミ ング制約に従って配置・配線を実施 テスト 製造されたシステムLSIの動作や電気的特性を検証 新大VLSI工学 77 トップダウン設計 性能 機能 高 規格 ニーズ コスト トップダウン 設計の流れ 要求仕様 設計資産 特許 要求 仕様 抽象度 ソフトウェア アーキ テクチャ 機能1 機能3 機能2 機能4 機能ブロック マクロ マクロ1 マクロ2 マクロ1 マクロ3 マクロ2 マクロライブラリ D Q セル CK 低 セルライブラリ 1章 2004年 9月 新大VLSI工学 78 仕様設計 仕様設計 調査、規格、要求仕様 文章等 からシステムLSIに要求される 仕様を分析 機能・動作・性能を抽出 要求仕様の分析 アーキテクチャ設計 要求仕様書 機能設計 論理設計 レイアウト設計 製造 他社製品 要求仕様書 要求性能 外部仕様の決定 LSI外部仕様書 LSIが分担する 機能を決定 入力 出力 応用ソフト の分担 LSI外部仕様書 システムLSIは複雑で大規模なシステムを組み込み可能 テスト LSI設計者単独で開発できるレベルを超越 システム開発者、商品企画者等の参画が必要 1章 2004年 9月 新大VLSI工学 79 アーキテクチャ設計 仕様設計 SW処理で 速度は十分か? LSI外部仕様書 アーキテクチャ設計 機能設計 CPU の選定 ソフト 資産 設計資産の 流用可能か? デバイスの 製造コストは? LSIの 構成を決定 論理設計 レイアウト設計 アルゴ リズム ハード 資産 消費電力は? 製造 テスト HW仕様書 SW仕様書 HW処理 SW処理 上位設計統合ツールには、設計戦略を評価できるツールがある システムレベルの検証を行い、設計制約を与えて最適化する 1章 2004年 9月 新大VLSI工学 80 機能設計 仕様設計 アーキテクチャ設計 HW仕様書 インタフェースと機能 (外から見た振る舞い) のみを定義 ビヘイビア レベル設計 入力1 機能設計 入力2 機能検証 RTL設計比 記述量:1/10 検証速度:2~3桁倍 ビヘイビアレベル で機能を記述 出力1 出力2 入力3 論理設計 RTL設計 レイアウト設計 入力1 機能検証 製造 機能A 機能B 出力1 機能C 出力2 入力2 入力3 テスト 以前はビヘイビアレベルで記述した後、人手でRTLに変換していたが、 最近では動作合成ツールにより自動的にRTLに変換するツールが登場している SystemCやSpecCなど言語を使用し、更に抽象度の高いレベルでの設計も行われている 1章 2004年 9月 新大VLSI工学 81 論理設計 HDL 仕様設計 真理値表 論理変更 HDL 状態遷移 論理抽出と簡単化 アーキテクチャ設計 論理合成 Lib テクノロジマッピング 機能設計 SCAN合成 NG 論理設計 レイアウト設計 仮負荷SIM レイアウト設計 製造 LPE テスト 実負荷SIM NG 1章 2004年 9月 新大VLSI工学 Fanout数 等から推 定される 統計的な 負荷情報 で検証 レイアウト から抽出 した抵抗 容量情報 で検証 最適化 ネットリスト 大 面積小 遅延大 面積大 遅延小 遅 延 面積 大 82 テスト容易化設計 テストパターンの評価 : 故障検出率 故障検出率(%)=検出された故障数/定義した故障数*100 テストパターン作成 シミュレーション 検出率OK? 容易化無 NG 大 % ゲート単価 100 検 コ テスト ス コスト 出 ト 率 大 大 0 ゲート規模 パターン作成工数 回路のHDL記述量<テストパターンの記述量 テスト容易化設計 : 論理設計時にテストを考慮して、製品の外部端子から 容易に内部の故障を検出できるように設計する 構造化手法(作成を容易化) スキャン・パス LSSD(Level Sensitive Design) マルチプレクサ 1章 2004年 9月 組み込み自己試験(パターンの不要化) LFSR(Linear Feedback Shift Register) BILBO(Built-In Logic Block Observer) メモリBIST(Built-In Self Test) 新大VLSI工学 83 形式検証 論理シミュレータ : 論理検証とタイミング検証を同時に実施 大規模LSIでは処理に時間がかかる 論理検証 : 形式検証(Formal Verification) テストパターンを使用せず、数学的に論理の等価性をチェック タイミング検証 : STA(Static Timing Analyzer) テストパターンを使用せず、遅延計算を高速に処理する HDL設計 論理合成 論理合成 組合せ回路 配置配線 形式検証 形式検証 論理合成、 SCAN合成 での論理変更 は無いか? CTS、ECO での論理変更 は無いか? 1章 2004年 9月 D Q CK ロジックコーン 単位で等価性比較 D Q CK 組合せ回路 D Q CK D Q CK D Q CK D Q CK 新大VLSI工学 組合せ回路 D Q CK ロジックコーン FFを頂点とする 組合せ回路網 組合せ回路 D Q CK 84 レイアウト設計 CTS(Clock Tree Synthesis) 仕様設計 フロアプラン D Q CK CLK T1 電源配線 組合せ 回路 D Q CK T2 クロック伝播遅延 T1<T2 アーキテクチャ設計 CLK 配置 機能設計 論理設計 レイアウト設計 製造 テスト 1章 2004年 9月 CTS D Q CK CLK T1 概略配線 組合せ 回路 D Q CK T2 クロック伝播遅延 T1=T2 詳細配線 ECO(Engneering Change Order) エラー修正 レイアウト検証 セル セル B A セル C セル セル A B セル C 部分的に再配置配線 新大VLSI工学 85 タイミングドリブンレイアウト設計 RTL記述 合成制約 フロアプラン ・Setup/Hold Timing Place 論理合成 Timing Optimize CTS ネットリスト Timing Route 自動配置配線 ・Max Fanout ・Max Capacitance ・Max Transition タイミング 制約 Buffer Insert Gate Re-size Gate Move Timing Optimize STA エラー修正 GDSⅡ NG Timing判定 レイアウト検証 1章 2004年 9月 新大VLSI工学 86 テスト 仕様設計 DCテスト ピン接触テスト チップに電源や信号を供給できない不良品を除去 ボンディングや組立工程に異常が無いかテスト アーキテクチャ設計 機能設計 消費電流テスト 動作電流が規格内である事を確認 スタンバイ電流(無信号、非動作時の電流)を確認 製造プロセスに異常が無いかテスト 各入出力端子の電圧、電流が規格を満足しているか 確認 論理設計 レイアウト設計 製造 テスト ファンクションテスト 論理回路(デジタル回路)で入出力のH/Lの真偽を 確認する 開発時の機能検証パターンで機能テスト ACテスト 交流(AC)信号を扱うすべてのテスト プリント基板上で他の部品と接続して使用する場合 のタイミング余裕が規格内であるかをテスト 出力遅延時間、setup/hold時間、 rise/fall時間 1章 2004年 9月 新大VLSI工学 87
© Copyright 2024 ExpyDoc