KR102561988B1 - 캐스케이드 룩업테이블(lut) 자리올림 논리 회로 - Google Patents

캐스케이드 룩업테이블(lut) 자리올림 논리 회로 Download PDF

Info

Publication number
KR102561988B1
KR102561988B1 KR1020187008097A KR20187008097A KR102561988B1 KR 102561988 B1 KR102561988 B1 KR 102561988B1 KR 1020187008097 A KR1020187008097 A KR 1020187008097A KR 20187008097 A KR20187008097 A KR 20187008097A KR 102561988 B1 KR102561988 B1 KR 102561988B1
Authority
KR
South Korea
Prior art keywords
lut
logic
input
output
multiplexer
Prior art date
Application number
KR1020187008097A
Other languages
English (en)
Other versions
KR20180053314A (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
Priority claimed from US14/852,164 external-priority patent/US9602108B1/en
Priority claimed from US14/851,577 external-priority patent/US9455714B1/en
Application filed by 자일링크스 인코포레이티드 filed Critical 자일링크스 인코포레이티드
Publication of KR20180053314A publication Critical patent/KR20180053314A/ko
Application granted granted Critical
Publication of KR102561988B1 publication Critical patent/KR102561988B1/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
    • 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/1733Controllable logic circuits
    • H03K19/1737Controllable logic circuits using multiplexers
    • 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/17748Structural details of configuration resources
    • H03K19/17758Structural details of configuration resources for speeding up configuration or reconfiguration

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Logic Circuits (AREA)

Abstract

예에서, 프로그래머블 집적 회로(IC)를 위한 구성가능 논리 소자는, 제1 입력 및 제1 출력, 그리고 제1 입력과 제1 출력 사이에 연결된 제1 합 논리(312-0) 및 제1 자리올림 논리(310-0)를 포함하는 제1 룩업테이블(LUT)(302-0); 제2 입력 및 제2 출력, 그리고 제2 입력과 제2 출력 사이에 연결된 제2 합 논리(312-1)를 포함하는 제2 LUT(302-1); 및 제1 및 제2 LUT에 각각 연결된 제1 및 제2 캐스케이드 멀티플렉서(322-0, 322-1)를 포함하고, 제2 캐스케이드 멀티플렉서의 입력이 제1 LUT에서의 제1 자리올림 논리의 출력에 연결된다.

Description

캐스케이드 룩업테이블(LUT) 자리올림 논리 회로
본 개시의 예는 일반적으로 전자 회로에 관한 것이며, 구체적으로 캐스케이드(cascaded) 룩업테이블(LUT; lookup-table) 자리올림(carry) 논리 회로에 관한 것이다.
프로그래머블 집적 회로(IC; integrated circuit)는 종종 사용자 구성가능 입력에 따라 디지털 논리 연산을 구현하도록 사용된다. 예시적인 프로그래머블 IC는 CPLD(complex programmable logic device) 및 FPGA(field programmable gate array)를 포함한다. CPLD는 종종 곱의합(sum-of-poducts) 논리를 이용한 PLA(programmable logic array) 아키텍처에 기초하는 여러 기능 블록들을 포함한다. 구성가능한 상호접속 매트릭스는 기능 블록들 간에 신호를 전송한다.
한 유형의 FPGA는 프로그래머블 타일들의 어레이를 포함한다. 프로그래머블 타일은, 예를 들어 입력/출력 블록(IOB; input/output block), 구성가능 논리 블록(CLB; configurable logic block), 전용 랜덤 액세스 메모리 블록(BRAM), 멀티플라이어, 디지털 신호 프로세싱 블록(DSP), 프로세서, 클록 매니저, 지연 락 루프(DLL; delay lock loop), PCIe(Peripheral Component Interconnect Express)와 이더넷과 같은 버스나 네트워크 인터페이스 등을 포함할 수 있는 다양한 유형의 논리 블록을 포함한다. 각각의 프로그래머블 타일은 통상적으로 프로그래머블 상호접속 및 프로그래머블 논리 둘 다를 포함한다. 프로그래머블 상호접속은 통상적으로 프로그래머블 상호접속 포인트(PIP; programmable interconnect point)에 의해 상호접속된 다양한 길이의 많은 수의 상호접속 라인을 포함한다. 프로그래머블 논리는, 예를 들어 함수 발생기, 레지스터, 산술 논리 등을 포함할 수 있는 프로그래머블 소자를 사용하여 사용자 설계의 논리를 구현한다.
캐스케이드 룩업테이블(LUT) 자리올림 논리 회로가 기재된다. 예에서, 프로그래머블 집적 회로(IC)를 위한 구성가능 논리 소자는, 제1 입력 및 제1 출력, 그리고 제1 입력과 제1 출력 사이에 연결된 제1 합 논리 및 제1 자리올림 논리를 포함하는 제1 룩업테이블(LUT); 제2 입력 및 제2 출력, 그리고 제2 입력과 제2 출력 사이에 연결된 제2 합 논리를 포함하는 제2 LUT; 및 제1 및 제2 LUT에 각각 연결된 제1 및 제2 캐스케이드 멀티플렉서를 포함하며, 제2 캐스케이드 멀티플렉서의 입력이 제1 LUT에서의 제1 자리올림 논리의 출력에 연결된다.
다른 예에서, 프로그래머블 집적 회로(IC)는 구성 메모리, 및 구성 메모리에 연결된 복수의 구성가능 논리 소자를 포함한다. 복수의 구성가능 논리 소자의 각각은, 제1 입력 및 제1 출력, 그리고 제1 입력과 제1 출력 사이에 연결된 제1 합 논리 및 제1 자리올림 논리를 포함하는 제1 룩업테이블(LUT); 제2 입력 및 제2 출력, 그리고 제2 입력과 제2 출력 사이에 연결된 제2 합 논리를 포함하는 제2 LUT; 및 제1 및 제2 LUT에 각각 연결된 제1 및 제2 캐스케이드 멀티플렉서를 포함하며, 제2 캐스케이드 멀티플렉서의 입력이 제1 LUT에서의 제1 자리올림 논리의 출력에 연결된다.
다른 예에서, 프로그래머블 집적 회로(IC)를 구성하는 방법은, 제1 합을 계산하도록 구성가능 논리 소자에서 제1 룩업테이블(LUT) - 제1 LUT는 제1 입력 및 제1 출력, 그리고 제1 입력과 제1 출력 사이에 연결된 제1 합 논리 및 제1 자리올림 논리를 포함함 - 을 구성하는 단계; 제2 합을 계산하도록 구성가능 논리 소자에서 제2 LUT - 제2 LUT는 제2 입력 및 제2 출력, 그리고 제2 입력과 제2 출력 사이에 연결된 제2 합 논리를 포함함 - 를 구성하는 단계; 및 제1 LUT에서의 제1 자리올림 논리의 출력을 제2 LUT에서의 제2 합 논리의 입력에 연결하도록 캐스케이드 멀티플렉서를 구성하는 단계를 포함한다.
다른 예에서, 룩업테이블(LUT) 캐스케이딩 회로가 기재된다.
예에서, 프로그래머블 집적 회로(IC)를 위한 LUT는 복수의 입력 단자, 및 프로그래머블 IC에서의 적어도 하나의 다른 LUT에 연결된 캐스케이딩 입력을 포함한다. LUT는 입력 단자의 공통 세트에 각각 연결된 복수의 LUT를 갖는 LUT 논리를 더 포함한다. LUT는 복수의 LUT의 출력에 연결된 입력을 갖는 복수의 멀티플렉서 및 복수의 멀티플렉서의 출력에 연결된 입력을 갖는 출력 멀티플렉서를 더 포함한다. LUT는 복수의 멀티플렉서의 각자의 멀티플렉서의 제어 입력에 연결된 출력을 각각 갖는 복수의 캐스케이딩 멀티플렉서를 더 포함하며, 복수의 캐스케이딩 멀티플렉서의 각각은 복수의 입력을 포함하고, 복수의 입력 중의 적어도 하나는 캐스케이딩 입력에 연결된다.
다른 예에서, 프로그래머블 IC는 구성 메모리, 및 구성 메모리에 연결된 적어도 하나의 구성가능 논리 소자(CLE; configurable logic element)를 포함한다. 적어도 하나의 CLE는 복수의 LUT를 포함한다. 복수의 LUT의 각각은 입력 단자 및 캐스케이딩 입력을 포함한다. 복수의 LUT 중의 제1 LUT의 캐스케이딩 입력은 복수의 LUT 중의 제2 LUT의 출력 단자에 연결된다.
다른 예에서, 프로그래머블 IC에서 LUT를 동작시키는 방법은, 입력 신호의 공통 세트를 LUT 논리에서의 복수의 LUT에 연결하는 단계, 프로그래머블 IC에서의 적어도 하나의 다른 LUT에 연결된 캐스케이드 입력을 복수의 캐스케이딩 멀티플렉서의 각각에 연결하는 단계, 캐스케이드 입력의 신호를 선택하도록 복수의 캐스케이딩 멀티플렉서 중의 적어도 하나를 제어하는 단계, 및 LUT 논리에서의 복수의 LUT의 출력 중에 선택하도록 동작가능한 멀티플렉서 논리에 캐스케이딩 멀티플렉서의 출력을 연결하는 단계를 포함한다.
다음의 상세한 설명을 참조하여 이들 및 기타 양상이 이해될 수 있을 것이다.
상기에 언급한 특징을 상세하게 이해할 수 있도록, 상기에 간략하게 요약된 내용의 보다 구체적인 기재가 예의 구현을 참조하여 이루어질 수 있으며, 예의 구현의 일부는 첨부된 도면에 예시되어 있다. 하지만 첨부된 도면은 단지 대표적인 예의 구현을 예시한 것이며 따라서 그의 범위를 한정하는 것으로 간주되어서는 안된다는 것을 유의하여야 할 것이다.
도 1a는 FPGA의 예시적인 아키텍처를 예시한다.
도 1b는 예에 따른 도 1의 FPGA의 상위레벨 도면을 도시한 블록도이다.
도 2는 도 1의 FPGA의 프로그래머블 패브릭의 평면도를 도시한 블록도이다.
도 3은 예에 따른 구성가능 논리 소자를 도시한 블록도이다.
도 4는 또다른 예에 따른 구성가능 논리 소자를 도시한 블록도이다.
도 5는 예에 따라 프로그래머블 집적 회로(IC)를 구성하는 방법을 도시한 흐름도이다.
도 6은 도 1a 및 도 1b의 FPGA의 프로그래머블 패브릭의 평면도의 일부를 도시한 블록도이다.
도 7은 예에 따른 LUT를 도시한 블록도이다.
도 8은 광범위한 조합 함수를 구현하는 LUT의 체인을 포함하는 예의 회로를 도시한 블록도이다.
도 9는 멀티플렉서를 구현하는 복수의 LUT를 포함하는 예의 회로(500)를 도시한 블록도이다.
도 10은 예에 따라 프로그래머블 IC에서의 LUT를 동작시키는 방법을 도시한 흐름도이다.
이해를 용이하게 하기 위해, 가능한 곳에서 도면에 공통인 동일한 요소들을 지정하도록 동일한 참조 번호가 사용되었다. 하나의 예의 요소가 다른 예에 유리하게 통합될 수 있다는 것을 고려해볼 수 있다.
이하 도면을 참조하여 다양한 특징들이 기재된다. 도면이 실축척대로 도시되거나 도시되지 않을 수 있고 유사한 구조 또는 기능의 요소가 도면 전반에 걸쳐서 유사한 참조 번호로 표현된다는 것을 유의하여야 한다. 도면은 오로지 특징의 기재를 용이하게 하고자 한 것임을 유의하여야 한다. 이들은 청구하는 발명의 철저한 기재로서 또는 청구하는 발명의 범위에 대한 한정으로서 의도되지 않는다. 또한, 예시된 실시예는 도시된 모든 양상 또는 이점을 갖지 않아도 된다. 특정 실시예와 함께 기재된 양상 또는 이점은 반드시 그 실시예에 한정되는 것이 아니며, 그리 예시되지 않은 경우에도 또는 그리 명시적으로 기재되지 않은 경우에도 임의의 다른 실시예에서 실시될 수 있다.
캐스케이드 룩업테이블(LUT) 자리올림 논리 회로가 기재된다. 예에서, FPGA와 같은 프로그래머블 집적 회로(IC)를 위한 구성가능 논리 소자(CLE)는 한 쌍의 룩업테이블(LUT)을 포함한다. 제1 룩업테이블(LUT)은 제1 입력 및 제1 출력, 그리고 제1 입력과 제1 출력 사이에 연결된 제1 합 논리 및 제1 자리올림 논리를 포함한다. 제2 LUT는 제2 입력 및 제2 출력, 그리고 제2 입력과 제2 출력 사이에 연결된 제2 합 논리를 포함한다. CLE는 제1 및 제2 LUT에 각각 연결된 제1 및 제2 캐스케이드 멀티플렉서를 포함한다. 제2 캐스케이드 멀티플렉서의 입력은 제1 LUT에서의 제1 자리올림 논리의 출력에 연결된다. 또다른 예에서, 자리올림 논리는 또한 LUT 쌍의 제2 LUT에 통합될 수도 있다.
여기에 기재된 예의 CLE에서, 합 및 자리올림 논리는 CLE의 하나 이상의 LUT에 통합된다. 자리올림 초기화가 캐스케이드 멀티플렉서에 의해 수행될 수 있다. 캐스케이드 멀티플렉서는 일반 LUT-LUT 직접 접속의 속도를 높인다. 합 및 자리올림 출력 둘 다 LUT에 의해 직접 제공된다. 이는 이들 신호에 의해 구동되는 출력 멀티플렉서의 크기가 감소될 수 있게 해주는데, 이러한 출력 멀티플렉서는 그렇지 않은 경우에 LUT의 합, 자리올림, 및 출력에 대한 개별 출력을 요구할 것이기 때문이다. LUT의 각각은 그에 연결된 캐스케이드 멀티플렉서를 포함하므로, 모든 LUT에서 자리올림 체인을 시작/초기화하는 것이 가능하며, 이는 보다 효율적인 복수의 자리올림 체인 패킹을 가능하게 한다. 다음 도면들을 참조하여 이들 및 부가의 양상이 아래에 기재된다.
도 1a는 멀티기가비트 트랜시버(“MGT”)(101), 구성가능 논리 블록(“CLB”)(102), 랜덤 액세스 메모리 블록(“BRAM”)(103), 입력/출력 블록(“IOB”)(104), 구성 및 클록킹 논리(“CONFIG/CLOCKS”)(105), 디지털 신호 프로세싱 블록(“DSP”)(106), 전문 입력/출력 블록(“I/O”)(107)(예컨대, 구성 포트 및 클록 포트), 그리고 디지털 클록 매니저, 아날로그-디지털 컨버터, 시스템 모니터링 논리 등과 같은 기타 프로그래머블 논리(108)를 포함한 많은 수의 상이한 프로그래머블 타일들을 포함하는 FPGA(100)의 예의 아키텍처를 예시한다. 일부 FPGA는 또한 전용 프로세서 블록(“PROC”)(110)을 포함한다.
일부 FPGA에서, 각각의 프로그래머블 타일은, 도 1a의 상단에 포함된 예에 의해 도시된 바와 같이, 동일 타일 내의 프로그래머블 논리 소자의 입력 및 출력 단자(120)에의 접속을 갖는 적어도 하나의 프로그래머블 상호접속 소자(“INT”)(111)를 포함할 수 있다. 각각의 프로그래머블 상호접속 소자(111)(“상호접속 소자(111)”로도 지칭됨)는 또한, 동일 타일 또는 다른 타일(들)에서의 인접한 프로그래머블 상호접속 소자(들)의 상호접속 세그먼트(122)에의 접속을 포함할 수 있다. 각각의 프로그래머블 상호접속 소자(111)는 또한, 논리 블록들(도시되지 않음) 간의 일반적인 라우팅 리소스의 상호접속 세그먼트(124)에의 접속을 포함할 수 있다. 일반적인 라우팅 리소스는 상호접속 세그먼트들을 접속시키기 위한 스위치 블록(도시되지 않음) 및 상호접속 세그먼트(예컨대, 상호접속 세그먼트(124))의 트랙을 포함하는 논리 블록들(도시되지 않음) 간의 라우팅 채널을 포함할 수 있다. 일반적인 라우팅 리소스의 상호접속 세그먼트(예컨대, 상호접속 세그먼트(124))는 하나 이상의 논리 블록에 걸쳐 이어질 수 있다. 일반적인 라우팅 리소스와 함께 취한 프로그래머블 상호접속 소자(111)는 예시된 FPGA에 대한 프로그래머블 상호접속 구조(“프로그래머블 상호접속”)를 구현한다. 아래에 더 기재된 바와 같이, 일부 예에서, 상호접속 소자(111)의 일부 또는 전부는 TCAM의 효율적인 구현을 위한 추가의 회로를 포함할 수 있다.
예의 구현에서, CLB(102)는 단일 프로그래머블 상호접속 소자(“INT”)(111)에 더하여 사용자 논리를 구현하도록 프로그램될 수 있는 구성가능 논리 소자(“CLE”)(112)를 포함할 수 있다. BRAM(103)은 하나 이상의 프로그래머블 상호접속 소자에 추가적으로 BRAM 논리 소자(“BRL”)(113)를 포함할 수 있다. 통상적으로, 타일에 포함된 상호접속 소자의 수는 타일의 높이에 따라 좌우된다. 도시된 예에서, BRAM 타일은 5개의 CLB와 동일한 높이를 갖지만, 다른 수(예컨대, 4)도 또한 사용될 수 있다. DSP 타일(106)은 적합한 수의 프로그래머블 상호접속 소자에 추가적으로 DSP 논리 소자(“DSPL”)(114)를 포함할 수 있다. IOB(104)는 예를 들어, 프로그래머블 상호접속 소자(111)의 하나의 인스턴스에 추가적으로 입력/출력 논리 소자(“IOL”)(115)의 두 인스턴스를 포함할 수 있다. 당해 기술 분야에서의 숙련자에게 명백하듯이, 예를 들어, I/O 논리 소자(115)에 접속된 실제 I/O 패드는 통상적으로 입력/출력 논리 소자(115)의 영역에 국한되지 않는다.
도시된 예에서, 다이(도 1a에 도시됨)의 중심 근방의 수평 영역은 구성, 클록, 및 기타 제어 논리에 사용된다. 이 수평 영역 또는 컬럼(column)으로부터 연장하는 수직 컬럼(109)은 FPGA의 폭에 걸쳐 클록 및 구성 신호를 분산시키도록 사용된다.
도 1a에 예시된 아키텍처를 이용하는 일부 FPGA는 FPGA의 대부분을 구성하는 규칙적인 컬럼 구조를 방해하는 추가의 논리 블록을 포함한다. 추가의 논리 블록은 프로그래머블 블록 및/또는 전용 논리일 수 있다. 예를 들어, 프로세서 블록(110)은 CLB 및 BRAM의 여러 컬럼에 걸쳐 이어진다. 프로세서 블록(110)은 단일 마이크로프로세서에서 마이크로프로세서(들), 메모리 컨트롤러, 주변장치 등의 완성된 프로그래머블 프로세싱 시스템까지 이르는 다양한 컴포넌트를 포함할 수 있다.
도 1a는 예시적인 FPGA 아키텍처만 예시하고자 한 것임을 유의하자. 예를 들어, 로우(row)에서의 논리 블록의 수, 로우의 상대 폭, 로우의 수와 순서, 로우에 포함된 논리 블록의 타입, 논리 블록의 상대 크기, 및 도 1a의 상단에 포함된 상호접속/논리 구현은 순전히 예시적인 것이다. 예를 들어, 사용자 논리의 효율적인 구현을 용이하게 하도록 실제 FPGA에서는 CLB의 하나보다 더 많은 수의 인접 로우가 통상적으로 CLB가 보이는 곳마다 포함되지만, 인접한 CLB 로우의 수는 FPGA의 전체 크기에 따라 다르다. 또다른 예에서, FPGA는 프로세서 블록(110) 대신에 또는 이에 추가적으로 전체 프로세싱 시스템(예컨대, 프로세서, 메모리, 주변장치 등)을 포함할 수 있다. 이러한 구현에서, 시스템온칩(Soc)은 프로세싱 시스템과 통신하는 프로그래머블 패브릭(FPGA(100)에 도시된 바와 같은 프로그래머블 논리)을 포함할 수 있다.
도 1b는 예에 따른 FPGA(100)의 상위레벨 도면을 도시한 블록도이다. FPGA(100)는 상기에 기재된 다양한 프로그래머블 타일을 포함할 수 있는 프로그래머블 패브릭(150)을 포함한다. 프로그래머블 패브릭(150)은 구성 메모리(152)에 연결된다. 구성 메모리(152)는 SRAM(static RAM) 등과 같은 랜덤 액세스 메모리(RAM)를 포함한다. 프로그래머블 패브릭(150)은 또한 여기에 기재된 바와 같이 캐스케이드 LUT 자리올림 논리를 갖는 CLE(112)를 포함할 수 있다. 구성 메모리(152)는 프로그래머블 패브릭(150)을 프로그램(“구성”)하기 위한 구성 비트스트림으로 로딩될 수 있다. 예를 들어, 구성 비트스트림은 여기에 기재된 바와 같이 프로그래머블 패브릭(150)의 CLE(112)를 구성하도록 구성 메모리(152)로 로딩될 수 있다.
도 2는 FPGA(100)의 프로그래머블 패브릭(150)의 평면도를 도시한 블록도이다. 도 2는 프로그래머블 패브릭(150)에서의 프로그래머블 타일의 2개의 컬럼(202 및 206)을 도시한다. 컬럼(202 및 206)에서의 프로그래머블 타일은 CLE(112)를 포함한다. 각각의 컬럼(202 및 206)에서, 하나의 CLE(112)만 도시되어 있지만, 컬럼(202 및 206)은 일반적으로 복수의 CLE를 포함한다. CLE(112)의 각각은 상호접속 소자(111)에 연결된다.
CLE(112)의 각각은 4개의 슬라이스(SM1-SM0 및 SL0-SL1)를 포함한다. 슬라이스(SM0-SM1)는 하나의 타입(타입 “M”)으로 이루어지고, 슬라이스(SL0-SL1)는 또다른 타입(타입 “L”)으로 이루어진다. 타입 “M” 슬라이스(SM0 및 SM1)는 룩업테이블(LUT)(208) 및 지원 논리(210)를 포함한다. LUT(208)는 복수의 입력 및 복수의 출력을 갖는 임의의 조합 함수를 수행하도록 함수 발생기로서 구성될 수 있다. LUT(208)는 또한 복수의 비트를 저장하도록 구성된 LUT-RAM으로서 구성될 수 있다. 지원 논리(210)는 LUT(208)를 지원하도록 플립-플롭, 멀티플렉서, 자리올림-체인 논리 등을 포함할 수 있다. 타입 “L” 슬라이스(SL0 및 SL1)은 룩업테이블(LUT)(212) 및 지원 논리(210)를 포함한다. LUT(212)는 LUT-RAM이 아니라 함수 발생기로서 구성될 수 있다. 도 2에 도시된 아키텍처는 단지 하나의 예이다. 다른 예에서, CLE(112)에서의 모든 LUT는 LUT-RAM을 포함할 수 있고(모든 슬라이스가 타입 “M”으로 이루어짐), 또는 CLE(112)에서의 모든 LUT는 RAM으로서 구성될 수 없는 LUT를 포함할 수 있다(모든 슬라이스가 타입 “L”로 이루어짐).
예에서, 컬럼(202)에서의 타입 “L” 슬라이스(SL0 및 SL1)는, 그 사이에 2개의 상호접속 소자(111)를 가지며 컬럼(206)에서의 타입 “M” 슬라이스(SM0 및 SM1)에 인접하다. 컬럼(202)에서의 슬라이스(SL0-SL1)는 상호접속 소자(111) 중의 하나에 연결되고, 컬럼(206)에서의 슬라이스(SM0-SM1)는 상호접속 소자(111) 중의 다른 것에 연결된다. 상호접속 소자(111)는 서로 연결될 수 있다. 상호접속 소자(111)의 각각은 멀티플렉서(214)를 포함한다. 멀티플렉서(214)의 상이한 멀티플렉서들은, 컬럼(202)에서의 CLE(112)로부터의 입력, 컬럼(206)에서의 CLE(112)로부터의 입력, 또다른 상호접속 소자(111)에서의 멀티플렉서(214)로부터의 입력, 또는 상호접속으로부터의 입력과 같은 상이한 입력들을 가질 수 있다. 마찬가지로, 멀티플렉서(214)의 상이한 멀티플렉서들은, 컬럼(202)에서의 CLE(112)에의 출력, 컬럼(206)에서의 CLE(112)에의 출력, 또다른 상호접속 소자(111)에의 출력, 또는 상호접속에의 출력과 같은 상이한 출력들을 가질 수 있다.
여기에 기재된 바와 같이, LUT(208) 및/또는 LUT(212)는 내부 합 및 자리올림 논리를 포함할 수 있으며, 이러한 합 및 자리올림 논리가 지원 논리(210)에 포함되어야 할 필요를 없앤다. 이는 CLE(112)에 대한 출력 멀티플렉서 비용을 감소시킨다. 이는 또한 가능한 임계 경로가 더 적어지게 하며, 이는 CLE(112)의 성능을 최적화한다. 또한, 자리올림 체인은 CLE(112)에서의 임의의 LUT에서 초기화될 수 있으며, 이는 보다 미세한 입도로 복수의 자리올림 체인의 패킹을 가능하게 한다.
도 3은 예에 따른 구성가능 논리 소자(112)를 도시한 블록도이다. 본 예에서, 구성가능 논리 소자(112)는 한 쌍의 LUT(302-0 및 302-1)(총칭하여 LUT(302))를 포함한다. 예에서는 2개의 LUT만 도시되어 있지만, 상기에 기재된 바와 같이, CLE(112)는 각각이 하나 이상의 LUT를 갖는 하나 이상의 슬라이스를 가질 수 있다.
LUT(302)의 각각은 그 안에 합 논리(312) 및 자리올림 논리(310)를 포함한다. 예에서, LUT(302-0)는 합 논리(312-0) 및 자리올림 논리(310-0)를 포함하고, LUT(302-1)는 합 논리(312-1) 및 자리올림 논리(310-1)를 포함한다. 예에서, 합 논리(312)는 배타적 OR(XOR) 게이트를 포함하고, 자리올림 논리(310)는 멀티플렉서를 포함한다. 따라서, 합 논리(312-0)는 논리 게이트(320)를 포함하고, 합 논리(312-1)는 논리 게이트(308)를 포함한다. 예에서, 논리 게이트(308 및 320)의 각각은 XOR 게이트를 포함한다. 마찬가지로, 자리올림 논리(310-0)는 멀티플렉서(318)를 포함하고, 자리올림 논리(310-1)는 멀티플렉서(306)를 포함한다. LUT(302-0)는 논리 게이트(304-0)를 더 포함하고, LUT(302-1)는 논리 게이트(304-1)를 더 포함한다. 예에서, 논리 게이트(304-0 및 304-1)의 각각은 XOR 게이트를 포함한다.
LUT(302)의 각각은 A1 내지 A6로 지정된 6개의 입력을 포함한다. LUT(302-0)에서, 입력 A3 및 A4는 논리 게이트(304-0)의 입력에 연결된다. 입력 A5는 캐스케이드 멀티플렉서(322-0)의 출력에 연결된다. 입력 A6는 기준 전압(예컨대, 전기 접지)에 접속되는 것으로 도시되어 있다. 이 예에서, 입력 A1 및 A2는 접속되지 않는다. 논리 게이트(304-0)의 출력은 prop0으로 지정된다. 멀티플렉서(318)의 제어 입력은 prop0을 수신하도록 연결된다. 멀티플렉서(318)의 입력은 입력 A4 및 A5에 연결된다. 논리 게이트(320)의 입력은 입력 A5 및 논리 게이트(304-0)의 출력(prop0)에 연결된다. 멀티플렉서(318)의 출력은 Cout0으로 지정되고, 논리 게이트(320)의 출력은 Sum0으로 지정된다.
LUT(302-1)에서, 입력 A3 및 A4는 논리 게이트(304-1)의 입력에 연결된다. 입력 A5는 캐스케이드 멀티플렉서(322-1)의 출력에 연결된다. 입력 A6는 기준 전압(예컨대, 전기 접지)에 접속되는 것으로 도시되어 있다. 이 예에서, 입력 A1 및 A2는 접속되지 않는다. 논리 게이트(304-1)의 출력은 prop1로 지정된다. 멀티플렉서(306)의 제어 입력은 prop1을 수신하도록 연결된다. 멀티플렉서(306)의 입력은 입력 A4 및 A5에 연결된다. 논리 게이트(308)의 입력은 입력 A5 및 논리 게이트(304-1)의 출력(prop1)에 연결된다. 멀티플렉서(306)의 출력은 Cout1’로 지정되고, 논리 게이트(308)의 출력은 Sum1로 지정된다.
캐스케이드 멀티플렉서(322-0)의 하나의 입력은 A5’으로 지정되고, 캐스케이드 멀티플렉서(322-0)의 또다른 입력은 노드 Cin에 연결된다. 캐스케이드 멀티플렉서(322-1)의 하나의 입력은 A5’으로 지정되고, 캐스케이드 멀티플렉서(322-1)의 또다른 입력은 멀티플렉서(318)의 출력(Cout0)에 연결된다.
예에서, CLE(112)에 대한 지원 논리(210)는 자리올림 체인 멀티플렉서(314)를 포함한다. 자리올림 체인 멀티플렉서(314)의 출력은 Cout으로 지정된다. 자리올림 체인 멀티플렉서(314)의 제어 인터페이스는 prop0, prop1, 또는 둘 다를 수신하도록 연결될 수 있다. 자리올림 체인 멀티플렉서(314)의 입력은 Cout1’을 수신하도록 연결된다. 자리올림 체인 멀티플렉서(314)의 다른 입력(들)은 캐스케이드 멀티플렉서(322-0), Cin, 또는 둘 다의 출력을 수신하도록 연결될 수 있다.
동작시에, LUT(302-0 및 302-1)는 데이터 워드 A_data 및 B_data의 합을 계산한다. 이 예에서, 데이터 워드 A_data 및 B_data는 각각 <0> 및 <1>로 지정된 2 비트를 갖는다. LUT(302-0)의 입력 A3 및 A4는 각각 A_data<0> 및 B_data<0>를 수신한다. LUT(302-1)의 입력 A3 및 A4는 각각 A_data<1> 및 B_data<1>를 수신한다.
논리 게이트(304-0)는 A_data<0>와 B_data<0>의 합을 계산한다(즉, prop0 = A_data<0> + B_data<0>). 논리 게이트(320)는 A_data<0>와 B_data<0>의 합에 자리올림 비트를 더한다(즉, sum0 = A_data<0> + B_data<0> + carry). 자리올림 비트는 A5’를 통해 또는 Cin을 통해(CLE(112)에의 자리올림 입력) 입력될 수 있는 캐스케이드 멀티플렉서(322-0)에 의해 출력된다. 멀티플렉서(318)는 LUT(302-0)에 의해 수행된 합 연산에 대하여 자리올림 비트를 출력한다(Cout0으로 지정됨).
논리 게이트(304-1)는 A_data<1>와 B_data<1>의 합을 계산한다(즉, prop1 = A_data<1> + B_data<1>). 논리 게이트(308)는 A_data<1>와 B_data<1>의 합에 자리올림 비트를 더한다(즉, sum1 = A_data<1> + B_data<1> + carry). 자리올림 비트는 A5’를 통해 또는 멀티플렉서(318)의 출력을 통해 입력될 수 있는 캐스케이드 멀티플렉서(322-1)에 의해 출력된다(예컨대, Cout0). A_data + B_data를 결정하기 위해, 멀티플렉서(322-1)는 자리올림 비트로서 Cout0을 선택한다. 멀티플렉서(306)는 LUT(302-1)에 의해 수행된 합 연산에 대하여 자리올림 비트를 출력한다(Cout1’으로 지정됨).
자리올림 체인 멀티플렉서(314)는 CLE(112)에 대한 자리올림 비트를 출력한다. CLE(112)에 대한 자리올림 비트는 Cout1일 수 있다(연산 A_data + B_data를 위한). 다른 연산을 위해, Cout이 캐스케이드 멀티플렉서(322-0)의 출력 또는 Cin(자리올림 통과)인 것도 가능하다. 도 3에 도시된 CLE(112)는 임의의 수의 비트를 갖는 A_data 및 B_data의 합을 계산하도록 복제되어 다같이 연쇄될 수 있다.
도 3의 예에서, 합 및 자리올림 논리는 CLE(112)의 LUT(302)에 통합된다. 자리올림 초기화는 캐스케이드 멀티플렉서(322)에 의해 수행될 수 있다. 캐스케이드 멀티플렉서(322)는 일반 LUT-LUT 직접 접속의 속도를 높인다. 합 및 자리올림 출력 둘 다 LUT(302)에 의해 직접 제공된다. 이는 이들 신호에 의해(예컨대, 상호접속(111) 내에서) 구동되는 출력 멀티플렉서의 크기가 감소될 수 있게 해주는데, 이러한 출력 멀티플렉서는 그렇지 않은 경우에 LUT(302)의 합, 자리올림, 및 출력에 대한 각자의 출력을 요구할 것이기 때문이다. LUT(302)의 각각은 그에 연결된 캐스케이드 멀티플렉서(322)를 포함하므로, 모든 LUT에서 자리올림 체인을 시작/초기화하는 것이 가능하며, 이는 보다 효율적인 복수의 자리올림 체인 패킹을 가능하게 한다. 또한, 합 출력이 전용이 아니며, 합을 계산하는 논리 게이트(304)는 XOR이 아닌 어떤 다른 함수일 수 있다.
도 4는 또다른 예에 따른 구성가능 논리 소자(112)를 도시한 블록도이다. 상기에 기재된 바와 동일하거나 유사한 요소들은 동일한 참조 번호로 지정되어 있다. 이 예에서, 자리올림 논리(310-0)에서의 멀티플렉서(318)의 출력(Cout0)은 자리올림 체인 멀티플렉서(314)의 입력에 연결된다. 또한, 자리올림 논리(310-1)가 LUT(302-1)로부터 생략된다. 대신, LUT(302-1)의 입력(A4)이 자리올림 체인 멀티플렉서(314)의 입력에 연결된다. 구성가능 논리 소자(112)의 나머지는 도 3에 관련하여 상기에 기재된 바와 같이 구현된다.
도 4에 도시된 바와 같은 구성가능 논리 소자(112)에서, 자리올림 체인 멀티플렉서(314)의 입력은 LUT(302-0)로부터 자리올림 출력(Cout0)을 직접 수신하도록 확대된다. 이 방식으로, LUT(302-0)로부터의 자리올림 출력(Cout0)은 자리올림 체인 멀티플렉서(314)에 닿기 위하여 LUT(302-1)로 전파하지 않아도 된다. 또한, LUT(302-0)의 자리올림 출력(Cout0)이 멀티플렉서(314)에 직접 접속되어 있으므로, 자리올림 논리(310-1)는 제거될 수 있다.
도 3 및 도 4의 예에서, 2비트의 자리올림(Cout0 및 Cout1)이 도시되어 있다. 일반적으로, 도 3 및 도 4의 회로는 N 비트의 자리올림을 발생시키도록 확대될 수 있으며, N은 양의 정수이다. 이러한 예에서, 자리올림 체인 멀티플렉서(314)는 다른 LUT에 의해 발생된 추가 비트의 자리올림을 수용하도록 증가된 폭을 포함할 수 있다. 또한, 상기에 설명된 예에서, 자리올림 논리 구조는 추가의 연산에 관련하여 기재된다. 일반적으로, 여기에 기재된 자리올림 논리 구조는 다른 유형의 산술 연산의 전부 또는 일부를 수행하도록 사용될 수 있다.
도 5는 예에 따라 프로그래머블 집적 회로(IC)를 구성하는 방법(500)을 도시한 흐름도이다. 방법(500)은, CLE에서의 제1 LUT가 제1 합을 계산하도록 구성되는 블록 502에서 시작되며, 제1 LUT는 제1 입력 및 제1 출력, 그리고 제1 입력과 제1 출력 사이에 연결된 제1 합 논리 및 제1 자리올림 논리를 포함한다. 블록 504에서, CLE에서의 제2 LUT는 제2 합을 계산하도록 구성되며, 제2 LUT는 제2 입력 및 제2 출력, 그리고 제2 입력과 제2 출력 사이에 연결된 제2 합 논리 및 제2 자리올림 논리를 포함한다. 블록 506에서, 캐스케이드 멀티플렉서가 제1 LUT에서의 제1 자리올림 논리의 출력을 제2 LUT에서의 제2 합 논리의 입력에 연결하도록 구성된다. 방법(500)은 임의의 수의 비트를 갖는 데이터 워드의 합을 계산하도록 하나 이상의 추가의 LUT에 대하여 반복될 수 있다.
일부 다른 예는 일반적으로 전자 회로에 관한 것으로, 특히 룩업테이블(LUT) 캐스케이딩 회로에 관한 것이다.
다시 도 1b를 참조하면, 하나의 예에서, 프로그래머블 패브릭(150)은 또한 룩업테이블(LUT)(154)을 갖는 CLE(112)를 포함할 수 있다. LUT(154)는 여기에 기재된 바와 같이 캐스케이딩 입력을 포함할 수 있다.
이제 도 6으로 가면, FPGA(100)의 프로그래머블 패브릭(150)의 평면도의 일부를 도시한 또다른 블록도이다. 도 6은 프로그래머블 패브릭(150)에서의 프로그래머블 타일의 2개의 컬럼(602 및 606)을 도시한다. 컬럼(602 및 606)에서의 프로그래머블 타일은 CLE(612)를 포함한다. 각각의 컬럼(602 및 606)에서, 하나의 CLE(612)만 도시되어 있지만, 컬럼(602 및 606)은 일반적으로 복수의 CLE를 포함한다. CLE(612)의 각각은 상호접속 소자(611)에 연결된다.
CLE(612)의 각각은 4개의 슬라이스(SM0-SM1 및 SL0-SL1)를 포함한다. 슬라이스(SM0-SM1)는 하나의 타입(타입 “M”)으로 이루어지고, 슬라이스(SL0-SL1)는 또다른 타입(타입 “L”)으로 이루어진다. 타입 “M” 슬라이스(SM0 및 SM1)는 LUT(154A) 및 지원 논리(610)를 포함한다. LUT(154A)는 복수의 입력 및 복수의 출력을 갖는 임의의 조합 함수를 수행하도록 함수 발생기로서 구성될 수 있다. LUT(154A)는 또한 복수의 비트를 저장하도록 구성된 LUT-RAM으로서 구성될 수 있다. 지원 논리(610)는 LUT(154A)를 지원하도록 플립-플롭, 멀티플렉서, 자리올림-체인 논리 등을 포함할 수 있다. 타입 “L” 슬라이스(SL0 및 SL1)는 LUT(154B) 및 지원 논리(610)를 포함한다. LUT(154B)는 LUT-RAM이 아니라 함수 발생기로서 구성될 수 있다. 도 6에 도시된 아키텍처는 단지 하나의 예이다. 다른 예에서, CLE(612)에서의 모든 LUT가 LUT-RAM을 포함할 수 있고(모든 슬라이스가 타입 “M”으로 이루어짐), 또는 CLE(612)에서의 모든 LUT가 RAM으로서 구성될 수 없는 LUT를 포함할 수 있다(모든 슬라이스가 타입 “L”로 이루어짐).
둘 다의 타입의 LUT(154A 및 154B)는 캐스케이딩 접속(620)을 가질 수 있다. 캐스케이딩 접속(620)은 프로그래머블 상호접속(예컨대, INT(611) 및 MUX(614))을 사용하지 않고서 LUT-LUT 접속을 가능하게 한다. 캐스케이딩 접속(620)은 일반적으로 도 2에서 슬라이스간 접속으로서 도시되어 있다(예컨대, 2개의 상이한 슬라이스에서의 LUT 간의 LUT-LUT 접속). 캐스케이딩 접속(620)은 또한 CLE간 접속일 수도 있다(예컨대, 2개의 상이한 CLE(612)에서의 LUT 간의). 캐스케이딩 접속(620)은 또한 슬라이스내 접속일 수도 있다(예컨대, 동일한 슬라이스에서의 LUT 간의 LUT-LUT 접속).
예에서, 컬럼(602)에서의 타입 “L” 슬라이스(SL0 및 SL1)는, 그 사이에 2개의 상호접속 소자(611)를 가지며 컬럼(606)에서의 타입 “M” 슬라이스(SM0 및 SM1)에 인접하다. 컬럼(602)에서의 슬라이스(SL0-SL1)는 상호접속 소자(611) 중의 하나에 연결되고, 컬럼(606)에서의 슬라이스(SM0-SM1)는 상호접속 소자(611) 중의 다른 것에 연결된다. 상호접속 소자(611)는 서로 연결될 수 있다. 상호접속 소자(611)의 각각은 멀티플렉서(614)를 포함한다. 멀티플렉서(214)의 상이한 멀티플렉서들은, 컬럼(602)에서의 CLE(612)로부터의 입력, 컬럼(606)에서의 CLE(612)로부터의 입력, 또다른 상호접속 소자(611)에서의 멀티플렉서(614)로부터의 입력, 또는 상호접속으로부터의 입력과 같은 상이한 입력들을 가질 수 있다. 마찬가지로, 멀티플렉서(614)의 상이한 상이한 멀티플렉서들은, 컬럼(602)에서의 CLE(612)에의 출력, 컬럼(606)에서의 CLE(612)에의 출력, 또다른 상호접속 소자(611)에의 출력, 또는 상호접속에의 출력과 같은 상이한 출력들을 가질 수 있다.
도 7은 예에 따른 LUT(154)를 도시한 블록도이다. LUT(154)는 LUT 논리(702), 멀티플렉서(704), 멀티플렉서(706), 멀티플렉서(708), 멀티플렉서(710) 및 멀티플렉서(712)를 포함한다. LUT(154)는 A1 내지 A6로 지정된 6개의 입력을 포함한다. LUT(154)는 또한 casc_in로 지정된 캐스케이딩 입력을 포함한다. 캐스케이딩 입력은 단일 입력일 수 있고 또는 신호의 버스일 수 있다. 일반적으로, 캐스케이딩 입력은 N 비트 또는 신호를 포함하며, N은 양의 정수이다. LUT(154)는 O5_1, O5_2, 및 O6로 지정된 출력을 포함한다.
LUT 논리(702)는 4개의 4입력 LUT(702A, 702B, 702C, 및 702D)를 포함한다. 예에서, LUT 논리(702)는 적어도 4개의 LUT(702)를 포함할 수 있다. 4입력 LUT는 여기에서 “4LUT”로도 지칭된다. 각각의 4LUT(702A-702D)는 공통 입력 단자(722)에 연결된다. 입력 단자(722)는 4LUT(702A-702D)의 각각에 입력(A1, A2, A3, 및 A4)을 제공한다. 4LUT(702A)의 출력은 멀티플렉서(706)의 입력에 연결되고 4LUT(702B)의 출력은 멀티플렉서(706)의 또다른 입력에 연결된다. 함께, 4LUT(702A 및 702B)는 LUT(154)의 첫번째 하프(half)를 포함한다. 4LUT(702C)의 출력은 멀티플렉서(710)의 입력에 연결되고 4LUT(702D)의 출력은 멀티플렉서(710)의 또다른 입력에 연결된다. 함께, 4LUT(702C 및 702D)는 LUT(154)의 두번째 하프를 포함한다. 멀티플렉서(706)의 출력은 출력(O5_1)(LUT(154)의 첫번째 하프의 출력)을 제공하고, 멀티플렉서(710)의 출력은 출력(O5_2)(LUT(154)의 두번째 하프의 출력)을 제공한다.
멀티플렉서(706)의 출력은 또한 멀티플렉서(708)의 입력에 연결되고 멀티플렉서(710)의 출력은 또한 멀티플렉서(708)의 또다른 입력에 연결된다. 멀티플렉서(708)의 출력은 LUT(154)의 출력(O6)을 제공한다. 함께, 출력(O5_1, O5_2, 및 O6)은 LUT(154)의 출력 단자(724)에 의해 제공된다. 출력 단자(724)의 하나 이상은 FPGA에서의 하나 이상의 추가의 LUT의 casc_in에 연결될 수 있다. 멀티플렉서(708)는 여기에서 “출력 멀티플렉서”로도 지칭된다. 멀티플렉서(704)의 출력은 멀티플렉서(706)의 제어 입력에 연결된다. 멀티플렉서(704)의 하나의 입력은 LUT(154)의 입력(A5)을 제공하는 입력 단자(720)에 연결된다. 멀티플렉서(704)의 또다른 입력은 LUT(154)의 입력(A6)을 제공하는 입력 단자(724)에 연결된다. 멀티플렉서(704)의 하나 이상의 추가의 입력 단자가 casc_in을 제공하는 입력(718)에 연결된다. 멀티플렉서(704)의 제어 입력이 제어 단자(714)에 연결된다. 제어 단자(714)는 메모리(예컨대, BRAM, LUTRAM, 구성 메모리 등)와 같은 FPGA에서의 또다른 회로로부터 신호를 수신할 수 있다.
멀티플렉서(712)의 출력은 멀티플렉서(710)의 제어 입력에 연결된다. 멀티플렉서(712)의 하나의 입력은 LUT(154)의 입력(A5)을 제공하는 입력 단자(720)에 연결된다. 멀티플렉서(712)의 또다른 입력은 LUT(154)의 입력(A6)을 제공하는 입력 단자(724)에 연결된다. 멀티플렉서(712)의 하나 이상의 추가의 입력 단자가 casc_in을 제공하는 입력(718)에 연결된다. 멀티플렉서(712)의 제어 입력이 제어 단자(716)에 연결된다. 제어 단자(716)는 메모리(예컨대, BRAM, LUTRAM, 구성 메모리 등)와 같은 FPGA에서의 또다른 회로로부터 신호를 수신할 수 있다. 멀티플렉서(704 및 714)는 여기에서 “캐스케이딩 멀티플렉서”로도 지칭된다.
동작시, 4LUT(702A-702D)의 각각은 입력(A1-A4)에 기초하여 임의의 4입력 함수를 구현할 수 있다. 멀티플렉서(706)는 LUT(154)의 첫번째 하프에 대한 출력(O5_1)으로서 4LUT(702A) 또는 4LUT(702B) 중의 하나로부터의 출력을 선택한다. 멀티플렉서(710)는 LUT(154)의 두번째 하프에 대한 출력(O5_2)으로서 4LUT(702C) 또는 4LUT(702D) 중의 하나로부터의 출력을 선택한다. 이 방식으로, LUT(154)는 2개의 5입력 함수를 구현하도록 사용될 수 있는 2개의 5입력 LUT를 구현할 수 있다. 멀티플렉서(708)는 LUT(154)의 출력(O6)을 제공하도록 멀티플렉서(706 및 710)의 출력 중에 선택한다. 따라서, LUT(154)는 6입력 함수를 구현하도록 사용될 수 있는 하나의 6입력 LUT를 구현할 수 있다.
하나의 구성에서, 멀티플렉서(704 및/또는 712)는 각각 멀티플렉서(706 및/또는 710)를 제어하도록 입력(A5)을 선택할 수 있다. 또다른 구성에서, 멀티플렉서(704 및/또는 712)는 각각 멀티플렉서(706 및/또는 710)를 제어하도록 입력(A6)을 선택할 수 있다. 또 다른 구성에서, 멀티플렉서(704 및/또는 712)는 각각 멀티플렉서(706 및/또는 710)를 제어하도록 casc_in 입력(들)의 하나를 선택할 수 있다. 입력(718)은 FPGA에서의 하나 이상의 다른 LUT의 하나 이상의 출력 단자에 연결될 수 있다. 이 방식으로, LUT(154)는 casc_in을 통해 FPGA에서의 하나 이상의 다른 LUT에 직접 연결될 수 있다. 그리하여, LUT(154)는 멀티레벨 함수를 종합하도록 함께 연쇄될 수 있으며, 이의 일부 예가 아래에 기재된다.
A5 입력으로 casc_in 입력을 멀티플렉싱하는 것은, 가장 빠른 LUT 입력에 대한 지연을 증가시키지 않고 상이한 신호들을 LUT의 상단 및 하단 하프에 피드할 수 있게 하는 이점을 갖는다. 멀티플렉서(702 및 712)는 하나의 LUT의 출력의, 또다른 LUT의 casc_in에의 접속에 의해, 빠른 LUT-LUT 접속의 생성을 허용한다. 일부 예에서, casc_in 입력은 복수의 신호를 포함할 수 있다. 이러한 예에서, LUT(154)의 상단 하프는 LUT(154)의 하단 하프와 상이한 casc_in 신호를 사용할 수 있으며, 광범위한 멀티플렉서 트리의 구현을 허용한다.
도 7에 도시된 LUT(154)는 상이한 수의 LUT 및 입력을 제공하도록 스케일링될 수 있다. 예를 들어, LUT 논리(702)는 4개보다 더 많은 LUT를 포함할 수 있고, LUT 논리(702)에서의 LUT는 4개보다 더 많은 입력을 포함할 수 있다. 멀티플렉서(706 및 710)는 LUT 논리(702)에서의 LUT의 출력 중에 선택하는 멀티플렉싱 논리의 일부이다. 일부 예에서, 이러한 멀티플렉싱 논리는 캐스케이딩 멀티플렉서에 각각 연결된, 2개보다 많은 멀티플렉서를 포함할 수 있다. 그리하여, 2개의 캐스케이딩 멀티플렉서(704 및 712)가 도시되어 있지만, LUT(154)는 복수의 캐스케이딩 멀티플렉서를 포함할 수 있다.
도 8은 LUT의 체인(154-1 내지 154-4)을 포함하는 예의 회로(800)를 도시한 블록도이다. LUT(154-1)의 casc_in 입력이 LUT(154-2)의 출력에 연결된다. LUT(154-2)의 casc_in 입력이 LUT(154-3)의 출력에 연결된다. LUT(154-3)의 casc_in 입력이 LUT(154-4)의 출력에 연결된다. LUT(154-1 내지 154-3) 각각의 멀티플렉서(604) 및/또는 멀티플렉서(612)는 casc_in 입력에서 LUT(154-2 내지 154-4)의 각자의 출력을 선택한다. 도 3의 예에서, 각각의 LUT(154-1 내지 154-3)는 casc_in에 추가하여 사용될 수 있는 5개의 다른 입력(A1-A4 및 A6)을 포함한다. LUT(154-4)는 사용될 수 있는 6개의 입력(A1-A6)을 포함한다. 그리하여, 회로(400)는 21입력 함수를 구현할 수 있으며, 이의 출력이 LUT(154-1)에 의해 제공된다. 다른 예에서, LUT(154)는 상이한 수의 입력 단자를 가질 수 있지만, LUT를 캐스케이드하고 광범위한 조합 함수를 구현하도록 일반적으로 캐스케이딩 입력이 사용될 수 있다.
도 9는 복수의 LUT(154-5 내지 154-9)를 포함하는 예의 회로(900)를 도시한 블록도이다. 도 7에 도시된 바와 같은 구현을 가정하면, 회로(900)는 16:1 멀티플렉서를 구현한다. 16:1 멀티플렉서의 입력은 LUT(154-5)의 입력(A1 내지 A4), LUT(154-6)의 입력(A1 내지 A4), LUT(154-7)의 입력(A1 내지 A3), LUT(154-8)의 입력(A1 내지 A3), 및 LUT(154-9)의 입력(A1 및 A2)을 포함한다. 16:1 멀티플렉서의 출력은 LUT(154-9)의 출력(O6)에 의해 제공된다. 16:1 멀티플렉서의 제어 입력은 LUT(154-5)의 입력(A5 및 A6), LUT(154-6)의 입력(A5 및 A6), LUT(154-7)의 입력(A4 및 A6), LUT(154-8)의 입력(A4 및 A6), 및 LUT(154-9)의 입력(A4 및 A6)을 포함한다. LUT(154-5)의 출력(O6)이 LUT(154-7)의 casc_in 입력에 연결된다. LUT(154-6)의 출력(O6)이 LUT(154-8)의 casc_in 입력에 연결된다. LUT(154-7 및 154-8)의 출력(O6)이 LUT(154-9)의 casc_in 입력에 연결된다. 이 예는 LUT(154-9)의 casc_in 입력이 복수의 신호를 포함하는 버스임을 가정한다.
도 8 및 도 9의 회로(800 및 900)는 여기에 기재된 바와 같이 케스캐이딩 입력을 갖는 LUT를 사용하여 형성될 수 있는 유형의 회로의 단지 두 개의 예이다. 일반적으로, 예를 들어, 도 7의 예에 도시된 바와 같이, 각각의 LUT는 하나 이상의 비트 또는 신호를 갖는 casc_in 입력을 포함할 수 있다. 그리하여, 각각의 LUT는 하나 이상의 추가의 LUT에 연결될 수 있다. 추가의 LUT는 동일한 슬라이스 내에, 인접한 슬라이스(들)에 그리고/또는 인접한 CLE(들)에 위치될 수 있다. 단일 LUT를 사용하여 형성될 수 있는 조합 함수, 멀티플렉서 등의 보다 넓은 버전을 형성하도록 캐스케이드 LUT의 세트가 사용될 수 있다.
도 10은 예에 따라 프로그래머블 IC에서의 LUT를 동작시키는 방법(1000)을 도시한 흐름도이다. 방법(1000)은 입력 신호의 공통 세트가 LUT 논리에서의 복수의 LUT에 연결되는 단계 1002에서 시작된다. 예를 들어, 도 7에 도시된 바와 같이, 입력(A1 내지 A4)은 LUT(702A 내지 702B)에 연결된다.
단계 1004에서, 캐스케이드 입력이 복수의 캐스케이딩 멀티플렉서의 각각에 연결되며, 케스케이딩 입력은 프로그래머블 IC에서의 적어도 하나의 다른 LUT에 연결된다. 예를 들어, 도 3에 도시된 바와 같이, 입력 casc_in은 LUT(154)에서의 멀티플렉서(304 및 312)에 연결된다.
단계 1006에서, 캐스케이딩 멀티플렉서의 적어도 하나는 캐스케이드 입력의 신호를 선택하도록 제어된다. 예를 들어, 멀티플렉서(704 및 712)의 어느 하나 또는 둘 다는 casc_in의 신호를 선택하도록 제어될 수 있다. 예에서, 멀티플렉서(304 및 312)는 구성 메모리와 같은 프로그래머블 IC에서의 메모리를 사용하여 제어될 수 있다.
단계 1008에서, 제1 및 제2 캐스케이딩 멀티플렉서가 케스케이드 입력의 제1 및 제2 신호를 선택하도록 제어된다. 제1 신호는 제2 신호와 상이할 수 있다. 예를 들어, 도 7에 도시된 바와 같이, casc_in 입력은 복수의 신호를 갖는 버스일 수 있으며, 멀티플렉서(704)는 casc_in 신호 중의 하나를 선택할 수 있는 반면, 멀티플렉서(312)는 casc_in 신호 중의 다른 것을 선택한다.
단계 1010에서, 캐스케이딩 멀티플렉서의 출력이 LUT 논리에서의 복수의 LUT의 출력 중에 선택하도록 멀티플렉서 논리에 연결된다. 예를 들어, 도 7에 도시된 바와 같이, 멀티플렉서(704 및 712)의 출력은 LUT(702A 내지 702D)의 출력 중에 선택하도록 멀티플렉서(706 및 710)에 연결된다.
추가의 예들이 아래에 이어진다.
하나의 예에서, 프로그래머블 집적 회로(IC)를 위한 구성가능 논리 소자가 제공될 수 있다. 이러한 구성가능 논리 소자는, 제1 입력 및 제1 출력, 그리고 제1 입력과 제1 출력 사이에 연결된 제1 합 논리 및 제1 자리올림 논리를 포함하는 제1 룩업테이블(LUT); 제2 입력 및 제2 출력, 그리고 제2 입력과 제2 출력 사이에 연결된 제2 합 논리를 포함하는 제2 LUT; 및 제1 및 제2 LUT에 각각 연결된 제1 및 제2 캐스케이드 멀티플렉서를 포함하며, 제2 캐스케이드 멀티플렉서의 입력이 제1 LUT에서의 제1 자리올림 논리의 출력에 연결된다.
이러한 구성가능 논리 소자는, 제1 LUT 또는 제2 LUT 중의 적어도 하나에 연결된 자리올림 체인 멀티플렉서를 더 포함할 수 있다.
일부 이러한 구성가능 논리 소자에서, 제2 LUT는 제2 자리올림 논리를 포함할 수 있고, 자리올림 체인 멀티플렉서의 입력이 제2 LUT에서의 제2 자리올림 논리의 출력에 연결될 수 있다.
이러한 구성가능 논리 소자는 제1 캐스케이드 멀티플렉서에 연결된 자리올림 입력을 더 포함할 수 있다.
일부 이러한 구성가능 논리 소자에서, 자리올림 입력은 자리올림 체인 멀티플렉서의 입력에 더 연결될 수 있다.
일부 이러한 구성가능 논리 소자에서, 자리올림 체인 멀티플렉서의 입력은 제1 캐스케이드 멀티플렉서의 출력에 연결될 수 있다.
일부 이러한 구성가능 논리 소자에서, 제1 및 제2 합 논리의 각각은 배타적 OR 게이트를 포함하며, 제1 자리올림 논리는 멀티플렉서를 포함한다.
일부 이러한 구성가능 논리 소자에서, 제1 자리올림 논리의 멀티플렉서의 제어 단자가 제1 LUT에서의 제1 논리 게이트에 연결될 수 있다.
일부 이러한 구성가능 논리 소자는, 제1 LUT 또는 제2 LUT 중의 적어도 하나에 연결된 자리올림 체인 멀티플렉서, 제1 논리 게이트 또는 제2 논리 게이트 중의 적어도 하나에 연결된 자리올림 체인 멀티플렉서의 제어 인터페이스를 더 포함할 수 있다.
일부 이러한 구성가능 논리 소자에서, 제1 및 제2 캐스케이드 멀티플렉서의 제어 단자가 프로그래머블 IC에서의 구성가능 메모리 셀에 연결될 수 있다.
또다른 예에서, 프로그래머블 집적 회로(IC)가 제공될 수 있다. 이러한 프로그래머블 IC는 구성 메모리, 및 구성 메모리에 연결된 복수의 구성가능 논리 소자를 포함할 수 있고, 복수의 구성가능 논리 소자의 각각은, 제1 입력 및 제1 출력, 그리고 제1 입력과 제1 출력 사이에 연결된 제1 합 논리 및 제1 자리올림 논리를 포함하는 제1 룩업테이블(LUT); 제2 입력 및 제2 출력, 그리고 제2 입력과 제2 출력 사이에 연결된 제2 합 논리를 포함하는 제2 LUT; 및 제1 및 제2 LUT에 각각 연결된 제1 및 제2 캐스케이드 멀티플렉서를 포함하며, 제2 캐스케이드 멀티플렉서의 입력이 제1 LUT의 제1 자리올림 논리의 출력에 연결된다.
프로그래머블 IC는, 제1 LUT 또는 제2 LUT 중의 적어도 하나에 연결된 자리올림 체인 멀티플렉서를 더 포함할 수 있다.
일부 이러한 프로그래머블 IC에서, 제2 LUT는 제2 자리올림 체인 논리를 포함할 수 있고, 자리올림 체인 멀티플렉서의 입력이 제2 LUT에서의 제2 자리올림 논리의 출력에 연결될 수 있다.
일부 이러한 프로그래머블 IC는 제1 캐스케이드 멀티플렉서에 연결된 자리올림 입력을 더 포함할 수 있다.
일부 이러한 프로그래머블 IC에서, 자리올림 입력은 자리올림 체인 멀티플렉서의 입력에 더 연결될 수 있다.
일부 이러한 프로그래머블 IC에서, 자리올림 체인 멀티플렉서의 입력이 제1 캐스케이드 멀티플렉서의 출력에 연결될 수 있다.
일부 이러한 프로그래머블 IC에서, 제1 및 제2 합 논리의 각각은 배타적 OR 게이트를 포함할 수 있고, 제1 자리올림 논리는 멀티플렉서를 포함할 수 있다.
일부 이러한 프로그래머블 IC에서, 제1 자리올림 논리의 멀티플렉서의 제어 단자가 제1 LUT에서의 제1 논리 게이트에 연결될 수 있다.
일부 이러한 프로그래머블 IC에서, 제1 및 제2 캐스케이드 멀티플렉서의 제어 단자가 프로그래머블 IC에서의 구성가능 메모리 셀에 연결될 수 있다.
또다른 예에서, 프로그래머블 IC의 구성 방법이 제공될 수 있다. 이러한 방법은, 제1 합을 계산하도록 구성가능 논리 소자에서 제1 룩업테이블(LUT) - 제1 LUT는 제1 입력 및 제1 출력, 그리고 제1 입력과 제1 출력 사이에 연결된 제1 합 논리 및 제1 자리올림 논리를 포함함 - 을 구성하는 단계; 제2 합을 계산하도록 구성가능 논리 소자에서 제2 LUT - 제2 LUT는 제2 입력 및 제2 출력, 그리고 제2 입력과 제2 출력 사이에 연결된 제2 합 논리를 포함함 - 를 구성하는 단계; 및 제1 LUT에서의 제1 자리올림 논리의 출력을 제2 LUT에서의 제2 합 논리의 입력에 연결하도록 캐스케이드 멀티플렉서를 구성하는 단계를 포함할 수 있다.
또다른 예에서, 프로그래머블 집적 회로(IC)를 위한 LUT는 복수의 입력 단자, 및 프로그래머블 IC에서의 적어도 하나의 다른 LUT에 연결된 캐스케이딩 입력을 포함한다. LUT는 입력 단자의 공통 세트에 각각 연결된 복수의 LUT를 갖는 LUT 논리를 더 포함한다. LUT는 복수의 LUT의 출력에 연결된 입력을 갖는 복수의 멀티플렉서 및 복수의 멀티플렉서의 출력에 연결된 입력을 갖는 출력 멀티플렉서를 더 포함한다. LUT는 복수의 멀티플렉서의 각자의 멀티플렉서의 제어 입력에 연결된 출력을 각각 갖는 복수의 캐스케이딩 멀티플렉서를 더 포함하며, 복수의 캐스케이딩 멀티플렉서의 각각은 복수의 입력을 포함하고, 복수의 입력 중의 적어도 하나가 캐스케이딩 입력에 연결된다.
또다른 예에서, 프로그래머블 집적 회로(IC)를 위한 룩업테이블(LUT)이 제공될 수 있다. 이러한 LUT는, 복수의 입력 단자, 프로그래머블 IC에서의 적어도 하나의 다른 LUT에 연결된 캐스케이딩 입력, 입력 단자의 공통 세트에 각각 연결된 복수의 LUT를 갖는 LUT 논리, 복수의 LUT의 출력에 연결된 입력을 갖는 복수의 멀티플렉서, 복수의 멀티플렉서의 출력에 연결된 입력을 갖는 출력 멀티플렉서, 및 복수의 멀티플렉서의 각자의 멀티플렉서의 제어 입력에 연결된 출력을 각각 갖는 복수의 캐스케이딩 멀티플렉서를 포함할 수 있으며, 복수의 캐스케이딩 멀티플렉서의 각각은 복수의 입력을 포함하고, 복수의 입력 중의 적어도 하나가 캐스케이딩 입력에 연결된다.
일부 이러한 LUT에서, 복수의 LUT는 적어도 4개의 LUT를 포함하고, 복수의 멀티플렉서는 적어도 4개의 LUT에 연결된 적어도 2개의 멀티플렉서를 포함하고, 복수의 캐스케이딩 멀티플렉서는 적어도 2개의 멀티플렉서를 제어하도록 연결된 적어도 2개의 캐스케이딩 멀티플렉서를 포함한다.
일부 이러한 LUT에서, 적어도 4개의 LUT의 각각은 4입력 LUT를 포함할 수 있고, 복수의 입력 단자는 4입력 LUT의 각각에 연결된 4개의 입력을 포함한다.
일부 이러한 LUT에서, 복수의 캐스케이딩 멀티플렉서의 각각의 캐스케이딩 멀티플렉서의 복수의 입력 중의 적어도 하나가 복수의 입력 단자 중의 적어도 하나에 연결될 수 있다.
일부 이러한 LUT에서, 캐스케이딩 입력은 복수의 신호를 갖는 버스를 포함할 수 있다.
일부 이러한 LUT에서, 복수의 캐스케이딩 멀티플렉서의 제어 입력이 프로그래머블 IC에서의 메모리에 연결될 수 있다.
일부 이러한 LUT에서, 메모리는 프로그래머블 IC의 구성 메모리를 포함할 수 있다.
일부 이러한 LUT에서, 출력 멀티플렉서의 제어 입력이 복수의 입력 단자의 단자에 연결될 수 있다.
일부 이러한 LUT는 복수의 멀티플렉서 및 출력 멀티플렉서의 출력에 연결된 복수의 출력 단자를 더 포함할 수 있다.
또다른 예에서, 프로그래머블 IC가 제공될 수 있다. 이러한 프로그래머블 IC는, 구성 메모리, 및 복수의 룩업테이블(LUT)을 갖는 구성 메모리에 연결된 적어도 하나의 구성가능 논리 소자(CLE)를 포함할 수 있으며, 복수의 LUT의 각각은 출력 단자 및 캐스케이딩 입력을 포함하고, 복수의 LUT 중의 제1 LUT의 캐스케이딩 입력이 복수의 LUT 중의 제2 LUT의 출력 단자에 연결된다.
일부 이러한 프로그래머블 IC에서, 복수의 LUT의 각각은, 복수의 입력 단자, 입력 단자의 공통 세트에 각각 연결된 복수의 LUT를 갖는 LUT 논리, 복수의 LUT의 출력에 연결된 입력을 갖는 복수의 멀티플렉서, 복수의 멀티플렉서의 출력에 연결된 입력 및 출력 단자에 연결된 출력을 갖는 출력 멀티플렉서, 및 복수의 멀티플렉서의 각자의 멀티플렉서의 제어 입력에 연결된 출력을 각각 갖는 복수의 캐스케이딩 멀티플렉서를 더 포함하며, 복수의 캐스케이딩 멀티플렉서의 각각은 복수의 입력을 포함하고, 복수의 입력 중의 적어도 하나가 캐스케이딩 입력에 연결된다.
일부 이러한 프로그래머블 IC에서, 복수의 LUT 각각에 대하여, 복수의 캐스케이딩 멀티플렉서의 각각의 캐스케이딩 멀티플렉서의 복수의 입력 중의 적어도 하나가 복수의 입력 단자 중의 적어도 하나에 연결될 수 있다.
일부 이러한 프로그래머블 IC에서, 복수의 LUT 각각에 대하여, 캐스케이딩 입력은 복수의 신호를 갖는 버스를 포함할 수 있다.
일부 이러한 프로그래머블 IC에서, 복수의 LUT 각각에 대하여, 복수의 캐스케이딩 멀티플렉서의 제어 입력이 프로그래머블 IC에서의 메모리에 연결될 수 있다.
일부 이러한 프로그래머블 IC에서, 메모리는 구성 메모리를 포함할 수 있다.
일부 이러한 프로그래머블 IC에서, 복수의 LUT 각각에 대하여, 출력 멀티플렉서의 제어 입력이 복수의 입력 단자의 단자에 연결될 수 있다.
일부 이러한 프로그래머블 IC에서, 제1 LUT 및 제2 LUT는 조합 함수를 구현하도록 구성된다.
일부 이러한 프로그래머블 IC에서, 제1 LUT 및 제2 LUT는 멀티플렉서를 구현하도록 구성될 수 있다.
또다른 예에서, 프로그래머블 IC에서 LUT를 동작시키는 방법이 제공될 수 있다. 이러한 LUT를 동작시키는 방법은, 입력 신호의 공통 세트를 LUT 논리에서의 복수의 LUT에 연결하는 단계, 프로그래머블 IC에서의 적어도 하나의 다른 LUT에 연결된 캐스케이드 입력을 복수의 캐스케이딩 멀티플렉서의 각각에 연결하는 단계, 캐스케이드 입력의 신호를 선택하도록 복수의 캐스케이딩 멀티플렉서 중의 적어도 하나를 제어하는 단계, 및 LUT 논리에서의 복수의 LUT의 출력 중에 선택하도록 동작가능한 멀티플렉서 논리에 캐스케이딩 멀티플렉서의 출력을 연결하는 단계를 포함할 수 있다.
일부 이러한 방법에서, 제어하는 단계의 동작은, 캐스케이드 입력의 제1 신호를 선택하도록 복수의 멀티플렉서 중의 제1 캐스케이딩 멀티플렉서를 제어하는 단계, 및 제1 신호가 아닌 다른 캐스케이드 입력의 제2 신호를 선택하도록 복수의 멀티플렉서 중의 제2 캐스케이딩 멀티플렉서를 제어하는 단계를 포함할 수 있다.
전술한 바는 특정 예에 관한 것이지만, 그의 기본 범위에서 벗어나지 않고서 기타 및 부가의 예가 고안될 수 있고, 그의 범위는 다음 청구항에 의해 정해진다.

Claims (11)

  1. 프로그래머블 집적 회로(IC; integrated circuit)를 위한 구성가능 논리 소자에 있어서,
    제1 논리 게이트, 제1 합 논리 및 제1 자리올림 논리를 포함하는 제1 룩업 테이블(LUT; look-up table)로서, 상기 제1 자리올림 논리의 제1, 제2 및 제3 입력은 각각 상기 제1 논리 게이트의 제1 입력, 상기 제1 합 논리의 제1 입력, 및 상기 제1 논리 게이트의 출력에 연결되고, 상기 제1 합 논리의 제2 입력은 상기 제1 논리 게이트의 상기 출력에 연결되는, 상기 제1 룩업 테이블;
    상기 제1 합 논리의 상기 제1 입력에 연결된 출력을 구비한 제1 캐스케이드 멀티플렉서;
    상기 제1 자리올림 논리의 출력에 연결된 입력을 구비한 제2 캐스케이드 멀티플렉서; 및
    제2 논리 게이트 및 제2 합 논리를 포함하는 제2 LUT로서, 상기 제2 합 논리의 제1 및 제2 입력은 각각 상기 제2 논리 게이트의 출력 및 상기 제2 캐스케이드 멀티플렉서의 출력에 연결되는, 상기 제2 LUT
    를 포함하는 프로그래머블 집적 회로를 위한 구성가능 논리 소자.
  2. 청구항 1에 있어서,
    상기 제1 LUT 또는 상기 제2 LUT 중의 적어도 하나에 연결된 자리올림 체인 멀티플렉서를 더 포함하는, 프로그래머블 IC를 위한 구성가능 논리 소자.
  3. 청구항 2에 있어서,
    상기 제2 LUT는 제2 자리올림 논리를 포함하고, 상기 자리올림 체인 멀티플렉서의 입력은 상기 제2 LUT에서의 상기 제2 자리올림 논리의 출력에 연결되는 것인, 프로그래머블 IC를 위한 구성가능 논리 소자.
  4. 청구항 2에 있어서,
    상기 제1 캐스케이드 멀티플렉서의 입력에 연결된 자리올림 입력을 더 포함하는, 프로그래머블 IC를 위한 구성가능 논리 소자.
  5. 청구항 4에 있어서, 상기 자리올림 입력은 상기 자리올림 체인 멀티플렉서의 입력에 더 연결되는 것인, 프로그래머블 IC를 위한 구성가능 논리 소자.
  6. 청구항 2에 있어서, 상기 자리올림 체인 멀티플렉서의 입력은 상기 제1 캐스케이드 멀티플렉서의 상기 출력에 연결되는 것인, 프로그래머블 IC를 위한 구성가능 논리 소자.
  7. 청구항 1에 있어서, 상기 제1 합 논리 및 상기 제2 합 논리의 각각은 배타적 OR 게이트를 포함하고, 상기 제1 자리올림 논리는 멀티플렉서를 포함하는 것인, 프로그래머블 IC를 위한 구성가능 논리 소자.
  8. 청구항 7에 있어서, 상기 제1 자리올림 논리의 멀티플렉서의 제어 단자가 상기 제1 LUT에서의 상기 제1 논리 게이트의 상기 출력에 연결되는 것인, 프로그래머블 IC를 위한 구성가능 논리 소자.
  9. 청구항 8에 있어서,
    상기 제1 LUT 또는 상기 제2 LUT 중의 적어도 하나에 연결된 자리올림 체인 멀티플렉서를 더 포함하고, 상기 자리올림 체인 멀티플렉서의 제어 인터페이스가 상기 제1 논리 게이트 및 상기 제2 논리 게이트 중의 적어도 하나의 상기 출력에 연결되는 것인, 프로그래머블 IC를 위한 구성가능 논리 소자.
  10. 청구항 1에 있어서, 상기 제1 캐스케이드 멀티플렉서 및 상기 제2 캐스케이드 멀티플렉서의 제어 단자가 상기 프로그래머블 IC에서의 구성가능 메모리 셀에 연결되는 것인, 프로그래머블 IC를 위한 구성가능 논리 소자.
  11. 프로그래머블 집적 회로(IC)를 구성하는 방법에 있어서,
    제1 합을 계산하도록 구성가능 논리 소자에서 제1 룩업테이블(LUT)을 구성하는 단계로서, 상기 제1 LUT는 제1 입력 및 제1 출력, 그리고 상기 제1 입력과 상기 제1 출력 사이에 연결된 제1 합 논리 및 제1 자리올림 논리를 포함하는 것인, 상기 제1 LUT 구성 단계;
    제2 합을 계산하도록 상기 구성가능 논리 소자에서 제2 LUT를 구성하는 단계로서, 상기 제2 LUT는 제2 입력 및 제2 출력, 그리고 상기 제2 입력과 상기 제2 출력 사이에 연결된 제2 합 논리를 포함하는 것인, 상기 제2 LUT 구성 단계; 및
    상기 제1 LUT에서의 상기 제1 자리올림 논리의 출력을 상기 제2 LUT에서의 상기 제2 합 논리의 입력에 연결하도록 캐스케이드 멀티플렉서를 구성하는 단계를 포함하는, 프로그래머블 IC를 구성하는 방법.
KR1020187008097A 2015-09-11 2016-09-09 캐스케이드 룩업테이블(lut) 자리올림 논리 회로 KR102561988B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US14/852,164 2015-09-11
US14/852,164 US9602108B1 (en) 2015-09-11 2015-09-11 Lut cascading circuit
US14/851,577 2015-09-11
US14/851,577 US9455714B1 (en) 2015-09-11 2015-09-11 Cascaded LUT carry logic circuit
PCT/US2016/051052 WO2017044812A1 (en) 2015-09-11 2016-09-09 Cascaded lookup-table (lut) carry logic circuit

Publications (2)

Publication Number Publication Date
KR20180053314A KR20180053314A (ko) 2018-05-21
KR102561988B1 true KR102561988B1 (ko) 2023-07-31

Family

ID=56985692

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187008097A KR102561988B1 (ko) 2015-09-11 2016-09-09 캐스케이드 룩업테이블(lut) 자리올림 논리 회로

Country Status (5)

Country Link
EP (1) EP3347990B1 (ko)
JP (1) JP6697545B2 (ko)
KR (1) KR102561988B1 (ko)
CN (1) CN108028655B (ko)
WO (1) WO2017044812A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2601255A (en) * 2017-07-19 2022-05-25 Joseph Mark A locking device
KR101986206B1 (ko) * 2018-01-03 2019-06-05 연세대학교 산학협력단 비휘발성 메모리 소자를 이용한 가변 입출력 구조의 룩업 테이블 회로
KR102110044B1 (ko) 2018-05-21 2020-05-12 한양대학교 산학협력단 자기 저항을 이용하는 논리 기억 회로 및 이를 이용한 논리 연산 수행 방법
US11915125B2 (en) 2019-10-31 2024-02-27 SK Hynix Inc. Arithmetic devices for neural network
US11954457B2 (en) 2019-10-31 2024-04-09 SK Hynix Inc. Arithmetic devices for neural network including a function storage circuit and an activation function circuit
US11676651B2 (en) 2019-10-31 2023-06-13 SK Hynix Inc. Arithmetic devices conducting auto-load operation
US20210133546A1 (en) 2019-10-31 2021-05-06 SK Hynix Inc. Arithmetic devices for neural network
US11386947B2 (en) 2019-10-31 2022-07-12 SK Hynix Inc. Arithmetic devices conducting auto-load operation for writing the activation functions
CN117157880A (zh) * 2021-05-21 2023-12-01 微芯片技术股份有限公司 用于可编程门阵列的逻辑单元
CN115454378B (zh) * 2022-09-01 2023-07-18 深圳市紫光同创电子有限公司 一种查找表电路
CN115495044B (zh) * 2022-09-01 2023-08-29 深圳市紫光同创电子有限公司 一种进位逻辑电路
CN115686985B (zh) * 2022-12-30 2023-04-18 无锡亚科鸿禹电子有限公司 基于查找表结构的触发条件实现方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100203742B1 (ko) 1996-05-20 1999-06-15 윤종용 멀티플렉스를 이용한 가산기
US20020186044A1 (en) 1997-10-09 2002-12-12 Vantis Corporation Variable grain architecture for FPGA integrated circuits
JP2007166579A (ja) * 2005-11-15 2007-06-28 Handotai Rikougaku Kenkyu Center:Kk リコンフィギャラブルロジックブロック、リコンフィギャラブルロジックブロックを備えるプログラマブル論理回路装置、および、リコンフィギャラブルロジックブロックの構成方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5898319A (en) * 1993-09-02 1999-04-27 Xilinx, Inc. Method and structure for providing fast conditional sum in a field programmable gate array
US5481206A (en) * 1993-09-02 1996-01-02 Xilinx, Inc. Circuit for fast carry and logic
US5815003A (en) * 1994-11-04 1998-09-29 Altera Corporation Programmable logic integrated circuits with partitioned logic element using shared lab-wide signals
US6118300A (en) * 1998-11-24 2000-09-12 Xilinx, Inc. Method for implementing large multiplexers with FPGA lookup tables
US7251672B2 (en) * 2001-05-16 2007-07-31 Nxp B.V. Reconfigurable logic device
AU2003238633A1 (en) * 2002-07-10 2004-02-02 Koninklijke Philips Electronics N.V. Electronic circuit with array of programmable logic cells
US6833730B1 (en) * 2002-08-30 2004-12-21 Xilinx, Inc. PLD configurable logic block enabling the rapid calculation of sum-of-products functions
US6888373B2 (en) * 2003-02-11 2005-05-03 Altera Corporation Fracturable incomplete look up table for area efficient logic elements
US7772879B1 (en) * 2007-04-11 2010-08-10 Actel Corporation Logic module including versatile adder for FPGA
CN103257842B (zh) * 2012-02-17 2016-05-04 京微雅格(北京)科技有限公司 一种加法进位信息输出的方法和一种加法器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100203742B1 (ko) 1996-05-20 1999-06-15 윤종용 멀티플렉스를 이용한 가산기
US20020186044A1 (en) 1997-10-09 2002-12-12 Vantis Corporation Variable grain architecture for FPGA integrated circuits
JP2007166579A (ja) * 2005-11-15 2007-06-28 Handotai Rikougaku Kenkyu Center:Kk リコンフィギャラブルロジックブロック、リコンフィギャラブルロジックブロックを備えるプログラマブル論理回路装置、および、リコンフィギャラブルロジックブロックの構成方法

Also Published As

Publication number Publication date
EP3347990B1 (en) 2019-07-10
JP6697545B2 (ja) 2020-05-20
EP3347990A1 (en) 2018-07-18
CN108028655A (zh) 2018-05-11
JP2018530958A (ja) 2018-10-18
CN108028655B (zh) 2021-08-17
WO2017044812A1 (en) 2017-03-16
KR20180053314A (ko) 2018-05-21

Similar Documents

Publication Publication Date Title
KR102561988B1 (ko) 캐스케이드 룩업테이블(lut) 자리올림 논리 회로
US9081634B1 (en) Digital signal processing block
US7075333B1 (en) Programmable circuit optionally configurable as a lookup table or a wide multiplexer
US6275065B1 (en) Programmable logic integrated circuit architecture incorporating a lonely register
US5986465A (en) Programmable logic integrated circuit architecture incorporating a global shareable expander
US20070030029A1 (en) Interconnection and input/output resources for programmable logic integrated circuit devices
US9172378B1 (en) Programmable logic device having logic elements with dedicated hardware to configure look up tables as registers
WO2000076072A1 (en) SCALABLE ARCHITECTURE FOR HIGH DENSITY CPLD&#39;s HAVING TWO-LEVEL HIERARCHY OF ROUTING RESOURCES
US10686446B2 (en) Power gated lookup table circuitry
US7239173B1 (en) Programmable memory element with power save mode in a programmable logic device
US6927601B1 (en) Flexible macrocell interconnect
CN105391443B (zh) 用于可编程逻辑装置的逻辑单元
US9455714B1 (en) Cascaded LUT carry logic circuit
JP5523988B2 (ja) プログラマブル論理回路装置およびその回路決定方法
US8988125B1 (en) Circuits for and methods of routing signals in an integrated circuit
US9235498B1 (en) Circuits for and methods of enabling the modification of an input data stream
Malhotra et al. Novel field programmable embryonic cell for adder and multiplier
US6742172B2 (en) Mask-programmable logic devices with programmable gate array sites
CN106024056B (zh) 基于复用器的三态内容寻址存储器
US9602108B1 (en) Lut cascading circuit
US10069486B1 (en) Multimode registers with pulse latches
US9390210B2 (en) Logic absorption techniques for programmable logic devices
US12008337B2 (en) Multi-input configurable logic cell with configurable output region
US20230077881A1 (en) Configurable logic cell
Tsai et al. Introduction to FPGAs

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant