(57)【要約】      （修正有）【課題】同期化回路の挿入及び最適化を自動化する。【解決手段】半導体集積回路設計装置は、半導体集積回路の回路記述データ、クロックドメイン情報、及び未同期化箇所情報から、同期化設計が必要なインターフェイスを構成する送信レジスタ及び受信レジスタを特定するインターフェイス回路情報抽出部１１１と、受信レジスタの各々について、データの供給源となる送信レジスタの個数である供給源個数を特定し、供給源個数に基づいて、同期化回路の挿入箇所候補を特定する挿入箇所候補特定部１１２と、送信レジスタの各々について、データの出力先となる受信レジスタの個数である出力先個数を特定し、出力先個数と挿入箇所候補情報とに基づいて、同期化回路の挿入箇所を特定する挿入箇所特定部１１３と、挿入箇所に同期化回路が挿入された半導体集積回路の回路記述データを作成する同期化回路挿入部１１４とを備える。【選択図】図１
2010277230.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路の回路記述データ、前記半導体集積回路のクロックドメインに関する情報であるクロックドメイン情報、及び前記半導体集積回路における同期化設計の未対応箇所を示す未同期化箇所情報から、同期化設計が必要なインターフェイスを構成する送信レジスタ及び受信レジスタを特定し、前記送信レジスタと前記受信レジスタとの間の回路接続情報であるインターフェイス回路情報を抽出するインターフェイス回路情報抽出部と、
前記インターフェイス回路情報から、前記受信レジスタの各々について、データの供給源となる前記送信レジスタの個数である供給源個数を特定し、前記供給源個数に基づいて、同期化回路を挿入する箇所の候補である挿入箇所候補を特定し、前記挿入箇所候補を示す挿入箇所候補情報を作成する挿入箇所候補特定部と、
前記送信レジスタの各々について、データの出力先となる前記受信レジスタの個数である出力先個数を特定し、前記出力先個数と前記挿入箇所候補情報とに基づいて、前記同期化回路を挿入する箇所である挿入箇所を特定し、前記挿入箇所を示す挿入箇所情報を作成する挿入箇所特定部と、
前記挿入箇所情報と、前記同期化回路の回路記述データとを利用して、前記挿入個所に前記同期化回路を挿入し、前記挿入箇所に前記同期化回路が挿入された前記半導体集積回路の回路記述データを作成する同期化回路挿入部と、
を備えることを特徴とする半導体集積回路の設計装置。
【請求項２】
前記挿入箇所候補特定部は、
前記供給源個数が１個である前記受信レジスタについては、前記受信レジスタの上流に存在するクロックドメイン境界上のネットを、前記挿入箇所候補として採用し、
前記供給源個数が２個以上である前記受信レジスタについては、前記受信レジスタのデータ入力端子に接続されたネットを、前記挿入箇所候補として採用する、
ことを特徴とする請求項１に記載の半導体集積回路の設計装置。
【請求項３】
前記挿入箇所特定部は、
前記出力先個数が１個である前記送信レジスタについては、前記送信レジスタの下流に存在する前記挿入箇所候補を、前記挿入箇所として採用し、
前記出力先個数が２個以上である前記送信レジスタについては、前記送信レジスタの下流に存在する前記挿入箇所候補のうち、一部を前記挿入箇所として採用し、残りの一部を削除する、
ことを特徴とする請求項１又は２に記載の半導体集積回路の設計装置。
【請求項４】
前記挿入箇所特定部は、
前記挿入箇所候補の一部を削除する場合、前記送信レジスタ又は前記受信レジスタのクローニングと、前記送信レジスタと前記受信レジスタとの間の配線を変更する配線変更処理とを行い、前記クローニング及び前記配線変更処理の実行後に、前記挿入箇所の再特定を行うことを特徴とする請求項３に記載の半導体集積回路の設計装置。
【請求項５】
前記同期化回路挿入部は、
前記同期化回路の挿入後に、前記送信レジスタ、前記受信レジスタ、及び前記同期化回路に含まれるレジスタのうち、冗長なレジスタを削除する冗長回路削除処理を行うことを特徴とする請求項１から４のいずれか１項に記載の半導体集積回路の設計装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の設計装置に関し、例えば、同期化回路の挿入及び最適化を自動化する設計装置に使用されるものである。
【背景技術】
【０００２】
SoC（System on Chip）設計では、個別に設計された多数の機能ブロックが、１チップ上に組み込まれる。そのため、SoC設計のＬＳＩ（大規模集積回路）には、多数のクロックドメインが存在する。このようなＬＳＩを設計する際、設計者は、異なるクロックドメイン間でデータ転送を行うために必要な同期化設計を、手作業で行っている。
【０００３】
複数のクロックドメインを有するＬＳＩにおいて、クロック周波数の異なるクロックドメイン間でデータ転送が行われる場合には、メタスタビリティ対策として、クロックドメインの境界に同期化回路を挿入する必要がある。しかしながら、データ受信側のクロックドメイン内に、複数の同期化回路の出力信号を受け取る論理回路が存在する場合がある。このような論理回路に入力される複数の出力信号には、同期化回路間の出力タイミング差により、信号間で１サイクルのタイミング差が生じる場合がある。このようなタイミング差は、論理回路の動作不良を引き起こす可能性がある。このような動作不良に関する問題は、リコンバージェンス問題と呼ばれる。よって、リコンバージェンス問題を回避しながらメタスタビリティ対策を行うことが可能な手法が待望される。
【０００４】
リコンバージェンス問題への対策としては、グレイエンコーダ／グレイデコーダ回路やＦＩＦＯ回路を、ＬＳＩに追加するという手法が知られている。しかしながら、この手法では、これらの回路の追加に伴うＬＳＩの回路規模の増大や、これらの回路の追加作業に起因する設計者リソースの増大が問題となる。
【０００５】
なお、特許文献１には、検証対象の論理回路記述情報と、一対のクロックドメインのうちの一方のクロックドメインの２以上のレジスタとに基づいて、他方のクロックドメインにおいて収斂する再収斂レジスタ（リコンバージェンスレジスタ）を検出する検出支援装置が記載されている。特許文献１に記載の検出支援装置によれば、再収斂回路が存在することを前提に、再収斂回路の動作検証工程を効率化することが可能になる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−２５２４３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、リコンバージェンス問題を回避しながらメタスタビリティ対策を行うことが可能な半導体集積回路の設計装置を提供することを課題とする。
【課題を解決するための手段】
【０００８】
本発明の一の態様は例えば、半導体集積回路の回路記述データ、前記半導体集積回路のクロックドメインに関する情報であるクロックドメイン情報、及び前記半導体集積回路における同期化設計の未対応箇所を示す未同期化箇所情報から、同期化設計が必要なインターフェイスを構成する送信レジスタ及び受信レジスタを特定し、前記送信レジスタと前記受信レジスタとの間の回路接続情報であるインターフェイス回路情報を抽出するインターフェイス回路情報抽出部と、前記インターフェイス回路情報から、前記受信レジスタの各々について、データの供給源となる前記送信レジスタの個数である供給源個数を特定し、前記供給源個数に基づいて、同期化回路を挿入する箇所の候補である挿入箇所候補を特定し、前記挿入箇所候補を示す挿入箇所候補情報を作成する挿入箇所候補特定部と、前記送信レジスタの各々について、データの出力先となる前記受信レジスタの個数である出力先個数を特定し、前記出力先個数と前記挿入箇所候補情報とに基づいて、前記同期化回路を挿入する箇所である挿入箇所を特定し、前記挿入箇所を示す挿入箇所情報を作成する挿入箇所特定部と、前記挿入箇所情報と、前記同期化回路の回路記述データとを利用して、前記挿入個所に前記同期化回路を挿入し、前記挿入箇所に前記同期化回路が挿入された前記半導体集積回路の回路記述データを作成する同期化回路挿入部と、を備えることを特徴とする半導体集積回路の設計装置である。
【発明の効果】
【０００９】
本発明によれば、リコンバージェンス問題を回避しながらメタスタビリティ対策を行うことが可能な半導体集積回路の設計装置を提供することが可能になる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態のＬＳＩ設計装置の構成を示すブロック図である。
【図２】インターフェイス回路情報抽出部による処理について説明するための回路図である。
【図３】挿入箇所候補特定部による処理について説明するための回路図である。
【図４】挿入箇所特定部による処理について説明するための回路図である。
【図５】同期化回路挿入部による処理について説明するための回路図である。
【発明を実施するための形態】
【００１１】
本発明の実施形態を、図面に基づいて説明する。
【００１２】
図１は、本発明の一実施形態のＬＳＩ設計装置の構成を示すブロック図である。図１のＬＳＩ設計装置は、本発明の半導体集積回路の設計装置の例である。
【００１３】
図１のＬＳＩ設計装置には、同期化設計の対象となるＬＳＩの回路記述データ１０１が入力される。回路記述データ１０１は例えば、レジスタ・トランスファー・レベルで記述された回路記述データである。
【００１４】
図１のＬＳＩ設計装置には更に、設計者が記述したクロックドメイン情報１０２が入力される。クロックドメイン情報１０２は、上記のＬＳＩのクロックドメインに関する情報である。クロックドメイン情報１０２には例えば、外部クロック端子名や、ＰＬＬ（位相同期ループ）のようなクロック供給源となる回路の端子名や、同期／非同期を区別するための識別子としてのクロックドメイン名等が含まれる。
【００１５】
図１のＬＳＩ設計装置には更に、未同期化箇所情報１０３が入力される。未同期化箇所情報１０３は、上記のＬＳＩにおける同期化設計の未対応箇所を示す情報であり、同期化設計が行われていない箇所を示している。
【００１６】
また、図１のＬＳＩ設計装置は、インターフェイス回路情報抽出部１１１と、挿入箇所候補特定部１１２と、挿入箇所特定部１１３と、同期化回路挿入部１１４とを備える。
【００１７】
インターフェイス回路情報抽出部１１１は、回路記述データ１０１、クロックドメイン情報１０２、及び未同期化箇所情報１０３を利用して、上記のＬＳＩに含まれるクロックドメインを解析し、異なるクロックドメイン間のインターフェイスのうち、同期化設計が必要なインターフェイスを特定するブロックである。インターフェイス回路情報抽出部１１１は、回路記述データ１０１、クロックドメイン情報１０２、及び未同期化箇所情報１０３から、同期化設定が必要なインターフェイスとして、同期化設定が行われていないインターフェイスを特定する。
【００１８】
詳細には、インターフェイス回路情報抽出部１１１は、上記インターフェイスを構成する送信レジスタ及び受信レジスタを特定する。送信レジスタは、上記インターフェイスを構成する他の回路に、データを送り出すレジスタである。受信レジスタは、上記インターフェイスを構成する他の回路から、データを受け取るレジスタである。
【００１９】
そして、インターフェイス回路情報抽出部１１１は、送信レジスタ及び受信レジスタの特定結果に基づいて、上記のＬＳＩ内の回路同士の接続関係に関する情報である回路接続情報を解析する。これにより、特定された送信レジスタと受信レジスタとの間の回路接続情報であるインターフェイス回路情報１２１が抽出される。抽出されたインターフェイス回路情報１２１は、図１に示すように、インターフェイス回路情報１２１用のデータベースに格納される。
【００２０】
挿入箇所候補特定部１１２は、インターフェイス回路情報１２１から、上記の受信レジスタの各々について、Fan-In数を特定するブロックである。Fan-In数は、受信レジスタへのデータの供給源となる送信レジスタの個数であり、本発明の供給源個数の例である。
【００２１】
そして、挿入箇所候補特定部１１２は、特定されたFan-In数に基づいて、同期化回路を挿入する箇所の候補である挿入箇所候補を特定し、挿入箇所候補を示す挿入箇所候補情報１２２を作成する。作成された挿入箇所候補情報１２２は、図１に示すように、挿入箇所候補情報１２２用のデータベースに格納される。
【００２２】
挿入箇所特定部１１３は、上記の送信レジスタの各々について、Fan-Out数を特定するブロックである。Fan-Out数は、送信レジスタからのデータの出力先となる受信レジスタの個数であり、本発明の出力先個数の例である。
【００２３】
そして、挿入箇所特定部１１３は、特定されたFan-Out数と、挿入箇所候補情報１２２とに基づいて、同期化回路を挿入する箇所である挿入箇所を特定し、挿入箇所を示す挿入箇所情報１２３を作成する。別言すると、挿入箇所特定部１２３は、挿入箇所候補の見直しを行い、挿入箇所候補の一部を削除するなどして、挿入箇所の絞り込みを行う。作成された挿入箇所情報１２３は、図１に示すように、挿入箇所情報１２３用のデータベースに格納される。
【００２４】
同期化回路挿入部１１４は、挿入箇所情報１２３と、予め用意された同期化回路の回路記述データ１２４とを利用して、挿入箇所に同期化回路を挿入するブロックである。
【００２５】
これにより、同期化回路挿入部１１４は、上記のＬＳＩの回路記述データ１０１から、挿入箇所に同期化回路が挿入された上記のＬＳＩの回路記述データ１２５（同期化対策済み回路記述データ）を作成する。作成された回路記述データ１２５は、図１に示すように、回路記述データ１２５用のデータベースに格納される。
【００２６】
以下、インターフェイス回路情報抽出部１１１、挿入箇所候補特定部１１２、挿入箇所特定部１１３、及び同期化回路挿入部１１４による処理について、より詳細に説明する。
【００２７】
図２は、インターフェイス回路情報抽出部１１１による処理について説明するための回路図である。
【００２８】
上述のように、インターフェイス回路情報抽出部１１１は、回路記述データ１０１、クロックドメイン情報１０２、及び未同期化箇所情報１０３から、同期化設定が必要なインターフェイスを構成する送信レジスタ及び受信レジスタを特定する。
【００２９】
図２には、同期化設計が必要なインターフェイスの一例が示されている。図２は、上記のＬＳＩの構成を示す回路図となっており、図２には、クロック周波数の異なる第１のクロックドメイン２０１と第２のクロックドメイン２０２との間のインターフェイスが示されている。
【００３０】
図２には更に、当該インターフェイスを構成するレジスタとして、第１のクロックドメイン２０１内の送信レジスタＦＦ１〜ＦＦ３と、第２のクロックドメイン２０２内の受信レジスタＦＦ４〜ＦＦ６が示されている。送信レジスタは、当該インターフェイスを構成する他の回路に、データを送り出すレジスタであり、受信レジスタは、当該インターフェイスを構成する他の回路から、データを受け取るレジスタである。図２では、これらのレジスタは、フリップフロップ回路となっている。図２には更に、当該インターフェイスを構成する回路として、第２のクロックドメイン２０２内のバッファ回路Ｂ１，Ｂ２、及び論理回路２１１が示されている。
【００３１】
また、図２には更に、送信レジスタＦＦ１〜ＦＦ３、受信レジスタＦＦ４〜ＦＦ６、バッファ回路Ｂ１，Ｂ２、及び論理回路２１１間の接続関係が示されている。これらの接続関係は、上記のＬＳＩ内の回路同士の接続関係に関する情報である回路接続情報から抽出され、インターフェイス回路情報１２１としてデータベースに格納される。
【００３２】
インターフェイス回路情報抽出部１１１による処理によれば、回路記述データ１０１、クロックドメイン情報１０２、及び未同期化箇所情報１０３から、図２に示す送信レジスタＦＦ１〜ＦＦ３及び受信レジスタＦＦ４〜ＦＦ６が特定され、図２に示す回路（インターフェイス回路）に関するインターフェイス回路情報１２１が抽出される。
【００３３】
以下、インターフェイス回路情報抽出部１１１による処理について、図２に基づいて説明する。
【００３４】
インターフェイス回路情報抽出部１１１は、設計者により回路記述データ１０１、クロックドメイン情報１０２、及び未同期化箇所情報１０３が入力されると、最初に、ＬＳＩ中の各レジスタのクロックドメインを特定する。インターフェイス回路情報抽出部１１１は例えば、各レジスタのクロック端子から、外部端子やＰＬＬのようなブラックボックス回路の端子まで、クロック接続経路のバックトレースを行う。そして、辿りついた外部端子名やブラックボックス回路の端子名と、設計者が与えたクロックドメイン情報１０２とを比較することで、各レジスタが属するクロックドメインのクロックドメイン名を特定する。そして、各レジスタに、特定されたクロックドメイン名を付与する。
【００３５】
次に、インターフェイス回路情報抽出部１１１は、回路記述データ１０１から、レジスタ−レジスタ間の接続関係に関する回路接続情報を抽出し、回路接続情報が抽出された１対のレジスタに関し、クロックドメイン情報の比較を行う。これらのレジスタが異なるクロックドメイン名を持つ場合、インターフェイス回路情報抽出部１１１は、設計者が与えた未同期化箇所情報１０３を参照する。そして、これらのレジスタのレジスタ名や、これらのレジスタ間の配線名から、これらのレジスタ間で同期化設計がなされているかどうかを特定する。
【００３６】
インターフェイス回路情報抽出部１１１は、これらのレジスタ間で同期化設計がなされていない場合には、これらのレジスタを同期化設計の処理対象とすべく、これらのレジスタ間の接続経路の抽出を行う。
【００３７】
同様に、インターフェイス回路情報抽出部１１１は、異なるクロックドメイン同士の境界において、まだ同期化設計されていない箇所を特定する。これにより、例えば、図２に示す送信レジスタＦＦ１〜ＦＦ３や受信レジスタＦＦ４〜ＦＦ６が特定され、図２に示すインターフェイス回路に関するインターフェイス回路情報１２１が抽出される。抽出されたインターフェイス回路情報１２１は、データベースに格納される。
【００３８】
図３は、挿入箇所候補特定部１１２による処理について説明するための回路図である。図３は、図２と同様、上記のＬＳＩの構成を示す回路図となっている。
【００３９】
まず、挿入箇所候補特定部１１２は、インターフェイス回路情報１２１から、各受信レジスタのFan-In数を特定する。Fan-In数は、データの供給源となる送信レジスタの個数である。例えば、ＦＦ４はＦＦ１のみからデータが入力され、ＦＦ６はＦＦ２のみからデータが入力されるため、ＦＦ４及びＦＦ６のFan-In数は「１」である。一方、ＦＦ５はＦＦ２とＦＦ３からデータが入力されるため、ＦＦ５のFan-In数は「２」である。挿入箇所候補特定部１１２は例えば、各受信レジスタのデータ入力端子から送信レジスタのデータ出力端子まで回路接続経路のバックトレースを行い、辿りついた送信レジスタのデータ出力端子数により、各受信レジスタのFan-In数を特定する。
【００４０】
次に、挿入箇所候補特定部１１２は、特定されたFan-In数に基づいて、リコンバージェンス問題を回避できるように同期化回路の挿入箇所候補を特定する。図３において、論理回路２１１は、複数の送信レジスタＦＦ２及びＦＦ３から複数の出力信号を受信する。従来のようにクロックドメイン境界上に同期化回路を挿入した場合、これらの信号には、信号間で１サイクルのタイミング差が生じる場合があり、このようなタイミング差は、論理回路２１１の動作不良を引き起こす可能性がある。即ち、論理回路２１１では、リコンバージェンス問題が発生する可能性がある。
【００４１】
そこで、挿入箇所候補特定部１１２は、Fan-In数が２以上となる受信レジスタについては、リコンバージェンス問題の発生箇所と判定する。そして、挿入箇所候補特定部１１２は、Fan-In数が２以上となる受信レジスタについては、当該受信レジスタのデータ入力端子に接続されたネットを、挿入箇所候補として採用する。図３では、ＦＦ５のデータ入力端子がＴで示され、ＦＦ５について採用された挿入箇所候補がＸ３で示されている。
【００４２】
一方、挿入箇所候補特定部１１２は、Fan-In数が１となる受信レジスタについては、リコンバージェンス問題は発生しないと判定する。そして、挿入箇所候補特定部１１２は、Fan-In数が１となる受信レジスタについては、通常の同期化設計通り、当該受信レジスタの上流に存在するクロックドメイン境界上のネットを、挿入箇所候補として採用する。図３では、上記のクロックドメイン境界がＢで示され、ＦＦ４，ＦＦ６について採用された挿入箇所候補がそれぞれＸ１，Ｘ２で示されている。
【００４３】
そして、挿入箇所候補特定部１１２は、挿入箇所候補を示す情報である挿入箇所候補情報１２２を作成し、作成された挿入箇所候補情報１２２をデータベースに格納する。
【００４４】
図４は、挿入箇所特定部１１３による処理について説明するための回路図である。図４(Ａ)〜(Ｃ)はそれぞれ、図２と同様、上記のＬＳＩの構成を示す回路図となっている。
【００４５】
まず、挿入箇所特定部１１３は、各送信レジスタのFan-Out数を特定する。Fan-Out数は、データの出力先となる受信レジスタの個数である。例えば、図４(Ａ)に示すように、ＦＦ１はＦＦ４のみにデータを出力し、ＦＦ３はＦＦ５のみにデータを出力するため、ＦＦ１及びＦＦ３のFan-Out数は「１」である。一方、ＦＦ２はＦＦ５とＦＦ６にデータを出力するため、ＦＦ５のFan-Out数は「２」である。
【００４６】
挿入箇所特定部１１３は、各送信レジスタのFan-Out数を、挿入箇所候補情報１２２から特定してもよいし、インターフェイス回路情報１２１から特定してもよい。前者の場合には、挿入箇所特定部１１３は例えば、挿入箇所候補情報１２２に含まれる挿入箇所候補特定部１１２によるバックトレースの実行結果を利用して、各送信レジスタのFan-Out数を特定する。一方、後者の場合には、挿入箇所特定部１１３は例えば、各送信レジスタのデータ出力端子から受信レジスタのデータ入力端子まで回路接続経路のトレースを行い、辿りついた受信レジスタのデータ入力端子数により、各送信レジスタのFan-Out数を特定する。
【００４７】
次に、挿入箇所特定部１１３は、特定されたFan-Out数と、挿入箇所候補情報１２２とに基づいて、１つの送信レジスタと１つの受信レジスタとの間の経路上に１つの挿入箇所が存在するように、同期化回路の挿入箇所を特定する。
【００４８】
例えば、図４(Ａ)に示すように、ＦＦ２とＦＦ５との間の経路上には、ＦＦ２のFan-Out数が「２」であることに起因して、２つの挿入箇所候補Ｘ２，Ｘ３が存在する。このような場合、挿入箇所特定部１１３は、リコンバージェンス問題を考慮して決定された挿入候補箇所Ｘ３については削除不可と判断し、残りの挿入箇所候補Ｘ２については冗長と判断する。その結果、挿入箇所特定部１１３は、挿入箇所候補Ｘ３を挿入箇所として採用し、挿入箇所候補Ｘ２を削除する。
【００４９】
一方、図４(Ａ)に示すように、ＦＦ１とＦＦ４との間の経路上には、ＦＦ１のFan-Out数が「１」であることに起因して、１つの挿入箇所候補Ｘ１が存在する。このような場合、挿入箇所特定部１１３は、挿入箇所候補Ｘ１を挿入箇所として採用する。
【００５０】
このように、挿入箇所特定部１１３は、Fan-Out数が２以上となる送信レジスタについては、当該送信レジスタの下流に存在する挿入箇所候補のうち、一部を挿入箇所として採用し、一部を削除する。一方、Fan-Out数が１となる送信レジスタについては、当該送信レジスタの下流に存在する挿入箇所候補をそのまま挿入箇所として採用する。
【００５１】
ところで、図４(Ａ)では、挿入箇所候補Ｘ２を削除することで、ＦＦ２とＦＦ６との間の経路上に挿入箇所が存在しなくなってしまう。即ち、ＦＦ２とＦＦ６との間の経路上では、同期化対策がなされないことになってしまう。そこで、挿入箇所特定部１１３は、このような事態を回避すべく、ＦＦ２のFan-Out数が１になるようにクローニング処理及び配線変更処理を実行する。
【００５２】
まず、挿入箇所特定部１１３は、図４(Ｂ)に示すように、Fan-Out数が２以上となる送信レジスタのクローニングを行う。図４(Ｂ)には、ＦＦ２がクローニングされ、ＦＦ２のクローンであるＦＦ２’が生成された様子が示されている。ＦＦ２’には、ＦＦ２に供給されるのと同一のクロックが供給される。
【００５３】
次に、挿入箇所特定部１１３は、図４(Ｃ)に示すように、挿入箇所が存在しない送信レジスタ−受信レジスタ経路に関し、当該経路の配線を変更する配線変更処理を行う。図４(Ｃ)には、ＦＦ２とＦＦ６との間の経路に関し、当該経路を構成する配線Ｌ１が削除され、代わりに、ＦＦ２’とＦＦ６とを結ぶ配線Ｌ２が新設された様子が示されている。これにより、ＦＦ２とＦＦ６との間の接続が解消され、代わりに、ＦＦ２’とＦＦ６とが新たに接続される。
【００５４】
次に、挿入箇所特定部１１３は、クローニング処理及び配線変更処理の実行後に、挿入箇所の再特定を行う。挿入箇所の再特定は例えば、挿入箇所候補特定部１１２が挿入箇所候補を特定する処理と同様の処理により行われる。図４(Ｃ)には、挿入箇所の再特定によりＦＦ２’について採用された挿入箇所Ｘ２’が示されている。挿入箇所Ｘ２’は、ＦＦ６の上流に存在するクロックドメイン境界上のネットに位置している。このように、挿入箇所特定部１１３は、クローニング処理及び配線変更処理を通じて、挿入箇所の最適化を行う。
【００５５】
そして、挿入箇所特定部１１３は、挿入箇所を示す情報である挿入箇所情報１２３を作成し、作成された挿入箇所情報１２３をデータベースに格納する。
【００５６】
図５は、同期化回路挿入部１１４による処理について説明するための回路図である。図５(Ａ)，(Ｂ)はそれぞれ、図２と同様、上記のＬＳＩの構成を示す回路図となっている。
【００５７】
同期化回路挿入部１１４は、図５(Ａ)に示すように、挿入箇所情報１２３と、設計者が用意した同期化回路の回路記述データ１２４とを利用して、挿入箇所に同期化回路を挿入する。図５(Ａ)では、挿入箇所Ｘ１，Ｘ２’，Ｘ３の各々に、同期化回路として、直列接続された３個のレジスタＦＦａ，ＦＦｂ，ＦＦｃが挿入されている。ここで、ＦＦａは、第１のクロックドメイン２０１内のクロック（送信側クロック）で動作するフリップフロップ回路であり、ＦＦｂ及びＦＦｃは、第２のクロックドメイン２０２内のクロック（受信側クロック）で動作するフリップフロップ回路である。
【００５８】
このように、本実施形態では、同期化回路は、マルチフロップタイプとなっている。本実施形態では、ＦＦａ，ＦＦｂ，ＦＦｃからなる同期化回路の回路記述データ１２４が、設計者により用意される。
【００５９】
次に、同期化回路挿入部１１４は、図５(Ａ)に示すレジスタのうち、冗長なレジスタを削除する冗長回路削除処理を行う。即ち、送信レジスタＦＦ１〜ＦＦ３、受信レジスタＦＦ４〜ＦＦ６、クローニングにより生成されたレジスタＦＦ２’、挿入箇所Ｘ１，Ｘ２’，Ｘ３に挿入されたレジスタＦＦａ〜ＦＦｃのうち、冗長なレジスタが削除される。
【００６０】
一般に、クロック周波数の異なるクロックドメイン間の境界を通過する経路上には、同期化用に、送信側クロックで動作するレジスタが１個配置され、受信側のクロックで動作するレジスタが２個配置される。この場合、当該経路上に存在するその他のレジスタは、冗長と判断される。本実施形態の同期化回路挿入部１１４は、このような判断基準の下、冗長なレジスタの削除を行う。
【００６１】
以下、同期化回路挿入部１１４による冗長回路削除処理について、図５(Ａ)及び(Ｂ)に基づいて説明する。
【００６２】
まず、図５(Ａ)に示すように、ＦＦ１とＦＦ４との間の経路上には、送信側クロックで動作するレジスタが、ＦＦ１，ＦＦａの２個存在し、受信側クロックで動作するレジスタが、ＦＦｂ，ＦＦｃ，ＦＦ４の３個存在する。そこで、同期化回路挿入部１１４は、ＦＦ１，ＦＦａのうちのいずれか１個のレジスタと、ＦＦｂ，ＦＦｃ，ＦＦ４のうちのいずれか１個のレジスタとを削除する。本実施形態では、図５(Ｂ)に示すように、上記経路上から、ＦＦａとＦＦｂが削除される。
【００６３】
また、図５(Ａ)に示すように、ＦＦ２’とＦＦ６との間の経路上には、送信側クロックで動作するレジスタが、ＦＦ２’，ＦＦａの２個存在し、受信側クロックで動作するレジスタが、ＦＦｂ，ＦＦｃ，ＦＦ６の３個存在する。そこで、同期化回路挿入部１１４は、ＦＦ２’，ＦＦａのうちのいずれか１個のレジスタと、ＦＦｂ，ＦＦｃ，ＦＦ６のうちのいずれか１個のレジスタとを削除する。本実施形態では、図５(Ｂ)に示すように、上記経路上から、ＦＦａとＦＦｂが削除される。
【００６４】
また、図５(Ａ)に示すように、ＦＦ２とＦＦ５との間の経路上には、送信側クロックで動作するレジスタが、ＦＦ２，ＦＦａの２個存在し、受信側クロックで動作するレジスタが、ＦＦｂ，ＦＦｃ，ＦＦ５の３個存在する。同様に、ＦＦ３とＦＦ５との間の経路上には、送信側クロックで動作するレジスタが、ＦＦ３，ＦＦａの２個存在し、受信側クロックで動作するレジスタが、ＦＦｂ，ＦＦｃ，ＦＦ５の３個存在する。
【００６５】
そこで、同期化回路挿入部１１４は、送信側クロックで動作するレジスタについては、これらの経路上から、ＦＦ２及びＦＦ３のペアか、ＦＦａかのいずれか一方を削除する。一方、受信側クロックで動作するレジスタについては、これらの経路上から、ＦＦｂ，ＦＦｃ，ＦＦ５のうちのいずれか１個のレジスタを削除する。
【００６６】
ただし、これらの経路上からＦＦａを削除すると、論理回路２１１は、送信側クロックで動作するレジスタと、受信側クロックで動作するレジスタとの間に位置してしまう。これは、論理回路２１１が、クロックドメイン間の境界上に位置することを相当する。一般に、論理回路２１１のこのような配置は、ＬＳＩの設計を行う際、デザイン違反とすることが多い。そこで、本実施形態の同期化回路挿入部１１４は、このような配置をデザイン違反として取り扱い、これらの経路上からのＦＦａの削除は許可しないとする。
【００６７】
よって、本実施形態では、図５(Ｂ)に示すように、送信側クロックで動作するレジスタについては、これらの経路上から、ＦＦ２とＦＦ３が削除される。また、図５(Ｂ)に示すように、受信側クロックで動作するレジスタについては、これらの経路上から、ＦＦｂが削除される。ただし、受信側クロックで動作するレジスタについては、これらの経路上から、ＦＦｂに代えて、ＦＦｃ又はＦＦ５を削除しても構わない。
【００６８】
このようにして、同期化回路挿入部１１４は、図５(Ｂ)に示すインタフェース回路が含まれるＬＳＩの回路記述データ１２５（同期化対策済み回路記述データ）を作成し、作成された回路記述データ１２５をデータベースに格納する。
【００６９】
以上のように、本実施形態のＬＳＩ設計装置は、受信レジスタのFan-In数を特定し、Fan-In数に基づいて挿入箇所候補を特定し、送信レジスタのFan-Out数を特定し、Fan-Out数と挿入箇所候補情報とに基づいて挿入箇所を特定し、挿入箇所情報を利用して同期化設定を行う。これにより、本実施形態では、リコンバージェンス問題を回避しながらメタスタビリティ対策を行うことが可能となる。
【００７０】
また、本実施形態によれば、このような処理により、同期化回路の挿入及び最適化を自動化することができるため、異なるクロックドメイン間の接続に必要な同期化設計を、設計者の手間を抑えて実行することができる。また、本実施形態によれば、同期化回路として最適化された回路を得ることができる。
【００７１】
また、本実施形態のＬＳＩ設計装置は、回路記述データ１０１、クロックドメイン情報１０２、及び未同期化箇所情報１０３から、同期化設計が必要なインターフェイスを構成する送信レジスタ及び受信レジスタを特定し、当該インターフェイスに関するインターフェイス回路情報１２１を抽出する。これにより、本実施形態では、Fan-In数及びFan-Out数の特定を自動化することが可能になる。
【００７２】
以上、本発明の具体的な態様の例を、本発明の実施形態により説明したが、本発明は、当該実施形態に限定されるものではない。
【符号の説明】
【００７３】
１０１  ＬＳＩの回路記述データ
１０２  クロックドメイン情報
１０３  未同期化箇所情報
１１１  インターフェイス回路情報抽出部
１１２  挿入箇所候補特定部
１１３  挿入箇所特定部
１１４  同期化回路挿入部
１２１  インターフェイス回路情報
１２２  挿入箇所候補情報
１２３  挿入箇所情報
１２４  同期化回路の回路記述データ
１２５  ＬＳＩの回路記述データ（同期化対策済み回路記述データ）
２０１  第１のクロックドメイン
２０２  第２のクロックドメイン
２１１  論理回路
【図１】
2010277230.tif 000003
【図２】
2010277230.tif 000004
【図３】
2010277230.tif 000005
【図４】
2010277230.tif 000006
【図５】
2010277230.tif 000007