KR20090028552A - 집적 회로용의 재구성 가능한 로직 패브릭과, 재구성 가능한 로직 패브릭을 구성하기 위한 시스템 및 방법 - Google Patents

집적 회로용의 재구성 가능한 로직 패브릭과, 재구성 가능한 로직 패브릭을 구성하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20090028552A
KR20090028552A KR1020087031271A KR20087031271A KR20090028552A KR 20090028552 A KR20090028552 A KR 20090028552A KR 1020087031271 A KR1020087031271 A KR 1020087031271A KR 20087031271 A KR20087031271 A KR 20087031271A KR 20090028552 A KR20090028552 A KR 20090028552A
Authority
KR
South Korea
Prior art keywords
logic
asynchronous
programmable
fabric
unit
Prior art date
Application number
KR1020087031271A
Other languages
English (en)
Other versions
KR101058468B1 (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 KR20090028552A publication Critical patent/KR20090028552A/ko
Application granted granted Critical
Publication of KR101058468B1 publication Critical patent/KR101058468B1/ko

Links

Images

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • 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/17724Structural details of logic blocks
    • H03K19/17728Reconfigurable logic blocks, e.g. lookup tables
    • 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
    • H03K19/17744Structural details of routing resources for input/output signals

Abstract

본 발명에 따르면, 집적 회로용의 비동기식 재구성 가능한 로직 패브릭과, 비동기식의 재구성 가능한 로직 패브릭에서 구현되는 비동기 회로를 설계하기 위한 방법이 본 명세서에서 제공된다.
Figure P1020087031271
로직 패브릭, 비동기 회로, 집적 회로, 전자 설계 자동화

Description

집적 회로용의 재구성 가능한 로직 패브릭과, 재구성 가능한 로직 패브릭을 구성하기 위한 시스템 및 방법{RECONFIGURABLE LOGIC FABRICS FOR INTEGRATED CIRCUITS AND SYSTEMS AND METHODS FOR CONFIGURING RECONFIGURABLE LOGIC FABRICS}
본 발명은 재구성 가능한 로직 패브릭을 포함하는 집적 회로에 관한 것으로, 더욱 구체적으로, 예를 들어, 회로 설계 시에 계산 속도가 고려 대상인 필드 프로그램가능 게이트 어레이(FPGAs : Field Programmable Gate Arrays), 주문형 집적 회로(ASICs : Application Specific Integrated Circuits) 및 다른 프로그램가능 로직 장치를 포함하는 집적 회로에서의 배치를 위한 고성능의 재구성 가능한 로직 패브릭(logic fabric)에 관한 것이다. 또한, 본 발명은 고성능의 재구성 가능한 로직 패브릭을 구성하기 위한 방법 및 장치에 관한 것이다.
관련 출원에 대한 상호 참조
본 출원은 2006년 6월 28일자로 출원된 가출원 제60/817,552호의 이익을 주장한다.
기존의 재구성 가능한 로직 패브릭은 패브릭 내에 내장된 동기 회로의 순차적인 배치에 의존하고 있다. 패브릭 내에 순차적으로 배치된 동기 회로의 존재는 로직 패브릭이 로직 동작을 수행할 수 있는 속도를 제한한다. 순차 체인(sequence chain)에서의 각 회로는 그 체인의 이전 회로의 계산 결과를 수신하기 위하여 적어도 하나의 클럭 사이클을 대기해야 한다. 이 지연은 기존의 재구성 가능한 로직 패브릭이 동작할 수 있는 속도를 제한한다. 본 발명자는 기존의 동기식 로직 패브릭을 이용하여 얻어질 수 있는 것보다 더 빠른 속도에서 동작할 수 있는 재구성 가능한 로직 패브릭에 대한 필요성을 인식하였다.
특정한 하드웨어 회로 구현예를 포함하도록 기존의 재구성 가능한 로직 패브릭을 구성하는 것은 오프-라인 전자 설계 자동화(EDA : Electronic Design Automation) 도구를 이용하여 달성된다. 이 도구는 재구성 패브릭에 동기 회로가 존재하는 것으로 가정한다. 본 발명자는, 더 빠른 계산 속도가 가능할 뿐만 아니라, 이용 가능한 EDA 설계 도구를 이용하여 설계하는 것을 수정할 수 있는 재구성 가능한 로직 패브릭에 대한 필요성을 인식하였다.
본 발명은 재구성 가능한 로직 패브릭과, 재구성 가능한 로직 패브릭을 구성하기 위한 방법 및 시스템을 제공한다.
본 발명의 이러한 그리고 그 외의 목적, 특징 및 장점은 도면을 참조하여 고려되는 이하의 발명의 상세한 설명을 고려함으로써 명백해질 것이다.
도 1은 발명의 실시예에 따른 프로그램가능 로직 패브릭에서 구현되는 비동기 회로 동작을 나타내기에 적합한 데이터 흐름(dataflow) 노드를 예시하는 개념도 이다.
도 2는 발명의 실시예에 따른 프로그램가능 로직 패브릭의 일부에 대한 평면도를 예시한다.
도 3은 발명의 실시예에 따른 로직 클러스터의 블럭도이다.
도 4는 발명의 실시예에 따른 로직 클러스터 쌍의 회로도이다.
도 5는 발명의 실시예에 따른 와이드(wide) AND 동작을 구현하는 재구성 가능한 로직 블럭의 배치를 포함하는 로직 클러스터를 예시하는 회로도이다.
도 6은 발명의 실시예에 따른 와이드 OR 동작을 구현하는 재구성 가능한 로직 블럭의 배치를 예시하는 회로도이다.
도 7은 발명의 실시예에 따른 재구성 가능한 로직 블럭을 예시하는 회로도이다.
도 8은 발명의 실시예에 따라 루프로 구성된 룩업 테이블을 예시하는 회로도이다.
도 9A는 병합 동작을 수행하도록 구성된 발명의 로직 소자를 예시하는 로직 도면이다.
도 9B는 도 9A 및 도 9C에 예시된 로직 동작을 수행하도록 재구성할 수 있는 로직 소자를 나타내는 로직 도면이다.
도 9C는 분리 동작을 수행하도록 구성된 발명의 로직 소자를 예시하는 로직 도면이다.
본 발명에 따르면, 집적 회로용의 비동기식 재구성 가능한 로직 패브릭과, 비동기식의 재구성 가능한 로직 패브릭에서 구현되는 비동기 회로를 설계하기 위한 방법이 본 명세서에서 제공된다.
도 1
도 1은 예시적인 비동기식 데이터 흐름 동작(102-114)을 예시한다. 발명의 일 실시예에서, 데이터 흐름 동작(102-114)은 비동기식의 재구성 가능한 로직 패브릭에 대한 특정한 하드웨어 구현예를 정의한다. 데이터 흐름 동작을 위한 데이터는 "토큰(token)"으로 나타낸다. 데이터 토큰은 데이터 경로를 따라간다. 도 1에서, 데이터 경로는 화살표로서 나타낸다.
예를 들어, 복사 동작(102)은 회로의 노드가 그 토큰 입력의 토큰을 복제하여 복수의 수신기에 송신하는 동작을 설명한다. 함수(104)는 복수의 입력 변수의 임의의 함수를 계산하고, 그 결과를 출력에서 제공한다. 발명의 실시예에 따르면, 함수는 토큰이 그 모든 입력에 도달할 때까지 완료되지 않는다.
병합 동작(106)은 복수의 입력, 제어 입력(ctrl) 및 하나의 출력을 포함하는 노드로서 나타낸다. 병합 동작(106)은 제어 입력으로부터 제어 토큰을 판독한다. 제어 토큰은 출력 채널 상에 제공하기 위한 토큰을 상기 병합이 판독할 입력을 나타낸다. 분리(108)는 병합의 반대 기능을 수행한다. 분리(108)는 하나의 입력 및 복수의 출력을 가진다. 제어 토큰의 값은 입력 채널로부터 판독된 토큰을 상기 분리가 기록할 출력을 나타낸다.
싱크(sink)(110)는 토큰을 무조건적으로 소비한다. 소스(source)(112)는 일 정한 값을 갖는 데이터 토큰을 생성한다. 소스(112)는 그 이전의 토큰이 소비될 때까지 새로운 토큰을 생성하지 않는다. 예를 들어, FPGA와 같은 장치가 리셋(reset)되면, 초기화기(114)는 그 입력 상의 데이터 토큰으로 시작된다. 리셋 후에, 초기화(114)는 복사(copy)로서 작동한다.
도 1에 예시된 바와 같이 전술한 동작은 발명의 일 실시예에 따른 재구성 가능한 로직 패브릭의 특정한 구성에 대한 하드웨어 회로 구현예를 설명하기 위해 이용된다. 도 1에 예시된 기본적인 동작을 구현하는 설계 도구는 발명의 비동기식의 재프로그램가능 로직 패브릭을 구성하기 위해 이용될 수 있다. 발명의 재구성 가능한 로직 패브릭을 이용하여 더욱 복잡한 결정용 비동기식 계산을 수행할 수 있는 회로를 구현하기 위하여, 상기 기본적인 동작이 조합 가능하다.
발명의 재구성 가능한 비동기식 로직 패브릭은 적어도 2개의 장점을 제공한다. 첫째, 패브릭을 포함하는 회로는 클럭 독립적인 동작으로 인해 더 빠른 동작이 가능하다. 둘째, 발명의 패브릭을 포함할 비동기 회로의 표시는 이용 가능한 설계 도구를 이용하여 용이하게 수행된다. 따라서, 발명의 실시예는 전술한 데이터 흐름 동작을 수행하는 회로의 성능을 최적화시킨다.
도 2
도 2는 발명의 실시예에 따른 집적 회로(200)를 예시한다. 집적 회로(200)는 프로그램가능 로직 패브릭(201) 및 프로그램가능 입력/출력(I/O) 블럭(202)을 포함한다. 로직 패브릭(201)은 적어도 하나의 패브릭 부분(250)을 포함한다. 패브릭 부분(250)은 로직 패브릭(201) 내에 내장된 소자의 어레이(210)를 포함한다. 부 분(250)의 소자는 다음의 각 유닛(이하, "블럭"이라고도 함), 즉, 재구성 가능한 로직 블럭(RLB : Reconfigurable Logic Block)(208), 정적 메모리 블럭(SMB : Static Memory Block)(206) 및 비동기 승산기 블럭(AMB : Asynchronous Multiplier Block)(207) 중의 적어도 하나를 포함한다.
발명의 일 실시예에서, 발명의 로직 패브릭(201)을 포함하는 각각의 소자는 비동기식이며, 즉, 클럭 신호에 독립적인 로직 동작을 수행할 수 있다. 결과적으로, 로직 패브릭(201)은 동기식 로직 소자에 의존하고 있는 기존의 패브릭에 의해 달성될 수 있는 것보다 더 빠른 속도에서 로직 동작을 수행할 수 있다.
발명의 일 실시예에서, 발명의 로직 패브릭(201)은 적어도 1GHz의 클럭 속도에 필적하는 속도에서 로직 동작을 수행한다. 발명의 일 실시예에 따르면, 로직 패브릭(201) 내에 소자를 내장하기 위하여, 상업적으로 이용 가능한 상보형 금속산화물 반도체(CMOS : Complementary Metal Oxide Semiconductor) 프로세스가 채용된다. 본 명세서에서 설명된 발명의 실시예에 따라 구성되는 프로그램가능 로직 패브릭(201)은 고속 환경에서 동작하는 전자 기기에서의 배치를 위한 재프로그램가능 로직 회로를 제공한다.
발명의 일 실시예에서, 프로그램가능 로직 패브릭(201)은 비율조정이 가능한 패브릭 평면도, 즉, 로직 패브릭 소자의 적어도 하나의 어레이(210)를 포함하는 아키텍처(architecture)를 제공한다. 발명의 프로그램가능 패브릭(201)은 시스템 온 칩(SoCs : systems-on-chip), 주문형 집적 회로(ASICs : Application Specific Integrated Circuits), 필드 프로그램가능 게이트 어레이(FPGAs : Field Programmable Gate Arrays), 시스템 인 패키지(SiPs : systems-in-a-package), 및 주문형 표준용도(ASSP : Application Specific Standard Purpose) 장치를 포함하는 다양한 반도체 장치에서 배치 가능하지만, 이것에 한정되지 않는다.
패브릭(201)의 실시예는 상업적으로 이용 가능한 비동기식 로직 계통(family)에 의해 구현 가능하다. 발명의 다른 실시예는 로직 계통의 조합을 이용하여 구현된다. 적당한 로직 계통의 예는, 단일 트랙 풀 버퍼 회로(single track full buffer circuits), 자체-리셋/펄스-모드(self-resetting/pulse-mode) 로직, 또는 비동기 기술을 이용하는 다른 회로 뿐만 아니라, 준 지연 비감지형 회로(quasi delay-insensitive circuits), 자체-타이밍 회로(self-timed circuits), 속도 독립형 회로, 번들 데이터 회로(bundled data circuits), 마이크로파이프라인(micropipelines), asP, asP*, 및 GasP를 포함한다.
SRAM 메모리 블럭( SMBs : SRAM memory blocks )
SMB(206)는 메모리 소자이다. 발명의 일 실시예에 따르면, SMB(206)는 듀얼-포트 정적 랜덤 액세스 메모리(SRAM : Static Random Access Memory) 모듈을 포함한다. 적어도 하나의 SMB(206)는 프로그램가능 로직 패브릭(201)의 어레이(210)에 내장된다. SMB(206)는 RLB(208) 및 AMB(207)에 의해 액세스 가능하다. SMB(206)는 복수의 메모리 배치 중의 적어도 하나를 포함하도록 구성 가능하다. SMB(206)의 예시적인 메모리 배치는 32K x 1-비트(bit), 16K x 2-비트, 8K x 4-비트, 4K x 8-비트, 4K x 9-비트, 2K x 16-비트, 2K x 18-비트, 1K x 32-비트, 1K x 36-비트, 512 x 64-비트, 512 x 72-비트를 포함한다.
SMB(206)의 9-비트, 18-비트, 36-비트 및 72-비트 메모리 구성은 메모리의 모든 바이트(byte)에 대하여 여분의 비트를 제공한다. 발명의 일부 실시예에 따르면, 여분의 비트는 패리티 검사(parity checking)를 위해 이용 가능하다. SMB(206)는 프로그램가능 상호접속 소자 CB(204)를 통해 상호접속용 그리드(interconnecting grid)(도 2에 예시되지 않음)에 연결된다. 또한, SMB(206)는 그 인접 소자 예를 들어, AMB(207)에 연결된다. 발명의 일 실시예에 따르면, CB(204)는 SMB(206)를 위한 비동기 인터페이스를 상호접속용 그리드에 제공한다. 발명의 일 실시예에서, CB(204)는 비동기식이며 파이프라인 방식이다. 비동기식 동작에서, 메모리 판독/기록(read/write) 요구는 그 이전의 판독/기록 요구가 SMB(206)에 의해 충족되기 전에 SMB(206)로 전송 가능하다. 발명의 일 실시예에서, SMB(206)는 비동기식 퍼스트 인 퍼스트 아웃(FIFO : First In First Out) 메모리를 포함하도록 구성 가능하다. 이러한 실시예에서, SMB(206)는 원형 버퍼(circular buffer)로서 구성되고, 삽입 및 제거 동작을 지원하기 위한 로직을 포함한다. 발명의 일 실시예에서, 로직 패브릭(201) 내에 내장된 FIFO의 수와, SMB(206)에 대한 포트의 수는 재프로그램 가능하다.
비동기 승산기 블럭( AMBs : Asynchronous Multiplier Blocks )
AMB(207)는 비동기식의 재구성 가능한 승산기를 포함한다. AMB(207)는 적어도 하나의 SMB(206)에 연결된다. 각각의 SMB(206)는 인접 AMB(207)를 가진다. 인접 AMB(207)는 크기가 다양한 부호 있는 승산을 수행하도록 구성 가능하다. AMB(207)는 1개의 72 x 72-비트 승산기, 4개의 36 x 36-비트 승산기, 8개의 18 x 18-비트 승산기, 16개의 9 x 9-비트 승산기를 포함하는 다양한 승산기 구성을 위해 프로그램 가능하지만, 이것에 한정되지 않는다.
본 명세서에서 설명된 바와 같은 AMB(207)는 RLB로 구성되는 승산기에 비해 집적 회로(200)에 대해 더 높은 밀도 및 더 낮은 소비전력을 제공한다. AMB(207)는 그 관련된 상호접속 소자 CB(204)를 프로그래밍함으로써 상호접속용 그리드(도시하지 않음)에 기록하고 상호접속용 그리드로부터 판독하도록 구성 가능하다. 또한, AMB(207)는 인접 SMB(206)와 직접 통신하도록 구성된다. AMB 및 CB의 이러한 구성은 회로, 예를 들어, 승산-누산(multiply-accumulate) 회로의 효율적인 프로그램가능 구성을 가능하게 한다. 발명의 일 실시예에서, RLB(208)를 누산기(accumulator)로서 구성하고, AMB(207)를 승산기로서 구성하면서 SMB(206)를 저장을 위해 채용함으로써, 승산 누산 회로가 구성된다. SMB, AMB 및 RLB의 이러한 배치는 고속 퓨리에 변환(FFT : Fast Fourier Transform), 유한 임펄스 응답(FIR : Finite Impulse Response) 필터 및 이산 코사인 변환(DCT : Discrete Cosine Transform)과 같은 폭넓게 다양한 디지털 신호 프로세싱(DSP : Digital Signal Processing) 기능을 구현하기 위해 이용 가능하다. 따라서, AMB(207) 단독으로는 제공하기가 비효율적인 승산 자원을 필요로 하는 어플리케이션을 위한 승산기를 구현하도록 발명의 RLB가 구성 가능하다.
채널 박스( CB )(220) 및 스위치 박스( SB )(205)
로직 패브릭(201)은 복수의 채널 박스(CB)(220) 및 복수의 스위치 박스(SB)(205)를 포함한다. 각각의 RLB(208), SMB(206) 및 AMB(207)는 대응하는 채널 박스(CB)(220)를 통해 패브릭(201)의 상호접속용 그리드의 대응하는 부분에 연결된다. 스위치 박스(SB)(205)는 파이프라인 방식의 상호접속용 그리드의 교차 부분에 제공된다. SB(205)는 상호접속용 그리드 부분을 가로질러 패브릭(201)의 소자를 연결하도록 프로그래밍 되어 있다. 채널 박스(206) 및 스위치 박스(205)를 프로그래밍하여, 재프로그램 가능한 로직 패브릭(201)이 비동기식의 재구성 가능한 로직 패브릭을 포함하도록, 도 1에 대하여 설명된 바와 같은 데이터 흐름 동작을 실행함으로써, 패브릭 소자를 상호접속용 그리드에 연결하여, 어레이(210)의 구성이 달성된다.
재구성 가능한 로직 블럭 ( RLB )(208)
발명의 일 실시예에서, 재프로그램가능 로직 블럭(RLB)(208)은 로직 회로를 포함한다. 로직 회로는 로직 회로 입력에서 제공된 신호에 대하여 로직 동작을 수행하여, 동작 결과를 로직 회로 출력에서 제공한다.
발명의 일 실시예에서, 로직 패브릭(201)의 각각의 RLB는 비동기식 로직 회로만을 포함한다. 이에 따라, 발명은 기존의 로직 회로 및 패브릭과 차이가 있다. 기존의 프로그램가능 로직 패브릭은 패브릭 전반에 걸쳐 동기 회로를 포함한다. 이에 따라, 기존의 패브릭은 계산 동작을 동기화시키기 위한 클럭을 필요로 한다. 이에 비해, 발명의 패브릭(201)은 계산 동작을 동기화시키기 위한 클럭에 의존하지 않는다. RLB(208)가 비동기식 로직 회로를 포함하므로, 패브릭(201)은 클럭 분배 네트워크(clock distribution network)를 필요로 하지 않는다.
발명의 일 실시예에서, RLB(208)는 로직 클러스터(LCs : Logic Clusters)(400)의 배치를 포함한다.
로직 클러스터(400)
도 4는 발명의 실시예에 따른 로직 클러스터(LC)(400)를 예시한다. 발명의 일 실시예에서, 각각의 RLB는 4개의 LC(400)의 그룹을 포함한다(도 5에 예시된 예). 각각의 LC(400)는 순차적으로 동작하도록 프로그래밍 되어, RLB(208)는 복수의 LC 입력을 가로질러 제공된 신호에 대한 복합 로직 동작을 수행하도록 구성 가능하다. 도 4에서, LC(400) 입력은 A, B, C 및 D로 표시되어 있다.
도 4는 개략적인 로직 클러스터(400)이다. 전통적인 재구성 가능한 로직 회로와 달리, LC 유닛(400)은 비동기식 로직 회로를 포함한다. 발명의 일 실시예에서, 비동기식 로직 회로는 파이프라인 방식이다. LC 유닛(400)은 4-입력 룩업 테이블(LUT : look-up table)(402), 프로그램가능 AND(PAND)(406), XOR 게이트(PXOR)(408), 캐리-체인 멀티플렉서(CMUX)(410) 및 프로그램가능 멀티플렉서(PMUX)(412)를 포함한다. LUT(402)는 4개에 이르는 입력을 포함하는 함수를 구현한다. 4개 미만의 입력을 갖는 함수를 구현하기 위하여, RLB의 소스는 이용되지 않는 입력에 대한 토큰을 생성하도록 이용된다. LUT(402)의 출력은 프로그램가능 XOR 버퍼(PXOR)(408)를 거쳐 LC(400)의 출력 또는 그 대응하는 상태 비트(state bit)(413)로 연결된다. 발명의 PXOR(408)의 실시예는 버퍼로서 작용하도록 프로그래밍 가능하다. 다른 방안으로서, PXOR(408)은 LUT(402)의 출력과, Cin(401)에서 제공되는 캐리-인 값(carry-in value) 사이의 XOR 동작을 수행하도록 프로그래밍 가능하다.
각각의 LC 유닛(400)은 리플-캐리 가산기(ripple-carry adders)를 효율적으로 구현하기 위해 PXOR(408)과 함께 이용될 수 있는 얼리-아웃 캐리 전용 체인(dedicated early-out carry chains)을 위한 회로를 포함한다. 캐리 멀티플렉서(CMUX)(410)는 LUT(402)에 의해 구현되는 동작의 결과인 LUT(402)의 출력과 캐리-인 토큰(401)을 이용하여 올바른 캐리-아웃 토큰(403)을 결정하도록 프로그램 가능하다. 캐리-아웃 토큰(403)을 결정하기 위해 캐리-인 토큰(401)이 요구되지 않는 경우, (예를 들어, 1-비트 가산기에 대한 2개의 입력의 값이 제로(zero)인 경우) 캐리 아웃은 제로일 것이다. 그 경우, 캐리-인 토큰이 401에 도달하기 전에, CMUX(410)는 403에서 캐리-아웃 토큰을 생성한다. 그러므로, 캐리 체인이 하부에서 상부로 가는 상황에서, 각각의 LC 유닛(400)은 전 가산기(full adder)의 2개의 비트로서 구성될 수 있다. 또한, 캐리-체인 회로는 승산기를 구현하기 위해 이용될 수 있는 프로그램가능 AND 유닛(PAND)을 포함한다.
로직 클러스터 쌍(300)
도 3은 로직 클러스터 쌍(300)을 예시한다. 로직 클러스터 쌍(300)은 2개의 4-입력 룩업 테이블(LUT)(302, 304), 산술 캐리 로직(306, 308) 및 상태 비트 저장 소자(310, 312)를 포함한다. 각각의 LUT(302, 304)의 출력은 LC의 대응하는 출력 및 대응하는 상태 비트를 구동하도록 구성 가능하다. 발명의 일 실시예에서, LUT(302)의 출력은 LC의 대응하는 출력 또는 상태 비트를 구동하도록 선택 가능하다. PLI(도 7에 가장 양호하게 예시됨)는 상태 비트(310 및 312로 나타냄)의 출력이 LUT(302, 304)에 대한 입력이 되도록 구성 가능하다. 이 구성은 상태-유지 계 산(state-holding computations)을 가능하게 한다.
발명의 일 실시예에 따르면, 산술 캐리 로직(306 및 308)은 얼리-아웃 캐리 체인을 제공하도록 구성된다. 이러한 구성에서는, 출력이 결정될 수 있는 상태가 되자마자 RLB는 로직 동작의 결과를 생성할 수 있다. RLB는 모든 입력이 준비되는 것을 기다리지 않고 결과를 생성한다. 산술 캐리 로직 블럭(306 및 308)을 도 3에 도시된 방식으로 연결함으로써, 블럭의 평균 대기시간이 감소된다. 발명의 일 실시예에서, LUT, 산술 캐리 로직 및 상태 비트를 포함하는 블럭은 파이프라인 방식이며, 비동기식 로직에 의해 구현된다.
로직 클러스터에 추가하여, 발명의 실시예에 따른 RLB(208)는 토큰 소스 및 싱크, 2방향 조건 유닛, 4방향 조건 유닛, 8방향 조건 유닛을 더 포함한다. 발명의 실시예에 따라 구성된 RLB는 패브릭(201)의 아키텍처에 대한 로직 동작의 효율적인 맵핑(mapping)을 허용한다. 각각의 RLB는 도 2에 도시된 바와 같이, 그 인접 CB를 이용하여 파이프라인 방식의 상호접속부로 데이터 토큰을 송신하거나, 파이프라인 방식의 상호접속부로부터 데이터 토큰을 수신한다.
프로그램가능 I/O 블럭 (202)
프로그램가능 I/O 블럭(202)(도 2에 예시됨)은 로직 패브릭(201)과, 이에 따라 집적 회로(200)가 동기 회로, 장치 및 시스템에서의 동작을 위해 연결되도록 구성 가능하다. 발명의 일 실시예에서, 프로그램가능 I/O 블럭(202)은 로직 패브릭(201)의 둘레 주위에 배치되어, 예를 들어, 집적 회로(200)의 둘레 부분을 구성한다. 발명의 일 실시예에서, I/O 블럭은 프로그램가능 동기식 I/O 블럭과, 정적 동기식 및 비동기식 I/O 블럭을 포함한다.
발명의 하나의 예시적인 실시예는 2가지 타입(type)의 I/O를 이용하여 구현된 FPGA를 포함한다. 발명의 일 실시예에서, 이 타입은 선택 가능하다. 제1타입은 동기식 I/O 뱅크(SIOs)를 포함하고, 이 동기식 I/O 뱅크는 비동기식 패브릭으로부터 동기식 인터페이스로 변환할 수 있는 구성 가능한 동기식 블럭(예를 들어, 도 2의 288)과 표준 동기식 I/O 블럭의 조합을 포함한다. 변환기 유닛(288)은 로직 동작 결과를 수신하기 위하여, 로직 패브릭(201)의 비동기식 소자의 출력에 연결된 입력을 포함한다. 변환기 유닛(288)은 동작 결과를 변환기 출력에서 동기식으로 제공한다. 제2타입은 복수의 FPGA 사이에서 비동기식의 고속 통신을 위해 이용될 수 있는 비동기식 I/O 뱅크(AIOs)를 포함한다.
발명의 일부 실시예에 따르면, 프로그램가능 I/O 블럭은 전기 입력/출력 유닛 특성을 지정하는 기술 표준에 따라 구성된다. 발명의 I/O 블럭의 실시예가 따르는 예시적인 전기 표준은 GPIO, PCI, PCI-X, LVDS, LDT, SSTL 및 HSTL을 포함하지만, 이것에 한정되지 않는다. 따라서, I/O 블럭을 통해 연결된 신호는 본 명세서에서 설명되는 발명이 구현되는 특정한 어플리케이션에 따라 다양한 전압 및 구동 세기를 포함할 것이다.
동기식 I/O( SIO ) 뱅크
발명의 실시예에 따르면, 집적 회로(200)는 I/O 뱅크(202)를 포함한다. I/O 뱅크(202)는 비동기식 패브릭(210)이 동기식 로직 회로와 인터페이스 하는 것을 가능하게 한다. 발명의 일 실시예에서, I/O 뱅크(202)는 프로그램가능 로직 패브 릭(201)의 둘레 주위에 배치된다. I/O 뱅크(202)는 2개의 비동기식 IC(200), 예를 들어, 2개의 FPGA 사이에서 높은 스루풋(throughput)의 통신을 제공한다. 발명의 실시예에 따르면, 이러한 통신은 동기식 변환의 단점 없이 달성된다. IO 뱅크(202)는 2개의 타입의 비동기식 통신을 위해 구성 가능하다. 제1타입은 번들-데이터 인터페이스(bundled-data interface)를 이용한 표준 비동기식 핸드쉐이크 프로토콜(handshake protocol)이다. 제2타입은 예를 들어, FPGA-FPGA 통신을 가능하게 하는 고속 직렬 링크이다.
번들 데이터 인터페이스는 데이터용 I/O 핀의 세트와, 요구/승인 핀의 쌍을 이용하여, 표준 번들 데이터 비동기식 핸드쉐이크 프로토콜을 구현한다. I/O 뱅크(203)는 4-위상 핸드웨이크 및 전이-신호전송(transition-signaling) 2-위상 프로토콜 중의 적어도 하나를 구현하도록 구성 가능하다. I/O 밴드(203)는 송신기 개시(sender initiated) 및 수신기 개시(initiated) 프로토콜을 구현하도록 구성 가능하다. 상기 프로토콜은 비동기식 I/O 뱅크를 포함하는 I/O 블럭(202) 부분의 수를 포함하는 한계값에 이르는 I/O 핀의 선택 가능한 수를 이용하여 구현 가능하다. 프로토콜을 위한 물리적 신호전송은 프로그램가능 신호전송 블럭에 의해 선택 가능하다.
고속 FPGA-FPGA 통신을 위한 멀티-Gbps 스루풋을 허용하는 직렬 링크 프로토콜도 I/O 블럭(202)을 이용하여 구현 가능하다. 이 직렬 링크는 임의의 재동기화 오버헤드(re-synchronization overhead) 없이도 높은 대역폭 및 낮은 대기시간의 비동기식 통신을 제공한다.
발명의 일 실시예에서, 비동기식-동기식 변환은 전자 설계 자동화(EDA : Electronic Design Automation) 도구에 의해 실시된다. EDA 도구는 IC(200)의 설계 도중에 I/O가 동기식 출력을 제공하는 것으로 정의하도록 이용 가능하다. EDA 도구는 프로그램가능 클럭 생성기를 포함하는 변환기를 제공한다.
발명의 실시예에 따르면, EDA 변환기는 프로그램가능 I/O 블럭(202)의 주파수를 지정하기 위해 이용된다. 발명의 패브릭(201)은 EDA 변환기의 이용을 허용한다. 재구성 가능한 패브릭(201)은 EDA 도구의 클럭 생성기에 의해 지정된 주파수에서의 동작을 위해 구성 가능하다. 이에 따라, 발명은 EDA 도구의 이용을 가능하게 하고, 그 결과, EDA 도구에 의해 제공되는 동기식-비동기식 변환기의 이용을 가능하게 한다. 또한, EDA 변환기의 이용은 IC(200)의 동기식 출력이 클럭 에지로부터의 고정된 지연 오프셋에서 유효하도록 하는 지연-고정 루프(delay-locked loop)를 제공한다.
EDA 도구는 IC(200)를 위한 유효 비트를 갖는 동기식 출력을 가능하게 하는 변환기의 두 번째 종류를 제공한다. 그 경우, 동작 결과는 패브릭(201)이 새로운 데이터 출력을 생성할 때마다 만들어진다. 프로토콜을 위한 물리적 신호전송은 발명의 일부 실시예에 따른 프로그램가능 신호전송 블럭으로부터 선택 가능하다.
패브릭(201)의 비동기식 아키텍처는 동기식 고장진단(synchronous troubleshooting) 집적 회로(200)를 지원한다. 발명의 일 실시예에서, IC(200)는 사용자 지정 방식에 의해 활성화될 수 있는 비동기식-동기식 변환기(288)를 포함한다. 핵심 레지스터 또는 배선은 "디버그(debug)" 신호로서 지정된다. 이것은 IC(200)의 온-칩 디버그 레지스터에 자동으로 접속될 것이다. 디버그 레지스터는 동기식 흐름과 유사한 순차적인 방식으로 실행의 스텝을 진행하기 위해 이용되는 클럭에 의해 스캔 및 로딩될 수 있다. 디버그 레지스터 및 I/O의 전체 세트는 JTAG(Joint Test Action Group) 인터페이스를 통해 스캔 또는 로딩될 수 있다. 해당 기술 분야에서 공지된 바와 같이, JTAG는 IEEE 1149.1 표준, 즉, 경계 스캔을 이용하여 인쇄 회로 기판을 테스트하기 위해 이용되는 테스트 액세스 포트를 위한 표준 테스트 액세스 포트 및 경계 스캔 아키텍처를 의미한다.
도 5 재구성 가능한 로직 블럭(AND 구성)
도 5는 발명의 실시예의 단순화된 예에 따른 재구성 가능한 로직 블럭(RLB)(501, 503 및 505)를 포함하도록 배치된 도 3 및 도 4에 예시된 것과 같은 로직 클러스터를 예시하는 회로이다. 도 5에 예시된 실시예에서, RLB(501, 503 및 505)는 와이드 AND 동작(wide AND operation)을 구현하도록 구성된다. 각각의 RLB는 와이드 AND, OR 및 곱의 합(SOP : sum-of-products) 동작을 제공하는 회로 소자를 포함한다. LUT(예를 들어, 502, 504)를 프로그래밍하여 4-입력 AND 동작을 수행하고, 캐리 체인을 이용함으로써, 다수의 RLB에 걸쳐 존재하는 와이드 AND 동작이 구성된다. 도 5는 RLB(501, 503 및 505)에 걸쳐 존재하는 48-입력 AND를 도시한다. 발명의 일 실시예에서, AND는 파이프라인 방식이다. 즉, 최하부 LUT(530)는 LUT(530)가 그 출력을 생성하자마자 새로운 입력을 받아들인다. LUT(530)는 전체 48-입력 AND가 완료되는 것을 대기할 필요가 없다.
도 5를 구체적으로 참조하면, 6개의 로직 클러스터(LC)(514, 516, 518, 520 및 522)의 각각은, 입력에 대한 AND 함수를 수행하고 그 출력을 CMUX(예를 들어, LC(518)의 CMUS(508 및 506))의 체인에 공급하는 2개의 4-입력 LUT(예를 들어, LC(518)의 LUT(502 및 504))를 포함한다. 64개의 입력 라인은 각각 16개의 그룹으로 구성된다(예를 들어, RLB(503)의 LC(518 및520)의 LUT(502, 504, 533 및 530)에 대한 입력). 전술한 바와 같이, 각각의 LC는 2개의 LUT와, 전술한 바와 같은 접속용 산술 로직(AL)을 포함한다.
도 6 재구성 가능한 로직 블럭(OR 구성)
도 6은 발명의 실시예에 따른 와이드 OR 동작을 구현하는 재구성 가능한 로직 블럭의 배치를 예시하는 회로도이다. 인접 RLB 사이의 전용 캐리 접속을 이용하여 수직으로 흘러가는 와이드 AND 동작에 비해, 와이드 OR 동작은 전용 수평 접속을 통해 수평으로 흘러간다. 각각의 RLB는 9개에 이르는 입력을 가질 수 있는 프로그램가능 OR 버퍼(POR)를 가지며, 상기 입력은 각각의 LC의 출력과, 전용 수평 접속을 통해 좌측에 인접한 RLB로부터의 POR의 출력이다. 이것은 단일 RLB가 32-입력 OR을 수행하도록 한다. 도 6은 128-입력 OR(600)을 구성하도록 배치된 4개의 RLB(602A, 602B, 602C, 602D)를 도시한다. 8-입력 캐리 POR로 조합된 출력에 의해 OR 함수를 수행하도록 각각 프로그래밍 되어 있는 8개의 4-입력 LUT를 포함하는 것을 도시하기 위하여, 하나의 예시적인 RLB(602B)가 확대되어 있다.
와이드 AND 및 OR 동작을 생성하기 위해 이용되는 기술을 조합함으로써, 이용자는 매우 폭이 넓은 곱의 합(SOP) 동작을 효율적으로 구현할 수 있다. 프로그램가능 OR 회로는 파이프라인 방식이며, POR은 그 모든 입력이 준비되기 전에 그 출 력을 생성할 수 있다. 예를 들어, 입력 토큰 중의 하나가 "1"이면, 다른 모든 입력이 아직 준비되지 않더라도, POR의 출력은 알게 된다. 모든 입력이 준비되지 않을 수 있더라도, POR은 회로의 나머지가 진행하도록 하는 얼리-아웃 "1" 값을 생성한다. 다른 방안의 설계는 POR에 의해 지원되는 입력의 수를 변동시킬 수 있다.
도 7
도 7은 발명의 실시예에 따른 재구성 가능한 로직 블럭(RLB)(700)을 예시하는 회로도이다. RLB(700)는 제1 및 제2프로그램가능 로직 인터페이스(PLI)(701 및 702)와, 제1 및 제2로직 클러스터(LC)(707 및 711)를 포함한다. 각각의 PLI(701 및 702)는, RLB(700)의 구성요소를 다른 RLB(도 7에 도시하지 않음)의 구성요소에 연결하도록 구성 가능한 복수의 프로그램가능 스위치(CB 및 SB)를 포함한다. 제1 및 제2 PLI(701 및 702)는 상호접속용 그리드(도시하지 않음) 상에서 RLB에 대응하는 CB와 통신하도록 구성된 입력 및 출력 버퍼를 더 포함한다. 발명의 일 실시예에서, 입력 버퍼는 리셋시에 토큰을 초기화하여 제공된다. 발명의 다양한 실시예에 따르면, 출력 버퍼는 복사 동작을 수행하도록 구성 가능하다. 이것은 하나의 출력 토큰이 다수의 CB에 연결되도록 할 수 있다.
RLB(700)의 제1 및 제2 PLI(701 및 702)는 751, 752 및 753으로 표시된 분리 동작과, 761, 762 및 763으로 표시된 병합 동작을 구현하여 구성되는 회로를 포함한다. 이러한 동작은 로직 클러스터(707 및 711)를 위한 5-입력, 6-입력 또는 7-입력 함수를 구현하기 위해 이용 가능하다. 도 7은 6-입력 함수로서 구성된 RLB(700)를 도시한다. 발명의 일 실시예에서, 분리 및 병합은 LUT(721, 722, 723 및 724)에 접속된다. 그와 같은 방식에 의해, RLB(700)는 LUT의 제1 내지 제6입력에 대한 로직 동작을 수행하고, RLB 출력(780)에서 로직 동작의 결과를 제공하도록 구성된다.
각각의 RLB(700)는 복수의 소스 및 싱크를 포함한다. 소스는 PLI(701 및 702)로 가거나 이로부터 들어오는 데이터 토큰을 생성한다. 이것은 LC를 위한 입력(LUT 입력 또는 캐리-인 값)으로서 이용될 수 있다.
도 8 낮은 대기시간 루프
도 8은 로직 클러스터(831-834)를 포함하는 회로(800)를 예시한다. LUT(821-828)는 발명의 실시예에 따라 루프를 구현하도록 배치되어 있다.
도 9A, 9B 및 9C
도 9B는 발명의 실시예에 따른 조건 유닛(CU)으로서 구성된 발명의 패브릭의 소자를 예시하는 개념도이다. 각각의 RLB(700)(도 7에 예시됨)는 도 9A에서 936으로 예시된 바와 같이 조건 유닛(CU)으로서 구성 가능하다. 발명의 일 실시예에서, RLB(700)는 2개의 2-방향 조건 유닛(CU2), 하나의 4-방향 및 하나의 8-방향 조건 유닛(CU2, CU4 및 CU8)을 포함한다. CU(936)는 도 9A 및 도 9C에 예시된 바와 같이 2개의 구성으로 예시되어 있다. CU(936)의 구성은 제어 신호(950)에 의해 결정된다. 병합 동작에서, CU(936)는 입력 i0 및 i1을 병합하여 병합된 출력 o0을 제공한다. 분리 동작에서, CU(936)는 입력 i0을 2개의 출력 o0 및 o1로 분리한다.
도 9C는 분리 동작을 수행하도록 구성된 CU(936)를 예시한다. CU(936)는 그 제1입력(923)으로부터 데이터 토큰을 판독하고, 그 제어 채널(950)로부터 제어 토큰을 판독한다. 제어 토큰(950)의 값에 기초하여, CU(936)는 그 출력(927, 928) 중 의 하나의 출력 상의 데이터 토큰을 송신한다.
도 9A는 병합 동작을 수행하도록 구성된 CU(936)를 예시한다. CU(936)가 병합 동작을 수행하도록 구성되면, CU(936)는 950으로부터 제어 토큰을 판독하고, 그 토큰의 값에 기초하여, 그 입력(923, 924) 중의 하나로부터 데이터 토큰을 판독하고, 제1출력(927) 상의 그 토큰을 송신한다.
조건 유닛에 대한 제3의 구성은 결정용 MUX이며, 이 MUX는 그 입력 상에서 토큰을 항상 수신하지만 출력하기 위해 그 중에서 하나만 선택하는 병합 블럭에 대응한다. RLB를 이용한 대규모 입력 함수를 구성하기 위한 다른 방법은 도 7에 도시된 바와 같은 분리 및 병합 트리(tree)를 이용하는 것이 아니라, (분리를 이용하기 보다는) 입력을 복사한 다음, 병합 대신에 결정용 MUX를 이용하는 것이다.
구체적인 실시예에 대해 발명을 도시하고 설명하였지만, 이와 같이 한정되는 것은 아니다. 다수의 수정, 변경 및 확장이 이제는 독자에게 명확할 것이다.

Claims (15)

  1. 집적 회로에서 이용하기 위한 재구성 가능한 패브릭으로서,
    상기 패브릭은 비동기식 로직 소자 단독으로 구성된 내장 어레이를 포함하고, 상기 비동기식 로직 소자는 소자 입력에서 제공되는 신호에 대한 로직 동작을 수행하고 비동기식 소자 출력에서 동작 결과를 비동기식으로 제공하도록 프로그래밍 가능한
    재구성 가능한 패브릭.
  2. 소자 입력에서 제공되는 신호에 대한 로직 동작을 수행하고 소자 출력에서 동작 결과를 제공하도록 프로그래밍 가능한 비동기식 로직 소자의 내장 어레이를 포함하는 재구성 가능한 로직 패브릭; 및
    상기 비동기식 소자 입력 및 출력을 집적 회로 장치의 외부에 위치한 회로에 연결하고, 상기 외부 회로와의 동기식 동작을 위하여 프로그래밍 가능한 프로그램가능 입력/출력 블럭을 포함하는
    집적 회로.
  3. 제 2 항에 있어서,
    상기 재구성 가능한 로직 패브릭은 적어도 하나의 메모리 유닛에 연결된 적어도 하나의 승산기 유닛을 더 포함하는, 집적 회로.
  4. 제 3 항에 있어서,
    상기 적어도 하나의 승산기 유닛 및 상기 적어도 하나의 메모리 유닛은 직접 연결되는, 집적 회로.
  5. 제 3 항에 있어서,
    상기 적어도 하나의 승산기 유닛 및 상기 적어도 하나의 메모리 유닛은 상호접속용 그리드에 의해 연결되는, 집적 회로.
  6. 제 3 항에 있어서,
    상기 적어도 하나의 승산기 유닛 및 상기 적어도 하나의 메모리 유닛은 직접 접속부 및 상호접속용 그리드를 각각 포함하는 제1 및 제2접속부에 의해 연결되는, 집적 회로.
  7. 제 6 항에 있어서,
    상기 패브릭은 상기 직접 접속부 및 상기 상호접속용 그리드 사이에서 선택하기 위한 적어도 하나의 프로그램가능 접속 유닛을 더 포함하는, 집적 회로.
  8. 제 3 항에 있어서,
    상기 적어도 하나의 패브릭에서, 상기 적어도 하나의 승산기 유닛 및 상기 적어도 하나의 메모리 유닛은 프로그램 가능한, 집적 회로.
  9. 제 2 항에 있어서,
    상기 프로그램가능 입력 출력 블럭은 상기 동작 결과를 수신하기 위하여, 상기 비동기식 소자의 출력에 연결된 변환기 입력을 갖는 적어도 하나의 변환기 유닛을 포함하고, 상기 변환기 유닛은 변환기 출력에서 상기 동작 결과를 동기식으로 제공하는, 집적 회로.
  10. 제 2 항에 있어서,
    상기 프로그램가능 입력 출력 블럭은 상기 동작 결과를 수신하기 위하여, 상기 비동기식 소자의 출력에 연결된 변환기 입력을 갖는 적어도 하나의 변환기 유닛을 포함하고, 상기 변환기 유닛은 변환기 출력에서 상기 동작 결과를 비동기식으로 제공하는, 집적 회로.
  11. 제 10 항에 있어서,
    상기 변환기 유닛 출력은 버퍼 레지스터에 연결되고, 상기 버퍼 레지스터는 상기 동작 결과를 누적 및 저장하도록 구성되고, 상기 버퍼 레지스터는, 상기 동작 결과가 상기 외부 회로에 스텝 방식으로 제공되어 상기 집적 회로의 고장진단을 가능하게 하도록, 상기 버퍼 레지스터의 스텝 동작을 위한 제어 입력을 포함하는, 집적 회로.
  12. 제 2 항에 있어서,
    상기 소자는 복수의 재구성 가능한 로직 블럭(RLB : reconfigurable logic block)을 더 포함하고, 각각의 RLB는 적어도 하나의 로직 클러스터(LC : logic cluster)를 포함하고, 상기 로직 클러스터는 적어도 하나의 LUT를 포함하고, 상기 LUT는 상기 비동기식 소자 입력을 포함하는 입력을 가지는, 재구성 가능한 패브릭.
  13. 전자 설계 도구를 제공하는 단계; 및
    비동기식 데이터 흐름 표시에 따라 동작하도록 상기 전자 설계 도구를 구성하는 단계를 포함하는
    비동기식의 재구성 가능한 로직 패브릭을 구성하는 방법.
  14. 제 6 항에 있어서,
    상기 데이터 흐름 표시는 병합, 복사, 함수, 분리, 싱크, 소스 및 초기화를 포함하는 그룹으로부터 선택되는, 방법.
  15. 로직 유닛 입력에서 제공되는 신호에 대한 비동기식 로직 동작을 수행하고 로직 유닛 출력에서 비동기식 로직 동작 결과를 제공하도록 프로그래밍 가능한 복수의 로직 유닛을 포함하는 비동기식 반도체 패브릭; 및
    상기 비동기식 로직 유닛을 상기 반도체 장치의 외부에 위치한 회로에 연결 하는 복수의 프로그램가능 로직 유닛 인터페이스를 포함하고,
    상기 프로그램가능 로직 유닛 인터페이스 중의 적어도 하나는 상기 결과를 상기 반도체 장치의 외부에 위치한 동기식 회로에 제공하여, 상기 반도체 장치를 동기식 장치에 동작 가능하게 연결할 수 있도록 프로그래밍 가능한
    집적 회로.
KR1020087031271A 2006-06-28 2007-06-27 집적 회로용의 재구성 가능한 로직 패브릭과, 재구성 가능한 로직 패브릭을 구성하기 위한 시스템 및 방법 KR101058468B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US81755206P 2006-06-28 2006-06-28
US60/817,552 2006-06-28
PCT/US2007/072300 WO2008008629A2 (en) 2006-06-28 2007-06-27 Reconfigurable logic fabrics for integrated circuits and systems and methods for configuring reconfigurable logic fabrics

Publications (2)

Publication Number Publication Date
KR20090028552A true KR20090028552A (ko) 2009-03-18
KR101058468B1 KR101058468B1 (ko) 2011-08-24

Family

ID=38924011

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087031271A KR101058468B1 (ko) 2006-06-28 2007-06-27 집적 회로용의 재구성 가능한 로직 패브릭과, 재구성 가능한 로직 패브릭을 구성하기 위한 시스템 및 방법

Country Status (5)

Country Link
US (4) US7880499B2 (ko)
EP (1) EP2041872B1 (ko)
JP (1) JP5354427B2 (ko)
KR (1) KR101058468B1 (ko)
WO (1) WO2008008629A2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019006119A1 (en) * 2017-06-30 2019-01-03 Wave Computing, Inc. COMBINING DATA IN A RECONFIGURABLE MATRIX
US10659396B2 (en) 2015-08-02 2020-05-19 Wave Computing, Inc. Joining data within a reconfigurable fabric
KR20200138802A (ko) * 2018-03-31 2020-12-10 마이크론 테크놀로지, 인크. 멀티 스레드, 자체 스케줄링 재구성 가능한 컴퓨팅 패브릭에 대한 중지 신호를 사용한 역압 제어

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9269043B2 (en) 2002-03-12 2016-02-23 Knowm Tech, Llc Memristive neural processor utilizing anti-hebbian and hebbian technology
US8983886B2 (en) 2012-03-28 2015-03-17 Knowmtech, Llc Self-evolvable logic fabric
US7620917B2 (en) * 2004-10-04 2009-11-17 Synopsys, Inc. Methods and apparatuses for automated circuit design
JP5354427B2 (ja) 2006-06-28 2013-11-27 アクロニクス セミコンダクター コーポレイション 集積回路のための再構成可能論理ファブリックおよび再構成可能論理ファブリックを構成するためのシステムおよび方法
US8781193B2 (en) * 2007-03-08 2014-07-15 Sync-Rx, Ltd. Automatic quantitative vessel analysis
JP5251171B2 (ja) * 2008-03-06 2013-07-31 富士通セミコンダクター株式会社 論理回路装置
US8964795B2 (en) 2009-06-01 2015-02-24 Achronix Semiconductor Corporation Asynchronous pipelined interconnect architecture with fanout support
CN101645055B (zh) * 2009-09-10 2011-09-07 成都市华为赛门铁克科技有限公司 逻辑器件在线加载的方法、系统和处理器
US8300635B2 (en) * 2009-09-10 2012-10-30 Achronix Semiconductor Corporation Programmable crossbar structures in asynchronous systems
US7900078B1 (en) 2009-09-14 2011-03-01 Achronix Semiconductor Corporation Asynchronous conversion circuitry apparatus, systems, and methods
US20150261543A1 (en) * 2012-03-21 2015-09-17 Mika Lahteenmaki Method in a processor, an apparatus and a computer program product
US8773166B1 (en) * 2012-11-01 2014-07-08 Xilinx, Inc. Self-timed single track circuit
US9519486B1 (en) * 2012-11-21 2016-12-13 Xilinx, Inc. Method of and device for processing data using a pipeline of processing blocks
US9588773B2 (en) 2013-01-07 2017-03-07 Wave Computing, Inc. Software based application specific integrated circuit
US10592444B2 (en) 2013-01-07 2020-03-17 Wave Computing, Inc. Reconfigurable interconnected programmable processors
US9430239B2 (en) * 2013-03-12 2016-08-30 Qualcomm Incorporated Configurable multicore network processor
CN105191139B (zh) * 2013-04-02 2018-12-07 太阳诱电株式会社 可重构逻辑器件
US9152520B2 (en) * 2013-09-26 2015-10-06 Texas Instruments Incorporated Programmable interface-based validation and debug
WO2015066561A1 (en) * 2013-11-02 2015-05-07 Wave Semiconductor, Inc. Logical elements with switchable connections
US10203935B2 (en) 2013-11-02 2019-02-12 Wave Computing, Inc. Power control within a dataflow processor
US10218357B2 (en) 2013-11-02 2019-02-26 Wave Computing, Inc. Logical elements with switchable connections for multifunction operation
US9735761B2 (en) * 2014-07-24 2017-08-15 Lattice Semiconductor Corporation Flexible ripple mode device implementation for programmable logic devices
US10437728B2 (en) 2015-02-21 2019-10-08 Wave Computing, Inc. Branchless instruction paging in reconfigurable fabric
US10073773B2 (en) 2015-02-21 2018-09-11 Wave Computing, Inc. Instruction paging in reconfigurable fabric
US10564929B2 (en) 2016-09-01 2020-02-18 Wave Computing, Inc. Communication between dataflow processing units and memories
US10505704B1 (en) 2015-08-02 2019-12-10 Wave Computing, Inc. Data uploading to asynchronous circuitry using circular buffer control
GR1008918B (el) * 2015-12-22 2016-12-23 Βασιλειος Μαργαριτη Μουζας Η προγραμματιζομενη ψηφιακη συσκευη του φορμαλισμου των επαναδιαταξιμων λογικων γραφων
JP6625943B2 (ja) * 2016-08-01 2019-12-25 株式会社日立製作所 情報処理装置
US10719470B2 (en) * 2016-09-26 2020-07-21 Wave Computing, Inc. Reconfigurable fabric direct memory access with multiple read or write elements
US10719079B2 (en) * 2017-06-22 2020-07-21 Nokomis, Inc. Asynchronous clock-less digital logic path planning apparatus and method
US10949328B2 (en) 2017-08-19 2021-03-16 Wave Computing, Inc. Data flow graph computation using exceptions
US11106976B2 (en) 2017-08-19 2021-08-31 Wave Computing, Inc. Neural network output layer for machine learning
WO2019169238A1 (en) * 2018-03-02 2019-09-06 Wave Computing, Inc. Dynamic reconfiguration using data transfer control
US11645178B2 (en) * 2018-07-27 2023-05-09 MIPS Tech, LLC Fail-safe semi-autonomous or autonomous vehicle processor array redundancy which permits an agent to perform a function based on comparing valid output from sets of redundant processors
WO2020112992A1 (en) * 2018-11-30 2020-06-04 Wave Computing, Inc. Reconfigurable fabric configuration using spatial and temporal routing
US11934308B2 (en) 2019-04-01 2024-03-19 Wave Computing, Inc. Processor cluster address generation
US11481472B2 (en) 2019-04-01 2022-10-25 Wave Computing, Inc. Integer matrix multiplication engine using pipelining
US11227030B2 (en) 2019-04-01 2022-01-18 Wave Computing, Inc. Matrix multiplication engine using pipelining
US10997102B2 (en) 2019-04-01 2021-05-04 Wave Computing, Inc. Multidimensional address generation for direct memory access
CN113033133B (zh) * 2021-03-17 2023-03-28 烽火通信科技股份有限公司 一种逻辑复用的电路设计方法及电路结构

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4756010A (en) 1985-11-07 1988-07-05 Motorola, Inc. Asynchronous/synchronous data receiver circuit
US5396491A (en) 1988-10-14 1995-03-07 Network Equipment Technologies, Inc. Self-routing switching element and fast packet switch
US5633830A (en) * 1995-11-08 1997-05-27 Altera Corporation Random access memory block circuitry for programmable logic array integrated circuit devices
US5245605A (en) 1991-10-04 1993-09-14 International Business Machines Corporation Integration of synchronous and asynchronous traffic on rings
US5367209A (en) 1992-01-07 1994-11-22 Hauck Scott A Field programmable gate array for synchronous and asynchronous operation
JP2502920B2 (ja) 1993-08-20 1996-05-29 インターナショナル・ビジネス・マシーンズ・コーポレイション Atmスイッチにおける調停機構
US5623502A (en) * 1994-07-15 1997-04-22 National Semiconductor Corporation Testing of electronic circuits which typically contain asynchronous digital circuitry
FI104858B (fi) 1995-05-29 2000-04-14 Nokia Networks Oy Menetelmä ja laitteisto asynkronisen väylän sovittamiseksi synkroniseen piiriin
US5666321A (en) 1995-09-01 1997-09-09 Micron Technology, Inc. Synchronous DRAM memory with asynchronous column decode
FI100571B (fi) 1995-11-15 1997-12-31 Nokia Telecommunications Oy Asynkroninen datansiirtomenetelmä ja -järjestely
US5724276A (en) * 1996-06-17 1998-03-03 Xilinx, Inc. Logic block structure optimized for sum generation
US5834957A (en) 1996-12-20 1998-11-10 Hewlett-Packard Company Implementing asynchronous sequential circuits using synchronous design techniques and modules
US5943288A (en) * 1997-10-31 1999-08-24 Integrated Silicon Solution, Inc. Apparatus and method for minimizing address hold time in asynchronous SRAM
JP2002538562A (ja) * 1999-03-04 2002-11-12 アルテラ・コーポレーション 桁上げ選択加算付プログラマブルロジックデバイス
AU2001256635A1 (en) 2000-05-11 2001-11-20 Firemedia Communications (Israel) Ltd. Three-dimensional switch providing packet routing between multiple multimedia buses
DE10052210B4 (de) * 2000-10-20 2004-12-23 Infineon Technologies Ag Integrierte Schaltung mit einer synchronen und asynchronen Schaltung sowie Verfahren zum Betrieb einer solchen integrierten Schaltung
JP3803246B2 (ja) * 2000-12-05 2006-08-02 松下電器産業株式会社 非同期fifo回路
US6961741B2 (en) * 2001-02-15 2005-11-01 Stmicroelectronics Ltd. Look-up table apparatus to perform two-bit arithmetic operation including carry generation
US6848060B2 (en) 2001-02-27 2005-01-25 International Business Machines Corporation Synchronous to asynchronous to synchronous interface
US6557161B2 (en) 2001-06-28 2003-04-29 Sun Microsystems, Inc. Method for prototyping asynchronous circuits using synchronous devices
US6934816B2 (en) * 2001-08-07 2005-08-23 Integrated Device Technology, Inc. Integrated circuit memory devices having asynchronous flow-through capability
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
US6611469B2 (en) * 2001-12-11 2003-08-26 Texas Instruments Incorporated Asynchronous FIFO memory having built-in self test logic
US6950959B2 (en) 2002-02-12 2005-09-27 Fulcrum Microystems Inc. Techniques for facilitating conversion between asynchronous and synchronous domains
JP4158458B2 (ja) * 2002-08-28 2008-10-01 ソニー株式会社 情報処理装置、その情報処理方法
US6912860B2 (en) 2003-08-08 2005-07-05 Delphi Technologies, Inc. Method of operating a directed relief valve in an air conditioning system
US7157934B2 (en) * 2003-08-19 2007-01-02 Cornell Research Foundation, Inc. Programmable asynchronous pipeline arrays
JP3852437B2 (ja) 2003-11-19 2006-11-29 セイコーエプソン株式会社 同期・非同期インターフェース回路及び電子機器
JP4208751B2 (ja) * 2004-03-09 2009-01-14 三洋電機株式会社 データフローグラフ処理装置。
JP4712328B2 (ja) * 2004-07-28 2011-06-29 独立行政法人情報通信研究機構 フォールトトレラントなセル・アレイ
JP4502792B2 (ja) 2004-12-09 2010-07-14 富士通セミコンダクター株式会社 データバッファ回路
US7418676B2 (en) * 2005-01-19 2008-08-26 Seiko Epson Corporation Asynchronous circuit design tool and computer program product
US7301824B1 (en) * 2005-10-04 2007-11-27 Xilinx, Inc. Method and apparatus for communication within an integrated circuit
JP4524662B2 (ja) 2005-10-21 2010-08-18 エルピーダメモリ株式会社 半導体メモリチップ
JP5354427B2 (ja) 2006-06-28 2013-11-27 アクロニクス セミコンダクター コーポレイション 集積回路のための再構成可能論理ファブリックおよび再構成可能論理ファブリックを構成するためのシステムおよび方法
US7852866B2 (en) 2006-12-29 2010-12-14 Polytechnic Institute of New York Universiity Low complexity scheduling algorithm for a buffered crossbar switch with 100% throughput
US7765382B2 (en) 2007-04-04 2010-07-27 Harris Corporation Propagating reconfiguration command over asynchronous self-synchronous global and inter-cluster local buses coupling wrappers of clusters of processing module matrix
US7739628B2 (en) 2008-02-15 2010-06-15 Achronix Semiconductor Corporation Synchronous to asynchronous logic conversion
WO2009137227A2 (en) * 2008-04-11 2009-11-12 Massachusetts Institute Of Technology Analog logic automata
US8013629B2 (en) * 2008-04-11 2011-09-06 Massachusetts Institute Of Technology Reconfigurable logic automata
US8362802B2 (en) 2008-07-14 2013-01-29 The Trustees Of Columbia University In The City Of New York Asynchronous digital circuits including arbitration and routing primitives for asynchronous and mixed-timing networks
US7759974B1 (en) 2008-07-17 2010-07-20 Xilinx, Inc. Pipelined unidirectional programmable interconnect in an integrated circuit
US7733123B1 (en) * 2009-04-02 2010-06-08 Xilinx, Inc. Implementing conditional statements in self-timed logic circuits
US8964795B2 (en) 2009-06-01 2015-02-24 Achronix Semiconductor Corporation Asynchronous pipelined interconnect architecture with fanout support
US8300635B2 (en) 2009-09-10 2012-10-30 Achronix Semiconductor Corporation Programmable crossbar structures in asynchronous systems
US7900078B1 (en) 2009-09-14 2011-03-01 Achronix Semiconductor Corporation Asynchronous conversion circuitry apparatus, systems, and methods

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10659396B2 (en) 2015-08-02 2020-05-19 Wave Computing, Inc. Joining data within a reconfigurable fabric
WO2019006119A1 (en) * 2017-06-30 2019-01-03 Wave Computing, Inc. COMBINING DATA IN A RECONFIGURABLE MATRIX
KR20200138802A (ko) * 2018-03-31 2020-12-10 마이크론 테크놀로지, 인크. 멀티 스레드, 자체 스케줄링 재구성 가능한 컴퓨팅 패브릭에 대한 중지 신호를 사용한 역압 제어

Also Published As

Publication number Publication date
EP2041872A2 (en) 2009-04-01
US8575959B2 (en) 2013-11-05
WO2008008629A2 (en) 2008-01-17
JP5354427B2 (ja) 2013-11-27
EP2041872A4 (en) 2010-09-15
US20140137064A1 (en) 2014-05-15
EP2041872B1 (en) 2018-03-14
US20100013517A1 (en) 2010-01-21
US20120119781A1 (en) 2012-05-17
WO2008008629A3 (en) 2008-11-27
US20110169524A1 (en) 2011-07-14
KR101058468B1 (ko) 2011-08-24
US8949759B2 (en) 2015-02-03
WO2008008629A4 (en) 2009-01-15
JP2009543472A (ja) 2009-12-03
US8125242B2 (en) 2012-02-28
US7880499B2 (en) 2011-02-01

Similar Documents

Publication Publication Date Title
KR101058468B1 (ko) 집적 회로용의 재구성 가능한 로직 패브릭과, 재구성 가능한 로직 패브릭을 구성하기 위한 시스템 및 방법
US6298472B1 (en) Behavioral silicon construct architecture and mapping
US7532032B2 (en) Configurable circuits, IC's, and systems
US7546408B1 (en) Method and apparatus for communication within a programmable device using serial transceivers
US7906987B2 (en) Semiconductor integrated circuit, program transformation apparatus, and mapping apparatus
US7944236B2 (en) High-bandwidth interconnect network for an integrated circuit
US9026967B1 (en) Method and apparatus for designing a system on multiple field programmable gate array device types
US9685957B2 (en) System reset controller replacing individual asynchronous resets
Manohar Reconfigurable asynchronous logic
US8793629B1 (en) Method and apparatus for implementing carry chains on FPGA devices
KR20230002937A (ko) 컴퓨팅 데이터흐름 아키텍처
US7800404B2 (en) Field programmable application specific integrated circuit with programmable logic array and method of designing and programming the programmable logic array
US7827433B1 (en) Time-multiplexed routing for reducing pipelining registers
Kumar et al. FPGA Based Design of Area Efficient Router Architecture for Network on Chip (NoC)
CN117581195A (zh) 可编程线性反馈移位寄存器系统和方法
Morris et al. A re-configurable processor for Petri net simulation
Morris et al. A scalable re-configurable processor
Palchaudhuri et al. High performance bit-sliced pipelined comparator tree for FPGAs
Warrier et al. Reconfigurable DSP block design for dynamically reconfigurable architecture
Vranesic The FPGA challenge
Oliveira et al. FPGA implementation of high-performance asynchronous pipelines with robust control
Yoneda et al. Coarse Grained versus Fine Grained Architectures for Asynchronous Reconfigurable Devices
Lee et al. A new application-specific PLD architecture
Morris Reconfigurable logic: A saviour for experimental computer architecture research
Lee et al. Design of an application-specific PLD architecture

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140805

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150804

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160805

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170808

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180807

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190806

Year of fee payment: 9