(57)【特許請求の範囲】
【請求項１】
ハードウェア記述言語で入力された仕様に基づき合成ルールに従って自動論理合成を行なう論理合成システムにおいて、
ハードウェア記述により合成最適化して得られたネットリストをテクノロジライブラリにマッピングされたゲートレベルの回路図としてディスプレイ画面にグラフィック表示する回路図表示手段と、
該表示された回路から入力装置を介して選択された部分回路または部分経路を他と区別して表示する範囲処理手段と、
前記入力装置を介して選択された部分回路または部分経路を多重化して表示する多重化処理手段と、
多重化された部分回路または部分経路を含む前記回路のうち前記入力装置によって最適化が選択された範囲に対して、制約条件設定部に設定された面積や時刻等の遅延の制約条件にしたがって遅延最適化を行う最適化処理手段と、
最適化処理対象として複数の部分回路もしくは部分経路が選択された場合、その部分回路または部分経路に対して遅延最適化を行うための優先度を付す優先順位処理手段と、を具備することを特徴とする論理合成システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、論理合成システムならびに同システムにおける遅延最適化方法に関する。
【０００２】
【従来の技術】
ＣＡＤ（Computer  Aided  Design）によるディジタル論理回路の設計において論理合成を行なう場合、与えられた論理機能を実現するために、その論理回路における信号の伝播時間を最小化するように遅延最適化処理がなされる。
従来の論理合成システムにおける遅延最適化処理は、例えば特開平６−３１４３１３号に開示されている。ここにに開示された遅延最適化方法は、全体回路に対して制約条件を設定することによって、遅延改善度およびコスト要因を含む複数の評価項目から算出される評価値を最大とするように適用対象ブロックと適用ルールを選択する構成とし、チップ面積増加等のコスト要因を不必要に増大することなく遅延最適化を実行するものである。
【０００３】
【発明が解決しようとする課題】
しかしながら上述した従来技術によれば、制約条件を人手でテキスト形式により与える必要があり、制約を与えるのが容易でないために次のような問題があった。すなわち、ハードウェア記述言語（ＨＤＬ）によって自動合成された回路について共有化されている回路の一部の経路に遅延改善を行いたい経路が存在する場合、その経路を多重化してその一方の経路のみを遅延最適化することによって、ＬＳＩ設計者が望んでいるような高速な回路を実現可能である。しかしながら、従来の論理合成システムによってそのような高速な回路を実現することは容易でなかった。その理由は、ＨＤＬから自動合成した回路に対して、共有化された部分回路を容易に多重化する手段と、その部分経路、または、部分回路のみを容易に遅延最適化指定する手段が存在しなかったためである。
また、合成した回路のある一部の経路を優先して要求時刻に収まるように遅延最適化したい場合があっても、その経路を簡単に指定して優先的に遅延最適化する手段がなかった。
【０００４】
本発明は上記事情に鑑みてなされたものであり、ＨＤＬから自動合成・最適化したＬＳＩ回路をディスプレイ上にグラフィック表示することで人手指定により部分回路や部分的な経路の遅延最適化を行なう論理合成システムならびに同システムにおける遅延最適化方法を提供することを目的とする。また、回路が共有化されて交差している経路については、多重化することによって最適化の必要な部分についてのみ遅延最適化を行なう論理合成システムならびに同システムにおける遅延最適化方法を提供することも目的とする。更に、遅延制約の設定によって、ある特別な経路が優先的に制約が収まるように遅延最適化したい場合に、その部分経路を選んで優先的に遅延最適化を行なう論理合成システムならびに同システムにおける遅延最適化方法を提供することも目的とする。
【０００５】
【課題を解決するための手段】
本発明の論理合成システムにおける遅延最適化方法は、ハードウェア記述言語で入力された仕様に基づき合成ルールに従って自動論理合成を行なう論理合成システムにおいて、ネットリストをテクノロジライブラリにマッピングされたゲートレベルの回路図としてディスプレイ画面上にグラフィック表示し、表示された回路全体から、入力装置によって選択された部分回路または部分経路を他と区別して表示し、ここで表示された部分回路または部分経路のうち前記入力装置により多重化が指定された部分回路または部分経路を多重化して表示し、多重化して表示された部分回路や部分経路のうち前記入力装置によって最適化が選択された範囲に対して、制約条件設定部に設定された面積や時刻等の遅延の制約条件にしたがって遅延最適化を行なうことを特徴とする。また、多重化された部分回路や部分経路から最適化対象として複数が選択されたとき、オペレータの指定にしたがって優先順位処理部から出力された優先度に従い遅延最適化を行なうことも特徴とする。
【０００６】
また、本発明の論理合成システムは、ハードウェア記述言語で入力された仕様に基づき合成ルールに従って自動論理合成を行なう論理合成システムにおいて、ハードウェア記述により合成最適化して得られたネットリストをテクノロジライブラリにマッピングされたゲートレベルの回路図としてディスプレイ画面にグラフィック表示する回路図表示手段と、表示された回路から入力装置を介して選択された部分回路または部分経路を他と区別して表示する範囲処理手段と、ここで表示される部分回路または部分経路のうち前記入力装置によって多重化が指定された部分回路または部分経路を多重化して表示し、多重化して表示された部分回路や部分経路のうち前記入力装置によって最適化が選択された範囲に対して、制約条件設定部に設定された面積や時刻等の遅延の制約条件にしたがって遅延最適化を行なう最適化処理手段と、最適化処理に対象として複数の部分回路もしくは部分経路が選択された場合にその部分回路または部分経路に対して遅延最適化を行なうための優先度を付す優先順位処理手段とを具備することを特徴とする。
上記構成により、ＨＤＬから自動合成・最適化したＬＳＩ回路をディスプレイ上にグラフィック表示することで人手指定により部分回路や部分的な回路の遅延最適化を行ない、また、回路が共有化されて交差している経路については、多重化することによって最適化の必要な部分についてのみ遅延最適化を行ない、更に、遅延制約の設定によって、ある特別な経路が優先的に制約が収まるように遅延最適化したい場合に、その部分経路を選んで優先的に遅延最適化を行なう論理合成システムならびに同システムにおける遅延最適化方法を提供することができる。
【０００７】
【発明の実施の形態】
図１は本発明の論理合成システムの実施形態を示すブロック図である。本発明の論理合成システム１は、マウスやキーボードなどのＧＵＩ（Graphical User Interface）手段から成る入力装置部２と、ＨＤＬから合成、最適化して得られた入力ネットリスト５をテクノロジライブラリ４にマッピングされた回路としてディスプレイ上に表示する回路図表示部３と、合成された回路を最適化する最適化処理部６と、面積の制約や遅延の制約条件を入力する制約条件設定部７と、回路図表示部３によって出力される各種リストを生成出力する出力処理部８を含む。
回路図表示部３は、回路図表示手段３１と、範囲処理手段３２と、多重化処理手段３３と、優先順位処理手段３４を備えている。回路図表示手段３１は、入力ネットリスト５や、入力装置部２によって入力処理した後の回路や、最適化処理後の回路をテクノロジライブラリ４にマッピングされたゲートレベルの回路図として、ディスプレイ上にグラフィカルに表示される。範囲処理手段３２は、表示された回路からマウスなどで部分回路や部分経路を選び、特徴をつけてグラフィカルに表示する。多重化処理手段３３は、表示された回路で共有化された（出力に２分岐以上もつ）回路に対して、マウスなどで回路を選んで多重化した場合にその多重化した回路をグラフィカルに表示する。優先順位処理手段３４は、複数の部分回路または経路を選んだ場合に、その部分回路または経路に対して、遅延最適化をするための優先度を付けるものである。最適化処理部６は、回路図表示部で指定を受けた部分経路や部分回路について、面積の制約や遅延の制約などの制約条件設定部７の示す条件に従って、遅延最適化を行う最適化処理手段を備えている。出力処理部８は、出力ネットリスト８１、範囲指定リスト８２、多重化指定リスト８３、優先順位指定リストを出力する。
【０００８】
図２、図３は、図１に示す本発明実施形態の動作を説明するために引用した図であり、それぞれ、全体の動作手順を示すフローチャート、遅延最適化処理の詳細動作手順を示すフローチャートである。図４乃至図８もまた本発明の実施形態の動作を説明するために引用した図であり、いずれもモデル回路例を示す。図９も本発明実施形態の動作を説明するために引用した図であり、多重化指定リスト８３、範囲指定リスト８２、優先順位指定リスト８４のそれぞれにおける内容が示されている。
以下、図２乃至図９を参照しながら図１に示す本発明実施形態の動作について詳細に説明する。
【０００９】
まず、回路図表示手段３１は、ＨＤＬから合成、最適化した入力ネットリスト１をディスプレイ上にグラフィカルに表示する（図２のステップＡ１及びＡ２）。この時、遅延解析処理を行なう（ステップＡ１４）。ここでは入力ネットリスト１に対して、テクノロジライブラリ４から各回路素子の遅延情報を取り込むことにより遅延解析が行なわれる。回路図表示手段３１は遅延解析した結果の数値も同時にディスプレイ上に表示する。多重化処理手段３３は、例えば、図４に示すゲートC002等ディスプレイ上の共有された部分回路を多重化する場合に、その部分回路を入力装置部２で指定すると（ステップＡ３）、指定した部分回路のゲート名を多重化指定リスト８１に追加していく（ステップＡ４）。さらに、多重化処理手段３３は、指定した部分回路の多重化を行い（ステップＡ５）、多重化処理後の回路を回路図表示手段３１に渡し、ディスプレイ上に多重化後の回路を再表示する。
図４〜６に示す回路の例は、この時の処理の様子を表すもので、図中、A〜Fは入力端子、XYZは出力端子、C001〜C005は各種ゲートを示す。図４に示すような初期回路について、ゲートC002からC004に向かう経路を多重化する場合に、多重化を行う始点のゲートC002とその出力先のゲートC004をマウス等ＧＵＩ装置によって選び（図５の３１１）、マウスをドラッグして図５の３１２の矢印向きに移動させることによってディスプレイ上に多重化した回路が表示される。多重化後の回路は、図６のように、ゲートC002を多重化して新たにゲートC002_1が発生する。この時、多重化指定リスト８１には、図9の（ａ）に示すように多重化するゲート名が追加される。多重化指定リスト８１の詳細は、多重化指定した始点になるゲート名と、多重化したい出力先のゲート名との順のレコードからなり、多重化指定されるたびに多重化指定リスト８１に追加される。図９（ａ）に示す多重化リスト例は、多重化指定した始点のゲート名C002と出力先ゲート名C004が多重化指定リスト８１に追加されている様子を示す。
【００１０】
範囲処理手段３２は、同様に入力装置２でその範囲となる端子やゲートを選択することにより、最適化する範囲を表示する。さらに、範囲処理手段３２は、この時、範囲指定リスト８２の範囲内にある入出力端子、ゲート名をすべて追加していく（図２のステップＡ６、Ａ７、Ａ８）。図７に示すように、入力端子B,C,E,F、ゲートC002_1, C004、出力端子Ｚの部分回路３２１の遅延最適化を行う場合、その範囲をマウスにより指定すると、範囲指定リスト８２には、図９（ｂ）に示したように追加されていく。範囲指定リスト８２は、遅延最適化のために選んだ範囲をなぞって、先頭に記すリスト番号に続いて、始点端子または始点ゲート、中間ゲート、終点端子または終点ゲートをすべて記したものである。図９（ｂ）の例は、遅延最適化に選んだ範囲について、リスト番号00000、始点端子B, 中間ゲートC002_1, 始点端子C, 中間ゲートC004, 始点端子E, F, 終点端子Zの順になぞって範囲指定リスト８２に追加したものである。以上のように指定した回路は、再度、回路図表示手段３１によってディスプレイ上に表示される（図２のステップＡ２）。
指定が終了すると（図２のステップＡ９）、制約条件７に従って、最適化処理部６により、遅延最適化が行われる。制約条件７には、フリップフロップのクロックサイクルや、入力端子への到着時刻と出力端子への要求時刻が指定されているものとする。
【００１１】
最適化処理部６では、（１）指定された最適化範囲の回路(図７の３２１)、（２）指定された最適化範囲の経路に交わる経路を含む部分回路(図７の３２２と３２３で示す回路)の範囲について、制約条件７にしたがって、遅延最適化される（図２ステップＡ１１）。ここでの最適化は、ブロック置換え、バッファ挿入、段数削減処理、ファンアウト調整や、１９９１年ＩＷＬＳの論文Performance Enhancement through the Generalized Bypass Transformに記されているシャノン展開によるヒューリスティックな最適化手法を行うものとする。
図３に遅延最適化処理時の動作がフローチャートで示されている。まず、（１）で指定された最適化範囲を遅延最適化する（図３のステップＢ１）。遅延最適化後、更に周辺部分の遅延解析も行う。すなわち上述した（１）と（２）を含めた入出力間の遅延解析を行う（図３のステップＢ２：インクリメンタル遅延解析）。その解析結果にもとづいて、（１）を遅延最適化したことによって、（２）の範囲が、もともと要求時刻を満たしていたのに、要求時刻を満たさなくなった場合、あるいはもともと要求時刻を越えていた時等遅延がさらに悪化した場合には（ステップＢ３）、この時点での回路をバックアップ（ステップＢ５）として保存しておき（ステップＢ４）、（１）と（２）の範囲も含めて上述した遅延を改善するための最適化を行う（ステップＢ６）。ただし、このときの遅延最適化は、（１）の範囲を優先して行う処理であり、（２）の範囲について、もともと要求時刻を満たしていたのに、要求時刻を満たさなくなった場合、あるいはもともと要求時刻を越えていた時等遅延がさらに悪化した場合にその範囲の遅延を悪化させない程度の処理で、かつ、（１）の範囲について、もっとも遅延が改善される回路を合成回路として選ぶ処理である。遅延最適化の結果、（１）の範囲の遅延が悪化した場合（ステップＢ７）は、バックアップ回路に戻す（ステップＢ８）。
【００１２】
さらに、優先順位処理部３４は、複数の経路を指定して優先順位をつけて最適化する場合に、遅延解析結果（図２ステップＡ１４）をもとにオペレータが遅延最適化したい強度の順番を指定する。この時に、優先順位処理部３４は、指定した優先順位を次の例に従って、優先順位指定リスト８４を出力する。図７に示すような部分回路３２１に加えて、入力端子B, C、D、ゲートC002, C003、出力端子Yの部分回路３２２の最適化も行いたい場合、前の最適化状態での範囲指定リスト８２に、リスト番号00001、始点端子B, 中間ゲートC002, 始点端子C, 中間ゲートC003, 始点端子D, 終点端子Yの順で追加される（図９（ｂ））。リスト番号は、優先順位指定をするために使用する。
今、リスト番号00001の最適化範囲よりリスト番号00000の最適化範囲を優先して最適化するように優先順位指定すると、図９（ｃ−１）に示すように00001<00000が優先順位リストに入れられる。また、リスト番号00000と00001を同じ優先度として指定した場合は、図９（ｃ−２）のように00000=00001と入れられる。
また、図９（ｃ−３）は、複数の範囲を優先順位として指定した場合におけるリスト記述の一例である。最適化処理部6では、指定された優先順位に従って、上述したブロック置換え、バッファ挿入、段数削減処理、ファンアウト調整や、シャノン展開によるヒューリスティックな最適化手法を実行する。これら最適化手法については従来周知であり、また、本発明の主旨から逸脱するためここでの詳細は述べない。
以上の一連の遅延最適化処理が終了すると、処理結果をディスプレイ上に回路表示する。図８は、範囲指定回路について、ブロック置換えとバッファ挿入によって最適化された例である。出力処理部８では、多重化指定リスト８３、範囲指定リスト８２及び遅延最適化後のネットリスト８１を出力する（図２のステップＡ１２及びＡ１３）。
【００１３】
以上説明のように本発明は、ネットリストをテクノロジライブラリにマッピングされたゲートレベルの回路図としてディスプレイ画面にグラフィック表示し、表示された回路からＧＵＩを介し部分回路または部分経路を選択して他と区別して表示し、ここで表示された部分回路または部分経路で出力に２分岐以上持つものに対し前記ＧＵＩを介して選択し多重化したときに、その多重化した部分回路または部分経路を他とは区別して表示し、前記指定を受けた部分回路や部分経路に対して面積や時刻等遅延の制約を設定することにより遅延最適化を行なうものであり、また、複数の部分回路もしくは部分経路を選択した場合、その部分回路または部分経路に対して遅延最適化を行なうための優先度を付し、この優先度に従い遅延最適化を行なうものである。このことにより、ＨＤＬから自動合成・最適化したＬＳＩ回路をディスプレイ上にグラフィック表示することで人手指定により部分回路や部分的な経路の遅延最適化を行ない、また、回路が共有化されて交差している経路については、多重化することによって最適化の必要な部分についてのみ遅延最適化を行ない、更に、遅延制約の設定によって、ある特別な経路が優先的に制約が収まるように遅延最適化したい場合に、その部分経路を選んで優先的に遅延最適化を行なう論理合成システムならびに同システムにおける遅延最適化方法を提供できる。
【００１４】
【発明の効果】
以上説明のように本発明によれば、ディスプレイ上に表示されている回路図からマウス操作で、共有化された部分回路を多重化する手段と、その部分回路を遅延最適化する手段を設けたことにより、ＨＤＬから自動合成した回路について、ある一部の経路がわずかに制約に収まっていない場合、その経路中の共有化されている部分回路をＬＳＩ設計者が多重化指定し、多重化した一部経路のみを遅延最適化できる。
また、ある特定の経路または部分回路を示す情報をデータ構造としてテーブルに格納し、その情報をもとに優先的に遅延最適化する手段を設けたため、遅延最適化したい経路、または、部分回路を指定することで、優先的に特定の経路の遅延最適化を行うことができる。更に、遅延最適化したい特定の経路を指定することで、遅延最適化処理のターンアラウンドタイムの短縮ができる。ターンアラウンドタイム短縮の効果は、大規模回路になればなるほど顕著に現れる。その理由は、指定した部分回路のみを遅延最適化処理するためである。
【図面の簡単な説明】
【図１】  本発明の実施形態を示すブロック図である。
【図２】  本発明の実施形態の動作を説明するフローチャートである。
【図３】  図２に示す最適化処理の具体例をフローチャートで示した図である。
【図４】  本発明実施形態の動作を説明するために引用したモデル回路例１を示す図である。
【図５】  本発明実施形態の動作を説明するために引用したモデル回路例２を示す図である。
【図６】  本発明実施形態の動作を説明するために引用したモデル回路例３を示す図である。
【図７】  本発明実施形態の動作を説明するために引用したモデル回路例４を示す図である。
【図８】 本発明実施形態の動作を説明するために引用したモデル回路例５を示す図である。
【図９】 本発明実施形態の動作を説明するために引用した図であり、多重化指定リスト、範囲指定リスト、優先順位指定リストのそれぞれにおける内容を示す図である。
【符号の説明】
１…論理合成システム、２…入力装置部、３…回路図表示部、４…テクノロジライブラリ、５…入力ネットリスト、６…最適化処理部、７…制約条件設定部、８…出力処理部、３１…回路図表示手段、３２…範囲処理手段、３３…多重化処理手段、３４…優先順位処理手段、８１…出力ネットリスト、８２…範囲指定リスト、８３…多重化指定リスト、８４…優先順位指定リスト
【図１】
0003693846.tif 000002
【図２】
0003693846.tif 000003
【図３】
0003693846.tif 000004
【図４】
0003693846.tif 000005
【図５】
0003693846.tif 000006
【図６】
0003693846.tif 000007
【図７】
0003693846.tif 000008
【図８】
0003693846.tif 000009
【図９】
0003693846.tif 000010