(57)【特許請求の範囲】
【請求項１】
設定された信号生成論理に従って入力信号に応じた出力信号を生成し、且つ前記信号生成論理の設定を変更可能な複数の可変論理部と、
予め設定された検査入力信号に対する各可変論理部からの出力信号である検査出力信号のうち、どの可変論理部からのものが、該検査用入力信号に対する所望の出力信号である参照信号に最も近似しているかを評価する評価部と、
該評価部での評価結果に従って、最も参照信号に近似した検査出力信号を生成する可変論理部を選択し、該可変論理部からの出力信号を当該論理回路の出力信号とする出力選択部と、
を備えることを特徴とする論理回路。
【請求項２】
前記可変論理部は、
多段接続されて組合せ回路を構成する複数の論理素子と、
該論理素子の入力端毎に設けられ、前記入力信号及び自身より前段の論理素子からの素子出力信号のうちいずれか一つを任意に選択して前記論理素子への素子入力信号とする選択回路と、
を備えることを特徴とする請求項１に記載の論理回路。
【請求項３】
前記論理素子は、否定論理積回路であることを特徴とする請求項２に記載の論理回路。
【請求項４】
前記選択回路は、
乱数パルスを発生する乱数発生回路と、
該乱数発生回路の出力をクロックとして、該クロックに従って出力をシフトさせるシフトレジスタと、
当該選択回路が扱う前記入力信号及び前記素子出力信号の各信号線にそれぞれ設けられ、前記シフトレジスの各出力に従って前記信号線を断続するスイッチ素子と、
を備え、前記シフトレジスタの複数出力のうちいずれか一つが、前記スイッチ素子をオン状態とするアクティブレベルにされていることを特徴とする請求項２または請求項３に記載の論理回路。
【請求項５】
前記評価部は、
各可変論理部からの出力信号が前記参照信号とそれぞれ一致するか否かを比較する比較回路と、
該比較回路での比較結果に従って、両信号の一致回数又は不一致回数に基づく評価値を計数する計数回路と、
を備え、該計数回路にて計数された評価値により、前記評価を行うことを特徴とする請求項１ないし請求項４のいずれかに記載の論理回路。
【請求項６】
前記可変論理部を２個備え、
前記計数回路は、一方の可変論理部からの出力信号と前記参照信号とが一致した場合にインクリメントされ、他方の可変論理部からの出力信号と前記参照信号とが一致した場合にデクリメントされるアップダウンカウンタからなることを特徴とする請求項５に記載の論理回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、入力信号に従って出力信号を生成する際に用いられる信号生成論理を適宜変更可能な論理回路に関する。
【０００２】
【従来の技術】
従来より、エンジンの種類に応じて少しずつ異なる制御を行うことが必要なエンジン制御装置等、各種条件に応じて異なる様々な処理を電子装置に実行させる場合、例えば、その条件を表す選択信号を外部から入力し、その選択信号の値に応じて実行するプログラムを切り替えることにより、単一の装置で他種類の条件に対応させることが行われている。
【０００３】
しかし、このようにソフトウェアで処理を切り替える場合、予め想定された条件には適応できるが、未知の条件や予期しない条件に対しては、それに対応するプログラムが予め用意されていないため、これらの条件に適応して、装置を好適に動作させることができなかった。
【０００４】
また、起こりうる条件が予めわかっていたとしても、処理の高速性が要求されるため、ソフトウェアでは対応できないような場合には、各条件毎に適応するハードウェアを作製しなければならず、装置が非常に高価なものとなってしまうことがあった。
【０００５】
このような各種条件に容易に対応できる装置を構成するために、論理回路の回路構成等、ハードウェア自体を適宜再構成可能なものとする試みがなされている。
その例として、International Conference on Evolvable System: from Biology to Hardware(ICES96),1996 Oct.7-8 や、15th International Joint Conference on Artificial Intelligence(IJCAI),1997 Aug.23-29 WS11 Evolvable System pp.53-59.には、進化型ハードウェアと呼ばれる再構成可能回路が開示されている。
【０００６】
これは、図９に示すように、浮動小数点で表された数値の処理が可能なＰＦＵ(Programmable Floating processing Units)を並列（図では５個）かつ階層的（図では２０層）に設け、各階層間をクロスバースイッチによって相互に接続することにより構成されている。
【０００７】
なお、各ＰＦＵは、浮動小数点での加算，減算，乗算，除算，ＳＩＮ，ＣＯＳといった数値演算、及びＩＦ−ＴＨＥＮの論理演算のうち、いずれか一つを選択して実行できるように構成されており、つまり、この再構成可能回路では、各ＰＦＵが実行する機能、及び各ＰＦＵ間の接続を適宜設定することにより様々な機能が実現される。
【０００８】
ところで、各ＰＦＵでの機能、及び各ＰＦＵ間の接続の更新は、遺伝的アルゴリズム（ＧＡ）に基づいて行われる。この遺伝的アルゴリズムとは、このような再構成可能回路を複数用意して、各再構成可能回路毎に、ＰＦＵの機能およびＰＦＵ間の接続を任意に設定した後、各再構成可能回路の特性を調べて最も所望の特性に近いもののみを保留し、他の再構成可能回路を再設定して、先に残した再構成可能回路も含めてその特性を再評価する操作を繰り返すことにより、適宜所望の特性に近づけていくものである。この遺伝的アルゴリズムの詳細は、例えば、「遺伝的アルゴリズム」（産業図書，１９９３年）等に述べられている。
【０００９】
【発明が解決しようとする課題】
しかし、上記進化型ハードウェアのことを記述している文献には、遺伝的アルゴリズムを具体的にどの様に実現するのかが明らかにされていない。実際に、上記進化型ハードウェアを実現しようとした場合、各ＰＦＵは浮動小数点の数値を取り扱って複雑な演算を実現するため、回路構成が複雑、且つ大規模なものとなり、設計が難しいだけでなく、小規模な装置や１チップの半導体集積回路の一部の回路を再構成可能なものに構成するといった用途に用いるには不適当であり、使い勝手が悪いという問題があった。
【００１０】
なお、小規模で広い用途に使用可能なものとしては、機能単位の組み合わせを再構成可能とするよりも、論理回路、すなわちＮＡＮＤ等のゲート単位の組み合わせを再構成可能とする方が有利であると考えられる。
そこで本発明は、上記問題点を解決するために、ハードウェア上に容易に構成でき、使い勝手のよい再構成可能な論理回路を提供することを目的とする。
【００１１】
【課題を解決するための手段】
上記目的を達成するためになされた発明である請求項１に記載の論理回路は、設定された信号生成論理に従って入力信号に応じた出力信号を生成する可変論理部を複数備えており、しかも、これら可変論理部では、信号生成論理の設定を変更可能に構成されている。
【００１２】
このため、各可変論理部間で互いに異なるように信号生成論理を設定すれば、同じ入力信号に対して各可変論理部毎に異なった出力信号が得られる。
そこで、評価部が、予め設定された検査入力信号に対する各可変論理部からの出力信号である検査出力信号のうち、どの可変論理部からのものが、検査用入力信号に対する所望の出力信号である参照信号に最も近似しているかを評価し、その評価結果に従って、出力選択部が、最も参照信号に近似した検査出力信号を生成する可変論理部を選択し、この可変論理部からの出力信号を当該論理回路の出力信号とする。
【００１３】
つまり、複数の可変論理部からの出力信号のうち、所望の特性（参照信号）に最も近似したものが、当該可変論理部の出力信号として選択されることになる。その後、出力選択部により選択されたもの以外の可変論理部について、その信号生成論理を変更し、評価部，出力選択部に同様の評価，選択を行わせることを繰り返し行えば、次第に所望の特性により近似した出力信号を得ることができる。
【００１４】
従って、本発明によれば、いわゆる遺伝アルゴリズムを実現する再構成可能な論理回路を、簡単な構成にて実現することができる。
そして、例えば、装置（回路）の一部の仕様が明確にされていないような場合、その仕様が不明な部分に本発明の論理回路を適用して装置の製造を行い、仕様が明らかにされた時点で論理回路の中身を再構成するようにすれば、ハードウェアの仕様が確定するまで装置の製造を開始することができなかった従来に比べて、各種装置の開発期間を大幅に短縮できる。
【００１５】
ところで、可変論理部は、例えば、請求項２に記載のように、多段接続されて組合せ回路を構成する複数の論理素子と、この論理素子の入力端毎に設けられ、当該論理回路への入力信号及び自身より前段の論理素子からの素子出力信号のうちいずれか一つを任意に選択して論理素子への素子入力信号とする選択回路とにより実現することができる。
【００１６】
即ち、各選択回路がどの信号を選択して論理素子に供給するかにより、可変論理部の信号生成論理を変化させることができるのである。
また、論理素子は、例えば、請求項３に記載のように、否定論理積（ＮＡＮＤ）回路のみにより構成してもよい。つまり、組合せ回路を構成する如何なる論理素子（即ち、ＡＮＤ，ＯＲ，ＮＯＴ，ＸＯＲ，ＮＯＲ，ＸＮＯＲ）も、ＮＡＮＤ回路の組み合わせで構成可能であるため、ＮＡＮＤ回路のみであっても、あらゆる組合せ回路を構成することができる。また、このような単一の素子にて構成すれば、可変論理部の回路設計，製造を容易化でき、特に当該論理回路を半導体集積回路として構成する場合に好適である。
【００１７】
次に、選択回路は、例えば、請求項４に記載のように、乱数パルスを発生する乱数発生回路と、この乱数発生回路の出力をクロックとして、該クロックに従って出力を順次シフトさせるシフトレジスタと、当該選択回路が扱う入力信号及び素子出力信号の各信号線にそれぞれ設けられ、シフトレジスタの各出力に従って信号線を断続するスイッチ素子とを備え、シフトレジスタは、その複数出力のうちいずれか一つを、スイッチ素子がオン状態となるアクティブレベルとすることにより、実現することができる。
【００１８】
つまり、可変論理部の信号生成論理を変更する必要のある場合、各選択回路の乱数発生回路を一定期間動作させ、それぞれ乱数パルスを発生させれば、その乱数パルスの数に応じて、アクティブレベルとなるシフトレジスタの出力、即ち選択回路によって選択され論理素子に供給される信号が変更される。しかも、選択回路毎に、乱数パルスの発生の仕方が異なるので、可変論理部全体をみると、各論理素子は様々なパタンで接続されることになり、従って、さまざまな信号生成論理が実現されることになる。
【００１９】
また次に、評価部は、例えば、請求項５に記載のように、各可変論理部からの出力信号が前記参照信号とそれぞれ一致するか否かを比較する比較回路と、この比較回路での比較結果に基づいて、両信号の一致回数又は不一致回数に基づく評価値を計数する計数回路とを備え、計数回路にて計数された評価値により評価を行うようにすることで実現できる。
【００２０】
そして特に、可変論理部が２個である場合には、請求項６に記載のように、計数回路を、一方の可変論理部からの出力信号と前記参照信号とが一致した場合にインクリメントされ、他方の可変論理部からの出力信号と前記参照信号とが一致した場合にデクリメントされるアップダウンカウンタにより実現できる。
【００２１】
このように、本発明によれば、極めて簡単な構成にて、再構成可能な論理回路を実現できる。
【００２２】
【発明の実施の形態】
以下に本発明の実施例を図面と共に説明する。
図１は、本実施例の論理回路２の全体構成を表すブロック図である。
図１に示すように、本実施例の論理回路２は、設定された信号生成論理に従って入力信号ａ，ｂから出力信号ｙ１を生成する可変論理部４と、これと同様に、設定された信号生成論理に従って入力信号ａ，ｂから出力信号ｙ２を生成する可変論理部６と、各可変論理部４，６にてそれぞれ生成された出力信号ｙ１，ｙ２を、外部から入力される参照信号Ｓと比較して評価を行い、いずれか一方を当該論理回路２の出力信号ｙとして選択する出力評価選択部８とを備えている。
【００２３】
なお、可変論理部４，６には、入力信号ａ，ｂ以外に、リセット信号ＲＳＴが外部から入力される他、後述する信号生成論理の再構成時に用いる信号として、外部から変更クロックＣＫＭ、出力評価選択部８から選択信号ｆ１（可変論理部４へ），ｆ２（可変論理部６へ）が入力される。
【００２４】
また、出力評価選択部８には、出力信号ｙ１，ｙ２、参照信号Ｓ以外に、リセット信号ＲＳＴ，モード信号ＧＥＮ，評価クロックＣＫＵが外部から入力される。
このうち、可変論理部４は、図２に示すように、入力信号ａ，ｂを入力とし、両者ともHighレベルの時にLow レベルとなる合成信号ｃを出力する否定論理積回路（以下、ＮＡＮＤ回路という）１０と、階層的（ここでは１〜ｎ層）に設けられ、それぞれが３個ずつ、２入力のＮＡＮＤ回路Ｅk1〜Ｅk3（ｋ＝１〜ｎ）を有するブロックＢ１〜Ｂｎとからなる。ここで、以下ではブロックＢｋを構成するＮＡＮＤ回路Ｅk1〜Ｅk3の出力を素子出力信号ｈk1〜ｈk3と呼ぶ。
【００２５】
そして、各ブロックＢｋの各ＮＡＮＤ回路Ｅk1〜Ｅk3の各入力端には、複数の信号から一つの信号を選択する選択回路ＳＬｋがそれぞれ設けられており、しかもこの選択回路ＳＬｋは、選択信号ｆ１がHighレベルの時に変更クロックＣＫＭを入力すると、該選択回路ＳＬｋによって選択される信号がランダムに変更されるように構成されている。
【００２６】
なお、１層目のブロックＢ１に設けられた選択回路ＳＬ１は、入力信号ａ，ｂ、合成信号ｃのうち、いずれか一つを選択してＮＡＮＤ回路Ｅ1jへの素子入力信号とするように構成されている。また、他のブロックＢｋ（ｋ＝２〜ｎ）に設けられた選択回路ＳＬｋは、入力信号ａ，ｂ、合成信号ｃに加え、下層ブロックＢ１〜Ｂk-1 から出力されるすべての素子出力信号ｈij（ｉ＝１〜ｋ−１，ｊ＝１〜３）の中から、いずれか一つを選択してＮＡＮＤ回路Ｅkjへの素子入力信号とするように構成されている。
【００２７】
また、ブロックＢｋ（ｋ＝１〜ｎ）の選択回路ＳＬｋが扱う信号数ｍは、下層ブロックが出力する素子出力信号数３×（ｋ−１）個に、入力信号ａ，ｂ及び合成信号ｃを加えた数であり、従って、ｍ＝３×ｋ（＝３×（ｋ−１）＋３）となる。
【００２８】
そして、最終層（ｎ層目）のブロックＢｎには、ＮＡＮＤ回路Ｅn1〜Ｅn3からの各素子出力信号ｈn1〜ｈn3の信号レベルが、Highレベル又はLow レベルのうち、いずれか多い方の信号レベルを選択して出力する多数決回路１２が設けられており、この多数決回路１２の出力が当該可変論理部４の出力信号ｙ１となる。
【００２９】
なお、このブロックＢｎに設けられた多数決回路１２は、図３に示すように、素子出力信号ｈn1，ｈn2がいずれもHighレベルの時にHighレベルを出力する論理積回路（ＡＮＤ回路）２０と、素子出力信号ｈn1，ｈn3がいずれもHighレベルの時にHighレベルを出力するＡＮＤ回路２１と、素子出力信号ｈn2，ｈn3がいずれもHighレベルの時にHighレベルを出力するＡＮＤ回路２２と、ＡＮＤ回路２０〜２２の出力のいずれか一つでもHighレベルの時にHighレベルを出力する論理和回路（ＯＲ回路）２４とにより構成されている。
【００３０】
即ち、素子出力信号ｈn1，ｈn2，ｈn3のうち、いずれか二つ以上の出力がHighレベルであれば、ＡＮＤ回路２０〜２２のいずれかがHighレベルとなるため、ＯＲ回路２４の出力ｙ１がHighレベルとなり、素子出力信号ｈn1，ｈn2，ｈn3のうち、いずれか二つ以上の出力がLow レベルであれば、ＡＮＤ回路２０〜２２のいずれもがLow レベルとなるため、ＯＲ回路２４の出力ｙ１がLow レベルとなるのである。
【００３１】
次に図４は、選択回路ＳＬｋの詳細構成を表す回路図である。
即ち、選択回路ＳＬｋは、変更クロックＣＫＭ，選択信号ｆ１のいずれもがHighレベルの時にHighレベルを出力するＡＮＤ回路１４と、ＡＮＤ回路１４の出力ＥＮを動作クロックとして、乱数パルスＣＫＳを発生する乱数発生回路１６と、乱数発生回路１６が出力する乱数パルスＣＫＳを動作クロックとして、出力をシフトさせるシフトレジスタ１８と、シフトレジスタ１８の各出力がゲートに接続され、入力信号ａ，ｂ、合成信号ｃ、素子出力信号ｈij（ｉ＝１〜ｋ−１，ｊ＝１〜３）の各信号線を断続する電界効果トランジスタＴ１〜Ｔｍ（ｍ＝３×ｋ）とを備えている。
【００３２】
このうち、乱数発生回路は１６は、図５に示すように、４個のフリップフロップ回路Ｆ11〜Ｆ14をリング状に連結し、１段目Ｆ11の出力と２段目Ｆ12の入力、及び２段目Ｆ12の出力と３段目Ｆ13の入力の間にそれぞれ加算器ＡＤ１，ＡＤ２を設け、最終段Ｆ14の出力を加算器ＡＤ１，ＡＤ２の入力とするように接続された周知のリニア・フィードバック・シフト・レジスタ（ＬＦＳＲ）からなる。
【００３３】
なお、この種の乱数発生回路１６は、初期状態で全てのフリップフロップ回路Ｆ11〜Ｆ14の出力がLow レベルになると、動作不能となるため、リセット信号ＲＳＴがLow レベルの時に、フリップフロップ回路Ｆ11の出力がセットされ、それ以外のフリップフロップ回路Ｆ12〜Ｆ14の出力がリセットされるように構成されている。なお、ここでは、フリップフロップ回路Ｆ11の出力のみをセットしているが、フリップフロップ回路Ｆ11〜Ｆ14のうち、任意の一つ以上がセットされればよく、選択回路ＳＬｋ毎に、セットされるフリップフロップ回路Ｆ11〜Ｆ14が異なるようにしてもよい。また、セットされるフリップフロップ回路Ｆ11以外は、リセット信号ＲＳＴを入力せず、電源投入時の状態によって任意にセット又はリセットされるようにしてもよい。
【００３４】
そして、ＡＮＤ回路１４の出力ＥＮ、つまり選択信号ｆ１がHighレベルの時に入力される変更クロックＣＫＭに従って動作するようにされており、変更クロックＣＫＭの２4−１ （＝１５）クロック分の入力で１周期となる疑似的な乱数パルスＣＫＳを発生する。
【００３５】
また、シフトレジスタ１８は、図６に示すように、選択回路ＳＬｋが扱う信号線の数ｍ（＝３×ｋ）と同数のフリップフロップ回路Ｆ21〜Ｆ2mを、リング状に接続し、各フリップフロップ回路Ｆ21〜Ｆ2mの各出力Ｑ１〜Ｑｍが当該シフトレジスタ１８の出力となるように構成された周知のものである。
【００３６】
但し、ここでは、出力Ｑ１〜Ｑｍのうちいずれか一つのみが、電界効果トランジスタＴ１〜Ｔｍをオンさせるアクティブレベル（Highレベル）となるようにするために、リセット信号ＲＳＴがLow レベルの時に、一つのフリップフロップ回路Ｆ21の出力のみがセットされ、それ以外のフリップフロップ回路Ｆ22〜Ｆ2mの出力がリセットされるようにされている。なお、ここでは、フリップフロップ回路Ｆ21をセットしているが、フリップフロップ回路Ｆ21〜Ｆ2mのうち、いずれか一つのみがセットされればよく、選択回路ＳＬｋ毎に、セットされるフリップフロップ回路Ｆ21〜Ｆ2mが異なるようにしてもよい。
【００３７】
このように構成された可変論理部４では、選択信号ｆ１がHighレベルの時に、変更クロックＣＫＭが入力されると、この変更クロックＣＫＭに応じて選択回路ＳＬｋが選択する信号線、即ちＮＡＮＤ回路Ｅkjに素子入力信号として供給される信号がランダムに変更される。その結果、ＮＡＮＤ回路Ｅkj間の接続関係が変更されるため、入力信号ａ，ｂから出力信号ｙ１を生成する信号生成論理が変更されることになる。
【００３８】
なお、もう一方の可変論理部６は、上述の可変論理部４と全く同様の構成をしているので、説明を省略する。但し、上述の可変論理部４に関する説明のうち、選択信号ｆ１をｆ２、出力信号ｙ１をｙ２と読み替えるものとする。
次に、出力評価選択部８は、図７に示すように、可変論理部４からの出力信号ｙ１と参照信号Ｓとの信号レベルが一致する場合にHighレベルとなる第１の一致信号ｅ１を出力する否定排他的論理和回路（ＸＮＯＲ回路）３０と、可変論理部６からの出力信号ｙ２と参照信号Ｓとの信号レベルが一致する場合にHighレベルとなる第２の一致信号ｅ２を出力するＸＮＯＲ回路３２と、入力信号ｙ１，ｙ２に同期した評価クロックＣＫＵに従って、第１の一致信号ｅ１がHighレベルの時にインクリメント、第２の一致信号ｅ２がHighレベルの時にデクリメントを行うアップダウンカウンタ３４と、モード信号ＧＥＮを反転させる反転回路（ＮＯＴ回路）３６と、ＮＯＴ回路３６の出力、及びリセット信号ＲＳＴのうち少なくともいずれか一方がLow レベルの時にLow レベルとなり、アップダウンカウンタ３４をリセットするカウンタリセット信号ＣＲを出力するＡＮＤ回路３８とを備えている。なお、ＸＮＯＲ回路３０，３２及びアップダウンカウンタ３４が、本発明の評価部に相当する。
【００３９】
また、出力評価選択部８は、更に、リセット信号ＲＳＴがLow レベルの時にリセットされ、モード信号ＧＥＮの立ち上がりエッジにて、アップダウンカウンタ３４の出力の最上位ビットＭＳＢ（即ちカウント値の正負を表す符号ビット）をラッチするラッチ回路４０と、ラッチ回路４０の出力がLow レベル（０）である場合に、可変論理部４からの出力信号ｙ１を選択し、逆にラッチ回路４０の出力がHighレベル（１）である場合に、可変論理部６からの出力信号ｙ２を選択して、当該論理回路２の出力信号ｙとして出力するスイッチ４２と、ラッチ回路４０の出力を反転させるＮＯＴ回路４４とを備えている。なお、ラッチ回路４０，スイッチ４２が、本発明の選択部に相当する。
【００４０】
そして、ラッチ回路４０の出力が選択信号ｆ１として、また、これを反転させたＮＯＴ回路４４の出力が選択信号ｆ２として、可変論理部４，６にそれぞれ入力される。
つまり、出力評価選択部８では、出力信号ｙ１と参照信号Ｓとが一致する回数が、出力信号ｙ２と参照信号Ｓとが一致する回数以上であれば、アップダウンカウンタ３４のカウント値は０以上となり、ラッチ回路４０にラッチされるカウント値の最上位ビットＭＳＢは０（Low レベル）となるため、スイッチ４２では、可変論理部４からの出力信号ｙ１が当該論理回路２の出力信号ｙとして選択される。また、選択信号ｆ１がLow レベル、選択信号ｆ２がHighレベルとなるため、Highレベルの選択信号ｆ２が入力される可変論理部６では、変更クロックＣＫＭが入力されると、信号生成論理の再構成が行われることになる。
【００４１】
逆に、出力信号ｙ１と参照信号Ｓとが一致する回数が、出力信号ｙ２と参照信号Ｓとが一致する回数より少なければ、アップダウンカウンタ３４のカウント値は負値となり、ラッチ回路４０にラッチされるカウンタ値の最上位ビットＭＳＢは１（Highレベル）となるため、スイッチ４２では、可変論理部６からの出力信号ｙ２が当該論理回路２の出力信号ｙとして選択される。また選択信号ｆ１がHighレベル、選択信号ｆ２がLow レベルとなるため、Highレベルの選択信号ｆ１が入力される可変論理部４では、変更クロックＣＫＭが入力されると、信号生成論理の再構成が行われることになる。
【００４２】
次に、図８は、本実施例の論理回路２に外部から入力する各信号ａ，ｂ，Ｓ，ＲＳＴ，ＣＫＭ，ＣＫＵ，ＧＥＮのパタンの一例を表すタイミングチャートである。
図８に示すように、まず、モード信号ＧＥＮ及び変更クロックＣＫＭをLow レベルに保持し、評価クロックＣＫＵの供給を行うと共に、各部を初期化するために、リセット信号ＲＳＴをLow レベルとする（時刻ｔ１）。
【００４３】
この時、出力評価選択部８では、アップダウンカウンタ３４のカウント値が０クリアされると共に、選択信号ｆ１がLow レベル，選択信号ｆ２がHighレベル、スイッチ４２が可変論理部４の出力ｙ１側に設定される。また、各可変論理部４，６を構成する各選択回路ＳＬｋでは、乱数発生回路１６，シフトレジスタ１８の内部状態が初期設定されると共に、選択回路ＳＬｋに入力される信号ａ，ｂ，ｃ，ｈij（ｉ＝１〜ｋ−１，ｊ＝１〜３）のうちいずれか一つが、シフトレジスタ１８の初期設定に従って選択され、ＮＡＮＤ回路Ｅkjに供給される。つまり、リセット時における各可変論理部４，６の信号生成論理は、シフトレジスタ１８の初期設定により決まる。
【００４４】
その後、リセット信号ＲＳＴをHighレベルに戻すと共に、評価クロックＣＫＵの立ち下がりエッジに同期させて、予め用意された入力信号（検査入力信号）ａ，ｂ、及びその検査入力信号ａ，ｂに対する所望の出力信号を表す参照信号Ｓの入力を開始する。
【００４５】
なお、可変論理部４，６にて形成される組合せ回路の出力は、入力信号ａ，ｂの状態のみにより一意に決まるため、（ａ，ｂ）＝（０，０）（０，１）（１，０）（１，１）という４種類の状態を網羅するような入力信号ａ，ｂの組を用意する必要がある。なお、ここでは、入力信号が２個の場合を説明しているが、入力信号がＮ個ある場合には、これに応じて２N 種類の状態を網羅するような信号の組を用意する必要がある。
【００４６】
このように、検査入力信号ａ，ｂ及び参照信号Ｓの入力が開始されると、以後、評価クロックＣＫＵの立ち上がりエッジ（つまり１回目は時刻ｔ２）のタイミングで、検査入力信号ａ，ｂと参照信号Ｓとの比較結果を表す第１の一致信号ｅ１及び第２の一致信号ｅ２に従ってアップダウンカウンタ３４でのカウントが行われる。
【００４７】
そして、検査入力信号ａ，ｂ、及び参照信号Ｓの入力が終了すると（時刻ｔ３）、モード信号ＧＥＮをHighレベルにすると共に、評価クロックＣＫＵの供給を停止し、変更クロックＣＫＭの供給を開始する。
この時、出力評価選択部８では、ラッチ回路４０がアップダウンカウンタ３４のカウント値の最上位ビットＭＳＢをラッチすると共に、アップダウンカウンタ３４のカウント値が０クリアされる。そして、ラッチ回路４０の出力に基づいて、参照信号Ｓに、より近似した出力信号を生成した可変論理部４又は６の出力が、スイッチ４２にて選択され、これと同時に、参照信号Ｓに、より近似しない出力信号を生成した可変論理部４又は６に、信号生成論理の再構成を許可するHighレベルの選択信号ｆ１又はｆ２が入力される。
【００４８】
この状態で、変更クロックＣＫＭが選択回路ＳＬｋに供給されると、その立ち上がりエッジ（つまり１回目は時刻ｔ４）のタイミングで、乱数発生回路１６の内部状態が変化し、その内部状態の変化に応じた乱数パルスＣＫＳが出力される。この乱数パルスＣＫＳのパタンは、各選択回路ＳＬｋ毎にランダムであり、従って、各選択回路ＳＬｋにて選択される信号が、変更クロックＣＫＭの立ち上がりエッジ毎にランダムに変化することになる。
【００４９】
そして、この変更クロックＣＫＭを適当な数（図８では１１個）だけ入力することにより、Highレベルの参照信号ｆ１又はｆ２が入力された可変論理部４又は６の信号生成論理の再構成を終了すると（時刻ｔ５）、モード信号ＧＥＮ及び変更クロックＣＫＭをLow レベルに戻すと共に、評価クロックＣＫＵ，及び検査入力信号ａ，ｂ、参照信号Ｓの供給を再開する。
【００５０】
以後、上述のモード信号ＧＥＮがLow レベル（特にリセット信号ＲＳＴがHighレベルに復帰後）の期間に行われる評価動作と、モード信号ＧＥＮがHighレベルの期間に行われる再構成動作とを交互に繰り返し実行する。これにより参照信号Ｓに一致した出力信号ｙ１又はｙ２を生成する可変論理部４又は６が常に保存され、他方の信号生成論理が再構成されるため、徐々に参照信号Ｓにより近似した出力信号ｙ１又はｙ２を生成するような信号生成論理を持つ可変論理部４又は６が構成されることになる。
【００５１】
以上、説明したように、本実施例の論理回路２によれば、可変論理部４，６が生成する出力信号ｙ１，ｙ２を評価する評価動作、及びその評価結果に従ってより近似していない側の可変論理部４又は６の信号生成論理を再構成する再構成動作を繰り返し行うことにより、可変論理部４，６を、所望の信号生成論理を実現するものとすることができる。
【００５２】
従って、例えば、装置（回路）の一部の仕様が明確にされていないような場合、その仕様が不明な部分に本実施例の論理回路２を適用して装置（回路）の製造を行い、仕様が明らかにされた時点で論理回路２の中身を再構成するようにすれば、ハードウェアの仕様が確定するまで装置の製造を開始することができなかった従来に比べて、各種装置の開発期間を大幅に短縮できる。
【００５３】
また、製造後に、仕様が変更されたり、装置を使用する環境によって信号生成論理を様々に変化させる必要がある場合にも、装置を作り直すことなく簡単に対応することができ、製造コストを大幅に削減することができる。
また本実施例の論理回路２では、可変論理部４の信号生成論理の変更、即ち可変論理部４を構成する各論理素子（ＮＡＮＤ回路Ｅij）に入力される信号の選択を行う選択回路ＳＬｋを、フリップフロップ回路を主要部として構成される乱数発生回路１６及びシフトレジスタ１８を用いて、小規模な回路で実現しており、また、出力評価選択部８も、一個のアップダウンカウンタ３４を中心にして小規模な回路で実現している。
【００５４】
このように、本実施例の論理回路２によれば、簡単かつ小規模な回路構成により実現しているので、ハードウェア上に容易に実現することができる。また、１チップの半導体集積回路の一部を再構成可能なものとするような用途に好適に用いることができ、しかも、任意の組み合わせ回路を構成できるため、使い勝手がよい。
【００５５】
以上、本発明の一実施例について説明したが、本発明は上記実施例に限定されるものではなく、様々な態様にて実施することができる。
例えば、上記実施例の論理回路２は、２入力，１出力であるが、３入力以上、２出力以上であってもよい。
【００５６】
また、上記実施例では、可変論理部を２つ備えているが、これを３つ以上備えていてもよい。その場合、出力評価選択部８は、各可変論理部の出力信号と参照信号との一致回数を個別にカウントし、カウント値が最大となる出力信号を生成した可変論理部を保持し、それ以外の可変論理部の信号生成論理を再構成するようにすればよい。
【００５７】
更に、乱数発生回路１６は、４段のＬＦＳＲを用いたが、より段数の大きいものを用いたり、選択回路ＳＬｋ毎に、異なる段数のＬＦＳＲを用いるように構成してもよい。
【図面の簡単な説明】
【図１】  実施例の論理回路の全体構成を表すブロック図である。
【図２】  可変論理部の構成を表す回路図である。
【図３】  多数決回路の構成を表す回路図である。
【図４】  選択回路の構成を表す回路図である。
【図５】  乱数発生回路の構成を表す回路図である。
【図６】  シフトレジスタの構成を表す回路図である。
【図７】  出力評価選択部の構成を表す回路図である。
【図８】  論理回路に入力する信号パタンの一例を表すタイミングチャートである。
【図９】  従来の再構成可能な回路の構成を表すブロック図である。
【符号の説明】
２…論理回路      ４，６…可変論理部      ８…出力評価選択部
１２…多数決回路    １４，２０〜２２，３８…ＡＮＤ回路
１６…乱数発生回路    １８…シフトレジスタ    ２４…ＯＲ回路
３０，３２…ＸＮＯＲ回路    ３４…アップダウンカウンタ
３６，４４…ＮＯＴ回路    ４０…ラッチ回路    ４２…スイッチ
ＡＤ１，ＡＤ２…加算器    Ｂ１〜Ｂｎ…ブロック    Ｅij…ＮＡＮＤ回路
Ｆ11〜Ｆ14，Ｆ21〜Ｆ2m…フリップフロップ回路
ＳＬ１〜ＳＬｎ…選択回路    Ｔ１〜Ｔｍ…電界効果トランジスタ
【図１】
0004050815.tif 000002
【図２】
0004050815.tif 000003
【図３】
0004050815.tif 000004
【図４】
0004050815.tif 000005
【図５】
0004050815.tif 000006
【図６】
0004050815.tif 000007
【図７】
0004050815.tif 000008
【図８】
0004050815.tif 000009
【図９】
0004050815.tif 000010