JP2018530958A - カスケード式ルックアップテーブル(lut)桁上げ論理回路 - Google Patents

カスケード式ルックアップテーブル(lut)桁上げ論理回路 Download PDF

Info

Publication number
JP2018530958A
JP2018530958A JP2018512948A JP2018512948A JP2018530958A JP 2018530958 A JP2018530958 A JP 2018530958A JP 2018512948 A JP2018512948 A JP 2018512948A JP 2018512948 A JP2018512948 A JP 2018512948A JP 2018530958 A JP2018530958 A JP 2018530958A
Authority
JP
Japan
Prior art keywords
lut
input
logic
coupled
output
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2018512948A
Other languages
English (en)
Other versions
JP6697545B2 (ja
Inventor
ゲイド,ブライアン・シィ
ヤング,スティーブン・ピィ
カビアニ,アリレザ・エス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xilinx Inc
Original Assignee
Xilinx Inc
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 Xilinx Inc filed Critical Xilinx Inc
Publication of JP2018530958A publication Critical patent/JP2018530958A/ja
Application granted granted Critical
Publication of JP6697545B2 publication Critical patent/JP6697545B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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のカスケードマルチプレクサ(3220、322−1)とを含み、第2のカスケードマルチプレクサの入力が、第1のLUTにおける第1の桁上げ論理の出力に結合される。

Description

本開示の例は一般に電子回路に関し、特に、カスケード式ルックアップテーブル(lookup-table:LUT)桁上げ論理回路に関する。
背景
プログラマブル集積回路(integrated circuit:IC)は、ユーザ構成可能な入力に従ってデジタル論理演算を実現するために使用されることが多い。例示的なプログラマブルICは、複合プログラマブル論理デバイス(complex programmable logic device:CPLD)およびフィールドプログラマブルゲートアレイ(field programmable gate array:FPGA)を含む。CPLDはしばしば、積和論理を有するプログラマブル論理アレイ(programmable logic array:PLA)アーキテクチャに基づいたいくつかの機能ブロックを含む。構成可能な相互接続マトリックスが、機能ブロック間で信号を伝送する。
あるタイプのFPGAは、プログラマブルタイルのアレイを含む。これらのプログラマブルタイルはさまざまなタイプの論理ブロックを含み、それらは、たとえば、入力/出力ブロック(input/output block:IOB)、構成可能論理ブロック(configurable logic block:CLB)、専用ランダムアクセスメモリブロック(random access memory block:BRAM)、乗算器、デジタル信号処理ブロック(digital signal processing:DSP)、プロセッサ、クロックマネージャ、遅延ロックループ(delay lock loop:DLL)、周辺装置コンポーネント相互接続エクスプレス(Peripheral Component Interconnect Express:PCIe)およびイーサネット(登録商標)などのバスまたはネットワークインターフェイスなどを含み得る。各プログラマブルタイルは典型的には、プログラマブル相互接続およびプログラマブル論理の双方を含む。プログラマブル相互接続は典型的には、プログラマブル相互接続点(programmable interconnect point:PIP)によって相互接続された、さまざまな長さの多数の相互接続線を含む。プログラマブル論理は、たとえば関数発生器、レジスタ、算術論理などを含み得るプログラマブル素子を使用して、ユーザ設計の論理を実現する。
概要
カスケード式ルックアップテーブル(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における少なくとも1つの他のLUTに結合されたカスケード入力とを含む。LUTはさらに、共通の一組の入力端子に各々結合された複数のLUTを有するLUT論理を含む。LUTはさらに、複数のLUTの出力に結合された入力を有する複数のマルチプレクサと、複数のマルチプレクサの出力に結合された入力を有する出力マルチプレクサとを含む。LUTはさらに、複数のマルチプレクサのそれぞれの制御入力に結合された出力を各々有する複数のカスケードマルチプレクサを含み、複数のカスケードマルチプレクサの各々は複数の入力を含み、複数の入力の少なくとも1つはカスケード入力に結合される。
別の例では、プログラマブルICは、構成メモリと、構成メモリに結合された少なくとも1つの構成可能論理素子(configurable logic element:CLE)とを含む。少なくとも1つのCLEは、複数のLUTを有する。複数のLUTの各々は出力端子とカスケード入力とを含む。複数のLUTのうちの第1のLUTのカスケード入力は、複数のLUTのうちの第2のLUTの出力端子に結合される。
別の例では、プログラマブルICにおいてLUTを動作させる方法は、共通の一組の入力信号をLUT論理における複数のLUTに結合するステップと、カスケード入力を複数のカスケードマルチプレクサの各々に結合するステップとを含み、カスケード入力は、プログラマブルICにおける少なくとも1つの他のLUTに結合され、方法はさらに、カスケード入力の信号を選択するように複数のカスケードマルチプレクサの少なくとも1つを制御するステップと、LUT論理における複数のLUTの出力の中から選択するように動作可能なマルチプレクサ論理にカスケードマルチプレクサの出力を結合するステップとを含む。
これらのおよび他の局面は、以下の詳細な説明を参照して理解され得る。
図面の簡単な説明
上述の特徴が詳細に理解され得るように、上に簡潔に概説されたより特定の説明が例示的な実現化例を参照して得られてもよく、それらのいくつかが添付図面に示される。しかしながら、添付図面は典型的な実現化例を例示しているに過ぎず、したがって、その範囲を限定すると考えられるべきではない、ということに留意されたい。
FPGAの例示的なアーキテクチャを示す図である。 一例に従った図1のFPGAのより高いレベルの図を示すブロック図である。 図1のFPGAのプログラマブルファブリックのフロアプランを示すブロック図である。 一例に従った構成可能論理素子を示すブロック図である。 別の例に従った構成可能論理素子を示すブロック図である。 一例に従ったプログラマブル集積回路(IC)を構成する方法を示すフロー図である。 図1A〜1BのFPGAのプログラマブルファブリックのフロアプランの一部を示すブロック図である。 一例に従ったLUTを示すブロック図である。 広い組合せ関数を実現する一連のLUTを含む例示的な回路を示すブロック図である。 マルチプレクサを実現する複数のLUTを含む例示的な回路500を示すブロック図である。 一例に従ったプログラマブルICにおいてLUTを動作させる方法を示すフロー図である。
理解を促すために、図面に共通している同一の要素を表わすために、可能であれば同一の参照符号が使用されている。ある例の要素が他の例に有益に取入れられ得るということが考えられる。
詳細な説明
図面を参照して、さまざまな特徴が以下に説明される。なお、図面は縮尺通りに描かれても描かれなくてもよく、また、同様の構造または機能の要素は、図面全体を通して、同じ参照符号によって表わされる。なお、図面は、特徴の説明を容易にするよう意図されているに過ぎない。それらは、請求される発明の網羅的な説明として、または請求される発明の範囲に対する制限として意図されてはいない。加えて、例示された実施形態は、図示されたすべての局面または利点を有していなくてもよい。特定の実施形態に関連して説明された局面または利点は必ずしもその実施形態に限定されず、そのように例示されていなくても、またはそのように明示的に説明されていなくても、任意の他の実施形態で実践され得る。
カスケード式ルックアップテーブル(LUT)桁上げ論理回路が説明される。一例では、FPGAなどのプログラマブル集積回路(IC)用の構成可能論理素子(CLE)は、1対のルックアップテーブル(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の1つ以上のLUTに組込まれる。桁上げ初期化が、カスケードマルチプレクサによって行なわれ得る。カスケードマルチプレクサは、包括的なLUT間直接接続を迅速化する。和出力および桁上げ出力は双方とも、LUTによって直接提供される。これは、これらの信号によって駆動される出力マルチプレクサのサイズが減少されることを可能にする。なぜなら、そのような出力マルチプレクサはさもなければ、LUTの和出力および桁上げ出力について別々の出力を必要とするためである。LUTの各々はそれに結合されたカスケードマルチプレクサを含むため、すべてのLUTで桁上げチェーンを開始/初期化することが可能であり、それは、より効率的な複数の桁上げチェーンのパッキングを可能にする。これらのおよびさらなる局面が、以下の図面に関して以下に説明される。
図1Aは、マルチギガビットトランシーバ(multi-gigabit transceiver:「MGT」)101と、構成可能論理ブロック(「CLB」)102と、ランダムアクセスメモリブロック(「BRAM」)103と、入力/出力ブロック(「IOB」)104と、構成およびクロッキング論理(「CONFIG/CLOCKS」)105と、デジタル信号処理ブロック(「DSP」)106と、特殊入力/出力ブロック(「I/O」)107(たとえば、構成ポートおよびクロックポート)と、デジタルクロックマネージャ、アナログ/デジタル変換器、システム監視論理などの他のプログラマブル論理108とを含む、多数の異なるプログラマブルタイルを含むFPGA100の例示的なアーキテクチャを示す。いくつかのFPGAは、専用プロセッサブロック(「PROC」)110も含む。
いくつかのFPGAでは、図1Aの上部に含まれる例によって示されるように、各プログラマブルタイルは、同じタイル内のプログラマブル論理素子の入力および出力端子120への接続を有する少なくとも1つのプログラマブル相互接続素子(「INT」)111を含み得る。各プログラマブル相互接続素子111(「相互接続素子111」とも呼ばれる)はまた、同じタイルまたは他のタイルにおける隣接するプログラマブル相互接続素子の相互接続セグメント122への接続を含み得る。各プログラマブル相互接続素子111はまた、論理ブロック(図示せず)間の汎用ルーティングリソースの相互接続セグメント124への接続を含み得る。汎用ルーティングリソースは、相互接続セグメント(たとえば相互接続セグメント124)のトラックと、相互接続セグメントを接続するためのスイッチブロック(図示せず)とを含む、論理ブロック(図示せず)間のルーティングチャネルを含み得る。汎用ルーティングリソースの相互接続セグメント(たとえば相互接続セグメント124)は、1つ以上の論理ブロックにまたがる場合がある。プログラマブル相互接続素子111は、汎用ルーティングリソースとともに、例示されたFPGAのためのプログラマブル相互接続構造「(プログラマブル相互接続」)を実現する。以下にさらに説明されるように、いくつかの例では、相互接続素子111のいくつかまたはすべては、TCAMの効率的な実現のための追加の回路を含み得る。
例示的な一実現化例では、CLB102は、ユーザ論理を実現するようにプログラムされ得る構成可能論理素子(「CLE」)112と、単一のプログラマブル相互接続素子(「INT」)111とを含み得る。BRAM103は、1つ以上のプログラマブル相互接続素子に加えて、BRAM論理素子(「BRL」)113を含み得る。典型的には、あるタイルに含まれる相互接続素子の数は、そのタイルの高さに依存する。図示された例では、BRAMタイルは5つのCLBと同じ高さを有するが、他の数(たとえば4つ)も使用可能である。DSPタイル106は、適切な数のプログラマブル相互接続素子に加えて、DSP論理素子(「DSPL」)114を含み得る。IOB104は、たとえば、プログラマブル相互接続素子111の1つのインスタンスに加えて、入力/出力論理素子(「IOL」)115の2つのインスタンスを含み得る。当業者には明らかであるように、たとえばI/O論理素子115に接続された実際のI/Oパッドは典型的には、入力/出力論理素子115のエリアに制限されない。
図示された例では、(図1Aに示す)ダイの中央近くの水平エリアは、構成、クロック、および他の制御論理のために使用される。この水平エリアまたは列から延在する垂直列109は、FPGAの広さを越えてクロックおよび構成信号を分散させるために使用される。
図1Aに示すアーキテクチャを利用するいくつかのFPGAは、FPGAの大部分を作り上げる通常の列構造を乱す追加の論理ブロックを含む。追加の論理ブロックは、プログラマブルブロックおよび/または専用論理であり得る。たとえば、プロセッサブロック110は、CLBおよびBRAMのいくつかの列にまたがる。プロセッサブロック110は、単一のマイクロプロセッサから、マイクロプロセッサ、メモリコントローラ、周辺装置などの完全なプログラマブル処理システムに及ぶ、さまざまなコンポーネントを含み得る。
なお、図1Aは、単なる例示的なFPGAアーキテクチャを例示するよう意図されている。たとえば、1行における論理ブロックの数、行の相対的な幅、行の数および順序、行に含まれる論理ブロックのタイプ、論理ブロックの相対的なサイズ、および図1Aの上部に含まれる相互接続/論理実現化例は、単に例示的である。たとえば、実際のFPGAでは、ユーザ論理の効率的な実現を容易にするために、CLBがどこに現われようと、CLBの2つ以上の隣接する行が典型的には含まれるが、隣接するCLB行の数は、FPGAの全体的なサイズによって変わる。別の例では、FPGAは、プロセッサブロック110の代わりに、またはプロセッサブロック110に加えて、 処理システム全体(たとえばプロセッサ、メモリ、周辺装置など)を含み得る。そのような実現化例では、システム・オン・チップ(System-on-Chip:Soc)は、処理システムと通信するプログラマブルファブリック(FPGA100に示されるようなプログラマブル論理)を含み得る。
図1Bは、一例に従ったFPGA100のより高いレベルの図を示すブロック図である。FPGA100はプログラマブルファブリック150を含み、それは、上述のさまざまなプログラマブルタイルを含み得る。プログラマブルファブリック150は、構成メモリ152に結合される。構成メモリ152は、スタティックRAM(SRAM)などのランダムアクセスメモリ(RAM)を含む。プログラマブルファブリック150はまた、ここに説明されるようなカスケード式LUT桁上げ論理を有するCLE112を含み得る。構成メモリ152には、プログラマブルファブリック150をプログラムする(「構成する」)ための構成ビットストリームがロードされ得る。たとえば、構成ビットストリームは、ここに説明されるようにプログラマブルファブリック150のCLE112を構成するために、構成メモリ152へロードされ得る。
図2は、FPGA100のプログラマブルファブリック150のフロアプランを示すブロック図である。図2は、プログラマブルファブリック150におけるプログラマブルタイルの2つの列202および206を示す。列202および206におけるプログラマブルタイルは、CLE112を含む。列202および206の各々では、CLE112は1つだけ示されているが、列202および206は一般に、複数のCLEを含む。CLE112の各々は、相互接続素子111に結合される。
CLE112の各々は、4つのスライスSM1〜SM0およびSL0〜SL1を含む。スライスSM0〜SL1は、あるタイプ(タイプ「M」)のものであり、スライスSL0〜SL1は、別のタイプ(タイプ「L」)のものである。タイプ「M」のスライスSM0およびSM1は、ルックアップテーブル(LUT)208とサポート論理210とを含む。LUT208は、複数の入力と複数の出力とを有する任意の組合せ関数を実行するための関数発生器として構成され得る。LUT208はまた、複数のビットを格納するように構成されたLUT−RAMとして構成され得る。サポート論理210は、LUT208をサポートする、フリップフロップ、マルチプレクサ、桁上げチェーン論理などを含み得る。タイプ「L」のスライスSL0およびSL1は、LUT212とサポート論理210とを含む。LUT212は、LUT−RAMとしてではなく、関数発生器として構成され得る。図2に示すアーキテクチャは単なる一例である。他の例では、CLE112におけるすべてのLUTがLUT−RAMを含んでいてもよく(すべてのスライスがタイプ「M」のものである)、または、CLE112におけるすべてのLUTが、RAMとして構成されることができないLUTを含んでいてもよい(すべてのスライスがタイプ「L」のものである)。
この例では、列202におけるタイプ「L」のスライスSL0およびSL1は、列206におけるタイプ「M」のスライスSM0およびSM1に、それらの間に2つの相互接続素子111を有して隣接している。列202におけるスライスSL0〜SL1は相互接続素子111のうちの一方に結合され、列206におけるスライスSM0〜SM1は相互接続素子111のうちの他方に結合される。相互接続素子111は互いに結合され得る。相互接続素子111の各々は、マルチプレクサ214を含む。マルチプレクサ214のうちの異なるマルチプレクサは、列202におけるCLE112からの入力、列206におけるCLE112からの入力、別の相互接続素子111におけるマルチプレクサ214からの入力、または相互接続からの入力といった、異なる入力を有し得る。同様に、マルチプレクサ214のうちの異なるマルチプレクサは、列202におけるCLE112への出力、列206におけるCLE112への出力、別の相互接続素子111への出力、または相互接続への出力といった、異なる出力を有し得る。
ここに説明されるように、LUT208および/またはLUT212は内部の和論理および桁上げ論理を含むことができ、そのような和論理および桁上げ論理がサポート論理210に含まれる必要性を取り除く。これは、CLE112のための出力マルチプレクサコストを減少させる。これはまた、可能な臨界経路の減少をもたらし、それはCLE112の性能を最適化する。また、桁上げチェーンは、CLE112におけるどのLUTででも初期化可能であり、それは、より細かい精度での複数の桁上げチェーンのパッキングを可能にする。
図3は、一例に従った構成可能論理素子112を示すブロック図である。この例では、構成可能論理素子112は、1対のLUT302−0および302−1(総称してLUT302)を含む。この例ではLUTが2つだけ示されているが、上述のように、CLE112は、1つ以上のLUTを各々有するスライスを1つ以上有し得る。
LUT302の各々は、和論理312と桁上げ論理310とを内部に含む。この例では、LUT302−0は和論理312−0と桁上げ論理310−0とを含み、LUT302−1は和論理312−1と桁上げ論理310−1とを含む。この例では、和論理312は排他的OR(XOR)ゲートを含み、桁上げ論理310はマルチプレクサを含む。このため、和論理312−0は論理ゲート320を含み、和論理312−1は論理ゲート308を含む。この例では、論理ゲート308および320の各々はXORゲートを含む。同様に、桁上げ論理310−0はマルチプレクサ318を含み、桁上げ論理310−1はマルチプレクサ306を含む。LUT302−0はさらに論理ゲート304−0を含み、LUT302−1はさらに論理ゲート304−1を含む。この例では、論理ゲート304−0および304−1の各々はXORゲートを含む。
LUT302の各々は、A1〜A6と称される6つの入力を含む。LUT302−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と称される。
LUT302−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)に結合される。
この例では、CLE112のためのサポート論理210は、桁上げチェーンマルチプレクサ314を含む。桁上げチェーンマルチプレクサ314の出力は、Coutと称される。桁上げチェーンマルチプレクサ314の制御インターフェイスは、prop0、prop1、または双方を受信するように結合され得る。桁上げチェーンマルチプレクサ314の入力は、Cout1’を受信するように結合される。桁上げチェーンマルチプレクサ314の他の入力は、カスケードマルチプレクサ322−0の出力、Cin、または双方を受信するように結合され得る。
演算時、LUT302−0および302−1は、データワードA_dataとB_dataとの和を計算する。この例では、データワードA_dataおよびB_dataは各々、<0>および<1>と称される2ビットを有する。LUT302−0の入力A3およびA4は、A_data<0>およびB_data<0>をそれぞれ受信する。LUT302−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>+桁上げ)。桁上げビットはカスケードマルチプレクサ322−0によって出力され、それは、A5’を通して、またはCin(CLE112への桁上げ入力)を通して入力され得る。マルチプレクサ318は、LUT302−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>+桁上げ)。桁上げビットはカスケードマルチプレクサ322−1によって出力され、それは、A5’を通して、またはマルチプレクサ318の出力(たとえばCout0)を通して入力され得る。A_data+B_dataを求めるために、マルチプレクサ322−1はCout0を桁上げビットとして選択する。マルチプレクサ306は、LUT302−1によって行なわれる和演算のための桁上げビットを出力する(Cout1’と称される)。
桁上げチェーンマルチプレクサ314は、CLE112のための桁上げビットを出力する。CLE112のための桁上げビットは、(演算A_data+B_dataについては)Cout1であり得る。他の演算については、Coutが、Cin(桁上げ通過)であるか、またはカスケードマルチプレクサ322−0の出力であることも可能である。図3に示すCLE112は、任意の数のビットを有するA_dataとB_dataとの和を計算するために、複製してともにつなげることができる。
図3の例では、和論理および桁上げ論理は、CLE112のLUT302に組込まれる。桁上げ初期化が、カスケードマルチプレクサ322によって行なわれ得る。カスケードマルチプレクサ322は、包括的なLUT間直接接続を迅速化する。和出力および桁上げ出力は双方とも、LUT302によって直接提供される。これは、(たとえば相互接続111内の)これらの信号によって駆動される出力マルチプレクサのサイズが減少されることを可能にする。なぜなら、そのような出力マルチプレクサはさもなければ、LUT302の和出力および桁上げ出力について別々の出力を必要とするためである。LUT302の各々はそれに結合されたカスケードマルチプレクサ322を含むため、すべてのLUTで桁上げチェーンを開始/初期化することが可能であり、それは、より効率的な複数の桁上げチェーンのパッキングを可能にする。また、和出力は専用のものではなく、和を計算する論理ゲート304は、XOR以外の何らかの他の関数であり得る。
図4は、別の例に従った構成可能論理素子112を示すブロック図である。上述のものと同じまたは同様の要素は、同一の参照符号で表わされる。この例では、桁上げ論理310−0におけるマルチプレクサ318の出力(Cout0)は、桁上げチェーンマルチプレクサ314の入力に結合される。また、LUT302−1から桁上げ論理310−1が省略される。むしろ、LUT302−1の入力A4は、桁上げチェーンマルチプレクサ314の入力に結合される。構成可能論理素子112の残りは、図3に関して上述したように実現される。
図4に示すような構成可能論理素子112では、桁上げチェーンマルチプレクサ314の入力は、LUT302−0から桁上げ出力(Cout0)を直接受信するように拡張する。このように、LUT302−0からの桁上げ出力(Cout0)は、チェーンマルチプレクサ314に到達するためにLUT302−1まで伝搬する必要がない。また、LUT302−0の桁上げ出力(Cout0)はマルチプレクサ314に直接接続されるため、桁上げ論理310−1が取り除かれ得る。
図3および図4の例では、2ビットの桁上げ(Cout0およびCout1)が示される。一般に、図3および図4における回路は、Nビットの桁上げを生成するように拡張可能であり、ここでNは正の整数である。そのような例では、桁上げチェーンマルチプレクサ314は、他のLUTによって生成された追加ビットの桁上げに対処するための増加した幅を含み得る。また、上述の例では、桁上げ論理構造は、加法演算に関して説明されている。一般に、ここに説明される桁上げ論理構造は、他のタイプの算術演算のすべてまたは一部を行なうために使用され得る。
図5は、一例に従ったプログラマブル集積回路(IC)を構成する方法500を示すフロー図である。方法500はブロック502で始まり、そこでは、CLEにおける第1のLUTが、第1の和を計算するように構成され、第1のLUTは、第1の入力および第1の出力と、第1の入力と出力との間に結合された第1の和論理および第1の桁上げ論理とを含む。ブロック504で、CLEにおける第2のLUTが、第2の和を計算するように構成され、第2のLUTは、第2の入力および第2の出力と、第2の入力と出力との間に結合された第2の和論理および第2の桁上げ論理とを含む。ブロック506で、カスケードマルチプレクサが、第1のLUTにおける第1の桁上げ論理の出力を第2のLUTにおける第2の和論理の入力に結合するように構成される。方法500は、任意の数のビットを有するデータワードの和を計算するために、1つ以上の追加のLUTについて繰り返され得る。
いくつかの他の例は一般に電子回路に関し、特に、ルックアップテーブル(LUT)カスケード回路に関する。
図1Bを再度参照すると、一例では、プログラマブルファブリック150はまた、ルックアップテーブル(LUT)154を有するCLE112を含み得る。ここに説明されるように、LUT154はカスケード入力を含み得る。
ここで図6を参照すると、別のブロック図が、FPGA100のプログラマブルファブリック150のフロアプランの一部を示す。図6は、プログラマブルファブリック150におけるプログラマブルタイルの2つの列602および606を示す。列602および606におけるプログラマブルタイルは、CLE612を含む。列602および606の各々では、CLE612は1つだけ示されているが、列602および606は一般に、複数のCLEを含む。CLE612の各々は、相互接続素子611に結合される。
CLE612の各々は、4つのスライスSM0〜SM1およびSL0〜SL1を含む。スライスSM0〜SL1は、あるタイプ(タイプ「M」)のものであり、スライスSL0〜SL1は、別のタイプ(タイプ「L」)のものである。タイプ「M」のスライスSM0およびSM1は、LUT154Aとサポート論理610とを含む。LUT154Aは、複数の入力と複数の出力とを有する任意の組合せ関数を実行するための関数発生器として構成され得る。LUT154Aはまた、複数のビットを格納するように構成されたLUT−RAMとして構成され得る。サポート論理610は、LUT154Aをサポートする、フリップフロップ、マルチプレクサ、桁上げチェーン論理などを含み得る。タイプ「L」のスライスSL0およびSL1は、LUT154Bとサポート論理610とを含む。LUT154Bは、LUT−RAMとしてではなく、関数発生器として構成され得る。図6に示すアーキテクチャは単なる一例である。他の例では、CLE612におけるすべてのLUTがLUT−RAMを含んでいてもよく(すべてのスライスがタイプ「M」のものである)、または、CLE612におけるすべてのLUTが、RAMとして構成されることができないLUTを含んでいてもよい(すべてのスライスがタイプ「L」のものである)。
双方のタイプのLUT154Aおよび154Bは、カスケード接続620を有し得る。カスケードに接続620は、プログラマブル相互接続(たとえば、INT611およびMUX614)を使用することなく、LUT間接続を可能にする。図2では、カスケード接続620は概して、スライス間接続(たとえば、2つの異なるスライスにおけるLUT同士の間でのLUT間接続)として示されている。カスケード接続620はまた、CLE間接続(たとえば、2つの異なるCLE612におけるLUT同士の間でのLUT間接続)であり得る。カスケード接続620はまた、スライス内接続(たとえば、同じスライスにおけるLUT同士の間でのLUT間接続)であり得る。
この例では、列602におけるタイプ「L」のスライスSL0およびSL1は、列606におけるタイプ「M」のスライスSM0およびSM1に、それらの間に2つの相互接続素子611を有して隣接している。列602におけるスライスSL0〜SL1は相互接続素子611のうちの一方に結合され、列606におけるスライスSM0〜SM1は相互接続素子611のうちの他方に結合される。相互接続素子611は互いに結合され得る。相互接続素子611の各々は、マルチプレクサ614を含む。マルチプレクサ214のうちの異なるマルチプレクサは、列602におけるCLE612からの入力、列606におけるCLE612からの入力、別の相互接続素子611におけるマルチプレクサ614からの入力、または相互接続からの入力といった、異なる入力を有し得る。同様に、マルチプレクサ614のうちの異なるマルチプレクサは、列602におけるCLE612への出力、列606におけるCLE612への出力、別の相互接続素子611への出力、または相互接続への出力といった、異なる出力を有し得る。
図7は、一例に従ったLUT154を示すブロック図である。LUT154は、LUT論理702と、マルチプレクサ704と、マルチプレクサ706と、マルチプレクサ708と、マルチプレクサ710と、マルチプレクサ712とを含む。LUT154は、A1〜A6と称される6つの入力を含む。LUT154はまた、casc_inと称されるカスケード入力を含む。カスケード入力は、単一の入力であってもよく、または信号のバスであってもよい。一般に、カスケード入力はN個のビットまたは信号を含み、ここでNは正の整数である。LUT154は、05_1、05_2、および06と称される出力を含む。
LUT論理702は、4つの4入力LUT702A、702B、702C、および702Dを含む。一例では、LUT論理702は、少なくとも4つのLUT702を含み得る。4入力LUTはここに「4LUT」とも呼ばれる。各4LUT702A〜702Dは、共通の入力端子722に結合される。入力端子722は、4LUT702A〜702Dの各々に入力A1、A2、A3、およびA4を提供する。4LUT702Aの出力はマルチプレクサ706の入力に結合され、4LUT702Bの出力はマルチプレクサ706の別の入力に結合される。4LUT702Aおよび702Bはともに、LUT154の第1の半分を構成する。4LUT702Cの出力はマルチプレクサ710の入力に結合され、4LUT702Dの出力はマルチプレクサ710の別の入力に結合される。4LUT702Cおよび702Dはともに、LUT154の第2の半分を構成する。マルチプレクサ706の出力は出力05_1(LUT154の第1の半分の出力)を提供し、マルチプレクサ710の出力は出力05_2(LUT154の第2の半分の出力)を提供する。
マルチプレクサ706の出力はまた、マルチプレクサ708の入力に結合され、マルチプレクサ710の出力はまた、マルチプレクサ708の別の入力に結合される。マルチプレクサ708の出力は、LUT154の出力06を提供する。出力05_1、05_2、および06はともに、LUT154の出力端子724によって提供される。出力端子724のうちの1つ以上は、FPGAにおける1つ以上の追加のLUTのcasc_inに結合され得る。マルチプレクサ708はここに「出力マルチプレクサ」とも呼ばれる。
マルチプレクサ704の出力は、マルチプレクサ706の制御入力に結合される。マルチプレクサ704の1つの入力は入力端子720に結合され、それはLUT154の入力A5を提供する。マルチプレクサ704の別の入力は入力端子724に結合され、それはLUT154の入力A6を提供する。マルチプレクサ704の1つ以上の追加の入力端子は入力718に結合され、それはcasc_inを提供する。マルチプレクサ704の制御入力は制御端子714に結合される。制御端子714は、メモリ(たとえば、BRAM、LUTRAM、構成メモリなど)といったFPGAにおける別の回路から信号を受信することができる。
マルチプレクサ712の出力は、マルチプレクサ710の制御入力に結合される。マルチプレクサ712の1つの入力は入力端子720に結合され、それはLUT154の入力A5を提供する。マルチプレクサ712の別の入力は入力端子724に結合され、それはLUT154の入力A6を提供する。マルチプレクサ712の1つ以上の追加の入力端子は入力718に結合され、それはcasc_inを提供する。マルチプレクサ712の制御入力は制御端子716に結合される。制御端子716は、メモリ(たとえば、BRAM、LUTRAM、構成メモリなど)といったFPGAにおける別の回路から信号を受信することができる。マルチプレクサ704および712はここに「カスケードマルチプレクサ」とも呼ばれる。
演算時、4LUT702A−702Dの各々は、入力A1〜A4に基づいて任意の4入力関数を実現することができる。マルチプレクサ706は、4LUT702Aまたは4LUT702Bのうちの1つからの出力を、LUT154の第1の半分のための出力05_1として選択する。マルチプレクサ710は、4LUT702Cまたは4LUT702Dのうちの1つからの出力を、LUT154の第2の半分のための出力05_2として選択する。このように、LUT154は、2つの5入力関数を実現するために使用され得る2つの5入力LUTを実現することができる。マルチプレクサ708は、LUT154の出力06を提供するために、マルチプレクサ706および710の出力の中から選択する。このため、LUT154は、1つの6入力関数を実現するために使用され得る1つの6入力LUTを実現することができる。
一構成では、マルチプレクサ704および/または712は、マルチプレクサ706および/または710をそれぞれ制御するために、入力A5を選択することができる。別の構成では、マルチプレクサ704および/または712は、マルチプレクサ706および/または710をそれぞれ制御するために、入力A6を選択することができる。さらに別の構成では、マルチプレクサ704および/または712は、マルチプレクサ706および/または710をそれぞれ制御するために、casc_in入力のうちの1つを選択することができる。入力718は、FPGAにおける1つ以上の他のLUTの1つ以上の出力端子に結合され得る。このように、LUT154は、casc_inを通して、FPGAにおける1つ以上の他のLUTに直接結合され得る。そのため、LUT154は、マルチレベル関数を合成するためにともにつなげられてもよく、それらのいくつかの例を以下に説明する。
casc_in入力をA5入力と多重化することは、最速のLUT入力に対する遅延を増加させないという利点と、異なる信号がLUTの上半分および下半分を供給されることを可能にするという利点とを有する。マルチプレクサ704および712は、あるLUTの出力を別のLUTのcasc_inに接続することによって、高速のLUT間接続の作成を可能にする。いくつかの例では、casc_in入力は、複数の信号を含み得る。そのような例では、LUT154の上半分は、LUT154の下半分とは異なるcasc_in信号を使用することができ、広いマルチプレクサツリーの実現を可能にする。
図7に示すLUT154は、異なる数のLUTおよび入力を提供するために拡大縮小され得る。たとえば、LUT論理702は5つ以上のLUTを含んでいてもよく、LUT論理702におけるLUTは5つ以上の入力を含んでいてもよい。マルチプレクサ706および710は、LUT論理702におけるLUTの出力の中から選択する多重化論理の一部である。いくつかの例では、そのような多重化論理は、カスケードマルチプレクサに各々結合された3つ以上のマルチプレクサを含んでいてもよい。そのため、2つのカスケードマルチプレクサ704および712が示されているが、LUT154は、複数のカスケードマルチプレクサを含み得る。
図8は、一連のLUT154−1〜154−4を含む例示的な回路800を示すブロック図である。LUT154−1のcasc_in入力は、LUT154−2の出力に結合される。LUT154−2のcasc_in入力は、LUT154−3の出力に結合される。LUT154−3のcasc_in入力は、LUT154−4の出力に結合される。LUT154−1〜154−3の各々におけるマルチプレクサ604および/またはマルチプレクサ612は、casc_in入力で、LUT154−2〜154−4のそれぞれの出力を選択する。図3の例では、各LUT154−1〜154−3は、casc_inに加えて使用され得る他の5つの入力A1〜A4およびA6を含む。LUT154−4は、使用され得る6つの入力A1〜A6を含む。そのため、回路400は21入力関数を実現することができ、その出力はLUT154−1によって提供される。他の例では、LUT154は異なる数の入力端子を有し得るが、一般に、LUTをカスケード接続して広い組合せ関数を実現するためにカスケード入力が使用され得る。
図9は、複数のLUT154−5〜154−9を含む例示的な回路900を示すブロック図である。図7に示すような実現化例を仮定して、回路900は16:1マルチプレクサを実現する。16:1マルチプレクサの入力は、LUT154−5の入力A1〜A4と、LUT154−6の入力A1〜A4と、LUT154−7の入力A1〜A3と、LUT154−8の入力A1〜A3と、LUT154−9の入力A1〜A2とを含む。16:1マルチプレクサの出力は、LUT154−9の出力06によって提供される。16:1マルチプレクサの制御入力は、LUT154−5の入力A5〜A6と、LUT154−6の入力A5〜A6と、LUT154−7の入力A4およびA6と、LUT154−8の入力A4およびA6と、LUT154−9の入力A4およびA6とを含む。LUT154−5の出力06は、LUT154−7のcasc_in入力に結合される。LUT154−6の出力06は、LUT154−8のcasc_in入力に結合される。LUT154−7および154−8の出力06は、LUT154−9のcasc_in入力に結合される。この例は、LUT154−9のcasc_in入力が複数の信号を含むバスであると仮定する。
図8の回路800および図9の回路900は、ここに説明されるようなカスケード入力を有するLUTを使用して形成され得る回路のタイプの単なる2例である。一般に、たとえば図7の例に示すように、各LUTは、1つ以上のビットまたは信号を有するcasc_in入力を含み得る。そのため、各LUTは、1つ以上の追加のLUTに結合され得る。追加のLUTは、同じスライスに、隣接するスライスに、および/または隣接するCLEに位置し得る。単一のLUTを使用して形成され得る組合せ関数、マルチプレクサなどのより広いバージョンを形成するために、1組のカスケード式LUTが使用され得る。
図10は、一例に従ったプログラマブルICにおいてLUTを動作させる方法1000を示すフロー図である。方法1000はステップ1002で始まり、そこでは、共通の一組の入力信号が、LUT論理における複数のLUTに結合される。たとえば、図7に示すように、入力A1〜A4がLUT702A〜702Bに結合される。
ステップ604で、カスケード入力が、複数のカスケードマルチプレクサの各々に結合され、ここでカスケード入力は、プログラマブルICにおける少なくとも1つの他のLUTに結合される。たとえば、図3に示すように、入力casc_inが、LUT154におけるマルチプレクサ304および312に結合される。
ステップ1006で、カスケードマルチプレクサの少なくとも1つが、カスケード入力の信号を選択するように制御される。たとえば、マルチプレクサ704および712のいずれかまたは双方が、casc_inの信号を選択するように制御され得る。一例では、マルチプレクサ304および312は、構成メモリなどのプログラマブルICにおけるメモリを使用して制御され得る。
ステップ1008で、第1および第2のカスケードマルチプレクサが、カスケード入力の第1および第2の信号を選択するように制御される。第1の信号は、第2の信号とは異なり得る。たとえば、図7に示すように、casc_in入力は複数の信号を有するバスであってもよく、マルチプレクサ704はcasc_in信号のうちの1つを選択し、一方、マルチプレクサ312はcasc_in信号のうちの別のものを選択してもよい。
ステップ1010で、LUT論理における複数のLUTの出力の中から選択するように、カスケードマルチプレクサの出力がマルチプレクサ論理に結合される。たとえば、図7に示すように、LUT702A〜702Dの出力の中から選択するように、マルチプレクサ704および712の出力がマルチプレクサ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の少なくとも1つに結合された桁上げチェーンマルチプレクサをさらに含んでいてもよい。
何らかのそのような構成可能論理素子では、第2のLUTは第2の桁上げ論理を含んでいてもよく、桁上げチェーンマルチプレクサの入力が、第2のLUTにおける第2の桁上げ論理の出力に結合されてもよい。
そのような構成可能論理素子は、第1のカスケードマルチプレクサに結合された桁上げ入力をさらに含んでいてもよい。
何らかのそのような構成可能論理素子では、桁上げ入力はさらに、桁上げチェーンマルチプレクサの入力に結合されてもよい。
何らかのそのような構成可能論理素子では、桁上げチェーンマルチプレクサの入力が、第1のカスケードマルチプレクサの出力に結合されてもよい。
何らかのそのような構成可能論理素子では、第1および第2の和論理の各々は排他的ORゲートを含み、第1の桁上げ論理はマルチプレクサを含む。
何らかのそのような構成可能論理素子では、第1の桁上げ論理のマルチプレクサの制御端子が、第1のLUTにおける第1の論理ゲートに結合されてもよい。
何らかのそのような構成可能論理素子は、第1のLUTまたは第2のLUTの少なくとも1つに結合された桁上げチェーンマルチプレクサをさらに含み、桁上げチェーンマルチプレクサの制御インターフェイスが、第1の論理ゲートまたは第2の論理ゲートの少なくとも1つに結合されてもよい。
何らかのそのような構成可能論理素子では、第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の少なくとも1つに結合された桁上げチェーンマルチプレクサをさらに含んでいてもよい。
何らかのそのようなプログラマブル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における少なくとも1つの他のLUTに結合されたカスケード入力とを含む。LUTはさらに、共通の一組の入力端子に各々結合された複数のLUTを有するLUT論理を含む。LUTはさらに、複数のLUTの出力に結合された入力を有する複数のマルチプレクサと、複数のマルチプレクサの出力に結合された入力を有する出力マルチプレクサとを含む。LUTはさらに、複数のマルチプレクサのそれぞれの制御入力に結合された出力を各々有する複数のカスケードマルチプレクサを含み、複数のカスケードマルチプレクサの各々は複数の入力を含み、複数の入力の少なくとも1つはカスケード入力に結合される。
別の例では、プログラマブル集積回路(IC)用のルックアップテーブル(LUT)が提供されてもよい。そのようなLUTは、複数の入力端子と、プログラマブルICにおける少なくとも1つの他のLUTに結合されたカスケード入力と、共通の一組の入力端子に各々結合された複数のLUTを有するLUT論理と、複数のLUTの出力に結合された入力を有する複数のマルチプレクサと、複数のマルチプレクサの出力に結合された入力を有する出力マルチプレクサと、複数のマルチプレクサのそれぞれの制御入力に結合された出力を各々有する複数のカスケードマルチプレクサとを含み、複数のカスケードマルチプレクサの各々は複数の入力を含み、複数の入力の少なくとも1つはカスケード入力に結合されてもよい。
何らかのそのようなLUTでは、複数のLUTは、少なくとも4つのLUTを含み、複数のマルチプレクサは、少なくとも4つのLUTに結合された少なくとも2つのマルチプレクサを含み、複数のカスケードマルチプレクサは、少なくとも2つのマルチプレクサを制御するように結合された少なくとも2つのカスケードマルチプレクサを含む。
何らかのそのようなLUTでは、少なくとも4つのLUTの各々は、4入力LUTを含んでいてもよく、複数の入力端子は、4入力LUTの各々に結合された4つの入力を含む。
何らかのそのようなLUTでは、複数のカスケードマルチプレクサの各々の複数の入力の少なくとも1つが、複数の入力端子の少なくとも1つに結合されてもよい。
何らかのそのようなLUTでは、カスケード入力は、複数の信号を有するバスを含んでいてもよい。
何らかのそのようなLUTでは、複数のカスケードマルチプレクサの制御入力が、プログラマブルICにおけるメモリに結合されてもよい。
何らかのそのようなLUTでは、メモリは、プログラマブルICの構成メモリを含んでいてもよい。
何らかのそのようなLUTでは、出力マルチプレクサの制御入力が、複数の入力端子のうちのある端子に結合されてもよい。
何らかのそのようなLUTは、複数のマルチプレクサおよび出力マルチプレクサの出力に結合された複数の出力端子をさらに含んでいてもよい。
別の例では、プログラマブルICが提供されてもよい。そのようなプログラマブルICは、構成メモリと、構成メモリに結合され、複数のルックアップテーブル(LUT)を有する少なくとも1つの構成可能論理素子(CLE)とを含み、複数のLUTの各々は出力端子とカスケード入力とを含んでいてもよく、複数のLUTのうちの第1のLUTのカスケード入力は、複数のLUTのうちの第2のLUTの出力端子に結合される。
何らかのそのようなプログラマブルICでは、複数のLUTの各々はさらに、複数の入力端子と、共通の一組の入力端子に各々結合された複数のLUTを有するLUT論理と、複数のLUTの出力に結合された入力を有する複数のマルチプレクサと、複数のマルチプレクサの出力に結合された入力と出力端子に結合された出力とを有する出力マルチプレクサと、複数のマルチプレクサのそれぞれの制御入力に結合された出力を各々有する複数のカスケードマルチプレクサとを含み、複数のカスケードマルチプレクサの各々は複数の入力を含み、複数の入力の少なくとも1つはカスケード入力に結合される。
何らかのそのようなプログラマブルICでは、複数のLUTの各々について、複数のカスケードマルチプレクサの各々の複数の入力の少なくとも1つが、複数の入力端子の少なくとも1つに結合されてもよい。
何らかのそのようなプログラマブルICでは、複数のLUTの各々について、カスケード入力は、複数の信号を有するバスを含んでいてもよい。
何らかのそのようなプログラマブルICでは、複数のLUTの各々について、複数のカスケードマルチプレクサの制御入力が、プログラマブルICにおけるメモリに結合されてもよい。
何らかのそのようなプログラマブルICでは、メモリは構成メモリを含んでいてもよい。
何らかのそのようなプログラマブルICでは、複数のLUTの各々について、出力マルチプレクサの制御入力が、複数の入力端子のうちのある端子に結合されてもよい。
何らかのそのようなプログラマブルICでは、第1のLUTおよび第2のLUTは、組合せ関数を実現するように構成される。
何らかのそのようなプログラマブルICでは、第1のLUTおよび第2のLUTは、マルチプレクサを実現するように構成されてもよい。
別の例では、プログラマブルICにおいてLUTを動作させる方法が提供されてもよい。LUTを動作させるそのような方法は、共通の一組の入力信号をLUT論理における複数のLUTに結合するステップと、カスケード入力を複数のカスケードマルチプレクサの各々に結合するステップとを含んでいてもよく、カスケード入力は、プログラマブルICにおける少なくとも1つの他のLUTに結合され、方法はさらに、カスケード入力の信号を選択するように複数のカスケードマルチプレクサの少なくとも1つを制御するステップと、LUT論理における複数のLUTの出力の中から選択するように動作可能なマルチプレクサ論理にカスケードマルチプレクサの出力を結合するステップとを含んでいてもよい。
何らかのそのような方法では、制御する動作は、カスケード入力の第1の信号を選択するように、複数のマルチプレクサのうちの第1のカスケードマルチプレクサを制御するステップと、第1の信号とは異なるカスケード入力の第2の信号を選択するように、複数のマルチプレクサのうちの第2のカスケードマルチプレクサを制御するステップとを含んでいてもよい。
前述の事項は特定の例に向けられているが、他の例およびさらなる例が、その基本的範囲から逸脱することなく考案されてもよく、その範囲は請求項によって定められる。

Claims (11)

  1. 第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)用の構成可能論理素子。
  2. 前記第1のLUTまたは前記第2のLUTの少なくとも1つに結合された桁上げチェーンマルチプレクサをさらに含む、請求項1に記載の構成可能論理素子。
  3. 前記第2のLUTは第2の桁上げ論理を含み、前記桁上げチェーンマルチプレクサの入力が、前記第2のLUTにおける前記第2の桁上げ論理の出力に結合される、請求項2に記載の構成可能論理素子。
  4. 前記第1のカスケードマルチプレクサに結合された桁上げ入力をさらに含む、請求項2に記載の構成可能論理素子。
  5. 前記桁上げ入力はさらに、前記桁上げチェーンマルチプレクサの入力に結合される、請求項4に記載の構成可能論理素子。
  6. 前記桁上げチェーンマルチプレクサの入力が、前記第1のカスケードマルチプレクサの出力に結合される、請求項2に記載の構成可能論理素子。
  7. 前記第1および第2の和論理の各々は排他的ORゲートを含み、前記第1の桁上げ論理はマルチプレクサを含む、請求項1に記載の構成可能論理素子。
  8. 前記第1の桁上げ論理の前記マルチプレクサの制御端子が、前記第1のLUTにおける第1の論理ゲートに結合される、請求項7に記載の構成可能論理素子。
  9. 前記第1のLUTまたは前記第2のLUTの少なくとも1つに結合された桁上げチェーンマルチプレクサをさらに含み、前記桁上げチェーンマルチプレクサの制御インターフェイスが、前記第1の論理ゲートまたは第2の論理ゲートの少なくとも1つに結合される、請求項8に記載の構成可能論理素子。
  10. 前記第1および第2のカスケードマルチプレクサの制御端子が、前記プログラマブルICにおける構成可能メモリセルに結合される、請求項1に記載の構成可能論理素子。
  11. プログラマブル集積回路(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の和論理の入力に結合するように、カスケードマルチプレクサを構成するステップを含む、方法。
JP2018512948A 2015-09-11 2016-09-09 カスケード式ルックアップテーブル(lut)桁上げ論理回路 Active JP6697545B2 (ja)

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
JP2018530958A true JP2018530958A (ja) 2018-10-18
JP6697545B2 JP6697545B2 (ja) 2020-05-20

Family

ID=56985692

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018512948A Active JP6697545B2 (ja) 2015-09-11 2016-09-09 カスケード式ルックアップテーブル(lut)桁上げ論理回路

Country Status (5)

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

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 无锡亚科鸿禹电子有限公司 基于查找表结构的触发条件实现方法

Family Cites Families (13)

* 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
KR100203742B1 (ko) 1996-05-20 1999-06-15 윤종용 멀티플렉스를 이용한 가산기
US6097212A (en) * 1997-10-09 2000-08-01 Lattice Semiconductor Corporation Variable grain architecture for FPGA integrated circuits
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
JP4438000B2 (ja) * 2005-11-15 2010-03-24 株式会社半導体理工学研究センター リコンフィギャラブルロジックブロック、リコンフィギャラブルロジックブロックを備えるプログラマブル論理回路装置、および、リコンフィギャラブルロジックブロックの構成方法
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 京微雅格(北京)科技有限公司 一种加法进位信息输出的方法和一种加法器

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
CN108028655B (zh) 2021-08-17
WO2017044812A1 (en) 2017-03-16
KR102561988B1 (ko) 2023-07-31
KR20180053314A (ko) 2018-05-21

Similar Documents

Publication Publication Date Title
JP6697545B2 (ja) カスケード式ルックアップテーブル(lut)桁上げ論理回路
US9859896B1 (en) Distributed multi-die routing in a multi-chip module
US7317332B2 (en) Interconnection and input/output resources for programmable logic integrated circuit devices
US8893071B1 (en) Methods of pipelining a data path in an integrated circuit
US8581624B2 (en) Integrated circuits with multi-stage logic regions
US9172378B1 (en) Programmable logic device having logic elements with dedicated hardware to configure look up tables as registers
US7061268B1 (en) Initializing a carry chain in a programmable logic device
US10715144B2 (en) Logic circuits with augmented arithmetic densities
CN105391443B (zh) 用于可编程逻辑装置的逻辑单元
US9455714B1 (en) Cascaded LUT carry logic circuit
JP5523988B2 (ja) プログラマブル論理回路装置およびその回路決定方法
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
US7288960B2 (en) Sharing a static random-access memory (SRAM) table between two or more lookup tables (LUTs) that are equivalent to each other
CN106024056B (zh) 基于复用器的三态内容寻址存储器
EP1349282A2 (en) Mask-programmable logic device with programmable gate array sites
US9602108B1 (en) Lut cascading circuit
US6429681B1 (en) Programmable logic device routing architecture to facilitate register re-timing
US9390210B2 (en) Logic absorption techniques for programmable logic devices
Isa et al. Field Programmable Gate Array (FPGA): From Conventional to Modern Architectures
Kazarlis et al. Reconfigurable Hyper-Structures for Intrinsic Digital Circuit Evolution
Computing Reconfigurable Computing I: Motivation and Concepts
Ravel Third-generation architecture boosts speed and density of field-programmable gate arrays
Salcic et al. Examples of Major FPLD Families
Zaghar et al. A PROPOSED METHOD OF IMPLEMENTATION OF AN OPTIMAL FAST AND VERY LOW COST ADDER BY USING XILINX FPGA

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180511

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190906

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190906

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20191101

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191126

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200331

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200424

R150 Certificate of patent or registration of utility model

Ref document number: 6697545

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250