【文献】
HOWARD, Andy,スプリアスのない任意の周波数分解能を得るためのシグマ・デルタ型変調器を使用したPLLのシミュレーション [online],アジレント・テクノロジー株式会社,2002年,pp. 1 - 11,[検索日 2018.11.30],インターネット,URL,http://literature.cdn.keysight.com/litweb/pdf/5988-6045JA.pdf
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0013】
以下、発明を実施するための形態を、図面を参照しつつ説明する。
(第1の実施の形態)
図1は、第1の実施の形態の論理シミュレーション方法及び論理シミュレーション装置の一例を示す図である。
【0014】
本実施の形態の論理シミュレーション方法及び論理シミュレーション装置は、SSCGやFractional−N PLLといった分周比が変動するPLL回路の動作を再現するものである。
【0015】
論理シミュレーション装置1は、たとえば、コンピュータであり、プロセッサ2と記憶部3を有している。プロセッサ2は、記憶部3に記憶されているデータ及びプログラムに基づき、分周比が変動する分周回路を備えたPLL回路のシミュレーションモデル10の各機能を実現する。記憶部3は、プロセッサ2が実行するプログラムや、PLL回路の物理仕様など、論理シミュレーションに用いる各種データを記憶する。
【0016】
図1のシミュレーションモデル10には、位相差検出部11、ロック検出部12、周波数調整部13、平滑化処理部14、出力部15、分周部16が含まれている。このような各機能部は、たとえば、Verilogなどのハードウェア記述言語で記述されている。
【0017】
位相差検出部11は、PLL回路のフィードバッククロックと、所定の周波数をもつリファレンスクロックとの位相差を検出する。
ロック検出部12は、検出された位相差に基づき、PLL回路の出力クロックの周波数(以下出力周波数という)が目標とする周波数(以下目標周波数という)に対して所定の範囲内に収束しているか否かを判定する。
【0018】
周波数調整部13は、検出された位相差に基づいて、出力周波数の候補値を示す周波数情報を生成する。
平滑化処理部14は、生成された周波数情報を平滑化する。
【0019】
出力部15は、平滑化された周波数情報に基づき出力クロックを生成する。
分周部16は、生成された出力クロックを分周してフィードバッククロックを生成する。
【0020】
以下、上記のような論理シミュレーション装置1を用いた論理シミュレーション方法において、出力クロックを生成する際の処理の流れを、
図1を用いて説明する。なお、前述したようにシミュレーションモデル10の各機能は、プロセッサ2により実現されるため、以下では各処理の主体を、プロセッサ2として説明する。
【0021】
まず、プロセッサ2は、PLL回路のフィードバッククロックとリファレンスクロックとの位相差を検出する(ステップS1)。なお、リファレンスクロックの周波数は予め一定の値に定められている。
【0022】
そして、プロセッサ2は、検出した位相差に基づき、出力周波数の候補値を示す周波数情報を生成する(ステップS2)。
その後、プロセッサ2は、生成した周波数情報を平滑化する(ステップS3)。
図1には、ステップS2の処理で生成される周波数情報(周波数調整部13の出力)と、平滑化後の周波数情報(平滑化処理部14の出力)の一例が示されている。これらは、SSCGのシミュレーションモデルにおいて生成される周波数情報の例である。縦軸はSSCGの出力周波数を示し、横軸は時間を示している。
図1のように、平滑化前には、時間に対して急激な周波数変動がみられるが、平滑化後には、急激な周波数変動が抑えられている。
【0023】
平滑化処理の例については後述するが、たとえば、プロセッサ2は、過去の位相差の検出結果に基づいて生成した周波数情報を、記憶部3に保持しておく。そして、プロセッサ2は、連続するN(N≧2)回分の位相差の検出結果に基づいて生成した周波数情報であるN個の周波数値(候補値)を平均化することで、上記のような急激な周波数変動を抑えることができる。
【0024】
次に、プロセッサ2は、平滑化後の周波数情報に基づき出力クロックを生成する(ステップS4)。
以上のように、本実施の形態の論理シミュレーション方法及び論理シミュレーション装置では、フィードバッククロックとリファレンスクロックとの位相差に基づく周波数情報を平滑化することで、シミュレーション特有の急激な周波数変動を抑えられる。そのため、分周比が変動する分周回路を備えたPLL回路の実際の動作を精度よく再現できる。
【0025】
また、上記のようなシミュレーションモデル10は、周波数を整数逓倍するPLL回路のシミュレーションモデルを大きく変更するものではないため、論理シミュレーションにかかる工数の増大を少なくできる。
【0026】
(第2の実施の形態)
以下、第2の実施の形態の論理シミュレーション方法及び論理シミュレーション装置の一例を示す。
【0027】
図2は、第2の実施の形態の論理シミュレーション装置のハードウェア例を示す図である。
論理シミュレーション装置20は、たとえば、コンピュータであり、プロセッサ21によって装置全体が制御されている。プロセッサ21には、バス29を介してRAM(Random Access Memory)22と複数の周辺機器が接続されている。プロセッサ21は、マルチプロセッサであってもよい。プロセッサ21は、たとえばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ21は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
【0028】
RAM22は、論理シミュレーション装置20の主記憶装置として使用される。RAM22には、プロセッサ21に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM22には、プロセッサ21による処理に必要な各種データが格納される。
【0029】
バス29に接続されている周辺機器としては、HDD(Hard Disk Drive)23、グラフィック処理装置24、入力インタフェース25、光学ドライブ装置26、機器接続インタフェース27及びネットワークインタフェース28がある。
【0030】
HDD23は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。HDD23は、論理シミュレーション装置20の補助記憶装置として使用される。HDD23には、OSのプログラム、アプリケーションプログラム、及び各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【0031】
グラフィック処理装置24には、モニタ24aが接続されている。グラフィック処理装置24は、プロセッサ21からの命令にしたがって、画像をモニタ24aの画面に表示させる。モニタ24aとしては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
【0032】
入力インタフェース25には、キーボード25aとマウス25bとが接続されている。入力インタフェース25は、キーボード25aやマウス25bから送られてくる信号をプロセッサ21に送信する。なお、マウス25bは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0033】
光学ドライブ装置26は、レーザ光などを利用して、光ディスク26aに記録されたデータの読み取りを行う。光ディスク26aは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク26aには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
【0034】
機器接続インタフェース27は、論理シミュレーション装置20に周辺機器を接続するための通信インタフェースである。たとえば機器接続インタフェース27には、メモリ装置27aやメモリリーダライタ27bを接続することができる。メモリ装置27aは、機器接続インタフェース27との通信機能を搭載した記録媒体である。メモリリーダライタ27bは、メモリカード27cへのデータの書き込み、またはメモリカード27cからのデータの読み出しを行う装置である。メモリカード27cは、カード型の記録媒体である。
【0035】
ネットワークインタフェース28は、ネットワーク28aに接続されている。ネットワークインタフェース28は、ネットワーク28aを介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【0036】
以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお、
図1に示した第1の実施の形態の論理シミュレーション装置1も、
図2に示した論理シミュレーション装置20と同様のハードウェアにより実現することができる。
【0037】
論理シミュレーション装置20は、たとえばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。論理シミュレーション装置20に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、論理シミュレーション装置20に実行させるプログラムをHDD23に格納しておくことができる。プロセッサ21は、HDD23内のプログラムの少なくとも一部をRAM22にロードし、プログラムを実行する。また論理シミュレーション装置20に実行させるプログラムを、光ディスク26a、メモリ装置27a、メモリカード27cなどの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ21からの制御により、HDD23にインストールされた後、実行可能となる。またプロセッサ21が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【0038】
(論理シミュレーション装置の機能ブロック図)
図3は、論理シミュレーション装置の一例の機能ブロック図である。
論理シミュレーション装置20は、論理ライブラリ31、物理仕様検出部32、監視部33、警告出力部34、シミュレーション実行部35を有している。
【0039】
論理ライブラリ31には、検証対象のアナログ回路の論理動作の他に、アナログ回路の物理仕様が記述されている。論理ライブラリ31は、たとえば、
図2に示したHDD23に格納されている。
【0040】
物理仕様検出部32、監視部33、警告出力部34、シミュレーション実行部35は、たとえば、
図2に示したプロセッサ21が、HDD23に格納されているプログラムを実行することによって実現される。
【0041】
物理仕様検出部32は、論理ライブラリ31から検証対象のアナログ回路の物理仕様を検出する。検証対象のアナログ回路の物理仕様とは、PLL回路などのアナログ回路を起動する際に入力すべき信号の設定を示す起動シーケンスや、出力クロックやフィードバッククロックの周波数の許容範囲などである。
【0042】
本実施の形態の論理シミュレーション装置20では、分周比が整数逓倍の分周回路を備えたPLL回路のほか、SSCGやFractional−N PLLなど、分周比が変動する分周回路を備えたPLL回路の物理仕様についても検出される。
【0043】
図4、
図5は、SSCGの物理仕様の一例を示す図である。縦軸は周波数を示し、横軸は時間を示している。
SSCGには、目標周波数を上限として周波数を変動させるダウンスプレッドと、目標周波数を中心として周波数を変動させるセンタースプレッドがある。
図4には、ダウンスプレッドの場合の周波数の変動の様子が示されており、
図5には、センタースプレッドの場合の周波数の変動の様子が示されている。
【0044】
SSCGにおいて、たとえば、
図4、
図5に示すような変調周期や、変調幅が満たすべき値が、物理仕様となる。変調周期は、変調周波数によって決まり、変調幅は、目標周波数に対する変調率で決まる。
【0045】
なお、
図4、
図5ではSSCGの出力周波数の変動は三角波で表されているが、サイン波などであってもよい。
図3の説明に戻る。
【0046】
監視部33は、論理シミュレーション時の信号または設定が、上記の物理仕様を満たすか否かを監視する。論理シミュレーション時の信号または設定とは、たとえば、前述した起動シーケンスや各クロックなどである。
【0047】
警告出力部34は、論理シミュレーション時の信号または設定が物理仕様を満たさない場合、たとえば、
図2に示したモニタ24aに警告を表示する。
シミュレーション実行部35は、論理ライブラリ31の記述をもとに、アナログ回路の論理シミュレーションを実行する。
【0048】
以下、分周比が変動する分周回路を備えたPLL回路の論理シミュレーションを行う際のシミュレーション実行部35の一例を示す。
(シミュレーション実行部35の機能ブロック図)
図6は、シミュレーション実行部の一例の機能ブロック図である。シミュレーション実行部35の要素は、
図1に示した、シミュレーションモデル10の要素に対応しているものも含む。
【0049】
シミュレーション実行部35は、リファレンスクロック生成部40、PLL部41、分周部42を有している。
リファレンスクロック生成部40は、所定の周波数のリファレンスクロックを生成する。
【0050】
PLL部41は、リファレンスクロックと分周部42から供給されるフィードバッククロックに基づきPLL動作を行い、出力クロックと、リファレンスクロックとフィードバッククロックとの位相差が所定の範囲内であるか否かを示すロック信号を出力する。
【0051】
分周部42は、出力クロックの周波数を分周してフィードバッククロックを生成する。分周部42が用いる分周比は変動する。たとえば、SSCGの場合は、分周部42は、出力周波数を、
図4、
図5のように変動させるように分周比を変動する。
【0052】
PLL部41は、位相差検出部41a、ロック検出部41b、周波数調整部41c、平滑化処理部41d、出力部41eを有する。
位相差検出部41aは、上記のフィードバッククロックと、リファレンスクロックとの位相差を検出する。
【0053】
ロック検出部41bは、検出された位相差に基づき、出力周波数が目標周波数に対して、論理ライブラリ31に記述された所定の範囲内に収束しているか否かを判定し、判定結果に基づくロック信号を生成する。ロック信号は、監視部33に供給される。
【0054】
周波数調整部41cは、検出された位相差に基づいて、出力周波数の候補値を示す周波数情報を生成する。
平滑化処理部41dは、生成された周波数情報を平滑化する。平滑化処理部41dは、ローパスフィルタなどで実現が可能である。
【0055】
出力部41eは、平滑化された周波数情報に基づき出力クロックを生成する。出力クロックは、監視部33に供給される。
以下、平滑化処理部41dの例を説明する。
【0056】
(平滑化処理部41dの例)
図7は、平滑化処理部の一例を示す図である。
平滑化処理部41dは、N−1(N≧2)個の遅延部51a1,51a2,51a3,…,51aN−1及び加算部52a1,52a2,…,52aN−2,52aN−1と、除算部53を有している。
【0057】
遅延部51a1〜51aN−1は、直列に接続されている。遅延部51a1〜51aN−1のそれぞれは、フィードバッククロックとリファレンスクロックとの1回の位相比較の結果に基づき周波数調整部41cから周波数値(候補値)を出力する時間分、入力される周波数の値を保持してから出力する。そのため、周波数調整部41cから、フィードバッククロックとリファレンスクロックとの位相比較の結果に基づくある周波数値が出力されたとき、過去N−1回分の位相比較の結果に基づく周波数値が、遅延部51a1〜51aN−1から出力される。
【0058】
加算部52a1〜52aN−1は、直列に接続されている。加算部52a1は、周波数調整部41cから出力される周波数値に、遅延部51a1から出力される周波数値を加算する。加算部52a2〜52aN−1のそれぞれは、前段の加算部の出力値に、遅延部51a2〜51aN−1のうち対応するものから出力される周波数値を加算する。
【0059】
除算部53は、最後段の加算部52aN−1の出力値をNで割った値を、出力周波数として出力する。
このような平滑化処理部41dによれば、周波数調整部41cから出力される、最新の周波数値と、過去N−1回分の周波数値、すなわちN回分の周波数値の平均値が最新の出力周波数となる。
【0060】
図8は、SSCGにおける平滑化処理前後の出力周波数の時間変化の一例の様子を示す図である。縦軸は出力周波数を示し、横軸は時間を示している。破線は平滑化処理前の周波数の時間変化を示し、実線は平滑化処理後の周波数の時間変化を示している。
【0061】
図8に示すように、平滑化処理前の、短期間で発生する急激な周波数変動(シミュレーション特有の周波数変動)は、平滑化処理部41dによって平滑化され、緩やかな周波数変化は、遅延部51a1〜51aN−1による遅延を伴って出力周波数に反映される。
【0062】
図9は、Fractional−N PLLにおける平滑化処理前後の周波数の時間変化の一例の様子を示す図である。縦軸は出力周波数を示し、横軸は時間を示している。破線は平滑化処理前の周波数の時間変化を示し、実線は平滑化処理後の周波数の時間変化を示している。
【0063】
図9に示すように、平滑化処理前の、短期間で発生する急激な周波数変動(シミュレーション特有の周波数変動)は、平滑化処理部41dによって平滑化され、所望の出力周波数が得られている。
【0064】
ところで、
図6のシミュレーション実行部35のようなPLL回路のシミュレーションモデルは、周波数を整数逓倍するPLL回路(以下整数逓倍PLL回路という)のシミュレーションモデルからの変更も少ない。以下、比較例とし、整数逓倍PLL回路のシミュレーションモデルの一例を示す。
【0065】
(比較例)
図10は、整数逓倍PLL回路のシミュレーションモデルの一例を示す図である。
図6に示した要素と同じ要素については同一符号が付されている。
【0066】
整数逓倍PLL回路のシミュレーションモデル60におけるPLL部61では、
図6に示したPLL部41と異なり、周波数調整部41cが出力する周波数情報が、出力部41eに直接供給される。また、分周部62は、出力クロックの周波数を整数逓倍する。
【0067】
このようなシミュレーションモデル60のPLL部61を用い、分周部62を
図6に示した分周比が変動する分周部42とした場合、出力周波数は、たとえば、以下のようになる。
【0068】
図11は、平滑化処理部を有さないシミュレーションモデルを用いた場合のSSCGの出力周波数の一例の様子を示す図である。
また、
図12は、平滑化処理部を有さないシミュレーションモデルを用いた場合のFractional−N PLLの出力周波数の一例の様子を示す図である。
【0069】
縦軸は出力周波数[MHz]を示し、横軸は時間[ps]を示している。
なお、
図11の例において、目標周波数は1000MHz(リファレンスクロックの周波数の100逓倍)で、前述したセンタースプレッドで、出力周波数が変動している。変調率は5%(目標周波数に対して±2.5%)、変調周波数は9.8kHz(リファレンスクロックの周波数の1/1024)である。
【0070】
また、
図12では、10MHzのリファレンスクロックを100.5倍して1005MHzの出力周波数を得る例が示されている。
図11、
図12のいずれの場合も、短期間で発生する急激な周波数変動(シミュレーション特有の周波数変動)が多くみられる。たとえば、
図12の例では、出力周波数の全体の平均は1005MHz程度となるが、1005MHz−10MHzから、1005MHz+20MHzの範囲で出力周波数の急激な変動がみられる。
【0071】
大きな出力周波数の変動を抑制するため、リファレンスクロックとフィードバッククロックとの一回の位相比較によって変動させる周波数を小さくすることが考えられるが、その場合、PLL回路がロックするまでの時間が増大してしまう。
【0072】
これに対して、
図6のシミュレーション実行部35のようなシミュレーションモデルにおいて、平滑化処理部41dとして、
図7に示したものを適用することで、出力周波数は、たとえば以下のようになる。
【0073】
図13は、平滑化処理部を有するシミュレーションモデルを用いた場合のSSCGの出力周波数の一例の様子を示す図である。
また、
図14は、平滑化処理部を有するシミュレーションモデルを用いた場合のFractional−N PLLの出力周波数の一例の様子を示す図である。
【0074】
縦軸は出力周波数[MHz]を示し、横軸は時間[ps]を示している。
なお、入力条件は、平滑化処理部41dにおける前述のNを、N=128とした以外は、
図11、
図12に示した例と同じである。
【0075】
平滑化処理部41dを適用することで、
図13に示すように、短期間で発生する急激な周波数変動が、平滑化処理を行わない
図11の例と比較して、1/10以下程度に抑えられている。
【0076】
また、Fractional−N PLLに関しても、平滑化処理部41dを適用する場合は、平滑化処理を行わない
図12の例と比較して急激な周波数変動が抑えられている。
図14の例では、出力周波数の変動は、1005MHz±1MHzの範囲に収まっている。
【0077】
また、平滑化処理は、緩やかな周波数変動を出力周波数に伝えるものであるため、ロック時間の増大も抑制できる。
以上のように、平滑化処理を行うことで、シミュレーション特有の短期間での急激な周波数変動が抑えられ、分周比が変動する分周回路を備えた実際のPLL回路の回路動作を精度よく再現できるようになる。
【0078】
なお、シミュレーション実行部35は、整数逓倍PLL回路の論理シミュレーションを行う場合は、
図10に示すようなシミュレーションモデル60であってもよい。
ところで、平滑化処理部41dは、
図7に示したようなものに限定されない。以下、平滑化処理部41dの他の例を説明する。
【0079】
(平滑化処理部の他の例)
図15は、平滑化処理部の他の例を示す図である。
平滑化処理部41daは、加算部70、乗算部71、加算部72、レジスタ部73、乗算部74、加算部75を有している。
【0080】
加算部70は、周波数調整部41cから出力される周波数情報(位相比較結果に基づく周波数値)から、レジスタ部73の出力値を減算する。
乗算部71は、加算部70の出力値に係数αを乗ずる。
【0081】
加算部72は、乗算部71の出力値に、レジスタ部73の出力値を加算する。
レジスタ部73は、加算部72の出力値を、たとえば、トリガ信号による所定の周期で取得する。そして、レジスタ部73は、取得した加算部72の出力値を、その周期の時間分、出力する。なお、トリガ信号による上記の周期は、長くなると緩やかな周波数変動も抑制してしまうため、位相差検出部41aが位相比較を行う周期や、周波数調整部41cが周波数情報を出力する周期よりも短いことが望ましい。
【0082】
乗算部74は、レジスタ部73の出力値に係数ρを乗ずる。
加算部75は、乗算部71,74の出力値を加算して、平滑化後の周波数情報として出力する。
【0083】
なお、係数αは1より小さい値であり、係数ρは1以下の値であり、両者の関係は、α<ρである。これらの係数の値によって出力周波数の変動幅が決まる。
このような平滑化処理部41daにおいて、レジスタ部73には、初期値として、たとえば、目標周波数の値が保持されている。周波数調整部41cから、周波数情報として、ある周波数値が加算部70に供給されると、加算部70によって、その周波数値とレジスタ部73に保持されている周波数値(初期値は目標周波数の値)との差分がとられる。この差分に対して、乗算部71で係数αが乗ぜられることによって、差分は小さくなる。そのため、加算部75から出力される周波数値において、差分の影響は小さくなる。
【0084】
ただ、抑制された差分によって、レジスタ部73に保持されている周波数値が更新されていくので、緩やかな周波数変動は出力周波数に反映される。そのため、SSCGやFractional−N PLLの出力周波数の変動を再現できる。
【0085】
図16は、
図15に示した平滑化処理部を有するシミュレーションモデルを用いた場合のSSCGの出力周波数の一例の様子を示す図である。
また、
図17は、
図15に示した平滑化処理部を有するシミュレーションモデルを用いた場合のFractional−N PLLの出力周波数の一例の様子を示す図である。
【0086】
縦軸は出力周波数[MHz]を示し、横軸は時間[ps]を示している。
なお、入力条件は、
図15の平滑化処理部41daのα、ρをそれぞれ0.001、0.999とした他は、
図11、
図12に示した例と同じである。
【0087】
図15に示した平滑化処理部41daを適用することでも、
図11、
図12にみられたような短期間で発生する急激な周波数変動が抑えられている。
以下、
図3に示した論理シミュレーション装置20及び
図6に示したようなシミュレーション実行部35による論理シミュレーション方法の一例の流れをフローチャートで説明する。なお、論理シミュレーション装置20及びシミュレーション実行部35は、
図2に示したプロセッサ21による制御で実現されるため、以下では処理の主体をプロセッサ21として説明する。
【0088】
(論理シミュレーション方法の流れ)
図18、
図19は、論理シミュレーションの一例の流れを示すフローチャートである。
プロセッサ21は、HDD23から論理シミュレーションのためのプログラムを読み出し実行する。これにより、論理シミュレーションが開始される。
図18の例では、まず、プロセッサ21は、たとえば、HDD23に格納されている論理ライブラリ31を読み出し、論理ライブラリ31に記述されている検証対象のアナログ回路の物理仕様を検出する(ステップS10)。
【0089】
プロセッサ21は、アナログ回路の論理シミュレーション中に、たとえば、アナログ回路の入出力信号を監視し、まず、アナログ回路の起動時の起動シーケンスが、物理仕様を満たすか否かを判定する(ステップS11)。PLL回路において、たとえば、リセットの解除とフィードバッククロックの設定の順序や、1/n分周回路のリセットの解除とPLLブロックのリセットの解除の順番などは、電気的な物理仕様で決まっている場合がある。この順番を守らないと、実際の物理動作時に不具合を発生する可能性がある。そのため、論理ライブラリ31には、予め物理仕様で定められた起動シーケンスが記述されており、プロセッサ21は、論理シミュレーション時に、たとえば、ユーザにより設定された起動シーケンスが物理仕様で定められたものにしたがっているか否かを判定する。
【0090】
プロセッサ21は、起動シーケンスが物理仕様で定められているものにしたがっていないと判定した場合、たとえば、グラフィック処理装置24を制御して、モニタ24aに警告を表示させる(ステップS23)。
【0091】
プロセッサ21は、起動シーケンスが物理仕様で定められているものにしたがっていると判定した場合、たとえば、ユーザによって設定されたリファレンスクロックが物理仕様を満たすか否かを判定する(ステップS12)。
【0092】
PLL回路としての、性能、機能を実現させるために、リファレンスクロックの周波数などは、電気的な物理仕様で制限されている。この仕様を守らない場合、PLL回路としての本来の位相調整機能、逓倍機能を実現できなくなってしまう。よって、プロセッサ21は、リファレンスクロックを監視して、物理仕様を満たしているかを判定する。
【0093】
PLL回路の安定した動作を保証するためのリファレンスクロックの物理仕様として、最低入力可能周波数、最大入力可能周波数、H(High)レベルのパルス及びL(Low)レベルのパルスの最小デューティ幅などがある。
【0094】
プロセッサ21は、リファレンスクロックが物理仕様を満たしていないと判定した場合、ステップS23の処理を行い、モニタ24aに警告を表示させる。
プロセッサ21は、リファレンスクロックが物理仕様を満たしていると判定した場合、PLL回路の出力クロックが物理仕様を満たすか否かを判定する(ステップS13)。
【0095】
PLL回路としての性能、機能を実現させるために、出力クロックの出力周波数は、電気的な物理仕様で制限されている。この仕様を守らない場合、PLL回路としての本来の位相調整機能、逓倍機能を実現できなくなってしまう。よって、プロセッサ21は、出力クロックを監視して、物理仕様を満たしているかを判定する。
【0096】
PLL回路の安定した動作を保証するための出力クロックの物理仕様として、最低出力可能周波数、最大出力可能周波数などがある。また、検証対象のPLL回路がSSCGの場合には、物理仕様として、前述した変調周期や変調幅などがある。
【0097】
プロセッサ21は、出力クロックが物理仕様を満たしていないと判定した場合、ステップS23の処理を行い、モニタ24aに警告を表示させる。
プロセッサ21は、出力クロックが物理仕様を満たしていると判定した場合、シミュレーション実行部35の分周部42の機能を実行し、所定の分周比でフィードバッククロックを生成する(ステップS14)。分周比が変動する分周回路を備えたPLL回路の論理シミュレーションを行う場合は、次回のフィードバッククロック生成時に用いる分周比を生成する(ステップS15)。
【0098】
その後、プロセッサ21は、フィードバッククロックが物理仕様を満たすか否かを判定する(ステップS16)。フィードバッククロックの物理仕様としては、最低入力可能周波数、最大入力可能周波数、最小デューティ幅、許容逓倍数設定範囲(最小逓倍数、最大逓倍数により規定される)などがある。
【0099】
プロセッサ21は、フィードバッククロックが物理仕様を満たしていないと判定した場合、ステップS23の処理を行い、モニタ24aに警告を表示させる。
プロセッサ21は、フィードバッククロックが物理仕様を満たしていると判定した場合、シミュレーション実行部35の位相差検出部41aの機能を実行し、リファレンスクロックとフィードバッククロックの位相差を検出する(ステップS17)。プロセッサ21は、位相差を検出すると、周波数調整部41cの機能を実行し、出力周波数の候補値を示す周波数情報を生成する(ステップS18)。そして、プロセッサ21は、平滑化処理部41d,41daの機能を実行し、生成した周波数情報に対して、前述したような平滑化処理を行う(ステップS19)。
【0100】
また、プロセッサ21は、位相差を検出すると、ロック検出部41bの機能を実行し、ロック検出処理を行う(ステップS20)。
ステップS19,S20の後、プロセッサ21は、出力部41eの機能を実行し、出力クロックを生成する(ステップS21)。また、プロセッサ21は、ステップS20の処理でロックを検出した場合には、位相差が所定の範囲内に収まった旨を示すロック信号を生成する(ステップS22)。プロセッサ21は、ステップS20の処理でロックを検出しなかった場合には、ロックしていない旨を示すロック信号を生成する。
【0101】
プロセッサ21は、ステップS22,S23の後、シミュレーション終了条件が成立しているか否かを判定する(ステップS24)。たとえば、プロセッサ21は、位相差が所定の範囲内に収まった旨を示すロック信号を生成した場合、または警告を表示させた場合には、シミュレーション終了条件が成立したと判定し、論理シミュレーションを終了する。シミュレーション終了条件が成立しないときは、ステップS12からの処理が繰り返される。
【0102】
なお、ステップS19の平滑化処理は、
図7に示したような平滑化処理部41dを用いるか、
図15に示したような平滑化処理部41daを用いるかで異なっている。
図20は、
図7に示した平滑化処理部を用いる場合の平滑化処理の一例の流れを示す図である。
【0103】
平滑化処理部41dを用いた平滑化処理では、プロセッサ21は、周波数調整部41cの機能により生成した周波数値を、たとえば、RAM22に連続してN−1回分保持させる(ステップS19a)。この処理は、
図5に示した平滑化処理部41dの遅延部51a1〜51aN−1の処理に相当する。
【0104】
そして、プロセッサ21は、新たに生成した周波数値と、保持されている過去N−1回分の周波数値と合わせたN回分の周波数値の平均値を算出する(ステップS19b)。この平均値が、最新の出力周波数となる。この処理は、平滑化処理部41dの加算部52a1〜52aN−1と、除算部53の処理に対応する。
【0105】
図21は、
図15に示した平滑化処理部を用いる場合の平滑化処理の一例の流れを示す図である。
平滑化処理部41daを用いた平滑化処理では、プロセッサ21は、周波数調整部41cの機能により生成した周波数値と、予め、たとえば、RAM22に保持している周波数値との差分を算出する(ステップS19c)。この処理は、
図15に示した平滑化処理部41daの加算部70の処理に相当する。
【0106】
次に、プロセッサ21は、算出した差分に、前述した係数αを乗じる(ステップS19d)。係数αは1よりも小さい値であるため、算出された差分は小さくなる。なお、この処理は、平滑化処理部41daの乗算部71の処理に相当する。
【0107】
さらに、プロセッサ21は、保持している周波数値に、前述した係数ρを乗じる(ステップS19e)。この処理は、平滑化処理部41daの乗算部74の処理に相当する。
その後、プロセッサ21は、ステップS19dとステップS19eの処理で得られた値を加算する。これによって出力周波数が算出される(ステップS19f)。この処理は、平滑化処理部41daの加算部75の処理に相当する。
【0108】
また、プロセッサ21は、ステップS19dの処理で得られた値に、保持している周波数値を加えた値で、保持している周波数値を更新する(ステップS19g)。この処理は、平滑化処理部41daの加算部72とレジスタ部73の処理に相当する。
【0109】
図20、
図21に示したような平滑化処理によって、
図13、
図14、
図16、
図17に示したように、周波数調整部41cの機能によって生成された周波数情報における急激な周波数変動が抑制される。また、緩やかな周波数変動は出力周波数に反映されるので、分周比が変動する分周回路を備えたSSCGなどのPLL回路の実際の動作を精度よく再現できる。
【0110】
また、周波数を整数逓倍するPLL回路(以下整数逓倍PLL回路という)のシミュレーションモデルに対して、平滑化処理部41d,41daを追加するだけで、SSCGやFractional−N PLLの動作を精度よく再現できる。つまり、シミュレーションモデルの変更も少なくてすむ。
【0111】
なお、
図6に示したシミュレーション実行部35で表されるシミュレーションモデルを整数逓倍PLL回路のシミュレーションモデルとして使用することもできる。この場合、時間的に周波数が変動するようなリファレンスクロックを入力し、リファレンスクロックの周波数変動に追従して出力周波数が変動する様子も精度よく再現できるようになる。たとえば、SSCGと整数逓倍PLLを直列接続し、SSCGの出力クロックが整数逓倍PLLのリファレンスクロックとなる構成について、物理動作に近い動作を論理シミュレーションで精度良く再現することが可能となる。
【0112】
以上、実施の形態に基づき、本発明の論理シミュレーション方法、論理シミュレーション装置及びプログラムの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。