(57)【要約】【課題】適切なスキャン速度を効率的な回路構成で実現する再構成可能回路を提供する。【解決手段】再構成可能回路は、再構成可能なユーザロジック回路と、ユーザロジック回路の論理構成を規定するコンフィギュレーションデータを保持するコンフィギュレーションメモリと、コンフィギュレーションメモリに対してデータを順次読み書きするためのスキャンチェーンと、スキャンチェーンを複数の部分チェーンに分割するようにスキャンチェーンの途中に挿入され、隣接する部分チェーン間の接続及び分離を制御可能な分割回路と、複数の部分チェーンのそれぞれに対して別個にデータの読み書きを行うための複数の信号経路とを含み、複数の信号経路のうちの少なくとも１つの信号経路はユーザロジック回路に接続されており、該１つの信号経路を介して複数の部分チェーンのうちの少なくとも１つに対してユーザロジック回路からデータの読み書きを行うことが可能である。【選択図】図１
2015021838.tif 000002
【特許請求の範囲】
【請求項１】
再構成可能なユーザロジック回路と、
前記ユーザロジック回路の論理構成を規定するコンフィギュレーションデータを保持するコンフィギュレーションメモリと、
前記コンフィギュレーションメモリに対してデータを順次読み書きするためのスキャンチェーンと、
前記スキャンチェーンを複数の部分チェーンに分割するように前記スキャンチェーンの途中に挿入され、隣接する部分チェーン間の接続及び分離を制御可能な分割回路と、
前記複数の部分チェーンのそれぞれに対して別個にデータの読み書きを行うための複数の信号経路と、
を含み、前記複数の信号経路のうちの少なくとも１つの信号経路は前記ユーザロジック回路に接続されており、該１つの信号経路を介して前記複数の部分チェーンのうちの少なくとも１つに対して前記ユーザロジック回路からデータの読み書きを行うことが可能であることを特徴とする再構成可能回路。
【請求項２】
前記分割回路はセレクタ回路を含み、前記セレクタ回路の一方の入力は前記複数の部分チェーンのうちの第１の部分チェーンに接続され、前記セレクタ回路の他方の入力は前記複数の信号経路のうちの第１の信号経路に接続され、前記セレクタ回路の出力は前記第１の部分チェーンに隣接する第２の部分チェーンに接続されることを特徴とする請求項１記載の再構成回路。
【請求項３】
前記複数の部分チェーンは第１の部分チェーンと第２の部分チェーンとを含み、前記ユーザロジック回路は第１の回路部分と第２の回路部分とを含み、前記第１の部分チェーンのコンフィギュレーションメモリのコンフィギュレーションデータにより前記第１の回路部分の構成が規定され、前記第２の部分チェーンのコンフィギュレーションメモリのコンフィギュレーションデータにより前記第２の回路部分の構成が規定され、前記第１の回路部分は前記１つの信号経路を介して前記第２の部分チェーンに接続されていることを特徴とする請求項１又は２記載の再構成可能回路。
【請求項４】
前記複数の部分チェーンのうちの少なくとも１つに対してデータの読み書きを行う前記ユーザロジック回路は、前記複数の部分チェーンのうちの少なくとも１つから読み出したデータに対する検査を行う検査回路であることを特徴とする請求項１乃至３いずれか一項記載の再構成可能回路。
【請求項５】
前記複数の部分チェーンのうちの少なくとも１つに対してデータの読み書きを行う前記ユーザロジック回路は、前記複数の部分チェーンのうちの少なくとも１つにコンフィギュレーションデータを書き込むリコンフィギュレーション回路であることを特徴とする請求項１乃至４いずれか一項記載の再構成可能回路。
【請求項６】
前記スキャンチェーンは互いに並行して配置された第１の配線と第２の配線とを含むことを特徴とする請求項１乃至５いずれか一項記載の再構成可能回路。
【請求項７】
再構成可能なユーザロジック回路と、前記ユーザロジック回路の論理構成を規定するコンフィギュレーションデータを保持するコンフィギュレーションメモリと、前記コンフィギュレーションメモリに対してデータを順次読み書きするためのスキャンチェーンとを含む再構成可能回路において、
前記スキャンチェーンを所望の数の複数の部分チェーンに分割し、
前記複数の部分チェーンのそれぞれに対して別個にデータの読み書きを行い、
前記データの読み書きは、前記複数の部分チェーンの少なくとも１つに対しては、前記ユーザロジック回路から行うことを特徴とする再構成可能回路の制御方法。
【請求項８】
前記複数の部分チェーンは第１の部分チェーンと第２の部分チェーンとを含み、前記ユーザロジック回路は第１の回路部分と第２の回路部分とを含み、前記第１の部分チェーンのコンフィギュレーションメモリのコンフィギュレーションデータにより前記第１の回路部分の構成が規定され、前記第２の部分チェーンのコンフィギュレーションメモリのコンフィギュレーションデータにより前記第２の回路部分の構成が規定され、前記第１の回路部分から前記第２の部分チェーンに対する前記データの読み書きを行うことを特徴とする請求項７記載の再構成可能回路の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願開示は、再構成可能回路及び再構成可能回路の制御方法に関する。
【背景技術】
【０００２】
ＦＰＧＡ（Field Programmable Gate Array）は、プログラム可能な汎用ロジックＬＳＩであり、コンフィグレーションメモリに書き込まれたコンフィギュレーションデータに従ってＬＳＩ内部の配線接続が制御され、所望のハードウェア構成を実現する。通常のＦＰＧＡには、デバイス外の装置からコンフィグレーションメモリをプログラミングするために、コンフィグレーションメモリ全体をスキャンする回路（スキャン回路）が備わっている。即ち、コンフィギュレーションメモリにデータを設定するためのスキャンチェーンが設けられており、スキャンチェーンを介してデータを順次シフトしていくことにより、メモリにデータを設定することができる。
【０００３】
トランジスタなどの半導体素子が微細化されると、記憶素子において電源電圧及び内部容量が減少することにより、臨界電荷量（保持データの反転に必要な電荷量）が減少する。その結果、α線や中性子線の到来に起因して保持データが反転してしまうソフトエラーの確率が高くなる。このようなソフトエラーによりコンフィギュレーションメモリのデータ内容が変化すると、ＦＰＧＡの実行する論理演算が本来の意図する論理演算と異なってしまう可能性がある。
【０００４】
このようなソフトエラー対策として、上記のスキャン回路を用いることにより、ＦＰＧＡの動作中に、コンフィグレーションメモリのデータを検査することができる。例えば、スキャンチェーンを介してコンフィギュレーションデータを順次読み出して、読み出したデータをＣＲＣ（Cyclic Redundancy Check）による誤り検出を行ってよい。具体的には、ＣＲＣ検査回路を設けておき、ＣＲＣ検査回路により、コンフィギュレーションデータのＣＲＣ値を計算する。このＣＲＣ値がデータ書き込み時と異なっている場合、ＣＲＣ検査回路がソフトエラー検出信号を出力する。
【０００５】
スキャン回路によりコンフィグレーションメモリ全体のスキャンを完了するまでに、数ミリ秒から数秒程度の時間がかかる。即ち、ソフトエラーが発生してからＣＲＣ値の検査によりエラーを検出できるまで、最大数秒程度の遅れが生じてしまう。例えば、金融取引やネットワークセキュリティ用途等の回路では、１ミリ秒以下の応答速度が要求される。従って、スキャン回路によりスキャンしてＣＲＣ検査を実行するという方法では、ソフトエラー対策として不十分である場合がある。
【０００６】
またＦＰＧＡにおいては、コンフィギュレーションデータを随時書き換えることで、動的に論理を再構成することができる。上記のスキャン回路を用いてコンフィグレーションデータを書き込む場合、メモリ全体のスキャンを完了するまでに長い時間がかかってしまったのでは、ＦＰＧＡの論理を迅速に再構成することができない。
【０００７】
スキャンチェーンを分割して複数の短いスキャンチェーンにし、複数のスキャンチェーンに対して別個にスキャンを実行する回路構成とすることにより、スキャン完了迄にかかる時間を短くすることができる。このとき複数個のスキャンチェーンに対して、一対一に、データの読み書きを行うためのスキャン読み書き回路を同数個設けることになる。ここでスキャン読み書き回路は、例えばスキャンチェーンを介してデータを読み出して検査を行うＣＲＣ検査回路や、スキャンチェーンを介してデータを書き込んで動的再構成を行うリコンフィグレーション回路等である。しかしながら、迅速なスキャン動作を実現するために複数の短いスキャンチェーンを有した回路構成とした場合、スキャン読み書き回路の個数が多くなり、分割しない場合と比較してユーザが使用できる再構成可能回路部分を小さくせざるを得ない。即ち、回路スペースを再構成可能回路部分に効率的に使用することができない。またスキャンチェーンを分割しない回路構成とした場合には、スキャン読み書き回路の個数が最小限（１個）ですみ、回路スペースを再構成可能回路部分に効率的に使用することができるが、スキャン動作に長い時間がかかってしまう。
【０００８】
用途によっては、要求されるスキャン速度がそれ程早くない場合がある。その一方で、早いスキャン速度が要求される用途もある。そのような様々な用途に対して、適切なスキャン速度を効率的な回路構成で提供できることが望ましい。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特公平７−４６１２１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
以上を鑑みると、適切なスキャン速度を効率的な回路構成で実現する再構成可能回路が望まれる。
【課題を解決するための手段】
【００１１】
再構成可能回路は、再構成可能なユーザロジック回路と、前記ユーザロジック回路の論理構成を規定するコンフィギュレーションデータを保持するコンフィギュレーションメモリと、前記コンフィギュレーションメモリに対してデータを順次読み書きするためのスキャンチェーンと、前記スキャンチェーンを複数の部分チェーンに分割するように前記スキャンチェーンの途中に挿入され、隣接する部分チェーン間の接続及び分離を制御可能な分割回路と、前記複数の部分チェーンのそれぞれに対して別個にデータの読み書きを行うための複数の信号経路とを含み、前記複数の信号経路のうちの少なくとも１つの信号経路は前記ユーザロジック回路に接続されており、該１つの信号経路を介して前記複数の部分チェーンのうちの少なくとも１つに対して前記ユーザロジック回路からデータの読み書きを行うことが可能であることを特徴とする。
【００１２】
再構成可能回路の制御方法は、再構成可能なユーザロジック回路と、前記ユーザロジック回路の論理構成を規定するコンフィギュレーションデータを保持するコンフィギュレーションメモリと、前記コンフィギュレーションメモリに対してデータを順次読み書きするためのスキャンチェーンとを含む再構成可能回路において、前記スキャンチェーンを所望の数の複数の部分チェーンに分割し、前記複数の部分チェーンのそれぞれに対して別個にデータの読み書きを行い、前記データの読み書きは、前記複数の部分チェーンの少なくとも１つに対しては、前記ユーザロジック回路から行うことを特徴とする。
【発明の効果】
【００１３】
少なくとも１つの実施例によれば、適切なスキャン速度を効率的な回路構成で実現する再構成可能回路が望まれる。
【図面の簡単な説明】
【００１４】
【図１】再構成可能回路の構成の一例を示す図である。
【図２】コンフィギュレーションメモリのデータにより規定されるユーザロジック回路の論理構成の一例を示す図である。
【図３】分割回路の回路構成の一例を示す図である。
【図４】信号ｔｈｒｕ＿ｅｎの値が"１"の場合における分割回路によるスキャンチェーン接続の様子を示す図である。
【図５】信号ｔｈｒｕ＿ｅｎの値が"０"の場合における分割回路によるスキャンチェーン分離の様子を示す図である。
【図６】再構成可能回路の使用方法の一例を示すフローチャートである。
【図７】プログラム動作時の再構成可能回路の様子を示した図である。
【図８】スキャンチェーンが分割された状態にある再構成可能回路の様子を示す図である。
【図９】スキャンチェーンが非分割の状態にある再構成可能回路の様子を示す図である。
【図１０】再構成可能回路の構成の別の一例を示す図である。
【図１１】再構成可能回路の構成の更に別の一例を示す図である。
【図１２】スキャンチェーンの物理的なレイアウトの一例を示す図である。
【発明を実施するための形態】
【００１５】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。なお各図面において、同一又は対応する構成要素は同一又は対応する番号で参照する。
【００１６】
図１は、再構成可能回路の構成の一例を示す図である。再構成可能回路１０は、コンフィギュレーションメモリ１１、ユーザロジック回路１２、データＲＡＭ１３、スキャン読み書き回路１４、セレクタ回路１５、外部端子１６−１乃至１６−６、制御信号線１７−１乃至１７−３を含む。再構成可能回路１０はＦＰＧＡ等であってよく、コンフィギュレーションメモリ１１に書き込まれたコンフィギュレーションデータに従ってユーザロジック回路１２内部の配線接続が制御され、所望の論理構成を実現する。ユーザロジック回路１２において、再構成可能に相互接続される最小単位の回路の大きさは特に限定されず、当該回路は個々の論理ゲートであってよいし、或いはルックアップテーブルであってもよいし、或いは演算ユニットであってもよい。即ち、ユーザロジック回路１２の再構成可能な単位の粒度は特に限定されない。
【００１７】
図１及び以降の同様の図において、各ボックスで示される各回路又は機能ブロックと他の回路又は機能ブロックとの境界は、基本的には機能的な境界を示すものであり、物理的な位置の分離、電気的な信号の分離、制御論理的な分離等に対応するとは限らない。各回路又は機能ブロックは、他のブロックと物理的にある程度分離された１つのハードウェアモジュールであってもよいし、或いは他のブロックと物理的に一体となったハードウェアモジュール中の１つの機能を示したものであってもよい。
【００１８】
コンフィギュレーションメモリ１１は、一繋がりのスキャンチェーン２１並びに分割回路２２−１及び２２−２を含む。コンフィギュレーションメモリ１１は、ユーザロジック回路１２の論理構成を規定するコンフィギュレーションデータを保持する。スキャンチェーン２１は、コンフィギュレーションメモリ１１内のメモリ要素（フリップフリップ等）３０に対してデータを順次読み書きするために用いられる。具体的には、複数のメモリ要素３０が縦続に接続されることにより、シフトレジスタと同様の回路構成として、一繋がりのスキャンチェーン２１が形成される。データ書き込み時には、スキャンチェーン２１の一端からクロックに同期させて一連のデータをシリアルに供給し、各メモリ要素３０においてクロック同期でデータを書き込みながら、縦続接続された複数のメモリ要素３０間で順次データを伝搬させていく。データ読み出し時には、縦続接続された複数のメモリ要素３０間で順次データを伝搬させていき、スキャンチェーン２１の一端からクロックに同期させて一連のデータをシリアルに読み出す。
【００１９】
分割回路２２−１及び２２−２は、スキャンチェーン２１を複数の部分チェーン２１−１乃至２１−３に分割するようにスキャンチェーン２１の途中に挿入され、隣接する部分チェーン間の接続及び分離を制御することができる。図１の例では、２つの分割回路２２−１及び２２−２が設けられ、スキャンチェーン２１が３つの部分チェーン２１−１乃至２１−３に分割可能となっている。分割回路及び部分チェーンの数はこの例に限定されるものではなく、任意の個数であってよい。
【００２０】
ユーザロジック回路１２は、ユーザロジック回路２４−１乃至２４−３を含む。ユーザロジック回路２４−１及び２４−２は、それぞれスキャン読み書き回路２５−１及び２５−２を含んでよい。スキャン読み書き回路２５−１及び２５−２は、コンフィギュレーションメモリ１１のコンフィギュレーションデータにより再構成可能な回路として形成される回路である。部分チェーン２１−１のメモリ要素３０に格納されたコンフィギュレーションデータにより、制御信号線１７−１を介して、ユーザロジック回路２４−１の論理構成が規定される。部分チェーン２１−２のメモリ要素３０に格納されたコンフィギュレーションデータにより、制御信号線１７−２を介して、ユーザロジック回路２４−２の論理構成が規定される。部分チェーン２１−３のメモリ要素３０に格納されたコンフィギュレーションデータにより、制御信号線１７−３を介して、ユーザロジック回路２４−３の論理構成が規定される。このように、ユーザロジック回路２４−１乃至２４−３の間の境界は部分チェーン２１−１乃至２１−３の間の境界に対応するものであり、機能的な境界に対応するという訳ではない。またユーザロジック回路２４−１乃至２４−３同士は互いに再構成可能に接続されてよい。
【００２１】
複数の信号経路２３−１及び２３−２を介して、複数の部分チェーン２１−１及び２１−２のそれぞれに対して別個にデータの読み書きを行うことができる。またスキャン読み書き回路１４とコンフィギュレーションメモリ１１とを接続する信号経路を介して、部分チェーン２１−３に対して別個にデータの読み書きを行うことができる。なお、スキャンチェーン２１が一繋がりとなっている場合には、スキャン読み書き回路１４とコンフィギュレーションメモリ１１とを接続する信号経路を介して、スキャンチェーン２１全体に対してデータの読み書きを行うことができる。
【００２２】
上記の信号経路のうちの少なくとも１つの信号経路は、ユーザロジック回路に接続されている。図１の例では、信号経路２３−１及び２３−２がそれぞれ、ユーザロジック回路２４−１及び２４−２に接続されている。これにより、当該信号経路を介して複数の部分チェーン２１−１及び２１−３のうちの少なくとも１つに対してユーザロジック回路からデータの読み書きを行うことが可能である。図１の例では、信号経路２３−１及び２３−２を介して、部分チェーン２１−１及び２１−２のそれぞれに対して、ユーザロジック回路２４−１及び２４−２からデータの読み書きを行うことが可能である。データの読み書きの動作は、ユーザロジック回路２４−１及び２４−２中に再構成可能に形成されたスキャン読み書き回路２５−１及び２５−２により行われる。なお図１の例において、スキャン読み書き回路１４は固定の回路として実装されているが、ユーザロジック回路２４−３中に再構成可能な回路として実装されてもよい。
【００２３】
図１に示す再構成可能回路１０では、分割回路２２−１及び２２−２の分離又は接続状態を、それぞれ外部端子１６−２及び１６−３を介して供給する信号ｔｈｒｕ＿ｅｎ１及びｔｈｒｕ＿ｅｎ２により制御することができる。なおこの例では分割回路の分離又は接続状態の制御を外部からの信号により行うとしたが、代わりに、例えば再構成可能回路１０内部の制御回路やユーザロジック回路１２からの信号により行ってよい。
【００２４】
分割回路２２−１及び２２−２が両方共に接続状態とされた場合、部分チェーン２１−１乃至２１−３が全て互いに接続されて、一繋がりのスキャンチェーン２１が形成される。この場合、スキャン読み書き回路１４により、スキャンチェーン２１に対してデータの読み書きを実行することができる。例えば、コンフィギュレーションメモリ１１の各メモリ要素３０の格納データに対してＣＲＣによる誤り検出を行ったり、コンフィギュレーションメモリ１１の各メモリ要素３０のデータを書き換えたりという動作が可能である。この場合、コンフィギュレーションメモリ１１の読み書きにかかる時間は長くなる。しかしながら、ユーザロジック回路２４−１及び２４−２にスキャン読み書き回路２５−１及び２５−２を形成する必要が無く、ユーザロジック回路２４−１及び２４−２の回路リソースを有効に活用することができる。
【００２５】
分割回路２２−１及び２２−２が両方共に分離状態とされた場合、部分チェーン２１−１乃至２１−３が互いに隣接する部分チェーンから分離されて、３つの別個のスキャンチェーン（部分チェーン）が形成される。この場合、スキャン読み書き回路２５−１及び２５−２により、部分チェーン２１−１及び２１−２のそれぞれに対して、データの読み書きを実行することができる。またスキャン読み書き回路１４により、部分チェーン２１−３に対してデータの読み書きを実行することができる。例えば、コンフィギュレーションメモリ１１の各メモリ要素３０の格納データに対してＣＲＣによる誤り検出を行ったり、コンフィギュレーションメモリ１１の各メモリ要素３０のデータを書き換えたりという動作が可能である。この場合、ユーザロジック回路２４−１及び２４−２の回路リソースの一部を、スキャン読み書き回路２５−１及び２５−２を形成するために用いる必要がある。しかしながら、コンフィギュレーションメモリ１１の読み書きにかかる時間は、一繋がりのスキャンチェーン２１を用いる場合と比較して、約１／３程度に短くなり、迅速なスキャン速度を実現することができる。
【００２６】
上記の例では、分割回路２２−１及び２２−２が両方共に分離状態とされることにより、３つの別個のスキャンチェーン（部分チェーン）が形成される。この３分割の例は限定を意図するものではなく、分割数は任意であってよい。例えば、分割回路２２−１及び２２−２の何れか一方を分離状態とし且つ他方を接続状態とすることにより、２つの別個のスキャンチェーン（部分チェーン）を形成してもよい。
【００２７】
なおコンフィギュレーションメモリ１１のメモリ要素３０に初期のコンフィギュレーションデータを書き込むためには、外部端子１６−５及び１６−６を介してデータＤＩをスキャンチェーン２１に供給すればよい。このとき、セレクタ回路１５に外部端子１６−４から供給する選択制御信号ｉｓｃａｎ＿ｅｎを例えば０に設定することにより、セレクタ回路１５の"０"側の入力、即ち、外部端子１６−５からのデータＤＩがスキャンチェーン２１に供給されることになる。なお外部端子１６−６を介して、スキャンチェーン２１からのデータＤＯを外部に読み出すこともできる。またスキャン読み書き回路１４によりスキャンチェーン２１又は部分チェーン２１−３に対してデータを書き込む場合、セレクタ回路１５に外部端子１６−４から供給する選択制御信号ｉｓｃａｎ＿ｅｎを例えば１に設定する。これにより、セレクタ回路１５の"１"側の入力、即ち、スキャン読み書き回路１４からのデータＤＩ＿ｉｓｃａｎが、スキャンチェーン２１に供給されることになる。なおスキャンチェーン２１からのデータＤＯ＿ｉｓｃａｎを、スキャン読み書き回路１４により読み出すこともできる。また外部端子１６−１に印加するリセット信号ｒｅｓｅｔにより、再構成可能回路１０を初期状態に初期化することができる。
【００２８】
図２は、コンフィギュレーションメモリ１１のデータにより規定されるユーザロジック回路の論理構成の一例を示す図である。図２には、一例として、部分チェーン２１−１とユーザロジック回路２４−１とが示されている。部分チェーン２１−１の複数のメモリ要素３０が、各々を区別するために、メモリ要素３０−１乃至３０−１１として示されている。ユーザロジック回路２４−１は、ルックアップテーブル（ＬＵＴ）回路３１及び３２を含む。ルックアップテーブル回路３１及び３２は同一の構成であってよい。ルックアップテーブル回路３１及び３２の各々には、２つの入力の組合せに対して１つの出力パターンを規定したルックアップテーブルが複数個内蔵されている。異なるルックアップテーブルは、２つの入力の組合せに対する異なる出力パターンを規定している。ルックアップテーブル回路３１及び３２に供給する制御信号により、複数のルックアップテーブルのうちの１つを選択することにより、２つの入力の組合せに対して１つの出力パターンが選択される。
【００２９】
図２の例において、ルックアップテーブル回路３１では、メモリ要素３０−８の格納データに応じた制御信号が供給され、加算演算に対応する出力パターンを規定したルックアップテーブルが選択されている。従って、ルックアップテーブル回路３１は、レジスタ３２−１からのデータＡとレジスタ３２−２からのデータＢとを入力として受け取ると、加算結果であるＡ＋Ｂを出力データとして生成する。またルックアップテーブル回路３２では、メモリ要素３０−９の格納データに応じた制御信号が供給され、積算演算に対応する出力パターンを規定したルックアップテーブルが選択されている。従って、ルックアップテーブル回路３２は、レジスタ３２−３からのデータＣとルックアップテーブル回路３１の出力であるＡ＋Ｂとを入力として受け取ると、積算結果である（Ａ＋Ｂ）＊Ｃを出力データＤとして生成する。この出力データＤ＝（Ａ＋Ｂ）＊Ｃが、レジスタ３２−４に演算結果として格納される。
【００３０】
部分チェーン２１−１によりメモリ要素３０−８及び３０−９に所望のデータを格納することにより、所望の論理（機能）を実現するようにルックアップテーブル回路３１及び３２を設定することができる。またルックアップテーブル回路間の接続については、クロスバースイッチ回路等を用い、スイッチの開閉をメモリ要素の格納データにより制御することにより、所望の接続関係を実現できる。このようにして、ユーザロジック回路２４−１においては、再構成可能に所望の論理を実現することが可能となる。
【００３１】
図３は、分割回路２２−１の回路構成の一例を示す図である。分割回路２２−２も図３に示される回路構成と同一の回路構成を有していてよい。
【００３２】
分割回路２２−１は、セレクタ回路４１、セレクタ回路４２、並びに端子４３及び４４を含む。セレクタ回路４１の一方の入力（"１"側の入力）は、節点４６を介して、複数の部分チェーンのうちの１つの部分チェーン２１−２に接続される。セレクタ回路４１の他方の入力（"０"側の入力）は、端子４３を介して、複数の信号経路２３−１及び２３−２（図1参照）のうちの１つの信号経路２３−１に接続される。セレクタ回路４１の出力は上記の１つの部分チェーン２１−２に隣接する部分チェーン２１−１に接続される。なお信号経路２３−１は、スキャン読み書き回路２５−１に接続されている。
【００３３】
またセレクタ回路４２の一方の入力（"１"側の入力）は、節点４５を介して、部分チェーン２１−１及び端子４４に接続される。セレクタ回路４２の他方の入力（"０"側の入力）は、節点４６を介して、部分チェーン２１−２及びセレクタ回路４１の"１"側の入力に接続される。セレクタ回路４２の出力は部分チェーン２１−２に接続される。
【００３４】
また外部から供給される信号ｔｈｒｕ＿ｅｎが、セレクタ回路４１及びセレクタ回路４２に対して選択制御信号として印加される。信号ｔｈｒｕ＿ｅｎの値が"０"のとき、セレクタ回路４１及び４２は、"０"側の入力を選択して出力する。信号ｔｈｒｕ＿ｅｎの値が"１"のとき、セレクタ回路４１及び４２は、"１"側の入力を選択して出力する。
【００３５】
図４は、信号ｔｈｒｕ＿ｅｎの値が"１"の場合における分割回路によるスキャンチェーン接続の様子を示す図である。図４において、信号ｔｈｒｕ＿ｅｎの値が"１"であるため、セレクタ回路４１及び４２は、"１"側の入力を選択して出力する。従って、各端子、節点、及びセレクタ回路間の電気的な接続は、実線で示される配線を介しての接続となり、分割回路２２−１は接続状態となる。即ち、隣接する部分チェーン２１−１と部分チェーン２１−２とが、分割回路２２−１を介して互いに接続される。
【００３６】
図５は、信号ｔｈｒｕ＿ｅｎの値が"０"の場合における分割回路によるスキャンチェーン分離の様子を示す図である。図４において、信号ｔｈｒｕ＿ｅｎの値が"０"であるため、セレクタ回路４１及び４２は、"０"側の入力を選択して出力する。従って、各端子、節点、及びセレクタ回路間の電気的な接続は、実線で示される配線を介しての接続となり、分割回路２２−１は分離状態となる。即ち、隣接する部分チェーン２１−１と部分チェーン２１−２とが、分割回路２２−１により互いから分離される。また部分チェーン２１−１は、端子４３及び４４を介して、スキャン読み書き回路に接続される。これにより、スキャン読み書き回路による部分チェーン２１−１に対するコンフィギュレーションデータの読み書きが可能となる。
【００３７】
図６は、再構成可能回路１０の使用方法の一例を示すフローチャートである。まずステップＳ１においてプログラム動作が実行される。
【００３８】
図７は、プログラム動作時の再構成可能回路１０の様子を示した図である。このプログラム動作では、スキャン書き込み外部回路１００が外部端子１６−５及び１６−６に接続され、このスキャン書き込み外部回路１００からコンフィギュレーションメモリ１１のコンフィギュレーションデータを設定する。このとき、選択制御信号ｉｓｃａｎ＿ｅｎを"０"に設定することにより、セレクタ回路１５の"０"側の入力、即ち、外部端子１６−５からのデータＤＩがスキャンチェーン２１に供給される。また外部端子１６−２及び１６−３を介して供給する信号ｔｈｒｕ＿ｅｎ１及びｔｈｒｕ＿ｅｎ２をそれぞれ１に設定することにより、分割回路２２−１及び２２−２が接続状態に設定され、スキャンチェーン２１が一繋がりのチェーンとなる。なお外部端子１６−１に印加されるリセット信号は無効値（"０"）に設定される。
【００３９】
図６に戻り、ステップＳ２において、リセット動作が実行される。このリセット動作では、外部端子１６−１に印加されるリセット信号が有効値（"１"）に設定される。これにより、再構成可能回路１０のユーザロジック回路１２が初期化される。
【００４０】
ステップＳ３では、スキャンチェーン２１が非分割の状態で再構成可能回路１０が動作する。ステップＳ４では、スキャンチェーン２１が分割された状態で再構成可能回路１０が動作する。ステップＳ３又はＳ４のいずれか一方が排他的に実行される。何れのステップが実行されるかは、ステップＳ１のプログラム動作時に既に決定されている。ステップＳ１で非分割用にプログラムされた再構成可能回路１０は、ステップＳ３において非分割状態での動作を行う。ステップＳ１で分割用にプログラムされた再構成可能回路１０は、ステップＳ３において分割状態での動作を行う。
【００４１】
図８は、スキャンチェーン２１が分割された状態にある再構成可能回路１０の様子を示す図である。外部端子１６−２及び１６−３を介して供給する信号ｔｈｒｕ＿ｅｎ１及びｔｈｒｕ＿ｅｎ２をそれぞれ０に設定することにより、分割回路２２−１及び２２−２が分離状態に設定される。即ち、スキャンチェーン２１が複数の部分チェーン２１−１乃至２１−３に分割された状態となる。
【００４２】
選択制御信号ｉｓｃａｎ＿ｅｎを"１"に設定することにより、セレクタ回路１５の"１"側の入力、即ち、スキャン読み書き回路１４からのデータＤＩ＿ｉｓｃａｎが、部分チェーン２１−３に供給されることになる。また部分チェーン２１−３からのデータＤＯ＿ｉｓｃａｎを、スキャン読み書き回路１４により読み出すこともできる。
【００４３】
またユーザロジック回路２４−１のスキャン読み書き回路２５−１から、信号経路２３−１及び分割回路２２−１を介して、部分チェーン２１−１に対してデータの読み書きを行うことができる。同様に、ユーザロジック回路２４−２のスキャン読み書き回路２５−２から、信号経路２３−２及び分割回路２２−２を介して、部分チェーン２１−２に対してデータの読み書きを行うことができる。
【００４４】
なおスキャンチェーン２１を分割して部分チェーンを形成する際の分割数は、図８に示すような３分割に限られない。信号ｔｈｒｕ＿ｅｎ１及びｔｈｒｕ＿ｅｎ２をそれぞれ０及び１に設定することにより、分割回路２２−１を分離状態に設定し、且つ、分割回路２２−２を接続状態に設定してよい。この場合、スキャンチェーン２１は２つの部分チェーンに分割されることになる。
【００４５】
またスキャンチェーン２１を分割して部分チェーンを形成する分割の仕方は、図８に示すような仕方に限られない。図８では、スキャンチェーン２１の端から端までを４箇所で分断して５個のセグメントを形成し、１番目のセグメントと５番目のセグメントとを接続して１つの部分チェーンを形成している。また２番目のセグメントと４番目のセグメントを接続して１つの部分チェーンを形成している。更に、３番目のセグメントはそれのみで１つの部分チェーンを形成している。このように部分チェーンを形成するのではなく、１番目のセグメントから５番目のセグメントにより、１番目の部分チェーンから５番目の部分チェーンをそれぞれ形成するようにしてもよい。そして、１番目から５番目の部分チェーンの各々に個別にデータの読み書きをするようにしてもよい。
【００４６】
図９は、スキャンチェーン２１が非分割の状態にある再構成可能回路１０の様子を示す図である。外部端子１６−２及び１６−３を介して供給する信号ｔｈｒｕ＿ｅｎ１及びｔｈｒｕ＿ｅｎ２をそれぞれ１に設定することにより、分割回路２２−１及び２２−２が接続状態に設定される。即ち、スキャンチェーン２１が一繋がりのチェーンとされた状態となる。
【００４７】
選択制御信号ｉｓｃａｎ＿ｅｎを"１"に設定することにより、セレクタ回路１５の"１"側の入力、即ち、スキャン読み書き回路１４からのデータＤＩ＿ｉｓｃａｎが、スキャンチェーン２１に供給されることになる。またスキャンチェーン２１からのデータＤＯ＿ｉｓｃａｎを、スキャン読み書き回路１４により読み出すこともできる。
【００４８】
この場合、ユーザロジック回路２４−１及び２４−２内に、スキャン読み書き回路を形成する必要はない。従って、ユーザロジック回路２４−１及び２４−２の全ての回路リソースをユーザが使用可能となる。
【００４９】
図１０は、再構成可能回路の構成の別の一例を示す図である。図１０において、図１と同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。
【００５０】
図１０の再構成可能回路において、コンフィギュレーションメモリ、スキャン読み書き回路、及びユーザロジック回路以外の部分、即ち、図１に示すデータＲＡＭ１３、セレクタ回路１５、外部端子１６−１乃至１６−６等は図示を省略してある。図１０の再構成回路は、図１の再構成可能回路と比較して、部分チェーン２１−１乃至２１−３とユーザロジック回路２４−１乃至２４−３との間の接続関係が異なる。
【００５１】
図１の再構成可能回路では、部分チェーン２１−１のメモリ要素３０は制御信号線１７−１を介してユーザロジック回路２４−１に接続され、ユーザロジック回路２４−１は信号経路２３−１及び分割回路２２−１を介して部分チェーン２１−１と接続可能である。部分チェーン２１−２及びユーザロジック回路２４−２との間の接続関係についても同様である。例えば部分チェーン２１−１のメモリ要素３０のコンフィギュレーションデータにソフトエラーが発生した場合、スキャン読み書き回路２５−１が当該ソフトエラーによる影響を受けて正常に動作することができなくなる可能性がある。このとき、例えばスキャン読み書き回路２５−１がＣＲＣ検査回路である場合、部分チェーン２１−１のメモリ要素３０のコンフィギュレーションデータをＣＲＣにより検査して訂正するという動作が不可能となってしまう。
【００５２】
図１０に示す再構成可能回路では、第１の部分チェーン２１−１のメモリ要素のコンフィギュレーションデータにより第１のユーザロジック回路２４−１の論理構成が規定される。また第２の部分チェーン２１−２のメモリ要素のコンフィギュレーションデータにより第２のユーザロジック回路２４−２の論理構成が規定される。この点については図１に示す再構成可能回路と同様であるが、図１０に示す再構成可能回路では、第１のユーザロジック回路２４−１は、１つの信号経路２３−４及び分割回路２２−２を介して第２の部分チェーン２１−２に接続可能となっている。また第２のユーザロジック回路２４−２は、１つの信号経路２３−５及び分割回路２２−１を介して第１の部分チェーン２１−１に接続可能となっている。即ち、あるユーザロジック回路の論理構成を規定するコンフィギュレーションデータを格納するメモリ要素を含む部分チェーンと、当該ユーザロジック回路が読み書きする対象である部分チェーンとが互いに異なっている。
【００５３】
図１０の再構成可能回路では、スキャン読み書き回路２５−１及び２５−２の具体的な例として、ＣＲＣ検査回路２５−１及び２５−２が形成されている。またスキャン読み書き回路１４の具体的な例として、ＣＲＣ検査回路１４Ａが形成されている。このような構成とすることにより、例えば部分チェーン２１−１のメモリ要素のコンフィギュレーションデータにソフトエラーが発生した場合でも、ＣＲＣ検査回路２５−２は当該ソフトエラーによる影響を受けることなく正常に動作することができる。従って、ＣＲＣ検査回路２５−２が部分チェーン２１−１のメモリ要素のコンフィギュレーションデータをＣＲＣにより検査して、訂正可能であればデータを訂正することにより、適切なエラー検出及び訂正動作が可能となる。
【００５４】
なお、ＣＲＣ検査回路によりスキャンチェーン或いはその部分チェーンのコンフィギュレーションデータをスキャン動作により順次読み出す場合、チェーンのシフトレジスタのフリップフロップの内容が順次書き換えられてしまう。従って、チェーンのシフトレジスタのフリップフロップの格納データそのものによりユーザロジック回路の論理構成を規定する構造にしてしまうと、ユーザロジック回路を動作させながらスキャン動作を実行することができない。ユーザロジック回路動作中のスキャン動作を実現するためには、チェーンのシフトレジスタのフリップフロップとは別に、当該フリップフロップのコンフィギュレーションデータのコピーを保持しておくメモリ要素を設けることが好ましい。図１や図１０に示す再構成可能回路において、チェーンのメモリ要素（例えば図１のメモリ要素３０）は、シフト動作用のフリップフロップとシフト動作中もコンフィギュレーションデータを保持するフリップフロップとを含んでよい。
【００５５】
図１１は、再構成可能回路の構成の更に別の一例を示す図である。図１１において、図１と同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。
【００５６】
図１１の再構成可能回路において、コンフィギュレーションメモリ、スキャン読み書き回路、及びユーザロジック回路以外の部分、即ち、図１に示すデータＲＡＭ１３、セレクタ回路１５、外部端子１６−１乃至１６−６等は図示を省略してある。図１１の再構成回路は、図１の再構成可能回路と比較して、部分チェーン２１−１乃至２１−３とユーザロジック回路２４−１乃至２４−３との間の接続関係が異なる。
【００５７】
図１１に示す再構成可能回路では、部分チェーン２１−１乃至２１−３のメモリ要素のコンフィギュレーションデータにより、ユーザロジック回路２４−１乃至２４−３の論理構成がそれぞれ規定される。この点については図１に示す再構成可能回路と同様であるが、図１１に示す再構成可能回路では、第１のユーザロジック回路２４−１は、１つの信号経路２３−６及び分割回路２２−２を介して第２の部分チェーン２１−２に接続可能となっている。また第２のユーザロジック回路２４−２は、１つの信号経路２３−８を介して第３の部分チェーン２１−３に接続されている。また第３のユーザロジック回路２４−３は、１つの信号経路２３−７及び分割回路２２−１を介して第１の部分チェーン２１−１に接続可能となっている。即ち、あるユーザロジック回路の論理構成を規定するコンフィギュレーションデータを格納するメモリ要素を含む部分チェーンと、当該ユーザロジック回路が読み書きする対象である部分チェーンとが互いに異なっている。
【００５８】
なお図１１の再構成可能回路では、スキャン読み書き回路２５−１乃至２５−３の具体的な例として、リコンフィギュレーション回路５０−１乃至５０−３が形成されている。リコンフィギュレーション回路５０−１乃至５０−３は、コンフィギュレーションメモリ１１の各メモリ要素のデータを書き換えることにより、ユーザロジック回路２４−１乃至２４−３の論理構成を再構成することができる。図１１では、ユーザロジック回路の論理構成を規定する部分チェーンと当該ユーザロジック回路が書き込む対象の部分チェーンとが互いに異なっていることで、あるリコンフィグレーション回路が動作中は、当該回路が書き換えられてしまうことがない。即ち、あるリコンフィグレーション回路が動作してユーザロジック回路の論理の再構成をする場合において、当該論理再構成動作により当該リコンフィギュレーション回路を含むユーザロジック回路の論理構成が書き換えられてしまうことがない。これにより、ユーザロジック回路によりリコンフィグレーション回路を形成しながらも、適切な再構成動作を実現することができる。
【００５９】
図１２は、スキャンチェーンの物理的なレイアウトの一例を示す図である。図１２において、スキャンチェーンは、互いに並行して配置された第１の配線６１及び第２の配線６２を含む。第１の配線６１は外周側配線であり、第２の配線６２は内周側配線である。また、当該スキャンチェーンを複数の部分チェーンに分割するようにスキャンチェーンの途中に挿入され、隣接する部分チェーン間の接続及び分離を制御可能な分割回路６３乃至６６が設けられている。スキャン読み書き回路６７は、スキャンチェーンに対してデータを読み書きすることができる。なお図示を省略するが、分割回路６４乃至６６にはそれぞれデータ読み書き用の信号経路が接続されており、これらの信号経路を介してそれぞれの部分チェーンにデータを読み書きできてよい。
【００６０】
図１２に示されるように、スキャンチェーンは、互いに並行して配置された第１の配線６１及び第２の配線６２を含んでよい。このように互いに並行して第１の配線と第２の配線とを配置することにより、分割位置（即ち分割回路を設けた位置）において外周側配線である第１の配線６１と内周側配線である第２の配線６２とを接続するための配線に必要な長さを、最低限に抑えることができる。従って、再構成可能回路１０の回路スペースの使用効率が高められる。
【００６１】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【符号の説明】
【００６２】
１０  再構成可能回路
１１  コンフィギュレーションメモリ
１２  ユーザロジック回路
１３  データＲＡＭ
１４  スキャン読み書き回路
１５  セレクタ回路
１６−１乃至１６−６  外部端子
１７−１乃至１７−３  制御信号線
２１  スキャンチェーン
２１−１乃至２１−３  部分チェーン
２２−１及び２２−２  分割回路
２３−１及び２３−２  信号経路
２４−１乃至２４−３  ユーザロジック回路
２５−１及び２５−２  スキャン読み書き回路
３０  メモリ要素
【図１】
2015021838.tif 000003
【図２】
2015021838.tif 000004
【図３】
2015021838.tif 000005
【図４】
2015021838.tif 000006
【図５】
2015021838.tif 000007
【図６】
2015021838.tif 000008
【図７】
2015021838.tif 000009
【図８】
2015021838.tif 000010
【図９】
2015021838.tif 000011
【図１０】
2015021838.tif 000012
【図１１】
2015021838.tif 000013
【図１２】
2015021838.tif 000014