문맥 (context)
현대의 반도체 설계 방법 및 제조 기법들은 하나의 단일 다이상의 완전한 시스템, 소위 "시스템 칩" 또는 SOC의 생성을 가능하게 한다. 전형적으로, 그러한 시스템 칩은 수 백만개의 트랜지스터로 구성되며, 다양한 하드웨어 모듈을 포함하는 VLSI(very large integrated circuits)이다. 외부의 설계 전문 기술로부터 시기 적절한 방법 및 수단으로 이들 크고 복잡한 시스템 칩을 설계하기 위해, 재사용가능한 코어가 증가적으로 이용되고 있다. 코어는 다수의 SOC 설계에서 재사용하기 위한, 사전설계되고 사전입증된 설계 모듈이다. 코어의 예로는, CPU, DSP, 미디어 코-프로세서(media co-processors), 통신 모듈, 메모리 및 혼합 신호 모듈이 있다.
그들의 제조 프로세스에서의 결함으로 인해, 모든 집적 회로는, 제조 결함에 대해 개별적으로 테스트될 필요가 있다. 시스템 칩도 그러한 규칙에 대해 예외가 아니다. 모듈러 테스트 개발이, SOC에 대해 증가적으로 이용된다. 내장된 아날로그 회로 및 메모리와 같은 비논리 모듈은, 그들의 "비정상(abnormal)" 회로 구조로 인해, 독립형 테스트(stand-alone testing)를 요구한다. 구현에 대한 세부 사항이 알려지지 않은 하드(레이아웃) 코어 및 암호화 코어와 같은 블랙 박스형 제3자 코어(black-boxed third-party cores)는, 그들의 제공자에 의해 공급된 테스트에 의해 테스트될 필요가 있으며, 따라서, 독립형 테스트를 또한 요구한다. 더욱이, 구현에 대한 세부 사항이 알려진 논리 모듈의 경우에도, 모듈러 테스트 개발은 매력적인 대안이다. 여기서, 모듈러 "분할 및 획득(divide-and-conquer)" 테스트 개발 방안은, 테스트 생성 계산 시간 및 관련된 데이터 볼륨을 감소하는데 도움을 준다. 마지막으로, 모듈러 테스트 방안은, 코어 또는 모듈이 다수의 SOC 설계에 이용되는 경우에 특히 이익이 되는 테스트 재사용을 가능하게 한다.
모듈러 테스트 개발을 가능하게 하도록, 내장형 모듈은 그의 주변 회로로부터 분리되어야 하고, 전기 테스트 액세스가 제공될 필요가 있다. Zorian 등에 의한 Proceedings of the IEEE International Test Conference(ITC), pages 130-143, Washington DC, October 1998의 논문은 SOC의 모듈러 테스트를 가능하게 하는 일반적인 개념적 테스트 액세스 아키텍처를 기술하고 있다. 테스트 액세스 아키텍처는 테스트중인 모듈당 3개의 주요 요소로 구성된다. 이들은 (1) 테스트 패턴 소스 및 싱크, (2) 테스트 액세스 메카니즘(TAM), 및 (3) 랩퍼(wrapper)를 포함한다. 랩퍼는 모듈을 그의 주변으로부터 분리시킬 수 있고, 모듈에 대한 기능적 액세스와 TAM을 통한 테스트 액세스 사이의 스위칭 기능을 제공할 수 있다. SOC 테스트 액세스 아키텍처는 개별적인 TAM의 수 및 그들의 폭, TAM에 대한 모듈의 할당, 및 테스트 랩퍼의 설계를 결정한다.
전형적으로, 테스트 액세스 아키텍처의 설계는, TAM 와이어의 전체 양 "w" 및 테스트될 모듈의 수 "m"에 의해 제약을 받는다. TAM 와이어의 수 w는, 예를 들면, 이용가능한 IP 핀의 수, TAM 와이어링 영역의 양 및 사용하고자 하는 SOC 설계자에 의해서, 또는 다른 실제적인 제약에 의해 지정된다. w 및 테스트될 모듈의 수 m이 주어지는 경우, SOC 설계자는 개별적인 TAM의 수 및 그들의 개별적인 폭 wi( ) 및 TAM에 대한 모듈의 할당(모든 모듈은 정확하게 하나의 TAM에 접속됨)을 결정해야 한다.
한 가지 가능성은, 각각의 모듈에 대해 개별적인 TAM을 생성하는 것이다. 이것은 모듈의 수 m이 TAM 와이어의 수 w 이하인 경우에만 작용한다. 이러한 타입의 테스트 액세스 아키텍처는, "분배(Distribution)" 아키텍처라고 지칭된다. 분배 아키텍처 설계의 도전 과제는, 개별적인 TAM 폭 wi를 최적화하여, 전체 테스트 시간이 최소화되도록 하는 것이다. 다른 가능성은 모든 모듈이 접속되는, 폭 w의 하나의 단일 TAM을 생성하는 것이다. 그러한 테스트 액세스 아키텍처는 "데이지체인(Daisychain)" 아키텍처라고 지칭된다.
분배 및 데이지체인 아키텍처는, "하이브리드 TAM 아키텍처" 라고 지칭되는 아키텍처의 전체 스펙트럼의 2개의 극단을 형성한다. 이들 아키텍처는 다수의 개별적인 TAM으로 구성되는 반면, 모든 TAM은 다수의 모듈의 테스트 액세스 요구를 서비스한다.
도 1은 SOC에 대한 전형적인 하이브리드 TAM 아키텍처를 도시한다. SOC는 개별적으로 테스트될 필요가 있는 28개의 모듈(3)을 포함한다(즉, m = 28). 이러한 테스트 액세스 아키텍처(1)는 9개의 개별적인 TAM(51 내지 59)으로 구성된다. 이러한 예에서, TAM(51 내지 59)은 다음과 같은 개별적인 폭, 즉, 23, 6, 4, 3, 5, 10, 6, 6, 1을 갖는다. 이것은 64 와이어의 전체 TAM 폭 w를 제공한다. 이러한 아키텍처에 대한 모듈 할당 벡터는 (56; 58; 54; 53; 52; 56; 54; 57; 53; 59; 56; 55; 59; 59; 59; 59; 53; 52; 53; 53; 57; 59; 59; 59; 55; 51; 59; 59)이다. 즉, 28개의 모듈에 대해, 제 1 모듈(3)은 TAM(56)으로 할당되고, 제 2 모듈은 TAM(58)으로 할당되고, 제 3 모듈은 TAM(54)으로 할당되는 등의 방식으로 된다.
따라서, 도 1은 개별적인 TAM(51 내지 59)의 폭 및 TAM(51 내지 59)에 대한 다양한 모듈(3)의 할당을 도시한다. 테스트 액세스 아키텍처의 설계는, 전체 SOC 테스트 비용에서의 두 가지의 주된 파라미터인, SOC의 테스트 적용 시간에 대해서 뿐만 아니라, 테스터 채널당 요구된 벡터 메모리 깊이에 대해서 큰 영향을 미친다.
스펙트럼의 2개의 극단, 즉, 분배 및 데이지체인 아키텍처는 자동화된 테스트 액세스 아키텍처 설계 툴에 대한 액세스를 갖지 않는 SOC 설계 팀에게 널리 이용됨을 입증하였지만, 연구에 의하면, 사실상 모든 경우에, 이들 2개의 아키텍처 결과는 하이브리드 TAM 아키텍처보다 상당히 더 긴 테스트 시간을 가짐을 알 수 있다.
상기 내용으로부터, 많은 상황에서, 요구된 테스터 벡터 메모리 및 테스트 적용 시간을 최소화하기 위해, 다수의 모듈이 예를 들면, TAM(52, 53, 54, 55, 56, 57, 59)에 도시된 바와 같은 공통의 TAM에 접속되는 테스트 액세스 아키텍처를 설계하는 것이 바람직한 것으로 결론을 내릴 수 있다.
다수의 모듈(3)이 이러한 방식으로 공통 TAM(5)에 접속될 때, 해당 TAM(5)에서의 각 모듈(3)의 테스트 데이터가 SOC 핀에 도달하는 것이 보장되어야 한다. 따라서, 각 모듈(3)은 다른 모듈의 테스트 패턴 데이터가 이러한 모듈을 따라 전송될 수 있는 "투과 모드(transparent mode)"를 가질 필요가 있다. 테스트 패턴 데이터의 전송은 테스트 자극 데이터를 테스트되는 모듈로 전송하는 것 및 테스트되는 모듈로부터 테스트 응답 데이터를 전송하는 것을 포함한다. 이러한 "투과 모드"를 제공하는 두 가지의 알려진 예가 도 2a 및 2b에 도시되어 있다. 두 도면에서의 투과 테스트 액세스 경로는 굵은 라인에 의해 표시된다.
도 2a에서, 이하 "스루 모듈(through module)"이라고 지칭되는 테스트 액세스 방법이 도시된다. 모듈(3)은 글로벌 스캔 인에이블 신호(27)(se)를 포함하는 다수의 테스트 신호를 수신하는 테스트 랩퍼(7)로 도시된다. 글로벌 스캔 인에이블 신호(27)는 모듈을 스캔 테스트 모드에 위치시키기 위해 제공된다. 이러한 구성에 따르면, TAM 입력(21) 및 TAM 출력(23)은, 랩퍼 입력 셀, 모듈 내부 스캔 체인(25) 및 랩퍼 출력 셀을 그들의 요소로서 갖는 접속된 스캔 체인을 형성한다. 이것은 이들 모든 요소를 통해 스캔할 수 있도록 한다. 이러한 방안의 이점은, 그것이 추가적인 하드웨어를 요구하지 않는다는 것인데, 그 이유는, 단순하게 현존하는 랩퍼 및 스캔 체인 하부구조를 이용하기 때문이다. 이러한 방안의 단점은, 결과적인 테스트 시간이 이들 랩퍼 스캔 체인의 길이에 의존하며, 따라서, 극단적으로 길어질 수 있다는 것이다. 즉, 테스트 자극 데이터가 (가능하게는 다수의 다른 모듈을 통해) 테스트중인 모듈로 시프트된 후, 테스트 응답 데이터가 (다시 가능하게는 다수의 다른 모듈을 통해) SOC 핀으로 시프트되어야 한다. 하나의 테스트로부터의 테스트 응답 데이터는, 다음 테스트 자극 데이터가 런칭(launching)되고, 대응하는 테스트 응답 데이터가 캡처되기 전에, 시프트되어야 하며, 그렇지 않은 경우, 제 1 테스트로부터의 테스트 응답 데이터는 다른 모듈에 의해 훼손될 것임을 이해할 것이다.
도 2b에서, 이하 "비아 바이패스(via bypass)"라고 지칭되는 테스트 액세스 방법이 도시된다. 앞에서와 같이, 테스트 랩퍼(7)는 글로벌 스캔 인에이블 신호(27)(se)를 포함하는 복수의 테스트 신호를 수신한다. 이러한 배열에 따르면, 테스트 액세스 방법은 바이패스 와이어(28) 및 바이패스 논리(29)를 포함하는 전용 하드웨어를 이용한다. 바이패스의 구현을 위해 필요한 이러한 추가적인 온-칩(on-chip) 하드웨어를 이용한 댓가로서, 이러한 모듈을 따라 다른 모듈의 테스트 패턴 데이터를 전송하는데 요구되는 시간이 실질적으로 감소된다. 즉, 테스트 자극 데이터를 테스트중인 특정 모듈로 전송할 때, 테스트 자극 데이터는 테스트중인 모듈 이전에 위치된 모든 모듈을 바이패스하며, 테스트된 모듈로부터의 테스트 응답 데이터는 테스트중인 모듈 이후에 위치된 모든 모듈을 바이패스한다.
이제, 도 2a 및 2b의 테스트 액세스 아키텍처에 따라 2개의 모듈이 각각 접속되는 방법을 개략적으로 도시하는 도 3a 및 3b와 관련하여, 전술한 배열의 동작을 설명할 것이다. 간략성을 위해 단지 2개의 모듈이 도시되었지만, 본 발명은 이러한 방식으로 접속되는 임의의 수의 모듈에 마찬가지로 적용가능함을 이해할 것이다.
도 3a에서, 모듈 A는 "스루 모듈" 포맷으로 모듈 B에 접속된다. 모듈 A는 입력 TAM 와이어(35)로부터 테스트 자극 데이터를 수신하는 내부 스캔 체인(31, 33)을 포함한다. 모듈 A의 스캔 체인(31, 33)의 출력(37)은 모듈 B의 내부 스캔 체인(39, 41)의 입력(38)을 형성한다. 스캔 체인(39, 41)의 출력(43)은, 이번에는 다른 모듈 또는 SOC 핀(도시되지 않음)으로 전달된다. 공통 스캔 인에이블 신호(27)(se)는 각각의 모듈 A 및 B에 접속된다. 따라서, 동작시에, 모듈 A를 테스트하는 경우, 테스트 자극 데이터가 모듈 A로 시프트되고, 스캔 인에이블 신호(27)가 활성화된다. 이것은 모듈 A 및 B가 함께 스캔 테스트 모드로 진입하도록 함으로써, 모듈 A에서의 테스트 자극 데이터가 런칭되고, 테스트 응답 데이터가 캡처되도록 한다. 테스트 자극 데이터가 런칭되고, 테스트 응답 데이터가 캡처되면, 스캔 인에이블 신호(27)는 비활성화되고, 모듈 A로부터의 테스트 응답 데이터는 모듈 B를 통해 시프트되어야 한다. 그러나, 테스트 응답 데이터가 출력에 대한 그의 경로상에서 훼손되지 않도록, 스캔 인에이블 신호(27)는, 테스트 응답 데이터가 모듈 B를 통해 시프트될 때까지, 다시 활성화될 수 없으며, 그렇지 않은 경우, 테스트 응답 데이터는 모듈 B에 의해 훼손될 것이다. 이것은 테스트 시간이 증가되도록 하는데, 그 이유는, 모듈 A에 대한 다음 테스트 자극 데이터가, 이전의 테스트로부터의 테스트 응답 데이터가 과거의 모듈 B로 시프트될 때까지, 런칭 (및 테스트 응답 데이터가 캡처)될 수 없기 때문이다. 전술한 것과 유사한 방법으로, 모듈 B를 테스트하기 위해, 모듈 B에 대한 테스트 자극 데이터는 모듈 A를 통해 시프트될 필요가 있으며, 그것은 또한 테스트 시간의 증가를 초래한다. 상기의 문제점은, 2개보다 많은 모듈이 동일한 TAM에 직렬로 접속되는 경우에 더욱 커지게 된다.
반대로, 도 3b는 2개의 모듈 A 및 B가 "바이패스" 모드로 접속되는 방법을 도시한다. 이러한 배열에 따르면, 아키텍처는 다중화기(47, 49)를 포함하는 추가적인 바이패스 하드웨어 및 추가적인 바이패스 와이어(51, 53)를 포함한다. 사실상, 모듈 A에 대한 입력 와이어(35)는 다중화기(47)에도 접속된다. 이것은 모듈 B가 테스트되는 경우, 입력 와이어(35)로부터의 테스트 자극 데이터가 와이어(51) 및 다중화기(47)를 통해 모듈 B의 입력에 직접적으로 전달됨으로써, 모듈 A를 바이패싱함을 의미한다. 마찬가지로, 모듈 A가 테스트되는 경우, 모듈 A로부터 와이어(37)상에 출력된 테스트 응답 데이터는 다중화기(47), 바이패스 와이어(53) 및 다중화기(49)를 통해 전송될 수 있으므로, 모듈 B를 바이패싱하게 된다.
이러한 배열에서, 모듈 A 및 B 둘다 공통 스캔 인에이블 신호(27)를 수신함을 주지해야 한다. 그러나, 모듈 A를 바이패싱하기 위해 전용 바이패스 신호(55)가 제공되고, 모듈 B를 바이패싱하기 위해 전용 바이패스 신호(57)가 제공된다.
기본적으로, 전술한 두 가지의 대안들은 (1) 긴 테스트 시간을 댓가로 하는 작은 실리콘 영역 대 (2) 추가적인 실리콘 영역을 댓가로 하는 짧은 테스트 시간 사이의 트레이드오프를 제공한다. 각각의 선택사양의 이점 및 비용을 이해하기 위해, 57개의 상이한 모듈 및 142 와이어의 전체 테스트 레일 폭을 갖는 전형적인 SOC 설계에 대한 트레이드오프를 설명할 것이다. 모든 와이어 및 모든 모듈에 대한 바이패스를 구현하는 것은 57 x 142 = 8094의 추가적인 다중화기 및 플립플롭이 필요할 것이다. 추가적인 플립플롭의 관점에서, 이것은 전체 플립플롭 카운트에 3%를 추가하게 된다. 이것으로부터, 모든 모듈에 대해 바이패스를 추가하는 실리콘 영역 비용은 큰 것으로 결론지을 수 있다. 다른 한편, 바이패스를 구현하지 않는 것은 전체 테스트 데이터 볼륨을 1.52 Mbit/pin으로부터 1.73 Mbit/pin으로 12%만큼 증가시킨다. 그러므로, 바이패스를 구현하지 않는 것의 추가적인 테스트 시간 비용은 마찬가지로 큰 것이다.
발명의 개요
상기와 같은 관점에서, 본 발명의 목적은 달성될 바이패스 구현의 보다 짧은 테스트 시간 및 실질적으로 낮은 실리콘 영역 비용을 가능하게 하는 테스트 액세스 아키텍처 및 방법을 제공하는 것이다.
본 발명에 따르면, 전자 회로에서의 모듈을 테스트하는 테스트 액세스 아키텍처가 제공되며, 테스트 액세스 아키텍처는,
자신에 직렬 접속된 복수의 모듈을 가지며, 테스트 자극 데이터를 테스트중인 모듈로 전송하고, 테스트 응답 데이터를 테스트중인 모듈로부터 전송하도록 배열되는 테스트 액세스 메카니즘(TAM)과,
상기 모듈을 테스트 모드에 위치시키기 위해 제공된 글로벌 인에이블 신호와,
상기 글로벌 인에이블 신호와 관련 모듈 사이에 제공되어, 상기 글로벌 인에이블 신호가 그의 관련된 모듈로 전달되는지의 여부를 제어하도록 배열되는 제어 회로를 포함한다.
본 발명은 바이패스 방법에 의해 요구되는 정도로 실리콘 영역을 증가시키지 않으면서, 테스트 시간이 감소될 수 있도록 하는 이점을 갖는다.
바람직하게, 제어 회로는 해당 특정 모듈에 대한 전용 바이패스 신호에 의해 제어된다.
제어 회로는 글로벌 인에이블 신호 및 전용 바이패스 신호를 수신하도록 접속되고, 글로벌 인에이블 신호 및 전용 바이패스 신호의 각각의 상태에 근거하여 로컬 인에이블 신호를 그의 관련된 모듈에 제공하도록 배열된다.
이것은 제어 회로가, 그의 관련된 모듈이 테스트되는 경우, 글로벌 인에이블 신호를 전달하고, 그의 관련된 모듈이 테스트되지 않는 경우, 글로벌 인에이블 신호를 차단하도록 하는 이점을 갖는다.
바람직하게, 제어 회로는 OR 게이트이다. 이와 달리, 이용되는 제어 신호에 따라, 제어 회로는 AND 게이트와 같은 다른 논리 게이트일 수 있다.
바람직하게, 제어 회로는 그의 관련된 모듈의 테스트 랩퍼내에 위치된다. 이와 달리, 제어 회로는 SOC의 테스트 제어 블록에, 또는 모듈 그 자체내에 위치될 수 있다.
바람직하게, 테스트 자극 데이터 및 테스트 응답 데이터는 파이프라인 방식으로 처리되어, 테스트 시간이 더 감소될 수 있도록 한다.
본 발명의 다른 양상에 따르면, 전자 회로에서의 모듈을 테스트하되, 모듈은 테스트 액세스 메카니즘(TAM)에 직렬 접속된 복수의 모듈들 중 하나이고, 테스트 액세스 메카니즘은 테스트 자극 데이터를 테스트중인 모듈로 전송하고, 테스트 응답 데이터를 테스트중인 모듈로부터 전송하도록 배열되는 방법이 제공되며, 이러한 방법은,
제 1 세트의 테스트 자극 데이터를 테스트중인 모듈에 로딩(loading)하는 단계와,
활성화되는 글로벌 인에이블 신호에 응답하여 모듈을 테스트하는 단계와,
테스트중인 모듈로부터 캡처된 테스트 응답 데이터를 언로딩(unloading)하는 단계를 포함하며,
테스트 단계 동안, 테스트 액세스 메카니즘(TAM)에 접속된 다른 모듈이 동작의 전송 모드에 위치되어, 다른 모듈이 테스트중인 모듈로 로딩되는 제 2 세트의 테스트 자극 데이터, 또는, 테스트중인 모듈로부터 언로딩되는 이전의 테스트 응답 데이터를 훼손하지 않도록 한다.
지시문 (instruction)
주어진 원문을 읽고 필요한 정보를 파악하여, 원문에 근거해 질문에 답하라.
질문 (question)
'스루 모듈(through module)' 방식에서 테스트 응답 데이터가 모듈에 의해 훼손되지 않기 위해 충족되어야 하는 조건은 무엇인가?
추론 과정 (compact_reasoning)
-
1과제 해석
task_interpretation스루 모듈 방식에서 테스트 응답 데이터의 무결성을 유지하기 위한 특정 조건을 찾는 것이다.
-
2정보 추출
information_extraction스루 모듈 방식의 동작 과정과 데이터 훼손 가능성이 언급된 부분을 추출한다.
- 테스트 응답 데이터가 (다시 가능하게는 다수의 다른 모듈을 통해) SOC 핀으로 시프트되어야 한다.
- 제 1 테스트로부터의 테스트 응답 데이터는 다른 모듈에 의해 훼손될 것임을 이해할 것이다.
-
3근거 선택
evidence_selection데이터 훼손을 방지하기 위한 구체적인 제약 조건을 선별한다.
- 테스트 응답 데이터가 출력에 대한 그의 경로상에서 훼손되지 않도록, 스캔 인에이블 신호(27)는, 테스트 응답 데이터가 모듈 B를 통해 시프트될 때까지, 다시 활성화될 수 없으며
-
4논리 통합
logical_integration스캔 인에이블 신호의 활성화 시점과 데이터 전송 완료 시점 사이의 관계를 파악한다.
- 스캔 인에이블 신호(27)는, 테스트 응답 데이터가 모듈 B를 통해 시프트될 때까지, 다시 활성화될 수 없으며, 그렇지 않은 경우, 테스트 응답 데이터는 모듈 B에 의해 훼손될 것이다.
-
5결론 도출
conclusion_formulation테스트 응답 데이터가 모듈을 통과하여 시프트되는 동안 스캔 인에이블 신호가 재활성화되지 않아야 한다는 결론을 도출한다.
- 스캔 인에이블 신호(27)는, 테스트 응답 데이터가 모듈 B를 통해 시프트될 때까지, 다시 활성화될 수 없으며
-
6답변 생성
answer_generation질문에 대해 명확한 조건을 기술하여 답변을 작성한다.
- 스캔 인에이블 신호(27)는, 테스트 응답 데이터가 모듈 B를 통해 시프트될 때까지, 다시 활성화될 수 없으며
최종 답변 (final_answer)
테스트 응답 데이터가 출력 경로상에서 훼손되지 않으려면, 테스트 응답 데이터가 해당 모듈(예: 모듈 B)을 통해 시프트될 때까지 스캔 인에이블 신호(27)가 다시 활성화되지 않아야 한다.
핵심 해석 (core_interpretation)
스루 모듈 방식에서 테스트 응답 데이터가 훼손되지 않으려면, 해당 응답 데이터가 다음 모듈을 통해 시프트될 때까지 스캔 인에이블 신호가 다시 활성화되지 않아야 한다.