KR101681736B1 - 입출력 래퍼들을 갖는 반도체 장치 - Google Patents

입출력 래퍼들을 갖는 반도체 장치 Download PDF

Info

Publication number
KR101681736B1
KR101681736B1 KR1020100045525A KR20100045525A KR101681736B1 KR 101681736 B1 KR101681736 B1 KR 101681736B1 KR 1020100045525 A KR1020100045525 A KR 1020100045525A KR 20100045525 A KR20100045525 A KR 20100045525A KR 101681736 B1 KR101681736 B1 KR 101681736B1
Authority
KR
South Korea
Prior art keywords
wrapper
flip
control
pad
flops
Prior art date
Application number
KR1020100045525A
Other languages
English (en)
Other versions
KR20110125894A (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 KR1020100045525A priority Critical patent/KR101681736B1/ko
Priority to US13/107,123 priority patent/US8732540B2/en
Publication of KR20110125894A publication Critical patent/KR20110125894A/ko
Application granted granted Critical
Publication of KR101681736B1 publication Critical patent/KR101681736B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318572Input/Output interfaces
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/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
    • G01R31/318561Identification of the subpart
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/0175Coupling arrangements; Interface arrangements
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17736Structural details of routing resources
    • H03K19/17744Structural details of routing resources for input/output signals
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/02Generators characterised by the type of circuit or by the means used for producing pulses
    • H03K3/027Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
    • H03K3/037Bistable circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/02Generators characterised by the type of circuit or by the means used for producing pulses
    • H03K3/26Generators characterised by the type of circuit or by the means used for producing pulses by the use, as active elements, of bipolar transistors with internal or external positive feedback
    • H03K3/28Generators characterised by the type of circuit or by the means used for producing pulses by the use, as active elements, of bipolar transistors with internal or external positive feedback using means other than a transformer for feedback
    • H03K3/281Generators characterised by the type of circuit or by the means used for producing pulses by the use, as active elements, of bipolar transistors with internal or external positive feedback using means other than a transformer for feedback using at least two transistors so coupled that the input of one is derived from the output of another, e.g. multivibrator
    • H03K3/286Generators characterised by the type of circuit or by the means used for producing pulses by the use, as active elements, of bipolar transistors with internal or external positive feedback using means other than a transformer for feedback using at least two transistors so coupled that the input of one is derived from the output of another, e.g. multivibrator bistable
    • H03K3/288Generators characterised by the type of circuit or by the means used for producing pulses by the use, as active elements, of bipolar transistors with internal or external positive feedback using means other than a transformer for feedback using at least two transistors so coupled that the input of one is derived from the output of another, e.g. multivibrator bistable using additional transistors in the input circuit
    • H03K3/2885Generators characterised by the type of circuit or by the means used for producing pulses by the use, as active elements, of bipolar transistors with internal or external positive feedback using means other than a transformer for feedback using at least two transistors so coupled that the input of one is derived from the output of another, e.g. multivibrator bistable using additional transistors in the input circuit the input circuit having a differential configuration

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Power Engineering (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

본 발명은 입출력 래퍼들(I/O wrappers)을 갖는 반도체 장치에 관한 것이다.본 발명의 실시 예에 따른 반도체 장치는 제 1 패드, 제 1 스캔 플립-플롭 및 제 1 제어 플립-플롭들을 포함하는 제 1 래퍼; 제 2 패드, 제 2 스캔 플립-플롭 및 제 2 제어 플립-플롭들을 포함하는 제 2 래퍼; 및 상기 제 1 및 제 2 래퍼를 제어하기 위한 신호들을 상기 제 1 래퍼에 제공하는 입출력 컨트롤러를 포함한다. 여기서, 상기 제 1 래퍼는 상기 신호들을 상기 제 2 래퍼에 전달하며, 상기 제 1 및 제 2 스캔 플립-플롭은 상기 신호들을 통해 전달되는 데이터를 저장 및 시프트 하기 위한 시프트 레지스터로서 구성된다. 그리고, 상기 제 1 스캔 플립-플롭의 저장 값은 상기 신호들 중 선택 신호에 따라 상기 제 1 제어 플립-플롭들 중 하나에 저장되고, 상기 제 2 스캔 플립-플롭의 저장 값은 상기 선택 신호에 따라 상기 제 2 제어 플립-플롭들 중 하나에 저장된다.
본 발명의 실시 예에 따른 반도체 장치에 의하면, 입출력 컨트롤러(IO controller)와 입출력 패드(IO PAD)들 사이의 입출력 제어신호 라인(IO control signal line)들에 소모되는 면적이 감소하여 집적도가 향상될 수 있다. 또한, 설계상의 복잡도가 감소하여 개발기간이 단축될 수 있다.

Description

입출력 래퍼들을 갖는 반도체 장치{SEMICONDUCTOR DEVICE HAVING INPUT/OUTPUT WRAPPERS}
본 발명은 반도체 장치에 관한 것으로, 좀 더 구체적으로 입출력 래퍼들(I/O wrappers)을 갖는 반도체 장치에 관한 것이다.
반도체 장치의 입출력 패드(Input/Output PAD, 이하 IO PAD라고 칭함)는 신호의 입출력 기능을 제공한다. 그러나, 시스템 온 칩(System on Chip, 이하 SoC라고 칭함) 등의 분야에 사용되는 반도체 장치의 응용분야가 다양해지고 그것의 설계가 복잡해짐에 따라 IO PAD가 제공하는 기능들이 증가하고 있다. 예를 들면, IO PAD는 입출력 저항 조절, 입출력 신호의 레벨 조절, 입출력 신호의 슬루 레이트(slew rate) 조절 등과 같은 부가적인 기능들을 제공한다.
입출력 컨트롤러(이하, IO 컨트롤러라고 칭함)는 IO PAD가 지원하는 기능들을 제어한다. IO 컨트롤러는 IO PAD가 지원하는 기능들을 제어하기 위해 각각의 기능들에 대응하는 신호(이하, IO 제어신호라고 칭함)들을 IO PAD에 전달한다. 만약, IO PAD들의 수가 증가하거나 IO PAD가 지원하는 기능들이 증가하면, IO 제어신호들의 수도 증가할 것이다. 예를 들어, 반도체 장치가 300개의 IO PAD들을 갖고, 각각의 IO PAD에 전달되는 IO 제어신호들의 수가 10개라고 가정하면, 반도체 장치 내의 모든 IO 제어신호들의 수는 3000개가 될 것이다.
또한, IO 제어신호들의 수가 증가하면, IO 컨트롤러와 IO PAD들 사이에 연결되는 IO 제어신호 라인들의 수도 증가할 것이다. 이는 IO 제어신호 라인들을 배치하기 위해 많은 면적이 요구됨을 의미한다. 그러나, IO 제어신호 라인들은 IO 컨트롤러와 IO PAD들 사이의 IO 제어신호 라인들이 배치될 수 없는 영역(이하, blockage라고 칭함)으로 인해 한정된 면적에 배치되어야 한다. 특히, 이러한 blockage는 고속 인터페이스 신호선, 반도체 내에 이미 배치되어 있는 매크로(macro: RAM/ROM 등과 같이 정해진 영역에 이미 기존 회로가 집적화되어 추가적인 다른 회로가 추가될 수 없는 영역) 등이 증가함에 따라 점차 그 영역이 증대되고 있다. 결국, IO 제어신호들의 수의 증가는 반도체 장치의 집적도를 떨어뜨리는 원인이 된다.
본 발명의 목적은 입출력 컨트롤러(IO controller)와 입출력 패드(IO PAD)들 사이의 입출력 제어신호 라인(IO control signal line)들로 인한 집적도 저하를 방지하기 위한 반도체 장치를 제공하는 데 있다.
본 발명의 실시 예에 따른 반도체 장치는 제 1 패드, 제 1 스캔 플립-플롭 및 제 1 제어 플립-플롭들을 포함하는 제 1 래퍼; 제 2 패드, 제 2 스캔 플립-플롭 및 제 2 제어 플립-플롭들을 포함하는 제 2 래퍼; 및 상기 제 1 및 제 2 래퍼를 제어하기 위한 신호들을 상기 제 1 래퍼에 제공하는 입출력 컨트롤러를 포함한다. 여기서, 상기 제 1 래퍼는 상기 신호들을 상기 제 2 래퍼에 전달하며, 상기 제 1 및 제 2 스캔 플립-플롭은 상기 신호들을 통해 전달되는 데이터를 저장 및 시프트 하기 위한 시프트 레지스터로서 구성된다. 그리고, 상기 제 1 스캔 플립-플롭의 저장 값은 상기 신호들 중 선택 신호에 따라 상기 제 1 제어 플립-플롭들 중 하나에 저장되고, 상기 제 2 스캔 플립-플롭의 저장 값은 상기 선택 신호에 따라 상기 제 2 제어 플립-플롭들 중 하나에 저장된다.
실시 예에 있어서, 상기 제 1 래퍼는 상기 제 1 제어 플립-플롭들의 저장 값들에 의해 상기 제 1 패드의 기능을 제어하고, 상기 제 2 래퍼는 상기 제 2 제어 플립-플롭들의 저장 값들에 의해 상기 제 2패드의 기능을 제어한다.
실시 예에 있어서, 상기 제 1 및 제 2 래퍼 각각은 상기 신호들 중 테스트 모드 신호를 테스트 신호 및 리셋 신호로 변환한다.
실시 예에 있어서, 상기 신호들 중 테스트 인에이블 신호가 인가되면, 상기 제 1 래퍼는 상기 테스트 신호에 의해 상기 제 1 패드의 기능을 제어하고, 상기 제 2 래퍼는 상기 테스트 신호에 의해 상기 제 2 패드의 기능을 제어한다.
실시 예에 있어서, 상기 제 1 래퍼는 상기 리셋 신호에 의해 상기 제 1 제어 플립-플롭들을 리셋하고, 상기 제 2 래퍼는 상기 리셋 신호에 의해 상기 제 2 제어 플립-플롭들을 리셋한다.
실시 예에 있어서, 상기 제 1 래퍼는 상기 신호들 중 캡쳐 신호가 인가되면, 상기 선택 신호에 따라 상기 제 1 제어 플립-플롭들의 저장 값들 중 하나를 선택하여 상기 제 2 래퍼에 전달한다. 여기서, 상기 제 2 래퍼는 상기 제 1 래퍼로부터 전달되는 상기 제 1 제어 플립-플롭들의 저장 값들 중 하나를 상기 제 2 스캔 플립-플롭에 저장한다.
실시 예에 있어서, 상기 제 1 제어 플립-플롭들의 수는 상기 제 1 패드가 제공하는 기능들의 수와 대응하고, 상기 제 2 제어 플립-플롭들의 수는 상기 제 2 패드가 제공하는 기능들의 수와 대응한다.
본 발명의 다른 실시 예에 따른 반도체 장치는 제 1 패드와 제 1 스캔 플립-플롭을 갖는 제 1 래퍼; 제 2 패드와 제 2 스캔 플립-플롭을 갖는 제 2 래퍼; 제 3 패드와 제 3 스캔 플립-플롭을 갖는 제 3 래퍼; 및 상기 제 1 내지 제 3 래퍼를 제어하기 위한 신호들을 상기 제 1 래퍼에 제공하는 입출력 컨트롤러를 포함한다.
여기서, 상기 제 1 래퍼는 상기 신호들을 상기 제 2 래퍼에 전달하고, 상기 제 2 래퍼는 상기 신호들을 상기 제 3 래퍼에 전달한다. 그리고, 상기 제 1 내지 제 3 스캔 플립-플롭은 시프트 레지스터를 구성하며, 상기 신호들 중 시프트 신호를 통해 전달되는 데이터가 상기 시프트 레지스터를 통해 시프트 된다.
실시 예에 있어서, 상기 입출력 컨트롤러는 클럭신호를 상기 제 3 래퍼에 제공하고, 상기 제 3 래퍼는 상기 클럭신호를 상기 제 2 래퍼에 전달하며, 상기 제 2 래퍼는 상기 클럭신호를 상기 제 1 래퍼에 전달한다.
실시 예에 있어서, 상기 시프트 레지스터는 상기 클럭신호에 동기하여 상기 시프트 신호를 통해 전달되는 데이터를 시프트 한다.
실시 예에 있어서, 상기 제 2 래퍼는 복수의 제어 플립-플롭들을 포함하고, 상기 신호들 중 업데이트 신호가 인가되면, 상기 제 2 스캔 플립-플롭의 저장 값을 상기 신호들 중 선택 신호에 따라 상기 복수의 제어 플립-플롭들 중 하나에 저장한다.
실시 예에 있어서, 상기 제 2 래퍼는 상기 복수의 플립-플롭들의 저장 값들에 의해 상기 제 2 패드의 기능을 제어한다.
실시 예에 있어서, 상기 제 2 래퍼는 변환 테이블을 포함하고, 상기 변환 테이블은 상기 신호들 중 테스트 모드 신호를 테스트 신호 및 리셋 신호로 변환한다.
실시 예에 있어서, 상기 제 2 래퍼는 상기 제 2 패드의 기능을 제어하기 위한 신호로서, 상기 신호들 중 테스트 인에이블 신호에 따라, 상기 복수의 제어 플립-플롭들의 출력신호들을 선택하거나 상기 테스트 신호를 선택한다.
실시 예에 있어서, 상기 제 2 래퍼는 리셋 동작 시에 상기 복수의 제어 플립-플롭들의 저장 값들을 상기 리셋 신호를 통해 전달되는 리셋 값들로 변경한다.
실시 예에 있어서, 상기 제 2 래퍼는 제 1 및 제 2 캡쳐 유닛을 포함한다. 여기서, 상기 제 1 캡쳐 유닛은 상기 선택 신호에 따라, 상기 복수의 제어 플립-플롭들의 저장 값들 중 하나를 선택하고, 상기 제 2 캡쳐 유닛은 상기 신호들 중 캡쳐 신호에 따라, 상기 제 2 스캔 플립-플롭의 저장 값 및 상기 제 1 캡쳐 유닛의 선택 값 중 하나를 선택하여 상기 제 3 래퍼에 전달한다.
실시 예에 있어서, 상기 제 3 래퍼는 상기 제 2 래퍼로부터 전달되는 상기 제 2 캡쳐 유닛의 선택 값을 상기 제 3 스캔 플립-플롭에 저장한다.
실시 예에 있어서, 상기 제 1 래퍼는 제 4 스캔 플립-플롭을 포함하고, 상기 제 2 래퍼는 제 5 스캔 플립-플롭을 포함하며, 상기 제 3 래퍼는 제 6 스캔 플립-플롭을 포함한다. 여기서, 상기 제 4 내지 제 6 스캔 플립-플롭은 상기 제 1 내지 제 3 스캔 플립-플롭이 구성하는 시프트 레지스터와 다른 데이터를 저장 및 시프트 하기 위한 시프트 레지스터를 구성한다.
본 발명의 실시 예에 따른 반도체 장치에 의하면, 입출력 컨트롤러(IO controller)와 입출력 패드(IO PAD)들 사이의 입출력 제어신호 라인(IO control signal line)들에 소모되는 면적이 감소하여 집적도가 향상될 수 있다. 또한, 설계상의 복잡도가 감소하여 개발기간이 단축될 수 있다.
도 1은 본 발명의 실시 예에 따른 반도체 장치를 보여주는 블록도이다.
도 2는 도 1에 도시되는 IO 스캔 체인을 보여주는 블록도이다.
도 3은 도 1에 도시되는 IO 래퍼의 제 1 실시 예를 보여주는 회로도이다.
도 4는 기능 선택 신호에 따라 제어 값이 어느 제어 플립-플롭에 전달되는지를 나타내는 표이다.
도 5는 테스트 인에이블 신호에 따른 IO 패드 기능 제어신호들을 나타내는 표이다.
도 6은 도 2에 도시되는 IO 스캔 체인에서의 시프트 동작 및 업데이트 동작을 설명하기 위한 타이밍도이다.
도 7은 도 2에 도시되는 IO 스캔 체인에서의 시프트 동작 동안 스캔 플립-플롭들에 저장되는 제어 값들을 나타내는 표이다.
도 8은 도 1에 도시되는 IO 래퍼의 제 2 실시 예를 보여주는 회로도이다.
도 9는 도 1에 도시되는 IO 래퍼의 제 3 실시 예를 보여주는 회로도이다.
본 발명의 실시 예에 따른 반도체 장치는 복수의 IO 래퍼(wrapper)들 및 이들을 제어하는 IO 컨트롤러(controller)를 포함한다. 복수의 IO 래퍼(wrapper)들은 적어도 하나의 IO 스캔 체인(scan chain)을 구성한다. 그리고, 각각의 IO 래퍼는 신호의 입출력을 담당하는 IO 패드(PAD) 이외에 IO 컨트롤러 또는 이전 IO 래퍼로부터 전달되는 제어신호들을 다음 IO 래퍼에 전달하기 위한 부가회로를 포함한다.
IO 컨트롤러(controller)는 제어신호들을 IO 스캔 체인 내의 제 1 IO 래퍼에만 전달한다. 이후, 제 1 IO 래퍼는 제어신호들을 제 2 IO 래퍼에 전달한다. 그리고, 제 2 IO 래퍼는 제어신호들을 제 3 IO 래퍼에 전달한다. 계속해서 이와 같은 방법으로 제 N-1 IO 래퍼는 제어신호들을 제 N IO 래퍼에 전달한다. 즉, IO 컨트롤러로부터 제어신호들을 수신하지 않는 IO 래퍼들은 이웃하는 IO 래퍼들로부터 제어신호들을 수신한다.
따라서, 본 발명의 실시 예에 따른 반도체 장치에 의하면, 모든 IO 패드들 각각에 제어신호 라인들을 연결하는 것에 비해 IO 컨트롤러와 IO 패드들 사이의 제어신호 라인들에 소모되는 면적이 감소하여 집적도가 향상될 수 있다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명한다.
도 1은 본 발명의 실시 예에 따른 반도체 장치를 보여주는 블록도이다. 도 1을 참조하면, 반도체 장치(100)는 복수의 IO 래퍼들(111~116, 121~126, 131~136, 141~146) 및 IO 컨트롤러(150)를 포함한다. 그리고, 복수의 IO 래퍼들(111~116, 121~126, 131~136, 141~146)은 제 1 내지 제 4 IO 스캔 체인(110~140)을 구성한다.
간결한 설명을 위해, 복수의 IO 래퍼들이 4개의 IO 스캔 체인을 구성하고, 각각의 IO 스캔 체인은 6개의 IO 래퍼들을 포함한다고 가정한다. 그러나, 복수의 IO 래퍼들 및 IO 스캔 체인의 구성은 이에 한정되지 않고 다양한 형태로 변경될 수 있음은 이 분야의 통상적인 지식을 가진 자들에게 자명하다.
다만, IO 스캔 체인을 구성에 있어서, IO 래퍼의 구동 전압 및 IO 래퍼에 연결되는 UART(Universal Asynchronous Receiver/Transmitter), MMC(Multi-Memory Controller), I2C 등과 같은 외부 장치의 종류가 고려될 수 있다. 예를 들면, 동일한 구동 전압을 사용하는 IO 래퍼들끼리는 하나의 IO 스캔 체인으로 구성될 수 있다. 또는, 동일한 외부 장치에 연결되는 IO 래퍼들끼리는 하나의 IO 스캔 체인으로 구성될 수 있다.
제 2 내지 제 4 IO 스캔 체인(120~140)의 구성 및 동작은 제 1 IO 스캔 체인(110)의 구성 및 동작과 대응된다. 또한, 제 1 IO 스캔 체인(110)과 IO 컨트롤러(150)의 관계는 제 2 내지 제 4 IO 스캔 체인(120~140)과 IO 컨트롤러(150)의 관계와 대응된다. 따라서, 이하에서, 제 2 내지 제 4 IO 스캔 체인(120~140)에 대한 구체적인 설명은 생략된다. 그리고, 각각의 IO 래퍼의 구성 및 동작은 이하의 도 3 내지 7을 참조하여 더욱 상세하게 설명된다.
제 1 IO 스캔 체인(110)은 제 1 내지 제 6 IO 래퍼(111~116)를 포함한다. 제 1 IO 래퍼(111)는 IO 컨트롤러(150)로부터 제어신호들(CSs)을 수신한다. 제 1 IO 래퍼(111)는 제어신호들(CSs)을 제 2 IO 래퍼(112)에 전달한다. 제 2 IO 래퍼(112)는 제어신호들(CSs)을 제 3 IO 래퍼(113)에 전달한다. 제 3 IO 래퍼(113)는 제어신호들(CSs)을 제 4 IO 래퍼(113)에 전달한다. 제 4 IO 래퍼(114)는 제어신호들(CSs)을 제 5 IO 래퍼(115)에 전달한다. 제 5 IO 래퍼(115)는 제어신호들(CSs)을 제 6 IO 래퍼(116)에 전달한다. 제 6 IO 래퍼(116)는 제어신호들(CSs)을 IO 컨트롤러(150)에 전달한다.
즉, IO 컨트롤러(150)는 제어신호들(CSs)을 제 1 내지 제 6 IO 래퍼(111~116) 중 제 1 IO 래퍼(111)에만 전달한다. 그리고, 제 2 내지 제 6 IO 래퍼(112~116)는 각각의 이웃하는 IO 래퍼로부터 제어신호들(CSs)을 수신한다. 이와 같이, 제 1 내지 제 6 IO 래퍼(111~116) 및 IO 컨트롤러(150)는 제어신호 전달 루프(loop)를 형성한다.
반면에, 클럭신호 전달 루프는 제어신호 전달 루프와 반대 방향으로 형성된다. 즉, IO 컨트롤러(150)는 클럭신호(CLK)를 제 1 내지 제 6 IO 래퍼(111~116) 중 제 6 IO 래퍼(116)에만 전달한다. 그리고, 제 1 내지 제 5 IO 래퍼(111~115)는 각각 이웃하는 IO 래퍼로부터 클럭신호(CLK)를 수신한다. 이는 클럭신호(CLK)의 지연으로 인해 제어신호들(CSs)이 비정상적으로 동기화되는 것을 방지하기 위함이다.
IO 컨트롤러(150)는 GPIO 레지스터(General Purpose Input Output register, 151) 및 IO 제어 레지스터(Input Output control register, 152)를 포함한다. GPIO 레지스터(151)는 각각의 IO 래퍼(111~116, 121~126, 131~136, 141~146)에 대한 제어정보를 저장한다. IO 제어 레지스터(152)는 각각의 IO 스캔 체인(110~140)에 대한 제어정보를 저장한다.
상술한 바와 같이, IO 컨트롤러(150)는 제어신호들(CSs) 및 클럭신호(CLK)를 각각의 IO 래퍼(111~116, 121~126, 131~136, 141~146)에 전달하지 않고, 각각의 IO 스캔 체인(110~140)에 전달한다. 이로 인해, 반도체 장치(100) 내의 제어신호들(CSs) 및 클럭신호(CLK)를 전달하기 위한 라인들의 수가 감소한다.
도 2는 도 1에 도시되는 IO 스캔 체인을 보여주는 블록도이다. 도 2를 참조하면, 하나의 IO 스캔 체인(200)은 6개의 IO 래퍼들(210~260)로 구성된다. 다만, 이는 예시적인 것으로 하나의 IO 스캔 체인을 구성하는 IO 래퍼들의 수는 이에 한정되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
각각의 IO 래퍼(210~260)는 IO 룩-업-테이블 셀(Input/Output Look Up Table Cell, 이하, IO LUT 셀이라 칭함, 211~261), IO 스캔 셀(Input/Output Scan Cell, 212~262), IO 패드 드라이버(Input/Output PAD Driver, 213~263) 및 IO 패드(214~264)를 포함한다. 그리고, 각각의 IO 스캔 셀(212~262)은 스캔 플립-플롭(scan flip-flop, SFF_1~SFF_6)을 포함한다.
각각의 IO LUT 셀(211~261)은 테스트 값 및 리셋 값을 각각의 IO 스캔 셀(212~262)에 제공한다. 각각의 IO 스캔 셀(212~262)은 각각의 스캔 플립-플롭(SFF_1~SFF_6)에 저장되어 있는 제어정보 또는 각각의 IO LUT 셀(211~261)로부터 제공되는 테스트 값 및 리셋 값에 따라 논리 레벨이 결정되는 IO 패드 기능 제어신호들을 각각의 IO 패드 드라이버(213~263)에 제공한다. 각각의 IO 패드 드라이버(213~263)는 IO 패드 기능 제어신호들에 응답하여 각각의 IO 패드(214~264)를 구동한다.
IO 패드들(214~264)은 신호의 입출력을 담당한다. 또한, IO 패드들(214~264)은 신호의 입출력 이외 입출력 저항 조절, 입출력 신호의 레벨 조절, 입출력 신호의 슬루 레이트(slew rate) 조절 등과 같은 부가적인 기능들을 제공한다. IO 패드들(214~264)이 제공하는 이러한 기능들은 IO 패드 기능 제어신호들에 의해 제어된다.
이미 도 1을 참조하여 설명된 바와 같이, 제어신호들(CSs)은 먼저 제 1 IO 래퍼(210)에 전달된다. 그리고, 제 2 내지 제 6 IO 래퍼(220~260)는 각각의 이웃하는 IO 래퍼로부터 제어신호들(CSs)을 수신한다. 반면에, 클럭신호(CLK)는 먼저 제 6 IO 래퍼(260)에 전달된다. 그리고, 제 1 내지 제 5 IO 래퍼(210~250)는 각각의 이웃하는 IO 래퍼로부터 클럭신호(CLK)를 수신한다.
제 1 내지 제 6 스캔 플립-플롭(SFF_1~SFF_6)은 시프트 레지스터를 구성한다. 즉, 제 1 내지 제 5 스캔 플립-플롭(SFF_1~SFF_5)에 저장되어 있던 제어정보는 클럭신호(CLK)의 한 사이클(cycle) 마다 각각의 이웃하는 스캔 플립-플롭(SFF_2~SFF_6)으로 전달된다. 예를 들어, 제 1 내지 제 6 스캔 플립-플롭(SFF_1~SFF_6)에 저장되어 있던 제어 값들이‘011000’이고, 제어신호들(CSs) 중 시프트 신호를 통해 제 1 플립-플롭(SFF_1)에 전달되는 제어 값이‘1’이라는 가정하에, 클럭신호(CLK)의 한 사이클이 지나면, 제어 값들‘101100’이 제 1 내지 제 6 스캔 플립-플롭(SFF_1~SFF_6)에 각각 저장된다. 제 1 내지 제 6 스캔 플립-플롭(SFF_1~SFF_6)의 동작은 이하의 도 6 및 7을 참조하여 더욱 상세하게 설명된다.
도 3은 도 1에 도시되는 IO 래퍼의 제 1 실시 예를 보여주는 회로도이다. 도 3을 참조하면, IO 래퍼(300)는 IO LUT 셀(310), IO 스캔 셀(320), IO 패드 드라이버(330) 및 IO 패드(340)를 포함한다. 간결한 설명을 위해, IO 패드(340)는 4가지의 기능들을 제공한다고 가정한다. IO 래퍼(300)는 제어신호들(CSs, 도 1 및 도 2 참조)로서 테스트 모드 신호(TM[3:0]), 시프트 입력신호(SI), 기능 선택 신호(FSEL[1:0]), 업데이트 신호(UPDT) 및 테스트 인에이블 신호(TST_EN)를 수신한다. 그리고, IO 래퍼(300)는 테스트 모드 신호(TM[3:0]), 시프트 출력신호(SO), 기능 선택 신호(FSEL[1:0]), 업데이트 신호(UPDT) 및 테스트 인에이블 신호(TST_EN)를 다음 IO 래퍼(도시되지 않음)에 전달한다. 이때, 시프트 출력신호(SO)는 다음 IO 래퍼(도시되지 않음)의 시프트 입력신호(SI)로서 전달된다.
IO LUT 셀(310)은 제 1 내지 제 4 룩-업-테이블(Look Up Table, 이하 LUT로 칭함, 311~314)을 포함한다. 여기서, LUT들의 수는 IO 패드(340)가 제공하는 기능들의 수와 대응한다. 예를 들어, IO 패드(340)가 제공하는 기능들의 수가 N개라고 가정하면, LUT들의 수도 N개일 것이다.
IO LUT 셀(310)은 제어신호들(CSs) 중 테스트 모드 신호(TM[3:0])를 수신하여 다음 IO LUT 셀(도시되지 않음)에 전달한다. 또한, IO LUT 셀(310)은 테스트 모드 신호(TM[3:0])에 응답하여 4비트의 테스트 신호(TST[3:0])와 4비트의 리셋 신호(RST[3:0])를 발생한다. 테스트 신호(TST[3:0])는 제 1 내지 제 4 테스트 값(TST[0]~TST[3])을 포함하고, 리셋 신호(RST[3:0])는 제 1 내지 제 4 리셋 값(RST[0]~RST[3])를 포함한다.
각각의 LUT(311~314)는 테스트 모드 신호(TM[3:0])를 통해 전달되는 4비트의 정보를 1비트의 테스트 값과 1비트의 리셋 값으로 변환한다. 즉, 제 1 LUT(311)는 테스트 모드 신호(TM[3:0])를 통해 전달되는 4비트의 정보를 테스트 신호(TST[3:0])의 제 1 테스트 값(TST[0])와 리셋 신호(RST[3:0])의 제 1 리셋 값(RST[0])으로 변환한다. 제 2 LUT(312)는 테스트 모드 신호(TM[3:0])를 통해 전달되는 4비트의 정보를 테스트 신호(TST[3:0])의 제 2 테스트 값(TST[1])과 리셋 신호(RST[3:0])의 제 2 리셋 값(RST[1])으로 변환한다. 제 3 LUT(313)는 테스트 모드 신호(TM[3:0])를 통해 전달되는 4비트의 정보를 테스트 신호(TST[3:0])의 제 3 테스트 값(TST[2])과 리셋 신호(RST[3:0])의 제 3 리셋 값(RST[2])으로 변환한다. 제 4 LUT(314)는 테스트 모드 신호(TM[3:0])를 통해 전달되는 4비트의 정보를 테스트 신호(TST[3:0])의 제 4 테스트 값(TST[3])과 리셋 신호(RST[3:0])의 제 4 리셋 값(RST[3])으로 변환한다.
IO 스캔 셀(320)은 스캔 플립-플롭(SFF), 제 1 내지 제 4 제어 플립-플롭(CFF1~CFF4), 디멀티플렉서(demultiplexer, 321) 및 제 1 내지 제 4 멀티플렉서(multiplexer, 322_1~322_4)를 포함한다. 여기서, 제어 플립-플롭들 및 멀티플렉서들의 수는 IO 패드(340)가 제공하는 기능들의 수와 대응한다. 예를 들어, IO 패드(340)가 제공하는 기능들의 수가 N개라고 가정하면, 제어 플립-플롭들 및 멀티플렉서들의 수도 N개일 것이다.
IO 스캔 셀(320)은 제어신호들(CSs) 중 시프트 입력신호(SI), 2비트의 기능 선택 신호(FSEL[1:0]), 업데이트 신호(UPDT) 및 테스트 인에이블 신호(TST_EN)를 수신한다. 그리고, IO 스캔 셀(320)은 시프트 출력신호(SO), 기능 선택 신호(FSEL[1:0]), 업데이트 신호(UPDT) 및 테스트 인에이블 신호(TST_EN)를 다음 IO 스캔 셀(도시되지 않음)에 전달한다. 이때, 시프트 출력신호(SO)는 다음 IO 스캔 셀(도시되지 않음)의 시프트 입력신호(SI)로서 전달된다.
여기서, 기능 선택 신호의 비트 수는 IO 패드(340)가 제공하는 기능들의 수에 따라 결정된다. 예를 들어, IO 패드(340)가 제공하는 기능들의 수가 N개라고 가정하면, 기능 선택 신호의 비트 수는 [log2 N](여기서, [x] = x를 소수점 첫 째 자리에서 올림 한 자연수)일 것이다.
IO 스캔 셀(320)은 제어신호들(CSs)이 전달되는 다음 IO 스캔 셀(도시되지 않음)로부터 클럭신호(CLK)를 수신한다. 그리고, IO 스캔 셀(320)은 클럭신호(CLK)를 제어신호들(CSs)을 전달하는 이전 IO 스캔 셀(도시되지 않음)에 전달한다. 즉, 제어신호들의 전달 방향과 클럭신호들의 전달 방향은 서로 반대이다. 상술한 바와 같이, 이는 클럭신호(CLK)의 지연으로 인해 제어신호들(CSs)이 비정상적으로 동기화되는 것을 방지하기 위함이다.
스캔 플립-플롭(SFF)은 클럭신호(CLK)에 동기하여 시프트 입력신호(SI)를 통해 전달되는 제어 값을 저장하고, 저장하고 있던 이전 제어 값을 시프트 출력신호(SO)를 통해 다음 스캔 플립-플롭(도시되지 않음)에 전달한다. 또한, 스캔 플립-플롭(SFF)은 클럭신호(CLK)에 동기하여 저장하고 있던 이전 제어 값을 디멀티플렉서(321)에 전달한다.
디멀티플렉서(321)는 기능 선택 신호(FSEL[1:0])에 따라 스캔 플립-플롭(SFF)으로부터 전달되는 제어 값을 제 1 내지 제 4 제어 플립-플롭(CFF1~CFF4) 중 하나에 전달한다. 이는 이하의 도 4를 참조하여 더욱 상세하게 설명된다.
도 4는 기능 선택 신호에 따라 제어 값이 어느 제어 플립-플롭에 전달되는지를 나타내는 표이다. 여기서, 스캔 플립-플롭(SFF)으로부터 디멀티플렉서(321)에 전달되는 제어 값은‘1’이라고 가정한다. 도 4를 참조하면, 디멀티플렉서(321)는 기능 선택 신호(FSEL[1:0])의 값이‘00’일 때, 제어 값‘1’을 제 1 제어 플립-플롭(CFF1)에 전달한다. 디멀티플렉서(321)는 기능 선택 신호(FSEL[1:0])의 값이‘01’일 때, 제어 값‘1’을 제 2 제어 플립-플롭(CFF2)에 전달한다. 디멀티플렉서(321)는 기능 선택 신호(FSEL[1:0])의 값이‘10’일 때, 제어 값‘1’을 제 3 제어 플립-플롭(CFF3)에 전달한다. 디멀티플렉서(321)는 기능 선택 신호(FSEL[1:0])의 값이‘11’일 때, 제어 값‘1’를 제 4 제어 플립-플롭(CFF4)에 전달한다.
다시 도 3을 참조하면, 제 1 내지 제 4 제어 플립-플롭(CFF1~CFF4)은 업데이트 신호(UPDT)에 의해 인에이블(enable) 된다. 즉, 제 1 내지 제 4 제어 플립-플롭(CFF1~CFF4)은 업데이트 신호(UPDT)가 인가되는 경우에만 클럭신호(CLK)에 동기하여 디멀티플렉서(321)로부터 전달되는 제어 값을 저장한다. 또는, 제 1 내지 제 4 제어 플립-플롭(CFF1~CFF4)은 업데이트 신호(UPDT)가 인가되는 경우에만 클럭신호(CLK)에 동기하여 IO LUT 셀(310)로부터 전달되는 제 1 내지 제 4 리셋 값들(RST[0]~RST[3])을 각각 저장한다. 이는 제 1 내지 제 4 제어 플립-플롭(CFF1~CFF4)이 제 1 내지 제 4 리셋 값(RST[0]~RST[3])에 따라 각각‘1’로 프리셋(preset) 되거나‘0’으로 리셋(reset) 됨을 의미한다.
또한, 제 1 내지 제 4 제어 플립-플롭(CFF1~CFF4)은 클럭신호(CLK)에 동기하여 저장하고 있던 이전 제어 값(또는 이전 프리셋 값/리셋 값)을 제 1 내지 제 4 멀티플렉서(322_1~322_4)에 전달한다.
즉, 제 1 제어 플립-플롭(CFF1)은 제 1 제어정보(CQ[0])로서 저장하고 있던 이전 제어 값(또는 이전 프리셋 값/리셋 값)을 제 1 멀티플렉서(322_1)에 전달한다. 제 2 제어 플립-플롭(CFF2)은 제 2 제어 값(CQ[1])으로서 저장하고 있던 이전 제어 값(또는 이전 프리셋 값/리셋 값)을 제 2 멀티플렉서(322_2)에 전달한다. 제 3 제어 플립-플롭(CFF3)은 제 3 제어 값(CQ[2])으로서 저장하고 있던 이전 제어 값(또는 이전 프리셋 값/리셋 값)을 제 3 멀티플렉서(322_3)에 전달한다. 제 4 제어 플립-플롭(CFF4)은 제 4 제어 값(CQ[3])으로서 저장하고 있던 이전 제어 값(또는 이전 프리셋 값/리셋 값)을 제 4 멀티플렉서(322_4)에 전달한다.
제 1 내지 제 4 멀티플렉서(322_1~322_4)는 테스트 인에이블 신호(TST_EN)에 따라 제 1 내지 제 4 테스트 값(TST[0]~TST[3]) 또는 제 1 내지 제 4 제어 값(CQ[0]~CQ[3])을 선택하여 제 1 내지 제 4 IO 패드 기능 제어신호(FCS1~FCS4)로서 IO 패드 드라이버(330)에 전달한다. 이는 이하의 도 5를 참조하여 더욱 상세하게 설명된다.
도 5는 테스트 인에이블 신호에 따른 IO 패드 기능 제어신호들을 나타내는 표이다. 도 5를 참조하면, 제 1 멀티플렉서(322_1)는 테스트 인에이블 신호(TST_EN)가 인가되는 경우에는 제 1 테스트 값(TST[0])을 제 1 IO 패드 기능 제어신호(FCS1)로서 출력한다. 반면에, 제 1 멀티플렉서(322_1)는 테스트 인에이블 신호(TST_EN)가 인가되지 않는 경우에는 제 1 제어 값(CQ[0])을 제 1 IO 패드 기능 제어신호(FCS1)로서 출력한다.
제 2 멀티플렉서(322_2)는 테스트 인에이블 신호(TST_EN)가 인가되는 경우에는 제 2 테스트 값(TST[1])을 제 2 IO 패드 기능 제어신호(FCS2)로서 출력한다. 반면에, 제 2 멀티플렉서(322_2)는 테스트 인에이블 신호(TST_EN)가 인가되지 않는 경우에는 제 2 제어 값(CQ[1])을 제 2 IO 패드 기능 제어신호(FCS2)로서 출력한다.
제 3 멀티플렉서(322_3)는 테스트 인에이블 신호(TST_EN)가 인가되는 경우에는 제 3 테스트 값(TST[2])을 제 3 IO 패드 기능 제어신호(FCS3)로서 출력한다. 반면에, 제 3 멀티플렉서(322_3)는 테스트 인에이블 신호(TST_EN)가 인가되지 않는 경우에는 제 3 제어 값(CQ[2])을 제 3 IO 패드 기능 제어신호(FCS3)로서 출력한다.
제 4 멀티플렉서(322_4)는 테스트 인에이블 신호(TST_EN)가 인가되는 경우에는 제 4 테스트 값(TST[3])을 제 4 IO 패드 기능 제어신호(FCS4)로서 출력한다. 반면에, 제 4 멀티플렉서(322_4)는 테스트 인에이블 신호(TST_EN)가 인가되지 않는 경우에는 제 4 제어 값(CQ[3])을 제 4 IO 패드 기능 제어신호(FCS4)로서 출력한다.
다시 도 3을 참조하면, IO 패드 드라이버(330)는 제 1 내지 제 4 IO 패드 기능 제어신호(FCS1~FCS4)에 응답하여 IO 패드(340)를 구동한다. 상술한 바와 같이, IO 패드(340)는 신호의 입출력을 담당한다. 또한, IO 패드(340)는 신호의 입출력 이외 입출력 저항 조절, 입출력 신호의 레벨 조절, 입출력 신호의 슬루 레이트 조절 등과 같은 부가적인 기능들을 제공한다. IO 패드(340)가 제공하는 이러한 기능들은 IO 패드 기능 제어신호들(FCS1~FCS4)에 의해 제어된다.
예를 들어, 제 1 IO 패드 기능 제어신호(FCS1)가 입력 저항을 풀-업(pull-up) 방식으로 연결하는 신호라고 가정하면, IO 패드 드라이버(330)는 제 1 IO 패드 기능 제어신호(FCS1)에 응답하여 입력 저항을 구동전압에 연결하도록 IO 패드(340)를 구동할 수 있다. 그리고, 제 2 IO 패드 기능 제어신호(FCS2)가 입력 저항을 풀-다운(pull-down) 방식으로 연결하는 신호라고 가정하면, IO 패드 드라이버(330)는 제 2 IO 패드 기능 제어신호(FCS2)에 응답하여 입력 저항을 접지에 연결하도록 IO 패드(340)를 구동할 수 있다.
도 6은 도 2에 도시되는 IO 스캔 체인에서의 시프트 동작 및 업데이트 동작을 설명하기 위한 타이밍도이다. 그리고, 도 7은 도 2에 도시되는 IO 스캔 체인에서의 시프트 동작 동안 스캔 플립-플롭들에 저장되는 제어 값들을 나타내는 표이다. 도 2, 6 및 7을 참조하면, 상술한 바와 같이, 제 1 내지 제 6 스캔 플립-플롭(SFF_1~SFF_6)은 시프트 레지스터를 구성한다. 제 1 내지 제 6 스캔 플립-플롭(SFF_1~SFF_6)에 저장되어 있는 제어 값들은 클럭신호(CLK)에 동기하여 시프트 된다.
클락신호(CLK)의 상승 에지에서 시프트 입력신호(SI)가 하이 레벨이면 제어 값‘1’이 제 1 스캔 플립-플롭(SFF_1)에 저장된다. 반면에, 클럭신호(CLK)의 상승 에지에서 시프트 입력신호(SI)가 로우 레벨이면 제어 값‘0’이 제 1 스캔 플립-플롭(SFF_1)에 저장된다. 그리고, 제 1 내지 제 5 스캔 플립-플롭(SFF_1~SFF_5)에 저장되어 있던 제어 값들은 클럭신호(CLK)의 한 사이클마다 각각의 다음 스캔 플립-플롭(SFF_2~SFF_6)으로 전달된다. 따라서, 클럭신호(CLK)의 여섯 사이클들이 지나면(즉, 시프트 동작이 종료되면), 제어 값들‘101100’이 제 1 내지 제 6 스캔 플립-플롭(SFF_1~SFF_6)에 각각 저장된다.
이때, 이미 도 3을 참조하여 설명된 바와 같이, 업데이트 신호(UPDT)가 인가되는 동안 각각의 스캔 플립-플롭(SFF_1~SFF_6)에 저장되어 있는 제어 값들은 기능 선택 신호(FSEL[1:0])에 따라 제 1 내지 제 6 IO 스캔 셀(212~262) 내의 제어 플립-플롭들 중 하나에 각각 전달되어 저장된다.
도 8은 도 1에 도시되는 IO 래퍼의 제 2 실시 예를 보여주는 회로도이다. IO 래퍼의 제 2 실시 예(400)는 제 1 및 제 2 스캔 플립-플롭(SFF1, SFF2)과 제 1 및 제 2 디멀티플렉서(421_1, 421_2)에 대한 구성을 제외하면, 도 3에서 도시되는 IO 래퍼의 제 1 실시 예(300)와 동일하다. 따라서, 이하에서, IO 래퍼의 제 1 및 제 2 실시 예(300, 400) 사이의 대응하는 구성들에 대한 구체적인 설명은 생략된다.
도 8을 참조하면, IO 스캔 셀(420)은 복수의 스캔 플립-플롭들(SFF1, SFF2) 및 디멀티플렉서들(421_1, 421_2)을 포함할 수 있다. 여기서, 스캔 플립-플롭들의 수는 디멀티플렉서들의 수 및 시프트 입력신호의 비트 수와 대응한다. 예를 들어, 스캔 플립-플롭들의 수가 N개라고 가정하면, 디멀티플렉서들의 수 및 시프트 입력신호의 비트 수도 N개일 것이다. 간결한 설명을 위해, IO 스캔 셀(420)은 2개의 스캔 플립-플롭들(SFF1, SFF2)과 2개의 디멀티플렉서들(421_1, 421_2)을 포함한다고 가정한다.
제 1 스캔 플립-플롭(SFF1)은 클럭신호(CLK)에 동기하여 시프트 입력신호(SI[1:0]) 중 제 1 입력신호(SI[0])를 통해 전달되는 제어 값을 저장하고, 저장하고 있던 이전 제어 값을 시프트 출력신호(SO[1:0]) 중 제 1 출력신호(SO[0])를 통해 다음 대응하는 스캔 플립-플롭(도시되지 않음)에 전달한다. 또한, 제 1 스캔 플립-플롭(SFF1)은 클럭신호(CLK)에 동기하여 저장하고 있던 이전 제어 값을 제 1 디멀티플렉서(421_1)에 전달한다.
제 2 스캔 플립-플롭(SFF2)은 클럭신호(CLK)에 동기하여 시프트 입력신호(SI[1:0]) 중 제 2 입력신호(SI[1])를 통해 전달되는 제어 값을 저장하고, 저장하고 있던 이전 제어 값을 시프트 출력신호(SO[1:0]) 중 제 2 출력신호(SO[1])를 통해 다음 대응하는 스캔 플립-플롭(도시되지 않음)에 전달한다. 또한, 제 2 스캔 플립-플롭(SFF2)은 클럭신호(CLK)에 동기하여 저장하고 있던 이전 제어 값을 제 2 디멀티플렉서(421_2)에 전달한다.
제 1 디멀티플렉서(421_1)는 기능 선택 신호(FSEL[1:0])에 따라 제 1 스캔 플립-플롭(SFF1)으로부터 전달되는 제어 값을 제 1 및 제 2 제어 플립-플롭(CFF1, CFF2) 중 하나에 전달한다. 제 2 디멀티플렉서(421_2)는 기능 선택 신호(FSEL[1:0])에 따라 제 2 스캔 플립-플롭(SFF2)으로부터 전달되는 제어 값을 제 3 및 제 4 제어 플립-플롭(CFF3, CFF4) 중 하나에 전달한다.
이와 같이, 복수의 스캔 플립-플롭들(SFF1, SFF2) 및 디멀티플렉서들(421_1, 421_2)을 포함하는 IO 스캔 셀(420)에 의하면, 제 1 내지 제 4 제어 플립-플롭(CFF1~CFF4)에 제어 값을 전달함에 있어서 병렬처리가 가능하다.
도 9는 도 1에 도시되는 IO 래퍼의 제 3 실시 예를 보여주는 회로도이다. IO 래퍼의 제 3 실시 예(500)는 제어신호들 중 캡쳐 신호(CPTR), 제 1 및 제 2 캡쳐 유닛(523, 524)에 대한 구성을 제외하면, 도 3에서 도시되는 IO 래퍼의 제 1 실시 예(300)와 동일하다. 따라서, 이하에서, IO 래퍼의 제 1 및 제 3 실시 예(300, 500) 사이의 대응하는 구성들에 대한 구체적인 설명은 생략된다.
도 9를 참조하면, IO 스캔 셀(520)은 제 1 및 제 2 캡쳐 유닛(523, 524)을 포함할 수 있다. 여기서, 제 1 및 제 2 캡쳐 유닛(523, 524)은 멀티플렉서로 구현될 수 있다. 제 1 캡쳐 유닛(523)은 기능 선택 신호(FSEL[1:0])에 따라 제 1 내지 제 4 제어 플립-플롭(CFF1~CFF4)에 저장되어 있던 제 1 내지 제 4 제어 값(CQ[0]~CQ[3]) 중 하나를 선택하여 제 2 캡쳐 유닛(524)에 전달한다.
제 2 캡쳐 유닛(524)은 스캔 플립-플롭(SFF)에 저장되어 있던 제어 값 및 제 1 캡쳐 유닛(523)으로부터 전달되는 제어 값을 수신한다. 이때, 제 2 캡쳐 유닛(524)은 캡쳐 신호(CPTR)가 인가되는 경우에는 제 1 캡쳐 유닛(523)으로부터 전달되는 제어 값을 선택한다. 반면에, 제 2 캡쳐 유닛(524)은 캡쳐 신호(CPTR)가 인가되지 않는 경우에는 스캔 플립-플롭(SFF)에 저장되어 있던 제어 값을 선택한다. 제 2 캡쳐 유닛(524)은 선택한 제어 값을 시프트 출력신호(SO)로서 출력한다. 그리고, 시프트 출력신호(SO)는 다음 IO 스캔 셀(도시되지 않음)의 시프트 입력신호(SI)로서 전달된다.
여기서, 스캔 플립-플롭(SFF)에 저장되어 있던 제어 값과 제 1 캡쳐 유닛(523)으로부터 전달되는 제어 값이 서로 다르면, 스캔 플립-플롭(SFF)에 저장되어 있던 제어 값이 제 1 내지 제 4 제어 플립-플롭(CFF1~CFF4) 중 하나에 전달되는 과정에서 오류가 있었음을 의미한다.
이와 같이, 제 1 및 제 2 캡쳐 유닛(523, 524)을 포함하는 IO 스캔 셀(520)에 의하면, 스캔 플립-플롭(SFF)에 저장되어 있던 제어 값이 기능 선택 신호(FSEL[1:0])에 따라 제 1 내지 제 4 제어 플립-플롭(CFF1~CFF4) 중 하나에 오류 없이 전달되었는지 여부를 판단하기 위한 디버깅(debuggig)이 가능하다.
본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
100: 시스템 온 칩(SoC) 111: IP 블록
121, 122: 로컬 버스 123: 시스템 버스
130: 통합 IOMMU 140: IOMMU 컨트롤러
150: CPU 160: 메모리

Claims (10)

  1. 제 1 패드, 제 1 스캔 플립-플롭 및 제 1 제어 플립-플롭들을 포함하는 제 1 래퍼;
    제 2 패드, 제 2 스캔 플립-플롭 및 제 2 제어 플립-플롭들을 포함하는 제 2 래퍼; 및
    상기 제 1 및 제 2 래퍼를 제어하기 위한 신호들을 상기 제 1 래퍼에 제공하는 입출력 컨트롤러를 포함하고,
    상기 제 1 래퍼는 상기 신호들을 상기 제 2 래퍼에 전달하며,
    상기 제 1 및 제 2 스캔 플립-플롭은 상기 신호들을 통해 전달되는 상기 제 1 및 제 2 패드 각각의 제 1 및 제 2 기능을 제어하기 위한 제 1 및 제 2 제어 데이터를 저장 및 시프트 하기 위한 시프트 레지스터로서 구성되고,
    상기 제 1 스캔 플립-플롭에 저장된 상기 제 1 패드에 대한 상기 제 1 및 제 2 제어 데이터 각각은 상기 신호들 중 선택 신호에 따라 상기 제 1 제어 플립-플롭들 중 하나에 저장되며,
    상기 제 2 스캔 플립-플롭에 저장된 상기 제 2 패드에 대한 상기 제 1 및 제 2 제어 데이터 각각은 상기 선택 신호에 따라 상기 제 2 제어 플립-플롭들 중 하나에 저장되는 반도체 장치.
  2. 제 1 항에 있어서,
    상기 제 1 래퍼는 상기 제 1 제어 플립-플롭들의 저장 값들에 의해 상기 제 1 패드의 기능을 제어하고,
    상기 제 2 래퍼는 상기 제 2 제어 플립-플롭들의 저장 값들에 의해 상기 제 2패드의 기능을 제어하는 반도체 장치.
  3. 제 2 항에 있어서,
    상기 제 1 및 제 2 래퍼 각각은 상기 신호들 중 테스트 모드 신호를 테스트 신호 및 리셋 신호로 변환하는 반도체 장치.
  4. 제 3 항에 있어서,
    상기 신호들 중 테스트 인에이블 신호가 인가되면, 상기 제 1 래퍼는 상기 테스트 신호에 의해 상기 제 1 패드의 기능을 제어하고, 상기 제 2 래퍼는 상기 테스트 신호에 의해 상기 제 2 패드의 기능을 제어하는 반도체 장치.
  5. 제 3 항에 있어서,
    상기 제 1 래퍼는 상기 리셋 신호에 의해 상기 제 1 제어 플립-플롭들을 리셋하고,
    상기 제 2 래퍼는 상기 리셋 신호에 의해 상기 제 2 제어 플립-플롭들을 리셋하는 반도체 장치.
  6. 제 2 항에 있어서,
    상기 제 1 래퍼는 상기 신호들 중 캡쳐 신호가 인가되면, 상기 선택 신호에 따라 상기 제 1 제어 플립-플롭들의 저장 값들 중 하나를 선택하여 상기 제 2 래퍼에 전달하는 반도체 장치.
  7. 제 1 항에 있어서,
    상기 제 1 제어 플립-플롭들의 수는 상기 제 1 패드가 제공하는 기능들의 수와 대응하고,
    상기 제 2 제어 플립-플롭들의 수는 상기 제 2 패드가 제공하는 기능들의 수와 대응하는 반도체 장치.
  8. 삭제
  9. 제 1 패드와 제 1 스캔 플립-플롭을 갖는 제 1 래퍼;
    제 2 패드와 제 2 스캔 플립-플롭을 갖는 제 2 래퍼;
    제 3 패드와 제 3 스캔 플립-플롭을 갖는 제 3 래퍼; 및
    상기 제 1 내지 제 3 래퍼를 제어하기 위한 신호들을 상기 제 1 래퍼에 제공하는 입출력 컨트롤러를 포함하고,
    상기 제 1 래퍼는 상기 신호들을 상기 제 2 래퍼에 전달하고,
    상기 제 2 래퍼는 상기 신호들을 상기 제 3 래퍼에 전달하며,
    상기 제 1 내지 제 3 스캔 플립-플롭은 시프트 레지스터를 구성하며, 상기 신호들 중 시프트 신호를 통해 전달되는 데이터가 상기 시프트 레지스터를 통해 시프트 되고,
    상기 입출력 컨트롤러는 클럭신호를 상기 제 3 래퍼에 제공하고, 상기 제 3 래퍼는 상기 클럭신호를 상기 제 2 래퍼에 전달하며, 상기 제 2 래퍼는 상기 클럭신호를 상기 제 1 래퍼에 전달하는 반도체 장치.
  10. 제 1 패드와 제 1 스캔 플립-플롭을 갖는 제 1 래퍼;
    제 2 패드와 제 2 스캔 플립-플롭을 갖는 제 2 래퍼;
    제 3 패드와 제 3 스캔 플립-플롭을 갖는 제 3 래퍼; 및
    상기 제 1 내지 제 3 래퍼를 제어하기 위한 신호들을 상기 제 1 래퍼에 제공하는 입출력 컨트롤러를 포함하고,
    상기 제 1 래퍼는 상기 신호들을 상기 제 2 래퍼에 전달하고,
    상기 제 2 래퍼는 상기 신호들을 상기 제 3 래퍼에 전달하며,
    상기 제 1 내지 제 3 스캔 플립-플롭은 시프트 레지스터를 구성하며, 상기 신호들 중 시프트 신호를 통해 전달되는 데이터가 상기 시프트 레지스터를 통해 시프트 되고,
    상기 제 1 래퍼는 제 4 스캔 플립-플롭을 포함하고,
    상기 제 2 래퍼는 제 5 스캔 플립-플롭을 포함하며,
    상기 제 3 래퍼는 제 6 스캔 플립-플롭을 포함하고,
    상기 제 4 내지 제 6 스캔 플립-플롭은 상기 제 1 내지 제 3 스캔 플립-플롭이 구성하는 시프트 레지스터와 다른 데이터를 저장 및 시프트 하기 위한 시프트 레지스터를 구성하는 반도체 장치.
KR1020100045525A 2010-05-14 2010-05-14 입출력 래퍼들을 갖는 반도체 장치 KR101681736B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100045525A KR101681736B1 (ko) 2010-05-14 2010-05-14 입출력 래퍼들을 갖는 반도체 장치
US13/107,123 US8732540B2 (en) 2010-05-14 2011-05-13 Semiconductor device having input/output wrappers, and a method of controlling the wrappers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100045525A KR101681736B1 (ko) 2010-05-14 2010-05-14 입출력 래퍼들을 갖는 반도체 장치

Publications (2)

Publication Number Publication Date
KR20110125894A KR20110125894A (ko) 2011-11-22
KR101681736B1 true KR101681736B1 (ko) 2016-12-02

Family

ID=44911232

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100045525A KR101681736B1 (ko) 2010-05-14 2010-05-14 입출력 래퍼들을 갖는 반도체 장치

Country Status (2)

Country Link
US (1) US8732540B2 (ko)
KR (1) KR101681736B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160349320A1 (en) * 2015-05-26 2016-12-01 Qualcomm Incorporated Remote bus wrapper for testing remote cores using automatic test pattern generation and other techniques
US20240103066A1 (en) * 2022-09-27 2024-03-28 Infineon Technologies Ag Circuit and method for testing a circuit

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7512851B2 (en) 2003-08-01 2009-03-31 Syntest Technologies, Inc. Method and apparatus for shifting at-speed scan patterns in a scan-based integrated circuit

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3258132B2 (ja) 1992-05-26 2002-02-18 株式会社東芝 バッファ回路装置
US6405335B1 (en) * 1998-02-25 2002-06-11 Texas Instruments Incorporated Position independent testing of circuits
US6640324B1 (en) 2000-08-07 2003-10-28 Agere Systems Inc. Boundary scan chain routing
US6851079B1 (en) 2001-03-28 2005-02-01 Lsi Logic Corporation Jtag test access port controller used to control input/output pad functionality
JP2003057309A (ja) 2001-08-16 2003-02-26 Mitsubishi Electric Corp 半導体集積回路装置
KR101057750B1 (ko) 2004-01-12 2011-08-19 매그나칩 반도체 유한회사 시스템온칩의 입출력 패드 구성 방법
KR100649248B1 (ko) * 2004-06-30 2006-11-24 삼성에스디아이 주식회사 발광 표시 장치 및 그 데이터 구동장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7512851B2 (en) 2003-08-01 2009-03-31 Syntest Technologies, Inc. Method and apparatus for shifting at-speed scan patterns in a scan-based integrated circuit

Also Published As

Publication number Publication date
US8732540B2 (en) 2014-05-20
KR20110125894A (ko) 2011-11-22
US20110279160A1 (en) 2011-11-17

Similar Documents

Publication Publication Date Title
US8788756B2 (en) Circuit for and method of enabling the transfer of data by an integrated circuit
EP1219031B1 (en) Integrated circuit including dedicated and programmable logic
US8269524B2 (en) General purpose input/output pin mapping
US8484523B2 (en) Sequential digital circuitry with test scan
JP5642833B2 (ja) スキャンシフト動作中の瞬時電圧ドループを低減するためのシステム及び装置
JP5232019B2 (ja) 複数のプロセッサコア用の装置、システム、及び方法
US9918147B2 (en) Transmission apparatus and transmission method
US10649944B2 (en) Configuration via high speed serial link
US9543956B2 (en) Systems and methods for configuring an SOPC without a need to use an external memory
CN107209225A (zh) 使用校准的单个时钟源同步串行器‑解串器协议的高速数据传输
KR101681736B1 (ko) 입출력 래퍼들을 갖는 반도체 장치
US8510485B2 (en) Low power digital interface
US5589787A (en) Cell for shift register
US6747479B1 (en) Interface scheme for connecting a fixed circuitry block to a programmable logic core
KR20090061323A (ko) 바운더리 스캔 테스트 회로 및 바운더리 스캔 테스트 방법
CN115328845B (zh) 一种四线串行外设接口通信协议设计的方法
KR100903364B1 (ko) 반도체 메모리장치
CN110456980A (zh) 一种用于读取数据的电路、系统及其方法
US8106798B2 (en) Circuit and method for parallel to serial conversion
US7657804B2 (en) Plesiochronous transmit pin with synchronous mode for testing on ATE
EP2624000A1 (en) Integrated circuit
US20050127402A1 (en) Configurable input/output terminals
US6977520B1 (en) Time-multiplexed routing in a programmable logic device architecture
US10235324B2 (en) Interconnect sharing with integrated control for reduced pinout
US6646466B1 (en) Interface scheme for connecting a fixed circuitry block to a programmable logic core

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