KR100735169B1 - 버스 경합을 방지하기 위한 시스템 및 방법 - Google Patents
버스 경합을 방지하기 위한 시스템 및 방법 Download PDFInfo
- Publication number
- KR100735169B1 KR100735169B1 KR1020017005463A KR20017005463A KR100735169B1 KR 100735169 B1 KR100735169 B1 KR 100735169B1 KR 1020017005463 A KR1020017005463 A KR 1020017005463A KR 20017005463 A KR20017005463 A KR 20017005463A KR 100735169 B1 KR100735169 B1 KR 100735169B1
- Authority
- KR
- South Korea
- Prior art keywords
- bus
- output enable
- functional block
- integrated circuit
- test
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318505—Test of Modular systems, e.g. Wafers, MCM's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/221—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Semiconductor Integrated Circuits (AREA)
- Tests Of Electronic Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Bus Control (AREA)
Abstract
본 발명은 테스팅 하에서 다기능 집적 회로 내의 버스 경합을 방지하는 시스템에 관한 것이다. 상기 시스템은 집적 회로의 기능을 테스트하도록 동작가능한 일련의 테스트 입력을 받아들이도록 구성된 집적 회로(100)로 구현된다. 상기 집적 회로는 복수의 기능 블록(101-104)을 서로 결합하는 적어도 하나의 버스(110)를 포함한다. 적어도 제 1 기능 블록 및 제 2 기능 블록은 집적 회로에 포함되고, 상기 제 1 기능 블록 및 제 2 기능 블록은 모두 상기 버스에 결합되어 상기 테스트 입력을 받아들이도록 결합된다. 출력 인에이블 제어기는 또한 상기 집적 회로 내에 포함된다. 상기 출력 인에이블 제어기는 제 2 기능 블록에 결합되어 제 1 기능 블록의 대응 출력이 활성화되면 제 2 기능 블록의 적어도 하나의 출력을 디스에이블하도록 동작한다. 이것은 제 1 기능 블록 및 제 2 기능 블록 사이의 버스(110)에 대한 경합을 발생하지 않고 제 1 기능 블록 및 제 2 기능 블록을 통하여 테스트 입력이 전파될 수 있도록 보장한다.
Description
본 발명은 집적회로 디바이스의 테스트 용이화 설계(design-for-testability) 분야에 관한 것이다. 본 발명은 특히, 내부 스캔 테스트 동안 집적회로 디바이스 내의 버스 경합을 방지하고자 내부 버스들을 제어하는 시스템 및 방법에 관한 것이다.
컴퓨터 시스템, 소프트웨어 애플리케이션 및 이들 주위에 구축된 디바이스 및 프로세스들은 계속해서 강력해지고 있으며 복잡해지고 있다. 이러한 시스템에 대한 사회의 의존도도 마찬가지로 증가하고 있으며, 설계자들이 의도한 특성을 시스템이 준수하는 것은 필수적이다. 통상적으로, 시스템이 보다 강력해지고 복잡해질수록, 실용성 및 유용성이 증가한다. 그러나, 이들 컴퓨터 및 소프트웨어 구현 시스템 및 프로세스가 보다 강력해짐에 따라, 시스템 내의 결함을 검출하여 수정하는 것은 더욱 어렵게 되고 있다.
집적회로, 특히, 집적회로의 로직 부분이 복잡해지고 보다 조밀해짐에 따라, 상기 집적회로는 정확하고 완전한 기능의 보장을 위한 테스트가 점진적으로 어렵게 되었다. 예를 들면, 현재의 기술로는, 집적회로 다이(die) 내에 제작된 트랜지스터의 전체 수가 증가함에 따라, 조립 공정 라인의 집적회로를 테스트하는데 걸리는 시간도 증가한다. 따라서, 최신의 대용량 고밀도 집적회로에 대한 테스트 비용이 크게 증가할 수 있다. 집적회로 설계를 나타내는 다양한 넷리스트(netlists)를 분석하여 그로부터 자동 테스트 장비(ATE; automated test equipment) 시스템에서 디바이스를 테스트하는데 사용되는 테스트 패턴(예를 들면, 테스트 프로그램 또는 테스트 벡터라고도 함)을 생성하는데 아주 정교한 테스트 프로그램인 자동 테스트 패턴 생성(ATPG; automated test pattern generation) 프로그램이 이용된다.
ATPG 프로그램 또는 툴의 목적은 가능한 한 효율적으로 정확하고 높은 커버리지(coverage)(예를 들면, 집적회로의 대부분의 구현 회로를 테스트) 테스트 패턴을 생성하여 비용을 절감하는 것이다. 따라서, 로직 합성 과정에서 중요시되고 있는 부분은 ASIC 및 원래의 테스트 용이화를 위한 다른 복잡한 집적회로의 설계를 포함한다. 이것은 테스트 용이화 설계(designing for testability) 또는 DFT라고 지칭된다.
DFT 프로세스의 한가지 문제가 되는 측면은 하나 이상의 내부 버스 상에 다수의 기능 유닛을 포함하는 고밀도의 다기능 집적 회로를 필요로 한다는 것이다. 내부 3 상태 신호 또는 다수의 드라이버를 갖는 버스를 이용하는 것이 현 기술 수준의 시스템 온 칩(system-on-a-chip) 설계에서 일반적이다. 또한, 복잡한 설계를 테스트하기 위해 내부 스캔 테스팅 방법을 이용하는 것이 일반적이다. 일반적으로, 종래 기술의 설계의 이들 두 측면은 서로간에 설계가 상반되며 서로에 대해 테스트 충돌을 발생한다.
현재의 ATPG 툴은 그러한 구조들을 해석하여 제어하는데 어려움을 갖지만, 그럼에도 불구하고 단지 하나의 드라이버만이 임의의 주어진 시간에 공유 신호를 능동적으로 구동하도록 요구한다. 복수의 능동 드라이버는 예상치 못한 테스트 결과를 생성할 수 있으며 제조 테스트 동안 잠재적으로 구성요소들을 손상시킬 수 있다. 이 문제는, 복수의 드라이버가 각각의 버스 드라이버를 활성화시키기 위해 자율 회로(autonomous circuit)를 포함하는 고유의(unique) 기능 블록들로부터 독립적으로 제어되는 경우 해결하기가 더욱 어렵다.
하나 이상의 내부 버스에 대해 경쟁하는 다수의 기능 유닛의 문제를 해결하기 위한 종래의 한 해결책은 모든 버스 경합 문제들을 해결하기 위해 ATPG 툴을 이용하는 방법을 실현하는 것이다. 그러나, 이것은 결함의 커버리지를 더 낮게 하여 패턴을 생성하는데 더 긴 시간이 걸리게 한다. 또한, 많은 ATPG 프로그램 및 툴들은 이 해결책을 지원하지 않는다.
또한, 버스 경합 해결 및 방지를 지원하는 툴들은 이것을 단지 제한적으로만 성공시킬 수 있다. 이들은 임의의 신호 또는 버스 상에서 버스 경합을 발생시키는 ATPG 패턴이 생성되지 않도록 보장할 수 있지만, 때론 상기 툴들이 그렇게 작용하는 것이 어렵다. 그 결과 종종 컴파일에 장시간이 소모되고 결함 커버리지가 아주 빈약하게 된다.
따라서, 집적 회로 디바이스의 복수의 기능 유닛들 가운데 임의의 잠재적인 버스 경합을 제거할 수 있도록 하는 해결책이 요구된다. 복수의 기능 유닛들이 버 스 경합을 제거하도록 복수의 버스 드라이버를 능동적으로 제어하는 해결책이 요구된다. 상기 요구된 해결책은, 설계에 의해, ATPG 툴이 생성할 수도 있는 임의의 스캔 테스트 패턴이 주어졌을 때 버스 경합이 발생할 수 없도록 하여, 결과적으로 훨씬 더 높은 결함 커버리지를 갖도록 하는 테스트 패턴을 생성하도록 보장한다.
상기 요구된 해결책은 구현하기가 쉽고, 구성이 일정하며, 최소 게이트 영역을 가지며 설계시 시스템 성능에 최소한의 영향을 미친다.
본 발명은 집적회로 디바이스의 복수의 기능 유닛들 간에 임의의 잠재적인 버스 경합을 제거하기 위한 방법 및 시스템에 관한 것이다. 본 발명은 복수의 기능 유닛들이 일련의 테스트 입력들(예를 들면, ATPG 테스트 패턴들, 벡터들 등)에 의해 자극을 받을 때 상기 기능 유닛들 간에 버스 경합을 제거하도록 복수의 버스 드라이버를 능동적으로 제어하는 해결책을 제공한다. 본 발명의 방법 및 시스템은 설계에 의해, ATPG 툴이 생성할 수도 있는 임의의 스캔 테스트 패턴이 주어졌을 때 버스 경합이 발생할 수 없도록 하여, 결과적으로 훨씬 더 높은 결함 커버리지를 갖도록 ATPG 툴로 하여금 테스트 패턴을 생성하도록 보장한다. 또한, ATPG 툴이 버스 경합이 발생될 수 없도록 보장할 필요가 없기 때문에, 테스트 패턴들이 훨씬 빠른 컴파일 시간으로 생성될 수 있다. 본 발명의 시스템은 쉽게 구현되며, 구성이 일정하며, 최소 게이트 영역을 가지며, 집적 회로 디바이스의 전체 설계에 대해 시스템 성능에 미치는 영향이 최소로 된다.
일실시예에서, 본 발명은 회로가 테스트될 때, 다기능 집적 회로에서 버스 경합을 방지하는 시스템으로서 구현된다. 상기 시스템은 집적 회로의 기능을 테스트하는 일련의 테스트 입력을 수용하는 집적 회로 내에 구현된다. 집적 회로는 복수의 기능을 통신 결합하기 위한 적어도 하나의 버스를 포함한다. 적어도 제 1 기능 블록 및 제 2 기능 블록이 집적회로 내에 포함된다. 제 1 기능 블록 및 제 2 기능 블록은 모두 버스(예를 들면, PCI 버스)에 결합되며, 외부적으로 결합된 ATE 디바이스로부터 테스트 입력을 받아들이도록 결합된다. 일련의 출력 인에이블 제어기가 또한 제어 회로 내에 포함된다. 상기 출력 인에이블 제어기는 두 기능 블록 모두에 결합되며, 제 1 기능 블록의 대응하는 출력이 활성화되면 제 2 기능 블록의 출력 드라이버를 디스에이블하도록 동작할 수 있다. 이로서, 테스트 입력은 버스에 대한 경합 없이 제 1 기능 블록 및 제 2 기능 블록과, 임의의 다른 더 낮은 우선 순위의 블록들을 통하여 전파될 수 있다.
도 1은 본 발명의 실시예에 따른 PCI(peripheral component interconnect)를 도시한 도면.
도 2는 본 발명의 일실시예에 따른 도 1의 집적 회로의 상세도.
도 3은 본 발명의 일실시예에 따른, 기존의 기능 블록을 수정하는데 필요한 로직을 도시한 도면.
도 4는 본 발명의 일실시예에 따른 테스트 블록의 OE 제어의 일례의 내부 로 직을 도시한 도면(3상 드라이버는 액티브 로우 출력 인에이블 로직을 갖는다).
도 5는 본 발명의 일실시예에 따른, 액티브 하이 출력 인에이블 로직을 갖는 3상 드라이버에 대해 구성된 테스트 블록에 대한 OE 제어의 일례를 도시한 도면.
도 6은 본 발명의 제 1의 대안적인 실시예에 따른 시스템을 도시한 도면.
도 7은 본 발명의 제 1의 대안적인 실시예에 따른 PCI 버스 중재기(arbiter)를 도시한 도면.
도 8은 본 발명의 제 1의 대안적인 실시예에 따른, PCI 버스의 어드레스/데이터 부분에 대한 출력 인에이블을 생성하기 위해 기능 블록에 의해 사용된 통상적인 로직을 도시한 도면.
도 9는 스캔 테스트 모드 동안 어떠한 버스 경합도 없도록 보장하기 위해 기능 블록에 의해 요구된 제 1의 대안적인 실시예에 따른 로직을 도시한 도면.
도 10은 출력 인에이블이 액티브 로우와 반대인 액티브 하이인 제 1의 대안적인 실시예에 따른 로직을 도시한 도면.
도 11은 본 발명의 제 2의 대안적인 실시예에 따른 테스트 전용 블록(Test Only block)을 도시한 도면.
도 12는 본 발명의 일실시예에 따른 오퍼레이팅 프로세스 단계들의 흐름도.
이하, 집중형 제어 자원을 이용하여 내부 스캔 테스트를 하는 동안 버스 경합을 방지하기 위해 내부 버스를 제어하는 방법 및 시스템에 대한 본 발명의 바람직한 실시예를 참조한다. 이들 실시예는 첨부한 도면에 도시되어 있다. 본 발명은 바람직한 실시예와 함께 설명되지만, 본 발명을 이들 실시예에 한정하고자하는 것은 아님을 주지하라. 오히려, 본 발명은 첨부된 청구범위에 정의된 본 발명의 정신 및 범주 내에 포함될 수도 있는 대안들, 변형들 및 이에 상당하는 것들을 포함한다. 또한, 이하의 본 발명의 상세한 설명에서, 본 발명의 철저한 이해를 위해 제공되는 다수의 특정 상세가 개시되어 있다. 그러나, 당업자라면, 본 발명이 이들 특정한 상세 없이도 실시될 수도 있음을 알 수 있을 것이다. 다른 예에서, 본 발명의 특징들을 쓸데없이 불명료하게 하지 않도록 하기 위해, 공지된 방법, 처리과정, 컴포넌트, 회로들은 상세히 설명하지 않았다.
본 발명은 집적 회로 디바이스의 다수의 기능 블록들 가운데 임의의 잠재적인 버스 경합을 제거하기 위한 방법 및 시스템에 관한 것이다. 본 발명은, 다수의 기능 블록이 일련의 테스트 입력(ATPG 테스트 패턴들, 벡터들 등)에 의해 활성화될 때 상기 기능 블록이 기능 블록들 중에서 버스 경합을 제거하도록 다수의 버스 드라이버를 능동적으로 제어하는 해법을 제공한다. 본 발명의 방법 및 시스템은 설계에 의해, ATPG 툴이 생성할 수도 있는 임의의 스캔 테스트 패턴이 주어졌을 때 버스 경합이 발생할 수 없도록 하여, ATPG 툴로 하여금 결과적으로 훨씬 더 높은 결함 커버리지를 갖는 테스트 패턴을 생성하도록 보장한다. 또한, ATPG 툴이 버스 경합이 발생될 수 없도록 보장할 필요가 없기 때문에, 테스트 패턴들이 훨씬 빠른 컴파일 시간으로 생성될 수 있다. 본 발명의 시스템은 쉽게 구현되며, 구성이 일정하며, 최소 게이트 영역을 가지며, 집적 회로 디바이스의 전체 설계에 대해 시스템 성능에 미치는 영향이 최소로 된다. 본 발명 및 그 이점들은 하기에 보다 상세히 설명된다.
도 1에는 본 발명의 일실시예에 따른 다기능 집적 회로(100)가 도시되어 있다. 도 1은 본 발명의 실시예에 따른 PCI(peripheral component interconnect)의 일반적인 도면을 나타낸다. 그러나, 본 발명의 방법 및 시스템은 다른 유형의 공유 버스 및/또는 다른 유형의 버스 표준(예를 들면, AMBA 버스, ASB, AHB, APB 등)으로 구현될 수도 있다.
도 1에 도시되어 있는 바와 같이, 집적 회로(100)는 공유 버스(110)에 각각 결합되어 있는 네 개의 기능 블록(101-104)을 포함한다. 이 실시예에서, 기능 블록(101-104)은 PCI 에이전트(예를 들면, PCI 마스터/타겟 #1, PCI 마스터/타겟 #2, PCI 타겟 #3, PCI 마스터/타겟 #4)이고, 공유 버스(110)는 PCI 버스이다. 기능 블록(101-103)은 PCI 마스터/타겟 에이전트(예를 들면, PCI 개시기(initiators) 및 PCI 슬레이브로서 기능함)이다. 기능 블록(104)은 PCI 타겟 전용 에이전트이다. 블록(101-104) 및 버스(110)는 집적 회로(100) 내에 집적되고, 집적 회로의 기능(functionality) 및 유틸리티(utility)를 종합적으로 제공한다.
전술한 바와 같이, 본 발명은 기능 블록(101-104) 중에서 버스(110)에 대해 버스 경합을 방지하기 위한 시스템으로서 구현된다. 정상 동작 동안, 집적 회로(100)가 동작하는 PCI 프로토콜은 블록들(101-104) 간의 버스 경합을 방지한다. 집적 회로(100)는 필요한 제어 로직을 포함하며 완전한 PCI 호환 시스템(예를 들면, 버스 중재, 디바이스 구성, 인터페이싱, 제어 등)으로서 블록(101-104) 및 버스(110)를 동작시키도록 회로를 지원한다. 따라서, 정상 동작 동안 버스 경합의 위험이 거의 없다. 그러나, 공지되어 있는 바와 같이, 테스트하는 동안, 그 기능을 테스트하기 위해 집적 회로(100)로 스캔된 많은 테스트 벡터, 테스트 패턴, 스캔 패턴 등에 의해 버스 경합의 위험이 많이 유도된다. 본 발명은 집적 회로(100)로 스캔된 어떠한 테스트 패턴, 벡터 등에 관계없이 블록들(101-104) 사이에 버스 경합의 가능성이 없도록 보장함으로서 부분적으로 작용한다.
도 1에서, 본 발명은 기능 블록(101-104)의 각각의 버스 드라이버를 능동적으로 제어하는 해법을 제공한다. 상기 능동적인 제어는, 기능 블록(101-104)이 일련의 테스트 입력들(예를 들면, ATPG 테스트 패턴, 벡터 등)에 의해 활성화될 때 상기 기능 블록들(101-104) 사이에 버스 경합이 일어날 가능성을 제거하는 것을 보장한다. 상기 능동적인 제어는 시스템(100)의 설계에 포함된 제어 로직을 이용하여 구현된다. 상기 제어 로직은, ATPG 툴이 발생할 수도 있는 임의의 스캔 테스트 패턴이 주어질 때 버스 경합이 발생할 수 없도록 구성된다. 따라서, 집적 회로(100)에 대한 테스트 패턴 발생 동안, ATPG 툴은, 경합이 발생하지 않도록 보장하기 위해 각각의 모든 잠재적인 테스트 벡터를 결정론적으로 해석할 필요가 없다. 그렇게 하면, ATPG 프로세싱은 훨씬 효율적으로 진행된다(예를 들면, 통상적인 애플리케이션에서 보다 효율적으로 크기 순서로). 상기 효율성에 의해, ATPG 툴은 보다 철저히 집적 회로(100)를 처리할 수 있으며, 따라서 예를 들면, ATPG 툴은 훨씬 더 높은 결함 커버리지를 갖는 테스트 패턴을 생성할 수 있다. 또한, ATPG 툴은 버스 경합이 발생하지 않도록 보장할 필요가 없기 때문에, 부가적인 효율성에 의해 테스트 패턴이 훨씬 더 빠른 컴파일 시간으로 생성될 수 있다. 본 발명의 다른 이점은 제어 논리가 기존의 다기능 집적 회로 설계에 쉽게 부가될 수 있다는 사실이다. 상기 로직은 구성에 있어서 균일하며, 다기능 집적 회로 디바이스(예를 들면, 집적 회로(100))의 전체 설계에 최소의 시스템 성능 영향을 주며, 최소의 게이트 영역을 갖는다.
도 2는 본 발명의 일실시예에 따른 집적 회로(100)를 보다 상세히 도시한 것이다. 도 2에는 본 실시예의 기능 블록(101-104) 및 이들 각각의 상호접속이 도시되어 있다. 각각의 블록(101-104)은 정상 동작 동안 버스(110)를 구동할 수 있으며, 스캔 테스팅 동안 버스 경합을 회피하도록 제어되어야 한다. 각각의 블록(101-104)은 화살표(205)로 도시되어 있는 바와 같이, 일련의 출력 인에이블 신호를 출력하고 수신하도록 구성되어 있다(이하에서는 출력 인에이블 신호(205)로서 통칭함). 출력 인에이블 신호(205)는 버스(110)에 지정적인 특정 신호들 및 신호들의 그룹에 대응하며, 하기의 표 1로 표시되어 있는 각각의 신호들 또는 신호들의 그룹에 대해 블록(101-104)의 각각의 출력 드라이버를 인에이블 또는 디스에이블함으로서 작용한다. 도 2에 도시되어 있는 바와 같이, 출력 인에이블 신호(205)는 블록(103)(PCI 타겟 #3)을 제외한 블록(101) 내지 블록(104)에 캐스케이드되며, 출력 인에이블 신호(205)의 일부는 블록(103)을 우회하여 블록(104)으로 진행한다. 이것은 블록(103)이 PCI 타겟 전용 에이전트이므로 PCI 신호(FRAME#, IRDY#, CBE#)를 구동시킬 필요가 없기 때문이다. 출력 인에이블 신호(205) 및 대응하는 PCI 신호 사이의 관계는 표 1에 도시되어 있다.
도 2에서, 본 발명에 따르면, 출력 인에이블 신호는 하나의 기능 블록으로부터 다음 블록으로 "OR 체인"으로 캐스케이드되어 블록들(101-104) 사이에 우선 순위가 정해진 계층을 생성한다. 상기 우선 순위가 정해진 계층은 출력 드라이버로 하여금 상이한 블록이 임의의 주어진 시간에 동시에 활성화되지 않도록 한다. 본 예에서는, 도 2에 도시되어 있는 바와 같이, 각각의 블록의 출력 인에이블 신호가 함께 캐스케이드되어 블록(101)으로부터 블록(104)까지 로직의 우선순위가 결정된 체인을 형성한다. 블록의 출력 인에이블의 어서션(assertion)은 낮은 우선 순위의 다른 블록들이 반드시 어서트되지 않도록 한다. 마찬가지로, 특정 우선 순위를 갖는 블록이 능동적으로 신호 또는 버스를 구동하면, 높은 우선 순위를 갖는 드라이버가 활성화되어 낮은 우선 순위의 드라이버가 즉시 비활성화될 것이다.
도 2는 또한 스캔 테스트 모드 신호 라인을 통하여 각각의 블록(101-104)에 결합된 TAP(test access port) 제어기(200)를 도시하고 있다. 본 예에서 TAP 제어기(200)는 스캔 테스팅이 진행중일 때 각각의 기능 블록(101-104)에게 통보하기 위한 스캔테스트 모드 신호(201)를 생성한다. 전술한 바와 같이, 각각의 기능 블록(101-104)은 PCI 버스(AD, PAR, CBE, FRAME#, IRDY#, TRDY#, DEVSEL, STOP#, PERR#, SERR#)상에 신호들의 주 그룹을 위한 하나의 출력 인에이블 신호를 갖는다. 이들 출력 인에이블 신호 입력들(예를 들면, 출력 인에이블 신호(205))는 임의의 더 높은 우선 순위 블록이 PCI 버스를 구동하는지의 여부를 각각의 블록에게 통보한다. 각각의 기능 블록은 또한 PCI 버스 상에 신호들의 각각의 주 그룹을 위한 대응하는 출력 인에이블 신호 출력을 갖는다. 도 2에 도시된 바와 같이, 이들 출력 인에이블 신호 출력들은 그 다음 우선 순위의 기능 블록의 출력 인에이블 신호 입력에 캐스케이드된다.
예를 들면, 도 2에서, 기능 블록(101)은 최상위의 우선 순위를 가지며, 기능 블록(104)은 최하위의 우선 순위를 갖는다. 만약 기능 블록(101)(예를 들면, PCI 마스터/타겟 #1)이 스캔 테스트 모드 동안 버스(110)의 AD[31:0], FRAME#, STOP# 신호 라인을 구동하고 있었다면(예를 들면, ATPG 툴이 스캔 패턴을 생성하였다면), 기능 블록(101)은 ad_9e_1, frame_oe_1, stop_oe_1 출력을 어서트한다. 그러면, 기능 블록(102)은 어서트된 이들 신호를 볼 것이며, ATPG 툴이 스캔 패턴을 생성한 경우에도 이들을 구동하지 않을 것이다. 기능 블록(102)(예를 들면, PCI 마스터/타겟 #2)은 ad_oe_2, frame_oe_2, stop_oe_2 신호를 어서트함으로서 상기 정보를 하위 우선 순위의 블록 상으로 전송할 것이다. 블록(101)은 그것의 출력 인에이블 신호 입력을 로우(논리 0)로 묶어둠에 유의하라. 이렇게 하면, 블록(101)이 절대로 사전에 비워지지 않기 때문에, 블록(101)이 최상위 우선 순위의 블록으로 된다. 블록(104)은 그 출력 인에이블 신호 출력을 오픈한 채로 둔다. 이렇게 하면, 블록(104)이 절대로 다른 디바이스를 사전에 비우지 않기 때문에, 블록(104)은 최하위 우선 순위의 블록이 된다. 이런 방법으로, 어서트된 ad_oe_2, frame_oe_2, stop_oe_2 출력은 더 높은 우선 순위의 블록으로부터 최하위 우선 순위 블록을 따라서 캐스케이드된다.
블록(103)은 타겟 전용 PCI 에이전트임에 유의하라. 블록(103)은 버스 마스터링(mastering) 능력이 없기 때문에, 그것의 인터페이스 내의 버스(110)로부터의 FRAME#, IRDY#, C/BE(3:0) 신호를 갖지 않는다. 이 경우, 출력 인에이블 신호 frame_oe_2, irdy_oe_2, cbe_oe_2는 블록(103)을 우회하여 블록(104)에 연결된다.
본 실시예에서, 출력 인에이블 신호 입력 및 출력은 모두 활성 하이 신호임에 유의하라. 예를 들면, 스캔 테스트 모드 동안, 만약 블록들(101-104) 중 하나가 그것의 출력 인에이블 신호 입력들 중 하나를 하이로 인식하면, PCI 버스의 대응 부분을 구동하지 않고 대응하는 출력 인에이블 신호 출력을 어서트할 것이다.
도 3에는, 본 발명의 일실시예에 따른 기존의 기능 블록을 변형할 필요가 있는 로직이 도시되어 있다. 도 3은 본 발명에 사용된 상호접속 로직을 도시한다(예를 들면, 스캔 테스팅 동안 버스(110) 상에 버스 경합이 없음을 보장하기 위해) 본 경우에는, 블록(102)이 도시되어 있다. 도 3에 도시된 바와 같이 블록(102)은 PCI 버스를 구동하는 3 상태 드라이버보다 작은 PCI 마스터/타겟을 구현하는 정상 로직을 나타낸다. 본 발명의 상기 실시예는 각각의 출력 인에이블 신호에 대하여 "테스트를 위한 OE 제어"의 부가를 요구한다. 이들 네 개의 블록, 즉, 테스트를 위한 OE 제어 블록(301-304)이 도시되어 있다. 테스트를 위한 OE 제어 블록은 기존의 블록(예를 들면, 블록(102))으로부터 스캔테스트 모드 신호와 함께 출력 인에이블 신호 cr_xx_oe_n(여기서 "xx"는 신호 유형, 예를 들면, ad, frame, irdy 등에 대응한다)를 취하고, 그 다음 높은 우선 순위의 PCI 디바이스로부터 출력 인에이블 신호를, 즉, 블록(101)으로부터 xx_oe_in을 취하고, 3 상태 드라이버에 대해 실제 출력 인에이블을 생성하고 출력 인에이블 신호는 그 다음 낮은 우선 순위의 블록에, 즉, 블록(103)에 대해 xx_oe_out을 출력시킨다. 도 3은 3 상태 드라이버(예를 들면, 3 상태 드라이버(311-314))에 대해 활성 로우 출력 인에이블 논리라 가정함을 알아야 한다.
도 4에는 본 발명의 일실시예에 따른 테스트 제어기(400)에 대한 예시적인 OE 제어의 내부 로직이 도시되어 있다. 제어기(400)는 활성 로우 출력 인에이블 로직(예를 들면 3 상태 드라이버(401))을 갖는 3 상태 드라이버에 따른 로직을 나타낸다. 본 실시예에서, 제어기(400)는 세 개의 입력과 두 개의 출력을 갖는다. 만약 스캔테스트 모드 입력(201)이 로우이면, "테스트에 대한 출력 인에이블" 논리가 디스에이블되고 블록의 출력 인에이블 신호 cr_<signal>_oe_n이 3 상태 드라이버(401)를 제어하는데 이용된다. 만약 스캔테스트모드(201)가 하이이면, "테스트에 대한 출력 인에이블" 로직이 인에이블되고 그 다음 높은 우선 순위의 블록으로부터의 출력 인에이블 신호 입력 <signal>_oe_in이 이 블록의 출력 인에이블을 제어하는데 사용된다. 만약 <signal>_oe_in이 하이이면, 이전의 블록이 버스(110)를 구동한다. 이 경우 제어기(400)는 3 상태 드라이버(401)를 디어서트(deassert)하고 그 다음 낮은 우선 순위의 PCI 디바이스 <signal>_oe_out에 대한 출력 인에이블 제어 신호 출력을 어서트한다. 만약 <signal>_oe_in이 로우이면, 블록의 출력 인에이블 신호 cr_(signal>_oe_n이 3 상태 드라이버(401)를 제어하는데 이용된다. 만약 cr_<signal>_oe_n이 로우로 어서트되면 제어기(400)는 버스(110)를 구동하지 않도록 그 다음 낮은 우선 순위의 블록에 대한 출력 인에이블 제어 신호 출력 <signal>_oe_out을 어서트한다.
도 5는 본 발명의 일실시예에 따른, 활성 하이 출력 인에이블 논리를 갖는 3상태 드라이버(예를 들면, 드라이버(501))에 대해 구성된 테스트 제어기(500)에 대한 예시적인 OE 제어를 도시하고 있다. 제어기(500)는 도 4의 제어기(400)와 거의 유사한 방식으로 작동한다. 그러나, 제어기(500)에 대한 내부 로직은 활성 하이 출력 인에이블 로직을 갖는 3 상태 드라이버에 대해 구성되어 있다.
이런 방식에서는, 도 1-5에 도시된 실시예가 스캔 테스팅 동안 버스 경합을 발생하지 않을 것이다. 그렇게 하는 동안, ATPG 툴에 의해 수행되는 ATPG 프로세싱은 훨씬 효율적으로 진행되며, 고품질의 테스트 패턴/벡터를 발생하는데 훨씬 더 적은 시간을 요구한다. 또한, 테스트 패턴/벡터는 종래 기술에 따라 생성된 것보다 훨씬 더 양호한 결함 커버리지(이는 모든 버스 경합 문제들을 해결하기 위해 ATPG에게 남겨짐)를 제공한다. 본 발명의 하드웨어의 구현은, 각각의 기능 블록을 수정함으로서 장래의 집적 회로에 쉽게 결합될 수 있다.
제 1의 대안적인 실시예
도 6에는 본 발명의 대안적인 실시예에 따른 시스템(600)이 도시되어 있다. 도 1-5의 실시예들은 버스(110) 상의 구동 신호로부터 기능 블록(101-104)을 디스에이블하는 분산형 해법을 이용하지만, 시스템(600)의 실시예는 버스(610) 전체를 구동하는 블록들(611-614) 중에서 하나를 인에이블하는 집중형 방법을 이용한다. 도 1-5의 실시예들과 마찬가지로, 도 6의 실시예는 PCI 버스 구현(예를 들면 버스(610))에 대하여 도시되어 있지만, 시스템(600)은 다른 유형의 버스 구조로 확장될 수도 있음에 유의하라.
도 6에 도시된 바와 같이, 기능 블록(611-613)은 PCI 마스터/타겟 에이전트이고 기능 블록(614)은 PCI 타겟 전용 에이전트이다. PCI 타겟 전용 에이전트는 PCI 버스(610)에 의해 액세스가능한 레지스터 또는 메모리 자원들을 포함한다. PCI 마스터 전용 에이전트는 버스 소유에 대한 중재 기능을 포함하고 버스(610) 상의 레지스터 또는 메모리 자원을 액세스할 수 있는 기능을 포함하지만, 통상적으로는 자신의 레지스터 또는 메모리 자원을 갖지 않는다. PCI 마스터/타겟 장치는 타겟 자원 및 다른 자원을 액세스하는 마스터 기능을 포함한다.
시스템(600)은 단일 PCI 버스 중재기(601), PCI 마스터 및 타겟 인터페이스를 갖는 블록(611-613), PCI 타겟 전용 에이전트인 단일 블록(614)을 포함하는 일반적인 PCI 버스 시스템이다. 마스터 인터페이스를 갖는 블록들은 중재기(601)에 버스 요청 신호를 보낸다(예를 들면, 버스 요청(603)). 중재기(601)는 각각의 PCI 마스터 에이전트(예를 들면, 블록(611-613))에 버스 승인(grant) 신호(602)를 보낸 다. 타겟 전용 PCI 에이전트인 블록(614)은 요청 또는 승인 신호를 사용하지 않는다.
도 6의 대안적인 실시예는, 스캔 테스팅 동안 PCI 버스 중재기(601)를 이용하여 버스 경합을 방지하여, 버스(610)를 블록들(611-614) 중 하나에 승인한다. 본 실시예에 따르면, 블록(611-614)은 스캔 테스팅 동안 상기 승인을 받아들이도록 변형되어, 블록 샘플링 승인 어서트 수단이 "버스를 구동하고" 샘플링 승인 디어서트 수단이 "모든 버스 드라이버를 디스에이블한다". 버스 승인을 발생하는데 사용되는 PCI 버스 중재기(601) 내의 플립플롭은 스캔 체인 상에 있기 때문에, ATPG 툴은, 스캔 데이터가 블록들(611-614) 중에서 적절한 하나의 블록이 원하는 버스(610)를 구동하도록 한다.
도 6의 실시예는 두 개의 특별한 상황을 다루는 로직을 포함한다. 제 1 상황은, 집적 회로가 버스 승인 신호를 이용하지 않는 PCI 타겟 전용 타입의 기능 블록들을 포함하는 경우에 로직이 구현되는 상황이다. 제 2 상황은 ATPG 툴이 스캔 테스팅 동안 다수의 승인 신호를 승인하게 하는 경우를 처리하는 방법이다. 이들 특별한 경우의 해결책은 하기에 논의된다.
도 6에서, 본 발명에 따르면, PCI 버스 중재기(601)는 스캔 테스트 모드 동안 각각의 기능 블록의 3 상태 드라이버를 인에이블하는 중앙 자원으로서 작용한다. 어서트된 버스 승인을 갖는 임의의 블록(611-614)은 스캔 테스트 동안 PCI 버스(610)(AD[31:0], CBE, PAR, PERR#, SERR#, FRAME#, IRDY#, TRDY#, DEVSEL#, STOP#)를 구동할 것이다. 이것은 PCI 타겟 전용 에이전트 및 마스터 전용 에이전트를 포함한다. 버스 승인(604)은 타겟 전용 에이전트(예를 들면, 블록(614))에 부가되어야 하는 새로운 신호임에 유의하라. 또한 타겟 전용 에이전트(예를 들면, 블록(614))를 위한 "특별한" 버스 승인(604)은 스캔 테스트 모드 동안만 작용하는 PCI 버스 중재기(601)로부터의 출력임을 유의하라.
타겟 전용 블록이 선택되는 경우에, PCI 버스 중재기(601)는 PCI 마스터 타입 신호 CBE, FRAME#, IRDY#를 구동한다. 이것은, 타겟 전용 에이전트(예를 들면, 블록(614))가 정상 동작 하에서 이들 신호를 구동할 필요가 없으며 그 인터페이스 내에 상기 신호들을 가지지 않는다는 사실에 기인한다. 마찬가지로, 마스터 전용 타입의 에이전트가 선택되는 경우에, PCI 버스 중재기(601)가 PCI 타겟 에이전트 고유의 신호들 TRDY#, DEVSEL#, STOP#을 구동하므로 마스터 전용 타입의 에이전트가 정상 동작 하에서 이들 신호들을 구동할 필요가 없다.
FRAME#, IRDY#, TRDY#, STOP#, DEVSEL#, REQ#(0:N), PERR#, SERR# 및/또는 INT(A:D) 신호를 3 상태로 하지 않는 내부 PCI 버스 실시예들이 있다. 그러한 실시예에서는, PCI 중재기(601)는 전술한 문단에서 기술된 바와 같이 그들을 구동할 필요가 없다.
타겟의 타입 또는 마스터 전용 타입의 에이전트가 선택되면, PCI 버스 중재기(601)가 FRAME#, IRDY#, TRDY#, DEVSEL#, STOP# 신호를 구동하기보다는, 이들 신호가 부유하게 하는 대신에 이들 신호를 구동하지 않도록 선택하는 실시예들이 있다. 이렇게 하면, 결함 커버리지가 감소되지만, 추가적인 복잡도를 중재기 설계에 부가하는 것을 보장하기에 충분치 못할 수도 있다.
스캔 테스트 동안, PCI 버스 중재기(601)는 1 및 하나의 승인 신호만 어서트하는 것을 담당한다. PCI 버스 승인을 발생하는 것을 담당하는 중재기 내의 플립플롭은, ATPG 툴이 원하는 임의의 기능 블록으로 버스(610)를 승인하기 위하여 데이터를 그들로 이동시킬 수 있도록 스캔 체인 상에 있다. 그러나, ATPG 툴은 다수의 버스 승인을 어서트하도록 시도할 수도 있다. PCI 버스 중재기(601)는 블록들(611-614) 중 단지 하나의 블록만이 선택되도록 보장해야 한다. 아무런 디바이스도 선택되지 않는 경우, PCI 버스 중재기(601)는 버스(610)를 "디폴트" 블록으로 보낸다. 디폴트 블록은 임의의 블록(611-614) 또는 버스(610) 상의 임의의 블록으로 선택될 수 있다.
도 7에는 본 발명의 다른 실시예에 따른 PCI 버스 중재기(700)가 도시되어 있다. 도시된 PCI 버스 중재기(700)는 승인 신호(예를 들면, 도 6의 승인 신호(603-604))를 구현하고, 신호들, 즉, CBE[3:0], FRAME#, IRDY#, TRDY#, DEVSEL#, STOP#을 발생하는데 요구된 로직을 나타낸다. PCI 버스 중재기(700)는 네 개의 PCI 마스터/타겟 타입의 에이전트 및 두 개의 PCI 타겟 전용 타입의 에이전트를 갖는 중재기의 예이다. 타겟 승인 신호는 tgnt(1:0)로 도시되어 있다. 본 실시예에서는, 종래의 PCI 버스 중재기(705)의 로직 외에 타겟 승인 신호를 구동하는 플립 플롭(702-703), CBE[3:0], FRAME#, IRDY#, TRDY#, DEVSEL#, STOP#을 생성하는 조합 로직(701), 스캔 테스트 동안 단지 하나의 승인만 어서트되도록 보장하는 조합 로직(704)이 있다. 정상 동작(scantestmode=0) 동안, PCI 버스 승인 gnt_n(3:0)은 플립 플롭(706-709)으로부터 바로 구동되며, "타겟 승인"은 디어서트되고, CBE[3:0], FRAME#, IRDY#, TRDY#, DEVSEL#, STOP#는 3 상태로 된다. 스캔 테스트(scantestmode=1) 동안 다수의 승인이 어서트되지 않으면, gnt_n 및 tgnt_n 출력들은 플립 플롭(706-709 및 702-703)으로부터 각각 구동된다(즉, ATPG 툴에 의해). 만약 다수의 승인이 플립플롭에 의해 어서트되면, 조합 로직(704)은 승인들 중에서 하나를 선택해야 하며 모든 다른 승인들은 디어서트하여야 한다. 만약, 승인들이 플립플롭에 의해 어서트되면, 조합 로직(704)은 승인들 중 하나가 어서트되도록 선택하고 다른 모든 승인들은 디어서트하여야 한다. 만약 어서트된 승인 신호가 "타겟 승인" 신호들 중 하나의 신호이면, CBE(3:0), FRAME# 및 IPDY#는 일정한 값으로 구동된다(본 예에서는 0으로 표시). 만약 어서트된 승인 신호가 PCI 마스터 전용 타입의 에이전트에 대한 것이면, TRDY#, DEVSEL#, STOP#이 구동된다.
도 8은 본 실시예에 따른 PCI 버스(610)의 어드레스/데이터 부분에 대해 출력 인에이블(예를 들면, ad(31:))을 생성하도록 기능 블록에 의해 사용된 통상적인 로직을 도시한 것이다. 전체 버스(610)에 대해 발생될 수 있는 하나의 출력 인에이블만 도시되어 있다. 버스의 상이한 부분에 대해 다수의 플롭이 출력 인에이블을 생성하는 것이 일반적이지만, 이것은 본 실시예에 대한 쉽게 통합된 확장이다.
도 9는 스캔 테스트 모드 동안 어떠한 버스 경합도 발생하지 않도록 보장하기 위해 기능 블록에 의해 요구된 본 실시예에 따른 로직을 도시한 것이다. 정상 동작 동안(scantestmode=0) 기능 블록의 정상 출력 인에이블 신호 cr_ad_oe_n이 그 출력 드라이버를 인에이블하는데 사용된다. 그러나, 본 실시예에 따르면, 스캔 테스트(scantestmode=1) 동안 승인 신호 gnt_n이 출력 드라이버를 인에이블하는데 사용될 것이다. 도 9의 도면은 출력 인에이블이 활성 로우라고 가정한 것이다.
도 10은 출력 인에이블이 활성 로우와 반대인 활성 하이인, 본 실시예에 따른 로직을 도시한 것이다. 따라서, 도 6-10의 대안적인 실시예는 스캔 테스팅 동안 버스 경합이 발생하지 않도록 보장한다. 이것은 ATPG 툴의 작업을 상당히 용이하게 하며, ATPG 툴이 모든 버스 경합 문제들의 해결을 담당하는 종래 기술에 비해 보다 빠른 컴파일 시간으로 훨씬 양호한 결함 커버리지를 제공할 것이다. 도 1-5의 실시예에 비해, 상기 대안적인 실시예는, 시스템 내의 각각의 기능 블록 및 중앙 PCI 버스 중재기를 수정함으로서 쉽게 구현될 수 있다.
제 2의 대안적인 실시예
본 발명에 따른 제 2의 대안적인 실시예가 또한 구현될 수 있다. 스캔 모드 동안 각각의 기능 블록을 제어하는 집중형 자원이 PCI 버스 중재기가 아니라 단독의 "테스트 전용" 블록이라는 점을 제외하면, 제 2의 대안적인 실시예는 도 6-10의 제 1의 대안적인 실시예와 거의 유사하다. 또한, 본 실시예를 이용하면 PCI 버스 중재기의 설계를 변경할 필요가 없다. 요구된 로직은 "테스트 전용" 블록에 결합된다. 그러면, 상기 "테스트 전용" 블록은 승인 신호가 아니라 "선택"신호를 발생한다. 상기 선택 신호는 각각의 기능 블록에 의해 사용되어 도 6-10의 제 1의 대안적인 실시예에 제시된 승인 신호가 아니라 스캔 테스팅 동안 버스를 구동한다. PCI 디바이스 내의 로직은 도 6-10의 제 1의 대안적인 실시예의 로직과 거의 유사하다.
도 11은 본 발명의 제 2 대안적인 실시예에 따른 테스트 전용 블록(1100)을 도시한 도면이다. 테스트 전용 블록(1100)은 도 7의 PCI 버스 중재기(705)에 부가되는 거의 동일한 회로이다. 제 2의 대안적인 실시예에 의하면, 제 1의 대안적인 실시예의 타겟 타입의 승인과 마스터 타입의 승인인 있는 것과 마찬가지로, 타겟 타입의 선택 신호와 마스터 타입 신호 사이에 차이가 없다. 도 12를 참조하면, 본 발명의 일 실시예에 따른 프로세스(1200) 단계들의 흐름도가 도시된다. 프로세스(1200)는 본 발명에 따른 다기능 집적 회로의 전반적인 동작 단계들을 보여준다. 프로세스(1200)는 전반적인 동작 단계들을 나타내며, 따라서, 프로세스(1200)는 상술한 다른 실시예(예를 들어, 도 1 내지 도 5의 실시예 및 제 1 및 제 2 의 대안적인 실시예)의 동작을 나타내는데 동일하게 적용할 수 있다. 그러나, 이하에서는 프로세스(1200)는 도 1 내지 도 5의 실시예에 관련하여 설명될 것이다. 프로세스(1200)는, 단계 1201에서 시작하며, 그 단계에서는 본 발명의 일 실시예에 따른 다기능 집적 회로(예를 들오 도 1의 집적 회로(100))가 (예를들어, 스캔 체인, 핀등을 통해) ATPG 테스트 벡터르 수신한다. 상술한 바와 같이, 테스트 벡터/테스트 패턴은 ATE 머신에 의해 집적 회로(100)로 시프트되며, TAP(예를 들어, 도 2의 TAP(200))는 집적 회로가 테스트 모드로 되도록 하는데 이용된다. 단계 1202에 있어서, 단계 1201에서 수신한 테스트 벡터에 응답하여, 스캔 테스트 모드 신호 "scantestmode"는 집적 회로의 각 기능 블럭에 대해 어서트된다. 이 신호는 테스트를 위한 기능 블럭을 구성하고, 그들을 정상 동작 모드에서 테스트 모드로 변환함에 의해 작동한다. 전술한 각각의 실시예에서, "스캔테스트 모드" 신호는 본 발명의 로직을 활성화시킨다.
단계 1203에서, 단계 1201로부터의 테스트 벡터의 결과가 집적 회로의 기능 블록에 인가되면, 기능 블록들 중 하나는 동작 특성을 테스트하기 위해 인에이블된다.
단계 1204에서, 본 발명의 로직에 의해 모든 다른 기능 블록들이 디스에이블된다. 전술한 바와 같이, 도 1-5의 실시예에서, 이 로직은 각각의 기능 블록들에 할당된다. 제 1 및 2의 대안적인 실시예에서, 실행 로직은 중재기(예를 들면, 도 6의 PCI 버스 중재기(601)) 또는 단독의 테스트 전용 디바이스(예를 들면, 도 11의 테스트 전용 디바이스(1100))에 집중된다. 그렇게 하면, 적용되는 어떠한 테스트 벡터/테스트 패턴의 효과에 관계없이, 단지 하나의 기능 블록만 버스의 신호를 구동할 수 있다.
단계 1205에서, 본 발명의 실행 로직은 현재 버스를 구동하는 기능 블록 이외의, 즉, 새로운 테스트 벡터의 결과가 시프트인(shift in)됨에 따라 인에이블되는 더 높은 우선 순위의 기능 블록이 있는지의 여부를 계속해서 검사한다.
단계 1206에서, 더 높은 우선 순위의 기능 블록이 있는 경우, 현재 버스를 구동하는 더 낮은 우선 순위의 기능 블록이 즉시 디스에이블되고, 더 높은 우선 순위의 기능 블록은 그 출력 드라이버를 인에이블한다. 전술한 바와 같이, 로직은 상이한 기능 블록으로부터의 두 세트의 출력 드라이버가 동시에 버스의 각 신호 라인을 구동할 수 없도록 보장한다.
단계 1207 및 1210에서, 본 발명의 테스팅 과정은, 새로운 테스트 벡터가 계속해서 시프트 인되고 집적 회로의 기능이 완전히 확인될 때 결과하는 테스트 데이터가 계속해서 시프트 아웃되도록 하는 과정을 계속한다.
단계 1208에서, 테스팅 프로세스가 완료되고, 스캔테스트 모드 신호가 집적회로를 통해 디어서트된다. 이에 따라 본 발명의 로직 기능 블록들은 테스팅 모드로부터 정상 동작 모드로 재구성된다.
이어서 단계 1209에서, 집적 회로는 정상 동작으로 진행한다. 전술한 바와 같이, 정상 동작 동안, 기능 블록의 출력 드라이버는 각각의 정상 동작 모드 로직(예를 들면, PCI 명세에 따라서)에 의해 제어된다. 본 발명의 로직은, 다른 스캔테스트 모드 신호를 어서트하여 다른 테스팅 프로세스의 개시를 지정할 때까지 "슬립(sleep)"한다.
따라서, 본 발명은 집적 회로 디바이스의 다수의 기능 블록들 간의 임의의 잠재적인 버스 경합은 제거하는 방법 및 시스템을 제공한다. 본 발명은 다수의 기능 블록들이 일련의 테스트 입력(예를 들면, ATPG 테스트 패턴, 벡터 등)에 의해 활성화될 때, 다수의 기능 블록들이 기능 블록들 사이의 버스 경합을 제거하도록 다수의 버스 드라이버를 능동적으로 제어하는 해법을 제공한다. 본 발명의 방법 및 시스템은 설계에 의해, ATPG 툴이 생성할 수 있는 임의의 스캔 테스트 패턴이 주어졌을 때 버스 경합이 발생할 수 없도록 하여, ATPG 툴로 하여금 결과적으로 훨씬 더 높은 결함 커버리지를 갖는 테스트 패턴을 생성하도록 보장한다. 또한, ATPG 툴이 버스 경합이 발생될 수 없도록 보장할 필요가 없기 때문에, 테스트 패턴들이 훨씬 빠른 컴파일 시간으로 생성될 수 있다. 본 발명의 시스템은 쉽게 구현되며, 구성이 일정하며, 최소 게이트 영역을 가지며, 집적 회로 디바이스의 전체 설계에 대해 시스템 성능에 미치는 영향이 최소로 된다.
본 발명의 특정 실시예들에 대한 상기 설명은 예시 및 설명을 위해 제공되었다. 이들은 개시된 정확한 형태로 본 발명을 제한하고자 하는 것이 아니며, 상기 교시의 견지에서 많은 변형들 및 수정들이 가능하다. 실시예들은 본 발명 및 실제 애플리케이션의 원리를 가장 잘 설명하도록 선택하여 개시하였으며, 따라서 당업자라면 본 발명을 이용하여 특정 용도에 맞는 다양한 변형들을 갖는 다양한 실시예를 이용할 수 있을 것이다. 본 발명의 영역은 첨부한 청구항에 규정되어 있다.
Claims (18)
- 테스트 중인 집적 회로- 상기 집적 회로는 다수의 기능 블록으로 구성됨 -에서 버스 경합(contention)을 방지하는 시스템으로서,집적 회로의 기능을 테스트하기 위한 일련의 테스트 입력을 수용하는 집적 회로(100)와,상기 집적 회로에 포함된 버스(110)와,상기 집적 회로에 포함된 다수의 기능 블록(101-104)- 각 기능 블록(101-104)은 상기 버스에 결합되며, 상기 테스트 입력들을 수용하도록 결합되고, 상기 다수의 기능 블록은 최상위 우선 순위로부터 최하위 우선 순위로 결합됨 -을 포함하되,각 기능 블록(101-104)은 상기 버스에 지정적인 일련의 출력 인에이블 신호를 출력 및 수신하도록 구성되고, 각 기능 블록은 상기 일련의 출력 인에이블 신호의 적어도 서브셋을 어서팅할 수 있고, 최상위 우선 순위를 갖는 기능 블록(101)은 동일한 고정된 논리 값으로 모두 묶여진 일련의 출력 인에이블 신호를 수신하도록 구성되며,각 기능 블록은 출력 인에이블 제어기(301-304)를 포함하되, 최상위 우선순위를 갖는 상기 기능 블록(101)의 상기 출력 인에이블 제어기는 상기 기능 블록의 상기 출력 인에이블 신호를 수신하고 동일한 고정된 값으로 묶여진 상기 출력 인에이블 신호를 수신하도록 결합되며,그 밖의 다른 출력 인에이블 제어기는 그의 제각기의 기능 블록 및 그 보다 높은 우선순위의 기능 블록의 출력 인에이블 신호를 수신하도록 결합되고,상기 그 밖의 다른 출력 인에이블 제어기 각각은 상기 보다 높은 우선순위의 기능 블록의 대응 출력이 활성화되는 경우 테스트 동안 그의 제각기의 기능 블록의 출력을 디스에이블링하여 상기 버스를 구동하지 않도록 하며,상기 최하위 우선순위 기능 블록의 출력 인에이블 제어기를 제외한 각 출력 인에이블 제어기는 테스팅 동안 그 보다 낮은 우선순위의 기능 블록에 대한 출력 인에이블 신호를 생성함으로써,적어도 제 1 및 제 2 기능 블록 간의 상기 버스에 대한 경합은 방지되면서 상기 테스트 입력이 상기 적어도 제 1 및 제 2 기능 블록을 통해 전파될 수 있게 되는버스 경합 방지 시스템.
- 삭제
- 삭제
- 제 1 항에 있어서,상기 집적 회로에 포함된 상기 버스는 PCI(peripheral component interconnect) 버스이며, 상기 제 1 기능 블록 및 상기 제 2 기능 블록은 PCI 기능 블록인버스 경합 방지 시스템.
- 삭제
- 삭제
- 제 4 항에 있어서,상기 일련의 출력 인에이블 제어기는 제각각 상기 PCI 버스를 포함하는 PCI 버스 신호 라인의 제각기의 그룹에 결합되어, 상기 PCI 버스 신호의 그룹이 상기 출력 인에이블 제어기 중 대응하는 제어기에 의해 선택적으로 디스에이블링되어 상기 PCI 버스 신호의 그룹이 선택적으로 사전에 비워지도록 하는버스 경합 방지 시스템.
- 삭제
- 제 1 항에 있어서,상기 출력 인에이블 제어기들은 보다 낮은 우선순위의 기능 블록의 출력 드라이버를 디스에이블링함으로써 상기 보다 낮은 우선순위의 기능 블록을 디스에이브링하는 버스 경합 방지 시스템.
- 제 1 항에 있어서,상기 출력 인에이블 제어기는 보다 낮은 우선순위의 기능 블록에 대해 출력 인에이블 신호를 생성함으로써 상기 보다 낮은 우선순위의 기능 블록의 출력을 디스에이블링하는 버스 경합 방지 시스템.
- 제 7 항에 있어서,상기 출력 인에이블 제어기들의 그룹은 PCI 신호 AD[31:01], FRAME#, TRDY#, C/BE#[3:01], PAR, DEVSEL#, STOP#, PERR#, SERR#를 포함하는 버스 경합 방지 시스템.
- 제 1 항에 있어서,상기 집적 회로는 상기 집적 회로가 테스팅 모드로 되도록 동작하는 TAP(test access port) 제어기를 더 포함하는 버스 경합 방지 시스템.
- 테스팅 중인 집적 회로- 상기 집적 회로는 최상위 우선순위에서 최하위 우선순위로 결합되는 다수의 기능 블록(101-104)으로 구성되고, 각 기능 블록은 버스(110)에 결합되고 상기 버스에 지정적인 일련의 출력 인에이블 신호를 수신 및 출력하도록 구성되고, 각 기능 블록은 상기 출력 인에이블 신호의 적어도 서브셋을 어서팅할 수 있음 -에서 버스 경합을 방지하는 방법으로서,상기 집적 회로의 기능을 테스트하도록 동작가능한 일련의 테스트 입력을 수용하는 단계와,상기 집적 회로 내에 포함된 상기 다수의 기능 블록에 상기 테스트 입력을 수용하는 단계와,동일한 고정된 논리 값으로 모두 묶여진 일련의 출력 인에이블 신호(205)를 최상위 우선순위를 갖는 기능 블록에 제공하는 단계와,각 기능 블록을 출력 인에이블 제어기(301-304)를 통해 연장하는 단계로서, 최상위 우선순위를 갖는 상기 기능 블록(101)의 상기 출력 인에이블 제어기는 상기 기능 블록의 출력 인에이블 신호를 수신하고 동일한 고정된 논리 값으로 모두 묶여진 출력 인에이블 신호를 수신하도록 결합되며, 그 밖의 나머지 출력 인에이블 제어기는 그의 제각기의 기능 블록 및 그 보다 높은 우선순위의 기능 블록의 출력 인에이블 신호를 수신하도록 연결되는 단계와,상기 보다 높은 우선순위의 기능 블록의 대응하는 출력이 활성화되는 경우 그의 제각기의 기능 블록의 출력을 디스에이블하여 상기 버스를 구동하지 않도록 상기 그 밖의 나머지 출력 인에이블 제어기를 동작시키는 단계와,테스트 동안 상기 최하위 우선순위 기능 블록의 출력 인에이블 제어기를 제외한 각 출력 인에이블 제어기를, 보다 낮은 우선순위의 기능 블록에 대해 출력 인에이블 신호를 생성하도록 동작시켜, 상기 테스트 입력이 상기 다수의 기능 블록을 통해 전파되면서 상기 다수의 기능 블록 사이에서 상기 버스에 대한 경합이 방지되도록 하는 단계를 포함하는버스 경합 방지 방법.
- 제 13 항에 있어서,상기 집적 회로에 포함된 버스는 PCI(peripheral component interconnect) 버스이고, 상기 다수의 기능 블록은 PCI 기능 블록인 버스 경합 방지 방법.
- 삭제
- 제 13 항에 있어서,상기 최하위 우선순위의 기능 블록의 출력 드라이버를 디스에이블함으로써 상기 최하위 우선순위의 기능 블록을 디스에이블하는 단계를 더 포함하고, 상기 디스에이블은 상기 기능 블록의 상기 출력 인에이블 제어기에 의해 수행되는 버스 경합 방지 방법.
- 삭제
- 제 13 항에 있어서,상기 집적 회로는 상기 일련의 테스트 입력들을 수용하는 동작을 하는 TAP(test access port) 제어기(200)를 더 포함하고, 상기 TAP 제어기는 또한 테스팅 모드에 있어서 상기 다수의 출력 인에이블 제어기를 구성하는 스캔 테스트 모드 신호를 생성하도록 동작하는 버스 경합 방지 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/389,873 | 1999-09-02 | ||
US09/389,873 US6560663B1 (en) | 1999-09-02 | 1999-09-02 | Method and system for controlling internal busses to prevent bus contention during internal scan testing |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20010083931A KR20010083931A (ko) | 2001-09-03 |
KR100735169B1 true KR100735169B1 (ko) | 2007-07-03 |
Family
ID=23540108
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020017005463A KR100735169B1 (ko) | 1999-09-02 | 2000-08-29 | 버스 경합을 방지하기 위한 시스템 및 방법 |
Country Status (7)
Country | Link |
---|---|
US (1) | US6560663B1 (ko) |
EP (1) | EP1125141B1 (ko) |
JP (1) | JP2003508830A (ko) |
KR (1) | KR100735169B1 (ko) |
CN (1) | CN1197008C (ko) |
DE (1) | DE60025631T2 (ko) |
WO (1) | WO2001016610A1 (ko) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000164788A (ja) * | 1998-11-20 | 2000-06-16 | Anam Semiconductor Inc | 半導体パッケ―ジ用リ―ドフレ―ムとこれを用いた半導体パッケ―ジ及びその製造方法 |
US6883134B2 (en) * | 2001-03-27 | 2005-04-19 | Logicvision, Inc. | Method and program product for detecting bus conflict and floating bus conditions in circuit designs |
US6785685B2 (en) * | 2001-08-22 | 2004-08-31 | International Business Machines Corporation | Approach for transforming XML document to and from data objects in an object oriented framework for content management applications |
CN100353347C (zh) * | 2002-11-25 | 2007-12-05 | 杭州士兰微电子股份有限公司 | 一种实现pci多功能卡的方法 |
JP2007500356A (ja) * | 2003-05-28 | 2007-01-11 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | シグナルインテグリティ自己テストアーキテクチャ |
US7519827B2 (en) * | 2004-04-06 | 2009-04-14 | Verigy (Singapore) Pte. Ltd. | Provisioning and use of security tokens to enable automated test equipment |
DE102015201278B4 (de) * | 2015-01-26 | 2016-09-29 | Continental Automotive Gmbh | Steuersystem |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0454052A2 (en) * | 1990-04-24 | 1991-10-30 | Kabushiki Kaisha Toshiba | Data processing device with test circuit |
US5648733A (en) * | 1995-11-01 | 1997-07-15 | Lsi Logic Corporation | Scan compatible 3-state bus control |
JPH1194914A (ja) * | 1997-09-22 | 1999-04-09 | Matsushita Electric Ind Co Ltd | スキャンパス制御回路 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5396602A (en) * | 1993-05-28 | 1995-03-07 | International Business Machines Corp. | Arbitration logic for multiple bus computer system |
GB9622687D0 (en) * | 1996-10-31 | 1997-01-08 | Sgs Thomson Microelectronics | An integrated circuit with tap controller |
-
1999
- 1999-09-02 US US09/389,873 patent/US6560663B1/en not_active Expired - Fee Related
-
2000
- 2000-08-29 KR KR1020017005463A patent/KR100735169B1/ko not_active IP Right Cessation
- 2000-08-29 CN CNB008024693A patent/CN1197008C/zh not_active Expired - Fee Related
- 2000-08-29 WO PCT/US2000/023650 patent/WO2001016610A1/en active IP Right Grant
- 2000-08-29 EP EP00961395A patent/EP1125141B1/en not_active Expired - Lifetime
- 2000-08-29 DE DE60025631T patent/DE60025631T2/de not_active Expired - Lifetime
- 2000-08-29 JP JP2001520114A patent/JP2003508830A/ja not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0454052A2 (en) * | 1990-04-24 | 1991-10-30 | Kabushiki Kaisha Toshiba | Data processing device with test circuit |
US5648733A (en) * | 1995-11-01 | 1997-07-15 | Lsi Logic Corporation | Scan compatible 3-state bus control |
JPH1194914A (ja) * | 1997-09-22 | 1999-04-09 | Matsushita Electric Ind Co Ltd | スキャンパス制御回路 |
Also Published As
Publication number | Publication date |
---|---|
WO2001016610A1 (en) | 2001-03-08 |
JP2003508830A (ja) | 2003-03-04 |
CN1335937A (zh) | 2002-02-13 |
US6560663B1 (en) | 2003-05-06 |
EP1125141A1 (en) | 2001-08-22 |
CN1197008C (zh) | 2005-04-13 |
KR20010083931A (ko) | 2001-09-03 |
DE60025631D1 (de) | 2006-04-06 |
EP1125141B1 (en) | 2006-01-18 |
DE60025631T2 (de) | 2006-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5828824A (en) | Method for debugging an integrated circuit using extended operating modes | |
JP5536297B2 (ja) | コ−デバッギング機能を支援する半導体集積回路および半導体集積回路テストシステム | |
EP1041491A2 (en) | Method and apparatus for adding and removing components without powering down the computer system | |
US5568492A (en) | Circuit and method of JTAG testing multichip modules | |
US6055656A (en) | Control register bus access through a standardized test access port | |
JPH05259878A (ja) | トライステート制御回路 | |
KR100735169B1 (ko) | 버스 경합을 방지하기 위한 시스템 및 방법 | |
US7319947B1 (en) | Method and apparatus for performing distributed simulation utilizing a simulation backplane | |
KR100788059B1 (ko) | 버스 경합 방지 방법 및 시스템 | |
JP2003515732A (ja) | フレキシブル選択のスキャン・テストに関するシステム、方法および装置 | |
US6745273B1 (en) | Automatic deadlock prevention via arbitration switching | |
Kommineni et al. | Design & verification of AMBA AHB-Lite memory controller | |
Nowick et al. | Practicality of state-machine verification of speed-independent circuits | |
Pateras et al. | BIST: a test a diagnosis methodology for complex, high reliability electronics systems | |
US8327202B2 (en) | System and method for scan testing | |
JP3606520B2 (ja) | システムlsiのテストパターン作成方法,システムlsiのテストパターン作成装置,及びシステムlsiのテスト方法 | |
Pataskar et al. | AMBA AXI4 Interconnect Universal Verification Component. | |
Siddamal et al. | Verification of AHB2APB Bridge Protocol Using UVM | |
JP3278833B2 (ja) | 論理回路テスト方法及びテスト入力回路及びテスト出力回路 | |
JP2006065457A (ja) | インタフェース回路生成装置およびインタフェース回路 | |
Patil et al. | SYSTEM VERILOG ASSERTIONS FOR THE AHB PROTOCOL VERIFICATION | |
Izzo | An illustration of specification modeling with VHDL using a Futurebus+ model | |
JPH02213153A (ja) | ブロック配置処理方式 | |
JPS62150181A (ja) | 大規模集積回路の試験方式 | |
JPS60114943A (ja) | 自已診断回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20120622 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20130603 Year of fee payment: 7 |
|
LAPS | Lapse due to unpaid annual fee |