(57)【要約】【課題】大規模多階層の論理ブロック間のタイミングの最適化、最適化合成処理時間の短縮及びタイミング精度を向上すること【解決手段】最下位階層のブロックを対象として、最下位階層ブロック内のフリップフロップ間のクローズパスにのみ最適化合成を実行し、最適化合成されたクローズパスに対してのみ処理実行不可能な回路保持制約情報を付加し、より上位の上位階層のブロックを対象として、最下位階層のブロック同士を結合して、最下位階層のクローズパスを回路保持制約情報によりブラックボックス化するとともに最下位階層の入力オープンパスと出力オープンパスを上位階層のクローズパスとして認識し、認識されたクローズパスのみに最適化合成を実行し、実行したクローズパスに対してのみ回路保持制約情報を付加し、続いて、最上位階層のブロックを対象として同様にクローズパスの最適化合成を実行すること。【選択図】　　　　図１
2004013248.tif 000002
【特許請求の範囲】
【請求項１】
多階層化された複数のブロックで構成された回路を論理合成システムを用いて各ブロック間のディレイ値を最適化する階層型論理合成方法であって、
最下位階層のブロックを対象として、最下位階層ブロック内の入力エッジとフリップフロップ間の入力オープンパスと、フリップフロップと出力エッジ間の出力オープンパスと、フリップフロップ間のクローズパスと、の内の前記クローズパスに対しては最適化合成を実行し、
前記クローズパスの最適化合成終了後に前記クローズパスに対しては処理実行不可能な回路保持制約情報を付加し、
最下位階層ブロックに対して前記クローズパスの最適化合成と回路保持制約情報付加を実行した後に、より上位の上位階層のブロックを対象として、前記最下位階層のブロック同士を結合して、前記最下位階層のクローズパスを前記回路保持制約情報によりブラックボックス化するとともに前記最下位階層の入力オープンパスと出力オープンパスを前記上位階層のクローズパスとして認識し、
前記認識されたクローズパスに対しては最適化合成を実行し、前記実行したクローズパスに対して回路保持制約情報を付加し、
前記上位階層ブロックに対して前記クローズパスの最適化合成と回路保持制約情報付加を実行し、続いて、最上位階層のブロックを対象として同様にクローズパスの最適化合成を実行する
ことを特徴とする階層型論理合成方法。
【請求項２】
請求項１において、
前記最下位階層、前記上位階層のそれぞれのブロックを対象とした最適化合成に際して、前記クローズパスに対してディレイ値を付与することを特徴とする階層型論理合成方法。
【請求項３】
請求項１において、
前記論理合成システムは、動作周期を満足させる回路を生成するものであって、外部から与えられた動作周波数に基づいて回路生成用の動作周期を自動認識することを特徴とする階層型論理合成方法。
【請求項４】
請求項１において、
前記上位階層ブロックを対象とした際に、当該上位階層よりも下位の階層における一のブロックの出力オープンパスと前記一のブロックに結合した他のブロックの入力オープンパスとが当該上位階層でのクローズパスとして認識されて、タイミング精度の良い最適化合成を実行する
ことを特徴とする階層型論理合成方法。
【請求項５】
請求項１において、
多階層化された各階層ブロックにおけるクローズパスに対しては最適化合成を実行するとともに当該クローズパスを回路保持してブラックボックス化することで、論理合成の処理時間を短縮することを特徴とする階層型論理合成方法。
【請求項６】
請求項１において、
多階層化された各階層ブロックにおけるゲート規模数に基づいて当該ブロックにおける回路配線長を見積もってディレイ値を最適化する
ことを特徴とする階層型論理合成方法。
【請求項７】
多階層化された複数のブロックで構成された回路を論理合成システムを用いて各ブロック間のディレイ値を最適化する階層型論理合成装置であって、
最下位階層のブロックを対象として、最下位階層ブロック内のフリップフロップ間のクローズパスに対しては最適化合成を実行し、
前記最適化合成の実行されたクローズパスに対して処理実行不可能な回路保持制約情報を付加し、
最下位階層ブロックに対して前記クローズパスの最適化合成と回路保持制約情報付加を実行し、
より上位の上位階層のブロックを対象として、前記最下位階層のブロック同士を結合し、
前記最下位階層のクローズパスが前記回路保持制約情報によりブラックボックスとされることで、前記最下位階層における一のブロックの出力オープンパス（ブロックのフリップフロップと出力エッジ間のオープンパス）と前記一のブロックに結合した他のブロックの入力オープンパス（ブロックの入力エッジとフリップフロップ間のオープンパス）とを前記上位階層におけるクローズパスとして認識し、
前記認識されたクローズパスに対しては最適化合成を実行し、前記実行したクローズパスに対して回路保持制約情報を付加し、
前記上位階層ブロックに対して前記クローズパスの最適化合成と回路保持制約情報付加を実行し、
最上位階層のブロックを対象として、前記上位階層のブロック同士を結合してクローズパスの最適化合成を実行する
ことを特徴とする階層型論理合成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、論理の最適化を行なう論理合成システムを用いて、大規模多階層設計された論理回路の最適化技術に関して、最適化合成処理時間の大幅な短縮、タイミング違反数の削減、タイミング精度の向上及び回路面積の縮小を実行するための技術に関する。
【０００２】
【従来の技術】
従来、ＨＤＬ（Ｈａｒｄｗａｒｅ　Ｄｅｓｃｒｉｐｔｉｏｎ　Ｌａｎｇｕａｇｅ）を利用して大規模多階層設計された論理回路の最適化を行なう場合、最下位階層のクローズパスに関しては、任意のタイミング制約及びディレイ値を与え、オープンパスに関しては、クローズパスで与えたタイミング制約の半分のディレイ値をそれぞれ入力側、出力側に固定値として与えて最適化の実行を行なっていた。
【０００３】
ここで、従来技術並びに本発明においても適用される論理合成に関する用語について説明する。論理回路は、全ての情報を２種類の記号の組み合わせ（２値情報）として表し、この２値情報を用いて論理演算や算術演算などの処理をする回路を云い、論理合成は、ＨＤＬ（ハードウェア記述言語）を使用してＲＴＬ（Ｒｅｇｉｓｔｅｒ　Ｔｒａｎｓｆｅｒ　Ｌｅｖｅｌ：論理回路生成が可能なレベル）記述された論理回路を、ＡＮＤ素子やＯＲ素子などの論理素子レベルの論理回路にマッピング（変換）する処理を云う。また、ＨＤＬで記述した内容を論理合成ツールに入力することによって実際のＡＮＤ素子やＯＲ素子等からなる回路構成を生成する。
【０００４】
また、論理回路において、各素子を纏めたものを１つの集合体とし、その集合体を纏めてさらに１つの集合体を作成するというような構成を階層と称する。また、論理素子レベルにマッピングされた論理回路内の、入力エッジからフリップフロップ（ＦＦ）の入力までの間の回路、及びフリップフロップの出力から出力エッジまでの間の回路をオープンパスと称し、論理素子レベルにマッピングされた論理回路内のフリップフロップから次のフリップフロップ間で閉じられた回路をクローズパスと称する。
【０００５】
また、タイミング制約とは、論理合成を行う回路に対して、目標とする性能、例えば動作周波数又は遅延量で当該回路が正常に動作し、また、意図した回路を生成するために外部から与える制約を云い、タイミング違反数とは、論理合成を行う回路に与えたタイミング制約に対して、論理素子レベルにマッピングされた回路が正常に動作しない原因となるタイミング制約の違反の数を云い、更に、タイミング精度とは、論理合成を行う回路に与えたタイミング制約に対して、論理素子レベルにマッピングされた回路が、タイミング制約を満たしている割合を云う。
【０００６】
また、合成目標性能とは、論理合成を行う回路に対して、その回路が正常に動作し、また意図した回路を生成するための目標値を云い、最適化合成処理とは、ＨＤＬ（Ｈａｒｄｗａｒｅ　Ｄｅｓｃｒｉｐｔｉｏｎ　Ｌａｎｇｕａｇｅ：ハードウェア記述言語）を使用してＲＴＬ（Ｒｅｇｉｓｔｅｒ　Ｔｒａｎｓｆｅｒ　Ｌｅｖｅｌ：論理回路生成が可能なレベル）記述された論理回路を、タイミング制約を利用して合成目標性能を満たす論理素子レベル回路にマッピングするための処理を云う。
【０００７】
特開２０００−２１５２２４には、論理回路の最適化技術に関して記載されている。この公報によれば、ブロックにより階層設計されたハードウェアをブロック毎に最適化する際に、ブロック間にまたがったパスに対して、パスへの制約をブロック毎に適切に分配する制約を生成する論理合成用制約生成処理手段が開示されている。
【０００８】
この公報に記載された具体的構成例によると、前段ブロック内部のＤＦＦから最適化対象外遅延であるネットを経由して後段ブロック内部のＤＦＦへ至るパスがあり、パスの遅延分配用制約である２つのＤＦＦをドライブするクロック周期が１２ｎｓである場合に、最適化対象外であるネットの配線遅延時間８ｎｓは前段ブロックの遅延時間に含むものとして論理合成用遅延制約を生成したり（この公報に記載された従来技術）、また、最適化対象外遅延値８ｎｓを除いて遅延分配用制約値を分配して、パス上のブロック毎に適切な比率で論理合成用遅延制約値を割り振るようにし、例えば、前段と後段ブロックに合わせて割り振り可能な最適化対象遅延量を１２−８＝４ｎｓとして、前段と後段のそれぞれのブロックに２ｎｓが論理合成用遅延制約値として分配されている（この公報に記載された改善技術）。
【０００９】
【発明が解決しようとする課題】
しかし、近年のＬＳＩは大規模かつ高周波数となってきたため、オープンパスにクローズパスのタイミング制約の半分のディレイ値という固定値を与えた論理合成方式では、大規模多階層回路の最適化、最適化合成処理時間の短縮、タイミング違反数の削減及びタイミング精度の向上が困難になってきた。
【００１０】
本発明は、現在実施しているタイミング制約付与方式を変更せずに、論理ブロック間のタイミングの最適化、最適化合成処理時間の短縮及びタイミング精度を向上することを目的とする。
【００１１】
【課題を解決するための手段】
前記課題を解決するために、本発明は主として次のような構成を採用する。
多階層化された複数のブロックで構成された回路を論理合成システムを用いて各ブロック間のディレイ値を最適化する階層型論理合成方法であって、
最下位階層のブロックを対象として、最下位階層ブロック内のフリップフロップ間のクローズパスに対して最適化合成を実行するとともに、最下位階層ブロック内の入力エッジとフリップフロップ間の入力オープンパスと、フリップフロップと出力エッジ間の出力オープンパスと、に対しては最適化合成を不実行とし、
前記クローズパスの最適化合成終了後に前記クローズパスに対しては処理実行不可能な回路保持制約情報を付加し、
全ての最下位階層ブロックに対して前記クローズパスの最適化合成と回路保持制約情報付加を実行した後に、より上位の上位階層のブロックを対象として、前記最下位階層のブロック同士を結合して、前記最下位階層のクローズパスを前記回路保持制約情報によりブラックボックス化するとともに前記最下位階層の入力オープンパスと出力オープンパスを前記上位階層のクローズパスとして認識し、
前記認識されたクローズパスに対しては最適化合成を実行し、前記実行したクローズパスに対して回路保持制約情報を付加し、
全ての前記上位階層ブロックに対して前記クローズパスの最適化合成と回路保持制約情報付加を実行し、続いて、最上位階層のブロックを対象として同様にクローズパスの最適化合成を実行する階層型論理合成方法。
【００１２】
【発明の実施の形態】
本発明の実施形態に係る階層型論理合成方法及びそのための装置について、図１〜図８を参照しながら以下詳細に説明する。図１は、本発明の実施形態に係る階層型論理合成手法の一例を示すフローチャートである。図２は、ＨＤＬを使用して設計を行なった場合の一例を示す階層構成図であり、図３は、図２の階層構成図の階層結合の一例を示す階層結合図であり、図４は、図２の階層構成図の情報を格納する論理階層情報テーブルであり、図５は、図２の階層構成図の最下位階層ブロックの詳細の一例を示すブロック図であり、図６は、図２の階層構成図の中間階層ブロックの一例を示すブロック図であり、図７は、図２の階層構成図の最上位階層ブロックの一例を示すブロック図であり、図８は、本発明の一実施の形態である階層型論理合成装置の構成の一例を示す概念図である。
【００１３】
まず、図８を参照して、本発明の実施形態における階層型論理合成装置の一例を説明する。システムバス８００には、全体の動作を制御するマイクロプロセッサ８０１と、マイクロプロセッサ８０１の制御を行なう基本ソフトやユーザプログラム（本実施形態の場合、図１に示すフローチャートのような処理を行なう階層型論理合成プログラム）や後述のような階層型論理合成の過程で用いられる各種制御情報が格納される主記憶装置８０５と、階層型論理合成プログラムや後述の階層型論理合成の対象となる設計データや合成対象の最上位論理名や合成目標性能が記述された実行制御ファイル等の情報が格納されるＨＤＤ装置等の外部記憶装置８０６と、論理図や処理結果情報等を操作者に可視化して提供するディスプレイ８０２と、操作者がコマンドやデータの入力操作に用いるキーボード８０３と、マウス等のポインティングデバイス８０４と、等が接続されている。
【００１４】
階層型論理合成プログラムは、任意の契機で外部記憶装置８０６から主記憶装置８０５にロードされて起動されることにより、後述の図１〜図８に例示される本発明の実施形態に係る階層型論理合成方法を実施する。また、この階層型論理合成プログラムの実行の過程の情報は、必要に応じてディスプレイ８０２に出力される。
【００１５】
ここで、本発明に適用される用語について説明すると、「従来の技術」の欄に記載した用語に加えて、ファンアウト（ｆａｎ−ｏｕｔ）は１つのピンに繋ぐことができる次段の入力の個数を表す。ゲートライブラリは、半導体ベンダから提供されている論理合成処理時に使用するＡＮＤ素子やＯＲ素子等の論理素子の集合体を云う。また、リファレンス名は上位階層から見た場合の下位階層又は論理素子を参照するための名称であり（図２の例で云うと、上位階層Ｆ１からのつながりを表す下位階層の名称であり、Ｂ１やＢ２を云う）、セル名は半導体ベンダが提供しているＡＳＩＣ（カスタムＩＣ）用の論理素子名であり、インスタンス名はセル名と同じものであるが１つの階層内における各素子やブロック固有の識別名であり、モジュール名は各論理素子を使用して作成された回路の１つのかたまりであり、ネット名は各論理素子を使用して作成された回路の各論理素子間を繋ぐ信号名であり、ライブラリ名は半導体ベンダが提供している論理素子の集合体の総称である。
【００１６】
次に、本発明の背景技術並びに基本的概要について、図２、図３、図５及び図６を参照し具体的例示を以て、従来技術と対比しながら、以下説明する。多階層論理回路の最適化を行う場合、まず、図５に示す最下位階層ブロック５００（例えば、図２に示す第３階層のＢ１に相当する）において論理合成する。図５で、フリップフロップ（ＦＦ）５２０と５２１の間には組み合わせ回路が存在し、具体的にはカウンタやエラーチェックを行う。また、ＦＦ５２０の前流側にはデータ設定回路、ＦＦ５２１の後流側には出力設定回路が存在する。更に、クロックピン５１０とＦＦ５２０及び５２１との間にもクロックを処理する回路が存在する。
【００１７】
まず、ＦＦ５２０と５２１間のクローズパス５０１における組み合わせ回路の動作周波数が例えば１００ＭＨｚであると設定する（この組み合わせ回路で処理するための遷移時間は１０ｎｓに相当する）。論理合成ツールではＦＦ５２０と５２１で区切られたクローズパス５０１で動作周波数が反映するようになっている。そして、ブロックの入力から各ＦＦの入力までの回路であるオープンパス５０２と、各ＦＦの出力からブロックの出力までの回路であるオープンパス５０３と、ブロックの入力から各ＦＦを経由せず組み合わせ回路を通るオープンパス５０４と、が形成される。実際には、図５に示す最下位階層ブロックが図６に示すように順次に接続されていて、図５のオープンパス５０２（ブロック入力からＦＦ入力間パス）は、例えば、その前流側のブロックのオープンパス５０３（ＦＦ出力からブロック出力間パス）と一体的に接続されて、各ブロックの組み合わせ回路を繋ぐようになっている。
【００１８】
そこで、従来技術においては、各ブロックの論理合成に際しては、オープンパス５０２や５０３に対して、クローズパス５０１で設定した動作周波数１００ＭＨｚの半分の遷移時間を強制的に割り当てていた。即ち、図５のオープンパス５０２と５０３に５ｎｓを与え、同様に、同一階層のブロックのオープンパスにも５ｎｓを与えた上で論理合成を実施していた。このように、各ブロックの組み合わせ回路間をつなぐオープンパスには、合わせて１０ｎｓの遷移時間を与えていた。即ち、クローズパスで設定した動作周波数と同一の動作周波数でクローズパス間を繋ぐ区間も動作するように論理合成する必要がある。
【００１９】
しかしながら、各ブロックのオープンパスには回路構成の差異もあって、当該ブロックのオープンパス５０２と前流側ブロックのオープンパス５０３を接続した場合における遷移時間が１０ｎｓを超えることもあって（両オープンパスが共に５ｎｓ以内であれば問題ないのであるが、一方のオープンパスが６ｎｓの場合に、他が４ｎｓであれば問題ないが、他が５ｎｓであれば合わせて１１ｎｓとなる）、目標の性能を達成できない場合があり、この際には、最下位階層での各ブロックのオープンパスの遷移時間を種々変更して（他のオープンパスを５ｎｓから４ｎｓに）論理合成した後、更に上位階層でのブロック間のつながりの遷移時間が最終的に１０ｎｓ以内になるように、最下位階層で何度も論理合成を繰り返して調整していた。従来技術では、図６に示すような第２階層は、第３階層における各ブロックを接続した状態であってこの階層では特別に処理を施さず、第１階層においてブロックを接続した状態の動作確認を実施していた。なお、論理合成ツールは、オープンパスにおいて費やした遷移時間を認識できて、規定した遷移時間を超えた場合にはエラー報告する機能を有していて、この論理合成ツールで論理合成の最適化処理を種々実施して指定したタイミングで動作できるようにマッピング（作成）できる。
【００２０】
次に、本発明の基本的概要について説明すると、最下位階層ブロック（図５で５０１）内のフリップフロップ間（以下、クローズパスと称する。図５ではＦＦ間で区切られたパス５０１）のみに対して設定タイミング（動作周波数又は遷移時間）で動作するように論理合成を実施するとともに、入力エッジ〜フリップフロップ間（以下、オープンパスＡ又は入力オープンパスと称する。図５ではパス５０２）、フリップフロップ〜出力エッジ間（以下、オープンパスＢ又は出力オープンパスと称する。図５ではパス５０３）に対しては論理合成処理を実行しない。そして、クローズパスの最適化合成終了後はクローズパスの回路に対してのみ新たな処理を実行出来ない回路保持制約情報を付加する（外部からクローズパスに対して何等の処理も不可能なブラックボックス状態としておく）。
【００２１】
続いて、最下位階層の上位階層、即ち、図６において、具体的にはブロックＢ１とＢ２を接続した第２階層の回路構成において、４つのＦＦが存在するが、第１と第２のＦＦ間の組み合わせ回路、及び第３と第４のＦＦ間の組み合わせ回路は共にブラックボックスとなっているので、図６の全体構成で第１のＦＦ（入力側ＦＦ）と第４のＦＦ（出力側ＦＦ）で区切られたクローズパスは、上述の２つのブラックボックスを除けるので、実質的に、図示する６０１の論理回路のみとなり、これは取りも直さず、最下位階層ブロックのオープンパス５０２とその前流側のオープンパス５０３からなる回路に該当する。
【００２２】
そこで、図６において、クローズパス６０１に対して、図５のクローズパスの遷移時間１０ｎｓと同様の遷移時間で処理できるような最適論理合成を実施する。図６において２つの組み合わせ回路はブラックボックスとなっていて、これらの回路への論理合成は実行しないので、処理時間の短縮が図れる。このような論理合成を第２階層の他の全てのブロックにも適用する。この際、ブロック６００のクローズパスに対して回路保持制約情報を付加しておく。
【００２３】
上述した第２階層の更に上位の階層においても第２階層と同様な最適化合成を実行することで、タイミング制約（動作周波数又は遷移時間）の違反を無くすることができる。また、図６におけるブロック間結合において、論理合成ツールを用いて、オープンパス部の最下位階層ブロックの最適な仮想配線長を適用できるので、負荷精度の向上を図ることができる。これらの処理を最上位階層まで実施して、全ての最適化合成を完了する。
【００２４】
以上、本発明の概要について例示を以て説明したが、図面を参照しながら、本発明の階層型論理合成方法を手順に従って以下説明する。
【００２５】
（０１）最下位階層ブロック５００のＨＤＬデータを読み込む、
（０２）最下位ブロック５００用の実行制御ファイルを読み込む、
（０３）実行制御ファイル内のクロックピン情報５１０を取得する、
（０４）取得したクロックピン情報５１０を元にファンアウトトレースを実行し、終点（フリップフロップ５２０，５２１）を認識する、
（０５）フリップフロップ〜フリップフロップ間に閉じられた部分をクローズパス５０１として、実行制御ファイル内の周波数情報を利用し、最適化合成を実行する、
（０６）最下位階層ブロック５００の入力エッジ情報を使用してファンアウトトレースを実行し、入力側オープンパス５０２，５０４の情報を取得する、
（０７）同様に、最下位階層ブロック５００の出力エッジ情報を使用してファンイントレースを実行し、出力側オープンパス５０３，５０４の情報を取得する、
（０８）最下位階層ブロック５００内の全ての信号と論理素子に対して回路保持制約情報を付加する、
（０９）前述で取得したオープンパス５０２，５０３，５０４の信号名と論理素子情報に対して、回路保持制約情報削除の処理を行なう、
（１０）上記処理により、最下位階層ブロック５００内のクローズパス５０１にのみ回路保持制約情報が付加されており、論理合成システム上では回路を認識しない状態（ブラックボックス）となる、
（１１）同様に、実行制御ファイル内で指定された最下位階層ブロックに対して繰り返し実行する、
（１２）全ての最下位階層ブロックの処理終了後、１つ上の階層を処理対象とする。
【００２６】
（１３）中間階層ブロック６００のＨＤＬデータを読み込む、
（１４）中間階層ブロック６００の下位階層ブロック６０５，６０６のクローズパス部分については回路保持制約が付加されており、ブラックボックス状態となっているため、前述の最下位ブロック５００と同様の回路構成と認識できる、
（１５）中間階層ブロック６００用の実行制御ファイルを読み込む、
（１６）実行制御ファイル内のクロック情報を取得する、
（１７）取得したクロック情報を元にファンアウトトレースを実行し、終点（フリップフロップ）を認識する、
（１８）中間階層ブロック６００において、下位階層ブロック６０５の出力側オープンパスから下位階層ブロック６０６の入力側オープンパスについては、フリップフロップ〜フリップフロップ間に閉じられた部分のクローズパス６０１として認識できるため、最下位階層ブロック５００と同様に実行制御ファイル内の周波数情報を利用し、最適化合成を実行する、
（１９）中間階層ブロック６００の入力エッジ情報を使用してファンアウトトレースを実行し、入力側オープンパス６０２，６０４の情報を取得する、
（２０）同様に、中間階層ブロック６００の出力エッジ情報を使用してファンイントレースを実行し、出力側オープンパス６０３，６０４の情報を取得する、
（２１）最下位階層ブロック６００内の全ての信号と論理素子に対して回路保持制約情報を付加する、
（２２）前述で取得したオープンパス６０２，６０３，６０４の信号名と論理素子情報に対して、回路保持制約情報削除の処理を行なう、
（２３）上記処理により、中間階層ブロック６００内のクローズパス６０１にのみ回路保持制約情報が付加されており、論理合成システム上では回路を認識しない状態（ブラックボックス）となる、
（２４）同様に、実行制御ファイル内で指定された中間階層ブロックに対して繰り返し実行する、
（２５）全ての中間階層ブロックの処理終了後、最上位階層まで同様の処理を行なう。
【００２７】
以上の説明から分かるように、本発明の概要を再度記述すると、まず、設計データ（ＨＤＬ）入力処理１００にて、論理合成前の設計データを入力し、最下位階層ブロック内クローズパス部分論理合成処理１０１を実行する。次に、最下位階層ブロック内オープンパス部分抽出処理１０２にて、オープンパス部分の信号名と論理素子情報を記憶し、最下位階層ブロック内クローズパス部分回路保持処理１０３にて、前述で記憶した情報を元にクローズパス部分の回路保持制約付加処理を実行する。全ての最下位ブロックに対しての処理終了後、中間階層ブロックに対して同様の処理を実行するが、論理データについては下位階層ブロックを結合した論理データを使用することで各ブロック毎の論理規模を個別に見積もることができ、それにより精度の高い仮想配線長を見積り、最適化合成を行なうことができる。以降、最上位階層ブロックまで同様の処理を行なうことで、処理時間の短縮及びタイミング精度の向上を可能とするものである。
【００２８】
次に、本発明の実施形態に係る階層型論理合成装置の構成乃至機能について、図面を参照して以下説明する。図１は本実施形態の階層型論理合成の全体フロー図であり、全ての処理は階層型論理合成プログラムによって自動処理される。設計データ入力処理１００は、入力データとして、論理合成システム上にＨＤＬ記述された設計データと実行制御ファイルとを外部記憶装置８０６から読み込み、実行制御ファイル内の最上位論理名をスタートとして下位階層の論理名を下位階層が無くなるまで抽出する。図２の階層構成図を処理した場合は、第１階層の最上位論理名としてＣ１からトレースを開始し、第２階層として論理名Ｆ１，Ｆ２、第３階層として論理名Ｂ１〜Ｂ４を抽出し、図４の論理階層情報テーブル４００へ抽出階層と論理名を対応付けて記憶させる。
【００２９】
最下位階層ブロック内クローズパス部分論理合成処理１０１は、本階層構成における最下位階層である第３階層２０２に対して１論理名毎、外部記憶装置８０６から論理名に対応するＨＤＬデータを読み込み、実行制御ファイル内のクロックピン情報を使用して、最下位階層ブロック５００のクロックピン５１０よりファンアウトトレースし、ファンアウトトレースの終点をフリップフロップ５２０，５２１と認識する（図５を参照）。
【００３０】
尚、各論理素子にはトレース中断フラグが存在しフリップフロップは中断フラグがＯＮと設定されている。その後フリップフロップ−フリップフロップ間で閉じている信号接続情報と論理素子のクローズパス５０１に対して実行制御ファイル内の周波数情報と外部記憶装置８０６から読み込んだゲートライブラリを使用して、前記で認識したフリップフロップのホールドタイムを取得し、フリップフロップ−フリップフロップ間の最大目標ディレイ値を「ディレイ値＝（１秒／周波数）−ホールドタイム」により算出し、このディレイ値以下になるように、主記憶装置８０５から読み込んだクローズパスの論理に対して最適化合成処理を実施する。また、最下位階層ブロック５００の最適化合成結果を外部記憶装置８０６及びディスプレイ８０２へ出力する。
【００３１】
次に、最下位階層ブロック内オープンパス部分抽出処理１０２において、最下位階層ブロック５００の入力エッジ情報を使用してファンアウトトレースを実行し、オープンパス５０２，５０４の全ての信号名と論理素子情報として、リファレンス名、セル名、インスタンス名、モジュール名、ネット名、ライブラリ名を抽出し、主記憶装置８０５へ一時的に格納する（以下、オープンパス情報Ａと称する）。同様に、最下位階層ブロック５００の出力エッジ情報を使用してファンイントレース（ｆａｎ−ｉｎ　ｔｒａｃｅ）を実行し、オープンパス５０３，５０４の全ての信号名と論理素子情報として、リファレンス名、セル名、インスタンス名、モジュール名、ネット名、ライブラリ名を抽出し、主記憶装置８０５へ一時的に格納する（以下、オープンパス情報Ｂと称する）。
【００３２】
次に、最下位階層ブロッククローズパス部分回路保持処理１０３において、最下位階層ブロック５００内の全ての信号と論理素子に回路保持制約情報を付加するが、回路保持制約情報とは主記憶装置８０５や外部記憶装置８０６から読み込んだ、リファレンス名、セル名、インスタンス名、モジュール名、ネット名、ライブラリ名の情報を元に、論理合成システム上にて処理中の回路内の信号名や論理素子情報等を検索し、検出された信号名や論理素子等に対して付加することができる信号名、論理素子変更不可制約であり、この制約を付加することにより、論理合成システム上では信号や論理素子等の回路を認識しない状態（以下、ブラックボックスと称する）となり、最適化合成の対象外にできる制約情報であり、主記憶装置８０５から読み出した最下位階層ブロック内オープンパス部分抽出処理１０２にて抽出したオープンパス情報Ａ、オープンパス情報Ｂに対して回路保持制約情報削除の処理を行なう。
【００３３】
同様に、最下位階層ブロック内クローズパス部分論理合成処理１０１、最下位階層ブロック内オープンパス部分抽出処理１０２、最下位階層ブロッククローズパス部分回路保持処理１０３を指定された全ての最下位階層ブロックに対して実行し、全ての最下位階層ブロックの処理終了後、第２階層２０１について処理を行なう。
【００３４】
次に、中間階層ブロック６００に対し論理データを結合させる処理を行ない、１つの論理データとして認識させ、中間結合論理データ３００として最適化合成処理を実行する。この時、中間階層ブロック６００の下位階層ブロック６０５，６０６内のクローズパスについては回路保持制約情報が付加されており、最適化対象外とする機能を有しているため、これにより論理合成の対象外とすることができる。
【００３５】
また、中間階層ブロッククローズパス部分論理合成処理１０４では中間階層ブロック６００を１つの論理データとして結合することにより、各合成処理毎の論理規模を個別にて見積もることができ、各中間階層ブロックに最適な仮想配線長を使用することができるため、ディレイ算出時の負荷精度の向上を可能とした。中間階層ブロック６００の最適化合成処理結果については、外部記憶装置８０６及びディスプレイ８０２へ出力する。
【００３６】
次に、中間階層ブロック内オープンパス部分抽出処理１０５において、中間階層ブロック６００の入力エッジ情報を使用し、ファンアウトトレースを実行し、オープンパス６０２，６０４の全ての信号名と論理素子情報として、リファレンス名、セル名、インスタンス名、モジュール名、ネット名、ライブラリ名を抽出し主記憶装置８０５へ一時的に格納する（以下、オープンパス情報Ｃと称する）。同様に、中間階層ブロック６００の出力エッジ情報を使用してファンイントレースを実行し、オープンパス６０３，６０４の全ての信号名と論理素子情報として、リファレンス名、セル名、インスタンス名、モジュール名、ネット名、ライブラリ名を抽出し主記憶装置８０５へ一時的に格納する（以下、オープンパス情報Ｄと称する）。
【００３７】
次に、中間階層ブロック内クローズパス部分回路保持処理１０６において、中間階層ブロック６００内の全ての信号と論理素子情報に回路保持制約情報を付加し、主記憶装置８０５から読み出した中間階層ブロック内オープンパス部分抽出処理１０５にて抽出したオープンパス情報Ｃ、オープンパス情報Ｄに対して回路保持制約情報削除の処理を行なう。
【００３８】
同様に、中間階層ブロック内クローズパス部分論理合成処理１０４、中間階層ブロック内オープンパス部分抽出処理１０５、中間階層ブロック内クローズパス部分回路保持処理１０６を、指定された全ての中間階層ブロックに対して実行し、全ての中間階層ブロックの処理終了後、最上位階層の１階層下の中間階層まで同様の処理を繰り返し実行する。
【００３９】
第１階層２００以下の全ての階層に対して一連の処理が終了した後、最上位階層ブロック７００に対して処理を行なう。
【００４０】
次に、最上位階層ブロック内クローズパス部分論理合成処理１０７において、最上位階層ブロック７００に関しても論理データを結合させる処理を行ない、１つの論理データと認識させ、最上位結合論理データ３０１として最適化処理を実行する。この時、最上位階層ブロック７００の下位階層ブロック７０２，７０３内のクローズパスについては回路保持制約情報が付加されており、最適化対象外とする機能を有しているため、これにより論理合成の対象外とすることができる。また、最上位階層ブロック内クローズパス部分論理合成処理１０７では、最上位階層ブロック７００を１つの論理データとして結合することにより、最上位階層ブロック７００の論理規模を見積もることができるため、論理規模に最適な仮想配線長を使用することができ、ディレイ値算出時の負荷精度の向上を可能とした。
【００４１】
最上位階層ブロック７００の最適化合成処理終了後、階層型論理合成処理結果情報１０８として、最上位階層ブロック７００からの論理規模、タイミング結果等の最適化合成結果を外部記憶装置８０６及びディスプレイ８０２へ出力する。
【００４２】
本発明は前述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【００４３】
以上説明したように、本発明は、次のような構成、機能乃至作用を備えたものを特徴とする。即ち、ＨＤＬを使用し設計した、多階層化された複数のブロックで構成された回路を論理合成システムを用いて各ブロック間のディレイ値を最適化する階層型論理合成方法において、最下位階層ブロック内のフリップフロップ間（クローズパス）のみを外部より与えられた実行制御ファイルを元に最適化合成を実行しタイミングとゲート規模の違反を無くす。また、入力エッジ〜フリップフロップ間（入力オープンパス）、フリップフロップ〜出力エッジ間（出力オープンパス）は最適化合成を実行せず、クローズパスの最適化合成終了後はクローズパスの回路に対してのみ新たな処理を実行出来ない回路保持制約情報を付加し、最下位階層ブロック内のクローズパスの回路を保存し、指定された全ての最下位階層ブロックに対して同様の処理を実行する。
【００４４】
指定された全ての最下位階層ブロックの最適化合成終了後、階層を１つ上げた中間階層ブロックの処理を行なう。次に、中間階層ブロックに対して論理データを結合する処理を行ない、１つの論理データとして認識させる事により最適な仮想配線長を使用でき負荷精度の向上を可能とするものである。また、１つの論理データとして認識させることにより上位階層から各最下位階層ブロックの出力オープンパスと入力オープンパスをクローズパスと認識でき、最下位階層ブロック内のクローズパスは回路保持制約情報が付加されているため、最適化合成対象外となり前述と同様に中間階層ブロックのクローズパスのみ最適化合成の実行とクローズパス回路保持の処理を行なうことができる。
【００４５】
指定された全ての中間階層ブロックのクローズパス最適化合成とクローズパス回路保持処理の終了後、最上位階層ブロックまで同様の処理を行なう。
【００４６】
【発明の効果】
本発明によれば、大規模多階層論理データの最上位ブロックに対して周波数等の合成目標性能を与え、各ブロック個別に合成目標性能を与えることなく、全てのブロックに対して最適化合成を実行することができる。
【００４７】
また、各ブロックにてクローズパスを抽出し、クローズパス部分のみ最適化合成を実行することで処理時間の短縮ができ、各階層の論理データを個別に結合し結合論理データを作成することで精度の高い仮想配線長を見積り、タイミング精度の向上を行なうことができる。
【図面の簡単な説明】
【図１】本発明の実施形態に係る階層型論理合成手法の一例を示すフローチャートである。
【図２】ＨＤＬを使用して設計を行う場合の階層構成図の一例を示す概念図である。
【図３】本発明の実施形態に関する階層構成図における階層結合の一例を示す概念図である。
【図４】本発明の実施形態に関する階層構成図における階層情報を格納する論理階層情報テーブルの一例を示す概念図である。
【図５】本発明の実施形態に関する階層構成図における最下位階層ブロックの詳細構成を示す図である。
【図６】本発明の実施形態に関する階層構成図における中間階層ブロックの詳細構成を示す図である。
【図７】本発明の実施形態に関する階層構成図における最上位階層ブロックの詳細構成を示す図である。
【図８】本発明の実施形態に関する階層型論理合成装置の構成例を示すブロック図である。
【符号の説明】
１００〜１０８　階層型論理合成プログラムフローチャート内機能処理部位
２００　階層構成図第１階層
２０１　階層構成図第２階層
２０２　階層構成図第３階層
３００　中間結合論理データ
３０１　最上位結合論理データ
４００　論理階層情報テーブル
５００　最下位階層ブロック
５０１　クローズパス
５０２〜５０４　オープンパス
５１０　クロックピン
５２０〜５２１　フリップフロップ
６００　中間階層ブロック
６０１　クローズパス
６０２〜６０４　オープンパス
６０５〜６０６　下位階層ブロック
７００　最上位階層ブロック
７０１　クローズパス
７０２〜７０３　下位階層ブロック
８００　システムバス
８０１　マイクロプロセッサ
８０２　ディスプレイ
８０３　キーボード
８０４　ポインティングデバイス
８０５　主記憶装置
８０６　外部記憶装置
【図１】
2004013248.tif 000003
【図２】
2004013248.tif 000004
【図３】
2004013248.tif 000005
【図４】
2004013248.tif 000006
【図５】
2004013248.tif 000007
【図６】
2004013248.tif 000008
【図７】
2004013248.tif 000009
【図８】
2004013248.tif 000010