본 출원은 본 명세서에 참조용으로 인용된 Event QualICied Testing Architecture for Integrated Circuits란 명칭으로 1989년 2월 8일자로 출원된 미합중국 특허 출원 제308,272호, Digital Bus Monitor Integrated Circuits란 명칭으로 1989년 6월 30일자로 출원된 미합중국 특허 출원 제374,896호, System Scan Path Architecture란 명칭으로 1989년 8월 9일자로 출원된 미합중국 특허 출원 제391,571호 및 System Scan Path Protocols란 명칭으로 1989년 8월 9일자로 출원된 미합중국 특허 출원 제391,801호 모두에 관련된다.
본 발명은 일반적으로 전자 회로에 관한 것으로, 특히, 이벤트 한정 검사 아키텍춰(event qualICied test architecture)에 관한 것이다.
반도체 기술은 IC들이 동작하는 속도를 계속적으로 증가시키고 있기 때문에, IC 및 회로 보드 레벨 모두에서 정상 속도(at-speed) 기능 검사는 더 어려워지고 있다. 통상적으로, 회로 보드는 기능 검사 장비를 사용하여 정상 속도로 검사된다.
기능 검사기는 보드의 일차 입력에 검사 패턴을 입력하여 보드의 일차 출력으로 부터의 응답을 측정한다. 일차 출력이 예상 응답과 일치하지 않으면, 기능 검사는 실패한다. 보드 설계 기술 수준에 맞는 고속 기능 검사기의 구매 또는 설계 단가는 급속하게 상승되고 있다.
최근에 발표된 IEEE 1149.1의 경계 주사 표준(boundary scan standard)에 의하면, 보다 많은 IC 설계에 있어 보드 레벨 검사 능력을 향상시키기 위한 방법으로서 경계 주사 방법을 포함한다. 1149.1 표준은 한 회로내의 IC들 사이의 상호 접속배선 검사를 용이하게 하기 위해 IC내에 설계될 수 있는 검사 아키텍춰를 기술하고 있다.
1149.1 아키텍춰는 검사 액세스 포트(test access port: TAP) 및 입력과 출력 신호당 한 셀이 있는 일련의 주사가능 경계 검사 셀을 포함한다. 입력 검사 셀들은 입력 검사 셀 레지스터(TCR1)로 결합되고, 출력 검사 셀들은 출력 검사 셀 레지스터(TCR2)로 결합된다.
1149.1 표준은 외부 검사(Extent)로 불리는 명령(instruction)을 제공하는데, 이 명령은 IC를 오프-라인 비기능 검사 모드에 배치하고 IC의 출력 핀이 TCR2에 의해 제어되게 하는 한편, 입력 핀은 TCR1을 통해 관측 가능하게 한다. 이 명령은 보드 설계상의 IC들 사이의 결합 논리부 뿐만 아니라 배선 상호접속부들이 TCR1 및 TCR2로의 반복적인 주사 액세스 동작에 의해 용이하게 검사되도록 한다.
또한, 1149.1 표준은 IC가 온-라인 기능 모드에 있을때 IC 경계 주사 경로가 액세스되게 하는 샘플(Sample)로 불리는 명령을 제공한다. TAP에 대한 제어 입력에 응답하여, 샘플 명령은 TCR1 및 TCR2내의 IC로 들어오고 나가는 데이타를 포획한 후 검사를 위해 시프트한다. 이 검사는 IC의 동작에 영향을 주지 않는다.
그러나, 샘플 명령은 여러가지 한계들을 갖고 있다. 한가지 문제점은 전이상태에서가 아니라 안정 상태에서 데이타가 샘플되도록 제어 입력을 동기화시키는 것에 있다. 샘플 명령에 의한 다른 문제점은 경계 데이타가 샘플될 때 한정화하는 것에 있다. 의미있는 데이타를 얻기 위해, 샘플 동작은 예상 이벤트의 발생에 의해 한정되어야 한다. 그러나, 데이타를 동시에 무작위적으로 샘플링하는 것은 시스템 검사시 실제 적용에 있어 제한을 받는다.
샘플 명령에 관한 또 다른 문제점은 주사 동작중에 모든 IC들을 통해 데이타를 시프트하도록 보드 설계상의 각각의 IC에 동일한 제어 신호들이 전체적으로 루팅되는 것이다. 각각의 IC가 동일한 제어 신호들을 수신하기 때문에, 데이타 샘플동작은 모든 IC 경계에 걸쳐 전체적으로 인가되어야 한다. 통상의 보드 설계에서 모든 IC들이 동일한 시스템 클럭에서 동작하는 것이 아니므로, 하나의 샘플 동작으로 모든 IC 경계로부터 유효한 데이타를 얻는 것은 불가능하다.
그러므로, 외부 검사 장비보다는 IC 자체내의 검사 논리 회로에 의해 보드 레벨 기능 검사가 수행되게 하는 회로 설계의 필요성이 야기되었다. 또한, 검사 회로는 안정 상태에서 데이타를 샘플하고, 이벤트 한정에 응답하며, 별개의 시스템 클럭에 따라 동작하여야 한다.
본 발명에 따르면, 종래의 검사 방법 및 장치와 관련된 문제점들을 실제로 제거하는 검사 방법 및 장치가 제공된다.
본 발명에서는, 특정 이벤트의 발생이 검출 및 카운트된다. 선정된 수의 발생에 응답해서, 검사가 실행된다. 이벤트를 카운트하고 선정된 수의 이벤트 신호들을 수신한 후에 검사를 실행함으로써 검사는 선정된 횟수 만큼 반복될 수 있다.
본 발명의 한 실시예에서, 제2 특정 이벤트가 검출 및 카운트될 수 있다. 제2 특정 이벤트의 선정된 수의 카운팅에 응답해서, 검사는 정지될 수 있다.
본 발명의 다른 실시예에서, 특정 이벤트의 발생이 검출 및 카운트된다. 검사는 선정된 특정 이벤트의 발생 동안 실행된다.
본 발명은 종래 기술을 능가하는 여러가지 기술적인 장점을 제공한다. 본 발명은 1149.1 샘플 명령에 기술된 문제점들을 극복하고 단순한 데이타 패턴의 샘플링 이상의 검사 기능을 수행하는 방법을 제공한다. 검사는 선정된 이벤트 발생에 응답하여 개시 및 정지될 수 있다. 검사의 시작 또는 종료는 선정된 수의 클럭 사이클 만큼 선정된 발생으로부터 지연될 수 있고, 선정된 수의 사이클 동안 검사가 실행될 수 있다. 본 발명이 검사 동작을 제어할 수 있을 때, 회로 TAP로부터 독립적으로 동작하여, 상이한 회로가 상이한 시간에 상이한 검사 동작을 할 수 있다.
모든 회로에 입력되는 글로벌 검사 제어 방식 대신 로컬 검사 제어 회로를 사용하므로, 회로 보드 레벨에서 검사의 집중화를 줄일 수 있다.
또한, 본 발명은 호스트 회로가 정상적으로 동작하는 동안 경계 검사 논리회로를 인에이블할 수 있어, 회로들 사이의 정상 속도 데이타 전송의 검사가 가능하다. 본 발명은 보드 설계의 물리적 프로빙(Probing)이 불가능하거나 프로빙이 보드의 동작에 영향을 미치는 경우 정상 속도 관련 문제를 검사할 수 있는 능력을 제공한다.
본 발명 및 이의 장점들을 보다 완전히 이해하기 위해, 첨부한 도면을 참조하여 본 발명을 상세히 설명한다.
본 발명의 양호한 실시예는 다수의 도면에서 유사한 대응 부분에 유사한 참조 번호가 사용되는 제1도 내지 제20도를 참조함으로써 가장 양호하게 이해할 수 있다.
제1도는 IEEE 1149.1 경계 주사 아키텍춰를 구현한 집적 회로(IC)를 도시한 것이다. IC(10)은 검사 액세스 포트(TAP) 및 일련의 주사가능 경계 검사 셀을 포함하며, 입력 및 출력 신호당 한 셀이 있다. 입력 검사 셀들은 입력 검사 셀 레지스터(TCR1)(14)로 결합되고 출력 검사 셀들은 출력 검사 셀 레지스터(TCR2)(16)로 결합된다. IC(10)의 기능 논리 회로(18)은 TCR1 및 TCR2 사이에 결합된다.
TAP(12)는 IC(10)의 검사 논리 회로로 직렬 인터페이스를 제공한다.
TAP(12)는 동작을 조절하는 2개의 제어 입력, 검사 클럭(TCK) 및 검사 모드 선택(TMS)를 수신한다. 또한, TAP(12)는 직렬 데이타가 검사 아키텍춰로 입력되게 하고 검사 아키텍춰로부터 출력되게 하도록 검사 데이타 입력(TDI) 및 검사 데이타출력(TDO)를 갖는다. TAP(12)의 내부에는 TDI 및 TDO 핀들을 통해 직렬로 액세스될 수 있으며 검사 커맨드를 로드하기 위한 명령 레지스터가 있다.
외부검사(Extest) 명령은 오프-라인, 비-기능 검사 모드에 IC(10)을 배치하여 IC의 출력 핀들이 TCR2에 의해 제어되도록 하는데, 입력 핀들은 TCR1(14)를 통해 관측가능하다. 이 명령 중에, TAP(12)는 TCR1 및 TCR2를 통해 IC(10)의 입력 및 출력 핀들을 제어하도록 TMS 및 TCK로부터 외부 제어 신호를 수신한다. 외부검사 명령 중에, IC의 출력 핀들은 입력 핀들이 검사 데이타를 수신할때 검사 데이타를 출력하도록 할 수 있다. 이 명령은 기능 논리회로(18) 뿐만아니라 보드상의 IC들 사이의 배선 상호 접속이 TCR1(14) 및 TCR2(16)에 대한 반복적인 주사 액세스 동작에 의해 용이하게 검사되게 한다.
또한, IC(10)가 온-라인 기능 모드에 있을 때 샘플 명령은 IC(10)의 경계 주사 경로가 액세스되게 한다. TAP(12)에 대한 제어 입력에 응답해서, 샘플 명령은 IC로 들어가고 나오는 데이타를 TCR1(14) 및 TCR2(16)에서 포획한 다음 검사를 위해 포획된 데이타를 시프트한다. 샘플 검사는 집적 회로(10)의 동작에 영향을 미치지 않는다.
그러나, 동작에 있어, 샘플 명령은 그 사용이 제한되는 여러가지 문제점을 갖고있다. 한가지 문제점은 데이타가 전이 상태가 아닌 안정 상태에 있을때 샘플되도록, 타겟 IC의 경계를 횡단하는 시스템 데이타에 대해 TCK 및 TMS 제어 입력을 동기화시키는 것과 관련있다. 샘플 명령에서의 다른 문제점은 경계 데이타가 샘플되는 시간을 한정화하는 것과 관련있다. 의미있는 데이타를 얻기 위해, 샘플 동작은 예상 이벤트의 발생에 의해 한정되어야 한다. 그러나, 데이타를 동시에 무작위적으로 샘플링하는 것은 시스템 검사시 실제 적용에 있어 제한을 받는다.
샘플 명령에서의 또다른 문제점은 TCK 및 TMS 제어 신호들이 주사 동작중에 모든 IC를 통해 데이타를 시프트하도록 보드 설계상의 각각의 IC에 전체적으로 루팅된다는 것이다. 각각의 IC가 동일한 제어 신호들을 수신하기 때문에, 데이타 샘플 동작은 모든 IC 경계에 걸쳐 전체적으로 인가되어야 한다. 통상의 보드 설계시, 여러가지 시스템 클럭들이 다수의 IC들에 사용되므로, 하나의 샘플 동작으로 모든 IC 경계들로부터 유효한 데이타를 얻는 것은 불가능하다. 그러므로, 샘플 명령을 사용하기 위해, 상기 명령은 선택된 상이한 제어 신호들에 의해 반복된다. 그러므로, 회로내의 한개의 IC의 샘플 동작을 수행하도록 한개의 TCK 및 TMS 쌍이 선택될 수 있고, 그 후 회로내의 다른 IC의 샘플 동작을 반복하도록 다른 TCK 및 TMS 쌍을 선택할 수 있다.
본 발명은 다수의 IC들을 포함하는 회로의 정상 속도 시스템 검사를 실행한다. 본 명세서는 보드상에 장착된 다수의 IC에 대해서 본 발명을 설명하였으나, 상기 회로는 IC 설계상의 복수의 서브 회로, 공통 기판 상에 장착된 다수의 IC(웨이퍼 집적도), 또는 한 시스템내에 설치된 다수의 회로 보드와 함께 사용될 수 있다.
제2도는 본 발명의 블럭도이다. 본 발명을 구체화한 IC(20)은 제1도에 관련하여 설명한 바와같은 TAP(12), TCR1(14), TCR2(16) 및 기능 논리 회로(18)을 포함한다. TAP(12)는 이벤트 한정 모듈(EQM)(22)에 접속된다. EQM(22)는 이벤트 한정 입력(EQI) 신호를 수신하여 이벤트 한정 출력(EQO) 신호를 출력한다. EQM(22)는 또한 이벤트 한정 셀(24 a-b)[일반적으로 참조번호 (24)로 표시됨], TCR1(14), TCR2(16) 및 검사 메모리(TMEM)(28)에 제어 신호들을 출력한다. EQM은 EQC(24a-b)로부터 출력을 수신한다. EQC(24a-b)는 각각 입력 신호[또한(TCR1)에 접속됨]로부터 및 TCR2(16)의 출력으로부터 입력들을 수신한다. TCR1(14)의 출력은 TMEM(28)의 입력에 접속되고, TMEM(28)의 출력은 TCR2(16)의 입력에 접속된다. TAP, TCR, EQM 및 TMEM은 모두 본 명세서에 참조용으로 인용된 휘트셀(Whetsel)에 의한 Event Qualified Testing Architecture for Integrated Circuits란 명칭으로 1989년 2월 8일자로 출원된 미합중국 특허 출원 제308,272호, Digital Bus Monitor Integrated Circuits란 명칭으로 1989년 6월 30일자로 출원된 미합중국 특허 출원 제374,896호, System Scan Path Architecture란 명칭으로 1989년 8월 9일자로 출원된 미합중국 특허 출원 제391,571호 및 System Scan Path Protocols란 명칭으로 1989년 8월 9일자로 출원된 미합중국 특허 출원 제391,801호에 관련하여 기술되어 있다.
정상 속도 기능 검사를 실행하기 위해 경계 검사 논리회로를 사용하면, 검사논리회로를 인에이블시키기 위한 제어가 발생되는 시기를 한정하는 방법이 필요하다. 본 발명의 이벤트 한정 아키텍춰는 검사 논리회로를 인에이블하기 위해 요구되는 한정 및 제어 논리회로를 IC 설계 자체에 배치함으로써, 외부 검사 제어의 필요성을 제거하는 방법을 제공한다. 한정화될때, 아키텍춰는 호스트 IC의 경계(또는 다른) 검사 논리회로를 제어하여, 검사중에 IC와 동기적으로 동작하게 한다.
이벤트 한정 셀(EQC)은 각각의 IC 입력 및 출력 신호에 결합되며, 이 신호는 자체적으로 또는 다른 신호들과 결합되어 검사 한정기로서 작용할 수 있다. 게다가, 이벤트 한정 모듈(EQM)(22)로서 참조된 논리 제어기는 IC의 검사 논리회로에 대한 로컬 한정 및 제어를 제공하기 위해 IC(20)내에 포함된다.
EQC(24a-b) 및 EQM(22)는 아키텍춰에 직렬로 액세스하도록 TAP(12)에 의해 모두 선택가능하다. 아키텍춰는 IEEE 1149.1 검사 동작을 금지하지 않는다. 아키텍춰는 IC들의 경계에서 온-라인 검사를 실시하기 위해 TCR1(14) 및 TCR2(16)이 한정화된 시간에서 IC의 I/O 데이타와 동기적으로 인에이블되게 하는 내장된 기능을 제공한다.
TCR(14 및 16)은 관측가능성 또는 제어가능성 논리회로로서 동작하도록 설정될 수 있다. TCR들이 관측가능 모드에 있으면, IC(20)에 들어가고 나오는 단일 데이타 패턴의 스냅 샷(snap-shot) 샘플을 취하거나, 기호 분석 기술을 사용하여 다중 데이타 패턴들이 기호로 압축되도록 설정된다. 데이타 샘플 관측 모드는 단일 입력 및/또는 출력 데이타 패턴을 검사하는데 반해, 기호 분석 관측 모드는 다중 입력 및/또는 출력 데이타 패턴들의 정확한 시퀀스를 검사한다. 기호가 예상 기호와 일치하면, 데이타 패턴 시퀀스는 정확한 것이고, 일치하지 않으면 시퀀스내의 하나 이상의 데이타 패턴에는 에러가 있다.
TCR(14 및 16)이 제어가능 모드에 있을 때, IC에 들어가고 나오는 정상 시스템 데이타 대신에 단일 검사 데이타 패턴, 또는 발생된 시퀀스의 의사-랜덤 카운팅 패턴을 삽입하도록 설정될 수 있다. 소정의 검사 상황에서, 한 TCR는 제어 기능을 실행하고 다른 TCR는 관측 기능을 실행하도록 설정될 수 있다.
TCR1(14) 및 TCR2(16) 검사 논리 블럭 외에, IC(20)은 IC로 부터 정상적으로 출력된 시스템 데이타 대신에 IC로 인입하는 입력 데이타를 기억하고 기억된 검사 데이타를 삽입하도록 설정될 수 있는 검사 메모리(TMEM)(28)을 포함한다. TCR을 능가하는 메모리의 장점은 복수의 검사 데이타 패턴을 기억 및/또는 출력할 수 있다는 것이다. 메모리는 TCR(14 및 16)과 유사하게 TAP(12)를 통해 직렬로 액세스되어 검사 데이타를 로드 또는 언로드할 수 있다.
온-라인 시스템 검사중에, TCR (14 및 16) 및 TMEM(28)은 각각 설정된 관측가능 및/또는 제어가능 검사 기능을 실행하도록 TAP(12)가 아닌 EQM(22)로 부터 제어 신호를 수신한다. TCR(14 및 16) 및 TMEM(28)을 사용하면, 상술한 소정검사를 개별적으로 또는 결합하여 실행하도록 검사 아키텍춰를 설정하는 것이 가능하다. 검사 동작 및 이의 결합의 리스트는 표 1에 도시하였다.
[이벤트 한정 셀(EQC)]
EQC(24a-b)의 기본 임무는 수신된 신호를 기억된 신호와 비교하고, 2개의 신호가 일치하는 때를 나타내는 신호를 출력하는 것이다. 본 명세서의 EQC(24a-b)는 IC 설계의 입력 및 출력 경계에서의 사용에 대해 기술하였으나, 신호 데이터용 입력 및/또는 출력단을 갖는 임의의 양호한 논리 블럭의 경계에서도 사용될 수 있다는 것을 알아야 한다.
제3도는 EQC(24)의 블럭도이다. 입력(INPUT) 신호에 의해 EQC(24a)에 공급되는 신호 또는 EQC(24b)로 공급되는 TCR2(16)의 출력과 같은 I/O 신호는 XNOR 게이트(30)의 한 입력에 결합된다. XNOR 게이트(30)의 다른 입력은 주사 메모리 셀(32)의 출력으로부터 수신된다. 주사 메모리 셀(32)의 입력은 멀티플렉서(33)에 결합되고 제어는 EQM(22)로부터 입력된다. 멀티플렉서(33)은 TDI 신호 및 주사메모리(32)의 출력을 입력한다. XNOR 게이트(30)의 출력은 OR 게이트(34)의 입력에 접속되고, OR 게이트(34)에 대한 다른 입력은 제2 주사 메모리 셀(36)의 출력에 의해 공급된다. 주사 메모리 셀(36)의 입력은 멀티플렉서(37)에 접속되고 제어는 EQM(22)로부터 입력된다. 멀티플렉서(37)은 주사 메모리(32)의 출력 및 주사 메모리(36)의 출력을 입력한다. 주사 메모리 셀(36)의 출력은 TDO 출력 신호에 결합된다. OR 게이트(34)의 출력은 CMPOUT 신호를 포함하고, EQM(22)에 접속된다.
제3도의 EQC(24a)는 비교 회로(XNOR 게이트, 30)와, 다수의 비교 데이타(CMPDAT) 및 비교 마스크(CMPMSK) 비트를 기억하기 위한 주사가능 메모리(32 및 36)을 포함한다. EQC(24)는 비교될 경계 I/O 신호를 수신하고 EQM(22)로부터 제어 신호를 수신하기 위한 입력을 갖는다. EQC(24)는 EQM(22)에 비교 동작의 결과를 전송하기 위한 비교 출력(CMPOUT)를 갖는다. 메모리(32)로 부터 출력되는 I/O 신호와 CMPDAT 비트가 일치하면, CMPOUT 출력은 일치함을 표시하기 위해 EQM(22)에 일치 신호를 전송한다. EQC의 비교 회로는 메모리(36)로부터 출력된 CMPMSK 비트에 의해 디스에이블되어, EQC는 I/O 신호와 CMPDAT 비트가 일치하는지의 여부에 관계없이 CMPOUT상에 일치 신호를 출력할 수 있다. 메모리들은 비교 논리 회로에 CMPDAT 및 CMPMSK 비트를 동시에 출력하여, 다음의 3가지 동작 즉, 논리 1에 대해 I/O 신호를 비교하는 동작, 논리 0에 대해 I/O 신호를 비교하는 동작, 또는 마스크 비교 동작 및 진(true) 비교 출력을 강요하는 동작이 가능하게 한다. 비교 마스킹은 특정 검사 동작의 한정에서 요구되지 않는 하나 이상의 I/O 신호들에 돈 케어(don't care) 상태를 지정한다.
메모리(32 및 36)은 일반적으로 동일한 길이의 간단한 시프트 레지스터이다. TAP(12)에 의해(EQM을 통해) 액세스될 때, 메모리들은 데이타를 TDI 및 TDO 핀들을 통해 메모리들의 내외로 시프트하기 위해 MUX(37)을 통해 함께 링크된다. 주사 액세스중에, IC내의 모든 EQC들은 한개의 직렬 시프트 레지스터를 형성하기 위해 함께 링크된다. EQC 시프트 레지스터는 데이타를 EQC 시프트 레지스터로 / 로부터 입력 및 출력되도록 주사 동작중에 IC의 TDI 입력 및 TDO 출력 핀들에 결합된다. 메모리들이 시프트 동작을 위해 TAP(12)에 의해 액세스되지 않을 때, 메모리들은 EQM의 프로토콜들 중 한개의 프로토콜의 실행 중에 비교 회로에 CMPDAT 및 CMPMSK 데이타 비트를 출력하기 위해 EQM(22)에 의해 제어될 수 있다.
동작중에, TAP(12)는 EQM 프로토콜에서 사용되는 CMPDAT 및 CMPMSK 데이타 비트들을 메모리에 로드한다. 메모리들이 로드된 후에, TAP(12)는 프로토콜 커맨드를 로드하기 위해 EQM(22)를 액세스하고, 메모리들을 제어하기 위해 EQM(22)를 인에이블한다. 시프트 동작 후의 각각의 메모리(32 및 36)의 직렬 출력은 EQM의 제1 비교 동작에서 사용되는 제1 CMPDAT 및 CMPMSK 데이타 비트들이다. 제1 비교 동작이 완료한 후에, EQM은 제2 비교 동작시 사용되는 제2 쌍의 CMPDAT 및 CMPMSK 데이타 비트를 시프트 아웃(shift out)하도록 메모리(32 및 36)를 제어한다. 메모리(32 및 36)가 다음 쌍의 CMPDAT 및 CMPMSK 비트를 출력할 때, 이전의 비트 쌍은 MUX(33 및 37)을 통해 각각의 메모리에 피드백되어 메모리에 기억된다. 메모리들을 통해 다시 비트 쌍들을 순환시킴으로써, 비교 출력 시퀀스는 무한정 반복될 수 있다.
EQM(22)가 하나의 CMPDAT 및 CMPMSK 비트 기억에 관해 동작하는 프로토콜을 갖지만, 다른 프로토콜들은 복수의 CMPDAT 및 CMPMSK 데이타 비트의 기억을 필요로 할 수 있다. CMPDAT 및 CMPMSK 메모리들은 두 쌍의 CMPDAT 및 CMPMSK 데이타 비트를 출력시키기 위해 각각 적어도 2개의 비트로 기억될 수 있어야 한다. 두 쌍의 CMPDAT 및 CMPMSK 비트는 EQM이 제1 쌍에 의해 검출된 상태에 응답하여 검사 동작을 개시하고, 제2 쌍이 검출된 상태에 응답하여 검사 동작을 정지시키게 한다. EQM(22)에 의해 실행되는 소정의 검사 프로토콜들은 다수의 개시/정지 및/또는 검사를 위해 필요한 다른 비교 동작이 가능하도록 추가적인 CMPDAT 및 CMPMSK 데이타 비트의 기억을 요구할 수 있다.
CMPDAT 및 CMPMSK 데이타의 보다 효과적인 기억을 위해, 각각의 EQC 내에 로컬 메모리들을 갖는 대신 단일 원격 메모리가 사용될 수 있다. 제5도의 EQC는 로컬 메모리(32 및 36)가 없는 셀의 설계를 도시한 것이다 EQC(24)의 기능은 동일하고, 차이는 단지 CMPDAT 및 CMPMSK 비트 신호들이 자체의 셀 대신에 원격 메모리내에 기억된다는 것이다.
[이벤트 한정 모듈(EQM)]
제5도는 유한 상태 머신 제어기(38)을 구비하고, 커맨드 레지스터(40), 루프 카운터(42) 및 이벤트 카운터(44)를 포함하는 주사 경로를 갖는 EQM의 블럭도를 도시한 것이다. 제어기는 EQC(24)로부터의 CMPOUT 신호(CMPOUT 1-n), 시스템 클럭(SYSCLK), 외부 이벤트 한정 입력(EQI) 신호, 커맨드 레지스터(40)으로부터의 커맨드, 루프 카운터(42)로부터의 루프 카운트 최소(LPCMIN) 신호, 및 이벤트 카운트 메모리(46)에 결합된 이벤트 카운터(44)로부터의 이벤트 카운트 최소(EVCMIN) 신호를 수신하기 위한 입력을 갖는다. 제어기(39)는 검사 논리회로 및 EQC들을 제어하고 외부 이벤트 한정 출력(EQO) 신호를 출력시키기 위한 출력을 갖는다. 제1도에 도시하지 않았으나, 제어기는 또한 IC의 기능 논리회로 또는 외부 시스템 클럭 입력으로부터 시스템 클럭을 수신한다. EQM의 제어기를 구동하는 시스템 클럭은 I/O 경계 데이타와 동기이다. 검사 논리회로 뿐만 아니라 시스템 클럭과 제어기를 동기화시키면 검사될 시스템 논리회로와 동기적으로 동작하도록 제어할 수 있다. EQM의 주사 경로는 TDI 및 TDO 신호를 통해 데이타가 주사 경로의 내외로 시프트되게 하도록 TAP로 부터 주사 제어 경로(TAP CONTROL)를 수신한다. 주사 경로의 커맨드 레지스터(40)은 EQM 제어기(38)에 커맨드를 출력하기 위해 주사 동작을 통해 로드될 수 있는 일련의 주사 셀(플립-플롭 또는 래치)을 포함한다. 루프 카운터부는 카운트값이 주사 동작을 통해 로드될 수 있는 일련의 주사 셀을 포함한다.
데이타가 루프 카운터(42)를 통해 시프트되지 않을 때, 루프 카운터(42)는 카운트 다운 카운터로서 동작하도록 제어기(38)로부터 제어를 수신할 수 있다. 루프 카운터(42)는 최소 카운트 값으로 카운트 다운될 때를 표시하도록 제어기에 루프 카운트 최소 신호(LPCMIN)을 출력한다.
이벤트 카운터부(44)는 카운트 값으로 주사 동작을 통해 로드될 수 있는 일련의 주사 셀을 포함한다. 이벤트 카운터(44)에 로드된 카운트 값은 다수의 카운트값들을 기억하게 하도록 카운터의 병렬 출력에 부착된 이벤트 카운트 메모리(46)에 기입될 수 있다. 데이타가 이벤트 카운터(44)를 통해 시프트되지 않을 때, 이벤트 카운터(44)는 카운트 다운 카운터로 동작하도록 제어기(38)로부터 제어를 수신할 수 있다. 이벤트 카운터(44)는 최소 카운트 값으로 카운트 다운되는 시기를 표시하도록 제어기에 이벤트 카운터 최소 신호(EVCMIN)을 출력한다. 이벤트 카운터(44)가 다수의 카운트 값을 기억하기 위한 메모리를 갖기 때문에, 현재 카운트가 최소 값에 도달할 때 새로운 카운트 값을 로드하도록 제어기로부터 제어를 수신할 수 있다.
메모리로부터 새로운 카운트 값을 로드할 수 있는 능력은 후술하는 바와 같이 EQM 제어기가 정교한 검사 프로토콜을 실행할 수 있게 한다.
[EQM 제어기]
제6도는 EQM 제어기(38)의 블럭도를 도시한 도면이다. EQM 제어기(38)은 유한 상태 머신(48), CMPOUT 신호들을 단일 항목 비교 신호(CTERM)과 결합하기위해 사용되는 AND 게이트(40), 상태 머신(48)에 입력되는 EVENT 신호를 선택하기 위한 제1 멀티플렉서(MUX1)(52), 및 EQO 출력에 출력되는 신호를 선택하기 위한 제2 멀티플렉서(MUX2)(54)를 포함한다. 상태 머신(48)은 MUX1(52)로부터 EVENT 신호, 커맨드 레지스터(40)으로부터의 COMMAND 입력, 루프 카운터(42)로 부터의 LPCMIN 입력, 이벤트 카운터(44)로 부터 EVCMIN 입력, 및 IC의 기능 논리회로(18) 또는 입력 핀으로 부터 SYSCLK를 수신한다. 상태 머신(48)은 경계 검사 논리회로 및 EQC(24a-b)에 제어 신호를 출력하고, 또한 MUX2(54)를 통해 EQO출력에 선택 출력될 수 있는 검사 상태를 출력한다.
COMMAND 입력은 상태 머신(48)이 선택된 검사 프로토콜을 실행하도록 명령하고 MUX1(52) 및 MUX2(54)의 선택 입력을 제어한다. 프로토콜의 실행중에, 상태 머신(48)은 MUX1(52)로 부터의 EVENT 출력을 모니터한다. MUX1(52)가 EYENT 신호로서 CTERM을 출력하도록 설정될 때, 상태 머신(48)은 검사 동작을 개시 및 정지시키기 위해 제어를 발생할 때를 결정하도록 CTERM 신호를 모니터한다. 검사 동작의 한정이 호스트 IC에서 발생하는 로컬 경계 상태에만 기초할 때 MUX1(52)에 의해 CTERM 신호가 선택된다(이후의 보드 레벨 로컬 이벤트 한정부분을 참조하라).
대안적으로, MUX1(52)가 EVENT 신호로서 EQI 입력을 출력하도록 설정될때, 상태 머신(48)은 검사 동작을 개시 및 정지하도록 제어를 발생할 때를 결정하도록 EQI 신호를 모니터한다. EQI 신호는 검사 동작의 한정이 호스트 IC의 로컬 경계 조건에만 기초하지 않고 오히려 IC 경계 조건 및/또는 보드 설계시 발생 또는 입력된 다른 외부 조건의 범위에 기초하는 경우 선택된다(후술하는 보드 레벨 글로벌 이벤트 한정 부분을 참조하라).
커맨드 입력은 또한 CTERM 신호, 상태 머신(48)로부터의 검사 종료(EOT)상태 신호, EQO 디스에이블(EQODIS) 신호중 어느 것이 MUX2(54)를 통해 EQO핀에 출력될 지를 선택한다. CTERM 신호는 EQM이 글로벌 한정 모드에서 동작할 때 선택되어 EQO 핀에 출력된다(다음의 보드 레벨 글로벌 이벤트 한정 부분을 참조하라). EOT 상태 신호는 EQM이 로컬 한정 모드에서 동작할때 선택되어 EQO 핀에서 출력된다(다음의 보드 레벨 로컬 이벤트 한정 부분을 참조하라). EOT 신호는 각각의 프로토콜의 종료시 동작하고, 프로토콜에 의해 제어되는 검사 동작이 완료되는 것을 표시한다. EQODIS 신호가 선택되어 EQO 핀에 출력될때, IC의 EQO 핀은 디스에이블되어, 그것이 입력될 수 있는 다른 회로에 영향을 미치지 않는다.
[EQM 제어기 검사 프로토콜]
EQM 제어기(38)의 상태 머신(48)은 후술된 제7도의 상태도에 도시된 검사 프로토콜들 중 한개의 검사 프로토콜을 선택하여 실행하기 위한 커맨드를 포함한다. 비 동작(NOP) 커맨드는 실행될 검사 프로토콜이 없을때 EQM 제어기(38)에 입력된다. 제7도는 상태 머신(48)이 COMMAND 입력을 디코드하여 검사 프로토콜 또는 NOP 커맨드들 중 한개를 선택하는 방법을 도시한다. 프로토콜 커맨드가 입력될 때, 상태 머신(48)은 아이들(Idle) 상태(56)를 떠나 커맨드 번역기(78)에 의해 번역되는 프로토콜(58- 76)들 중 한개의 프로토콜에 인입한다. 프로토콜의 실행중에, EQM은 표1에 기재된 소정의 검사 동작을 실행하기 위해 제2도의 IC의 검사 논리회로를 인에이블하는데 사용될 수 있는 제어를 출력한다. 실행될 프로토콜이 없는 경우, 상태 머신(48)은 NOP 커맨드(79)를 통해 아이들 상태(56)으로 복귀한다.
프로토콜이 실행된후, 아이들 상태(56)으로 복귀하기 전에 검사 종료 상태(80)로 들어간다. 제어기(38)은 판단 블럭(82)에 도시된 바와 같이 다음 커맨드가 입력될 때까지 검사 종료 상태를 유지한다. 검사 종료 상태 중에, 제6도에 도시된 EOT 상태 신호가 설정되어 MUX2를 통해 EQO 핀으로 부터 출력될 수 있다. EQO 핀에 출력될 EOT 신호를 선택하는 이유는 본 명세서의 보드 레벨 로컬 이벤트 한정 부분에 설명되어 있다.
모든 프로토콜(58-76)은 제5도의 상태 머신에 관련하여 도시된 이벤트 및 루프 카운터(44 및 42)를 사용한다. 이벤트 카운터(44)는 상태 머신(48)에 입력되는 시스템 클럭 또는 이벤트의 수를 카운트하는데 사용되는 카운트 다운 카운터이다. 이벤트를 카운트하기 위해 이벤트 카운터(44)를 사용하면, 상태 머신(48)이 N번째 이벤트에 응답하도록 할 수 있는데, N은 제1 이벤트 대신에 이벤트 카운터(44)로 로드된 카운트 값과 동일하다. 프로그램가능한 제1, 제2 또는 제n 이벤트에 응답하여 검사 동작을 개시 및 정지할 수 있으므로, 이벤트 입력에 응답하여 검사 또는 다른 동작을 실행할 수 있는 이벤트 한정 아키텍춰의 능력이 강화된다. 루프 카운터(42)는 프로토콜이 반복되는 횟수를 카운트하는데 주로 사용되는 카운트 다운 카운터이다. 루프 카운터(42)에 카운트 M이 로드되면, 프로토콜은 정확하게 M번 반복된다.
[프로토콜 1]
프로토콜 1은 후술될 의사 코드 및 제8도의 상태도에 도시된 바와 같이, 검사 또는 다른 절차가 N번째 이벤트에 응답하여 한번 발생하게 하고, 이를 M번 반복시킨다. 본 명세서에서, 상태는 상태도내의 논리적 위치이다. 상태도내의 상태들은 자동적으로 또는 조건 입력에 응답하여 상태에서 다른 상태로 전이되는 것으로 도시되였다. 상태가 지시되는 방법은 상태도의 기능을 정한다. 상태는 2가지 형태 즉, 일시 상태 및 고정 상태중 한 타입으로 존재할 수 있다. 일시 상태들은 한 클럭으로 인입되어 다음 후속 클럭에서 배출되는데, 말하자면, 일시 상태들은 자체로 루프백될 수 없다. 고정 상태는 한 클럭으로 인입되고 다음 후속 클럭에서 배출되거나 루프백될 수 있다.
액션(action)은 상태도가 한 상태로부터 다른 상태로 전이할때 실행되는 선정된 동작이다. 상태 머신은 동작을 달성하기 위해 외부 논리회로에 제어를 출력한다. 액션은 도면에서 점선으로 도시하였다.
이 프로토콜중에, 제5도의 이벤트 카운터(44)는 이벤트의 N번 발생이 검출될 때까지 동작의 개시를 지연시키는데 사용된다(상태 84). 상태 머신(48)이 예상 이벤트를 검출할 때 마다(EVENT=1), 카운터가 최소 카운트인 경우(EVCMIN=1)를 알수 있도록 이벤트 카운터의 EVCMIN 신호를 검사한다. 이벤트가 검출되고 이벤트 카운터(44)가 최소 카운트가 아닌 경우, 상태 머신(48)은 이벤트 입력을 대기(상태 88)한 다음, 이벤트 카운터(44)를 한번 감소시키고(액션 90), 동일한 이벤트의 다음 발생을 모니터링하기 시작한다. 이벤트가 검출되고 이벤트 카운터(44)가 최소 카운트인 경우, 상태 머신(48)은 단일 검사 동작을 실행하기 위한 제어를 발생한(상태 92) 후, 이벤트가 종료되기를 기다린다(상태 95).
루프 카운터(42)는 상술된 프로토콜이 M번 반복되게 하는데 사용된다. 프로토콜을 각각 통과한 후, 상태 머신(48)은 루프 카운터(42)가 최소 카운트인지를 알기 위해 루프 카운터의 LPCMIN 신호를 검사한다(상태 95), 루프 카운터(42)가 최소 카운트에 있지 않으면(LPCMIN=0), 상태 머신(48)은 한번 루프 카운터(42)를 감소시키고(액션 98), 이벤트 카운터(44)로 새로운 N 카운트를 로드하도록 제어를 발생하며(액션 100), EQC들의 메모리가 새로운 쌍의 CMPDAT 및 CMPMSK 신호를 출력하도록 하고(액션 102), 상술된 프로토콜 시퀀스를 반복한다. 루프 카운터(42)가 최소 카운트(LPCMIN=1)에 있는 경우, 상태 머신(48)은 프로토콜을 종료하도록 검사 종료 상태(104)로 전이한다.
프로토콜1에 대한 의사 코드는 다음과 같다.
For M times do:
Begin
On Nth event do test
End
End of Test
[프로토콜 2]
프로토콜 2 동작은 후술된 의사 코드 및 제9도의 상태도에 도시된 바와 같이 N번째 이벤트가 제공되어 M번 반복되는 동안 검사 또는 다른 절차가 발생하게 한다.
이 프로토콜 중에, 제5도의 이벤트 카운터(44)는 이벤트의 N번 발생이 검출될때 까지 동작의 개시를 지연시키기 위해 사용된다. 상태 머신(48)이 예상 이벤트를 검출할 때마다, 카운터가 최소 카운트에 있는지를 알기 위해 이벤트 카운터의 EVCMIN 신호를 검사한다(상태 106). 이벤트가 검출되고 이벤트 카운터(44)가 상태(106)에서 최소 카운트에 있지 않는 경우, 상태 머신(48)은 이벤트 입력을 대기한(상태 110) 다음, 이벤트 카운터(44)를 한번 감소시키며(액션 112), 동일한 이벤트의 다음 발생을 모니터링하기 시작한다. 이벤트가 검출되고 이벤트 카운터(44)가 최소 카운트에 있는 경우, 상태 머신(48)은 이벤트 입력이 제공될때 검사 동작을 실행하도록 제어를 발생한다(상태 114). 이벤트 입력이 사라질때, 상태 머신(48)은 검사 동작을 종료한다.
루프 카운터(42)는 상술된 프로토콜이 M번 반복되게 하는데 사용된다. 프로토콜을 각각 통과한 후, 상태 머신(48)은 카운터가 최소 카운트에 있는지를 알기 위해 루프 카운터의 LPCMIN 신호를 검사한다(상태 114). 루프 카운터(42)가 최소 카운트에 있지 않은 경우, 상태 머신(48)은 루프 카운터(42)를 한번 감소시키고(액션 118), 이벤트 카운터(44)로 새로운 N 카운트를 로드시키도록 제어를 발생하며(액션 120), EQC내의 메모리가 CMPDAT 및 CMPMSK 신호의 새로운 쌍을 출력하게 하고(액션 122), 상술된 프로토콜 시퀀스를 반복한다. 루프 카운터(42)가 최소 카운트에 있는 경우, 상태 머신(48)은 프로토콜을 종료하기 위해 검사 종료 상태(124)내로 전이한다.
프로토콜 2의 의사 코드는 다음과 같다.
For M times do
Begin
During Nth event do test
End
End of test
[프로토콜 3]
프로토콜 3의 동작은 후술된 의사 코드 및 제10도의 상태도에 도시된 바와 같이 검사 또는 다른 절차가 제1 N번째 이벤트에 응답하여 개시되고, 제2 N번째 이벤트에 응답하여 정지하며, 이를 M번 반복되게 한다.
이 프로토콜 중에, 제5도의 이벤트 카운터(44)는 제1 이벤트의 N번 발생이 검출될때 까지 동작의 개시를 지연시키기 위해 사용된다. 상태 머신(48)이 예상 제1 이벤트를 검출할때 마다, 카운터가 최소 카운트에 있는지를 알기 위해 이벤트 카운터의 EVCMIN 신호를 검사한다(상태 126). 이벤트가 검출되고 이벤트 카운터(44)가 최소 카운트에 있지 않는 경우, 상태 머신(48)은 이벤트 입력이 사라지기를 기다린(상태 130) 다음, 이벤트 카운터(44)를 한번 감소시키며(액션 132), 동일한 이벤트의 다음 발생을 모니터링하기 시작한다. 이벤트가 검출되고 이벤트 카운터(44)가 최소 카운트에 있는 경우, 상태 머신(48)은 검사 동작을 개시하도록 제어를 발생한다(상태 134). 검사 동작을 개시하는 검출된 이벤트가 사라질때, 상태 머신(48)은 새로운 N 카운트로 이벤트 카운터(44)를 로드하도록 제어를 발생하고(액션 136) EQC내부의 메모리들이 CMPDAT 및 CMPMSK 신호의 새로운 쌍을 출력하여(액션 138) 검사 동작을 정지시키는 제2 N번째 이벤트에 대해 비교(상태 140)하는데 사용되 게 한다.
상태 머신(48)은 검사 동작을 정지시키는 제2 N번째 이벤트를 모니터할 때 (상태 140), 검사 동작을 유지하기 위한 제어를 계속 발생한다. 상태 머신(48)이 제2 이벤트를 검출할때 마다 카운터가 최소 카운트에 있는지를 알기 위해 이벤트 카운터의 EVCMIN 신호를 검사한다. 이벤트가 검출되고 이벤트 카운터(44)가 최소카운트에 있지 않을때, 상태 머신(48)은 이벤트 입력이 사라지기를 기다린 다음(상태 144), 이벤트 카운터(44)를 한번 감소시키고, 동일한 이벤트의 다음 발생을 모니터링하기 시작한다(액션 146). 이벤트가 검출되고 이벤트 카운터(44)가 최소 카운트에 있는 경우, 상태 머신(48)은 검사 동작을 정지시키기 위해 제어를 발생한다(상태148).
루프 카운터(42)는 상술된 프로토콜이 M번 반복되게 하는데 사용된다. 프로토콜을 각각 통과한 후, 상태 머신(48)은 카운터가 최소 카운트에 있는지를 알기위해 루프 카운터의 LPCMIN 신호를 검사한다(상태 148). 루프 카운터(42)가 최소 카운트에 있지 않은 경우, 상태 머신(48)은 루프 카운터(42)를 한번 감소시키고(액션 152), 이벤트 카운터(44)로 새로운 N 카운트를 로드시키도록 제어를 발생하며(액션 154), EQC내의 메모리가 CMPDAT 및 CMPMSK 신호의 새로운 쌍을 출력하게 하고(액션 156), 상술된 프로토콜 시퀀스를 반복한다. 루프 카운터(42)가 최소 카운트에 있는 경우, 상태 머신(48)은 프로토콜을 종료하기 위해 검사 종료 상태(158)로 전이한다.
프로토콜 3의 의사 코드는 다음과 같다.
For M times do
Begin
On Nth event start test
On Nth event stop test
End
End of test
[프포토콜 4]
프로토콜 4의 동작은 후술된 의사 코드 및 제11도의 상태도에 도시된 바와 같이 검사 또는 다른 절차가 제1 N번째 이벤트의 검출후 N 클럭에서 개시되고, 제2 N번째 이벤트에 응답하여 정지되며, 이를 M번 반복되게 한다.
이 프로토콜중에, 제5도의 이벤트 카운터(44)는 제1 이벤트의 N번 발생이 검출될때 까지 동작의 개시를 지연시키는데 사용된다. 상태 머신(48)이 예상 제1 이벤트를 검출할때 마다, 카운터가 최소 카운트에 있는지를 알기 위해 이벤트 카운터의 EVCMIN 신호를 검사한다(상태 160). 이벤트가 검출되고 이벤트 카운터(44)가 최소 카운트에 있지 않는 경우, 상태 머신(48)은 이벤트 입력이 사라지기를 기다린 다음(상태 164), 이벤트 카운터(44)를 한번 감소시키며(액션 166), 제1 이벤트의 다음 발생을 모니터링하기 시작한다. 이벤트가 검출되고 이벤트 카운터(44)가 최소 카운트에 있는 경우, 상태 머신(48)은 이벤트 카운터(44)로 새로운 N 카운트를 로드하고(액션 168), 각각의 시스템 클럭 입력에 대해 이벤트 카운터(44)를 한번 감소시키는 것을 개시한다(상태 170 및 액션 174).
이벤트 카운터(44)가 EVCMIN 신호에 의해 표시되는 최소 카운트에 도달할때, 상태 머신(48)은 검사 동작을 개시하기 위한 제어를 발생하고, 새로운 N 카운트를 이벤트 카운터(44)에 로드하며(액션 176), EQC들 내부의 메모리들이 검사 동작을 정지시키는 제2 N번째 이벤트에 대해 비교하는데 사용되는 CMPDAT 및 CMPMSK 신호의 새로운 쌍을 출력하게 한다(액션 178). 선정된 수의 클럭 동안 검사 동작의 개시를 지연할 수 있는 능력은 이벤트 개시가 발생한 후 일정한 시점에서 검사 동작을 개시하게 할 수 있다(상태 179).
검사가 개시된 후, 상태 머신(48)은 제2 이벤트의 N 발생이 검출될때 까지 검사 동작의 정지를 지연시키기 위해 이벤트 카운터(44)를 사용한다. 상태 머신(48)이 예상 제2 이벤트를 검출할 때마다, 카운터가 최소 카운트에 있는지를 알기 위해 이벤트 카운터의 EVCMIN 신호를 검사한다(상태 170). 이벤트가 검출되고 이벤트 카운터(44)가 최소 카운트에 없는 경우, 상태 머신(48)은 이벤트 입력이 사라지기를 기다린 다음(상태 181), 이벤트 카운터(44)를 한번 감소하며, 제2 이벤트의 다음 발생의 모니터링을 개시한다(액션 182). 이벤트가 검출되고 이벤트 카운터(44)가 최소 카운트에 있는 경우, 상태 머신(48)은 검사 동작을 정지시키기 위해 제어를 발생한다.
루프 카운터(42)는 상술된 프로토콜이 M번 반복되게 하는데 사용된다. 프로토콜을 각각 통과한 후, 상태 머신(48)은 카운터가 최소 카운트에 있는지를 알기 위해 루프 카운터의 LPCMIN 신호를 검사한다. 루프 카운터(42)가 최소 카운트에 없을때, 상태 머신(48)은 루프 카운터(42)를 한번 감소시키고(액션 184). 이벤트 카운터(44)로 새로운 N 카운트를 로드하도록 제어를 발생한다(액션 186). 이벤트가 진행한 후(상태 189), 상태 머신은 EQC내의 메모리가 CMPDAT 및 CMPMSK 신호의 새로운 쌍을 출력하게 하는 제어를 출력하고(액션 188), 상술된 프로토콜 시퀀스를 반복한다. 루프 카운터(42)가 최소 카운트에 있는 경우, 상태 머신(48)은 프로토콜을 종료하기 위해 검사 종료 상태로 전이한다(상태 190).
프로토콜 4의 의사 코드는 다음과 같다.
For M times do
Begin
On Nth event start test after N clocks
On Nth event stop test
End
End of test
[프로토콜 5]
프로토콜 5의 동작은 후술된 의사 코드 및 제12도의 상태도에 도시된 바와 같이 검사 또는 다른 절차가 제1 N번째 이벤트에 응답하여 개시되고, 제2 N번째 이벤트의 검출후 N개 클럭후에 정지하며, M번 반복되게 한다.
이 프로토콜중에, 제5도의 이벤트 카운터(44)는 제1 이벤트의 N번 발생이 검출될 때까지 동작의 개시를 지연시키는데 사용된다. 상태 머신(48)이 예상 제1 이벤트를 검출할때 마다, 카운터가 최소 카운트에 있는지를 알기 위해 이벤트 카운터의 EVCMIN 신호를 검사한다(상태 192). 이벤트가 검출되고 이벤트 카운터(44)가 최소 카운트에 있지 않는 경우, 상태 머신(48)은 이벤트 입력이 사라지기를 기다린 다음(상태 196), 이벤트 카운터(44)를 한번 감소시키며(액션 198), 제1 이벤트의 다음 발생을 모니터링하기 시작한다. 이벤트가 검출되고 이벤트 카운터(44)가 최소 카운트에 있는 경우, 상태 머신(48)은 검사 동작을 개시하도록 제어를 발생하고(상태 200), 이벤트 카운터(44)로 새로운 N 카운트를 로드하며(액션 202), EQC내부의 메모리가 검사 동작의 정지 시퀀스를 초기화하는 제2 N번째 이벤트에 대해 비교하는데 사용되는 CMPDAT 및 CMPMSK 신호의 새로운 쌍을 출력하게 한다(액션 204).
검사가 개시된 후, 상태 머신(48)은 제2 이벤트의 N번 발생이 검출될때 까지 검사 동작의 정지를 지연시키기 위해 이벤트 카운터(44)를 사용한다. 상태 머신(48)이 예상 제2 이벤트를 검출할 때마다, 카운터가 최소 카운트에 있는지를 알기 위해 이벤트 카운터의 EVCMIN 신호를 검사한다(상태 206). 이벤트가 검출되고 이벤트 카운터(44)가 최소 카운트에 없는 경우, 상태 머신(48)은 이벤트 입력이 사라지기를 기다린 다음(상태 210), 이벤트 카운터(44)를 한번 감소시키며(액션 212), 제2 이벤트의 다음 발생의 모니터링을 개시한다. 이벤트가 검출되고 이벤트 카운터(44)가 최소 카운트에 있는 경우, 상태 머신(48)은 이벤트 카운터(44)로 새로운 N 카운트를 로드하고(액션 214), 각각의 시스템 클럭 입력에 대해 이벤트 카운터(44)를 한번 감소시키는 것을 개시한다(상태 216과 219 및 액션 220). 이벤트 카운터(44)가 EVCMIN 신호로 표시된 최소 카운트에 도달할때, 상태 머신(48)은 검사 동작을 정지시키기 위해 제어를 발생한다. 선정된 수의 클럭 동안 검사 동작의 정지를 지연할 수 있는 능력은 이벤트 정지 발생 후 일정한 시점에서 검사 동작을 정지시키게 한다.
루프 카운터(42)는 상술된 프로토콜이 M번 반복되게 하는데 사용된다. 프로토콜을 각각 통과한 후, 상태 머신(48)은 카운터가 최소 카운트에 있는 지를 알기 위해 루프 카운터의 LPCMIN 신호를 검사한다(상태 216). 루프 카운터(42)가 최소카운트에 없을때, 상태 머신(48)은 루프 카운터(42)를 한번 감소시키고(액션 221), 이벤트 카운터(44)로 새로운 N 카운트를 로드하기 위해 제어를 발생하고(액션 222), EQC내의 메모리가 CMPDAT 및 CMPMSK 신호의 새로운 쌍을 출력하게하고(액션 224), 상술된 프로토콜 시퀀스를 반복한다. 루프 카운터(42)가 최소 카운트에 있는 경우, 상태 머신(48)은 프로토콜을 종료하기 위해 검사 종료 상태(상태 226)로 전이한다.
프로토콜 5의 의사 코드는 다음과 같다.
For M times do
Begin
On Nth event start test
On Nth event stop test after N clocks
End
End of test
[프로토콜 6]
프로토콜 6의 동작은 후술된 의사 코드 및 제13도의 상태도에 도시된 바와 같이 검사 또는 다른 절차가 제1 N번째 이벤트의 검출 후 N 클럭 후에 개시되고, 제2 N번째 이벤트 검출 후 N 클럭 후에 정지하며, 이를 M번 반복되게 한다.
이 프로토콜중에, 제5도의 이벤트 카운터(44)는 제1 이벤트의 N번 발생이 검출될때 까지 동작의 개시를 지연시키는데 사용된다. 상태 머신(48)이 예상 제1 이벤트를 검출할때 마다, 카운터가 최소 카운트에 있는 지를 알기 위해 이벤트 카운터의 EVCMIN 신호를 검사한다(상태 228). 이벤트가 검출되고 이벤트 카운터(44)가 최소 카운트에 있지 않는 경우, 상태 머신(48)은 이벤트 입력이 사라지기를 기다린 다음(상태 232), 이벤트 카운터(44)를 한번 감소시키며(액션 234), 제1 이벤트의 다음 발생의 모니터링을 개시한다. 이벤트가 검출되고 이벤트 카운터(44)가 최소 카운트에 있는 경우, 상태 머신(48)은 이벤트 카운터(44)로 새로운 N 카운트를 로드하고(액션 236), 각각의 시스템 클럭 입력에 대해 이벤트 카운터(44)를 한번 감소시키는 것을 개시한다(상태 238 및 액션 242).
이벤트 카운터(44)가 EVCMM 신호에 의해 표시되는 최소 카운트에 도달할 때, 상태 머신(48)은 새로운 N 카운트를 이벤트 카운터(44)에 로드하며(액션 244), EQC들 내부의 메모리들이 검사 동작의 정지 시퀀스를 초기화하는 제2 N번째 이벤트에 대해 비교하는데 사용되는 CMPDAT 및 CMPMSK 신호의 새로운 쌍을 출력하게 하고(액션 246), 검사 동작을 개시하는 제어를 발생한다(상태 248). 선정된 수의 클럭 동안 검사 동작의 개시를 지연할 수 있는 능력은 이벤트 개시가 발생한 후 일정한 시점에서 검사 동작을 개시하게 한다.
검사가 개시된 후, 상태 머신(48)은 제2 이벤트의 N번 발생이 검출될때 까지 검사 동작의 정지를 지연시키기 위해 이벤트 카운터(44)를 사용한다(상태 248).
상태 머신(48)이 예상 제2 이벤트를 검출할 때마다, 카운터가 최소 카운트에 있는지
를 알기 위해 이벤트 카운터의 EVCMIN 신호를 검사한다. 이벤트가 검출되고 이벤트 카운터(44)가 최소 카운트에 없는 경우, 상태 머신(48)은 이벤트 입력이 사라지기를 기다린 다음(상태 252), 이벤트 카운터(44)를 한번 감소시키며(액션 254), 제2 이벤트의 다음 발생의 모니터링을 개시한다. 이벤트가 검출되고 이벤트 카운터(44)가 최소 카운트에 있는 경우, 상태 머신(48)은 이벤트 카운터(44)로 새로운 N 카운트를 로드하고(액션 256), 각각의 시스템 클럭 입력에 대해 이벤트 카운터(44)를 한번 감소시키는 것을 개시한다. 이벤트 카운터(44)가 EVCMIN 신호에 의해 표시된 최소 카운트에 도달할때(상태 258 및 액션 262), 상태 머신(48)은 검사 동작을 정지시키기 위해 제어를 발생한다. 선정된 수의 클럭 동안 검사 동작의 정지를 지연할 수 있는 능력은 이벤트 정지 발생 후 일정한 시점에서 검사 동작을 정지시키게 한다.
루프 카운터(42)는 상술된 프로토콜이 M번 반복되게 하는데 사용된다. 프로토콜을 각각 통과한 후, 상태 머신(48)은 카운터가 최소 카운트에 있는지를 알기위해 루프 카운터의 LPCMIN 신호를 검사한다(상태 258). 루프 카운터(42)가 최소카운트에 없을때, 상태 머신(48)은 루프 카운터(42)를 한번 감소시키고(액션 264), 이벤트 카운터(44)로 새로운 N 카운트를 로드하기 위해 제어를 발생하고(액션 266), EQC내의 메모리가 CMPDAT 및 CMPMSK 신호의 새로운 쌍을 출력하게 하는 제어를 출력하게 하고(액션 268), 상술된 프로토콜 시퀀스를 반복한다. 루프 카운터(42)가 최소 카운트에 있는 경우, 상태 머신(48)은 프로토콜을 종료하기 위해 검사종료 상태(상태 270)로 전이한다.
프로토콜 6의 의사 코드는 다음과 같다.
For M times do
Begin
On Nth event start test after N clocks
On Nth event stop test after N clocks
End
End of test
[프로토콜 7]
프로토콜 7은 검사 또는 다른 절차가 후술된 의사 코드 및 제14도의 상태도에 도시된 바와 같이 제1 N번째 이벤트에 응답하여 개시되고, N 시스템 클럭후에 정지되며, 이를 M번 반복되게 한다.
이 프로토콜중에, 제5도의 이벤트 카운터(44)는 제1 이벤트의 N번 발생이 검출될때 까지 동작의 개시를 지연하는데 사용된다. 상태 머신(48)이 예상 제1 이벤트를 검출할때 마다, 카운터가 최소 카운트에 있는 지를 알기 위해 이벤트 카운터의 EVCMIN 신호를 검사한다(상태 272). 이벤트가 검출되고, 이벤트 카운터(44)가 최소 카운트에 있지 않은 경우, 상태 머신(48)은 이벤트 입력이 사라지기를 기다린 다음(상태 276), 이벤트 카운터(44)를 한 번 감소시키고(액션 278), 동일한 이벤트의 다음 발생의 모니터링을 개시한다. 이벤트가 검출되고 이벤트 카운터(44)가 최소 카운트에 있는 경우, 상태 머신(48)은 검사가 실행되는 시스템 클럭의 수와 동일한 새로운 N 카운트를 이벤트 카운터(44)에 로드하고(액션 280), 검사 동작을 개시하기(상태 282)위해 제어를 발생한다. 검사 중에, 이벤트 카운터(44)는 각각의 시스템 클럭 입력중에 한번 감소된다(상태 282 및 액션 286). 이벤트 카운터(44)가 최소 카운트에 도달할때, 상태 머신(48)은 검사 동작을 정지한다.
루프 카운터(42)는 상술된 프로토콜이 M번 반복되게 하는데 사용된다. 프로토콜을 각각 통과한 후, 상태 머신(48)은 카운터가 최소 카운트에 있는 지를 알기위해 루프 카운터의 LPCMIN 신호를 검사한다(상태 282), 루프 카운터(42)가 최소카운트에 없을때, 상태 머신(48)은 루프 카운터(42)를 한번 감소시키고(액션 288), 이벤트 카운터(44)로 새로운 N 카운트를 로드하기 위해 제어를 발생하고(액션 290), EQC내의 메모리가 CMPDAT 및 CMPMSK 신호의 새로운 쌍을 출력하게 하고(액션 292), 상술된 프로토콜 시퀀스를 반복한다. 루프 카운터(42)가 최소 카운트에 있는 경우, 상태 머신(48)은 프로토콜을 종료하기 위해 검사 종료 상태(상태 294)로 전이한다.
프로토콜 7의 의사 코드는 다음과 같다.
For M times do
Begin
On Nth event do test for N clocks
End
End of test
[프로토콜 8]
프로토콜 8은 후술된 의사 코드 및 제15도의 상태도에 도시된 바와 같이, 검사 또는 다른 절차가 N번째 이벤트의 검출후 N 시스템 클럭후에 개시되고, N시스템 클럭후에 정지되며, 이를 M번 반복되게 한다.
이 프로토콜중에, 제5도의 이벤트 카운터(44)는 이벤트의 N번 발생이 검출될 때 까지 동작의 개시를 지연시키는데 사용된다. 상태 머신(48)이 예상 이벤트를 검출할때 마다, 카운터(44)가 최소 카운트에 있는지를 알기 위해 이벤트 카운터의 EVCMIN 신호를 검사한다(상태 296). 이벤트가 검출되고 이벤트 카운터(44)가 최소 카운트에 있지 않는 경우, 상태 머신(48)은 이벤트 입력이 사라지기를 기다린 다음(상태 300), 이벤트 카운터(44)를 한번 감소시키며(액션 302), 예상 이벤트의 다음 발생의 모너터링을 개시한다. 이벤트가 검출되고 이벤트 카운터(44)가 최소 카운트에 있는 경우, 상태 머신(48)은 이벤트 카운터(44)로 새로운 N 카운트를 로드한다(액션 304). N 카운트는 검사 동작이 개시될 수 있기 전에 발생해야 하는 시스템 클럭 싸이클의 수와 동일하다.
새로운 카운트가 로드된 후, 상태 머신(48)은 각각의 시스템 클럭 입력을 수신하는 동안 이벤트 카운터(44)를 한번 감소시킨다(상태 306 및 액션 310). 이벤트 카운터(44)가 EVCMIN 신호로 표시되는 최소 카운트에 도달할때, 상태 머신(48)은 검사 동작이 실행되는 시스템 클럭 싸이클의 수와 동일한 새로운 N 카운트를 이벤트 카운터(44)에 재로드하고(액션 312) 검사 동작을 개시하기 위해 제어를 발생한다(상태 314). 새로운 카운트가 로드된 후, 상태 머신(48)은 각각의 시스템 클럭 입력을 수신하는 동안 이벤트 카운터(44)를 한번 감소시킨다(상태 314 및 액션 318). 이벤트 카운터(44)가 최소 카운트에 도달할때, 상태 머신(48)은 검사 동작을 정지하기 위해 제어를 발생한다.
루프 카운터(42)는 상술된 프로토콜이 M번 반복되게 하는데 사용된다. 프로토콜을 각각 통과한 후, 상태 머신(48)은 카운터(42)가 최소 카운트에 있는지를 알기 위해 루프 카운터의 LPCMIN 신호를 검사한다. 루프 카운터(42)가 최소 카운트에 없을때, 상태 머신(48)은 루프 카운터(42)를 한번 감소시키고(액션 320), 이벤트 카운터(44)로 새로운 N 카운트를 로드하기 위해 제어를 발생하고(액션 322), EQC내의 메모리가 CMPDAT 및 CMPMSK 신호의 새로운 쌍을 출력하게 하고(액션 292), 상술된 프로토콜 시퀀스를 반복한다. 루프 카운터(42)가 최소 카운트에 있는 경우, 상태 머신(48)은 프로토콜을 종료하기 위해 검사 종료 상태(상태 326)로 전이한다.
프로토콜 8의 의사 코드는 다음과 같다.
For M times do
Begin
On Nth event;
Pause of N clocks
Do test for N clocks
End
End of test
[프로토콜 9]
프로토콜 9는 후술된 의사 코드 및 제16도의 상태도에 도시된 바와 같이, 검사 또는 다른 절차가 N번째 이벤트에 응답하여 개시되고, N 시스템 클럭 동안 실행된 다음, 루프 카운터(42)가 최소 카운트에 있지 않는 경우, 검사를 재개하기 전에 N 시스템 클럭 동안 일시 정지하게 한다.
이 프로토콜중에, 제5도의 이벤트 카운터(44)는 제1 이벤트의 N번 발생이 검출될때 까지 동작의 개시를 지연하는데 사용된다. 상태 머신(48)이 예상 이벤트를 검출할때 마다, 카운터가 최소 카운트에 있는지를 알기 위해 이벤트 카운터의 EVCMIN 신호를 검사한다(상태 328). 이벤트가 검출되고, 이벤트 카운터(44)가 최소 카운트에 있지 않은 경우, 상태 머신(48)은 이벤트 입력이 사라지기를 기다린 후(상태 332), 이벤트 카운터(44)를 한번 감소시키고(액션 334), 동일한 이벤트의 다음 발생의 모니터링을 개시한다. 이벤트가 검출되고 이벤트 카운터(44)가 최소 카운트에 있는 경우, 상태 머신(48)은 검사가 실행되는 시스템 클럭의 수와 동일한 새로운 N 카운트를 이벤트 카운터(44)에 로드하고(액션 336), 검사 동작을 개시하기(상태 338) 위해 제어를 발생한다. 검사 중에, 이벤트 카운터(44)는 각각의 시스템 클럭 입력중에 한번 감소된다(상태 338 및 액션 342).
이벤트 카운터(44)가 최소 카운트에 도달할때, 상태 머신(48)은 검사 동작을 정지하고 루프 카운터(42)가 최소 카운트에 있는지를 알기 위해 검사한다. 루프 카운터(42)가 최소 카운트에 있는지의 여부에 따라, 상태 머신은 2개의 가능한 동작들중 한 동작을 취한다. 루프 카운터(42)가 최소 카운트에 있지 않는 제1 동작에서, LPCMIN 신호를 검사함으로써 결정되는 바와 같이, 상태 머신(48)은 루프 카운터(42)를 한번 감소시킨 다음(액션 344), 검사 동작이 일시 정지되는 시스템 클럭의 수와 동일한 새로운 N 카운트를 이벤트 카운터(44)에 로드한다(액션 346). 이벤트 카운터(44)는 각각의 시스템 클럭 입력 동안 한번 감소된다(상태 348 및 액션 352).
이벤트 카운터(44)가 최소 카운트에 도달할때, 새로운 N 카운트가 이벤트 카운터(44)로 로드되고(액션 354), 이벤트 카운터(44)가 다시 한번 최소 카운트에 도달하고 이 때 루프 카운터(42)가 상술한 최소 카운트에 대해 다시 검사되는 때까지 검사 동작이 재개된다. 루프 카운터(42)가 최소 카운트에 있는 제2 동작에서, 프로토콜은 종료되고, 상태 머신(48)은 검사 종료 상태(356)으로 전이된다.
프로토콜 9의 의사 코드는 다음과 같다.
On Nth event do;
Do test for N clocks
Then For (M-1) tlmes do
Begin
Pause for N clocks
Do test for N clocks
End
End of test
[프로토콜 10]
프로토콜 10은 검사 또는 다른 절차가 N번째 이벤트에 응답하여 초기화되게 한다. 후술된 의사 코드 및 제18도의 상태도에 도시된 바와 같이 일단 초기화되면, 프로토콜은 N 시스템 클럭동안 일시 정지하고, N 시스템 클럭동안 실행되며, 일시 정지 및 실행 시퀀스를 M번 실행한다.
이 프로토콜중에, 제6도의 이벤트 카운터(44)는 제1 이벤트의 N번 발생이 검출될때 까지 동작의 개시를 지연하는데 사용된다. 상태 머신(48)이 예상 이벤트를 검출할때 마다, 카운터(44)가 최소 카운트에 있는지를 알기 위해 이벤트 카운터의 EVCMIN 신호를 검사한다(상태 358), 이벤트가 검출되고, 이벤트 카운터(44)가 최소 카운트에 있지 않은 경우, 상태 머신(48)은 이벤트 입력이 사라지기를 기다린 다음(상태 362), 이벤트 카운터(44)를 한번 감소시키고(액션 364), 동일한 이벤트와 다음 발생의 모니터링을 개시한다. 이벤트가 검출되고 이벤트 카운터(44)가 최소 카운트에 있는 경우, 상태 머신(48)은 검사의 실제 개시가 지연 또는 일시 정지되는 시스템 클럭의 수와 동일한 새로운 N 카운트를 이벤트 카운터(44)에 로드하기 위한 제어를 발생한다. 일시 정지 동작중에, 이벤트 카운터(44)는 각각의 시스템 클럭 입력중에 한번 감소된다(상태 368 및 액션 372).
이벤트 카운터(44)가 최소 카운트에 도달할때, 상태 머신(48)은 검사를 개시하고 이벤트 카운터(44)에 새로운 N 카운트를 로드하기 위한 제어를 발생한다(액션 374). 검사 동작중에, 이벤트 카운터(44)는 각각의 시스템 클럭 입력 중에 한번 감소된다(상태 376 및 액션 380). 이벤트 카운터(44)가 최소 카운터에 도달할 때, EVCMIN 신호를 모니터링함으로써 결정되는 바와같이, 상태 머신(48)은 루프 카운터(42)가 최소 카운트에 있는지를 알기 위해 루프 카운터의 LPCMIN 신호를 검사하는 검사 동작을 정지시킨다. 루프 카운터(42)가 최소 카운트에 있지 않는 경우, 상태 머신(48)은 루프 카운터(42)를 감소시키고(액션 382), 이벤트 카운터(44)로 새로운 N 카운트를 로드하며(액션 384), 상술한 시퀀스(N 동안 일시 정지한 다음, N동안 검사)를 반복한다. 루프 카운터(42)가 최소 카운트에 있는 경우, 상태 머신(48)은 프로토콜을 종료하고, 검사 종료 상태(386)으로 전이한다.
프로토콜 10의 의사 코드는 다음과 같다.
On Nth event;
For M times do
Begin
Pause for N clocks
Do Test for N clocks
End
End of test
[보드 레벨 이벤트 한정]
이벤트 한정 아키텍춰는 하나의 IC의 경계에 국부적으로 인가되는 것으로 본 명세서에서 설명하였다. 여기에서는 복수의 IC가 이벤트 한정 프로세스에서 참여하는 방법을 설명한다. 제18도는 선택 회로(voting circuit: 388)와 함께 제2도에 도시된 이벤트 한정 아키텍춰를 포함하는 복수의 IC(20)를 구비한 보드 설계를 도시한 것이다. 선택 회로는 보드 레벨 한정에 필요한 것이며 각각의 IC로 부터의 모든 EQO 신호를 EQI 입력을 통해 각각의 IC로 피드백되는 단일 신호로 결합하는데 사용된다.
보드는 시스템 데이타용 입력 및 출력, 4 와이어 1149.1 검사 버스 인터페이스(TCK TMS TDI 및 TDO 신호), 및 이벤트 신호를 출력하기 위한 인터럽트(INT)를 갖는다. 4 와이어 검사 버스 및 INT 신호는 검사 버스 제어기(390)에 결합된다. 검사 버스 제어기(390)은 검사 동작을 설정하여 실행하고 검사로부터 얻어지는 검사 데이타를 추출하기 위해 1149.1 검사 버스를 통해 보드 설계상의 IC(20)을 직렬로 액세스시킨다.
[보드 레벨 - 로컬 이벤트 한정]
제18도의 IC(20)은 1149.1 검사 버스 제어기로부터 주사 액세스에 의한 로컬한정 및 검사 동작을 하도록 설정될 수 있다. IC(20)이 로컬 한정 모드에서 동작할 때, 각각의 IC 성능 검사는 IC의 경계에 국부적으로 발생하는 조건에 의해서만 한정된다. 이 모드에서, 제18도의 모든 IC(20)은 각각의 검사 동작을 동시에 실행하도록 구성될 수 있고, 각각의 검사 동작은 이벤트 한정 프로토콜의 상이한 타입에 의해 제어된다. 예를 들어, 소정의 IC는 이벤트 한정 프로토콜 3을 사용하여 TCR(14 및 16)으로 입력 및 출력 데이타를 압축시키도록 설정될 수 있고, 다른 IC들은 이벤트 한정 프로토콜 2를 사용하여 내부 TMEM(28)에 입력 데이타를 기억시키도록 설정 될 수 있다.
로컬 한정화중에, EQM 상태 머신(48)은 검사 프로토콜을 개시 및 정지하기 위해 모니터링하는 이벤트의 소오스로 되는 제6도에 도시된 CTERM을 선택한다. CTERM은 호스트 IC의 경계에서 발생하는 로컬 비교 동작의 상태를 표시한다. 그러므로, 로컬 한정화 모드에서, 프로토콜은 호스트 IC들의 경계에서 발생하는 동작 비교에 응답하여서만 개시되고 정지될 수 있다.
또한, 로컬 한정화동안, 각각의 IC(20)으로 부터의 EQO 출력은 제6도의 EQM 상태 머신(48)로 부터 EOT 상태 신호를 출력하도록 설정된다. 선택 회로(388)은 EQO 신호들을 수신하고 각각의 IC의 EQI 입력에 피드백되는 EQI 신호를 출력한다. 선택 회로(388)로 부터의 EQI 출력은 또한 INT 신호를 통해 오프-보드에 공급된다. 선택 회로는 모든 IC(20)가 로컬 검사 동작(프로토콜)을 완료하고 EQO 출력으로 부터 EOT 상태 신호를 출력할때 까지 EQI 신호를 출력하지 않는다. INT 출력을 모니터링함으로써, 검사 버스 제어기(390)는 각각의 IC(20)에 의해 실행된 모든 검사 동작이 완료되는 시기를 결정할 수 있다. INT 신호가 검출될때, 검사 버스 제어기(390)은 검사를 위해 각각의 IC내에서 수집된 검사 데이타를 추출하기 위해 주사 동작을 실행한다.
[보드레벨-글로벌 이벤트 한정화]
로컬 한정화는 여러번의 검사가 필요한 경우 사용되지만, 검사의 한정이 타켓 IC의 경계 밖으로 확장될 필요가 있을 때가 있다. 한정 프로세스에 참여하는 경계 신호들의 수를 증가시키는 것은 검사 동작이 인에이블되는 시기에 관한 해상도를 향상시킨다. 예를 들어, 하나의 IC 경계에서의 신호는 특정 검사 동작을 위한 충분한 한정을 제공하지 않을 수 있다. 그러나, 타켓 IC의 경계 신호와 이웃한 IC들의 경계 신호들을 결합함으로써, 검사 동작을 보다 정확하게 인에이블하는데 사용될 수 있는 글로벌 한정 모드가 얻어진다.
글로벌 한정 중에, 각각의 IC(20)로 부터의 EQO 신호는 IC의 로컬 경계 비교 동작의 결과를 출력하도록 설정된다. 모든 IC(20)로부터의 EQO 신호들은 선택회로(388)로 입력되어서 하나의 합성 글로벌 비교 신호로 결합될 수 있다. 참여하지 않는 IC는 그 EQO 출력을 선택 회로의 동작과 인터페이스하지 않는 상태로 설정한다[제6도의 MUX2 (54)로의 EQODIS 입력을 참조]. 선택 회로(388)의 출력은 각각의 IC(20)내부의 EQM이 글로벌 비교 신호의 발생을 모니터링할 수 있도록 각각의 IC의 EQI 입력으로 피드백된다.
모든 IC 경계에서 일치가 발생할 때 마다, IC(20)의 EQO 출력은 모두 인에이블되고, 선택 회로(388)은 각각의 IC의 EQI 입력으로 글로벌 비교 신호를 다시 출력한다. 각각의 IC(20)의 EQM(22)는 EQI 입력에 응답하여 선정된 검사 동작을 제어하는 프로토콜을 실행한다. INT 출력을 모니터링함으로써, 검사 버스 제어기(390)은 얻어진 검사 데이타가 검색을 위해 IC들의 외부로 주사될 수 있도록 글로벌검사 동작이 완료되는 시기를 결정할 수 있다.
[IC 설계시 EQM만 사용]
본 명세서는 EQC(24) 및 EQM(22) 모두를 포함하는 것으로 이벤트 한정 아키텍춰를 설명하였으나, EQC(24)를 구현할 충분한 논리 회로가 IC내에 없을 때 EQM(22)만을 사용하는 것이 가능하다. EQM(22)만이 사용될때, EQI 입력은 EQM의 프로토콜을 개시 및 정지하기 위해 단일 이벤트 입력으로서 작용한다. EQM 동작은 동일하게 유지되고, 단지 차이는 검사 동작의 한정이 IC내부에 선택적으로 발생되는 대신에 EQI 핀을 통해 IC로 항상 입력되어야 한다는 것이다. IC가 EQC, 또는 유사한 비교 회로를 포함하지 않을때 내부 한정이 발생하지 않기 때문에, EQO핀은 EQM 제어기(38)로 부터 EOT 상태 신호 또는 MUX2(54)를 통해 EQODIS 신호만을 출력하는데 사용된다(제6도 참조).
[상이한 IC 아키텍춰에서의 아키텍춰 사용]
본 명세서는 제2도의 전형적인 IC 아키텍춰내에 포함되는 것으로 이벤트 한정 아키텍춰를 설명하였으나, 다른 타입의 IC 아키텍춰에서도 용이하게 사용될 수 있다. 제19도 및 제20도에는 상기 아키텍춰를 구현한 두개의 IC 아키텍춰가 도시되어 있다. 이 IC 아키텍춰들은 입력 신호들, 입력 신호들을 수신하기 위한 검사 논리회로, 및 이벤트 한정 아키텍춰만을 갖는 점에서 제2도에 도시된 아키텍춰와는 상이하다.
[디지탈 신호 모니터]
제19도의 디지탈 신호 모니터 IC(392)는 TCR(14), TMEM(28), EQC(24), EQM(22) 및 TAP 인터페이스(12)를 포함한다. TAP는 검사 동작을 설정하고 검사결과를 추출하기 위해 IC(392)에 직렬 액세스를 제공한다. 디지탈 신호들은 모니터링을 하기 위해 TCR(14) 및 TMEM(28)에 입력되고 예상 데이타에 대해 비교하기 위해 EQC(24)에 입력된다. 동작중에, EQM(22)는 EQC(2B)로부터 또는 EQI 입력으로부터 이벤트 입력을 수신하여 선정된 프로토콜의 실행을 개시한다. 이벤트가 수신될때, 프로토콜이 개시되고 EQM(22)는 TCR(14)및 TMEM(28)이 데이타 모니터링을 개시하도록 제어를 출력한다. TCR(14)는 단일 데이타 입력 패턴을 샘플하거나 데이타 입력 패턴의 스트림(stream)을 압축하도록 설정될 수 있다. TMEM(28)은 다수의 데이타 입력 패턴을 기억하도록 설정될 수 있다. 프로토콜이 완료될 때, EQM(22)는 데이타 모니터링을 정지시키도록 TCR(14) 및 TMEM(28)에 제어를 출력한다. 검사가 완료된 후, TCR(14) 및 TMEM(28)내에 기억된 데이타는 검사를 위해 TAP 인터페이스를 통해 외부로 주사될 수 있다.
[아날로그 신호 모니터]
제20도의 아날로그 신호 모니터 IC(394)는 TCR(14), TMEM(28), EQC(24), EQM(22), TAP(12), 아날로그 멀티플렉서(396) 및 아날로그/디지탈 변환기(ADC)(398)을 포함한다. 아날로그 신호 모니터(394)는 아날로그 멀티플렉서(396)으로 입력되는 다수의 아날로그 신호를 수신한다. 멀티플렉서는 ADC(398)로 입력되는 아날로그 신호 입력들중 한개의 입력을 선택한다. ADC(398)은 아날로그 신호 입력을 아날로그 신호의 전압을 나타내는 디지탈 패턴으로 변환한다. 한개의 변환이 완료된 후, 변환이 반복된다. 그러므로, 아날로그 신호의 전압이 변경되면, ADC(398)의 디지탈 출력은 아날로그 신호의 새로운 전압을 반영하도록 변경된다.
아날로그 신호가 디지탈 형태로 변환된 후에, 아날로그 모니터는 제19도의 디지탈 신호 모니터와 같이 정확하게 동작한다.
ADC(398)로부터의 디지탈 패턴 출력은 모니터링을 위해 TCR(14) 및 TMEM(28)로 입력되고 예상 데이타에 대해 비교하기 위해 EQC(24)에 입력된다.
EQM(22)는 EQC(24)로부터 또는 EQI로부터 이벤트 입력을 수신하여 선정된 프로토콜의 실행을 개시한다. 이벤트가 수신되면, 프로토콜이 개시되고, EQM은 TCR(14) 및 TMEM(24)가 ADC로부터의 디지탈 패턴 출력의 모니터링을 개시하게 하도록 제어를 출력한다. TCR은 단일 디지탈 패턴을 샘플하거나 또는 디지탈 패턴의 스트림을 압축하도록 설정될 수 있다. TMEM(24)는 다수의 디지탈 패턴을 기억하도록 설정될 수 있다. 프로토콜이 완료될때, EQM(22)는 데이타 모니터링을 정지시키도록 TCR(14) 및 TMEM(24)에 제어를 출력한다. 검사가 완료된후, TCR(14) 및 TMEM(24)내에 기억된 데이타는 검사를 위해 TAP 인터페이스를 통해 외부로 주사될 수 있다.
본 발명은 1149.1 샘플 명령에 기술된 문제점들을 극복하고, 단일 데이타 패턴의 샘플링 바로 뒤에 다른 기능 검사를 실행하는 방법을 제공한다. 본 발명이 IC 자체에 구현될 수 있기 때문에, 온- 라인 검사 동작을 실행하도록 외부 제어 입력의 동기화 및 한정을 제공하기 위해 회로 보드에 추가되어야 하는 외부 회로가 없다.
또한, 본 발명이 검사 동작을 제어하기 위해 인에이블될때, IC의 TAP로 부터 독립적으로 동작하므로, 상이한 IC들이 상이한 시간에 상이한 검사를 하게 한다. 모든 IC들에 대한 글로벌 검사 제어 입력 대신에 각각의 IC내에 로컬 검사 제어를 갖는 것은 회로 보드 레벨에서 검사의 집중화를 줄일 수 있다.
중요한 것은, 호스트 IC가 정상적으로 동작할때 경계 검사 논리 회로를 인에이블할 수 있는 본 발명의 능력은 보드 설계상의 IC들 간의 정상 속도 데이타 전송의 검사를 가능하게 한다는 것이다. 이 방법을 사용하여, 한 기능 회로내의 다수의 IC들 사이에서 발생할 수 있는 타이밍 감도 및/또는 간헐적인 데이타 전송 실패를 검출할 수 있다. 이러한 타입의 실패들은 보드 설계를 물리적으로 프로빙하지 않고는 검출이 불가능하거나 매우 어렵다.
표면 장착 기술을 사용하는 보드 설계 기술 수준에서, 기능 보드를 프로빙하기 위한 물리적 액세스는 매우 제한적이며 어떤 경우 전혀 가능하지 않다. 또한, 매우 높은 속도의 기술을 사용하여 설계된 회로에서, 프로빙 계기에 관련된 전기 부하가 프로빙되는 신호의 동작에 영향을 미칠수 있어, 회로가 오작동할 수 있다.
본 발명은 보드 설계의 물리적 프로빙이 가능하지 않거나 보드의 동작에 프로빙이 영향을 미치는 경우 정상 속도 관련 문제들을 검사하는 대안적인 방법을 제공한다. 본 발명은 IC 내에 설계될 수 있기 때문에, 공장 검사실을 떠난후의 제품에도 남아있다. 그러므로, 제품 라이프 싸이클 동안에는 시스템 통합, 환경 검사, 현장 서비스 및 수리등을 하는 경우에도 재사용될 수 있다.
본 발명의 양호한 실시예를 상세하게 설명하였으나, 첨부된 특허 청구의 범위에 한정된 바와같은 본 발명의 원리 및 범위에서 벗어나지 않고도 여러가지 변화, 교체, 변경이 이루어질 수 있다는 것을 알아야 한다.