JP4132516B2 - フィールド・プログラマブル・ゲートアレイ - Google Patents
フィールド・プログラマブル・ゲートアレイ Download PDFInfo
- Publication number
- JP4132516B2 JP4132516B2 JP36760199A JP36760199A JP4132516B2 JP 4132516 B2 JP4132516 B2 JP 4132516B2 JP 36760199 A JP36760199 A JP 36760199A JP 36760199 A JP36760199 A JP 36760199A JP 4132516 B2 JP4132516 B2 JP 4132516B2
- Authority
- JP
- Japan
- Prior art keywords
- logic
- configuration
- circuit
- unit
- data
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Logic Circuits (AREA)
Description
【発明の属する技術分野】
この発明はフィールド・プログラマブル・ゲートアレイ(以下、FPGAと呼ぶ)に関し、特に、コンフィギュレーションを分割して行うことのできるFPGAに関する。
【0002】
【従来の技術】
近年、FPGAはパーソナルコンピュータやプリンタ装置等の制御素子として盛んに利用されている。FPGAは、その内部にプログラマブル可能な論理回路を多数備えたゲートアレイであるが、プログラムされる論理回路は一般にSRAMに書き込まれるため、電源を投入するごとに再書き込みが必要である。
FPGAに所望の論理回路を構築するためには、FPGAの外部に、その論理回路の構成をプログラムするためのデータを記憶したROMと、このROMからFPGAへデータをロードする制御回路を設け、電源立ち上げと同時にデータをFPGAにロードするようにしている。
【0003】
また、従来は、FPGAへのデータのロードは、1度にFPGAの中の論理回路の全領域に対して行われていた。以下、FPGAにデータをロードすること、すなわちFPGAの中に所定の機能を持った論理回路を構成することを、FPGAのコンフィギュレーションと呼ぶ。
【0004】
【発明が解決しようとする課題】
しかし、最近のFPGAでは大容量化が進み、数百万ゲートに相当する論理回路を有するものがあり、全領域を1度にコンフィギュレーションするのにかなりの時間(数秒)がかかる。
一方、FPGAが使用される機器は、その処理速度は年々向上し、電源投入時の初期起動時間も短縮化される傾向にあるので、電源投入時に行われるFPGAのコンフィギュレーション時間もできるだけ短くすることが望まれる。
【0005】
コンフィギュレーション時間を短縮するためには、ROMからFPGAへのデータの読み出し速度を速くすることなどが考えられるが、FPGAの容量はますます大容量化していく傾向にあるため、コンフィギュレーションの時間を大きく短縮することはできない。
【0006】
FPGAに構築される論理回路は、全領域の回路全体で一つの機能を実現する場合もあるが、通常いくつかの機能ブロックに分けることができる。各機能ブロックの基本動作は他のブロックとのインタフェース信号さえ一定に決定されていれば誤動作を生じずに正常な動作を確保できる場合もある。
すなわち、ある1つの機能ブロックの論理回路についてコンフィギュレーションが終了した後、他の機能ブロックのコンフィギュレーションがまだ終了していなくても、コンフィギュレーションの終了した機能ブロックのみを動作させることが可能となれば、FPGAの外部回路との関係において見かけ上電源立ち上げ時の初期起動動作を短縮できる。
【0007】
この発明は以上のような事情を考慮してなされたものであり、コンフィギュレーションを分割して行うことのできるFPGAを提供することを課題とする。
【0008】
【課題を解決するための手段】
この発明は、所定の論理回路を構成しうる複数の論理機能部と、複数の論理機能部の相互間の接続信号を論理固定する論理固定部と、前記論理回路を構成するのに必要なプログラムデータを論理固定部と所定の論理機能部に転送する論理構成制御部とを備え、前記論理構成制御部が、所定の順序で複数の論理機能部の論理回路を構成し、1つの論理機能部の論理回路の構成が終了するごとに、その論理機能部と、論理回路の構成がされていない他の論理機能部との間の接続信号の論理を固定するように論理固定部を制御することを特徴とするフィールド・プログラマブル・ゲートアレイを提供するものである。
これによれば、FPGAの論理回路を分割して論理機能部ごとにコンフィギュレーションすることができ、1つの論理機能部のコンフィギュレーションが終了した後、他の論理機能部のコンフィギュレーションを終了を待たずに、コンフィギュレーションが終了した論理機能部を使用できる。
【0009】
また、この発明は、所定の論理回路を構成しうる複数の論理機能部と、各論理機能部ごとに、1つの論理機能部と他の論理機能部との間の接続信号の論理を固定する論理固定部と、1つの論理機能部に論理回路を構成するのに必要なプログラムデータを転送する論理構成制御部とを備え、各論理構成制御部が並行してそれぞれの論理構成制御部に対応する論理機能部の論理回路を構成し、論理回路の構成が終了した論理機能部に対応する論理構成制御部が、その論理機能部と他の論理機能部との間の接続信号の論理を固定するように、その論理機能部に対応した論理固定部を制御することを特徴とするフィールド・プログラマブル・ゲートアレイである。
【0010】
【発明の実施の形態】
この発明において、前記論理回路を構成するのに必要なプログラムデータは、外部記憶媒体から与えられ、分割制御用データ,論理固定用データ,論理機能部ごとの論理回路データ,及び構成終了制御用データを含む。
また、前記論理構成制御部が、前記プログラムデータの数をカウントする計数部を備え、計数部が1つの論理機能部の論理回路データに相当する数をカウントした後、その論理機能部の論理回路の構成が終了したことを前記論理固定部に知らせるようにしてもよい。
さらに、前記論理固定部は、Vccクランプ回路と、GNDクランプ回路と、前記論理固定用データに基づいてVccクランプ回路又はGNDクランプ回路のいずれかを作動させて前記論理機能部相互間の接続信号の論理を決定するクランプ制御回路とから構成することができる。
また、前記論理構成制御部が、前記構成終了制御用データを処理した後、前記論理固定部が行っていた論理固定をすべて解除するように論理固定部を制御してもよい。
さらに並行して論理機能部の論理回路を構成する場合において、前記論理構成制御部のそれぞれが、構成開始制御部をさらに備え、構成開始制御部が外部機器から開始信号を受信した場合に、その論理構成制御部が担当する論理機能部の論理回路の構成を実行してもよい。この場合には、一度FPGAのすべての論理回路を構成した後、任意の論理機能部の論理回路を再構成できる。
【0011】
この発明において、各論理機能部で構成される論理回路とは、ある特定の機能を実現するロジックが組み込まれた一つのまとまった回路をいい、たとえば、後述するようなPCIカードの中に通常組み込まれているPCIインタフェース回路をいう。
FPGAにおいて、この発明の論理機能部とは、通常その中に構成される複数個のCLB(コンフィギュアブル・ロジック・ブロック)と複数個のPSM(プログラマブル・スイッチング・ロジック)を含む回路を意味する。
以下、論理機能部を、論理ブロック(または論理グループ)と呼ぶ。
【0012】
論理固定部とは、FPGAのコンフィギュレーションの実行中に、強制的に論理機能部の相互間の接続信号を論理固定する回路であるが、以下、初期論理固定部と呼ぶ。特に、コンフィギュレーションの終了していない論理機能部からコンフィギュレーションの終了した論理固定部に転送される信号の論理が強制的に一つに固定される。
【0013】
この発明のプログラムデータは、外部記憶媒体から与えられるが、外部記憶媒体とは、たとえばROMである。
この発明の構成開始制御部とは、たとえば、電源投入時に外部機器から入力される電圧信号を受けて論理回路の構成を実行する部分であり、以下、スタートアップ回路と呼ぶ。
【0014】
以下、図面に示す実施の形態に基づいてこの発明を詳述する。なお、これによってこの発明が限定されるものではない。
図1に、この発明のFPGAの概略構成図を示す。
FPGA1は、分割制御部(DIV)2,初期論理固定部(IL)4,入出力バッファ部(IOB)7,論理機能部(LG)3,最終制御部(LAST)6及びスタートアップ回路5とから構成される。
また、FPGA1の外部にコンフィギュレーション用のデータ(プログラムデータ)を格納したROM8,電源投入を検出する電圧検出部9が備えられる。
【0015】
FPGA1の各構成要素であるDIV2,IL4,IOB7,LG3及びLAST6には、ROM8に格納されたデータのうち、それぞれに対応したプログラムデータがスタートアップ回路5を経由して書き込まれる。各構成要素は、このプログラムデータが書き込まれることにより、論理が確定し、それぞれの機能が実現される。
【0016】
DIV2は、FPGAを分割してコンフィギュレーションを行うか否か等のデータを格納する部分であり、ここに格納されたデータに基づいて、スタートアップ回路5に内蔵されているカウンタ回路23を制御するものである。
IL4は、分割コンフィギュレーションを行う場合の初期論理固定用データを格納する部分であり、分割されたロジックどうしの接続を論理固定するためのものである。この初期論理固定用データは、後述するIL4内部のクランプ制御回路25に取り込まれる。
IOB7は、外部機器との接続端子の入出力を決定するデータを格納した入出力バッファである。
【0017】
LG3は、FPGA1の機能を実現する論理回路であり、いくつかの論理ブロック(3−1,3−2,……3−n)に分割して構成される。各論理ブロックの回路は、ROM8に格納された論理回路構築用データがスタートアップ回路5を介して各論理ブロックの物理的な領域に書き込まれることによって構築される。
【0018】
また、各論理ブロック(3−1,3−2,……3−n)は、物理的なマトリックス状の配線で構成されるが、一般的に複数個のCLB(コンフィギァブル・ロジック・ブロック)と呼ばれる論理回路を構成する最小論理機能ブロックと、複数個のPSM(プログラマブル・スイッチング・マトリクス)と呼ばれる配線マトリクスをプログラムする制御ブロックとから構成される。
LAST6は、エラーチェック及びコンフィギュレーションの終了を知らせるための制御データを格納する部分である。
【0019】
スタートアップ回路5は、FPGA1のコンフィギュレーションの開始・終了を制御する部分であり、電圧検出部9から与えられる信号(PRGf)によりコンフィギュレーションを開始し、LAST6から与えられる信号(CHKs)によりコンフィギュレーションを終了する。
【0020】
スタートアップ回路5によるコンフィギュレーションとは、電圧検出部9からの信号で電源投入を検出した後、ROM8からコンフィギュレーション用データを読み出し、各ブロックに対するプログラムデータを振り分けて、各ブロック(DIV2,IL4,IOB7,LG3,LAST6)へ書き込む動作をすることである。
【0021】
また、スタートアップ回路5は、分割された1つの論理ブロック(3−1,3−2,……3−n)のコンフィギュレーションが終了したことを示す信号(DONEa)または、すべての論理ブロックLG3のコンフィギュレーションが終了したことを示す信号(DONEall)を出力するものである。
【0022】
特に、LG3がn個の論理ブロックに分割されるとすると、論理ブロックLG3−1,3−2,……3−nの順にコンフィギュレーションがされ、後述するようにIL4の機能により、たとえばLG3−1のみのコンフィギュレーションが完了した後、次のLG3−2のコンフィギュレーションの実行中において、LG3−1の論理回路は作動可能状態となる。このように、他の論理ブロックがまだコンフィギュレーションが終了していなくても、コンフィギュレーションの終了した論理ブロックが動作可能となる点が、この発明の特徴である。
【0023】
図10に、この発明のコンフィギュレーションデータの一実施例の構成図を示す。
ROM8は、FPGA1のコンフィギュレーション用のデータが格納されているが、そのデータはFPGA1の各ブロック(DIV2,IL4,IOB7,LG3,LAST6)のプログラムデータから構成される。
【0024】
ここでLG3がn個の論理ブロックから構成されるとすると、LG3用データは、LG3−1の構築のためのデータ(CLB1データとPSM1データ),LG3−2の構築のためのデータ(CLB2データとPSM2データ),及びLG3−nのためのデータ(CLBnデータとPSMnデータ)とからなる。
【0025】
以下の実施例では、論理機能部LG3が2個の機能ブロック(LG3−1,LG3−2)に分割されて構成される場合について説明する。LG3が3個以上に分割される場合は、図10に示したLG3用データの内容とその分割数が異なるだけで、ほぼ同様にしてコンフィギュレーションが行われる。
【0026】
(第1実施例)
図2に、この発明の第1実施例のFPGAの構成図を示す。
ここで、スタートアップ回路5は、スタートアップ制御部51とマルチプレクサMUX52とから構成される。
【0027】
スタートアップ制御部51は、外部のROM8に対してクロックCLKbを供給し、そのクロックのタイミングで、ROM8から図10に示したようなコンフィギュレーションデータDINcを取り込む。
信号SELhは、取り込まれたDINcに含まれるデータを各ブロック(DIV,IL,IOB,LG,LAST)に振り分けるための選択信号であり、マルチプレクサ10に与えられる。DINiは、信号SELhで示されるブロックに対応するコンフィギュレーションデータである。
【0028】
信号PRGfは外部の電圧検出部9からスタートアップ制御部51に与えられる信号であるが、スタートアップ回路5は、この信号PRGfをトリガとしてFPGA1のコンフィギュレーションを開始する。
信号CLKgは、各ブロック(DIV,IL,IOB,CLB,PSM,LAST)へデータを取り込むタイミングを与えるクロックであり、図では省略しているが、すべてのブロックに対して同時に与えられる。
【0029】
信号CTLrは、DIV2によって生成される信号であるが、後述するスタートアップ制御部51の内部回路であるカウンタ回路23のカウント数を制御する信号である。
信号CHKsは、LAST6からスタートアップ制御部51の内部のSTART/STOP回路21へ与えられる信号であるが、この信号は、コンフィギュレーションの終了をスタートアップ回路に知らせるためのものである。
【0030】
図2において、LG3は、2つの論理回路ブロックLG3−1,LG3−2に分割されているが、LG3−1は、n個のCLB31(1〜n)と、n個のPSM32(1〜n)で構成され、LG3−2は、m個のCLB33(1〜m)と、m個のPSM34(1〜m)で構成されるものとする。ここで、n,mは回路規模や設計仕様等によって決定される数である。
【0031】
マルチプレクサMUX52は、信号SELhが示す値によって入力されたコンフィギュレーションデータDINiを、どのブロックに出力するかを選択する回路であり、図2では、端子j〜qまでの8通りに出力先が振り分けられる。
たとえば、信号SELhにより、端子jが選択されると、入力されたデータDINiはDIV2に書き込まれる。
【0032】
したがって、図10に示したようなコンフィギュレーションデータがDINcがスタートアップ制御部51に与えられると先頭DIV用データから順にMUX52へ与えられるが、その時同時にMUX52に与えられる信号SELhによってその出力先が選択され、DIV2,IL4,IOB7,CLB31,PSM32,CLB33,PSM34,LAST6の順に、コンフィギュレーションデータDIVcのうち対応するデータが振り分けられて書き込まれる。
【0033】
図3に、この発明のスタートアップ制御部51の内部の主要構成ブロック図を示す。
スタートアップ制御部51は、START/STOP回路21,クロック発生回路22,カウンタ回路23,デコード回路24をその主要構成要素として持つ。
【0034】
START/STOP回路21は、信号PRGfを受けてコンフィギュレーションを開始し、信号CHKsあるいは信号DONEallを受けてコンフィギュレーションを終了する回路である。
コンフィギュレーションの開始・終了はクロック発生回路22にトリガ信号を与えることにより行われる。
【0035】
クロック発生回路22は、START/STOP回路21からのトリガを受けて、ROM8へのクロックCLKb、FPGA内部の各ブロックへのクロックCLKg及びカウンタ回路23へのクロックを供給する回路である。
【0036】
カウンタ回路23は、クロック発生回路22から与えられたクロックの数をカウントする回路である。そのカウント値はDIV2から与えられる信号CTLrに基づいて決められる。カウントされたカウント値CNTtはデコード回路24に与えられる。
【0037】
デコード回路24は、与えられたカウント値CNTtに基づいてFPGAの各ブロックに対応する選択信号SELhを出力する。たとえば、図10に示したコンフィギュレーションデータの各構築データのデータ長が固定であったとすると、各データ長に相当するカウントが行われるごとに、次の構築データの書き込み用の信号SELhが出力される。
【0038】
また、1つの論理ブロックLG3−1(CLB31,PSM32)に対するカウントが終了すると、その論理ブロックのコンフィギュレーションが終了したものとして、デコード回路24から信号DONEaが出力される。
また、ROM8から読み出したコンフィギュレーションデータ全体の処理が終了したとき、カウンタ回路23は、コンフィギュレーションがすべて終了したことを示す信号DONEallを出力する。
図2の実施例では、LAST6のコンフィギュレーションが終了すると、信号DONEallが出力される。
【0039】
図4に、この発明の初期論理固定部IL4の内部の主要構成ブロック図を示す。IL4は、主として、クランプ制御回路25,Vccクランプ回路26,GNDクランプ回路27とから構成される。クランプ制御回路25は、マルチプレクサMUX52から与えられる信号DINkを取り込んで、2つのクランプ回路26,27のうちどちらかを選択するデータ(VDTw,GDTx)を生成し、FPGA内の論理を初期的に固定させる制御をするものである。
【0040】
Vccクランプ回路26は、FPGAの中の各論理ブロック間の信号(これをネットと呼ぶ)をVccにクランプする回路である。すなわち、図2の実施例では論理ブロックLG3−1とLG3−2との間の信号を、いわゆるHighの状態に論理固定することを意味する。
また、GNDクランプ回路27は、FPGAの中の各論理ブロック間の信号をGNDにクランプする回路である。すなわち、図2の実施例では、論理ブロックLG3−1とLG3−2との間の信号を、いわゆるLowの状態に論理固定することを意味する。
【0041】
図10に示したIL4データが、信号DINkを介してクランプ制御回路25に格納され、クランプ制御回路25は、この格納されたデータに基づいてFPGAの各論理ブロックLG3内の接続の論理固定を決定する。具体的には、図4に示した信号VONu,GONv,VDTw及びGDTxを用いて2つのクランプ回路26,27を制御することにより、論理固定を行う。
【0042】
VDTwは、DINkを介して入力されたIL4データを基にして作られたデータであってVccに論理固定されるべきネットを選択するためのデータである。信号VONuは、Vccクランプ回路26に与えられたVDTwに対応するネットをVccに論理固定する信号であり、いわゆるVccへのクランプ有効信号である。
【0043】
同様に、GDTxは、DINkを介して入力されたIL4データを基にして作られたデータであってGNDに論理固定されるべきネットを選択するためのデータである。信号GONvは、GNDクランプ回路27に与えられたGDTxに対応するネットをGNDに論理固定する信号であり、いわゆるGNDへのクランプ有効信号である。
また、クランプ制御回路25には、スタートアップ制御部51から出力された信号DONEaとDONEallが入力される。
【0044】
図2の実施例では、信号DONEaは、1つの論理ブロックLG3−1のコンフィギュレーションが終了したことを示す信号であり、この信号DONEaがクランプ制御回路25に入力されると、信号VONu及びGONvが出力されてクランプが有効とされ、ネットすなわち論理ブロックLG3−1とLG3−2との間の接続信号が強制的にVccまたはGNDに論理固定される。
【0045】
この論理固定が行われた後は、論理ブロックLG3−1は通常の動作をさせることができ、また、次の論理ブロックLG3−1のコンフィギュレーションが開始されることになる。
【0046】
また、論理ブロックLG3−2のコンフィギュレーションが完了すると、スタートアップ制御部51から信号DONEallが出力されるが、クランプ制御回路25が、この信号DONEallを受けると、クランプを解除する。すなわち、強制的に論理固定されていたLG3−1とLG3−2の間の論理は、構築された後の論理回路LG3−1とLG3−2の間の通常動作時における論理に切りかえられる。
【0047】
次に、図5に、図2に示したFPGAにおけるコンフィギュレーションの概略処理のフローチャートを示す。
まず、コンフィギュレーションが行われる前提として、図2のように、FPGAとROM8及び電圧検出部9とが接続されていることが必要であり、さらに図示していない電源供給部も必要である。
【0048】
ステップS1において、図2に示した構成全体に対する電源を投入する。
ステップS2において、スタートアップ回路5が、電源検出部9からの信号PRGfにより電源が投入されたことを検出する。
【0049】
ステップS3において、スタートアップ回路5は、クロックCLKbをROM8に与え、ROM8から信号DINcを介してコンフィギュレーションデータを読み出す。
図10に示すようなコンフィギュレーションデータが順次スタートアップ回路5に取り込まれるが、まずDIVデータが取り込まれるので、スタートアップ回路5はこのデータ長に相当するクロック数分だけマルチプレクサMUX52のj端子をアクティブにするような信号SELhをMUXに与える(ステップS4)。
これにより、コンフィギュレーションデータのうちDIVデータが、DIV2へ書き込まれる。
【0050】
次に、同様にして、MUX52のk端子がアクティブにされ、ILデータがIL4に書き込まれる(ステップS5)。
さらに、MUX52のl端子がアクティブにされ、IOBデータがIOB7に書き込まれる(ステップS6)。
【0051】
次に、MUX52のm端子がアクティブにされ、LG3−1データ(CLB31用のデータ,PSM32用のデータ)がLG3−1に書き込まれる(ステップS7)。
このステップS7の処理により、論理ブロックの1つ(LG3−1)のコンフィギュレーションが終了し、次の工程(ステップS8,S9)の論理確定がされればLG3−1単体で動作可能な状態となる。
【0052】
スタートアップ回路5がLG3−1データがLG3−1にすべて書き込まれたことをDIV2からの信号CTLrによって検出すると、スタートアップ回路5は信号DONEaを出力する(ステップS8)。この信号DONEaがIL4のクランプ回路25に通知されると、IL4は、すでにIL4に書き込まれたILデータをもとに、Vcc又はGNDのクランプを有効にし、論理固定を行う(ステップS9)。
【0053】
これにより、ステップS7の処理によって論理回路が構築されたLG3−1は、もう1つの論理ブロックLG3−2のコンフィギュレーションの完了を待たずに単独で動作可能な状態となる。このとき、両論理ブロック間の信号は論理固定されるため、LG3−2の論理が未確定なことは、LG3−1に悪影響を及ぼさない。
【0054】
次に、スタートアップ回路5は、次のコンフィギュレーションデータである論理ブロックLG3−2のデータ(CLB33用データ,PSM34データ)をLG3−2へ書き込む(ステップS10)。これにより、2つ目の論理ブロックLG3−2のコンフィギュレーションが終了し、論理ブロックLG3−2も動作可能状態となる。
【0055】
次に、スタートアップ回路5は、コンフィギュレーションデータのうちLASTデータをLAST6へ書き込む(ステップS11)。
LASTデータが書き込まれたLAST6は、最終データがFPGAに書き込まれたことを通知する信号CHKsを出力する。信号CHKsはスタートアップ回路5のSTART/STOP回路21に入力されるので、スタートアップ回路5は、コンフィギュレーションが完了したことを知る。
【0056】
この後、スタートアップ回路5は、信号DONEallを出力する(ステップS12)。信号DONEallがIL4のクランプ制御回路25に入力されると、IL4は、クランプを解除する(ステップS13)。これにより、論理ブロックLG3−1とLG3−2との間の信号は強制的な論理固定がなくなり、通常の接続に基づく論理となる。
【0057】
以上が第1実施例のコンフィギュレーションの処理フローであるが、論理ブロックが3つ以上に分割された場合は、ステップS7及びS10に相当するデータの書き込み処理が増加するだけで、その他の処理は同様である。
【0058】
図6に、この発明の第1実施例に相当するFPGAの構成要素の物理的な概略配置図を示す。中央に位置する論理ブロックLG3は物理的に2つのブロックLG3−1とLG3−2に分けられて構成される。
図7に、この発明の第1実施例のFPGAをPCIカードに利用した応用例の構成ブロック図を示す。
【0059】
図7において、PCIカード100は、外部接続端子103,プリンタ接続のためのユーザ回路104,この発明のFPGA1,ROM8及び電圧検出回路9とから構成され、FPGA1と外部接続端子103とは標準化されたPCIバスd(102)で接続され、FPGA1とユーザ回路104とはユーザインタフェースe(101)により接続される。
【0060】
FPGA1は、論理ブロックLG3−1とLG3−2とからなり、LG3−1は、PCインタフェース回路110として使用し、LG3−2はユーザインタフェース回路111として使用するものとする。
図7において、電源投入により、電圧検出回路9から信号PRGfがFPGA1に出力されると、スタートアップ回路5により、前記した図5のフローチャートに従って、まず論理ブロックLG3−1のコンフィギュレーションが実行される。
【0061】
論理ブロックLG3−1のコンフィギュレーションが終了すると、PCIインタフェース回路110が使用可能となり、PCIインタフェース回路の単独使用に悪影響を与えないように、IL4により、ユーザインタフェース回路111からPCIインタフェース回路110へ出力される信号は論理固定される。
【0062】
次に、論理ブロックLG3−2のコンフィギュレーションが実行される。LG3−2のコンフィギュレーションが終了すると、信号DONEallがスタートアップ回路5から出力され、ユーザインタフェース回路111も使用可能となる。このとき、IL4は、DONEall信号を受信することにより、論理固定を解除する。すなわち論理固定されていた論理ブロックLG3−1とLG3−2との間の信号は、すべて通常動作における論理に戻される。
【0063】
このように、この発明の第1実施例では、FPGAの2つの論理ブロックLG3−1とLG3−2に対して、順次コンフィギュレーションが行われ、1つの論理ブロックLG3−1のコンフィギュレーションが終了したときに、2つの論理ブロック間の信号が論理固定されるので、FPGA全体のコンフィギュレーションを待たずに、一部の論理ブロックは使用可能となり、このFPGAを利用する機器の初期起動時間を短縮することができる。
【0064】
また、再度コンフィギュレーションを実行する場合において、FPGA全体について再度コンフィギュレーションをやり直すのではなく、分割された論理ブロック単位で必要なFPGAの部分のみコンフィギュレーションを行うことも可能となるので、コンフィギュレーションにかかる時間を短縮することができる。
【0065】
(第2実施例)
次に、この発明の第2実施例のFPGAの構成ブロック図を示す。
ここでは、分割された論理ブロック(LG3−1,LG3−2)ごとに、初期論理固定部IL4−1,IL4−2と、スタートアップ回路(5−1,5−2)を設け、分割された論理ブロックのコンフィギュレーションを並行して同時に行う場合について説明する。
図8に、この発明の第2実施例のFPGAの構成要素の物理的な概略配置図を示す。図9に、この発明の第2実施例のFPGAをPCIカードに利用した応用例の構成ブロック図を示す。
【0066】
この第2実施例では、電源が投入されると、電圧検出回路から信号PRGf−1とPRGf−2とが出力され、スタートアップ回路5−1及び5−2により、それぞれ論理ブロックLG3−1及びLG3−2が同時にコンフィギュレーションされる。論理ブロックLG3−1とLG3−2とのサイズが異なる場合は、コンフィギュレーションの時間が異なり、サイズの小さい方が先にコンフィギュレーションが終了する。
【0067】
たとえば、LG3−1がLG3−2よりも小さいとすると、サイズの小さい方のLG3−1のコンフィギュレーションが終了後、IL4−1により、LG3−2からLG3−1へ入力される信号は論理固定される。その後、LG3−2のコンフィギュレーションが終了し、DONEa−2が出力されるとIL4−1に論理固定されていた信号は、開放される。
【0068】
図9において、ユーザ回路10からの指示により、FPGAのユーザインタフェース回路111側のLG3−2への再コンフィギュレーションを可能とするために、図9のように、OR回路112を設けてもよい。このOR回路112は、電圧検出部からの電圧検出信号とユーザ回路からの信号とのORをとるものである。
【0069】
信号DONEa−2がネゲートされている状態で、電圧検出信号とユーザ回路からの信号のどちらか一方の信号がFPGA3のスタートアップ回路5−2に入力されると、IL4−1により、LG3−2からLG3−1への出力信号は論理固定され、LG3−2の再コンフィギュレーションができる状態となる。
LG3−2のコンフィギュレーションが完了すると、DONEa−2が出力され、IL4−1により論理固定されていたLG3−1とLG3−2との間の信号は、通常動作の論理に開放される。
【0070】
なお、上記実施例において、FPGAからPCIバスd側及びユーザインタフェースe側への出力信号は、FPGAのコンフィギュレーション中においては、トライステートOFFの状態でプルアップされるようにすることが好ましい。
以上のように第2実施例では、2つの論理ブロックのコンフィギュレーションを並行して行うことができるので、よりコンフィギュレーションの時間を短縮できる。
【0071】
【発明の効果】
この発明によれば、FPGAを分割し、初期論理固定部を設けているので、分割した単位ごとにコンフィギュレーションが可能となり、さらに、コンフィギュレーションの終了した論理ブロックは、他の論理ブロックのコンフィギュレーションの終了を待たずに使用可能となる。
【図面の簡単な説明】
【図1】この発明のFPGAの概略構成図である。
【図2】この発明の第1実施例のFPGAの構成図である。
【図3】この発明のスタートアップ制御部の主要な構成ブロック図である。
【図4】この発明の初期論理固定部の主要な構成ブロック図である。
【図5】この発明のFPGAのコンフィギュレーションの概略フローチャートである。
【図6】この発明の第1実施例のFPGAの物理的なレイアウト配置図の一実施例である。
【図7】この発明の第1実施例のFPGAをPCIカードに利用した応用例の構成ブロック図である。
【図8】この発明の第2実施例のFPGAの物理的なレイアウト配置図の一実施例である。
【図9】この発明の第2実施例のFPGAをPCIカードに利用した応用例の構成ブロック図である。
【図10】この発明のコンフィギュレーションデータの一実施例の構成図である。
【符号の説明】
1 フィールド・プログラマブル・ゲートアレイ
2 分割制御部DIV
3 論理機能部LG
4 初期論理固定部IL
5 スタートアップ回路
6 最終制御部LAST
7 入出力バッファ部IOB
8 ROM
9 電圧検出部
31 CLB
32 PSM
33 CLB
34 PSM
51 スタートアップ制御部
52 マルチプレクサ
Claims (8)
- 所定の論理回路を構成しうる複数の論理機能部と、複数の論理機能部の相互間の接続信号を論理固定する論理固定部と、前記論理回路を構成するのに必要なプログラムデータを論理固定部と所定の論理機能部に転送する論理構成制御部とを備え、前記論理構成制御部が、所定の順序で複数の論理機能部の論理回路を構成し、1つの論理機能部の論理回路の構成が終了するごとに、その論理機能部と、論理回路の構成がされていない他の論理機能部との間の接続信号の論理を固定するように論理固定部を制御することを特徴とするフィールド・プログラマブル・ゲートアレイ。
- 前記論理回路を構成するのに必要なプログラムデータが、外部記憶媒体から与えられ、分割制御用データ,論理固定用データ,論理機能部ごとの論理回路データ,及び構成終了制御用データを含むことを特徴とする請求項1記載のフィールド・プログラマブル・ゲートアレイ。
- 前記論理構成制御部が、前記プログラムデータの数をカウントする計数部を備え、計数部が1つの論理機能部の論理回路データに相当する数をカウントした後、その論理機能部の論理回路の構成が終了したことを前記論理固定部に知らせることを特徴とする請求項2記載のフィールド・プログラマブル・ゲートアレイ。
- 前記論理固定部が、Vccクランプ回路と、GNDクランプ回路と、前記論理固定用データに基づいてVccクランプ回路又はGNDクランプ回路のいずれかを作動させて前記論理機能部相互間の接続信号の論理を決定するクランプ制御回路とからなることを特徴とする請求項2記載のフィールド・プログラマブル・ゲートアレイ。
- 前記論理構成制御部が、前記構成終了制御用データを処理した後、前記論理固定部が行っていた論理固定をすべて解除するように論理固定部を制御することを特徴とする請求項2記載のフィールド・プログラマブル・ゲートアレイ。
- 前記論理構成制御部が、構成開始制御部をさらに備え、構成開始制御部が外部機器から開始信号を受信した場合に、前記論理機能部の論理回路の構成を実行することを特徴とする請求項1または2に記載のフィールド・プログラマブル・ゲートアレイ。
- 所定の論理回路を構成しうる複数の論理機能部と、各論理機能部ごとに、1つの論理機能部と他の論理機能部との間の接続信号の論理を固定する論理固定部と、1つの論理機能部に論理回路を構成するのに必要なプログラムデータを転送する論理構成制御部とを備え、各論理構成制御部が並行してそれぞれの論理構成制御部に対応する論理機能部の論理回路を構成し、論理回路の構成が終了した論理機能部に対応する論理構成制御部が、その論理機能部と他の論理機能部との間の接続信号の論理を固定するように、その論理機能部に対応した論理固定部を制御することを特徴とするフィールド・プログラマブル・ゲートアレイ。
- 前記論理構成制御部のそれぞれが、構成開始制御部をさらに備え、構成開始制御部が外部機器から開始信号を受信した場合に、その論理構成制御部に対応する論理機能部の論理回路の構成を実行することを特徴とする請求項7記載のフィールド・プログラマブル・ゲートアレイ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP36760199A JP4132516B2 (ja) | 1999-12-24 | 1999-12-24 | フィールド・プログラマブル・ゲートアレイ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP36760199A JP4132516B2 (ja) | 1999-12-24 | 1999-12-24 | フィールド・プログラマブル・ゲートアレイ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001186010A JP2001186010A (ja) | 2001-07-06 |
JP4132516B2 true JP4132516B2 (ja) | 2008-08-13 |
Family
ID=18489723
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP36760199A Expired - Fee Related JP4132516B2 (ja) | 1999-12-24 | 1999-12-24 | フィールド・プログラマブル・ゲートアレイ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4132516B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6526557B1 (en) * | 2000-07-25 | 2003-02-25 | Xilinx, Inc. | Architecture and method for partially reconfiguring an FPGA |
WO2010038293A1 (ja) * | 2008-10-01 | 2010-04-08 | 富士通株式会社 | 半導体装置、情報処理装置及び半導体装置の構築方法 |
KR101630628B1 (ko) * | 2014-05-16 | 2016-06-15 | 주식회사 이노와이어리스 | 복수 fpga 사이의 동기 유지 장치 |
-
1999
- 1999-12-24 JP JP36760199A patent/JP4132516B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001186010A (ja) | 2001-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7301822B1 (en) | Multi-boot configuration of programmable devices | |
US7296143B2 (en) | Method and system for loading processor boot code from serial flash memory | |
US8412918B1 (en) | Booting mechanism for FPGA-based embedded system | |
JP3948494B2 (ja) | プログラム可能論理装置によってアクセス可能な分散レジスタを有するマイクロプロセサ | |
US5809281A (en) | Field programmable gate array with high speed SRAM based configurable function block configurable as high performance logic or block of SRAM | |
JP5183845B2 (ja) | 専用のオンチッププロセッサを用いる複数のfpga構成モードのサポート | |
US7685380B1 (en) | Method for using configuration memory for data storage and read operations | |
US7340596B1 (en) | Embedded processor with watchdog timer for programmable logic | |
US6105105A (en) | Data processing system using configuration select logic, an instruction store, and sequencing logic during instruction execution | |
US6097211A (en) | Configuration memory integrated circuit | |
US6732263B1 (en) | Configuring both a programmable logic device and its embedded logic with a single serialized configuration bit stream | |
US7804724B2 (en) | Method and apparatus for boundary scan programming of memory devices | |
US7652500B1 (en) | Reconfiguration of programmable logic devices | |
JP3904493B2 (ja) | 半導体装置 | |
US7489163B2 (en) | FPGA powerup to known functional state | |
US7313730B1 (en) | Configuration logic for embedded software | |
US7454556B1 (en) | Method to program non-JTAG attached devices or memories using a PLD and its associated JTAG interface | |
JPH11511941A (ja) | 動作プログラム可能論理装置における部分的プログラミング回路 | |
US7304493B2 (en) | FPGA powerup to known functional state | |
US7924051B2 (en) | Programmable logic device with a microcontroller-based control system | |
US7358762B1 (en) | Parallel interface for configuring programmable devices | |
US6029236A (en) | Field programmable gate array with high speed SRAM based configurable function block configurable as high performance logic or block of SRAM | |
US7624209B1 (en) | Method of and circuit for enabling variable latency data transfers | |
US7075331B2 (en) | Methods and systems for providing hardware assisted programming of a programmable logic device in an embedded system | |
JP4132516B2 (ja) | フィールド・プログラマブル・ゲートアレイ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061003 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070829 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071009 |
|
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: 20080507 |
|
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: 20080602 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110606 Year of fee payment: 3 |
|
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: 20120606 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120606 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130606 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140606 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |