(57)【特許請求の範囲】
【請求項１】
トランジスタの組み合わせからなる組み合わせ論理回路を有する回路におけるシミュレーション対象回路を判断する判断部と、
前記判断部により判断されたシミュレーション対象回路を複数のシミュレーション単位回路に分割する分割部と、
前記分割部によって分割された複数のシミュレーション単位回路ごとにタイミング解析を実行するシミュレーション部と、
該シミュレーション部によるシミュレーション結果に基づいて、前記シミュレーション対象回路の特性値に関するライブラリを作成する作成部とをそなえ、
前記判断部は、前記回路の入力側端部から接続をたどって下流方向に検索を行ない、たどり着いた検索対象の回路が順序回路であるか否かを判断し、前記検索対象の回路が順序回路であると判断した場合には、前記入力側端部から前記検索対象の回路までの回路をシミュレーションすべきシミュレーション対象回路と判断するとともに、前記回路の出力側端部から接続をたどって上流方向に検索を行ない、たどり着いた検索対象の回路が順序回路であるか否かを判断し、前記検索対象の回路が順序回路であると判断した場合には、前記出力側端部から前記検索対象の回路までの回路をシミュレーションすべきシミュレーション対象回路と判断することを特徴とする、ライブラリ作成装置。
【請求項２】
前記シミュレーション部が複数のシミュレーション単位回路に対してシミュレーションを実行した場合には、前記作成部が、前記複数のシミュレーション単位回路のうちの互いに隣接するシミュレーション単位回路のシミュレーション結果を総合して前記ライブラリを作成することを特徴とする、請求項１記載のライブラリ作成装置。
【請求項３】
コンピュータによるライブラリ作成方法であって、
トランジスタの組み合わせからなる組み合わせ論理回路を有する回路におけるシミュレーション対象回路を判断する判断ステップと、
前記判断ステップにより判断されたシミュレーション対象回路を複数のシミュレーション単位回路に分割する分割ステップと、
前記分割ステップによって分割された複数のシミュレーション単位回路ごとにタイミング解析を実行するシミュレーションステップと、
該シミュレーションステップにおけるシミュレーション結果に基づいて、前記シミュレーション対象回路の特性値に関するライブラリを作成する作成ステップとを含み、
前記判断ステップは、前記回路の入力側端部から接続をたどって下流方向に検索を行ない、たどり着いた検索対象の回路が順序回路であるか否かを判断し、前記検索対象の回路が順序回路であると判断した場合には、前記入力側端部から前記検索対象の回路までの回路をシミュレーションすべきシミュレーション対象回路と判断するとともに、前記回路の出力側端部から接続をたどって上流方向に検索を行ない、たどり着いた検索対象の回路が順序回路であるか否かを判断し、前記検索対象の回路が順序回路であると判断した場合には、前記出力側端部から前記検索対象の回路までの回路をシミュレーションすべきシミュレーション対象回路と判断することを特徴とする、ライブラリ作成方法。
【請求項４】
前記シミュレーションステップが複数のシミュレーション単位回路に対してシミュレーションを実行した場合には、前記作成ステップが、前記複数のシミュレーション単位回路のうちの互いに隣接するシミュレーション単位回路のシミュレーション結果を総合して前記ライブラリを作成することを特徴とする、請求項３記載のライブラリ作成方法。
【請求項５】
トランジスタの組み合わせからなる組み合わせ論理回路を有する回路の特性値についてのライブラリを作成する機能をコンピュータに実現させるためのライブラリ作成プログラムを記録したコンピュータ読取可能な記録媒体であって、
前記ライブラリ作成プログラムが、
前記回路の入力側端部から接続をたどって下流方向に検索を行ない、たどり着いた検索対象の回路が順序回路であるか否かを判断し、前記検索対象の回路が順序回路であると判断した場合には、前記入力側端部から前記検索対象の回路までの回路をシミュレーションすべきシミュレーション対象回路と判断するとともに、前記回路の出力側端部から接続をたどって上流方向に検索を行ない、たどり着いた検索対象の回路が順序回路であるか否かを判断し、前記検索対象の回路が順序回路であると判断した場合には、前記出力側端部から前記検索対象の回路までの回路をシミュレーションすべきシミュレーション対象回路と判断する判断部、
前記判断部により判断されたシミュレーション対象回路を複数のシミュレーション単位回路に分割する分割部、
前記分割部によって分割された複数のシミュレーション単位回路ごとにタイミング解析を実行するシミュレーション部、及び、
該シミュレーション部によるシミュレーション結果に基づいて、前記シミュレーション対象回路の特性値に関するライブラリを作成する作成部として、前記コンピュータを機能させることを特徴とする、ライブラリ作成プログラムを記録したコンピュータ読取可能な記録媒体。
【請求項６】
前記シミュレーション部が複数のシミュレーション単位回路に対してシミュレーションを実行した場合には、前記作成部が、前記複数のシミュレーション単位回路のうちの互いに隣接するシミュレーション単位回路のシミュレーション結果を総合して前記ライブラリを作成することを特徴とする、請求項５記載のライブラリ作成プログラムを記録したコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、階層設計された回路に対する動作検証を実行する際に用いられるライブラリを作成するための技術に関する。
【背景技術】
【０００２】
従来から、大規模回路を設計する際には、その設計手法として階層設計を用いることが多い。この階層設計では、上位の大規模回路を複数の下位の小規模回路に分割し、小規模回路ごとに設計、動作検証（以下、単に検証ともいう）を行なった後、設計済みの小規模回路を組み合わせて上位の大規模回路で設計や検証を行なう。
なお、階層設計を実施する際の階層の数は、上位、下位の２階層とは限らず、２以上の階層で設計を実施する場合もある。
【０００３】
階層設計された回路には、検証を実行するにあたり、下位階層の回路ごとに検証すれば十分な回路（領域）がある他、複数の下位階層の回路を組み合わせて上位階層の回路として検証が必要な回路や、下位階層の回路と上位階層の回路とを組み合わせて検証が必要な回路がある。
上位階層の回路での検証では、複数の下位階層の回路ごとにライブラリを作成しておき、それらを組み合わせることによって、かかる上位階層の回路の動作検証を行なう方法が一般的である。なお、ライブラリとは回路の特性値を記録されたテーブル等をいい、ライブラリは、メモリやハードディスク等の記憶手段に回路毎の特性値を当該回路に対応付けて保存することにより実現される。
【０００４】
このように下位階層の回路をライブラリ化しておくことにより、上位階層の回路の検証を効率的に実行することができ、検証時間を短縮することができる。
このとき、下位階層の回路のライブラリには、上位階層の回路の検証に必要となる情報が不足なく入っている必要がある。
ここで、回路の検証例として、図１０に示す同期回路１００のＦＦ（Flip Flop）１０１ａ〜１０１ｆ間のディレイ検証について説明する。つまり、図１１に示すように、あるＦＦから信号の進行方向の下流側に存在する次のＦＦまで、かかる信号が１サイクル時間（Cycle time；例えば、１ｓｅｃ／周波数）で到達できるか否かを検証するための、ＦＦ間のディレイ検証について説明する。
【０００５】
図１０に示すように、同期回路１００は複数（ここでは６つ）のＦＦ１０１ａ〜１０１ｆをそなえて構成されており、ここでは図１０中に一点鎖線のブロックで示す、ＦＦ１０１ｃ〜１０１ｅを含む端子１０４と端子１０５とに挟まれた範囲の回路を下位階層の回路１０２とするとともに、同期回路１００において下位階層の回路１０２を除く部分を上位階層の回路１０３とする。
【０００６】
この同期回路１００のように、階層設計を実行した結果、下位階層の回路１０２に複数のＦＦ１０１ｃ〜１０１ｅが存在する場合がある。
この場合、図１２に示すように、複数のＦＦ１０１ｃ〜１０１ｅ間、つまり、ＦＦ１０１ｃとＦＦ１０１ｄとの間、及び、ＦＦ１０１ｄとＦＦ１０１ｅと間についてのディレイ検証は、下位階層の回路１０２のみで行なうことができる。
【０００７】
すなわち、下位階層の回路１０２において、信号を送り出すＦＦとその信号を受け取るＦＦとが存在する場合には、これら２つのＦＦ間のディレイ検証は、下位階層の回路１０２内で実行することができる。
一方、同期回路１００において下位階層の回路１０２によって階層を途中で区切られるＦＦ間、つまり、ＦＦ１０１ｂとＦＦ１０１ｃとの間、及び、ＦＦ１０１ｅとＦＦ１０１ｆとの間についてのディレイ検証は、下位階層の回路１０２のみでは行なうことができず、上位階層の回路１０３と組み合わせて実行する必要がある。
【０００８】
したがって、下位階層の回路１０２において、信号を送り出してくる上流側のＦＦ１０１ｂが存在しないＦＦ１０１ｃの上流側部分、つまり、下位階層の回路１０２の入力側端部（上流側端部）である端子１０４からＦＦ１０１ｃまでの部分については、この部分のディレイ（特性値）をライブラリ化しておくとともに、上位階層の回路１０３においてＦＦ１０１ｂとその出力側端子である端子１０４との間の部分のディレイをライブラリ化し、これらのライブラリを組み合わせて検証することにより、ＦＦ１０１ｂとＦＦ１０１ｃとの間のディレイ検証を実行することができる。
【０００９】
同様に、下位階層の回路１０２において、信号を受ける下流側のＦＦ１０１ｆが存在しないＦＦ１０１ｅの下流側部分、つまり、下位階層の回路１０２の出力側端部（下流側端部）である端子１０５からＦＦ１０１ｅまでの部分については、この部分のディレイをライブラリ化しておくとともに、上位階層の回路１０３においてＦＦ１０１ｆとその入力側端子である端子１０５との間の部分のディレイをライブラリ化し、これらのライブラリを組み合わせて検証することにより、ＦＦ１０１ｅとＦＦ１０１ｆとの間のディレイ検証を実行することができる。
【００１０】
次に、図１３に示すごとく構成された回路１１０を例にあげ、この回路１１０全体のタイミング解析（ディレイ検証）を行なう際のシミュレーション手法（ライブラリ作成方法）について説明する。なお、このシミュレーション手法は、上述した図１０に示す下位階層の回路１０２のディレイ検証にも用いられるものである。
まず、図１３に示す回路１１０について説明すると、回路１１０は、ＲＡＭ（Random Access Memory），ＦＦ（latch），組み合わせ論理（組み合わせ回路）などから構成されており、さらに、それぞれはトランジスタの組み合わせからなっている。
【００１１】
このような回路１１０全体のタイミング解析を行なう際には、回路１１０全体を一括してシミュレーションする手法ではなく、図１４に示すフローチャート（ステップＳ１００〜Ｓ１０５）に示すように、解析対象回路１１０をシミュレーション単位回路に分割し、遅延の特性をシミュレーション単位回路ごとに測定し、それらを総合する手法（静的タイミング解析）を用いる。
【００１２】
つまり、設計者によってシミュレーション対象回路１１０が入力、選択され（ステップＳ１００）、シミュレーションを実行するシミュレータが回路１１０を認識すると（ステップＳ１０１）、シミュレータは、回路１１０を図１５に示すごとく複数のシミュレーション単位領域（シミュレーション単位回路）１１０ａ〜１１０ｅに分割する（ステップＳ１０２）。
【００１３】
このシミュレーション単位領域１１０ａ〜１１０ｅの分割処理（上記ステップＳ１０２）は、例えば、トランジスタの個数、あるいは、回路の動作内容、もしくは、タイミングの特性の区切りが良いところで回路１１０を分割することによって実行される。
そして、シミュレータは、分割したシミュレーション単位領域ごとにシミュレーションを実行し（ステップＳ１０３）、シミュレーション単位領域ごとの特性を得る（ステップＳ１０４）。
【００１４】
このシミュレーション処理（上記ステップＳ１０３）では、例えば、ＳＰＩＣＥ（Simulation Program with Integrated Circuit Emphasis）に代表されるシミュレータを使用し、動作シミュレーションを実行することにより、シミュレーション単位領域ごとの遅延等の特性を測定する。
次に、シミュレータは、シミュレーション処理で得られたシミュレーション単位領域ごとの特性を総合し（ステップＳ１０４）、総合された特性をメモリに記録保持させることによってライブラリを作成し（ステップＳ１０５）、処理を終了する。
【００１５】
なお、シミュレーション単位領域ごとの特性の総合処理（上記ステップＳ１０４）は、ライブラリ化したい所望のパスが複数のシミュレーション単位領域からなる場合には、これら複数のシミュレーション単位領域の特性を総合することによって実行され、最も単純な総合方法として、これら複数のシミュレーション単位領域の特性を合計することによって総合処理を実行することが考えられる。
【００１６】
例えば、シミュレーション処理の結果得られる特性が遅延時間であり、所望のパスのディレイをライブラリ化したい場合には、かかるパスを構成する複数のシミュレーション単位領域の特性としての遅延時間を合計することによって、所望のパスの遅延時間を得ることができる。
つまり、図１０に示す下位階層の回路１０２に対して上記手法を適用する場合、この特性の総合処理では、ＦＦ１０１ｃからＦＦ１０１ｄまでの間、及び、ＦＦ１０１ｄからＦＦ１０１ｅまでの間のそれぞれが、ライブラリ化が必要な一つのパスとして認識され、総合処理の結果、これらの間の特性値が算出される。
【００１７】
なお、従来から論理回路のシミュレーション方法は種々提案されている（例えば、下記特許文献１参照）。
【特許文献１】特開平１０−１４９３８５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１８】
ところで、図１０を参照しながら上述したように、階層設計を行なった場合、下位階層の回路１０２には、下位階層の回路１０２と上位階層の回路１０３とを組み合わせて検証しなければならない回路（領域）と、下位階層の回路１０２内で検証可能な回路（領域）とがある。
具体的には、下位階層の回路１０２の入力側端部（端子１０４）からＦＦ１０１ｃまでの間、及び、出力側端部（端子１０５）からＦＦ１０１ｅまでの間の回路は、上位階層の回路１０３と組み合わせて検証しなければならないが、ＦＦ１０１ｃからＦＦ１０１ｄまでの間、及び、ＦＦ１０１ｄからＦＦ１０１ｅまでの間の回路は下位階層の回路１０２のみで検証可能である。
【００１９】
しかしながら、従来は、下位階層の回路１０２と上位階層の回路１０３とを組み合わせて回路１００を検証する場合、下位階層の回路１０２の全回路に対して検証を再度実行し、下位階層の回路１０２全てを対象にライブラリを作成していた。
そのため、上位階層の回路１０３と組み合わせて検証をする必要のない、ライブラリ化不要なＦＦ１０１ｃからＦＦ１０１ｄまでの間、及び、ＦＦ１０１ｄからＦＦ１０１ｅまでの間の回路に対しても検証、ライブラリ化を実行することになり、無駄な処理に時間を費やしていた。
【００２０】
しかも、これらライブラリ化不要な回路に対しても、図１４に示したシミュレーション手法（ライブラリ作成方法）によって、シミュレーション単位領域に回路を分割し、分割された複数のシミュレーション単位領域それぞれに対してシミュレーションを実行するので、シミュレーション処理に多大な時間を要していた。
さらに、複数のシミュレーション単位領域に対するシミュレーション結果としての特性を総合する処理も必要であるため、ライブラリ作成のための処理時間はさらに増大していた。
【００２１】
本発明は、このような課題に鑑み創案されたもので、階層設計によって設計された下位階層の回路と上位階層の回路とを有する回路に対する動作検証を実行する際に用いる、下位階層の回路の特性値についてのライブラリを効率良く作成して、ライブラリ作成時間を大幅に短縮できるようにすることを目的とする。
【課題を解決するための手段】
【００２２】
上記目的を達成するために、本発明のライブラリ作成装置は、トランジスタの組み合わせからなる組み合わせ論理回路を有する回路におけるシミュレーション対象回路を判断する判断部と、この判断部により判断されたシミュレーション対象回路を複数のシミュレーション単位回路に分割する分割部と、この分割部によって分割された複数のシミュレーション単位回路ごとにタイミング解析を実行するシミュレーション部と、このシミュレーション部によるシミュレーション結果に基づいて、前記シミュレーション対象回路の特性値に関するライブラリを作成する作成部とをそなえ、前記判断部は、前記回路の入力側端部から接続をたどって下流方向に検索を行ない、たどり着いた検索対象の回路が順序回路であるか否かを判断し、前記検索対象の回路が順序回路であると判断した場合には、前記入力側端部から前記検索対象の回路までの回路をシミュレーションすべきシミュレーション対象回路と判断するとともに、前記回路の出力側端部から接続をたどって上流方向に検索を行ない、たどり着いた検索対象の回路が順序回路であるか否かを判断し、前記検索対象の回路が順序回路であると判断した場合には、前記出力側端部から前記検索対象の回路までの回路をシミュレーションすべきシミュレーション対象回路と判断することを特徴としている。
【００２３】
なお、前記シミュレーション部が複数のシミュレーション単位回路に対してシミュレーションを実行した場合には、前記作成部が、前記複数のシミュレーション単位回路のうちの互いに隣接するシミュレーション単位回路のシミュレーション結果を総合して前記ライブラリを作成することが好ましい。
【００２４】
また、上記目的を達成するために、本発明のライブラリ作成方法は、コンピュータによるライブラリ作成方法であって、トランジスタの組み合わせからなる組み合わせ論理回路を有する回路におけるシミュレーション対象回路を判断する判断ステップと、この判断ステップにより判断されたシミュレーション対象回路を複数のシミュレーション単位回路に分割する分割ステップと、この分割ステップによって分割された複数のシミュレーション単位回路ごとにタイミング解析を実行するシミュレーションステップと、このシミュレーションステップにおけるシミュレーション結果に基づいて、前記シミュレーション対象回路の特性値に関するライブラリを作成する作成ステップとを含み、前記判断ステップは、前記回路の入力側端部から接続をたどって下流方向に検索を行ない、たどり着いた検索対象の回路が順序回路であるか否かを判断し、前記検索対象の回路が順序回路であると判断した場合には、前記入力側端部から前記検索対象の回路までの回路をシミュレーションすべきシミュレーション対象回路と判断するとともに、前記回路の出力側端部から接続をたどって上流方向に検索を行ない、たどり着いた検索対象の回路が順序回路であるか否かを判断し、前記検索対象の回路が順序回路であると判断した場合には、前記出力側端部から前記検索対象の回路までの回路をシミュレーションすべきシミュレーション対象回路と判断することを特徴としている。
なお、前記シミュレーションステップが複数のシミュレーション単位回路に対してシミュレーションを実行した場合には、前記作成ステップが、前記複数のシミュレーション単位回路のうちの互いに隣接するシミュレーション単位回路のシミュレーション結果を総合して前記ライブラリを作成することが好ましい。
【００２５】
また、上記目的を達成するために、本発明のコンピュータ読取可能な記録媒体は、トランジスタの組み合わせからなる組み合わせ論理回路を有する回路の特性値についてのライブラリを作成する機能をコンピュータに実現させるためのライブラリ作成プログラムを記録したものであって、前記ライブラリ作成プログラムが、前記回路の入力側端部から接続をたどって下流方向に検索を行ない、たどり着いた検索対象の回路が順序回路であるか否かを判断し、前記検索対象の回路が順序回路であると判断した場合には、前記入力側端部から前記検索対象の回路までの回路をシミュレーションすべきシミュレーション対象回路と判断するとともに、前記回路の出力側端部から接続をたどって上流方向に検索を行ない、たどり着いた検索対象の回路が順序回路であるか否かを判断し、前記検索対象の回路が順序回路であると判断した場合には、前記出力側端部から前記検索対象の回路までの回路をシミュレーションすべきシミュレーション対象回路と判断する判断部、この判断部により判断されたシミュレーション対象回路を複数のシミュレーション単位回路に分割する分割部、この分割部によって分割された複数のシミュレーション単位回路ごとにタイミング解析を実行するシミュレーション部、及び、このシミュレーション部によるシミュレーション結果に基づいて、前記シミュレーション対象回路の特性値に関するライブラリを作成する作成部として、前記コンピュータを機能させることを特徴としている。
なお、前記シミュレーション部が複数のシミュレーション単位回路に対してシミュレーションを実行した場合には、前記作成部が、前記複数のシミュレーション単位回路のうちの互いに隣接するシミュレーション単位回路のシミュレーション結果を総合して前記ライブラリを作成することが好ましい。
【発明の効果】
【００２６】
このように、本発明によれば、判断部が、回路においてライブラリ化が必要なシミュレーション対象回路を判断し、シミュレーション部が判断部によって判断されたシミュレーション対象回路に対してのみシミュレーションを実行するとともに、作成部がシミュレーション対象回路の特性値に関するライブラリを作成するので、シミュレーションが不要な回路に対する無駄なシミュレーション処理及びライブラリ作成処理を実行することなく、ライブラリの作成を高効率に実行してライブラリ作成時間を大幅に短縮することができる。
【発明を実施するための最良の形態】
【００２７】
以下、図面を参照しながら本発明の実施の形態について説明する。
〔１〕本発明の第１実施形態について
まず、図１に示すブロック図を参照しながら、本発明の第１実施形態としてのシミュレーション装置１の構成について説明する。この図１に示すように、本シミュレーション装置１は、設計者によって設計、入力された回路の設計情報を保持するデータベース１０に接続され、回路認識部１１，判断部１２，分割部１３，シミュレーション部１４，作成部１５，及び検証部１６をそなえて構成されている。
【００２８】
本シミュレーション装置１は、データベース１０に設計情報を保持された回路全体、もしくは、かかる回路における上位階層の回路に対する動作検証（ディレイ検証）を実行するものであり、本シミュレーション装置１において、回路認識部１１，判断部１２，分割部１３，シミュレーション部１４，及び作成部１５が、本発明のライブラリ作成装置２として機能する。
【００２９】
また、本シミュレーション装置１は、例えば、図２に示すごとくモニタ５，入力インタフェースとしてのキーボード６及びマウス７，並びに記憶装置８をそなえて構成されたコンピュータ３の演算部（例えば、ＣＰＵ：Central Processing Unit）４によって実現される。つまり、本シミュレーション装置１の回路認識部１１，判断部１２，分割部１３，シミュレーション部１４，作成部１５，及び検証部１６は、演算部４が、所定のアプリケーションプログラム（ライブラリ作成プログラムもしくはシミュレーションプログラム）を実行することによって実現される。
【００３０】
データベース１０は、設計者によって、例えばキーボード６やマウス７を用いて入力、選択された回路の設計情報を保持するものである。この回路の設計情報は、階層設計により設計されたものであり、この回路の設計情報には回路の階層に関する情報も含まれている。
さらに、データベース１０は、作成部１５によって作成されるライブラリを保持する。
【００３１】
ここで、本シミュレーション装置１の動作検証対象である、データベース１０に設計情報を保持された回路の構成例について図３を参照しながら説明する。
図３に示すごとく、本シミュレーション装置１の動作検証対象である回路２０は、典型的なＲＡＭ（Random Access Memory）マクロ（macro）を含んでおり、ＦＦ（Flip Flop）２１ａ〜２１ｄ，組合せ回路２２ａ〜２２ｆ，入力端子２３ａ，出力端子２３ｂ，ＲＡＭ（RAM array）２４をそなえて構成されている。
【００３２】
この回路２０における典型的なＲＡＭマクロは、入力端子２３ａから出力端子２３ｂまでの範囲の回路であり、このＲＡＭマクロが下位階層の回路２５に該当する。
つまり、入力端子２３ａからの信号を組合せ回路２２ｂを介してＦＦ２１ｂが受け取り、組合せ回路２２ｃを介したＦＦ２１ｂからの出力でＲＡＭ２４にアクセスし、さらに、ＲＡＭ２４からの出力を組合せ回路２２ｄを介してＦＦ２１ｃが受け取り、組合せ回路２２ｅを介したＦＦ２１ｃからの出力を出力端子２３ｂが外部に出力する、という入力端子２３ａから出力端子２３ｂまでの構成が、ＲＡＭマクロであり、階層設計によって設計された回路２０の下位階層の回路２５である。
【００３３】
そして、回路２０において、下位階層の回路２５以外が上位階層の回路２６となる。
本シミュレーション装置１は、この回路２０に対するディレイ検証（ここでは、下位階層の回路２５と上位階層の回路２６とを組み合わせた、ＦＦ２１ａからＦＦ２１ｂまでの回路及びＦＦ２１ｃからＦＦ２１ｄまでの回路に対する動作検証）を実行するものであり、ライブラリ作成装置２は、回路２０に対するディレイ検証を実行する際に必要になる、下位階層の回路２５の特性値についてのライブラリを作成するものである。
【００３４】
回路認識部１１は、データベース１０に保持された回路２０の設計情報を読み込んで、かかる回路２０を認識するものであり、回路２０全体の構成を認識するとともに、回路２０における階層も認識する。つまり、回路２０における下位階層の回路２５や上位階層の回路２６などを認識する。
判断部１２は、回路認識部１１によって認識された回路２０に対する動作検証を実行する際に、下位階層の回路２５におけるシミュレーション対象回路を判断するものである。
【００３５】
ここで、シミュレーション対象回路とは、シミュレーション部１４によってシミュレーションを実行する回路をいい、すなわち、シミュレーションを実行し、その結果得られる特性に関するライブラリを作成する対象の回路のことをいう。
判断部１２は、所定の特殊回路（ここでは、ＲＡＭ）を含んでいるか否かに基づいて下位階層の回路２５からシミュレーション対象回路を判断するように構成されており、特殊回路を含む回路はシミュレーション対象回路ではないと判断することにより、シミュレーション対象回路を抽出する。
【００３６】
具体的には、判断部１２は、下位階層の回路２５から所定の特殊回路としてＲＡＭ２４を検出し、検出したＲＡＭ２４の信号の進行方向に対する上流側最近のＦＦ２１ｂから下流側最近のＦＦ２１ｃまでの範囲の回路をシミュレーション不要な回路と判断し、当該回路以外の回路である、入力端子２３ａからＦＦ２１ｂまでの回路及び出力端子２３ｂからＦＦ２１ｃまでの回路を、シミュレーション対象回路であると判断する。
【００３７】
なお、このように判断部１２がシミュレーション不要な回路を判断して、下位階層の回路２５におけるシミュレーション不要な回路以外の回路をシミュレーション対象回路と判断することができるのは、一般に、下位階層の回路２５においてＲＡＭ２４が必ず２つのＦＦに挟まれるように配置され、さらに、下位階層の回路２５が、かかる２つのＦＦ以外にはＦＦを含まないように構成されているからである。
【００３８】
換言すると、通常、ＲＡＭ等の特殊回路を設計すると、解析が大変になるので、この特殊回路は２つのＦＦ間に配置するとともに、これらの特殊回路を挟む２つのＦＦ間は同一階層内に入るように階層を決定して、その階層には他のＦＦを含めないようにする。これにより解析を簡略化できるようにしているのである。
本シミュレーション装置１（ライブラリ作成装置２）はこの点に着目し、この設計上の特性を利用して、判断部１２が、特殊回路に基づいてシミュレーション不要な回路を判断することにより、それ以外の回路をシミュレーション対象回路と判断するように構成しているのである。
【００３９】
次に、判断部１２によるＲＡＭ２４の検出方法について説明すると、ＲＡＭ２４は図４（ａ）に示すごとく複数のトランジスタ２４ａ−1〜２４ａ−６をそなえて構成されたＲＡＭビットセル（bit cell）２４ａを複数そなえ、これら複数のＲＡＭビットセル２４ａが、図４（ｂ）に示すごとく接続されて構成されている。
図４（ａ）に示すように、ＲＡＭビットセル２４ａ内のトランジスタ２４ａ−1〜２４ａ−６は独特の接続関係（例えば、インバータを互いにたすき掛けした接続関係）を持っている。
【００４０】
そこで、判断部１２は、この独特の接続関係と一致する接続関係を有する部分を下位階層の回路２５から検索し、一致する部分をＲＡＭビットセル２４ａと認識するとともに、このＲＡＭビットセル２４ａと認識した部分に接続された隣接部分もかかる接続関係と一致するか否かを判断していき、ＲＡＭビットセル２４ａではないと判断するまで接続された隣接部分をたどった検索を実行する。そして、判断部１２は、ＲＡＭビットセル２４ａであると判断した部分をまとめてＲＡＭ２４として検出する。
【００４１】
このように、判断部１２は、トランジスタが隣のトランジスタとどのように接続されているかという接続関係をチェックすることにより、ＲＡＭビットセル２４ａの構造（すなわち、ＲＡＭ２４の構造）から下位階層の回路２５におけるＲＡＭ２４を検出することができる。
分割部１３は、判断部１２によって判断されたシミュレーション対象回路を、シミュレーション部１４がシミュレーションを実行する単位回路であるシミュレーション単位回路に分割するものであり、上記図１３及び図１５を参照しながら説明した従来技術と同様に、分割部１３は、例えば、トランジスタの個数、あるいは、回路の動作内容、もしくは、タイミングの特性が、区切りが良いところでシミュレーション対象回路を区切ることにより、かかるシミュレーション対象回路を複数のシミュレーション単位回路に分割する。
【００４２】
例えば、分割部１３は、図５に示すように、判断部１２によってシミュレーション対象回路であると判断された入力端子２３ａからＦＦ２１ｂまでの回路（シミュレーション対象回路Ｘ）を、シミュレーション単位回路Ｘ１〜Ｘ３に分割するとともに、判断部１２によってシミュレーション対象回路であると判断された出力端子２３ｂからＦＦ２１ｃまでの回路（シミュレーション対象回路Ｙ）を、シミュレーション単位回路Ｙ１〜Ｙ３に分割する。
【００４３】
シミュレーション部１４は、分割部１３によって分割された複数のシミュレーション単位回路Ｘ１〜Ｘ３，Ｙ１〜Ｙ３からなるシミュレーション対象回路Ｘ，Ｙに対してシミュレーションを実行するものであり、ここではシミュレーション単位回路Ｘ１〜Ｘ３，Ｙ１〜Ｙ３ごとにタイミング解析を実行して、シミュレーション単位回路Ｘ１〜Ｘ３，Ｙ１〜Ｙ３のそれぞれの遅延等の特性を測定する。
【００４４】
つまり、シミュレーション部１４は、図５に示す分割部１３によって分割されたシミュレーション単位回路Ｘ１〜Ｘ３，Ｙ１〜Ｙ３のそれぞれにおいて、信号が当該シミュレーション単位回路の上流端部から下流端部に到達するまでの時間を解析する。
作成部１５は、シミュレーション部１４によるシミュレーション結果に基づいて、シミュレーション対象回路Ｘ，Ｙの特性値に関するライブラリを作成するものであり、ここでは、シミュレーション対象回路Ｘ，Ｙの特性値として、信号が各シミュレーション対象回路Ｘ，Ｙの上流端から下流端に到達するまでの時間（信号到達時間）を、シミュレーション対象回路Ｘ，Ｙそれぞれと対応付けてデータベース１０に保存することによりライブラリを作成する。
【００４５】
また、シミュレーション部１４が複数のシミュレーション単位回路Ｘ１〜Ｘ３，Ｙ１〜Ｙ３に対してシミュレーションを実行した場合には、作成部１５は、複数のシミュレーション単位回路Ｘ１〜Ｘ３，Ｙ１〜Ｙ３のうちの互いに隣接するシミュレーション単位回路Ｘ１〜Ｘ３，Ｙ１〜Ｙ３のシミュレーション結果を総合してライブラリを作成する。
つまり、シミュレーション単位回路Ｘ１〜Ｘ３，Ｙ１〜Ｙ３のシミュレーション結果に対して、作成部１５は、シミュレーション単位回路Ｘ１〜Ｘ３のシミュレーション結果を総合してシミュレーション対象回路Ｘについてのライブラリを作成するとともに、シミュレーション単位回路Ｙ１〜Ｙ３のシミュレーション結果を総合してシミュレーション対象回路Ｙについてのライブラリを作成する。
【００４６】
ここでは、作成部１５は、シミュレーション単位回路Ｘ１〜Ｘ３のシミュレーション部１４によるシミュレーション結果（タイミング解析結果）である信号到達時間を合計した値をシミュレーション対象回路Ｘの特性値としてライブラリ化するとともに、シミュレーション単位回路Ｙ１〜Ｙ３の信号到達時間を合計した値をシミュレーション対象回路Ｙの特性値としてライブラリ化する。
【００４７】
検証部１６は、作成部１５によって作成されたライブラリを用いて、上位階層の回路２６と下位階層の回路２５とを組み合わせた回路に対する動作検証（ディレイ検証）を実行するものであり、図５に示すＦＦ２１ａからＦＦ２１ｂまでの回路、及び、ＦＦ２１ｃからＦＦ２１ｄまでの回路に対する動作検証を実行する。
つまり、検証部１６は、ＦＦ２１ａからＦＦ２１ｂまでの間のパス、並びに、ＦＦ２１ｃからＦＦ２１ｄまでの間のパスについて、１サイクル時間内に信号が到達できるか否かをチェックする。
【００４８】
このとき、検証部１６は、ＦＦ２１ａから入力端子２３ａまでの間の回路に対してはシミュレーション部１４と同様にタイミング解析を実行することによって、かかる間の信号到達時間を得るとともに、出力端子２３ｂからＦＦ２１ｄまでの間の回路に対してもタイミング解析を実行してかかる間の信号到達時間を算出する。
そして、検証部１６は、算出したＦＦ２１ａから入力端子２３ａまでの信号到達時間と、データベース１０にライブラリとして保持された入力端子２３ａからＦＦ２１ｂまで（つまり、シミュレーション対象回路Ｘ）の信号到達時間とを合計した時間が、１サイクル時間以下であるか否かを検討することによって、ＦＦ２１ａからＦＦ２１ｂまでの間の回路の動作検証を実行する。
【００４９】
同様に、検証部１６は算出した出力端子２３ｂからＦＦ２１ｄまでの信号到達時間と、データベース１０にライブラリとして保持されたＦＦ２１ｃから出力端子２３ｂまで（つまり、シミュレーション対象回路Ｙ）の信号到達時間とを合計した時間が、１サイクルタ時間以下であるか否かを検討することによって、ＦＦ２１ｃからＦＦ２１ｄまでの間の回路の動作検証を実行する。
【００５０】
次に、図６に示すフローチャート（ステップＳ１〜Ｓ６）を参照しながら、本シミュレーション装置１（特にライブラリ作成装置２）の動作手順（ライブラリ作成方法）について説明する。
まず、設計者によって、図２に示すキーボード６やマウス７などを用いて回路２０の設計データが入力され、データベース１０に設計情報として保存される（ステップＳ１；回路入力ステップ）。
【００５１】
そして、回路認識部１１が、データベース１０に保持された回路２０の設計情報を読み込んで回路２０を認識する（ステップＳ２；回路認識ステップ）。このとき回路認識部１１によって下位階層の回路２５及び上位階層の回路２６も認識される。
次に、判断部１２が、回路２０の下位階層の回路２５が所定の特殊回路（シミュレーション対象外回路；ここではＲＡＭ２４）を含んでいるか否かに基づいてシミュレーション対象回路Ｘ，Ｙを判断する（ステップＳ３；判断ステップ）。
【００５２】
具体的には、判断部１２が、回路２０の下位階層の回路２５を検索して、ＲＡＭ２４を検出する（ステップＳ３ａ；特殊回路検出ステップ）。
そして、判断部１２は下位階層の回路２５から特殊回路としてのＲＡＭ２４を検出すると、検出したＲＡＭ２４の上流側最近のＦＦ２１ｂからＲＡＭ２４の下流側最近のＦＦ２１ｃまでの範囲の回路がシミュレーション不要な回路と判断し、この回路以外の回路をシミュレーション対象回路Ｘ，Ｙと判断する（ステップＳ３ｂ；シミュレーション対象回路判断ステップ）。
【００５３】
次いで、分割部１３が、判断部１２によって判断されたシミュレーション対象回路Ｘ，Ｙを複数のシミュレーション単位回路Ｘ１〜Ｘ３，Ｙ１〜Ｙ３に分割（領域分割）する（ステップＳ４；分割ステップ）。
そして、シミュレーション部１４が、分割部１３によってシミュレーション単位回路Ｘ１〜Ｘ３，Ｙ１〜Ｙ３に分割されたシミュレーション対象回路Ｘ，Ｙに対するシミュレーションを実行する（ステップＳ５；シミュレーションステップ）。
【００５４】
このシミュレーション部１４によるシミュレーションの結果、シミュレーション単位回路Ｘ１〜Ｘ３，Ｙ１〜Ｙ３それぞれについての特性値（ここでは信号到達時間）が得られる。
次に、作成部１５が、シミュレーション部１４によるシミュレーション結果に基づいて、シミュレーション対象回路Ｘ，Ｙの特性値に関するライブラリを作成し（ステップＳ６；作成ステップ）、処理を終了する。
【００５５】
具体的には、シミュレーション対象回路Ｘ，Ｙごとの特性値をライブラリ化すべく、作成部１５が、シミュレーション単位回路Ｘ１〜Ｘ３の特性を総合する（ここでは特性値としての信号到達時間を合計する）とともに、シミュレーション単位回路Ｙ１〜Ｙ３の特性を総合する（ステップＳ６ａ；総合ステップ）。
そして、作成部１５は、シミュレーション対象回路Ｘ，Ｙごとに総合した特性値を、これらシミュレーション対象回路Ｘ，Ｙそれぞれと対応付けてデータベース１０に保存することによって、シミュレーション対象回路Ｘ，Ｙの特性値に関するライブラリを作成して（ステップＳ６ｂ；ライブラリ化ステップ）、処理を終了する。
【００５６】
このように、本発明の第１実施形態としてのシミュレーション装置１によれば、回路２０の動作検証を実行する際に、判断部１２が、下位階層の回路２５においてライブラリ化が必要なシミュレーション対象回路Ｘ，Ｙを判断し、シミュレーション部１４が判断部１２によって判断されたシミュレーション対象回路Ｘ，Ｙに対してのみ、シミュレーションを実行するとともに、作成部１５がシミュレーション対象回路Ｘ，Ｙの特性値に関するライブラリを作成するので、シミュレーションが不要な回路に対する無駄なシミュレーション処理及びライブラリ作成処理を実行することがなく、ライブラリの作成を高効率に実行してライブラリ作成時間を大幅に短縮することができる。
【００５７】
つまり、回路２０の動作検証に必要なライブラリを作成する際に、ライブラリ化が必要なシミュレーション対象回路だけを抽出して、他のシミュレーション不要な回路についてはシミュレーション及びライブラリ作成対象から省くことにより、上述した従来技術のように下位階層の回路２５のすべてに対するライブラリを作成する場合に比べて、シミュレーションを行なう回路数を減少させることができ、その結果、ライブラリ作成時間を大幅に短縮することができる。
【００５８】
さらに、判断部１２が、所定の特殊回路を含んでいるか否かに基づいてシミュレーション対象回路を判断するので、下位階層の回路２５におけるシミュレーション対象回路を確実に判断することができる。
このとき、判断部１２は、特殊回路（ここではＲＡＭ２４）を検出し、検出したＲＡＭ２４の上流側最近のＦＦ２１ｂから下流側最近のＦＦ２１ｃまでの範囲の回路はシミュレーション不要な回路と判断し、この回路以外の下位階層の回路２５の回路をシミュレーション対象回路Ｘ，Ｙと判断する。したがって、下位階層の回路２５が、解析の簡略化のために特殊回路としてのＲＡＭ２４を設計した際に、ＲＡＭ２４が必ず２つのＦＦに挟まれ、さらに、かかる２つのＦＦ以外にはＦＦを含まないように構成されたものである場合には、非常に効率良くシミュレーション対象回路Ｘ，Ｙを判断することができる。
【００５９】
〔２〕本発明の第２実施形態について
次に、図７に示すブロック図を参照しながら、本発明の第２実施形態としてのシミュレーション装置１ａの構成について説明する。なお、図７において既述の符号と同一の符号は、同一の部分もしくは略同一の部分を示しているので、ここではその詳細な説明を省略する。
【００６０】
本シミュレーション装置１ａは、データベース１０に接続され、回路認識部１１，判断部１２ａ，分割部１３ａ，シミュレーション部１４，作成部１５及び検証部１６をそなえて構成されている。そして、本シミュレーション装置１ａにおいて、回路認識部１１，判断部１２ａ，分割部１３ａ，シミュレーション部１４，及び作成部１５がライブラリ作成装置２ａとして機能する。
【００６１】
なお、本シミュレーション装置１ａも、上述した第１実施形態のシミュレーション装置１と同様に、例えば上記図２に示すコンピュータ３の演算部４によって実現される。
本シミュレーション装置１ａでは、判断部１２ａが下位階層の回路からシミュレーション対象回路を直接判断するように構成されているとともに、分割部１３ａが回路認識部１１によって認識された回路全体をシミュレーション単位回路に分割するように構成されている点が、上述した第１実施形態のシミュレーション装置１と異なっている。
【００６２】
したがって、以下、本シミュレーション装置１ａの判断部１２ａ及び分割部１３ａについて詳細に説明する。また、本シミュレーション装置１ａの動作検証対象は、上述した第１実施形態と同様に上記図３及び図５に示す回路２０とし、以下、図３及び図５に示す回路２０を用いて本シミュレーション装置１ａについて説明する。
分割部１３ａは、回路認識部１１によって認識された回路２０の少なくとも下位階層の回路２５を、複数のシミュレーション単位回路に分割するものであり、上記図１３及び図１５を参照しながら説明した従来技術と同様に、分割部１３ａは、例えば、トランジスタの個数、あるいは、回路の動作内容、もしくは、タイミングの特性が、区切りが良いところで回路を区切ることにより、下位階層の回路２５全体を複数のシミュレーション単位回路に分割する。
【００６３】
判断部１２ａは、分割部１３ａによって複数のシミュレーション単位回路に分割された下位階層の回路２５からシミュレーション対象回路Ｘ，Ｙを判断するものであり、下位階層の回路２５の入力側端部（上流側端部；つまり、入力端子２３ａ）からＦＦ２１ｂまでの回路をシミュレーション対象回路Ｘと判断するとともに、出力側端部（下流側端部；つまり、出力端子２３ｂ）からＦＦ２１ｃまでの回路をシミュレーション対象回路Ｙと判断する。
【００６４】
ここで、分割部１３ａによってシミュレーション単位回路に分割された下位階層の回路２５の一部を図８に示す。この図８において、実線もしくは破線で示すブロックのそれぞれは分割部１３ａによって分割されたシミュレーション単位回路を示し、実線もしくは破線で示す矢印のそれぞれは、シミュレーション単位回路の接続関係を示すとともに信号が流れる方向を示している。また、図８の“ｅｔｃ”と表記したシミュレーション単位回路２２ｂ−１〜２２ｂ−５のそれぞれは、組合せ回路２２ｂが分割部１３ａによって分割されたものであり、シミュレーション単位回路２２ｅ−１〜２２ｅ−４のそれぞれは、組合せ回路２２ｅが分割部１３ａによって分割されたものである。
【００６５】
そして、判断部１２ａは、下位階層の回路２５の入力側端部としての入力端子２３ａから接続をたどって下流方向に検索を行ない、たどり着いた検索対象の回路（領域）がフリップフロップ（ここではＦＦ２１ｂ）であるか否かを判断する。
このとき、判断部１２ａは、検索対象の回路の構成がフリップフロップの構造をしているか否かをチェックすることによって、かかる回路がフリップフロップであるか否かを判断してもよいし、あるいは、設計情報に、各回路がフリップフロップであるか否かを示す情報（例えばフラグ）を含めておき、この情報に基づいて検索対象の回路がフリップフロップであるか否かを判断するようにしてもよい。
【００６６】
そして、判断部１２ａは、ＦＦ２１ｂが検索されるまで接続をたどった検索を順次実行し、ＦＦ２１ｂが検索されると、ＦＦ２１ｂを検索したことを示すフラグを立てて検索処理を終了し、これ以降は検索を実行しない（図８中の破線ブロック及び破線矢印参照）。
これにより、判断部１２ａは、入力端子２３ａから検索されたＦＦ２１ｂまでの範囲のシミュレーション単位回路をシミュレーション対象回路Ｘと判断する。
【００６７】
さらに、判断部１２ａは、出力端子２３ｂからもフリップフロップ（ここではＦＦ２１ｃ）の検索を実行する。出力端子２３ｂからの検索は、図８において矢印で示す信号の進行方向とは逆方向に接続をたどることにより出力端子２３ｂから上流方向に向けて検索を行ない、たどり着いた検索対象の回路がＦＦ２１ｃであるか否かを判断する。
そして、判断部１２ａは、ＦＦ２１ｃが検索されるまで、接続をたどった検索を順次実行し、ＦＦ２１ｃが検索されると、ＦＦ２１ｃを検索したことを示すフラグを立てて検索処理を終了し、これ以降は検索を実行しない（図８中の破線ブロック及び破線矢印参照）。
【００６８】
これにより、判断部１２ａは、出力端子２３ｂから検索されたＦＦ２１ｃまでの範囲のシミュレーション単位回路をシミュレーション対象回路Ｙと判断する。
このように、判断部１２ａは下位階層の回路２５の入力側端部及び出力側端部から接続をたどる検索を実行することによってシミュレーション対象回路Ｘ，Ｙを検索する。換言すると、判断部１２ａによって入力側端部及び出力側端部の両方からたどり着かなかったＦＦ２１ｂ，２１ｃ間の領域がシミュレーション（ライブラリ化）不要な領域となる。
【００６９】
次に、図９に示すフローチャート（ステップＳ１０〜Ｓ１５）を参照しながら、本シミュレーション装置１ａ（特にライブラリ作成装置２ａ）の動作手順（ライブラリ作成方法）について説明する。
まず、設計者によって、例えば、上記図２に示すキーボード６やマウス７などを用いて回路２０の設計データが入力され、データベース１０に設計情報として保存される（ステップＳ１０；回路入力ステップ）。
【００７０】
そして、回路認識部１１が、データベース１０に保持された回路２０の設計情報を読み込んで回路２０を認識する（ステップＳ１１；回路認識ステップ）。
次に、分割部１３ａが、回路認識部１１によって認識された回路２０（特に下位階層の回路２５）を複数のシミュレーション単位回路に分割する（ステップＳ１２；分割ステップ）。
【００７１】
そして、判断部１２ａが分割部１３ａによって複数のシミュレーション単位回路に分割された下位階層の回路２５からシミュレーション対象回路Ｘ，Ｙを判断する（ステップＳ１３；判断ステップ）。
次いで、シミュレーション部１４が、判断部１２ａによってシミュレーション対象と判断されたシミュレーション対象回路Ｘ，Ｙを構成する各シミュレーション単位回路に対するシミュレーションをそれぞれ実行し（ステップＳ１４；シミュレーションステップ）、作成部１５が、シミュレーション部１４によるシミュレーション結果に基づいて、シミュレーション対象回路Ｘ，Ｙの特性値に関するライブラリを作成し（ステップＳ１５；作成ステップ）、処理を終了する。
【００７２】
ここで、作成部１５は、シミュレーション結果としての複数のシミュレーション単位回路の特性（ここでは信号到達時間）を、互いに隣接するシミュレーション単位回路の特性値を総合（合計）することによって、シミュレーション対象回路Ｘ，Ｙごとに特性値を総合し（ステップＳ１５ａ；総合ステップ）、シミュレーション対象回路Ｘ，Ｙごとに総合した特性値を、それぞれシミュレーション対象回路Ｘ，Ｙと対応付けてデータベース１０に保存することにより、シミュレーション対象回路Ｘ，Ｙの特性値に関するライブラリを作成する（ステップＳ１５ｂ；ライブラリ化ステップ）。
【００７３】
このように、本発明の第２実施形態としてのシミュレーション装置１ａによれば、上述した第１実施形態と同様の効果を得ることができる。
さらに、本シミュレーション装置１ａによれば、判断部１２ａが下位階層の回路２５の入力側端部（入力端子２３ａ）からＦＦ２１ｂまでの回路をシミュレーション（つまり、ライブラリ化）すべきシミュレーション対象回路Ｘと判断するとともに、出力側端部（出力端子２３ｂ）からＦＦ２１ｃまでの回路をシミュレーション対象回路Ｙと判断するので、下位階層の回路２５の構成に関係なく、シミュレーション対象回路Ｘ，Ｙを確実に判断することができる。
【００７４】
つまり、判断部１２ａは、上述した第１実施形態のシミュレーション装置１の判断部１２のように下位階層の回路２５内の特殊回路に基づいてシミュレーション対象回路を判断するわけではないので、かかる特殊回路を含まない下位階層の回路２５からでもシミュレーション対象回路を判断して確実に抽出することができる。
さらに、上述した第１実施形態のシミュレーション装置１では対応できない、下位階層の回路２５が３以上のフリップフロップを含んでいるような場合であっても、判断部１２ａは入力側端部及び出力側端部から接続をたどりながらシミュレーション対象回路を確実に判断することができる。
【００７５】
〔３〕その他
なお、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上述した第１実施形態では、判断部１２が所定の特殊回路としてのＲＡＭ２４に基づいてシミュレーション不要な回路を判断するように構成したが、本発明はこれに限定されるものではなく、判断部１２が所定の特殊回路として、例えば、ダイナミックドミノ回路やパストランジスタに基づいてシミュレーション不要な回路を判断するように構成してもよい。
【００７６】
また、上述した第１実施形態では、ライブラリ作成装置２が下位階層の回路２５におけるシミュレーション対象回路Ｘ，Ｙについてのみライブラリを作成し、上位階層の回路２６については検証部１６によってタイミング解析を実行する場合を例にあげて説明したが、本発明はこれに限定されるものではなく、例えば、ライブラリ作成装置２の作成部１５が、下位階層の回路２５のシミュレーション対象回路Ｘ，Ｙとともに、上位階層の回路２６についてのライブラリを作成するように構成し、検証部１６が、作成部１５によって作成された上位階層の回路２６のライブラリとシミュレーション対象回路Ｘ，Ｙのライブラリとに基づいてＦＦ２１ａからＦＦ２１ｂまでの間の回路の動作検証、及びＦＦ２１ｃからＦＦ２１ｄまでの間の回路の動作検証を実行するように構成してもよく、これによっても上述した第１実施形態と同様の効果を得ることができる。
【００７７】
なお、上述した、回路認識部１１，判断部１２，１２ａ，分割部１３，１３ａ，シミュレーション部１４，及び作成部１５としての機能は、コンピュータ（ＣＰＵ，情報処理装置，各種端末を含む）が所定のアプリケーションプログラム（ライブラリ作成プログラム）を実行することによって実現されてもよい。
さらに、上述した、回路認識部１１，判断部１２，１２ａ，分割部１３，１３ａ，シミュレーション部１４，作成部１５，及び検証部１６としての機能は、コンピュータ（ＣＰＵ，情報処理装置，各種端末を含む）が所定のアプリケーションプログラム（シミュレーションプログラム）を実行することによって実現されてもよい。
【００７８】
これらのプログラムは、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷなど），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋Ｒ，ＤＶＤ＋ＲＷなど）等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からライブラリ作成プログラムもしくはシミュレーションプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。また、これらのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信回線を介してコンピュータに提供するようにしてもよい。
【００７９】
ここで、コンピュータとは、ハードウェアとＯＳ（オペレーティングシステム）とを含む概念であり、ＯＳの制御の下で動作するハードウェアを意味している。また、ＯＳが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえている。
【００８０】
上記ライブラリ作成プログラムとしてのアプリケーションプログラムは、上述のようなコンピュータに、回路認識部１１，判断部１２，１２ａ，分割部１３，１３ａ，シミュレーション部１４，及び作成部１５としての機能を実現させるプログラムコードを含んでいる。また、その機能の一部は、アプリケーションプログラムではなくＯＳによって実現されてもよい。
【００８１】
また、上記シミュレーションプログラムとしてのアプリケーションプログラムは、上述のようなコンピュータに、回路認識部１１，判断部１２，１２ａ，分割部１３，１３ａ，シミュレーション部１４，作成部１５，及び検証部１６としての機能を実現させるプログラムコードを含んでいる。また、その機能の一部は、アプリケーションプログラムではなくＯＳによって実現されてもよい。
【００８２】
なお、本実施形態としての記録媒体としては、上述したフレキシブルディスク，ＣＤ，ＤＶＤ，磁気ディスク，光ディスク，光磁気ディスクのほか、ＩＣカード，ＲＯＭカートリッジ，磁気テープ，パンチカード，コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ），外部記憶装置等や、バーコードなどの符号が印刷された印刷物等の、コンピュータ読取可能な種々の媒体を利用することもできる。
【００８３】
〔４〕付記
（付記１）
回路におけるシミュレーション対象回路を判断する判断部と、
該判断部によって判断されたシミュレーション対象回路に対するシミュレーションを実行するシミュレーション部と、
該シミュレーション部によるシミュレーション結果に基づいて、前記シミュレーション対象回路の特性値に関するライブラリを作成する作成部とをそなえて構成されていることを特徴とする、ライブラリ作成装置。
【００８４】
（付記２）
前記判断部が、前記回路の入力側端部から所定の回路までの回路をシミュレーションすべきシミュレーション対象回路と判断することを特徴とする、付記１記載のライブラリ作成装置。
（付記３）
前記判断部が、前記回路の出力側端部から所定の回路までの回路をシミュレーションすべきシミュレーション対象回路と判断することを特徴とする、付記１または付記２記載のライブラリ作成装置。
【００８５】
（付記４）
前記回路を複数のシミュレーション単位回路に分割する分割部をそなえ、
前記判断部が、前記分割部によって分割された複数のシミュレーション単位回路からシミュレーション対象回路を判断することを特徴とする、付記１〜３のいずれか１項に記載のライブラリ作成装置。
【００８６】
（付記５）
前記シミュレーション部が複数のシミュレーション単位回路に対してシミュレーションを実行した場合には、前記作成部が、前記複数のシミュレーション単位回路のうちの互いに隣接するシミュレーション単位回路のシミュレーション結果を総合して前記ライブラリを作成することを特徴とする、付記４記載のライブラリ作成装置。
【００８７】
（付記６）
前記判断部が、所定の特殊回路を含む回路はシミュレーション対象回路ではないと判断することにより、シミュレーション対象回路を判断することを特徴とする、付記１記載のライブラリ作成装置。
（付記７）
前記判断部が、前記所定の特殊回路を検出し、検出した当該所定の特殊回路の上流側最近のフリップフロップから当該所定の特殊回路の下流側最近のフリップフロップまでの範囲の回路をシミュレーション不要な回路と判断し、当該回路以外の回路をシミュレーション対象回路であると判断することを特徴とする、付記６記載のライブラリ作成装置。
【００８８】
（付記８）
回路におけるシミュレーション対象回路を判断する判断ステップと、
該判断ステップにおいて判断されたシミュレーション対象回路に対するシミュレーションを実行するシミュレーションステップと、
該シミュレーションステップにおけるシミュレーション結果に基づいて、前記シミュレーション対象回路の特性値に関するライブラリを作成する作成ステップとを含んでいることを特徴とする、ライブラリ作成方法。
【００８９】
（付記９）
前記判断ステップにおいて、前記回路の入力側端部から所定の回路までの回路がシミュレーションすべきシミュレーション対象回路と判断されることを特徴とする、付記８記載のライブラリ作成方法。
（付記１０）
前記判断ステップにおいて、前記回路の出力側端部から所定の回路までの回路がシミュレーションすべきシミュレーション対象回路と判断されることを特徴とする、付記８または付記９記載のライブラリ作成方法。
【００９０】
（付記１１）
前記回路を複数のシミュレーション単位回路に分割する分割ステップをさらに含み、
前記判断ステップにおいて、前記分割ステップにおいて分割された複数のシミュレーション単位回路からシミュレーション対象回路が判断されることを特徴とする、付記８〜１０のいずれか１項に記載のライブラリ作成方法。
【００９１】
（付記１２）
前記シミュレーションステップにおいて複数のシミュレーション単位回路に対してシミュレーションが実行された場合には、前記作成ステップにおいて、前記複数のシミュレーション単位回路のうちの互いに隣接するシミュレーション単位回路のシミュレーション結果を総合して前記ライブラリが作成されることを特徴とする、付記１１記載のライブラリ作成方法。
【００９２】
（付記１３）
前記判断ステップにおいて、所定の特殊回路を含んでいるか否かに基づいてシミュレーション対象回路が判断され、前記所定の特殊回路を含む回路は前記シミュレーション対象回路ではないと判断されることを特徴とする、付記８記載のライブラリ作成方法。
（付記１４）
前記判断ステップにおいて、前記所定の特殊回路が検出され、検出された当該所定の特殊回路の上流側最近のフリップフロップから当該所定の特殊回路の下流側最近のフリップフロップまでの範囲の回路がシミュレーション不要な回路と判断され、当該回路以外の回路がシミュレーション対象回路であると判断されることを特徴とする、付記１３記載のライブラリ作成方法。
【００９３】
（付記１５）
回路の特性値についてのライブラリを作成する機能をコンピュータに実現させるためのライブラリ作成プログラムを記録したコンピュータ読取可能な記録媒体であって、
前記ライブラリ作成プログラムが、
前記回路におけるシミュレーション対象回路を判断する判断部、
該判断部によって判断されたシミュレーション対象回路に対するシミュレーションを実行するシミュレーション部、及び、
該シミュレーション部によるシミュレーション結果に基づいて、前記シミュレーション対象回路の特性値に関するライブラリを作成する作成部として、前記コンピュータを機能させることを特徴とする、ライブラリ作成プログラムを記録したコンピュータ読取可能な記録媒体。
【００９４】
（付記１６）
前記ライブラリ作成プログラムが、前記判断部として前記コンピュータを機能させる際、前記回路の入力側端部から所定の回路までの回路をシミュレーションすべきシミュレーション対象回路と判断するように、前記コンピュータを機能させることを特徴とする、付記１５記載のライブラリ作成プログラムを記録したコンピュータ読取可能な記録媒体。
【００９５】
（付記１７）
前記ライブラリ作成プログラムが、前記判断部として前記コンピュータを機能させる際、前記回路の出力側端部から所定の回路までの回路をシミュレーションすべきシミュレーション対象回路と判断するように、前記コンピュータを機能させることを特徴とする、付記１５または付記１６記載のライブラリ作成プログラムを記録したコンピュータ読取可能な記録媒体。
【００９６】
（付記１８）
前記ライブラリ作成プログラムが、前記判断部として前記コンピュータを機能させる際、所定の特殊回路を含んでいるか否かに基づいてシミュレーション対象回路を判断するように前記コンピュータを機能させ、前記所定の特殊回路を含む回路は前記シミュレーション対象回路ではないと判断するように前記コンピュータを機能させることを特徴とする、付記１５記載のライブラリ作成プログラムを記録したコンピュータ読取可能な記録媒体。
【００９７】
（付記１９）
前記ライブラリ作成プログラムが、前記判断部として前記コンピュータを機能させる際、前記所定の特殊回路を検出し、検出した当該所定の特殊回路の上流側最近のフリップフロップから当該所定の特殊回路の下流側最近のフリップフロップまでの範囲の回路をシミュレーション不要な回路と判断し、当該回路以外の回路をシミュレーション対象回路であると判断するように、前記コンピュータを機能させることを特徴とする、付記１８記載のライブラリ作成プログラムを記録したコンピュータ読取可能な記録媒体。
【００９８】
（付記２０）
下位階層の回路と上位階層の回路とを有する回路に対する動作検証を実行するシミュレーション装置であって、
前記下位階層の回路におけるシミュレーション対象回路を判断する判断部と、
該判断部によって判断されたシミュレーション対象回路に対するシミュレーションを実行するシミュレーション部と、
該シミュレーション部によるシミュレーション結果に基づいて、前記シミュレーション対象回路の特性値に関するライブラリを作成する作成部と、
該作成部によって作成された前記ライブラリを用いて、前記動作検証を実行する検証部とをそなえて構成されていることを特徴とする、シミュレーション装置。
【図面の簡単な説明】
【００９９】
【図１】本発明の第１実施形態としてのシミュレーション装置の構成を示すブロック図である。
【図２】本発明の第１，２実施形態としてのシミュレーション装置が実現されるコンピュータの構成の一例を示す図である。
【図３】本発明の第１，２実施形態としてのシミュレーション装置の動作検証対象の回路の構成を説明するための図である。
【図４】図３に示す回路に含まれるＲＡＭ（Random Access Memory）を示す図であり、（ａ）はＲＡＭビットセルの構成の一例を示す回路図であり、（ｂ）は（ａ）に示すＲＡＭビットセルが接続されたＲＡＭの構成を示す図である。
【図５】図３に示す回路におけるシミュレーション対象回路を説明するための図である。
【図６】本発明の第１実施形態としてのライブラリ作成方法の手順を示すフローチャートである。
【図７】本発明の第２実施形態としてのシミュレーション装置の構成を示すブロック図である。
【図８】本発明の第２実施形態としてのシミュレーション装置の判断部によるシミュレーション対象回路の判断方法を説明するための図である。
【図９】本発明の第２実施形態としてのライブラリ作成方法の手順を示すフローチャートである。
【図１０】ＦＦ（Flip Flop）をそなえた同期回路を示す図である。
【図１１】図１０に示す同期回路に対するディレイ検証を説明するための図である。
【図１２】図１０に示す同期回路におけるＦＦ間のディレイ検証方法を説明するための図である。
【図１３】従来のタイミング解析が適用される回路の一例を示す図である。
【図１４】従来のライブラリ作成方法の手順を示すフローチャートである。
【図１５】図１３に示す回路のシミュレーション単位回路への分割例を示す図である。
【符号の説明】
【０１００】
１，１ａ  シミュレーション装置
２，２ａ  ライブラリ作成装置
３  コンピュータ
４  演算部（ＣＰＵ：Central Processing Unit）
５  モニタ
６  キーボード
７  マウス
８  記憶装置
１０  データベース
１１  回路認識部
１２，１２ａ  判断部
１３，１３ａ  分割部
１４  シミュレーション部
１５  作成部
１６  検証部
２０，１００，１１０  回路
２１ａ〜２１ｄ，１０１ａ〜１０１ｆ  ＦＦ（Flip Flop；フリップフロップ）
２２ａ〜２２ｆ  組合せ回路
２３ａ  入力端子
２３ｂ  出力端子
２４  ＲＡＭ（Random Access Memory）
２４ａ  ＲＡＭビットセル
２４ａ−１〜２４ａ−６  トランジスタ
２５，１０２  下位階層の回路
２６，１０３  上位階層の回路
１０４，１０５  端子
１１０ａ〜１１０ｅ，Ｘ１〜Ｘ３，Ｙ１〜Ｙ３  シミュレーション単位回路
Ｓ１，Ｓ１０  回路入力ステップ
Ｓ２，Ｓ１１  回路認識ステップ
Ｓ３，Ｓ１３  判断ステップ
Ｓ３ａ  特殊回路検出ステップ
Ｓ３ｂ  シミュレーション対象回路判断ステップ
Ｓ４，Ｓ１２  分割ステップ
Ｓ５，Ｓ１４  シミュレーションステップ
Ｓ６，Ｓ１５  作成ステップ
Ｓ６ａ，Ｓ１５ａ  総合ステップ
Ｓ６ｂ，Ｓ１５ｂ  ライブラリ化ステップ
Ｘ，Ｙ  シミュレーション対象回路
【図１】
0004649337.tif 000002
【図２】
0004649337.tif 000003
【図３】
0004649337.tif 000004
【図４】
0004649337.tif 000005
【図５】
0004649337.tif 000006
【図６】
0004649337.tif 000007
【図７】
0004649337.tif 000008
【図８】
0004649337.tif 000009
【図９】
0004649337.tif 000010
【図１０】
0004649337.tif 000011
【図１１】
0004649337.tif 000012
【図１２】
0004649337.tif 000013
【図１３】
0004649337.tif 000014
【図１４】
0004649337.tif 000015
【図１５】
0004649337.tif 000016