(57)【要約】【課題】  ＦＰＧＡをコンフィギュレーションする際に、コンフィギュレーション専用フラッシュＲＯＭを用いていたが、このフラッシュＲＯＭの起動時間が長いのでコンフィギュレーションに時間がかかり、ＦＰＧＡが起動するまでの時間が長くなってしまうという課題を解決する。【解決手段】  ２バイト以上のデータバス幅を有する汎用メモリにコンフィギュレーションデータを書き込み、このメモリの出力を一括してラッチ回路に取り込み、バイト単位でＦＰＧＡに出力するようにした。ＦＰＧＡのコンフィギュレーション準備時間待つだけでコンフィギュレーションを開始することができるので、ＦＰＧＡの起動時間を短くすることができる。また、複数バイトのデータを一括してラッチ回路に取り込み、このラッチ回路からバイト単位でＦＰＧＡにコンフィギュレーションデータを出力するようにしたので、フラッシュＲＯＭのようなアクセス時間が長くかつ安価なメモリを使用することができる。【選択図】図１
2010177897.tif 000002
【特許請求の範囲】
【請求項１】
ＦＰＧＡ(Field Programmable Gate Array)をコンフィギュレーションするＦＰＧＡのコンフィギュレーション回路であって、
少なくとも２バイトのデータバス幅を有し、コンフィギュレーションデータが格納されるメモリと、
クロックが入力され、前記メモリのアドレスを発生するカウンタと、
前記メモリに格納されたデータを取り込み、取り込んだデータをバイト単位でＦＰＧＡに出力するラッチ回路と、
前記ＦＰＧＡのコンフィギュレーション、および前記カウンタを制御する制御部と、
を具備したことを特徴とするＦＰＧＡのコンフィギュレーション回路。
【請求項２】
前記メモリとこのメモリの出力データを取り込むラッチ回路の組を複数組具備し、これらのメモリに異なるコンフィギュレーションデータを格納すると共に、前記ラッチ回路の出力を異なるＦＰＧＡに出力するようにしたことを特徴とする請求項１記載のＦＰＧＡのコンフィギュレーション回路。
【請求項３】
前記ＦＰＧＡがコンフィギュレーションを開始する前に、前記メモリに格納されているコンフィギュレーションデータの最初のデータを、前記ラッチ回路に取り込むようにしたことを特徴とする請求項１若しくは請求項２記載のＦＰＧＡのコンフィギュレーション回路。
【請求項４】
前記制御部は、
コンフィギュレーションを開始する信号が入力されると前記カウンタを動作させて前記メモリに格納された最初のコンフィギュレーションデータを前記ラッチ回路にラッチさせるステートと、
前記ＦＰＧＡのコンフィギュレーション準備作業が完了するまで前記カウンタを停止させるステートと、
前記ＦＰＧＡのコンフィギュレーション準備作業が完了すると、前記カウンタの動作を再開させ、前記メモリに格納されたコンフィギュレーションデータを順次前記ＦＰＧＡに出力させるステートと、
を具備したことを特徴とする請求項１乃至請求項３いずれかに記載のＦＰＧＡのコンフィギュレーション回路。
【請求項５】
前記ラッチ回路には前記カウンタの下位出力信号が入力され、当該ラッチ回路は入力された下位出力信号に基づいて取り込んだデータをバイト単位で出力するようにしたことを特徴とする請求項１乃至請求項４いずれかに記載のＦＰＧＡのコンフィギュレーション回路。
【請求項６】
前記メモリはフラッシュＲＯＭであることを特徴とする請求項１乃至請求項５いずれかに記載のＦＰＧＡのコンフィギュレーション回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＦＰＧＡ(Field Programmable Gate Array)をコンフィギュレーションする回路に関し、特に高速でコンフィギュレーションすることができるＦＰＧＡのコンフィギュレーション回路に関するものである。
【背景技術】
【０００２】
ＦＰＧＡは、論理構造を決定するデータを内部のメモリに書き込むことにより、所望の論理回路を実現することができる論理ＩＣである。論理構造を決定するデータをコンフィギュレーションデータと言い、このコンフィギュレーションデータをメモリに書き込むことをコンフィギュレーションと言う。ＦＰＧＡは短期間かつ低コストで所望の論理回路を実現できるので、近年多用されるようになった。
【０００３】
ＦＰＧＡは、通常論理構造を決定するデータを書き込むメモリとしてスタティックＲＡＭを用いる。スタティックＲＡＭは電源が落ちるとデータが消失するために、ＦＰＧＡの電源を投入する度にコンフィギュレーションを行わなければならない。
【０００４】
図５に、従来のコンフィギュレーションを行う構成を示す。図５において、１０はコンフィギュレーション専用のフラッシュＲＯＭであり、ＦＰＧＡの論理構造を決定するコンフィギュレーションデータが書き込まれる。１１はコンフィギュレーション対象のＦＰＧＡ、１２はクロック発振器である。フラッシュＲＯＭ１０とＦＰＧＡ１１は１対１に接続される。
【０００５】
なお、フラッシュＲＯＭ１０のｘＲＥＳＥＴおよびＦＰＧＡ１１のＩＮＩＴ＿Ｂはオープンドレイン出力であり、電源投入時は共にオンである。また、ｘＲＥＳＥＴ、ｘＣＥの「ｘ」は、低レベルでアクティブになる信号であることを表している。
【０００６】
電源が投入されるとＦＰＧＡ１１は初期化を開始し、コンフィギュレーションの準備ができるとＩＮＩＴ＿Ｂをオフ（オープン）にする。フラッシュＲＯＭ１０は、コンフィギュレーションの準備ができると、ｘＲＥＳＥＴをオフにする。
【０００７】
ＩＮＩＴ＿ＢとｘＲＥＳＥＴが両方ともオフになるとこれらの端子は高レベルになり、コンフィギュレーションが開始される。フラッシュＲＯＭ１０はクロック発振器１２が出力するクロックに同期してＦＰＧＡ１１のデータ端子Ｄ０−Ｄ７にコンフィギュレーションデータをアドレス０から順次出力し、ＦＰＧＡ１１はこのコンフィギュレーションデータを取り込む。
【０００８】
全てのコンフィギュレーションデータを取り込むと、ＦＰＧＡ１１はＤＯＮＥを高レベルにする。フラッシュＲＯＭ１０はＤＯＮＥが高レベルになると、動作を停止する。このようにしてコンフィギュレーションが完了し、ＦＰＧＡは動作を開始する。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、このようなコンフィギュレーションの構成には次のような課題があった。専用のフラッシュＲＯＭ１０は起動に数十ｍＳの時間を必要とするので、ＦＰＧＡが起動するまでの時間が長くなってしまうという課題があった。
【００１０】
また、フラッシュＲＯＭ１０は１バイト単位でコンフィギュレーションデータを読み出し、ＦＰＧＡ１１に転送する。このため、コンフィギュレーションデータの読み出しに時間がかかり、ＦＰＧＡ１１が起動するまでの時間が長くなってしまうという課題もあった。
【００１１】
従って本発明の目的は、ＦＰＧＡの起動時間を短くすることができるＦＰＧＡのコンフィギュレーション回路を提供することにある。
【課題を解決するための手段】
【００１２】
このような課題を解決するために、本発明のうち請求項１記載の発明は、
ＦＰＧＡ(Field Programmable Gate Array)をコンフィギュレーションするＦＰＧＡのコンフィギュレーション回路であって、
少なくとも２バイトのデータバス幅を有し、コンフィギュレーションデータが格納されるメモリと、
クロックが入力され、前記メモリのアドレスを発生するカウンタと、
前記メモリに格納されたデータを取り込み、取り込んだデータをバイト単位でＦＰＧＡに出力するラッチ回路と、
前記ＦＰＧＡのコンフィギュレーション、および前記カウンタを制御する制御部と、
を具備したものである。ＦＰＧＡの起動時間を短縮することができる。
【００１３】
請求項２記載の発明は、請求項１記載の発明において、
前記メモリとこのメモリの出力データを取り込むラッチ回路の組を複数組具備し、これらのメモリに異なるコンフィギュレーションデータを格納すると共に、前記ラッチ回路の出力を異なるＦＰＧＡに出力するようにしたものである。複数のＦＰＧＡを同時にコンフィギュレーションできる。
【００１４】
請求項３記載の発明は、請求項１若しくは請求項２記載の発明において、
前記ＦＰＧＡがコンフィギュレーションを開始する前に、前記メモリに格納されているコンフィギュレーションデータの最初のデータを、前記ラッチ回路に取り込むようにしたものである。ラッチ回路に格納されている不定データに影響されず、確実にコンフィギュレーションできる。
【００１５】
請求項４記載の発明は、請求項１乃至請求項３いずれかに記載の発明において、
前記制御部は、
コンフィギュレーションを開始する信号が入力されると前記カウンタを動作させて前記メモリに格納された最初のコンフィギュレーションデータを前記ラッチ回路にラッチさせるステートと、
前記ＦＰＧＡのコンフィギュレーション準備作業が完了するまで前記カウンタを停止させるステートと、
前記ＦＰＧＡのコンフィギュレーション準備作業が完了すると、前記カウンタの動作を再開させ、前記メモリに格納されたコンフィギュレーションデータを順次前記ＦＰＧＡに出力させるステートと、
を具備したものである。ラッチ回路に格納されている不定データに影響されず、確実にコンフィギュレーションできる。
【００１６】
請求項５記載の発明は、請求項１乃至請求項４いずれかに記載の発明において、
前記ラッチ回路には前記カウンタの下位出力信号が入力され、当該ラッチ回路は入力された下位出力信号に基づいて取り込んだデータをバイト単位で出力するようにしたものである。構成が簡単になる。
【００１７】
請求項６記載の発明は、請求項１乃至請求項５いずれかに記載の発明において、
前記メモリとしてフラッシュＲＯＭを用いたものである。安価なメモリを用いることができる。
【発明の効果】
【００１８】
以上説明したことから明らかなように、本発明によれば次のような効果がある。
請求項１，２、３、４、５および６の発明によれば、複数バイトのデータバス幅を有するメモリにコンフィギュレーションデータを書き込み、カウンタを用いてアドレスを順次指定して、このアドレスに格納された複数バイトのデータを一括してラッチ回路に取り込み、バイト単位でＦＰＧＡに出力するようにした。
【００１９】
従来の専用フラッシュＲＯＭは起動に数十ｍＳを要したが、この発明によるコンフィギュレーション回路の起動時間は短いので、コンフィギュレーションに要する時間を短くすることができる。そのため、ＦＰＧＡの起動時間を短縮することができるという効果がある。
【００２０】
また、複数バイトのデータを一括してラッチ回路に取り込み、このラッチ回路からバイト単位でＦＰＧＡに出力するようにしたので、安価なアクセス時間の長いメモリを使用することができ、コストダウンを図ることができるという効果もある。
【００２１】
さらに、コンフィギュレーションを開始する前に、メモリの先頭に格納されたコンフィギュレーションデータをラッチ回路に取り込むことにより、電源投入時にラッチ回路に格納されている不定データの影響を受けず、確実にコンフィギュレーションができるという効果もある。
【発明を実施するための最良の形態】
【００２２】
以下図面を用いて本発明の実施例１を詳細に説明する。図１は本発明に係るＦＰＧＡのコンフィギュレーション回路の実施例１を示す構成図である。なお、図５と同じ要素には同一符号を付し、説明を省略する。
【実施例１】
【００２３】
図１において、２０はＦＰＧＡ１１をコンフィギュレーションするコンフィギュレーション回路であり、汎用のフラッシュＲＯＭ２１、カウンタ２２、ラッチ回路２３、ステートマシンで構成される制御部２４、およびＦＥＴ２５で構成される。
【００２４】
フラッシュＲＯＭ２１はデータバス幅が１６ビットの２Ｍバイトメモリであり、コンフィギュレーションデータが格納されている。フラッシュＲＯＭ２１のライトイネーブル端子ｘＷＥは高レベルに、出力イネーブル端子ｘＯＥとチップセレクト端子ｘＣＥは低レベルにされる。このため、このフラッシュＲＯＭ２１は読み出し可能となっている。
【００２５】
フラッシュＲＯＭは電源を切ってもデータが消失しない不揮発性の半導体メモリであるが、比較的安価な反面、バイト単位でデータを書き換えることはできず、ブロック単位で消去してからデータを書き込むメモリである。本実施例はコンフィギュレーションデータを書き込むだけであり、バイト単位で書き換えることはないので、フラッシュＲＯＭを用いても、取り扱いが煩雑になることはない。
【００２６】
２２は２１ビットのカウンタであり、そのクロック端子ＣＬＫには外部からクロックＣＣＬＫが入力される。また、カウント値である出力信号Ｑ１〜Ｑ２０は、フラッシュＲＯＭ２１のアドレス端子Ａ０〜Ａ１９に入力される。なお、ｘＥＮはカウンタのイネーブル端子、ｘＣＬはカウント値のクリア端子であり、いずれも低レベルでアクティブになる。
【００２７】
ラッチ回路２３は、ラッチ２３ａと２３ｂ、インバータ２３ｃで構成される。このラッチ回路２３は、フラッシュＲＯＭ２１のデータバスＤ０〜Ｄ１５に出力されるデータを一括して取り込み、この取り込んだデータをバイト単位でＦＰＧＡ１１のデータ端子Ｄ０〜Ｄ７に出力する。
【００２８】
ラッチ２３ａの入力端子Ｄ０〜Ｄ７にはフラッシュＲＯＭ２１の下位側のデータバスＤ０〜Ｄ７が接続される。また、ラッチクロック端子ＣＬＫと出力イネーブル端子ｘＯＥには、カウンタ２２の最下位ビット出力信号Ｑ０が入力される。
【００２９】
ラッチ２３ｂの入力端子Ｄ０〜Ｄ７には、フラッシュＲＯＭ２１の上位側のデータバスＤ８〜Ｄ１５が接続される。また、ラッチクロック端子ＣＬＫには信号Ｑ０が、出力イネーブル端子ｘＯＥには信号Ｑ０をインバータ２３ｃで反転した信号が入力される。
【００３０】
ラッチ２３ａ、２３ｂは信号Ｑ０の立ち下がりでフラッシュＲＯＭ２１から入力されたデータをラッチする。また、ラッチ２３ａは信号Ｑ０が低レベルのときにラッチしたデータを出力し、ラッチ２３ｂは信号Ｑ０が高レベルのときにラッチしたデータを出力する。ラッチ２３ａ、２３ｂは、ラッチしたデータを出力しないときは、その出力をハイインピーダンスにする。
【００３１】
制御部２４の端子ＣＬＫにはクロックＣＣＬＫが、端子ＣＯにはクロックウエイト信号ｘＣＫＷＴが入力され、カウンタ２２に信号ｘＥＮ、ｘＣＬを出力してこのカウンタの動作を制御し、また信号ＩＮＩＴ＿Ｂ０によってＦＰＧＡ１１のコンフィギュレーション開始、停止を制御する。
【００３２】
図２に、制御部２４の状態遷移図を示す。制御部２４はＳ０〜Ｓ３の４つのステート間を遷移するステートマシンである。信号ｘＣＫＷＴが低レベルの間は、ステートＳ０になる。制御部２４は信号ｘＥＮを高レベル、ｘＣＬを低レベルにする。カウンタ２２のｘＥＮ、ｘＣＬにはそれぞれ高レベル、低レベルが入力されるので、カウンタ２２は動作を停止し、かつクリアされる。
【００３３】
また、制御部２４は信号ＩＮＩＴ＿Ｂ０を高レベルにする。ＦＥＴ２５はオンになり、ＦＰＧＡ１１のＩＮＩＴ＿Ｂは低レベルになる。このため、ＦＰＧＡ１１のコンフィギュレーションは抑制される。
【００３４】
信号ｘＣＫＷＴが高レベルになると、ステートＳ１に遷移する。制御部２４は信号ｘＥＮを低レベル、ｘＣＬを高レベルにする。これによって、カウンタ２２は０からカウントを開始する。なお、信号ＩＮＩＴ＿Ｂ０は高レベルのままとする。ＦＰＧＡ１１のコンフィギュレーションは引き続き抑制される。
【００３５】
カウンタ２２の値が“０００００１ｈ”になると、ステートＳ２に移行する。信号ｘＣＴＷＴが高レベルに遷移した直後は、ラッチ回路２３には不定データが書き込まれている。信号ｘＣＴＷＴが高レベルになるとすぐにコンフィギュレーションを開始すると、この不定データをＦＰＧＡ１１に書き込んでしまうので、ステートＳ２でラッチ回路２３の内容が更新されるまで待つ。
【００３６】
なお、図１では直接Ｑ１−Ｑ２０を検出しないで、ステートＳ１に遷移してからＣＣＬＫの２回目の立ち上がりでステートＳ２に遷移するようにする。カウンタ２２はＣＣＬＫの立ち上がりでカウントアップするので、このようにしても同じ効果が得られる。
【００３７】
ステートＳ２では、信号ｘＥＮとｘＣＬを高レベルにしてカウンタ２２を停止させ、信号ＩＮＩＴ＿Ｂ０を低レベルにする。
【００３８】
ＦＰＧＡ１１はコンフィギュレーションの準備作業が終了すると、ＦＰＧＡ１１はＩＮＩＴ＿Ｂを高レベルにする。これによって、制御部２４はステートＳ３に遷移する。ステートＳ３では、制御部２４は信号ｘＥＮを低レベル、ｘＣＬを高レベルにする。カウンタ２２はカウントを開始する。
【００３９】
ステートＳ３では、フラッシュＲＯＭ２１に格納されたデータが順次読み出される。カウンタ２２の出力Ｑ１〜Ｑ２０で指定されたアドレスに格納された下位バイトデータはラッチ２３ａに、上位バイトはラッチ２３ｂにラッチされる。
【００４０】
カウンタ２２の出力Ｑ０が低レベルのときは、ラッチ２３ａにラッチされたデータがＦＰＧＡ１１に出力され、Ｑ０が高レベルのときは、ラッチ２３ｂにラッチされたデータがＦＰＧＡ１１に出力される。ＦＰＧＡ１１はこれらのデータをコンフィギュレーションデータとして取り込む。
【００４１】
コンフィギュレーションが終了すると、ＦＰＧＡ１１は信号ＤＯＮＥを高レベルにする。これによって、制御部２４はステートＳ０に遷移する。あるいは、ＦＰＧＡ１１は信号ＩＮＩＴ＿Ｂを低レベルにする場合もある。このＩＮＩＴ＿Ｂは端子ＩＮＩＴ＿Ｂ１から制御部２４に取り込まれる。これによっても、制御部２４はステートＳ０に遷移する。
【００４２】
図３に、ステートＳ０からＳ３までの各信号の波形図を示す。図３において、（Ａ）はクロックＣＣＬＫ、（Ｂ）はクロックウエイト信号ｘＣＫＷＴ、（Ｃ）はＦＰＧＡ１１のコンフィギュレーションを制御するＩＮＩＴ＿Ｂ０、（Ｄ）はカウンタイネーブル信号ｘＥＮ、（Ｅ）はカウンタ２２のクリア信号ｘＣＬ、（Ｆ）はカウンタ２２の最下位出力信号Ｑ０、（Ｇ）はフラッシュＲＯＭ２１のアドレス、（Ｈ）はフラッシュＲＯＭ２１の出力データ、（Ｉ）はラッチ回路２３にラッチされるデータ、（Ｊ）はＦＰＧＡ１１に出力されるコンフィギュレーションデータ、（Ｋ）はステートである。
【００４３】
信号ｘＣＫＷＴが低レベルの間はステートＳ０である。信号ｘＥＮは高レベル、ｘＣＬは低レベルにされるので、カウンタ２２はクリア、かつカウントは停止される。このため、フラッシュＲＯＭ２１のアドレスは０になる。また、信号ＩＮＩＴ＿Ｂ０が高レベルにされるので、ＦＰＧＡ１１のコンフィギュレーションは抑制される。
【００４４】
時刻ｔ１で信号ｘＣＫＷＴが高レベルになると、ステートＳ１に遷移する。信号ｘＥＮは低レベル、ｘＣＬは高レベルにされるので、カウンタ２２は０からカウントを開始する。ＩＮＩＴ＿Ｂ０は高レベルを維持するので、ＦＰＧＡ１１のコンフィギュレーションは引き続き抑制される。
【００４５】
時刻ｔ２でカウンタ２２の出力Ｑ１が“１”になると、フラッシュＲＯＭ２１のアドレスは１になり、ステートＳ２に遷移する。信号ｘＥＮは高レベルにされるので、カウンタ２２はカウント動作を中止する。また、信号ＩＮＩＴ＿Ｂ０は低レベルにされる。
【００４６】
信号Ｑ０の立ち下がりにより、フラッシュＲＯＭ２１のアドレス０に格納されたデータＤｔ０はラッチ回路２３にラッチされる。信号Ｑ０は低レベルなので、ＦＰＧＡ１１の端子Ｄ０〜Ｄ７にはデータＤｔ０の下位バイトデータＤｔ０Ｌが出力される。
【００４７】
時刻ｔ３でＦＰＧＡ１１の準備作業が終了すると、ステートＳ３に遷移する。信号ｘＥＮは低ベルにされ、カウンタ２２はカウントを再開する。また、ＦＰＧＡ１１はコンフィギュレーションを開始してデータＤｔ０Ｌを取り込む。
【００４８】
時刻ｔ４で信号Ｑ０が高レベルになる。ＦＰＧＡ１１にはデータＤｔ０の上位バイトＤｔ０Ｈが出力され、ＦＰＧＡ１１はこのデータを取り込む。
【００４９】
時刻ｔ５で信号Ｑ０は立ち下がり、ラッチ回路２３はフラッシュＲＯＭ２１のアドレス１に格納されたデータＤｔ１を取り込む。信号Ｑ０は低レベルなので、ＦＰＧＡ１１にはデータＤｔ１の下位バイトＤｔ１Ｌが出力され、ＦＰＧＡ１１はこのデータを取り込む。時刻ｔ６で信号Ｑ０が高レベルになると、ＦＰＧＡ１１にはデータＤｔ１の上位バイトＤｔ１Ｈが出力され、ＦＰＧＡ１１はこのデータを取り込む。
【００５０】
以後同様にして、ラッチ回路２３はフラッシュＲＯＭ２１に格納されたデータを順番にラッチし、ＦＰＧＡ１１にこのラッチされたデータを下位バイト、上位バイトの順に出力する。ＦＰＧＡ１１はこのデータをコンフィギュレーションデータとして取り込む。
【００５１】
このように、ラッチ回路２３は２バイト単位でフラッシュＲＯＭ２１からデータを読み込み、下位バイト、上位バイトの順でＦＰＧＡ１１に出力する。このため、フラッシュＲＯＭ２１としてアクセス時間が長い汎用のフラッシュＲＯＭを用いることができる。
【００５２】
例えば、ＣＣＬＫとして周期４０ｎＳのクロックを用いると、フラッシュＲＯＭ２１としてアクセス時間が７０ｎＳの低速メモリを用いることができ、かつ１Ｍバイトのコンフィギュレーションデータを約４０ｍＳで書き込むことができる。
【００５３】
また、コンフィギュレーション専用フラッシュＲＯＭはコンフィギュレーションが開始されるまでに数十ｍＳ必要であり、このためＦＰＧＡの起動が遅くなるという課題があった。実施例１によるコンフィギュレーション回路は起動に時間を要しないので、コンフィギュレーション時間を大幅に短縮することができる。
【００５４】
図４に、本発明の実施例２の構成を示す。この実施例２は、同時に２つのＦＰＧＡをコンフィギュレーションすることができる。なお、図１と同じ要素には同一符号を付し、説明を省略する。
【実施例２】
【００５５】
図４において、３０はコンフィギュレーション回路であり、フラッシュＲＯＭ３１、３２、ラッチ回路３３、３４、カウンタ２２、制御部２４、ＦＥＴ２５で構成される。なお、４０、４１はコンフィギュレーション対象のＦＰＧＡである。
【００５６】
フラッシュＲＯＭ３１、３２は実施例１のフラッシュＲＯＭ２１と同様の汎用フラッシュＲＯＭであり、ライトイネーブル端子ｘＷＥは高レベル、出力イネーブル端子ｘＯＥとチップイネーブル端子ｘＣＥは低レベルにされる。フラッシュＲＯＭ３１にはＦＰＧＡ４０のコンフィギュレーションデータが、フラッシュＲＯＭ３２にはＦＰＧＡ４１のコンフィギュレーションデータが格納される。
【００５７】
ラッチ回路３３、３４はラッチ２３ａ、２３ｂ、およびインバータ２３ｃで構成され、実施例１のラッチ回路２３と同じ構成を有している。ラッチ回路３３はフラッシュＲＯＭ３１の出力データをラッチして、バイト単位でＦＰＧＡ４０に出力し、ラッチ回路３４はフラッシュＲＯＭ３２の出力データをラッチして、バイト単位でＦＰＧＡ４１に出力する。
【００５８】
制御部２４にはクロックＣＣＬＫおよびクロックウエイト信号ｘＣＫＷＴが入力され、カウンタ２２を制御する。またその端子ＤＯＮＥはＦＰＧＡ４０、４１の信号ＤＯＮＥが入力され、ＩＮＩＴ＿Ｂ１端子はＦＰＧＡ４０、４１のＩＮＩＴ＿Ｂに接続される。なお、ＦＰＧＡ４０、４１の信号ＩＮＩＴ＿Ｂ、ＤＯＮＥはいずれもオープンドレイン出力なので、複数のＦＰＧＡの出力を制御部２４のＩＮＩＴ＿Ｂ１、ＤＯＮＥにワイヤードオア接続できる。
【００５９】
カウンタ２２のクロック端子ＣＬＫにはＣＣＬＫが入力され、出力Ｑ１〜Ｑ２０はフラッシュＲＯＭ３１、３２のアドレス端子に入力される。また、出力Ｑ０はラッチ回路３３、３４に出力される。
【００６０】
制御部２４とカウンタ２２の動作は実施例１と同じである。ＦＰＧＡ４０と４１の両方共コンフィギュレーションの準備ができると、制御部２４のＩＮＩＴ＿Ｂ１が高レベルになる。これによって、制御部２４はステートＳ３に移行する。
【００６１】
また、ＦＰＧＡ４０と４１の両方共コンフィギュレーションが完了すると、制御部２４のＤＯＮＥが高レベルになる。これによって、制御部２４はＦＰＧＡ４０と４１のコンフィギュレーションが完了したと判断し、ステートＳ０に移行する。
【００６２】
この実施例２は、１つの制御部２４とカウンタ２２で２つのフラッシュＲＯＭ３１、３２およびラッチ回路３３、３４を制御し、同時に２つのＦＰＧＡ４０、４１をコンフィギュレーションすることができる。このため、コンフィギュレーション時間をさらに短縮することができる。また、制御部２４とカウンタ２２を共用することができるので、実施例１のコンフィギュレーション回路を２つ用いるよりも構成を簡単にすることができる。
【００６３】
実施例２は２つのＦＰＧＡを同時にコンフィギュレーションできるコンフィギュレーション回路であったが、３つ以上のＦＰＧＡを同時にコンフィギュレーションできるコンフィギュレーション回路に拡張することもできる。この場合、フラッシュＲＯＭとラッチ回路の組をコンフィギュレーションするＦＰＧＡの数だけ用意し、これらの組を制御部２４とカウンタ２２で制御し、各ラッチ回路の出力を異なるＦＰＧＡに出力するようにすればよい。
【００６４】
なお、実施例１、実施例２ではデータバス幅が２バイトのフラッシュＲＯＭを用いたが、４バイト幅等さらに広いデータバス幅を有するフラッシュＲＯＭを用いてもよい。この場合、ラッチ回路を拡張して、フラッシュＲＯＭの出力データを一度にラッチできるようにすればよい。
【００６５】
また、コンフィギュレーションデータを格納するメモリとしてフラッシュＲＯＭを用いたが、その他のメモリであってもよい。要は、コンフィギュレーションデータを格納でき、データバス幅が２バイト以上のメモリであればよい。但し、フラッシュＲＯＭは比較的安価であるので、フラッシュＲＯＭを用いるとコストダウンを図ることができる。
【００６６】
また、これらの実施例ではカウンタ２２の下位信号をラッチ回路２３、３３、３４に入力してバイト単位で出力するようにしたが、これらのラッチ回路にＣＣＬＫを入力するようにして、このクロックＣＣＬＫを用いてバイト単位で出力するようにしてもよい。但し、カウンタ２２の下位出力を用いると、この出力でラッチを直接駆動できるので、構成を簡単にすることができる。
【００６７】
さらに、ラッチ回路は実施例１、２の構成に限られることはない。要は、コンフィギュレーションデータを格納したメモリの出力データを一度にラッチし、バイト単位で順番に出力する構成であればよい。
【図面の簡単な説明】
【００６８】
【図１】本発明による実施例１の構成図である。
【図２】制御部２４の状態遷移図である。
【図３】実施例１の動作を説明するための波形図である。
【図４】本発明による実施例２の構成図である。
【図５】従来のコンフィギュレーションを行う回路の構成図である。
【符号の説明】
【００６９】
１１、４０、４１  ＦＰＧＡ
２０、３０  コンフィギュレーション回路
２１、３１、３２  フラッシュＲＯＭ
２２  カウンタ
２３、３３、３４  ラッチ回路
２３ａ、２３ｂ  ラッチ
２３ｃ  インバータ
２４  制御部
Ｓ０〜Ｓ３  ステート
【図１】
2010177897.tif 000003
【図２】
2010177897.tif 000004
【図３】
2010177897.tif 000005
【図４】
2010177897.tif 000006
【図５】
2010177897.tif 000007