KR20020013539A - 헤테로지니어스 프로그래머블 게이트 어레이 - Google Patents
헤테로지니어스 프로그래머블 게이트 어레이 Download PDFInfo
- Publication number
- KR20020013539A KR20020013539A KR1020017014233A KR20017014233A KR20020013539A KR 20020013539 A KR20020013539 A KR 20020013539A KR 1020017014233 A KR1020017014233 A KR 1020017014233A KR 20017014233 A KR20017014233 A KR 20017014233A KR 20020013539 A KR20020013539 A KR 20020013539A
- Authority
- KR
- South Korea
- Prior art keywords
- logic
- unstructured
- structured
- array
- subarray
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17736—Structural details of routing resources
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/1778—Structural details for adapting physical parameters
- H03K19/17796—Structural details for adapting physical parameters for physical disposition of blocks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Non-Volatile Memory (AREA)
- Saccharide Compounds (AREA)
Abstract
헤테로지니어스 프로그래머블 게이트 어레이(100)는 비구조화 로직 서브 어레이(102) 및 구조화 로직 서브 어레이(104)를 구비한다. 비구조화 입/출력 상호접속 구조(106)는 비구조화-대-비구조화 입/출력 신호를 비구조화 로직 서브 어레이에 전달하며, 반면에 버스드 입/출력 상호접속 구조(108)는 구조화-대-구조화 입/출력 신호를 구조화 로직 서브 어레이에 전달한다. 제어 신호 버스(110)는 비구조화 로직 서브 어레이와 구조화 로직 서브 어레이간에 접속되어 이들간에 비구조화 소스 신호를 전달한다. 버스드 신호 버스(112)는 비구조화 로직 서브 어레이와 구조화 로직 서브 어레이와 구조화 버스 어레이간에 접속되어 이들간에 구조화 소스 신호를 전달한다.
Description
프로그래머블 로직 소자는 전자 산업 분야에서 널리 사용된다. 현재의 프로그래머블 로직 소자는 동종(homogeneous)의 범용 로직 어레이로 구성된다. 또한, 현재의 사용은 전형적으로 다양한 프로그래머블 로직 소자가 다수의 용도를 수행하기 위해 요구된다. 각각의 용도에 대한 특정 게이트 어레이를 설계하는 대신에, 다수의 동종 프로그래머블 게이트 어레이가 각각의 요구되는 용도를 수행하기 위해 프로그래밍된다. 필드 프로그래머블 게이트 어레이(FPGA)는 이같은 용도에 전형적으로 사용된다.
지금까지, 관련 산업은 대부분의 용도를 수행하기 위해 프로그램가능할 수 있는 "최적"의 동종 아키텍쳐를 개발하는데 크게 투자되었다. 동종의 FPGA를 사용하게 되면, 프로그램밍된 로직 기능이 복잡하거나 또는 프로그램밍된 로직 기능 속성이 헤테로지니어스일 때 매우 비효율적으로 될 수 있다. 동종 아키텍쳐의 필수 부분이 특정 용도에 필요치않기 때문에 폐기될 때 비효율적인 소자 활용을 가져온다. 도 1에서 라인 20으로 도시된 바와 같이, 랜덤/제어 로직 기능은 최소 구조 소자에서 구현될 때만 높은 활용을 가져온다. 반면에, 라인 22로 도시된 바와 같이, 구조화/데이터경로(structured/datapath) 로직 기능은 최소 구조 소자에서 구현될 때만 높은 활용을 가져온다. 예컨데, 패리티 트리 및 상태 기계는 최소 구조 어레이에서 높은 활용을 가지며, 산술 및 레지스터 파일 기능은 최대 구조 어레이에서 높은 활용을 가진다. 그러나, 최소 구조 소자에서, 활용 효율은 구현된 기능 구조의 정도가 증가함에 따라 급격히 감소된다. 이와 반대로, 최대 구조 소자에서, 활용 효율은 구현된 기능 구조의 정도가 감소함에 따라 급격히 감소된다. 랜덤/제어 및 구조화/데이터경로는 상보 헤테로지니어스 속성(complementary heterogeneous property)이다.
FPGA는 전형적으로 몇몇 랜덤/제어 및 스트락쳐/데이터경로 기능을 구현하는데 적합한 동종 로직 블럭 어레이로 구성된다. 더욱이, 현재는 비구조화(unstructured) 로직 및 구조화 로직 기능에 대해 분리된 소자를 종종 사용한다. 분리된 소자의 사용은 제조 및 패키징 비용의 증가를 가져오며, 또한 회로 기판상에 장착될 때 비교적 큰 양의 공간을 요구하게 된다. 이러한 공간적인 비효율성은 신호가 리소스(resource)들간을 통과할 때의 계산 속도를 감소시킨다.
상술한 바와 같이, 동일 소자상에 비구조화 로직 및 구조화 로직 리소스를 갖는 개선된 프로그래머블 로직 소자를 제공하는 것이 크게 요구되고 있다.
본 발명은 프로그래머블 로직 소자에 관한 것이다. 더욱 특히, 본 발명은 헤테로지니어스(heterogeneous) 프로그래머블 게이트 어레이에 관한 것이다.
도 1은 종래의 동종 어레이를 사용하는데서 초래되는 비효율성을 예시한 도.
도 2는 본 발명의 실시예에 따라 구성된 헤테로지니어스 프로그래머블 게이트 어레이를 예시한 도.
도 3은 본 발명의 실시예에 따르는 헤테로지니어스 프로그래머블 게이트 어레이 소자를 예시한 도.
도 4는 구조화/제어 로직 및 구조화/데이터경로 로직에 대한 예시적인 속성의 리스트를 도시한 테이블.
도 5A는 예시적인 미세 로직 블럭을 도시한 도.
도 5B는 예시적인 중간 크기의 로직 블럭을 도시한 도.
도 5C는 예시적인 큰 크기의 로직 블럭을 도시한 도.
도 6A는 예시적인 높은 스큐 로직 블럭 어레이를 도시한 도.
도 6B는 예시적인 낮은 스큐 로직 블럭 어레이를 도시한 도.
도 7은 예시적인 높은 팬아웃 로직 블럭 어레이를 도시한 도.
도 8은 예시적인 비구조화 로직 블럭을 도시한 도.
도 9는 예시적인 구조화 로직 블럭을 도시한 도.
도 10은 예시적인 비구조화 로직 블럭 어레이를 도시한 도.
도 11은 예시적인 비구조화 로직 블럭을 도시한 도.
도 12는 예시적인 구조화 로직 블럭 어레이를 도시한 도.
도 13은 예시적인 구조화 로직 블럭으로 도시한 도.
도 14는 구조화-대-비구조화 상태 신호에 대한 예시적인 라우팅 스킴을 도시한 도.
도 15는 비구조화 로직 블럭 어레이에서 예시적인 비구조화 I/O를 도시한 도.
도 16은 구조화 로직 블럭에서 예시적인 구조화 I/O를 도시한 도.
헤테로지니어스 프로그래머블 게이트 어레이(HPGA)는 2개 이상의 어레이를 포함한다. 바람직한 실시예에서, HPGA는 적어도 하나의 비구조화 로직 어레이 및 구조화 로직 어레이를 포함한다. 비구조화 입/출력 상호접속 구조는 비구조화-대-비구조화 신호를 비구조화 로직 어레이에 전달하며, 반면에 버스드(bussed) 입/출력 상호접속 구조는 구조화-대-구조화 입/출력 신호를 구조화 로직 어레이에 전달한다. 제어 신호 버스는 비구조화 로직 어레이와 구조화 로직 어레이간에 기능적으로 접속되어 이들간에 비구조화 소스 신호를 전달한다. 버스드 신호 버스는 비구조화 로직 어레이와 구조화 로직 어레이간에 기능적으로 접속되어 이들간에 구조화 소스 신호를 전달한다.
로직 기능은 기능을 구현하는데 요구되는 로직 또는 라우팅의 타입이 규칙성 또는 균일성중 어느 하나를 나타내지 않을 때 "비구조화"된다. 예컨대, 상태 기계는 다음 상태 기능이 다른 상태 기능에 전형적으로 독립되는 다양한 상태 기능을 포함하며, 이로써 상태 기계에서 다양한 상태가 전형적으로 서로 물직적으로 정렬되지 않게된다. 로직 기능은 기능을 구현하는데 요구되는 로직 및 라우팅 리소스가 규칙성 또는 균일성을 나타낼 때 "구조화"된다. 예컨대, 로드가능한 카운터와 같은 데이터경로 객체는 비트 슬라이스 기능의 반복으로 구성된다. 달리 말하자면, 다음 상태 기능은 모든 비트 슬라이스 기능에 대해 전형적으로 동일하다. 더욱이 각각의 비트 슬라이스는 동일한 클럭 인에이블 및 로드 제어 신호를 수신하며, 이로써 각각의 비트는 서로에 대해 고유의 기능을 가지며, 서로 물리적으로 정렬된다. 예컨대, 비트 i는 i-1와 i+1 사이에 위치되야 한다. 일반적으로, 비구조화 로직은 구조화 로직의 상보형이다.
다른 예시적인 실시예에서, 헤테로지니어스 프로그래머블 어레이는 상보 로직 및 라우트 리소스 속성을 갖는 적어도 2개의 서브 섹션을 갖는 섹션들을 포함한다. 서브 섹션은 비구조화/제어 로직 및 구조화/데이터경로 로직과 같은 상보 로직을 최적화하도록 구성된다. 바람직한 실시예에서, 서브 섹션은 대략 1/3 비구조화/제어 로직 및 대략 2/3 구조화/데이터경로 로직을 포함하도록 구성된다. 비구조화/제어 로직은 일반적으로 미세한 크기(fine grained)의 짧으며 낮은 팬아웃 및 낮은 스큐를 가진다. 구조화/데이터경로 로직은 중간 크기(medium grained)의 길고 높은 팬아웃과 낮은 스큐를 가진다. 비구조화/제어 로직의 예는 글루 로직, 디코더, 패리티 트리 및 상태 기계이다. 구조화/데이터경로 로직의 예는 레지스터, 산술 소자, 레지스터 파일, 랜덤 액세스 메모리 및 선입선출 모듈이다.
본 발명에 따르는 소자는 본질적으로 다른 프로그래머블 로직 및 라우팅 리소스에 플랫폼(flatform)을 제공한다. 토폴로지는 현재의 네트리스트(netlist)의 우수한 분할을 용이하게 한다. 즉, 로직 네트리스트는 특정 어레이 리소스를 타겟팅하는 조각들로 분할될 수 있다. 적절한 분할은 소자 활용 및 시스템 성능에 있어 커다란 증가를 가져온다. 또한, 장치는 어레이가 특정 용도에 대해 최적화될 수 있기 때문에 전반적인 소자 효율을 개선한다.
도 2는 본 발명의 실시예에 따르는 헤테로지니어스 프로그래머블 게이트 어레이의 예시적인 모듈(100)을 도시한다. 모듈(100)은 비구조화 로직 서브 섹션(102)을 포함한다. 이전에 사용된 바와 같이, 비구조화 로직 서브 섹션이란 용어는 넓고 얇거나 또는 미세한 그래뉼러리티(granularity)를 갖는 로직 리소스로 언급되며, 따라서 상태 기계 및 디코더와 같은 비구조화 로직 기능에 적합하다. 비구조화 로직 서브 섹션(102)은 과밀하고 짧으며 낮은 팬아웃과 높은 스큐 및 단일 노드를 본래 갖는 리소스를 라우팅하는 것을 특징으로 한다.
모듈(100)은 또한 구조화 로직 서브 섹션(104)을 또한 포함한다. 이전에 사용된 바와 같이, 구조화 로직 서브 섹션이란 용어는 좁고 깊거나 또는 큰 그래뉼러리티를 갖는 로직 리소스로 언급되며, 따라서 산술 및 랜덤 액세스 메모리(RAM) 블럭과 같은 버스-오리엔트된(oriented) 기능에 적합하다. 구조화 로직 서브 섹션(104)은 희박하며 길고 높은 팬아웃과 낮은 스큐 및 버스드(bussed) 신호인 리소스를 라우팅하는 것을 특징으로 한다.
비구조화 입/출력 상호접속 구조(106)는 비구조화-대-비구조화 입/출력 신호를 비구조화 로직 서브 섹션내로 라우팅하는데 사용된다. 버스드 입/출력 상호접속 구조(108)는 구조화-대-구조화 입/출력 신호를 구조화 로직 서브 섹션(104)내로 라우팅하는데 사용된다.
본 발명의 실시예에 따르면, 제어 신호 버스(110) 및 버스드 신호 버스(112)는 공통축(즉, 평행)을 따라 형성된다. 제어 신호 버스(110)는 비구조화 로직 서브 섹션(102)으로부터 구조화 로직 서브 섹션(104)으로 통과되는 비구조화 소스 신호에 대한 프로그래머블 상호접속 리소스이다. 버스드 신호 버스(112)는 구조화 로직 서브 섹션(104)으로부터 비구조화 로직 서브 섹션(102)으로 통과되는 구조화 소스 신호에 대한 프로그래머블 상호접속 리소스이다.
도 3은 모듈(100)의 예시적인 실시예를 도시한다. 도시된 바와 같이, 비구조화 로직 서브 섹션(102)은 미세 그래뉼러리티를 가지며, 구조화 로직 서브 섹션(104)은 큰 그래뉼러리티를 가진다. 일 실시예에서, 2개의 서브 섹션(102, 104)은 상보형의 로직 및 라우트 리소스 속성을 가진다. 적당한 HPGA 아키텍쳐를 생성하는데 주요한 장애들중 하나는 HPGA 소자에서 비구조화-대-구조화 리소스의 균형이 깨지는 것이다. 바람직한 실시예에서, 모듈(100)은 대략 1/3 비구조화/제어 로직(비구조화 서브 섹션(102)) 및 대략 2/3 구조화/데이터경로 로직(구조화 서브 섹션(104))으로 구성된다. 이러한 리소스의 분할은 특히 이로운 것으로 판명되었다. 그럼에도 불구하고, 다른 리소스 분할도 본 발명에 따라 또한 활용될 수 있다. 예컨대, 데이터경로가 넓어짐에 따라 대략 75% 이상의 스트락쳐/데이터경로 로직 영역이 바람직하게 된다. 선택적으로, 제어 로직이 더욱 복잡해짐에 따라 대략 40%의 비구조화/제어 로직 영역이 바람직하게 된다. 랜덤 액세스 메모리(RAM)은 리소스 분할에서의 최상의 경우를 나타낸다. RAM은 게이트가 밀집해있다. RAM이 모듈(100)의 구조화/데이터경로 로직 서브 섹션의 일부로 고려될 때, 모듈(100)에서 구조화-대-비구조화 로직의 비율은 대략 1/10의 비구조화/제어 로직-대-9/10의 구조화/데이터경로 로직이야 한다.
도 4는 비구조화/제어 또는 구조화/데이터경로 로직으로서 특징적인 로직에 대한 속성의 예시적인 리스트를 나타내는 테이블이다. 비구조화/제어 로직은 전형적으로 미세 그래뉼러리티, 짧은 라우트 세그먼트, 높은 타이밍 스큐, 작은 신호 팬아웃, 넓은 신호 팬인 가변 구성, 및 로직 리소스 바이어스를 가진다. 한편, 구조화/데이터경로 로직은 전형적으로 큰 그래뉼러리티, 긴 라우트 세그먼트, 낮은 타이밍 스큐, 큰 신호 팬아웃, 좁은 신호 팬인, 반복 구성 및 라우팅 리소스 바이어스를 가진다.
로직 그래뉼러리티는 공통 제어에 의해 함께 묶기는 블럭내의 로직량의 측정이다. 예컨대, 작은 양의 조합 로직을 갖는 로직 블럭을 갖는 소자는 미세 그래뉼러리티라고 불려진다. 큰 양의 조합 로직을 갖는 로직 블럭을 갖는 소자는 큰 그래뉼러리티라고 불려진다. 소자가 미세 또는 큰 그래뉼러리티인지의 여부는 소자 크기에 달려 있으며, 현재의 기술 진보에 관련된다. 예컨대, 도 5A에 도시된 바와 같이, 8×8 프로그래머블 로직 소자(또는 모듈)은 그 로직 블럭 각각이 단일 기능 발생기 및/또는 단일 플립플롭을 포함한다면 미세 그래뉼러리티된다. 도 5B에서, 8×8 프로그래머블 로직 소자(또는 모듈)은 그 로직 블럭의 각각이 공통 클럭 인에이블 신호를 갖는 4개의 플립플롭을 포함한다면 중간 그래뉼러리티가 된다. 도 5C에서, 8 ×8 프로그래머블 로직 소자(또는 모듈)은 그 로직 블럭의 각각이 공통 클럭 인에이블을 갖는 16개의 플립플롭을 포함한다면 큰 그래뉼러리티가 된다.
소자의 라우팅 세그먼트는 소자 크기에 따라 짧거나 또는 길어진다. 예컨대, 작은 소자(즉, 16 ×16 매트릭스의 로직 블럭)에서, 매 4개의 로직 블럭마다 접속되는 신호 라인은 "중간" 라인으로 고려되며, 반면에 큰 소자(즉, 64 ×64 매트릭스의 로직 블럭)에서, 동일한 신호 라인은 "짧은" 라인으로 고려된다.
팬아웃은 신호원이 라우팅되는 목적지의 수를 나타낸다. 적은 수의 목적지를 라우팅하는 신호원은 적은 팬아웃을 가진다. 큰 수의 목적지를 라우팅하는 신호원은 큰 팬아웃을 가진다. 팬아웃이 큰지 또는 적은지 여부는 소자 크기 및 기능 복잡성에 달려있다. 예컨대, 제어-대-제어 신호는 전형적으로 낮은 팬아웃을 나타내고, 반면에 제어-대-데이터경로 신호는 전형적으로 높은 팬아웃을 나타낸다.
도 6A는 소스 "S"가 단지 4개의 목적지로 라우팅되는 4 ×8 로직 블럭 어레이에서 낮은 팬아웃의 예이다.
도 7은 각각의 소스 예컨대, 소스 d7이 12개의 목적지로 라우팅되는 8 ×12 로직 블럭 어레이에서 높은 팬아웃의 예이다.
타이밍 스큐는 소정의 소스에서 목적지의 집합까지의 라우팅 지연에서 상대적인 차이의 측정이다. 모든 목적지에 대한 지연 시간이 거의 동일한 경우 신호는 낮은 스큐이다. 모든 목적지에 대한 지연 시간이 변하는 경우 신호는 높은 스큐이다. 낮은 스큐는 신호의 모든 세그먼트에 대한 유사한 라우트 리소스를 사용함에의해 달성될 수 있다. 높은 스큐는 신호가 라우팅 리소스상에서 비결정적으로 라우팅될 때 일어난다. 따라서, 스큐는 종종 목적지 타입의 지시자가 된다. 예컨대, 다른 용도로 작용하는 목적지는 신호의 높은 스큐 분포를 초래하며, 반면에 동일 용도로 작용하는 목적지는 종종 신호의 낮은 스큐 분포를 초래한다. 도 6A에서, 소스 신호 S는 다른 라우팅 리소스에 의해 목적지 1-4로 라우팅되어, 높은 스큐가 된다. 도 6B에서, 소스 신호 S는 유사한 라우팅 리소스에 의해 목적지 1-4로 라우팅되어, 신호는 낮은 스큐가 된다.
팬인은 신호를 발생시키기 위해 사용되는 소스의 수를 나타낸다. 적은 수의 소스를 갖는 신호는 좁은 팬인을 가지며, 반면에 큰 수의 소스를 갖는 신호는 넓은 팬인을 가진다.
조직은 로직 기능에서 고유한 패턴을 나타낸다. 예컨대, 제어 로직은 그 조직에 있어서 전형적으로 가변 또는 비구조화되며, 반면에 데이터경로 로직은 그 조직에 있어서 전형적으로 반복 또는 균일하다.
임의의 로직이 비구조화/제어 또는 구조화/데이터경로 로직인지의 여부는 특정 기능을 달성하는데 요구되는 로직 레벨의 수 및 이에 채용된 입력의 수에 의해 더욱 특징으로 될 수 있다. 입력의 수가 크거나(즉, 5 또는 그 이상), 또는 입력이 랜덤한 경우, 로직은 많은 수의 독립된 조건을 요구하기 때문에 "넓게"되기 쉽다. 예컨대, 상태 기계는 전형적으로 기동 상태로 복귀하기 위한 많은 조건들을 포함한다. 이들 조건들은 동일 또는 독립된 범위를 가진다. 독립성은 로직 레벨의 적은 수(즉, 3 이하)를 가져오며, 이로써 로직은 또한 "얕아진다". 입력의 수가 적거나(즉, 5이하), 또는 입력이 상대적인(즉, 인접 상태로부터) 경우, 로직은 많은 수의 종속된 조건을 요구하기 때문에 "좁아진다". 예컨대, 산술 객체는 모든 다른 제어가 종속하는(즉, 리셋이 다른 제어로 하여금 "다음 상태"에 기여하는 것을 확신할 수 없어야만 한다) 주요 리셋 입력을 가질 수 있다. 산술 객체는 나머지 제어 라인에 대해 주요한 클럭 인에이블 신호를 가질 수 있다. 종속성은 로직 레벨의 큰 수(즉, 6 이상)를 초래하며, 따라서 로직은 또한 "깊어지게 된다".
비구조화/제어, 예컨데 상태 기계는 종종 미세 그래뉼러리티 및 짧은 라우트 리소스 세그먼트를 가지며 큰 수의 입력을 수용하며 적은 수의 출력을 발생시키는 기능 발생기를 포함하는 물리 리소스상으로 가장 적절하게 매핑되는 비균일(랜덤) 로직을 포함한다. 이런 입력 기능은 "넓은" 및 "얕은"으로서 언급될 수 있다.
한편, 구조화/데이터경로 로직, 예컨대 카운터는 본래 규칙적이며 자주 큰 팬인 및 팬아웃 상호접속을 가진다. 더욱이, 고정, 제한 또는 미리 결정된 기능성을 갖는 데이터경로 로직은 적은 수의 가변 입력을 포함하는 다음 상태 기능을 가진다. 이런 입력 기능은 "좁은" 및 "깊은"으로 언급된다.
도 8은 예시적인 비구조화/제어 로직 블럭(800)을 도시한다. 로직 블럭(800)은 큰 수의 입력(즉, S0, a, b, S1, x, R, etc.)을 수용하는 조합 로직을 포함한다. AND 게이트(802, 804, 806, 808)로부터의 각각의 출력은 OR 게이트(810)에 인가될 때의 독립적인 웨이트(weight)를 나른다. OR 게이트(810)의 출력은 상태 비트 Qi를 선택적으로 제공하는 플립플롭(812)으로 래치된다. 로직 블럭(800)은 큰 수의 입력을 수용하며 적은 수의 출력을 발생시키며, 따라서 이는"넓은" 및 "얕은" 둘다가 된다.
도 9는 예시적인 구조화/데이터경로 로직 블럭(900)을 예시한다. 로직 블럭(900)은 "Add" 회로와 같은 산술 기능 회로(902), 다른 신호 라인과 가변적으로 접속되는 복수의 멀티플렉서(904, 906, 908, 910), AND 게이트(912), 및 플립플롭(914)을 포함한다. 도 9에 도시된 바와 같이, 로직 블럭(900)의 다양한 로직 요소는 레지스터 기능, 카운터 기능 또는 다른 데이터경로 기능과 같은 다양한 데이터경로 기능을 수행하기 위하여 하나의 입력(Di) 및 다양한 신호(도시된 바와 같이)를 수신할 수 있다. 로직 블럭(900)은 적은 수의 입력(Di)을 수용하며, 큰 수의 종속 조건을 요구한다. 종속성은 로직 레벨의 큰 수를 초래하며, 이결과 로직 블럭(900)은 "좁은" 및 "깊은" 둘다가 된다.
비구조화/제어 로직에 대한 적당한 라우팅은 짧은데서 긴데까지의 다양 세그먼트 길이를 포함한다. 그러나, 비구조화/제어 로직에서, 대부분의 상호접속 세그먼트는 짧다. 따라서, 언스락쳐드 로직 블럭은 우세한 짧은 길이 라우팅 리소스와 상호접속되야 한다. 예시적인 실시예에서, 비구조화 로직 블럭은 출력 기능을 구조화 로직 블럭에 전달하는 긴 길이의 상호접속의 한 타입을 또한 필요로 한다. 이런 타입의 긴 길이 상호접속은 제어 신호 버스(11)로서 언급된다(도 2 참조). 전형적으로, 제어 신호 버스(110)는 비구조화 서브 섹션으로부터 구조화(데이터경로) 서브 섹션으로 신호를 전달한다. 신호의 예들은 출력 인에이블(OE), 클럭 인에이블(CE), 로드(LD), 쉬프트(SH), 가산(ADD), 증분(INC), 및 동기 리셋(R)이다.
도 10은 비구조화/제어 로직 어레이(1000)에 대한 예시적인 라우팅 스킴을도시한다. 도 10에서, 비구조화 로직 블럭(1002)은 짧은 수평 라우팅 리소스(1004) 및 짧은 수직 라우팅 리소스(1006)에 의해 상호접속된다. 각각의 로직 블럭(1002)은 수평 라우팅 리소스(1004)를 통해 입력을 수신하며, 제어 신호 버스(110)를 통해 구조화/데이터경로 로직에 출력된다. 더욱이, 각각의 로직 블럭(1002)은 수평 또는 수직 라우팅 리소스(1004, 1006)를 통해 제어 로직 어레이(1000)내의 다른 로직 블럭(1002)과 상호접속된다.
도 11은 예시적인 비구조화/제어 로직 블럭(1002)을 도시한다. 로직 블럭(1002)은 8 룩업 테이블 기능 발생기(1102), 플립플롭(1104), 멀티플렉서(1106), 및 구성 포인트(1108)를 포함한다. 로직 블럭(1102)은 수평 또는 수직 라우팅 리소스(1004, 1006)로부터 입력을 수신한다. 룩업 테이블 기능 발생기(1102)로부터의 출력은 플립플롭(1104) 및 멀티플렉서(1106)로 전송된다. 플립플롭(1104)은 신호 라인(1110, 1112)으로부터 수신되는 신호에 따라 출력을 선택적으로 제공한다. 플립플롭(1104)으로부터의 출력은 멀티플렉서(1106)에 인가된다. 멀티플렉서(1106)는 신호를 라인 113 또는 114로부터 라우팅 리소스(1004, 1006)로 선택적으로 전달하기 위해 구성 포인트(1108)에 의해 구성된다.
도 12는 구조화/데이터경로 로직 어레이(1200)에 대한 예시적인 라우팅 스킴을 도시한다. 로직 어레이(1200)는 구조화 로직 블럭(1202)을 포함한다. 각각의 로직 블럭(1202)은 전용 데이터버스(1204)로부터의 입력 라인과 이로의 출력 라인, 및 비구조화 서브 섹션(1006)으로부터 공통 제어 신호를 포함한다.
도 13은 3가지 예시적인 구조화 로직 블럭(1202A, 1202B, 1202C)을 도시한다. 각각의 구조화 로직 블럭(1202)은 2개의 서브 블럭을 포함한다: (1) 공통 제어 서브 블럭(1302) 및 (2) 비트 특정 제어 서브 블럭(1304). 구조화 로직 블럭(1202)의 각각의 공통 제어 서브 블럭(1302)은 구조화 로직 블럭 어레이(1200)의 다른 구조화 로직 블럭과 공통인 비구조화/제어 어레이로부터의 제어 신호를 입력으로서 포함한다. 제어는 ADD(블럭이 가산 또는 감산되는지에 대한 제어), Q/D(로직 블럭 어레이로부터의 인접 비트 Q 또는 버스로부터의 인접 비트 D가 쉬프트될 수 있는지에 대한 제어), L(로딩되는지에 대한 제어), CE(Q 상태로 진행하는지에 대한 제어), R(Q로 리셋되는지에 대한 제어), 및 Q/Y(연속적인 결과 Q 또는 조합 결과 Y를 출력하는지에 대한 제어)를 포함한다. 비트 특정 서브 블럭(1304)은 산술 기능 제어(즉, ADD)를 제외하고는 구조화 로직 블럭 어레이(1200)의 모든 다른 비트 슬라이스에 공통인 입력을 수신하지 않는다. 오히려, 구조화 로직 블럭(1202)에서 각각의 비트 특정 서브 블럭(1304)은 구조화 로직 블럭 어레이(1200)에서 순간적인 인접 구조화 로직 블럭으로부터의 입력(예컨대, 데이터버스 비트)을 수신한다. 예컨대, 로직 블럭(1202B)에서 비트 특정 서브 블럭(1304B)은 예컨대 Di+1 또는 Di-1과 같은 인접 데이터버스 비트로부터의 입력을 수신한다.
도 14는 구조화/데이터경로 로직 블럭 어레이(104)에서 비구조화/제어 블럭 어레이(102)까지의 예시적인 라우팅 스킴을 도시한다. 도 14에서, 버스드 신호 버스(112)를 형성하는 인터-어레이 라인(1402)의 세트(도 2)는 구조화 로직 블럭 어레이에서 비구조화 로직 블럭 어레이까지 상태 신호를 제공한다.
비구조화 로직 블럭 어레이(102)는 상태 기계와 같은 제어 로직은 구현하며, 다양한 오프 칩 소스로부터 입력을 수신한다고 기대된다.
전형적으로, 오프칩 소스는 데이터 버스 신호가 아니라 다른 상태 및 제어 신호이다. 오프칩 소스로부터의 추가 입력은 데이터버스 신호를 제어하는 공통 제어 신호에 의해 조절되지 않는다. 비구조화 로직 블럭 어레이로의 신호 입력은 일반적으로 랜덤하며, 그결과 이런 신호의 입출력을 제공하는데 사용되는 I/O 로직은 데이터버스 신호가 되여하는 방식과 함께 그룹핑될 필요가 없다. 비구조화 로직 블럭 어레이(102)와 연관된 I/O는 비구조화 입/출력 구조 상호접속(106)(도 2) 또는 비구조화 I/O로서 언급된다. 구조화 로직 블럭 어레이(104)와 연관된 I/O는 버스드 입/출력 구조 상호접속(108)(도 2) 또는 구조화 I/O로서 언급된다.
비구조화 및 구조화 라우팅 리소스간의 주요한 차이는 구조화 로직 블럭 어레이(1200)가 전용 버스 라우팅 세그먼트(1204)를 포함한다는데 있다. 이와는 달리, 일반적으로 전용이 아닌 라우팅 리소스(시스템 클럭 및 시스템 리셋은 제외)는 비구조화 어레이(1000)내에 존재한다. 예시적인 실시예에서, 구조화 로직 블럭 어레이(1200)는 부가적인 레벨의 계층을 가진다. 부가적인 레벨의 계층은 공통 세트의 제어 신호에 의해 관련되는 구조화 로직 블럭의 집합으로 이루어진다. 이런 계층의 구조화 로직 블럭을 배열하여 컬럼형 객체를 형성하는 것이 바람직하다. 비구조화 로직 블럭 어레이(1000)는 이런 레벨의 계층을 갖지 않는다. 비구조화 I/O는 전용 공통 신호(시스템 클럭 및 시스템 리셋과는 다른)에 의해 제어되지 않는 단순한 I/O 드라이버 및 수신기를 포함한다. 이와는 달리, 구조화 I/O는 클럭 인에이블(CE) 및 출력 인에이블(OE)과 같은 전용 공통 신호에 의해 제어되는 드라이버 및 수신기를 포함한다. 더욱이, 비구조화 I/O는 비구조화 어레이내의 임의에 신호를 분포시키는 능력을 가져야 한다. 도 15는 비구조화 로직 블럭 어레이(1000)에 대한 예시적인 비구조화 I/O(106)를 도시한다. 이와는 달리, 구조화 I/O는 구조화 로직 블럭의 연관된 데이터버스 비트 신호를 입출력하는 능력을 가져야 한다. 도 16은 구조화 로직 블럭 어레이(1200)에 대한 예시적인 구조화 I/O(108)을 도시한다. 도 16에서, 구조화 I/O(108)는 프로그래머블 상호접속(1602) 및 전용 데이터버스 라우팅 라인(1204)을 포함한다.
본 기술 분야의 전문가들은 본 발명의 소자와 연관된 많은 장점들을 인식할 것이다. 먼저, 본 발명은 헤테로지니어스 프로그래머블 로직 및 라우팅 리소스에 대한 플랫폼을 제공한다. 이런 토폴로지는 현재의 네트리스트의 우수한 분할을 용이하게 한다. 즉, 로직 네트리스트는 서브 어레이 리소스를 특정하게 타겟팅하는 조각으로 분할될 수 있다. 적절한 분할은 소자 활용 및 시스템 성능에 있어 크게 증가하는 결과를 가져온다. 본 발명의 단일 소자는 제조 및 패키징 비용을 감소시킨다. 이롭게는, 비구조화 서브 어레이와 구조화 로직 서브 어레이간에 신호가 빠르게 통과될 수 있으며, 단일 기능 칩상에 형성된다.
전술한 예는 본 발명의 단지 예시적인 실시예로서, 본 기술 분야의 전문가에게는 다른 실시예, 변종 및 수정이 자명할 것이다. 본 발명은 따라서 상술한 특정실시예로 제한되는 것이 아니라 다음의 청구범위에 의해서만 한정된다.
Claims (9)
- 헤테로지니어스 프로그래머블 게이트 어레이에 있어서,비구조화(unstructured) 로직 서브 어레이,비구조화-대-비구조화 입력/출력 신호를 상기 비구조화 로직 서브 어레이에 전달하기 위한 비구조화 입력/출력 상호접속 구조,구조화(structured) 로직 서브 어레이,구조화-대-구조화 입력/출력 신호를 상기 구조화 로직 서브 어레이에 전달하기 위한 버스드(bussed) 입력/출력 상호접속 구조,상기 비구조화 로직 어레이와 상기 구조화 로직 서브 어레이간에 비구조화 소스 신호를 전달하기 위해 이들간에 접속된 제어 신호 버스, 및상기 비구조화 로직 서브 어레이와 상기 구조화 로직 서브 어레이간에 구조화 소스 신호를 전달하기 위해 이들간에 접속된 버스드 신호 버스를 포함하는 헤테로지니어스 프로그래머블 게이트 어레이.
- 제1항에 있어서, 상기 비구조화 로직 서브 어레이는 상태 기계를 구현하는 헤테로지니어스 프로그래머블 게이트 어레이.
- 제1항에 있어서, 상기 비구조화 로직 서브 어레이는 디코더를 구현하는 헤테로지니어스 프로그래머블 게이트 어레이.
- 제1항에 있어서, 상기 비구조화 로직 서브 어레이는 밀집되고 짧으며 낮은 팬아웃 및 높은 스큐를 갖는 라우팅 리소스에 의해 특징화되는 헤테로지니어스 프로그래머블 게이트 어레이.
- 제1항에 있어서, 상기 구조화 로직 서브 어레이는 산술 기능을 구현하는 헤테로지니어스 프로그래머블 게이트 어레이.
- 제1항에 있어서, 상기 구조화 로직 서브 어레이는 저장 레지스터를 구현하는 헤테로지니어스 프로그래머블 게이트 어레이.
- 제1항에 있어서, 상기 구조화 로직 서브 어레이는 랜덤 액세스 메모리를 구현하는 헤테로지니어스 프로그래머블 게이트 어레이.
- 제1항에 있어서, 상기 구조화 로직 서브 어레이는 희박하며 길고 높은 팬아웃 및 낮은 스큐를 갖는 라우팅 리소스에 의해 특징화되는 헤테로지니어스 프로그래머블 게이트 어레이.
- 제1항에 있어서, 상기 게이트 어레이는 대략 1/3 비구조화 로직 서브 어레이 회로 및 대략 2/3 구조화 로직 서브 어레이 회로를 포함하는 헤테로지니어스 프로그래머블 게이트 어레이.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13314599P | 1999-05-07 | 1999-05-07 | |
US60/133,145 | 1999-05-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20020013539A true KR20020013539A (ko) | 2002-02-20 |
KR100761328B1 KR100761328B1 (ko) | 2007-09-27 |
Family
ID=22457222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020017014233A KR100761328B1 (ko) | 1999-05-07 | 2000-05-05 | 헤테로지니어스 프로그래머블 게이트 어레이 |
Country Status (9)
Country | Link |
---|---|
US (1) | US6433578B1 (ko) |
EP (1) | EP1177631B1 (ko) |
JP (1) | JP2002544700A (ko) |
KR (1) | KR100761328B1 (ko) |
AT (1) | ATE314754T1 (ko) |
AU (1) | AU5127600A (ko) |
CA (1) | CA2371080A1 (ko) |
DE (1) | DE60025196T2 (ko) |
WO (1) | WO2000069073A1 (ko) |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1078463B1 (en) * | 1999-03-04 | 2004-08-04 | Altera Corporation | Interconnection resources for programmable logic integrated circuit devices |
US6686767B1 (en) * | 1999-05-07 | 2004-02-03 | Morphics Technology Inc. | Apparatus and method for controlling a three-state bus |
US20030054774A1 (en) * | 2001-03-22 | 2003-03-20 | Quicksilver Technology, Inc. | Method and system for managing hardware resources to implement system acquisition using an adaptive computing architecture |
US7962716B2 (en) | 2001-03-22 | 2011-06-14 | Qst Holdings, Inc. | Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements |
US7325123B2 (en) * | 2001-03-22 | 2008-01-29 | Qst Holdings, Llc | Hierarchical interconnect for configuring separate interconnects for each group of fixed and diverse computational elements |
US6836839B2 (en) * | 2001-03-22 | 2004-12-28 | Quicksilver Technology, Inc. | Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements |
US7433909B2 (en) | 2002-06-25 | 2008-10-07 | Nvidia Corporation | Processing architecture for a reconfigurable arithmetic node |
US7249242B2 (en) | 2002-10-28 | 2007-07-24 | Nvidia Corporation | Input pipeline registers for a node in an adaptive computing engine |
US7624204B2 (en) * | 2001-03-22 | 2009-11-24 | Nvidia Corporation | Input/output controller node in an adaptable computing environment |
US7653710B2 (en) | 2002-06-25 | 2010-01-26 | Qst Holdings, Llc. | Hardware task manager |
US7752419B1 (en) * | 2001-03-22 | 2010-07-06 | Qst Holdings, Llc | Method and system for managing hardware resources to implement system functions using an adaptive computing architecture |
US6577678B2 (en) | 2001-05-08 | 2003-06-10 | Quicksilver Technology | Method and system for reconfigurable channel coding |
US7046635B2 (en) | 2001-11-28 | 2006-05-16 | Quicksilver Technology, Inc. | System for authorizing functionality in adaptable hardware devices |
US8412915B2 (en) | 2001-11-30 | 2013-04-02 | Altera Corporation | Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements |
US6986021B2 (en) | 2001-11-30 | 2006-01-10 | Quick Silver Technology, Inc. | Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements |
US7644279B2 (en) * | 2001-12-05 | 2010-01-05 | Nvidia Corporation | Consumer product distribution in the embedded system market |
US7215701B2 (en) | 2001-12-12 | 2007-05-08 | Sharad Sambhwani | Low I/O bandwidth method and system for implementing detection and identification of scrambling codes |
US7403981B2 (en) | 2002-01-04 | 2008-07-22 | Quicksilver Technology, Inc. | Apparatus and method for adaptive multimedia reception and transmission in communication environments |
US7660984B1 (en) | 2003-05-13 | 2010-02-09 | Quicksilver Technology | Method and system for achieving individualized protected space in an operating system |
US7328414B1 (en) | 2003-05-13 | 2008-02-05 | Qst Holdings, Llc | Method and system for creating and programming an adaptive computing engine |
US7620678B1 (en) | 2002-06-12 | 2009-11-17 | Nvidia Corporation | Method and system for reducing the time-to-market concerns for embedded system design |
US7471643B2 (en) * | 2002-07-01 | 2008-12-30 | Panasonic Corporation | Loosely-biased heterogeneous reconfigurable arrays |
US7461234B2 (en) | 2002-07-01 | 2008-12-02 | Panasonic Corporation | Loosely-biased heterogeneous reconfigurable arrays |
US7802108B1 (en) | 2002-07-18 | 2010-09-21 | Nvidia Corporation | Secure storage of program code for an embedded system |
US8108656B2 (en) | 2002-08-29 | 2012-01-31 | Qst Holdings, Llc | Task definition for specifying resource requirements |
US7502915B2 (en) * | 2002-09-30 | 2009-03-10 | Nvidia Corporation | System and method using embedded microprocessor as a node in an adaptable computing machine |
US7937591B1 (en) | 2002-10-25 | 2011-05-03 | Qst Holdings, Llc | Method and system for providing a device which can be adapted on an ongoing basis |
US8949576B2 (en) * | 2002-11-01 | 2015-02-03 | Nvidia Corporation | Arithmetic node including general digital signal processing functions for an adaptive computing machine |
US8276135B2 (en) | 2002-11-07 | 2012-09-25 | Qst Holdings Llc | Profiling of software and circuit designs utilizing data operation analyses |
US7225301B2 (en) | 2002-11-22 | 2007-05-29 | Quicksilver Technologies | External memory controller node |
US7609297B2 (en) * | 2003-06-25 | 2009-10-27 | Qst Holdings, Inc. | Configurable hardware based digital imaging apparatus |
US8296764B2 (en) | 2003-08-14 | 2012-10-23 | Nvidia Corporation | Internal synchronization control for adaptive integrated circuitry |
US7174432B2 (en) | 2003-08-19 | 2007-02-06 | Nvidia Corporation | Asynchronous, independent and multiple process shared memory system in an adaptive computing architecture |
JP3887622B2 (ja) * | 2003-10-17 | 2007-02-28 | 松下電器産業株式会社 | データ処理装置 |
US7987065B1 (en) | 2007-04-17 | 2011-07-26 | Nvidia Corporation | Automatic quality testing of multimedia rendering by software drivers |
KR101814221B1 (ko) | 2010-01-21 | 2018-01-02 | 스비랄 인크 | 스트림 기반 계산을 구현하기 위한 범용 다중 코어 시스템을 위한 방법 및 장치 |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE99473T1 (de) | 1985-09-11 | 1994-01-15 | Pilkington Micro Electronics | Integrierte halbleiterschaltungen. |
US4775942A (en) * | 1985-12-09 | 1988-10-04 | International Business Machines Corporation | Seed and stitch approach to embedded arrays |
US5452231A (en) | 1988-10-05 | 1995-09-19 | Quickturn Design Systems, Inc. | Hierarchically connected reconfigurable logic assembly |
US5329470A (en) | 1988-12-02 | 1994-07-12 | Quickturn Systems, Inc. | Reconfigurable hardware emulation system |
US5361373A (en) * | 1992-12-11 | 1994-11-01 | Gilson Kent L | Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor |
US5362999A (en) | 1993-03-18 | 1994-11-08 | Xilinx, Inc. | EPLD chip with hybrid architecture optimized for both speed and flexibility |
US5317212A (en) * | 1993-03-19 | 1994-05-31 | Wahlstrom Sven E | Dynamic control of configurable logic |
US5761484A (en) | 1994-04-01 | 1998-06-02 | Massachusetts Institute Of Technology | Virtual interconnections for reconfigurable logic systems |
US5572148A (en) * | 1995-03-22 | 1996-11-05 | Altera Corporation | Programmable logic array integrated circuit with general-purpose memory configurable as a random access or FIFO memory |
GB9508931D0 (en) * | 1995-05-02 | 1995-06-21 | Xilinx Inc | Programmable switch for FPGA input/output signals |
US5723984A (en) | 1996-06-07 | 1998-03-03 | Advanced Micro Devices, Inc. | Field programmable gate array (FPGA) with interconnect encoding |
US5640107A (en) * | 1995-10-24 | 1997-06-17 | Northrop Grumman Corporation | Method for in-circuit programming of a field-programmable gate array configuration memory |
US5943242A (en) | 1995-11-17 | 1999-08-24 | Pact Gmbh | Dynamically reconfigurable data processing system |
US5734582A (en) * | 1995-12-12 | 1998-03-31 | International Business Machines Corporation | Method and system for layout and schematic generation for heterogeneous arrays |
US5914906A (en) * | 1995-12-20 | 1999-06-22 | International Business Machines Corporation | Field programmable memory array |
US5804986A (en) * | 1995-12-29 | 1998-09-08 | Cypress Semiconductor Corp. | Memory in a programmable logic device |
US5787007A (en) * | 1996-01-30 | 1998-07-28 | Xilinx, Inc. | Structure and method for loading RAM data within a programmable logic device |
US5677638A (en) * | 1996-02-02 | 1997-10-14 | Xilinx, Inc. | High speed tristate bus with multiplexers for selecting bus driver |
US5744980A (en) | 1996-02-16 | 1998-04-28 | Actel Corporation | Flexible, high-performance static RAM architecture for field-programmable gate arrays |
GB9604496D0 (en) * | 1996-03-01 | 1996-05-01 | Xilinx Inc | Embedded memory for field programmable gate array |
US5726584A (en) * | 1996-03-18 | 1998-03-10 | Xilinx, Inc. | Virtual high density programmable integrated circuit having addressable shared memory cells |
US5796269A (en) * | 1996-04-09 | 1998-08-18 | Xilinx, Inc. | Composable memory array for a programmable logic device and method for implementing same |
US5977791A (en) * | 1996-04-15 | 1999-11-02 | Altera Corporation | Embedded memory block with FIFO mode for programmable logic device |
US5825202A (en) * | 1996-09-26 | 1998-10-20 | Xilinx, Inc. | Integrated circuit with field programmable and application specific logic areas |
US5946219A (en) | 1996-10-30 | 1999-08-31 | Atmel Corporation | Method and system for configuring an array of logic devices |
DE19647181A1 (de) | 1996-11-14 | 1998-05-20 | Siemens Ag | Zur Abarbeitung von Softwareprogrammen ausgelegte integrierte Schaltung |
US6005410A (en) * | 1996-12-05 | 1999-12-21 | International Business Machines Corporation | Interconnect structure between heterogeneous core regions in a programmable array |
DE19654593A1 (de) | 1996-12-20 | 1998-07-02 | Pact Inf Tech Gmbh | Umkonfigurierungs-Verfahren für programmierbare Bausteine zur Laufzeit |
US5874834A (en) * | 1997-03-04 | 1999-02-23 | Xilinx, Inc. | Field programmable gate array with distributed gate-array functionality |
US6020759A (en) * | 1997-03-21 | 2000-02-01 | Altera Corporation | Programmable logic array device with random access memory configurable as product terms |
US6075380A (en) | 1997-06-26 | 2000-06-13 | Altera Corporation | Programmable logic device with expandable-width memory regions |
US6195788B1 (en) | 1997-10-17 | 2001-02-27 | Altera Corporation | Mapping heterogeneous logic elements in a programmable logic device |
US6091263A (en) * | 1997-12-12 | 2000-07-18 | Xilinx, Inc. | Rapidly reconfigurable FPGA having a multiple region architecture with reconfiguration caches useable as data RAM |
US7389487B1 (en) | 1998-04-28 | 2008-06-17 | Actel Corporation | Dedicated interface architecture for a hybrid integrated circuit |
US6020776A (en) | 1998-06-22 | 2000-02-01 | Xilinx, Inc. | Efficient multiplexer structure for use in FPGA logic blocks |
US6154052A (en) * | 1999-02-04 | 2000-11-28 | Xilinx, Inc. | Combined tristate/carry logic mechanism |
-
2000
- 2000-05-05 EP EP00935880A patent/EP1177631B1/en not_active Expired - Lifetime
- 2000-05-05 KR KR1020017014233A patent/KR100761328B1/ko not_active IP Right Cessation
- 2000-05-05 US US09/565,648 patent/US6433578B1/en not_active Expired - Lifetime
- 2000-05-05 AU AU51276/00A patent/AU5127600A/en not_active Abandoned
- 2000-05-05 JP JP2000617558A patent/JP2002544700A/ja active Pending
- 2000-05-05 CA CA002371080A patent/CA2371080A1/en not_active Abandoned
- 2000-05-05 AT AT00935880T patent/ATE314754T1/de not_active IP Right Cessation
- 2000-05-05 DE DE60025196T patent/DE60025196T2/de not_active Expired - Lifetime
- 2000-05-05 WO PCT/US2000/012478 patent/WO2000069073A1/en not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
EP1177631A4 (en) | 2002-07-03 |
DE60025196T2 (de) | 2006-09-07 |
ATE314754T1 (de) | 2006-01-15 |
WO2000069073A1 (en) | 2000-11-16 |
JP2002544700A (ja) | 2002-12-24 |
AU5127600A (en) | 2000-11-21 |
US6433578B1 (en) | 2002-08-13 |
DE60025196D1 (de) | 2006-02-02 |
CA2371080A1 (en) | 2000-11-16 |
EP1177631A1 (en) | 2002-02-06 |
KR100761328B1 (ko) | 2007-09-27 |
EP1177631B1 (en) | 2005-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100761328B1 (ko) | 헤테로지니어스 프로그래머블 게이트 어레이 | |
US6184713B1 (en) | Scalable architecture for high density CPLDS having two-level hierarchy of routing resources | |
US6449628B1 (en) | Apparatus and method for programmable datapath arithmetic arrays | |
JP4230580B2 (ja) | 再構成可能プロセッサデバイス | |
EP1577789A2 (en) | Reconfigurable circuit with connection unit | |
US6349346B1 (en) | Control fabric unit including associated configuration memory and PSOP state machine adapted to provide configuration address to reconfigurable functional unit | |
US7479802B2 (en) | Programmable logic integrated circuit for digital algorithmic functions | |
US6650142B1 (en) | Enhanced CPLD macrocell module having selectable bypass of steering-based resource allocation and methods of use | |
JP4573896B2 (ja) | 粗バイアス異種再構成可能アレイ | |
JPH0927745A (ja) | プログラマブル・アレイ・クロック/リセット | |
US6570404B1 (en) | High-performance programmable logic architecture | |
US20130257476A1 (en) | Integrated circuits with multi-stage logic regions | |
US6150841A (en) | Enhanced macrocell module for high density CPLD architectures | |
Konishi et al. | PCA-1: A fully asynchronous, self-reconfigurable LSI | |
Palchaudhuri et al. | Speed-area optimized VLSI architecture of multi-bit cellular automaton cell based random number generator on FPGA with testable logic support | |
Prasad et al. | FPGA friendly NoC simulation acceleration framework employing the hard blocks | |
Prabhu Prasad et al. | An efficient FPGA-based network-on-chip simulation framework utilizing the hard blocks | |
US6653860B2 (en) | Enhanced macrocell module having expandable product term sharing capability for use in high density CPLD architectures | |
Layer et al. | A reconfigurable recurrent bitonic sorting network for concurrently accessible data | |
EP0924625A1 (en) | Configurable processor | |
Iqbal et al. | Reconfigurable computing technology used for modern scientific applications | |
Bucur | Performance mapping of k-LUT based FPGAs | |
Abdali et al. | Exploring the performance of partially reconfigurable point-to-point interconnects | |
Dickey et al. | Hardware combining and scalability | |
Bucur et al. | Optimal Area and Performance Mapping of K-Lut Based FPGAS |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
J201 | Request for trial against refusal decision | ||
AMND | Amendment | ||
B701 | Decision to grant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20120910 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20130906 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20150911 Year of fee payment: 9 |
|
LAPS | Lapse due to unpaid annual fee |