KR20060003063A - SoC를 위한 재구성가능 조직 - Google Patents
SoC를 위한 재구성가능 조직 Download PDFInfo
- Publication number
- KR20060003063A KR20060003063A KR1020057020501A KR20057020501A KR20060003063A KR 20060003063 A KR20060003063 A KR 20060003063A KR 1020057020501 A KR1020057020501 A KR 1020057020501A KR 20057020501 A KR20057020501 A KR 20057020501A KR 20060003063 A KR20060003063 A KR 20060003063A
- Authority
- KR
- South Korea
- Prior art keywords
- circuit
- output
- input
- module
- programmable
- 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
-
- 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/318533—Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
- G01R31/318555—Control logic
-
- 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/318533—Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
- G01R31/318541—Scan latches or cell details
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Semiconductor Integrated Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Logic Circuits (AREA)
Abstract
래퍼의 동작 기능에 영향을 미칠 능력이 있고, 그 결과 설계된 SoC의 동작 기능에 영향을 줄 수 있는 기능 재구성가능 모듈(functionally reconfigurable module:FRM)을 포함하는 래퍼를 사용함으로써 월등히 효과적인 SoC 설계가 달성된다. 코어와 래퍼 조합의 일 실시예에는, 래퍼 내에 속한 별도의 입력 및 출력 셀들과, 별도의 FRM이 포함된다. 또 다른 실시예는, FRM에 속한 입력 및 출력 셀들을 포함할 수 있다. FRM은, 예컨대 현장 프로그램가능 논리 배열(field programmable logic array:FPLA)을 이용하여 구현될 수 있다. 다양한 SoC 소자들을 상호연결시키는 신호 경로 네트워크에서 다수의 예비 리드들을 제공함으로써 또 다른 발전이 실현된다.
코어, 래퍼, 모듈, SoC, FRM, 리드, 리드
Description
본 발명은 집적 회로, 구체적으로는 집적 회로 설계 방법에 관한 것이다.
하나의 집적 회로 내에 고도로 복잡한 시스템을 설계하는 것은 집적 회로 설계 분야의 새로운 과제이다. 빠른 속도와 대규모 처리량의 응용에 대한 요구에 의하여, 코어 레벨에서의 재사용 정책을 채택하는 것만으로 VLSI(very large-scale integrated circuits)의 설계가 매우 유리하게 이루어질 수 있다는 점은 거의 명백한 일이 되었다. 그와 같은 재사용은 매우 복잡한 칩의 효과적 설계를 가능하게 할 뿐만 아니라, 매우 단시간에 그와 같은 설계를 제공한다. 이와 같은 재사용 방법에서는, 이전의 인-하우스 설계로부터 이용 가능하거나 기타 상업 장치로부터 이용 가능한 코어들이, 집적 회로가 인쇄 회로 배선 기판 상에서 상호연결되는(interconnected) 방법과는 다른 방식으로, 상호연결되어 시스템 온 칩(SoC: system on chip)을 형성한다. 코어는 CPU, 메모리, 네트워크 제어기, UART 등을 구현하도록 이용 가능하다. 코어를 사용하는 이점은 이들 설계가 과거에 이미 (디버깅되고 철저히 검증되어) 완벽하게 되어 있고 동작에 있어서 올바른 것이라고 가정될 수 있다는 사실에 있다.
일부 SoC 설계는 이용 가능한 코어들을 단순히 서로 연결하는 것에 의해서는 이용 가능하지 않은 기능들을 요구하며, 따라서 그와 같은 설계가 하나 이상의 특수 설계된 사용자 정의형 논리(UDL) 모듈을 포함한다는 점을 알아야 한다. UDL 모듈은 단순한 조합 논리 이상의 것을 포함할 수 있다.
본 명세서의 문맥에서, "코어"라는 용어는, 통상 어떠한 변화도 가하지 않고 집적 회로 설계자가 채용하는 이미 패키징된 설계 모듈을 가리키는 것이다. UDL 모듈은 코어들과 결합하여 집적 회로의 기능 회로를 형성하는 집적 회로 설계의 기능 소자들을 나타낸다.
또한, 완성된 집적 회로 설계의 검증에 관해서라면, 그 시스템의 전체적 설계나 현재의 UDL이 오류를 포함하고 있을 수도 있고, 초기 설계 단계에서 코어들 간 인터페이스가 적절한 방식으로 밝혀지지 못했을 수도 있고, 레이아웃이 적절하게 설계되지 못했을 수도 있기 때문에, 집적 회로의 설계에 코어를 사용하는 것이 충분하지는 않다.
SoC에 있어서 가능한 제조 결함들의 수많은 원인들로 인하여 SoC는 테스트 가능해야만 한다. 종종, 코어들은, SoC 내에 속한 어떤 코어가 액세스될 수 있을 경우, 적어도 그 코어가 테스트될 수는 있을 정도로 이용 가능한, 서로 관련된 일조의 테스트들을 포함한다. 이는, SoC 설계 내에 내포된 각각의 코어에 액세스하기 위한 메커니즘이 포함될 경우, 매우 복잡한 설계의 테스팅도 실현가능하게 한다.
정확하게 이러한 능력을 제공하기 위하여 래퍼(wrapper)의 개념이 생겨났다. 래퍼는 코어를 둘러싸고 있고, SoC 외부로부터 (반드시 직접적이지는 않더라도) 액 세스 가능한 회로를 포함한다. 래퍼는, 코어의 모든 입력 및 출력이 그 래퍼를 통과해서만 액세스 가능하므로, 코어를 둘러싸고 있다고 말해진다. 달리 말하면, 래퍼는 관련 코어의 I/O 리드가 연결된 내부 I/O 리드와, 외부 I/O 리드를 갖는다. 각 내부 I/O 리드는 대응하는 외부 I/O 리드를 포함한다. 일반적으로 래퍼는 많은 추가적 외부 I/O 리드를 포함한다.
도 1은 IEEE 제안 P1500 표준에 따른 래퍼의 구조를 도시한 것이다. 예컨대, http://grouper.ieee.org/groups/1500을 참조하기 바란다. 앞서 정의된 의미에 따라 코어(20)를 래핑, 즉 둘러싸는 래퍼(10)가 포함된다. 래퍼 직렬 입력(18)은 시프트 레지스터 유사의 래퍼 입력-인터페이스 셀(13) 셋트로 인가되고, 그로부터 직렬 레지스터 유사의 래퍼 출력 셀(14) 셋트로 인가된다. 셋트(14)의 직렬 출력은 다중화기(15)로 인가된다. 직렬 입력이 또한, 대개 1-비트 지연을 제공하는 바이패스 레지스터(bypass register; 17)를 통하여 다중화기(15)로 인가된다(상이한 입력 리드). 마지막으로, 그 직렬 입력은 래퍼 명령어 레지스터(11-1)를 포함하고 있는 래퍼 제어 소자(11)로 인가되는데, 그러한 래퍼 명령어 레지스터(11-1)는 직렬 입력을 수신하고 그 명령어 레지스터(11-1)에 저장된 정보를 제어기(11-2)로 인가한다. 실제로, 레지스터(11-1)는 직렬 입/출력 레지스터이자 병렬 입/출력 레지스터이다. 레지스터(11-1)로의 병렬 입력은 버스(12)를 통하여 외부 래퍼(10)로부터 인가되고, 직렬 출력은 다중화기(16)의 제1 입력으로 인가된다. 다중화기(15)의 출력은 다중화기(16)의 제2 입력으로 연결되고, 다중화기(16)의 출력은 래퍼(10)의 직렬 출력을 형성한다. 제어기(11-2)가 입력 셀 셋트, 출력 셀 셋트, 그 리고 다중화기(15 및 16)를 제어한다.
SoC의 일련의 핀들에서, 외부 테스터가 코어에 대해 테스트 벡터를 적용한다. 코어의 래퍼와 이들 핀 간의 경로가 Test Access Mechanism 또는 TAM 이라고 불린다. TAM은 사용자 정의형이며 P1500 표준의 일부가 아니다.
2002년 9월, Kluwer Academic Publishers, Journal of Electronic Testing의 volume 21, 페이지 51-70, "A Novel Reconfigurable Wrapper for Testing of Embedded Core-Based SOCs and its Associated Scheduling Algorithm"에서 S. Koranne은 시스템 레벨의 효율적 테스트 스케줄링과 함께 TAM 최적화 문제를 다루고 있다. Koranne은 집적 회로(IC)의 포트들에 있어서 이용 가능한 테스트 핀의 수가 제한되므로, 총 테스트 비용을 줄이기 위해서는 테스트 비트들이 분할되어야만 한다고 말한다. 이전의 방법들은 고정된 폭의 TAM을 가정하고서 코어들에 대한 테스트 래퍼를 설계해 왔다는 점을 알아내고서, Koranne은 래퍼에 의하여 병렬로 처리되는 TAM 비트의 수가 고정되지 않고 변경될 수 있는 방법을 개시하였다. Koranne은 이를 "재구성 가능 래퍼 설계"라고 한다.
Koranne이 그의 방법을 무엇이라 부르건 간에, 이는 여전히 SoC 내에 속한 코어의 테스팅에 이용된 TAM 비트 수에 대해서만 제어를 제공하는 방법이다. 기껏해야, 그와 같은 제어는 TAM의 파라미터에 대한 제어라고 불릴 수 있을 것이다. Koranne이 제안한 것에 의해서는 래퍼의 기능이 변경되지 못한다.
그러나, SoC 설계의 복잡도로 인하여, 래퍼의 기능에 대해 제어를 행사하고, 그 결과 코어 및 래퍼 조합의 기능에 영향을 미칠 수 있는 방법을 이용한 설계 전 형(paradigm) 및 구조를 채택하는 것이 매우 바람직하게 된다.
래퍼의 동작 기능에 영향을 미칠 능력이 있고, 그 결과 설계된 SoC의 동작 기능에 영향을 줄 수 있는 기능 재구성가능 모듈(functionally reconfigurable module:FRM)을 포함하는 래퍼에 의하여 당해 기술 분야에서 상당한 발전이 이루어진다. 코어와 래퍼 조합의 일 실시예에는, 래퍼 내에 속한 별도의 입력 및 출력 셀들과, 별도의 FRM이 포함된다. 관련된 코어의 각 출력이 래퍼 내의 출력 셀과 FRM으로 연결된다. 출력 셀은 래퍼의 출력 리드로 신호를 전달한다. 래퍼로의 각 입력이 입력 셀과 FRM으로 연결되고, 입력 셀은 그 출력을 관련된 코어의 입력 리드로 출력한다. 또 다른 실시예는, FRM에 속한 입력 및 출력 셀들을 포함할 수 있다. FRM은, 예컨대 구성 메모리(configuration memory)에 의해서 기능이 결정되는 현장 프로그램가능 논리 배열(field programmable logic array:FPLA)과 비슷한 논리에 의하여 구현될 수 있다.
FRM 모듈의 탁월한 유연성은 (a) 그 구성가능 속성, (b) 래퍼, 관련 코어 및 그 래퍼의 입력 리드 간의 상호연결, 그리고 (c) FRM이 메모리와 조합하여서도 메모리 없이도 구현될 수 있다는 사실에 기인한다.
다양한 SoC 소자들을 상호연결시키는 신호 경로 네트워크(signal paths network)에서 많은 수의 예비 리드들을 제공함으로써 또 다른 발전이 실현된다. 예시적으로, 각 래퍼를 또 다른 래퍼로 연결시키는 리드의 수는, FRM에 연결되어 테스팅, 모니터링, 설계 정정, 제조 결함 정정 등에 이용될 수 있는 예비 리드들에 따라 증가한다.
일 태양에 있어서, 본 발명은 일련의 입력 및 출력을 갖춘 기능 회로와 입력 셀들 및 출력 셀들을 포함한 제2 회로(각 입력 셀은 외부 입력과 기능 회로의 대응 입력으로 연결된 내부 출력을 포함하고, 각 출력 셀은 외부 출력과 기능 회로의 대응 출력에 연결된 내부 입력을 포함함)를 갖는 장치에 관한 것이다. 그 제2 회로는 또한 복수의 입력과 복수의 출력을 갖는 프로그램가능 회로 수단을 포함하고, 각 입력 셀은 기능 회로의 대응 입력을 선택적으로 입력 셀의 외부 입력이나 프로그램가능 회로 수단의 출력으로 연결시키는 제어 수단을 포함한다. 또한, 각 출력 셀은 출력 셀의 외부 출력을 선택적으로 프로그램가능 회로 수단의 출력이나 기능 회로의 대응 출력으로 연결시키는 제어 수단을 포함한다.
본 장치의 일 실시예에서, 프로그램가능 회로 수단은 구성 메모리를 포함한다.
본 장치의 또 다른 실시예에서, 그와 같은 구성 메모리는 비휘발성 메모리로 이루어진다.
본 장치의 또 다른 실시예에서, 프로그램가능 회로 수단은 또한 복수의 도전체와, 그 도전체들 중에서 선택된 것들을 선택적으로 상호연결시키는 복수의 스위치를 포함하고, 그러한 복수의 스위치 각각의 상태는 구성 메모리에 저장된 값에 의해서 제어된다.
본 장치의 또 다른 실시예에서, 각 출력 셀의 제어 수단은 프로그램가능 회로 수단의 출력에 연결된 제1 입력과, 기능 회로의 대응 출력에 연결된 제2 입력과, 프로그램가능 회로 수단의 복수의 출력 중 하나로부터의 구성 신호에 연결된 제어 단자와, 출력 셀의 외부 출력에 연결된 출력을 갖는 다중화기를 포함한다.
본 장치의 또 다른 실시예에서, 다중화기 출력은 프로그램가능 회로 수단의 복수의 출력 중 하나로부터의 제2 구성 제어 신호에 응답하는 3-상태(tri-state) 버퍼를 통하여 출력 셀의 외부 출력 리드로 연결되는데, 그 드라이버는 상기 제2 구성 제어 신호가 제1 논리 레벨인 경우 입력 신호를 출력으로 전달하고, 제2 구성 제어 신호가 제2 논리 레벨인 경우 그 출력으로 하이 임피던스를 제시한다.
본 장치의 또 다른 실시예에서, 각 출력 셀의 제어 수단은, 프로그램가능 회로 수단의 출력에 연결된 입력과, 그 출력 셀의 외부 출력에 연결된 출력을 갖는 제1 3-상태 드라이버와, 기능 회로의 대응 출력에 연결된 입력과 역시 그 출력 셀의 상기 외부 출력에 연결된 출력을 갖는 제2 3-상태 드라이버를 포함하며, 이들 드라이버 각각은 상기 프로그램가능 회로 수단에 연결된 제어 단자를 갖는다.
본 장치의 또 다른 실시예에서, 상기 드라이버들의 상기 제어 단자들에 인가된 신호는 언제나 상기 드라이버들 중 많아야 하나를 인에이블(enable)하도록 구성된다.
본 장치의 또 다른 실시예에서, 기능 회로는 코어 회로이다.
또 다른 실시예에서, 본 장치는 상기 프로그램가능 회로 수단에 대한 정보를 수신하기 위하여 적어도 하나의 구성 입력 리드를 더 포함한다.
또 다른 실시예에서, 본 장치는 집적 회로이고 기능 회로와 제2 회로가 모듈을 형성하며 기능 회로의 입력 및 출력은 상기 제2 회로 내의 회로를 통과해서만 상기 모듈의 외부로부터 액세스 가능하다.
본 장치의 또 다른 실시예에서, 각 입력 셀의 제어 수단은, 상기 프로그램가능 회로 수단 내의 구성 메모리 소자로부터 상기 셀로 인가된 구성 신호에 기초하여, 기능 회로의 대응 입력을 선택적으로 입력 셀의 외부 입력이나 프로그램가능 회로 수단의 출력으로 연결시킨다.
본 장치의 또 다른 실시예에서, 기능 회로는 코어이고 제2 회로는 REFAB이다.
본 장치의 또 다른 실시예에서, REFAB는 프로그램가능 논리와 프로그램가능 상호연결 구조를 포함한다.
본 장치의 또 다른 실시예에서, 상기 프로그램가능 논리의 프로그래밍은 메모리 모듈의 내용에 대한 제어를 통해서 달성된다.
또 다른 실시예에서, 본 장치는 상기 메모리 모듈의 내용을 제공하기 위한 적어도 하나의 구성 입력 리드를 더 포함한다.
본 장치의 또 다른 실시예에서, REFAB는 현장 프로그램가능 배열로 이루어진다.
또 다른 실시예에서, 본 장치는 집적 회로이고 기능 회로와 제2 회로가 제2 모듈을 형성하며 그 집적 회로는 제2의 유사 모듈을 포함한다. 또한, 집적 회로는 상기 제1 모듈의 출력 셀의 하나 이상의 상기 외부 출력을 상기 제2 모듈의 입력 셀의 하나 이상의 상기 외부 입력으로 연결시키는 도전체들을 포함한다.
장치의 또 다른 실시예에서, 상기 제1 또는 제2 모듈 중 적어도 하나에 있는 기능 회로는 코어 회로이다.
장치의 또 다른 실시예에서, 상기 제1 또는 제2 모듈 중 적어도 하나에 있는 기능 회로들 중 하나는 코어 회로이며, 상기 기능 회로들 중 다른 하나는 UDL 회로이다.
장치의 또 다른 실시예에서, 제1 모듈 및 제2 모듈의 제2 회로들을 상호연결하는 도전체의 개수는, 제1 및 제2 모듈의 상기 제2 회로들이 없는 경우에 상기 제1 모듈의 상기 기능 회로와 상기 제2 모듈의 상기 기능 회로를 연결하는데 필요한 도전체들의 개수보다 크다.
또 다른 실시예에서, 장치는 상기 제1 모듈의 프로그램가능 회로 수단과 상기 제2 모듈의 프로그램가능 회로 수단 사이에 가로놓인 구성 리드들(configuration leads)을 더 포함한다.
장치의 또 다른 실시예에서, 상기 모듈들 각각의 기능 회로는 상기 집적 회로의 설계에 상기 기능 회로를 포함시키기 전에 완료되고 입증된 설계인 것을 특징으로 한다.
장치의 또 다른 실시예에서, 상기 기능 회로들 각각은 상기 집적 회로의 설계자에 의해 유닛으로서 입수된 설계를 갖는다.
장치의 또 다른 실시예에서, 상기 기능 회로들 각각은 상기 집적 회로의 설계에 상기 기능 회로를 포함시키기 전에, 알려져 있는 기능 회로의 동작 상태를 입증하기 위한 테스트법(test regimen)을 갖는다.
또 다른 실시예에서, 장치는 상기 제1 모듈의 출력 셀의 하나 이상의 외부 출력들 및 상기 제2 모듈의 입력 셀의 하나 이상의 외부 입력들에 연결된 하나 이상의 사용자 정의된 논리 회로를 추가적으로 포함한다.
장치의 또 다른 실시예에서, 상기 제1 또는 제2 모듈 중 선택된 모듈의 프로그램가능 회로 수단은 상기 도전체들 중 하나를 통과하는 신호(s)를 신호(q)에 의해 대체하도록 구성된다. 다른 실시예에서, 신호(q)는 상기 신호(s)의 함수일 수 있다.
장치의 또 다른 실시예에서, 상기 모듈들 중 적어도 하나에 있는 프로그램가능 회로 수단은 관련된 기능 회로를 테스트하도록 구성된다.
장치의 또 다른 실시예에서, 상기 모듈들 중 하나에 있는 프로그램가능 회로 수단은 상기 관련된 기능 회로를 테스트하기 위한 테스트 벡터들을 생성하도록 구성된다.
장치의 또 다른 실시예에서, 상기 제1 모듈의 프로그램가능 회로 수단은 제1 테스트 회로와 함께 구성되고, 상기 제2 모듈의 프로그램가능 회로 수단은 제2 테스트 회로와 함께 구성되고, 상기 제1 테스트 회로 및 상기 제2 테스트 회로는 상호연결되어 있다.
장치의 또 다른 실시예에서, 상기 제1 모듈의 프로그램가능 논리 수단 또는 상기 제2 모듈의 프로그램가능 회로 수단 또는 양자는 상기 집적 회로에서 제조 결함을 수리하도록 구성된다.
장치의 또 다른 실시예에서, 결함들은 집적 회로에서 모듈들을 상호연결하는 연결 조직(connection fabric) 내에 있다.
장치의 또 다른 실시예에서, 상기 모듈들 중 제1의 외부 출력으로부터의 M개의 도전체들은 상기 모듈들 중 제2의 상기 외부 입력들 중 M개에 연결되고, 이 때 M은 상기 집적 회로의 기능에서 상기 제1 모듈의 기능 회로 및 상기 제2 모듈의 기능 회로의 I/O 리드들 사이를 연결시키기 위해 필요로하는 도전체들의 개수(N)에 예비 리드들(spare leads)의 개수(S)를 더한 것과 같다. 장치의 일부 실시예에서, M은 N에 S를 더한 것에 구성 리드들의 개수(C)를 더한 것과 같다. 일부 실시예들에서, S는 N에 직접적으로 비례한다. 다른 실시예들에서, S는 N의 1퍼센트를 정수로 반올림한 값이다.
장치의 또 다른 실시예에서, 상기 모듈들 중 하나의 제2 회로는 신호- 상기 신호는 상기 모듈의 기능 회로의 하나 이상의 출력 신호의 함수임 -를 상기 예비 신호 리드들 중 하나에 전달되도록 구성된다.
장치의 또 다른 실시예에 있어서, 신호는 또한, 상기 예비 신호 리드들을 통하여 상기 프로그램가능 회로 수단에 인가되는 하나 이상의 신호의 함수이다.
장치의 또 다른 실시예에 있어서, 표준 동작시, 상기 모듈들의 상기 프로그램가능 회로 수단은 상기 모듈들 중 상기 입력 셀들 및 출력 셀들의 상태를 구성하는 것 외에는 관여하지 않는다. 일부 실시예들에서, 상기 모듈들 중 하나 이상에서 또는 상기 모듈의 상호연결 패턴에서 설계 변경들을 구현하기 위하여, 표준 동작시 상기 모듈들의 상기 프로그램가능 회로 수단 중 적어도 하나가 상기 집적 회로의 논리 기능에 추가된다.
장치의 또 다른 실시예에서, 상기 모듈의 프로그램가능 논리 수단은 신호- 상기 신호는 a) 상기 프로그램가능 회로 수단의 입력 신호, (b) 상기 모듈에 연관된 기능 회로의 출력 신호, (c) 상기 예비 신호 리드들을 통하여 상기 프로그램가능 회로 수단에 인가되는 입력 신호로 이루어진 셋트로부터 취한 하나 이상의 신호의 함수임 -를 개발하도록 구성되고, 개발된 신호는 (i) 상기 모듈의 입력 셀, (ii) 상기 모듈의 출력 셀 및 (iii) 상기 예비 신호 리드들 중 하나로 이루어진 셋트로부터 취한 점에 인가된다.
장치의 또 다른 실시예에서, 프로그램가능 회로 수단은 원하는 논리 함수를 구현하는 메모리 소자들을 포함한다.
다른 태양으로 본 발명은, 기능 회로 및 래퍼를 갖는 복수의 모듈을 구비하는 집적 회로를 작동하는 방법에 관련된다. 방법은, 프로그램된 함수를 수행하기 위하여 모듈들 중 적어도 하나의 래퍼 내에 있는 프로그램가능 회로 수단을 프로그래밍하는 단계; 프로그램가능 회로의 프로그램된 함수를 수행하는 단계 및 적어도 하나의 출력 신호를 출력하는 단계를 포함한다.
방법의 일부 실시예들에서, 프로그램된 함수는 디버그(debug) 함수이다. 일부 실시예들에서, 디버그 함수는 정지점 지시자(breakpoint indicator)를 출력한다. 다른 실시예들에서 디버그 함수는 이벤트 카운터(event counter)이다.
방법의 다른 실시예에서, 프로그램된 함수는 모듈들 중 적어도 하나의 기능 회로를 테스트한다.
방법의 또 다른 실시예에서, 복수의 모듈 내에 있는 프로그램가능 회로 수단은 테스트 함수를 수행하는 동안 상호작용하도록 프로그램된다.
또 다른 실시예에서 방법은, 프로그램가능 회로 수단을 포함하는 모듈의 래퍼를 통하여 모듈들 중 적어도 하나의 프로그램가능 회로 수단으로 적어도 하나의 신호(s)를 선택적으로 라우팅하는 단계를 추가적으로 포함하며, 프로그램된 함수는 신호(s)의 논리 역(logical inverse)인 출력 신호를 형성한다.
방법의 또 다른 실시예에서, 출력 신호는 집적 회로의 예비 리드들을 통하여 별개의 모듈의 래퍼에 연결된다.
다양한 실시예들의 특징들은 단독으로 또는 임의의 조합으로 사용될 수 있다. 또한, 본 발명의 실시예를 실시하는 임의의 장치의 특징은 본 발명이 구현되는 방법의 일부로서 구현될 수 있을 것이다. 마찬가지로, 본 발명을 채택하는 방법의 특징은 본 발명의 실시예를 실시하는 장치의 일부로서 구현될 수 있을 것이다.
첨부된 도면은 비례적으로 그려진 것이 아니다. 도면들에서, 다양한 도면들에 도시되어 있는 동일하거나 또는 거의 동일한 컴포넌트들은 동일한 숫자로 표시되어 있다. 설명의 명료함을 위하여, 도면에서 일부 컴포넌트들은 라벨링되지 않을 수 있다.
도 1은 제안된 P1500 표준에 따르는 래퍼 설계도.
도 2는 본 발명의 원리에 따른 래퍼 설계도.
도 3은 FRM들 사이에 예비 라인들을 사용한 입력 및 출력 셀들의 구조도.
도 4는 도 3의 설계에 채택될 수 있는 FPLA의 구조도.
도 5는 2개의 코어 및 관련된 래퍼들을 통한 코어들의 표준 상호연결도.
도 6은 코어의 유효 출력(core's effective output)을 역전(invert)시키도록 래퍼를 구성하는 도면.
도 7은 코어의 유효 입력을 역전시키도록 래퍼를 구성하는 도면.
도 8, 9 및 10은 각각 크로스토크(crosstalk) 문제, "개방(open)" 문제 및 "단락(short) 문제를 극복하도록 예비 리드을 구성하는 도면.
도 11, 12 및 13은 하나 이상의 래퍼 내에 FRM들을 구성함으로써 UDL의 설계 문제를 정정하기 위한 다른 접근기법들의 도면.
도 14는 하나 이상의 래퍼 내에 있는 FRM들에 구성될 수 있는 모니터링 함수의 일 예시도.
도 15는 코어들의 테스팅 및 구현되는데 필요한 임의의 함수가 SoC 내에 있는 FRM들의 수집된 리소스(collective resources)를 사용하여 구현될 수 있음을 도시하는 도면.
도 16 및 17은 하나 이상의 래퍼의 FRM들 내에 테스터들을 구성함으로써 UDL들 및 상호연결들을 테스트하는 도면.
본 발명은 후술하는 설명 또는 도면들의 도시에 개시된 컴포넌트들의 구축 및 배치의 세부사항으로 그 적용이 제한되지 않는다. 본 발명은 다른 실시예들이 가능하며, 다양한 방식으로 실시 또는 수행 가능하다. 또한, 본 명세서에서 사용되는 구문 및 용어는 설명을 하기 위한 것이며, 제한적인 것으로 간주되어서는 안 된다. "포함하는(including)", "포함하는(comprising)", "갖는(having)", "함유하는(containing)", "구비하는(involving)" 및 본 명세서에 있는 이들의 변형물들의 사용은 그 후에 열거되는 항목들 및 그들의 균등물 뿐만 아니라 추가적인 항목들까지 포함하는 것을 의미한다.
도 2는 본 명세서에서 개시되는 원리에 따라 구축되는 래퍼(30)에 연결된 코어(20)의 블록도를 나타낸다. 코어(20)는 예컨대, "시스템 온 칩(system on chip)", 또는 SoC로 사용된다. SoC는 입력 신호들(21) 및 출력 신호들(24)을 통해 코어(20)와 통신하는데, 입/출력 신호는 모두 래퍼(30)를 통과하여 코어로 및 코어로부터 진행한다. 기본적으로 코어(20)의 입력 리드들(22)은 래퍼(30)의 내부(출력) 리드들에 연결되는데, 이 내부 리드들은 래퍼(30) 내에서 입력 셀 셋트(31)의 출력 단자들에 연결된다. 외부 입력 리드들(21)은 입력 셀 셋트(31)의 입력 단자들에 연결되어 신호가 래퍼(30)를 통해 코어(20)로 전달되도록 해 준다. 마찬가지로, 코어(20)의 출력 리드들(23)은 래퍼(30)의 내부(입력) 리드들에 연결되는데, 이 내부 리드들은 래퍼(30) 내에서 출력 셀 셋트(34)의 입력 단자들에 연결된다. 출력 셀 셋트(34)의 출력 단자들은 래퍼(30) 외부로 확장되어 외부 출력 리드들(24)에까지 이른다. 덧붙여, 래퍼(30)는 셀 셋트(31) 및 셀 셋트(34)에 연결된 기능 구성가능 모듈(FRM: functionally configurable module; 40)을 포함한다. FRM은 예컨대, 현장 프로그램가능 배열(field programmable array) 및 소정의 제어 회로를 이용하여 구현될 수 있으며, 현장 프로그램가능 배열의 기능은 현장 프로그램가능 배열의 일부인 구성 메모리의 내용에 의해 결정된다. FRM(40)은 또한, 직렬 입력(41; 아마도 복수-리드 버스(multi-lead bus)) 및 직렬 출력(42)을 포함하며, SoC의 래퍼 셋트를 통과하는 직렬-연결(daisy-chained)은 SoC의 모든 FRM이 직렬 연결을 통하여 구성되도록 해 준다. 비록 명시적으로 도시되지는 않았으나, FRM(40)은 또한 래퍼의 기능 및 동작을 설정하기 위해 인가될 수 있는 제어 신호들이 통과하는 리드들을 포함한다. 따라서 본 명세서에서 개시되는 원리들에 따르면, REFAB(reconfigurable fabric; 재구성가능 조직)를 이용하여 유연한 SoC가 생성되는데, 이는 입력 셀들, 출력 셀들 및 FRM의 집합을 포함하는 래퍼이다. 하나의 관심 실시예에서, FRM은 실질적으로 현장 프로그램가능 논리 및 FRM 내의 논리 및 상호연결을 구성하는 메모리만으로 구성된다. 이는 대체적으로 FRM "실 면적(real estate)"의 95%를 넘는 부분이 현장 프로그램가능 논리 및 관련 구성 메모리 소자들에 전용되고 있음을 의미하는 것이다.
입력 셀 셋트(31) 및 출력 셀 셋트(34)가 FRM(40) 내에 내장될 수 있으나, 개시를 위하여 본 개시의 모든 도면에서는 별개의 소자들로서 셀들을 도시하고 있음을 주의해야 할 것이다.
도 3은 코어(20-1)의 출력 리드(23-i)가 코어(20-2)의 입력 리드(22-j)에 연결될 것을 요하는 SoC의 도시를 통하여 출력 및 입력 셀들의 구조를 도시한 것이다. 본 명세서에 개시되는 래퍼의 전형에 따라, 이 연결은 코어(20-1)의 래퍼, 즉 래퍼(30-1)를 통하여 전달하고, 코어(20-2)의 래퍼, 즉 래퍼(30-2)를 통하여 전달함으로써 달성된다. 좀 더 구체적으로 리드(23-i)는 래퍼(30-1)의 출력 셀(34-i)에 연결되고, 리드(24-i) 상으로 셀(34-i)을 나와서 래퍼(30-2)의 리드(21-j)로 연 결되고, 이는 입력 셀(31-j)로 들어간 후 리드(22-j) 상으로 입력 셀(31-j)을 나간다.
래퍼 내에 있는 출력 셀들은 셀(34-i)로 도시된 바와 같이 구축된다. 즉, 셀은 관련 코어의 출력 리드(예컨대, 23-i)에 연결된 하나의 입력을 갖는 2개의 입력 다중화기(32)를 포함한다. 코어의 동일한 출력 리드는 또한, 래퍼의 FRM, 즉, FRM(40-1)에 연결된다. 다중화기(32)의 제2 입력은 FRM으로부터 수신된다. 다중화기(32)의 출력은 3-상태(tri-state) 드라이버(33)를 통하여 래퍼(30)의 출력 리드에 연결된다. 드라이버(33)는 제어 신호가 로우(low; 논리 레벨 "0")일 때 하이 출력 임피던스인 특징을 갖는다. 제어 신호가 하이(high; 논리 레벨 "1")일 때, 드라이버(33)의 출력은 단지 그 입력과 같아진다. 구성 비트(46)와 같은 FRM(40-1) 내의 구성 메모리 비트들(도 3의 색칠된 사각형들)은 다중화기(32) 및 드라이버(33)를 제어한다.
이와 달리, 래퍼 내 출력 셀들은 셀(34-f)로 도시된 바와 같이 구축될 수 있다. 즉, 셀은 구성 비트의 제어 하에 코어 출력 리드(23-f)의 신호를 래퍼 출력 리드(24-f)으로 출력하도록 적응적으로 변경되는 3-상태 드라이버(36) 및 제2 구성 비트의 제어 하에 래퍼 내 생성된 신호를 동일한 출력(24-f)으로 출력하도록 적응적으로 변경되는 3-상태 드라이버(37)를 포함한다. 물론, 구성 비트들은 결코 양 드라이버가 동시에 신호를 각자의 출력으로 전달하도록은 설정되지 않는다.
래퍼 내에 있는 입력 셀들은 셀(31-j)로 도시된 바와 같이, 예컨대, 2개의 입력 다중화기(35)를 갖도록 구축된다. 래퍼의 외부 입력 리드(예컨대, 21-j)는 다중화기(35)의 하나의 입력 및 관련 FRM에 연결된다. 다중화기(35)에 대한 제2 입력은 FRM으로부터 수신되며, 다중화기(35)의 출력은 관련 코어의 입력 리드(예컨대, 22-j)에 연결된다. 셀(34-i)에서와 마찬가지로 FRM 내 구성 비트들은 다중화기(35)의 상태를 제어한다.
도 3은 본 명세서에서 개시되는 SoC 조직 구조에 의미심장한 장점들을 가져오는 추가적인 특징을 제공하는데, 그 특징이란 래퍼(30-1)의 FRM을 래퍼(30-2)의 FRM에 연결하는 예비 라인들(43 및 44)이다. 도 3은 단지 2개의 예비 라인들을 도시하나, 도 3의 도시는 래퍼(30-1) 및 래퍼(30-2) 사이의 모든 연결보다 적은 수를 도시할 수 있으며, 다른 래퍼들 및 UDL 모듈들로의 연결도 있을 수 있음을 유념해야 한다.
명백히, 예비 라인들의 개수는 설계상 선택의 문제이다. 그러나 2개의 래퍼들 사이의 예비 라인들의 개수는 특정 SoC 설계에서 래퍼들을 연결하는 신호 라인들의 개수에 직접적으로 비례- 비록 수학적으로 정확한 관계일 필요는 없다고 할지라도 -할 것이다. 컴퓨터로 예비 라인들의 개수를 계산한 다음, 바로 다음 정수로 반올림하면 편리하다.
다른 출력 셀 설계들을 도시하기 위해, 도 3은 래퍼(30-1)에 대하여 2개의 출력 셀들을 도시한다. 첫째(셀; 34-1)는 그 뒤에 3-상태 드라이버(33)가 위치하는 다중화기(32)를 포함한다. 둘째(셀; 34-f)는 출력들이 서로에게 또 셀의 출력(예컨대, 라인(24-f))에 연결된 3-상태 드라이버(36) 및 3-상태 드라이버(37)를 포함한다. 제1 셀에서, 다중화기(34)는 코어(20-1)로부터의 신호 또는 FRM(40-1) 내 로부터의 신호 중 하나를 선택하며, 드라이버(34)는 그 신호를 셀의 출력으로 전달하거나 디스에이블(disable)시켜 셀의 출력으로 하이 임피던스를 제공한다. 제2 셀에서는, 한 번에 드라이버들 중 오직 하나만이 인에이블되므로 셀은 그 출력에 하이 임피던스나 인에이블된 드라이버의 신호, 즉, 코어(20-1)의 신호 또는 FRM(40-1) 내로부터의 신호 중 하나를 제공한다.
도 4는 FRM(40)을 구현하는데 사용될 수 있는 하나의 FPLA 구조를 제공한다. 도 4의 라인들은 복수-리드 버스들을 나타내며, 색칠된 흑점들은 스위치 셋트들을 나타낸다. 스위치 셋트 각각은 관련 구성 비트를 가지나 명료함을 위해 도 4에는 도시가 생략되었다. 도 4의 FPLA의 설계는 상당히 일반적인 것이다. 그러나 스위치 셋트들의 배치는 논리 소자들의 배열에 있는 논리 소자들(45)로 신호들을 전달하기 위한 구성이 되도록 거의 무제한의 연결 구성들을 허용한다. 각 논리 소자는 수평 버스로부터 신호들을 획득하는 하나의 입력 버스 및 수직 버스로부터 신호들을 획득하는 하나의 입력 버스를 갖는다. 각 논리 소자는 수평 버스 또는 수직 버스(또는 둘 다)에 인가될 수 있는 하나의 출력 버스를 갖는다. 논리 블록들(45)은 다수의 방식으로 구현될 수 있다. 이들 메모리들은 직렬 입력(도 2의 소자(41))을 통해 프로그램되는데, 임의의 원하는 논리 함수를 구현할 수 있다. 간단히 하기 위해, FRM(40) 내의 다양한 구성 비트들 및 메모리들의 직렬 연결은 도 4에 도시되지 않았다. 요약하면, FRM은 프로그램가능 논리 셀들 및 예비 인터-래퍼(inter-wrapper) 연결들을 포함하여 래퍼의 논리 셀들, 입력들 및 출력들 사이의 링크들을 확립할 수 있는 프로그램가능 상호연결 네트워크(programmable interconnect network)를 갖는다. 셀들의 함수들 및 프로그램가능 상호연결의 연결들은 래퍼 내 구성 메모리를 로딩함으로써 설정된다.
이하의 섹션들은 도 2의 구조에 내재된 소정의 능력들을 설명하는 것으로, 도 5는 표준 동작 조건을 도시한다.
도 5에서, 코어(20-1)의 출력 리드는 래퍼(30-1)의 출력 셀의 다중화기(32)에 인가된다. "0" 제어 신호에 응답하여 다중화기(32)는 그 리드의 신호를 선택하여 드라이버(33)에 인가한다. "0" 제어 신호에 응답하여 드라이버(33)는 인에이블되며, 그 신호를 래퍼(30-1)의 외부로 확장시키며 이는 래퍼(30-2) 및 가능하게는 다른 래퍼들 및/또는 UDL들에까지 연결된다. 후자는 "A" 문자로 완료되는 라인으로 도시되어 있다. 래퍼(30-2) 내에서 신호는 입력 셀로 인가되며 좀 더 구체적으로는 다중화기(35)에 연결되어 "0" 제어 신호에 대한 응답으로 선택된다. 다중화기(35)의 출력은 코어(20-2)로 인가된다.
출력 신호의 역전
코어의 출력 신호는 특정 목적을 위해 원하는 것이 아닐 수 있다. 이러한 상황은, 제3자, 예컨대 코어(20-1)로부터 수신된 코어의 설계(및 레이아웃(layout))가 먼저 완료되었기 때문에 적지 않게 발생할 것으로 예상된다. 도 6은 코어(20-1)의 출력 신호(s)를 역전시켜 신호()를 형성하기 위한 구성을 제공한다. 필요한 것은 단지 래퍼(30-1)의 FRM 내에 래퍼(30-1)의 출력과 다중화기(32)의 제2 입력 사이에 연결된 인버터를 구성(즉, 생성)하는 것과 다중화기(32)에 대한 "1" 제어 신호를 구성하는 것이다. 궁극적으로 드라이버(33)에 인가되는 신호 는 이므로 도 6의 굵은 선으로 도시된 바와 같이 원하는 목적 결과가 달성된다.
입력 신호의 역전
코어의 출력 신호가, 그 출력이 인가되어야 하는 다른 다양한 래퍼들 및 UDL 모듈들에 대해서는 만족하지만, 오직 코어(30-2)에 대해서는 신호(s)가 틀리고, 신호()가 요구되는 경우를 고려할 수 있다. 도 7은 코어(20-2)에 대한 입력 신호를 역전시키기 위한 구성을 제공한다. 필요한 것은 래퍼(30-2)의 FRM 내에 래퍼(30-2)의 입력과 다중화기(35)의 제2 입력 사이에 연결된 인버터를 구성하는 것과 다중화기(35)에 대한 "1" 제어 신호를 구성하는 것이다. 궁극적으로 코어(20-2)에 인가되는 신호는 이므로 도 7의 굵은 선으로 도시된 바와 같이 원하는 목적 결과가 달성된다.
크로스토크
문제 또는 두 전선들 사이의 단락
바이패스
정정
비록 설계가 논리적으로 올바르더라도, 실제 칩의 레이아웃은 라우팅되는 두 신호들이 서로 너무 가까워서 결국 서로에게 악영향을 주는 결과가 나타날 수 있다. 이 크로스토크 문제는 일반적으로 이후의 설계 사이클에서 레이아웃을 변경함으로써 해결된다. 그러나 이 방법은 비용이 많이 든다. 제조 결함("단락")으로 연결되어서는 안되는 라인들을 맞지 않게 연결한 경우 유사한 문제가 일어난다.
본 명세서에서 개시되는 FRM은 크로스토크 문제에 관하여 도 8에 증명한 바와 같이, 연결된 래퍼들 사이의 예비 라인들을 유용하게 활용함으로써 이들 곤란점들을 수월하게 해결한다. 설명을 위하여, 도 8의 연결에서 래퍼(30-1)의 드라이버 (33)와 래퍼(30-2)의 다중화기(335) 사이의 신호 라인에 상당한 크로스토크가 있음을 발견한 것으로 가정한다. 본 명세서에서 개시되는 원리들에 따라, 이 문제는 크로스토크가 없다면, 드라이버(33)로부터(크로스토크가 있는 라인까지) 확장될 코어(20-1)의 출력 신호를, 대신 래퍼(30-1)와 래퍼(30-2)를 연결하는 예비 라인 중 하나를 통하여 확장하도록 래퍼(30-1)를 구성함으로써 극복된다. 이 해결책은 예비 라인에 도달한 신호를 다중화기(35)의 제2 리드로 제공하고, 다중화기(35)에 "1" 제어 신호를 구성하도록 래퍼(30-2)를 구성함으로써 완료된다. 그 결과 이전에 드라이버(33)로부터 다중화기(35)의 상부 입력까지 라인을 통해 흘렀던 신호는 현재 예비 라인 및 다중화기(35)의 하부 입력을 통하여 흐른다. 예비 라인은 악영향을 주는 크로스토크를 생성하는 라인으로부터 필수적으로 멀리 떨어져 있기 때문에 문제는 개선된다. 이것은 도 8의 굵은 선으로 도시되어 있다. 다중화기(32)의 제어 신호는 관련이 없으므로("상관없음") 지정되지 않은 것을 주목한다.
"단락" 바이패스에 대한 해결책은 도 9에 증명한 바와 같이 크로스토크 문제의 해결책과 동일할 수 있다.
"개방 회로" 정정
레이아웃 오류 또는 제조 결함으로 필수적인 연결이 이루어지지 않았을 수도 있는데, 그 결과 "개방 회로"가 된다. 이 결함 또한, 도 10에 증명한 바와 같이 꽤 용이하게 고쳐질 수 있다.
단락들 및 개방들과 같은 제조 결함들을 정정하는 능력은 SoC 제조자에 의해 제조된 SoC들이 테스트될 때 또는 이 후 SoC의 소비자/사용자에 의해 발휘될 수 있 음을 유의해야 할 것이다. 이것은 제조 수율을 향상시키기 위한 매우 강력한 도구이므로 개시되는 래퍼 구조는 상업용으로 중요한 이점을 나타낸다.
"설계 오류" 정정
상기 지적한 바와 같이, 설계된 SoC는 코어에 추가로 UDL 모듈들을 포함할 수 있다. UDL 모듈들은 그 SoC에 특정적으로 설계되기 때문에, UDL 모듈들이 설계 오류들을 포함할 수 있다.
도 11은 코어(20-2)로 인가되어야 하는 신호가 G(s,u)인 상황을 도시한 것으로, s는 코어(20-1)의 출력 신호이고, u는 코어(20-3)의 출력 신호이다. 설계는 래퍼(30-1) 내 소자들(32, 33)을 통하여 UDL(50)로 신호(s)를 인가하고 및 래퍼(30-3) 내 소자들(32, 33)을 통하여 UDL(50)로 신호(u)를 인가함으로써 UDL 모듈(50)로부터 함수 G(s,u)를 획득하도록 설정된다. 그러나 설계 오류때문에, UDL 모듈(50)은 실제로 다른 신호, 즉, F(s,u)를 개발한 것으로 판명될 수 있다. 이 오류는 도 11의 실시예에 따라, 신호(s)를 래퍼(30-2)로 확장되는 예비 라인들 중 하나로 전달하도록 래퍼(30-1)를 구성하고, 신호(u)를 래퍼(30-2)에 연결되는 예비 라인으로 전달하도록 래퍼(30-3)를 구성함으로써 정정된다. 래퍼(30-2)는 예비 라인들에 도착하는 신호들에 대한 응답으로 올바른 함수 G(s,u)를 생성하고 개발된 G(s,u) 신호가 다중화기(35)의 제2 입력에 인가되도록 구성된다. 다중화기(35)에 "1" 제어 신호를 인가하도록 래퍼(30-2)를 구성하면, 설계 오류 정정을 완료한다.
도 11의 정정은 비록 래퍼(30-2)와 다른 래퍼들 사이에 다른 임의의 신호 연결들은 없더라도 래퍼(30-3)와 래퍼(30-2) 사이 및 래퍼(30-1)와 래퍼(30-2) 사이 의 예비 라인을 필요로한다고 언급될 수 있다. 물론, SoC 설계에서 이러한 예비 라인들의 병합을 막을 아무런 이유도 없다.
다른 해결책이 도 12에 제시되어 있는데, 이 해결책은 UDL(50)을 감싸는 래퍼, 예컨대, 래퍼(30-4)의 생성을 막을 아무런 이유가 없다는 관찰에 기초한다. 이는 상기 설명된 라인들을 이용하여 래퍼(30-4) 내에 함수 G(s,u)의 생성을 허용한다.
예비 라인들은 오직 래퍼들 사이의 신호 라인들에 추가적으로만 포함되어야 한다는 엄격한 규칙을 따르는 또 다른 해결책이 도 13에 도시되어 있는데, 래퍼(30-1)는 자기의 다중화기(32)의 제2 입력에 신호를 인가하기 위하여 M(s)에 대응하는 신호를 개발하고, 그 신호를 자기의 드라이버(33)에 전달하도록 구성된다. 마찬가지로, 래퍼(30-2)는 자기의 다중화기(32)의 제2 입력에 신호를 인가하기 위하여 N(u)에 대응하는 신호를 개발하고, 그 신호를 자기의 드라이버(33)에 전달하도록 구성된다. 설계 문제는 F(M(s),N(u))가 G(s,u)와 같아지도록 함수들(M(s) 및 N(u))을 선택할 때 극복된다.
상기 논의된 설계 및 제조 문제들을 극복하는 정정들을 SoC 내에 영구적으로 병합시키는 것이 바람직한 다양한 환경들이 있다. 이는 본 명세서에 개시되는 원리들에 따라, FRM 내에 ROM과 같은 내장형 비휘발성 메모리를 이용하면 수월하게 달성된다. 일단 SoC가 테스트되고, 래퍼들이 설계 또는 제조 문제들을 극복하도록 구성되면, ROM은 SoC에 전원이 인가될 때, 적절한 구성 비트들을 구성하기 위한 데이터를 가지고 "구워질(burned-in)" 수 있다.
디버깅
오류의 존재 및 원인을 검출하기 위하여, SoC를 디버깅할 필요가 있을 수 있다. 유용하게도, 개시되는 구조는 강력한 디버깅 능력을 제공한다. 이것은 정지점들 삽입, 상태 덤프들(state dumps) 시행, 검사 확인(assertion checking), 이벤트 카운터들 등을 포함한다.
도 14는 코어(20-2)의 특정 출력 신호(v)가 "1"이고, 코어(20-1)의 출력 신호(s)가 "1"인 경우 논리 레벨 1을 가정하는 정지점 신호의 생성을 도시한다. 이것은 도시된 바, 래퍼(30-2)가 래퍼(30-2)와 래퍼(30-1)를 연결한 예비 라인으로 신호(v)를 전달하도록 구성하고, 래퍼(30-1)가 AND 게이트를 생성, 신호들(v 및 s)을 AND 게이트로 전달, 게이트의 출력을 정지점 정보가 전송될 곳으로 연결된 예비 라인으로 출력하도록 구성함으로써 달성된다. 현재 종래의 기술은 이러한 정지점들을 확립하거나 실시간에 상이한 코어들로부터의 신호들을 결합하도록 허용하는 임의의 SoC 디버그 메커니즘을 제공하지 않는다. 이와 달리, 래퍼(30-1)는 예컨대, 지정된 간격 내에 SㆍV = 1의 조건이 발생하는 횟수 등을 카운트하기 위한 이벤트 카운터를 구현할 수 있다. 이는 단지 게이트(37)의 출력에 응답하여 카운터를 추가하는 것을 의미한다. 카운터의 최종값은 카운터를 포함하는 직렬 레지스터를 구성하고, 상기 카운터의 상태를 스캐닝함으로써 읽어들일 수 있다. 이들은 단지 디버그 특징의 소수의 예시일 뿐임을 주의한다. 다른 예시들은 상태 덤프들, 검사 확인, 모니터링, 오류 주입(error injecting) 등을 포함한다. 숙련된 디버그 엔지니어에게, 래퍼들 사이의 예비 신호 라인들을 활용하는 래퍼들의 재구성성은 SoC 설계를 디버깅하는데 있어서 유례없는 융통성을 제공하게 될 것이다.
코드
테스팅
다수의 코어가, 코어를 테스트하기 위한 테스트 벡터들을 생성하고 또 코어로부터 획득한 응답을 분석하여 코어가 제조 결함들을 포함하는지 여부를 판정할 수 있는 내장형 자가-테스트(BIST: built-in self-test) 하드웨어를 포함한다. 종래의 BIST 논리는 일반적으로 오직 제조 테스트를 위해서만 사용되는데, 회로의 전 수명에 걸쳐 회로 내에 계속 상주한다. 본 발명의 관점에서 이것은 칩 "실 면적"의 낭비이다. 본 명세서에서 개시되는 원리들에 따른 SoC 설계에서, 자가 테스트 하드웨어는 테스트가 요구되는 경우에만 래퍼의 FRM 내로 구성된다. 코어를 테스트하기 위하여, FRM-상주 자가-테스트 하드웨어(FRM-RSTH: FRM-resident self-test hardware)는 테스트 하에서 테스트 입력들에 인가될 신호들을 생성하고, 그 출력 신호들을 분석한다. 테스트가 완료하면, FRM은 다른 목적을 위하여 재구성될 수 있다. 물론, 자가-테스트 하드웨어가 그 코어 관련된 FRM 내에서 이용가능한 리소스를 초과하는 리소스를 필요로할 수 있다. 그러나, 이것은 아무런 문제가 되지 않는데, 왜냐하면 상기 개시된 예비 리드들의 활용을 통해 다른 래퍼들의 FRM들로부터 하드웨어가 FRM-RSTH로 병합될 수 있기 때문이다. 이것은 예컨대, 도 15에서 블록들(A 및 B)이 테스트 중인 코어(20-1)에게 원하는 테스트 함수를 제공하기 위하여 연결된 것으로 도시되어 있다. 테스트 중인 코어(20-1)의 래퍼(30-1)에 있는 3-상태 드라이버들은 SoC의 나머지 부분으로부터 코어를 고립시키기 위하여 디스에이블되어 있음을 주의한다.
FRM은 제안된 P1500 표준을 구현하도록 구성될 수 있음을 주목한다.
다수의 코어가, 외부 테스터들에 의해 공급되고 TAM을 통하여 테스트 중인 코어로 전달되는 벡터들을 가지고 테스트된다. 본 명세서에 개시되는 원리들에 따라 설계된 SoC에서, 코어에 필요한 벡터들을 생성하는 모든 논리는 그 코어의 래퍼 내 및 필요한 경우 다른 래퍼들 내에 구성될 수 있다. 이러한 방식으로 TAM이 없어도 구성이 가능할 수 있다.
UDL
테스팅
개시되는 구조는 코어 동작의 무결성 뿐 아니라 UDL 모듈 동작의 무결성까지 입증할 수 있다. 도 16은 이러한 테스트 구성의 하나를 도시한 것으로, 래퍼(30-1)는 테스터와 함께 구성되고, 래퍼(30-2)는 테스터와 함께 구성된다. 양 테스터들은 UDL(50)의 입력들에 테스트 시퀀스를 인가하고, 양 테스터들은 UDL(50)의 출력들을 관찰할 수 있다.
상호연결
테스팅
도 18은 도 17의 방식과 유사한 방식으로 코어들 사이의 상호연결 또한 테스트될 수 있음을 도시한다.
코어와 래퍼의 결합 내에 FRM을 활용하는데서 비롯된 소정의 능력들을 상기에 개시하였다. 당업자라면 다른 많은 가능성들을 자명하게 알 수 있을 것이다. 설명을 위하여, 하나의 코어를 위해 필요한 또는 2개의 상이한 코어의 상호작용을 위하여 필요한 기능 회로는 단일 래퍼 내 또는 관련 코어들과 연관된 래퍼들 내의 구현들로 제한될 필요가 없다. 기능 회로는 도 17에 도시된 바와 같이 다른 래퍼 들의 리소스들을 활용할 수 있다. 이는 SoC 설계에 포함되는 전체 FRM의 잠재적인 효과를 증가시키며, 이로써 그렇지 못한 경우에 가져야할 개별적인 FRM들의 바람직한 개수보다 더 작은 수를 이끌어낼 수 있다.
본 발명의 적어도 하나의 실시예의 다수 태양을 설명하였으며, 당업자라면 다양한 변경, 수정 및 개선들이 자명함을 알 수 있을 것이다. 그러한 변경, 수정 및 개선들은 본 개시의 일부로 의도되며 본 발명의 사상과 범위 내로 의도된다. 따라서 전술한 설명 및 도면들은 단지 예시일 뿐이다.
Claims (51)
- 일련의 입력 및 출력을 갖춘 기능 회로와 입력 셀들 및 출력 셀들을 포함한 제2 회로- 각 입력 셀은 외부 입력과 상기 기능 회로의 대응 입력으로 연결된 내부 출력을 포함하고, 각 출력 셀은 외부 출력과 상기 기능 회로의 대응 출력에 연결된 내부 입력을 포함함 -를 갖는 장치에 있어서,a) 상기 제2 회로는 추가적으로 복수의 입력과 복수의 출력을 갖는 프로그램가능 회로 수단을 포함하고,b) 상기 각 입력 셀은 상기 기능 회로의 대응 입력을 선택적으로 상기 입력 셀의 외부 입력이나 상기 프로그램가능 회로 수단의 출력으로 연결시키는 제어 수단을 포함하고,c) 상기 각 출력 셀은 상기 출력 셀의 외부 출력을 선택적으로 상기 프로그램가능 회로 수단의 출력이나 상기 기능 회로의 대응 출력으로 연결시키는 제어 수단을 포함하는 장치.
- 제1항에 있어서, 상기 프로그램가능 회로 수단은 구성 메모리를 포함하는 장치.
- 제2항에 있어서, 상기 구성 메모리는 비휘발성 메모리를 포함하는 장치.
- 제2항 또는 제3항에 있어서, 상기 프로그램가능 회로 수단은 추가적으로 복수의 도전체와, 상기 도전체들 중에서 선택된 것들을 선택적으로 상호연결시키는 복수의 스위치를 포함하고, 상기 복수의 스위치 각각의 상태는 구성 메모리에 저장된 값에 의해서 제어되는 장치.
- 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 각 출력 셀의 제어 수단은, 상기 프로그램가능 회로 수단의 출력에 연결된 제1 입력, 상기 기능 회로의 대응 출력에 연결된 제2 입력, 상기 프로그램가능 회로 수단의 복수의 출력 중 하나로부터의 구성 신호에 연결된 제어 단자 및 상기 출력 셀의 외부 출력에 연결된 출력을 갖는 다중화기를 포함하는 장치.
- 제5항에 있어서, 상기 다중화기 출력은 상기 프로그램가능 회로 수단의 복수의 출력 중 하나로부터의 제2 구성 제어 신호에 응답하는 3-상태(tri-state) 버퍼를 통하여 상기 출력 셀의 외부 출력 리드로 연결되고, 상기 드라이버는 상기 제2 구성 제어 신호가 제1 논리 레벨인 경우 입력 신호를 출력으로 전달하고, 상기 제2 구성 제어 신호가 제2 논리 레벨인 경우 출력으로 하이 임피던스를 제공하는 장치.
- 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 각 출력 셀의 제어 수단은, 프로그램가능 회로 수단의 출력에 연결된 입력 및 상기 출력 셀의 외부 출력에 연결된 출력을 갖는 제1 3-상태 드라이버, 상기 기능 회로의 대응 출력에 연결된 입 력 및 역시 상기 출력 셀의 상기 외부 출력에 연결된 출력을 갖는 제2 3-상태 드라이버를 포함하고, 상기 드라이버들 각각은 상기 프로그램가능 회로 수단에 연결된 제어 단자를 갖는 장치.
- 제7항에 있어서, 상기 드라이버들의 상기 제어 단자들에 인가된 신호들은 언제나 상기 드라이버들 중 많아야 하나를 인에이블하도록 구성되는 장치.
- 제1항 내지 제8항 중 어느 한 항에 있어서, 상기 기능 회로는 코어 회로인 장치.
- 제1항 내지 제9항 중 어느 한 항에 있어서,상기 프로그램가능 회로 수단에 대한 정보를 수신하기 위하여 적어도 하나의 구성 입력 리드를 더 포함하는 장치.
- 제1항 내지 제10항 중 어느 한 항에 있어서, 상기 장치는 집적 회로이고, 상기 기능 회로와 상기 제2 회로가 모듈을 형성하며, 상기 기능 회로의 입력들 및 출력들은 상기 제2 회로 내의 회로를 통과해서만 상기 모듈의 외부로부터 액세스가능한 장치.
- 제1항 내지 제11항 중 어느 한 항에 있어서, 상기 각 입력 셀의 제어 수단은, 상기 프로그램가능 회로 수단 내의 구성 메모리 소자로부터 상기 셀로 인가된 구성 신호에 기초하여, 상기 기능 회로의 대응 입력을 선택적으로 상기 입력 셀의 외부 입력이나 상기 프로그램가능 회로 수단의 출력으로 연결시키는 장치.
- 제1항 내지 제12항 중 어느 한 항에 있어서, 상기 기능 회로는 코어이고, 상기 제2 회로는 REFAB(reconfigurable fabric)인 장치.
- 제13항에 있어서, 상기 REFAB는 프로그램가능 논리와 프로그램가능 상호연결 구조를 포함하는 장치.
- 제14항에 있어서, 상기 프로그램가능 논리의 프로그래밍은 메모리 모듈의 내용에 대한 제어를 통해서 달성되는 장치.
- 제15항에 있어서,상기 메모리 모듈들의 상기 내용을 제공하기 위한 적어도 하나의 구성 입력 리드을 더 포함하는 장치.
- 제13항 또는 제14항에 있어서, 상기 REFAB는 현장 프로그램가능 배열을 포함 하는 장치.
- 제1항 내지 제17항 중 어느 한 항에 있어서,a) 상기 장치는 집적 회로이고, 상기 기능 회로와 상기 제2 회로가 제1 모듈을 형성하며, 상기 집적 회로는 하나 이상의 유사 모듈을 포함하고,b) 상기 집적 회로는 상기 제1 모듈의 출력 셀의 하나 이상의 상기 외부 출력을 상기 제2 모듈의 입력 셀의 하나 이상의 상기 외부 입력으로 상호연결시키는 도전체들을 포함하는 장치.
- 제18항에 있어서, 상기 제1 또는 제2 모듈 중 적어도 하나에 있는 상기 기능 회로들 중 적어도 하나는 코어 회로인 장치.
- 제18항에 있어서, 상기 제1 또는 제2 모듈 중 적어도 하나에 있는 상기 기능 회로들 중 하나는 코어 회로이고, 상기 기능 회로들 중 다른 하나는 UDL 회로인 장치.
- 제18항 내지 제20항 중 어느 한 항에 있어서, 상기 제1 모듈 및 제2 모듈의 상기 제2 회로들을 상호연결하는 도전체들의 개수는, 상기 제1 및 제2 모듈의 상기 제2 회로들이 없는 경우에 상기 제1 모듈의 상기 기능 회로와 상기 제2 모듈의 상기 기능 회로를 연결하는데 필요한 도전체들의 개수보다 큰 장치.
- 제18항 내지 제21항 중 어느 한 항에 있어서,상기 제1 모듈의 상기 프로그램가능 회로 수단과 상기 제2 모듈의 상기 프로그램가능 회로 수단 사이에 가로놓인 구성 리드들(configuration leads)을 더 포함하는 장치.
- 제18항 내지 제22항 중 어느 한 항에 있어서, 상기 모듈들 각각의 상기 기능 회로는 상기 집적 회로의 설계에 상기 기능 회로를 포함시키기 전에 완료되고 입증된 설계인 것을 특징으로 하는 장치.
- 제23항에 있어서, 상기 기능 회로들 각각은 상기 집적 회로의 설계자에 의해 유닛으로서 입수된 설계를 갖는 장치.
- 제23항 또는 제24항에 있어서, 상기 기능 회로들 각각은 상기 집적 회로의 설계에 상기 기능 회로를 포함시키기 전에, 알려져 있는 상기 기능 회로의 동작 상태를 입증하기 위한 테스트법(test regimen)을 갖는 장치.
- 제18항 또는 제25항 중 어느 한 항에 있어서,상기 제1 모듈의 출력 셀의 하나 이상의 외부 출력들 및 상기 제2 모듈의 입력 셀의 하나 이상의 외부 입력들에 연결된 하나 이상의 사용자 정의된(user- defined) 논리 회로를 더 포함하는 장치.
- 제18항 또는 제26항 중 어느 한 항에 있어서, 상기 제1 또는 제2 모듈 중 선택된 모듈의 프로그램가능 회로 수단은 상기 도전체들 중 하나를 통과하는 신호(s)를 신호(q)에 의해 대체하도록 구성되는 장치.
- 제27항에 있어서, 상기 신호(q)는 상기 신호(s)의 함수인 장치.
- 제18항 내지 제28항 중 어느 한 항에 있어서, 상기 모듈들 중 적어도 하나에 있는 상기 프로그램가능 회로 수단은, 관련된 기능 회로를 테스트하도록 구성되는 장치.
- 제29항에 있어서, 상기 모듈들 중 하나에 있는 프로그램가능 회로 수단은, 상기 관련된 기능 회로를 테스트하기 위한 테스트 벡터들을 생성하도록 구성되는 장치.
- 제18항 내지 제30항 중 어느 한 항에 있어서, 상기 제1 모듈의 상기 프로그램가능 회로 수단은 제1 테스트 회로와 함께 구성되고, 상기 제2 모듈의 상기 프로그램가능 회로 수단은 제2 테스트 회로와 함께 구성되고, 상기 제1 테스트 회로 및 상기 제2 테스트 회로는 상호연결되어 있는 장치.
- 제18항 내지 제31항 중 어느 한 항에 있어서, 상기 제1 모듈의 상기 프로그램가능 회로 수단 또는 상기 제2 모듈의 프로그램가능 논리 수단 또는 양자는 상기 집적 회로에서 제조 결함들을 수리하도록 구성되는 장치.
- 제32항에 있어서, 상기 결함들은 상기 집적 회로에서 모듈들을 상호연결하는 연결 조직(connection fabric) 내에 있는 장치.
- 제18항 내지 제33항 중 어느 한 항에 있어서, 상기 모듈들 중 제1의 외부 출력으로부터의 M개의 도전체들은 상기 모듈들 중 제2의 상기 외부 입력들 중 M개에 연결되고, 상기 M은 상기 집적 회로의 기능에서 상기 제1 모듈의 상기 기능 회로 및 상기 제2 모듈의 상기 기능 회로의 I/O 리드들 사이를 연결시키기 위해 필요로하는 도전체들의 개수(N)에 예비 리드들(spare leads)의 개수(S)를 더한 것과 같은 장치.
- 제34항에 있어서, 상기 M은 N에 S를 더한 것에 구성 리드들의 개수(C)를 더한 것과 같은 장치.
- 제35항에 있어서, S는 N에 직접적으로 비례하는 장치.
- 제36항에 있어서, S는 N의 1퍼센트를 정수로 반올림한 값인 장치.
- 제34항 내지 제37항 중 어느 한 항에 있어서, 상기 모듈들 중 하나의 제2 회로는 신호- 상기 신호는 상기 모듈의 상기 기능 회로의 하나 이상의 출력 신호의 함수임 -를 상기 예비 신호 리드들 중 하나에 전달되도록 구성되는 장치.
- 제34항 내지 제38항 중 어느 한 항에 있어서, 상기 모듈들 중 하나의 제2 회로는 신호- 상기 신호는 상기 예비 신호 리드들을 통하여 상기 프로그램가능 회로 수단에 인가되는 하나 이상의 신호의 함수임 -를 상기 예비 신호 리드들 중 하나에 전달되도록 구성되는 장치.
- 제18항 내지 제39항 중 어느 한 항에 있어서, 표준 동작시, 상기 모듈들의 상기 프로그램가능 회로 수단은 상기 모듈들 중 상기 입력 셀들 및 출력 셀들의 상태를 구성하는 것 외에는 관여하지 않는 장치.
- 제40항에 있어서, 상기 모듈들 중 하나 이상에서 또는 상기 모듈의 상호연결 패턴에서 설계 변경들을 구현하기 위하여, 표준 동작시 상기 모듈들의 상기 프로그램가능 회로 수단 중 적어도 하나가 상기 집적 회로의 논리 기능에 추가되는 장치.
- 제40항에 있어서, 상기 모듈들의 프로그램가능 회로 수단은 신호- 상기 신호는 (a) 상기 프로그램가능 회로 수단의 입력 신호, (b) 상기 모듈에 관련된 상기 기능 회로의 출력 신호, (c) 상기 예비 신호 리드들을 통하여 상기 프로그램가능 회로 수단에 인가되는 입력 신호로 이루어진 셋트로부터 취한 하나 이상의 신호의 함수임 -를 개발하도록 구성되고, 상기 개발된 신호는 (i) 상기 모듈의 입력 셀, (ii) 상기 모듈의 출력 셀 및 (iii) 상기 예비 신호 리드들 중 하나로 이루어진 셋트로부터 취한 점에 인가되는 장치.
- 제1항 내지 제42항 중 어느 한 항에 있어서, 상기 프로그램가능 회로 수단은 원하는 논리 함수를 구현하는 메모리 소자들을 포함하는 장치.
- 기능 회로 및 래퍼(wrapper)를 갖는 복수의 모듈을 구비하는 집적 회로를 작동하는 방법에 있어서,a) 프로그램된 함수를 수행하기 위하여 상기 모듈들 중 적어도 하나의 상기 래퍼 내에 있는 프로그램가능 회로 수단을 프로그래밍하는 단계;b) 상기 프로그램가능 회로의 상기 프로그램된 함수를 수행하는 단계 및 적어도 하나의 출력 신호를 출력하는 단계를 포함하는 방법.
- 제44항에 있어서, 상기 프로그램된 함수는 디버그(debug) 함수인 방법.
- 제45항에 있어서, 상기 디버그 함수는 정지점 지시자(breakpoint indicator)를 출력하는 방법.
- 제45항에 있어서, 상기 디버그 함수는 이벤트 카운터(event counter)인 방법.
- 제44항에 있어서, 상기 프로그램된 함수는 상기 모듈들 중 적어도 하나의 기능 회로를 테스트하는 방법.
- 제48항에 있어서, 복수의 모듈 내에 있는 상기 프로그램가능 회로 수단은 테스트 함수를 수행하는 동안 상호작용하도록 프로그램되는 방법.
- 제44항에 있어서,상기 프로그램가능 회로 수단을 포함하는 상기 모듈의 상기 래퍼를 통하여 상기 모듈들 중 적어도 하나의 상기 프로그램가능 회로 수단으로 적어도 하나의 신호(s)를 선택적으로 라우팅하는 단계를 더 포함하고, 상기 프로그램된 함수는 상기 신호(s)의 논리 역(logical inverse)인 출력 신호를 형성하는 방법.
- 제44항에 있어서, 상기 출력 신호는 상기 집적 회로의 예비 리드들을 통하여 별개의 모듈의 상기 래퍼에 연결되는 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/425,101 US7058918B2 (en) | 2003-04-28 | 2003-04-28 | Reconfigurable fabric for SoCs using functional I/O leads |
US10/425,101 | 2003-04-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20060003063A true KR20060003063A (ko) | 2006-01-09 |
Family
ID=33299473
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020057020501A KR20060003063A (ko) | 2003-04-28 | 2004-04-28 | SoC를 위한 재구성가능 조직 |
Country Status (6)
Country | Link |
---|---|
US (2) | US7058918B2 (ko) |
EP (1) | EP1620739B1 (ko) |
JP (1) | JP4406648B2 (ko) |
KR (1) | KR20060003063A (ko) |
DE (1) | DE602004007503T2 (ko) |
WO (1) | WO2004102210A1 (ko) |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7127697B1 (en) * | 2001-08-07 | 2006-10-24 | Xilinx, Inc. | Methods of utilizing programmable logic devices having localized defects in application-specific products |
US6842039B1 (en) * | 2002-10-21 | 2005-01-11 | Altera Corporation | Configuration shift register |
KR101034494B1 (ko) * | 2004-02-11 | 2011-05-17 | 삼성전자주식회사 | 개방형 코어 프로토콜을 기반으로 하는 버스 시스템 |
JP2007524947A (ja) * | 2004-02-17 | 2007-08-30 | アンスティテュ ナシオナル ポリテクニーク ド グレノーブル | 集積回路のipコアのテスト手段のリモート制御を行うことができる通信手段を備える集積回路チップ |
US7607057B2 (en) * | 2004-12-28 | 2009-10-20 | Lsi Corporation | Test wrapper including integrated scan chain for testing embedded hard macro in an integrated circuit chip |
US7358765B2 (en) * | 2005-02-23 | 2008-04-15 | Cswitch Corporation | Dedicated logic cells employing configurable logic and dedicated logic functions |
US7605605B2 (en) * | 2005-01-27 | 2009-10-20 | Cswitch Corporation | Programmable logic cells with local connections |
US7394708B1 (en) | 2005-03-18 | 2008-07-01 | Xilinx, Inc. | Adjustable global tap voltage to improve memory cell yield |
KR100662471B1 (ko) | 2005-10-11 | 2007-01-02 | 엘지전자 주식회사 | 시스템 온 칩 구조 및 데이터 전송 방법 |
US7348796B2 (en) * | 2005-10-26 | 2008-03-25 | Dafca, Inc. | Method and system for network-on-chip and other integrated circuit architectures |
US7296201B2 (en) * | 2005-10-29 | 2007-11-13 | Dafca, Inc. | Method to locate logic errors and defects in digital circuits |
US7484153B2 (en) * | 2005-12-06 | 2009-01-27 | Kabushiki Kaisha Toshiba | Systems and methods for LBIST testing using isolatable scan chains |
US8656191B2 (en) | 2005-12-23 | 2014-02-18 | Nagravision S.A. | Secure system-on-chip |
EP1802030A1 (en) * | 2005-12-23 | 2007-06-27 | Nagracard S.A. | Secure system-on-chip |
EP1811415A1 (en) * | 2005-12-23 | 2007-07-25 | Nagracard S.A. | Secure system-on-chip |
US7519884B2 (en) * | 2006-06-16 | 2009-04-14 | Texas Instruments Incorporated | TAM controller for plural test access mechanisms |
US7827515B2 (en) * | 2007-03-15 | 2010-11-02 | Oracle America, Inc. | Package designs for fully functional and partially functional chips |
US20090271877A1 (en) * | 2008-04-28 | 2009-10-29 | Dafca, Inc. | Method to secure embedded system with programmable logic, hardware and software binding, execution monitoring and counteraction |
US7895374B2 (en) * | 2008-07-01 | 2011-02-22 | International Business Machines Corporation | Dynamic segment sparing and repair in a memory system |
US8245105B2 (en) * | 2008-07-01 | 2012-08-14 | International Business Machines Corporation | Cascade interconnect memory system with enhanced reliability |
US8082474B2 (en) * | 2008-07-01 | 2011-12-20 | International Business Machines Corporation | Bit shadowing in a memory system |
US8082475B2 (en) * | 2008-07-01 | 2011-12-20 | International Business Machines Corporation | Enhanced microprocessor interconnect with bit shadowing |
US8139430B2 (en) * | 2008-07-01 | 2012-03-20 | International Business Machines Corporation | Power-on initialization and test for a cascade interconnect memory system |
US8201069B2 (en) * | 2008-07-01 | 2012-06-12 | International Business Machines Corporation | Cyclical redundancy code for use in a high-speed serial link |
US8234540B2 (en) * | 2008-07-01 | 2012-07-31 | International Business Machines Corporation | Error correcting code protected quasi-static bit communication on a high-speed bus |
US20100005335A1 (en) * | 2008-07-01 | 2010-01-07 | International Business Machines Corporation | Microprocessor interface with dynamic segment sparing and repair |
FR2933826B1 (fr) * | 2008-07-09 | 2011-11-18 | Univ Paris Curie | Reseau logique programmable, commutateur d'interconnexion et unite logique pour un tel reseau |
US7956639B2 (en) * | 2008-07-23 | 2011-06-07 | Ndsu Research Foundation | Intelligent cellular electronic structures |
EP2366111A1 (en) * | 2008-11-13 | 2011-09-21 | Nxp B.V. | Testable integrated circuit and test method therefor |
US7979759B2 (en) * | 2009-01-08 | 2011-07-12 | International Business Machines Corporation | Test and bring-up of an enhanced cascade interconnect memory system |
US20100180154A1 (en) * | 2009-01-13 | 2010-07-15 | International Business Machines Corporation | Built In Self-Test of Memory Stressor |
JP5451542B2 (ja) * | 2010-06-30 | 2014-03-26 | 日本電信電話株式会社 | 集積回路 |
US9043665B2 (en) * | 2011-03-09 | 2015-05-26 | Intel Corporation | Functional fabric based test wrapper for circuit testing of IP blocks |
US8522189B2 (en) | 2011-03-09 | 2013-08-27 | Intel Corporation | Functional fabric based test access mechanism for SoCs |
US8793095B2 (en) * | 2011-03-09 | 2014-07-29 | Intel Corporation | Functional fabric-based test controller for functional and structural test and debug |
WO2013164663A1 (en) * | 2012-05-02 | 2013-11-07 | Freescale Semiconductor, Inc. | System-on-chip, method of manufacture thereof and method of communicating diagnostic data |
US9436623B2 (en) * | 2012-09-20 | 2016-09-06 | Intel Corporation | Run-time fabric reconfiguration |
WO2019152792A1 (en) | 2018-02-02 | 2019-08-08 | Dover Microsystems, Inc. | Systems and methods for policy linking and/or loading for secure initialization |
TW201945971A (zh) | 2018-04-30 | 2019-12-01 | 美商多佛微系統公司 | 用於檢查安全性能的系統和方法 |
EP3877874A1 (en) | 2018-11-06 | 2021-09-15 | Dover Microsystems, Inc. | Systems and methods for stalling host processor |
WO2020132012A1 (en) | 2018-12-18 | 2020-06-25 | Dover Microsystems, Inc. | Systems and methods for data lifecycle protection |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5212652A (en) * | 1989-08-15 | 1993-05-18 | Advanced Micro Devices, Inc. | Programmable gate array with improved interconnect structure |
JP3552175B2 (ja) * | 1995-05-17 | 2004-08-11 | 株式会社アドバンテスト | フェイルメモリ装置 |
US6968514B2 (en) * | 1998-09-30 | 2005-11-22 | Cadence Design Systems, Inc. | Block based design methodology with programmable components |
US6484280B1 (en) | 1999-09-30 | 2002-11-19 | Agilent Technologies Inc. | Scan path test support |
US6594802B1 (en) | 2000-03-23 | 2003-07-15 | Intellitech Corporation | Method and apparatus for providing optimized access to circuits for debug, programming, and test |
US6877122B2 (en) * | 2001-12-21 | 2005-04-05 | Texas Instruments Incorporated | Link instruction register providing test control signals to core wrappers |
EP1296152A1 (de) | 2001-09-21 | 2003-03-26 | Siemens Aktiengesellschaft | Elektronischer Baustein und Verfahren zu dessen Qualifizierungsmessung |
-
2003
- 2003-04-28 US US10/425,101 patent/US7058918B2/en not_active Expired - Lifetime
-
2004
- 2004-04-28 WO PCT/US2004/013155 patent/WO2004102210A1/en active IP Right Grant
- 2004-04-28 JP JP2006532496A patent/JP4406648B2/ja not_active Expired - Fee Related
- 2004-04-28 EP EP04750858A patent/EP1620739B1/en not_active Expired - Fee Related
- 2004-04-28 KR KR1020057020501A patent/KR20060003063A/ko not_active Application Discontinuation
- 2004-04-28 DE DE602004007503T patent/DE602004007503T2/de not_active Expired - Lifetime
- 2004-08-30 US US10/929,709 patent/US7146548B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE602004007503D1 (de) | 2007-08-23 |
EP1620739B1 (en) | 2007-07-11 |
EP1620739A1 (en) | 2006-02-01 |
US20040212393A1 (en) | 2004-10-28 |
WO2004102210A1 (en) | 2004-11-25 |
US7058918B2 (en) | 2006-06-06 |
US7146548B1 (en) | 2006-12-05 |
JP2007501586A (ja) | 2007-01-25 |
DE602004007503T2 (de) | 2008-04-17 |
JP4406648B2 (ja) | 2010-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20060003063A (ko) | SoC를 위한 재구성가능 조직 | |
JP2868213B2 (ja) | 個別試験可能論理モジュールを有する論理回路 | |
US5867507A (en) | Testable programmable gate array and associated LSSD/deterministic test methodology | |
Stroud et al. | Built-in self-test of FPGA interconnect | |
US5173904A (en) | Logic circuits systems, and methods having individually testable logic modules | |
US5130988A (en) | Software verification by fault insertion | |
CN100549711C (zh) | 远程集成电路测试方法和装置 | |
US6499124B1 (en) | Intest security circuit for boundary-scan architecture | |
Sun et al. | Novel technique for built-in self-test of FPGA interconnects | |
US5887001A (en) | Boundary scan architecture analog extension with direct connections | |
US7409612B2 (en) | Testing of integrated circuits | |
US5404358A (en) | Boundary scan architecture analog extension | |
US20030046625A1 (en) | Method and apparatus for efficient control of multiple tap controllers | |
US6990619B1 (en) | System and method for automatically retargeting test vectors between different tester types | |
JP4315775B2 (ja) | 半導体集積回路装置 | |
US7134058B2 (en) | Memory circuit scan arrangement | |
CN114781304A (zh) | 一种芯片的引脚状态控制方法、***、芯片以及上位机 | |
JP5176962B2 (ja) | プリント板接続試験装置および方法 | |
US20100115353A1 (en) | System and method for testing application-specific blocks embedded in reconfigurable arrays | |
EP0543506B1 (en) | Enhanced boundary-scan interconnect test diagnosis through utilization of board topology data | |
US6678848B1 (en) | Programming circuitry for configurable FPGA I/O | |
US7051254B2 (en) | Semiconductor integrated circuit device and method for designing a semiconductor integrated circuit device | |
Larsson et al. | Graceful Degradation of Reconfigurable Scan Networks | |
US7587649B2 (en) | Testing of reconfigurable logic and interconnect sources | |
US20240061041A1 (en) | System and method for access control of a plurality of instruments embedded in a semiconductor device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |