(57)【要約】【課題】擬似エラーを削減する。【解決手段】定常信号をチェック対象回路に伝播させ（１０３）、送信側レジスタと受信側レジスタとの間において異なる非同期転送となる組み合わせを抽出する（１０４）。抽出された非同期転送の組み合わせから、チェック対象回路を抽出し、複数信号の同期化回路については上記チェック対象回路から除外する（１０６，１０７，１１２）。上記チェック対象回路に上記定常信号の論理値“１”と論理値“０”の全ての組み合わせにおける各組み合わせ毎に、定常信号を伝播させる（１０６２）。伝播された定常信号の論理値の組み合わせにおいて、論理的に信号変化が到達する非同期の送信側レジスタが１つであるか否かをチェックする（１０６４，１０６５）。それに基づいて、単信号転送用の同期化回路として適切であるか否かを判定し（１１０）、擬似エラーの削減を図る。【選択図】図１
2010049385.tif 000002
【特許請求の範囲】
【請求項１】
中央処理装置を用いてチェック対象回路におけるクロックドメインチェックを行うクロックドメインチェック方法であって、
非同期転送において論理値が変化しない信号と定義される定常信号を上記チェック対象回路に伝播させる第１ステップと、
送信側レジスタと受信側レジスタとの間において異なる非同期転送となる組み合わせを抽出する第２ステップと、
上記第２ステップで抽出された非同期転送の組み合わせから、受信側レジスタ毎に、送信側に向かってバックトレースして送信側レジスタ及び上記送信側レジスタに至るまでの回路並びに定常信号を探索することでチェック対象回路を抽出し、複数信号の同期化回路については上記チェック対象回路から除外する第３ステップと、
上記チェック対象回路に上記定常信号の論理値“１”と論理値“０”の全ての組み合わせにおける各組み合わせ毎に、定常信号を伝播させる第４ステップと、
上記第４ステップで伝播された定常信号の論理値の組み合わせにおいて、接続関係より、論理的に信号変化が到達する非同期の送信側レジスタが１つであるか否かをチェックする第５ステップと、
上記第５ステップでのチェック結果に基づいて、非同期転送にかかわる回路の構成が単信号転送用の同期化回路として適切であるか否かを判定する第６ステップと、を含み、上記第１乃至第６ステップが上記中央処理装置によって実行されることを特徴とするクロックドメインチェック方法。
【請求項２】
中央処理装置を用いてチェック対象回路におけるクロックドメインチェックを行うクロックドメインチェック方法であって、
非同期転送において論理値が変化しない信号と定義される定常信号を上記チェック対象回路に伝播させる第１ステップと、
送信側レジスタと受信側レジスタとの間において異なる非同期転送となる組み合わせを抽出する第２ステップと、
上記第２ステップで抽出された非同期転送の組み合わせから、受信側レジスタ毎に、送信側に向かってバックトレースして送信側レジスタ及び上記送信側レジスタに至るまでの回路並びに定常信号を探索することでチェック対象回路を抽出し、複数信号の同期化回路については上記チェック対象回路から除外する第３ステップと、
上記第３ステップで抽出されたチェック対象回路を２文決定グラフへ移し、上記２文決定グラフに論理値“１”と論理値“０”とを与え、上記２文決定グラフを変形させる第４ステップと、
上記２文決定グラフの残る変数から非同期の送信側レジスタが１つであるか否かをチェックする第５ステップと、
上記第５ステップでのチェック結果に基づいて、非同期転送にかかわる回路の構成が単信号転送用の同期化回路として適切であるか否かを判定する第６ステップと、を含み、上記第１乃至第６ステップが上記中央処理装置によって実行されることを特徴とするクロックドメインチェック方法。
【請求項３】
上記定常信号は、非同期転送において非同期渡りを行う他の信号が変化するときに、論理値“０”又は論理値“１”の固定値とされ、論理値が変化されないものとされる請求項１又は２記載のクロックドメインチェック方法。
【請求項４】
非同期転送において論理値が変化しない信号と定義される定常信号をチェック対象回路に伝播させる第１手順と、
送信側レジスタと受信側レジスタとの間において異なる非同期転送となる組み合わせを抽出する第２手順と、
上記第２ステップで抽出された非同期転送の組み合わせから、受信側レジスタ毎に、送信側に向かってバックトレースして送信側レジスタ及び上記送信側レジスタに至るまでの回路並びに定常信号を探索することでチェック対象回路を抽出し、複数信号の同期化回路については上記チェック対象回路から除外する第３手順と、
上記チェック対象回路に上記定常信号の論理値“１”と論理値“０”の全ての組み合わせにおける各組み合わせ毎に、定常信号を伝播させる第４手順と、
上記第４手順で伝播された定常信号の論理値の組み合わせにおいて、接続関係より、論理的に信号変化が到達する非同期の送信側レジスタが１つであるか否かをチェックする第５手順と、
上記第５手順でのチェック結果に基づいて、非同期転送にかかわる回路の構成が単信号転送用の同期化回路として適切であるか否かを判定する第６手順と、をコンピュータに実行させることで、非同期転送における同期化回路をチェックするためのクロックドメインチェック用プログラム。
【請求項５】
非同期転送において論理値が変化しない信号と定義される定常信号をチェック対象回路に伝播させる第１手順と、
送信側レジスタと受信側レジスタとの間において異なる非同期転送となる組み合わせを抽出する第２手順と、
抽出した非同期転送の組み合わせから受信側レジスタ毎に、受信側レジスタの到達する送信側レジスタ及び、定常信号、及び間の対象回路を抽出し、複数信号の同期化回路を検出してそれを対象外とする第３手順と
上記第３手順で抽出されたチェック対象回路を２文決定グラフへ移し、上記２文決定グラフに論理値“１”と論理値“０”とを与え、上記２文決定グラフを変形させる第４手順と、
上記２文決定グラフの残る変数から非同期の送信側レジスタが１つであるか否かをチェックする第５手順と、
上記第５ステップでのチェック結果に基づいて、非同期転送にかかわる回路の構成が単信号転送用の同期化回路として適切であるか否かを判定する第６手順と、をコンピュータに実行させることで、非同期転送における同期化回路をチェックするためのクロックドメインチェック用プログラム。
【請求項６】
上記定常信号は、非同期転送において非同期渡りを行う他の信号が変化するときに、論理値“０”又は論理値“１”の固定値とされ、論理値が変化されないものとされる請求項４又は５記載のクロックドメインチェック用プログラム。
【請求項７】
請求項４乃至６の何れか１項記載のクロックドメインチェック用プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロックの非同期転送における同期化回路のチェックを可能とするＣＤＣ（clock-domain-crossing）技術に関する。
【背景技術】
【０００２】
Ｓｏｃ（システムオンチップ）においては、1つのチップ上に膨大なクロックドメインにまたがる信号が存在する。ＣＤＣ（clock-domain-crossing）チェックが不十分であった場合、グリッチ（入力データ切り換え時のスパイク電圧）を取り込んだ動作不良や、貫通電流による事故を招くおそれがある。このため、ＣＤＣチェックが重要となる。ＣＤＣチェックでは、クロック信号の同期、非同期の関係を示した情報に基づいてクロック信号をレジスタまで伝播させて、クロックが非同期関係にあるレジスタ転送箇所が見つけられ、その転送にかかわる回路が、所望の同期化回路になっているか否かがチェックされる。そしてそのチェック結果に基づいてエラー解析が行われる。
【０００３】
また、非同期転送において、非同期の入力信号で発生するラッチ回路の準安定状態は、ラッチ回路において規定されているクロックの立上り若しくは立下りを基準にしたセットアップ時間とホールド時間で囲まれた危険ゾーンとされる。セットアップ時間やホールド時間が一定時間を超えた場合に、出力信号は不安定になる。この状態は「メタステーブル」と称され、システムの誤動作を引き起こす。メタステーブル対策のため、メタステーブルが発生しても支障を来たさない回路構成が採用される（例えば特許文献１参照）。
【０００４】
さらに、非同期回路において発生するタイミングエラーを考慮した論理シミュレータにおいて、タイミング・チェックにおいて発生する大量の擬似エラーを抑制する技術が知られている（例えば特許文献２）。ここでは、タイミングエラー制約指定情報に特定のセルの端子および所定時間を指定しておき、論理シミュレータは、タイミングエラー制約指定情報に指定された所定時間内に特定のセルの端子について検出されたタイミング制約の許容値の違反を無効とし、エラーメッセージを出力しないようにしている。
【０００５】
【特許文献１】特開平７−３１１７３５号公報
【特許文献２】特開２００４−３０１８６号広報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来のＣＤＣ（clock-domain-crossing）チェック方法によれば、例えば１０Ｍゲート規模のＳｏｃをチェックした場合、１Ｍ個ものエラーが出力される場合がある。この膨大なエラーについて本願発明者が検討したところ、回路自体は同期回路違反であっても、チップ仕様上非同期転送に支障を来たさない場合がほとんどであることが見い出された。回路自体は同期回路違反であるが、チップ仕様上非同期転送に支障を来たさない場合は擬似エラーとされる。しかし、上記１Ｍ個ものエラーの中から真のエラーを見つけ出すのは困難とされ、エラー解析に長時間を要する。
【０００７】
本発明の目的は、擬似エラーを低減するための技術を提供することにある。
【０００８】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。
【００１０】
すなわち、非同期転送において論理値が変化しない信号と定義される定常信号を上記チェック対象回路に伝播させる。送信側レジスタと受信側レジスタとの間において異なる非同期転送となる組み合わせを抽出する。抽出された非同期転送の組み合わせから、受信側レジスタ毎に、送信側に向かってバックトレースして送信側レジスタ及び上記送信側レジスタに至るまでの回路並びに定常信号を探索することでチェック対象回路を抽出し、複数信号の同期化回路については上記チェック対象回路から除外する。上記チェック対象回路に上記定常信号の論理値“１”と論理値“０”の全ての組み合わせにおける各組み合わせ毎に、定常信号を伝播させる。伝播された定常信号の論理値の組み合わせにおいて、接続関係より、論理的に信号変化が到達する非同期の送信側レジスタが１つであるか否かをチェックする。このチェック結果に基づいて、非同期転送にかかわる回路の構成が単信号転送用の同期化回路として適切であるか否かを判定する。これにより、非同期転送にかかわる回路の構成が適切であるか否かを判定することで擬似エラーの削減を図ることができる。
【発明の効果】
【００１１】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００１２】
すなわち、擬似エラーを低減するための技術を提供することができる。
【発明を実施するための最良の形態】
【００１３】
１．代表的な実施の形態
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１４】
〔１〕本発明の代表的な実施の形態に係るクロックドメインチェック方法は、中央処理装置（３１）によって、以下の第１乃至第６ステップが実行される。
【００１５】
すなわち、第１ステップでは、非同期転送において論理値が変化しない信号と定義される定常信号を上記チェック対象回路に伝播させる（１０３）。第２ステップでは、送信側レジスタと受信側レジスタとの間において異なる非同期転送となる組み合わせを抽出する（１０４）。第３ステップでは、上記第２ステップで抽出された非同期転送の組み合わせから、受信側レジスタ毎に、送信側に向かってバックトレースして送信側レジスタ及び上記送信側レジスタに至るまでの回路並びに定常信号を探索することでチェック対象回路を抽出し、複数信号の同期化回路については上記チェック対象回路から除外する（１０６，１０７，１１２）。第４ステップでは、上記チェック対象回路に上記定常信号の論理値“１”と論理値“０”の全ての組み合わせにおける各組み合わせ毎に、定常信号を伝播させる（１０６２）。第５ステップでは、上記第４ステップで伝播された定常信号の論理値の組み合わせにおいて、接続関係より、論理的に信号変化が到達する非同期の送信側レジスタが１つであるか否かをチェックする（１０６４，１０６５）。第６ステップでは、上記第５ステップでのチェック結果に基づいて、非同期転送にかかわる回路の構成が単信号転送用の同期化回路として適切であるか否かを判定する（１１０）。上記の構成によれば、上記非同期転送にかかわる回路の構成が適切であるか否かが判定されることで、同期化回路違反であっても、チップの動作には影響しない場合のエラー（擬似エラー）が、真のエラーと区別されて検出され難くなる。このことが、擬似エラーの削減を達成する。
【００１６】
〔２〕また、上記第４ステップに代えて、上記第３ステップで抽出されたチェック対象回路を２文決定グラフへ移し、上記２文決定グラフに論理値“１”と論理値“０”とを与え、上記２文決定グラフを変形させ、上記第５ステップに代えて、上記２文決定グラフの残る変数から非同期の送信側レジスタが１つであるか否かをチェックするようにしても良い。
【００１７】
〔３〕上記〔１〕及び〔２〕において、定常信号は、非同期転送において非同期渡りを行う他の信号が変化するときに、論理値“０”又は論理値“１”の固定値とされ、論理値が変化されないものとされる。
【００１８】
〔４〕別の観点によれば、クロックドメインチェック用プログラムは、以下の第１乃至第６手順をコンピュータに実行させることで、非同期転送における同期化回路をチェックする。
【００１９】
すなわち、第１手順では、非同期転送において論理値が変化しない信号と定義される定常信号をチェック対象回路に伝播させる（１０３）。第２手順では、送信側レジスタと受信側レジスタとの間において異なる非同期転送となる組み合わせを抽出する（１０４）。第３手順では、上記第２ステップで抽出された非同期転送の組み合わせから、受信側レジスタ毎に、送信側に向かってバックトレースして送信側レジスタ及び上記送信側レジスタに至るまでの回路並びに定常信号を探索することでチェック対象回路を抽出し、複数信号の同期化回路については上記チェック対象回路から除外する（１０６，１０７，１１２）。第４手順では、上記チェック対象回路に上記定常信号の論理値“１”と論理値“０”の全ての組み合わせにおける各組み合わせ毎に、定常信号を伝播させる（１０６１，１０６２）。第５手順では、上記第４手順で伝播された定常信号の論理値の組み合わせにおいて、接続関係より、論理的に信号変化が到達する非同期の送信側レジスタが１つであるか否かをチェックする（１０６４，１０６５）。第６手順では、上記第５手順でのチェック結果に基づいて、非同期転送にかかわる回路の構成が単信号転送用の同期化回路として適切であるか否かを判定する（１１０）。
【００２０】
〔５〕また、上記第４手順に代えて、上記第３手順で抽出されたチェック対象回路を２文決定グラフへ移し、上記２文決定グラフに論理値“１”と論理値“０”とを与え、上記２文決定グラフを変形させ、上記第５手順に代えて、上記２文決定グラフの残る変数から非同期の送信側レジスタが１つであるか否かをチェックするようにしても良い。
【００２１】
〔６〕上記〔４〕及び〔５〕において、上記定常信号は、非同期転送において非同期渡りを行う他の信号が変化するときに、論理値“０”又は論理値“１”の固定値とされ、論理値が変化されないものとされる。
【００２２】
〔７〕上記〔４〕乃至〔６〕記載のクロックドメインチェック用プログラムは、コンピュータ読み取り可能な記録媒体に記録することができる。
【００２３】
ここで、上記受信側レジスタや上記送信側レジスタには、Ｄ型フリップフロップ回路が含まれる。
【００２４】
２．実施の形態の説明
次に、実施の形態について更に詳述する。
【００２５】
図３には、本発明にかかるクロックドメインチェック用プログラムが実行されるコンピュータシステムの構成例が示される。図１に示されるコンピュータ３０は、特に制限されないが、ＣＰＵ（中央処理装置）３１、ハードディスク装置３２、入力装置３３、表示装置３４、及メモリ３５を含み、それらは、バス３６を介して互いに結合されている。ＣＰＵ３１は、所定のプログラムを実行する。本例においてこのＣＰＵ３１は、非同期転送における同期化回路のチェックを可能とするクロックドメインチェック用プログラムを実行する。ハードディスク装置３２には、上記ＣＰＵ３１で実行される各種プログラムや、チェック対象回路のネットリストなど、各種情報が格納される。特に制限されないが、ハードディスク装置３２の記録媒体である磁気ディスク３２１は、ハードディスク装置３２に着脱自在とされる。磁気ディスク３２１は、ハードディスク装置３２に装着された状態で、コンピュータ３０によって読み書き可能とされる。
【００２６】
ＣＰＵ３１は、クロックドメインチェック用プログラムをハードディスク装置３２の磁気ディスク３２１から読み出して実行することで、所定の演算処理を行う。メモリ３５は、上記ＣＰＵ３１における演算処理の作業領域などに利用される。このメモリ３５には、例えばランダムアクセス可能なＲＡＭ（ランダム・アクセス・メモリ）とされる。入力装置３３は、このコンピュータシステムに対して各種情報の入力を可能とするもので、この入力装置３３には、キーボードやマウス等の各種入力デバイスが含まれる。表示装置３４は、このコンピュータ３０での各種情報を必要に応じて表示するもので、例えば液晶ディスプレイ装置とされる。
【００２７】
上記構成のコンピュータ３０によって行われるクロックドメインチェックで用いられる定常信号について図８乃至図１０を用いて説明する。
【００２８】
チェック対象回路として、図８に示されるように、Ｄ型フリップフロップ回路８０１〜８０５、及び３入力アンドゲート８０６を含んで成る非同期転送回路を考える。フリップフロップ回路８０１〜８０３は、第１クロック信号ＣＬＫ１に同期動作され、フリップフロップ回路８０４，８０５は第２クロック信号ＣＬＫ２に同期動作される。第１クロック信号ＣＬＫ１と第２クロック信号ＣＬＫ２とは互いに非同期の関係にある。入力信号Ｉｎ１，Ｉｎ２, Ｉｎ３がランダムに変化する場合、図８に示される回路は、アンドゲート８０６でのグリッチが正しい状態変化としてフリップフロップ回路８０４に取込まれてしまうことで、エラーを生ずることが考えられる。ここで、入力信号Ｉｎ１が「定常信号」に指定された場合、この入力信号Ｉｎ１は、非同期渡りを行う他の信号（つまりＩｎ２，Ｉｎ３）の論理が変化するにもかかわらず、論理値“０”又は論理値“１”の固定値になっており、変化しない信号とされる。具体的にはモード信号や、ソフトウエアのフロー（例えば、Ｉｎ１はＩｎ２やＩｎ３とは同時変化しない）などで、上記が保障されている信号を指す。結果として、入力信号Ｉｎ１，Ｉｎ２，Ｉｎ３のうち、２本が”定常信号“である場合、上記回路は１ビットの信号渡りと等価になるため、同期化回路として不都合を生じない。
【００２９】
また、定常信号は、通常の論理固定された信号とは異なり、論理の組み合わせが複数パターン存在する場合がある。チェック対象回路として、例えば図９に示されるように、Ｄ型フリップフロップ回路９０１〜９０８、及び選択回路９０９を含んで非同期転送回路が形成される場合を考える。Ｄ型フリップフロップ回路９０３，９０４，９０７，９０８は第１クロック信号ＣＫ１に同期動作され、Ｄ型フリップフロップ回路９０１，９０２は第２クロック信号ＣＫ２に同期動作され、Ｄ型フリップフロップ回路９０５，９０６は第３クロック信号ＣＫ３に同期動作される。選択回路９０９は、上記Ｄ型フリップフロップ回路９０１，９０２の出力信号に基づいて、上記Ｄ型フリップフロップ回路９０３〜９０６のうちの何れかの出力信号を選択的に後段のＤ型フリップフロップ回路９０７に伝達する。かかる構成において、Ｄ型フリップフロップ回路９０１，９０２の出力端子（Ｑ）の論理出力値を「０，０」に固定し、Ｄ型フリップフロップ回路９０６の出力端子（Ｑ）の出力信号が選択回路９０９によって選択されるものとすると、その場合の非同期転送チェックは、Ｄ型フリップフロップ回路９０６からＤ型フリップフロップ回路９０７までの経路のみとなり、Ｄ型フリップフロップ回路９０５からＤ型フリップフロップ回路９０７に至る経路の非同期転送チェックは行われない。そこで、Ｄ型フリップフロップ回路９０１，９０２の出力信号を「定常信号」とし、４種類の論理組み合わせパターン、すなわち、「０，０」、「０，１」、「１，０」、「１，１」を設定する。これにより、図９に示される回路の非同期転送チェックにおいては、４種類の論理組み合わせパターンが切り替えられることにより、Ｄ型フリップフロップ回路９０３〜９０６の出力端子（Ｑ）が選択回路９０９によって順に選択され、その結果、Ｄ型フリップフロップ回路９０３〜９０６からＤ型フリップフロップ回路９０７に至る経路の非同期転送チェックを行うことができる。
【００３０】
さらに、定常信号は、フリップフロップ回路を越えて伝播される。チェック対象回路として、例えば図１０に示されるように、Ｄ型フリップフロップ回路１００１〜１００３、及び２入力アンドゲート１００４〜１００７を含んで同期転送回路が形成される場合を考える。アンドゲート１００４は、Ｄ型フリップフロップ回路１００１の出力信号とＤ型フリップフロップ回路１００２の出力信号とのアンド論理を得る。このアンドゲート１００４の出力信号は後段のアンドゲート１００５の一方の入力端子に伝達される。アンドゲート１００５の他方の入力端子は論理値“１”に固定されている。アンドゲート１００５の出力信号は後段のアンドゲート１００６の一方の入力端子に伝達される。このアンドゲート１００６の他方の入力端子には、Ｄ型フリップフロップ回路１００３の出力信号が伝達される。Ｄ型フリップフロップ回路１００６の出力信号は後段のアンドゲート１００７の一方の入力端子に伝達される。Ｄ型フリップフロップ回路１００７の他方の入力端子は論理値“０”に固定されている。かかる構成において、Ｄ型フリップフロップ回路１００１，１００２のデータ入力端子（Ｄ）の信号を定常信号に指定すると、アンドゲート１００５の出力端子の論理が決定される。つまり、Ｄ型フリップフロップ回路１００１，１００２のデータ入力端子（Ｄ）の信号が定常信号に指定された場合、この定常信号は、Ｄ型フリップフロップ回路１００１，１００２からアンドゲート１００５まで順方向に伝播し、その結果、Ｄ型フリップフロップ回路１００１，１００２のデータ入力端子（Ｄ）の入力信号、アンドゲート１００４の出力信号、アンドゲート１００５の出力信号が、「定常信号」属性となる。定常信号は、例えばアンドゲート１００５のように、片方の入力端子の論理値が固定されたスルー条件とされる場合や、アンドゲート１００４のように、全ての入力信号が定常信号とされる場合には順方向（信号伝達方向）に伝播される。また、図１０において、Ｄ型フリップフロップ回路１００３のデータ入力端子（Ｄ）の信号をも定常信号に指定した場合には、定常信号はアンドゲート１００６の出力端子まで伝播される。尚、アンドゲート１００７の他方の入力端子が論理値“０”に固定されるため、定常信号はアンドゲート１００７の出力端子には伝播されない。定常信号は、信号固定とは異なり、論理値“１”と論理値“０”の双方が考慮される。
【００３１】
図１には、上記構成のコンピュータ３０において、クロックドメインチェック用プログラムが実行された場合の処理手順が示される。
【００３２】
コンピュータ３０において、クロックドメインチェック用プログラムの実行が開始されると、チェック対象回路につての情報の一例とされるネットリスト、クロック情報、及び定常信号に関する各種情報が、ＣＰＵ３１によってハードディスク装置３２の磁気ディスク３２１から読みされる。ここで上記クロック情報には、クロック信号の周波数や、複数のクロック信号間での同期・非同期の関係を示す情報などが含まれる。また、定常信号は、非同期転送において、論理値が変化しない信号とされ、この定常信号の指定には、ネットリストにおけるネット名、信号名、端子名の何れを用いても良い。
【００３３】
先ず、回路のネットリストを用いて、当該回路に、論理的に予め固定されている値（固定値という）が存在する場合には、その固定値が与えられて伝播される（１０１）。さらに、当該回路に、クロック信号が供給されて伝播される（１０２）。クロック信号には同期、非同期の区別がある。クロック信号は、レジスタ（Ｄ型フリップフロップ回路を含む）のクロック入力端子まで伝播され、クロック入力端子にクロック名がスタックされる。複数のクロック信号が到達した場合には、それに対応して複数のクロック名がスタックされる。
【００３４】
次に、ネットリストを用いて、定常信号が供給されて伝播される（１０３）。このとき、定常信号は、レジスタ（Ｄ型フリップフロップ回路を含む）を越えて伝達される。
【００３５】
ステップ１０３において定常信号が伝播された後、非同期転送となる組み合わせの抽出が行われる（１０４）。すなわち、レジスタ（Ｄ型フリップフロップ回路を含む）や、入力端子から順方向（信号伝達方向）に経路探索が行われ、非同期転送となる組み合わせが抽出される。
【００３６】
尚、定常信号が伝播されることで、非同期でなくなった回路は、上記ステップ１０４で抽出されない。例えば図１１に示されるように、選択回路１１０１，１１０２の選択動作が定常信号によって制御される結果、Ｄ型フリップフロップ回路１１０２，１１０４間で同期転送が行われる場合には非同期転送が行われないので、上記ステップ１０４で抽出されない。
【００３７】
そして、上記ステップ１０４で得られた、非同期転送となる組み合わせの抽出結果から、全ての受信側レジスタが抽出される（１０５）。以下の処理は、この受信側レジスタ毎に行われる。
【００３８】
上記ステップ１０５で、受信側レジスタが抽出された後に、当該受信レジスタ毎に、複数信号の同期化回路が存在するか否かの判別が行われる（１０６）。図５、図６、図７には、複数信号の同期化回路例が示される。例えば、図５に示されるように、組み合わせ回路５０１の後段に配置されたＤ型フリップフロップ回路５０２と、その後段に配置されたＤ型フリップフロップ回路５０３と、このＤ型フリップフロップ回路５０３にイネーブル信号を供給するためのＤ型フリップフロップ回路５４，５０５とを含んで非同期転送回路が形成される場合において、Ｄ型フリップフロップ回路５０２から出力されるデータＳＩＧ〔ｎ：０〕の他に、イネーブル信号ｅｎａｂｌｅが、Ｄ型フリップフロップ回路５０３においてクロック信号ＣＬＫ２によって同期化される。イネーブル信号ｅｎａｂｌｅは、オリジナルのイネーブル信号Ｅｎａｂｌｅ＿ｏｒｇがＤ型フリップフロップ回路５０４，５０５の２段構成において同一クロック信号で同期化されることでメタステーブル対策が施されたものである。また、図６に示されるように、送信側と受信側との間に、ＦＩＦＯ（先入れ先出し）バッファ６０１を介在させてデータ転送を行う場合がある。同期化する側（受信側）のクロック信号が送信側のクロック信号の３倍以下の周期の場合、ＦＩＦＯバッファ６０１でバッファリングして、バッファフル条件に相当するフラグ（バースト転送要求信号やバースト転送終了信号に相当）を使用することにより、同期化信号の周波数比を３倍以上とすることができる。このように同期転送回路が構成される場合もあり、同期化回路の接続に誤りがあるか否かの判別が行われる。さらに、送信側と受信側（同期する側）との間で、リクエスト（Ｒｅｑｕｓｔ）、アクノリッジ（ａｃｋｎｏｗｌｅｄｇｅ）のハンドシェイクが行われる場合がある。例えば図７に示されるように、送信側は第１クロック信号ＣＬＫ１に同期され、受信側は第２クロック信号ＣＬＫ２に同期される。送信側から受信側にリクエスト（Ｒｅｑｕｓｔ）が発行され、受信側から送信側にアクノリッジ（ａｃｋｎｏｗｌｅｄｇｅ）が返される。送信側から受信側へのリクエスト（Ｒｅｑｕｓｔ）信号については、Ｄ型フリップフロップ回路７０１，７０２の２段構成によりメタステーブル対策が施されている。受信側から送信側へのアクノリッジ（ａｃｋｎｏｗｌｅｄｇｅ）信号については、Ｄ型フリップフロップ回路７０３，７０４の２段構成によりメタステーブル対策が施されている。上記リクエスト（Ｒｅｑｕｓｔ）に対する上記アクノリッジ（ａｃｋｎｏｗｌｅｄｇｅ）により、送信側から受信側へのデータ転送が行われる。上記複数信号の同期化回路に対して、図４に示されるように、単信号による同期回路は、単信号の同期回路と称される。すなわち、組み合わせ回路４０１の後段に配置されたＤ型フリップフロップ回路４０２や、その後段に配置されたＤ型フリップフロップ回路４０３，４０４を含んで非同期転送回路が形成される場合には、送信側のＤ型フリップフロップ回路４０２でグリッチの削除が図られ、受信側のＤ型フリップフロップ回路４０３，４０４の２段構成によってメタステーブル対策が施されている。
【００３９】
上記ステップ１０６での判別において、複数信号の同期化回路が存在する（Ｙ）と判断された場合には、その複数数信号の同期化回路がチェック対象回路から除外される（１１２）。そして、上記ステップ１０６での判別において、複数信号の同期化回路が存在しない（Ｎ）と判断された場合、及び上記ステップ１１２で複数数信号の同期化回路がチェック対象回路から除外された後に、受信側レジスタ毎にチェック対象回路の抽出が行われる（１０７）。すなわち、上記ステップ１０４で抽出された非同期転送の組み合わせから、受信側レジスタ毎に、送信側に向かってバックトレースして送信側レジスタ及び上記送信側レジスタに至るまでの回路並びに定常信号を探索することでチェック対象回路が抽出される。
【００４０】
次に、非同期パスのチェックが行われる（１０８）。この非同期パスのチェックについては、図２を参照しながら後に詳述する。
【００４１】
上記ステップ１０８での非同期パスのチェック結果に基づいて、非同期転送が１つ存在するか否かの判別が行われる（１０９）。上記ステップ１０９の判別において、非同期転送が１つ存在すると判断された場合には、そのチェック対象回路が同期化回路として適切であるか否かの判別が行われる（１１０）。例えばメタステーブル対策が施されている場合には、同期化回路として適切であると判断され、メタステーブル対策が施されていない場合には不適切であると判断される。上記ステップ１１０の判別において、同期化回路として適切である（Ｙ）と判断された場合には、本フローチャートによる処理を終了するか否かの判別が行われる（１１１）。上記ステップ１０５で抽出された全ての受信側レジスタについて、上記ステップ１０６〜１１０の処理が終了していない場合には、上記ステップ１０６の判別に戻り、別の受信側レジスタについて、上記ステップ１０６〜１１０の処理が実行される。上記ステップ１０５で抽出された全ての受信側レジスタについて、上記ステップ１０６〜１１０の処理が終了した場合には、上記ステップ１１１で本フローチャートによる処理が終了される。また、上記ステップ１１０の判別において、同期化回路として不適切である（Ｎ）と判断された場合には、非同期転送回路ミスエラーメッセージが出力されてから（１１３）、本フローチャートによる処理が終了される。
【００４２】
次に、上記ステップ１０８の非同期パスチェックについて詳述する。
【００４３】
先ず、フラグ（ＦＬＡＧ）が論理値“０”に設定される（１０６０）。次に、チェック対象回路内の定常信号の数を「Ｎ」とし、定常信号を論理値“０”及び論理値“１”とした場合の全ての組み合わせ、すなわち、２のＮ乗個の論理の組み合わせを生成する（１０６１）。例えば、当該チェック対象回路内の定常信号の数（Ｎ）を、２とした場合、上記ステップ１０６１では、「０，０」「０，１」「１，０」「１，１」の組み合わせパターンが生成される。
【００４４】
次に、上記ステップ１０６１で生成された論理の組み合わせ毎に、定常信号が伝播される（１０６２）。すなわち、チェック対象回路において定常信号が複数存在する場合、その定常信号の上記組み合わせパターン毎に、チェック対象回路を伝播させてシミュレーションを行う。
【００４５】
そして、図２におけるステップ１０６２で定常信号が伝播された結果に基づいて、信号伝達のパスが切れている箇所、あるいはクロック信号が伝播しない箇所があるか否かの判別が行われる（１０６３）。この判別において、信号伝達のパスが切れている箇所、あるいはクロック信号が伝播しない箇所が存在しない（Ｎ）と判断された場合には、一つの回路に２つ以上の非同期の送信側レジスタが存在するか否かの判別が行われる（１０６４）。この判別において、一つの回路に２つ以上の非同期の送信側レジスタが存在しない（Ｎ）と判断された場合には、非同期の送信側レジスタが１つあるか否かの判別が行われる（１０６５）。この判別において、非同期の送信側レジスタが１つではない（Ｎ）と判断された場合には、当該チェック対象回路における論理値“０”、論理値“１”の信号伝播情報がクリアされる（１０６８）。そして、非同期パスチェックを終了するか否かの判別が行われる（１０６９）。つまり、上記ステップ１０６１で生成された論理値“０”及び論理値“１”の全ての組み合わせについて、上記ステップ１０６２〜１０６８までの処理が終了していない場合には、上記ステップ１０６２に遷移され、論理値“０”及び論理値“１”の別の組み合わせパターンについて、上記ステップ１０６２〜１０６８までの処理が行われる。そして、上記ステップ１０６１で生成された論理値“０”及び論理値“１”の全ての組み合わせについて、上記ステップ１０６２〜１０６８までの処理が終了した場合には、ステップ１０８での非同期パスチェックは終了され、上記ステップ１０９（図１）の判別に遷移される。上記ステップ１０６４の判別において、一つの回路に２つ以上の非同期の送信側レジスタが存在する（Ｙ）と判断された場合には、非同期転送回路ミスエラーメッセージを出力し、フラグ（ＦＬＡＧ）が論理値“０”に設定され（１０６６）、ステップ１０８での非同期パスチェックが終了される。また、上記ステップ１０６５の判別において、非同期の送信側レジスタが１つある（Ｙ）と判断された場合には、非同期転送が１つ存在することから、換言すれば、入力と出力とが論理的に１対１接続に見える回路が１つ存在することから、フラグ（ＦＬＡＧ）が論理値“１”に設定されてから上記ステップ１０６８の処理に遷移される。上記ステップ１０９（図１）での判別では、このフラグ（ＦＬＡＧ）の論理値によって、非同期転送が１つ存在するか否かの判別が行われる。
【００４６】
ここで、上記ステップ１０６５の判別において、非同期の送信側レジスタが１つある（Ｙ）と判断された場合には、すなわち、入力と出力とが論理的に１対１接続に見える場合について説明する。
【００４７】
例えば図１２に示されるように、チェック対象回路が、Ｄ型フリップフロップ回路１２０１，１２０２，１２０４、及びアンドゲート１２０３によって非同期転送回路が構成され、Ｄ型フリップフロップ回路１２０２の出力信号が定常信号とされる場合において、この定常信号が論理値“１”の場合にはＤ型フリップフロップ回路１２０１，１２０４が１対１で繋がっていると判断される。また、図１３に示されるように、チェック対象回路が、Ｄ型フリップフロップ回路１３０１，１３０２，１３０４と、選択回路１３０３とで非同期転送回路が構成され、上記選択回路１３０３の選択動作を制御する信号が定常信号とされる場合には、定常信号が論理値“０”の場合には、Ｄ型フリップフロップ回路１３０１，１３０４が１対１で繋がっていると判断され、定常信号が論理値“１”の場合には、Ｄ型フリップフロップ回路１３０２，１３０４が１対１で繋がっていると判断される。
【００４８】
上記の例によれば、以下の作用効果を得ることができる。
【００４９】
（１）クロックドメインチェック用プログラムがＣＰＵ３１によってハードディスク装置３２の磁気ディスク３２１から読み出されて実行されることにより、図１及び図２に示されるフローチャートに示される処理が行われる。この処理においては、同期化回路違反であっても、実際には論理値“０”又は論理値“１”の定常信号で、チップの動作には影響しない場合のエラー（擬似エラー）が、真のエラーと区別されて検出されるため、エラーとして検出され難くなる。そのため、擬似エラーの情報を大幅に削減するこができる。本発明者が実際に行ったクロックドメインチェックによれば、チェック対象回路の構成によっては、従来技術に比べておよそ５００分の１にまで擬似エラーを削減することができた。
【００５０】
（２）上記（１）の作用効果により、エラー解析時間が大幅に削減されることで、チップの製造にかかるコストを低減することができる。
【００５１】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００５２】
例えば、上記の例では、図２に示されるように、非同期パスチェックをシミュレーションにより行ったが、このシミュレーションに代えて、受信側レジスタ毎に、２分決定グラフを用いることができる。すなわち、ステップ１０７で抽出されたチェック対象回路を２文決定グラフへ移し、この２文決定グラフに論理値“１”と論理値“０”とを与え、２文決定グラフを変形させるステップと、上記２文決定グラフの残る変数から非同期の送信側レジスタが１つであるか否かをチェックするステップとを設ける。この非同期の送信側レジスタが１つであるか否かのチェック結果に基づいて、上記ステップ１１０の判別を行うようにする。例えば、図１４（Ａ）に示されるチェック対象回路（基本的には図１３に示されるのと等価とされ、クロック信号ＣＫ１とＣＫ２とは非同期とされる）は、図１４（Ｂ）に示されるように２分決定グラフに移され、この２分決定グラフが変形される。ここで、定常信号Ｃが論理値“１”の場合には、図１５（Ａ）に示されるように、定常信号Ｃが論理値“１”のパスと、論理値“０”のパスのうち、論理値“０”のパスを除外することで２分決定グラフが変形され、２分決定グラフ内に残る非同期の「ａ」が検出される。また、定常信号Ｃが論理値“０”の場合には、図１５（Ｂ）に示されるように、定常信号Ｃが論理値“１”のパスと、論理値“０”のパスのうち、論理値“１”のパスを除外することで２分決定グラフが変形され、２分決定グラフ内に残る非同期の「ｂ」が検出される。このようにして、２分決定グラフが変形され、上記２文決定グラフの残る変数から非同期の送信側レジスタが１つであるか否かがチェックされる。このようにしても上記シミュレーションの場合と同様の効果を得ることができる。
【００５３】
また、上記クロックドメインチェックの場合と同様に、タイミング検証の対象とされる回路において定常信号を設定することにより、タイミング検証におけるパスを限定することで、タイミング検証における擬似エラーを削減することができる。
【００５４】
上記磁気ディスク３２１は、コンピュータ３０によって読み取り可能な記録媒体の一例である。コンピュータ３０によって読み取り可能な記録媒体として、上記磁気ディスク３２１の他に、光ディスク装置における光ディスクや、フラッシュメモリなどの半導体記憶装置を適用することができる。
【図面の簡単な説明】
【００５５】
【図１】本発明にかかるクロックドメインチェック用プログラムが実行された場合の処理手順の一例を示すフローチャートである。
【図２】図１における非同期パスチェックの詳細な流れを示すフローチャートである。
【図３】クロックドメインチェック用プログラムが実行されるコンピュータシステムの全体的な構成例ブロック図である。
【図４】単信号による同期回路の構成例ブロックである。
【図５】複数信号による同期回路の構成例ブロックである。
【図６】複数信号による同期回路の構成例ブロックである。
【図７】複数信号による同期回路の構成例ブロックである。
【図８】上記クロックドメインチェックで用いられる定常信号の機能を説明するためのブロック図である。
【図９】上記クロックドメインチェックで用いられる定常信号の機能を説明するためのブロック図である。
【図１０】上記クロックドメインチェックで用いられる定常信号の機能を説明するためのブロック図である。
【図１１】クロックドメインチェック用プログラムが実行された場合の主要動作を説明するためのブロック図である。
【図１２】クロックドメインチェック用プログラムが実行された場合の主要動作を説明するためのブロック図である。
【図１３】クロックドメインチェック用プログラムが実行された場合の主要動作を説明するためのブロック図である。
【図１４】本発明にかかるクロックドメインチェック用プログラムが実行された場合の処理手順の説明図である。
【図１５】本発明にかかるクロックドメインチェック用プログラムが実行された場合の処理手順の説明図である。
【００５６】
３０  コンピュータ
３１  ＣＰＵ
３２  ハードディスク装置
３２１  磁気ディスク
３３  入力装置
３４  表示装置
３５  メモリ
３６  バス
【図１】
2010049385.tif 000003
【図２】
2010049385.tif 000004
【図３】
2010049385.tif 000005
【図４】
2010049385.tif 000006
【図５】
2010049385.tif 000007
【図６】
2010049385.tif 000008
【図７】
2010049385.tif 000009
【図８】
2010049385.tif 000010
【図９】
2010049385.tif 000011
【図１０】
2010049385.tif 000012
【図１１】
2010049385.tif 000013
【図１２】
2010049385.tif 000014
【図１３】
2010049385.tif 000015
【図１４】
2010049385.tif 000016
【図１５】
2010049385.tif 000017