(57)【特許請求の範囲】
【請求項１】
論理回路のマルチサイクルパスを検出するタイミング解析プログラムにおいて、
与えられた論理回路のマルチサイクルパスを検出する始点と終点を指示する手段と、
上記指示された始点と終点との間の部分回路を、指定された時間数分に展開する手段と、
上記始点と終点について、各値のとり得る組み合わせを生成する手段と、
上記生成した組み合わせから１組の始点と終点の値を取り出す手段と、
上記取り出した１組の始点と終点の値を、上記展開後の部分回路の該当信号線に割り当てる手段と、
上記割り当てた値をもとに上記展開した部分回路の一意に決まる信号線の値を順次決定する合意手段と、
上記合意手段によって決定した信号線の値について、マルチサイクルパス成立か否かを判別する手段と、
上記全ての組み合わせについて全てマルチサイクルパス成立のときにマルチサイクルパス成立と判定し、１つでも不成立のときにマルチサイクルパス不成立と判定する手段としてコンピュータに機能させる論理回路のタイミング解析プログラム。
【請求項２】
上記マルチサイクルパス不成立として判定されたときに、始点と終点との間に複数のパスがある場合に上記合意手段によって決めた各信号線の値をもとにパス毎にマルチサイクルパスの成立あるいは不成立を判定する手段としてコンピュータに機能させるプログラムを付加した請求項１記載の論理回路のタイミング解析プログラム。
【請求項３】
上記時間数分の展開を、小さい時間数から順次大きい時間数に指定して、マルチサイクルパス不成立となったときに、１つ小さい時間数のマルチサイクルパスを最大遅延が許されるサイクルと決定する手段として機能させるプログラムを付加した請求項１あるいは請求項２記載の論理回路のタイミング解析プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、論理回路のマルチサイクルパスを検出するタイミング解析プログラム、タイミング解析方法および記録媒体に関するものである。
【０００２】
【従来の技術】
従来、半導体集積回路などのモデルとして用いられる論理回路、例えば後述する図４の（ａ）の論理回路において、パスの遅延が２クロックサイクル以上にしてもよいいわゆるマルチサイクルパスについてコンピュータを用いて検証することが行われている。図４の（ａ）の論理回路において、ＦＦ１からＦＦ４はそれぞれＤフリップフロップ型の記憶素子であり、ＦＦ１の出力を始点とし、組み合わせ回路を経てＦＦ２の入力を終点とするパスについてマルチサイクルパスであるか否か、更に、いくつの遅延が許されるかを検出する必要がある。
【０００３】
マルチサイクルパスの検出については、組み合わせ回路部分に対するパスごとのタイミング解析を記憶素子を超えて適用することにより、マルチサイクルの依存関係を抽出することなどが行われている。
【０００４】
【発明が解決しようとする課題】
上述したパスごとのタイミング解析を行ったのでは、順序回路的なパスをしらみつぶし的にパスの遅延を解析する必要があり、パスの数が多くなると計算量が膨大となり実現困難となってしまうなどの問題があった。
【０００５】
この問題を回避するため、始点と終点の間の全てのパスがマルチサイクルパスであるかどうかの解析のみを行う方法が提案されているが、大規模回路や解析サイクル数が多い場合にはやはり実現困難となる問題があった。
【０００６】
本発明は、これらの問題を解決するため、与えられた論理回路における検証対象の始点と終点の間の全てのパスがマルチサイクルパスであるかどうかの解析を高速化すると共に計算量を削減し、大規模な論理回路のマルチサイクルパスの検出を実現することを目的としている。
【０００７】
【課題を解決するための手段】
図１を参照して課題を解決するための手段を説明する。
【０００８】
図１において、処理装置１は、プログラムに従い各種処理を実行するものであって、ここでは、始点・終点指示手段２、時間展開手段３、値割当手段４、含意手段５、判定手段６などから構成されるものである。
【０００９】
始点・終点指示手段２は、与えられた論理回路のマルチサイクルパスを検出する始点と終点を指示したりなどするものである。
【００１０】
時間展開手段３は、指示された始点と終点との間の部分回路を、指定された時間数分に展開するものである。
【００１１】
値割当手段４は、始点と終点について各値のとり得る組み合わせを生成したり、生成した組み合わせから１組の始点と終点の値を取り出して割り当てたりなどするものである。
【００１２】
含意手段５は、割り当てた値をもとに展開した部分回路の一意に決まる信号線の値を順次決定したりなどするものである。
【００１３】
判定手段６は、決定した信号線の値をもとに、マルチサイクルパス成立か否かを判別したりなどするものである。
【００１４】
次に、動作を説明する。
始点・終点指示手段２が与えられた論理回路のマルチサイクルパスを検出する始点と終点を指示し、時間展開手段３が指示された始点と終点との間の部分回路を、指定された時間数分に展開し、値割当手段４が始点と終点について各値のとり得る組み合わせを生成し、生成した組み合わせから１組の始点と終点の値を取り出し、取り出した１組の始点と終点の値を展開後の部分回路の該当信号線に割り当て、含意手段５が割り当てた値をもとに展開した部分回路の一意に決まる信号線の値を順次決定し、判定手段６が決定した信号線の値をもとにマルチサイクルパス成立か否かを判別し、全ての組み合わせについて全てマルチサイクルパス成立のときにマルチサイクルパス成立と判定し、１つでも不成立のときにマルチサイクルパス不成立と判定するようにしている。
【００１５】
また、判定手段６がマルチサイクルパス不成立として判定されたときに、始点と終点との間に複数のパスがある場合に、含意手段５によって決められた各信号線の値をもとにパス毎にマルチサイクルパスの成立あるいは不成立を判定するようにしている。
【００１６】
また、判定手段６が時間数分の展開を、小さい時間数から順次大きい時間数に指定して、マルチサイクルパス不成立となったときに、１つ小さい時間数のマルチサイクルパスを最大遅延が許されるサイクルと決定するようにしている。
【００１７】
従って、与えられた論理回路における検証対象の始点と終点の間の全てのパスがマルチサイクルパスであるかどうかの解析を高速化すると共に計算量を削減し、大規模な論理回路のマルチサイクルパスの検出を実現することが可能となる。
【００１８】
【発明の実施の形態】
次に、図１から図８を用いて本発明の実施の形態および動作を順次詳細に説明する。
【００１９】
図１は、本発明のシステム構成図を示す。
図１において、処理装置１は、プログラムに従い各種処理を実行するものであって、ここでは、始点・終点指示手段２、時間展開手段３、値割当手段４、含意手段５、判定手段６などから構成されるものである。
【００２０】
始点・終点指示手段２は、与えられた論理回路（例えば図４の（ａ）の論理回路）のマルチサイクルパスを検出する始点と終点を指示したりなどするものである。
【００２１】
時間展開手段３は、論理回路上の指示された始点と終点との間の部分回路を、指定された時間数分に展開するものである（図２から図１１を用いて後述する）。
【００２２】
値割当手段４は、論理回路の指定された始点と終点について各値のとり得る組み合わせを生成したり、生成した組み合わせから１組の始点と終点の値を取り出したり、取り出した値を始点、終点に割り当てたりなどするものである（図２から図１１を用いて後述する）。
【００２３】
含意手段５は、値をもとに展開した部分回路の一意に決まる信号線の値を順次決定したりなどするものである（図２から図１１を用いて後述する）。
【００２４】
判定手段６は、決定した信号線の値をもとに、マルチサイクルパス成立か否かを判別したりなどするものである（図２から図１１を用いて後述する）。
【００２５】
表示装置７は、各種データを表示したりなどするものである。
入力装置８は、各種データや操作を入力するものである。
【００２６】
ＤＢ９は、論理回路、中間結果などを記憶するものである。
次に、図２のフローチャートの順番に従い、図１の構成を詳細に説明する。
【００２７】
図２は、本発明の動作説明フローチャートを示す。
図２において、Ｓ１は、論理回路Ｃ、始点・終点の組の集合，クロック数Ｋを指定する。
【００２８】
Ｓ２は、入力する。これは、Ｓ１で指定された論理回路Ｃ（例えば後述する図４の（ａ）の論理回路、始点・終点の組の集合、クロック数Ｋ（Ｋ＝２）を入力する。
【００２９】
Ｓ３は、組み合わせ回路部分を時間展開する。これは、Ｓ２で入力した情報をもとに、例えば後述する図４（ａ）の論理回路を、組み合わせ回路部分と記憶素子部分とに分けて図４の（ｂ）のようにし、当該図４の（ｂ）をＫ＝２に対応して、時刻０と時刻１との２つに時間展開して図６の（ｃ）に示すようにする。
【００３０】
Ｓ４は、時間展開した回路の一部の信号線に値の割り当てを行う。これは、（始点、終点）のとり得る値の組として、（０，０）、（０，１）、（１，０）、（１，１）の４組があるので、まず、第１番目の（始点、終点）＝（０，０）を取り出し、始点＝０、終点＝０の値を図５の（ｃ）に示すように割り当てる。
【００３１】
Ｓ５は、値の含意操作を行う。これは、Ｓ４で割り当てた信号線の値をもとに、一意に決定される信号線の値を求める（例えば図５の（ｃ）の始点＝０、終点＝０としたときに一意に決まる他の信号線の値を順次求める、図３を用いて詳述する）。
【００３２】
Ｓ６は、含意操作で得られた含意関係を記憶する。
Ｓ７は、マルチサイクルの条件が成り立つ値が含意されているか調べる（図３を用いて後述する）。
【００３３】
Ｓ８は、出力する。Ｓ７でマルチサイクルか否かの結果を出力する。
Ｓ９は、Ｋサイクル以上の始点、終点の組の集合をマルチサイクルパスとして得る。
【００３４】
以上の手順によって、与えられた論理回路について指定された時間数分（Ｋ）の時間展開を行い、始点・終点のとり得る値の組み合わせを全て生成し、その中から１つの組み合わせを取り出してそのときの始点、終点の値をそれぞれ割り当て、これら割り当てた値をもとに一意に決まる他の信号線の値を決定し（含意操作）、これら含意操作後の値をもとにマルチサイクルパス条件を満たすか否かを判定することを全ての始点と終点の値の組み合わせについて繰り返し、全てマルチサイクルパス条件を満たすときは当該論理回路の指定された始点と終点のパスは当該指定されたＫの値のときにマルチサイクルパスと判定することが可能となる。以下順次具体的に説明する。
【００３５】
図３は、本発明の詳細動作説明フローチャートを示す。
図３において、Ｓ１１は、論理回路ＣをＫ時刻数分の時間展開する。これは、例えば図４の（ａ）の論理回路Ｃについて、Ｋ＝２、始点＝ＦＦ１の出力、終点＝ＦＦ２の入力と指定されたときに、図４の（ａ）の論理回路を組み合わせ回路部分と記憶素子部分に分けた図４の（ｂ）のように変形した後、図中の点線の部分をＫ＝２で指定された時刻０、時刻１の２つに時間展開して図５の（ｃ）に示すようにする。ここで、始点はＦＦ１の出力とし、終点はＦＦ２の入力とする。
【００３６】
Ｓ１２は、Ｐが空か判別する。これは、始点と終点の集合Ｐが空か判別する。ＹＥＳの場合には、マルチサイクルパスを出力して終了する。ＮＯの場合には、Ｓ１３に進む。
【００３７】
Ｓ１３は、始点・終点の組の集合Ｐから１組を選び始点をＳ，終点をＥとする。
【００３８】
Ｓ１４は、変数Ｖｓ←０、Ｖｅ←０と初期設定する。
Ｓ１５は、Ｖs＜２か判別する。ＹＥＳの場合には、Ｓ１５に進む。ＮＯの場合には、全ての組み合わせついて終了したので、Ｓ２６で（Ｓ，Ｅ）をマルチサイクルパスの集合に入れ、Ｓ２７に進む。ＮＯの場合には、未だ全ての組み合わせについて終了していないので、Ｓ１６に進む。
【００３９】
Ｓ１６は、Ｖｅ＜２か判別する。ＹＥＳの場合には、Ｓ１８に進む、ＮＯの場合には、始点の値が０，１と順番に変化して２となったので、Ｓ１７でＶｓ←Ｖｓ＋１，Ｖｅ←０とし、Ｓ１５に戻り繰り返す。
【００４０】
以上のＳ１２からＳ１７によって、ここでは、（始点、終点）＝（０，０）、（０，１）、（１，０）、（１，１）の組み合わせについて１つづつ取り出し、Ｓ１８以降の処理を合計４回繰り返すこととなる。
【００４１】
Ｓ１８は、Ｓ（０）←Ｖｓとする。初期状態ではＳ１４でＶｓ＝０と初期設定されているので、ここでは、Ｓ（０）＝０となる（図５の（ｄ）のＳ１８：Ｓ（０）＝ＦＦ１（０）＝Ｖｓ＝０参照）。
【００４２】
Ｓ１９は、割り当てられた値の含意操作と結果の記憶を行う。この場合には、なし。
【００４３】
Ｓ２０は、Ｓ（１）←＊Ｖｓ（＊はＶｓのリバース（反対）、即ち、値が０のときに１、１のときに０を表すとする、以下同様）（図５の（ｄ）のＳ２０：Ｓ（１）＝ＦＦ１（１）＝＊Ｖｓ＝１参照）。
【００４４】
Ｓ２１は、割り当てられた値の合意操作と結果の記憶を行う。この場合には、図５の（ｄ）のＳ２１から矢印で示す信号線の値が一意に決まる。
【００４５】
Ｓ２２は、Ｅ（１）←Ｖｅとする。これは、図５の（ｄ）のＳ２２：Ｅ（１）＝ＦＦ２（１）＝Ｖｅ＝０とする。
【００４６】
Ｓ２３は、割り当てられた値の含意操作と結果の記憶を行う。これは、図５の（ｄ）のＳ２３に示すように含意操作の値を記憶する。
【００４７】
Ｓ２４は、Ｅ（２）＝Ｖeか判別する。これは、マルチサイクルパス条件が成立か判別することを意味し、具体的には、図５の（ｄ）のＳ２４：Ｅ（２）＝Ｖｅがともにここでは、含意操作した結果の０に等しいか判別する。ＹＥＳの場合には、マルチサイクルパス条件が成立したと判明したので、Ｓ２５でＶｅ←Ｖｅ＋１し、Ｓ１６に戻り、次の組について繰り返す。一方、Ｓ２４のＮＯの場合には、マルチパスサイクル条件を満たさないと判明したので、次の組み合わせについて処理することなく、終了し、Ｓ２７に進む。
【００４８】
Ｓ２７は、始点・終点の集合Ｐから（Ｓ，Ｅ）を除く。これは、Ｓ１３からＳ２５によって１つの（始点、終点）の組についてマルチサイクルパスの判定を終了したので，集合Ｐから当該組を除き、Ｓ１３に戻り、他の組について無くなるまで繰り返す。
【００４９】
以上によって、論理回路上の指定された始点と終点について、指定された時間数分Ｋで時間展開した後、始点と終点の取りうる全ての値の組の値を１つづつ例えば図５の（ｄ）の始点と終点に設定して含意操作することをＳ１８からＳ２３のように行いマルチサイクルパスが成立するか否かを判別することを繰り返し、全ての組み合わせについて成立したときにマルチサイクルパスと判定することにより、簡易な操作によりマルチパスサイクルパスである旨を判定することが可能となる。
【００５０】
図４、図５は、本発明の説明図を示す。
図４の（ａ）は、論理回路の例を示す。ここでは、ＦＦ１の出力を始点とし、ＦＦ２の入力を終点とするパスがマルチサイクルパスか判定するための論理回路の例を示す。
【００５１】
図４の（ｂ）は、図４の（ａ）の論理回路を組み合わせ回路部分と記憶素子部分に分けた図を示す。両者は等価の回路であって、ＦＦ１の出力の始点と、ＦＦ２の入力の終点とを矢印を用いて対応づけてある。
【００５２】
図５の（ｃ）は、Ｋ＝２の時間展開した後の状態を示す。これは、図４の（ｂ）の点線内の部分を、時刻０、時刻１の２つに時間展開したものである。始点（ＦＦ１の出力）、および終点（ＦＦ２の入力）を図中に示す。
【００５３】
図５の（ｄ）は、既述した図３のフローチャートに従い、値の割り当て、含意操作を順次実行したときの信号線の値の様子を示す。図中のＳ１８、Ｓ２０．Ｓ２１、Ｓ２３、Ｓ２４は、図３の該当するステップのときに値を設定あるいは含意操作で求めた値をそれぞれ示す。詳細説明は、それぞれの説明を参照。
【００５４】
図５の（ｅ）は、含意操作の結果の例を示す。
第１行目は、既述した図３のＳ２０の（Ｖs,Ｖe)=（０，０）の場合で、Ｓ２０で割り当てた値と、Ｓ２１の含意操作の結果をそれぞれ示す。この結果を記憶しておくことにより、例えば、（Ｖｓ，Ｖｅ）＝（１，０）の場合のＳ２０で、含意操作のかわりにこの結果をそのまま利用でき、処理量を削減できる。
【００５５】
第２行目は、既述した図３のＳ２０の（Ｖs,Ｖe)=（１，０）の場合で、Ｓ２０で割り当てた値と、Ｓ２１の含意操作の結果をそれぞれ示す。
【００５６】
同様に、（０．１）、（１，１）の場合について値の割り当て、含意操作を繰り返し、図３のフローチャートの結果（Ｋ＝２の場合）は、下記のように判定する。
【００５７】
・（Ｖs,Ｖｅ）＝（０，０）の場合：図３のＳ２４でＹＥＳとなり、マルチサイクルパス条件成立する。
【００５８】
・（Ｖs,Ｖｅ）＝（０，１）の場合：図３のＳ２４でＹＥＳとなり、マルチサイクルパス条件成立する。
【００５９】
・（Ｖs,Ｖｅ）＝（１，０）の場合：図３のＳ２４でＹＥＳとなり、マルチサイクルパス条件成立する。
【００６０】
・（Ｖs,Ｖｅ）＝（１，１）の場合：図３のＳ２４でＹＥＳとなり、マルチサイクルパス条件成立する。
【００６１】
従って、このＫ＝２の場合には、（Ｓ，Ｅ）＝（ＦＦ１の出力，ＦＦ２の入力）はマルチサイクルパスと判定する。尚、もし、このＫ＝２の場合に、１つでもマルチサイクルパス不成立であれば、マルチサイクルパスにはならない（即ち、１サイクルパスでないといけない）と判定する。
【００６２】
同様にして、Ｋ＝３の場合について求めると、
・（Ｖs,Ｖｅ）＝（０，０）の場合：図３のＳ２４でＹＥＳとなり、マルチサイクルパス条件成立する。
【００６３】
・（Ｖs,Ｖｅ）＝（０，１）の場合：図３のＳ２４でＹＥＳとなり、マルチサイクルパス条件成立する。
【００６４】
・（Ｖs,Ｖｅ）＝（１，０）の場合：図３のＳ２４でＹＥＳとなり、マルチサイクルパス条件成立する。
【００６５】
・（Ｖs,Ｖｅ）＝（１，１）の場合：図３のＳ２４でＹＥＳとなり、マルチサイクルパス条件成立する。
【００６６】
同様にして、Ｋ＝４の場合について求めると、
・（Ｖs,Ｖｅ）＝（０，０）の場合：含意操作の結果が図７の（ｂ）のようになるため、図３のＳ２４でＮＯとなり、マルチサイクルパス条件不成立となる。
【００６７】
従って、（始点、終点）＝（ＦＦ１の出力、ＦＦ２の入力）は、３サイクルパスで最大３サイクルまで遅延が許されると判定できる。
【００６８】
図６は、本発明の他の詳細動作説明フローチャートを示す。これは、図３のフローチャートのＳ２４のＮＯに続けて、図６のＳ３１からＳ３３を挿入し、かつ、Ｓ２６を変更したものであって、図７の（ａ）に示す論理回路に適用するものである。尚、図６のＳ１１からＳ２５およびＳ２７は、図３と同様であるので説明を省略する。
【００６９】
図６において、Ｓ３１は、Ｓ２４のＮＯでマルチサイクルパス条件不成立と判明したので、更に、Ｅ（２）←＊Ｖｅ＝１とする。これは、図７の（ａ）の論理回路について図４の（ａ）、（ｂ），図５の（ｃ）と同様にして、ここでは、Ｋ＝２の時間展開して含意操作を行い図７の（ｂ）を得る。この図７の（ｂ）で、Ｅ（２）＝＊Ｖｅ＝１と値を割り当てる。
【００７０】
Ｓ３２は、割り当てられた値の含意操作と結果の記憶を行う。これは、図７の（ｂ）で、ＥＮ（１）＝０，ＦＦ１（１）＝１が求められる（図７の（ａ）参照）。
【００７１】
Ｓ３３は、始点と終点の間のパス以外のパスにブロックされているパス集合をマルチサイクルパス集合Ｂ（Ｖｓ，Ｖｅ）とする。これは、Ｓ３２で求めた値をもとに、ブロックされているパス、ここでは、図７の（ａ）のＳ３３：パスがブロックと記載したものをブロックされているパスと判明する。
【００７２】
Ｓ２６’は、（Ｖｓ，Ｖｅ）＝（０，０）、（０，１）、（１，０）、（１，１）で共通にマルチサイクルと判定されたパスを求める。
【００７３】
以上の図６のＳ３１からＳ３３およびＳ２６’により、始点・終点間の一部分のパスがマルチサイクルパスであることを検出することが可能となる。
【００７４】
図７は、本発明の他の説明図を示す。
図７の（ａ）は、論理回路の例を示す。この論理回路は、始点・終点間の一部分のパスがマルチサイクルパス（図中のＳ３３：パスがブロックと記載した部分）として検出される例を示す。
【００７５】
図７の（ｂ）は、図７の（ａ）をＫ＝２の場合の時間展開して図６のＳ１１からＳ２７によって値の割り当て、含意操作した後の状態を示す。ここでは、Ｓ２４：Ｅ（２）＝Ｖeか判別したときに、ＮＯとなり、既述した図６のＳ３１からＳ３３により、図７の（ａ）のＳ３３：パスがブロックと記載した一部分がマルチサイクルパスとして検出できる。
【００７６】
図８は、本発明の他の説明図を示す。これは、論理回路内に複数のクロックＡ，Ｂで駆動される回路があり、両者の最大公約数を用いてマルチサイクルパスを判定できる様子を示す。
【００７７】
図８の（a)は、異なるクロックで駆動される回路を持つ論理回路の例を示す。ここでは、クロックＡで駆動される回路と、クロックＢで駆動される回路とが存在する様子を示す。
【００７８】
図８の（ｂ）は、クロックＡ，Ｂの関係を示す。ここでは、クロックＡの１サイクル時間の２倍が、クロックＢの１サイクルの時間に等しい場合を示す。
【００７９】
図８の（ｃ）は、時間展開した様子を示す。この場合には、クロックＡ，Ｂの最大公約数で時間展開し、クロックＡで駆動される回路は２つが時間展開され、クロックＢで駆動される回路は１つが時間展開され、両者が全体として一致するように時間展開できる。そして、
・クロックＡで駆動される回路は、既述した図３あるいは図６のフローチャートに従いＫ＝２の場合について、
・クロックＢで駆動される回路は、既述した図３あるいは図６のフローチャートに従いＫ＝１の場合について、
それぞれ始点・終点の値の割り当て、含意操作など全ての組み合わせについて実行して同様にマルチサイクルパスか判定することが可能となる。
【００８０】
（付記１）
論理回路のマルチサイクルパスを検出するタイミング解析プログラムにおいて、
与えられた論理回路のマルチサイクルパスを検出する始点と終点を指示する手段と、
上記指示された始点と終点との間の部分回路を、指定された時間数分に展開する手段と、
上記始点と終点について、各値のとり得る組み合わせを生成する手段と、
上記生成した組み合わせから１組の始点と終点の値を取り出す手段と、
上記取り出した１組の始点と終点の値を、上記展開後の部分回路の該当信号線に割り当てる手段と、
上記割り当てた値をもとに上記展開した部分回路の一意に決まる信号線の値を順次決定する含意手段と、
上記含意手段によって決定した信号線の値について、マルチサイクルパス成立か否かを判別する手段と、
上記全ての組み合わせについて全てマルチサイクルパス成立のときにマルチサイクルパス成立と判定し、１つでも不成立のときにマルチサイクルパス不成立と判定する手段と
してコンピュータに機能させる論理回路のタイミング解析プログラム。
【００８１】
（付記２）
上記マルチサイクルパス不成立として判定されたときに、始点と終点との間に複数のパスがある場合に上記含意手段によって決めた各信号線の値をもとにパス毎にマルチサイクルパスの成立あるいは不成立を判定する手段としてコンピュータに機能させるプログラムを付加した請求項１記載の論理回路のタイミング解析プログラム。
【００８２】
（付記３）
上記時間数分の展開を、小さい時間数から順次大きい時間数に指定して、マルチサイクルパス不成立となったときに、１つ小さい時間数のマルチサイクルパスを最大遅延が許されるサイクルと決定する手段として機能させるプログラムを付加した請求項１あるいは請求項２記載の論理回路のタイミング解析プログラム。
【００８３】
（付記４）
上記論理回路に異なるクロックで駆動される回路がある場合に、これらクロックの最大公約数をもとに時間展開を行う手段として機能させるプログラムを付加した請求項１から請求項３のいずれかに記載の論理回路のタイミング解析プログラム。
【００８４】
（付記５）
論理回路のマルチサイクルパスを検出するタイミング解析方法において、
与えられた論理回路のマルチサイクルパスを検出する始点と終点を指示するステップと、
上記指示された始点と終点との間の部分回路を、指定された時間数分に展開するステップと、
上記始点と終点について、各値のとり得る組み合わせを生成するステップと、
上記生成した組み合わせから１組の始点と終点の値を取り出すステップと、
上記取り出した１組の始点と終点の値を、上記展開後の部分回路の該当信号線に割り当てるステップと、
上記割り当てた値をもとに上記展開した部分回路の一意に決まる信号線の値を順次決定する含意ステップと、
上記含意手段によって決定した信号線の値について、マルチサイクルパス成立か否かを判別するステップと、
上記全ての組み合わせについて全てマルチサイクルパス成立のときにマルチサイクルパス成立と判定し、１つでも不成立のときにマルチサイクルパス不成立と判定するステップと
を有する論理回路のタイミング解析方法。
【００８５】
（付記６）
与えられた論理回路のマルチサイクルパスを検出する始点と終点を指示する手段と、
上記指示された始点と終点との間の部分回路を、指定された時間数分に展開する手段と、
上記始点と終点について、各値のとり得る組み合わせを生成する手段と、
上記生成した組み合わせから１組の始点と終点の値を取り出す手段と、
上記取り出した１組の始点と終点の値を、上記展開後の部分回路の該当信号線に割り当てる手段と、
上記割り当てた値をもとに上記展開した部分回路の一意に決まる信号線の値を順次決定する含意手段と、
上記含意手段によって決定した信号線の値について、マルチサイクルパス成立か否かを判別する手段と、
上記全ての組み合わせについて全てマルチサイクルパス成立のときにマルチサイクルパス成立と判定し、１つでも不成立のときにマルチサイクルパス不成立と判定する手段と
して機能させるプログラムを記録したコンピュータ読取可能な記録媒体。
【００８６】
【発明の効果】
以上説明したように、本発明によれば、与えられた論理回路における検証対象の始点と終点の間の全てのパスがマルチサイクルパスであるかどうかの解析を高速化すると共に計算量を削減し、大規模な論理回路のマルチサイクルパスの検出を実現することが可能となる。
【図面の簡単な説明】
【図１】本発明のシステム構成図である。
【図２】本発明の動作説明フローチャートである。
【図３】本発明の詳細動作説明フローチャートである。
【図４】本発明の説明図（その１）である。
【図５】本発明の説明図（その２）である。
【図６】本発明の他の詳細動作説明フローチャートである。
【図７】本発明の他の説明図である。
【図８】本発明の他の説明図である。
【符号の説明】
１：処理装置
２：始点・終点指示手段
３：時間展開手段
４：値割当手段
５：含意手段
６：判定手段
７：表示装置
８：入力装置
９：ＤＢ
【図１】
0004004780.tif 000002
【図２】
0004004780.tif 000003
【図３】
0004004780.tif 000004
【図４】
0004004780.tif 000005
【図５】
0004004780.tif 000006
【図６】
0004004780.tif 000007
【図７】
0004004780.tif 000008
【図８】
0004004780.tif 000009