KR20020013539A - 헤테로지니어스 프로그래머블 게이트 어레이 - Google Patents

헤테로지니어스 프로그래머블 게이트 어레이 Download PDF

Info

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
Application number
KR1020017014233A
Other languages
English (en)
Other versions
KR100761328B1 (ko
Inventor
와슨스테판엘
Original Assignee
모픽스 테크놀로지 아이엔씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 모픽스 테크놀로지 아이엔씨 filed Critical 모픽스 테크놀로지 아이엔씨
Publication of KR20020013539A publication Critical patent/KR20020013539A/ko
Application granted granted Critical
Publication of KR100761328B1 publication Critical patent/KR100761328B1/ko

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic 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/17736Structural details of routing resources
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic 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/1778Structural details for adapting physical parameters
    • H03K19/17796Structural 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)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Logic Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Saccharide Compounds (AREA)
  • Non-Volatile Memory (AREA)

Abstract

헤테로지니어스 프로그래머블 게이트 어레이(100)는 비구조화 로직 서브 어레이(102) 및 구조화 로직 서브 어레이(104)를 구비한다. 비구조화 입/출력 상호접속 구조(106)는 비구조화-대-비구조화 입/출력 신호를 비구조화 로직 서브 어레이에 전달하며, 반면에 버스드 입/출력 상호접속 구조(108)는 구조화-대-구조화 입/출력 신호를 구조화 로직 서브 어레이에 전달한다. 제어 신호 버스(110)는 비구조화 로직 서브 어레이와 구조화 로직 서브 어레이간에 접속되어 이들간에 비구조화 소스 신호를 전달한다. 버스드 신호 버스(112)는 비구조화 로직 서브 어레이와 구조화 로직 서브 어레이와 구조화 버스 어레이간에 접속되어 이들간에 구조화 소스 신호를 전달한다.

Description

헤테로지니어스 프로그래머블 게이트 어레이{HETEROGENEOUS PROGRAMMABLE GATE ARRAY}
프로그래머블 로직 소자는 전자 산업 분야에서 널리 사용된다. 현재의 프로그래머블 로직 소자는 동종(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)

  1. 헤테로지니어스 프로그래머블 게이트 어레이에 있어서,
    비구조화(unstructured) 로직 서브 어레이,
    비구조화-대-비구조화 입력/출력 신호를 상기 비구조화 로직 서브 어레이에 전달하기 위한 비구조화 입력/출력 상호접속 구조,
    구조화(structured) 로직 서브 어레이,
    구조화-대-구조화 입력/출력 신호를 상기 구조화 로직 서브 어레이에 전달하기 위한 버스드(bussed) 입력/출력 상호접속 구조,
    상기 비구조화 로직 어레이와 상기 구조화 로직 서브 어레이간에 비구조화 소스 신호를 전달하기 위해 이들간에 접속된 제어 신호 버스, 및
    상기 비구조화 로직 서브 어레이와 상기 구조화 로직 서브 어레이간에 구조화 소스 신호를 전달하기 위해 이들간에 접속된 버스드 신호 버스
    를 포함하는 헤테로지니어스 프로그래머블 게이트 어레이.
  2. 제1항에 있어서, 상기 비구조화 로직 서브 어레이는 상태 기계를 구현하는 헤테로지니어스 프로그래머블 게이트 어레이.
  3. 제1항에 있어서, 상기 비구조화 로직 서브 어레이는 디코더를 구현하는 헤테로지니어스 프로그래머블 게이트 어레이.
  4. 제1항에 있어서, 상기 비구조화 로직 서브 어레이는 밀집되고 짧으며 낮은 팬아웃 및 높은 스큐를 갖는 라우팅 리소스에 의해 특징화되는 헤테로지니어스 프로그래머블 게이트 어레이.
  5. 제1항에 있어서, 상기 구조화 로직 서브 어레이는 산술 기능을 구현하는 헤테로지니어스 프로그래머블 게이트 어레이.
  6. 제1항에 있어서, 상기 구조화 로직 서브 어레이는 저장 레지스터를 구현하는 헤테로지니어스 프로그래머블 게이트 어레이.
  7. 제1항에 있어서, 상기 구조화 로직 서브 어레이는 랜덤 액세스 메모리를 구현하는 헤테로지니어스 프로그래머블 게이트 어레이.
  8. 제1항에 있어서, 상기 구조화 로직 서브 어레이는 희박하며 길고 높은 팬아웃 및 낮은 스큐를 갖는 라우팅 리소스에 의해 특징화되는 헤테로지니어스 프로그래머블 게이트 어레이.
  9. 제1항에 있어서, 상기 게이트 어레이는 대략 1/3 비구조화 로직 서브 어레이 회로 및 대략 2/3 구조화 로직 서브 어레이 회로를 포함하는 헤테로지니어스 프로그래머블 게이트 어레이.
KR1020017014233A 1999-05-07 2000-05-05 헤테로지니어스 프로그래머블 게이트 어레이 KR100761328B1 (ko)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6366120B1 (en) * 1999-03-04 2002-04-02 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
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
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
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
US7653710B2 (en) 2002-06-25 2010-01-26 Qst Holdings, Llc. Hardware task manager
US7433909B2 (en) 2002-06-25 2008-10-07 Nvidia Corporation Processing architecture for a reconfigurable arithmetic node
US20040133745A1 (en) 2002-10-28 2004-07-08 Quicksilver Technology, Inc. Adaptable datapath for a digital processing system
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
US7624204B2 (en) * 2001-03-22 2009-11-24 Nvidia Corporation Input/output controller node in an adaptable computing environment
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
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
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
US8412915B2 (en) 2001-11-30 2013-04-02 Altera Corporation Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous 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
US7328414B1 (en) 2003-05-13 2008-02-05 Qst Holdings, Llc Method and system for creating and programming an adaptive computing engine
US7660984B1 (en) 2003-05-13 2010-02-09 Quicksilver Technology Method and system for achieving individualized protected space in an operating system
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
EP2526494B1 (en) 2010-01-21 2020-01-15 SVIRAL, Inc. A method and apparatus for a general-purpose, multiple-core system for implementing stream-based computations

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2565497B2 (ja) 1985-09-11 1996-12-18 ピルキントン マイクロ−エレクトロニクス リミテツド 半導体集積回路
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

Also Published As

Publication number Publication date
EP1177631A4 (en) 2002-07-03
US6433578B1 (en) 2002-08-13
EP1177631B1 (en) 2005-12-28
CA2371080A1 (en) 2000-11-16
AU5127600A (en) 2000-11-21
KR100761328B1 (ko) 2007-09-27
WO2000069073A1 (en) 2000-11-16
DE60025196T2 (de) 2006-09-07
EP1177631A1 (en) 2002-02-06
JP2002544700A (ja) 2002-12-24
ATE314754T1 (de) 2006-01-15
DE60025196D1 (de) 2006-02-02

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
US7953956B2 (en) Reconfigurable circuit with a limitation on connection and method of determining functions of logic circuits in the reconfigurable circuit
JP4230580B2 (ja) 再構成可能プロセッサデバイス
US6349346B1 (en) Control fabric unit including associated configuration memory and PSOP state machine adapted to provide configuration address to reconfigurable functional unit
JP4573896B2 (ja) 粗バイアス異種再構成可能アレイ
JPH0927745A (ja) プログラマブル・アレイ・クロック/リセット
US20130257476A1 (en) Integrated circuits with multi-stage logic regions
US6570404B1 (en) High-performance programmable logic architecture
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
Jordan et al. MU-decoders: A class of fast and efficient configurable decoders
Prasad et al. FPGA friendly NoC simulation acceleration framework employing 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
Elsayed et al. Design and Evaluation of a Configurable Hardware Merge Sorter for Various Output Records
EP0924625A1 (en) Configurable processor
US6263482B1 (en) Programmable logic device having macrocells with selectable product-term inversion
Bucur Performance mapping of k-LUT based FPGAs
Abdali et al. Exploring the performance of partially reconfigurable point-to-point interconnects
Iqbal et al. Reconfigurable computing technology used for modern scientific applications
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