(57)【特許請求の範囲】
【請求項１】
論理構成を動的に再構成可能な複数の論理ブロックと、
該複数の論理ブロック間を動的再構成可能に接続するネットワークと
を含み、該複数の論理ブロックのうちの少なくとも１つの論理ブロックは、第１のデータ信号と該第１のデータ信号の有効時にアサート状態となる第１の有効指示信号とを入力として受け取り、該第１のデータ信号を入力とする第１の論理演算により生成された第２のデータ信号と該第２のデータ信号の有効時にアサート状態となる第２の有効指示信号とを出力として生成し、該第１の有効指示信号のアサート状態に応答して該第２のデータ信号をアサート状態に設定する基本論理演算素子を含み、該基本論理演算素子は、該第２の有効指示信号のアサート状態に応答して、該第１の論理演算を実行する論理構成から第２の論理演算を実行する論理構成に切り替えられることを特徴とする再構成可能な論理回路装置。
【請求項２】
該少なくとも１つの論理ブロックは、
該基本論理演算素子から出力される該第２の有効指示信号のアサート状態に応答して該第２の有効指示信号を出力値として保持する第１の記憶素子と、
該基本論理演算素子から出力される該第２のデータ信号を該第２の有効指示信号のアサート状態に応答して出力値として保持する第２の記憶素子と
を含むことを特徴とする請求項１記載の再構成可能な論理回路装置。
【請求項３】
該少なくとも１つの論理ブロックは、クロック信号に同期して動作する第３の記憶素子を更に含み、該基本論理演算素子は、第３のデータ信号を入力として受け取り、該第３のデータ信号を入力とする該第２の論理演算を実行し、該第２の論理演算により生成された第４のデータ信号を出力し、該第３の記憶素子は、該クロック信号に同期して該第４のデータ信号を出力値として保持することを特徴とする請求項２記載の再構成可能な論理回路装置。
【請求項４】
該第１の記憶素子及び該第２の記憶素子の動作は該クロック信号に同期しない非同期動作であることを特徴とする請求項３記載の再構成可能な論理回路装置。
【請求項５】
該少なくとも１つの論理ブロックは、該第２の記憶素子の出力と該第３の記憶素子の出力とを選択的に該基本論理演算素子の入力に供給する信号経路を更に含むことを特徴とする請求項３記載の再構成可能な論理回路装置。
【請求項６】
該少なくとも１つの論理ブロックは、少なくとも該第１の論理演算を実行する論理構成を規定する構成情報と該第２の論理演算を実行する論理構成を規定する構成情報とを格納する第４の記憶素子を更に含むことを特徴とする請求項３記載の再構成可能な論理回路装置。
【請求項７】
該ネットワークは、該少なくとも１つの論理ブロックの入力側に設けられた接続切り替え回路を含み、該接続切り替え回路は、該第２の有効指示信号のアサート状態に応答して接続状態が切り替えられることを特徴とする請求項１記載の再構成可能な論理回路装置。
【請求項８】
該複数の論理ブロックに共通のクロック信号を供給する信号線を更に含み、該第２の有効指示信号のアサート状態に応答して実行される該接続切り替え回路の切り替え動作は該クロック信号に同期しない非同期動作であることを特徴とする請求項７記載の再構成可能な論理回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理回路装置に関し、詳しくは再構成可能な論理回路装置に関する。
【背景技術】
【０００２】
一般に、クロック信号に同期して動作する論理回路は、組み合わせ論理回路とフリップフロップとから構成される。フリップフロップの格納データ及び外部からの入力データに基づいて、組み合わせ論理回路が論理演算を実行し、その論理演算の結果がクロック信号に同期してフリップフロップに格納される。クロック信号のあるサイクルにおいて論理演算されフリップフロップに格納されたデータは、次のサイクルにおける論理演算の入力として利用される。
【０００３】
このようなクロック同期式デバイスにおいては、全ての組み合わせ論理素子は１クロックサイクル内に一度しか論理演算を実行していない。この際、組み合わせ論理素子が有意な演算を行うのは、その全ての入力が確定してから演算結果を出力するまでの極めて短い時間のみである。この極めて短い演算時間の後は、演算結果の出力値を単に保持し続けるだけである。
【０００４】
また、論理を動的に再構成可能なダイナミック・リコンフィギュラブル・デバイスにおいても、１クロックサイクル内に１度しか論理の切り替えを実行しない。従って、再構成可能な基本演算素子は、１クロックサイクル内において一度しか論理演算を実行していない。上記の組み合わせ論理素子の場合と同様に、極めて短い演算時間の後は、演算結果の出力値を単に保持し続けるだけである。
【０００５】
このように、１クロックサイクル中で実際に有意な演算を行う極めて短い時間以外の殆どの時間、組み合わせ論理素子や再構成可能な基本演算素子は、リーク電力を消費する無駄な存在となっている。また回路の集積度を上げるにも限界があり、集積度が上がらない分、インターコネクト長を短くすることができない。その結果、インターコネクト部によるダイナミックな電力消費が大きく、またインターコネクト部の遅延が高速動作の妨げとなる。またリコンフィギュラブル・デバイスの場合には、更に、再構成可能な基本演算素子の数以上の論理を組むことはできないという問題がある。
【特許文献１】特開２００７−１２８１４号公報
【特許文献２】特開２００５−１６５６９１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
以上を鑑みて、本発明は、１クロックサイクル内に複数回の異なる論理演算が可能な論理回路装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
再構成可能な論理回路装置は、論理構成を動的に再構成可能な複数の論理ブロックと、該複数の論理ブロック間を動的再構成可能に接続するネットワークとを含み、該複数の論理ブロックのうちの少なくとも１つの論理ブロックは、第１のデータ信号と該第１のデータ信号の有効時にアサート状態となる第１の有効指示信号とを入力として受け取り、該第１のデータ信号を入力とする第１の論理演算により生成された第２のデータ信号と該第２のデータ信号の有効時にアサート状態となる第２の有効指示信号とを出力として生成し、該第１の有効指示信号のアサート状態に応答して該第２のデータ信号をアサート状態に設定する基本論理演算素子を含み、該基本論理演算素子は、該第２の有効指示信号のアサート状態に応答して、該第１の論理演算を実行する論理構成から第２の論理演算を実行する論理構成に切り替えられることを特徴とする。
【発明の効果】
【０００８】
本発明の少なくとも１つの実施例によれば、有効指示信号を用いることにより、ある論理演算が完了したか否か、即ちある論理演算の役目が終了したか否かを判断することが可能である。ある論理演算が完了してその役目を終了すると、論理演算完了後直ちに、次の構成情報データをロードして新たな論理演算を可能な状態にすることができる。この構成により、1クロックサイクル内において非同期に論理ブロックの論理構成を変更することが可能になる。
【発明を実施するための最良の形態】
【０００９】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００１０】
図１は、本発明による論理回路装置の実施例の構成の一例を示す図である。図１の論理回路装置１０は、演算する論理構成が動的に再構成可能な論理回路であり、例えば１つの半導体集積回路チップとして提供される。動的に再構成可能な論理回路装置１０は、構成情報記憶素子１１に接続される。構成情報記憶素子１１は、論理回路装置１０の論理構成を規定する構成情報のデータを格納するＲＡＭ等のメモリである。この構成情報のデ―タを論理回路装置１０内の構成情報記憶素子に書き込むことにより、論理回路装置１０の内部回路及び回路間の結線が構成情報に応じた論理構成に設定され、所望の論理演算を実行することができる。処理実行中に、論理回路装置１０の構成情報のデータを順次書き替えることにより、異なるタイミングで異なる論理演算を実行することができる。図示の構成例では、構成情報記憶素子１１が論理回路装置１０外部に設けられているが、構成情報記憶素子１１を論理回路装置１０内に設ける構成であってもよい。
【００１１】
論理回路装置１０は、論理ブロック（ＬＢ）１２、コネクションブロック（ＣＢ）１３、及びスイッチブロック（ＳＢ）１４を含む。図示されるように、複数の論理ブロック１２が縦横にマトリクス状に配置され、各論理ブロック１２は、その上下左右に配置される４つのコネクションブロック１３に接続される。またスイッチブロック１４がコネクションブロック１３間を接続する。図１では、図示の都合上、論理ブロック１２、コネクションブロック１３、及びスイッチブロック１４の一部にのみ参照番号を示してある。
【００１２】
このように、複数の論理ブロック１２の各々は、論理構成を動的に再構成可能な構成となっている。またコネクションブロック１３及びスイッチブロック１４により、複数の論理ブロック１２間を動的再構成可能に接続するネットワークを構成している。構成情報記憶素子１１の構成情報のデータに基づいて、論理ブロック１２の論理構成が決定されるとともに、コネクションブロック１３及びスイッチブロック１４の結線状態が決定される。即ち、構成情報に応じて論理ブロック１２が実行する論理演算の内容が決定されるとともに、構成情報に応じて、ある論理ブロック１２のある出力が何れの論理ブロック１２の何れの入力に結合されるかが決定される。
【００１３】
図２は、本発明の第１の実施例による論理回路装置１０における論理ブロック１２の回路構成の一例を示す図である。論理ブロック１２は、基本論理演算素子２１、ＬＢ論理構成情報記憶素子２２、セットリセットフリップフロップ（ＳＲ−ＦＦ）２３、ラッチ２４、ディレイフリップフロップ（Ｄ−ＦＦ）２５、及びセレクタ２６乃至３０を含む。フリップフロップ２３やラッチ２４は、出力値を保持可能な記憶素子であればよく、例えば容量素子を用いたダイナミック記憶素子でもよい。なお図２では、図示の簡便さの都合上、１つの論理ブロック１２が２つのコネクションブロック１３に結合されるように示されているが、実際には図１に示すように４つのコネクションブロック１３に結合されていてよい。コネクションブロック１３同士はスイッチブロック１４を介して接続されているので、論理ブロック１２の何れの入力又は出力が何れのコネクションブロック１３に接続されるかは本質的な問題ではない。
【００１４】
論理ブロック１２の基本論理演算素子２１は、第１のデータ信号Ｄａｔａ０＿ｉｎ０乃至Ｄａｔａ３＿ｉｎ０と第１のデータ信号の有効時にアサート状態となる第１の有効指示信号Ｖａｌｉｄ０＿Ｄｉｎ０乃至Ｖａｌｉｄ３＿Ｄｉｎ０とを、入力として受け取る。基本論理演算素子２１は、第１のデータ信号を入力とする第１の論理演算により生成された第２のデータ信号Ｄａｔａ＿ｏｕｔ１と該第２のデータ信号の有効時にアサート状態となる第２の有効指示信号Ｖａｌｉｄ＿Ｄｏ１とを出力として生成し、第１の有効指示信号のアサート状態に応答して第２のデータ信号をアサート状態に設定する。
【００１５】
図２に示す構成例では、基本論理演算素子２１の入力には更にフィードバックのデータ信号Ｄｉｎが供給される構成となっている。従って、第１のデータ信号は、Ｄａｔａ０＿ｉｎ０乃至Ｄａｔａ３＿ｉｎ０に加え更にフィードバックのデータ信号Ｄｉｎを含んでよい。また第１の有効指示信号は、Ｖａｌｉｄ０＿Ｄｉｎ０乃至Ｖａｌｉｄ３＿Ｄｉｎ０に加え更にＤｉｎの有効指示信号Ｖａｌｉｄ＿Ｄｏ０を含んでよい。
【００１６】
基本論理演算素子２１の論理演算は、Ｄａｔａ０＿ｉｎ０乃至Ｄａｔａ３＿ｉｎ０及びＤｉｎの全てを入力データして使用する必要はない。例えば、論理演算は、Ｄａｔａ０＿ｉｎ０乃至Ｄａｔａ２＿ｉｎ０の３入力のみを入力データとする演算であってよい。この場合、有効指示信号Ｖａｌｉｄ０＿Ｄｉｎ０乃至Ｖａｌｉｄ２＿Ｄｉｎ０が全てアサート状態になると、入力が確定したと判断し、当該論理演算を実行するとともに出力の有効指示信号Ｖａｌｉｄ＿Ｄｏ１をアサートする。
【００１７】
実際には、論理演算を現実に実行するタイミングを制御する必要はない。例えば基本論理演算素子２１がＡＮＤやＯＲ等の基本論理ゲートの組み合わせで構成される組み合わせ論理回路の場合、その時点での入力データ信号に応じた出力データ信号が常時生成され出力されていてよい。但し、必要な入力側の有効指示信号が全てアサート状態になったときに、出力の有効指示信号をアサートするように構成されればよい。基本論理演算素子２１は、例えばルックアップテーブルにより構成されてよい。この場合、ＬＢ論理構成情報記憶素子２２に格納される構成情報のデータに基づいて、ルックアップテーブルの出力値を設定可能な構成としてよい。
【００１８】
基本的には、図１に示す複数の論理ブロック１２の各々が図２に示す回路構成を備えてよい。しかし必ずしも全ての論理ブロックがこの回路構成を備える必要はない。例えば１つの論理ブロックのみが図２の論理ブロック１２の回路構成を備え、他の論理ブロックは、例えば入力側のみがデータ信号に有効指示信号が付随する構成であったり、或いは出力側のみがデータ信号に有効指示信号が付随する構成であったりしてもよい。
【００１９】
フリップフロップ２３は、基本論理演算素子２１から出力される第２の有効指示信号Ｖａｌｉｄ＿Ｄｏ１のアサート状態に応答して、第２の有効指示信号Ｖａｌｉｄ＿Ｄｏ１を出力値として保持する。例えばＨＩＧＨがアサート状態であるとして、フリップフロップ２３は、第２の有効指示信号Ｖａｌｉｄ＿Ｄｏ１がＨＩＧＨになると、その出力値をＨＩＧＨに保持する。ラッチ２４は、基本論理演算素子２１から出力される第２のデータ信号Ｄａｔａ＿ｏｕｔ１を、第２の有効指示信号Ｖａｌｉｄ＿Ｄｏ１のアサート状態に応答して出力値として保持する。即ち例えば、ラッチ２４は、第２の有効指示信号Ｖａｌｉｄ＿Ｄｏ１がＨＩＧＨになると、第２のデータ信号Ｄａｔａ＿ｏｕｔ１をラッチして、その出力値として保持する。
【００２０】
またフリップフロップ２５は、外部から供給されるクロック信号Ｃｌｏｃｋに同期してラッチ動作を行なう記憶素子である。なおこのクロック信号Ｃｌｏｃｋは、図１に示す複数の論理ブロック１２に共通に供給される信号である。基本論理演算素子２１は、第３のデータ信号Ｄａｔａ０＿ｉｎ１乃至Ｄａｔａ３＿ｉｎ１を入力として受け取り、第３のデータ信号を入力とする第２の論理演算を実行する。基本論理演算素子２１が、この第２の論理演算により生成された第４のデータ信号Ｄａｔａ＿ｏｕｔ０（＝Ｄａｔａ＿ｏｕｔ２）を出力すると、フリップフロップ２５は、クロック信号Ｃｌｏｃｋに同期して第４のデータ信号Ｄａｔａ＿ｏｕｔ０を出力値として保持する。なお前述したフリップフロップ２３及びラッチ２４の動作は、クロック信号Ｃｌｏｃｋに同期しない非同期動作である。
【００２１】
論理ブロック１２は、ラッチ２４の出力とフリップフロップ２５の出力とを選択的に基本論理演算素子２１の入力に供給するフィードバック信号経路を更に含む。ラッチ２４の出力とフリップフロップ２５の出力との選択は、セレクタ２６により行なわれる。このフィードバック信号経路により、基本論理演算素子２１の出力データを、その入力データとしてフィードバックすることができる。従って、論理ブロック１２は、単独で順序論理回路として動作することが可能となる。
【００２２】
ＬＢ論理構成情報記憶素子２２には、図１の構成情報記憶素子１１から供給される構成情報のデータが格納される。図２の例では、ＬＢ論理構成情報記憶素子２２は、第１の論理演算を実行する論理構成を規定する構成情報データＣＦＧ１と第２の論理演算を実行する論理構成を規定する構成情報データＣＦＧ２とを格納する。ＬＢ論理構成情報記憶素子２２から基本論理演算素子２１に構成情報データＣＦＧ１がロードされると、基本論理演算素子２１は第１の論理演算を実行する。ＬＢ論理構成情報記憶素子２２から基本論理演算素子２１に構成情報データＣＦＧ２がロードされると、基本論理演算素子２１は第２の論理演算を実行する。基本論理演算素子２１は、第２の有効指示信号Ｖａｌｉｄ＿Ｄｏ１のアサート状態に応答して、第１の論理演算を実行する論理構成から第２の論理演算を実行する論理構成に切り替えられる。即ち、第２の有効指示信号Ｖａｌｉｄ＿Ｄｏ１がアサート状態になると、このアサート状態に応答して、ＬＢ論理構成情報記憶素子２２から基本論理演算素子２１に構成情報データＣＦＧ２を書き込む。
【００２３】
図３は、図２の論理ブロック１２の動作を示す信号波形である。以下に、図２と図３とを参照して、論理ブロック１２の一連の動作について説明する。
【００２４】
図２において、まず構成情報記憶素子１１（図１参照）からＬＢ論理構成情報記憶素子２２に構成情報データＣＦＧ１と構成情報データＣＦＧ２とが格納される（Ｓ１）。構成情報記憶素子１１は、他の構成情報データを更に格納するように構成されてよい。ＬＢ論理構成情報記憶素子２２への構成情報データのロード動作は、論理回路装置１０のチップの初期化時に一度だけ実行する構成であってよい。なお論理回路装置１０が動作中に、クロックのあるサイクルと別のサイクルとでその論理構成を変えたい場合には、随時必要に応じて構成情報データをＬＢ論理構成情報記憶素子２２にロードしてもよい。また論理構成が固定である場合には、ＬＢ論理構成情報記憶素子２２をＲＯＭ或いは０／１クリップ等により構成してよい。この場合は、上記の構成情報データのロード動作を省略することができる。
【００２５】
クロック信号ＣｌｏｃｋのパルスがＬＢ論理構成情報記憶素子２２に供給され（Ｓ２）、このクロックパルスに応答して、構成情報データＣＦＧ１が基本論理演算素子２１にロードされる（Ｓ３）。これにより、基本論理演算素子２１は、構成情報データＣＦＧ１に応じた論理演算を実行する論理構成に設定される。更にこのとき、構成情報データに基づいてフリップフロップ２５の出力であるデータ信号Ｄａｔａ＿ｏｕｔ０が有効であるか否かが判断され、この判断に応じて有効指示信号Ｖａｌｉｄ＿Ｄｏ０を生成する。ＬＢ論理構成情報記憶素子２２には制御回路が含まれており、この制御回路が有効指示信号Ｖａｌｉｄ＿Ｄｏ０を生成する構成としてよい。
【００２６】
基本論理演算素子２１には、有効指示信号Ｖａｌｉｄ０＿Ｄｉｎ０乃至Ｖａｌｉｄ３＿Ｄｉｎ０により有効／無効が示されるデータ信号Ｄａｔａ０＿ｉｎ０乃至Ｄａｔａ３＿ｉｎ０が供給される（Ｓ４）。なおこのとき、セレクタ２６は、フリップフロップ２５の出力であるデータ信号Ｄａｔａ＿ｏｕｔ０を選択するように設定されている。またセレクタ２７乃至３０は、データ信号Ｄａｔａ０＿ｉｎ１乃至Ｄａｔａ３＿ｉｎ１を非選択として、データ信号Ｄａｔａ０＿ｉｎ０乃至Ｄａｔａ３＿ｉｎ０を選択するように設定されている。前述の有効指示信号Ｖａｌｉｄ＿Ｄｏ０と同様に、ＬＢ論理構成情報記憶素子２２の制御回路が、セレクタの選択指示信号を生成する構成としてよい。
【００２７】
前述のように、基本論理演算素子２１の実行する論理演算は、全体の入力データ信号のうち一部の入力データ信号のみを入力として用いる論理演算であってよい。以下の説明では、説明を単純にするために、全ての入力データ信号が入力として用いられる場合を想定する。
【００２８】
全ての入力側の有効指示信号がアサート状態（有効を示す状態）になると、基本論理演算素子２１は、出力データ信号Ｄａｔａ＿ｏｕｔ１を生成するとともにその出力データ信号が有効であることを示す有効指示信号Ｖａｌｉｄ＿Ｄｏ１をアサート状態（有効を示す状態）に設定する（Ｓ５）。図３にこの様子が示されている。図３の左端に示されるように、クロック信号Ｃｌｏｃｋの第１のサイクルにおいて、第１のサイクルの開始時には基本論理演算素子２１の論理構成が構成情報データＣＦＧ１により設定されている。タイミングＴ１において全ての入力側の有効指示信号Ｖａｌｉｄ０＿Ｄｉｎ０乃至Ｖａｌｉｄ３＿Ｄｉｎ０がアサート状態（この例ではＨＩＧＨ状態）になると、出力データ信号が有効であることを示す有効指示信号Ｖａｌｉｄ＿Ｄｏ１がアサート状態（この例ではＨＩＧＨ状態）になるとともに、出力データ信号Ｄａｔａ＿ｏｕｔ１が生成される（確定する）。
【００２９】
図２に戻り、アサート状態の有効指示信号Ｖａｌｉｄ＿Ｄｏ１は、フリップフロップ２３のセット信号として機能する。これによりフリップフロップ２３がセット状態になり、その出力がＶａｌｉｄ＿Ｄｏ１のアサート状態の信号レベルとなる（Ｓ６）。即ち、フリップフロップ２３は、アサート状態の有効指示信号Ｖａｌｉｄ＿Ｄｏ１を、その出力として保持するように機能する。
【００３０】
フリップフロップ２３が出力するアサート状態の有効指示信号Ｖａｌｉｄ＿Ｄｏ１は、ラッチ２４のラッチ動作のトリガ信号として用いられる。ラッチ２４は、Ｌｏｗ−Ｔｈｒｏｕｇｈ動作をするラッチであり、有効指示信号Ｖａｌｉｄ＿Ｄｏ１がＨＩＧＨになると、出力データ信号Ｄａｔａ＿ｏｕｔ１をラッチして保持する（Ｓ７）。
【００３１】
フリップフロップ２３が出力するアサート状態の有効指示信号Ｖａｌｉｄ＿Ｄｏ１は、更に、第２の構成情報データＣＦＧ２をＬＢ論理構成情報記憶素子２２から基本論理演算素子２１にロードする動作のトリガ信号として機能する。これにより第２の構成情報データＣＦＧ２が基本論理演算素子２１にロードされる（Ｓ７）。図３に示す動作例では、タイミングＴ１において有効指示信号Ｖａｌｉｄ＿Ｄｏ１がアサート状態となった後に、構成情報データがＣＦＧ１からＣＦＧ２へと切り替わっている。
【００３２】
ラッチ２４が出力する出力データ信号Ｄａｔａ＿ｏｕｔ１は、コネクションブロック１３に出力されるとともに、必要に応じて同一の論理ブロック１２内部で次の論理演算の入力データとして用いられる。ラッチ２４が出力する出力データ信号Ｄａｔａ＿ｏｕｔ１は、有効指示信号Ｖａｌｉｄ＿Ｄｏ１がアサート状態であるときのみ有効である。
【００３３】
その後、基本論理演算素子２１には、データ信号Ｄａｔａ０＿ｉｎ１乃至Ｄａｔａ３＿ｉｎ１が供給される（Ｓ８）。なおこのとき、セレクタ２６は、ラッチ２４の出力であるデータ信号Ｄａｔａ＿ｏｕｔ１を選択するように設定されている。またセレクタ２７乃至３０は、データ信号Ｄａｔａ０＿ｉｎ０乃至Ｄａｔａ３＿ｉｎ０を非選択として、データ信号Ｄａｔａ０＿ｉｎ１乃至Ｄａｔａ３＿ｉｎ１を選択するように設定されている。
【００３４】
このとき基本論理演算素子２１は、クロック信号Ｃｌｏｃｋの次のパルスが到来するまでは、第２の構成情報データＣＦＧ２がロードされている状態にある。またこのクロック信号パルスが到来すれば、基本論理演算素子２１には、第１の構成情報データＣＦＧ２がロードされてしまう。またこのとき、このクロック信号パルスに同期してフリップフロップ２５が基本論理演算素子２１の出力信号をラッチする構成となっている。このような固定のタイミングで動作する同期動作においては、入力データ信号Ｄａｔａ０＿ｉｎ１乃至Ｄａｔａ３＿ｉｎ１の有効／無効を示す信号は無用である。従って、入力データ信号Ｄａｔａ０＿ｉｎ１乃至Ｄａｔａ３＿ｉｎ１については、有効指示信号は設けられていない。しかし、入力データ信号Ｄａｔａ０＿ｉｎ１乃至Ｄａｔａ３＿ｉｎ１についても、対応する有効指示信号を設ける構成としてもよい。この場合には、出力側の有効指示信号Ｖａｌｉｄ＿Ｄｏ０は、有効指示信号Ｖａｌｉｄ＿Ｄｏ１と同様に入力側の有効指示信号に応じて生成されてよい。
【００３５】
基本論理演算素子２１は、入力データ信号Ｄａｔａ０＿ｉｎ１乃至Ｄａｔａ３＿ｉｎ１及びフィードバックされた入力データ信号Ｄｉｎ（＝Ｄａｔａ＿ｏｕｔ１）を入力として、構成情報データＣＦＧ２に応じた論理演算を実行し、出力データ信号Ｄａｔａ＿ｏｕｔ２を生成する（Ｓ９）。この出力データ信号Ｄａｔａ＿ｏｕｔ２は、クロック信号Ｃｌｏｃｋに同期すること無くそのままコネクションブロック１３に出力される。また更に、この出力データ信号Ｄａｔａ＿ｏｕｔ２は、クロック信号Ｃｌｏｃｋのパルスが供給されると（Ｓ１０）、このパルスに同期してフリップフロップ２５に格納される。フリップフロップ２５は、格納データを出力データ信号Ｄａｔａ＿ｏｕｔ０として出力する（Ｓ１１）。
【００３６】
なお、クロック信号Ｃｌｏｃｋに同期すること無くそのままコネクションブロック１３に出力される出力データ信号Ｄａｔａ＿ｏｕｔ２は、他の論理ブロック１２においてＤａｔａ０＿ｉｎ１乃至Ｄａｔａ３＿ｉｎ１の何れかとして用いることができる。従って、出力データ信号Ｄａｔａ＿ｏｕｔ２には、対応する有効指示信号は設けられていない。
【００３７】
図３に示されるように、クロック信号Ｃｌｏｃｋの第１のサイクルの後半は、基本論理演算素子２１の論理構成が構成情報データＣＦＧ２により設定されている。タイミングＴ２において全ての入力データ信号が確定すると、正しい出力データ信号Ｄａｔａ＿ｏｕｔ２が生成される（確定する）。またクロック信号Ｃｌｏｃｋの２番目のパルスが到来すると、出力データ信号Ｄａｔａ＿ｏｕｔ２が出力データ信号Ｄａｔａ＿ｏｕｔ０としてフリップフロップ２５にラッチされるとともに、構成情報データがＣＦＧ２からＣＦＧ１に書き替えられる。
【００３８】
図４は、コネクションブロック１３の構成の一例を示す図である。コネクションブロック１３は、複数のスイッチ４１、複数のセレクタ４２、及びＣＢ論理構成情報記憶素子４３を含む。スイッチ４１は、スイッチブロック１４間を接続する縦方向の信号線と、論理ブロック１２の出力信号が伝搬する横方向の信号線との間の接続を制御する回路である。１つのスイッチ４１は、一本の縦方向の信号線と一本の横方向の信号線との交差点に設けられ、ＣＢ論理構成情報記憶素子４３に格納される構成情報データに応じて両信号線間を接続又は分離する。この横方向の信号線は、本実施例の場合、論理ブロック１２の出力データ信号Ｄａｔａ＿ｏｕｔ０の信号線、その有効指示信号Ｖａｌｉｄ＿Ｄｏ０の信号線、出力データ信号Ｄａｔａ＿ｏｕｔ１の信号線、その有効指示信号Ｖａｌｉｄ＿Ｄｏ１の信号線、及び出力データ信号Ｄａｔａ＿ｏｕｔ２の信号線である。
【００３９】
セレクタ（マルチプレクサ）４２は、縦方向の信号線に伝搬される信号から、ＣＢ論理構成情報記憶素子４３に格納される構成情報データに応じて所望の信号を選択し、論理ブロック１２に入力データ信号及び有効指示信号として供給する。この際、１つのセレクタ４２により同時に選択されて論理ブロック１２に入力される一対の入力データ信号及び有効指示信号は、他の論理ブロック１２により一対の出力データ信号及び有効指示信号として生成されたものである。即ち、例えば図面右側の論理ブロック１２に入力される一対の入力データ信号Ｄａｔａ２＿ｉｎ０及び有効指示信号Ｖａｌｉｄ２＿Ｄｉｎ０は、例えば図面左側の論理ブロック１２から出力される一対の出力データ信号Ｄａｔａ＿ｏｕｔ１及び有効指示信号Ｖａｌｉｄ＿Ｄｏ１である。なお、論理ブロック１２に入力される入力データ信号Ｄａｔａ０＿ｉｎ１乃至Ｄａｔａ３＿ｉｎ１については、生成時には対になる有効指示信号があったとしても、入力データ信号単独で論理ブロック１２に入力されてよい。
【００４０】
図４において、ＣＢ論理構成情報記憶素子４３に格納される構成情報データは、図１の構成情報記憶素子１１からロードされる。ＣＢ論理構成情報記憶素子４３への構成情報データのロード動作は、論理回路装置１０のチップの初期化時に一度だけ実行する構成であってよい。なお論理回路装置１０が動作中に、クロックのあるサイクルと別のサイクルとでその論理構成を変えたい場合には、随時必要に応じて構成情報データをＣＢ論理構成情報記憶素子４３にロードしてもよい。また論理構成が固定である場合には、ＣＢ論理構成情報記憶素子４３をＲＯＭ或いは０／１クリップ等により構成してよい。この場合は、上記の構成情報データのロード動作を省略することができる。ＣＢ論理構成情報記憶素子４３に格納される構成情報データは、少なくとも１クロックサイクルの間は固定である。
【００４１】
図５は、スイッチブロック１４の構成の一例を示す図である。スイッチブロック１４は、複数のスイッチ５１及びＳＢ論理構成情報記憶素子５２を含む。スイッチ５１は、同一列の縦方向に並ぶコネクションブロック１３間を接続する縦方向の信号線と、同一行の横方向に並ぶコネクションブロック１３間を接続する横方向の信号線との間の接続を制御する回路である。１つのスイッチ５１は、一本の縦方向の信号線と一本の横方向の信号線との交差点に設けられ、ＳＢ論理構成情報記憶素子５２に格納される構成情報データに応じて両信号線間を接続又は分離する。この際、コネクションブロック１３について説明したのと同様に、ある論理ブロック１２への一対の入力データ信号及び有効指示信号が、他の論理ブロック１２により一対の出力データ信号及び有効指示信号として生成されたものであることが確保されるように、接続制御される。
【００４２】
図５において、ＳＢ論理構成情報記憶素子５２に格納される構成情報データは、図１の構成情報記憶素子１１からロードされる。ＳＢ論理構成情報記憶素子５２への構成情報データのロード動作は、論理回路装置１０のチップの初期化時に一度だけ実行する構成であってよい。なお論理回路装置１０が動作中に、クロックのあるサイクルと別のサイクルとでその論理構成を変えたい場合には、随時必要に応じて構成情報データをＳＢ論理構成情報記憶素子５２にロードしてもよい。また論理構成が固定である場合には、ＳＢ論理構成情報記憶素子５２をＲＯＭ或いは０／１クリップ等により構成してよい。この場合は、上記の構成情報データのロード動作を省略することができる。ＳＢ論理構成情報記憶素子５２に格納される構成情報データは、少なくとも１クロックサイクルの間は固定である。
【００４３】
以上説明した実施例の論理回路装置１０によれば、1クロックサイクル内において非同期に各論理ブロック１２の論理構成を変更することが可能になる。この際、有効指示信号を用いることにより、ある論理演算が完了したか否か、即ちある論理演算の役目が終了したか否かを判断することを可能としている。ある論理演算が完了してその役目を終了すると、論理演算完了後直ちに、次の構成情報データをロードして新たな論理演算を可能な状態にする。
【００４４】
これにより、以下のような効果が得られる。まず、従来に比べ少数の論理素子で必要な論理を組むことができる。また、１サイクル内に複数回の論理演算を行うことで、演算に必要なダイナミック電流に対する無駄なリーク電流の割合が小さくなる。また平均インターコネクト長が短くなることにより、ダイナミック電力が低減される。現在のＦＰＧＡではＬＵＴ等の論理エレメントが約２０％、論理エレメント間を接続するインターコネクト部分が約８０％の面積を占めている。本発明の実施例の構成により、インターコネクト部分の面積を削減して飛躍的に面積効率が高めることができる。また平均インターコネクト長が短くなることにより、伝播遅延を削減して、より高速な動作が可能なリコンフィギュラブル・デバイスを実現できる。
【００４５】
また従来の構成において、演算エレメントの構成データが演算エレメント内部の構成データ記憶部の容量を越えてしまう場合や、インターコネクト接続情報がインターコネクト制御エレメントの記憶部の容量を越えてしまう場合がある。このような場合でも、これらの構成データの論理構成を１クロックサイクル内で複数回に分けて実現することにより、従来の構成におけるシリコンの物理面積に由来する論理量制限を取り除くことができる。また組み合わせ論理が多すぎて所定の回路領域に必要な機能が入らないというような場合であっても、１クロックサイクル内で複数回に分けて必要な論理を実現することにより、所望の組み合わせ論理を実現可能になる。
【００４６】
図６は、論理ブロックの回路構成の別の一例を示す図である。図６に示す論理ブロック１２Ａは、基本論理演算素子２１Ａ、ＬＢ論理構成情報記憶素子２２Ａ、セットリセットフリップフロップ（ＳＲ−ＦＦ）２３、ラッチ２４、セットリセットフリップフロップ（ＳＲ−ＦＦ）２３Ａ、ラッチ２４Ａ、ディレイフリップフロップ（Ｄ−ＦＦ）２５、及びセレクタ２６Ａ乃至３０Ａを含む。図２と同一の構成要素は同一の番号で参照し、その説明は省略する。
【００４７】
1クロックサイクル内において２つの異なる論理構成を実現できる図２に示す論理ブロック１２と比較して、図６に示す論理ブロック１２Ａでは、1クロックサイクル内において３つの異なる論理構成を実現できる。これは、有効指示信号付きのデータ入力を２セット設け、更に有効指示信号付きのデータ出力を２セット保持可能なように構成することで実現できる。入力データ信号Ｄａｔａ０＿ｉｎ０乃至Ｄａｔａ３＿ｉｎ０と有効指示信号Ｖａｌｉｄ０＿Ｄｉｎ０乃至Ｖａｌｉｄ３＿Ｄｉｎ０とが、第１の論理構成データＣＦＧ１に応じた第１の論理演算に対する外部からの入力データである。この第１の論理演算の出力データ信号がＤａｔａ＿ｏｕｔ１であり、対応する有効指示信号がＶａｌｉｄ＿Ｄｏ１である。また入力データ信号Ｄａｔａ０＿ｉｎ１乃至Ｄａｔａ３＿ｉｎ１と有効指示信号Ｖａｌｉｄ０＿Ｄｉｎ１乃至Ｖａｌｉｄ３＿Ｄｉｎ１とが、第２の論理構成データＣＦＧ２に応じた第２の論理演算に対する外部からの入力データである。この第２の論理演算の出力データ信号がＤａｔａ＿ｏｕｔ２であり、対応する有効指示信号がＶａｌｉｄ＿Ｄｏ２である。また入力データ信号Ｄａｔａ０＿ｉｎ２乃至Ｄａｔａ３＿ｉｎ２が、第３の論理構成データＣＦＧ３に応じた第３の論理演算に対する外部からの入力データである。この第３の論理演算の出力データ信号がＤａｔａ＿ｏｕｔ３及びＤａｔａ＿ｏｕｔ０であり、Ｄａｔａ＿ｏｕｔ０に対応する有効指示信号がＶａｌｉｄ＿Ｄｏ０である。論理ブロック１２Ａの動作は、論理ブロック１２の動作の場合と比較して、１クロックサイクル内での論理構成の切り替えの回数が異なるだけであり、その他については同様である。
【００４８】
図６に示す論理ブロック１２Ａの構成では、有効指示信号に基づいた非同期な構成情報の切り替えを２回実行している。同様にして、論理ブロックにおいて３回或いはそれ以上の回数の非同期な構成情報の切り替えを実行する構成を実現することができる。
【００４９】
図７は、本発明の第２の実施例による論理回路装置における論理ブロックの回路構成の一例を示す図である。第２の実施例では、図１に示す論理回路装置１０において、論理ブロック１２が論理ブロック１２Ｂで置き換えられ、コネクションブロック１３がコネクションブロック１３Ｂで置き換えられる。スイッチブロック１４は、第１の実施例と第２の実施例とで違いはなく、図５に示した構成を有する。
【００５０】
図７に示す論理ブロック１２Ｂは、基本論理演算素子２１Ｂ、ＬＢ論理構成情報記憶素子２２Ｂ、セットリセットフリップフロップ（ＳＲ−ＦＦ）２３、ラッチ２４、及びディレイフリップフロップ（Ｄ−ＦＦ）２５を含む。図７において、図２と同一の構成要素は同一の番号で参照し、その説明は省略する。
【００５１】
論理ブロック１２Ｂの基本論理演算素子２１Ｂは、第１のデータ信号Ｄａｔａ＿ｉｎ０乃至Ｄａｔａ＿ｉｎ４と第１のデータ信号の有効時にアサート状態となる第１の有効指示信号Ｖａｌｉｄ＿Ｄｉｎ０乃至Ｖａｌｉｄ＿Ｄｉｎ４とを、入力として受け取る。基本論理演算素子２１Ｂは、第１のデータ信号を入力とする第１の論理演算により生成された第２のデータ信号Ｄａｔａ＿ｏｕｔ１と該第２のデータ信号の有効時にアサート状態となる第２の有効指示信号Ｖａｌｉｄ＿Ｄｏ１とを出力として生成し、第１の有効指示信号のアサート状態に応答して第２のデータ信号をアサート状態に設定する。
【００５２】
図７に示す構成では、基本論理演算素子２１Ｂの入力に出力データ信号をフィードバックする経路は、論理ブロック１２Ｂに設けられていない。しかしながら、ある論理ブロック１２Ｂが出力する出力データ信号は、コネクションブロック及びスイッチブロックを介して、その論理ブロック１２Ｂの入力に戻すことができる。即ち、コネクションブロック及びスイッチブロックからなるネットワーク部分を用いて、フィードバック経路を設けることができる。
【００５３】
また図７に示す構成では、基本論理演算素子２１Ｂの入力側のセレクタは、論理ブロック１２Ｂに設けられていない。このセレクタによる選択機能は、論理ブロック１２Ｂの入力側に結合されるコネクションブロック内部のセレクタにより提供することができる。
【００５４】
上記のような構成により、論理ブロック１２Ｂでは、フィードバック経路及びセレクタを削除して、回路規模を削減することができる。図７の第２実施例による論理ブロック１２Ｂにおいても、図２の第１実施例の場合と同様に、フィードバック経路及びセレクタを設ける構成であっても構わない。
【００５５】
基本論理演算素子２１Ｂの論理演算は、Ｄａｔａ＿ｉｎ０乃至Ｄａｔａ＿ｉｎ４の全てを入力データして使用する必要はない。例えば、論理演算は、Ｄａｔａ＿ｉｎ０乃至Ｄａｔａ＿ｉｎ２の３入力のみを入力データとする演算であってよい。この場合、有効指示信号Ｖａｌｉｄ＿Ｄｉｎ０乃至Ｖａｌｉｄ＿Ｄｉｎ２が全てアサート状態になると、入力が確定したと判断し、当該論理演算を実行するとともに出力の有効指示信号Ｖａｌｉｄ＿Ｄｏ１をアサートする。
【００５６】
実際には、論理演算を現実に実行するタイミングを制御する必要はない。例えば基本論理演算素子２１ＢがＡＮＤやＯＲ等の基本論理ゲートの組み合わせで構成される組み合わせ論理回路の場合、その時点での入力データ信号に応じた出力データ信号が常時生成され出力されていてよい。但し、必要な入力側の有効指示信号が全てアサート状態になったときに、出力の有効指示信号をアサートするように構成されればよい。基本論理演算素子２１Ｂは、例えばルックアップテーブルにより構成されてよい。この場合、ＬＢ論理構成情報記憶素子２２Ｂに格納される構成情報のデータに基づいて、ルックアップテーブルの出力値を設定可能な構成としてよい。
【００５７】
ＬＢ論理構成情報記憶素子２２Ｂの動作は、図２のＬＢ論理構成情報記憶素子２２と同様である。但し、フィードバック経路が存在しないので、セレクタへの選択信号を生成する機能は必要がない。
【００５８】
論理ブロック１２Ｂにおいては、フリップフロップ２３が出力する有効指示信号Ｖａｌｉｄ＿Ｄｏ１が、アクノレッジ信号Ａｃｋとして、論理ブロック１２Ｂの入力側に接続されるコネクションブロック１３Ｂに供給されている。第１の構成情報データＣｆＧ１による論理演算が完了して、その出力データ信号Ｄａｔａ＿ｏｕｔ１が確定すると、論理演算完了を示すアクノレッジ信号Ａｃｋを入力側に返している。即ち、論理演算完了に応答して、アクノレッジ信号Ａｃｋをアサート状態にしている。
【００５９】
図８は、本発明の第２の実施例による論理回路装置におけるコネクションブロックの構成の一例を示す図である。コネクションブロック１３Ｂは、複数のスイッチ６１、複数のセレクタ６２、及びＣＢ論理構成情報記憶素子６３を含む。スイッチ６１は、スイッチブロック１４間を接続する縦方向の信号線と、論理ブロック１２Ｂの出力信号が伝搬する横方向の信号線との間の接続を制御する回路である。１つのスイッチ６１は、一本の縦方向の信号線と一本の横方向の信号線との交差点に設けられ、ＣＢ論理構成情報記憶素子６３に格納される構成情報データに応じて両信号線間を接続又は分離する。この横方向の信号線は、本実施例の場合、論理ブロック１２Ｂの出力データ信号Ｄａｔａ＿ｏｕｔ０の信号線、その有効指示信号Ｖａｌｉｄ＿Ｄｏ０の信号線、出力データ信号Ｄａｔａ＿ｏｕｔ１の信号線、その有効指示信号Ｖａｌｉｄ＿Ｄｏ１の信号線、及び出力データ信号Ｄａｔａ＿ｏｕｔ２の信号線である。
【００６０】
セレクタ（マルチプレクサ）６２は、縦方向の信号線に伝搬される信号から、ＣＢ論理構成情報記憶素子６３に格納される構成情報データに応じて所望の信号を選択し、論理ブロック１２Ｂに入力データ信号及び有効指示信号として供給する。この際、１つのセレクタ６２により同時に選択されて論理ブロック１２Ｂに入力される一対の入力データ信号及び有効指示信号は、他の論理ブロック１２Ｂにより一対の出力データ信号及び有効指示信号として生成されたものである。即ち、例えば図面右側の論理ブロック１２Ｂに入力される一対の入力データ信号Ｄａｔａ＿ｉｎ０及び有効指示信号Ｖａｌｉｄ＿Ｄｉｎ０は、例えば図面左側の論理ブロック１２Ｂから出力される一対の出力データ信号Ｄａｔａ＿ｏｕｔ１及び有効指示信号Ｖａｌｉｄ＿Ｄｏ１である。
【００６１】
図８において、ＣＢ論理構成情報記憶素子６３に格納される構成情報データは、図１の構成情報記憶素子１１からロードされる。この構成情報データは、第１の構成情報データＮＣＦＧ１及び第２の構成情報データＮＣＦＧ２を含む。ＣＢ論理構成情報記憶素子６３への構成情報データのロード動作は、論理回路装置１０のチップの初期化時に一度だけ実行する構成であってよい。なお論理回路装置１０が動作中に、クロックのあるサイクルと別のサイクルとでその論理構成を変えたい場合には、随時必要に応じて構成情報データをＣＢ論理構成情報記憶素子６３にロードしてもよい。また論理構成が固定である場合には、ＣＢ論理構成情報記憶素子６３をＲＯＭ或いは０／１クリップ等により構成してよい。この場合は、上記の構成情報データのロード動作を省略することができる。
【００６２】
ＣＢ論理構成情報記憶素子６３には、論理ブロック１２Ｂが生成するアクノレッジ信号Ａｃｋが供給される。ＣＢ論理構成情報記憶素子６３は、あるクロックサイクルの前半では、第１の構成情報データＮＣＦＧ１に基づいた制御信号をスイッチ６１及びセレクタ６２に供給する。これにより、第１の構成情報データＮＣＦＧ１に基づいた結線（接続）が実現される。アクノレッジ信号Ａｃｋのアサート状態に応答して、ＣＢ論理構成情報記憶素子６３は、第１の構成情報データＮＣＦＧ１に基づく制御から第２の構成情報データＮＣＦＧ２に基づく制御に変更する。即ち、アクノレッジ信号Ａｃｋがアサートされると、スイッチ６１及びセレクタ６２に供給する制御信号を、第１の構成情報データＮＣＦＧ１に応じた制御信号から第２の構成情報データＮＣＦＧ２に応じた制御信号に変更する。これにより、クロックサイクルの後半では、第２の構成情報データＮＣＦＧ１に基づいた制御信号をスイッチ６１及びセレクタ６２に供給する。
【００６３】
図９は、図７の論理ブロック１２Ｂの動作を示す信号波形である。以下に、図７と図９とを参照して、論理ブロック１２Ｂの一連の動作について説明する。
【００６４】
図７において、まず構成情報記憶素子１１（図１参照）からＬＢ論理構成情報記憶素子２２Ｂに構成情報データＣＦＧ１と構成情報データＣＦＧ２とが格納される（Ｓ１）。次にクロック信号ＣｌｏｃｋのパルスがＬＢ論理構成情報記憶素子２２Ｂに供給され（Ｓ２）、このクロックパルスに応答して、構成情報データＣＦＧ１が基本論理演算素子２１Ｂにロードされる（Ｓ３）。これにより、基本論理演算素子２１Ｂは、構成情報データＣＦＧ１に応じた論理演算を実行する論理構成に設定される。更にこのとき、構成情報データに基づいてフリップフロップ２５の出力であるデータ信号Ｄａｔａ＿ｏｕｔ０が有効であるか否かが判断され、この判断に応じて有効指示信号Ｖａｌｉｄ＿Ｄｏ０を生成する。ＬＢ論理構成情報記憶素子２２Ｂには制御回路が含まれており、この制御回路が有効指示信号Ｖａｌｉｄ＿Ｄｏ０を生成する構成としてよい。
【００６５】
基本論理演算素子２１Ｂには、有効指示信号Ｖａｌｉｄ＿Ｄｉｎ０乃至Ｖａｌｉｄ＿Ｄｉｎ４により有効／無効が示されるデータ信号Ｄａｔａ＿ｉｎ０乃至Ｄａｔａ＿ｉｎ４が供給される（Ｓ４）。前述のように、基本論理演算素子２１Ｂの実行する論理演算は、全体の入力データ信号のうち一部の入力データ信号のみを入力として用いる論理演算であってよい。以下の説明では、説明を単純にするために、全ての入力データ信号が入力として用いられる場合を想定する。
【００６６】
全ての入力側の有効指示信号がアサート状態（有効を示す状態）になると、基本論理演算素子２１Ｂは、出力データ信号Ｄａｔａ＿ｏｕｔ１を生成するとともにその出力データ信号が有効であることを示す有効指示信号Ｖａｌｉｄ＿Ｄｏ１をアサート状態（有効を示す状態）に設定する（Ｓ５）。
【００６７】
図９にこの様子が示されている。図９の左端に示されるように、クロック信号Ｃｌｏｃｋの第１のサイクルにおいて、第１のサイクルの開始時には基本論理演算素子２１Ｂの論理構成が構成情報データＣＦＧ１により設定されている。またこのときＣＢ論理構成情報記憶素子６３は構成情報データＮＣＦＧ１を有効な構成として制御信号を生成している。タイミングＴ１において全ての入力側の有効指示信号Ｖａｌｉｄ＿Ｄｉｎ０乃至Ｖａｌｉｄ＿Ｄｉｎ４がアサート状態（この例ではＨＩＧＨ状態）になると、出力データ信号が有効であることを示す有効指示信号Ｖａｌｉｄ＿Ｄｏ１がアサート状態（この例ではＨＩＧＨ状態）になるとともに、出力データ信号Ｄａｔａ＿ｏｕｔ１が生成される（確定する）。
【００６８】
図７に戻り、アサート状態の有効指示信号Ｖａｌｉｄ＿Ｄｏ１は、フリップフロップ２３のセット信号として機能する。これによりフリップフロップ２３がセット状態になり、その出力がＶａｌｉｄ＿Ｄｏ１のアサート状態の信号レベルとなる（Ｓ６）。即ち、フリップフロップ２３は、アサート状態の有効指示信号Ｖａｌｉｄ＿Ｄｏ１を、その出力として保持するように機能する。
【００６９】
フリップフロップ２３が出力するアサート状態の有効指示信号Ｖａｌｉｄ＿Ｄｏ１は、ラッチ２４のラッチ動作のトリガ信号として用いられる。ラッチ２４は、Ｌｏｗ−Ｔｈｒｏｕｇｈ動作をするラッチであり、有効指示信号Ｖａｌｉｄ＿Ｄｏ１がＨＩＧＨになると、出力データ信号Ｄａｔａ＿ｏｕｔ１をラッチして保持する（Ｓ７）。
【００７０】
フリップフロップ２３が出力するアサート状態の有効指示信号Ｖａｌｉｄ＿Ｄｏ１は、更に、第２の構成情報データＣＦＧ２をＬＢ論理構成情報記憶素子２２Ｂから基本論理演算素子２１Ｂにロードする動作のトリガ信号として機能する。これにより第２の構成情報データＣＦＧ２が基本論理演算素子２１Ｂにロードされる（Ｓ７）。図９に示す動作例では、タイミングＴ１において有効指示信号Ｖａｌｉｄ＿Ｄｏ１がアサート状態となった後に、構成情報データがＣＦＧ１からＣＦＧ２へと切り替わっている。またこのとき、アクノレッジ信号Ａｃｋがアサート状態（この例ではＨＩＧＨ状態）になる。ＣＢ論理構成情報記憶素子６３は、アクノレッジ信号Ａｃｋのアサート状態に応答して、制御信号の基になるデータを構成情報データＮＣＦＧ１から構成情報データＮＣＦＧ２に切り替える。これによりコネクションブロック１３Ｂでの結線が切り替わる。
【００７１】
図７に戻り、ラッチ２４が出力する出力データ信号Ｄａｔａ＿ｏｕｔ１は、コネクションブロック１３Ｂに出力される。ラッチ２４が出力する出力データ信号Ｄａｔａ＿ｏｕｔ１は、有効指示信号Ｖａｌｉｄ＿Ｄｏ１がアサート状態であるときのみ有効である。
【００７２】
その後、基本論理演算素子２１Ｂは、入力データ信号Ｄａｔａ＿ｉｎ０乃至Ｄａｔａ＿ｉｎ４を入力として（Ｓ８）、構成情報データＣＦＧ２に応じた論理演算を実行し、出力データ信号Ｄａｔａ＿ｏｕｔ２を生成する（Ｓ９）。この出力データ信号Ｄａｔａ＿ｏｕｔ２は、クロック信号Ｃｌｏｃｋに同期すること無くそのままコネクションブロック１３Ｂに出力される。また更に、この出力データ信号Ｄａｔａ＿ｏｕｔ２は、クロック信号Ｃｌｏｃｋのパルスが供給されると（Ｓ１０）、このパルスに同期してフリップフロップ２５に格納される。フリップフロップ２５は、格納データを出力データ信号Ｄａｔａ＿ｏｕｔ０として出力する（Ｓ１１）。
【００７３】
図９に示されるように、クロック信号Ｃｌｏｃｋの第１のサイクルの後半は、基本論理演算素子２１Ｂの論理構成が構成情報データＣＦＧ２により設定されている。タイミングＴ２において全ての入力データ信号が確定すると、正しい出力データ信号Ｄａｔａ＿ｏｕｔ２が生成される（確定する）。またクロック信号Ｃｌｏｃｋの２番目のパルスが到来すると、出力データ信号Ｄａｔａ＿ｏｕｔ２が出力データ信号Ｄａｔａ＿ｏｕｔ０としてフリップフロップ２５にラッチされるとともに、構成情報データがＣＦＧ２からＣＦＧ１に書き替えられる。
【００７４】
図１０は、論理回路装置１０を用いたシステムの構成の一例を示す図である。図１０のシステムは、リコンフィギュラブル・デバイスである論理回路装置１０、構成情報記憶素子１１、クロック源７１、ＬＳＩ７２、ＬＳＩ７３、及びＲＡＭ７４を含む。クロック源７１の生成するクロック信号が、リコンフィギュラブル・デバイス１０、ＬＳＩ７２、及びＬＳＩ７３に共通に供給される。またＲＡＭ７４がリコンフィギュラブル・デバイス１０に接続されている。共通のクロック信号を使用することにより、リコンフィギュラブル・デバイス１０とＬＳＩ７２及び７３との間の通信を効率的に行なうことができる。構成情報記憶素子１１は、ＲＯＭ（Read Only Memory）やフラッシュメモリ等により構成される。
【００７５】
図１１は、論理回路装置１０を用いたシステムの構成の別の一例を示す図である。図１１のシステムは、リコンフィギュラブル・デバイスである論理回路装置１０、構成情報記憶素子１１、クロック源７１、ＬＳＩ７５、及びＲＡＭ７６を含む。クロック源７１の生成するクロック信号がＬＳＩ７５に供給される。ＬＳＩ７５は、このクロック信号に基づいてＰＬＬ（Phase Locked Loop）回路や分周器により高周波クロック信号又は低周波クロック信号を生成する。ＬＳＩ７５は、この高周波クロック信号又は低周波クロック信号
をリコンフィギュラブル・デバイス１０に供給する。この構成例では、ＲＡＭ７６はＬＳＩ７５に接続されている。
【００７６】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【図面の簡単な説明】
【００７７】
【図１】本発明による論理回路装置の実施例の構成の一例を示す図である。
【図２】本発明の第１の実施例による論理回路装置における論理ブロックの回路構成の一例を示す図である。
【図３】図２の論理ブロックの動作を示す信号波形である。
【図４】コネクションブロックの構成の一例を示す図である。
【図５】スイッチブロックの構成の一例を示す図である。
【図６】論理ブロックの回路構成の別の一例を示す図である。
【図７】本発明の第２の実施例による論理回路装置における論理ブロックの回路構成の一例を示す図である。
【図８】本発明の第２の実施例による論理回路装置におけるコネクションブロックの構成の一例を示す図である。
【図９】図７の論理ブロックの動作を示す信号波形である。
【図１０】論理回路装置を用いたシステムの構成の一例を示す図である。
【図１１】論理回路装置を用いたシステムの構成の別の一例を示す図である。
【符号の説明】
【００７８】
１０  論理回路装置
１２  論理ブロック（ＬＢ）
１３  コネクションブロック（ＣＢ）
１４  スイッチブロック（ＳＢ）
２１  基本論理演算素子
２２  ＬＢ論理構成情報記憶素子
２３  セットリセットフリップフロップ（ＳＲ−ＦＦ）
２４  ラッチ
２５  ディレイフリップフロップ（Ｄ−ＦＦ）
２６〜３０  セレクタ
【図１】
0005251171.tif 000002
【図２】
0005251171.tif 000003
【図３】
0005251171.tif 000004
【図４】
0005251171.tif 000005
【図５】
0005251171.tif 000006
【図６】
0005251171.tif 000007
【図７】
0005251171.tif 000008
【図８】
0005251171.tif 000009
【図９】
0005251171.tif 000010
【図１０】
0005251171.tif 000011
【図１１】
0005251171.tif 000012