TECHNICAL FEATURE Beginner Corner Boundary Scan Design(JTAG) 반도체제조공정을통하여반도체가생성되면불량제품을가려내는테스트과정이필요하다. 0.35um 이하의공정으로수십 ~ 수백만게이트가집적된반도체 VLSI 제품을테스트하는작업이그리간단한일은아니다. 따라서반도체분야에서항상이슈가되는것이바로 TEST 항목인데, 이글을통하여 ASIC 테스트중의하나인 Boundary Scan Design(JTAG) 을소개한다. 글 : 정용호주임 /C&S Technology ASIC 개발팀, www.cnstec.com hahahoho@cnstec.com JTAG 1985년에조직된 JTAG(Joint Test Action Group) 라는단체에서 PCB와 IC를테스트목적으로연구중이던 Boundary Scan 설계를 IEEE에서 1990년에표준화하였고, IEEE Std 1149.1이제정되었다. JTAG는다음과같은장점들을가지고있다. 신속한테스트로불량칩스크린 칩구조의복잡화 테스트핀간소화 Scan에서체크불가능한 function 체크가능 (scan과상이점 ) 그림 1. JTAG 블록다이어그램 ( 출처 : P12, Figure11, Synopsys BSD Compiler Reference Manual) 92
Boundary Scan Design(JTAG) JTAG 의특징 Boundary Scan은기기의 input과 Output 핀들에대해가능하게해주는기본 DFT(Design for Test) 구조이다. 그림1에서는 IEEE Std 1149.1에상응하는기본 Boundary Scan(JTAG) 의블록다이어그램을보여주고있다. Top Level에서 JTAG은다음과같은기본 IP 요소를가지고있다. TAP(Test Access Port): TDI, TDO, TMS, TCK, TRST(optional) TAP 컨트롤러 IR - Instruction Register TDR - Test Data Register Identification Register - IDCODE 다음으로 JTAG의요소들을살펴보자. 있는 state machine Synopsys사에서 IP 형태로제공 TDI, TAP 컨트롤러 output 시그널을이용하여 JTAG 컨트롤러와연계되어 JTAG part 제어 instruction 수행 Instruction -SAMPLE/PRELOAD: 현재 BSC에올라가있는데이터를샘플링하거나 BSC로데이터를프리로드하는기능을수행한다. -EXTEST: input 핀에연결되어있는 BSC는센싱기능을수행하게되고, output 핀에연결되어있는 BSC는그칩외부로연결되어있는장치로값을전달하게된다. -BYPASS: Bypass shift data for initialization. All BR 값은 1로세팅된다. Instruction Reg 초기화에도사용된다. 단, identification Reg를사용하지않을때사용. JTAG에필수적인 PIN Group를지칭하며, 종류는다음과같다. Chip의 identify 체크, Bypass 기능에의해초기화가능. 각 IP 혹은 JTAG 컨트롤러에 Auto detect 기능수행. TCK: Test Clock Input TMS: Test Mode Select TDI: Test Data Input TDO: Test Data Output TDR: Test Data Register TMS, TCK 시그널이용 JTAG 오퍼레이션에필요한 select, Shift DR, clock DR, Update DR, Shift IR, clock IR, Update IR 시그널 generation. JTAG 호환장치에대한모든오퍼레이션을정의및수행할수 그림 2. BC_1( 출처 : p29 Figure C-1.BC_1, SEC, Reference) Embedded World 93
TECHNICAL FEATURE BC_1: Input 및컨트롤시그널에사용되는 BSD 셀 (cell) BC_2 : Input 및컨트롤시그널에사용되는 BSD 셀 BC_4: Output에사용되는 BSD 셀 BSC: Boundary Scan 셀을지칭. Bit 데이터저장. BSR: BSC 연결되어생성된레지스터. TDI 데이터또는 TDO를통해서출력. JTAG 상태일때만동작. JTAG하면구조, 에뮬레이터, 그림 3. BC_2( 출처 : p29 Figure C-2.BC_2, SEC, Reference) JTAG 컨트롤러, PC 인터페이스, JTAG function 및많은부분이있다. 지금까지그중에서제한다. JTAG의일반적인구조및역할에관해서설명했다. ASIC -Cubic에서 black box 처리된 netlist를읽어에러체개발팀에게 PC 및 JTAG 컨트롤러와의연동보다는 JTAG 크후다시쓴다. 을어떻게엮고어떻게체크하는가에관해서더중점적으 4) Caution 로설명하는것이나을것같다. 그래서다음장부터는 -BSR 삽입전에 nand_tree 및 scan은 stitch 한다. JTAG synthesis 및 stitch에관해서살펴보자. -컨트롤시그널은 black box 처리하지않는다. -구조는 PAD+Core 형태로되어야한다. JTAG 흐름 A) 사용 Tool: Cubic, BSD Compiler, Test Compiler, Verilog_XL JTAG 연결 A) Netlist Generation. 1) Input: original netlist 2) Output: Top module 및 pad netlist 3) 방법 -JTAG과관련없는셀은 black box 처리한다. JTAG은 pad에 BSD 셀을연결시키고, TAP 컨트롤러,IR REG, ID REG 등 stitch 작업이므로 PAD, core top 및컨트롤시그널을제외하고모든셀을삭 B) Routing Order Generation. 1) Input: TOP 및 Core로분리된 Netlist. Pin file, User_bsr file. 2) Ouput: BSDC_jtag_pin.map, Portlist, Pad attribute file. 3) Tool: Cubic 4) 방법 -User_bsr coding 함. -BSR REG 순서결정 ( 핀파일에핀번호로기술 ). -Cubic에서 Netlist Read. -BSDC pin map 및 port list generation. 5) Generator 명령어 Generate_port_order [ -format ] < TESTC BSDC > 94
Boundary Scan Design(JTAG) [ -tdiinst ] < tdi_pad_instance name > {40 60} find(port, CLK ) [ -tdoinst ] < tdo_pad_instance name > -BSC 정보 ( 타이밍관점에서 asyn guide, ir_width는 [ -coreinst ] < core_udc_name > instruction 레지스터의 depth로 synopsys 제공 IP [ -fd1 ] < fd1_cell_name > 4) set_bsd_configuration -style asynchronous - [ -mx2 ] < mx2_cell_name > ir_width 4 -Pad Isoation 6) JTAG chain: TDI start, TDO end. set_bsd_compliance extest {A[5]} 7) Output file -Sti vector generation( 모든 block test vector -BSDC 핀맵 : JTAG 연결순서표기, 순서변경가능. generation) create_bsd_patterns -Pad attr: JTAG 포트에핀기술, 아날로그시그널이 a) reset Asynchronous reset mechanism을테스나테스트모든핀은체크하여삭제. 트하기위한 vector generation. 8) Caution b) Tdr 각각 instruction이테스트해당데이터레 -Routing이길지않도록 JTAG 핀배열체크. 지스터를선택하는것을테스트하기위한 vector -TDI, TMS, TRST는반드시 Pull up REG. c) Bsr BSR의 function을테스트하기위한 vector -TDO는반드시 Tri-state output. 발생. -아날로그시그널이나테스트모든핀은누락시킴. d) Dc_parametic boundary scan reg와 leakage 테스트를하기위한 vector generation. Voltage와 C) JTAG Insertion. I/O current level 측정가능. 1) Input: Netlist file, user_bsr, pin_map file, portlist, e) Leakage I/O에관해 leakage current 체크가능. portattr file, Synopsys IP, BSD compiler script f) Functional tap_controller, reset, tdr, bsr에해 2) Ouput: BSDL file, stimulus file, bsd cell insertion 당하는 vector generation. 된 netlist g) All 위의모든 vector generation. 3) Tool: BSD compiler 7) Caution. 4) 방법 -Read netlist define -Cubic을실행하면 BSD cell insertion script generation. -Script를디자인에맞도록수정작업. -BSD에서 script 실행. 5) Output file: BSDL(boundary scan description language) 보드레벨테스트진행 6) Script Explain -포트정의 set_bsd_signal tck CLK set_bsd_signal tdi A[0] create_clock -period 100 -waveform 그림 4. BC_4( 출처 : p30 Figure C-3.BC_4, SEC, Reference) Embedded World 95
TECHNICAL FEATURE 그림 5. JTAG flow( 출처 : p31, FigureE-1 Input and Output Files using SEC-ASIC JTAG Flow, SEC) -TAP signal Assign(set_bsd_signal) -Create clock 기술 (create_clock), 통상적으로 High speed가필요없기에 1Mhz로 vector generation. -JTAG code 기술. SEC DIAS에서 generation. 10진수표기.(set_bst_instruction) -BSD 삽입하지않을 point 기술 (set_bsd_linkage_ port) -BSDL, WGL file output 실질적인 JTAG insertion은여기서완료가된다. JTAG insertion 진행후에초기 netlist와 function적으로동일한지 Formality 체크와시그널 degradation을방지를위해서 buffer를삽입한다. SEC BSD 가이드를살펴보면 STD130에는 nid6을 fan out 20개마다 1개씩삽입하라고가이드하고있다. 각공정별 suggest 되는 buffer의종류가개수가다르므로 cubic을이용하여 buffer를삽입하게된다. 96
Boundary Scan Design(JTAG) 그림 6. TOP Module Structure( 출처 : p7, Figure3, SEC) D) Buffer 삽입이부분에서는 buffer 삽입하는방법만알면된다. 1) input: JTAG insertion된 netlist. Pin file. 2) output: BSRLIST, buffer 삽입된 netlist. 3) 방법 -insert_jbc -sdrnet inst -cdrnet inst -updatenet inset- modenet inst - tdiinst inst -tdoinst inst -tap inst -format BSDC -buf_location top inst 4) Caution: 라이브러리별로삽입 buffer 수가다름 - Hold time violation이발생시역으로 clock에 buffer 삽입 E) Compliance Check 1) 일반적인방법은아니지만, ARM JTAG insertion시체크. 2) buffer 삽입에서문제가된부분이없는지체크를하고, BSD rule 이 IEEE1149.1 기준으로문제가없는지체크한다. JTAG insertion시체크한사항이지만 ARM JTAG 및 buffer stitch시문제가되는부분을체크하기위함이다. F) Make full chip 1) 초기 black box 처리한모듈을삽입하여완전한모델로 generation 함. Full chip에서 formality 체크하여디자인에문제가없는지 function에문제가없는지체크함. Reference & Comments 1. 2005 C&S Technology ASIC Design Manual April 4, 2005, C&S Technology 2. Synopsys BSD Compiler Reference Manual Version V-2004.06, June2004 3. Boundary Scan Design and Verification Guideline for BSD-Compiler Application Note Revision 2 (2004.09.22) SEC 4. Cubic이라는 tool은 SEC의 tool로써, DRC check 및 delay calculation 기능. Embedded World 97