(57)【特許請求の範囲】
【請求項１】
ライブラリを格納した記憶装置にアクセス可能な計算機を用いた論理回路の設計方法であって、
複数のセルとその結線関係で記述された第１の論理回路のネットリストを受け、
上記第１の論理回路の複数のセルを上記ライブラリを参照して複数のセレクタ回路に置き換えて、上記第１の論理回路と論理的に同等であって複数のセレクタ回路とその結線関係で記述される第２の論理回路に変換し、
上記第２の論理回路の部分回路を、上記第２の論理回路の部分回路と論理的に同等であって複数のセレクタ回路とその結線関係で記述され、上記第２の論理回路の部分回路よりも遅延時間の小さい論理回路に置き換えて、第３の論理回路に変換し、
上記第３の論理回路の複数のセレクタ回路にセルをマッピングして複数のセルとその結線関係で記述された第４の論理回路を得る論理回路の設計方法。
【請求項２】
請求項１において、
上記セレクタ回路は２つの信号入力と、１つの制御入力と、１つの出力とを有することを特徴とする論理回路の設計方法。
【請求項３】
請求項１において、
上記第２の論理回路の部分回路は２段のセレクタ回路を含むことを特徴とする論理回路の設計方法。
【請求項４】
請求項１において、
上記セルはＣＭＯＳセルであって、上記第１の論理回路及び上記第４の論理回路はＣＭＯＳ論理回路であることを特徴とする論理回路の設計方法。
【請求項５】
請求項１において、
さらに、上記第４の論理回路のレイアウトを決定し、レイアウトデータを作成する論理回路の設計方法。
【請求項６】
請求項５において、
さらに、上記レイアウトデータに基づきマスクデータを作成する論理回路の設計方法。
【請求項７】
請求項１において、
上記第２の論理回路の部分回路はクリティカルパスを形成していることを特徴とする論理回路の設計方法。
【請求項８】
請求項１において、
上記セレクタ回路は２つの信号入力と、１つの制御入力と、１つの出力とを有し、
上記第２の論理回路に含まれる各セレクタ回路の各入力のスラックを計算し、
上記各セレクタ回路の各入力のスラックの差の最小値を計算し、上記最小値に基づいて上記第２の論理回路の部分回路を決定する論理回路の設計方法。
【請求項９】
半導体集積回路装置の製造方法であって、
論理回路のレイアウトを決定してレイアウトデータを作成し、
上記レイアウトデータに基づきマスクデータを作成し、
上記マスクデータに基づくマスクデータパターンを用いて半導体集積回路装置を製造し、
上記論理回路は、第１の論理回路の複数のセルを複数のセレクタ回路に置き換えて、上記第１の論理回路と論理的に同等であって複数のセレクタ回路とその結線関係で記述される第２の論理回路に変換し、上記第２の論理回路の部分回路を、上記第２の論理回路の部分回路と論理的に同等であって複数のセレクタ回路とその結線関係で記述され、上記第２の論理回路の部分回路よりも遅延時間の小さい論理回路に置き換えて第３の論理回路に変換し、上記第３の論理回路の複数のセレクタ回路にセルをマッピングすることで得られたことを特徴とする半導体集積回路装置の製造方法。
【請求項１０】
請求項９において、
上記セレクタ回路は２つの信号入力と、１つの制御入力と、１つの出力とを有することを特徴とする半導体集積回路装置の製造方法。
【請求項１１】
請求項９において、
上記第２の論理回路の部分回路は２段のセレクタ回路を含むことを特徴とする半導体集積回路装置の製造方法。
【請求項１２】
請求項９において、
上記セルはＣＭＯＳセルであって、上記論理回路はＣＭＯＳ論理回路であることを特徴とする半導体集積回路の製造方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術の分野】
本発明は、セレクタ回路を使用した高速な論理回路に関し、また、そのような論理回路を作成する方法に関する。
【０００２】
【従来の技術】
高速論理回路に関する研究は数多く発表されている。その中の多くは、パストランジスタ回路を使用した論理回路である。
【０００３】
例えば、Proceeding of IEEE 1994 Custom Integrated Circuits Conference,pp.603-606（以下、文献１と呼ぶ ）では、ｎチャネル電界効果トランジスタだけで構成した２入力１出力のパストランジスタセレクタと遅延時間改善ためのバッファ用のインバータを組み合わせて論理回路を作成する方法が提案されている。この例では、複雑な論理機能を少ない数のトランジスタで実現できるというパストランジスタ回路の特徴を利用し、トランジスタ数の少ないコンパクトな回路で目的の論理回路を実現する事により、高速で動作する論理回路を作成する事に成功している。
【０００４】
また、IEEE Journal of Solid-State Circuits, Vol. 25, No. 2, pp.388-395（以下、文献２と呼ぶ ）では、CPL(Complementary Pass-transistor Logic)という、差動型の高速パストランジスタ論理回路が提案されている。文献１と同様にCPLでも、ｎチャネル電界効果トランジスタだけで構成した２入力１出力のパストランジスタセレクタとバッファ用インバータを使用して論理回路を構成する。CPLの一番の特徴は、文献１の場合と違って、必ず２つの２入力１出力のパストランジスタセレクタをペアにして使用し、正逆両極性の信号を利用した差動型の論理回路である点である。このようにCPLでは、複雑な論理機能をすくない数のトランジスタによる実現できるというパストランジスタ回路の特徴と、さらに、極性合わせのためのインバータが不要であるという差動型回路の特徴の両方を利用する事により、高速で動作する論理回路を実現している。実際、文献２によるとCMOS回路よりも2.5倍速い全加算器がCPLにより実現されている。
【０００５】
また、IEEE International Solid-State Circuits Conference Digest of Technical Papers, pp.90-91, 1993（以下、文献３と呼ぶ ）には、DPL(Double Pass-transistor Logic)というパストランジスタ論理回路が提案されている。DPLではCPLと同じように差動型のパストランジスタセレクタ回路により、正逆両極性の信号を使用して論理回路を構成する。しかし、CPLとは違ってｎチャネル電界効果トランジスタとｐチャネル電界効果トランジスタの両タイプのトランジスタを使用してパストランジスタセレクタ回路を構成する。文献１、２のパストランジスタ回路では、ｎチャネル電界効果トランジスタだけでセレクタ回路を構成するため、セレクタ回路の出力ではトランジスタのしきい値電圧に相当する電圧降下が発生し、このため電源電圧が低い場合には高速動作ができないという問題がある。しかし、DPLでは、ｐチャネル電界効果トランジスタを併用する事によって、しきい値電圧分の電圧降下の問題がなくなるため、低電源電圧時でも高速動作が可能である。
【０００６】
さらに、U. S. Patent No. 5040139（以下、文献４と呼ぶ ）、U. S. Patent No. 5162666（以下、文献５と呼ぶ ）、およびU. S. Patent No. 5200907（以下、文献６と呼ぶ ）には、TGM（Transmission Gate Multiplexer）という、パストラジスタ回路ベースの、セレクタを使用して論理回路を作成する方法が紹介されている。パストラジスタ回路ベースで構成したTGMが、ＣＭＯＳ回路で構成したＸＯＲ、ＮＡＮＤ、ＮＯＲゲートよりも高速に動作可能なため、TGMベースの論理回路は、従来のＣＭＯＳベースの論理回路よりも、高速動作が可能である。
【０００７】
【発明が解決しようとする課題】
実際の大規模な論理回路では、ある入力からある出力にたどり着くまでの経路（パス）は一般に複数存在する。このため、ある出力信号が確定するまでに必要な時間（つまりその出力信号の遅延時間）は、その各々のパスの中で、パス上に存在するトランジスタ等の回路を構成する素子の遅延時間の総和がもっとも遅いパス（いわゆるクリティカルパス）の遅延時間によって決定される。さらに、出力信号が複数存在する場合は、一番遅延時間の遅い出力信号の遅延時間よって論理回路の動作スピードは決定されてしまう。
【０００８】
このため、１本でも遅延時間が極端に遅いパスが存在してしまうと、たとえ他のすべてのパスの遅延時間が非常に小さく、高速動作が可能であったとしても、回路全体では高速動作が不可能である。このように、実際の大規模な論理回路に対して、高速動作可能な論理回路を作成するためには、論理回路作成時に、各々のパスの段数がなるべく同じになるようにして、遅延時間が極端に遅いパスができないような回路を作る事が実用上非常に重要である。
【０００９】
しかし、従来技術で説明した文献１〜６は、回路自体の動作スピードを向上させる事には大変有効ではあるが、必ずしも上記に示したような極端に遅いパスができない事を保証するものではない。また、文献１〜６は各々のパスの段数がなるべく均等になるように論理回路を作成する方法を何ら示唆していない。
【００１０】
また、実際の回路では、すべての入力信号が同一時刻に到達しているとは限らず、特定の入力信号が他の入力信号よりも遅れる場合がある。このような場合には、論理回路全体の遅延時間は、回路自体の遅延時間にその遅れてくる入力信号の遅れの和になる。つまり、パスの遅延時間が小さくても、そのパスに関係する入力信号の中で極端に遅いものが存在すれば、そのパスが全体の動作スピードを決定してしまう。このため、入力信号が極端に遅れてくるような場合には、その入力信号が関係するパスは段数がなるべく浅くなるようにして回路を作成し、回路全体の遅延時間が均等になるような論理回路を作成する必要がある。
【００１１】
本発明の目的は、論理回路の各々のパスの段数がなるべく同じになるようにして、遅延時間が極端に遅いクリィティカルパスが存在しない論理回路を作成して、高速に動作可能な論理回路を提供する事である。
【００１２】
また、本発明の他の目的は、特定の入力信号が遅れてくる場合にも、その遅れによる遅延時間の増加分を考慮して、その入力信号に関係するパスは段数が浅くなるようにして論理回路を作成して、高速に動作可能な論理回路を提供する事である。
【００１３】
さらに、本発明の他の目的は、遅延時間が極端に遅いクリィティカルパスが存在しない論理回路を作成する方法を提供する事である。
【００１４】
さらに、本発明の他の目的は、特定の入力信号が遅れてくる場合にも、その遅れによる遅延時間の増加分を考慮して、遅延時間が極端に遅いクリィティカルパスが存在しない論理回路を作成する方法を提供する事である。
【００１５】
【課題を解決するための手段】
上記目的を達成するため、本発明の望ましい態様は、制御入力Ｓが第１の入力信号（ＩＮ１）に制御され、入力Ｉ１あるいは入力Ｉ０が第２の入力信号（ＩＮ２）に制御され、出力Ｏが第１のノード（Ｎ１）に接続された第１のセレクタ（Ｓ１）と、制御入力Ｓが第１のノード（Ｎ１）に制御され、入力Ｉ１が第３の入力信号（ＩＮ３）に制御され、入力Ｉ０が第１の入力信号（ＩＮ１）に制御され、出力Ｏが第１の出力信号（ＯＵＴ１）に接続された第３のセレクタ（Ｓ３）を含む事を特徴とする論理回路（図１のＣ１）である。
【００１６】
本発明の他の望ましい態様は、制御入力Ｓが第１の入力信号（ＩＮ１）に制御され、入力Ｉ１が第３の入力信号（ＩＮ３）に制御され、出力Ｏが第４１のノード（Ｎ４１）に接続された第４１のセレクタ（Ｓ４１）と、制御入力Ｓが第２の入力信号（ＩＮ２）に制御され、入力Ｉ１あるいは入力Ｉ０のどちらか一方が第４１のノード（Ｎ４１）に制御され、残りが第１の入力信号（ＩＮ１）に制御され、出力Ｏが第１の出力信号（ＯＵＴ１）に接続された第４３のセレクタ（Ｓ４３）を含む事を特徴とする論理回路（図２のＣ４１）である。
【００１７】
本発明の他の望ましい態様では、制御入力Ｓが第１の入力信号（ＩＮ１）に制御され、入力Ｉ１が第２の入力信号（ＩＮ２）に制御され、入力Ｉ０が固定電位（ＧＮＤ）に接続され、出力Ｏが第１のノード（Ｎ１）に接続された第１のセレクタ（Ｓ１）と、制御入力Ｓが第１の入力信号（ＩＮ１）に制御され、入力Ｉ１が第４の入力信号（ＩＮ４）に制御され、入力Ｉ０が第５の入力信号（ＩＮ５）に制御され、出力Ｏが第２のノード（Ｎ２）に接続された第２のセレクタ（Ｓ２）と、制御入力Ｓが第１のノード（Ｎ１）に制御され、入力Ｉ１が第３の入力信号（ＩＮ３）に制御され、入力Ｉ０が第２のノード（Ｎ２）に制御され、出力Ｏが第１の出力信号（ＯＵＴ１）に接続された第３のセレクタ（Ｓ３）を含む論理回路（図１のＣ１）である。
【００１８】
本発明の他の望ましい他の態様は、制御入力Ｓが第１の入力信号（ＩＮ１）に制御され、入力Ｉ１が固定電位（ＧＮＤ）に接続され、入力Ｉ０が第２の入力信号（ＩＮ２）に制御され、出力Ｏが第２１のノード（Ｎ２１）に接続された第２１のセレクタ（Ｓ２１）と、制御入力Ｓが第１の入力信号（ＩＮ１）に制御され、入力Ｉ１が第５の入力信号（ＩＮ５）に制御され、入力Ｉ０が第４の入力信号（ＩＮ４）に制御され、出力Ｏが第２２のノード（Ｎ２２）に接続された第２２のセレクタ（Ｓ２２）と、制御入力Ｓが第２１のノード（Ｎ２１）に制御され、入力Ｉ１が第３の入力信号（ＩＮ３）に制御され、入力Ｉ０が第２２のノード（Ｎ２２）に制御され、出力Ｏが第１の出力信号（ＯＵＴ１）に接続された第２３のセレクタ（Ｓ２３）を含む論理回路（図１のＣ２１）である。
【００１９】
さらに、本発明の他の望ましい他の態様は、制御入力Ｓが第１の入力信号（ＩＮ１）に制御され、入力Ｉ１が第３の入力信号（ＩＮ３）に制御され、入力Ｉ０が第５の入力信号（ＩＮ５）に制御され、出力Ｏが第４１のノード（Ｎ４１）に接続された第４１のセレクタ（Ｓ４１）と、制御入力Ｓが第１の入力信号（ＩＮ１）に制御され、入力Ｉ１が第４の入力信号（ＩＮ４）に制御され、入力Ｉ０が第５の入力信号（ＩＮ５）に制御され、出力Ｏが第４２のノード（Ｎ４２）に接続された第４２のセレクタ（Ｓ４２）と、制御入力Ｓが第２の入力信号（ＩＮ２）に制御され、入力Ｉ１が第４１のノード（Ｎ４１）に制御され、入力Ｉ０が第４２のノード（Ｎ４２）に制御され、出力Ｏが第１の出力信号（ＯＵＴ１）に接続された第４３のセレクタ（Ｓ４３）を含む論理回路（図２のＣ４１）である。
【００２０】
さらに、本発明の他の望ましい他の態様は、制御入力Ｓが第１の入力信号（ＩＮ１）に制御され、入力Ｉ１が第５の入力信号（ＩＮ５）に制御され、入力Ｉ０が第３の入力信号（ＩＮ３）に制御され、出力Ｏが第５１のノード（Ｎ５１）に接続された第５１のセレクタ（Ｓ５１）と、制御入力Ｓが第１の入力信号（ＩＮ１）に制御され、入力Ｉ１が第５の入力信号（ＩＮ５）に制御され、入力Ｉ０が第４の入力信号（ＩＮ４）に制御され、出力Ｏが第５２のノード（Ｎ５２）に接続された第５２のセレクタ（Ｓ５２）と、制御入力Ｓが第２の入力信号（ＩＮ２）に制御され、入力Ｉ１が第５１のノード（Ｎ５１）に制御され、入力Ｉ０が第５２のノード（Ｎ５２）に制御され、出力Ｏが第１の出力信号（ＯＵＴ１）に接続された第５３のセレクタ（Ｓ５３）を含む論理回路（図２のＣ５１）である。
【００２１】
さらに、本発明の他の望ましい他の態様は、制御入力Ｓが第２の入力信号（ＩＮ２）に制御され、入力Ｉ１が第４の入力信号（ＩＮ４）に制御され、入力Ｉ０が第５の入力信号（ＩＮ５）に制御され、出力Ｏが第６１のノード（Ｎ６１）に接続された第６１のセレクタ（Ｓ６１）と、制御入力Ｓが第３の入力信号（ＩＮ３）に制御され、入力Ｉ１が第４の入力信号（ＩＮ４）に制御され、入力Ｉ０が第５の入力信号（ＩＮ５）に制御され、出力Ｏが第６２のノード（Ｎ６２）に接続された第６２のセレクタ（Ｓ６２）と、
制御入力Ｓが第１の入力信号（ＩＮ１）に制御され、入力Ｉ１が第６１のノード（Ｎ６１）に制御され、入力Ｉ０が第６２のノード（Ｎ６２）に制御され、出力Ｏが第１の出力信号（ＯＵＴ１）に接続された第６３のセレクタ（Ｓ６３）を含む論理回路（図２のＣ６１）である。
【００２２】
さらに、本発明の他の望ましい他の態様は、制御入力Ｓが第３の入力信号（ＩＮ３）に制御され、入力Ｉ１が第４の入力信号（ＩＮ４）に制御され、入力Ｉ０が第５の入力信号（ＩＮ５）に制御され、出力Ｏが第７１のノード（Ｎ７１）に接続された第７１のセレクタ（Ｓ７１）と、制御入力Ｓが第１の入力信号（ＩＮ１）に制御され、入力Ｉ１が第４の入力信号（ＩＮ４）に制御され、入力Ｉ０が第７１のノード（Ｎ７１）に制御され、出力Ｏが第７２のノード（Ｎ７２）に接続された第７２のセレクタ（Ｓ７２）と、制御入力Ｓが第１の入力信号（ＩＮ１）に制御され、入力Ｉ１が第５の入力信号（ＩＮ５）に制御され、入力Ｉ０が第７１のノード（Ｎ７１）に制御され、出力Ｏが第７３のノード（Ｎ７３）に接続された第７３のセレクタ（Ｓ７３）と、制御入力Ｓが第２の入力信号（ＩＮ２）に制御され、入力Ｉ１が第７２のノード（Ｎ７２）に制御され、入力Ｉ０が第７３のノード（Ｎ７３）に制御され、出力Ｏが第１の出力信号（ＯＵＴ１）に接続された第７４のセレクタ（Ｓ７４）を含む論理回路（図２のＣ７１）である。
【００２３】
さらに、本発明の他の望ましい他の態様は、制御入力Ｓが第２の入力信号（ＩＮ２）に制御され、入力Ｉ１が第４の入力信号（ＩＮ４）に制御され、入力Ｉ０が第５の入力信号（ＩＮ５）に制御され、出力Ｏが第８１のノード（Ｎ８１）に接続された第８１のセレクタ（Ｓ８１）と、制御入力Ｓが第１の入力信号（ＩＮ１）に制御され、入力Ｉ１が第８１のノード（Ｎ８１）に制御され、入力Ｉ０が第４の入力信号（ＩＮ４）に制御され、出力Ｏが第８２のノード（Ｎ８２）に接続された第８２のセレクタ（Ｓ８２）と、制御入力Ｓが第１の入力信号（ＩＮ１）に制御され、入力Ｉ１が第８１のノード（Ｎ８１）に制御され、入力Ｉ０が第５の入力信号（ＩＮ５）に制御され、出力Ｏが第８３のノード（Ｎ８３）に接続された第８３のセレクタ（Ｓ８３）と、制御入力Ｓが第３の入力信号（ＩＮ３）に制御され、入力Ｉ１が第８２のノード（Ｎ８２）に制御され、入力Ｉ０が第８３のノード（Ｎ８３）に制御され、出力Ｏが第１の出力信号（ＯＵＴ１）に接続された第８４のセレクタ（Ｓ８４）を含む論理回路（図２のＣ８１）である。
【００２４】
さらに、本発明の他の望ましい他の態様は、ゲートが第１０４のノード（Ｎ１０４）により制御され、入力Ｉ０と第１００のノード（Ｎ１００）との間にソースドレイン経路が接続された第１００のｎチャネル電界効果トランジスタ（Ｔ１００）と、ゲートが制御入力Ｓにより制御され、入力Ｉ１と第１００のノード（Ｎ１００）との間にソースドレイン経路が接続された第１０１のｎチャネル電界効果トランジスタ（Ｔ１０１）と、ゲートが制御入力Ｓにより制御され、第１の動作電位点（ＶＤＤ）と第１０４のノード（Ｎ１０４）との間にソースドレイン経路が接続された第１０４のｐチャネル電界効果トランジスタ（Ｔ１０４）と、ゲートが制御入力Ｓにより制御され、第２の動作電位点（ＧＮＤ）と第１０４のノード（Ｎ１０４）との間にソースドレイン経路が接続された第１０５のｎチャネル電界効果トランジスタ（Ｔ１０５）と、ゲートが第１００のノード（Ｎ１００）により制御され、第１の動作電位点（ＶＤＤ）と出力との間にソースドレイン経路が接続された第１０２のｐチャネル電界効果トランジスタ（Ｔ１０２）と、ゲートが第１００のノード（Ｎ１００）により制御され、第２の動作電位点（ＧＮＤ）と出力との間にソースドレイン経路が接続された第１０３のｎチャネル電界効果トランジスタ（Ｔ１０３）を含む事を特徴とするセレクタ（図３のａ行のＣ１００）を含む事を特徴とする図１のＣ１、Ｃ１１、Ｃ２１、Ｃ３１および図２のＣ４１、Ｃ５１、Ｃ６１、Ｃ７１、Ｃ８１の論理回路である。
【００２５】
さらに、本発明の他の望ましい他の態様は、ゲートが制御入力Ｓの相補信号（Ｓ’）により制御され、入力Ｉ０と第２００のノード（Ｎ２００）との間にソースドレイン経路が接続された第２００のｎチャネル電界効果トランジスタ（Ｔ２００）と、ゲートが制御入力Ｓにより制御され、入力Ｉ１と第２００のノード（Ｎ２００）との間にソースドレイン経路が接続された第２０１のｎチャネル電界効果トランジスタ（Ｔ２０１）と、ゲートが制御入力Ｓの相補信号（Ｓ’）により制御され、入力Ｉ０の相補信号（Ｉ０’）と第２０２のノード（Ｎ２０２）との間にソースドレイン経路が接続された第２０２のｎチャネル電界効果トランジスタ（Ｔ２０２）と、ゲートが制御入力Ｓにより制御され、入力Ｉ１の相補信号（Ｉ１’）と第２０２のノード（Ｎ２０２）との間にソースドレイン経路が接続された第２０３のｎチャネル電界効果トランジスタ（Ｔ２０３）と、ゲートが第２００のノード（Ｎ２００）により制御され、第１の動作電位点（ＶＤＤ）と出力の相補信号（ＯＵＴ’）との間にソースドレイン経路が接続された第２０６のｐチャネル電界効果トランジスタ（Ｔ２０６）と、ゲートが第２００のノード（Ｎ２００）により制御され、第２の動作電位点（ＧＮＤ）と出力の相補信号（ＯＵＴ’）との間にソースドレイン経路が接続された第２０７のｎチャネル電界効果トランジスタ（Ｔ２０７）と、ゲートが第２０２のノード（Ｎ２０２）により制御され、第１の動作電位点（ＶＤＤ）と出力との間にソースドレイン経路が接続された第２０８のｐチャネル電界効果トランジスタ（Ｔ２０８）と、ゲートが第２０２のノード（Ｎ２０２）により制御され、第２の動作電位点（ＧＮＤ）と出力との間にソースドレイン経路が接続された第２０９のｎチャネル電界効果トランジスタ（Ｔ２０９）をセレクタ（図３のａ行のＣ２００）を含む事を特徴とする図１のＣ１、Ｃ１１、Ｃ２１、Ｃ３１および図２のＣ４１、Ｃ５１、Ｃ６１、Ｃ７１、Ｃ８１の論理回路である。
【００２６】
さらに、本発明の他の望ましい他の態様は、ゲートが第１の入力信号（ＩＮ１）により制御され、第１の動作電位点（ＶＤＤ）と第１２７のノード（Ｎ１２７）との間にソースドレイン経路が接続された第１２７のｐチャネル電界効果トランジスタ（ＴＰ１２７）と、ゲートが第１の入力信号（ＩＮ１）により制御され、第２の動作電位点（ＧＮＤ）と第１２７のノード（Ｎ１２７）との間にソースドレイン経路が接続された第１２７のｎチャネル電界効果トランジスタ（ＴＮ１２７）と、
ゲートが第１２７のノード（Ｎ１２７）により制御され、第１２８のノード（Ｎ１２８）にソースドレイン経路が接続された第１２８のｎチャネル電界効果トランジスタ（ＴＮ１２８）と、ゲートが第１の入力信号（ＩＮ１）により制御され、第２の入力信号（ＩＮ２）と第１２８のノード（Ｎ１２８）との間にソースドレイン経路が接続された第１２９のｎチャネル電界効果トランジスタ（ＴＮ１２９）と、
ゲートが第１２８のノード（Ｎ１２８）により制御され、第１の動作電位点（ＶＤＤ）と第１２１のノード（Ｎ１２１）との間にソースドレイン経路が接続された第１２１のｐチャネル電界効果トランジスタ（ＴＰ１２１）と、ゲートが第１２８のノード（Ｎ１２８）により制御され、第２の動作電位点（ＧＮＤ）と第１２１のノード（Ｎ１２１）との間にソースドレイン経路が接続された第１２１のｎチャネル電界効果トランジスタ（ＴＮ１２１）と、
ゲートが第１２１のノード（Ｎ１２１）により制御され、第３の入力信号（ＩＮ３）と第１２５のノード（Ｎ１２５）との間にソースドレイン経路が接続された第１２５のｎチャネル電界効果トランジスタ（ＴＮ１２５）と、ゲートが第１２８（Ｎ１２８）のノードにより制御され、第１の入力信号（ＩＮ１）に制御された第１２４のノード（Ｎ１２４）と第１２５のノード（Ｎ１２５）との間にソースドレイン経路が接続された第１２６のｎチャネル電界効果トランジスタ（ＴＮ１２６）を含む事を特徴とする論理回路（図４のＣ１２０）。
【００２７】
さらに、本発明の他の望ましい他の態様は、ゲートが第１の入力信号（ＩＮ１）により制御され、第１の動作電位点（ＶＤＤ）と第１２０のノード（Ｎ１２０）との間にソースドレイン経路が接続された第１２０のｐチャネル電界効果トランジスタ（ＴＰ１２０）と、
ゲートが第１の入力信号（ＩＮ１）により制御され、第２の動作電位点（ＧＮＤ）と第１２０のノード（Ｎ１２０）との間にソースドレイン経路が接続された第１２０のｎチャネル電界効果トランジスタ（ＴＮ１２０）と、
ゲートが第１２０のノード（Ｎ１２０）により制御され、第５の入力信号（ＩＮ５）と第１２４のノード（Ｎ１２４）との間にソースドレイン経路が接続された第１２３のｎチャネル電界効果トランジスタ（ＴＮ１２３）と、ゲートが第１の入力信号（ＩＮ１）により制御され、第４の入力信号（ＩＮ４）と第１２４のノード（Ｎ１２４）との間にソースドレイン経路が接続された第１２４のｎチャネル電界効果トランジスタ（ＴＮ１２４）と、
ゲートが第１３０のノード（Ｎ１３０）により制御され、第１の動作電位点（ＶＤＤ）と第１２１のノード（Ｎ１２１）との間にソースドレイン経路が接続された第１２１のｐチャネル電界効果トランジスタ（ＴＰ１２１）と、ゲートが第１３０のノード（Ｎ１３０）により制御され、第２の動作電位点（ＧＮＤ）と第１２１のノード（Ｎ１２１）との間にソースドレイン経路が接続された第１２１のｎチャネル電界効果トランジスタ（ＴＮ１２１）と、
ゲートが第１２１のノード（Ｎ１２１）により制御され、第３の入力信号（ＩＮ３）と第１２５のノード（Ｎ１２５）との間にソースドレイン経路が接続された第１２５のｎチャネル電界効果トランジスタ（ＴＮ１２５）と、ゲートが第１３０のノード（Ｎ１３０）により制御され、第１２４のノード（Ｎ１２４）と第１２５のノード（Ｎ１２５）との間にソースドレイン経路が接続された第１２６のｎチャネル電界効果トランジスタ（ＴＮ１２６）と、
ゲートが第１の入力信号（ＩＮ１）により制御され、第１の動作電位点（ＶＤＤ）と第１２７のノード（Ｎ１２７）との間にソースドレイン経路が接続された第１２７のｐチャネル電界効果トランジスタ（ＴＰ１２７）と、ゲートが第１の入力信号（ＩＮ１）により制御され、第２の動作電位点（ＧＮＤ）と第１２７のノード（Ｎ１２７）との間にソースドレイン経路が接続された第１２７のｎチャネル電界効果トランジスタ（ＴＮ１２７）と、
ゲートが第１２７のノード（Ｎ１２７）により制御され、第１の動作電位点（ＶＤＤ）あるいは第２の動作電位点（ＧＮＤ）と第１２８のノード（Ｎ１２８）との間にソースドレイン経路が接続された第１２８のｎチャネル電界効果トランジスタ（ＴＮ１２８）と、ゲートが第１の入力信号（ＩＮ１）により制御され、第２の入力信号（ＩＮ２）と第１２８のノード（Ｎ１２８）との間にソースドレイン経路が接続された第１２９のｎチャネル電界効果トランジスタ（ＴＮ１２９）と、
ゲートが第１２８のノード（Ｎ１２８）により制御され、第１の動作電位点（ＶＤＤ）と第１３０のノード（Ｎ１３０）との間にソースドレイン経路が接続された第１３０のｐチャネル電界効果トランジスタ（ＴＰ１３０）と、ゲートが第１２８のノード（Ｎ１２８）により制御され、第２の動作電位点（ＧＮＤ）と第１３０のノード（Ｎ１３０）との間にソースドレイン経路が接続された第１３０のｎチャネル電界効果トランジスタ（ＴＮ１３０）と、
ゲートが第１２５のノード（Ｎ１２５）により制御され、第１の動作電位点（ＶＤＤ）と第１の出力信号との間にソースドレイン経路が接続された第１２２のｐチャネル電界効果トランジスタ（ＴＰ１２２）と、ゲートが第１２５のノード（Ｎ１２５）により制御され、第２の動作電位点（ＧＮＤ）と第１の出力信号との間にソースドレイン経路が接続された第１２２のｎチャネル電界効果トランジスタ（ＴＮ１２２）を含む事を特徴とする論理回路（図４のａ行のＣ１２０）である。
【００２８】
さらに、本発明の他の望ましい他の態様は、ゲートが第１の入力信号（ＩＮ１）により制御され、第１の動作電位点（ＶＤＤ）と第１４０のノード（Ｎ１４０）との間にソースドレイン経路が接続された第１４０のｐチャネル電界効果トランジスタ（ＴＰ１４０）と、ゲートが第１の入力信号（ＩＮ１）により制御され、第２の動作電位点（ＧＮＤ）と第１４０のノード（Ｎ１４０）との間にソースドレイン経路が接続された第１４０のｎチャネル電界効果トランジスタ（ＴＮ１４０）と、
ゲートが第１４０のノード（Ｎ１４０）により制御され、第５の入力信号（ＩＮ５）と第１４４のノード（Ｎ１４４）との間にソースドレイン経路が接続された第１４３のｎチャネル電界効果トランジスタ（ＴＮ１４３）と、ゲートが第１の入力信号（ＩＮ１）により制御され、第４の入力信号（ＩＮ４）と第１４４のノード（Ｎ１４４）との間にソースドレイン経路が接続された第１４４のｎチャネル電界効果トランジスタ（ＴＮ１４４）と、
ゲートが第１５０のノード（Ｎ１５０）により制御され、第１の動作電位点（ＶＤＤ）と第１４１のノード（Ｎ１４１）との間にソースドレイン経路が接続された第１４１のｐチャネル電界効果トランジスタ（ＴＰ１４１）と、ゲートが第１５０のノード（Ｎ１５０）により制御され、第２の動作電位点（ＧＮＤ）と第１４１のノード（Ｎ１４１）との間にソースドレイン経路が接続された第１４１のｎチャネル電界効果トランジスタ（ＴＮ１４１）と、
ゲートが第１４１のノード（Ｎ１４１）により制御され、第３の入力信号（ＩＮ３）と第１４５のノード（Ｎ１４５）との間にソースドレイン経路が接続された第１４５のｎチャネル電界効果トランジスタ（ＴＮ１４５）と、ゲートが第１５０のノード（Ｎ１５０）により制御され、第１４４のノード（Ｎ１４４）と第１４５のノード（Ｎ１４５）との間にソースドレイン経路が接続された第１４６のｎチャネル電界効果トランジスタ（ＴＮ１４６）と、
ゲートが第１の入力信号（ＩＮ１）により制御され、第１の動作電位点（ＶＤＤ）と第１４７のノード（Ｎ１４７）との間にソースドレイン経路が接続された第１４７のｐチャネル電界効果トランジスタ（ＴＰ１４７）と、ゲートが第１の入力信号（ＩＮ１）により制御され、第２の動作電位点（ＧＮＤ）と第１４７のノード（Ｎ１４７）との間にソースドレイン経路が接続された第１４７のｎチャネル電界効果トランジスタ（ＴＮ１４７）と、
ゲートが第１の入力信号（ＩＮ１）により制御され、第２の入力信号（ＩＮ２）と第１４８のノード（Ｎ１４８）との間にソースドレイン経路が接続された第１４８のｎチャネル電界効果トランジスタ（ＴＮ１４８）と、ゲートが第１４７のノード（Ｎ１４７）により制御され、第１の動作電位点（ＶＤＤ）あるいは第２の動作電位点（ＧＮＤ）と第１４８のノード（Ｎ１４８）との間にソースドレイン経路が接続された第１４９のｎチャネル電界効果トランジスタ（ＴＮ１４９）と、
ゲートが第１４８のノード（Ｎ１４８）により制御され、第１の動作電位点（ＶＤＤ）と第１５０のノード（Ｎ１５０）との間にソースドレイン経路が接続された第１５０のｐチャネル電界効果トランジスタ（ＴＰ１５０）と、ゲートが第１４８のノード（Ｎ１４８）により制御され、第２の動作電位点（ＧＮＤ）と第１５０のノード（Ｎ１５０）との間にソースドレイン経路が接続された第１５０のｎチャネル電界効果トランジスタ（ＴＮ１５０）と、
ゲートが第１４５のノード（Ｎ１４５）により制御され、第１の動作電位点（ＶＤＤ）と第１の出力信号との間にソースドレイン経路が接続された第１４２のｐチャネル電界効果トランジスタ（ＴＰ１４２）と、ゲートが第１４５のノード（Ｎ１４５）により制御され、第２の動作電位点（ＧＮＤ）と第１の出力信号との間にソースドレイン経路が接続された第１４２のｎチャネル電界効果トランジスタ（ＴＮ１４２）を含む事を特徴とする論理回路（図５のａ行のＣ１４０）である。
【００２９】
さらに、本発明の他の望ましい他の態様は、ゲートが第１の入力信号（ＩＮ１）により制御され、第１の動作電位点（ＶＤＤ）と第１６０のノード（Ｎ１６０）との間にソースドレイン経路が接続された第１６０のｐチャネル電界効果トランジスタ（ＴＰ１６０）と、ゲートが第１の入力信号（ＩＮ１）により制御され、第２の動作電位点（ＧＮＤ）と第１６０のノード（Ｎ１６０）との間にソースドレイン経路が接続された第１６０のｎチャネル電界効果トランジスタ（ＴＮ１６０）と、
ゲートが第１６０のノード（Ｎ１６０）により制御され、第５の入力信号（ＩＮ５）と第１６３のノード（Ｎ１６３）との間にソースドレイン経路が接続された第１６３のｎチャネル電界効果トランジスタ（ＴＮ１６３）と、ゲートが第１の入力信号（ＩＮ１）により制御され、第４の入力信号（ＩＮ４）と第１６３のノード（Ｎ１６３）との間にソースドレイン経路が接続された第１６４のｎチャネル電界効果トランジスタ（ＴＮ１６４）と、
ゲートが第１６８のノード（Ｎ１６８）により制御され、第１の動作電位点（ＶＤＤ）と第１６１のノード（Ｎ１６１）との間にソースドレイン経路が接続された第１６１のｐチャネル電界効果トランジスタ（ＴＰ１６１）と、ゲートが第１６８のノード（Ｎ１６８）により制御され、第２の動作電位点（ＧＮＤ）と第１６１のノード（Ｎ１６１）との間にソースドレイン経路が接続された第１６１のｎチャネル電界効果トランジスタ（ＴＮ１６１）と、
ゲートが第１６１のノード（Ｎ１６１）により制御され、第３の入力信号（ＩＮ３）と第１６５のノード（Ｎ１６５）との間にソースドレイン経路が接続された第１６５のｎチャネル電界効果トランジスタ（ＴＮ１６５）と、ゲートが第１６８のノード（Ｎ１６８）により制御され、第１６３のノード（Ｎ１６３）と第１６５のノード（Ｎ１６５）との間にソースドレイン経路が接続された第１６６のｎチャネル電界効果トランジスタ（ＴＮ１６６）と、
ゲートが第１の入力信号（ＩＮ１）により制御され、第１の動作電位点（ＶＤＤ）と第１６８のノード（Ｎ１６８）との間にソースドレイン経路が接続された第１６７のｐチャネル電界効果トランジスタ（ＴＰ１６７）と、ゲートが第２の入力信号（ＩＮ２）により制御され、第１の動作電位点（ＶＤＤ）と第１６８のノード（Ｎ１６８）との間にソースドレイン経路が接続された第１６８のｐチャネル電界効果トランジスタ（ＴＰ１６８）と、ゲートが第２の入力信号（ＩＮ２）により制御され、第１６８のノード（Ｎ１６８）と第１６７のノード（Ｎ１６７）との間にソースドレイン経路が接続された第１６７のｎチャネル電界効果トランジスタ（ＴＮ１６７）と、ゲートが第１の入力信号（ＩＮ１）により制御され、第２の動作電位点（ＧＮＤ）と第１６７のノード（Ｎ１６７）との間にソースドレイン経路が接続された第１６７のｎチャネル電界効果トランジスタ（ＴＮ１６７）と、
ゲートが第１６５のノード（Ｎ１６５）により制御され、第１の動作電位点（ＶＤＤ）と第１の出力信号との間にソースドレイン経路が接続された第１６２のｐチャネル電界効果トランジスタ（ＴＰ１６２）と、ゲートが第１６５のノード（Ｎ１６５）により制御され、第２の動作電位点（ＧＮＤ）と第１の出力信号との間にソースドレイン経路が接続された第１６２のｎチャネル電界効果トランジスタ（ＴＮ１６２）を含む事を特徴とする論理回路（図１１のａ行のＣ１６０）である。
【００３０】
さらに、本発明の他の望ましい他の態様は、ゲートが第１の入力信号（ＩＮ１）により制御され、第１の動作電位点（ＶＤＤ）と第１８５のノード（Ｎ１８５）との間にソースドレイン経路が接続された第１８４のｐチャネル電界効果トランジスタ（ＴＰ１８４）と、ゲートが第２の入力信号（ＩＮ２）により制御され、第１の動作電位点（ＶＤＤ）と第１８５のノード（Ｎ１８５）との間にソースドレイン経路が接続された第１８５のｐチャネル電界効果トランジスタ（ＴＰ１８５）と、ゲートが第２の入力信号（ＩＮ２）により制御され、第１８５のノード（Ｎ１８５）と第１８４のノード（Ｎ１８４）との間にソースドレイン経路が接続された第１８４のｎチャネル電界効果トランジスタ（ＴＮ１８４）と、ゲートが第１の入力信号（ＩＮ１）により制御され、第２の動作電位点（ＧＮＤ）と第１８４のノード（Ｎ１８４）との間にソースドレイン経路が接続された第１８５のｎチャネル電界効果トランジスタ（ＴＮ１８５）と、
ゲートが第１８５のノード（Ｎ１８５）により制御され、第１の動作電位点（ＶＤＤ）と第１８０のノード（Ｎ１８０）との間にソースドレイン経路が接続された第１８０のｐチャネル電界効果トランジスタ（ＴＰ１８０）と、ゲートが第１８５のノード（Ｎ１８５）により制御され、第２の動作電位点（ＧＮＤ）と第１８０のノード（Ｎ１８０）との間にソースドレイン経路が接続された第１８０のｎチャネル電界効果トランジスタ（ＴＮ１８０）と、
ゲートが第１８０のノード（Ｎ１８０）により制御され、第３の入力信号（ＩＮ３）と第１８２のノード（Ｎ１８２）との間にソースドレイン経路が接続された第１８２のｎチャネル電界効果トランジスタ（ＴＮ１８２）と、ゲートが第１８５のノード（Ｎ１８５）により制御され、第１の入力信号（ＩＮ１）と第１８２のノード（Ｎ１８２）との間にソースドレイン経路が接続された第１８３のｎチャネル電界効果トランジスタ（ＴＮ１８３）と、ゲートが第１８２のノード（Ｎ１８２）により制御され、第１の動作電位点（ＶＤＤ）と第１の出力信号（ＯＵＴ１）との間にソースドレイン経路が接続された第１８１のｐチャネル電界効果トランジスタ（ＴＰ１８１）と、ゲートが第１８２のノード（Ｎ１８２）により制御され、第２の動作電位点と第１の出力信号との間にソースドレイン経路が接続された第１８１のｎチャネル電界効果トランジスタ（ＴＮ１８１）を含む事を特徴とする論理回路（図１２のａ行のＣ１８０）である。
【００３１】
【発明の実施の形態】
以下、本発明の論理回路について、図面に示したいくつかの実施例を参照してさらに詳細に説明する。なお、以下においては、同じ参照番号は同じもの、もしくは類似のものを表わすものとする。
【００３２】
＜実施例１＞
図１で本発明の一実施形態をそのａ行に従って説明する。図１のａ行に示されているセレクタ（Ｃ０のＳ５〜Ｓ６、Ｃ１のＳ１〜Ｓ３等）は、図３のａ行のＥ１００のブール式で示される論理機能を持つ。つまり、制御入力Ｓが“１”の時には入力Ｉ１が選択され、出力Ｏに出力され、“０”の時は入力Ｉ０が選択され、出力される。図３のＣ１００〜Ｃ１０２の回路は、この２入力１出力のセレクタをさまざまなタイプの回路により実装した例である。このうち、Ｃ１００はセレクタ部分（トランジスタＴ１００、Ｔ１０１）をｎチャネル電界効果型トランジスタのみで構成した例であり、文献１で示されている回路である。なお、このＣ１００の回路において、トランジスタＴ１０２、Ｔ１０３、Ｔ１０６は、主として遅延時間改善のためのバッファとして挿入された回路であり、後段にもセレクタ回路が続く場合には省略する事が可能である。
【００３３】
図３のａ行のＣ１０１の回路は、セレクタ部分をｎチャネル電界効果型トランジスタおよびpチャネル電界効果型トランジスタにより構成した例である。この回路では、Ｃ１００の回路と違って、セレクタ部分（Ｔ１１０〜Ｔ１１３）でのしきい値電圧分の電圧降下がないため、電源電圧が低い場合でも高速に動作する事が可能である。さらに、図３のａ行のＣ１０２はＣＭＯＳ回路で構成した例である。この例からわかるように、一般にセレクタ回路は、パストランジスタ回路で構成した方がコンパクトに実現できる。
【００３４】
以下、この図１のＣ０の遅延時間を考える。この回路では次のようなパスが存在し、
Ｃ０のパス１  ＩＮ５→セレクタＳ６→ＯＵＴ１
Ｃ０のパス２  ＩＮ４→セレクタＳ５→Ｎ５→セレクタＳ６→ＯＵＴ１
Ｃ０のパス３  ＩＮ３→セレクタＳ５→Ｎ５→セレクタＳ６→ＯＵＴ１
Ｃ０のパス４  ＩＮ２→セレクタＳ５→Ｎ５→セレクタＳ６→ＯＵＴ１
各パスの遅延時間を、入力信号ＩＮ３のみが他の入力信号（ＩＮ１、ＩＮ２、ＩＮ４、ＩＮ５）よりも極端に遅れてくる場合について考える。例えば、ＩＮ３が１.0ns遅れてくるとして、またセレクタＳ５、Ｓ６の遅延時間を0.5nsとした場合には、
Ｃ０のパス１  0+0.5          0.5ns
Ｃ０のパス２  0+0.5+0.5      1.0ns
Ｃ０のパス３  1.0+0.5+0.5    2.0ns
Ｃ０のパス４  0+0.5+0.5      1.0ns
となる。つまり、図１のＣ０に太線で示したＩＮ３→Ｓ５→Ｎ５→Ｓ６→ＯＵＴ１というパスが遅延時間が一番遅いクリィティカルパスとなる。このため、この他のパスは2.0nsよりも高速動作が可能なのであるが、この回路全体で見た時の遅延時間はこのクリティカルパスの遅延時間2.0nsになってしまう。これは、このＣ０の回路ではＩＮ３が他の入力信号よりも遅れてくるにもかかわらず、このＩＮ３から出力に至るパスには、セレクタが２段（Ｓ５、Ｓ６）存在する。このため、このパスの遅延時間が極端に遅くなり（この例では他のパスより1.0nsも遅い）、回路全体の遅延時間も遅くなってしまうからである。
【００３５】
これに対し、図１のＣ１に示す本発明の論理回路では、Ｃ０と同等の論理機能を持った回路であるにもかかわらず、ＩＮ３から出力ＯＵＴ１に至るパスにはセレクタは１段（Ｓ３）しか存在しないため、高速動作が期待できる。実際、このＣ１の回路では、以下のようなパスが存在するのであるが、
Ｃ１のパス１  ＩＮ５→セレクタＳ２→Ｎ２→セレクタＳ３→ＯＵＴ１
Ｃ１のパス２  ＩＮ４→セレクタＳ２→Ｎ２→セレクタＳ３→ＯＵＴ１
Ｃ１のパス３  ＩＮ１→セレクタＳ２→Ｎ２→セレクタＳ３→ＯＵＴ１
Ｃ１のパス４  ＩＮ３→セレクタＳ３→ＯＵＴ１
Ｃ１のパス５  ＩＮ２→セレクタＳ１→Ｎ１→セレクタＳ３→ＯＵＴ１
Ｃ１のパス６  ＩＮ２→セレクタＳ１→Ｎ１→セレクタＳ３→ＯＵＴ１
それぞれの遅延時間を見積もると、
Ｃ１のパス１  0+0.5+0.5    1.0ns
Ｃ１のパス２  0+0.5+0.5    1.0ns
Ｃ１のパス３  0+0.5+0.5    1.0ns
Ｃ１のパス４  1.0+0.5      1.5ns
Ｃ１のパス４  0+0.5+0.5    1.0ns
Ｃ１のパス６  0+0.5+0.5    1.5ns
となり、Ｃ０と同様にＩＮ３から出力ＯＵＴ１に至るパスが遅延時間が一番遅いクリィティカルパスである。しかし、遅延時間は1.5nsであるので、Ｃ０の回路よりも0.5ns、つまり２５%の高速動作が可能である。
【００３６】
図１のＣ０とＣ１の回路が同じ論理機能を持つ事は、それぞれのブール式が以下のように全く同じ式になる事から証明される。２入力１出力のセレクタ回路のブール式表現（図３のＥ１００）から、Ｃ０のブール式は、
0003701781.tif 000002
となる。同様にＣ１のブール式は、
0003701781.tif 000003
となり、式(E0)と(E1)は全く同じ形であるので、Ｃ０とＣ１は全く同じ論理機能を持った回路である事がわかる。なお、以上のブール式において、IN1'はIN1の否定論理であり、IN1相補信号を表す（以下のブール式でも同様）。
【００３７】
このように、図１のＣ０の回路で、入力信号ＩＮ３が遅れてくる場合には、本発明の論理回路（Ｃ１）に置き換える事により、ＩＮ３からＯＵＴ１に至るパスの段数が削減され、高速動作可能な回路が得られる。
【００３８】
セレクタを図３のＣ１００のタイプで構成したとして、Ｃ１の回路をトランジスタレベルの回路で書き表すと、図４のａ行のＣ１２０に示す、トランジスタＴＮ１２０〜ＴＮ１３０およびＴＰ１２０〜１３０から構成される回路になる。
【００３９】
以上では、セレクタの制御入力Ｓからその出力Ｏへの遅延時間と、信号入力Ｉ０、Ｉ１から出力Ｏへの遅延時間が同じであるという仮定の下で遅延時間を見積もった。しかし、セレクタが、図３のａ行のＣ１００〜Ｃ１０２の回路で構成される場合には、制御入力からの遅延時間は内部の極性反転用インバータ（例えば、Ｃ１００では、Ｔ１０４〜１０５）の遅延時間分だけ多くかかる。典型的な例では、信号入力Ｉ１およびＩ０からの遅延時間は0.3nsであるのに対して、制御入力Ｓからの遅延時間は0.5ns程度かかる。しかし、パストランジスタセレクタを図３のＣ２００、Ｃ２０１に示す差動型の回路で構成すれば、差動型回路では必ず正負両極性の信号が対となって存在するため、極性反転用インバータが不要になる。
【００４０】
このため、制御入力Ｓからの遅延時間は大幅に短縮され、信号入力Ｉ１およびＩ０からの遅延時間と同程度ぐらい、あるいは若干小さくする事が可能である。このため、本発明の論理回路を、差動型のパストランジスタ回路で構成すればさらに高速に動作可能な論理回路が得られる。
【００４１】
図３のＣ２００の回路は、セレクタ部分をｎチャネル電界効果型トランジスタのみで構成したもので、文献２で提案されているＣＰＬと呼ばれる回路である。なお、図３のＣ１００およびＣ１０１の回路と同様に、このＣ２００の回路において、トランジスタＴ２０４〜Ｔ２０９はバッファ用の回路であり、次段にもセレクタが続く場合には省略する事が可能である。一方、図３のＣ２０１の回路は、セレクタ部分をｎチャネル電界効果型トランジスタおよびpチャネル電界効果型トランジスタの両極性のトランジスタを使用して構成した例である。この回路は、図３のａ行のＣ１０１に示した回路と同様に、電源電圧が低い場合にも高速動作可能な回路である。
【００４２】
図３のＣ２００の差動型セレクタにより、このＣ１の回路を構成すると、図４のｂ行のＣ２２０に示す、トランジスタＴＮ２２０〜ＴＮ２３５およびＴＰ２２０〜２３５から構成される回路になる。図４のａ行のＣ１２０と見比べればわかるように、セレクタの制御入力部分での極性反転用インバータが不要なため、高速動作が可能な回路である。
【００４３】
また、一般的に、２つの入力Ｉ０およびＩ１のどちらか一方が、ＧＮＤあるいはＶＤＤ電位に固定され、ＡＮＤ論理あるいはＯＲ論理として動作しているパストランジスタセレクタ（図６のａ〜ｄ行のセレクタＳ３００〜Ｓ３３０）は、それと同等の論理機能を持ったＣＭＯＳ回路で構成したＮＡＮＤゲート、ＮＯＲゲート等（図６のａ〜ｄ行のＧ３００〜Ｇ３３１）に置き換えた方が遅延時間等の回路特性がよくなる場合が多い（例えば、Proceeding of 1997 The Symposium on VLSI circuits, pp. 31-32を参照、以下、文献７と略す）。なお、この図６のＧ３００〜Ｇ３３１で示したＮＡＮＤゲート、ＮＯＲゲートおよびインバータは、それぞれ図６のＧ３４０（トランジスタＴ３４０〜Ｔ３４３）、Ｇ３５０（トランジスタＴ３５０〜Ｔ３５３）、Ｇ３６０（トランジスタＴ３６０〜Ｔ３６３）で示される標準的なＣＭＯＳ回路で構成される。
【００４４】
図１のＣ１の回路では、セレクタＳ１が、図６のａ行のセレクタＳ３００に該当するので、ＮＡＮＤゲート＋インバータに変換する事が可能であり（図６のａ行の変換パターン参照）、図７に示す回路に変形できる。さらに、この図７の回路のインバータＧ２とセレクタＳ３の動作を考えると、インバータＧ２の入力が“１”の時は、セレクタＳ３の制御入力が“０”になって、セレクタＳ３ではＩ１が選択され、インバータＧ２の入力が“０”の時にはセレクタＳ３の制御入力には“１”が入力されるので、Ｉ０の方が選択される。
【００４５】
つまり、セレクタＳ３のＩ０、Ｉ１の接続関係を交換すれば、インバータＧ２は不要になる（図８のａ行に該当）。このため、図１のＣ１の回路は、最終的には図１０のａ行のＣ２の回路に変形できる。一般的に、２入力ＮＡＮＤゲート（Ｇ１）の遅延時間は、セレクタの遅延時間より小さい。例えば、セレクタの遅延時間が0.5ns程度ならば、0.2ns程度である。このＣ２の回路の遅延時間を見積もると、
Ｃ２のパス１  ＩＮ５→Ｓ２→Ｓ３→ＯＵＴ１  0+0.5+0.5  =  1.0ns
Ｃ２のパス２  ＩＮ４→Ｓ２→Ｓ３→ＯＵＴ１  0+0.5+0.5  =  1.0ns
Ｃ２のパス３  ＩＮ１→Ｓ２→Ｓ３→ＯＵＴ１  0+0.5+0.5  =  1.0ns
Ｃ２のパス４  ＩＮ３→Ｓ３→ＯＵＴ１        1.0+0.5    =  1.5ns
Ｃ２のパス５  ＩＮ２→Ｇ１→Ｓ３→ＯＵＴ１  0+0.2+0.5  =  0.7ns
Ｃ２のパス６  ＩＮ１→Ｇ１→Ｓ３→ＯＵＴ１  0+0.2+0.5  =  0.7ns
であるので、クリィティカルパス（パス４）の遅延時間は1.5nsとなり、Ｃ１の場合と同じである。しかし、パス５およびパス６の遅延時間も短縮されているため、もしＩＮ３だけではなくＩＮ２も遅れてくるような場合には、このＣ２の回路の方が高速に動作できる。実際、ＩＮ２が0.6ns遅れてくる場合を考えると、Ｃ１では、Ｃ１のパス５  0.6+0.5+0.5  =  1.6nsとなるため、パス５がクリィティカルパスになってしまい、1.5nsでは動作不可能であり、0.1ns遅くなってしまう。一方、Ｃ２では、Ｃ２のパス５  0.6+0.2+0.5  =  1.3ns  となり、クリィティカルパスはパス４のままで、1.5nsで動作可能である。
【００４６】
このように、本発明の論理回路の一部のセレクタをＣＭＯＳ回路で構成したＮＡＮＤゲート、ＮＯＲゲートに置き換える事により、さらに遅延時間の小さい論理回路を作る事が可能となる。
【００４７】
セレクタを図３のＣ１００のタイプで構成したとして、このＣ２の回路をトランジスタレベルの回路で書き表すと、図１１のａ行のＣ１６０に示す、トランジスタＴＮ１６０〜ＴＮ１６８およびＴＰ１６０〜１６８から構成される回路になる。
【００４８】
また、差動型セレクタを使用している場合でも、ＣＭＯＳ回路と組み合わせる事によりさらに高速な論理回路が得られる。この場合には、ＣＭＯＳ回路で構成したＮＡＮＤゲート、ＮＯＲゲートは図９のａ〜ｃ行に従って差動型回路にする事が可能である。例えば、図１０のＣ２の回路でＮＡＮＤゲートＧ１は、図９のａ行に該当するので、ＮＡＮＤゲートとＮＯＲゲートに変換すればよい。このようにして図１０のａ行のＣ２の回路を差動型回路で組み直すと、図１０のａ行のＣ３に示す回路が得られる。セレクタの信号入力Ｉ１およびＩ０から出力Ｏへの遅延時間は0.3ns、制御入力Ｓからの遅延時間は0.2ns、ＮＡＮＤゲートおよびＮＯＲゲートの遅延時間は0.3nsとして、このＣ３の回路の遅延時間を見積もると
、Ｃ３のパス１ ＩＮ５→ＤＳ２→ＤＳ３→ＯＵＴ１    0+0.3+0.3  =  0.6ns
Ｃ３のパス２ ＩＮ４→ＤＳ２→ＤＳ３→ＯＵＴ１    0+0.3+0.3  =  0.6ns
Ｃ３のパス３ ＩＮ１→ＤＳ２→ＤＳ３→ＯＵＴ１    0+0.2+0.3  =  0.9ns
Ｃ３のパス４ ＩＮ３→ＤＳ３→ＯＵＴ１            1.0+0.3    =  1.3ns
Ｃ３のパス５ ＩＮ１→Ｇ１、Ｇ３→ＤＳ３→ＯＵＴ１ 0+0.3+0.2  =  0.5ns
Ｃ３のパス６ ＩＮ２→Ｇ１、Ｇ３→ＤＳ３→ＯＵＴ１ 0+0.3+0.2  =  0.5ns
となり、Ｃ１およびＣ２の回路よりもさらに高速動作可能である。このＣ３の回路で、セレクタを図３のＣ２００のタイプで構成したとして、Ｃ３の回路をトランジスタレベルの回路で書き表すと、図１１のｂ行のＣ２６０に示す、トランジスタＴＮ２６０〜ＴＮ２７３およびＴＰ２６０〜２７３から構成される回路になる。
【００４９】
次に、Ｃ０の回路で、入力信号ＩＮ５がＧＮＤ固定であり、ＩＮ４がＶＤＤ固定である場合を考える。この場合には、Ｃ２のセレクタＳ１は、Ｉ０がＧＮＤ固定、Ｉ１がＶＤＤ固定となり、図８のｃ行のセレクタＳ４０３に該当する。このセレクタの動作を考えると、セレクタの制御入力Ｓが“０”の時は、ＧＮＤ電位、つまり“０”を出力し、制御入力Ｓが“１”の時は、ＶＤＤ電位、つまり“１”を出力する。このため、このセレクタは冗長であり取り除く事が可能であり、図１２のａ行のＣ１８１に示す回路に簡単化できる。このＣ１８１の回路では、Ｃ２の回路で存在したＩＮ１→Ｓ２→Ｓ３→ＯＵＴ１というパスが存在しないため、Ｃ２の回路よりも高速動作が可能である。このように、一般に図８のｂ〜ｆ行のセレクタ（Ｓ４０２〜Ｓ４０６）が存在する場合には、それらの冗長なセレクタを取り除く事により、回路を簡単化して、より高速に動作する論理回路を作成する事が可能である。
【００５０】
なお、このＣ１８１の回路を、図３のＣ２００のタイプでセレクタで構成したとすると、
図１２のＣ１８０に示す、トランジスタＴＮ１８０〜ＴＮ１８５およびＴＰ１８０〜ＴＰ１８５で構成された回路になる。また、このＣ１８１の回路を差動型回路で構成し直すと、図１２のｂ行のＣ２８１の回路になる。さらに、この回路を同様にトランジスタレベルの回路で書き表すと、図１２のＣ２８０に示す回路になる。
【００５１】
＜実施例１の変形例＞
実施例１では、図１のＣ０の回路において、ＩＮ３→Ｓ５→Ｎ５→Ｓ６→ＯＵＴ１がクリティカルパスである場合を想定したが、本実施例では、ＩＮ４→Ｓ５→Ｎ５→Ｓ６→ＯＵＴ１のパスがこの回路全体での遅延時間を決定するクリティカルパスである場合を考える（図１のＣ１０）。言い換えると、セレクタが２段接続された回路において、実施例１は前段セレクタ（Ｓ５）および後段のセレクタ（Ｓ６）とも入力Ｉ１がクリティカルパスである場合であったが、本実施例では前段のセレクタ（Ｓ５）では入力Ｉ０、後段のセレクタ（Ｓ６）では入力Ｉ１がクリティカルパスである場合である。このような場合にも、以下に示すように、図１のＣ１に示した本発明の論理回路を使用する事によって遅延時間を削減する事が可能である。
【００５２】
このＣ１０の回路は、図８のａ行の変換規則に従うと、図１３の回路（セレクタＳ５の制御入力Ｓの信号を反転）と論理的に同等である。この図１３の回路において、ＩＮ４→Ｓ５→Ｎ５→Ｓ６→ＯＵＴ１のパスの段数を削減する事は、実施例１の図１のＣ０の回路においてＩＮ３→Ｓ５→Ｎ５→Ｓ６→ＯＵＴ１のパスの段数を削減する事と同じである。このため、実施例１のＣ０→Ｃ１の回路変形に従うと、Ｃ１０の回路は、同じ論理機能を持ったＣ１１の回路に変形可能であり、ＩＮ４からＯＵＴ１に至るパスの段数を１段にまで削減する事が可能である。このように、本発明の論理回路を使用する事により、遅延時間を小さくする事が可能である。また、このＣ１１の回路で、セレクタＳ１１は図６のａ行のセレクタＳ３００に該当するため、実施例１の場合と同様にＮＡＮＤゲートに変換すると、図１０のＣ１２の回路になる。さらに、このＣ１２の回路も、実施例１の場合と同様に差動型回路（図１０のＣ１３）で組み直す事で高速化可能である。特に、この図１０のＣ１３の場合には、差動型回路で構成する事により、Ｃ１２の回路ではインバータを１段挿入してＩＮ２の反転信号を作る必要があったものが、不要になる。このため、インバータの遅延時間分だけ高速化する事ができる。
【００５３】
次に、図１のｃ行に示すＣ２０の回路のように、今度は、前段のセレクタ（Ｓ２５）では入力Ｉ１、後段のセレクタ（Ｓ２６）では入力Ｉ０が遅延時間を削減したいパス（ＩＮ３→Ｓ２５→Ｎ２５→Ｓ２６→ＯＵＴ１）である場合を考える。このような場合にも、このＣ２０の回路のセレクタＳ２６の制御入力ＩＮ１を反転すれば、実施例１の本発明の論理回路を適用する事が可能であり、図１のｃ行に示すＣ２１の回路に変換する事が可能である。ＩＮ３からＯＵＴ１に至るパスの段数が小さい、本発明のＣ２１の回路を使用する事により、遅延時間を削減する事が可能となる。このＣ２１の回路を、図３のＣ１００に示すセレクタで構成した場合のトランジスタレベルの回路図は、図５のａ行のＣ１４０に示す、トランジスタＴＮ１４０〜ＴＮ１５０およびＴＰ１４０〜ＴＰ１５０に示す回路になる。また、同じ回路を今度は図３のＣ２００に示す差動型セレクタで構成したとすると、図５のｂ行のＣ２４０に示す、トランジスタＴＮ２４０〜ＴＮ２５４およびＴＰ２４０〜ＴＰ２５４に示す回路になる。なお、このＣ２１の回路でも、セレクタＳ２１が図６のａ行のセレクタＳ３００に該当するので、ＣＭＯＳゲートに変換する事が可能である（図１０のｃ行のＣ２２）。また、差動型回路（図１０のｃ行のＣ２３）にする事により、さらに遅延時間を小さくする事が可能である。
【００５４】
さらに、図１のｄ行に示すＣ３０の回路のように、今度は、前段のセレクタ（Ｓ２５）および後段のセレクタ（Ｓ２６）とも入力Ｉ０が遅延時間を削減したいパス（ＩＮ４→Ｓ２５→Ｎ２５→Ｓ２６→ＯＵＴ１）である場合を考える。このような場合にも、Ｃ２０の回路でＩＮ２が反転されている場合と考えれば、図１のｄ行のＣ３１の回路に変換する事が可能であり、ＩＮ４からＯＵＴ１に至るパスをこれまでと同様にセレクタ１段にまで削減する事が可能である。このＣ３１の回路でも、セレクタＳ３１が図６のａ行のセレクタＳ３００に該当するので、ＣＭＯＳゲートに変換する事が可能である（図１０のｄ行のＣ３２）。また、差動型回路（図１０のｄ行のＣ３３）にする事により、さらに遅延時間を小さくする事が可能である。
【００５５】
以上に説明したように、セレクタが２段接続されている回路で、前段および後段のセレクタの入力Ｉ０あるいはＩ１が遅延時間を削減したいパスになっている場合（図１のａ〜ｄ行）には、本発明の論理回路（Ｃ１、Ｃ１１、Ｃ２１、Ｃ３１）を使用する事により、クリィティカルパスの段数が削減でき、遅延時間を削減する事が可能である。
＜実施例２＞
本実施例では、実施例１の場合と違って、図２のａ行のＣ４０に示すように、前段のセレクタ（Ｓ４５）では制御入力Ｓ、後段のセレクタ（Ｓ４６）では入力Ｉ１が遅延時間を削減したいパス（ＩＮ２→Ｓ４５→Ｎ４５→Ｓ４６→ＯＵＴ１）である場合を考える。このような場合には、Ｃ４０の回路と同等の論理機能を持った、図２のＣ４１に示す本発明の論理回路を使用すれば、ＩＮ２からＯＵＴ１に至るパスの段数をセレクタＳ４３のみの１段にまで削減する事が可能であり、遅延時間も小さくする事が可能である。なお、このＣ４０とＣ４１の回路が、全く同じ論理機能を持った回路である事は、次のように、それぞれのブール式が同じ形になる事で証明される。Ｃ４０のブール式は、
0003701781.tif 000004
となる。この式(E40)を、IN2に関してシャノン展開の公式（例えば、IEEE TRANSACTIONS ON COMPUTERS, Vol. C-27, No. 6, pp.509-516参照、以下、文献８と略す）に基づいて変形すると、
0003701781.tif 000005
となり、これはＣ４１の回路をブール式で表現したものと一致する。このように、Ｃ４０の回路で、ＩＮ２からＯＵＴ１に至るパスがクリィティカルパスである場合には、Ｃ４０の代わりに、それと全く同じ論理機能を持った本発明のＣ４１の回路を使用する事により、クリィティカルパスの段数を削減する事ができ、遅延時間を小さくする事が可能である。
【００５６】
次に、図２のｂ行のＣ５０に示すように、今度は、後段のセレクタ（Ｓ４６）では入力Ｉ０がクリィティカルパス（ＩＮ２→Ｓ５５→Ｎ５５→Ｓ５６→ＯＵＴ１）である場合を考える。この場合には、Ｃ４０の回路でＩＮ１が反転している場合に相当するので、図２のｂ行のＣ５１に示す回路によりパスの段数を削減する事が可能である。このように、この場合も本発明の回路により、遅延時間を小さくする事ができる。
【００５７】
なお、本実施例の回路（Ｃ４１、Ｃ５１）でも、実施例１の場合と同様に、図６のａ〜ｄ行のセレクタＳ３００〜Ｓ３３０に該当するセレクタが存在する場合には、そのセレクタをＣＭＯＳゲートに変更して回路を構成する事も可能である。また、差動型回路で構成する事により、さらに遅延時間を削減する事が可能である。
【００５８】
以上に説明したように、セレクタが２段接続されている回路で、前段のセレクタでは制御
入力Ｓ、後段のセレクタでは信号入力Ｉ０あるいはＩ１が遅延時間を削減したいパスになっている場合についても、本発明の論理回路（Ｃ４１、Ｃ５１）を使用する事により、クリィティカルパスの段数を削減する事が可能であり、遅延時間を削減する事が可能である。
＜実施例３＞
本実施例では、実施例１、２の場合と違って、図２のｃ行のＣ６０に示すように、前段のセレクタ（Ｓ６５）および後段のセレクタ（Ｓ６６）とも、制御入力Ｓが遅延時間を削減したいパス（ＩＮ１→Ｓ６５→Ｎ６５→Ｓ６６→ＯＵＴ１）になっている場合を考える。このような場合には、Ｃ６０の回路と同等の論理機能を持った、図２のｃ行のＣ６１に示す本発明の論理回路を使用すれば、目的のパスを、ＩＮ１→Ｓ６３→ＯＵＴ１の１段に削減する事が可能であり、この結果、回路全体で見た時の遅延時間を小さくする事が可能である。なお、Ｃ６０とＣ６１の回路が、論理的に同等である事は、実施例２の場合と同様に文献８に紹介されているシャノン展開を利用する事により以下のように証明される。Ｃ６０のブール式は、
0003701781.tif 000006
0)
となるが、式(E60)を、IN1に関してシャノン展開すると、
0003701781.tif 000007
となり、これはＣ６１の回路をブール式で表現したものと一致する。
【００５９】
このように、セレクタが２段接続されている回路で、前段および後段のセレクタともに、制御入力Ｓが遅延時間を削減したいパスになっている場合にも、本発明の論理回路（Ｃ６１）を使用する事により、パスの段数を削減する事が可能であり、遅延時間を削減する事が可能である。
＜実施例４＞
本実施例では、実施例１〜３の場合と違って、図２のｄ行のＣ７０に示すように、前段のセレクタ（Ｓ７５）では入力Ｉ１、後段のセレクタ（Ｓ７６）では制御入力Ｓが遅延時間を削減したいパス（ＩＮ２→Ｓ７５→Ｎ７５→Ｓ７６→ＯＵＴ１）になっている場合を考える。
【００６０】
このような場合には、図２のｃ行のＣ７１に示す、本発明の論理回路を使用すればよい。この本発明のＣ７１の回路と元のＣ７０の回路を比較すると、目的とするＩＮ２からＯＵＴ１に至るパスは２段→１段に段数が削減されているのであるが、他のパス、例えばＩＮ４からＯＵＴ１に至るパスは、１段→３段となり、段数が増加してしまっている。しかし、入力信号ＩＮ２が他の入力信号よりも極端に遅れてくる場合には、ＩＮ２からの段数が大幅に削減されたおかげで、この回路全体で見た時の遅延時間を小さくする事が可能である。    なお、このＣ７０とＣ７１の回路が、論理的に同等である事は、実施例２、３の場合と同様に、シャノン展開を利用する事により、以下のように証明される。Ｃ７０のブール式は、  OUT1 = N75・IN4 + N75'・IN5
= (IN1・IN2 + IN1'・IN3)・IN4 + (IN1・IN2 + IN1'・IN3)'・IN5  (E70)
となるが、式(E70)を、IN2に関してシャノン展開すると、
0003701781.tif 000008
となり、これはＣ７１の回路をブール式で表現したものと一致する。
【００６１】
次に、図２のｅ行のＣ８０に示すように、Ｃ７０の場合とは違って、今度は、前段のセレクタ（Ｓ７５）では入力Ｉ０が遅延時間を削減したいパス（ＩＮ３→Ｓ７５→Ｓ７６→ＯＵＴ１）である場合を考える。この場合は、Ｃ７０の回路でＩＮ１が反転している場合に相当するので、Ｃ８０の回路は図２のｅ行のＣ８１に示す回路に置き換える事が可能であり、目的のパスをＩＮ３→ＯＵＴ１の１段にまで削減する事が可能である。このように、この場合も本発明の論理回路により、クリィティカルパスの段数を削減する事ができ、遅延時間を小さくする事ができる。
【００６２】
このように、セレクタが２段接続されている回路で、前段のセレクタでは入力Ｉ１あるいはＩ０、後段のセレクタでは制御入力Ｓがクリィティカルパスになっている場合にも、本発明の論理回路（Ｃ７１、Ｃ８１）を使用する事により、パスの段数を削減する事が可能であり、遅延時間を削減する事が可能である。
＜実施例５＞
以上の実施例１〜４では、簡単な論理回路を例にして、本発明の論理回路（Ｃ１，Ｃ１１，Ｃ２１，Ｃ３１，Ｃ４１，Ｃ５１，Ｃ６１，Ｃ７１，Ｃ８１）を使用する事により、セレクタが２段接続された回路では、どのようなパスでも段数を削減する事が可能であり、遅延時間を小さくする事ができる事を示した。つまり、セレクタのみで構成された回路ならば、どのようなパスがクリィティカルパスであろうと、回路を２段単位のセレクタ回路に分割して本発明の論理回路に置き換える事により、クリィティカルパスの段数を削減する事が可能であり、遅延時間を削減する事が可能である。さらに、ＣＭＯＳ論理回路であっても、一旦、それと論理的に同等なセレクタ回路に置き換え、セレクタ２段単位で、本発明の論理回路に置き換えていく事により、遅延時間の小さい論理回路に作り直す事ができる。以下、本実施例では、図１４に示す計算機システムにより、より複雑な論理回路に対して、本発明の論理回路を使用して遅延時間を改善する方法を説明する。
【００６３】
（１）システムの全体構成
図１５は、本発明の論理回路を使用した遅延時間改善プログラム１００の概略構造とこのプログラムを実行するための計算機システムを示す。この計算機システムは、入力装置、例えば、キーボード１、中央処理装置（ＣＰＵ）２、表示装置（ＣＲＴ）３、磁気テープ装置４および論理回路合成プログラム１００を格納する磁気ディスク装置５からなる。プログラム１００は、セレクタ回路変換ルーチン１１０、セレクタを使用した遅延時間改善ルーチン１２０、ＣＭＯＳセル再マッピングルーチン１３０から構成される。このプログラムは、設計者がキーボード１から指示を与える事により、磁気ディスク装置５からＣＰＵ２にロードされて、実行される。遅延時間の改善度合いはＣＲＴ３上に表示され、生成された遅延時間改善終了論理回路は磁気テープ装置４等を経由して図１５の自動レイアウトプログラム１６０に渡される。
【００６４】
図１４において、設計者は論理回路仕様９を入力する。この論理回路仕様９には、目的とする論理回路の論理機能を記述した論理関数と、その論理回路の入力信号はどれくらい遅れて入力され、それに対して出力信号はこのくらいの遅延時間でないといけないといった遅延時間制約等の情報も含まれる。論理回路自動合成プログラム９０は、この論理回路仕様９から、ライブラリ１１を参照して論理回路１０を生成する。この論理回路１０には、セル間の結線関係を記述したネットリストと、前述した遅延時間制約情報が記述されている。本実施例に特有のセレクタを使用した遅延時間改善プログラム１００は、論理回路１０に記載されている情報から、ライブラリ１１を参照して、遅延時間制約を満たすように、論理回路１０と同じ論理機能を持った遅延時間改善終了論理回路１２を出力する。自動レイアウトプログラム１６０はライブラリ１１を参照して、この論理回路に最適なレイアウトを決定し、レイアウトデータ２０を作成する。マスクデータ作成プログラム１７０は、レイアウトデータ２０に従って、上記合成された論理回路を半導体集積回路技術を使用して生成するための複数のマスクパターンを決め、それらのマスクパターンを表すマスクデータ２１を生成する。半導体製造装置１８０は、マスクデータ２１を用いて目的の論理機能を持った半導体集積回路を製造する。９０、１００、１６０、１７０の各プログラムは、それぞれに割り当てられた異なる計算機上で実行される。もちろん、これらのプログラムを同じ計算機上で実行させる事もできる。なお、この論理回路自動合成プログラム、自動レイアウトプログラムおよびはマスクデータ作成プログラムは既存のツールで実現される。
【００６５】
本実施例では、入力された論理回路を、それと論理的に同等なセレクタ回路に置き換えた後に、クリティカルパス上の回路を、セレクタ２段単位で、本発明の論理回路に置き換えて行く事により、遅延時間を改善して行く点に特徴がある。以下、図１８に示す論理回路を例にして本実施例のそれぞれのルーチンについて説明する。なお、この図１８の論理回路で、入力信号Ａ〜Ｈの遅れは０ns（＝遅れなし）とし、出力信号ｏｕｔの制約は０ns、つまり、できうる限り小さい遅延時間で出力せよというものであるとする。
【００６６】
（２）セレクタ回路変換ルーチン１１０
このルーチン１１０は、論理回路１０から、図９に示した変換パターンに基づいて、それと全く同じ論理機能を持ったセレクタ回路だけで構成した論理回路を生成する。例えば、図１８の論理回路の場合には、Ｇ５００、Ｇ５０２、Ｇ５０４、Ｇ５０６の２入力ＡＮＤゲートは、図９のａ行の変換パターンに該当し、残りのＧ５０１、Ｇ５０３、Ｇ５０５の２入力ＯＲゲートは図９のｄ行の変換パターンに該当するため、図１９に示すセレクタだけで構成した論理回路に変換される。
【００６７】
（３）セレクタを使用した遅延時間改善ルーチン１２０
このルーチンは、実施例１〜４で説明した本発明の論理回路を使用して、（２）のセレクタ回路変換ルーチン１１０で生成された論理回路を順次部分的に組み直して、目的の遅延時間制約を満たすように与えられた論理回路を変形して行く。
【００６８】
まず、与えられた論理回路について、順方向遅延時間および逆方向遅延時間を計算するのであるが、ここでは簡単な図１７の回路を例にして順方向遅延時間と逆方向遅延時間について説明する。さらに、説明の簡単化のために、図１７の回路において、ＡＮＤゲートＧ４００，Ｇ４０１，Ｇ４０２の２本の入力端子から出力端子までの遅延時間は１nsであるとする。
【００６９】
順方向遅延時間は、図１７のＥ４００の１式に示されるように、入力信号の遅れにパス上に存在する各セルの遅延時間を加えたもので定義される。つまり、信号がそのノードまで伝播してくるのにかかる時間に対応する。例えば、図１７の回路で、ノードＮ４００では、入力ＩＮ３およびＩＮ４の遅れ（０ns）＋セルＧ４００の遅延時間（１ns）＝１ns、が信号が伝播するために必要な時間であるので、この順方向遅延時間は１nsになる。また、ノードＮ４０１について考えると、このノードの順方向遅延時間は、ノードＮ４００の順方向遅延時間（１ns）にセルＧ４０１の遅延時間（１ns）を加えた時間（２ns）と、ノードＮ４０５の順方向遅延時間（０ns）にセルＧ４０１の遅延時間（１ns）を加えた時間（１ns）のうち、遅延時間の遅い方であるので、２nsになる。
【００７０】
一方、逆方向遅延時間は、図１７のＥ４００の２式に示されるように、出力信号の制約から、パス上に存在する各セルの遅延時間を順次引いていったもので定義される。つまり、制約通りの遅延時間で出力信号が確定しているために要求される、各ノードでの遅延時間に対応する。例えば、図１７の回路では、出力ＯＵＴが制約通りの２nsの遅延時間で確定するためには、ノードＮ４０１は、それよりもセルＧ４０２内の遅延時間（１ns）分だけ速い、遅延時間１nsで信号が伝播してなくてはならないので、このノードＮ４０１の逆方向遅延時間は１nsになる。また、ノードＮ４００については、ノードＮ４０１の逆方向遅延時間（１ns）よりも、さらに、セルＧ４０１の遅延時間（１ns）分だけ速く信号が確定していなければならないため、このノードの逆方向遅延時間は０nsになる。
【００７１】
このように、処理１２１で順方向遅延時間および逆方向遅延時間を計算した後に、次の処理１２２において、それらの値からスラックを計算する。スラックとは、図１７のＥ４００の３式に示されるように、逆方向遅延時間から順方向遅延時間を引いたもので定義する。この図１７の回路で、各ノードのスラックを求めると、
Ｎ４００  ：  ０ns - １ns = -１ns
Ｎ４０１  ：  １ns - ２ns = -１ns
Ｎ４０２  ：  ２ns - ３ns = -１ns
Ｎ４０３  ：  -１ns - ０ns = -１ns
Ｎ４０４  ：  -１ns - ０ns = -１ns
Ｎ４０５  ：  ０ns - ０ns = ０ns
Ｎ４０６  ：  １ns - ０ns = +１ns
となる。前述したように、逆方向遅延時間は、制約通りの遅延時間で出力信号が確定するために必要な、そのノードでの信号の遅延時間に対応する。また、順方向遅延時間はそのノードに実際に信号が伝播してくるまでの時間に対応する。つまり、ノードのスラックが正の値であれば、制約を満たすために要求される遅延時間よりも、実際にはそれよりも小さい遅延時間で信号が伝播している事に対応する。このため、スラックが正の値ならば、そのノードに信号が到達するまでの遅延時間はもっと遅れてもよい事を意味する。逆に、ノードのスラックが負の値であれば、制約を満たすために要求される遅延時間よりも、実際には遅れて信号が伝播してくる事に対応するため、そのノードに至るパスの遅延時間を短縮しない限り、制約通りの遅延時間で回路が動作できない事を意味する。このように、逆方向遅延時間と順方向遅延時間の差でスラックを定義して、回路の全ノードでのスラックを計算する事により、どの部分が回路全体での高速動作に妨げになっているかが一目瞭然になる。また、これにより、どの部分を組み直せば回路全体の遅延時間を小さくできるかもわかるようになる。例えば、この図１７の回路では、スラックが-１nsである、Ｎ４０３→Ｇ４００→Ｎ４００→Ｇ４０１→Ｎ４０１→Ｇ４０２→Ｎ４０２というパスが、この回路の遅延時間を決定するクリティカルパスであり、このパスの遅延時間を改善しない限り、回路全体で見た時の遅延時間は改善されない。この事はこの図１７のような簡単な論理回路ではあまり意味をなさないが、人間の目では手におえないような、論理回路自動合成ツール等により合成された複雑な論理回路の場合には大変重要な意味を持つ。
【００７２】
次に処理１２３において、このようして計算した各ノードのスラックから各セルのホールを計算する。セルのホールとは、図１７のＥ４００の４式に示されるように、各入力端子が接続されているノードのスラックに対して、入力端子間のスラックの差を求め、そのうち最も差が小さいもので定義する。前述したように、スラックは、ノード毎の遅延時間についての余裕に対応するため、ホールの値が大きいセルというのは、複数ある入力端子のうち、ある１本だけ遅延時間が他の入力よりも大幅に遅れているという事を意味している。つまり、他の入力端子からの遅延時間を犠牲にしてでも、その１本だけ大幅遅い入力端子からの遅延時間を短縮する事ができれば、他の入力端子からの遅延時間には余裕があるため、回路全体の遅延時間を悪化させる事なしに、回路全体での遅延時間を短縮する事ができるという事を意味する。実施例１〜４で説明したように、本発明の論理回路を使用して回路を組み直すと、目的とするクリティカルパスの段数を確実に削減でき、遅延時間も確実に小さくできるのであるが、それ以外のパスでは逆に段数が増えてしまって遅延時間が悪化してしまう場合がある。しかし、ここで説明したように、ホールの大きい部分では、１本のパスだけが遅延時間が大幅に他に比べて遅いため、その１本のパスの遅延時間を短縮する事ができれば、他のパスの遅延時間が多少悪化してしまっても、回路全体の遅延時間は確実に小さくできる事が保証される。つまり、ホールの大きなセルを見つけて、そこを、本発明の論理回路で組み直せば、回路全体で見た時の遅延時間を小さくする事が可能なのである。
【００７３】
この図１７の回路の例で、各セルのホールを計算すると、
Ｇ４００  ：  ０ns    （Ｎ４０３とＮ４０４のスラックの差）
Ｇ４０１  ：  １ns    （Ｎ４００とＮ４０５のスラックの差）
Ｇ４０２  ：  ２ns    （Ｎ４００とＮ４０５のスラックの差）
となる。つまり、この図１７の回路では、セルＧ４０２、Ｇ４０１にはホールが存在し、このＧ４０２およびＧ４０１から構成される部分の回路をうまく組み直す事できれば、より高速に動作できる回路に変形する事が可能である。
【００７４】
以上では、簡単のため図１７の回路を例にして、スラックおよびホールについて説明したが、この事は図１８の回路をセレクタ回路変換して得られた図１９の回路でも全く同様である。この図１９の回路で、セレクタの制御入力Ｓおよび入力Ｉ０、Ｉ１から出力Ｏまでの遅延時間が一律0.2nsであるとすると、この図１９の回路の遅延時間は1.4nsで、クリティカルパスは、Ａ→Ｓ５００→Ｓ５０１→Ｓ５０２→Ｓ５０３→Ｓ５０４→Ｓ５０５→Ｓ５０６→ｏｕｔ（セレクタ７段）である。次に各セルのホールを計算すると、
Ｓ５００  ：  0ns
Ｓ５０１  ：  0.2ns
Ｓ５０２  ：  0.4ns
Ｓ５０３  ：  0.6ns
Ｓ５０４  ：  0.8ns
Ｓ５０５  ：  1.0ns
Ｓ５０６  ：  1.2ns
となる。このように、Ｓ５０５およびＳ５０６がホールがもっとも大きいセルであるので、このＳ５０５およびＳ５０６から構成される部分を、本発明の論理回路に置き換えれば確実に遅延時間を小さくする事が可能である。実際、この部分は、前段のセレクタ（Ｓ５０５）では入力Ｉ０、後段のセレクタ（Ｓ５０６）では入力Ｉ１がクリティカルパスであり、図１のｂ行のＣ１０に相当するので、図１１のｂ行のＣ１１に示す本発明の論理回路に置き換えると、図２０の回路が得られる。この図２０の回路において、セレクタＳ５１０、Ｓ５１０およびＳ５１２が、図１９のセレクタＳ５０５およびＳ５０６から置き換えられたセレクタである。このうち、Ｓ５１０は図８のｃ行に相当する冗長なセレクタであるため、取り除く事が可能であり、図２１の回路に簡単化できる。この図２１の回路では、クリティカルパスは Ａ→Ｓ５００→Ｓ５０１→Ｓ５０２→Ｓ５０３→Ｓ５０４→Ｓ５１１→ｏｕｔで、図１９の回路より１段少ないセレクタ６段であり、遅延時間は1.2nsである。つまり、図１９の回路よりも遅延時間は0.2ns（セレクタ１段分）短縮されている。さらに、この図２１の回路で、ホールの存在するセル、Ｓ５０３およびＳ５０４、Ｓ５０１およびＳ５０２を、同様の手順で本発明の論理回路に置き換えると、図２２に示す回路が得られる。この図２２の回路では、クリティカルパスは、Ａ→Ｓ５００→Ｓ５１５→Ｓ５１３→Ｓ５１１→ｏｕｔで、図２１の回路よりもさらに２段少ないセレクタ４段であり、遅延時間も0.4ns小さい、0.8nsにまで短縮されている。
【００７５】
さらに、この図２２の回路において、ホールの存在するＳ５１３およびＳ５１１について同様の手順で回路を組み直すと、最終的には図２３に示す回路が得られる。この図２３の回路では、クリティカルパスは、Ｇ→Ｉ５１０→Ｓ５１２→Ｓ５１７→Ｓ５１８→ｏｕｔ（あるいはＣ→Ｉ５１２→Ｓ５１６→Ｓ５１５→Ｓ５１８→ｏｕｔ 、 Ｅ→Ｉ５１１→Ｓ５１４→Ｓ５１９→Ｓ５１８→ｏｕｔ ）であり、インバータ１段、セレクタ３段にまで短縮されている。インバータの遅延時間を0.1nsであるとすると、この図２２の回路の遅延時間は0.9nsである。
【００７６】
（４）ＣＭＯＳセル再マッピングルーチン１３０
このルーチンでは、図６のａ〜ｄ行に該当するセレクタを、 ＣＭＯＳ回路で構成したＮＡＮＤゲートあるいはＮＯＲゲート等に置き換える事により、回路の遅延時間をさらに改善する。また、必要に応じてセレクタを図３のｂ行のＣ２００およびＣ２０１等で示す差動型回路で組み直す事により、さらに遅延時間を改善する。
【００７７】
（３）の遅延時間改善ルーチンで得られた図２３の回路で、セレクタＳ５１２、Ｓ５００、Ｓ５１６、Ｓ５１４およびＳ５１９は、図６のａ行に該当する。このため、これらのセレクタを、ＣＭＯＳ回路で構成したＡＮＤゲートに変換する事が可能であり、図２４の回路が得られる。この図２４の回路において、ＡＮＤゲートＧ５１４およびＧ５１９を、１つの３入力ＡＮＤゲートにまとめる事により、遅延時間を小さくする事が可能である（図２５のＧ５２１）。また、この図２４の回路で、セレクタの制御入力Ｓを駆動しているＡＮＤゲート（Ｇ５１６、Ｇ５１９）を、ＮＡＮＤゲート＋インバータと考えると、図８のａ行に示すように、制御入力Ｓを駆動するインバータは取り除く事が可能であるので、これらのＡＮＤゲートはＮＡＮＤゲートに置き換える事が可能である（図２５のＧ５２０、Ｇ５２１）。一般に、ＣＭＯＳ回路ではＡＮＤゲートは、ＮＡＮＤゲート＋インバータで構成されるため、ＮＡＮＤゲートの方がインバータ１段分だけ遅延時間が小さい。このようにして図２４の回路を図２５の回路に変形する事により、さらに遅延時間を小さくする事が可能である。また、図２５の回路を差動型回路で構成しなおすと、最終的には差動型セレクタＤＳ５１５、ＤＳ５１７、ＤＳ５１８、ＣＭＯＳゲートＧ５００Ｐ、Ｇ５００Ｎ、Ｇ５２０Ｐ、Ｇ５２０Ｎ、Ｇ５１６Ｐ、Ｇ５１６Ｎ、Ｇ５２１Ｐ、Ｇ５２１Ｎから構成される図２６に示す回路が得られる。
【００７８】
【表１】
0003701781.tif 000009
【００７９】
表１は本発明による遅延時間改善後の回路と元の回路のクリティカルパスの段数および遅延時間を比較した表である。表１に示すように、本方法により遅延時間を改善した回路（図２６）は、元の回路ではクリティカルパスの段数が７段であったのに対し、３段にまで段数を削減している事に成功しており、また、遅延時間についても1.59nsから、0.51nsにまで削減する事に成功している。このように、本実施例で説明した図１６の遅延時間改善プログラムを使用する事により、遅延時間を確実に改善できる事がわかる。また、この図２６の回路から、この例のようにすべての入力信号の遅れが全く同じ場合には、各入力信号から出力信号に至るパスの段数はすべて同じ３段になり、非常にバランスの取れた回路が出来上がる事がわかる。
【００８０】
本実施例では、簡単のためにすべての入力信号の遅れは０nsであるという仮定の下に説明をしてきたが、ある特定の入力信号が遅れてくるような場合についても全く同様である。このような場合には、入力信号の遅れの分は、スラックおよびホールの値に反映される。そのため、信号が遅れてくる入力に関係するパスは段数が浅くなるように、回路が変形されて行き、回路全体で見た時の遅延時間が削減される。
【００８１】
また、以上では、ＣＭＯＳセルに再マッピングされるセレクタを、図６のａ〜d行の４種類のセレクタに限定してきた。図２３の回路からわかるように、本発明の論理回路を使用した遅延時間改善法により、回路の段数は大幅に削減される（７段→３段）。このため、たとえ、すべてのセレクタをＣＭＯＳセルにマッピングし直したとしても、元の回路よりも段数が短く、遅延時間が小さい論理回路を得る事が可能である。
【００８２】
＜実施例６＞
実施例５では、比較的簡単な論理回路（図１８、セル数：７）を例にして、本発明により、遅延時間を確実に小さくする事ができる事を示したのであるが、本実施例では、より大規模な論理回路に対しても本発明が有効である事を示す。
【００８３】
【表２】
0003701781.tif 000010
【００８４】
表２は実際の大規模な論理回路に対して、本発明による遅延時間改善後の回路と元の回路のセル数、面積、最大制約違反および制約違反パス数を比較した表である。大規模な論理回路（セル数：９７１２）に対して、実際に図１４に示した計算機システムを使用して、本発明を適用して遅延時間を改善した。この表に示されるように、セル数および面積は１０％程度増加してしまう。しかし、本発明を適用する前には、遅延時間が制約よりも遅く、制約違反を起こしているパスが全部で１３２１本存在し、しかも最大で1.42ns違反していたものが、本発明の論理回路を使用して遅延時間を改善する事により、制約違反パス数は２５８本、最大制約違反は0.98nsにまで削減する事に成功している。
【００８５】
図２７は違反パスの分布を本発明の適用前後で比較したものである。この表からわかるように、本発明を適用する事により、制約違反1.0ns以上のパスは一掃されている。また、制約違反0.2ns以下のパスも大幅に減っている事から、すべてパスの遅延時間を確実に小さくできている事がわかる。
【００８６】
図２８は本発明の適用前後でセルのホールの分布を比較したものである。図１６で示した本発明による遅延時間改善法では、新たに定義したホールという量を目安にして、ホールのある部分の回路を、本発明のセレクタベースの組み直して行く事により遅延時間を改善して行く。この際、組み直された後の回路では、クリティカルパスについては確実に遅延時間が短縮されるのであるが、それ以外のパスでは遅延時間が悪化するパスも存在する。
【００８７】
言い換えると、ホールを利用して回路全体で見た時の遅延時間を改善して行くのであるが、この図２８からわかるように、本発明適用前ではホールの分布のピークが4.0ns付近にあったものが、本発明適用後には、ピークが3.4ns付近に移動しており、確かにホールを利用して、回路全体で見た時の遅延時間を改善している事がわかる。
【００８８】
以上の結果からわかるように、本発明の論理回路を使用した遅延時間改善法は、実際の大規模な論理回路に対しても、非常に有効である事がわかる。
【００８９】
【発明の効果】
以上に示した実施例からわかるように、本発明の論理回路を使用して回路を組み直して行く事により、論理回路の各々のパスの段数がなるべく同じになるようにして、遅延時間が極端に遅いクリィティカルパスが存在しない論理回路を作成する事が可能であり、その結果、高速に動作可能な論理回路を提供する事が可能になる。
【００９０】
また、特定の入力信号が遅れてくる場合にも、本発明の論理回路を使用して回路を組み直して行く事により、その遅れによる遅延時間の増加分を考慮して、その入力信号に関係するパスは段数が浅くなるようにして論理回路を作成する事が可能であり、その結果、高速に動作可能な論理回路を提供する事が可能になる。
【図面の簡単な説明】
【図１】本発明の望ましい実施形態。
【図２】本発明の他の望ましい実施形態。
【図３】セレクタ回路のトランジスタレベルの回路図。
【図４】本発明の他の望ましい実施形態。
【図５】本発明の他の望ましい実施形態。
【図６】ＮＡＮＤゲート、ＮＯＲゲート、インバータに変換されるセレクタのパターンと、その変換ルールを示す図。
【図７】図１のＣ１の本発明の論理回路において、セレクタＳ１を、図６のａ行の変換パターンに従って、ＮＡＮＤゲート＋インバータに置き換えた回路。
【図８】冗長なセレクタを示した図。
【図９】ＮＡＮＤゲート、ＮＯＲゲート、インバータを差動型回路で構成した例を示す図。
【図１０】図１のＣ１、Ｃ１１、Ｃ２１、Ｃ３１に示す本発明の論理回路を、図６の変換ルールに従って一部セレクタをＣＭＯＳゲートに置き換えた場合の回路と、それらの回路を差動型回路で構成した場合の回路。
【図１１】図１０のａ行に示した本発明の論理回路Ｃ２およびＣ３のトランジスタレベルの回路図。
【図１２】図１０のａ行のＣ２およびＣ３に示した本発明の論理回路において、入力信号ＩＮ５がＧＮＤ固定、ＩＮ４がＶＤＤ固定である場合に、冗長なセレクタを取り除いた後の回路図。
【図１３】図１のｂ行のＣ０の回路でセレクタＳ５の制御入力Ｓを入力信号ＩＮ２の反転信号に接続させた場合の回路図。
【図１４】本発明の第５の実施例による、セレクタを使用した遅延時間改善プログラムの概略とそれを実行するための計算機システムを示す図。
【図１５】本発明の論理回路を使用した遅延時間改善プログラムを使用して、論理回路仕様から半導体集積回路を製造するまでのフロチャートを示した図。
【図１６】本発明の論理回路を使用した遅延時間改善プログラムのフロチャートを示した図。
【図１７】本発明の第５の実施例による、順方向遅延時間、逆方向遅延時間、スラックおよびホールを説明するための図。
【図１８】図１６の本発明の論理回路を使用した遅延時間改善プログラムに入力される論理回路の例。
【図１９】図１６の本発明の論理回路を使用した遅延時間改善プログラムのセレクタ回路変換ルーチンにより生成されるセレクタのみで構成した論理回路の回路図。
【図２０】図１６の本発明の論理回路を使用した遅延時間改善プログラムの遅延時間改善ルーチンの途中で生成される中間回路の回路図。
【図２１】図１６の本発明の論理回路を使用した遅延時間改善プログラムの遅延時間改善ルーチンの途中で生成される中間回路の回路図。
【図２２】図１６の本発明の論理回路を使用した遅延時間改善プログラムの遅延時間改善ルーチンの途中で生成される中間回路の回路図。
【図２３】図１６の本発明の論理回路を使用した遅延時間改善プログラムの遅延時間改善ルーチンで最終的に出力される回路の回路図。
【図２４】図１６の本発明の論理回路を使用した遅延時間改善プログラムのＣＭＯＳセル再マッピングルーチンの途中で生成される回路の回路図。
【図２５】図１６の本発明の論理回路を使用した遅延時間改善プログラムのＣＭＯＳセル再マッピングルーチンで最終的に出力される回路の回路図。
【図２６】図１６の本発明の論理回路を使用した遅延時間改善プログラムのＣＭＯＳセル再マッピングルーチンで最終的に出力される回路（差動型セレクタ使用）の回路図。
【図２７】実際の大規模な論理回路に対して、図１６の本発明の論理回路を使用した遅延時間改善プログラムの適用前後の、制約違反パス数を比較した図。
【図２８】実際の大規模な論理回路に対して、図１６の本発明の論理回路を使用した遅延時間改善プログラムの適用前後の、セルのホールの分布を比較した図。
【図１】
0003701781.tif 000011
【図２】
0003701781.tif 000012
【図３】
0003701781.tif 000013
【図４】
0003701781.tif 000014
【図５】
0003701781.tif 000015
【図６】
0003701781.tif 000016
【図７】
0003701781.tif 000017
【図８】
0003701781.tif 000018
【図９】
0003701781.tif 000019
【図１０】
0003701781.tif 000020
【図１１】
0003701781.tif 000021
【図１２】
0003701781.tif 000022
【図１３】
0003701781.tif 000023
【図１４】
0003701781.tif 000024
【図１５】
0003701781.tif 000025
【図１６】
0003701781.tif 000026
【図１７】
0003701781.tif 000027
【図１８】
0003701781.tif 000028
【図１９】
0003701781.tif 000029
【図２０】
0003701781.tif 000030
【図２１】
0003701781.tif 000031
【図２２】
0003701781.tif 000032
【図２３】
0003701781.tif 000033
【図２４】
0003701781.tif 000034
【図２５】
0003701781.tif 000035
【図２６】
0003701781.tif 000036
【図２７】
0003701781.tif 000037
【図２８】
0003701781.tif 000038