(57)【要約】【課題】データパス論理はもちろん、レイアウト面積を増大させることなく、ランダム論理も簡単に実現することができるパス・トランジスタ論理回路の設計方法を提供する。【解決手段】ＢＤＤの各レベルについて、同一レベル内に含まれる全ての変数ノードに対応する第１および第２のＭＯＳトランジスタを水平方向に並べ、かつＢＤＤのレベル毎に垂直方向に縦積みする構造として、パス・トランジスタ論理回路のセルのレイアウトを設計する。【選択図】図３
2004054550.tif 000002
【特許請求の範囲】
【請求項１】
論理関数から作成されたＢＤＤの形状に基づいて、前記ＢＤＤの各入力変数に対応する変数ノードの‘１’および‘０’のエッジをそれぞれ第１および第２のＭＯＳトランジスタに置換し、
前記ＢＤＤの形状に基づいて、各々の前記変数ノードに対応する第１および第２のＭＯＳトランジスタの一方の端子同士を短絡し、
前記各入力変数とその反転信号をそれぞれ対応する第１および第２のＭＯＳトランジスタのゲートに入力し、
‘１’および‘０’の定数ノードをそれぞれ電源およびグランドに置換してパス・トランジスタ論理回路を生成することを特徴とするパス・トランジスタ論理回路の設計方法。
【請求項２】
前記変数ノードの‘１’および‘０’のエッジが共に前記定数ノードに接続されている場合、当該変数ノードの‘１’および‘０’のエッジを前記第１および第２のＭＯＳトランジスタに置換するのではなく、当該変数ノードに対応する入力変数またはその反転信号を、パス変数として、当該変数ノードに対応する出力に接続されている他の変数ノードの第１または第２のＭＯＳトランジスタの他方の端子に直接接続する請求項１に記載のパス・トランジスタ論理回路の設計方法。
【請求項３】
前記各入力変数を単位として決定される前記ＢＤＤのレベルを区切りとして、所定レベル毎に、前記変数ノードに対応する出力の電圧レベル回復用の中間バッファを挿入する請求項１または２に記載のパス・トランジスタ論理回路の設計方法。
【請求項４】
前記各入力変数を単位として決定される前記ＢＤＤのレベルを区切りとして、所定レベル毎に、前記変数ノードに対応する出力の電圧レベル回復用の中間インバータを挿入し、この中間インバータが挿入される出力ノードよりも下位のレベルの全ての変数ノードにおいて、前記定数ノードおよび前記パス変数の論理を反転させる請求項１または２に記載のパス・トランジスタ論理回路の設計方法。
【請求項５】
前記ＢＤＤの各レベルについて、同一レベル内に含まれる全ての前記変数ノードに対応する第１および第２のＭＯＳトランジスタを水平方向に並べ、かつ前記ＢＤＤのレベル毎に垂直方向に縦積みする構造として、請求項１〜４のいずれかに記載のパス・トランジスタ論理回路のセルのレイアウトを設計するパス・トランジスタの論理回路の設計方法。
【請求項６】
各々の前記変数ノードに対応する第１および第２のＭＯＳトランジスタは、各々の前記変数ノードに対応する出力に共通に接続される一方の端子の拡散領域が共有されたＭＯＳトランジスタである請求項５に記載のパス・トランジスタの論理回路の設計方法。
【請求項７】
前記ＢＤＤの上位の同一レベル内に含まれる第１の変数ノードに対応する第１および第２のＭＯＳトランジスタもしくは拡散領域が共有されたＭＯＳトランジスタ、および第２の変数ノードに対応する第１および第２のＭＯＳトランジスタもしくは拡散領域が共有されたＭＯＳトランジスタは、前記ＢＤＤの下位のレベルの第３の変数ノードに対応する出力に共通に接続される一方の端子の拡散領域が共有されたＭＯＳトランジスタである請求項５または６に記載のパス・トランジスタの論理回路の設計方法。
【請求項８】
前記ＢＤＤの各レベル内において、水平方向に並べられた全ての前記変数ノードに対応する第１および第２のＭＯＳトランジスタもしくは前記拡散領域が共有されたＭＯＳトランジスタの垂直方向の２辺を挟み込むようにして、対応する変数とその反転信号を各々対応する第１および第２のＭＯＳトランジスタもしくは拡散領域が共有されたＭＯＳトランジスタのゲートに共通に配線する請求項５〜７のいずれかに記載のパス・トランジスタの論理回路の設計方法。
【請求項９】
既存のＣＭＯＳ論理回路のレイアウトセルの高さに合わせて決定された前記パス・トランジスタ論理回路のレイアウトセルの高さに合わせて、前記ＢＤＤのレベルを、それぞれｎ個のレベルを含むｍ個のグループに分割し、それぞれの前記グループを１つのセルとしてレイアウトを設計する請求項５〜８のいずれかに記載のパス・トランジスタの論理回路の設計方法。
【請求項１０】
前記グループに含まれるレベルの個数がｎ個よりも少ない場合、当該グループに対応するセルのレイアウトの空きスペースに電圧レベル回復用回路を配置する請求項９に記載のパス・トランジスタの論理回路の設計方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、パス・トランジスタ論理回路の設計方法に関し、特にパス・トランジスタ論理回路のレイアウトの設計方法に関するものである。
【０００２】
【従来の技術】
ＬＳＩ（大規模集積回路）の設計において、トランジスタ数を削減することにより消費電力を削減し、処理速度を向上させる技術の１つとしてパス・トランジスタ論理回路が知られている。
【０００３】
パス・トランジスタ論理は、ＭＯＳトランジスタをリレースイッチとして用いる回路方式である。一般に、リレースイッチとしてｎＭＯＳトランジスタまたはｐＭＯＳトランジスタの一方のみを用いて論理を構成するため、ｐＭＯＳおよびｎＭＯＳが必ずペアで用いられるＣＭＯＳ論理と比べて少数のトランジスタで論理関数を実現できる場合が多いという利点がある。パス・トランジスタ論理を適用した例については、例えば「低電力ＬＳＩの技術白書（日経マイクロデバイス編、日経ＰＢ社、１９９４年）」に開示されている。
【０００４】
しかしながら、パス・トランジスタ論理が全ての論理関数に対してＣＭＯＳ論理よりも優れているわけではない。このため、パス・トランジスタ論理とＣＭＯＳ論理とを混在させて使用することにより、さらに回路特性が優れた回路を合成する手法が、例えば特開平１０−２００３９４号公報や、「ＣＭＯＳ／パス・トランジスタ論理の混在による低消費電力回路の合成（高田賢吾他、情報処理学会論文誌、２００１年４月）」等に開示されている。
【０００５】
パス・トランジスタ論理の合成方法は、従来より様々な手法が提案されている。中でも二分決定グラフ（Ｂｉｎａｒｙ　Ｄｅｃｉｓｉｏｎ　Ｄｉａｇｒａｍ：以下、ＢＤＤという）を用いた論理合成方法が公知の技術として知られている。また、セル・ライブラリを使用してパス・トランジスタ論理回路のレイアウト設計を行う手法が、「ＡＬＰＳ：　ａｎ　ａｕｔｏｍａｔｉｃ　ｌａｙｏｕｔｅｒ　ｆｏｒ　ｐａｓｓ−ｔｒａｎｓｉｓｔｏｒ　ｃｅｌｌ　ｓｙｎｔｈｅｓｉｓ（Ｓａｓａｋｉ他、ＡＳＰ　ＤＡＣ−９８）」、特開平９−３２１１４６号公報等に開示されている。
【０００６】
【発明が解決しようとする課題】
ところで、従来のパス・トランジスタ論理を用いた回路は、例えば加算器や乗算器等のように、データパス系の演算器に対して、カスタム設計でレイアウトを行うことによって適用されているのみであり、制御系のランダム性の高い回路に対して用いられることは少なかった。
【０００７】
パス・トランジスタ論理で、ＣＭＯＳの基本ゲートに相当するＡＮＤ（論理積）やＯＲ（論理和）等と同等のセルを作成してランダム論理を構成することも可能である。しかし、例えばリレースイッチとしてｎＭＯＳトランジスタを使用した場合、その‘１’出力の電圧レベルが低下するため、セル毎に電圧回復用の出力バッファを挿入する必要がある。このため、逆にトランジスタ数の増加を招き、レイアウト面積も増大するという問題があった。
【０００８】
また、ＢＤＤからパス・トランジスタ論理を合成する場合に、ＢＤＤのノード１個に相当する２入力セレクタを最小の単位とし、これを数個含むものをセルとして用意してセル・ライブラリ化しレイアウトを行うことが考えられる。しかし、特にランダム論理では、ＢＤＤの形が回路によって多岐にわたるため、最適なパス・トランジスタ・ライブラリを用意することは非常に困難であるという問題があった。
【０００９】
これに対し、汎用性が高いセルを用意することが考えられる。しかし、この手法の場合、一般的に１セルで実現できる論理に制約があるため、複雑な論理を実現するには、複数のセルを必要とし、結果としてセル間配線が多くなる場合が多いという問題があった。その結果、配線が複雑になって遅延が増大する傾向にあるとともに、配線のために余分な配線領域を必要とし、レイアウト面積の点で逆にデメリットとなる場合があった。
【００１０】
本発明の目的は、前記従来技術に基づく問題点を解消し、データパス論理はもちろん、レイアウト面積を増大させることなく、ランダム論理も簡単に実現することができるパス・トランジスタ論理回路の設計方法を提供することにある。
【００１１】
【課題を解決するための手段】
上記目的を達成するために、本発明は、論理関数から作成されたＢＤＤの形状に基づいて、前記ＢＤＤの各入力変数に対応する変数ノードの‘１’および‘０’のエッジをそれぞれ第１および第２のＭＯＳトランジスタに置換し、
前記ＢＤＤの形状に基づいて、各々の前記変数ノードに対応する第１および第２のＭＯＳトランジスタの一方の端子同士を短絡し、
前記各入力変数とその反転信号をそれぞれ対応する第１および第２のＭＯＳトランジスタのゲートに入力し、
‘１’および‘０’の定数ノードをそれぞれ電源およびグランドに置換してパス・トランジスタ論理回路を生成することを特徴とするパス・トランジスタ論理回路の設計方法を提供するものである。
【００１２】
ここで、前記変数ノードの‘１’および‘０’のエッジが共に前記定数ノードに接続されている場合、当該変数ノードの‘１’および‘０’のエッジを前記第１および第２のＭＯＳトランジスタに置換するのではなく、当該変数ノードに対応する入力変数またはその反転信号を、パス変数として、当該変数ノードに対応する出力に接続されている他の変数ノードの第１または第２のＭＯＳトランジスタの他方の端子に直接接続するのが好ましい。
【００１３】
また、前記各入力変数を単位として決定される前記ＢＤＤのレベルを区切りとして、所定レベル毎に、前記変数ノードに対応する出力の電圧レベル回復用の中間バッファを挿入する、あるいは前記各入力変数を単位として決定される前記ＢＤＤのレベルを区切りとして、所定レベル毎に、前記変数ノードに対応する出力の電圧レベル回復用の中間インバータを挿入し、この中間インバータが挿入される出力ノードよりも下位のレベルの全ての変数ノードにおいて、前記定数ノードおよび前記パス変数の論理を反転させるのが好ましい。
【００１４】
また、前記ＢＤＤの各レベルについて、同一レベル内に含まれる全ての前記変数ノードに対応する第１および第２のＭＯＳトランジスタを水平方向に並べ、かつ前記ＢＤＤのレベル毎に垂直方向に縦積みする構造として、上記のいずれかに記載のパス・トランジスタ論理回路のセルのレイアウトを設計するのが好ましい。
【００１５】
また、各々の前記変数ノードに対応する第１および第２のＭＯＳトランジスタは、各々の前記変数ノードに対応する出力に共通に接続される一方の端子の拡散領域が共有されたＭＯＳトランジスタであるのが好ましい。
【００１６】
また、前記ＢＤＤの上位の同一レベル内に含まれる第１の変数ノードに対応する第１および第２のＭＯＳトランジスタもしくは拡散領域が共有されたＭＯＳトランジスタ、および第２の変数ノードに対応する第１および第２のＭＯＳトランジスタもしくは拡散領域が共有されたＭＯＳトランジスタは、前記ＢＤＤの下位のレベルの第３の変数ノードに対応する出力に共通に接続される一方の端子の拡散領域が共有されたＭＯＳトランジスタであるのが好ましい。
【００１７】
また、前記ＢＤＤの各レベル内において、水平方向に並べられた全ての前記変数ノードに対応する第１および第２のＭＯＳトランジスタもしくは前記拡散領域が共有されたＭＯＳトランジスタの垂直方向の２辺を挟み込むようにして、対応する変数とその反転信号を各々対応する第１および第２のＭＯＳトランジスタもしくは拡散領域が共有されたＭＯＳトランジスタのゲートに共通に配線するのが好ましい。
【００１８】
また、既存のＣＭＯＳ論理回路のレイアウトセルの高さに合わせて決定された前記パス・トランジスタ論理回路のレイアウトセルの高さに合わせて、前記ＢＤＤのレベルを、それぞれｎ個のレベルを含むｍ個のグループに分割し、それぞれの前記グループを１つのセルとしてレイアウトを設計するのが好ましい。
【００１９】
また、前記グループに含まれるレベルの個数がｎ個よりも少ない場合、当該グループに対応するセルのレイアウトの空きスペースに電圧レベル回復用回路を配置するのが好ましい。
【００２０】
【発明の実施の形態】
以下に、添付の図面に示す好適実施例に基づいて、本発明のパス・トランジスタ論理回路の設計方法を詳細に説明する。
【００２１】
本発明のパス・トランジスタ論理回路の設計方法では、設計しようとする論理関数からＢＤＤを作成し、ＢＤＤの形状に基づいて、パス・トランジスタ論理回路とそのレイアウト設計を行う。
【００２２】
ＢＤＤの作成方法は、従来より様々な手法が提案されており、本発明では、従来公知のどのような手法を用いてＢＤＤを作成してもよい。
【００２３】
図１は、ＢＤＤで表現された論理関数の一実施例の構成概念図である。
同図に示すＢＤＤは、論理関数ｆ＝ｘ１・ｘ２￣＋ｘ３（￣は反転を表す）を表現したものである。図中丸で囲まれたｘ１，ｘ２，ｘ３は、関数ｆで使用されている変数（入力変数）である。また、ｖ１，ｖ２，ｖ３は、各変数ｘ１，ｘ２，ｘ３に対応するノード（変数ノード）である。また、図中四角で囲まれた‘１’および‘０’は定数ノードである。
【００２４】
図示例のＢＤＤでは、各変数ノードｖ１，ｖ２，ｖ３について、図中左側に‘０’のエッジ（変数が‘０’の場合の分岐）が、また、同右側に‘１’のエッジ（変数が‘１’の場合の分岐）が描かれている。図示例のＢＤＤにおいて、例えば変数ｘ１＝変数ｘ３＝‘０’の場合には、それぞれ変数ノードｖ１，ｖ３の‘０’のエッジを辿って定数ノード‘０’に到達するので、この場合、関数ｆ＝０であるということが分かる。
【００２５】
ＢＤＤからパス・トランジスタ論理回路を合成する場合、ＢＤＤの形状に基づいて、ＢＤＤの各変数ノードのエッジにｎＭＯＳトランジスタまたはｐＭＯＳトランジスタのどちらかを割り当てる。以下、ｎＭＯＳトランジスタを割り当てた場合を例に挙げて説明を続ける。
【００２６】
パス・トランジスタ論理回路は手動で作成してもよいが、例えばＳＰＬ（Ｓｉｎｇｌｅ−ｒａｉｌ　Ｐａｓｓ−ｔｒａｎｓｉｓｔｏｒ　Ｌｏｇｉｃ　）用の論理設計ＣＡＤ（Ｃｏｍｐｕｔｅｒ　Ａｉｄｅｄ　Ｄｅｓｉｇｎ　）等の自動生成ツールを利用して自動生成させることも可能である。ＳＰＬは、正論理をインバータで反転して負論理を構築するシングルレイル構成であるため、正負２系統の論理を構築するダブルレイル構成と比べてトランジスタを大幅に削減できるという利点がある。
【００２７】
図２は、パス・トランジスタ論理回路の一実施例の構成回路図である。
同図に示すパス・トランジスタ論理回路１０は、ＳＰＬを採用して、図１に示すＢＤＤの各変数ノードのエッジにｎＭＯＳトランジスタを割り当てて合成されたものであり、ノードｖ１の各エッジに対応するｎＭＯＳトランジスタ１２，１４と、ノードｖ２に対応するｎＭＯＳトランジスタ１６，１８と、電圧レベル回復用の出力バッファ２０とにより構成されている。
【００２８】
同図（ａ）に示すように、ｎＭＯＳネットワーク部において、ｎＭＯＳトランジスタ１２，１４は、それぞれ内部ノードＡおよび変数ｘ３と出力バッファ２０の入力端子との間に接続され、そのゲートには、それぞれ変数ｘ１とその反転信号ｘ１￣が入力されている。また、ｎＭＯＳトランジスタ１６，１８は、それぞれ変数ｘ３および電源ＶＤＤと内部ノードＡとの間に接続され、そのゲートには、それぞれ変数ｘ２とその反転信号ｘ２￣が入力されている。
【００２９】
また、同図（ｂ）に示すように、出力バッファ２０は、プルアップ用のｐＭＯＳトランジスタ２２と、２つのインバータ２４，２６とにより構成されている。
２つのインバータ２４，２６は、出力バッファ２０の入力端子と出力端子との間に直列に接続されている。また、ｐＭＯＳトランジスタ２２は、出力バッファ２０の入力端子と電源との間に接続され、そのゲートには、インバータ２４の出力信号が入力されている。この出力バッファ２０の出力が関数ｆの最終的な出力となる。
【００３０】
パス・トランジスタ論理回路を合成する場合、前述の通り、ＢＤＤの形状に基づいて、例えば各変数ノードの‘１’および‘０’のエッジをそれぞれｎＭＯＳトランジスタに置き換える。図示例の場合、変数ノードｖ１の‘１’および‘０’のエッジは、それぞれｎＭＯＳトランジスタ１２および１４に置換され、また、変数ノードｖ２の‘１’および‘０’のエッジは、それぞれｎＭＯＳトランジスタ１６および１８に置換される。
【００３１】
続いて、同様にＢＤＤの形状に基づいて、置換したｎＭＯＳトランジスタの端子間を接続する。図示例の場合、ｎＭＯＳトランジスタ１２，１４の一方の端子（ソースまたはドレイン）同士が短絡され、変数ノードｖ１に対応する出力とされている。また、ｎＭＯＳトランジスタ１６，１８の一方の端子同士が短絡されて変数ノードｖ２に対応する出力とされ、ｎＭＯＳトランジスタ１２の他方の端子に接続されている。
【００３２】
また、変数とその反転信号を、それぞれ‘１’および‘０’のエッジを置き換えたｎＭＯＳトランジスタのゲートへ入力する。図示例の場合、変数ｘ１とその反転信号ｘ１￣が、それぞれｎＭＯＳトランジスタ１２，１４のゲートへ入力され、同様に、変数ｘ２とその反転信号ｘ２￣が、それぞれｎＭＯＳトランジスタ１６，１８のゲートへ入力されている。
【００３３】
また、定数ノードの‘１’および‘０’はそれぞれ電源ＶＤＤおよびグランドＧＮＤに置き換える。図示例の場合、ノードｖ２の‘０’のエッジに接続された定数ノード‘１’が電源ＶＤＤに置き換えられている。
【００３４】
なお、変数ノードの‘１’および‘０’のエッジが共に定数ノードに接続されている場合、変数ノードの‘１’および‘０’のエッジをｎＭＯＳトランジスタに置換するのではなく、対応する変数またはその反転信号を、パス変数として、対応する出力に直接接続する。図示例の場合、変数ノードｖ３の‘０’および‘１’のエッジがそれぞれ定数ノード‘０’および‘１’に接続されているので、変数ｘ３が、対応する出力であるｎＭＯＳトランジスタ１４，１６の他方の端子に共通に直接接続されている。これにより、トランジスタ数をさらに２個削減可能である。
【００３５】
なお、既に述べたように、ｎＭＯＳトランジスタを用いてパス・トランジスタ論理回路を合成することにより、論理‘１’を通過させる場合には出力の電圧レベルが低下する。このため、関数の最終的な出力には、必要に応じて、電圧レベル回復用の出力バッファまたは出力インバータ等を接続する。図示例の場合、出力バッファ２０が接続されている。
【００３６】
パス・トランジスタ論理回路のレイアウト設計は、セル・ライブラリとして必要な全てのセルを用意しておくライブラリ・ベースのセル・レイアウト方式ではなく、基本的に、レイアウトする回路に応じてセルを作成するライブラリ・フリーのセル・レイアウト方式を採用する。ただし、全てのセルをライブラリ・フリーで作成する必要はなく、例えば入力インバータ、電圧レベル回復用のバッファ、インバータ等の標準的なセルを必要に応じてあらかじめ用意してもよい。
【００３７】
また、パス・トランジスタ論理のレイアウト設計は、図３の概念図に示すように、ＢＤＤの各レベルについて、同一レベル内に含まれる全ての変数ノードに対応するｎＭＯＳトランジスタを水平方向に並べ、かつＢＤＤのレベル毎に垂直方向に縦積みする構造としてセルのレイアウトを設計する。また、それぞれのレベルに含まれるｎＭＯＳトランジスタのゲートに入力される変数の反転信号は、基本的に変数を１つのインバータで反転し、この反転信号をレベル内に含まれるｎＭＯＳトランジスタに対して共通に入力する。
【００３８】
ここで、ＢＤＤのレベルは、ＢＤＤに含まれる各変数を単位として決定される。図３に示す例の場合、ＢＤＤにおいて、例えば変数ａが含まれるレベルを最上位のレベルｉとすると、変数ａのノードのエッジが接続される変数ｂが含まれるレベルはその下位のレベルｉ＋１となり、変数ｂのノードのエッジが接続される変数ｃが含まれるレベルはそのまた下位のレベルｉ＋２となる。以下同様にして、ＢＤＤの各レベルが決定される。
【００３９】
言い方を換えると、各レベルには、それぞれ１つの変数のみが含まれ、各レベルに含まれるｎＭＯＳトランジスタのゲートには、共通の変数またはその反転信号が入力される。
【００４０】
従来のライブラリ・ベースのパス・トランジスタ論理回路のレイアウト設計方式では、図１５に示すように、例えば変数ノードに対応する２入力マルチプレクサを最大３個含むライブラリセルを複数個用い、これらの複数個のライブラリセル間を配線することによりパス・トランジスタ論理回路のレイアウト設計が行われていた。この場合、個々のライブラリセルには、変数の反転信号を生成するための入力インバータがそれぞれ設けられていた。
【００４１】
これに対し、本発明では、上記のように、セル・ライブラリを用いるのではなく、レイアウト設計すべきパス・トランジスタ論理回路に応じて、ＢＤＤの各レベルに含まれるｎＭＯＳトランジスタを水平方向に並べ、かつＢＤＤのレベル毎に垂直方向に縦積みする構造としてパス・トランジスタ論理回路のレイアウト設計を行うことにより、トランジスタ間の配線のほとんどをセル内で実現可能である。
【００４２】
また、本発明では、変数の反転信号を１つのインバータで生成し、この反転信号を、レベル内に含まれる反転信号を入力すべきｎＭＯＳトランジスタのゲートに共通に入力することにより、冗長な入力インバータを削減することができる。
【００４３】
さらに、レイアウト設計においては、隣接するトランジスタ間で可能な限り拡散領域を共有する構造とする。拡散領域は、ソース・ドレインに同じ信号が接続されている場合に共有可能である。例えば、ＳＰＬを採用してパス・トランジスタ論理回路を合成した場合、隣接するトランジスタ間の拡散領域が共有可能な場合は、同一変数ノードで拡散領域が共有可能な場合と、異なる変数ノード間で拡散領域が共有可能な場合の２種類がある。
【００４４】
図４に示すように、変数ｘ１のノードの‘０’および‘１’のエッジに対応する２つのｎＭＯＳトランジスタの一方の端子は共にノードの出力ｙに接続されるので、同一変数ノードの２つのｎＭＯＳトランジスタ間で出力ｙに接続される一方の端子の拡散領域の共有が可能である。この同一変数ノードでの拡散領域の共有は全ての変数ノードで同様に拡散領域を共用可能である。本発明では、拡散領域を共有しない２つのｎＭＯＳトランジスタをそのまま配置してももちろんよいが、２つのｎＭＯＳトランジスタの一方の端子の拡散領域が共有されたＭＯＳトランジスタを基本単位として配置するのが好ましい。
【００４５】
また、図５に示すように、上位の同一レベル内に含まれる異なる２つの変数ノード間であっても、それぞれの変数ノードの一方のエッジが、下位のレベルの同一変数ノードに対応する出力に共通に接続される場合、上位の同一レベルに含まれる異なる２つの変数ノードに対応する拡散領域が共有された２つのＭＯＳトランジスタ間において、下位のレベルの同一変数ノードに対応する出力に共通に接続される一方の端子の拡散領域を共有することが可能である。
【００４６】
このように、隣接するトランジスタ間で拡散領域を共有することにより、そのセルのレイアウト面積を削減することができるのはもちろん、同時に、トランジスタ間の配線も削減することが可能となる。
【００４７】
以下、本発明を適用し、ＢＤＤの形状に基づいてパス・トランジスタ論理回路のレイアウト設計を行う場合の各工程について詳細に説明する。
【００４８】
図６は、本発明を適用するパス・トランジスタ論理回路のレイアウト設計の各工程を表す一実施例のフローチャートである。このフローチャートに示すように、本発明のパス・トランジスタ論理回路の設計方法では、隣接ノードの設定Ｓ１、中間バッファの挿入箇所の決定Ｓ２、論理の反転およびＢＤＤの再構築Ｓ３、ＢＤＤレベルの分割Ｓ４、トランジスタの配置Ｓ５、トランジスタ間の配線Ｓ６、セルの配置・配線Ｓ７の順に各工程が進められる。
【００４９】
以下、ＭＣＮＣ（Ｍｉｃｒｏｅｌｅｃｔｒｏｎｉｃｓ　Ｃｅｎｔｅｒ　ｏｆ　Ｎｏｒｔｈ　Ｃａｒｏｌｉｎａ　）のベンチマーク回路の１つであるｚ４ｍｌのレイアウトを設計する場合を例に挙げて、上記各工程Ｓ１〜Ｓ７について説明する。
【００５０】
（Ｓ１）隣接ノードの設定
前述のように、本発明では、ＢＤＤの同一レベル内に含まれる各ノードに対応するｎＭＯＳトランジスタ間で拡散領域を共有するために、ＢＤＤの各レベルにおいて、どのノードが隣接しているのかを設定する必要がある。このため、本発明では、ＢＤＤの各出力について、上位のレベルから順次下位のレベルへ向かって探索を行い、各レベルにおいて、例えばレベルの深いものを優先して図中左側から順次ノードを並べ、隣接ノードを設定する。
【００５１】
なお、隣接ノードを設定する際、パス変数となるノードは隣接ノードの中には加えないものとする。上記の操作により、任意のノードに対し、共通の先祖に最も近いノードが隣接ノードとして設定される。また、共通の先祖が存在しない場合、他の出力に関係するノードが隣接ノードとして設定される。このようにして、ＢＤＤの同一レベル内において、パス変数とならない全てのノードに対して隣接ノードが設定される。
【００５２】
上記ベンチマーク回路について、隣接ノードを設定した後のＢＤＤを図７に示す。図中ｗ，ｘ，ｙ，ｚは出力を表し、同様に、丸で囲まれたａ，ｂ，ｃ，ｄ，ｅ，ｆ，ｇは入力変数、四角で囲まれた‘１’および‘０’はそれぞれ定数ノードを表す。なお、入力変数ｇはパス変数であり、前述のように、パス変数となるノードは隣接ノードの中には加えないので、定数ノードと同等に扱って表現している。
【００５３】
（Ｓ２）中間バッファの挿入箇所の決定
ＳＰＬでは、ファンアウト数、直列段数を考慮して中間バッファが挿入される。本発明では、中間バッファはＢＤＤのレベルを区切りとして挿入され、ＣＭＯＳ論理との比較、パスの飛び越しの有無等に応じて中間バッファの挿入箇所（中間バッファを挿入すべきレベル）が適宜決定される。
【００５４】
本発明では、例えばＢＤＤの６レベル毎に中間バッファを挿入する。しかし、ＣＭＯＳ論理で同じ回路を構成した場合と比べて、例えばその遅延時間および消費電力が共に２倍以上となる場合は、バッファによる電圧レベルの回復が遅く、貫通電流が増大することが原因であると考えられる。このような場合、例えばＢＤＤの３レベル毎にバッファを挿入するというように、必要に応じて適宜中間バッファを挿入する。
【００５５】
また、上記のように、ＢＤＤのレベルを区切りとして中間バッファを挿入する場合、バッファを挿入するレベルを飛び越して接続されるパスが存在する場合がある。この場合、バッファを挿入するレベルを飛び越して接続されるパスには中間バッファが挿入されないので、中間バッファを挿入するレベルを変更し、バッファを挿入するレベルを飛び越して接続されるパスが存在しないレベルを選んで中間バッファを挿入するのが好ましい。
【００５６】
（Ｓ３）論理の反転およびＢＤＤの再構築
従来のパス・トランジスタ論理回路では、例えば図８（ａ）に示す中間バッファが挿入されている。この中間バッファは、図２（ｂ）において説明したものである。本発明では、必要に応じて、図８（ｂ）に示すように、中間バッファから出力端子側のインバータ２６を取り除いた構成の中間インバータを挿入する。これにより、中間バッファを使用する場合よりもトランジスタ数を２個削減することができる。
【００５７】
なお、中間インバータを使用する場合、出力ノードの論理が反転されるので、中間インバータに入力される前の出力ノードの論理を反転させて、ＢＤＤの再構築を行う必要がある。
【００５８】
ＢＤＤにおいて、出力ノードの論理を反転させるためには、出力ノードよりも下位の全てのレベルのノードにおいて、定数ノードおよびパス変数の論理を反転させればよい。すなわち、出力ノードよりも下位の全てのレベルのノードにおいて、‘１’の定数ノードに接続されているエッジを‘０’の定数ノードに接続し、かつ‘０’の定数ノードに接続されているエッジを‘１’の定数ノードに接続し直す。また、パス変数は、その論理を反転させる。
【００５９】
図７に示すベンチマーク回路のＢＤＤにおいて、中間インバータを挿入した例を図９に示す。図７に示すベンチマーク回路は、本来中間インバータを挿入する必要はないが、ここでは、中間インバータの挿入例として、ＢＤＤの３レベル目に中間インバータを挿入し、これ以降のレベルの論理を反転した場合を一例として示す。図７と図９を見比べれば明らかなように、レベル３以降の定数ノードおよびパス変数の論理を全て反転させている。
【００６０】
（Ｓ４）ＢＤＤレベルの分割
ＣＭＯＳ論理とパス・トランジスタ論理の混在を考えた場合、ＣＭＯＳ論理回路のレイアウトセルとパス・トランジスタ論理回路のレイアウトセルの高さ（垂直方向の長さ）を合わせる必要がある。本発明では、既存のＣＭＯＳ論理セルの高さに合わせてパス・トランジスタ論理セルのレイアウトを作成する。ＣＭＯＳ論理セルの高さに合わせてパス・トランジスタ論理セルのレイアウトを作成するため、必要に応じて、ＢＤＤのレベルを、ｎ個のレベルを含むｍ個のグループに分割し、それぞれのグループを１つのセルとしてレイアウトを設計する。
【００６１】
例えば、既存のＣＭＯＳ論理セルの高さに合わせた場合に、ｎＭＯＳトランジスタを３個縦積みにすることができるとすると、ＢＤＤのレベルを３レベル毎に１つのグループとして分割する。この場合、ＢＤＤの最も深いレベル（パス変数となる変数のレベルを除く）もしくは中間バッファを挿入したレベルから、その次の中間バッファを挿入したレベルまでもしくは出力までを一区切りとして、ＢＤＤのレベルを３レベル毎に分割する。
【００６２】
ただし、本実施例のように、ＢＤＤの３レベルを１つのグループとする場合に、ＢＤＤの１レベルまたは２レベルを１つのグループとしてセルのレイアウトを設計すると、ｎＭＯＳトランジスタの縦積みの段数が２段以下となり、セルのレイアウト内に空きスペースが生じる。この場合、この空きスペースに中間インバータ、出力インバータのプルアップ用ｐＭＯＳトランジスタ等の電圧レベル回復用回路を配置し、この空きスペースを有効に利用することが可能である。
【００６３】
図７に示すＢＤＤのレベルを分割した例を図１０に示す。この場合、ＢＤＤのレベル１〜３とレベル４〜６の２つのグループに分割される。すなわち、図７に示すベンチマーク回路のＢＤＤに対応するパス・トランジスタ論理回路は、２つのレイアウトセルを使用して実現される。
【００６４】
なお、上記Ｓ２，Ｓ３，Ｓ４の各工程は、必須の工程ではなく、必要に応じて適宜実施すればよい。
【００６５】
（Ｓ５）トランジスタの配置
ＢＤＤのレベルを各グループに分割した後、各グループにおいて、またはグループに分割しない場合は全体を１つのグループとして、変数ノードの各エッジに対応するｎＭＯＳトランジスタを各セル内に配置する。この時、図１１に示すように、同一レベル内に含まれるトランジスタを水平方向に並べ、かつレベル毎に垂直方向に縦積みする。また、前述の通り、可能な限り隣接するｎＭＯＳトランジスタ間で拡散領域を共有させる。
【００６６】
図１１は、セルの一実施例のレイアウト図である。
同図は、図１０に示すＢＤＤのセル１に対応してｎＭＯＳトランジスタを配置した状態のレイアウト図である。このレイアウト図において、セルの左右両端に空きスペースが存在しているのは、ＣＭＯＳ論理セルが隣接する場合における、ＮウェルとＮ拡散領域との間での設計ルール違反を避けるためである。
【００６７】
なお、図１２に示すように、ＢＤＤの１レベルに含まれる変数ノードが１つのみの場合、このレベルと連続する上位側または下位側のレベル、すなわち２レベル分のトランジスタを１水平方向に並べて配置してもよい。この場合、セル内に４レベル分のトランジスタが配置されることになる。
【００６８】
（Ｓ６）トランジスタ間の配線
上記のように配置されたトランジスタに対し、そのゲート間ならびにソース・ドレイン間に配線を接続する。ＢＤＤの同一レベル内において、各トランジスタのゲート入力となる信号は、変数とその反転信号の２本のみである。このため、ゲート配線は、図１３に示すように、この２本の信号の配線でトランジスタの上下を挟み込むような形で配線を行う。これにより、変数とその反転信号を同一配線層で配線することができる。
【００６９】
また、各レベルにおいて、変数の反転信号は、変数の信号を１つのインバータで反転することにより生成され、基本的に変数の反転信号を入力すべき全てのトランジスタのゲートに共通に接続される。従来手法では、例えば入力インバータのファンアウトは最大２に限られていたが、このように、入力インバータのファンアウトを多くすることにより、その個数を削減することができる。
【００７０】
また、ソース・ドレイン間の配線は、基本的にメタル１層で行う。また、メタル１層のみで配線できない場合、垂直方向にのみメタル２層を用いて配線を行う。なお、セル内でメタル２層による配線を垂直方向にのみ制限する理由は、セル間のグローバル配線の際に、例えばメタル２層を垂直方向の配線層として、また、メタル３層を水平方向の配線層として用いるため、セル内でメタル２層が水平方向に配線されていると、セル間の垂直方向のグローバル配線の妨げとなって配線が混雑し、配線効率が低下するのを防止するためである。
【００７１】
（Ｓ７）セルの配置・配線
完成したセルの配置・配線は、手動もしくは市販のＣＭＯＳ用配置・配線用ツールを用いて行う。上記のように、ＣＭＯＳ論理セルとの混在を考慮して、パス・トランジスタ論理セルの高さを決定した場合、市販のＣＭＯＳ用配置・配線用ツールが利用可能である。
【００７２】
なお、ＢＤＤからパス・トランジスタ論理回路を合成する場合、ＢＤＤの各変数ノードのエッジにｐＭＯＳトランジスタを割り当てるようにしてもよい。この場合、ｐＭＯＳトランジスタのゲートに入力される信号は、ｎＭＯＳトランジスタの場合とは極性を反転させる必要がある。また、ｐＭＯＳトランジスタの場合、その‘０’出力の電圧レベルをグランドまで引き抜けないため、セル毎に電圧回復用のバッファを挿入する必要がある。
【００７３】
（実施例）
本発明を適用して、ＢＤＤの各変数ノードのエッジにｎＭＯＳトランジスタを割り当ててパス・トランジスタ論理回路を作成し、ＢＤＤの形状に基づいて、ＢＤＤの各レベルに含まれるｎＭＯＳトランジスタを水平方向に一列に並べ、かつＣＭＯＳ論理セルの高さに合わせて、３レベル分のｎＭＯＳトランジスタを縦積みしたグループを１つのセルとして作成し、セル間を配線して９例のベンチマーク回路を作成した。
【００７４】
遅延時間については、従来のセル・ライブラリを使用したレイアウト設計方法を適用して作成された回路よりも、ベンチマーク回路９例の幾何平均で、パス・トランジスタ論理のみの場合で約２４％、また、ＣＭＯＳ論理／パス・トランジスタ論理の混在論理の場合で約４５％短縮された。このことから、本発明は、従来のセル・ライブラリを使用したレイアウト設計方法よりも、遅延時間の短縮の点で実際に有効であることが分かった。
【００７５】
また、回路性能の総合的指標であるＥＤ積（エネルギー・遅延積）についても、従来のセル・ライブラリを使用したレイアウト設計方法を適用して作成された回路よりも、同様にパス・トランジスタ論理のみの場合で約３７％、また、ＣＭＯＳ論理／パス・トランジスタ論理の混在論理の場合で約６３％削減できた。このことから、本発明は、総合的評価においても、従来のセル・ライブラリを使用したレイアウト設計方法より優れていると言える。
【００７６】
さらに、ＥＤ積については、ＣＭＯＳ論理に対しても、ＣＭＯＳ論理／パス・トランジスタ論理の混在論理は約２７％の削減効果が得られ、その有効性を確認することができた。
【００７７】
本発明のパス・トランジスタ論理回路の設計方法は、基本的に以上のようなものである。
以上、本発明のパス・トランジスタ論理回路の設計方法について詳細に説明したが、本発明は上記実施例に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。
【００７８】
【発明の効果】
以上詳細に説明した様に、本発明のパス・トランジスタ論理回路の設計方法は、ＢＤＤの各レベルについて、同一レベル内に含まれる全ての変数ノードに対応する第１および第２のＭＯＳトランジスタを水平方向に並べ、かつＢＤＤのレベル毎に垂直方向に縦積みする構造として、パス・トランジスタ論理回路のセルのレイアウトを設計するようにしたものである。
これにより、本発明のパス・トランジスタ論理回路の設計方法によれば、ライブラリ・フリーのセル・レイアウト方式を採用しているため、任意の構成のランダム論理をパス・トランジスタ論理回路で実現可能である。また、本発明のパス・トランジスタ論理回路の設計方法によれば、パス・トランジスタ論理回路のセルのレイアウトを行う上で最適な配置となり、配線効率を向上させることができるので、そのレイアウト面積を大幅に削減することができる。
【図面の簡単な説明】
【図１】ＢＤＤで表現された論理関数の一実施例の構成概念図である。
【図２】（ａ）は、パス・トランジスタ論理回路の一実施例の構成回路図、（ｂ）は、出力バッファの一実施例の構成回路図である。
【図３】本発明を適用して設計されたパス・トランジスタ論理回路のレイアウトの一実施例の概念図である。
【図４】同一変数ノードに対応するトランジスタ間で拡散領域を共有する場合を表す一実施例の概念図である。
【図５】異なる変数ノードに対応するトランジスタ間で拡散領域を共有する場合を表す一実施例の概念図である。
【図６】本発明を適用するパス・トランジスタ論理回路のレイアウト設計の各工程を表す一実施例のフローチャートである。
【図７】隣接ノードを設定した後のＢＤＤの一実施例の概略図である。
【図８】（ａ）および（ｂ）は、それぞれ中間バッファおよび中間インバータの一実施例の構成回路図である。
【図９】中間インバータを挿入した後のＢＤＤの一実施例の概略図である。
【図１０】レベルを分割した後のＢＤＤの一実施例の概略図である。
【図１１】セルの一実施例のレイアウト図である。
【図１２】２レベル分の変数ノードに対応するトランジスタを１水平方向に並べて配置する場合を表す一実施例の概念図である。
【図１３】ゲート配線を接続した後のセルの一実施例のレイアウト図である。
【図１４】完成後のセルの一実施例のレイアウト図である。
【図１５】従来のライブラリ・ベースのパス・トランジスタ論理回路のレイアウト設計方式を表す一例の概念図である。
【符号の説明】
１０　パス・トランジスタ論理回路
１２，１４，１６，１８　ｎＭＯＳトランジスタ
２０　出力バッファ
２２　ｐＭＯＳトランジスタ
２４，２６　インバータ
【図１】
2004054550.tif 000003
【図２】
2004054550.tif 000004
【図３】
2004054550.tif 000005
【図４】
2004054550.tif 000006
【図５】
2004054550.tif 000007
【図６】
2004054550.tif 000008
【図７】
2004054550.tif 000009
【図８】
2004054550.tif 000010
【図９】
2004054550.tif 000011
【図１０】
2004054550.tif 000012
【図１１】
2004054550.tif 000013
【図１２】
2004054550.tif 000014
【図１３】
2004054550.tif 000015
【図１４】
2004054550.tif 000016
【図１５】
2004054550.tif 000017