JPH08503570A - 高速桁上げのためのロジック構造および回路 - Google Patents

高速桁上げのためのロジック構造および回路

Info

Publication number
JPH08503570A
JPH08503570A JP7508260A JP50826095A JPH08503570A JP H08503570 A JPH08503570 A JP H08503570A JP 7508260 A JP7508260 A JP 7508260A JP 50826095 A JP50826095 A JP 50826095A JP H08503570 A JPH08503570 A JP H08503570A
Authority
JP
Japan
Prior art keywords
carry
signal
input
logic
bit
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
JP7508260A
Other languages
English (en)
Other versions
JP3594601B2 (ja
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 JPH08503570A publication Critical patent/JPH08503570A/ja
Application granted granted Critical
Publication of JP3594601B2 publication Critical patent/JP3594601B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/501Half or full adders, i.e. basic adder cells for one denomination
    • G06F7/503Half or full adders, i.e. basic adder cells for one denomination using carry switching, i.e. the incoming carry being connected directly, or only via an inverter, to the carry output under control of a carry propagate signal
    • 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/17704Logic 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 the logic functions being realised by the interconnection of rows and columns
    • 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/17724Structural details of logic blocks
    • H03K19/17732Macroblocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4812Multiplexers

Abstract

(57)【要約】 組合せ関数発生器および蓄積素子の複数ブロックを含みプログラム可能な相互配線構造で相互接続したプログラマブルロジックデバイスは、桁上げ機能発生用論理を用いる算術演算によく用いられる。多数のビットの処理を要する場合、桁上げ機能は通常大幅な遅れを生じ、高速度で結果を得るには多量の追加素子を要する。この発明は桁上げ機能を高速に最小素子数で行うための専用のハードウェアを論理ブロック内に備える。この発明は、二つのビットに加えるべき桁上げ信号を加算すべき二つのビットの等しくないときはすぐ上位のビットに伝搬できることと、それらビットの一方をそれらビットの等しいときは桁上げ信号として使えることとを利用している。各ビットについて、参照用テーブル関数発生器で桁上げ伝搬信号を発生し、桁上げ信号発生用に専用ハードウェアで用いる。

Description

【発明の詳細な説明】 高速桁上げのためのロジック構造および回路 発明の技術分野 この発明は大規模集積回路に関し、とくにプログラム可能なまたは回路配置融 通性あるロジックデバイスに関する。 背景 プログラマブルロジックデバイス内で行われる機能の一つに算術演算がある。 この発明の譲受人ジリンクス,インコーポレーテッド発売の回路配置融通性ある ロジックアレーなどのデバイスは算術演算のほか多数の論理演算を行うことがで きる。それらデバイスは米国特許第4,870,302号、同第4,706,2 16号、および米国特許出願第07/387,566号に記載してあり、それら 記載を特許番号および特許出願番号を引用してこの出願の明細書に組み入れる。 これらデバイスは汎用機能を意図したものであるので、算術演算は比較的低速で あるほか所要シリコン面積も大きい。 バークナー(Birkner)名義の米国特許第4,124,899号記載の プログラマブルアレーロジックデバイスおよびエルガマルほか(Elgamal et al)名義の米国特許第4,785,745号記載のユーザプログラマ ブルデバイスなど上記以外のプログラマブルロジックデバイスも算術演算用にプ ログラム可能である。これらデバイスにおいては、算術演算ほかの機能すなわち 桁上げ論理を用いる機能の実行の速度は桁上げ信号の伝達の速度により制限され る。また、桁上げ機能を実動化するのに用いる汎用論理が重要である。 ロジックデバイスが算術演算をいかに行うか、とくに遅延の原因は何であるか の理解のために、算術演算機能に関する以下の説明は加算器に焦点を絞って行う 。しかし、この説明は減算器、インクリメンタ、デクリメンタ、アキュムレータ ほか桁上げ論理を用いる回路に該当するよう容易に拡張できる。 また、以下の説明はマルチビット加算器の中間段の動作を中心に行う。最下位 ビットは、それ以下の位のビットからの桁上げ信号があり得ないので特別な場合 である。最上位ビットも、桁上げビットが算術溢れの確定に使えるので特別な場 合である。これら二つの特別な場合はより詳しく後述する。 図1a、1bおよび2を参照して、単一ビット桁上げ伝搬加算器(図1aおよ び図1b)の動作速度、したがって単一ビット加算器の縦続接続から成るマルチ ビット桁上げ伝搬加算器の動作速度が、桁上げ入力端子への信号の桁上げ出力端 子への伝達速度にいかに制約されるかを次に述べる。 図1aに示す単一ビット加算器の動作を定めるブーレ論理式は (1) Si=(Ai@Bi)@Ci (2) Ci+1=Ai・Bi+(Ai@Bi)・Ci ここで@は排他的論理和(XOR)演算を表わし、 ・は論理積(AND)演算を表わし、 +は論理和(OR)演算を表わす。 式(1)は和が単一ビットAiおよびBiの加算に加えてより下位のビットから の桁上げの関数であることを示している。式(1)および(2)の桁上げ伝搬加 算器アルゴリズムは特定ビットに対する和が先行ビットからの桁上げ出力の発生 まで計算できないことを示している。和SiはXORゲートの出力であり、その ゲートの入力、すなわちその一つが桁上げ入力信号Ciから成る入力の各々が有 効になるまで発生できないのである。 また、桁上げ出力Ci+1も、より下位の桁上げビットCiが有効になるまで発生 できない。ここで図2を参照して、桁上げ伝搬加算器の相次ぐ段を通じた桁上げ 信号の伝搬を説明する。第2の加算段Addi+1間のANDゲートはその入力の 一つをXORゲート66の出力から1ゲート分遅延ののちに受ける。しかし、桁 上げ入力信号Ciが予め設定されている(すなわち、Addiは最下位ビットであ る)とすると、ANDゲート67は、AiおよびBiの影響がゲート61、62お よび62を伝達されて、他方の入力すなわちより下位のビットからの桁上げ出力 Ci+1がより下位のビットCiおよび加算すべきより下位のビットAiおよびBiの 桁上げにより発生される前に上記伝達を完了するまでさらに3ゲート分の遅延だ け待つことができよう。また、第2のビットAddi+1の桁上げ出力 Ci+2は、桁上げビットCi+1の発生後さらに2ゲート分だけ遅延を受ける。すな わち、Ai+1およびBi+1についての入力を信号Ci+1に組み合わせてCi+2を発生 するには、Ci+1をANDゲート67およびORゲート70経由で伝達しなけれ ばならない。したがって、第3段への入力のための有効な桁上げ信号Ci+2は、 入力信号AiおよびBiの印加から5ゲート分の遅延時点まで得られない。このよ うに、慣用の桁上げ伝搬加算器の動作速度は桁上げ信号の伝達により制約を受け る。慣用の桁上げ伝搬加算器の伝搬遅延は2n+1ゲート分である。ここでnは 複数ビット加算器内の段数である。 加算はそれ以外の多数の重要な演算の基礎であるので、桁上げ伝搬時間の高速 化により高速加算回路を実現することはコンピュータ産業にとって重要である。 概括的にいうと、構成素子密度および複雑性を犠牲にして桁上げ伝搬速度を確保 するのが通常の手法である。 より高速の桁上げ伝搬を達成する周知のアルゴリズムの一つは桁上げ先見論理 と呼ばれるものである。この桁上げ先見論理を実動化する回路を図3に示す。こ の論理を理解するには二つの新たな変数を導入する必要がある。すなわち、 (3) Pi=Ai@Bi (4) Gi=Ai・Bi 変数Pは、その値が大きいとき桁上げ入力が桁上げ出力に伝搬されるので「桁上 げ伝搬」と呼ばれる。変数Gは、その値が大きいとき加算中にビットにより桁上 げ出力が生ずるので「桁上げ発生」と呼ばれる。これら新たな変数によって式( 1)および(2)は次のとおり変形できる、すなわち (5) Si=Pi@Ci (6) Ci+1=Gi+Pi・Ci 式(6)は、若干の代数の操作を加えて、新たな式すなわち各レベルでの桁上げ ビットが各レベルの加数および最下位の桁上げビットのみに左右される旨の式に 変形するのに使うことができる。図3に示した4ビット加算器において次の式を 実動化できる。すなわち、 (7)(a)Ci=A00=G0 (b)C2=G1+P11=G1+P1+C1 (c)C3=G2+P22=G2+P2(G1+P11) =G2+P21+P211 (d)C4=G3+P33 =G3+P3(G2+P21+P211) =G3+P32+P321+P3211iおよびPiの各々は式(3)および(4)に示されるとおりAiおよびBiのみ の関数であり、先行の桁上げ値の関数ではない。また、式(7)(b)に示され るとおり、C2はG1、P1およびC1の関数として計算され、式(7)(c)に示 されるとおり、C3はG2、P2およびC2の関数として計算される。しかし、C2 はC1によって解かれているので、C3もC1によって解くことができる。式(7 )(d)およびより一般的な式(6)を注意深くみると、Ci+1の各々がいくつ かのGi、PiおよびC1の関数であることが明らかになろう。図3にみられると おり、より下位のビットの隣接上位ビットへの印加は和の計算だけのためであっ て桁上げビットの計算のためではない。各桁上げビットはいくつかのGi、Piお よびC1の関数であるので最下位ビット以外のビットの桁上げ出力には左右され ない。このように、桁上げ先見回路の桁上げ伝搬遅延は加算対象のビットの数に は左右されない。 図3および図1aをさらに参照すると、入力信号(AおよびB)の印加から一 つの加算回路段の発生出力(Gi)および伝搬出力(Pi)への有効出力信号出現 までの遅延は1ゲート分(図1aから認識できる)である。図3において桁上げ 先見回路の桁上げ回復部によって加わる遅延は2ゲート分であり、したがって、 加算器への入力信号印加から最後の桁上げビット発生までの遅延は3ゲート分と なる。この関係は加算対象のビットの数には左右されない。複数ビット加算回路 については、遅延は慣用の桁上げ伝搬加算器の遅延よりも大幅に小さくなる。し かし、段数の増加とともに回路素子数が大幅に増加する。桁上げ先見論理は、複 数ビット加算器の1段の実動化に慣用の桁上げ伝搬加算器よりもずっと多い素子 数を要する。すなわち、桁上げ伝搬の高速化が素子の高密度化を要することが上 の説明から理解されよう。 図4は加算回路を実動化するための回路素子のもう一つの例を示す。図4の加 算回路は非常に高速であるが図3の加算回路と同様に多数の回路素子を用いてい る。この例においても、高速桁上げ論理は素子の高密度化を伴っている。 カリフォルニア州95124,サンホゼ,ロジックドライブ2100所在のジ リンクス,インコーポレーテッド1989年発行のジリンクス社「プログラマブ ルゲートアレーデータブック」第6−30頁乃至第6−44頁には、従来の同社 製プログラマブルロジックデバイスに実動化可能な種々の加算器および計数器が 示してある。上記ジリンクス社データブックの上記頁を引用してその記載をこの 明細書に組み入れる。同データブックの著作権者であるジリンクス,インコーポ レーテッドは同データブックの上記頁の複写については何ら異存はないが、それ 以外については著作権の権利を留保する。図4の加算回路は上記ジリンクス社デ ータブックの第6−30頁に示してある。図5は計数器を示し、同データブック の第6−34頁に示してある。すなわち、図4および図5はこれまでのジリンク ス社製品で行われる算術演算の応用を示す。これらジリンクス社製品では、和の 計算には一つの関数発生器が必要となり、桁上げ関数の計算にはもう一つの関数 発生器が必要となる。これら二つの関数発生器は、ジリンクス社製の慣用の回路 配置融通性あるロジックアレーの一つの論理ブロックに通常は組み入れられてい る。 このように、図4および図5の加算回路においても、これら以外のジリンクス 社製の従来の加算回路においても、加算器または計数器の各段を実動化するには 少なくとも二つの関数発生器が必要になる。 図6cの真数表は加算対象の二つの単一ビット、すなわち桁上げ入力ビットお よび桁上げ出力ビットの間の論理関係を示す。この真数表を注意深く分析すると 有用なパターンが得られる。AとBとが等しいとき(すなわち1、2、7および 8行目)は、桁上げ出力CoutビットはAおよびBの値である。AとBとが等し くないとき(3〜6行目)は、桁上げ出力Coutビットの値は桁上げ入力ビット Cinの値である。このパターンを等価ブーレ論理式は次のように表わす。 すなわち、 図6aに示した回路は式(10)を実動化する。この回路は二つの条件を満足す る。AとBとが等しくないときは、桁上げ入力端子の信号が桁上げ出力端子に送 られ、AとBとが等しいときは、Aの信号が桁上げ出力端子に送られる。図6a に示すとおり、加算対象の二つの単一ビットすなわちAおよびBはXORゲート 51の二つの入力端子に加えられる。AとBとが等しい場合は、XORゲート5 1からのロウ出力信号がパストランジスタT1をオンにしパストランジスタT2 をオフにし、Aから桁上げ出力端子COUTに信号を通過させる。AとBとが等し くない場合は、XORゲート51の出力はハイとなり、パストランジスタT2を オンにしパストランジスタT1をオフにする。これによって、桁上げ入力端子CIN の信号を桁上げ出力端子COUTに通過させる。 図7aは全加算器を示す。図6bおよび図7bは、図6aおよび図7aの回路 の代表的表示をそれぞれ示す。図6aおよび図7aのインバータおよびトランジ スタは図6bおよび7bではマルチプレクサMとして表示してある。 図2と図7aとの比較によって、上述の高速桁上げ論理が慣用の桁上げ伝搬加 算器よりも高速の桁上げ信号伝搬を提供することが明らかになろう。図7aはこ の発明による全加算器の回路構成の一つの段を示す。桁上げ伝搬は図6aについ て上に述べたとおり制御される。上述のとおり、また図2に図示のとおり、慣用 の桁上げ伝搬加算器の伝搬遅延は、加算対象ビット対あたり1ANDゲート分プ ラス1ORゲート分プラス1XORゲート分である。これに対して、この発明に よる回路の最悪の場合の遅延は、図7aに示すとおり、入力信号の一方、すなわ ちこの場合はBiが桁上げ出力信号まで伝搬されたとき、すなわちこの信号がX ORゲート91プラスインバータ92を通過しパストランジスタ93をオンにし たときに生ずる。この状態は加算対象のビット全体について同時に生ずる。桁上 げ信号がトランジスタ94などトランジスタの長い列を伝搬する際の伝搬遅延は 加算結果の発生のためのゲート遅延に比べてごく小さい追加遅延になるだけであ る。図7aに示したような四つの全加算器を縦続接続すると、最悪の場合の出力 信号CoutはXORゲート遅延プラスインバータ遅延プラス四つのパストランジ スタのごく小さい伝搬遅延ののちに発生する。 発明の概要 この発明によると、回路配置融通性ある論理ブロックを有し高速桁上げ論理を 実動化する回路を備えるプログラマブルロジックデバイスを提供できる。加算器 、減算器、累算器およびこれら以外の機能回路すなわち桁上げ論理を用いた回路 を実動化する際にはこの高速桁上げ論理回路が有用である。高速桁上げ通路は回 路配置融通性あるロジックアレー内の専用ハードウェアおよび専用相互配線回路 で実現でき、桁上げ信号発生のための桁上げ伝搬信号はプログラム可能な関数発 生器で発生できる。この専用桁上げ通路回路は桁上げ信号の高速伝搬と桁上げ論 理利用の論理機能の高密度化を可能にする。桁上げ伝搬信号は和の発生にも用い る。二つの実施例、すなわち和をプログラム可能な関数発生器で発生するものと 、専用XORゲートで発生するものとを説明する。 一つの実施例においては、桁上げ論理を用いた回路は従来技術の回路よりも約 4倍高速であり、約半数の論理ブロックで実現可能であり、汎用ロジック資源を 他の機能に振り向けることを可能にする。また、一つの実施例は、定数と変数と の間の加算または減算をその定数の提供のための相互配線回路を用いることなく 可能にする。 この発明は、二つの論理的に等価の桁上げ機能、すなわち、 (8) Ci+1=(Ai@Bi)・(Ci)+(Ai@Bi)・Bi (9) Ci+1=(Ai@Bi)・(Ci)+(Ai@Bi)・Ai の一つのブーレ関数簡略化を利用する。 高速桁上げ通路は上記Ci関数を受け上記Ci+1関数を発生する。上記式のAi およびBiのXOR関数は参照用テーブル関数発生器から発生する。桁上げ通路 は、一つのビットの桁上げ出力を次のビットの桁上げ入力に接続した状態でアレ ーの形に実動化する。高速桁上げ通路はこのようにして実現される。一つの実施 例では、和の関数Siを1ビットあたり二つ以上の関数発生器を要することなく 発生できるようにXORゲートも備えてある。 桁上げ論理ハードウェアを汎用論理ブロックと関連して回路配置融通性ある論 理アレーに組み入れたときは、この高速桁上げ論理回路には、近接論理ブロック の桁上げ入力と桁上げ出力との間に機能向上用の専用相互配線構造を備えるのが 好ましい。 図面の簡単な説明 図1aは慣用の全加算器の一つの段を示す概略図である。 図1bは図1aに示した慣用の全加算器段の記号である。 図2は互いに縦続接続した二つの全加算器の概略図である。 図3は桁上げ先見論理を備える4ビット加算器の概略図である。 図4は従来技術の加算器の概略図である。 図5は従来技術の計数器の概略図である。 図6aはこの発明による桁上げ論理1ビット発生回路の概略図であり、図6b は図6aの回路の代替的表示を示す。 図6cは変数A、B、CinおよびCoutの間の関係を示す真数表である。 図7aはこの発明による桁上げ論理を用いた全加算器の1ビット発生用の回路 の概略図であり、図7bは図7aの回路の代替的表示を示す。 図8aはジリンクス,インコーポレーテッド製XC40000デバイスに用い た桁上げ論理の算術演算部の単純化した図を示す。 図8bはこの発明による桁上げ論理の算術演算部の単純化した図を示す。 図9aは図8aおよび図8bの関数発生器の参照用テーブル実施例を示す。 図9bは図8aおよび図8bの関数発生器のもう一つの参照用テーブル実施例 を示す。 図9cは図9aまたは図9bの参照用テーブル関数発生器についてのカルノー マップを示す。 図9dは図9aまたは図9bの参照用テーブル関数発生器により実動化できる 216論理関数の一つを示す。 図10はジリンクス社製XC4000系デバイスに用いてある二段保有論理ブ ロック、すなわち図8aの回路を含む論理ブロックの概略図を示す。 図11aは専用桁上げ論理相互配線回路の一つの実施例を示す論理アレーの概 略図である。 図11bはプログラム可能な相互配線により実動化した桁上げ相互配線回路の 一つの例を示す概略図である。 図11cは専用桁上げ論理相互配線回路の一実施例を示す概略図である。 図12aはこの発明による回路配置融通性ある論理ブロック(CLB)であっ て、和の計算用にもう一つのCLBと組み合わせた場合に図8bの回路を実動化 する4段式のCLBの概略図を示す。 図12bはこの発明によるもう一つのCLBであって、和の計算用に専用ハー ドウェアを用いて図8bの回路を実動化したCLBを示す。 図12cは図12aまたは図12bのCLBと、CLBのアレーの相互接続用 の相互接続経路とを結合するタイルを示す。 図12dは水平方向に互いに組み合わせた図12cのタイル二つを示す。 図12eは図12cに示したようなコアタイルと外部接続用端タイルおよび角 タイルとを含むFPGAチップを示す。 詳細な説明 図8aは回路配置融通性ある論理ブロック内で桁上げ論理を実動化する従来の 回路を示す。図8bはこの発明による回路を示す。この発明によると、算術演算 論理はプログラム可能なデバイスおよびハードウェアの組合せに実動化できる。 従来技術のデバイスの場合と同様に、桁上げ通路は、高速度達成のために図8a におけるMUX913および図8bにおけるMUX923を含むハードウェアで 実動化する。図8aに示すとおり、入力信号を受けるためのデータ変形機能回路 911およびXORゲート912も専用ハードウェアで実動化し、和の計算のた めの追加のデータ変形機能回路914および917およびXORゲート915お よび917はプログラム可能な関数発生器902に実動化する。 図8bにおいて、データ変形回路921およびXORゲート922は機能発生 器903に実動化し、和の計算のためのXORゲート926は、プログラム可能 な関数発生器または専用XORゲートであるユニット904に実動化する。ジリンクス社XC4000系デバイスに実動化した桁上げ論理 図10、11a、11bおよび11cは図8aの構造を実動化するのにジリン クス社製XC4000系製品で用いている回路の回路図である。 図10において、高速桁上げ論理は、多用途回路の回路配置に用いられる参照 用テーブル関数発生器、マルチプレクサ、メモリセルおよび追加の論理ゲートを 含む回路に組み入れてある。 参照用テーブル関数発生器の動作を図9a−9dに関連して説明する。図9a は四つの入力信号の可能性ある16の組合せの一つに応答して出力信号を発生で きる16ビット参照用テーブルを示す。入力信号AおよびBはこの16ビット参 照用テーブル内の四つのコラムのどれか一つを選択するようにXデコーダを制御 する。入力信号CおよびDはこの16ビット参照用テーブルの四つのロウのどれ か一つを選択するようにYデコーダ制御する。この16ビット参照用テーブルは それぞれ選択されたロウおよびコラムの交点のビットを代表する出力信号を生ず る。そのような交点は16個あり、したがってそのようなビットも16個ある。 それら16個のビットで表現できる機能の組合せは216通りあり得る。したがっ て、参照用テーブル内の16ビットでシミュレートすべきものがNORゲートで ある場合は、その参照用テーブル対応のカルノーマップは図9cに示すとおりに なる。図9cにおいて、1番目のロウ(A=0、B=0を表わす)および1番目 のコラム(C=0、D=0を表わす)の交点のビット以外のビットはすべて“0 ”である。この16ビット参照用テーブルで発生すべき機能が使用頻度のより低 いものである場合(たとえば、A=0、B=0、C=0、D=0に対する出力信 号が“1”であることを要求される場合)、2進符号「1」が2番目のロウと1 番目のコラムとの交点に格納される。A=0、B=0、C=0、D=0のときお よびA=1、B=0、C=0、D=0のときの両方について2進符号「1」が要 求される場合は、2進符号「1」が1番目のコラムと1番目および2番目のロウ との交点の各々に格納される。参照用テーブルの上記ローディングで表される論 理回路は図9dに示すとおりである。すなわち、図9aの参照用テーブルは216 個の論理機能の任意の一つの精密で単純な実動化を表わす。 図9bは16個の選択ビットの任意の一つを生ずるためのもう一つの構成を示 す。左側に「16個の選択ビット」と表示した縦方向コラムのレジスタ0−15 の各々は2進符号1または0の被選択信号を含む。信号A、B、CおよびDおよ びそれらの複数の適当な組合せを選択することにより、16個の選択ビットレジ スタの16個の位置の特定の一つに格納されている特定のビットが出力リード線 に伝送される。例えば、「1」レジスタ内のビットを出力リード線に伝送するに は、そのように表示されリード線に信号A、B、C、Dを加える。上記16個の 選択ビットレジスタ内の16個の位置の中の「15」と表示された信号を出力リ 用いて216個の論理機能の任意の一つを実動化できる。 図10について述べると、入力端子F1およびF2から入力信号A0およびB0 がそれぞれ供給される。関数発生器F、XNORゲートX101、メモリセルC L0、CL1、マルチプレクサM2、および第3の入力端子F3は、選択的に加 算器または減算器として機能できるように組み合わされて動作する。関係発生器 Fからの出力信号S0を受ける蓄積セル(図示してない)を有するデバイスによ り、上記組合せ回路を累算器または計数器として動作可能にすることもできる。 XNORゲートX101の一方の入力はM2の出力であり、他方の入力はNOR ゲートN201の出力である。NORゲートN201への二つの入力は入力端子 F2への信号およびCL7内の値の補数である。この回路をマルチビット加算器 内の中間段として機能させるために、CL7はロウの信号をNORゲートN20 1に入力するように設定してある。これによって、NORゲートN201の出力 は入力端子F2への信号になる。 上記回路機能をインクリメントモードにするかデクリメントモードにするかを 制御するために、マルチプレクサM2がNORゲートN201からの信号をXN ORゲートX101で反転するか否かを定める。M2の供給する値はCL0によ る制御の下にF3またはCL1から供給される。CL1は静的な値の供給に通常 用いられ、F3は動的に変動する信号を供給する。 M2により上記回路がインクリメントモードで機能している場合は、信号B0 がXNORゲートX101を通じてXNORゲートX103に伝搬される。XN ORゲートの真数表は、XNORゲートの一方の端子への入力信号が他方の端子 への信号がハイの場合にXNORゲートの出力に送られることを示している。し たがって、M2の出力がハイの場合は、桁上げ論理はインクリメントモードで機 能する。しかし、M2の出力がロウの場合は、信号B0はXNORゲートX10 1により反転され、この回路の桁上げ論理はデクリメントモードで機能する。ま た、インクリメントモード/デクリメントモード選択用の制御信号がF3端子か ら供給される場合は、関数発生器Fに実動化された和論理が上記制御どおりイン クリメントモードまたはデクリメントモードで機能するように、その制御信号を 関数発生器Fにも加える。 この回路を加算器またはインクリメンタとして用いマルチプレクサM2がハイ の信号を発生し入力B0がXNORゲートX103の入力に伝達されている状態 をまず考える。 メモリセルの第2のグループCL2−CL5およびCL7が図10の回路にい くつかの機能を生じさせるように共動する。その回路をマルチビット加算器の中 間段として動作させるには、メモリセルCL3、CL4およびCL5をハイに設 定する。これによって、組合せX103およびI104はXORゲート(図7a のXORゲート91と等価)として動作し、XNORゲートX103の出力でイ ンバータI104を通過させる。メモリセルCL4をハイに設定することによっ て、端子F1からの信号をライン105に供給する。この回路配置において、図 10のF段は図6aおよび図7aの桁上げ回路に等価となる。F1からの信号は 、トランジスタT102(図7aのトランジスタ93と等価)がA0とB0との等 しくなったのに応答してオンになった場合はC1に伝搬される。メモリセルCL 5をハイに設定することによって、セルCL7内の値がライン105に同時に伝 搬されることを防ぐ。 メモリセルCL3をロウに設定することによって、トランジスタT101およ びT102はメモリセルCL2内の信号で制御される。CL2がハイであれば、 トランジスタT101はオンとなり、C0はC1に伝搬される。メモリセルCL2 およびCL3のこの回路配置により、桁上げ信号C0がF段の桁上げ論理をスキ ップ可能になる。特定の段の桁上げ論理をこのようにスキップすることは、レイ アウトの制約のために論理ブロック内の特定の段を加算器(または計数器など) の一つの段以外の何れかの用途に使う必要が生じた場合に有用になり得る。 メモリセルCL2をロウに設定した場合(CL3もロウのまま)は、T101 はオフになりT102はオンになる。T102がオンのときは、ライン105の 信号はC0に伝搬される。ライン105への信号は、インバータI105および I106とともに3:1マルチプレクサM101を構成するメモリセルCL4、 CL5およびCL7に制御される。マルチプレクサM101は三つの信号、すな 7内の信号のどれをライン105に出力するかを制御する。端子F3への信号が マルチプレクサM2またはマルチプレクサM101に用いられることに注意され たい。 上述のとおり、F段がマルチビット加算器内の中間段として動作する場合は、 F1端子への信号をライン105に出力するようにメモリセルをプログラムする 。併せて、XNORゲートX103の供給する値、すなわちラインF1およびF 2への入力A0およびB0の関数になるように設定された値が桁上げ入力信号C0 とF1に生ずる値とのいずれを伝搬するかを決めるように、CL3はハイに設定 してある。 F段がマルチビット加算器で最下位ビットを加算するために、論理零を桁上げ 入力端子Carry InTか桁上げ入力端子Carry InBかの一方に加え 信号伝搬のためにメモリセルを設定することによって桁上げ入力を零にプリセッ トすることができる。(この論理零の信号の発生は図11aに関連して後述する 。) G段の桁上げ入力信号C0のプリセットのために、F3反転への信号、CL7 内の信号またはF1への信号のいずれかを使うこともできる。F3反転の信号は CL5をハイにCL4をロウに設定することによってライン105への出力用に 選択され、CL7の信号はCL4およびCL5の両方の信号をロウに設定するこ とによって選択される。F1の入力端子は最低次ビットがG段で計算されるとき にC1信号をプリセットするのに使うこともできる。F1はF関数発生器へのF 1入力が不要のとき用いることができる。F1をC1プリセット用の入力として 用いるために、メモリセルCL4およびCL5にハイの信号を格納する。また、 CL3をロウにCL2をロウに設定してトランジスタT101をオフにするとと もにトランジスタT102をオンにしてライン105の信号がC1に伝搬するよ うにする。 メモリセルCL7は3:1マルチプレクサM101の一部として機能するほか はNORゲートN201およびN202への一つの入力を制御する。F段が端子 F1およびF2への値A0およびB0の加算のためのマルチビット加算器の中の中 間段として機能するようにするために、CL7をハイに設定してN201の出力 が入力端子F2への信号であるようにする。F1への入力値A0に定数を加える ためにCL7はロウに設定してある。これによってN201への入力がハイにな り、その出力がロウになり、加数がマルチプレクサM2に選択されるようにする 。メモリセルCL0は、CL1の値またはF3の値をXNORゲートX101に 選択的に印加し、このゲートX101によりX103が端子F1の値A0に加え るべき出力を発生する。このように、CL7をロウにプログラムすることによっ て、相互配線資源、すなわち他の論理ブロック(図示してない)への信号供給に 必要となる端子F2の接続を受ける相互配線資源を用いることなく、1ビットを 入力値に加えるべき一定値としてプログラムすることができる。 図10のメモリセルの論理値のすべての組合せが許容できるのではない。例え ば、M101内では、セルCL4がハイでメモリセルCL5がロウの場合は、そ れらハイおよびロウの信号の両方がライン105に同時に入力されることがあり 得るので、コンテンションが生じ得る。このようなコンテンションを防ぐために 、メモリセルプログラム用のソフトウェアを上記組合せを防止するようにプログ ラムする。または、ライン105に出力すべき二つの信号の一方だけを選択する ように余分のメモリセルを加えることもできる。 上述のとおり、二つの段すなわち各々がマルチビット加算器の1ビットを代表 するF段およびG段を図10に示すとおり互いに縦続接続する。このようにして 一つの論理ブロックで、桁上げ論理を用いるマルチビット機能の中の2つのビッ トを実動化できる。この構成は、これまでのジリンクス社製デバイスに比べて、 桁上げ論理を使う機能の実動化に必要な回路素子の密度を大幅に改善する。これ と対照的に、図5に示すとおり、従来技術の回路では論理ブロックあたり1ビッ トだけの密度でマルチビット計数器を実現している。 図10のG段について述べると、このG段のマルチプレクサM3がF段の桁上 げ出力信号C1を二つのインバータI107およびI108によるバッファを経 て受ける。加算器では、桁上げ出力信号C1を端子G4およびG1にそれぞれ現 われている加数A1およびB1とG関数発生器で組み合わせて和ビットS1を計算 する。F段の桁上げ出力信号C1も、G段の桁上げ論理の回路配置条件に応じて 、トランジスタT103によるG段の桁上げ出力Ci+2への伝搬に利用できる。 G段の桁上げ論理の大部分はF段の桁上げ論理と同じである。例えば、G段の XNORゲートX102はF段のXNORゲートX101と相似的に機能して同 じマルチプレクサM2の出力による制御を受け、G段が加算器またはインクリメ ンタとして機能するか減算器またはデクリメンタとして機能するかを決める。ま た、G段のNORゲートN202はF段のNORゲートN201、すなわちメモ リセルCL7による一方の入力の制御をG段の加数がそのG段の入力端子に接続 してある相互配線資源の使用を要することなく一定値に強制的に収まるように行 うNORゲートN201として機能する。 しかし、F段のメモリセルCL2およびCL3に対して、G段はただ1個のメ モリセルCL6を備える。CL6はCL3と同様に機能し、G段がマルチビット 加算器内の中間段として機能するか桁上げ信号がG段の桁上げ論理をバイパスす るかを制御する。CL6がハイの状態では、トランジスタT105はオンになり 、G段はマルチビット加算器の中間段として機能する。CL6がロウの状態では 、ロウの信号がトランジスタT106を経てインバータT110に印加され、ト ランジスタT103がオンになる(T104はオフとなる)。T103がオンに なったことにより、C1における桁上げ信号はG段の桁上げ論理をバイパスする ことができる。F段の場合と同様に、G段または論理ブロック内の任意の特定の 段をバイパスすることは、G段を他の機能のために用いる設計レイアウトによっ て要求され得る。 G段内のマルチプレクサM3およびM4は互いに組み合わせてF段のマルチプ レクサM1およびM2とは異なった使い方をする。F段のマルチプレクサM2は G段の桁上げ論理およびF段の桁上げ論理がインクリメントモードで機能するか デクリメントモードで機能するかを制御する。しかし、G段はそれ自身のマルチ プレクサM4を備え、それによって、関数発生器G内の和の論理がインクリメン トモードおよびデクリメントモードのどちらで動作するかを制御する。M4は、 その入力の一つG3が対応入力F3の場合と同様に同じ相互配線回路(図示して ない)、すなわちF機能発生器のインクリメントモード/デクリメントモードを 制御する回路に接続されている。 G段のマルチプレクサM3およびM4への他の入力は、同時に必要となる信号 が同一のマルチプレクサに入力されることがないように分配される。マルチビッ ト加算器内の中間段として動作するには、G関数発生器はインクリメント・デク リメントモード間の動作モードの信号制御とより下位のビットからの桁上げ信号 との両方を必要とする。したがって、F3へのインクリメント/デクリメントモ ード信号はG3経由でマルチプレクサM4にも印加し、下位ビットからの桁上げ 出力信号はマルチプレクサM3に送り、これら両方の信号がG関数発生器に同時 に供給されるようにする。 さらに、算術溢れの検出のために後述のとおり信号C1およびC0は比較する必 要があり、したがって同時に供給されている必要がある。そこで、信号C1は一 方のマルチプレクサM3に入力され信号C0は他方のマルチプレクサM4に入力 され、これら両信号がG関数発生器に一緒に供給されるようにしている。 互いに縦続接続した二つの段を含む図10の回路は先行ブロックにおける最上 位ビット処理の際の算術溢れをG段で検出する能力を備える。算術溢れの検出を 、符号ビットの桁上げと最上位ビットの桁上げとの相違の認識によって行うこと は当業者に周知である。したがって、算術溢れ状態の検出は符号ビットの桁上げ と最上位ビットの桁上げとのXOR関数の計算によって達成する。図10の回路 では、最上位ビットの桁上げはC0すなわちF段への桁上げ入力に供給された符 号ビットの桁上げ(F段へのA0およびB0信号とC0信号との関数)はC1すなわ ちF段への桁上げ出力に供給される。C0はI120およびI121を経てG段 内のマルチプレクサM4に送られる。C1はI107およびI108を経てG段 内のマルチプレクサM3に送られる。算術溢れ検出用に図10の回路を回路配置 するために、M3はC1をG関数発生器に経路づけするようにプログラムし、M 4はC0をG関数発生器に経路づけするようにプログラムする。G関数発生器は C1およびC0のXOR関数、すなわち上述のとおり算術溢れ検出信号であるこの XOR関数を計算するようにプログラムする。 図10の回路はデクリメントでも機能する。デクリメントモードでは、この回 路は計数器をデクリメントするか、または変数から定数を減算するなどの減算を 行う。 図10の回路においては減算の実施にいくつかのモードを用いることができる 。減算の三つの通常のモードは、2の補数モード、1の補数モードおよび符号・ 大きさモードである。 減算の2の補数モードを用いる場合は、最下位ビットの桁上げ入力ビットを論 理1にプリセットする。その最下位ビットをF段から供給する場合は、その最下 位ビットの桁上げ入力を桁上げ入力端子Carry InTまたはCarry InB経由でリセットし、メモリセルMCを信号のC0への伝搬に設定する。プリ セット信号をF段の桁上げ入力端子Carry InBまたはCarry InT に印加するために、プリセット信号をもう一つの論理ブロックのF段で発生し、 図10乃至図12に関連して後述する手段により最下位ビットのF段に供給する 。この信号は上述のとおりF段で発生し、トランジスタT103をオンにトラン ジスタT104をオフにすることによってG段経由で次の論理ブロックに送るこ ともできる。このようにして、プリセット信号発生用のその論理ブロックのG段 内の桁上げ論理はバイパスされる。 最下位ビットをG段で2の補数の減算で供給する場合は、マルチプレクサM1 01の三つの入力の一つをC1の論理1へのプリセットに使えるように、トラン ジスタT101をオフにトランジスタT102をオンにすることもできる。マル チプレクサM101は、F3にロウの信号を印加しCL5をハイにCL4をロウ に設定することによって、論理1をF3端子経由で供給できる。マルチプレクサ M101は、CL7をハイに、CL5をロウに、CL4をロウにそれぞれ設定す ることによって、メモリセルCL7内の格納値として論理1を供給できる。また 、マルチプレクサM101は、ハイの信号をF1に印加し、CL5およびCL4 をハイに設定することによって、F1入力端子経由で論理1を供給できる。 上記1の補数の減算または符号・大きさ減算を行うときは、最下位ビットの桁 上げ入力は論理0に通常プリセットする。この1の補数の減算の場合は、符号ビ ットの桁上げ出力は最終解の発生のために最下位ビットに加えなければならない 。 この動作は、最下位ビットの桁上げ入力をプリセットするのではなく、符号ビッ トの桁上げ出力端子を最下位ビットの桁上げ入力端子に接続することによって達 成できる。符号ビットの桁上げ出力は和出力に加算することもできる。最下位ビ ットをF段で計算する場合は、桁上げ入力端子Carry InTまたはCar ry InBに論理0を印加しメモリセルMCを桁上げ入力C0への信号伝搬に設 定することによって、桁上げ入力C0を0にプリセットする。また、最下位ビッ トをG段で計算する場合は、桁上げ入力C1を上述のとおりマルチプレクサM1 01内の三つの経路の一つ経由で0にプリセットする。F3端子経由で論理0を 供給するために、ハイの信号をF3に印加する(反転されるから)。CL7経由 で論理信号を供給するために、論理0をCL7に入力する。F1経由で論理0を 供給するために、ロウの信号をF1に印加する。 上記2の補数の減算および1の補数の減算の両方については、マルチプレクサ M2の出力はロウに設定しなければならない。符号・大きさ減算については、M 2の出力は二つの数の符号が同じであればロウに設定する。二つの数の符号が互 いに反対であればM2の出力はハイに設定する。マルチビット加算器に用いた図10の回路 図11aを参照してマルチビット加算器を説明する。各々が図10に示すよう な回路を含むブロック1乃至4の順序づけしたアレーを、図10にCi+2で示し 図11aの各論理ブロック内にCarry Outで示した桁上げ出力が、これ ら両図にCarry InBで示した上側論理ブロックの桁上げ入力端子と両図 にCarry InTで示した下側論理ブロックの桁上げ入力端子とに接続され るように構成する。各論理ブロックは上側論理ブロックから(端子CarryI nTに)または下側論理ブロックから(端子Carry InBに)に桁上げ信号 を選択的に受けることができる。この論理ブロックにより桁上げ信号の選択的受 信が上側論理ブロックからか下側論理ブロックからかはメモリセルMCが制御す る。MCがハイの状態にあればトランジスタT152がオンとなり、下側論理ブ ロックからの桁上げ信号を桁上げ信号入力端子Carry InBに受ける。M Cがロウの状態では、トランジスタT151がオンになり、上側論理ブロックか らの桁上げ信号を桁上げ信号入力端子Carry InTに受ける。例えば、 ラインL112はブロック2の桁上げ信号出力端子をブロック1の桁上げ信号入 力端子Carry InBおよびブロック3の桁上げ信号入力端子Carry InTに接続する。同様に、ラインL113はブロック4の桁上げ信号出力端子 をブロック3の桁上げ信号入力端子Carry InBおよびブロック5(図示 してない)の桁上げ信号入力端子Carry InTに接続する。このように、 ブロック3は桁上げ信号をブロック4からラインL113経由で端子Carry InBに、またブロック2からラインL113経由で端子Carry InTに 受ける。メモリセルMCのプログラムのしかたによって、トランジスタT151 とT152のどちらがオンになり、桁上げ信号のどれがブロック3内部回路で用 いられるかが決まる。 図10に示すとおり、長いラインで信号品質を維持するために2ビットあたり さらに2ゲート分の遅延がインバータI101およびI102によって加わる( 4ビットあたりおよそ4ゲート分の遅延)。これと対照的に、図2に示したよう な慣用の四段縦続接続桁上げ伝搬全加算器の出力信号COUTは、一つのXORゲ ートと四つのANDゲートと四つのORゲートと(9ゲート分の遅延)を通過す るまで得られない。また、図3に示したような参照用桁上げ回路が高速桁上げ伝 搬の達成のために回路素子の高密度化を要するのに対して、図10の回路は慣用 の桁上げ伝搬加算器の場合よりも多い回路素子は必要としない。 桁上げ専用相互配線回路の主な利点はプログラム可能な桁上げ相互配線回路よ りもずっと高速で動作することである。この性能向上はプログラム可能な相互配 線回路の融通性を犠牲にして達成している。しかし、図11aに示した専用配線 回路は桁上げ信号をアレー経由の二つの方向のいずれかに伝搬できる点において 融通性がある。 図11bは桁上げ信号をアレー経由で選択方向に伝搬する専用配線回路を用い ない配線構造を示す。図11はマルチビット加算器またはそれ以外で桁上げ論理 利用のマルチビット機能回路を形成する論理ブロックを相互接続する配線構造が 必要となるメモリセル・相互接続の組の一部だけを示す。図11において、論理 ブロック11−2の出力C0は、メモリセルM11−2による制御の下に論理ブ ロック11−2の出力と配線ライン11−aとを接続する対応トランジスタをオ ンにすることによって、論理ブロック11−2または論理ブロック11−3に接 続できる。論理ブロック11−2の出力Coを論理ブロック11−1の入力CIB に接続する必要がある場合は、対応トランジスタをオンにしてライン11−aへ の信号をブロック11−1の端子CIBに伝搬するようにメモリセルM11−1を プログラムする。出力Coを論理ブロック11−3に接続する場合は、メモリセ ルM11−3をオンにして配線ライン11−aを論理ブロック11−3の入力CIT に接続する。これら以外のメモリセル(図示してない)も一つの論理ブロック から次のブロックへの信号伝搬の方向を制御するよう同様にプログラムできる。 マルチビット加算器の各段経由の桁上げ信号伝搬方向の制御に融通性を与えるた めには多数のメモリセルが必要になることは容易に理解されよう。 図11cに示したもう一つの回路はより複雑な専用桁上げ相互配線回路である 。この専用配線回路は桁上げ連鎖を任意の長さに蛇行した形で形成することを可 能にする。上記ブロックのいくつかは図11aに示すように、すなわち桁上げ出 力信号を上側論理ブロックおよび下側論理ブロックの両方に伝搬するように回路 配置する。しかし、このアレーの上端部と下端部では回路配置は異にしてある。 すなわち上端部では論理ブロックの桁上げ信号は下側論理ブロックの桁上げ入力 に伝搬するとともに、右側論理ブロックの桁上げ入力に伝搬する。下端部の各回 路は、論理ブロックの桁上げ出力信号が上側論理ブロックの桁上げ入力に伝搬さ れるとともに右側論理ブロックの桁上げ入力に伝搬されるように回路配置する。 また、下端部回路の各々は上側論理ブロックおよび左側論理ブロックから桁上げ 入力信号を受ける。各論理ブロックのメモリセルMCは、二つの桁上げ入力信号 のいずれの桁上げ入力信号が図11aに関する上述の説明のとおり論理ブロック に受信されるかを制御する。 図11cに示した複雑な専用配線回路は設計レイアウトにより高い融通性を与 える点でとくに有用である。マルチビット加算器もしくはマルチビット計数器、 またはそれら以外のマルチビット算術機能回路は論理ブロックの特定のコラムに 限定される必要はない。例えば、論理ブロックB3、B4、A4およびA3を含 む馬蹄状回路配置の形に8ビット計数器を実動化できる。ここでブロックA3は 最下位ビットおよびそのすぐ上位のビットを含み、A4はさらにその次の上位ビ ットを含み、B4はさらにその次の上位ビットを含み、最後にB3は二つの最上 位ビットを含むものとする。各論理ブロックのメモリセルMC(図10)は、桁 上げ信号を論理ブロックA3のC0から論理ブロックA4のCITへ、論理ブロッ クA4のC0から論理ブロックB4のCIBへ、さらに論理ブロックB4のC0から 論理ブロックB3のCIBへ伝搬する。論理ブロックの内部回路により(図10に 示すとおり)任意の特定ビットの桁上げ論理はバイパスされ得るから、8ビット 計数器(または桁上げ論理を利用したそれ以外の機能回路)は隣接ブロック内に 実現する必要はない。したがって、例えば最下位ビットは論理ブロックA3でな く論理ブロックA2にあり、それ以外の六つのビットは上述の例の場合と同様に ブロックA4、B4、B3にあり得る。ブロックA3内のメモリセルCL2、C L3およびCL4を適切にプログラムすることによって、論理ブロックA2の桁 上げ信号C0は論理ブロックA3の桁上げ論理をバイパスし、論理ブロックA4 のCITに伝搬する。この発明による桁上げ論理回路 図12aは図8bの実施例を実動化する回路配線融通性ある論理ブロックCL Bを示す。この論理ブロックCLBには四つの関数発生器F、G、HおよびJが 含まれる。関数発生器F、G、HおよびJの各々は図9a乃至9dに関連して上 に述べた参照用テーブルを含む。すなわち、各関数発生器は、入力信号F0乃至 F3、G0乃至G3、H0乃至H3、J0乃至J3の任意の関数をそれぞれ供給 する。入力変数AおよびBの算術機能を実動化するために、関数発生器の各々に おいて1ビットを処理する。例えば、最低次の和ビットS0はAおよびBの最低 次ビットから、すなわちF関数発生器内のビットA0およびB0から計算できる。 ビットA0はF関数発生器のFB入力端子および入力端子F0、F1、F2、ま たはF3に供給される。ビットB0はF関数発生器のもう一つの端子に供給され るか、その関数発生器内で他の入力の関数として発生される。加算を行うには、 桁上げ入力ラインCINに論理0を供給する。同様に、ビットA1およびB1はG 関数発生器に供給し、より高次のビットについても同様とする。これら関数発生 器の各々は、図8bのユニット903で示したとおりAおよびBビットのXOR 関数を発生するように適当な参照用テーブルをロードすることによってプログ ラムする(図8bに示すとおり、B入力値は関数発生器の内部でA入力用ライン 以外のラインへの他の入力の関数として発生することもできる。関数発生器は四 つの入力の任意の関数を供給できるのでこれが可能になる)。このように、関数 発生器は任意のデータ変形921を実動化し、対応ビットAiおよびBiのXOR 関数922をそれぞれ発生する。この実施例は算術演算を4ビット演算に限定す るものではない。すなわち、CLBは複数のCLBのアレーの一つとして形成さ れ図示のCLBの上に接続されたCLBでより高次のビットを処理することもで きるからである。 高速桁上げMUX C1、C2、C3およびC4がこれら関数発生器と関連づ けてある。MUX C1は桁上げ入力信号CIN(算術演算が加算であってF関 数発生器が最低次のビットを受けているとき0になる)とB入力信号FBとを受 け、出力信号C1OUTを発生する。MUX C2はC1OUT信号および第2 のB入力信号GBを受けて、出力信号C2OUTを発生する。MUX C3およ びC4は等価的に接続してある。MUX4は論理ブロックCLBから信号COU Tを発生する。関数発生器F、G、HおよびJはそれぞれの出力信号X、Y、Z およびVとしてそれぞれの桁上げ伝搬信号Piをそれぞれ発生する。これらの出 力信号により、図6aに関連して上述したように桁上げMUX C1、C2、C 3およびC4を制御し、累算桁上げ出力関数COUTを供給する。 図10のインバータI101およびI102に関連して上に述べたとおり、桁 上げ信号C0に周期的に電力再供給を行う必要がある。電力再供給バッファの接 続の頻度はこの発明を実施した相互配線アーキテクチャーによって定める。図1 2aに示すとおり、インバータI121およびI122を含む電力再供給バッフ ァは、桁上げ信号通路内の四つのマルチプレクサごとに、あるいはCLB一つご とに配置する。もう一つの実施例では、電力再供給バッファは桁上げ信号通路内 の二つのマルチプレクサごとに設けてあり、したがって、各CLBあたり二つの 再供給バッファが設けてある。もちろん、この発明は一つのCLBが四つの関数 発生器を含むアーキテクチャーに限られない。それ以外に多数の変形が可能であ る。 図12aの実施例は、図8bの和Siを発生するのに、同図に図示のものの近 傍、好ましくはそれの右か左に隣接して配置して示したものと同一のもう一つの CLBを用いている。桁上げ伝搬信号Piを左または右の和CLBに供給するた めに、MUX B1、B2、B3およびB4をそれぞれのメモリセル1乃至5で セットして、桁上げMUX C1、C2、C3およびC4の出力を送出する。メ モリセル3および7はMUX S3およびS1にMUX B3およびB1の出力 を送出させるように同様にセットされる。このようにして、桁上げMUX C1 、C2、C3およびC4の出力が出力ラインXB、YB、ZBおよびVBに生ず る。桁上げCLBの右または左の和CLBにおいては、出力XBはラインFBと 入力F0乃至F3の一つとに接続する。出力Xは入力F0乃至F3の他方の一つ に接続する。関数発生器G、HおよびJへの等価的接続を設ける。和CLBにお いては、関数発生器F、G、HおよびJが互いに連続するビットについての和の 出力を供給する。 図12bは1ビットあたり一つだけの関数発生器を要するこの発明のもう一つ の実施例を示す。図12bのCLBは図12aのものと類似しているが、和の計 算のためのXORゲートS1乃至S4を含む。 図12aの実施例では一つのメモリセル1でMUX B3およびB4の両方を 制御しているが、図12bの実施例ではMUX B4はメモリセル9で制御され 、MUX B3はメモリセル6および7による制御を受ける三入力MUXである 。また、既述のとおり、図12aの実施例では1ビットの桁上げと和とが二つの 互いに別のCLBで計算されるのに対して、図12bの実施例ではXORゲート S1乃至S4が桁上げおよび和の両方を単一のCLB内で計算することを可能に している。したがって、図12bの実施例のほうが算術演算機能の実動化におい てより効率的であり、一方図12aの実施例のほうがより高密度であってPCB あたりのコストが低い。これら以外に多数の変形がもちろん可能である。例えば 、図12bにおいて、メモリセル9でMUX B3を制御し、MUX B4への 一つの制御を供給するようにメモリセル6および7の一つをメモリセル9で置換 してメモリセルを節約することもできる。もう一つの実施例では、一つのメモリ セルで四つのメモリセルB1乃至B4全部の桁上げモードを活性化できる。 図12aおよび12bの実施例において、図10のマルチプレクサM1、M3 およびM4、すなわちマルチプレクサM1、M3およびM4の回路配置のための 関連回路配置メモリセルは必要ないことに注意されたい。また、図10の場合と 対照的に、F0乃至F3などの関数発生器入力は完全に置換可能であることにも 注意されたい。入力信号はこれら入力の任意の選ばれた一つに導くことができ、 後述の相互配線構造経由で信号を経路づけする際に有利になる。図12aおよび 12bにおいて、いずれのデータ変形論理(図8bのデータ変形ユニット921 を見よ)もユーザに選択可能であり、算術演算入力の特定のピンへの入力の必要 性によって制約されない。このように、データ設計を経路づけするソフトウェア はより容易に経路を見出すことができ、その経路は通常はより短縮される。さら に、図8bに示したこの発明のデバイスを図8aのデバイスと比較してみると、 図8aのデバイスは、Ai、BiおよびCi入力が関数発生器902に供給され、 それによって追加入力数を1に制限することを必要とする。これと対照的に、図 8bの実施例はデータ変形機能921内に三つの変数の任意の関数を収容できる 。和Siをもう一つの関数発生器904で計算する場合は、その関数発生器はデ ータ変形領域927において二つの追加入力の任意の関数により上記Si関数を 変形できる。追加の機能 図12aまたは12bの桁上げマルチプレクサC1乃至C4は、算術演算にお ける桁上げ機能に使用中でない場合は、ANDまたはOR機能ほかの機能の発生 に使うことができる。例えば、図12aのラインFBに論理0を加えることによ って、F機能発生器のX出力信号と桁上げ入力信号CINとのAND関数を発生 するようにマルチプレクサC1をプログラムする。また、ラインFBに論理1を 加えることによって、X出力信号の補数と桁上げ入力信号CINとのOR関数を 発生するようにマルチプレクサC1をプログラムする。桁上げ回路を用い得る経路づけアーキテクチャー 一つのCLBからもう一つのCLBへの信号経路付与のアーキテクチャーを図 12cおよび12dに示す。図12cはロジックと信号経路とを組み合わせるタ イルを示す。図12dは水平方向に互いに隣接する二つのタイルTILE1,1お よびTILE2,1、すなわち図12eに示したようにチップ形成の際に互いに接 続される二つの隣接タイルを示す。TILE1,1において右に延びるラインはT ILE2,1において左に延びるラインと一線上に配置し互いに接続する。図12 cのコアタイルは、タイルの上端および下端に設けたラインを含む。互いに重ね るときは、これら上端ラインおよび下端ラインは互いに接続する。完全集積化回 路チップでは、図12cのタイルは組み合わされて図12eに図示の構成、すな わち素子Cがコアタイルを含み、素子N、S、EおよびWがチップの入力出力用 の北、南、東および西端タイルを含み、素子NW、NE、SWおよびSEが追加 のチップ入力出力用の角タイルを含む図12e図示の構成を形成する。DSおよ びDCなどの除算器は互いに隣接する導体ラインをプログラム可能な形で接続状 態または非接続状態にすることを可能にする。 図12cについて述べると、図12aまたは12bのCLBが図の中央近傍に 示してある。図12aおよび12bで左側にあるCLK経由の入力ラインJBは 図12cのCLBの左側に対応して配置してある。簡略化のために、ラインJF 、FOおよびCLKだけに符号を付けてある。図12aおよび12bの場合と同 様に、桁上げ入力ラインCINが図面の最下部からCLBに延び桁上げ出力ライ ンCOUTが図面の最上部から延びる。X経由の出力線VBは図12aおよび1 2bならびに図12cのCLBの右から延びている。図12cにおいては、ライ ンVBおよびXのみに符号をつけてある。図12cには24本の入力選択ライン M0乃至M23も示してあり、簡略化のためそのうちのM23のみに符号をつけ てある。ラインM0乃至M23は北、南、東および西側のタイルからの入力信号 を選択してCLBへの入力とする。図12cには多数の小さい白マルが示してあ る。これら白マルの各々はプログラム可能な相互接続点PIP、すなわち円内で 交叉する水平ラインおよび垂直ラインを電気的に接続するように、1個のトラン ジスタ、数個のトランジスタ、アンチヒューズ、EPROMセルなどの手段によ りプログラムできるPIPを表わす。簡略化のために、PIP 1つだけに符号 をつけてある。図12cには黒マルでそれぞれ表示した固定接続も示してある。 X経由のCLB出力ラインVBはPIPによりそれらラインの一つ、例えば固定 接続を有するQOに、プログラム可能な形で接続できる。 図12dを参照すると、タイルTILE1,1内のCLBI1,1のF関数発生器X の出力に生ずる伝搬信号PiはPIPx1,1,1により直接相互接続ラインQ01,1す なわちタイルTILE2,1に延びるQ01,1に接続できるとともに、PIPF04,2, 1 によりCLB2,1のF0入力に接続できる。図12aに示すとおり、高速桁上げ MUX C1からの桁上げ出力信号Ci+1はマルチプレクサB1およびS1経由 でCLB1,1のXB出力に接続する。PIPXB2,1,1はもう一つの直接接続ライン Q11,1、すなわちPIPGB3,2,1経由でCLB2,1のG関数発生器の入力線G0 に接続されているラインQ11,1に接続されている。これはタイルTILE2,1の G関数発生器内で計算されるべき次の和ビットのための桁上げ入力Ciとして作 用する。より高次のビットもそれぞれ対応して接続する。このように、伝搬機能 および高速桁上げ機能がタイルTILE1,1に生じ、加算機能がタイルTILE2 ,1 に生じる。 ピンF0乃至F3の完全な相互交換可能性が二つの利点の一つをもたらす。図 12の実施例では少数のPIPでも十分な相互交換可能性で得られる。PIPの 各々が約6個のトランジスタを要するので、PIPの数の削減はチップ寸法を削 減する。より多くのPIPを設ける場合は、関数発生器の入力全部への高速経路 が通常得られ、したがってチップ動作はより高速になる。摘要 この発明の二つの実施例を図12aおよび12bに関連づけて上に詳述してき た。上の説明に基づき、この発明の上述の特徴を組み入れたこれら以外の実施例 が当業者に自明になろう。例えば、互いに隣接していない論理ブロックを相互接 続することも可能である。また、図12aおよび12bは桁上げ論理4段と四つ の関数発生器とを備える論理ブロックを示しているが、異なる段数を有する論理 ブロックを形成することも可能である。 さらに他の例について述べると、図12aおよび12bの制御回路はメモリセ ルにより制御するものと説明したが、これらメモリセルがSRAMメモリセル、 EPROM、EEPROMヒューズ、アンチヒューズで構成できることは明らか である。また、制御信号は論理ゲートの出力信号およびほかの利用可能な信号で 供給できることも明らかである。これら実施例および上記説明に基づき自明なこ れら以外の実施例はこの発明の範囲内に含めることを意図するものである。

Claims (1)

  1. 【特許請求の範囲】 1.論理ブロックのアレーを含むプログラマブルロジックデバイスであって、 各論理ブロックの少なくとも一つの回路、すなわち 第1の入力値(Bi)を発生する手段と、 第2の入力値(Ai)を供給する入力端子と、 桁上げ入力(Ci)端子および桁上げ出力(Ci+1)端子と、 前記入力端子および前記桁上げ入力端子の一方を前記桁上げ出力端子に接続す るマルチプレクサ(923)と、 前記第1の入力値が前記第2の入力値に等しいとき(Ai=Bi)だけ前記入力 端子を前記桁上げ出力端子に接続するとともに、前記第1の入力値が前記第2の 入力値と等しくないとき(Ai≠Bi)だけ前記桁上げ入力端子を前記桁上げ出力 端子に接続するように前記マルチプレクサを動作させる伝搬信号を発生する参照 用テーブル(903)と を含む一つの回路を備えるプログラマブルロジックデバイス。 2.請求項1記載のプログラマブルロジックデバイスであって、 入力として前記伝搬信号と前記桁上げ入力端子への信号とを受け、前記伝搬信 号と前記桁上げ入力端子への前記信号とのXOR関数を発生できる関数発生手段 (904) をさらに含むプログラマブルロジックデバイス。 3.前記関数発生手段(904)がXORゲートである請求項2記載のプログ ラマブルロジックデバイス。 4.前記論理ブロックの互いに隣接する二つが前記入力値の和および桁上げを 計算し、前記和を計算するほうの前記論理ブロックが少なくとも二つの入力の全 ての関数を発生できる参照用テーブル(904)を含む請求項1記載のプログラ マブルロジックデバイス。 5.前記第1の入力値(Bi)を発生する手段が前記参照用テーブルへの格納 関数と組み合わされた複数の入力端子を含み、その参照用テーブルが前記第1の 入力値を前記複数の入力のユーザにより選択された関数として供給する請求項1 記載のプログラマブルロジックデバイス。 6.前記第1の入力値(Bi)を発生する前記手段が前記第1の入力値を含む 参照用テーブルへの入力を含む請求項1記載のプログラマブルロジックデバイス 。
JP50826095A 1993-09-02 1994-08-31 高速桁上げのためのロジック構造および回路 Expired - Lifetime JP3594601B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/116,659 1993-09-02
US08/116,659 US5349250A (en) 1993-09-02 1993-09-02 Logic structure and circuit for fast carry
PCT/US1994/009864 WO1995006979A1 (en) 1993-09-02 1994-08-31 Logic structure and circuit for fast carry

Publications (2)

Publication Number Publication Date
JPH08503570A true JPH08503570A (ja) 1996-04-16
JP3594601B2 JP3594601B2 (ja) 2004-12-02

Family

ID=22368495

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50826095A Expired - Lifetime JP3594601B2 (ja) 1993-09-02 1994-08-31 高速桁上げのためのロジック構造および回路

Country Status (5)

Country Link
US (1) US5349250A (ja)
EP (2) EP1126613A3 (ja)
JP (1) JP3594601B2 (ja)
DE (1) DE69429073T2 (ja)
WO (1) WO1995006979A1 (ja)

Families Citing this family (221)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5122685A (en) * 1991-03-06 1992-06-16 Quicklogic Corporation Programmable application specific integrated circuit and logic cell therefor
US5416367A (en) * 1991-03-06 1995-05-16 Quicklogic Corporation Programmable application specific integrated circuit and logic cell therefor
US5550782A (en) * 1991-09-03 1996-08-27 Altera Corporation Programmable logic array integrated circuits
US5633830A (en) * 1995-11-08 1997-05-27 Altera Corporation Random access memory block circuitry for programmable logic array integrated circuit devices
USRE35977E (en) * 1992-05-08 1998-12-01 Altera Corporation Look up table implementation of fast carry arithmetic and exclusive-or operations
US5481206A (en) 1993-09-02 1996-01-02 Xilinx, Inc. Circuit for fast carry and logic
US5898319A (en) * 1993-09-02 1999-04-27 Xilinx, Inc. Method and structure for providing fast conditional sum in a field programmable gate array
US6288570B1 (en) 1993-09-02 2001-09-11 Xilinx, Inc. Logic structure and circuit for fast carry
US5546018A (en) * 1993-09-02 1996-08-13 Xilinx, Inc. Fast carry structure with synchronous input
US6154053A (en) * 1993-09-02 2000-11-28 Xilinx, Inc. Look-ahead carry structure with homogeneous CLB structure and pitch larger than CLB pitch
US5629886A (en) * 1993-09-02 1997-05-13 Xilinx, Inc. Method and structure for providing fast propagation of a carry signal in a field programmable gate array
USRE38451E1 (en) * 1993-11-12 2004-03-02 Altera Corporation Universal logic module with arithmetic capabilities
US5682107A (en) * 1994-04-01 1997-10-28 Xilinx, Inc. FPGA architecture with repeatable tiles including routing matrices and logic matrices
US5442306A (en) * 1994-09-09 1995-08-15 At&T Corp. Field programmable gate array using look-up tables, multiplexers and decoders
US5815003A (en) * 1994-11-04 1998-09-29 Altera Corporation Programmable logic integrated circuits with partitioned logic element using shared lab-wide signals
US5636368A (en) * 1994-12-23 1997-06-03 Xilinx, Inc. Method for programming complex PLD having more than one function block type
US5566123A (en) * 1995-02-10 1996-10-15 Xilinx, Inc. Synchronous dual port ram
US5751162A (en) * 1995-04-06 1998-05-12 Texas Instruments Incorporated Field programmable gate array logic module configurable as combinational or sequential circuits
US5631576A (en) * 1995-09-01 1997-05-20 Altera Corporation Programmable logic array integrated circuit devices with flexible carry chains
US5818255A (en) * 1995-09-29 1998-10-06 Xilinx, Inc. Method and circuit for using a function generator of a programmable logic device to implement carry logic functions
US5672985A (en) * 1995-12-18 1997-09-30 Altera Corporation Programmable logic array integrated circuits with carry and/or cascade rings
US5898602A (en) * 1996-01-25 1999-04-27 Xilinx, Inc. Carry chain circuit with flexible carry function for implementing arithmetic and logical functions
US5894565A (en) * 1996-05-20 1999-04-13 Atmel Corporation Field programmable gate array with distributed RAM and increased cell utilization
US6288568B1 (en) 1996-11-22 2001-09-11 Xilinx, Inc. FPGA architecture with deep look-up table RAMs
US6323682B1 (en) 1996-11-22 2001-11-27 Xilinx, Inc. FPGA architecture with wide function multiplexers
US5889413A (en) 1996-11-22 1999-03-30 Xilinx, Inc. Lookup tables which double as shift registers
US6297665B1 (en) 1996-11-22 2001-10-02 Xilinx, Inc. FPGA architecture with dual-port deep look-up table RAMS
US6427156B1 (en) 1997-01-21 2002-07-30 Xilinx, Inc. Configurable logic block with AND gate for efficient multiplication in FPGAS
US6204689B1 (en) 1997-02-26 2001-03-20 Xilinx, Inc. Input/output interconnect circuit for FPGAs
US5942913A (en) * 1997-03-20 1999-08-24 Xilinx, Inc. FPGA repeatable interconnect structure with bidirectional and unidirectional interconnect lines
US5889411A (en) * 1997-02-26 1999-03-30 Xilinx, Inc. FPGA having logic element carry chains capable of generating wide XOR functions
US5914616A (en) * 1997-02-26 1999-06-22 Xilinx, Inc. FPGA repeatable interconnect structure with hierarchical interconnect lines
US5920202A (en) * 1997-02-26 1999-07-06 Xilinx, Inc. Configurable logic element with ability to evaluate five and six input functions
US6201410B1 (en) 1997-02-26 2001-03-13 Xilinx, Inc. Wide logic gate implemented in an FPGA configurable logic element
US5963050A (en) 1997-02-26 1999-10-05 Xilinx, Inc. Configurable logic element with fast feedback paths
US6184710B1 (en) * 1997-03-20 2001-02-06 Altera Corporation Programmable logic array devices with enhanced interconnectivity between adjacent logic regions
US6014038A (en) * 1997-03-21 2000-01-11 Lightspeed Semiconductor Corporation Function block architecture for gate array
US6359466B1 (en) * 1997-09-16 2002-03-19 Vantis Corporation Circuitry to provide fast carry
US6097212A (en) * 1997-10-09 2000-08-01 Lattice Semiconductor Corporation Variable grain architecture for FPGA integrated circuits
US6185724B1 (en) 1997-12-02 2001-02-06 Xilinx, Inc. Template-based simulated annealing move-set that improves FPGA architectural feature utilization
US6069490A (en) * 1997-12-02 2000-05-30 Xilinx, Inc. Routing architecture using a direct connect routing mesh
US6467017B1 (en) 1998-06-23 2002-10-15 Altera Corporation Programmable logic device having embedded dual-port random access memory configurable as single-port memory
US6353920B1 (en) * 1998-11-17 2002-03-05 Xilinx, Inc. Method for implementing wide gates and tristate buffers using FPGA carry logic
US6154052A (en) * 1999-02-04 2000-11-28 Xilinx, Inc. Combined tristate/carry logic mechanism
US6603332B2 (en) 1999-02-25 2003-08-05 Xilinx, Inc. Configurable logic block for PLD with logic gate for combining output with another configurable logic block
US6359468B1 (en) 1999-03-04 2002-03-19 Altera Corporation Programmable logic device with carry look-ahead
US6407576B1 (en) 1999-03-04 2002-06-18 Altera Corporation Interconnection and input/output resources for programmable logic integrated circuit devices
US6323680B1 (en) 1999-03-04 2001-11-27 Altera Corporation Programmable logic device configured to accommodate multiplication
US6426648B1 (en) 1999-12-30 2002-07-30 RUPP CHARLé R. Carry lookahead for programmable logic array
US7346644B1 (en) 2000-09-18 2008-03-18 Altera Corporation Devices and methods with programmable logic and digital signal processing regions
US7119576B1 (en) 2000-09-18 2006-10-10 Altera Corporation Devices and methods with programmable logic and digital signal processing regions
US6480023B1 (en) 2000-10-13 2002-11-12 Xilinx, Inc. Configurable logic block for PLD
US6754686B1 (en) 2000-10-13 2004-06-22 Xilinx, Inc. Literal sharing method for fast sum-of-products logic
US6724810B1 (en) 2000-11-17 2004-04-20 Xilinx, Inc. Method and apparatus for de-spreading spread spectrum signals
US6369608B1 (en) 2001-01-18 2002-04-09 Xillinx, Inc. Conditioning semiconductor-on-insulator transistors for programmable logic devices
US6388466B1 (en) 2001-04-27 2002-05-14 Xilinx, Inc. FPGA logic element with variable-length shift register capability
US6937062B1 (en) 2001-09-18 2005-08-30 Altera Corporation Specialized programmable logic region with low-power mode
US6566906B1 (en) 2001-09-18 2003-05-20 Altera Corporation Specialized programmable logic region with low-power mode
US7100143B2 (en) * 2002-01-31 2006-08-29 Cadence Design Systems, Inc. Method and apparatus for pre-tabulating sub-networks
US7028281B1 (en) 2002-07-12 2006-04-11 Lattice Semiconductor Corporation FPGA with register-intensive architecture
US7111110B1 (en) 2002-12-10 2006-09-19 Altera Corporation Versatile RAM for programmable logic device
US6798240B1 (en) * 2003-01-24 2004-09-28 Altera Corporation Logic circuitry with shared lookup table
US7800401B1 (en) 2003-02-10 2010-09-21 Altera Corporation Fracturable lookup table and logic element
US6943580B2 (en) * 2003-02-10 2005-09-13 Altera Corporation Fracturable lookup table and logic element
US6888373B2 (en) 2003-02-11 2005-05-03 Altera Corporation Fracturable incomplete look up table for area efficient logic elements
US7082592B1 (en) 2003-06-16 2006-07-25 Altera Corporation Method for programming programmable logic device having specialized functional blocks
US7440964B2 (en) * 2003-08-29 2008-10-21 Vortaloptics, Inc. Method, device and software for querying and presenting search results
US7185035B1 (en) 2003-10-23 2007-02-27 Altera Corporation Arithmetic structures for programmable logic devices
US7565388B1 (en) 2003-11-21 2009-07-21 Altera Corporation Logic cell supporting addition of three binary words
US7167021B1 (en) 2003-11-24 2007-01-23 Altera Corporation Logic device logic modules having improved arithmetic circuitry
US7071732B1 (en) 2003-12-09 2006-07-04 Xilinx, Inc. Scalable complex programmable logic device with segmented interconnect resources
US7698358B1 (en) 2003-12-24 2010-04-13 Altera Corporation Programmable logic device with specialized functional block
US7844653B2 (en) 2003-12-29 2010-11-30 Xilinx, Inc. Digital signal processing circuit having a pre-adder circuit
US7860915B2 (en) * 2003-12-29 2010-12-28 Xilinx, Inc. Digital signal processing circuit having a pattern circuit for determining termination conditions
US7853634B2 (en) 2003-12-29 2010-12-14 Xilinx, Inc. Digital signal processing circuit having a SIMD circuit
US7853632B2 (en) 2003-12-29 2010-12-14 Xilinx, Inc. Architectural floorplan for a digital signal processing circuit
US7840630B2 (en) * 2003-12-29 2010-11-23 Xilinx, Inc. Arithmetic logic unit circuit
US7853636B2 (en) 2003-12-29 2010-12-14 Xilinx, Inc. Digital signal processing circuit having a pattern detector circuit for convergent rounding
US7467175B2 (en) * 2003-12-29 2008-12-16 Xilinx, Inc. Programmable logic device with pipelined DSP slices
US7840627B2 (en) 2003-12-29 2010-11-23 Xilinx, Inc. Digital signal processing circuit having input register blocks
US7849119B2 (en) 2003-12-29 2010-12-07 Xilinx, Inc. Digital signal processing circuit having a pattern detector circuit
US7865542B2 (en) * 2003-12-29 2011-01-04 Xilinx, Inc. Digital signal processing block having a wide multiplexer
US7882165B2 (en) * 2003-12-29 2011-02-01 Xilinx, Inc. Digital signal processing element having an arithmetic logic unit
US7480690B2 (en) * 2003-12-29 2009-01-20 Xilinx, Inc. Arithmetic circuit with multiplexed addend inputs
US7472155B2 (en) * 2003-12-29 2008-12-30 Xilinx, Inc. Programmable logic device with cascading DSP slices
US7870182B2 (en) 2003-12-29 2011-01-11 Xilinx Inc. Digital signal processing circuit having an adder circuit with carry-outs
US7567997B2 (en) * 2003-12-29 2009-07-28 Xilinx, Inc. Applications of cascading DSP slices
US7467177B2 (en) * 2003-12-29 2008-12-16 Xilinx, Inc. Mathematical circuit with dynamic rounding
US8495122B2 (en) * 2003-12-29 2013-07-23 Xilinx, Inc. Programmable device with dynamic DSP architecture
US7167025B1 (en) 2004-02-14 2007-01-23 Herman Schmit Non-sequentially configurable IC
US7126381B1 (en) 2004-02-14 2006-10-24 Herman Schmit VPA interconnect circuit
US7157933B1 (en) 2004-02-14 2007-01-02 Herman Schmit Configurable circuits, IC's, and systems
US7284222B1 (en) 2004-06-30 2007-10-16 Tabula, Inc. Method and apparatus for identifying connections between configurable nodes in a configurable integrated circuit
US7193440B1 (en) * 2004-02-14 2007-03-20 Herman Schmit Configurable circuits, IC's, and systems
US7425841B2 (en) 2004-02-14 2008-09-16 Tabula Inc. Configurable circuits, IC's, and systems
US7109752B1 (en) * 2004-02-14 2006-09-19 Herman Schmit Configurable circuits, IC's, and systems
US7193432B1 (en) 2004-02-14 2007-03-20 Herman Schmit VPA logic circuits
US7126373B1 (en) 2004-02-14 2006-10-24 Herman Schmit Configurable logic circuits with commutative properties
US7205791B1 (en) 2004-03-12 2007-04-17 Altera Corporation Bypass-able carry chain in a programmable logic device
US7061268B1 (en) 2004-03-15 2006-06-13 Altera Corporation Initializing a carry chain in a programmable logic device
US7167022B1 (en) 2004-03-25 2007-01-23 Altera Corporation Omnibus logic element including look up table based logic elements
US7193438B1 (en) * 2004-06-30 2007-03-20 Andre Rohe Configurable integrated circuit with offset connection
US7408382B2 (en) * 2004-06-30 2008-08-05 Tabula, Inc. Configurable circuits, IC's, and systems
US7312630B2 (en) 2004-06-30 2007-12-25 Tabula, Inc. Configurable integrated circuit with built-in turns
US7282950B1 (en) 2004-11-08 2007-10-16 Tabula, Inc. Configurable IC's with logic resources with offset connections
US7449915B2 (en) * 2004-06-30 2008-11-11 Tabula Inc. VPA logic circuits
US7145361B1 (en) * 2004-06-30 2006-12-05 Andre Rohe Configurable integrated circuit with different connection schemes
US7439766B2 (en) * 2004-06-30 2008-10-21 Tabula, Inc. Configurable logic circuits with commutative properties
US7617269B2 (en) * 2004-08-03 2009-11-10 Stmicroelectronics Pvt. Ltd. Logic entity with two outputs for efficient adder and other macro implementations
US7259587B1 (en) 2004-11-08 2007-08-21 Tabula, Inc. Configurable IC's with configurable logic resources that have asymetric inputs and/or outputs
US7276933B1 (en) 2004-11-08 2007-10-02 Tabula, Inc. Reconfigurable IC that has sections running at different looperness
US7330050B2 (en) 2004-11-08 2008-02-12 Tabula, Inc. Storage elements for a configurable IC and method and apparatus for accessing data stored in the storage elements
US7317331B2 (en) 2004-11-08 2008-01-08 Tabula, Inc. Reconfigurable IC that has sections running at different reconfiguration rates
US7573296B2 (en) 2004-11-08 2009-08-11 Tabula Inc. Configurable IC with configurable routing resources that have asymmetric input and/or outputs
US7242216B1 (en) 2004-11-08 2007-07-10 Herman Schmit Embedding memory between tile arrangement of a configurable IC
US7342415B2 (en) 2004-11-08 2008-03-11 Tabula, Inc. Configurable IC with interconnect circuits that also perform storage operations
US7917559B2 (en) * 2004-11-08 2011-03-29 Tabula, Inc. Configurable IC's with configurable logic circuits that perform adder and/or subtractor operations
US7224181B1 (en) * 2004-11-08 2007-05-29 Herman Schmit Clock distribution in a configurable IC
US7301368B2 (en) * 2005-03-15 2007-11-27 Tabula, Inc. Embedding memory within tile arrangement of a configurable IC
US7268586B1 (en) 2004-11-08 2007-09-11 Tabula, Inc. Method and apparatus for accessing stored data in a reconfigurable IC
US7743085B2 (en) 2004-11-08 2010-06-22 Tabula, Inc. Configurable IC with large carry chains
US7295037B2 (en) * 2004-11-08 2007-11-13 Tabula, Inc. Configurable IC with routing circuits with offset connections
US20070244958A1 (en) * 2004-11-08 2007-10-18 Jason Redgrave Configurable IC's with carry bypass circuitry
US7428721B2 (en) 2004-12-01 2008-09-23 Tabula, Inc. Operational cycle assignment in a configurable IC
US7496879B2 (en) * 2004-12-01 2009-02-24 Tabula, Inc. Concurrent optimization of physical design and operational cycle assignment
US7236009B1 (en) 2004-12-01 2007-06-26 Andre Rohe Operational time extension
US7653677B1 (en) * 2005-01-26 2010-01-26 Xilinx, Inc. Digital logic circuit for adding three binary words and method of implementing same
US7224182B1 (en) * 2005-03-15 2007-05-29 Brad Hutchings Hybrid configurable circuit for a configurable IC
US20070244959A1 (en) * 2005-03-15 2007-10-18 Steven Teig Configurable IC's with dual carry chains
US7825684B2 (en) 2005-03-15 2010-11-02 Tabula, Inc. Variable width management for a memory of a configurable IC
US7298169B2 (en) * 2005-03-15 2007-11-20 Tabula, Inc Hybrid logic/interconnect circuit in a configurable IC
US7530033B2 (en) 2005-03-15 2009-05-05 Tabula, Inc. Method and apparatus for decomposing functions in a configurable IC
US7310003B2 (en) * 2005-03-15 2007-12-18 Tabula, Inc. Configurable IC with interconnect circuits that have select lines driven by user signals
US7230869B1 (en) 2005-03-15 2007-06-12 Jason Redgrave Method and apparatus for accessing contents of memory cells
US8620980B1 (en) 2005-09-27 2013-12-31 Altera Corporation Programmable device with specialized multiplier blocks
US8463836B1 (en) 2005-11-07 2013-06-11 Tabula, Inc. Performing mathematical and logical operations in multiple sub-cycles
US7765249B1 (en) 2005-11-07 2010-07-27 Tabula, Inc. Use of hybrid interconnect/logic circuits for multiplication
US7372297B1 (en) 2005-11-07 2008-05-13 Tabula Inc. Hybrid interconnect/logic circuits enabling efficient replication of a function in several sub-cycles to save logic and routing resources
US7818361B1 (en) 2005-11-07 2010-10-19 Tabula, Inc. Method and apparatus for performing two's complement multiplication
US7461362B1 (en) 2005-12-01 2008-12-02 Tabula, Inc. Replacing circuit design elements with their equivalents
US7679401B1 (en) 2005-12-01 2010-03-16 Tabula, Inc. User registers implemented with routing circuits in a configurable IC
US7489162B1 (en) 2005-12-01 2009-02-10 Tabula, Inc. Users registers in a reconfigurable IC
US8301681B1 (en) 2006-02-09 2012-10-30 Altera Corporation Specialized processing block for programmable logic device
US8041759B1 (en) 2006-02-09 2011-10-18 Altera Corporation Specialized processing block for programmable logic device
US8266198B2 (en) 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US8266199B2 (en) 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US7694083B1 (en) 2006-03-08 2010-04-06 Tabula, Inc. System and method for providing a virtual memory architecture narrower and deeper than a physical memory architecture
US7518400B1 (en) 2006-03-08 2009-04-14 Tabula, Inc. Barrel shifter implemented on a configurable integrated circuit
US7797497B1 (en) 2006-03-08 2010-09-14 Tabula, Inc. System and method for providing more logical memory ports than physical memory ports
US7504858B1 (en) 2006-03-08 2009-03-17 Tabula, Inc. Configurable integrated circuit with parallel non-neighboring offset connections
US7609085B1 (en) 2006-03-08 2009-10-27 Tabula, Inc. Configurable integrated circuit with a 4-to-1 multiplexer
US7529992B1 (en) 2006-03-27 2009-05-05 Tabula, Inc. Configurable integrated circuit with error correcting circuitry
US7669097B1 (en) 2006-03-27 2010-02-23 Tabula, Inc. Configurable IC with error detection and correction circuitry
US8707225B1 (en) * 2006-04-07 2014-04-22 Cadence Design Systems, Inc. Synthesis of area-efficient subtractor and divider functional blocks
US7836117B1 (en) 2006-04-07 2010-11-16 Altera Corporation Specialized processing block for programmable logic device
US7822799B1 (en) 2006-06-26 2010-10-26 Altera Corporation Adder-rounder circuitry for specialized processing block in programmable logic device
US8386550B1 (en) 2006-09-20 2013-02-26 Altera Corporation Method for configuring a finite impulse response filter in a programmable logic device
US7930336B2 (en) 2006-12-05 2011-04-19 Altera Corporation Large multiplier for programmable logic device
US8386553B1 (en) 2006-12-05 2013-02-26 Altera Corporation Large multiplier for programmable logic device
US7587697B1 (en) 2006-12-12 2009-09-08 Tabula, Inc. System and method of mapping memory blocks in a configurable integrated circuit
US7930666B1 (en) 2006-12-12 2011-04-19 Tabula, Inc. System and method of providing a memory hierarchy
US7814137B1 (en) 2007-01-09 2010-10-12 Altera Corporation Combined interpolation and decimation filter for programmable logic device
US7865541B1 (en) 2007-01-22 2011-01-04 Altera Corporation Configuring floating point operations in a programmable logic device
US8650231B1 (en) 2007-01-22 2014-02-11 Altera Corporation Configuring floating point operations in a programmable device
US8645450B1 (en) 2007-03-02 2014-02-04 Altera Corporation Multiplier-accumulator circuitry and methods
US7514957B2 (en) 2007-03-20 2009-04-07 Tabula, Inc Configurable IC having a routing fabric with storage elements
US7535252B1 (en) 2007-03-22 2009-05-19 Tabula, Inc. Configurable ICs that conditionally transition through configuration data sets
US7772879B1 (en) 2007-04-11 2010-08-10 Actel Corporation Logic module including versatile adder for FPGA
US7733124B1 (en) * 2007-06-22 2010-06-08 Altera Corporation Method and apparatus for PLD having shared storage elements
US7949699B1 (en) 2007-08-30 2011-05-24 Altera Corporation Implementation of decimation filter in integrated circuit device using ram-based data storage
US8248101B2 (en) 2007-09-06 2012-08-21 Tabula, Inc. Reading configuration data from internal storage node of configuration storage circuit
US7663400B1 (en) * 2007-12-21 2010-02-16 Actel Corporation Flexible carry scheme for field programmable gate arrays
US8244791B1 (en) 2008-01-30 2012-08-14 Actel Corporation Fast carry lookahead circuits
US8863067B1 (en) 2008-02-06 2014-10-14 Tabula, Inc. Sequential delay analysis by placement engines
US8959137B1 (en) 2008-02-20 2015-02-17 Altera Corporation Implementing large multipliers in a programmable integrated circuit device
US8244789B1 (en) 2008-03-14 2012-08-14 Altera Corporation Normalization of floating point operations in a programmable integrated circuit device
US7746100B2 (en) * 2008-04-28 2010-06-29 Altera Corporation Flexible adder circuits with fast carry chain circuitry
US8166435B2 (en) 2008-06-26 2012-04-24 Tabula, Inc. Timing operations in an IC with configurable circuits
US8626815B1 (en) 2008-07-14 2014-01-07 Altera Corporation Configuring a programmable integrated circuit device to perform matrix multiplication
US8255448B1 (en) 2008-10-02 2012-08-28 Altera Corporation Implementing division in a programmable integrated circuit device
US8307023B1 (en) 2008-10-10 2012-11-06 Altera Corporation DSP block for implementing large multiplier on a programmable integrated circuit device
US8543635B2 (en) 2009-01-27 2013-09-24 Xilinx, Inc. Digital signal processing block with preadder stage
US8479133B2 (en) 2009-01-27 2013-07-02 Xilinx, Inc. Method of and circuit for implementing a filter in an integrated circuit
US8645449B1 (en) 2009-03-03 2014-02-04 Altera Corporation Combined floating point adder and subtractor
US8805916B2 (en) 2009-03-03 2014-08-12 Altera Corporation Digital signal processing circuitry with redundancy and bidirectional data paths
US8886696B1 (en) 2009-03-03 2014-11-11 Altera Corporation Digital signal processing circuitry with redundancy and ability to support larger multipliers
US8468192B1 (en) 2009-03-03 2013-06-18 Altera Corporation Implementing multipliers in a programmable integrated circuit device
US8549055B2 (en) 2009-03-03 2013-10-01 Altera Corporation Modular digital signal processing circuitry with optionally usable, dedicated connections between modules of the circuitry
US8706790B1 (en) 2009-03-03 2014-04-22 Altera Corporation Implementing mixed-precision floating-point operations in a programmable integrated circuit device
US8650236B1 (en) 2009-08-04 2014-02-11 Altera Corporation High-rate interpolation or decimation filter in integrated circuit device
US8396914B1 (en) 2009-09-11 2013-03-12 Altera Corporation Matrix decomposition in an integrated circuit device
US8412756B1 (en) 2009-09-11 2013-04-02 Altera Corporation Multi-operand floating point operations in a programmable integrated circuit device
US7948267B1 (en) 2010-02-09 2011-05-24 Altera Corporation Efficient rounding circuits and methods in configurable integrated circuit devices
US8539016B1 (en) 2010-02-09 2013-09-17 Altera Corporation QR decomposition in an integrated circuit device
US8601044B2 (en) 2010-03-02 2013-12-03 Altera Corporation Discrete Fourier Transform in an integrated circuit device
US8458243B1 (en) 2010-03-03 2013-06-04 Altera Corporation Digital signal processing circuit blocks with support for systolic finite-impulse-response digital filtering
US8484265B1 (en) 2010-03-04 2013-07-09 Altera Corporation Angular range reduction in an integrated circuit device
US8510354B1 (en) 2010-03-12 2013-08-13 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8539014B2 (en) 2010-03-25 2013-09-17 Altera Corporation Solving linear matrices in an integrated circuit device
US8862650B2 (en) 2010-06-25 2014-10-14 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8589463B2 (en) 2010-06-25 2013-11-19 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8577951B1 (en) 2010-08-19 2013-11-05 Altera Corporation Matrix operations in an integrated circuit device
RU2445680C1 (ru) * 2010-11-03 2012-03-20 Лев Петрович Петренко ФУНКЦИОНАЛЬНАЯ СТРУКТУРА СКВОЗНОГО ПЕРЕНОСА f1(←←)i+1 И f2(←←)i УСЛОВНО "i+1" И УСЛОВНО "i" РАЗРЯДОВ "k" ГРУППЫ АРГУМЕНТОВ МНОЖИМОГО [ni]f(2n) ПРЕДВАРИТЕЛЬНОГО СУММАТОРА fΣ([ni]&[ni,0]) ПАРАЛЛЕЛЬНО-ПОСЛЕДОВАТЕЛЬНОГО УМНОЖИТЕЛЯ fΣ(Σ) (ВАРИАНТЫ)
US8645451B2 (en) 2011-03-10 2014-02-04 Altera Corporation Double-clocked specialized processing block in an integrated circuit device
US9600278B1 (en) 2011-05-09 2017-03-21 Altera Corporation Programmable device using fixed and configurable logic to implement recursive trees
US8812576B1 (en) 2011-09-12 2014-08-19 Altera Corporation QR decomposition in an integrated circuit device
US8949298B1 (en) 2011-09-16 2015-02-03 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US9053045B1 (en) 2011-09-16 2015-06-09 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US8762443B1 (en) 2011-11-15 2014-06-24 Altera Corporation Matrix operations in an integrated circuit device
US8543634B1 (en) 2012-03-30 2013-09-24 Altera Corporation Specialized processing block for programmable integrated circuit device
US9098332B1 (en) 2012-06-01 2015-08-04 Altera Corporation Specialized processing block with fixed- and floating-point structures
US8996600B1 (en) 2012-08-03 2015-03-31 Altera Corporation Specialized processing block for implementing floating-point multiplier with subnormal operation support
US9207909B1 (en) 2012-11-26 2015-12-08 Altera Corporation Polynomial calculations optimized for programmable integrated circuit device structures
US9189200B1 (en) 2013-03-14 2015-11-17 Altera Corporation Multiple-precision processing block in a programmable integrated circuit device
US9348795B1 (en) 2013-07-03 2016-05-24 Altera Corporation Programmable device using fixed and configurable logic to implement floating-point rounding
US9379687B1 (en) 2014-01-14 2016-06-28 Altera Corporation Pipelined systolic finite impulse response filter
US9684488B2 (en) 2015-03-26 2017-06-20 Altera Corporation Combined adder and pre-adder for high-radix multiplier circuit
US9785405B2 (en) * 2015-05-29 2017-10-10 Huawei Technologies Co., Ltd. Increment/decrement apparatus and method
US10942706B2 (en) 2017-05-05 2021-03-09 Intel Corporation Implementation of floating-point trigonometric functions in an integrated circuit device
CN111104101A (zh) * 2019-11-07 2020-05-05 上海精密计量测试研究所 一种带有slice空洞的进位链构造及测试方法
US11714607B2 (en) 2020-12-28 2023-08-01 Achronix Semiconductor Corporation Adder circuit using lookup tables

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4124899A (en) * 1977-05-23 1978-11-07 Monolithic Memories, Inc. Programmable array logic circuit
US4870302A (en) * 1984-03-12 1989-09-26 Xilinx, Inc. Configurable electrical circuit having configurable logic elements and configurable interconnects
US4706216A (en) * 1985-02-27 1987-11-10 Xilinx, Inc. Configurable logic element
US4758745B1 (en) * 1986-09-19 1994-11-15 Actel Corp User programmable integrated circuit interconnect architecture and test method
US5267187A (en) * 1990-05-10 1993-11-30 Xilinx Inc Logic structure and circuit for fast carry
CA2037142C (en) * 1990-05-10 1996-05-07 Hung-Cheng Hsieh Logic structure and circuit for fast carry
US5055718A (en) * 1990-05-11 1991-10-08 Actel Corporation Logic module with configurable combinational and sequential blocks
US5198705A (en) * 1990-05-11 1993-03-30 Actel Corporation Logic module with configurable combinational and sequential blocks
US5220213A (en) * 1991-03-06 1993-06-15 Quicklogic Corporation Programmable application specific integrated circuit and logic cell therefor
US5260611A (en) * 1991-09-03 1993-11-09 Altera Corporation Programmable logic array having local and long distance conductors
US5359242A (en) * 1993-01-21 1994-10-25 Altera Corporation Programmable logic with carry-in/carry-out between logic blocks
US5258668A (en) * 1992-05-08 1993-11-02 Altera Corporation Programmable logic array integrated circuits with cascade connections between logic modules

Also Published As

Publication number Publication date
EP1126613A3 (en) 2006-04-05
EP0667059A1 (en) 1995-08-16
WO1995006979A1 (en) 1995-03-09
US5349250A (en) 1994-09-20
DE69429073D1 (de) 2001-12-20
EP0667059B1 (en) 2001-11-14
DE69429073T2 (de) 2002-03-21
EP1126613A2 (en) 2001-08-22
JP3594601B2 (ja) 2004-12-02

Similar Documents

Publication Publication Date Title
JPH08503570A (ja) 高速桁上げのためのロジック構造および回路
JP3697302B2 (ja) 高速桁上げ回路
US6288570B1 (en) Logic structure and circuit for fast carry
US5546018A (en) Fast carry structure with synchronous input
US5523963A (en) Logic structure and circuit for fast carry
US6323680B1 (en) Programmable logic device configured to accommodate multiplication
US5724276A (en) Logic block structure optimized for sum generation
US5359242A (en) Programmable logic with carry-in/carry-out between logic blocks
US7872497B2 (en) Flexible carry scheme for field programmable gate arrays
US7617269B2 (en) Logic entity with two outputs for efficient adder and other macro implementations
CN101571796B (zh) 可配置的混合加法器电路
CA2037142C (en) Logic structure and circuit for fast carry
US9411554B1 (en) Signed multiplier circuit utilizing a uniform array of logic blocks
EP1076931A1 (en) Programmable logic device with carry-select addition
JP2003084967A (ja) 機能ブロック
JPH11353152A (ja) プログラマブル機能ブロック
US20010016865A1 (en) Multiplier circuit for reducing the number of necessary elements without sacrificing high speed capability
US5295090A (en) Logic structure and circuit for fast carry
US9002915B1 (en) Circuits for shifting bussed data
US20100030837A1 (en) Combined adder circuit array and/or plane
JP2553162B2 (ja) 加算回路
JP2681968B2 (ja) 演算処理装置
JP2000089937A (ja) ファンアウトの減少したア―キテクチャを備える桁上げ先見加算器
JP2563467B2 (ja) 2進演算器
JPH0991120A (ja) 減算器

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040420

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040702

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: 20040824

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040901

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080910

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080910

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090910

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100910

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110910

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110910

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120910

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120910

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130910

Year of fee payment: 9

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term