KR102066661B1 - 스캔-체인으로 연결된 플립-플롭들의 값들을 jtag 인터페이스를 이용하여 재구성할 수 있는 집적 회로, 이의 동작 방법, 및 상기 집적 회로를 포함하는 장치들 - Google Patents

스캔-체인으로 연결된 플립-플롭들의 값들을 jtag 인터페이스를 이용하여 재구성할 수 있는 집적 회로, 이의 동작 방법, 및 상기 집적 회로를 포함하는 장치들 Download PDF

Info

Publication number
KR102066661B1
KR102066661B1 KR1020130104710A KR20130104710A KR102066661B1 KR 102066661 B1 KR102066661 B1 KR 102066661B1 KR 1020130104710 A KR1020130104710 A KR 1020130104710A KR 20130104710 A KR20130104710 A KR 20130104710A KR 102066661 B1 KR102066661 B1 KR 102066661B1
Authority
KR
South Korea
Prior art keywords
data
selection
output terminal
selection signal
output
Prior art date
Application number
KR1020130104710A
Other languages
English (en)
Other versions
KR20150026202A (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 KR1020130104710A priority Critical patent/KR102066661B1/ko
Priority to US14/456,341 priority patent/US9465073B2/en
Priority to TW103127930A priority patent/TWI650565B/zh
Priority to CN201410443162.2A priority patent/CN104422878B/zh
Publication of KR20150026202A publication Critical patent/KR20150026202A/ko
Application granted granted Critical
Publication of KR102066661B1 publication Critical patent/KR102066661B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/267Reconfiguring circuits for testing, e.g. LSSD, partitioning
    • 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/318555Control logic
    • 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/31705Debugging aspects, e.g. using test circuits for debugging, using dedicated debugging test circuits
    • 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/318536Scan chain arrangements, e.g. connections, test bus, analog signals
    • 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/318597JTAG or boundary scan test of memory devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • 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/3177Testing of logic operation, e.g. by logic analysers
    • 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/318558Addressing or selecting of subparts of the device under test

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Logic Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

본 발명의 실시 예에 따른 집적 회로는 입력 단자와 출력 단자를 포함하며 스캔-체인으로 접속된 복수의 동기 회로들을 포함하는 테스트될 온-칩 로직과, TDI(Test Data In) 라인과, 상기 출력 단자에 접속된 TDO(Test Data Out) 라인과, 하나 또는 둘 이상의 선택 신호들에 응답하여, 상기 TDI 라인과 상기 출력 단자를 포함하는 복수의 데이터 소스들 중 어느 하나의 데이터를 상기 입력 단자로 전송하는 TAP 컨트롤러를 포함한다. 상기 TAP 컨트롤러는 사용자-정의 데이터를 저장하는 레지스터 블록을 포함하고, 상기 복수의 데이터 소스들은 상기 TDI 라인, 상기 출력 단자, 및 상기 레지스터 블록을 포함한다.

Description

스캔-체인으로 연결된 플립-플롭들의 값들을 JTAG 인터페이스를 이용하여 재구성할 수 있는 집적 회로, 이의 동작 방법, 및 상기 집적 회로를 포함하는 장치들 {INTEGRATED CIRCUIT FOR RECONSTRUCTING VALUES OF FLIP-FLOPS CONNECTED SCAN-CHAIN USING JTAG INTERFACE, METHOD THEREOF, AND DEVICES HAVING SAME}
본 발명의 개념에 따른 실시 예는 JTAG TAP 컨트롤러를 포함하는 집적 회로에 관한 것으로, 특히 하나의 스캔-체인으로 연결된 플립-플롭들의 값들을 JTAG 인터페이스를 이용하여 재구성할 수 있는 집적 회로, 이의 동작 방법, 및 상기 집적 회로를 포함하는 장치들에 관한 것이다.
JTAG(Joint Test Action Group)은 IEEE 1149.1 표준 테스트 액세스 표준과 바운더러-스캔 구조(IEEE 1149.1 Standard Test Access Port and Boundary-Scan Architecture)의 총칭이다.
JTAG는 바운더리 스캔(boundary scan)을 사용하여 인쇄 회로 기판들(printed circuit boards)을 테스트하기 위해 고안되었다.
일반적인 스캔-덤프(scan-dump) 방법은 스캔-체인(scan-chain)에 로딩된 값들을 시프트-아웃(shift-out)한 후 동일한 시나리오(scenario)를 테스트할 때 이전 시이퀀스와 동일한 시이퀀스를 반복적으로 수행해야 한다. 따라서, 상기 스캔-덤프 방법은 많은 시간을 소모하게 된다.
본 발명이 이루고자 하는 기술적인 과제는 하나의 스캔-체인으로 연결된 플립-플롭들의 값들을 JTAG 인터페이스를 이용하여 재구성할 수 있는 집적 회로, 이의 동작 방법, 및 상기 집적 회로를 포함하는 장치들을 제공하는 것이다.
본 발명의 실시 예에 따른 집적 회로는 입력 단자와 출력 단자를 포함하며 스캔-체인으로 접속된 복수의 동기 회로들을 포함하는 테스트될 온-칩 로직과, TDI(Test Data In) 라인과, 상기 출력 단자에 접속된 TDO(Test Data Out) 라인과, 하나 또는 둘 이상의 선택 신호들에 응답하여, 상기 TDI 라인과 상기 출력 단자를 포함하는 복수의 데이터 소스들 중 어느 하나의 데이터를 상기 입력 단자로 전송하는 TAP(Test Access Port) 컨트롤러를 포함한다.
상기 집적 회로는 프로그램가능한 메모리에 프로그램된 제어 신호에 기초하여 상기 TDO 라인과 TDO 핀 사이의 접속에 제어하는 마스크 회로를 더 포함할 수 있다.
실시 예에 따라, 상기 TAP 컨트롤러는 상기 출력 단자의 출력 데이터의 위상을 반전시키고 반전된 출력 데이터를 상기 입력 단자로 피드백시킬 수 있다.
다른 실시 예에 따라, 상기 TAP 컨트롤러는 사용자-정의 데이터를 저장하는 레지스터 블록을 포함하고, 상기 복수의 데이터 소스들은 상기 TDI 라인, 상기 출력 단자, 및 상기 레지스터 블록을 포함한다.
또 다른 실시 예에 따라, 상기 TAP 컨트롤러는 상기 출력 단자의 출력 데이터의 일부를 상기 사용자-정의 데이터로 변경할 수 있다.
실시 예에 따라, 상기 하나의 선택 신호가 제1선택 신호일 때, 상기 TAP 컨트롤러)는, 상기 제1선택 신호에 기초하여, 상기 TDI 라인과 상기 출력 단자 중 어느 하나와 상기 입력 단자의 접속을 제어하는 선택 회로를 포함한다.
다른 실시 예에 따라, 상기 둘 이상의 선택 신호들이 제1선택 신호와 제2선택 신호를 포함하고, 상기 복수의 동기 회로들 중 마지막 동기 회로와 상기 출력 단자 사이에 제1인버터가 구현될 때, 상기 TAP 컨트롤러는 상기 출력 단자에 접속된 제2인버터와, 상기 제2선택 신호에 기초하여, 상기 출력 단자의 출력 데이터 또는 상기 제2인버터의 출력 데이터를 출력하는 제2선택 회로와, 상기 제1선택 신호에 기초하여 상기 TDI 라인과 상기 제2선택 회로의 출력 단자 중 어느 하나와 상기 입력 단자의 접속을 제어하는 제1선택 회로를 포함한다.
또 다른 실시 예에 따라, 상기 둘 이상의 선택 신호들이 제1선택 신호와 제2선택 신호를 포함할 때, 상기 TAP 컨트롤러는 사용자-정의 데이터를 저장하는 레지스터 블록과, 상기 제2선택 신호에 기초하여 상기 출력 단자의 출력 데이터 또는 상기 사용자-정의 데이터를 출력하는 제2선택 회로와, 상기 제1선택 신호에 기초하여, 상기 TDI 라인과 상기 제2선택 회로의 출력 단자 중 어느 하나와 상기 입력 단자의 접속을 제어하는 제1선택 회로를 포함한다.
또 다른 실시 예에 따라, 상기 둘 이상의 선택 신호들이 제1선택 신호, 제2선택 신호, 및 제3선택 신호를 포함할 때, 상기 TAP 컨트롤러는 사용자-정의 데이터를 저장하는 레지스터 블록과, 상기 제3선택 신호에 기초하여 상기 출력 단자의 출력 데이터 또는 상기 사용자-정의 데이터를 출력하는 제3선택 회로와, 상기 제3선택 회로의 출력 단자에 접속된 인버터와, 상기 제2선택 신호에 기초하여 상기 제3선택 회로의 출력 데이터 또는 상기 인버터의 출력 데이터를 출력하는 제2선택 회로와, 상기 제1선택 신호에 기초하여 상기 TDI 라인과 상기 제2선택 회로의 출력 단자 중 어느 하나와 상기 입력 단자의 접속을 제어하는 제1선택 회로를 포함한다.
본 발명의 실시 예에 따른 애플리케이션 프로세서는 상기 집적 회로를 포함할 수 있다.
본 발명의 실시 예에 따른 컴퓨터 시스템은 애플리케이션 프로세서와, 상기 애플리케이션 프로세서와 통신하는 메모리와, 상기 애플리케이션 프로세서와 통신하는 디스플레이를 포함하며, 상기 애플리케이션 프로세서는 CPU와, 상기 CPU의 제어에 따라 상기 메모리와 통신할 수 있는 메모리 인터페이스와, 상기 CPU의 제어에 따라 상기 디스플레이의 동작을 제어하는 디스플레이 컨트롤러를 포함한다.
상기 CPU는 입력 단자와 출력 단자를 포함하며 스캔-체인으로 접속된 복수의 동기 회로들을 포함하는 테스트될 온-칩 로직과, TDI(Test Data In) 라인과, 상기 출력 단자에 접속된 TDO(Test Data Out) 라인과, 하나 또는 둘 이상의 선택 신호들에 응답하여 상기 TDI 라인과 상기 출력 단자를 포함하는 복수의 데이터 소스들 중 어느 하나와 상기 입력 단자를 접속하는 TAP(Test Access Port) 컨트롤러를 포함한다.
상기 CPU는 프로그램가능한 메모리에 프로그램된 제어 신호에 기초하여 상기 TDO 라인과 TDO 핀 사이의 접속에 제어하는 마스크 회로를 더 포함할 수 있다.
본 발명의 실시 예에 따른 입력 단자와 TDO(Test Data Out) 라인에 접속된 출력 단자를 포함하며 스캔-체인으로 접속된 복수의 동기 회로들을 포함하는 테스트될 온-칩 로직을 포함하는 집적 회로의 동작 방법은 복수의 선택 신호들을 설정하는 단계와, 상기 복수의 선택 신호들에 응답하여, TDI 라인을 통해 입력된 TDI 데이터를 전송하는 제1경로, 상기 출력 단자의 출력 데이터에 관련된 데이터를 전송하는 제2경로, 및 사용자-정의 데이터를 전송하는 제3경로 중 어느 하나를 상기 입력 단자에 접속하는 단계를 포함한다.
상기 제2경로를 통해 상기 입력 단자로 피드백되는 상기 출력 데이터에 관련된 데이터의 위상은 상기 출력 데이터의 위상과 서로 동일하거나 서로 반대일 수 있다.
상기 동작 방법은 상기 입력 단자로 피드백되는 상기 출력 데이터에 관련된 데이터의 일부를 상기 제3경로를 이용하여 상기 사용자-정의 데이터로 변경하는 단계를 더 포함한다.
본 발명의 실시 예에 따른 집적 회로에 내장된 JTAG TAP 컨트롤러는, 상기 집적 회로가 기능 불량 상태(malfunction state) 또는 장애(hang-up)로 될 때, 테스트될 온-칩 로직으로부터 시프트-아웃되는 데이터를 TDO 핀을 통해 디버거로 전송하는 동시에 상기 데이터를 상기 온-칩 로직으로 다시 로드하거나 상기 데이터의 일부를 사용자-정의 데이터로 변경할 수 있는 효과가 있다.
따라서, 상기 집적 회로는 상기 테스트될 온-칩 로직으로부터 출력되는 데이터를 상기 테스트될 온-칩 로직으로 다시 로드(load)하기 위한 별도의 저장 장치나 에뮬레이터를 포함하지 않는다.
종래의 스캔-펌프(scan-pump) 방법에서 테스트될 온-칩 로직에 포함되고 스캔-체인으로 연결된 복수의 플립-플롭들에 로드된 값들이 시프트-아웃되면, 동일한 시나리오로 상기 온-칩 로직이 테스트될 때 반복적인 진입 시이퀀스가 필요하므로, 디버깅에 많은 시간이 소요된다.
그러나, 상기 집적 회로에 내장된 JTAG TAP 컨트롤러는 테스트될 온-칩 로직으로부터 시프트-아웃되는 데이터를 상기 온-칩 로직으로 다시 로드할 수 있으므로, 상기 집적 회로에 대한 디버깅 시간을 감소시키는 효과가 있다.
또한, 상기 집적 회로에 내장된 JTAG TAP 컨트롤러는 테스트될 온-칩 로직으로부터 시프트-아웃되는 데이터의 일부를 사용자-정의 데이터로 변경할 수 있으므로, 상기 집적 회로에 대한 디버깅 효율을 높이는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 일 실시 예에 따른 JTAG TAP(joint test action group test access port) 컨트롤러를 포함하는 집적 회로의 블록도이다.
도 2는 본 발명의 다른 실시 예에 따른 JTAG TAP 컨트롤러를 포함하는 집적 회로의 블록도이다.
도 3은 본 발명의 또 다른 실시 예에 따른 JTAG TAP 컨트롤러를 포함하는 집적 회로의 블록도이다.
도 4는 본 발명의 또 다른 실시 예에 따른 JTAG TAP 컨트롤러를 포함하는 집적 회로의 블록도이다.
도 5는 도 4에 도시된 집적 회로의 동작을 설명하기 위한 개념도이다.
도 6은 도 4에 도시된 신호 경로들의 선택 조건들을 나타낸다.
도 7은 본 발명의 또 다른 실시 예에 따른 JTAG TAP 컨트롤러를 포함하는 집적 회로의 블록도이다.
도 8은 도 1, 도 2, 도 3, 도 4, 또는 도 7에 도시된 집적 회로를 포함하는 전자 시스템의 블록도를 나타낸다.
도 9는 도 1, 도 2, 도 3, 도 4, 또는 도 7에 도시된 집적 회로의 동작을 설명하기 위한 플로우차트이다.
도 10은 도 4 또는 도 7에 도시된 집적 회로의 동작을 설명하기 위한 플로우차트이다.
도 11은 도 1, 도 2, 도 3, 도 4, 도 7, 또는 도 8에 도시된 집적 회로를 포함하는 전자 시스템의 블록도를 나타낸다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
도 1은 본 발명의 일 실시 예에 따른 JTAG TAP(joint test action group test access port) 컨트롤러를 포함하는 집적 회로의 블록도이다.
도 1을 참조하면, 집적 회로(integrated circuit(IC); 100A)는 테스트될 온-칩 로직(110-1), JTAG 인터페이스(120), 및 JTAG TAP 컨트롤러(130A)를 포함한다.
IC(100A)는 시스템 온 칩(system on chip(SoC))을 의미할 수도 있다.
디버깅(debugging) 대상이 되는 테스트될 온-칩 로직(110-1)은 코어 로직 (core logic) 또는 유닛 언더 테스트(unit under test(UUT))로 불릴 수도 있다.
테스트될 온-칩 로직(110-1)은 입력 단자(20)와 출력 단자(30)를 포함하며, 하나의 스캔-체인(scan-chain)으로 접속된 복수의 동기 회로들(101-1~101-n; n은 자연수)을 포함한다.
순차적으로 접속된 복수의 동기 회로들(101-1~101-n) 각각은 하나의 스캔 플립-플롭(scan flip-flop)을 의미할 수 있다. 현재 스캔 플립-플롭의 출력 단자는 다음 스캔 플립-플롭의 입력 단자에 접속된 형태를 갖는다.
대응되는 현재 스캔 플립-플롭은, 스캔 테스트 모드(scan test mode) 및/또는 스캔 덤프 모드(scan dump mode)에서, 저장된 값을 TCK(Test clock) 신호와 TMS (Test Mode Select) 신호에 기초하여 대응되는 다음 플립-플립으로 전송할 수 있다. 각각의 스캔 플립-플롭은 입력 단자와 출력 단자를 포함하고, 대응되는 현재 스캔 플립-플롭의 출력 단자와 대응되는 다음 스캔 플립-플롭의 입력 단자 사이에는 결합 로직 (combinational logic)이 존재할 수 있다.
복수의 동기 회로들(101-1~101-n) 각각은 TCK(Test Clock) 신호(TCK)에 동기되어 동작하는 디지털 회로로서, 플립-플롭(flip-flop) 또는 스캔 플립-플롭으로 구현될 수 있다.
예컨대, 복수의 동기 회로들(101-1~101-n) 각각은 TCK 신호(TCK)와 TMS(Test Mode Select) 신호(TMS)에 기초하여 동작할 수 있다.
JTAG 인터페이스(120)는 IC(100A)에 부가되는 특별한 4-핀 인터페이스 또는 5-핀 인터페이스이다.
JTAG 인터페이스(120)는 TDO(Test Data Out) 핀(121), TCK 핀(122), TDI (Test Data In) 핀(123), 및 TMS 핀(124)을 포함한다. 선택적으로(optionally), JTAG 인터페이스(120)는 TRST(Test Reset) 핀(125)을 더 포함할 수 있다.
JTAG 인터페이스(120)의 핀들(121~125)과 핀들(121~125) 각각을 통해 입출력되는 신호에 대해서는 IEEE 1149.1 표준을 참조한다.
본 명세서에서는 핀(pin)이란 용어를 사용하나, 상기 핀은 전도체 (conductor), 또는 전기 줄(lead)을 의미할 수 있다.
JTAG TAP 컨트롤러(130A)는 TDO 신호(TDO), TCK 신호(TCK), TDI 신호(TDI), 및 TMS 신호(TMS) (선택적으로, TRST 신호(TRST))을 이용하여 테스트될 온-칩 로직 (110-1)의 동작을 제어할 수 있다.
JTAG TAP 컨트롤러(130A)는 컨트롤 로직(130-1), 제1선택 회로(131), 및 제1레지스터(132)를 포함한다. 테스트될 온-칩 로직(110-1)의 출력 단자(30)는 TDO 라인(121-1)과 마스크 회로(115)를 통해 TDO 핀(121)에 접속될 수 있다.
예컨대, 마스크 회로(115)는 프로그램가능한 메모리(PM)로부터 출력된 제어 신호(PROT)의 레벨에 기초하여 TDO 라인(121-1)과 TDO 핀(121) 사이의 접속을 제어할 수 있다. 실시 예들에 따라, 마스크 회로(115)와 프로그램가능한 메모리(PM)는 JTAG TAP 컨트롤러(130A)의 내부 또는 외부에 구현될 수 있다.
예컨대, 마스크 회로(115)는 AND 게이트로 구현될 수 있다. 프로그램가능한 메모리(PM)는 OTP 셀(one-time programmable (OTP) cell), 퓨즈, 안티-퓨즈, 또는 e-퓨즈로 구현될 수 있다.
예컨대, 하이 레벨(또는 데이터 1)을 갖는 제어 신호(PROT)가 출력되도록 프로그램가능한 메모리(PM)가 프로그램되어 있을 때, 테스트될 온-칩 로직(110-1)의 출력 단자(30)로부터 출력된 신호는 TDO 핀(121)을 통해 외부로 출력될 수 있다.
그러나, 로우 레벨(또는 데이터 0)을 갖는 제어 신호(PROT)가 출력되도록 프로그램가능한 메모리(PM)가 프로그램되어 있을 때, 테스트될 온-칩 로직(110-1)의 출력 단자(30)로부터 출력된 신호는 TDO 핀(121)을 통해 외부로 출력될 수 없다.
예컨대, 제조업자가 IC(100A)의 내부 회로가 공개되는 것을 방지하기 위해 로우 레벨을 갖는 제어 신호(PROT)가 출력되도록 프로그램가능한 메모리(PM)를 프로그램할 수 있다.
테스트될 온-칩 로직(110-1)의 출력 단자(30)로부터 출력된 신호가 TDO 핀 (121)을 통해 출력되지 않으므로, IC(100A)의 스캔 덤프 모드에서 테스트될 온-칩 로직(110-1)에 저장된 데이터는 TDO 핀(121)을 통해 모니터링되지 않는다.
본 발명의 실시 예에 따른 JTAG TAP 컨트롤러(130A, 130B, 130C, 130D, 또는 130E)는 필요한 데이터를 미리 저장할 수 있는 레지스터(132, 135, 130-1C, 130-1D, 130-1E, 및/또는 130-3)를 포함한다.
따라서, 본 발명의 실시 예에 따른 JTAG TAP 컨트롤러(130A, 130B, 130C, 130D, 또는 130E)는, 테스트될 온-칩 로직(110-1)을 테스트하는 동안 출력 단자 (30)로부터 출력된 신호를 TDO 핀(121)을 통해 모니터링하거나 또는 테스트될 온-칩 로직(110-1)으로 새로운 데이터를 입력하지 않고도, 레지스터(132, 135, 130-1C, 130-1D, 130-1E, 및/또는 130-3)를 이용하여 IC(100A)를 디버깅할 수 있는 효과가 있다.
또한, 본 발명의 실시 예에 따른 JTAG TAP 컨트롤러(130A, 130B, 130C, 130D, 또는 130E)는, IC(100A)의 내부 회로의 기능 불량(malfunction)에 의해 디버깅(debugging)이 제대로 수행되지 않을 때 강제로 IC(100A)의 모든 내부 레지스터에 저장된 값들을 외부로 출력하지 않고도, 기능 불량으로 의심스러운 부분들 또는 디버깅이 제대로 수행되지 않는 부분들로 입력되는 데이터를 레지스터(132, 135, 130-1C, 130-1D, 130-1E, 및/또는 130-3)를 이용하여 직접 변경하면서 상기 기능 불량의 원인 및/또는 디버깅이 제대로 수행되지 않는 이유를 찾을 수 있는 효과가 있다.
컨트롤 로직(130-1)은, JTAG 인터페이스(120)를 통해 입력된 신호들(TCK, TDI, 및/또는 TMS)을 이용하여, 제1선택 신호(SEL1)의 생성에 관련된 데이터를 제1레지스터(132)에 설정(또는 프로그램)할 수 있다.
제1선택 회로(131)는, 제1레지스터(132)로부터 출력된 제1선택 신호(SEL1)에 기초하여, TDI 라인(123-1)을 통해 입력된 TDI 신호(TDI)와 출력 단자(30)로부터 출력된 제2신호(DATA2)를 제1신호(DATA1)로서 입력 단자(20)로 전송할 수 있다.
여기서 '신호'는 1-비트 또는 그 이상의 비트들을 포함하는 디지털 신호들을 의미할 수 있고, 데이터로 불릴 수도 있다.
예컨대, 제1선택 신호(SEL1)가 하이 레벨(예컨대, 데이터 '1')일 때 제1선택 회로(131)는 출력 단자(30)로부터 출력된 제2데이터(DATA2)를 제1데이터(DATA1)로서 입력 단자(20)로 피드백(또는 재로드(re-load))시키고, 제2선택 신호(SEL1)가 로우 레벨(예컨대, 데이터 '0')일 때 제1선택 회로(131)는 TDI 신호(TDI)를 제1데이터(DATA1)로서 입력 단자(20)로 전송한다.
TDI 라인(123-1)과 출력 단자(30)는 데이터 소스들(data sources)의 기능을 수행할 수 있다.
도 2는 본 발명의 다른 실시 예에 따른 JTAG TAP 컨트롤러를 포함하는 집적 회로의 블록도이다.
도 2를 참조하면, IC(100B)는 테스트될 온-칩 로직(110-1'), JTAG 인터페이스(120), 및 JTAG TAP 컨트롤러(130B)를 포함한다. IC(100B)는 SoC를 의미할 수도 있다.
테스트될 온-칩 로직(110-1')은 입력 단자(20)와 출력 단자(30)를 포함하며, 하나의 스캔-체인으로 접속된 복수의 동기 회로들(101-1~101-n)과, 제1인버터(111)를 포함한다.
제1인버터(111)는 복수의 동기 회로들(101-1~101-n) 중에서 마지막 동기 회로(101-n)의 출력 신호를 반전시키고, 반전된 제2데이터(/DATA2)를 출력 단자(30)를 통해 JTAG TAP 컨트롤러(130B)로 출력한다.
JTAG TAP 컨트롤러(130B)는 TDO 신호(TDO), TCK 신호(TCK), TDI 신호(TDI), 및 TMS 신호(TMS) (선택적으로, TRST 신호(TRST))을 이용하여 테스트될 온-칩 로직 (110-1')의 동작을 제어할 수 있다.
JTAG TAP 컨트롤러(130B)는 컨트롤 로직(130-1), 제1선택 회로(131), 제1레지스터(132), 제2선택 회로(133), 제2인버터(134), 및 제2레지스터(135)를 포함한다.
테스트될 온-칩 로직(110-1')의 출력 단자(30)는 TDO 라인(121-1)과 마스크 회로(115)를 통해 TDO 핀(121)에 접속된다. 마스크 회로(115)와 프로그램가능한 메모리(PM) 각각의 기능과 동작은 도 1을 참조하여 설명한 바와 같다.
컨트롤 로직(130-1)은, JTAG 인터페이스(120)를 통해 입력된 신호들(TCK, TDI, 및/또는 TMS)을 이용하여, 제1선택 신호(SEL1)의 생성에 관련된 데이터를 제1레지스터(132)에 설정하고 제2선택 신호(SEL2)의 생성에 관련된 데이터를 제2레지스터(135)에 설정할 수 있다.
제2선택 회로(133)는, 제2레지스터(135)로부터 출력된 제2선택 신호(SEL2)에 기초하여, 반전된 제2데이터(/DATA2)와 제2인버터(134)의 출력 데이터(DATA2) 중에서 어느 하나를 제1선택 회로(131)로 출력한다.
제1선택 회로(131)는, 제1레지스터(132)로부터 출력된 제1선택 신호(SEL1)에 기초하여, TDI 라인(123-1)을 통해 입력된 TDI 신호(TDI)와 제2선택 회로(133)의 출력 데이터(/DATA2 또는 DATA2)를 제1데이터(DATA1)로서 입력 단자(20)로 전송한다.
예컨대, 제2선택 신호(SEL2)가 하이 레벨일 때 제2선택 회로(133)는 제2인버터(134)의 출력 데이터(DATA2)를 출력하고, 제2선택 신호(SEL2)가 로우 레벨일 때 제2선택 회로(133)는 반전된 제2데이터(/DATA2)를 제1선택 회로(131)로 출력한다.
제1인버터(111)가 테스트될 온-칩 로직(110-1')에 포함되어 있는지에 따라, 제2선택 회로(133)는, 제2선택 신호(SEL2)에 기초하여, 반전된 제2데이터(/DATA2)와 제2데이터(DATA2) 중에서 어느 하나를 제1선택 회로(131)로 출력할 수 있다.
도 3은 본 발명의 또 다른 실시 예에 따른 JTAG TAP 컨트롤러를 포함하는 집적 회로의 블록도이다.
도 3을 참조하면, IC(100C)는 테스트될 온-칩 로직(110-1), JTAG 인터페이스 (120), 및 JTAG TAP 컨트롤러(130C)를 포함한다. IC(100C)는 SoC를 의미할 수도 있다.
JTAG TAP 컨트롤러(130C)는 TDO 신호(TDO), TCK 신호(TCK), TDI 신호(TDI), 및 TMS 신호(TMS) (선택적으로, TRST 신호(TRST))을 이용하여 테스트될 온-칩 로직 (110-1)의 동작을 제어할 수 있다.
JTAG TAP 컨트롤러(130C)는 컨트롤 로직(130-1), 제1레지스터 블록(130-1C), 제2레지스터 블록(130-3), 카운터(136), 비교기(137), 논리 회로(138), 및 제3선택 회로(140)를 포함한다.
JTAG 인터페이스(120)를 통해 입력된 신호들(TCK, TDI, 및/또는 TMS)을 이용하여, 컨트롤 로직(130-1)은 제1선택 신호(SEL1)의 생성에 관련된 데이터를 제1레지스터(132)에 설정하고, 제3선택 신호(SEL3)의 생성에 관련된 제어 데이터를 제3레지스터(139)에 설정하고, 변경(또는 대체)될 데이터의 크기와 위치 중에서 적어도 하나를 나타내는 변경 데이터를 제4레지스터(141)에 설정할 수 있다.
제1레지스터 블록(130-1C)은 제1레지스터(132), 제3레지스터(139), 및 제4레지스터(141)를 포함한다. 각 레지스터(132, 139, 및 141)는 하나 또는 그 이상의 비트들을 저장할 수 있다.
컨트롤 로직(130-1)은, JTAG 인터페이스(120)를 통해 입력된 신호들(TCK, TDI, 및/또는 TMS)을 이용하여, 사용자-정의 데이터, 즉 제3데이터(DATA3)를 제2레지스터 블록(130-3)에 저장할 수 있다. 제2레지스터 블록(130-3)은 하나 또는 그 이상의 비트들을 저장할 수 있고, 데이터 소스의 기능을 수행할 수 있다.
예컨대, 제3데이터(DATA3)는 보안이 필요한 데이터일 수 있다. 제3데이터 (DATA3)의 크기는 제2데이터(DATA2)의 크기보다 작거나 같을 수 있다.
카운터(136)는 JTAG 인터페이스(120)를 통해 테스트될 온-칩 로직(110-1)으로 공급되는 TCK 신호(TCK)의 주기를 카운트하고 카운트 값(CNT)을 출력한다.
즉, 카운터(136)는 테스트될 온-칩 로직(110-1)에서 시프트(shift) 동작이 수행되는 동안 TCK 신호(TCK)의 사이클(또는 주기)을 카운트하고 카운트 값(CNT)을 출력할 수 있다.
비교기(137)는 제4레지스터(141)로부터 출력된 변경 데이터(IF)에 관련된 기준 값과 카운트 값(CNT)을 서로 비교하고, 비교 결과에 따라 레벨이 결정되는 플래그(FLAG)를 출력할 수 있다.
논리 회로(138)는 플래그(FLAG)와 제3레지스터(139)에 저장된 제어 데이터를 논리 연산하고 논리 연산 결과에 상응하는 제3선택 신호(SEL3)를 출력한다. 예컨대, 논리 회로(138)는 제3선택 신호(SEL3)를 생성하는 선택 신호 생성기의 기능을 수행할 수 있고, AND 게이트로 구현될 수 있다.
제3선택 회로(140)는, 제3선택 신호(SEL3)에 응답하여, 출력 단자(30)의 제2데이터(DATA2)와 제2레지스터 블록(130-3)의 제3데이터(DATA3) 중에서 어느 하나 (D140)를 제1선택 회로(131)로 전송한다.
제1선택 회로(131)는, 제1레지스터(132)로부터 출력된 제1선택 신호(SEL1)에 기초하여, TDI 라인(123-1)을 통해 입력된 TDI 신호(TDI)와 제3선택 회로(140)의 출력 데이터(D140)를 제1데이터(DATA1)로서 입력 단자(20)로 전송한다.
제3선택 신호(SEL3)의 활성화 타이밍과 비활성화 타이밍에 따라, 출력 단자 (30)의 제2데이터(DATA2) 중에서 일부는 제3데이터(DATA3)로 변경될 수 있다.
출력 단자(30)를 통해 출력된 제2데이터(DATA2) 중에서 일부가 제3데이터 (DATA3)로 변경되는 과정은 도 5를 참조하여 상세히 설명될 것이다.
테스트될 온-칩 로직(110-1)의 출력 단자(30)는 TDO 라인(121-1)과 마스크 회로(115)를 통해 TDO 핀(121)에 접속된다. 마스크 회로(115)와 프로그램가능한 메모리(PM) 각각의 기능과 동작은 도 1을 참조하여 설명한 바와 같다.
도 4는 본 발명의 또 다른 실시 예에 따른 JTAG TAP 컨트롤러를 포함하는 집적 회로의 블록도이다.
도 4를 참조하면, IC(100D)는 테스트될 온-칩 로직(110-1), JTAG 인터페이스 (120), 및 JTAG TAP 컨트롤러(130D)를 포함한다. IC(100D)는 SoC를 의미할 수도 있다.
JTAG TAP 컨트롤러(130D)는, TDO 신호(TDO), TCK 신호(TCK), TDI 신호(TDI), 및 TMS 신호(TMS) (선택적으로, TRST 신호(TRST))을 이용하여, 테스트될 온-칩 로직(110-1)의 스캔 동작을 제어할 수 있다.
실시 예들에 따라서, 테스트될 온-칩 로직(110-1)은 제1인버터(111)를 포함할 수도 있고 포함하지 않을 수도 있다.
예컨대, 테스트될 온-칩 로직(110-1)이 제1인버터(111)를 포함할 때, 제2선택 신호(SEL2)는 하이 레벨로 설정될 수 있다. 그러나, 테스트될 온-칩 로직(110-1)이 제1인버터(111)를 포함하지 않을 때, 제2선택 신호(SEL2)는 로우 레벨로 설정될 수 있다.
JTAG TAP 컨트롤러(130D)는 입력 단자(20)로 피드백되는 제1데이터(DATA1)의 위상과 출력 단자(30)의 출력 데이터(DATA2 또는 /DATA2)의 위상을 동일하게 할 수 있다.
물론, JTAG TAP 컨트롤러(130D)는 입력 단자(20)로 피드백되는 제1데이터 (DATA1)의 위상과 출력 단자(30)의 출력 데이터(DATA2 또는 /DATA2)의 위상을 다르게 하기 위해 제2선택 신호(SEL2)의 레벨을 결정할 수도 있다.
JTAG TAP 컨트롤러(130D)는 컨트롤 로직(130-1), 제1레지스터 블록(130-1D), 제2레지스터 블록(130-3), 제1선택 회로(131), 제2선택 회로(133), 제2인버터 (134), 카운터(136), 비교기(137), 논리 회로(138), 및 제3선택 회로(140)를 포함한다.
JTAG 인터페이스(120)를 통해 입력된 신호들(TCK, TDI, 및/또는 TMS)을 이용하여, 컨트롤 로직(130-1)은 제1선택 신호(SEL1)의 생성에 관련된 데이터를 제1레지스터(132)에 설정하고, 제2선택 신호(SEL2)의 생성에 관련된 데이터를 제2레지스터(135)에 설정하고, 제3선택 신호(SEL3)의 생성에 관련된 제어 데이터를 제3레지스터(139)에 설정하고, 변경(또는 대체)될 데이터의 크기와 위치 중에서 적어도 하나를 나타내는 변경 데이터를 제4레지스터(141)에 설정할 수 있다.
제1레지스터 블록(130-1D)은 제1레지스터(132), 제2레지스터(135), 제3레지스터(139), 및 제4레지스터(141)를 포함한다. 각 레지스터(132, 135, 139, 및 141)는 하나 또는 그 이상의 비트들을 저장할 수 있다.
컨트롤 로직(130-1)은, JTAG 인터페이스(120)를 통해 입력된 신호들(TCK, TDI, 및/또는 TMS)을 이용하여, 사용자-정의 데이터, 즉 제3데이터(DATA3)를 제2레지스터 블록(130-3)에 저장할 수 있다.
카운터(136)는 JTAG 인터페이스(120)를 통해 테스트될 온-칩 로직(110-1)으로 공급되는 TCK 신호(TCK)의 주기를 카운트하고, 카운트 값(CNT)을 출력한다.
비교기(137)는 제4레지스터(141)에 저장된 변경 데이터(IF)에 상응하는 기준 값과 카운트 값(CNT)을 비교하고, 비교 결과에 상응하는 플래그(FLAG)를 출력한다.
논리 회로(138)는 플래그(FLAG)와 제3레지스터(139)로부터 출력된 제어 데이터를 논리 연산하고 논리 연산 결과에 상응하는 제3선택 신호(SEL3)를 출력한다.
제3선택 회로(140)는, 제3선택 신호(SEL3)에 응답하여, 출력 단자(30)의 제2데이터(DATA2 또는 /DATA2)와 제2레지스터 블록(130-3)의 제3데이터(DATA3) 중에서 어느 하나(D140)를 제2선택 회로(133)로 전송한다.
제2선택 회로(133)는, 제2선택 신호(SEL2)에 기초하여, 제3선택 회로(140)의 출력 데이터(D140)와 제2인버터(134)의 출력 데이터 중에서 어느 하나를 제1선택 회로(131)로 출력한다.
제1선택 회로(131)는, 제1선택 신호(SEL1)에 기초하여, TDI 라인(123-1)을 통해 입력된 TDI 신호(TDI)와 제2선택 회로(133)의 출력 데이터를 제1데이터 (DATA1)로서 입력 단자(20)로 전송한다.
상술한 바와 같이, 제3선택 신호(SEL3)의 활성화 타이밍과 비활성화 타이밍에 따라, 출력 단자(30)의 제2데이터(DATA2) 중에서 일부는 제3데이터(DATA3)로 변경될 수 있다.
도 5는 도 4에 도시된 집적 회로의 동작을 설명하기 위한 개념도이다.
제4레지스터(141)에 프로그램된 변경 데이터(DP1과 DP2)에 기초하여 동작하는 비교기(137)의 동작은 도 3부터 도 5를 참조하여 상세히 설명된다.
실시 예에 따라, DP1은 변경될 데이터의 시작 위치(start position)를 나타내고, DP2는 변경될 데이터의 끝 위치(end position)를 나타낼 수 있다. 다른 실시 예에 따라, DP2는 변경될 데이터의 크기를 나타낼 수 있다.
설명의 편의를 위해, 테스트될 온-칩 로직(110-1)에 구현된 동기 회로들 (101-1~101-n)의 개수가 100개이고, 20번째 동기 회로부터 39번째 동기 회로에 저장될 데이터를 변경하고자 할 때, DP1은 20으로 설정되고, DP2는 39로 설정될 수 있다.
또한, 테스트될 온-칩 로직(110-1)은 제1인버터(111)를 포함하지 않고, 제1선택 신호(SEL1)는 하이 레벨이고, 제2선택 신호(SEL2)는 로우 레벨이고, 제3레지스터(139)에 저장된 제어 데이터(S@REG3)는 하이 레벨이라고 가정한다.
카운터(136)는 테스트될 온-칩 로직(110-1)으로 공급되는 TCK 신호(TCK)의 주기(또는 사이클)를 카운트하고 카운트 값(CNT)을 출력한다.
카운트 값(CNT)이 '1'부터 '20'이 될 때까지, 비교기(137)는 로우 레벨을 갖는 플래그(FLAG)를 출력하므로, 논리 회로(138)는 로우 레벨을 갖는 제3선택 신호 (SEL3)를 제3선택 회로(140)로 출력한다.
따라서, 제3선택 회로(140)는 제2데이터(DATA2)의 일부(DATA2-1)를 출력 데이터(D140)로서 출력하므로, 제2데이터(DATA2)의 일부(DATA2-1)는 각 선택 회로 (131과 133)를 통해 입력 단자(20)로 피드백된다.
그러나, 카운트 값(CNT)이 '20'으로 되면, 비교기(137)는 DP1을 이용하여 하이 레벨을 갖는 플래그(FLAG)를 출력하므로, 논리 회로(138)는 하이 레벨을 갖는 제3선택 신호(SEL3)를 제3선택 회로(140)로 출력한다.
따라서, 제3선택 회로(140)는 제3데이터(DATA3)의 일부, 예컨대 첫 번째 비트를 출력 데이터(D140)로서 출력하므로, 제3데이터(DATA3)의 일부, 예컨대 첫 번째 비트는 각 선택 회로(131과 133)를 통해 입력 단자(20)로 전송된다.
카운트 값(CNT)이 '40'으로 될 때까지, 비교기(137)는 하이 레벨을 갖는 플래그(FLAG)를 출력하므로, 논리 회로(138)는 하이 레벨을 갖는 제3선택 신호(SEL3)를 제3선택 회로(140)로 출력한다.
따라서, 제3선택 회로(140)는 제3데이터(DATA3)의 나머지 일부, 즉 20번째 비트를 출력 데이터(D140)로서 출력하므로, 제3데이터(DATA3)의 나머지 일부, 즉 20번째 비트는 각 선택 회로(131과 133)를 통해 입력 단자(20)로 전송된다.
카운트 값(CNT)이 '40'으로 되면, 비교기(137)는 로우 레벨을 갖는 플래그 (FLAG)를 출력하므로, 논리 회로(138)는 로우 레벨을 갖는 제3선택 신호(SEL3)를 제3선택 회로(140)로 출력한다.
제3선택 회로(140)는 제2데이터(DATA2)의 나머지 일부(DATA2-2)를 출력 데이터(D140)로서 출력하므로, 제2데이터(DATA2)의 나머지 일부(DATA2-2)는 각 선택 회로(131과 133)를 통해 입력 단자(20)로 피드백된다.
도 5에서는 설명의 편의를 위해, 제2데이터(DATA2)의 하나의 부분만이 제3데이터(DATA3)로 변경되는 예가 도시되어 있으나, 변경 데이터(IF)가 제4레지스터 (141)에 어떻게 프로그램되는지에 따라 제2데이터(DATA2)는 세 조각 이상으로 분리될 수 있다.
도 6은 도 4에 도시된 신호 경로들의 선택 조건들을 나타낸다.
도 4와 도 6을 참조하면, 출력 단자(30)와 입력 단자(20) 사이에 형성되는 피드백 신호 경로들은 3개이다.
각 선택 신호(SEL1, SEL2, 및 SEL3)의 레벨에 따라, JTAG TAP 컨트롤러 (130D)는 3개의 피드백 신호 경로들 중에서 어느 하나를 선택할 수 있다.
신호 경로 1(PATH1)은 제1인버터(111)가 테스트될 온-칩 로직(101-1)에 포함되지 않을 때 선택될 수 있다.
즉, 제1선택 신호(SEL1)가 하이 레벨로 설정되고 각 선택 신호(SEL2와 SEL3)가 로우 레벨로 설정될 때, JTAG TAP 컨트롤러(130D)는 신호 경로 1(PATH1)을 선택할 수 있다.
신호 경로 2(PATH2)는 제1인버터(111)가 테스트될 온-칩 로직(101)에 포함될 때 선택될 수 있다.
즉, 각 선택 신호(SEL1과 SEL2)가 하이 레벨로 설정되고 제3선택 신호(SEL3)가 로우 레벨로 설정될 때, JTAG TAP 컨트롤러(130D)는 신호 경로 2(PATH2)를 선택할 수 있다.
신호 경로 3(PATH3)은 제2데이터(DATA2)의 일부를 제3데이터(DATA3)로 변경할 때 선택될 수 있다.
즉, 각 선택 신호(SEL1과 SEL3)가 하이 레벨로 설정되고 제2선택 신호(SEL2)가 로우 레벨로 설정될 때, JTAG TAP 컨트롤러(130D)는 신호 경로 3(PATH3)을 선택할 수 있다.
각 선택 신호(SEL2와 SEL3)의 레벨에 무관하게 제1선택 신호(SEL1)의 레벨이 로우 레벨일 때, TDI 라인(123-1)의 DTI 신호(DTI)는 신호 경로 4(PATH4)를 통해 입력 단자(20)로 공급될 수 있다.
도 6의 테이블을 설명의 편의를 위해 예시적으로 도시된 것에 불과하다.
도 7은 본 발명의 또 다른 실시 예에 따른 JTAG TAP 컨트롤러를 포함하는 집적 회로의 블록도이다.
도 7을 참조하면, IC(100E)는 복수의 테스트될 온-칩 로직들(110-1~110-m; m은 2 이상의 자연수), JTAG 인터페이스(120), JTAG TAP 컨트롤러(130E), 제4선택 회로(150), 및 제5선택 회로(160)를 포함한다.
복수의 테스트될 온-칩 로직들(110-1~110-m) 각각은 IC(100E)의 내부 로직 회로들을 테스트하기 위하여 나누어진 스캔 체인(scan chain)에 대응될 수 있다.
각 선택 회로(131, 133, 140, 및 160)는 멀티플렉서(multiplexer)로 구현될 수 있고, 제4선택 회로(150)는 디-멀티플렉서(de-multiplexer)로 구현될 수 있다.
IC(100E)는 SoC를 의미할 수도 있다.
JTAG TAP 컨트롤러(130E)는, TDO 신호(TDO), TCK 신호(TCK), TDI 신호(TDI), 및 TMS 신호(TMS) (선택적으로, TRST 신호(TRST))을 이용하여, 복수의 테스트될 온-칩 로직들(110-1~110-m) 각각의 동작을 제어할 수 있다.
실시 예들에 따라, 복수의 테스트될 온-칩 로직들(110-1~110-m) 각각은 제1인버터(111)를 포함할 수도 있고 포함하지 않을 수도 있다.
JTAG 인터페이스(120)를 통해 입력된 신호들(TCK, TDI, 및/또는 TMS)을 이용하여, 컨트롤 로직(130-1)은 제1선택 신호(SEL1)의 생성에 관련된 데이터를 제1레지스터(132)에 설정하고, 제2선택 신호(SEL2)의 생성에 관련된 데이터를 제2레지스터(135)에 설정하고, 제3선택 신호(SEL3)의 생성에 관련된 제어 데이터를 제3레지스터(139)에 설정하고, 변경(또는 대체)될 데이터의 크기와 위치 중에서 적어도 하나를 나타내는 변경 데이터를 제4레지스터(141)에 설정하고, 제4선택 신호(SEL4)의 생성에 관련된 데이터를 제5레지스터(151)에 설정하고, 제5선택 신호(SEL5)의 생성에 관련된 데이터를 제6레지스터(161)에 설정할 수 있다.
제1레지스터 블록(130-1E)은 레지스터들(132, 135, 139, 141, 151, 및 161)를 포함한다. 각 레지스터(132, 135, 139, 141, 151, 및 161)는 하나 또는 그 이상의 비트들을 저장할 수 있다.
컨트롤 로직(130-1)은, JTAG 인터페이스(120)를 통해 입력된 신호들(TCK, TDI, 및/또는 TMS)을 이용하여, 사용자-정의 데이터, 즉 제3데이터(DATA3)를 제2레지스터 블록(130-3)에 저장할 수 있다.
복수의 테스트될 온-칩 로직들(110-1~110-m)의 개수에 따라, 각 선택 신호 (SEL4와 SEL5)에 포함될 비트의 수가 결정될 수 있다.
제4선택 회로(150)는, 하나 또는 그 이상의 비트들을 포함하는 제4선택 신호 (SEL4)에 기초하여, 제1선택 회로(131)의 출력 단자와 복수의 테스트될 온-칩 로직들(110-1~110-m) 중의 어느 하나의 입력 단자를 접속시킬 수 있다.
제5선택 회로(160)는, 하나 또는 그 이상의 비트들을 포함하는 제5선택 신호 (SEL5)에 기초하여, 복수의 테스트될 온-칩 로직들(110-1~110-m) 중의 어느 하나의 출력 단자와 TDO 라인(121-1)을 접속시킬 수 있다.
테스트될 온-칩 로직(110-1~110-m) 별로 처리 중인 데이터 중에서 변경될 데이터에 대한 변경 데이터는 제4레지스터(141)에 저장될 수 있다. 이때, 테스트될 온-칩 로직(110-1~110-m) 별로 변경될 데이터는 제2레지스터 블록(130-3)에 저장될 수 있다.
JTAG TAP 컨트롤러(130E)의 동작은 JTAG TAP 컨트롤러(130D)의 동작과 실질적으로 동일하다.
도 8은 도 1부터 도 4, 또는 도 7에 도시된 집적 회로를 포함하는 전자 시스템의 블록도를 나타낸다.
도 8을 참조하면, 전자 시스템(200)은 IC(201), 메모리(230), 및 디스플레이 (240)를 포함한다. 도 8에서는 설명의 편의를 위해, 전자 시스템(200)을 디버깅할 수 있는 디버깅 장치(debugging) 또는 디버거(debugger)로서 PC(203)가 예시적으로 함께 도시되어 있으나 이는 예시적인 것에 불과하다.
PC(203)는 JTAG 인터페이스(20)를 통해 제1레지스터 블록(130-1C, 130-1D, 또는 130-1E)과 제2레지스터 블록(130-3)을 프로그램할 수 있고, JTAG 인터페이스 (20)를 통해 출력되는 TDO 신호(TDO)를 모니터링할 수 있다.
전자 시스템(200)은 랩탑 컴퓨터(laptop computer), 이동 전화기, 스마트 폰 (smart phone), 태블릿(tablet) PC, PDA(personal digital assistant), EDA (enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), 모바일 인터넷 장치(mobile internet device(MID), 또는 e-북(e-book)으로 구현될 수 있다.
실시 예들에 따라, 도면 번호 201은 SoC 또는 인쇄 회로 기판(printed circuit board(PCB))을 의미할 수 있다. 또한, 다른 실시 예들에 따라, 도면 번호 201은 애플리케이션 프로세서, 모바일 애플리케이션 프로세서, 또는 반도체 패키지를 의미할 수 있다.
IC(201)는 JTAG 인터페이스(20), 입출력 포트(205), 하나 또는 그 이상의 IC들(100-1~100-5), 메모리 인터페이스(210), 버스(211), 및 디스플레이 컨트롤러 (220)를 포함한다.
IC(201)는 JTAG 인터페이스(20)를 통해 IC(201)을 스캔 또는 디버깅할 수 있다. 또한, IC(201)은 입출력 포트(205)를 통해 입력된 데이터를 처리하거나 또는 처리된 데이터를 입출력 포트(205)를 통해 외부 장치로 전송할 수 있다.
IC들(100-1~100-5) 각각은 이미 설명된 IC들(100A~100E) 중에서 어느 하나일 수 있다. IC들(100-1~100-5) 중에서 어느 하나는 CPU(central processing unit) 또는 멀티-코어 프로세서일 수 있다.
각 IC(100-1~100-5)에 포함된 JTAG TAP 컨트롤러(130)는 이미 설명된 JTAG TAP 컨트롤러들(130A~130E) 중에서 어느 하나일 수 있다. 각 IC(100-1~100-5)는 복수의 바운더리 스캔 셀들(boundary scan cells)을 포함하고, 각 IC(100-1~100-5)의 복수의 바운더리 스캔 셀들 각각은 서로 접속될 수 있다.
예컨대, IC(201)에 포함된 IC들(100-1~100-5)은 데이지 체인(daisy chain) 형태로 접속될 수 있다.
메모리 인터페이스(210)는, CPU 또는 멀티-코어 프로세서의 제어에 따라, 메모리(230)와 데이터 및/또는 명령들을 주고받을 수 있다. 메모리(230)는 휘발성 메모리 또는 불휘발성 메모리로 구현될 수 있다.
각 IC(100-1~100-5)는 버스(211)를 통해 메모리 인터페이스(210)와 디스플레이 컨트롤러(220)와 데이터 및/또는 명령들을 주고받을 수 있다.
디스플레이 컨트롤러(220)는, CPU 또는 멀티-코어 프로세서의 제어에 따라, 디스플레이 데이터를 디스플레이(240)로 전송할 수 있다.
도 9는 도 1, 도 2, 도 3, 도 4, 도 7 또는 도 8에 도시된 집적 회로의 동작을 설명하기 위한 플로우차트이다.
입력 단자(20)와 TDO 라인(121-1)에 접속된 출력 단자(30)를 포함하며, 스캔-체인으로 접속된 복수의 동기 회로들(101-1~101-n)을 포함하는 테스트될 온-칩 로직(110-1)을 포함하는 집적 회로(100A~100E, 또는 100-1~100-5, 집합적으로 '100')의 동작 방법은 도 1, 도 2, 도 3, 도 4, 도 7 또는 도 8을 참조하여 설명된다.
컨트롤 로직(130-1)은, JTAG 인터페이스(20)를 통해 입력된 신호들(TCK, TDI, 및/또는 TMS)을 이용하여, 제1레지스터 블록(130-1C, 130-1D, 또는 130-1E)에 대응되는 복수의 선택 신호들(SEL1~SEL5 중에서 하나 또는 그 이상)을 설정한다 (S110).
JTAG TAP 컨트롤러(130)는, 복수의 선택 신호들(SEL1~SEL5) 중에서 하나 또는 그 이상에 응답하여, TDI 신호를 전송하는 제1신호 경로, 출력 단자(20)의 출력 데이터에 관련된 데이터를 전송하는 제2신호 경로, 및 사용자-정의 데이터를 전송하는 제3신호 경로 중 어느 하나를 입력 단자(20)에 접속한다(S120).
예컨대, 제2신호 경로는 출력 단자(20)의 출력 데이터에 동일한 위상을 갖는 데이터를 전송하는 신호 경로 또는 서로 다른 위상을 갖는 데이터를 전송하는 신호 경로를 포함할 수 있다.
도 10은 도 4 또는 도 7에 도시된 집적 회로의 동작을 설명하기 위한 플로우차트이다.
도 4, 도 6, 도 7, 및 도 10을 참조하면, 제3선택 신호(SEL3)가 하이 레벨일 때(S210), 제3선택 회로(140)는 제2레지스터 블록(130-3)으로부터 출력된 제3데이터(DATA3)를 전송한다(S212).
제2선택 신호(SEL2)가 하이 레벨일 때(S216), 제2선택 회로(133)는 제2인버터(134)에 의해 반전된 제3데이터(/DATA3)를 전송한다(S218).
제1선택 신호(SEL1)가 하이 레벨일 때(S228) 제1선택 회로(131)는 반전된 제3데이터(/DATA3)를 입력 단자(20)로 전송하고(S230), 제1선택 신호(SEL1)가 로우 레벨일 때(S228) 제1선택 회로(131)는 TDI 라인(123-1)의 TDI 신호(TDI)를 입력 단자(20)로 전송한다(S232).
제3선택 신호(SEL3)가 하이 레벨이고 제2선택 신호가 로우 레벨일 때(S210과 S216), 제2선택 회로(133)는 제3데이터(DATA3)를 전송한다(S220).
제1선택 신호(SEL1)가 하이 레벨일 때(S234) 제1선택 회로(131)는 제3데이터(DATA3)를 입력 단자(20)로 전송하고(S236), 제1선택 신호(SEL1)가 로우 레벨일 때(S234) 제1선택 회로(131)는 TDI 라인(123-1)의 TDI 신호(TDI)를 입력 단자 (20)로 전송한다(S232).
제3선택 신호(SEL3)가 로우 레벨일 때(S210), 제3선택 회로(140)는 제2데이터(DATA2)를 전송한다(S214).
제2선택 신호(SEL2)가 하이 레벨일 때(S222), 제2선택 회로(133)는 제2인버터(134)에 의해 반전된 제2데이터(/DATA2)를 전송한다(S224).
제1선택 신호(SEL1)가 하이 레벨일 때(S238) 제1선택 회로(131)는 반전된 제2데이터(/DATA2)를 입력 단자(20)로 전송하고(S240), 제1선택 신호(SEL1)가 로우 레벨일 때(S238) 제1선택 회로(131)는 TDI 라인(123-1)의 TDI 신호(TDI)를 입력 단자(20)로 전송한다(S232).
제3선택 신호(SEL3)가 로우 레벨이고 제2선택 신호가 로우 레벨일 때(S214와 S222), 제2선택 회로(133)는 제2데이터(DATA2)를 전송한다(S226).
제1선택 신호(SEL1)가 하이 레벨일 때(S242) 제1선택 회로(131)는 제2데이터(DATA2)를 입력 단자(20)로 전송하고(S244), 제1선택 신호(SEL1)가 로우 레벨일 때(S242) 제1선택 회로(131)는 TDI 라인(123-1)의 TDI 신호(TDI)를 입력 단자 (20)로 전송한다(S232).
도 11은 도 1, 도 2, 도 3, 도 4, 도 7, 또는 도 8에 도시된 집적 회로를 포함하는 전자 시스템의 블록도를 나타낸다.
도 1, 도 2, 도 3, 도 4, 도 7, 도 8, 및 도 11을 전자 시스템(300)은 MIPI®(mobile industry processor interface)를 사용 또는 지원할 수 있는 휴대용 전자 장치로 구현될 수 있다.
상기 휴대용 전자 장치는 스마트 폰, 태블릿 PC, 모바일 인터넷 장치로 구현될 수 있다.
전자 시스템(300)은 애플리케이션 프로세서(application processor(AP); 310), 이미지 센서(301), 및 디스플레이(330)를 포함한다. 도 11의 AP(310)는 도 8에 도시된 IC(201)에 포함된 구성 요소들(20, 100-1~100-5, 210, 211, 및 220)을 더 포함할 수 있다.
AP(310)에 구현된 CSI(camera serial interface) 호스트(313)는 카메라 시리얼 인터페이스(CSI)를 통하여 이미지 센서(301)의 CSI 장치(303)와 시리얼 통신할 수 있다.
실시 예에 따라, CSI 호스트(313)에는 디시리얼라이저(DES)가 구현될 수 있고, CSI 장치(303)에는 시리얼라이저(SER)가 구현될 수 있다.
AP(310)에 구현된 DSI(display serial interface(DSI)) 호스트(311)는 디스플레이 시리얼 인터페이스를 통하여 디스플레이(330)의 DSI 장치(331)와 시리얼 통신할 수 있다.
실시 예에 따라, DSI 호스트(311)에는 시리얼라이저(SER)가 구현될 수 있고, DSI 장치(331)에는 디시리얼라이저(DES)가 구현될 수 있다. 디시리얼라이저(DES)와 시리얼라이저(SER) 각각은 전기적인 신호 또는 광학적인 신호를 처리할 수 있다.
전자 시스템(300)은 AP(310)와 통신할 수 있는 RF(radio frequency) 칩(340)을 더 포함할 수 있다. AP(310)의 PHY(physical layer; 315)와 RF 칩(340)의 PHY(341)는 MIPI DigRF에 따라 데이터를 주고받을 수 있다.
전자 시스템(300)은 GPS(350) 수신기, DRAM(dynamic random access memory)과 같은 메모리(351), NAND 플래시 메모리와 같은 불휘발성 메모리로 구현된 데이터 저장 장치(353), 마이크(355), 또는 스피커(357)를 더 포함할 수 있다.
전자 시스템(300)은 적어도 하나의 통신 프로토콜(또는 통신 표준), 예컨대, WiMAX(worldwide interoperability for microwave access; 359), WLAN (Wireless LAN; 361), UWB(ultra-wideband; 363), 또는 LTETM(long term evolution; 365) 등을 이용하여 외부 장치와 통신할 수 있다.
전자 시스템(300)은 블루투스 또는 WiFi를 이용하여 외부 무선 통신 장치와 통신할 수 있다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100A~100E; IC 또는 SoC
110-1; 테스트될 온-칩 로직
111; 제1인버터
120; JTAG 인터페이스
130A~130E; JTAG TAP 컨트롤러
130-1; 컨트롤 로직
131; 제1선택 회로
132; 제1레지스터
133; 제2선택 회로
134; 제2인버터
135; 제2레지스터
136; 카운터
137; 비교기
138; 논리 회로
140; 제3선택 회로
130-1C~130-1E; 제1레지스터 블록
130-3; 제2레지스터 블록

Claims (20)

  1. 입력 단자와 출력 단자를 포함하며 스캔-체인(scan-chain)으로 접속된 복수의 동기 회로들을 포함하는 테스트될 온-칩 로직;
    TDI(Test Data In) 라인;
    상기 출력 단자에 접속된 TDO(Test Data Out) 라인; 및
    하나 또는 둘 이상의 선택 신호들에 응답하여, 상기 TDI 라인과 상기 출력 단자를 포함하는 복수의 데이터 소스들 중에서 어느 하나의 데이터를 상기 입력 단자로 전송하는 TAP(Test Access Port) 컨트롤러를 포함하는 집적 회로.
  2. 제1항에 있어서,
    상기 TAP 컨트롤러는 상기 출력 단자의 출력 데이터의 위상을 반전시키고 반전된 출력 데이터를 상기 입력 단자로 피드백시키는 집적 회로.
  3. 제1항에 있어서,
    상기 TAP 컨트롤러는 사용자-정의 데이터를 저장하는 레지스터 블록을 포함하고,
    상기 복수의 데이터 소스들은 상기 TDI 라인, 상기 출력 단자, 및 상기 레지스터 블록을 포함하는 집적 회로.
  4. 제3항에 있어서,
    상기 TAP 컨트롤러는 상기 출력 단자의 출력 데이터의 일부를 상기 사용자-정의 데이터로 변경하는 집적 회로.
  5. 제1항에 있어서, 상기 TAP 컨트롤러는,
    프로그램가능한 상기 하나 또는 둘 이상의 선택 신호들을 저장하는 하나 또는 둘 이상의 레지스터들을 포함하는 집적 회로.
  6. 제1항에 있어서,
    상기 하나의 선택 신호가 제1선택 신호일 때,
    상기 TAP 컨트롤러는, 상기 제1선택 신호에 기초하여, 상기 TDI 라인과 상기 출력 단자 중 어느 하나와 상기 입력 단자의 접속을 제어하는 선택 회로를 포함하는 집적 회로.
  7. 제1항에 있어서,
    상기 둘 이상의 선택 신호들이 제1선택 신호와 제2선택 신호를 포함하고, 상기 복수의 동기 회로들 중 마지막 동기 회로와 상기 출력 단자 사이에 제1인버터가 구현될 때,
    상기 TAP 컨트롤러는,
    상기 출력 단자에 접속된 제2인버터;
    상기 제2선택 신호에 기초하여, 상기 출력 단자의 출력 데이터 또는 상기 제2인버터의 출력 데이터를 출력하는 제2선택 회로; 및
    상기 제1선택 신호에 기초하여, 상기 TDI 라인과 상기 제2선택 회로의 출력 단자 중 어느 하나와 상기 입력 단자의 접속을 제어하는 제1선택 회로를 포함하는 집적 회로.
  8. 제1항에 있어서,
    상기 둘 이상의 선택 신호들이 제1선택 신호와 제2선택 신호를 포함할 때,
    상기 TAP 컨트롤러는,
    사용자-정의 데이터를 저장하는 레지스터 블록;
    상기 제2선택 신호에 기초하여, 상기 출력 단자의 출력 데이터 또는 상기 사용자-정의 데이터를 출력하는 제2선택 회로; 및
    상기 제1선택 신호에 기초하여, 상기 TDI 라인과 상기 제2선택 회로의 출력 단자 중 어느 하나와 상기 입력 단자의 접속을 제어하는 제1선택 회로를 포함하는 집적 회로.
  9. 제8항에 있어서, 상기 TAP 컨트롤러는,
    상기 출력 단자의 상기 출력 데이터의 일부가 상기 사용자-정의 데이터로 변경될 때, 상기 변경에 관련된 변경 데이터를 저장하는 변경 데이터 레지스터;
    JTAG 인터페이스를 통해 상기 테스트될 온-칩 로직으로 공급되는 TCK 신호를 카운트하고 카운트 값을 출력하는 카운터;
    상기 변경 데이터에 관련된 기준 값과 상기 카운트 값을 비교하고 비교 결과에 상응하는 플래그를 출력하는 비교기;
    상기 제2선택 회로에 대한 제어 데이터를 저장하는 레지스터; 및
    상기 플래그와 상기 제어 데이터를 논리 연산하여 상기 제2선택 신호를 생성하는 선택 신호 생성기를 더 포함하는 집적 회로.
  10. 제1항에 있어서,
    상기 둘 이상의 선택 신호들이 제1선택 신호, 제2선택 신호, 및 제3선택 신호를 포함할 때,
    상기 TAP 컨트롤러는,
    사용자-정의 데이터를 저장하는 레지스터 블록;
    상기 제3선택 신호에 기초하여, 상기 출력 단자의 출력 데이터 또는 상기 사용자-정의 데이터를 출력하는 제3선택 회로;
    상기 제3선택 회로의 출력 단자에 접속된 인버터;
    상기 제2선택 신호에 기초하여, 상기 제3선택 회로의 출력 데이터 또는 상기 인버터의 출력 데이터를 출력하는 제2선택 회로; 및
    상기 제1선택 신호에 기초하여, 상기 TDI 라인과 상기 제2선택 회로의 출력 단자 중 어느 하나와 상기 입력 단자의 접속을 제어하는 제1선택 회로를 포함하는 집적 회로.
  11. 제10항에 있어서, 상기 TAP 컨트롤러는,
    상기 출력 단자의 상기 출력 데이터의 일부가 상기 사용자-정의 데이터로 변경될 때, 상기 변경에 관련된 변경 데이터를 저장하는 변경 데이터 레지스터;
    JTAG 인터페이스를 통해 상기 테스트될 온-칩 로직으로 공급되는 TCK 신호를 카운트하고 카운트 값을 출력하는 카운터;
    상기 변경 데이터에 관련된 기준 값과 상기 카운트 값을 비교하고 비교 결과에 상응하는 플래그를 출력하는 비교기;
    상기 제2선택 회로에 대한 제어 데이터를 저장하는 레지스터; 및
    상기 플래그와 상기 제어 데이터를 논리 연산하여 상기 제2선택 신호를 생성하는 선택 신호 생성기를 더 포함하는 집적 회로.
  12. 제1항에 있어서,
    상기 집적 회로는 프로그램가능한 메모리에 프로그램된 제어 신호에 기초하여 상기 TDO 라인과 TDO 핀 사이의 접속에 제어하는 마스크 회로를 더 포함하는 집적 회로.
  13. 제1항의 상기 집적 회로를 포함하는 애플리케이션 프로세서.
  14. 애플리케이션 프로세서;
    상기 애플리케이션 프로세서와 통신하는 메모리;
    상기 애플리케이션 프로세서와 통신하는 디스플레이를 포함하며,
    상기 애플리케이션 프로세서는,
    CPU(central processing unit);
    상기 CPU의 제어에 따라 상기 메모리와 통신할 수 있는 메모리 인터페이스; 및
    상기 CPU의 제어에 따라 상기 디스플레이의 동작을 제어하는 디스플레이 컨트롤러를 포함하며,
    상기 CPU는,
    입력 단자와 출력 단자를 포함하며 스캔-체인으로 접속된 복수의 동기 회로들을 포함하는 테스트될 온-칩 로직;
    TDI(Test Data In) 라인;
    상기 출력 단자에 접속된 TDO(Test Data Out) 라인; 및
    하나 또는 둘 이상의 선택 신호들에 응답하여, 상기 TDI 라인과 상기 출력 단자를 포함하는 복수의 데이터 소스들 중 어느 하나와 상기 입력 단자를 접속하는 TAP(Test Access Port) 컨트롤러를 포함하는 컴퓨터 시스템.
  15. 제14항에 있어서,
    상기 둘 이상의 선택 신호들이 제1선택 신호, 제2선택 신호, 및 제3선택 신호를 포함할 때,
    상기 TAP 컨트롤러는,
    사용자-정의 데이터를 저장하는 레지스터 블록;
    상기 제3선택 신호에 기초하여, 상기 출력 단자의 출력 데이터 또는 상기 사용자-정의 데이터를 출력하는 제3선택 회로;
    상기 제3선택 회로의 출력 단자에 접속된 인버터;
    상기 제2선택 신호에 기초하여, 상기 제3선택 회로의 출력 데이터 또는 상기 인버터의 출력 데이터를 출력하는 제2선택 회로; 및
    상기 제1선택 신호에 기초하여, 상기 TDI 라인과 상기 제2선택 회로의 출력 단자 중 어느 하나와 상기 입력 단자의 접속을 제어하는 제1선택 회로를 포함하는 컴퓨터 시스템.
  16. 제15항에 있어서, 상기 TAP 컨트롤러는,
    상기 출력 단자의 상기 출력 데이터의 일부가 상기 사용자-정의 데이터로 변경될 때, 상기 변경에 관련된 변경 데이터를 저장하는 변경 데이터 레지스터;
    JTAG 인터페이스를 통해 상기 테스트될 온-칩 로직으로 공급되는 TCK 신호를 카운트하고 카운트 값을 출력하는 카운터;
    상기 변경 데이터에 관련된 기준 값과 상기 카운트 값을 비교하고 비교 결과에 상응하는 플래그를 출력하는 비교기;
    상기 제2선택 회로에 대한 제어 데이터를 저장하는 레지스터; 및
    상기 플래그와 상기 제어 데이터를 논리 연산하여 상기 제2선택 신호를 생성하는 선택 신호 생성기를 더 포함하는 컴퓨터 시스템.
  17. 제14항에 있어서,
    상기 TAP 컨트롤러는 사용자-정의 데이터를 저장하는 레지스터 블록을 포함하고,
    상기 복수의 데이터 소스들은 상기 TDI 라인, 상기 출력 단자, 및 상기 레지스터 블록을 포함하는 컴퓨터 시스템.
  18. 제17항에 있어서,
    상기 TAP 컨트롤러는 상기 출력 단자의 출력 데이터의 적어도 일부를 상기 사용자-정의 데이터로 변경하는 컴퓨터 시스템.
  19. 제14항에 있어서,
    상기 CPU는 프로그램가능한 메모리에 프로그램된 제어 신호에 기초하여 상기 TDO 라인과 TDO 핀 사이의 접속에 제어하는 마스크 회로를 더 포함하는 컴퓨터 시스템.
  20. 입력 단자와 TDO(Test Data Out) 라인에 접속된 출력 단자를 포함하며 스캔-체인으로 접속된 복수의 동기 회로들을 포함하는 테스트될 온-칩 로직을 포함하는 집적 회로의 동작 방법에 있어서,
    복수의 선택 신호들을 설정하는 단계; 및
    상기 복수의 선택 신호들에 응답하여, TDI 라인을 통해 입력된 TDI 데이터를 전송하는 제1경로, 상기 출력 단자의 출력 데이터에 관련된 데이터를 전송하는 제2경로, 및 사용자-정의 데이터를 전송하는 제3경로 중 어느 하나를 상기 입력 단자에 접속하는 단계를 포함하는 집적 회로의 동작 방법.
KR1020130104710A 2013-09-02 2013-09-02 스캔-체인으로 연결된 플립-플롭들의 값들을 jtag 인터페이스를 이용하여 재구성할 수 있는 집적 회로, 이의 동작 방법, 및 상기 집적 회로를 포함하는 장치들 KR102066661B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020130104710A KR102066661B1 (ko) 2013-09-02 2013-09-02 스캔-체인으로 연결된 플립-플롭들의 값들을 jtag 인터페이스를 이용하여 재구성할 수 있는 집적 회로, 이의 동작 방법, 및 상기 집적 회로를 포함하는 장치들
US14/456,341 US9465073B2 (en) 2013-09-02 2014-08-11 Integrated circuit (IC) for reconstructing values of flip-flops connected in a scan-chain by using a joint test action group (JTAG) interface, a method of operating the IC, and devices having the IC
TW103127930A TWI650565B (zh) 2013-09-02 2014-08-14 藉由使用一聯合測試行動群組(jtag)介面以重建相連於一掃描鏈內之正反器之値的積體電路(ic)、一種操作該ic之方法以及具有該ic的裝置
CN201410443162.2A CN104422878B (zh) 2013-09-02 2014-09-02 集成电路、操作集成电路的方法和具有集成电路的装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130104710A KR102066661B1 (ko) 2013-09-02 2013-09-02 스캔-체인으로 연결된 플립-플롭들의 값들을 jtag 인터페이스를 이용하여 재구성할 수 있는 집적 회로, 이의 동작 방법, 및 상기 집적 회로를 포함하는 장치들

Publications (2)

Publication Number Publication Date
KR20150026202A KR20150026202A (ko) 2015-03-11
KR102066661B1 true KR102066661B1 (ko) 2020-01-15

Family

ID=52585008

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130104710A KR102066661B1 (ko) 2013-09-02 2013-09-02 스캔-체인으로 연결된 플립-플롭들의 값들을 jtag 인터페이스를 이용하여 재구성할 수 있는 집적 회로, 이의 동작 방법, 및 상기 집적 회로를 포함하는 장치들

Country Status (4)

Country Link
US (1) US9465073B2 (ko)
KR (1) KR102066661B1 (ko)
CN (1) CN104422878B (ko)
TW (1) TWI650565B (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101711926B1 (ko) 2015-07-07 2017-03-06 (주)이더블유비엠 보안기능을 가지는 SoC 및 SoC의 보안방법
CN106680688B (zh) * 2015-11-11 2020-09-25 恩智浦美国有限公司 利用并行扫描测试数据输入和输出测试多核集成电路
KR101954439B1 (ko) 2016-07-13 2019-03-06 (주)이더블유비엠 이중보안기능을 가지는 SoC 및 SoC의 이중보안방법
KR101890030B1 (ko) * 2016-09-02 2018-08-20 주식회사 아이닉스 체인 형태로 연결된 디바이스 및 그 설정 방법
US10126363B2 (en) * 2017-02-08 2018-11-13 Mediatek Inc. Flip-flop circuit and scan chain using the same
CN107340467B (zh) * 2017-07-04 2020-02-07 北京兆芯电子科技有限公司 测试系统
EP3428665B1 (en) 2017-07-11 2020-03-25 Nxp B.V. Fault detection in registers
US10386411B2 (en) * 2017-08-23 2019-08-20 Stmicroelectronics International N.V. Sequential test access port selection in a JTAG interface
KR101988404B1 (ko) 2018-05-28 2019-07-11 (주)이더블유비엠 이중보안기능을 가지는 SoC 및 SoC의 이중보안방법
TWI727308B (zh) * 2019-04-17 2021-05-11 國立成功大學 測試電路之動態密鑰防禦架構與方法
CN112445663B (zh) * 2019-09-02 2022-05-03 瑞昱半导体股份有限公司 测试存取端口电路
CN113759240B (zh) * 2020-06-05 2024-05-14 瑞昱半导体股份有限公司 扫描测试装置与扫描测试方法
TWI779586B (zh) * 2021-04-30 2022-10-01 瑞昱半導體股份有限公司 測試電路系統的方法及相關電路系統
CN113255277B (zh) * 2021-05-21 2024-06-14 珠海一微半导体股份有限公司 一种otp控制器、集成电路及其控制方法
CN113721131A (zh) * 2021-09-02 2021-11-30 展讯通信(上海)有限公司 输入测试电路及芯片
US11940494B2 (en) * 2021-11-11 2024-03-26 Samsung Electronics Co., Ltd. System on chip for performing scan test and method of designing the same
US11686769B1 (en) 2022-01-05 2023-06-27 Nxp B.V. Signal toggling detection and correction circuit

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100707297B1 (ko) 2005-12-01 2007-04-12 (주)알파칩스 시스템 버스를 이용한 제이티에이지 테스트 장치
JP2008164470A (ja) 2006-12-28 2008-07-17 Fujitsu Ltd 集積回路の内部ラッチをスキャンする方法及び装置並びに集積回路
US20090013226A1 (en) 2007-05-07 2009-01-08 Texas Instruments Incorporated Blocking the effects of scan chain testing upon a change in scan chain topology

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5627840A (en) * 1995-09-15 1997-05-06 Unisys Corp. Memory based interface
US5621739A (en) * 1996-05-07 1997-04-15 Intel Corporation Method and apparatus for buffer self-test and characterization
US6018815A (en) * 1996-10-18 2000-01-25 Samsung Electronics Co., Ltd. Adaptable scan chains for debugging and manufacturing test purposes
US5805608A (en) * 1996-10-18 1998-09-08 Samsung Electronics Co., Ltd. Clock generation for testing of integrated circuits
JP3287539B2 (ja) * 1996-11-13 2002-06-04 富士通株式会社 テスト機構を有する処理システム
US5812562A (en) 1996-11-15 1998-09-22 Samsung Electronics Company, Ltd. Low cost emulation scheme implemented via clock control using JTAG controller in a scan environment
US6157210A (en) 1997-10-16 2000-12-05 Altera Corporation Programmable logic device with circuitry for observing programmable logic circuit signals and for preloading programmable logic circuits
US6052808A (en) * 1997-10-31 2000-04-18 University Of Kentucky Research Foundation Maintenance registers with Boundary Scan interface
KR100273280B1 (ko) 1998-02-16 2000-12-15 김영환 디버깅 로직 제어 회로
US6408413B1 (en) * 1998-02-18 2002-06-18 Texas Instruments Incorporated Hierarchical access of test access ports in embedded core integrated circuits
JP2000131389A (ja) 1998-10-28 2000-05-12 Hitachi Ltd Icチップ内モジュールテスト制御方式
TW484016B (en) 1999-07-28 2002-04-21 Hitachi Ltd Semiconductor integrated circuit and recording medium
KR100697264B1 (ko) * 1999-12-02 2007-03-21 삼성전자주식회사 딜레이 체인 회로를 이용한 반도체 장치의 테스트 회로 및그의 테스트 방법
US6886121B2 (en) * 2000-01-18 2005-04-26 Cadence Design Systems, Inc. Hierarchical test circuit structure for chips with multiple circuit blocks
US7191373B2 (en) 2001-03-01 2007-03-13 Syntest Technologies, Inc. Method and apparatus for diagnosing failures in an integrated circuit using design-for-debug (DFD) techniques
US7644333B2 (en) * 2001-12-18 2010-01-05 Christopher John Hill Restartable logic BIST controller
TW558640B (en) * 2002-02-06 2003-10-21 Guo-Jan Peng Debugging and positioning method of chip and equipment thereof
JP2004301661A (ja) 2003-03-31 2004-10-28 Hitachi Ltd 半導体集積回路
US7219265B2 (en) * 2003-12-29 2007-05-15 Agere Systems Inc. System and method for debugging system-on-chips
JP4308735B2 (ja) * 2004-09-06 2009-08-05 Okiセミコンダクタ株式会社 半導体回路
US7412624B1 (en) 2004-09-14 2008-08-12 Altera Corporation Methods and apparatus for debugging a system with a hung data bus
DE602004019827D1 (de) * 2004-11-22 2009-04-16 Freescale Semiconductor Inc Integrierte schaltung und verfahren zur gesicherten prüfung
US7814386B2 (en) * 2007-10-31 2010-10-12 Texas Instruments Incorporated Built in self test for input/output characterization
US7958417B2 (en) * 2008-01-30 2011-06-07 Alcatel-Lucent Usa Inc. Apparatus and method for isolating portions of a scan path of a system-on-chip
JP2010256130A (ja) * 2009-04-23 2010-11-11 Renesas Electronics Corp 半導体集積回路、および半導体集積回路のテスト方法
US8108742B2 (en) 2009-06-11 2012-01-31 Texas Instruments Incorporated Tap control of TCA scan clock and scan enable
US8065578B2 (en) * 2009-09-14 2011-11-22 Texas Instruments Incorporated Inverted TCK access port selector selecting one of plural TAPs
CN102073009B (zh) * 2010-11-29 2012-11-07 杭州中天微系统有限公司 一种基于片上闪存的系统芯片jtag调试控制方法
US20130086441A1 (en) * 2011-09-30 2013-04-04 Qualcomm Incorporated Dynamically self-reconfigurable daisy-chain of tap controllers
US8756467B2 (en) * 2011-11-30 2014-06-17 Freescale Semiconductor, Inc. Methods and apparatus for testing multiple-IC devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100707297B1 (ko) 2005-12-01 2007-04-12 (주)알파칩스 시스템 버스를 이용한 제이티에이지 테스트 장치
JP2008164470A (ja) 2006-12-28 2008-07-17 Fujitsu Ltd 集積回路の内部ラッチをスキャンする方法及び装置並びに集積回路
US20090013226A1 (en) 2007-05-07 2009-01-08 Texas Instruments Incorporated Blocking the effects of scan chain testing upon a change in scan chain topology

Also Published As

Publication number Publication date
US20150067425A1 (en) 2015-03-05
TWI650565B (zh) 2019-02-11
TW201514519A (zh) 2015-04-16
US9465073B2 (en) 2016-10-11
CN104422878B (zh) 2020-10-20
KR20150026202A (ko) 2015-03-11
CN104422878A (zh) 2015-03-18

Similar Documents

Publication Publication Date Title
KR102066661B1 (ko) 스캔-체인으로 연결된 플립-플롭들의 값들을 jtag 인터페이스를 이용하여 재구성할 수 있는 집적 회로, 이의 동작 방법, 및 상기 집적 회로를 포함하는 장치들
US10281524B2 (en) Test partition external input/output interface control for test partitions in a semiconductor
US7484188B2 (en) On-chip test circuit and method for testing of system-on-chip (SOC) integrated circuits
KR101553489B1 (ko) 고속 입력/출력 인터페이스를 사용하여 검사하는 집적회로
US9222979B2 (en) On-chip controller and a system-on-chip
US20160349320A1 (en) Remote bus wrapper for testing remote cores using automatic test pattern generation and other techniques
US10788530B1 (en) Efficient and flexible network for streaming data in circuits
CN109425824B (zh) 在jtag接口中的组合串行和并行测试访问端口选择
KR20130031022A (ko) Dut 테스트 방법, dut 및 이에 의한 반도체 소자 테스트 시스템
CN106291313B (zh) 用于测试集成电路的方法和设备
US20180335475A1 (en) Reconfigurable Scan Network Defect Diagnosis
CN105518475B (zh) 柔性接口
US9804224B2 (en) Integrated circuit and method of operating an integrated circuit
US20170139007A1 (en) Sleek serial interface for a wrapper boundary register (device and method)
EP3756021B1 (en) Flexible isometric decompressor architecture for test compression
US20150046763A1 (en) Apparatus and Method for Controlling Internal Test Controllers
CN106896317B (zh) 通过扫描测试的扫描链所执行的电路排错方法及电路排错系统
US10890619B2 (en) Sequential test access port selection in a JTAG interface
US8495436B1 (en) System and method for memory testing in electronic circuits
JP2006058152A (ja) 半導体装置の試験方法及び半導体装置の試験回路
US10444283B1 (en) Sharing a JTAG interface among multiple partitions
KR102011139B1 (ko) 시스템 온 칩의 초기화 장치
Devadze et al. Turning JTAG inside out for fast extended test access
Ehrenberg IEEE P1581 can solve your board level memory cluster test problems
JP2006139485A (ja) コンピュータ制御装置

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant