(57)【要約】【課題】ＨＤＬによるＬＳＩ回路設計作業の効率化を図ることを目的とする。【解決手段】ＨＤＬ設計データを構文木データに変換し、それを基に信号伝播経路の探索、ブロック間信号線数の計数、ファンアウト数の計数、レジスタ回路の検出、同一制御信号で動作するレジスタの検索、非同期に動作するデータパスの検索を実行する構成である。【選択図】      図１０
2004192334.tif 000002
【特許請求の範囲】
【請求項１】
所定のハードウェア記述言語で記述された設計データを当該ハードウェア記述言語の形態にて、その構文解析によって直接該当するハードウェア構造に関する情報を抽出する段階を含む設計データ解析方法。
【請求項２】
所定のハードウェア記述言語で記述された設計データを当該ハードウェア記述言語の形態にて、その構文解析によって直接該当するハードウェア構造に関する所定の情報を抽出する段階をコンピュータに実行させるための設計データ解析プログラム。
【請求項３】
前記所定のハードウェア記述言語で記述された設計データを当該ハードウェア記述言語の形態にて、その構文解析によって直接該当するハードウェアの構造に関する所定の情報を抽出する段階は、前記ハードウェア記述言語の形態の設計データの構文解析を行なうことによって構文木データを生成する段階よりなる請求項２に記載の設計データ解析プログラム。
【請求項４】
前記ハードウェアの構造に関する所定の情報を抽出する段階は、前記ハードウェア記述言語で記述された設計データ中の信号代入文を解析することによって信号伝播経路を解析する段階よりなる請求項２又は３に記載の設計データ解析プログラム。
【請求項５】
前記ハードウェアの構造に関する所定の情報を抽出する段階は、前記ハードウェア記述言語で記述された設計データ中の条件節を解析することによってレジスタ回路に関する記述を検出し、その制御信号を検索する段階よりなる請求項２乃至４のうちのいずれか一項に記載の設計データ解析プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、設計データ解析方法及び設計データ解析プログラムに係り、特にハードウェア記述言語にて記述されたハードウェア設計データの解析処理効率を向上可能な設計データ解析方法及び設計データ解析プログラムに関する。
【０００２】
【従来の技術】
図１は、従来のハードウェア記述言語（以下、ＨＤＬと称する）を使用して作成されたＬＳＩ等の回路設計データの妥当性，正当性を検証する場合の処理のフローチャートを示す。同図にて、先ずＨＤＬの形態で作成されたＬＳＩ回路設計データは、ステップＳ１のコンパイル処理を経てデータフロー制御データへと変換され、その後当該データをステップＳ２にて合成処理することによって回路データ（仮）を得る。この回路データ（仮）に対し、ステップＳ３にてテクノロジ・ライブラリへのマッピングを行う。その結果論理回路図データが得られる。
【０００３】
そしてこの論理回路図データを回路表示ソフトウェア等を使用して回路表示し、回路確認用ツール等を使用することによって回路論理の解析、物理設計等、実際のハードウェアへの置き換えを行なう際に必要な情報の解析等を行なう（ステップＳ４）。具体的には当該論理回路を構成する各ブロック又は素子間の接続状態について目視チェック又は回路確認用ツール等を使用してトレース又はカウント処理を実施することによって上記解析処理を行なっている。
【０００４】
この種の従来の技術として、ＨＤＬ設計データから論理回路の各端子の制御可能性を調べる手法（特許文献１参照）、本願の出願人による、ネットリストとＲＴＬ記述とを結合して論理回路を得、その回路に基づいてクロック系部分を解析する手法（特許文献２参照）等が提案されている。
【０００５】
【特許文献１】
特開平５−８９１９７号公報
【０００６】
【特許文献２】
特開平１１−４５２９１号公報
【０００７】
【発明が解決しようとする課題】
ここで図１に示す処理における論理合成処理（ステップＳ１乃至Ｓ３）は、特に近年の大規模回路を適用した場合多大な時間を要することが多い。このため、最終的に種々の論理解析を行う段階（ステップＳ４）に至る迄に相当な時間を要することとなる。又，その解析の結果によっては該当する回路設計を修正しなければならない事態も想定され、そのような場合，ＨＤＬ形態の設計データに戻って該当する修正処理を行い、その後再度論理合成処理（ステップＳ１乃至Ｓ３）を行なう必要があり、結果的に多大な工数を要することとなる。
【０００８】
又、この場合論理合成後の回路データ上で解析を行なった結果をＨＤＬ形態の設計データに反映させて修正しようとしても、相互の対応関係を細部に亘って確認することが困難な場合が多く、この作業に更に相当の工数を要する場合が生ずる。これは、一般的にＨＤＬによる回路設計の場合、結果的に論理合成処理にて生成される回路構成の予測が困難であり、そのため合成された回路上で結線不良等があった場合、元のＨＤＬ設計データ上ではどの部分が不良であるかを特定することが困難であるためである。
【０００９】
このように、従来，ＨＤＬによって作成した設計データの妥当性，正当性の検証作業及び検証結果の設計データへの反映処理は回路規模によっては困難な作業となり、多大な時間を要する場合がある。
【００１０】
【課題を解決するための手段】
本発明は上記問題点に鑑み、ＨＤＬ設計データから論理合成処理を行う前の段階でＨＤＬの言語から直接、論理合成後の論理回路の信号伝播経路等を解析することにより、論理合成処理前に当該設計データの問題点等を抽出してＨＤＬ設計データ上で必要に応じて修正可能とし、もって論理合成処理後に必要とされる作業量を大幅に削減可能なＨＤＬ設計データ解析手法を提供することを目的とする。
【００１１】
このような課題の解決のため本発明では、所定のハードウェア記述言語で記述された設計データを当該ハードウェア記述言語の形態にて、その構文解析によって直接該当するハードウェア構造に関する情報を抽出する。
【００１２】
又、前記所定のハードウェア記述言語で記述された設計データを当該ハードウェア記述言語の形態にて、その構文解析によって直接該当するハードウェアの構造に関する所定の情報を抽出する段階は、前記ハードウェア記述言語の形態の設計データの構文解析を行なうことによって構文木データを生成する段階よりなるようにすることが望ましい。
【００１３】
【発明の実施の形態】
一般的に論理合成処理を実行する上ではクロック信号がどれであるか知る必要がある。しかしながら大規模な設計データの場合、或いは複数人による共同設計の際等には、クロック信号を特定することが困難である。又，期せずしてクロック信号として想定していなかった信号により動作しているレジスタ記述をしていた場合には合成後の回路は意図していなかったものとなり得るため、ＨＤＬ設計データ上での不具合箇所の特定は困難となる。したがって本発明ではＨＤＬ設計データ上で制御信号を検索できるよう構成する。
【００１４】
又、回路におけるデータのやり取りは通常互いに同期を取って行なうが、回路規模が大きくなると意図せず非同期でデータをやりとりする設計となる場合が発生し、このような場合、その回路は論理的には正しいために不具合箇所の発見が遅れ、後のシミュレーションの結果初めて発覚することがある。このような場合、手戻りによる工数増大を招くことになる。したがってこのような場合も、ＨＤＬ設計データ上での不具合箇所の特定を可能にするため、本発明ではＨＤＬ設計データ上で非同期データパスを検索する目的で同一クロック信号で動作するレジスタの検索を出来るよう構成する。
【００１５】
又、設計データに従って素子の配置／素子間の配線を行う際，ブロック間の結線本数の多少によっては所要処理内容が大きく左右される。そのため、このような配置/配線処理を行う場合，予めブロック間でやりとりされる信号の数を数える作業を行なう。しかしながら、このような作業を回路図上で結線を確認することによって行うと作業が煩雑となるため、自動的に結線数を数える処理を適用することが望ましい。しかしながらその場合でも従来では予めＨＤＬ設計データを論理合成処理して回路図へ変換する必要があるため、相当な処理時間を要することになる。したがって、本発明ではこのような作業をＨＤＬ設計データ上で行えるよう構成する。
【００１６】
以下にこのような構成を実現する本発明の実施の形態について詳細に説明する。図２は本発明の一実施例による設計データ解析処理の動作の流れを示すフローチャートである。同図に示す設計データ解析処理は、例えば図１のステップＳ１乃至Ｓ３による論理合成処理前段階にて行うことを想定した処理である。このように当該解析処理によって論理合成処理前に設計データの解析を行なっておくことにより、論理合成処理後の不具合箇所修正で発生する手戻り工数を削減することが可能となると共に、並行作業中の他の設計者及び後工程の設計者への回路情報提供によって後工程への移行に要する作業工数を有効に削減することが可能となる。
【００１７】
即ち、図２の処理では、ＨＤＬで記述された設計データを回路データ迄変換することをせず、ＨＤＬ言語の状態で構文解析した結果として得られる「構文木データ」を解析する。
【００１８】
以下、本発明の一実施例による構文木データの解析方法の一例について説明する。先ず、上記構文木データから、当該設計データの論理合成処理後にレジスタを含むものとなるか否かについて判定する方法について図３と共に説明する。
【００１９】
図３（ａ）は、構文木データがレジスタを構成するか否かを判定するための処理を示すフローチャートである。ここでは図３（ｂ）に示すレジスタを含む論理回路を構成する構文木データの例と共に、当該判定処理の流れについて説明する。
【００２０】
先ず，構文木データの各データ数分ループして条件節である”ｉｆ”の構文木を見出だす（ステップＳ２２）。そしてｉｆ文が見出された場合、その条件として信号“ｅｖｅｎｔ”と信号“＝１”、又は信号“＝０”が含まれているか否かを判定する（ステップＳ２３、Ｓ２４）。そしてこれらが含まれている場合、これらの条件が”ａｎｄ”条件で結ばれているか否かを判定する（ステップＳ２５）。そして更に、ステップＳ２３、Ｓ２４の各々における「信号」が共通か否かを判定する（ステップＳ２６）。尚、この条件で使用される信号（図３（ｂ）の場合、“ｉＣｌｋ”）を「クロック信号」と判断する。
【００２１】
これらの条件を満たす場合、更に信号代入文が存在すれば（ステップＳ２７のＹｅｓ）、この構文木をレジスタを構成するものと判断する（ステップＳ２８）。尚、この信号代入文の代入先の信号（図３（ｂ）の例の場合、“ｉＤａｔａ”）を「レジスタ信号」と判定する。
【００２２】
次に、論理合成処理後の回路中の信号の伝播経路をＨＤＬ言語形態でトレースする手法について述べる。従来では図４（ａ）示す如くの論理合成処理後の回路図上で結線を辿ることによってこのトレースを行っていた。本発明の実施例では、トレースを実施したい信号に着目し，ＨＤＬ設計データ中からその信号が関わる信号代入記述（＜＝）を検索する。このようにして見出された信号代入記述の「信号代入先／代入元」を伝播経路として出力する。尚このとき伝播経路にポートが出現する場合、ブロック間接続記述データから接続先ブロックを検索し、当該接続先ブロック内の伝播経路について更に同様に伝播経路の検索を行い、そこで得られた経路情報を出力する。
【００２３】
図４（ｂ）に示すＨＤＬ記述設計データの例を使用して説明するに、この場合ポート“ｉＰｏｒｔ１”からの伝播経路を検索するものとすると，同図（ｃ）に示す対応する構文木データからこの“ｉＰｏｒｔ１”に関わる信号代入データを検索し、そのデータ、即ちＴ１から代入先が信号“ａ”であることを見付け、次に信号“ａ”に関わる信号代入データを検索し、そのデータ、即ちＴ３からポート“ｏＰｏｒｔ２”迄トレース出来る。尚、図４（ｂ）に示すＨＤＬ記述中の「信号代入文」から図４（ｃ）に示す各構文木データＴ１，Ｔ２，Ｔ３を求める手法については図示によって明らかであるため、詳細な説明を省略する。
【００２４】
このようにしてＨＤＬ記述文から信号の伝搬経路をトレースすることによって、着目した信号の影響範囲を知ることが出来る。その結果、例えば設計変更を行なった場合、変更を加えた信号をトレースすることによって再シミュレーションが必要なブロックを抽出することが可能であり、その結果，必要以上の範囲に対する再シミュレーションの実行を省略可能であり、ＬＳＩ回路設計全体の工数を削減可能である。又、上記必要なブロックの抽出によって必要部分に対する再シミュレーション実行漏れの発生をも防止可能である。
【００２５】
次に、本発明の実施例によるレジスタ制御信号を検索する処理について説明する。従来は、例えば図５（ａ）に示す論理合成処理後の回路図上でレジスタ（この例の場合Ｒ１）を探索し、その結線を辿ることによって制御信号（この場合、ｉＣｌｋ）の流れを検索していた。これに対して本発明の実施例では、ＨＤＬ設計データ中のレジスタ記述を構文木データから検索する。そしてこのようにして得られたレジスタ記述からクロック信号、リセットに使用される信号を抽出し、このようにして抽出した信号に対して図４と共に上述した手法を使ってその源流を探索する。そしてこのようにして見出された源流の信号を制御信号として出力する。
【００２６】
図５（ｂ）に示すＨＤＬデータの例の場合、そこから同図（ｃ）の構文木データが得られ（この場合も図示によって明白なため、詳細な説明を省略する）、この構文木データから、図３と共に上述した手法によって当該構文木データがレジスタ記述であることが判定される。ここで一般的にｓレジスタ記述を示す構文木データの場合、図５（ｃ）のノードＮｃに出現する信号がクロック信号となることが決められているため，ｉＣｌｋをクロック信号とし出力する。尚このとき、信号ｉＣｌｋが更に他の信号と接続している場合、上記図４の伝播経路トレースの手段によってそのトレースを行う。
【００２７】
このようにレジスタの制御信号を検索することにより、予想外のクロック信号を見つけることが出来る場合がある。即ち、殆どのＬＳＩでは外部から入力されるクロック信号か或いはＬＳＩ内の特定ブロックで生成したクロック信号のみをクロック信号として使用するため、それ以外のクロック信号の存在については通常意識することがない。しかしながら個々の設計者の都合によってはこれら以外のクロック信号を生成して使用する必要性が生ずる場合があり、このような場合、上記図５のレジスタのクロック信号検索を行うことによってこのような予想外な制御信号の存在を見出すことが可能となる。
【００２８】
次に、本発明の一実施例による、非同期に動作するレジスタ間で受け渡しされるデータパスを検索する処理について説明する。従来では図６（ａ）に例示する如くの回路図上でレジスタを探し、その結線を辿って制御信号を検索していた。これに対し、本発明では、同図（ｂ）に示す、対応するＨＤＬデータ中のレジスタ記述から得られる同図（ｃ）に示す如くの構文木データから検索する。尚、レジスタ記述の判定は上述の図３の手法にて行なうものとする。
【００２９】
そしてこのレジスタ記述から上記の如くのレジスタ信号となる信号を検出し、検出された信号に対して上記図４の信号伝播経路トレース手法を適用して伝播経路に別のレジスタがあるか否かを調べる。その結果別のレジスタと接続されていた場合、夫々のレジスタのクロック信号が同じであるかを上記図５のレジスタの制御信号検索手法で調べる。その結果夫々のクロック信号が異なる場合には非同期に受け渡しされるデータパスと判定され、これを出力する。
【００３０】
この処理を具体的に例示すると、図６（ｂ）のＨＤＬデータから得られる同図（ｃ）の構文木データから２つのレジスタ記述Ｔ１１，Ｔ１２が見付かる。対応するレジスタ同士（Ｒ１１，Ｒ１２）に接続関係があるか否かについては上記図４に示す信号伝播経路トレースの手法によって判定可能である。その結果、図６（ｃ）中の破線で囲んだ信号代入記述が見出される。更に、上記レジスタの制御信号検索手法（図５）を適用することにより、二つのレジスタが夫々別のクロック信号(“ｉＣｌｋ１”、“ｉＣｌｋ２”)で動作していることが分かる。このため、当該レジスタ間接続が非同期のデータパスであることが分かる。
【００３１】
例えば一般的にこのような非同期パスについては、その誤動作を防ぐため所謂メタステーブル対応処理を行うことが多い。このような場合であっても上述の手法の適用によって予め非同期パスを検索することにより、非同期パスに対しメタステーブル対応処理が施されているか否かについて漏れなく確認することが可能となる。
【００３２】
次に、図７と共に、本発明の実施例による、ブロック間の接続信号数をカウントする処理について説明する。従来では回路図上でブロック間の接続で使用されている信号の数を数えていた（同図（ａ）参照）。本発明の実施例では、同図（ｂ）の如くのＨＤＬデータ中のブロック間接続記述を同図（ｃ）の如くの構文木データから検索する。そして、このブロック間接続記述の中で同一の信号を使用しているブロックを抽出し、抽出された信号をカウントすることで接続信号数を得て出力する。同図（ｂ）の例では、ブロックＢｌｏｃｋ１とブロックＢｌｏｃｋ２のブロック接続記述の構文木データＴ２１，Ｔ２２及び、ここで両方に接続されている信号ａ，ｂ，ｃを抽出することが出来，この数を数えて出力すれば良い。
【００３３】
例えば，このようなブロック間接続信号をカウントした結果を利用し、ＬＳＩ回路レイアウト処理において接続数を考慮したブロック配置を行うことが可能となり、その結果ブロック間配線長を最小限とする等、回路素子配置・配線構造の改善が可能となる。
【００３４】
次に、図８と共に、本発明の実施例による、ブロックからの信号ファンアウト数をカウントする処理について説明する。従来では回路図上でブロック間の接続を調べることでファンアウト数を数えていた（同図（ａ）参照）。これに対して本発明では、ＨＤＬデータ中のブロック間接続記述を構文木データから検索し（同図（ｂ）、（ｃ）参照）、このブロック間接続記述の中から，あるブロックに着目する。そして、そのブロックの各ポートに接続する信号を抽出する。更にその信号が接続する別のブロックの数を数える。そのようにして得られた数をファンアウト数（分岐数）として出力すれば良い。
【００３５】
図８（ｂ）、（ｃ）の例では、ブロックＢｌｏｃｋ１に着目して検索する。即ち、このブロックＢｌｏｃｋ１に接続されている信号ａ，ｂ，ｃ，ｄの各々について（構文木Ｔ３１参照）、別のブロックでも重複して使用されているか否かを調べる。その結果ブロックＢｌｏｃｋ２では信号ａ，ｂ，ｃ，ｄが夫々重複して使われ、ブロックＢｌｏｃｋ３では信号ｄが重複して使われていることが分かる（構文木Ｔ３２，Ｔ３３参照）。従って、ブロックＢｌｏｃｋ１からのａ，ｂ，ｃの信号については重複数が１であるため夫々ファンアウト数が”１”，ｄの信号について重複数が２であるためファンアウト数が”２”であることが分かり、それを出力すれば良い。
【００３６】
このようにファンアウト数をカウントすることにより，例えばブロックのピン端子のドライブ能力を超えたファンアウト数を有する箇所を見付けることが出来る。このような、そのドライブ能力を超えたピン端子に対しては、ドライブ能力を増加するためにバッファ等を挿入する等の処理を施して対策を施すこととなる。
【００３７】
次に、図９と共に、本発明の実施例による、同一制御信号で動作するレジスタを検索する処理について説明する。従来は、回路図上で全てのレジスタを探し、その結線を辿ることによって制御信号を検索していた（同図（ａ）参照）。これに対し、本発明では、ＨＤＬデータ中で上記図５のレジスタの制御信号検索処理にて全レジスタの制御信号を検索し、更に検索で得られたデータを使用して同一制御信号で動作するレジスタをグループ化して出力する。
【００３８】
図９（ｂ）、（ｃ）の例では、上記図５の処理にて各レジスタのクロック信号を検索し、レジスタＲｅｇｉｓｔｅｒ１（Ｔ４１）とＲｅｇｉｓｔｅｒ２（Ｔ４２）は同じクロック信号（ｉＣｌｋ）で動作していることが分かるため、それを出力する。
【００３９】
このように、例えば制御信号として、同一リセット信号で動作するレジスタを検索することにより，リセット条件を変更した場合の影響範囲を調べることが出来る。又同一クロック信号で動作するレジスタを検索することにより、ＬＳＩ上のレイアウト処理で実施するクロックツリー作成の参考用の情報として効果的に利用することが出来る。
【００４０】
図１０は、上述の図２乃至図９と共に説明した各処理を実施するためのシステムの一例について説明するための図である。同図に示す如く、本発明による設計データ解析方法は、モニタ２０，キーボード３０を供えたコンピュータ１０上で動作するソフトウェア５０の形態、即ち設計データ解析プログラムとして提供可能である。尚、以下の実例の説明においては、ＨＤＬとしてＶＨＤＬ（ＩＥＥＥＳｔｄ １０７６―１９９３）を適用する。この場合、上記設計データ解析プログラム５０は、ＶＨＤＬ読み込み部５１、構文解析部５２、データ解析部５３及び結果出力部５４よりなる。
【００４１】
実際の設計データ解析処理としては、キーボード３０入力されたＶＨＤＬデータがＶＨＤＬ読み込み部５１の機能によって読み込まれ，構文解析部５２の機能によって当該読み込み設計データから構文木データが生成される。そしてこの構文木データと更にキーボード入力された解析処理の条件がデータ解析部５３に入力され、上述の各種解析処理（図４乃至図９参照）がなされる。そしてその解析結果が結果出力部５４によりモニタ２０を介して出力される。
【００４２】
以下に本発明の実施例による各解析処理について具体例を挙げて説明する。先ず、図１１乃至１３と共に、ブロック間の接続信号数カウント、即ち「ブロック接続信号本数カウント解析処理」について説明する。図１１はブロック間接続の一例をＶＨＤＬで記述したものである。これをＶＨＤＬ読み込み部５１にて入力し、構文解析部５２で構文木データに変換する（図１２参照）。そしてこのデータをデータ解析部５３の入力とし、解析処理を行う。
【００４３】
具体的には、先ず信号を検索する。その結果、信号ｉＣＫはブロックＣＬＫ＿ＧＥＮ１，ＰＳ４１＿１，ＳＰ１４＿１，ＳＰ１４＿２に夫々接続しており、信号ｉＸＲＳＴはブロックＣＬＫ＿ＧＥＮ１，ＰＳ４１＿１，ＳＰ１４＿１，ＳＰ１４＿２に夫々接続しており、信号ｓｉｇＣＬＫ１はブロックＣＬＫ＿ＧＥＮ１，ＰＳ４１＿１，ＳＰ１４＿１，ＳＰ１４＿２に夫々接続しており、信号ｓｉｇＤＴ１はブロックＰＳ４１＿１，ＳＰ１４＿２に夫々接続しており、信号ｓｉｇＤＴ４はブロックＰＳ４１＿１，ＳＰ１４＿１に夫々接続していることが分かる。
【００４４】
このとき、図１１の記述における各ブロックＣＬＫ＿ＧＥＮ、ＳＰ１４，ＳＰ４１各々の定義文（各出力端子属性の定義）▲１▼，▲２▼，▲３▼により、信号ｉＣＫ，ｉＸＲＳＴが夫々接続しているブロック（ＣＬＫ＿ＧＥＮ，ＳＰ１４，ＳＰ４１）では、全て入力ポートにて接続されていることが分かるため、これらの信号はブロック間での接続ではないことが分かる。次に、同様に上記ブロック定義文により、信号ｓｉｇＣＬＫ１はブロックＣＬＫ＿ＧＥＮの出力ポートに接続され、同時にブロックＰＳ４１＿１、ブロックＳＰ１４＿１、ＳＰ１４＿２夫々の入力ポートに接続されていることが分かるため，ＣＬＫ＿ＧＥＮ  ―  ＰＳ４１＿１、ＣＬＫ＿ＧＥＮ  ―  ＳＰ１４＿１，ＣＬＫ_ＧＥＮ  ―  ＳＰ１４＿２夫々のブロック間では接続信号数が“１”であることが分かる。
【００４５】
同様に信号ｓｉｇＤＴ１のブロック毎の接続状態から、ブロック間ＰＳ４１＿１  ―  ＳＰ１４＿２では接続ｓ信号数が“１”であり、又、信号ｓｉｇＤＴ４の接続状態から、ブロック間ＰＳ４１＿１  ―  ＳＰ１４＿１の接続信号数が“４”であることが分かる（ブロックＳＰ１４、ＳＰ４１の各々の該当する接続端子の属性“ｖｅｃｔｏｒ（３  ｄｏｗｎｔｏ  ０）”により、接続される信号が４ｂｉｔであることが分かるため)。そしてこのような解析結果が結果出力部５４にて、モニタ出力される。図１３は、その出力例を示す。
【００４６】
次に、図１４、図１５、図１６と共に、本発明の実施例によるブロックの出力端子のファンアウト数カウント解析処理の実例について説明する。図１４はブロック間接続例をＶＨＤＬで記述した例であり、これをＶＨＤＬ読み込み部５１で入力し、構文解析部５２で構文木データにする（図１５参照）。そしてこのデータをデータ解析部５３の入力とし、解析を行う。
【００４７】
先ず信号を検索する。その結果，信号ｉＣＫはブロックＣＬＫ＿ＧＥＮ１，ＰＳ４１＿１，ＳＰ１４＿１，ＳＰ１４＿２に夫々接続し、信号ｉＸＲＳＴはブロックＣＬＫ＿ＧＥＮ１，ＰＳ４１＿１，ＳＰ１４＿１，ＳＰ１４＿２に夫々接続し、信号ｓｉｇＣＬＫ１はブロックＣＬＫ＿ＧＥＮ１，ＰＳ４１＿１，ＳＰ１４＿１，ＳＰ１４＿２に夫々接続し、信号ｓｉｇＤＴ１はブロックＰＳ４１＿１，ＳＰ１４＿２に夫々接続し、信号ｓｉｇＤＴ４はブロックＰＳ４１＿１，ＳＰ１４＿１に夫々接続していることがわかる。
【００４８】
このとき、上記同様のブロック定義文▲１▼，▲２▼，▲３▼により信号ｉＣＫ，ｉＸＲＳＴが接続しているブロックが全て入力ポートにて接続されていることが分かるため、この場合の解析対象にはしない。他方信号ｓｉｇＣＬＫ１はブロックＣＬＫ_ＧＥＮの出力ポートへの接続であるため、ファンアウト数(接続先数)を数える対象とする。その結果、この信号はブロックＰＳ４１＿１,ＳＰ１４＿１,ＳＰ１４＿２の夫々の入力ポートに接続していることが分かり、その結果ファンアウト数“３”が得られる。同様に信号ｓｉｇＤＴ１はブロックＰＳ４１＿１の出力ポートに接続しており、その接続先はブロックＳＰ１４＿２であるためファンアウト数“１”が得られる。信号ｓｉｇＤＴ４はブロックＰＳ４１＿１の出力ポートに接続しており、その接続先はブロックＳＰ１４＿１であるため、ファンアウト数“１”が得られる。これらの解析結果を結果出力部５４でモニタ出力する（図１６参照）。
【００４９】
以下、図１７乃至１９と共に本発明の実施例によるレジスタの制御信号検索処理の実例について説明する。図１７はレジスタ回路をＶＨＤＬで記述した例を示す。これをＶＨＤＬ読み込み部５１にて入力し、構文解析部５２にてこれを構文木データに変換する（図１８参照）。そしてこのデータをデータ解析部５３の入力とし、解析を行う。
【００５０】
図１８のデータ（構文木データＴ７１）から、図３のレジスタ判定処理により、ノードＲｅｇｉｓｔｅｒ１がレジスタになることが分かる。又このレジスタを駆動するクロック信号が信号ｉＣｌｋであることもこのデータから分かる。この結果から、このブロックＢｌｏｃｋ１のレジスタＲｅｇｉｓｔｅｒ１を動作させるクロック信号はこのブロックＢｌｏｃｋ１のｉＣｌｋポートの信号ということになる（図１７の記述中の最初の３行参照）。この結果を結果出力部５４にてモニタ出力する（図１９参照）。
【００５１】
次に、図２０乃至図２２と共に、本発明の実施例による。非同期に動作するレジスタ間のデータパス検索処理の実例について説明する。図２０はレジスタ回路をＶＨＤＬで記述した例である。これをＶＨＤＬ読み込み部５２にて入力し、構文解析部５２にて構文木データに変換する（図２１参照）。そしてこのデータをデータ解析部５３の入力とし、解析を行う
図２１のデータから、ノードＲｅｇｉｓｔｅｒ１、Ｒｅｇｉｓｔｅｒ２、Ｒｅｇｉｓｔｅｒ３が夫々レジスタとなることが分かる（構文木データＴ８１，Ｔ８２，Ｔ８３に対応）。そして更にこのデータではＲｅｇｉｓｔｅｒ１  →  Ｒｅｇｉｓｔｅｒ２のパスとＲｅｇｉｓｔｅｒ１  →  Ｒｅｇｉｓｔｅｒ３のパスの計２つのレジスタ間データパスが存在することが分かる（構文木データＴ８２，Ｔ８３参照）。又この２組のレジスタの組みおいては、レジスタＲｅｇｉｓｔｅｒ1とＲｅｇｉｓｔｅｒ３がクロック信号ｉＣｌｋ１で駆動され、レジスタＲｅｇｉｓｔｅｒ２がクロック信号ｉＣｌｋで駆動されることが分かるため、Ｒｅｇｉｓｔｅｒ１  →  Ｒｅｇｉｓｔｅｒ２のデータパスが非同期で動作するレジスタ間のデータパスとして抽出される。この結果を結果出力部５４にてモニタ出力する（図２２参照）。
【００５２】
次に、図２３乃至図２５と共に、本発明の実施例による、同一制御信号で動作するレジスタ検索処理の実例について説明する。図２３はレジスタ回路をＶＨＤＬで記述した例である。これをＶＨＤＬ読み込み部５１にて入力し、構文解析部５２にて構文木データに変換する（図２４参照）。そしてこのデータをデータ解析部５３の入力とし，解析を行う。
【００５３】
図２４のデータから、ノードＲｅｇｉｓｔｅｒ１、Ｒｅｇｉｓｔｅｒ２、Ｒｅｇｉｓｔｅｒ３が各々レジスタになることが分かり（構文木Ｔ９１，Ｔ９２，Ｔ９３に夫々対応），更に全てのレジスタがこのブロックＢｌｏｃｋ1のｉＣｌｋポート（図２３の記述中、最初の３行参照）の信号により駆動されていることが分かる。即ち、同一制御信号であるクロック信号ｉＣｌｋにて駆動される。この結果を結果出力部５４にてモニタ出力する（図２５参照）。
【００５４】
次に、図２６乃至図２８と共に、本発明の実施例による、信号の伝播経路解析処理の実例について説明する。図２６は信号接続回路をＶＨＤＬで記述した例である。これをＶＨＤＬ読み込み部５１にて入力し、構文解析部５２で構文木データに変換する（図２７参照）。そしてこのデータをデータ解析部５３の入力とし、解析を行う。
【００５５】
例として、このブロックＢｌｏｃｋ１のポートであるｉＰｏｒｔ１からの伝播経路を検索する処理を行うものとする。先ずポートｉＰｏｒｔ１が使われる構文木を探す。その結果、構文木Ｔ１０１が見出される。ここでは上記ポートｉＰｏｒｔ１はポートｉＰｏｒｔ２との論理積（ａｎｄ）がとられ、その結果が信号“ａ”に代入（＜＝）される構成となっている。更に、この信号“ａ”を使う構文木を探すと、信号“ｂ”と論理積をとり、その結果をポートｏＰｏｒｔ1に代入する構文木（Ｔ１０３）が見付かる。この検索結果を結果出力部５４にてモニタ出力する（図２８参照）。
【００５６】
尚、本発明は以下の付記に記載の構成を含む。
【００５７】
（付記１）
所定のハードウェア記述言語で記述された設計データを当該ハードウェア記述言語の形態にて、その構文解析によって直接該当するハードウェア構造に関する情報を抽出する段階よりなる設計データ解析方法。
【００５８】
（付記２）
前記所定のハードウェア記述言語で記述された設計データを当該ハードウェア記述言語の形態にて、その構文解析によって直接該当するハードウェアの構造に関する所定の情報を抽出する段階は、前記ハードウェア記述言語の形態の設計データの構文解析を行なうことによって構文木データを生成する段階よりなる付記１に記載の設計データ解析方法。
【００５９】
（付記３）
前記ハードウェアの構造に関する所定の情報を抽出する段階は、前記ハードウェア記述言語で記述された設計データ中の信号代入文を解析することによって信号伝播経路を解析する段階よりなる付記１又は２に記載の設計データ解析方法。
【００６０】
（付記４）
前記ハードウェアの構造に関する所定の情報を抽出する段階は、更にブロック間の接続信号数を計数する段階よりなる付記３に記載の設計データ解析方法。
【００６１】
（付記５）
前記ハードウェアの構造に関する所定の情報を抽出する段階は、更にブロックからの信号のファンアウト数を計数する段階よりなる付記３に記載の設計データ解析方法。
【００６２】
（付記６）
前記ハードウェアの構造に関する所定の情報を抽出する段階は、前記ハードウェア記述言語で記述された設計データ中の条件節を解析することによってレジスタ回路に関する記述を検出し、その制御信号を検索する段階よりなる付記１乃至５のうちのいずれかに記載の設計データ解析方法。
【００６３】
（付記７）
前記ハードウェアの構造に関する所定の情報を抽出する段階は、更に非同期に動作するレジスタ間で信号の受け渡しを行なうデータパスを検索する段階よりなる付記６に記載の設計データ解析方法。
【００６４】
（付記８）
前記ハードウェアの構造に関する所定の情報を抽出する段階は、更に同一制御信号で動作するレジスタ間で信号の受け渡しを行なうデータパスを検索する段階よりなる付記６に記載の設計データ解析方法。
【００６５】
（付記９）
所定のハードウェア記述言語で記述された設計データを当該ハードウェア記述言語の形態にて、その構文解析によって直接該当するハードウェア構造に関する所定の情報を抽出する段階をコンピュータに実行させるための設計データ解析プログラム。
【００６６】
（付記１０）
前記所定のハードウェア記述言語で記述された設計データを当該ハードウェア記述言語の形態にて、その構文解析によって直接該当するハードウェアの構造に関する所定の情報を抽出する段階は、前記ハードウェア記述言語の形態の設計データの構文解析を行なうことによって構文木データを生成する段階よりなる付記９に記載の設計データ解析プログラム。
【００６７】
（付記１１）
前記ハードウェアの構造に関する所定の情報を抽出する段階は、前記ハードウェア記述言語で記述された設計データ中の信号代入文を解析することによって信号伝播経路を解析する段階よりなる付記９又は１０に記載の設計データ解析プログラム。
【００６８】
（付記１２）
前記ハードウェアの構造に関する所定の情報を抽出する段階は、更にブロック間の接続信号数を計数する段階よりなる付記１１に記載の設計データ解析プログラム。
【００６９】
（付記１３）
前記ハードウェアの構造に関する所定の情報を抽出する段階は、更にブロックからの信号のファンアウト数を計数する段階よりなる付記１１に記載の設計データ解析プログラム。
【００７０】
（付記１４）
前記ハードウェアの構造に関する所定の情報を抽出する段階は、前記ハードウェア記述言語で記述された設計データ中の条件節を解析することによってレジスタ回路に関する記述を検出し、その制御信号を検索する段階よりなる付記９乃至１３のうちのいずれかに記載の設計データ解析プログラム。
【００７１】
（付記１５）
前記ハードウェアの構造に関する所定の情報を抽出する段階は、更に非同期に動作するレジスタ間で信号の受け渡しを行なうデータパスを検索する段階よりなる付記１４に記載の設計データ解析プログラム。
【００７２】
（付記１６）
前記ハードウェアの構造に関する所定の情報を抽出する段階は、更に同一制御信号で動作するレジスタ間で信号の受け渡しを行なうデータパスを検索する段階よりなる付記１４に記載の設計データ解析プログラム。
【００７３】
（付記１７）
前記コンピュータはデータを入力する入力手段と、データを格納する格納手段と、データを処理するデータ処理手段と、データを出力する出力手段とよりなり、
前記データ処理手段による制御の下、前記入力手段によって入力されたハードウェア記述言語で記述された設計データを前記格納手段に書き込み、前記データ処理手段の機能によって該格納手段から当該設計データを読み出しながらその構文解析を行なって該当する構文木データを生成し、当該構文木データを更に解析して該当するハードウェア構造に関する所定の情報を抽出し、更に上記解析結果を前記出力手段によって出力する構成の付記９乃至１６のうちのいずれかの設計データ解析プログラム。
【００７４】
【発明の効果】
本発明によればハードウェア記述言語にて記述された設計データを、その記述言語の状態で構文解析することによって直接そのハードウェア構造に関する情報を予め抽出可能であるため、論理合成処理を行う前に所定の回路適正度検証処理、共同設計者間の設計諸元調整処理等を実施可能である。その結果、論理合成処理後の設計修正要求発生数の抑制等が可能となり、もって効果的にＬＳＩ設計等の所要期間短縮、データ処理量削減等が可能となる。
【図面の簡単な説明】
【図１】一般的なＨＤＬ設計データの回路を検証する際の処理フローを示す図である。
【図２】本発明の一実施例による設計データ処理フローを示す図である。
【図３】本発明の一実施例によるレジスタデータ判定処理の動作の流れを示す図である。
【図４】本発明の一実施例による伝播経路トレース処理の動作の流れを示す図である。
【図５】本発明の一実施例によるレジスタの制御信号検索処理の流れを示す図である。
【図６】本発明の一実施例による 非同期データパス検索処理の流れを示す図である。
【図７】本発明の一実施例によるブロック信号数カウント処理の流れを示す図である。
【図８】本発明の一実施例によるブロックファンアウト信号数カウント処理の流れを示す図である。
【図９】本発明の一実施例による同一制御信号レジスタ検索処理の流れを示す図である。
【図１０】本発明の一実施例による設計データ解析システムを実現するためのハードウェア及びソフトウェア構成の一例を示す図である。
【図１１】本発明の一実施例によるブロック信号数カウント処理の実例を説明するためのＶＨＤＬ記述設計データ例を示す図である。
【図１２】図１１のデータを構文木データに変換後のデータを示す図である。
【図１３】図１２に示す構文木データを解析後得られる出力画面の例を示す図である。
【図１４】本発明の一実施例によるファンアウト数カウント処理の実例を説明するためのＶＨＤＬ記述設計データ例を示す図である。
【図１５】図１４のデータを構文木データに変換後のデータを示す図である。
【図１６】図１５に示す構文木データを解析後得られる出力画面の例を示す図である。
【図１７】本発明の一実施例によるレジスタ制御信号検索処理の実例を説明するためのＶＨＤＬ記述設計データ例を示す図である。
【図１８】図１７のデータを構文木データに変換後のデータを示す図である。
【図１９】図１８に示す構文木データを解析後得られる出力画面の例を示す図である。
【図２０】本発明の一実施例による非同期データパス検索処理の実例を説明するためのＶＨＤＬ記述設計データ例を示す図である。
【図２１】図２０のデータを構文木データに変換後のデータを示す図である。
【図２２】図２１に示す構文木データを解析後得られる出力画面の例を示す図である。
【図２３】本発明の一実施例による同一制御信号レジスタ検索処理の実例を説明するためのＶＨＤＬ記述設計データ例を示す図である。
【図２４】図２３のデータを構文木データに変換後のデータを示す図である。
【図２５】図２４に示す構文木データを解析後得られる出力画面の例を示す図である。
【図２６】本発明の一実施例による信号伝播経路検索処理の実例を説明するためのＶＨＤＬ記述設計データ例を示す図である。
【図２７】図２５のデータを構文木データに変換後のデータを示す図である。
【図２８】図２７に示す構文木データを解析後得られる出力画面の例を示す図である。
【符号の説明】
５０    設計データ解析プログラム
５１    ＶＨＤＬ読み込み部
５２    構文解析部
５３    データ解析部
５４    結果出力部
【図１】
2004192334.tif 000003
【図２】
2004192334.tif 000004
【図３】
2004192334.tif 000005
【図４】
2004192334.tif 000006
【図５】
2004192334.tif 000007
【図６】
2004192334.tif 000008
【図７】
2004192334.tif 000009
【図８】
2004192334.tif 000010
【図９】
2004192334.tif 000011
【図１０】
2004192334.tif 000012
【図１１】
2004192334.tif 000013
【図１２】
2004192334.tif 000014
【図１３】
2004192334.tif 000015
【図１４】
2004192334.tif 000016
【図１５】
2004192334.tif 000017
【図１６】
2004192334.tif 000018
【図１７】
2004192334.tif 000019
【図１８】
2004192334.tif 000020
【図１９】
2004192334.tif 000021
【図２０】
2004192334.tif 000022
【図２１】
2004192334.tif 000023
【図２２】
2004192334.tif 000024
【図２３】
2004192334.tif 000025
【図２４】
2004192334.tif 000026
【図２５】
2004192334.tif 000027
【図２６】
2004192334.tif 000028
【図２７】
2004192334.tif 000029
【図２８】
2004192334.tif 000030