(57)【特許請求の範囲】
【請求項１】
論理回路の動作クロックに同期せずに伝搬する例外信号の伝搬を伝搬制御回路によって制御する論理回路に発生しうるスタティックハザードを検出するスタティックハザード検出装置であって、
論理回路を表す論理回路情報の入力を受け付け、受け付けた論理回路情報によって表される論理回路中に存在する、伝搬制御回路を介して終点レジスタに供給される例外信号を出力する始点レジスタと該終点レジスタとの組を複数抽出するチェック対象抽出部と、
前記チェック対象抽出部により抽出された複数の組のうち、伝搬制御回路の状態を制御する制御信号の信号レベルが例外信号の伝搬を禁止する信号レベルになっているときに、例外信号を始点レジスタから終点レジスタに伝達する可能性があるパスが複数存在する組を検出するスタティックハザード検出部と、を備える、
ことを特徴とするスタティックハザード検出装置。
【請求項２】
前記スタティックハザード検出部は、
前記チェック対象抽出部により抽出された複数の組のそれぞれについて、伝搬制御回路の状態を制御する制御信号の信号レベルが例外信号の伝搬を禁止する信号レベルになっているときに、例外信号を始点レジスタから終点レジスタに伝達する可能性がある少なくとも１つのパスを検出するパス検出部と、
前記チェック対象抽出部により抽出された複数の組のうち、前記検出パス検出部によって複数のパスが検出された組を検出する再収斂パス検出部と、を備える、
ことを特徴とする請求項１記載のスタティックハザード検出装置。
【請求項３】
前記チェック対象抽出部は、
始点レジスタから出力される例外信号の遅延制約を定義する第１の遅延制約情報に基づいて、論理回路中に存在する始点レジスタを抽出する始点レジスタ抽出部と、
制御信号を出力する制御信号出力レジスタを特定する情報に基づいて、論理回路中に存在する制御信号出力レジスタを抽出する制御信号出力レジスタ抽出部と、
前記始点レジスタ抽出部により抽出された始点レジスタの次段のレジスタであって、該始点レジスタから出力される例外信号と前記制御信号出力レジスタ抽出部により抽出された制御信号出力レジスタから出力される制御信号とが共に供給されるレジスタと、該始点レジスタとの組を抽出する組抽出部と、を備える、
ことを特徴とする請求項１又は２に記載のスタティックハザード検出装置。
【請求項４】
前記チェック対象抽出部は、
始点レジスタから出力される例外信号の遅延制約を定義する第１の遅延制約情報に基づいて、論理回路中に存在する始点レジスタを抽出する始点レジスタ抽出部と、
終点レジスタに供給される例外信号の遅延制約を定義する第２の遅延制約情報に基づいて、論理回路中に存在する終点レジスタを抽出する終点レジスタ抽出部と、
前記始点レジスタ抽出部により抽出された始点レジスタであって、前記終点レジスタ抽出部により抽出された終点レジスタの前段のレジスタと、該終点レジスタとの組を抽出する組抽出部と、を備える、
ことを特徴とする請求項１又は２に記載のスタティックハザード検出装置。
【請求項５】
前記チェック対象抽出部は、
終点レジスタに供給される例外信号の遅延制約を定義する第２の遅延制約情報に基づいて、論理回路中に存在する終点レジスタを抽出する終点レジスタ抽出部と、
前記終点レジスタ抽出部により抽出された終点レジスタの前段のレジスタであって、該終点レジスタと異なるクロック信号で駆動されるレジスタと、該終点レジスタとの組を抽出する組抽出部と、を備える、
ことを特徴とする請求項１又は２に記載のスタティックハザード検出装置。
【請求項６】
表示装置と、
前記スタティックハザード検出部によって検出された組を示す情報を前記表示装置に表示する表示制御部と、をさらに備える、
ことを特徴とする請求項１乃至５のいずれか１項に記載のスタティックハザード検出装置。
【請求項７】
前記表示制御部は、前記スタティックハザード検出部によって、組が検出されなかった場合、前記表示装置にスタティックハザードが発生する可能性がない旨のメッセージを表示する、
ことを特徴とする請求項６記載のスタティックハザード検出装置。
【請求項８】
論理回路の動作クロックに同期せずに伝搬する例外信号の伝搬を伝搬制御回路によって制御する論理回路に発生しうるスタティックハザードを検出するスタティックハザード検出装置が実行するスタティックハザード検出方法であって、
前記スタティックハザード検出装置は、チェック対象抽出部と、スタティックハザード検出部と、を備え、
前記チェック対象抽出部が、論理回路を表す論理回路情報の入力を受け付け、受け付けた論理回路情報によって表される論理回路中に存在する、伝搬制御回路を介して終点レジスタに供給される例外信号を出力する始点レジスタと該終点レジスタとの組を複数抽出するチェック対象抽出ステップ、
前記スタティックハザード検出部が、前記チェック対象抽出部により抽出された複数の組のうち、伝搬制御回路の状態を制御する制御信号の信号レベルが例外信号の伝搬を禁止する信号レベルになっているときに、例外信号を始点レジスタから終点レジスタに伝達する可能性があるパスが複数存在する組を検出するスタティックハザード検出ステップ、を備える、
ことを特徴とするスタティックハザード検出方法。
【請求項９】
前記スタティックハザード検出部は、パス検出部と、再収斂パス検出部と、を備え、
前記パス検出部が、前記チェック対象抽出部により抽出された複数の組のそれぞれについて、伝搬制御回路の状態を制御する制御信号の信号レベルが例外信号の伝搬を禁止する信号レベルになっているときに、例外信号を始点レジスタから終点レジスタに伝達する可能性がある少なくとも１つのパスを検出するパス検出ステップ、
前記再収斂パス検出部が、前記チェック対象抽出部により抽出された複数の組のうち、前記検出パス検出部によって複数のパスが検出された組を検出する再収斂パス検出ステップ、をさらに備える、
ことを特徴とする請求項８記載のスタティックハザード検出方法。
【請求項１０】
前記チェック対象抽出部は、始点レジスタ抽出部と、制御信号出力レジスタ抽出部と、組抽出部と、を備え、
前記始点レジスタ抽出部が、始点レジスタから出力される例外信号の遅延制約を定義する第１の遅延制約情報に基づいて、論理回路中に存在する始点レジスタを抽出する始点レジスタ抽出ステップ、
前記制御信号出力レジスタ抽出部が、制御信号を出力する制御信号出力レジスタを特定する情報に基づいて、論理回路中に存在する制御信号出力レジスタを抽出する制御信号出力レジスタ抽出ステップ、
前記組抽出部が、前記始点レジスタ抽出部により抽出された始点レジスタの次段のレジスタであって、該始点レジスタから出力される例外信号と前記制御信号出力レジスタ抽出部により抽出された制御信号出力レジスタから出力される制御信号とが共に供給されるレジスタと、該始点レジスタとの組を抽出する組抽出ステップ、をさらに備える、
ことを特徴とする請求項８又は９に記載のスタティックハザード検出方法。
【請求項１１】
前記チェック対象抽出部は、始点レジスタ抽出部と、終点レジスタ抽出部と、組抽出部と、を備え、
前記始点レジスタ抽出部が、始点レジスタから出力される例外信号の遅延制約を定義する第１の遅延制約情報に基づいて、論理回路中に存在する始点レジスタを抽出する始点レジスタ抽出ステップ、
前記終点レジスタ抽出部が、終点レジスタに供給される例外信号の遅延制約を定義する第２の遅延制約情報に基づいて、論理回路中に存在する終点レジスタを抽出する終点レジスタ抽出ステップ、
前記組抽出部が、前記始点レジスタ抽出部により抽出された始点レジスタであって、前記終点レジスタ抽出部により抽出された終点レジスタの前段のレジスタと、該終点レジスタとの組を抽出する組抽出ステップ、をさらに備える、
ことを特徴とする請求項８又は９に記載のスタティックハザード検出方法。
【請求項１２】
前記チェック対象抽出部は、終点レジスタ抽出部と、組抽出部と、を備え、
前記終点レジスタ抽出部が、終点レジスタに供給される例外信号の遅延制約を定義する第２の遅延制約情報に基づいて、論理回路中に存在する終点レジスタを抽出する終点レジスタ抽出ステップ、
前記組抽出部が、前記終点レジスタ抽出部により抽出された終点レジスタの前段のレジスタであって、該終点レジスタと異なるクロック信号で駆動されるレジスタと、該終点レジスタとの組を抽出する組抽出ステップ、をさらに備える、
ことを特徴とする請求項８又は９に記載のスタティックハザード検出方法。
【請求項１３】
前記スタティックハザード検出装置は、表示装置と、表示制御部と、をさらに備え、
前記表示制御部が、前記スタティックハザード検出部によって検出された組を示す情報を前記表示装置に表示する表示制御ステップ、をさらに備える、
ことを特徴とする請求項８乃至１２のいずれか１項に記載のスタティックハザード検出方法。
【請求項１４】
前記表示制御ステップにおいて、前記表示制御部は、前記スタティックハザード検出部によって、組が検出されなかった場合、前記表示装置にスタティックハザードが発生する可能性がない旨のメッセージを表示する、
ことを特徴とする請求項１３記載のスタティックハザード検出方法。
【請求項１５】
コンピュータを、
論理回路の動作クロックに同期せずに伝搬する例外信号の伝搬を伝搬制御回路によって制御する論理回路に発生しうるスタティックハザードを検出するスタティックハザード検出装置として機能させるためのプログラムであって、
前記コンピュータを、
論理回路を表す論理回路情報の入力を受け付け、受け付けた論理回路情報によって表される論理回路中に存在する、伝搬制御回路を介して終点レジスタに供給される例外信号を出力する始点レジスタと該終点レジスタとの組を複数抽出するチェック対象抽出部、
前記チェック対象抽出部により抽出された複数の組のうち、伝搬制御回路の状態を制御する制御信号の信号レベルが例外信号の伝搬を禁止する信号レベルになっているときに、例外信号を始点レジスタから終点レジスタに伝達する可能性があるパスが複数存在する組を検出するスタティックハザード検出部、として機能させる、
ことを特徴とするプログラム。
【請求項１６】
前記スタティックハザード検出部は、
前記チェック対象抽出部により抽出された複数の組のそれぞれについて、伝搬制御回路の状態を制御する制御信号の信号レベルが例外信号の伝搬を禁止する信号レベルになっているときに、例外信号を始点レジスタから終点レジスタに伝達する可能性がある少なくとも１つのパスを検出するパス検出部と、
前記チェック対象抽出部により抽出された複数の組のうち、前記検出パス検出部によって複数のパスが検出された組を検出する再収斂パス検出部と、を備える、
ことを特徴とする請求項１５記載のプログラム。
【請求項１７】
前記チェック対象抽出部は、
始点レジスタから出力される例外信号の遅延制約を定義する第１の遅延制約情報に基づいて、論理回路中に存在する始点レジスタを抽出する始点レジスタ抽出部と、
制御信号を出力する制御信号出力レジスタを特定する情報に基づいて、論理回路中に存在する制御信号出力レジスタを抽出する制御信号出力レジスタ抽出部と、
前記始点レジスタ抽出部により抽出された始点レジスタの次段のレジスタであって、該始点レジスタから出力される例外信号と前記制御信号出力レジスタ抽出部により抽出された制御信号出力レジスタから出力される制御信号とが共に供給されるレジスタと、該始点レジスタとの組を抽出する組抽出部と、を備える、
ことを特徴とする請求項１５又は１６に記載のプログラム。
【請求項１８】
前記チェック対象抽出部は、
始点レジスタから出力される例外信号の遅延制約を定義する第１の遅延制約情報に基づいて、論理回路中に存在する始点レジスタを抽出する始点レジスタ抽出部と、
終点レジスタに供給される例外信号の遅延制約を定義する第２の遅延制約情報に基づいて、論理回路中に存在する終点レジスタを抽出する終点レジスタ抽出部と、
前記始点レジスタ抽出部により抽出された始点レジスタであって、前記終点レジスタ抽出部により抽出された終点レジスタの前段のレジスタと、該終点レジスタとの組を抽出する組抽出部と、を備える、
ことを特徴とする請求項１５又は１６に記載のプログラム。
【請求項１９】
前記チェック対象抽出部は、
終点レジスタに供給される例外信号の遅延制約を定義する第２の遅延制約情報に基づいて、論理回路中に存在する終点レジスタを抽出する終点レジスタ抽出部と、
前記終点レジスタ抽出部により抽出された終点レジスタの前段のレジスタであって、該終点レジスタと異なるクロック信号で駆動されるレジスタと、該終点レジスタとの組を抽出する組抽出部と、を備える、
ことを特徴とする請求項１５又は１６に記載のプログラム。
【請求項２０】
前記コンピュータは、表示装置を備え、
前記コンピュータを、さらに、
前記スタティックハザード検出部によって検出された組を示す情報を前記表示装置に表示する表示制御部、として機能させる、
ことを特徴とする請求項１５乃至１９のいずれか１項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理合成ツールによって合成された論理回路が、スタティックハザードを引き起こす可能性があるか否かをチェックするスタティックハザード検出技術に関する。
【背景技術】
【０００２】
ＬＳＩの設計では、１クロック信号周期以内にレジスタ間を伝搬しないマルチサイクル信号や非同期信号といった例外信号の伝搬を制御するために、制御信号と呼ばれる信号が導入される。制御信号は、例外信号を取り込んで良いときに第１の状態（例えば、‘１’）に、取り込んではいけないときに第２の状態（例えば、‘０’）となる信号である。例えば、設計者は、制御信号と例外信号とのＡＮＤ（論理積）をとったり、例外信号と他の信号とを選択的に出力するセレクタを制御信号で制御したりすることにより、例外信号の伝搬を制御する。なお、制御信号は、ストローブ信号と呼ばれる場合もある。
【０００３】
しかしながら、設計者が制御信号によって例外信号の伝搬を制御する回路を意図してＨＤＬ(Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ)を書いたにも関わらず、論理合成ツールが思わぬ合成をすることにより、グリッチが発生するような回路を生成することがある。このような場合は、制御信号による制御が効かなくなり、回路が誤動作する。このような問題をスタティックハザードと呼ぶ。
【０００４】
ここで、スタティックハザードは、ＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ（レジスタ転送レベル））の段階では確認できない。このため、検査者が論理合成ツールによって生成された回路を目視でしらみ潰しに見て解析することにより、スタティックハザードが発生するか否かを調べる必要があった。しかし、この方法では、膨大な工数が必要になるという問題があると共に、検出漏れが発生する危険性がある。
【０００５】
一方、例えば、特許文献１には、グリッチを発生させる可能性がある論理ブロックを検出する技術が開示されている。この特許文献１には、論理回路中の指定された２信号から経路探索を行い、上記２信号の伝搬信号が入力される論理ブロックを検出することにより、グリッチを発生させる可能性がある論理ブロックを検出する技術が開示されている。なお、上記２信号としては、非同期の２信号（例外信号）を指定する。
【０００６】
【特許文献１】特開２００６−３２３７２７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載されている技術は、例外信号の伝搬を制御する制御信号が全く考慮されていない技術である。このため、特許文献１に記載されている技術は、例外信号の伝搬を制御する制御信号が導入されている論理回路に直ちに適用できる技術ではない。
【０００８】
本発明は、上記問題に鑑みてなされたものであり、例外信号の伝搬を制御する制御信号が導入されている論理回路においても、スタティックハザードが発生する可能性があるか否かをチェックすることが可能なスタティックハザード検出装置、スタティックハザード検出方法並びにこれらをコンピュータ上で実現するためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明の第１の観点に係るスタティックハザード検出装置は、
論理回路の動作クロックに同期せずに伝搬する例外信号の伝搬を伝搬制御回路によって制御する論理回路に発生しうるスタティックハザードを検出するスタティックハザード検出装置であって、
論理回路を表す論理回路情報の入力を受け付け、受け付けた論理回路情報によって表される論理回路中に存在する、伝搬制御回路を介して終点レジスタに供給される例外信号を出力する始点レジスタと該終点レジスタとの組を複数抽出するチェック対象抽出部と、
前記チェック対象抽出部により抽出された複数の組のうち、伝搬制御回路の状態を制御する制御信号の信号レベルが例外信号の伝搬を禁止する信号レベルになっているときに、例外信号を始点レジスタから終点レジスタに伝達する可能性があるパスが複数存在する組を検出するスタティックハザード検出部と、を備える、
ことを特徴とする。
【００１０】
上記目的を達成するため、本発明の第２の観点に係るスタティックハザード検出方法は、
論理回路の動作クロックに同期せずに伝搬する例外信号の伝搬を伝搬制御回路によって制御する論理回路に発生しうるスタティックハザードを検出するスタティックハザード検出装置が実行するスタティックハザード検出方法であって、
前記スタティックハザード検出装置は、チェック対象抽出部と、スタティックハザード検出部と、を備え、
前記チェック対象抽出部が、論理回路を表す論理回路情報の入力を受け付け、受け付けた論理回路情報によって表される論理回路中に存在する、伝搬制御回路を介して終点レジスタに供給される例外信号を出力する始点レジスタと該終点レジスタとの組を複数抽出するチェック対象抽出ステップ、
前記スタティックハザード検出部が、前記チェック対象抽出部により抽出された複数の組のうち、伝搬制御回路の状態を制御する制御信号の信号レベルが例外信号の伝搬を禁止する信号レベルになっているときに、例外信号を始点レジスタから終点レジスタに伝達する可能性があるパスが複数存在する組を検出するスタティックハザード検出ステップ、を備える、
ことを特徴とする。
【００１１】
上記目的を達成するため、本発明の第３の観点に係るプログラムは、
コンピュータを、
論理回路の動作クロックに同期せずに伝搬する例外信号の伝搬を伝搬制御回路によって制御する論理回路に発生しうるスタティックハザードを検出するスタティックハザード検出装置として機能させるためのプログラムであって、
前記コンピュータを、
論理回路を表す論理回路情報の入力を受け付け、受け付けた論理回路情報によって表される論理回路中に存在する、伝搬制御回路を介して終点レジスタに供給される例外信号を出力する始点レジスタと該終点レジスタとの組を複数抽出するチェック対象抽出部、
前記チェック対象抽出部により抽出された複数の組のうち、伝搬制御回路の状態を制御する制御信号の信号レベルが例外信号の伝搬を禁止する信号レベルになっているときに、例外信号を始点レジスタから終点レジスタに伝達する可能性があるパスが複数存在する組を検出するスタティックハザード検出部、として機能させる、
ことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、例外信号の伝搬を制御する制御信号が導入されている論理回路においても、スタティックハザードが発生する可能性があるか否かを自動的にチェックすることが可能である。
【発明を実施するための最良の形態】
【００１３】
（第１の実施形態）
以下、本発明の第１の実施形態に係るスタティックハザード検出装置１００について図面を参照して説明する。
【００１４】
まず、図１を参照して、本実施形態に係るスタティックハザード検出装置１００の物理的な構成について説明する。スタティックハザード検出装置１００は、パーソナルコンピュータなど汎用のコンピュータを用いて構成することができる。
【００１５】
図１に示すように、スタティックハザード検出装置１００は、物理的には、ＣＰＵ（Ｃｅｎｔｒａｌ  ＰｒｏｃｅＳｉｎｇ  Ｕｎｉｔ）１１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２と、ＲＡＭ（Ｒａｎｄｏｍ  ＡｃｃｅＳ  Ｍｅｍｏｒｙ）１３と、ハードディスク装置１４と、入力装置１５と、表示装置１６と、を備える。スタティックハザード検出装置１００が備える各構成要素はバスを介して接続される。
【００１６】
ＣＰＵ１１は、ハードディスク装置１４に記憶されたプログラムに従ってスタティックハザード検出装置１００全体の動作を制御する。ＣＰＵ１１は、各構成要素とバスを介して接続され制御信号やデータのやりとりをする。
【００１７】
ＲＯＭ１２は、電源投入直後に実行されるＩＰＬ（Ｉｎｉｔｉａｌ  Ｐｒｏｇｒａｍ  Ｌｏａｄｅｒ）を記憶する。ＩＰＬが実行された後、ＣＰＵ１１は、ハードディスク装置１４に記憶されたプログラムをＲＡＭ１３に読み出して実行する。
【００１８】
ＲＡＭ１３は、データやプログラムを一時的に記憶する。ＲＡＭ１３は、ハードディスク装置１４から読み出されたプログラムやデータなどを一時的に記憶する。
【００１９】
ハードディスク装置１４は、ＣＰＵ１１により実行されるプログラムや各種データなどを記憶する。
【００２０】
入力装置１５は、ＣＰＵ１１による制御のもと、ユーザから各種の操作入力を受け付ける。入力装置１５は、例えば、キーボードやマウスから構成される。
【００２１】
表示装置１６は、ＣＰＵ１１による制御のもと、ユーザから各種の操作入力を受け付けるための画面などを表示する。表示装置１６は、例えば、液晶ディスプレイ装置から構成される。
【００２２】
次に、本実施形態に係るスタティックハザード検出装置１００の機能的な構成について説明する。
【００２３】
図２に示すように、本実施形態に係るスタティックハザード検出装置１００は、機能的には、チェック対象抽出部１１００と、スタティックハザード検出部１２０と、表示制御部１３０と、を備える。なお、スタティックハザード検出装置１００は、記憶装置２００に記憶されている情報に基づいてスタティックハザードを検出し、検出結果を表示装置３００に表示する装置である。
【００２４】
また、図２に示すように、記憶装置２００は、論理回路情報記憶部２１０と、遅延制約情報記憶部２２０と、チェック対象情報記憶部２３０と、パスレポート記憶部２４０と、被疑パスレポート記憶部２５０と、を備える。
【００２５】
本実施形態では、スタティックハザード検出装置１００の外部に、記憶装置２００と表示装置３００とがあるものとして説明するが、スタティックハザード検出装置１００が記憶装置２００と表示装置３００とを備える構成であっても良い。この場合、例えば、ハードディスク装置１４が記憶装置２００を構成し、表示装置１６が表示装置３００を構成する。
【００２６】
チェック対象抽出部１１０は、論理回路情報記憶部２１０に格納されている論理回路情報と遅延制約情報記憶部２２０に格納されている遅延制約情報とを読み込む。そして、チェック対象抽出部１１０は、読み込んだ論理回路情報と遅延制約情報とに基づいて、チェック対象情報を生成し、生成したチェック対象情報をチェック対象情報記憶部２３０に格納する。
【００２７】
チェック対象情報は、例えば、図３（Ａ）に示すように、例外信号毎に、当該例外信号の始点となるレジスタ（以下「例外信号の始点レジスタ」という。）を示す情報と、当該例外信号の終点となるレジスタ（以下「例外信号の終点レジスタ」という。）を示す情報と、当該例外信号の伝搬を制御する制御信号の始点となるレジスタ（以下「制御信号の始点レジスタ」という。）を示す情報と、が対応付けられた情報である。なお、例外信号は、１クロック信号周期以内にレジスタ間を伝搬しないマルチサイクル信号や非同期信号である。チェック対象抽出部１１０は、ＣＰＵ１１などから構成される。
【００２８】
スタティックハザード検出部１２０は、パス検出部１２１と再収斂パス検出部１２２とから構成される。スタティックハザード検出部１２０は、ＣＰＵ１１などから構成される。
【００２９】
パス検出部１２１は、論理回路情報記憶部２１０に格納されている論理回路情報とチェック対象情報記憶部２３０に格納されているチェック対象情報とを読み込む。そして、パス検出部１２１は、読み込んだ論理回路情報とチェック対象情報とに基づいて、パスレポートを生成し、生成したパスレポートをパスレポート記憶部２４０に格納する。
【００３０】
パスレポートは、例えば、図３（Ｂ）に示すように、パスレポート番号を示す情報と、例外信号の始点レジスタを示す情報と、当該例外信号の終点レジスタを示す情報と、当該例外信号の始点レジスタと当該例外信号の終点レジスタとの間に存在するパスであって、当該例外信号の伝搬を制御する制御信号の状態が当該例外信号の伝搬を禁止する状態になっているときに当該例外信号を伝搬する可能性があるパスを示す情報と、が対応付けられた情報である。図３（Ｂ）には、例外信号の始点レジスタＳＴＲＢ＿ｒｅｇ１と例外信号の終点レジスタＥＮＤ＿ｒｅｇ１との間にはパスが１つも検出されず、例外信号の始点レジスタＳＴＲＢ＿ｒｅｇ２と例外信号の終点レジスタＥＮＤ＿ｒｅｇ２との間にはパスが１つ検出され、例外信号の始点レジスタＳＴＲＢ＿ｒｅｇ３と例外信号の終点レジスタＥＮＤ＿ｒｅｇ３との間にはパスが２つ検出された場合のパスレポートの例を示す。パス検出部１２１は、ＣＰＵ１１などから構成される。
【００３１】
具体的には、パス検出部１２１は、次の（１）〜（３）のような機能を有する。
【００３２】
（１）例外信号毎（論理回路中に含まれる例外信号の始点レジスタと当該例外信号の終点レジスタとの組み合わせ毎）に、当該例外信号を制御する制御信号の状態を、当該例外信号の伝搬を禁止する状態にしてタイミングアークを切断する機能。
タイミングアークを切断するとは、例えば、ＡＮＤゲートの一方の入力端子に‘０’を入力することにより、ＡＮＤゲートの出力信号が必ず‘０’になるようにして他方の入力端子からの信号を出力に伝えない、つまり当該ＡＮＤゲートにてパスを切断するということである。
（２）タイミングアークを切断後、当該例外信号の始点レジスタと当該例外信号の終点レジスタとの間に存在する例外信号のパスを探索する機能。
なお、スタティックハザードが発生しないベストケースであれば、例外信号のタイミングアークが制御信号によって切断されるので、パスは全く検出されないことになる。
（３）検出されたパスのパスレポート番号を示す情報と、検出されたパスの始点となるレジスタを示す情報と、検索されたパスの終点となるレジスタを示す情報と、検出されたパスを示す情報と、を含むパスレポートをパスレポート記憶部２４０に格納する機能。
【００３３】
再収斂パス検出部１２２は、パスレポート記憶部２４０に格納されているパスレポートを読み込む。そして、再収斂パス検出部１２２は、読み込んだパスレポートに基づいて、被疑パスレポートを生成し、生成した被疑パスレポートを被疑バスレポート記憶部２５に格納する。再収斂パス検出部１２２は、ＣＰＵ１１などから構成される。
【００３４】
被疑パスレポートは、例えば、図３（Ｃ）に示すように、例外信号の始点レジスタと例外信号の終点レジスタとが共通する複数のパスのそれぞれを示す複数のパスレポート番号を示す情報と、当該複数のパスの始点レジスタを示す情報と、当該複数のパスの終点レジスタを示す情報と、が対応付けられた情報である。図３（Ｃ）には、例外信号の始点レジスタＳＴＲＢ＿ｒｅｇ３と例外信号の終点レジスタＥＮＤ＿ｒｅｇ３との間にのみ複数のパスが検出された場合の被疑パスレポートの例を示す。
【００３５】
この被疑パスレポートによって示される例外信号の終点レジスタが、スタティックハザードが発生する可能性がある箇所となる。スタティックハザードの根本原因はグリッチであり、グリッチは再収斂するパスでのみ発生する可能性がある。このため、被疑パスレポートによって示される例外信号の終点レジスタがスタティックハザードの発生する可能性がある部位となる。被疑パスレポートが出力された場合には、スタティックハザードが発生する可能性があるので、設計者は詳細解析することになる。しかしながら、被疑パスレポートにより、解析対象部分が絞られるので、その作業は容易なものとなる。
【００３６】
表示制御部１３０は、被疑パスレポート記憶部２５０の内容を表示装置３００に表示する。表示制御部１３０は、ＣＰＵ１１などから構成される。
【００３７】
論理回路情報記憶部２１０には、チェック対象の論理回路を表す論理回路情報（ネットリスト）が格納されている。この論理回路情報は、例えば、ＲＴＬが論理合成ツール（図示せず）により論理合成されることにより生成されたものである。
【００３８】
遅延制約情報記憶部２２０には、論理回路情報を生成する際に論理合成ツールに与えた遅延制約に関するコマンドなどが格納されている。
【００３９】
チェック対象情報記憶部２３０には、チェック対象情報が格納されている。
【００４０】
パスレポート記憶部２４０には、パスレポートが格納されている。
【００４１】
被疑パスレポート記憶部２４０には、スタティックハザードが起こり得る可能性があるパスを示す情報が被疑パスレポートとして格納されている。
【００４２】
なお、スタティックハザード検出装置１００は、コンピュータによって実現可能であり、コンピュータによって実現する場合は、例えば、次のようにする。コンピュータをスタティックハザード検出装置１００として機能させるためのプログラムを記録したディスク、半導体メモリ、その他の記録媒体を用意し、コンピュータに上記プログラムを読み取らせる。コンピュータは、読み取ったプログラムに従って自身の動作を制御することにより、自コンピュータ上に、チェック対象抽出部１１０、スタティックハザード検出部１２０及び表示制御部１３０を実現する。
【００４３】
次に、本実施形態に係るスタティックハザード検出装置１００の動作について詳細に説明する。まず、図４に示すフローチャートを参照して、チェック対象抽出部１１０が実行するチェック対象抽出処理を説明する。まず、論理回路情報記憶部２１０に格納されている論理回路情報が、図５に示す論理回路を表す場合について説明する。ここで、図５に示す論理回路を簡単に説明する。
【００４４】
図５に示す論理回路は、レジスタ５１と、レジスタ５２と、レジスタ５３と、レジスタ５４と、ＡＮＤゲート５５と、ＯＲゲート５６と、から構成される。
【００４５】
レジスタ５１は、制御信号の信号レベルを示す情報が格納されるレジスタ、すなわち、制御信号の始点レジスタである。レジスタ５１は、図５において、ＳＴＲＢ＿ｒｅｇと表記されている。
【００４６】
レジスタ５２は、例外信号の信号レベルを示す情報が格納されるレジスタ、すなわち、例外信号の始点レジスタである。レジスタ５２は、図５において、ＭＵＬＴ＿ｒｅｇと表記されている。
【００４７】
レジスタ５３は、制御信号の信号レベルが、例外信号の伝搬を禁止する信号レベルである場合に、レジスタ５４に供給される信号レベルを示す情報が格納されるレジスタである。レジスタ５３は、図５において、Ｔ１＿ｒｅｇと表記されている。
【００４８】
レジスタ５４は、例外信号の伝搬が禁止されていないときに、例外信号の信号レベルを示す情報が格納されるレジスタ、すなわち、例外信号の終点レジスタである。レジスタ５４は、図５において、ＥＮＤ＿ｒｅｇと表記されている。
【００４９】
ＡＮＤゲート５５は、レジスタ５１から供給される制御信号の信号レベルとレジスタ５２から供給される例外信号の信号レベルとの論理積をとる論理回路である。ＡＮＤゲート５５は、図５において、Ｕ１と表記されている。
【００５０】
ＯＲゲート５６は、ＡＮＤゲート５５から供給される信号の信号レベルとレジスタ５３から供給される信号の信号レベルとの論理和をとる論理回路である。ＯＲゲート５６は、図５において、Ｕ２と表記されている。
【００５１】
図４に示すフローチャートの説明に戻る。先ず、チェック対象抽出部１１０は、論理回路情報記憶部２１０から論理回路情報を読み込むと共に、遅延制約情報記憶部２２０から遅延制約情報を読み込む（ステップＳ１０１）。このとき読み込まれる遅延制約情報の一例を図６に示す。図６に示された遅延制約情報は、レジスタＭＵＬＴ＿ｒｅｇから次段のレジスタまでのパスは全て２クロック信号周期の遅延で合成せよということを意味している。
【００５２】
次いで、チェック対象抽出部１１０は、例外信号の始点レジスタと制御信号の始点レジスタとを全て抽出する（ステップＳ１０２）。具体的には、チェック対象抽出部１１０は、論理回路情報と予め定められている命名規則（ＳＴＲＢ＿＊（‘＊’は任意の英数字）は制御信号の始点レジスタという決め事）とを照らし合わせて、論理回路中に存在する制御信号の始点レジスタを全て抽出する。すなわち、チェック対象抽出部１１０は、“ＳＴＲＢ＿＊”と名付けられているレジスタを論理回路情報から全て抽出する。図５に示す例では、レジスタ５１（ＳＴＲＢ＿ｒｅｇ）が制御信号の始点レジスタとして抽出される。
【００５３】
また、チェック対象抽出部１１０は、遅延制約情報に基づいて、論理回路中に存在する例外信号の始点レジスタを全て抽出する。すなわち、チェック対象抽出部１１０は、遅延制約情報に遅延制約が定義されている始点レジスタを論理回路情報から全て抽出する。図６に示す例では、“ｓｅｔ＿ｍｕｌｔｉｃｙｃｌｅ＿ｐａｔｈ  ２  −  ｆｒｏｍ  ＭＵＬＴ＿ｒｅｇ”とあることから、ＭＵＬＴ＿ｒｅｇが例外信号の始点レジスタである。このため、ＭＵＬＴ＿ｒｅｇ（図５におけるレジスタ５２）が例外信号の始点レジスタとして抽出される。なお、設計者は、設計段階において、制御信号の始点レジスタを上述した命名規則に従って定義し、例外信号の始点レジスタを用いて当該例外信号の遅延制約を定義しておく。
【００５４】
その後、チェック対象抽出部１１０は、例外信号の始点レジスタを全て選択済みであるか否かを判別する（ステップＳ１０３）。チェック対象抽出部１１０は、例外信号の始点レジスタを全て選択済みであると判別した場合（ステップＳ１０３：ＹＥＳ）、チェック対象抽出処理を終了する。
【００５５】
一方、チェック対象抽出部１１０は、例外信号の始点レジスタのいずれかが選択済みでないと判別した場合（ステップＳ１０３：ＮＯ）、例外信号の始点レジスタを１つ選択する（ステップＳ１０４）。そして、チェック対象抽出部１１０は、選択した例外信号の始点レジスタについて、次段のレジスタまでファンアウトトレースする（ステップＳ１０５）。
【００５６】
そして、チェック対象抽出部１１０は、制御信号の始点レジスタを全て選択済みであるか否かを判別する（ステップＳ１０６）。チェック対象抽出部１１０は、制御信号の始点レジスタを全て選択済みであると判別した場合（ステップＳ１０６：ＹＥＳ）、ステップＳ１０３に処理を戻す。
【００５７】
一方、チェック対象抽出部１１０は、制御信号の始点レジスタのいずれかが選択済みでないと判別した場合（ステップＳ１０６：ＮＯ）、制御信号の始点レジスタを１つ選択する（ステップＳ１０７）。そして、チェック対象抽出部１１０は、選択した制御信号の始点レジスタについて、次段のレジスタまでファンアウトトレースする（ステップＳ１０８）。
【００５８】
その後、チェック対象抽出部１１０は、ステップＳ１０５でファンアウトトレースすることにより求めた次段のレジスタと、ステップＳ１０８でファンアウトトレースすることにより求めた次段のレジスタが一致するか否かを判別する（ステップＳ１０９）。即ち、チェック対象抽出部１１０は、選択した例外信号（ステップＳ１０４で選択した例外信号の始点レジスタを始点とする例外信号）と選択した制御信号（ステップＳ１０７で選択した制御信号の始点レジスタを始点とする制御信号）とが同じレジスタに入るか否かを判別する。そして、チェック対象抽出部１１０は、次段のレジスタが一致しないと判別した場合（ステップＳ１０９：ＮＯ）、ステップＳ１０６に処理を戻す。これに対して、次段のレジスタが一致すると判別した場合（ステップＳ１０９：ＹＥＳ）は、チェック対象情報をチェック対象情報記憶部２３０に格納する（ステップＳ１１０）。
【００５９】
すなわち、次段のレジスタが一致する場合、当該次段のレジスタが例外信号の終点レジスタである。このため、チェック対象抽出部１１０は、ステップＳ１０４で選択された例外信号の始点レジスタを示す情報と、当該例外信号の終点レジスタを示す情報と、ステップＳ１０７で選択された制御信号の始点レジスタを示す情報とを含んだチェック対象情報をチェック対象情報記憶部２３０に格納する。そして、チェック対象抽出部１１０は、チェック対象情報をチェック対象情報記憶部２３０に格納後、ステップＳ１０３に処理を戻す。
【００６０】
チェック対象抽出部１１０は、例外信号の始点レジスタを全て選択済みであると判別する（ステップＳ１０３：ＹＥＳ）まで、上述した処理（ステップＳ１０３〜ステップＳ１１０）を繰り返し実行する。
【００６１】
ステップＳ１０４において例外信号の始点レジスタとしてレジスタ５２（ＭＵＬＴ＿ｒｅｇ）が選択され、ステップＳ１０７において制御信号の始点レジスタとしてレジスタ５１（ＳＴＲＢ＿ｒｅｇ）が選択されたとき、次段のレジスタ（レジスタ５４（ＥＮＤ＿ｒｅｇ））が一致する（ステップＳ１０９：ＹＥＳ）。このため、チェック対象抽出部１１０は、図７に示すように、例外信号の始点レジスタがＭＵＬＴ＿ｒｅｇであることを示す情報と、当該例外信号の終点レジスタがＥＮＤ＿ｒｅｇであることを示す情報と、当該例外信号を制御する制御信号の始点レジスタがＳＴＲＢ＿ｒｅｇであることを示す情報とを含んだチェック対象情報をチェック対象情報記憶部２３０に格納することになる。
【００６２】
チェック対象抽出部１１０がチェック対象抽出処理を終了すると、パス検出部１２１が図８のフローチャートに示すパス検出処理を行う。
【００６３】
まず、パス検出部１２１は、チェック対象情報記憶部２３０に格納されているチェック対象情報が全て選択済みであるか否かを判別する（ステップＳ２０１）。パス検出部１２１は、チェック対象情報が全て選択済みであると判別する（ステップＳ２０１：ＹＥＳ）と、パス検出処理を終了する。これに対し、パス検出部１２１は、チェック対象情報のいずれかが選択済みではないと判別する（ステップＳ２０１：ＮＯ）と、チェック対象情報を１つ選択する（ステップＳ２０２）。
【００６４】
次いで、パス検出部１２１は、選択したチェック対象情報によって示される制御信号の信号レベルを‘０’に固定して、当該チェック対象情報によって示される例外信号の始点レジスタから当該チェック対象情報によって示される例外信号の終点レジスタまでのパスを探索する（ステップＳ２０３）。そして、パス検出部１２１は、パスを検出できなかった場合（ステップＳ２０３：ＮＯ）は、ステップＳ２０１に処理を戻す。これに対して、パス検出部１２１は、パスが検出できた場合（ステップＳ２０４：ＹＥＳ）は、検出されたパスを示すパスレポートをパスレポート記憶部２４０に格納する（ステップＳ２０５）。なお、パスレポートは、パスレポート番号を示す情報と、例外信号の始点レジスタを示す情報と、例外信号の終点レジスタを示す情報と、パス上に存在する論理素子を示す情報と、を含む。そして、パス検出部１２１は、パスレポートをパスレポート記憶部２４０に格納後、ステップＳ２０１に処理を戻す。
【００６５】
パス検出部１２１は、チェック対象情報を全て選択済みであると判別する（ステップＳ２０１：ＹＥＳ）まで、上述した処理（ステップＳ２０１〜ステップＳ２０５）を繰り返し実行する。
【００６６】
論理回路情報記憶部２１０に記憶されている論理回路情報に示される回路が図５に示す回路の場合、チェック対象情報記憶部２３０には、図７に示すチェック対象情報が格納される。従って、パス検出手段１３は、制御信号の始点レジスタＳＴＲＢ＿ｒｅｇ（レジスタ５１）から出力される制御信号の信号レベルを‘０’に固定して例外信号の始点レジスタＭＵＬＴ＿ｒｅｇ（レジスタ５２）から例外信号の終点レジスタＥＮＤ＿ｒｅｇ（レジスタ５４）までのパスを探索しようとする。しかしながら、制御信号が‘０’となっているため、Ｕ１（ＡＮＤゲート５５）の部分でタイミングアークが切断される（ＡＮＤゲートの一方の入力が‘０’の場合、出力は必ず‘０’となるため）。従って、この例では、パスレポート記憶部２４０には、全くパスレポートは格納されない。
【００６７】
パス検出部１２１がパス検出処理を終了すると、再収斂パス検出部１２２が図９のフローチャートに示す再収斂パス抽出処理を行う。
【００６８】
再収斂パス検出部１２２は、パスレポート記憶部２４０に格納されているパスレポートが全て選択済みであるか否かを判別する（ステップＳ３０１）。再収斂パス検出部１２２は、パスレポートが全て選択済みであると判別する（ステップＳ３０１：ＹＥＳ）と、再収斂パス抽出処理を終了する。これに対し、再収斂パス検出部１２２は、パスレポートのいずれかが選択済みではないと判別する（ステップＳ３０１：ＮＯ）と、パスレポートを１つ選択する（ステップＳ３０２）。
【００６９】
次いで、再収斂パス検出部１２２は、選択したパスレポートに含まれている例外信号の始点レジスタを示す情報と、選択したパスレポートに含まれている例外信号の終点レジスタを示す情報とをキーにして被疑パスレポート記憶部２５０を検索することにより、当該例外信号の始点レジスタを示す情報と、当該例外信号の終点レジスタを示す情報とを含んだ被疑パスレポートが被疑パスレポート記憶部２５０に格納されているか否かを判別する（ステップＳ３０３）。
【００７０】
そして、再収斂パス検出部１２２は、該当する被疑パスレポートが格納済みであると判別した場合（ステップＳ３０３：ＹＥＳ）、ステップＳ３０１に処理を戻す。これに対し、再収斂パス検出部１２２は、該当する被疑パスレポートが格納済みではないと判別した場合（ステップＳ３０３：ＮＯ）、選択したパスレポートに含まれている例外信号の始点レジスタを示す情報と、選択したパスレポートに含まれている例外信号の終点レジスタを示す情報とをキーにしてパスレポート記憶部２４０を検索することにより、例外信号の始点レジスタと、例外信号の終点レジスタとが一致するパスレポートを検索する（ステップＳ３０４）。
【００７１】
そして、再収斂パス検出部１２２は、例外信号の始点レジスタと例外信号の終点レジスタとがステップＳ３０２において選択したパスレポートと一致するパスレポートを検出できなかった場合（ステップＳ３０５：ＮＯ）は、ステップＳ３０１に処理を戻す。これに対して、再収斂パス検出部１２２は、例外信号の始点レジスタと例外信号の終点レジスタとがステップＳ３０２において選択したパスレポートと一致するパスレポートを検出できた場合（ステップＳ３０５：ＹＥＳ）は、被疑パスレポートを被疑パスレポート記憶部２５０に格納する（ステップＳ３０６）。なお、被疑バスレポートは、例えば、ステップＳ３０２で選択されたパスレポートに含まれているパスレポート番号とステップＳ３０４で検出されたパスレポートに含まれているパスレポート番号とを示す情報と、これらのパスレポートに含まれている例外信号の始点レジスタを示す情報と、これらのパスレポートに含まれている例外信号の終点レジスタを示す情報と、から構成される。そして、再収斂パス検出部１２２は、被疑パスレポートを被疑パスレポート記憶部２５０に格納後、ステップＳ３０１に処理を戻す。
【００７２】
再収斂パス検出部１２２は、被疑パスレポートを全て選択済みであると判別する（ステップＳ３０１：ＹＥＳ）まで、上述した処理（ステップＳ３０１〜ステップＳ３０６）を繰り返し実行する。
【００７３】
この例では、パスレポート記憶部２４０には、パスレポートが全く格納されていないので、再収斂パス検出部１２２が被疑パスレポート記憶部２５０に被疑パスレポートを格納することはない。
【００７４】
再収斂パス検出部１２２の処理が終了すると、表示制御部１３０が、被疑パスレポート記憶部２５０に格納されている被疑パスレポートを表示装置３００に表示する。なお、被疑パスレポート記憶部２５０に被疑パスレポートが全く格納されていない場合は、表示制御部１３０は、スタティックハザードが発生するおそれがないことを示すメッセージを表示装置３００に表示する。
【００７５】
次に、論理回路情報記憶部２１０に格納されている論理回路情報によって表される論理回路（チェック対象の論理回路）が図１０に示すものであった場合を例に挙げて動作を説明する。ここで、図１０に示す論理回路を簡単に説明する。
【００７６】
図１０に示す論理回路は、レジスタ５１と、レジスタ５２と、レジスタ５３と、レジスタ５４と、ＯＲゲート５７と、ＯＲゲート５８と、ＡＮＤゲート５９と、から構成される。なお、図５に示す論理回路と同一の構成要素（同一の符号が付されている構成要素）については、説明を省略する。
【００７７】
ＯＲゲート５７は、レジスタ５１から供給される制御信号の信号レベルとレジスタ５３から供給される信号の信号レベルとの論理和をとる論理回路である。ＯＲゲート５７は、図１０において、Ｕ１と表記されている。
【００７８】
ＯＲゲート５８は、レジスタ５３から供給される信号の信号レベルとレジスタ５２から供給される例外信号の信号レベルとの論理和をとる論理回路である。ＯＲゲート５８は、図１０において、Ｕ２と表記されている。
【００７９】
ＡＮＤゲート５９は、ＯＲゲート５７から供給される信号の信号レベルとＯＲゲート５８から供給される信号の信号レベルとの論理積をとる論理回路である。ＡＮＤゲート５９は、図１０において、Ｕ３と表記されている。
【００８０】
先ず、チェック対象抽出部１１０が図４のフローチャートに示すチェック対象抽出処理を行う。この例の場合、ステップＳ１０４においてレジスタ５２（ＭＵＬＴ＿ｒｅｇ）が選択され、ステップＳ１０７においてレジスタ５１（ＳＴＲＢ＿ｒｅｇ）が選択されたとき、次段のレジスタが共にレジスタ５４（ＥＮＤ＿ｒｅｇ）となる（ステップＳ１０９：ＹＥＳ）。従って、チェック対象抽出部１１０は、図７に示すチェック対象情報をチェック対象情報記憶部２３０に格納する（ステップＳ１１０）。即ち、チェック対象抽出部１１０は、例外信号の始点レジスタＭＵＬＴ＿ｒｅｇを示す情報と、例外信号の終点レジスタＥＮＤ＿ｒｅｇを示す情報と、当該例外信号を制御する制御信号の始点レジスタＳＴＲＢ＿ｒｅｇを示す情報とから構成されるチェック対象情報をチェック対象情報記憶部２３０に格納することになる。
【００８１】
チェック対象抽出部１１０がチェック対象抽出処理を終了すると、パス検出部１２１が図８のフローチャートに示すパス検出処理を行う。
【００８２】
この例の場合、ステップＳ２０３において、始点レジスタＳＴＲＢ＿ｒｅｇから出力される制御信号が‘０’に固定されても、Ｕ１がＯＲゲートであるため、それ以上の固定伝搬は起こらない。これは、ＯＲゲートは、一方の入力信号が‘０’であっても、出力値は他方の信号値に依存するからである。制御信号が‘０’に固定された状態で例外信号の始点レジスタＭＵＬＴ＿ｒｅｇから例外信号の終点レジスタＥＮＤ＿ｒｅｇまでのパスが探索されると、例外信号の始点レジスタＭＵＬＴ＿ｒｅｇ→ＯＲゲートＵ２→ＡＮＤゲートＵ３→例外信号の終点レジスタＥＮＤ＿ｒｅｇというパスが検出される。従って、この例の場合、パス検出部１２１は、図１１に示すように、パスレポート番号Ｐａｔｈ＃１を示す情報と、例外信号の始点レジスタＭＵＬＴ＿ｒｅｇを示す情報と、例外信号の終点レジスタＥＮＤ＿ｒｅｇを示す情報と、検出されたパスを示す情報「ＭＵＬＴ＿ｒｅｇ、Ｕ２、Ｕ３、ＥＮＤ＿ｒｅｇ」を示す情報とを含んだパスレポートをパスレポート記憶部２４０に格納することになる。
【００８３】
パス検出部１２１がパス検出処理を終了すると、再収斂パス検出部１２２が図９のフローチャートに示す再収斂パス抽出処理を行う。
【００８４】
この例の場合、パスレポート記憶部２４０には、図１１に示すパスレポートが１個だけしか格納されていないので、再収斂パス検出部１２２が被疑パスレポートを被疑パスレポート記憶部２５０に格納することはない。
【００８５】
再収斂パス検出部１２２が再収斂パス抽出処理を終了すると、表示制御部１３０が、被疑パスレポート記憶部２５０に格納されている被疑パスレポートを表示装置３００に表示する。この例の場合、被疑パスレポート記憶部２５０には、被疑パスレポートが全く格納されていないので、表示制御部１３０はスタティックハザードが発生しない旨のメッセージを表示装置３００に表示する。実際、図１０に示した論理回路では、レジスタ５３（Ｔ１＿ｒｅｇ）から出力される１クロック信号周期信号の信号レベルが‘１’であっても‘０’であっても、レジスタ５１（ＳＴＲＢ＿ｒｅｇ）から出力される制御信号の信号レベルが‘０’であれば、レジスタ５２（ＭＵＬＴ＿ｒｅｇ）から出力される例外信号はレジスタ５４（ＥＮＤ＿ｒｅｇ）には伝搬しない。
【００８６】
次に、論理回路情報記憶部２１０に格納されている論理回路情報によって表される論理回路（チェック対象にする論理回路）が図１２に示すものであった場合を例に挙げて動作を説明する。ここで、図１２に示す論理回路を簡単に説明する。
【００８７】
図１０に示す論理回路は、レジスタ５１と、レジスタ５２と、レジスタ５３と、レジスタ５４と、ＯＲゲート６０と、インバータ６１と、ＡＮＤゲート６２と、ＡＮＤゲート６３と、ＯＲゲート６４と、から構成される。なお、図５に示す論理回路と同一の構成要素（同一の符号が付されている構成要素）については、説明を省略する。
【００８８】
ＯＲゲート６０は、レジスタ５１から供給される制御信号の信号レベルとレジスタ５３から供給される信号の信号レベルとの論理和をとる論理回路である。ＯＲゲート６０は、図１２において、Ｕ１と表記されている。
【００８９】
インバータ６１は、レジスタ５２から供給される例外信号の信号レベルを反転して出力する論理回路である。インバータ６１は、図１２において、Ｕ４と表記されている。
【００９０】
ＡＮＤゲート６２は、レジスタ５２から供給される例外信号の信号レベルとＯＲゲート６０から供給される信号の信号レベルとの論理積をとる論理回路である。ＡＮＤゲート６２は、図１２において、Ｕ２と表記されている。
【００９１】
ＡＮＤゲート６３は、インバータ６１から供給される信号の信号レベルとレジスタ５３から供給される信号の信号レベルとの論理積をとる論理回路である。ＡＮＤゲート６３は、図１２において、Ｕ３と表記されている。
【００９２】
ＯＲゲート６４は、ＡＮＤゲート６２から供給される信号の信号レベルとＡＮＤゲート６３から供給される信号の信号レベルとの論理和をとる論理回路である。ＯＲゲート６４は、図１２において、Ｕ５と表記されている。
【００９３】
ここで、例外信号と制御信号との関係におけるスタティックハザードの発生原理を図５及び図１２を参照して詳しく説明する。
【００９４】
設計者は、図５に示すように、例外信号からデータを取り込んで良いかどうかを制御する制御信号を設け、制御信号が‘０’の時は例外信号からのデータを取り込まず、逆に制御信号が‘１’の時に例外信号からのデータを取り込む回路が生成されることを意図してＲＴＬ記述を行う。図５に示す回路では、制御信号が‘０’の時は、例外信号の変化がレジスタＥＮＤ＿ｒｅｇに伝播しないように設計されている。
【００９５】
しかし、このような意図で書いたＲＴＬであっても、論理合成ツールがＲＴＬからゲートレベルに変換する際の最適化処理によって図１２のような回路が生成されてしまう可能性がある。この回路は論理的には図５と等価であるが、グリッチが発生する可能性がある。即ち、１クロック信号周期信号が‘１’の場合、例外信号は、例外信号の始点レジスタＭＵＬＴ＿ｒｅｇ→ＡＮＤゲートＵ２→ＯＲゲートＵ５→例外信号の終点レジスタＥＮＤ＿ｒｅｇのパスと、例外信号の始点レジスタＭＵＬＴ＿ｒｅｇ→インバータＵ４→ＡＮＤゲートＵ３→ＯＲゲートＵ５→例外信号の終点レジスタＥＮＤ＿ｒｅｇのパスの２つのパスで伝搬するため、グリッチが発生する可能性がある。グリッチが発生している時に、レジスタＥＮＤ＿ｒｅｇのクロック信号が立ち上がると、論理誤動作（スタティックハザード）が発生する。
【００９６】
スタティックハザード検出装置１００の動作の説明に戻る。先ず、チェック対象抽出部１１０が、図４のフローチャートに示すチェック対象抽出処理を行う。この例の場合、ステップＳ１０４において例外信号の始点レジスタＭＵＬＴ＿ｒｅｇが選択され、ステップＳ１０７において制御信号の始点レジスタＳＴＲＢ＿ｒｅｇが選択されたとき、次段のレジスタが一致する（ステップＳ１０９：ＹＥＳ）。従って、チェック対象抽出部１１０は、図７に示すチェック対象情報をチェック対象情報記憶部２３０に格納する（ステップＳ１１０）。即ち、チェック対象抽出部１１０は、例外信号の始点レジスタＭＵＬＴ＿ｒｅｇを示す情報と、例外信号の終点レジスタＥＮＤ＿ｒｅｇを示す情報と、当該例外信号を制御する制御信号の始点レジスタＳＴＲＢ＿ｒｅｇを示す情報とから構成されるチェック対象情報をチェック対象情報記憶部２３０に格納することになる。
【００９７】
チェック対象抽出部１１０がチェック対象抽出処理を終了すると、パス検出部１２１が図８のフローチャートに示すパス検出処理を行う。
【００９８】
この例の場合、ステップＳ２０３において、始点レジスタＳＴＲＢ＿ｒｅｇから出力される制御信号が‘０’に固定されても、制御信号はＯＲゲートＵ１に入力されているので、前述の理由からそれ以上の固定伝搬は起こらない。従って、制御信号を‘０’に固定して、例外信号の始点レジスタＭＵＬＴ＿ｒｅｇから例外信号の終点レジスタＥＮＤ＿ｒｅｇまでのパスが探索されると、例外信号の始点レジスタＭＵＬＴ＿ｒｅｇ→ＡＮＤゲートＵ２→ＯＲゲートＵ５→例外信号の終点レジスタＥＮＤ＿ｒｅｇというパスと、例外信号の始点レジスタＭＵＬＴ＿ｒｅｇ→インバータＵ４→ＡＮＤゲートＵ３→ＯＲゲートＵ５→例外信号の終点レジスタＥＮＤ＿ｒｅｇというパスの２つのパスが検出される。
【００９９】
この結果、パス検出部１２１は、検出された２つのパスそれぞれについてのパスレポートをパスレポート記憶部２４０に格納する（ステップＳ２０５）。具体的には、図１３に示すように、パス「例外信号の始点レジスタＭＵＬＴ＿ｒｅｇ→ＡＮＤゲートＵ２→ＯＲゲートＵ５→例外信号の終点レジスタＥＮＤ＿ｒｅｇ」についてのパスレポートとして、パスレポート番号Ｐａｔｈ＃１と、例外信号の始点レジスタＭＵＬＴ＿ｒｅｇを示す情報と、例外信号の終点レジスタＥＮＤ＿ｒｅｇを示す情報と、上記パスを示す情報「ＭＵＬＴ＿ｒｅｇ,Ｕ２,Ｕ５,ＥＮＤ＿ｒｅｇ」とから構成されるパスレポートを格納し、さらに、パス「例外信号の始点レジスタＭＵＬＴ＿ｒｅｇ→インバータＵ４→ＡＮＤゲートＵ３→ＯＲゲートＵ５→例外信号の終点レジスタＥＮＤ＿ｒｅｇ」についてのパスレポートとして、パスレポート番号Ｐａｔｈ＃２と、例外信号の始点レジスタＭＵＬＴ＿ｒｅｇを示す情報と、終点レジスタＥＮＤ＿ｒｅｇを示す情報と、上記パスを示す情報「ＭＵＬＴ＿ｒｅｇ,Ｕ４,Ｕ３,Ｕ５,ＥＮＤ＿ｒｅｇ」とから構成されるパスレポートを格納する。
【０１００】
パス検出部１２１がパス検出処理を終了すると、再収斂パス検出部１２２が図９のフローチャートに示す再収斂パス抽出処理を行う。
【０１０１】
この例の場合、パスレポート記憶部２４０には、図１３に示すように、パスレポート番号Ｐａｔｈ＃１のパスレポートと、パスレポート番号Ｐａｔｈ＃２のパスレポートとの２つが格納されているので、次のような処理が行われる。
【０１０２】
先ず、再収斂パス検出部１２２は、パスレポート番号Ｐａｔｈ＃１のパスレポートを選択する（ステップＳ３０２）。その後、再収斂パス検出部１２２は、上記パスレポートに含まれている、例外信号の始点レジスタＭＵＬＴ＿ｒｅｇを示す情報と、例外信号の終点レジスタＥＮＤ＿ｒｅｇを示す情報とをキーにしてパスレポート記憶部２４０を検索する（ステップＳ３０４）。この例の場合、パスレポート番号Ｐａｔｈ＃２のパスレポートは、例外信号の始点レジスタと例外信号の終点レジスタとが、パスレポート番号Ｐａｔｈ＃１のパスレポートと一致する（ステップＳ３０５：ＹＥＳ）。このため、再収斂パス検出部１２２は、被疑パスレポート記憶部２５０に被疑パスレポートを格納することになる（ステップＳ３０６）。具体的には、再収斂パス検出部１２２は、図１４に示すように、例外信号の始点レジスタＭＵＬＴ＿ｒｅｇを示す情報と、例外信号の終点レジスタＥＮＤ＿ｒｅｇを示す情報と、検出されたパスレポートのパスレポート番号Ｐａｔｈ＃１,Ｐａｔｈ＃２を示す情報とを含んだ被疑パスレポートを被疑パスレポート記憶部２５０に格納する。
【０１０３】
再収斂パス検出部１２２が再収斂パス抽出処理を終了すると、表示制御部１３０は、被疑パスレポート記憶部２５０に格納されている被疑パスレポートを表示装置３００に表示する。この表示を見ることにより、設計者は、例外信号の終点レジスタＥＮＤ＿ｒｅｇにスタティックハザードが発生する可能性が高いということを知ることができる。なお、被疑パスレポートの形式は図１４に示した形式に限られるものではない。例えば、被疑パスレポートの形式は、例外信号の終点レジスタだけを含むものであっても良いし、図１４に示した情報に加え、パスを示す情報などを含んでいても良い。パスを示す情報を被疑パスレポートに含ませるようにすることにより、設計者は、どのパスが原因でスタティックハザードが発生する可能性があるのかを容易に認識することが可能になる。
【０１０４】
なお、上述した実施の形態では説明しなかったが、パス検出部１２１として静的遅延解析器（ＳＴＡ；Ｓｔａｔｉｃ  Ｔｉｍｉｎｇ  Ａｎａｌｙｚｅｒ）を利用することもできる。但し、パス検出部１２１として静的遅延解析器を利用する場合には、チェック対象抽出部１１０がチェック対象情報をチェック対象情報記憶部２３０に格納する際、チェック対象情報を、図１５に示すような静的遅延解析器専用のコマンドに変換することが必要になる。ここで、ｓｅｔ＿ｃａｓｅ＿ａｎａｌｙｓｉｓはレジスタを定数固定するコマンドである。また、ｒｅｐｏｒｔ＿ｔｉｍｉｎｇは指定レジスタ間のパスをレポートするコマンドである。意味としてはＳＴＲＢ＿ｒｅｇを‘０’に固定して、ＭＵＬＴ＿ｒｅｇからＥＮＤ＿ｒｅｇまでのパスを出力せよ、という意味になる。また、静的遅延解析器の動作は、図８のフローチャートに示したパス検出部１２１の動作とほぼ同じになる。但し、チェック対象情報の代わりに、静的遅延解析器専用のコマンドを入力する点が相違している。
【０１０５】
本実施形態に係るスタティックハザード検出装置１００によれば、例外信号の伝搬を制御する制御信号が導入されている論理回路においても、スタティックハザードが発生する可能性があるか否かを自動的にチェックすることが可能になるという効果を得ることができる。
【０１０６】
その理由は、スタティックハザード検出装置１００は、論理回路中に存在する例外信号の終点レジスタであって、上記例外信号の始点レジスタとの間に、制御信号の状態が上記例外信号の伝搬を禁止する状態になっているときに上記例外信号を伝搬する可能性のあるパスを複数有する終点レジスタを検出するスタティックハザード検出部１２０を備えているからである。
【０１０７】
また、本実施形態によれば、スタティックハザードが発生する可能性が高い部位を設計者が容易に認識することができるという効果も得ることができる。
【０１０８】
その理由は、スタティックハザード検出部１２０によって検出された例外信号の終点レジスタを示す情報を表示装置３００に表示する表示制御部１３０を備えているからである。
【０１０９】
（第２の実施形態）
第１の実施形態では、設計者によりあらかじめ明示的に示された情報（所定の命名規則に従って設計者により命名された制御信号の始点レジスタのシンボル名）に基づいて、論理回路中に存在する制御信号の始点レジスタが抽出される例を示した。しかしながら、設計者によりあらかじめ明示的に示された情報を用いられずに、論理回路中に存在する制御信号の始点レジスタが抽出されるように構成しても良い。以下、図面を参照して、第２の実施形態に係るスタティックハザード検出装置１００の動作について説明する。なお、第２の実施形態に係るスタティックハザード検出装置１００の動作は、チェック対象抽出処理以外の動作は第１の実施形態に係るスタティックハザード検出装置１００の動作と同様である。従って、以下の説明では、第２の実施形態に係るスタティックハザード検出装置１００が実行するチェック対象抽出処理について説明する。
【０１１０】
ここでは、論理回路情報記憶部２１０に格納されている論理回路情報が、図１６に示す論理回路を表す場合について説明する。ここで、図１６に示す論理回路を簡単に説明する。
【０１１１】
図１６に示す論理回路は、レジスタ７１と、レジスタ７２と、レジスタ７３と、論理回路８１と、を備える。
【０１１２】
レジスタ７１は、例外信号の信号レベルを示す情報が格納されるレジスタ、すなわち、例外信号の始点レジスタである。レジスタ７１は、図１６において、ＵＮＫ１＿ｒｅｇと表記されている。
【０１１３】
レジスタ７２は、制御信号の信号レベルを示す情報が格納されるレジスタ、すなわち、制御信号の始点レジスタである。レジスタ７２は、図１６において、Ａ＿ｒｅｇと表記されている。
【０１１４】
レジスタ７３は、例外信号の伝搬が禁止されていないときに、例外信号の信号レベルを示す情報が格納されるレジスタ、すなわち、例外信号の終点レジスタである。レジスタ７３は、図１６において、ＥＮＤ０＿ｒｅｇと表記されている。
【０１１５】
論理回路８１は、ＡＮＤゲート、ＯＲゲート、インバータなどから構成される回路である。例外信号は、論理回路８１を介して、レジスタ７１からレジスタ７３に伝搬する。
【０１１６】
次に、図１７に示すフローチャートを参照して、チェック対象抽出部１１０が実行するチェック対象抽出処理を説明する。
【０１１７】
先ず、チェック対象抽出部１１０は、論理回路情報記憶部２１０から論理回路情報を読み込むと共に、遅延制約情報記憶部２２０から遅延制約情報を読み込む（ステップＳ４０１）。このとき読み込まれる遅延制約情報の一例を図１９に示す。図１９に示された遅延制約情報は、前段のレジスタからレジスタＥＮＤ０＿ｒｅｇまでのパスは全て２クロック信号周期の遅延で合成せよということを意味している。
【０１１８】
次いで、チェック対象抽出部１１０は、例外信号の終点レジスタを全て抽出する（ステップＳ４０２）。具体的には、チェック対象抽出部１１０は、遅延制約情報に基づいて、論理回路中に存在する例外信号の終点レジスタを全て抽出する。すなわち、チェック対象抽出部１１０は、遅延制約情報に遅延制約が定義されている終点レジスタを論理回路情報から全て抽出する。図１９に示す例では、“ｓｅｔ＿ｍｕｌｔｉｃｙｃｌｅ＿ｐａｔｈ  ２  −  ｔｏ  ＥＮＤ０＿ｒｅｇ”とあることから、ＥＮＤ０＿ｒｅｇが例外信号の終点レジスタである。このため、ＥＮＤ０＿ｒｅｇ（図１６におけるレジスタ７３）が例外信号の終点レジスタとして抽出される。なお、設計者は、設計段階において、例外信号の終点レジスタを用いて当該例外信号の遅延制約を定義しておく。
【０１１９】
その後、チェック対象抽出部１１０は、例外信号の終点レジスタを全て選択済みであるか否かを判別する（ステップＳ４０３）。チェック対象抽出部１１０は、例外信号の終点レジスタを全て選択済みであると判別した場合（ステップＳ４０３：ＹＥＳ）、チェック対象抽出処理を終了する。
【０１２０】
一方、チェック対象抽出部１１０は、例外信号の終点レジスタのいずれかが選択済みでないと判別した場合（ステップＳ４０３：ＮＯ）、例外信号の終点レジスタを１つ選択する（ステップＳ４０４）。そして、チェック対象抽出部１１０は、選択した例外信号の終点レジスタについて、前段のレジスタを全て取得する（ステップＳ４０５）。具体的には、チェック対象抽出部１１０は、論理回路に含まれる全てのレジスタについてファンアウトトレースするなどして、ステップＳ４０４で選択した例外信号の終点レジスタの前段のレジスタ（ファンインとなるレジスタ）を全て取得する。
【０１２１】
そして、チェック対象抽出部１１０は、前段のレジスタを判別する処理を実行する（ステップＳ４０６）。前段レジスタ判別処理については、図１８に示すフローチャートを参照して説明する。
【０１２２】
まず、チェック対象抽出部１１０は、前段のレジスタを全て選択済みであるか否かを判別する（ステップＳ５０１）。チェック対象抽出部１１０は、前段のレジスタを全て選択済みであると判別した場合（ステップＳ５０１：ＹＥＳ）、前段レジスタ判別処理を終了する。
【０１２３】
一方、チェック対象抽出部１１０は、前段のレジスタのいずれかが選択済みでないと判別した場合（ステップＳ５０１：ＮＯ）、前段のレジスタを１つ選択する（ステップＳ５０２）。そして、チェック対象抽出部１１０は、選択した前段のレジスタに遅延制約情報が付加されているか否かを判別する（ステップＳ５０３）。
【０１２４】
チェック対象抽出部１１０は、選択した前段のレジスタに遅延制約情報が付加されていると判別した場合（ステップＳ５０３：ＹＥＳ）、前段のレジスタを例外信号の始点レジスタに設定する（ステップＳ５０４）。これに対し、チェック対象抽出部１１０は、選択した前段のレジスタに遅延制約情報が付加されていないと判別した場合（ステップＳ５０３：ＮＯ）、前段のレジスタを制御信号の始点レジスタに設定する（ステップＳ５０５）。チェック対象抽出部１１０は、ステップＳ５０４又はステップＳ５０５の処理を終了すると、ステップＳ５０１に処理を戻す。
【０１２５】
チェック対象抽出部１１０は、前段のレジスタを全て選択済みであると判別する（ステップＳ５０１：ＹＥＳ）まで、上述した処理（ステップＳ５０１〜ステップＳ５０５）を繰り返し実行する。
【０１２６】
チェック対象抽出部１１０は、前段レジスタ判別処理（ステップＳ４０６）を終了すると、例外信号の始点レジスタと制御信号の始点レジスタとが共に設定されたか否かを判別する（ステップＳ４０７）。即ち、チェック対象抽出部１１０は、ステップＳ５０４において前段のレジスタが例外信号の始点レジスタに設定され、さらに、ステップＳ５０５において前段のレジスタが制御信号の始点レジスタに設定されたか否かを判別する。そして、チェック対象抽出部１１０は、例外信号の始点レジスタと制御信号の始点レジスタとのうちいずれかが設定されていないと判別した場合（ステップＳ４０７：ＮＯ）、ステップＳ４０３に処理を戻す。これに対して、例外信号の始点レジスタと制御信号の始点レジスタとが共に設定されたと判別した場合（ステップＳ４０７：ＹＥＳ）は、チェック対象情報をチェック対象情報記憶部２３０に格納する（ステップＳ４０８）。
【０１２７】
具体的には、チェック対象抽出部１１０は、ステップＳ５０４で設定された例外信号の始点レジスタを示す情報と、ステップＳ４０４で選択された例外信号の終点レジスタを示す情報と、ステップＳ５０５で設定された制御信号の始点レジスタを示す情報とを含んだチェック対象情報をチェック対象情報記憶部２３０に格納する。そして、チェック対象抽出部１１０は、チェック対象情報をチェック対象情報記憶部２３０に格納後、ステップＳ４０３に処理を戻す。
【０１２８】
チェック対象抽出部１１０は、例外信号の終点レジスタを全て選択済みであると判別する（ステップＳ４０３：ＹＥＳ）まで、上述した処理（ステップＳ４０３〜ステップＳ４０８）を繰り返し実行する。
【０１２９】
ここで、ステップＳ４０４において例外信号の終点レジスタとしてレジスタ７３（ＥＮＤ０＿ｒｅｇ）が選択されたとき、ステップＳ５０４においてレジスタ７１（ＵＮＫ１＿ｒｅｇ）が例外信号の始点レジスタとして設定され、ステップＳ５０５においてレジスタ７２（Ａ＿ｒｅｇ）が制御信号の始点レジスタとして設定される。このため、チェック対象抽出部１１０は、例外信号の始点レジスタＵＮＫ１＿ｒｅｇを示す情報と、例外信号の終点レジスタＥＮＤ０＿ｒｅｇを示す情報と、制御信号の始点レジスタＡ＿ｒｅｇを示す情報とを含んだチェック対象情報をチェック対象情報記憶部２３０に格納することになる。
【０１３０】
本実施形態に係るスタティックハザード検出装置１００によれば、例外信号の終点レジスタを示す情報に基づいて、例外信号の始点レジスタと制御信号の始点レジスタとを自動で抽出することができる。このため、設計者は、回路の設計時に、制御信号の始点レジスタについて、当該レジスタが制御信号の始点レジスタであることを示す情報を逐一指定する必要がない。従って、設計者の工数を削減することができる。また、設計者が制御信号の始点レジスタであることを指定し忘れた場合でも、チェックすべきレジスタを見逃すことを防止することができる。
【０１３１】
（第３の実施形態）
第２の実施形態では、例外信号の終点レジスタの前段のレジスタに遅延制約情報が付加されているか否かによって、当該前段のレジスタが例外信号の始点レジスタであるか制御信号の始点レジスタであるかが判別される例を示した。しかしながら、各レジスタがどのようなクロック信号によって駆動されるかによって、当該前段のレジスタが例外信号の始点レジスタであるか制御信号の始点レジスタであるかが判別されるように構成しても良い。以下、図面を参照して、第３の実施形態に係るスタティックハザード検出装置１００の動作について説明する。なお、第３の実施形態に係るスタティックハザード検出装置１００の動作は、前段レジスタ判別処理以外の動作は第２の実施形態に係るスタティックハザード検出装置１００の動作と同様である。従って、以下の説明では、第３の実施形態に係るスタティックハザード検出装置１００が実行する前段レジスタ判別処理について説明する。
【０１３２】
ここでは、論理回路情報記憶部２１０に格納されている論理回路情報が、図２０に示す論理回路を表す場合について説明する。ここで、図２０に示す論理回路を簡単に説明する。
【０１３３】
図２０に示す論理回路は、レジスタ７４と、レジスタ７５と、レジスタ７６と、論理回路８２と、を備える。
【０１３４】
レジスタ７４は、例外信号の信号レベルを示す情報が格納されるレジスタ、すなわち、例外信号の始点レジスタである。レジスタ７４は、図２０において、Ｂ＿ｒｅｇと表記されている。レジスタ７４は、第１のクロック信号ＣＬＫ１によって駆動されるレジスタである。
【０１３５】
レジスタ７５は、制御信号の信号レベルを示す情報が格納されるレジスタ、すなわち、制御信号の始点レジスタである。レジスタ７５は、図２０において、Ｃ＿ｒｅｇと表記されている。レジスタ７５は、第２のクロック信号ＣＬＫ２によって駆動されるレジスタである。
【０１３６】
レジスタ７６は、例外信号の伝搬が禁止されていないときに、例外信号の信号レベルを示す情報が格納されるレジスタ、すなわち、例外信号の終点レジスタである。レジスタ７６は、図２０において、ＥＮＤ１＿ｒｅｇと表記されている。レジスタ７６は、第２のクロック信号ＣＬＫ２によって駆動されるレジスタである。
【０１３７】
論理回路８２は、ＡＮＤゲート、ＯＲゲート、インバータなどから構成される回路である。例外信号は、論理回路８２を介して、レジスタ７４からレジスタ７６に伝搬する。
【０１３８】
次に、図２１に示すフローチャートを参照して、チェック対象抽出部１１０が実行する前段レジスタ判別処理について説明する。
【０１３９】
まず、チェック対象抽出部１１０は、前段のレジスタを全て選択済みであるか否かを判別する（ステップＳ６０１）。チェック対象抽出部１１０は、前段のレジスタを全て選択済みであると判別した場合（ステップＳ６０１：ＹＥＳ）、前段レジスタ判別処理を終了する。
【０１４０】
一方、チェック対象抽出部１１０は、前段のレジスタのいずれかが選択済みでないと判別した場合（ステップＳ６０１：ＮＯ）、前段のレジスタを１つ選択する（ステップＳ６０２）。そして、チェック対象抽出部１１０は、ステップＳ６０２で選択した前段のレジスタとステップＳ４０４で選択した例外信号の終点レジスタとが異なるクロック信号で駆動されるか否かを判別する（ステップＳ６０３）。
【０１４１】
各レジスタがどのようなクロック信号で駆動されるかを示す情報は、遅延制約情報に含まれている。従って、チェック対象抽出部１１０は、遅延制約情報に基づいて、ステップＳ６０２で選択した前段のレジスタとステップＳ４０４で選択した例外信号の終点レジスタとが異なるクロック信号で駆動されるか否かを判別する。
【０１４２】
チェック対象抽出部１１０は、ステップＳ６０２で選択した前段のレジスタとステップＳ４０４で選択した例外信号の終点レジスタとが異なるクロック信号で駆動されると判別した場合（ステップＳ６０３：ＹＥＳ）、前段のレジスタを例外信号の始点レジスタに設定する（ステップＳ６０４）。これに対し、チェック対象抽出部１１０は、ステップＳ６０２で選択した前段のレジスタとステップＳ４０４で選択した例外信号の終点レジスタとが同じクロック信号で駆動されると判別した場合（ステップＳ６０３：ＮＯ）、前段のレジスタを制御信号の始点レジスタに設定する（ステップＳ６０５）。チェック対象抽出部１１０は、ステップＳ６０４又はステップＳ６０５の処理を終了すると、ステップＳ５０１に処理を戻す。
【０１４３】
チェック対象抽出部１１０は、前段のレジスタを全て選択済みであると判別する（ステップＳ６０１：ＹＥＳ）まで、上述した処理（ステップＳ５０１〜ステップＳ５０５）を繰り返し実行する。
【０１４４】
ここで、ステップＳ４０４において例外信号の終点レジスタとしてレジスタ７６（ＥＮＤ１＿ｒｅｇ）が選択されたとき、ステップＳ６０４においてレジスタ７４（Ｂ＿ｒｅｇ）が例外信号の始点レジスタとして設定され、ステップＳ６０５においてレジスタ７５（Ｃ＿ｒｅｇ）が制御信号の始点レジスタとして設定される。このため、チェック対象抽出部１１０は、ステップＳ４０８において、例外信号の始点レジスタＢ＿ｒｅｇを示す情報と、例外信号の終点レジスタＥＮＤ１＿ｒｅｇを示す情報と、制御信号の始点レジスタＢ＿ｒｅｇを示す情報とを含んだチェック対象情報をチェック対象情報記憶部２３０に格納することになる。
【０１４５】
本実施形態に係るスタティックハザード検出装置１００によれば、例外信号の始点レジスタに遅延制約情報が付加されていない場合であっても、例外信号の始点レジスタと制御信号の始点レジスタとを自動で抽出することができる。
【０１４６】
本発明に係るスタティックハザード検出装置が実行するチェック対象抽出処理、パス検出処理、並びに、再収斂パス抽出処理は、図示したフローチャートにより示される処理に限定されない。
【０１４７】
例えば、第１の実施形態において、例外信号の始点レジスタの後段のレジスタであって、例外信号の始点レジスタから出力される例外信号と制御信号の始点レジスタから出力される制御信号とがともに供給されるレジスタを例外信号の終点レジスタとして抽出する手法は任意である。
【０１４８】
また、例えば、第２の実施形態において、例外信号の終点レジスタの前段のレジスタのうち、遅延制約情報が付加されているレジスタを例外信号の始点レジスタとして抽出する手法は任意である。
【０１４９】
また、例えば、第３の実施形態において、例外信号の終点レジスタの前段のレジスタのうち、例外信号の終点レジスタと異なるクロック信号で駆動されるレジスタを例外信号の始点レジスタとして抽出する手法は任意である。
【０１５０】
さらに、論理回路中に存在する各種のレジスタを抽出する手法は、上述した第１〜３の実施形態において示した手法に限定されず、また、上述した第１〜３の実施形態において示した手法を組み合わせてもよい。例えば、例外信号の始点レジスタは、遅延制約情報に基づいて抽出してもよいし、命名規則に基づいて抽出してもよいし、動作クロック或いは遅延制約情報に基づいて例外信号の終点レジスタの前段のレジスタを抽出してもよい。また、例えば、例外信号の終点レジスタは、遅延制約情報に基づいて抽出してもよいし、命名規則に基づいて抽出してもよいし、動作クロック或いは遅延制約情報に基づいて例外信号の始点レジスタの後段のレジスタを抽出してもよい。
【０１５１】
上記第１〜３の実施形態では、スタティックハザード検出装置が実行するプログラムが、スタティックハザード検出装置等が備える記憶装置に予め記憶されているものとして説明した。しかし、上述の処理を実行させるためのプログラムを、フレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ＭＯ（Ｍａｇｎｅｔｏ  Ｏｐｔｉｃａｌ  Ｄｉｓｋ）などのコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。
【０１５２】
さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等してプログラムを実行してもよい。
【０１５３】
本発明は、マルチサイクル信号や非同期信号といったタイミング例外信号が伝搬される論理回路において、グリッチを原因とするスタティックハザードが発生する可能性があるか否かをチェックするといった用途に用いると好適である。
【図面の簡単な説明】
【０１５４】
【図１】本発明の第１〜３の実施形態にかかるスタティックハザード検出装置１００の構成を示すブロック図である。
【図２】本発明の第１〜３の実施形態にかかるスタティックハザード検出装置１００の機能を説明するためのブロック図である。
【図３】（Ａ）は、チェック対象情報を模式的に示す図である。（Ｂ）は、パスレポートを模式的に示す図である。（Ｃ）は、被疑パスレポートを模式的に示す図である。
【図４】第１の実施形態におけるチェック対象抽出処理を示すフローチャートの一例である。
【図５】チェック対象にする論理回路の第１の例を示す図である。
【図６】遅延制約情報の一例を示す図である。
【図７】パスレポートの一例を示す図である。
【図８】パス検出処理を示すフローチャートの一例である。
【図９】再収斂パス抽出処理を示すフローチャートの一例である。
【図１０】チェック対象にする論理回路の第２の例を示す図である。
【図１１】図１０に示した論理回路をチェック対象にした際に生成されるパスレポートの一例を示した図である。
【図１２】チェック対象にする論理回路の第３の例を示す図である。
【図１３】図１２に示した論理回路をチェック対象にした際に生成されるパスレポートの一例を示した図である。
【図１４】図１２に示した論理回路をチェック対象にした際に生成される被疑パスレポートの一例を示した図である。
【図１５】静的遅延解析器に対するコマンドの一例を示す図である。
【図１６】第２の実施形態においてチェック対象にする論理回路の例を示す図である。
【図１７】第２の実施形態におけるチェック対象抽出処理を示すフローチャートの一例である。
【図１８】第２の実施形態における前段レジスタ判別処理を示すフローチャートの一例である。
【図１９】遅延制約情報の一例を示す図である。
【図２０】第３の実施形態においてチェック対象にする論理回路の例を示す図である。
【図２１】第３の実施形態における前段レジスタ判別処理を示すフローチャートの一例である。
【符号の説明】
【０１５５】
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  ハードディスク装置
１５  入力装置
１６  表示装置
１００  スタティックハザード検出装置
１１０  チェック対象抽出部
１２０  スタティックハザード検出部
１２１  パス検出部
１２２  再収斂パス検出部
１３０  表示制御部
２００  記憶装置
２１０  論理回路情報記憶部
２２０  遅延制約情報記憶部
２３０  チェック対象情報記憶部
２４０  パスレポート記憶部
２５０  被疑パスレポート記憶部
３００  表示装置
【図１】
0004450103.tif 000002
【図２】
0004450103.tif 000003
【図３】
0004450103.tif 000004
【図４】
0004450103.tif 000005
【図５】
0004450103.tif 000006
【図６】
0004450103.tif 000007
【図７】
0004450103.tif 000008
【図８】
0004450103.tif 000009
【図９】
0004450103.tif 000010
【図１０】
0004450103.tif 000011
【図１１】
0004450103.tif 000012
【図１２】
0004450103.tif 000013
【図１３】
0004450103.tif 000014
【図１４】
0004450103.tif 000015
【図１５】
0004450103.tif 000016
【図１６】
0004450103.tif 000017
【図１７】
0004450103.tif 000018
【図１８】
0004450103.tif 000019
【図１９】
0004450103.tif 000020
【図２０】
0004450103.tif 000021
【図２１】
0004450103.tif 000022