| 【発明の名称】 |
回路解析装置 |
| 【発明者】 |
【氏名】二ノ宮 章弘
|
| 【要約】 |
【課題】LSI回路設計においてLSI回路の中のスルー遅延が大きい箇所及びスルー遅延の増幅率の高い箇所を解析し、LSI動作時の不必要な消費電力の低減を図る。
【解決手段】ネットリストを読み込み、セルの入出力端子においてスルー遅延の計算値を算出して出力するスルー遅延計算手段からの出力データを利用して、指定値よりも、スルー遅延の計算値が大きい端子を検索し、該端子及び該計算値に係るデータを出力する。 |
【特許請求の範囲】
【請求項1】 ネットリストを読み込み、セルの入出力端子においてスルー遅延の計算値を算出して出力するスルー遅延計算手段からの出力データを利用して、第1の指定値よりも、スルー遅延の計算値が大きい端子を検索し、該端子及び該計算値に係るデータを出力する、スルー遅延解析手段。 【請求項2】 ネットリストを読み込み、セルの入出力端子においてスルー遅延の計算値を算出して出力するスルー遅延計算手段からの出力データを利用して、(1)セルにおいて、出力端子のスルー遅延の計算値が、入力端子のスルー遅延の計算値よりも大きい、(2)セルにおいて、出力端子のスルー遅延の計算値が、入力端子のスルー遅延の計算値よりも大きく、且つその差が第2の指定値よりも大きい、又は(3)セルにおいて、出力端子のスルー遅延の計算値が、入力端子のスルー遅延の計算値よりも大きく、且つその倍率が第3の指定値よりも大きいという、上記(1)、(2)若しくは(3)のいずれかの条件を満たすセル及びその入力端子と出力端子を検索し、該端子及び該計算値に係るデータを出力する、スルー遅延解析手段。 【請求項3】 請求項1の出力の端子データのうちの任意の1つを基準にし、ネットリストを読み込み、更にネットリストを上流方向に向かってトレースし、その上流において請求項2の出力に該当する出力端子及び入力端子に係るデータを検索して、該端子に係るデータを出力する、ネットリストトレース手段。 【請求項4】 ネットリストを読み込み、セルの入出力端子においてスルー遅延の計算値を算出して出力するスルー遅延計算手段において、各端子におけるスルー遅延の計算値を算出する際、その端子がループ回路の一部であると判定したならば、ループ回路を一周したところでのスルー遅延の計算値を再算出し、再算出時のスルー遅延の計算値が増加しているならば、該ループ回路、該端子及び該計算値に係るデータを出力する、ループ回路遅延計算手段。
|
【発明の詳細な説明】【0001】 【発明の属する技術分野】本発明は、LSI(Large Scale Integration;大規模集積回路)設計における回路及びレイアウト検証に係る装置に関する。 【0002】 【従来の技術】LSI回路設計においては、不必要な電力消費を避ける設計が重要な要件となる。そこでは、従来、消費電力見積専用のソフトウエアを利用することが多い。例えば、ネットリストなどに、適切なシミュレーションパターンを数多く入力してシミュレーションを行う。該シミュレーションでは、例えば、各ノードのトグル回数をカウントし電力消費が異常に多い箇所の特定を行っている。 【0003】従って、シミュレーションパターン(の数や内容)に大きく依存することになる。しかしながら、シミュレーションパターンの数や内容にも限界があり、不具合箇所(異常電力消費箇所)を十分には抽出しきれていないのが現状である。 【0004】 【発明が解決しようとする課題】本発明は、LSI回路設計において、LSI回路の中のスルー遅延が大きい箇所及びスルー遅延の増幅率の高い箇所をスタティック(静的)に解析し、LSI動作時の不必要な消費電力の低減を図ることを目的とする。 【0005】 【課題を解決するための手段】本発明は、上記目標を達成するためになされたものである。本発明に係る請求項1に記載のスルー遅延解析手段は、ネットリストを読み込み、セルの入出力端子においてスルー遅延の計算値を算出して出力するスルー遅延計算手段からの出力データを利用して、第1の指定値よりも、スルー遅延の計算値が大きい端子を検索し、該端子及び該計算値に係るデータを出力する。 【0006】本発明に係る請求項2に記載のスルー遅延解析手段は、ネットリストを読み込み、セルの入出力端子においてスルー遅延の計算値を算出して出力するスルー遅延計算手段からの出力データを利用して、(1)セルにおいて、出力端子のスルー遅延の計算値が、入力端子のスルー遅延の計算値よりも大きい、(2)セルにおいて、出力端子のスルー遅延の計算値が、入力端子のスルー遅延の計算値よりも大きく、且つその差が第2の指定値よりも大きい、又は(3)セルにおいて、出力端子のスルー遅延の計算値が、入力端子のスルー遅延の計算値よりも大きく、且つその倍率が第3の指定値よりも大きいという、上記(1)、(2)若しくは(3)のいずれかの条件を満たすセル及びその入力端子と出力端子を検索し、該端子及び該計算値に係るデータを出力する。 【0007】本発明に係る請求項3に記載のネットリストトレース手段は、請求項1の出力の端子データのうちの任意の1つを基準にし、ネットリストを読み込み、更にネットリストを上流方向に向かってトレースし、その上流において請求項2の出力に該当する出力端子及び入力端子に係るデータを検索して、該端子に係るデータを出力する。 【0008】本発明に係る請求項4に記載のループ回路遅延計算手段は、ネットリストを読み込み、セルの入出力端子においてスルー遅延の計算値を算出して出力するスルー遅延計算手段において、各端子におけるスルー遅延の計算値を算出する際、その端子がループ回路の一部であると判定したならば、ループ回路を一周したところでのスルー遅延の計算値を再算出し、再算出時のスルー遅延の計算値が増加しているならば、該ループ回路、該端子及び該計算値に係るデータを出力する。 【0009】 【発明の実施の形態】以下、添付の図面を参照して本発明に係る好適な実施の形態を説明する。 【0010】図8は、本発明を実現するシステム装置のハードウエア構成の一形態を示す。該装置は、LSI設計におけるCADシステムを搭載した、例えばUNIX(登録商標)計算機52である。図8において、本発明を実現するシステムに係るソフトウエア(プログラムコード)は、磁気ディスク54に格納されており、システムユーザの要求に応じてメモリ56に搭載され、外部から入力される制御コマンド58やマウス装置60の動作指示に従い稼動し、所定の情報をデイスプレイ装置64に表示する。後で説明する結果出力(出力1、出力2、出力3及び出力4)ファイル、ネットリストファイル、スルー遅延ライブラリなどは、磁気ディスク54に保持されており、本発明を実現するシステムに係るソフトウエア(プログラムコード)の要求、又はシステムユーザの要求に応じて、メモリ56に搭載され、若しくはメモリ56にて変更され、再び磁気ディスク54に保持される。 【0011】図1は、本発明に係る好適な実施の形態の、全体の構成及び動作フローの概略を示す。図1における、ネットリスト2、スルー遅延ライブラリ4、結果出力ファイル6及び結果出力ファイル(ソート後)8は、磁気ディスク54にて記録されるコンピュータ・ファイルである。また、図1の、入力手段12、スルー遅延計算手段14、ループ回路遅延計算手段14’、スルー遅延解析手段16、ネットリストトレース手段18及びソート手段20は、図8のメモリ56上に適切なプログラムコードが搭載されCPU(中央処理装置)70により制御・動作されることによって、実現される。 【0012】続いて、図1の全体の構成及び動作フローの概略を説明する。 【0013】まず、入力手段12が、スルー遅延ライブラリ4及びネットリスト2を読み込む。次に、スルー遅延計算手段14は、入力手段12で読み込んだスルー遅延ライブラリ14を基に、同じくで入力手段12で読み込んだネットリスト2を構成する複数のセルの、夫々に備わる1つ又は複数の端子において、スルー遅延の値を計算する。 【0014】上述したスルー遅延値の計算は、公知の従来技術である。また、ネットリスト2は、容量・抵抗付きネットリスト(例えば、SPICEネットリスト)でもかまわない。寧ろ容量・抵抗付きネットリストの方が、本発明に係る処理によりより正確に検証が行える。 【0015】(第1の実施の形態);スルー遅延解析手段16においては、先ず、上記スルー遅延計算手段14にて算出されたスルー遅延値が備わる端子から、そのスルー遅延値(計算値)が指定値よりも大きいものを検索する。検索結果は、結果出力ファイル6に「出力1」として出力される。 【0016】(第2の実施の形態);スルー遅延解析手段16では、更に、上記スルー遅延計算手段14にて算出された(スルー遅延値が備わる)端子に係るデータ群において、各セルの出力端子のスルー遅延値と入力端子のスルー遅延値に着目する。 ■各セルの出力端子のスルー遅延値が入力端子のスルー遅延値よりも大きいもの、■各セルの出力端子のスルー遅延値が入力端子のスルー遅延値よりも大きく、然もその差が指定値より大きいもの、■各セルの出力端子のスルー遅延値が入力端子のスルー遅延値よりも大きく、然もその倍率が指定値より大きいものを検索する。検索結果は、結果出力ファイル6に「出力2」として出力される。 【0017】(第3の実施の形態);その後のネットリストトレース手段18では、出力1で検出された箇所から、ネットリスト2を上流方向に向かってトレースし、その上流において出力2に該当する箇所を検出する。検出結果は、結果出力ファイル6に「出力3」として出力される。 【0018】(第4の実施の形態);公知の従来技術であるスルー遅延計算手段14に対して、次のような手段(ループ回路遅延計算手段14’)の機能を付加する。即ち、各端子におけるスルー遅延値を計算する際、その端子がループ回路(順序回路も含む)の一部であるか否かをまず判断する。ループ回路であれば、ループ回路を1周したところでのスルー遅延値を再計算し、スルー遅延値が増加しているならば、その端子を検出する。検索結果は、結果出力ファイル6に「出力4」として出力される。 【0019】ソート手段20により、出力1、出力2、出力3及び出力4の結果を、夫々適宜ソートして(並び換えをして)、結果は結果出力ファイル(ソート後)8に出力する。 【0020】≪第1の実施の形態≫図2は、本発明の第1の実施の形態である、スルー遅延解析手段14の動作の、主要部を示すフローチャートである。 【0021】ステップS02;スルー遅延計算手段14にて算出されたスルー遅延値が備わる端子において、そのスルー遅延値(計算値)が指定値Kより大きいか否かを判定する。指定値Kは、予め与えておいてもよく、計算機52のマウス装置60等により処理前に入力されてもよい。大きければ、ステップS04に進む。 【0022】ステップS04;「出力1」を出力する。出力1の内容の例は、図6(1)に示される。即ち、・端子ID(識別子)、・指定値K、・計算値のデータを備える。ここで「端子ID」は、端子の識別子を示す(以下、同様である)。 【0023】上記フローチャートに示される動作が、スルー遅延値が備わる端子全部に対してなされることになる。 【0024】≪第2の実施の形態≫図3は、本発明の第2の実施の形態である、スルー遅延解析手段14の動作の、主要部を示すフローチャートである。 【0025】ステップS12;各セルの出力端子のスルー遅延値(ots)と入力端子のスルー遅延値(its)に着目し、otsがitsより大きいか否かを判断する。大きい場合のみ、ステップS14に進む。 【0026】ステップS14;「理由■あり」の内容を示すデータを、一時記憶させる。「理由■あり」とは、出力2に出力する理由がある(理由は■である)ことを示す、一時記憶データである。 【0027】ステップS16;otsがitsより大きく、然もその差が差指定値(K1)より大きいか、を判定する。即ち次の数1が、真か偽か、判定する。 【数1】ots − its > K1差指定値K1は、予め与えておいてもよく、計算機52のマウス装置60等により処理前に入力されてもよい。大きい場合(真の場合)のみ、ステップS18に進む。 【0028】ステップS18;「理由■あり」の内容を示すデータを、一時記憶させる。「理由■あり」とは、出力2に出力する理由がある(理由は■である)ことを示す、一時記憶データである。 【0029】ステップS20;otsがitsより大きく、然もその倍率が倍率指定値(K2)より大きいか、を判定する。即ち次の数2が、真か偽か、判定する。 【数2】(ots)/(its)> K2倍率指定値K2は、予め与えておいてもよく、計算機52のマウス装置60等により処理前に入力されてもよい。大きい場合(真の場合)のみ、ステップS22に進む。 【0030】ステップS22;「理由■あり」の内容を示すデータを、一時記憶させる。「理由■あり」とは、出力2に出力する理由がある(理由は■である)ことを示す、一時記憶データである。 【0031】ステップS24;「理由■」、「理由■」、「理由■」の何れかが、記録(一時記憶)されているか、判定する。何れかが一時記憶されている場合のみ、ステップS26に進む。 【0032】ステップS26;「出力2」を出力する。出力2の内容の例は、図6(2)に示される。即ち、・出力端子ID、・入力端子ID、・出力端子スルー遅延値(ots)、・入力端子スルー遅延値(its)、・理由■フラグ、・理由■フラグ、・理由■フラグ、・差、・差指定値K1、・倍率、・倍率指定値K2のデータを備える。ここで、「理由■フラグ」は「理由■あり」と一時記憶されたならば、立てられるフラグである(他も、同様である)。「出力2」出力後、「理由■」、「理由■」、「理由■」の全ての一時記憶が、クリアされる。 【0033】上記フローチャートに示される動作が、ネットリスト2に含まれるセル全部に対してなされることになる。 【0034】≪第3の実施の形態≫図4は、本発明の第3の実施の形態である、ネットリストトレース手段18の動作の、主要部を示すフローチャートである。 【0035】ステップS32;出力1で検出された箇所に係るデータを読み込み、その箇所からネットリスト2を上流方向に向かってトレースする。トレースしつつ、上記の出力2に該当する箇所を検出する。従ってトレースの途中では、結果出力ファイル6の出力2のデータが、適宜参照される。 【0036】ステップS34; 出力2に該当する箇所があれば、ステップS36に進む。 【0037】ステップS36;「出力3」を出力する。出力3の内容の例は、図6(3)に示される。即ち、・端子ID、・出力端子ID、・入力端子IDのデータを備える。上記の「端子ID」は「出力1」からのデータ、「出力端子ID」及び「入力端子ID」は「出力2」からのデータである。 【0038】ステップS38;更に上流をトレースする。そして、出力2に該当する箇所があれるか否かが再び判定される(ステップS34)。出力2に該当する箇所が無くなるまで、トレースと出力3の出力が繰り返される。 【0039】上記フローチャートに示される動作が、出力1で検出された箇所に係るデータ全部に対してなされることになる。 【0040】第3の実施の形態により、スルー遅延値の大きい端子と、その原因であると推定され得る上流のセルに係る入出力端子とを、同時に把握することができる。回路設計見直しのための基礎資料とすることができる。 【0041】≪第4の実施の形態≫図5は、本発明の第4の実施の形態である、ループ回路遅延計算手段14’の動作の、主要部を示すフローチャートである。 【0042】ステップS42;ネットリスト2のある箇所(端子)のスルー遅延を計算する。このステップは、従来技術であるスルー遅延計算手段14の動作の一部である。 【0043】ステップS44;その端子がループ回路(順序回路も含む)の一部であるか否かを判定する。ループ回路であれば、ステップS46に進む。 【0044】ステップS46;ループ回路を1周させ、同じ箇所(端子)でのスルー遅延値を再計算する。 【0045】ステップS48;ステップS42でのスルー遅延値(計算値(1))と、ステップS46でのスルー遅延値(再計算値、つまり計算値(2))とを、比較する。計算値(2)が計算値(1)より大きければ、ステップS50に進む。 【0046】ステップS50;「出力4」を出力する。出力4の内容の例は、図6(4)に示される。即ち、・ループ回路ID、・端子ID、・計算値(1)、・計算値(2) のデータを備える。 【0047】上記フローチャートに示される動作が、ネットリスト2に含まれる端子の全部に対してなされることになる。 【0048】≪結果出力(ソート後)ファイル8について≫結果出力(ソート後)ファイル8は、様々なデータ表示において利用することができる。出力3のデータを項ベキ順に並び換え、ディスプレイ装置64に表示させた例を、図7に示す。 【0049】≪回路図との表示について≫ネットリスト2に係る回路図をディスプレイ装置64に表示させる際、結果出力ファイル6及び結果出力(ソート後)ファイル8があれば、第1の実施の形態、第2の実施の形態、第4実施の形態などで検出される、消費電力が極端に大きいと思われるポイントを、回路図に重ねて表示できる。また、第3の実施の形態で検出される、端子と上流にあるセルに係る入出力端子とを、回路図に重ねて表示できる。このことにより、回路設計見直しのための当たりを付けることができる。 【0050】 【発明の効果】以上説明したように、本発明では、回路のスルー遅延が大きい箇所(スルー遅延の増幅率の高い箇所)をスタティック(静的)に解析でき発見できるため、従来技術のようにシミュレーションパターンに依存することなく消費電力の低減を図ることが出来る。
|
| 【出願人】 |
【識別番号】000006747 【氏名又は名称】株式会社リコー
|
| 【出願日】 |
平成12年9月27日(2000.9.27) |
| 【代理人】 |
【識別番号】100062144 【弁理士】 【氏名又は名称】青山 葆 (外1名)
|
| 【公開番号】 |
特開2002−108966(P2002−108966A) |
| 【公開日】 |
平成14年4月12日(2002.4.12) |
| 【出願番号】 |
特願2000−294566(P2000−294566) |
|