(57)【要約】      （修正有）【課題】ゲートレベルのシミュレーションで使用する検証モデルのサイズを低減する。【解決手段】シミュレーションモデル作成部でゲートレベルの論理をシミュレータで実行可能な基本プリミティブに変換してシミュレーションモデルを作成する際に、縮退処理部２６で基本プリミティブを対象にディレイ段数に影響をあたえることのない削除可能なゲートを判定して削除する。縮退処理部２６は、複数の定数ゲートを１つにまとめる定数ゲート縮退部２８、ファンアウトなしバッファを削除するバッファ縮退部３０及び同一ファンインゲートを１つにまとめる同一ファンインゲート縮退部３２を備える。【選択図】      図１
2006004244.tif 000002
【特許請求の範囲】
【請求項１】
論理動作レベルで記述した論理回路をゲートレベルの論理回路に変換し、ゲートレベルの論理回路からシミュレーションモデルを作成する集積回路設計システムに於いて、
前記ゲートレベルの論理回路をシミュレータで実行可能な基本プリミティブに変換するプリミティブ変換部と、
前記基本プリミティブを対象に、ディレイ段数に影響を与えることのない削除可能なゲートを判定して削除するゲート縮退部と、
を設けたことを特徴とする集積回路設計システム。
【請求項２】
請求項１記載の集積回路設計システムに於いて、前記ゲート縮退部は、
前記基本プリミティブを対象に、同一の入出力条件をもつ複数の定数ゲートを判別し、何れか１つの定数ゲートを残して他の定数ゲートを削除し、残された定数ゲートの出力を削除した定数ゲートの出力先に共通に分岐接続する定数ゲート縮退部と、
前記基本プリミティブを対象に、ファンアウトのないバッファ及びその入力側に直列接続されているバッファを判別して削除するバッファ縮退部と、
前記基本プリミティブを対象に、同一の入出力条件で且つ同一のファンインをもつ複数のゲートを判別し、何れか１つのゲートを残して他のゲートを削除し、残されたゲートの出力を削除したゲートの出力先に分岐接続する同一ファンインゲート縮退部と、
を備えたことを特徴とする集積回路設計システム。
【請求項３】
請求項２記載の集積回路設計システムに於いて、前記ブリミティブ変換部は、ゲートレベルの論理回路を基本プリミティブに変換した際に、各ゲート毎に、ゲートの名称、ファンイン数及びファンアウト数を定義したライブラリテーブル、ゲートの階層関係及びインスタンス名を定義したインスタンステーブル、ネットの階層関係及びネット名を定義したネットテーブルの各々とのリンク関係を定義したプリミティブテーブルを生成することを特徴とする集積回路設計システム。
【請求項４】
論理動作レベルで記述した論理回路をゲートレベルの論理回路に変換し、ゲートレベルの論理回路からシミュレーションモデルを作成する集積回路設計方法に於いて、
前記ゲートレベルの論理回路をシミュレータで実行可能な基本プリミティブに変換するプリミティブ変換ステップと、
前記基本プリミティブを対象に、同一の入出力条件をもつ複数の定数ゲートを判別し、何れか１つの定数ゲートを残して他の定数ゲートを削除し、残された定数ゲートの出力を削除した定数ゲートの出力先に共通に分岐接続する定数ゲート縮退ステップと、
前記基本プリミティブを対象に、ファンアウトのないバッファ及び入力側に直列接続されているバッファを判別して削除するバッファ縮退ステップと、
前記基本プリミティブを対象に、同一の入出力条件で且つ同一のファンインもつ複数のゲートを判別し、何れか１つのゲートを残して他のゲートを削除し、残されたゲートの出力を削除したゲートの出力先に分岐接続する同一ファンインゲート縮退ステップと、
を備えたことを特徴とする集積回路設計方法。
【請求項５】
コンピュータに、
論理動作レベルで記述した論理回路をゲートレベルの論理回路に変換し、ゲートレベルの論理回路からシミュレータで実行可能な基本プリミティブに変換するプリミティブ変換ステップと、
前記基本プリミティブを対象に、同一の入出力条件をもつ複数の定数ゲートを判別し、何れか１つの定数ゲートを残して他の定数ゲートを削除し、残された定数ゲートの出力を削除した定数ゲートの出力先に共通に分岐接続する定数ゲート縮退ステップと、
前記基本プリミティブを対象に、ファンアウトのないバッファ及び入力側に直列接続されているバッファを判別して削除するバッファ縮退ステップと、
前記基本プリミティブを対象に、同一の入出力条件で且つ同一のファンインもつ複数のゲートを判別し、何れか１つのゲートを残して他のゲートを削除し、残されたゲートの出力を削除したゲートの出力先に分岐接続する同一ファンインゲート縮退ステップと、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＬＳＩをコンピュータ支援により設計する集積回路設計システム、方法及びプログラムに関し、特にＬＳＩの論理検証に使用するシミュレーションモデルのサイズを縮退するための集積回路設計システム、方法及びプログラムに関する。
【背景技術】
【０００２】
従来、コンピュータ支援によるＬＳＩの自動設計システムにあっては、システム設計、機能設計、論理設計、回路設計、レイアウト設計、設計検証、マスクデータ作成といった設計工程にしたがって設計作業を行っている。
【０００３】
このうち機能設計は機能ブロック内部の構造と動作を決定するレジスタトランスファレベル（ＲＴレベル）の設計を行っており、設計結果の検証には論理シミュレータが使用されている。
【０００４】
機能設計に続いて行われる論理設計は、ゲートレベルの論理設計であり、動作確認には論理シミュレータやタイミングシミュレータが使用される。また論理図の入力や編集には論理記述からゲート回路を自動生成する論理合成ツールが使用されている。
【０００５】
即ち、論理設計にあっては、論理動作レベルで記述した論理をゲートレベルの論理にコンパイルし、このゲートレベルでの論理シミュレーションを行うため、ゲートレベルで記述した論理をシミュレータで実行可能な基本ブリミティブに変換してシミュレーションモデルを作成し、シミュレーションを行っている。
【特許文献１】特開２０００−３５８１８５号公報
【特許文献２】特開平８−８７５３２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、ゲートレベルでの論理シミュレーションで使用するハードウェアシミュレータ（ハードウェア・アクセラレータ）では、処理できる最大検証モデルサイズ（ゲート数）に制限があり、大規模なネットリストを扱うことができないという問題がある。また、ソフトウェア・シミュレータにおいても、検証モデルのサイズが大規模になるにつれて、シミュレーション速度が悪化し、さらには生成するシミュレーションモデルのファイルのサイズも増加するという問題もある。
【０００７】
このような問題を解消するため、例えば図２３（Ａ）のＦＦ２００とＦＦ２０２の間に設けた連続するバッファ２０４−１，２０４−２，・・・２０４−ｎを対象に、図２３（Ｂ）のように、バッファ２０４−２〜２０４−ｎを削除することによるバッファリダクションがある。しかし、バッファリダクションを行なうと、ディレイ段数に影響を与えるという問題が発生し、ディレイ段数が異なるため、ディレイシミュレータではタイミングが異なるという問題は発生する。このためディレイ段数に影響を与えることなく、ゲートレベルにおけるシミュレーションモデルのゲート数削減を図る必要である。
【０００８】
本発明は、ゲートレベルのシミュレーションで使用する検証モデルのサイズを低減する集積回路設計システム、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
図１は本発明の原理説明図である。本発明は、集積回路設計システムを提供する。即ち、本発明は、論理動作レベルで記述した論理回路をゲートレベルの論理回路に変換し、ゲートレベルの論理回路からシミュレーションモデルを作成する集積回路設計システムに於いて、ゲートレベルの論理回路をシミュレータで実行可能な基本プリミティブに変換するプリミティブ変換部と、基本プリミティブを対象に、ディレイ段数に影響をあたえることのない削除可能なゲートを判定して削除するゲート縮退部とを設けたことを特徴とする。
【００１０】
ゲート縮退部は、定数ゲート縮退部、バッファ縮退部及び同一ファンンゲート縮退部を備える。定数ゲート縮退部は、基本プリミティブを対象に、同一の入出力条件をもつ複数の定数ゲートを判別し、何れか１つの定数ゲートを残して他の定数ゲートを削除し、残された定数ゲートの出力を削除した定数ゲートの出力先に共通に分岐接続する。
【００１１】
バッファ縮退部は、基本プリミティブを対象に、ファンアウトのないバッファ及び入力側に直列接続されているバッファを判別して削除する。更に、同一ファンインゲート縮退部は、基本プリミティブを対象に、同一の入出力条件で且つ同一のファンインもつ複数のゲートを判別し、何れか１つのゲートを残して他のゲートを削除し、残されたゲートの出力を削除したゲートの出力先に分岐接続する。
【００１２】
定数ゲート縮退部は、定数出力論理値として０、１、ファンピーダンスＺ又はドントケアＸを出力する定数ゲートに分けて縮退する。
【００１３】
ブリミティブ変換部は、ゲートレベルの論理を基本プリミティブに変換した際に、各ゲート毎に、ゲートの名称、ファンイン数及びファンアウト数を定義したライブラリテーブル、ゲートの階層関係及びインスタンス名を定義したインスタンステーブル、ネットの階層関係及びネット名を定義したネットテーブルの各々とのリンク関係を定義したプリミティブテーブルを生成する。
【００１４】
プリミティブテーブルは、ライブラリ識別子、インスタンス識別子、入力ネット電位識別子、及び出力ネット電位識別子を登録し、ライブラリテーブルは、ライブラリ識別子、ゲート種別名、ファンイン数、ファンアウト数を登録し、ネットテーブルは、ネット識別子、上位階層を示す同一電位ネット代表識別子及びネットを登録し、更に、インスタンステーブルファンスタンス識別子、上位階層を示す同一インスタンス代表識別子、及びインスタンス名を登録する。
【００１５】
定数ゲート縮退部は、具体的には、削除対象定数ゲートのプリミティブテーブルを削除すると共に、削除対象定数ゲートの出力側ゲートのプリミティブテーブルの出力ネット識別子を、残された定数ゲートの出力側ゲートのプリミティブテーブルの出力ネット識別子に変更し、削除対象定数ゲートのインスタンステーブルの階層関係を、残された定数ゲートのインスタンステーブルの階層関係と同じ値に変更し、更に、削除対象定数ゲートのネットテーブルの階層関係を、残された定数ゲートの階層関係の値に変更する。
【００１６】
バッファ縮退部は、削除対象バッファのプリミティブテーブルを削除し、削除対象バッファのインスタンステーブルの階層関係を、削除対象バッファの入力に位置するゲートのインスタンステーブルの階層関係と同じ値に変更し、更に、削除対象バッファのネットテーブルの階層関係を、削除対象バッファの入力に位置するゲートの階層関係の値に変更する。
【００１７】
同一ファンインゲート縮退部は、削除対象ゲートのプリミティブテーブルを削除すると共に、削除対象ゲートの出力側ゲートのプリミティブテーブルの出力ネット識別子を、残されたゲートの出力側ゲートのプリミティブテーブルの出力ネット識別子に変更し、削除対象ゲートのインスタンステーブルの階層関係を、残したゲートのインスタンステーブルの階層関係と同じ値に変更し、更に、削除対象ゲートのネットテーブルの階層関係を削除バッファの入力に位置するゲートの階層関係の値に変更する。
【００１８】
本発明は集積回路設計方法を提供する。即ち、本発明は、論理動作レベルで記述した論理をゲートレベルの論理に変換し、ゲートレベルの論理からシミュレーションモデルを作成する集積回路設計方法に於いて、
ゲートレベルの論理をシミュレータで実行可能な基本プリミティブに変換するプリミティブ変換ステップと、
基本プリミティブを対象に、同一の入出力条件をもつ複数の定数ゲートを判別し、何れか１つの定数ゲートを残して他の定数ゲートを削除し、残された定数ゲートの出力を削除した定数ゲートの出力先に共通に分岐接続する定数ゲート縮退ステップと、
基本プリミティブを対象に、ファンアウトのないバッファ及び入力側に直列接続されているバッファを判別して削除するバッファ縮退ステップと、
基本プリミティブを対象に、同一の入出力条件で且つ同一のファンインをもつ複数のゲートを判別し、何れか１つのゲートを残して他のゲートを削除し、残されたゲートの出力を削除したゲートの出力先に分岐接続する同一ファンインゲート縮退ステップと、
を備えたことを特徴とする。
【００１９】
本発明は、ゲートレベルの論理からシミュレーションモデルを作成するプログラムを提供する。即ち本発明のプログラムは、コンピュータに、
論理動作レベルで記述した論理をゲートレベルの論理に変換し、ゲートレベルの論理からシミュレータで実行可能な基本プリミティブに変換するプリミティブ変換ステップと、
基本プリミティブを対象に、同一の入出力条件をもつ複数の定数ゲートを判別し、何れか１つの定数ゲートを残して他の定数ゲートを削除し、残された定数ゲートの出力を削除した定数ゲートの出力先に共通に分岐接続する定数ゲート縮退ステップと、
基本プリミティブを対象に、ファンアウトのないバッファ及び入力側に直列接続されているバッファを判別して削除するバッファ縮退ステップと、
基本プリミティブを対象に、同一の入出力条件で且つ同一のファンインをもつ複数のゲートを判別し、何れか１つのゲートを残して他のゲートを削除し、残されたゲートの出力を削除したゲートの出力先に分岐接続する同一ファンインゲート縮退ステップと、
を実行させることを特徴とする。
【００２０】
なお、本発明による集積回路設計方法及びプログラムの詳細は、集積回路設計システムの場合と基本的に同じになる。
【発明の効果】
【００２１】
本発明によれば、ゲートレベルで記述した論理をシミュレータの基本プリミティブに変換してシミュレーションモデルを生成する際に、デイレイ段数に影響を及ぼすことのない削除可能なゲートあるいは共有化可能なゲートを判別して削除することで、シミュレーションモデル生成時のゲート数を削減できる。
【００２２】
これにより最大ゲート数が増加し、大規模な検証モデルであっても、ゲート数に制約のあるハードウェア・シミュレータで検証モデルを扱うことが可能となる。また、ゲート数削減に伴い、イベント発生回数が削減され、シミュレーション時間が短縮する。更に、ソフトウェア・シミュレータにあっては、シミュレーションモデルのファイルサイズも小さくなり、使用するディスク容量も削減できる。
【発明を実施するための最良の形態】
【００２３】
図２は、本発明が適用される集積回路設計システムにおける機能設計及び論理設計の機能構成のブロック図である。通常、コンピュータ支援による集積回路設計の処理工程にあっては、まずシステム設計として、目的とするシステム使用を実現するためにシステム全体をどのような機能ブロックに分け、どのように動作させるかを決定する。このシステム設計に続いて、機能ブロック内部の構造と動作を決定するトランジスタトランスファーレベル（ＲＴレベル）の設計を行う機能設計が行われ、機能設計に続いてゲートレベルの論理回路を設計する論理設計が行われる。
【００２４】
図２は、このような半導体設計工程における機能設計の後半と、これに続く本発明が適用される論理設計の部分を示している。まず機能設計の後半部分は、論理動作レベル論理回路データベース１０及び論理機能検証部１４で構成されており、論理機能検証部１４に対してはマイクロセルライブラリ１２が設けられている。
【００２５】
論理動作レベル論理回路データベース１０には、機能設計で作成されたレジスタトランスファーレベルの論理回路が格納されている。この論理動作レベル論理回路データベース１０のレジスタトランスファーレベルの論理回路については、論理シミュレータとして機能する論理機能検証部１４により設計結果の検証が行われる。
【００２６】
機能設計に続く論理設計は、論理回路合成部１６、ゲートレベル論理回路データベース１８及び論理検証部２２で構成される。論理回路合成部１６は、論理動作レベル論理回路データベース１０に格納されているレジスタトランスファーレベルの論理回路をゲートレベルの論理回路に変換するコンパイルを行って、ゲートレベル論理回路データベース１８に格納する。この論理回路合成部１６には論理合成ツールが使用され、論理動作レベル論理回路データベース１０の論理記述からゲート回路を自動生成する。
【００２７】
更に論理機能等価検証部２０が設けられており、論理動作レベル論理回路データベース１０の設計結果とゲートレベル論理回路データベース１８の設計結果を等価変換して論理機能を検証し、論理動作レベルの論理回路が正しくゲートレベルの論理回路に変換されたか否かを検証している。
【００２８】
論理検証部２２は、ゲートレベル論理回路データベース１８に作成されたゲートレベル論理回路の動作確認を行う論理シミュレータとして機能する。論理検証部２２には、シミュレーションモデル作成部２４、本発明による縮退処理部２６、シミュレーションモデルデータベース３４、シミュレーション処理部３６、シミュレーション制御部（ベンチテスト）３８及び結果リスト４０が設けられる。論理検証部２２の結果リストは、次のレイアウト設計の処理工程に出力される。
【００２９】
シミュレーションモデル作成部２４は、ゲートレベル論理回路データベース１８に格納されたゲートレベル論理回路を、論理検証部２２に設けているシミュレーション処理部３６で処理可能な基本プリミティブに変換して、シミュレーションモデルデータベース３４に格納する。
【００３０】
このゲートレベル論理回路をシミュレーション処理部３６の基本プリミティブに変換する際に、本発明にあっては、縮退処理部２６においてディレイ段数に影響を与えることのない削減ないし共有化できるゲートレベルの論理を判別することによって、シミュレーションモデル生成時のゲート数を削減するようにしている。
【００３１】
縮退処理部２６には、定数ゲート縮退部２８、バッファ縮退部３０及び同一ファンインゲート縮退部３２が設けられている。定数ゲート縮退部２８は同一の入出力条件を持つ複数の定数ゲートを判別し、いずれか１つの定数ゲートを残して他の定数ゲートを削除し、残された定数ゲートの出力を、削除した定数ゲートの出力先に共通に分岐接続する縮退処理を実行する。
【００３２】
ここで定数ゲートとしては、定数出力論理値として０，１，ファンピーダンスＺまたはドントケアＸを出力する定数ゲートがあり、各定数ゲートに分けて縮退処理を行うことになる。
【００３３】
バッファ縮退部３０は、ファンアウトのないバッファ及び、このバッファの入力側に直列接続されているバッファを判別して削除する。このようなファンアウトのないバッファは、機能設計の際に、途中で設計を中断して削除せずに残ったバッファ部分であり、元々不要なバッファであることから、この段階で削除する。
【００３４】
同一ファンインゲート縮退部３２は、同一の入出力条件で且つ同一のファンインを持つ複数のゲートを判別し、いずれか１つのゲートを残して他のゲートを削除し、残されたゲートの出力を、削除したゲートの出力先に分岐接続する縮退処理を行う。
【００３５】
これら縮退処理部２６に設けている定数ゲート縮退部２８、バッファ縮退部３０及び同一ファンインゲート縮退部３２の具体的な縮退処理は、ゲートレベル論理回路から変換されたシミュレーションのための基本プリミティブにおけるデータテーブル構造の書き換えにより実現される。シミュレーションのための基本プリミティブを構築するテーブル構造としては、プリミティブテーブル、ライブラリテーブル、インスタンステーブル及びネットテーブルの４テーブルで構成される。
【００３６】
図３は図２の論理検証部によるシミュレーションモデルのデータベース作成処理のフローチャートである。図３において、シミュレーションモデルのデータベース作成処理は、まずステップＳ１でゲートレベル論理回路データベース１８からゲートレベル論理回路のネットリストを読み込み、ステップＳ２で再起処理により階層展開しながらシミュレーションモデルの基本プリミティブに変換する。
【００３７】
この基本プリミティブの変換の際に定数ゲートが変換された場合、ステップＳ３で同一の入出力条件を持つ他の定数ゲートがあるか否かチェックし、もしあればステップＳ４に進み、同一の定数ゲートをまとめる縮退処理を実行する。
【００３８】
続いてステップＳ５でプリミティブデータを作成する。ステップＳ６にあっては全ての基本プリミティブへの変換処理が済んだか否かチェックし、済んでいなければステップＳ２に戻って処理を繰り返し、済んでいればステップＳ７でプリミティブレベル論理回路のデータベースを作成する。
【００３９】
次にステップＳ８でデータベースからプリミティブデータを読み出し、ステップＳ９でファンアウトを持たないバッファのプリミティブか否か判別する。ファンアウトを持たないバッファのプリミティブであった場合には、ステップＳ１０で、このバッファのプリミティブデータを削除する縮退処理を行う。
【００４０】
次にステップＳ１１で、同一ファンインを持つプリミティブのゲートを取り出す際に同じ同一ファンインを持つプリミティブとしてのゲートが存在するか否か判別する。存在すれば、ステップＳ１２で同一ファンインを持つゲートをまとめる縮退処理を行う。
【００４１】
続いてステップＳ１３でデータベースの全プリミティブデータの処理済みか否かチェックし、処理が済んでいなければステップＳ８に戻って処理を繰り返し、処理が済んでいればステップＳ１４に進み、図２のシミュレーションモデルデータベース３４を作成する。
【００４２】
図４は、図２の定数ゲート縮退部２８による定数ゲート縮退処理における縮退前と縮退後の説明図である。図４（Ａ）は縮退前の定数ゲート縮退処理の対象となるゲート回路であり、定数ゲート４２，４４は定数出力として０または１を出力し、ネット４６，４８を介して、それぞれＦＦゲート５０，５２に入力接続されている。
【００４３】
ここで図４（Ａ）の定数ゲート縮退処理の対象となる回路部の定数ゲート４２，４４及びＦＦゲート５０，５２には、ライブラリテーブルのライブラリ名ＬＩＢ１，ＬＩＢ２，ＬＩＢ２，ＬＩＢ２、インスタンステーブルのインスタンス名ＩＮＳＴ１，ＩＮＳＴ２，ＦＦ１，ＦＦ２が示され、更にネット４６，４８についてはネット名Ｎ１，Ｎ２が示される。
【００４４】
この図４（Ａ）のような定数ゲート４２，４４について、本発明の定数ゲート縮退処理にあっては、図４（Ｂ）に示すように定数ゲート４４を削除して定数ゲート４２を１つ残し、削除した定数ゲート４４の出力側のＦＦゲート５２に対するネット４８による接続を、残された定数ゲート４２のネット４６から分岐接続させている。
【００４５】
図５は、本発明のゲート縮退処理の対象となるプリミティブレベルのゲート表現に使用されるテーブル構造の説明図である。図５（Ａ）（Ｂ）（Ｃ）（Ｄ）に示すように、プリミティブレベルのゲートは、プリミティブテーブル２００、ライブラリテーブル３００、インスタンステーブル４００及びネットテーブル５００で構成される。
【００４６】
プリミティブテーブル２００は、ライブラリテーブル３００の識別子としてのライブラリＩＤ２０２、インスタンステーブル４００の識別子としてのインスタンスＩＤ２０４、入出力のネットの識別子となる入力ネット電位ＩＤ２０６及び出力ネット電位ＩＤ２０８を備えている。
【００４７】
図５（Ａ）のプリミティブテーブル２００とリンク関係にある図５（Ｂ）のライブラリテーブル３００は、ライブラリＩＤ３０２、ライブラリ名３０４、ファンイン数３０６及びファンアウト数３０８で構成されている。
【００４８】
図５（Ａ）のプリミティブテーブル２００とリンク関係にある図５（Ｃ）のインスタンステーブル４００は、図４（Ａ）（Ｂ）における各ゲートのブロックを表わしており、インスタンスＩＤ４０２、同一インスタンス代表ＩＤ４０４及びインスタンス名４０６で構成されている。このうち同一インスタンス代表ＩＤ４０４ファンスタンステーブル４００で指定されるブロックの上位階層を示すＩＤが記述されている。
【００４９】
図５（Ａ）のプリミティブテーブル２００とリンク関係にある図５（Ｄ）のネットテーブル５００は、ネットＩＤ５０２、同一電位ネット代表ＩＤ５０４及びネット名５０６で構成されている。このうち同一電位ネット代表ＩＤ５０４は、ネットテーブル５００を持つネットの上位階層を示すＩＤを記述している。
【００５０】
図６は、図４の定数ゲート縮退処理における縮退前と縮退後のプリミティブテーブルの説明図である。図６（Ａ）が縮退前のプリミティブテーブルであり、図４（Ａ）の定数ゲート４２に対応してプリミティブテーブル５４-１が設けられ、定数ゲート４４に対応してプリミティブテーブル５６−１が設けられ、ＦＦゲート５０に対応してプリミティブテーブル５８−１が設けられ、更にＦＦゲート５２に対応してプリミティブテーブル６０−１が設けられている。
【００５１】
これらプリミティブテーブル５４−１，５６−１，５８−１及び６０−１は、図５（Ａ）に示したプリミティブテーブル２００における各項目の横に具体的な数値を記述して表わしている。プリミティブテーブル５４−１〜６０−１から定数ゲート４２，４４及びＦＦゲート５０，５２のライブラリテーブル、インスタンステーブルとのリンク関係が、各ＩＤにより示されている。
【００５２】
図６（Ａ）の縮退前プリミティブテーブル５４−１〜６０−１は、図４（Ｂ）のように定数ゲート４４を削除することで、図６（Ｂ）のように削除した定数ゲート４４に対応するプリミティブテーブル５６−１が削除される。また定数ゲート４４の削除に伴い、ネット４８を残されたゲート４２からのネット４６に分岐接続させることから、ＦＦゲート５２の縮退後のプリミティブテーブル６０−２における入力ネット電位ＩＤを、縮退前の「２」からＦＦゲート５０のプリミティブテーブル５８−１における出力ネット電位ＩＤと同じ「１」に書き換えている。
【００５３】
図７は、図４の定数ゲート縮退処理における縮退前と縮退後のライブラリテーブルの説明図であり、図７（Ａ）の縮退前のライブラリ名「ＬＩＢ１」のライブラリテーブル６２−１とライブラリ名「ＬＩＢ１」のライブラリにおいても、その内容は変化なく、同じである。
【００５４】
図８は、図４の定数ゲート縮退処理における縮退前と縮退後のインスタンステーブルの説明図である。図８（Ａ）の縮退前のインスタンステーブルは、図４（Ａ）の縮退前の定数ゲート４２に対応してインスタンステーブル６６−１が設けられ、定数ゲート４４に対応してインスタンステーブル６８−１が設けられ、ＦＦゲート５０に対応してインスタンステーブル７０−１が設けられ、更にＦＦゲート５２に対応してインスタンステーブル７２−１が設けられている。
【００５５】
縮退前のインスタンステーブル６６−１，６８−１，７０−１，７２−１は、図４（Ｂ）のように定数ゲート４４を削除する縮退処理を行うと、図８（Ｄ）のようになる。このうち削除した定数ゲート４４以外の定数ゲート４２及びＦＦゲート５０，５２のテーブル内容は、図７（Ｂ）のインスタンステーブル６６−２，７０−２，７２−２に示すように縮退前と同じ内容であるが、削除した定数ゲートのインスタンステーブル６８−２については同一インスタンス代表ＩＤを縮退前の「２」から縮退後に「１」に変更している。
【００５６】
この変更後の同一インスタンス代表ＩＤである「１」は、残された定数ゲート４２のインスタンステーブル６６−２における同一インスタンス代表ＩＤの値「１」と同じであり、これによって定数ゲート４２が共有された状態となる。
【００５７】
図９は、図４の定数ゲート縮退処理における縮退前と縮退後のネットテーブルの説明図である。図９（Ａ）の縮退前のネットテーブルは、図４（Ａ）のネット４６に対応したネットテーブル７４−１とネット４８に対応したネットテーブル７６−１で構成される。
【００５８】
ネット４６，４８は、縮退後は図４（Ｂ）のようにネット４８がネット４６に分岐接続されて共有関係になることから、図９（Ｂ）の縮退後のネット４８のネットテーブル４６−２に続いて同一ネット代表ＩＤの値を縮退前の「２」から縮退後に「１」に変更し、ネット４６に対応したネットテーブル７４−２における同一ネット代表ＩＤの値「１」と同じにしている。
【００５９】
図１０は、本発明における定数ゲート縮退処理のフローチャートである。図１０において、ステップＳ１で定数ゲートを含む基本プリミティブ群のライブラリテーブル、インスタンステーブル、ネットテーブル及びプリミティブテーブルを読み込み、ステップＳ２で消去する定数ゲートのプリミティブテーブルを削除する。
【００６０】
続いてステップＳ３で、削除した定数ゲートの出力側のゲートのプリミティブテーブルの出力ネットＩＤを、残された定数ゲートの出力側ゲートのプリミティブテーブルの出力ネットＩＤに変更する。続いてステップＳ４で、削除した定数ゲートの出力回路となるプリミティブテーブルの出力ネット電位ＩＤを、残された定数ゲートの出力電位ＩＤに変更する。
【００６１】
次にステップＳ５で、削除した定数ゲートのインスタンステーブルにおける同一インスタンス代表ＩＤを、残された定数ゲートの同一インスタンスＩＤに変更する。最終的にステップＳ６で、削除した定数ゲートの出力ネットのネットテーブルにおける同一電位代表ＩＤを、残された定数ゲートの同一電位代表ＩＤに変更する。
【００６２】
図１２は、本発明によるファンアウトなしのバッファの縮退処理における縮退前と縮退後の説明図である。図１１（Ａ）は縮退前のファンアウトなしバッファを含む対象回路であり、ＦＦゲート７８の出力にネット８４を介してバッファ８０を接続し、更にネット８５を介してバッファ８２を接続している。バッファ８２はファンアウトを持たないバッファであり、ここで回路設計が中断している。
【００６３】
このようにファンアウトを持たないバッファ８２の存在は、ゲート７８の出力側に機能設計の段階でバッファを設けたが、設計見直しなどにより、これらのバッファ８０，８２が不要となったまま残存している場合である。
【００６４】
図１１（Ａ）のファンアウトなしバッファ８２を含む対象回路については、図１１（Ｂ）のようにファンアウトなしのバッファ８２及びこの入力側に存在するバッファ８０をそれぞれ削除し、ネット８４，８５を共有化する。
【００６５】
図１２は、図１１のファンアウトなしバッファ縮退処理における縮退前と縮退後のプリミティブテーブルの説明図である。図１２（Ａ）の縮退前にあっては、図１１（Ａ）のＦＦゲート７８に対応してプリミティブテーブル８６−１が設けられ、バッファ８０に対応してプリミティブテーブル８８−１が設けられ、更にバッファ８２に対応してプリミティブテーブル９０−１が設けられている。
【００６６】
縮退前のプリミティブテーブル８６−１，８８−１，９０−１において、バッファ８０，８２を削除することで、縮退後の図１２（Ｂ）のテーブルにあってはプリミティブテーブル８８−１，９０−１が削除され、ＦＦゲート７８に対応したプリミティブテーブル８６−２のみが残る。
【００６７】
図１３は、図１１のファンアウトなしバッファ縮退処理における縮退前と縮退後のライブラリブテーブルの説明図であり、図３（Ａ）のライブラリ名ＬＩＢ１及びＬＩＢ２に対応したライブラリテーブル９２−１，９２−２は、そのまま縮退後も図１３（Ｂ）のようにライブラリテーブル９２−２，９４−２となる。
【００６８】
図１４は、図１１のファンアウトなしバッファ縮退処理における縮退前と縮退後のインスタンステーブルの説明図である。図１４（Ａ）の縮退前のインスタンステーブル９６−１，９８−１，１００−１は、図１１（Ａ）のＦＦゲート７８、バッファ８０及びバッファ８２に対応して設けられている。
【００６９】
縮退後は図１１（Ｄ）のようにバッファ８０，８２が削除されることから、図１４（Ｂ）の縮退後のインスタンステーブル９６−２，９８−２，１００−２のうち、削除したバッファ８０，８２に対応するインスタンステーブル９８−２，１００−２については縮退前の同一インスタンス代表ＩＤ「２」「３」を、それぞれ残ったＦＦゲート７８のインスタンステーブル９６−２における同一インスタンス代表ＩＤと同じ「１」に変更する。
【００７０】
図１５は、図１１のファンアウトなしバッファ縮退処理における縮退前と縮退後のネットテーブルの説明図である。図１５（Ａ）の縮退前のネットテーブル１０２−１，１０４−１は、図１１（Ａ）のネット８４，８５に対応して設けられている。
【００７１】
図１１（Ｂ）のようにバッファ８０，８２を削除して縮退すると、ネット８４，８５が１つに共有化されることで、図１５（Ｂ）のネット８５に対応したネットテーブル１０４−２の同一電位ネット代表ＩＤが縮退前の「２」から、縮退後はネット８４のネットテーブル１０２−２における同一電位ネット代表ＩＤと同じ「１」に変更される。
【００７２】
図１６は、本発明におけるファンアウトなしバッファ縮退処理のフローチャートである。図１６において、ステップＳ１で対象プリミティブ群のライブラリテーブル、インスタンステーブル、ネットテーブル及びプリミティブテーブルを読み込み、ステップＳ２でファンアウトなしバッファ及びその入力側に設けているファンアウト及びファンインが「１」のバッファのプリミティブテーブルを削除する。
【００７３】
ここでバッファのファンイン及びファンアウトについては、図１３に示したライブラリテーブル９２−１，９２−２を参照することで判別できる。次にステップＳ３で、削除したバッファのインスタンステーブルにおける同一電位ネット代表ＩＤを、残った回路の同一電位ネット代表ＩＤに変更する。更にステップＳ４で、バッファ削除で残った２つのネットテーブルの同一電位ネット代表ＩＤをいずれか一方の値に変更することで共通化する。
【００７４】
図１７は、本発明による同一ファンインゲートの縮退処理における縮退前と縮退後の説明図である。図１７（Ａ）の縮退前の対象回路部は、ゲート１０８，１１０の入力にネット１２０，１２２を接続し、その出力のネット１２４，１２６側にゲート１１２，１１４を設けている。ゲート１１２，１１４は入力Ａ，Ｂを有し、ゲート１０８，１１０の出力をネット１２４，１２６によりそれぞれ共通に入力しており、同一ファンインゲートを構成している。ゲート１１２，１１４の出力はネット１２８，１３０を介してゲート１１６，１１８に接続され、更にゲート１１６，１１８の出力はネット１３２，１３４を介して出力されている。
【００７５】
図１０（Ａ）の対象回路について、ゲート１１２，１１４は同一ファンインを持つゲートであることから、図１７（Ｂ）のようにゲート１１４を削除し、ゲート１１２を残して共通化する。残ったゲート１１２の入力Ａ，Ｂに対しては、ゲート１０８，１１０の出力をネット１２４，１２６により接続する。ゲート１１２の出力は、ネット１２８，１３０の共通化によりゲート１１６，１１８に分岐接続される。
【００７６】
図１８は、図１７の同一ファンインゲート縮退処理における縮退前と縮退後のプリミティブテーブルの説明図である。図１８（Ａ）の縮退前のプリミティブテーブル１３６−１，１３８−１，１４０−１，１３２−１，１４４−１及び１４６−１は、図１７（Ａ）のゲート１０８，１１０，１１２，１１４，１１６，１１８のそれぞれに対応して設けられている。
【００７７】
図１８（Ｂ）のように同一ファンインゲートであるゲート１１４を削除して、残ったゲート１１２に共通化する縮退処理を行った場合には、図１８（Ｂ）の縮退後のように、削除したゲート１１４に対応するプリミティブテーブル１４２−１は削除され、削除したゲート１１４の出力のネット１３０を接続したゲート１１８の縮退後のプリミティブテーブル１４６−２について、その出力ネット電位ＩＤを縮退前の「８」から、縮退後は入力を共通化したゲート１１６のプリミティブテーブル１４４−２の出力ネット電位ＩＤと同じ値「７」に変更して共通化する。
【００７８】
図１９は、図１７の同一ファンインゲートの縮退処理における縮退前と縮退後のライブラリテーブルの説明図であり、図１９（Ａ）のライブラリテーブル１４８−１，１５０−１，１５２−１，１５４−１，１５６−１は、図７（Ａ）のゲート１０８，１１０，１１２，１１４，１１６，１１８のそれぞれに対応して設けられており、縮退後の図１９（Ｂ）のライブラリテーブル１４８−２，１５０−２，１５２−２，１５４−２及び１５６−２は、縮退前と同じ登録内容である。
【００７９】
図２０は、図１７の同一ファンインゲートの縮退処理における縮退前と縮退後のインスタンステーブルの説明図である。図２０（Ａ）のインスタンステーブル１５８−１，１６０−１，１６２−１，１６４−１，１６６−１，１６８−１は、図７（Ａ）のゲート１０８，１１０，１１２，１１４，１１６，１１８のそれぞれに対応して設けられている。
【００８０】
縮退前のインスタンステーブルは、図１７（Ｂ）に示す縮退処理によりゲート１１４が削除されることから、削除したゲート１１４に対応する縮退後の図２０（Ｂ）におけるインスタンステーブル１６４−２の同一インスタンス代表ＩＤの値が、縮退前の「４」から、縮退後は残されたゲート１１２のインスタンステーブル１６２−２における同一インスタンス代表ＩＤと同じ値「３」に変更される。
【００８１】
図２１は、図１７の同一ファンインゲートの縮退処理における縮退前と縮退後のネットテーブルの説明図である。図２１（Ａ）のネットテーブル１７０−１，１７２−１，１７４−１，１７６−１，１７８−１，１８０−１，１８２−１，１８４−１は、図１７（Ａ）の縮退前のネット１２０，１２２，１２４，１２６，１２８，１３０，１３２，１３４のそれぞれに対応して設けられている。
【００８２】
そして図１７（Ｂ）のように、ゲート１１４を削除して、縮退した後の図１１（Ｂ）のネットテーブルにあっては削除したゲート１１４の出力のネット１３０に対応したネットテーブル１８０−２における同一電位ネット代表ＩＤを、縮退前の「６」から、縮退後は残ったゲート１１２の出力のネット１２８に対応したネットテーブル１７８−２の同一電位ネット代表ＩＤの値と同じ「５」に変更する。
【００８３】
図２２は、本発明における同一ファンインゲート縮退処理のフローチャートである。図２２において、まずステップＳ１で対象プリミティブ群のライブラリテーブル、インスタンステーブル、ネットテーブル及びプリミティブテーブルを読み込み、ステップＳ２で同一ファンインのゲートを１つ残し、他のプリミティブテーブルを削除する。
【００８４】
続いてステップＳ３で、削除したゲートの出力側ゲートのプリミティブテーブルの出力ネット電位ＩＤを、残されたゲートの出力側のゲートのプリミティブテーブルの出力ネットＩＤに変更する。次にステップＳ４で、削除したゲートのインスタンステーブルにおける同一インスタンス代表ＩＤを、残したゲートの同一インスタンス代表ＩＤに変更する。
【００８５】
最終的にステップＳ５で、削除したゲートの出力ネットテーブルにおける同一電位ネット代表ＩＤを、残したゲートの出力ネットテーブルにおける同一電位ネット代表ＩＤに変更する。
【００８６】
また本発明は半導体設計システムを構築するコンピュータで実行されるプログラムを提供するものであり、このプログラムは図３のシミュレーションモデルデータベース作成処理、図１０の定数ゲート縮退処理、図１６のファンアウトなしバッファ削除処理、及び図２２の同一ファンインゲート縮退処理のフローチャートの処理手順を持ったプログラムとして実現される。
【００８７】
また上記の実施形態における基本プリミティブを構成するプリミティブテーブル、ライブラリテーブル、インスタンステーブル及びネットテーブルの縮退処理に伴う内容変更の順番は、適宜の順番でよい。また本発明は、その目的と利点を損なうことのない適宜の変形を含み、更に上記の実施形態に示した数値による限定は受けない。
【００８８】
更に上記の実施形態にあっては、縮退処理として定数ゲート縮退処理、ファンアウトなしバッファ削除処理、同一ファンインゲート縮退処理の３つを行う場合を例に取っているが、少なくともいずれか１つの縮退処理を行うようにすれば、その範囲内において作成したシミュレーションモデルのゲート数を削減する効果が得られる。
【００８９】
ここで本発明の特徴を列挙すると次の付記のようになる。
（付記）
（付記１）
論理動作レベルで記述した論理回路をゲートレベルの論理回路に変換し、ゲートレベルの論理回路からシミュレーションモデルを作成する集積回路設計システムに於いて、
前記ゲートレベルの論理回路をシミュレータで実行可能な基本プリミティブに変換するプリミティブ変換部と、
前記基本プリミティブを対象に、ディレイ段数に影響を与えることのない削除可能なゲートを判定して削除するゲート縮退部と、
を設けたことを特徴とする集積回路設計システム。（１）
【００９０】
（付記２）
付記１記載の集積回路設計システムに於いて、前記ゲート縮退部は、
前記基本プリミティブを対象に、同一の入出力条件をもつ複数の定数ゲートを判別し、何れか１つの定数ゲートを残して他の定数ゲートを削除し、残された定数ゲートの出力を削除した定数ゲートの出力先に共通に分岐接続する定数ゲート縮退部と、
前記基本プリミティブを対象に、ファンアウトのないバッファ及びその入力側に直列接続されているバッファを判別して削除するバッファ縮退部と、
前記基本プリミティブを対象に、同一の入出力条件で且つ同一のファンインをもつ複数のゲートを判別し、何れか１つのゲートを残して他のゲートを削除し、残されたゲートの出力を削除したゲートの出力先に分岐接続する同一ファンインゲート縮退部と、
を備えたことを特徴とする集積回路設計システム。（２）
【００９１】
（付記３）
付記２記載の集積回路設計システムに於いて、前記定数ゲート縮退部は、定数出力論理値として０、１、ファンピーダンスＺ又はドントケアＸを出力する定数ゲートに分けて縮退することを特徴とする集積回路設計システム。
【００９２】
（付記４）
付記２記載の集積回路設計システムに於いて、前記ブリミティブ変換部は、ゲートレベルの論理回路を基本プリミティブに変換した際に、各ゲート毎に、ゲートの名称、ファンイン数及びファンアウト数を定義したライブラリテーブル、ゲートの階層関係及びインスタンス名を定義したインスタンステーブル、ネットの階層関係及びネット名を定義したネットテーブルの各々とのリンク関係を定義したプリミティブテーブルを生成することを特徴とする集積回路設計システム。（３）
【００９３】
（付記５）
付記４記載の集積回路設計システムに於いて、
前記プリミティブテーブルは、ライブラリ識別子、インスタンス識別子、入力ネット電位識別子、及び出力ネット電位識別子を登録し、
前記ライブラリテーブルは、ライブラリ識別子、ゲート種別名、ファンイン数、ファンアウト数を登録し、
前記ネットテーブルは、ネット識別子、上位階層を示す同一電位ネット代表識別子及びネットを登録し、更に、
前記インスタンステーブルファンスタンス識別子、上位階層を示す同一インスタンス代表識別子、及びインスタンス名を登録することを特徴とする集積回路設計システム。
【００９４】
（付記６）
付記４記載の集積回路設計システムに於いて、前記定数ゲート縮退部は、
削除対象定数ゲートのプリミティブテーブルを削除すると共に、削除対象定数ゲートの出力側ゲートのプリミティブテーブルの出力ネット識別子を、残された定数ゲートの出力側ゲートのプリミティブテーブルの出力ネット識別子に変更し、
削除対象定数ゲートのインスタンステーブルの階層関係を、残された定数ゲートのインスタンステーブルの階層関係と同じ値に変更し、更に、
削除対象定数ゲートのネットテーブルの階層関係を、残された定数ゲートの階層関係の値に変更することを特徴とする集積回路設計システム。
【００９５】
（付記７）
付記４記載の集積回路設計システムに於いて、前記バッファ縮退部は、
削除対象バッファのプリミティブテーブルを削除し、
削除対象バッファのインスタンステーブルの階層関係を、削除対象バッファの入力に位置するゲートのインスタンステーブルの階層関係と同じ値に変更し、更に、
削除対象バッファのネットテーブルの階層関係を、削除対象バッファの入力に位置するゲートの階層関係の値に変更することを特徴とする集積回路設計システム。
【００９６】
（付記８）
付記４記載の集積回路設計システムに於いて、前記同一ファンインゲート縮退部は、
削除対象ゲートのプリミティブテーブルを削除すると共に、削除対象ゲートの出力側ゲートのプリミティブテーブルの出力ネット識別子を、残されたゲートの出力側ゲートのプリミティブテーブルの出力ネット識別子に変更し、
削除対象ゲートのインスタンステーブルの階層関係を、残したゲートのインスタンステーブルの階層関係と同じ値に変更し、更に、
削除対象ゲートのネットテーブルの階層関係を削除バッファの入力に位置するゲートの階層関係の値に変更することを特徴とする集積回路設計システム。
【００９７】
（付記９）
論理動作レベルで記述した論理回路をゲートレベルの論理回路に変換し、ゲートレベルの論理回路からシミュレーションモデルを作成する集積回路設計方法に於いて、
前記ゲートレベルの論理回路をシミュレータで実行可能な基本プリミティブに変換するプリミティブ変換ステップと、
前記基本プリミティブを対象に、同一の入出力条件をもつ複数の定数ゲートを判別し、何れか１つの定数ゲートを残して他の定数ゲートを削除し、残された定数ゲートの出力を削除した定数ゲートの出力先に共通に分岐接続する定数ゲート縮退ステップと、
前記基本プリミティブを対象に、ファンアウトのないバッファ及び入力側に直列接続されているバッファを判別して削除するバッファ縮退ステップと、
前記基本プリミティブを対象に、同一の入出力条件で且つ同一のファンインもつ複数のゲートを判別し、何れか１つのゲートを残して他のゲートを削除し、残されたゲートの出力を削除したゲートの出力先に分岐接続する同一ファンインゲート縮退ステップと、
を備えたことを特徴とする集積回路設計方法。（４）
【００９８】
（付記１０）
付記９記載の集積回路設計方法に於いて、前記定数ゲート縮退ステップは、定数出力論理値として０、１、ファンピーダンスＺ又はドントケアＸを出力する定数ゲートに分けて縮退することを特徴とする集積回路設計方法。
【００９９】
（付記１１）
付記９記載の集積回路設計方法に於いて、前記ブリミティブ変換ステップは、ゲートレベルの論理を基本プリミティブに変換した際に、各ゲート毎に、ゲートの名称、ファンイン数及びファンアウト数を定義したライブラリテーブル、ゲートの階層関係及びインスタンス名を定義したインスタンステーブル、ネットの階層関係及びネット名を定義したネットテーブルの各々とのリンク関係を定義したプリミティブテーブルを生成することを特徴とする集積回路設計方法。
【０１００】
（付記１２）
付記９記載の集積回路設計方法に於いて、
前記プリミティブテーブルは、ライブラリ識別子、インスタンス識別子、入力ネット電位識別子、及び出力ネット電位識別子を登録し、
前記ライブラリテーブルは、ライブラリ識別子、ゲート種別名、ファンイン数、ファンアウト数を登録し、
前記ネットテーブルは、ネット識別子、上位階層を示す同一電位ネット代表識別子及びネットを登録し、更に、
前記インスタンステーブルファンスタンス識別子、上位階層を示す同一インスタンス代表識別子、及びインスタンス名を登録することを特徴とする集積回路設計方法。
【０１０１】
（付記１３）
付記１１記載の集積回路設計方法に於いて、前記定数ゲート縮退ステップは、
削除対象定数ゲートのプリミティブテーブルを削除すると共に、削除対象定数ゲートの出力側ゲートのプリミティブテーブルの出力ネット識別子を、残された定数ゲートの出力側ゲートのプリミティブテーブルの出力ネット識別子に変更し、
削除対象定数ゲートのインスタンステーブルの階層関係を、残された定数ゲートのインスタンステーブルの階層関係と同じ値に変更し、更に、
削除対象定数ゲートのネットテーブルの階層関係を、残された定数ゲートの階層関係の値に変更することを特徴とする集積回路設計方法。
【０１０２】
（付記１４）
付記１１記載の集積回路設計方法に於いて、前記バッファ縮退ステップは、
削除対象バッファのプリミティブテーブルを削除し、
削除対象バッファのインスタンステーブルの階層関係を、削除対象バッファの入力に位置するゲートのインスタンステーブルの階層関係と同じ値に変更し、更に、
削除対象バッファのネットテーブルの階層関係を、削除対象バッファの入力に位置するゲートの階層関係の値に変更することを特徴とする集積回路設計方法。
【０１０３】
（付記１５）
付記１１記載の集積回路設計方法に於いて、前記同一ファンインゲート縮退ステップは、
削除対象ゲートのプリミティブテーブルを削除すると共に、削除対象ゲートの出力側ゲートのプリミティブテーブルの出力ネット識別子を、残されたゲートの出力側ゲートのプリミティブテーブルの出力ネット識別子に変更し、
削除対象ゲートのインスタンステーブルの階層関係を、残したゲートのインスタンステーブルの階層関係と同じ値に変更し、更に、
削除対象ゲートのネットテーブルの階層関係を削除バッファの入力に位置するゲートの階層関係の値に変更することを特徴とする集積回路設計方法。
【０１０４】
（付記１６）
コンピュータに、
論理動作レベルで記述した論理回路をゲートレベルの論理回路に変換し、ゲートレベルの論理回路からシミュレータで実行可能な基本プリミティブに変換するプリミティブ変換ステップと、
前記基本プリミティブを対象に、同一の入出力条件をもつ複数の定数ゲートを判別し、何れか１つの定数ゲートを残して他の定数ゲートを削除し、残された定数ゲートの出力を削除した定数ゲートの出力先に共通に分岐接続する定数ゲート縮退ステップと、
前記基本プリミティブを対象に、ファンアウトのないバッファ及び入力側に直列接続されているバッファを判別して削除するバッファ縮退ステップと、
前記基本プリミティブを対象に、同一の入出力条件で且つ同一のファンインもつ複数のゲートを判別し、何れか１つのゲートを残して他のゲートを削除し、残されたゲートの出力を削除したゲートの出力先に分岐接続する同一ファンインゲート縮退ステップと、
を実行させることを特徴とするプログラム。（５）
【０１０５】
（付記１７）
付記１６記載のプログラムに於いて、前記定数ゲート縮退ステップは、定数出力論理値として０、１、ファンピーダンスＺ又はドントケアＸを出力する定数ゲートに分けて縮退することを特徴とするプログラム。
【０１０６】
（付記１８）
付記１６記載のプログラムに於いて、前記ブリミティブ変換ステップは、ゲートレベルの論理を基本プリミティブに変換した際に、各ゲート毎に、ゲートの名称、ファンイン数及びファンアウト数を定義したライブラリテーブル、ゲートの階層関係及びインスタンス名を定義したインスタンステーブル、ネットの階層関係及びネット名を定義したネットテーブルの各々とのリンク関係を定義したプリミティブテーブルを生成することを特徴とするプログラム。
【０１０７】
（付記１９）
付記１６記載のプログラムに於いて、
前記プリミティブテーブルは、ライブラリ識別子、インスタンス識別子、入力ネット電位識別子、及び出力ネット電位識別子を登録し、
前記ライブラリテーブルは、ライブラリ識別子、ゲート種別名、ファンイン数、ファンアウト数を登録し、
前記ネットテーブルは、ネット識別子、上位階層を示す同一電位ネット代表識別子及びネットを登録し、更に、
前記インスタンステーブルファンスタンス識別子、上位階層を示す同一インスタンス代表識別子、及びインスタンス名を登録することを特徴とするプログラム。
【０１０８】
（付記２０）
付記１８記載のプログラムに於いて、前記定数ゲート縮退ステップは、
削除対象定数ゲートのプリミティブテーブルを削除すると共に、削除対象定数ゲートの出力側ゲートのプリミティブテーブルの出力ネット識別子を、残された定数ゲートの出力側ゲートのプリミティブテーブルの出力ネット識別子に変更し、
削除対象定数ゲートのインスタンステーブルの階層関係を、残された定数ゲートのインスタンステーブルの階層関係と同じ値に変更し、更に、
削除対象定数ゲートのネットテーブルの階層関係を、残された定数ゲートの階層関係の値に変更することを特徴とするプログラム。
【０１０９】
（付記２１）
付記１８記載のプログラムに於いて、前記バッファ縮退ステップは、
削除対象バッファのプリミティブテーブルを削除し、
削除対象バッファのインスタンステーブルの階層関係を、削除対象バッファの入力に位置するゲートのインスタンステーブルの階層関係と同じ値に変更し、更に、
削除対象バッファのネットテーブルの階層関係を、削除対象バッファの入力に位置するゲートの階層関係の値に変更することを特徴とするプログラム。
【０１１０】
（付記２２）
付記１８記載のプログラムに於いて、前記同一ファンインゲート縮退ステップは、
削除対象ゲートのプリミティブテーブルを削除すると共に、削除対象ゲートの出力側ゲートのプリミティブテーブルの出力ネット識別子を、残されたゲートの出力側ゲートのプリミティブテーブルの出力ネット識別子に変更し、
削除対象ゲートのインスタンステーブルの階層関係を、残したゲートのインスタンステーブルの階層関係と同じ値に変更し、更に、
削除対象ゲートのネットテーブルの階層関係を削除バッファの入力に位置するゲートの階層関係の値に変更することを特徴とするプログラム。
【図面の簡単な説明】
【０１１１】
【図１】本発明の原理説明図
【図２】本発明による回路設計システムの機能構成のブロック図
【図３】図２の論理検証部によるシミュレーションモデルのデータベース作成処理のフローチャート
【図４】本発明の定数ゲートの縮退処理における縮退前と縮退後の説明図
【図５】本発明のシミュレーションで使用する基本プリミティブに対応したテーブル構造の説明図
【図６】図４の定数ゲート縮退処理における縮退前と縮退後のプリミティブテーブルの説明図
【図７】図４の定数ゲート縮退処理における縮退前と縮退後のライブラリテーブルの説明図
【図８】図４の定数ゲート縮退処理における縮退前と縮退後のインスタンステーブルの説明図
【図９】図４の定数ゲート縮退処理における縮退前と縮退後のネットテーブルの説明図
【図１０】本発明における定数ゲート縮退処理のフローチャート
【図１１】本発明のファンアウトなしバッファの縮退処理における縮退前と縮退後の説明図
【図１２】図１１のファンアウトなしバッファ縮退処理における縮退前と縮退後のプリミティブテーブルの説明図
【図１３】図１１のファンアウトなしバッファ縮退処理における縮退前と縮退後のライブラリテーブルの説明図
【図１４】図１１のファンアウトなしバッファ縮退処理における縮退前と縮退後のインスタンステーブルの説明図
【図１５】図１１のファンアウトなしバッファ縮退処理における縮退前と縮退後のネットテーブルの説明図
【図１６】本発明におけるファンアウトなしバッファ縮退処理のフローチャート
【図１７】本発明の同一ファンインゲートの縮退処理における縮退前と縮退後の説明図
【図１８】図１７の同一ファンインゲート縮退処理における縮退前と縮退後のプリミティブテーブルの説明図
【図１９】図１７の同一ファンインゲート縮退処理における縮退前と縮退後のライブラリテーブルの説明図
【図２０】図１７の同一ファンインゲート縮退処理における縮退前と縮退後のインスタンステーブルの説明図
【図２１】図１７の同一ファンインゲート縮退処理における縮退前と縮退後のネットテーブルの説明図
【図２２】本発明における同一ファンインゲート縮退処理のフローチャート
【図２３】ディレイ段数が問題となる従来のバッファ縮退処理の説明図
【符号の説明】
【０１１２】
１０：論理動作レベル論理回路データベース
１２：マイクロセルライブラリ
１４：論理機能検証部
１６：論理回路合成部
１８：ゲートレベル論理回路データベース
２０：論理機能等価検証部
２２：論理検証部
２４：シミュレーションモデル作成部
２６：縮退処理部
２８：定数ゲート縮退部
３０：バッファ縮退部
３２：同一ファンインゲート縮退部
３４：シミュレーションモデルデータベース
３６：シミュレーション処理部
３８：シミュレーション制御部
４０：結果リスト
４２，４４：定数ゲート
４６，４８：ネット
５０、５２，７８：ＦＦゲート
８０：バッファ
８２：ファンアウトなしバッファ
１１２，１１４：同一ファンインゲート
２００：プリミティブテーブル
３００：ライブラリテーブル
４００：インスタンステーブル
５００：ネットテーブル
【図１】
2006004244.tif 000003
【図２】
2006004244.tif 000004
【図３】
2006004244.tif 000005
【図４】
2006004244.tif 000006
【図５】
2006004244.tif 000007
【図６】
2006004244.tif 000008
【図７】
2006004244.tif 000009
【図８】
2006004244.tif 000010
【図９】
2006004244.tif 000011
【図１０】
2006004244.tif 000012
【図１１】
2006004244.tif 000013
【図１２】
2006004244.tif 000014
【図１３】
2006004244.tif 000015
【図１４】
2006004244.tif 000016
【図１５】
2006004244.tif 000017
【図１６】
2006004244.tif 000018
【図１７】
2006004244.tif 000019
【図１８】
2006004244.tif 000020
【図１９】
2006004244.tif 000021
【図２０】
2006004244.tif 000022
【図２１】
2006004244.tif 000023
【図２２】
2006004244.tif 000024
【図２３】
2006004244.tif 000025