[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JPH09259151A - 回路シミュレーション方法 - Google Patents

回路シミュレーション方法

Info

Publication number
JPH09259151A
JPH09259151A JP8062276A JP6227696A JPH09259151A JP H09259151 A JPH09259151 A JP H09259151A JP 8062276 A JP8062276 A JP 8062276A JP 6227696 A JP6227696 A JP 6227696A JP H09259151 A JPH09259151 A JP H09259151A
Authority
JP
Japan
Prior art keywords
group
depth
groups
fan
circuit simulation
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.)
Withdrawn
Application number
JP8062276A
Other languages
English (en)
Inventor
Hisanori Fujisawa
久典 藤澤
Tetsuo Kage
哲郎 鹿毛
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 JP8062276A priority Critical patent/JPH09259151A/ja
Publication of JPH09259151A publication Critical patent/JPH09259151A/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】回路シミュレーションの対象である全体回路を
部分回路に分割し、ファンイン側の部分回路の回路シミ
ュレーション結果を使用して、ファンイン側の部分回路
から逐次的に回路シミュレーションを行う回路シミュレ
ーション方法に関し、少ないメモリ使用量で高精度の回
路シミュレーションを高速に行うことができるようにす
る。 【解決手段】全体回路を拡大グループG1〜G4に分割
し、ファンイン側のグループ(例えば、グループA、
D)の回路シミュレーション結果をファンアウト側のグ
ループ(例えば、グループB、E)の入力データとして
取り扱い、1個の拡大グループ内のグループごとに、そ
の出力に影響を及ぼすと考えられるファンアウト側のグ
ループを含めて回路シミュレーションを行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、集積回路の設計を
行う場合に使用される回路シミュレーション方法、より
詳しくは、回路シミュレーションの対象である全体回路
を部分回路に分割し、ファンイン側(信号伝搬の上流
側)の部分回路の回路シミュレーション結果を使用し
て、ファンイン側の部分回路から逐次的に回路シミュレ
ーションを行う回路シミュレーション方法に関する。
【0002】
【従来の技術】従来、この種の回路シミュレーション方
法として、回路シミュレーションの対象である全体回路
を部分回路に分割した場合、部分回路の出力端子に接続
されている素子は無視するか、あるいは、部分回路の出
力端子は定電圧源に接続されているものとして取り扱う
回路シミュレーション方法が知られている。
【0003】
【発明が解決しようとする課題】このような従来の回路
シミュレーション方法においては、部分回路の出力端子
が接続されているファンアウト側(信号伝搬の下流側)
の部分回路による影響が考慮されていないので、高精度
な回路シミュレーションを行うことができないという問
題点があった。
【0004】なお、回路シミュレーションの対象である
全体回路を部分回路に分割しないで回路シミュレーショ
ンを行う場合には、高精度な回路シミュレーションを行
うことができるが、このようにする場合には、メモリ使
用量が増大し、メモリを増設しなければならないという
問題点がある。
【0005】本発明は、かかる点に鑑み、少ないメモリ
使用量で高精度の回路シミュレーションを高速に行うこ
とができるようにした回路シミュレーション方法を提供
することを目的とする。
【0006】
【課題を解決するための手段】本発明中、第1の発明の
回路シミュレーション方法(請求項1記載の回路シミュ
レーション方法)は、回路シミュレーションの対象であ
る全体回路を複数のグループに分割する工程と、ファン
イン側のグループの回路シミュレーション結果をファン
アウト側のグループの入力データとして取り扱い、ファ
ンアウト側に、同一のグループを、出力に影響を与える
と考えられるグループとして有する複数のグループは、
これら複数のグループごとに、その他のグループは、グ
ループごとに、それぞれ、その出力に影響を及ぼすと考
えられるファンアウト側のグループを含めて回路シミュ
レーションを行う工程とを含んでいるというものであ
る。
【0007】第1の発明の回路シミュレーション方法に
よれば、ファンイン側のグループの回路シミュレーショ
ン結果をファンアウト側のグループの入力データとして
取り扱い、ファンアウト側に、同一のグループを、出力
に影響を与えると考えられるグループとして有する複数
のグループは、これら複数のグループごとに、その他の
グループは、グループごとに、それぞれ、その出力に影
響を及ぼすと考えられるファンアウト側のグループを含
めて回路シミュレーションを行うとしているので、少な
いメモリ使用量で高精度の回路シミュレーションを高速
に行うことができる。
【0008】また、第2の発明の回路シミュレーション
方法(請求項2記載の回路シミュレーション方法)は、
第1の発明の回路シミュレーション方法において、回路
シミュレーションの対象である全体回路を複数のグルー
プに分割する工程は、全体回路を電源端子及び結合の弱
い箇所で切り離して複数のブロックに分割する工程と、
ブロック間の信号の流れを調べ、信号がループしている
複数のブロックが存在する場合には、これら複数のブロ
ックをまとめて1個のグループとし、その他のブロック
をそれぞれ1個のグループとし、信号がループしている
複数のブロックが存在しない場合には、各ブロックをそ
れぞれ1個のグループとする工程とを含んでいるという
ものである。
【0009】第2の発明の回路シミュレーション方法に
よれば、好適なグループを効率的に抽出し、少ないメモ
リ使用量で高精度の回路シミュレーションを高速に行う
ことができる。
【0010】また、第3の発明の回路シミュレーション
方法(請求項3記載の回路シミュレーション方法)は、
第1又は第2の発明の回路シミュレーション方法におい
て、ファンイン側のグループの回路シミュレーション結
果をファンアウト側のグループの入力データとして取り
扱い、ファンアウト側に、同一のグループを、出力に影
響を与えると考えられるグループとして有する複数のグ
ループは、これら複数のグループごとに、その他のグル
ープは、グループごとに、それぞれ、その出力に影響を
及ぼすと考えられるファンアウト側のグループを含めて
回路シミュレーションを行う工程は、各グループごと
に、その出力に影響を及ぼすと考えられるグループを有
効周辺グループとして抽出する工程と、同一のグループ
をファンアウト側の有効周辺グループとする複数のグル
ープが存在する場合には、これら複数のグループをまと
めて1個の拡大グループとし、その他のグループをそれ
ぞれ1個の拡大グループとし、同一のグループをファン
アウト側の有効周辺グループとする複数のグループが存
在しない場合には、各グループをそれぞれ1個の拡大グ
ループとする工程と、1個の拡大グループ内のグループ
ごとに、かつ、ファンイン側のグループから順に、拡大
グループ内のグループのファンアウト側の有効周辺グル
ープを含めて回路シミュレーションを行う工程とを含ん
でいるというものである。
【0011】第3の発明の回路シミュレーション方法に
よれば、拡大グループごとの回路シミュレーションを効
率的に行い、少ないメモリ使用量で高精度の回路シミュ
レーションを高速に行うことができる。
【0012】また、第4の発明の回路シミュレーション
方法(請求項4記載の回路シミュレーション方法)は、
第3の発明の回路シミュレーション方法において、各グ
ループごとに、その出力に影響を及ぼすと考えられるグ
ループを有効周辺グループとして抽出する工程は、グル
ープを1個ずつ対象グループとして選択し、対象グルー
プから他のグループまでのグループ間を結ぶパスをたど
り、順方向の信号の流れをもつパスの数を数え、その数
を対象グループに対する他のグループの深度とし、この
深度が予め指定した深度よりも小さいグループを対象グ
ループの有効周辺グループとして抽出する工程を含んで
いるというものである。
【0013】第4の発明の回路シミュレーション方法に
よれば、好適な有効周辺グループを効率的に抽出し、少
ないメモリ使用量で高精度の回路シミュレーションを高
速に行うことができる。
【0014】また、第5の発明の回路シミュレーション
方法(請求項5記載の回路シミュレーション方法)は、
回路シミュレーションに必要な全体回路のデータを仮想
メモリ装置に格納し、この仮想メモリ装置から回路シミ
ュレーションに必要なグループのデータを実メモリ装置
に読み込み、この実メモリ装置に読み込まれたグループ
のデータを使用した回路シミュレーションに必要な演算
を演算装置で行うことにより、第1、第2、第3又は第
4の発明の回路シミュレーション方法を行うというもの
である。
【0015】第5の発明の回路シミュレーション方法に
よれば、特別な回路シミュレーション装置を必要とせ
ず、既存の回路シミュレーション装置を使用して、第
1、第2、第3又は第4の発明の回路シミュレーション
方法を実行することができる。
【0016】
【発明の実施の形態】図1は、本発明の実施の一形態を
示すフローチャートである。即ち、本発明の実施の一形
態においては、まず、回路シミュレーションの対象とす
る全体回路を電源端子及び結合の弱い箇所で切り離して
ブロックに分割する(処理S1)。
【0017】たとえば、図2において、1は回路シミュ
レーションの対象とする全体回路を示しているが、この
全体回路1を、電源端子及び結合の弱い箇所で切り離し
て、たとえば、ブロックa〜iに分割する。
【0018】次に、ブロック間の信号の流れを調べ(処
理S2)、信号がループしている複数のブロックが存在
する場合には、信号がループしている複数のブロックを
まとめて1個のグループとし、その他のブロックをそれ
ぞれ1個のグループとし、信号がループしている複数の
ブロックが存在しない場合には、各ブロックをそれぞれ
1個のグループとする(処理S3)。
【0019】たとえば、図2において、4個のブロック
e〜hは、信号がループしているブロックであるから、
これら4個のブロックe〜hをまとめて1つのグループ
Eとし、その他のブロックa、b、c、d、iをそれぞ
れ1個のグループA、B、C、D、Fとする。
【0020】次に、各グループごとに、グループの出力
に影響を及ぼすと考えられるグループを有効周辺グルー
プとして抽出し(処理S4)、更に、同一のグループを
ファンアウト側の有効周辺グループとする複数のグルー
プが存在する場合には、これら複数のグループをまとめ
て1個の拡大グループとし、その他のグループをそれぞ
れ1個の拡大グループとし、同一のグループをファンア
ウト側の有効周辺グループとする複数のグループが存在
しない場合には、各グループをそれぞれ1個の拡大グル
ープとする(処理S5)。
【0021】ここに、図3は、有効周辺グループおよび
拡大グループの抽出アルゴリズムを示すフローチャート
である。
【0022】即ち、有効周辺グループおよび拡大グルー
プを抽出する場合には、グループの中から1つのグルー
プを対象グループとして選択し(処理P1)、対象グル
ープの隣接グループを検索する(処理P2)。なお、処
理P2においては、後述するように、抽出された有効周
辺グループに隣接するグループの検索も行われる。
【0023】ここに、検索の結果、隣接グループが1個
の場合には、その隣接グループを選択し(処理P4)、
その選択グループの対象グループに対する深度を求める
(処理P5)。
【0024】これに対して、検索の結果、隣接グループ
が複数個ある場合には、1つの隣接グループを選択し
て、残りの隣接グループをスタックに積み(処理P
4)、選択した隣接グループの対象グループに対する深
度を求める(処理P5)。
【0025】また、検索の結果、隣接グループが存在し
ない場合には、スタックから1つのグループを抽出し
(処理P3)、そのグループの深度を求める(処理P
5)。なお、スタックにグループが積まれていない場合
には、隣接グループを検索しているグループに対する処
理を終了して後述する処理P9に移行する。
【0026】選択された隣接グループの深度は、図4に
示すように、ファンアウト深度と、ファンイン深度とで
表わすものとする。
【0027】ここに、対象グループのファンアウト深度
およびファンイン深度は0とし、対象グループまたは有
効周辺グループの隣接グループの深度は、その隣接グル
ープの選択の元となったグループ(以下、親グループと
いう)に対してファンアウトグループであれば、親グル
ープのファンアウト深度に1を足し、ファンイングルー
プであれば、親グループのファンイン深度から1を引く
ことにより求めるものとする。
【0028】そして、処理P5で求めた深度が予め設定
した規準外の場合には、この隣接グループに対する処理
を終了し、新たにスタックから隣接グループを1つ抽出
して(処理P3)、そのグループの深度を求める(処理
P5)。
【0029】これに対して、処理P5で求めた深度が予
め設定した規準内の深度である場合には、この隣接グル
ープが対象グループに関して過去にパス検索を実行した
か否か、即ち、対象グループに対する深度が既に求めら
れているものであるか否かを判断する(処理P6)。
【0030】判断の結果、はじめてパス検索を実行した
もの、即ち、深度が未定のものである場合には、処理P
5で求めた深度をその隣接グループの深度として決定
し、その隣接グループを対象グループの有効周辺グルー
プとし(処理P8)、処理P2に戻り、有効周辺グルー
プに対する隣接グループを検索して、これまでの処理を
繰り返す。
【0031】他方、処理P6において、既にパス検索を
実行した隣接グループであることが判明した場合には、
既に求めたファンアウト深度と新たに求めたファンアウ
ト深度との比較を行い、それらが等しいか、新たに求め
たファンアウト深度の方が大きい場合には、その隣接グ
ループに対する処理を終了し(処理P7)、新たにスタ
ックから隣接グループを1つ抽出し(処理P3)、この
隣接グループについて、深度を求める(処理P5)。
【0032】これに対して、処理P7において、新しく
求めたファンアウト深度の方が小さいことが判明した場
合には、新しいファンアウト深度を、そのグループのフ
ァンアウト深度とし(処理P8)、処理P2に戻り、そ
の隣接グループに対する隣接グループを検索して、これ
までの処理を繰り返す。
【0033】そして、処理P3において、スタックにグ
ループが積まれていない場合には、対象グループに対す
る処理を終了し、対象グループおよび対象グループと同
じ深度のグループとをまとめて拡大グループとする(処
理P9)。
【0034】ここに、図5〜図10は、図3に示す有効
周辺グループおよび拡大グループの抽出アルゴリズムを
説明するための図であり、図2に示すグループA〜Fに
ついて、ファンアウト深度が1以下、ファンアウト深度
とファンイン深度の合計が0以上の場合を有効周辺グル
ープ抽出の規準とし、ファンアウト深度とファンイン深
度の合計が0の場合を拡大グループの規準とした場合を
例にしている。
【0035】即ち、有効周辺グループおよび拡大グルー
プを抽出する場合には、まず、図5に示すように、たと
えば、グループAを対象グループとして選択し(処理P
1)、グループAの深度を(0、0)に設定する。
【0036】次に、グループAの隣接グループを検索す
る(処理P2)。この場合、隣接グループとしてグルー
プB、Eが存在するので、たとえば、グループBを選択
し、グループEをスタックに積み(処理P4)、グルー
プBの深度を求める(処理P5)。
【0037】グループBは、親グループであるグループ
Aのファンアウトグループであるから、その深度は
(1、0)となるが、深度(1、0)は有効周辺グルー
プ抽出の規準内の深度であり、かつ、グループBは対象
グループであるグループAに関して過去にパス検索を実
行していないので、グループBをグループAの有効周辺
グループとする(処理P8)。
【0038】次に、グループBの隣接グループを検索す
る(処理P2)。この場合、隣接グループとしてグルー
プA、Cが存在するので、たとえば、グループAを選択
し、グループCをスタックに積み(処理P4)、グルー
プAの深度を求める(処理P5)。
【0039】この場合、グループAは、親グループであ
るグループBのファンイングループであるから、その深
度は(1、−1)となり、深度(1、−1)は有効周辺
グループ抽出の基準内の深度であるが、ファンアウト深
度は0から1に変化しており、新ファンアウト深度>旧
ファンアウト深度となるので、グループAについての処
理を終了してスタックからグループCを抽出し(処理P
3)、グループCの深度を求める(処理P5)。
【0040】グループCは、親グループであるグループ
Bのファンアウトグループであるから、その深度は
(2、0)となるが、深度(2、0)は有効周辺グルー
プ抽出の規準外の深度であるから、グループCについて
の処理を終了してスタックからグループEを抽出し(処
理P3)、グループEの深度を求める(処理P5)。
【0041】グループEは、親グループであるグループ
Aのファンアウトグループであるから、その深度は
(1、0)となるが、深度(1、0)は有効周辺グルー
プ抽出の規準内の深度であり、かつ、グループEは対象
グループであるグループAに関して過去にパス検索を実
行していないので、グループEをグループAの有効周辺
グループとする(処理P8)。
【0042】次に、グループEの隣接グループを検索す
る(処理P2)。この場合、隣接グループとしてグルー
プA、C、D、Fが存在するので、たとえば、グループ
Aを隣接グループとして選択し、グループC、D、Fを
隣接グループとしてスタックに積み(処理P4)、グル
ープAの深度を求める(処理P5)。
【0043】グループAは、親グループであるグループ
Eのファンイングループであるから、その深度は(1、
−1)となり、深度(1、−1)は有効周辺グループ抽
出の規準内の深度であるが、ファンアウト深度は0から
1に変化しており、新ファンアウト深度>旧ファンアウ
ト深度となるので、グループAについての処理を終了し
てスタックからグループCを抽出し(処理P3)、グル
ープCの深度を求める(処理P5)。
【0044】グループCは、親グループであるグループ
Eのファンアウトグループであるから、その深度は
(2、0)となるが、深度(2、0)は有効周辺グルー
プ抽出の規準外の深度であるから、グループCについて
の処理を終了してスタックからグループDを抽出し(処
理P3)、グループDの深度を求める(処理P5)。
【0045】グループDは、親グループであるグループ
Eのファンイングループであるから、その深度は(1、
−1)となるが、深度(1、−1)は有効周辺グループ
抽出の規準内の深度であり、かつ、グループDは対象グ
ループであるグループAに関して過去にパス検索を実行
していないので、グループDをグループAの有効周辺グ
ループとする(処理P8)。
【0046】次に、グループDの隣接グループを検索す
る(処理P2)。この場合、隣接グループとしてグルー
プEが存在するので、グループEを選択し(処理P
4)、グループEの深度を求める。
【0047】グループEは、親グループであるグループ
Dのファンアウトグループであるから、その深度は
(2、−1)となるが、深度(2、−1)は有効周辺グ
ループ抽出の規準外の深度であるから、グループEにつ
いての処理を終了してスタックからグループFを抽出し
(処理P3)、グループFの深度を求める(処理P
5)。
【0048】グループFは、親グループであるグループ
Eのファンアウトグループであるから、その深度は
(2、0)となるが、深度(2、0)は有効周辺グルー
プ抽出の規準外の深度であるから、グループFについて
の処理を終了し、処理P3に戻るが、この場合、スタッ
クにはグループが積まれていないので、対象グループで
あるグループAについての処理を終了する。
【0049】ここに、グループDのファンアウト深度お
よびファンイン深度の合計値は0となるので、グループ
Aと、グループAと同一深度のグループDとをまとめて
拡大グループとする(処理P9)。
【0050】次に、図6に示すように、対象グループと
して、たとえば、グループBを選択し(処理P1)、グ
ループBの深度を(0、0)に設定する。
【0051】そして、グループBの隣接グループを検索
する(処理P2)。この場合、隣接グループとしてグル
ープA、Cが存在するので、たとえば、グループAを選
択し、グループCをスタックに積み(処理P4)、グル
ープAの深度を求める(処理P5)。
【0052】グループAは、親グループであるグループ
Bのファンイングループであるから、その深度は(0、
−1)となるが、深度(0、−1)は有効周辺グループ
抽出の基準外の深度であるから、グループAについての
処理を終了してスタックからグループCを抽出し(処理
P3)、グループCの深度を求める(処理P5)。
【0053】グループCは、親グループであるグループ
Bのファンアウトグループであるから、その深度は
(1、0)となるが、深度(1、0)は有効周辺グルー
プの規準内の深度であり、かつ、グループCは、対象グ
ループであるグループBに関して過去にパス検索を実行
していないので、グループCをグループBの有効周辺グ
ループとする(処理P8)。
【0054】次に、グループCの隣接グループを検索す
る(処理P2)。この場合、隣接グループとしてグルー
プB、Eが存在するので、たとえば、グループBを選択
し、グループEをスタックに積み(処理P4)、グルー
プBの深度を求める(処理P5)。
【0055】グループBは、親グループであるグループ
Cのファンアウトグループであるから、その深度は
(1、−1)となり、深度(1、−1)は有効周辺グル
ープ抽出の規準内の深度であるが、ファンアウト深度は
0から1に変化しており、新ファンアウト深度>旧ファ
ンアウト深度となるので、グループBについての処理を
終了してスタックからグループEを抽出し(処理P
3)、グループEの深度を求める(処理P5)。
【0056】グループEは、親グループであるグループ
Cのファンイングループであるから、その深度は(1、
−1)となるが、深度(1、−1)は有効周辺グループ
抽出の規準内の深度であり、かつ、グループEは、対象
グループであるグループBに関して過去にパス検索を実
行していないので、グループEをグループBの有効周辺
グループとする(処理P8)。
【0057】次に、グループEの隣接グループを検索す
る(処理P2)。この場合、隣接グループとして、グル
ープA、C、D、Fが存在するので、たとえば、グルー
プAを選択し、グループC、D、Fをスタックに積み
(処理P4)、グループAの深度を求める(処理P
5)。
【0058】グループAは、親グループであるグループ
Eのファンイングループであるから、その深度は(1、
−2)となるが、深度(1、−2)は有効周辺グループ
抽出の規準外の深度であるから、グループAについての
処理を終了してスタックからグループCを抽出し(処理
P3)、グループCの深度を求める(処理P5)。
【0059】グループCは、親グループであるグループ
Eのファンアウトグループであるから、その深度は
(2、−1)となるが、深度(2、−1)は有効周辺グ
ループ抽出の規準外の深度であるから、グループCにつ
いての処理を終了してスタックからグループDを抽出し
(処理P3)、グループDの深度を求める(処理P
5)。
【0060】グループDは、親グループであるグループ
Eのファンイングループであるから、その深度は(1、
−2)となるが、深度(1、−2)は有効周辺グループ
抽出の規準外の深度となるので、グループDについての
処理を終了してスタックからグループFを抽出し(処理
P3)、グループFの深度を求める(処理P5)。
【0061】グループFは、親グループであるグループ
Eのファンアウトグループであるから、その深度は
(2、−1)となるが、深度(2、−1)は有効周辺グ
ループ抽出の規準外の深度であるので、処理P3に戻る
が、この場合、スタックにはグループが積まれていない
ので、対象グループであるグループBに対する処理を終
了する。
【0062】ここに、グループEのファンアウト深度お
よびファンイン深度の合計値は0となるので、グループ
Bと、グループBと同一深度のグループEとをまとめて
拡大グループとする(処理P9)。
【0063】次に、図7に示すように、対象グループと
して、たとえば、グループCを選択し(処理P1)、グ
ループCの深度を(0、0)に設定する。
【0064】そして、グループCの隣接グループを検索
する(処理P2)。この場合、隣接グループとしてグル
ープB、Eが存在するので、たとえば、グループBを選
択し、グループEをスタックに積み(処理P4)、グル
ープBの深度を求める(処理P5)。
【0065】グループBは、親グループであるグループ
Cのファンイングループであるから、その深度は(0、
−1)となるが、深度(0、−1)は有効周辺グループ
抽出の規準外の深度であるので、グループBについての
処理を終了してスタックからグループEを抽出し(処理
P3)、グループEの深度を求める(処理P5)。
【0066】グループEは、親グループであるグループ
Cのファンイングループであるから、その深度は(0、
−1)となるが、深度(0、−1)は有効周辺グループ
の規準外の深度であるので、処理P3に戻る。
【0067】この場合、スタックにはグループが積まれ
ていないので、対象グループであるグループCに対する
処理を終了し、グループCと同じ深度のグループは存在
しないので、次に、図8に示すように、対象グループと
して、たとえば、グループDを選択し(処理P1)、グ
ループDの深度を(0、0)に設定する。
【0068】そして、グループDの隣接グループを検索
する(処理P2)。この場合、隣接グループとしてグル
ープEが存在するので、グループEを選択し(処理P
4)、グループEの深度を求める(処理P5)。
【0069】グループEは、親グループであるグループ
Dのファンアウトグループであるから、その深度は
(1、0)となるが、深度(1、0)は有効周辺グルー
プ抽出の規準内の深度であり、かつ、グループEは、対
象グループであるグループDに関して過去にパス検索を
実行していないので、グループEをグループDの有効周
辺グループとする(処理P8)。
【0070】次に、グループEの隣接グループを検索す
る(処理P2)。この場合、隣接グループとしてグルー
プA、C、D、Fが存在するので、たとえば、グループ
Aを選択し、グループC、D、Fをスタックに積み(処
理P4)、グループAの深度を求める(処理P5)。
【0071】グループAは、親グループであるグループ
Eのファンイングループであるから、その深度は(1、
−1)となるが、深度(1、−1)は有効周辺グループ
抽出の基準内の深度であり、かつ、グループAは、対象
グループであるグループDに関して過去にパス検索を実
行していないので、グループAをグループDの有効周辺
グループとする(処理P8)。
【0072】次に、グループAの隣接グループを検索す
る(処理P2)。この場合、隣接グループとしてグルー
プB、Eが存在するので、たとえば、グループBを選択
し、グループEをスタックに積み(処理P4)、グルー
プBの深度を求める(処理P5)。
【0073】グループBは、親グループであるグループ
Aのファンアウトグループであるから、その深度は
(2、−1)となるが、深度(2、−1)は有効周辺グ
ループ抽出の基準外の深度であるから、グループBにつ
いての処理を終了してスタックからグループEを抽出し
(処理P3)、グループEの深度を求める(処理P
5)。
【0074】グループEは、親グループであるグループ
Aのファンアウトグループであるから、その深度は
(2、−1)となるが、深度(2、−1)は有効周辺グ
ループ抽出の基準外の深度であるから、グループEにつ
いての処理を終了してスタックからグループCを抽出し
(処理P3)、グループCの深度を求める(処理P
5)。
【0075】グループCは、親グループであるグループ
Eのファンアウトグループであるから、その深度は
(2、0)となるが、深度(2、0)は有効周辺グルー
プ抽出の規準外の深度であるので、グループCについて
の処理を終了し、スタックからグループDを抽出し(処
理P3)、グループDの深度を求める(処理P5)。
【0076】グループDは、親グループであるグループ
Eのファンイングループであるから、その深度は(1、
−1)となり、深度(1、−1)は有効周辺グループ抽
出の規準外の深度であるが、ファンアウト深度は0から
1に変化しており、新ファンアウト深度>旧ファンアウ
ト深度となるので、グループDについての処理を終了
し、スタックからグループFを抽出し(処理P3)、グ
ループFの深度を求める(処理P5)。
【0077】グループFは、親グループであるグループ
Eのファンアウトグループであるから、その深度は
(2、0)となるが、深度(2、0)は有効周辺グルー
プ抽出の規準外の深度であるので、処理P3に戻るが、
この場合、スタックにはグループが積まれていないの
で、対象グループであるグループDに対する処理を終了
する。
【0078】ここに、グループAのファンアウト深度お
よびファンイン深度の合計値は0となるので、グループ
Dと、グループDと同一深度のグループAとをまとめて
拡大グループとする(処理P9)。
【0079】次に、図9に示すように、対象グループと
して、たとえば、グループEを選択し(処理P1)、グ
ループEの深度を(0、0)に設定する。
【0080】次に、グループEの隣接グループを検索す
る(処理P2)。この場合、隣接グループとしてグルー
プA、C、D、Fが存在するので、たとえば、グループ
Aを選択し、グループC、D、Fをスタックに積み(処
理P4)、グループAの深度を求める(処理P5)。
【0081】グループAは、親グループであるグループ
Eのファンイングループであるから、その深度は(0、
−1)となるが、深度(0、−1)は有効周辺グループ
抽出の規準外の深度であるので、グループAについての
処理を終了してスタックからグループCを抽出し(処理
P3)、グループCの深度を求める(処理P5)。
【0082】グループCは、親グループであるグループ
Eのファンアウトグループであるから、その深度は
(1、0)となるが、深度(1、0)は有効周辺グルー
プ抽出の規準内の深度であり、かつ、グループCは、対
象グループであるグループEに関して過去にパス検索を
実行していないので、グループCをグループEの有効周
辺グループとする(処理P8)。
【0083】次に、グループCの隣接グループを検索す
る(処理P2)。この場合、隣接グループとしてグルー
プB、Eが存在するので、たとえば、グループBを選択
し、グループEをスタックに積み(処理P4)、グルー
プBの深度を求める(処理P5)。
【0084】グループBは、親グループであるグループ
Cのファンイングループであるから、その深度は(1、
−1)となるが、深度(1、−1)は有効周辺グループ
抽出の規準内の深度であり、かつ、グループBは、対象
グループであるグループEに関して過去にパス検索を実
行していないので、グループBをグループEの有効周辺
グループとする(処理P8)。
【0085】次に、グループBの隣接グループを検索す
る(処理P2)。この場合、隣接グループとしてグルー
プA、Cが存在するので、たとえば、グループAを選択
し、グループCをスタックに積み(処理P4)、グルー
プAの深度を求める(処理P5)。
【0086】グループAは、親グループであるグループ
Bのファンイングループであるから、その深度は(1、
−2)となるが、深度(1、−2)は有効周辺グループ
抽出の規準外の深度であるから、グループAについての
処理を終了してスタックからグループCを抽出し(処理
P3)、グループCの深度を求める(処理P5)。
【0087】グループCは、親グループであるグループ
Bのファンアウトグループであるから、その深度は
(2、−1)となるが、深度(2、−1)は有効周辺グ
ループ抽出の規準外の深度であるから、グループCにつ
いての処理を終了してスタックからグループEを抽出し
(処理P3)、グループEの深度を求める(処理P
5)。
【0088】グループEは、親グループであるグループ
Cのファンイングループであるから、その深度は(1、
−1)となり、深度(1、−1)は有効周辺グループ抽
出の基準内の深度であるが、ファンアウト深度は、0か
ら1に変化しており、新ファンアウト深度>旧ファンア
ウト深度となるので、グループEについての処理を終了
してスタックからグループDを抽出し(処理P3)、グ
ループDの深度を求める(処理P5)。
【0089】グループDは、親グループであるグループ
Eのファンイングループであるから、その深度は(0、
−1)となるが、深度(0、−1)は有効周辺グループ
抽出の規準外の深度であるので、グループDについての
処理を終了してスタックからグループFを抽出し(処理
P3)、グループFの深度を求める(処理P5)。
【0090】グループFは、親グループであるグループ
Eのファンアウトグループであるから、その深度は
(1、0)となるが、深度(1、0)は有効周辺グルー
プ抽出の規準内の深度であり、かつ、グループFは、対
象グループであるグループEに関して過去にパス検索を
実行していないので、グループFをグループEの有効周
辺グループとする(処理P8)。
【0091】次に、グループFの隣接グループを検索す
る(処理P2)。この場合、隣接グループとしてグルー
プEが存在するので、グループEを選択し(処理P
4)、グループEの深度を求める(処理P5)。
【0092】グループEは、親グループであるグループ
Fのファンイングループであるから、その深度は(1、
−1)となり、深度(1、−1)は有効周辺グループ抽
出の規準内の深度であるが、ファンアウト深度は、0か
ら1に変化しており、新ファンアウト深度>旧ファンア
ウト深度となるので、グループEについての処理を終了
し、処理P3に戻るが、この場合、スタックにはグルー
プが積まれていないので、対象グループであるグループ
Eに対する処理を終了する。
【0093】ここに、グループBのファンアウト深度お
よびファンイン深度の合計値は0となるので、グループ
Eと、グループEと同一深度のグループBとをまとめて
拡大グループとする(処理P9)。
【0094】次に、図10に示すように、対象グループ
としてグループFを選択し(処理P1)、グループFの
深度を(0、0)に設定する。
【0095】そして、グループFの隣接グループを検索
する(処理P2)。この場合、隣接グループとしてグル
ープEが存在するので、グループEを選択し(処理P
4)、グループEの深度を求める(処理P5)。
【0096】グループEは、親グループであるグループ
Fのファンイングループであるから、その深度は(0、
−1)となるが、深度(0、−1)は有効周辺グループ
の規準外であるので、処理P3に戻るが、この場合、ス
タックにはグループが積まれていないので、対象グルー
プに対する処理を終了する。なお、この場合、グループ
Fとまとめて1個の拡大グループとするグループは存在
しないことになる。
【0097】ここに、すべてのグループA〜Fを対象グ
ループとし、もはや、対象グループとすべきグループは
存在しないので、図3に示すように、拡大グループのマ
ージを行う(処理P10)。
【0098】前述したように、同一のグループを有効周
辺グループとする複数のグループが存在する場合には、
これら複数のグループをまとめて1個の拡大グループと
し、その他のグループをそれぞれ1個の拡大グループと
し、同一のグループを有効周辺グループとする複数のグ
ループが存在しない場合には、各グループをそれぞれ1
個の拡大グループとすべきであるので、この例の場合に
は、図11に示すように、4個の拡大グループG1、G
2、G3、G4が形成される。
【0099】このように、拡大グループの最終的な設定
が終了した場合には、即ち、図1に示す処理S5が終了
した場合には、ファンイン側のグループの番号が若い番
号となるように、かつ、同一の拡大グループ内のグルー
プには同一の番号を付けるように、各グループに番号を
付ける(処理S6)。
【0100】たとえば、図11に示すようなグループ
A、B、C、D、E、Fに対して、図12に示すよう
に、グループA、Dには番号1、グループB、Eには番
号2、グループCには番号3、グループFには番号4を
付ける。
【0101】次に、ファンイン側のグループの回路シミ
ュレーション結果をファンアウト側のグループの入力デ
ータとして取り扱い、番号順に、即ち、拡大グループ内
のグループごとに、かつ、ファンイン側のグループから
順に、有効周辺グループを含めて回路シミュレーション
を行う(処理S7)。
【0102】たとえば、図12に示す回路例において
は、まず、グループA、Dについて、グループB、Eを
含めて回路シミュレーションを行い、グループA、Dの
回路シミュレーション結果をグループA、Dの出力ノー
ドN1、N2、N3に得るようにする。
【0103】次に、この回路シミュレーション結果以外
のデータをメモリ上から削除し、グループB、Eについ
てグループC、Fを含めて回路シミュレーションを行
い、グループB、Eの回路シミュレーション結果をグル
ープB、Eの出力ノードN4、N5、N6に得るように
するが、この回路例の場合には、最終段のグループC、
Fの回路シミュレーション結果もグループC、Fの出力
ノードN7、N8に得られることになる。
【0104】したがって、この回路例においては、グル
ープC、Fの出力ノードN7、N8に得られる回路シミ
ュレーション結果を出力して、全体回路1についての回
路シミュレーションを終了する。
【0105】即ち、グループC、Fのファンアウト側に
更にグループが存在する場合には、グループB、Eの出
力ノードN4、N5、N6に得られるグループB、Eの
回路シミュレーション結果を残して、他のデータをメモ
リ上から削除し、続いて、グループB、Eの回路シミュ
レーション結果を使用してグループC、Fについて、グ
ループC、Fの有効周辺グループを含めて回路シミュレ
ーションを行うことになるが、この回路例では、グルー
プC、Fが最終段であり、これらグループC、Fについ
ての回路シミュレーションは既に実行しているので、こ
こで終了することになる。
【0106】以上のように、本発明の実施の一形態によ
れば、ファンイン側のグループの回路シミュレーション
結果をファンアウト側のグループの入力データとして取
り扱い、1個の拡大グループ内のグループごとに、か
つ、ファンイン側のグループから順に、出力に影響を与
えると考えられるファンアウト側の有効周辺グループを
含めて回路シミュレーションを行うとしているので、少
ないメモリ使用量で高精度の回路シミュレーションを高
速に行うことができる。
【0107】また、グループは、全体回路を電源端子及
び結合の弱い箇所で切り離して複数のブロックに分割す
る工程と、ブロック間の信号の流れを調べ、信号がルー
プしている複数のブロックが存在する場合には、これら
複数のブロックをまとめて1個のグループとし、その他
のブロックをそれぞれ1個のグループとし、信号がルー
プしている複数のブロックが存在しない場合には、各ブ
ロックをそれぞれ1個のグループとする工程とを経て設
定するとしているので、好適なグループを効率的に抽出
することができる。
【0108】また、有効周辺グループは、グループを順
に対象グループとして選択し、対象グループから他のグ
ループまでのグループ間を結ぶパスを数え、その数を対
象グループに対する他のグループの深度とし、この深度
が指定した深度よりも小さいグループを対象グループの
有効周辺グループとして抽出することにより行うとして
いるので、好適な有効周辺グループを効率的に抽出する
ことができる。
【0109】なお、本発明の実施の一形態は、仮想メモ
リ装置として、たとえば、磁気ディスク装置、実メモリ
装置として、たとえば、半導体記憶装置、演算装置とし
て、いわゆるCPUを備える既存の回路シミュレーショ
ン装置を使用し、回路シミュレーションに必要な全体回
路のデータを磁気ディスク装置に格納し、磁気ディスク
装置から回路シミュレーションに必要なグループのデー
タを半導体記憶装置に読み込み、半導体記憶装置に読み
込まれたグループのデータを使用した回路シミュレーシ
ョンに必要な演算をCPUで行うことにより実行するこ
とができ、特別な回路シミュレーション装置を必要とし
ない。
【0110】
【発明の効果】本発明中、第1の発明(請求項1記載の
回路シミュレーション方法)によれば、少ないメモリ使
用量で高精度の回路シミュレーションを高速に行うこと
ができる。
【0111】また、第2の発明(請求項2記載の回路シ
ミュレーション方法)によれば、好適なグループを効率
的に抽出し、少ないメモリ使用量で高精度の回路シミュ
レーションを高速に行うことができる。
【0112】また、第3の発明(請求項3記載の回路シ
ミュレーション方法)によれば、拡大グループごとの回
路シミュレーションを効率的に行い、少ないメモリ使用
量で高精度の回路シミュレーションを高速に行うことが
できる。
【0113】また、第4の発明(請求項4記載の回路シ
ミュレーション方法)によれば、有効周辺グループを効
率的に抽出し、少ないメモリ使用量で高精度の回路シミ
ュレーションを高速に行うことができる。
【0114】また、第5の発明(請求項5記載の回路シ
ミュレーション方法)によれば、特別な回路シミュレー
ション装置を必要とせず、既存の回路シミュレーション
装置を使用して、第1、第2、第3又は第4の発明の回
路シミュレーション方法を実行することができる。
【図面の簡単な説明】
【図1】本発明の実施の一形態を示すフローチャートで
ある。
【図2】本発明の実施の一形態で行われる全体回路のブ
ロック化、グループ化を説明するための図である。
【図3】本発明の実施の一形態で行われる有効周辺グル
ープおよび拡大グループの抽出アルゴリズムを示すフロ
ーチャートである。
【図4】本発明の実施の一形態におけるグループの深度
の表示方法を示す図である。
【図5】本発明の実施の一形態で行われる有効周辺グル
ープおよび拡大グループの抽出アルゴリズムを説明する
ための図である。
【図6】本発明の実施の一形態で行われる有効周辺グル
ープおよび拡大グループの抽出アルゴリズムを説明する
ための図である。
【図7】本発明の実施の一形態で行われる有効周辺グル
ープおよび拡大グループの抽出アルゴリズムを説明する
ための図である。
【図8】本発明の実施の一形態で行われる有効周辺グル
ープおよび拡大グループの抽出アルゴリズムを説明する
ための図である。
【図9】本発明の実施の一形態で行われる有効周辺グル
ープおよび拡大グループの抽出アルゴリズムを説明する
ための図である。
【図10】本発明の実施の一形態で行われる有効周辺グ
ループおよび拡大グループの抽出アルゴリズムを説明す
るための図である。
【図11】本発明の実施の一形態で行われる拡大グルー
プの設定を説明するための図である。
【図12】本発明の実施の一形態で行われるグループに
対する番号付けおよび回路シミュレーション方法を説明
するための図である。
【符号の説明】
1 全体回路 a〜i ブロック A〜F グループ G1〜G4 拡大グループ

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】回路シミュレーションの対象である全体回
    路を複数のグループに分割する工程と、 ファンイン側のグループの回路シミュレーション結果を
    ファンアウト側のグループの入力データとして取り扱
    い、ファンアウト側に、同一のグループを、出力に影響
    を与えると考えられるグループとして有する複数のグル
    ープは、これら複数のグループごとに、その他のグルー
    プは、グループごとに、それぞれ、その出力に影響を及
    ぼすと考えられるファンアウト側のグループを含めて回
    路シミュレーションを行う工程とを含んでいることを特
    徴とする回路シミュレーション方法。
  2. 【請求項2】前記回路シミュレーションの対象である全
    体回路を複数のグループに分割する工程は、 前記全体回路を電源端子及び結合の弱い箇所で切り離し
    て複数のブロックに分割する工程と、 ブロック間の信号の流れを調べ、信号がループしている
    複数のブロックが存在する場合には、これら複数のブロ
    ックをまとめて1個のグループとし、その他のブロック
    をそれぞれ1個のグループとし、信号がループしている
    複数のブロックが存在しない場合には、各ブロックをそ
    れぞれ1個のグループとする工程とを含んでいることを
    特徴とする請求項1記載の回路シミュレーション方法。
  3. 【請求項3】前記ファンイン側のグループの回路シミュ
    レーション結果をファンアウト側のグループの入力デー
    タとして取り扱い、ファンアウト側に、同一のグループ
    を、出力に影響を与えると考えられるグループとして有
    する複数のグループは、これら複数のグループごとに、
    その他のグループは、グループごとに、それぞれ、その
    出力に影響を及ぼすと考えられるファンアウト側のグル
    ープを含めて回路シミュレーションを行う工程は、 各グループごとに、その出力に影響を及ぼすと考えられ
    るグループを有効周辺グループとして抽出する工程と、 同一のグループをファンアウト側の有効周辺グループと
    する複数のグループが存在する場合には、これら複数の
    グループをまとめて1個の拡大グループとし、その他の
    グループをそれぞれ1個の拡大グループとし、同一のグ
    ループをファンアウト側の有効周辺グループとする複数
    のグループが存在しない場合には、各グループをそれぞ
    れ1個の拡大グループとする工程と、 1個の拡大グループ内のグループごとに、かつ、ファン
    イン側のグループから順に、拡大グループ内のグループ
    のファンアウト側の有効周辺グループを含めて回路シミ
    ュレーションを行う工程とを含んでいることを特徴とす
    る請求項1又は2記載の回路シミュレーション方法。
  4. 【請求項4】前記各グループごとに、その出力に影響を
    及ぼすと考えられるグループを有効周辺グループとして
    抽出する工程は、 グループを1個ずつ対象グループとして選択し、前記対
    象グループから他のグループまでのグループ間を結ぶパ
    スをたどり、順方向の信号の流れをもつパスの数を数
    え、その数を前記対象グループに対する前記他のグルー
    プの深度とし、この深度が予め指定した深度よりも小さ
    いグループを前記対象グループの有効周辺グループとし
    て抽出する工程を含んでいることを特徴とする請求項3
    記載の回路シミュレーション方法。
  5. 【請求項5】回路シミュレーションに必要な全体回路の
    データを仮想メモリ装置に格納し、この仮想メモリ装置
    から回路シミュレーションに必要なグループのデータを
    実メモリ装置に読み込み、この実メモリ装置に読み込ま
    れたグループのデータを使用した回路シミュレーション
    に必要な演算を演算装置で行い、前記全体回路について
    回路シミュレーションを行うことを特徴とする請求項
    1、2、3又は4記載の回路シミュレーション方法。
JP8062276A 1996-03-19 1996-03-19 回路シミュレーション方法 Withdrawn JPH09259151A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8062276A JPH09259151A (ja) 1996-03-19 1996-03-19 回路シミュレーション方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8062276A JPH09259151A (ja) 1996-03-19 1996-03-19 回路シミュレーション方法

Publications (1)

Publication Number Publication Date
JPH09259151A true JPH09259151A (ja) 1997-10-03

Family

ID=13195466

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8062276A Withdrawn JPH09259151A (ja) 1996-03-19 1996-03-19 回路シミュレーション方法

Country Status (1)

Country Link
JP (1) JPH09259151A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7721234B2 (en) 2006-02-09 2010-05-18 Renesas Technology Corp. Simulation method and simulation program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7721234B2 (en) 2006-02-09 2010-05-18 Renesas Technology Corp. Simulation method and simulation program

Similar Documents

Publication Publication Date Title
US7017132B2 (en) Methodology to optimize hierarchical clock skew by clock delay compensation
US6654938B2 (en) Delay characteristic analyzing method and delay characteristic analyzing system for a custom LSI
Pomeranz et al. An efficient nonenumerative method to estimate the path delay fault coverage in combinational circuits
US6006023A (en) Method of optimizing a logic circuit
US6292924B1 (en) Modifying timing graph to avoid given set of paths
US6000038A (en) Parallel processing of Integrated circuit pin arrival times
JPH09259151A (ja) 回路シミュレーション方法
JPH09321145A (ja) 半導体集積回路のレイアウト方法
JP3766119B2 (ja) 回路シミュレーション方法及びその装置
KR20010024944A (ko) 전자 소자 및 장치의 설계 및 제조 방법
CN112084742B (zh) 集成电路设计方法与其非瞬时计算机可读介质
CN116776791B (zh) 消除公共路径悲观度的静态时序分析方法
US7010765B2 (en) Method for identifying removable inverters in an IC design
Pomeranz et al. Procedures for static compaction of test sequences for synchronous sequential circuits
US6463572B1 (en) IC timing analysis with known false paths
JP3080037B2 (ja) 論理シミュレーション用モデルの作成方法
JPH06310601A (ja) レイアウト設計方法
Kang et al. Accurate logic simulation by overcoming the unknown value propagation problem
JPH0195365A (ja) クリティカルパスの解析処理方式
JP3012546B2 (ja) シミュレーション装置及びその方法
JP2786017B2 (ja) 半導体集積回路の製造方法
JPH09259172A (ja) 論理シミュレーション用モデルの作成方法
JPH06110963A (ja) パスの遅延値自動算出方法
JPH06119411A (ja) 論理回路の遅延経路探索方法
JPH10256377A (ja) フロアプラン方法

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20030603