KR20050087270A - 내장형 셀프 테스트 회로를 가지는 soc 및 그 셀프테스트 방법 - Google Patents

내장형 셀프 테스트 회로를 가지는 soc 및 그 셀프테스트 방법 Download PDF

Info

Publication number
KR20050087270A
KR20050087270A KR1020040012991A KR20040012991A KR20050087270A KR 20050087270 A KR20050087270 A KR 20050087270A KR 1020040012991 A KR1020040012991 A KR 1020040012991A KR 20040012991 A KR20040012991 A KR 20040012991A KR 20050087270 A KR20050087270 A KR 20050087270A
Authority
KR
South Korea
Prior art keywords
test
data
control
signal
response
Prior art date
Application number
KR1020040012991A
Other languages
English (en)
Other versions
KR100594257B1 (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 삼성전자주식회사
Priority to KR1020040012991A priority Critical patent/KR100594257B1/ko
Priority to JP2005052074A priority patent/JP2005241651A/ja
Priority to US11/066,585 priority patent/US7421635B2/en
Priority to CNB2005100525265A priority patent/CN100514081C/zh
Publication of KR20050087270A publication Critical patent/KR20050087270A/ko
Application granted granted Critical
Publication of KR100594257B1 publication Critical patent/KR100594257B1/ko
Priority to US12/182,785 priority patent/US7761763B2/en

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/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318335Test pattern compression or decompression
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02MSUPPLYING COMBUSTION ENGINES IN GENERAL WITH COMBUSTIBLE MIXTURES OR CONSTITUENTS THEREOF
    • F02M25/00Engine-pertinent apparatus for adding non-fuel substances or small quantities of secondary fuel to combustion-air, main fuel or fuel-air mixture
    • F02M25/022Adding fuel and water emulsion, water or steam
    • F02M25/0227Control aspects; Arrangement of sensors; Diagnostics; Actuators
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F01MACHINES OR ENGINES IN GENERAL; ENGINE PLANTS IN GENERAL; STEAM ENGINES
    • F01MLUBRICATING OF MACHINES OR ENGINES IN GENERAL; LUBRICATING INTERNAL COMBUSTION ENGINES; CRANKCASE VENTILATING
    • F01M13/00Crankcase ventilating or breathing
    • F01M13/0011Breather valves
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02BINTERNAL-COMBUSTION PISTON ENGINES; COMBUSTION ENGINES IN GENERAL
    • F02B43/00Engines characterised by operating on gaseous fuels; Plants including such engines
    • F02B43/02Engines characterised by means for increasing operating efficiency
    • F02B43/04Engines characterised by means for increasing operating efficiency for improving efficiency of combustion
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02BINTERNAL-COMBUSTION PISTON ENGINES; COMBUSTION ENGINES IN GENERAL
    • F02B47/00Methods of operating engines involving adding non-fuel substances or anti-knock agents to combustion air, fuel, or fuel-air mixtures of engines
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02MSUPPLYING COMBUSTION ENGINES IN GENERAL WITH COMBUSTIBLE MIXTURES OR CONSTITUENTS THEREOF
    • F02M25/00Engine-pertinent apparatus for adding non-fuel substances or small quantities of secondary fuel to combustion-air, main fuel or fuel-air mixture
    • F02M25/08Engine-pertinent apparatus for adding non-fuel substances or small quantities of secondary fuel to combustion-air, main fuel or fuel-air mixture adding fuel vapours drawn from engine fuel reservoir
    • F02M25/0836Arrangement of valves controlling the admission of fuel vapour to an engine, e.g. valve being disposed between fuel tank or absorption canister and intake manifold
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02MSUPPLYING COMBUSTION ENGINES IN GENERAL WITH COMBUSTIBLE MIXTURES OR CONSTITUENTS THEREOF
    • F02M25/00Engine-pertinent apparatus for adding non-fuel substances or small quantities of secondary fuel to combustion-air, main fuel or fuel-air mixture
    • F02M25/10Engine-pertinent apparatus for adding non-fuel substances or small quantities of secondary fuel to combustion-air, main fuel or fuel-air mixture adding acetylene, non-waterborne hydrogen, non-airborne oxygen, or ozone

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

내장형 셀프 테스트 회로를 가지는 SOC 및 그 셀프 테스트 방법이 개시된다. 본 발명에 의한 내장형 셀프 테스트 회로를 가지는 SOC는, BIST(Built-in-self-test) 로직 회로를 포함하는 IP(Intellectual property) 블록들과 BIST 컨트롤부를 구비하는 것을 특징으로 한다. BIST 로직 회로는 시스템 버스를 통하여 수신되는 제어 데이터에 응답하여 노말 모드 또는 테스트 모드로 동작하고, 테스트 모드에서 테스트 결과 데이터를 출력한다. BIST 컨트롤부는 테스트 모드에서, 시스템 버스를 통하여 BIST 로직 회로에 제어 데이터, 커맨드 신호, 테스트 패턴 데이터들, 및 테스트 어드레스 신호들을 전송하여 IP 블록들을 테스트하고, 시스템 버스를 통하여 수신되는 테스트 결과 데이터를 압축하여 저장한다. 본 발명에 의한 내장형 셀프 테스트 회로를 가지는 SOC 및 그 셀프 테스트 방법은 SOC의 동작 속도로 테스트를 수행하고, 테스트 시간을 단축시키고, SOC가 보드에 실장된 후에도 테스트를 수행할 수 있는 장점이 있다.

Description

내장형 셀프 테스트 회로를 가지는 SOC 및 그 셀프 테스트 방법{System-on-chip having built-in self test circuits and self test method of the same}
본 발명은 SOC(system-on-chip)에 관한 것으로서, 특히, SOC의 테스트에 관한 것이다.
일반적으로, SOC의 동작 특성을 테스트하기 위해 ATE에 의한 스캔 테스트 방식이 주로 사용된다. ATE는 자동으로 SOC를 테스트하는 장비로서 SOC에 자극(stimulus) 신호를 인가하고, 상기 자극 신호에 대한 SOC의 응답 신호를 검사함으로써 SOC의 불량 여부를 테스트한다. 이와 관련하여, 종래의 ATE의 일례가 미국 특허 4,763,066호에 기재되어 있다. 통상적으로, ATE에 의한 테스트의 최종 결과는 SOC의 응답 신호가 설정된 허용 오차 범위내의 포함되면 '패스'이고, 상기 허용 오차 범위에서 벗어나면 '실패'이다.
도 1은 종래 기술에 따른 SOC(10)와 ATE(20)를 나타내는 블록도이다. 도 1을 참고하면, 상기 SOC(10)는 시스템 버스(40)에 연결되는 IP 블록들(50∼80)을 포함한다. 상기 ATE(20)는 상기 SOC(10)의 패드(30)에 연결되고, 상기 패드(30)와 상기 시스템 버스(40)를 통하여 상기 IP 블록들(50∼80)에 각각 순차적으로 자극 신호를 인가함으로써 상기 SOC(10)를 테스트한다. 여기에서, 상기 IP 블록들(50∼80)은 각각 상기 ATE(20)에 의한 스캔 테스트를 위해, 테스트 신호용 패스를 포함한다.
도 2는 도 1에 도시된 SOC(10)에 포함되는 IP 블록(50)의 내부 구성을 나타낸다. 도 2를 참고하면, 상기 IP 블록(50)은 조합 회로들(51∼53), 멀티플렉서들(54∼56), 및 저장 셀들(57∼59)을 포함한다. 도시되지는 않았지만, 상기 IP 블록(50)은 추가의 조합 회로들과 저장 셀들을 더 포함한다. 상기 멀티플렉서들(54∼56)은 상기 IP 블록(50)의 스캔 테스트를 위해 추가된 회로들이고, 상기 멀티플렉서들(54∼56)과 상기 저장 셀들(57∼59)이 스캔 체인(즉, 테스트 신호용 패스)을 형성한다. 상기 멀티플렉서들(54∼56)에 의해 상기 IP 블록(50)내의 모든 조합 회로들과 저장 셀들이 연결되어 테스트 신호용 패스가 형성된다.
상기 SOC(10)가 테스트될 때, 상기 IP 블록(50)에는 테스트 제어 신호(SCAN_EN)와 테스트 신호(SCAN_DATA)가 입력된다. 상기 테스트 제어 신호(SCAN_EN)가 인에이블될 때, 상기 테스트 신호(SCAN_DATA)는 상기 멀티플렉서들(54∼56)과 상기 저장 셀들(57∼59)에 의해 형성된 상기 스캔 체인을 순차적으로 이동한다. 즉, 상기 테스트 신호(SCAN_DATA)는 상기 멀티플렉서(54), 상기 저장 셀(57), 상기 멀티플렉서(55), 상기 저장 셀(58), 및 상기 멀티플렉서(56)의 순서로 이동한다. 이렇게 상기 테스트 신호(SCAN_DATA)가 상기 스캔 체인의 모든 구성요소들을 통과할 때까지 걸리는 시간은 테스트 시간을 증가시키는 큰 요인이 된다. 따라서 종래의 ATE에 의한 스캔 테스트 방식에 의하면 테스트 시간이 증가한다. 또, 종래의 ATE에 의한 스캔 테스트 방식은 SOC의 동작 속도로 테스트를 수행하는 것이 어렵기 때문에, SOC의 동작 타이밍과 관련된 결함(fault)의 검출면에서 취약하다. 또, ATE에 의한 스캔 테스트 방식은 보드에 실장되기 이전 단계의 SOC에 대한 테스트만 가능하므로, SOC가 특정 시스템에 적용되어 보드에 실장된 후에는 SOC의 테스트가 어려운 문제점이 있었다.
본 발명이 이루고자하는 기술적 과제는, SOC의 동작 속도로 테스트를 수행하고, 테스트 시간을 단축시키고, SOC가 보드에 실장된 후에도 테스트를 수행할 수 있는 내장형 셀프 테스트 회로를 가지는 SOC를 제공하는데 있다.
본 발명이 이루고자하는 다른 기술적 과제는, SOC의 동작 속도로 테스트를 수행하고, 테스트 시간을 단축시키고, SOC가 보드에 실장된 후에도 테스트를 수행할 수 있는 내장형 셀프 테스트 회로를 가지는 SOC의 셀프 테스트 방법을 제공하는데 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 일실시예에 따른 내장형 셀프 테스트 회로를 가지는 SOC는, BIST(Built-in-self-test) 로직 회로를 포함하는 IP(Intellectual property) 블록들과 BIST 컨트롤부를 구비하는 것을 특징으로 한다. BIST 로직 회로는 시스템 버스를 통하여 수신되는 제어 데이터에 응답하여 노말 모드 또는 테스트 모드로 동작하고, 테스트 모드에서 테스트 결과 데이터를 출력한다. BIST 컨트롤부는 테스트 모드에서, 시스템 버스를 통하여 BIST 로직 회로에 제어 데이터, 커맨드 신호, 테스트 패턴 데이터들, 및 테스트 어드레스 신호들을 전송하여 IP 블록들을 테스트하고, 시스템 버스를 통하여 수신되는 테스트 결과 데이터를 압축하여 저장한다.
상기 다른 기술적 과제를 달성하기 위한 본 발명의 일실시예에 따른 내장형 셀프 테스트 회로를 가지는 SOC의 셀프 테스트 방법은, 셀프 테스트 기능을 가지는 SOC의 셀프 테스트 방법에 있어서, (a) BIST 컨트롤부가 BIST 로직 회로를 통하여, 제1 조합 회로에 테스트 패턴 데이터들을 순차적으로 입력시키는 단계; (b) 제2 조합 회로로부터 출력되는 테스트 결과 데이터들을 상기 BIST 로직 회로내의 저장 셀들에 동시에 저장시키는 단계; (c) 상기 저장 셀들에 저장된 상기 테스트 결과 데이터들을 순차적으로 독출하는 단계; 및 (d) 독출된 상기 테스트 결과 데이터들을 압축하여 저장하는 단계를 포함하는 것을 특징으로 한다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 3은 본 발명에 따른 내장형 셀프 테스트 회로를 가지는 SOC(100)를 나타내는 블록도이다. 도 3을 참고하면, 상기 SOC(100)는 BIST(Built-in-self-test) 컨트롤부(120)와 IP 블록들(130∼160), 및 버스 마스터(bus master)(170)를 포함한다. 설명의 편의상, 도 3에서 본 발명과 관련되지 않은 부분들에 대한 도시는 생략된다.
상기 BIST 컨트롤부(120)와 상기 IP 블록들(130∼160)은 시스템 버스(110)에 연결되고, 상기 시스템 버스(110)를 통하여 상호 통신한다. 상기 BIST 컨트롤부(120)는 시퀀스(sequence) 발생기(121), 어드레스 발생기(122), 패턴 발생부(123), 및 결과 압축부(124)를 포함한다. 상기 시퀀스(sequence) 발생기(121), 상기 어드레스 발생기(122), 상기 패턴 발생부(123), 및 상기 결과 압축부(124)에는 클럭 신호(CLK)가 입력된다. 상기 SOC(100)가 테스트 모드일 때, 상기 시퀀스 발생기(121)는 기입 커맨드 신호(WRITE) 또는 독출 커맨드 신호(READ)를 발생하여 상기 시스템 버스(110)에 출력한다. 또, 상기 시퀀스 발생기(121)는 시퀀스 제어 신호들(CTL1∼CTL3)을 발생하여 상기 어드레스 발생기(122), 상기 패턴 생성부(123), 및 상기 결과 압축부(124)에 각각 출력한다.
상기 어드레스 발생기(122)는 상기 시퀀스 제어 신호(CTL1)에 응답하여, 테스트 어드레스 신호들(TA0∼TAK)(K는 정수)을 발생하여 상기 시스템 버스(110)에 출력한다. 상기 패턴 생성부(123)는 상기 시퀀스 제어 신호(CTL2)에 응답하여, 제어 데이터(CRDAT)와 테스트 패턴 데이터들(TP1∼TPK)(K는 정수)을 생성하여 상기 시스템 버스(110)에 출력한다. 상기 결과 압축부(124)는 상기 시퀀스 제어 신호(CTL3)에 응답하여, 상기 시스템 버스(110)를 통하여 상기 IP 블록들(130∼160)로부터 테스트 결과 데이터(TRDAT)를 수신한다. 상기 테스트 결과 데이터(TRDAT)는 제1 테스트 결과 데이터들(FTR_D1∼FTR_DK)(K는 정수, 도 4 참고)과 제2 테스트 결과 데이터들(STR_D1∼STR_DJ)(J는 정수, 도 4 참고)을 포함한다.
상기 결과 압축부(124)는 수신된 상기 테스트 결과 데이터(TRDAT)를 압축하여 저장한다. 여기에서, 상기 결과 압축부(124)에 저장되는 상기 테스트 결과 데이터(TRDAT)의 압축 결과는 테스트 되는 상기 SOC(100)의 불량 여부에 따라 달라질 수 있다. 즉, 예정된 값들의 순서로 상기 결과 압축부(124)에 입력되는 경우 상기 테스트 결과 데이터(TRDAT)의 압축 결과와, 상기 SOC(100)내에 포함되는 상기 IP 블록들(130∼160) 중 어느 하나 또는 기타 다른 부분에서의 불량에 의해 상기 예정된 값들의 순서와 다른 순서로 상기 결과 압축부(124)에 입력되는 경우 상기 테스트 결과 데이터(TRDAT)의 압축 결과는 서로 다르다. 따라서 상기 결과 압축부(124)에 저장된 상기 테스트 결과 데이터(TRDAT)에 대한 최종 압축 결과와 설정된 값을 비교함으로써, 테스트 과정에서 SOC의 불량 검출 여부가 확인될 수 있다.
또, 도 3에 도시되지 않았지만, 상기 결과 압축부(124)에 압축되어 저장된 테스트 결과 정보는 외부의 제어 장치에 의해 독출됨으로써, 유저(user)가 상기 SOC(100)의 불량 여부를 확인할 수 있다. 이에 대한 구체적인 설명은 본 발명의 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있으므로 생략된다.
상기 IP 블록들(130∼160)은 BIST 로직 회로들(131∼161)을 각각 포함한다. 도 3에서 상기 BIST 로직 회로들(131∼161)이 각각 하나의 블록으로 도시되었지만, 상기 블록들 각각은 복수의 BIST 로직 회로들이 포함된 것이다.
상기 버스 마스터(170)는 상기 SOC(100)가 노말(normal) 모드일 때, 상기 IP 블록들(130∼160)의 노말 동작에 필요한 커맨드 신호(CMD), 어드레스 신호들(NA0∼NAK)(K는 정수), 제어 데이터(CRDAT), 및 노말 데이터들(NDAT1∼NDATK)(K는 정수)을 출력한다.
도 4는 도 3에 도시된 SOC(100)에 포함되는 IP 블록(130)의 내부 구성을 나타내는 도면이다. 상기 IP 블록들(140∼160)의 내부 구성 및 구체적인 동작은 상기 IP 블록(130)과 유사하다. 따라서 본 실시예에서는 상기 IP 블록(130)의 셀프 테스트 동작을 중심으로 설명하기로 한다.
도 4를 참고하면, 상기 IP 블록(130)은 BIST 로직 회로들(131a, 131b)과 조합 회로들(132a∼132c)을 포함한다. 상기 IP 블록(130)은 추가의 BIST 로직 회로들과 추가의 조합 회로들을 더 포함하지만, 상기 추가의 BIST 로직 회로들과 조합 회로들은 도면의 간략화를 위해 생략된다. 상기 BIST 로직 회로들(131a, 131b)과 조합 회로들(132a∼132c)은 하나씩 교번적으로 배치되고, 상기 BIST 로직 회로들(131a, 131b)은 상기 시스템 버스(110)에 연결된다. 상기 BIST 로직 회로들(131a, 131b)은 상기 시스템 버스(110)를 통하여 기입 커맨드 신호(WRITE) 또는 독출 커맨드 신호(READ)와 테스트 어드레스 신호들(TA0∼TAK), 및 테스트 패턴 데이터들(TP1∼TPK)을 수신한다.
상기 BIST 로직 회로들(131a, 131b)은 상기 기입 커맨드 신호(WRITE)와 상기 테스트 어드레스 신호들(TA0∼TAK)에 응답하여, 상기 테스트 패턴 데이터들(TP1∼TPK)을 저장하고, 저장된 상기 테스트 패턴 데이터들(TP1∼TPK)을 상기 조합 회로들(132b, 132c)에 각각 출력한다. 또, 상기 BIST 로직 회로들(131a, 131b)은 상기 독출 커맨드 신호(READ)와 상기 테스트 어드레스 신호들(TA0∼TAK)에 응답하여 상기 조합 회로들(132a, 132b)로부터 수신되는 테스트 결과 데이터(TRDAT)를 상기 시스템 버스(110)에 출력한다.
상기 BIST 로직 회로들(131a, 131b)은 상기 SOC(100)의 테스트 모드뿐만 아니라 노말(normal) 모드에서도 동작한다. 예를 들어, 상기 SOC(100)의 노말 모드에서, 상기 BIST 로직 회로(131b)는 상기 조합 회로(132b)로부터 수신되는 노말 동작과 관련된 신호들(미도시)을 상기 조합 회로(132c)에 전송한다. 상기 SOC(100)의 테스트 모드에서, 상기 BIST 로직 회로(131b)는 상기 테스트 패턴 데이터들(TP1∼TPK)을 상기 조합 회로(132c)에 전송하거나 또는 상기 조합 회로(132b)로부터 수신되는 상기 테스트 결과 데이터(TRDAT)를 상기 시스템 버스(110)에 출력한다.
도 5는 도 4에 도시된 BIST 로직 회로(131b)와 조합 회로들(132b, 132c)을 좀 더 상세히 나타내는 도면이다. BIST 로직 회로(131a, 도 4참고)의 구성 및 구체적인 동작은 상기 BIST 로직 회로(131b)와 유사하다. 도 5를 참고하면, 상기 BIST 로직 회로(131b)는 버스 인터페이스 장치(210), 제1 선택 회로들(FS1∼FSK)(K는 정수), 제1 저장 셀들(FC1∼FCK)(K는 정수), 제2 선택 회로들(SS1∼SSJ)(J는 정수), 제2 저장 셀들(SC1∼SCJ)(J는 정수), 제어 레지스터(220), 및 출력 선택 회로(230)를 포함한다.
상기 버스 인터페이스 장치(210)와 상기 출력 선택 회로(230)는 시스템 버스(110)에 연결된다. 상기 제1 선택 회로들(FS1∼FSK), 상기 제2 선택 회로들(SS1∼SSJ), 및 상기 제어 레지스터(220)는 데이터 패스(path) 라인(240)을 통하여 상기 시스템 버스(110)에 연결된다.
상기 SOC(100)의 테스트 모드에서, 상기 버스 인터페이스 장치(210)는 상기 시스템 버스(110)를 통하여 상기 BIST 컨트롤부(120)로부터 기입 커맨드 신호(WRITE) 또는 독출 커맨드 신호(READ)와, 테스트 어드레스 신호들(TA0∼TAK)을 수신한다. 상기 버스 인터페이스 장치(210)는 상기 기입 커맨드 신호(WRITE)와 상기 테스트 어드레스 신호(TA0)에 응답하여, 레지스터 제어 신호(W_en0)를 상기 제어 레지스터(220)에 출력한다.
또, 상기 버스 인터페이스 장치(210)는 상기 제어 레지스터(220)로부터 테스트 제어 신호들(TMREG2∼TMREG0)을 수신한다. 상기 버스 인터페이스 장치(210)는 상기 테스트 제어 신호(TMREG0)를 상기 제1 및 제2 선택 회로들(FS1∼FSK, SS1∼SSJ)에 출력한다. 상기 테스트 제어 신호(TMREG0)에 응답하여, 상기 버스 인터페이스 장치(210)와 상기 제1 및 제2 선택 회로들(FS1∼FSK, SS1∼SSJ)은 노말 모드 또는 테스트 모드로 동작한다. 즉, 상기 버스 인터페이스 장치(210)와 상기 제1 및 제2 선택 회로들(FS1∼FSK, SS1∼SSJ)은 상기 테스트 제어 신호(TMREG0)가 디세이블될 때 노말 모드로 동작하고, 상기 테스트 제어 신호(TMREG0)가 인에이블될 때 테스트 모드로 동작한다.
테스트 모드에서, 상기 버스 인터페이스 장치(210)는 상기 기입 커맨드 신호(WRITE), 상기 테스트 어드레스 신호들(TA1∼TAK), 및 상기 테스트 제어 신호들(TMREG2, TMREG1)에 응답하여 제1 선택 제어 신호들(FS_en1∼FS_enK)(K는 정수)과 제2 선택 제어 신호들(SS_en1∼SS_enJ)(J는 정수)을 출력한다. 이를 좀 더 상세히 설명하면, 상기 버스 인터페이스 장치(210)는 상기 테스트 제어 신호들(TMREG2, TMREG1)이 디세이블될 때, 상기 테스트 어드레스 신호들(TA1∼TAK)에 응답하여 상기 제1 선택 제어 신호들(FS_en1∼FS_enK)을 출력한다. 상기 버스 인터페이스 장치(210)는 상기 테스트 제어 신호(TMREG1)가 디세이블되고, 상기 테스트 제어 신호(TMREG2)가 인에이블될 때, 상기 테스트 어드레스 신호들(TA1∼TAK)에 응답하여 상기 제2 선택 제어 신호들(SS_en1∼SS_enJ)을 출력한다. 결국, 상기 버스 인터페이스 장치(210)는 상기 테스트 제어 신호(TMREG2)가 디세이블될 때 상기 시스템 버스(110)를 통하여 수신되는 상기 테스트 어드레스 신호들(TA1∼TAK)에 응답하여 상기 제1 선택 제어 신호들(FS_en1∼FS_enK)을 출력한다. 또, 상기 버스 인터페이스 장치(210)는 상기 테스트 제어 신호(TMREG2)가 인에이블될 때 상기 시스템 버스(110)를 통하여 수신되는 상기 테스트 어드레스 신호들(TA1∼TAK)에 응답하여 상기 제2 선택 제어 신호들(SS_en1∼SS_enJ)을 출력한다. 상기 제2 선택 제어 신호들(SS_en1∼SS_enJ)의 수가 상기 테스트 어드레스 신호들(TA1∼TAK)의 수 보다 더 작을 때, 상기 버스 인터페이스 장치(210)는 상기 테스트 어드레스 신호들(TA1∼TAJ)에 응답하여 상기 제2 선택 제어 신호들(SS_en1∼SS_enJ)을 출력한다.
또, 상기 버스 인터페이스 장치(210)는 상기 테스트 제어 신호(TMREG1)에 응답하여 제3 선택 제어 신호(TLEN)를 출력한다. 좀 더 상세하게는, 상기 테스트 제어 신호(TMREG1)가 인에이블될 때 상기 버스 인터페이스 장치(210)가 상기 제3 선택 제어 신호(TLEN)를 인에이블시키고, 상기 테스트 제어 신호(TMREG1)가 디세이블될 때 상기 버스 인터페이스 장치(210)가 상기 제3 선택 제어 신호(TLEN)를 디세이블시킨다. 상기 버스 인터페이스 장치(210)는 상기 테스트 어드레스 신호들(TA0∼TAK)을 상기 출력 선택 회로(230)에 출력한다. 또, 상기 버스 인터페이스 장치(210)는 상기 독출 커맨드 신호(READ)에 응답하여 상기 테스트 제어 신호(TMREG2)를 상기 출력 선택 회로(230)에 출력한다.
한편, 노말 모드일 때의 상기 버스 인터페이스 장치(210)의 동작은 테스트 모드일 때의 동작과 두 가지 차이점을 제외하고 동일하다. 첫 번째 차이점은 도 3에서 참고되는 것과 같이, 상기 버스 인터페이스 장치(210)가 상기 BIST 컨트롤부(120) 대신 상기 버스 마스터(170)로부터 커맨드 신호(CMD)와 어드레스 신호들(NA0∼NAK)을 수신하는 것이다. 따라서 상기 버스 인터페이스 장치(210)는 상기 커맨드 신호(CMD)와 상기 어드레스 신호들(NA0∼NAK)에 응답하여, 상기 레지스터 제어 신호(W_en0)와 상기 제1 선택 제어 신호들(FS_en1∼FS_enK)을 발생한다.
두 번째 차이점은 상기 버스 인터페이스 장치(210)가 상기 제2 선택 제어 신호들(SS_en1∼SS_enJ)을 발생하지 않는 것이다. 그 결과 상기 제2 선택 회로들(SS1∼SSJ)은 상기 조합 회로(132b)로부터 수신되는 노말 동작 관련 신호들(미도시)을 상기 제2 저장 셀들(SC1∼SCJ)에 출력하는 동작만을 수행한다. 즉, 노말 모드에서 상기 버스 마스터(170)는 상기 시스템 버스(110)를 통하여 상기 제2 선택 회로들(SS1∼SSJ)에 연결된 상기 제2 저장 셀들(SC1∼SCJ)에 데이터들을 기입하거나 또는 상기 제2 저장 셀들(SC1∼SCJ)로부터 데이터들을 독출할 수 없다.
상기 제1 선택 회로들(FS1∼FSK)은 상기 조합 회로(132b)와 상기 제1 저장 셀들(FC1∼FCK) 사이에 연결되고, 상기 데이터 패스 라인(240)을 통하여 상기 시스템 버스(110)에 더 연결된다.
노말 모드에서, 즉, 상기 테스트 제어 신호(TMREG0)가 디세이블될 때, 상기 제1 선택 회로들(FS1∼FSK)은 제1 노말 선택 신호들(FLEN1∼FLENK)(K는 정수)과 상기 제1 선택 제어 신호들(FS_en1∼FS_enK)에 응답하여 동작한다. 여기에서, 상기 제1 노말 선택 신호들(FLEN1∼FLENK)은 상기 조합 회로(132b)에 의해 발생된다. 상기 제1 선택 회로들(FS1∼FSK)은 상기 조합 회로(132b)로부터 수신되는 노말 동작과 관련된 신호들(미도시)과 상기 데이터 패스 라인(240)을 통하여 수신되는 노말 데이터들(NDAT1∼NDATK) 중 어느 하나를 상기 제1 저장 셀들(FC1∼FCK)에 출력한다. 좀 더 상세하게는, 상기 제1 노말 선택 신호들(FLEN1∼FLENK)이 인에이블될 때, 상기 제1 선택 회로들(FS1∼FSK)이 상기 노말 동작과 관련된 신호들을 상기 제1 저장 셀들(FC1∼FCK)에 출력한다. 또, 상기 제1 노말 선택 신호들(FLEN1∼FLENK)이 디세이블될 때, 상기 제1 선택 회로들(FS1∼FSK)이 상기 노말 데이터들(NDAT1∼NDATK)을 상기 제1 저장 셀들(FC1∼FCK)에 출력한다.
테스트 모드에서, 즉, 상기 테스트 제어 신호(TMREG0)가 인에이블될 때, 상기 제1 선택 회로들(FS1∼FSK)은 상기 제1 선택 제어 신호들(FS_en1∼FS_enK), 상기 테스트 제어 신호(TMREG0), 및 상기 제3 선택 제어 신호(TLEN)에 응답하여 동작한다. 상기 제1 선택 회로들(FS1∼FSK)은 상기 데이터 패스 라인(240)을 통하여 수신되는 상기 테스트 패턴 데이터들(TP1∼TPK)을 상기 제1 저장 셀들(FC1∼FCK)에 출력한다. 또, 상기 제1 선택 회로들(FS1∼FSK)은 상기 조합 회로(132b)로부터 수신되는 제1 테스트 결과 데이터들(FTR_D1∼FTR_DK)을 상기 제1 저장 셀들(FC1∼FCK)에 출력한다.
상기 제1 선택 회로들(FS1∼FSK) 각각은 멀티플렉서들(M11∼M13)을 포함한다. 상기 제1 선택 회로들(FS1∼FSK)의 구성 및 구체적인 동작은 실질적으로 동일하므로, 상기 제1 선택 회로(FS1)를 중심으로 설명한다. 상기 제1 선택 회로(FS1)에서 상기 멀티플렉서(M11)는 상기 테스트 제어 신호(TMREG0)에 응답하여 상기 제1 노말 선택 신호(FLEN1)와 상기 제3 선택 제어 신호(TLEN) 중 어느 하나를 상기 멀티플렉서(M12)에 출력한다. 좀 더 상세하게는, 상기 테스트 제어 신호(TMREG0)가 디세이블될 때 상기 멀티플렉서(M11)가 상기 제1 노말 선택 신호(FLEN1)를 출력한다. 또, 상기 테스트 제어신호(TMREG0)가 인에이블될 때 상기 멀티플렉서(M11)가 상기 제3 선택 제어 신호(TLEN)를 출력한다. 상기 멀티플렉서(M12)는 상기 멀티플렉서(M11)의 출력 신호에 응답하여 상기 제1 저장 셀(FC1)의 출력 신호와 상기 조합 회로(132b)의 출력 신호 중 어느 하나를 출력한다. 좀 더 상세하게는, 상기 멀티플렉서(M11)의 출력 신호가 디세이블될 때, 상기 멀티플렉서(M12)가 상기 제1 저장 셀(FC1)의 출력 신호를 상기 멀티플렉서(M13)에 출력한다. 또, 상기 멀티플렉서(M11)의 출력 신호가 인에이블될 때, 상기 멀티플렉서(M12)가 상기 조합 회로(132b)의 출력 신호를 상기 멀티플렉서(M13)에 출력한다. 상기 멀티플렉서(M13)는 상기 제1 선택 제어 신호(FS_en1)에 응답하여 상기 멀티플렉서(M12)의 출력 신호와 상기 테스트 패턴 데이터(TP1)(또는 상기 노말 데이터(NDAT1)) 중 어느 하나를 상기 제1 저장 셀(FC1)에 출력한다. 좀 더 상세하게는, 상기 제1 선택 제어 신호(FS_en1)가 디세이블될 때 상기 멀티플렉서(M13)가 상기 멀티플렉서(M12)의 출력 신호를 상기 제1 저장 셀(FC1)에 출력한다. 또, 상기 제1 선택 제어 신호(FS_en1)가 인에이블될 때 상기 멀티플렉서(M13)가 상기 테스트 패턴 데이터(TP1)(또는 상기 노말 데이터(NDAT1))를 상기 제1 저장 셀(FC1)에 출력한다.
상기 제2 선택 회로들(SS1∼SSJ)은 상기 조합 회로(132b)와 상기 제2 저장 셀들(SC1∼SCJ) 사이에 연결되고, 상기 데이터 패스 라인(240)을 통하여 상기 시스템 버스(110)에 더 연결된다.
노말 모드에서, 상기 제2 선택 회로들(SS1∼SSJ)은 제2 노말 선택 신호들(SLEN1∼SLENJ)에 응답하여 상기 조합 회로(132b)로부터 수신되는 상기 노말 동작 관련 신호들을 상기 제2 저장 셀들(SC1∼SCJ)에 출력한다. 여기에서, 상기 제2 노말 선택 신호들(SLEN1∼SLENJ)은 상기 조합 회로(132b)에 의해 발생된다.
테스트 모드에서, 상기 제2 선택 회로들(SS1∼SSJ)은 상기 제2 선택 제어 신호들(SS_en1∼SS_enJ), 상기 테스트 제어 신호(TMREG0), 및 상기 제3 선택 제어 신호(TLEN)에 응답하여 동작한다. 상기 제2 선택 회로들(SS1∼SSJ)은 상기 데이터 패스 라인(240)을 통하여 수신되는 상기 테스트 패턴 데이터들(TP1∼TPJ)을 상기 제2 저장 셀들(SC1∼SCJ)에 출력한다. 또, 상기 제2 선택 회로들(SS1∼SSJ)은 상기 조합 회로(132b)로부터 수신되는 제2 테스트 결과 데이터들(STR_D1∼STR_DJ)을 상기 제2 저장 셀들(SC1∼SCJ)에 출력한다.
상기 제2 선택 회로들(SS1∼SSJ) 각각은 멀티플렉서들(M21∼M23)을 포함한다. 상기 제2 선택 회로들(SS1∼SSJ)의 구성 및 구체적인 동작은 실질적으로 동일하므로, 상기 제2 선택 회로(SS1)를 중심으로 설명한다. 상기 제2 선택 회로(SS1)에서 상기 멀티플렉서(M21)는 상기 테스트 제어 신호(TMREG0)에 응답하여 상기 제2 노말 선택 신호(SLEN1)와 상기 제3 선택 제어 신호(TLEN) 중 어느 하나를 상기 멀티플렉서(M22)에 출력한다. 좀 더 상세하게는, 상기 테스트 제어 신호(TMREG0)가 디세이블될 때 상기 멀티플렉서(M21)가 상기 제2 노말 선택 신호(SLEN1)를 출력한다. 또, 상기 테스트 제어신호(TMREG0)가 인에이블될 때 상기 멀티플렉서(M21)가 상기 제3 선택 제어 신호(TLEN)를 출력한다. 상기 멀티플렉서(M22)는 상기 멀티플렉서(M21)의 출력 신호에 응답하여 상기 제2 저장 셀(SC1)의 출력 신호와 상기 조합 회로(132b)의 출력 신호 중 어느 하나를 출력한다. 좀 더 상세하게는, 상기 멀티플렉서(M21)의 출력 신호가 디세이블될 때, 상기 멀티플렉서(M22)가 상기 제2 저장 셀(SC1)의 출력 신호를 상기 멀티플렉서(M23)에 출력한다. 또, 상기 멀티플렉서(M21)의 출력 신호가 인에이블될 때, 상기 멀티플렉서(M22)가 상기 조합 회로(132b)의 출력 신호를 상기 멀티플렉서(M23)에 출력한다. 상기 멀티플렉서(M23)는 상기 제2 선택 제어 신호(SS_en1)에 응답하여 상기 멀티플렉서(M22)의 출력 신호와 상기 테스트 패턴 데이터(TP1)(또는 상기 노말 데이터(NDAT1)) 중 어느 하나를 상기 제2 저장 셀(SC1)에 출력한다. 좀 더 상세하게는, 상기 제2 선택 제어 신호(SS_en1)가 디세이블될 때 상기 멀티플렉서(M23)가 상기 멀티플렉서(M22)의 출력 신호를 상기 제2 저장 셀(SC1)에 출력한다. 또, 상기 제2 선택 제어 신호(SS_en1)가 인에이블될 때 상기 멀티플렉서(M23)가 상기 테스트 패턴 데이터(TP1)(또는 상기 노말 데이터(NDAT1))를 상기 제2 저장 셀(SC1)에 출력한다
상기 제1 저장 셀들(FC1∼FCK)은 상기 제1 선택 회로들(FS1∼FSK)의 출력 신호들을 저장하고, 저장된 신호들을 상기 조합 회로(132c)에 출력한다. 상기 제2 저장 셀들(SC1∼SCK) 역시 상기 제2 선택 회로들(SS1∼SSJ)의 출력 신호들을 저장하고, 저장된 신호들을 상기 조합 회로(132c)에 출력한다.
상기 제어 레지스터(220)는 상기 레지스터 제어 신호(W_en0)에 응답하여 상기 데이터 패스 라인(240)을 통하여 수신되는 제어 데이터(CRDAT)를 저장하고, 저장된 상기 제어 데이터(CRDAT)의 비트 값에 기초하여 상기 테스트 제어 신호들(TMREG2∼TMREG0)을 출력한다. 이를 좀 더 상세히 설명하면, 상기 제어 데이터(CRDAT)의 최상위 비트를 비트-2, 중간 비트를 비트-1, 최하위 비트를 비트-0이라고 가정하자. 상기 제어 레지스터(220)는 상기 비트-2의 값에 따라 상기 테스트 제어 신호(TMREG2)를 인에이블시키거나 또는 디세이블시킨다. 예를 들어, 상기 제어 레지스터(220)는 상기 비트-2의 값이 "1"일 때, 상기 테스트 제어 신호(TMREG2)를 인에이블시키고, 상기 비트-2의 값이 "0"일 때 상기 테스트 제어 신호(TMREG2)를 디세이블시킨다. 이와 마찬가지로, 상기 제어 레지스터(220)는 상기 비트-1, 상기 비트-0의 값에 따라 상기 테스트 제어 신호들(TMREG1, TMREG0)을 각각 인에이블시키거나 또는 디세이블시킨다.
노말 모드에서, 상기 출력 선택 회로(230)는 상기 버스 인터페이스 장치(210)로부터 수신되는 상기 테스트 제어 신호(TMREG2)와 상기 노말 어드레스 신호들(NA0∼NAK)에 응답하여 동작한다. 상기 출력 선택 회로(230)는 상기 제1 저장 셀들(FC1∼FCK)로부터 수신되는 노말 동작 관련 신호들 순차적으로 선택하여 노말 데이터(NRDAT)로서 상기 시스템 버스(110)에 출력한다. 테스트 모드에서, 상기 출력 선택 회로(230)는 상기 제1 및 제2 저장 셀들(FC1∼FCK, SC1∼SCJ)로부터 상기 제1 및 제2 테스트 결과 데이터들(FTR_D1∼FTR_DK, STR_D1∼STR_DJ)을 수신한다. 상기 출력 선택 회로(230)는 상기 버스 인터페이스 장치(210)로부터 수신되는 상기 테스트 제어 신호(TMREG2)와 상기 테스트 어드레스 신호들(TA0∼TAK)에 응답하여 상기 테스트 결과 데이터(TRDAT)를 상기 시스템 버스(110)에 출력한다. 이 때, 상기 테스트 결과 데이터(TRDAT)는 상기 제1 및 제2 테스트 결과 데이터들(FTR_D1∼FTR_DK, STR_D1∼STR_DJ)을 포함한다.
상기 출력 선택 회로(230)는 멀티플렉서들(231∼233)을 포함한다. 상기 멀티플렉서(231)는 상기 테스트 어드레스 신호들(TA0∼TAK)(또는 상기 노말 어드레스 신호들(NA0∼NAK))에 응답하여 상기 제1 저장 셀들(FC1∼FCK)의 출력 신호들을 순차적으로 선택하여 출력한다. 상기 멀티플렉서(232)는 상기 테스트 어드레스 신호들(TA00∼TAK)(또는 상기 노말 어드레스 신호들(NA0∼NAK))에 응답하여 상기 제2 저장 셀들(SC1∼SCJ)의 출력 신호들을 순차적으로 선택하여 출력한다. 상기 멀티플렉서(233)는 상기 테스트 제어 신호(TMREG2)에 응답하여 상기 멀티플렉서들(231, 232) 중 어느 하나의 출력 신호를 상기 테스트 결과 데이터(TRDAT)(또는 상기 노말 데이터(NRDAT))로서 출력한다. 좀 더 상세하게는, 상기 테스트 제어 신호(TMREG2)가 디세이블될 때, 상기 멀티플렉서(233)가 상기 멀티플렉서(231)의 출력 신호를 상기 테스트 결과 데이터(TRDAT)(또는 상기 노말 데이터(NRDAT))로서 상기 시스템 버스(110)에 출력한다. 또, 상기 테스트 제어 신호(TMREG2)가 인에이블될 때, 상기 멀티플렉서(233)가 상기 멀티플렉서(232)의 출력 신호를 상기 테스트 결과 데이터(TRDAT)(또는 상기 노말 데이터(NRDAT))로서 상기 시스템 버스(110)에 출력한다.
다음으로, 상기와 같이 구성된 SOC(100)의 셀프 테스트 동작 과정을 설명한다. 여기에서, 상기 SOC(100)의 셀프 테스트 동작 과정은 상기 IP 블록(130)의 셀프 테스트 과정을 중심으로 설명한다. 도 6은 본 발명에 따른 SOC의 셀프 테스트 과정을 나타내는 플로우차트이다. 도 6을 참고하면, 상기 BIST 컨트롤부(120)가 상기 IP 블록(130)의 BIST 로직 회로(131)를 통하여 테스트 패턴 데이터들(TP1∼TPK, TP1∼TPJ)을 상기 조합 회로(132c)에 순차적으로 입력시킨다(1100). 상기 단계(1100)는 도 7을 참고하여 좀 더 상세히 후술된다. 상기 BIST 컨트롤부(120)는 상기 BITS 로직 회로(131)를 제어하여, 상기 조합 회로(132b)로부터 출력되는 제1 및 제2 테스트 결과 데이터들(FTR_D1∼FTR_DK, STR_D1∼STR_DJ)을 동시에 상기 제1 및 제2 저장 셀들(FC1∼FCK, SC1∼SCJ)에 저장시킨다(1200). 여기에서, 상기 조합 회로(132b)에는 BIST 로직 회로(131a, 도 4 참고)에 의해 상기 테스트 패턴 데이터들(TP1∼TPK, TP1∼TPJ)이 입력된 상태이다. 따라서 상기 조합 회로(132b)가 상기 테스트 패턴 데이터들(TP1∼TPK, TP1∼TPJ)에 응답하여 상기 제1 및 제2 테스트 결과 데이터들(FTR_D1∼FTR_DK, STR_D1∼STR_DJ)을 출력한다.
이 후, 상기 BIST 컨트롤부(120)는 상기 제1 및 제2 저장 셀들(FC1∼FCK, SC1∼SCJ)에 저장된 상기 제1 및 제2 테스트 결과 데이터들(FTR_D1∼FTR_DK, STR_D1∼STR_DJ)을 순차적으로 독출한다(1300). 상기 단계(1300)는 도 8을 참고하여 좀 더 상세히 후술된다. 상기 BIST 컨트롤부(120)의 결과 압축부(124)는 독출된 상기 제1 및 제2 테스트 결과 데이터들(FTR_D1∼FTR_DK, STR_D1∼STR_DJ)을 압축하여 저장한다(1400). 이 후 상기 BIST 컨트롤부(120)의 시퀀스 발생기(121)는 추가의 테스트 패턴 데이터들이 존재하는지의 여부를 판단한다(1500). 여기에서, 상기 BIST 컨트롤부(120)는 테스트의 종류에 따라 상기 IP 블록(130)을 여러 번 테스트 할 수 있다. 즉, 상기 단계들(1100∼1400)이 한 번 수행될 때, 상기 IP 블록(130)의 한 종류의 테스트가 종료된다. 상기 단계(1500)에서 추가의 테스트 패턴 데이터들이 존재할 때, 상기 BIST 컨트롤부(120)는 다른 종류의 테스트가 존재하는 것으로 판단한다.
상기 단계(1500)에서 추가의 테스트 패턴 데이터가 존재할 때, 상기 단계(1100)로 리턴 한다. 이 후, 상기 패턴 생성부(123)가 상기 IP 블록(130)을 테스트하기 위한 테스트 패턴 데이터들을 모두 발생할 때까지(즉, 상기 IP 블록(130)에 대한 모든 종류의 테스트가 완료될 까지), 상술한 과정들이 반복적으로 수행된다. 또, 상기 단계(1500)에서 추가의 테스트 패턴 데이터가 존재하지 않을 때, 상기 루틴(routine)(1000)이 종료된다.
다음으로, 도 7과 도 9를 참고하여, 상기 단계(1100)를 좀 더 상세히 설명한다. 도 7은 도 6에 도시된 서브루틴(1100)을 상세히 나타내는 플로우차트이고, 도 9는 도 5에 도시된 BIST 로직 회로(131b)에서 셀프 테스트 과정 동안 발생되는 주요 신호들의 타이밍도이다. 도 7을 참고하면, 먼저, 상기 BIST 컨트롤부(120)는 상기 BIST 로직 회로(131b)의 상기 제어 레지스터(220)에 제1 설정 값을 가지는 제어 데이터(CRDAT)를 기입한다(1101).
이를 좀 더 상세히 설명하면, 먼저, 시퀀스 발생기(121)가 클럭 신호(CLK)에 동기하여 기입 커맨드 신호(WRITE)를 상기 시스템 버스(110)에 출력하고, 시퀀스 제어 신호들(CTL1, CTL2)을 발생한다. 상기 어드레스 발생기(122)는 상기 클럭 신호(CLK)와 상기 시퀀스 제어 신호(CTL1)에 응답하여 테스트 어드레스 신호들(TA0∼TAK)을 발생하여 상기 시스템 버스(110)에 출력한다. 상기 패턴 생성부(123)는 상기 클럭 신호(CLK)와 상기 시퀀스 제어 신호(CTL2)에 응답하여 제어 데이터(CRDAT)와 테스트 패턴 데이터들(TP1∼TPK)을 발생하여 상기 시스템 버스(110)에 출력한다. 상기 BIST 로직 회로(131b)의 버스 인터페이스 장치(210)는 상기 기입 커맨드 신호(WRITE)와 상기 테스트 어드레스 신호(TA0)에 응답하여 레지스터 제어 신호(W_en0)를 인에이블시킨다. 상기 제어 레지스터(220)는 상기 레지스터 제어 신호(W_en0)에 응답하여 상기 제어 데이터(CRDAT)를 저장한다. 이 때, 상기 제어 데이터(CRDAT)는 도 9에서 참조되는 것과 같이, "001"의 비트 값을 갖는다. 상기 제어 레지스터(220)는 상기 제어 데이터(CRDAT)의 비트 값에 기초하여 테스트 제어 신호들(TMREG2∼TMREG0)을 출력한다. 즉, 상기 제어 레지스터(220)는 상기 테스트 제어 신호들(TMREG2, TMREG1)을 디세이블시키고, 상기 테스트 제어 신호(TMREG0)를 인에이블시킨다.
이 후, 상기 버스 인터페이스 장치(210)는 상기 기입 커맨드 신호(WRITE), 상기 테스트 제어 신호들(TMREG2, TMREG1), 및 상기 테스트 어드레스 신호들(TA1∼TAK)에 응답하여 제1 선택 제어 신호들(FS_en1∼FS_enK)을 발생한다. 이 때, 상기 버스 인터페이스 장치(210)는 상기 제1 선택 제어 신호들(FS_en1∼FS_enK)을 순차적으로 인에이블시켜 출력한다. 상기 제1 선택 제어 신호들(FS_en1∼FS_enK)에 응답하여, 상기 제1 선택 회로들(FS1∼FSK)의 멀티플렉서(M13)가 상기 테스트 패턴 데이터들(TP1∼TPK)을 순차적으로 선택하여 출력한다. 그 결과 상기 제1 저장 셀들(FC1∼FCK)에 상기 테스트 패턴 데이터들(TP1∼TPK)이 순차적으로 기입된다(1102).
다음으로, 상기 테스트 패턴 데이터들(TP1∼TPK)이 기입될 상기 제1 저장 셀들(FC1∼FCK)이 남아 있는지의 여부가 판단된다(1103). 상기 단계(1103)에서 상기 테스트 패턴 데이터들(TP1∼TPK)이 기입될 상기 제1 저장 셀들(FC1∼FCK)이 남아 있는 경우 상기 단계(1102)로 리턴 한다. 또, 상기 단계(1103)에서 상기 제1 저장 셀들(FC1∼FCK)에 상기 테스트 패턴 데이터들(TP1∼TPK)이 모두 기입된 경우, 상기 BIST 컨트롤부(120)는 상기 제어 레지스터(220)에 제2 설정 값을 가지는 상기 제어 데이터(CRDAT)를 기입한다(1104). 여기에서, 상기 제어 레지스터(220)에 상기 제2 설정 값을 가지는 상기 제어 데이터(CRDAT)가 기입되는 과정은 상기 제어 레지스터(220)에 상기 제1 설정 값을 가지는 상기 제어 데이터(CRDAT)가 기입되는 과정과 동일하다. 이 때, 상기 제어 데이터(CRDAT)는 도 9에서 참조되는 것과 같이, "101"의 비트 값을 갖는다. 상기 제어 레지스터(220)는 상기 제어 데이터(CRDAT)의 비트 값에 기초하여 상기 테스트 제어 신호들(TMREG2, TMREG0)을 인에이블시키고, 상기 테스트 제어 신호(TMREG1)를 디세이블시켜 출력한다. 상기 단계(1104)가 수행되는 동안, 상기 시퀀스 발생기(121)는 상기 기입 커맨드 신호(WRITE)를 상기 시스템 버스(110)에 출력하고, 시퀀스 제어 신호들(CTL1, CTL2)을 발생한다. 상기 어드레스 발생기(122)는 상기 클럭 신호(CLK)와 상기 시퀀스 제어 신호(CTL1)에 응답하여 상기 테스트 어드레스 신호들(TA1∼TAK)을 발생하여 상기 시스템 버스(110)에 출력한다. 상기 패턴 생성부(123)는 상기 클럭 신호(CLK)와 상기 시퀀스 제어 신호(CTL2)에 응답하여 상기 테스트 패턴 데이터들(TP1∼TPK)을 발생하여 상기 시스템 버스(110)에 출력한다.
상기 테스트 제어 신호(TMREG2)가 인에이블된 상태이므로, 상기 버스 인터페이스 장치(210)는 상기 테스트 어드레스 신호들(TA1∼TA(J-1))에 응답하여 제2 선택 제어 신호들(SS_en1∼SS_en(J-1))을 발생한다. 이 때, 상기 버스 인터페이스 장치(210)는 상기 제2 선택 제어 신호들(SS_en1∼SS_en(J-1))을 순차적으로 인에이블시켜 출력한다. 상기 제2 선택 제어 신호들(SS_en1∼SS_en(J-1))에 응답하여, 상기 제2 선택 회로들(SS1∼SS(J-1))의 멀티플렉서(M23)가 상기 테스트 패턴 데이터들(TP1∼TP(J-1))을 순차적으로 선택하여 출력한다. 그 결과 상기 제2 저장 셀들(SC1∼SC(J-1))에 상기 테스트 패턴 데이터들(TP1∼TP(J-1))이 순차적으로 기입된다(1105).
이 때, 상기 시퀀스 발생기(121)는 상기 클럭 신호(CLK)에 응답하여, 테스트 패턴 데이터(TPJ)가 상기 제2 저장 셀(SCJ)에 기입될 순서인지의 여부를 판단한다(1106). 상기 단계(1106)에서, 상기 테스트 패턴 데이터(TPJ)가 상기 제2 저장 셀(SCJ)에 기입될 순서일 때, 상기 BIST 컨트롤부(120)는 상기 제어 레지스터(220)에 제3 설정 값을 가지는 상기 제어 데이터(CRDAT)를 기입한다(1107). 여기에서, 상기 제어 레지스터(220)에 상기 제3 설정 값을 가지는 상기 제어 데이터(CRDAT)가 기입되는 과정은 상기 제어 레지스터(220)에 상기 제1 설정 값을 가지는 상기 제어 데이터(CRDAT)가 기입되는 과정과 동일하다. 이 때, 상기 제어 데이터(CRDAT)는 도 9에서 참조되는 것과 같이, "111"의 비트 값을 갖는다. 상기 제어 레지스터(220)는 상기 제어 데이터(CRDAT)의 비트 값에 기초하여 상기 테스트 제어 신호들(TMREG2∼TMREG0)을 모두 인에이블시켜 출력한다. 이 후, 상기 버스 인터페이스 장치(210)는 상기 테스트 어드레스 신호(TAJ))에 응답하여 제2 선택 제어 신호(SS_enJ)를 인에이블시켜 출력한다. 상기 제2 선택 제어 신호(SS_enJ)에 응답하여, 상기 제2 선택 회로(SSJ)의 멀티플렉서(M23)가 테스트 패턴 데이터(TPJ)를 선택하여 출력한다. 그 결과 상기 제2 저장 셀(SCJ)에 상기 테스트 패턴 데이터(TPJ)가 기입된다(1108). 이 후, 상기 서브루틴(1100)은 종료된다. 한편, 상기 단계(1108)가 수행되는 동안, 상기 테스트 제어 신호(TMREG1)가 인에이블 상태이므로, 상기 버스 인터페이스 장치(210)는 도 9에 도시된 것과 같이, 상기 제3 선택 제어 신호(TLEN)를 소정 시간 동안 인에이블시킨 후 디세이블시킨다. 여기에서, 상기 테스트 제어 신호(TMREG0)가 인에이블 상태이므로, 상기 제1 선택 회로들(FS1∼FSK) 각각의 멀티플렉서(M11)와 상기 제2 선택 회로들(SS1∼SSJ) 각각의 멀티플렉서(M21)는 상기 제3 선택 제어 신호(TLEN)를 선택하여 출력한다. 그 결과 상기 제1 선택 회로들(FS1∼FSK)의 멀티플렉서들(M12s)은 상기 제3 선택 제어 신호(TLEN)에 응답하여 상기 조합 회로(132b)로부터 수신되는 제1 테스트 결과 데이터들(FTR_D1∼FTR_DK)을 출력한다. 또, 상기 제2 선택 회로들(SS1∼SSJ)의 멀티플렉서들(M22s)은 상기 제3 선택 제어 신호(TLEN)에 응답하여 상기 조합 회로(132b)로부터 수신되는 제2 테스트 결과 데이터들(STR_D1∼STR_DJ)을 출력한다.
도 8은 도 6에 도시된 서브루틴(1300)을 상세히 나타내는 플로우차트이다. 도 8을 참고하면, 먼저, 상기 BIST 컨트롤부(120)는 상기 BIST 로직 회로(131b)의 상기 제어 레지스터(220)에 상기 제1 설정 값을 가지는 제어 데이터(CRDAT)를 기입한다(1301). 여기에서, 상기 제어 레지스터(220)에 상기 제1 설정 값을 가지는 상기 제어 데이터(CRDAT)가 기입되는 과정은 상술한 것과 동일하다. 이 때, 상기 제어 데이터(CRDAT)는 도 9에서 참조되는 것과 같이, "001"의 비트 값을 갖는다. 상기 제어 레지스터(220)는 상기 제어 데이터(CRDAT)의 비트 값에 기초하여 상기 테스트 제어 신호들(TMREG2, TMREG1)을 디세이블시키고, 상기 테스트 제어 신호(TMREG0)를 인에이블시켜 출력한다.
상기 단계(1301)가 수행된 후, 상기 BIST 컨트롤부(120)는 상기 BIST 로직 회로(131b)의 상기 제1 저장 셀들(FC1∼FCK)로부터 제1 테스트 결과 데이터들(FTR_D1∼FTR_DK)을 독출한다(1302). 이를 좀 더 상세히 설명하면, 상기 시퀀스 발생기(121)는 상기 클럭 신호(CLK)에 동기하여 독출 커맨드 신호(READ)를 상기 시스템 버스(110)에 출력하고, 시퀀스 제어 신호(CTL1)를 발생한다. 상기 어드레스 발생기(122)는 상기 클럭 신호(CLK)와 상기 시퀀스 제어 신호(CTL1)에 응답하여 상기 테스트 어드레스 신호들(TA1∼TAK)을 발생하여 상기 시스템 버스(110)에 출력한다. 상기 버스 인터페이스 장치는 상기 독출 커맨드 신호(READ)에 응답하여 상기 제1 및 제2 선택 제어 신호들(FS_en1∼FS_enK, SS_en1∼SS_enJ)을 모두 디세이블시킨다. 상기 제1 선택 제어 신호들(FS_en1∼FS_enK)에 응답하여 상기 제1 선택 회로들(FS∼FSK)의 멀티플렉서들(M13s)이 상기 멀티플렉서들(M12s)의 출력 신호를 선택하여 상기 제1 저장 셀들(FC1∼FCK)에 각각 출력한다. 여기에서, 상기 멀티플렉서들(M12s)이 상기 제1 테스트 결과 데이터들(FTR_D1∼FTR_DK)을 출력하는 상태이므로, 상기 제1 저장 셀들(FC1∼FCK)에는 상기 제1 테스트 결과 데이터들(FTR_D1∼FTR_DK)이 동시에 입력된다. 상기 제1 저장 셀들(FC1∼FCK)은 상기 제1 테스트 결과 데이터들(FTR_D1∼FTR_DK)을 저장하고, 저장된 상기 제1 테스트 결과 데이터들(FTR_D1∼FTR_DK)을 각각 출력한다.
또, 상기 제2 선택 제어 신호들(SS_en1∼SS_enJ)에 응답하여 상기 제2 선택 회로들(SS∼SSJ)의 멀티플렉서들(M23s)이 상기 멀티플렉서들(M22s)의 출력 신호를 선택하여 상기 제2 저장 셀들(SC1∼SCJ)에 각각 출력한다. 여기에서, 상기 멀티플렉서들(M22s)이 상기 제2 테스트 결과 데이터들(STR_D1∼STR_DJ)을 출력하는 상태이므로, 상기 제2 저장 셀들(SC1∼SCJ)에는 상기 제2 테스트 결과 데이터들(STR_D1∼STR_DJ)이 동시에 입력된다. 상기 제2 저장 셀들(SC1∼SCJ)은 상기 제2 테스트 결과 데이터들(STR_D1∼STR_DJ)을 저장하고, 저장된 상기 제2 테스트 결과 데이터들(STR_D1∼STR_DJ)을 출력한다.
이 때, 상기 버스 인터페이스 장치(210)는 상기 독출 커맨드 신호(READ)에 응답하여 상기 테스트 어드레스 신호들(TA1∼TAK)과 상기 테스트 제어 신호(TMREG2)를 상기 출력 선택 회로(230)에 출력한다. 상기 테스트 어드레스 신호들(TA1∼TAK)에 응답하여, 상기 출력 선택 회로(230)의 멀티플렉서(231)는 상기 제1 저장 셀들(FC1∼FCK)로부터 수신되는 상기 제1 테스트 결과 데이터들(FTR_D1∼FTR_DK)을 순차적으로 선택하여 출력한다. 상기 테스트 제어 신호(TMREG2)가 디세이블 상태이므로, 상기 출력 선택 회로(230)의 멀티플렉서(233)가 상기 멀티플렉서(231)로부터 순차적으로 수신되는 상기 제1 테스트 결과 데이터들(FTR_D1∼FTR_DK)을 테스트 결과 데이터(TRDAT)로서 상기 시스템 버스(110)에 출력한다.
이 후, 상기 BIST 컨트롤부(120)는 상기 클럭 신호(CLK)에 응답하여 독출될 상기 제1 저장 셀이 남아있는지의 여부를 판단한다(1303). 상기 단계(1303)에서, 독출될 제1 저장 셀이 남아있는 경우, 상기 단계(1302)로 리턴 한다. 또, 상기 단계(1303)에서, 독출될 제1 저장 셀이 남아있지 않은 경우, 상기 BIST 컨트롤부(120)는 상기 BIST 로직 회로(131b)의 상기 제어 레지스터(220)에 상기 제2 설정 값을 가지는 제어 데이터(CRDAT)를 기입한다(1304). 여기에서, 상기 제어 레지스터(220)에 상기 제2 설정 값을 가지는 상기 제어 데이터(CRDAT)가 기입되는 과정은 상술한 것과 동일하다. 이 때, 상기 제어 데이터(CRDAT)는 도 9에서 참조되는 것과 같이, "101"의 비트 값을 갖는다. 상기 제어 레지스터(220)는 상기 제어 데이터(CRDAT)의 비트 값에 기초하여 상기 테스트 제어 신호들(TMREG2, TMREG0)을 인에이블시키고, 상기 테스트 제어 신호(TMREG1)를 디세이블시켜 출력한다.
상기 단계(1304)가 수행된 후, 상기 BIST 컨트롤부(120)는 상기 BIST 로직 회로(131b)의 상기 제2 저장 셀들(SC1∼SCJ)로부터 상기 제2 테스트 결과 데이터들(STR_D1∼STR_DJ)을 독출한다(1305). 이를 좀 더 상세히 설명하면, 상기 시퀀스 발생기(121)는 상기 클럭 신호(CLK)에 동기하여 독출 커맨드 신호(READ)를 상기 시스템 버스(110)에 출력하고, 시퀀스 제어 신호(CTL1)를 발생한다. 상기 어드레스 발생기(122)는 상기 클럭 신호(CLK)와 상기 시퀀스 제어 신호(CTL1)에 응답하여 상기 테스트 어드레스 신호들(TA1∼TAK)을 발생하여 상기 시스템 버스(110)에 출력한다. 상기 버스 인터페이스 장치(210)는 상기 독출 커맨드 신호(READ)에 응답하여 상기 테스트 어드레스 신호들(TA1∼TAK)과 상기 테스트 제어 신호(TMREG2)를 상기 출력 선택 회로(230)에 출력한다. 상기 테스트 어드레스 신호들(TA1∼TAK)에 응답하여, 상기 출력 선택 회로(230)의 멀티플렉서(232)는 상기 제2 저장 셀들(SC1∼SCJ)로부터 수신되는 상기 제2 테스트 결과 데이터들(STR_D1∼STR_DJ)을 순차적으로 선택하여 출력한다. 상기 테스트 제어 신호(TMREG2)가 인에이블 상태이므로, 상기 멀티플렉서(233)가 상기 멀티플렉서(232)로부터 순차적으로 수신되는 상기 제2 테스트 결과 데이터들(STR_D1∼STR_DJ)을 상기 테스트 결과 데이터(TRDAT)로서 상기 시스템 버스(110)에 출력한다.
이 후, 상기 BIST 컨트롤부(120)는 상기 클럭 신호(CLK)에 응답하여 독출될 상기 제2 저장 셀이 남아있는지의 여부를 판단한다(1306). 상기 단계(1306)에서, 독출될 제2 저장 셀이 남아있는 경우, 상기 단계(1305)로 리턴 한다. 또, 상기 단계(1306)에서, 독출될 제2 저장 셀이 남아있지 않은 경우, 상기 서브루틴(1300)은 종료된다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상기한 것과 같이, 본 발명의 내장형 셀프 테스트 회로를 가지는 SOC 및 그 셀프 테스트 방법은 노말 모드에서의 신호 패스를 테스트 모드에서 사용하므로, SOC의 동작 속도로 테스트를 수행할 수 있고, 테스트 시간을 단축시킬 수 있는 효과가 있다.
또, 본 발명의 내장형 셀프 테스트 회로를 가지는 SOC 및 그 셀프 테스트 방법은 노말 모드와 동일하게 시스템 버스를 기반으로 테스트를 수행하므로, SOC가 보드에 실장된 후에도 테스트를 수행할 수 있는 효과가 있다.
도 1은 종래 기술에 따른 SOC와 ATE(automatic test equipment)를 나타내는 블록도이다.
도 2는 도 1에 도시된 SOC에 포함되는 IP(Intellectual property) 블록의 내부 구성을 나타내는 도면이다.
도 3은 본 발명에 따른 내장형 셀프 테스트 회로를 가지는 SOC를 나타내는 블록도이다.
도 4는 도 3에 도시된 SOC에 포함되는 IP 블록의 내부 구성을 나타내는 도면이다.
도 5는 도 4에 도시된 BIST 로직 회로와 조합 회로들을 좀 더 상세히 나타내는 도면이다.
도 6은 본 발명에 따른 SOC의 셀프 테스트 과정을 나타내는 플로우차트이다.
도 7은 도 6에 도시된 서브루틴(sub-routine)(1100)을 상세히 나타내는 플로우차트이다.
도 8은 도 6에 도시된 서브루틴(1300)을 상세히 나타내는 플로우차트이다.
도 9는 도 5에 도시된 BIST 로직 회로에서 셀프 테스트 과정 동안 발생되는 주요 신호들의 타이밍도이다.

Claims (23)

  1. 셀프 테스트 기능을 가지는 SOC에 있어서,
    시스템 버스를 통하여 수신되는 제어 데이터에 응답하여 노말 모드 또는 테스트 모드로 동작하고, 테스트 모드에서 테스트 결과 데이터를 출력하는 BIST(Built-in-self-test) 로직 회로를 포함하는 IP(Intellectual property) 블록들; 및
    테스트 모드에서, 상기 시스템 버스를 통하여 상기 BIST 로직 회로에 상기 제어 데이터, 커맨드 신호, 테스트 패턴 데이터들, 및 테스트 어드레스 신호들을 전송하여 상기 IP 블록들을 테스트하고, 상기 시스템 버스를 통하여 수신되는 상기 테스트 결과 데이터를 압축하여 저장하는 BIST 컨트롤부를 구비하는 것을 특징으로 하는 SOC.
  2. 제1항에 있어서,
    상기 IP 블록들 각각은 상기 BIST 로직 회로의 입력단과 출력단에 각각 연결되는 제1 및 제2 조합 회로들을 더 포함하고,
    노말 모드에서, 상기 BIST 로직 회로는 상기 제1 조합 회로로부터 수신되는 노말 동작 관련 신호들을 상기 제2 조합 회로에 전송하거나 또는 상기 시스템 버스에 출력하고, 테스트 모드에서, 상기 BIST 로직 회로는 상기 커맨드 신호와 상기 테스트 어드레스 신호들에 응답하여 상기 테스트 패턴 데이터들을 상기 제2 조합 회로에 출력하고, 상기 제1 조합 회로로부터 상기 테스트 결과 데이터를 수신하여 상기 시스템 버스에 출력하는 것을 특징으로 하는 SOC.
  3. 제1항에 있어서,
    상기 테스트 어드레스 신호들은 제1 테스트 어드레스 신호와 복수의 제2 테스트 어드레스 신호들을 포함하고,
    상기 BIST 로직 회로는,
    상기 제1 테스트 어드레스 신호와 상기 커맨드 신호에 응답하여 레지스터 제어 신호를 발생하고, 상기 커맨드 신호, 상기 복수의 제2 테스트 어드레스 신호들, 및 제1 내지 제3 테스트 제어 신호들에 응답하여 제1 내지 제3 선택 제어 신호들을 발생하는 버스 인터페이스 장치; 및
    데이터 패스 라인을 통하여 상기 시스템 버스에 연결되고, 상기 레지스터 제어 신호에 응답하여 상기 데이터 패스 라인을 통하여 수신되는 상기 제어 데이터를 저장하고, 저장된 상기 제어 데이터에 기초하여 상기 제1 내지 제3 테스트 제어 신호들을 발생하는 제어 레지스터를 구비하는 것을 특징으로 하는 SOC.
  4. 제3항에 있어서,
    상기 제어 데이터는 복수의 비트들을 포함하고,
    상기 제어 레지스터는 상기 제어 데이터에 포함되는 상기 비트들의 값에 기초하여 상기 제1 내지 제3 테스트 제어 신호들을 각각 인에이블시키거나 또는 디세이블시키는 것을 특징으로 하는 SOC.
  5. 제3항에 있어서,
    상기 버스 인터페이스 장치는 상기 제1 테스트 제어 신호가 디세이블될 때 노말 모드로 동작하고, 인에이블될 때 테스트 모드로 동작하는 것을 특징으로 하는 SOC.
  6. 제5항에 있어서,
    상기 노말 모드에서, 상기 버스 인터페이스 장치는 상기 제1 및 제3 선택 제어 신호들만을 발생하는 것을 특징으로 하는 SOC.
  7. 제3항에 있어서,
    상기 커맨드 신호는 기입 커맨드 신호와 독출 커맨드 신호를 포함하고,
    상기 버스 인터페이스 장치는 상기 기입 커맨드 신호, 상기 복수의 제2 테스트 어드레스 신호들, 상기 제2 및 제3 테스트 제어 신호에 응답하여 상기 제1 및 제2 선택 제어 신호들을 발생하는 것을 특징으로 하는 SOC.
  8. 제7항에 있어서,
    상기 버스 인터페이스 장치는 상기 제2 및 제3 테스트 제어 신호가 디세이블될 때, 상기 복수의 제2 테스트 어드레스 신호들에 응답하여 상기 제1 선택 제어 신호들을 발생하고. 상기 제2 테스트 제어 신호가 디세이블되고, 제3 테스트 제어 신호가 인에이블될 때, 상기 복수의 제2 테스트 어드레스 신호들에 응답하여 상기 제2 선택 제어 신호들을 발생하는 것을 특징으로 하는 SOC.
  9. 제3항에 있어서,
    상기 버스 인터페이스 장치는 상기 제2 테스트 제어 신호가 인에이블될 때 상기 제3 선택 제어 신호를 인에이블시키고, 상기 제2 테스트 제어 신호가 디세이블될 때 상기 제3 선택 제어 신호를 디세이블시키는 것을 특징으로 하는 SOC.
  10. 제3항에 있어서,
    상기 IP 블록들 각각은 상기 BIST 로직 회로의 입력단과 출력단에 각각 연결되는 제1 및 제2 조합 회로들을 더 포함하고, 상기 테스트 결과 데이터는 제1 테스트 결과 데이터들과 제2 테스트 결과 데이터들을 포함하고,
    상기 BIST 로직 회로는,
    상기 데이터 패스 라인을 통하여 상기 시스템 버스에 연결되고, 상기 제1 선택 제어 신호들에 응답하여 상기 데이터 패스 라인을 통하여 수신되는 상기 테스트 패턴 데이터들을 출력하고, 상기 제1 테스트 제어 신호와 상기 제3 선택 제어 신호에 응답하여 상기 제1 조합 회로로부터 수신되는 상기 제1 테스트 결과 데이터들을 출력하는 제1 선택 회로들;
    상기 데이터 패스 라인을 통하여 상기 시스템 버스에 연결되고, 상기 제2 선택 제어 신호들에 응답하여 상기 데이터 패스 라인을 통하여 수신되는 상기 테스트 패턴 데이터들을 출력하고, 상기 제1 테스트 제어 신호와 상기 제3 선택 제어 신호에 응답하여 상기 제1 조합 회로로부터 수신되는 상기 제2 테스트 결과 데이터들을 출력하는 제2 선택 회로들;
    상기 제1 선택 회로들로부터 상기 테스트 패턴 데이터들과 상기 제1 테스트 결과 데이터들 중 어느 하나를 수신하여 저장하고, 저장된 데이터들을 출력하는 제1 저장 셀들;
    상기 제2 선택 회로들로부터 상기 테스트 패턴 데이터들과 상기 제2 테스트 결과 데이터들 중 어느 하나를 수신하여 저장하고, 저장된 데이터들을 출력하는 제2 저장 셀들; 및
    상기 제1 및 제2 저장 셀들로부터 상기 제1 및 제2 테스트 결과 데이터들을 수신하고, 상기 제2 테스트 어드레스 신호들과 상기 제3 테스트 제어 신호에 응답하여 상기 제1 및 제2 테스트 결과 데이터들 중 어느 하나를 선택하여 상기 테스트 결과 데이터로서 상기 시스템 버스에 출력하는 출력 선택 회로를 더 구비하는 것을 특징으로 하는 SOC.
  11. 제10항에 있어서,
    상기 제1 테스트 제어 신호가 디세이블될 때, 상기 제1 선택 회로들은 상기 제1 조합 회로로부터 수신되는 제1 노말 선택 신호들에 응답하여, 상기 제1 조합 회로로부터 수신되는 제1 노말 동작 관련 신호들을 출력하고, 상기 제2 선택 회로들은 상기 제1 조합 회로로부터 수신되는 제2 노말 선택 신호들에 응답하여, 상기 제1 조합 회로로부터 수신되는 제2 노말 동작 관련 신호들을 출력하는 것을 특징으로 하는 SOC.
  12. 제10항에 있어서,
    상기 제1 테스트 제어 신호가 디세이블될 때, 상기 제3 테스트 제어 신호가 디세이블 상태로 유지되는 것을 특징으로 하는 SOC.
  13. 제10항에 있어서,
    상기 커맨드 신호는 기입 커맨드 신호와 독출 커맨드 신호를 포함하고,
    상기 버스 인터페이스 장치는 상기 독출 커맨드 신호에 응답하여, 상기 제1 테스트 제어 신호를 상기 제1 및 제2 선택 회로들에 출력하고, 상기 제2 테스트 어드레스 신호들과 상기 제3 테스트 제어 신호를 상기 출력 선택 회로에 출력하는 것을 특징으로 하는 SOC.
  14. 제11항에 있어서, 상기 제1 선택 회로들 각각은,
    상기 제1 테스트 제어 신호에 응답하여, 상기 제1 노말 선택 신호와 상기 제3 선택 제어 신호 중 어느 하나를 선택하여 출력하는 제1 멀티플렉서;
    상기 제1 멀티플렉서의 출력 신호에 응답하여, 상기 제1 노말 동작 관련 신호와, 대응하는 상기 제1 저장 셀의 출력 신호 중 어느 하나를 출력하는 제2 멀티플렉서; 및
    상기 제1 선택 제어 신호에 응답하여, 상기 테스트 패턴 데이터와 상기 제2 멀티플렉서의 출력 신호 중 어느 하나를 출력하는 제3 멀티플렉서를 구비하는 것을 특징으로 하는 SOC.
  15. 제11항에 있어서, 상기 제2 선택 회로들 각각은,
    상기 제1 테스트 제어 신호에 응답하여, 상기 제2 노말 선택 신호와 상기 제3 선택 제어 신호 중 어느 하나를 선택하여 출력하는 제1 멀티플렉서;
    상기 제1 멀티플렉서의 출력 신호에 응답하여, 상기 제2 노말 동작 관련 신호와, 대응하는 상기 제2 저장 셀의 출력 신호 중 어느 하나를 출력하는 제2 멀티플렉서; 및
    상기 제2 선택 제어 신호에 응답하여, 상기 테스트 패턴 데이터와 상기 제2 멀티플렉서의 출력 신호 중 어느 하나를 출력하는 제3 멀티플렉서를 구비하는 것을 특징으로 하는 SOC.
  16. 제10항에 있어서, 상기 출력 선택 회로는,
    상기 제2 테스트 어드레스 신호들에 응답하여, 상기 제1 테스트 결과 데이터들을 순차적으로 선택하여 출력하는 제1 멀티플렉서;
    상기 제2 테스트 어드레스 신호들에 응답하여, 상기 제2 테스트 결과 데이터들을 순차적으로 선택하여 출력하는 제2 멀티플렉서; 및
    상기 제3 테스트 제어 신호에 응답하여 상기 제1 멀티플렉서와 상기 제2 멀티플렉서 중 어느 하나의 출력 신호를 선택하여 상기 테스트 결과 데이터로서 출력하는 제3 멀티플렉서를 구비하는 것을 특징으로 하는 SOC.
  17. 제16항에 있어서,
    상기 제3 테스트 제어 신호가 디세이블될 때, 상기 제3 멀티플렉서는 상기 제1 멀티플렉서로부터 수신되는 상기 제1 테스트 결과 데이터들을 상기 테스트 결과 데이터들서 출력하고, 상기 제3 테스트 제어 신호가 인에이블될 때, 상기 제3 멀티플렉서는 상기 제2 멀티플렉서로부터 수신되는 상기 제2 테스트 결과 데이터들을 상기 테스트 결과 데이터로서 출력하는 것을 특징으로 하는 SOC.
  18. 제1항에 있어서, 상기 BIST 컨트롤부는,
    상기 테스트 모드에서, 클럭 신호에 응답하여, 상기 시스템 버스를 통하여 상기 IP 블록들 중 어느 하나에 상기 커맨드 신호를 전송하고, 제1 내지 제3 시퀀스 제어 신호들을 발생하는 시퀀스 발생기;
    상기 클럭 신호와 상기 제1 시퀀스 제어 신호에 응답하여, 상기 테스트 어드레스 신호들을 발생하여, 상기 시스템 버스에 출력하는 어드레스 발생기;
    상기 클럭 신호와 상기 제2 시퀀스 제어 신호에 응답하여, 상기 제어 데이터와 상기 테스트 패턴 데이터들을 발생하여, 상기 시스템 버스에 출력하는 패턴 생성부; 및
    상기 클럭 신호와 상기 제3 시퀀스 제어 신호에 응답하여, 상기 시스템 버스를 통하여 수신되는 상기 테스트 결과 데이터를 압축하여 저장하는 결과 압축부를 구비하는 것을 특징으로 하는 SOC.
  19. 셀프 테스트 기능을 가지는 SOC의 셀프 테스트 방법에 있어서,
    (a) BIST 컨트롤부가 BIST 로직 회로를 통하여, 제1 조합 회로에 테스트 패턴 데이터들을 순차적으로 입력시키는 단계;
    (b) 제2 조합 회로로부터 출력되는 테스트 결과 데이터들을 상기 BIST 로직 회로내의 저장 셀들에 동시에 저장시키는 단계;
    (c) 상기 저장 셀들에 저장된 상기 테스트 결과 데이터들을 순차적으로 독출하는 단계; 및
    (d) 독출된 상기 테스트 결과 데이터들을 압축하여 저장하는 단계를 포함하는 것을 특징으로 하는 SOC의 셀프 테스트 방법.
  20. 제19항에 있어서,
    상기 BIST 로직 회로, 상기 제1 및 제2 조합 회로들은 하나의 IP 블록내에 포함되는 것을 특징으로 하는 SOC의 셀프 테스트 방법.
  21. 제19항에 있어서,
    (e) 상기 (d) 단계 이 후, 추가의 테스트 패턴 데이터들이 존재할 때, 상기 (a) 내지 (d) 단계들을 반복적으로 수행하는 단계를 더 포함하는 것을 특징으로 하는 SOC의 셀프 테스트 방법.
  22. 제19항에 있어서,
    상기 저장 셀들은 제1 저장 셀들과 제2 저장 셀들을 포함하고,
    상기 (a) 단계는,
    (a1) 상기 BIST 로직 회로내의 제어 레지스터에 제1 설정값을 가지는 제어 데이터를 기입하는 단계;
    (a2) 상기 제1 저장 셀들에 상기 테스트 패턴 데이터들을 기입하는 단계;
    (a3) 상기 제어 레지스터에 제2 설정값을 가지는 상기 제어 데이터를 기입하는 단계;
    (a4) 상기 제2 저장 셀들에 상기 테스트 패턴 데이터들을 기입하는 단계; 및
    (a5) 상기 제2 저장 셀들 중 마지막 제2 저장 셀에 상기 테스트 패턴 데이터가 기입될 때, 상기 제어 레지스터에 제3 설정값을 가지는 상기 제어 데이터를 기입하는 단계를 포함하는 것을 특징으로 하는 SOC의 셀프 테스트 방법.
  23. 제19항에 있어서,
    상기 저장 셀들은 제1 저장 셀들과 제2 저장 셀들을 포함하고, 상기 테스트 결과 데이터들은 제1 테스트 결과 데이터들과 제2 테스트 결과 데이터들을 포함하고,
    상기 (c) 단계는,
    (c1) 상기 BIST 로직 회로내의 제어 레지스터에 제1 설정값을 가지는 제어 데이터를 기입하는 단계;
    (c2) 상기 제1 저장 셀들로부터 상기 제1 테스트 결과 데이터들을 독출하는 단계;
    (c3) 상기 제어 레지스터에 제2 설정값을 가지는 상기 제어 데이터를 기입하는 단계; 및
    (c4) 상기 제2 저장 셀들로부터 상기 제2 테스트 결과 데이터들을 독출하는 단계를 포함하는 것을 특징으로 하는 SOC의 셀프 테스트 방법.
KR1020040012991A 2004-02-26 2004-02-26 내장형 셀프 테스트 회로를 가지는 soc 및 그 셀프테스트 방법 KR100594257B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020040012991A KR100594257B1 (ko) 2004-02-26 2004-02-26 내장형 셀프 테스트 회로를 가지는 soc 및 그 셀프테스트 방법
JP2005052074A JP2005241651A (ja) 2004-02-26 2005-02-25 内蔵型セルフテスト回路を有するsoc、及びそのセルフテスト方法
US11/066,585 US7421635B2 (en) 2004-02-26 2005-02-25 System-on-chip (SOC) having built-in-self-test circuits and a self-test method of the SOC
CNB2005100525265A CN100514081C (zh) 2004-02-26 2005-02-28 具有内建自检电路的片载系统及其自检方法
US12/182,785 US7761763B2 (en) 2004-02-26 2008-07-30 System-on-chip (SOC) having built-in-self-test circuits and a self-test method of the SOC

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040012991A KR100594257B1 (ko) 2004-02-26 2004-02-26 내장형 셀프 테스트 회로를 가지는 soc 및 그 셀프테스트 방법

Publications (2)

Publication Number Publication Date
KR20050087270A true KR20050087270A (ko) 2005-08-31
KR100594257B1 KR100594257B1 (ko) 2006-06-30

Family

ID=34918693

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040012991A KR100594257B1 (ko) 2004-02-26 2004-02-26 내장형 셀프 테스트 회로를 가지는 soc 및 그 셀프테스트 방법

Country Status (4)

Country Link
US (2) US7421635B2 (ko)
JP (1) JP2005241651A (ko)
KR (1) KR100594257B1 (ko)
CN (1) CN100514081C (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100727975B1 (ko) * 2005-09-10 2007-06-14 삼성전자주식회사 시스템 온 칩의 고장 진단 장치 및 방법과 고장 진단이가능한 시스템 온 칩
KR101055529B1 (ko) * 2009-11-06 2011-08-08 삼성전기주식회사 가변 시퀀스를 이용한 메모리 테스트 장치 및 그 방법

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8970363B2 (en) 2006-09-14 2015-03-03 Crown Equipment Corporation Wrist/arm/hand mounted device for remotely controlling a materials handling vehicle
CN100460888C (zh) * 2006-10-11 2009-02-11 威盛电子股份有限公司 芯片测试机制与相关方法
CN101399087B (zh) * 2007-09-25 2012-05-23 智原科技股份有限公司 可编程存储器内建自测电路与时钟切换电路
US7882385B2 (en) * 2007-12-05 2011-02-01 International Business Machines Corporation Reducing inefficiencies of multi-clock-domain interfaces using a modified latch bank
US9522817B2 (en) 2008-12-04 2016-12-20 Crown Equipment Corporation Sensor configuration for a materials handling vehicle
US8108745B2 (en) * 2009-08-20 2012-01-31 Honeywell International Inc. On-device constrained random verification for device development
CN101893684B (zh) * 2010-02-10 2012-06-06 哈尔滨工业大学 基于片上系统soc的bist通用基础测试模块及测试系统及利用此系统的测试方法
US8793095B2 (en) 2011-03-09 2014-07-29 Intel Corporation Functional fabric-based test controller for functional and structural test and debug
US9043665B2 (en) * 2011-03-09 2015-05-26 Intel Corporation Functional fabric based test wrapper for circuit testing of IP blocks
US8522189B2 (en) 2011-03-09 2013-08-27 Intel Corporation Functional fabric based test access mechanism for SoCs
US8806283B1 (en) 2011-12-15 2014-08-12 Western Digital Technologies, Inc. Automatic and on-demand testing of non-volatile storage devices
CN102495361A (zh) * 2011-12-26 2012-06-13 中国科学院微电子研究所 一种内建自测试装置
CN102590733B (zh) * 2012-03-20 2014-08-20 中国人民解放军国防科学技术大学 一种基于边界扫描机制的电路系统机内测试装置
KR101918627B1 (ko) * 2012-04-04 2018-11-15 삼성전자 주식회사 데이터 수신장치 및 그 테스트 방법
US8533647B1 (en) 2012-10-05 2013-09-10 Atrenta, Inc. Method for generating an integrated and unified view of IP-cores for hierarchical analysis of a system on chip (SoC) design
CN103364711B (zh) * 2013-07-31 2015-12-09 哈尔滨工业大学 温度约束下基于软核的三维SoC测试调度方法
CN103390205B (zh) * 2013-07-31 2016-03-16 哈尔滨工业大学 功耗约束下基于软核的三维SoC测试调度方法
US9690208B2 (en) * 2013-12-10 2017-06-27 Taiwan Semiconductor Manufacturing Company, Ltd. Mirror array in digital pattern generator (DPG)
KR20160029378A (ko) * 2014-09-05 2016-03-15 에스케이하이닉스 주식회사 반도체 장치
WO2017164872A1 (en) * 2016-03-24 2017-09-28 Intel Corporation System-on-chip devices and methods for testing system-on-chip devices
US11408934B2 (en) 2017-12-22 2022-08-09 Nvidia Corporation In system test of chips in functional systems
US11641121B2 (en) 2019-02-01 2023-05-02 Crown Equipment Corporation On-board charging station for a remote control device
AU2019427501A1 (en) 2019-02-01 2021-07-08 Crown Equipment Corporation Pairing a remote control device to a vehicle
CN116057491A (zh) 2020-08-11 2023-05-02 克朗设备公司 远程控制设备
US11217323B1 (en) * 2020-09-02 2022-01-04 Stmicroelectronics International N.V. Circuit and method for capturing and transporting data errors
KR20220067992A (ko) * 2020-11-18 2022-05-25 삼성전자주식회사 선택적 및 병렬적 에러 정정을 수행하는 메모리 컨트롤러, 이를 포함하는 시스템 및 메모리 장치의 동작 방법
US11835991B2 (en) 2021-03-22 2023-12-05 Stmicroelectronics International N.V. Self-test controller, and associated method
US11698833B1 (en) 2022-01-03 2023-07-11 Stmicroelectronics International N.V. Programmable signal aggregator

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0772744B2 (ja) * 1984-09-04 1995-08-02 株式会社日立製作所 半導体集積回路装置
JPH07101227B2 (ja) * 1985-03-26 1995-11-01 株式会社東芝 論理回路
US5416784A (en) * 1991-10-28 1995-05-16 Sequoia Semiconductor Built-in self-test flip-flop with asynchronous input
FR2716019B1 (fr) * 1994-02-04 1996-04-26 Sgs Thomson Microelectronics Circuit de traitement numérique comportant des registres de test.
US5557619A (en) * 1994-04-04 1996-09-17 International Business Machines Corporation Integrated circuits with a processor-based array built-in self test circuit
US5675545A (en) * 1995-09-08 1997-10-07 Ambit Design Systems, Inc. Method of forming a database that defines an integrated circuit memory with built in test circuitry
JPH10162600A (ja) 1996-11-26 1998-06-19 Mitsubishi Electric Corp テスト機能内蔵半導体記憶装置
US5961653A (en) * 1997-02-19 1999-10-05 International Business Machines Corporation Processor based BIST for an embedded memory
US6374370B1 (en) * 1998-10-30 2002-04-16 Hewlett-Packard Company Method and system for flexible control of BIST registers based upon on-chip events
KR100308621B1 (ko) 1998-11-19 2001-12-17 윤종용 반도체 메모리 장치를 위한 프로그램 가능한 내장 자기 테스트 시스템
US6654920B1 (en) * 1999-12-20 2003-11-25 Texas Instruments Incorporated LBIST controller circuits, systems, and methods with automated maximum scan channel length
US6510534B1 (en) * 2000-06-29 2003-01-21 Logicvision, Inc. Method and apparatus for testing high performance circuits
KR20020017771A (ko) 2000-08-31 2002-03-07 박종섭 Dram의 bist 회로
US7366650B2 (en) * 2001-04-12 2008-04-29 Arm Limited Software and hardware simulation
US6728916B2 (en) * 2001-05-23 2004-04-27 International Business Machines Corporation Hierarchical built-in self-test for system-on-chip design
US6681357B2 (en) * 2001-05-31 2004-01-20 Sun Microsystems, Inc. MISR simulation tool for memory BIST application
US20040006729A1 (en) * 2002-07-03 2004-01-08 Pendurkar Rajesh Y. Hierarchical test methodology for multi-core chips
JP2004152798A (ja) * 2002-10-28 2004-05-27 Matsushita Electric Ind Co Ltd アイソレーションテスト回路およびテスト回路最適化方法
KR200392094Y1 (ko) 2005-02-17 2005-08-11 서호영 도난 방지용 안장

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100727975B1 (ko) * 2005-09-10 2007-06-14 삼성전자주식회사 시스템 온 칩의 고장 진단 장치 및 방법과 고장 진단이가능한 시스템 온 칩
KR101055529B1 (ko) * 2009-11-06 2011-08-08 삼성전기주식회사 가변 시퀀스를 이용한 메모리 테스트 장치 및 그 방법

Also Published As

Publication number Publication date
JP2005241651A (ja) 2005-09-08
US7761763B2 (en) 2010-07-20
US7421635B2 (en) 2008-09-02
US20080313515A1 (en) 2008-12-18
US20050204233A1 (en) 2005-09-15
CN1661388A (zh) 2005-08-31
CN100514081C (zh) 2009-07-15
KR100594257B1 (ko) 2006-06-30

Similar Documents

Publication Publication Date Title
KR100594257B1 (ko) 내장형 셀프 테스트 회로를 가지는 soc 및 그 셀프테스트 방법
US5568437A (en) Built-in self test for integrated circuits having read/write memory
US8566660B2 (en) Built-in-self-test using embedded memory and processor in an application specific integrated circuit
US7313739B2 (en) Method and apparatus for testing embedded cores
US7577885B2 (en) Semiconductor integrated circuit, design support software system and automatic test pattern generation system
US5701309A (en) Automated test equipment digital tester expansion apparatus
US7484188B2 (en) On-chip test circuit and method for testing of system-on-chip (SOC) integrated circuits
US7962821B2 (en) Built-in self testing circuit with fault diagnostic capability
US20040230870A1 (en) Built-in self test system and method
KR100679586B1 (ko) 모니터및테스터모드를가진내장자가테스트회로를구비한집적회로메모리장치
US7251757B2 (en) Memory testing
KR19990026620A (ko) 제이태그에 의한 다이나믹램 테스트장치
JP2006512698A (ja) 直接アクセスモードによって埋め込みdram回路を試験するための回路および方法
JP2004520673A (ja) 埋設不揮発性メモリの自己診断装置を備える集積回路及び関連する診断方法
WO2006134411A1 (en) Built-in-self-test method for a semiconductor memory
US6934205B1 (en) Bist for parallel testing of on chip memory
US7096397B2 (en) Dft technique for avoiding contention/conflict in logic built-in self-test
US7096386B2 (en) Semiconductor integrated circuit having functional modules each including a built-in self testing circuit
KR101199771B1 (ko) 모드별 논리적 어드레스를 설정하는 반도체 메모리 테스트장치 및 방법
KR100312248B1 (ko) 메모리시험장치
US20080235548A1 (en) Test apparatus, and electronic device
US5566186A (en) Test control device
KR100684548B1 (ko) 자체 기능 테스트 가능한 시스템 온 칩 및 그 기능 테스트방법
JPH11316259A (ja) 半導体試験装置およびこれを用いた半導体試験方法
Arnold et al. Evaluating ATE-equipment for volume diagnosis

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
FPAY Annual fee payment

Payment date: 20130531

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140618

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150515

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160517

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170522

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20180516

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20190515

Year of fee payment: 14