(57)【要約】【課題】入力クロックから異なる分周比の複数の出力クロック信号を出力するとき、出力クロック信号全てが変化しない期間を無くす。【解決手段】クロック生成回路は、半導体集積回路のエミュレーション用である。クロック生成回路は、同じ入力クロック信号を異なる分周比で分周する複数のクロック分周回路２７０〜２９０と、複数のクロック分周回路２７０〜２９０に接続された最小値選択部２３６とを具備する。複数のクロック分周回路２７０〜２９０の各々は、クロック間隔取得部２３５とスキップ部２３７とを備える。クロック間隔取得部２３５は、分周後の出力クロック信号における現在の状態から次の状態変化までの状態変化間隔を求める。最小値選択部２３６は、複数のクロック分周回路２７０〜２９０で求められた複数の状態変化間隔のうちから最小値を選択する。スキップ部２３７は、選択された最小値の分だけ出力クロック信号を進ませる。【選択図】図４
2013109436.tif 000002
【特許請求の範囲】
【請求項１】
エミュレータによる半導体集積回路のテスト用のクロック生成回路であって、
同じ入力クロック信号を異なる分周比で分周する複数のクロック分周回路と、
前記複数のクロック分周回路の各々に接続された最小値選択部と
を具備し、
前記複数のクロック分周回路の各々は、
前記最小値選択部に接続されたクロック間隔取得部と、
前記最小値選択部に接続されたスキップ部と
を備え、
前記クロック間隔取得部は、分周後の出力クロック信号における現在の状態から次の状態変化までの状態変化間隔を求め、
前記最小値選択部は、前記複数のクロック分周回路で求められた複数の状態変化間隔のうちから最小値を選択し、
前記スキップ部は、前記選択された最小値の分だけ前記出力クロック信号を進ませる
クロック生成回路。
【請求項２】
請求項１に記載のクロック生成回路において、
前記クロック間隔取得部は、前記現在の状態に基づいて、前記状態変化間隔としての入力クロック信号数を算出し、
前記最小値選択部は、前記複数のクロック分周回路で算出された複数の入力クロック信号数のうちから最小値を選択し、
前記スキップ部は、前記選択された最小値の入力クロック信号数の分だけ前記出力クロック信号を先に進ませる
クロック生成回路。
【請求項３】
請求項２に記載のクロック生成回路において、
前記複数のクロック分周回路の各々は、
前記入力クロック信号と前記選択された最小値の分だけ進んだ前記出力クロック信号とに基づいて、分周後の前記出力クロック信号を生成する分周部を更に備える
クロック生成回路。
【請求項４】
請求項１に記載のクロック生成回路において、
前記クロック間隔取得部は、前記現在の状態に基づいて、前記状態変化間隔としての前記出力クロックが変化しない期間を取得し、
前記最小値算出部は、前記複数のクロック分周回路で取得された複数の期間のうちから最小値を選択し、
前記スキップ部は、前記選択された最小値の期間の分だけ前記出力クロック信号を先に進ませる
クロック生成回路。
【請求項５】
請求項４に記載のクロック生成回路において、
前記複数のクロック分周回路の各々は、
前記期間が０の場合、前記入力クロック信号の次の変化タイミングで分周の周期値を前記期間に設定し、前記クロック間隔取得部へ出力する設定部と、
前記期間が０の場合、前記入力クロック信号の次の変化タイミングで前記出力クロック信号を反転させる出力クロック生成部と
を更に備える
クロック生成回路。
【請求項６】
同じ入力クロック信号を異なる分周比で分周した複数の出力クロック信号を生成する、請求項１乃至５のいずれか一項に記載のクロック生成回路と、
前記複数の出力クロック信号を用いて、検査対象の半導体集積回路をテストする制御部と
を具備する
エミュレータ。
【請求項７】
エミュレータによる半導体集積回路のテスト用のクロック生成回路の制御方法であって、
ここで、前記クロック生成回路は、
同じ入力クロック信号を異なる分周比で分周する複数のクロック分周回路を具備し、
前記制御方法は、
前記複数のクロック分周回路の各々において、分周後の出力クロック信号における現在の状態から次の状態変化までの状態変化間隔を求めるステップと、
前記複数のクロック分周回路で求められた複数の状態変化間隔のうちから最小値を選択するステップと、
前記複数のクロック分周回路の各々において、前記選択された最小値の分だけ前記出力クロック信号を進ませるステップと
を具備する
クロック生成回路の制御方法。
【請求項８】
請求項７に記載のクロック生成回路の制御方法において、
前記変化点間隔を求めるステップは、前記複数のクロック分周回路の各々において、前記現在の状態に基づいて、前記状態変化間隔としての入力クロック信号数を算出するステップを備え、
前記選択するステップは、前記複数のクロック分周回路で算出された複数の入力クロック信号数のうちから最小値を選択するステップを備え、
前記進ませるステップは、前記複数のクロック分周回路の各々において、前記選択された最小値の入力クロック信号数の分だけ前記出力クロック信号を先に進ませるステップを備える
クロック生成回路の制御方法。
【請求項９】
請求項７に記載のクロック生成回路の制御方法において、
前記変化点間隔を求めるステップは、前記複数のクロック分周回路の各々において、前記現在の状態に基づいて、前記状態変化間隔としての前記出力クロックが変化しない期間を取得し、
前記選択するステップは、前記複数のクロック分周回路で取得された複数の期間のうちから最小値を選択するステップを備え、
前記進ませるステップは、前記複数のクロック分周回路の各々において、前記選択された最小値の期間の分だけ前記出力クロック信号を先に進ませるステップを備える
クロック生成回路の制御方法。
【請求項１０】
請求項７乃至９のいずれかに記載のクロック生成回路の制御方法を用いて、同じ入力クロック信号を異なる分周比で分周して、複数の出力クロック信号を生成するステップと、
前記複数の出力クロック信号を用いて、検査対象の半導体集積回路をテストするステップと
を具備する
エミュレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力クロック信号を分周して出力クロック信号を生成するクロック分周回路、及びそれを用いたエミュレータに関する。
【背景技術】
【０００２】
入力クロック信号を所定の分周比で分周した出力クロック信号を生成するクロック分周回路が知られている。例えば、特開２０１０−２５８７６１号公報（特許文献１）にはクロック分周回路が開示されている。このクロック分周回路は、入力クロック信号の立ち下がりの際に、出力クロック信号の立ち上げを可能とし、入力クロック信号を任意の有理数で表わされる分周比にて分周した出力クロック信号を得ることを目的としている。
【０００３】
以下、この特許文献１のクロック分周回路１００について説明する。このクロック分周回路１００は、分子設定値をＡとし、分母設定値をＢとしたとき、分周比Ａ／Ｂにて入力クロック信号を分周した出力クロック信号を得ることができる。すなわち、入力クロック信号の周波数をＦＩ、出力クロック信号の周波数をＦＯとすると、式（２）の関係が成立する。ただし、以下の式（２）〜式（５）の式番号は特許文献１の番号をそのまま使用している。
ＦＯ＝ＦＩ×Ｂ／Ａ  ・・・  （２）
ここで、分子設定値Ａ及び分母設定値Ｂは任意の自然数であり、Ｂ≦Ａなる条件を満たすものとする。
【０００４】
図１は、特許文献１のクロック分周回路１００の構成を示すブロック図である。クロック分周回路１００は、演算器１１、演算器１２ａ及び比較器１０８を具備している。演算器１１は、レジスタ１０１、セレクタ１０３及び減算器１０４を備えている。レジスタ１０１には、Ｒ端子にリセット信号１１０が入力される。クロック端子に入力クロック信号１０９が入力される。Ｄ端子に演算器出力値１２０が入力される。そして、レジスタ１０１は、Ｑ端子から減算器１０４へレジスタ出力値１１３を出力する。セレクタ１０３には、分母設定値１１１及び分母設定値の２倍の値１１４が入力される。Ｓ端子において入力クロック信号１０９が入力される。そして、セレクタ１０３は、減算器１０４へセレクタ出力値１１５を出力する。減算器１０４には、レジスタ出力値１１３及びセレクタ出力値１１５が入力され、演算器１２ａへ演算器出力値１１６を出力する。
【０００５】
演算器１２ａは、加算器１０６及びセレクタ１０７を備えている。加算器１０６には、演算器出力値１１６及び分子設定値の２倍の値１１７が入力される。そして、加算器１０６は、セレクタ１０７へ加算器出力値１１８を出力する。セレクタ１０７には、演算器出力値１１６及び加算器出力値１１８が入力される。そして、セレクタ１０７は、レジスタ１０１のＤ端子及び比較器１０８へ演算器出力値１２０を出力する。比較器１０８には、演算器出力値１２０及び分子設定値１１２が入力される。そして、比較器１０８は、出力クロック信号１２１を出力する。
【０００６】
次に、クロック分周回路１００の動作について説明する。このクロック分周回路１００の動作原理は、以下の第１〜第４の処理を繰り返すことで、入力クロック信号１０９を分周比Ａ／Ｂで分周した出力クロック信号１２１を得ることである。ここで、（分母設定値１１１）＝Ｂであり、（分子設定値１１２）＝Ａである。よって、（分母設定値の２倍の値１１４）＝２Ｂ、（分子設定値の２倍の値１１７）＝２Ａとなる。
【０００７】
第１の処理は、演算器１１において行われる。レジスタ１０１は、リセット信号１１０がハイの場合には、入力クロック信号１０９が立ち下がる際に、レジスタ１０１に入力されている演算器出力値１２０の値を記録して、レジスタ出力値１１３として出力する。一方、リセット信号１１０がロウの場合には、レジスタ１０１は値「０」を記録して、レジスタ出力値１１３として出力する。セレクタ１０３は、入力クロック信号１０９がロウである場合には、分母設定値１１１をセレクタ出力値１１５として減算器１０４へ出力する。一方、入力クロック信号１０９がハイである場合には、セレクタ１０３は、分母設定値の２倍の値１１４をセレクタ出力値１１５として減算器１０４へ出力する。減算器１０４は、レジスタ出力値１１３からセレクタ出力値１１５を減じた値を、演算器出力値１１６として演算器１２ａに出力する。
【０００８】
従って、入力クロック信号１０９がロウの場合には、演算器出力値１１６は式（３）で表わされる。
（演算器出力値１１６）＝（レジスタ出力値１１３）−（分母設定値１１１）
＝（レジスタ出力値１１３）−Ｂ  ・・・  （３）
一方、入力クロック信号１０９がハイの場合には、演算器出力値１１６は式（４）で表わされる。
（演算器出力値１１６）＝（レジスタ出力値１１３）−（分母設定値の２倍の値１１４）
＝（レジスタ出力値１１３）−２Ｂ  ・・・  （４）
【０００９】
第２の処理は、演算器１２ａにおいて行われる。加算器１０６は、演算器出力値１１６に分子設定値の２倍の値１１７を加えた値を、加算器出力値１１８としてセレクタ１０７へ出力する。セレクタ１０７は、演算器出力値１１６が０未満である場合には、加算器出力値１１８を演算器出力値１２０として出力する。従って、この場合の演算器出力値１２０は、式（５）で表わされる。
（演算器出力値１２０）＝（演算器出力値１１６）＋（分子設定値の２倍の値１１７）
＝（演算器出力値１１６）＋２Ａ  ・・・  （５）
一方、演算器出力値１１６が０以上である場合には、セレクタ１０７は、演算器出力値１１６を演算器出力値１２０として出力する。
【００１０】
第３の処理は、比較器１０８において行われる。比較器１０８では、演算器出力値１２０と分子設定値１１２とが比較され、（演算器出力値１２０）≧Ａの場合には出力クロック信号１２１はハイとなる。一方、（演算器出力値１２０）＜Ａの場合には出力クロック信号１２１はロウとなる。
【００１１】
第４の処理では、レジスタ１０１は、入力クロック信号１０９の立ち下りの際に演算器出力値１２０を記録する。そして、その記録した値をレジスタ出力値１１３として出力する。
【００１２】
関連する技術として、特開２００９−２３１８９７号公報（特許文献２）にクロック信号分周回路および方法が開示されている。このクロック信号分周回路は、Ｎ／Ｍ（Ｎは正整数，ＭはＮより大きい正整数）で規定された分周比に基づいて、当該入力クロック信号をＮ／Ｍ分周した出力クロック信号を生成する。このクロック信号分周回路は、可変遅延回路と、可変遅延制御回路とを備える。可変遅延回路は、入力された制御値に基づいて入力クロック信号に所定の遅延量を与えることにより出力クロック信号を生成して出力する。可変遅延制御回路は、入力クロック信号のサイクルごとに前記制御値を算出して前記可変遅延回路へ出力する。前記可変遅延制御回路は、遅延指示値算出回路と、制御値出力回路とを含む。遅延指示値算出回路は、入力クロック信号のサイクルごとにＭ−Ｎを累積的に加算した値からなる遅延指示値Ｋであって、かつ遅延指示値ＫがＮ以上となった場合にはＫからＮを減算した値となる遅延指示値Ｋを求め、前記出力クロック信号に対する位相制御を示す位相調整信号に応じて前記遅延指示値Ｋの値を増減する。制御値出力回路は、遅延指示値算出回路で得られた遅延指示値Ｋに基づいて、前記可変遅延回路での前記入力クロック信号の１サイクル当たりの単位遅延量のＫ／Ｎの遅延量に対応する制御値を算出する。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２０１０−２５８７６１号公報
【特許文献２】特開２００９−２３１８９７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
近年、半導体集積回路の回路規模が増大している。それに伴い、半導体集積回路の製造前に行う検証項目が増加し、その検証期間も長くなる傾向にある。それが半導体集積回路のコストに影響を及ぼしている。半導体集積回路の製造前に行う動作検証は、エミュレータにて行なっている。従って、エミュレータでの検証時間をできるだけ短くして検証期間を短縮することにより、半導体集積回路のコストを削減することが求められている。
【００１５】
上記に関連して、発明者は今回初めて以下の知見を発見した。
エミュレータでの検証時間を短縮する方法として、入力クロック信号を分周して周期の異なる複数の出力クロック信号を生成し、それら複数の出力クロック信号を用いてエミュレータによる動作検証を行う方法が考えられる。例えば、図２は、特許文献１のクロック分周回路１００を３つ使用したクロック分周回路合のブロック図である。このクロック分周回路は、４分周の分周回路Ａ１００−１、６分周の分周回路Ｂ１００−２及び８分周の分周回路Ｃ１００−３を具備している。これら３つのクロック分周回路１００−１〜１００−３は、図１のクロック分周回路１００と同じ構成を有しているが、互いに異なる分周比を設定されている。従って、これら３つのクロック分周回路１００−１〜１００−３は、いずれも同じ入力クロックを入力されるが、互いに異なる分周比で分周した３つの出力クロック信号を出力する。
【００１６】
このように特許文献１のクロック分周回路１００を複数用いてエミュレータを実現した場合、検証対象の論理回路を動作させ検証結果を得ることは可能である。しかし、分周後の複数の出力クロック信号を用いても、以下に示すように、複数の出力クロック信号のいずれもが変化しない期間が存在する。図３は、図２のクロック分周回路で動作させた場合のクロック信号のタイミングチャートである。図中、最上段のＴ１、Ｔ２、…は時刻（期間）を示す。また、（ａ）は入力クロック信号、（ｂ）は４分周の出力クロック信号（分周回路Ａ１００−１）、（ｃ）は６分周の出力クロック信号（分周回路Ｂ１００−２）、（ｄ）は８分周の出力クロック信号（分周回路Ｃ１００−３）である。図の矢印で示されるように、分周後の３つの出力クロック信号全てが変化しない期間Ｔ２、Ｔ６、Ｔ８、Ｔ１２、Ｔ１４が存在する。それらの期間では、出力クロック信号が変化しないため、エミュレータの検証対象の論理回路も動作しない。そのため、特許文献１のクロック分周回路１００を用いた場合、それらの期間の分だけ余分な検証時間がかかることになる。すなわち、このようなエミュレータを用いた場合、検証時間に検証対象の論理回路の動作しない期間が含まれるため、効率的な動作検証ができない。
【課題を解決するための手段】
【００１７】
以下に、発明を実施するための形態で使用される番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、特許請求の範囲の記載と発明を実施するための形態との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、特許請求の範囲に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１８】
従って、本発明のクロック生成回路は、エミュレータによる半導体集積回路のテスト用である。そのクロック生成回路は、同じ入力クロック信号を異なる分周比で分周する複数のクロック分周回路（２７０〜２９０／３７０〜３９０）と、前記複数のクロック分周回路（２７０〜２９０／３７０〜３９０）の各々に接続された最小値選択部（２３６／３３６）とを具備している。前記複数のクロック分周回路（２７０〜２９０／３７０〜３９０）の各々は、前記最小値選択部（２３６／３３６）に接続されたクロック間隔取得部（２３５／３３０、３４０）と、前記最小値選択部（２３６／３３６）に接続されたスキップ部（２３７／３４２）とを備えている。前記クロック間隔取得部（２３５／３３０）は、分周後の出力クロック信号における現在の状態から次の状態変化までの状態変化間隔を求める。前記最小値選択部（２３６／３３６）は、前記複数のクロック分周回路（２７０〜２９０／３７０〜３９０）で求められた複数の状態変化間隔のうちから最小値を選択する。前記スキップ部（２３７／３４２）は、前記選択された最小値の分だけ前記出力クロック信号を進ませる。
【００１９】
本発明のエミュレータは、クロック生成回路（２００／３００）と、制御部（４１０）とを具備している。クロック生成回路（２００／３００）は、同じ入力クロック信号を異なる分周比で分周した複数の出力クロック信号（２０９〜２１１／３０９〜３１１）を生成し、上記段落に記載されている。制御部（４１０）は、前記複数の出力クロック信号（２０９〜２１１／３０９〜３１１）を用いて、検査対象の半導体集積回路（４５０）をテストする。
【００２０】
本発明のクロック生成回路の制御方法は、エミュレータによる半導体集積回路のテスト用である。そのクロック生成回路の制御方法において、前記クロック生成回路（２００／３００）は、同じ入力クロック信号を異なる分周比で分周する複数のクロック分周回路（２７０〜２９０／３７０〜３９０）を具備している。前記制御方法は、前記複数のクロック分周回路の各々において、分周後の出力クロック信号における現在の状態から次の状態変化までの状態変化間隔を求めるステップと、前記複数のクロック分周回路（２７０〜２９０／３７０〜３９０）で求められた複数の状態変化間隔のうちから最小値を選択するステップと、前記複数のクロック分周回路（２７０〜２９０／３７０〜３９０）の各々において、前記選択された最小値の分だけ前記出力クロック信号を進ませるステップとを具備している。
【００２１】
本発明のエミュレーション方法は、上記段落のクロック生成回路の制御方法を用いて、同じ入力クロック信号を異なる分周比で分周して、複数の出力クロック信号（２０９〜２１１／３０９〜３１１）を生成するステップと、前記複数の出力クロック信号（２０９〜２１１／３０９〜３１１）を用いて、検査対象の半導体集積回路（４５０）をテストするステップとを具備している。
【発明の効果】
【００２２】
本発明により、同じ入力クロックを入力され、それぞれ異なる分周比で分周した複数の出力クロック信号を出力する場合であっても、出力クロック信号全てが変化しない期間を無くすことができる。
【図面の簡単な説明】
【００２３】
【図１】図１は、特許文献１のクロック分周回路の構成を示すブロック図である。
【図２】図２は、特許文献１のクロック分周回路を３つ使用したクロック分周回路合のブロック図である。
【図３】図３は、図２のクロック分周回路で動作させた場合のクロック信号のタイミングチャートである。
【図４】図４は、本発明の第１の実施の形態に係るクロック生成回路の構成を示すブロック図である。
【図５】図５は、本発明の第１の実施の形態に係るクロック生成回路の動作を示す制御フローチャートである。
【図６】図６は、本発明の第１の実施の形態に係るクロック生成回路の動作を示すタイミングチャートである。
【図７】図７は、図６の本実施の形態のタイミングチャートと図３のタイミングチャートとの対応関係を示すチャートである。
【図８】図８は、本発明の第１の実施の形態に係るエミュレータの構成を示すブロック図である。
【図９】図９は、本発明の第２の実施の形態に係るクロック生成回路の構成を示すブロック図である。
【図１０】図１０は、本発明の第２の実施の形態に係るクロック生成回路の動作を示す制御フローチャートである。
【図１１】図１１は、本発明の第２の実施の形態に係るクロック生成回路の動作を示すタイミングチャートである。
【発明を実施するための形態】
【００２４】
以下、本発明のクロック生成回路、その制御方法、エミュレータ、及びエミュレーション方法の実施の形態に関して、添付図面を参照して説明する。
【００２５】
（第１の実施の形態）
本発明の第１の実施の形態に係るクロック生成回路の構成について説明する。
【００２６】
図４は、本発明の第１の実施の形態に係るクロック生成回路の構成を示すブロック図である。クロック生成回路２００は、複数の分周回路と、最小値算出部２３６とを具備している。複数の分周回路は、分周回路Ａ２７０、分周回路Ｂ２８０及び分周回路Ｃ２９０を含んでいる。各構成の詳細は後述される。最小値算出部２３６は、分周回路Ａ２７０、分周回路Ｂ２８０及び分周回路Ｃ２９０からの複数の入力値（２５４〜２５６；後述）から最小値（２５７；後述）を算出し、その最小値を分周回路Ａ２７０、分周回路Ｂ２８０及び分周回路Ｃ２９０へ出力する。
【００２７】
分周回路Ａ２７０には、入力クロック信号２０１、リセット信号２０２、分子値２０３、分母値２０６及び最小値算出部出力値２５７が入力される。入力クロック信号２０１は、分周の元となる信号である。リセット信号２０２は、内部状態を初期化する信号である。分子値２０３は、分周する比率（分周比）の分子となる値である。分母値２０６は、分周の比率の分母となる値である。最小値算出部出力値２５７は、分周回路Ａ２７０、分周回路Ｂ２８０及び分周回路Ｃ２９０の出力クロック信号のいずれもが変化しない最小期間である。分周回路Ａ２７０は、クロック数算出値２５４、出力クロック信号２０９を出力する。クロック数算出値２５４は、分周回路Ａ２７０の出力クロック信号が変化しない期間である。出力クロック信号２０９は、分周回路Ａ２７０の分周後の出力クロック信号である。
【００２８】
分周回路Ｂ２８０には、入力クロック信号２０１、リセット信号２０２、分子値２０４、分母値２０７、最小値算出部出力値２５７が入力される。入力クロック信号２０１、リセット信号２０２及び最小値算出部出力値２５７は、上述のとおりである。分子値２０４は、分周する比率の分子となる値である。分母値２０７は、分周の比率の分母となる値である。分周回路Ｂ２８０は、クロック数算出値２５５及び出力クロック信号２１０を出力する。クロック数算出値２５５は、分周回路Ｂ２８０の出力クロック信号が変化しない期間である。出力クロック信号２１０は、分周回路Ｂ２８０の分周後の出力クロック信号である。
【００２９】
分周回路Ｃ２９０には、入力クロック信号２０１、リセット信号２０２、分子値２０５、分母値２０８、最小値算出部出力値２５７が入力される。入力クロック信号２０１、リセット信号２０２及び最小値算出部出力値２５７は、上述のとおりである。分子値２０５は、分周する比率の分子となる値である。分母値２０８は、分周の比率の分母となる値である。分周回路Ｃ２９０は、クロック数算出値２５６及び出力クロック信号２１１を出力する。クロック数算出値２５６は、分周回路Ｃ２９０の出力クロック信号が変化しない期間である。出力クロック信号２１１は、分周回路Ｃ２９０の分周後の出力クロック信号である。
【００３０】
最小値算出部２３６には、分周回路Ａ２７０のクロック数算出値２５４、分周回路Ｂ２８０のクロック数算出値２５５及び分周回路Ｃ２９０のクロック数算出値２５６が入力される。最小値算出部２３６は、分周回路Ａ２７０のクロック数算出値２５４、分周回路Ｂ２８０のクロック数算出値２５５及び分周回路Ｃ２９０のクロック数算出値２５６のうちの最小値を算出する（又は抽出する）。そして、その最小値を最小値算出部出力値２５７として分周回路Ａ２７０、分周回路Ｂ２８０及び分周回路Ｃ２９０へ出力する。
【００３１】
分周回路Ａ２７０は、レジスタ部２３０、減算部Ａ２３１、加算部２３２、セレクタ部２３３、比較部２３４、クロック数算出部２３５及び減算部Ｂ２３７（スキップ部）を具備している。
【００３２】
レジスタ部２３０は、リセット信号２０２がハイ入力の場合、レジスタ部２３０に保持している値を０に初期化する。一方、レジスタ部２３０は、リセット信号２０２がロウ入力の場合、入力クロック信号２０１の立ち上がりタイミングで減算部Ｂ出力値２５８を保持し、保持した値をレジスタ出力値２５０として減算部Ａ２３１へ出力する。
【００３３】
減算部Ａ２３１には、レジスタ出力値２５０及び分周回路Ａ２７０の分母値２０６が入力される。減算部Ａ２３１は、レジスタ出力値２５０から分母値２０６を２倍した値を減算し、その減算結果を減算部Ａ出力値２５１として加算部２３２及びセレクタ部２３３へ出力する。すなわち、減算部Ａ２３１は、以下の式（１４）を計算している。
（減算部Ａ出力値２５１）
＝（レジスタ出力値２５０）−（分周回路Ａ２７０の分母値２０６）×２  …  （１４）
【００３４】
ここで、式（１４）の意味について説明する。
（レジスタ出力値２５０）は、出力クロック信号の一つ前の状態を表す値を示している。ただし、状態を表す値は、出力クロックの状態を表しており、出力クロックの１周期に対応した範囲を持った、入力クロック信号の１クロックごとに算出される指標である。分周回路Ａ２７０の場合、４分周の１周期は８個（＝４×２）の入力クロックに対応する。従って、状態を表す値は０〜７のいずれかの値を取る。この場合、例えば、０〜３がロウ信号で４〜７がハイ信号となる。６分周の場合には、１周期は１２個（＝６×２）の入力クロックに対応する。従って、状態を表す値は０〜１１のいずれかの値を取る。この場合、例えば、０〜５がロウ信号で６〜１１がハイ信号となる。また、（（分周回路Ａの分母値２０６）×２）は、１入力クロック当たりに出力クロック信号の状態を表す値が進む値を示している。
以上のことから、式（１４）は、１入力クロック進んだときの出力クロック信号の状態を表す値を算出している。
【００３５】
加算部２３２には、減算部Ａ出力値２５１及び分周回路Ａ２７０の分子値２０３が入力される。加算部２３２は、減算部Ａ出力値２５１に分子値２０３を２倍した値を加算し、その加算結果を加算部出力値２５２としてセレクタ部２３３へ出力する。すなわち、加算部２３２は、以下の式（１５）を計算している。
（加算部出力値２５２）
＝（減算部Ａ出力値２５１：式（１４））＋（分周回路Ａ２７０の分子値２０３）×２
＝（レジスタ出力値２５０）−（分周回路Ａ２７０の分母値２０６）×２
＋（分周回路Ａ２７０の分子値２０３）×２  …  （１５）
【００３６】
ここで、式（１５）の意味について説明する。
（レジスタ出力値２５０）及び（（分周回路Ａの分母値２０６）×２）は上述されたとおりである。また、（（分周回路Ａの分子値２０３）×２）は、分周の１周期分の値を示している。分周回路Ａ２７０の場合、４分周であるから、４×２＝８を取る。このとき、（（レジスタ出力値２５０）−（分周回路Ａ２７０の分母値２０６）×２）の減算結果（式（１４）の演算結果）が０未満となることは、分周の１周期分を超えたことを意味している。
以上のことから、式（１５）では、式（１４）の演算結果が０未満の場合、分周の１周期分の値を加算して、１入力クロック進んだときの出力クロック信号の状態を表す値を算出している。
【００３７】
セレクタ部２３３には、減算部Ａ出力値２５１及び加算部出力値２５２が入力される。セレクタ部２３３は、減算部Ａ出力値２５１が０未満の場合、出力クロック信号の状態を表す値が分周の１周期分を超えたので、加算部出力値２５２（式（１５）の結果）をセレクタ出力値２５３として比較部２３４、クロック数算出部２３５及び減算部Ｂ２３７へ出力する。一方、減算部Ａ出力値２５１が０以上の場合、減算部Ａ出力値２５１（式（１４）の結果）をセレクタ出力値２５３として比較部２３４、クロック数算出部２３５及び減算部Ｂ２３７へ出力する。
【００３８】
比較部２３４には、セレクタ出力値２５３及び分周回路Ａ２７０の分子値２０３が入力される。比較部２３４は、セレクタ出力値２５３が分子値２０３以上の場合、ハイを分周回路Ａ２７０の出力クロック信号２０９としてクロック生成回路２００の外部へ出力する。一方、セレクタ出力値２５３が分子値２０３未満の場合、ロウを分周回路Ａ２７０の出力クロック信号２０９としてクロック生成回路２００の外部へ出力する。分周回路Ａ２７０の場合、４分周で分子値２０３が４であるから、出力クロック信号の状態を表す値が４〜７であればハイ信号となり、０〜３でればロウ信号となる。
【００３９】
クロック数算出部２３５には、セレクタ出力値２５３、分周回路Ａ２７０の分子値２０３及び分周回路Ａ２７０の分母値２０６が入力される。クロック数算出部２３５は、出力クロック信号が変化しない期間を算出する。すなわち、セレクタ出力値２５３が分子値２０３以上の場合、以下に示す式（１１）の計算結果（小数点以下切り上げ）を分周回路Ａ２７０のクロック数算出値２５４として最小値算出部２３６へ出力する。
（分周回路Ａ２７０のクロック数算出値２５４）
＝（（セレクタ出力値２５３）−（分周回路Ａ２７０の分子値２０３））
／（（分周回路Ａ２７０の分母値２０６）×２）  …  （１１）
一方、セレクタ出力値２５３が分子値２０３未満の場合、以下に示す式（１２）の計算結果（小数点以下切り上げ）を分周回路Ａ２７０のクロック数算出値２５４として最小値算出部２３６に出力する。
（分周回路Ａのクロック数算出値２５４）
＝（セレクタ出力値２５３）／（（分周回路Ａ２７０の分母値２０６）×２）  …  （１２）
【００４０】
ここで、式（１１）の意味について説明する。
（セレクタ出力値２５３）は、出力クロック信号の現在の状態を表す値を示しており、式（１４）又は式（１５）で求まる。（分周回路Ａの分子値２０３）は分周の半周期の値を示している。（（分周回路Ａの分母値２０６）×２）は、入力クロック信号の１クロック（１入力クロック）当たりに出力クロック信号の状態を表す値が進む値を示している。
条件であるセレクタ出力値２５３が分周回路Ａ２７０の分子値２０３以上の場合、分周後の出力クロック信号は立ち上がった後の状態である。
以上のことから、式（１１）では、出力クロック信号の現在の状態を表す値（セレクタ出力値２５３）から半周期分の値（分周回路Ａ２７０の分子値２０３）を減算して、１入力クロック進む値（分周回路Ａ２７０の分母値２０６×２）を除算することで、次の立ち下がりまでの入力クロック数を算出している。すなわち、分周後の出力クロック信号における現在の状態から次の状態変化までの状態変化間隔（入力クロック数）を算出している。
【００４１】
また、式（１２）の意味について説明する。
（セレクタ出力値２５３）及び（（分周回路Ａの分母値２０６）×２）は、上述されたとおりである。
条件であるセレクタ出力値２５３が分周回路Ａ２７０の分子値２０３未満の場合、分周後の出力クロック信号は立ち上がり前の状態ある。
以上のことから、式（１２）では、出力クロック信号の現在の状態を表す値（セレクタ出力値２５３）から１入力クロック進む値（分周回路Ａ２７０の分母値２０６×２）を除算することで、次の立ち上がりまでの入力クロック数を算出している。すなわち、この場合にも、分周後の出力クロック信号における現在の状態から次の状態変化までの状態変化間隔（入力クロック数）を算出している。
【００４２】
減算部Ｂ２３７（スキップ部）は、セレクタ出力値２５３から最小値算出部出力値２５７分の入力クロック数を進ませる減算を行う。すなわち、減算部Ｂ２３７には、セレクタ出力値２５３、分周回路Ａ２７０の分母値２０６及び最小値算出部出力値２５７が入力される。減算部Ｂ２３７は、以下に示す式（１３）の計算結果を減算部Ｂ出力値２５８としてレジスタ部２３０へ出力する。
（減算部Ｂ出力値２５８）
＝（セレクタ出力値２５３）−（（分周回路Ａ２７０の分母値２０６）×２）×（最小値算出部出力値２５７）  …  （１３）
【００４３】
ここで、式（１３）の意味について説明する。
（（分周回路Ａの分母値２０６）×２）は、１入力クロック当たりに出力クロック信号の状態を表す値が進む値を示している。（最小値算出部出力値２５７）は、進ませたい入力クロック数である。
以上のことから、式（１３）により、進ませたい出力クロック数分だけ進んだ出力クロック信号の次の状態を表す値を算出している。
【００４４】
分周回路Ｂ２８０及び分周回路Ｃ２９０についても、分周回路Ａ２７０と同じ構成なので、その説明を省略する。
【００４５】
本実施の形態では、分周後の出力クロックにおける現在の状態（例示：立ち上がった状態／ハイレベルの状態）から次の状態変化（例示：立ち下がり／ロウレベルへの変化）が発生するまでの間隔を状態変化間隔としている。この（状態変化）間隔は、時間的な間隔の概念ではあるが、時間間隔に対応する指標であれば、本発明は特に限定されない。
例えば、本実施の形態のように、その状態変化間隔として、入力クロック数（クロック数算出値２５４）を用いてもよい。入力クロック数は、１入力クロックの周期を掛けることで時間間隔になることから、時間に対応する指標といえるからである。
また、例えば、その状態変化間隔として、出力クロックの１／２周期の中の位置と、その１／２周期の端部までの間隔を用いても良い。その間隔は、出力クロックの１／２周期を掛けることで時間間隔になることから、時間に対応する指標といえるからである。その間隔は、出力クロックの１／２周期内における現在の時点での周期の残り時間とも見ることができる。
【００４６】
次に、本発明の第１の実施の形態に係るクロック生成回路の動作（クロック生成回路の制御方法）について説明する。
【００４７】
図５は、本発明の第１の実施の形態に係るクロック生成回路の動作（クロック生成回路の制御方法）を示す制御フローチャートである。以下では、クロック生成回路２００（分周回路Ａ２７０、分周回路Ｂ２８０、分周回路Ｃ２９０）の動作のうち、主に分周回路Ａ２７０の動作について説明する。分周回路Ｂ２８０及び分周回路Ｃ２９０の動作については、分周回路Ａ２７０と同様である。
【００４８】
レジスタ部２３０は、リセット信号２０２にハイ信号が入力されることでレジスタ部２３０に保持している値を０に初期化する（ステップＳ１）。次に、リセット信号２０２にロウ信号が入力されることで、次のステップへ進む。
【００４９】
次に、レジスタ部２３０は、入力クロック信号２０１の立ち上がりタイミングで、保持した値をレジスタ出力値２５０として減算部Ａ２３１へ出力する。減算部Ａ２３１は、レジスタ出力値２５０と分周回路Ａ２７０の分母値２０６とに基づいて減算部Ａ出力値２５１を算出し（式（１４））、加算部２３２及びセレクタ部２３３へ出力する。加算部２３２は、減算部Ａ出力値２５１と分周回路Ａ２７０の分子値２０３とに基づいて加算部出力値２５２を算出し（式（１５））、セレクタ部２３３へ出力する。セレクタ部２３３は、減算部Ａ出力値２５１が０未満の場合には加算部出力値２５２を、減算部Ａ出力値２５１が０以上の場合には減算部Ａ出力値２５１をセレクタ出力値２５３として比較部２３４、クロック数算出部２３５及び減算部Ｂ２３７へ出力する。
【００５０】
なお、比較部２３４は、セレクタ出力値２５３が分子値２０３以上の場合にはハイを、セレクタ出力値２５３が分子値２０３未満の場合にはロウを分周回路Ａ２７０の出力クロック信号２０９として出力する。同様にして、分周回路Ｂ２８０の比較部２３４及び分周回路Ｃ２９０の比較部２３４は、それぞれ出力クロック信号２１０及び出力クロック信号２１１を出力する。
【００５１】
クロック数算出部２３５は、セレクタ出力値２５３と分周回路Ａ２７０の分子値２０３と分周回路Ａ２７０の分母値２０６とに基づいて、分周後の出力クロック信号が変化しない入力クロック信号２０１のクロック数を分周回路Ａ２７０のクロック数算出値２５４として算出する（ステップＳ２）。具体的には、クロック数算出部２３５は、セレクタ出力値２５３が分子値２０３以上の場合、セレクタ出力値２５３と分周回路Ａ２７０の分子値２０３と分周回路Ａ２７０の分母値２０６とに基づいて式（１１）により、クロック数算出値２５４を算出する。一方、セレクタ出力値２５３が分子値２０３未満の場合、セレクタ出力値２５３と分周回路Ａ２７０の分母値２０６とに基づいて式（１２）により、クロック数算出値２５４を算出する。入力クロック数は、分周後の出力クロック信号における現在の状態から次の状態変化までの状態変化間隔ということができる。
【００５２】
同様にして、分周回路Ｂ２８０のクロック数算出部２３５は、分周後の出力クロック信号が変化しない入力クロック信号２０１のクロック数を分周回路Ｂ２８０のクロック数算出値２５５として算出する（分周回路Ｂ２８０のステップＳ２）。分周回路Ｃ２９０のクロック数算出部２３５は、分周後の出力クロック信号が変化しない入力クロック信号２０１のクロック数（分周後の出力クロック信号における現在の状態から次の状態変化までの状態変化間隔）を分周回路Ｃ２９０のクロック数算出値２５５として算出する（分周回路Ｃ２９０のステップＳ２）。
【００５３】
次に、最小値算出部２３６は、分周回路Ａ２７０のクロック数算出値２５４と分周回路Ｂ２８０のクロック数算出値２５５と分周回路Ｃ２９０のクロック数算出値２５６とを比較して、最小値を最小値算出部出力値２５７として算出する（ステップＳ３）。そして、その最小値算出部出力値２５７を分周回路Ａ２７０、分周回路Ｂ２８０及び分周回路Ｃ２９０へ出力する。
【００５４】
次に、減算部Ｂ２３７は、分周回路Ａ２７０の分母値２０６とセレクタ出力値２５３と最小値算出部出力値２５７とに基づいて式（１３）により、最小値算出部出力値２５７分の入力クロック数を進めた値を減算部Ｂ出力値２５８として算出する（ステップＳ４）。
【００５５】
次に、レジスタ部２３０は、入力クロック信号２０１の立ち上がりタイミングで減算部Ｂ出力値２５８を保持する（ステップＳ５）。
【００５６】
その後、ステップＳ２に戻り、ステップＳ２〜Ｓ５の処理を繰り返す。
【００５７】
図６は、本発明の第１の実施の形態に係るクロック生成回路の動作（クロック生成回路の制御方法）を示すタイミングチャートである。この図は、図５の動作をタイミングチャートで見たものである。図中、最上段のＴ１、Ｔ２、…は時刻（期間）を示す。また、（ａ）はリセット信号２０２、（ｂ）は入力クロック信号２０１、（ｃ）は分周回路Ａ２７０のレジスタ出力値２５０、（ｄ）は分周回路Ａ２７０のセレクタ出力値２５３、（ｅ）は分周回路Ａ２７０のクロック数算出値２５４、（ｆ）は分周回路Ａ２７０の減算部Ｂ出力値２５８、（ｇ）は分周回路Ｂ２８０のクロック数算出値２５５、（ｈ）は分周回路Ｃ２９０のクロック数算出値２５６、（ｉ）は最小値算出部出力値２５７、（ｊ）は分周回路Ａ２７０の出力クロック信号２０９、（ｋ）は分周回路Ｂ２８０の出力クロック信号２１０、（ｌ）は分周回路Ｃ２９０の出力クロック信号２１１である。ただし、図６は、図４の場合において、分周回路Ａ２７０が４分周設定（分周回路Ａ２７０の分子値２０３を４に設定、分周回路Ａ２７０の分母値２０６を１に設定）、分周回路Ｂ２８０が６分周設定（分周回路Ｂ２８０の分子値２０４を６に設定、分周回路Ｂ２０８の分母値２０７を１に設定）、分周回路Ｃ２９０が８分周設定（分周回路Ｃ２９０の分子値２０５を８に設定、分周回路Ｃ２９０の分母値２０８を１に設定）の場合の動作について示している。
【００５８】
時刻Ｔ０において、リセット信号２０２（ａ）がハイ信号になることで、レジスタ部２３０の保持値が「０」に初期化される（ステップＳ１）。レジスタ部２３０は、レジスタ出力値２５０（ｃ）として保持値「０」を出力する。
【００５９】
セレクタ部２３３は、式（１４）の結果が０以上の場合には式（１４）の結果を、式（１４）の結果が０未満の場合には式（１５）の結果を、セレクタ出力値２５３として出力する。ここで、レジスタ出力値２５０が「０」で、分周回路Ａ２７０の分母値２０６が「１」なので、式（１４）の結果は「−２」（０−１×２）となる。従って、式（１４）の結果が「０」未満なので、式（１５）の結果がセレクタ出力値２５３となる。この場合、レジスタ出力値２５０が「０」で、分周回路Ａ２７０の分母値２０６が「１」で、分周回路Ａ２７０の分子値２０３が「４」なので、式（１５）の結果、すなわちセレクタ出力値２５３（ｄ）は、「６」（０−１×２＋４×２）となる。
【００６０】
比較部２３４は、セレクタ出力値２５３の「６」が分周回路Ａ２７０の分子値２０３の「４」以上のため、分周回路Ａ２７０の出力クロック信号２０９（ｊ）をハイ信号にする。同様にして、分周回路Ｂ２８０（６分周）の比較部２３４は、セレクタ出力値２５３の「１０」が分周回路Ｂ２８０の分子値２０３の「６」以上のため、分周回路Ｂ２８０の出力クロック信号２１０（ｋ）をハイ信号にする。また、分周回路Ｃ２９０（８分周）の比較部２３４は、セレクタ出力値２５３の「１４」が分周回路Ｃ２９０の分子値２０３の「８」以上のため、分周回路Ｃ２９０の出力クロック信号２１１（ｌ）をハイ信号にする。
【００６１】
クロック数算出部２３５は、セレクタ出力値２５３が分子値２０３以上の場合には式（１１）の結果を、セレクタ出力値２５３が分子値２０３未満の場合には式（１２）の結果を、分周回路Ａ２７０のクロック数算出値２５４として出力する。ただし、クロック数算出値２５４は、４分周で分周した場合の分周後の出力クロック信号２０９が変化しない入力クロック数である。ここで、セレクタ出力値２５３が「６」であり、分周回路Ａ２７０の分子値２０３の「４」以上なので、式（１１）の結果がクロック数算出値２５４となる。この場合、セレクタ出力値２５３が「６」で、分周回路Ａ２７０の分子値２０３が「４」で、分周回路Ａ２７０の分母値２０６が「１」なので、式（１１）の結果（小数点以下切り上げ）、すなわちクロック数算出値２５４（ｅ）は「１」（（６−４）／（１×２））となる（ステップＳ２）。
【００６２】
同様にして、分周回路Ｂ２８０（６分周）では、セレクタ出力値２５３が「１０」で、分周回路Ｂ２８０の分子値２０３が「６」で、分周回路Ｂ２８０の分母値２０６が「１」なので、式（１１）の結果（小数点以下切り上げ）、すなわちクロック数算出値２５５（ｇ）は「２」（（１０−６）／（１×２））となる（分周回路Ｂ２８０のステップＳ２）。また、分周回路Ｃ２９０（８分周）では、セレクタ出力値２５３が「１４」で、分周回路Ｃ２９０の分子値２０３が「８」で、分周回路Ｂ２８０の分母値２０６が「１」なので、式（１１）の結果（小数点以下切り上げ）、すなわちクロック数算出値２５６（ｈ）は「３」（（１４−８）／（１×２））となる（分周回路Ｃ２９０のステップＳ２）。
【００６３】
最小値算出部２３６は、分周回路Ａ２７０のクロック数算出値２５４、分周回路Ｂ２８０のクロック数算出値２５５及び分周回路Ｃ２９０のクロック数算出値２５６のうちの最小値を出力する。ここで、分周回路Ａ２７０のクロック数算出値２５４が「１」で、分周回路Ｂ２８０のクロック数算出値２５５が「２」で、分周回路Ｃ２９０のクロック数算出値２５６が「３」なので、それらの最小値として最小値算出部出力値２５７（ｉ）は「１」となる（ステップＳ３）。
【００６４】
減算部Ｂ２３７は、分周回路Ａ２７０の分母値２０６とセレクタ出力値２５３と最小値算出部出力値２５７とに基づいて式（１３）により、最小値算出部出力値２５７分の入力クロック数を進めた値を減算部Ｂ出力値２５８として出力する。ここで、分周回路Ａ２７０の分母値２０６が「１」で、セレクタ出力値２５３が「６」で、最小値算出部出力値２５７が「１」なので、式（１３）の結果、すなわち減算部Ｂ出力値２５８（ｆ）は「４」（６−１×２×１）となる（ステップＳ４）。すなわち、最小値算出部出力値２５７が「１」なので、セレクタ出力値２５３の「６」から最小値算出部出力値２５７の「１」の入力クロック数分進ませた値が出力される。
【００６５】
時刻Ｔ１において、リセット信号２０２（ｂ）がロウ信号になることでレジスタ部２３０の初期化が解除される。ただし、時刻Ｔ１の動作はＴ０と同じであり、時刻Ｔ０の各値はＴ１においても変化はない。
【００６６】
時刻Ｔ２において、レジスタ部２３０は、入力クロック信号２０１の立ち上がりタイミングで時刻Ｔ１の減算部Ｂ出力値２５８の「４」を保持し、時刻Ｔ２のレジスタ出力値２５０として「４」を出力する（ステップＳ５）。
【００６７】
レジスタ出力値２５０が「４」で、分周回路Ａ２７０の分母値２０６が「１」なので、式（１４）の結果は「２」（４−１×２）となる。従って、セレクタ部２３３は、式（１４）の結果が「０」以上なので、式（１５）の結果ではなく、式（１４）の結果である「２」をセレクタ出力値２５３とする。
【００６８】
比較部２３４は、セレクタ出力値２５３の「２」が分周回路Ａ２７０の分子値２０３の「４」未満のため、分周回路Ａ２７０の出力クロック信号２０９（ｊ）をロウ信号にする。同様にして、分周回路Ｂ２８０（６分周）の比較部２３４は、セレクタ出力値２５３の「６」が分周回路Ｂ２８０の分子値２０３の「６」以上のため、分周回路Ｂ２８０の出力クロック信号２１０（ｋ）をハイ信号にする。また、分周回路Ｃ２９０（８分周）の比較部２３４は、セレクタ出力値２５３の「１０」が分周回路Ｃ２９０の分子値２０３の「８」以上のため、分周回路Ｃ２９０の出力クロック信号２１１（ｌ）をハイ信号にする。
【００６９】
セレクタ出力値２５３が「２」であり、分周回路Ａ２７０の分子値２０３の「４」未満なので、クロック数算出部２３５は、式（１２）の結果をクロック数算出値２５４として出力する。この場合、セレクタ出力値２５３が「２」で、分周回路Ａ２７０の分子値２０３が「４」で、分周回路Ａ２７０の分母値２０６が「１」なので、式（１２）の結果（小数点以下切り上げ）、すなわちクロック数算出値２５４（ｅ）は「１」（２／（１×２））となる（ステップＳ２）。
【００７０】
同様にして、分周回路Ｂ２８０（６分周）では、セレクタ出力値２５３が「６」で、分周回路Ｂ２８０の分子値２０３が「６」で、分周回路Ｂ２８０の分母値２０６が「１」なので、式（１１）の結果（小数点以下切り上げ）、すなわちクロック数算出値２５５（ｇ）は「０」（（６−６）／（１×２））となる（分周回路Ｂ２８０のステップＳ２）。また、分周回路Ｃ２９０（８分周）では、セレクタ出力値２５３が「１０」で、分周回路Ｃ２９０の分子値２０３が「８」で、分周回路Ｂ２８０の分母値２０６が「１」なので、式（１１）の結果（小数点以下切り上げ）、すなわちクロック数算出値２５６（ｈ）は「１」（（１０−８）／（１×２））となる（分周回路Ｃ２９０のステップＳ２）。
【００７１】
最小値算出部２３６は、分周回路Ａ２７０のクロック数算出値２５４が「１」で、分周回路Ｂ２８０のクロック数算出値２５５が「０」で、分周回路Ｃ２９０のクロック数算出値２５６が「１」なので、それらの最小値として最小値算出部出力値２５７（ｉ）として「０」を出力する（ステップＳ３）。
【００７２】
減算部Ｂ２３７は、分周回路Ａ２７０の分母値２０６が「１」で、セレクタ出力値２５３が「２」で、最小値算出部出力値２５７が「０」なので、式（１３）の結果、すなわち減算部Ｂ出力値２５８（ｆ）として「２」（２−１×２×０）を出力する（ステップＳ４）。すなわち、最小値算出部出力値２５７が「０」なので、進ませる減算は行わず、セレクタ出力値２５３がそのまま出力される。
【００７３】
時刻Ｔ３において、レジスタ部２３０は、入力クロック信号２０１の立ち上がりタイミングで時刻Ｔ２の減算部Ｂ出力値２５８の「２」を保持し、時刻Ｔ３のレジスタ出力値２５０として「２」を出力する（ステップＳ５）。
【００７４】
レジスタ出力値２５０が「２」で、分周回路Ａ２７０の分母値２０６が「１」なので、式（１４）の結果は「０」（２−１×２）となる。従って、セレクタ部２３３は、式（１４）の結果が「０」以上なので、式（１４）の結果である「０」をセレクタ出力値２５３とする。
【００７５】
比較部２３４は、セレクタ出力値２５３の「０」が分周回路Ａ２７０の分子値２０３の「４」未満のため、分周回路Ａ２７０の出力クロック信号２０９（ｊ）をロウ信号にする。同様にして、分周回路Ｂ２８０（６分周）の比較部２３４は、セレクタ出力値２５３の「４」が分周回路Ｂ２８０の分子値２０３の「６」未満のため、分周回路Ｂ２８０の出力クロック信号２１０（ｋ）をロウ信号にする。また、分周回路Ｃ２９０（８分周）の比較部２３４は、セレクタ出力値２５３の「８」が分周回路Ｃ２９０の分子値２０３の「８」以上のため、分周回路Ｃ２９０の出力クロック信号２１１（ｌ）をハイ信号にする。
【００７６】
セレクタ出力値２５３が「０」であり、分周回路Ａ２７０の分子値２０３の「４」未満なので、クロック数算出部２３５は、式（１２）の結果をクロック数算出値２５４として出力する。この場合、セレクタ出力値２５３が「０」で、分周回路Ａ２７０の分子値２０３が「４」で、分周回路Ａ２７０の分母値２０６が「１」なので、式（１２）の結果（小数点以下切り上げ）、すなわちクロック数算出値２５４（ｅ）は「０」（０／（１×２））となる（ステップＳ２）。
【００７７】
同様にして、分周回路Ｂ２８０（６分周）では、セレクタ出力値２５３が「４」で、分周回路Ｂ２８０の分子値２０３が「６」で、分周回路Ｂ２８０の分母値２０６が「１」なので、式（１２）の結果（小数点以下切り上げ）、すなわちクロック数算出値２５５（ｇ）は「２」（４／（１×２））となる（分周回路Ｂ２８０のステップＳ２）。また、分周回路Ｃ２９０（８分周）では、セレクタ出力値２５３が「８」で、分周回路Ｃ２９０の分子値２０３が「８」で、分周回路Ｂ２８０の分母値２０６が「１」なので、式（１１）の結果（小数点以下切り上げ）、すなわちクロック数算出値２５６（ｈ）は「０」（（８−８）／（１×２））となる（分周回路Ｃ２９０のステップＳ２）。
【００７８】
最小値算出部２３６は、分周回路Ａ２７０のクロック数算出値２５４が「０」で、分周回路Ｂ２８０のクロック数算出値２５５が「２」で、分周回路Ｃ２９０のクロック数算出値２５６が「０」なので、それらの最小値として最小値算出部出力値２５７（ｉ）として「０」を出力する（ステップＳ３）。
【００７９】
減算部Ｂ２３７は、分周回路Ａ２７０の分母値２０６が「１」で、セレクタ出力値２５３が「０」で、最小値算出部出力値２５７が「０」なので、式（１３）の結果、すなわち減算部Ｂ出力値２５８（ｆ）として「０」（２−１×２×０）を出力する（ステップＳ４）。すなわち、最小値算出部出力値２５７が「０」なので、進ませる減算は行わず、セレクタ出力値２５３がそのまま出力される。
【００８０】
時刻Ｔ４において、レジスタ部２３０は、入力クロック信号２０１の立ち上がりタイミングで時刻Ｔ３の減算部Ｂ出力値２５８の「０」を保持し、時刻Ｔ３のレジスタ出力値２５０として「０」を出力する（ステップＳ５）。
【００８１】
レジスタ出力値２５０が「０」で、分周回路Ａ２７０の分母値２０６が「１」なので、式（１４）の結果は「−２」（０−１×２）となる。従って、セレクタ部２３３は、式（１４）の結果が「０」未満なので、式（１５）の結果をセレクタ出力値２５３として出力する。この場合、レジスタ出力値２５０が「０」で、分周回路Ａ２７０の分母値２０６が「１」で、分周回路Ａ２７０の分子値２０３が「４」なので、式（１５）の結果、すなわちセレクタ出力値２５３（ｄ）は、「６」（０−１×２＋４×２）となる。
【００８２】
比較部２３４は、セレクタ出力値２５３の「６」が分周回路Ａ２７０の分子値２０３の「４」以上のため、分周回路Ａ２７０の出力クロック信号２０９（ｊ）をハイ信号にする。同様にして、分周回路Ｂ２８０（６分周）の比較部２３４は、セレクタ出力値２５３の「２」が分周回路Ｂ２８０の分子値２０３の「６」未満のため、分周回路Ｂ２８０の出力クロック信号２１０（ｋ）をロウ信号にする。また、分周回路Ｃ２９０（８分周）の比較部２３４は、セレクタ出力値２５３の「２」が分周回路Ｃ２９０の分子値２０３の「８」未満のため、分周回路Ｃ２９０の出力クロック信号２１１（ｌ）をロウ信号にする。
【００８３】
セレクタ出力値２５３が「６」であり、分周回路Ａ２７０の分子値２０３の「４」以上なので、クロック数算出部２３５は、式（１１）の結果をクロック数算出値２５４として出力する。この場合、セレクタ出力値２５３が「６」で、分周回路Ａ２７０の分子値２０３が「４」で、分周回路Ａ２７０の分母値２０６が「１」なので、式（１１）の結果（小数点以下切り上げ）、すなわちクロック数算出値２５４（ｅ）は「１」（（６−４）／（１×２））となる（ステップＳ２）。
【００８４】
同様にして、分周回路Ｂ２８０（６分周）では、セレクタ出力値２５３が「２」で、分周回路Ｂ２８０の分子値２０３が「６」で、分周回路Ｂ２８０の分母値２０６が「１」なので、式（１２）の結果（小数点以下切り上げ）、すなわちクロック数算出値２５５（ｇ）は「１」（２／（１×２））となる（分周回路Ｂ２８０のステップＳ２）。また、分周回路Ｃ２９０（８分周）では、セレクタ出力値２５３が「６」で、分周回路Ｃ２９０の分子値２０３が「８」で、分周回路Ｂ２８０の分母値２０６が「１」なので、式（１２）の結果（小数点以下切り上げ）、すなわちクロック数算出値２５６（ｈ）は「３」（６／（１×２））となる（分周回路Ｃ２９０のステップＳ２）。
【００８５】
最小値算出部２３６は、分周回路Ａ２７０のクロック数算出値２５４が「１」で、分周回路Ｂ２８０のクロック数算出値２５５が「１」で、分周回路Ｃ２９０のクロック数算出値２５６が「３」なので、それらの最小値として最小値算出部出力値２５７（ｉ）として「１」を出力する（ステップＳ３）。
【００８６】
減算部Ｂ２３７は、分周回路Ａ２７０の分母値２０６が「１」で、セレクタ出力値２５３が「６」で、最小値算出部出力値２５７が「０」なので、式（１３）の結果、すなわち減算部Ｂ出力値２５８（ｆ）として「４」（６−１×２×１）を出力する（ステップＳ４）。すなわち、最小値算出部出力値２５７が「１」なので、セレクタ出力値２５３の「６」から最小値算出部出力値２５７の「１」の入力クロック数分進ませた値が出力される。
【００８７】
時刻Ｔ５以降は、Ｔ１〜Ｔ４と同様な処理を繰り返すので説明を省略する。
以上のようにして、本実施の形態に係るクロック生成回路は動作する（クロック生成回路は制御される）。
【００８８】
図７は、図６の本実施の形態のタイミングチャートを図３のタイミングチャートとの対応関係を示すチャートである。図中、最上段のＴ１、Ｔ２、…は図３における時刻（期間）を示す。また、（ａ）入力クロック、（ｂ）４分周クロック及び（ｃ）６分周クロックは、図６における（ｊ）分周回路Ａ２７０の出力クロック信号２０９、（ｋ）分周回路Ｂ２８０の出力クロック信号２１０及び（ｌ）分周回路Ｃ２９０の出力クロック信号２１１をそれぞれ示す。
【００８９】
時刻Ｔ１では、以下の処理が行われる。分周回路Ａ、分周回路Ｂ及び分周回路Ｃの各々にあるクロック数算出部２３５は、分周後の出力クロックが変化しない期間（出力クロック信号における現在の状態から次の状態変化までの間隔：状態変化間隔）を入力クロック数で算出する。最小値算出部２３６は、分周回路Ａ、分周回路Ｂ及び分周回路Ｃにおける状態変化間隔分の入力クロック数のうちから最小値を算出する（この場合、分周回路Ａのクロック数算出値２５４＝「１」）。分周回路Ａ、分周回路Ｂ及び分周回路Ｃの各々にある減算部Ｂ出力値２５８は、最小値算出部２３６で算出した状態変化間隔分の入力クロック数の最小値分だけ出力クロックを進ませる減算を行う（この場合、「１」進ませる）。その結果、出力クロックは、図３における時刻Ｔ２をスキップし、時刻Ｔ３まで進む（図６では時刻Ｔ２に対応）。この時刻Ｔ３は、４分周クロック（ｂ）が変化する時刻である。スキップされた時刻Ｔ２は、どの分周クロックも変化が無い時刻である。すなわち、出力クロックを時刻Ｔ３まで進ませることで、いずれかの分周クロックが必ず変化するようにできる。
【００９０】
時刻Ｔ３（図６では時刻Ｔ２に対応）では、上記と同様にして、最小値算出部２３６は、分周回路Ａ、分周回路Ｂ及び分周回路Ｃにおける状態変化間隔分の入力クロック数のうちから最小値を算出する（この場合、分周回路Ｂのクロック数算出値２５５＝「０」）。その結果、時刻Ｔ４で６分周クロック（ｃ）に変化があるため、スキップせずに時刻Ｔ４に進む（図６では時刻Ｔ３に対応）。
【００９１】
時刻Ｔ４（図６では時刻Ｔ３に対応）では、上記と同様にして、最小値算出部２３６は、分周回路Ａ、分周回路Ｂ及び分周回路Ｃにおける状態変化間隔分の入力クロック数のうちから最小値を算出する（この場合、分周回路Ａのクロック数算出値２５４及び分周回路Ｃのクロック数算出値２５６＝「０」）。その結果、時刻Ｔ５で４分周クロック（ｂ）と８分周クロック（ｄ）に変化があるため、スキップせずに時刻Ｔ５に進む（図６では時刻Ｔ４に対応）。
【００９２】
時刻Ｔ５（図６では時刻Ｔ４に対応）では、上記と同様にして、最小値算出部２３６は、分周回路Ａ、分周回路Ｂ及び分周回路Ｃにおける状態変化間隔分の入力クロック数のうちから最小値を算出する（この場合、分周回路Ａのクロック数算出値２５４及び分周回路Ｂのクロック数算出値２５５＝「１」）。分周回路Ａ、分周回路Ｂ及び分周回路Ｃの各々にある減算部Ｂ出力値２５８は、最小値算出部２３６で算出した状態変化間隔分の入力クロック数の最小値分だけ出力クロックを進ませる減算を行う（この場合、「１」進ませる）。その結果、出力クロックは、図３における時刻Ｔ６をスキップし、時刻Ｔ７まで進む（図６では時刻Ｔ５に対応）。この時刻Ｔ７は、４分周クロック（ｂ）と６分周クロック（ｃ）が変化する時刻である。スキップされた時刻Ｔ６は、どの分周クロックも変化が無い時刻である。すなわち、出力クロックを時刻Ｔ７まで進ませることで、いずれかの分周クロックが必ず変化するようにできる。
【００９３】
時刻Ｔ７（図６では時刻Ｔ５に対応）では、上記と同様にして、最小値算出部２３６は、分周回路Ａ、分周回路Ｂ及び分周回路Ｃにおける状態変化間隔分の入力クロック数のうちから最小値を算出する（この場合、分周回路Ａのクロック数算出値２５４及び分周回路Ｃのクロック数算出値２５６＝「１」）。分周回路Ａ、分周回路Ｂ及び分周回路Ｃの各々にある減算部Ｂ出力値２５８は、最小値算出部２３６で算出した状態変化間隔分の入力クロック数の最小値分だけ出力クロックを進ませる減算を行う（この場合、「１」進ませる）。その結果、出力クロックは、図３における時刻Ｔ８をスキップし、時刻Ｔ９まで進む（図６では時刻Ｔ６に対応）。この時刻Ｔ９は、４分周クロック（ｂ）と８分周クロック（ｄ）が変化する時刻である。スキップされた時刻Ｔ８は、どの分周クロックも変化が無い時刻である。すなわち、出力クロックを時刻Ｔ９まで進ませることで、いずれかの分周クロックが必ず変化するようにできる。
【００９４】
時刻Ｔ９（図６では時刻Ｔ６に対応）では、上記と同様にして、最小値算出部２３６は、分周回路Ａ、分周回路Ｂ及び分周回路Ｃにおける状態変化間隔分の入力クロック数のうちから最小値を算出する（この場合、分周回路Ｂのクロック数算出値２５５＝「０」）。その結果、時刻Ｔ１０で６分周クロック（ｃ）に変化があるため、スキップせずに時刻Ｔ１０に進む（図６では時刻Ｔ７に対応）。
【００９５】
時刻Ｔ１０（図６では時刻Ｔ７に対応）では、上記と同様にして、最小値算出部２３６は、分周回路Ａ、分周回路Ｂ及び分周回路Ｃにおける状態変化間隔分の入力クロック数のうちから最小値を算出する（この場合、分周回路Ａのクロック数算出値２５４＝「０」）。その結果、時刻Ｔ１１で４分周クロック（ｂ）に変化があるため、スキップせずに時刻Ｔ１１に進む（図６では時刻Ｔ８に対応）。
【００９６】
時刻Ｔ１１（図６では時刻Ｔ８に対応）では、上記と同様にして、最小値算出部２３６は、分周回路Ａ、分周回路Ｂ及び分周回路Ｃにおける状態変化間隔分の入力クロック数のうちから最小値を算出する（この場合、分周回路Ａのクロック数算出値２５４、分周回路Ｂのクロック数算出値２５５及び分周回路Ｃのクロック数算出値２５６＝「１」）。分周回路Ａ、分周回路Ｂ及び分周回路Ｃの各々にある減算部Ｂ出力値２５８は、最小値算出部２３６で算出した状態変化間隔分の入力クロック数の最小値分だけ出力クロックを進ませる減算を行う（この場合、「１」進ませる）。その結果、出力クロックは、図３における時刻Ｔ１２をスキップし、時刻Ｔ１３まで進む（図６では時刻Ｔ９に対応）。この時刻Ｔ１３は、４分周クロック（ｂ）と６分周クロック（ｃ）と８分周クロック（ｄ）が変化する時刻である。スキップされた時刻Ｔ１２は、どの分周クロックも変化が無い時刻である。すなわち、出力クロックを時刻Ｔ１３まで進ませることで、いずれかの分周クロックが必ず変化するようにできる。
【００９７】
時刻Ｔ１３（図６では時刻Ｔ９に対応）では、上記と同様にして、最小値算出部２３６は、分周回路Ａ、分周回路Ｂ及び分周回路Ｃにおける状態変化間隔分の入力クロック数のうちから最小値を算出する（この場合、分周回路Ａのクロック数算出値２５４＝「１」）。分周回路Ａ、分周回路Ｂ及び分周回路Ｃの各々にある減算部Ｂ出力値２５８は、最小値算出部２３６で算出した状態変化間隔分の入力クロック数の最小値分だけ出力クロックを進ませる減算を行う（この場合、「１」進ませる）。その結果、出力クロックは、図３における時刻Ｔ１４をスキップし、時刻Ｔ１５まで進む（図６では時刻Ｔ１０に対応）。この時刻Ｔ１５は、４分周クロック（ｂ）が変化する時刻である。スキップされた時刻Ｔ１４は、どの分周クロックも変化が無い時刻である。すなわち、出力クロックを時刻Ｔ１５まで進ませることで、いずれかの分周クロックが必ず変化するようにできる。
【００９８】
以下、時刻Ｔ１５（図６では時刻Ｔ１０に対応）以降も、時刻Ｔ１〜Ｔ１５と同様な動作を繰り返す。
【００９９】
以上のように、時刻Ｔ１〜Ｔ１５の動作から、図３において出力クロックが変化しない時刻Ｔ２、Ｔ６、Ｔ８、Ｔ１２、Ｔ１４をスキップし、入力クロックの１５周期分が、本実施の形態では１０周期分に減らせることがわかる。
【０１００】
本実施の形態では、クロック生成回路２００において、出力クロック信号の状態が変化しない期間、すなわち出力クロック信号の現在の状態から次の状態変化までの状態変化間隔として入力クロックの数を算出して、その期間（状態変化間隔）の分だけ出力クロック信号を進ませる。それにより、出力クロック信号において、その期間（状態変化間隔）をスキップすることができる。それにより、出力クロックの変化しない期間を無くし、各分周回路の出力クロック信号のいずれかが必ず状態変化するようにすることができる。
【０１０１】
次に、本発明の第１の実施の形態に係るクロック生成回路を適用したエミュレータについて説明する。図８は、本発明の第１の実施の形態に係るエミュレータの構成を示すブロック図である。エミュレータ４００は、クロック制御部４２０と、制御部４１０と、検証コンソール４３０とを備えている。
【０１０２】
クロック制御部４２０は、制御部４１０の制御に基づいて、検証に用いるクロックを生成し、検証対象回路４５０に供給する。クロック制御部４２０は、上述されたクロック生成回路２００を備えている。クロック生成回路２００は、上述されたように、入力クロック信号２０１とリセット信号２０２と各分周回路（Ａ〜Ｃ）の分子値２０３、２０４、２０５及び分母値２０６、２０７、２０８とに基づいて、同じ入力クロック信号２０１を異なる分周比で分周した複数の出力クロック信号２０９〜２１１を生成する。複数の出力クロック信号２０９〜２１１は検証対象回路４５０へ出力される。
【０１０３】
制御部４１０は、ＣＰＵやマイクロプロセッサに例示され、複数の出力クロック信号２０９〜２１１を用いて、検証対象回路４５０（例示：半導体集積回路）をテストする。検証コンソール４３０は、パーソナルコンピュータに例示され、ユーザによるデータ入力を行う入力装置としての機能、制御部４１０を制御する機能、検証過程や検証結果を表示する表示装置としての機能などを備えている。
【０１０４】
次に、本発明の第１の実施の形態に係るエミュレータの動作（エミュレーション方法）について説明する。制御部４１０は、検証コンソール４３０からのユーザ入力等に基づいて、検証プログラムを動作させる。制御部４１０は、検証プログラムを介して、クロック生成回路２００を制御する。クロック生成回路２００は、同じ入力クロック信号を異なる分周比で分周し、複数の出力クロック信号２０９〜２１１を生成して、検証対象回路４５０へ供給する。制御部４１０は、検証プログラムに基づいて、複数の出力クロック信号２０９〜２１１を用いて、検証対象回路４５０をテストする。制御部４１０は、検証コンソール４３０に検証過程及び検証結果を表示する。
【０１０５】
以上により、本発明の第１の実施の形態に係るエミュレータの動作（エミュレーション方法）が実行される。
【０１０６】
本実施の形態では、エミュレータに上述のクロック生成回路２００を用いている。そのクロック生成回路２００は、出力クロック信号が変化しない期間を無くし、各分周回路の出力クロック信号のいずれかが必ず状態変化するようにしている。すなわち、エミュレーションにおいて、出力クロック信号が変化せず検証対象の論理回路が動作しない、という状況を無くすことができる。その結果、エミュレータの動作時間を短くでき、エミュレーションの検証時間を短縮することができる。
【０１０７】
（第２の実施の形態）
本発明の第２の実施の形態に係るクロック生成回路の構成について説明する。本実施の形態は、クロック生成回路の各分周回路の構成の点で、第１の実施の形態と異なっている。
【０１０８】
図９は、本発明の第２の実施の形態に係るクロック生成回路の構成を示すブロック図である。クロック生成回路３００は、複数の分周回路と、最小値算出部３３６とを具備している。複数の分周回路は、分周回路Ａ３７０、分周回路Ｂ３８０及び分周回路Ｃ３９０を含んでいる。各構成の詳細は後述される。最小値算出部３３６は、分周回路Ａ３７０、分周回路Ｂ３８０及び分周回路Ｃ３９０からの複数の入力値（３６０〜３６１；後述）から最小値（３５７；後述）を算出し、その最小値を分周回路Ａ３７０、分周回路Ｂ３８０及び分周回路Ｃ３９０へ出力する。
【０１０９】
分周回路Ａ３７０には、入力クロック信号３０１、リセット信号３０２、周期値３２０、及び最小値算出部出力値３５７が入力される。入力クロック信号３０１は、分周の元となる信号である。リセット信号３０２は、内部状態を初期化する信号である。周期値３２０は、分周回路Ａ３７０における分周する比率の周期となる値（４分周の場合は「４」：分周後の出力クロックにおける１／２周期の時間に相当）である。最小値算出部出力値３５７は、分周回路Ａ３７０、分周回路Ｂ３８０及び分周回路Ｃ３９０の現在の時点での周期の残り時間のうちの最小時間である。分周回路Ａ３７０は、レジスタ出力値３６０及び出力クロック信号３０９を出力する。レジスタ出力値３６０は、分周回路Ａ３７０の現在の時点での周期の残り時間（又は時間に相当する値）である。出力クロック信号３０９は、分周回路Ａ３７０の分周後の出力クロック信号である。
【０１１０】
分周回路Ｂ３８０には、入力クロック信号３０１、リセット信号３０２、周期値３２１及び最小値算出部出力値３５７が入力される。入力クロック信号３０１、リセット信号３０２及び最小値算出部出力値３５７は、上述のとおりである。周期値３２１は、分周回路Ｂ３８０における分周する比率の周期となる値（６分周の場合は「６」：分周後の出力クロックにおける１／２周期の時間に相当）である。分周回路Ｂ３８０は、レジスタ出力値３６１及び出力クロック信号３１０を出力する。レジスタ出力値３６１は、分周回路Ｂ３８０の現在の時点での周期の残り時間（又は時間に相当する値）である。出力クロック信号３１０は、分周回路Ｂ３８０の分周後の出力クロック信号である。
【０１１１】
分周回路Ｃ３９０には、入力クロック信号３０１、リセット信号３０２、周期値３２２及び最小値算出部出力値３５７が入力される。入力クロック信号３０１、リセット信号３０２及び最小値算出部出力値３５７は、上述のとおりである。周期値３２１は、分周回路Ｃ３９０における分周する比率の周期となる値（８分周の場合は「８」：分周後の出力クロックにおける１／２周期の時間に相当）である。分周回路Ｃ３９０は、レジスタ出力値３６２及び出力クロック信号３１１を出力する。レジスタ出力値３６２は、分周回路Ｃ３９０の現在の時点での周期の残り時間（又は時間に相当する値）である。出力クロック信号３１１は、分周回路Ｃ３９０の分周後の出力クロック信号である。
【０１１２】
最小値算出部３３６には、分周回路Ａ３７０のレジスタ出力値３６０、分周回路Ｂ３８０のレジスタ出力値３６１、分周回路Ｃ３９０のレジスタ出力値３６２が入力される。最小値算出部３３６は、分周回路Ａ３７０のレジスタ出力値３６０、分周回路Ｂ３８０のレジスタ出力値３６１及び分周回路Ｃ３９０のレジスタ出力値３６２のうちの最小値を算出する（又は抽出する）。そして、その最小値を最小値算出部出力値３５７として分周回路Ａ３７０、分周回路Ｂ３８０及び分周回路Ｃ３９０へ出力する。
【０１１３】
分周回路Ａ３７０は、レジスタ部３３０、減算部３４２（スキップ部）、セレクタ部３４０及びＴフリップフロップ部３４１を具備している。
【０１１４】
レジスタ部３３０は、現在の時点での周期の残り時間（又は時間に相当する値）を保持する。レジスタ部３３０には、入力クロック信号３０１及びセレクタ出力値３６３が入力される。レジスタ部３３０は、入力クロック信号３０１の立ち上がりタイミングでセレクタ出力値３６３を保持し、保持した値を分周回路Ａ３７０のレジスタ出力値３６０として減算部３４２とクロック生成回路３００の外部にある最小値算出部３３６とへ出力する。
【０１１５】
減算部３４２は、現在の時点での周期の残り時間（又は時間に相当する値）から残り周期の最小値を減算する。減算部３４２には、分周回路Ａ３７０のレジスタ出力値３６０及び最小値算出部出力値３５７が入力される。減算部３４２は、分周回路Ａのレジスタ出力値３６０から最小値算出部出力値３５７を減算し、その減算結果を減算部出力値３５９としてセレクタ部３４０へ出力する。
【０１１６】
セレクタ部３４０には、減算部出力値３５９、分周回路Ａ３７０の周期値３２０及びリセット信号３０２が入力される。セレクタ部３４０は、リセット信号３０２がハイの場合、分周回路Ａ３７０の周期値３２０をセレクタ出力値３６３としてレジスタ部３３０へ出力する。セレクタ部３４０は、リセット信号３０２がロウの場合、且つ、減算部出力値３５９が「０」の場合、分周回路Ａ３７０の周期値３２０をセレクタ出力値３６３としてレジスタ部３３０へ出力する。リセット信号３０２がロウの場合、且つ、減算部出力値３５９が「０」以外の場合、減算部出力値３５９をセレクタ出力値３６３としてレジスタ部３３０に出力する。
【０１１７】
Ｔフリップフロップ部３４１には、入力クロック信号３０１、リセット信号３０２及び減算部出力値３５９が入力される。Ｔフリップフロップ部３４１は、リセット信号３０２をリセット、入力クロック信号３０１をクロック、減算部出力値３５９が「０」の場合をイネーブルとした、Ｔフリップフロップとして動作し、分周回路Ａ３７０の出力クロック信号３０９をＱとしてクロック生成回路３００の外部へ出力する。すなわち、Ｔフリップフロップ部３４１は、リセット信号３０２で初期化される。Ｔフリップフロップ部３４１は、減算部出力値３５９が「０」の場合、イネーブルとなり入力クロック信号３０１の立ち上がりタイミングに同期して保持内容を反転して出力する。減算部出力値３５９が「０」以外の場合、保持内容をそのまま出力する。
【０１１８】
分周回路Ｂ３８０及び分周回路Ｃ３９０についても、分周回路Ａ３７０と同じ構成なので、その説明を省略する。
【０１１９】
本実施の形態では、分周後の出力クロック信号の１／２周期内における現在の時点での周期の残り時間（又は時間に相当する値）、ずなわち、現在の時点（例示：立ち上がった状態／ハイレベルの状態）から次の状態変化（例示：立ち下がり／ロウレベルへの変化であり、１／２周期の終端）が発生するまでの間隔を状態変化間隔としている。
【０１２０】
次に、本発明の第２の実施の形態に係るクロック生成回路の動作（クロック生成回路の制御方法）について説明する。
【０１２１】
図１０は、本発明の第２の実施の形態に係るクロック生成回路の動作（クロック生成回路の制御方法）を示す制御フローチャートである。以下では、クロック生成回路３００（分周回路Ａ３７０、分周回路Ｂ３８０、分周回路Ｃ３９０）の動作のうち、主に分周回路Ａ３７０の動作について説明する。分周回路Ｂ３８０及び分周回路Ｃ３９０の動作については、分周回路Ａ３７０と同様であるのでその説明を省略する。
【０１２２】
リセット信号３０２にハイ信号が入力されることで、セレクタ部３４０は、分周回路Ａ３７０の周期値３２０をセレクタ出力値３６３としてレジスタ部３３０に出力する。レジスタ部３３０は、入力クロック信号３０１の立ち上がりタイミングでセレクタ出力値３６３を保持する。セレクタ出力値３６３は、現在の時点での周期の残り時間（又は時間に相当する値）、すなわち分周後の出力クロック信号における現在の状態から次の状態変化までの状態変化間隔である。このとき、セレクタ出力値３６３は、分周回路Ａ３７０の周期値３２０と同じである。そのため、レジスタ部３３０は、分周回路Ａ３７０の周期値３２０に初期化される（ステップＳ１１）。この場合、分周回路Ａ３７０のレジスタ出力値３６０は周期値３２０である。次に、リセット信号３０２にロウ信号が入力されることで、次のステップへ進む。
【０１２３】
同様にして、分周回路Ｂ３８０のレジスタ部３３０は、分周回路Ｂ３８０の周期値３２１に初期化される（分周回路Ｂ３８０のステップＳ１１）。すなわち、この場合、分周回路Ｂ３８０のレジスタ出力値３６１は周期値３２１である。また、分周回路Ｃ３９０のレジスタ部３３０は、分周回路Ｃ３９０の周期値３２２に初期化される（分周回路Ｃ３９０のステップＳ１１）。すなわち、この場合、分周回路Ｃ３９０のレジスタ出力値３６２は周期値３２２である。
【０１２４】
最小値算出部３３６は、分周回路Ａ３７０のレジスタ出力値３６０と分周回路Ｂ３８０のレジスタ出力値３６１と分周回路Ｃ３９０のレジスタ出力値３６２とを比較して、それらのうちの最小値を求める。その最小値は、分周回路Ａ３７０、分周回路Ｂ３８０及び分周回路Ｃ３９０における現在の時点から出力クロック信号が変化するまでの時間の最小値としての最小値算出部出力値３５７である（ステップＳ１２）。
【０１２５】
減算部３４２は、分周回路Ａ３７０のレジスタ出力値３６０から最小値算出部出力値３５７を減算して減算部出力値３５９を算出し、現在の時点での周期の残り時間を最小値の時間分だけ先に進ませる（ステップＳ１３）。
【０１２６】
セレクタ部３４０は、現在の時点での周期の残り時間としての減算部出力値３５９が「０」の場合には、分周回路Ａ３７０の周期値３２０を現在の時点での周期の残り時間であるセレクタ出力値３６３としてレジスタ部３３０へ出力する。減算部出力値３５９が「０」以外の場合、減算部出力値３５９をセレクタ出力値３６３としてレジスタ部３３０に出力する（ステップＳ１４）。
【０１２７】
レジスタ部３３０は、入力クロック信号３０１の立ち上がりタイミングでセレクタ出力値３６３を、現在の時点から出力クロック信号が変化するまでの残り時間（レジスタ出力値）として保持する（ステップＳ１５）。
【０１２８】
Ｔフリップフロップ部３４１は、減算部出力値３５９が「０」の場合には、イネーブルとなり入力クロック信号３０１の立ち上がりタイミングに同期して保持内容を反転して出力する。減算部出力値３５９が「０」以外の場合、保持内容をそのまま出力する。
【０１２９】
その後、ステップＳ１２に戻り、ステップＳ１２からステップＳ１５の処理を繰り返す。
【０１３０】
図１１は、本発明の第２の実施の形態に係るクロック生成回路の動作（クロック生成回路の制御方法）を示すタイミングチャートである。図中、最上段のＴ１、Ｔ２、…は時刻（期間）を示す。また、（ａ）はリセット信号３０２、（ｂ）は入力クロック信号３０１、（ｃ）は分周回路Ａ３７０の減算部出力値３５９、（ｄ）は分周回路Ａ３７０のセレクタ出力値３６３、（ｅ）は分周回路Ａ３７０のレジスタ出力値３６０、（ｆ）は分周回路Ｂ３８０のレジスタ出力値３６１、（ｇ）は分周回路Ｃ３９０のレジスタ出力値３６２、（ｈ）は最小値算出部出力値３５７、（ｉ）は分周回路Ａ３７０の出力クロック信号３０９、（ｊ）は分周回路Ｂ３８０の出力クロック信号３１０、（ｋ）は分周回路Ｃ３９０の出力クロック信号３１１である。ただし、図１１は、図９の場合において、分周回路Ａ３７０が周期を４に設定（分周回路Ａの周期値３２０を４に設定）、分周回路Ｂ３８０が周期を６に設定（分周回路Ｂの周期値３２１を６に設定）、分周回路Ｃ３９０が周期を８に設定（分周回路Ｃの周期値３２２を８に設定）の場合の動作について示している。
【０１３１】
時刻Ｔ０では、リセット信号３０２（ａ）がハイ信号になることで、セレクタ出力値３６３（ｄ）は、分周回路Ａ３７０の周期値３２０の「４」となる。その結果、レジスタ部３３０の保持値が分周回路Ａ３７０の周期値３２０の「４」に初期化される（ステップＳ１１）。また、Ｔフリップフロップ部３４１も初期化されてロウを保持する。
【０１３２】
同様にして、分周回路Ｂ３８０のレジスタ部３３０の保持値が分周回路Ｂ３８０の周期値３２１の「６」に初期化される（分周回路Ｂ３８０のステップＳ１１）。分周回路Ｂ３８０のＴフリップフロップ部３４１も初期化されてロウを保持する。また、分周回路Ｃ３９０のレジスタ部３３０の保持値が分周回路Ｃ３９０の周期値３２２の「８」に初期化される（分周回路Ｃ３９０のステップＳ１１）。分周回路Ｃ３９０のＴフリップフロップ部３４１も初期化されてロウを保持する。
【０１３３】
レジスタ部３３０は、レジスタ出力値３６０（ｅ）として保持値「４」を出力する。Ｔフリップフロップ部３４１は、分周回路Ａ３７０の出力クロック信号３０９（ｉ）としてロウを出力する。
【０１３４】
同様にして、分周回路Ｂ３８０のレジスタ部３３０は、レジスタ出力値３６１（ｆ）として保持値「６」を出力する。Ｔフリップフロップ部３４１は、分周回路Ｂ３８０の出力クロック信号３１０（ｊ）としてロウを出力する。また、分周回路Ｃ３９０のレジスタ部３３０は、レジスタ出力値３６２（ｇ）として保持値「８」を出力する。Ｔフリップフロップ部３４１は、分周回路Ｃ３９０の出力クロック信号３１１（ｋ）としてロウを出力する。
【０１３５】
最小値算出部３３６は、分周回路Ａ３７０のレジスタ出力値３６０、分周回路Ｂ３８０のレジスタ出力値３６１及び分周回路Ｃ３９０のレジスタ出力値３６２のうちの最小値を出力する（ステップＳ１２）。ここで、分周回路Ａ３７０のレジスタ出力値３６０が「４」で、分周回路Ｂ３８０のレジスタ出力値３６１が「６」で、分周回路Ｃ３９０のレジスタ出力値３６２が「８」なので、それらの最小値として最小値算出部出力値３５７（ｈ）は「４」となる。
【０１３６】
減算部３４２は、分周回路Ａ３７０のレジスタ出力値３６０の「４」から最小値算出部出力値３５７の「４」を減算し、減算結果の「０」を減算部出力値３５９（ｃ）として出力する。減算部出力値３５９の値は、周期の残り時間を先に進ませる時間分を示しているので、その値「０」だけ進ませる（ステップＳ１３）。すなわち、実質的には進ませない。
【０１３７】
セレクタ部３４０は、減算部出力値３５９が「０」なので、分周回路Ａ３７０の周期値３２０の「４」を周期の残り時間であるセレクタ出力値３６３としてレジスタ部３３０へ出力する（ステップＳ１４）。
【０１３８】
時刻Ｔ１において、リセット信号３０２（ｂ）がロウ信号になることでレジスタ部３３０の初期化が解除される。ただし、時刻Ｔ１の動作はＴ０と同じであり、時刻Ｔ０の各値はＴ１においても変化はない。
【０１３９】
レジスタ部３３０は、入力クロック信号３０１（ｂ）の立ち上がりタイミングでセレクタ出力値３６３である「４」を出力クロック信号が変化するまでの残り時間として保持する（ステップＳ１５）。
【０１４０】
時刻Ｔ２では、時刻Ｔ１での減算部出力値３５９が「０」なので、Ｔフリップフロップ部３４１は、入力クロック信号３０１の立ち上がりタイミングに同期して保持値を反転したハイ信号を、分周回路Ａ３７０の出力クロック信号３０９（ｉ）として出力する。
【０１４１】
同様にして、分周回路Ｂ３８０の時刻Ｔ１での減算部出力値３５９が「２」であり「０」ではない。そのため、分周回路Ｂ３８０のＴフリップフロップ部３４１は、保持値であるロウ信号を、分周回路Ｂ３８０の出力クロック信号３１０（ｊ）として出力する。また、分周回路Ｃ３９０の時刻Ｔ１での減算部出力値３５９が「４」であり「０」ではない。そのため、分周回路Ｃ３９０のＴフリップフロップ部３４１は、保持値であるロウ信号を、分周回路Ｃ３９０の出力クロック信号３１１（ｋ）として出力する。
【０１４２】
レジスタ部３３０は、レジスタ出力値３６０（ｅ）として保持値「４」を出力する。
【０１４３】
同様にして、分周回路Ｂ３８０のレジスタ部３３０は、レジスタ出力値３６１（ｆ）として保持値「２」を出力する。また、分周回路Ｃ３９０のレジスタ部３３０は、レジスタ出力値３６２（ｇ）として保持値「４」を出力する。
【０１４４】
最小値算出部３３６は、分周回路Ａ３７０のレジスタ出力値３６０、分周回路Ｂ３８０のレジスタ出力値３６１及び分周回路Ｃ３９０のレジスタ出力値３６２のうちの最小値を出力する（ステップＳ１２）。ここで、分周回路Ａ３７０のレジスタ出力値３６０が「４」で、分周回路Ｂ３８０のレジスタ出力値３６１が「２」で、分周回路Ｃ３９０のレジスタ出力値３６２が「４」なので、それらの最小値として最小値算出部出力値３５７（ｈ）は「２」となる。
【０１４５】
減算部３４２は、分周回路Ａ３７０のレジスタ出力値３６０の「４」から最小値算出部出力値３５７の「２」を減算し、減算結果の「２」を減算部出力値３５９（ｃ）として出力する。減算部出力値３５９の値は、周期の残り時間を先に進ませる時間分を示しているので、その値「２」だけ進ませる（ステップＳ１３）。
【０１４６】
セレクタ部３４０は、減算部出力値３５９が「２」なので、そのまま「２」を周期の残り時間であるセレクタ出力値３６３としてレジスタ部３３０へ出力する（ステップＳ１４）。
【０１４７】
レジスタ部３３０は、入力クロック信号３０１（ｂ）の立ち上がりタイミングでセレクタ出力値３６３である「２」を出力クロック信号が変化するまでの残り時間として保持する（ステップＳ１５）。
【０１４８】
時刻Ｔ３では、時刻Ｔ２での減算部出力値３５９が「２」なので、Ｔフリップフロップ部３４１は、保持値をそのまま変更せずハイ信号を、分周回路Ａ３７０の出力クロック信号３０９（ｉ）として出力する。
【０１４９】
同様にして、分周回路Ｂ３８０の時刻Ｔ２での減算部出力値３５９が「０」である。そのため、Ｔフリップフロップ部３４１は、入力クロック信号３０１の立ち上がりタイミングに同期して保持値を反転したハイ信号を、分周回路Ｂ３８０の出力クロック信号３１０（ｊ）として出力する。また、分周回路Ｃ３９０の時刻Ｔ２での減算部出力値３５９が「２」であり「０」ではない。そのため、分周回路Ｃ３９０のＴフリップフロップ部３４１は、保持値であるロウ信号を、分周回路Ｃ３９０の出力クロック信号３１１（ｋ）として出力する。
【０１５０】
レジスタ部３３０は、レジスタ出力値３６０（ｅ）として保持値「２」を出力する。
【０１５１】
同様にして、分周回路Ｂ３８０のレジスタ部３３０は、レジスタ出力値３６１（ｆ）として保持値「６」を出力する。また、分周回路Ｃ３９０のレジスタ部３３０は、レジスタ出力値３６２（ｇ）として保持値「２」を出力する。
【０１５２】
最小値算出部３３６は、分周回路Ａ３７０のレジスタ出力値３６０、分周回路Ｂ３８０のレジスタ出力値３６１及び分周回路Ｃ３９０のレジスタ出力値３６２のうちの最小値を出力する（ステップＳ１２）。ここで、分周回路Ａ３７０のレジスタ出力値３６０が「２」で、分周回路Ｂ３８０のレジスタ出力値３６１が「６」で、分周回路Ｃ３９０のレジスタ出力値３６２が「２」なので、それらの最小値として最小値算出部出力値３５７（ｈ）は「２」となる。
【０１５３】
減算部３４２は、分周回路Ａ３７０のレジスタ出力値３６０の「２」から最小値算出部出力値３５７の「２」を減算し、減算結果の「０」を減算部出力値３５９（ｃ）として出力する。減算部出力値３５９の値は、周期の残り時間を先に進ませる時間分を示しているので、その値「０」だけ進ませる（ステップＳ１３）。すなわち、進ませない。
【０１５４】
セレクタ部３４０は、減算部出力値３５９が「０」なので、分周回路Ａ３７０の周期値３２０の「４」を周期の残り時間であるセレクタ出力値３６３としてレジスタ部３３０へ出力する（ステップＳ１４）。
【０１５５】
レジスタ部３３０は、入力クロック信号３０１（ｂ）の立ち上がりタイミングでセレクタ出力値３６３である「４」を出力クロック信号が変化するまでの残り時間として保持する（ステップＳ１５）。
【０１５６】
時刻Ｔ４では、時刻Ｔ３での減算部出力値３５９が「０」である。そのため、Ｔフリップフロップ部３４１は、入力クロック信号３０１の立ち上がりタイミングに同期して保持値を反転したロウ信号を、分周回路Ａ３７０の出力クロック信号３０９（ｉ）として出力する。
【０１５７】
同様にして、分周回路Ｂ３８０の時刻Ｔ３での減算部出力値３５９が「４」であり「０」ではない。そのため、分周回路Ｂ３８０のＴフリップフロップ部３４１は、保持値であるハイ信号を、分周回路Ｂ３８０の出力クロック信号３１０（ｊ）として出力する。また、分周回路Ｃ３９０の時刻Ｔ３での減算部出力値３５９が「０」である。そのため、Ｔフリップフロップ部３４１は、入力クロック信号３０１の立ち上がりタイミングに同期して保持値を反転したハイ信号を、分周回路Ｃ３９０の出力クロック信号３１１（ｋ）として出力する。
【０１５８】
レジスタ部３３０は、レジスタ出力値３６０（ｅ）として保持値「４」を出力する。
【０１５９】
同様にして、分周回路Ｂ３８０のレジスタ部３３０は、レジスタ出力値３６１（ｆ）として保持値「４」を出力する。また、分周回路Ｃ３９０のレジスタ部３３０は、レジスタ出力値３６２（ｇ）として保持値「８」を出力する。
【０１６０】
最小値算出部３３６は、分周回路Ａ３７０のレジスタ出力値３６０、分周回路Ｂ３８０のレジスタ出力値３６１及び分周回路Ｃ３９０のレジスタ出力値３６２のうちの最小値を出力する（ステップＳ１２）。ここで、分周回路Ａ３７０のレジスタ出力値３６０が「４」で、分周回路Ｂ３８０のレジスタ出力値３６１が「４」で、分周回路Ｃ３９０のレジスタ出力値３６２が「８」なので、それらの最小値として最小値算出部出力値３５７（ｈ）は「４」となる。
【０１６１】
減算部３４２は、分周回路Ａ３７０のレジスタ出力値３６０の「４」から最小値算出部出力値３５７の「４」を減算し、減算結果の「０」を減算部出力値３５９（ｃ）として出力する。減算部出力値３５９の値は、周期の残り時間を先に進ませる時間分を示しているので、その値「０」だけ進ませる（ステップＳ１３）。すなわち、進ませない。
【０１６２】
セレクタ部３４０は、減算部出力値３５９が「０」なので、分周回路Ａ３７０の周期値３２０の「４」を周期の残り時間であるセレクタ出力値３６３としてレジスタ部３３０へ出力する（ステップＳ１４）。
【０１６３】
レジスタ部３３０は、入力クロック信号３０１（ｂ）の立ち上がりタイミングでセレクタ出力値３６３である「４」を出力クロック信号が変化するまでの残り時間として保持する（ステップＳ１５）。
【０１６４】
以下、時刻Ｔ５以降も、時刻Ｔ１〜Ｔ４と同様な動作を繰り返す。
【０１６５】
以上のように、リセット信号３０２がロウ信号となる時刻Ｔ１の次の時刻Ｔ２以降は、分周回路Ａ３７０の出力クロック信号３０９と分周回路Ｂ３８０の出力クロック信号３１０と分周回路Ｃ３９０の出力クロック信号３１１のいずれかが変化することがわかる。
【０１６６】
本実施の形態により、クロック生成回路において、各分周回路に周期値を入力することにより、出力クロックが変化しない期間（例示：周期の残り時間）を算出して、出力クロックが変化しない期間分だけ出力クロックを進ませることにより、出力クロックの変化しない期間をスキップすることができる。それにより、出力クロックの変化しない期間が無くなり、エミュレータの動作時間を短くすることが可能となる。
【０１６７】
なお、本発明の第２の実施の形態に係るクロック生成回路を適用したエミュレータ及びエミュレーション方法については、図８のエミュレータ４００において、クロック制御部４２０に、クロック生成回路２００の代わりにクロック生成回路３００を含んでいる他は、第１の実施の形態の場合と同様である。ただし、クロック生成回路３００は、上述されたように、入力クロック信号３０１とリセット信号３０２と各分周回路（Ａ〜Ｃ）の周期値３２０、３２１、３２２とに基づいて、同じ入力クロック信号を異なる分周比で分周した複数の出力クロック信号３０９〜３１１を生成する。複数の出力クロック信号３０９〜３１１は検査対象回路４５０へ出力される。
【０１６８】
本実施の形態においても、第１の実施の形態と同様の効果を得ることができる。
【０１６９】
本発明は上記各実施の形態に限定されず、本発明の技術思想の範囲内において、各実施の形態は適宜変形又は変更され得ることは明らかである。
【符号の説明】
【０１７０】
１１    演算器
１２ａ    演算器
１００、１００−１、１００−２、１００−３    クロック分周回路
１０１    レジスタ
１０３    セレクタ
１０４    減算器
１０６    加算器
１０７    セレクタ
１０８    比較器
１０９    入力クロック信号
１１０    リセット信号
１１１    分母設定値
１１２    分子設定値
１１３    レジスタ出力値
１１４    分母設定値の２倍の値
１１５    セレクタ出力値
１１６    演算器出力値
１１７    分子設定値の２倍の値
１１８    加算器出力値
１２０    演算器出力値
１２１    出力クロック信号
２００    クロック生成回路
２０１    入力クロック信号
２０２    リセット信号
２０３    分周回路Ａの分子値
２０４    分周回路Ｂの分子値
２０５    分周回路Ｃの分子値
２０６    分周回路Ａの分母値
２０７    分周回路Ｂの分母値
２０８    分周回路Ｃの分母値
２０９    分周回路Ａの出力クロック信号
２１０    分周回路Ｂの出力クロック信号
２１１    分周回路Ｃの出力クロック信号
２３０    レジスタ部
２３１    減算部Ａ
２３２    加算部
２３３    セレクタ部
２３４    比較部
２３５    クロック数算出部
２３６    最小値算出部
２３７    減算部Ｂ
２５０    レジスタ出力値
２５１    減算部Ａ出力値
２５２    加算部出力値
２５３    セレクタ出力値
２５４    分周回路Ａのクロック数算出値
２５５    分周回路Ｂのクロック数算出値
２５６    分周回路Ｃのクロック数算出値
２５７    最小値算出部出力値
２５８    減算部Ｂ出力値
２７０    分周回路Ａ
２８０    分周回路Ｂ
２９０    分周回路Ｃ
３００    クロック生成回路
３０１    入力クロック信号
３０２    リセット信号
３０９    分周回路Ａの出力クロック信号
３１０    分周回路Ｂの出力クロック信号
３１１    分周回路Ｃの出力クロック信号
３２０    分周回路Ａの周期値
３２１    分周回路Ｂの周期値
３２２    分周回路Ｃの周期値
３３０    レジスタ部
３３６    最小値算出部
３４０    セレクタ部
３４１    Ｔフリップフロップ部
３４２    減算部
３５７    最小値算出部出力値
３５９    減算部出力値
３６０    分周回路Ａのレジスタ出力値
３６１    分周回路Ｂのレジスタ出力値
３６２    分周回路Ｃのレジスタ出力値
３６３    セレクタ出力値
３７０    分周回路Ａ
３８０    分周回路Ｂ
３９０    分周回路Ｃ
４００      エミュレータ
４１０      制御部
４２０      クロック制御部
４３０      検証コンソール
４５０      検証対象回路
【図１】
2013109436.tif 000003
【図２】
2013109436.tif 000004
【図３】
2013109436.tif 000005
【図４】
2013109436.tif 000006
【図５】
2013109436.tif 000007
【図６】
2013109436.tif 000008
【図７】
2013109436.tif 000009
【図８】
2013109436.tif 000010
【図９】
2013109436.tif 000011
【図１０】
2013109436.tif 000012
【図１１】
2013109436.tif 000013