Presentation is loading. Please wait.

Presentation is loading. Please wait.

SoC Test 실습 강성호 (연세대학교, 전기전자공학과) Copyrightⓒ2003.

Similar presentations


Presentation on theme: "SoC Test 실습 강성호 (연세대학교, 전기전자공학과) Copyrightⓒ2003."— Presentation transcript:

1 SoC Test 실습 강성호 (연세대학교, 전기전자공학과) Copyrightⓒ2003

2 과목 개요(Learning Map) Copyrightⓒ2003

3 (모듈18) 목차 Introduction DFTCompiler를 이용한 Scan 구조 삽입
TetraMax ATPG를 이용한 테스트 패턴 생성 SoCbist를 이용한 Bist 구조 삽입 SoCbist를 이용한 Wrapper 구조 삽입 Copyrightⓒ2003

4 과목 개요 학습 목표 SoC 내부에 존재하는 코어를 기반으로 구축되는 SoC 테스트 방법을 실습을 통하여 구체적으로 이해한다. 이를 위하여 Synopsys 사의 DFTCompiler, Tetramax, SoCBIST를 이용하여 각 코어 수준의 테스트 접근과 SoC 수준의 테스트 환경을 구축한다. 선수지식 SoC Test 및 Design for Testability 관련 이론 Copyrightⓒ2003

5 SoC Test Scheme Test Automation Fault simulation Testability measure
RF/Analog Core User Defined Core User Defined Core DRAM IP ROM UDL BIST Mem BIST Test Access SoC Test Controller IO Pad Low cost external ATE Memory test algorithm Memory BIST, BISR Testable design Analog Fault modeling Mixed signal Built-In Self Test Built-In Self Calibration Testable core design Logic BIST Test reuse Hierarchical testing Core access architecture Parallel access & bypass Core isolation IP-system test interface Test spec. Test hardware control Test scheduling Automatic test pattern Fault simulation Testability measure Scan insertion & synthesis BIST circuit synthesis Boundary scan insertion & synthesis Test Automation Copyrightⓒ2003

6 DFTs for SoC Test Scan 구조 삽입 Wrapper 구조 삽입 BIST 구조 삽입
순차회로인 코어를 테스트하기 위한 필수적인 사항 Wrapper 구조 삽입 SoC의 외부 핀으로부터 테스트 대상 코어까지의 접근 경로를 제공하며, 동시에 필요에 의한 코어의 고립(isolation)상태 제공 BIST 구조 삽입 ATE의 과중한 load 분담 및 at-speed test와 같은 고사양의 테스트를 위한 사항 회로의 동작에 영향을 주지 않아야 함 Copyrightⓒ2003

7 Test Scheme using Synopsys
Test Technologies Supporting Tools DFTCompiler Scan Insertion SoCBIST : DBIST BIST Insertion BSD Architect Boundary Scan Insertion SoCBIST : SoCTest Wrapper Insertion TetraMax ATPG Copyrightⓒ2003

8 (모듈18) 목차 DFTCompiler를 이용한 Scan 구조 삽입 Introduction
TetraMax ATPG를 이용한 테스트 패턴 생성 SoCbist를 이용한 bist 구조 삽입 SoCbist를 이용한 wrapper 구조 삽입 Copyrightⓒ2003

9 Scan Testing for SoC Core
Sequential element에 대한 controlability와 observability의 확보 Normal mode / test mode Primary Outputs Inputs F/F Core Primary Outputs Inputs F/F SCAN IN SCAN OUT MODE MUX Core Copyrightⓒ2003

10 (모듈18) DFT Compiler DFT Compiler는 gate 수준의 회로에 대하여 scan 구조를 삽입함으로써 순차 회로에 대한 테스트를 가능하게 한다. Copyrightⓒ2003

11 Read Input Files 사용할 library와 scan을 삽입하고자하는 gate 수준의 파일을 읽는다.
dc_shell> read target_library dc_shell> read mydesign.v –format verilog Copyrightⓒ2003

12 Scan Ready Synthesis Scan chain을 삽입할 수 있도록 합성한다.
Scan을 위해 사용되는 flip-flop의 종류와 full scan 및 partial scan의 사용여부를 결정한다. 제공하는 scan flip-flop은 multiplexed flip-flop, clocked flip-flop, LSSD등이다. dc_shell> current_design design_name dc_shell> set_scan_configuration –style \ multiplexed_flip_flop dc_shell> set_scan_configuration –methodology full_scan dc_shell> compile -scan Copyrightⓒ2003

13 Set Test Clock & Scan Signals
Scan chain과 관련된 입출력 port를 지정한다. dc_shell> create_test_clock –period 100 –waveform \ {40, 60} find(port, “clk”) dc_shell> set_scan_signal test_scan_in –port si_name dc_shell> set_scan_signal test_scan_out –port so_name dc_shell> set_scan_signal test_scan_enable –port se_name Copyrightⓒ2003

14 Scan Specification & Preview
사용할 scan chain의 개수를 지정한다. Scan의 specification과 관련된 사항을 검사함으로써 삽입될 scan에 관한 정보를 확인한다. dc_shell> set_scan_configuration –chain_count 1 dc_shell> preview_scan Copyrightⓒ2003

15 Scan Chain Synthesis & Check
Design에 존재하는 scan cell을 앞서 설정한 내용에 맞추어 scan chain으로 구성한다. Scan design rule에 적합한 design인지 검사한다. Scan cell의 개수와 같은 design에 대한 정보를 확인할 수 있다. dc_shell> insert_scan dc_shell> check_test Copyrightⓒ2003

16 Write Out Files Scan을 삽입한 verilog netlist를 저장한다.
spf(Stil Protocol file)은 ATPG를 위해 필요하다. dc_shell> write –format verilog –hierarchy –output my_scan.v dc_shell> write_test_protocol –format stil –out my_scan.spf Copyrightⓒ2003

17 (모듈18) 목차 TetraMax ATPG를 이용한 테스트 패턴 생성 Introduction
DFTCompiler를 이용한 Scan 구조 삽입 TetraMax ATPG를 이용한 테스트 패턴 생성 SoCbist를 이용한 bist 구조 삽입 SoCbist를 이용한 wrapper 구조 삽입 Copyrightⓒ2003

18 Automatic Test Pattern Generation
ATPG(Automatic Test Pattern Generation)는 테스트 대상이 되는 회로를 통하여 검출하고자 하는 고장 모델에 대한 적합한 테스트 패턴을 추출하는 과정이다. 조합회로(combinational circuit)에 대해서는 바로 ATPG 과정을 통하여 높은 고장 검출률을 보장하는 패턴을 얻을 수 있으나, 순차회로(sequential circuit)에 대해서는 DFTCompiler를 통하여 scan 구조를 삽입한 후 ATPG를 수행하여야 충분한 고장 검출률을 얻을 수 있다. ATPG Tests Circuit Fault Model Set Copyrightⓒ2003

19 ATPG by TetraMax Tetramax는 회로의 고장 유무를 판단할 수 있는 테스트 패턴 생성 과정인 Automatic Test Pattern Generation를 지원한다. 이 과정의 주요 목적은 가장 적은 개수의 테스트 패턴을 통하여 사용자가 요구하는 가장 높은 고장 검출률을 보장하는 것이다. Copyrightⓒ2003

20 A Simple TetraMax Flow Copyrightⓒ2003

21 TetraMax Main Window Command toolbar GSV toolbar
Graphical Schematic Viewer Transcript Window Command Line Copyrightⓒ2003

22 Read Input Files 사용할 library와 design 파일을 읽는다.
Tetramax는 .db 형태의 library가 아닌 verilog format의 library를 받아들인다. BUILD> read netlist target_library BUILD> read netlist my_design.v Copyrightⓒ2003

23 Build Model ATPG를 수행하고자하는 design의 이름을 정한다.
Design에 포함된 scan chain의 정보를 입력한다. BUILD> run build_model top_module_name BUILD> add clock 0 clk BUILD> add scan enable 1 test_se Copyrightⓒ2003

24 Run DRC 앞서 DFTCompiler를 통해서 추출했던 .spf 파일을 통해 design rule check를 수행한다.
이를 통하여 ATPG를 수행함에 있어서 필수적인 테스트 동작시의 회로의 동작이 입력된다. BUILD> run drc filename.spf Copyrightⓒ2003

25 Run ATPG ATPG를 통하여 검출하고자하는 고장 및 수행 시간, 고장 검출률 등의 제한 사항을 입력한다.
BUILD> set atpg –merge medium BUILD> set faults –model stuck BUILD> add faults –all BUILD> run_atpg –auto 1. Copyrightⓒ2003

26 Review Results ATPG를 수행한 결과를 추출한다.
검출 가능한 고장의 개수와 고장 검출률, 테스트 패턴의 개수 등의 정보를 확인할 수 있다. BUILD> report_summaries Copyrightⓒ2003

27 Compress 앞서 얻어진 테스트 패턴을 압축한다.
앞서 얻어진 테스트 패턴 중에는 중복되는 고장을 검출할 수 있는 테스트 패턴이 다수 포함되어 있다. 따라서 패턴 압축 과정을 통하여 동일한 고장 검출률을 보장하는 최소의 패턴을 추출한다. BUILD> run pattern_compression 20 BUILD> report_summaries Copyrightⓒ2003

28 Save Patterns 생성된 테스트 패턴을 보기 위해서는 다음을 수행한다.
생성된 패턴을 파일로 저장한다. 지원되는 포맷은 WGL(Waveform Generation Language)와 STIL(Standard Test Interface Language)가 있다. 생성된 패턴을 verilog 포맷으로 저장하여 시뮬레이션을 통해 검증할 수 있다. BUILD> report patterns -all BUILD> write pattern ~.wgl(stil) –format WGL(STIL) BUILD> write pattern ~.v –format verilog Copyrightⓒ2003

29 (모듈18) 목차 SoCbist를 이용한 bist 구조 삽입 Introduction
DFTCompiler를 이용한 Scan 구조 삽입 TetraMax ATPG를 이용한 테스트 패턴 생성 SoCbist를 이용한 bist 구조 삽입 SoCbist를 이용한 wrapper 구조 삽입 Copyrightⓒ2003

30 BIST(Built-In-Self-Test)
Test Pattern Generator Test Response Analyzer BIST Controller BIST는 ATE가 수행해야 할 테스트 패턴의 입력과 결과의 분석을 칩에 내장된 장치를 통해서 수행한다. ATE는 테스트 대상 회로에 대한 다양한 정보를 저장하고 있어야 하므로, 이에 대한 메모리의 오버헤드가 크다. 이러한 문제는 다수의 코어를 내장하고 있는 SOC에서는 더욱 커지므로, 이에 대하여 효과적인 테스트 방안으로 BISt는 각광받고 있다. 따라서 ATE와 BIST의 역할을 적절히 분담하는 다양한 방안과 효과적인 BIST 적용을 위한 다양한 연구가 진행되고 있다. Copyrightⓒ2003

31 SoCBIST : DBIST Test-ready core로부터 테스트 관련 정보를 파악하여 BIST-ready core를 추출한다. BIST-ready core에 실제 BIST 구조를 삽입한다. Copyrightⓒ2003

32 Creating a BIST-Ready Design
Copyrightⓒ2003

33 Read and Link Test-ready Design
BIST를 삽입하고자 하는 대상 회로를 읽는다. 회로의 top_module을 지정한다. dc_shell> read –format db my_design.db dc_shell> link dc_shell> current_design my_top Copyrightⓒ2003

34 Test Clock 생성 Clock을 생성한다.
dc_shell> create_test_clock my_clock –waveform {45 55} Copyrightⓒ2003

35 BIST 삽입을 위한 구성 BIST와 wrapper를 삽입하기 위한 명령
SoC에서 BIST를 삽입하려면 외부 core에 대한 완전한 isolation이 이루어져야하므로, wrapper의 구성이 필요하다. dc_shell> set_dft_configuration –core_wrapper -bist dc_shell> set_core_wrapper_configuration \ –dedicated wrapper_cell WC_D1 \–default_safe_state 0 dc_shell> set_bist_configuration –bist_ready Copyrightⓒ2003

36 Check Design Rules Test design rule을 검사한다. BIST design rule을 검사한다.
삽입될 scan 구조를 확인한다. dc_shell> check_dft dc_shell> check_dft -bist dc_shell> preview_dft Copyrightⓒ2003

37 테스트 구조의 삽입 테스트 포인트를 삽입하고, X-propagation을 보정한다. dc_shell> insert_dft
Copyrightⓒ2003

38 Check Design Rules Wrapper가 삽입되었으므로, design rule을 check하기 전에 test mode를 INTEST로 변경한다. Test design rule을 검사한다. BIST design rule을 검사한다. dc_shell> current_test_mode wrp_if dc_shell> check_dft dc_shell> check_dft -bist Copyrightⓒ2003

39 Write Out Files 최종적으로 생성된 BIST-ready netlist와 test model을 저장한다.
dc_shell> write –output mydesign.db dc_shell> write_test_model –output my_test_model.db Copyrightⓒ2003

40 Inserting the BIST Controller and Reconfiguring Scan Chain
Copyrightⓒ2003

41 Specify Current design을 지정하고 필요한 변수를 지정한다.
dc_shell> current_design my_top dc_shell> test_stil_netlist_format = verilog Copyrightⓒ2003

42 BIST 설정 BIST controller의 삽입을 위한 설정 BIST controller의 type을 선택한다.
dc_shell> remove_dft_configuration dc_shell> set_dft_configuration -bist dc_shell> set_bist_configuration –integration –type dbist dc_shell> set_bist_configuration –integration –type xdbist Copyrightⓒ2003

43 Check Design Rules Test design rule을 검사한다. 삽입될 scan 구조에 대한 확인한다.
dc_shell> check_dft dc_shell> preview_dft Copyrightⓒ2003

44 BIST controller 삽입 삽입된 controller를 확인한다. dc_shell> insert_dft
dc_shell> report_test -bist Copyrightⓒ2003

45 Write Out Files Controller가 삽입된 netlist를 저장한다.
Verilog 및 STIL 파일을 저장한다. dc_shell> write mydesign.db dc_shell> write –format verilog –hierarchy –output \ my_design.v dc_shell> write_test_protocol –format stil –test_mode \ BIST_Mode –output top_scan.stil Scan_Mode –output scan.stil Controller_Mode –output ctrl.stil Copyrightⓒ2003

46 (모듈18) 목차 SoCbist를 이용한 wrapper 구조 삽입 Introduction
DFTCompiler를 이용한 Scan 구조 삽입 TetraMax ATPG를 이용한 테스트 패턴 생성 SoCbist를 이용한 bist 구조 삽입 SoCbist를 이용한 wrapper 구조 삽입 Copyrightⓒ2003

47 Test Access for SoC core IEEE P1500 Wrapper를 이용한 테스트 접근 TAM
Test controller core Scan Chain pi po Scan Chain SoC 내부에 존재하는 코어 수준의 테스트 접근을 위하여 현재 IEEE P1500 표준 제정이 진행중이다. 이 표준안은 현재 필수적인 테스트 구조에 대한 표준을 지정하고 있다. 즉 SoC 내부의 단일 코어 수준에서 보면 코어에 존재하는 스캔 체인 및 wrapper라 명명된 외부와의 Acess 및 isolation을 위한 테스트 접근 구조를 지정하고 이외 테스트 수행에 필수적인 bypass 및 instruction register등을 제안한다. 이를 전체 SoC 수준으로 확장하면, 칩 외부와 내부 코어간의 접근 경로를 위한 TAM(Test Access Mechanism)이라 명명된 구조와 전체 테스트를 관장하기 위한 Controller가 추가되는데, 이는 현재 User-define에 의해 구성되도록 하고 있다. 따라서 단일 코어 수준에서는 전체 SoC 수준에서 동작이 가능하도록 Wrapper 구조를 추가하는 과정이 필요하다. Bypass TDO TDI Instruction Register Copyrightⓒ2003

48 SoCBIST : SoCTest 테스트 구조가 삽입된 회로를 인식하여 이에 적합한 wrapper 구조를 삽입할수 있도록 준비한다. SoCTest를 통해서 SoC에 내장될 코어에 wrapper를 삽입함으로써 SoC 환경에서의 테스트 접근 및 isolation을 가능하게 한다. Copyrightⓒ2003

49 Inferring Test Models 회로내에 존재하는 테스트 관련 구조를 파악 테스트 용도로 사용되는 외부핀등을 지정
테스트 구조의 삽입은 없음 CTL 형태의 결과를 저장 DFTCompiler에 의한 단일 scan chain만을 인식 Copyrightⓒ2003

50 Test Model Inference Flow
Copyrightⓒ2003

51 Test Protocol 정의 Normal test mode를 정의한다. Functional mode 특성을 정의한다.
Clock, test control signal등을 정의 dc_shell> define_test_mode my_mission_mode –type Normal \ -existing dc_shell> create_clock CLK –period 100 –waveform {45 55} dc_shell> set_test_hold 0 TM Copyrightⓒ2003

52 Infer The Test Protocol
앞선 과정에서 정의한 functional test protocol을 추정 이 결과가 design rule에 적합한지 검사한다. Design rule에 위배되는 결과가 나오면, 이에 대하여 test protocol을 다시 정의하여 이를 수정한다. dc_shell> infer_test_protocol dc_shell> check_dft Copyrightⓒ2003

53 Scan Protocol 정의 Internal scan test mode를 정의한다.
dc_shell> define_test_mode my_internal_scan –type \ InternalTest -existin dc_shell> set scan_configuration –style \ multiplexed_flip_flop dc_shell> set_signal_type test_scan_en se dc_shell> set_signal_type test_scan_in si dc_shell> set_signal_type test_scan_out so Copyrightⓒ2003

54 Infer The Scan Protocol
이 결과가 design rule에 적합한지 검사한다. Design rule에 위배되는 결과가 나오면, 이에 대하여 test protocol을 다시 정의하여 이를 수정한다. dc_shell> infer_test_protocol dc_shell> check_dft Copyrightⓒ2003

55 Report & Write The Test Model
Test model은 CTL format으로 저장된다. dc_shell> report_test_model dc_shell> write -format db -hier -output mydesign_infer.db dc_shell> write_test_model -format db -output ~.ctldb dc_shell> write_test_model -format ctl -output ~.ctl Copyrightⓒ2003

56 Scan-Stitched Core Flow
Copyrightⓒ2003

57 Wrapper 구성 코어에 wrapper를 구성한다. 실제 wrapper와 scan cell을 삽입하기 전에 검사한다.
dc_shell> set_dft_configuration -core_wrapper dc_shell> preview_dft -test_wrapper all Copyrightⓒ2003

58 Wrapper cell 삽입 실제로 wrapper cell을 삽입하고 이를 체인으로 구성한다.
코어에 포함된 test model을 확인한다. dc_shell> insert_dft dc_shell> report_test_model Copyrightⓒ2003

59 Wrapper 삽입 검증 다양한 test mode에 대하여 이들이 모두 design rule에 위배되지 않는지 확인한다.
새롭게 생성된 design이 ATPG가 가능한지 확인한다. dc_shell> current_test_mode wrp-if dc_shell> check_dft Copyrightⓒ2003

60 Wrapped core 저장 dc_shell> write_test_model -format ctl -out \
mydesign_wwrpr.ctl dc_shell> write -f verilog -hier -out mydesign_wwrpr.v dc_shell> write -f db -hier -out mydesign_wwrpr.db Copyrightⓒ2003

61 Homework ISCAS ’89 벤치마크 회로중 s13207회로에 대하여 다음을 수행한다.
DFTCompiler를 이용하여 scan 구조를 삽입 SoCTest를 이용하여 wrapper 구조 삽입 TetraMax ATPG를 이용하여 테스트 패턴 생성 동일한 회로에 대하여 다음을 수행한다. SoCBIST를 이용하여 BIST 구조를 삽입한다. 제출할 결과물 최종 추출된 회로(HDL 코드) ATPG 결과물(테스트 패턴, 고장 검출률) Copyrightⓒ2003

62 (모듈18) 참고문헌 http://www.synopsys.com
P. Kurup, T. Abbasi, “Logic Synthesis Using Synopsys,” Seond Edition, KAP, 1997. Copyrightⓒ2003


Download ppt "SoC Test 실습 강성호 (연세대학교, 전기전자공학과) Copyrightⓒ2003."

Similar presentations


Ads by Google