説明

ホールドエラー修正方法、ホールドエラー修正装置及びホールドエラー修正プログラム

【課題】ホールドエラーをより確実に修正することが可能なホールドエラー修正方法、ホールドエラー修正装置及びホールドエラー修正プログラムを提供する。
【解決手段】ホールドエラー修正方法は、レイアウトデータ53に対しタイミング解析を行ってタイミングレポート54を生成し、ホールドエラーセルとは別のセルを置換元セルに選択し、置換元セルよりも駆動能力が小さいセルを置換先セルに選択し、レイアウトデータ53において置換元セルを置換先セルに置換し、置換により生成された空き領域に、ホールドエラーセルのホールドエラーを修正するためのホールドバッファを挿入して、挿入したレイアウトデータを生成するものである。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ホールドエラー修正方法、ホールドエラー修正装置及びホールドエラー修正プログラムに関し、特に、ホールドバッファを挿入してホールドエラーを修正するホールドエラー修正方法、ホールドエラー修正装置及びホールドエラー修正プログラムに関する。
【背景技術】
【0002】
半導体集積回路のレイアウト設計では、タイミング解析によりタイミングエラーを確認しながら回路の配置配線が行われており、近年の半導体集積回路の微細化、複雑化に伴い、タイミング制約を満たすように配置配線することが困難になってきている。
【0003】
タイミング解析では、供給されるデータがクロックのどれくらい前から確定されるべきかを示すセットアップタイムと、供給されるデータがクロックのどれくらい後まで保持されるべきかを示すホールドタイムとについて、タイミング制約を満足するかどうか解析が行われる。セットアップタイムのタイミング制約が満足されないエラーをセットアップエラーといい、ホールドタイムのタイミング制約が満足されないエラーをホールドエラーという。なお、セットアップエラーが発生しているパスをセットアップエラーパス、セットアップエラーパスが含まれるセルをセットアップエラーセル、ホールドエラーが発生しているパスをホールドエラーパス、ホールドエラーパスが含まれるセルをホールドエラーセルという。
【0004】
図12のタイミングチャートは、データ、クロックとセットアップタイム、ホールドタイムとの関係を示している。
【0005】
図12(a)に示されるように、セットアップタイムは、データの確定時とクロックの立ち上がりエッジとの間の時間である。例えば、セットアップタイムのタイミング制約をST1とすると、ST1よりも前にデータが確定しているため、タイミング制約を満たしている。タイミング制約ST1とセットアップタイムとの差であるST2が、セットアップタイムの余裕(マージン)である。また、セットアップタイムのタイミング制約をST3とすると、ST3よりも後にデータが確定しているため、タイミング制約を満たさず、セットアップエラーとなる。なお、ST1よりもST3の方が制約を満たすことが難しいため、ST3は、ST1よりも制約が厳しいことになる。
【0006】
図12(b)に示されるように、ホールドタイムは、クロックの立ち上がりエッジとデータの終了時との間の時間である。例えば、ホールドタイムのタイミング制約をHT1とすると、HT1よりも後にデータが終了しているため、タイミング制約を満たしている。タイミング制約HT1とホールドタイムとの差であるHT2が、ホールドタイムの余裕(マージン)である。また、ホールドタイムのタイミング制約をHT3とすると、HT3よりも前にデータが終了しているため、タイミング制約を満たさず、ホールドエラーとなる。なお、HT1よりもHT3の方が制約を満たすことが難しいため、HT3は、HT1よりも制約が厳しいことになる。
【0007】
このようなセットアップエラー、ホールドエラーを修正する方法が提案されており、従来のホールドエラー修正方法として、例えば、特許文献1、2が知られている。なお、セルの最適化方法として、特許文献3,4も知られている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2010−146047号公報
【特許文献2】特開2003−330986号公報
【特許文献3】特開2001−210721号公報
【特許文献4】特開平7−94586号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
特許文献1,2に記載された従来のホールドエラー修正方法では、タイミング解析によりホールドエラーが検出されたパスに対しホールドバッファを挿入することで、データを遅延させ、ホールドタイムを満たすように修正している。なお、ホールドバッファとは、ホールドエラーを修正するための遅延回路である。
【0010】
しかし、このようなホールドエラーパスのみを修正する方法では、修正箇所が局所的に混雑する傾向にあり、ホールドバッファが大量に挿入されて挿入可能な領域が不足すると、それ以上、ホールドバッファが挿入できない場合ある。
【0011】
したがって、従来のホールドエラー修正方法では、ホールドエラーが検出されたパスにのみに着目しホールドバッファを挿入することから、領域不足によりホールドバッファが挿入できず、ホールドエラーを十分に修正することができないという問題があった。
【課題を解決するための手段】
【0012】
本発明に係るホールドエラー修正方法は、複数のセルが配置配線されたレイアウトデータと、前記セルが定義されたライブラリデータとを記憶部に記憶し、前記レイアウトデータに基づきタイミング解析を行い、解析結果であるタイミングレポートデータを前記記憶部に記憶し、前記タイミングレポートデータを参照して特定されるホールドエラーセルとは別のセルを置換元セルに選択し、前記ライブラリデータを参照して前記置換元セルよりも駆動能力が小さいセルを置換先セルに選択し、前記レイアウトデータにおいて前記置換元セルを前記置換先セルに置換して、置換したレイアウトデータを前記記憶部に記憶し、前記置換されたレイアウトデータにおいて前記置換により生成された空き領域に、前記ホールドエラーセルのホールドエラーを修正するためのホールドバッファを挿入して、挿入したレイアウトデータを前記記憶部に記憶するものである。
【0013】
本発明に係るホールドエラー修正プログラムは、コンピュータにホールドエラー修正処理を実行させるホールドエラー修正プログラムであって、前記ホールドエラー修正処理は、複数のセルが配置配線されたレイアウトデータと、前記セルが定義されたライブラリデータとを記憶部に記憶し、前記レイアウトデータに基づきタイミング解析を行い、解析結果であるタイミングレポートデータを前記記憶部に記憶し、前記タイミングレポートデータを参照して特定されるホールドエラーセルとは別のセルを置換元セルに選択し、前記ライブラリデータを参照して前記置換元セルよりも駆動能力が小さいセルを置換先セルに選択し、前記レイアウトデータにおいて前記置換元セルを前記置換先セルに置換して、置換したレイアウトデータを前記記憶部に記憶し、前記置換されたレイアウトデータにおいて前記置換により生成された空き領域に、前記ホールドエラーセルのホールドエラーを修正するためのホールドバッファを挿入して、挿入したレイアウトデータを前記記憶部に記憶するものである。
【0014】
本発明に係るホールドエラー修正装置は、複数のセルが配置配線されたレイアウトデータと、前記セルが定義されたライブラリデータとを記憶する記憶部と、前記レイアウトデータに基づきタイミング解析を行い、解析結果であるタイミングレポートデータを前記記憶部に記憶するタイミング解析部と、前記タイミングレポートデータを参照して特定されるホールドエラーセルとは別のセルを置換元セルに選択する置換元セル選択部と、前記ライブラリデータを参照して前記置換元セルよりも駆動能力が小さいセルを置換先セルに選択する置換先セル選択部と、前記レイアウトデータにおいて前記置換元セルを前記置換先セルに置換して、置換したレイアウトデータを前記記憶部に記憶するセル置換部と、前記置換されたレイアウトデータにおいて前記置換により生成された空き領域に、前記ホールドエラーセルのホールドエラーを修正するためのホールドバッファを挿入して、挿入したレイアウトデータを前記記憶部に記憶するホールドバッファ挿入部と、を備えるものである。
【0015】
本発明では、ホールドエラーが発生したホールドエラーセルとは別のセルを、駆動能力の小さいセルに置換し、置換により空いた領域にホールドバッファを挿入するため、より確実にホールドエラーを修正することができる。
【発明の効果】
【0016】
本発明によれば、ホールドエラーをより確実に修正することが可能なホールドエラー修正方法、ホールドエラー修正装置及びホールドエラー修正プログラムを提供することができる。
【図面の簡単な説明】
【0017】
【図1】本発明の実施の形態1に係る自動レイアウト装置の構成を示すブロック図である。
【図2】本発明の実施の形態1に係る自動レイアウト処理の動作を示すフローチャートである。
【図3】本発明の実施の形態1に係るホールドエラー修正処理の動作を示すフローチャートである。
【図4】本発明の実施の形態1に係るホールドエラー修正処理の動作を説明するための図である。
【図5】本発明の実施の形態1に係る置換先セル選択処理の動作を示すフローチャートである。
【図6】本発明の実施の形態1に係る置換先セル選択処理の動作を説明するための図である。
【図7】本発明の実施の形態2に係る置換先セル選択処理の動作を示すフローチャートである。
【図8】本発明の実施の形態2に係る置換先セル選択処理の動作を説明するための図である。
【図9】本発明の実施の形態2に係る置換先セル選択処理の動作を説明するための図である。
【図10】本発明の実施の形態3に係る置換先セル選択処理の動作を示すフローチャートである。
【図11】本発明の実施の形態3に係る置換先セル選択処理の動作を説明するための図である。
【図12】セットアップタイムとホールドタイムを説明するための図である。
【発明を実施するための形態】
【0018】
本発明の実施の形態1
以下、図面を参照して本発明の実施の形態1について説明する。まず、図1を用いて、本発明の実施の形態1に係る自動レイアウト装置の構成について説明する。この自動レイアウト装置100は、半導体集積回路におけるレイアウト設計を自動的に行う装置であり、セル(論理回路)を配置配線し、タイミングエラーの最適化を行う。自動レイアウト装置100では、複数の論理回路を含むセルベースにレイアウト設計が行われる。
【0019】
図に示されるように、この自動レイアウト装置100は、制御部1と記憶部2を備えている。例えば、自動レイアウト装置100は、パーソナルコンピュータ等の情報処理装置であり、制御部1は、CPU等の制御装置からなり、記憶部2は、メモリやハードディスク等の記憶装置からなる。そして、記憶部2には制御部1の各ブロックに対応したプログラム(ツール)が格納されており、制御部1が各プログラムを実行することで、各ブロックが実現される。なお、ここでは、制御部1と記憶部2を1つの装置としているが、複数の装置をネットワーク等で接続し構成してもよい。制御部1と記憶部2を別装置としたり、制御部1の各ブロックや記憶部2の各データを複数の装置に分散させてもよい。
【0020】
記憶部2に格納される各データ、制御部1で実行される各ブロック(処理部)について説明する。記憶部2には、ネットリスト51、ライブラリ52、レイアウトデータ53、タイミングレポート54、第1のタイミング制約55a、第2のタイミング制約55b、混雑度計算領域56、混雑度判定基準57、セルリスト58が格納されており、その他、制御部1が使用する各種プログラム及び各種データが格納されている。
【0021】
ネットリスト51は、論理回路の構成や接続関係が記述されたデータであり、論理設計の段階であらかじめ生成されている。
【0022】
ライブラリ52は、論理回路を含むセルに関する情報が定義されたデータであり、各セルのセル名、機能、特性、大きさ、サイズ、端子位置等が記述されている。システムで使用するセルが決まっており、使用可能なセルがあらかじめライブラリ52に格納されている。
【0023】
レイアウトデータ53は、半導体チップのレイアウト面における配置配線データであり、配置されるセルの位置、セル間を接続する配線の位置等が記述されている。
【0024】
タイミングレポート54は、タイミング解析した結果として得られるデータであり、各論理回路を接続するパスについて、遅延時間、制約、余裕等が記述されている。
【0025】
第1のタイミング制約55a、第2のタイミング制約55bは、タイミング解析のために与えられる制約データであり、それぞれセットアップタイム及びホールドタイムのタイミング制約が含まれている。第1のタイミング制約55aは、半導体集積回路のシステムとして要求する通常のタイミング制約である。半導体集積回路のレイアウトを完了するためには、第1のタイミング制約55aを満たさなければならない。また、第2のタイミング制約55bは、通常よりも厳しいタイミング制約であり、後述するように、タイミングに余裕のあるセルを判定するために用いられる。
【0026】
混雑度計算領域56は、セル混雑度(セル占有率)を計算する単位となる領域のデータであり、領域のサイズが記述されている。例えば、領域のサイズは、縦×横の大きさ、面積、形状等である。
【0027】
混雑度判定基準57は、セル混雑度を判定する基準データであり、その領域がセルを修正できる程度に空いているかどうかの基準である。
【0028】
セルリスト58は、複数のセルの一覧データであり、修正可能なセルを選択するために、候補となるセルを記述する。
【0029】
制御部1は、配置配線部20、タイミング解析部30、セットアップエラー修正部40、ホールドエラー修正部10を備えている。なお、制御部1に含まれる各ブロック、ホールドエラー修正部10に含まれる各ブロックは、一例であって、後述の自動レイアウト処理、ホールドエラー修正処理、置換先セル選択処理が実行できれば、その他のブロックにより構成されてもよい。
【0030】
配置配線部20は、論理設計により作成されたネットリスト51に基づき、セルの自動配置配線を行ってレイアウトデータ53を生成する処理部であり、レイアウトツール(プログラム)の実行により実現される。
【0031】
タイミング解析部30は、レイアウトデータ53に基づき、論理回路を含むパスのタイミングを解析してタイミングレポート54を生成する処理部であり、静的タイミング解析(Static Timing Analysis)ツールの実行により実現される。なお、タイミング解析は、配置配線、セットアップエラー修正、ホールドエラー修正の各処理に必要な処理であるため、各処理の一部として実行され、あるいは、各処理からの要求により実行される。
【0032】
セットアップエラー修正部40は、タイミングレポート54によりセットアップエラーが検出された場合に、セットアップエラーを自動的に修正する処理部であり、セットアップエラー修正ツールの実行により実現される。
【0033】
ホールドエラー修正部10は、タイミングレポート54によりホールドエラーが検出された場合に、ホールドエラーを自動的に修正する処理部であり、ホールドエラー修正ツールの実行により実現される。
【0034】
さらに、ホールドエラー修正部10は、ホールドバッファ挿入部11、セル混雑度計算部12、余裕セル判定部13、置換先セル選択部14、セル置換部15を備えている。
【0035】
ホールドバッファ挿入部11は、配置配線されたレイアウトデータ53に対し、ホールドエラーを修正するために、空いている領域にホールドバッファを挿入する処理部であり、ホールドバッファ挿入ツールの実行により実現される。
【0036】
セル混雑度計算部12は、混雑度計算領域56で規定される領域について、当該領域内に配置されている全セルの面積の割合であるセル混雑度を計算する処理部であり、セル混雑度計算ツールの実行により実現される。
【0037】
余裕セル判定部13は、セットアップタイムのタイミング制約を満たすセルが、セットアップタイムに余裕があるかどうか判定する処理部であり、余裕セル判定ツールの実行により実現される。ここでは、第2のタイミング制約55bを満たすかどうかで余裕のあるセルを判定する。すなわち、余裕セル判定部13は、ホールドエラーセルとは別のセルを置換元セルに選択する置換元セル選択部である。
【0038】
置換先セル選択部14は、現在配置されているセルを、どのセルに置換するのか、置換先のセルを選択する処理部であり、置換先セル選択ツールの実行により実現される。ここで、一のセルを他のセルに置換する場合に、置換前に配置されていて置換により他のセルに置き換えられる一のセルを置換元セルといい、置換により一のセルに代わって新たに配置される他のセルを置換先セルという。
【0039】
セル置換部15は、レイアウトデータ53において、置換元セルを置換先のセルに置き換える処理部であり、セル置換ツールの実行により実現される。
【0040】
次に、図2のフローチャートを用いて、本発明の実施の形態1に係る自動レイアウト処理について説明する。この処理は、自動レイアウト装置100により実行される処理である。
【0041】
図に示されるように、本実施形態の自動レイアウト処理が開始されると、まず、セルの配置配線が行われる(S101)。すなわち、配置配線部20は、ネットリスト51及びライブラリ52を記憶部2から取得し、ネットリスト51に従って、ライブラリ52に定義されたセルの配置及びセル間の配線を行い、配置配線されたレイアウトデータ53を生成して記憶部2に格納する。
【0042】
次いで、生成されたレイアウトデータ53に対しタイミング解析が行われる(S102)。すなわち、タイミング解析部30は、配置配線がなされたレイアウトデータ53及び第1のタイミング制約55aを記憶部2から取得し、第1のタイミング制約55aのもとで、レイアウトデータ53に定義された全パスの遅延値を算出してタイミング解析を行い、タイミングレポート54を生成して記憶部2に格納する。ここでは、まずセットアップエラーを解消するために、セットアップタイムのタイミングを解析する。
【0043】
次いで、タイミング解析されたレイアウトデータ53に対しセットアップエラーの修正が行われる(S103)。すなわち、セットアップエラー修正部40は、レイアウトデータ53、ライブラリ52及びタイミングレポート54を記憶部2から取得し、タイミングレポート54でセットアップエラーが発生している場合、セットアップタイムのタイミング制約を満たすようにセルの配置配線を変更し、セットアップエラー修正後のレイアウトデータ53を記憶部2に格納する。例えば、セットアップエラーが発生しているパスを含むセルについて、ライブラリ内の駆動能力の高いセルに置換することで、データ伝達時間を速め、セットアップエラーを解消する。なお、さらにタイミング解析を行って、セットアップエラーの解消を確認するとともに、次のステップでホールドエラーを解消するために、ホールドタイムのタイミングを解析する。
【0044】
次いで、タイミング解析されたレイアウトデータ53に対しホールドエラー修正処理が実行される(S104)。すなわち、ホールドエラー修正部10は、セットアップエラーが修正されたレイアウトデータ53、ライブラリ52及びタイミングレポート54を記憶部2から取得し、タイミングレポート54でホールドエラーが発生している場合、ホールドタイムのタイミング制約を満たすようにセルの配置配線を変更し、ホールドエラー修正後のレイアウトデータ53を記憶部2に格納する。ホールドエラーの修正が終了すると、自動レイアウト処理が終了する。
【0045】
ここで、このホールドエラー修正処理(S104)の詳細について、図3のフローチャートを用いて説明する。図に示されるように、ホールドエラー修正処理が開始されると、まず、レイアウトデータ53にホールドバッファが挿入される(S201)。すなわち、ホールドバッファ挿入部11は、レイアウトデータ53、ライブラリ52及びタイミングレポート54を記憶部2から取得し、タイミングレポート54でホールドエラーが発生している場合、ホールドバッファを挿入し、ホールドバッファ挿入後のレイアウトデータ53を記憶部2に格納する。ここでは、レイアウトデータ53から配置可能な箇所を検出して、ホールドバッファを配置し、ホールドエラーが発生しているパスにホールドバッファを挿入接続することで、データを遅延させ、ホールドエラーの解消を図る。特に、本実施形態では、後述のセル置換(S209)により空いた領域にホールドバッファを配置する。
【0046】
次いで、ホールドバッファが挿入されたレイアウトデータ53に対しタイミング解析が行われる(S202)。すなわち、ホールドバッファの挿入によりホールドエラーが解消されているかどうか確認するために、ホールドバッファ挿入部11は、レイアウトデータ53及び第1のタイミング制約55aを記憶部2から取得し、第1のタイミング制約55aのもとで、レイアウトデータ53のタイミング解析を行い、タイミングレポート54を生成して記憶部2に格納する。なお、セットアップエラーはすでに解消しているため、ここでは、ホールドタイムのタイミングを解析する。
【0047】
次いで、タイミングレポート54にホールドエラーが存在するかどうか判定される(S203)。すなわち、ホールドバッファ挿入部11は、タイミングレポート54を記憶部2から取得し、タイミングレポート54の全パスについて、ホールドタイムの第1のタイミング制約55aを満たすかどうか判定し、全てのパスがタイミング制約を満たしていればホールドエラーは無いと判定し、パスが一つでもタイミング制約を満たしていなければホールドエラーは有ると判定する。
【0048】
S203において、ホールドエラーが無いと判定された場合、ホールドバッファの挿入により、セットアップエラー及びホールドエラーが解消したことになるため、ホールドエラー修正処理が終了し、自動レイアウト処理(図2)も終了する。
【0049】
また、S203において、ホールドエラーが有ると判定された場合、ホールドバッファが挿入されたレイアウトデータ53に対してセル混雑度(セル占有率)が計算される(S204)。すなわち、セル混雑度計算部12は、レイアウトデータ53、ライブラリ52、混雑度計算領域56、混雑度判定基準57を記憶部2から取得し、レイアウトデータ53についてのセル混雑度を計算し、セル混雑度を記憶部2に格納する。例えば、混雑度計算領域56等とともにセル混雑度を記憶する。
【0050】
つまり、本実施形態では、ホールドバッファを挿入するためにセルを置換し空き領域を確保することから、この空き領域が確保可能な領域であるかどうかを判断するため、セル混雑度を計算し、セル混雑度が混雑度判定基準57を満たす領域を修正領域に選択する。
【0051】
具体的には、セル混雑度計算部12は、レイアウトデータ53のレイアウト面を混雑度計算領域56毎に区分し、区分された各領域についてセル混雑度を計算する。例えば、混雑度計算領域56は、縦×横が100μm×100μmの矩形である。レイアウト面の区分は、レイアウト面の角部や端部から順に区分してもよいし、ホールドエラーが発生しているエラーパス付近を中心として、エラーパス付近から順に区分してもよい。セル混雑度は次の式1により求められる。
セル混雑度=混雑度計算領域内に配置されているセルの面積の合計/混雑度計算領域の面積 ・・・(式1)
【0052】
例えば、レイアウトデータ53を参照して各領域内に配置されている各セルを特定し、ライブラリ52を参照して各セルの面積を特定し、配置されているセル数とセル面積によりセル面積の合計を求め、混雑度計算領域の面積で割ることにより、セル混雑度を算出する。
【0053】
さらに、各領域について算出したセル混雑度が、混雑度判定基準57と比べて大きい場合には、ホールドバッファを挿入することができないため、修正不可能な領域と判断し、混雑度判定基準57と比べて小さい場合には、修正可能な領域と判断する。例えば、混雑度判定基準57は95%である。混雑度判定基準57は、混雑度計算領域の面積と挿入されるホールドバッファの面積等を考慮して決定することが好ましい。例えば、領域毎のセル混雑度を記憶する際に、領域毎に修正可・不可についても記憶しておく。そして、修正可とした領域についてS205以降の修正が行われる。修正可能な領域が複数存在する場合には、S205以降の処理が繰り返される。なお、修正可能な領域が存在しない場合、混雑度計算領域56を拡大し(S213)、さらにセル混雑度を計算してもよい。
【0054】
次いで、セル混雑度が混雑度判定基準57を満たす領域について、エラー箇所周辺のセルリストが作成される(S205)。すなわち、セル混雑度計算部12は、レイアウトデータ53、ライブラリ52、タイミングレポート54を記憶部2から取得し、ホールドエラーが発生しているエラーパス付近を中心として、ホールドエラーパス周辺に配置されている複数のセルを特定し、これらの複数のセルをセルリスト58として記憶部2に記憶する。そして、このセルリストの各セルについて、S206以降の修正処理が行われる。
【0055】
すなわち、本実施形態では、ホールドエラーが発生しているセル周辺の複数セルを置換元セルの選択候補とする。ホールドエラーセルの周辺について、空き領域を設け、ホールドバッファを配置することで、エラー箇所の近くにホールドバッファを挿入できるため、ホールドエラーを効果的に修正できる。エラーセルの周辺に限らず、エラーセルの近傍であれば同様の効果が得られる。なお、タイミング遅延や配線上の影響が少なければ、エラーセル周辺に限らず、例えば、混雑度計算領域内の任意のセルを置換元セルの選択候補としてもよい。
【0056】
次いで、レイアウトデータ53に対して厳しいタイミング制約によりタイミング解析が行われる(S206)。すなわち、余裕セル判定部13は、現在のレイアウトデータ53及び第2のタイミング制約55bを記憶部2から取得し、第2のタイミング制約55bのもとで、レイアウトデータ53のタイミング解析を行い、タイミングレポート54を生成して記憶部2に格納する。
【0057】
つまり、本実施形態では、セットアップタイムに余裕のあるセルを置換元セルに選択することから、セットアップタイムの厳しいタイミング制約である第2のタイミング制約55bにより、セットアップタイムのタイミングを解析する。具体的には、セットアップに余裕があるセルを特定するために、セットアップタイムがより長く、すなわち、クロックの前にデータ供給されるタイミングがより早いことを条件とする。例えば、第2のタイミング制約55bは、100psである。このタイミング制約は、置換されるセルや挿入されるバッファ等を考慮して決定することが好ましい。
【0058】
なお、セットアップタイムに余裕があり、かつ、波形なまりが小さいセルを置換元セルに選択することが、より好ましい。波形なまりが小さい方が、データの変化するタイミングが速いためである。
【0059】
次いで、S206のタイミング解析の結果、セットアップタイムに余裕のあるセルがあるかどうか判定する(S207)。すなわち、余裕セル判定部13は、厳しいタイミング制約でタイミング解析されたタイミングレポート54を記憶部2から取得し、タイミングレポート54の全パスについて、セットアップタイムの第2のタイミング制約55bを満たすかどうか判定し、タイミング制約を満たすセルを置換元セルとして選択する。
【0060】
セルリスト58のセルについて、タイミング制約を満たすパスを含むセルが有ればセットアップタイムに余裕のあるセルが有ると判定し、タイミング制約を満たすパスを含むセルが無ければセットアップタイムに余裕のあるセルが無いと判定する。セットアップタイムに余裕のあるセルが有る場合、余裕のあるセルを置換元セルとして、S208以降の修正が行われる。例えば、記憶部2のセルリスト58において、余裕のあるセルを置換元セルとして記憶しておく。なお、余裕のあるセルが複数存在する場合には、S208以降の処理を繰り返してもよい。
【0061】
S207において、セットアップタイムに余裕のあるセルが無いと判定された場合、混雑度計算領域56が拡大される(S213)。すなわち、セットアップタイムに余裕のあるセルが無い場合は、置換元セルとして選択可能なセルが存在せずホールドエラーを修正できないため、混雑度計算領域56を拡大して記憶部2に格納し、さらに混雑度計算(S204)以降を繰り返して、新たに修正可能なセルを選択する。
【0062】
また、S207において、セットアップタイムに余裕のあるセルが有ると判定された場合、置換先セルの選択処理が実行される(S208)。すなわち、置換先セル選択部14は、ライブラリ52を記憶部2から取得し、ライブラリ52の中から置換条件を満たすセルを選択して、例えば、置換先セルを記憶部2に格納する。この処理では後述するように、ホールドバッファを挿入可能にするために、置換元セルよりも面積の小さいセルを選択する。
【0063】
次いで、レイアウトデータ53において置換元セルを置換先セルに置換する(S209)。すなわち、セル置換部15は、レイアウトデータ53を記憶部から取得し、S207で選択された置換元セルをS208で選択された置換先セルに置換し、置換したレイアウトデータ53を記憶部2に格納する。
【0064】
次いで、置換後のレイアウトデータ53についてタイミング解析が行われる(S210)。すなわち、S209の置換によりセットアップエラーが新たに発生していないことを確認するため、セル置換部15は、置換後のレイアウトデータ53、第1のタイミング制約55aを記憶部2から取得し、第1のタイミング制約55aのもとで、レイアウトデータ53のタイミング解析を行い、タイミングレポート54を生成して記憶部2に格納する。ここでは、主にセットアップタイムのタイミングを解析するが、空き領域に対するホールドバッファの挿入を確認するため、ホールドタイムのタイミングも解析する。
【0065】
次いで、タイミングレポート54にセットアップエラーがあるかどうか判定される(S211)。すなわち、セル置換部15は、タイミングレポート54を記憶部2から取得し、置換後のレイアウトデータ53に対するタイミングレポート54の全パスについて、セットアップタイムの第1のタイミング制約55aを満たすかどうか判定し、全てのパスがタイミング制約を満たしていればセットアップエラーは無いと判定し、パスが一つでもタイミング制約を満たしていなければセットアップエラーは有ると判定する。
【0066】
S211において、セットアップエラーが有ると判定された場合、混雑度計算領域56が拡大される(S213)。すなわち、この場合には、セルの置換により新たにセットアップエラーが発生したため、置き換えた置換先セルをもとの置換元セルにして、置換前のレイアウトデータ53に戻す。そして、上記と同様に、混雑度計算領域56を拡大して、混雑度計算(S204)以降を繰り返す。
【0067】
また、S211において、セットアップエラーが無いと判定された場合、タイミングレポート54にホールドエラーがあるかどうか判定される(S212)。すなわち、セル置換部15は、タイミングレポート54を記憶部2から取得し、置換後のレイアウトデータ53に対するタイミングレポート54の全パスについて、ホールドタイムの第1のタイミング制約55aを満たすかどうか判定し、全てのパスがタイミング制約を満たしていればホールドエラーは無いと判定し、パスが一つでもタイミング制約を満たしていなければホールドエラーは有ると判定する。
【0068】
S212において、ホールドエラーが無いと判定された場合、セルの置換により、セットアップエラー及びホールドエラーが解消したことになるため、ホールドエラー修正処理が終了し、自動レイアウト処理(図2)も終了する。
【0069】
また、S212において、ホールドエラーが有ると判定された場合、ホールドバッファが挿入され(S201)、以降の処理が繰り返される。つまり、セル置換により空いた領域に対しホールドバッファが挿入され、ホールドエラーが修正される。
【0070】
このように、ホールドエラーが無くなるまでS201〜S212が繰り返される。なお、修正可能なセルが無い場合、混雑度計算領域56を拡大して処理を繰り返すが、混雑度計算領域56をレイアウト面の最大範囲まで拡大しても修正可能なセルが無い場合には、ホールドエラーが修正不可能であるとして、処理を終了する。
【0071】
ここで、図4を用いて、ホールドエラー修正処理の具体的な動作の例を説明する。図3のフローチャートと対応して説明すると、まず、ホールドバッファの挿入、タイミング解析、ホールドエラーが判定される(S201〜S203)。
【0072】
次いで、図4(a)のように、セル混雑度が計算される(S204)。すなわち、半導体チップのレイアウト面200を格子状に区分して、複数の矩形である混雑度計算領域201を設定する。すなわち、この例はレイアウト面を角部から区分した例である。そして、各領域について、領域の面積と配置されているセルの面積とからセル混雑度を計算する。さらに、これらのセルから、セル混雑度が混雑度判定基準57よりも小さい領域を選択する。ここでは、領域202をセル混雑度が小さい領域とする。
【0073】
次いで、図4(b)のように、エラー箇所周辺のセルリストを作成する(S205)。すなわち、混雑度が小さいと判定した領域202について、ホールドエラーが発生しているセル210を特定し、セル210の周辺のセル211〜216をセルリスト58として記憶する。
【0074】
次いで、図4(c)のように、タイミング解析によりセットアップに余裕のあるセルを特定する(S206〜S207)。すなわち、第2のタイミング制約55bによるタイミング解析の結果、周辺のセル211〜216のうちから、セットアップに余裕のあるセル211を置換元セルとして選択する。
【0075】
次いで、図4(d)のように、置換先セルを選択してセルを置換し、ホールドバッファを挿入する(S208〜S212、S201)。すなわち、置換元セルのセル211よりも小さいセル211aを置換先セルとして選択し、セル211をセル211aに置換する。そして、この置換により空いた領域に、ホールドバッファ220を挿入する。このホールドバッファ220によりセル210のホールドエラーが解消すると、ホールドエラー修正処理が終了する。なお、置換先セルを配置する位置は、空き領域がより大きく確保できるように、置換元セルが配置されていた領域の端部に寄せて配置することが好ましい。また、エラーセルとホールドバッファがより近づくように、配置後の空き領域がエラーセルにより近い位置、つまり、配置先セルがエラーセルにより遠い位置に配置することが好ましい。このため、図4(d)では、置換先セル211aをエラーセル210より遠い位置、エラーセル210に接しない位置に配置しており、空き領域、つまり、ホールドバッファ220をエラーセル210に近い位置、エラーセル210に接する位置に配置している。
【0076】
次に、図3の置換先セル選択処理(S208)の詳細について、図5のフローチャートを用いて説明する。図に示されるように、置換先セルの選択処理が開始されると、ライブラリ52にサイズ(面積)の小さいセルがあるかどうか判定する(S301)。すなわち、置換先セル選択部14は、ライブラリ52を記憶部2から取得し、ライブラリ52内のセルを順次判定して、S207で選択された置換元セルよりも面積が小さいセルを検索する。
【0077】
ここで、一般的にセルの面積と駆動能力は比例関係にあるため、小さいセルとは駆動能力の小さいセルである。このため、本実施形態でサイズの小さいセルを選択することは、換言すれば、駆動能力の小さいセルを選択することである。
【0078】
S301において、サイズの小さいセルがライブラリ52に無いと判定された場合、図3のS213に戻って、混雑度計算領域56を拡大し、混雑度計算(S204)以降を繰り返す。
【0079】
また、S301において、サイズの小さいセルがライブラリ52に有ると判定された場合、そのセルを置換先セルとして決定する(S302)。すなわち、置換先セル選択部14は、ライブラリ52のセルのうち面積の小さいセルを置換先セルに決定して、例えば記憶部2に格納する。その後、選択した置換先セルによりセルの置換(S209)が行われる。
【0080】
なお、面積の小さいセルが複数見つかった場合、いずれを置換先セルとすることも可能である。この場合、面積(駆動能力)の小さい順、または、面積(駆動能力)の大きい順に選択して、タイミング解析することで、タイミングエラーの無いセルを選択することが好ましい。
【0081】
ここで、図6を用いて、置換先セルの選択処理の具体的な動作の例を説明する。図6は、ライブラリ52に格納されたセルの一例である。ここでは、各セル毎に、番号、セルタイプ、セル名、駆動能力、面積が格納されている。そして、セル1−1〜1−3が、面積の大きい順、すなわち、駆動能力の大きい順に並んでいる。
【0082】
本実施形態では、置換先セルの選択基準としてより面積(駆動能力)が小さいセルを選択する(S301)。例えば、置換元セルをセル1−2とすると、セル1−2よりも面積が小さいセル1−3を置換先セルとして選択する。
【0083】
また、置換元セルをセル1−1とすると、セル1−1よりも面積が小さいセル1−2またはセル1−3が置換先セルとして選択可能である。
【0084】
例えば、面積の大きい順に選択すると、まず、セル1−2を選択して、タイミングエラーが発生しない場合、セル1−3を選択する。そして、このセル1−3で、タイミングエラーが発生しなければ、セル1−3を置換先セルに決定し、タイミングエラーが発生すれば、セル1−2を置換先セルに決定する。
【0085】
また、例えば、面積の小さい順に選択すると、まず、セル1−3を選択して、タイミングエラーが発生しない場合、セル1−3を置換先セルに決定する。また、セル1−3で、タイミングエラーが発生した場合に、セル1−2を選択する。
【0086】
以上のように、本実施形態では、ホールドエラーが発生しているパスを含むセルとは別のセルに着目し、このエラーの発生していないセルを置換元セルとした。そして、置換元セルをサイズの小さいセルに置換し、空いた領域にホールドバッファを挿入することにより、ホールドエラーを修正するようにした。これにより、ホールドエラーを確実に修正することができる。
【0087】
すなわち、従来のホールドエラー修正方法では、ホールドエラーが発生しているパスにのみ着目していたため、ホールドバッファを挿入するための領域が不足する場合があったが、本実施形態では、ホールドエラーが発生していないセルを置換することで空き領域を生成するため、従来と比べて、空き領域を確実に確保することが可能である。特に駆動能力の小さいセルを置換先セルに選択することで確実に空き領域を確保できる。
【0088】
また、本実施形態では、セットアップタイムに余裕のあるセルを置換元セルに選択するため、セルの置換により、セットアップエラーが発生することを抑制することができる。特に駆動能力の小さいセルに置換すると、データの遅延が大きくなりセットアップエラーの発生が予想されるため、セットアップタイムに余裕のあるセルを選択することが有効である。
【0089】
さらに、本実施形態では、ホールドエラーが発生しているセルの周辺セルを置換元セルに選択しているため、ホールドエラーの箇所の近くにホールドバッファを配置でき、ホールドエラーを容易に修正できる。ホールドエラーの箇所とホールドバッファとの距離が離れていると、配線長が長くなることから、配線による遅延も考慮する必要があり、タイミングエラーの収束が困難となるため、ホールドエラーの近くのセルを選択することによる効果が大きい。また、エラーの近くにホールドバッファを配置することにより、配線エラー数の減少、迂回配線の抑制、設計TAT(Turn Around Time)の向上を図ることができる。
【0090】
さらに、本実施形態では、セル混雑度が基準よりも低い領域について、ホールドエラーの修正を行うため、確実にホールドバッファを挿入しホールドエラーを修正できる。すでにセルが混雑している領域に対し、ホールドエラーを修正しようとしても、ホールドバッファが挿入できないため、修正処理を無駄に実行することになる。ホールドバッファが挿入できるように、セルが混雑していない領域に対し、ホールドエラー修正処理を実行することで、無駄な処理の実行を防ぐことができ、処理の高速化が図れる。
【0091】
本発明の実施の形態2
次に、本発明の実施の形態2について説明する。本実施形態では、実施の形態1と比べて、置換先セルの選択処理のみ相違しており、他の処理については同様である。
【0092】
図7を用いて、本発明の実施の形態2に係る置換先セル選択処理(S208)の詳細について説明する。図に示されるように、本実施形態の置換先セルの選択処理が開始されると、まず、図5と同様にして、ライブラリ52にサイズの小さいセルがあるかどうか判定し(S301)、サイズの小さいセルが置換先セルに決定される(S302)。
【0093】
次いで、タイミング解析が行われ(S303)、セットアップエラーが判定される(S304)。すなわち、置換先セル選択部14は、サイズの小さいセルに置換したレイアウトデータ53についてタイミング解析を行い、タイミングレポート54が第1のタイミング制約55aを満たしているかどうかにより、セットアップエラーの有無を判定する。
【0094】
S304において、セットアップエラーが無いと判定された場合、図3のS201に戻って、ホールドバッファを挿入し、S201以降の処理を繰り返す。
【0095】
また、S304において、セットアップエラーが有ると判定された場合、サイズが小さく、低Vtのセルがあるかどうか判定する(S305)。すなわち、置換先セル選択部14は、ライブラリ52を記憶部2から取得し、ライブラリ52内のセルを順次判定して、S207で選択された置換元セルよりも面積が小さく、かつ、低Vtのセルを検索する。
【0096】
低Vtとは、通常の回路よりも動作閾値Vtが低い回路のことであり、低電圧で動作するため、より高速に動作することが可能な回路である。すなわち、本実施形態でVtの低いセルを選択することは、換言すれば、動作速度の速いセルを選択することである。高速なセルを選択することによりセットアップエラーの発生を防ぐことができる。
【0097】
S305において、サイズが小さく低Vtのセルがライブラリ52に無いと判定された場合、図3のS213に戻って、混雑度計算領域56を拡大し、混雑度計算(S204)以降を繰り返す。
【0098】
また、S305において、サイズが小さく低Vtのセルがライブラリ52に有ると判定された場合、そのセルを置換先セルとして決定する(S306)。すなわち、置換先セル選択部14は、ライブラリ52のセルのうち面積が小さく、低Vtのセルを置換先セルに決定して、例えば記憶部2に格納する。その後、選択した置換先セルによりセルの置換(S209)が行われる。
【0099】
なお、低Vtのセルが複数見つかった場合、いずれを置換先セルとすることも可能である。この場合、閾値Vtの低い順、または、閾値Vtの高い順に選択して、タイミング解析することで、タイミングエラーの無いセルを選択することが好ましい。
【0100】
ここで、図8を用いて、置換先セルの選択処理の具体的な動作の例を説明する。図8は、ライブラリ52に格納されたセルの一例である。ここでは、各セル毎に、番号、セルタイプ、セル名、駆動能力、面積が格納されている。そして、セルタイプが2種類であり、セル1−1〜1−3、セル2−1〜2−3が、通常セル、低Vtセルの順に並び、それぞれ、面積の大きい順に並んでいる。
【0101】
本実施形態では、置換先セルの選択基準としてより面積(駆動能力)が小さく、かつ、低Vtのセルを選択する(S305)。例えば、置換元セルをセル1−2とし、セル1−2よりも小さいセル1−3でタイミングエラーが発生する場合、セル1−2よりも小さく低Vtのセル2−3を置換先セルとして選択する。
【0102】
また、置換元セルをセル1−1とすると、まず、セル1−1よりも小さいセル1−2、セル1−3が置換先セルとして選択可能である。セル1−2またはセル1−3を選択して、タイミングエラーが発生しない場合、セル1−2またはセル1−3を置換先セルに決定する。また、セル1−2及びセル1−3でタイミングエラーが発生した場合、セル1−1よりも小さく低Vtのセル2−2またはセル2−3が置換先セルとして選択可能である。セル2−2とセル2−3のいずれを選択するのかは、図6と同様に、面積の大きい順もしくは面積の小さい順に選択できる。
【0103】
例えば、面積の大きい順に選択すると、セル2−2を選択して、その後、タイミングエラーに応じて、セル2−3を選択できる。また、例えば、面積の小さい順に選択すると、セル2−3を選択して、その後、タイミングエラーに応じて、セル2−2を選択できる。
【0104】
次に、図9を用いて、本実施形態の他の動作例を説明する。図9では、図8に比べて、セルタイプが3種類であり、セル0−1〜0−3、セル1−1〜1−3、セル2−1〜2−3が、高Vtセル、通常セル、低Vtセルの順に並び、それぞれ、面積の大きい順に並んでいる。なお、高Vtとは、低Vtに対して、通常の回路よりも動作閾値Vtが高い回路のことであり、高電圧で動作するため、動作速度が遅い回路である。
【0105】
例えば、置換元セルをセル0−2とし、セル0−2よりも小さいセル0−3でタイミングエラーが発生する場合、セル0−2よりも小さく低Vtのセル1−3、セル2−3を置換先セルとして選択可能である。セル1−3とセル2−3のいずれを選択するのかは、面積の順に選択するのと同様に、閾値Vtの高い順もしくは閾値Vtの低い順に選択できる。
【0106】
例えば、閾値Vtの高い順に選択すると、セル1−3を選択して、その後、タイミングエラーに応じて、セル2−3を選択できる。また、例えば、閾値Vtの低い順に選択すると、セル2−3を選択して、その後、タイミングエラーに応じて、セル1−3を選択できる。
【0107】
また、例えば、置換元セルをセル0−1とすると、セル0−1よりも小さいセル0−2、セル0−3が置換先セルとして選択可能であり、さらに、タイミングエラーに応じて、セル0−1よりも小さく低Vtのセル1−2、セル1−3、セル2−2、セル2−3が選択可能である。この場合、上記と同様に、面積の順、閾値の順を組み合わせて、タイミングエラーの無いセルを選択できる。
【0108】
以上のように、本実施形態では、置換先セルの選択において、面積(駆動能力)が小さく、かつ、低Vtのセルを選択することにしたため、面積が小さいセルに置換することによりセットアップエラーが発生するような場合であっても、セルの高速化によりセットアップエラーの発生を抑止しつつ、確実に空き領域を確保することができる。高速なセルを選択することにより、より多くのホールドバッファが挿入可能になることから、ホールドエラーの修正が容易になる。
【0109】
本発明の実施の形態3
次に、本発明の実施の形態3について説明する。本実施形態では、実施の形態1,2と比べて、置換先セルの選択処理のみ相違しており、他の処理については同様である。
【0110】
図10を用いて、本発明の実施の形態2に係る置換先セル選択処理(S208)について説明する。図に示されるように、本実施形態の置換先セルの選択処理が開始されると、まず、図7と同様にして、ライブラリ52にサイズの小さいセルがあるかどうか判定し(S301)、サイズの小さいセルが置換先セルに決定され(S302)、タイミング解析によりセットアップエラーが判定され(S303,S304)、サイズが小さく低Vtのセルがあるか判定される(S305)。
【0111】
S305において、サイズが小さく低Vtのセルがライブラリ52に有ると判定された場合、さらに、リーク電流が低いセルを選択する(S307)。すなわち、置換先セル選択部14は、サイズが小さく低Vtのセルが複数存在する場合に、ライブラリ52内の該当する複数のセルを順次判定して、リーク電流が低いセルを選択する。最もリーク電流の低いセルが好ましく、タイミングエラーの無いセルを選択することがより好ましい。
【0112】
一般に低Vtのセルは、高速動作が可能であるがリーク電流が高いため、よりリーク電流の低いセルを選択することで消費電力の増加を防ぐことができる。
【0113】
次いで、このリーク電流が低いセルを置換先セルとして決定し(S306)その後、選択した置換先セルによりセルの置換(S209)が行われる。
【0114】
ここで、図11を用いて、置換先セルの選択処理の具体的な動作の例を説明する。図11は、ライブラリ52に格納されたセルの一例である。ここでは、各セル毎に、番号、セルタイプ、セル名、駆動能力、面積、リーク電流が格納されている。そして、セルタイプが2種類であり、セル1−1〜1−3、セル2−1〜2−3が、通常セル、低Vtセルの順に並び、それぞれ、面積の大きい順に並んでいる。
【0115】
本実施形態では、置換先セルの選択基準としてより面積(駆動能力)が小さく、低Vtのセルで、かつ、リーク電流が低いセルを選択する(S305,S307)。
【0116】
例えば、置換元セルをセル1−1とすると、セル1−1よりも小さいセル1−2、セル1−3を置換先セルとして選択可能である。そして、タイミングエラーが発生する場合、セル1−1よりも小さく低Vtのセル2−2、セル2−3が選択可能となる。ここで、セル2−3が、セル2−2よりもリーク電流が低いため、セル2−3を置換先セルに決定する。
【0117】
以上のように、本実施形態では、置換先セルの選択において、面積(駆動能力)が小さく、かつ、低Vtのセルのうちで、リーク電流の低いセルを選択することにしたため、セットアップエラーの発生を抑止しつつ空き領域が確保できるとともに、さらに消費電力を低減することができる。特に、低Vtのセルはリーク電流が高い場合が多いため、低Vtのセルのなかでリーク電流の低いセルを選択する効果が大きい。
【0118】
また、置換元セルは、ホールドエラー周辺の特定のセルであり、置換によるリーク電流の影響が局所的であるため、置換先セルとしてリーク電流の低いセルを選択することで、リーク電流の合計がシステムの制限値を超える可能性は低い。
【0119】
なお、本実施形態では、実施の形態2のように、面積が小さく、かつ、低Vtのセルを選択する方法において、リーク電流が低いセルを選択するようにしたが、実施の形態1のように、面積が小さいセルを選択する方法において、リーク電流が低いセルを選択するようにしてもよい。また、リーク電流が低いセルを選択する方法として、複数のセルのうちでリーク電流が低い方のセルを選択したが、所定の基準値よりもリーク電流が低いセルを選択してもよい。
【0120】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、1つセルは、全て同じタイプ(閾値)の回路によりセルが構成されているが、1つのセルを複数のタイプの回路により構成してもよい。この場合、セルを構成する複数の回路の動作速度の平均を、セルの動作速度としてもよい。
【符号の説明】
【0121】
1 制御部
2 記憶部
10 ホールドエラー修正部
11 ホールドバッファ挿入部
12 セル混雑度計算部
13 余裕セル判定部
14 置換先セル選択部
15 セル置換部
20 配置配線部
30 タイミング解析部
40 セットアップエラー修正部
51 ネットリスト
52 ライブラリ
53 レイアウトデータ
54 タイミングレポート
55a 第1のタイミング制約
55b 第2のタイミング制約
56 混雑度計算領域
57 混雑度判定基準
58 セルリスト
100 自動レイアウト装置

【特許請求の範囲】
【請求項1】
複数のセルが配置配線されたレイアウトデータと、前記セルが定義されたライブラリデータとを記憶部に記憶し、
前記レイアウトデータに基づきタイミング解析を行い、解析結果であるタイミングレポートデータを前記記憶部に記憶し、
前記タイミングレポートデータを参照して特定されるホールドエラーセルとは別のセルを置換元セルに選択し、
前記ライブラリデータを参照して前記置換元セルよりも駆動能力が小さいセルを置換先セルに選択し、
前記レイアウトデータにおいて前記置換元セルを前記置換先セルに置換して、置換したレイアウトデータを前記記憶部に記憶し、
前記置換されたレイアウトデータにおいて前記置換により生成された空き領域に、前記ホールドエラーセルのホールドエラーを修正するためのホールドバッファを挿入して、挿入したレイアウトデータを前記記憶部に記憶する、ホールドエラー修正方法。
【請求項2】
前記置換先セルの選択は、前記置換元セルよりも駆動能力が小さく、かつ、前記置換元セルよりも高速動作可能なセルを前記置換先セルに選択する、請求項1に記載のホールドエラー修正方法。
【請求項3】
前記高速動作可能なセルは、前記置換元セルよりも動作閾値が低いセルである、請求項2に記載のホールドエラー修正方法。
【請求項4】
前記置換先セルの選択は、前記ライブラリデータに含まれる複数のセルのうちリーク電流が低いセルを前記置換先セルに選択する、請求項1乃至3のいずれかに記載のホールドエラー修正方法。
【請求項5】
前記置換元セルの選択は、前記タイミング解析の結果、セットアップタイムに余裕があるセルを前記置換元セルに選択する、請求項1乃至4のいずれかに記載のホールドエラー修正方法。
【請求項6】
前記セットアップの余裕は、タイミング制約を厳しく設定したタイミング解析により検出される、請求項5に記載のホールドエラー修正方法。
【請求項7】
前記置換元セルの選択は、前記ホールドエラーセルの周辺のセルを前記置換元セルに選択する、請求項1乃至6のいずれかに記載のホールドエラー修正方法。
【請求項8】
前記置換元セルの選択は、前記レイアウトデータにおけるレイアウト面を複数の領域に区分し、前記複数の領域のうちセル混雑度が基準値よりも低い領域のセルを前記置換元セルに選択する、請求項1乃至7のいずれかに記載のホールドエラー修正方法。
【請求項9】
前記セル混雑度は、前記領域の面積に対し当該領域内に配置された全セルの面積が占める割合である、請求項8に記載のホールドエラー修正方法。
【請求項10】
前記複数の領域は、前記レイアウト面における角部から順に、前記レイアウト面を複数の矩形の領域に区分した領域である、請求項8または9に記載のホールドエラー修正方法。
【請求項11】
前記複数の領域は、前記レイアウト面における前記ホールドエラーセル付近を中心として、前記レイアウト面を複数の矩形の領域に区分した領域である、請求項8または9に記載のホールドエラー修正方法。
【請求項12】
前記領域の面積を変更し前記セル混雑度を再計算して、前記置換元セルを選択する、請求項8乃至11のいずれかに記載のホールドエラー修正方法。
【請求項13】
前記置換されたレイアウトデータについて、タイミング解析した結果、セットアップエラーが発生した場合、前記領域の面積を変更する、請求項12に記載のホールドエラー修正方法。
【請求項14】
前記ライブラリに前記置換先セルとして選択可能なセルが存在しない場合、前記領域の面積を変更する、請求項12または13に記載のホールドエラー修正方法。
【請求項15】
コンピュータにホールドエラー修正処理を実行させるホールドエラー修正プログラムであって、前記ホールドエラー修正処理は、
複数のセルが配置配線されたレイアウトデータと、前記セルが定義されたライブラリデータとを記憶部に記憶し、
前記レイアウトデータに基づきタイミング解析を行い、解析結果であるタイミングレポートデータを前記記憶部に記憶し、
前記タイミングレポートデータを参照して特定されるホールドエラーセルとは別のセルを置換元セルに選択し、
前記ライブラリデータを参照して前記置換元セルよりも駆動能力が小さいセルを置換先セルに選択し、
前記レイアウトデータにおいて前記置換元セルを前記置換先セルに置換して、置換したレイアウトデータを前記記憶部に記憶し、
前記置換されたレイアウトデータにおいて前記置換により生成された空き領域に、前記ホールドエラーセルのホールドエラーを修正するためのホールドバッファを挿入して、挿入したレイアウトデータを前記記憶部に記憶する、ホールドエラー修正プログラム。
【請求項16】
前記置換先セルの選択は、前記置換元セルよりも駆動能力が小さく、かつ、前記置換元セルよりも高速動作可能なセルを前記置換先セルに選択する、請求項15記載のホールドエラー修正プログラム。
【請求項17】
前記高速動作可能なセルは、前記置換元セルよりも動作閾値が低いセルである、請求項16に記載のホールドエラー修正プログラム。
【請求項18】
複数のセルが配置配線されたレイアウトデータと、前記セルが定義されたライブラリデータとを記憶する記憶部と、
前記レイアウトデータに基づきタイミング解析を行い、解析結果であるタイミングレポートデータを前記記憶部に記憶するタイミング解析部と、
前記タイミングレポートデータを参照して特定されるホールドエラーセルとは別のセルを置換元セルに選択する置換元セル選択部と、
前記ライブラリデータを参照して前記置換元セルよりも駆動能力が小さいセルを置換先セルに選択する置換先セル選択部と、
前記レイアウトデータにおいて前記置換元セルを前記置換先セルに置換して、置換したレイアウトデータを前記記憶部に記憶するセル置換部と、
前記置換されたレイアウトデータにおいて前記置換により生成された空き領域に、前記ホールドエラーセルのホールドエラーを修正するためのホールドバッファを挿入して、挿入したレイアウトデータを前記記憶部に記憶するホールドバッファ挿入部と、を備えるホールドエラー修正装置。
【請求項19】
前記置換先セル選択部は、前記置換元セルよりも駆動能力が小さく、かつ、前記置換元セルよりも高速動作可能なセルを前記置換先セルに選択する、請求項15記載のホールドエラー修正装置。
【請求項20】
前記高速動作可能なセルは、前記置換元セルよりも動作閾値が低いセルである、請求項19に記載のホールドエラー修正装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2013−3944(P2013−3944A)
【公開日】平成25年1月7日(2013.1.7)
【国際特許分類】
【出願番号】特願2011−136090(P2011−136090)
【出願日】平成23年6月20日(2011.6.20)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】