KR19980033338A - 레지스터 전송 레벨 회로용의 저비용 검사 방법 - Google Patents

레지스터 전송 레벨 회로용의 저비용 검사 방법 Download PDF

Info

Publication number
KR19980033338A
KR19980033338A KR1019970056424A KR19970056424A KR19980033338A KR 19980033338 A KR19980033338 A KR 19980033338A KR 1019970056424 A KR1019970056424 A KR 1019970056424A KR 19970056424 A KR19970056424 A KR 19970056424A KR 19980033338 A KR19980033338 A KR 19980033338A
Authority
KR
South Korea
Prior art keywords
scan
circuit
test
change
flip
Prior art date
Application number
KR1019970056424A
Other languages
English (en)
Other versions
KR100274178B1 (ko
Inventor
바타카리아수브라지트
데이수지트
Original Assignee
가네꼬히사시
닛본덴기가부시끼가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 가네꼬히사시, 닛본덴기가부시끼가이샤 filed Critical 가네꼬히사시
Publication of KR19980033338A publication Critical patent/KR19980033338A/ko
Application granted granted Critical
Publication of KR100274178B1 publication Critical patent/KR100274178B1/ko

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318583Design for test
    • G01R31/318586Design for test with partial scan or non-scannable parts
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318392Generation of test inputs, e.g. test vectors, patterns or sequences for sequential circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

풀 스캔 검사법의 주요 장점 즉, 조합 자동 검사 패턴 발생(ATPG : atomatic test pattern generation)을 이용할 수 있는 능력을 유지하면서, 풀 스캔 검사 방법들과 관련된 큰 면적 부담 및 긴 검사 적용 시간을 제거하는 대체 회로 검사 방법(H-SCAN)이 개시되어 있다. 이 방법은, 어떠한 RT-레벨 스펙에도 용이하게 적용될 수 있는 실용적인 검사 방법을 제공한다. 이 방법은, 스캔 플립플롭들의 이용을 필요로 하지 않으면서 회로의 하이-레벨 스펙에서 이용 가능한 레지스터들 및 다른 구조들의 기존의 접속들을 이용한다. 종래의 병렬 스캔 방법에서 그랬던 것처럼 병렬 스캔 체인들을 부가할 필요 없이, 회로 설계에 고유한 병렬성을 이용하여 단일의 클록 사이클 내에 다수의 플립플롭들을 로드시킴으로써 검사 적용 시간이 단축된다.

Description

레지스터 전송 레벨 회로용의 저비용 검사 방법
본 발명은 전자 회로를 검사하는 방법에 관한 것으로, 특히 풀 스캔 검사법(full-scan testing)과 관련된 큰 면적 부담 및 긴 검사 적용 시간(high area overhead and long test application time) 없이 조합 검사 패턴들(combinational test patterns)의 이용을 허용하는 순차 회로를 검사하는 방법에 관한 것이다.
최근의 순차 자동 검사 프로그램 발생 기술(ATPG : automatic test program generation)의 발전에도 불구하고, 순차 회로용의 검사 패턴 발생은 여전히 어려운 작업이며, 크기가 그다지 크지 않은 순차 회로용의 검사를 발생하는 데도 막대한 계산 자원들이 요구된다. 그에 따라, 순차 회로용의 검사 패턴 발생의 처리를 돕는 다양한 검사 능력 설계(DFT : design-for-testability) 방법들이 제안되어 왔다. (예를 들면, 1983년 1월 IEEE 회보 71(1)98-122에 개시되어 있는 T.W. Williams와 K.P. Parker의 Design for Testability - a Survey, 및 1977년 6월, 14차 ACM/IEEE 설계 자동화 학회 회보, 462-468페이지에 개시되어 있는 E. Eichelberger와 T. Williams의 논문, A Logic Design Structure for LSI Testability를 참조할 것).
검사 모드 중에 회로의 모든 플립플롭(FF)들이 제어 가능하고 관찰 가능하게 되는 풀 스캔 검사 방법(full scan testing method)은, 순차 회로를 검사용의 조합 회로로 변환시킴으로써 순차 ATPG 문제를 효과적으로 해결한다. 또한, 산업용 대형 회로를 처리할 수 있는 조합 ATPG 프로그램의 능력은, 풀 스캔 방법을 반영할 수 있는 상대적인 용이함과 더불어, 풀 스캔 검사법이 산업에 널리 이용되도록 하였다.
그럼에도 불구하고, 풀 스캔 방법은 2 가지의 심각한 결점 즉, 큰 면적 부담과 긴 검사 적용 시간의 결점을 갖고 있다. 풀 스캔 설계의 면적 부담은 플립플롭들을 스캔 플립플롭들로 대체시키는 필요성과, 스캔 클록 및 스캔 체인과 관련된 라우팅 및 버퍼링 부담(routing and buffering overhead)에 기인한다. 긴 검사 적용 시간은 스캔 체인을 통하여 검사 벡터들을 시프트시키는 필요성에 기인한다.
특히, 전형적인 고체적, 저비용 응용(high volume, low-cost applications)에 있어서, 풀 스캔 검사법과 관련된 20% 내지 30% 면적 부담은 경제적으로 비실용적일 수 있다. 마찬가지로, 그런 검사법과 관련된 연장된 검사 시간도 비실용적일 수 있다. 그에 따라, 종래 기술은 풀 스캔 검사 방법에 대한 실용 가능한 대체 방법을 찾는 데 상당한 노력을 기울여 왔다.
최근에는, 풀 스캔 방법의 주목되는 단점들을 극복하려는 시도로 몇 가지 부분 스캔 기술들이 개발되었다. 예를 들면, 1990년 4월 컴퓨터에 관한 IEEE 회보 39(4):544-548에 개시되어 있는 K.T. Cheng과 V.D. Agrawal의 A Partial Scan Method for Sequential Circuits with Feedback, 1990년 11월 컴퓨터 이용 설계에 관한 국제 학회 회보 322-325페이지에 개시되어 있는 D.H. Lee와 S.M. Reddy의 On Determining Scan Flip-Flops in Partial-Scan Designs, 및 1990년 9월 국제 검사 학회 회보 377-386페이지에 개시되어 있는 V. Chickermane과 J.H. Patel의 An Optimization Based Approach to the Partial Scan Design Problem을 참조할 것. 안타깝게도, 이들 종래의 부분 스캔 기술들은, 부분 스캔이 풀 스캔보다 충분히 적은 수의 스캔 플립플롭들을 갖도록 보장하는 효율적인 순차 자동 검사 패턴 발생(ATPG) 툴을 필요로 한다.
검사 적용 시간을 단축시키는 방법을 개발하려는 최근의 시도들은 그다지 성공적이지 못하였다. 그런 방법들은 전형적으로 병렬 스캔 체인들 내에 스캔 플립플롭들을 배치하는 문제 또는 스캔 체인들을 재구성하는 문제를 수반한다. (예를 들면, 1992년 3월 설계 자동화에 관한 유럽 학회 회보 366-370페이지에 개시되어 있는 B. Vinnakota와 N.K. Jha의 Synthesis of Sequential Circuits for Parallel Scan, 1993년 ICCAD 회보 710-715페이지에 개시되어 있는 S. Narayanan과 M.A. Breur의 Reconfigurable Scan Chains: A Novel Approach to Reduce Test Application Time을 참조할 것).
보다 최근에는, 1989년 4월 Solid-State Circuits에 관한 IEEE 저널에 개시된 Integration of Algorithmic VLSI Synthesis with Testability Incorporation이란 제명의 논문에서 C.H. Gebotys와 M.I. Elmasry에 의해 교시된 것과 같은 내장 자기 검사(BIST : Built-In-Self-Test)를 이용한 검사법과, 1994년 6월 컴퓨터 이용 설계에 관한 IEEE 회보 13(6) 777-785페이지에 개시된 Structural and Behavioral Synthesis for Testability Techniques란 제명의 논문에서 C.H. Chen, T. Karnik 및 D.G. Saab에 의해 교시된 것과 같은 순차 ATPG 방법 모두에 대하여 검사 가능한 회로를 용이하게 발생시키기 위한 동작 레벨 설계 및 합성 방법들(behavioral level design and synthesis approaches)이 제안되었다.
안타깝게도, 종래의 하이-레벨 DFT/합성 방법들은, 부분 스캔, 순차 ATPG 또는 BIST와 같은 하나의 선택된 DFT/검사 방법에 대해서만 검사 가능한 회로를 생성한다. 또한, 그 방법들은, 데이터 경로에서 유력한 기능 유닛으로의 특징이 있는 프로세서 및 DSP 필터 설계와 같이, 데이터플로/산술(data-flow/arithmetic) 중심의 설계에 대해서만 적용 가능하다.
그에 따라, 조합 검사 패턴들과, 최소의 검사 하드웨어를 필요로 하는 하이 레벨 회로 사양을 이용하고, 풀 스캔 또는 병렬 스캔과 비교하여 검사 적용 시간을 상당히 단축시키며, 단순히 단일의 검사 방법에 대해서만 검사 가능한 특정의 검사 용이한 회로를 발생시키지 않는 회로 검사 방법에 대한 필요성이 계속적으로 존재한다.
본 발명은, 풀 스캔 검사법의 주요 장점 즉, 조합 ATPG를 이용할 수 있는 능력을 유지하면서, 단점들, 특히, 풀 스캔 방법과 관련된 많은 면적 부담과 긴 검사 적용 시간을 제거하는 대체 검사 방법(H-SCAN)을 제공한다.
H-SCAN 방법은 어떠한 RT-레벨 사용에도 용이하게 적용될 수 있는 실용적인 검사(DFT + ATPG) 방법을 제공한다. H-SCAN은, 스캔 플립플롭들의 이용을 필요로 하지 않으며, 회로의 하이-레벨 사양에서 이용되는 레지스터와 다른 구조들과의 기존의 접속들을 이용하여 조합 검사 패턴을 회로 플립플롭들에 로드시킨다.
종래의 병렬 스캔 방법에서 한 것처럼 병렬 스캔 체인들을 부가할 필요 없이 회로 설계에 고유한 병렬성(parallelism)을 이용하여 단일 클록 사이클 내에 다수의 플립플롭들에 로드시킴으로써 검사 적용 시간이 상당히 단축된다.
한정된 수의 출력 핀들을 갖는 회로의 경우에, H-SCAN은 병렬 스캔 방법에 비하여 검사 적용 시간을 상당히 단축시킨다. 특히, H-SCAN에 의하면, 플립플롭들의 내용을 병렬로 스캔 아웃하는 대신에 기존의 온칩 비교기들을 이용하여 플립플롭들에 포획된 검사 응답들이 분석되며, 그에 따라 적은 수의 출력 핀들을 가짐으로써 생기는 제약이 제거된다.
이하, 본 발명의 여러 실시예들의 구조 및 동작은 물론, 본 발명의 다른 특징 및 장점들을 첨부 도면을 참조하여 상세히 설명하겠다.
도 1은 GCD 회로의 동작을 위한 VHDL 코드를 도시하는 프로그램 리스트.
도 2는 GCD의 레지스터 전송 레벨(RTL) 구현을 도시하는 블록도.
도 3은 GCD 서브회로의 스캔 구현을 도시하는 블록도.
도 4는 본 발명의 교시 내용에 따른 GCD 서브회로의 H-SCAN 구현을 도시하는 블록도.
도 5는 본 발명의 교시 내용에 따른 GCD 회로의 H-SCAN 구현을 도시하는 블록도.
도 6의 (a)는 GCD 회로에 존재하는 병렬 접속 경로를 도시하는 접속 상태 그래프.
도 6의 (b)는 도 6의 (a)의 회로에서 생성된 H-SCAN 경로를 도시하는 도면.
도 6의 (c)는 도 6의 (a)의 회로에 대한 비트 레벨 H-SCAN 경로를 도시하는 도면.
도 7은 자동 판매기 change_maker 처리(Vendor change_maker process)의 예정된 동작을 위한 VHDL 코드를 도시하는 프로그램 리스트.
도 8은 change_maker 회로의 RTL 구현으로부터의 서브회로의 블록도.
도 9는 change_maker 회로에 대한 접속 상태 그래프.
도 10은 본 발명의 교시 내용에 따른 change_maker 회로를 위한 H-SCAN에 의해 생성된 체인들을 도시하는 블록도.
도면의 주요 부분에 대한 부호의 설명
C3, C17, C42, C22, C16 : 비교기
C23 : 감산기 유닛
310, 330, 350, 370 : 멀티플렉서
300, 320, 340, 360 : 플립플롭
400, 430, 440 : OR 게이트
420 : AND 게이트
이하, 도면들을 참조하여 본 발명의 바람직한 실시예를 설명하겠으며, 다음 설명 중에 수 개의 도면이 동시에 참조될 수도 있다.
도 1을 참조하면, GCD 회로에 대한 동작 기술(behavioral description)을 VHDL 코드로 도시하고 있다. 이 기술(description)은 2개의 16비트 수 xin과 yin의 최대공약수(GCD : greatest commondivisor)를 계산하는 방법을 상술한다. 이 동작 스펙(behavioral specification)은 도 2에 도시된 것과 같은 RT 레벨 스펙으로 합성된다.
동작 스펙 내의 모든 동작은 RTL 회로 내의 함수 유닛 상에서 실행된다. X 및 Y와 같은 레지스터들은 산술 기술 내의 변수들의 중간값들을 저장하는 데 이용된다. 따라서, RTL 기술에서 X에 대응하는 레지스터는, 회로 입력 XIN, 레지스터 Y, 및 레지스터 Y, 및 감산 동작이 구현되는 감산기 유닛(c23)의 출력으로부터의 입력들을 가진다.
이들 입력들은 레지스터 X의 입력에서 멀티플렉서 트리(multiplexor tree)를 이용하여 선택된다. 멀티플렉서 트리는 레지스터 X 자신으로부터의 입력을 가진다. 이는, 특정 클록 사이클들에서, X는 다른 3개의 소스로부터 할당되지 않으며, 그 값은 나중의 클록 사이클들에서 이용되도록 유지될 필요가 있기 때문이다. 회로는 16 비트 출력 OUTPUT, 및 1 비트 출력 RDY를 가진다. 출력 OUTPUT는, RDY 출력이 하이 레벨이 될 때 입력들 XIN 및 YIN의 최대공약수(GCD)의 값을 취한다.
예로서, 종래의 풀 스캔 방법을 이용하여 GCD 회로를 검사하기 위해 생기는 부담에 대해 먼저 보자. 예를 설명하기 위하여, 도 2의 GCD 회로의 서브회로를 보자. 도 3에 예의 서브회로가 도시되어 있는데, 풀 스캔을 위하여 필요한 변형/부가가 행하여졌다. 서브회로는 본래의 회로 내의 레지스터들 X 및 Y 각각의 (16개 플립플롭들 중) 2개의 플립플롭들 및 대응하는 1 비트 멀티플렉서들을 갖고 있다.
스캔 구현은 다음의 스캔 체인: (scanin → x0→ y0→ x1→ y1→ scanout)을 생성한다는 것을 알 수 있다. 체인은, 체인의 입력으로서 scanin을 주입력으로 하고, 체인의 출력으로서 scanout을 주출력으로 하여, 멀티플렉서들(310, 330, 350, 370)에 의해 접속된 회로 내의 4개의 플립플롭(300, 320, 340, 360) 모두로 이루어진다.
test 입력이 하이 상태가 되면, 플립플롭들은 시프트 레지스터로서 동작을 시작하여 scanin 입력을 이용하여 검사 패턴을 시프트 인(shift in)하는 데 이용될 수 있다. 검사 벡터를 회로에 인가하기 위하여, test 신호는 로우 상태가 된다. 그 후, test 입력을 하이 상태가 되게 함으로써 플립플롭에 의해 포획된 회로 응답은 scanout 핀을 통하여 시프트 아웃(shift out)된다.
그런 스캔 방식은 단점이 많다. 첫째, 회로 내의 68개 플립플롭들 각각은 입력에서 멀티플렉서와 함께 통상의 플립플롭의 기능을 보이는 스캔 플립플롭에 의해 대체되어야 한다. 둘째, 스캔 체인과 test 핀을 스캔 플립플롭들 내의 68개 멀티플렉서들에 접속하기 위해 별도의 라우팅(routing)이 요구된다. 마지막으로, 실제 구현에서는, test 신호의 높은 팬아웃(fanout) 때문에 test 핀과 멀티플렉서 입력들 사이에 버퍼들이 부가되어야 한다.
표 1에 도시된 결과들에서 알 수 있듯이, GCD 회로에 풀 스캔을 반영하기 위한 면적 부담은 대략 17%이며 검사 적용 시간은 매우 길다. 또한, GCD에서의 모든 결함을 검사하기 위해 조합 검사 패턴 발생기가 이용되어 260개의 패턴을 발생시켰다. 회로에는 68개 플립플롭이 있기 때문에, 각 패턴을 플립플롭들에 로드시킨 다음 검사 패턴을 인가하기 위해 69개의 클록 사이클이 요구된다. 이 회로를 검사하기 위해 요구되는 클록 사이클의 총수는 18007개로 계산될 수 있다.
RTL 회로 내의 기존 경로들을 이용함으로써 상기 단점들이 상당히 감소되거나 제거될 수 있다. 상술한 바와 같이, 스캔 구현은 플립플롭들로 패턴들을 시프트 인하고 플립플롭들로부터 시프트 아웃하는 데 사용될 수 있는 멀티플렉서들을 통하여 스캔 체인들 내의 플립플롭들을 접속시킨다.
도 3에서 이용된 GCD의 동일한 서브회로의 H-SCAN 구현인 도 4에 도시된 회로를 생각해 보자. H-SCAN 때문에 부가된 것은, 진한 선으로 도시된 4개의 게이트(400, 410, 420, 430) 뿐이다. 멀티플렉서들을 통과하는 다음의 경로들은 회로 내에 기존하는 것임에 주목하자.
YIN0→ Y0→ X0; 및
YIN1→ Y1→ X1
YIN0과 YIN1은 입력들이기 때문에, X0과 X1이 주출력들이라고 가정하면, 본래 회로 자체 내의 2개의 병렬 스캔 체인용으로 필요한 기본 구조가 존재한다. 도 4로부터 당 기술 분야의 숙련자라면 알 수 있듯이, 이들 2개의 체인이 검사 모드에서 검사 패턴을 스캔 인(scan in)하도록 하기 위하여 test 입력과 더불어 2개의 AND 게이트와 2개의 OR 게이트가 부가되어야 한다.
상술한 바와 같이 검사 패턴들을 스캔 인하는 데 이용될 수 있는 수 개의 병렬 경로들이 GCD 회로 내에 이미 존재한다. 분명히 말하여, 2개의 레지스터 사이에 경로가 존재한다고 할 경우, 멀티플렉서들만을 통과하는 경로를 말하는 것이다. 도 2의 GCD 회로 내의 레지스터들 사이의 경로들은 도 6의 (a)의 접속 상태 그래프에 의해 도시된다. 예를 들어, 도 2에서, 16 비트 입력 YIN은 2개의 16 비트 멀티플렉서들을 통하여 16 비트 레지스터 Y에 접속된다.
이 경로에 대응하여, 도 6의 (a)의 접속 상태 그래프에는 노드들 YIN과 Y 사이에 에지가 있다. 도 5는 완전한 RT 레벨 GCD 회로와 함께, 검사 중에 병렬 경로들을 제어하도록 본 출원의 방법에 의해 검사 회로가 거기에 부가된 상태를 도시하고 있다. 도 6의 (b)에는 GCD 회로 내에 검사 패턴들을 스캔 인하는 데 이용되는 경로들의 개념도가 도시되어 있고, 도 6의 (c)에는 그 경로들이 비트 레벨로 도시되어 있다.
몇 가지 점을 주목할 필요가 있다. 첫째, 도 6의 (b)에 도시된 경로들은 1보다 큰 비트폭을 가질 수 있다. 또한, YIN[15-0]으로부터 Y[15-0]으로의 화살표가 도시되어 있기 때문에, 그것은 16개의 병렬 경로들에 대응한다. 마찬가지로, H[3-1]으로부터 STATE[2-0]으로 도시된 화살표는 3개의 병렬 경로들에 대응한다.
둘째, 본래의 회로에는, 도 6의 (a)의 접속 상태 그래프에 도시된 바와 같이, 도 6의 (b)의 많은 경로들에 대응하는 하나의 경로가 있다. 예를 들면, GCD 회로에는 YIN으로부터 Y로의 하나의 경로가 있다. 사실, 본래 회로에서 멀티플렉서들만을 통과하는 대응하는 경로들이 없는 도 6(b)의 화살표들은, H[15-4]로부터 OUTPUT[15-4], H[3-1]로부터 STATE[2-0], H[0-0]으로부터 RDY[0-0], STATE[2-0]으로부터 OUTPUT[3-1], 및 RDY[0-0]으로부터 OUTPUT[0-0]이다.
GCD 회로에서 이들 경로들을 생성하기 위해서는, 도 5에 도시된 바와 같이 19개의 1 비트 멀티플렉서들이 부가되어야 한다. 따라서, 이 H-SCAN 방법은 RT 레벨 회로에 존재하는 멀티플렉서들을 통한 경로들을 이용하여 RT 레벨에서 병렬 스캔 체인들을 생성하며, 필요할 경우 여분의 멀티플렉서들만을 부가한다.
면적 부담 저감
이 시점에서, 본 출원의 H-SCAN 방법을 이용하는 데서 생기는 면적 부담을 분석하고, 종래의 SCAN 구현과 비교하는 것이 유익하다. 당 기술 분야의 숙련자라면 면적 부담에 2개의 성분 즉, 부가되어야 하는 멀티플렉서들에 기인하는 부담과, 검사 모드 중에 멀티플렉서들을 제어하기 위해 부가되어야 하는 AND/OR 게이트들에 기인하는 부담이 있다는 것을 금방 알 수 있을 것이다.
종래의 스캔 방식과 같이, H-SCAN은 플립플롭들 사이에 스캔 경로들을 생성한다. 그러나, 종래의 스캔 방식과는 달리, 이 방법은 RT 레벨 정보를 이용하여 회로 내에 기존하는 멀티플렉서들을 통하여 플립플롭들 사이의 경로들을 재사용한다. 그런 경로가 존재하지 않을 경우, H-SCAN은 멀티플렉서를 도입한다.
도 5로부터 알 수 있듯이, H-SCAN은 GCD용으로 19개의 1 비트 멀티플렉서를 도입하였다. 이것은 풀 스캔용으로 68개 필요한 것과 뚜렷이 대비되는 것이다. 이는, 동일한 스캔 체인 상에 있도록 선택된 2개의 플립플롭들 사이에 멀티플렉서들을 통한 경로가 있는 경우, H-SCAN은 멀티플렉서들을 도입하지 않고, 다만 검사 모드 중에 경로를 제어하기 위해 제어 로직 내에 게이트들을 도입하기만 하는 사실에 일부 기인한다.
예를 들어, 도 5에서 2개의 16 비트 멀티플렉서들을 통한 YIN으로부터 Y로의 16 비트 병렬 경로를 생각해 보자. 검사 중에 멀티플렉서들을 제어하기 위하여, 2개의 OR 게이트가 도입된다. OR 게이트의 입력들 중 하나는 멀티플렉서로의 본래의 제어 신호이며, 다른 하나의 입력은 test 입력이다. test가 하이 상태인 경우, YIN의 모든 16 비트들이 Y에 병렬로 접속된다.
알겠지만, 2개의 16 비트 멀티플렉서들 각각은 단일의 제어 신호를 가진다. 따라서, 16 비트 멀티플렉서들 각각에 대해 하나의 OR 게이트만이 필요하다. 종래의 스캔 방법이라면 Y에 대응하는 16개의 플립플롭들을 16개의 스캔 플립플롭들로 대체할 것이며, 여기서 각각의 스캔 플립플롭은 통상의 플립플롭과 멀티플렉서를 포함한다.
면적 부담 분석과 관련된 숨겨진 비용은 스캔 구현 방식에 의해 도입되는 여분의 배선과 관계 있다. 구체적으로, 본래의 회로에 경로가 이미 존재하는 YIN과 Y에 대응하는 플립플롭들을 생각해 보자. 종래의 스캔의 경우에는, Y에 대응하는 16개의 플립플롭들을 16개의 스캔 플립플롭들로 대체할 필요가 있을 뿐만 아니라, 스캔 체인 내의 각각의 스캔 플립플롭을 접속하는 망들을 라우팅(routing)시킬 필요가 있으며, 또한 16개의 스캔 플립플롭들 내의 1 비트 멀티플렉서들 각각의 제어 입력에 test 입력을 라우팅시킬 필요가 있다.
그와 대비하여, 본 출원의 요지인 H-SCAN 방법에서는, test 입력은 2개의 OR 게이트에만 라우팅되어야 한다. OR 게이트들의 출력들은 본래 회로 내의 멀티플렉서들에 대한 제어 신호를 대체한다. 따라서 OR 게이트의 출력을 멀티플렉서들에 라우팅시키기 위한 여분의 면적 부담이 없다. 놀랍게도, 풀 스캔 구현에서의 17%에 비하여, H-SCAN의 최종 레이아웃 면적 부담은 5%일 뿐이다.
검사 적용 시간 부담
도 6에 도시된 바와 같이, H-SCAN 방법에 의해 합성된 회로 내에 16개의 유효 스캔 체인들이 병렬로 존재한다. 그러나, 체인들 중 4개는 5의 길이를 갖는 반면, 나머지 12개는 4의 길이를 가진다. 불균형 체인들을 가진다는 것은, 플립플롭들에 로드시킬 때, 제1 클록 사이클에서, O3내지 O0의 값들이 YIN3내지 YIN0을 통하여 로드될 것이라는 의미이다. 따라서, 입력들 YIN15내지 YIN4는 제1 클록 사이클에서 이용되지 않을 것이다. 따라서, 병렬로 로드될 검사 데이터의 비트 수는 효과적으로 68÷5 즉, 13.6이다. 그러나, 종래의 스캔에 있어서 클록 사이클당 로드되는 1 비트와 비교하여 훨씬 크다.
정량적인 비교를 위하여, 종래의 풀 스캔 방법을 이용한 검사 적용 시간 및 본 출원의 H-SCAN 방법을 이용한 검사 적용 시간이 계산될 수 있다. 구체적으로, GCD 회로는 68개의 플립플롭들을 가진다. 종래의 스캔을 이용하여 각각의 검사 패턴을 로드시키기 위해서는, 68개의 클록 사이클이 필요하다. 검사 패턴을 인가하기 위해 하나의 클록 사이클이 필요하다. 마지막 검사 패턴이 인가된 후 플립플롭들을 플러시 아웃(flush out)시키기 위해 67개의 클록 사이클이 필요하다.
회로의 출력 수가 형성될 수 있는 병렬 스캔 체인 수를 제한하는 경우, 검사 적용 시간을 상술된 것에 비하여 더 단축할 수 있다. 이것은, 도 7에 그 VHDL 동작 기술이 제시된 change_maker 회로에 의해 설명된다.
change_maker 회로는 자동 판매기(vending machine)용의 제어기를 형성하는 3개의 서브회로들 중 하나이며, 이 기술은 하나의 상태에서 다른 상태로의 전이 조건뿐만 아니라 어떤 상태(클록 사이클)에서 어떤 동작이 실행될 것인지를 상술한다. 예정표(schedule)의 각 상태에서의 동작들은 1 클록 사이클 내에 실행된다.
클록 입력과는 달리, change_maker 회로는, 총 26개의 입력 핀에 대하여 입력들 my_reset(1 비트), item_stb(1 비트), total(8 비트), price(8 비트), 및 num_coins(8 비트)를 가진다.
3개의 8 비트 내부 변수, dime_out, nickel_out, 및 int_change가 있다. 5개의 상태 s0내지 s4를 인코드하기 위해 3 비트를 필요로 하는 또 다른 내부 변수 state가 있다. 이들 내부 변수들 각각에 대응하여, RT 레벨 구현은 3개의 8 비트 레지스터와 하나의 3 비트 레지스터를 가진다. 또한, 4개의 1 비트 출력 각각에 대하여, 하나의 플립플롭이 있는데, 회로에는 총 31개의 플립플롭이 있다. 따라서, 회로에는 종래의 병렬 스캔 방식을 이용한 최대 4개(=minimum(18, 31, 4))의 병렬 스캔 체인이 있다.
도 8을 참조하면, 이 논의에 필수적인, change_maker용의 RT 레벨 회로의 성분은 비교기이다. 도 7에 도시된 change_maker의 VHDL 기술을 참조하면, 비교기 상에서 실행되는 비교 동작들은, (total price)(11행), (int_change 5)(31행), 및 (dime_out 45)(44행)이다.
그 3개의 동작들은, (변수 state에 의해 주어지는) 서로 다른 상태들 s0, s2, 및 s3에서 각각 실행되고, 따라서 결코 동일한 클록 사이클에서 동시에 실행되지 않기 때문에, 동일한 자원 상에서 실행되거나 또는 공유될 수 있다. 예정된 동작 기술에서는 price가 int_change와 전혀 비교되고 있지 않는다 하더라도, 비교기 공유는 그들을 동일한 비교기로의 입력들이 되게 한다.
도 9에는, change_maker 내의 레지스터들과 상술한 비교기의 접속 상태 그래프가 도시되어 있다. 화살표들은 하나 이상의 멀티플렉서들을 통한 접속들을 나타낸다. 예를 들면, 도 8로부터, price와 int_change는 2개의 멀티플렉서를 통하여 비교기에 접속되는 것을 알 수 있다. 멀티플렉서들을 통한 접속은, int_change로부터 비교기로의 화살표, 및 price로부터 비교기로의 또 다른 화살표에 의해 표현된다.
그러나, 도 10에 도시된 바와 같이, 회로가 4개의 출력을 가진다 하더라도, 회로 내에 기존하는 비교기를 이용함으로써 10개의 병렬 스캔 체인들을 가질 수 있다. 도 10에는 2개의 종래의 스캔 체인들이 있다.
(item_stb → state(2) ; → state(0) → sel_enable), 및
(my_reset → state(1) → change_stb → coin).
세 번째 체인은 다음 레지스터들 즉, (num_coins → dime_out → nickel_out → int_change → exact_change)를 구성한다. 증가된 스캔 체인(augmented scan chain)이라고 부르는 이 체인은 2 가지 두드러진 특징을 가진다. 첫째, 그것은 int_change와 exact_change의 사이에 하나의 비교기를 가진다. 둘째, num_coins로부터 int_change로의 체인은 8의 비트폭을 갖는 반면, 마지막 레지스터 exact_change는 단지 1의 비트폭을 가진다. H-SCAN 방법을 위하여 필요한 접속들 중에서, 8 비트 접속들(num_coins → dime_out → nickel_out)은 도 9의 접속 상태 그래프에 도시된 바와 같이 본래의 회로에 이미 존재한다.
체인으로의 입력 num_coins는 폭이 8 비트이기 때문에 레지스터들 dime_out, nickel_out 및 int_change 내의 플립플롭들은 병렬로 로드될 수 있다는 것을 알 수 있다. 1 비트 레지스터 exact_change에 로드시키기 위하여, int_change와 price가 동일한 비트 패턴들을 가질 때 '1'이고, int_change와 price가 상이한 비트 패턴들을 가질 때 '0'인 비교기 (=) 출력을 이용한다.
예로서, 회로 내의 고장(fault)을 검사하기 위하여 증가된 스캔 체인 내의 레지스터들에 다음의 패턴을 로드시켜야 한다고 가정하자.
dime_out = 10,
nickel_out = 100,
int_change = 1000,
exact_change = '1'
다음의 패턴들이 잇따른 클록 사이클들에서 입력들 num_coins 및 price에 인가되어야 하며, 여기서 'x'는 don't_care를 의미한다.
클록 사이클 num_coins price
1 00000000 xxxxxxxx
2 00001000 xxxxxxxx
3 00000100 xxxxxxxx
4 00000010 00000000
클록 사이클 1에서 num_coins에 로드된 패턴 0은 클록 사이클 4에서 int_change에 로드되고, price에 인가된 패턴 0과 비교되어 exact_change에 '1'을 로드시킨다.
exact_change에 '0'을 인가하기 위하여, 제4 클록 사이클에서, 패턴 1이 price에 인가될 수 있다. 8 비트 레지스터들 dime_out, nickel_out 및 int_change 각각은 1 클록 사이클 내에 로드될 수 있으며, exact_change도 로드시키는 데 1 클록 사이클을 필요로 한다. 따라서, 종래의 스캔에 있어서 필요한 25개의 클록 사이클 대신에, 25개의 플립플롭들을 로드시키는 데 총 4개의 클록 사이클이 필요하다.
레지스터 exact_change의 내용은 1 클록 사이클 내에 관찰될 수 있다. 그러나, dime_out은 8 비트 레지스터이기 때문에, 폭이 1 비트인 체인의 출력에서 1 클록 사이클 내에 그 내용을 관찰하는 것을 불가능하다. 마찬가지로, 8 비트 폭의 레지스터들 nickel_out 및 int_change의 내용들은 각각 1 클록 사이클 내에 관찰될 수 없다. 그러나, 검사 벡터를 인가한 후에 이들 레지스터의 기대치가 알려지기 때문에, 기대치들은 입력 price에 인가될 수 있으며, 비교기의 출력은 고장을 검출하도록 주출력에서 샘플링될 수 있다.
상기 4개의 패턴을 4개의 클록 사이클 내에 로드시킨 후에, 제5 클록 사이클에서 패턴이 회로에 인가된다고 가정하자. 이 검사 패턴에 대한 고장이 없는 회로의 응답은 다음과 같을 것이다.
dime_out = 1100010,
nickel_out = 100001,
int_change = 11010011,
exact_change = '1'.
그 후, 다음 3개의 클록 사이클에서 다음의 패턴들이 입력 price에 인가된다.
클록 사이클 num_coins price
6 xxxxxxxx 01100010
7 xxxxxxxx 00100001
8 xxxxxxxx 11010011
만일 상기 레지스터들 중 어느 레지스터에 포획된 회로의 응답이 고장이 없는 회로의 응답에 대응하지 않는 경우, 비교기의 출력은 '0'이 될 것이다. 비교기 출력은 exact_change를 통하여 관찰될 수 있기 때문에, 출력 exact_change가 '0'이면, 회로 내에 고장이 있다.
따라서, 회로의 기대 검사 응답을 입력들에 인가하고, 기존의 비교기들을 이용하여 칩 상에서 그것들을 비교하면, 1 클록 사이클 내에 8 비트 레지스터들에 포획된 고장이 검출된다.
통상의 스캔 방식에서 스캔 인 작업과 스캔 아웃 작업이 오버랩되는 것과 유사하게, 플립플롭들을 로드시키는 작업과 그것들에 포획된 회로 응답을 관찰하는 작업은 오버랩될 수 있다.
이 시점에서, 본 출원의 검사 방법인 H-SCAN의 전체 개관을 제시할 수 있다.
최소한의 스캔/증가된 스캔 체인들에 의해 RTL 회로를 발생
I. 접속 상태 그래프(connectivity graph)는, 지금부터 단순히 체인으로 부를 스캔 체인 또는 증가된 스캔 체인을 생성하는 데 이용될 수 있는 RTL 회로 내에 존재하는 소정의 경로들을 포착한다. 접속 상태 그래프는 다음과 같이 정의될 수 있다.
1. RTL 회로 내의 모든 변수에 대하여 그래프 내에 노드가 있으며, 여기서 변수는 레지스터, 입력, 또는 출력이다. clock 입력은 대응하는 노드를 갖고 있지 않다.
2. = 기능을 가지며, 그 입력들 중 하나는 회로 입력인 모든 비교기에 대하여 그래프 내에 노드가 있다.
3. 2개의 변수 사이에, 또는 변수와 비교기 사이에 RTL 회로 내에 멀티플렉서들만이 있는 경로가 있다면, 그래프 내에 2개의 노드 사이에 지향된 경로가 있다.
도 9에는 change_maker 회로에 대한 접속 상태 그래프가 도시되어 있다. 각 변수의 비트폭이 주어져 있다. 예를 들면, 변수 state의 비트폭은 3이며 그래프 내의 다른 어떤 변수에도 접속되어 있지 않다.
II. 그래프는 다수의 체인들을 구축하는 데 이용되며, 그에 따라 하나의 체인에는 모든 변수가 포함된다. 증가된 스캔 체인을 구축하는 경우, 비교기 출력은 그 출력이 주출력인 레지스터에 직접 접속된다. 스캔 체인들을 생성하는 동안에, 접속 상태 그래프 내의 노드들 간에 최소수의 접속들을 도입하는 동시에 최대수의 병렬 체인들을 생성하려는 모든 시도가 이루어진다.
III. 일단 스캔 체인들이 확인되면, 검사 구조들을 RTL 회로에 삽입하는 데 3개의 주요 단계들이 필요하다.
1. 회로에 test 입력을 부가한다.
2. 체인에 의해 요구되지만 본래 접속 상태 그래프 내에 존재하지 않는 모든 접속에 대하여, 멀티플렉서가 도입되며 test 입력은 멀티플렉서의 선택된 입력에 접속된다.
3. 접속 상태 그래프에도 존재하는 체인 내의 2개의 변수간의 모든 접속에 대하여, RTL 회로 내의 변수들 사이에 멀티플렉서들만 있는 경로가 있다. 검사 모드 중에 경로를 구동하는 멀티플렉서들에 대하여 제어 로직이 파생된다. 예를 들면, 도 4에서, YIN과 Y 사이의 2개의 멀티플렉서들에 대한 제어 신호들은 test 신호와 OR 연산된다. 부가된 제어는, 검사 모드에서, test가 하이 상태이고, YIN이 Y에 로드되도록 보장한다.
IV. RTL 회로가 검사 구조와 적소에서 재합성된 후, 당 기술 분야에 공지된 것들과 같은 게이트-레벨 조합 검사 패턴 발생기에 의해 조합 검사 패턴들이 발생된다.
증가된 체인들을 이용하는 경우, 검사 패턴들에 대한 조합 회로의 응답도 계산될 필요가 있다. 검사 응답은, 당 기술 분야에 또한 공지된 로직 시뮬레이션 툴(logic simulation tool)을 이용하여 획득되며, 검사 응답 패턴 세트(test response pattern set)로 불린다. 검사 패턴들 및 시뮬레이션 결과들은 고려 중인 회로에 대한 순차 검사를 발생시키는 데 이용된다.
V. 검사 방법에서의 마지막 단계는 조합 검사 패턴 세트 및 검사 응답 패턴 세트를 회로의 주입력들에 인가되는 순차 벡터들의 세트로 변환시킨다.
change_maker 회로에 있어서 이 단계를 설명하기 위하여, 도 10의 증가된 스캔 체인 내의 레지스터들인 dime_out, nickel_out, int_change 및 exact_change를 고려할 필요가 있다. 증가된 스캔 체인으로의 입력들은 num_coins 및 total이며, 체인 또한 비교기로 구성된다.
제1 클록 사이클에서, 도 10에 도시된 바와 같이 입력 num_coins에 패턴 0이 인가된다. 제4 사이클에서, 인가된 패턴은 레지스터 int_change에 시프트된다. 패턴 1은 제4 클록 사이클에서 입력 total에 인가된다. 검사 모드에서는, int_change 및 total이 비교기에 대한 입력들이기 때문에, 상기 패턴들은 사실상 비교기에 대한 입력들이며, 비교기의 출력에서 '0'을 발생시킨다.
그 '0'은 검사 패턴 1에 의해 요구되는 대로 제5 클록 사이클에서 exact_change에 로드된다. 패턴들 I1, NO1및 D1은 입력 num_coins에 인가되며, 제5 클록 사이클에 의해 레지스터들 int_change, nickel_out 및 dime_out에 시프트된다. 따라서, 제5 레지스터에 의해, 증가된 스캔 체인 내의 레지스터들은 검사 패턴 1에 의해 요구되는 대로 로드된다. 또한, 검사 패턴 1에 의해 요구되는 대로, 패턴들 T1및 NC1은 제5 클록 사이클에서 주입력들인 total 및 num_coins에 인가된다.
패턴들은 회로의 조합 부분에 인가되며, 응답은 회로 레지스터들에 포획된다. exact_change에 포획된 응답은 회로 출력에서 직접 관찰될 수 있다. 그러나, 레지스터들 int_change, nickel_out 및 dime_out에 포획된 응답들은 출력에서 직접 관찰될 수 없다.
다음은, 포획된 고장에 대해 int_change에 포획된 패턴을 분석하는 절차를 설명한다. 검사 패턴 1을 인가함으로써 레지스터 int_change에 포획될 것으로 기대되는 패턴은 I1 R이다. 만일 회로 내에 고장이 있고, 그 고장의 효과가 레지스터 int_change의 플립플롭에 포획된다면, int_change에 포획된 응답은 I1 R과 다를 것이며, 그렇지 않다면, 그 응답은 I1 R일 것이다. 레지스터 int_change에 고장이 포획되었는지를 검출하기 위해, 제6 클록 사이클에서 패턴 I1 R자체가 입력 total에 인가된다.
total 및 int_change는 검사 모드에서 비교기로의 입력들이기 때문에, 만일 int_change에 포획된 패턴이 I1 R이면, 비교기의 출력에서 '1'이 발생될 것이며, 그렇지 않다면, '0'일 것이다. 그 결과는 exact_change를 통하여 회로 출력에 전달되며, int_change에 고장이 포획되었는지를 판정하기 위해 제7 클록 사이클에서 관찰될 수 있다.
유사하게, nickel_out 및 dime_out에 대한 기대 응답들이 제7 및 제8 클록 사이클에서 입력 total에 인가된다. 그 기대 응답들은, 제7 및 제8 클록 사이클에서 각각 레지스터 int_change로 시프트되었을 nickel_out 및 dime_out에 포획된 응답들과 비교된다. 만일 제8 또는 제9 사이클에서 출력 exact_change에서 '0'이 관찰된다면, nickel_out 또는 dime_out 내의 응답은 각각 고장이 있을 것이다.
실험 결과
여기서는, GCD 알고리즘 및 상술한 자동 판매기에서의 change_maker 처리를 구현하는 2개의 RT-레벨 설계에 H-SCAN 검사 방식을 적용한 결과들을 요약한다.
공지된 하이-레벨 합성 툴(high-level synthesis tool)인 SECONDS를 이용한 동작 스펙들로부터 RT-레벨 설계들이 획득되었다. (예를 들면, 1994년 6월, 제31차 ACM/IEEE 설계 자동화 학회 회보 195-200페이지에 개시된 S. Bhattacharya, S. Dey, 및 F. Brglez의 Clock Period Optimization During Resource Sharing and Assignment를 참조할 것). 그 후, RT-레벨 회로들은 또 다른 공지의 합성 시스템을 이용하여 등가의 게이트-레벨 회로들로 합성된다. 표 3에는 결과로 생긴 GCD 및 change_maker 회로들의 특성들이 도시되어 있고, 표 4 및 표 5에는 검사 발생 결과들이 각각 도시되어 있다.
표 3에 도시된 결과를 참조하면, RT 레벨 부품들과, 게이트 레벨 부품들 면에서 회로의 사이즈가 제공되어 있다. 예를 들면, GCD 회로는 6개의 기능 유닛(functional units) 칼럼 FUs를 가진다. 6개의 FU들은 하나의 감산 유닛과, 16 비트폭의 데이터 입력들을 갖는 3개의 비교기, 및 2개의 1 비트 비교기 유닛을 구성한다. GCD 회로에는 178개의 1 비트 멀티플렉서들(Muxes 칼럼), 및 6개의 레지스터들(Reg 칼럼)이 있다. 레지스터들은 상이한 수의 플립플롭(FF)들을 가질 수 있다.
레지스터 Y는 16개의 플립플롭을 갖는 반면에, RDY는 1개만을 가진다. 모든 레지스터들에 대한 플립플롭의 총수는 68개(FFs 칼럼)인 반면에, GCD에 대한 게이트의 총수는 1189개(Gates 칼럼)이다.
change_maker 회로는 6개의 기능 유닛, 134개의 1 비트 멀티플렉서 및 8개의 레지스터를 가진다. 6개의 기능 유닛들은 2개의 감산 유닛과 8 비트폭의 데이터 입력들을 갖는 2개의 비교기, 및 2개의 1 비트 비교기 유닛으로 구성된다.
표 4 및 표 5를 참조하면, GCD 및 change_maker 회로 각각에 대해 풀 스캔 방식(FSCAN) 및 H-SCAN을 적용한 결과들이 도시되어 있다. 각각의 RT-레벨 설계에 대하여, 로우 ORIG는 스캔이 없는 본래의 회로를 보여주고, 로우 FSCAN은 공지의 툴을 이용하여 종래이 스캔 체인이 삽입된 풀 스캔 회로를 보여주며, 로우 HSCAN은 본 출원의 방법을 본래의 RT-레벨 회로에 적용함으로써 생성된 회로를 보여준다.
보고된 검사 하드웨어는 스캔 플립플롭들과 멀티플렉서들과 같은 로직을 포함할 뿐만 아니라, 상호접속(interconnect)들도 포함한다. 예를 들면, GCD의 풀 스캔 설계에서는, 68개의 스캔 플립플롭들을 하나의 스캔 체인에 꿰기 위하여 69개의 상호접속들이 필요하다. 또한, test 입력은 68개의 스캔 플립플롭들에 라우팅되어야 하며, 이는 여분의 68개의 상호접속들을 발생시킨다. 따라서, 풀 스캔 방식에 의해 총 137개의 상호접속들이 도입된다. 3개의 여분의 핀들은 scanin, scanout 및 test용이다. H-SCAN은 패턴들을 회로 플립플롭들에 로드시키고 언로드(unload)시키기 위하여 회로 입력 및 출력들을 이용하기 때문에, 하나의 여분 핀, test 핀만을 필요로 한다.
종래의 풀 스캔 구현에 기인하는 면적 부담과 본 출원의 방법에 기인하는 면적 부담의 차이를 증명하기 위하여, 각 버전에 대한 레이아웃 면적이 보고되고 있다. 구체적으로, 검사 면적 부담(Test Area Overhead) 칼럼은, 종래의 방식 및 제안된 방식을 구현함에 있어서, 액티브 및 배선 부담과, test와 같은 하이 팬아웃 신호들을 버퍼링하는 부담 모두를 포함하는 면적 부담을 보고하고 있다. test 신호는 FSCAN 구현에 비하여 HSCAN 구현에 대하여 상당히 적은 팬아웃을 갖기 때문에, HSCAN 방식에 대해서는 더 적은 수의 버퍼들이 도입된다. GCD 설계의 경우에, 종래의 풀 스캔을 구현하는 면적 부담은 17%인 반면에, HSCAN의 면적 부담은 겨우 5%로서, 검사 면적 부담에서 70% 이상이 감소된다. 유사하게, change_maker에 대한 검사 면적 부담은 50% 감소된다.
표들은 또한 본래의 회로, 풀 스캔 회로, 및 H-SCAN 회로에 대한 검사 발생의 결과들을 보여준다. (스캔이 없는) 본래의 회로에 대해서는, 1991년, EDAC 회보 214-218페이지에 개시된 T. M. Niermann 및 J. H. Patel의 HITEC: A Test Generation Package for Sequential Circuits라는 제명의 논문에 기술된 공지의 순차 ATPG 툴, HITEC을 이용하여 검사 패턴 발생이 수행되었다.
FSCAN 회로에 대해서는, 1993년 7월, 컴퓨터 이용 설계에 관한 IEEE 회보, 9권 (7호) 1015-1028페이지에 개시된 S. T. Chakradhar, V. D. Agrawal 및 S. G. Rothweiler의 A Transitive Closure Algorithm for Test Generation이란 제명의 논문에 기술된 또 다른 공지의 조합 ATPG 툴, TRAN을 이용하여 ATPG가 수행되었다. HSCAN 회로에 대해서는, 먼저 그 툴을 이용하여 조합 검사 패턴들이 발생된 다음, 상술한 바와 같이 순차 검사 패턴들로 자동 변환되었다. 마지막으로, 발생된 테스트 패턴들은 순차 고장 시뮬레이터(sequential fault simulator)에 의해 인가되어 HSCAN 회로에 대한 그 패턴들의 효과가 측정된다.
고장수(# of Faults) 칼럼은 본래의 회로에 대하여 HITEC에 의해 고려되는 고장수, FSCAN 회로에 대하여 TRAN에 의해 고려되는 고장수, 및 HSCAN 회로에 대하여 순차 고장 시뮬레이터에 의해 고려되는 고장수를 보여준다.
이들 실험에서는, 풀 스캔 방식에 유리하게, 스캔 체인에서의 고장은 고려되지 않은 반면에, H-SCAN에 의해 도입되는 검사 하드웨어에서의 고장은 고려되었다. FC 및 TE 칼럼은, HITEC, TRAN, 및 제안된 기술에 의해 본래의 회로, 풀 스캔 회로, 및 HSCAN 회로에 대해 획득된 고장 범위(fault coverage)의 백분율 및 검사 효율(test efficiency)의 백분율을 보고하고 있다. 예를 들면, GCD의 경우, 본래의 회로는 단지 80%의 검사 효율을 갖는 반면에, 풀 스캔 방법은 100%를 획득하였으며, 본 출원의 HSCAN 방법은 99.7%의 필적하는 효율을 획득하였다. HSCAN 방법은, 종래의 풀 스캔 기술보다 상당히 적은 면적 부담을 가지면서, 종래의 풀 스캔 방식을 이용하지 않고서 그에 필적하는 검사 효율을 성취할 수 있었다는 점에 주목하자.
TAT 칼럼은, 검사 벡터들을 인가하는 데 필요한 클록 사이클 수를 보고하고 있다. GCD를 예를 들면, 제안된 HSCAN 방식을 이용하여 검사 적용 시간에서 10배 이상 단축되는 것을 볼 수 있다.
change_maker 예의 경우, HSCAN 방법은 풀 스캔에 비하여 검사 적용 시간을 5배 단축시킨 반면에, 출력 핀 제약 때문에, 기존의 병렬 스캔 방식은 검사 적용 시간 부담에서 그와 같은 단축을 달성할 수 없다.
이상, 바람직한 실시예와 관련하여 본 발명을 상세히 도시하고 설명하였지만, 첨부된 특허 청구 범위에 의해서만 한정되어야 하는 본 발명의 광범위한 원리 및 사상을 벗어나지 않고서 여러가지 변형 및 수정이 가능하다는 것을 당 기술 분야의 숙련자라면 분명히 알 수 있을 것이다.
change_maker 회로에 대한 검사 패턴 및 검사 응답
패턴 검사 패턴 검사 응답
total numcoins intchange nickelout dimeout exactchange intchange nickelout dimeout
1 T1 NC1 I1 NO1 D1 '0' I1 R NO1 R D1 R
2 T2 NC2 I2 NO2 D2 '1' I2 R NO2 R D2 R
change_maker 회로에 대한 순차 검사 패턴
클록 사이클
1 2 3 4 5 6 7 8 9 10 11 12 13
numcoins 0..0 I1 NO1 D1 T1 0..0 I2 NO2 D2 T2 X X X
total X X X 0..1 NC1 I1 R NO1 R D1 R 0..0 NC2 I2 R NO2 R D2 R
회로 사이즈 통계
RT 레벨 게이트 레벨
FUs Muxes Reg Gates FFs
GCD 6 178 6 1189 68
change_maker 6 134 8 831 31
GCD에 대한 결과(SFF=Scan FF, I=Interconnect, P=Pin, M=MUX, G=Gate)
검사하드웨어 레이아웃면적(mm2) 검사 면적 부담 고장수 FC TE TAT
ORIG 7.67 2391 79.0% 80.0% 783
FSCAN 68SFF+137I+3P 8.97 17% 2357 97.6% 100% 18007
HSCAN 19M+5G+38P+1P 8.04 5% 2530 97.4% 99.7% 1618
change_maker에 대한 결과
검사하드웨어 레이아웃면적(mm2) 검사 면적 부담 고장수 FC TE TAT
ORIG 3.58 1677 72.0% 78.0% 349
FSCAN 31SFF+63I+3P 4.03 13% 1669 90.2% 100% 4606
HSCAN 14M+8G+28P+1P 3.87 8% 1816 95.0% 99.9% 858

Claims (6)

  1. 회로의 레지스터 전송 스펙(register transfer specification)을 검사하는 방법에 있어서,
    상기 레지스터 전송 스펙으로부터 접속 상태 그래프(connectivity graph)를 도출하는 단계;
    상기 접속 상태 그래프로부터 한 세트의 H-SCAN 체인들을 갖는 H-SCAN 그래프를 발생시키는 단계;
    상기 레지스터 전송 스펙에 최소수의 멀티플렉서들을 삽입함으로써 상기 H-SCAN 체인들을 생성하는 단계; 및
    주어진 조합 검사 패턴(combinational test pattern)들을 상기 단계들의 상기 H-SCAN 체인들 모두를 이용하여 상기 회로에 인가될 수 있는 한 세트의 순차 검사 패턴(sequential test pattern)들로 변환시키는 단계
    를 포함하는 것을 특징으로 하는 레지스터 전송 스펙 검사 방법.
  2. 제1항에 있어서, 상기 H-SCAN 발생 단계는,
    상기 접속 상태 그래프 내의 최대수의 기존의 경로들을 재사용함으로써 최대수의 병렬 H-SCAN 체인들을 생성하는 단계를 포함하며, 그에 따라 검사 면적 부담(test area overhead) 및 검사 적용 시간(test application time)이 최소화되는 것을 특징으로 하는 레지스터 전송 스펙 검사 방법.
  3. 제1항에 있어서, 상기 접속 상태 그래프는, 비교기들에 필적하는 레지스터들과 주입력들 및 주출력들 사이에 멀티플렉서들을 통과하는 상기 회로 내의 경로들 모두를 기술하는 것을 특징으로 하는 레지스터 전송 스펙 검사 방법.
  4. 제2항에 있어서, 상기 접속 상태 그래프는, 레지스터들과 주입력들 및 주출력들 사이에 멀티플렉서들을 통과하는 상기 회로 내의 경로들 모두를 기술하는 것을 특징으로 하는 레지스터 전송 스펙 검사 방법.
  5. 제1항에 있어서, 상기 변환 단계는, 상기 조합 검사 패턴들에 의해 달성되는 고장 범위(fault coverage)를 유지하는 것을 특징으로 하는 레지스터 전송 스펙 검사 방법.
  6. 제1항에 있어서, 상기 H-SCAN 발생 단계는,
    상기 회로의 주출력들의 수가 상기 회로의 주입력들의 수보다 적을 경우, 상기 레지스터 전송 스펙 내에 포함된 하나 이상의 비교기들을 재사용하여 병렬 H-SCAN의 수를 최대화하는 단계를 포함하며, 그에 따라 상기 검사 적용 시간이 더 단축되는 것을 특징으로 하는 레지스터 전송 스펙 검사 방법.
KR1019970056424A 1996-10-31 1997-10-30 레지스터전송레벨회로용의저비용검사방법 KR100274178B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US8/741,990 1996-10-31
US08/741,990 US5748647A (en) 1996-10-31 1996-10-31 Low cost testing method for register transfer level circuits

Publications (2)

Publication Number Publication Date
KR19980033338A true KR19980033338A (ko) 1998-07-25
KR100274178B1 KR100274178B1 (ko) 2000-12-15

Family

ID=24983061

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970056424A KR100274178B1 (ko) 1996-10-31 1997-10-30 레지스터전송레벨회로용의저비용검사방법

Country Status (5)

Country Link
US (1) US5748647A (ko)
JP (1) JP3095066B2 (ko)
KR (1) KR100274178B1 (ko)
DE (1) DE19748016A1 (ko)
GB (1) GB2318876B (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5889788A (en) * 1997-02-03 1999-03-30 Motorola, Inc. Wrapper cell architecture for path delay testing of embedded core microprocessors and method of operation
JP2996213B2 (ja) * 1997-08-28 1999-12-27 日本電気株式会社 テスト容易化設計方法および装置、情報記憶媒体、集積回路装置
JP3401523B2 (ja) * 1999-01-11 2003-04-28 デュアキシズ株式会社 通信素子及びこれを用いた通信装置
US6865500B1 (en) * 1999-05-19 2005-03-08 Georgia Tech Research Corporation Method for testing analog circuits
US6463560B1 (en) * 1999-06-23 2002-10-08 Agere Systems Guardian Corp. Method for implementing a bist scheme into integrated circuits for testing RTL controller-data paths in the integrated circuits
US6823486B2 (en) * 2000-06-05 2004-11-23 Fujitsu Limited Automatic test pattern generation for functional register transfer level circuits using assignment decision diagrams
US6636995B1 (en) 2000-07-13 2003-10-21 International Business Machines Corporation Method of automatic latch insertion for testing application specific integrated circuits
US6877122B2 (en) 2001-12-21 2005-04-05 Texas Instruments Incorporated Link instruction register providing test control signals to core wrappers
US6957403B2 (en) * 2001-03-30 2005-10-18 Syntest Technologies, Inc. Computer-aided design system to automate scan synthesis at register-transfer level
FR2866435B1 (fr) * 2004-02-13 2008-04-04 Inst Nat Polytech Grenoble Procede d'elaboration automatique de fichiers de description hdl de systeme electronique digital integre et systeme digital elecronique integre obtenu
US20050210349A1 (en) * 2004-03-22 2005-09-22 Lambert Michael R Scan test tools, models and/or methods
US7996805B2 (en) * 2008-01-08 2011-08-09 National Semiconductor Corporation Method of stitching scan flipflops together to form a scan chain with a reduced wire length
US9081932B2 (en) * 2013-02-01 2015-07-14 Qualcomm Incorporated System and method to design and test a yield sensitive circuit

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT982636B (it) * 1972-05-24 1974-10-21 Ibm Sistema per provare il corretto funzionamento di circuiti logici
US4680761A (en) * 1986-01-30 1987-07-14 Burkness Donald C Self diagnostic Cyclic Analysis Testing System (CATS) for LSI/VLSI
US5513118A (en) * 1993-08-25 1996-04-30 Nec Usa, Inc. High level synthesis for partial scan testing
US5550749A (en) * 1994-06-03 1996-08-27 Nec Usa, Inc. High level circuit design synthesis using transformations
US5502730A (en) * 1994-06-10 1996-03-26 Nec Usa, Inc. Partial scan testability utilizing reconvergence through sequential elements
US5513123A (en) * 1994-06-30 1996-04-30 Nec Usa, Inc. Non-scan design-for-testability of RT-level data paths

Also Published As

Publication number Publication date
GB2318876B (en) 2001-06-06
KR100274178B1 (ko) 2000-12-15
GB2318876A (en) 1998-05-06
US5748647A (en) 1998-05-05
DE19748016A1 (de) 1998-05-14
JPH10132899A (ja) 1998-05-22
JP3095066B2 (ja) 2000-10-03
GB9722970D0 (en) 1998-01-07

Similar Documents

Publication Publication Date Title
US6463560B1 (en) Method for implementing a bist scheme into integrated circuits for testing RTL controller-data paths in the integrated circuits
US6484280B1 (en) Scan path test support
US7831871B2 (en) Testing embedded memories in an integrated circuit
Ghosh et al. Design for hierarchical testability of RTL circuits obtained by behavioral synthesis
US7574644B2 (en) Functional pattern logic diagnostic method
Chen et al. Structural and behavioral synthesis for testability techniques
Ghosh et al. A design-for-testability technique for register-transfer level circuits using control/data flow extraction
US7908534B2 (en) Diagnosable general purpose test registers scan chain design
Chen et al. A methodology to design efficient BIST test pattern generators
Bhattacharya et al. H-SCAN: A high level alternative to full-scan testing with reduced area and test application overheads
KR100274178B1 (ko) 레지스터전송레벨회로용의저비용검사방법
US6178534B1 (en) System and method for using LBIST to find critical paths in functional logic
JPH04233635A (ja) 順序ディジタル論理回路の組み込み自己検査用装置
Kochte et al. Test strategies for reconfigurable scan networks
Rudnick et al. An observability enhancement approach for improved testability and at-speed test
US6708315B2 (en) Method of design for testability, method of design for integrated circuits and integrated circuits
US6079040A (en) Module level scan testing
Wang et al. Generating efficient tests for continuous scan
Rudnick et al. Probe point insertion for at-speed test
Parekhji Embedded cores and system-on-chip testing
Bhattacharya et al. An RTL methodology to enable low overhead combinational testing
Girard et al. A scan-BIST structure to test delay faults in sequential circuits
Inoue et al. An extended class of sequential circuits with combinational test generation complexity
Yuan et al. Compression-aware pseudo-functional testing
Dugonik An efficient algorithm for digital circuits testing

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee