(57)【特許請求の範囲】
【請求項１】
集積回路内の配線に挿入するリピータの位置を解析する集積回路におけるリピータ挿入装置であって、
上記集積回路内の配線の経路および所定の物理量の情報をもとに、上記配線上に有する各ノード毎に配線抵抗と配線容量との関係を表したグラフを作成するグラフ作成手段と、
上記グラフ作成手段により作成されたグラフ上の点で、当該グラフ上の点と、配線抵抗−配線容量平面で前記グラフよりも大きい配線容量値となる所定の座標の３つの点とを頂点とする矩形の面積が最大となる点を上記リピータの挿入位置として求めるリピータ挿入解析手段とを備えることを特徴とする集積回路におけるリピータ挿入装置。
【請求項２】
集積回路内の配線に挿入するリピータの位置を解析する集積回路におけるリピータ挿入方法であって、
グラフ作成手段が、上記集積回路内の配線の経路および所定の物理量の情報をもとに、上記配線上に有する各ノード毎に配線抵抗と配線容量との関係を表したグラフを作成するステップと、
リピータ挿入解析手段が、上記作成されたグラフ上の点で、当該グラフ上の点と、配線抵抗−配線容量平面で前記グラフよりも大きい配線容量値となる所定の座標の３つの点とを頂点とする矩形の面積が最大となる点を上記リピータの挿入位置として求めるステップとを有することを特徴とする集積回路におけるリピータ挿入方法。
【請求項３】
請求項１に記載の集積回路におけるリピータ挿入装置の各手段としてコンピュータを機能させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項４】
請求項２に記載の集積回路におけるリピータ挿入方法の処理手順をコンピュータに実行させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項５】
請求項１に記載の集積回路におけるリピータ挿入装置の各手段としてコンピュータを機能させるためのプログラム。
【請求項６】
請求項２に記載の集積回路におけるリピータ挿入方法の処理手順をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、集積回路におけるリピータ挿入装置および方法、記録媒体に関するものである。特に、比較的長い配線（ＲＣ遅延の大きな配線）を有する集積回路においてリピータを挿入する最適な位置と数を求めるリピータ挿入方式に関し、ＣＭＯＳやＳＯＩ構造を有する集積回路装置全般に適用可能なものである。
【０００２】
【従来の技術】
近年、半導体装置の集積化が進み、集積度が飛躍的に大きくなってきた。集積度が大きくなると、チップサイズも大きくなり、チップ内で離れた場所に配置される素子間（例えば駆動側のドライバと負荷側のレシーバとの間）を接続するために、比較的長い配線を設けることが必須となる。
【０００３】
一方、近年のコンピュータシステムでは、内部回路の動作基準となるクロック周波数として、８００ＭＨｚ、１ＧＨｚなどという非常に大きな周波数が用いられるようになってきた。このような大きなクロック周波数の下では、素子間の信号の転送時間を短くする必要があり、長い配線線路での転送遅延を如何に抑えるかが高速な装置を作る上での重要なポイントとなる。
【０００４】
そのために、ドライバとレシーバとの間を繋ぐ長い配線を複数の短い配線に分割し、その分割点に信号駆動能力を有するバッファタイプあるいはインバータタイプのリピータを挿入することが行われる。これまでのリピータ挿入は、(1) 遅延方程式を解析的に求めて配線を等間隔に分割する方法や、(2) 遅延解析ツールが仮想的にリピータを挿入し、遅延要求値との差が小さくなるように挿入前後の遅延を操作する方法などが採られてきた。
【０００５】
図２４は、上記(1) の遅延方程式を解析的に求めて配線を等間隔に分割する方法を説明するための図である。この方法は、１つの長い線路をｋ個の短い線路に均等に分割し、全体の遅延は分割した各線路のｋ倍であるとして求めるものである。均等分割された線路間に挿入されるリピータの１段当たりの５０％遅延は、線路の単位長さ当たりの容量と抵抗をそれぞれＣ0 ，Ｒ0 とおき、分割前の線路長をＬとすれば、次の式(1) で表される。
【０００６】
【数１】
0004472193.tif 000002
【０００７】
ここで、式(1) 中のＲonはドライバ、リピータのオン抵抗、Ｃtrはリピータ、レシーバの入力ゲート容量である。また、この式(1) では、挿入されるリピータ、信号を駆動するドライバ、信号の受け側のレシーバのゲートサイズは全て同じであることを想定している。上記式(1) をｋで偏微分してゼロとおくと、次の式(2) のように最適な分割数ｋを求めることができる。
【０００８】
【数２】
0004472193.tif 000003
【０００９】
図２５は、リピータ分割前の配線長Ｌとリピータ分割数ｋとの関係を示す図である。式(2) から明らかなように、配線長Ｌの二乗が平行根の中の分子にあるので、リピータ分割前の配線長Ｌとリピータ分割数ｋとは線形の関係にある。この式(2) を配線長Ｌについて展開し、ｋ＝１を代入すれば、リピータ分割しないでドライバが駆動できる最大の線路長が計算される。
【００１０】
図２６は、上記(2) の遅延解析ツールによる処理手順を示すフローチャートである。ここでは、説明の簡単のために、図２７（ａ）に示すような分岐を有する配線においてリピータを挿入する場合について考える。
図２６に示すように、遅延解析ツールでは、遅延コンストレイント１、ネットリスト２、セルタイミングライブラリ３、配線容量・配線抵抗データ４および配置配線データベース５の各情報を用いる。
【００１１】
遅延コンストレイント１は、集積回路を構成する個々の素子であるセルＡからセルＢに至るパスおよびセルＡからセルＣに至るパスの遅延要求値（ＲAB，ＲAC）の情報である。ネットリスト２は、各セル間を繋ぐ複数の配線（ネット）のリスト情報である。セルタイミングライブラリ３は、個々のセルが持つ固有の遅延情報である。配線容量・配線抵抗データ４は、ネットリスト２中に含まれる各配線の容量および抵抗に関する情報である。また、配置配線データベース５は、各セルが集積回路内のどこに置かれ、その間の配線がどのように接続されているかを表した情報である。
【００１２】
遅延解析ツールでは、これらの情報を用いて、図２６のステップＳ１〜ステップＳ７の処理を全てのネットについて繰り返し行う。ステップＳ１では、遅延コンストレイント１を除く他の情報に基づいて遅延解析を行い、セルＡからセルＢに至るパスおよびセルＡからセルＣに至るパスの遅延時間（ＴAB，ＴAC）をそれぞれ計算する。
【００１３】
ステップＳ２では、このステップＳ１で計算した遅延時間ＴAB，ＴACと、遅延コンストレイント１である遅延要求値ＲAB，ＲACとに基づいて、 Slack値を計算する。 Slack値は、遅延要求値ＲAB，ＲACから遅延時間ＴAB，ＴACを減算することにより求まる。すなわち、Ａ→ＢのパスおよびＡ→Ｃのパスのそれぞれについて、以下のような計算を行う。
Slack＝ＲAB−ＴAB
Slack＝ＲAC−ＴAC
【００１４】
ステップＳ３では、上記ステップＳ２で計算した Slack値が負の値であるか否かを判断する。負の値であれば、遅延要求値よりも実際の遅延時間の方が大きいということなので、ステップＳ４に進み、そのパスにはリピータを１つ挿入して転送速度の高速化を図る。一方、計算された Slack値が負の値でなければ、ステップＳ５に進み、 Slack値が正の値であるか否かを更に判断する。
【００１５】
Slack値が正の値であれば、遅延要求値よりも実際の遅延時間の方が小さいということなので、ステップＳ６に進み、そのパスにはディレイゲートを１つ挿入する。一方、 Slack値が負の値でも正の値でもない場合は、遅延要求値と実際の遅延時間とが等しいということなので、そのパスにはリピータもディレイゲートも挿入せずに、次のステップＳ７へと処理を進める。
【００１６】
ステップＳ７では、上記ステップＳ４あるいはステップＳ６でリピータやディレイゲートが挿入された結果、またはその何れもが挿入されなかった結果として得られる遅延時間と遅延要求値との誤差が許容範囲内か否かを判断する。許容範囲内でなければ、ステップＳ１に戻って同様の処理を繰り返し行い、必要に応じてリピータやディレイゲートを更に追加挿入していく。そして、誤差が許容範囲内となったら、次のネットへと処理を進める。
【００１７】
以上のような処理において、例えば、
Slack＝ＲAB−ＴAB＜０
Slack＝ＲAC−ＴAC＞０
であったとすると、セルＡからセルＢに至るパスにはリピータが挿入され、セルＡからセルＣに至るパスにはディレイゲートが挿入されることになる。図２７（ｂ）はその挿入結果を示す図である。この例では、セルＡから配線の分岐点までの間にリピータが２つ挿入され、分岐点からセルＢまでの間にリピータが１つ挿入され、分岐点からセルＣまでの間にディレイゲートが３つ挿入されている。
【００１８】
【発明が解決しようとする課題】
しかしながら、上記式(1),(2) のように遅延方程式を解析的に求めて配線線路を等間隔に分割する方法では、１つのドライバと１つのレシーバとの間を繋ぐ単一線路を単に等間隔に分割するものであり、ドライバとレシーバとの間に配線の分岐やメタル乗り換え等がある場合は一切考慮していない。また、リピータ、ドライバ、レシーバのゲートサイズも全て同じでなければならず、集積回路の実際の配線には適用できないという問題があった。
【００１９】
すなわち、実際の集積回路においては、メタル配線レイヤが幾層にもなっていることが多い。また、配線のネットトポロジも分岐があったり、折れ曲がっていたり、メタル乗り換えやＶＩＡホールがあるのが常である。このように複雑な構成を有する配線の容量や抵抗については、配線そのものの太さや周囲の配線混雑具合などから値が決まる。そのため、均等にリピータ分割しようとしても、分岐したりメタルを乗り換えながら長い距離を走る配線では、式(1),(2) のように単純には表すことができない。
【００２０】
また、図２６のような遅延解析ツールを用いた方法では、対象とする配線上にリピータやディレイゲートを仮想的に挿入して遅延時間を計算し、それが遅延要求値に近づくように試行錯誤的に処理を繰り返すものである。そのため、集積回路が大規模になると、遅延解析そのものに多くの処理時間を要するという問題があった。仮に、ネット上の全部のノードが活性化できたとしても、あらゆるパスの遅延制約を見ながら遅延コンストレイントに近づくようにリピータ挿入を繰り返し行うのは、かなりの処理時間を必要とし、現実的な時間内に処理が終わらないこともあった。
【００２１】
特に、リピータ挿入の解析は、集積回路開発の初期の段階で行うことが要求される。しかし、この段階では、集積回路の設計が完全に定まっていないことが多く、この設計を変更した場合には、図２６のフローに従って解析処理を再度行わなければならず、設計を変更する度に膨大な時間がかかってしまうという問題があった。
【００２２】
本発明は、このような問題を解決するために成されたものであり、複雑な構成を有する集積回路においても、実際の配線に沿ったリピータ挿入の最適解を正確かつ短時間で得ることができるようにすることを目的とする。
【００２３】
【課題を解決するための手段】
本発明の集積回路におけるリピータ挿入装置および方法では、集積回路内の配線の経路および所定の物理量の情報をもとに、配線上に有する各ノード毎に配線抵抗と配線容量との関係を表したグラフを作成し、作成されたグラフ上の点と、配線抵抗−配線容量平面で前記グラフよりも大きい配線容量値となる所定の座標の３つの点とを頂点とする矩形の面積が最大となる点をリピータの挿入位置として求めるようにしている。
このように構成することにより、処理の負荷が大きい複雑な回路シミュレータや、静的・動的遅延解析ツールを用いなくても、最適なリピータの挿入位置を正確かつ高速に計算することが可能となる。
【００２４】
【発明の実施の形態】
以下、本発明の一実施形態を図面に基づいて説明する。
図１は、本実施形態による集積回路におけるリピータ挿入装置の要素的特徴を示す機能構成ブロック図である。また、図２は、本実施形態によるリピータ挿入方式の理論を説明するための図である。なお、本実施形態では、挿入するリピータとして、データの論理反転を考慮しなくても良いバッファタイプのリピータ（リピータバッファ）を用いるものとするが、インバータタイプのリピータを用いても良いことは言うまでもない。
【００２５】
まず、図２を用いて本実施形態のリピータ挿入理論について説明する。図２において、（ａ）はリピータ挿入前のモデルを示し、（ｂ）はリピータ挿入後のモデルを示す。図２（ａ）に示すリピータ挿入前においては、駆動側のドライバ１１と受け側のレシーバ１２との間に配線長Ｌの配線１３が接続されている。この配線１３の単位長さ当たりの抵抗をＲ0 、単位長さ当たりの容量をＣ0 とした場合、ドライバ１１の入力からレシーバ１２の手前までの５０％遅延時間Ｔinitは、エルモアの遅延式を用いて次の式(3) で表される。
【００２６】
【数３】
0004472193.tif 000004
【００２７】
この式(3) において、Ｒonはドライバ１１のオン抵抗、Ｃtrはレシーバ１２の入力ゲート容量である。また、α，γはそれぞれドライバ１１およびレシーバ１２のゲートサイズの比率を表すパラメータであり、基本ゲートサイズの係数倍であることを示す。
【００２８】
図２（ｂ）に示すように、配線１３の途中、例えばドライバ１１側から長さＬ1 のところで配線１３を短い配線１４，１５に分割し、この分割点にゲートサイズの比率がβのリピータ１６を挿入したとする。この場合、ドライバ１１の入力からリピータ１６の手前までの遅延時間をＴ1 、リピータ１６の入力からレシーバ１２の手前までの遅延時間をＴ2 とすると、これらの遅延時間Ｔ1 ，Ｔ2 はそれぞれエルモアの遅延式を用いて次の式(4),(5) のように表される。
【００２９】
【数４】
0004472193.tif 000005
【００３０】
したがって、リピータ１６の挿入前後における遅延時間の差ΔＴを求めると、次の式(6) のようになる。特に、ドライバ１１、レシーバ１２およびリピータ１６のゲートサイズが全て同じであるとすると（α＝β＝γの場合）、式(6) は簡単になり、式(7) のように表される。
【００３１】
【数５】
0004472193.tif 000006
【００３２】
図３に示すように、例えば横軸に抵抗値をとり、縦軸に容量値をとったｒ−ｃ平面に上記式(7) をプロットすると、遅延時間差ΔＴの式のイメージが分かりやすくなる。すなわち、式(7) の右辺は、配線１４，１５の線路長Ｌ1 ，Ｌ−Ｌ1 に依存しない第１項と依存性のある第２項とに分類される。このうち負の値である第１項は、リピータ１６自身が持つ固有遅延量を表している。また、正の値である第２項は、図３の斜線中に白抜きで示す矩形の面積を表しており、リピータ１６を挿入して速くなる遅延量を表している。
【００３３】
したがって、リピータ１６を挿入することにより、リピータ１６自身が持つ固有遅延によって系の遅延時間は第１項の分だけ遅くなる。しかしながら、ｒ−ｃ平面の直線ｌ上を動く点Ｐの決め方、すなわち、分割位置Ｌ1 の決め方によっては、白抜き矩形の面積が大きくなり、第２項分の時間が第１項分の遅延時間の遅れを打ち消して、ドライバ１１とレシーバ１２との間の転送時間を速くすることが可能である。
【００３４】
なお、実際の集積回路では、ドライバ１１、レシーバ１２およびリピータ１６のゲートサイズが全て同じであることは稀であるので、実際の集積回路にこの式(7) を当てはめることができる場合はあまり無いと考えられる。そこで、実際の集積回路に沿った式(6) のｒ−ｃ平面を考えてみる。図４は、この式(6) とｒ−ｃ平面との関係を示す図である。
【００３５】
式(6) の右辺は、上記式(7) の第１項および第２項（※４）と同じ項と、ドライバ１１とリピータ１６のゲートサイズ差Ｒon（１／α−１／β）が反映された第３項（※１）と、リピータ１６とレシーバ１２の負荷容量差Ｃtr（γ−β）が反映された第４項（※２）と、上記ゲートサイズ差および負荷容量差の両方が反映された第５項（※３）とに分類される。
【００３６】
この図４の場合は、分割位置Ｌ1 の決め方によって、リピータ１６の固有遅延を表す第１項 [Ｔ0（β）＋０．７ＲonＣtr] よりも残りの第２〜５項（※１＋※２＋※３＋※４）の方が大きければ、第１項分の遅延時間の遅れを打ち消してドライバ１１とレシーバ１２との間の転送時間を速くすることが可能である。よって、リピータ１６を挿入して配線１３上の転送時間を速くする問題は、白抜き矩形の面積が最大となる点Ｐを探し出す問題に置き換えられる。
【００３７】
以上は、ドライバ１１とレシーバ１２との間の配線１３に分岐がない場合の例であった。次に、配線の途中に分岐が存在する場合を例にとって説明する。図５は、配線の途中に分岐点Ｂを有するモデルおよび、そのモデルにおけるリピータ挿入前後の遅延時間差ΔＴの式とｒ−ｃ平面との関係を示す図である。
【００３８】
配線の途中に分岐点Ｂが存在する場合は、その分岐点Ｂに接続される複数の部分枝１７のうちの１つに着目し、残りの部分枝はレシーバ１２の入力ゲート容量と配線容量の全てを足し込んで容量ＣB に置き換えて、分岐点Ｂにぶら下げる。この場合、図５に示すように、ｒ−ｃ平面上における抵抗値と容量値との関係を表す線分は、分岐点Ｂの位置で容量ＣB の分だけ非連続となって折れ線状になるが、グラフに表すことは可能である。
【００３９】
この場合は、ドライバ１１からレシーバ１２に至るまでの配線抵抗および配線容量の値を、配線をノード毎に分割した各区間（図５中に▲１▼〜▲５▼で示すセグメント）毎に順にプロットしてそれぞれの区間方程式を決定する。このとき、区間▲１▼と区間▲５▼はそれぞれ、ドライバ１１とリピータ１６とのゲートサイズ差Ｒon（１／α−１／β）、リピータ１６とレシーバ１２との負荷容量差Ｃtr（γ−β）に依存し、この区間に点Ｐの最適解はあり得ない。よって、最適な点Ｐの位置を算出する場合にこの区間は考慮しなくても良いので、図５に示すような座標軸の変換を行う。
【００４０】
残りの区間▲２▼〜▲４▼のうち、区間▲２▼の線分は、ドライバ１１の入力から分岐点Ｂに至るまでの配線抵抗と配線容量とにより決定される線分である。区間▲３▼の線分は、分岐点Ｂに接続された着目枝以外の部分枝について、その総和の容量ＣB を与える線分である。また、区間▲４▼の線分は、分岐点Ｂから着目枝のレシーバ１２に至るまでの配線抵抗と配線容量とにより決定される線分である。本実施形態では、このように決定したｒ−ｃ平面の区間線分上で点Ｐを移動させ、そのとき作られる白抜き矩形の面積が最大となるポイントを見つける処理を行う。
【００４１】
図６は、ドライバ１１からレシーバ１２の間にリピータ１６を２つ挿入する場合の例を示す図である。この場合は、点Ｐ1 によって決まる白抜き矩形の面積と、点Ｐ2 によって決まる白抜き矩形の面積の総和が最大となる点Ｐ1 ，Ｐ2 をそれぞれ求める処理を行うことになる。
【００４２】
以上のことを、例えばドライバ１１からレシーバ１２の間にＮ個の区間を有する配線中にＮ個のリピータ１６を挿入する場合にも適用できるように、式を拡張して以下に説明する。Ｎ個の区間における区間線分の方程式をそれぞれ、
ｇ1(ｒ) ＝ａ1ｒ＋Ｃ1 
ｇ2(ｒ) ＝ａ2ｒ＋Ｃ2 
・・・・・・
ｇN(ｒ) ＝ａNｒ＋ＣN 
とする。また、それぞれの区間上に点Ｐ1 ，Ｐ2 ，…，ＰN が１つずつ存在するものとすると、それらの点Ｐ1 ，Ｐ2 ，…，ＰN によって決まる白抜き矩形の面積の総和Ｓr は、次の式(8) のように表される。
【００４３】
【数６】
0004472193.tif 000007
【００４４】
ここで、式(8) 中におけるｘ1 ，ｘ2 ，…，ｘN は、それぞれ点Ｐ1 ，Ｐ2 ，…，ＰN の位置を表す変数である。この式(8) を各位置変数ｘ1 ，ｘ2 ，…，ｘN で偏微分し、得られた結果を適当に並び替えると、式(9) のように表すことができる。この式(9) で表される行列式を計算し、ｘ1 ，ｘ2 ，…，ｘN の値を求めることにより、Ｎ個のリピータ１６を挿入する最適な位置が見つかる。
【００４５】
【数７】
0004472193.tif 000008
【００４６】
したがって、リピータ１６を１個挿入した場合、２個挿入した場合、・・・Ｎ個挿入した場合の白抜き矩形の面積をそれぞれ計算し、その中で最も面積が大きくなったものを最適解として選ぶことにより、ドライバ１１とレシーバ１２との間に挿入するリピータ１６の数と位置を求めることができる。なお、参考までに、リピータ１６を１個、２個あるいは３個挿入した場合の点Ｐの最適な位置を次の表１に示しておく。
【００４７】
【表１】
0004472193.tif 000009
【００４８】
次に、図１を用いて、上述のような本実施形態によるリピータ挿入方式を実現する装置の機能構成について説明する。
図１に示すように、本実施形態のリピータ挿入装置は、前処理部６、ネット抽出部７、ｒ−ｃグラフ作成部８およびリピータ挿入解析部９を備えている。上記前処理部６は、更にリピータ挿入前遅延演算部１０を備えている。
【００４９】
これらの各ブロック６〜９は、遅延コンストレイント１、ネットリスト２、セルタイミングライブラリ３、配線容量・配線抵抗データ４および配置配線データベース５の各情報を用いて以下のような処理を行う。すなわち、本実施形態のリピータ挿入方式では、まず、集積回路の論理的なデータとなるネットリスト２が必要である。また、集積回路内のセルやマクロ、あるいはブロックやサブチップレベルの配置配線後にリピータ１６の挿入を行うので、それらの配置座標などが分かる配置配線データベース５が必要である。
【００５０】
また、リピータ１６を挿入するネットは、配線が長く配線抵抗が支配的な領域であるので、配線容量・配線抵抗データ４も必要である。この配線容量・配線抵抗データ４は、メタル配線レイヤや配線の太さ、あるいは周囲の配線混雑具合などに応じて各ノード毎に設定される。また、リピータ１６の挿入前後の遅延解析を行う上で、セルやマクロなどの固有遅延を表したセルタイミングライブラリ３も必要である。さらに、リピータ１６の挿入時に、そのネットを速くするのか、遅くするのかなどを判断するために、遅延要求値である遅延コンストレイント１も必要となる。
【００５１】
前処理部６は、リピータ挿入の解析を行う前に必要な解析処理を行う。特に、リピータ挿入前遅延演算部１０において、リピータ１６を挿入する前の状態について遅延解析を行い、ネット上における各ノードの実際の遅延時間を演算する。なお、ノードとは、ドライバ１１からレシーバ１２に至るまでのパスを幾つかに分割したそれぞれの位置を言う。ノードの数や位置は、要求する解析精度と解析にかかる処理時間とのトレードオフで任意に決めれば良いが、配線の分岐点は必ずノードとして含む必要がある。
【００５２】
ネット抽出部７は、ネットリスト２が備える複数のネットの中から、長い配線を駆動しているネットを抽出する。これは、リピータ１６を挿入すべきネットは、比較的配線が長く配線抵抗が遅延に効いているような領域だからである。以降の処理は、ここで抽出したネットのみを対象として行う。
【００５３】
ｒ−ｃグラフ作成部８は、ドライバ１１からレシーバ１２に至るまでの配線抵抗および配線容量の値を各配線セグメント毎にプロットして区間方程式を決定することにより、ｒ−ｃグラフを作成する。なお、ここではｒ−ｃグラフを作成するとしているが、グラフそのものは作成せず、それに対応する区間方程式を作成するだけでも良いことは言うまでもない。
【００５４】
リピータ挿入解析部９は、作成されたｒ−ｃグラフをもとに、ｒ−ｃグラフの区間線分上で点Ｐを順次移動させ、そのとき作られる白抜き矩形の面積が最大となるポイントを見つける処理を行うことにより、リピータ１６を挿入する数と位置を解析する。
【００５５】
なお、図１に示した本発明による集積回路におけるリピータ挿入装置及び方法は、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラムは本発明の実施形態に含まれる。
【００５６】
具体的に、上記プログラムは、例えばＣＤ−ＲＯＭのような記録媒体に記録し、或いは各種伝送媒体を介し、コンピュータに提供される。上記プログラムを記録する記録媒体としては、ＣＤ−ＲＯＭ以外に、フロッピーディスク、ハードディスク、磁気テープ、光磁気ディスク、不揮発性メモリカード等を用いることができる。他方、上記プログラムの伝送媒体としては、プログラム情報を搬送波として伝搬させて供給するためのコンピュータネットワーク（ＬＡＮ、インターネットの等のＷＡＮ、無線通信ネットワーク等）システムにおける通信媒体（光ファイバ等の有線回線や無線回線等）を用いることができる。
【００５７】
また、コンピュータが供給されたプログラムを実行することにより上述の実施形態の機能が実現されるだけでなく、そのプログラムがコンピュータにおいて稼働しているＯＳ（オペレーティングシステム）あるいは他のアプリケーションソフト等と共同して上述の実施形態の機能が実現される場合や、供給されたプログラムの処理の全てあるいは一部がコンピュータの機能拡張ボードや機能拡張ユニットにより行われて上述の実施形態の機能が実現される場合も、かかるプログラムは本発明の実施形態に含まれる。
【００５８】
図７および図８は、本実施形態によるリピータ挿入アルゴリズムを詳細に示すフローチャートである。なお、このフローチャートの処理に入る前に、上述した遅延コンストレイント１、ネットリスト２、セルタイミングライブラリ３、配線容量・配線抵抗データ４および配置配線データベース５などのデータやライブラリを準備しておくことが必要である。
【００５９】
図７において、まず最初にリピータ挿入の前処理を行う。すなわち、まずステップＳ１１でネットリスト２の情報を読み込む。次のステップＳ１２では、その読み込んだネットリスト２を対象として、セルタイミングライブラリ３、配線容量・配線抵抗データ４および配置配線データベース５の各情報に基づいてリピータ挿入前の遅延解析を行い、各ノードのスルーレートおよび実際の遅延時間を算出する。そして、ステップＳ１３で、上記算出されたスルーレート２０を記録媒体に格納するとともに、ステップＳ１４で、上記算出されたリピータ挿入前の実際の遅延時間２１を記録媒体に格納する。以上がリピータ挿入前処理である。
【００６０】
次に、ステップＳ１５〜Ｓ１７において、上記ステップＳ１１で読み込んだネットリスト２の中から、長い配線を駆動しているネットを抽出し、それをリピータ挿入候補ネットのリスト２２として記録媒体に格納する。すなわち、個々のネット毎にネットの総容量からネット長を見積もり、そのネット長がある基準よりも長いものを抽出することにより、リピータ挿入による対処を行うべき長い配線のネットの候補を絞り込む。
【００６１】
以下、このように抽出された複数のネット候補Ｎrep の１つ１つに対して、ステップＳ１８〜図８のステップＳ３９のループ処理を行う。この中で、まずステップＳ１９〜Ｓ２１では、リピータ挿入候補として抽出されたネット候補Ｎrep のスルーレートをチェックする。すなわち、ステップＳ１９では、上記ステップＳ１３で記録媒体に格納された各ネットのスルーレート２０のうち、現在注目しているネット候補Ｎrep の入力スルーレートをチェックする。
【００６２】
そして、ステップＳ２０で、そのネット候補Ｎrep のスルーレートが基準値よりも大きいか否かを判断し、大きければステップＳ２１に進み、警告メッセージを出力する。すなわち、本実施形態のリピータ挿入アルゴリズムでは、エルモア遅延式を利用してリピータ１６の挿入位置を決めている。そのため、ドライバ１１に入ってくる信号は、ステップファンクションを想定している。そこで、ネットの入力スルーレートが基準値よりも大きい場合には、エルモア遅延式のモデルに合わなくなることをメッセージとして出力する。
【００６３】
このメッセージを受けたユーザは、必要に応じて集積回路の設計のやり直し（ネットリスト２、セルタイミングライブラリ３、配線容量・配線抵抗データ４、配置配線データベース５などの情報の更新）を行うことになる。なお、この警告メッセージを無視して処理を続行しても、著しく悪い結果は得られないが、そのネットについては最適なリピータ挿入位置には必ずしもならないことに注意しなければならない。
【００６４】
次に、図８のステップＳ２２〜Ｓ２９において、抽出されたネット候補Ｎrep のｒ−ｃグラフを作成する。すなわち、まずステップＳ２２では、現在注目しているネット候補Ｎrep が持つ１つ以上のリーフノードをリーフノードリスト２３として記録媒体に格納する。ここで、リーフノードとは、レシーバ１２の直前にあるノードのことを言う。
【００６５】
図９は、ある１つのネット候補Ｎrep およびそのｒ−ｃグラフの一例を示す図である。リピータ挿入すべきネット候補Ｎrep として抽出された１つのネットが図９（ａ）のように構成されているとする。このネットは、配線の途中に分岐点を有しており、１つのドライバ１１から２つのレシーバ１２へと２つのパスが形成されている。ドライバ１１の直後のノードをルートノードと呼び、レシーバ１２の直前のノードをリーフノードと呼ぶ。この図９（ａ）に示すネットにおいて一方のレシーバ１２に至るパスには、これらのルートノードおよびリーフノードの他に、３つのノードＮi ，Ｎi+1 ，Ｎi+2 が含まれている。
【００６６】
上記ステップＳ２２でリーフノードリスト２３を記録媒体に格納したら、その１つ以上のリーフノードの１つ１つに対して、ステップＳ２３〜Ｓ２９のループ処理を実行する。この中で、まずステップＳ２４では、ルートノードから１つのリーフノードまでパスを検索し、その途中に分岐点があるかどうかをステップＳ２５で判断する。そして、分岐点があった場合は、ステップＳ２６に進む。
【００６７】
ステップＳ２６では、現在注目しているリーフノード以外で、分岐点につながっている残りのリーフノードに至るパスの全ての容量（配線容量や入力ゲート容量）の総和ＣB を算出する。そして、ステップＳ２７で、上記算出した総容量ＣB を分岐点に付加する。図９（ａ）の例では分岐点を有しているので、このステップＳ２６、Ｓ２７の処理を行うことになる。
【００６８】
この場合、例えば一方のリーフノードｉに至るパスに注目していた場合、分岐点から他方のリーフノードｉ＋１までの部分枝の総容量ＣB を算出し、それを分岐点に付加する。また、ステップＳ２３〜Ｓ２９のループ処理が１回終わって、他方のリーフノードｉ＋１に至るパスに注目していた場合には、分岐点から一方のリーフノードｉまでの部分枝の総容量ＣB ’を算出し、それを分岐点に付加することになる。
【００６９】
上記ステップＳ２５で分岐点がないと判断した場合、および分岐点があると判断した場合において上記ステップＳ２７の処理を行った後は、ステップＳ２８に進む。ステップＳ２８では、配線セグメントごとに区間方程式を作成することにより、ｒ−ｃグラフを作成する。図９（ｂ）は、図９（ａ）に示すネットにおいて一方のリーフノードｉに注目したときに作成されるｒ−ｃグラフの例を示す図である。ｒ−ｃグラフ上において、配線セグメントは基本的にはノード間の位置に対応するが、分岐点においてはｒ−ｃ平面上では容量軸方向への「飛び」として現れる。
【００７０】
このようにしてｒ−ｃグラフを作成したら、次にステップＳ３０〜Ｓ３９のループ処理において、図６に示したようにｒ−ｃグラフの区間線分上で点Ｐを順次移動させ、そのとき作られる白抜き矩形の面積が最大となるポイントを見つける処理を行うことにより、リピータ１６を挿入する数と位置を解析する。
【００７１】
すなわち、まず、挿入するリピータ１６の個数を１個（Ｎ＝１）として、ステップＳ３１で後述するリピータ挿入アルゴリズムを実行し、リピータ１６を１個挿入したことにより速くなる遅延の最適な利得Ｓrep （上記白抜き矩形の最大面積）を計算する。そして、ステップＳ３２で、その計算した利得Ｓrep がリピータ１個分の固有遅延よりも大きいかどうかを判断する。ここで、リピータ１６の固有遅延よりも利得Ｓrep の方が大きくない場合には、リピータ１６を挿入する効果がないとしてミスとなる。
【００７２】
一方、リピータ１６の固有遅延よりも利得Ｓrep の方が大きい場合には、リピータ１６を挿入することになる。この場合は、ステップＳ３３に進み、今回リピータＮ個について計算した利得Ｓrep [N] の方が前回のループでリピータＮ−１個について計算した利得Ｓrep [N-1] よりも大きいかどうかを判断する。そして、今回計算した利得Ｓrep の方が大きい場合は、リピータ１６の数を更に１個増やせば利得Ｓrep がまだ大きくなる可能性があるので、ステップＳ３４に進み、リピータ１６の個数を１つ増やしてステップＳ３５からステップＳ３０へと戻る。なお、今の例ではリピータ１６の数を１個（Ｎ＝１）としており、前回のループ処理はないので、必ずステップＳ３４へ進むことになる。
【００７３】
ステップＳ３５からステップＳ３０へと戻った場合は、ステップＳ３１で、挿入するリピータ１６の個数を２個（Ｎ＝２）として後述するリピータ挿入アルゴリズムを実行し、リピータ１６を２個挿入したことにより速くなる遅延の最適な利得Ｓrep を計算する。そして、ステップＳ３２で、その計算した利得Ｓrep がリピータ２個分の固有遅延よりも大きいかどうかを判断し、その結果に応じて処理を分岐する。以下同様にして、挿入するリピータ１６の個数を１個ずつ増やしながらステップＳ３０〜Ｓ３５のループ処理を繰り返し実行していく。
【００７４】
そして、ステップＳ３３で、Ｎ個のリピータ１６を挿入する場合について計算した利得Ｓrep [N] が、Ｎ−１個のリピータ１６を挿入する場合について計算した利得Ｓrep [N-1] よりも大きくならなくなったら、リピータ１６をＮ−１個挿入する場合の挿入数が最適ということになる。この場合は、ステップＳ３６に進み、遅延コンストレイント１とリピータ挿入前の実際の遅延時間２１とを用いて、 Slack値（＝遅延要求値−実際の遅延）を計算する。
【００７５】
次のステップＳ３７では、上記計算した Slack値が小さくなっているかどうかを判断する。 Slack値が小さくなっていなければ、リピータ１６を挿入する効果がないのでミスとなる。一方 Slack値が小さくなっていれば、リピータ１６を挿入する効果があるので、ステップＳ３８に進み、リピータ１６をＮ−１個挿入するとしたときに計算したリピータ１６の挿入位置を解析の結果として返す。このようにして１つのネットに関する処理が終わると、ステップＳ３９から図７のステップＳ１８に戻り、次のネットへと処理を進める。
【００７６】
図２３は、リピータ１６の挿入個数に応じたリピータ１６の固有遅延と利得との関係を示す図である。図２３に示すように、リピータ１６の挿入個数を多くしていくと、リピータ１６の固有遅延はＮ倍ずつ大きくなっていく。一方、利得Ｓrep は、リピータ１６の挿入個数を多くしていくに従って対数的に大きくなっていき、リピータ１６の挿入個数に対する利得Ｓrep の増分は徐々に減ってくる。
【００７７】
そのため、ある挿入個数を境界として固有遅延の方が利得Ｓrep を上回ってしまい、それ以上リピータ１６を挿入すると却って遅延量が大きくなってしまうことになる。そこで、上記ステップＳ３７のような判断を行い、適切なリピータ個数を求めるようにしている。
【００７８】
以下に、上記図８のステップＳ３１におけるリピータ挿入アルゴリズムの詳細な例を示す。なお、ここでは、リピータ１６を１個挿入する場合の利得計算アルゴリズムを図１０および図１１に示し、リピータ１６を２個挿入する場合の利得計算アルゴリズムを図１２および図１３に示し、リピータ１６を３個挿入する場合の利得計算アルゴリズムを図１４および図１５に示す。
【００７９】
リピータ１６を１個挿入する場合の利得Ｓrep は、図１０（ａ）に示すように１つの白抜き矩形の面積Ｓ1 と等しくなる（Ｓrep ＝Ｓ1 ）。ここで、配線の端から抵抗ｘの分だけ進んだ位置にリピータ１６を挿入した場合における白抜き矩形の面積Ｓ1 は、
Ｓ1 ＝ｘ（Ｃ0 −ｇ1 (x) ）＝ａ1 ｘ（Ｒ1 −ｘ）
ただし、Ｒ1 ＝（Ｃ0 −Ｃ1 ）／ａ1 
と表せる。なお、Ｃ0 は配線の単位長さ当たりの容量、Ｃ1 は区間線分の容量軸との切片、ａ1 は区間線分の傾きである。
【００８０】
また、最適な利得Ｓrep を求める際には、図１０（ｂ）に示すように複数のセグメントｉ（ｉ＝Ｉ〜Ｖ）ごとに処理を進めていく。この場合において、１つのセグメントｉについて解析しているときに、得られたｘの値がそのセグメントｉの範囲内かどうか、つまり、Ｒi min ≦ｘ≦Ｒi max かどうかを判断し、この範囲を越えたｘの解が得られたときには、そのセグメントｉにおいてはｘの値をＲi min またはＲi max として処理を進めていく。
【００８１】
すなわち、図１１に示すように、ネット上の複数のセグメントｉの１つ１つ（ｉ＝１〜Ｅ）に対して、ステップＳ４１〜Ｓ５２のループ処理を繰り返し行う。この中で、まずステップＳ４２では、１つのセグメントｉにおける区間線分の傾きおよび容量軸切片にそれぞれ値ａ1 ，Ｃ1 を代入し、ステップＳ４３では、当該区間線分（正確にはその区間線分の延長線上にある直線全てを含む）上で白抜き矩形の面積Ｓ1 が最大となるｘの値を計算する。
【００８２】
そして、ステップＳ４４で、上記計算したｘの値がＲi min ≦ｘ≦Ｒi max を満たすかどうかを判断する。これを満たす場合には、計算されたｘの値が当該セグメントｉの範囲内にきちんと入っているということなので、ステップＳ４５に進んでその計算されたｘの値をそのまま採用する。一方、上記計算されたｘの値がＲi min ≦ｘ≦Ｒi max を満たさない場合は、計算されたｘの値が当該セグメントｉの範囲内に入っていないということなので、ステップＳ４６に進み、そのｘの値がＲi min より小さいかどうかを更に判断する。
【００８３】
ここで、上記計算されたｘの値がＲi min より小さい場合は、ステップＳ４７に進み、ｘの値としてＲi min を採用する。また、上記ステップＳ４６でｘの値がＲi min より小さくないと判断された場合は、ステップＳ４８に進み、ｘの値としてＲi max を採用する。以上のようにステップＳ４５、ステップＳ４７あるいはステップＳ４８において採用するｘの値が決まったら、ステップＳ４９に進み、求めたｘの値から白抜き矩形の面積Ｓ1 を計算することにより、利得Ｓrep を求める。
【００８４】
次のステップＳ５０では、上記ステップＳ４９にてあるセグメントについて計算された利得Ｓrep が、これまで他のセグメントについて計算された利得Ｓrep と比べて大きいかどうかを判断する。今回計算した利得Ｓrep がこれまで計算した中で最大であれば、ステップＳ５１に進み、そのときの利得Ｓrep およびｘの値を記録媒体に記憶した後、ステップＳ５２からステップＳ４１に戻り、次のセグメントｉ＋１へと処理を進める。
【００８５】
このようなループ処理を繰り返し行うことにより、リピータ１６を１個挿入する場合における最適なｘの値と利得Ｓrep が得られる。例えば、図１０（ｂ）において、ｘの最適解が２番目のセグメントII上にあるとすると、セグメントＩについて処理しているときにはステップＳ４８によりｘの値としてＲi max が採用され、セグメントIIについて処理しているときにはステップＳ４５によりｘの値がそのまま採用され、セグメントIII について処理しているときにはステップＳ４７によりｘの値としてＲi min が採用される。そして、セグメントIIについて処理しているときのｘの値および利得Ｓrep が、リピータ１６を１個挿入する場合の最適解として最終的に記録媒体に記憶されることになる。
【００８６】
また、リピータ１６を２個挿入する場合の利得Ｓrep は、図１２（ａ）に示すように２つの白抜き矩形の面積Ｓ1 ，Ｓ2 の合計面積と等しくなる（Ｓrep ＝Ｓ1 ＋Ｓ2 ）。この場合、図１２（ｂ）に示すように、２つのリピータ１６を挿入するセグメント（区間番号）をそれぞれｉ，ｊとした場合に、前段のセグメントｉと後段のセグメントｊはｉ≦ｊの関係にあるものとする。
【００８７】
ここで、配線の端から抵抗ｘの分だけ進んだ位置に前段のリピータ１６を挿入した場合における白抜き矩形の面積Ｓ1 は、
Ｓ1 ＝ｘ（Ｃ0 −ｇ1 (x) ）＝ａ1 ｘ（Ｒ1 −ｘ）
ただし、Ｒ1 ＝（Ｃ0 −Ｃ1 ）／ａ1 
と表せる。
【００８８】
また、配線の端から抵抗ｙの分だけ進んだ位置に後段のリピータ１６を挿入した場合における白抜き矩形の面積Ｓ2 は、
Ｓ2 ＝ｙ（Ｃ0 −ｇ2 (y) ）＝ａ2 （ｙ−ｘ）（Ｒ2 −ｙ）
ただし、Ｒ2 ＝（Ｃ0 −Ｃ2 ）／ａ2 
と表せる。なお、Ｃ0 は配線の単位長さ当たりの容量、Ｃ1 ，Ｃ2 はそれぞれの区間線分の容量軸との切片、ａ1 ，ａ2 はそれぞれの区間線分の傾きである。
【００８９】
また、リピータ１６を２個挿入する場合における最適な利得Ｓrep を求める際にも、図１２（ｃ）に示すように複数のセグメントごとに処理を進めていく。
【００９０】
すなわち、図１３に示すように、前段のリピータ１６に対してネット上の複数のセグメントｉの１つ１つ（ｉ＝１〜Ｅ）割り当てるとともに、後段のリピータ１６に対してネット上の複数のセグメントｊの１つ１つ（ｊ＝ｉ〜Ｅ）割り当てながら、ステップＳ６１〜Ｓ７９のループ処理を繰り返し行う。この中で、まずステップＳ６３では、１つのセグメントｉにおける区間線分の傾きおよび容量軸切片にそれぞれ値ａ1 ，Ｃ1 を代入するとともに、１つのセグメントｊにおける区間線分の傾きおよび容量軸切片にそれぞれ値ａ2 ，Ｃ2 を代入する。
【００９１】
次のステップＳ６４では、当該セグメントｉ，ｊの区間線分（正確にはこれらの区間線分の延長線上にある直線全てを含む）上で白抜き矩形の面積Ｓ1 ，Ｓ2 の合計面積が最大となるｘ，ｙの値を計算する。そして、ステップＳ６５で、上記ステップＳ６４にて計算されたｘの値がＲi min ≦ｘ≦Ｒi max を満たすかどうかを判断する。
【００９２】
これを満たす場合には、計算されたｘの値が当該セグメントｉの範囲内にきちんと入っているということなので、ステップＳ６６に進んでその計算されたｘの値をそのまま採用する。一方、上記計算されたｘの値がＲi min ≦ｘ≦Ｒi max を満たさない場合は、計算されたｘの値が当該セグメントｉの範囲内に入っていないということなので、ステップＳ６７に進み、そのｘの値がＲi min より小さいかどうかを更に判断する。
【００９３】
ここで、上記計算されたｘの値がＲi min より小さい場合は、ステップＳ６８に進み、ｘの値としてＲi min を採用する。また、上記ステップＳ６７でｘの値がＲi min より小さくないと判断された場合は、ステップＳ６９に進み、ｘの値としてＲi max を採用する。以上のようにステップＳ６６、ステップＳ６８あるいはステップＳ６９において採用するｘの値が決まったら、ステップＳ７０に進み、上記ステップＳ６４にて計算されたｙの値がＲj min ≦ｙ≦Ｒj max を満たすかどうかを判断する。
【００９４】
これを満たす場合には、計算されたｙの値が当該セグメントｊの範囲内にきちんと入っているということなので、ステップＳ７１に進んでその計算されたｙの値をそのまま採用する。一方、上記計算されたｙの値がＲj min ≦ｙ≦Ｒj max を満たさない場合は、計算されたｙの値が当該セグメントｊの範囲内に入っていないということなので、ステップＳ７２に進み、そのｙの値がＲj min より小さいかどうかを更に判断する。
【００９５】
ここで、上記計算されたｙの値がＲj min より小さい場合は、ステップＳ７３に進み、ｙの値としてＲj min を採用する。また、上記ステップＳ７２でｙの値がＲj min より小さくないと判断された場合は、ステップＳ７４に進み、ｙの値としてＲj max を採用する。以上のようにステップＳ７１、ステップＳ７３あるいはステップＳ７４において採用するｙの値も決まったら、ステップＳ７５に進み、求めたｘ，ｙの値から白抜き矩形の面積Ｓ1 ，Ｓ2 を計算することにより、利得Ｓrep （＝Ｓ1 ＋Ｓ2 ）を求める。
【００９６】
次のステップＳ７６では、上記ステップＳ７５にてあるセグメントについて計算された利得Ｓrep が、これまで他のセグメントについて計算された利得Ｓrep と比べて大きいかどうかを判断する。今回計算した利得Ｓrep がこれまで計算した中で最大であれば、ステップＳ７７に進み、そのときの利得Ｓrep およびｘ，ｙの値を記録媒体に記憶した後、ステップＳ７８からステップＳ６２に戻り、次のセグメントｊ＋１へと処理を進める。また、１つのセグメントｉについて全てのセグメントｊ（ｊ＝ｉ〜Ｅ）の処理が終わったら、ステップＳ７９からステップＳ６１に戻り、次のセグメントｉ＋１へと処理を進める。このようなｉ，ｊを変数としたループ処理を繰り返し行うことにより、リピータ１６を２個挿入する場合における最適なｘ，ｙの値と利得Ｓrep が得られる。
【００９７】
また、リピータ１６を３個挿入する場合の利得Ｓrep は、図１４（ａ）に示すように３つの白抜き矩形の面積Ｓ1 ，Ｓ2 ，Ｓ3 の合計面積と等しくなる（Ｓrep ＝Ｓ1 ＋Ｓ2 ＋Ｓ3 ）。この場合、図１４（ｂ）に示すように、３つのリピータ１６を挿入するセグメント（区間番号）をそれぞれｉ，ｊ，ｋとした場合に、前段のセグメントｉと中段のセグメントｊはｉ≦ｊの関係にあり、中段のセグメントｊと後段のセグメントｋはｊ≦ｋの関係にあるものとする。
【００９８】
ここで、配線の端から抵抗ｘの分だけ進んだ位置に前段のリピータ１６を挿入した場合における白抜き矩形の面積Ｓ1 は、
Ｓ1 ＝ｘ（Ｃ0 −ｇ1 (x) ）＝ａ1 ｘ（Ｒ1 −ｘ）
ただし、Ｒ1 ＝（Ｃ0 −Ｃ1 ）／ａ1 
と表せる。
【００９９】
また、配線の端から抵抗ｙの分だけ進んだ位置に中段のリピータ１６を挿入した場合における白抜き矩形の面積Ｓ2 は、
Ｓ2 ＝ｙ（Ｃ0 −ｇ2 (y) ）＝ａ2 （ｙ−ｘ）（Ｒ2 −ｙ）
ただし、Ｒ2 ＝（Ｃ0 −Ｃ2 ）／ａ2 
と表せる。
【０１００】
また、配線の端から抵抗ｚの分だけ進んだ位置に後段のリピータ１６を挿入した場合における白抜き矩形の面積Ｓ3 は、
Ｓ3 ＝ｚ（Ｃ0 −ｇ3 (z) ）＝ａ3 （ｚ−ｙ）（Ｒ3 −ｚ）
ただし、Ｒ3 ＝（Ｃ0 −Ｃ3 ）／ａ3 
と表せる。なお、Ｃ0 は配線の単位長さ当たりの容量、Ｃ1 ，Ｃ2 ，Ｃ3 はそれぞれの区間線分の容量軸との切片、ａ1 ，ａ2 、ａ3 はそれぞれの区間線分の傾きである。
【０１０１】
また、リピータ１６を３個挿入する場合における最適な利得Ｓrep を求める際にも、図１４（ｃ）に示すように複数のセグメントごとに処理を進めていく。
【０１０２】
すなわち、図１５に示すように、前段のリピータ１６に対してネット上の複数のセグメントｉの１つ１つ（ｉ＝１〜Ｅ）割り当て、中段のリピータ１６に対してネット上の複数のセグメントｊの１つ１つ（ｊ＝ｉ〜Ｅ）割り当て、更に後段のリピータ１６に対してネット上の複数のセグメントｋの１つ１つ（ｋ＝ｊ〜Ｅ）割り当てながら、ステップＳ８１〜Ｓ１０６のループ処理を繰り返し行う。
【０１０３】
この中で、まずステップＳ８４では、１つのセグメントｉにおける区間線分の傾きおよび容量軸切片にそれぞれ値ａ1 ，Ｃ1 を代入し、１つのセグメントｊにおける区間線分の傾きおよび容量軸切片にそれぞれ値ａ2 ，Ｃ2 を代入し、１つのセグメントｋにおける区間線分の傾きおよび容量軸切片にそれぞれ値ａ3 ，Ｃ3 を代入する。
【０１０４】
次のステップＳ８５では、当該セグメントｉ，ｊ，ｋの区間線分（正確にはこれらの区間線分の延長線上にある直線全てを含む）上で白抜き矩形の面積Ｓ1 ，Ｓ2 ，Ｓ3 の合計面積が最大となるｘ，ｙ，ｚの値を計算する。そして、ステップＳ８６で、上記ステップＳ８５にて計算されたｘの値がＲi min ≦ｘ≦Ｒi max を満たすかどうかを判断する。
【０１０５】
これを満たす場合には、計算されたｘの値が当該セグメントｉの範囲内にきちんと入っているということなので、ステップＳ８７に進んでその計算されたｘの値をそのまま採用する。一方、上記計算されたｘの値がＲi min ≦ｘ≦Ｒi max を満たさない場合は、計算されたｘの値が当該セグメントｉの範囲内に入っていないということなので、ステップＳ８８に進み、そのｘの値がＲi min より小さいかどうかを更に判断する。
【０１０６】
ここで、上記計算されたｘの値がＲi min より小さい場合は、ステップＳ８９に進み、ｘの値としてＲi min を採用する。また、上記ステップＳ８８でｘの値がＲi min より小さくないと判断された場合は、ステップＳ９０に進み、ｘの値としてＲi max を採用する。以上のようにステップＳ８７、ステップＳ８９あるいはステップＳ９０において採用するｘの値が決まったら、ステップＳ９１に進み、上記ステップＳ８５にて計算されたｙの値がＲj min ≦ｙ≦Ｒj max を満たすかどうかを判断する。
【０１０７】
これを満たす場合には、計算されたｙの値が当該セグメントｊの範囲内にきちんと入っているということなので、ステップＳ９２に進んでその計算されたｙの値をそのまま採用する。一方、上記計算されたｙの値がＲj min ≦ｙ≦Ｒj max を満たさない場合は、計算されたｙの値が当該セグメントｊの範囲内に入っていないということなので、ステップＳ９３に進み、そのｙの値がＲj min より小さいかどうかを更に判断する。
【０１０８】
ここで、上記計算されたｙの値がＲj min より小さい場合は、ステップＳ９４に進み、ｙの値としてＲj min を採用する。また、上記ステップＳ９３でｙの値がＲj min より小さくないと判断された場合は、ステップＳ９５に進み、ｙの値としてＲj max を採用する。以上のようにステップＳ９２、ステップＳ９４あるいはステップＳ９５において採用するｙの値が決まったら、ステップＳ９６に進み、上記ステップＳ８５にて計算されたｚの値がＲk min ≦ｚ≦Ｒk max を満たすかどうかを判断する。
【０１０９】
これを満たす場合には、計算されたｚの値が当該セグメントｋの範囲内にきちんと入っているということなので、ステップＳ９７に進んでその計算されたｚの値をそのまま採用する。一方、上記計算されたｚの値がＲk min ≦ｚ≦Ｒk max を満たさない場合は、計算されたｚの値が当該セグメントｋの範囲内に入っていないということなので、ステップＳ９８に進み、そのｚの値がＲk min より小さいかどうかを更に判断する。
【０１１０】
ここで、上記計算されたｚの値がＲk min より小さい場合は、ステップＳ９９に進み、ｚの値としてＲk min を採用する。また、上記ステップＳ９８でｚの値がＲk min より小さくないと判断された場合は、ステップＳ１００に進み、ｚの値としてＲk max を採用する。以上のようにステップＳ９７、ステップＳ９９あるいはステップＳ１００において採用するｚの値も決まったら、ステップＳ１０１に進み、求めたｘ，ｙ，ｚの値から白抜き矩形の面積Ｓ1 ，Ｓ2 ，Ｓ3 を計算することにより、利得Ｓrep （＝Ｓ1 ＋Ｓ2 ＋Ｓ3 ）を求める。
【０１１１】
次のステップＳ１０２では、上記ステップＳ１０１にてあるセグメントについて計算された利得Ｓrep が、これまで他のセグメントについて計算された利得Ｓrep と比べて大きいかどうかを判断する。今回計算した利得Ｓrep がこれまで計算した中で最大であれば、ステップＳ１０３に進み、そのときの利得Ｓrep およびｘ，ｙ，ｚの値を記録媒体に記憶した後、ステップＳ１０４からステップＳ８３に戻り、次のセグメントｋ＋１へと処理を進める。
【０１１２】
また、１つのセグメントｊについて全てのセグメントｋ（ｋ＝ｊ〜Ｅ）の処理が終わったら、ステップＳ１０５からステップＳ８２に戻り、次のセグメントｊ＋１へと処理を進める。また、１つのセグメントｉについて全てのセグメントｊ（ｊ＝ｉ〜Ｅ）の処理が終わったら、ステップＳ１０６からステップＳ８１に戻り、次のセグメントｉ＋１へと処理を進める。このようなｉ，ｊ，ｋを変数としたループ処理を繰り返し行うことにより、リピータ１６を３個挿入する場合における最適なｘ，ｙ，ｚの値と利得Ｓrep が得られる。
【０１１３】
以上詳しく説明したように、本実施形態では、分岐点やメタル乗り換えなどを含む実際の配線に沿ってｒ−ｃグラフを作成し、このｒ−ｃグラフの区間線分上で点Ｐを順次移動させながら、そのとき作られる白抜き矩形の面積が最大となるポイントを見つける処理を行うことで、ネット上でリピータ１６を挿入する数と位置を解析するようにしている。
【０１１４】
本実施形態でもループ処理による繰り返し演算を行うが、これは、矩形の面積を求める単純な式に異なるパラメータを順次与えていくだけの非常に単純なループ処理である。また、この計算では配線の経路や配線抵抗、配線容量などの簡単な物理量のみを利用している。そのため、リピータやディレイゲートを仮想的に挿入して試行錯誤していく従来の方式に比べて、最適解の算出方法が非常に簡単であり、処理の負荷を格段に小さくすることができる。また、複数あるネットのうち、配線長が比較的長いネット候補Ｎrep のみを解析の対象としているので、本来的に解析が不要なネットについては処理を省略することができる。
【０１１５】
また、本実施形態では、白抜き矩形の面積を求める際に、ドライバ１１、レシーバ１２およびリピータ１６のゲートサイズを表すα、β、γの値をそれぞれ異なる値に設定できるようにするとともに、配線容量・配線抵抗データ４によって配線レイヤに応じた容量値、抵抗値を設定できるようにしている。さらに、分岐点においては、注目している部分枝以外の他の部分枝については総容量ＣB に置き換えて計算上に反映するようにしているので、実際の配線に沿ったモデルに従って解析を行うことができる。
【０１１６】
したがって、本実施形態によれば、複雑な構成を有する集積回路においても、実際の配線に沿ったリピータ挿入の最適解を正確かつ短時間で得ることができるようになる。また、本実施形態のリピータ挿入方式は、配線の形状や経路が概略的にしか求められない設計初期のフロアープランや論理合成のネットであっても、ｒ−ｃグラフのゲートのオン抵抗と入力容量と固有遅延の情報さえあれば計算することができる。そのため、本実施形態の手法を設計の上流（初期）工程から下流（後期）工程へと広範囲に適用することで、これまで手戻りの作業負担が大きかったリピータの挿入配置問題を極めて少ない負担で解決することができるようになる。
【０１１７】
次に、本発明の他の実施形態について説明する。以上に述べた実施形態では、１つのネット上に分岐点があった場合に、その分岐点に接続される複数の部分枝のうちの１つに注目し、それ以外の部分枝については総容量ＣB で置き換えて、それぞれのパスを個別に処理していた。これに対して、以下に述べる実施形態では、全ての部分枝に注目してそれぞれｒ−ｃグラフを作成し、これらを相互に用いて最適解を求める。
【０１１８】
図１６は、本実施形態にて用いる１つのネットの例およびこれから作られるｒ−ｃグラフの例を示す図であり、（ａ）はネットの一例を示し、（ｂ）はｒ−ｃグラフの一例を示している。図１６（ａ）に示すネットでは、配線の途中に分岐点を有しており、１つのドライバ１１から２つのレシーバ１２へと２つのパスが形成されている。すなわち、ルートノードＯからノードＮ1 ，Ｎ2 ，Ｎ4 を介してリーフノードＮ5 に至るＡ→Ｃのパスと、ルートノードＯからノードＮ1 ，Ｎ2 ，Ｎ4 ’を介してリーフノードＮ5 ’に至るＡ→Ｂのパスとを有している。
【０１１９】
これらの２つのパスに注目してそれぞれｒ−ｃグラフを作成すると、図１６（ｂ）のようになる。ここで、パスＡ→Ｃのｒ−ｃグラフを作成するときは、分岐点から点Ｂに至る部分枝の全容量を容量ＣB に置き換えて分岐点にぶら下げる。また、パスＡ→Ｂのｒ−ｃグラフを作成するときは、分岐点から点Ｃに至る部分枝の全容量を容量ＣB ’に置き換えて分岐点にぶら下げる。このようにして２つのｒ−ｃグラフを作成したら、Ｒ0 Ｃ0 積が大きなパスから順にリピータ１６の挿入解析を行う。この例の場合、Ａ→Ｂのパスの方が遅延が大きいので、まずはこちらのパスに対してリピータ１６の挿入解析を行う。
【０１２０】
図１７は、このＡ→Ｂのパスに対してリピータ１６の挿入解析を行っている状態を示す図である。この図１７の例では、ルートノードＯから抵抗ｘ，ｙの分だけ進んだ位置に２つのリピータ１６を挿入した場合に最適になる（白抜き矩形面積の総和が最大となる）との結果が得られた状態を示している。図１８は、このｘ，ｙの位置に２つのリピータを挿入した様子を示す図である。
【０１２１】
図１８に示したようにパスＡ→Ｂの間にリピータ１６を挿入すると、パスＡ→Ｃ間の遅延がこの新たに挿入されたリピータ１６の影響を受けることが考えられる。そこで、パスＡ→Ｂについてリピータ１６の挿入解析を行った後は、解析の結果得られたｘ，ｙの位置に２つのリピータ１６を仮想的に挿入してネットリスト２のデータベースを更新した上で、続いてパスＡ→Ｃについてリピータ１６の挿入解析を行う。
【０１２２】
図１８のようにネットの内容を更新すると、分岐点（ノードＮ2 ）に挿入したリピータ１６を仮想的にドライバとして見ることができる。よって、ここではルートノードＯから分岐点であるノードＮ2 までのパスは省略し、ノードＮ2 を原点としてパスＡ→Ｃのｒ−ｃグラフを作成する。そして、このようにして作成したｒ−ｃグラフに基づいて、パスＡ→Ｃについてリピータ１６の挿入解析を行うことにより、パスＡ→Ｃに挿入するリピータ１６の最適解を求める。
【０１２３】
図１９は、パスＡ→Ｃに対してリピータ１６の挿入解析を行っている状態を示す図である。この図１９の例では、ノードＮ2 から抵抗ｘの分だけ進んだ位置に１つのリピータ１６を挿入した場合に最適になるとの結果が得られた状態を示している。図２０は、この図１９に基づく解析の結果得られたｘの位置に１個のリピータ１６を更に挿入した様子を示す図である。
【０１２４】
この図２０に示したようにパスＡ→Ｃの間にリピータ１６を更に１個挿入すると、パスＡ→Ｂ間の遅延がこの新たに挿入されたリピータ１６の影響を受けることが考えられる。そこで、パスＡ→Ｃについてリピータ１６の挿入解析を行った後は、解析の結果得られたｘの位置に１つのリピータ１６を仮想的に挿入してネットリスト２のデータベースを更新した上で、続いてパスＡ→Ｂについてリピータ１６の挿入解析を再び行うことにより、既に挿入したリピータ１６の位置の微調整を行う。
【０１２５】
以上のように、本実施形態では、分岐点に繋がる１つのパスについてリピータ１６の挿入解析を行った後、ここで求められた位置にリピータ１６を仮想的に挿入した上で、他のパスについてもリピータ１６の挿入解析を行う。そして、この解析結果に基づいて他のパス上にリピータ１６を仮想的に挿入した上で、既に解析したパスについて再度リピータ１６の挿入解析を行うことで、挿入位置の微調整を行うようにしている。
【０１２６】
これにより、より精度の高いリピータ分割位置を求めることができるようになる。また、上記他のパスについてリピータ１６の挿入解析を行うときは、図１９のように原点を移動して必要なところに絞って解析処理を行うことができるので、処理の負荷を軽減することができ、解析時間を更に短くすることができる。
なお、ここでは、リピータ１６の挿入解析を、パスＡ→Ｂ、パスＡ→Ｃ、パスＡ→Ｂと３回繰り返した時点で終了しているが、この繰り返し回数をこれより多くすることにより、解析精度をより向上させることができる。
【０１２７】
図２２は、本実施形態によるリピータ挿入アルゴリズムを用いて解析を行ったときの結果と、回路シミュレータを用いて解析を行ったときの結果とを比較する図である。このうち図２２（ａ）は、リピータ１６を１個挿入した場合における分割位置までの配線長と遅延時間との関係を示し、図２２（ｂ）はリピータ１６を２個挿入した場合における各分割位置までの配線長と遅延時間との関係を示している。
【０１２８】
図２２（ａ）および（ｂ）に示すグラフは、処理時間は非常に長くかかるが正確な結果を得ることが可能な“Spice ”という回路シミュレータを用いて計算した最適なリピータ１６の挿入位置（遅延時間が最短となる位置）を表している。すなわち、図２２（ａ）の場合はグラフが最下点となる位置が最適であり、図２２（ｂ）の場合は中央付近の小さなエリア内の位置が最適であることを示している。
【０１２９】
これに対して、本実施形態のリピータ挿入アルゴリズムを用いて解析した結果得られた挿入位置は、図２２（ａ）および（ｂ）中に●印で示してある。これから分かるように、本実施形態によるリピータ挿入アルゴリズムで処理を行った解析結果は、極めて信頼性のある回路シミュレータで処理を行った解析結果とほぼ同じ位置を表している。つまり、本実施形態によるアルゴリズムでも正確な結果を得ることができることを示している。
【０１３０】
なお、以上に説明した各実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその精神、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【０１３１】
本発明の様々な形態をまとめると、以下のようになる。
（１）集積回路内の配線に挿入するリピータの数および位置を解析する集積回路におけるリピータ挿入装置であって、
上記集積回路内の配線の経路および所定の物理量の情報をもとに、上記配線上に有する各ノード毎に配線抵抗と配線容量との関係を表したグラフを作成するグラフ作成手段と、
上記グラフ作成手段により作成されたグラフ上の点で、当該グラフ上の点を１つの角とした矩形の面積が最大となる点を上記リピータの挿入位置として求めるリピータ挿入解析手段とを備えることを特徴とする集積回路におけるリピータ挿入装置。
【０１３２】
（２）上記グラフ作成手段は、上記配線の途中に分岐点が存在する場合は、上記分岐点に接続される複数の部分枝のうちの１つに着目し、その他の部分枝については、その全容量を計算して上記分岐点に付加することにより当該全容量に置き換えることを特徴とする上記（１）に記載の集積回路におけるリピータ挿入装置。
【０１３３】
（３）上記所定の物理量は、配線レイヤに応じた配線抵抗、配線容量の情報を含むことを特徴とする上記（１）または（２）に記載の集積回路におけるリピータ挿入装置。
【０１３４】
（４）上記リピータ挿入解析手段は、配線の駆動側のドライバ、負荷側のレシーバおよび挿入するリピータに関してそれぞれ任意に設定されたサイズの下で上記矩形の面積を求めることを特徴とする上記（１）〜（３）の何れか１項に記載の集積回路におけるリピータ挿入装置。
【０１３５】
（５）上記リピータ挿入解析手段は、上記リピータを複数個挿入する場合には、上記グラフ作成手段により作成されたグラフ上の複数の点をそれぞれ１つの角とした複数の矩形の総面積が最大となる点を複数のリピータの挿入位置として求めることを特徴とする上記（１）〜（４）の何れか１項に記載の集積回路におけるリピータ挿入装置。
【０１３６】
（６）上記リピータ挿入解析手段は、上記リピータを１個〜Ｎ個挿入する場合についてそれぞれ解析処理を行い、その中で上記矩形の面積が最大となるときのリピータの数および挿入位置を最適解として求めることを特徴とする上記（５）に記載の集積回路におけるリピータ挿入装置。
【０１３７】
（７）上記グラフ作成手段および上記リピータ挿入解析手段は、上記配線の途中に分岐点が存在する場合は、上記分岐点に接続される複数の部分枝のうち１つに着目して上記グラフの作成およびリピータ挿入の解析を行った後、得られた位置に上記リピータを仮想的に挿入した上で、他の部分枝に着目して上記グラフの作成およびリピータ挿入の解析を行うという処理を繰り返し実行することを特徴とする上記（１）〜（６）の何れか１項に記載の集積回路におけるリピータ挿入装置。
【０１３８】
（８）上記集積回路内に含まれる複数の配線の中から配線長が基準値よりも長い配線を抽出する配線抽出手段を備え、
上記グラフ作成手段および上記リピータ挿入解析手段は、上記配線抽出手段により抽出された配線に対してのみ処理を実行することを特徴とする上記（１）〜（７）の何れか１項に記載の集積回路におけるリピータ挿入装置。
【０１３９】
（９）集積回路内の配線に挿入するリピータの数および位置を解析する集積回路におけるリピータ挿入方法であって、
上記集積回路内の配線の経路および所定の物理量の情報をもとに、上記配線上に有する各ノード毎に配線抵抗と配線容量との関係を表したグラフを作成するステップと、
上記作成されたグラフ上の点で、当該グラフ上の点を１つの角とした矩形の面積が最大となる点を上記リピータの挿入位置として求めるステップとを有することを特徴とする集積回路におけるリピータ挿入方法。
【０１４０】
（１０）上記配線の途中に分岐点が存在する場合は、上記分岐点に接続される複数の部分枝のうちの１つに着目し、その他の部分枝については、その全容量を計算して上記分岐点に付加することにより当該全容量に置き換えて上記グラフを作成することを特徴とする上記（９）に記載の集積回路におけるリピータ挿入方法。
【０１４１】
（１１）上記所定の物理量は、配線レイヤに応じた配線抵抗、配線容量の情報を含むことを特徴とする上記（９）または（１０）に記載の集積回路におけるリピータ挿入方法。
【０１４２】
（１２）上記配線の駆動側のドライバ、負荷側のレシーバおよび挿入するリピータに関してそれぞれ任意に設定されたサイズの下で、上記グラフ上の点を１つの角とした矩形の面積を求めることを特徴とする上記（９）〜（１１）の何れか１項に記載の集積回路におけるリピータ挿入方法。
【０１４３】
（１３）上記リピータを複数個挿入する場合には、上記グラフ作成手段により作成されたグラフ上の複数の点をそれぞれ１つの角とした複数の矩形の総面積が最大となる点を複数のリピータの挿入位置として求めることを特徴とする上記（９）〜（１２）の何れか１項に記載の集積回路におけるリピータ挿入方法。
【０１４４】
（１４）上記リピータを１個〜Ｎ個挿入する場合についてそれぞれ解析処理を行い、その中で上記矩形の面積が最大となるときのリピータの数および挿入位置を最適解として求めることを特徴とする上記（１３）に記載の集積回路におけるリピータ挿入方法。
【０１４５】
（１５）上記配線の途中に分岐点が存在する場合は、上記分岐点に接続される複数の部分枝のうち１つに着目して上記グラフの作成およびリピータ挿入の解析を行った後、得られた位置に上記リピータを仮想的に挿入した上で、他の部分枝に着目して上記グラフの作成およびリピータ挿入の解析を行うという処理を繰り返し実行することを特徴とする上記（９）〜（１４）の何れか１項に記載の集積回路におけるリピータ挿入方法。
【０１４６】
（１６）上記（１）の集積回路におけるリピータ挿入装置の各手段としてコンピュータを機能させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
（１７）上記（９）の集積回路におけるリピータ挿入方法の処理手順をコンピュータに実行させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【０１４７】
（１８）上記（１）の集積回路におけるリピータ挿入装置の各手段としてコンピュータを機能させるためのプログラム。
（１９）上記（９）の集積回路におけるリピータ挿入方法の処理手順をコンピュータに実行させるためのプログラム。
【０１４８】
【発明の効果】
以上説明したように本発明によれば、集積回路内の素子間を接続する配線に対して、ｒ−ｃグラフを描いて作図的にリピータの挿入数および挿入位置を計算することができ、複雑な構成を有する集積回路においても、実際の配線に沿ったリピータ挿入の最適解を正確かつ短時間で得ることができるようになる。すなわち、この計算には、従来の回路シミュレータや遅延解析ツールのようなものを必要とせず、配線のメタル乗り換えや分岐などを正しく評価してリピータの挿入位置を決定することができる。
【図面の簡単な説明】
【図１】本実施形態による集積回路におけるリピータ挿入装置の要素的特徴を示す機能構成ブロック図である。
【図２】本実施形態によるリピータ挿入方式の理論を説明するための図である。
【図３】式(7) とｒ−ｃ平面との関係を示す図である。
【図４】式(6) とｒ−ｃ平面との関係を示す図である。
【図５】配線の途中に分岐点を有するモデルおよび、そのモデルにおけるリピータ挿入前後の遅延時間差の式とｒ−ｃ平面との関係を示す図である。
【図６】ドライバからレシーバの間にリピータを２つ挿入する場合における点Ｐの算出例を示す図である。
【図７】本実施形態によるリピータ挿入アルゴリズムを詳細に示すフローチャートである。
【図８】本実施形態によるリピータ挿入アルゴリズムを詳細に示すフローチャートである。
【図９】ある１つのネットおよびそのｒ−ｃグラフの一例を示す図である。
【図１０】リピータを１個挿入する場合における利得計算の例を示す図である。
【図１１】リピータを１個挿入する場合における利得計算の処理例を示すフローチャートである。
【図１２】リピータを２個挿入する場合における利得計算の例を示す図である。
【図１３】リピータを２個挿入する場合における利得計算の処理例を示すフローチャートである。
【図１４】リピータを３個挿入する場合における利得計算の例を示す図である。
【図１５】リピータを３個挿入する場合における利得計算の処理例を示すフローチャートである。
【図１６】他の実施形態にて用いる１つのネットの例およびこれから作られるｒ−ｃグラフの例を示す図である。
【図１７】パスＡ→Ｂに対してリピータの挿入解析を行っている状態を示す図である。
【図１８】パスＡ→Ｂに対してリピータを挿入した様子を示す図である。
【図１９】パスＡ→Ｃに対してリピータの挿入解析を行っている状態を示す図である。
【図２０】パスＡ→Ｃに対してリピータを挿入した様子を示す図である。
【図２１】パスＡ→Ｂに対して再度リピータの挿入解析を行っている状態を示す図である。
【図２２】本実施形態によるリピータ挿入方式を用いて解析を行ったときの結果と、回路シミュレータを用いて解析を行ったときの結果とを比較する図である。
【図２３】リピータの挿入個数に応じたリピータの固有遅延と利得との関係を示す図である。
【図２４】遅延方程式を解析的に求めて配線線路を等間隔に分割する方法を説明するための図である。
【図２５】リピータ分割前の配線長とリピータ分割数との関係を示す図である。
【図２６】遅延解析ツールによる処理手順を示すフローチャートである。
【図２７】遅延解析ツールによる処理例を示す図である。
【符号の説明】
１  遅延コンストレイント
２  ネットリスト
３  セルタイミングライブラリ
４  配線容量・配線抵抗データ
５  配置配線データベース
６  前処理部
７  ネット抽出部
８  ｒ−ｃグラフ作成部
９  リピータ挿入解析部
１０  リピータ挿入前遅延演算部
１１  ドライバ
１２  レシーバ
１３  配線
１４，１５  分割された配線
１６  リピータ
【図１】
0004472193.tif 000010
【図２】
0004472193.tif 000011
【図３】
0004472193.tif 000012
【図４】
0004472193.tif 000013
【図５】
0004472193.tif 000014
【図６】
0004472193.tif 000015
【図７】
0004472193.tif 000016
【図８】
0004472193.tif 000017
【図９】
0004472193.tif 000018
【図１０】
0004472193.tif 000019
【図１１】
0004472193.tif 000020
【図１２】
0004472193.tif 000021
【図１３】
0004472193.tif 000022
【図１４】
0004472193.tif 000023
【図１５】
0004472193.tif 000024
【図１６】
0004472193.tif 000025
【図１７】
0004472193.tif 000026
【図１８】
0004472193.tif 000027
【図１９】
0004472193.tif 000028
【図２０】
0004472193.tif 000029
【図２１】
0004472193.tif 000030
【図２２】
0004472193.tif 000031
【図２３】
0004472193.tif 000032
【図２４】
0004472193.tif 000033
【図２５】
0004472193.tif 000034
【図２６】
0004472193.tif 000035
【図２７】
0004472193.tif 000036