(57)【特許請求の範囲】
【請求項１】
所定の論理回路を構成しうる複数の論理機能部と、複数の論理機能部の相互間の接続信号を論理固定する論理固定部と、前記論理回路を構成するのに必要なプログラムデータを論理固定部と所定の論理機能部に転送する論理構成制御部とを備え、前記論理構成制御部が、所定の順序で複数の論理機能部の論理回路を構成し、１つの論理機能部の論理回路の構成が終了するごとに、その論理機能部と、論理回路の構成がされていない他の論理機能部との間の接続信号の論理を固定するように論理固定部を制御することを特徴とするフィールド・プログラマブル・ゲートアレイ。
【請求項２】
前記論理回路を構成するのに必要なプログラムデータが、外部記憶媒体から与えられ、分割制御用データ，論理固定用データ，論理機能部ごとの論理回路データ，及び構成終了制御用データを含むことを特徴とする請求項１記載のフィールド・プログラマブル・ゲートアレイ。
【請求項３】
前記論理構成制御部が、前記プログラムデータの数をカウントする計数部を備え、計数部が１つの論理機能部の論理回路データに相当する数をカウントした後、その論理機能部の論理回路の構成が終了したことを前記論理固定部に知らせることを特徴とする請求項２記載のフィールド・プログラマブル・ゲートアレイ。
【請求項４】
前記論理固定部が、Ｖｃｃクランプ回路と、ＧＮＤクランプ回路と、前記論理固定用データに基づいてＶｃｃクランプ回路又はＧＮＤクランプ回路のいずれかを作動させて前記論理機能部相互間の接続信号の論理を決定するクランプ制御回路とからなることを特徴とする請求項２記載のフィールド・プログラマブル・ゲートアレイ。
【請求項５】
前記論理構成制御部が、前記構成終了制御用データを処理した後、前記論理固定部が行っていた論理固定をすべて解除するように論理固定部を制御することを特徴とする請求項２記載のフィールド・プログラマブル・ゲートアレイ。
【請求項６】
前記論理構成制御部が、構成開始制御部をさらに備え、構成開始制御部が外部機器から開始信号を受信した場合に、前記論理機能部の論理回路の構成を実行することを特徴とする請求項１または２に記載のフィールド・プログラマブル・ゲートアレイ。
【請求項７】
所定の論理回路を構成しうる複数の論理機能部と、各論理機能部ごとに、１つの論理機能部と他の論理機能部との間の接続信号の論理を固定する論理固定部と、１つの論理機能部に論理回路を構成するのに必要なプログラムデータを転送する論理構成制御部とを備え、各論理構成制御部が並行してそれぞれの論理構成制御部に対応する論理機能部の論理回路を構成し、論理回路の構成が終了した論理機能部に対応する論理構成制御部が、その論理機能部と他の論理機能部との間の接続信号の論理を固定するように、その論理機能部に対応した論理固定部を制御することを特徴とするフィールド・プログラマブル・ゲートアレイ。
【請求項８】
前記論理構成制御部のそれぞれが、構成開始制御部をさらに備え、構成開始制御部が外部機器から開始信号を受信した場合に、その論理構成制御部に対応する論理機能部の論理回路の構成を実行することを特徴とする請求項７記載のフィールド・プログラマブル・ゲートアレイ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はフィールド・プログラマブル・ゲートアレイ（以下、ＦＰＧＡと呼ぶ）に関し、特に、コンフィギュレーションを分割して行うことのできるＦＰＧＡに関する。
【０００２】
【従来の技術】
近年、ＦＰＧＡはパーソナルコンピュータやプリンタ装置等の制御素子として盛んに利用されている。ＦＰＧＡは、その内部にプログラマブル可能な論理回路を多数備えたゲートアレイであるが、プログラムされる論理回路は一般にＳＲＡＭに書き込まれるため、電源を投入するごとに再書き込みが必要である。
ＦＰＧＡに所望の論理回路を構築するためには、ＦＰＧＡの外部に、その論理回路の構成をプログラムするためのデータを記憶したＲＯＭと、このＲＯＭからＦＰＧＡへデータをロードする制御回路を設け、電源立ち上げと同時にデータをＦＰＧＡにロードするようにしている。
【０００３】
また、従来は、ＦＰＧＡへのデータのロードは、１度にＦＰＧＡの中の論理回路の全領域に対して行われていた。以下、ＦＰＧＡにデータをロードすること、すなわちＦＰＧＡの中に所定の機能を持った論理回路を構成することを、ＦＰＧＡのコンフィギュレーションと呼ぶ。
【０００４】
【発明が解決しようとする課題】
しかし、最近のＦＰＧＡでは大容量化が進み、数百万ゲートに相当する論理回路を有するものがあり、全領域を１度にコンフィギュレーションするのにかなりの時間（数秒）がかかる。
一方、ＦＰＧＡが使用される機器は、その処理速度は年々向上し、電源投入時の初期起動時間も短縮化される傾向にあるので、電源投入時に行われるＦＰＧＡのコンフィギュレーション時間もできるだけ短くすることが望まれる。
【０００５】
コンフィギュレーション時間を短縮するためには、ＲＯＭからＦＰＧＡへのデータの読み出し速度を速くすることなどが考えられるが、ＦＰＧＡの容量はますます大容量化していく傾向にあるため、コンフィギュレーションの時間を大きく短縮することはできない。
【０００６】
ＦＰＧＡに構築される論理回路は、全領域の回路全体で一つの機能を実現する場合もあるが、通常いくつかの機能ブロックに分けることができる。各機能ブロックの基本動作は他のブロックとのインタフェース信号さえ一定に決定されていれば誤動作を生じずに正常な動作を確保できる場合もある。
すなわち、ある１つの機能ブロックの論理回路についてコンフィギュレーションが終了した後、他の機能ブロックのコンフィギュレーションがまだ終了していなくても、コンフィギュレーションの終了した機能ブロックのみを動作させることが可能となれば、ＦＰＧＡの外部回路との関係において見かけ上電源立ち上げ時の初期起動動作を短縮できる。
【０００７】
この発明は以上のような事情を考慮してなされたものであり、コンフィギュレーションを分割して行うことのできるＦＰＧＡを提供することを課題とする。
【０００８】
【課題を解決するための手段】
この発明は、所定の論理回路を構成しうる複数の論理機能部と、複数の論理機能部の相互間の接続信号を論理固定する論理固定部と、前記論理回路を構成するのに必要なプログラムデータを論理固定部と所定の論理機能部に転送する論理構成制御部とを備え、前記論理構成制御部が、所定の順序で複数の論理機能部の論理回路を構成し、１つの論理機能部の論理回路の構成が終了するごとに、その論理機能部と、論理回路の構成がされていない他の論理機能部との間の接続信号の論理を固定するように論理固定部を制御することを特徴とするフィールド・プログラマブル・ゲートアレイを提供するものである。
これによれば、ＦＰＧＡの論理回路を分割して論理機能部ごとにコンフィギュレーションすることができ、１つの論理機能部のコンフィギュレーションが終了した後、他の論理機能部のコンフィギュレーションを終了を待たずに、コンフィギュレーションが終了した論理機能部を使用できる。
【０００９】
また、この発明は、所定の論理回路を構成しうる複数の論理機能部と、各論理機能部ごとに、１つの論理機能部と他の論理機能部との間の接続信号の論理を固定する論理固定部と、１つの論理機能部に論理回路を構成するのに必要なプログラムデータを転送する論理構成制御部とを備え、各論理構成制御部が並行してそれぞれの論理構成制御部に対応する論理機能部の論理回路を構成し、論理回路の構成が終了した論理機能部に対応する論理構成制御部が、その論理機能部と他の論理機能部との間の接続信号の論理を固定するように、その論理機能部に対応した論理固定部を制御することを特徴とするフィールド・プログラマブル・ゲートアレイである。
【００１０】
【発明の実施の形態】
この発明において、前記論理回路を構成するのに必要なプログラムデータは、外部記憶媒体から与えられ、分割制御用データ，論理固定用データ，論理機能部ごとの論理回路データ，及び構成終了制御用データを含む。
また、前記論理構成制御部が、前記プログラムデータの数をカウントする計数部を備え、計数部が１つの論理機能部の論理回路データに相当する数をカウントした後、その論理機能部の論理回路の構成が終了したことを前記論理固定部に知らせるようにしてもよい。
さらに、前記論理固定部は、Ｖｃｃクランプ回路と、ＧＮＤクランプ回路と、前記論理固定用データに基づいてＶｃｃクランプ回路又はＧＮＤクランプ回路のいずれかを作動させて前記論理機能部相互間の接続信号の論理を決定するクランプ制御回路とから構成することができる。
また、前記論理構成制御部が、前記構成終了制御用データを処理した後、前記論理固定部が行っていた論理固定をすべて解除するように論理固定部を制御してもよい。
さらに並行して論理機能部の論理回路を構成する場合において、前記論理構成制御部のそれぞれが、構成開始制御部をさらに備え、構成開始制御部が外部機器から開始信号を受信した場合に、その論理構成制御部が担当する論理機能部の論理回路の構成を実行してもよい。この場合には、一度ＦＰＧＡのすべての論理回路を構成した後、任意の論理機能部の論理回路を再構成できる。
【００１１】
この発明において、各論理機能部で構成される論理回路とは、ある特定の機能を実現するロジックが組み込まれた一つのまとまった回路をいい、たとえば、後述するようなＰＣＩカードの中に通常組み込まれているＰＣＩインタフェース回路をいう。
ＦＰＧＡにおいて、この発明の論理機能部とは、通常その中に構成される複数個のＣＬＢ（コンフィギュアブル・ロジック・ブロック）と複数個のＰＳＭ（プログラマブル・スイッチング・ロジック）を含む回路を意味する。
以下、論理機能部を、論理ブロック（または論理グループ）と呼ぶ。
【００１２】
論理固定部とは、ＦＰＧＡのコンフィギュレーションの実行中に、強制的に論理機能部の相互間の接続信号を論理固定する回路であるが、以下、初期論理固定部と呼ぶ。特に、コンフィギュレーションの終了していない論理機能部からコンフィギュレーションの終了した論理固定部に転送される信号の論理が強制的に一つに固定される。
【００１３】
この発明のプログラムデータは、外部記憶媒体から与えられるが、外部記憶媒体とは、たとえばＲＯＭである。
この発明の構成開始制御部とは、たとえば、電源投入時に外部機器から入力される電圧信号を受けて論理回路の構成を実行する部分であり、以下、スタートアップ回路と呼ぶ。
【００１４】
以下、図面に示す実施の形態に基づいてこの発明を詳述する。なお、これによってこの発明が限定されるものではない。
図１に、この発明のＦＰＧＡの概略構成図を示す。
ＦＰＧＡ１は、分割制御部（ＤＩＶ）２，初期論理固定部（ＩＬ）４，入出力バッファ部（ＩＯＢ）７，論理機能部（ＬＧ）３，最終制御部（ＬＡＳＴ）６及びスタートアップ回路５とから構成される。
また、ＦＰＧＡ１の外部にコンフィギュレーション用のデータ（プログラムデータ）を格納したＲＯＭ８，電源投入を検出する電圧検出部９が備えられる。
【００１５】
ＦＰＧＡ１の各構成要素であるＤＩＶ２，ＩＬ４，ＩＯＢ７，ＬＧ３及びＬＡＳＴ６には、ＲＯＭ８に格納されたデータのうち、それぞれに対応したプログラムデータがスタートアップ回路５を経由して書き込まれる。各構成要素は、このプログラムデータが書き込まれることにより、論理が確定し、それぞれの機能が実現される。
【００１６】
ＤＩＶ２は、ＦＰＧＡを分割してコンフィギュレーションを行うか否か等のデータを格納する部分であり、ここに格納されたデータに基づいて、スタートアップ回路５に内蔵されているカウンタ回路２３を制御するものである。
ＩＬ４は、分割コンフィギュレーションを行う場合の初期論理固定用データを格納する部分であり、分割されたロジックどうしの接続を論理固定するためのものである。この初期論理固定用データは、後述するＩＬ４内部のクランプ制御回路２５に取り込まれる。
ＩＯＢ７は、外部機器との接続端子の入出力を決定するデータを格納した入出力バッファである。
【００１７】
ＬＧ３は、ＦＰＧＡ１の機能を実現する論理回路であり、いくつかの論理ブロック（３−１，３−２，……３−ｎ）に分割して構成される。各論理ブロックの回路は、ＲＯＭ８に格納された論理回路構築用データがスタートアップ回路５を介して各論理ブロックの物理的な領域に書き込まれることによって構築される。
【００１８】
また、各論理ブロック（３−１，３−２，……３−ｎ）は、物理的なマトリックス状の配線で構成されるが、一般的に複数個のＣＬＢ（コンフィギァブル・ロジック・ブロック）と呼ばれる論理回路を構成する最小論理機能ブロックと、複数個のＰＳＭ（プログラマブル・スイッチング・マトリクス）と呼ばれる配線マトリクスをプログラムする制御ブロックとから構成される。
ＬＡＳＴ６は、エラーチェック及びコンフィギュレーションの終了を知らせるための制御データを格納する部分である。
【００１９】
スタートアップ回路５は、ＦＰＧＡ１のコンフィギュレーションの開始・終了を制御する部分であり、電圧検出部９から与えられる信号（ＰＲＧｆ）によりコンフィギュレーションを開始し、ＬＡＳＴ６から与えられる信号（ＣＨＫｓ）によりコンフィギュレーションを終了する。
【００２０】
スタートアップ回路５によるコンフィギュレーションとは、電圧検出部９からの信号で電源投入を検出した後、ＲＯＭ８からコンフィギュレーション用データを読み出し、各ブロックに対するプログラムデータを振り分けて、各ブロック（ＤＩＶ２，ＩＬ４，ＩＯＢ７，ＬＧ３，ＬＡＳＴ６）へ書き込む動作をすることである。
【００２１】
また、スタートアップ回路５は、分割された１つの論理ブロック（３−１，３−２，……３−ｎ）のコンフィギュレーションが終了したことを示す信号（ＤＯＮＥａ）または、すべての論理ブロックＬＧ３のコンフィギュレーションが終了したことを示す信号（ＤＯＮＥａｌｌ）を出力するものである。
【００２２】
特に、ＬＧ３がｎ個の論理ブロックに分割されるとすると、論理ブロックＬＧ３−１，３−２，……３−ｎの順にコンフィギュレーションがされ、後述するようにＩＬ４の機能により、たとえばＬＧ３−１のみのコンフィギュレーションが完了した後、次のＬＧ３−２のコンフィギュレーションの実行中において、ＬＧ３−１の論理回路は作動可能状態となる。このように、他の論理ブロックがまだコンフィギュレーションが終了していなくても、コンフィギュレーションの終了した論理ブロックが動作可能となる点が、この発明の特徴である。
【００２３】
図１０に、この発明のコンフィギュレーションデータの一実施例の構成図を示す。
ＲＯＭ８は、ＦＰＧＡ１のコンフィギュレーション用のデータが格納されているが、そのデータはＦＰＧＡ１の各ブロック（ＤＩＶ２，ＩＬ４，ＩＯＢ７，ＬＧ３，ＬＡＳＴ６）のプログラムデータから構成される。
【００２４】
ここでＬＧ３がｎ個の論理ブロックから構成されるとすると、ＬＧ３用データは、ＬＧ３−１の構築のためのデータ（ＣＬＢ１データとＰＳＭ１データ），ＬＧ３−２の構築のためのデータ（ＣＬＢ２データとＰＳＭ２データ），及びＬＧ３−ｎのためのデータ（ＣＬＢｎデータとＰＳＭｎデータ）とからなる。
【００２５】
以下の実施例では、論理機能部ＬＧ３が２個の機能ブロック（ＬＧ３−１，ＬＧ３−２）に分割されて構成される場合について説明する。ＬＧ３が３個以上に分割される場合は、図１０に示したＬＧ３用データの内容とその分割数が異なるだけで、ほぼ同様にしてコンフィギュレーションが行われる。
【００２６】
（第１実施例）
図２に、この発明の第１実施例のＦＰＧＡの構成図を示す。
ここで、スタートアップ回路５は、スタートアップ制御部５１とマルチプレクサＭＵＸ５２とから構成される。
【００２７】
スタートアップ制御部５１は、外部のＲＯＭ８に対してクロックＣＬＫｂを供給し、そのクロックのタイミングで、ＲＯＭ８から図１０に示したようなコンフィギュレーションデータＤＩＮｃを取り込む。
信号ＳＥＬｈは、取り込まれたＤＩＮｃに含まれるデータを各ブロック（ＤＩＶ，ＩＬ，ＩＯＢ，ＬＧ，ＬＡＳＴ）に振り分けるための選択信号であり、マルチプレクサ１０に与えられる。ＤＩＮｉは、信号ＳＥＬｈで示されるブロックに対応するコンフィギュレーションデータである。
【００２８】
信号ＰＲＧｆは外部の電圧検出部９からスタートアップ制御部５１に与えられる信号であるが、スタートアップ回路５は、この信号ＰＲＧｆをトリガとしてＦＰＧＡ１のコンフィギュレーションを開始する。
信号ＣＬＫｇは、各ブロック（ＤＩＶ，ＩＬ，ＩＯＢ，ＣＬＢ，ＰＳＭ，ＬＡＳＴ）へデータを取り込むタイミングを与えるクロックであり、図では省略しているが、すべてのブロックに対して同時に与えられる。
【００２９】
信号ＣＴＬｒは、ＤＩＶ２によって生成される信号であるが、後述するスタートアップ制御部５１の内部回路であるカウンタ回路２３のカウント数を制御する信号である。
信号ＣＨＫｓは、ＬＡＳＴ６からスタートアップ制御部５１の内部のＳＴＡＲＴ／ＳＴＯＰ回路２１へ与えられる信号であるが、この信号は、コンフィギュレーションの終了をスタートアップ回路に知らせるためのものである。
【００３０】
図２において、ＬＧ３は、２つの論理回路ブロックＬＧ３−１，ＬＧ３−２に分割されているが、ＬＧ３−１は、ｎ個のＣＬＢ３１（１〜ｎ）と、ｎ個のＰＳＭ３２（１〜ｎ）で構成され、ＬＧ３−２は、ｍ個のＣＬＢ３３（１〜ｍ）と、ｍ個のＰＳＭ３４（１〜ｍ）で構成されるものとする。ここで、ｎ，ｍは回路規模や設計仕様等によって決定される数である。
【００３１】
マルチプレクサＭＵＸ５２は、信号ＳＥＬｈが示す値によって入力されたコンフィギュレーションデータＤＩＮｉを、どのブロックに出力するかを選択する回路であり、図２では、端子ｊ〜ｑまでの８通りに出力先が振り分けられる。
たとえば、信号ＳＥＬｈにより、端子ｊが選択されると、入力されたデータＤＩＮｉはＤＩＶ２に書き込まれる。
【００３２】
したがって、図１０に示したようなコンフィギュレーションデータがＤＩＮｃがスタートアップ制御部５１に与えられると先頭ＤＩＶ用データから順にＭＵＸ５２へ与えられるが、その時同時にＭＵＸ５２に与えられる信号ＳＥＬｈによってその出力先が選択され、ＤＩＶ２，ＩＬ４，ＩＯＢ７，ＣＬＢ３１，ＰＳＭ３２，ＣＬＢ３３，ＰＳＭ３４，ＬＡＳＴ６の順に、コンフィギュレーションデータＤＩＶｃのうち対応するデータが振り分けられて書き込まれる。
【００３３】
図３に、この発明のスタートアップ制御部５１の内部の主要構成ブロック図を示す。
スタートアップ制御部５１は、ＳＴＡＲＴ／ＳＴＯＰ回路２１，クロック発生回路２２，カウンタ回路２３，デコード回路２４をその主要構成要素として持つ。
【００３４】
ＳＴＡＲＴ／ＳＴＯＰ回路２１は、信号ＰＲＧｆを受けてコンフィギュレーションを開始し、信号ＣＨＫｓあるいは信号ＤＯＮＥａｌｌを受けてコンフィギュレーションを終了する回路である。
コンフィギュレーションの開始・終了はクロック発生回路２２にトリガ信号を与えることにより行われる。
【００３５】
クロック発生回路２２は、ＳＴＡＲＴ／ＳＴＯＰ回路２１からのトリガを受けて、ＲＯＭ８へのクロックＣＬＫｂ、ＦＰＧＡ内部の各ブロックへのクロックＣＬＫｇ及びカウンタ回路２３へのクロックを供給する回路である。
【００３６】
カウンタ回路２３は、クロック発生回路２２から与えられたクロックの数をカウントする回路である。そのカウント値はＤＩＶ２から与えられる信号ＣＴＬｒに基づいて決められる。カウントされたカウント値ＣＮＴｔはデコード回路２４に与えられる。
【００３７】
デコード回路２４は、与えられたカウント値ＣＮＴｔに基づいてＦＰＧＡの各ブロックに対応する選択信号ＳＥＬｈを出力する。たとえば、図１０に示したコンフィギュレーションデータの各構築データのデータ長が固定であったとすると、各データ長に相当するカウントが行われるごとに、次の構築データの書き込み用の信号ＳＥＬｈが出力される。
【００３８】
また、１つの論理ブロックＬＧ３−１（ＣＬＢ３１，ＰＳＭ３２）に対するカウントが終了すると、その論理ブロックのコンフィギュレーションが終了したものとして、デコード回路２４から信号ＤＯＮＥａが出力される。
また、ＲＯＭ８から読み出したコンフィギュレーションデータ全体の処理が終了したとき、カウンタ回路２３は、コンフィギュレーションがすべて終了したことを示す信号ＤＯＮＥａｌｌを出力する。
図２の実施例では、ＬＡＳＴ６のコンフィギュレーションが終了すると、信号ＤＯＮＥａｌｌが出力される。
【００３９】
図４に、この発明の初期論理固定部ＩＬ４の内部の主要構成ブロック図を示す。ＩＬ４は、主として、クランプ制御回路２５，Ｖｃｃクランプ回路２６，ＧＮＤクランプ回路２７とから構成される。クランプ制御回路２５は、マルチプレクサＭＵＸ５２から与えられる信号ＤＩＮｋを取り込んで、２つのクランプ回路２６，２７のうちどちらかを選択するデータ（ＶＤＴｗ，ＧＤＴｘ）を生成し、ＦＰＧＡ内の論理を初期的に固定させる制御をするものである。
【００４０】
Ｖｃｃクランプ回路２６は、ＦＰＧＡの中の各論理ブロック間の信号（これをネットと呼ぶ）をＶｃｃにクランプする回路である。すなわち、図２の実施例では論理ブロックＬＧ３−１とＬＧ３−２との間の信号を、いわゆるＨｉｇｈの状態に論理固定することを意味する。
また、ＧＮＤクランプ回路２７は、ＦＰＧＡの中の各論理ブロック間の信号をＧＮＤにクランプする回路である。すなわち、図２の実施例では、論理ブロックＬＧ３−１とＬＧ３−２との間の信号を、いわゆるＬｏｗの状態に論理固定することを意味する。
【００４１】
図１０に示したＩＬ４データが、信号ＤＩＮｋを介してクランプ制御回路２５に格納され、クランプ制御回路２５は、この格納されたデータに基づいてＦＰＧＡの各論理ブロックＬＧ３内の接続の論理固定を決定する。具体的には、図４に示した信号ＶＯＮｕ，ＧＯＮｖ，ＶＤＴｗ及びＧＤＴｘを用いて２つのクランプ回路２６，２７を制御することにより、論理固定を行う。
【００４２】
ＶＤＴｗは、ＤＩＮｋを介して入力されたＩＬ４データを基にして作られたデータであってＶｃｃに論理固定されるべきネットを選択するためのデータである。信号ＶＯＮｕは、Ｖｃｃクランプ回路２６に与えられたＶＤＴｗに対応するネットをＶｃｃに論理固定する信号であり、いわゆるＶｃｃへのクランプ有効信号である。
【００４３】
同様に、ＧＤＴｘは、ＤＩＮｋを介して入力されたＩＬ４データを基にして作られたデータであってＧＮＤに論理固定されるべきネットを選択するためのデータである。信号ＧＯＮｖは、ＧＮＤクランプ回路２７に与えられたＧＤＴｘに対応するネットをＧＮＤに論理固定する信号であり、いわゆるＧＮＤへのクランプ有効信号である。
また、クランプ制御回路２５には、スタートアップ制御部５１から出力された信号ＤＯＮＥａとＤＯＮＥａｌｌが入力される。
【００４４】
図２の実施例では、信号ＤＯＮＥａは、１つの論理ブロックＬＧ３−１のコンフィギュレーションが終了したことを示す信号であり、この信号ＤＯＮＥａがクランプ制御回路２５に入力されると、信号ＶＯＮｕ及びＧＯＮｖが出力されてクランプが有効とされ、ネットすなわち論理ブロックＬＧ３−１とＬＧ３−２との間の接続信号が強制的にＶｃｃまたはＧＮＤに論理固定される。
【００４５】
この論理固定が行われた後は、論理ブロックＬＧ３−１は通常の動作をさせることができ、また、次の論理ブロックＬＧ３−１のコンフィギュレーションが開始されることになる。
【００４６】
また、論理ブロックＬＧ３−２のコンフィギュレーションが完了すると、スタートアップ制御部５１から信号ＤＯＮＥａｌｌが出力されるが、クランプ制御回路２５が、この信号ＤＯＮＥａｌｌを受けると、クランプを解除する。すなわち、強制的に論理固定されていたＬＧ３−１とＬＧ３−２の間の論理は、構築された後の論理回路ＬＧ３−１とＬＧ３−２の間の通常動作時における論理に切りかえられる。
【００４７】
次に、図５に、図２に示したＦＰＧＡにおけるコンフィギュレーションの概略処理のフローチャートを示す。
まず、コンフィギュレーションが行われる前提として、図２のように、ＦＰＧＡとＲＯＭ８及び電圧検出部９とが接続されていることが必要であり、さらに図示していない電源供給部も必要である。
【００４８】
ステップＳ１において、図２に示した構成全体に対する電源を投入する。
ステップＳ２において、スタートアップ回路５が、電源検出部９からの信号ＰＲＧｆにより電源が投入されたことを検出する。
【００４９】
ステップＳ３において、スタートアップ回路５は、クロックＣＬＫｂをＲＯＭ８に与え、ＲＯＭ８から信号ＤＩＮｃを介してコンフィギュレーションデータを読み出す。
図１０に示すようなコンフィギュレーションデータが順次スタートアップ回路５に取り込まれるが、まずＤＩＶデータが取り込まれるので、スタートアップ回路５はこのデータ長に相当するクロック数分だけマルチプレクサＭＵＸ５２のｊ端子をアクティブにするような信号ＳＥＬｈをＭＵＸに与える（ステップＳ４）。
これにより、コンフィギュレーションデータのうちＤＩＶデータが、ＤＩＶ２へ書き込まれる。
【００５０】
次に、同様にして、ＭＵＸ５２のｋ端子がアクティブにされ、ＩＬデータがＩＬ４に書き込まれる（ステップＳ５）。
さらに、ＭＵＸ５２のｌ端子がアクティブにされ、ＩＯＢデータがＩＯＢ７に書き込まれる（ステップＳ６）。
【００５１】
次に、ＭＵＸ５２のｍ端子がアクティブにされ、ＬＧ３−１データ（ＣＬＢ３１用のデータ，ＰＳＭ３２用のデータ）がＬＧ３−１に書き込まれる（ステップＳ７）。
このステップＳ７の処理により、論理ブロックの１つ（ＬＧ３−１）のコンフィギュレーションが終了し、次の工程（ステップＳ８，Ｓ９）の論理確定がされればＬＧ３−１単体で動作可能な状態となる。
【００５２】
スタートアップ回路５がＬＧ３−１データがＬＧ３−１にすべて書き込まれたことをＤＩＶ２からの信号ＣＴＬｒによって検出すると、スタートアップ回路５は信号ＤＯＮＥａを出力する（ステップＳ８）。この信号ＤＯＮＥａがＩＬ４のクランプ回路２５に通知されると、ＩＬ４は、すでにＩＬ４に書き込まれたＩＬデータをもとに、Ｖｃｃ又はＧＮＤのクランプを有効にし、論理固定を行う（ステップＳ９）。
【００５３】
これにより、ステップＳ７の処理によって論理回路が構築されたＬＧ３−１は、もう１つの論理ブロックＬＧ３−２のコンフィギュレーションの完了を待たずに単独で動作可能な状態となる。このとき、両論理ブロック間の信号は論理固定されるため、ＬＧ３−２の論理が未確定なことは、ＬＧ３−１に悪影響を及ぼさない。
【００５４】
次に、スタートアップ回路５は、次のコンフィギュレーションデータである論理ブロックＬＧ３−２のデータ（ＣＬＢ３３用データ，ＰＳＭ３４データ）をＬＧ３−２へ書き込む（ステップＳ１０）。これにより、２つ目の論理ブロックＬＧ３−２のコンフィギュレーションが終了し、論理ブロックＬＧ３−２も動作可能状態となる。
【００５５】
次に、スタートアップ回路５は、コンフィギュレーションデータのうちＬＡＳＴデータをＬＡＳＴ６へ書き込む（ステップＳ１１）。
ＬＡＳＴデータが書き込まれたＬＡＳＴ６は、最終データがＦＰＧＡに書き込まれたことを通知する信号ＣＨＫｓを出力する。信号ＣＨＫｓはスタートアップ回路５のＳＴＡＲＴ／ＳＴＯＰ回路２１に入力されるので、スタートアップ回路５は、コンフィギュレーションが完了したことを知る。
【００５６】
この後、スタートアップ回路５は、信号ＤＯＮＥａｌｌを出力する（ステップＳ１２）。信号ＤＯＮＥａｌｌがＩＬ４のクランプ制御回路２５に入力されると、ＩＬ４は、クランプを解除する（ステップＳ１３）。これにより、論理ブロックＬＧ３−１とＬＧ３−２との間の信号は強制的な論理固定がなくなり、通常の接続に基づく論理となる。
【００５７】
以上が第１実施例のコンフィギュレーションの処理フローであるが、論理ブロックが３つ以上に分割された場合は、ステップＳ７及びＳ１０に相当するデータの書き込み処理が増加するだけで、その他の処理は同様である。
【００５８】
図６に、この発明の第１実施例に相当するＦＰＧＡの構成要素の物理的な概略配置図を示す。中央に位置する論理ブロックＬＧ３は物理的に２つのブロックＬＧ３−１とＬＧ３−２に分けられて構成される。
図７に、この発明の第１実施例のＦＰＧＡをＰＣＩカードに利用した応用例の構成ブロック図を示す。
【００５９】
図７において、ＰＣＩカード１００は、外部接続端子１０３，プリンタ接続のためのユーザ回路１０４，この発明のＦＰＧＡ１，ＲＯＭ８及び電圧検出回路９とから構成され、ＦＰＧＡ１と外部接続端子１０３とは標準化されたＰＣＩバスｄ（１０２）で接続され、ＦＰＧＡ１とユーザ回路１０４とはユーザインタフェースｅ（１０１）により接続される。
【００６０】
ＦＰＧＡ１は、論理ブロックＬＧ３−１とＬＧ３−２とからなり、ＬＧ３−１は、ＰＣインタフェース回路１１０として使用し、ＬＧ３−２はユーザインタフェース回路１１１として使用するものとする。
図７において、電源投入により、電圧検出回路９から信号ＰＲＧｆがＦＰＧＡ１に出力されると、スタートアップ回路５により、前記した図５のフローチャートに従って、まず論理ブロックＬＧ３−１のコンフィギュレーションが実行される。
【００６１】
論理ブロックＬＧ３−１のコンフィギュレーションが終了すると、ＰＣＩインタフェース回路１１０が使用可能となり、ＰＣＩインタフェース回路の単独使用に悪影響を与えないように、ＩＬ４により、ユーザインタフェース回路１１１からＰＣＩインタフェース回路１１０へ出力される信号は論理固定される。
【００６２】
次に、論理ブロックＬＧ３−２のコンフィギュレーションが実行される。ＬＧ３−２のコンフィギュレーションが終了すると、信号ＤＯＮＥａｌｌがスタートアップ回路５から出力され、ユーザインタフェース回路１１１も使用可能となる。このとき、ＩＬ４は、ＤＯＮＥａｌｌ信号を受信することにより、論理固定を解除する。すなわち論理固定されていた論理ブロックＬＧ３−１とＬＧ３−２との間の信号は、すべて通常動作における論理に戻される。
【００６３】
このように、この発明の第１実施例では、ＦＰＧＡの２つの論理ブロックＬＧ３−１とＬＧ３−２に対して、順次コンフィギュレーションが行われ、１つの論理ブロックＬＧ３−１のコンフィギュレーションが終了したときに、２つの論理ブロック間の信号が論理固定されるので、ＦＰＧＡ全体のコンフィギュレーションを待たずに、一部の論理ブロックは使用可能となり、このＦＰＧＡを利用する機器の初期起動時間を短縮することができる。
【００６４】
また、再度コンフィギュレーションを実行する場合において、ＦＰＧＡ全体について再度コンフィギュレーションをやり直すのではなく、分割された論理ブロック単位で必要なＦＰＧＡの部分のみコンフィギュレーションを行うことも可能となるので、コンフィギュレーションにかかる時間を短縮することができる。
【００６５】
（第２実施例）
次に、この発明の第２実施例のＦＰＧＡの構成ブロック図を示す。
ここでは、分割された論理ブロック（ＬＧ３−１，ＬＧ３−２）ごとに、初期論理固定部ＩＬ４−１，ＩＬ４−２と、スタートアップ回路（５−１，５−２）を設け、分割された論理ブロックのコンフィギュレーションを並行して同時に行う場合について説明する。
図８に、この発明の第２実施例のＦＰＧＡの構成要素の物理的な概略配置図を示す。図９に、この発明の第２実施例のＦＰＧＡをＰＣＩカードに利用した応用例の構成ブロック図を示す。
【００６６】
この第２実施例では、電源が投入されると、電圧検出回路から信号ＰＲＧｆ−１とＰＲＧｆ−２とが出力され、スタートアップ回路５−１及び５−２により、それぞれ論理ブロックＬＧ３−１及びＬＧ３−２が同時にコンフィギュレーションされる。論理ブロックＬＧ３−１とＬＧ３−２とのサイズが異なる場合は、コンフィギュレーションの時間が異なり、サイズの小さい方が先にコンフィギュレーションが終了する。
【００６７】
たとえば、ＬＧ３−１がＬＧ３−２よりも小さいとすると、サイズの小さい方のＬＧ３−１のコンフィギュレーションが終了後、ＩＬ４−１により、ＬＧ３−２からＬＧ３−１へ入力される信号は論理固定される。その後、ＬＧ３−２のコンフィギュレーションが終了し、ＤＯＮＥａ−２が出力されるとＩＬ４−１に論理固定されていた信号は、開放される。
【００６８】
図９において、ユーザ回路１０からの指示により、ＦＰＧＡのユーザインタフェース回路１１１側のＬＧ３−２への再コンフィギュレーションを可能とするために、図９のように、ＯＲ回路１１２を設けてもよい。このＯＲ回路１１２は、電圧検出部からの電圧検出信号とユーザ回路からの信号とのＯＲをとるものである。
【００６９】
信号ＤＯＮＥａ−２がネゲートされている状態で、電圧検出信号とユーザ回路からの信号のどちらか一方の信号がＦＰＧＡ３のスタートアップ回路５−２に入力されると、ＩＬ４−１により、ＬＧ３−２からＬＧ３−１への出力信号は論理固定され、ＬＧ３−２の再コンフィギュレーションができる状態となる。
ＬＧ３−２のコンフィギュレーションが完了すると、ＤＯＮＥａ−２が出力され、ＩＬ４−１により論理固定されていたＬＧ３−１とＬＧ３−２との間の信号は、通常動作の論理に開放される。
【００７０】
なお、上記実施例において、ＦＰＧＡからＰＣＩバスｄ側及びユーザインタフェースｅ側への出力信号は、ＦＰＧＡのコンフィギュレーション中においては、トライステートＯＦＦの状態でプルアップされるようにすることが好ましい。
以上のように第２実施例では、２つの論理ブロックのコンフィギュレーションを並行して行うことができるので、よりコンフィギュレーションの時間を短縮できる。
【００７１】
【発明の効果】
この発明によれば、ＦＰＧＡを分割し、初期論理固定部を設けているので、分割した単位ごとにコンフィギュレーションが可能となり、さらに、コンフィギュレーションの終了した論理ブロックは、他の論理ブロックのコンフィギュレーションの終了を待たずに使用可能となる。
【図面の簡単な説明】
【図１】この発明のＦＰＧＡの概略構成図である。
【図２】この発明の第１実施例のＦＰＧＡの構成図である。
【図３】この発明のスタートアップ制御部の主要な構成ブロック図である。
【図４】この発明の初期論理固定部の主要な構成ブロック図である。
【図５】この発明のＦＰＧＡのコンフィギュレーションの概略フローチャートである。
【図６】この発明の第１実施例のＦＰＧＡの物理的なレイアウト配置図の一実施例である。
【図７】この発明の第１実施例のＦＰＧＡをＰＣＩカードに利用した応用例の構成ブロック図である。
【図８】この発明の第２実施例のＦＰＧＡの物理的なレイアウト配置図の一実施例である。
【図９】この発明の第２実施例のＦＰＧＡをＰＣＩカードに利用した応用例の構成ブロック図である。
【図１０】この発明のコンフィギュレーションデータの一実施例の構成図である。
【符号の説明】
１  フィールド・プログラマブル・ゲートアレイ
２  分割制御部ＤＩＶ
３  論理機能部ＬＧ
４  初期論理固定部ＩＬ
５  スタートアップ回路
６  最終制御部ＬＡＳＴ
７  入出力バッファ部ＩＯＢ
８  ＲＯＭ
９  電圧検出部
３１  ＣＬＢ
３２  ＰＳＭ
３３  ＣＬＢ
３４  ＰＳＭ
５１  スタートアップ制御部
５２  マルチプレクサ
【図１】
0004132516.tif 000002
【図２】
0004132516.tif 000003
【図３】
0004132516.tif 000004
【図４】
0004132516.tif 000005
【図５】
0004132516.tif 000006
【図６】
0004132516.tif 000007
【図７】
0004132516.tif 000008
【図８】
0004132516.tif 000009
【図９】
0004132516.tif 000010
【図１０】
0004132516.tif 000011