KR102681969B1 - 논리 회로의 at-speed 테스트를 위한 시스템-온-칩 및 그것의 동작 방법 - Google Patents

논리 회로의 at-speed 테스트를 위한 시스템-온-칩 및 그것의 동작 방법

Info

Publication number
KR102681969B1
KR102681969B1 KR1020190003372A KR20190003372A KR102681969B1 KR 102681969 B1 KR102681969 B1 KR 102681969B1 KR 1020190003372 A KR1020190003372 A KR 1020190003372A KR 20190003372 A KR20190003372 A KR 20190003372A KR 102681969 B1 KR102681969 B1 KR 102681969B1
Authority
KR
South Korea
Prior art keywords
data
register
scan register
scan
output
Prior art date
Application number
KR1020190003372A
Other languages
English (en)
Other versions
KR20200087375A (ko
Inventor
신범석
박진수
Original Assignee
삼성전자주식회사
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020190003372A priority Critical patent/KR102681969B1/ko
Priority to US16/544,160 priority patent/US10969432B2/en
Priority to DE102019124122.7A priority patent/DE102019124122A1/de
Priority to CN201911232389.1A priority patent/CN111426946B/zh
Publication of KR20200087375A publication Critical patent/KR20200087375A/ko
Priority to US17/206,288 priority patent/US11442107B2/en
Application granted granted Critical
Publication of KR102681969B1 publication Critical patent/KR102681969B1/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/318594Timing aspects
    • 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/31725Timing aspects, e.g. clock distribution, skew, propagation delay
    • 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/31727Clock circuits aspects, e.g. test clock circuit details, timing aspects for signal generation, circuits for testing clocks
    • 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/318552Clock circuits details

Abstract

본 발명은 논리 회로의 AT-SPEED 테스트를 위한 시스템-온-칩 및 그것의 동작 방법을 제공한다. 본 발명의 하나의 실시 예에 따른 복수의 코어들을 포함하는 시스템-온-칩은 복수의 코어들 중 제1 코어에 포함되고, 제1 코어의 입력 포트에 최 근접한 제1 스캔 레지스터, 제1 스캔 레지스터의 피드백 경로 상에 위치하는 인버팅 회로, 제1 코어에 포함되는 제2 스캔 레지스터 및 제1 스캔 레지스터 및 제2 스캔 레지스터 사이의 데이터 경로 상에 위치하는 논리 회로를 포함하고, 논리 회로의 AT-SPEED 테스트를 위한 테스트 모드에서, 인버팅 회로는 제1 스캔 레지스터로부터 출력된 스캔 데이터를 반전시켜 테스트 데이터를 생성하고, 제1 스캔 레지스터는 클록의 제1 펄스에 응답하여 테스트 데이터를 저장하고, 논리 회로는 제1 스캔 레지스터로부터 출력되는 테스트 데이터에 기초하여 결과 데이터를 출력하고, 제2 스캔 레지스터는 클록의 제2 펄스에 응답하여 결과 데이터를 저장한다.

Description

논리 회로의 AT-SPEED 테스트를 위한 시스템-온-칩 및 그것의 동작 방법{SYSTEM-ON-CHIP FOR AT-SPEED TEST OF LOGIC CIRCUIT AND OPERATING METHOD THEREOF}
본 발명은 시스템-온-칩에 관한 것으로, 좀 더 상세하게는 논리 회로의 AT-SPEED 테스트를 위한 시스템-온-칩 및 그것의 동작 방법에 관한 것이다.
시스템-온-칩(SoC; System-on-Chip)은 여러 기능을 가지는 시스템이 하나의 반도체 칩으로 구현되는 것을 의미한다. 시스템-온-칩에 포함된 논리 회로들의 테스트를 위해 테스트를 위한 설계(DFT; Design For Testability) 기법이 사용되고 있다. DFT 기법 중 스캔 테스트는 입력된 스캔 패턴 데이터를 기반으로 출력되는 데이터를 확인하여 논리 회로를 테스트하는 기술이다. 스캔 테스트를 기반으로 논리 회로의 고착 고장(stuck fault), 천이 지연 고장(transition delay fault) 등이 판별될 수 있다. 논리 회로의 천이 지연 고장을 판별하기 위해, 스캔 테스트로서 논리 회로의 앳-스피드(AT-SPEED) 테스트가 수행될 수 있다.
최근에 요구되는 연산량이 증가됨에 따라 다수의 코어들이 장착된 SoC(이하, 멀티 코어 SoC라 함)가 널리 사용되고 있다. 멀티 코어 SoC의 테스트에 있어서, 코어들 사이의 데이터 전송이 증가됨에 따라 코어들 사이의 인터페이스 회로에 대한 테스트가 요구될 수 있다. 그러나, 각각의 코어가 개별적으로 테스트되는 경우, 인터페이스 회로의 AT-SPEED 테스트가 용이하게 수행되지 못할 수 있다.
본 발명의 목적은 코어들 사이의 인터페이스 회로의 AT-SPEED 테스트를 용이하게 수행할 수 있는 SoC 및 그것의 동작 방법을 제공하는데 있다.
본 발명의 하나의 실시 예에 따른 복수의 코어들을 포함하는 시스템-온-칩은 상기 복수의 코어들 중 제1 코어에 포함되고, 상기 제1 코어의 입력 포트에 최 근접한 제1 스캔 레지스터, 상기 제1 스캔 레지스터의 피드백 경로 상에 위치하는 인버팅 회로, 상기 제1 코어에 포함되는 제2 스캔 레지스터 및 상기 제1 스캔 레지스터 및 상기 제2 스캔 레지스터 사이의 데이터 경로 상에 위치하는 논리 회로를 포함하고, 상기 논리 회로의 AT-SPEED 테스트를 위한 테스트 모드에서, 상기 인버팅 회로는 상기 제1 스캔 레지스터로부터 출력된 스캔 데이터를 반전시켜 테스트 데이터를 생성하고, 상기 제1 스캔 레지스터는 클록의 제1 펄스에 응답하여 상기 테스트 데이터를 저장하고, 상기 논리 회로는 상기 제1 스캔 레지스터로부터 출력되는 상기 테스트 데이터에 기초하여 결과 데이터를 출력하고, 상기 제2 스캔 레지스터는 상기 클록의 제2 펄스에 응답하여 상기 결과 데이터를 저장한다.
본 발명의 하나의 실시 예에 따른 복수의 코어들을 포함하는 시스템-온-칩은 상기 복수의 코어들 중 제1 코어에 포함되고, 상기 제1 코어의 출력 포트에 최 근접한 제1 스캔 레지스터, 상기 제1 스캔 레지스터의 피드백 경로 상에 위치하는 제1 인버팅 회로, 상기 복수의 코어들 중 제2 코어에 포함되는 제2 스캔 레지스터 및 상기 제1 스캔 레지스터 및 상기 제2 스캔 레지스터 사이의 데이터 경로 상에 위치하는 논리 회로를 포함하고, 상기 논리 회로의 AT-SPEED 테스트를 위한 테스트 모드에서, 상기 제1 인버팅 회로는 상기 제1 스캔 레지스터로부터 출력된 스캔 데이터를 반전시켜 제1 테스트 데이터를 생성하고, 상기 제1 스캔 레지스터는 클록의 제1 펄스에 응답하여 상기 제1 테스트 데이터를 저장하고, 상기 논리 회로는 상기 제1 스캔 레지스터로부터 출력되는 상기 제1 테스트 데이터에 기초하여 결과 데이터를 출력하고, 상기 제2 스캔 레지스터는 상기 클록의 제2 펄스에 응답하여 상기 결과 데이터를 저장한다.
본 발명의 하나의 실시 예에 따른 제1 스캔 레지스터 및 제2 스캔 레지스터 사이의 데이터 경로 상에 위치하는 논리 회로의 AT-SPEED 테스트를 위한 시스템-온-칩의 동작 방법은 상기 제1 스캔 레지스터가 제1 주파수를 갖는 클록에 응답하여 스캔 데이터를 출력하는 단계, 상기 제1 스캔 레지스터로부터 출력되는 상기 스캔 데이터를 반전시켜 생성된 테스트 데이터를 상기 제1 스캔 레지스터로 제공하는 단계, 상기 제1 스캔 레지스터가 제2 주파수를 갖는 상기 클록의 제1 펄스에 응답하여 상기 테스트 데이터를 출력하는 단계, 상기 논리 회로가 상기 제1 스캔 레지스터로부터 출력되는 상기 테스트 데이터에 기초하여 결과 데이터를 출력하는 단계 및 상기 제2 스캔 레지스터가 상기 제2 주파수를 갖는 상기 클록의 제2 펄스에 응답하여 상기 결과 데이터를 저장하는 단계를 포함한다.
본 발명에 따르면, 논리 회로의 위치에 관계 없이 논리 회로의 AT-SPEED 테스트가 수행될 수 있는 SoC 및 그것의 동작 방법을 제공할 수 있다.
또한, 본 발명에 따르면, 최상위 레벨 코어와 하위 레벨 코어 사이의 인터페이스 회로 및 하위 레벨 코어들 사이의 인터페이스 회로의 천이 지연 고장이 용이하게 판별될 수 있는 SoC 및 그것의 동작 방법을 제공할 수 있다.
도 1은 본 발명의 하나의 실시 예에 따른 시스템-온-칩(SoC)을 보여주는 블록도이다.
도 2는 도 1의 제1 코어의 하나의 예시를 보여주는 도면이다.
도 3a는 본 발명의 하나의 실시 예에 따른 레지스터를 보여주는 도면이고, 도 3b는 도 3a의 레지스터를 구현하기 위한 하나의 예시를 보여주는 도면이다.
도 4는 본 발명의 하나의 실시 예에 따른 논리 회로의 AT-SPEED 테스트를 위한 SoC를 보여주는 블록도이다.
도 5는 본 발명의 실시 예에 따른 AT-SPEED 테스트를 위한 클록 및 스캔 인에이블의 예시를 보여주는 타이밍도이다.
도 6은 도 5의 클록 및 스캔 인에이블을 기반으로 도 4의 SoC의 동작 예시를 설명하기 위한 도면이다.
도 7은 AT-SPEED 테스트를 위한 도 4의 SoC의 동작의 예시를 보여주는 순서도이다.
도 8은 본 발명의 하나의 실시 예에 따른 논리 회로의 AT-SPEED 테스트를 위한 SoC를 보여주는 블록도이다.
도 9는 본 발명의 하나의 실시 예에 따른 논리 회로의 AT-SPEED 테스트를 위한 SoC를 보여주는 블록도이다.
도 10은 본 발명의 하나의 실시 예에 따른 논리 회로의 AT-SPEED 테스트를 위한 SoC를 보여주는 블록도이다.
도 11은 본 발명의 하나의 실시 예에 따른 논리 회로의 AT-SPEED 테스트를 위한 SoC를 보여주는 블록도이다.
도 12는 본 발명의 하나의 실시 예에 따른 테스트 시스템을 보여주는 블록도이다.
도 13은 본 발명의 실시 예들에 따른 SoC가 적용된 전자 시스템의 예시적인 구성을 보여주는 블록도이다.
이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.
도 1은 본 발명의 하나의 실시 예에 따른 시스템-온-칩(SoC)(100)을 보여주는 블록도이다. 도 1을 참조하면, SoC(100)는 복수의 코어들(110-140) 및 버스(150)를 포함할 수 있다. 코어들(110-140) 각각은 입력되는 데이터를 처리할 수 있다. 즉, 코어들(110-140) 각각은 입력되는 데이터를 기반으로 다양한 연산 동작을 수행할 수 있다.
코어들(110-140)은 논리 회로들(CL0-CLn)을 포함할 수 있다. 논리 회로들(CL0-CLn) 각각은 복수의 조합 논리 회로(combinational logic circuit) 및 복수의 순차 논리 회로(sequential logic circuit)를 포함할 수 있다. 코어들(110-140) 각각은 내부의 논리 회로를 통해 데이터를 처리할 수 있다. 예를 들어, 최상위 레벨 코어(110)는 제0 논리 회로(CL0)를 통해 데이터를 처리할 수 있다. 제1 코어(120)는 제1 논리 회로(CL1)를 통해 데이터를 처리할 수 있다.
예를 들어, 코어들(110-140)은 중앙 처리 장치(CPU; Central Processing Unit), 그래픽 처리 장치(GPU; Graphic Processing Unit), 디지털 신호 처리 장치(DSP; Digital Signal Processer), 뉴럴 프로세싱 장치(NPU; Neural Processing Unit) 등의 기능 블록에 포함될 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 코어들(110-140) 각각은 기능상 분리된 기능 블록에 포함될 수 있다.
최상위 레벨 코어(110)는 하위 레벨의 코어들(120-140)의 동작을 제어할 수 있다. 최상위 레벨 코어(110)는 탑 컨트롤러(111)를 포함할 수 있다. 탑 컨트롤러(111)는 코어들(120-140)을 제어하기 위한 제어 신호들을 생성하고, 생성된 제어 신호들을 코어들(120-140)로 제공할 수 있다.
코어들(120-140) 각각은 최상위 레벨 코어(110)로부터 제공된 제어 신호들에 기초하여 동작할 수 있다. 예를 들어, 제1 코어(120)는 제어 신호에 기초하여 제1 논리 회로(CL1)를 기반으로 데이터를 처리할 수 있다. 도 1에는 하나의 버스(150)에 연결된 n개의 코어들(120-140)이 도시되어 있으나, 본 발명이 이에 한정되는 것은 아니다. 예를 들어, SoC(100)는 하나 이상의 하위 레벨의 코어를 포함할 수 있다.
버스(150)는 코어들(110-140) 간의 통신을 위한 데이터 경로를 제공할 수 있다. 예를 들어, 최상위 레벨 코어(110)는 버스(150)를 통해 제1 코어(120)로 데이터 또는 제어 신호를 전송할 수 있다. 제1 코어(120)는 버스(150)를 통해 최상위 레벨 코어(110)로 데이터를 전송할 수 있다. 제1 코어(120) 및 제2 코어(130)는 버스(150)를 통해 데이터를 서로 송수신할 수 있다.
논리 회로들(CL0-CLn)의 결함을 확인하기 위해, 코어들(110-140)은 테스트를 고려하여 설계(Design For Testability)될 수 있다. 예를 들어, 코어들(110-140)은 적어도 하나의 스캔 체인을 구성하여 스캔 테스트 방식으로 테스트될 수 있다. 스캔 테스트를 위해, 코어들(110-140)에 스캔 패턴 데이터(이하, 스캔 데이터라 함)가 입력될 수 있다. 스캔 데이터는 테스트를 위해 미리 설정된 데이터 값을 가질 수 있다. 논리 회로들(CL0-CLn)은 스캔 데이터를 기반으로 데이터를 처리할 수 있다. 처리 결과에 따라 출력되는 데이터를 통해 논리 회로들(CL0-CLn)의 결함이 판별될 수 있다. 이러한 스캔 테스트 방식을 이용하여 논리 회로들(CL0-CLn)의 천이 지연 고장 등이 판별될 수 있다.
논리 회로들(CL0-CLn)의 천이 지연 고장을 판별하기 위해, 논리 회로들(CL0-CLn)에 대한 AT-SPEED 테스트가 수행될 수 있다. AT-SPEED 테스트는 SoC(100)의 동작 스피드(즉, 앳-스피드(at-speed))에 따라 논리 회로들(CL0-CLn)이 지연 없이 데이터를 전달하는지 여부를 판별하는 테스트이다. 이에 따라, AT-SPEED 테스트 시, SoC(100)의 일반적인 연산 동작(이하, 정상 기능(normal function)이라 함)을 위한 구동 클록에 기초하여 논리 회로들(CL0-CLn)이 테스트될 수 있다. 즉, SoC(100)의 일반적인 연산 동작과 AT-SPEED 테스트는 동일한 클록 주파수에 기초하여 수행될 수 있으나, AT-SPEED 테스트는 논리 회로들(CL0-CLn)의 천이 지연 고장을 판별하기 위해 수행되는 점에서 SoC(100)의 일반적인 연산 동작과 구분될 수 있다.
탑 컨트롤러(111)는 코어들(110-140)에 대한 테스트를 제어할 수 있다. 탑 컨트롤러(111)는 테스트를 위한 제어 신호들을 코어들(110-140)로 제공할 수 있다. 탑 컨트롤러(111)로부터 제공된 제어 신호들에 응답하여 코어들(110-140)이 동작하는 경우, 논리 회로들(CL0-CLn)에 대한 테스트가 수행될 수 있다.
스캔 테스트를 위해, 코어들(110-140) 각각은 개별적으로 테스트될 수 있다. 예를 들어, 최상위 레벨 코어(110)에 대한 스캔 테스트와 제1 코어(120)에 대한 스캔 테스트가 각각 수행될 수 있다. 즉, 코어들(110-140)에 대한 계층적 스캔 테스트(hierarchical scan test)가 수행될 수 있다. SoC(100) 전체의 코어들(110-140)에 대하여 스캔 데이트가 수행되는 경우(즉, 계층적 스캔 테스트가 수행되지 않는 경우), 스캔 테스트를 위한 리소스 및 테스트 시간이 증가될 수 있다. 이에 따라, 계층적 스캔 테스트가 수행될 수 있다.
계층적 스캔 테스트가 수행되는 경우, 코어들 사이의 인터페이스 상에 위치하는 논리 회로의 AT-SPEED 테스트가 용이하게 수행되지 않을 수 있다. 그러나, 본 발명의 SoC(100)에 따르면, 계층적 스캔 테스트가 수행되더라도 논리 회로들(CL0-CLn)의 위치와 관계 없이 AT-SPEED 테스트가 용이하게 수행될 수 있다.
도 2는 도 1의 제1 코어(120)의 하나의 예시를 보여주는 도면이다. 구체적으로, 도 2를 참조하여 하위 레벨의 코어들(120-140)의 일부 구성 요소들이 설명될 것이다. 도 2에는 제1 코어(120)만 도시되었으나, 나머지 코어들(130, 140)도 제1 코어(120)와 실질적으로 동일 또는 유사하게 구현될 수 있다.
도 2를 참조하면, 제1 코어(120)는 복수의 입력 포트들(IP1-IP6), 복수의 레지스터들(R1-R13), 복수의 논리 회로들(CL1-CL10) 및 복수의 출력 포트들(OP1-OP6)을 포함할 수 있다.
입력 포트들(IP1-IP6)은 제1 코어(120)로 제공되는 데이터를 수신할 수 있다. 여기서, 제6 입력 포트(IP6)는 제1 코어(120)의 스캔 테스트를 위해 제공되는 스캔 데이터를 수신할 수 있다. 레지스터들(R1-R13)은 제1 코어(120)로 제공되는 클록에 응답하여 입력되는 데이터를 저장할 수 있다. 논리 회로들(CL1-CL10)은 수신되는 데이터를 기반으로 연산을 수행할 수 있다. 출력 포트들(OP1-OP6)은 제1 코어(120)로부터 데이터를 출력할 수 있다. 여기서, 제6 출력 포트(OP6)는 스캔 데이터를 기반으로 생성된 결과 데이터를 출력할 수 있다.
레지스터들(R1-R13) 중 입력 포트들(IP1-IP5)에 최 근접한 레지스터들(R1-R5)은 입력 래퍼 레지스터(input wrapper register)로 정의될 수 있다. 입력 래퍼 레지스터 각각은 제1 코어(120)의 입력 경계(boundary)에 위치할 수 있다. 즉, 입력 래퍼 레지스터는 입력 포트와 출력 포트의 데이터 경로 상에 위치하는 첫 번째 레지스터일 수 있다. 레지스터들(R1-13) 중 출력 포트들(OP1-OP5)에 최 근접한 레지스터들(R9-R13)은 출력 래퍼 레지스터(output wrapper register)로 정의될 수 있다. 출력 래퍼 레지스터 각각은 제1 코어(120)의 출력 경계(boundary)에 위치할 수 있다. 즉, 출력 래퍼 레지스터는 입력 포트와 출력 포트의 데이터 경로 상에 위치하는 마지막 레지스터일 수 있다.
제1 코어(120)가 정상 기능(즉, 일반적인 연산 동작)을 수행하는 경우, 입력 포트들(IP1-IP5) 각각으로 입력된 데이터가 데이터 경로 상에 존재하는 레지스터 및 논리 회로를 통해 처리될 수 있다. 처리된 데이터는 출력 포트들(OP1-OP5)을 통해 출력될 수 있다. 예를 들어, 제1 입력 포트(IP1)로 입력된 데이터는 제1 레지스터(R1)에 저장될 수 있다. 제1 레지스터(R1)에 저장된 데이터는 제1 논리 회로(CL1)로 출력될 수 있다. 제1 논리 회로(CL1)는 입력된 데이터를 처리하고, 처리된 데이터를 제8 레지스터(R8)로 제공할 수 있다. 제8 레지스터(R8)는 제1 논리 회로(CL1)로부터 출력된 데이터를 저장할 수 있다. 제8 논리 회로(CL8)는 제8 레지스터(R8)로부터 출력되는 데이터를 기반으로 연산을 수행할 수 있다. 연산 수행에 따라 제8 논리 회로(CL8)로부터 출력된 데이터는 제9 레지스터(R9)에 저장될 수 있다. 제9 레지스터(R9)로부터 출력되는 데이터는 제1 출력 포트(OP1)를 통해 제1 코어(120)로부터 출력될 수 있다.
제1 코어(120)에 대한 스캔 테스트가 수행되는 경우, 제6 입력 포트(IP6)를 통해 스캔 데이터가 입력될 수 있다. 입력된 스캔 데이터는 제1 레지스터(R1) 내지 제13 레지스터(R13)까지 순차적으로 전달될 수 있다. 즉, 제1 레지스터(R1) 내지 제13 레지스터(R13) 각각은 스캔 테스트를 위해 이용되는 스캔 레지스터일 수 있다. 예를 들어, 13개의 클록 펄스들에 따라 스캔 데이터가 입력되는 경우, 레지스터들(R1-R13) 각각은 대응하는 스캔 데이터를 저장할 수 있다. 이 경우, 첫 번째 클록 펄스에 대응하는 스캔 데이터는 제13 레지스터(R13)에 저장되고, 마지막 클록 펄스에 대응하는 스캔 데이터는 제1 레지스터(R1)에 저장될 수 있다. 스캔 데이터는 논리 회로들(CL1-CL10)을 통하지 않고 전달되므로, 레지스터들(R1-R13) 각각에 원하는 데이터 값이 저장될 수 있다. 레지스터들(R1-R13) 각각에 스캔 데이터가 저장된 후, 저장된 스캔 데이터를 기반으로 논리 회로들(CL1-CL10)에 대한 스캔 테스트가 수행될 수 있다. 스캔 테스트를 통해 논리 회로들(CL1-CL10)의 결함이 판별될 수 있다. 즉, 논리 회로들(CL1-CL10)의 고착 고장 및 천이 지연 고장이 판별될 수 있다.
이하에서는, 설명의 편의를 위해, 레지스터에 저장된 스캔 데이터가 논리 회로를 통하지 않고 다른 레지스터로 전달되는 경로를 스캔 경로라 하고, 레지스터에 저장된 데이터가 논리 회로를 통하여 다른 레지스터로 전달되는 경로를 기능 경로라 한다.
스캔 테스트를 통해 논리 회로의 천이 지연 고장을 판별하기 위해, 세 개의 레지스터들을 이용하여 AT-SPEED 테스트가 수행될 수 있다. 예를 들어, 제6 논리 회로(CL6)의 AT-SPEED 테스트를 위해, 제1 레지스터(R1), 제8 레지스터(R8) 및 제9 레지스터(R9)가 이용될 수 있다. 이 경우, 제1 레지스터(R1)에 저장된 스캔 데이터를 기반으로 제6 논리 회로(CL6)의 AT-SPEED 테스트가 수행될 수 있다. 구체적으로, 제1 레지스터(R1)에 저장된 스캔 데이터는 제1 논리 회로(CL1)에 의해 처리될 수 있다. 제1 논리 회로(CL1)에 의해 처리된 데이터는 제8 레지스터(R8)에 저장될 수 있다. 제8 레지스터(R8)에 저장된 데이터는 제6 논리 회로(CL6)에 의해 처리되고, 처리된 데이터가 제9 레지스터(R9)에 저장될 수 있다. 제9 레지스터(R9)에 저장된 데이터는 제10 레지스터(R10) 내지 제13 레지스터(R13)를 통해 제6 출력 포트(OP6)를 통해 출력될 수 있다. 출력된 데이터의 값을 기반으로 제6 논리 회로(CL6)의 천이 지연 고장이 판별될 수 있다. 이 경우, 제1 논리 회로(CL1)에 결함이 존재하지 않는 것을 전제로 제6 논리 회로(CL6)가 테스트될 수 있다.
이와 같은 방식으로 논리 회로의 AT-SPEED 테스트가 수행되는 경우, 입력 래퍼 레지스터 및 출력 래퍼 레지스터의 출력단에 연결된 논리 회로들의 AT-SPEED 테스트가 수행되지 못할 수 있다. 예를 들어, 제1 레지스터(R1)의 출력단에 연결된 제1 논리 회로(CL1)의 AT-SPEED 테스트가 수행되지 못할 수 있다.
본 발명의 실시 예에 따르면, 세 개의 레지스터들뿐만 아니라 두 개의 레지스터들을 기반으로 논리 회로의 AT-SPEED 테스트가 수행될 수 있다. 예를 들어, 제1 레지스터(R1)와 제8 레지스터(R8)를 기반으로 제1 논리 회로(CL1)의 AT-SPEED 테스트가 수행될 수 있다. 이에 따라, 입력 래퍼 레지스터 및 출력 래퍼 레지스터의 출력단에 연결된 논리 회로들의 천이 지연 고장이 판별될 수 있다.
두 개의 레지스터들을 기반으로 논리 회로의 AT-SPEED 테스트를 위해, 제1 코어(120)는 도 2에 도시되지 않은 구성 요소들을 더 포함할 수 있다. 이하에서는, 도 3a 내지 도 7을 참조하여, 두 개의 레지스터들을 기반으로 논리 회로의 AT-SPEED 테스트를 위한 실시 예들이 설명될 것이다.
도 3a는 본 발명의 하나의 실시 예에 따른 레지스터를 보여주는 도면이고, 도 3b는 도 3a의 레지스터를 구현하기 위한 하나의 예시를 보여주는 도면이다. 도 3a를 참조하면, 레지스터(R)는 4개의 입력 단자들 및 하나의 출력 단자(Q)를 포함할 수 있다. 4개의 입력 단자들은 입력 데이터(ID), 스캔 데이터(SD), 스캔 인에이블(SE) 및 클록(CLK)을 수신할 수 있다. 입력 데이터(ID)는 입력 단자(D)를 통해 레지스터(R)로 입력되고, 스캔 데이터(SD)는 입력 단자(SI)를 통해 레지스터(R)로 입력될 수 있다. 하나의 출력 단자(Q)는 출력 데이터(OD)를 출력할 수 있다.
레지스터(R)는 스캔 인에이블(SE) 및 클록(CLK)에 기초하여 입력 데이터(ID) 및 스캔 데이터(SD) 중 하나를 저장하고, 출력 데이터(OD)로서 저장된 데이터를 출력할 수 있다. 예를 들어, 레지스터(R)는 스캔 인에이블(SE)의 논리 하이(high)(즉, '1') 값 및 클록(CLK)의 상승 에지(edge)에 응답하여 스캔 데이터(SD)를 저장하고, 출력 데이터(OD)로서 스캔 데이터(SD)를 출력할 수 있다. 예를 들어, 레지스터(R)는 스캔 인에이블(SE)의 논리 로우(low)(즉, '0') 값 및 클록(CLK)의 상승 에지에 응답하여 입력 데이터(ID)를 저장하고, 출력 데이터(OD)로서 입력 데이터(ID)를 출력할 수 있다.
도 3b를 참조하면, 레지스터(R)는 멀티플렉서(MP) 및 플립플롭(FF)을 포함할 수 있다. 멀티플렉서(MP)는 입력 데이터(ID) 및 스캔 데이터(SD)를 수신할 수 있다. 스캔 인에이블(SE)에 기초하여 멀티플렉서(MP)는 입력 데이터(ID) 및 스캔 데이터(SD) 중 하나를 중간 데이터(MD)로서 출력할 수 있다. 플립플롭(FF)은 클록(CLK)에 응답하여 입력되는 중간 데이터(MD)를 저장하고, 출력 데이터(OD)로서 중간 데이터(MD)를 출력할 수 있다.
도 4는 본 발명의 하나의 실시 예에 따른 논리 회로의 AT-SPEED 테스트를 위한 SoC(100)를 보여주는 블록도이다. 도 4를 참조하면, SoC(100)는 제1 레지스터(101), 인버팅 회로(102), 선택 회로(103), 모드 컨트롤러(104), 논리 회로(105) 및 제2 레지스터(106)를 포함할 수 있다.
제1 레지스터(101)는 제1 입력 데이터(ID1), 스캔 데이터(SD), 스캔 인에이블(SE) 및 클록(CLK)을 수신할 수 있다. 제1 레지스터(101)는 스캔 인에이블(SE) 및 클록(CLK)에 기초하여 제1 입력 데이터(ID1) 및 스캔 데이터(SD) 중 하나를 제1 출력 데이터(OD1)로서 출력할 수 있다. 도 2에서 설명된 바와 같이, 스캔 데이터(SD)는 입력 포트 또는 다른 레지스터를 통해 제1 레지스터(101)로 제공될 수 있다. 제1 출력 데이터(OD1)는 인버팅 회로(102), 논리 회로(105) 및 다른 레지스터의 입력 단자(SI)로 제공될 수 있다. 예를 들어, 제1 출력 데이터(OD1)는 제2 레지스터(106)의 입력 단자(SI)로 제공될 수 있다.
인버팅 회로(102)는 제1 출력 데이터(OD1)를 반전시켜 테스트 데이터(TD)를 생성할 수 있다. 예를 들어, 제1 출력 데이터(OD1)의 값이 '1'인 경우, 테스트 데이터(TD)는 '0'일 수 있다. 인버팅 회로(102)로부터 출력되는 테스트 데이터(TD)는 선택 회로(103)로 제공될 수 있다. 예를 들어, 인버팅 회로(102)는 인버터로 구현될 수 있다. 그러나, 본 발명이 이에 한정되는 것은 아니며, 인버팅 회로(102)는 제1 출력 데이터(OD1)를 반전시킬 수 있는 임의의 회로 또는 임의의 회로들의 조합으로 구현될 수 있다.
선택 회로(103)는 테스트 데이터(TD) 및 기능 데이터(FD)를 수신할 수 있다. 선택 회로(103)는 선택 신호(CS)에 기초하여 테스트 데이터(TD) 및 기능 데이터(FD) 중 하나를 제1 입력 데이터(ID1)로서 출력할 수 있다. 기능 데이터(FD)는 입력 포트 또는 다른 레지스터의 출력 단자(Q)로부터 제공될 수 있다. 예를 들어, 기능 데이터(FD)를 기반으로 SoC(100)는 정상 기능을 수행할 수 있다. 예를 들어, 선택 회로(103)는 멀티플렉서로 구현될 수 있으나, 본 발명이 이에 한정되는 것은 아니다.
모드 컨트롤러(104)는 모드 신호(MODE) 및 스캔 인에이블(SE)을 수신할 수 있다. 모드 컨트롤러(104)는 모드 신호(MODE) 및 스캔 인에이블(SE)에 기초하여 선택 신호(CS)를 생성할 수 있다. 모드 신호(MODE)는 SoC(100)의 다양한 동작 모드들 중 하나를 나타낼 수 있다. 모드 신호(MODE)는 도 1의 탑 컨트롤러(111)로부터 제공될 수 있다. 예를 들어, 모드 신호(MODE)는 논리 회로(105)의 AT-SPEED 테스트를 위한 모드(이하, AT-SPEED 테스트 모드라 함)를 나타낼 수 있다.
예를 들어, 모드 신호(MODE)가 논리 회로(105)의 AT-SPEED 테스트 모드를 나타내고, 스캔 인에이블(SE)이 논리 로우 값을 나타내는 경우, 모드 컨트롤러(104)는 선택 회로(103)가 테스트 데이터(TD)를 출력하도록 선택 신호(CS)를 생성할 수 있다. 이 경우, 테스트 데이터(TD)가 제1 입력 데이터(ID1)로서 제1 레지스터(101)에 제공될 수 있다. 제1 레지스터(101)는 스캔 인에이블(SE)의 논리 로우 값과 클록(CLK)에 기초하여 테스트 데이터(TD)를 저장하고, 테스트 데이터(TD)를 제1 출력 데이터(OD1)로서 출력할 수 있다.
논리 회로(105)는 제1 출력 데이터(OD1)를 기반으로 연산을 수행할 수 있다. 논리 회로(105)는 연산에 따라 생성된 데이터를 제2 입력 데이터(ID2)로서 제2 레지스터(106)로 제공할 수 있다.
제2 레지스터(106)는 제2 입력 데이터(ID2), 스캔 인에이블(SE) 및 클록(CLK)을 수신할 수 있다. 제2 레지스터(106)의 입력 단자(SI)는 다른 레지스터의 출력 단자(Q)에 연결될 수 있다. 예를 들어, 제2 레지스터(106)의 입력 단자(SI)는 제1 레지스터(101)의 출력 단자(Q)에 연결될 수 있다. 제2 레지스터(106)는 스캔 인에이블(SE) 및 클록(CLK)에 기초하여 제2 입력 데이터(ID2) 및 입력 단자(SI)로 제공되는 데이터 중 하나를 제2 출력 데이터(OD2)로서 출력할 수 있다. 예를 들어, 입력 단자(SI)로 제공되는 데이터는 다른 레지스터를 통해 입력되는 스캔 데이터일 수 있다.
제1 레지스터(101)와 제2 레지스터(106)는 동일한 코어에 포함될 수 있다. 예를 들어, 제1 레지스터(101)와 제2 레지스터(106)는 도 1의 제1 코어(120)에 포함될 수 있다. 또는, 제1 레지스터(101)와 제2 레지스터(106)는 각각 서로 다른 코어에 포함될 수 있다. 예를 들어, 제1 레지스터(101)는 도 1의 제1 코어(120)에 포함되고, 제2 레지스터(106)는 도 1의 최상위 레벨 코어(110)에 포함될 수 있다. 그러나, 본 발명이 이에 한정되는 것은 아니며, 제1 레지스터(101) 및 제2 레지스터(106) 각각은 SoC(100)의 임의의 코어에 포함될 수 있다.
제1 레지스터(101)는 입력 래퍼 레지스터 또는 출력 래퍼 레지스터에 포함될 수 있다. 이 경우, 인버팅 회로(102) 및 선택 회로(103)는 입력 래퍼 레지스터 및 출력 래퍼 레지스터의 피드백 경로 상에 위치할 수 있다. 그러나, 본 발명이 이에 한정되는 것은 아니다.
도 5는 본 발명의 실시 예에 따른 AT-SPEED 테스트를 위한 클록(CLK) 및 스캔 인에이블(SE)의 예시를 보여주는 타이밍도이다. 구체적으로, 논리 회로의 AT-SPEED 테스트를 위한 모드 신호(MODE)와 함께 도 5의 클록(CLK) 및 스캔 인에이블(SE)이 제공될 수 있다.
도 5를 참조하면, 가로축은 시간을 나타낸다. 논리 회로의 AT-SPEED 테스트는 제1 시프트 사이클, 캡쳐 사이클 및 제2 시프트 사이클을 기반으로 수행될 수 있다. 제1 시프트 사이클에서, 스캔 데이터가 레지스터들에 저장될 수 있다. 캡쳐 사이클에서, 저장된 스캔 데이터를 기반으로 논리 회로로부터 출력되는 결과 데이터가 레지스터들에 저장될 수 있다. 제2 시프트 사이클에서, 레지스터들에 저장된 결과 데이터가 출력될 수 있다. 출력되는 결과 데이터에 기초하여 논리 회로의 천이 지연 고장이 판별될 수 있다. 즉, 시프트 사이클에서는 스캔 경로를 따라 레지스터들을 통해 데이터가 순차적으로 전달될 수 있다. 캡쳐 사이클에서는 기능 경로를 따라 레지스터들에 저장된 데이터가 논리 회로를 통해 처리될 수 있다.
클록(CLK)은 시프트 사이클에서 제1 주파수를 가지고, 캡쳐 사이클에서 제2 주파수를 가질 수 있다. 이 경우, 제1 주파수는 제2 주파수보다 낮을 수 있다. 시프트 사이클은 레지스터들을 통해 데이터가 전달되는 구간(즉, 스캔 데이터가 레지스터들로 입력되거나 레지스터들에 저장된 결과 데이터가 출력되는 구간)이므로, 클록(CLK)의 주파수는 AT-SPEED 테스트에 영향을 주지 않을 수 있다. 이에 따라, 시프트 사이클에서 낮은 주파수를 갖도록 클록(CLK)이 생성될 수 있다. 이 경우, 저전력으로 스캔 데이터가 입력되고 결과 데이터가 출력될 수 있다. 캡쳐 사이클에서는 AT-SPEED 테스트를 위해 클록(CLK)의 주파수가 구동 클록(CLK)(즉, 정상 기능을 수행하기 위한 클록(CLK))의 주파수와 동일할 수 있다. 이에 따라, 캡쳐 사이클의 클록(CLK)에 기초하여 논리 회로의 AT-SPEED 테스트가 수행될 수 있다.
도 5에는 클록(CLK)이 각각의 시프트 사이클에서 두 개의 펄스를 갖는 것으로 도시되었으나, 본 발명이 이에 한정되는 것은 아니다. 예를 들어, 각각의 시프트 사이클에서 클록(CLK)이 갖는 펄스의 개수는 스캔 데이터가 입력되는 레지스터들의 개수에 따라 달라질 수 있다.
이하에서는, 도 6을 참조하여 도 4의 SoC(100)의 동작을 상세하게 설명할 것이다. 설명의 편의를 위해, 제1 레지스터(101)의 출력 단자(Q)는 제2 레지스터(106)의 입력 단자(SI)에 연결되는 것으로 가정한다.
도 6은 도 5의 클록(CLK) 및 스캔 인에이블(SE)을 기반으로 도 4의 SoC(100)의 동작 예시를 설명하기 위한 도면이다. 도 5 및 도 6을 참조하면, 제1 시프트 사이클에서 제1 및 제2 레지스터들(101, 106)은 스캔 인에이블(SE)의 논리 하이 값에 응답하여 입력 단자(SI)로 입력되는 스캔 데이터를 선택할 수 있다. 제1 시간(t1)에서 제1 레지스터(101)로 제1 스캔 데이터(SD1)가 입력될 수 있다. 제1 레지스터(101)는 클록(CLK)의 상승 에지에 응답하여 제1 스캔 데이터(SD1)를 저장하고, 제1 출력 데이터(OD1)로서 제1 스캔 데이터(SD1)를 출력할 수 있다. 제1 스캔 데이터(SD1)는 제2 레지스터(106)의 입력 단자(SI)로 제공될 수 있다.
제2 시간(t2)에서 제1 레지스터(101)로 제2 스캔 데이터(SD2)가 입력될 수 있다. 제1 레지스터(101)는 클록(CLK)의 상승 에지에 응답하여 제2 스캔 데이터(SD2)를 저장하고, 제1 출력 데이터(OD1)로서 제2 스캔 데이터(SD2)를 출력할 수 있다. 제2 레지스터(106)는 클록(CLK)의 상승 에지에 응답하여 입력 단자(SI)로 입력되는 제1 스캔 데이터(SD1)를 저장할 수 있다. 제2 스캔 데이터(SD2)는 인버팅 회로(102)로 제공될 수 있다. 인버팅 회로(102)는 제2 스캔 데이터(SD2)를 반전시켜 테스트 데이터(TD)를 출력할 수 있다. 테스트 데이터(TD)는 선택 회로(103)로 제공될 수 있다.
선택 회로(103)는 테스트 데이터(TD) 및 기능 데이터(FD)를 수신할 수 있다. 선택 회로(103)는 제3 시간(t3) 전까지 모드 컨트롤러(104)로부터 제공되는 선택 신호(CS)에 따라 기능 데이터(FD)를 제1 입력 데이터(ID1)로서 출력할 수 있다. 제3 시간(t3)에서 모드 컨트롤러(104)는 모드 신호(MODE) 및 스캔 인에이블(SE)의 로우 값에 기초하여 선택 회로(103)로부터 테스트 데이터(TD)가 출력되도록 선택 신호(CS)를 생성할 수 있다. 여기서, 모드 신호(MODE)는 논리 회로(105)의 AT-SPEED 테스트 모드를 나타낼 수 있다. 이에 따라, 제3 시간(t3)에서 선택 회로(103)는 선택 신호(CS)에 응답하여 제1 입력 데이터(ID1)로서 테스트 데이터(TD)를 출력할 수 있다. 출력된 테스트 데이터(TD)는 제1 레지스터(101)의 입력 단자(D)로 입력될 수 있다.
캡쳐 사이클에서 제1 및 제2 레지스터들(101, 106)은 스캔 인에이블(SE)의 논리 로우 값에 기초하여 입력 단자(D)로 입력되는 입력 데이터를 선택할 수 있다. 제4 시간(t4)에서 제1 레지스터(101)는 클록(CLK)의 상승 에지에 응답하여 입력 단자(D)로 입력되는 테스트 데이터(TD)를 저장할 수 있다. 이에 따라, 테스트 데이터(TD)는 제1 출력 데이터(OD1)로서 출력될 수 있다. 테스트 데이터(TD)는 논리 회로(105)로 제공될 수 있다. 논리 회로(105)는 테스트 데이터(TD)를 기반으로 연산을 수행하고, 연산 결과로서 결과 데이터(RD)를 출력할 수 있다. 이에 따라, 제2 입력 데이터(ID2)로서 결과 데이터(RD)가 제2 레지스터(106)로 입력될 수 있다.
제5 시간(t5)에서 제2 레지스터(106)는 클록(CLK)의 상승 에지에 응답하여 입력 단자(D)로 입력되는 결과 데이터(RD)를 저장할 수 있다. 제2 레지스터(106)는 제2 출력 데이터(OD2)로서 결과 데이터(RD)를 출력할 수 있다. 제2 시프트 사이클에서 제2 레지스터(106)에 저장된 결과 데이터(RD)가 스캔 경로를 따라 SoC(100)로부터 출력될 수 있다. 예를 들어, 제7 시간(t7) 및 제8 시간(t8)에서 결과 데이터(RD)는 스캔 경로 상의 레지스터들에 순차적으로 저장될 수 있다. 이와 같은 방식으로 결과 데이터(RD)는 출력 포트를 통해 SoC(100)로부터 출력될 수 있다.
출력된 결과 데이터(RD)의 값을 기반으로 논리 회로(105)의 천이 지연 고장이 판별될 수 있다. 예를 들어, 결과 데이터(RD)의 값이 원하는 값과 다른 경우, 논리 회로(105)의 천이 지연 고장이 존재하는 것으로 판별될 수 있다.
테스트 데이터(TD)의 값이 제2 스캔 데이터(SD2)의 값과 동일한 경우, 논리 회로(105)로부터 출력되는 결과 데이터(RD)의 값이 동일하게 유지될 수 있다. 이 경우, 논리 회로(105)의 고착 고장과 천이 지연 고장이 구분되지 않을 수 있으므로, 논리 회로(105)의 AT-SPEED 테스트가 정확하게 수행되지 않을 수 있다. 따라서, 테스트 데이터(TD)는 제2 스캔 데이터(SD2)를 반전시켜 생성될 수 있다.
상술한 바와 같이, 제1 시프트 사이클에서 테스트 데이터(TD)가 제1 레지스터(101)로 전달될 수 있다. 캡쳐 사이클에서 클록(CLK)의 제1 펄스(P1)에 응답하여 테스트 데이터(TD)가 제1 레지스터(101)로부터 출력될 수 있다. 클록(CLK)의 제1 펄스(P1)를 바로 뒤따르는 클록(CLK)의 제2 펄스(P2)에 응답하여 제2 레지스터(106)가 결과 데이터(RD)를 저장할 수 있다. 즉, 제1 펄스(P1)의 상승 에지와 제2 펄스(P2) 의 상승 에지 사이의 구간에서 논리 회로(105)가 테스트 데이터(TD)를 기반으로 결과 데이터(RD)를 생성할 수 있다. 즉, 결과 데이터(RD)는 제4 시간(t4)과 제5 시간(t5) 사이의 구간에서 논리 회로(105)의 동작에 의해 생성될 수 있다. 캡쳐 사이클에서 클록(CLK)의 주파수는 정상 기능을 수행하기 위한 클록(CLK)의 주파수와 동일하므로, 제4 시간(t4)과 제5 시간(t5) 사이의 구간에서 논리 회로(105)의 동작에 의해 생성된 결과 데이터(RD)를 기반으로 논리 회로(105)의 AT-SPEED 테스트가 수행되는 경우, 논리 회로(105)의 천이 지연 고장이 판별될 수 있다.
상술한 바와 같이, 본 발명의 실시 예에 따르면, 두 개의 레지스터들(101, 106)을 기반으로 논리 회로(105)의 AT-SPEED 테스트가 수행될 수 있다. 이 경우, 제1 레지스터(101)의 피드백 경로 상에 위치하는 인버팅 회로(102)는 제1 레지스터(101)로 데이터를 제공하는 논리 회로의 역할을 수행할 수 있다. 따라서, 논리 회로(105)의 AT-SPEED 테스트 시, 제1 레지스터(101)는 기능 경로 상의 두 개의 레지스터들의 역할을 수행할 수 있다.
도 7은 AT-SPEED 테스트를 위한 도 4의 SoC(100)의 동작의 예시를 보여주는 순서도이다. 도 4, 도 5 및 도 7을 참조하면, S101 단계에서, 제1 레지스터(101)는 제1 주파수를 가지는 클록(CLK)에 응답하여 스캔 데이터(SD)를 출력할 수 있다. S102 단계에서, 인버팅 회로(102)는 제1 레지스터(101)로부터 출력된 스캔 데이터(SD)를 반전시켜 생성된 테스트 데이터(TD)를 제1 레지스터(101)로 제공할 수 있다. 이 경우, 선택 회로(103)는 선택 신호(CS)에 기초하여 제1 입력 데이터(ID1)로서 테스트 데이터(TD)를 출력할 수 있다. 선택 회로(103)로부터 출력된 테스트 데이터(TD)가 제1 레지스터(101)로 제공될 수 있다.
S103 단계에서, 제1 레지스터(101)는 제2 주파수를 가지는 클록(CLK)의 제1 펄스(P1)에 응답하여 테스트 데이터(TD)를 출력할 수 있다. 제1 레지스터(101)는 제1 출력 데이터(OD1)로서 테스트 데이터(TD)를 출력할 수 있다. S104 단계에서, 논리 회로(105)는 제1 레지스터(101)로부터 출력되는 테스트 데이터(TD)에 기초하여 결과 데이터를 출력할 수 있다. 논리 회로(105)는 제2 입력 데이터(ID2)로서 결과 데이터를 제2 레지스터(106)로 제공할 수 있다. S105 단계에서, 제2 레지스터(106)는 제2 주파수를 가지는 클록(CLK)의 제2 펄스(P2)에 응답하여 결과 데이터를 저장할 수 있다. 저장된 결과 데이터를 기반으로 논리 회로(105)의 천이 지연 고장이 판별될 수 있다.
이하에서는, 도 4의 제1 레지스터(101)가 입력 래퍼 레지스터 또는 출력 래퍼 레지스터에 포함되는 것으로 가정한다. 즉, 인버팅 회로(102) 및 선택 회로(103)는 입력 래퍼 레지스터 및 출력 래퍼 레지스터의 피드백 경로 상에 위치하는 것으로 가정한다. 이를 전제로, 도 8 내지 도 11을 참조하여 다양한 위치에 존재하는 논리 회로의 AT-SPEED 테스트를 위한 예시들이 설명될 것이다.
도 8은 본 발명의 하나의 실시 예에 따른 논리 회로(225)의 AT-SPEED 테스트를 위한 SoC(200)를 보여주는 블록도이다. 도 8을 참조하면, SoC(200)는 제1 코어(220)를 포함할 수 있다. 제1 코어(220)는, 도 1에서 설명된 바와 같이, SoC(200)의 하위 레벨 코어들 중 하나일 수 있다. 제1 코어(220)는 제1 레지스터(221), 인버팅 회로(222), 선택 회로(223), 모드 컨트롤러(224), 논리 회로(225), 제2 레지스터(226) 및 입력 포트(227)를 포함할 수 있다. 제1 레지스터(221), 인버팅 회로(222), 선택 회로(223), 모드 컨트롤러(224), 논리 회로(225) 및 제2 레지스터(226)는 도 4의 제1 레지스터(101), 인버팅 회로(102), 선택 회로(103), 모드 컨트롤러(104), 논리 회로(105) 및 제2 레지스터(106)와 실질적으로 동일 또는 유사하게 동작할 수 있으므로 자세한 설명은 생략된다.
제1 레지스터(221)는 입력 포트(227)에 최 근접한 입력 래퍼 레지스터에 포함될 수 있다. 선택 회로(223)로 제공되는 기능 데이터(FD)는 입력 포트(227)를 통해 전달될 수 있다. 이 경우, 기능 데이터(FD)는 별개의 코어로부터 제공될 수 있다. 예를 들어, 기능 데이터(FD)는 최상위 레벨 코어 또는 다른 하위 레벨 코어로부터 제공될 수 있다.
도 4 내지 도 6을 참조하여 설명된 바와 같이, 제1 및 제2 레지스터들(221, 226)을 기반으로 제1 레지스터(221)와 제2 레지스터(226) 사이에 위치하는 논리 회로(225)의 AT-SPEED 테스트가 수행될 수 있다. 이에 따라, 입력 래퍼 레지스터로부터 출력되는 출력 데이터를 처리하는 논리 회로의 AT-SPEED 테스트가 수행될 수 있다.
도 9는 본 발명의 하나의 실시 예에 따른 논리 회로(325)의 AT-SPEED 테스트를 위한 SoC(300)를 보여주는 블록도이다. 도 9를 참조하면, SoC(300)는 최상위 레벨 코어(310) 및 제1 코어(320)를 포함할 수 있다. 제1 코어(320)는, 도 1에서 설명된 바와 같이, SoC(300)의 하위 레벨 코어들 중 하나일 수 있다. 최상위 레벨 코어(310)는 제2 레지스터(311) 및 입력 포트(312)를 포함할 수 있다. 제1 코어(320)는 제1 레지스터(321), 인버팅 회로(322), 선택 회로(323), 모드 컨트롤러(324), 논리 회로(325) 및 출력 포트(326)를 포함할 수 있다.
제1 레지스터(321)는 출력 포트(326)에 최 근접한 출력 래퍼 레지스터에 포함될 수 있다. 제1 코어(320)의 출력 포트(326)는 최상위 레벨 코어(310)의 입력 포트(312)에 연결될 수 있다. 이 경우, 논리 회로(325)로부터 출력되는 데이터가 출력 포트(326) 및 입력 포트(312)를 통해 최상위 레벨 코어(310)의 제2 레지스터(311)로 전달될 수 있다. 즉, 제2 입력 데이터(ID2)로서 논리 회로(325)의 출력 데이터가 제공될 수 있다. 이와 같이 제1 레지스터(321) 및 제2 레지스터(311)는 하나의 기능 경로 상에 위치하므로, 제1 레지스터(321) 및 제2 레지스터(311)를 기반으로 논리 회로(325)의 AT-SPEED 테스트가 수행될 수 있다.
도 5 및 도 9를 참조하면, 제2 시간(t2)에서, 제1 레지스터(321)는 클록(CLK)의 상승 에지에 응답하여 스캔 데이터(SD)를 저장할 수 있다. 제1 레지스터(321)는 제1 출력 데이터(OD1)로서 스캔 데이터(SD)를 출력할 수 있다. 인버팅 회로(322)는 제1 레지스터(321)로부터 출력된 스캔 데이터(SD)를 반전시켜 테스트 데이터(TD)를 생성할 수 있다. 테스트 데이터(TD)는 선택 회로(323)로 제공될 수 있다.
제3 시간(t3)에서 모드 컨트롤러(324)는 모드 신호(MODE) 및 스캔 인에이블(SE)의 논리 로우 값에 기초하여 선택 회로(323)로부터 테스트 데이터(TD)가 출력되도록 선택 신호(CS)를 생성할 수 있다. 이 경우, 모드 신호(MODE)는 논리 회로(325)의 AT-SPEED 테스트 모드를 나타낼 수 있다. 선택 회로(323)는 선택 신호(CS)를 기반으로 기능 데이터(FD)와 테스트 데이터(TD) 중 테스트 데이터(TD)를 제1 입력 데이터(ID1)로서 출력할 수 있다. 즉, 제1 레지스터(321)의 입력 단자(D)로 테스트 데이터(TD)가 입력될 수 있다.
제4 시간(t4)에서 제1 레지스터(321)는 클록(CLK)의 상승 에지에 응답하여 테스트 데이터(TD)를 제1 출력 데이터(OD1)로서 출력할 수 있다. 논리 회로(325)는 테스트 데이터(TD)를 기반으로 연산을 수행하고, 결과 데이터를 출력할 수 있다. 결과 데이터는 출력 포트(326) 및 입력 포트(312)를 통해 제2 입력 데이터(ID2)로서 제2 레지스터(311)로 제공될 수 있다. 제5 시간(t5)에서 제2 레지스터(311)는 클록(CLK)의 상승 에지에 응답하여 결과 데이터를 저장할 수 있다. 결과 데이터는 제2 출력 데이터(OD2)로서 출력될 수 있다. 이에 따라, 제2 출력 데이터(OD2)를 기반으로 논리 회로(325)의 천이 지연 고장이 판별될 수 있다.
상술한 바와 같이, 논리 회로(325)의 AT-SPEED 테스트가 수행되는 경우, 최상위 레벨 코어(310)와 제1 코어(320) 사이의 인터페이스의 AT-SPEED 테스트가 수행될 수 있다.
도 9에는 논리 회로(325)가 제1 코어(320)에 포함되는 것으로 도시되었으나, 본 발명은 이에 한정되지 않는다. 예를 들어, 논리 회로(325)는 최상위 레벨 코어(310)에 포함될 수 있다. 즉, 제1 레지스터(321) 및 제2 레지스터(311) 사이에 위치하는 논리 회로에 대한 AT-SPEED 테스트가 수행될 수 있다.
도 10은 본 발명의 하나의 실시 예에 따른 논리 회로(414)의 AT-SPEED 테스트를 위한 SoC(400)를 보여주는 블록도이다. 도 10을 참조하면, SoC(400)는 최상위 레벨 코어(410) 및 제1 코어(420)를 포함할 수 있다. 제1 코어(420)는, 도 1에서 설명된 바와 같이, SoC(400)의 하위 레벨 코어들 중 하나일 수 있다. 최상위 레벨 코어(410)는 제1 레지스터(411), 제1 논리 회로(412), 제2 레지스터(413), 제2 논리 회로(414) 및 출력 포트(415)를 포함할 수 있다. 제1 코어(420)는 제3 레지스터(421), 인버팅 회로(422), 선택 회로(423), 모드 컨트롤러(424) 및 입력 포트(425)를 포함할 수 있다. 제2 논리 회로(414)의 AT-SPEED 테스트를 위해, 제1 논리 회로(412)의 결함이 존재하지 않는 것으로 가정한다.
제3 레지스터(421)는 입력 포트(425)에 최 근접한 입력 래퍼 레지스터에 포함될 수 있다. 최상위 레벨 코어(410)의 출력 포트(415)는 제1 코어(420)의 입력 포트(425)에 연결될 수 있다. 이 경우, 제2 논리 회로(414)로부터 출력되는 데이터가 출력 포트(415) 및 입력 포트(425)를 통해 제1 코어(420)의 선택 회로(423)로 전달될 수 있다. 즉, 기능 데이터(FD)로서 제2 논리 회로(414)의 출력 데이터가 제공될 수 있다. 이와 같이 제1 레지스터(411), 제2 레지스터(413) 및 제3 레지스터(421)는 하나의 기능 경로 상에 위치할 수 있다. 이 경우, 제1 내지 제3 레지스터들(411, 413, 421)을 기반으로 제2 논리 회로(414)의 AT-SPEED 테스트가 수행될 수 있다.
모드 신호(MODE)는 제2 논리 회로(414)의 AT-SPEED 테스트 모드를 나타낼 수 있다. 모드 컨트롤러(424)는 모드 신호(MODE)에 기초하여 선택 회로(423)가 기능 데이터(FD)를 출력하도록 선택 신호(CS)를 생성할 수 있다. 즉, 모드 컨트롤러(424)는 스캔 인에이블(SE)의 값과 관계없이 선택 회로(423)로부터 기능 데이터(FD)가 출력되도록 선택 신호(CS)를 생성할 수 있다. 즉, 제2 논리 회로(414)의 AT-SPEED 테스트를 위해, 인버팅 회로(422)로부터 출력되는 테스트 데이터(TD)가 이용되지 않을 수 있다.
도 5 및 도 10을 참조하면, 제2 시간(t2)에서, 제1 레지스터(411)는 클록(CLK)의 상승 에지에 응답하여 스캔 데이터(SD)를 저장할 수 있다. 제1 레지스터(411)는 제1 출력 데이터(OD1)로서 스캔 데이터(SD)를 출력할 수 있다. 제1 논리 회로(412)는 스캔 데이터(SD)를 기반으로 연산을 수행하고, 연산 결과를 출력할 수 있다. 즉, 제2 입력 데이터(ID2)로서 연산 결과가 제2 레지스터(413)의 입력 단자(D)로 제공될 수 있다.
제4 시간(t4)에서 제2 레지스터(413)는 클록(CLK)의 상승 에지에 응답하여 연산 결과를 제2 출력 데이터(OD2)로서 출력할 수 있다. 제2 논리 회로(414)는 제2 출력 데이터(OD2)를 기반으로 연산을 수행하고, 결과 데이터를 출력할 수 있다. 결과 데이터는 출력 포트(415) 및 입력 포트(425)를 통해 기능 데이터(FD)로서 선택 회로(423)로 제공될 수 있다. 선택 회로(423)는 선택 신호(CS)에 응답하여 결과 데이터를 출력할 수 있다. 이에 따라, 제3 입력 데이터(ID3)로서 결과 데이터가 제3 레지스터(421)로 제공될 수 있다.
제5 시간(t5)에서 제3 레지스터(421)는 클록(CLK)의 상승 에지에 응답하여 결과 데이터를 저장할 수 있다. 결과 데이터는 제3 출력 데이터(OD3)로서 출력될 수 있다. 이에 따라, 제3 출력 데이터(OD3)를 기반으로 제2 논리 회로(414)의 천이 지연 고장이 판별될 수 있다.
상술한 바와 같이, 제2 논리 회로(414)의 AT-SPEED 테스트가 수행되는 경우, 최상위 레벨 코어(410)와 제1 코어(420) 사이의 인터페이스의 AT-SPEED 테스트가 수행될 수 있다.
도 10에는 제2 논리 회로(414)가 최상위 레벨 코어(410)에 포함되는 것으로 도시되었으나, 본 발명은 이에 한정되지 않는다. 예를 들어, 제2 논리 회로(414)는 제1 코어(420)에 포함될 수 있다. 즉, 제2 레지스터(413) 및 제3 레지스터(421) 사이에 위치하는 논리 회로에 대한 AT-SPEED 테스트가 수행될 수 있다.
도 9 및 도 10에 도시된 바와 같이, 본 발명의 실시 예들에 따르면, 최상위 레벨 코어와 하위 레벨 코어 사이의 인터페이스에 대한 AT-SPEED 테스트가 용이하게 수행될 수 있다.
도 11은 본 발명의 하나의 실시 예에 따른 논리 회로(525)의 AT-SPEED 테스트를 위한 SoC(500)를 보여주는 블록도이다. 도 11을 참조하면, SoC(500)는 제1 코어(520) 및 제2 코어(530)를 포함할 수 있다. 제1 및 제2 코어들(520, 530) 각각은, 도 1에서 설명된 바와 같이, SoC(500)의 하위 레벨 코어들 중 하나일 수 있다. 제1 코어(520)는 제1 레지스터(521), 제1 인버팅 회로(522), 제1 선택 회로(523), 제1 모드 컨트롤러(524), 논리 회로(525) 및 출력 포트(526)를 포함할 수 있다. 제2 코어(530)는 제2 레지스터(531), 제2 인버팅 회로(532), 제2 선택 회로(533), 제2 모드 컨트롤러(534) 및 입력 포트(535)를 포함할 수 있다.
제1 레지스터(521)는 출력 포트(526)에 최 근접한 출력 래퍼 레지스터에 포함될 수 있다. 제2 레지스터(531)는 입력 포트(535)에 최 근접한 입력 래퍼 레지스터에 포함될 수 있다. 제1 코어(520)의 출력 포트(526)는 제2 코어(530)의 입력 포트(535)에 연결될 수 있다. 이 경우, 논리 회로(525)로부터 출력되는 데이터가 출력 포트(526) 및 입력 포트(535)를 통해 제2 코어(530)의 제2 선택 회로(533)로 전달될 수 있다. 즉, 제2 기능 데이터(FD2)로서 논리 회로(525)의 출력 데이터가 제공될 수 있다. 이와 같이 제1 레지스터(521) 및 제2 레지스터(531)는 하나의 기능 경로 상에 위치할 수 있다. 이 경우, 제1 및 제2 레지스터들(521, 531)을 기반으로 논리 회로(525)의 AT-SPEED 테스트가 수행될 수 있다.
이 경우, 모드 신호(MODE)는 논리 회로(525)의 AT-SPEED 테스트 모드를 나타낼 수 있다. 제2 모드 컨트롤러(534)는 모드 신호(MODE)에 기초하여 제2 선택 회로(533)가 제2 기능 데이터(FD2)를 출력하도록 제2 선택 신호(CS2)를 생성할 수 있다. 즉, 제2 모드 컨트롤러(534)는 스캔 인에이블(SE)의 값과 관계없이 제2 선택 회로(533)로부터 제2 기능 데이터(FD2)가 출력되도록 제2 선택 신호(CS2)를 생성할 수 있다. 즉, 논리 회로(525)의 AT-SPEED 테스트를 위해, 제2 인버팅 회로(532)로부터 출력되는 제2 테스트 데이터(TD2)가 이용되지 않을 수 있다.
도 5 및 도 11을 참조하면, 제2 시간(t2)에서, 제1 레지스터(521)는 클록(CLK)의 상승 에지에 응답하여 스캔 데이터(SD)를 저장할 수 있다. 제1 레지스터(521)는 제1 출력 데이터(OD1)로서 스캔 데이터(SD)를 출력할 수 있다. 제1 인버팅 회로(522)는 제1 레지스터(521)로부터 출력된 스캔 데이터(SD)를 반전시켜 제1 테스트 데이터(TD1)를 생성할 수 있다. 제1 테스트 데이터(TD1)는 제1 선택 회로(523)로 제공될 수 있다.
제3 시간(t3)에서 제1 모드 컨트롤러(524)는 모드 신호(MODE) 및 스캔 인에이블(SE)의 논리 로우 값에 기초하여 제1 선택 회로(523)로부터 제1 테스트 데이터(TD1)가 출력되도록 제1 선택 신호(CS1)를 생성할 수 있다. 제1 선택 회로(523)는 제1 선택 신호(CS1)를 기반으로 제1 테스트 데이터(TD1)를 제1 입력 데이터(ID1)로서 출력할 수 있다. 즉, 제1 레지스터(521)의 입력 단자(D)로 제1 테스트 데이터(TD1)가 입력될 수 있다.
제4 시간(t4)에서 제1 레지스터(521)는 클록(CLK)의 상승 에지에 응답하여 제1 테스트 데이터(TD1)를 제1 출력 데이터(OD1)로서 출력할 수 있다. 논리 회로(525)는 제1 테스트 데이터(TD1)를 기반으로 연산을 수행하고, 결과 데이터를 출력할 수 있다. 결과 데이터는 출력 포트(526) 및 입력 포트(535)를 통해 제2 기능 데이터(FD2)로서 제2 선택 회로(533)로 제공될 수 있다. 제2 선택 회로(533)는 제2 선택 신호(CS2)에 응답하여 결과 데이터를 출력할 수 있다. 이에 따라, 제2 입력 데이터(ID2)로서 결과 데이터가 제2 레지스터(531)로 제공될 수 있다.
제5 시간(t5)에서 제2 레지스터(531)는 클록(CLK)의 상승 에지에 응답하여 결과 데이터를 저장할 수 있다. 결과 데이터는 제2 출력 데이터(OD2)로서 출력될 수 있다. 이에 따라, 제2 출력 데이터(OD2)를 기반으로 논리 회로(525)의 천이 지연 고장이 판별될 수 있다.
상술한 바와 같이, 논리 회로(525)의 AT-SPEED 테스트가 수행되는 경우, 제1 코어(520)와 제2 코어(530) 사이의 인터페이스의 AT-SPEED 테스트가 수행될 수 있다. 즉, 본 발명의 실시 예들에 따르면, 하위 레벨 코어들 사이의 인터페이스에 대한 AT-SPEED 테스트가 용이하게 수행될 수 있다.
도 11에 도시된 바와 같이, 동일한 모드 신호(MODE)에 대하여 제1 모드 컨트롤러(524) 및 제2 모드 컨트롤러(534)는 다르게 동작할 수 있다. 모드 컨트롤러들(524, 534) 각각은 테스트 대상이 되는 논리 회로(525)의 위치에 따라 선택 신호(CS)를 생성할 수 있다. 예를 들어, 논리 회로(525)가 제1 선택 회로(523)를 기준으로 출력 데이터 경로 상에 위치하므로, 제1 모드 컨트롤러(524)는 제1 선택 회로(523)로부터 제1 테스트 데이터(TD1)가 출력되도록 제1 선택 신호(CS1)를 생성할 수 있다. 예를 들어, 논리 회로(525)가 제2 선택 회로(533)를 기준으로 입력 데이터 경로 상에 위치하므로, 제2 모드 컨트롤러(534)는 제2 선택 회로(533)로부터 제2 기능 데이터(FD2)가 출력되도록 제2 선택 신호(CS2)를 생성할 수 있다.
도 11에는 논리 회로(525)가 제1 코어(520)에 포함되는 것으로 도시되었으나, 본 발명은 이에 한정되지 않는다. 예를 들어, 논리 회로(525)는 제2 코어(530)에 포함될 수 있다. 즉, 제1 레지스터(521) 및 제2 레지스터(531) 사이에 위치하는 논리 회로에 대한 AT-SPEED 테스트가 수행될 수 있다.
도 12는 본 발명의 하나의 실시 예에 따른 테스트 시스템(1000)을 보여주는 블록도이다. 도 12를 참조하면, 테스트 시스템(1000)은 테스트 장치(600) 및 SoC(700)를 포함할 수 있다. SoC(700)는 탑 컨트롤러(710) 및 논리 회로(720)를 포함할 수 있다.
테스트 장치(600)는 SoC(700)의 논리 회로(720)에 대한 스캔 테스트를 수행하고, 논리 회로(720)의 결함을 판별할 수 있다. 스캔 테스트를 위해, 테스트 장치(600)는 스캔 데이터(SD)를 SoC(700)로 제공할 수 있다. 테스트 장치(600)는 스캔 데이터(SD)에 기초하여 SoC(700)로부터 출력된 결과 데이터(RD)를 수신할 수 있다. 이 경우, 결과 데이터(RD)는 스캔 데이터(SD)를 기반으로 논리 회로(720)로부터 출력된 데이터일 수 있다. 테스트 장치(600)는 결과 데이터(RD)를 기반으로 논리 회로(720)의 결함을 판별할 수 있다.
논리 회로(720)에 대한 스캔 테스트를 위해, 테스트 장치(600)는 제어 신호들(CTRL)을 SoC(700)로 제공할 수 있다. 제어 신호들(CTRL)은 스캔 테스트를 위해 필요한 다양한 신호들을 포함할 수 있다. 예를 들어, 제어 신호들(CTRL)은 스캔 인에이블(SE), 클록(CLK), 테스트 대상에 대한 정보, 테스트 모드에 대한 정보 등을 포함할 수 있다. SoC(700)는 제어 신호들(CTRL)에 기초하여 논리 회로(720)를 테스트하기 위한 동작을 수행할 수 있다.
탑 컨트롤러(710)는 제어 신호들(CTRL)을 기반으로 SoC(700) 내부의 회로들의 동작을 제어하기 위한 제어 신호들을 생성할 수 있다. 예를 들어, 탑 컨트롤러(710)는 논리 회로(720)의 테스트 모드를 나타내는 모드 신호(MODE)를 생성할 수 있다. 탑 컨트롤러(710)로부터 생성된 제어 신호들에 기초하여 논리 회로(720)를 테스트하기 위한 동작이 수행될 수 있다.
예를 들어, 논리 회로(720)의 AT-SPEED 테스트를 위해, 테스트 장치(600)는 스캔 데이터(SD), 스캔 제어 신호들(CTRL)을 SoC(700)로 제공할 수 있다. 탑 컨트롤러(710)는 제어 신호들(CTRL)을 기반으로 모드 신호(MODE)를 생성할 수 있다. 이 경우, 모드 신호(MODE)는 논리 회로(720)의 AT-SPEED 테스트 모드를 나타낼 수 있다. 도 1 내지 도 11을 참조하여 설명된 바와 같이, 스캔 데이터(SD), 모드 신호(MODE), 스캔 인에이블(SE), 클록(CLK)을 기반으로 논리 회로(720)의 AT-SPEED 테스트가 수행될 수 있다. 이 경우, 논리 회로(720)의 위치에 관계 없이 논리 회로(720)의 AT-SPEED 테스트가 수행될 수 있다.
도 13은 본 발명의 실시 예들에 따른 SoC가 적용된 전자 시스템(2000)의 예시적인 구성을 보여주는 블록도이다.
전자 시스템(2000)은 메인 프로세서(2100), 워킹 메모리(2200), 스토리지 장치(2300), 프로세싱 장치(2400), 유저 인터페이스(2500) 및 버스(2600)를 포함할 수 있다. 예를 들어, 전자 시스템(2000)은 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 스마트 폰, 웨어러블 장치, 전기 자동차, 워크스테이션 등과 같은 전자 장치들 중 하나일 수 있다. 예를 들어, 전자 시스템(2000)은 최종 사용자(End-user)에 의해 이용되는 전자 장치일 수 있다. 또는, 전자 시스템(2000)은 서버 시스템, 데이터 센터 등과 같은 대규모 시스템의 구성 요소일 수 있다.
메인 프로세서(2100)는 전자 시스템(2000)의 전반적인 동작들을 제어할 수 있다. 메인 프로세서(2100)는 다양한 종류의 산술 연산들 및/또는 논리 연산들을 수행할 수 있다. 도 1 내지 도 12를 참조하여 설명된 바와 같이, 메인 프로세서(2100)는 복수의 코어들이 포함된 SoC 형태로 구현될 수 있다. 이 경우, 메인 프로세서(2100)의 논리 회로에 대한 AT-SPEED 테스트가 용이하게 수행될 수 있다.
워킹 메모리(2200)는 전자 시스템(2000)의 동작에 이용되는 데이터를 저장할 수 있다. 예시적으로, 워킹 메모리(2200)는 메인 프로세서(2100)에 의해 처리된 또는 처리될 데이터를 일시적으로 저장할 수 있다. 예를 들어, 워킹 메모리(2200)는 DRAM(Dynamic RAM), SDRAM(Synchronous RAM) 등과 같은 휘발성 메모리, 및/또는 PRAM(Phase-change RAM), MRAM(Magneto-resistive RAM), ReRAM(Resistive RAM), FRAM(Ferro-electric RAM) 등과 같은 불휘발성 메모리를 포함할 수 있다.
스토리지 장치(2300)는 전력 공급에 관계없이 데이터를 저장할 수 있다. 예를 들어, 스토리지 장치(1300)는 플래시 메모리, PRAM, MRAM, ReRAM, FRAM 등과 같은 불휘발성 메모리를 포함할 수 있다. 예를 들어, 스토리지 장치(2300)는 HDD(Hard Disk Drive), SSD(Solid State Drive), 카드 스토리지, 임베디드(Embedded) 스토리지 등과 같은 스토리지 매체를 포함할 수 있다.
프로세싱 장치(2400)는 메인 프로세서(2100)의 제어 하에서 수신된 데이터를 처리할 수 있다. 프로세싱 장치(2400)는 다양한 연산을 통해 수신된 데이터를 처리할 수 있다. 프로세싱 장치(2400)는 처리된 데이터를 메인 프로세서(2100)로 제공할 수 있다. 즉, 프로세싱 장치(2400)는 특정 연산에 특화된 전용 프로세서일 수 있다. 예를 들어, 프로세싱 장치(2400)는 그래픽 처리 장치(GPU), 뉴럴 프로세싱 장치(NPU), 디지털 신호 처리 장치(DSP) 등으로 구현될 수 있다. 도 1 내지 도 12를 참조하여 설명된 바와 같이, 프로세싱 장치(2400)는 복수의 코어들이 포함된 SoC 형태로 구현될 수 있다. 이 경우, 프로세싱 장치(2400)의 논리 회로에 대한 AT-SPEED 테스트가 용이하게 수행될 수 있다.
유저 인터페이스(2500)는 사용자와 전자 시스템(2000) 사이의 통신을 중재할 수 있다. 예를 들어, 유저 인터페이스(2500)는 키보드, 마우스, 키패드, 버튼, 터치 패널, 터치 스크린, 터치 패드, 터치 볼, 카메라, 마이크, 자이로스코프 센서, 진동 센서 등과 같은 입력 인터페이스를 포함할 수 있다. 예를 들어, 유저 인터페이스(2500)는 LCD(Liquid Crystal Display) 장치, LED(Light Emitting Diode) 표시 장치, OLED(Organic LED) 표시 장치, AMOLED(Active Matrix OLED) 표시 장치, 스피커, 모터 등과 같은 출력 인터페이스를 포함할 수 있다.
버스(2600)는 전자 시스템(2000)의 구성 요소들 사이에서 통신 경로를 제공할 수 있다. 전자 시스템(2000)의 구성 요소들은 버스(2600)의 버스 포맷에 기초하여 서로 데이터를 교환할 수 있다. 예를 들어, 버스 포맷은 USB, SCSI(Small Computer System Interface), PCIe(Peripheral Component Interconnect Express), M-PCIe(Mobile PCIe), ATA(Advanced Technology Attachment), PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI), IDE(Integrated Drive Electronics), EIDE(Enhanced IDE), NVMe(Nonvolatile Memory Express), UFS(Universal Flash Storage) 등과 같은 다양한 인터페이스 규약 중 하나 이상을 포함할 수 있다.
상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
100: 시스템-온-칩
101: 제1 레지스터
102: 인버팅 회로
103: 선택 회로
104: 모드 컨트롤러
105: 논리 회로
106: 제2 레지스터
110: 최상위 레벨 코어
120: 코어

Claims (20)

  1. 복수의 코어들을 포함하는 시스템-온-칩에 있어서,
    상기 복수의 코어들 중 제1 코어에 포함되고, 상기 제1 코어의 입력 포트에 최 근접한 제1 스캔 레지스터;
    상기 제1 스캔 레지스터의 피드백 경로 상에 위치하는 인버팅 회로;
    상기 제1 코어에 포함되는 제2 스캔 레지스터; 및
    상기 제1 스캔 레지스터 및 상기 제2 스캔 레지스터 사이의 데이터 경로 상에 위치하는 논리 회로를 포함하고,
    상기 논리 회로의 AT-SPEED 테스트를 위한 테스트 모드에서,
    상기 인버팅 회로는 상기 제1 스캔 레지스터로부터 출력된 스캔 데이터를 반전시켜 테스트 데이터를 생성하고,
    상기 제1 스캔 레지스터는 클록의 제1 펄스에 응답하여 상기 테스트 데이터를 저장하고,
    상기 논리 회로는 상기 제1 스캔 레지스터로부터 출력되는 상기 테스트 데이터에 기초하여 결과 데이터를 출력하고,
    상기 제2 스캔 레지스터는 상기 클록의 제2 펄스에 응답하여 상기 결과 데이터를 저장하는 시스템-온-칩.
  2. 제 1 항에 있어서,
    상기 제2 펄스는 상기 제1 펄스에 바로 뒤따르는 시스템-온-칩.
  3. 제 1 항에 있어서,
    상기 클록의 주파수는 상기 시스템-온-칩의 정상 기능(normal function)을 위한 구동 클록의 주파수와 동일한 시스템-온-칩.
  4. 제 1 항에 있어서,
    상기 제2 스캔 레지스터에 저장된 상기 결과 데이터를 기반으로 상기 논리 회로의 천이 지연 고장이 판별되는 시스템-온-칩.
  5. 제 1 항에 있어서,
    상기 입력 포트로부터 출력되는 기능 데이터와 상기 인버팅 회로로부터 출력되는 상기 테스트 데이터 중 하나를 상기 제1 스캔 레지스터로 제공하도록 구성된 선택 회로를 더 포함하고,
    상기 테스트 모드에서, 상기 선택 회로는 상기 테스트 데이터를 상기 제1 스캔 레지스터로 제공하는 시스템-온-칩.
  6. 제 5 항에 있어서,
    상기 기능 데이터는 상기 복수의 코어들 중 최상위 레벨 코어로부터 제공되는 시스템-온-칩.
  7. 복수의 코어들을 포함하는 시스템-온-칩에 있어서,
    상기 복수의 코어들 중 제1 코어에 포함되고, 상기 제1 코어의 출력 포트에 최 근접한 제1 스캔 레지스터;
    상기 제1 스캔 레지스터의 피드백 경로 상에 위치하는 제1 인버팅 회로;
    상기 복수의 코어들 중 제2 코어에 포함되는 제2 스캔 레지스터; 및
    상기 제1 스캔 레지스터 및 상기 제2 스캔 레지스터 사이의 데이터 경로 상에 위치하는 논리 회로를 포함하고,
    상기 논리 회로의 AT-SPEED 테스트를 위한 테스트 모드에서,
    상기 제1 인버팅 회로는 상기 제1 스캔 레지스터로부터 출력된 스캔 데이터를 반전시켜 제1 테스트 데이터를 생성하고,
    상기 제1 스캔 레지스터는 클록의 제1 펄스에 응답하여 상기 제1 테스트 데이터를 저장하고,
    상기 논리 회로는 상기 제1 스캔 레지스터로부터 출력되는 상기 제1 테스트 데이터에 기초하여 결과 데이터를 출력하고,
    상기 제2 스캔 레지스터는 상기 클록의 제2 펄스에 응답하여 상기 결과 데이터를 저장하는 시스템-온-칩.
  8. 제 7 항에 있어서,
    상기 제2 펄스는 상기 제1 펄스에 바로 뒤따르는 시스템-온-칩.
  9. 제 7 항에 있어서,
    상기 클록의 주파수는 상기 시스템-온-칩의 정상 기능을 위한 구동 클록의 주파수와 동일한 시스템-온-칩.
  10. 제 7 항에 있어서,
    상기 제2 스캔 레지스터에 저장된 상기 결과 데이터를 기반으로 상기 논리 회로의 천이 지연 고장이 판별되는 시스템-온-칩.
  11. 제 7 항에 있어서,
    기능 데이터와 상기 제1 인버팅 회로로부터 출력되는 상기 제1 테스트 데이터를 수신하고, 상기 기능 데이터와 상기 제1 테스트 데이터 중 하나를 상기 제1 스캔 레지스터로 제공하도록 구성된 제1 선택 회로를 더 포함하고,
    상기 테스트 모드에서, 상기 제1 선택 회로는 상기 제1 테스트 데이터를 상기 제1 스캔 레지스터로 제공하는 시스템-온-칩.
  12. 제 11 항에 있어서,
    상기 제2 스캔 레지스터의 피드백 경로 상에 위치하는 제2 인버팅 회로; 및
    상기 결과 데이터와 상기 제2 인버팅 회로로부터 출력되는 제2 테스트 데이터 중 하나를 상기 제2 스캔 레지스터로 제공하도록 구성된 제2 선택 회로를 더 포함하고,
    상기 테스트 모드에서, 상기 제2 선택 회로는 상기 결과 데이터를 상기 제2 스캔 레지스터로 제공하는 시스템-온-칩.
  13. 제 7 항에 있어서,
    상기 제2 코어는 최상위 레벨 코어인 시스템-온-칩.
  14. 제1 스캔 레지스터 및 제2 스캔 레지스터 사이의 데이터 경로 상에 위치하는 논리 회로의 AT-SPEED 테스트를 위한 시스템-온-칩의 동작 방법에 있어서,
    상기 제1 스캔 레지스터가 제1 주파수를 갖는 클록에 응답하여 스캔 데이터를 출력하는 단계;
    상기 제1 스캔 레지스터로부터 출력되는 상기 스캔 데이터를 반전시켜 생성된 테스트 데이터를 상기 제1 스캔 레지스터로 제공하는 단계;
    상기 제1 스캔 레지스터가 제2 주파수를 갖는 상기 클록의 제1 펄스에 응답하여 상기 테스트 데이터를 출력하는 단계;
    상기 논리 회로가 상기 제1 스캔 레지스터로부터 출력되는 상기 테스트 데이터에 기초하여 결과 데이터를 출력하는 단계; 및
    상기 제2 스캔 레지스터가 상기 제2 주파수를 갖는 상기 클록의 제2 펄스에 응답하여 상기 결과 데이터를 저장하는 단계를 포함하는 동작 방법.
  15. 제 14 항에 있어서,
    상기 제2 펄스는 상기 제1 펄스에 바로 뒤따르는 동작 방법.
  16. 제 14 항에 있어서,
    상기 제2 주파수는 상기 시스템-온-칩의 정상 기능을 위한 구동 클록의 주파수와 동일한 동작 방법.
  17. 제 14 항에 있어서,
    상기 제2 스캔 레지스터에 저장된 상기 결과 데이터를 기반으로 상기 논리 회로의 천이 지연 고장이 판별되는 동작 방법.
  18. 제 14 항에 있어서,
    상기 시스템-온-칩은 제1 입력 포트 및 제1 출력 포트를 포함하는 제1 코어 및 제2 입력 포트 및 제2 출력 포트를 포함하는 제2 코어를 포함하고,
    상기 제1 출력 포트는 상기 제2 입력 포트에 연결되는 동작 방법.
  19. 제 18 항에 있어서,
    상기 제1 스캔 레지스터 및 상기 제2 스캔 레지스터는 상기 제1 코어에 포함되고,
    상기 제1 스캔 레지스터는 상기 제1 입력 포트에 최 근접한 입력 래퍼(wrapper) 레지스터인 동작 방법.
  20. 제 18 항에 있어서,
    상기 제1 스캔 레지스터는 상기 제1 코어에 포함되고,
    상기 제2 스캔 레지스터는 상기 제2 코어에 포함되고,
    상기 제1 스캔 레지스터는 상기 제1 출력 포트에 최 근접한 출력 래퍼 레지스터이고,
    상기 제2 스캔 레지스터는 상기 제2 입력 포트에 최 근접한 입력 래퍼 레지스터인 동작 방법.
KR1020190003372A 2019-01-10 2019-01-10 논리 회로의 at-speed 테스트를 위한 시스템-온-칩 및 그것의 동작 방법 KR102681969B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020190003372A KR102681969B1 (ko) 2019-01-10 논리 회로의 at-speed 테스트를 위한 시스템-온-칩 및 그것의 동작 방법
US16/544,160 US10969432B2 (en) 2019-01-10 2019-08-19 System-on-chip for at-speed test of logic circuit and operating method thereof
DE102019124122.7A DE102019124122A1 (de) 2019-01-10 2019-09-09 Ein-Chip-System für einen At-Speed-Test einer Logikschaltung und Betriebsverfahren desselben
CN201911232389.1A CN111426946B (zh) 2019-01-10 2019-12-05 用于逻辑电路的全速测试的系统芯片及其操作方法
US17/206,288 US11442107B2 (en) 2019-01-10 2021-03-19 System-on-chip for AT-SPEED test of logic circuit and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190003372A KR102681969B1 (ko) 2019-01-10 논리 회로의 at-speed 테스트를 위한 시스템-온-칩 및 그것의 동작 방법

Publications (2)

Publication Number Publication Date
KR20200087375A KR20200087375A (ko) 2020-07-21
KR102681969B1 true KR102681969B1 (ko) 2024-07-08

Family

ID=

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002001719A2 (en) 2000-06-29 2002-01-03 Logicvision, Inc. Method and apparatus for testing high performance circuits
US20020138801A1 (en) 2001-03-01 2002-09-26 Laung-Terng Wang Method and apparatus for diagnosing failures in an integrated circuit using design-for-debug (DFD) techniques
WO2007069097A1 (en) 2005-11-02 2007-06-21 Nxp B.V. Ic testing methods and apparatus
US20140181605A1 (en) 2012-03-25 2014-06-26 Hanmanth R. Lingannagari Asynchronous programmable jtag-based interface to debug any system-on-chip states, power modes, resets, clocks, and complex digital logic
US20140229778A1 (en) 2013-02-14 2014-08-14 Lsi Corporation At-speed scan testing of interface functional logic of an embedded memory or other circuit core
US20180367128A1 (en) 2017-06-16 2018-12-20 International Business Machines Corporation Increasing resolution of on-chip timing uncertainty measurements

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002001719A2 (en) 2000-06-29 2002-01-03 Logicvision, Inc. Method and apparatus for testing high performance circuits
US20020138801A1 (en) 2001-03-01 2002-09-26 Laung-Terng Wang Method and apparatus for diagnosing failures in an integrated circuit using design-for-debug (DFD) techniques
WO2007069097A1 (en) 2005-11-02 2007-06-21 Nxp B.V. Ic testing methods and apparatus
US20080288842A1 (en) 2005-11-02 2008-11-20 Nxp B.V. Ic Testing Methods and Apparatus
US20140181605A1 (en) 2012-03-25 2014-06-26 Hanmanth R. Lingannagari Asynchronous programmable jtag-based interface to debug any system-on-chip states, power modes, resets, clocks, and complex digital logic
US20140229778A1 (en) 2013-02-14 2014-08-14 Lsi Corporation At-speed scan testing of interface functional logic of an embedded memory or other circuit core
US20180367128A1 (en) 2017-06-16 2018-12-20 International Business Machines Corporation Increasing resolution of on-chip timing uncertainty measurements

Similar Documents

Publication Publication Date Title
CN111426946B (zh) 用于逻辑电路的全速测试的系统芯片及其操作方法
CN103744009B (zh) 一种串行传输芯片测试方法、系统及集成芯片
KR101087182B1 (ko) 스토리지 테스터 및 ssd 디바이스
US8683265B2 (en) Debug state machine cross triggering
KR20130084611A (ko) 전속 병렬 dut 테스트용 솔루션
US8892794B2 (en) Using central direct memory access (CDMA) controller to test integrated circuit
US8381052B2 (en) Circuit and method for efficient memory repair
KR20110124617A (ko) 시스템-온-칩 및 그것의 디버깅 방법
KR20140037228A (ko) 고속 입력/출력 인터페이스를 사용하여 검사하는 집적회로
JP6728345B2 (ja) 対話型マルチステップ物理合成
US9798842B1 (en) Circuit design instrumentation for state visualization
US9222981B2 (en) Global low power capture scheme for cores
US11428734B2 (en) Test board and test system including the same
KR102681969B1 (ko) 논리 회로의 at-speed 테스트를 위한 시스템-온-칩 및 그것의 동작 방법
US20150046763A1 (en) Apparatus and Method for Controlling Internal Test Controllers
US11662383B2 (en) High-speed functional protocol based test and debug
CN105608033B (zh) 半导体装置及其操作方法
US8683404B2 (en) Semiconductor verification apparatus, method, and program
US8788897B2 (en) Path-based crosstalk fault test scanning in built-in self-testing
CN109145338B (zh) 一种修复电压降的方法及装置
US10990739B1 (en) Scan channel fabric for tiled circuit designs
US20210173989A1 (en) Simulation signal viewing method and system for digital product
US12032015B1 (en) Flexible input/output (I/O) allocation for integrated circuit scan testing
EP4310523A1 (en) Test and repair of interconnects between chips
US11940494B2 (en) System on chip for performing scan test and method of designing the same