(57)【要約】【課題】  RTLとタイミング制約の作成、管理を一元化し、修正漏れや不一致等のエラーの発生を防ぐ。【解決手段】  制約生成装置１１０は、論理回路をハードウエア記述言語で記述したハードウエア記述（RTL）を格納した記憶手段よりハードウエア記述文を入力して走査し、入力・出力端子宣言文の注釈欄に予め定められたキーワードが存在するか否かチェックし、キーワードが存在する場合、キーワードに対応するパラメータを抽出し、前記キーワード及び前記パラメータから、前記キーワードに対応したタイミング制約情報であって、ハードウエア記述から論理合成を行う論理合成装置で用いられるシンタックス・フォーマットに適合したタイミング制約情報を生成し記憶手段に格納する手段を備え、論理合成装置１０２は、ハードウエア記述に対して該タイミング制約情報を満たすように論理回路を合成する。【選択図】            図１
2007041868.tif 000002
【特許請求の範囲】
【請求項１】
論理回路をハードウエア記述言語で記述したハードウエア記述ファイルを格納した記憶手段より、ハードウエア記述文を入力して走査し前記ハードウエア記述文の注釈欄に予め定められたキーワードが存在するか否かチェックし、前記注釈欄に前記キーワードが存在する場合、前記注釈欄より、前記キーワードに対応して設定されているパラメータを抽出する抽出手段と、
前記キーワード及び前記パラメータに基づき、前記キーワードに対応した制約情報であって、前記ハードウエア記述文から論理合成を行う論理合成装置で用いられるフォーマットに適合した制約情報を自動生成する変換手段と、
を備えている、ことを特徴とする制約生成装置。
【請求項２】
前記抽出手段は、前記ハードウエア記述文のうち、入力端子及び／又は出力端子の宣言文の注釈欄に、入力端子及び／又は出力端子のタイミング制約として予め定められたキーワードが存在する場合、前記注釈欄に、前記キーワードに関連付けて定義された数値パラメータを抽出し、
前記変換手段は、入力端子名及び／又は出力端子名と、前記キーワードと、前記数値パラメータとに基づき、前記入力端子及び／又は前記出力端子に関する、タイミング制約情報を生成する、ことを特徴とする請求項１記載の制約生成装置。
【請求項３】
請求項１又は２記載の制約生成装置と、
前記ハードウエア記述ファイルを格納した記憶手段と、
前記ハードウエア記述ファイルよりハードウエア記述文を読み出し前記制約情報を満たすように論理回路を自動合成する論理合成装置と、
を備えている、ことを特徴とする論理合成システム。
【請求項４】
論理回路をハードウエア記述言語で記述したハードウエア記述ファイルを格納した記憶手段よりハードウエア記述文を入力して走査して前記ハードウエア記述文の注釈欄に予め定められたキーワードが存在するか否かチェックし、前記注釈欄に前記キーワードが存在する場合、前記注釈欄より、前記キーワードに対応して設定されているパラメータを抽出する第１の工程と、
前記キーワード及び前記パラメータに基づき、前記キーワードに対応した制約情報であって、前記ハードウエア記述文から論理合成を行う論理合成ツールで用いられるフォーマットに適合した制約情報を自動生成する第２の工程と、
を含む、ことを特徴とする論理合成方法。
【請求項５】
前記第１の工程は、前記ハードウエア記述文のうち、入力端子及び／又は出力端子の宣言文の注釈欄に、入力端子及び／又は出力端子のタイミング制約として予め定められたキーワードが存在する場合、前記注釈欄に、前記キーワードに関連付けて定義された数値パラメータを抽出し、
前記第２の工程は、入力端子名及び／又は出力端子名と、前記キーワードと、前記数値パラメータとに基づき、前記入力端子及び／又は前記出力端子に関する、タイミング制約情報を生成する、ことを特徴とする請求項４記載の論理合成方法。
【請求項６】
前記ハードウエア記述ファイルを格納した記憶手段より前記ハードウエア記述文を読み出し、前記制約情報を満たすように論理回路を合成する工程を含む、ことを特徴とする請求項４又は５記載の論理合成方法。
【請求項７】
論理回路をハードウエア記述言語で記述したハードウエア記述ファイルを格納した記憶手段よりハードウエア記述文を入力して走査して前記ハードウエア記述文の注釈欄に予め定められたキーワードが存在するか否かチェックし、前記注釈欄に前記キーワードが存在する場合、前記注釈欄より、前記キーワードに対応して設定されているパラメータを抽出する第１の処理と、
前記キーワード及び前記パラメータに基づき、前記キーワードに対応した制約情報であって、前記ハードウエア記述文から論理合成を行う論理合成ツールで用いられるフォーマットに適合した制約情報を自動生成する第２の処理工程と、
をコンピュータに実行させるプログラム。
【請求項８】
請求項７記載のプログラムにおいて、
前記第１の処理は、前記ハードウエア記述文のうち、入力端子及び／又は出力端子の宣言文の注釈欄に、入力端子及び／又は出力端子のタイミング制約として予め定められたキーワードが存在する場合、前記注釈欄に、前記キーワードに関連付けて定義された数値パラメータを抽出し、
前記第２の処理は、入力端子名及び／又は出力端子名と、前記キーワードと、前記数値パラメータとに基づき、前記入力端子及び／又は前記出力端子に関する、タイミング制約情報を生成する、ことを特徴とするプログラム。
【請求項９】
請求項７記載のプログラムにおいて、
前記ハードウエア記述ファイルを格納した記憶手段より前記ハードウエア記述文を読み出し前記制約情報を満たすように論理回路を合成する処理を、前記コンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路装置の自動設計装置及び方法に関し、特に、論理合成のタイミング制約の自動生成に用いて好適な装置及び方法ならびにプログラムに関する。
【背景技術】
【０００２】
半導体集積回路の設計工程に用いられる論理合成装置は、例えばレジスタトランスファレベル（ＲＴＬ）等のハードウエア記述言語（ＨＤＬ）を用いて論理回路を記述したハードウエア記述文を入力し、所定の半導体製造技術に最適なネットリストを自動生成する。例えばＶＨＤＬやＶｅｒｉｌｏｇ等、よく知られているように、ＲＴＬは、論理をレジスタ及びレジスタ間の論理機能として表現したハードウエア記述であり、論理合成装置は、ＲＴＬファイルを入力し、チップ面積や遅延時間の制約を満たすように最適化を行う。
【０００３】
図４は、論理合成を行う従来の論理合成システムの全体構成を示す図である。論理合成装置１０２は、記憶装置に格納されたＲＴＬのハードウエア記述１０１を入力し、記憶装置に格納されたタイミング制約１０３、その他の設計制約（例えばチップ面積、消費電力等）を入力し、該制約条件を満たすように、論理合成を行う。論理合成装置１０２は、例えばステートマシンへの状態の割り当て、フリップフロップの割り付け、組合わせ論理の生成等、通常、半導体製造技術に依存しないゲート・レベルへの論理展開を行い、半導体製造技術に依存しない範囲で論理の最適化を行う（例えば遅延時間の制約を満たすように論理段数を調整する）。そして、特定の半導体製造技術へのマッピングを行う。すなわち、論理ゲートやフリップフロップを特定の半導体製造技術のライブラリのセル等に置き換える。
【０００４】
なお、論理合成時に制約情報を考慮して論理合成を行う装置において、論理合成用遅延制約値を生成する装置については、特許文献１等が参照される。
【０００５】
【特許文献１】特開２０００−２１５２２４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
図４を参照して説明した従来の論理合成システムにおいては、ＲＴＬとは別に、タイミング制約を人手で作成し、論理合成装置１０２に供給している。
【０００７】
このため、ＲＴＬのハードウエア記述において、端子名の変更や端子の追加等が行われた場合、タイミング制約の修正が必要となる。上記従来の論理合成システムにおいては、ＲＴＬとタイミング制約の作成と、該作成した情報の管理とが別々に行われており、タイミング制約の修正漏れや、タイミング制約の不一致（例えば本来のタイミング制約値との不一致）等のエラーが発生する可能性がある。
【０００８】
また、設計担当者等が、ＲＴＬファイルの記述内容をみながら、タイミング制約を別途作成することが必要とされ、設計ＴＡＴ（Turn  Around  Time）が長くなる。
【０００９】
ＲＴＬファイルとタイミング制約のファイルそれぞれのファイルの内容の管理を行う担当者がそれぞれ必要とされ、マンパワー、作業工数の縮減を実現することも困難である。
【課題を解決するための手段】
【００１０】
本願で開示される発明は、前記課題を解決するため、以下の構成とされる。
【００１１】
本発明に係る装置は、論理回路をハードウエア記述言語で記述したハードウエア記述ファイルよりハードウエア記述文を入力して走査し、前記ハードウエア記述文の注釈欄に予め定められたキーワードが存在するか否かチェックし、前記注釈欄に前記キーワードが存在する場合、前記注釈欄より、前記キーワードに対応して設定されているパラメータを抽出する抽出手段と、前記キーワード及び前記パラメータから、前記キーワードに対応した制約情報であって、前記ハードウエア記述文から論理合成を行う論理合成装置で用いられるフォーマットに適合した制約情報を自動生成する変換手段とを備えている。
【００１２】
本発明において、前記抽出手段は、前記ハードウエア記述文のうち、入力端子及び／又は出力端子の宣言文の注釈欄に、入力端子及び／又は出力端子のタイミング制約として予め定められたキーワードが存在する場合、前記注釈欄に、前記キーワードに関連付けて定義された数値パラメータを抽出し、前記変換手段は、入力端子名及び／又は出力端子名と、前記キーワードと、前記数値パラメータとに基づき、前記入力端子及び／又は前記出力端子に関する、タイミング制約情報を生成する。
【００１３】
本発明に係る装置は、前記ハードウエア記述ファイルから前記ハードウエア記述文を読み出し、前記制約情報を満たすように論理回路を合成する論理合成装置を備えている。
【００１４】
本発明に係る方法は、論理回路をハードウエア記述言語で記述したハードウエア記述文を格納した記憶手段より前記ハードウエア記述文を入力して走査し、前記ハードウエア記述文の注釈欄に予め定められたキーワードが存在するか否かチェックし、前記キーワードが存在する場合、前記注釈欄より前記キーワードに対応するパラメータを抽出する第１の工程と、
前記キーワード及び前記抽出したパラメータから前記キーワードに対応した制約情報を生成して記憶手段に格納する第２の工程と、
を含む。
【００１５】
本発明に係るコンピュータプログラムは、論理回路をハードウエア記述言語で記述したハードウエア記述文を格納した記憶手段より前記ハードウエア記述文を入力して走査し、前記ハードウエア記述文の注釈欄に予め定められたキーワードが存在するか否かチェックし、前記キーワードが存在する場合、前記注釈欄より前記キーワードに対応するパラメータを抽出する第１の処理と、
前記キーワード及び前記抽出したパラメータから前記キーワードに対応した制約情報を生成して記憶手段に格納する第２の処理とをコンピュータに実行させるプログラムよりなる。
【発明の効果】
【００１６】
本発明によれば、ＲＴＬとタイミング制約を一元管理することで、タイミング制約のミス、設定漏れ等を防ぎ、設計ＴＡＴの短縮に貢献する。
【発明を実施するための最良の形態】
【００１７】
上記した本発明についてさらに詳細に説述すべく、添付図面を参照して説明する。本発明においては、設計対象の半導体集積回路（論理回路）をハードウエア記述言語で記述するハードウエア記述文に関して、入力端子及び／又は出力端子の宣言文の注釈（コメント）部に、タイミング制約として予め定められた所定のキーワードと、パラメータ（数値データ）を、エディタ等を用いて、定義しておく。
【００１８】
本発明に係る制約生成装置は、ハードウエア記述文を入力し、入力端子及び／又は出力端子の宣言文の場合、その注釈欄に、タイミング制約として予め定められた所定のキーワードが存在するか否かチェックし、所定のキーワードが存在する場合には、注釈欄からキーワードに対応するパラメータを抽出し、抽出したキーワード及びパラメータに基づき、前記ハードウエア記述から論理合成を行う論理合成装置が用いる文法形式（シンタックス・フォーム）に適合したタイミング制約情報を生成し、生成したタイミング制約情報を記憶手段に格納する。論理合成装置は、ハードウエア記述と、生成されたタイミング制約を満たすように、論理回路を合成する。以下実施例に即して説明する。
【実施例１】
【００１９】
図１は、本発明の一実施例のシステム構成を説明する図である。ＲＴＬレベルでのハードウエア記述の入力出力端子を宣言する文を、以下のように、１行につき１端子定義する。
【００２０】
input  A；
output  B;
input  C；
【００２１】
記号”；”は注釈（コメント）記号であり”；”から改行コードまでを注釈（コメント）部分とする。
【００２２】
本実施例では、注釈部（コメント部）に、例えば、
//XXX=200  あるいは、
//YYY=100
等のキーワードとパラメータの組を記述する。
【００２３】
例えば、入力端子の宣言文、
input  A；//XXX＝200
において、記号”；”以降のコメント部における、”//XXX”は、入力端子のタイミング制約であることを示すキーワード（入力端子タイミング制約であることを示す擬似命令）である。また、このキーワード”//XXX”につづく、”=200”は、タイミング制約の値が200であることを示す。すなわち、入力端子（端子名A）の宣言文のコメント文をなす”//XXX＝200”は、入力端子Aのタイミング制約が200単位であることをあらわしている。
【００２４】
また出力端子の宣言文
output  B;//YYY＝100
において、記号”；”以降のコメント部における、”//YYY”は、出力端子のタイミング制約であることを示すキーワード（出力端子タイミング制約であることを示す擬似命令）である。またこのキーワード”//YYY”につづく”=１00”は、タイミング制約の値が100であることを示す。すなわち、出力端子（端子名B）の宣言文のコメントである”//YYY＝100"は、出力端子Bのタイミング制約が100単位であることをあらわしている。
【００２５】
input  A；//XXX＝200＜改行＞
output  B;//YYY＝100＜改行＞
という具合に、コメント部にタイミング制約情報を付加したＲＴＬファイルの作成は、もとのＲＴＬファイルの作成時、あるいは、ＲＴＬファイルを作成した後であっても、論理合成の前であればいつ行ってもよい。
【００２６】
なお、コメント部内のキーワード”//XXX”、”//YYY”は、制約生成装置１１０との間で取り決めたキーワードであれば、”//XXX”、”//YYY”に制限されるものでなく、任意のキーワードを用いることができる。
【００２７】
制約生成装置１１０は、端子宣言文のコメント部にタイミング制約情報を付加したＲＴＬファイルを読み出して、端子宣言部の注釈（コメント）部から、当該端子に関して付加されたキーワード、数値パラメータを抽出する読み出し抽出部１１１と、抽出したキーワード、数値に基づき、論理合成装置１０２で用いるシンタックスのタイミング制約情報を生成し、タイミング制約を記憶する記憶装置１０３に格納する自動変換部１１２とを備えている。
【００２８】
例えば、１行の宣言文
input  A；//XXX＝200
から、タイミング制約情報として、
set_input_delay 200 A
を生成する。
【００２９】
１行の宣言文  
output  B;//YYY＝100
から、タイミング制約情報として、
set_output_delay 100 B
を生成する。
【００３０】
図２は、図１の制約生成装置１１０の処理手順（コンピュータによるプログラム処理手順）を示す流れ図である。
【００３１】
制約生成装置１１０の読み出し抽出部１１１は、ＲＴＬファイルから１行を読み出す（ステップＳ１１）。
【００３２】
読み出し抽出部１１１は、読み出しの結果、行を読み出せず、ファイルの最後（ＥＯＦ）を検出したら（ステップＳ１２のＹＥＳ）、処理は終了する。
【００３３】
行を読み出せた場合（ＥＯＦでない場合）（ステップＳ１２のＮＯ）、読み出し抽出部１１１は、入出力端子宣言文であるか否かチェックする（ステップＳ１３）。
【００３４】
入出力端子宣言文でない場合（ステップＳ１３のＮＯ）、ステップＳ１１へ移行する。入出力端子宣言文の場合（ステップＳ１３のＹＥＳ）、読み出し抽出部１１１は、入出力端子の端子名を抽出する（ステップＳ１４）。
【００３５】
読み出し抽出部１１１は、コメント記号”；”まで１行内の文字ポインタを進める（ステップＳ１５）。
【００３６】
１行の終了（ＥＯＬ）の場合（ステップＳ１６のＹＥＳ）、すなわちコメント無しの場合、ステップＳ１１に移行する。
【００３７】
コメント有りの場合（ステップＳ１６のＮＯ）、読み出し抽出部１１１は、キーワード（例えば//XXX、//YYY）があるか否かチェックする（ステップＳ１７）。
【００３８】
キーワード無しの場合（ステップＳ１７のＮＯ）、通常のコメントであるため、ステップＳ１１に移行する。
【００３９】
キーワード有りの場合（ステップＳ１７のＹＥＳ）、読み出し抽出部１１１は、記号”=”のあとの数値データを抽出する。なお、キーワード有りの場合、読み出し抽出部１１１は、キーワードのタイプ（//XXX、//YYY）によって、入力、出力のいずれのタイミング制約であるか識別する。
【００４０】
パラメータが定義されていない場合（ステップＳ１８のＮＯ）、すなわち、記号”=”のあとに数値データがない場合、読み出し抽出部１１１は、シンタックス・エラーを出力して、ステップＳ１１に移行する。
【００４１】
パラメータ有りの場合（ステップＳ１８のＹＥＳ）、読み出し抽出部１１１は、記号”=”のあとにつづく数値データを抽出する（ステップＳ１９）。
【００４２】
そして、制約生成装置１１０の自動変換部１１２は、読み出し抽出部１１１で取得された、端子名、キーワードによる入力、出力のいずれのタイミング制約であるか、タイミング制約情報（数値データ）に基づき、
set_input_delay  数値、端子名、
あるいは、
set_output_delay  数値、端子名
を生成し（ステップＳ２０）、生成したタイミング制約情報を、論理合成装置１０２が参照する記憶装置に格納し（ステップＳ２１）、ステップＳ１１に移行する。
【００４３】
図３（Ａ）は、入力端子Ａ、Ｂ、Ｃの接続関係の一例を示した図である。図３（Ａ）に対応する入出力端子の宣言は、図３（Ｂ）のようになる。図３（Ｂ）の入出力端子の宣言のコメント部分から、図３（Ｃ）のようなタイミング制約情報が生成される。
【００４４】
本実施例によれば、端子の宣言文のコメント部分に、タイミング制約を記述しているため、タイミング制約ミス、記入漏れを防ぐことができる。また、従来人手で作成していたタイミング制約を自動生成することができ、工数を削減する。
【００４５】
さらに、複数のモジュールを読み込んでチェックすることにより、タイミング制約の不整合を検出することができる。例えば入力端子と出力端子の接続関係から、タイミング制約の不整合を検出する。図３（Ａ）の構成において、回路２０１の出力端子（OUTPUT  B）と、回路２０２の入力端子（INPUT  A）、回路２０３の入力端子（INPUT  C）のタイミング制約がすべて同一値でない場合、整合性を欠いていることになる。本実施例によれば、回路の接続関係から、本来、タイミング制約の設定値が同一であるべきところ、相違していた場合にその不整合を検出する。
【００４６】
また、キーワードの変換の仕方を変えることにより、別のベンダの論理合成装置（ツール）用のタイミング制約情報を作成することができる。制約生成装置側で生成する制約情報のシンタックスを変更するだけ、複数の論路合成装置に対応可能であり、論路合成装置側での修正等を不要としている。
【００４７】
このように、本実施例によれば、ＲＴＬファイル内にタイミング制約の定義を記述することで、ＲＴＬとそのタイミング制約の一元管理を可能としている。
【００４８】
以上本発明を上記実施例に即して説明したが、本発明は上記実施例の構成にのみ限定されるものでなく、本発明の範囲内で当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【図面の簡単な説明】
【００４９】
【図１】本発明の一実施例のシステム構成を示す図である。
【図２】本発明の一実施例の処理手順を示す流れ図である。
【図３】本発明の一実施例を説明する図である。
【図４】従来のシステム構成を示す図である。
【符号の説明】
【００５０】
１０１  ＲＴＬファイル
１０２  論理合成装置
１０３  タイミング制約
１０４  その他の制約
１０５  ネットリスト
１１０  制約生成装置
１１１  読み出し抽出部
１１２  自動変換部
２０１〜２０３  回路  
【図１】
2007041868.tif 000003
【図２】
2007041868.tif 000004
【図３】
2007041868.tif 000005
【図４】
2007041868.tif 000006