(57)【要約】【課題】デルタ遅延量の調整を自動で行なえるようにして、論理シミュレーション結果と実機評価結果との間で動作不一致が生じるのを抑止する。【解決手段】処理装置１は、同一周期で且つ同期関係にある複数のクロック信号によって動作する集積回路を処理対象として論理検証を行なう処理部１０を有する。処理部１０は、前記複数のクロック信号のうちデルタ遅延量が最も大きいクロック信号をベースクロック信号として選定する。そして、処理部１０は、前記複数のクロック信号のうち前記ベースクロック信号以外のクロック信号のデルタ遅延量を、前記ベースクロック信号のデルタ遅延量に合わせるように、前記ベースクロック信号以外のクロック信号を調整する。【選択図】図１
2017146774.tif 000002
【特許請求の範囲】
【請求項１】
同一周期で且つ同期関係にある複数のクロック信号によって動作する集積回路を処理対象として論理検証を行なう処理部を有する処理装置であって、
前記処理部は、
前記複数のクロック信号のうちデルタ遅延量が最も大きいクロック信号をベースクロック信号として選定し、
前記複数のクロック信号のうち前記ベースクロック信号以外のクロック信号のデルタ遅延量を、前記ベースクロック信号のデルタ遅延量に合わせるように調整することを特徴とする処理装置。
【請求項２】
前記処理部は、
前記複数のクロック信号のうちの二つのクロック信号の全ての組合せについて、前記二つのクロック信号間のデルタ遅延量差分を算出し、
前記全ての組合せについて算出した前記デルタ遅延量差分に基づき、前記ベースクロック信号を選定することを特徴とする、請求項１に記載の処理装置。
【請求項３】
前記デルタ遅延量は、前記複数のクロック信号のそれぞれに対して行なわれたデルタ遅延付き信号代入の実行回数であることを特徴とする、請求項２に記載の処理装置。
【請求項４】
前記処理部は、
前記二つのクロック信号の一方である測定側クロック信号を二分周してから二分岐し、二分岐した前記測定側クロック信号の一方を、任意の実時間遅延量を付与して第１フリップフロップにデータとして入力し、二分岐した前記測定側クロック信号の他方を第２フリップフロップにデータとして入力し、前記第１フリップフロップおよび前記第２フリップフロップに前記二つのクロック信号の他方である被測定側クロック信号をクロックとして入力することで前記第１フリップフロップおよび前記第２フリップフロップからそれぞれ出力される二つのデータの比較を行ない、前記比較の結果、前記二つのデータが一致しない場合、前記測定側クロック信号に対するデルタ遅延付き信号代入を一回実行する、処理を、前記比較の結果、前記二つのデータが一致するまで繰り返し実行し、
前記二つのデータが一致した時点でのデルタ遅延付き信号代入の実行回数を、前記二つのクロック信号間の前記デルタ遅延量差分として算出する、ことを特徴とする、請求項３に記載の処理装置。
【請求項５】
前記複数のクロック信号は、同一のクロック源から分岐されたものであることを特徴とする、請求項１〜請求項４のいずれか一項に記載の処理装置。
【請求項６】
論理設計対象の集積回路の動作をシミュレートする論理シミュレータであって、
前記集積回路において同一周期で且つ同期関係にある複数のクロック信号のうちデルタ遅延量が最も大きいクロック信号をベースクロック信号として選定する選定部と、
前記複数のクロック信号のうち前記ベースクロック信号以外のクロック信号のデルタ遅延量を、前記ベースクロック信号のデルタ遅延量に合わせるように調整する調整部と、を有することを特徴とする論理シミュレータ。
【請求項７】
集積回路の設計検証方法であって、
前記集積回路において同一周期で且つ同期関係にある複数のクロック信号のうちデルタ遅延量が最も大きいクロック信号をベースクロック信号として選定し、
前記複数のクロック信号のうち前記ベースクロック信号以外のクロック信号のデルタ遅延量を、前記ベースクロック信号のデルタ遅延量に合わせるように調整することを特徴とする設計検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理装置、論理シミュレータ、および設計検証方法に関する。
【背景技術】
【０００２】
ＶＨＤＬ（VHSIC Hardware Description Language），Ｖｅｒｉｌｏｇ−ＨＤＬ等のハードウエア記述言語によって記述された集積回路の検証モデルの動作をシミュレートするための論理シミュレータの方式の一つとして、イベントドリブン方式がある。イベントドリブン方式においては、並列動作の最小単位のモデルであるプロセスと、プロセスの実行によって発生するイベントとが管理され、各イベントの発生時に、当該イベントに関連付けられたプロセスが起動される。なお、VHSICはVery High Speed Intergrated Circuitの略記である。また、集積回路としては、例えば、光伝送装置に搭載されるＬＳＩ（Large Scale Integration）やＦＰＧＡ（Field Programmable Gate Array）などが挙げられる。
【０００３】
ここで、例えば同時刻のイベントで起動されるプロセスが複数存在し、あるプロセスでは遅延０で更新される変数について、他のプロセスでは更新前の値を参照したいような場合、イベントドリブン型論理シミュレータの処理方式では、デルタ遅延付き信号代入処理が利用される。この場合、当該変数の更新処理をデルタ遅延付き信号代入処理とすることによって、同じデルタサイクル内では、当該他のプロセスにおいて必ず更新前の値を参照することができる。デルタ遅延付き信号代入が適用される例としては、素子に遅延を付けないレジスタトランスファレベルのモデリングにおける、フリップフロップ（ＦＦ）などが挙げられる。また、デルタ遅延付き信号代入処理の具体例としては、Ｖｅｒｉｌｏｇ−ＨＤＬにおける遅延指定の無いノンブロッキング代入や、ＳｙｓｔｅｍＣにおけるｓｃ＿ｓｉｇｎａｌ等のプリミティブチャネルへのｗｒｉｔｅなどが挙げられる。
【０００４】
上述のように、コンピュータ上での検証モデルの論理シミュレーションにおいて、ハードウエアの並列処理を実現するため、無限小の遅延（論理シミュレーション上の仮想的遅延）であるデルタ遅延が存在する。デルタ遅延の遅延量は、論理シミュレーション上、信号代入処理の実行回数として扱われるものであり、デルタ遅延は実際の遅延ではない。なお、「デルタ遅延」は「δ遅延」と記載する場合がある。また、「デルタ遅延の遅延量」は「デルタ遅延量」または「δ遅延量」と記載する場合がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−１１９６１号公報
【特許文献２】特開２００６−１２７４４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
論理設計において、δ遅延を考慮した設計作業（各回路のδ遅延量の測定と遅延調整）は、設計者のマニュアル操作によって実行される。このため、論理設計において、設計者によるδ遅延量（信号代入の実行回数）の考慮が不足すると、論理シミュレーション結果と実際のハードウエア評価結果（実機評価結果；ハードウエアシミュレーション結果）との間で動作不一致を引き起こす場合がある。つまり、設計者がマニュアル操作でδ遅延量の調整を行なう際の誤操作によって、論理シミュレーションでは正常に動作するが実機では正常に動作しないといった事象（不具合）が生じる場合がある。
【０００７】
一つの側面で、本発明は、論理シミュレーション結果と実機評価結果との間で動作不一致が生じるのを抑止することを目的とする。
【課題を解決するための手段】
【０００８】
本件の処理装置は、同一周期で且つ同期関係にある複数のクロック信号によって動作する集積回路を処理対象として論理検証を行なう処理部を有する。前記処理部は、前記複数のクロック信号のうちデルタ遅延量が最も大きいクロック信号をベースクロック信号として選定する。そして、前記処理部は、前記複数のクロック信号のうち前記ベースクロック信号以外のクロック信号のデルタ遅延量を、前記ベースクロック信号のデルタ遅延量に合わせるように調整する。
【発明の効果】
【０００９】
論理シミュレーション結果と実機評価結果との間で動作不一致が生じるのを抑止することができる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態に係る論理シミュレータを含む処理装置のハードウエア構成の一例を示すブロック図である。
【図２】図１に示す論理シミュレータにおけるδ遅延自動調整ツールの機能構成を示すブロック図である。
【図３】図２に示すδ遅延自動調整ツールの詳細な機能構成を示す図である。
【図４】図２および図３に示すδ遅延自動調整ツールの動作概要を説明するフローチャートである。
【図５】図３に示すδ遅延自動調整ツールの動作を説明するタイミングチャートである。
【図６】図３に示すδ遅延自動調整ツールにおけるδ遅延検証部によって得られる検証結果の一例を示す図である。
【図７】信号代入によってδ遅延が生じる回路例を示すブロック図である。
【図８】図７に示す回路例におけるＡブロックおよびＢブロックのＶＨＤＬ記述を示す図である。
【図９】図７および図８に示す回路例において生じる、論理シミュレーション結果と実機評価結果との間の動作不一致状態の一例を示すタイミングチャートである。
【図１０】信号代入に伴うδ遅延によって生じるシミュレーション誤動作の具体例を示す図である。
【図１１】δ遅延を考慮した一般的な回路設計手順を説明するフローチャートである。
【図１２】複雑なクロック系の例を示すブロック図である。
【図１３】本実施形態を適用した場合の回路設計手順の概要を説明するフローチャートである。
【発明を実施するための形態】
【００１１】
以下に、図面を参照し、本願の開示する処理装置、論理シミュレータ、および設計検証方法の実施形態について、詳細に説明する。ただし、以下に示す実施形態は、あくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能を含むことができる。そして、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【００１２】
〔１〕関連技術と本願技術の概要
上述したように、コンピュータ上での検証モデルの論理シミュレーションにおいて、ハードウエアの並列処理を実現するため、δ遅延と呼ばれる概念が導入されている。δ遅延は無限小の遅延であり、δ遅延量は信号代入処理の実行回数として扱われる。しかし、論理設計においてδ遅延を考慮した設計作業は設計者のマニュアル操作によって実行されるため、設計者によるδ遅延量の考慮が不足すると、論理シミュレーション結果と実機評価結果との間で動作不一致が生じる場合がある。
【００１３】
ここで、図７〜図９を参照しながら、論理シミュレーション結果と実機評価結果との間で動作不一致が生じる例について説明する。図８に示すＶＨＤＬ記述によって規定される図７に示すＡブロックおよびＢブロックを有する回路例では、ＡブロックのＦＦに、Logicからのデータ信号DATAと２分周されたクロック信号sr_clkp_halfとが入力される。また、ＡブロックのＦＦからのデータ信号A_OUTとＡブロックの信号名変換後のクロック信号CLK_HALFとは、ＢブロックのＦＦに入力される。
【００１４】
このとき、ＡブロックのＦＦと、Ａブロック境界での信号名変換とのそれぞれにおいて、信号代入が一回実行され、δ遅延量１（図中、Δ１と記載）が発生している。これに伴い、Ａブロックからのクロック信号CLK_HALFおよびデータ信号A_OUTは、Ａブロック内部のクロック信号sr_clkp_halfよりもδ遅延量Δ１だけ遅れてＢブロックへ出力される。そのため、これらのクロック信号CLK_HALFおよびデータ信号A_OUTは、同じ時刻で変化することになり、Ｂブロックの動作は不安定になって、図９に示すように、論理シミュレーションと実機との動作（ＢブロックのＦＦからの出力値B_OUT）の不一致が生じる場合がある。
【００１５】
また、図１０を参照しながら、信号代入に伴うδ遅延によって生じるシミュレーション誤動作（論理シミュレーション結果と実機評価結果との間での動作不一致）の具体例について説明する。図１０に示すように、後段の回路IIでは、前段の回路Ｉや、その他の部分で信号代入が実行されているため、デジタルδ遅延が各信号に別々に付加されている。
【００１６】
このとき、図１０に示す回路IIにおけるＦＦ＃１には、δ遅延２のクロック信号s_sel2_CLKが入力されるとともに、δ遅延３のデータ信号s_sel_FPが入力される。つまり、データ信号のδ遅延量３がクロック信号のδ遅延量２よりも大きいため、論理シミュレーション上での値の代入が正しいタイミングで実行される。
【００１７】
一方、、図１０に示す回路IIにおけるＦＦ＃２には、δ遅延２のクロック信号s_sel2_CLKが入力されるとともに、δ遅延２のデータ信号s_DT_IN(3:0)が入力される。つまり、クロック信号のδ遅延量２とデータ信号のδ遅延量２とが同一であるため、論理シミュレーション上では値の代入が実行されず、シミュレーション誤動作が生じる。
【００１８】
ついで、図１１に示すフローチャート（ステップＳ１０１〜Ｓ１１７）に従って、δ遅延を考慮した一般的な回路設計手順を説明する。まず、ＨＤＬ設計が行なわれ（ステップＳ１０１）、論理設計対象の集積回路の検証モデルを規定するＨＤＬ記述が取得され、当該ＨＤＬ記述に基づき、回路設計（ステップＳ１０２〜Ｓ１０７）が実行される。
【００１９】
回路設計においては、まず並列設計を実行するか否かが判断され（ステップＳ１０２）、並列設計を実行しない場合（ステップＳ１０２のＮＯルート）、論理設計（ステップＳ１０３）が実行されてから、クロック設計（ステップＳ１０４）が実行される。また、並列設計を実行する場合（ステップＳ１０２のＹＥＳルート）、論理設計（ステップＳ１０５）とクロック設計（ステップＳ１０６）とが並列的に実行される。ステップＳ１０４のクロック設計を完了、もしくは、ステップＳ１０５の論理設計およびステップＳ１０６のクロック設計の両方を完了すると、回路設計が完了される（ステップＳ１０７）。ここで、δ遅延を考慮した回路設計は、ステップＳ１０６のクロック設計において実行される。
【００２０】
回路設計を完了すると、論理シミュレーション（software simulation；ステップＳ１０８〜Ｓ１１０）が実行される。このとき、まず、論理シミュレーションを実行するか否かが判断され（ステップＳ１０８）、論理シミュレーションを実行する場合（ステップＳ１０８のＹＥＳルート）、論理シミュレーション（ステップＳ１０９）が実行され、論理シミュレーション結果がチェックされる（ステップＳ１１０）。
【００２１】
論理シミュレーション結果がＯＫである場合（ステップＳ１１０のＹＥＳルート）、または、論理シミュレーションを実行しない場合（ステップＳ１０８のＮＯルート）、実機評価（hardware simulation；ステップＳ１１１〜Ｓ１１３）が実行される。このとき、まず、ハードウエアシミュレーションを実行するか否かが判断され（ステップＳ１１１）、ハードウエアシミュレーションを実行する場合（ステップＳ１１１のＹＥＳルート）、ハードウエアシミュレーション（ステップＳ１１２）が実行され、ハードウエアシミュレーション結果がチェックされる（ステップＳ１１３）。
【００２２】
ハードウエアシミュレーション結果がＯＫである場合（ステップＳ１１３のＹＥＳルート）、または、ハードウエアシミュレーションを実行しない場合（ステップＳ１１１のＮＯルート）、処理は終了する。一方、論理シミュレーション結果がＯＫでない場合（ステップＳ１１０のＮＯルート）、または、ハードウエアシミュレーション結果がＯＫでない場合（ステップＳ１１３のＮＯルート）、設計者のマニュアル操作による調査＆修正検討処理（ステップＳ１１４〜Ｓ１１７）が実行される。
【００２３】
調査＆修正検討処理においては、まず、論理シミュレーション結果または実機評価結果がＯＫでない理由が論理設計不良であるか否かが判定される（ステップＳ１１４）。理由が論理設計不良でない場合つまり理由がクロック設計不良である場合（ステップＳ１１４のＮＯルート）、当該クロック設計不良がδ遅延不良であるか否かが判断される（ステップＳ１１５）。当該クロック設計不良がδ遅延不良である場合（ステップＳ１１５のＹＥＳルート）、δ遅延不良を解消するためのクロック訂正メソッドが調査される（ステップＳ１１６）。
【００２４】
クロック訂正メソッドが有る場合（ステップＳ１１７のＹＥＳルート）、または、当該クロック設計不良がδ遅延不良でない場合（ステップＳ１１５のＮＯルート）、処理は、クロック設計（ステップＳ１０４）またはクロック設計（ステップＳ１０６）に戻る。このとき、ステップＳ１０６においては、ステップＳ１１６で調査されたクロック訂正メソッドに基づいて、デルタ遅延不良を解消すべくδ遅延を考慮した回路設計が実行される。
【００２５】
一方、クロック訂正メソッドが無い場合（ステップＳ１１７のＮＯルート）、または、理由が論理設計不良である場合（ステップＳ１１４のＹＥＳルート）、処理は、論理設計（ステップＳ１０３）または論理設計（ステップＳ１０５）に戻る。
【００２６】
図１１に示すδ遅延を考慮した一般的な回路設計手順では、設計者にとって、クロック信号の接続チェックが主な作業であり、δ遅延の考慮は二の次になる傾向がある。そのため、論理シミュレーションやハードウエアシミュレーションで問題が発生した場合、当該問題が、設計自体の問題であるのか又はδ遅延の考慮漏れに起因するものであるのかの判断を含め、問題部分を調査しなければならず、作業効率が低下するほか、回路設計の工数およびコストが増大する。
【００２７】
特に、例えば図１２に示すように、近年の集積回路においては、チップ内に複数のクロック系が備えられ、多段の選択回路（セレクタ）や分周器（１／ｎ）などが備えられ、クロック系がより大規模化・複雑化している。このため、δ遅延量を考慮した回路設計についても難易度が増大している。したがって、設計者がマニュアル操作によるδ遅延量の調整作業を誤り、論理シミュレーションでは正常に動作しているが、実機では正常に動作しないといった事象が多発するおそれがある。
【００２８】
また、図１２に示すように、高位言語に基づいて自動生成されたブロックや、ＩＰ（Intellectual Property core）や、設計資産（macro）などは、その内部回路がブラックボックス（Black Box）又はグレイボックス（Gray Box）となっている場合が多い。そのため、それぞれのδ遅延量の算出が困難であり、実機評価と連携した調査を行なわなければならず、回路設計において、作業効率が低下するほか、多大な工数やコストが費やされている。
【００２９】
そこで、本願開示の技術では、複数のクロック信号を有するＬＳＩ，ＦＰＧＡ等の集積回路（検証モデル）の設計・検証に際して、以下のようなδ遅延の自動調整機能（デジタルδ遅延自動調整ルーツ，δ−adjuster；図１〜図３，図１３参照）が適用される。
【００３０】
つまり、δ遅延の自動調整機能では、集積回路（検証モデル）において同一周期で且つ同期関係にある複数のクロック信号のうちδ遅延量が最も大きいクロック信号をベースクロック信号として選定する選定機能が備えられる。当該選定機能では、複数のクロック信号のうちの二つのクロック信号の全ての組合せについて、二つのクロック信号間のδ遅延量差分が算出され、前記全ての組合せについて算出されたδ遅延量差分に基づき、ベースクロック信号が選定される。
【００３１】
そして、δ遅延の自動調整機能では、前記複数のクロック信号のうちベースクロック信号以外のクロック信号のδ遅延量を、ベースクロック信号のδ遅延量に合わせるように調整する調整機能が備えられる。
【００３２】
ここで、δ遅延量は、前記複数のクロック信号のそれぞれに対して行なわれたδ遅延付き信号代入（δ遅延処理）の実行回数とする。また、前記同一周期で且つ同期関係にある複数のクロック信号は、同一のクロック源（後述するマスタクロック源）から分岐されたものである。
【００３３】
このように、本願開示の技術では、同一周期で且つ同期関係にある複数のクロック信号（クロック系）間におけるδ遅延の有無が測定され、その測定結果に基づき最大δ遅延量をもつベースクロック信号が選定される。そして、ベースクロック信号以外の各クロック信号におけるδ遅延量が最大δ遅延量になるようにδ遅延自動調整が行なわれる。これにより、集積回路の検証モデルに対して最適なδ遅延量が挿入される。
【００３４】
つまり、本願開示の技術は、各クロック系のδ遅延量（絶対遅延量）を算出するものではなく、同一周期で且つ同期関係にある複数のクロック系間のδ遅延量差分を測定算出すべく、詳細には図２および図３を参照しながら後述する機能構成を具備する。
【００３５】
図１１に示すδ遅延を考慮した一般的な回路設計手順では、何らかの不良が発生した場合、上述のように、設計者のマニュアル操作による調査＆修正検討処理（ステップＳ１１４〜Ｓ１１７）が実行される。
【００３６】
これに対し、本願開示の技術では、図１３に示すように、図１１のステップＳ１０６に対応する図１３のステップＳ１２０で実行されるクロック設計処理に、δ遅延の自動調整機能（δ−adjusterとしての機能）が埋め込まれている。したがって、本願開示の技術では、ステップＳ１２０におけるクロック設計処理時に、δ遅延の自動調整が併せて実行される。
【００３７】
ここで、図１３に示すフローチャート（ステップＳ１０１〜Ｓ１０５，Ｓ１０７〜Ｓ１１３，Ｓ１２０）に従って、本実施形態を適用した場合の回路設計手順の概要について簡単に説明する。なお、図１３のステップＳ１０１〜Ｓ１０５，Ｓ１０７〜Ｓ１１３においては、それぞれ図１１のステップ１０１〜Ｓ１０５，Ｓ１０７〜Ｓ１１３と同様の処理が実行されるので、その説明は省略する。
【００３８】
図１１のステップＳ１０６では、設計者のマニュアル操作によってδ遅延を考慮したクロック設計が行なわれている。これに対し、図１１のステップＳ１０６に代えて実行される図１３のステップＳ１２０においては、前述したように、クロック設計処理とともにδ遅延の自動調整が行なわれる。
【００３９】
これにより、論理シミュレーションやハードウエアシミュレーションの結果、問題になる箇所は限りなく論理回路に限定され、δ遅延問題を考慮した調査等を行なう必要がなくなる。このため、本願開示の技術では、図１１に示すステップＳ１１４〜Ｓ１１７の処理を省略することができる。つまり、図１３において、論理シミュレーション結果がＯＫでない場合（ステップＳ１１０のＮＯルート）、または、ハードウエアシミュレーション結果がＯＫでない場合（ステップＳ１１３のＮＯルート）、処理は、論理設計処理（ステップＳ１０３またはＳ１０５）に移行する。
【００４０】
したがって、本願開示の技術によれば、δ遅延対策に要する工数の９０〜９５％を削減することができ、当該遅延対策に要するコストも大幅に削減することができる。δ遅延対策に要する工数としては、例えば、回路設計，論理シミュレーション，ハードウエアシミュレーション（実機評価）に跨る作業工数が含まれる。
【００４１】
〔２〕本実施形態の処理装置のハードウエア構成
まず、図１を参照しながら、本実施形態の処理装置１のハードウエア構成について説明する。図１は、本実施形態に係る論理シミュレータ１１を含む処理装置１のハードウエア構成の一例を示すブロック図である。図１に示すように、本実施形態の処理装置１は、論理設計対象の集積回路（検証モデル）の動作をシミュレートする論理シミュレータ１１を実現するものであり、論理シミュレータ１１に本実施形態のデジタルδ遅延自動調整ツール（δ−adjuster）１１０が含まれている。
【００４２】
なお、処理装置１は、例えば、光伝送装置に搭載されるＬＳＩやＦＰＧＡなどの集積回路におけるクロック遅延（δ遅延）を調整する回路を含んでいてもよい。このとき、当該回路が、本実施形態のデジタルδ遅延自動調整ツール（δ−adjuster）１１０としての機能を果たす回路であってよい。この場合、処理装置１における処理部１０（後述）は、同一周期で且つ同期関係にある複数のクロック信号によって動作する集積回路を、クロック遅延（δ遅延）の調整処理対象として論理検証を行なってもよい。
【００４３】
処理装置１は、図１に示すように、処理部１０，記憶部２０，入力部３０および表示部４０を含む。処理部１０，記憶部２０，入力部３０および表示部４０は、バス５０を介して相互に通信可能に構成される。
【００４４】
処理部１０は、処理装置１全体を制御する。処理部１０は、単一のプロセッサであってもよいし、マルチプロセッサであってもよい。処理部１０は、例えばＣＰＵ（Central Processing Unit），ＭＰＵ（Micro Processing Unit），ＤＳＰ（Digital Signal Processor），ＡＳＩＣ（Application Specific Integrated Circuit），ＰＬＤ（Programmable Logic Device），ＦＰＧＡ（Field Programmable Gate Array）のいずれか一つであってもよい。また、プロセッサ１１は、ＣＰＵ，ＭＰＵ，ＤＳＰ，ＡＳＩＣ，ＰＬＤ，ＦＰＧＡのうちの２種類以上の要素の組み合わせであってもよい。
【００４５】
記憶部２０は、処理部１０による処理に必要な各種データを格納する。当該各種データとしては、例えば、ＨＤＬ記述２１，設計結果２２，シミュレーション結果２３，プログラム２４などが含まれてもよい。ＨＤＬ記述２１は、ＨＤＬで記述され、設計対象（δ遅延自動調整対象）の集積回路（検証モデル）を規定する。設計結果２２は、当該ＨＤＬ記述２１に基づいて得られた論理設計結果やクロック設計結果である。シミュレーション結果２３は、設計結果２２に基づき実行されたシミュレーションの結果に係る情報である。プログラム２４としては、処理部１０に実行させるＯＳ（Operating System）プログラムやアプリケーションプログラムが含まれてもよい。アプリケーションプログラムには、デジタルδ遅延自動調整ツール１１０を含む論理シミュレータ１１としての機能を実現するために処理部１０によって実行されるプログラムが含まれてもよい。記憶部２０としては、ＲＡＭ（Random Access Memory）やＨＤＤ（Hard Disk Drive）が用いられてもよいし、フラッシュメモリ等の半導体記憶装置（ＳＳＤ：Solid State Drive）が用いられてもよい。
【００４６】
処理装置１（処理部１０）に実行させるプログラム２４は、光ディスク，メモリ装置，メモリカード等の非一時的な可搬型記録媒体に記録されてもよい。可搬型記録媒体に格納されたプログラムは、例えば処理部１０からの制御により、記憶部２０にインストールされた後、実行可能になる。また、処理部１０が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００４７】
なお、光ディスクは、光の反射によって読み取り可能にデータを記録された可搬型の非一時的な記録媒体である。光ディスクとしては、ＤＶＤ（Digital Versatile Disc），ＤＶＤ−ＲＡＭ，ＣＤ−ＲＯＭ（Compact Disc Read Only Memory），ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等が挙げられる。メモリ装置は、機器接続インタフェース（図示略）との通信機能を搭載した非一時的な記録媒体、例えばＵＳＢ（Universal Serial Bus）メモリである。メモリカードは、メモリリーダライタ（図示略）を介し処理部１０に接続されてデータの書込／読出対象になる、カード型の非一時的な記録媒体である。
【００４８】
入力部３０は、例えば、キーボードおよびマウスであり、ユーザによって操作され、処理部１０に対する各種指示を行なう。なお、マウスに代え、タッチパネル，タブレット，タッチパッド，トラックボール等が用いられてもよい。
【００４９】
表示部４０は、例えば、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置等であり、上述したＨＤＬ記述２１，設計結果２２，シミュレーション結果２３を表示出力する。また、表示部４０とともに、上述したＨＤＬ記述２１，設計結果２２，シミュレーション結果２３を印刷出力する出力部（図示略）が備えられてもよい。
【００５０】
以上のようなハードウェア構成を有する処理装置１によって、図２および図３を参照しながら後述する本実施形態のデジタルδ遅延自動調整ツール（δ−adjuster）１１０としての機能を実現することができる。
【００５１】
〔３〕本実施形態の処理装置の機能構成
次に、図２および図３を参照しながら、本実施形態のデジタルδ遅延自動調整ツール１１０を有する処理装置１の機能構成について説明する。図２は、図１に示す論理シミュレータ１１におけるデジタルδ遅延自動調整ツール１１０の機能構成を示すブロック図である。図３は、図２に示すデジタルδ遅延自動調整ツール１１０の詳細な機能構成を示す図である。
【００５２】
図２に示すように、以下の実施形態では、同一のマスタクロック源（ＭＣＬＫ）２から分岐された三つのクロック系（クロック信号）３Ａ，３Ｂ，３Ｃに対しδ遅延の自動調整が行なわれる場合について説明する。三つのクロック系３Ａ，３Ｂ，Ｃについては、それぞれクロック系Ａ，Ｂ，Ｃもしくはクロック信号Ａ，Ｂ，ＣもしくはＭＣＬＫ_Ａ，ＭＣＬＫ_Ｂ，ＭＣＬＫ_Ｃと表記する場合がある。
【００５３】
ＭＣＬＫ２は、同期系回路を組む回路における主クロック源である。また、ＭＣＬＫ２は、それぞれ異なるδ遅延量を有する三つのＭＣＬＫ_Ａ，ＭＣＬＫ_Ｂ，ＭＣＬＫ_Ｃに分岐される。そして、三つのＭＣＬＫ_Ａ，ＭＣＬＫ_Ｂ，ＭＣＬＫ_Ｃは、本実施形態によるδ遅延の自動調整を行なうべく、本実施形態のデジタルδ遅延自動調整ツール１１０に集合させられ接続される。
【００５４】
分岐されたクロック系Ａ，Ｂ，Ｃは、それぞれ、同期動作を行なう複数のモジュールにクロック信号Ａ，Ｂ，Ｃを供給する。クロック系Ａ，Ｂ，Ｃの途中に分周器やセレクタや“Ｈ(High)”／“Ｌ(Low)”固定化などの論理が挿入されることで、各モジュールに接続されるクロック系Ａ，Ｂ，Ｃのδ遅延量には差異が生じる。本実施形態では、以下のように、三つのクロック信号Ａ，Ｂ，Ｃのうちの二つのクロック信号の全ての組合せについて、二つのクロック信号間のδ遅延量差分が算出される。本実施形態では、クロック系Ａ，Ｂ，Ｃには、それぞれ、δ遅延量８，１２，１５が発生している場合について説明するが、これらのδ遅延量の値は、設計者に一切見えていないものとする。
【００５５】
本実施形態において、処理部１０は、プログラム２４に含まれる所定のアプリケーションプログラムを実行することで、デジタルδ遅延自動調整ツール１１０としての機能、つまりδ遅延測定用信号代入部１１１，δ遅延検証部１１２，δ遅延挿入判定部１１３，δ遅延調整用信号代入部１１４としての機能を果たす。
【００５６】
δ遅延測定用信号代入部１１１及びδ遅延検証部１１２は、複数のクロック信号Ａ〜Ｃのうちの二つのクロック信号の全ての組合せについて、二つのクロック信号間のδ遅延量差分を算出する算出部の一例である。
【００５７】
δ遅延挿入判定部１１３は、前記全ての組合せについて算出されたδ遅延量差分に基づき、複数のクロック信号Ａ〜Ｃのうちδ遅延量が最も大きいクロック信号をベースクロック信号として選定する選定部の一例である。
【００５８】
また、δ遅延挿入判定部１１３は、複数のクロック信号のうちベースクロック信号以外のクロック信号のδ遅延量をベースクロック信号のδ遅延量（最大δ遅延量）に合わせるために挿入されるべきδ遅延量（δ遅延挿入量）を算出する機能も有する。つまり、δ遅延挿入判定部１１３は、最大δ遅延量とベースクロック信号以外の各クロック信号のδ遅延量との差分をδ遅延挿入量として取得する。
【００５９】
δ遅延調整用信号代入部１１４は、δ遅延挿入判定部１１３によって各クロック信号について算出されたδ遅延挿入量を、各クロック信号に対して挿入する。つまり、δ遅延調整用信号代入部１１４は、ベースクロック信号以外のクロック信号のδ遅延量を、ベースクロック信号のδ遅延量（最大デルタ遅延量）に合わせるように調整する調整部の一例である。
【００６０】
なお、デジタルδ遅延自動調整ツール１１０は論理回路上に組み込まれるが、物理設計においてはδ遅延の概念が無い。このため、δ遅延は、物理設計において無視・消去され、論理回路の実装（implement）に対し反映されることも影響を与えることもない。
【００６１】
次に、図３を参照しながら、上述したδ遅延測定用信号代入部１１１，δ遅延検証部１１２，δ遅延挿入判定部１１３，δ遅延調整用信号代入部１１４としての機能について、より詳細に説明する。
【００６２】
δ遅延測定用信号代入部１１１は、δ遅延加算部１１１Ａ，１１１Ｂ，１１１Ｃを有する。δ遅延加算部１１１Ａ，１１１Ｂ，１１１Ｃは、後述する比較器１２５の比較結果が不一致である場合、それぞれ、クロック信号Ａ，Ｂ，Ｃに対し信号代入を一回実行することでδ遅延量を１挿入加算する。なお、クロック信号Ａ〜Ｃが最初にδ遅延加算部１１１Ａ〜１１１Ｃに外部から入力された際には、δ遅延加算部１１１Ａ〜１１１Ｃによるδ遅延量の挿入処理は実行されない（図６の「加算したδ遅延量０」の項参照）。
【００６３】
δ遅延検証部１１２は、同一周期で且つ同期関係にある異なる複数のクロック系Ａ〜Ｃ間のデータインタフェースにおけるδ遅延量の差分を検証する。このため、δ遅延検証部１１２は、複数のクロック信号Ａ〜Ｃのうちの二つのクロック信号の全ての組合せについて二つのクロック信号間のδ遅延量差分を測定・算出すべく、６種類のデータインタフェースチェック部１１２ＡＢ，１１２ＢＡ，１１２ＡＣ，１１２ＣＡ，１１２ＢＣ，１１２ＣＢを有する。
【００６４】
データインタフェースチェック部１１２ＡＢは、二つのクロック信号Ａ，Ｂの一方である測定側クロック信号Ａから、二つのクロック信号Ａ，Ｂの他方である被測定側クロック信号Ｂへのデータインタフェースチェック（図６のＡ to Ｂ参照）を行なう。つまり、データインタフェースチェック部１１２ＡＢは、測定側クロック信号Ａに対し被測定側クロック信号Ｂがどれだけ遅延しているかを示す、Ａに対するＢのδ遅延量差分を測定算出する。
【００６５】
同様に、データインタフェースチェック部１１２ＢＡは、二つのクロック信号Ｂ，Ａの一方である測定側クロック信号Ｂから、二つのクロック信号Ｂ，Ａの他方である被測定側クロック信号Ａへのデータインタフェースチェック（図６のＢ to Ａ参照）を行なう。つまり、データインタフェースチェック部１１２ＢＡは、測定側クロック信号Ｂに対し被測定側クロック信号Ａがどれだけ遅延しているかを示す、Ｂに対するＡのδ遅延量差分を測定算出する。
【００６６】
データインタフェースチェック部１１２ＡＣは、二つのクロック信号Ａ，Ｃの一方である測定側クロック信号Ａから、二つのクロック信号Ａ，Ｃの他方である被測定側クロック信号Ｃへのデータインタフェースチェック（図６のＡ to Ｃ参照）を行なう。つまり、データインタフェースチェック部１１２ＡＣは、測定側クロック信号Ａに対し被測定側クロック信号Ｃがどれだけ遅延しているかを示す、Ａに対するＣのδ遅延量差分を測定算出する。
【００６７】
データインタフェースチェック部１１２ＣＡは、二つのクロック信号Ｃ，Ａの一方である測定側クロック信号Ｃから、二つのクロック信号Ｃ，Ａの他方である被測定側クロック信号Ａへのデータインタフェースチェックを行なう（図６のＣ to Ａ参照）。つまり、データインタフェースチェック部１１２ＣＡは、測定側クロック信号Ｃに対し被測定側クロック信号Ａがどれだけ遅延しているかを示す、Ｃに対するＡのδ遅延量差分を測定算出する。
【００６８】
データインタフェースチェック部１１２ＢＣは、二つのクロック信号Ｂ，Ｃの一方である測定側クロック信号Ｂから、二つのクロック信号Ｂ，Ｃの他方である被測定側クロック信号Ｃへのデータインタフェースチェックを行なう（図６のＢ to Ｃ参照）。つまり、データインタフェースチェック部１１２ＢＣは、測定側クロック信号Ｂに対し被測定側クロック信号Ｃがどれだけ遅延しているかを示す、Ｂに対するＣのδ遅延量差分を測定算出する。
【００６９】
データインタフェースチェック部１１２ＣＢは、二つのクロック信号Ｃ，Ｂの一方である測定側クロック信号Ｃから、二つのクロック信号Ｃ，Ｂの他方である被測定側クロック信号Ｂへのデータインタフェースチェックを行なう（図６のＣ to Ｂ参照）。つまり、データインタフェースチェック部１１２ＣＢは、測定側クロック信号Ｃに対し被測定側クロック信号Ｂがどれだけ遅延しているかを示す、Ｃに対するＢのδ遅延量差分を測定算出する。
【００７０】
データインタフェースチェック部１１２ＡＢ，１１２ＢＡ，１１２ＡＣ，１１２ＣＡ，１１２ＢＣ，１１２ＣＢのそれぞれは、分周器１２１，実時間遅延付与部１２２，第１ＦＦ１２３，第２ＦＦ１２４，比較器１２５，第３ＦＦ１２６を有する。ここでは、データインタフェースチェック部１１２ＡＢの詳細な構成について説明するが、他のデータインタフェースチェック部１１２ＢＡ，１１２ＡＣ，１１２ＣＡ，１１２ＢＣ，１１２ＣＢもデータインタフェースチェック部１１２ＡＢと同様に構成される。
【００７１】
データインタフェースチェック部１１２ＡＢは、内部ＰＰＧ（後述する分周器１２１）にて検証パターンを生成し、トランスポート遅延を付加したデータパスと、スルーパスとの二つの仮想データインタフェースを用意し、これら二つのパスの一致性を検証する。なお、ＰＰＧは、Pulse Pattern Generatorの略記である。二つのパスをそれぞれ経由する二つのデータが不一致である場合、二つのクロック系Ａ，Ｂのδ遅延量の差分が不一致の要因であるので、δ遅延量測定用信号代入部１１１のδ遅延加算部１１１Ａに対するフィードバックが行なわれる。これに伴い、測定側クロック信号Ａ（ＰＰＧクロック）に対しδ遅延付き信号代入が一回行なわれ、信号代入の実行回数（δ遅延量）が１加算される。データインタフェースチェック部１１２ＡＢは、以上のような処理を、二つのパスをそれぞれ経由する二つのデータが一致するまで繰り返し実行することで、例えば図６を参照しながら後述するような検証結果を得ることができる。
【００７２】
分周器（ＰＰＧ）１２１は、測定側クロック信号Ａを二分周する。分周器１２１によって二分周された測定側クロック信号Ａは、図３に符号（ａ）及び（ｃ）で示すように、二つに分岐される。図３において、信号（ａ）の通過するパスが上記データパスに相当し、信号（ｂ）の通過するパスが上記スルーパスに相当する。
【００７３】
実時間遅延付与部１２２は、二分岐された測定側クロック信号Ａの一方、つまりデータパスを通過する信号（ａ）に、任意の実時間遅延量（ここでは例えば１ps(ピコ秒)）を挿入付与する。ここで、１psの実時間遅延（トランスポート遅延）を挿入するのは、データパス上の第１ＦＦ１２３を、被測定側クロック信号Ｂのδ遅延量に影響を受けることなくシフト動作させるためである。そして、実時間遅延付与部１２２で実時間遅延を付与された信号（ａ）は、正解値（ＦＦ１２３の出力（ｂ）参照）として、スルーパスを通過する信号（ＦＦ１２４の出力（ｄ）参照）と比較される。
【００７４】
第１ＦＦ１２３は、測定側クロック信号Ａから生成され実時間遅延１psを付与された信号（ａ）を、データとして入力されるとともに、被測定側クロック信号Ｂをクロックとして入力される。これに伴って、第１ＦＦ１２３は、被測定側クロック信号Ｂのタイミングで、データパスを通過した信号（ａ）を上記正解値（ｂ）として出力する。
【００７５】
第２ＦＦ１２４は、測定側クロック信号Ａから生成され実時間遅延を付与されていない信号（ｃ）を、データとして入力されるとともに、被測定側クロック信号Ｂをクロックとして入力される。これに伴って、第２ＦＦ１２４は、被測定側クロック信号Ｂのタイミングで、スルーパスを通過した信号（ｃ）を信号（ｄ）として出力する。
【００７６】
比較器１２５は、第１ＦＦ１２３からの出力（ｂ）と第２ＦＦ１２４からの出力（ｄ）とを入力されて比較する。比較器１２５は、出力（ｂ）と出力（ｄ）とが不一致の場合、例えば、ＮＧを示す“０”を出力する一方、出力（ｂ）と出力（ｄ）とが一致する場合、例えば、ＯＫを示す“１”を出力する。
【００７７】
第３ＦＦ１２６は、比較器１２５からの出力をデータとして入力されるとともに、被測定側クロック信号Ｂをクロックとして入力される。これに伴って、第３ＦＦ１２６は、被測定側クロック信号Ｂのタイミングで、比較器１２５による比較結果を検証結果（ｅ）としてδ遅延測定用信号代入部１１１及びδ遅延挿入判定部１１３へ出力する。
【００７８】
そして、δ遅延挿入判定部１１３は、δ遅延検証部１１２によって得られた検証結果（図６参照）を参照することで、三つのクロック信号Ａ〜Ｃのうちの二つのクロック信号の全ての組合せについてδ遅延量差分を認識することができる。つまり、６種類の組合せのそれぞれについて、二つのデータ（ｂ）と（ｄ）とが一致した時点でのδ遅延付き信号代入の実行回数が、当該組合せの二つのクロック信号間のδ遅延量差分として算出される。このようにして、三つのクロック信号Ａ〜Ｃのうちの二つのクロック信号の６種類の組合せについて、δ遅延量の差分が測定されることになる。δ遅延挿入判定部１１３は、６種類のδ遅延量差分に基づき、三つのクロック信号Ａ〜Ｃのうちδ遅延量が最も大きいクロック信号をベースクロック信号として選定する。さらに、δ遅延挿入判定部１１３は、上述したように、最大δ遅延量とベースクロック信号以外の各クロック信号のδ遅延量との差分をδ遅延挿入量として取得する。
【００７９】
δ遅延調整用信号代入部１１４は、δ遅延挿入部１１４Ａ，１１４Ｂ，１１４Ｃを有する。δ遅延挿入部１１４Ａ，１１４Ｂ，１１４Ｃは、δ遅延挿入判定部１１３で取得されたδ遅延挿入量を、それぞれクロック信号Ａ，Ｂ，Ｃに対して挿入する。これにより、ベースクロック信号以外のクロック信号のδ遅延量が、ベースクロック信号のδ遅延量（最大デルタ遅延量）に合わせるように調整される。
【００８０】
〔４〕本実施形態の処理装置の動作
次に、図４〜図６を参照しながら、本実施形態の処理装置１の動作について説明する。
まず、図４に示すフローチャート（ステップＳ１〜Ｓ５）に従って、図２および図３に示すデジタルδ遅延自動調整ツール１１０の動作概要について説明する。
【００８１】
図３に示す例では、ＭＣＬＫ２から分岐された三つのＭＣＬＫ_Ａ，ＭＣＬＫ_Ｂ，ＭＣＬＫ_Ｃつまり同一周期で且つ同期関係にある三つのクロック信号Ａ〜Ｃが抽出され、本実施形態によるδ遅延の自動調整を行なうべくデジタルδ遅延自動調整ツール１１０に入力される（ステップＳ１）。
【００８２】
この後、６種類のデータインタフェースチェック部１１２ＡＢ，１１２ＢＡ，１１２ＡＣ，１１２ＣＡ，１１２ＢＣ，１１２ＣＢにおいて、６種類の組合せの二つのクロック信号間のδ遅延量差分が、信号代入の実行回数として、それぞれ検証算出される（ステップＳ２）。
【００８３】
ここでは、クロック信号Ｂに対するクロック信号Ａのδ遅延量差分と、クロック信号Ａに対するクロック信号Ｂのδ遅延量差分とが検証算出される。また、クロック信号Ｃに対するクロック信号Ａのδ遅延量差分と、クロック信号Ａに対するクロック信号Ｃのδ遅延量差分とが検証算出される。さらに、クロック信号Ｃに対するクロック信号Ｂのδ遅延量差分と、クロック信号Ｂに対するクロック信号Ｃのδ遅延量差分とが検証算出される。
【００８４】
そして、δ遅延挿入判定部１１３においては、δ遅延検証部１１２によって得られた検証結果（図６参照）が参照され、三つのクロック信号Ａ〜Ｃのうちの二つのクロック信号の全ての組合せについてδ遅延量差分が認識される。認識された６種類のδ遅延量差分に基づき、δ遅延挿入判定部１１３において、三つのクロック信号Ａ〜Ｃの中から、最大δ遅延量のクロック信号（ベースクロック信号）が選定される（ステップＳ３）。
【００８５】
ベースクロック信号が選定されると、δ遅延挿入判定部１１３においては、ベースクロック信号の最大δ遅延量とベースクロック信号以外の各クロック信号のδ遅延量との差分が、δ遅延挿入量として算出取得される（ステップＳ４）。このとき、ベースクロック信号に対するδ遅延挿入量としては０が取得され、ベースクロック信号以外の一または二のクロック信号に対するδ遅延挿入量としては１以上の整数値が取得される。
【００８６】
このように取得された複数のクロック信号に対するδ遅延挿入量は、それぞれ、対応するδ遅延挿入部１１４Ａ，１１４Ｂ，１１４Ｃに通知される。δ遅延挿入部１１４Ａ，１１４Ｂ，１１４Ｃにおいては、ベースクロック信号以外のクロック信号に対し、通知されたδ遅延挿入量が、信号代入処理によって挿入される。これにより、ベースクロック信号以外のクロック信号のδ遅延量が、ベースクロック信号のδ遅延量（最大デルタ遅延量）に合わせるように調整され、全てのクロック信号のδ遅延量が最大δ遅延量に統一される（ステップＳ５）。
【００８７】
ついで、図３，図５および図６を参照しながら、図３に示すデジタルδ遅延自動調整ツール１１０の動作、つまり図４のステップＳ２〜Ｓ４における処理について、より詳細に説明する。なお、図５は、図３に示すデジタルδ遅延自動調整ツール１１０の動作、特にデータインタフェースチェック部１１２ＡＢの動作を説明するタイミングチャートである。図６は、図３に示すデジタルδ遅延自動調整ツール１１０におけるδ遅延検証部１１２によって得られる検証結果の一例を示す図である。ここでも、前述した通り、クロック系Ａ，Ｂ，Ｃには、それぞれ、δ遅延量８，１２，１５が発生している場合について説明するが、これらのδ遅延量の値は、設計者に一切見えていない。
【００８８】
図５に示すタイミングチャートでは、クロック信号Ａからクロック信号へのデータインタフェースチェック動作、つまり、データインタフェースチェック部１１２ＡＢによる、クロック信号Ａに対するクロック信号Ｂのδ遅延量差分の検証測定動作が具体的に示されている。なお、図５において符号（ａ）〜（ｅ）を付した信号は、それぞれ、図３で説明した信号（ａ）〜（ｅ）に対応している。クロック信号Ａに対するクロック信号Ｂのδ遅延量差分の検証測定動作は、以下に説明する手順（ｉ）〜（viii）に従って実行される。
【００８９】
（ｉ）データインタフェースチェック部１１２ＡＢの処理対象である二つのクロック信号Ａ，Ｂは、測定側クロック信号Ａと被測定側クロック信号Ｂとに分けられる。
【００９０】
（ii）測定側クロック信号Ａは、分周器１２１によって二分周されてから、上述したデータパスおよびスルーパスに二分岐される。
【００９１】
（iii）データパスに分岐された測定側クロック信号Ａには、実時間遅延付与部１２２によって１ps秒の実時間遅延が挿入される。１ps秒の実時間遅延を挿入された信号は、後段の第１ＦＦ１２３にデータとして入力される（図３および図５の符号（ａ）参照）。
【００９２】
（iv）一方、スルーパスに分岐された測定側クロック信号Ａは、実時間遅延を付与されることなくそのまま、後段の第２ＦＦ１２４にデータとして入力される（図３の符号（ｃ）参照）。
【００９３】
（ｖ）ＦＦ１２３，１２４に被測定側クロック信号Ｂをクロックとして入力することでＦＦ１２３，１２４からそれぞれ信号（ｂ），（ｄ）（二つのデータ）が出力され、これらの信号（ｂ）と（ｄ）とが比較器１２５によって比較され一致するか否か判断される。比較器１２５による比較結果は、第３ＦＦ１２６経由で、被測定側クロック信号Ｂのタイミングで、検証結果（ｅ）（図３および図５参照）としてδ遅延測定用信号代入部１１１及びδ遅延挿入判定部１１３へ出力される。
【００９４】
（vi）比較結果が一致（ＯＫ）である場合、δ遅延量差分の測定は直ちに完了する。一方、比較結果が不一致（ＮＧ）である場合、二つのクロック信号Ａ，Ｂのδ遅延量の差分が不一致の要因であるので、測定側クロック信号Ａに対しδ遅延付き信号代入が一回実行され、信号代入の実行回数が１加算されδ遅延量が１増加される。
【００９５】
（vii）以上の手順（ii）〜（vi）の処理は、比較器１２５による比較結果が一致するまで、つまり二つのパスをそれぞれ経由する二つの信号（ｂ）と（ｄ）とが一致するまで繰り返し実行される。
【００９６】
（viii）そして、比較器１２５による比較結果が一致した時点、つまり二つのパスをそれぞれ経由する二つの信号（ｂ）と（ｄ）とが一致した時点での信号代入の実行回数が、クロック信号Ａに対するクロック信号Ｂのδ遅延量差分として検証算出され保存される。なお、δ遅延加算部１１１Ａによる信号代入処理の実行回数の計数は、例えば、データインタフェースチェック部１１２ＡＢまたはδ遅延挿入判定部１１３によって実行されてよい。
【００９７】
図５に示す例では、初回の手順（ｖ）において、非測定側クロック信号Ｂが立ち上がるタイミングＴＢで、信号（ａ）と（ｃ）の「デルタ遅延＋０の場合」の信号とがそれぞれ信号（ｂ），（ｄ）として比較される。このとき、信号（ｂ），（ｄ）はそれぞれＡ，Ｂに対応するため、比較結果は不一致となる（（ｄ）および（ｅ）の「デルタ遅延＋３以下の場合」参照）。これに伴い、測定側クロック信号Ａに対しδ遅延付き信号代入が一回実行される。
【００９８】
ついで、二回目の手順（ｖ）において、非測定側クロック信号Ｂが立ち上がるタイミングＴＢで、信号（ａ）と（ｃ）の「デルタ遅延＋１の場合」の信号とがそれぞれ信号（ｂ），（ｄ）として比較される。このときも、信号（ｂ），（ｄ）はそれぞれＡ，Ｂに対応するため、比較結果は不一致となる（（ｄ）および（ｅ）の「デルタ遅延＋３以下の場合」参照）。これに伴い、測定側クロック信号Ａに対しδ遅延付き信号代入が一回実行される。
【００９９】
以下同様にして四回目の手順（ｖ）が行なわれた後、五回目の手順（ｖ）においては、非測定側クロック信号Ｂが立ち上がるタイミングＴＢで、信号（ａ）と（ｃ）の「デルタ遅延＋４の場合」の信号とがそれぞれ信号（ｂ），（ｄ）として比較される。このとき、信号（ｂ），（ｄ）はいずれもＡに対応するため、比較結果は一致となる（（ｄ）および（ｅ）の「デルタ遅延＋４以上の場合」参照）。
【０１００】
これにより、クロック信号Ａに対するクロック信号Ｂのδ遅延量差分４が、δ遅延検証部１１２のチェック部１１２ＡＢによる検証結果として得られる（図６のＸ１参照）。同様にして、クロック信号Ａに対するクロック信号Ｃのδ遅延量差分７が、δ遅延検証部１１２のチェック部１１２ＡＣによる検証結果として得られる（図６のＸ２参照）。また、クロック信号Ｂに対するクロック信号Ｃのδ遅延量差分３が、δ遅延検証部１１２のチェック部１１２ＢＣによる検証結果として得られる（図６のＸ３参照）。
【０１０１】
なお、クロック信号Ａはクロック信号Ｂに対して進んでいるため、クロック信号Ｂに対するクロック信号Ａのδ遅延量差分は負の値（マイナス差分）となり、比較結果は全て一致となる（図６の「Ｂ to Ａ」参照）。同様に、クロック信号Ａはクロック信号Ｃに対して進んでいるため、クロック信号Ｃに対するクロック信号Ａのδ遅延量差分は負の値（マイナス差分）となり、比較結果は全て一致となる（図６の「Ｃ to Ａ」参照）。また、クロック信号Ｂはクロック信号Ｃに対して進んでいるため、クロック信号Ｃに対するクロック信号Ｂのδ遅延量差分は負の値（マイナス差分）となり、比較結果は全て一致となる（図６の「Ｃ to Ｂ」参照）。
【０１０２】
図６に示すような検証結果に基づき、クロック信号Ｂはクロック信号Ａに対しδ遅延量４だけ遅延し、クロック信号Ｃはクロック信号Ａに対しδ遅延量７だけ遅延し、クロック信号Ｃはクロック信号Ｂに対しδ遅延量３だけ遅延していることが認識される。したがって、δ遅延挿入判定部１１３において、三つのクロック信号Ａ〜Ｃのうちクロック信号Ｃのδ遅延量が最も大きく、当該クロック信号Ｃがベースクロック信号として選定される。
【０１０３】
そして、δ遅延挿入判定部１１３において、最大δ遅延量とベースクロック信号Ｃ以外の各クロック信号Ａ，Ｂのδ遅延量との差分７，３が、δ遅延挿入量として取得され、それぞれδ遅延挿入部１１４Ａ，１１４Ｂに通知される。これにより、δ遅延挿入部１１４Ａ，１１４Ｂにおいて、クロック信号Ａ，Ｂのそれぞれに対し、７回，３回の信号代入処理を行なうことで、δ遅延挿入量７，３が挿入される。したがって、ベースクロック信号Ｃ以外のクロック信号Ａ，Ｂのδ遅延量が、ベースクロック信号Ｃのδ遅延量（最大デルタ遅延量）１５に合わせるように調整され、全てのクロック信号Ａ〜Ｃのδ遅延量が最大δ遅延量１５に統一される。
【０１０４】
〔５〕本実施形態の効果
本実施形態の処理装置１によれば、δ遅延自動調整仮想回路（デジタルδ遅延自動調整ツール１１０）を埋め込むことで、δ遅延を考慮した設計作業（各回路のδ遅延量の測定と遅延量調整）を自動化することができる。したがって、複数の同期系クロック間において、設計者によるマニュアル操作で行なわれていた、δ遅延を考慮した設計作業（各回路のδ遅延量の測定と遅延量調整）を、不要にすることができる。これにより、δ遅延を考慮した設計工数が削減されるとともに、δ遅延による問題発生を防ぐことができる。
【０１０５】
例えば、本実施形態によれば、δ遅延対策に要する工数の９０〜９５％を削減することができ、当該遅延対策に要するコストも大幅に削減することができる。δ遅延対策に要する工数としては、例えば、回路設計，論理シミュレーション，ハードウエアシミュレーション（実機評価）に跨る作業工数が含まれる。
【０１０６】
特に、複数のクロック系間のδ遅延の調整を自動で行なうことが可能になるため、マニュアル操作に伴う誤操作が生じることがなくなる。つまり、論理シミュレーションを行なうＨＤＬ論理回路設計（論理設計）や開発において、論理設計段階にデジタルδ遅延自動調整ツール１１０を回路に組み込むことで、論理シミュレーション実行時に設計者が考慮しなければならないデジタルδ遅延を自動で調整することができる。したがって、論理シミュレーション結果と実機評価結果との間で動作不一致が生じるのを確実に抑止することができる。
【０１０７】
また、ブラックボックス，グレイボックスなどを含む回路を経由するクロック系について、絶対遅延量を測定算出するのではなく、相対的なクロック系間のδ遅延量差分が測定算出される。そして、δ遅延量差分に基づき最大δ遅延量のベースクロック信号が選定され、選定されたベースクロック信号以外の各クロック系におけるδ遅延量が最大δ遅延量になるようにδ遅延自動調整が行なわれる。このため、ブラックボックスやグレイボックスとなっている回路が含まれていても、δ遅延量差分に基づきδ遅延の自動調整が可能になり、回路設計において、作業効率の大幅な向上、工数やコストの大幅な削減を実現することができる。
【０１０８】
〔６〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
【０１０９】
上述した実施形態では、マスタクロック源３を三つのクロック系Ａ，Ｂ，Ｃに分岐しクロック系Ａ，Ｂ、Ｃのそれぞれにおいてδ遅延量８，１２，１５が発生している場合について説明したが、本発明は、これらの数や数値に限定されるものではない。
【０１１０】
〔７〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
【０１１１】
（付記１）
同一周期で且つ同期関係にある複数のクロック信号によって動作する集積回路を処理対象として論理検証を行なう処理部を有する処理装置であって、
前記処理部は、
前記複数のクロック信号のうちデルタ遅延量が最も大きいクロック信号をベースクロック信号として選定し、
前記複数のクロック信号のうち前記ベースクロック信号以外のクロック信号のデルタ遅延量を、前記ベースクロック信号のデルタ遅延量に合わせるように調整することを特徴とする処理装置。
【０１１２】
（付記２）
前記処理部は、
前記複数のクロック信号のうちの二つのクロック信号の全ての組合せについて、前記二つのクロック信号間のデルタ遅延量差分を算出し、
前記全ての組合せについて算出した前記デルタ遅延量差分に基づき、前記ベースクロック信号を選定することを特徴とする、付記１に記載の処理装置。
【０１１３】
（付記３）
前記デルタ遅延量は、前記複数のクロック信号のそれぞれに対して行なわれたデルタ遅延付き信号代入の実行回数であることを特徴とする、付記２に記載の処理装置。
【０１１４】
（付記４）
前記処理部は、
前記二つのクロック信号の一方である測定側クロック信号を二分周してから二分岐し、二分岐した前記測定側クロック信号の一方を、任意の実時間遅延量を付与して第１フリップフロップにデータとして入力し、二分岐した前記測定側クロック信号の他方を第２フリップフロップにデータとして入力し、前記第１フリップフロップおよび前記第２フリップフロップに前記二つのクロック信号の他方である被測定側クロック信号をクロックとして入力することで前記第１フリップフロップおよび前記第２フリップフロップからそれぞれ出力される二つのデータの比較を行ない、前記比較の結果、前記二つのデータが一致しない場合、前記測定側クロック信号に対する信号代入デルタ遅延付きを一回実行する、処理を、前記比較の結果、前記二つのデータが一致するまで繰り返し実行し、
前記二つのデータが一致した時点でのデルタ遅延付き信号代入の実行回数を、前記二つのクロック信号間の前記デルタ遅延量差分として算出することを特徴とする、付記３に記載の処理装置。
【０１１５】
（付記５）
前記複数のクロック信号は、同一のクロック源から分岐されたものであることを特徴とする、付記１〜付記４のいずれか一項に記載の処理装置。
【０１１６】
（付記６）
論理設計対象の集積回路の動作をシミュレートする論理シミュレータであって、
前記集積回路において同一周期で且つ同期関係にある複数のクロック信号のうちデルタ遅延量が最も大きいクロック信号をベースクロック信号として選定する選定部と、
前記複数のクロック信号のうち前記ベースクロック信号以外のクロック信号のデルタ遅延量を、前記ベースクロック信号のデルタ遅延量に合わせるように調整する調整部と、を有することを特徴とする論理シミュレータ。
【０１１７】
（付記７）
前記複数のクロック信号のうちの二つのクロック信号の全ての組合せについて、前記二つのクロック信号間のデルタ遅延量差分を算出する算出部を有し、
前記選定部は、前記全ての組合せについて算出された前記デルタ遅延量差分に基づき、前記ベースクロック信号を選定することを特徴とする、付記６に記載の論理シミュレータ。
【０１１８】
（付記８）
前記デルタ遅延量は、前記複数のクロック信号のそれぞれに対して行なわれたデルタ遅延付き信号代入の実行回数であることを特徴とする、付記７に記載の論理シミュレータ。
【０１１９】
（付記９）
前記算出部は、
前記二つのクロック信号の一方である測定側クロック信号を二分周してから二分岐し、二分岐した前記測定側クロック信号の一方を、任意の実時間遅延量を付与して第１フリップフロップにデータとして入力し、二分岐した前記測定側クロック信号の他方を第２フリップフロップにデータとして入力し、前記第１フリップフロップおよび前記第２フリップフロップに前記二つのクロック信号の他方である被測定側クロック信号をクロックとして入力することで前記第１フリップフロップおよび前記第２フリップフロップからそれぞれ出力される二つのデータの比較を行ない、前記比較の結果、前記二つのデータが一致しない場合、前記測定側クロック信号に対するデルタ遅延付き信号代入を一回実行する、処理を、前記比較の結果、前記二つのデータが一致するまで繰り返し実行し、
前記二つのデータが一致した時点でのデルタ遅延付き信号代入の実行回数を、前記二つのクロック信号間の前記デルタ遅延量差分として算出することを特徴とする、付記８に記載の論理シミュレータ。
【０１２０】
（付記１０）
前記複数のクロック信号は、同一のクロック源から分岐されたものであることを特徴とする、付記６〜付記９のいずれか一項に記載の論理シミュレータ。
【０１２１】
（付記１１）
集積回路の設計検証方法であって、
前記集積回路において同一周期で且つ同期関係にある複数のクロック信号のうちデルタ遅延量が最も大きいクロック信号をベースクロック信号として選定し、
前記複数のクロック信号のうち前記ベースクロック信号以外のクロック信号のデルタ遅延量を、前記ベースクロック信号のデルタ遅延量に合わせるように調整することを特徴とする設計検証方法。
【０１２２】
（付記１２）
前記複数のクロック信号のうちの二つのクロック信号の全ての組合せについて、前記二つのクロック信号間のデルタ遅延量差分を算出し、
前記全ての組合せについて算出した前記デルタ遅延量差分に基づき、前記ベースクロック信号を選定することを特徴とする、付記１１に記載の設計検証方法。
【０１２３】
（付記１３）
前記デルタ遅延量は、前記複数のクロック信号のそれぞれに対して行なわれたデルタ遅延付き信号代入の実行回数であることを特徴とする、付記１２に記載の設計検証方法。
【０１２４】
（付記１４）
前記二つのクロック信号の一方である測定側クロック信号を二分周してから二分岐し、二分岐した前記測定側クロック信号の一方を、任意の実時間遅延量を付与して第１フリップフロップにデータとして入力し、二分岐した前記測定側クロック信号の他方を第２フリップフロップにデータとして入力し、前記第１フリップフロップおよび前記第２フリップフロップに前記二つのクロック信号の他方である被測定側クロック信号をクロックとして入力することで前記第１フリップフロップおよび前記第２フリップフロップからそれぞれ出力される二つのデータの比較を行ない、前記比較の結果、前記二つのデータが一致しない場合、前記測定側クロック信号に対するデルタ遅延付き信号代入を一回実行する、処理を、前記比較の結果、前記二つのデータが一致するまで繰り返し実行し、
前記二つのデータが一致した時点でのデルタ遅延付き信号代入の実行回数を、前記二つのクロック信号間の前記デルタ遅延量差分として算出することを特徴とする、付記１３に記載の設計検証方法。
【０１２５】
（付記１５）
前記複数のクロック信号は、同一のクロック源から分岐されたものであることを特徴とする、付記１１〜付記１４のいずれか一項に記載の設計検証方法。
【符号の説明】
【０１２６】
１    処理装置
２    マスタクロック源（ＭＣＬＫ）
３Ａ    クロック系Ａ（ＭＣＬＫ_Ａ）
３Ｂ    クロック系Ｂ（ＭＣＬＫ_Ｂ）
３Ｃ    クロック系Ｃ（ＭＣＬＫ_Ｃ）
１０    処理部
１１    論理シミュレータ
１１０    デジタルδ遅延自動調整ツール（δ−adjuster）
１１１    δ遅延測定用信号代入部（算出部）
１１１Ａ，１１１Ｂ，１１１Ｃ    δ遅延加算部
１１２    δ遅延検証部（算出部）
１１２ＡＢ，１１２ＢＡ，１１２ＡＣ，１１２ＣＡ，１１２ＢＣ，１１２ＣＢ    データインタフェースチェック部
１１３    δ遅延挿入判定部（選定部）
１１４    δ遅延調整用信号代入部（調整部）
１１４Ａ，１１４Ｂ，１１４Ｃ    δ遅延挿入部
１２１    分周器（ＰＰＧ）
１２２    実時間遅延付与部
１２３    第１フリップフロップ（第１ＦＦ）
１２４    第２フリップフロップ（第２ＦＦ）
１２５    比較器
１２６    第３フリップフロップ（第３ＦＦ）
２０    記憶部
２１    ＨＤＬ記述
２２    設計結果
２３    シミュレーション結果
２４    プログラム
３０    入力部
４０    表示部
５０    バス
【図１】
2017146774.tif 000003
【図２】
2017146774.tif 000004
【図３】
2017146774.tif 000005
【図４】
2017146774.tif 000006
【図５】
2017146774.tif 000007
【図６】
2017146774.tif 000008
【図７】
2017146774.tif 000009
【図８】
2017146774.tif 000010
【図９】
2017146774.tif 000011
【図１０】
2017146774.tif 000012
【図１１】
2017146774.tif 000013
【図１２】
2017146774.tif 000014
【図１３】
2017146774.tif 000015