(57)【要約】【課題】同期化回路の要否を検証する。【解決手段】設計データに基づき、非同期パスが検出され、非同期パス上に外部制御シンクロナイザ１０と、制御回路１５とが配置される。外部制御シンクロナイザ１０は、制御回路１５に従って、メタステーブル発生部１１が生成する擬似メタステーブル信号、または同期化部１２によって同期化された同期化信号を切り替え、次段の順序回路２２に出力する。こうして信号を切り替えながら、擬似メタステーブル信号が入力されたときの順序回路２２の状態と、同期化信号が入力されたときの順序回路２２の状態と、が検証され、非同期パスにおける同期化回路の要否が判定される。【選択図】図１
2009116497.tif 000002
【特許請求の範囲】
【請求項１】
送信回路と受信回路が非同期関係にある信号の同期化回路の検証方法において、
非同期パス検出手段が、設計データに基づいて非同期信号が転送される非同期パスを検出するステップと、
配置手段が、擬似メタステーブル信号を発生させるメタステーブル発生部と、前記非同期信号または前記擬似メタステーブル信号を入力してクロックに同期した同期化信号に変換出力する同期化部と、外部から入力される外部制御信号に基づいて前記擬似メタステーブル信号または前記同期化信号を切り替えて出力する切替部と、を有する外部制御同期化回路を前記非同期パス上に配置するステップと、
要否判定手段が、前記外部制御信号によって前記切替部を制御し、前記擬似メタステーブル信号または前記同期化信号を次段の順序回路に出力したときの前記順序回路の状態を検証し、検証結果に基づいて前記非同期パスにおける同期化回路の要否を判定するステップと、
を有することを特徴とする同期化回路の検証方法。
【請求項２】
前記配置手段が前記外部制御同期化回路を配置するステップは、前記外部制御同期化回路の動作状態を指示する前記外部制御信号を、前記擬似メタステーブル信号発生の許可と禁止を前記メタステーブル発生部に指示するメタステーブル制御信号と、前記同期化部へ入力される信号及び前記同期化部から出力される信号を切り替え制御する同期化制御信号とに変換する制御回路を、前記外部制御同期化回路と共に配置する、ことを特徴とする請求項１記載の同期化回路の検証方法。
【請求項３】
前記要否判定手段が前記同期化回路の要否を判定するステップは、前記外部制御信号を操作し、非同期状態の前記擬似メタステーブル信号を前記次段の順序回路に出力させて前記次段の順序回路の状態を検証し、問題がないと検証されたときは、該非同期パスに前記同期化回路は必要なしと判定する、ことを特徴とする請求項１記載の同期化回路の検証方法。
【請求項４】
前記要否判定手段が前記同期化回路の要否を判定するステップは、前記非同期状態の前記擬似メタステーブル信号が入力された前記次段の順序回路の状態に問題が検出されたときは、前記外部制御信号を操作し、前記同期化部によって同期化させた前記擬似メタステーブル信号を前記次段の順序回路に出力させて前記次段の順序回路の状態を検証し、問題がないと検証されたときに前記同期化回路が必要であると判定する、ことを特徴とする請求項３記載の同期化回路の検証方法。
【請求項５】
前記同期化部は、切り替え可能な複数の同期化回路モデルを有し、前記要否判定手段が前記同期化回路の要否を判定するステップは、前記同期化回路モデルを順次切り替えて検証を行って、問題なしと検証される前記同期化回路モデルを検出する、ことを特徴とする請求項３記載の同期化回路の検証方法。
【請求項６】
前記要否判定手段が前記同期化回路の要否を判定するステップは、対象の前記順序回路に複数の非同期パスが接続するときは、各非同期パスに配置されるそれぞれの前記外部制御同期化回路の切り替え状態を組み合わせて検証を行う、ことを特徴とする請求項１記載の同期化回路の検証方法。
【請求項７】
前記同期化回路の検証方法は、さらに、
置換手段が、前記非同期パスにおける前記同期化回路の要否の判定に基づいて、必要と判定されたときは前記外部制御同期化回路を所定の同期化回路に置き換え、必要なしと判定されたときは前記外部制御同期化回路を外して前記非同期パスに戻す置き換えを行うステップを有することを特徴とする請求項１記載の同期化回路の検証方法。
【請求項８】
送信回路と受信回路が非同期関係にある信号の同期化回路の検証装置において、
クロックの異なる入力信号で動作する順序回路を含む回路の設計データを記憶する記憶手段と、
前記設計データを読み出し、読み出した前記設計データに基づいて非同期信号が転送される非同期パスを検出する非同期パス検出手段と、
擬似メタステーブル信号を発生させるメタステーブル発生部と、前記非同期信号または前記擬似メタステーブル信号を入力してクロックに同期した同期化信号に変換出力する同期化部と、外部から入力される外部制御信号に基づいて前記擬似メタステーブル信号または前記同期化信号を切り替えて出力する切替部と、を有する外部制御同期化回路を前記非同期パス上に配置する配置手段と、
前記外部制御信号によって前記切替部を制御し、前記擬似メタステーブル信号または前記同期化信号を次段の順序回路に出力したときの前記順序回路の状態を検証し、検証結果に基づいて前記非同期パスにおける同期化回路の要否を判定する要否判定手段と、
を有することを特徴とする同期化回路の検証装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は同期化回路の検証方法及びその検証装置に関し、特に送信回路と受信回路が非同期関係にある信号の同期化回路の検証方法及びその検証装置に関する。
【背景技術】
【０００２】
半導体集積回路の回路規模の増大に伴って、異なるクロックで動作する装置や回路内の素子から入力される非同期入力信号の数も多くなってきた。以下、このような非同期入力信号の転送経路を非同期パスとする。非同期信号が入力されると、ラッチやフリップフロップ（Flip Flop；以下、ＦＦと表記する）などの順序回路では、入力信号のセットアップ時間やホールド時間が守られなかったとき、出力信号が不安定な状態となるメタステーブル（meta-stable）が発生する。非同期入力信号はどこで変化するかわからないので、メタステーブルの発生を防ぐことは困難である。しかし、発生したメタステーブルによって次段の出力信号が不安定となるメタステーブルの伝播は避けなければならない。このため、従来の半導体集積回路の論理設計では、非同期パスに自動的に同期化回路を挿入し、メタステーブルの伝播を回避していた。
【０００３】
図１４は、従来の半導体集積回路の論理設計の手順を示したフローチャートである。
従来の半導体集積回路の論理設計では、最初にＲＴＬ（Register Transfer Level）設計が行われ、ハードウェアの回路構成をレジスタレベルで記述した設計データであるＲＴＬデータ９１１が生成される（ステップＳ９０１）。次に、ＲＴＬデータ９１１とクロック情報９１２とに基づいて、回路上のすべての非同期パスが検出され（ステップＳ９０２）、各非同期パスについてステップＳ９０３、Ｓ９０４の処理を実行するループ処理が行われる。ループ処理では、各非同期パスに同期化回路が存在するかどうかが判定され（ステップＳ９０３）、存在しないときは、同期化回路が挿入される（ステップＳ９０４）。こうして、回路上のすべての非同期パスに同期化回路が挿入される。続いて、論理検証試験が行われる（ステップＳ９０５）。ここで行われる論理検証は、回路が論理上正しく動作するかを検証するための試験である。同期化回路に関しては、次段の出力信号が正しいかなどが検証される。検証結果を判定し（ステップＳ９０６）、問題が検出されたときは、ステップＳ９０１に戻って回路の手直しが行われる。論理検証が正常終了すれば、論理合成が行われ、ネットリスト９１３が生成される（ステップＳ９０７）。
【０００４】
以上の処理手順が実行されることにより、非同期パスが検出され、一律に同期化回路が挿入されていた。
また、このような同期化回路を含む回路の動作確認（試験）では、非同期入力信号を得るための信号発生器などが必要となり、試験を容易に行うことができなかった。そこで、回路内に非同期信号に見立てた信号を発生させる擬似非同期信号発生手段を設け、同期化回路の試験を行う試験方法が提案されている（たとえば、特許文献１参照）。
【特許文献１】特開平５−４５４２２号公報（図１、図５）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、従来の同期化回路の検証方法では、その同期化回路の要否を検証することができないという問題点があった。すなわち、従来の同期化回路の検証方法は、同期化回路の動作を検証することを目的としており、非同期パスに挿入された同期化回路の論理が正しいことを検証するのみであった。
【０００６】
大規模化する半導体集積回路では、回路中の非同期パスが数百から数千個以上存在するが、そのすべてでメタステーブルが伝播されるわけではない。回路構成によっては、メタステーブル状態の信号が入力されても正しく機能し、メタステーブルを伝播させないものもある。しかし、従来の同期化回路の検証方法では、メタステーブルを伝播させない、すなわち同期化回路が必要ない非同期パスを見つけることはできなかった。そこで、メタステーブルの伝播を確実に回避するため、非同期パスには一律に同期化回路が挿入されていた。この結果、本来は必要のない箇所にも同期化回路が挿入され、回路規模が必要以上に増大するばかりでなく、半導体集積回路のコスト増の要因となっていた。
【０００７】
本発明はこのような点に鑑みてなされたものであり、同期化回路の要否を検証することが可能な同期化回路の検証方法及びその検証装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、図１に示すような外部制御同期化回路を用いた同期化回路の検証方法が提供され、送信回路と受信回路が非同期関係にある信号の同期化回路の動作が検証される。外部制御シンクロナイザ（同期化回路）１０は、擬似メタステーブル信号を発生させるメタステーブル発生部１１と、非同期信号または擬似メタステーブル信号を入力してクロックに同期した同期化信号に変換出力する同期化部１２と、外部から入力される外部制御信号に基づいて擬似メタステーブル信号または同期化信号を切り替えて検証対象回路に出力する切替部１３，１４と、を有する。図では、受信側クロックＣＬＫ２で動作し、非同期関係にある送信側クロックＣＬＫ１で動作する順序回路２１からの信号を入力して動作する順序回路２２が検証対象回路になる。この同期化回路の検証方法では、まず、非同期パス検出手段によって、設計データに基づいて、非同期信号が転送される非同期パスが検出され、配置手段によって検出された非同期パス上に外部制御シンクロナイザ（同期化回路）１０が配置される。そして要否判定手段が、外部制御信号によって切替部１３，１４を制御し、擬似メタステーブル信号または同期化信号を切り替えて次段の順序回路に出力したときのこの順序回路の状態を検証し、検証結果に基づいて非同期パスにおける同期化回路の要否を判定する。
【０００９】
このような同期化回路の検証方法によれば、設計データに基づき、非同期パスが検出され、非同期パス上に外部制御シンクロナイザ（同期化回路）１０が配置される。外部制御信号を用いて外部制御シンクロナイザ（同期化回路）１０内の切替部１３，１４が制御され、メタステーブル発生部１１が生成する擬似メタステーブル信号、または同期化部１２によって同期化された同期化信号が切り替えられ、次段の順序回路２２に出力される。そして、擬似メタステーブル信号が入力されたときの順序回路２２の状態と、同期化信号が入力されたときの順序回路２２の状態と、が検証され、非同期パスにおける同期化回路の要否が判定される。
【００１０】
また、上記課題を解決するために、送信回路と受信回路が非同期関係にある信号の同期化回路の検証装置において、クロックの異なる入力信号で動作する順序回路を含む回路の設計データを記憶する記憶手段と、設計データを読み出し、読み出した設計データに基づいて非同期信号が転送される非同期パスを検出する非同期パス検出手段と、擬似メタステーブル信号を発生させるメタステーブル発生部と、非同期信号または擬似メタステーブル信号を入力してクロックに同期した同期化信号に変換出力する同期化部と、外部から入力される外部制御信号に基づいて擬似メタステーブル信号または同期化信号を切り替えて出力する切替部と、を有する外部制御同期化回路を非同期パス上に配置する配置手段と、外部制御信号によって切替部を制御し、擬似メタステーブル信号または同期化信号を次段の順序回路に出力したときの順序回路の状態を検証し、検証結果に基づいて非同期パスにおける同期化回路の要否を判定する要否判定手段と、を有することを特徴とする同期化回路の検証装置、が提供される。
【００１１】
このような同期化回路の検証装置によれば、非同期パス検出手段によって設計データに基づいて検出された非同期パス上に、配置手段が、外部制御同期化回路を配置する。外部制御同期化回路は、外部からの制御に従って擬似メタステーブル信号または同期化信号を切り替えて次段の順序回路に出力させることができる。要否判定手段は、順序回路に入力される信号を切り替え、それぞれの信号を入力したときの順序回路の状態を検証し、非同期パスに同期化回路が必要であるか否かを判定する。
【発明の効果】
【００１２】
本発明に係る同期化回路の検証方法によれば、非同期パス上に外部制御信号に応じて、同期化された出力信号を発生させる同期状態と、擬似メタステーブル信号が出力される非同期状態とを切り替えることができる外部制御同期化回路を配置し、それぞれの動作状態で回路の論理検証を行うことによって、非同期パスに同期化回路が必要であるか否かを検証することができる。非同期状態と同期状態との２つのモデルを別個に用意して検証を行う必要がなく、簡便に同期化回路の要否を判定することができる。
【発明を実施するための最良の形態】
【００１３】
以下、実施の形態を図面を参照して説明する。最初に、実施の形態の同期化回路の検証方法に適用される外部制御同期化回路について説明し、続いてこれを用いた同期化回路の検証方法について説明する。以下、同期化回路をシンクロナイザと表記する。
【００１４】
図１は、実施の形態のシンクロナイザの検証方法に適用される外部制御シンクロナイザの一例を示した図である。
実施の形態のシンクロナイザの検証方法では、非同期パスに外部制御シンクロナイザ１０が挿入され、シンクロナイザの要否が検証される。図の例では、第１のクロック信号ＣＬＫ１で動作する順序回路２１の出力信号を、ＣＬＫ１とは非同期関係にある第２のクロック信号ＣＬＫ２で動作する順序回路２２に入力するときに、同期化が必要であるかどうかが検証される。以下、信号を送り出す側の順序回路２１の動作クロックであるＣＬＫ１を送信側クロックＣＬＫ１、信号を受信する側の順序回路２２の動作クロックであるＣＬＫ２を受信側クロックＣＬＫ２とする。非同期関係にあるクロックで動作する送信側から受信側へ転送される信号の同期化が必要であるかを検証するため、順序回路２１の出力信号が順序回路２２へ転送される非同期パス上に外部制御シンクロナイザ１０が配置される。
【００１５】
外部制御シンクロナイザ１０は、受信側クロックＣＬＫ２で動作し、メタステーブル発生部１１、同期化部１２、切替部１３，１４を有し、制御回路１５から入力される制御信号に従って動作状態を、非同期状態と同期状態とに切り替える。制御信号には、メタステーブル状態の発生有無の切り替えを指示するメタステーブル制御信号ＭｅｔａＥｎ（以下、単にＭｅｔａＥｎと表記する）と、同期状態の切り替えを指示する同期化制御信号ＳｙｎｃＥｎ［０］、ＳｙｎｃＥｎ［１］（以下、単にＳｙｎｃＥｎと表記する）とがある。なお、外部制御シンクロナイザ１０が「同期状態である」とは、送信側クロックＣＬＫ１で動作する順序回路２１から次段の順序回路２２へ出力される出力信号が受信側クロックＣＬＫ２に同期している状態を言う。また、「非同期状態である」とは、この出力信号が受信側クロックＣＬＫ２に同期していない状態を言う。
【００１６】
メタステーブル発生部１１は、受信側クロックＣＬＫ２で動作し、制御回路１５から入力されるＭｅｔａＥｎがイネーブルのとき、送信側クロックＣＬＫ１で動作する順序回路２１の出力信号を入力して擬似的なメタステーブル状態を発生させ、擬似メタステーブル信号を出力する。
【００１７】
同期化部１２は、受信側クロックＣＬＫ２で動作し、切替部１３によって選択された順序回路２１の出力信号または擬似メタステーブル信号を受信側クロックＣＬＫ２に同期させて同期化信号を出力する。同期化信号は、切替部１４を介して順序回路２２に出力される。
【００１８】
切替部１３及び切替部１４は、制御回路１５から入力されるＳｙｎｃＥｎ［０］、ＳｙｎｃＥｎ［１］に従って、外部制御シンクロナイザ１０の動作状態を、同期状態または非同期状態に切り替える。具体的には、同期化部１２及び順序回路２２へ入力される信号と、次段の順序回路２２へ出力する出力信号を、同期状態（同期化部１２の出力信号）、または、非同期状態（たとえば、メタステーブル発生部１１の出力信号）に切り替える。切替部１３は、ａは順序回路２１の出力信号、ｂは擬似メタステーブル信号を入力し、ＳｙｎｃＥｎ［０］の値に基づいて入力信号を切り替え、同期化部１２へ出力する。切替部１４は、ｃは切替部１３の出力信号、ｄは同期化部１２の出力信号を入力し、ＳｙｎｃＥｎ［１］の値に基づいて入力信号を切り替え、順序回路２２へ出力する。
【００１９】
制御回路１５は、外部制御シンクロナイザ１０の外部に設置され、外部から入力される外部制御信号を、擬似メタステーブル信号発生の許可と禁止をメタステーブル発生部１１に指示するメタステーブル制御信号ＭｅｔａＥｎと、同期化部１２へ入力される信号及び同期化部１２から出力される信号を切替制御する同期化制御信号ＳｙｎｃＥｎ［０］，ＳｙｎｃＥｎ［１］に変換し、外部制御シンクロナイザ１０に出力してその動作状態を制御する。たとえば、デコーダとして機能し、外部制御信号の値に応じて制御信号の値を設定する。同期状態を発生させるときは、ＳｙｎｃＥｎ［１］を操作して、切替部１４にｄを選択させる。これにより、同期化部１２によって受信側クロックＣＬＫ２に同期された同期化信号が順序回路２２に入力される。非同期状態を発生させるときは、ＳｙｎｃＥｎ［１］を操作して、切替部１４にｃを選択させる。これにより、非同期の順序回路２１の出力信号またはメタステーブル信号の非同期信号が順序回路２２に入力される。そして、メタステーブル状態を発生させるときは、ＭｅｔａＥｎを操作してメタステーブル発生部１１の動作を許可する。なお、外部より直接ＭｅｔａＥｎ、ＳｙｎｃＥｎ［０］、及びＳｙｎｃＥｎ［１］を操作する構成とすることもできる。
【００２０】
外部制御シンクロナイザ１０の動作を説明する。制御回路１５には、外部より外部制御信号が入力される。指示は、メタステーブル状態を発生させるか否かの指示と、シンクロナイズを行うか否か指示との組み合わせで行われる。制御回路１５は、外部制御信号の指示を、ＭｅｔａＥｎ、ＳｙｎｃＥｎ［０］、ＳｙｎｃＥｎ［１］に変換し、外部制御シンクロナイザ１０を制御する。
【００２１】
たとえば、同期化回路が必要であるかどうかを検証するため、擬似メタステーブル信号を直接次段の順序回路２２へ出力し、問題がないかどうかを検証したいときは、「非同期状態」及び「メタステーブル許可」が外部制御信号によって指示される。制御回路１５は、ＭｅｔａＥｎ＝許可、ＳｙｎｃＥｎ［０］はｂ選択、ＳｙｎｃＥｎ［１］はｃ選択を指示する。これにより、メタステーブル発生部１１で生成された擬似メタステーブル信号が、同期化されずに外部制御シンクロナイザ１０から出力される。
【００２２】
同期状態を検証したいときは、たとえば、「同期状態」、「メタステーブル許可」が外部制御信号によって指示される。制御回路１５は、ＭｅｔａＥｎ＝許可、ＳｙｎｃＥｎ［０］はｂ選択、ＳｙｎｃＥｎ［１］はｄ選択を指示する。これによって、次段の順序回路２２には、メタステーブル発生部１１で生成された擬似メタステーブル信号が同期化部１２で同期化された後、入力される。このように、外部制御信号により外部制御シンクロナイザ１０の動作状態を適宜切り替えて検証を行うことができる。なお、外部制御信号の指示があれば、順序回路２１の出力信号も同じように操作することができる。
【００２３】
図１では、同期化部１２は、１段で構成されているが、これを複数段の構成とすることもできる。
次に、このような外部制御シンクロナイザ１０を用いたシンクロナイザの検証方法について説明する。この検証方法は、検証装置を構成する各処理手段がそれぞれの処理手順を実行することにより実行される。図２は、実施の形態のシンクロナイザの検証方法の手順を示したフローチャートである。
【００２４】
［ステップＳ０１］  ＲＴＬ設計が行われる。ＲＴＬデータ（非同期パスへシンクロナイザ未挿入）４１が生成され、記憶手段に格納される。
［ステップＳ０２］  非同期パス検出手段が、記憶手段に記憶されているＲＴＬデータ４１及びクロック情報を読み出し、これらに基づいて非同期信号が入力される順序回路を含む検証対象の回路から、非同期信号が転送される非同期パスをすべて検出する。
【００２５】
［ステップＳ０３］  配置手段が、非同期パス検出手段によって検出されたすべての非同期パスのうち、シンクロナイザが配置されていない非同期パスに、外部制御シンクロナイザを配置する。すでにシンクロナイザが配置されている非同期パス、すなわち、設計者によってＲＴＬ設計時に意図的にシンクロナイザが配置された非同期パスについては、シンクロナイザの要否を判定する必要がないので、ここでは外部制御シンクロナイザを配置しない。このとき生成される外部制御シンクロナイザ１０が挿入された設計データを検証ＲＴＬデータ４２として記憶手段に格納しておく。
【００２６】
ここまでの処理で、予めシンクロナイザが設定されていないすべての非同期パスに、外部制御シンクロナイザが挿入される。
［ステップＳ０４］  検証ＲＴＬデータ４２を読み出し、論理検証を行う。このとき、外部制御シンクロナイザ１０を外部制御信号でコントロールし、前段の順序回路２１が生成する非同期信号、メタステーブル発生部１１の生成する擬似メタステーブル信号、または、同期化部１２が同期化した同期化信号を切り替えて順序回路２２へ出力し、そのときの順序回路の状態を検証する。たとえば、波形やアサーションにより所望の動作を行うかどうかを確認する。
【００２７】
［ステップＳ０５］  論理検証の結果に基づき、各非同期パスに同期化が必要であるか否かを判断し、外部制御シンクロナイザ部分を判断結果に対応する回路に置き換える。同期化しなくても問題ないと判断されたときは、外部制御シンクロナイザをシンクロナイザ無（元の非同期パス）に置き換える。同期化が必要と判断されたときは、外部制御シンクロナイザを通常のシンクロナイザに置き換える。置き換えが行われた設計データを修正ＲＴＬデータ４３とし、記憶手段に格納する。
【００２８】
［ステップＳ０６］  修正ＲＴＬデータ４３を用いて論理合成が行われる。
以上の処理手順が実行されることにより、ＲＴＬ設計により生成されたＲＴＬデータ４１について論理検証によるシンクロナイザの要否判定が行われ、必要な箇所にのみシンクロナイザを配置した修正ＲＴＬデータ４３が生成される。そして、修正ＲＴＬデータ４３が論理合成され、無駄なシンクロナイザを含まず、必要な要素のみで構成される回路のネットリストを得ることができる。
【００２９】
このように、外部制御信号で状態を切り替えることが可能な外部制御シンクロナイザ１０を非同期パスに配置して論理検証を行うことにより、ひとつのＲＴＬデータで、同期状態と、非同期状態とを発生させることができ、検証が容易になる。また、内部にメタステーブル発生部も有しているので、メタステーブル発生時の状態を容易に再現して検証を行うことができる。また、論理検証を経てシンクロナイザは、自動的に適切な箇所に配置されるため、回路規模が必要以上に増大することなく、半導体集積回路のコストを抑えることができる。
【００３０】
ここで、シンクロナイザの検証を行う検証装置について説明する。検証装置は、コンピュータが、同期化回路検証プログラムを実行することにより、その処理機能が実現される。まず、検証装置のハードウェア構成について説明する。図３は、本実施の形態の検証装置のハードウェア構成例を示すブロック図である。
【００３１】
検証装置１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０７を介してＲＡＭ（Random Access Memory）１０２、ハードディスクドライブ（ＨＤＤ：Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、通信インタフェース１０６が接続されている。
【００３２】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳやアプリケーションのプログラムが格納される。グラフィック処理装置１０４には、モニタ１０８が接続されており、ＣＰＵ１０１からの命令に従って画像をモニタ１０８の画面に表示させる。入力インタフェース１０５には、キーボード１０９ａやマウス１０９ｂが接続されており、キーボード１０９ａやマウス１０９ｂから送られてくる信号を、バス１０７を介してＣＰＵ１０１に送信する。通信インタフェース１０６は、ネットワーク１１０に接続されており、必要であれば、ネットワーク１１０を介して他装置との間でデータの送受信を行う。
【００３３】
このようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
次に、ソフトウェア構成について説明する。図４は、検証装置のソフトウェア構成を示した図である。
【００３４】
検証装置１００では、非同期パス検出手段１２０、配置手段１３０、要否判定手段１４０、及び置換手段１５０の各処理手段が記憶装置１６０に格納されるＲＴＬデータを順次処理する。各処理手段の処理機能は、コンピュータが、同期化回路検証プログラムを実行することにより実現される。
【００３５】
非同期パス検出手段１２０は、記憶装置１６０に格納されるＲＴＬデータ４１を読み出し、図示しないクロック情報も用いて、シンクロナイザが接続されていない非同期パスをすべて検出する。配置手段１３０は、非同期パス検出手段１２０が検出した箇所に外部制御シンクロナイザの検証モデルデータ４４を挿入し、シンクロナイザ要否の検証用の検証ＲＴＬデータ４２を生成する。検証モデルデータ４４は、図１に示したような外部制御シンクロナイザ１０と制御回路１５とを記述したＲＴＬ記述データであり、記憶装置１６０に予め用意されている。要否判定手段１４０は、判定手段１４１と、論理検証手段１４２を有する。判定手段１４１は、制御回路１５の入力信号を変化させて論理検証手段１４２による論理検証を行わせ、得られた検証結果に基づいてシンクロナイザの要否を判定する。論理検証手段１４２は、検証ＲＴＬデータ４２の論理検証を行う。置換手段１５０は、要否判定手段１４０の結果に基づいて、検証ＲＴＬデータ４２に設定される外部制御シンクロナイザを置換モデルデータ４５で置き換え、修正ＲＴＬデータ４３を生成する。置換モデルデータ４５には、シンクロナイザが不要と判定されたときに外部制御シンクロナイザと置き換えられるシンクロナイザ無モデルと、シンクロナイザが必要と判定されたときに外部制御シンクロナイザと置き換えられるシンクロナイザ有モデルとが、記述されている。
【００３６】
なお、各処理手段は、必要に応じて、図示しない表示手段により各種情報をモニタ１０８に表示させることができる。たとえば、要否判定手段１４０が行った判定結果や、論理検証の結果などが適宜表示される。また、キーボード１０９ａやマウス１０９ｂを介して操作者の指示が入力されると、指示に応じて検証条件なども適宜変更される。これらの処理を含む、一般的な処理機能は、他の一般的な検証装置と同様に実行される。
【００３７】
上記の構成の検証装置で行われる同期化回路の検証方法について説明する。図５は、実施の形態の同期化回路の検証方法の手順を示したフローチャートである。
［ステップＳ１１］  ＲＴＬ設計が行われ、ＲＴＬデータ（非同期パスへシンクロナイザ未挿入）が生成されて記憶手段に格納される。
【００３８】
［ステップＳ１２］  ＲＴＬデータと、クロック信号とを用いて非同期信号が転送される非同期パスをすべて検出する。
検出された非同期パスそれぞれに対してステップＳ１３，Ｓ１４の処理を実行するループ処理が行われる。
【００３９】
［ステップＳ１３］  検出された非同期パスに、すでにシンクロナイザが存在するかどうかを調べる。存在しないときは、処理をステップＳ１４へ進める。存在するときは、非同期パスがまだあれば、次の非同期パスについて同様の処理を行う。次の非同期パスがないときは、ループを抜け、処理をステップＳ１５へ進める。
【００４０】
［ステップＳ１４］  シンクロナイザが存在しない非同期パスに外部制御シンクロナイザを挿入し、ステップＳ１３に戻る。
以上のループ処理により、すでにシンクロナイザが配置されているパスを除き、すべての非同期パス上に外部制御シンクロナイザが挿入される。次に、外部制御シンクロナイザが挿入された各非同期パスそれぞれに対してステップＳ１５の処理を実行するループ処理が行われる。
【００４１】
［ステップＳ１５］  各非同期パスにおけるシンクロナイザの必要性の検証のため、外部制御シンクロナイザの状態を制御して論理シミュレーションが実行され、非同期状態及び同期状態における動作が確認される。検証処理の詳細は後述する。
【００４２】
以上のループ処理により、非同期パスごとに、非同期状態または同期状態のときの動作のシミュレーション結果が得られる。
［ステップＳ１６］  各非同期パスにおけるシミュレーション結果に基づいて、シンクロナイザの要否が判定される。そして、判定結果に応じて外部制御シンクロナイザが置き換えられ、必要な箇所にのみシンクロナイザが挿入される。詳細は後述する。
【００４３】
［ステップＳ１７］  検証が正しく終了したかどうかが判断される。終了していないときは、処理をステップＳ１１に戻し、設計者によるＲＴＬデータの修正を待つ。終了したときは、処理を次ステップへ進める。
【００４４】
［ステップＳ１８］  検証が正しく終了したのであれば、元のＲＴＬデータに必要なシンクロナイザが挿入された修正ＲＴＬデータを用いて論理合成を行い、ネットリストを生成する。
【００４５】
以上の処理手順が実行されることにより、論理シミュレーションに基づいて必要と判定された箇所にのみシンクロナイザが自動配置されたＲＴＬデータが生成され、論理合成される。こうして得られた設計データには、不必要なシンクロナイザが配置されていないことから、非同期パスに一律にシンクロナイザを挿入する場合に比べエリアが削減されている。この結果、回路規模の増大を抑えることが可能となる。
【００４６】
ここで、必要性検証処理と、ＲＴＬ修正処理とについて説明する。図６は、必要性検証処理の手順を示したフローチャートである。
検証対象の非同期パスが指定され、処理が開始される。
【００４７】
［ステップＳ１５１］  外部制御シンクロナイザのシンクロナイズ状態を選択する。外部制御信号の値を設定し、対象の非同期パスに配置される外部制御シンクロナイザの動作状態を切り替える。検証開始時は、非同期状態を選択する。その後、指示があれば、同期状態に切り替える。
【００４８】
［ステップＳ１５２］  外部制御シンクロナイザのメタステーブル発生部を活性化し、擬似メタステーブル信号を発生させる。
［ステップＳ１５３］  論理シミュレーションを行う。非同期パスを介して転送される非同期信号を入力して処理を行う順序回路の動作を確認する。対象の順序回路の出力信号が観測できる箇所など、所定の監視ポイントで問題なくデータが取り込めるかなどを、波形あるいはアサーションなどによって確認する。確認は、一般の論理検証時の手法と同様に行われる。
【００４９】
［ステップＳ１５４］  論理シミュレーションの結果、問題なくデータを取り込めたかどうかを判定する。問題なしであれば、処理をステップＳ１５５へ進める。問題があれば、処理をステップＳ１５６へ進める。
【００５０】
［ステップＳ１５５］  論理シミュレーションの結果、問題が検出されなければ、そのときの問題なし状態（外部制御シンクロナイザが非同期状態であるか同期状態であるかなど）を保存し、処理を終了する。
【００５１】
［ステップＳ１５６］  論理シミュレーションの結果、問題があれば、用意されたシンクロナイザの全パターンが終了したかどうかを判定する。終了していなければ、次のパターンで論理シミュレーションを行うよう設定し、処理をステップＳ１５１に戻す。全パターンが終了していれば、処理をステップＳ１５７へ進める。なお、シンクロナイザのパターンとして、同期化回路がないモデル（非同期状態）と、構成の異なる複数の同期化回路モデルが用意される。同期化回路モデルは、１つであってもよい。また、このパターンは、後述する外部制御シンクロナイザを置き換える置換モデルに対応する。
【００５２】
［ステップＳ１５７］  全パターンを終了しても、メタステーブルによる問題が解消されないときは、問題未解決を保存し、処理を終了する。
以上の処理手順が実行されることにより、論理シミュレーションによって、非同期状態でメタステーブル信号が入力されたとき、同期状態でメタステーブル信号が入力されたときに、メタステーブルが伝播されるなどの問題が発生しないかどうかを確認することができる。また、論理シミュレーションは、問題なしが検出されたときの状態で終了し、その状態が保存される。たとえば、非同期状態でメタステーブル信号が入力されたときに問題がなければ、問題なし状態として非同期状態が保存される。同期化回路モデルが複数用意され、いずれかのモデルで問題なしが検出されたときは、そのときの同期化回路モデルが、問題なし状態のステータスとともに保存される。
【００５３】
図７は、ＲＴＬ修正処理の手順を示したフローチャートである。必要性検証処理が行われ、シミュレーション結果に応じた問題なし状態あるいは、問題未解決が設定された後、処理が開始される。
【００５４】
［ステップＳ１６１］  保存されているシミュレーション結果を読み出す。問題なしのときは、問題なしが検出されたときの状態、問題ありのときは問題未解決が読み出される。
【００５５】
［ステップＳ１６２］  シミュレーションの結果が問題なしであるかどうかが判定される。問題なしであれば、処理をステップＳ１６３へ進め、問題ありであれば、処理をステップＳ１６６へ進める。
【００５６】
［ステップＳ１６３］  シミュレーションの結果が問題なしのときはさらに、問題なしが検出されたときの外部制御シンクロナイザの動作状態が同期状態であるかどうかが判定される。同期状態でなければ、処理をステップＳ１６４に進め、同期状態であれば、処理をステップＳ１６５に進める。
【００５７】
［ステップＳ１６４］  シミュレーション結果が問題なしで、かつ、そのときの外部制御シンクロナイザの動作状態が非同期状態であれば、シンクロナイズを行わなくても問題なく動作するということであるので、シンクロナイザは必要ないと判断される。そこで、外部制御シンクロナイザをシンクロナイザ無モデルに置き換え、処理を終了する。
【００５８】
［ステップＳ１６５］  シミュレーション結果が問題なしで、かつ、そのときの外部制御シンクロナイザの動作状態が同期状態であれば、同期化すれば問題なく動作するということであるので、シンクロナイザが必要と判断される。そこで、外部制御シンクロナイザをシンクロナイザ有モデルに置き換え、処理を終了する。なお、同期化回路モデルに複数のパターンがあったときは、問題なしと判定された外部制御シンクロナイザの同期化回路モデルに対応するシンクロナイザ有モデルを選択する。
【００５９】
［ステップＳ１６６］  問題未解決、すなわち、全パターンをシミュレーションして問題が解決されないときは、元の回路構成に問題があるので、別回路構成を検討する指示を出力し、処理を終了する。
【００６０】
以上の処理手順が実行されることにより、外部制御シンクロナイザは、論理シミュレーションによって問題なしと判定されたモデルに置き換えられる。なお、外部制御シンクロナイザとともに挿入された制御回路は、検証用であるので削除する。
【００６１】
次に、具体例を挙げてシンクロナイザの必要性判定処理と、判定結果に基づくシンクロナイザの配置処理と、を説明する。
図８は、対象回路の一例を示した図である。
【００６２】
ＦＦ２０１は、送信側クロックＣＬＫ１で動作し、出力信号ＤＯＵＴ１を出力する。同様に、ＦＦ２０２も送信側クロックＣＬＫ１で動作し、出力信号ＣＴＲＬ１を出力する。ＤＯＵＴ１は、ＣＴＲＬ１のエッジでラッチされ、ＦＦ２０３に入力される。ＤＯＵＴ１を入力して動作するＦＦ２０３は、送信側クロックＣＬＫ１とは非同期関係にある受信側クロックＣＬＫ２で動作し、出力信号ＳＴＢＰを出力する。なお、実際には、回路はＲＴＬで記述されている。このような回路構成では、非同期信号を入力して動作するＦＦ２０３にメタステーブル信号が入力されたとき、そのメタステーブル信号が次段に伝播されないようにしなければならない。そこで、ＳＴＢＰにおいて、データが正しく取り込めるようにするためには、シンクロナイザをどのように配置するかを論理シミュレーションで検証する。
【００６３】
図の例のように、対象の回路に複数の非同期信号が入力されるときは、それぞれの非同期パスを検出して外部制御シンクロナイザを配置する。そして、論理シミュレーション及び要否判定は、複数の外部制御シンクロナイザの動作状態の組み合わせで行われる。
【００６４】
まず、非同期パス検出手段１２０によって、ＦＦ２０３に非同期信号を転送する非同期パスが検出される。ここでは、ＤＯＵＴ１が転送されるパス２１１と、ＣＴＲＬ１が転送されるパス２１２とが非同期パスとして検出される。以下、非同期パス２１１と、非同期パス２１２と表記する。
【００６５】
次に、配置手段１３０は、非同期パス２１１と、非同期パス２１２に外部制御シンクロナイザを挿入する。また、外部制御シンクロナイザの切替状態を制御する制御信号を生成する制御回路も同時に挿入される。
【００６６】
図９は、外部制御シンクロナイザが挿入された対象回路を示した図である。
非同期パス２１１に外部制御シンクロナイザモデル２２１、非同期パス２１２に外部制御シンクロナイザモデル２３１、が挿入されている。また、外部制御シンクロナイザモデル２２１を制御する制御回路２２２、及び外部制御シンクロナイザモデル２３１を制御する制御回路２３２も配置される。
【００６７】
外部制御シンクロナイザモデル２２１は、受信側クロックＣＬＫ２で動作し、前段のＦＦ２０１の出力信号ＤＯＵＴ１をＤＯＵＴ２に変換して出力する。また、外部制御信号に応じて制御回路２２２が生成するＭｅｔａＥｎ１、ＳｙｎｃＥｎ１に基づいて内部の動作状態の切り替えを行う。ＭｅｔａＥｎ１は、内部のメタステーブル発生部を動作させるか否かを制御する信号であり、許可のときのみ擬似メタステーブル信号が発生される。ＳｙｎｃＥｎ１は、同期化部を動作させるか否かを制御する信号であり、許可のときのみ同期化が行われる。すなわち、ＭｅｔａＥｎ１＝許可、ＳｙｎｃＥｎ１＝禁止で、ＤＯＵＴ２として、ＤＯＵＴ１より生成される擬似メタステーブル信号が出力される。そして、ＭｅｔａＥｎ１＝許可、ＳｙｎｃＥｎ１＝許可で、ＤＯＵＴ２として擬似メタステーブル信号が受信側クロックＣＬＫ２に同期化されて出力される。
【００６８】
外部制御シンクロナイザモデル２３１も、受信側クロックＣＬＫ２で動作し、前段のＦＦ２０２の出力信号ＣＴＲＬ１をＣＴＲＬ２に変換して出力する。また、外部制御信号に応じて制御回路２３２が生成するＭｅｔａＥｎ２、ＳｙｎｃＥｎ２に基づいて内部の動作状態の切り替えを行う。外部制御シンクロナイザモデル２２１と同様に、ＭｅｔａＥｎ２が許可のとき擬似メタステーブル信号が発生され、ＳｙｎｃＥｎ２が許可のとき同期化が行われる。ＭｅｔａＥｎ２＝許可、ＳｙｎｃＥｎ２＝禁止で、擬似メタステーブル信号がＣＴＲＬ２として出力される。そして、ＭｅｔａＥｎ２＝許可、ＳｙｎｃＥｎ２＝許可で、ＣＴＲＬ２として擬似メタステーブル信号が受信側クロックＣＬＫ２に同期化されて出力される。
【００６９】
図１０は、外部制御シンクロナイザモデルの一例を示した図である。図は、外部制御シンクロナイザモデル２３１の構成例である。
外部制御シンクロナイザモデル２３１は、メタステーブル発生部２３１１と、同期化部を構成するＦＦ２３１２，２３１３と、切替部２３１４，２３１５，２３１６とを有し、制御回路２３２からのメタステーブル制御信号ＭｅｔａＥｎ２、同期化制御信号ＳｙｎｃＥｎ２［０］，ＳｙｎｃＥｎ２［１］，ＳｙｎｃＥｎ２［２］に従って動作する。
【００７０】
メタステーブル発生部２３１１は、ＭｅｔａＥｎ２＝許可で動作し、擬似メタステーブル信号ＭＣを発生させる。メタステーブル発生部２３１１は、シミュレーション上でのみ使用できるモデルで、シミュレーション言語表現で記述される。メタステーブルの発生期間などは、パラメータにより変更可能に記述される。ＦＦ２３１２，２３１３は、シンクロナイザを構成する。ＦＦの段数は任意に設定できる。切替部２３１４，２３１５，２３１６は、制御回路２３２の制御信号に基づいて、入力信号を切替出力する。制御回路２３２は、外部制御信号を、ＭｅｔａＥｎ２，ＳｙｎｃＥｎ２［０］，ＳｙｎｃＥｎ２［１］，ＳｙｎｃＥｎ２［２］に変換して出力する。たとえば、外部制御信号として、「同期化なしで擬似メタステーブル信号ＭＣを出力する」という指示が入力されたときは、ＭｅｔａＥｎ２を許可にするとともに、擬似メタステーブル信号ＭＣがＦＦ２３１２，２３１３を経由せずに出力されるように、ＳｙｎｃＥｎ２［０］，ＳｙｎｃＥｎ２［１］，ＳｙｎｃＥｎ２［２］を操作する。また、ＦＦの段数が指示されたときは、指示された数のＦＦを経由するように切替操作が行われる。
【００７１】
このような構成の外部制御シンクロナイザモデル２３１と制御回路２３２を非同期パス上に配置することにより、ＲＴＬデータを変更するような煩わしい作業を必要とすることなく、さまざまなパターンで論理シミュレーションを行うことが可能となる。なお、外部制御シンクロナイザモデル２２１及び制御回路２２２の構成も同様である。
【００７２】
要否判定手段１４０では、上記のような外部制御シンクロナイザモデル２２１，２３１と制御回路２２２，２３２とが非同期パス上に配置された検証用の設計データを用いて非同期パスにおけるシンクロナイザの要否を判定する。具体的には、制御回路２２２，２３２の外部制御信号を操作し、ＤＯＵＴ１側の外部制御シンクロナイザモデル２２１及びＣＴＲＬ１側の外部制御シンクロナイザモデル２３１が共に非同期状態のパターン、ＤＯＵＴ１側の外部制御シンクロナイザモデル２２１が同期状態、ＣＴＲＬ１側の外部制御シンクロナイザモデル２３１が非同期状態のパターン、ＤＯＵＴ１側の外部制御シンクロナイザモデル２２１が非同期状態、ＣＴＲＬ１側の外部制御シンクロナイザモデル２３１が同期状態のパターン、ＤＯＵＴ１側の外部制御シンクロナイザモデル２２１及びＣＴＲＬ１側の外部制御シンクロナイザモデル２３１が共に同期状態のパターン、について順次論理シミュレーションを行って、問題なしのパターンを検出する。
【００７３】
図１１は、対象回路のシミュレーション結果の一例を示した図である。これは、ＤＯＵＴ１側の外部制御シンクロナイザモデル２２１が非同期状態、かつ、ＣＴＲＬ１側の外部制御シンクロナイザモデル２３１が同期状態のパターンのときの波形を示している。図のＭＣは、ＣＴＲＬ１側の外部制御シンクロナイザモデル２３１で発生させた擬似メタステーブル信号を示している。メタステーブル状態が発生していても、外部制御シンクロナイザモデル２３１内の同期化部で同期化され安定化データを取り込めば（ＣＴＲＬ２が安定していれば）、ＳＴＢＰでは問題なくデータを取り込むことができることがわかる。したがって、このとき、ＤＯＵＴ１側の同期化は必要ない。
【００７４】
以上より、外部制御シンクロナイザモデル２２１，２３１を用いた論理シミュレーションに基づき、ＣＴＲＬ１側にシンクロナイザがあれば、ＤＯＵＴ１側にシンクロナイザがなくても問題ないことが検証される。
【００７５】
置換手段１５０では、シミュレーション結果に基づいて外部制御シンクロナイザモデル２２１，２３１の置き換えを行う。
図１２は、置換モデルの一例を示した図である。（Ａ）は、シンクロナイザ無モデル、（Ｂ）は、シンクロナイザ有モデルの例である。
【００７６】
（Ａ）シンクロナイザ無モデルは、外部制御シンクロナイザモデルを元の非同期パスで置き換えるモデルである。
（Ｂ）シンクロナイザ有モデルは、外部制御シンクロナイザモデルをシンクロナイザで置き換えるモデルである。図は、２段のＦＦでシンクロナイザを構成した例である。段数は、外部制御シンクロナイザの同期化回路モデルに合わせて用意される。
【００７７】
シミュレーションの結果、ＤＯＵＴ１側の外部制御シンクロナイザモデル２２１は、同期化の必要がないと判定されたので、シンクロナイザ無モデル３０１で置き換える。一方、ＣＴＲＬ１側の外部制御シンクロナイザモデル２３１は、同期化が必要であると判定されたので、シンクロナイザ有モデル３０２で置き換える。なお、制御回路２２２，２３２は、検証時のみ必要な回路であるため、置き換え時に削除する。
【００７８】
図１３は、置き換えが行われた対象回路を示した図である。ＤＯＵＴ１側の外部制御シンクロナイザモデル２２１が挿入されていた箇所は、シンクロナイザのない非同期パス２４１のみに置き換えられている。ＣＴＲＬ１側の外部制御シンクロナイザモデル２３１が挿入されていた箇所は、２段のＦＦで構成されるシンクロナイザ２４２に置き換えられている。
【００７９】
このように、非同期パスにおけるシンクロナイザの要否が論理シミュレーションによって検証され、必要がないと判定された箇所にはシンクロナイザを配置しない。したがって、非同期パスに一律にシンクロナイザを配置する場合と比較し、必要なエリアを削減することができる。
【００８０】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、検証装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【００８１】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００８２】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００８３】
（付記１）  送信回路と受信回路が非同期関係にある信号の同期化回路の検証方法において、
非同期パス検出手段が、設計データに基づいて非同期信号が転送される非同期パスを検出するステップと、
配置手段が、擬似メタステーブル信号を発生させるメタステーブル発生部と、前記非同期信号または前記擬似メタステーブル信号を入力してクロックに同期した同期化信号に変換出力する同期化部と、外部から入力される外部制御信号に基づいて前記擬似メタステーブル信号または前記同期化信号を切り替えて出力する切替部と、を有する外部制御同期化回路を前記非同期パス上に配置するステップと、
要否判定手段が、前記外部制御信号によって前記切替部を制御し、前記擬似メタステーブル信号または前記同期化信号を次段の順序回路に出力したときの前記順序回路の状態を検証し、検証結果に基づいて前記非同期パスにおける同期化回路の要否を判定するステップと、
を有することを特徴とする同期化回路の検証方法。
【００８４】
（付記２）  前記配置手段が前記外部制御同期化回路を配置するステップは、前記外部制御同期化回路の動作状態を指示する前記外部制御信号を、前記擬似メタステーブル信号発生の許可と禁止を前記メタステーブル発生部に指示するメタステーブル制御信号と、前記同期化部へ入力される信号及び前記同期化部から出力される信号を切り替え制御する同期化制御信号とに変換する制御回路を、前記外部制御同期化回路と共に配置する、ことを特徴とする付記１記載の同期化回路の検証方法。
【００８５】
（付記３）  前記配置手段が前記外部制御同期化回路を配置するステップは、前記設計データを解析し、前記非同期パスに前記同期化回路が配置されているときは、該非同期パスに前記外部制御同期化回路を配置しないことを特徴とする付記１記載の同期化回路の検証方法。
【００８６】
（付記４）  前記配置手段が前記外部制御同期化回路を配置するステップは、予め記憶手段に記憶される所定のハードウェア記述言語で記述された外部制御同期化回路モデルを読み出し、前記設計データに挿入する、ことを特徴とする付記１記載の同期化回路の検証方法。
【００８７】
（付記５）  前記要否判定手段が前記同期化回路の要否を判定するステップは、前記外部制御信号を操作し、非同期状態の前記擬似メタステーブル信号を前記次段の順序回路に出力させて前記次段の順序回路の状態を検証し、問題がないと検証されたときは、該非同期パスに前記同期化回路は必要なしと判定する、ことを特徴とする付記１記載の同期化回路の検証方法。
【００８８】
（付記６）  前記要否判定手段が前記同期化回路の要否を判定するステップは、前記非同期状態の前記擬似メタステーブル信号が入力された前記次段の順序回路の状態に問題が検出されたときは、前記外部制御信号を操作し、前記同期化部によって同期化させた前記擬似メタステーブル信号を前記次段の順序回路に出力させて前記次段の順序回路の状態を検証し、問題がないと検証されたときに前記同期化回路が必要であると判定する、ことを特徴とする付記５記載の同期化回路の検証方法。
【００８９】
（付記７）  前記同期化部は、切り替え可能な複数の同期化回路モデルを有し、前記要否判定手段が前記同期化回路の要否を判定するステップは、前記同期化回路モデルを順次切り替えて検証を行って、問題なしと検証される前記同期化回路モデルを検出する、ことを特徴とする付記５記載の同期化回路の検証方法。
【００９０】
（付記８）  前記要否判定手段が前記同期化回路の要否を判定するステップは、対象の前記順序回路に複数の非同期パスが接続するときは、各非同期パスに配置されるそれぞれの前記外部制御同期化回路の切り替え状態を組み合わせて検証を行う、ことを特徴とする付記１記載の同期化回路の検証方法。
【００９１】
（付記９）  前記同期化回路の検証方法は、さらに、
置換手段が、前記非同期パスにおける前記同期化回路の要否の判定に基づいて、必要と判定されたときは前記外部制御同期化回路を所定の同期化回路に置き換え、必要なしと判定されたときは前記外部制御同期化回路を外して前記非同期パスに戻す置き換えを行うステップを有することを特徴とする付記１記載の同期化回路の検証方法。
【００９２】
（付記１０）  送信回路と受信回路が非同期関係にある信号の同期化回路の検証装置において、
クロックの異なる入力信号で動作する順序回路を含む回路の設計データを記憶する記憶手段と、
前記設計データを読み出し、読み出した前記設計データに基づいて非同期信号が転送される非同期パスを検出する非同期パス検出手段と、
擬似メタステーブル信号を発生させるメタステーブル発生部と、前記非同期信号または前記擬似メタステーブル信号を入力してクロックに同期した同期化信号に変換出力する同期化部と、外部から入力される外部制御信号に基づいて前記擬似メタステーブル信号または前記同期化信号を切り替えて出力する切替部と、を有する外部制御同期化回路を前記非同期パス上に配置する配置手段と、
前記外部制御信号によって前記切替部を制御し、前記擬似メタステーブル信号または前記同期化信号を次段の順序回路に出力したときの前記順序回路の状態を検証し、検証結果に基づいて前記非同期パスにおける同期化回路の要否を判定する要否判定手段と、
を有することを特徴とする同期化回路の検証装置。
【００９３】
（付記１１）  送信回路と受信回路が非同期関係にある信号の同期化回路の検証処理のための同期化回路検証プログラムにおいて、
コンピュータを、
クロックの異なる入力信号で動作する順序回路を含む回路の設計データを記憶する記憶手段から前記設計データを読み出し、読み出した前記設計データに基づいて非同期信号が転送される非同期パスを検出する非同期パス検出手段、
擬似メタステーブル信号を発生させるメタステーブル発生部と、前記非同期信号または前記擬似メタステーブル信号を入力してクロックに同期した同期化信号に変換出力する同期化部と、外部から入力される外部制御信号に基づいて前記擬似メタステーブル信号または前記同期化信号を切り替えて出力する切替部と、を有する外部制御同期化回路を前記非同期パス上に配置する配置手段、
前記外部制御信号によって前記切替部を制御し、前記擬似メタステーブル信号または前記同期化信号を次段の順序回路に出力したときの前記順序回路の状態を検証し、検証結果に基づいて前記非同期パスにおける同期化回路の要否を判定する要否判定手段、
として機能させることを特徴とする同期化回路検証プログラム。
【図面の簡単な説明】
【００９４】
【図１】実施の形態のシンクロナイザの検証方法に適用される外部制御シンクロナイザの一例を示した図である。
【図２】実施の形態のシンクロナイザの検証方法の手順を示したフローチャートである。
【図３】本実施の形態の検証装置のハードウェア構成例を示すブロック図である。
【図４】検証装置のソフトウェア構成を示した図である。
【図５】実施の形態の同期化回路の検証方法の手順を示したフローチャートである。
【図６】必要性検証処理の手順を示したフローチャートである。
【図７】ＲＴＬ修正処理の手順を示したフローチャートである。
【図８】対象回路の一例を示した図である。
【図９】外部制御シンクロナイザが挿入された対象回路を示した図である。
【図１０】外部制御シンクロナイザモデルの一例を示した図である。
【図１１】対象回路のシミュレーション結果の一例を示した図である。
【図１２】置換モデルの一例を示した図である。
【図１３】置き換えが行われた対象回路を示した図である。
【図１４】従来の半導体集積回路の論理設計の手順を示したフローチャートである。
【符号の説明】
【００９５】
１０  外部制御シンクロナイザ（同期化回路）
１１  メタステーブル発生部
１２  同期化部
１３，１４  切替部
１５  制御回路
２１，２２  順序回路
【図１】
2009116497.tif 000003
【図２】
2009116497.tif 000004
【図３】
2009116497.tif 000005
【図４】
2009116497.tif 000006
【図５】
2009116497.tif 000007
【図６】
2009116497.tif 000008
【図７】
2009116497.tif 000009
【図８】
2009116497.tif 000010
【図９】
2009116497.tif 000011
【図１０】
2009116497.tif 000012
【図１１】
2009116497.tif 000013
【図１２】
2009116497.tif 000014
【図１３】
2009116497.tif 000015
【図１４】
2009116497.tif 000016