JP4268694B2 - Wiring processing method, wiring processing apparatus, and recording medium for wiring processing program - Google Patents

Wiring processing method, wiring processing apparatus, and recording medium for wiring processing program Download PDF

Info

Publication number
JP4268694B2
JP4268694B2 JP26402297A JP26402297A JP4268694B2 JP 4268694 B2 JP4268694 B2 JP 4268694B2 JP 26402297 A JP26402297 A JP 26402297A JP 26402297 A JP26402297 A JP 26402297A JP 4268694 B2 JP4268694 B2 JP 4268694B2
Authority
JP
Japan
Prior art keywords
wiring
segment
delay time
delay
equal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP26402297A
Other languages
Japanese (ja)
Other versions
JPH10223765A (en
Inventor
則之 伊藤
知之 磯村
弘 池田
敏彦 多田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP26402297A priority Critical patent/JP4268694B2/en
Publication of JPH10223765A publication Critical patent/JPH10223765A/en
Application granted granted Critical
Publication of JP4268694B2 publication Critical patent/JP4268694B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Description

【0001】
(目次)
発明の属する技術分野
従来の技術(図32〜図36)
発明が解決しようとする課題(図34)
課題を解決するための手段
発明の実施の形態
(a)本発明の一実施形態にかかる会話型回路設計装置の構成の説明(図1,図2)
(b)本発明の一実施形態にかかる会話型回路設計装置による配線処理方法の説明
(b1)クロックスキューを低減させるための配線処理方法の第1の態様の説明(図3〜図8)
(b2)クロックスキューを低減させるための配線処理方法の第2の態様の説明(図9〜図14)
(b3)クロックスキューを低減させるための配線処理方法の第3の態様の説明(図15,図16)
(b4)配線経路を決定するための配線処理方法の第1の態様の説明(図17〜図24)
(b5)配線経路を決定するための配線処理方法の第2の態様の説明(図25〜図28)
(b6)配線経路を決定するための配線処理方法の第3の態様の説明(図29〜図31)
発明の効果
【0002】
【発明の属する技術分野】
本発明は、計算機支援設計システム(CAD;computer aided design )において、大規模集積回路(LSI;large scale integration)の設計の際に用いて好適な、配線処理方法及び配線処理装置並びに配線処理プログラム用記録媒体に関する。
【0003】
例えばクロック同期式回路におけるクロック分配回路上の各クロックネットにおいては、クロック発生回路(ドライバ)から各クロック受信回路(レシーバ)へのディレイ時間(クロックの伝搬遅延時間)を等しくする、即ち、クロックの伝搬遅延時間の差分であるクロックスキューを小さくすることは、クロック分配回路の動作を安定させるために非常に重要な技術である。即ち、クロックスキューが大きいと、各クロックネットにおいては各レシーバが同期動作を行なうことができなくなるため、クロック分配回路のクロックスキューを低減する必要がある。
【0004】
また、LSIにおいては、処理の高速化を図るために、LSI上の各回路を接続する配線長の最小化及び配線性を向上させる必要もある。
この際に、配線を行なう前段階で配線可能性を見積もり、この配線可能性により各回路の配置の改善や配線領域の最適化を行なうことも考えられる。
特に、現在では、配線対象が巨大化しているため、早い段階での配線可能性の算出及び評価が必要とされている。
【0005】
【従来の技術】
クロック同期式回路におけるクロックの伝搬遅延時間(ディレイ時間)の差分であるクロックスキューを低減させるための配線処理方法は、これまでに数多く報告されている。
以下では、クロックスキューを低減させるための配線処理方法のうちで、代表的な方法であるIBMによる方法について説明する。なお、この方法は、「Ren-Song Tsay,“Exact zero skew",Proc.IEEE Int.Conference on CAD,pp336-339,1991」に詳細に記載されている。
【0006】
ここで、このクロックスキューを低減させるための配線処理方法を説明するにあたり、まず、クロック同期式回路におけるクロック分配回路上のクロックネットにおけるクロック・トリーの構成を図34に示す。
クロック・トリー130は、図34に示すように、レシーバ(クロック受信回路)112とワイヤ118からなるサブ・クロック・トリーと、レシーバ(クロック受信回路)115とワイヤ121からなるサブ・クロック・トリーとが、等ディレイ分岐点(タッピングポイント:tapping point )xを介して接続されることにより構成されている。
【0007】
即ち、クロック・トリー130においては、図34においては図示しないドライバ(クロック発生回路)からのクロックが、等ディレイ分岐点xを介してレシーバ112,115に供給されるようになっている。
ここで、レシーバ112は、フリップフロップ回路(時定数t1 )113とコンデンサ(容量C1 )114とをそなえて構成され、レシーバ115は、フリップフロップ回路(時定数t2 )116とコンデンサ(容量C2 )117とをそなえて構成されている。
【0008】
また、ワイヤ118は、1つの抵抗(抵抗値r1 )119と2つのコンデンサ(容量c1 /2)120からなるΠ型RC回路により構成されている。
さらに、ワイヤ121も、ワイヤ118と同様に1つの抵抗(抵抗値r2 )122と2つのコンデンサ(容量c2 /2)123からなるΠ型RC回路により構成されている。
【0009】
ここで、図34において、レシーバ112,115間を接続する配線を1つのΠ型RC回路で表す理由について説明する。
まず、1つのサブ・クロック・トリーについて着目して考える。
図32は、バッファ付きクロック・トリーをモデル化して示したものであり、バッファ付きクロック・トリー100は、図32に示すように、ドライバとしてのクロック発生回路(クロックソース;clock source)101と、レシーバとしてのクロック受信回路(ラッチ;latch )103とがバッファ(buffer)102を介して接続されることにより構成されたものである。
【0010】
ここで、クロックソース101とバッファ102とはワイヤ(wire)104により接続され、バッファ102とラッチ103とはワイヤ(wire)105により接続されている。
このバッファ付きクロック・トリー100は、詳細には、図33に示すような構成を有している。
【0011】
クロックソース101は抵抗(抵抗値rs )106をそなえており、バッファ102はディレイ回路(内部ディレイ時間db )111,抵抗(抵抗値rb )107及びコンデンサ(容量cb )109をそなえており、ラッチ103はコンデンサ(容量c1 )110をそなえている。
ここで、クロックソース101からラッチ103までのディレイ時間としては、バッファ102のディレイ回路111による内部ディレイ時間db のほか、ワイヤ104,105の配線抵抗によるディレイ時間等が考えられる。
【0012】
このうち、配線抵抗については、近年の半導体微細加工技術の進歩によるトランジスタサイズ及び配線断面積の減少ため、無視することができなくなっている。
そこで、ディレイ時間の予測精度上、ワイヤ104,105を、分布定数回路として扱うことが必要となっており、この分布定数回路を模式化した集中定数回路として、ワイヤ104,105を、図33に示すように、それぞれ1つの抵抗(抵抗値rs )106と2つのコンデンサ(容量c1 /2)108からなるΠ型RC回路で評価する考え方が一般的となっている。
【0013】
ところで、等ディレイ分岐点xは、前述したように、図34においては図示しないドライバ(クロック発生回路)からのクロックが入力される点である。
この図34に示すクロック・トリー130においては、等ディレイ分岐点xの位置により、クロック・トリー130の2つのサブ・クロック・トリーにおけるクロックスキューが変化するため、クロック・トリー130におけるクロックスキューを低減させるには、等ディレイ分岐点xの位置の設定を正確に行なうことが必要となる。
【0014】
ここで、2つのサブ・クロック・トリー間の配線における等ディレイ分岐点xの決定方法(zero-skew-merge ) について説明すると、この等ディレイ分岐点xは、次式を満たすことが知られている。
1 (c1 /2+C1 )+t1 =r2 (c2 /2+C2 )+t2
このとき、
L:2つのサブ・クロック・トリー間の線長
α:線路の単位長当たりの抵抗
β:線路の単位長当たりの容量
とすると、等ディレイ分岐点xは、
x=〔(t2 −t1 )+αL(C2 +βL/2)〕/〔αL(βL+C1 +C2 )〕
により決定することができる。
【0015】
ところで、LSI上の各回路は、自動配線において探索された最適な配線経路により接続される。
自動配線において配線経路を探索する方法は、これまで数多く報告されているが、以下では、線分探索法の一種である三上・田淵による方法(三上・田淵法)について説明する。
【0016】
ここで、線分探索法とは、垂直又は水平の探針を次々に発生することにより配線経路を探索する方法であり、少ない記憶容量で高速処理できる利点がある。
三上・田淵法では、図35に示すように、まず探索の開始点S及び探索の終了点Tからレベル0の仮線分を水平方向に発生し、これらの仮線分が重複しない場合には、続いてレベル0の仮線分に垂直に交わるレベル1の仮線分を発生する。
【0017】
そして、これらのステップを繰り返し、両側からの仮線分が交差したときには、交差した仮線分を逆探索することにより、例えば図36に示すような配線経路を見つけることができる。
この三上・田淵法では、配線経路が存在する場合は必ずその配線経路を見つけることができるが、レベルが増すに伴って加速度的に仮線分数が増すことから、最悪の場合は格子点の数に等しい仮線分を調べることになる。このため、通常は仮線分のレベル数を例えば2又は3に限定して用いている。
【0018】
【発明が解決しようとする課題】
しかしながら、図34に示すようなクロック・トリー130においては、前述したようにワイヤ118,121を、それぞれシングルΠ型RC回路(Π型RCモデル)で評価している。
これは、等ディレイ分岐点xを決定する際に、等ディレイ分岐点xの両側の配線における単位グリッド当たりの抵抗及び容量が場所によらず等しいと仮定しているからである。
【0019】
ところが、現実には、単位グリッド当たりの抵抗及び容量が場所によらず等しいということはありえないため、ワイヤ118,121を複数のセグメントに分割することにより直列Π型RC回路(直列Π型RCモデル)で評価して、等ディレイ分岐点xを決定する必要があるという課題がある。
また、図34に示すようなクロック・トリー130においては、等ディレイ分岐点xを決定する際に、より現実に即したものとするために、図示しないクロック発生回路に負荷がつくことにより増加するゲートディレイ(外部クロックディレイ時間;extra-source gate delay )を考慮しながら、クロック発生回路から各クロック受信回路までのディレイ時間を目的値に設定する必要があるという課題もある。
【0020】
さらに、前述したような、自動配線において配線経路を探索する方法の1つである三上・田淵法においては、同レベルの各仮線分(探索線分)の処理は相互に影響を及ぼさないため、各探索線分の処理を並列に実行することができれば探索処理の高速化が可能である。
また、この三上・田淵法では、一度探索された点は再度探索されることはないため、最適な配線経路が探索される前に最適でない配線経路が探索された場合には、最適ではない配線経路が選択されてしまうという課題がある。
【0021】
このため、複数の配線経路を探索できるようにして、その中から最適な配線経路を選択する方法が必要である。
さらに、前述したように、LSIにおいては、配線を行なう前段階で配線可能性を見積もることができれば、この配線可能性により各回路の配置の改善や配線領域の最適化を行なうことも考えられる。
【0022】
しかしながら、各回路の配置終了時に配線対象の配線可能性を知ることは困難であるため、配線を行なうまでは配線可能性を知ることができないという課題がある。
本発明は、このような課題に鑑み創案されたもので、CADにおいて、LSIの設計の際に用いて好適な配線処理方法であって、具体的には、正確に等ディレイ分岐点を決定したり外部クロックディレイ時間を考慮することによりクロック分配回路のクロックスキューを低減させ、配線経路の探索における各探索線分の処理を並列に実行できるようにして処理の高速化を図り、最適な配線経路を選択できるようにしてLSI上の各回路を接続する配線長の最小化及び配線性を向上させ、配線を行なう前段階で配線可能性を見積もることにより各回路の配置の改善や配線領域の最適化を行なえるようにした、配線処理方法及び配線処理装置を提供することを目的とするとともに、更にはこのような配線処理を行なうための手順をコンピュータに実行させるための配線処理プログラムを記録した配線処理プログラム用記録媒体を提供することを目的とする。
【0023】
【課題を解決するための手段】
このため、本発明の配線処理方法は、クロック同期式回路におけるクロック分配回路上のクロックネットにおける2つのレシーバ間を接続する配線について、2個以上の分岐点を設定することにより、3個以上のセグメントに分割するセグメント分割ステップと、該セグメント分割ステップで得られたセグメントについて、該セグメントの一端に位置する一分岐点から上記2つのレシーバのうちの一方のレシーバへの第1ディレイ時間と、該一分岐点から上記2つのレシーバのうちの他方のレシーバへの第2ディレイ時間とを比較するとともに、該セグメントの他端に位置する他分岐点から上記2つのレシーバのうちの一方のレシーバへの第3ディレイ時間と、該他分岐点から上記2つのレシーバのうちの他方のレシーバへの第4ディレイ時間とを比較し、上記の第1ディレイ時間と第2ディレイ時間との大小関係と上記の第3ディレイ時間と第4ディレイ時間との大小関係とが反転するセグメントを等ディレイ分岐点が存在する等ディレイ分岐セグメントとして決定する等ディレイ分岐セグメント決定ステップと、該等ディレイ分岐セグメント決定ステップで求められた該等ディレイ分岐セグメント中で等ディレイ分岐点を求める等ディレイ分岐点決定ステップとをそなえて構成され、該等ディレイ分岐セグメント決定ステップにおける上記の第1〜第4ディレイ時間が、
【数7】

Figure 0004268694
により求められ、該等ディレイ分岐点決定ステップにおける該等ディレイ分岐点が、
【数8】
Figure 0004268694
により求められることを特徴としている(請求項1)。
【0024】
ここで、該セグメント分割ステップにおいて設定される該分岐点は、該配線上の物理的な分岐点であってもよく(請求項2)、該セグメント分割ステップにおいて設定される該分岐点は、該配線の単位長当たりのインピーダンスが変化する点であってもよい(請求項3)。
また、該セグメント分割ステップにおいて求められる該セグメントはシングルΠ型回路で評価することができる(請求項4)。
【0027】
らに、本発明の配線処理方法は、クロック同期式回路におけるクロック分配回路上の配線について、2個以上の分岐点を設定することにより、3個以上のセグメントに分割するセグメント分割ステップと、該セグメント分割ステップで得られた各セグメント毎のディレイ時間を考慮した該配線のプロパゲーションディレイ時間を求めるプロパゲーションディレイ時間決定ステップと、該プロパゲーションディレイ時間決定ステップで求められた該配線のプロパゲーションディレイ時間と設定時間とを比較して、この比較結果に基づいて、該セグメント単位で配線長を調整する配線長調整ステップとをそなえて構成されたことを特徴としている(請求項)。
【0028】
ここで、該セグメント分割ステップにおいて設定される該分岐点は、該配線の単位長当たりのインピーダンスが変化する点であ(請求項)。また、該セグメント分割ステップにおいて求められる該セグメントはシングルΠ型回路で評価される(請求項)。さらに、本発明の配線処理方法は、クロック同期式回路におけるクロック分配回路上のクロックネットにおける2つのレシーバ間を接続する配線について、2個以上の分岐点を設定することにより、3個以上のセグメントに分割する第1セグメント分割ステップと、該第1セグメント分割ステップで得られたセグメントについて、該セグメントの一端に位置する一分岐点から上記2つのレシーバのうちの一方のレシーバへの第1ディレイ時間と、該一分岐点から上記2つのレシーバのうちの他方のレシーバへの第2ディレイ時間とを比較するとともに、該セグメントの他端に位置する他分岐点から上記2つのレシーバのうちの一方のレシーバへの第3ディレイ時間と、該他分岐点から上記2つのレシーバのうちの他方のレシーバへの第4ディレイ時間とを比較し、上記の第1ディレイ時間と第2ディレイ時間との大小関係と上記の第3ディレイ時間と第4ディレイ時間との大小関係とが反転するセグメントを等ディレイ分岐点が存在する等ディレイ分岐セグメントとして決定する等ディレイ分岐セグメント決定ステップと、該等ディレイ分岐セグメント決定ステップで求められた該等ディレイ分岐セグメント中で等ディレイ分岐点を求める等ディレイ分岐点決定ステップと、該等ディレイ分岐点決定ステップで求められた該等ディレイ分岐点から各レシーバへの第5ディレイ時間を求めるディレイ時間決定ステップと、該等ディレイ分岐点から外部クロック源取込み部へ至る配線について、2個以上の分岐点を設定することにより、3個以上のセグメントに分割する第2セグメント分割ステップと、該第2セグメント分割ステップで得られた各セグメント毎のディレイ時間を考慮した該配線のプロパゲーションディレイ時間を求めるプロパゲーションディレイ時間決定ステップと、該ディレイ時間決定ステップで求められた該等ディレイ分岐点から各レシーバへの該第5ディレイ時間と該プロパゲーションディレイ時間決定ステップで求められた該配線のプロパゲーションディレイ時間とを加算した時間と、設定時間とを比較して、この比較結果に基づいて、セグメント単位で配線長を調整する配線長調整ステップとをそなえて構成されたことを特徴としている(請求項)。
【0029】
ここで、該配線長調整ステップにて、該第5ディレイ時間と該プロパゲーションディレイ時間と該外部クロック源取込み部での外部クロックディレイ時間とを加算した時間と、設定時間とを比較した比較結果に基づいて、セグメント単位で配線長を調整してもよい(請求項)。また、本発明に関連する配線処理方法は、回路基板上の配線についての配線経路を決定するに際し、予め、該配線の最小ピッチを単位として、配線領域を格子状に分割し、格子点が該配線に使用可能であるかどうかを示す使用可能フラグと、格子点に探索線分が到着したことを示す到着状況フラグと、格子点に探索線分が到着した方向を示す到着方向フラグとを用意した状態で、該到着状況フラグが探索線分到着を示している格子点に隣接する隣接格子点について、該使用可能フラグが使用可能状態を示しており、且つ、該到着状況フラグが探索線分未到着を示している場合に、該隣接格子点の該到着状況フラグを探索線分到着を示す状態にするともに、該隣接格子点の該到着方向フラグにその探索方向を表示させる隣接格子点フラグ処理手順を並列的に実行し、更に該隣接格子点フラグ処理手順を、各探索線分について、該到着状況フラグを探索線分到着を示す状態にするような格子点がなくなるまで、繰り返して実行する前方探索処理ステップと、該前方探索処理ステップの後に、所望の格子点から該到着方向フラグに従って、配線経路をさかのぼっていくことにより、配線経路を検索する後方探索処理ステップとをそなえて構成されていることを特徴としている。
【0030】
さらに、本発明に関連する配線処理方法は、回路基板上の配線についての配線経路を決定するに際し、予め、該配線の最小ピッチを単位として、配線領域を格子状に分割し、格子点に探索線分が到着した方向を示す到着方向フラグを用意した状態で、各格子点について、該到着方向フラグにその探索方向を複数表示させながら、前方探索を行なっていく前方探索処理ステップと、該前方探索処理ステップの後に、所望の格子点から該到着方向フラグに従って、配線経路をさかのぼっていくことにより、複数の配線経路を検索する後方探索処理ステップと、該後方探索処理ステップで得られた複数の配線経路から最適な配線経路を決定する最適配線経路決定ステップとをそなえて構成されていることを特徴としている。
【0031】
また、本発明に関連する配線処理方法は、回路基板上の回路についての配置を決定する回路配置決定ステップと、該回路配置決定ステップにて、該回路についての配置を決定した後に、該回路を接続する配線の総配線長をLとし、該配線に使用される点の数をGとして、(L−G)/Lを該配線についての配線混雑度として評価する配線混雑度評価ステップとそなえて構成されていることを特徴としている。
【0032】
さらに、本発明の配線処理装置は、クロック同期式回路におけるクロック分配回路上のクロックネットにおける2つのレシーバ間を接続する配線について、2個以上の分岐点を設定することにより、3個以上のセグメントに分割するセグメント分割処理部と、該セグメント分割処理部で得られたセグメントについて、該セグメントの一端に位置する一分岐点から上記2つのレシーバのうちの一方のレシーバへの第1ディレイ時間と、該一分岐点から上記2つのレシーバのうちの他方のレシーバへの第2ディレイ時間とを比較するとともに、該セグメントの他端に位置する他分岐点から上記2つのレシーバのうちの一方のレシーバへの第3ディレイ時間と、該他分岐点から上記2つのレシーバのうちの他方のレシーバへの第4ディレイ時間とを比較し、上記の第1ディレイ時間と第2ディレイ時間との大小関係と上記の第3ディレイ時間と第4ディレイ時間との大小関係とが反転するセグメントを等ディレイ分岐点が存在する等ディレイ分岐セグメントとして決定する等ディレイ分岐セグメント決定処理部と、該等ディレイ分岐セグメント決定処理部で求められた該等ディレイ分岐セグメント中で等ディレイ分岐点を求める等ディレイ分岐点決定処理部とをそなえて構成され、該等ディレイ分岐セグメント決定処理部が上記の第1〜第4ディレイ時間を、
【数9】
Figure 0004268694
により求め、該等ディレイ分岐点決定処理部における該等ディレイ分岐点を、
【数10】
Figure 0004268694
により求めることを特徴としている(請求項)。
【0033】
また、本発明の配線処理装置は、クロック同期式回路におけるクロック分配回路上の配線について、2個以上の分岐点を設定することにより、3個以上のセグメントに分割するセグメント分割処理部と、該セグメント分割処理部で得られた各セグメント毎のディレイ時間を考慮した該配線のプロパゲーションディレイ時間を求めるプロパゲーションディレイ時間決定処理部と、該プロパゲーションディレイ時間決定処理部で求められた該配線のプロパゲーションディレイ時間と設定時間とを比較して、この比較結果に基づいて、該セグメント単位で配線長を調整する配線長調整処理部とをそなえて構成され、該セグメント分割処理部において設定される該分岐点が、該配線の単位長当たりのインピーダンスが変化する点であり、該セグメント分割処理部において求められる該セグメントがシングルΠ型回路で評価されることを特徴としている(請求項)。
【0034】
さらに、本発明の配線処理装置は、クロック同期式回路におけるクロック分配回路上のクロックネットにおける2つのレシーバ間を接続する配線について、2個以上の分岐点を設定することにより、3個以上のセグメントに分割する第1セグメント分割処理部と、該第1セグメント分割処理部で得られたセグメントについて、該セグメントの一端に位置する一分岐点から上記2つのレシーバのうちの一方のレシーバへの第1ディレイ時間と、該一分岐点から上記2つのレシーバのうちの他方のレシーバへの第2ディレイ時間とを比較するとともに、該セグメントの他端に位置する他分岐点から上記2つのレシーバのうちの一方のレシーバへの第3ディレイ時間と、該他分岐点から上記2つのレシーバのうちの他方のレシーバへの第4ディレイ時間とを比較し、上記の第1ディレイ時間と第2ディレイ時間との大小関係と上記の第3ディレイ時間と第4ディレイ時間との大小関係とが反転するセグメントを等ディレイ分岐点が存在する等ディレイ分岐セグメントとして決定する等ディレイ分岐セグメント決定処理部と、該等ディレイ分岐セグメント決定処理部で求められた該等ディレイ分岐セグメント中で等ディレイ分岐点を求める等ディレイ分岐点決定処理部と、該等ディレイ分岐点決定処理部で求められた該等ディレイ分岐点から各レシーバへの第5ディレイ時間を求めるディレイ時間決定処理部と、該等ディレイ分岐点から外部クロック源取込み部へ至る配線について、2個以上の分岐点を設定することにより、3個以上のセグメントに分割する第2セグメント分割処理部と、該第2セグメント分割処理部で得られた各セグメント毎のディレイ時間を考慮した該配線のプロパゲーションディレイ時間を求めるプロパゲーションディレイ時間決定処理部と、該ディレイ時間決定処理部で求められた該等ディレイ分岐点から各レシーバへの該第5ディレイ時間と該プロパゲーションディレイ時間決定処理部で求められた該配線のプロパゲーションディレイ時間とを加算した時間と、設定時間とを比較して、この比較結果に基づいて、セグメント単位で配線長を調整する配線長調整処理部とをそなえて構成されたことを特徴としている(請求項10)。
【0035】
また、本発明に関連する配線処理装置は、回路基板上の配線の最小ピッチを単位とし配線領域を格子状に分割して得られた格子点に探索線分が到着したことを示す到着状況フラグが探索線分到着を示している格子点に隣接する隣接格子点について、格子点が該配線に使用可能であるかどうかを示す使用可能フラグが使用可能状態を示しており、且つ、該到着状況フラグが探索線分未到着を示している場合に、該隣接格子点の該到着状況フラグを探索線分到着を示す状態にするともに、該隣接格子点において、該隣接格子点に探索線分が到着した方向を示す到着方向フラグにその探索方向を表示させる隣接格子点フラグ処理手順を並列的に実行し、更に該隣接格子点フラグ処理手順を、各探索線分について、該到着状況フラグを探索線分到着を示す状態にするような格子点がなくなるまで、繰り返して実行する前方探索処理を行なう前方探索処理部と、該前方探索処理部における該前方探索処理の後に、所望の格子点から該到着方向フラグに従って、配線経路をさかのぼっていくことにより、配線経路を検索する後方探索処理を行なう後方探索処理部とをそなえて構成されたことを特徴としている。
【0036】
さらに、本発明に関連する配線処理装置は、回路基板上の配線の最小ピッチを単位とし配線領域を格子状に分割して得られた各格子点について、該格子点に探索線分が到着した方向を示す到着方向フラグにその探索方向を複数表示させながら、前方探索を行なっていく前方探索処理部と、該前方探索処理部における該前方探索の後に、所望の格子点から該到着方向フラグに従って、配線経路をさかのぼっていくことにより、複数の配線経路を検索する後方探索処理部と、該後方探索処理部で得られた複数の配線経路から最適な配線経路を決定する最適配線経路決定処理部とをそなえて構成されたことを特徴としている。
【0037】
また、本発明に関連する配線処理装置は、回路基板上の回路についての配置を決定する回路配置決定処理部と、該回路配置決定処理部にて、該回路についての配置を決定した後に、該回路を接続する配線の総配線長をLとし、該配線に使用される点の数をGとして、(L−G)/Lを該配線についての配線混雑度として評価する配線混雑度評価処理部とをそなえて構成されたことを特徴としている。
【0038】
さらに、本発明の配線処理プログラム用記録媒体は、クロック同期式回路におけるクロック分配回路上のクロックネットにおける2つのレシーバ間を接続する配線について、2個以上の分岐点を設定することにより、3個以上のセグメントに分割するセグメント分割手順と、該セグメント分割手順で得られたセグメントについて、該セグメントの一端に位置する一分岐点から上記2つのレシーバのうちの一方のレシーバへの第1ディレイ時間と、該一分岐点から上記2つのレシーバのうちの他方のレシーバへの第2ディレイ時間とを比較するとともに、該セグメントの他端に位置する他分岐点から上記2つのレシーバのうちの一方のレシーバへの第3ディレイ時間と、該他分岐点から上記2つのレシーバのうちの他方のレシーバへの第4ディレイ時間とを比較し、上記の第1ディレイ時間と第2ディレイ時間との大小関係と上記の第3ディレイ時間と第4ディレイ時間との大小関係とが反転するセグメントを等ディレイ分岐点が存在する等ディレイ分岐セグメントとして決定する等ディレイ分岐セグメント決定手順と、該等ディレイ分岐セグメント決定手順で求められた該等ディレイ分岐セグメント中で等ディレイ分岐点を求める等ディレイ分岐点決定手順とを、コンピュータに実行させ、該等ディレイ分岐セグメント決定手順における上記の第1〜第4ディレイ時間が、
【数11】
Figure 0004268694
により求められ、該等ディレイ分岐点決定手順における該等ディレイ分岐点が、
【数12】
Figure 0004268694
により求められるよう該コンピュータに実行させるための配線処理プログラムを記録したことを特徴としている(請求項11)。
【0039】
また、本発明の配線処理プログラム用記録媒体は、クロック同期式回路におけるクロック分配回路上の配線について、2個以上の分岐点を設定することにより、3個以上のセグメントに分割するセグメント分割手順と、該セグメント分割手順で得られた各セグメント毎のディレイ時間を考慮した該配線のプロパゲーションディレイ時間を求めるプロパゲーションディレイ時間決定手順と、該プロパゲーションディレイ時間決定手順で求められた該配線のプロパゲーションディレイ時間と設定時間とを比較して、この比較結果に基づいて、該セグメント単位で配線長を調整する配線長調整手順とを、コンピュータに実行させ、該セグメント分割手順において設定される該分岐点が、該配線の単位長当たりのインピーダンスが変化する点であり、該セグメント分割手順において求められる該セグメントがシングルΠ型回路で評価されるよう該コンピュータに実行させるための配線処理プログラムを記録したことを特徴としている(請求項12)。
【0040】
さらに、本発明の配線処理プログラム用記録媒体は、クロック同期式回路におけるクロック分配回路上のクロックネットにおける2つのレシーバ間を接続する配線について、2個以上の分岐点を設定することにより、3個以上のセグメントに分割する第1セグメント分割手順と、該第1セグメント分割手順で得られたセグメントについて、該セグメントの一端に位置する一分岐点から上記2つのレシーバのうちの一方のレシーバへの第1ディレイ時間と、該一分岐点から上記2つのレシーバのうちの他方のレシーバへの第2ディレイ時間とを比較するとともに、該セグメントの他端に位置する他分岐点から上記2つのレシーバのうちの一方のレシーバへの第3ディレイ時間と、該他分岐点から上記2つのレシーバのうちの他方のレシーバへの第4ディレイ時間とを比較し、上記の第1ディレイ時間と第2ディレイ時間との大小関係と上記の第3ディレイ時間と第4ディレイ時間との大小関係とが反転するセグメントを等ディレイ分岐点が存在する等ディレイ分岐セグメントとして決定する等ディレイ分岐セグメント決定手順と、該等ディレイ分岐セグメント決定手順で求められた該等ディレイ分岐セグメント中で等ディレイ分岐点を求める等ディレイ分岐点決定手順と、該等ディレイ分岐点決定手順で求められた該等ディレイ分岐点から各レシーバへの第5ディレイ時間を求めるディレイ時間決定手順と、該等ディレイ分岐点から外部クロック源取込み部へ至る配線について、2個以上の分岐点を設定することにより、3個以上のセグメントに分割する第2セグメント分割手順と、該第2セグメント分割手順で得られた各セグメント毎のディレイ時間を考慮した該配線のプロパゲーションディレイ時間を求めるプロパゲーションディレイ時間決定手順と、該ディレイ時間決定手順で求められた該等ディレイ分岐点から各レシーバへの該第5ディレイ時間と該プロパゲーションディレイ時間決定手順で求められた該配線のプロパゲーションディレイ時間とを加算した時間と、設定時間とを比較して、この比較結果に基づいて、セグメント単位で配線長を調整する配線長調整手順とを、コンピュータに実行させるための配線処理プログラムを記録したことを特徴としている(請求項13)。
【0041】
また、本発明に関連する配線処理プログラム用記録媒体は、回路基板上の配線の最小ピッチを単位とし配線領域を格子状に分割して得られた格子点に探索線分が到着したことを示す到着状況フラグが探索線分到着を示している格子点に隣接する隣接格子点について、格子点が該配線に使用可能であるかどうかを示す使用可能フラグが使用可能状態を示しており、且つ、該到着状況フラグが探索線分未到着を示している場合に、該隣接格子点の該到着状況フラグを探索線分到着を示す状態にするともに、該隣接格子点において、該隣接格子点に探索線分が到着した方向を示す到着方向フラグにその探索方向を表示させる隣接格子点フラグ処理手順を並列的に実行し、更に該隣接格子点フラグ処理手順を、各探索線分について、該到着状況フラグを探索線分到着を示す状態にするような格子点がなくなるまで、繰り返して実行する前方探索処理手順と、該前方探索処理手順の後に、所望の格子点から該到着方向フラグに従って、配線経路をさかのぼっていくことにより、配線経路を検索する後方探索処理手順とを、コンピュータに実行させるための配線処理プログラムを記録したことを特徴としている。
【0042】
さらに、本発明に関連する配線処理プログラム用記録媒体は、回路基板上の配線の最小ピッチを単位とし配線領域を格子状に分割して得られた各格子点について、該格子点に探索線分が到着した方向を示す到着方向フラグにその探索方向を複数表示させながら、前方探索を行なっていく前方探索処理手順と、該前方探索処理手順の後に、所望の格子点から該到着方向フラグに従って、配線経路をさかのぼっていくことにより、複数の配線経路を検索する後方探索処理手順と、該後方探索処理手順で得られた複数の配線経路から最適な配線経路を決定する最適配線経路決定手順とを、コンピュータに実行させるための配線処理プログラムを記録したことを特徴としている。
【0043】
また、本発明に関連する配線処理プログラム用記録媒体は、回路基板上の配線の総配線長をLとし、該配線に使用される点の数をGとして、(L−G)/Lを該配線についての配線混雑度として評価する配線混雑度評価手順をコンピュータに実行させるための配線処理プログラムを記録したことを特徴としている。
【0044】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
(a)本発明の一実施形態にかかる会話型回路設計装置の構成の説明
図1は本発明の一実施形態にかかる配線処理装置としての会話型回路設計装置の構成を示すブロック図である。
【0045】
この図1に示す会話型回路設計装置1において、3は各種回路設計過程や各回路を接続する配線経路等を表示する表示部、4はこの表示部3上における表示状態を制御する表示制御部、7は表示部3上の表示データを参照し設計者がその表示データに対する応答情報を入力するキーボード,マウス等の入力部である。
5は外部ファイル書込部で、この外部ファイル書込部5は、入力部7からの指示に応じて、表示制御部4により表示部3に表示された配線経路図等を外部ファイル5Aに書き込むものである。
【0046】
また、6は印字部で、この印字部6は、入力部7からの指示に応じて、表示制御部4により表示部3に表示された配線経路図等を所定の記録用紙に印字出力するものである。
さらに、8はハードディスクで、このハードディスク8は、会話型回路設計装置1が各種回路設計の際に用いる一切の情報(論理回路情報やレイアウト情報等)を記録するものであるとともに、後述する(b)において詳細に説明するような各種の配線処理方法を実現するための手順を会話型回路設計装置1に実行させるための配線処理プログラム(配線処理ソフトウエア)を記録するものであり、本実施形態においては配線処理プログラム用記録媒体として機能するものである。
【0047】
また、2は会話型回路設計装置1を構成する各部を統括的に管理するためのCPUである。
なお、表示制御部4の機能は、具体的には、CPU2がハードディスク8に格納されたプログラム(ソフトウエア)を実行することにより実現されるものであるが、図1においては、その機能を明確にすべく、表示制御部4をブロック化して示している。
【0048】
従って、本実施形態にかかる会話型回路設計装置1は、CPU2,表示部3,外部ファイル書込部5,印字部6,入力部7,ハードディスク8等を有する一般的な計算機システム(コンピュータ;図2参照)を用いて実現することが可能である。なお、図2において、9はコンピュータ本体である。
(b)本発明の一実施形態にかかる会話型回路設計装置による配線処理方法の説明
(b1)クロックスキューを低減させるための配線処理方法の第1の態様の説明
本発明の一実施形態にかかる会話型回路設計装置1における配線処理方法として、クロック同期式回路におけるクロックの伝搬遅延時間(ディレイ時間)の差分であるクロックスキューを低減させるための配線処理方法の第1の態様について説明する。
【0049】
ここで、本態様を説明するにあたり、まず、クロック同期式回路におけるクロック分配回路上のクロックネットのクロック・トリーの構成を図5及び図6に示す。
クロック・トリー30は、図6に示すように、レシーバ(クロック受信回路)31とワイヤ37からなるサブ・クロック・トリーと、レシーバ(クロック受信回路)34とワイヤ40からなるサブ・クロック・トリーとが、等ディレイ分岐点(タッピングポイント:tapping point )xを介して接続されることにより構成されている。
【0050】
即ち、クロック・トリー30においては、図6においては図示しないドライバ(クロック発生回路)からのクロックが、等ディレイ分岐点xを介してレシーバ31,34に供給されるようになっている。
ここで、レシーバ31は、フリップフロップ回路(時定数tA )32とコンデンサ(容量CA )33とをそなえて構成され、レシーバ34は、フリップフロップ回路(時定数tB )35とコンデンサ(容量CB )36とをそなえて構成されている。
【0051】
また、ワイヤ37は、後述するような理由から、1つの抵抗(抵抗値r1 )38と2つのコンデンサ(容量c1 /2)39からなるΠ型RC回路(即ちセグメント43)を複数そなえて構成されている。
さらに、ワイヤ40も、ワイヤ37と同様に、後述するような理由から、1つの抵抗(抵抗値r2 )41と2つのコンデンサ(容量c2 /2)42からなるΠ型RC回路(即ちセグメント43)を複数そなえて構成されている。
【0052】
なお、この図6では、ワイヤ37,40におけるΠ型RC回路(セグメント43)をそれぞれ1つしか図示しておらず、その他のセグメント43については図示を省略している。
また、図5では、ワイヤ37,40の図示を省略しているが、レシーバ31,34間の配線における複数のセグメントを符号43で示している(図5の網かけ部)。
【0053】
ところで、図6に示す等ディレイ分岐点xは、前述したように、図6では図示しないドライバ(クロック発生回路)からのクロックが入力される点である。
この図6に示すクロック・トリー30においては、等ディレイ分岐点xの位置により、クロック・トリー30の2つのサブ・クロック・トリーにおけるクロックスキューが変化するため、クロック・トリー30におけるクロックスキューを低減させるには、等ディレイ分岐点xの位置の設定を正確に行なうことが必要となる。
【0054】
ここで、2つのサブ・クロック・トリー間の配線における等ディレイ分岐点xの決定方法(zero-skew-merge ) について説明する。
本態様における等ディレイ分岐点xを決定するための配線処理方法は、図7に示すように、セグメント分割ステップ(ステップS1),等ディレイ分岐セグメント決定ステップ(ステップS2)及び等ディレイ分岐点決定ステップ(ステップS3)をそなえて構成されている。
【0055】
セグメント分割ステップ(ステップS1)は、例えば図5に示すように、レシーバ31,34間を接続する配線について、少なくとも2個以上の分割点(分岐点)P1 ,…,Pn+1 を設定することにより、少なくとも3個以上のセグメント43に分割するステップである。
ここで、レシーバ31,34間を接続する配線(図6に示すワイヤ37,40)を複数のセグメント43に分割する理由について説明する。
【0056】
まず、1つのサブ・クロック・トリーについて着目して考える。
図3は、バッファ付きクロック・トリーをモデル化して示したものであり、バッファ付きクロック・トリー10は、図3に示すように、ドライバとしてのクロック発生回路(クロックソース;clock source)11と、レシーバとしてのクロック受信回路(ラッチ;latch )13とがバッファ(buffer)12を介して接続されることにより構成されたものである。
【0057】
ここで、クロックソース11とバッファ12とはワイヤ(wire)14により接続され、バッファ12とラッチ13とはワイヤ(wire)15により接続されている。
このバッファ付きクロック・トリー10は、詳細には、図4に示すような構成を有している。
【0058】
クロックソース11は抵抗(抵抗値rs )16をそなえており、バッファ12はディレイ回路(内部ディレイ時間db )19,抵抗(抵抗値rb )17及びコンデンサ(容量cb )18をそなえており、ラッチ13はコンデンサ(容量c1 )20をそなえている。
ここで、クロックソース11からラッチ13までのディレイ時間としては、図33を用いて前述したように、バッファ12のディレイ回路19による内部ディレイ時間db のほか、ワイヤ14,15の配線抵抗によるディレイ時間等が考えられる。
【0059】
このうち、配線抵抗については、近年の半導体微細加工技術の進歩によるトランジスタサイズ及び配線断面積の減少ため、無視することができなくなっているため、ディレイ時間の予測精度上、ワイヤ14,15を、分布定数回路として扱うことが必要となっている。
前述した図33に示すようなバッファ付きクロック・トリー100においては、この分布定数回路を模式化した集中定数回路として、ワイヤ104,105を、それぞれ1つのΠ型RC回路(シングルΠ型RCモデル)で評価しているが、本態様においては、配線(ワイヤ14,15)における単位グリッド当たりの抵抗及び容量が場所によらず等しくないことを考慮するために、ワイヤ14,15を複数のセグメント43に分割することにより複数のΠ型RC回路で評価しているのである。
【0060】
なお、ワイヤ14は、図4に示すように、1つの抵抗(抵抗値r1 …rk )21Aと2つのコンデンサ〔容量(c1 /2)…(ck /2)〕21BからなるΠ型RC回路(即ちセグメント)21を複数そなえて構成され、ワイヤ15は、図4に示すように、1つの抵抗(抵抗値rm …rn )22Aと2つのコンデンサ〔容量(cm /2)…(cn /2)〕22BからなるΠ型RC回路(即ちセグメント)22を複数そなえて構成されている。
【0061】
ここで、このセグメント分割ステップ(ステップS1)においては、図5に示すレシーバ31,34間を接続する配線は、具体的には以下のような条件の分割点P1 ,…,Pn+1 でセグメント43に分割される。
(1)レシーバ31,34間を接続する配線上の物理的な分岐点。
ここで、物理的な分岐点とは配線の層が変わる点であり、例えば図5では分割点P4 ,P7 がこの点に当たる。
【0062】
(2)レシーバ31,34間を接続する配線の単位長当たりのインピーダンスが変化する点。
ここで、配線の単位長当たりのインピーダンスは、配線の層が変わると変化するが、配線の層が変わらなくても変化することがあるため(配線の下層に電源が配置される場合等)、配線の単位長当たりのインピーダンスが変化する点を分割点とすることが有効となる。なお、インピーダンスは抵抗または容量である。
【0063】
(3)セグメント43の長さがある決められた長さs(任意の定数)を超える点。
ここで、セグメント長sは、経験的に求められる長さである。
上述した(1)〜(3)のいずれかに該当する分割点P1 ,…,Pn+1 において分割された各セグメント43は、上述したように、それぞれ1つのΠ型RCモデルで評価される。
【0064】
また、等ディレイ分岐セグメント決定ステップ(ステップS2)は、セグメント分割ステップ(ステップS1)で得られたセグメント43について、等ディレイ分岐点xが存在するセグメント43を、等ディレイ分岐セグメントとして決定するステップである。
具体的には、この等ディレイ分岐セグメント決定ステップ(ステップS2)においては、セグメント43の一端に位置する一分割点Pk から上記2つのレシーバ31,34のうちの一方のレシーバ(図5では次段のゲートAと接続されるレシーバ31)へのディレイ時間が、第1ディレイ時間〔Delay (Pk →A)〕として求められるとともに、一分割点Pk から上記2つのレシーバ31,34のうちの他方のレシーバ(図5では次段のゲートBと接続されるレシーバ34)へのディレイ時間が、第2ディレイ時間〔Delay (Pk →B)〕として求められる。
【0065】
そして、これらの第1ディレイ時間〔Delay (Pk →A)〕と第2ディレイ時間〔Delay (Pk →B)〕とが比較される。
さらに、セグメント43の他端に位置する他分割点Pk+1 から上記2つのレシーバ31,34のうちの一方のレシーバへのディレイ時間が、第3ディレイ時間〔Delay (Pk+1 →A)〕として求められるとともに、他分割点Pk+1 から上記2つのレシーバ31,34のうちの他方のレシーバへのディレイ時間が、第4ディレイ時間〔Delay (Pk+1 →B)〕として求められる。
【0066】
そして、これらの第3ディレイ時間〔Delay (Pk+1 →A)〕と第4ディレイ時間〔Delay (Pk+1 →B)〕とが比較される。
さらに、上記の第1ディレイ時間〔Delay (Pk →A)〕と第2ディレイ時間〔Delay (Pk →B)〕との大小関係と、上記の第3ディレイ時間〔Delay (Pk+1 →A)〕と第4ディレイ時間〔Delay (Pk+1 →B)〕との大小関係とが反転するセグメント43が、等ディレイ分岐点xが存在する等ディレイ分岐セグメントとして決定される。
【0067】
即ち、この等ディレイ分岐セグメント決定ステップ(ステップS2)は、分割点P1 〜Pn+1 の中から2分法により、
Delay (Pk →A) ≦ Delay (Pk →B)
Delay (Pk+1 →A) ≧ Delay (Pk+1 →B)
となる条件を満たす分割点Pk ,Pk+1 を求めるステップであり、等ディレイ分岐セグメントは、分割点Pk ,Pk+1 間のセグメント(セグメントPk k+1 )となる。
【0068】
ここで、上記の第1ディレイ時間〔Delay (Pk →A)〕,第2ディレイ時間〔Delay (Pk →B)〕,第3ディレイ時間〔Delay (Pk+1 →A)〕,第4ディレイ時間〔Delay (Pk+1 →B)〕は、等ディレイ分岐セグメントにおける抵抗の抵抗値をrk , 等ディレイ分岐セグメントにおけるコンデンサの容量をck とすると、次式により求めることができる。
【0069】
【数13】
Figure 0004268694
さらに、等ディレイ分岐点決定ステップ(ステップS3)は、等ディレイ分岐セグメント決定ステップ(ステップS2)で求められた等ディレイ分岐セグメント中で等ディレイ分岐点xを求めるステップである。この等ディレイ分岐点決定ステップ(ステップS3)においては、図6に示すように、分割点Pk からゲートAまでをサブ・クロック・トリーAとしてtA とCA が計算されるとともに、分割点Pk+1 からゲートBまでをサブ・クロック・トリーBとしてtB とCB が計算される。
【0070】
ここで、
A :分割点Pk からゲートAまでの容量の合計
B :分割点Pk+1 からゲートBまでの容量の合計
A :分割点Pk からゲートAまでの配線ディレイ
B :分割点Pk+1 からゲートBまでの配線ディレイ
である。
【0071】
そして、分割点Pk から分割点Pk+1 までは単位長当たりの容量及び抵抗が同じ区間であるので、従来技術であるIBMによる方法と同様に、等ディレイ分岐点xは、次式により決定することができる。
【0072】
【数14】
Figure 0004268694
ここで、上述したような各ステップ(ステップS1〜S3)からなる配線処理方法は、会話型回路設計装置1のCPU2図1参照)が、図8に示すようなセグメント分割処理部A1,等ディレイ分岐セグメント決定処理部A2及び等ディレイ分岐点決定処理部A3に相当する機能を有することにより実行される。
【0073】
セグメント分割処理部A1は、クロック同期式回路におけるクロック分配回路上のクロックネットにおける2つのレシーバ31,34間を接続する配線について、少なくとも2個以上の分割点P1 ,…,Pn+1 を設定することにより、少なくとも3個以上のセグメント43に分割する処理を行なうものである。
また、等ディレイ分岐セグメント決定処理部A2は、セグメント分割処理部A1で得られたセグメント43について、等ディレイ分岐点xが存在するセグメント43を、等ディレイ分岐セグメントとして決定する処理を行なうものである。
【0074】
具体的には、この等ディレイ分岐セグメント決定処理部A2は、セグメント43の一端に位置する一分割点Pk から上記2つのレシーバ31,34のうちの一方のレシーバ(図5では次段のゲートAと接続されるレシーバ31)への第1ディレイ時間〔Delay (Pk →A)〕と、一分割点Pk から上記2つのレシーバ31,34のうちの他方のレシーバ(図5では次段のゲートBと接続されるレシーバ34)への第2ディレイ時間〔Delay (Pk →B)〕とを比較するとともに、セグメントの他端に位置する他分割点Pk+1 から上記2つのレシーバ31,34のうちの一方のレシーバへの第3ディレイ時間〔Delay (Pk+1 →A)〕と、他分割点Pk+1 から上記2つのレシーバ31,34のうちの他方のレシーバへの第4ディレイ時間〔Delay (Pk+1 →B)〕とを比較し、上記の第1ディレイ時間〔Delay (Pk →A)〕と第2ディレイ時間〔Delay (Pk →B)〕との大小関係と上記の第3ディレイ時間〔Delay (Pk+1 →A)〕と第4ディレイ時間〔Delay (Pk+1 →B)〕との大小関係とが反転するセグメント43を等ディレイ分岐点が存在する等ディレイ分岐セグメントとして決定する処理を行なうものである。
【0075】
さらに、等ディレイ分岐点決定処理部A3は、等ディレイ分岐セグメント決定処理部A2で求められた等ディレイ分岐セグメント中で等ディレイ分岐点xを求める処理を行なうものである。
そして、実際には、このような各処理部A1〜A3に相当する機能は、後述するような各手順を、会話型回路設計装置1のCPU2に実行させるための配線処理プログラムをハードディスク8に格納することにより実現することができる。
【0076】
ここで、本態様における配線処理プログラムは、セグメント分割手順,等ディレイ分岐セグメント決定手順及び等ディレイ分岐点決定手順を、会話型回路設計装置1に実行させるためのソフトウェアである。
セグメント分割手順は、クロック同期式回路におけるクロック分配回路上のクロックネットにおける2つのレシーバ31,34間を接続する配線について、少なくとも2個以上の分割点P1 ,…,Pn+1 を設定することにより、少なくとも3個以上のセグメント43に分割する手順である。
【0077】
また、等ディレイ分岐セグメント決定手順は、セグメント分割手順で得られたセグメント43について、等ディレイ分岐点xが存在するセグメント43を、等ディレイ分岐セグメントとして決定する手順である。
具体的には、この等ディレイ分岐セグメント決定手順は、セグメント43の一端に位置する一分割点Pk から上記2つのレシーバ31,34のうちの一方のレシーバ(図5では次段のゲートAと接続されるレシーバ31)への第1ディレイ時間〔Delay (Pk →A)〕と、一分割点Pk から上記2つのレシーバ31,34のうちの他方のレシーバ(図5では次段のゲートBと接続されるレシーバ34)への第2ディレイ時間〔Delay (Pk →B)〕とを比較するとともに、セグメントの他端に位置する他分割点Pk+1 から上記2つのレシーバ31,34のうちの一方のレシーバへの第3ディレイ時間〔Delay (Pk+1 →A)〕と、他分割点Pk+1 から上記2つのレシーバ31,34のうちの他方のレシーバへの第4ディレイ時間〔Delay (Pk+1 →B)〕とを比較し、上記の第1ディレイ時間〔Delay (Pk →A)〕と第2ディレイ時間〔Delay (Pk →B)〕との大小関係と上記の第3ディレイ時間〔Delay (Pk+1 →A)〕と第4ディレイ時間〔Delay (Pk+1 →B)〕との大小関係とが反転するセグメント43を等ディレイ分岐点が存在する等ディレイ分岐セグメントとして決定する手順である。
【0078】
さらに、等ディレイ分岐点決定手順は、等ディレイ分岐セグメント決定手順で求められた等ディレイ分岐セグメント中で等ディレイ分岐点xを求める手順である。
上述の構成により、本発明の一実施形態にかかる会話型回路設計装置1においては、以下のように動作することにより、2つのサブ・クロック・トリー間の配線における等ディレイ分岐点xが決定される。
【0079】
即ち、会話型回路設計装置1においては、セグメント分割ステップ(ステップS1)により、レシーバ31,34間を接続する配線が、少なくとも2個以上の分割点P1 ,…,Pn+1 が設定されることにより、少なくとも3個以上のセグメント43に分割される。
続いて、等ディレイ分岐セグメント決定ステップ(ステップS2)により、セグメント分割ステップ(ステップS1)で得られたセグメント43について、前述したように第1〜第4ディレイ時間〔それぞれDelay (Pk →A),〔Delay (Pk →B),Delay (Pk+1 →A),Delay (Pk+1 →B)〕が求められ、第1ディレイ時間〔Delay (Pk →A)〕と第2ディレイ時間〔Delay (Pk →B)〕とが比較されるとともに、第3ディレイ時間〔Delay (Pk+1 →A)〕と第4ディレイ時間〔Delay (Pk+1 →B)〕とが比較される。
【0080】
そして、第1ディレイ時間〔Delay (Pk →A)〕と第2ディレイ時間〔Delay (Pk →B)〕との大小関係と、上記の第3ディレイ時間〔Delay (Pk+1 →A)〕と第4ディレイ時間〔Delay (Pk+1 →B)〕との大小関係とが反転するセグメント43が、等ディレイ分岐点xが存在する等ディレイ分岐セグメントとして決定される。
【0081】
さらに、等ディレイ分岐点決定ステップ(ステップS3)により、等ディレイ分岐セグメント決定ステップ(ステップS2)で求められた等ディレイ分岐セグメント中で等ディレイ分岐点xが決定される。
このように、本発明の一実施形態にかかる会話型回路設計装置1におけるクロックスキューを低減させるための配線処理方法の第1の態様によれば、クロック同期式回路におけるクロック分配回路上の各クロックネットにおいて、レシーバ31,34間を接続する配線を複数のセグメント43に分割して複数のシングルΠ型RC回路で評価することにより、配線における単位グリッド当たりの抵抗及び容量が場所によらず等しくないことを考慮することができるため、レシーバ31,34間を接続する配線における等ディレイ分岐点xを正確に決定することができる。
【0082】
また、分割点P1 ,…,Pn+1 を、(1)レシーバ31,34間を接続する配線上の物理的な分岐点,(2)レシーバ31,34間を接続する配線の単位長当たりのインピーダンスが変化する点,(3)セグメント43の長さがある決められた長さs(任意の定数)を超える点,のいずれかとすることにより、各クロックネットの状態に応じた分割点P1 ,…,Pn+1 を設定することができ、等ディレイ分岐点xをより正確に決定することができる。
【0083】
そして、このように等ディレイ分岐点xを正確に決定することができることにより、ドライバ(図6では図示せず)からレシーバ31,34までのディレイ時間を等しくすることができ、これにより、各クロックネットのクロック・トリー30におけるクロックスキューを低減させることができる。
(b2)クロックスキューを低減させるための配線処理方法の第2の態様の説明
さらに、本発明の一実施形態にかかる会話型回路設計装置1における配線処理方法として、クロック同期式回路におけるクロックの伝搬遅延時間(ディレイ時間)の差分であるクロックスキューを低減させるための配線処理方法の第2の態様について説明する。
【0084】
クロックスキューを低減させるための配線処理方法の第2の態様においては、各レシーバ間を接続する配線における等ディレイ分岐点を決定する際に、クロック発生回路であるドライバに負荷がつくことにより増加するゲートディレイ(外部クロックディレイ時間;extra-source gate delay )を考慮するために、この等ディレイ分岐点とドライバ出力点(外部クロック源取込み部)との間の配線長を調整して、ドライバから各レシーバまでのディレイ時間を目的値に設定することにより、効果的に各クロックネットにおけるクロックスキューを低減させる方法について説明する。
【0085】
図9は、ドライバ(クロック発生回路)45A及びクロック・トリー45Bからなるクロックネット44の構成を模式的に示す図である。
ここで、クロックネット44は、クロック同期式回路におけるクロック分配回路上にあり、クロック・トリー45Bは、複数のクロック・トリー(図5及び図6の符号30参照)をそなえて構成されている。
【0086】
即ち、この図9は、複数のレシーバ(図5及び図6の符号31,34参照)間の配線を完了してクロック・トリーを形成し、更にこのように形成された複数のクロック・トリー間の配線を完了してクロック・トリー45Bを形成した後、このクロック・トリー45Bの等ディレイ分岐点(レシーバ間の配線の最終の等ディレイ分岐点)Qとドライバ出力点(外部クロック源取込み部)Pとの間を最短配線により接続した様子を示している。
【0087】
本態様においては、クロック・トリー45Bにおいて正確に等ディレイ分岐点Qを決定した後に、前述のごとくドライバ出力点Pからクロック・トリー45Bにおける各レシーバまでのディレイ時間が予め設定した時間となるようにするために、等ディレイ分岐点Qとドライバ出力点Pとの間の配線の長さを調整するようになっている。
【0088】
ここで、本態様における配線処理方法は、図13に示すように、第1セグメント分割ステップ(ステップS4),等ディレイ分岐セグメント決定ステップ(ステップS5),等ディレイ分岐点決定ステップ(ステップS6),ディレイ時間決定ステップ(ステップS7),第2セグメント分割ステップ(ステップS8),プロパゲーションディレイ時間決定ステップ(ステップS9)及び配線長調整ステップ(ステップS10)をそなえて構成されている。
【0089】
第1セグメント分割ステップ(ステップS4)は、クロックネット44のクロック・トリー45Bにおける2つのレシーバ間を接続する配線(これは前述の図5に示すものと同様である)について、少なくとも2個以上の分割点(分岐点)を設定することにより、少なくとも3個以上のセグメントに分割するステップである。
【0090】
本態様においても、前述の場合と同様に、配線における単位グリッド当たりの抵抗及び容量が場所によらず等しくないことを考慮するために、クロックネット44における2つのレシーバ間を接続する配線を複数のセグメントに分割して、複数のΠ型RC回路(図6の符号43参照)で評価している。
なお、図9においては、クロック・トリー45Bにおける分割点及びセグメントの図示は省略している。
【0091】
また、分割点は、前述の場合と同様に、(1)レシーバ間を接続する配線上の物理的な分岐点,(2)レシーバ間を接続する配線の単位長当たりのインピーダンスが変化する点,(3)セグメントの長さがある決められた長さs(任意の定数)を超える点,のいずれかである。
さらに、等ディレイ分岐セグメント決定ステップ(ステップS5)は、第1セグメント分割ステップ(ステップS4)で得られたセグメントについて、等ディレイ分岐点Qが存在するセグメントを、等ディレイ分岐セグメントとして決定するステップである。
【0092】
具体的には、この等ディレイ分岐セグメント決定ステップ(ステップS5)は、前述の場合と同様に、セグメントの一端に位置する一分割点から上記2つのレシーバのうちの一方のレシーバへの第1ディレイ時間と、一分割点から上記2つのレシーバのうちの他方のレシーバへの第2ディレイ時間とを比較するとともに、セグメントの他端に位置する他分割点から上記2つのレシーバのうちの一方のレシーバへの第3ディレイ時間と、他分割点から上記2つのレシーバのうちの他方のレシーバへの第4ディレイ時間とを比較し、上記の第1ディレイ時間と第2ディレイ時間との大小関係と上記の第3ディレイ時間と第4ディレイ時間との大小関係とが反転するセグメントを等ディレイ分岐点Qが存在する等ディレイ分岐セグメントとして決定するステップである。
【0093】
なお、上記の第1〜第4ディレイ時間についても、(b1)にて前述した場合と同様にして求めることができる〔それぞれ前述の、Delay (Pk →A),Delay (Pk →B),Delay (Pk+1 →A),Delay (Pk+1 →B)参照〕。
また、等ディレイ分岐点決定ステップ(ステップS6)は、等ディレイ分岐セグメント決定ステップ(ステップS5)で求められた等ディレイ分岐セグメント中で等ディレイ分岐点Qを求めるステップである。
【0094】
なお、この等ディレイ分岐点Qについても、(b1)にて前述した場合と同様にして求めることができる。
さらに、ディレイ時間決定ステップ(ステップS7)は、等ディレイ分岐点決定ステップ(ステップS6)で求められた等ディレイ分岐点Qから各レシーバへの第5ディレイ時間tR を求めるステップである。
【0095】
即ち、この第5ディレイ時間tR は、図10に示すように、クロック・トリー45Bにおける等ディレイ分岐点Qから各レシーバへのディレイ時間である。
ここで、第5ディレイ時間tR は、
Figure 0004268694
により求めることができる。
【0096】
また、第2セグメント分割ステップ(ステップS8)は、図9に示すように、等ディレイ分岐点Qからドライバ出力点Pへ至る配線について、少なくとも2個以上の分割点(分岐点)P1 ,…,Pn+1 を設定することにより、少なくとも3個以上のセグメント46に分割するステップである。
本態様においても、前述の場合と同様に、配線における単位グリッド当たりの抵抗及び容量が場所によらず等しくないことを考慮するために、等ディレイ分岐点Q,ドライバ出力点P間を接続する配線を複数のセグメント46に分割して、複数のΠ型RC回路(図10参照)で評価している。
【0097】
この第2セグメント分割ステップ(ステップS8)においては、等ディレイ分岐点Qとドライバ出力点Pとの間の配線は、具体的には以下のような条件の分割点P1 ,…,Pn+1 でセグメント46に分割される。
(1)等ディレイ分岐点Qとドライバ出力点Pとの間の配線の単位長当たりのインピーダンスが変化する点。
【0098】
ここで、配線の単位長当たりのインピーダンスは、前述したように、配線の層が変わると変化するが、配線の層が変わらなくても変化することがあるため、配線の単位長当たりのインピーダンスが変化する点を分割点とすることが有効となる。なお、インピーダンスは抵抗または容量である。
(2)セグメント46の長さがある決められた長さs(任意の定数)を超える点。
【0099】
ここで、セグメント長sは、経験的に求められる長さである。
上述した(1),(2)のいずれかに該当する分割点P1 ,…,Pn+1 において分割された各セグメント46は、図10に示すように、1つの抵抗(抵抗値Ra1 …Ran )48と2つのコンデンサ〔容量(Ca1 /2)…(Can /2)〕47からなるΠ型RC回路(Π型RCモデル)で評価される。
【0100】
さらに、プロパゲーションディレイ時間決定ステップ(ステップS9)は、第2セグメント分割ステップ(ステップS8)で得られた各セグメント46毎のディレイ時間を考慮した配線のプロパゲーションディレイ時間(propagation delay )tPQを求めるステップである。
ここで、プロパゲーションディレイ時間tPQは、
【0101】
【数15】
Figure 0004268694
により求めることができる。また、配線長調整ステップ(ステップS10)は、ドライバ出力点Pから各レシーバまでのディレイ時間〔Delay (P→各レシーバ)〕と、設定時間とを比較して、この比較結果に基づいて、セグメント単位で配線長を調整するステップである。
【0102】
ここで、ドライバ出力点Pから各レシーバまでのディレイ時間〔Delay (P→各レシーバ)〕は、ディレイ時間決定ステップ(ステップS7)で求められた等ディレイ分岐点Qから各レシーバへの第5ディレイ時間tR ,プロパゲーションディレイ時間決定ステップ(ステップS9)で求められた配線のプロパゲーションディレイ時間tPQ及びドライバ出力点Pでの外部クロックディレイ時間(extra-source gate delay )tLOADを加算した時間である。
【0103】
即ち、図10に示すように、クロック・トリー45Bにおける等ディレイ分岐点Qから各レシーバまでのディレイ時間(第5ディレイ時間)をtR ,等ディレイ分岐点Qから各レシーバまでの容量の合計をCR とすると、ドライバ出力点Pから各レシーバまでのディレイ時間〔Delay (P→各レシーバ)〕は次式により求められる。
【0104】
Delay (P→各レシーバ) ≒ tLOAD+t PQ +t R
ここで、外部クロックディレイ時間(extra source gate delay )tLOADについて、図12を用いて説明すると、ドライバ(SOURCE)とレシーバ(LOAD)との間の配線におけるディレイ時間TINTERCONNECT delayは、
Figure 0004268694
である。
【0105】
なお、
AB(0):アンローデッド・ソース・ゲートからのディレイ時間
(delay through an unloaded source gate )
AB(L):長さLのインターコネクト・ネットによりロードされた同一ソース・ゲートからのディレイ時間
(delay through the same source gate loaded
by an interconnect net of length L)
である。
【0106】
そして、上記の式における〔TAB(L)−TAB(0)〕が、外部クロックディレイ時間tLOADを表わしている。
ここで、配線長調整ステップ(ステップS10)においては、図9,図10に示す分割点P1 でのtLOADを求めるために、分割点P1 から見たアドミッタンス算出用のy1,y2,y3が計算される。
【0107】
即ち、分割点P1 でのtLOADは、分割点P1 から見たアドミッタンス算出用のy1,y2,y3という式を計算し、これら3つの式を用いて所定の計算(この内容の詳細は本態様とは特に関係しない)を行なうことにより求めることができる。
即ち、tLOADは、
LOAD=F(y1,y2,y3)
である。
【0108】
本実施形態において、アドミッタンス算出用のy1,y2,y3の計算は、「P.R.O'Brien and T.L.Savarino,“Modeling the Driving-Point Characteristics of Resistive Interconnect for Accurate Delay Estimation,IEEE Intl.Conference on CAD,pp512-515,1989 」に記載された方法に基づいて行なわれる。
ここで、y1,y2,y3を求めるための、一般的な配線モデルの一例を図11に示す。
【0109】
図11において、49はコンデンサ,50は抵抗,51はドライバ又はレシーバの出力ピンであり、P1 〜P9 は分割点である。
以下に、分割点P1 から見たアドミッタンス算出用のy1,y2,y3の算出方法を示す。
まず、ラプラス変換式をyi (s)で示し、レシーバ側からドライバ側へラプラス変換式を求めると、
Figure 0004268694
となる。
【0110】
そして、このy1 (s)を、ラプラス表現の3次近似を行なうと、
1 (s) = y1・s+y2・s2 +y3・s3
となるため、この式の係数y1,y2,y3が求められる。
このようにして、配線長調整ステップ(ステップS10)においては、前述の式により計算されたドライバ出力点Pから各レシーバまでのディレイ時間〔Delay (P→各レシーバ)〕と、予め設定された時間γとを比較して、この比較結果に基づいて、セグメント単位で等ディレイ分岐点Qとドライバ出力点Pとの間の配線長が調整されるのである。
【0111】
なお、ドライバ出力点Pから各レシーバまでのディレイ時間〔Delay (P→各レシーバ)〕が、初めから予め設定された時間γを超えている場合には、ドライバ45Aやクロック・トリー45B(図9,図10参照)の配置変更を行なった後に、再度等ディレイ分岐点Qとドライバ出力点Pとの間の配線長が調整される。
【0112】
具体的には、以下のように配置変更や配線長調整が行なわれる。
Delay (P→各レシーバ) > γ ならば配置変更
Delay (P→各レシーバ) = γ ならば終了
Delay (P→各レシーバ) < γ ならば配線長調整
なお、配線長の調整は、分割点P1 と分割点P2 との間で行なう必要がある。
【0113】
ここで、分割点P1 と分割点P2 との間の最短の実配線長をLLOWER とすると、分割点P1 と分割点P2 での配線の単位長当たりの抵抗α及び容量βは、以下のようになる。
α=Ra1 /LLOWER
β=Ca1 /LLOWER
そして、分割点P1 と分割点P2 との間で配線長の調整により新たに引かれる配線においては、上記のα,βを使用して、
Delay (P→各レシーバ) = γ
となるための分割点P1 と分割点P2 との間の配線長Lは、
LOWER < L < LUPPER
の範囲にある。
【0114】
ここで、LUPPER は、許容される最長の実配線長であり、LUPPER を求めるためには、図11に示すドライバの出力ピン51と分割点P1 との間に長さs〔これはラプラス変換式yi (s)のsとは無関係である〕のセグメントをひとつずつ挿入していき、その度毎に新たなy1,y2,y3を求めて、tLOADを求めていくことになる。
【0115】
UPPER は、以下のような再帰的計算により求めることができる。
0 =tPQ+tR
【0116】
【数16】
Figure 0004268694
0 =LLOWER
y10 =y1
y20 =y2
y30 =y3
i =ti-1 +αs(βs/2+Ci-1
i =Ci-1 +βs
i =Li-1 +s
ここで、P.R.O'Brien and T.L.Savarinoの文献を参照すると、
y1i =f(y1i-1
y2i =g(y1i-1 ,y2i-1
y3i =h(y1i-1 ,y2i-1 ,y3i-1
これにより、
LOAD=F(y1i ,y2i ,y3i
ここで、
i +tLOAD>γ
とはじめてなったときのs・i+LLOWER の値をLUPPER とし、Li-1 値を新たにLLOWER とする。なお、sは自然数であるが、50くらいが適当であると考えられる。
【0117】
さらに、s・(i−1)+LLOWER とLUPPER との間で2分法により、分割点P1 と分割点P2 との間の配線長Lを決定しながら、ドライバ出力点Pから各レシーバまでのディレイ時間〔Delay (P→各レシーバ)〕が計算され、これにより、ディレイ時間が設定時間γとなる配線長Lが決定される。
即ち、ドライバの出力ピン51と分割点P1 との間に長さsのセグメントを順次挿入したと仮定し、ドライバ出力点P(図9,図10参照)から各レシーバまでのディレイ時間が設定値γを超えるまで計算を続けると、この設定値γを超えたときは、全体としてはs・i(iは繰り返し回数)の長さのセグメントを挿入したことになる。
【0118】
そこで、ディレイ時間が設定値γとなる配線長Lは、
〔s・(i−1)+LUPPER 〕 < L < (s・i+LUPPER
となるため、2分法により設定値γとなる配線長Lを求めることができる。
そして、分割点P1 と分割点P2 との間の配線を削除して、配線長Lで再配線を行なう。
【0119】
ここで、上述したような各ステップ(ステップS4〜S10)からなる配線処理方法は、会話型回路設計装置1のCPU2(図1参照)が、図14に示すような第1セグメント分割処理部A4,等ディレイ分岐セグメント決定処理部A5,等ディレイ分岐点決定処理部A6,ディレイ時間決定処理部A7,第2セグメント分割処理部A8,プロパゲーションディレイ時間決定処理部A9及び配線長調整処理部A10に相当する機能を有することにより実行される。
【0120】
第1セグメント分割処理部A4は、クロック同期式回路におけるクロック分配回路上のクロックネット44における2つのレシーバ間を接続する配線について、少なくとも2個以上の分岐点を設定することにより、少なくとも3個以上のセグメントに分割する処理を行なうものである。
また、等ディレイ分岐セグメント決定処理部A5は、第1セグメント分割処理部A4で得られたセグメントについて、セグメントの一端に位置する一分割点から上記2つのレシーバのうちの一方のレシーバへの第1ディレイ時間と、一分割点から上記2つのレシーバのうちの他方のレシーバへの第2ディレイ時間とを比較するとともに、セグメントの他端に位置する他分割点から上記2つのレシーバのうちの一方のレシーバへの第3ディレイ時間と、他分割点から上記2つのレシーバのうちの他方のレシーバへの第4ディレイ時間とを比較し、上記の第1ディレイ時間と第2ディレイ時間との大小関係と上記の第3ディレイ時間と第4ディレイ時間との大小関係とが反転するセグメントを等ディレイ分岐点が存在する等ディレイ分岐セグメントとして決定する処理を行なうものである。
【0121】
さらに、等ディレイ分岐点決定処理部A6は、等ディレイ分岐セグメント決定処理部A5で求められた等ディレイ分岐セグメント中で等ディレイ分岐点Qを求める処理を行なうものである。
また、ディレイ時間決定処理部A7は、等ディレイ分岐点決定処理部A6で求められた等ディレイ分岐点Qから各レシーバへの第5ディレイ時間tR を求める処理を行なうものである。
【0122】
さらに、第2セグメント分割処理部A8は、等ディレイ分岐点Qからドライバ出力点Pへ至る配線について、少なくとも2個以上の分割点P1 ,…,Pn+1 を設定することにより、少なくとも3個以上のセグメント46に分割する処理を行なうものである。
また、プロパゲーションディレイ時間決定処理部A9は、第2セグメント分割処理部A8で得られた各セグメント46毎のディレイ時間を考慮した配線のプロパゲーションディレイ時間tPQを求める処理を行なうものである。
【0123】
さらに、配線長調整処理部A10は、ドライバ出力点Pから各レシーバまでのディレイ時間〔Delay (P→各レシーバ)〕、即ち、ディレイ時間決定処理部A7で求められた等ディレイ分岐点Qから各レシーバへの第5ディレイ時間tR ,プロパゲーションディレイ時間決定処理部A9で求められた配線のプロパゲーションディレイ時間tPQ及びドライバ出力点Pでの外部クロックディレイ時間tLOADを加算した時間と、設定時間γとを比較して、この比較結果に基づいて、セグメント単位で配線長を調整する処理を行なうものである。
【0124】
そして、実際には、このような各処理部A4〜A10に相当する機能は、後述するような各手順を、会話型回路設計装置1のCPU2に実行させるための配線処理プログラムをハードディスク8に格納することにより実現することができる。
ここで、本態様における配線処理プログラムは、第1セグメント分割手順,等ディレイ分岐セグメント決定手順,等ディレイ分岐点決定手順,ディレイ時間決定手順,第2セグメント分割手順,プロパゲーションディレイ時間決定手順及び配線長調整手順を、会話型回路設計装置1に実行させるためのソフトウェアである。
【0125】
第1セグメント分割手順は、クロック同期式回路におけるクロック分配回路上のクロックネット44における2つのレシーバ間を接続する配線について、少なくとも2個以上の分岐点を設定することにより、少なくとも3個以上のセグメントに分割する手順である。
また、等ディレイ分岐セグメント決定手順は、第1セグメント分割手順で得られたセグメントについて、セグメントの一端に位置する一分割点から上記2つのレシーバのうちの一方のレシーバへの第1ディレイ時間と、一分割点から上記2つのレシーバのうちの他方のレシーバへの第2ディレイ時間とを比較するとともに、セグメントの他端に位置する他分割点から上記2つのレシーバのうちの一方のレシーバへの第3ディレイ時間と、他分割点から上記2つのレシーバのうちの他方のレシーバへの第4ディレイ時間とを比較し、上記の第1ディレイ時間と第2ディレイ時間との大小関係と上記の第3ディレイ時間と第4ディレイ時間との大小関係とが反転するセグメントを等ディレイ分岐点が存在する等ディレイ分岐セグメントとして決定する手順である。
【0126】
さらに、等ディレイ分岐点決定手順は、等ディレイ分岐セグメント決定手順で求められた等ディレイ分岐セグメント中で等ディレイ分岐点Qを求める手順である。
また、ディレイ時間決定手順は、等ディレイ分岐点決定手順で求められた等ディレイ分岐点Qから各レシーバへの第5ディレイ時間tR を求める手順である。
【0127】
さらに、第2セグメント分割手順は、等ディレイ分岐点Qからドライバ出力点Pへ至る配線について、少なくとも2個以上の分割点P1 ,…,Pn+1 を設定することにより、少なくとも3個以上のセグメント46に分割する手順である。
また、プロパゲーションディレイ時間決定手順は、第2セグメント分割手順で得られた各セグメント46毎のディレイ時間を考慮した配線のプロパゲーションディレイ時間tPQを求める手順である。
【0128】
さらに、配線長調整手順は、ドライバ出力点Pから各レシーバまでのディレイ時間〔Delay (P→各レシーバ)〕、即ち、ディレイ時間決定手順で求められた等ディレイ分岐点Qから各レシーバへの第5ディレイ時間tR ,プロパゲーションディレイ時間決定手順で求められた配線のプロパゲーションディレイ時間tPQ及びドライバ出力点Pでの外部クロックディレイ時間tLOADを加算した時間と、設定時間γとを比較して、この比較結果に基づいて、セグメント単位で配線長を調整する手順である。
【0129】
上述の構成により、本発明の一実施形態にかかる会話型回路設計装置1においては、以下のように動作することにより、等ディレイ分岐点Qが決定され、等ディレイ分岐点Qとドライバ出力点Pとの間の配線長が調整される。
即ち、会話型回路設計装置1においては、第1セグメント分割ステップ(ステップS4)により、クロックネット44における2つのレシーバ間を接続する配線が、少なくとも2個以上の分割点が設定されることにより、少なくとも3個以上のセグメントに分割される。
【0130】
続いて、等ディレイ分岐セグメント決定ステップ(ステップS5)により、第1セグメント分割ステップ(ステップS4)で得られたセグメントについて、等ディレイ分岐点Qが存在するセグメントが、等ディレイ分岐セグメントとして決定され、等ディレイ分岐点決定ステップ(ステップS6)により、等ディレイ分岐セグメント決定ステップ(ステップS5)で求められた等ディレイ分岐セグメント中で等ディレイ分岐点Qが決定される。
【0131】
また、ディレイ時間決定ステップ(ステップS7)により、等ディレイ分岐点決定ステップ(ステップS6)で求められた等ディレイ分岐点Qから各レシーバへの第5ディレイ時間tR が求められる。
さらに、第2セグメント分割ステップ(ステップS8)により、図9に示すように、等ディレイ分岐点Qからドライバ出力点Pへ至る配線が、少なくとも2個以上の分割点(分岐点)P1 ,…,Pn+1 が設定されることにより、少なくとも3個以上のセグメント46に分割される。
【0132】
続いて、プロパゲーションディレイ時間決定ステップ(ステップS9)により、第2セグメント分割ステップ(ステップS8)で得られた各セグメント46毎のディレイ時間を考慮した配線のプロパゲーションディレイ時間tPQが求められる。
さらに、配線長調整ステップ(ステップS10)により、ドライバ出力点P(図9,図10参照)から各レシーバまでのディレイ時間〔Delay (P→各レシーバ)〕と、設定時間γとが比較される。
【0133】
例えば、ドライバ出力点Pから各レシーバまでのディレイ時間〔Delay (P→各レシーバ)〕が、初めから予め設定された時間γを超えている場合〔即ち、Delay (P→各レシーバ) > γ 〕には、ドライバ45Aやクロック・トリー45B(図9,図10参照)の配置変更が行なわれる。
また、ドライバ出力点Pから各レシーバまでのディレイ時間〔Delay (P→各レシーバ)〕が、予め設定された時間γ未満である場合〔即ち、Delay (P→各レシーバ) < γ 〕には、分割点P1 と分割点P2 との間に長さsのセグメントを順次挿入したと仮定しその都度ドライバ出力点Pから各レシーバまでのディレイ時間〔Delay (P→各レシーバ)〕が計算される。
【0134】
このドライバ出力点Pから各レシーバまでのディレイ時間〔Delay (P→各レシーバ)〕の計算は、当該ディレイ時間が設定値γを超えるまで継続され、その結果、2分法により設定値γとなる分割点P1 ,P2 間の配線長Lが求められ、これにより等ディレイ分岐点Qとドライバ出力点Pとの間の配線長が調整される。
【0135】
このように、本発明の一実施形態にかかる会話型回路設計装置1におけるクロックスキューを低減させるための配線処理方法の第2の態様によれば、クロック同期式回路におけるクロック分配回路上の各クロックネット44において、クロック・トリー45Bにおけるレシーバ間を接続する配線を複数のセグメントに分割して複数のシングルΠ型RC回路で評価することにより、配線における単位グリッド当たりの抵抗及び容量が場所によらず等しくないことを考慮することができるため、レシーバ間を接続する配線における等ディレイ分岐点Qを正確に決定することができる。
【0136】
また、このとき、分割点を、(1)レシーバ間を接続する配線上の物理的な分岐点,(2)レシーバ間を接続する配線の単位長当たりのインピーダンスが変化する点,(3)セグメントの長さがある決められた長さs(任意の定数)を超える点,のいずれかとすることにより、各クロックネット44の状態に応じた分割点を設定することができ、等ディレイ分岐点Qをより正確に決定することができる。
【0137】
さらに、図9に示すように、等ディレイ分岐点Qからドライバ出力点Pへ至る配線を、複数のセグメント46に分割して複数のシングルΠ型RC回路で評価することにより、配線における単位グリッド当たりの抵抗及び容量が場所によらず等しくないことを考慮することができ、このとき、分割点P1 ,…,Pn+1 を、(1)等ディレイ分岐点Qとドライバ出力点Pとの間の配線の単位長当たりのインピーダンスが変化する点,(2)セグメント46の長さがある決められた長さs(任意の定数)を超える点のいずれかとすることにより、各クロックネット44の状態に応じた分割点P1 ,…,Pn+1 を設定することができる。
【0138】
また、クロックネット44において、ドライバ出力点Pからクロック・トリー45Bにおける各レシーバまでのディレイ時間〔Delay (P→各レシーバ)〕と、設定時間とを比較して、この比較結果に基づいて、等ディレイ分岐点Qからドライバ出力点Pへ至る配線についてセグメント単位で配線長を調整することにより、ドライバ45Aに負荷がつくことにより増加する外部クロックディレイ時間を考慮しながら、クロックネット44におけるドライバ45Aからクロック・トリー45Bにおける各レシーバまでのディレイ時間を等しくすることができ、これにより、クロックネット44のクロック・トリー45Bにおけるクロックスキューを更に効果的に低減させることができる。
(b3)クロックスキューを低減させるための配線処理方法の第3の態様の説明
また、本発明の一実施形態にかかる会話型回路設計装置1における配線処理方法として、クロック同期式回路におけるクロックの伝搬遅延時間(ディレイ時間)の差分であるクロックスキューを低減させるための配線処理方法の第3の態様について説明する。
【0139】
クロックスキューを低減させるための配線処理方法の第3の態様においては、クロック同期式回路におけるクロック分配回路上の各クロックネットにおいて、各レシーバ間を接続する配線における等ディレイ分岐点が予め正確に決定されている場合には、この等ディレイ分岐点とドライバ出力点(外部クロック源取込み部)との間の配線長を調整するだけで、ドライバに負荷がつくことにより増加する外部クロックディレイ時間を考慮しながら、クロックネットにおけるクロックスキューを低減させることができる。
【0140】
本態様における配線処理方法は、図15に示すように、セグメント分割ステップ(ステップS11),プロパゲーションディレイ時間決定ステップ(ステップS12)及び配線長調整ステップ(ステップS13)をそなえて構成されている。
ここで、セグメント分割ステップ(ステップS11)は、等ディレイ分岐点とドライバ出力点との間の配線について、少なくとも2個以上の分割点を設定することにより、少なくとも3個以上のセグメントに分割するステップである。
【0141】
このセグメント分割ステップ(ステップS11)は、前述の図13における第2セグメント分割ステップ(ステップS8)と同様のステップである。
また、プロパゲーションディレイ時間決定ステップ(ステップS12)は、セグメント分割ステップ(ステップS11)で得られた各セグメント毎のディレイ時間を考慮した配線のプロパゲーションディレイ時間を求めるステップである。
【0142】
このプロパゲーションディレイ時間決定ステップ(ステップS12)は、前述の図13におけるプロパゲーションディレイ時間決定ステップ(ステップS9)と同様のステップである。
さらに、配線長調整ステップ(ステップS13)は、プロパゲーションディレイ時間決定ステップ(ステップS12)で求められた配線のプロパゲーションディレイ時間と設定時間とを比較して、この比較結果に基づいて、セグメント単位で配線長を調整するステップである。
【0143】
この配線長調整ステップ(ステップS13)は、前述の図13における配線長調整ステップ(ステップS10)と同様のステップである。
ここで、上述したような各ステップ(ステップS11〜S13)からなる配線処理方法は、会話型回路設計装置1のCPU2(図1参照)が、図16に示すようなセグメント分割処理部A11,プロパゲーションディレイ時間決定処理部A12及び配線長調整処理部A13に相当する機能を有することにより実行される。
【0144】
セグメント分割処理部A11は、クロック同期式回路におけるクロック分配回路上の配線について、少なくとも2個以上の分岐点を設定することにより、少なくとも3個以上のセグメントに分割する処理を行なうものである。
また、プロパゲーションディレイ時間決定処理部A12は、セグメント分割処理部A11で得られた各セグメント毎のディレイ時間を考慮した配線のプロパゲーションディレイ時間を求める処理を行なうものである。
【0145】
さらに、配線長調整処理部A13は、プロパゲーションディレイ時間決定処理部A12で求められた配線のプロパゲーションディレイ時間と設定時間とを比較して、この比較結果に基づいて、セグメント単位で配線長を調整する処理を行なうものである。
そして、実際には、このような各処理部A11〜A13に相当する機能は、後述するような各手順を、会話型回路設計装置1のCPU2に実行させるための配線処理プログラムをハードディスク8に格納することにより実現することができる。
【0146】
ここで、本態様における配線処理プログラムは、セグメント分割手順,プロパゲーションディレイ時間決定手順及び配線長調整手順を、会話型回路設計装置1に実行させるためのソフトウェアである。
セグメント分割手順は、クロック同期式回路におけるクロック分配回路上の配線について、少なくとも2個以上の分岐点を設定することにより、少なくとも3個以上のセグメントに分割する手順である。
【0147】
また、プロパゲーションディレイ時間決定手順は、セグメント分割手順で得られた各セグメント毎のディレイ時間を考慮した配線のプロパゲーションディレイ時間を求める手順である。
さらに、配線長調整手順は、プロパゲーションディレイ時間決定手順で求められた配線のプロパゲーションディレイ時間と設定時間とを比較して、この比較結果に基づいて、セグメント単位で配線長を調整する手順である。
【0148】
上述の構成により、本発明の一実施形態にかかる会話型回路設計装置1においても、図15に示す各ステップ(ステップS11〜S13)により、図13に示す各ステップ(ステップS8〜S10)と同様の動作が行なわれることにより、等ディレイ分岐点とドライバ出力点との間の配線長が調整される。
このようにしても、クロックネットにおけるドライバから各レシーバまでのディレイ時間を等しくすることができ、ドライバに負荷がつくことにより増加する外部クロックディレイ時間を考慮しながら、クロックネットのクロック・トリーにおけるクロックスキューを効果的に低減させることができる。
【0149】
(b4)配線経路を決定するための配線処理方法の第1の態様の説明
さらに、本発明の一実施形態にかかる会話型回路設計装置1における配線処理方法として、LSI上の各回路を接続する際に最適な配線経路を決定するための配線処理方法の第1の態様について説明する。
前述のごとく、LSI上の各回路は、自動配線において探索された最適な配線経路により接続される。
【0150】
ここで、本態様における配線経路の決定方法について説明する。
本態様における配線経路を決定するための配線処理方法は、図23に示すように、前方探索処理ステップ(ステップS14)及び後方探索処理ステップ(ステップS16)をそなえて構成されている。
まず、本態様においては、回路基板上の配線についての配線経路を決定するに際し、予め、図1,図2に示す会話型回路計算装置1のハードディスク8か、又は図示しないメモリに、使用可能フラグ,到着状況フラグ及び到着方向フラグが用意される。
【0151】
ここで、使用可能フラグは、配線の最小ピッチを単位として、配線領域を格子状に分割し、格子点が配線に使用可能であるかどうかを示すフラグであり、例えば図18(b)に示すように、格子点が配線に使用可能である場合には“1”が設定され、格子点が配線に使用不可である場合には“0”が設定される。
また、到着状況フラグは、格子点に探索線分が到着したことを示すフラグであり、例えば図18(c)に示すように、格子点に探索線分が到着した場合には到着済を示す“1”が設定され、格子点に探索線分が到着していない場合には未到着を示す“0”が設定される。
【0152】
なお、使用可能フラグ及び到達状況フラグは、配線層毎に各1ビットずつ用意される。
さらに、到着方向フラグは、格子点に探索線分が到着した方向を示すフラグであり、配線層に毎に数ビット用意される。
例えば、1層配線においては、使用可能フラグ及び到達状況フラグが各1ビット用意される。
【0153】
また、X軸を水平方向,Y軸を垂直方向と定義すると、到着方向フラグとしては、到達方向がX軸方向かY軸方向かを示すXY方向フラグ〔例えば図18(d)参照〕が1ビット用意されるとともに、到達方向が正方向が負方向かを示す正負方向フラグ〔例えば図18(e)参照〕が1ビット用意される。
なお、XY方向フラグは、例えば図18(d)に示すように、到達方向がX軸方向である場合には“1”が設定され、到達方向がY軸方向である場合には“0”が設定される。
【0154】
また、正負方向フラグは、例えば図18(e)に示すように、到達方向が正方向である場合には“1”が設定され、到達方向が負方向である場合には“0”が設定される。
ここで、上述した使用可能フラグ,到着状況フラグ及び到着方向フラグは、後述にて詳述する前方探索処理ステップ(ステップS14)における線分探索のための演算を並列処理にて行なうために、例えば図17に示すように、メモリ等におけるバイトアドレス及びビット数がそのまま格子点の座標を表すようなテーブル形式により構成されている。
【0155】
即ち、本態様においては、前方探索処理ステップ(ステップS14)における線分探索のための演算を並列的に行なえるようにするために、各格子点を1ビットで表わし、各フラグを図17に示すような形式にて構成している。
ここで、図17に示すテーブル52は、当該演算をY軸方向に対して1ワードずつ並列処理(図17に示す例では並列度8)にて行なえるように構成されている。
【0156】
なお、図17に示すテーブル52をX軸とY軸とを入れ換えた形式により構成して、このようなテーブルにより各フラグを保持すれば、当該演算をX軸方向に対して1ワードずつ並列処理にて行なえるようにすることもできる。
本態様における配線処理方法について説明すると、前方探索処理ステップ(ステップS14)は、隣接格子点フラグ処理手順S15を並列的に実行するステップである。
【0157】
ここで、隣接格子点フラグ処理手順S15は、到着状況フラグが“1”である格子点に隣接する隣接格子点について、使用可能フラグが“1”であり、且つ、到着状況フラグが“0”である場合に、隣接格子点の到着状況フラグを“1”にするような演算を行なうともに、隣接格子点の到着方向フラグにその探索方向を表示させる(即ち、その探索方向に応じて、XY方向フラグ及び正負方向フラグを“1”又は“0”に設定する)ような処理手順である。
【0158】
さらに、この前方探索処理ステップ(ステップS14)は、この隣接格子点フラグ処理手順S15を、各探索線分について、到着状況フラグが“1”である格子点がなくなるまで、繰り返して実行することにより、順次線分を発生させていくステップである。
また、後方探索処理ステップ(ステップS16)は、前方探索処理ステップ(ステップS14)において、探索の終了点を示す格子点の到着状況フラグが“1”となった後に(即ち探索線分が終了点まで到達した後に)、探索の終了点を示す格子点から探索の開始点を示す格子点まで、到着方向フラグに従って配線経路をさかのぼって逆探索することにより、最適な配線経路を検索するステップである。
【0159】
ここで、上述したような各ステップ(ステップS14,S16)からなる配線処理方法は、会話型回路設計装置1のCPU2(図1参照)が、図24に示すような前方探索処理部A14及び後方探索処理部A16に相当する機能を有することにより実行される。
前方探索処理部A14は、隣接格子点フラグ処理部A15をそなえ、この隣接格子点フラグ処理部A15により、前述した隣接格子点フラグ処理手順S15を並列的に実行するものであり、更に、この隣接格子点フラグ処理手順S15を、各探索線分について、到着状況フラグが“1”である格子点がなくなるまで、繰り返して実行することにより、順次線分を発生させていく前方探索処理を行なうものである。
【0160】
また、後方探索処理部A16は、前方探索処理部A14において探索の終了点を示す格子点の到着状況フラグが“1”となった後に(即ち探索線分が終了点まで到達した後に)、探索の終了点を示す格子点から探索の開始点を示す格子点まで、到着方向フラグに従って配線経路をさかのぼって逆探索することにより、最適な配線経路を検索する後方探索処理を行なうものである。
【0161】
そして、実際には、このような各処理部A14,A16に相当する機能は、後述するような各手順を、会話型回路設計装置1のCPU2に実行させるための配線処理プログラムをハードディスク8に格納することにより実現することができる。
ここで、本態様における配線処理プログラムは、前方探索処理手順及び後方探索処理手順を、会話型回路設計装置1に実行させるためのソフトウェアである。
【0162】
前方探索処理手順は、回路基板上の配線の最小ピッチを単位とし配線領域を格子状に分割して得られた格子点に探索線分が到着したことを示す到着状況フラグが“1”である格子点に隣接する隣接格子点について、格子点が配線に使用可能であるかどうかを示す使用可能フラグが“1”であり、且つ、到着状況フラグが“0”である場合に、隣接格子点の到着状況フラグを“1”にするような演算を行なうともに、隣接格子点において、隣接格子点に探索線分が到着した方向を示す到着方向フラグにその探索方向を表示させる(即ち、その探索方向に応じて、XY方向フラグ及び正負方向フラグを“1”又は“0”に設定する)隣接格子点フラグ処理手順S15(図23参照)を並列的に実行する手順であり、更にこの隣接格子点フラグ処理手順を、各探索線分について、到着状況フラグが“1”である格子点がなくなるまで、繰り返して実行することにより、順次線分を発生させていく手順である。
【0163】
また、後方探索処理手順は、前方探索処理手順において探索の終了点を示す格子点の到着状況フラグが“1”となった後に(即ち探索線分が終了点まで到達した後に)、探索の終了点を示す格子点から探索の開始点を示す格子点まで、到着方向フラグに従って配線経路をさかのぼって逆探索することにより、最適な配線経路を検索する手順である。
【0164】
上述の構成により、本発明の一実施形態にかかる会話型回路設計装置1においては、以下のように動作することにより、配線経路が検索され、最適な配線経路が決定される。
以下では、図18(a)に示すような回路基板上の配線についての配線経路を決定する場合について説明する。
【0165】
ここで、図18(a)は、回路基板の初期状態(配線経路の決定前の状態)を示す図であり、この図18(a)においては、探索の開始点をSで示すとともに、探索の終了点をTで示している。なお、図18(a)においては、各回路の存在等による回路基板上の配線禁止領域を実線で示している。
この図18(a)に示す回路基板の初期状態時の使用可能フラグ,到達状況フラグ,XY方向フラグ及び正負方向フラグを、それぞれ図18(b)〜図18(e)に示す。
【0166】
なお、図18(b)〜図18(e)においては、フラグが“1”である格子点を網かけで示す。図18(b)に示すように、初期状態時には、開始点Sの到達状況フラグが“1”にされている。
会話型回路設計装置1においては、まず、前方探索処理ステップ(ステップS14)により、到達状況フラグが“1”である格子点に対し、その格子点の探索方向に隣接する格子点の使用可能フラグが“1”であり到達状況フラグが“0”である場合には、隣接格子点の到達状況フラグが“1”に設定されるとともに探索方向が到達方向フラグに記録される。
【0167】
前方探索処理ステップ(ステップS14)においては、上述の動作が、各探索線分について到達状況フラグが“1”になる格子点がなくなるまで行なわれる。
即ち、図18(a)に示すような回路基板上の配線についての配線経路を決定する際には、図19(a)に示すように、まず、演算により開始点SからX軸方向に検索線分を発生する(検索レベル1)。なお、このときの使用可能フラグ,到達状況フラグ,XY方向フラグ及び正負方向フラグは、それぞれ図19(b)〜図19(e)に示すようになる。
【0168】
続いて、図20(a)に示すように、上述の検索レベル1で発生した検索線分から、Y軸方向に検索線分を発生する(検索レベル2)。この検索レベル2や以下の検索レベル(検索レベル3,4)において、各検索線分の発生を並列的に行なうようにすれば、処理速度を向上させることができる。なお、このときの使用可能フラグ,到達状況フラグ,XY方向フラグ及び正負方向フラグは、それぞれ図20(b)〜図20(e)に示すようになる。
【0169】
さらに、図21(a)に示すように、上述の検索レベル2で発生した検索線分から、X軸方向に検索線分を発生する(検索レベル3)。なお、このときの使用可能フラグ,到達状況フラグ,XY方向フラグ及び正負方向フラグは、それぞれ図21(b)〜図21(e)に示すようになる。
また、図22(a)に示すように、上述の検索レベル3で発生した検索線分から、Y軸方向に検索線分を発生する(検索レベル4)。なお、このときの使用可能フラグ,到達状況フラグ,XY方向フラグ及び正負方向フラグは、それぞれ図22(b)〜図22(e)に示すようになる。
【0170】
そして、検索線分が終了点Tに到達した後、後方探索処理ステップ(ステップS16)により、図22(f)に示すように、終了点Tから開始点Sまで、到着方向フラグに従って配線経路をさかのぼって逆探索することにより、最適な配線経路を決定することができる。
このように、本発明の一実施形態にかかる会話型回路設計装置1における配線経路を決定するための配線処理方法の第1の態様によれば、各格子点の使用可能フラグ,到着状況フラグ及び到着方向フラグを、例えば図17に示すように、メモリ等におけるバイトアドレス及びビット数がそのまま格子点の座標を表すように構成することにより、前方探索処理ステップ(ステップS14)における演算を並列処理にて高速に行なうことができるようになるため、配線経路の探索に要する時間を大幅に短縮することができる。
【0171】
(b5)配線経路を決定するための配線処理方法の第2の態様の説明
続いて、本発明の一実施形態にかかる会話型回路設計装置1における配線処理方法として、LSI上の各回路を接続する際に最適な配線経路を決定するための配線処理方法の第2の態様について説明する。
ここで、本態様における配線経路を決定するための配線処理方法は、図27に示すように、前方探索処理ステップ(ステップS17),後方探索処理ステップ(ステップS18)及び最適配線経路決定ステップ(ステップS19)をそなえて構成されている。
【0172】
まず、本態様においては、回路基板上の配線についての配線経路を決定するに際し、予め、図1,図2に示す会話型回路計算装置1のハードディスク8か、又は図示しないメモリに、到着方向フラグが用意される。
ここで、到着方向フラグは、配線の最小ピッチを単位として、配線領域を格子状に分割し、格子点に探索線分が到着した方向を示すフラグである。
【0173】
この到着方向フラグとしては、各方向毎に、各格子点について探索線分が到達したことを“1”で示すフラグが1ビットずつ用意される。
例えば、1層配線においては、X軸を水平方向にY軸を垂直方向に定義し、X軸の正方向,X軸の負方向,Y軸の正方向,Y軸の負方向の各々についてフラグが用意される。
【0174】
ここで、複数の配線経路の探索が許されない場合には、配線経路として、先に検索された配線経路〔例えば図25(a)に示す例では、終了点Tの左側から到達した配線経路〕が選択されるため、図25(b)に示すように、最適ではない配線経路が選択される可能性がある。
このため、本実施形態においては、配線経路として、例えば図26(a)に示すように複数の配線経路を探索して、複数の配線経路の中から最適な配線経路〔例えば図26(b)に示す例では、配線長が最短となる配線経路〕を選択できるようにするために、到着方向フラグを、各方向から探索線分が到達したことを示す4種類のフラグにより構成している。
【0175】
ここで、前方探索処理ステップ(ステップS17)は、例えば図26(a)に示すような回路基板上の配線についての配線経路を決定する際に、各格子点について、到着方向フラグにその探索方向を複数表示させながら、前方探索を行なっていくステップである。
即ち、前方探索処理ステップ(ステップS17)においては、各格子点について、複数の方向から探索線分が到達した場合には、その方向に対応する到着方向フラグが“1”に設定される。
【0176】
また、後方探索処理ステップ(ステップS18)は、前方探索処理ステップ(ステップS17)において探索の終了点を示す格子点の到着方向フラグが“1”となった後に(即ち探索線分が終了点まで到達した後に)、例えば図26(a)に示すように、探索の終了点Tを示す格子点から探索の開始点Sを示す格子点まで、到着方向フラグに従って配線経路をさかのぼって逆探索することにより、複数の配線経路〔図26(a)では4通りの配線経路〕を検索するステップである。
【0177】
さらに、最適配線経路決定ステップ(ステップS19)は、後方探索処理ステップ(ステップS18)で得られた複数の配線経路の配線長又は配線コストを求めることにより、例えば図26(b)に示すように、最適な配線経路を決定するステップである。
具体的には、この最適配線経路決定ステップ(ステップS19)においては、配線長又は配線コストが最小である配線経路が最適な配線経路であると決定される。
【0178】
ここで、上述したような各ステップ(ステップS17〜S19)からなる配線処理方法は、会話型回路設計装置1のCPU2(図1参照)が、図28に示すような前方探索処理部A17,後方探索処理部A18及び最適配線経路決定処理部A19に相当する機能を有することにより実行される。
前方探索処理部A17は、例えば図26(a)に示すような回路基板上の配線についての配線経路を決定する際に、回路基板上の配線の最小ピッチを単位とし配線領域を格子状に分割して得られた各格子点について、格子点に探索線分が到着した方向を示す到着方向フラグにその探索方向を複数表示させながら、前方探索を行なうものである。
【0179】
また、後方探索処理部A18は、前方探索処理部A17において探索の終了点を示す格子点の到着方向フラグが“1”となった後に(即ち探索線分が終了点まで到達した後に)、例えば図26(a)に示すように、探索の終了点Tを示す格子点から探索の開始点Sを示す格子点まで、到着方向フラグに従って配線経路をさかのぼって逆探索することにより、複数の配線経路〔図26(a)では4通りの配線経路〕を検索する処理を行なうものである。
【0180】
さらに、最適配線経路決定処理部A19は、後方探索処理部A18で得られた複数の配線経路の配線長又は配線コストを求めることにより、例えば図26(b)に示すように、配線長又は配線コストが最小である配線経路を最適な配線経路として決定する処理を行なうものである。
そして、実際には、このような各処理部A17〜A19に相当する機能は、後述するような各手順を、会話型回路設計装置1のCPU2に実行させるための配線処理プログラムをハードディスク8に格納することにより実現することができる。
【0181】
ここで、本態様における配線処理プログラムは、前方探索処理手順,後方探索処理手順及び最適配線経路決定手順を、会話型回路設計装置1に実行させるためのソフトウェアである。
前方探索処理手順は、例えば図26(a)に示すような回路基板上の配線についての配線経路を決定する際に、回路基板上の配線の最小ピッチを単位とし配線領域を格子状に分割して得られた各格子点について、格子点に探索線分が到着した方向を示す到着方向フラグにその探索方向を複数表示させながら、前方探索を行なっていく手順である。
【0182】
また、後方探索処理手順は、前方探索処理手順において探索の終了点を示す格子点の到着方向フラグが“1”となった後に(即ち探索線分が終了点まで到達した後に)、例えば図26(a)に示すように、探索の終了点Tを示す格子点から探索の開始点Sを示す格子点まで、到着方向フラグに従って配線経路をさかのぼって逆探索することにより、複数の配線経路〔図26(a)では4通りの配線経路〕を検索する手順である。
【0183】
さらに、最適配線経路決定手順は、後方探索処理手順で得られた複数の配線経路の配線長又は配線コストを求めることにより、例えば図26(b)に示すように、配線長又は配線コストが最小である配線経路を最適な配線経路として決定する手順である。
上述の構成により、本発明の一実施形態にかかる会話型回路設計装置1においては、以下のように動作することにより、配線経路が検索され、最適な配線経路が決定される。
【0184】
会話型回路設計装置1においては、まず、前方探索処理ステップ(ステップS17)により、各格子点について、複数の方向から探索線分が到達した場合には、その方向に対応する到着方向フラグが“1”に設定されながら、前方探索が行なわれる。
そして、前方探索処理ステップ(ステップS17)において探索の終了点を示す格子点の到着方向フラグが“1”となった後に(即ち探索線分が終了点まで到達した後に)、後方探索処理ステップ(ステップS18)により、例えば図26(a)に示すように、探索の終了点Tを示す格子点から探索の開始点Sを示す格子点まで、到着方向フラグに従って配線経路をさかのぼって逆探索することにより、複数の配線経路が検索される。
【0185】
例えば、図26(a)に示すような回路基板上の配線についての配線経路を決定する際には、後方探索処理ステップ(ステップS18)においては、到着方向フラグに従って配線経路を逆探索することにより、4通りの配線経路が検索される。
さらに、後方探索処理ステップ(ステップS18)において、複数の配線経路が検索されると、最適配線経路決定ステップ(ステップS19)により、この複数の配線経路から、例えば図26(b)に示すように、最適な配線経路が決定される。
【0186】
例えば、図26(a)に示すような回路基板上の配線についての配線経路を決定する際には、最適配線経路決定ステップ(ステップS19)においては、後方探索処理ステップ(ステップS18)で得られた各々の配線経路について、配線長を求めることにより配線長が最短である配線経路が決定される。
このように、本発明の一実施形態にかかる会話型回路設計装置1における配線経路を決定するための配線処理方法の第2の態様によれば、到着方向フラグが、格子点に探索線分が到着した方向を示すように構成される(具体的には、到着方向フラグが格子点に対して各方向から探索線分が到達したことを示す4種類のフラグにより構成される)ことにより、配線経路として複数の配線経路を探索してその中から最適な配線経路を選択することができるため、配線長を最小化して配線性を向上させることが可能となる。
【0187】
なお、配線領域を小領域に分割した場合の各分割領域の配線混雑度,複数の配線層をもつ場合の各配線層のディレイ値等に基づいて、各格子点毎に配線コストを設定すれば、上述した最適配線経路決定ステップ(ステップS19)において、配線性や回路の性能まで考慮した最適の経路を決定することができる。
(b6)配線経路を決定するための配線処理方法の第3の態様の説明
さらに、本発明の一実施形態にかかる会話型回路設計装置1における配線処理方法として、LSI上の各回路を接続する際に最適な配線経路を決定するための配線処理方法の第3の態様について説明する。
【0188】
ここで、本態様においては、最適な配線経路を決定するために、各回路の配置終了段階において、配線を行なう前に配線可能性として配線混雑度を見積もり、この配線混雑度による評価に応じて、回路配置の修正を適宜行なう方法について説明する。
本態様における配線経路を決定するための配線処理方法は、図30に示すように、回路配置決定ステップ(ステップS20),配線混雑度評価ステップ(ステップS21)及び回路配置修正ステップ(ステップS22)をそなえて構成されている。
【0189】
ここで、回路配置決定ステップ(ステップS20)は、回路基板上の回路についての配置を決定するステップである。この回路配置決定ステップ(ステップS20)においては、従来よりの方法等により回路基板上の回路についての配置が決定される。
また、配線混雑度評価ステップ(ステップS21)は、回路配置決定ステップ(ステップS20)にて、回路についての配置を決定した後に、回路を接続する配線についての配線混雑度を求めることにより、回路配置決定ステップ(ステップS20)にて決定された回路配置についての評価を行なうステップである。
【0190】
ここで、配線混雑度評価ステップ(ステップS21)における配線混雑度評価方法について説明する。
まず、図29に示すような配線により構成されるネットが、配線領域における点を占有する確率について考える。
ネットが配線領域における点を占有する確率は、配線されるネットの端子(図29では端子を●で示す)を包含する最小矩形の面積S,ネットの論長lを用いて表現することができる。
【0191】
即ち、面積Si の矩形内の点を、論長li のネットiが占める確率pi は、
i =li /Si
であると仮定する。
ここで、各ネットの論長li を合計したものを総配線長Lとすると、総配線長Lは次式のように定義される。
【0192】
【数17】
Figure 0004268694
一方で、各ネットの重複(重なり)を許した場合の配線に使用される点の数Gは、「1つのネットだけが点を使用する確率」+「2つのネットだけが点を使用する確率」+「3つのネットだけが点を使用する確率」+…+「全ネットが点を使用する確率」を、全配線領域に包含される点について合計することで計算できる。
【0193】
ここで、「1つのネットだけが点を使用する確率」は、次式により求めることができる。
【0194】
【数18】
Figure 0004268694
また、「2つのネットだけが点を使用する確率」は、次式により求めることができる。
【0195】
【数19】
Figure 0004268694
以下、同様にして、「nのネットだけが点を使用する確率」は、
【0196】
【数20】
Figure 0004268694
により求めることができる。ここで、論長li のネットiが占める確率pi は、1と比較して小さい値であると考えられ、nが大きくなるに従って「nのネットだけが点を使用する確率」は急速に収束するものと考えられる。
【0197】
このため、適当なネット数までの値を用いることにより、使用される点の数Gを近似することができる。
ところで、総配線長Lが等しければ、使用される点の数Gが少ない方が配線混雑度が大きいと考えることができることから、配線混雑度の評価値として、
(L−G)/L
を考える。
【0198】
また、総配線長Lは、
L=1×「1つのネットだけが点を使用する確率」+…+「全ネット数」×「全ネットが点を使用する確率」
とも表現することができるため、上記の式を使用して、論長li のネットiが占める確率pi が4つ以上積算される項を無視して計算すると、
L−G=Σ〔(1/2)T1 2+(1/2)T1 2 −(1/2)T2 −(1/6)T1 3−(1/3)T3
(Σは配線領域の全点における和)
但し、T1 =Σpi ,T2 =Σ(pi 2 ),T3 =Σ(pi 3
となる。
【0199】
これにより、各ネットのある点を占める確率の積の和を用いて、(L−G)を計算することができる。
以上より、配線可能性をはかる配線混雑度を評価する値として、(L−G)/Lが計算される。
このように、配線混雑度評価ステップ(ステップS21)においては、回路配置決定ステップ(ステップS20)にて回路についての配置を決定した後に、回路を接続する配線の総配線長をLとし、配線に使用される点の数をGとして、(L−G)/Lを配線についての配線混雑度として評価することにより、回路配置決定ステップ(ステップS20)にて決定された回路配置についての評価が行なわれるのである。
【0200】
ところで、回路配置修正ステップ(ステップS22)は、配線混雑度評価ステップ(ステップS21)にて配線混雑度を求めて回路配置についての評価を行なった後に、配線混雑度による評価に応じて回路配置を修正することにより、各回路の配置の改善や配線領域の最適化を行なうステップである。この回路配置修正ステップ(ステップS22)においては、従来よりの方法等により各回路の配置の改善や配線領域の最適化が行なわれる。
【0201】
なお、会話型回路設計装置1においては、回路配置修正ステップ(ステップS22)により、回路配置が適宜修正された後に、最適な配線経路での配線処理が行なわれるようになっている。
ここで、上述したような各ステップ(ステップS20〜S22)からなる配線処理方法は、会話型回路設計装置1のCPU2(図1参照)が、図31に示すような回路配置決定処理部A20,配線混雑度評価処理部A21及び回路配置修正処理部A22に相当する機能を有することにより実行される。
【0202】
回路配置決定処理部A20は、回路基板上の回路についての配置を決定する処理を行なうものである。
また、配線混雑度評価処理部A21は、回路配置決定処理部A20にて回路についての配置を決定した後に、回路を接続する配線の総配線長をLとし、配線に使用される点の数をGとして、(L−G)/Lを配線についての配線混雑度として評価することにより、回路配置決定処理部A20にて決定された回路配置についての評価する処理を行なうものである。
【0203】
さらに、回路配置修正処理部A22は、配線混雑度評価処理部A21にて配線混雑度を求めて回路配置についての評価を行なった後に、配線混雑度による評価に応じて回路配置を修正することにより、各回路の配置の改善や配線領域の最適化を行なうものである。
そして、実際には、このような各処理部A20〜A22に相当する機能は、後述するような各手順を、会話型回路設計装置1のCPU2に実行させるための配線処理プログラムをハードディスク8に格納することにより実現することができる。
【0204】
ここで、本態様における配線処理プログラムは、回路配置決定手順,配線混雑度評価手順及び回路配置修正手順を、会話型回路設計装置1に実行させるためのソフトウェアである。
回路配置決定手順は、回路基板上の回路についての配置を決定する手順である。
【0205】
また、配線混雑度評価手順は、回路配置決定手順にて回路についての配置を決定した後に、回路を接続する配線の総配線長をLとし、配線に使用される点の数をGとして、(L−G)/Lを配線についての配線混雑度として評価することにより、回路配置決定手順にて決定された回路配置についての評価を行なう手順である。
【0206】
さらに、回路配置修正手順は、配線混雑度評価手順にて配線混雑度を求めて回路配置についての評価を行なった後に、配線混雑度による評価に応じて回路配置を修正することにより、各回路の配置の改善や配線領域の最適化を行なう手順である。
上述の構成により、本発明の一実施形態にかかる会話型回路設計装置1においては、以下のように動作することにより、回路配置が決定され、その決定された回路配置が配線混雑度により評価され、配線混雑度による評価に応じて回路配置が修正される。
【0207】
会話型回路設計装置1においては、まず、回路配置決定ステップ(ステップS20)により、回路基板上の回路についての配置が決定される。
続いて、回路配置決定ステップ(ステップS20)にて、回路についての配置が決定されると、配線混雑度評価ステップ(ステップS21)により、回路を接続する配線についての配線混雑度が求められ、この配線混雑度に基づいて、回路配置決定ステップ(ステップS20)にて決定された回路配置についての評価が行なわれる。
【0208】
さらに、配線混雑度評価ステップ(ステップS21)での配線混雑度による評価に応じて、回路配置修正ステップ(ステップS22)により、回路配置の修正が適宜行なわれる。
そして、会話型回路設計装置1においては、回路配置修正ステップ(ステップS22)により、回路配置が適宜修正された後に、最適な配線経路での配線処理が行なわれる。
【0209】
このように、本発明の一実施形態にかかる会話型回路設計装置1における配線経路を決定するための配線処理方法の第3の態様によれば、各回路の配置終了段階において、配線を行なう前に配線可能性として配線混雑度を見積もり、この配線混雑度による評価に応じて回路配置の修正を適宜行なうことにより、最適な配線経路を決定することができる。
【0210】
また、この配線混雑度を評価する値(L−G)/Lを算出することにより、各回路の配置終了段階において、配線を行なう前に配線可能性を見積もることができるため、配線対象の巨大化に伴い要求されている早い段階での配線可能性の算出及び評価が可能となる。
さらに、この配線混雑度を評価する値(L−G)/Lに基づいて、回路配置の修正を行なうことにより、配線領域の最適化を適切に行なうことができる。
【0211】
【発明の効果】
以上詳述したように、本発明の配線処理方法によれば、クロック同期式回路におけるクロック分配回路上のクロックネットにおける2つのレシーバ間を接続する配線について、3個以上のセグメントに分割して等ディレイ分岐点を求めることにより、配線における単位グリッド当たりの抵抗及び容量が場所によらず等しくないことを考慮して等ディレイ分岐点を正確に決定することができ、これにより、クロック同期式回路におけるクロックの伝搬遅延時間(ディレイ時間)の差分であるクロックスキューを低減させることができる利点がある(請求項1〜)。
【0212】
また、本発明の配線処理方法によれば、クロック同期式回路におけるクロック分配回路上の配線について、3個以上のセグメントに分割してセグメント単位で配線長を調整することにより、外部クロックディレイ時間を考慮して各レシーバまでのディレイ時間を等しくすることができ、これにより、クロック同期式回路におけるクロックの伝搬遅延時間(ディレイ時間)の差分であるクロックスキューを低減させることができる利点がある(請求項)。
【0213】
さらに、本発明の配線処理方法によれば、クロック同期式回路におけるクロック分配回路上のクロックネットにおける2つのレシーバ間を接続する配線について、3個以上のセグメントに分割して等ディレイ分岐点を求めるとともに、この等ディレイ分岐点から外部クロック源取込み部へ至る配線について、3個以上のセグメントに分割してセグメント単位で配線長を調整することにより、配線における単位グリッド当たりの抵抗及び容量が場所によらず等しくないことを考慮して等ディレイ分岐点を正確に決定することができるとともに、外部クロックディレイ時間を考慮して各レシーバまでのディレイ時間を等しくすることができ、これにより、クロック同期式回路におけるクロックの伝搬遅延時間(ディレイ時間)の差分であるクロックスキューを効果的に低減させることができる利点がある(請求項)。
【0214】
また、本発明に関連する配線処理方法によれば、回路基板上の配線についての配線経路を決定するに際し、予め使用可能フラグ,到着状況フラグ及び到着方向フラグを用意した状態で、到着状況フラグが探索線分到着を示している格子点に隣接する隣接格子点について、使用可能フラグが使用可能状態を示しており、且つ、到着状況フラグが探索線分未到着を示している場合に、隣接格子点の到着状況フラグを探索線分到着を示す状態にするともに、隣接格子点の到着方向フラグにその探索方向を表示させる隣接格子点フラグ処理手順を並列的に実行することにより、前方探索処理ステップにおける演算を並列処理にて高速に行なうことができるため、配線経路の探索に要する時間を大幅に短縮することができる利点がある。
【0215】
さらに、本発明に関連する配線処理方法によれば、回路基板上の配線についての配線経路を決定するに際し、予め到着方向フラグを用意した状態で、各格子点について、到着方向フラグにその探索方向を複数表示させることにより、配線経路として複数の配線経路を探索してその中から最適な配線経路を選択することができるため、配線長を最小化して配線性を向上させることができる利点がある。
【0216】
また、本発明に関連する配線処理方法によれば、回路についての配置を決定した後に、回路を接続する配線の総配線長をLとし、配線に使用される点の数をGとして、(L−G)/Lを配線についての配線混雑度として評価する配線混雑度評価ステップとそなえて構成されることにより、各回路の配置終了段階において、配線を行なう前に配線可能性として配線混雑度を見積もることができるため、配線対象の巨大化に伴い要求されている早い段階での配線可能性の算出及び評価が可能となる利点がある。
【0217】
さらに、本発明の配線処理装置によれば、クロック同期式回路におけるクロック分配回路上のクロックネットにおける2つのレシーバ間を接続する配線について、2個以上の分岐点を設定することにより、3個以上のセグメントに分割するセグメント分割処理部と、等ディレイ分岐点が存在する等ディレイ分岐セグメントを決定する等ディレイ分岐セグメント決定処理部と、等ディレイ分岐セグメント中で等ディレイ分岐点を求める等ディレイ分岐点決定処理部とをそなえて構成されることにより、配線における単位グリッド当たりの抵抗及び容量が場所によらず等しくないことを考慮して等ディレイ分岐点を正確に決定することができ、これにより、クロック同期式回路におけるクロックの伝搬遅延時間(ディレイ時間)の差分であるクロックスキューを低減させることができる利点がある(請求項)。
【0218】
また、本発明の配線処理装置によれば、クロック同期式回路におけるクロック分配回路上の配線について、2個以上の分岐点を設定することにより、3個以上のセグメントに分割するセグメント分割処理部と、各セグメント毎のディレイ時間を考慮した該配線のプロパゲーションディレイ時間を求めるプロパゲーションディレイ時間決定処理部と、配線のプロパゲーションディレイ時間と設定時間とを比較して、この比較結果に基づいて、セグメント単位で配線長を調整する配線長調整処理部とをそなえて構成されることにより、外部クロックディレイ時間を考慮して各レシーバまでのディレイ時間を等しくすることができ、これにより、クロック同期式回路におけるクロックの伝搬遅延時間(ディレイ時間)の差分であるクロックスキューを低減させることができる利点がある(請求項)。
【0219】
さらに、本発明の配線処理装置によれば、クロック同期式回路におけるクロック分配回路上のクロックネットにおける2つのレシーバ間を接続する配線について、2個以上の分岐点を設定することにより、3個以上のセグメントに分割する第1セグメント分割処理部と、等ディレイ分岐点が存在する等ディレイ分岐セグメントを決定する等ディレイ分岐セグメント決定処理部と、等ディレイ分岐セグメント中で等ディレイ分岐点を求める等ディレイ分岐点決定処理部と、等ディレイ分岐点から各レシーバへの第5ディレイ時間を求めるディレイ時間決定処理部と、等ディレイ分岐点から外部クロック源取込み部へ至る配線について、2個以上の分岐点を設定することにより、3個以上のセグメントに分割する第2セグメント分割処理部と、各セグメント毎のディレイ時間を考慮した配線のプロパゲーションディレイ時間を求めるプロパゲーションディレイ時間決定処理部と、等ディレイ分岐点から各レシーバへの第5ディレイ時間と配線のプロパゲーションディレイ時間とを加算した時間と、設定時間とを比較して、この比較結果に基づいて、セグメント単位で配線長を調整する配線長調整処理部とをそなえて構成されることにより、配線における単位グリッド当たりの抵抗及び容量が場所によらず等しくないことを考慮して等ディレイ分岐点を正確に決定することができるとともに、外部クロックディレイ時間を考慮して各レシーバまでのディレイ時間を等しくすることができ、これにより、クロック同期式回路におけるクロックの伝搬遅延時間(ディレイ時間)の差分であるクロックスキューを効果的に低減させることができる利点がある(請求項10)。
【0220】
また、本発明に関連する配線処理装置によれば、回路基板上の配線の最小ピッチを単位とし配線領域を格子状に分割して得られた格子点に探索線分が到着したことを示す到着状況フラグが探索線分到着を示している格子点に隣接する隣接格子点について、格子点が配線に使用可能であるかどうかを示す使用可能フラグが使用可能状態を示しており、且つ、到着状況フラグが探索線分未到着を示している場合に、隣接格子点の到着状況フラグを探索線分到着を示す状態にするともに、隣接格子点において、隣接格子点に探索線分が到着した方向を示す到着方向フラグにその探索方向を表示させる隣接格子点フラグ処理手順を並列的に実行し、更に隣接格子点フラグ処理手順を、各探索線分について、到着状況フラグを探索線分到着を示す状態にするような格子点がなくなるまで、繰り返して実行する前方探索処理を行なう前方探索処理部と、前方探索処理の後に、所望の格子点から到着方向フラグに従って、配線経路をさかのぼっていくことにより、配線経路を検索する後方探索処理を行なう後方探索処理部とをそなえて構成されることにより、前方探索処理における演算を並列処理にて高速に行なうことができるため、配線経路の探索に要する時間を大幅に短縮することができる利点がある。
【0221】
さらに、本発明に関連する配線処理装置によれば、回路基板上の配線の最小ピッチを単位とし配線領域を格子状に分割して得られた各格子点について、格子点に探索線分が到着した方向を示す到着方向フラグにその探索方向を複数表示させながら、前方探索を行なっていく前方探索処理部と、前方探索の後に、所望の格子点から該到着方向フラグに従って、配線経路をさかのぼっていくことにより、複数の配線経路を検索する後方探索処理部と、複数の配線経路から最適な配線経路を決定する最適配線経路決定処理部とをそなえて構成されることにより、配線経路として複数の配線経路を探索してその中から最適な配線経路を選択することができるため、配線長を最小化して配線性を向上させることができる利点がある。
【0222】
また、本発明に関連する配線処理装置によれば、回路基板上の回路についての配置を決定する回路配置決定処理部と、回路についての配置を決定した後に、回路を接続する配線の総配線長をLとし、配線に使用される点の数をGとして、(L−G)/Lを配線についての配線混雑度として評価する配線混雑度評価処理部とをそなえて構成されることにより、各回路の配置終了段階において、配線を行なう前に配線可能性として配線混雑度を見積もることができるため、配線対象の巨大化に伴い要求されている早い段階での配線可能性の算出及び評価が可能となる利点がある。
【0223】
さらに、本発明の配線処理プログラム用記録媒体によれば、クロック同期式回路におけるクロック分配回路上のクロックネットにおける2つのレシーバ間を接続する配線について、3個以上のセグメントに分割するセグメント分割手順と、等ディレイ分岐点が存在する等ディレイ分岐セグメントを決定する等ディレイ分岐セグメント決定手順と、等ディレイ分岐セグメント中で等ディレイ分岐点を求める等ディレイ分岐点決定手順とを、コンピュータに実行させるための配線処理プログラムを記録することにより、配線における単位グリッド当たりの抵抗及び容量が場所によらず等しくないことを考慮して等ディレイ分岐点を正確に決定することができ、これにより、クロック同期式回路におけるクロックの伝搬遅延時間(ディレイ時間)の差分であるクロックスキューを低減させることができる利点がある(請求項11)。
【0224】
また、本発明の配線処理プログラム用記録媒体によれば、クロック同期式回路におけるクロック分配回路上の配線について、3個以上のセグメントに分割するセグメント分割手順と、各セグメント毎のディレイ時間を考慮した配線のプロパゲーションディレイ時間を求めるプロパゲーションディレイ時間決定手順と、配線のプロパゲーションディレイ時間と設定時間とを比較して、この比較結果に基づいて、セグメント単位で配線長を調整する配線長調整手順とを、コンピュータに実行させるための配線処理プログラムを記録することにより、外部クロックディレイ時間を考慮して各レシーバまでのディレイ時間を等しくすることができ、これにより、クロック同期式回路におけるクロックの伝搬遅延時間(ディレイ時間)の差分であるクロックスキューを低減させることができる利点がある(請求項12)。
【0225】
さらに、本発明の配線処理プログラム用記録媒体によれば、クロック同期式回路におけるクロック分配回路上のクロックネットにおける2つのレシーバ間を接続する配線について、3個以上のセグメントに分割する第1セグメント分割手順と、等ディレイ分岐点が存在する等ディレイ分岐セグメントを決定する等ディレイ分岐セグメント決定手順と、等ディレイ分岐セグメント中で等ディレイ分岐点を求める等ディレイ分岐点決定手順と、等ディレイ分岐点から各レシーバへの第5ディレイ時間を求めるディレイ時間決定手順と、等ディレイ分岐点から外部クロック源取込み部へ至る配線について、3個以上のセグメントに分割する第2セグメント分割手順と、各セグメント毎のディレイ時間を考慮した配線のプロパゲーションディレイ時間を求めるプロパゲーションディレイ時間決定手順と、等ディレイ分岐点から各レシーバへの第5ディレイ時間と配線のプロパゲーションディレイ時間とを加算した時間と、設定時間とを比較して、この比較結果に基づいて、セグメント単位で配線長を調整する配線長調整手順とを、コンピュータに実行させるための配線処理プログラムを記録することにより、配線における単位グリッド当たりの抵抗及び容量が場所によらず等しくないことを考慮して等ディレイ分岐点を正確に決定することができるとともに、外部クロックディレイ時間を考慮して各レシーバまでのディレイ時間を等しくすることができ、これにより、クロック同期式回路におけるクロックの伝搬遅延時間(ディレイ時間)の差分であるクロックスキューを効果的に低減させることができる利点がある(請求項13)。
【0226】
また、本発明に関連する配線処理プログラム用記録媒体によれば、回路基板上の配線の最小ピッチを単位とし配線領域を格子状に分割して得られた格子点に探索線分が到着したことを示す到着状況フラグが探索線分到着を示している格子点に隣接する隣接格子点について、格子点が配線に使用可能であるかどうかを示す使用可能フラグが使用可能状態を示しており、且つ、到着状況フラグが探索線分未到着を示している場合に、隣接格子点の到着状況フラグを探索線分到着を示す状態にするともに、隣接格子点において、隣接格子点に探索線分が到着した方向を示す到着方向フラグにその探索方向を表示させる隣接格子点フラグ処理手順を並列的に実行し、更に隣接格子点フラグ処理手順を、各探索線分について、到着状況フラグを探索線分到着を示す状態にするような格子点がなくなるまで、繰り返して実行する前方探索処理手順と、前方探索処理手順の後に、所望の格子点から到着方向フラグに従って、配線経路をさかのぼっていくことにより、配線経路を検索する後方探索処理手順とを、コンピュータに実行させるための配線処理プログラムを記録することにより、前方探索処理手順における演算を並列処理にて高速に行なうことができるため、配線経路の探索に要する時間を大幅に短縮することができる利点がある。
【0227】
さらに、本発明に関連する配線処理プログラム用記録媒体によれば、回路基板上の配線の最小ピッチを単位とし配線領域を格子状に分割して得られた各格子点について、格子点に探索線分が到着した方向を示す到着方向フラグにその探索方向を複数表示させながら、前方探索を行なっていく前方探索処理手順と、前方探索処理手順の後に、所望の格子点から到着方向フラグに従って、配線経路をさかのぼっていくことにより、複数の配線経路を検索する後方探索処理手順と、後方探索処理手順で得られた複数の配線経路から最適な配線経路を決定する最適配線経路決定手順とを、コンピュータに実行させるための配線処理プログラムを記録することにより、配線経路として複数の配線経路を探索してその中から最適な配線経路を選択することができるため、配線長を最小化して配線性を向上させることができる利点がある。
【0228】
また、本発明に関連する配線処理プログラム用記録媒体によれば、回路基板上の配線の総配線長をLとし、配線に使用される点の数をGとして、(L−G)/Lを配線についての配線混雑度として評価する配線混雑度評価手順をコンピュータに実行させるための配線処理プログラムを記録することにより、各回路の配置終了段階において、配線を行なう前に配線可能性として配線混雑度を見積もることができるため、配線対象の巨大化に伴い要求されている早い段階での配線可能性の算出及び評価が可能となる利点がある。
【図面の簡単な説明】
【図1】本発明の一実施形態にかかる会話型回路設計装置の構成を示すブロック図である。
【図2】本発明の一実施形態にかかる会話型回路設計装置の全体構成を示す図である。
【図3】本発明のクロックスキューを低減させるための配線処理方法の第1の態様におけるバッファ付きクロック・トリーをモデル化して示す図である。
【図4】本発明のクロックスキューを低減させるための配線処理方法の第1の態様におけるバッファ付きクロック・トリーの要部構成を示す図である。
【図5】本発明のクロックスキューを低減させるための配線処理方法の第1の態様におけるクロック分配回路上のクロックネットのクロック・トリーの構成を模式的に示す図である。
【図6】本発明のクロックスキューを低減させるための配線処理方法の第1の態様におけるクロック分配回路上のクロックネットのクロック・トリーの構成を模式的に示す図である。
【図7】本発明のクロックスキューを低減させるための配線処理方法の第1の態様を説明するためのフローチャートである。
【図8】本発明のクロックスキューを低減させるための配線処理装置の第1の態様を説明するための機能ブロック図である。
【図9】本発明のクロックスキューを低減させるための配線処理方法の第2の態様におけるクロック分配回路上のクロックネットの構成を模式的に示す図である。
【図10】本発明のクロックスキューを低減させるための配線処理方法の第2の態様におけるクロック分配回路上のクロックネットの構成を模式的に示す図である。
【図11】アドミッタンス算出用のy1,y2,y3の算出方法を説明するための図である。
【図12】外部クロックディレイ時間を説明するための図である。
【図13】本発明のクロックスキューを低減させるための配線処理方法の第2の態様を説明するためのフローチャートである。
【図14】本発明のクロックスキューを低減させるための配線処理装置の第2の態様を説明するための機能ブロック図である。
【図15】本発明のクロックスキューを低減させるための配線処理方法の第3の態様を説明するためのフローチャートである。
【図16】本発明のクロックスキューを低減させるための配線処理装置の第3の態様を説明するための機能ブロック図である。
【図17】使用可能フラグ,到着状況フラグ及び到着方向フラグの構成を説明するための図である。
【図18】(a)〜(e)はそれぞれ、本発明の配線経路を決定するための配線処理方法の第1の態様を説明するための図である。
【図19】(a)〜(e)はそれぞれ、本発明の配線経路を決定するための配線処理方法の第1の態様を説明するための図である。
【図20】(a)〜(e)はそれぞれ、本発明の配線経路を決定するための配線処理方法の第1の態様を説明するための図である。
【図21】(a)〜(e)はそれぞれ、本発明の配線経路を決定するための配線処理方法の第1の態様を説明するための図である。
【図22】(a)〜(f)はそれぞれ、本発明の配線経路を決定するための配線処理方法の第1の態様を説明するための図である。
【図23】本発明の配線経路を決定するための配線処理方法の第1の態様を説明するためのフローチャートである。
【図24】本発明の配線経路を決定するための配線処理装置の第1の態様を説明するための機能ブロック図である。
【図25】(a),(b)はそれぞれ、本発明の配線経路を決定するための配線処理方法の第2の態様を説明するための図である。
【図26】(a),(b)はそれぞれ、本発明の配線経路を決定するための配線処理方法の第2の態様を説明するための図である。
【図27】本発明の配線経路を決定するための配線処理方法の第2の態様を説明するためのフローチャートである。
【図28】本発明の配線経路を決定するための配線処理装置の第2の態様を説明するための機能ブロック図である。
【図29】本発明の配線経路を決定するための配線処理方法の第3の態様を説明するための図である。
【図30】本発明の配線経路を決定するための配線処理方法の第3の態様を説明するためのフローチャートである。
【図31】本発明の配線経路を決定するための配線処理装置の第3の態様を説明するための機能ブロック図である。
【図32】バッファ付きクロック・トリーをモデル化して示す図である。
【図33】バッファ付きクロック・トリーの要部構成を示す図である。
【図34】2つのサブ・クロック・トリーからなるクロック・トリーの構成を示す図である。
【図35】自動配線において配線経路を探索する方法を説明するための図である。
【図36】自動配線において配線経路を探索する方法を説明するための図である。
【符号の説明】
1 会話型回路設計装置(配線処理装置)
2 CPU
3 表示部
4 表示制御部
5 外部ファイル書込部
5A 外部ファイル
6 印字部
7 入力部
8 ハードディスク(配線処理プログラム用記録媒体)
9 コンピュータ本体
10 バッファ付きクロック・トリー
11 クロック発生回路(クロックソース)
12 バッファ
13 クロック受信回路(ラッチ)
14,15 ワイヤ
16,17 抵抗
18,20 コンデンサ
19 ディレイ回路
21,22 Π型RC回路(セグメント)
21A,22A 抵抗
21B,22B コンデンサ
30 クロック・トリー
31,34 レシーバ(クロック受信回路)
32,35 フリップフロップ回路
33,36 コンデンサ
37,40 ワイヤ
38,41 抵抗
39,42 コンデンサ
43 セグメント
44 クロックネット
45A ドライバ(クロック発生回路)
45B クロック・トリー
46 セグメント
47,49 コンデンサ
48,50 抵抗
51 出力ピン
52 テーブル
100 バッファ付きクロック・トリー
101 クロック発生回路(クロックソース)
102 バッファ
103 クロック受信回路(ラッチ)
104,105 ワイヤ
106,107 抵抗
108,109,110 コンデンサ
111 ディレイ回路
112,115 レシーバ(クロック受信回路)
113,116 フリップフロップ回路
114,117 コンデンサ
118,121 ワイヤ
119,122 抵抗
120,123 コンデンサ
A1 セグメント分割処理部
A2 等ディレイ分岐セグメント決定処理部
A3 等ディレイ分岐点決定処理部
A4 第1セグメント分割処理部
A5 等ディレイ分岐セグメント決定処理部
A6 等ディレイ分岐点決定処理部
A7 ディレイ時間決定処理部
A8 第2セグメント分割処理部
A9 プロパゲーションディレイ時間決定処理部
A10 配線長調整処理部
A11 セグメント分割処理部
A12 プロパゲーションディレイ時間決定処理部
A13 配線長調整処理部
A14 前方探索処理部
A15 隣接格子点フラグ処理部
A16 後方探索処理部
A17 前方探索処理部
A18 後方探索処理部
A19 最適配線経路決定処理部
A20 回路配置決定処理部
A21 配線混雑度評価処理部
A22 回路配置修正処理部[0001]
(table of contents)
TECHNICAL FIELD OF THE INVENTION
Conventional technology (FIGS. 32 to 36)
Problems to be Solved by the Invention (FIG. 34)
Means for solving the problem
BEST MODE FOR CARRYING OUT THE INVENTION
(A) Description of the configuration of an interactive circuit design apparatus according to an embodiment of the present invention (FIGS. 1 and 2)
(B) Description of the wiring processing method by the interactive circuit design apparatus according to the embodiment of the present invention.
(B1) Description of a first mode of a wiring processing method for reducing clock skew (FIGS. 3 to 8)
(B2) Description of second mode of wiring processing method for reducing clock skew (FIGS. 9 to 14)
(B3) Description of the third mode of the wiring processing method for reducing clock skew (FIGS. 15 and 16)
(B4) Description of the first mode of the wiring processing method for determining the wiring path (FIGS. 17 to 24)
(B5) Description of the second mode of the wiring processing method for determining the wiring path (FIGS. 25 to 28)
(B6) Description of the third mode of the wiring processing method for determining the wiring path (FIGS. 29 to 31)
The invention's effect
[0002]
BACKGROUND OF THE INVENTION
The present invention provides a wiring processing method, a wiring processing apparatus, and a wiring processing program suitable for use in designing a large scale integration (LSI) in a computer aided design (CAD). The present invention relates to a recording medium.
[0003]
For example, in each clock net on the clock distribution circuit in the clock synchronous circuit, the delay time (clock propagation delay time) from the clock generation circuit (driver) to each clock reception circuit (receiver) is made equal. Reducing the clock skew, which is the difference in propagation delay time, is a very important technique for stabilizing the operation of the clock distribution circuit. In other words, if the clock skew is large, each receiver cannot perform a synchronous operation in each clock net, so it is necessary to reduce the clock skew of the clock distribution circuit.
[0004]
Further, in an LSI, in order to increase the processing speed, it is necessary to minimize the wiring length for connecting each circuit on the LSI and improve the wiring performance.
At this time, it is conceivable that the wiring possibility is estimated at the stage before wiring and the arrangement of each circuit is improved and the wiring area is optimized based on the wiring possibility.
In particular, at present, since the wiring objects are becoming huge, calculation and evaluation of wiring possibility at an early stage is required.
[0005]
[Prior art]
Many wiring processing methods for reducing a clock skew, which is a difference in clock propagation delay time (delay time) in a clock synchronous circuit, have been reported so far.
Below, the method by IBM which is a typical method among the wiring processing methods for reducing a clock skew is demonstrated. This method is described in detail in “Ren-Song Tsay,“ Exact zero skew ”, Proc. IEEE Int. Conference on CAD, pp 336-339, 1991”.
[0006]
Here, in describing the wiring processing method for reducing the clock skew, first, the configuration of the clock tree in the clock net on the clock distribution circuit in the clock synchronous circuit is shown in FIG.
As shown in FIG. 34, the clock tree 130 includes a sub clock tree including a receiver (clock receiving circuit) 112 and a wire 118, and a sub clock tree including a receiver (clock receiving circuit) 115 and a wire 121. Are connected via an equal delay branch point (tapping point) x.
[0007]
That is, in the clock tree 130, a clock from a driver (clock generation circuit) not shown in FIG. 34 is supplied to the receivers 112 and 115 via the equal delay branch point x.
Here, the receiver 112 has a flip-flop circuit (time constant t1) 113 and capacitor (capacitance C)1) 114, and the receiver 115 includes a flip-flop circuit (time constant t2) 116 and capacitor (capacitance C)2) 117.
[0008]
The wire 118 has one resistance (resistance value r1119 and two capacitors (capacitance c)1/ 2) It is configured by a vertical RC circuit composed of 120.
Further, the wire 121 has a single resistance (resistance value r as in the case of the wire 118.2) 122 and two capacitors (capacitance c)2/ 2) It is constituted by a vertical RC circuit consisting of 123.
[0009]
Here, the reason why the wiring connecting the receivers 112 and 115 is represented by one saddle type RC circuit in FIG. 34 will be described.
First, consider one sub-clock tree.
FIG. 32 shows a model of a buffered clock tree. As shown in FIG. 32, the buffered clock tree 100 includes a clock generation circuit (clock source) 101 as a driver, A clock receiving circuit (latch) 103 as a receiver is connected via a buffer 102.
[0010]
Here, the clock source 101 and the buffer 102 are connected by a wire 104, and the buffer 102 and the latch 103 are connected by a wire 105.
In detail, the buffered clock tree 100 has a configuration as shown in FIG.
[0011]
The clock source 101 is a resistor (resistance value rs) 106, and the buffer 102 is a delay circuit (internal delay time d).b) 111, resistance (resistance value rb) 107 and a capacitor (capacitance c)b) 109 and the latch 103 is a capacitor (capacitance c)1) 110.
Here, the delay time from the clock source 101 to the latch 103 is the internal delay time d by the delay circuit 111 of the buffer 102.bIn addition, a delay time due to the wiring resistance of the wires 104 and 105 can be considered.
[0012]
Of these, the wiring resistance cannot be ignored due to the reduction in transistor size and wiring cross-sectional area due to recent advances in semiconductor microfabrication technology.
Therefore, for the prediction accuracy of the delay time, it is necessary to handle the wires 104 and 105 as a distributed constant circuit. The wires 104 and 105 are shown in FIG. As shown, one resistance (resistance value rs) 106 and two capacitors (capacitance c)1/ 2) The idea of evaluating with a vertical RC circuit consisting of 108 is common.
[0013]
Incidentally, the equal delay branch point x is a point to which a clock from a driver (clock generation circuit) not shown in FIG. 34 is input as described above.
In the clock tree 130 shown in FIG. 34, the clock skew in the two sub clock trees of the clock tree 130 changes depending on the position of the equal delay branch point x, so the clock skew in the clock tree 130 is reduced. In order to achieve this, it is necessary to accurately set the position of the equal delay branch point x.
[0014]
Here, a method for determining the equal delay branch point x in the wiring between two sub-clock trees (zero-skew-merge) will be described. It is known that this equal delay branch point x satisfies the following equation. Yes.
r1(C1/ 2 + C1) + T1= R2(C2/ 2 + C2) + T2
At this time,
L: Line length between two sub clock trees
α: Resistance per unit length of track
β: Capacity per unit length of line
Then, the equal delay branch point x is
x = [(t2-T1) + ΑL (C2+ ΒL / 2)] / [αL (βL + C1+ C2)]
Can be determined.
[0015]
By the way, each circuit on the LSI is connected by an optimum wiring path searched in the automatic wiring.
A number of methods for searching for a wiring route in automatic wiring have been reported so far. Hereinafter, a method by Mikami / Tanabe (Mikami / Tanabe method), which is a kind of line segment search method, will be described.
[0016]
Here, the line segment search method is a method of searching for a wiring path by generating vertical or horizontal probes one after another, and has an advantage that high-speed processing can be performed with a small storage capacity.
In the Mikami / Tanabe method, as shown in FIG. 35, first, a level 0 temporary line segment is generated in the horizontal direction from the search start point S and the search end point T, and these temporary line segments do not overlap. Then generates a level 1 tentative line that intersects the level 0 tentative line perpendicularly.
[0017]
Then, when these steps are repeated and the temporary line segments from both sides intersect, a reverse search is performed on the intersected temporary line segments to find a wiring route as shown in FIG. 36, for example.
In this Mikami / Tanabe method, if there is a wiring route, the wiring route can be found without fail, but as the level increases, the number of temporary lines increases at an accelerated rate. A temporary segment equal to the number will be examined. For this reason, the number of levels of the temporary line segment is normally limited to 2 or 3, for example.
[0018]
[Problems to be solved by the invention]
However, in the clock tree 130 as shown in FIG. 34, the wires 118 and 121 are evaluated by a single saddle type RC circuit (saddle type RC model) as described above.
This is because, when determining the equal delay branch point x, it is assumed that the resistance and capacitance per unit grid in the wiring on both sides of the equal delay branch point x are equal regardless of the location.
[0019]
However, in reality, the resistance and capacity per unit grid cannot be equal regardless of the location, and therefore, the series 118 type RC circuit (series type RC model) is obtained by dividing the wires 118 and 121 into a plurality of segments. There is a problem that it is necessary to determine the equal delay branch point x by evaluating the above.
Further, in the clock tree 130 as shown in FIG. 34, when the equal delay branch point x is determined, in order to make it more realistic, it increases when a load is applied to a clock generation circuit (not shown). There is also a problem that it is necessary to set the delay time from the clock generation circuit to each clock reception circuit to a target value in consideration of gate delay (external-source gate delay).
[0020]
Furthermore, in the Mikami / Tanabe method, which is one of the methods for searching the wiring route in the automatic wiring as described above, the processing of each temporary line segment (search line segment) at the same level does not affect each other. Therefore, if the processing of each search line segment can be executed in parallel, the search processing can be speeded up.
In addition, in this Mikami / Tanabe method, the point once searched is not searched again, so if a non-optimal wiring route is searched before the optimal wiring route is searched, it is not optimal. There is a problem that a wiring route is selected.
[0021]
Therefore, there is a need for a method for searching for a plurality of wiring paths and selecting an optimal wiring path from among them.
Furthermore, as described above, in the LSI, if the wiring possibility can be estimated at the stage before wiring, it is conceivable to improve the arrangement of each circuit and optimize the wiring area based on the wiring possibility.
[0022]
However, since it is difficult to know the wiring possibility of the wiring target at the end of the arrangement of each circuit, there is a problem that the wiring possibility cannot be known until wiring is performed.
The present invention has been devised in view of such problems, and is a wiring processing method suitable for use in the design of an LSI in CAD. Specifically, the present invention accurately determines an equal delay branch point. In addition, the clock skew of the clock distribution circuit is reduced by considering the external clock delay time, and the processing of each search line segment in the search of the wiring route can be executed in parallel to speed up the processing, and the optimal wiring route To improve the layout of each circuit and optimize the wiring area by minimizing the wiring length connecting each circuit on the LSI and improving the wiring performance, and estimating the wiring possibility before wiring. An object of the present invention is to provide a wiring processing method and a wiring processing apparatus which can be made into a computer, and to further provide a computer with a procedure for performing such wiring processing. And to provide a wiring processing program storage medium storing a wiring processing program for causing a row.
[0023]
[Means for Solving the Problems]
  For this reason, the wiring processing method of the present invention sets three or more branch points by setting two or more branch points for the wiring connecting two receivers in the clock net on the clock distribution circuit in the clock synchronous circuit. A segment dividing step for dividing into segments, a first delay time from one branch point located at one end of the segment to one of the two receivers for the segment obtained in the segment dividing step; The second delay time from one branch point to the other of the two receivers is compared, and another branch point located at the other end of the segment is transferred to one of the two receivers. Third delay time and fourth delay from the other branch point to the other of the two receivers And a segment where the magnitude relationship between the first delay time and the second delay time and the magnitude relationship between the third delay time and the fourth delay time are reversed has an equal delay branch point, etc. An equal delay branch segment determination step for determining as a delay branch segment, and an equal delay branch point determination step for determining an equal delay branch point in the equal delay branch segment determined in the equal delay branch segment determination step.The first to fourth delay times in the equal delay branch segment determination step are as follows:
[Expression 7]
Figure 0004268694
And the equal delay branch point in the equal delay branch point determination step is
[Equation 8]
Figure 0004268694
Required by(Claim 1).
[0024]
Here, the branch point set in the segment division step may be a physical branch point on the wiring (Claim 2), and the branch point set in the segment division step is It may be a point where the impedance per unit length of the wiring changes.
Further, the segment obtained in the segment dividing step can be evaluated by a single saddle type circuit.
[0027]
TheFurthermore, the wiring processing method of the present invention includes a segment dividing step of dividing the wiring on the clock distribution circuit in the clock synchronous circuit into three or more segments by setting two or more branch points; A propagation delay time determination step for obtaining a propagation delay time of the wiring in consideration of a delay time for each segment obtained in the segment division step, and a propagation delay of the wiring determined in the propagation delay time determination step The present invention is characterized by comprising a wiring length adjusting step for comparing the time with the set time and adjusting the wiring length in units of segments based on the comparison result (claim).5).
[0028]
  Here, the branch point set in the segment division step is a point where the impedance per unit length of the wiring changes.R(Claims5). The segment required in the segment division step is evaluated by a single saddle type circuit.Is(Claim)5). Furthermore, the wiring processing method of the present invention sets three or more segments by setting two or more branch points for wiring connecting two receivers in a clock net on a clock distribution circuit in a clock synchronous circuit. And a first delay time from one branch point located at one end of the segment to one of the two receivers with respect to the segment obtained in the first segment dividing step. And a second delay time from the one branch point to the other of the two receivers, and one of the two receivers from the other branch point located at the other end of the segment. A third delay time to the receiver and a fourth delay from the other branch point to the other of the two receivers. The equal delay branch point exists in the segment where the magnitude relation between the first delay time and the second delay time and the magnitude relation between the third delay time and the fourth delay time are reversed. An equal delay branch segment determining step for determining as an equal delay branch segment, an equal delay branch point determining step for determining an equal delay branch point in the equal delay branch segment determined in the equal delay branch segment determining step, and the like Two or more delay time determination steps for obtaining the fifth delay time from the equal delay branch point to each receiver determined in the delay branch point determination step, and wiring from the equal delay branch point to the external clock source take-in portion The second segment that is divided into three or more segments by setting the branch point A propagation delay time determining step for determining a propagation delay time of the wiring in consideration of a delay time for each segment obtained in the second segment dividing step, and the delay time determining step This comparison is made by comparing the time obtained by adding the fifth delay time from the equal delay branch point to each receiver and the propagation delay time of the wiring obtained in the propagation delay time determination step with the set time. And a wiring length adjusting step for adjusting the wiring length on a segment basis based on the result.6).
[0029]
  Here, in the wiring length adjusting step, a comparison result of comparing the set time with the time obtained by adding the fifth delay time, the propagation delay time, and the external clock delay time at the external clock source capturing unit. The wiring length may be adjusted on a segment basis based on7). In addition, the present inventionis connected withIn the wiring processing method, when determining the wiring route for the wiring on the circuit board, the wiring area is divided into a grid in units of the minimum pitch of the wiring in advance, and whether the grid points can be used for the wiring. An arrival status flag indicating whether the search line segment has arrived at the grid point, and an arrival direction flag indicating the direction in which the search line segment has arrived at the grid point. When the usable flag indicates the usable state and the arrival status flag indicates that the search line segment has not arrived for an adjacent lattice point adjacent to the lattice point where the flag indicates the arrival of the search line segment In addition, the arrival status flag of the adjacent grid point is set to indicate the arrival of the search line segment, and the adjacent grid point flag processing procedure for displaying the search direction in the arrival direction flag of the adjacent grid point is executed in parallel. And then Forward search processing step for repeatedly executing the adjacent grid point flag processing procedure for each search line segment until there is no grid point that sets the arrival status flag to indicate the arrival of the search line segment; It is characterized by comprising a backward search processing step for searching for a wiring route by tracing the wiring route from a desired grid point according to the arrival direction flag after the processing step.The
[0030]
  Furthermore, the present inventionis connected withIn the wiring processing method, when determining the wiring path for wiring on the circuit board, the wiring area is divided into a grid in advance with the minimum pitch of the wiring as a unit, and the direction in which the search line segment arrives at the grid point is determined. With the arrival direction flag shown, for each grid point, a forward search processing step of performing forward search while displaying a plurality of search directions on the arrival direction flag, and after the forward search processing step, a desired A backward search processing step for searching a plurality of wiring routes by tracing back the wiring route from the grid point according to the arrival direction flag, and an optimal wiring route from the plurality of wiring routes obtained in the backward search processing step And an optimal wiring route determination step for determiningThe
[0031]
  In addition, the present inventionis connected withThe wiring processing method includes a circuit arrangement determining step for determining an arrangement for a circuit on a circuit board, and after determining an arrangement for the circuit in the circuit arrangement determining step, a total wiring length of wirings connecting the circuits Where L is L, G is the number of points used for the wiring, and (LG) / L is a wiring congestion degree evaluation step for evaluating the wiring congestion degree for the wiring. ToiThe
[0032]
  Furthermore, the wiring processing device of the present invention sets three or more segments by setting two or more branch points for the wiring connecting two receivers in the clock net on the clock distribution circuit in the clock synchronous circuit. A segment division processing unit that divides the segment, and a segment obtained by the segment division processing unit, a first delay time from one branch point located at one end of the segment to one of the two receivers, The second delay time from the one branch point to the other of the two receivers is compared, and the other branch point located at the other end of the segment to one of the two receivers. And the fourth delay time from the other branch point to the other of the two receivers. In comparison, an equal delay branch is present in a segment where the magnitude relationship between the first delay time and the second delay time and the magnitude relation between the third delay time and the fourth delay time are reversed. An equal delay branch segment determination processing unit for determining as a segment and an equal delay branch point determination processing unit for determining an equal delay branch point in the equal delay branch segment determined by the equal delay branch segment determination processing unit IsThe equal delay branch segment determination processing unit calculates the first to fourth delay times.
[Equation 9]
Figure 0004268694
The equal delay branch point in the equal delay branch point determination processing unit
[Expression 10]
Figure 0004268694
Asking for(Claims)8).
[0033]
  Further, the wiring processing device of the present invention includes a segment division processing unit that divides the wiring on the clock distribution circuit in the clock synchronous circuit into three or more segments by setting two or more branch points; A propagation delay time determination processing unit for obtaining a propagation delay time of the wiring in consideration of a delay time for each segment obtained by the segment division processing unit, and a wiring delay determined by the propagation delay time determination processing unit. Comparing the propagation delay time with the set time, and based on the comparison result, it is configured to include a wiring length adjustment processing unit that adjusts the wiring length for each segment.The branch point set in the segment division processing unit is a point where the impedance per unit length of the wiring changes, and the segment obtained in the segment division processing unit is evaluated by a single saddle type circuit(Claims)9).
[0034]
  Furthermore, the wiring processing device of the present invention sets three or more segments by setting two or more branch points for the wiring connecting two receivers in the clock net on the clock distribution circuit in the clock synchronous circuit. A first segment division processing unit that divides the first segment division processing unit, and a segment obtained by the first segment division processing unit from a branch point located at one end of the segment to a first one of the two receivers The delay time is compared with the second delay time from the one branch point to the other of the two receivers, and from the other branch point located at the other end of the segment, Third delay time to one receiver and fourth delay from the other branch point to the other of the two receivers The equal delay branch point exists in the segment in which the magnitude relationship between the first delay time and the second delay time and the magnitude relationship between the third delay time and the fourth delay time are reversed. An equal delay branch segment determination processing unit for determining as an equal delay branch segment; an equal delay branch point determination processing unit for determining an equal delay branch point in the equal delay branch segment determined by the equal delay branch segment determination processing unit; About the delay time determination processing unit for obtaining the fifth delay time from the equal delay branch point to each receiver obtained by the equal delay branch point determination processing unit, and the wiring from the equal delay branch point to the external clock source capturing unit A second segment division processing unit configured to divide into three or more segments by setting two or more branch points; A propagation delay time determination processing unit for obtaining a propagation delay time of the wiring in consideration of the delay time for each segment obtained by the second segment division processing unit, and the equal delay obtained by the delay time determination processing unit The comparison result is obtained by comparing the time obtained by adding the fifth delay time from the branch point to each receiver and the propagation delay time of the wiring obtained by the propagation delay time determination processing unit with the set time. And a wiring length adjustment processing unit that adjusts the wiring length in segments.10).
[0035]
  In addition, the present inventionis connected withIn the wiring processing apparatus, an arrival status flag indicating that a search line segment has arrived at a grid point obtained by dividing the wiring area into a grid pattern with the minimum wiring pitch on the circuit board as a unit indicates the arrival of the search line segment. For an adjacent grid point adjacent to the current grid point, an available flag indicating whether or not the grid point can be used for the wiring indicates a usable state, and the arrival status flag indicates that the search line segment has not arrived. , The arrival status flag of the adjacent grid point is set to a state indicating arrival of the search line segment, and at the adjacent grid point, the arrival direction indicating the direction in which the search line segment has arrived at the adjacent grid point The adjacent grid point flag processing procedure for displaying the search direction on the flag is executed in parallel, and the adjacent grid point flag processing procedure is set to indicate the arrival of the search line segment for each search line segment. Like A forward search processing unit that performs forward search processing that is repeatedly executed until there are no more points, and after the forward search processing in the forward search processing unit, traces the wiring route from a desired grid point according to the arrival direction flag. And a backward search processing unit for performing backward search processing for searching for a wiring route.The
[0036]
  Furthermore, the present inventionis connected withThe wiring processing device uses an arrival direction flag indicating the direction in which the search line segment has arrived at each lattice point for each lattice point obtained by dividing the wiring region into a lattice pattern with the minimum wiring pitch on the circuit board as a unit. A forward search processing unit that performs forward search while displaying a plurality of search directions, and after the forward search in the forward search processing unit, traces the wiring route from a desired grid point according to the arrival direction flag. Thus, a backward search processing unit for searching for a plurality of wiring routes and an optimum wiring route determination processing unit for determining an optimal wiring route from the plurality of wiring routes obtained by the backward search processing unit are configured. It is characterized byThe
[0037]
  In addition, the present inventionis connected withThe wiring processing device includes a circuit arrangement determination processing unit that determines an arrangement for a circuit on a circuit board, and a total of wirings that connect the circuit after the circuit arrangement determination processing unit determines an arrangement for the circuit. The wiring length is L, the number of points used for the wiring is G, and (LG) / L is provided as a wiring congestion degree evaluation processing unit that evaluates the wiring congestion degree for the wiring. It is characterized byThe
[0038]
  Furthermore, the wiring processing program recording medium of the present invention includes three recording media by setting two or more branch points for wiring connecting two receivers in a clock net on a clock distribution circuit in a clock synchronous circuit. A segment division procedure for dividing the segment into the above segments, and a first delay time from one branch point located at one end of the segment to one of the two receivers for the segment obtained by the segment division procedure, Comparing the second delay time from the one branch point to the other of the two receivers and from one branch point located at the other end of the segment to one of the two receivers. And a fourth delay time from the other branch point to the other of the two receivers. The equal delay branch point exists in the segment where the magnitude relation between the first delay time and the second delay time and the magnitude relation between the third delay time and the fourth delay time are reversed. An equal delay branch segment determination procedure for determining as an equal delay branch segment, and an equal delay branch point determination procedure for determining an equal delay branch point in the equal delay branch segment determined in the equal delay branch segment determination procedure. Let it runThe first to fourth delay times in the equal delay branch segment determination procedure are as follows:
## EQU11 ##
Figure 0004268694
And the equal delay branch point in the equal delay branch point determination procedure is
[Expression 12]
Figure 0004268694
Let the computer run as required byA wiring processing program for recording is recorded (claims)11).
[0039]
  The wiring processing program recording medium of the present invention includes a segment dividing procedure for dividing a wiring on a clock distribution circuit in a clock synchronous circuit into three or more segments by setting two or more branch points. A propagation delay time determining procedure for obtaining a propagation delay time of the wiring in consideration of a delay time for each segment obtained in the segment dividing procedure, and a property of the wiring determined in the propagation delay time determining procedure. Comparing the gating delay time with the set time, and causing the computer to execute a wiring length adjustment procedure for adjusting the wiring length for each segment based on the comparison result.The branch point set in the segment division procedure is a point where the impedance per unit length of the wiring changes, and the computer is configured so that the segment obtained in the segment division procedure is evaluated by a single saddle type circuit. Let it runA wiring processing program for recording is recorded (claims)12).
[0040]
  Furthermore, the wiring processing program recording medium of the present invention includes three recording media by setting two or more branch points for wiring connecting two receivers in a clock net on a clock distribution circuit in a clock synchronous circuit. With respect to the first segment dividing procedure to divide into the above segments and the segment obtained by the first segment dividing procedure, the first segment dividing procedure located at one end of the segment to the first receiver of the two receivers. One delay time is compared with the second delay time from the one branch point to the other of the two receivers, and the other branch point located at the other end of the segment is compared with the other two receivers. A third delay time to one of the receivers, and from the other branch point to the other of the two receivers The four delay times are compared, and the segment where the magnitude relationship between the first delay time and the second delay time and the magnitude relationship between the third delay time and the fourth delay time are reversed is an equal delay branch point. An equal delay branch segment determination procedure for determining as an equal delay branch segment, an equal delay branch point determination procedure for determining an equal delay branch point in the equal delay branch segment determined in the equal delay branch segment determination procedure, Two delay time determination procedures for obtaining the fifth delay time from the equal delay branch point to each receiver determined in the equal delay branch point determination procedure, and wiring from the equal delay branch point to the external clock source take-in portion A second segment dividing procedure for dividing the segment into three or more segments by setting the above branch points; Propagation delay time determination procedure for obtaining the propagation delay time of the wiring in consideration of the delay time for each segment obtained in the second segment division procedure, and from the equal delay branch point obtained in the delay time determination procedure The time obtained by adding the fifth delay time to each receiver and the propagation delay time of the wiring obtained in the procedure for determining the propagation delay time is compared with the set time, and based on this comparison result, A wiring processing program for causing a computer to execute a wiring length adjustment procedure for adjusting a wiring length in segment units is recorded (claim).13).
[0041]
  In addition, the present inventionis connected withThe wiring processing program recording medium has an arrival status flag indicating that a search line has arrived at a grid point obtained by dividing the wiring area into a grid pattern with the minimum pitch of wiring on the circuit board as a unit. For an adjacent grid point adjacent to a grid point indicating arrival, an available flag indicating whether or not the grid point is usable for the wiring indicates a usable state, and the arrival status flag is a search line. If the arrival status flag of the adjacent grid point is set to the state indicating the arrival of the search line segment, the direction of arrival of the search line segment at the adjacent grid point is set at the adjacent grid point. The adjacent grid point flag processing procedure for displaying the search direction on the arrival direction flag shown in parallel is executed in parallel, and the adjacent grid point flag processing procedure is further executed for each search line segment, and the arrival status flag is set for the search line segment arrival. Indication By repeating the forward search processing procedure that is repeatedly executed until there are no more grid points, and after the forward search processing procedure, the wiring route is traced back according to the arrival direction flag from the desired lattice point. A wiring processing program for causing a computer to execute a backward search processing procedure for searching for a computer is recorded.The
[0042]
  Furthermore, the present inventionis connected withThe recording medium for the wiring processing program indicates the arrival direction indicating the direction in which the search line segment has arrived at each lattice point for each lattice point obtained by dividing the wiring region into a lattice pattern with the minimum wiring pitch on the circuit board as a unit. A forward search processing procedure for performing a forward search while displaying a plurality of search directions on the direction flag, and after the forward search processing procedure, tracing the wiring route from a desired grid point according to the arrival direction flag For causing the computer to execute a backward search processing procedure for searching for a plurality of wiring routes and an optimal wiring route determination procedure for determining an optimal wiring route from the plurality of wiring routes obtained in the backward search processing procedure. Characterized by recording the wiring processing programThe
[0043]
  In addition, the present inventionis connected withIn the wiring processing program recording medium, the total wiring length of the wiring on the circuit board is L, the number of points used for the wiring is G, and (LG) / L is the wiring congestion degree for the wiring. It is characterized by recording a wiring processing program for causing a computer to execute a wiring congestion degree evaluation procedure to be evaluated.The
[0044]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below with reference to the drawings.
(A) Description of the configuration of an interactive circuit design apparatus according to an embodiment of the present invention
FIG. 1 is a block diagram showing a configuration of an interactive circuit design apparatus as a wiring processing apparatus according to an embodiment of the present invention.
[0045]
In the interactive circuit design apparatus 1 shown in FIG. 1, 3 is a display unit for displaying various circuit design processes, wiring paths connecting the circuits, and the like, and 4 is a display control unit for controlling the display state on the display unit 3. , 7 is an input unit such as a keyboard and a mouse for referring to display data on the display unit 3 and for a designer to input response information for the display data.
Reference numeral 5 denotes an external file writing unit. In response to an instruction from the input unit 7, the external file writing unit 5 writes the wiring path diagram displayed on the display unit 3 by the display control unit 4 into the external file 5A. Is.
[0046]
Reference numeral 6 denotes a printing unit. The printing unit 6 prints out a wiring route diagram displayed on the display unit 3 by the display control unit 4 on a predetermined recording sheet in response to an instruction from the input unit 7. It is.
Further, reference numeral 8 denotes a hard disk, which records all information (logic circuit information, layout information, etc.) used by the interactive circuit design apparatus 1 when designing various circuits, and will be described later (b). In this embodiment, a wiring processing program (wiring processing software) for causing the interactive circuit design apparatus 1 to execute procedures for realizing various wiring processing methods as described in detail in FIG. Functions as a recording medium for wiring processing programs.
[0047]
Reference numeral 2 denotes a CPU for comprehensively managing each part constituting the interactive circuit design apparatus 1.
The function of the display control unit 4 is specifically realized by the CPU 2 executing a program (software) stored in the hard disk 8, but the function is clearly shown in FIG. Therefore, the display control unit 4 is shown as a block.
[0048]
Accordingly, the conversational circuit design apparatus 1 according to the present embodiment is a general computer system (computer; diagram) having a CPU 2, a display unit 3, an external file writing unit 5, a printing unit 6, an input unit 7, a hard disk 8, and the like. 2). In FIG. 2, 9 is a computer body.
(B) Description of the wiring processing method by the interactive circuit design apparatus according to the embodiment of the present invention.
(B1) Description of the first aspect of the wiring processing method for reducing clock skew
As a wiring processing method in the interactive circuit design apparatus 1 according to an embodiment of the present invention, a wiring processing method for reducing clock skew, which is a difference in clock propagation delay time (delay time) in a clock synchronous circuit, is described. The first aspect will be described.
[0049]
Here, in describing this embodiment, first, the configuration of the clock tree of the clock net on the clock distribution circuit in the clock synchronous circuit is shown in FIGS.
As shown in FIG. 6, the clock tree 30 includes a sub clock tree including a receiver (clock receiving circuit) 31 and a wire 37, and a sub clock tree including a receiver (clock receiving circuit) 34 and a wire 40. Are connected via an equal delay branch point (tapping point) x.
[0050]
That is, in the clock tree 30, a clock from a driver (clock generation circuit) not shown in FIG. 6 is supplied to the receivers 31 and 34 via the equal delay branch point x.
Here, the receiver 31 is a flip-flop circuit (time constant tA) 32 and capacitor (capacitance C)A) 33 and the receiver 34 includes a flip-flop circuit (time constant tB) 35 and capacitor (capacitance C)B) 36.
[0051]
Further, the wire 37 has one resistance (resistance value r) for the reason described later.1) 38 and two capacitors (capacitance c)1/ 2) A plurality of vertical RC circuits (that is, segments 43) composed of 39 are provided.
Further, similarly to the wire 37, the wire 40 has one resistance (resistance value r) for the reason described later.2) 41 and two capacitors (capacitance c)2/ 2) A plurality of saddle type RC circuits (that is, segments 43) composed of 42 are provided.
[0052]
In FIG. 6, only one vertical RC circuit (segment 43) is shown in each of the wires 37 and 40, and the other segments 43 are not shown.
In FIG. 5, the wires 37 and 40 are not shown, but a plurality of segments in the wiring between the receivers 31 and 34 are indicated by reference numeral 43 (shaded portions in FIG. 5).
[0053]
Incidentally, the equal delay branch point x shown in FIG. 6 is a point at which a clock from a driver (clock generation circuit) not shown in FIG. 6 is input as described above.
In the clock tree 30 shown in FIG. 6, the clock skew in the two sub clock trees of the clock tree 30 changes depending on the position of the equal delay branch point x, so that the clock skew in the clock tree 30 is reduced. In order to achieve this, it is necessary to accurately set the position of the equal delay branch point x.
[0054]
Here, a method of determining the equal delay branch point x (zero-skew-merge) in the wiring between two sub clock trees will be described.
As shown in FIG. 7, the wiring processing method for determining the equal delay branch point x in this embodiment includes a segment division step (step S1), an equal delay branch segment determination step (step S2), and an equal delay branch point determination step. (Step S3) is provided.
[0055]
As shown in FIG. 5, for example, as shown in FIG. 5, the segment division step (step S1) includes at least two or more division points (branch points) P for the wiring connecting the receivers 31, 34.1, ..., Pn + 1Is divided into at least three segments 43 by setting.
Here, the reason why the wiring (wires 37 and 40 shown in FIG. 6) connecting the receivers 31 and 34 is divided into a plurality of segments 43 will be described.
[0056]
First, consider one sub-clock tree.
FIG. 3 shows a model of a buffered clock tree. As shown in FIG. 3, the buffered clock tree 10 includes a clock generation circuit (clock source) 11 as a driver, A clock receiving circuit (latch) 13 as a receiver is connected via a buffer 12.
[0057]
Here, the clock source 11 and the buffer 12 are connected by a wire 14, and the buffer 12 and the latch 13 are connected by a wire 15.
In detail, the buffered clock tree 10 has a configuration as shown in FIG.
[0058]
The clock source 11 is a resistor (resistance value rs) 16 and the buffer 12 is a delay circuit (internal delay time d).b) 19, resistance (resistance value rb) 17 and capacitor (capacitance c)b) 18 and the latch 13 is a capacitor (capacitance c).1) 20 is provided.
Here, as described above with reference to FIG. 33, the delay time from the clock source 11 to the latch 13 is the internal delay time d by the delay circuit 19 of the buffer 12.bIn addition, a delay time due to the wiring resistance of the wires 14 and 15 can be considered.
[0059]
Of these, the wiring resistance cannot be ignored due to the decrease in transistor size and wiring cross-sectional area due to recent advances in semiconductor microfabrication technology. It is necessary to handle it as a distributed constant circuit.
In the buffered clock tree 100 as shown in FIG. 33 described above, the wires 104 and 105 are each connected to one saddle type RC circuit (single saddle type RC model) as a lumped constant circuit schematically representing this distributed constant circuit. However, in this embodiment, in order to take into account that the resistance and capacitance per unit grid in the wiring (wires 14 and 15) are not equal regardless of the location, the wires 14 and 15 are divided into a plurality of segments 43. The evaluation is made by a plurality of vertical RC circuits.
[0060]
As shown in FIG. 4, the wire 14 has one resistance (resistance value r1... rk) 21A and two capacitors [capacitance (c1/2)...(ck/ 2)] is configured to include a plurality of vertical RC circuits (ie, segments) 21 composed of 21B, and the wire 15 has one resistance (resistance value r) as shown in FIG.m... rn) 22A and two capacitors [capacitance (cm/2)...(cn/ 2)] A plurality of vertical RC circuits (that is, segments) 22 composed of 22B are provided.
[0061]
Here, in this segment division step (step S1), the wiring connecting the receivers 31 and 34 shown in FIG.1, ..., Pn + 1Is divided into segments 43.
(1) A physical branch point on the wiring connecting the receivers 31 and 34.
Here, the physical branch point is a point at which the wiring layer changes. For example, in FIG.Four, P7This is the point.
[0062]
(2) The point that the impedance per unit length of the wiring connecting the receivers 31 and 34 changes.
Here, the impedance per unit length of the wiring changes when the wiring layer changes, but may change even if the wiring layer does not change (for example, when a power supply is arranged in the lower layer of the wiring) It is effective to use the point where the impedance per unit length of the wiring changes as a dividing point. The impedance is resistance or capacitance.
[0063]
(3) A point where the length of the segment 43 exceeds a predetermined length s (arbitrary constant).
Here, the segment length s is a length determined empirically.
The dividing point P corresponding to any one of (1) to (3) described above1, ..., Pn + 1As described above, each segment 43 divided in is evaluated with one saddle type RC model.
[0064]
The equal delay branch segment determining step (step S2) is a step of determining the segment 43 where the equal delay branch point x exists as the equal delay branch segment from the segment 43 obtained in the segment dividing step (step S1). is there.
Specifically, in this equal delay branch segment determination step (step S2), the one division point P located at one end of the segment 43 is determined.kThe delay time from one of the two receivers 31 and 34 (the receiver 31 connected to the gate A in the next stage in FIG. 5) to the first delay time [Delay (Pk→ A)] and one division point PkThe delay time from the receiver to the other of the two receivers 31 and 34 (the receiver 34 connected to the gate B in the next stage in FIG. 5) is the second delay time [Delay (Pk→ B)].
[0065]
These first delay times [Delay (Pk→ A)] and the second delay time [Delay (Pk→ B)] is compared.
Further, another division point P located at the other end of the segment 43k + 1The delay time from one of the two receivers 31, 34 to the third delay time [Delay (Pk + 1→ A)] and other division points Pk + 1To the other of the two receivers 31 and 34 is a fourth delay time [Delay (Pk + 1→ B)].
[0066]
These third delay times [Delay (Pk + 1→ A)] and the fourth delay time [Delay (Pk + 1→ B)] is compared.
Further, the first delay time [Delay (Pk→ A)] and the second delay time [Delay (Pk→ B)] and the third delay time [Delay (Pk + 1→ A)] and the fourth delay time [Delay (Pk + 1The segment 43 in which the magnitude relationship with (→ B)] is reversed is determined as the equal delay branch segment where the equal delay branch point x exists.
[0067]
That is, the equal delay branch segment determination step (step S2) is performed at the dividing point P.1~ Pn + 1From the bisection method,
Delay (Pk→ A) ≤ Delay (Pk→ B)
Delay (Pk + 1→ A) ≥ Delay (Pk + 1→ B)
A division point P that satisfies the conditionk, Pk + 1The equal delay branch segment is divided into the division points Pk, Pk + 1Segment (segment PkPk + 1)
[0068]
Here, the first delay time [Delay (Pk→ A)], second delay time [Delay (Pk→ B)], third delay time [Delay (Pk + 1→ A)], 4th delay time [Delay (Pk + 1→ B)] is the resistance value of the resistor in the equal delay branch segment.k, The capacitance of the capacitor in the equal delay branch segment ckThen, it can obtain | require by following Formula.
[0069]
[Formula 13]
Figure 0004268694
Further, the equal delay branch point determination step (step S3) is a step for obtaining the equal delay branch point x in the equal delay branch segment obtained in the equal delay branch segment determination step (step S2). In this equal delay branch point determination step (step S3), as shown in FIG.kTo Gate A as sub-clock tree AAAnd CAIs calculated and the dividing point Pk + 1To Gate B as sub clock tree BBAnd CBIs calculated.
[0070]
here,
CA: Division point PkTotal capacity from to gate A
CB: Division point Pk + 1Total capacity from to B
tA: Division point PkTo gate A wiring delay
tB: Division point Pk + 1To Gate B wiring delay
It is.
[0071]
And the dividing point PkTo dividing point Pk + 1Since the capacity and resistance per unit length are the same interval until then, the equal delay branch point x can be determined by the following equation, as in the conventional IBM method.
[0072]
[Expression 14]
Figure 0004268694
Here, in the wiring processing method including the above-described steps (steps S1 to S3), the CPU 2 of the interactive circuit design apparatus 1 (see FIG. 1) performs the segment division processing unit A1, the equal delay as shown in FIG. This is executed by having functions corresponding to the branch segment determination processing unit A2 and the equal delay branch point determination processing unit A3.
[0073]
The segment division processing unit A1 has at least two or more division points P for the wiring connecting the two receivers 31 and 34 in the clock net on the clock distribution circuit in the clock synchronous circuit.1, ..., Pn + 1Is set, the process of dividing into at least three or more segments 43 is performed.
Further, the equal delay branch segment determination processing unit A2 performs processing for determining the segment 43 where the equal delay branch point x exists as the equal delay branch segment for the segment 43 obtained by the segment division processing unit A1. .
[0074]
Specifically, the equal delay branch segment determination processing unit A2 is configured to divide the segment P at one end of the segment 43.kThe first delay time [Delay (P) from the receiver to one of the two receivers 31 and 34 (the receiver 31 connected to the gate A in the next stage in FIG. 5).k→ A)] and one division point PkTo the other of the two receivers 31 and 34 (the receiver 34 connected to the gate B in the next stage in FIG. 5) [Delay (Pk→ B)] and another division point P located at the other end of the segmentk + 1The third delay time [Delay (Pk + 1→ A)] and other division points Pk + 1To the other of the two receivers 31 and 34, the fourth delay time [Delay (Pk + 1→ B)], and the first delay time [Delay (Pk→ A)] and the second delay time [Delay (Pk→ B)] and the third delay time [Delay (Pk + 1→ A)] and the fourth delay time [Delay (Pk + 1→ B)] is reversed to determine the segment 43 as an equal delay branch segment having an equal delay branch point.
[0075]
Further, the equal delay branch point determination processing unit A3 performs processing for obtaining the equal delay branch point x in the equal delay branch segment obtained by the equal delay branch segment determination processing unit A2.
Actually, the function corresponding to each of the processing units A1 to A3 stores in the hard disk 8 a wiring processing program for causing the CPU 2 of the interactive circuit design device 1 to execute each procedure as described later. This can be realized.
[0076]
Here, the wiring processing program in this embodiment is software for causing the interactive circuit design apparatus 1 to execute the segment division procedure, the equal delay branch segment determination procedure, and the equal delay branch point determination procedure.
In the segment division procedure, at least two or more division points P for the wiring connecting the two receivers 31 and 34 in the clock net on the clock distribution circuit in the clock synchronous circuit are used.1, ..., Pn + 1Is a procedure for dividing the segment 43 into at least three segments 43.
[0077]
The equal-delay branch segment determination procedure is a procedure for determining the segment 43 having the equal-delay branch point x as the equal-delay branch segment for the segment 43 obtained by the segment division procedure.
Specifically, this equal delay branch segment determination procedure is performed by dividing the segment 43 at one end P located at one end of the segment 43.kThe first delay time [Delay (P) from the receiver to one of the two receivers 31 and 34 (the receiver 31 connected to the gate A in the next stage in FIG. 5).k→ A)] and one division point PkTo the other of the two receivers 31 and 34 (the receiver 34 connected to the gate B in the next stage in FIG. 5) [Delay (Pk→ B)] and another division point P located at the other end of the segmentk + 1The third delay time [Delay (Pk + 1→ A)] and other division points Pk + 1To the other of the two receivers 31 and 34, the fourth delay time [Delay (Pk + 1→ B)], and the first delay time [Delay (Pk→ A)] and the second delay time [Delay (Pk→ B)] and the third delay time [Delay (Pk + 1→ A)] and the fourth delay time [Delay (Pk + 1This is a procedure for determining the segment 43 in which the magnitude relationship with (B)] is inverted as an equal delay branch segment having an equal delay branch point.
[0078]
Further, the equal delay branch point determination procedure is a procedure for obtaining the equal delay branch point x in the equal delay branch segment obtained in the equal delay branch segment determination procedure.
With the above configuration, in the interactive circuit design device 1 according to the embodiment of the present invention, the equal delay branch point x in the wiring between the two sub-clock trees is determined by operating as follows. The
[0079]
That is, in the interactive circuit design apparatus 1, the segment connecting step (step S1) has at least two or more dividing points P between the wirings connecting the receivers 31 and 34.1, ..., Pn + 1Is divided into at least three or more segments 43.
Subsequently, as described above, the equal delay branch segment determining step (step S2) determines the first to fourth delay times [delay (Pk→ A), [Delay (Pk→ B), Delay (Pk + 1→ A), Delay (Pk + 1→ B)] is obtained, and the first delay time [Delay (Pk→ A)] and the second delay time [Delay (Pk→ B)] and the third delay time [Delay (Pk + 1→ A)] and the fourth delay time [Delay (Pk + 1→ B)] is compared.
[0080]
The first delay time [Delay (Pk→ A)] and the second delay time [Delay (Pk→ B)] and the third delay time [Delay (Pk + 1→ A)] and the fourth delay time [Delay (Pk + 1The segment 43 in which the magnitude relationship with (→ B)] is reversed is determined as the equal delay branch segment where the equal delay branch point x exists.
[0081]
Further, the equal delay branch point x is determined in the equal delay branch segment obtained in the equal delay branch segment determination step (step S2) by the equal delay branch point determination step (step S3).
Thus, according to the first aspect of the wiring processing method for reducing clock skew in the interactive circuit design apparatus 1 according to the embodiment of the present invention, each clock on the clock distribution circuit in the clock synchronous circuit is provided. In the net, by dividing the wiring connecting the receivers 31 and 34 into a plurality of segments 43 and evaluating with a plurality of single saddle type RC circuits, the resistance and capacitance per unit grid in the wiring are not equal regardless of location. Therefore, the equal delay branch point x in the wiring connecting the receivers 31 and 34 can be accurately determined.
[0082]
Also, the dividing point P1, ..., Pn + 1(1) a physical branch point on the wiring connecting the receivers 31 and 34, (2) a point where the impedance per unit length of the wiring connecting the receivers 31 and 34 changes, and (3) a segment 43 The division point P according to the state of each clock net is set to any one of the points exceeding the predetermined length s (arbitrary constant).1, ..., Pn + 1And the equal delay branch point x can be determined more accurately.
[0083]
Since the equal delay branch point x can be accurately determined in this way, the delay time from the driver (not shown in FIG. 6) to the receivers 31 and 34 can be made equal, and thereby each clock can be equalized. The clock skew in the net clock tree 30 can be reduced.
(B2) Description of the second mode of the wiring processing method for reducing the clock skew
Furthermore, as a wiring processing method in the interactive circuit design apparatus 1 according to an embodiment of the present invention, a wiring processing method for reducing a clock skew that is a difference in a clock propagation delay time (delay time) in a clock synchronous circuit. The second aspect of will be described.
[0084]
In the second aspect of the wiring processing method for reducing the clock skew, when the equal delay branch point in the wiring connecting the respective receivers is determined, the load is applied to the driver which is the clock generation circuit. In order to take into account the gate delay (external clock delay time; extra-source gate delay), the wiring length between this equal delay branch point and the driver output point (external clock source take-in part) is adjusted to A method for effectively reducing the clock skew in each clock net by setting the delay time to the receiver to a target value will be described.
[0085]
FIG. 9 is a diagram schematically showing a configuration of a clock net 44 including a driver (clock generation circuit) 45A and a clock tree 45B.
Here, the clock net 44 is on the clock distribution circuit in the clock synchronous circuit, and the clock tree 45B is configured to include a plurality of clock trees (see reference numeral 30 in FIGS. 5 and 6).
[0086]
That is, FIG. 9 shows that a clock tree is formed by completing wiring between a plurality of receivers (refer to reference numerals 31 and 34 in FIGS. 5 and 6), and a plurality of clock trees formed in this way are also formed. After completing the wiring of the clock tree 45B to form the clock tree 45B, the equal delay branch point (final equal delay branch point of the wiring between the receivers) Q and the driver output point (external clock source take-in portion) of the clock tree 45B A state where P is connected to P by the shortest wiring is shown.
[0087]
In this embodiment, after the equal delay branch point Q is accurately determined in the clock tree 45B, the delay time from the driver output point P to each receiver in the clock tree 45B becomes a preset time as described above. Therefore, the length of the wiring between the equal delay branch point Q and the driver output point P is adjusted.
[0088]
Here, as shown in FIG. 13, the wiring processing method in this aspect includes a first segment division step (step S4), an equal delay branch segment determination step (step S5), an equal delay branch point determination step (step S6), It comprises a delay time determining step (step S7), a second segment dividing step (step S8), a propagation delay time determining step (step S9), and a wiring length adjusting step (step S10).
[0089]
In the first segment dividing step (step S4), at least two or more wirings connecting the two receivers in the clock tree 45B of the clock net 44 are the same as those shown in FIG. This is a step of dividing into at least three or more segments by setting division points (branch points).
[0090]
Also in this aspect, as in the case described above, in order to consider that the resistance and capacity per unit grid in the wiring are not equal regardless of the location, a plurality of wirings connecting the two receivers in the clock net 44 are provided. Divided into segments and evaluated by a plurality of vertical RC circuits (see reference numeral 43 in FIG. 6).
In FIG. 9, the division points and segments in the clock tree 45B are not shown.
[0091]
In addition, as in the case described above, the dividing points are (1) a physical branch point on the wiring connecting the receivers, (2) a point where the impedance per unit length of the wiring connecting the receivers changes, (3) One of the points where the segment length exceeds a predetermined length s (arbitrary constant).
Further, the equal delay branch segment determining step (step S5) is a step of determining, as the equal delay branch segment, the segment in which the equal delay branch point Q is present from the segments obtained in the first segment dividing step (step S4). is there.
[0092]
Specifically, in the same delay branch segment determination step (step S5), as in the case described above, the first delay from one division point located at one end of the segment to one of the two receivers. Comparing the time and a second delay time from one split point to the other of the two receivers, and one receiver of the two receivers from another split point located at the other end of the segment And the fourth delay time from the other division point to the other of the two receivers, and the magnitude relationship between the first delay time and the second delay time, and The segment where the magnitude relationship between the third delay time and the fourth delay time is reversed is determined as the equal delay branch segment where the equal delay branch point Q exists. That is a step.
[0093]
The above first to fourth delay times can also be obtained in the same manner as described in (b1) [Delay (Pk→ A), Delay (Pk→ B), Delay (Pk + 1→ A), Delay (Pk + 1→ See B)].
The equal delay branch point determination step (step S6) is a step of obtaining the equal delay branch point Q in the equal delay branch segment obtained in the equal delay branch segment determination step (step S5).
[0094]
The equal delay branch point Q can also be obtained in the same manner as described above in (b1).
Further, in the delay time determining step (step S7), a fifth delay time t from the equal delay branch point Q obtained in the equal delay branch point determining step (step S6) to each receiver.RThis is a step for obtaining.
[0095]
That is, the fifth delay time tRIs the delay time from the equal delay branch point Q to each receiver in the clock tree 45B, as shown in FIG.
Here, the fifth delay time tRIs
Figure 0004268694
It can ask for.
[0096]
Further, as shown in FIG. 9, the second segment dividing step (step S8) includes at least two or more dividing points (branch points) P for the wiring from the equal delay branch point Q to the driver output point P.1, ..., Pn + 1Is divided into at least three segments 46 by setting.
Also in this aspect, as in the case described above, in order to consider that the resistance and capacitance per unit grid in the wiring are not equal regardless of the location, the wiring connecting the equal delay branch point Q and the driver output point P Is divided into a plurality of segments 46 and evaluated by a plurality of vertical RC circuits (see FIG. 10).
[0097]
In the second segment division step (step S8), the wiring between the equal delay branch point Q and the driver output point P is specifically divided into the division points P under the following conditions.1, ..., Pn + 1Is divided into segments 46.
(1) The point that the impedance per unit length of the wiring between the equal delay branch point Q and the driver output point P changes.
[0098]
Here, as described above, the impedance per unit length of the wiring changes when the wiring layer changes. However, the impedance per unit length of the wiring may change even if the wiring layer does not change. It is effective to use a changing point as a dividing point. The impedance is resistance or capacitance.
(2) A point where the length of the segment 46 exceeds a predetermined length s (arbitrary constant).
[0099]
Here, the segment length s is a length determined empirically.
The division point P corresponding to either (1) or (2) described above1, ..., Pn + 1As shown in FIG. 10, each segment 46 divided in FIG. 10 has one resistance (resistance value Ra1... Ran) 48 and two capacitors [capacitance (Ca1/2)...(Can/ 2)] is evaluated by a vertical RC circuit (a vertical RC model) consisting of 47.
[0100]
Further, the propagation delay time determining step (step S9) is a wiring propagation delay time (propagation delay) t in consideration of the delay time for each segment 46 obtained in the second segment dividing step (step S8).PQThis is a step for obtaining.
Here, the propagation delay time tPQIs
[0101]
[Expression 15]
Figure 0004268694
It can ask for. The wiring length adjustment step (step S10) compares the delay time from the driver output point P to each receiver [Delay (P → each receiver)] with the set time, and based on the comparison result, This is a step of adjusting the wiring length in units.
[0102]
Here, the delay time from the driver output point P to each receiver [Delay (P → each receiver)] is the fifth delay from the equal delay branch point Q obtained in the delay time determination step (step S7) to each receiver. Time tR, Propagation delay time t of the wiring obtained in the propagation delay time determination step (step S9)PQAnd external clock delay time at driver output point P (extra-source gate delay) tLOADIs the time added.
[0103]
That is, as shown in FIG. 10, the delay time (fifth delay time) from the equal delay branch point Q to each receiver in the clock tree 45B is t.R, The total capacity from the equal delay branch point Q to each receiver is CRThen, the delay time [Delay (P → each receiver)] from the driver output point P to each receiver is obtained by the following equation.
[0104]
Delay (P → each receiver) ≒ tLOAD+ TPQ+ TR
Here, the external clock delay time (extra source gate delay) tLOADThe delay time T in the wiring between the driver (SOURCE) and the receiver (LOAD) will be described with reference to FIG.INTERCONNECT delayIs
Figure 0004268694
It is.
[0105]
In addition,
TAB(0): Delay time from unloaded source gate
(Delay through an unloaded source gate)
TAB(L): Delay time from the same source gate loaded by an interconnect net of length L
(Delay through the same source gate loaded
by an interconnect net of length L)
It is.
[0106]
Then, [T in the above formulaAB(L) -TAB(0)] is the external clock delay time tLOADRepresents.
Here, in the wiring length adjustment step (step S10), the dividing point P shown in FIGS.1TLOADTo obtain the dividing point P1Y1, y2, and y3 for calculating the admittance viewed from the above are calculated.
[0107]
That is, the dividing point P1TLOADIs the dividing point P1Can be obtained by calculating the equations y1, y2, and y3 for calculating the admittance as seen from the above, and performing a predetermined calculation using these three equations (the details of this content are not particularly relevant to this embodiment). .
That is, tLOADIs
tLOAD= F (y1, y2, y3)
It is.
[0108]
In this embodiment, calculation of y1, y2, and y3 for admittance calculation is performed as follows: “PRO'Brien and TLSavarino,“ Modeling the Driving-Point Characteristics of Resistive Interconnect for Accurate Delay Estimation, IEEE Intl. Conference on CAD, pp512 ” -515, 1989 ".
Here, an example of a general wiring model for obtaining y1, y2, and y3 is shown in FIG.
[0109]
In FIG. 11, 49 is a capacitor, 50 is a resistor, 51 is an output pin of a driver or receiver, and P1~ P9Is a dividing point.
Below, the dividing point P1The calculation method of y1, y2, y3 for admittance calculation seen from FIG.
First, the Laplace transform equation isiWhen the Laplace conversion equation is obtained from the receiver side to the driver side as indicated by (s),
Figure 0004268694
It becomes.
[0110]
And this y1When (s) is subjected to a cubic approximation of Laplace expression,
y1(S) = y1 · s + y2 · s2+ Y3 · sThree
Therefore, the coefficients y1, y2, and y3 of this equation are obtained.
In this way, in the wiring length adjustment step (step S10), the delay time [Delay (P → each receiver)] from the driver output point P calculated by the above formula to each receiver and the preset time. γ is compared, and the wiring length between the equal delay branch point Q and the driver output point P is adjusted on a segment basis based on the comparison result.
[0111]
When the delay time [Delay (P → each receiver)] from the driver output point P to each receiver exceeds the preset time γ from the beginning, the driver 45A and the clock tree 45B (FIG. 9). , See FIG. 10), the wiring length between the equal delay branch point Q and the driver output point P is adjusted again.
[0112]
Specifically, the layout change and the wiring length adjustment are performed as follows.
If Delay (P → each receiver)> γ, change placement
Delay (P → each receiver) = end if γ
Delay (P → each receiver) <If γ, adjust wiring length
The wiring length is adjusted by dividing point P.1And dividing point P2It is necessary to do between.
[0113]
Here, the dividing point P1And dividing point P2L is the shortest actual wiring length betweenLOWERThen, the dividing point P1And dividing point P2The resistance α and the capacitance β per unit length of the wiring are as follows.
α = Ra1/ LLOWER
β = Ca1/ LLOWER
And the dividing point P1And dividing point P2In the wiring that is newly drawn by adjusting the wiring length between
Delay (P → each receiver) = γ
Dividing point P to become1And dividing point P2The wiring length L between
LLOWER  <L <LUPPER
It is in the range.
[0114]
Where LUPPERIs the maximum allowable actual wiring length, and LUPPERTo obtain the output pin 51 and the dividing point P of the driver shown in FIG.1Length s [this is the Laplace transform equation yi(S) (not related to s)] are inserted one by one, and new y1, y2, y3 are obtained each time, and tLOADWill be asked.
[0115]
LUPPERCan be obtained by the following recursive calculation.
t0= TPQ+ TR
[0116]
[Expression 16]
Figure 0004268694
          L0= LLOWER
      y10= Y1
      y20= Y2
      y30= Y3
      ti= Ti-1+ Αs (βs / 2 + Ci-1)
      Ci= Ci-1+ Βs
      Li= Li-1+ S
  Here, referring to the literature of P.R.O'Brien and T.L.Savarino,
      y1i= F (y1i-1)
      y2i= G (y1i-1, Y2i-1)
      y3i= H (y1i-1, Y2i-1, Y3i-1)
  This
      tLOAD= F (y1i, Y2i, Y3i)
  here,
      ti+ TLOAD> Γ
And s · i + LLOWERThe value of LUPPERAnd Li-1New value LLOWERAnd In addition, although s is a natural number, about 50 is considered appropriate.
[0117]
Furthermore, s · (i−1) + LLOWERAnd LUPPERBy the bisection method between1And dividing point P2The delay time [Delay (P → each receiver)] from the driver output point P to each receiver is calculated while determining the wiring length L between and the wiring length L between which the delay time becomes the set time γ. Is determined.
That is, the output pin 51 of the driver and the dividing point P1If the calculation is continued until the delay time from the driver output point P (see FIGS. 9 and 10) to each receiver exceeds the set value γ, it is assumed that the segment of length s is sequentially inserted between When the value γ is exceeded, a segment having a length of s · i (i is the number of repetitions) is inserted as a whole.
[0118]
Therefore, the wiring length L at which the delay time becomes the set value γ is
[S · (i−1) + LUPPER] <L <(s · i + LUPPER)
Therefore, the wiring length L that becomes the set value γ can be obtained by the bisection method.
And the dividing point P1And dividing point P2The wiring between and is deleted, and rewiring is performed with the wiring length L.
[0119]
Here, in the wiring processing method including the above steps (steps S4 to S10), the CPU 2 (see FIG. 1) of the conversational circuit design device 1 performs the first segment division processing unit A4 as shown in FIG. , Equal delay branch segment determination processing unit A5, equal delay branch point determination processing unit A6, delay time determination processing unit A7, second segment division processing unit A8, propagation delay time determination processing unit A9 and wiring length adjustment processing unit A10 It is executed by having a corresponding function.
[0120]
The first segment division processing unit A4 has at least three or more branch points by setting at least two or more branch points for the wiring connecting the two receivers in the clock net 44 on the clock distribution circuit in the clock synchronous circuit. The process of dividing into segments is performed.
In addition, the equal delay branch segment determination processing unit A5, for the segment obtained by the first segment division processing unit A4, first from one division point located at one end of the segment to one of the two receivers. The delay time is compared with a second delay time from one division point to the other of the two receivers, and one of the two receivers is compared with another division point located at the other end of the segment. The third delay time to the receiver is compared with the fourth delay time from the other division point to the other of the two receivers, and the magnitude relationship between the first delay time and the second delay time is as follows. The segment in which the magnitude relationship between the third delay time and the fourth delay time is reversed is an equal delay branch segment where an equal delay branch point exists. And it performs a process of determining a.
[0121]
Further, the equal delay branch point determination processing unit A6 performs processing for obtaining the equal delay branch point Q in the equal delay branch segment obtained by the equal delay branch segment determination processing unit A5.
In addition, the delay time determination processing unit A7 receives a fifth delay time t from the equal delay branch point Q obtained by the equal delay branch point determination processing unit A6 to each receiver.RThe process which calculates | requires is performed.
[0122]
Further, the second segment division processing unit A8 has at least two or more division points P for the wiring from the equal delay branch point Q to the driver output point P.1, ..., Pn + 1Is set, the process of dividing into at least three segments 46 is performed.
Also, the propagation delay time determination processing unit A9 is a wiring propagation delay time t in consideration of the delay time for each segment 46 obtained by the second segment division processing unit A8.PQThe process which calculates | requires is performed.
[0123]
Further, the wiring length adjustment processing unit A10 delays each delay time from the driver output point P to each receiver [Delay (P → each receiver)], that is, from the equal delay branch point Q obtained by the delay time determination processing unit A7. 5th delay time t to receiverR, Propagation delay time determination processing unit A9 determines the wiring propagation delay time t.PQAnd external clock delay time t at driver output point PLOADIs compared with the set time γ, and based on the comparison result, a process for adjusting the wiring length in units of segments is performed.
[0124]
In practice, the function corresponding to each of the processing units A4 to A10 stores in the hard disk 8 a wiring processing program for causing the CPU 2 of the interactive circuit design apparatus 1 to execute each procedure described later. This can be realized.
Here, the wiring processing program in this aspect includes a first segment division procedure, an equal delay branch segment determination procedure, an equal delay branch point determination procedure, a delay time determination procedure, a second segment division procedure, a propagation delay time determination procedure, and a wiring. This is software for causing the interactive circuit design apparatus 1 to execute the length adjustment procedure.
[0125]
In the first segment division procedure, at least two or more branch points are set by setting at least two or more branch points for the wiring connecting the two receivers in the clock net 44 on the clock distribution circuit in the clock synchronous circuit. It is a procedure to divide into two.
The equal delay branch segment determination procedure includes a first delay time from one division point located at one end of the segment to one of the two receivers for the segment obtained in the first segment division procedure; The second delay time from one division point to the other of the two receivers is compared, and the second delay time from the other division point located at the other end of the segment to one of the two receivers is compared. 3 delay times are compared with the fourth delay time from the other division point to the other of the two receivers, and the magnitude relationship between the first delay time and the second delay time is compared with the third delay time. The segment in which the magnitude relationship between the delay time and the fourth delay time is reversed is determined as the equal delay branch segment where the equal delay branch point exists. Is that procedure.
[0126]
Further, the equal delay branch point determination procedure is a procedure for obtaining the equal delay branch point Q in the equal delay branch segment determined in the equal delay branch segment determination procedure.
The delay time determination procedure is the fifth delay time t from the equal delay branch point Q determined by the equal delay branch point determination procedure to each receiver.RThis is a procedure for obtaining.
[0127]
Furthermore, the second segment division procedure is performed by using at least two division points P for the wiring from the equal delay branch point Q to the driver output point P.1, ..., Pn + 1Is a procedure for dividing the segment 46 into at least three segments 46.
Further, the propagation delay time determination procedure is a wiring propagation delay time t in consideration of the delay time for each segment 46 obtained in the second segment division procedure.PQThis is a procedure for obtaining.
[0128]
Further, the wiring length adjustment procedure is a delay time from the driver output point P to each receiver [Delay (P → each receiver)], that is, the delay time from the equal delay branch point Q obtained in the delay time determination procedure to the receiver. 5 delay time tR, Propagation delay time t of the wiring obtained in the procedure for determining the propagation delay timePQAnd external clock delay time t at driver output point PLOADAnd the set time γ are compared, and the wiring length is adjusted in segment units based on the comparison result.
[0129]
With the above configuration, in the interactive circuit design apparatus 1 according to the embodiment of the present invention, the equal delay branch point Q is determined by the following operation, and the equal delay branch point Q and the driver output point P are determined. The wiring length between the two is adjusted.
That is, in the interactive circuit design device 1, the first segment dividing step (step S4) sets at least two or more dividing points for the wiring connecting the two receivers in the clock net 44. Divided into at least three or more segments.
[0130]
Subsequently, in the equal delay branch segment determination step (step S5), the segment having the equal delay branch point Q is determined as the equal delay branch segment for the segment obtained in the first segment division step (step S4). In the equal delay branch point determination step (step S6), the equal delay branch point Q is determined in the equal delay branch segment obtained in the equal delay branch segment determination step (step S5).
[0131]
Further, the fifth delay time t from the equal delay branch point Q obtained in the equal delay branch point determination step (step S6) to each receiver by the delay time determination step (step S7).RIs required.
Further, at the second segment dividing step (step S8), as shown in FIG. 9, the wiring from the equal delay branch point Q to the driver output point P has at least two or more division points (branch points) P.1, ..., Pn + 1Is set, it is divided into at least three or more segments 46.
[0132]
Subsequently, in the propagation delay time determination step (step S9), the wiring propagation delay time t in consideration of the delay time for each segment 46 obtained in the second segment division step (step S8).PQIs required.
Further, the delay time [Delay (P → each receiver)] from the driver output point P (see FIGS. 9 and 10) to the set time γ is compared with the wiring length adjustment step (step S10). .
[0133]
For example, when the delay time [Delay (P → each receiver)] from the driver output point P to each receiver exceeds the preset time γ from the beginning [ie, Delay (P → each receiver)> γ] The arrangement of the driver 45A and the clock tree 45B (see FIGS. 9 and 10) is changed.
Further, when the delay time [Delay (P → each receiver)] from the driver output point P to each receiver is less than a preset time γ [that is, Delay (P → each receiver) <γ], Dividing point P1And dividing point P2And a delay time [Delay (P → each receiver)] from the driver output point P to each receiver is calculated each time.
[0134]
The calculation of the delay time [Delay (P → each receiver)] from the driver output point P to each receiver is continued until the delay time exceeds the set value γ, and as a result, the set value γ is obtained by the bisection method. Dividing point P1, P2A wiring length L between them is obtained, and thereby the wiring length between the equal delay branch point Q and the driver output point P is adjusted.
[0135]
As described above, according to the second aspect of the wiring processing method for reducing clock skew in the interactive circuit design apparatus 1 according to the embodiment of the present invention, each clock on the clock distribution circuit in the clock synchronous circuit. In the net 44, the wiring connecting the receivers in the clock tree 45B is divided into a plurality of segments and evaluated by a plurality of single saddle type RC circuits, so that the resistance and capacitance per unit grid in the wiring are independent of the location. Since it is possible to consider that they are not equal, it is possible to accurately determine the equal delay branch point Q in the wiring connecting the receivers.
[0136]
At this time, the dividing points are (1) physical branch points on the wiring connecting the receivers, (2) the point where the impedance per unit length of the wiring connecting the receivers changes, (3) the segment Can be set according to the state of each clock net 44, and the equal delay branching point Q can be set to any one of the points exceeding a predetermined length s (arbitrary constant). Can be determined more accurately.
[0137]
Further, as shown in FIG. 9, the wiring from the equal delay branch point Q to the driver output point P is divided into a plurality of segments 46 and evaluated by a plurality of single saddle type RC circuits. It can be considered that the resistance and the capacitance of each are not equal regardless of the location, and at this time, the dividing point P1, ..., Pn + 1(1) The point where the impedance per unit length of the wiring between the equal delay branch point Q and the driver output point P changes, and (2) the segment 46 has a certain length s (arbitrary length s) The division point P corresponding to the state of each clock net 44 is determined by any point exceeding the constant).1, ..., Pn + 1Can be set.
[0138]
Also, in the clock net 44, the delay time [Delay (P → each receiver)] from the driver output point P to each receiver in the clock tree 45B is compared with the set time, and based on the comparison result, etc. By adjusting the wiring length in units of segments for the wiring from the delay branch point Q to the driver output point P, the driver 45A in the clock net 44 takes into account the external clock delay time that increases when a load is applied to the driver 45A. The delay time to each receiver in the clock tree 45B can be made equal, and thereby the clock skew in the clock tree 45B of the clock net 44 can be further effectively reduced.
(B3) Description of the third aspect of the wiring processing method for reducing clock skew
Further, as a wiring processing method in the interactive circuit design apparatus 1 according to an embodiment of the present invention, a wiring processing method for reducing a clock skew that is a difference in clock propagation delay time (delay time) in a clock synchronous circuit. The third aspect of will be described.
[0139]
In the third aspect of the wiring processing method for reducing clock skew, the equal delay branch point in the wiring connecting each receiver is accurately determined in advance in each clock net on the clock distribution circuit in the clock synchronous circuit. If this is the case, just adjusting the wiring length between this equal delay branch point and the driver output point (external clock source capture section), the external clock delay time that increases due to the load on the driver is taken into account. However, the clock skew in the clock net can be reduced.
[0140]
As shown in FIG. 15, the wiring processing method according to this aspect includes a segment dividing step (step S11), a propagation delay time determining step (step S12), and a wiring length adjusting step (step S13).
Here, the segment dividing step (step S11) is a step of dividing the wiring between the equal delay branch point and the driver output point into at least three or more segments by setting at least two or more dividing points. It is.
[0141]
This segment division step (step S11) is the same step as the second segment division step (step S8) in FIG. 13 described above.
The propagation delay time determining step (step S12) is a step for obtaining a propagation delay time of the wiring in consideration of the delay time for each segment obtained in the segment dividing step (step S11).
[0142]
This propagation delay time determination step (step S12) is the same step as the propagation delay time determination step (step S9) in FIG.
Further, the wiring length adjustment step (step S13) compares the wiring propagation delay time obtained in the propagation delay time determination step (step S12) with the set time, and based on the comparison result, the segment unit. In this step, the wiring length is adjusted.
[0143]
This wiring length adjustment step (step S13) is the same as the wiring length adjustment step (step S10) in FIG.
Here, the wiring processing method including the above-described steps (steps S11 to S13) is performed by the CPU 2 (see FIG. 1) of the interactive circuit design apparatus 1 in which the segment division processing unit A11 and the properties shown in FIG. This is executed by having functions corresponding to the gate delay time determination processing unit A12 and the wiring length adjustment processing unit A13.
[0144]
The segment division processing unit A11 performs a process of dividing the wiring on the clock distribution circuit in the clock synchronous circuit into at least three segments by setting at least two or more branch points.
Further, the propagation delay time determination processing unit A12 performs processing for obtaining a propagation delay time of the wiring in consideration of the delay time for each segment obtained by the segment division processing unit A11.
[0145]
Further, the wiring length adjustment processing unit A13 compares the wiring propagation delay time obtained by the propagation delay time determination processing unit A12 with the set time, and based on the comparison result, sets the wiring length in segments. The adjustment process is performed.
Actually, the function corresponding to each of the processing units A11 to A13 stores in the hard disk 8 a wiring processing program for causing the CPU 2 of the conversational circuit design apparatus 1 to execute each procedure described later. This can be realized.
[0146]
Here, the wiring processing program in this aspect is software for causing the interactive circuit design apparatus 1 to execute the segment division procedure, the propagation delay time determination procedure, and the wiring length adjustment procedure.
The segment dividing procedure is a procedure for dividing the wiring on the clock distribution circuit in the clock synchronous circuit into at least three or more segments by setting at least two or more branch points.
[0147]
The propagation delay time determination procedure is a procedure for obtaining the propagation delay time of the wiring in consideration of the delay time for each segment obtained in the segment division procedure.
Furthermore, the wiring length adjustment procedure compares the wiring propagation delay time obtained in the procedure for determining the propagation delay time with the set time, and adjusts the wiring length on a segment basis based on the comparison result. is there.
[0148]
With the above-described configuration, the interactive circuit design apparatus 1 according to the embodiment of the present invention also has the same steps (steps S8 to S10) shown in FIG. 13 by the steps (steps S11 to S13) shown in FIG. Thus, the wiring length between the equal delay branch point and the driver output point is adjusted.
Even in this case, the delay time from the driver to each receiver in the clock net can be made equal, and the clock clock in the clock net of the clock net is taken into account while taking into account the external clock delay time that increases when the driver is loaded. The queue can be effectively reduced.
[0149]
(B4) Description of the first mode of the wiring processing method for determining the wiring path
Further, as a wiring processing method in the interactive circuit design apparatus 1 according to an embodiment of the present invention, a first aspect of a wiring processing method for determining an optimal wiring path when connecting each circuit on an LSI. explain.
As described above, each circuit on the LSI is connected by the optimum wiring path searched in the automatic wiring.
[0150]
Here, a method for determining a wiring route in this embodiment will be described.
As shown in FIG. 23, the wiring processing method for determining the wiring route in this aspect includes a forward search processing step (step S14) and a backward search processing step (step S16).
First, in this embodiment, when determining the wiring route for the wiring on the circuit board, the usable flag is stored in advance in the hard disk 8 of the interactive circuit calculation apparatus 1 shown in FIGS. , An arrival status flag and an arrival direction flag are prepared.
[0151]
Here, the usable flag is a flag indicating whether or not the wiring area is divided into a grid pattern with the minimum pitch of the wiring as a unit, and whether or not the grid points can be used for the wiring, for example, as shown in FIG. Thus, “1” is set when the grid point can be used for wiring, and “0” is set when the grid point cannot be used for wiring.
The arrival status flag is a flag indicating that a search line segment has arrived at a lattice point. For example, as shown in FIG. When “1” is set and the search line segment has not arrived at the lattice point, “0” indicating non-arrival is set.
[0152]
The usable flag and the arrival status flag are prepared for each bit for each wiring layer.
Furthermore, the arrival direction flag is a flag indicating the direction in which the search line segment has arrived at the lattice point, and several bits are prepared for each wiring layer.
For example, in the one-layer wiring, an available flag and an arrival status flag are prepared for each 1 bit.
[0153]
When the X axis is defined as the horizontal direction and the Y axis is defined as the vertical direction, the arrival direction flag is an XY direction flag (for example, see FIG. 18D) indicating whether the arrival direction is the X axis direction or the Y axis direction. A bit is prepared, and one bit of a positive / negative direction flag (for example, see FIG. 18E) indicating whether the arrival direction is the positive direction or the negative direction is prepared.
For example, as shown in FIG. 18D, the XY direction flag is set to “1” when the arrival direction is the X-axis direction, and “0” when the arrival direction is the Y-axis direction. Is set.
[0154]
For example, as shown in FIG. 18E, the positive / negative direction flag is set to “1” when the arrival direction is the positive direction, and is set to “0” when the arrival direction is the negative direction. Is done.
Here, the above-described usable flag, arrival status flag, and arrival direction flag are used in order to perform an operation for line segment search in a forward search processing step (step S14), which will be described in detail later, in parallel processing. As shown in FIG. 17, it is configured in a table format in which the byte address and the number of bits in the memory or the like represent the coordinates of the lattice points as they are.
[0155]
That is, in this embodiment, each grid point is represented by 1 bit and each flag is shown in FIG. 17 so that the calculation for the line segment search in the forward search processing step (step S14) can be performed in parallel. The format is as shown.
Here, the table 52 shown in FIG. 17 is configured so that the calculation can be performed in parallel processing one word at a time in the Y-axis direction (parallel degree 8 in the example shown in FIG. 17).
[0156]
If the table 52 shown in FIG. 17 is configured in a format in which the X axis and the Y axis are interchanged, and each flag is held by such a table, the calculation is processed in parallel for each word in the X axis direction. It can also be done at.
The wiring processing method in this aspect will be described. The forward search processing step (step S14) is a step of executing the adjacent grid point flag processing procedure S15 in parallel.
[0157]
Here, in the adjacent grid point flag processing procedure S15, the usable flag is “1” and the arrival status flag is “0” for the adjacent grid point adjacent to the grid point whose arrival status flag is “1”. If the arrival status flag of the adjacent grid point is set to “1”, the search direction is displayed on the arrival direction flag of the adjacent grid point (ie, XY depending on the search direction) (The direction flag and the positive / negative direction flag are set to “1” or “0”).
[0158]
Further, in this forward search processing step (step S14), this adjacent grid point flag processing procedure S15 is repeatedly executed until there are no grid points whose arrival status flag is “1” for each search line segment. In this step, line segments are sequentially generated.
The backward search processing step (step S16) is performed after the arrival status flag of the lattice point indicating the end point of the search becomes “1” in the forward search processing step (step S14) (that is, the search line segment ends). This is a step of searching for an optimum wiring route by performing a backward search in accordance with the arrival direction flag from the lattice point indicating the search end point to the lattice point indicating the search start point. .
[0159]
Here, in the wiring processing method including the steps (steps S14 and S16) as described above, the CPU 2 (see FIG. 1) of the conversational circuit design device 1 performs the forward search processing unit A14 and the rear as shown in FIG. It is executed by having a function corresponding to the search processing unit A16.
The forward search processing unit A14 includes an adjacent grid point flag processing unit A15, and the adjacent grid point flag processing unit A15 executes the above-described adjacent grid point flag processing procedure S15 in parallel. A forward search process that sequentially generates line segments is performed by repeatedly executing the grid point flag processing procedure S15 until there is no grid point having the arrival status flag “1” for each search line segment. It is.
[0160]
The backward search processing unit A16 performs the search after the arrival status flag of the lattice point indicating the end point of the search becomes “1” in the forward search processing unit A14 (that is, after the search line segment reaches the end point). A backward search process for searching for an optimum wiring route is performed by performing a reverse search by tracing back the wiring route according to the arrival direction flag from the lattice point indicating the end point to the lattice point indicating the start point of the search.
[0161]
In practice, the function corresponding to each of the processing units A14 and A16 stores in the hard disk 8 a wiring processing program for causing the CPU 2 of the interactive circuit design apparatus 1 to execute each procedure described later. This can be realized.
Here, the wiring processing program in this aspect is software for causing the interactive circuit design apparatus 1 to execute the forward search processing procedure and the backward search processing procedure.
[0162]
In the forward search processing procedure, the arrival status flag indicating that the search line segment has arrived at a lattice point obtained by dividing the wiring region into a lattice pattern with the minimum wiring pitch on the circuit board as a unit is “1”. For an adjacent grid point adjacent to the grid point, if the usable flag indicating whether the grid point is usable for wiring is “1” and the arrival status flag is “0”, the adjacent grid point And the arrival direction flag indicating the direction in which the search line segment arrived at the adjacent lattice point is displayed at the adjacent lattice point (that is, the search direction is displayed). The XY direction flag and the positive / negative direction flag are set to “1” or “0” according to the direction), and the adjacent grid point flag processing procedure S15 (see FIG. 23) is executed in parallel. Point flag processing The order, for each search segment, until the grid point arrival status flag is "1" is eliminated by executing repeatedly, it is a procedure that will be generated sequentially segment.
[0163]
Further, the backward search processing procedure ends the search after the arrival status flag of the lattice point indicating the end point of the search becomes “1” in the forward search processing procedure (that is, after the search line segment reaches the end point). This is a procedure for searching for an optimal wiring route by performing a backward search from the lattice point indicating the point to the lattice point indicating the start point of the search by tracing back the wiring route according to the arrival direction flag.
[0164]
With the above-described configuration, the interactive circuit design device 1 according to the embodiment of the present invention operates as follows to search for a wiring route and determine an optimal wiring route.
Below, the case where the wiring path | route about the wiring on a circuit board as shown to Fig.18 (a) is determined is demonstrated.
[0165]
Here, FIG. 18A is a diagram showing an initial state of the circuit board (a state before the determination of the wiring path). In FIG. 18A, the search start point is indicated by S and the search is performed. The end point of is indicated by T. In FIG. 18A, a wiring prohibited area on the circuit board due to the presence of each circuit is indicated by a solid line.
FIGS. 18B to 18E show the usable flag, the arrival status flag, the XY direction flag, and the positive / negative direction flag in the initial state of the circuit board shown in FIG.
[0166]
In FIG. 18B to FIG. 18E, the lattice points whose flag is “1” are indicated by shading. As shown in FIG. 18B, the arrival status flag of the start point S is set to “1” in the initial state.
In the interactive circuit design device 1, first, in the forward search processing step (step S <b> 14), with respect to a lattice point whose arrival status flag is “1”, a lattice point usable flag adjacent to the lattice point search direction is used. Is “1” and the arrival status flag is “0”, the arrival status flag of the adjacent grid point is set to “1” and the search direction is recorded in the arrival direction flag.
[0167]
In the forward search processing step (step S14), the above-described operation is performed until there are no grid points whose arrival status flag is “1” for each search line segment.
That is, when determining the wiring path for the wiring on the circuit board as shown in FIG. 18A, first, as shown in FIG. 19A, a search is performed from the start point S in the X-axis direction by calculation. A line segment is generated (search level 1). Note that the available flag, arrival status flag, XY direction flag, and positive / negative direction flag at this time are as shown in FIGS. 19B to 19E, respectively.
[0168]
Subsequently, as shown in FIG. 20A, a search line segment is generated in the Y-axis direction from the search line segment generated at the above-described search level 1 (search level 2). In this search level 2 and the following search levels (search levels 3 and 4), if the search line segments are generated in parallel, the processing speed can be improved. The usable flag, arrival status flag, XY direction flag, and positive / negative direction flag at this time are as shown in FIGS. 20 (b) to 20 (e), respectively.
[0169]
Furthermore, as shown in FIG. 21A, a search line segment is generated in the X-axis direction from the search line segment generated at the above-described search level 2 (search level 3). Note that the available flag, arrival status flag, XY direction flag, and positive / negative direction flag at this time are as shown in FIGS. 21 (b) to 21 (e), respectively.
Further, as shown in FIG. 22A, a search line segment is generated in the Y-axis direction from the search line segment generated at the above-described search level 3 (search level 4). The usable flag, the arrival status flag, the XY direction flag, and the positive / negative direction flag at this time are as shown in FIGS. 22B to 22E, respectively.
[0170]
Then, after the search line segment reaches the end point T, the backward search processing step (step S16) performs the wiring route from the end point T to the start point S according to the arrival direction flag, as shown in FIG. An optimal wiring route can be determined by retroactively searching backward.
As described above, according to the first aspect of the wiring processing method for determining the wiring path in the interactive circuit design apparatus 1 according to the embodiment of the present invention, the availability flag, arrival status flag, and For example, as shown in FIG. 17, the arrival direction flag is configured so that the byte address and the number of bits in the memory or the like directly represent the coordinates of the lattice point, so that the calculation in the forward search processing step (step S14) can be performed in parallel. Therefore, the time required for searching for the wiring route can be greatly shortened.
[0171]
(B5) Description of the second mode of the wiring processing method for determining the wiring path
Subsequently, as a wiring processing method in the interactive circuit design apparatus 1 according to one embodiment of the present invention, a second aspect of the wiring processing method for determining an optimal wiring path when connecting each circuit on the LSI. Will be described.
Here, as shown in FIG. 27, the wiring processing method for determining the wiring route in this aspect is a forward search processing step (step S17), a backward search processing step (step S18), and an optimum wiring route determination step (step). S19).
[0172]
First, in this embodiment, when determining the wiring route for the wiring on the circuit board, the arrival direction flag is previously stored in the hard disk 8 of the interactive circuit calculation apparatus 1 shown in FIGS. Is prepared.
Here, the arrival direction flag is a flag that indicates the direction in which the search line segment has arrived at the lattice point by dividing the wiring region into a lattice pattern with the minimum wiring pitch as a unit.
[0173]
As this arrival direction flag, for each direction, a flag indicating “1” indicating that the search line segment has arrived for each grid point is prepared bit by bit.
For example, in a single-layer wiring, the X axis is defined as the horizontal direction and the Y axis is defined as the vertical direction, and the X axis positive direction, the X axis negative direction, the Y axis positive direction, and the Y axis negative direction are flagged. Is prepared.
[0174]
Here, when searching for a plurality of wiring paths is not permitted, the wiring path searched earlier as the wiring path (for example, the wiring path reached from the left side of the end point T in the example shown in FIG. 25A). Therefore, there is a possibility that a non-optimal wiring route is selected as shown in FIG.
For this reason, in this embodiment, as a wiring route, for example, as shown in FIG. 26A, a plurality of wiring routes are searched, and an optimum wiring route [for example, FIG. In the example shown in FIG. 4, the arrival direction flag is configured by four types of flags indicating that the search line segment has arrived from each direction in order to select the wiring route having the shortest wiring length.
[0175]
Here, in the forward search processing step (step S17), for example, when determining the wiring path for the wiring on the circuit board as shown in FIG. 26A, the search direction is set in the arrival direction flag for each lattice point. This is a step of performing forward search while displaying a plurality of.
That is, in the forward search processing step (step S17), when the search line segment arrives from a plurality of directions for each lattice point, the arrival direction flag corresponding to the direction is set to “1”.
[0176]
The backward search processing step (step S18) is performed after the arrival direction flag of the lattice point indicating the end point of the search becomes “1” in the forward search processing step (step S17) (that is, the search line segment reaches the end point). For example, as shown in FIG. 26 (a), a backward search is performed by tracing back the wiring route from the lattice point indicating the search end point T to the lattice point indicating the search start point S according to the arrival direction flag. In this step, a plurality of wiring paths (four wiring paths in FIG. 26A) are searched.
[0177]
Further, in the optimum wiring route determination step (step S19), by obtaining the wiring lengths or wiring costs of the plurality of wiring routes obtained in the backward search processing step (step S18), for example, as shown in FIG. This is a step of determining an optimum wiring route.
Specifically, in this optimum wiring route determination step (step S19), the wiring route having the smallest wiring length or wiring cost is determined as the optimum wiring route.
[0178]
Here, the wiring processing method including the above-described steps (steps S17 to S19) is performed by the CPU 2 (see FIG. 1) of the conversational circuit design device 1 using the forward search processing unit A17 and the rear as shown in FIG. It is executed by having functions corresponding to the search processing unit A18 and the optimum wiring route determination processing unit A19.
For example, when the forward search processing unit A17 determines a wiring path for wiring on the circuit board as shown in FIG. 26A, the wiring area is divided into a grid pattern with the minimum pitch of the wiring on the circuit board as a unit. For each grid point obtained in this way, a forward search is performed while a plurality of search directions are displayed in the arrival direction flag indicating the direction in which the search line segment has arrived at the grid point.
[0179]
Further, the backward search processing unit A18, for example, after the arrival direction flag of the lattice point indicating the search end point becomes “1” in the forward search processing unit A17 (that is, after the search line segment reaches the end point), for example, As shown in FIG. 26 (a), a plurality of wiring routes are obtained by performing a backward search according to the arrival direction flag from the lattice point indicating the search end point T to the lattice point indicating the search start point S. A process of searching for [four wiring paths in FIG. 26A] is performed.
[0180]
Further, the optimum wiring route determination processing unit A19 obtains the wiring lengths or wiring costs of the plurality of wiring routes obtained by the backward search processing unit A18, so that, for example, as shown in FIG. The process of determining the wiring route with the lowest cost as the optimum wiring route is performed.
In practice, the functions corresponding to the processing units A17 to A19 store in the hard disk 8 a wiring processing program for causing the CPU 2 of the conversational circuit design apparatus 1 to execute each procedure described later. This can be realized.
[0181]
Here, the wiring processing program in the present embodiment is software for causing the interactive circuit design apparatus 1 to execute the forward search processing procedure, the backward search processing procedure, and the optimal wiring route determination procedure.
In the forward search processing procedure, for example, when determining the wiring route for the wiring on the circuit board as shown in FIG. 26A, the wiring area is divided into a grid in units of the minimum pitch of the wiring on the circuit board. For each grid point obtained in this way, a forward search is performed while a plurality of search directions are displayed on the arrival direction flag indicating the direction in which the search line segment has arrived at the grid point.
[0182]
The backward search processing procedure is performed after the arrival direction flag of the lattice point indicating the search end point in the forward search processing procedure becomes “1” (that is, after the search line segment reaches the end point), for example, FIG. As shown in (a), a plurality of wiring paths [figure is shown by going backward through the wiring path according to the arrival direction flag from the grid point indicating the search end point T to the grid point indicating the search start point S. 26 (a) is a procedure for searching for [four wiring routes].
[0183]
Further, the optimum wiring route determination procedure obtains the wiring length or the wiring cost of the plurality of wiring routes obtained by the backward search processing procedure, so that the wiring length or the wiring cost is minimized as shown in FIG. 26B, for example. This is a procedure for determining the wiring route as the optimum wiring route.
With the above-described configuration, the interactive circuit design device 1 according to the embodiment of the present invention operates as follows to search for a wiring route and determine an optimal wiring route.
[0184]
In the interactive circuit design apparatus 1, first, when a search line segment arrives from a plurality of directions for each lattice point by the forward search processing step (step S <b> 17), the arrival direction flag corresponding to the direction is set to “ A forward search is performed while being set to 1 ″.
Then, after the arrival direction flag of the lattice point indicating the search end point becomes “1” in the forward search processing step (step S17) (that is, after the search line segment reaches the end point), the backward search processing step ( In step S18), for example, as shown in FIG. 26A, the backward search is performed by going back the wiring route from the lattice point indicating the search end point T to the lattice point indicating the search start point S according to the arrival direction flag. Thus, a plurality of wiring paths are searched.
[0185]
For example, when determining the wiring route for the wiring on the circuit board as shown in FIG. 26A, in the backward search processing step (step S18), the wiring route is reversely searched according to the arrival direction flag. Four wiring routes are searched.
Further, when a plurality of wiring routes are searched in the backward search processing step (step S18), the optimum wiring route determining step (step S19) is used to determine from the plurality of wiring routes, for example, as shown in FIG. The optimum wiring route is determined.
[0186]
For example, when determining the wiring path for the wiring on the circuit board as shown in FIG. 26A, the optimum wiring path determination step (step S19) is obtained in the backward search processing step (step S18). For each wiring path, the wiring path having the shortest wiring length is determined by obtaining the wiring length.
As described above, according to the second aspect of the wiring processing method for determining the wiring path in the interactive circuit design device 1 according to the embodiment of the present invention, the arrival direction flag is indicated by the search line segment at the lattice point. It is configured to indicate the direction of arrival (specifically, the arrival direction flag is composed of four types of flags indicating that the search line segment has arrived from each direction with respect to the grid point) Since a plurality of wiring routes can be searched as a route and an optimum wiring route can be selected from them, the wiring length can be minimized and the wiring property can be improved.
[0187]
If the wiring cost is set for each grid point based on the wiring congestion degree of each divided area when the wiring area is divided into small areas, the delay value of each wiring layer when there are a plurality of wiring layers, etc. In the above-described optimum wiring route determination step (step S19), it is possible to determine the optimum route in consideration of the wiring property and the circuit performance.
(B6) Description of the third mode of the wiring processing method for determining the wiring path
Further, as a wiring processing method in the interactive circuit design apparatus 1 according to the embodiment of the present invention, a third aspect of the wiring processing method for determining an optimal wiring path when connecting each circuit on the LSI is described. explain.
[0188]
Here, in this aspect, in order to determine the optimum wiring route, the wiring congestion degree is estimated as the wiring possibility before the wiring is performed at the end of the placement of each circuit, and the evaluation based on the wiring congestion degree is performed. A method for appropriately modifying the circuit arrangement will be described.
As shown in FIG. 30, the wiring processing method for determining the wiring route in this aspect includes a circuit arrangement determining step (step S20), a wiring congestion degree evaluating step (step S21), and a circuit arrangement correcting step (step S22). It is composed.
[0189]
Here, the circuit arrangement determining step (step S20) is a step of determining the arrangement of the circuit on the circuit board. In this circuit arrangement determining step (step S20), the arrangement of the circuit on the circuit board is determined by a conventional method or the like.
In the wiring congestion degree evaluation step (step S21), the circuit arrangement determination step (step S20) determines the circuit congestion after determining the circuit arrangement, and then calculates the wiring congestion degree for the wiring connecting the circuits. In this step, the circuit layout determined in the determination step (step S20) is evaluated.
[0190]
Here, the wiring congestion degree evaluation method in the wiring congestion degree evaluation step (step S21) will be described.
First, consider the probability that a net composed of wiring as shown in FIG. 29 occupies a point in the wiring area.
The probability that the net occupies a point in the wiring area can be expressed by using the area S of the smallest rectangle including the terminal of the net to be wired (the terminal is indicated by ● in FIG. 29) and the theoretical length l of the net. .
[0191]
That is, area SiA point in the rectangle ofiProbability p occupied by net iiIs
pi= Li/ Si
Assume that
Here, the argument of each net liIs the total wiring length L, the total wiring length L is defined as follows.
[0192]
[Expression 17]
Figure 0004268694
On the other hand, the number G of points used for wiring when overlapping (overlapping) of each net is allowed is “the probability that only one net uses a point” + “the probability that only two nets use a point” "+" Probability that only three nets use a point "+ ... +" Probability that all nets use a point "can be calculated by summing up the points included in all wiring areas.
[0193]
Here, the “probability that only one net uses a point” can be obtained by the following equation.
[0194]
[Formula 18]
Figure 0004268694
The “probability that only two nets use a point” can be obtained by the following equation.
[0195]
[Equation 19]
Figure 0004268694
In the same manner, “probability that only n nets use a point” is
[0196]
[Expression 20]
Figure 0004268694
It can ask for. Here, the chief liProbability p occupied by net iiIs considered to be a small value compared to 1, and it is considered that “probability that only n nets use points” converges rapidly as n increases.
[0197]
For this reason, the number G of points used can be approximated by using a value up to an appropriate number of nets.
By the way, if the total wiring length L is equal, it can be considered that the smaller the number of used points G is, the larger the wiring congestion degree is. Therefore, as the evaluation value of the wiring congestion degree,
(LG) / L
think of.
[0198]
The total wiring length L is
L = 1 × “probability that only one net uses a point” +... + “Total number of nets” × “probability that all nets use a point”
Since the above formula is used, the theoretical length liProbability p occupied by net iiIgnoring the term where 4 or more are accumulated,
LG = Σ [(1/2) T1 2+ (1/2) T1T2-(1/2) T2-(1/6) T1 Three-(1/3) TThree]
(Σ is the sum of all points in the wiring area)
However, T1= Σpi, T2= Σ (pi 2), TThree= Σ (pi Three)
It becomes.
[0199]
Thus, (LG) can be calculated using the sum of the products of probabilities that occupy a certain point in each net.
From the above, (LG) / L is calculated as a value for evaluating the degree of wiring congestion for wiring possibility.
As described above, in the wiring congestion degree evaluation step (step S21), after determining the arrangement of the circuit in the circuit arrangement determining step (step S20), the total wiring length of the wirings connecting the circuits is set to L, and The circuit arrangement determined in the circuit arrangement determining step (step S20) is evaluated by evaluating the number of points used as G and evaluating (LG) / L as the wiring congestion degree for the wiring. It is.
[0200]
By the way, in the circuit arrangement correction step (step S22), after the wiring congestion degree is obtained in the wiring congestion degree evaluation step (step S21) and the circuit arrangement is evaluated, the circuit arrangement is changed according to the evaluation based on the wiring congestion degree. This is a step for improving the arrangement of each circuit and optimizing the wiring area by making corrections. In this circuit layout correction step (step S22), the layout of each circuit is improved and the wiring area is optimized by a conventional method or the like.
[0201]
In the interactive circuit design apparatus 1, the wiring process is performed in an optimal wiring path after the circuit layout is appropriately corrected by the circuit layout correction step (step S22).
Here, the wiring processing method including the above-described steps (steps S20 to S22) is performed by the CPU 2 (see FIG. 1) of the interactive circuit design apparatus 1 in which the circuit arrangement determination processing unit A20, as shown in FIG. It is executed by having functions corresponding to the wiring congestion degree evaluation processing unit A21 and the circuit arrangement correction processing unit A22.
[0202]
The circuit arrangement determination processing unit A20 performs processing for determining the arrangement of the circuit on the circuit board.
In addition, the wiring congestion degree evaluation processing unit A21 determines the number of points used for wiring by setting the total wiring length of the wirings connecting the circuits to L after the circuit layout determination processing unit A20 determines the circuit layout. As G, (LG) / L is evaluated as the degree of wiring congestion for the wiring, thereby performing processing for evaluating the circuit arrangement determined by the circuit arrangement determination processing unit A20.
[0203]
Further, the circuit arrangement correction processing unit A22 obtains the wiring congestion degree in the wiring congestion degree evaluation processing unit A21 and evaluates the circuit arrangement, and then corrects the circuit arrangement according to the evaluation based on the wiring congestion degree. The circuit layout is improved and the wiring area is optimized.
In practice, the function corresponding to each of the processing units A20 to A22 stores in the hard disk 8 a wiring processing program for causing the CPU 2 of the interactive circuit design apparatus 1 to execute each procedure described later. This can be realized.
[0204]
Here, the wiring processing program in the present embodiment is software for causing the interactive circuit design apparatus 1 to execute a circuit arrangement determination procedure, a wiring congestion degree evaluation procedure, and a circuit arrangement correction procedure.
The circuit arrangement determination procedure is a procedure for determining an arrangement for a circuit on a circuit board.
[0205]
In the wiring congestion degree evaluation procedure, after determining the arrangement of the circuit in the circuit arrangement determination procedure, the total wiring length of the wirings connecting the circuits is L, and the number of points used for the wiring is G ( LG) / L is a procedure for evaluating the circuit arrangement determined in the circuit arrangement determination procedure by evaluating the wiring congestion degree for the wiring.
[0206]
Further, in the circuit layout correction procedure, after obtaining the wiring congestion level in the wiring congestion level evaluation procedure and evaluating the circuit layout, the circuit layout is corrected according to the evaluation based on the wiring congestion level. This is a procedure for improving the placement and optimizing the wiring area.
With the above-described configuration, in the interactive circuit design device 1 according to one embodiment of the present invention, the circuit arrangement is determined by the following operation, and the determined circuit arrangement is evaluated based on the degree of wiring congestion. The circuit arrangement is corrected according to the evaluation based on the degree of wiring congestion.
[0207]
In the interactive circuit design apparatus 1, first, an arrangement for a circuit on a circuit board is determined by a circuit arrangement determining step (step S <b> 20).
Subsequently, when the circuit arrangement is determined in the circuit arrangement determination step (step S20), the wiring congestion degree for the wiring connecting the circuits is obtained in the wiring congestion degree evaluation step (step S21). Based on the degree of wiring congestion, the circuit arrangement determined in the circuit arrangement determining step (step S20) is evaluated.
[0208]
Further, in accordance with the evaluation based on the wiring congestion level in the wiring congestion level evaluation step (step S21), the circuit layout correction is appropriately performed in the circuit layout correction step (step S22).
In the interactive circuit design apparatus 1, wiring processing is performed on an optimal wiring path after the circuit layout is appropriately corrected by the circuit layout correction step (step S <b> 22).
[0209]
As described above, according to the third aspect of the wiring processing method for determining the wiring path in the interactive circuit design device 1 according to the embodiment of the present invention, before wiring is performed at the end of the placement of each circuit. In addition, an optimal wiring route can be determined by estimating the wiring congestion degree as the wiring possibility and appropriately modifying the circuit arrangement according to the evaluation based on the wiring congestion degree.
[0210]
Also, by calculating the value (LG) / L that evaluates the degree of wiring congestion, the wiring possibility can be estimated before wiring is performed at the end of the placement of each circuit. It becomes possible to calculate and evaluate the wiring possibility at an early stage that is required in accordance with the realization.
Furthermore, by optimizing the circuit layout based on the value (LG) / L for evaluating the degree of wiring congestion, the wiring area can be optimized appropriately.
[0211]
【The invention's effect】
  As described above in detail, according to the wiring processing method of the present invention, the wiring connecting the two receivers in the clock net on the clock distribution circuit in the clock synchronous circuit is divided into three or more segments, etc. By obtaining the delay branch point, it is possible to accurately determine the equal delay branch point in consideration of the fact that the resistance and capacitance per unit grid in the wiring are not equal regardless of the location. There is an advantage that a clock skew which is a difference in clock propagation delay time (delay time) can be reduced.4).
[0212]
  Further, according to the wiring processing method of the present invention, the external clock delay time is reduced by dividing the wiring on the clock distribution circuit in the clock synchronous circuit into three or more segments and adjusting the wiring length in units of segments. In consideration, the delay time to each receiver can be made equal, and this has the advantage that the clock skew, which is the difference in the propagation delay time (delay time) of the clock in the clock synchronous circuit, can be reduced. Term5).
[0213]
  Further, according to the wiring processing method of the present invention, the equal delay branch point is obtained by dividing the wiring connecting the two receivers in the clock net on the clock distribution circuit in the clock synchronous circuit into three or more segments. At the same time, the wiring from this equal delay branch point to the external clock source take-in section is divided into three or more segments and the wiring length is adjusted in units of segments, so that the resistance and capacity per unit grid in the wiring can be placed in place. It is possible to accurately determine the equal delay branch point in consideration of inequality, and to equalize the delay time to each receiver in consideration of the external clock delay time. The clock that is the difference in the propagation delay time of the clock in the circuit (delay time) There is an advantage that it is possible to effectively reduce the skew (claim6,7).
[0214]
  In addition, the present inventionis connected withAccording to the wiring processing method, when determining the wiring route for the wiring on the circuit board, the arrival status flag indicates the arrival of the search line segment with the available flag, the arrival status flag, and the arrival direction flag prepared in advance. For an adjacent grid point adjacent to a grid point, the arrival status flag of the adjacent grid point is searched when the available flag indicates the usable state and the arrival status flag indicates that the search line segment has not arrived. By executing the adjacent grid point flag processing procedure for displaying the search direction in the arrival direction flag of the adjacent grid point in parallel while setting the line segment arrival status, the computation in the forward search processing step is performed in parallel processing. Since it can be performed at high speed, it has the advantage of greatly reducing the time required to search for wiring routes.The
[0215]
  Furthermore, the present inventionis connected withAccording to the wiring processing method, when determining the wiring route for the wiring on the circuit board, with the arrival direction flag prepared in advance, for each lattice point, by displaying a plurality of search directions in the arrival direction flag, Since it is possible to search for a plurality of wiring routes as wiring routes and select an optimal wiring route from among them, there is an advantage that the wiring length can be minimized and the wiring property can be improved.The
[0216]
  In addition, the present inventionis connected withAccording to the wiring processing method, after determining the arrangement of the circuit, the total wiring length of the wirings connecting the circuits is L, the number of points used for the wiring is G, and (LG) / L is wired Since it is configured with a wiring congestion degree evaluation step that evaluates as a wiring congestion degree for each circuit, it is possible to estimate the wiring congestion degree as a wiring possibility before wiring at the end of the placement of each circuit. There is an advantage that it is possible to calculate and evaluate the wiring possibility at an early stage that is required as the target becomes larger.The
[0217]
  Furthermore, according to the wiring processing apparatus of the present invention, three or more branch points are set by setting two or more branch points for the wiring connecting the two receivers in the clock net on the clock distribution circuit in the clock synchronous circuit. Segment division processing unit that divides into equal segments, equal delay branch segment determination processing unit that determines an equal delay branch segment where an equal delay branch point exists, and an equal delay branch point that finds an equal delay branch point in an equal delay branch segment By comprising the determination processing unit, it is possible to accurately determine the equal delay branch point in consideration that the resistance and capacitance per unit grid in the wiring are not equal regardless of the location. A clock that is the difference in clock propagation delay time (delay time) in a clock synchronous circuit. There is the advantage that it is possible to reduce the Kusukyu (claim8).
[0218]
  According to the wiring processing device of the present invention, the segment division processing unit that divides the wiring on the clock distribution circuit in the clock synchronous circuit into three or more segments by setting two or more branch points; The propagation delay time determination processing unit for obtaining the propagation delay time of the wiring in consideration of the delay time for each segment is compared with the propagation delay time of the wiring and the set time, and based on this comparison result, By having a wiring length adjustment processing unit that adjusts the wiring length in segments, the delay time to each receiver can be made equal in consideration of the external clock delay time. Clock skew, which is the difference in clock propagation delay time (delay time) in the circuit Can be advantageously reduced (claim9).
[0219]
  Furthermore, according to the wiring processing apparatus of the present invention, three or more branch points are set by setting two or more branch points for the wiring connecting the two receivers in the clock net on the clock distribution circuit in the clock synchronous circuit. A first segment division processing unit that divides into equal segments, an equal delay branch segment determination processing unit that determines an equal delay branch segment in which an equal delay branch point exists, and an equal delay that obtains an equal delay branch point in the equal delay branch segment Two or more branch points for the branch point determination processing unit, the delay time determination processing unit for obtaining the fifth delay time from the equal delay branch point to each receiver, and the wiring from the equal delay branch point to the external clock source capturing unit A second segment division processing unit that divides into three or more segments, Propagation delay time determination processing unit that calculates the propagation delay time of the wiring in consideration of the delay time for each segment, and the time obtained by adding the fifth delay time from the equal delay branch point to each receiver and the propagation delay time of the wiring And a setting time, and based on the comparison result, a wiring length adjustment processing unit that adjusts the wiring length on a segment basis is provided, so that the resistance and capacity per unit grid in the wiring can be reduced. The equal delay branch point can be accurately determined in consideration of unequal regardless of location, and the delay time to each receiver can be made equal in consideration of the external clock delay time. The clock that is the difference of the propagation delay time of the clock in the synchronous circuit (delay time) There is an advantage that it is possible to effectively reduce the Kkusukyu (claim10).
[0220]
  In addition, the present inventionis connected withAccording to the wiring processing apparatus, an arrival status flag indicating that a search line has arrived at a grid point obtained by dividing a wiring area into a grid pattern with a minimum wiring pitch on the circuit board as a unit arrives at the search line For an adjacent grid point adjacent to the grid point indicating, an available flag indicating whether the grid point can be used for wiring indicates a usable state, and the arrival status flag indicates that the search line segment has not arrived , The arrival status flag of the adjacent grid point is set to indicate the arrival of the search line segment, and the search is performed in the arrival direction flag indicating the direction in which the search line segment has arrived at the adjacent grid point at the adjacent grid point. The adjacent lattice point flag processing procedure for displaying the direction is executed in parallel, and the adjacent lattice point flag processing procedure is further set for each search line segment to set the arrival status flag to the state indicating the arrival of the search line segment. Without A forward search processing unit that repeatedly executes forward search processing, and a backward search that searches for a wiring route by going back from the desired grid point according to the arrival direction flag after the forward search processing. By including a backward search processing unit that performs processing, computation in the forward search processing can be performed at high speed by parallel processing, so that the time required for wiring route search can be greatly reduced. There are advantagesThe
[0221]
  Furthermore, the present inventionis connected withAccording to the wiring processing apparatus, for each lattice point obtained by dividing the wiring region into a lattice pattern with the minimum wiring pitch on the circuit board as a unit, an arrival direction flag indicating the direction in which the search line segment has arrived at the lattice point A forward search processing unit that performs forward search while displaying a plurality of search directions in FIG. 5 and a plurality of wirings by tracing the wiring route from a desired grid point according to the arrival direction flag after the forward search. By configuring a backward search processing unit that searches for a route and an optimal wiring route determination processing unit that determines an optimal wiring route from a plurality of wiring routes, a plurality of wiring routes can be searched for as a wiring route. Since the optimal wiring route can be selected from among them, there is an advantage that the wiring length can be minimized and the wiring property can be improved.The
[0222]
  In addition, the present inventionis connected withAccording to the wiring processing device, the circuit layout determination processing unit that determines the layout of the circuit on the circuit board, and after determining the layout of the circuit, the total wiring length of the wiring that connects the circuits is L and is used for the wiring In the end stage of the placement of each circuit, the circuit is configured to include a wiring congestion degree evaluation processing unit that evaluates (LG) / L as a wiring congestion degree for a wiring, where G is the number of points to be processed. Since wiring congestion can be estimated as wiring possibility before wiring, there is an advantage that it is possible to calculate and evaluate wiring possibility at an early stage that is required as the number of wiring objects increases.The
[0223]
  Furthermore, according to the recording medium for wiring processing program of the present invention, the segment dividing procedure for dividing the wiring connecting the two receivers in the clock net on the clock distribution circuit in the clock synchronous circuit into three or more segments, An equal delay branch segment determination procedure for determining an equal delay branch segment in which an equal delay branch point exists, and an equal delay branch point determination procedure for determining an equal delay branch point in the equal delay branch segment. By recording the wiring processing program, it is possible to accurately determine the equal delay branch point in consideration of the fact that the resistance and capacity per unit grid in the wiring are not equal regardless of the location. Of clock propagation delay time (delay time) There is an advantage that it is possible to reduce the clock skew is the partial (claim11).
[0224]
  Also, according to the recording medium for wiring processing program of the present invention, the wiring on the clock distribution circuit in the clock synchronous circuit takes into account the segment division procedure for dividing the wiring into three or more segments and the delay time for each segment. Propagation delay time determination procedure to determine the propagation delay time of wiring and wiring length adjustment procedure to compare the wiring propagation delay time and the set time and adjust the wiring length on a segment basis based on this comparison result By recording a wiring processing program for causing the computer to execute, it is possible to equalize the delay time to each receiver in consideration of the external clock delay time. The black that is the difference of the delay time There is an advantage that it is possible to reduce the Kusukyu (claim12).
[0225]
  Further, according to the recording medium for wiring processing program of the present invention, the first segment division for dividing the wiring connecting two receivers in the clock net on the clock distribution circuit in the clock synchronous circuit into three or more segments. From the procedure, the equal delay branch segment determination procedure for determining the equal delay branch segment where the equal delay branch point exists, the equal delay branch point determination procedure for obtaining the equal delay branch point in the equal delay branch segment, and the equal delay branch point A delay time determining procedure for obtaining a fifth delay time for each receiver, a second segment dividing procedure for dividing the wiring from the equal delay branch point to the external clock source take-in section into three or more segments, and for each segment Propagation delay time of wiring considering delay time Based on this comparison result, compare the set delay time with the procedure to determine the desired propagation delay time, the time obtained by adding the fifth delay time from the equal delay branch point to each receiver and the propagation delay time of the wiring. Considering that the resistance and capacity per unit grid in the wiring are not equal regardless of the location by recording the wiring processing program for causing the computer to execute the wiring length adjustment procedure for adjusting the wiring length in segment units. Thus, the equal delay branch point can be determined accurately, and the delay time to each receiver can be made equal in consideration of the external clock delay time, which enables the clock propagation delay time in the clock synchronous circuit. Effectively reduce clock skew, which is the difference in (delay time) Is advantageous in that it can (claim13).
[0226]
  In addition, the present inventionis connected withAccording to the wiring processing program recording medium, an arrival status flag indicating that a search line segment has arrived at a grid point obtained by dividing the wiring area into a grid pattern with a minimum wiring pitch on the circuit board as a unit is searched. For an adjacent grid point adjacent to a grid point indicating arrival of a line segment, an available flag indicating whether the grid point can be used for wiring indicates a usable state, and the arrival status flag is a search line. The arrival direction flag indicating the arrival direction of the search line segment at the adjacent lattice point at the adjacent lattice point, while setting the arrival status flag of the adjacent lattice point to the state indicating the arrival of the search line segment when the minute arrival has not been indicated. The adjacent grid point flag processing procedure for displaying the search direction in parallel is executed in parallel, and the adjacent grid point flag processing procedure is set so that the arrival status flag indicates the arrival of the search line segment for each search line segment. Forward search processing procedure that is repeatedly executed until there are no more grid points, and after the forward search processing procedure, the backward search is performed by searching the wiring route by tracing the wiring route from the desired lattice point according to the arrival direction flag. By recording a wiring processing program for causing the computer to execute the processing procedure, the computation in the forward search processing procedure can be performed at high speed in parallel processing, greatly reducing the time required for wiring route search. There are benefits that can beThe
[0227]
  Furthermore, the present inventionis connected withAccording to the wiring processing program recording medium, for each lattice point obtained by dividing the wiring region into a lattice pattern with the minimum wiring pitch on the circuit board as a unit, the direction in which the search line segment arrives at the lattice point is indicated. By displaying a plurality of search directions in the arrival direction flag and performing a forward search processing procedure for performing a forward search, and following the forward search processing procedure, tracing the wiring route from the desired grid point according to the arrival direction flag A wiring process for causing a computer to execute a backward search processing procedure for searching for a plurality of wiring routes and an optimal wiring route determination procedure for determining an optimal wiring route from the plurality of wiring routes obtained in the backward search processing procedure. By recording a program, it is possible to search for a plurality of wiring routes as wiring routes and select an optimal wiring route from among them. The advantage there that can be turned into by improving routabilityThe
[0228]
  In addition, the present inventionis connected withAccording to the wiring processing program recording medium, the total wiring length of the wiring on the circuit board is L, the number of points used for the wiring is G, and (LG) / L is the wiring congestion degree for the wiring. By recording the wiring processing program for causing the computer to execute the wiring congestion degree evaluation procedure to be evaluated, it is possible to estimate the wiring congestion degree as the wiring possibility at the end of the placement of each circuit before wiring. There is an advantage that it is possible to calculate and evaluate the possibility of wiring at an early stage, which is required as the number of wiring objects increases.The
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of an interactive circuit design apparatus according to an embodiment of the present invention.
FIG. 2 is a diagram showing an overall configuration of an interactive circuit design apparatus according to an embodiment of the present invention.
FIG. 3 is a diagram showing a model of a buffered clock tree in the first aspect of the wiring processing method for reducing clock skew according to the present invention.
FIG. 4 is a diagram showing a main configuration of a buffered clock tree in the first aspect of the wiring processing method for reducing clock skew according to the present invention.
FIG. 5 is a diagram schematically showing a clock tree configuration of a clock net on a clock distribution circuit in the first aspect of the wiring processing method for reducing clock skew according to the present invention;
FIG. 6 is a diagram schematically showing a clock tree configuration of a clock net on a clock distribution circuit in the first aspect of the wiring processing method for reducing clock skew according to the present invention.
FIG. 7 is a flowchart for explaining a first mode of a wiring processing method for reducing clock skew according to the present invention;
FIG. 8 is a functional block diagram for explaining a first mode of a wiring processing apparatus for reducing clock skew according to the present invention;
FIG. 9 is a diagram schematically showing a configuration of a clock net on a clock distribution circuit in a second aspect of the wiring processing method for reducing clock skew according to the present invention.
FIG. 10 is a diagram schematically showing a configuration of a clock net on a clock distribution circuit in a second aspect of the wiring processing method for reducing clock skew according to the present invention.
FIG. 11 is a diagram for explaining a calculation method of y1, y2, and y3 for calculating admittance.
FIG. 12 is a diagram for explaining an external clock delay time.
FIG. 13 is a flowchart for explaining a second aspect of the wiring processing method for reducing clock skew according to the present invention;
FIG. 14 is a functional block diagram for explaining a second mode of the wiring processing apparatus for reducing clock skew according to the present invention;
FIG. 15 is a flowchart for explaining a third aspect of the wiring processing method for reducing clock skew according to the present invention;
FIG. 16 is a functional block diagram for explaining a third aspect of the wiring processing apparatus for reducing clock skew according to the present invention;
FIG. 17 is a diagram for explaining a configuration of an available flag, an arrival status flag, and an arrival direction flag.
FIGS. 18A to 18E are views for explaining a first mode of a wiring processing method for determining a wiring path according to the present invention, respectively.
FIGS. 19A to 19E are views for explaining a first mode of a wiring processing method for determining a wiring path according to the present invention. FIG.
FIGS. 20A to 20E are views for explaining a first mode of a wiring processing method for determining a wiring path according to the present invention. FIG.
FIGS. 21A to 21E are views for explaining a first mode of a wiring processing method for determining a wiring path according to the present invention. FIG.
FIGS. 22A to 22F are views for explaining a first mode of a wiring processing method for determining a wiring path according to the present invention, respectively.
FIG. 23 is a flowchart for explaining a first mode of a wiring processing method for determining a wiring path according to the present invention;
FIG. 24 is a functional block diagram for explaining a first mode of a wiring processing apparatus for determining a wiring route according to the present invention;
FIGS. 25A and 25B are diagrams for explaining a second mode of a wiring processing method for determining a wiring path according to the present invention, respectively.
FIGS. 26A and 26B are diagrams for explaining a second mode of a wiring processing method for determining a wiring path according to the present invention, respectively.
FIG. 27 is a flowchart for explaining a second aspect of the wiring processing method for determining a wiring path according to the present invention;
FIG. 28 is a functional block diagram for explaining a second mode of the wiring processing apparatus for determining a wiring path according to the present invention;
FIG. 29 is a diagram for explaining a third aspect of the wiring processing method for determining a wiring path according to the present invention;
FIG. 30 is a flowchart for explaining a third aspect of the wiring processing method for determining a wiring path according to the present invention;
FIG. 31 is a functional block diagram for explaining a third mode of the wiring processing apparatus for determining a wiring path according to the present invention;
FIG. 32 is a diagram showing a model of a buffered clock tree.
FIG. 33 is a diagram showing the main configuration of a buffered clock tree.
FIG. 34 is a diagram showing the configuration of a clock tree composed of two sub clock trees.
FIG. 35 is a diagram for explaining a method of searching for a wiring route in automatic wiring.
FIG. 36 is a diagram for explaining a method of searching for a wiring route in automatic wiring.
[Explanation of symbols]
1 Interactive circuit design equipment (wiring processing equipment)
2 CPU
3 Display section
4 Display controller
5 External file writing part
5A External file
6 Print section
7 Input section
8 Hard disk (recording medium for wiring processing program)
9 Computer body
10 Buffered clock tree
11 Clock generation circuit (clock source)
12 buffers
13 Clock receiving circuit (latch)
14,15 wire
16, 17 resistance
18,20 capacitors
19 Delay circuit
21, 22 Vertical RC circuit (segment)
21A, 22A resistance
21B, 22B capacitors
30 Clock Tree
31, 34 Receiver (clock receiving circuit)
32, 35 flip-flop circuit
33, 36 capacitors
37, 40 wires
38,41 resistance
39, 42 capacitor
43 segments
44 clock net
45A driver (clock generation circuit)
45B Clock Tree
46 segments
47, 49 capacitors
48, 50 resistance
51 Output pin
52 tables
100 Buffered clock tree
101 Clock generation circuit (clock source)
102 buffers
103 Clock receiving circuit (latch)
104, 105 wires
106,107 resistance
108,109,110 capacitor
111 Delay circuit
112,115 receiver (clock receiving circuit)
113, 116 flip-flop circuit
114,117 capacitor
118, 121 wires
119,122 resistance
120,123 capacitor
A1 Segment division processing section
A2 equal delay branch segment decision processing section
A3 equal delay branch point decision processing unit
A4 First segment division processing unit
A5 equal delay branch segment decision processing section
A6 equal delay branch point decision processing section
A7 Delay time decision processing section
A8 Second segment division processing section
A9 Propagation delay time decision processing section
A10 Wiring length adjustment processing section
A11 Segment division processing unit
A12 Propagation delay time decision processing section
A13 Wiring length adjustment processing section
A14 Forward search processing unit
A15 Adjacent grid point flag processing unit
A16 backward search processor
A17 Forward search processing unit
A18 backward search processor
A19 Optimal wiring route determination processing unit
A20 Circuit placement decision processing unit
A21 Wiring congestion evaluation processor
A22 Circuit layout correction processing section

Claims (13)

クロック同期式回路におけるクロック分配回路上のクロックネットにおける2つのレシーバ間を接続する配線について、2個以上の分岐点を設定することにより、3個以上のセグメントに分割するセグメント分割ステップと、該セグメント分割ステップで得られたセグメントについて、該セグメントの一端に位置する一分岐点から上記2つのレシーバのうちの一方のレシーバへの第1ディレイ時間と、該一分岐点から上記2つのレシーバのうちの他方のレシーバへの第2ディレイ時間とを比較するとともに、該セグメントの他端に位置する他分岐点から上記2つのレシーバのうちの一方のレシーバへの第3ディレイ時間と、該他分岐点から上記2つのレシーバのうちの他方のレシーバへの第4ディレイ時間とを比較し、上記の第1ディレイ時間と第2ディレイ時間との大小関係と上記の第3ディレイ時間と第4ディレイ時間との大小関係とが反転するセグメントを等ディレイ分岐点が存在する等ディレイ分岐セグメントとして決定する等ディレイ分岐セグメント決定ステップと、該等ディレイ分岐セグメント決定ステップで求められた該等ディレイ分岐セグメント中で等ディレイ分岐点を求める等ディレイ分岐点決定ステップとをそなえて構成され、該等ディレイ分岐セグメント決定ステップにおける上記の第1〜第4ディレイ時間が、
Figure 0004268694
により求められ、該等ディレイ分岐点決定ステップにおける該等ディレイ分岐点が、
Figure 0004268694
により求められることを特徴とする、配線処理方法。
A segment dividing step for dividing the segment into three or more segments by setting two or more branch points for the wiring connecting the two receivers in the clock net on the clock distribution circuit in the clock synchronous circuit; For the segment obtained in the dividing step, a first delay time from one branch point located at one end of the segment to one of the two receivers, and one of the two receivers from the one branch point. The second delay time to the other receiver is compared, and the third delay time from the other branch point located at the other end of the segment to one of the two receivers is compared to the other branch point. Compare the fourth delay time to the other of the two receivers, and the first delay time The equal delay branch segment determination is performed such that the segment in which the magnitude relationship between the first delay time and the second delay time and the magnitude relationship between the third delay time and the fourth delay time are reversed is determined as an equal delay branch segment having an equal delay branch point. And an equal delay branch point determining step for obtaining an equal delay branch point in the equal delay branch segment determined in the equal delay branch segment determining step. The first to fourth delay times are
Figure 0004268694
And the equal delay branch point in the equal delay branch point determination step is
Figure 0004268694
The wiring processing method characterized by being calculated | required by .
該セグメント分割ステップにおいて設定される該分岐点が、該配線上の物理的な分岐点であることを特徴とする、請求項1記載の配線処理方法。  The wiring processing method according to claim 1, wherein the branch point set in the segment division step is a physical branch point on the wiring. 該セグメント分割ステップにおいて設定される該分岐点が、該配線の単位長当たりのインピーダンスが変化する点であることを特徴とする、請求項1記載の配線処理方法。  The wiring processing method according to claim 1, wherein the branch point set in the segment division step is a point where an impedance per unit length of the wiring changes. 該セグメント分割ステップにおいて求められる該セグメントがシングルΠ型回路で評価されることを特徴とする、請求項1記載の配線処理方法。 The segments obtained in the segmentation step, characterized in that it is evaluated in a single-Π-type circuit, wiring process how according to claim 1. クロック同期式回路におけるクロック分配回路上の配線について、2個以上の分岐点を設定することにより、3個以上のセグメントに分割するセグメント分割ステップと、該セグメント分割ステップで得られた各セグメント毎のディレイ時間を考慮した該配線のプロパゲーションディレイ時間を求めるプロパゲーションディレイ時間決定ステップと、該プロパゲーションディレイ時間決定ステップで求められた該配線のプロパゲーションディレイ時間と設定時間とを比較して、この比較結果に基づいて、該セグメント単位で配線長を調整する配線長調整ステップとをそなえて構成され、該セグメント分割ステップにおいて設定される該分岐点が、該配線の単位長当たりのインピーダンスが変化する点であり、該セグメント分割ステップにおいて求められる該セグメントがシングルΠ型回路で評価されることを特徴とする、配線処理方法。 For the wiring on the clock distribution circuit in the clock synchronous circuit, by setting two or more branch points, a segment division step for dividing the segment into three or more segments, and for each segment obtained in the segment division step The propagation delay time determining step for obtaining the propagation delay time of the wiring in consideration of the delay time is compared with the propagation delay time of the wiring determined in the propagation delay time determining step and the set time. Based on the comparison result, a wiring length adjusting step for adjusting the wiring length in the segment unit is configured , and the branch point set in the segment dividing step changes the impedance per unit length of the wiring. At the segmentation step. The segment is required characterized in that it is evaluated in a single-Π-type circuit, the wiring process how. クロック同期式回路におけるクロック分配回路上のクロックネットにおける2つのレシーバ間を接続する配線について、2個以上の分岐点を設定することにより、3個以上のセグメントに分割する第1セグメント分割ステップと、該第1セグメント分割ステップで得られたセグメントについて、該セグメントの一端に位置する一分岐点から上記2つのレシーバのうちの一方のレシーバへの第1ディレイ時間と、該一分岐点から上記2つのレシーバのうちの他方のレシーバへの第2ディレイ時間とを比較するとともに、該セグメントの他端に位置する他分岐点から上記2つのレシーバのうちの一方のレシーバへの第3ディレイ時間と、該他分岐点から上記2つのレシーバのうちの他方のレシーバへの第4ディレイ時間とを比較し、上記の第1ディレイ時間と第2ディレイ時間との大小関係と上記の第3ディレイ時間と第4ディレイ時間との大小関係とが反転するセグメントを等ディレイ分岐点が存在する等ディレイ分岐セグメントとして決定する等ディレイ分岐セグメント決定ステップと、該等ディレイ分岐セグメント決定ステップで求められた該等ディレイ分岐セグメント中で等ディレイ分岐点を求める等ディレイ分岐点決定ステップと、該等ディレイ分岐点決定ステップで求められた該等ディレイ分岐点から各レシーバへの第5ディレイ時間を求めるディレイ時間決定ステップと、該等ディレイ分岐点から外部クロック源取込み部へ至る配線について、2個以上の分岐点を設定することにより、3個以上のセグメントに分割する第2セグメント分割ステップと、該第2セグメント分割ステップで得られた各セグメント毎のディレイ時間を考慮した該配線のプロパゲーションディレイ時間を求めるプロパゲーションディレイ時間決定ステップと、該ディレイ時間決定ステップで求められた該等ディレイ分岐点から各レシーバへの該第5ディレイ時間と該プロパゲーションディレイ時間決定ステップで求められた該配線のプロパゲーションディレイ時間とを加算した時間と、設定時間とを比較して、この比較結果に基づいて、セグメント単位で配線長を調整する配線長調整ステップとをそなえて構成されたことを特徴とする、配線処理方法。  A first segment dividing step for dividing the wiring into two or more segments by setting two or more branch points for the wiring connecting the two receivers in the clock net on the clock distribution circuit in the clock synchronous circuit; For the segment obtained in the first segment division step, a first delay time from one branch point located at one end of the segment to one of the two receivers, and the two branch points from the two branch points. Comparing the second delay time to the other one of the receivers, and the third delay time from the other branch point located at the other end of the segment to one of the two receivers, The fourth delay time from the other branch point to the other of the two receivers is compared, and the first delay is compared. An equal delay branch in which a segment in which the magnitude relation between the ray time and the second delay time and the magnitude relation between the third delay time and the fourth delay time is inverted is determined as an equal delay branch segment in which an equal delay branch point exists. A segment determination step, an equal delay branch point determination step for determining an equal delay branch point in the equal delay branch segment determined in the equal delay branch segment determination step, and the like determined in the equal delay branch point determination step By setting two or more branch points for the delay time determination step for obtaining the fifth delay time from the delay branch point to each receiver and the wiring from the equal delay branch point to the external clock source take-in part, three A second segment dividing step for dividing the segment into the above segments; and the second segment Propagation delay time determining step for obtaining the propagation delay time of the wiring in consideration of the delay time for each segment obtained in the dividing step, and the equal delay branch point determined in the delay time determining step to each receiver The time obtained by adding the fifth propagation delay time and the propagation delay time of the wiring obtained in the propagation delay time determination step is compared with the set time, and based on the comparison result, A wiring processing method comprising a wiring length adjusting step for adjusting a wiring length. 該配線長調整ステップにて、該第5ディレイ時間と該プロパゲーションディレイ時間と該外部クロック源取込み部での外部クロックディレイ時間とを加算した時間と、設定時間とを比較した比較結果に基づいて、セグメント単位で配線長が調整されることを特徴とする、請求項記載の配線処理方法。 Based on the comparison result of comparing the set time with the time obtained by adding the fifth delay time, the propagation delay time, and the external clock delay time at the external clock source capturing unit in the wiring length adjustment step. characterized in that the wiring length for each segment is adjusted, the wiring process how of claim 6. クロック同期式回路におけるクロック分配回路上のクロックネットにおける2つのレシーバ間を接続する配線について、2個以上の分岐点を設定することにより、3個以上のセグメントに分割するセグメント分割処理部と、該セグメント分割処理部で得られたセグメントについて、該セグメントの一端に位置する一分岐点から上記2つのレシーバのうちの一方のレシーバへの第1ディレイ時間と、該一分岐点から上記2つのレシーバのうちの他方のレシーバへの第2ディレイ時間とを比較するとともに、該セグメントの他端に位置する他分岐点から上記2つのレシーバのうちの一方のレシーバへの第3ディレイ時間と、該他分岐点から上記2つのレシーバのうちの他方のレシーバへの第4ディレイ時間とを比較し、上記の第1ディレイ時間と第2ディレイ時間との大小関係と上記の第3ディレイ時間と第4ディレイ時間との大小関係とが反転するセグメントを等ディレイ分岐点が存在する等ディレイ分岐セグメントとして決定する等ディレイ分岐セグメント決定処理部と、該等ディレイ分岐セグメント決定処理部で求められた該等ディレイ分岐セグメント中で等ディレイ分岐点を求める等ディレイ分岐点決定処理部とをそなえて構成され、該等ディレイ分岐セグメント決定処理部が上記の第1〜第4ディレイ時間を、
Figure 0004268694
により求め、該等ディレイ分岐点決定処理部における該等ディレイ分岐点を、
Figure 0004268694
により求めることを特徴とする、配線処理装置。
A segment division processing unit that divides into three or more segments by setting two or more branch points for the wiring connecting the two receivers in the clock net on the clock distribution circuit in the clock synchronous circuit; For the segment obtained by the segmentation processing unit, a first delay time from one branch point located at one end of the segment to one of the two receivers, and from the one branch point to the two receivers The second delay time to the other receiver of the two is compared, the third delay time from the other branch point located at the other end of the segment to one of the two receivers, and the other branch The fourth delay time from the point to the other of the two receivers is compared with the first delay time. An equal delay branch segment determination processing unit that determines a segment in which the magnitude relation between two delay times and the magnitude relation between the third delay time and the fourth delay time are reversed as an equal delay branch segment having an equal delay branch point. And an equal delay branch point determination processing unit for obtaining an equal delay branch point in the equal delay branch segment determined by the equal delay branch segment determination processing unit. The above first to fourth delay times are
Figure 0004268694
The equal delay branch point in the equal delay branch point determination processing unit
Figure 0004268694
The wiring processing apparatus characterized by calculating | requiring by this.
クロック同期式回路におけるクロック分配回路上の配線について、2個以上の分岐点を設定することにより、3個以上のセグメントに分割するセグメント分割処理部と、該セグメント分割処理部で得られた各セグメント毎のディレイ時間を考慮した該配線のプロパゲーションディレイ時間を求めるプロパゲーションディレイ時間決定処理部と、該プロパゲーションディレイ時間決定処理部で求められた該配線のプロパゲーションディレイ時間と設定時間とを比較して、この比較結果に基づいて、該セグメント単位で配線長を調整する配線長調整処理部とをそなえて構成され、該セグメント分割処理部において設定される該分岐点が、該配線の単位長当たりのインピーダンスが変化する点であり、該セグメント分割処理部において求められる該セグメントがシングルΠ型回路で評価されることを特徴とすることを特徴とする、配線処理装置。A segment division processing unit that divides the wiring on the clock distribution circuit in the clock synchronous circuit into three or more segments by setting two or more branch points, and each segment obtained by the segment division processing unit Comparison between the propagation delay time determination processing unit for obtaining the propagation delay time of the wiring in consideration of each delay time, and the propagation delay time of the wiring obtained by the propagation delay time determination processing unit and the set time Then, based on the comparison result, a wiring length adjustment processing unit that adjusts the wiring length in the segment unit is configured, and the branch point set in the segment division processing unit is the unit length of the wiring. Is a point at which the impedance per hit changes, and the segment division processing unit Segment is characterized in that characterized in that it is evaluated in a single-Π-type circuit, wiring processing apparatus. クロック同期式回路におけるクロック分配回路上のクロックネットにおける2つのレシーバ間を接続する配線について、2個以上の分岐点を設定することにより、3個以上のセグメントに分割する第1セグメント分割処理部と、該第1セグメント分割処理部で得られたセグメントについて、該セグメントの一端に位置する一分岐点から上記2つのレシーバのうちの一方のレシーバへの第1ディレイ時間と、該一分岐点から上記2つのレシーバのうちの他方のレシーバへの第2ディレイ時間とを比較するとともに、該セグメントの他端に位置する他分岐点から上記2つのレシーバのうちの一方のレシーバへの第3ディレイ時間と、該他分岐点から上記2つのレシーバのうちの他方のレシーバへの第4ディレイ時間とを比較し、上記の第1ディレイ時間と第2ディレイ時間との大小関係と上記の第3ディレイ時間と第4ディレイ時間との大小関係とが反転するセグメントを等ディレイ分岐点が存在する等ディレイ分岐セグメントとして決定する等ディレイ分岐セグメント決定処理部と、該等ディレイ分岐セグメント決定処理部で求められた該等ディレイ分岐セグメント中で等ディレイ分岐点を求める等ディレイ分岐点決定処理部と、該等ディレイ分岐点決定処理部で求められた該等ディレイ分岐点から各レシーバへの第5ディレイ時間を求めるディレイ時間決定処理部と、該等ディレイ分岐点から外部クロック源取込み部へ至る配線について、2個以上の分岐点を設定することにより、3個以上のセグメントに分割する第2セグメント分割処理部と、該第2セグメント分割処理部で得られた各セグメント毎のディレイ時間を考慮した該配線のプロパゲーションディレイ時間を求めるプロパゲーションディレイ時間決定処理部と、該ディレイ時間決定処理部で求められた該等ディレイ分岐点から各レシーバへの該第5ディレイ時間と該プロパゲーションディレイ時間決定処理部で求められた該配線のプロパゲーションディレイ時間とを加算した時間と、設定時間とを比較して、この比較結果に基づいて、セグメント単位で配線長を調整する配線長調整処理部とをそなえて構成されたことを特徴とする、配線処理装置。 A first segment division processing unit that divides into three or more segments by setting two or more branch points for the wiring connecting the two receivers in the clock net on the clock distribution circuit in the clock synchronous circuit; For the segment obtained by the first segment division processing unit, a first delay time from one branch point located at one end of the segment to one of the two receivers, and from the one branch point to the above Comparing the second delay time to the other of the two receivers, and the third delay time from the other branch point located at the other end of the segment to one of the two receivers; The fourth delay time from the other branch point to the other of the two receivers is compared, and the first delay is compared. An equal delay branch segment in which a segment in which the magnitude relationship between the time and the second delay time and the magnitude relationship between the third delay time and the fourth delay time are reversed is determined as an equal delay branch segment having an equal delay branch point. A determination processing unit, an equal delay branch point determination processing unit for determining an equal delay branch point in the equal delay branch segment determined by the equal delay branch segment determination processing unit, and an equal delay branch point determination processing unit. Two or more branch points are set for the delay time determination processing unit for obtaining the fifth delay time from the equal delay branch point to each receiver and the wiring from the equal delay branch point to the external clock source fetch unit. To obtain a second segment division processing unit that divides into three or more segments and the second segment division processing unit. A propagation delay time determination processing unit for determining a propagation delay time of the wiring in consideration of a delay time for each segment, and the first delay branch point determined by the delay time determination processing unit from the equal delay branch point to each receiver. The set time is compared with the time obtained by adding 5 delay times and the propagation delay time of the wiring obtained by the propagation delay time determination processing unit, and based on the comparison result, the wiring length for each segment is compared. characterized in that it is configured to include a wire length adjusting unit for adjusting, wiring processing equipment. クロック同期式回路におけるクロック分配回路上のクロックネットにおける2つのレシーバ間を接続する配線について、2個以上の分岐点を設定することにより、3個以上のセグメントに分割するセグメント分割手順と、該セグメント分割手順で得られたセグメントについて、該セグメントの一端に位置する一分岐点から上記2つのレシーバのうちの一方のレシーバへの第1ディレイ時間と、該一分岐点から上記2つのレシーバのうちの他方のレシーバへの第2ディレイ時間とを比較するとともに、該セグメントの他端に位置する他分岐点から上記2つのレシーバのうちの一方のレシーバへの第3ディレイ時間と、該他分岐点から上記2つのレシーバのうちの他方のレシーバへの第4ディレイ時間とを比較し、上記の第1ディレイ時間と第2ディレイ時間との大小関係と上記の第3ディレイ時間と第4ディレイ時間との大小関係とが反転するセグメントを等ディレイ分岐点が存在する等ディレイ分岐セグメントとして決定する等ディレイ分岐セグメント決定手順と、該等ディレイ分岐セグメント決定手順で求められた該等ディレイ分岐セグメント中で等ディレイ分岐点を求める等ディレイ分岐点決定手順とを、コンピュータに実行させ、該等ディレイ分岐セグメント決定手順における上記の第1〜第4ディレイ時間が、
Figure 0004268694
により求められ、該等ディレイ分岐点決定手順における該等ディレイ分岐点が、
Figure 0004268694
により求められるよう該コンピュータに実行させるための配線処理プログラムを記録したことを特徴とする、配線処理プログラム用記録媒体。
A segment dividing procedure for dividing the segment into three or more segments by setting two or more branch points for the wiring connecting the two receivers in the clock net on the clock distribution circuit in the clock synchronous circuit, and the segment For the segment obtained by the division procedure, a first delay time from one branch point located at one end of the segment to one of the two receivers, and one of the two receivers from the one branch point. The second delay time to the other receiver is compared, and the third delay time from the other branch point located at the other end of the segment to one of the two receivers is compared to the other branch point. The fourth delay time to the other of the two receivers is compared, and the first delay time and the second delay time are compared. An equal delay branch segment determination procedure for determining a segment in which the magnitude relationship with the delay time and the magnitude relationship between the third delay time and the fourth delay time are reversed as an equal delay branch segment having an equal delay branch point; An equal delay branch point determination procedure for obtaining an equal delay branch point in the equal delay branch segment determined in the equal delay branch segment determination procedure is executed by a computer, and the first delay in the equal delay branch segment determination procedure is performed. ~ 4th delay time
Figure 0004268694
And the equal delay branch point in the equal delay branch point determination procedure is
Figure 0004268694
And characterized by recording the order of the wiring processing program is executed in the computer so obtained, the wiring processing program recording medium.
クロック同期式回路におけるクロック分配回路上の配線について、2個以上の分岐点を設定することにより、3個以上のセグメントに分割するセグメント分割手順と、該セグメント分割手順で得られた各セグメント毎のディレイ時間を考慮した該配線のプロパゲーションディレイ時間を求めるプロパゲーションディレイ時間決定手順と、該プロパゲーションディレイ時間決定手順で求められた該配線のプロパゲーションディレイ時間と設定時間とを比較して、この比較結果に基づいて、該セグメント単位で配線長を調整する配線長調整手順とを、コンピュータに実行させ、該セグメント分割手順において設定される該分岐点が、該配線の単位長当たりのインピーダンスが変化する点であり、該セグメント分割手順において求められる該セグメントがシングルΠ型回路で評価されるよう該コンピュータに実行させるための配線処理プログラムを記録したことを特徴とする、配線処理プログラム用記録媒体。For the wiring on the clock distribution circuit in the clock synchronous circuit, by setting two or more branch points, a segment division procedure for dividing the segment into three or more segments, and for each segment obtained in the segment division procedure The propagation delay time determination procedure for determining the propagation delay time of the wiring in consideration of the delay time is compared with the propagation delay time of the wiring determined in the propagation delay time determination procedure and the set time. Based on the comparison result, the computer executes a wiring length adjustment procedure for adjusting the wiring length in the segment unit, and the branch point set in the segment division procedure changes the impedance per unit length of the wiring. The segment obtained in the segmentation procedure. Doo is characterized by recording the order of the wiring processing program is executed in the computer to be evaluated in a single-Π-type circuit, wiring processing program recording medium. クロック同期式回路におけるクロック分配回路上のクロックネットにおける2つのレシーバ間を接続する配線について、2個以上の分岐点を設定することにより、3個以上のセグメントに分割する第1セグメント分割手順と、該第1セグメント分割手順で得られたセグメントについて、該セグメントの一端に位置する一分岐点から上記2つのレシーバのうちの一方のレシーバへの第1ディレイ時間と、該一分岐点から上記2つのレシーバのうちの他方のレシーバへの第2ディレイ時間とを比較するとともに、該セグメントの他端に位置する他分岐点から上記2つのレシーバのうちの一方のレシーバへの第3ディレイ時間と、該他分岐点から上記2つのレシーバのうちの他方のレシーバへの第4ディレイ時間とを比較し、上記の第1ディレイ時間と第2ディレイ時間との大小関係と上記の第3ディレイ時間と第4ディレイ時間との大小関係とが反転するセグメントを等ディレイ分岐点が存在する等ディレイ分岐セグメントとして決定する等ディレイ分岐セグメント決定手順と、該等ディレイ分岐セグメント決定手順で求められた該等ディレイ分岐セグメント中で等ディレイ分岐点を求める等ディレイ分岐点決定手順と、該等ディレイ分岐点決定手順で求められた該等ディレイ分岐点から各レシーバへの第5ディレイ時間を求めるディレイ時間決定手順と、該等ディレイ分岐点から外部クロック源取込み部へ至る配線について、2個以上の分岐点を設定することにより、3個以上のセグメントに分割する第2セグメント分割手順と、該第2セグメント分割手順で得られた各セグメント毎のディレイ時間を考慮した該配線のプロパゲーションディレイ時間を求めるプロパゲーションディレイ時間決定手順と、該ディレイ時間決定手順で求められた該等ディレイ分岐点から各レシーバへの該第5ディレイ時間と該プロパゲーションディレイ時間決定手順で求められた該配線のプロパゲーションディレイ時間とを加算した時間と、設定時間とを比較して、この比較結果に基づいて、セグメント単位で配線長を調整する配線長調整手順とを、コンピュータに実行させるための配線処理プログラムを記録したことを特徴とする、配線処理プログラム用記録媒体。 A first segment dividing procedure for dividing the segment into three or more segments by setting two or more branch points for the wiring connecting the two receivers in the clock net on the clock distribution circuit in the clock synchronous circuit; For the segment obtained by the first segment division procedure, a first delay time from one branch point located at one end of the segment to one of the two receivers, and the two branch points from the two branch points. Comparing the second delay time to the other one of the receivers, and the third delay time from the other branch point located at the other end of the segment to one of the two receivers, Compared with the fourth delay time from the other branch point to the other of the two receivers, the first delay time The equal delay branch segment determination is performed such that the segment in which the magnitude relationship between the first delay time and the second delay time and the magnitude relationship between the third delay time and the fourth delay time are reversed is determined as an equal delay branch segment having an equal delay branch point. Procedure, an equal delay branch point determination procedure for obtaining an equal delay branch point in the equal delay branch segment determined in the equal delay branch segment determination procedure, and the equal delay branch determined in the equal delay branch point determination procedure By setting two or more branch points for the delay time determination procedure for obtaining the fifth delay time from the point to each receiver and the wiring from the equal delay branch point to the external clock source take-in part, three or more A second segment dividing procedure for dividing into segments, and each segment obtained by the second segment dividing procedure Propagation delay time determining procedure for determining the propagation delay time of the wiring in consideration of the delay time, the fifth delay time from the equal delay branch point determined by the delay time determining procedure to each receiver, and the propagation A wiring length adjustment procedure for comparing the set time with the time obtained by adding the propagation delay time of the wiring obtained in the delay time determination procedure, and adjusting the wiring length in segment units based on the comparison result, and it is characterized by recording the wiring processing program to be executed by a computer, wiring processing program recording medium body.
JP26402297A 1996-12-03 1997-09-29 Wiring processing method, wiring processing apparatus, and recording medium for wiring processing program Expired - Fee Related JP4268694B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP26402297A JP4268694B2 (en) 1996-12-03 1997-09-29 Wiring processing method, wiring processing apparatus, and recording medium for wiring processing program

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP8-323100 1996-12-03
JP32310096 1996-12-03
JP26402297A JP4268694B2 (en) 1996-12-03 1997-09-29 Wiring processing method, wiring processing apparatus, and recording medium for wiring processing program

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008259969A Division JP2009054172A (en) 1996-12-03 2008-10-06 Wiring processing method, wiring processor and recording medium for wiring processing program

Publications (2)

Publication Number Publication Date
JPH10223765A JPH10223765A (en) 1998-08-21
JP4268694B2 true JP4268694B2 (en) 2009-05-27

Family

ID=26546316

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26402297A Expired - Fee Related JP4268694B2 (en) 1996-12-03 1997-09-29 Wiring processing method, wiring processing apparatus, and recording medium for wiring processing program

Country Status (1)

Country Link
JP (1) JP4268694B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000200114A (en) 1999-01-07 2000-07-18 Nec Corp Clock distribution circuit
JP2001014368A (en) 1999-06-30 2001-01-19 Mitsubishi Electric Corp Device and method for clock analysis

Also Published As

Publication number Publication date
JPH10223765A (en) 1998-08-21

Similar Documents

Publication Publication Date Title
JP2009054172A (en) Wiring processing method, wiring processor and recording medium for wiring processing program
US6038383A (en) Method and apparatus for determining signal line interconnect widths to ensure electromigration reliability
US6543041B1 (en) Method and apparatus for reducing signal integrity and reliability problems in ICS through netlist changes during placement
US6405345B1 (en) Updating placement during technology mapping
US20010010090A1 (en) Method for design optimization using logical and physical information
US6066178A (en) Automated design method and system for synthesizing digital multipliers
JP2002500435A (en) Timing closure method
JPH11338892A (en) Device for arranging cell, its method and computer readable storage medium for recording cell arrangement program
US7401313B2 (en) Method and apparatus for controlling congestion during integrated circuit design resynthesis
US6378116B1 (en) Using budgeted required time during technology mapping
US6519745B1 (en) System and method for estimating capacitance of wires based on congestion information
JP2002026129A (en) Method of designing layout of lsi chip, and computer- readable recording medium with program for executing the method of computer recorded thereon
JP2007026170A (en) Automatic layout method for semiconductor integrated circuit, automatic layout program and automatic layout device
US7480886B2 (en) VLSI timing optimization with interleaved buffer insertion and wire sizing stages
JP4268694B2 (en) Wiring processing method, wiring processing apparatus, and recording medium for wiring processing program
JP2005149273A (en) Apparatus and method for floor planning of semiconductor integrated circuit
US6487707B1 (en) Layout design system of semiconductor ic device, layout design method of semiconductor ic device and computer-readable recording medium on which programs for allowing computer to execute respective means in the system or respective steps in the method are recorded
US8151232B2 (en) Repeater driven routing methodology
US7519926B2 (en) Semiconductor device and method for designing the same
JP3705737B2 (en) Semiconductor integrated circuit layout method
JP2737490B2 (en) Logic circuit optimization processing method
JP2008186230A (en) Integrated circuit design device, integrated circuit design method and integrated circuit design program
JPH06349947A (en) Mask pattern designing method and device of semiconductor integrated circuit device
JPH04151853A (en) Wiring method
JP3132655B2 (en) Clock net layout method and layout device in semiconductor integrated circuit

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040706

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080805

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081006

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090210

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090223

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120227

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130227

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130227

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140227

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees