(57)【要約】【課題】  スタティックタイミング解析におけるフォールスパス指定の誤りを容易に検出できる方法を提供する。【解決手段】  フォールスパス指定誤り検出方法は、フォールスパス指定情報を作成するステップと、フォールスパスが含まれる順序回路間に存在する総てのパスを抽出して検証対象パス情報を作成するステップと、検証対象パスの中の総ての信号伝達パスを活性化させる信号伝達パス活性化テストデータを作成するステップと、信号伝達パス活性化テストデータによる論理シミュレーションを実行するステップと、論理シミュレーションの結果から検証対象パス活性化情報を作成するステップと、フォールスパス指定情報と検証対象パス活性化情報とを照合してフォールスパスの指定に誤りがないかどうかを検証するステップと、フォールスパスの指定に誤りがあるときはフォールスパス指定誤り情報を出力するステップとを有する。【選択図】  図６
2007018255.tif 000002
【特許請求の範囲】
【請求項１】
集積回路内のフォールスパスを指定するフォールスパス指定情報を作成するステップと、
前記フォールスパスが含まれる順序回路間に存在する総てのパスを検証対象パスとして、前記集積回路の回路接続データから前記検証対象パスの信号伝達経路を抽出して検証対象パス情報を作成するステップと、
前記検証対象パスの中の総ての信号伝達パスを活性化させる信号伝達パス活性化テストデータを作成するステップと、
前記信号伝達パス活性化テストデータと前記回路接続データを用いた論理シミュレーションを実行するステップと、
前記論理シミュレーションの結果から前記検証対象パスの活性化の有無をそれぞれのパスごとに記録した検証対象パス活性化情報を作成するステップと、
前記フォールスパス指定情報と前記検証対象パス活性化情報とを照合し、前記フォールスパスの指定に誤りがないかどうかを検証するステップと、
前記検証により前記フォールスパスの指定に誤りがあると判定されたときはフォールスパス指定誤り情報を出力するステップと
を有することを特徴とするフォールスパス指定誤り検出方法。
【請求項２】
前記検証は、前記フォールスパス指定情報に記載されたパスが、前記検証対象パス活性化情報において活性化ありと記録されているときに、前記フォールスパスの指定に誤りがあると判定することを特徴とする請求項１に記載のフォールスパス指定誤り検出方法。
【請求項３】
前記検証は、前記検証対象パス活性化情報に活性化なしと記録されているパスが、前記フォールスパス指定情報に記載されていないときに、前記フォールスパスの指定に誤りがあると判定することを特徴とする請求項１に記載のフォールスパス指定誤り検出方法。
【請求項４】
前記フォールスパス指定情報は、スタティックタイミング解析ツールから出力されるクリティカルパスに関する情報を解析して作成することを特徴とする請求項１に記載のフォールスパス指定誤り検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路のスタティックタイミング解析に関し、特にスタティックタイミング解析におけるフォールスパス指定の誤りを検出するフォールスパス指定誤り検出方法に関する。
【背景技術】
【０００２】
集積回路の規模の増大および処理速度の向上が求められる中で、集積回路を所望の動作周波数で動作させるためにはクリティカルパスの解析が重要である。そのため、集積回路の論理ゲートの回路接続情報からクリティカルパスを抽出するスタティックタイミング解析ツールが使用される。
【０００３】
スタティックタイミング解析ツールは、論理ゲートの回路接続情報を解析し、フリップフロップなどの順序回路素子間の論理ゲートを通過する信号伝達パスの中で、タイミングマージンの少ない、もしくはタイミングマージンのないパスをクリティカルパスとして抽出し、そのデータをクリティカルパス情報として出力する。
【０００４】
このようにして出力されたクリティカルパス情報に基づいて、クリティカルパスに対する論理ゲートの組み合わせの最適化や遅延時間を考慮したレイアウトを行うことで、所望の周波数で動作する集積回路が得られるようにしている。
【０００５】
しかし、スタティックタイミング解析ツールは、論理ゲートの回路接続情報に含まれる総てのパスを対象としてクリティカルパスの探索を行うため、仕様上使用しないパスあるいは論理動作上信号が通過しないパス、すなわちフォールスパスもクリティカルパス情報の中に含めて出力してしまう欠点がある。
【０００６】
そこで、このようなフォールスパスがクリティカルパス情報に含まれて出力されることを防ぐための方法の１つとして、スタティックタイミング解析の前にフォールスパスを指定する情報をスタティックタイミング解析ツールに与え、指定されたフォールスパスをスタティックタイミング解析の対象外とする方法がある。
【０００７】
しかし、フォールスパスの指定は人手により行われるため、フォールスパスでないパスをフォールスパスとして指定する誤りが生じることがある。このような誤りが生じると、本来クリティカルパスとして処理すべきパスに対して、設計工程で論理ゲートの組み合わせの最適化を行う処理や、レイアウト工程で遅延時間を考慮した配置・配線を行う処理などが行われず、製造された集積回路が所望の周波数で動作しないという問題が生じる可能性がある。
【０００８】
あるいは、本来フォールスパスと指定すべきパスをフォールスパスと指定しなかったためにそのパスがクリティカルパスとして扱われ、行う必要のなかった設計工程での論理ゲートの組み合わせの最適化の処理や、レイアウト工程での遅延時間を考慮した配置・配線の処理が行われ、集積回路の開発時間の増加を招くなどの問題があった。
【０００９】
従来、このような問題の発生を防止するために、人手により作成したフォールスパス情報を機能レベルシミュレーションの結果から算出したフォールスパス情報と比較して、人手により作成したフォールスパス情報の誤りを検出する方法が提案されている（例えば、特許文献１参照。）。
【００１０】
しかし、このような方法では機能レベルシミュレーションにおいて回路上の総ての信号伝達パスを活性化させるテストベンチが必要であり、現実的には非常に困難が伴う方法であった。
【特許文献１】特開２００１‐６７３８３号公報  （第１２ページ、図４）
【発明の開示】
【発明が解決しようとする課題】
【００１１】
そこで、本発明の目的は、スタティックタイミング解析におけるフォールスパス指定の誤りを容易に検出できる方法を提供することにある。
【課題を解決するための手段】
【００１２】
本発明の一態様によれば、集積回路内のフォールスパスを指定するフォールスパス指定情報を作成するステップと、前記フォールスパスが含まれる順序回路間に存在する総てのパスを検証対象パスとして、前記集積回路の回路接続データから前記検証対象パスの信号伝達経路を抽出して検証対象パス情報を作成するステップと、前記検証対象パスの中の総ての信号伝達パスを活性化させる信号伝達パス活性化テストデータを作成するステップと、前記信号伝達パス活性化テストデータと前記回路接続データを用いた論理シミュレーションを実行するステップと、前記論理シミュレーションの結果から前記検証対象パスの活性化の有無をそれぞれのパスごとに記録した検証対象パス活性化情報を作成するステップと、前記フォールスパス指定情報と前記検証対象パス活性化情報とを照合し、前記フォールスパスの指定に誤りがないかどうかを検証するステップと、前記検証により前記フォールスパスの指定に誤りがあると判定されたときはフォールスパス指定誤り情報を出力するステップとを有することを特徴とするフォールスパス指定誤り検出方法が提供される。
【発明の効果】
【００１３】
本発明によれば、フォールスパスが存在する順序回路間に含まれる信号伝達パスを活性化させるテストデータを作成するのみでフォールスパス指定情報に誤りがあるかどうかを検証できるので、フォールスパス指定の誤りを容易に検出することができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施例を図面を参照して説明する。
【実施例】
【００１５】
図１は、本発明の実施例に係るフォールスパス指定誤り検出方法を実行するための処理ブロックの構成の例を示す図である。
【００１６】
フォールスパス指定情報1には、集積回路内のある順序回路とその次段の順序回路とを結ぶ複数のパスの中にフォールスパスが含まれるときに、そのフォールスパスを指定する情報が書き込まれる。
【００１７】
当然、このフォールスパスが含まれる順序回路間には、フォールスパスのほかに信号が伝達される信号伝達パスが1つ以上存在する。
【００１８】
信号伝達パス活性化テストデータ２は、このフォールスパスが含まれる順序回路間に存在する1つ以上の信号伝達パスの総てを活性化させることを目的に作成されたテストデータである。ここで、活性化とは信号の変化（例えば、“１”から“０”へ、あるいは“０”から“１”への変化）が、その信号伝達パスを順次伝わって行くことをいう。
【００１９】
回路接続データ３は、集積回路の回路接続を回路記述言語で記したデータである。
【００２０】
検証対象パス抽出処理４は、フォールスパスが含まれる順序回路間に存在する総てのパス（すなわち、フォールスパスおよび1つ以上の信号伝達パスの総て）の信号伝達経路を回路接続データ３から抽出し、パスごとに信号伝達経路を記した情報を検証対象パス情報５として出力する。
【００２１】
検証対象パス活性化チェック７は、信号伝達パス活性化テストデータ２と回路接続データ３を用いた論理シミュレーション６の結果に基づいて、検証対象パス情報５に記されたパスが活性化されているかどうかをチェックし、その結果を検証対象パス活性化情報８として出力する。
【００２２】
フォールスパス指定誤り検証９は、フォールスパス指定情報1と検証対象パス活性化情報８とを照合し、フォールスパス指定情報１に記されたパスが活性化しているか、または、フォールスパス指定情報1に記されていないパスが活性化していないときは、フォールスパス指定に誤りがあったと判定して、そのパスをフォールスパス指定誤り情報１０に書き込む。
【００２３】
ここで、フォールスパス指定情報１に記されたパスが活性化していることを誤りと判定するのは、フォールスパスと指定されているために活性化しないはずのパスが活性化していることを根拠とし、フォールスパス指定情報１に記されていないパスが活性化していないことを誤りと判定するのは、フォールスパスと指定されていないために活性化するはずのパスが活性化していないことを根拠とするものである。
【００２４】
図２は、図１に示すフォールスパス指定情報１を作成する方法の１つの例を示す図である。フォールスパス指定情報１は、人で作業により作成するものであるが、仕様を見るだけでフォールスパスを指定するのは非常に困難な作業である。また、フォールスパスであっても、クリティカルパスになり得ないパスは、無視してよい。
【００２５】
そこで、図２では、フォールスパスを指定せずに実行したスタティックタイミング解析の結果を用いてフォールスパス指定情報を作成する方法を示す。
【００２６】
まず、フォールスパスを指定せずにスタティックタイミング解析１００を実行する。その結果、クリティカルパス情報２００が出力される。続いて、このクリティカルパス情報２００に記載されているパスにフォールスパスが含まれているかどうかをフォールスパス解析３００で行い、フォールスパスが含まれていれば、そのパスをフォールスパス指定情報１に書き込む。
【００２７】
例えば、図３に示す、フリップフロップＦＦ１とフリップフロップＦＦ２との間に、メモリＭＥＭ１およびＭＥＭ２、セレクタＳＥＬ１、加算器ＡＤＤ、乗算器ＭＰＹ、セレクタＳＥＬ２、シフタＳＦＴ、セレクタＳＥＬ３が接続されている回路に対して、スタティックタイミング解析１００を実行した結果、図４に示すクリティカルパス情報２００が得られたとする。図４では、２つのパスが、スタティックタイミング解析１００によりクリティカルパスとされたものである。なお、ここでは、回路ブロックの名前と端子名を“／”で連結する表記により信号が伝達される端子を表すものとする。
【００２８】
図４に示された２つのパスに対してフォールスパス解析３００を行った結果、クリティカルパス情報２００の２番目に書かれていたパスがフォールスパスと判明したときは、そのパスをフォールスパス指定情報１に書き込む。
【００２９】
図５に、このようにして書き込まれたフォールスパス指定情報１の例を示す。
【００３０】
この方法によれば、フォールスパス解析３００の対象パスが、スタティックタイミング解析１００で絞り込まれており、集積回路全体を対象として仕様と照らし合わせながらフォールスパスを指定する作業を行うよりも容易にフォールスパス指定情報１を作成することができる。また、フォールスパス指定情報１には、フォールスパスに指定しなければクリティカルパスとして処理される重要なパスだけが書き込まれる。
【００３１】
図６は、本発明の実施例に係るフォールスパス指定誤り検出方法の処理の流れを示すフローチャートである。なお、フォールスパス指定誤り検出方法による処理には、図１に示した処理ブロックが使用されるものとする。
【００３２】
図６に示す本実施例のフォールスパス指定誤り検出方法の処理の流れを、図７に示す検証対象パス情報の例、図８に示す検証対象パス活性化情報の例、図９に示すフォールスパス指定情報の例、図１０に示すフォールスパス指定誤り情報の例を用いながら説明する。
【００３３】
図６に示す本実施例のフォールスパス指定誤り検出方法では、まず、フォールスパス指定情報１の作成を行う（ステップＳ１）。
【００３４】
ここで、フォールスパスが図５に示したパスであったとした場合、このフォールスパスが含まれる順序回路間の総てのパス、すなわち、図３に示したフリップフロップＦＦ１とフリップフロップＦＦ２との間の総てのパス、を検証対象パス抽出処理４により抽出し、検証対象パス情報５を作成する（ステップＳ２）。図７に示すように、検証対象パス情報５には８つのパスが記載される。このうち７番目に記載されたパスはフォールスパスであり、他の７つのパスは信号伝達パスである。
【００３５】
次に、図７に示した７つの信号伝達パスを活性化させる信号伝達パス活性化テストデータ２の作成を行い（ステップＳ３）、論理シミュレーション６を実行する（ステップＳ４）。
【００３６】
続いて、論理シミュレーション６の結果に基づいて、検証対象パス情報５に記されたパスが活性化されているかどうかのチェックを検証対象パス活性化チェック７により行い、検証対象パス活性化情報８の作成を行う（ステップＳ５）。
【００３７】
図８に、検証対象パス活性化情報８の例を示す。図８の例では、図３に示したフリップフロップＦＦ１とフリップフロップＦＦ２との間に接続される総ての回路ブロックを羅列し、各パスごとに、そのパスによる信号伝達により、そのパスに接続される回路ブロックが活性化されれば、その回路ブロックの欄に“Ａ”を記入し、活性化されなければ“Ｎ”を記入する。そして、その信号伝達パスに接続される回路ブロックが総て活性化されれば、そのパスの活性化欄に“ＹＥＳ”と記入し、回路ブロックが１つでも活性化されなければ、そのパスの活性化欄に“ＮＯ”と記入する。
【００３８】
図６に戻って、次に、フォールスパス指定情報１と検証対象パス活性化情報８とを照合し、フォールスパス指定誤り検証９を実行し（ステップＳ６）、フォールスパス指定情報１に誤りがないかどうか判定する（ステップＳ７）。もし、フォールスパスの指定に誤りがあれば（ＹＥＳ）、フォールスパス指定誤り情報１０を出力し（ステップＳ８）、誤りがなければ（ＮＯ）、そのまま終了する。
【００３９】
図９に、フォールスパスの指定に誤りのあるフォールスパス指定情報１の例を示す。  
図９（ａ）は、信号伝達パスを誤ってフォールスパスとして指定し、フォールスパスとして指定すべきパスをフォールスパスと指定しなかった例である。また、図９（ｂ）は、正しいフォールスパス（番号２のパス）のほかに、信号伝達パス（番号１のパス）を誤ってフォールスパスとして指定した例である。
【００４０】
フォールスパス指定誤り検証９では、このようなフォールスパス指定情報１に記載されているパスと一致するパスを検証対象パス活性化情報８の中で検索し、そのパスの活性化欄に“ＮＯ”と記入されているかどうかをチェックする。“ＮＯ”と記入されていれば、そのパスをフォールスパスと指定したことは正しいが、もし、“ＹＥＳ”と記入されていれば、そのパスをフォールスパスと指定したことは誤りである。そこで、誤りと判定したパスをフォールスパス指定誤り情報１０に書き込む。
【００４１】
また、フォールスパス指定誤り検証９では、検証対象パス活性化情報８の活性化欄に“ＮＯ”と記入されているパスが、フォールスパス指定情報１に記載されているパスかどうかをチェックする。もし、フォールスパス指定情報１に記載されていなければ、検証対象パス活性化情報８の活性化欄に“ＮＯ”と記入されているパスをフォールスパス指定誤り情報１０に書き込む。
【００４２】
図１０に、図９に示したフォールスパス指定情報１に対するフォールスパス指定誤り情報１０を示す。
【００４３】
図１０（ａ）は、図９（ａ）に示したフォールスパス指定情報１に対するフォールスパス指定誤り情報１０である。ここで、番号１に記載されたパスは、図９（ａ）に示したフォールスパス指定情報１で信号伝達パスを誤ってフォールスパスと指定したパスである。また、番号２に記載されたパスは、フォールスパスとして指定すべきパスをフォールスパスと指定しなかったパスである。このようにフォールスパスの指定誤りには２種類の誤りがあるので、それを区分するために、区分欄を設け、信号伝達パスを誤ってフォールスパスと指定した場合は“Ａ”と記入し、フォールスパスとして指定すべきパスをフォールスパスと指定しなかった場合は“Ｎ”と記入する。
【００４４】
図１０（ｂ）は、図９（ｂ）に示したフォールスパス指定情報１に対するフォールスパス指定誤り情報１０である。ここで、番号１に記載されたパスは、図９（ｂ）に示したフォールスパス指定情報１で番号１に記載したパスであり、信号伝達パスを誤ってフォールスパスと指定したパスである。これに対して、図９（ｂ）に示したフォールスパス指定情報１で番号２に記載したパスは正しいフォールスパスであるので、フォールスパス指定誤り情報１０への出力はない。
【００４５】
このような本実施例によれば、フォールスパスが存在する順序回路間に含まれる信号伝達パスを活性化させるテストデータを作成するのみでフォールスパス指定情報に誤りがあるかどうかを検証できるので、フォールスパス指定の誤りを容易に検出することができる。
【００４６】
また、信号伝達パスを誤ってフォールスパスと指定した場合でも、フォールスパスと指定すべきパスをフォールスパスと指定しなかった場合でも、フォールスパスの指定の誤りを検出することができる。
【図面の簡単な説明】
【００４７】
【図１】本発明の実施例に係るフォールスパス指定誤り検出方法を実行するための処理ブロックの構成の例を示す図。
【図２】フォールスパス指定情報の作成方法の例を示す図。
【図３】検証対象回路の例。
【図４】クリティカルパス情報の例を示す図。
【図５】本発明の実施例におけるフォールスパス指定情報の例を示す図。
【図６】本発明の実施例に係るフォールスパス指定誤り検出方法の処理の流れを示すフローチャート。
【図７】本発明の実施例における検証対象パス情報の例を示す図。
【図８】本発明の実施例における検証対象パス活性化情報の例を示す図。
【図９】本発明の実施例における誤りのあるフォールスパス指定情報の例を示す図。
【図１０】本発明の実施例におけるフォールスパス指定誤り情報の例を示す図。
【符号の説明】
【００４８】
１  フォールスパス指定情報
２  信号伝達パス活性化テストデータ
３  回路接続データ
４  検証パス抽出処理
５  検証対象パス情報
６  論理シミュレーション
７  検証対象パス活性化チェック
８  検証対象パス活性化情報
９  フォールスパス指定誤り検証
１０  フォールスパス指定誤り情報
【図１】
2007018255.tif 000003
【図２】
2007018255.tif 000004
【図３】
2007018255.tif 000005
【図４】
2007018255.tif 000006
【図５】
2007018255.tif 000007
【図６】
2007018255.tif 000008
【図７】
2007018255.tif 000009
【図８】
2007018255.tif 000010
【図９】
2007018255.tif 000011
【図１０】
2007018255.tif 000012