JP2004505488A - Fpgaを部分的に再構成するためのアーキテクチャおよび方法 - Google Patents

Fpgaを部分的に再構成するためのアーキテクチャおよび方法 Download PDF

Info

Publication number
JP2004505488A
JP2004505488A JP2002514890A JP2002514890A JP2004505488A JP 2004505488 A JP2004505488 A JP 2004505488A JP 2002514890 A JP2002514890 A JP 2002514890A JP 2002514890 A JP2002514890 A JP 2002514890A JP 2004505488 A JP2004505488 A JP 2004505488A
Authority
JP
Japan
Prior art keywords
data
fpga
lines
line
address
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
JP2002514890A
Other languages
English (en)
Other versions
JP4686107B2 (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
Application filed by Xilinx Inc filed Critical Xilinx Inc
Publication of JP2004505488A publication Critical patent/JP2004505488A/ja
Application granted granted Critical
Publication of JP4686107B2 publication Critical patent/JP4686107B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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/17748Structural details of configuration resources
    • H03K19/17756Structural details of configuration resources for partial configuration or partial 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)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

FPGAアーキテクチャおよび方法は、アドレス線に接続されている選択された構成可能ロジックブロック(CLB)を、同じアドレス線に接続された他のCLBへの影響なしに部分的に再構成することを可能にする。メモリセル分割での部分的再構成は、FPGAのアドレス線およびデータ線に印加された入力電圧を操作して、或るメモリセルがプログラムされかつ他のメモリセルがプログラムされないようにすることで達成される。加えてCLB分割での部分的再構成は、FPGAを結線接続して、個々のCLBの選択による再構成を可能にすることで達成され得る。

Description

【0001】
【技術分野】
この発明は集積回路に関し、特定的には、プログラム可能論理回路またはフィールドプログラマブルゲートアレイ(FPGA)に関する。より特定的にこの発明は、FPGAの或る区域を、FPGAの他の区域に影響を及ぼすことなく部分的に再構成するための技術に関するものである。
【0002】
【発明の背景】
フィールドプログラマブルゲートアレイ(FPGA)は、構成可能論理ブロック(CLB)の構成を制御するメモリへ、ビットの流れすなわちビットストリームをロードすることにより、特定の機能を行なうように構成されるものである。各CLBは、構成可能ロジックと、隣接するセルにわたり接続を行ない相互接続線を形成する水平方向および垂直方向の線部(line segment)と、ロジックを線部に選択的に接続するための経路付けまたは切替構造体とを含む。
【0003】
論理ブロックのうちいくつかまたはすべてを再構成してFPGAの機能を変えることが望まれることがある。過去において再構成は、完全な新しいビットストリームをFPGAにロードしてすべてのCLBを再構成し、こうしてFPGA全体を再プログラムすることを伴っていた。
【0004】
FPGAのサイズが急速に増大する中、選択されたFPGA部分の再構成を可能にしかつ同じFPGAの他の部分に影響を及ぼさない、部分的再構成技術が考案されてきた。しかし伝統的に部分的再構成は、FPGAのアーキテクチャのため、CLBを制御するためのメモリの列全体を再構成することに限られてきた。
【0005】
図1は、従来の部分的再構成の限界を例示するためのFPGA20を示す。FPGA20はタイルの配列を有し、各タイルは構成可能ロジックおよび関係する相互接続を含み、これらを集合的に構成可能論理ブロック(CLB)22と呼ぶ。例示の目的から、図1ではいくつかのCLBおよびいくつかの相互接続線のみを示す。典型的には、FPGA20は数千の繰返され得るCLB22で実現され、各CLBは多くの水平方向および垂直方向の線部を有する。ヤング(Young)、チョーダリー(Chaudary)およびバウアー(Bauer)による米国特許第5,914,616号に、このような構造がより詳細に記載されている。
【0006】
各CLB22は、構成可能ロジックと、隣接するセルにわたり接続を行ない相互接続線を形成する水平方向および垂直方向の線部と、ロジックを線部に選択的に接続するための経路付けまたは切替構造体とを有する。ロジックと、線部間接続との構成は、構成メモリにより制御され、構成はこの構成メモリへロードされて、ロジックおよび相互接続線が所望の機能を行なうことを可能にする。或るFPGAでは、アドレス線上の構成メモリの区域をアドレス指定してデータ線にデータを与えることによって、構成メモリ内のデータがロードされる。或るFPGAでは、構成データのフレームはシフトレジスタ内に順次送り込まれて、次に構成メモリセルのアドレス指定された列へ並列にシフトされる。垂直方向のワイヤがアドレス線24で表わすアドレス線を形成し、これは一般にFPGAの高さに及ぶ。水平方向のワイヤがデータ線26で表わす構成データ線を形成し、これは通常FPGAの幅に及ぶ。
【0007】
図1のFPGAでは、ビットストリームからの構成データはシフトレジスタ28によりデータ線26上に置かれる。ビットストリームはデータのフレームを含み、各フレームはシフトレジスタ28を満たして、対応するアドレス線でアクセスされる1列のメモリセルをプログラムするのに用いられる。たとえば、シフトレジスタ28は数千ビットからなるフレームを保持し得る。ビットストリームはさらに、対応するデータフレームをシフトレジスタにロードするためのコマンドと、一旦ロードが行なわれればデータフレームに関連した適当なアドレス線を選択するためのコマンドとを含む。
【0008】
フレーム全体がシフトレジスタ28内にロードされた後、データビットはシャドーレジスタ30へ一時的に伝達され得るが、このためシフトレジスタ28は、現在のデータの書込中に次のデータフレームの受取を始めるために解放されている。アドレス線が選択され、データをシャドーレジスタ30からデータ線26経由でCLBの選択されたメモリセルへ伝達する。このプロセスは、FPGA20上のCLB22を完全にプログラムするまですべてのアドレス線24につき繰返される。
【0009】
従来の方法を用いると、FPGA20の部分的再構成は、データビットをシフトレジスタ28内にシフトして、再プログラムされているCLB22のアドレス線24のみを選択することによって行なわれ得る。残念ながら、アドレス線24がCLB22の列全体に及んでいるため、プログラマーがすべてのブロックを変更したいと望むか否かにかかわらず共通のアドレス線24で接続されたすべてのCLBが再構成されてしまう。これを図1では部分的再構成領域32として図示する。
【0010】
FPGAのサイズおよび複雑さが増加し続ける中、共通のアドレス線に接続されたCLBのうちいくつかのみを含む、FPGAのより小さな区域を部分的に再構成することが望ましくかつ有利であろう。したがって、FPGAの選択可能CLBの部分的再構成を可能にするようにプロセスまたはアーキテクチャを改良することが必要とされている。
【0011】
【発明の概要】
この発明は、1本以上のアドレス線に接続された選択可能な構成可能論理ブロック(CLB)を、同じアドレス線に接続された他のCLBへの影響なしに部分的再構成することを可能にする、FPGAアーキテクチャおよび方法に関する。
【0012】
一実現例に従うと、メモリセル分割(resolution)での部分的再構成は、FPGA構成メモリのアドレス線およびデータ線に印加される入力電圧を操作することで達成される。選択されたCLB内のいくつかのメモリセルがプログラムされ、かつ同じアドレス線に接続された同じまたは他のCLBの他のメモリセルがプログラムされないように、入力電圧を制御する。どのデータ線がプログラミング電圧を受取りどのデータ線がプログラミング防止電圧を受取るかを指定するために、マスクレジスタおよび追加のマスク線がFPGAに追加される。
【0013】
別の実現例に従うと、CLB分割での部分的再構成は、再構成を目的とした個々のCLBの選択を可能にするようにFPGAを結線接続(hardwiring)することで達成される。この実現例では、FPGAにはCLB制御レジスタと、CLB制御レジスタによりアドレス指定される水平方向のCLB制御線と、既存のアドレス線に追加される付加的なアドレス線組とが設けられる。CLB制御線および付加アドレス線は、既存のローカルアドレス線にアクセスして、他のCLBに影響を及ぼすことなく個々のCLBの選択および再構成を可能にするために用いられる。
【0014】
別の実現例では、部分的再構成は1ワードの分割においてであり、ここでワードは典型的にCLBの1つの次元(dimension)よりも小さい。したがってFPGAの1CLBを再構成するには、典型的に1列内でいくつかのワードが取り替えられ、CLBにより用いられるいくつかの列が、少なくとも取り替えられるいくつかのワードを有する。しかしながら、この発明は1つの特定の分割には限定されない。どの分割もこの発明の原理からの利益を受けることが可能である。
【0015】
【図面の詳細な説明】
この発明は、FPGAのサイズおよび複雑さの急速な増加に関連する問題を克服する、改良されたFPGAアーキテクチャおよび方法に関する。このアーキテクチャおよび方法は、FPGAの構成可能論理ブロック(CLB)を構成、再構成または部分的再構成する速度および効率を向上させる。この発明の一局面は、CLB分割、またはより細かいメモリセル分割でCLB再構成を可能にする、改良された部分的再構成技術に関する。このことは、共通のアドレス線でアドレス指定されるCLBまたはメモリセルを互いから独立して再構成できることを意味する。この発明の別の局面は、FPGAを構成または再構成するのに用いられるビットストリームのサイズを減少させるための圧縮技術に関する。以下、これらおよびその他の局面を別々に論じる。
【0016】
改良された部分的再構成
CLB分割またはより細かい分割でのFPGAの汎用再構成を達成するための2つの例示的な手法を説明する。一手法は、共通のアドレス線によりアドレス指定されるメモリセルのうち或るいくつかが選択的にプログラムされかつ他のメモリセルがプログラムされないように、メモリセルに印加される入力信号を制御することである。第2の手法は、再構成を目的としたCLBの個々の選択を可能にするようにFPGAアーキテクチャを変形することである。以下にこれらの手法を別々に説明する。
【0017】
技術1 入力で駆動される部分的再構成
図2は、FPGA50を構成、再構成または部分的再構成するのに用いられ得る構成システム40を示す。FPGA50はタイルまたは構成可能論理ブロック(CLB)52の配列を有する。例示の目的からいくつかのCLBのみを示すが、典型的にはFPGA当り数千のCLBがある。FPGAは、隣接するCLB52の垂直方向の線部を接続することによって形成される多数のアドレス線54を有する。FPGAはさらに、隣接するCLB52の水平方向の線部を接続することにより形成される多数のデータ線56を有する。シフトレジスタ58はFPGAにわたり垂直方向にまたがってデータをデータ線56に与え、シャドーレジスタ60は、CLB52のメモリセル内にプログラムされるデータフレームのための一時的記憶を提供する。上述のFPGA50の設計は従来のものであり、当該技術で周知である。
【0018】
構成システム40は、FPGAのデータ線56およびアドレス線54を選択するための論理を提供するデータ選択ユニット62およびアドレス選択ユニット64を含む。データ選択ユニット62およびアドレス選択ユニット64は、アドレス線電圧およびデータ値の特定の組合せをFPGAに与えることで、共通のアドレス線に接続されたメモリセルを選択的にプログラムするように構成される。
【0019】
他については従来型であるFPGA50は、シフトレジスタ58およびシャドーレジスタ60の他に垂直方向に走るマスクレジスタ66を含むように変形される。マスクレジスタ66は、どのメモリセルがプログラミングのためのデータ値の特定の組合せを受取り、どのメモリセルがこれを受取らないかを選択し、こうして部分的再構成領域68が定められる。マスクレジスタ66は各データ行につき制御情報の1ビットを与える。値の一方はメモリセルがプログラムされることを引き起こし、他方の値はセルがプログラムされることを防ぐ。マスクレジスタ66の動作は後により詳細に説明するが、その前にメモリセルの簡単な説明と、アドレス線電圧およびデータ値の組合せが、共通のアドレス線に接続されている選択されたメモリセルをどのようにプログラムするかについての説明とを記載する。
【0020】
図3は、アドレス線Aによりアドレス指定される2つのインバータ72および74を有する標準的な構成可能メモリセル70を示す。アドレス線Aが選択されると、トランジスタ76および78は活性化してインバータ72および74を1対の相補のデータ線D/D′(ここでD′の表記はDバーを指す)に結合する。プログラム中、データ線上のデータビットはインバータ72および74に書込まれ、読出中には、インバータ72および74に記憶されたデータはデータ線上へ伝達される。メモリセル70は、以下の真理値表1にある従来の値および電圧レベルに従ってプログラムまたは読出される。
【0021】
【表1】
Figure 2004505488
【0022】
この従来の手法に従うと、1または0の値をデータ線D上に(逆の値をデータ線D′上に)置いて電圧Vddをアドレス線に印加することにより、共通のアドレス線Aにより接続されたすべてのメモリセルが同時にプログラムされる。アドレス線に接続されたすべてのメモリセルを読出すには、データ線対を「1」の2進値へハイに駆動してから、これが浮動することを許す。次にアドレス線Aは、トランジスタ76および78をかろうじてオンにするのに十分な電圧Vdd−Vtでストローブされる。インバータ72および74に蓄積された電荷はゆっくりと漏れ出て、メモリセルに記憶された値に依存して反対方向にデータ線を駆動する。
【0023】
この伝統的な手法とは対照的に、改良された部分的再構成方法は、メモリセルが再構成されているかどうかにかかわらず同じ電圧でアドレス線を駆動し、値をデータ線に選択的に印加することで、或るメモリセルが再プログラムされるかどうかを制御する。より具体的には、アドレス線Aはより低い電圧Vdd−Vtにより駆動され、ここでVddは供給電圧(たとえば1.5V)であり、Vtはトランジスタ76および78についてのしきい値電圧(たとえば0.5V)である。より低い電圧を用いるのは、アドレス線A上の電圧をより高い電圧Vddに駆動すると、大きな静電容量を有するデータ線が、再構成されていないメモリセルにある値を破壊してしまうからである。
【0024】
メモリセル70が再プログラムされるべき場合、マスクレジスタ66は第1の2進値(たとえば「0」)を与えて、データをプログラミング処理するためのものとして相補のデータ線対D/D′を選択する。次にデータ値対0/1または1/0が相補のデータ線対D/D′上に置かれ、これに結び付けられたメモリセルをプログラムする。
【0025】
メモリセル70が再プログラムされるべきでない場合、マスクレジスタ66は第2の2進値(たとえば「1」)を与えて相補のデータ線対D/D′を選択し、データ値1/1がデータ線対D/D′上に置かれる。値対1/1を与えることはメモリセルを読出すことに近く、これによりデータがセル内にプログラムされることを効果的に防ぐ。部分的構成入力を以下の真理値表2にまとめる。
【0026】
【表2】
Figure 2004505488
【0027】
図2は、FPGA50に関する部分的再構成方法を例示する。プログラマーが部分的再構成領域68内のCLBのみを再構成したいと望んでいると想定する。アドレス選択ユニット64は、領域68内のCLBによって用いられるアドレス線のうち1本に電圧レベルVdd−Vtを印加する。データ選択ユニット62は「0」のマスク(M)値と、1/0または0/1の値対(メモリセルに書込むべき値に依存する)とを、プログラムされるべきメモリセルに用いられるデータ線に割当てる。同時にデータ選択ユニット62は、「1」のマスク値と1/1の値対とを、プログラムされることを意図していないメモリセルに用いられるデータ線に割当てる。なおこの技術では、再構成領域68は例示を目的として図2に示すただ1つの矩形の範囲ではなく、FPGA全体にわたる多数の領域を占めることもあり得る。
【0028】
アドレス線およびデータ線についての電圧ならびにメモリセル70内の要素のサイズは、値対0/1または1/0がメモリセルをフリップさせかつ値対1/1がそうしないように、より精密に制御できる反転またはトリップポイントを確立するよう選択される。「トリップポイント」とは、データ線D/D′およびアドレス線Aの入力によってインバータ72および74が一方の2進値を記憶することから他方の2進値を記憶することへと切換わる点である。好適な電圧およびサイズは、製造工程およびその他の回路特性に依存する。
【0029】
この第1の部分的再構成技術は、FPGAアーキテクチャに対して行なわれる変更が、メモリセル要素に対する可能なサイズの変更およびマスクレジスタの追加のみである点で有利である。加えて、アドレス線選択ユニットは単一の電圧でアドレスを駆動するだけでよい。メモリセルレベルでの再構成は、アドレス線およびデータ線に印加される電圧レベルにより管理される。
【0030】
技術2 変形FPGAアーキテクチャ
CLB分割での部分的再構成を可能にする別の手法は、個々のCLBがアドレス指定可能となるようFPGAを変形することである。図4は、CLB52、アドレス線54′、データ線56、シフトレジスタ58、およびシャドーレジスタ60がある点で従来のFPGAと類似であるFPGA80を示す。しかし従来のFPGAとは異なり、FPGA80にはさらに、シフトレジスタ58およびシャドーレジスタ60の他に垂直方向に走るCLB制御レジスタ82が設けられる。FPGA80はさらに、既存のアドレス線54′に加えてアドレス線84の付加的な組を含むように変形される。一実現例では、元のアドレス線54′の各々につき付加的なアドレス線84があるため、各CLBにある垂直方向の構成アドレス線の数が2倍になる。さらに図4の実現例では、アドレス線54′が途切れていてCLB境界にわたって連続的でなく、こうしてそれぞれのCLBに対しローカルなアドレス線が形成されることが注目される。図2のFPGA50のアドレス線54と区別するために、ローカルで非連続的なアドレス線を番号54′で参照する。
【0031】
FPGA80はさらに、CLB制御レジスタ82によりアドレス指定される付加的な水平方向のCLBマスク線86を含む。CLB52につき1本のCLBマスク線86があることが好ましい。CLBマスク線86と付加的なアドレス線84とが一緒になって既存のローカルアドレス線54′にアクセスすることで個々のCLB52の選択が可能となり、こうして特定のCLBが他のCLBに影響を及ぼすことなく再構成され得る。
【0032】
図5は、FPGA80から取った2つの隣接する構成可能論理ブロックCLBおよびCLBi+1を示す。標準的な相互接続線部に加え、各CLBには水平方向のCLBマスク線86と、ローカルアドレス線54′につき付加的なアドレス線84とが設けられる。高さ一杯の(full−hight)非ローカルアドレス線84とCLBマスク線86との接合部にはANDゲート88が位置づけられる。ANDゲート88の入力は、非ローカルアドレス線84およびCLBマスク線86に接続され、出力はローカルアドレス線54′に接続される。
【0033】
指定されたCLBを再構成するためには、指定されたCLBを横切る非ローカルアドレス線84およびCLBマスク線86が選択される。ANDゲート88は、入力の両方が選択されるとローカルアドレス線54′を選択する。次に、CLBへ走るデータ線を用いてメモリセルが再構成される。再構成を意図されていないCLBにより用いられる非ローカルアドレス線84および/またはCLBマスク線86は選択解除(deselect)されたまま保たれる。以下の表4で再構成の制御を例示する。
【0034】
【表3】
Figure 2004505488
【0035】
この第2の部分的再構成技術は、CLB分割での再構成が種々のプロセス条件で確実に信頼できる点で有利である。しかしこれらの要素を追加することで、チップの価格およびサイズは増加する。
【0036】
ビットストリーム圧縮
この発明の別の局面は、FPGAの構成または再構成に用いられるビットストリームのサイズを減少させる圧縮技術に関する。先に注目されたように、FPGAをプログラムする従来の手法は、ビットフレームをシフトレジスタにシフトすること、およびアドレス線をストローブしてアドレス線でアドレス指定されたメモリセルをプログラムすることを伴う。フレーム当りに数千ものビットがあり、さらに数千のアドレス指定可能な位置があるため、繰り返される再構成プロセス中にシフトレジスタは何百万ものビットを扱うことになり、時間が浪費されるおそれがある。
【0037】
一般にビットストリーム圧縮技術では、構成データにある互いに最も類似のフレームが識別される。このようなフレームは同一であることも、または1つもしくはいくつかのワードもしくはビットで異なることもある。次に構成データは再編成され、これらのフレームはグループ化される。1つのフレームと次のフレームとで変化しないデータを除去することで、圧縮されたビットストリームが生成される。フレーム全体でなく個々のワードがロード可能となるよう、FPGAは従来のシフトレジスタの代わりにアドレス指定可能データレジスタを伴って実現される。
【0038】
図6は、シフトレジスタ58の代わりにアドレス指定可能データレジスタ102を実現するFPGA100を示す。アドレス指定可能データレジスタ102はフレーム内のビットの組へのアクセスを可能にする。たとえばアドレス指定可能データレジスタ102は、ビットストリームの各データフレーム(たとえば数千のビット)内にあるNビットのサブフレーム(たとえば16ビットまたは32ビットのワード)へのアドレス指定を可能にする。結果としてNビットサブフレームは、シフトレジスタの長さにわたりレジスタ102の或るアドレス指定可能位置へ順次シフトされる代わりに、この位置に直接書込まれ得るため、従来のシフトレジスタと比較して速度および効率が向上する。
【0039】
FPGA100は、図2に関し先に述べたマスクレジスタを伴って実現され得る。このアーキテクチャでは、プログラマーはアドレス指定可能データレジスタ102内のアドレス位置に1つ以上のデータワードを書込み、次にマスクレジスタ66およびデータ値入力を用いて、他のメモリセルに影響を与えることなくFPGA内での特定のメモリセルをプログラムできる。
【0040】
これに代わりFPGA100はさらに、図4および図5に関して先に述べた変形例で実現され得る。このアーキテクチャでは、プログラマーはアドレス指定可能データレジスタ102内のアドレス位置に1つ以上のデータワードを書込み、次にCLB制御レジスタ82、CLBマスク線86、および非ローカルアドレス線84を用いて、他のCLBに影響を与えることなく特定のCLBをプログラムできる。
【0041】
図7は、FPGAを構成または再構成する速度を向上させるためのビットストリーム圧縮プロセスを実現する構成システム150を示す。構成システム150は、FPGAを構成および/または再構成するのに用いられる圧縮されたビットストリームを生成するプログラミング装置152を有する。プログラミング装置152はプロセッサ154、データメモリ156およびプログラムメモリ158を有する。プログラミング装置152はたとえば汎用コンピュータで実現され得る。
【0042】
構成データ160はデータメモリ156で記憶される。構成データ160は、FPGAの完全な構成のためのデータを含む。構成データ160は、FPGAを構成するのに必要なデータフレーム、コマンドおよびアドレスを含む限り、圧縮されていないビットストリームとして実施しても、または或る他の形式で実施してもよい。プログラミング装置152は構成データ160を圧縮ビットストリームに圧縮し、これはデータメモリ156でファイル162として記憶、プログラム可能読出専用メモリ(PROM)にプログラミング、またはFPGA(ともに番号164で参照する)にロードされ得る。圧縮技術は特に、アドレス指定可能データレジスタ102を有するFPGA100に好適である。しかし圧縮技術の機構の或るものは、FPGA50(図2)およびFPGA80(図4)などアドレス指定可能データレジスタを実現しない他の種類のFPGAと効果的に用いることができる。
【0043】
プログラムメモリ158には圧縮プログラム170が記憶され、これはプロセッサ154で実行される。圧縮プログラム170はフレームアナライザ要素172を有し、これは構成データ160を評価して、所与のフレームについて構成データ内で最も類似のフレームを識別する。最も類似のフレームは、すべてのワードまたはビットが同じである同一フレームであることも、いくつかのビットまたはワードのみが所与のフレームにあるものと異なっている類似フレームであることもある。フレームアナライザ172はさらに、他では同一である2つの次フレーム候補(すなわち現在のフレームと次のフレームとで変化するビット/ワードの数が同じ)間での差別化を、コスト分析に従い行なうことができる。コスト分析は、圧縮されたビットストリームから次に取るとすればどのフレームが結果としてよりコストの少ないプログラムシーケンスをもたらすかを評価する。
【0044】
圧縮プログラム170は、構成データ内のフレームを再編成して類似のフレームをグループ化するためのフレームリオーダラ要素174を有し、これにより1フレームと次フレームとで変化するデータビットの数が最小限にされる。フレームリオーダラ174は次に、1フレームと次フレームとで変化しない重複ワード/ビットを除去して、(もしあれば)変化するワード/ビットと、このデータでセルをプログラムすることを意図したアドレス線およびデータ線を選択するための対応するコマンドおよびアドレスとのみを残すことによって、圧縮されたビットストリームを生成する。この結果、圧縮されていないデータ160よりも小さな圧縮ビットストリームが得られる。
【0045】
圧縮プログラム170をソフトウェアプログラムとして例示しているが、これに代えて、プロセッサ154または他の専用の要素の一部としてハードウェアまたはファームウェアで実現してもよい。
【0046】
図8は、圧縮プログラム170で実施される一般的な圧縮プロセスをより詳細に示す。ステップ200において、構成データ160が作成されてデータメモリ156に記憶される。構成データは、FPGAを完全に構成するのに十分なデータおよびコマンドを含む。ステップ202で、圧縮プログラム170は分析のために構成データからフレームを選択する。このフレームはデータバッファまたはメモリに記憶される。次に、選択されたフレームについてビットストリーム部分が生成される(ステップ204)。このビットストリーム部分はロードコマンドを含み、これにデータフレームが続き、これにストローブコマンドが続くが、これは、データフレームでプログラムされるメモリセルを選択するのに用いられる適当なアドレス線をアサートするためのものである。
【0047】
ステップ206で、フレームアナライザ172は構成データ内の他のフレームを選択されたフレームと比較する。一実現例では、フレームアナライザ172は各フレーム対をワードごとに比較する。対応する各ワード対につき、アナライザ172は2つのワードが一致するかどうかを判断する(ステップ206Aおよび206B)。ワードが一致すればプロセスは次の2つのワードへと継続する。ワードが一致しなければ、比較されているフレーム内のワードはマークされ、または他で識別されて、ワードカウントが増分される(ステップ206C)。このサブプロセスは、一致しないワードのカウントとマークされたワードの一覧とを出力する。
【0048】
この比較から、フレームアナライザ172は選択されたフレームと最も類似のフレームを識別する(ステップ208)。最も類似のフレームは同一(すなわちマークされたワードがない)または類似(すなわち1つまたはいくつかのワードがマークされている)であり得る。
【0049】
選択されたフレームと最も類似のものとして2つの「次フレーム」候補が一緒に現れた場合には、フレームアナライザ172はコスト分析を行なって、2つの次フレーム候補のうちどちらがより好都合かを判断できる。この最適化は、高速化および処理のためのクロックサイクルの減少という観点から、どのフレーム順序の処理コストが結果としてより少ないかについての分析に基づく。もし構造体が、新たなアドレスを受取らずにアドレスを増分できる回路を含んでいれば、完全なアドレスを与えるよりもアドレスを次の隣接するアドレスへ増分するほうが低コストである。たとえば2つの次フレーム候補が、選択されたフレームとは異なるワードを2つしか有さないと想定する。さらに、これらフレームのうち第1のフレームにある2つのワードがフレーム内で隣接しており、一方でこれらフレームのうち第2のフレームにある2つのワードは遠く離れていると想定する。フレームアナライザ172は第1のフレームがより低コストであると考えるが、これは、フレーム内で離れているワードを書込むよりも、フレーム内の隣接するワードをモディファイしてこれらワードをアドレス指定可能データレジスタに書込むほうが、必要となるビットストリームコマンドが少ないからである。
【0050】
これに従い、フレームアナライザ172は最適化分析を実現するよう構成され得るが、これは以下の規則に従って、他では同一の次フレーム候補を格付けする。
【0051】
規則1 現在のフレームとは異なるワードが最も少数であるフレームを識別
規則2 マークされたワードの塊(clump)がより少数であるフレームを、マークされたワードが遠く離れているフレームよりも優先して選ぶ
規則3 選択されたフレームに隣接するフレームを、選択されたフレームから遠く離れたフレームよりも優先して選ぶ
フレームリオーダラ174は、最も類似のフレームが圧縮ビットストリーム内で逐次続くようにフレームを再編成する。このことは、次フレームが同一であるかどうかに依存して2つのやり方のうち1つで行なわれる(ステップ210)。次フレームが同一(すなわちステップ210から“YES”の分岐)であれば、フレームリオーダラ174は次フレームについてのストローブコマンドおよびアドレスを有するビットストリーム部分を生成するが、冗長なデータフレームを含まない(ステップ212)。こうして元の構成データは圧縮されるが、これは次フレームについてのロードコマンドおよびデータフレームがビットストリームから完全に除去されるからである。
【0052】
次フレームが同一でない(すなわちステップ210から“NO”の分岐)場合、フレームリオーダラ174は、次フレームについて、現在のフレームとは異なるビット/ワードと、ビット/ワードをロードするためのロードコマンドと、ストローブコマンドおよびアドレスとのみを含む、ビットストリーム部分を生成する(ステップ214)。大量のデータが除去されるため、やはり元の構成データは圧縮される。
【0053】
残るフレームと次のフレームとの比較についてプロセスは継続する。この反復的な手法の結果として、圧縮されたビットストリームファイル162が得られる。
【0054】
図9は、圧縮プロセスを例示するため、圧縮されていないビットストリーム250と圧縮されたビットストリーム260の対応する部分とを部分的に示す。圧縮されていないビットストリーム250は多数のデータフレーム252からなり、これらを、データフレームDF、…、DFi+j、…、DFi+kなど、で表わす。ビットストリームはデータフレーム252の各々につき多数のロードコマンド254を有し、これらをLC、…、LCi+j、…、LCi+kなどと表わす。各ロードコマンドはFPGAに対し、対応するデータフレームをアドレス指定可能レジスタにロードするよう指示する。ロードコマンドは典型的に、続くデータフレームの長さを示すサイズ情報を含む。ビットストリーム250はさらにデータフレームの各々につきストローブコマンド256を有し、これらをSC、…、SCi+j、…、SCi+kなどと表わす。各ストローブコマンドは、対応するデータフレームで特定のメモリセルをプログラムするために選択されるアドレス線を識別する。
【0055】
圧縮ビットストリーム260は図8の圧縮プロセスの結果として作成される。この例では、第1のデータフレームDFが選択されたフレームであり、データフレームDFi+kが次の最も類似したフレーム(これは選択されたフレームと偶然同一である)であり、データフレームDFi+jが次の最も類似のフレームであると想定する。この場合、同一のデータフレームDFi+kおよび対応するロードコマンドLCi+kは除去され、こうしてビットストリームが圧縮され、対応するストローブコマンドSCi+kは、選択されたデータフレームDFのストローブコマンドSCに続くようにビットストリーム内で再び順序づけられる。こうして、同じデータが逐次のストローブコマンドを介しセルの2つの異なった列をプログラムするのに用いられる。
【0056】
類似のデータフレームDFi+jは、選択されたデータフレームDFに続くようにビットストリームで再編成される。この類似のデータフレームもまたそのサイズにおいて減少し、データフレームDFから類似のデータフレームDFi+jにかけて変化するワードと、アドレス指定可能データレジスタについてのワードアドレスとのみを含むようにされる。減少したデータフレームをWordi+jとして図示する。ロードコマンドは、ワードをロードするためのアドレス指定可能レジスタのアドレスを含むロードワードコマンド(LW)と取り替えられる。多数のワードが変化する場合、LW−Word−SCシーケンスの多数の組合せがビットストリーム内でつなぎ合わされるが、これはなおもデータフレーム全体よりも小さなサイズである。これらの変化を通じ、圧縮ビットストリーム260は圧縮されていないビットストリーム250よりも著しく小さくなる。
【0057】
同一のフレームについての例示の圧縮プロセス
図8に例示したプロセスは、同一のフレームおよび類似のフレームの両方を考慮した一般的な圧縮技術を説明している。図10は、図8のプロセスの特定の一実現例に従う、同一のフレームを除去するためのビットストリーム圧縮方法を示す。
【0058】
ステップ300で、構成データが作成されデータメモリに記憶される。構成データは、FPGAを完全に構成するのに十分なデータおよびコマンドを含む。ステップ302で、圧縮プログラムは“Frame_Equal(等しいフレーム)”と呼ぶ整数配列を「−1」などの値へ初期設定する。次に圧縮プログラムは、分析のためにフレームを構成データから選択する(ステップ304)。このフレームはデータバッファまたはメモリに記憶される。
【0059】
ステップ306で、圧縮プログラムは選択されたフレームを各々の後続フレームと比較する。後続フレームのいずれかが選択されたフレームと同一(すなわちステップ308から“YES”の分岐)であれば、圧縮プログラムはこのフレームについてのFrame_Equal配列項目を、現在のフレームの番号に等しく設定することで現在のフレームを参照する(ステップ310)。加えて圧縮プログラムは、“Frame_Duplicate(重複フレーム)”として知られる第2のパラメータを真(TRUE)に設定することで、選択されたフレームが構成データのどこか他のところで重複フレームを有することを示す。選択されたフレームの後にあるすべてのフレームが比較されると、プロセスは構成データにある次のフレームを選択するが、これをステップ314からの“NO”分岐およびステップ304へ戻る矢印で表わす。
【0060】
すべてのフレームが重複について評価されると(すなわちステップ314から“YES”の分岐)、プログラムは初期フレームカウントを第1のフレーム0に設定し(ステップ316)、このフレームについてのプログラミングデータを書込む(ステップ318)。ステップ320で圧縮プログラムは、フレームについてのFrame_Duplicateが真であるかどうかを調べることにより、まだ別の重複フレームがあるかどうかを判断する。もしなければ、プログラムは単にこのフレームについてのプログラミングデータを書込む(ステップ322)。当業者であれば、フレーム0の場合にはこのステップ322を省略できることが理解されるであろうが、なぜならこのフレームについてのプログラミングデータは既にステップ318で書込まれているからである。
【0061】
Frame_Duplicateが真(すなわちステップ320からの“YES”分岐)であれば、プログラムはフレームの残りを評価して重複フレームを探す。このことは、最初の場合でのフレーム0などの現在のフレームと等しい項目があるかどうかについてFrame_Equal配列を調べることで行なわれる(ステップ324)。次にプログラムは、重複フレームを考慮するための多数の書込コマンドを実行する(ステップ326)。
【0062】
判断ステップ328で表わすように、プロセスは構成データの全フレームについて継続する。最後のフレームにまだ達していない(すなわちステップ328からの“NO”分岐)場合、フレームカウントは増分され(ステップ330)、次のフレームに対応する項目が−1の初期値に等しいか、または第2のフレームを参照する値に等しいかを判断するために、Frame_Equal配列が調べられる(ステップ332)。このステップは、このフレームが既に重複フレームについて考慮されているかどうかを見分ける。Frame_Equalが−1の初期値に設定されていなければ(すなわちステップ332からの“NO”分岐)、圧縮プログラムはこのフレームについてのプログラミングデータを書込み(ステップ334)、このフレームがステップ320で他の重複を有しているかどうかについて評価を継続する。逆に、Frame_Equalが初期値と等しければ(すなわちステップ332からの“YES”の分岐)、プロセスは直接ステップ320に進む。
【0063】
類似のデータフレームについては、プロセスは上述のものと同様である。最も類似のデータフレームが識別されると、このデータフレーム(Wordi+j)についての変化したビットがビットストリームに追加され、最も類似のフレームは選択されたフレームとなる。プロセスを繰返し、すべてのフレームが考慮されるまで、すべての書込まれていないフレームを新たに選択されたフレームと比較する。
【0064】
構造的な特徴および/または方法上のステップに特有の言語でこの発明を説明したが、前掲の特許請求の範囲で規定したこの発明は、記載された特定の特徴またはステップに限定される必要はないことが理解されるべきである。特定の特徴またはステップはむしろ、請求される発明を実現する好ましい形として開示されたものである。
【図面の簡単な説明】
【図1】従来のフィールドプログラマブルゲートアレイ(FPGA)を例示する図である。
【図2】メモリセル分割でFPGAを部分的に再構成する構成システムを例示する図である。
【図3】図2のFPGAの構成可能論理ブロックで採用される構成可能メモリセルを示す回路図である。
【図4】CLB分割で部分的再構成を可能にする変形アーキテクチャを有するFPGAを例示する図である。
【図5】図4のFPGAの隣接する構成可能論理ブロックを例示する図である。
【図6】アドレス指定可能データレジスタを有するフィールドプログラマブルゲートアレイ(FPGA)を例示する図である。
【図7】ビットストリーム圧縮プロセスを実現する構成システムを示すブロック図である。
【図8】図7の構成システムにより実現されるビットストリーム圧縮プロセスを用いてFPGAを構成するための方法を示す流れ図である。
【図9】圧縮されていない状態および圧縮された状態でのビットストリームを例示する図である。
【図10】ビットストリームを圧縮して同一のフレームを除去するための方法を示す流れ図である。

Claims (9)

  1. フィールドプログラマブルゲートアレイ(FPGA)を部分的に構成するための方法であって、前記FPGAは、多数のアドレス線および多数のデータ線対により接続された構成可能論理ブロック(CLB)の配列を有し、前記方法は、
    少なくとも1本のアドレス線でアドレス指定された1つ以上の第1のCLBを再構成するステップと、
    同時に、前記アドレス線によりアドレス指定された第2のCLBの再構成を防ぐステップとを含む、方法。
  2. 再構成を防ぐ前記ステップは、第1のCLBに接続された相補のデータ線対に第1のデータ値を、および第2のCLBに接続された相補のデータ線対に第2のデータ値を与えることによって、選択的に第1のCLBを再構成するステップを含む、請求項1に記載の方法。
  3. 前記FPGAはさらに複数のマスク線を有し、前記マスク線の各々はデータ線対のうち少なくとも1本により用いられ、前記再構成するステップは、第1のデータ値を受取るべきデータ線対と関連づけられたマスク線に第1の値を与えるステップと、第2のデータ値を受取るべきデータ線対と関連づけられたマスク線に第2の値を与えるステップとを含む、請求項1に記載の方法。
  4. 前記FPGAはさらに、前記マスク線の各々と関連づけられたレジスタを含み、前記レジスタは、関連づけられたマスク線に対応する行を構成すべきかどうかを示すマスクビットを記憶する、請求項3に記載の方法。
  5. 前記FPGAはさらに、前記少なくとも1本のアドレス線の各々について複数のローカルアドレス線と、アドレス線を対応するローカルアドレス線に接続するためのロジックとを有し、前記再構成するステップは、前記ローカルアドレス線のうち1本以上を選択することによって、第2のCLBにアクセスすることとは独立に第1のCLBにアクセスするステップを含む、請求項1に記載の方法。
  6. フィールドプログラマブルゲートアレイ(FPGA)を部分的に構成するための方法であって、前記FPGAは多数の構成可能論理ブロック(CLB)と、多数のアドレス線と、多数の相補のデータ線対と、アドレス線の各々について少なくとも1本のローカルアドレス線と、構成データの各ワードについてのワード制御線と、ワード制御線およびアドレス線を対応するローカルアドレス線に接続するためのロジックとを有し、前記方法は、
    1本以上のワード制御線および1本以上のアドレス線を選択することで、選択されたワードにアクセスするステップと、
    1本以上のワード制御線を選択解除することで、アドレス線によりアドレス指定された選択解除されたワードへのアクセスを防ぐステップとを含む、方法。
  7. 請求項6に記載の前記方法の結果としてプログラムされたフィールドプログラマブルゲートアレイ(FPGA)。
  8. フィールドプログラマブルゲートアレイ(FPGA)であって、
    構成可能論理ブロック(CLB)の配列を含み、各CLBは少なくとも1本のローカルアドレス線および多数のデータ線を有し、前記FPGAはさらに、
    データ線を介しCLBをプログラムするためにプログラミングデータを受取るためのアドレス指定可能データレジスタを含む、FPGA。
  9. アドレス指定可能データレジスタに接続されて、データレジスタがより多くのプログラミングデータを受取るために自由であるようプログラミングデータを一時的に保持するための、第2のレジスタをさらに含む、請求項8に記載のFPGA。
JP2002514890A 2000-07-25 2001-07-16 Fpgaを部分的に再構成するためのアーキテクチャおよび方法 Expired - Lifetime JP4686107B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/624,818 US6526557B1 (en) 2000-07-25 2000-07-25 Architecture and method for partially reconfiguring an FPGA
PCT/US2001/022120 WO2002009287A2 (en) 2000-07-25 2001-07-16 Architecture and method for partially reconfiguring an fpga

Publications (2)

Publication Number Publication Date
JP2004505488A true JP2004505488A (ja) 2004-02-19
JP4686107B2 JP4686107B2 (ja) 2011-05-18

Family

ID=24503428

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002514890A Expired - Lifetime JP4686107B2 (ja) 2000-07-25 2001-07-16 Fpgaを部分的に再構成するためのアーキテクチャおよび方法

Country Status (6)

Country Link
US (1) US6526557B1 (ja)
EP (1) EP1303913B1 (ja)
JP (1) JP4686107B2 (ja)
CA (1) CA2415281C (ja)
DE (1) DE60138106D1 (ja)
WO (1) WO2002009287A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7533249B2 (en) 2006-10-24 2009-05-12 Panasonic Corporation Reconfigurable integrated circuit, circuit reconfiguration method and circuit reconfiguration apparatus
JP2010002986A (ja) * 2008-06-18 2010-01-07 Nec Corp 再構成可能電子回路装置

Families Citing this family (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7242229B1 (en) 2001-05-06 2007-07-10 Altera Corporation Phase locked loop (PLL) and delay locked loop (DLL) counter and delay element programming in user mode
US7558967B2 (en) * 2001-09-13 2009-07-07 Actel Corporation Encryption for a stream file in an FPGA integrated circuit
US6920627B2 (en) * 2002-12-13 2005-07-19 Xilinx, Inc. Reconfiguration of a programmable logic device using internal control
US6907595B2 (en) * 2002-12-13 2005-06-14 Xilinx, Inc. Partial reconfiguration of a programmable logic device using an on-chip processor
KR100514196B1 (ko) * 2003-02-14 2005-09-13 삼성전자주식회사 네트웍 어드레스 변환 및 세션 관리 시스템 및 그 방법
US6897676B1 (en) 2003-06-04 2005-05-24 Xilinx, Inc. Configuration enable bits for PLD configurable blocks
US7237106B1 (en) * 2003-07-18 2007-06-26 Altera Corporation System for loading configuration data into a configuration word register by independently loading a plurality of configuration blocks through a plurality of configuration inputs
US7170315B2 (en) 2003-07-31 2007-01-30 Actel Corporation Programmable system on a chip
US7521960B2 (en) * 2003-07-31 2009-04-21 Actel Corporation Integrated circuit including programmable logic and external-device chip-enable override control
US7636655B1 (en) * 2003-12-08 2009-12-22 Altera Corporation Extracting synchronous secondary signals by functional analysis
US7870182B2 (en) * 2003-12-29 2011-01-11 Xilinx Inc. Digital signal processing circuit having an adder circuit with carry-outs
US7853632B2 (en) * 2003-12-29 2010-12-14 Xilinx, Inc. Architectural floorplan for a digital signal processing circuit
US7844653B2 (en) * 2003-12-29 2010-11-30 Xilinx, Inc. Digital signal processing circuit having a pre-adder circuit
US7840627B2 (en) 2003-12-29 2010-11-23 Xilinx, Inc. Digital signal processing circuit having input register blocks
US7853634B2 (en) * 2003-12-29 2010-12-14 Xilinx, Inc. Digital signal processing circuit having a SIMD circuit
US7567997B2 (en) * 2003-12-29 2009-07-28 Xilinx, Inc. Applications of cascading DSP slices
US7480690B2 (en) * 2003-12-29 2009-01-20 Xilinx, Inc. Arithmetic circuit with multiplexed addend inputs
US7467175B2 (en) * 2003-12-29 2008-12-16 Xilinx, Inc. Programmable logic device with pipelined DSP slices
US7860915B2 (en) * 2003-12-29 2010-12-28 Xilinx, Inc. Digital signal processing circuit having a pattern circuit for determining termination conditions
US7472155B2 (en) * 2003-12-29 2008-12-30 Xilinx, Inc. Programmable logic device with cascading DSP slices
US7849119B2 (en) * 2003-12-29 2010-12-07 Xilinx, Inc. Digital signal processing circuit having a pattern detector circuit
US8495122B2 (en) * 2003-12-29 2013-07-23 Xilinx, Inc. Programmable device with dynamic DSP architecture
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
US7853636B2 (en) 2003-12-29 2010-12-14 Xilinx, Inc. Digital signal processing circuit having a pattern detector circuit for convergent rounding
US7840630B2 (en) * 2003-12-29 2010-11-23 Xilinx, Inc. Arithmetic logic unit circuit
WO2005073866A2 (en) * 2004-01-21 2005-08-11 Charles Stark Draper Laboratory, Inc. Systems and methods for reconfigurable computing
US8581610B2 (en) * 2004-04-21 2013-11-12 Charles A Miller Method of designing an application specific probe card test system
US7138824B1 (en) * 2004-05-10 2006-11-21 Actel Corporation Integrated multi-function analog circuit including voltage, current, and temperature monitor and gate-driver circuit blocks
US7099189B1 (en) 2004-10-05 2006-08-29 Actel Corporation SRAM cell controlled by non-volatile memory cell
US7149997B1 (en) * 2004-10-15 2006-12-12 Xilinx, Inc. Routing with frame awareness to minimize device programming time and test cost
US7116181B2 (en) * 2004-12-21 2006-10-03 Actel Corporation Voltage- and temperature-compensated RC oscillator circuit
US7119398B1 (en) 2004-12-22 2006-10-10 Actel Corporation Power-up and power-down circuit for system-on-a-chip integrated circuit
US7446378B2 (en) * 2004-12-29 2008-11-04 Actel Corporation ESD protection structure for I/O pad subject to both positive and negative voltages
JP5200029B2 (ja) * 2006-11-20 2013-05-15 コデイアン・リミテツド テレビ会議用ハードウエアアーキテクチャー
JP5157514B2 (ja) * 2008-02-21 2013-03-06 日本電気株式会社 構成情報生成装置、構成情報生成制御方法、及びプログラム
US8479133B2 (en) * 2009-01-27 2013-07-02 Xilinx, Inc. Method of and circuit for implementing a filter in an integrated circuit
US8543635B2 (en) * 2009-01-27 2013-09-24 Xilinx, Inc. Digital signal processing block with preadder stage
FI20095195A0 (fi) * 2009-02-27 2009-02-27 Valtion Teknillinen Menetelmä turvallisen etäuudelleenkonfiguraation tekemiseksi ohjelmoitavaan edulliseen FPGA-laitteistoon
CN101814316B (zh) * 2010-04-28 2012-05-30 中国航天科技集团公司第五研究院第五一三研究所 一种静态存储型现场可编程逻辑门阵列的配置方法
US8532100B2 (en) 2010-10-19 2013-09-10 Cisco Technology, Inc. System and method for data exchange in a heterogeneous multiprocessor system
DE102011107550A1 (de) 2011-07-16 2013-01-17 Volkswagen Aktiengesellschaft Notlaufbetrieb von Komponenten in einem Kraftfahrzeug
JP2013030906A (ja) 2011-07-27 2013-02-07 Fujitsu Ltd プログラマブルロジックデバイス
US9470759B2 (en) * 2011-10-28 2016-10-18 Teradyne, Inc. Test instrument having a configurable interface
US9759772B2 (en) 2011-10-28 2017-09-12 Teradyne, Inc. Programmable test instrument
US10776233B2 (en) 2011-10-28 2020-09-15 Teradyne, Inc. Programmable test instrument
US8633730B1 (en) 2012-08-17 2014-01-21 Xilinx, Inc. Power control using global control signal to selected circuitry in a programmable integrated circuit
US8786310B1 (en) * 2012-08-17 2014-07-22 Xilinx, Inc. Partially programming an integrated circuit using control memory cells
US10270709B2 (en) 2015-06-26 2019-04-23 Microsoft Technology Licensing, Llc Allocating acceleration component functionality for supporting services
US8751997B1 (en) * 2013-03-14 2014-06-10 Xilinx, Inc. Processing a fast speed grade circuit design for use on a slower speed grade integrated circuit
US9619423B1 (en) * 2013-10-29 2017-04-11 Altera Corporation Memory-mapped state bus for integrated circuit
EP2894572B1 (en) 2014-01-09 2018-08-29 Université de Rennes 1 Method and device for programming a FPGA
US10511478B2 (en) 2015-04-17 2019-12-17 Microsoft Technology Licensing, Llc Changing between different roles at acceleration components
US10198294B2 (en) 2015-04-17 2019-02-05 Microsoft Licensing Technology, LLC Handling tenant requests in a system that uses hardware acceleration components
US9792154B2 (en) 2015-04-17 2017-10-17 Microsoft Technology Licensing, Llc Data processing system having a hardware acceleration plane and a software plane
US10296392B2 (en) 2015-04-17 2019-05-21 Microsoft Technology Licensing, Llc Implementing a multi-component service using plural hardware acceleration components
US10216555B2 (en) 2015-06-26 2019-02-26 Microsoft Technology Licensing, Llc Partially reconfiguring acceleration components
US9576625B1 (en) * 2015-10-08 2017-02-21 Altera Corporation Register initialization using multi-pass configuration
US9965356B2 (en) 2016-09-02 2018-05-08 Alibaba Group Holding Limited Method and system of high-availability PCIE SSD with software-hardware jointly assisted implementation to enhance immunity on multi-cell upset
US10152566B1 (en) 2016-09-27 2018-12-11 Altera Corporation Constraint based bit-stream compression in hardware for programmable devices
US10824786B1 (en) 2016-10-05 2020-11-03 Xilinx, Inc. Extend routing range for partial reconfiguration
US10303648B1 (en) 2017-05-19 2019-05-28 Xilinx, Inc. Logical and physical optimizations for partial reconfiguration design flow
US11159167B2 (en) 2017-09-25 2021-10-26 Intel Corporation Techniques for reducing uneven aging in integrated circuits
US10223014B1 (en) * 2017-09-28 2019-03-05 Intel Corporation Maintaining reconfigurable partitions in a programmable device
US10558777B1 (en) 2017-11-22 2020-02-11 Xilinx, Inc. Method of enabling a partial reconfiguration in an integrated circuit device
US11567881B1 (en) 2018-04-03 2023-01-31 Xilinx, Inc. Event-based debug, trace, and profile in device with data processing engine array
US10635622B2 (en) 2018-04-03 2020-04-28 Xilinx, Inc. System-on-chip interface architecture
US10824584B1 (en) 2018-04-03 2020-11-03 Xilinx, Inc. Device with data processing engine array that enables partial reconfiguration
US10866753B2 (en) 2018-04-03 2020-12-15 Xilinx, Inc. Data processing engine arrangement in a device
US10579559B1 (en) 2018-04-03 2020-03-03 Xilinx, Inc. Stall logic for a data processing engine in an integrated circuit
US11372803B2 (en) 2018-04-03 2022-06-28 Xilinx, Inc. Data processing engine tile architecture for an integrated circuit
US11016822B1 (en) 2018-04-03 2021-05-25 Xilinx, Inc. Cascade streaming between data processing engines in an array
US10747690B2 (en) 2018-04-03 2020-08-18 Xilinx, Inc. Device with data processing engine array
US11379389B1 (en) 2018-04-03 2022-07-05 Xilinx, Inc. Communicating between data processing engines using shared memory
US10747531B1 (en) 2018-04-03 2020-08-18 Xilinx, Inc. Core for a data processing engine in an integrated circuit
US11061673B1 (en) 2018-04-03 2021-07-13 Xilinx, Inc. Data selection network for a data processing engine in an integrated circuit
US11113223B1 (en) 2018-04-03 2021-09-07 Xilinx, Inc. Dual mode interconnect
US10990552B1 (en) 2018-04-03 2021-04-27 Xilinx, Inc. Streaming interconnect architecture for data processing engine array
US10608641B2 (en) 2018-07-20 2020-03-31 Xilinx, Inc. Hierarchical partial reconfiguration for programmable integrated circuits
US11016781B2 (en) 2019-04-26 2021-05-25 Samsung Electronics Co., Ltd. Methods and memory modules for enabling vendor specific functionalities
US10891414B2 (en) 2019-05-23 2021-01-12 Xilinx, Inc. Hardware-software design flow for heterogeneous and programmable devices
US10651853B1 (en) 2019-05-23 2020-05-12 Xilinx, Inc. Timing insulation circuitry for partial reconfiguration of programmable integrated circuits
US11449347B1 (en) 2019-05-23 2022-09-20 Xilinx, Inc. Time-multiplexed implementation of hardware accelerated functions in a programmable integrated circuit
US10891132B2 (en) 2019-05-23 2021-01-12 Xilinx, Inc. Flow convergence during hardware-software design for heterogeneous and programmable devices
US11188312B2 (en) 2019-05-23 2021-11-30 Xilinx, Inc. Hardware-software design flow with high-level synthesis for heterogeneous and programmable devices
US11301295B1 (en) 2019-05-23 2022-04-12 Xilinx, Inc. Implementing an application specified as a data flow graph in an array of data processing engines
US10990547B2 (en) 2019-08-11 2021-04-27 Xilinx, Inc. Dynamically reconfigurable networking using a programmable integrated circuit
US10977018B1 (en) 2019-12-05 2021-04-13 Xilinx, Inc. Development environment for heterogeneous devices
US11055106B1 (en) 2019-12-18 2021-07-06 Xilinx, Inc. Bootstrapping a programmable integrated circuit based network interface card
US11144652B1 (en) * 2019-12-19 2021-10-12 Xilinx, Inc. Secure update of programmable integrated circuits in data center computing environments
US11443091B1 (en) 2020-07-31 2022-09-13 Xilinx, Inc. Data processing engines with cascade connected cores
US11496418B1 (en) 2020-08-25 2022-11-08 Xilinx, Inc. Packet-based and time-multiplexed network-on-chip
US11295000B1 (en) 2020-09-28 2022-04-05 Xilinx, Inc. Static configuration of accelerator card security modes
US11288222B1 (en) 2020-09-28 2022-03-29 Xilinx, Inc. Multi-die integrated circuit with data processing engine array
US11922223B1 (en) 2021-02-08 2024-03-05 Xilinx, Inc. Flexible data-driven software control of reconfigurable platforms
US11336287B1 (en) 2021-03-09 2022-05-17 Xilinx, Inc. Data processing engine array architecture with memory tiles
US11520717B1 (en) 2021-03-09 2022-12-06 Xilinx, Inc. Memory tiles in data processing engine array
US11456951B1 (en) 2021-04-08 2022-09-27 Xilinx, Inc. Flow table modification for network accelerators
US11606317B1 (en) 2021-04-14 2023-03-14 Xilinx, Inc. Table based multi-function virtualization
US11886789B1 (en) 2021-07-07 2024-01-30 Xilinx, Inc. Block design containers for circuit design
US11610042B1 (en) 2021-09-28 2023-03-21 Xilinx, Inc. Scalable scribe regions for implementing user circuit designs in an integrated circuit using dynamic function exchange
US11848670B2 (en) 2022-04-15 2023-12-19 Xilinx, Inc. Multiple partitions in a data processing array

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5794243U (ja) * 1980-12-02 1982-06-10
JPH0851356A (ja) * 1994-04-20 1996-02-20 Xilinx Inc プログラマブルアレイ
JPH098647A (ja) * 1995-06-21 1997-01-10 Nippon Telegr & Teleph Corp <Ntt> プログラマブル論理回路
JPH09261040A (ja) * 1984-09-26 1997-10-03 Xilinx Inc プログラム可能論理装置
JP2000124315A (ja) * 1998-10-13 2000-04-28 Hitachi Ltd 半導体集積回路装置
JP2001186010A (ja) * 1999-12-24 2001-07-06 Fujitsu Ltd フィールド・プログラマブル・ゲートアレイ

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9223226D0 (en) * 1992-11-05 1992-12-16 Algotronix Ltd Improved configurable cellular array (cal ii)
US6020758A (en) * 1996-03-11 2000-02-01 Altera Corporation Partially reconfigurable programmable logic device
US5914616A (en) 1997-02-26 1999-06-22 Xilinx, Inc. FPGA repeatable interconnect structure with hierarchical interconnect lines
US6057704A (en) * 1997-12-12 2000-05-02 Xilinx, Inc. Partially reconfigurable FPGA and method of operating same
US6091263A (en) * 1997-12-12 2000-07-18 Xilinx, Inc. Rapidly reconfigurable FPGA having a multiple region architecture with reconfiguration caches useable as data RAM
US6102963A (en) * 1997-12-29 2000-08-15 Vantis Corporation Electrically erasable and reprogrammable, nonvolatile integrated storage device with in-system programming and verification (ISPAV) capabilities for supporting in-system reconfiguring of PLD's
US6262596B1 (en) * 1999-04-05 2001-07-17 Xilinx, Inc. Configuration bus interface circuit for FPGAS

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5794243U (ja) * 1980-12-02 1982-06-10
JPH09261040A (ja) * 1984-09-26 1997-10-03 Xilinx Inc プログラム可能論理装置
JPH0851356A (ja) * 1994-04-20 1996-02-20 Xilinx Inc プログラマブルアレイ
JPH098647A (ja) * 1995-06-21 1997-01-10 Nippon Telegr & Teleph Corp <Ntt> プログラマブル論理回路
JP2000124315A (ja) * 1998-10-13 2000-04-28 Hitachi Ltd 半導体集積回路装置
JP2001186010A (ja) * 1999-12-24 2001-07-06 Fujitsu Ltd フィールド・プログラマブル・ゲートアレイ

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7533249B2 (en) 2006-10-24 2009-05-12 Panasonic Corporation Reconfigurable integrated circuit, circuit reconfiguration method and circuit reconfiguration apparatus
JP2010002986A (ja) * 2008-06-18 2010-01-07 Nec Corp 再構成可能電子回路装置

Also Published As

Publication number Publication date
CA2415281C (en) 2010-09-28
EP1303913B1 (en) 2009-03-25
EP1303913A2 (en) 2003-04-23
DE60138106D1 (de) 2009-05-07
CA2415281A1 (en) 2002-01-31
JP4686107B2 (ja) 2011-05-18
WO2002009287A3 (en) 2003-02-06
US6526557B1 (en) 2003-02-25
WO2002009287A2 (en) 2002-01-31

Similar Documents

Publication Publication Date Title
JP4686107B2 (ja) Fpgaを部分的に再構成するためのアーキテクチャおよび方法
US6493862B1 (en) Method for compressing an FPGA bitsream
US6323681B1 (en) Circuits and methods for operating a multiplexer array
US5781756A (en) Programmable logic device with partially configurable memory cells and a method for configuration
US8810277B2 (en) Non-sequentially configurable IC
US7716622B2 (en) Memory re-implementation for field programmable gate arrays
US6326807B1 (en) Programmable logic architecture incorporating a content addressable embedded array block
US5500609A (en) Wildcard addressing structure for configurable cellular array
US6137307A (en) Structure and method for loading wide frames of data from a narrow input bus
US7124338B1 (en) Methods of testing interconnect lines in programmable logic devices using partial reconfiguration
JPH07175677A (ja) 高密度プログラマブルロジックデバイス内蔵のシステム内プログラミング用および境界走査用状態マシンのための多重化した制御用ピン
KR20010014129A (ko) 벌크 동작을 위해서 비휘발성 셀의 블럭을 선택하는플래그 레지스터를 구비한 집적 회로
GB2300504A (en) Programmable switch for logic array input/output signals
JPH07509800A (ja) 非破壊的にランダムにアドレス可能なメモリシステム
EP0582660A1 (en) STRUCTURE AND METHOD FOR MULTIPLEXING CONNECTIONS IN PROGRAMMING WITHIN A SYSTEM.
JPH02226811A (ja) プログラム可能な論理装置
JPH07120359B2 (ja) ハードウェアシミュレータにおけるシミュレーション方法
US6507943B1 (en) Method of compressing a bitstream of an FPGA
US5999014A (en) Method for concurrently programming or accessing a plurality of in-system-programmable logic devices
US7314174B1 (en) Method and system for configuring an integrated circuit
JPH09198874A (ja) ランダム・アクセス・メモリ・アレイ
JPH05258586A (ja) 不揮発性半導体メモリ装置
US6115294A (en) Method and apparatus for multi-bit register cell
KR100240913B1 (ko) 반도체 메모리 시스템, 프로그래머블 어레이 및 엑세스 시간 감소 방법 및 시스템
US7143384B1 (en) Methods of routing programmable logic devices to minimize programming time

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080520

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110201

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110214

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

Free format text: PAYMENT UNTIL: 20140218

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4686107

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term