(57)【要約】【課題】ゲーティッドクロックの使用や回路の大規模化にも対応でき、処理時間が短く、マルチサイクルパスを正確に検出可能な解析方法を提供する。【解決手段】解析対象回路を構成するセルを含む各素子の名称、素子の端子への信号の意味や関係に対応して解析対象回路の分析を行い、その分析結果を用いて始点から終点までのパスがマルチサイクルパスであるか否かの判定を行う。【選択図】      図１
2004171149.tif 000002
【特許請求の範囲】
【請求項１】
解析対象回路内のパスのうちで、パスの始点から終点まで信号が伝搬する時間として２サイクル以上ついやすことのできるマルチサイクルパスの解析方法において、
前記解析対象回路を構成するセルを含む各素子の名称、および／または該各素子の端子への信号の意味および／または関係に対応して解析対象回路の分析を行い、
該分析結果を用いて始点から終点までのパスがマルチサイクルパスであるか否かのマルチサイクルパス判定を行うことを特徴とするマルチサイクルパス解析方法。
【請求項２】
前記解析対象回路の分析において、各素子の端子への信号の意味に対応して、マルチサイクルパスの解析のための回路変換を行い、
該回路変換の結果を用いて、前記マルチサイクルパス判定を行うことを特徴とする請求項１記載のマルチサイクルパス解析方法。
【請求項３】
前記回路変換において、前記素子の端子への信号のうちで、前記パスの始点と終点における記憶素子へのイネーブル信号に変換可能な信号を、該イネーブル信号に変換する回路変換を行うことを特徴とする請求項２記載のマルチサイクルパス解析方法。
【請求項４】
前記マルチサイクルパス判定において、前記パスの始点と終点における記憶素子へのイネーブル信号の値に基づいて、該記憶素子の値が変化し得るか否かに対応してマルチサイクルパスの判定を行うことを特徴とする請求項３記載のマルチサイクルパス解析方法。
【請求項５】
前記イネーブル信号の値に基づくマルチサイクルパスの判定においてマルチサイクルパスと判定されなかったパスに対して、該パスの始点と終点の間の全てのパスが非活性である時、該パスをマルチサイクルパスと判定することを特徴とする請求項４記載のマルチサイクルパス解析方法。
【請求項６】
前記回路変換において、前記始点および／または終点の記憶素子への値の設定を制御するセレクタへの選択制御信号を、前記イネーブル信号に変換する回路変換を行うことを特徴とする請求項３記載のマルチサイクルパス解析方法。
【請求項７】
前記回路変換において、前記パスの始点と終点とにおける記憶素子を駆動するクロックのクロックゲーティング情報を用いて、該記憶素子を駆動するクロックを、前記イネーブル信号に変換する回路変換を行うことを特徴とする請求項３記載のマルチサイクルパス解析方法。
【請求項８】
前記解析対象回路の分析において、前記各素子の名称に対応して回路内の記憶素子をグループ化し、
該グループのそれぞれが表す有限状態機械の到達可能状態を計算し、
該計算結果を用いて前記マルチサイクルパス判定を行うことを特徴とする請求項１記載のマルチサイクルパス解析方法。
【請求項９】
前記解析対象回路の分析において、該回路の外部入力端子への値設定信号、外部出力端子からの値読み出し信号の間の関係についての条件に基づいて、該条件に対応する制約回路を前記解析対象回路に付加し、
該付加後の解析対象回路に対して前記マルチサイクルパス判定を行うことを特徴とする請求項１記載のマルチサイクルパス解析方法。
【請求項１０】
記憶素子をまたぐパスに対して、前記マルチサイクルパス解析を行うことにより記憶素子をまたいで移動可能なマルチサイクルパス制約を検出することを特徴とする請求項１記載のマルチサイクルパス解析方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はディジタル回路のタイミング解析、および論理検証において解析対象回路内の、例えば２つの記憶素子の間のパスのうちで、パスの始点から終点まで信号が伝搬するのに２サイクル以上ついやすことのできるマルチサイクルパスを検出するためのマルチサイクルパス解析方法に関する。
【０００２】
【従来の技術】
ディジタル回路におけるマルチサイクルパスとは、例えば２つの記憶素子の間で、始点の記憶素子から終点の記憶素子まで信号が伝搬するために２サイクル以上の時間をかけることのできるパスである。一般的に記憶素子の間のパスは１サイクルで信号が伝搬するシングルサイクルパスとして扱われる。
【０００３】
しかしながら記憶素子の間の遅延が大きくなると、その間のパスをシングルサイクルパスとして扱うと設計が難しくなる。パスの始点から終点まで２サイクル以上かけてよいマルチサイクルパスを見つけると、制約がゆるくなって設計を簡単にすることができる。
【０００４】
従来においては、マルチサイクルパスの解析に有効な技術はあまり存在せず、人間が設計時にマルチサイクルパスを指定するのが一般的であった。
純粋な論理回路を対象とする場合の従来技術として次の文献がある。
【０００５】
【非特許文献１】
Ｈ．Ｈｉｇｕｃｈｉ：Ａｎ  Ｉｍｐｌｉｃａｔｉｏｎ−ｂａｓｅｄ  Ｍｅｔｈｏｄ  ｔｏ  ＤｅｔｅｃｔＭｕｌｔｉ−Ｃｙｃｌｅ  Ｐａｔｈｓ  ｉｎ  Ｌａｒｇｅ  Ｓｅｑｕｅｎｔｉａｌ  Ｃｉｒｃｕｉｔｓ，ＩＥＥＥ／ＡＣＭ  Ｄｅｓｉｇｎ  Ａｕｔｏｍａｔｉｏｎ  Ｃｏｎｆ．  ｐｐ．１６４−１６９，２００２
しかしながら、実際の一般的なディジタル回路では論理ゲートがセルライブラリのセルにマッピングされ、クロックが２つ以上あったり、ゲーティッドクロックが使用されていたりするために、実際のディジタル回路でマルチサイクルパスを自動で検出することは困難であった。
【０００６】
また回路の状態遷移、すなわち初期状態からの到達可能性を、回路全体を１つの有限状態機械として計算し、マルチサイクルパスの検出に利用する方法があった。この方法は次の文献に記述されている。
【０００７】
【非特許文献２】
Ｋ．Ｎａｋａｍｕｒａ他“Ｗａｉｔｉｎｇ  Ｆａｌｓｅ  Ｐａｔｈ  Ａｎａｌｙｓｉｓ  ｏｆ  Ｓｅｑｕｅｎｔｉａｌ  Ｌｏｇｉｃ  Ｃｉｒｃｕｉｔｓｆｏｒ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｏｐｔｉｍｉｚａｔｉｏｎ”，ＩＥＥＥ／ＡＣＭ  ＩＣＣＡＤ  ９８  ｐｐ．３９２−３９５，
しかしながら、この方法では、回路全体を１つの有限状態機械として扱うために、回路が複雑になると有限状態機械の規模が膨大になり、マルチサイクルパスを検出する実用的な方法としては必ずしも有効ではなかった。
【０００８】
更に２つの記憶素子の間のパスを一まとめとしてマルチサイクルパスを検出する従来の方法では、対象となるマルチサイクルパスが本当に活性化されるか、すなわちそのパスを通して始点における記憶素子の値変化が終点の記憶素子まで伝搬しているのか、あるいは始点以外の記憶素子の値変化が終点の記憶素子まで伝搬しているのか区別がつけられなかった。
【０００９】
【発明が解決しようとす課題】
近年の回路の大規模化に伴って、マルチサイクルパスの解析は複雑となり、処理時間が増大するという問題点が生じている。またゲーティッドクロックが使用されているようにクロックが複雑な場合には、クロックの影響を正確に把握することができず、マルチサイクルパスの検出が困難になるという問題もあった。
【００１０】
また２つの記憶素子の間のパスを一まとめとしてマルチサイクルパスを検出する従来の方法では、対象となるマルチサイクルパスが本当に活性化されるか否かを調べていなかったために、マルチサイクルパスの検出の能力が低下するという問題点があった。
【００１１】
更に設計の早い段階で、設計者によってマルチサイクルパスが指定されている場合、そのマルチサイクルパスの指定は一般に固定されていたために、設計後の段階で実際にタイミングが厳しいパスに指定が行われず、タイミング制約が満たされないという問題点があった。またチップ製造による回路の遅延のバラつきが増大している傾向があるが、タイミング制約は設計段階で固定されていたため、製品の歩留まりの低下が問題となっていた。
【００１２】
本発明の課題は、上述の問題点に鑑み、ゲーティッドクロックの使用や回路の大規模化にも対応可能であり、処理時間が短く、正確にマルチサイクルパスを検出できるマルチサイクルパス解析方法を提供することである。
【００１３】
またパスの活性化条件を調べることによってマルチサイクルパスの検出能力を向上させ、更に設計段階でマルチサイクルパスが指定されている場合にも、マルチサイクルパスの移動可能性を調べることによって製品の遅延のバラつきにも対応できる解析方法を提供することである。
【００１４】
【課題を解決するための手段】
図１は本発明のマルチサイクルパス解析方法の原理的な機能ブロック図である。同図は解析対象回路内のパスのうちで、パスの始点から終点まで信号が伝搬するのに２サイクル以上ついやしてよいマルチサイクルパスの解析方法の機能ブロック図である。
【００１５】
図１において、１で回路を構成するセルを含む各素子の名称、素子の端子への信号の意味、関係に対応して解析対象回路の分析が行われ、２で始点から終点までのパスがマルチサイクルパスであるか否かのマルチサイクルパス判定が行われる。
【００１６】
発明の実施の形態においては、回路分析１において素子の端子への信号の意味に対応して、マルチサイクルパスの解析のための回路変換を行い、その変換結果を用いてマルチサイクルパス判定２を行うこともできる。
【００１７】
この場合、素子の端子への信号のうちで、パスの始点と終点における記憶素子へのイネーブル信号に変換可能な信号を、イネーブル信号に変換する回路変換を行うこともでき、マルチサイクルパス判定２において始点と終点の記憶素子へのイネーブル信号の値に基づいて、記憶素子の値が変化し得るか否かによってマルチサイクルパスの判定を行うこともできる。
【００１８】
更に回路変換において、始点、終点の記憶素子への値の設定を制御するセレクタへの選択制御信号をイネーブル信号に変換する回路変換を行うことも、また始点、終点の記憶素子を駆動するクロックのクロックソースが記憶素子である時、そのクロックソースの記憶素子へのイネーブル信号を始点、終点の記憶素子へのイネーブル信号に変換する回路変換を行うことも、更に始点、終点の記憶素子を駆動するクロックのクロックゲーティング情報を用いて、駆動するクロックをイネーブル信号に変換する回路変換を行うこともできる。
【００１９】
また実施の形態においては、イネーブル信号の値に基づくマルチサイクルパスの判定においてマルチサイクルパスと判定されなかったパスに対して、そのパスの始点と終点の間の全てのパスが非活性である時、そのパスをマルチサイクルパスと判定することもできる。
【００２０】
また実施の形態においては、回路の分析１において回路の外部入力端子への値設定信号、外部出力端子からの値読み出し信号の間の関係に関する条件に基づいて、その条件に対応する制約回路を解析対象回路に付加し、付加後の解析対象回路に対してマルチサイクルパス判定２を行うことも、また分析１において各素子の名称に対応して回路内の記憶素子をグループ化し、グループのそれぞれが表す有限状態機械の到達可能状態を計算し、計算結果を用いてマルチサイクルパスの判定２を行うこともできる。
【００２１】
更に実施の形態においては、マルチサイクルパスと判定されたパスのうちで、パスの始点と終点とにある記憶素子の間のパス上に１つ以上の記憶素子があり、かつ回路設計時に連続する２つの記憶素子の間の部分パスの一部にマルチパス制約が設定されている時、そのマルチパス制約を他の部分パスに移動可能か否かを、始点と終点の記憶素子へのイネーブル信号によって更に調べることもできる。
【００２２】
また以上の説明のように、解析対象回路の分析１において回路変換を実際に行う代わりに、回路変換を行うために必要な情報を記憶し、その記憶内容を用いてマルチサイクルパス判定２を行うこともできる。
【００２３】
また実施形態におけるマルチサイクルパス解析装置は、前述のマルチサイクルパスの解析のための回路変換を実行する回路変換手段と、回路変換結果を用いてマルチサイクルパスの判定を行うマルチサイクルパス判定手段とを備え、また回路変換手段がパスの始点と終点における記憶素子へのイネーブル信号に変換可能な信号を、イネーブル信号に変換する回路変換を行うこともできる。
【００２４】
更に実施形態においては、マルチサイクルパス解析方法を実現するためのプログラムとして、マルチサイクルパスの解析のための回路変換を行う手順と、その変換結果を用いてマルチサイクルパス判定を行う手順とを計算機に実行させるためのプログラムが用いられる。
【００２５】
以上のように本発明によれば、例えば回路を構成する各素子の端子への信号の意味に対応して、マルチサイクルパスの解析のための回路変換が行われ、その結果を用いてマルチサイクルパスの判定が行われる。
【００２６】
【発明の実施の形態】
図２は本発明の実施形態におけるマルチサイクル検出の基本処理の説明図である。同図において、まずステップＳ１でマルチサイクルパス検出処理に必要なデータの入力が行われる。このデータとしては検出対象となる回路、その回路におけるパス、例えば始点としての記憶素子と、その記憶素子からの信号がパスを経由して入力される終点の記憶素子との組、外部入出力の値の設定や、記憶素子からのデータの読み出し時刻に関する始点と終点の間の関係についての制約などが入力される。この外部入出力の値設定や、読み出し時刻の間の関係の制約については後述する。
【００２７】
次のステップＳ２からＳ６までが、マルチサイクルパスの検出の本質的な処理である。まずステップＳ２では、各種の信号の中で、例えば記憶素子へのイネーブル信号に変換可能な信号が全てイネーブル信号に変換される。本実施形態においては回路内のパスの始点と終点における記憶素子の記憶値、例えばフリップフロップの値の変化によってマルチサイクルパスの検出が行われるが、このフリップフロップの値の変化の有無は基本的にイネーブル信号の値によって支配されるため、このイネーブル信号の値によってマルチサイクルパスの検出が行われる。
【００２８】
ステップＳ２では、このようなイネーブル信号への変換可能な信号として、まず第１に値設定制御セレクタに対する選択制御入力のイネーブル信号への変換が行われる。値設定制御セレクタとは、後述するように、例えば始点や終点におけるフリップフロップへの値の設定を制御するためのセレクタであり、そのセレクタへの選択制御入力がイネーブル信号に変換される。
【００２９】
イネーブル信号に変換される第２の信号は、ゲーティッドクロックである。ゲーティッドクロックとは、元々のクロック信号とフリップフロップのクロック端子との間に、例えばアンドゲートが挿入され、このアンドゲートへの入力の条件によってアンドゲートの出力が決定される形式で、クロックが与えられるものである。
【００３０】
第３の信号変換は、例えばフリップフロップのクロック端子に更に記憶素子が接続され、その記憶素子がクロックソースとなっている場合に、その記憶素子へのイネーブル信号を始点や終点におけるフリップフロップへのイネーブル入力信号に変換するものである。
【００３１】
ステップＳ３では、ステップＳ２で変換された信号を含めて始点、および終点の記憶素子へのイネーブル入力信号の抽出が行われ、続いてステップＳ４で、ステップＳ１で説明した外部入出力の値設定や、読み出し時刻の始点と終点の間での関係についての制約に対する等価回路の付加が行われる。この処理についても後述する。
【００３２】
続いてステップＳ５で、回路中の局所的な有限状態機械（ＦＳＭ）が同定され、その初期状態から到達可能な状態を数え上げる検出処理が行われる。その詳細についても後述する。
【００３３】
ステップＳ６では始点にある、例えばフリップフロップがイネーブルになる時刻の次の時刻で、終点にあるフリップフロップがイネーブルになるか否かが調べられる。次の時刻で終点にあるフリップフロップがイネーブルになる場合には、１サイクルで始点から終点に信号が伝達することになるので、そのパスはマルチサイクルパスではなく、シングルサイクルパスであることになる。
【００３４】
またステップＳ６では、始点から終点へのパスが活性化されるか、すなわち１サイクルで始点からの信号が終点に到達するか否かが調べられ、始点・終点の間の全てのパスが活性化されない場合には、始点と終点をむすぶパスはマルチサイクルパスであることになる。
【００３５】
以上によってマルチサイクルパス検出の基本処理が終了し、ステップＳ７でマルチサイクルパスの判定結果が出力されて、マルチサイクルパスの検出処理を終了する。
【００３６】
図３は、始点の記憶素子と終点の記憶素子との間のパス上に他の記憶素子が存在するか、すなわちパスが記憶素子をまたいでいるか否かを調べて、そのような記憶素子をまたいでいるマルチサイクルパスを対象として、そのパス上で例えば設計時に指定されているマルチサイクルパス制約を移動することが可能か否かを調べるマルチサイクルパス移動可能性検出処理の基本フローチャートである。
【００３７】
まずステップＳ８で対象となる回路の指定が行われる。
ステップＳ９で、記憶素子をまたぐパスを検出対象として、その始点と終点の間のパス上で（またいだ記憶素子数＋１）のサイクル数を越えるマルチサイクルパスの検出が行われる。例えば始点のフリップフロップと終点のフリップフロップとの間のパス上に１つのフリップフロップが存在する場合には、（またいだ記憶素子数＋１）は“２”となり、２サイクルを越えるマルチサイクルパス、すなわち３サイクル以上かかるマルチサイクルパスの検出が行われる。
【００３８】
続いてステップＳ１０で、マルチサイクルパスが始点と終点の間で、どの記憶素子の間のパスに移動可能かの移動可能性が出力される。前述のようにパス上に１つの記憶素子をまたぐ形式で３サイクル以上のマルチサイクルパスが検出された場合には、例えば設計段階で指定されているマルチサイクルパスが始点とパス上の記憶素子の間か、パス上の記憶素子と終点の間のいずれに指定されているかによって、指定されたパスが例えば始点とパス上の記憶素子との間である場合には、そのマルチサイクルパス制約をパス上の記憶素子と終点との間に移動することが可能であり、その可能性がステップＳ１０で出力される。
【００３９】
図４はデータ処理装置、すなわちコンピュータを用いて図２および図３の基本処理を実行する場合のデータ処理装置の構成ブロック図である。同図において、データ処理装置１０には入出力装置１１と記憶装置１２とが接続されている。入出力装置１１は回路データの読み込みや、ユーザの操作入力、検出結果のマルチサイクルパスデータの出力などを行うものであり、記憶装置１２は回路データ、処理の中間結果などを格納するものである。
【００４０】
データ処理装置１０の内部には、与えられた回路の中でマルチサイクルパス解析を行うべきパスの始点と終点の組を指示する始点・終点指示部１３、図２のステップＳ２の処理を実行するイネーブル信号化部１４、ステップＳ３の処理を実行するイネーブル入力抽出部１５、ステップＳ４の処理を実行する外部端子値設定・読み出し時刻制約回路生成部１６、ステップＳ５の処理を実行する局所ＦＳＭ到達可能性解析部１７、ステップＳ６の処理を実行するマルチサイクルパス解析部１８、および図３のステップＳ９の処理を実行する記憶素子をまたいだマルチサイクルパス解析部１９を備えている。
【００４１】
図５は本実施形態におけるマルチサイクルパス解析処理の詳細フローチャートである。同図の処理を各ステップの詳細処理や、回路の具体例を示す図６〜図２０を用いて詳細に説明する。
【００４２】
図５において処理が開始されると、まずステップＳ１２で解析処理の対象となる回路Ｃ、始点と終点の組の集合Ｐ、および外部端子のタイミング的条件Ｅの入力が行われる。このタイミング的条件Ｅとしては、例えば外部入力Ａの値が変化してから５クロックの間は外部入力Ｂの値が変化しないという条件や、外部出力Ｄの値はＡの値が変化してから、３クロック後のみ以降に観測されるなどの条件が考えられる。
【００４３】
ステップＳ１３では回路Ｃの中のクロックツリー以外の部分（例えば論理演算部のみ）のそれぞれの記憶素子、例えばフリップフロップＦＦｉについて、そのフリップフロップを駆動するクロックのゲーティッドクロックと、クロックソースとなっている（クロックツリー内部の）記憶素子へのイネーブル入力とがＦＦｉのイネーブル信号に変換される。
【００４４】
この処理では、クロックツリー以外の部分の例えばフリップフロップＦＦｉについて、それを駆動するクロックがクロックソースからの信号を条件によってマスクするゲーティッドクロックかどうかが調べられ、クロックソースからの信号がマスクされない条件に対応する回路が合成されてＦＦｉのイネーブル信号ＥＮｇａｔｅｄに変換される。
【００４５】
またクロックソースが記憶素子である場合には、その記憶素子に対するイネーブル入力がそのままＦＦｉのイネーブル信号ＥＮｃｌｋｓｒｃとされる。ＦＦｉに対する元々のイネーブル入力をＦＮｏｒｉｇとすると、これら３つのイネーブル信号をファンインとするアンドゲートが生成され、その出力がＦＦｉのイネーブル入力に接続される。
【００４６】
図６はこのステップＳ１３の詳細フローチャートである。同図の処理を図７と図８の回路の具体例を用いて説明する。
図６で処理が開始されると、ステップＳ３１でクロック信号の情報、図７ではクロック端子からの信号ｘがクロック信号であるという情報が入力され、ステップＳ３２でクロックツリーＣＴの解析が行われる。
【００４７】
この解析ではクロック信号を出す端子、図７ではｘを出す端子から出力方向、すなわちＦＦのクロック入力端子への方向で論理ゲート以外のセル、またはモジュールに到達するまで、ここではＦＦ２１に到達するまでファンアウトがたどられ、その時たどった部分回路がクロックツリーＣＴとされる。
【００４８】
図７では、信号ｘを伝達するパスと、アンドゲート２２、およびアンドゲート２２の出力ｆをＦＦ２１のクロック端子に接続するパスによって構成される部分回路がクロックツリーである。アンドゲートに対するもう一方の入力、すなわちｇ１の伝達パスはクロックツリーＣＴには含まれない。
【００４９】
ステップＳ３３でクロックツリーＣＴの根、図７ではクロック端子とＣＴ以外のノードの出力端子、すなわちｇ１を出力する部分回路２３の端子に論理変数ｇ１が割り当てられ、ＣＴの葉、すなわちＦＦへのクロック入力端子における論理関数の計算が行われる。
【００５０】
図７ではＦＦが１つしか存在せず、ＣＴの葉は１つのみであるが、一般に回路Ｃ内には複数のＦＦが存在するため、ステップＳ３３ではすべてのＦＦに対応してクロック入力端子における論理関数の計算が行われる。ここで計算される論理関数は図７に対しては次式となる。
ｆ＝ｘ・ｇ１
続いてステップＳ３４で、クロックツリーＣＴの葉がクロック入力につながっているＦＦの集合Ａが求められる。図７ではこの集合Ａは１つのＦＦ２１のみを要素としている。
【００５１】
ステップＳ３５で集合Ａが空になっているか否かが判定され、空になっていない場合にはステップＳ３６で集合ＡからＦＦが１つ取り出され、ＦＦｉとされる。続いてステップＳ３７でＦＦｉのクロック入力としての、クロックツリーＣＴの葉における論理関数ｆが、ツリーの根における論理変数としてのクロック端子からの信号ｘに依存する場合、すなわちｘをそのままの形で含む場合には正相クロック、ｘ’すなわちｘの反転信号に依存する場合、すなわちｘ’を含む場合には逆相クロックとする判定処理が行われ、その判定結果に対応してステップＳ３８でゲーティッドクロックがイネーブルになる条件を表す論理関数Ｆが求められる。
【００５２】
すなわちステップＳ３８では、論理関数ｆ内のｘを“１”とした場合のｆの値や、ｘを“０”とした場合のｆの値の反転値などを用いて、正相クロックと逆相クロックに対応して、次式によって論理関数Ｆが求められる。次式で＊は積を示す。
正相クロックのとき  Ｆ＝ｆ｜ｘ←１＊（ｆ｜ｘ←０）’
逆相クロックのとき  Ｆ＝ｆ｜ｘ←０＊（ｆ｜ｘ←１）’
図７では、論理関数ｆはｘに依存しているため、ステップＳ３７で正相クロックと判定される。ステップＳ３８で正相クロックに対応する式においてｘに“１”を代入した時のｆの値はｇ１であり、ｘに“０”を代入した時のｆの値、すなわち“０”の反転値は“１”となることからＦの値はｇ１となる。
【００５３】
図６のステップＳ３９でこの論理関数Ｆを計算する論理回路が生成され、その回路の入力が対応するＣの中の端子と接続され、生成された回路の出力がＦＦｉに対するイネーブル信号ＥＮｇａｔｅｄとされ、ステップＳ３５以降の処理が繰り返され、ステップＳ３５で信号Ａが空であると判定された時点で処理を終了する。
【００５４】
図８はステップＳ３９で図７に対応して生成された回路である。この回路ではＦ、すなわちｇ１を生成する回路の出力がそのままＥＮｇａｔｅｄとされ、元々のイネーブル信号ＥＮｏｒｉｇと共にアンドゲート２５に入力され、そのアンドゲート２５の出力がＦＦ２１のイネーブル端子に入力される。一方クロック端子からの信号ｘはそのままクロック端子に入力される。
【００５５】
図５に戻り、続いてステップＳ１４でタイミング的条件Ｅが外部端子に対する制約回路に変換され、回路Ｃに付け加えられる。例えば外部入力Ａの値が変化してから５クロックの間は外部入力Ｂの値が変化しないという条件に対しては、外部入力Ａの値が変化した次の時刻に“０”となり“５”まで数えてその後はその値を保持するカウンタを生成し、その値が“５”の時にのみ外部入力Ｂに外部から値を取り込む回路が付け加えられる。
【００５６】
図９はステップＳ１４の詳細処理のフローチャートである。同図において処理が開始されると、まずステップＳ４１で外部入力の値設定、読み出し時刻制約が例えばメモリから取り出される。この制約は図５のステップＳ１２で入力された外部端子のタイミング的条件Ｅに相当する。
【００５７】
続いてステップＳ４２で、外部入力に対応する値設定制約、すなわち“入力ＰＩ１が値設定されてからＫ時間、入力ＰＩ２に対しては“値が設定されない”という制約に対して、図１０に示すような付加回路が構成される。この制約は例えばＰＩ１としてアドレスが外部から指定されても、それに対応するデータがＩＰ２に与えられるのが時間的に遅れることに相当する。
【００５８】
図１０においては、回路Ｃ３０の外部入力端子ＰＩ１に対しては、ＦＦ３１とＸＯＲ３２とを用いた回路、また外部入力端子ＰＩ２に対してはＦＦ３３とセレクタ３４を用いた回路が付け加えられる。
【００５９】
図１０において外部入力信号ＰＩ１の値が変化、例えば“０”から“１”に変化すると、その値は外部入力端子ＰＩ１に与えられると共に、ＦＦ３１に対するデータ入力、およびＸＯＲ３２の一方の入力に与えられる。この時点ではＦＦ３１の出力はそれ以前のＰＩ１の値、すなわち“０”であり、ＸＯＲ３２の出力ＸはＰＩ１が“０”から“１”に変化した時点、例えば時刻ｔにおいて“１”となる。
【００６０】
そこでこのＸ（ｔ）＝１に対応して外部入力端子ＰＩ２の入力側に接続されるセレクタ３４に対する選択制御信号Ｃを、次式のように与える関係を、例えばメモリに保存しておき、時刻ｔ以降の計算に使用するものとする。
2004171149.tif 000003
保存された、このような関係を使用することより、外部入力ＰＩ２の値にかかわらず、時刻ｔ＋１からｔ＋Ｋまでの間はセレクタ３４への選択制御信号Ｃの値が“０”となり、セレクタ３４はデータ入力０、すなわちＦＦ３３の出力を選択することによって、時刻ｔ＋１から時刻ｔ＋Ｋの間は、外部入力ＰＩ２の値は設定されないことになる。
【００６１】
図９に戻り、ステップＳ４３で次の外部入力の値設定制約「ＰＩ１＝ｖの時、ＰＩ２は値設定されない」という制約に対して付加回路が構成される。ここでｖは“０”でも“１”でもよいものとするが、例えばｖ＝０とした場合の付加回路の例を図１１に示す。
【００６２】
図１１では、ＰＩ２の入力端子の前にセレクタ３５とフリップフロップ３６で構成される回路が付け加えられている。外部入力ＰＩ１＝０の時には、セレクタ３５はＦＦ３６の出力を選択するが、この時ＦＦ３６には以前に設定されたＰＩ２の値、例えば“０”が記憶されており、外部入力端子ＰＩ２には常にＦＦ３６の出力として以前に設定された値、例えば“０”が出力される。ＰＩ２として外部から新しい値を設定しようとしても、ＰＩ１＝０である限り、その値は設定されない。
【００６３】
再び図９のステップＳ４４で、外部出力の値の読み出し制約「ＰＯ１＝ｖの時、ＰＯ２は値読み出しされない」という制約において、例えばｖ＝０とすると、付加回路の例は図１２に示される。
【００６４】
図１２では外部出力端子ＰＯ２の出力側にセレクタ３７とＦＦ３８とによって構成される回路が付け加えられる。外部出力ＰＯ１＝０の時には、セレクタ３７はＦＦ３８の値、すなわち以前に読み出されたＰＯ２の値として、例えば“０”を出力し、外部からＰＯ２の値を読み出そうとしても、新しい値を読み出すことはできない。ＰＯ＝１に変化して、初めてＰＯ２の新しい値を外部から読みだすことが可能となる。
【００６５】
続いて図５のステップＳ１５で回路Ｃの内部の記憶素子がグループ化され、各グループが表す有限状態機械（ＦＳＭ）の到達可能状態の数え上げが行われる。この処理では、回路Ｃ内の記憶素子が、例えばその名前などによってグループ化され、それそれのグループを局所ＦＳＭとして、初期状態から到達可能な状態が全て数え上げられ、その情報が保持される。
【００６６】
図１３はこのステップＳ１５の詳細処理フローチャートである。この処理について図１４を用いて説明する。
図１３において処理が開始されると、まずステップＳ４６で外部から指定された、あるいは例えば各フリップフロップにつけられた名前の類似性から自動的に得られるグループのうち、クリア端子を持つグループか、プリセット端子を持つグループが１つのＦＳＭとされる。
【００６７】
例えば共にクリア端子を持ち、その名前がＦＳＭ−ＲＥＧ−１、ＦＳＭ−ＲＥＧ−０という類似した名前を持つ２つのＦＦのグループが１つのＦＳＭとされる。ここでクリア端子を共に持つことから、クリア入力を“１”とすることによって、このＦＳＭの初期状態は次のようになる。
【００６８】
（ＦＳＭ−ＲＥＧ−１，ＦＳＭ−ＲＥＧ−０）＝（０，０）
この初期状態を求める処理がステップＳ４７である。ステップＳ４７では、それぞれのＦＳＭのＦＦがクリア端子を持つか、あるいはプリセット端子を持つかによって、ＦＳＭの初期状態が求められる。すなわちクリア端子を持つＦＦのグループは初期値が０であり、プリセット端子を持つＦＦのグループは初期値が１となる。
【００６９】
続いてステップＳ４８でその初期状態から到達可能な状態が全て求められる。図１４はその状態探索の結果としての状態遷移の説明図である。同図においては回路Ｃの構成に従って、初期状態（０，０）からの到達可能状態は次のようになる。状態（１，０）には回路Ｃの構成状態によって遷移できないことが分かる。
【００７０】
｛００，０１，１１｝
続いてステップＳ４９で到達可能状態の集合から含意関係が抽出される。含意関係とは、この状態探索の結果から抽出される状態の間のユニークな関係を示し、その例として次の関係が抽出される。
【００７１】
ＦＳＭ−ＲＥＧ−０（ｔ）＝０⇒ＦＳＭ−ＲＥＧ−０（ｔ＋１）＝１
図５に戻り、ステップＳ１６で始点と終点の組の集合Ｐが空であるか否かが判定される。ここでは一般的に空ではなく、ステップＳ１７で集合Ｐから始点Ｓと終点Ｔの組が１つ取り出され、ステップＳ１８で始点Ｓおよび終点Ｔに対応する値設定制御セレクタの選択制御入力が、始点Ｓと終点Ｔにおけるフリップフロップに対するイネーブル信号に変換される。
【００７２】
この処理では、例えば始点ＳにおけるフリップフロップのＤ入力にセレクタが直接つながり、かつセレクタへのデータ入力の一方がそのフリップフロップのＱ出力と等価であれば、そのセレクタが始点Ｓに対する値設定制御セレクタとして認識され、そのセレクタの選択制御入力とフリップフロップへのイネーブル信号の論理積をとった出力が、あらためてそのフリップフロップのイネーブル入力に接続される。終点Ｔにおけるフリップフロップについても同様の処理が行われる。
【００７３】
図１５はステップＳ１８の変換処理の詳細フローチャートである。同図においては、例えば始点Ｓに対応する処理が全て終了した後に、終点Ｔに対応する処理が再び実行される。
【００７４】
処理が開始されると、まずステップＳ５１で始点ＳにおけるフリップフロップへのＤ入力がセレクタの出力になっているか否かが判定され、セレクタの出力でない場合には直ちに処理を終了する。すなわち、セレクタの出力になっていない場合には、フリップフロップへのＤ入力はセレクタ以外の、例えばアンドゲートやオアゲートから与えられることになり、セレクタの制御入力の変換は不必要であり、直ちに処理を終了する。
【００７５】
セレクタの出力である場合には、ステップＳ５２でセレクタへのデータ入力の１つがそのフリップフロップのＱ出力であるか否かが判定され、Ｑ出力でない場合にも、そのセレクタに対しては、選択制御入力のイネーブル信号への変換が必要ないものとして、直ちに処理を終了する。
【００７６】
Ｑ出力である場合には、ステップＳ５３でセレクタへの入力データとして、フリップフロップのＱ出力を選択するための選択制御入力信号値を生成する回路からの信号が、始点Ｓにおけるフリップフロップに対するイネーブル信号とされて、処理を終了する。
【００７７】
図１６はステップＳ５３における処理の説明図である。同図において、例えば始点Ｓにおけるフリップフロップ５１のＤ入力にセレクタ５２の出力が与えられ、またＦＦ５１のＱ出力がセレクタ５２のデータ入力端子０に接続されている。この回路ではセレクタ５２に対する選択制御信号Ｃが“０”の場合にはＦＦ５１の出力が選択され、ＦＦ５１のＤ入力に与えられるが、信号Ｃが“１”となることによって外部入力に相当する信号ＸがＤ入力に与えられることになる。従ってこの信号Ｃは、セレクタ５２が存在せず、外部からの信号ＸがＦＦ５１のＤ入力に直接与えられている場合に、ＦＦに対するイネーブル信号の役割を果たすことになり、この信号ＣをＦＦのイネーブル端子にそのまま接続することができる。
【００７８】
前述のように、始点Ｓに対する図１５の処理が終了すると、終点Ｔに対する図１５の処理が行われ、終点Ｔにおけるフリップフロップに対応するセレクタの選択制御信号がイネーブル信号に変換される。
【００７９】
再び図５のステップＳ１９に戻り、マルチサイクルパスの判定が開始される。まずステップＳ１９では、始点Ｓにおける記憶素子がイネーブルになる時刻の次の時刻で、終点Ｔにおける記憶素子がディセーブルであるか否かが判定される。
【００８０】
すなわち始点Ｓの記憶素子がイネーブルとなって値が変化する可能性が発生した時刻の次の時刻で、終点Ｔの記憶素子がイネーブルになって値が変化し得る場合には、始点Ｓの記憶素子に取り込まれた値は１サイクルで終点Ｔの記憶素子に到達する必要がある可能性があり、ＳとＴの間のパスはマルチサイクルパスであるとはいえない。
【００８１】
このようなことが決してなく、次の時刻で終点Ｔの記憶素子がディセーブルである場合には、始点Ｓの記憶素子に取り込まれた値は１サイクルで終点Ｔの記憶素子に到達する必要がなく、そのパスはマルチサイクルパスであることが分かる。
【００８２】
図１７はそのようなマルチサイクルパスの具体例の説明図である。同図においてＦＦ１を始点Ｓにおける記憶素子、ＦＦ２を終点Ｔにおける記憶素子とする。ＦＦ１とＦＦ２との間の組合せ回路部におけるパスがマルチサイクルパスであるか否かを判定する。ある時刻ｔにおいてＦＦ１に対するイネーブル信号が“１”であるとすると、ＦＦ３とＦＦ４の出力は共に“０”である。次の時刻ｔ＋１でＦＦ３の出力は“０”、ＦＦ４の出力は“１”となり、ＦＦ２へのイネーブル信号は“０”となる。そこでステップＳ１９の判定条件が成立することが分かる。
【００８３】
図５に戻り、ステップＳ１９で終点Ｔがディセーブルである場合には直ちにステップＳ２１でそのパスがマルチサイクルパスと判定され、ステップＳ１６以降の処理が繰り返される。
【００８４】
これに対してステップＳ１９で、次の時刻で終点Ｔの記憶素子がディセーブルであると明確に判定できなかった場合には、ステップＳ２０でパス活性化条件を調べることによって、そのパスがマルチサイクルパスであると判定されるか否かが調べられる。
【００８５】
すなわち、この処理では始点Ｓの記憶素子がイネーブルになった時刻で始点Ｓから終点Ｔまでの全てのパスが非活性か否か、すなわち始点Ｓでの値変化が終点まで伝搬しないかが、後述するパス活性化条件を利用して調べられる。全てのパスが非活性であると分かれば、ステップＳ２１でそのパスはマルチサイクルパスと判定され、ステップＳ１６以降の処理が繰り返される。ステップＳ２０で全てのパスが必ずしも非活性でなく、１つでも活性のパスが存在する場合には直ちにステップＳ１６に移行する。
【００８６】
図１８はステップＳ２０の判定処理の詳細フローチャートである。同図において処理が開始されると、ステップＳ５６で始点Ｓと終点Ｔとの間で未処理のパスが存在するか否かが判定され、存在する場合にはその未処理のパスがステップＳ５７で１つ選択され、ステップＳ５８で活性化条件として、例えばスタティックコセンシティゼーション条件を用いて調べられる。この条件については次の文献がある。
【００８７】
【非特許文献３】
Ｓ．Ｄａｖａｄａｓ他：Ｌｏｇｉｃ  Ｓｙｎｔｈｅｓｉｓ，ｐ．２３９，ＭｃＧｒａｗ−Ｈｉｌｌ，１９９４
このスタティックコセンシティゼーション条件について簡単に説明する。パス上に例えばアンドゲートが存在する場合には、その出力としてのコントロールドバリューは“０”であり、そのアンドゲートに対する入力のうち、パス上の入力の値はコントロールリングバリューとしての“０”でなければならないという条件が与えられる。すなわち、このアンドゲートに対する他の入力としては他のパスからの信号が与えられるが、パス上の入力の値が“０”であれば他のパスからの入力の値に無関係に出力は“０”となり、そのパスのアンドゲートに対しては活性化条件が成立することになる。
【００８８】
例えばオアゲートに対するコントロールドバリューは“１”であり、パス上の入力の値がコントロールバリューとしての“１”であれば、そのオアゲートに対しては活性化条件が成立する。
【００８９】
パス上の全てのノード（ゲートやセル）に対して全て活性化条件が成立した場合には、ステップＳ５９で活性化条件が成立したと判定されて処理を終了するが、活性化条件が成立しない場合には、ステップＳ５６からの処理が未処理のパスに対して繰り返され、未処理のパスが存在しないと判定された時点で処理を終了する。
【００９０】
図５のステップＳ１６で始点、終点の組の集合Ｐが空であると判定されると、ステップＳ２２で始点の記憶素子と終点の記憶素子との間のパス上に記憶素子が存在するマルチサイクルパス、すなわち記憶素子をまたいでいるマルチサイクルパスを対象として、（またいだ記憶素子の数＋１）のサイクル数を越えたサイクル数のマルチサイクルパスの検出が行われる。
【００９１】
そしてそのようなマルチサイクルパスが検出されると、ステップＳ２３でそのマルチサイクルパス上で、記憶素子と記憶素子との間のそれぞれの部分的なパス上で、例えばある部分パスに対して設計時に指定されたマルチサイクルパス制約が他の部分パスに移動できるかどうかを示す移動可能性が出力されて処理を終了する。
【００９２】
図１９はそのようなマルチサイクルパス制約の移動可能性が調べられるマルチサイクルパスの具体例の説明図である。同図は回路Ｃの一部分であり、ＦＦＡは値が設定されてから３クロックたつまでその値を保持するものとし、ＦＦＢは１クロック毎にＦＦＡから組合せ回路を介して入力される値を取り込むものとし、ＦＦＣはＦＦＡに値が制約定されてから３クロック経過後に、ＦＦＢから組合せ回路を介して入力される値を取り込むものとする。
【００９３】
そこでＦＦＢをまたいだＦＦＡとＦＦＣの間のパスは３サイクルのマルチサイクルパスとなるが、このマルチサイクルパス上にはＦＦＢが１つしかないため、ＦＦＡとＦＦＢとの間、またはＦＦＢとＦＦＣとの間のいずれかを２サイクルパスにすることができる。例えば設計時にＦＦＡとＦＦＢとの間が２サイクルのマルチサイクルパスとする制約が入力されていたとしても、そのマルチサイクルパスをＦＦＢとＦＦＣとの間に移動することが可能と考えられる。
【００９４】
図２０は図５のステップＳ２２、すなわち（またいだ記憶素子の数＋１）のサイクル数を越えたマルチサイクルパスの検出処理の詳細フローチャートである。同図においては回路Ｃ内のＦＦの全ての組合せ、すなわちＦＦ対に対して、ステップＳ６１〜ステップＳ６５の処理が実行される。
【００９５】
処理が開始されると、まずステップＳ６１で未処理のＦＦ対が存在するか否かが判定され、存在する場合にはステップＳ６２で未処理のＦＦ対が１つ選択され、その始点がＳ、終点がＴとされ、ステップＳ６３で始点と終点の間にＦＦが存在するか、すなわち選択されたＦＦ対の間のパスが記憶素子をまたいでいるか否かが判定され、またいでいない場合にはステップＳ６１以降の処理が繰り返される。
【００９６】
またいだＦＦが存在する場合には、ステップＳ６４で始点Ｓと終点Ｔの間に並列的に存在するパスのそれぞれにあるＦＦの数が調べられ、その数の最大値がＫとされ、ステップＳ６５でその最大数ＫのＦＦをまたぐパスが（Ｋ＋２）サイクル以上のマルチサイクルパスであるか否かが調べられ、（Ｋ＋２）サイクル以上のマルチサイクルパスである場合には、そのパスはマルチサイクルパスの移動可能性があるマルチサイクルパスと判定されて、ステップＳ６１以降の処理が繰り返され、ステップＳ６１で未処理のＦＦ対が存在しないと判定された時点で処理を終了する。
【００９７】
なおステップＳ６５で（Ｋ＋２）サイクル以上のマルチサイクルパスであるか否かを調べる処理では、そのパス上でまたいでいるＦＦを取り除いたものとして、図５のステップＳ１９、およびＳ２０の処理を実行することができる。
【００９８】
以上のようなマルチサイクルパスの移動可能性の情報を用いて、回路製造後の製品の遅延のバラつきに応じて、マルチサイクルパスを移動させ、製品毎にタイミング制約を変化させることもできる。またすでにマルチサイクルパスであると分かっているパスに対して、図５のステップＳ２２のみを適用して、マルチサイクルパスの移動可能性のみを調べることも可能である。
【００９９】
以上の説明では、サイクル数２を基本として、サイクル数が２以上のマルチサイクパスの検出について説明したが、一般的にサイクル数Ｋのマルチサイクルパスの解析は、図２０のステップＳ６５に対する説明と同様に、パスの始点で記憶素子の値が変化する可能性のある時刻、すなわちイネーブルとなる時刻の次の時刻から始めて、現在の時刻から（Ｋ−１）時刻後までの範囲で、終点の記憶素子がイネーブルになることがないかどうかを調べることによって行うことができる。
【０１００】
また以上の説明では、例えばゲーティッドクロックや、クロックソースの記憶素子のイネーブル入力を、フリップフロップの実際のイネーブル端子への信号に回路として変換する形式で実施形態を説明したが、そのような情報を例えばメモリに保持しておき、図５のステップＳ１９、およびＳ２０でその情報を参照して判定に利用するという実施形態も考えられる。
【０１０１】
図５のステップＳ１４における外部端子に対する条件の制約回路への変換や、ステップＳ１８のセレクタの選択制御入力のイネーブル信号への変換についてもそのような情報をメモリに保持しておき、ステップＳ１９、Ｓ２０でその情報を参照して判定することも可能である。更に大規模な回路に対しては、ステップＳ２０で全てのパスを調べる手数が膨大となるため、ステップＳ２０の処理を省略することも可能である。
【０１０２】
（付記１）解析対象回路内のパスのうちで、パスの始点から終点まで信号が伝搬する時間として２サイクル以上ついやすことのできるマルチサイクルパスの解析方法において、
前記解析対象回路を構成するセルを含む各素子の名称、および／または該各素子の端子への信号の意味および／または関係に対応して解析対象回路の分析を行い、
該分析結果を用いて始点から終点までのパスがマルチサイクルパスであるか否かのマルチサイクルパス判定を行うことを特徴とするマルチサイクルパス解析方法。
【０１０３】
（付記２）前記解析対象回路の分析において、各素子の端子への信号の意味に対応して、マルチサイクルパスの解析のための回路変換を行い、
該回路変換の結果を用いて、前記マルチサイクルパス判定を行うことを特徴とする付記１記載のマルチサイクルパス解析方法。
【０１０４】
（付記３）前記回路変換において、前記素子の端子への信号のうちで、前記パスの始点と終点における記憶素子へのイネーブル信号に変換可能な信号を、該イネーブル信号に変換する回路変換を行うことを特徴とする付記２記載のマルチサイクルパス解析方法。
【０１０５】
（付記４）前記マルチサイクルパス判定において、前記パスの始点と終点における記憶素子へのイネーブル信号の値に基づいて、該記憶素子の値が変化し得るか否かに対応してマルチサイクルパスの判定を行うことを特徴とする付記３記載のマルチサイクルパス解析方法。
【０１０６】
（付記５）前記イネーブル信号の値に基づくマルチサイクルパスの判定においてマルチサイクルパスと判定されなかったパスに対して、該パスの始点と終点の間の全てのパスが非活性である時、該パスをマルチサイクルパスと判定することを特徴とする付記４の記載のマルチサイクルパス解析方法。
【０１０７】
（付記６）前記回路変換において、前記始点および／または終点の記憶素子への値の設定を制御するセレクタへの選択制御信号を、前記イネーブル信号に変換する回路変換を行うことを特徴とする付記３記載のマルチサイクルパス解析方法。
【０１０８】
（付記７）前記回路変換において、前記始点および／または終点の記憶素子を駆動するクロックのクロックソースも記憶素子である時、該クロックソースの記憶素子へのイネーブル信号を、該始点および／または終点の記憶素子へのイネーブル信号に変換する回路変換を行うことを特徴とする付記３記載のマルチサイクルパス解析方法。
【０１０９】
（付記８）前記回路変換において、前記パスの始点と終点とにおける記憶素子を駆動するクロックのクロックゲーティング情報を用いて、該記憶素子を駆動するクロックを、前記イネーブル信号に変換する回路変換を行うことを特徴とする付記３記載のマルチサイクルパス解析方法。
【０１１０】
（付記９）前記解析対象回路の分析において、前記各素子の名称に対応して回路内の記憶素子をグループ化し、
該グループのそれぞれが表す有限状態機械の到達可能状態を計算し、
該計算結果を用いて前記マルチサイクルパス判定を行うことを特徴とする付記１記載のマルチサイクルパス解析方法。
【０１１１】
（付記１０）前記解析対象回路の分析において、該回路の外部入力端子への値設定信号、外部出力端子からの値読み出し信号の間の関係についての条件に基づいて、該条件に対応する制約回路を前記解析対象回路に付加し、
該付加後の解析対象回路に対して前記マルチサイクルパス判定を行うことを特徴とする付記１記載のマルチサイクルパス解析方法。
【０１１２】
（付記１１）記憶素子をまたぐパスに対して、前記マルチサイクルパス解析を行うことにより記憶素子をまたいで移動可能なマルチサイクルパス制約を検出することを特徴とする付記１記載のマルチサイクルパス解析方法。
【０１１３】
（付記１２）前記解析対象回路の分析において、回路を構成するセルを含む各素子の端子への信号の意味に対応して、マルチサイクルパスの解析のための回路変換に必要な情報を記憶し、
該記憶内容を用いて、前記マルチサイクルパス判定を行うことを特徴とする付記１記載のマルチサイクルパス解析方法。
【０１１４】
（付記１３）解析対象回路内のパスのうちで、パスの始点から終点まで信号が伝搬する時間として２サイクル以上ついやすことのできるマルチサイクルパスの解析装置において、
回路を構成するセルを含む各素子の端子への信号の意味に対応して、マルチサイクルパス解析のための回路変換を行う回路変換手段と、
該回路変換結果を用いて、始点から終点までのパスがマルチサイクルパスであるか否かを判定するマルチサイクルパス判定手段とを備えることを特徴とするマルチサイクルパス解析装置。
【０１１５】
（付記１４）前記回路変換手段が、前記素子の端子への信号のうちで、前記パスの始点と終点における記憶素子へのイネーブル信号に変換可能な信号を、該イネーブル信号に変換する回路変換を行うことを特徴とする付記１３記載のマルチサイクルパス解析装置。
【０１１６】
（付記１５）解析対象回路内のパスのうちで、パスの始点から終点まで信号が伝搬する時間として２サイクル以上ついやすことのできるマルチサイクルパスの解析を行う計算機によって使用されるプログラムにおいて、
回路を構成するセルを含む各素子の端子への信号の意味に対応してマルチサイクルパスの解析のための回路変換を行う手順と、
該回路変換結果を用いて、始点から終点までのパスがマルチサイクルパスであるか否かを判定する手順とを計算機に実行させるためのプログラム。
【０１１７】
【発明の効果】
以上説明したように本発明によれば、パスの始点と終点の記憶素子の値の変化をイネーブル信号の値で判定するために、その値の変化する条件を回路の論理を解析して抽出する必要がなくなる。またセレクタの選択制御入力など、回路中のセルの情報や、局所的な有限状態機械の到達可能性の情報を利用することによって、マルチサイクルパスの解析を高速化し、解析能力を向上させることが可能となる。
【０１１８】
また、マルチサイクルパスの移動可能性を解析することによって、設計者の手間を必要とすることなく、タイミング制約をより満足しやすくなるため、設計時間の短縮が実現される。更に移動可能性解析の結果を、製造後の回路の遅延バラつきに応じてタイミング制約を変化させることに応用することによって製品歩留まりの向上につながり、マルチサイクルパス解析の実用性の向上に寄与するところが大きい。
【図面の簡単な説明】
【図１】本発明のマルチサイクルパス解析方法の原理的な機能ブロック図である。
【図２】マルチサイクルパス検出処理の基本的な処理フローチャートである。
【図３】マルチサイクルパスの移動可能性解析処理の基本フローチャートである。
【図４】本実施形態のマルチサイクルパス解析方法を実現するためのデータ処理装置の構成を示すブロック図である。
【図５】マルチサイクルパス解析処理の全体フローチャートである。
【図６】ゲーティッドクロックのフリップフロップに対するイネーブル信号への変換処理の詳細フローチャートである。
【図７】ゲーティッドクロックの変換処理の具体例の説明図である。
【図８】図７の回路の変換結果である。
【図９】外部端子のタイミング的条件の外部端子に対する制約回路への変換処理の詳細フローチャートである。
【図１０】図９における制約回路への変換の具体例（その１）の説明図である。
【図１１】図９における制約回路への変換の具体例（その２）の説明図である。
【図１２】図９における制約回路への変換の具体例（その３）の説明図である。
【図１３】有限状態機械の到達可能状態数え上げ処理の詳細フローチャートである。
【図１４】図１３の処理の具体例を説明する図である。
【図１５】セレクタの選択制御入力のイネーブル信号への変換処理の詳細フローチャートである。
【図１６】図１５の変換処理の具体例の説明図である。
【図１７】イネーブル信号の変化の具体例の説明図である。
【図１８】始点、終点間の全てのパスの活性化条件判定処理の詳細フローチャートである。
【図１９】マルチサイクルパス移動可能性判定の具体例の説明図である。
【図２０】マルチサイクルパス移動可能性判定処理の詳細フローチャートである。
【符号の説明】
１０      データ処理装置
１１      入出力装置
１２      記憶装置
１３      始点・終点指示部
１４      イネーブル信号化部
１５      イネーブル入力抽出部
１６      外部端子値設定・読み出し時刻制約回路生成部
１７      局所ＦＳＭ到達可能性解析部
１８      マルチサイクルパス解析部
１９      記憶素子をまたいだマルチサイクルパス解析部
【図１】
2004171149.tif 000004
【図２】
2004171149.tif 000005
【図３】
2004171149.tif 000006
【図４】
2004171149.tif 000007
【図５】
2004171149.tif 000008
【図６】
2004171149.tif 000009
【図７】
2004171149.tif 000010
【図８】
2004171149.tif 000011
【図９】
2004171149.tif 000012
【図１０】
2004171149.tif 000013
【図１１】
2004171149.tif 000014
【図１２】
2004171149.tif 000015
【図１３】
2004171149.tif 000016
【図１４】
2004171149.tif 000017
【図１５】
2004171149.tif 000018
【図１６】
2004171149.tif 000019
【図１７】
2004171149.tif 000020
【図１８】
2004171149.tif 000021
【図１９】
2004171149.tif 000022
【図２０】
2004171149.tif 000023