(57)【要約】    【課題】ネットリスト形式で記述されたＨＤＬに対してイベント数を減らしてＲＴＬ記述に変換することによってイベントドリブン方式でのシミュレーションを高速化する。    【解決手段】  論理回路読込部１８によりネットリスト形式ＨＤＬで記述された論理回路と、論理回路中のインスタンスに対応するライブラリのＲＴＬ形式で記述された下位の論理回路（下位モジュール）を論理回路記憶部２０に読込む。ライブラリ階層展開部２２は、論理回路中のインスタンスに対してライブラリの階層を展開する処理を行ってＲＴＬ形式に変換する。代入文削除部２４はＲＴＬ形式に変換した論理回路中の代入文を置換して削除する。論理回路出力部２６は変換の済んだ論理回路をＲＴＬ形式で出力する。ライブラリ１６の論理回路がネットリスト形式ＨＤＬで記述されている場合、論理回路の場合と同様にＲＴＬ形式ＨＤＬに変換する。    【選択図】      図１
2008033919.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェア記述言語を用いてネットリスト形式で記述された論理回路をＲＴＬ形式で記述された論理回路に変換する論理回路の記述形式変換方法に於いて、
前記ネットリスト形式で記述された論理回路を読み込む論理回路読込ステップと、
前記論理回路中のインスタンスに対応するライブラリのＲＴＬ形式で記述された下位の論理回路を読み込むライブラリ読込ステップと、
前記論理回路中のインスタンスに対して前記ライブラリの階層を展開する処理を行ってＲＴＬ形式に変換するライブラリ階層展開ステップと、
前記論理回路中の代入文を置換して削除する代入文削除ステップと、
前記論理回路をＲＴＬ形式で出力する論理回路出力ステップと、
を備えたことを特徴とする論理回路の記述形式変換方法。
【請求項２】
請求項１記載の論理回路の記述形式変換方法に於いて、前記ライブラリの論理回路がネットリスト形式で記述されている場合、前記論理回路をＲＴＬ形式に変換するライブラリ記述形式変換ステップを備えたことを特徴とする論理回路の記述形式変換方法。
【請求項３】
請求項２記載の論理回路の記述形式変換方法に於いて、前記ライブラリ記述形式変換ステップは、
ライブラリ内のネットリスト形式で記述された論理回路を読み込む論理回路読込ステップと、
前記論理回路中のインスタンスに対してＲＴＬ形式で記述されたライブラリ内の下位の論理回路を読込む下位論理回路読込ステップと、
前記論理回路のインスタンスに対し前記下位論理回路との階層を展開する処理を行ってＲＴＬ形式に変換するライブラリ階層展開ステップと、
前記論理回路中の代入文を置換して削除する代入文削除ステップと、
前記論理回路をＲＴＬ形式で出力して前記ライブラリを書き換えるモジュール出力ステップと、
を備えたことを特徴とする論理回路の記述形式変換方法。
【請求項４】
請求項１記載の論理回路の記述形式変換方法に於いて、前記ライブラリ階層展開ステップは、
前記論理回路内のインスタンスに対応するライブラリ内の下位論理回路を特定するライブラリ特定ステップと、
前記論理回路内のインスタンスに対して、インスタンスピンとそれに対応するライブラリ内の下位論理回路のライブラリポートの結合関係を設定する結合ステップと、
ライブラリ内の下位論理回路から入出力を除くデータタイプ宣言を抽出してそのコピーを生成する宣言コピーステップと、
ライブラリ内の下位論理回路からファンクション記述を抽出してそのコピーを生成するファンクション記述コピーステップと、
ライブラリ内の下位論理回路からタスク記述を抽出してそのコピーを生成するタスク記述コピーステップと、
ライブラリ内の下位論理回路から動作記述を抽出してそのコピーを生成する動作記述コピーステップと、
を備えたことを特徴とする論理回路の記述形式変換方法。
【請求項５】
請求項４記載の論理回路の記述形式変換方法に於いて、前記ハードウェア記述言語がＶｅｒｉｌｏｇ−ＨＤＬの場合、
前記結合ステップは、前記ライブラリポートが入力ポートの場合、前記インスタンスピンに対応して、
wire  ライブラリポート名；
assign  ライブラリポート名＝インスタンスピンの式；
を生成し、
前記前記ライブラリポートが出力ポートの場合、前記インスタンスピンに対し、
wire  ライブラリポート名；
assign  インスタンスピンの式＝ライブラリポート名；
を生成し、
前記ライブラリポート名として、前記論理回路のインスタンス名をアンダースコアで変換前のライブラリポート名と連結した名前を生成することを特徴とする論理回路の記述形式変換方法。
【請求項６】
請求項１記載の論理回路の記述形式変換方法に於いて、前記代入文削除ステップは、代入文の左辺が他式で使われている場合、前記他式で使われている箇所を前記代入文の右辺に置き換えて前記代入文を削除することを特徴とする論理回路の記述形式変換方法。
【請求項７】
請求項６記載の論理回路の記述形式変換方法に於いて、前記代入文削除ステップは、前記代入文の右辺で置き換えた前記他式が演算式の場合、予め定めた変換ルールに従って簡略化された演算式に変換することを特徴とする論理回路の記述形式変換方法。
【請求項８】
請求項１記載の論理回路の記述形式変換方法に於いて、前記代入文削除ステップは、第１代入文の左辺に遅延が付加され、前記第１代入文の左辺のみが第２代入文の右辺に使われている場合、前記第１代入文の遅延を前記第２代入文に付加すると共に前記第２代入文の右辺で使われている箇所を第１代入文の右辺に置き換えて前記第１代入文を削除することを特徴とする論理回路の記述形式変換方法。
【請求項９】
コンピュータに、
ハードウェア記述言語を用いてネットリスト形式で記述されたれた論理回路を読み込む論理回路読込ステップと、
前記論理回路中のインスタンスに対応するライブラリのＲＴＬ形式で記述された下位の論理回路を読み込むライブラリ読込ステップと、
前記論理回路中のインスタンスに対して前記ライブラリの階層を展開する処理を行ってＲＴＬ形式に変換するライブラリ階層展開ステップと、
前記論理回路中の代入文を置換して削除する代入文削除ステップと、
前記論理回路をＲＴＬ形式で出力する論理回路出力ステップと、
を実行することを特徴とするプログラム。
【請求項１０】
ハードウェア記述言語を用いてネットリスト形式で記述された論理回路をＲＴＬ形式で記述された論理回路に変換する論理回路の記述形式変換装置に於いて、
前記ネットリスト形式で記述された論理回路を読み込む論理回路読込部と、
前記論理回路中のインスタンスに対応するライブラリのＲＴＬ形式で記述された下位の論理回路を読み込むライブラリ読込部と、
前記論理回路中のインスタンスに対して前記ライブラリの階層を展開する処理を行ってＲＴＬ形式に変換するライブラリ階層展開部と、
前記論理回路中の代入文を置換して削除する代入文削除部と、
前記論理回路をＲＴＬ形式で出力する論理回路出力部と、
を備えたことを特徴とする論理回路の記述形式変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードウェア記述言語を用いて記述した論理回路の高速シミュレーションを可能とする論理回路の記述形式変換方法、プログラム及び装置に関し、特に、ネットリスト形式で記述された論理回路をＲＴＬ形式に変換して高速シミュレーションを可能とする論理回路の記述形式変換方法，プログラム及び装置に関する。
【背景技術】
【０００２】
従来、大規模な論理回路については回路図に代わる設計手法としてＶｅｒｉｌｏｇ−ＨＤＬなどのハードウェア記述言語（ＨＤＬ；  Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）を使用したテキストベースの設計作業が行われている。
【０００３】
ＨＤＬによる設計作業は、通常、次の手順で行われる。
（１）テキストエディタ上で回路モジュールの機能をハードウェア記述言語により記述してＨＤＬファイル（機能記述ファイル）を作成。
（２）ＨＤＬファイルのＨＤＬシミュレータを使用して動作を確認。
（３）動作が確認できたＨＤＬファイルから論理合成ツールを使用してネットリストを作成。
【０００４】
このような従来のＨＤＬを用いた論理設計にあっては、基本的にＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）記述として知られたＲＴＬ形式で記述されるが、ギガヘルツオーダーの超高速で動作する必要があるデータパス系の回路やＤＦＴ（Ｄｅｓｉｇｎ  Ｆｏｒ  Ｔｅｓｔ）の回路は、ゲートレベル記述として知られたネットリスト形式で記述されることが多い。
【０００５】
ここで、ＲＴＬ形式と呼ばれるＲＴＬ記述は、実現する論理をレジスタとレジスタ間の論理機能で表現したHDLの記述であり、レジスタの値が遷移していく様子を記述したものである。
【０００６】
またネットリスト形式と呼ばれるゲートレベル記述は、ＡＳＩＣ内部のゲートやセルベース（下位モジュールを部品化してライブラリに登録したインスタンス）の接続関係で表現したリストで記述するレベルであり、ＲＴＬ記述では実現できない高速性や高密度を要求する場合などに使う。
【０００７】
このようにＬＳＩ回路の論理設計はＨＤＬを用いてＲＴＬ形式及びネットリスト形式で記述しており、設計時にＨＤＬの論理回路が正しく機能が動作するかを論理シミュレータを用いて検証している。
【０００８】
ここで、ＨＤＬで記述された論理回路のシミュレーションに関連する従来技術として、次の特許文献１乃至６がある。
【０００９】
特許文献１は、トランジスタ／ゲートレベルのシミュレーションにおいて、トランジスタをゲートに変換し、組み合わせ回路と順序回路に区分し、ＲＴＬに変換することで、シミュレーションを高速化する装置である。
【００１０】
特許文献２は、ゲートレベルのシミュレーションにおいて、クロック信号を利用して順序回路をクロック同期化し、順序回路の起動タイミングを最適化してから、従来の最適化処理を行うことで、シミュレーションを高速化する装置である。
【００１１】
特許文献３は、論理回路のシミュレーションにおいて、イベント実行単位をまとめる操作を行うことで、シミュレーションを高速化する装置である。
【００１２】
特許文献４は、ゲートレベルのシミュレーションにおいて、削除可能なゲートを判定して削除することで、シミュレーションを高速化する装置である。
【００１３】
特許文献５は、ＲＴＬをネットリストに変換し、そのネットリストに対して回路の不活性部分の削除、レジスタの移動・統合化を行い、ＲＴＬに再変換することで、シミュレーションを高速化する装置である。
【００１４】
特許文献６は、ＲＴＬのシミュレーションにおいて、条件実行部とそれに続くデータ演算部を統合することで、シミュレーションを高速化する装置である。
【特許文献１】特開平６−３４８７７５号
【特許文献２】特開平７−１２９６３２号
【特許文献３】特開平１０−６９５０５号
【特許文献４】特開２００６−４２４４号
【特許文献５】特開平９−３１１８２２号
【特許文献６】特開平１１−８５８３２号
【発明の開示】
【発明が解決しようとする課題】
【００１５】
しかしながら、ネットリスト形式で記述された回路を多く含んだ大規模なＬＳＩ回路の動作を論理シミュレータで検証する場合、ネットリスト形式で記述された部分の検証に多くの時間がとられるという問題がある。
【００１６】
これは一般的な論理シミュレータの場合、イベントドリブン方式でシミュレーションを行うが、ネットリスト形式の場合はイベント数がかなり多くなり、シミュレータの実行時間がかなり長くなる。
【００１７】
ここでイベントドリブン方式のシミュレーションとは、信号の変化（イベント）のある論理ゲートなどの素子に着目し、イベントの発生した素子の次段の素子のみ演算処理し、素子の出力が変化している場合に、信号の変化を次段に次々と伝え、論理値のみならず、イベント間の遅延も計算できる。
【００１８】
このネットリスト形式のシミュレーション実行時間の問題を解消する装置として以下のような装置がある。
【００１９】
（１）サイクルベース方式によるシミュレーション
サイクルベース方式のシミュレーションは、素子の遅延時間を無視して前処理で静的に演算順序を決定しておき、実行時にはクロックサイクルごとに１度だけ演算を行う。タイミング検証はできないが、イベントドリブン方式と比べて演算量が大幅に低減し、数十倍から百倍程度の高速動作が可能である。
【００２０】
（２）ハードウェアエミュレータを用いたシミュレーション
ハードウェアエミュレータによるシミュレーションは、イベントドリブン方式の論理シミュレータを専用ハードウェア化したもので、可能な限り処理の並列性を高めるように工夫され、イベントドリブン方式の論理シミュレータと比べ数十倍から数百倍も速く、対象回路の制約はなく、タイミング検証も可能である。
【００２１】
しかし、サイクルベース方式によるシミュレーションは、基本的に同期回路を対象としており、ＨＤＬの記述に制限があり、一般的ではない。またハードウェアエミュレータは大変高価であるため、コストの負担が大きい。
【００２２】
そのため、ネットリスト形式で記述された論理回路のシミュレーションを、ＨＤＬの記述の制限なしに、安価に実行する装置が求められている。
【００２３】
本発明は、ネットリスト形式で記述されたＨＤＬに対してイベント数を減らしてＲＴＬ記述に変換することによってイベントドリブン方式での高速シミュレーションを可能とする論理回路の記述形式変換方法、プログラム及び装置を提供することを目的とする。
【課題を解決するための手段】
【００２４】
（方法）
本発明は論理回路の記述形式変換方法を提供する。本発明は、ハードウェア記述言語を用いてネットリスト形式で記述された論理回路をＲＴＬ形式で記述された論理回路に変換する論理回路の記述形式変換方法に於いて、
ネットリスト形式で記述された論理回路（モジュール）を読み込む論理回路読込ステップと、
論理回路中のインスタンスに対応するライブラリのＲＴＬ形式で記述された下位の論理回路（下位モジュール）を読み込むライブラリ読込ステップと、
論理回路中のインスタンスに対してライブラリの階層を展開する処理を行ってＲＴＬ形式に変換するライブラリ階層展開ステップと、
論理回路中の代入文を置換して削除する代入文削除ステップと、
論理回路をＲＴＬ形式で出力する論理回路出力ステップと、
を備えたことを特徴とする。
【００２５】
ここで、ライブラリの論理回路がネットリスト形式で記述されている場合、論理回路をＲＴＬ形式に変換するライブラリ記述形式変換ステップを備える。このライブラリ記述形式変換ステップは、
ライブラリ内のネットリスト形式で記述された論理回路を読み込む論理回路読込ステップと、
論理回路中のインスタンスに対してＲＴＬ形式で記述されたライブラリ内の下位の論理回路を読込む下位論理回路読込ステップと、
論理回路のインスタンスに対し下位論理回路との階層を展開する処理を行ってＲＴＬ形式に変換するライブラリ階層展開ステップと、
論理回路中の代入文を置換して削除する代入文削除ステップと、
論理回路をＲＴＬ形式で出力してライブラリを書き換えるモジュール出力ステップと、
を備える。
【００２６】
ライブラリ階層展開ステップは、
論理回路内のインスタンスに対応するライブラリ内の下位論理回路を特定するライブラリ特定ステップと、
論理回路内のインスタンスに対して、インスタンスピンとそれに対応するライブラリ内の下位論理回路のライブラリポートの結合関係を設定する結合ステップと、
ライブラリ内の下位論理回路から入出力を除くデータタイプ宣言を抽出してそのコピーを生成する宣言コピーステップと、
ライブラリ内の下位論理回路からファンクション記述を抽出してそのコピーを生成するファンクション記述コピーステップと、
ライブラリ内の下位論理回路からタスク記述を抽出してそのコピーを生成するタスク記述コピーステップと、
ライブラリ内の下位論理回路から動作記述を抽出してそのコピーを生成する動作記述コピーステップと、
を備える。
【００２７】
ハードウェア記述言語がＶｅｒｉｌｏｇ−ＨＤＬの場合、結合ステップは、ライブラリポートが入力ポートの場合、インスタンスピンに対応して、
wire  ライブラリポート名；
assign  ライブラリポート名＝インスタンスピンの式；
を生成し、
ライブラリポートが出力ポートの場合、インスタンスピンに対応して、
wire  ライブラリポート名；
assign  インスタンスピンの式＝ライブラリポート名；
を生成し、
ライブラリポート名として、論理回路のインスタンス名をアンダースコアで変換前のライブラリポート名と連結した名前を生成する。
【００２８】
ハードウェア記述言語がＶｅｒｉｌｏｇ−ＨＤＬの場合、
宣言コピーステップは、コピー先の宣言名として、論理回路のインスタンス名をアンダースコアで変換前の宣言名と連結した名前を生成し、
ファンクション記述コピーステップは、コピー先のファンクション名として、論理回路のインスタンス名をアンダースコアで変換前のファンクション名と連結した名前を生成し、
タスク記述コピーステップは、コピー先のタスク名として、論理回路のインスタンス名をアンダースコアで変換前のタスク名と連結した名前を生成し、
インスタンス記述コピーステップは、コピー先のインスタンス名として、論理回路のインスタンス名をアンダースコアで変換前のインスタンス名と連結した名前を生成し、インスタンスピンの式の中の変数名として、モジュールのインスタンス名をアンダースコアで変換前の変数名と連結した名前を生成し、
動作記述コピーステップは、動作記述文としてライブラリ内の下位論理回路からｉｎｉｔｉａ１文、ａｌｗａｙｓ文及びａｓｓｉｇｎ文を抽出してそのコピーを生成する。
【００２９】
代入文削除ステップは、代入文の左辺が他式で使われている場合、他式で使われている箇所を代入文の右辺に置き換えて代入文を削除する。更に、代入文削除ステップは、代入文の右辺で置き換えた他式が演算式の場合、予め定めた変換ルールに従って簡略化された演算式に変換する。
【００３０】
代入文削除ステップは、第１代入文の左辺に遅延が付加され、第１代入文の左辺のみが第２代入文の右辺に使われている場合、第１代入文の遅延を第２代入文に付加すると共に第２代入文の右辺を第１代入文の右辺で使われている箇所に置き換えて第１代入文を削除する。
【００３１】
（プログラム）
本発明は論理回路の記述形式変換のためのプログラムを提供する。本発明のプログラムは、コンピュータに、
ハードウェア記述言語を用いてネットリスト形式で記述されたれた論理回路を読み込む論理回路読込ステップと、
論理回路中のインスタンスに対応するライブラリのＲＴＬ形式で記述された下位の論理回路を読み込むライブラリ読込ステップと、
論理回路中のインスタンスに対して前記ライブラリの階層を展開する処理を行ってＲＴＬ形式に変換するライブラリ階層展開ステップと、
論理回路中の代入文を置換して削除する代入文削除ステップと、
論理回路をＲＴＬ形式で出力する論理回路出力ステップと、
を実行することを特徴とする。
【００３２】
（装置）
本発明は論理回路の記述形式変換装置を提供する。本発明は、ハードウェア記述言語を用いてネットリスト形式で記述された論理回路をＲＴＬ形式で記述された論理回路に変換する論理回路の記述形式変換装置に於いて、
ネットリスト形式で記述された論理回路を読み込む論理回路読込部と、
論理回路中のインスタンスに対応するライブラリのＲＴＬ形式で記述された下位の論理回路を読み込むライブラリ読込部と、
論理回路中のインスタンスに対して前記ライブラリの階層を展開する処理を行ってＲＴＬ形式に変換するライブラリ階層展開部と、
論理回路中の代入文を置換して削除する代入文削除部と、
論理回路をＲＴＬ形式で出力する論理回路出力部と、
を備えたことを特徴とする。
【発明の効果】
【００３３】
本発明によれば、ネットリスト形式のＨＤＬをイベントドリブン方式のシミュレータでシミュレーションを行う場合に、ネットリスト形式で記述されたＨＤＬを、ライブラリを参照して階層展開してＲＴＬ形式の記述に変換し、また冗長な代入文が含まれている場合は置換して削除し、これによってイベント数を減らし、シミュレーションを高速に行うことができる。
【００３４】
また本発明による形式変換の対象となるネットリスト形式によるＨＤＬの記述に特に制限はなく、簡単且つ容易に、更に安価に実行することができる。
【００３５】
また、ライブラリがネットリスト形式で記述されている場合(マクロライブラリの場合)や、ライブラリ中に冗長な代入文が含まれている場合は、ライブラリをいったん最適なＲＴＬ形式のライブラリに変換することで、そのようなライブラリのインスタンスが設計した論理回路中に複数存在しても、同じ変換を何度も繰り返すことがなくなるので、この変換自体の高速化が期待できる。
【発明を実施するための最良の形態】
【００３６】
図１は本発明による論理回路記述形式変換装置の実施形態を示した機能構成のブロック図である。本実施形態の機能構成は、本実施形態の論理回路記述形式変換プログラムをコンピュータで実行することにより実現される。
【００３７】
図１において、本実施形態の論理回路記述形式変換装置１０は、論理回路読込部１８、論理回路記憶部２０、ライブラリ階層展開部２２、代入文削除部２４及び論理回路出力部２６で構成される。
【００３８】
論理回路読込部１８は、ネットリスト形式のＨＤＬで記述された設計済みの論理回路（デザイン回路）を読み込んで論理回路記憶部２０に記憶する。また論理回路読込部１８は、論理回路１４のＨＤＬ記述中のインスタンスに対応するライブラリ１６のＲＴＬ形式で記述されたＨＤＬを全て読み込む。
【００３９】
ライブラリ１６には、ネットリスト形式のＨＤＬで記述した論理回路１４でモジュール内に部品として記述しているインスタンスに対応した下位モジュールが、ＲＴＬ形式ＨＤＬにより記述されたモジュールとして登録されている。
【００４０】
尚、ライブラリ１６として、ネットリスト形式ＨＤＬで記述されている場合については、後の説明で明らかにするように、ライブラリのネットリスト形式のＨＤＬをＲＴＬ形式のＨＤＬに変換して本実施形態の論理回路読込部１８で読み込むことになる。
【００４１】
ライブラリ階層展開部２２は、論理回路記憶部２０に読み込まれたネットリスト形式ＨＤＬの論理回路内のそれぞれのインスタンスに対し、ＲＴＬ形式で記述されたライブラリ１６のＨＤＬの下位モジュールを使用して階層を展開する処理を実行し、この階層展開処理により論理回路１４はＲＴＬ形式に変換される。
【００４２】
代入文削除部２４は、ライブラリ階層展開によりＲＴＬ形式に変換された論理回路のＨＤＬに対し、代入文を置換して削除する代入文の削除処理を実行する。論理回路出力部２６は、ライブラリ階層展開及び代入文削除処理の済んだＲＴＬ形式のＨＤＬに変換された論理回路２８を出力する。変換済のＲＴＬ形式のＨＤＬでなる論理回路２８を使用して、論理シミュレータによりイベントドリブン方式のシミュレーションを行うことになる。
【００４３】
図２はライブラリ記述形式変換装置と組み合わせた本実施形態のブロック図である。図２において、論理回路記述形式変換装置１０は図１の実施形態と同じである。本実施形態は、オリジナルのライブラリ３０がネットリスト形式のＨＤＬで記述されている場合であり、ライブラリ記述形式変換装置１２によりＲＴＬ形式のＨＤＬに変換してライブラリ１６に格納し、その後、論理回路記述形式変換装置１０により設計済みのネットリスト形式のＨＤＬからなる論理回路の変換処理を行うことになる。
【００４４】
図３は図２のライブラリ記述形式変換装置１２の実施形態を示した機能構成のブロック図である。ライブラリ記述形式変換装置１２は、論理回路読込部１８−１、論理回路記憶部２０−１、ライブラリ階層展開部２２−１、代入文削除部２４−１及び論理回路出力部２６−１で構成され、この構成は基本的に、図１に示した論理回路記述形式変換装置１０と同じである。
【００４５】
相違点としては、ネットリスト形式で記述されたＨＤＬを格納しているライブラリ３０から、部品として登録されているインスタンスに対応した各モジュールを変換対象の論理回路として読み込み、変換対象となる論理回路に含まれているインスタンスに対応した基本論理素子のＲＴＬ形式ＨＤＬを読み込んで階層展開している点である。
【００４６】
図４は本実施形態の機能を実現するプログラムを実行するコンピュータのハードウエア環境のブロック図である。図４において、ＣＰＵ３４のバス３６に対し、ＲＡＭ３８、ＲＯＭ４０、ハードディスクドライブ４２、キーボード４６，マウス４８及びディスプレイ５０を接続したデバイスインタフェース４４、及びネットワークアダプタ５２を接続している。
【００４７】
ハードディスクドライブ４２には本実施形態の論理回路及びライブラリの記述形式を変換するためのプログラムが格納されており、コンピュータを起動した際に、ブートアップ後のＯＳのＲＡＭ３８への展開に続いて、記述形式変換プログラムがハードディスクドライブ４２から読み出されてＲＡＭ３８に展開され、ＣＰＵ３４により実行される。
【００４８】
図５は本実施形態で変換対象とするネットリスト形式ＨＤＬで記述された論理回路１４の説明図である。この論理回路１４にあっては、１行目のモジュール名が「ＤＥＳＩＧＮ」であり、ポート名が「ｄ，ｓ，ｃ，ｒ，ｑ」であり、２〜６行目にポート宣言が記述され、７〜８行目にｗｉｒｅ宣言が記述され、９行目と１０行目にインスタンスが記述されている。
【００４９】
ここで９行目のインスタンスはマルチプレクサＭＵＸであり、ライブラリ３０に登録されている下位モジュールである論理回路ＭＵＸを部品として記述してインスタンス化を行っている。
【００５０】
また１０行目のインスタンスはリセット端子付のＤ−ＦＦであり、同様にライブラリ１６に登録されているＤ−ＦＦの下位モジュールを部品として記述してインスタンス化を行っている。
【００５１】
図６は図５の論理回路１４の９行目と１０行目のインスタンスに対応して登録されたライブラリ３０の説明図であり、ライブラリ３０はネットリスト形式のＨＤＬで記述されている。本実施形態における論理回路の記述形式変換にはネットリスト形式のライブラリ３０はそのまま使用できず、図２及び図３の実施形態に示したように、ライブラリ記述形式変換装置１２により図７に示すＲＴＬ形式のＨＤＬで記述されたライブラリ１６に変換して使用することになる。
【００５２】
図６のネットリスト形式で記述されたライブラリ３０にあっては、図５の論理回路１４の９行目のマルチプレクサＭＵＸに対応した下位モジュールを１〜１３行目に記述している。また１〜１３行目のモジュールＭＵＸは、９〜１２行目にインスタンスとしてＮＯＴ  ｉ１，ＡＮＤ  ｉ２，ＡＮＤ  ｉ３，及びＯＲ  ｉ４のインスタンスを含んでおり、これら４つのインスタンスに対応したモジュールを１５〜３２行目にそれぞれ記述している。
【００５３】
また図５の１０行目のインスタンスＤＦＦに対応した下位モジュールとして、３４〜４７行目にＨＤＬを記述している。
【００５４】
この図６のネットリスト形式のＨＤＬで記述されたライブラリ３０を本実施形態により階層展開し且つ冗長な代入文を置換して削除すると、図７に示すＲＴＬ形式のライブラリ１６を生成することができる。ライブラリ１６は、１〜７行目がインスタンスＭＵＸの変換部分であり、８〜２１行目がインスタンスＤＦＦの変換部分となる。
【００５５】
図８は図５のネットリスト形式の論理回路１４を対象に、図７のＲＴＬ形式のライブラリ１６を使用してライブラリ階層展開した後に、冗長な代入文を置換して削除して得た本実施形態の記述形式変換処理で得られたＲＴＬ形式の論理回路２８の説明図である。
【００５６】
このＲＴＬ形式に変換された論理回路２８は、図５と対比して明らかなように、ライブラリに登録した下位モジュールを部品として使用するインスタンスは存在せず、インスタンスは全て動作記述文に変換されている。
【００５７】
このようなＲＴＬ形式の論理回路２８を論理シミュレータに投入してイベントドリブン方式でシミュレーションを行う場合には、イベント数を大幅に低減できたことで、シミュレーション速度を高速に実行することが可能になる。
【００５８】
図９は図５のＨＤＬから記述した論理回路１４の回路図であり、マルチプレクサ（ＭＵＸ）６４は入力ピンａ，ｂ，ｓと出力ピンｏを備え、またリセット端子付のＤ−ＦＦ（ＤＦＦ）６６は入力ピンｄ，ｃ，ｒと出力ピンｑ，ｑｂを備えている。また、この論理回路１４のポートとして入力ポートｂ，ｓ，ｃ，ｒが設けられ、出力ポートはポートｑとなっている。
【００５９】
図１０は図１の実施形態による論理回路記述形式変換処理のフローチャートであり、図１を参照して説明すると次のようになる。まずステップＳ１で、論理回路読込部１８がネットリスト形式で記述されたＨＤＬによる論理回路１４を論理回路記憶部２０に読み込む。続いてステップＳ２で、読み込んだ論理回路１４中のインスタンスに対応するライブラリ１６のＲＴＬ形式で記述されたＨＤＬを論理回路記憶部２０に読み込む。
【００６０】
続いてステップＳ３で、ライブラリ階層展開部２２が論理回路記憶部２０に格納されている論理回路１４内のそれぞれのインスタンスに対し、ライブラリ１６の階層を展開する処理を行って、論理回路１４のネットリスト形式をＲＴＬ形式に変換する。
【００６１】
続いてステップＳ４で、代入文削除部２４が論理回路記憶部２０に格納されている冗長な代入文を置換して削除する。例えば論理回路中に置換え可能な代入文が存在している場合、代入文の左辺が他式で使われている場合、他式で使われている箇所を代入文の右辺で置き換え、元の代入文を削除することになる。
【００６２】
最終的にステップＳ５で、論理回路出力部２６がＲＴＬ形式のＨＤＬに変換された論理回路２８を出力する。
【００６３】
図１１は図２に示したライブラリの記述形式変換を含む論理回路記述形式変換処理のフローチャートである。この処理は図６に示したように、変換処理対象とするネットリスト形式の論理回路のインスタンスに対応するモジュールを登録したライブラリがネットリスト形式のＨＤＬで記述されている場合に適用される。即ち、ステップＳ１でライブラリの記述形式をネットリスト形式からＲＴＬ形式に変換した後、ステップＳ２で論理回路をネットリスト形式からＲＴＬ形式に変換することになる。
【００６４】
図１２は図１１のステップＳ１におけるライブラリの記述変換処理の詳細を示したフローチャートである。このライブラリ記述変換処理は、図３の実施形態に示すライブラリ記述形式変換装置１２で行われ、処理手順となるステップＳ１〜Ｓ５は基本的に、図１０に示した論理回路に対する変換処理と同じになる。
【００６５】
図１３は図１０のステップＳ３におけるライブラリ展開処理を示したフローチャートである。図１３において、ライブラリ展開処理は、ステップＳ１で論理回路内のモジュールを取り出し、ステップＳ２でモジュール内のインスタンスを取り出す。
【００６６】
次にステップＳ３でインスタンスに対応するライブラリがあるか否かチェックし、対応するライブラリがある場合には、ステップＳ４〜Ｓ１０の処理によりライブラリを展開してインスタンスをネットリスト形式からＲＴＬ形式に変換する。ステップＳ３でインスタンスに対応するライブラリが存在しない場合には、ステップＳ４〜Ｓ１０の処理はスキップする。
【００６７】
インスタンスに対応するライブラリが存在する場合、ステップＳ４でインスタンスに対応するライブラリを特定する。次にステップＳ５でインスタンスピンとライブラリポートとを結合する処理を実行する。次にステップＳ６でライブラリ内の宣言のコピー処理を行う。
【００６８】
続いてステップＳ７でライブラリ内のファンクション及びまたはタスクのコピー処理を行う。続いてステップＳ８でライブラリ内のインスタンスのコピー処理を行う。更にステップＳ９でライブラリ内の動作記述のコピー処理を行う。これによりインスタンスのライブラリ展開が済んだことから、ステップＳ１０で、対象としているインスタンスを削除する。
【００６９】
続いてステップＳ１１でモジュール内の全てのインスタンスの処理が済んだか否かチェックし、済んでいなければステップＳ２に戻り、次のインスタンスをモジュール内から取り出して、ステップＳ３からの処理を繰り返す。
【００７０】
ステップＳ１１でモジュール内の全インスタンスの処理が済んだならば、ステップＳ１２に進み、論理回路内の全モジュールの処理が済んだか否かチェックし、未処理であればステップＳ１に戻り、次のモジュールを論理回路内から取り出してステップ２からの処理を繰り返す。ステップ１２で全モジュールの処理が済んだことが判別されると、一連のライブラリ展開処理を終了して図１０のメインルーチンにリターンする。
【００７１】
図１４は図１３のステップＳ５におけるインスタンスピンとライブラリポートの結合処理の詳細を示したフローチャートである。図１４において、ステップＳ１でインスタンスのピンを１つ抽出し、次にステップＳ２でインスタンスピンに対応するライブラリポートを抽出する。続いてステップＳ３で新ライブラリポート名を生成する。この新ライブラリポート名は
（新ライブラリポート名）＝（インスタンス名＋“＿”＋ライブラリポート名）
とする。なお、“＿”はアンダースコアと呼ぶ。続いてステップＳ４で元のライブラリポート名と生成した新ライブラリポート名を連想配列に登録する。
【００７２】
次にステップＳ５でライブラリポートが入力ポートか否かチェックする。入力ポートであった場合にはステップＳ６に進んで、入力ポートに対応したポート宣言と代入文を生成する。このポート宣言と代入文は
ｗｉｒｅ  新ライブラリポート名；
ａｓｓｉｇｎ  新ライブラリポート名＝インスタンスピンの式；
とする。
【００７３】
一方、ステップＳ５でライブラリポートが入力ポートでなかった場合即ち出力ポートであった場合には、ステップＳ７に進み、出力ポートに対応したポート宣言と代入文を生成する。このポート宣言と代入文は
ｗｉｒｅ  新ライブラリポート名；
ａｓｓｉｇｎ  インスタンスピンの式＝新ライブラリポート名；
とする。
【００７４】
次にステップＳ８で全インスタンスピンの処理が済んだか否かチェックし、未処理であればステップＳ１に戻り、次のインスタンスピンを抽出してステップＳ２からの処理を繰り返す。全てのインスタンスピンの処理が済むと一連の処理を終了し、図１３のライブラリ展開処理にリターンする。
【００７５】
図１５はインスタンスピンとライブラリポートの結合処理の具体例を示している。図１５（Ａ）は処理対象とするインスタンスを記述した論理回路１４である。図１５（Ｂ）は論理回路１４のインスタンスに対応するライブラリ１６である。
【００７６】
図１５（Ａ）のインスタンスにつき、図１４のインスタンスピンとライブラリポートの結合処理を適用すると、図１５（Ｃ）の階層展開ワーク６０−１に示すようになる。即ち、図１４のステップＳ１で図１５（Ａ）のインスタンスのピンａを抽出し、ステップＳ２でインスタンスピンａに対応する図１５（Ｂ）のライブラリポート１６の２行目を抽出し、ステップＳ３で新ライブラリポート名として
（新ライブラリポート名）＝（インスタンス名）＋“＿”＋（ライブラリポート名）
＝ｉ１＿ａ
を生成し、ステップＳ４でライブラリポート名ａと共に連想配列に登録する。
【００７７】
続いてステップＳ５でライブラリポートａは入力ポートであることから、ステップＳ６で図１５（Ｃ）の１行目と２行目に示すようにポート宣言と代入文を生成する。
【００７８】
次のインスタンスピンのピンｏについては、新ライブラリポート名「ｉ１＿ｏ」が生成され、ライブラリポートは出力ポートであることから、図１５（Ｃ）の３，４行目のように出力ポートを対象としたポート宣言と代入文が生成される。
【００７９】
図１６はライブラリポートがレジスタと宣言されている場合のインスタンスピンとライブラリポートの結合処理の具体例を示している。図１６（Ａ）は処理対象とするインスタンスを記述した論理回路１４である。図１６（Ｂ）は論理回路１４のインスタンスに対応するライブラリ１６である。
【００８０】
図１６（Ａ）のインスタンスにつき、図１４のインスタンスピンとライブラリポートの結合処理を適用すると、図１６（Ｃ）の階層展開ワーク６０−１Ａに示すようになる。即ち、図１４のステップＳ１で図１６（Ａ）のインスタンスピンｑを抽出し、ステップＳ２でインスタンスピンｑに対応する図１６（Ｂ）のライブラリポート１６の３行目を抽出し、ステップＳ３で新ライブラリポート名として「ｉ２＿ｑ」を生成し、ライブラリポートは出力ポートであることから、図１６（Ｃ）の出力ポートを対象としたポート宣言と代入文が生成される。
【００８１】
図１７は図１３のステップＳ６における宣言コピー処理の詳細を示したフローチャートである。この宣言コピー処理は、ライブラリ内の宣言に対し、その宣言のコピーを生成する。この場合、ｗｉｒｅなどのデータタイプ宣言で、ｉｎｐｕｔ／ｏｕｔｐｕｔの宣言は処理対象から除く。またコピー先の新宣言名は
（新宣言名）＝（インスタンス名）＋“＿”＋（宣言名）
としている。
【００８２】
即ち、図１７の宣言コピー処理にあっては、ステップＳ１でライブラリ内の宣言を抽出し、ステップＳ２で新宣言名を生成し、ステップＳ３で宣言名と新宣言名を連想配列に登録する。続いてステップＳ４で宣言のコピーを生成し、コピー先の名前を新宣言名に設定する。このステップＳ１〜Ｓ４の処理を、ステップＳ５で全宣言の処理が済むまで繰り返す。
【００８３】
図１８は宣言コピー処理の具体例を示す。図１８（Ａ）に示す論理回路１４のインスタンスに対応するライブラリが図１８（Ｂ）のライブラリ１６である場合、図１７の宣言コピー処理により図１８（Ｃ）の階層展開ワーク６０−２に示す宣言コピーが生成される。
【００８４】
ここでライブラリ１６の２行目のｗｉｒｅ宣言の新宣言名は「ｉ１＿ｎ」であり、またライブラリ１６の３行目のｗｉｒｅ宣言の新宣言名は「ｉ１＿ｑｂ」であり、これら新宣言名を使用して図１８（Ｃ）の１，２行目に示す宣言コピーが生成される。
【００８５】
図１９は図１３のステップＳ７におけるファンクションコピー処理の詳細を示したフローチャートである。
【００８６】
ファンクションコピー処理は、ライブラリ内のそれぞれのファンクションに対しファンクションのコピーを生成する。このファンクションのコピーは全ステートメントのコピーとする。ファンクションコピー処理の際に、コピー先の新ファンクション名は
（新ファンクション名）＝（インスタンス名）＋“＿”＋（ファンクション名）
とする。
【００８７】
また、ファンクションの引き数（ｉｎｐｕｔ／ｏｕｔｐｕｔ）やファンクション内の宣言はそのままコピーする。更にファンクション内で使用されているライブラリポートやライブラリ内の宣言となる変数名は、コピー後の新たな変数名に変更する。更にまた、ファンクションの返り値は新ファンクション名とする。
【００８８】
このようなファンクションコピー処理を図１９のフローチャートについて説明すると次のようになる。まずステップＳ１でライブラリ内にファンクションがあるか否かチェックし、ファンクションがあれば、ステップＳ２でファンクションを１つ抽出し、ステップＳ３で新ファンクション名を生成する。
【００８９】
続いてステップＳ４でファンクション名と新ファンクション名を連想配列に登録する。続いてステップＳ５でファンクションのコピーを生成し、コピー先の名前を新ファンクション名に設定する。
【００９０】
続いてステップＳ６で全ファンクションの処理済の有無をチェックし、未処理であればステップＳ２に戻り、次のファンクションを取り出して同様な処理を繰り返す。ステップＳ１でライブラリ内にファンクションがなかった場合、あるいはステップＳ６で全ファンクションの処理が済んだ場合は、図１３の階層処理にリターンする。
【００９１】
図２０はファンクションコピー処理の具体例を示した説明図である。図２０において、まず図２０（Ａ）の論理回路１４のインスタンスに対応する図２０（Ｂ）のライブラリ１６が存在する場合、図１９のファンクションコピー処理により、図２０（Ｃ）に示す階層展開ワーク６２のファンクションコピーを生成する。
【００９２】
ここでライブラリ１６の２行目のファンクション名「ｓ１」に対する新ファンクション名は「ｉ１＿ｓ１」であり、この新ファンクション名が図２０（Ｃ）の１行目及び３行目で使用されている。それ以外のライブラリ１６の２〜５行目については、ファンクションコピー処理の階層展開ワーク６２に示すように１〜４行目としてそのままコピーされている。
【００９３】
図２１は図１３のステップＳ８におけるタスクコピー処理の詳細を示したフローチャートである。タスクコピー処理も基本的には図１９のファンクションコピー処理と同じになる。
【００９４】
即ちタスクコピー処理にあっては、ライブラリ内のそれぞれのタスクに対しタスクのコピーを生成する。このタスクのコピーは全ステートメントをコピーする。コピー先の新タスク名は
（新タスク名）＝（インスタンス名）＋“＿”＋（タスク名）
とする。タスクの引き数ｉｎｐｕｔ／ｏｕｔｐｕｔやタスク内の宣言はそのままコピーする。またタスク内で使用されているライブラリポートやライブラリ内の宣言となる変数名はコピー後の新たな変数名に変更する。
【００９５】
このタスクコピー処理を図２１について説明すると次のようになる。まずステップＳ１でライブラリ内にタスクがあるか否かチェックし、タスクがあればステップＳ２でタスクを１つ抽出し、ステップＳ３で新タスク名を生成し、ステップＳ４で連想配列に登録する。続いてステップＳ５でタスクのコピーを生成し、コピー先の名前を新タスク名に設定する。
【００９６】
続いてステップＳ６で全タスクの処理済の有無をチェックし、未処理であればステップＳ２に戻り、次のタスクを取り出して同様な処理を繰り返す。ステップＳ６で全タスクの処理済、もしくはステップＳ１でライブラリ内にタスクがなかった場合には、タスクコピー処理を終了し、図１３の階層展開にリターンする。
【００９７】
図２２は図１３のステップＳ８におけるインスタンスコピー処理の詳細を示したフローチャートである。インスタンスコピー処理は、ライブラリ内のそれぞれのインスタンスに対し、そのインスタンスのコピーを生成する。コピー先の新インスタンス名は
（新インスタンス名）＝（モジュールインスタンス名）＋“＿”＋（ライブラリインスタンス名）
とする。またインスタンスピンの式の中の変数即ち、ライブラリポート、ライブラリ内の宣言、ライブラリ内のファンクションの名前は、新たな変数名に変更する。
【００９８】
このインスタンスコピー処理を図２２について説明すると次のようになる。まずステップＳ１でライブラリ内にインスタンスがあるか否かチェックし、インスタンスがあれば、ステップＳ２でライブラリインスタンスを１つ抽出し、ステップＳ３で新ライブラリインスタンス名を生成する。
【００９９】
続いてステップＳ４でライブラリインスタンスのコピーを生成する。更にステップＳ５でコピー先のインスタンス名に新ライブラリインスタンス名を設定し、更にコピーした新インスタンスピンの式の中の変数名は連想配列から変換後の新変数名を求めて設定する。
【０１００】
続いてステップＳ６で全インスタンス処理済か否かチェックし、未処理であればステップＳ２に戻り、次のライブラリインスタンスを抽出して同様な処理を繰り返す。ステップＳ６で全インスタンスの処理済、またはステップＳ１でライブラリ内にインスタンスがなかった場合には、図１３の階層展開にリターンする。
【０１０１】
図２３はインスタンスコピー処理の具体例を示した説明図である。図２３において、図２３（Ａ）の論理回路１４のインスタンスに対し、図２３（Ｂ）のライブラリ１６が対応する場合、インスタンスコピー処理により図２３（Ｃ）の階層展開ワーク６０−３に示すインスタンスコピーが生成される。
【０１０２】
ここでライブラリ１６の２行目のインスタンスをコピー先の新インスタンス名は「ｉ１＿ｉ２」であり、これを図２３（Ｃ）の新インスタンス名に設定している。またライブラリ１６の２行目のインスタンスのカッコ内に示す変数名については、これまでのコピー処理で生成された連想配列から対応する新変数名「ｉ１＿ａ」、「ｉ１＿ｓ」、「ｉ１＿ａ１」を求めて設定している。
【０１０３】
図２４は図１３のステップＳ９における動作記述コピー処理の詳細を示したフローチャートである。この動作記述コピー処理は、ライブラリ内の動作記述であるｉｎｉｔｉａｌ文、ａｌｗａｙｓ文、ａｓｓｉｇｎ文に対し、その動作記述のコピーを生成する。
【０１０４】
コピーする際には、動作記述の文中の変数、即ちライブラリポート、ライブラリ内の宣言及びライブラリ内のファンクションは、連想配列からコピー後の新変数名を求めて変更する。
【０１０５】
この動作記述コピー処理を図２４について説明すると次のようになる。ステップＳ１でライブラリ内の動作記述を抽出し、ステップＳ２で動作記述のコピーを生成する。続いてステップＳ３で動作記述のコピーの中の変数、即ち、新連想配列から変換後の新変数名を求めて設定する。続いてステップＳ４で全動作記述の処理済の有無をチェックし、処理を終了するまでステップＳ１からの処理を繰り返す。
【０１０６】
以上のような一連の処理を経てライブラリの階層展開が済んだならば、図１３のステップＳ１０で、展開の済んだインスタンスを削除することになる。
【０１０７】
図２５及び図２６は、図１０のステップＳ４の代入文削除処理を示したフローチャートである。この代入文削除処理は次の３つの処理からなる。
（１）代入文の置換処理
（２）代入文を置換した後の式の変換
（３）遅延が付加されている代入文の置換処理
【０１０８】
まず前記（１）の代入文の置換処理を、図２７の具体例を参照して説明する。図２７（Ａ）は処理対象となる代入文が記述されている階層展開ワーク６０−４を示している。この階層展開ワーク６０−４において、１行目の代入文に着目すると、この代入文の左辺「ｎｅｔ１」は他式である３行目の代入文の右辺の式で使われている。そこで３行目の代入文の右辺の式における「ｎｅｔ１」を１行目の代入文の右辺「〜（ｉｎ１＆ｉｎ２）」で置き換える。
【０１０９】
また２行目の代入文に着目すると、この代入文の左辺の「ｎｅｔ２」は他式である３行目の代入文の右辺の式で使用されている。そこで、この場合についても３行目の代入文の右辺の式における「ｎｅｔ１」を２行目の代入文の右辺「ｉｎ１｜ｉｎ２」で置き換える。このような代入文の置換えにより、図２７（Ｂ）の階層展開ワーク６０−５に示す置換えが行われ、元の１行目、２行目の代入文は削除することができる。
【０１１０】
次に前記（２）の代入文を置き換えた後の式の変換を説明する。本実施形態における代入文削除の際の置き換える過程で、置き換えた後の式の値に自明な演算があれば、その演算を更に簡略化された演算式に変換する。
【０１１１】
この式の演算の変換には、図２８（Ａ）に示す変換ルールが存在する。図２８（Ａ）の変換ルール６４にあっては、項番、上位式、変換式として１７個の例を示している。変換ルール６４において、上位式が代入文の置換え過程で発生する式であり、この上位式に該当する具体的な演算式については、これを右側の変換式に示す簡単な演算式に変換する。
【０１１２】
図２８（Ｂ）は変換ルール６４の上位式及び変換式に示す記号の説明を示した記号一覧７０である。もちろん記号一覧７０は、これ以外にもＶｅｒｉｌｏｇ−ＨＤＬで使用されている記号を用いることができる。
【０１１３】
図２９は図２８（Ａ）の変換ルール６４を使用した具体例である。図２９（Ａ）の階層展開ワーク６０−６に示す３つの代入文について代入文削除処理を行うと、図２９（Ｂ）の階層展開ワーク６０−７の代入文に置換することができる。
【０１１４】
更に図２９（Ｂ）の右辺の「〜ｉｎ１＆ｉｎ１」は図２８（Ａ）の変換ルール６４における矢印６６で示す上位式「ｎ＆〜ｎ」に該当し、この場合の変換式は「１’ｂ０」となり、図２９（Ｃ）の階層展開ワーク６０−８に示すように右辺は「〜１’ｂ０」となる。またこの演算は図２８（Ａ）の変換ルール６４における矢印６７で示す上位式「〜１’ｂ０」に該当し、この場合の変換式は「１’ｂ１」となる。したがって、変換ルール６４に基づき図２９（Ｄ）の階層展開ワーク６０−９に示すように右辺の演算を「１’ｂ１」に変換して簡略化することができる。
【０１１５】
次に前記（３）の遅延が付加されている代入文の処理を、図３０を参照して説明する。図３０（Ａ）は処理対象とする代入文が記述された階層展開ワーク６０−１０であり、１行目の代入文に遅延「＃２」が付加され、また３行目の代入文に遅延「＃３」が付加されている。
【０１１６】
このような遅延が付加された代入文については、第１代入文である１行目の代入文の左辺の「ｎｅｔ１」のみが第２代入文となる２行目及び３行目の右辺に使われている場合、図３０（Ｂ）のように第２代入文に第１代入文の遅延「＃２」を加算する。このため図３０（Ｂ）の１行目の第２代入文の左辺は、図３０（Ａ）の１行目の第１代入文の遅延「＃２」が加算されることで「＃２  ｏｕｔ１」となり、右辺の「〜ｎｅｔ１」は「〜（〜ｉｎ１）」で置き換えられる。
【０１１７】
また図３０（Ｂ）の２行目の第２代入文の左辺についは、図３０（Ａ）の１行目の第１代入文の遅延「＃２」が加算されることで「＃（３＋２）  ｏｕｔ２」となり、右辺は同様に「〜ｉｎ１」で置き換えられる。
【０１１８】
この図３０（Ｂ）の右辺の遅延「＃２」の加算結果により得られた階層展開ワーク６０−１２を図３０（Ｃ）に示している。更に図２８（Ｂ）の置換え後の１行目の代入文の右辺の式「〜（〜ｉｎ１）」は、図２８（Ａ）の変換ルール６４における矢印６８で示す上位式「〜〜ｎ」に該当し、この場合の変換式は「ｎ」となることから、図３０（Ｃ）の１行目の代入文の右辺の式を「ｉｎ１」に変換している。
【０１１９】
このように、図２７〜図３０に示した代入文削除処理を実行する図２５及び図２６のフローチャートによる代入文削除処理を説明すると次のようになる。図２５において、まずステップＳ１でライブラリ階層展開の済んだ論理回路内のモジュールを取り出し、ステップＳ２でモジュール内の代入文を抽出する。次にステップＳ３で代入文の左辺がｉｎｐｕｔ／ｏｕｔｐｕｔか否かチェックする。ｉｎｐｕｔ／ｏｕｔｐｕｔであれば対象外なので図２６のステップＳ１７に進む。
【０１２０】
次にステップＳ４で代入文削除フラグを「ｔｒｕｅ」にセットする。次にステップＳ５で代入文の左辺が他式で使われているか判定する。使われている場合には、ステップＳ６で代入文の左辺が使われている他式を抽出する。使われていない場合には図２６のステップＳ１５に進む。
【０１２１】
次にステップＳ７で代入文に遅延が付加されているか否かチェックする。遅延が付加されていない場合には、図２６のステップＳ１０に進む。遅延が付加されていた場合には、ステップＳ８で代入文（第１代入文）の左辺が使われている他式が別の代入文（第２代入文）で、その第２代入文の右辺は第１代入文の左辺以外の変数を含まないか否かチェックする。
【０１２２】
他式が別の代入文でその右辺は第一代入文の左辺以外の変数を含まない場合には、ステップＳ９で第２代入文の遅延に第１代入文の遅延を加算する。他式が別の代入文でないまたは第２代入文の右辺に第一代入文の左辺以外の変数が含まれている場合にはステップＳ１４に進み、代入文削除フラグを「ｆａｌｓｅ」にセットし、図２６のステップＳ１５に進む。
【０１２３】
続いて図２６のステップＳ１０で、他式で使われている箇所を代入文の右辺で置き換えた場合、上位式が変換ルールにマッチするか否かチェックする。変換ルールにマッチする場合には、ステップＳ１１で上位式を変換ルールに従って置き換える。続いてステップＳ１２で代入文の左辺が使われている箇所を代入文の右辺で置き換える。
【０１２４】
続いてステップＳ１３で代入文の左辺が使われている他式を全て処理済か否かチェックし、未処理であれば図２５のステップＳ６に戻り、別の他式について同様な処理を繰り返す。ステップＳ１３で代入文の左辺が使われている他式を全て処理済であれば、ステップＳ１５に進み、代入文削除フラグが「ｔｒｕｅ」か否かチェックし、そうであればステップＳ１６で代入文を削除する。
【０１２５】
続いてステップＳ１７で全代入文を処理済か否かチェックし、未処理であれば図２５のステップＳ２に戻り、モジュール内の次の代入文を抽出し、ステップＳ３からの処理を繰り返す。
【０１２６】
図２６のステップＳ１７で全代入文の処理の終了を判別した場合には、ステップＳ１８に進み、全モジュールの処理済の有無をチェックし、未処理であれば図２５のステップＳ１に戻り、論理回路内の次のモジュールを取り出して、ステップＳ２からの処理を繰り返す。ステップＳ１８で全モジュールの処理が済めば一連の処理を終了し、図１０のメインルーチンにリターンする。
【０１２７】
次に図１の論理回路記述形式変換装置１０により図５に示したネットリスト形式のＨＤＬの論理回路１４を対象に図８に示すＲＴＬ形式の論理回路２８に変換する処理を図３１〜図５２を参照して説明すると次のようになる。
【０１２８】
図３１は図５のネットリスト形式の論理回路１４「ｍｏｄｕｌｅ  ＤＥＳＩＧＮ」のインスタンスＭＵＸ  ｉ１，ＤＦＦ  ｉ２のライブラリの階層展開７２、７４を示している。
【０１２９】
このライブラリ階層展開は図１３のフローチャートに従って行われている。図３１の２つのインスタンスに対する階層展開結果を格納したモジュールワーク７６−１は図３２のようになる。このようなライブラリ階層展開の済んだモジュール７６−１に対し、図２５のフローチャートに示した代入文削除処理を行うと次のようになる。
【０１３０】
図３３は図３２のモジュールワーク７６−１に対する代入文削除処理であり、ステップＳ１〜Ｓ４の処理を行い、ステップＳ１〜Ｓ４の処理対象については図３２のモジュールワーク７６−１に対し矢印で処理箇所を示している。また代入文削除処理７８における「ループ２、ループ３」は図２５の代入文削除処理のフローチャートに対応している。
【０１３１】
ここで図２５の代入文削除処理は処理ループとして次の３つのループ１〜３にわけることができる。
ループ１：ステップＳ１〜Ｓ１８の処理
ループ２：ステップＳ２〜Ｓ１７の処理
ループ３：ステップＳ６〜Ｓ１３の処理
【０１３２】
図３３の代入文削除処理７８にあっては、まずステップＳ１でループ２の処理により図３２のモジュールワーク７６−１の１０行目の代入文に着目し、ステップＳ２でこの代入文の左辺「ｉ１＿ａ」が使われている１７行目の式に着目する。
【０１３３】
続いてステップＳ３で１７行目の式「（ｉ１＿ａ＆ｉ１＿ｓ）｜（ｉ１＿ｂ＆〜ｉ１＿ｓ）」を１０行目の代入文により置き換えて「（ｄ＆ｉ１＿ｓ）｜（ｉ１＿ｂ＆〜ｉ１＿ｓ）」とする。続いてステップＳ４で「ｉ１＿ａ」を使っているところが全て置換できたので、９行目のｗｉｒｅ宣言と１０行目の代入文を削除する。この図３３の代入文削除処理７８により図３４のモジュールワーク７６−２の内容となる。
【０１３４】
次に図３４のモジュールワーク７６−２を対象に図３５の代入文削除処理８０を実行する。代入文削除処理８０はステップＳ５でループ２の処理により図３４の１０行目の代入文に着目し、続いてステップＳ６でループ３の処理により１０行目の代入文の左辺の「ｉ１＿ｂ」が使われている１５行目の式に着目する。
【０１３５】
続いてステップＳ７で１５行目の式「（ｄ＆ｉ１＿ｓ）｜（ｉ１＿ｂ＆〜ｉ１＿ｓ）」を１０行目の代入文により置き換えて「（ｄ＆ｉ１＿ｓ）｜（ｑｂ＆〜ｉ１＿ｓ）」とする。続いてステップＳ８で「ｉ１＿ｂ」を使っているところが全て置換できたので９行目のｗｉｒｅ宣言と１０行目の代入文を削除する。この図３５の代入文削除処理８０により図３６のモジュールワーク７６−３の内容となる。
【０１３６】
次に図３７の代入文削除処理８２により図３６のモジュールワーク７６−３を処理する。まずステップＳ９でループ２の処理により１０行目の代入文に着目し、ステップＳ１０でループ３の処理により１０行目の代入文の左辺「ｉｌ＿ｓ」が使われている１３行目の式に着目する。
【０１３７】
次にステップＳ１１で１３行目の式「（ｄ＆ｉ１＿ｓ）｜（ｑｂ＆〜ｉ１＿ｓ）」を１０行目の代入文により置き換えて「（ｄ＆ｓ）｜（ｑｂ＆〜ｓ）」とする。続いてステップＳ１２で「ｉ１＿ｓ」を使っているところが全て置換できたので、９行目のｗｉｒｅ宣言と１０行目の代入文を削除する。この結果、図３８のモジュールワーク７６−４の内容となる。
【０１３８】
次に図３９の代入文削除処理８４により図３８のモジュールワーク７６−４を処理する。まずステップＳ１３でループ２の処理により１０行目の代入文に着目し、ステップＳ１０で１０行目の代入文の左辺「ｎ」が使われている１３行目の式に着目する。次にステップＳ１５で１３行目の式「ｎ」を１０行目の代入文により置き換えて「ｉ１＿ｏ」とする。
【０１３９】
続いてステップＳ１６で「ｎ」を使っているところが全て置換できたので７行目のｗｉｒｅ宣言と１０行目の代入文を削除する。その結果、図４０のモジュールワーク７６−５に示す内容が得られる。
【０１４０】
次に図４０のモジュールワーク７６−５を対象に図４１の代入文削除処理８６を行う。代入文削除処理８６はステップＳ１７でループ２の処理により９行目の代入文に着目し、ステップＳ１８でループ３の処理により９行目の代入文の左辺「ｉ１＿ｏ」が使われている１１行目の式に着目する。
【０１４１】
次にステップＳ１９で１１行目の式「ｉ１＿ｏ」を９行目の代入文により置き換えて「（ｄ＆ｓ）｜（ｑｂ＆〜ｓ）」とする。続いてステップＳ２０で「ｉ１＿ｏ」を使っているところが全て置換できたので８行目のｗｉｒｅ宣言と９行目の代入文を削除する。その結果、図４２のモジュールワーク７６−６の内容が得られる。
【０１４２】
次に図４３の代入文削除処理８８を行う。まずステップＳ２１でループ２の処理により図４２の９行目の代入文に着目し、次のステップＳ２２でループ３の処理により９行目の代入文の左辺「ｉ２＿ｄ」が使われている２２行目の式に着目する。
【０１４３】
次にステップＳ２３で２２行目の式「ｉ２＿ｑ」を９行目の代入文により置き換えて「（ｄ＆ｓ）｜（ｑｂ＆〜ｓ）」とする。そしてステップＳ２４で「ｉ２＿ｄ」を使っているところが全て置換できたので８行目のｗｉｒｅ宣言と９行目の代入文を削除する。その結果、図４４のモジュールワーク７６−７が得られる。
【０１４４】
次に図４５の代入文削除処理９０を行う。まずステップＳ２５においてループ２の処理により図４４の９行目の代入文に着目する。続いてステップＳ２６でループ３の処理により９行目の代入文の左辺「ｉ２＿ｃ」が使われている１６行目の式に着目する。
【０１４５】
次にＳ２７で１６行目の式「ｐｏｓｅｄｇｅ  ｉ２＿ｃ  ｏｒ  ｎｅｇｅｄｇｅ  ｉ２＿ｒ」を９行目の代入文により置き換えて「ｐｏｓｅｄｇｅ  ｃ  ｏｒ  ｎｅｇｅｄｇｅ  ｉ２＿ｒ」とする。次にステップＳ２８で「ｉ２＿ｃ」を使っているところが全て置換できたので、８行目のｗｉｒｅ宣言と９行目の代入文を削除する。その結果、図４６のモジュールワーク７６−８が得られる。
【０１４６】
次に図４７の代入文削除処理９２を行う。まずステップＳ２９でループ２の処理により、図４６の９行目の代入文に着目し、ステップＳ３０でループ３の処理により、この代入文の左辺「ｉ２＿ｒ」が使われている１４行目の式と１５行目の式に着目する。
【０１４７】
次にステップＳ３１で１４行目の式「ｐｏｓｅｄｇｅ  ｃ  ｏｒ  ｎｅｇｅｄｇｅ  ｉ２＿ｒ」を９行目の代入文により置き換えて「ｐｏｓｅｄｇｅ  ｃ  ｏｒ  ｎｅｇｅｄｇｅ  ｒ」とする。１５行目の式「ｉ２＿ｒ＝＝１’ｂ０」も同様に置き換えて「ｒ＝＝１’ｂ０」とする。次にステップＳ３２で「ｉ２＿ｒ」を使っているところが全て置換できたので、８行目のｗｉｒｅ宣言と９行目の代入文を削除する。その結果、図５８のモジュールワーク７６−９が得られる。
【０１４８】
次に図４９の代入文削除処理９４を行う。まずステップＳ３３で図４８の９行目の代入文に着目する。ステップＳ３４でループ３の処理により図４８の９行目の代入文の左辺の「ｑ」は、ｉｎｐｕｔ／ｏｕｔｐｕｔなので、削除できない代入文であり、対象外とする。
【０１４９】
次にステップＳ３５でループ２の処理により１１行目の代入文に着目し、ステップＳ３６でループ３の処理によりこの代入文の左辺「ｑｂ」が使われている１６行目の式に着目する。
【０１５０】
次にステップＳ３７で１６行目の式「(ｄ＆ｓ) ｜（ｑｂ＆〜ｓ）」を１１行目の代入文により置き換えて「（ｄ＆ｓ）｜（ｉ２＿ｑｂ＆〜ｓ）」とする。最終的にステップＳ３８で「ｑｂ」を使っているところが全て置換できたので、７行目のｗｉｒｅ宣言と１１行目の代入文を削除する。この結果、図５０のモジュールワーク７６−１０が得られる。
【０１５１】
次に図５１の代入文削除処理９６を行う。まずステップＳ３９で図５０の１５行目の代入文に着目する。次にステップＳ４０でループ２の処理により１４行目の式に着目する。
【０１５２】
次にステップＳ３７で１４行目の式「(ｄ＆ｓ) ｜（ｉ２＿ｑｂ＆〜ｓ）」を１５行目の代入文により置き換えて「（ｄ＆ｓ）｜（〜ｉ２＿ｑ＆〜ｓ）」とする。
【０１５３】
最終的にステップＳ４２で「ｉ２＿ｑｂ」を使っているところが全て置換できたので、９行目のｗｉｒｅ宣言と１５行目の代入文を削除する。この結果、図５２のモジュールワーク７６−１１が最終的に得られる。
【０１５４】
この図５２の最終的に得られたモジュールワーク７６−１１は図８のＲＴＬ形式の論理回路２８と同じであり、この一連の処理により図５のネットリスト形式の論理回路１４であるモジュールＤＥＳＩＧＮがＲＴＬ形式に変換されたことがわかる。
【０１５５】
次に図３のライブラリ記述形式変換装置１２により図６に示したネットリスト形式のＨＤＬのライブラリ３０を対象に図７に示すＲＴＬ形式のＨＤＬのライブラリ１６に変換する処理を図５３〜図８２を参照して説明すると次のようになる。
【０１５６】
図５３は図６のライブラリ３０における「ｍｏｄｕｌｅ  ＭＵＸ」のインスタンスＮＯＴ  ｉ１，ＡＮＤ  ｉ２，ＡＮＤ  ｉ３及びＯＲ  ｉ４のライブラリ階層展開１００、１０２、１０４、１０６を示している。このライブラリ階層展開は図１３のフローチャートに従って行われている。
【０１５７】
図５３の４つのインスタンスに対するライブラリ階層展開を格納したモジュールワーク１０８−１は図５４のようになる。このようなライブラリ階層展開の済んだモジュールワーク１０８−１に対し、図２５に示した代入文削除処理を行うと次のようになる。
【０１５８】
図５５は図５４のモジュールワーク１０８−１に対する代入文削除処理であり、ステップＳ１〜Ｓ４の処理を行い、ステップＳ１〜Ｓ４の処理対象については図５４のモジュールワーク１０８−１に対し矢印で処理箇所を示している。また代入文削除処理１１０における「ループ２、ループ３」は図２５の代入文削除処理のフローチャートに対応している。更に図５４のモジュールワーク１０８−１の左に示す数字は行数である。
【０１５９】
ここで図２５の代入文削除処理は処理ループとして次の３つのループ１〜３にわけることができる。
ループ１：ステップＳ１〜Ｓ１８の処理
ループ２：ステップＳ２〜Ｓ１７の処理
ループ３：ステップＳ６〜Ｓ１３の処理
図５５の代入文削除処理１１０にあっては、まずステップＳ１でループ２の処理により図５４の１０行目の代入文に着目し、ステップＳ２でこの代入文の左辺「ｉ１＿ａ」が使われている１３行目の式に着目する。
【０１６０】
続いてステップＳ３で１３行目の式「〜ｉ１＿ａ」を１０行目の代入文により置き換えて「〜ｓ」とする。続いてステップＳ４で「ｉ１＿ａ」を使っているところが全て置換できたので、９行目のｗｉｒｅ宣言と１０行目の代入文を削除する。この図５５の代入文削除処理１１０により図５６のモジュールワーク１０８−２の内容となる。
【０１６１】
次に図５６のモジュールワーク１０８−２を対象に図５７の代入文削除処理１１２を実行する。代入文削除処理１１２はステップＳ５でループ２の処理により図５６の１０行目の代入文に着目し、続いてステップＳ６でループ３の処理により１０行目の代入文の左辺の「ｓ１」が使われている２２行目の式に着目する。
【０１６２】
続いてステップＳ７で２２行目の式「ｓ１」を１０行目の代入文により置き換えて「ｉ１＿ｏ」とする。続いてステップＳ８で「ｓ１」を使っているところが全て置換できたので８行目のｗｉｒｅ宣言と１０行目の代入文を削除する。この図５７の代入文削除処理１１２により図５８のモジュールワーク１０８−３の内容となる。
【０１６３】
次に図５９の代入文削除処理１１４により図５８のモジュールワーク１０８−３を処理する。まずステップＳ９でループ２の処理により９行目の代入文に着目し、ステップＳ１０でループ３の処理により９行目の代入文の左辺「ｉｌ＿ｏ」が使われている２０行目の式に着目する。
【０１６４】
次にステップＳ１１で２０行目の式「ｉ１＿ｏ」を９行目の代入文により置き換えて「〜ｓ」とする。続いてステップＳ１２で「ｉ１＿ｏ」を使っているところが全て置換できたので、８行目のｗｉｒｅ宣言と９行目の代入文を削除する。この結果、図６０のモジュールワーク１０８−４の内容となる。
【０１６５】
次に図６１の代入文削除処理１１６により図６０のモジュールワーク１０８−４を処理する。まずステップＳ１３でループ２の処理により９行目の代入文に着目し、ステップＳ１４で９行目の代入文の左辺「ｉ２＿ａ」が使われている１４行目の式に着目する。次にステップＳ１５で１４行目の式「ｉ２＿ａ＆ｉ２＿ｂ」を９行目の代入文により置き換えて「ａ＆ｉ２＿ｂ」とする。
【０１６６】
続いてステップ１６で「ｉ２＿ａ」を使っているところが全て置換できたので８行目のｗｉｒｅ宣言と９行目の代入文を削除する。その結果、図６２のモジュールワーク１０８−５に示す内容が得られる。
【０１６７】
次にこのモジュールワーク１０８−５を対象に図６３の代入文削除処理１１８を行う。代入文削除処理１１８はステップＳ１７でループ２の処理により９行目の代入文に着目し、ステップＳ１８でループ３の処理により９行目の代入文の左辺「ｉ２＿ｂ」が使われている１２行目の式に着目する。
【０１６８】
次にステップＳ１９で１２行目の式「ａ＆ｉ２＿ｂ」を９行目の代入文により置き換えて「ａ＆ｓ」とする。続いてステップＳ２０で「ｉ２＿ｂ」を使っているところが全て置換できたので８行目のｗｉｒｅ宣言と９行目の代入文を削除する。その結果、図６４のモジュールワーク１０８−６の内容が得られる。
【０１６９】
次に図６５の代入文削除処理１２０を行う。まずステップＳ２１でループ２の処理により図５２の９行目の代入文に着目し、次のステップＳ２２でループ３の処理により９行目の代入文の左辺「ａ１」が使われている１９行目の式に着目する。
【０１７０】
次にステップＳ２３で１９行目の式「ａ１」を９行目の代入文により置き換えて「ｉ２＿ｏ」とする。そしてステップＳ２４で「ａ１」を使っているところが全て置換できたので６行目のｗｉｒｅ宣言と９行目の代入文を削除する。その結果、図６６のモジュールワーク１０８−７が得られる。
【０１７１】
次に図６７の代入文削除処理１２２を行う。まずステップＳ２５においてループ２の処理により図６６の８行目の代入文に着目する。続いてステップＳ２６でループ３の処理により８行目の代入文の左辺「ｉ２＿ｏ」が使われている１７行目の式に着目する。
【０１７２】
次にＳ２７で１７行目の式「ｉ２＿ｏ」を８行目の代入文により置き換えて「ａ＆ｓ」とする。次にステップＳ２８で「ｉ２＿ｏ」を使っているところが全て置換できたので、７行目のｗｉｒｅ宣言と８行目の代入文を削除する。その結果、図６８のモジュールワーク１０８−８が得られる。
【０１７３】
次に図６９の代入文削除処理１２４を行う。まずステップＳ２９でループ２の処理により、図６８の８行目の代入文に着目し、ステップＳ３０でループ３の処理により、この代入文の左辺「ｉ３＿ａ」が使われている１３行目の式に着目する。
【０１７４】
次にステップＳ３１で１３行目の式「ｉ３＿ａ＆ｉ３＿ｂ」を８行目の代入文により置き換えて「ｂ＆ｉ３＿ｂ」とする。次にステップＳ３２で「ｉ３＿ａ」を使っているところが全て置換できたので、７行目のｗｉｒｅ宣言と８行目の代入文を削除する。その結果、図７０のモジュールワーク１０８−９が得られる。
【０１７５】
次に図７１の代入文削除処理１２６を行う。まずステップＳ３３で図７０の８行目の代入文に着目し、ステップＳ３４でこの代入文の左辺の「ｉ３＿ｂ」が使われている１１行目の式に着目する。
【０１７６】
次にステップＳ３５で１１行目の式「ｂ＆ｉ３＿ｂ」を８行目の代入文により置き換えて「ｂ＆〜ｓ」とする。そしてステップＳ３６で「ｉ３＿ｂ」を使っているところが全て置換できたので、７行目のｗｉｒｅ宣言と８行目の代入文を削除する。その結果、図７２のモジュールワーク１０８−１０が得られる。
【０１７７】
次に図７３の代入文削除処理１２８を行う。まずステップＳ３７でループ２の処理により図７２の８行目の代入文に着目し、ステップＳ３８でこの代入文の左辺「ｂ１」が使われている１３行目の式に着目する。
【０１７８】
次にステップＳ３９で１３行目の式「ｂ１」を８行目の代入文により置き換えて「ｉ３＿ｏ」とする。そしてステップＳ４０で「ｂ１」を使っているところが全て置換できたので、６行目のｗｉｒｅ宣言と８行目の代入文を削除する。その結果、図７４のモジュールワーク１０８−１１が得られる。
【０１７９】
次に図７５の代入文削除処理１３０を行う。まずステップＳ４１でループ２の処理により図７４の７行目の代入文に着目し、ステップＳ４２でこの代入文の左辺の「ｉ３＿ｏ」が使われている１１行目の式に着目する。
【０１８０】
次にステップＳ４３で１１行目の式「ｉ３＿ｏ」を７行目の代入文により置き換えて「ｂ＆〜ｓ」とする。次にステップＳ４４で「ｉ３＿ｏ」を使っているところが全て置換できたので、６行目のｗｉｒｅ宣言と７行目の代入文を削除する。その結果、図７６のモジュールワーク１０８−１２が得られる。
【０１８１】
次に図７７の代入文削除処理１３２を行う。まずステップＳ４５でループ２の処理により図７６の７行目の代入文に着目し、ステップＳ４６でこの代入文の左辺「ｉ４＿ａ」が使われている１２行目の式に着目する。
【０１８２】
次にステップＳ４７で１２行目の式「ｉ４＿ａ｜ｉ４＿ｂ」を７行目の代入文により置き換えて「（ａ＆ｓ）｜ｉ４＿ｂ」とする。次にステップＳ４８で「ｉ４＿ａ」を使っているところが全て置換できたので、６行目のｗｉｒｅ宣言と７行目の代入文を削除する。その結果、図７８のモジュールワーク１０８−１３が得られる。
【０１８３】
次に図７９の代入文削除処理１３４を行う。まずステップＳ４９でループ２の処理により図７８の７行目の代入文に着目し、ステップＳ５０でループ３の処理により、この代入文の左辺「ｉ４＿ｂ」が使われている１０行目の式に着目する。
【０１８４】
次にステップＳ５１で１０行目の式「（ａ＆ｓ）｜ｉ４＿ｂ」を７行目の代入文により置き換えて「（ａ＆ｓ）｜（ｂ＆〜ｓ）」とする。次にステップＳ５２で「ｉ４＿ｂ」を使っているところが全て置換できたので、６行目のｗｉｒｅ宣言と７行目の代入文を削除する。その結果、図８０のモジュールワーク１０８−１４が得られる。
【０１８５】
次に図８１の代入文削除処理１３６を行う。まずステップＳ５３でループ２の処理により図８０の７行目の代入文に着目する。ステップＳ５４でループ３の処理により図６８の７行目の代入文の左辺の「ｏ」は、ｉｎｐｕｔ／ｏｕｔｐｕｔなので、削除できない代入文であり、対象外とする。
【０１８６】
次にステップＳ５５でループ２の処理により８行目の代入文に着目し、ステップＳ５６でループ３の処理によりこの代入文の左辺「ｉ４＿ｏ」が使われている７行目の式に着目する。
【０１８７】
次にステップＳ５７で７行目の式「ｉ４＿ｏ」を８行目の代入文により置き換えて「（ａ＆ｓ）｜（ｂ＆〜ｓ）」とする。最終的にステップＳ５８で「ｉ４＿ｏ」を使っているところが全て置換できたので、６行目のｗｉｒｅ宣言と８行目の代入文を削除する。この結果、図８２のモジュールワーク１０８−１５が最終的に得られる。
【０１８８】
この図８２の最終的に得られたモジュールワーク１０８−１５は、図７のＲＴＬ形式のライブラリ１６の１〜７行目と同じである。この一連の処理により図６のネットリスト形式のライブラリ３０の１〜１３行目のモジュールＭＵＸがＲＴＬ形式に変換されたことがわかる。
【０１８９】
また本発明は、コンピュータで読取可能な本実施形態によるＨＤＬ記述形式変換のためのプログラムを格納した記録媒体を提供する。ここで、記録媒体とは、ＣＤ−ＲＯＭ、フロッピィ（Ｒ）ディスクＦＤ、ＤＶＤディスク，光磁気ディスク、ＩＣカードなどの可搬型記憶媒体やコンピュータシステムの内外に備えられたハードディスクＨＤＤなどの記憶装置のほか、回線を介してプログラムを保持するデータベース、或いは，他のコンピュータシステムＰＣ並びにそのデータベースや、更に回線上の伝送媒体を含むものである。
【０１９０】
なお、本発明は上記の実施形態に限定されず、その目的と利点を損なうことのない適宜の変形を含む。更に上記の実施形態に示した数値による限定は受けない。
【０１９１】
ここで本発明の特徴をまとめて列挙すると次の付記のようになる。
（付記）
（付記１）
ハードウェア記述言語を用いてネットリスト形式で記述された論理回路をＲＴＬ形式で記述された論理回路に変換する論理回路の記述形式変換方法に於いて、
前記ネットリスト形式で記述された論理回路を読み込む論理回路読込ステップと、
前記論理回路中のインスタンスに対応するライブラリのＲＴＬ形式で記述された下位の論理回路を読み込むライブラリ読込ステップと、
前記論理回路中のインスタンスに対して前記ライブラリの階層を展開する処理を行ってＲＴＬ形式に変換するライブラリ階層展開ステップと、
前記論理回路中の代入文を置換して削除する代入文削除ステップと、
前記論理回路をＲＴＬ形式で出力する論理回路出力ステップと、
を備えたことを特徴とする論理回路の記述形式変換方法。（１）
【０１９２】
（付記２）
付記１記載の論理回路の記述形式変換方法に於いて、前記ライブラリの論理回路がネットリスト形式で記述されている場合、前記論理回路をＲＴＬ形式に変換するライブラリ記述形式変換ステップを備えたことを特徴とする論理回路の記述形式変換方法。（２）
【０１９３】
（付記３）
付記２記載の論理回路の記述形式変換方法に於いて、前記ライブラリ記述形式変換ステップは、
ライブラリ内のネットリスト形式で記述された論理回路を読み込む論理回路読込ステップと、
前記論理回路中のインスタンスに対してＲＴＬ形式で記述されたライブラリ内の下位の論理回路を読込む下位論理回路読込ステップと、
前記論理回路のインスタンスに対し前記下位論理回路との階層を展開する処理を行ってＲＴＬ形式に変換するライブラリ階層展開ステップと、
前記論理回路中の代入文を置換して削除する代入文削除ステップと、
前記論理回路をＲＴＬ形式で出力して前記ライブラリを書き換えるモジュール出力ステップと、
を備えたことを特徴とする論理回路の記述形式変換方法。（３）
【０１９４】
（付記４）
付記１記載の論理回路の記述形式変換方法に於いて、前記ライブラリ階層展開ステップは、
前記論理回路内のインスタンスに対応するライブラリ内の下位論理回路を特定するライブラリ特定ステップと、
前記論理回路内のインスタンスに対して、インスタンスピンとそれに対応するライブラリ内の下位論理回路のライブラリポートの結合関係を設定する結合ステップと、
ライブラリ内の下位論理回路から入出力を除くデータタイプ宣言を抽出してそのコピーを生成する宣言コピーステップと、
ライブラリ内の下位論理回路からファンクション記述を抽出してそのコピーを生成するファンクション記述コピーステップと、
ライブラリ内の下位論理回路からタスク記述を抽出してそのコピーを生成するタスク記述コピーステップと、
ライブラリ内の下位論理回路から動作記述を抽出してそのコピーを生成する動作記述コピーステップと、
を備えたことを特徴とする論理回路の記述形式変換方法。（４）
【０１９５】
（付記５）
付記４記載の論理回路の記述形式変換方法に於いて、前記ハードウェア記述言語がＶｅｒｉｌｏｇ−ＨＤＬの場合、
前記結合ステップは、前記ライブラリポートが入力ポートの場合、前記インスタンスピンに対応して、
wire  ライブラリポート名；
assign  ライブラリポート名＝インスタンスピンの式；
を生成し、
前記前記ライブラリポートが出力ポートの場合、前記インスタンスピンに対し、
wire  ライブラリポート名；
assign  インスタンスピンの式＝ライブラリポート名；
を生成し、
前記ライブラリポート名として、前記論理回路のインスタンス名をアンダースコアで変換前のライブラリポート名と連結した名前を生成することを特徴とする論理回路の記述形式変換方法。（５）
【０１９６】
（付記６）
付記４記載の論理回路の記述形式変換方法に於いて、前記ハードウェア記述言語がＶｅｒｉｌｏｇ−ＨＤＬの場合、
前記宣言コピーステップは、コピー先の宣言名として、前記論理回路のインスタンス名をアンダースコアで変換前の宣言名と連結した名前を生成し、
前記ファンクション記述コピーステップは、コピー先のファンクション名として、前記論理回路のインスタンス名をアンダースコアで変換前のファンクション名と連結した名前を生成し、
前記タスク記述コピーステップは、コピー先のタスク名として、前記論理回路のインスタンス名をアンダースコアで変換前のタスク名と連結した名前を生成し、
前記インスタンス記述コピーステップは、コピー先のインスタンス名として、前記論理回路のインスタンス名をアンダースコアで変換前のインスタンス名と連結した名前を生成し、前記インスタンスピンの式の中の変数名として、モジュールのインスタンス名をアンダースコアで変換前の変数名と連結した名前を生成し、
前記動作記述コピーステップは、前記動作記述分としてライブラリ内の下位論理回路からｉｎｉｔｉａ１文、ａｌｗａｙｓ文及びａｓｓｉｇｎ文を抽出してそのコピーを生成することを特徴とする論理回路の記述形式変換方法。
【０１９７】
（付記７）
付記１記載の論理回路の記述形式変換方法に於いて、前記代入文削除ステップは、代入文の左辺が他式で使われている場合、前記他式で使われている箇所を前記代入文の右辺に置き換えて前記代入文を削除することを特徴とする論理回路の記述形式変換方法。（６）
【０１９８】
（付記８）
付記７記載の論理回路の記述形式変換方法に於いて、前記代入文削除ステップは、前記代入文の右辺で置き換えた前記他式が演算式の場合、予め定めた変換ルールに従って簡略化された演算式に変換することを特徴とする論理回路の記述形式変換方法。（７）
【０１９９】
（付記９）
付記１記載の論理回路の記述形式変換方法に於いて、前記代入文削除ステップは、第１代入文の左辺に遅延が付加され、前記第１代入文の左辺のみが第２代入文の右辺に使われている場合、前記第１代入文の遅延を前記第２代入文に付加すると共に前記第２代入文の右辺で使われている箇所を第１代入文の右辺に置き換えて前記第１代入文を削除することを特徴とする論理回路の記述形式変換方法。（８）
【０２００】
（付記１０）
コンピュータに、
ハードウェア記述言語を用いてネットリスト形式で記述されたれた論理回路を読み込む論理回路読込ステップと、
前記論理回路中のインスタンスに対応するライブラリのＲＴＬ形式で記述された下位の論理回路を読み込むライブラリ読込ステップと、
前記論理回路中のインスタンスに対して前記ライブラリの階層を展開する処理を行ってＲＴＬ形式に変換するライブラリ階層展開ステップと、
前記論理回路中の代入文を置換して削除する代入文削除ステップと、
前記論理回路をＲＴＬ形式で出力する論理回路出力ステップと、
を実行することを特徴とするプログラム。（９）
【０２０１】
（付記１１）
付記１０記載のプログラムに於いて、前記ライブラリの論理回路がネットリスト形式で記述されている場合、前記論理回路をＲＴＬ形式に変換するライブラリ記述形式変換ステップを備え、
前記ライブラリ記述形式変換ステップは、
ライブラリ内のネットリスト形式で記述された論理回路を読み込む論理回路読込ステップと、
前記論理回路中のインスタンスに対してＲＴＬ形式で記述されたライブラリ内の下位の論理回路を読込む下位論理回路読込ステップと、
前記論理回路のインスタンスに対し前記下位論理回路との階層を展開する処理を行ってＲＴＬ形式に変換するライブラリ階層展開ステップと、
前記論理回路中の代入文を置換して削除する代入文削除ステップと、
前記論理回路をＲＴＬ形式で出力して前記ライブラリを書き換えるモジュール出力ステップと、
を備えたことを特徴とするプログラム。
【０２０２】
（付記１２）
付記１０記載のプログラムに於いて、前記ライブラリ階層展開ステップは、
前記論理回路内のインスタンスに対応するライブラリ内の下位論理回路を特定するライブラリ特定ステップと、
前記論理回路内のインスタンスに対して、インスタンスピンとそれに対応するライブラリ内の下位論理回路のライブラリポートの結合関係を設定する結合ステップと、
ライブラリ内の下位論理回路から入出力を除くデータタイプ宣言を抽出してそのコピーを生成する宣言コピーステップと、
ライブラリ内の下位論理回路からファンクション記述を抽出してそのコピーを生成するファンクション記述コピーステップと、
ライブラリ内の下位論理回路からタスク記述を抽出してそのコピーを生成するタスク記述コピーステップと、
ライブラリ内の下位論理回路から動作記述を抽出してそのコピーを生成する動作記述コピーステップと、
を備えたことを特徴とするプログラム。
【０２０３】
（付記１３）
付記１２記載のプログラムに於いて、前記ハードウェア記述言語がＶｅｒｉｌｏｇ−ＨＤＬの場合、
前記結合ステップは、前記ライブラリポートが入力ポートの場合、前記インスタンスピンに対応して、
wire  ライブラリポート名；
assign  ライブラリポート名＝インスタンスピンの式；
を生成し、
前記前記ライブラリポートが出力ポートの場合、前記インスタンスピンに対し、
wire  ライブラリポート名；
assign  インスタンスピンの式＝ライブラリポート名；
を生成し、
前記ライブラリポート名として、前記論理回路のインスタンス名をアンダースコアで変換前のライブラリポート名と連結した名前を生成することを特徴とするプログラム。
【０２０４】
（付記１４）
付記１２記載のプログラムに於いて、前記ハードウェア記述言語がＶｅｒｉｌｏｇ−ＨＤＬの場合、
前記宣言コピーステップは、コピー先の宣言名として、前記論理回路のインスタンス名をアンダースコアで変換前の宣言名と連結した名前を生成し、
前記ファンクション記述コピーステップは、コピー先のファンクション名として、前記論理回路のインスタンス名をアンダースコアで変換前のファンクション名と連結した名前を生成し、
前記タスクコピー記述ステップは、コピー先のタスク名として、前記論理回路のインスタンス名をアンダースコアで変換前のタスク名と連結した名前を生成し、
前記インスタンス記述コピーステップは、コピー先のインスタンス名として、前記論理回路のインスタンス名をアンダースコアで変換前のインスタンス名と連結した名前を生成し、前記インスタンスピンの式の中の変数名として、モジュールのインスタンス名をアンダースコアで変換前の変数名と連結した名前を生成し、
前記動作記述コピーステップは、前記動作記述分としてライブラリ内の下位論理回路からｉｎｉｔｉａ１文、ａｌｗａｙｓ文及びａｓｓｉｇｎ文を抽出してそのコピーを生成することを特徴とするプログラム。
【０２０５】
（付記１５）
付記１０記載のプログラムに於いて、前記代入文削除ステップは、代入文の左辺が他式で使われている場合、前記他式で使われている箇所を前記代入文の右辺に置き換えて前記代入文を削除することを特徴とするプログラム。
【０２０６】
（付記１６）（代入文演算式の簡略化）
付記１５記載のプログラムに於いて、前記代入文削除ステップは、前記代入文の右辺で置き換えた前記他式が演算式の場合、予め定めた変換ルールに従って簡略化された演算式に変換することを特徴とするプログラム。
【０２０７】
（付記１７）
付記１０記載のプログラムに於いて、前記代入文削除ステップは、第１代入文の左辺に遅延が付加され、前記第１代入文の左辺のみが第２代入文の右辺に使われている場合、前記第１代入文の遅延を前記第２代入文に付加すると共に前記第２代入文の右辺を第１代入文の右辺で使われている箇所に置き換えて前記第１代入文を削除することを特徴とするプログラム。
【０２０８】
（付記１８）
ハードウェア記述言語を用いてネットリスト形式で記述された論理回路をＲＴＬ形式で記述された論理回路に変換する論理回路の記述形式変換装置に於いて、
前記ネットリスト形式で記述された論理回路を読み込む論理回路読込部と、
前記論理回路中のインスタンスに対応するライブラリのＲＴＬ形式で記述された下位の論理回路を読み込むライブラリ読込部と、
前記論理回路中のインスタンスに対して前記ライブラリの階層を展開する処理を行ってＲＴＬ形式に変換するライブラリ階層展開部と、
前記論理回路中の代入文を置換して削除する代入文削除部と、
前記論理回路をＲＴＬ形式で出力する論理回路出力部と、
を備えたことを特徴とする論理回路の記述形式変換装置。（１０）
【０２０９】
（付記１９）
付記１８記載の論理回路の記述形式変換装置に於いて、前記ライブラリの論理回路がネットリスト形式で記述されている場合、前記論理回路をＲＴＬ形式に変換するライブラリ記述形式変換部を備え、
前記ライブラリ記述形式変換部は、
ライブラリ内のネットリスト形式で記述された論理回路を読み込む論理回路読込部と、
前記論理回路中のインスタンスに対してＲＴＬ形式で記述されたライブラリ内の下位の論理回路を読込む下位論理回路読込部と、
前記論理回路のインスタンスに対し前記下位論理回路との階層を展開する処理を行ってＲＴＬ形式に変換するライブラリ階層展開部と、
前記論理回路中の代入文を置換して削除する代入文削除部と、
前記論理回路をＲＴＬ形式で出力して前記ライブラリを書き換えるモジュール出力部と、
を備えたことを特徴とする論理回路の記述形式変換装置。
【０２１０】
（付記２０）
付記１８記載の論理回路の記述形式変換装置に於いて、前記ライブラリ階層展開部は、
前記論理回路内のインスタンスに対応するライブラリ内の下位論理回路を特定するライブラリ特定部と、
前記論理回路内のインスタンスに対して、インスタンスピンとそれに対応するライブラリ内の下位論理回路のライブラリポートの結合関係を設定する結合部と、
ライブラリ内の下位論理回路から入出力を除くデータタイプ宣言を抽出してそのコピーを生成する宣言コピー部と、
ライブラリ内の下位論理回路からファンクション記述を抽出してそのコピーを生成するファンクション記述コピー部と、
ライブラリ内の下位論理回路からタスク記述を抽出してそのコピーを生成するタスク記述コピー部と、
ライブラリ内の下位論理回路から動作記述を抽出してそのコピーを生成する動作記述コピー部と、
を備えたことを特徴とする論理回路の記述形式変換装置。
【０２１１】
（付記２１）
付記１８記載の論理回路の記述形式変換装置に於いて、前記代入文削除部は、
代入文の左辺が他式で使われている場合、前記他式で使われている箇所を前記代入文の右辺に置き換えて前記代入文を削除し、
前記代入文の右辺で置き換えた前記他式が演算式の場合、予め定めた変換ルールに従って簡略化された演算式に変換し、
第１代入文の左辺に遅延が付加され、前記第１代入文の左辺のみが第２代入文の右辺に使われている場合、前記第１代入文の遅延を前記第２代入文に付加すると共に前記第２代入文の右辺で使われている箇所を第１代入文の右辺に置き換えて前記第１代入文を削除することを特徴とする論理回路の記述形式変換装置。
【図面の簡単な説明】
【０２１２】
【図１】本発明による論理回路記述形式変換装置の実施形態を示した機能構成のブロック図
【図２】ライブラリ記述形式変換装置と組合わせた本実施形態のブロック図
【図３】ライブラリ記述形式変換装置の実施形態を示した機能構成のブロック図
【図４】本実施形態の機能を実現するプログラムを実行するコンピュータのハードウェア環境のブロック図
【図５】変換対象とするネットリスト形式ＨＤＬで記述された論理回路の説明図
【図６】ネットリスト形式ＨＤＬで記述されたライブラリの説明図
【図７】本実施形態によりＲＴＬ形式ＨＤＬに変換されたライブラリの説明図
【図８】本実施形態によりＲＴＬ形式ＨＤＬに変換された論理回路の説明図
【図９】図５のＨＤＬから描画した論理回路の回路図
【図１０】図１の実施形態による論理回路記述形式変換処理のフローチャート
【図１１】図２のライブラリの記述形式変換を含む論理回路記述形式変換処理のフローチャート
【図１２】図１１のライブラリ記述形式変換処理の詳細を示したフローチャート
【図１３】図１０のステップＳ３のライブラリ展開処理を示したフローチャート
【図１４】図１３のステップＳ５におけるインスタンスピンとトライブラリポートの結合処理の詳細を示したフローチャート
【図１５】インスタンスピンとライブラリポートの結合処理の具体例を示した説明図
【図１６】ライブラリポートがレジスタと宣言されている場合の結合処理の具体例を示した説明図
【図１７】図１３のステップＳ６における宣言コピー処理の詳細を示したフローチャート
【図１８】宣言コピー処理の具体例を示した説明図
【図１９】図１３のステップＳ７におけるファンクションコピー処理の詳細を示したフローチャート
【図２０】ファンクションコピー処理の具体例を示した説明図
【図２１】図１３のステップＳ７におけるタスクコピー処理の詳細を示したフローチャート
【図２２】図１３のステップＳ８におけるインスタンスコピー処理の詳細を示したフローチャート
【図２３】インスタンスコピー処理の具体例を示した説明図
【図２４】図１３のステップＳ９における動作記述コピー処理の詳細を示したフローチャート
【図２５】図１０のステップＳ４の代入文削除処理を示したフローチャート
【図２６】図２５に続く代入文削除処理のフローチャート
【図２７】代入文削除処理の具体例を示した説明図
【図２８】上位式を変換する変換ルールの説明図
【図２９】代入文の置き換えで生成した上位式の変換を伴う代入文削除処理の説明図
【図３０】遅延が付加された代入文削除処理の具体例を示した説明図
【図３１】図５のネットリスト形式の論理回路におけるインスタンスＭＵＸｉ１とＤＦＦｉ２をライブラリ階層展開した説明図
【図３２】図３１のライブラリ階層展開で生成されたモジュールワークの説明図
【図３３】図３２を対象とした代入文削除処理の説明図
【図３４】図３３の処理で生成されたモジュールワークの説明図
【図３５】図３４を対象とした代入文削除処理の説明図
【図３６】図３５の処理で生成されたモジュールワークの説明図
【図３７】図３６を対象とした代入文削除処理の説明図
【図３８】図３７の処理で生成されたモジュールワークの説明図
【図３９】図３８を対象とした代入文削除処理の説明図
【図４０】図３９の処理で生成されたモジュールワークの説明図
【図４１】図４０を対象とした代入文削除処理の説明図
【図４２】図４１のライブラリ階層展開で生成されたモジュールワークの説明図
【図４３】図４２を対象とした代入文削除処理の説明図
【図４４】図４３の処理で生成されたモジュールワークの説明図
【図４５】図４４を対象とした代入文削除処理の説明図
【図４６】図４５の処理で生成されたモジュールワークの説明図
【図４７】図４６を対象とした代入文削除処理の説明図
【図４８】図４７の処理で生成されたモジュールワークの説明図
【図４９】図４８を対象とした代入文削除処理の説明図
【図５０】図４９の処理で生成されたモジュールワークの説明図
【図５１】図５０を対象とした代入文削除処理の説明図
【図５２】図５１の処理で最終的にＲＴＬ形式に変換されたモジュールワークの説明図
【図５３】図６のモジュールＭＵＸのライブラリ階層展開の説明図
【図５４】図５３のライブラリ階層展開で生成されたモジュールワークの説明図
【図５５】図５４を対象とした代入文削除処理の説明図
【図５６】図５５の処理で生成されたモジュールワークの説明図
【図５７】図５６を対象とした代入文削除処理の説明図
【図５８】図５７の処理で生成されたモジュールワークの説明図
【図５９】図５８を対象とした代入文削除処理の説明図
【図６０】図５９の処理で生成されたモジュールワークの説明図
【図６１】図６０を対象とした代入文削除処理の説明図
【図６２】図６１の処理で生成されたモジュールワークの説明図
【図６３】図６２を対象とした代入文削除処理の説明図
【図６４】図６３の処理で生成されたモジュールワークの説明図
【図６５】図６４を対象とした代入文削除処理の説明図
【図６６】図６５の処理で生成されたモジュールワークの説明図
【図６７】図６６を対象とした代入文削除処理の説明図
【図６８】図６７の処理で生成されたモジュールワークの説明図
【図６９】図６８を対象とした代入文削除処理の説明図
【図７０】図６９の処理で生成されたモジュールワークの説明図
【図７１】図７０を対象とした代入文削除処理の説明図
【図７２】図７１の処理で生成されたモジュールワークの説明図
【図７３】図７２を対象とした代入文削除処理の説明図
【図７４】図７３の処理で生成されたモジュールワークの説明図
【図７５】図７４を対象とした代入文削除処理の説明図
【図７６】図７５の処理で生成されたモジュールワークの説明図
【図７７】図７６を対象とした代入文削除処理の説明図
【図７８】図７７の処理で生成されたモジュールワークの説明図
【図７９】図７８を対象とした代入文削除処理の説明図
【図８０】図７９の処理で生成されたモジュールワークの説明図
【図８１】図８０を対象とした代入文削除処理の説明図
【図８２】図８１の処理で最終的にＲＴＬ形式に変換されたモジュールワークの説明図
【符号の説明】
【０２１３】
１０：論理回路記述形式変換装置
１２：ライブラリ記述形式変換装置
１４，２８：論理回路
１６，３０：ライブラリ
１８，１８−１：論理回路読込部
２０，２０−１：論理回路記憶部
２２，２２−１：ライブラリ階層展開部
２４，２４−１：代入文削除部
２６，２６−１：論理回路出力部
３４：ＣＰＵ
３６：バス
３８：ＲＡＭ
４０：ＲＯＭ
４２：ハードディスクドライブ
４４：デバイスインタフェース
４６：キーボード
４８：マウス
５０：ディスプレイ
５２：ネットワークアダプタ
６０−１〜６０−１２，６２：階層展開ワーク
６４：変換ルール
７０：記号一覧
７２：ＭＵＸｉ１階層展開
７４：ＤＦＦｉ２階層展開
７６−１〜７６−１１，１０８−１〜１０８−１５  ：モジュールワーク
７８〜９６，１１０〜１３６：代入文削除処理
１００：ＮＯＴｉ１ライブラリ階層展開
１０２：ＡＮＤｉ２ライブラリ階層展開
１０４：ＡＮＤｉ３ライブラリ階層展開
１０６：ＯＲｉ４ライブラリ階層展開
【図１】
2008033919.tif 000003
【図２】
2008033919.tif 000004
【図３】
2008033919.tif 000005
【図４】
2008033919.tif 000006
【図５】
2008033919.tif 000007
【図６】
2008033919.tif 000008
【図７】
2008033919.tif 000009
【図８】
2008033919.tif 000010
【図９】
2008033919.tif 000011
【図１０】
2008033919.tif 000012
【図１１】
2008033919.tif 000013
【図１２】
2008033919.tif 000014
【図１３】
2008033919.tif 000015
【図１４】
2008033919.tif 000016
【図１５】
2008033919.tif 000017
【図１６】
2008033919.tif 000018
【図１７】
2008033919.tif 000019
【図１８】
2008033919.tif 000020
【図１９】
2008033919.tif 000021
【図２０】
2008033919.tif 000022
【図２１】
2008033919.tif 000023
【図２２】
2008033919.tif 000024
【図２３】
2008033919.tif 000025
【図２４】
2008033919.tif 000026
【図２５】
2008033919.tif 000027
【図２６】
2008033919.tif 000028
【図２７】
2008033919.tif 000029
【図２８】
2008033919.tif 000030
【図２９】
2008033919.tif 000031
【図３０】
2008033919.tif 000032
【図３１】
2008033919.tif 000033
【図３２】
2008033919.tif 000034
【図３３】
2008033919.tif 000035
【図３４】
2008033919.tif 000036
【図３５】
2008033919.tif 000037
【図３６】
2008033919.tif 000038
【図３７】
2008033919.tif 000039
【図３８】
2008033919.tif 000040
【図３９】
2008033919.tif 000041
【図４０】
2008033919.tif 000042
【図４１】
2008033919.tif 000043
【図４２】
2008033919.tif 000044
【図４３】
2008033919.tif 000045
【図４４】
2008033919.tif 000046
【図４５】
2008033919.tif 000047
【図４６】
2008033919.tif 000048
【図４７】
2008033919.tif 000049
【図４８】
2008033919.tif 000050
【図４９】
2008033919.tif 000051
【図５０】
2008033919.tif 000052
【図５１】
2008033919.tif 000053
【図５２】
2008033919.tif 000054
【図５３】
2008033919.tif 000055
【図５４】
2008033919.tif 000056
【図５５】
2008033919.tif 000057
【図５６】
2008033919.tif 000058
【図５７】
2008033919.tif 000059
【図５８】
2008033919.tif 000060
【図５９】
2008033919.tif 000061
【図６０】
2008033919.tif 000062
【図６１】
2008033919.tif 000063
【図６２】
2008033919.tif 000064
【図６３】
2008033919.tif 000065
【図６４】
2008033919.tif 000066
【図６５】
2008033919.tif 000067
【図６６】
2008033919.tif 000068
【図６７】
2008033919.tif 000069
【図６８】
2008033919.tif 000070
【図６９】
2008033919.tif 000071
【図７０】
2008033919.tif 000072
【図７１】
2008033919.tif 000073
【図７２】
2008033919.tif 000074
【図７３】
2008033919.tif 000075
【図７４】
2008033919.tif 000076
【図７５】
2008033919.tif 000077
【図７６】
2008033919.tif 000078
【図７７】
2008033919.tif 000079
【図７８】
2008033919.tif 000080
【図７９】
2008033919.tif 000081
【図８０】
2008033919.tif 000082
【図８１】
2008033919.tif 000083
【図８２】
2008033919.tif 000084