| 【発明の名称】 |
半導体集積回路の設計装置および方法、並びに、半導体集積回路の設計プログラムを記録した媒体 |
| 【発明者】 |
【氏名】塩田 哲義 【住所又は居所】神奈川県川崎市中原区上小田中4丁目1番1号 富士通株式会社内
|
| 【要約】 |
【課題】従来技術においては、ブロックレイアウト完了後にクロストークノイズを考慮したタイミング調整を行うため、簡単なタイミング調整しか行うことができなかった。
【解決手段】階層構造の半導体集積回路の論理情報を使用し、下位階層のタイミングの最適化を該下位階層と上位階層との境界のタイミング情報に基づいて行うプログラムされたコンピュータによって半導体集積回路の設計を行う装置であって、前記境界のタイミング情報には、前記上位階層のクロストークノイズによる遅延変動が含まれているように構成する。 |
【特許請求の範囲】
【請求項1】 階層構造の半導体集積回路の論理情報を使用し、下位階層のタイミングの最適化を該下位階層と上位階層との境界のタイミング情報に基づいて行うプログラムされたコンピュータによって半導体集積回路の設計を行う装置であって、前記境界のタイミング情報には、前記上位階層のクロストークノイズによる遅延変動が含まれていることを特徴とする半導体集積回路の設計装置。 【請求項2】 請求項1に記載の半導体集積回路の設計装置において、前記上位階層のクロストークノイズによる遅延変動は、上位階層の配線を行う前に、予測される配線長に基づいて求められることを特徴とする半導体集積回路の設計装置。 【請求項3】 請求項1に記載の半導体集積回路の設計装置において、前記上位階層のクロストークノイズによる遅延変動は、上位階層の配線を行う前に、予測される配線の混雑度に基づいて求められることを特徴とする半導体集積回路の設計装置。 【請求項4】 請求項1に記載の半導体集積回路の設計装置において、前記上位階層のクロストークノイズによる遅延変動は、上位階層の配線を行い、特定の間隔を隔てて配線されている長さを計算し、該計算された長さに基づいて求められることを特徴とする半導体集積回路の設計装置。 【請求項5】 請求項1に記載の半導体集積回路の設計装置において、前記上位階層のクロストークノイズによる遅延変動は、上位階層の配線を行い、該配線の結果から配線相互のカップリング容量を抽出し、該抽出されたカップリング容量の値に基づいて求められることを特徴とする半導体集積回路の設計装置。 【請求項6】 請求項1〜5のいずれか1項に記載の半導体集積回路の設計装置において、前記上位階層のクロストークノイズによる遅延変動は、上位階層の配線を駆動する半導体素子の情報も含めて求められることを特徴とする半導体集積回路の設計装置。 【請求項7】 請求項1〜6のいずれか1項に記載の半導体集積回路の設計装置において、前記上位階層のクロストークノイズによる遅延変動は、上位階層の注目配線および該注目配線にクロストークノイズの影響を与える配線が遷移するタイミングの情報も含めて求められることを特徴とする半導体集積回路の設計装置。 【請求項8】 請求項1〜7のいずれか1項に記載の半導体集積回路の設計装置において、前記上位階層に対してクロストークを抑止するためのリピータ挿入を行うようになっており、且つ、前記上位階層のクロストークノイズによる遅延変動は、前記リピータ挿入のレイアウトを行う前に、挿入された場合を予測して求められることを特徴とする半導体集積回路の設計装置。 【請求項9】 階層構造の半導体集積回路の論理情報を使用し、下位階層のタイミングの最適化を該下位階層と上位階層との境界のタイミング情報に基づいて半導体集積回路の設計を行う方法であって、前記境界のタイミング情報には、前記上位階層のクロストークノイズによる遅延変動が含まれていることを特徴とする半導体集積回路の設計方法。 【請求項10】 コンピュータによって実行させるプログラムを記録した媒体であって、該プログラムは、階層構造の半導体集積回路の論理情報を使用し、下位階層のタイミングの最適化を該下位階層と上位階層との境界のタイミング情報に基づいて半導体集積回路の設計を行い、前記境界のタイミング情報には、前記上位階層のクロストークノイズによる遅延変動を含ませることを特徴とする半導体集積回路の設計プログラムを記録した媒体。
|
【発明の詳細な説明】【0001】 【発明の属する技術分野】本発明は半導体集積回路のタイミング最適化を行う設計技術に関し、特に、半導体集積回路内部のクロストークノイズによる遅延変動に対して適切なタイミング設計を行う半導体集積回路の設計装置および方法、並びに、半導体集積回路の設計プログラムを記録した媒体に関する。 【0002】近年、半導体集積回路(LSI)の集積度が向上し、様々な機能が一つのチップに搭載されるようになっている。そのような多機能のLSIの設計においては、開発期間を短くする目的で各機能ブロック毎に開発を並行して行うため、機能ブロックの階層を持つLSIの設計を行うことが必要となっている。この階層設計は、ブロック間のタイミング調整が重要であり、LSI内部のクロストークノイズによる遅延変動に対して適切なタイミング設計を行う半導体集積回路の設計技術の提供が要望されている。 【0003】 【従来の技術】従来、一つのチップに様々な機能を搭載した階層構造の半導体集積回路が提供されている。階層構造の設計では、ブロックをまたぐ信号において、正しいクロックエッジで次のレジスタに値が取り込まれるように、ブロック間でタイミングを調整しなければならない。 【0004】ところで、近年、半導体回路の微細化が進むにつれて、配線間容量値の比率が大きくなり、クロストークノイズによってブロック間配線の遅延時間の変動量も大きくなって来ている。 【0005】図1は従来の半導体集積回路の設計処理の一例を示すフローチャートである。 【0006】図1に示されるように、従来の半導体集積回路の設計方法は、ステップST101においてRTL(Register Transfer Logic)情報を用意し(半導体集積回路のRTL設計を完了し)、ステップST102においてブロック/ピン配置を行い、さらに、ステップST103に進んで、ブロック間配線を実行する。 【0007】図2は階層構造の半導体集積回路の一例を概略的に示すブロック図である。図2において、参照符号200は半導体集積回路(チップ)を示し、210,220,230,240はブロック(回路ブロック、機能ブロック)を示す。図2に示されるように、半導体集積回路200は、ブロックA(210)、ブロックB(220)、ブロックC(230)、および、ブロックD(240)を備え、各ブロック210〜240は、ピン(AP1,AP2;BP1,BP2;CP1,CP2;DP1,DP2)およびブロック間配線(L1,L2,L3,L4)を介して他のブロックに接続される。なお、各ブロック(例えば、ブロック220)は、ピン(BP3)および配線(L5)を介して外部ピン(EXP1)に接続される。 【0008】すなわち、前述したステップST102では、ブロック210〜240およびこれら各ブロックのピン(AP1,AP2;BP1,BP2;CP1,CP2;DP1,DP2)の配置を行い、また、ステップST103では、ブロック間配線(L1,L2,L3,L4)を実行する。 【0009】次に、図1に示されるように、ステップST105に進んで、クロストークノイズを含まない遅延情報(ステップST104)を使用してブロック間配線遅延値を算出する。さらに、ステップST106に進んで、ブロックタイミング制約を行って、ステップST107において、RTL情報(ステップST101)を含めて論理合成を行い、ネットリストを得る(ステップST108)。そして、ステップST109に進んで、ブロックのレイアウトを行う。 【0010】その後、ステップST110において、クロストークノイズを計算し、ステップST111に進んで、レイアウトの修正を行う。 【0011】図3は図2の半導体集積回路における一部の回路を示す図であり、図2の半導体集積回路のブロックA(210)における一部(フリップフロップ(ラッチ)211,212および論理回路213)を論理合成したネットリストの一例を示す。なお、図3の例では、論理回路213は、エクスクルーシブオア(EXOR)ゲート2131、アンド(AND)ゲート2132およびオア(OR)ゲート2133で構成され、ORゲート2133の出力がブロックAのピンAP1に接続されている。 【0012】 【発明が解決しようとする課題】上述したように、図1に示す従来の半導体集積回路の設計処理においては、ステップST109においてブロックのレイアウトが完了した後、ステップST110に進んで、クロストークノイズを考慮した遅延解析を行う。そして、タイミングに違反があれば、ステップST111に進んで、レイアウトを修正するか、或いは、半導体素子(セル)を交換・追加・削除してタイミングの調整を行っていた。 【0013】このように、従来技術においては、ブロックレイアウト完了後にクロストークノイズを考慮したタイミング調整を行うため、簡単なタイミング調整しか行うことができず、もし、大きな遅延変動があった場合には、ブロック間信号のタイミングをミートできなくなる危険があった。 【0014】本発明の目的は、上述した従来の半導体集積回路の設計処理が有する課題に鑑み、半導体集積回路内部のクロストークノイズによる遅延変動に対して適切なタイミング設計を行うことのできる半導体集積回路の設計技術の提供にある。 【0015】 【課題を解決するための手段】本発明の第1の形態によれば、階層構造の半導体集積回路の論理情報を使用し、下位階層のタイミングの最適化を該下位階層と上位階層との境界のタイミング情報に基づいて行うプログラムされたコンピュータによって半導体集積回路の設計を行う装置であって、前記境界のタイミング情報には、前記上位階層のクロストークノイズによる遅延変動が含まれていることを特徴とする半導体集積回路の設計装置が提供される。 【0016】本発明の第2の形態によれば、階層構造の半導体集積回路の論理情報を使用し、下位階層のタイミングの最適化を該下位階層と上位階層との境界のタイミング情報に基づいて半導体集積回路の設計を行う方法であって、前記境界のタイミング情報には、前記上位階層のクロストークノイズによる遅延変動が含まれていることを特徴とする半導体集積回路の設計方法が提供される。 【0017】本発明の第3の形態によれば、コンピュータによって実行させるプログラムを記録した媒体であって、該プログラムは、階層構造の半導体集積回路の論理情報を使用し、下位階層のタイミングの最適化を該下位階層と上位階層との境界のタイミング情報に基づいて半導体集積回路の設計を行い、前記境界のタイミング情報には、前記上位階層のクロストークノイズによる遅延変動を含ませることを特徴とする半導体集積回路の設計プログラムを記録した媒体が提供される。 【0018】図4は本発明に係る半導体集積回路の原理を説明するためのフローチャートである。 【0019】図4に示されるように、本発明に係る半導体集積回路の設計処理は、まず、ステップST1において初期論理情報(RTLやネットリスト等の情報)を用意し、ステップST2においてブロック/ピン配置を行い、さらに、ステップST3に進んで、ブロック間配線情報の抽出を行う。 【0020】次に、ステップST5に進んで、クロストークノイズを含んだ遅延情報(ステップST4)を使用してブロック間配線遅延値を算出する。さらに、ステップST6に進んで、ブロックタイミングの最適化を行い、ステップST7において、初期論理情報(ステップST1)を含めて論理合成を行い、そして、ステップST8に進んで、最適化後の論理情報を得る。 【0021】図4と図1との比較から明らかなように、本発明では、ブロックレイアウト(図1のステップST109:下位階層(各ブロック内)のレイアウト)の前の論理設計の段階で、ブロック間配線(上位階層(各ブロック間)の配線)のクロストークノイズによる遅延変動量を予測して(ステップST4:クロストークノイズを含んだ遅延情報を使用して)、ブロック内部のタイミング最適化が行われる。 【0022】すなわち、まず、タイミングの最適化が行われていない階層を持った初期論理情報(ステップST1)からブロックの配置とピンの配置が行われ(ステップST2)、ここからブロック間の配線情報が抽出される(ステップST3)。ここで、ブロック間の配線情報とは、配線長や配線の混雑度、配線間隔並びに配線間容量等を指している。 【0023】さらに、本発明では、配線情報から遅延を計算するための遅延情報ファイルが別に用意されており(ステップST4)、この遅延情報には、クロストークノイズによる遅延の変動が含まれている。ステップST5では、この遅延情報(ステップST4)と配線情報(ステップST3)とからブロック間配線の遅延値が計算される。そして、ステップST6において、ステップST5で算出された配線遅延値をもとにブロックのタイミング制約が生成され、ステップST7でブロックのタイミング最適化が実行される。 【0024】本発明によれば、ブロック間配線のクロストークノイズの影響(クロストークノイズを含んだ遅延情報)をステップST7で論理の最適化により対処できるので、図1に示す従来技術のように、レイアウト後にクロストークノイズを計算する(ステップST110)のよりも、最適化の自由度を増大させることができ、その結果、例えば、ブロックをまたぐパスのタイミングを容易に満足させることもできるようになる。 【0025】すなわち、本発明によれば、クロストークノイズによる遅延変動を考慮したタイミング制約で論理情報を最適化できるので、ブロック間のタイミング仕様を満たすような半導体集積回路の設計を容易に行うことができる。 【0026】 【発明の実施の形態】以下、本発明に係る半導体集積回路の設計装置および方法、並びに、半導体集積回路の設計プログラムを記録した媒体の実施例を、添付図面を参照して詳述する。 【0027】図5は本発明に係る半導体集積回路の設計処理の第1実施例を示すフローチャートである。 【0028】図5に示されるように、本第1実施例に係る半導体集積回路の設計方法は、ステップST11においてRTL情報を用意し(半導体集積回路のRTL設計を完了し)、ステップST12においてブロック/ピン配置、すなわち、ブロックの配置および上位階層との境界のピン位置を決める。ここで、RTL情報は、例えば、論理記述言語で階層構造をもって書かれている。さらに、ステップST13に進んで、ブロック間配線長を算出、すなわち、ピンの位置からブロック間の配線長を予測(算出)する。この予測方法は、例えば、2つのピンの座標からマンハッタン長を求めることで行う。 【0029】このようにしてステップST13で得られたブロック間配線長と、予め求めておいたクロストークノイズ遅延変動量を含めた配線遅延値の配線長依存性の情報(配線長対クロストークノイズ遅延情報:ステップST14)から、ステップST15において、ブロック間配線の遅延値を算出する。そして、このステップST15で算出された遅延値をブロック間配線の遅延値と見なし、ステップST16において、各ブロックの境界のタイミング制約を決め、さらに、ステップST17に進んで、ブロックの論理合成を行い、そして、ネットリストを得る(ステップST18)。 【0030】図6、図7および図8は図5に示す第1実施例を説明するための図であり、上記第1実施例を具体的に説明する。 【0031】図6に示すブロック配置で、ピン座標AP10およびBP10のマンハッタン長を計算し、例えば、ブロック間配線L10の長さが2mmと見積もられたとすると、図7に示すクロストークノイズ遅延変動量を含めた配線遅延値の配線長依存性グラフから、配線長2mmに相当する配線遅延値が250ps(最小値)〜550ps(最大値)であると計算される。ここで、参照符号110および120は、各ブロック11および12におけるラッチ(フリップフロップ)を示している。 【0032】ここで、例えば、配線L10を通るパスのクロックサイクル(クロックCLKの1周期)が2000ps、クロックスキューが300ps、そして、ブロックA(11)およびブロックB(12)の内部の論理段数が同じであったとすると、それぞれのブロック11,12のタイミング制約は、次のように求められる。 【0033】すなわち、図8に示されるように、ブロックA(11)の最大遅延は、(2000ps−300ps−550ps)/2=575psとなり、また、ブロックAの最小遅延は、(300ps−250ps)/2=25psとなる。なお、ブロックB(12)に関しても同様の計算を行う。 【0034】以上においては、タイミング最適化の例としてRTLからの論理合成を説明したが、論理合成後のネットリストをさらに最適化させる場合にも適用することができる。また、遅延が増加する最大遅延と遅延が減少する最小遅延の両方を対象にしたが、設計するLSIによっては、遅延が増加する場合のみに適用することもでき、また、遅延が減少する場合のみに適用することもできる。 【0035】図9は本発明に係る半導体集積回路の設計処理の第2実施例を示すフローチャートである。 【0036】図9と図5との比較から明らかなように、本第2実施例に係る半導体集積回路の設計方法は、図5に示す第1実施例のステップST12とステップST13との間にステップST20が挿入されている。 【0037】本第2実施例においては、ステップST12でブロック/ピン配置を行った後、ステップST20に進んでブロック間配線を実行し、そして、ステップST13においてブロック間配線長を算出する。すなわち、本第2実施例においては、前述した第1実施例のように配線長の計算をピン位置の予測からではなく、実際に配線を行って(ステップST20)配線長を算出するようになっている。これにより、配線長の精度を向上させることができ、より正確な遅延値を使用することができるようになる。 【0038】図10は本発明に係る半導体集積回路の設計処理の第3実施例を示すフローチャートである。 【0039】図10と図5との比較から明らかなように、本第3実施例に係る半導体集積回路の設計方法は、図5に示す第1実施例のステップST13として新たなステップST30が設けられている。 【0040】本第3実施例においては、ステップST12でブロック/ピン配置を行った後、ステップST30に進んで、ブロック間配線長およびブロック間配線混雑度を算出するようになっている。すなわち、本第3実施例においては、前述した第1実施例のように配線長だけからではなく、配線の混雑度も考慮して配線遅延を算出するようになっている。ここで、配線混雑度とは、隣接する配線との間隔が狭いほど高い数字を示すパラメータのことを指している。 【0041】図11および図12は図10に示す第3実施例を説明するための図である。図11において、参照符号L11〜L13およびL21〜L23はブロックA(11)とブロックB(12)との間の配線を示している。 【0042】本第3実施例は、図11における配線混雑度αの配線L11〜L13と配線混雑度βの配線L21〜L23とを識別してクロストークノイズ遅延変動量を決めるものであり、ステップST12でブロックのピン位置を決定した後、概略の配線経路(配線長)を求め、配線の疎密を算出、すなわち、配線混雑度α(密に配線されている場合)と配線混雑度β(疎に配線している場合)を求めるようになっている。ここで、配線混雑度が高い(α:配線L11〜L13)と、配線間の容量値が高くなり、従って、クロストークノイズによる遅延変動量は大きくなる。逆に、配線混雑度が低い(β:配線L21〜L23)と、配線間の容量値が低くなり、従って、クロストークノイズによる遅延変動量は小さくなる。 【0043】すなわち、図12に示されるように、クロストークノイズ遅延変動量を含めた配線遅延値の配線長依存性グラフにおいて、配線混雑度αおよびβに応じて異なる曲線が使用されることになる。このため、ブロックのタイミング制約も、配線混雑度を考慮することによって、より高い精度で求めることができる。 【0044】なお、以上の説明では、ブロック配線実行前に配線混雑度を求めているが、配線実行後に混雑度を求めれば、さらに高い精度でタイミング制約を計算することが可能になる。さらに、配線混雑度は、αおよびβの2つに限定されないのはいうまでもない。 【0045】図13は本発明に係る半導体集積回路の設計処理の第4実施例を示すフローチャートである。 【0046】図13と図9との比較から明らかなように、本第4実施例に係る半導体集積回路の設計方法は、図9に示す第2実施例のステップST13として新たなステップST40が設けられている。 【0047】本第4実施例においては、ステップST12でブロック/ピン配置を行い、さらに、ステップST20でブロック間配線を実行した後、ステップST40に進んで、ブロック間配線の隣接配線長を算出する。すなわち、本第4実施例においては、クロストークノイズによる遅延変動が問題となるブロック間配線の隣接配線に注目し、その問題となるブロック間配線隣接配線長を算出し、隣接配線長対クロストークノイズ遅延情報(ステップST41)を使用して、ステップST15において、ブロック間配線遅延値を算出するようになっている。 【0048】図14および図15は図13に示す第4実施例を説明するための図である。 【0049】本第4実施例に係る半導体集積回路の設計方法においては、ステップST20でブロック間配線を実行した後、ステップST40に進んで、ブロック間配線の隣接配線長を算出する。ここで、隣接配線長とは、例えば、特定の間隔(例えば、最小配線ピッチ)を隔てて配線されている長さを指している。すなわち、図14において、ブロックA(11)およびブロックB(12)を結ぶ配線L11〜L13のように、全ての配線が特定の間隔(例えば、最小配線ピッチ)のときには、その全ての配線長(ブロック間の距離)が隣接配線長(2mm)となる。一方、図14において、ブロックA(11)およびブロックB(12)を結ぶ配線L21〜L23のように、ブロック間の距離(全ての配線長)が同じであっても、クロストークノイズによる遅延変動が問題となる特定の間隔が配線L21〜L23の一部分(長さLb:例えば、1mm)であれば、すなわち、配線L21〜L23の他の部分(長さLa:例えば、1mm)では隣接配線の間隔が広くてクロストークノイズによる遅延変動が殆ど問題にならない場合には、そのクロストークノイズによる遅延変動が問題となる特定の間隔となっている配線L21〜L23の長さ(Lb)が隣接配線長(1mm)となる。 【0050】すなわち、図14に示されるように、配線長(ブロック間距離)が同じであっても、隣接配線長によってクロストークノイズによる遅延変動は異なる。そこで、図15に示されるようなクロストークノイズがない遅延値の配線長依存性のグラフと、クロストークノイズ遅延値の隣接配線長依存性グラフを用意しておき、これら2つのグラフからクロストークノイズを含む配線遅延を計算する。 【0051】具体的に、図14並びに図15(a)および図15(b)に示されるように、配線L11〜L13のような配線長が2mmで隣接配線長が2mmの場合には、最大遅延は400ps+150ps=550psとなり、最小遅延は400ps−150ps=250psとなる。また、配線L21〜L23のような配線長が2mmで隣接配線長が1mmの場合、最大遅延は400ps+50ps=450psとなり、最小遅延は400ps−50ps=350psとなる。 【0052】このように、本第4実施例においては、隣接配線長から遅延値を求めることでより一層高い精度で遅延値を求めることができる。なお、以上の説明では、最小配線ピッチで配線されたときの配線(隣接配線)間の距離をパラメータにしたが、最小ピッチの他に、例えば、2番目のピッチや3番目のピッチといったった複数のピッチの配線間隔をパラメータにして、それぞれについて図15(a)および図15(b)に示すようなグラフを持たせてクロストークノイズ遅延を算出することもできる。さらに、本第4実施例のように、クロストークノイズがない遅延の情報と、クロストークノイズ遅延値情報の2つを使用することは、前述した実施例1〜実施例3においてもそのまま適用することができる。 【0053】図16は本発明に係る半導体集積回路の設計処理の第5実施例を示すフローチャートである。 【0054】図16と図13との比較から明らかなように、本第5実施例に係る半導体集積回路の設計方法は、図13に示す第4実施例のステップST40およびステップST41として新たなステップST50およびステップST51が設けられている。 【0055】本第5実施例においては、ステップST12でブロック/ピン配置を行い、さらに、ステップST20でブロック間配線を実行した後、ステップST50に進んで、ブロック間配線のカップング容量を抽出する。すなわち、本第5実施例においては、ブロック間配線実行後に、クロストークノイズによる遅延変動が問題となる配線間のカップリング容量の抽出を行う。このカップリング容量は、その値が大きいほどクロストークノイズによる遅延変動は大きくなる。そこで、カップリング容量値をパラメータにしたクロストークノイズ遅延値のグラフを用いることにより、より一層正確なクロストークノイズ遅延を求めることができる。 【0056】図17および図18は図16に示す第5実施例を説明するための図である。 【0057】図17並びに図18(a)および図18(b)に示されるように、具体的に、例えば、配線L12に注目すると、ブロック間配線を実行した後に、配線L12の両側の配線(L11およびL13)に対するカップリング容量がそれぞれ35fFおよび35fFであった場合には、カップリング容量対クロストークノイズ遅延の関係を示すグラフ(図18(b))から遅延変動量は、最大で+150psとなり、且つ、最小で−150psとなることが分かる。 【0058】図19は本発明に係る半導体集積回路の設計処理の第6実施例を示すフローチャートである。 【0059】図19と図16との比較から明らかなように、本第6実施例に係る半導体集積回路の設計方法は、図16に示す第5実施例に対してステップST60およびステップST61が追加されている。 【0060】本第6実施例においては、まず、図16に示す第5実施例(或いは、前述した第1実施例〜第4実施例のいずれか)の設計方法により、一旦ブロックAの合成を行ってネットリストを生成する。これにより、ステップST60において、ブロック間配線を駆動する半導体素子(=駆動セル:バッファ111,112,113)が求められる(抽出される)。一方、タイミング解析の対象となる配線L12を駆動するセル(対象側:バッファ112)と、クロストークノイズを与える側の配線L11,L13を駆動するセル(ノイズ側:バッファ111,113)の組合せで、クロストークノイズ遅延値のグラフを作成しておき(ステップST61)、ネットリストから求められた対象側とノイズ側の駆動セル組合せのグラフを用いて、対象配線の遅延時間を計算する(ステップST15)ことにより、さらに精度の高いクロストークノイズ遅延値を得ることができる。 【0061】図20および図21は図19に示す第6実施例を説明するための図である。 【0062】図20に示す例では、対象側駆動セル(バッファ112)が2倍駆動力のバッファであり、ノイズ側駆動セル(バッファ111,113)が4倍駆動力のバッファとなっている。図21(a)に示されるように、例えば、対象側とノイズ側が同じ2倍バッファであれば、クロストークノイズ遅延値は±150psであるが、図21(b)に示されるように、ノイズ側駆動セルが4倍バッファであることにより遅延値は最大で+200psとなり、且つ、最小で−200psとなって変動量が大きくなる。この値を用いて、タイミング制約を再生成し、ブロックAを再合成する。 【0063】以上では、一旦合成して駆動セルを求める方法について説明したが、初回合成前に駆動セルを決めてタイミング制約を作成し、合成時に必ずその駆動セルを使用するように構成してもよい。 【0064】図22は本発明に係る半導体集積回路の設計処理の第7実施例を示すフローチャートである。 【0065】図22と図19との比較から明らかなように、本第7実施例に係る半導体集積回路の設計方法は、図19に示す第6実施例に対してステップST70が追加されている。 【0066】本第7実施例においては、上述した第6実施例と同様に、図16に示す第5実施例(或いは、前述した第1実施例〜第4実施例のいずれか)の設計方法により、一旦ブロックAの合成を行ってネットリストを生成する。これにより、上述した第6実施例における駆動セルの抽出の他に、遷移タイミングを求める(抽出する)ことができる。ここで、遷移タイミングは、通常幅を持っているので、タイミングウィンドウと呼ぶことにする。 【0067】対象側のタイミングウィンドウ(A2)と、ノイズ側のタイミングウィンドウ(A1,A3)が重なっているときに、クロストークノイズによる遅延変動が発生する可能性がある。逆に、重なっていないときには、クロストークノイズによる遅延変動は発生しない。このように、ウィンドウの重なりを考慮してクロストークノイズ遅延値を算出すれば、無駄に大きな変動を考慮しなくてすむようになる。 【0068】図23、図24および図25は図22に示す第7実施例を説明するための図である。 【0069】図24に示されるように、対象側のタイミングウィンドウA2に対して、一方のノイズ側のタイミングウィンドウA1と重なりがなく、他方のノイズ側のタイミングウィンドウA3とは重なりがある場合、タイミングウィンドウA1からクロストークノイズの遅延変動は受けない。従って、他方のタイミングウィンドウA3だけを考えればよいので、カップリング容量が35fFであるとして、クロストークノイズ遅延値を計算することになる。すなわち、図25に示すグラフを用いて、最大で+80psとなり、最小で−80psとなるクロストークノイズ遅延値の変動を見込めばよいことになる。 【0070】図26は本発明に係る半導体集積回路の設計処理の第8実施例を示すフローチャートである。 【0071】図26と図22との比較から明らかなように、本第8実施例に係る半導体集積回路の設計方法は、図22に示す第7実施例に対してステップST80(ステップST81)が追加されている。 【0072】本第8実施例においては、上述した第6実施例および第7実施例と同様に、図16に示す第5実施例(或いは、前述した第1実施例〜第4実施例のいずれか)の設計方法により、一旦ブロックAの合成を行ってネットリストを生成する。これにより、駆動セルと遷移タイミングを求める(抽出する)ことができる。本第8実施例においては、この情報を基にクロストークノイズ遅延値を計算するのであるが、このときステップST80において、リピータを挿入すると遅延が改善するかどうかを判断する。ここで、リピータとは、配線途中に挿入するバッファセルを指し、鈍っている遷移波形を立たせることにより、配線遅延値およびクロストークノイズの減少の効果がある。なお、リピータを挿入すると、リピータセル自身の遅延時間は増加してしまうので、上記の効果(配線遅延値およびクロストークノイズの減少)とのトレードオフで挿入すべきか否かを決定する。 【0073】そして、ステップST80において、リピータ挿入すべきであると決まった配線は、ステップST81のリピータ挿入時のクロストークノイズ遅延情報からリピータ挿入されたことを想定したクロストークノイズ遅延値を求め、再度タイミング制約を生成して再合成を行う(ステップST15〜ST17)。本第8実施例によれば、リピータ挿入のレイアウトを完了する前に遅延値を予測することから、設計期間の短縮を図ることができる。 【0074】以上の説明では、一旦合成した後にリピータ挿入の判断をしているが、合成前に混雑度や隣接配線長、或いは、カップリング容量値等から、リピータ挿入するかどうかの判断をして最初の合成からリピータ挿入を想定したクロストークノイズ遅延値を用いることもできる。 【0075】上述した各実施例において、クロストークノイズの遅延値やノイズがないときの遅延値のグラフを用いた説明をしてきたが、グラフを用いないで抽出された容量値を用いたダイナミックシミュレータの結果を用いることもできる。また、遅延値を算出するグラフは、分かりやすくするために配線長やカップリング容量値のみの関数で説明したが、配線層や配線幅および配線間隔等にも依存した値を使用してもよい。 【0076】図27は本発明に係る半導体集積回路の設計プログラムを記録した媒体の例を説明するための図である。図27において、参照符号310は処理装置、320はプログラム(データ)提供者、そして、330は可搬型記憶媒体を示している。 【0077】上述した各実施例に係る半導体集積回路の設計方法は、例えば、図27に示すような処理装置310に対するプログラム(データ)として与えられ、処理装置310により実行される。処理装置310は、プロセッサを含む演算処理装置本体311、および、演算処理装置本体311に対してプログラム(データ)を与えたり或いは処理された結果を格納する処理装置側メモリ(例えば、RAM(Random Access Memory)やハードディスク)312等を備える。処理装置310に提供されたプログラム(データ)は、ローディングされて処理装置310のメインメモリ上で実行される。 【0078】プログラム(データ)提供者320は、プログラム(データ)を格納する手段(回線先メモリ:例えば、DASD(Direct Access Storage Device))321を有し、例えば、インターネット等の回線を介してプログラム(データ)を処理装置310に提供したり、或いは、CD−ROMや光ディスクまたはフロッピィディスク等の可搬型記憶媒体330を介して処理装置310に提供する。本発明に係る半導体集積回路の設計プログラムを記録した媒体は、上記の処理装置側メモリ312、回線先メモリ321、および、可搬型記憶媒体330等の様々なものを含むのはいうまでもない。 【0079】(付記1) 階層構造の半導体集積回路の論理情報を使用し、下位階層のタイミングの最適化を該下位階層と上位階層との境界のタイミング情報に基づいて行うプログラムされたコンピュータによって半導体集積回路の設計を行う装置であって、前記境界のタイミング情報には、前記上位階層のクロストークノイズによる遅延変動が含まれていることを特徴とする半導体集積回路の設計装置。 【0080】(付記2) 付記1に記載の半導体集積回路の設計装置において、前記半導体集積回路の論理情報は、論理記述言語で階層構造をもって書かれていることを特徴とする半導体集積回路の設計装置。 【0081】(付記3) 付記1に記載の半導体集積回路の設計装置において、前記上位階層のクロストークノイズによる遅延変動には、遅延の増加分が含まれていることを特徴とする半導体集積回路の設計装置。 【0082】(付記4) 付記1に記載の半導体集積回路の設計装置において、前記上位階層のクロストークノイズによる遅延変動には、遅延の減少分が含まれていることを特徴とする半導体集積回路の設計装置。 【0083】(付記5) 付記1に記載の半導体集積回路の設計装置において、前記上位階層のクロストークノイズによる遅延変動は、上位階層の配線を行う前に、予測される配線長に基づいて求められることを特徴とする半導体集積回路の設計装置。 【0084】(付記6) 付記1に記載の半導体集積回路の設計装置において、前記上位階層のクロストークノイズによる遅延変動は、上位階層の配線を行う前に、予測される配線の混雑度に基づいて求められることを特徴とする半導体集積回路の設計装置。 【0085】(付記7) 付記1に記載の半導体集積回路の設計装置において、前記上位階層のクロストークノイズによる遅延変動は、上位階層の配線を行い、特定の間隔を隔てて配線されている長さを計算し、該計算された長さに基づいて求められることを特徴とする半導体集積回路の設計装置。 【0086】(付記8) 付記1に記載の半導体集積回路の設計装置において、前記上位階層のクロストークノイズによる遅延変動は、上位階層の配線を行い、該配線の結果から配線相互のカップリング容量を抽出し、該抽出されたカップリング容量の値に基づいて求められることを特徴とする半導体集積回路の設計装置。 【0087】(付記9) 付記1〜8のいずれか1項に記載の半導体集積回路の設計装置において、前記上位階層のクロストークノイズによる遅延変動は、上位階層の配線を駆動する半導体素子の情報も含めて求められることを特徴とする半導体集積回路の設計装置。 【0088】(付記10) 付記1〜9のいずれか1項に記載の半導体集積回路の設計装置において、前記上位階層のクロストークノイズによる遅延変動は、上位階層の注目配線および該注目配線にクロストークノイズの影響を与える配線が遷移するタイミングの情報も含めて求められることを特徴とする半導体集積回路の設計装置。 【0089】(付記11) 付記1〜10のいずれか1項に記載の半導体集積回路の設計装置において、前記上位階層に対してクロストークを抑止するためのリピータ挿入を行うようになっており、且つ、前記上位階層のクロストークノイズによる遅延変動は、前記リピータ挿入のレイアウトを行う前に、挿入された場合を予測して求められることを特徴とする半導体集積回路の設計装置。 【0090】(付記12) 階層構造の半導体集積回路の論理情報を使用し、下位階層のタイミングの最適化を該下位階層と上位階層との境界のタイミング情報に基づいて半導体集積回路の設計を行う方法であって、前記境界のタイミング情報には、前記上位階層のクロストークノイズによる遅延変動が含まれていることを特徴とする半導体集積回路の設計方法。 【0091】(付記13) 付記12に記載の半導体集積回路の設計方法において、前記半導体集積回路の論理情報は、論理記述言語で階層構造をもって書かれていることを特徴とする半導体集積回路の設計方法。 【0092】(付記14) 付記12に記載の半導体集積回路の設計方法において、前記上位階層のクロストークノイズによる遅延変動には、遅延の増加分が含まれていることを特徴とする半導体集積回路の設計方法。 【0093】(付記15) 付記12に記載の半導体集積回路の設計方法において、前記上位階層のクロストークノイズによる遅延変動には、遅延の減少分が含まれていることを特徴とする半導体集積回路の設計方法。 【0094】(付記16) 付記12に記載の半導体集積回路の設計方法において、前記上位階層のクロストークノイズによる遅延変動は、上位階層の配線を行う前に、予測される配線長に基づいて求められることを特徴とする半導体集積回路の設計方法。 【0095】(付記17) 付記12に記載の半導体集積回路の設計方法において、前記上位階層のクロストークノイズによる遅延変動は、上位階層の配線を行う前に、予測される配線の混雑度に基づいて求められることを特徴とする半導体集積回路の設計方法。 【0096】(付記18) 付記12に記載の半導体集積回路の設計方法において、前記上位階層のクロストークノイズによる遅延変動は、上位階層の配線を行い、特定の間隔を隔てて配線されている長さを計算し、該計算された長さに基づいて求められることを特徴とする半導体集積回路の設計方法。 【0097】(付記19) 付記12に記載の半導体集積回路の設計方法において、前記上位階層のクロストークノイズによる遅延変動は、上位階層の配線を行い、該配線の結果から配線相互のカップリング容量を抽出し、該抽出されたカップリング容量の値に基づいて求められることを特徴とする半導体集積回路の設計方法。 【0098】(付記20) 付記12〜19のいずれか1項に記載の半導体集積回路の設計方法において、前記上位階層のクロストークノイズによる遅延変動は、上位階層の配線を駆動する半導体素子の情報も含めて求められることを特徴とする半導体集積回路の設計方法。 【0099】(付記21) 付記12〜20のいずれか1項に記載の半導体集積回路の設計方法において、前記上位階層のクロストークノイズによる遅延変動は、上位階層の注目配線および該注目配線にクロストークノイズの影響を与える配線が遷移するタイミングの情報も含めて求められることを特徴とする半導体集積回路の設計方法。 【0100】(付記22) 付記12〜21のいずれか1項に記載の半導体集積回路の設計方法において、前記上位階層に対してクロストークを抑止するためのリピータ挿入を行うようになっており、且つ、前記上位階層のクロストークノイズによる遅延変動は、前記リピータ挿入のレイアウトを行う前に、挿入された場合を予測して求められることを特徴とする半導体集積回路の設計方法。 【0101】(付記23) コンピュータによって実行させるプログラムを記録した媒体であって、該プログラムは、階層構造の半導体集積回路の論理情報を使用し、下位階層のタイミングの最適化を該下位階層と上位階層との境界のタイミング情報に基づいて半導体集積回路の設計を行い、前記境界のタイミング情報には、前記上位階層のクロストークノイズによる遅延変動を含ませることを特徴とする半導体集積回路の設計プログラムを記録した媒体。 【0102】(付記24) 付記23に記載の半導体集積回路の設計プログラムを記録した媒体において、前記半導体集積回路の論理情報を、論理記述言語で階層構造をもって書かいたことを特徴とする半導体集積回路の設計プログラムを記録した媒体。 【0103】(付記25) 付記23に記載の半導体集積回路の設計プログラムを記録した媒体において、前記上位階層のクロストークノイズによる遅延変動に対して、遅延の増加分を含めることを特徴とする半導体集積回路の設計プログラムを記録した媒体。 【0104】(付記26) 付記23に記載の半導体集積回路の設計プログラムを記録した媒体において、前記上位階層のクロストークノイズによる遅延変動に対して、遅延の減少分を含めることを特徴とする半導体集積回路の設計プログラムを記録した媒体。 【0105】(付記27) 付記23に記載の半導体集積回路の設計プログラムを記録した媒体において、前記上位階層のクロストークノイズによる遅延変動を、上位階層の配線を行わせる前に、予測される配線長に基づいて求めさせることを特徴とする半導体集積回路の設計プログラムを記録した媒体。 【0106】(付記28) 付記23に記載の半導体集積回路の設計プログラムを記録した媒体において、前記上位階層のクロストークノイズによる遅延変動を、上位階層の配線を行わせる前に、予測される配線の混雑度に基づいて求めさせることを特徴とする半導体集積回路の設計プログラムを記録した媒体。 【0107】(付記29) 付記23に記載の半導体集積回路の設計プログラムを記録した媒体において、前記上位階層のクロストークノイズによる遅延変動を、上位階層の配線を行わせ、特定の間隔を隔てて配線されている長さを計算させ、該計算された長さに基づいて求めさせることを特徴とする半導体集積回路の設計プログラムを記録した媒体。 【0108】(付記30) 付記23に記載の半導体集積回路の設計プログラムを記録した媒体において、前記上位階層のクロストークノイズによる遅延変動を、上位階層の配線を行わせ、該配線の結果から配線相互のカップリング容量を抽出させ、該抽出されたカップリング容量の値に基づいて求めさせることを特徴とする半導体集積回路の設計プログラムを記録した媒体。 【0109】(付記31) 付記23〜30のいずれか1項に記載の半導体集積回路の設計プログラムを記録した媒体において、前記上位階層のクロストークノイズによる遅延変動を、上位階層の配線を駆動する半導体素子の情報も含めて求めさせることを特徴とする半導体集積回路の設計プログラムを記録した媒体。 【0110】(付記32) 付記23〜31のいずれか1項に記載の半導体集積回路の設計プログラムを記録した媒体において、前記上位階層のクロストークノイズによる遅延変動を、上位階層の注目配線および該注目配線にクロストークノイズの影響を与える配線が遷移するタイミングの情報も含めて求めさせることを特徴とする半導体集積回路の設計プログラムを記録した媒体。 【0111】(付記33) 付記23〜32のいずれか1項に記載の半導体集積回路の設計プログラムを記録した媒体において、前記上位階層に対してクロストークを抑止するためのリピータ挿入を行わせ、且つ、前記上位階層のクロストークノイズによる遅延変動を、前記リピータ挿入のレイアウトを行わせる前に、挿入された場合を予測して求めさせることを特徴とする半導体集積回路の設計プログラムを記録した媒体。 【0112】 【発明の効果】以上、詳述したように、本発明によれば、クロストークノイズによる遅延変動を考慮したタイミング制約で論理情報を最適化できるので、ブロック間のタイミング仕様を満たすような半導体集積回路の設計を容易に行うことができる。
|
| 【出願人】 |
【識別番号】000005223 【氏名又は名称】富士通株式会社 【住所又は居所】神奈川県川崎市中原区上小田中4丁目1番1号
|
| 【出願日】 |
平成14年1月24日(2002.1.24) |
| 【代理人】 |
【識別番号】100077517 【弁理士】 【氏名又は名称】石田 敬 (外4名)
|
| 【公開番号】 |
特開2003−216673(P2003−216673A) |
| 【公開日】 |
平成15年7月31日(2003.7.31) |
| 【出願番号】 |
特願2002−15501(P2002−15501) |
|