[go: up one dir, main page]

JP3614306B2 - LSI layout method and recording medium storing LSI layout program - Google Patents

LSI layout method and recording medium storing LSI layout program Download PDF

Info

Publication number
JP3614306B2
JP3614306B2 JP25140098A JP25140098A JP3614306B2 JP 3614306 B2 JP3614306 B2 JP 3614306B2 JP 25140098 A JP25140098 A JP 25140098A JP 25140098 A JP25140098 A JP 25140098A JP 3614306 B2 JP3614306 B2 JP 3614306B2
Authority
JP
Japan
Prior art keywords
cells
buffer
clock
net
flip
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP25140098A
Other languages
Japanese (ja)
Other versions
JP2000082744A (en
Inventor
俊明 杉岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP25140098A priority Critical patent/JP3614306B2/en
Priority to PCT/JP1999/000205 priority patent/WO2004102657A1/en
Priority to US09/600,144 priority patent/US6651224B1/en
Publication of JP2000082744A publication Critical patent/JP2000082744A/en
Priority to US10/634,815 priority patent/US7032198B2/en
Application granted granted Critical
Publication of JP3614306B2 publication Critical patent/JP3614306B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Semiconductor Integrated Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は半導体集積回路(LSI)レイアウト方法及びLSIレイアウト用プログラムを格納した記録媒体に関し、特にLSIにおけるクロックパスの実装設計方法及びその記録媒体に関する。
【0002】
【従来の技術】
LSIは多数のフリップフロップセルとこれらを駆動するバッファセルとを含んでいる。一般に1個のバッファセルで数万個のフリップフロップをクロック信号線を介して駆動する。このようなLSI内の回路素子およびクロック信号線のレイアウトにおいては、高密度化、信号伝播遅延時間の短縮、及び配線の混雑の緩和のためにクロック配線長を短くすることが要求される。また、クロック信号を必要とする回路素子に対して時間差(クロックスキューという)を抑制するための最適な回路素子配置が要求される。
【0003】
図27は従来のLSIレイアウト方法を説明するフローチャートである。図示のように、LSIレイアウトは、論理設計段階S27と、クロックレイアウト段階S28と、クロック信号線以外の通常ネットの配線段階S29とからなる。
論理設計段階S27は、論理合成のステップS271とクロックツリー生成のステップS272からなっている。
【0004】
論理合成のステップS271では、LSIを構成する素子のレジスタ・トランスファ・レベル(RTL)で記述されたハードウエア記述言語(HDL)を、レイアウト可能な論理に論理合成を行って、モジュールで構成される第1のネットリスト(Netlist)(1)を作成する。クロックツリー生成ステップS272では、この第1のネットリスト(1)に基づいてLSIのバッファセル導入前のクロックツリーを作成する。
【0005】
図28はLSIのモジュール内における、バッファセル導入前のクロックツリーの一例を示す図である。図において、281はモジュール、282〜284は小モジュール、285はクロック信号源であるクロックソース、286〜288はフリップフロップセルである。この段階では未だバッファセルは導入されていないので、クロックソース285がフリップフロップセル286〜288を直接駆動する回路になっている。
【0006】
次に第1のネットリスト(1)に対してバッファリング処理を行ってクロックツリーにバッファセルを導入することにより、第2のネットリスト(2)を作成する。
図29はLSIのモジュール内における、バッファセルが導入されたクロックツリーを示す図である。図示のように、図28のクロックツリーにバッファセル291〜296が導入されている。各モジュール内のバッファセルの数は、駆動されるフリップフロップセルの数に応じて決定される。図29においては、小モジュール282および283内のフリップフロップセルの数は少ないので、それぞれ1個のバッファセル292および293により駆動されるようにバッファセルを配置してあるが、小モジュール284内のフリップフロップセル288の数が他の小モジュール内のフリップフロップセル数より多いので、ツリー構造にして3つのバッファセル295、296、297で駆動するようになっている。
【0007】
図27に戻り、第2のネットリスト(2)の内容はクロックレイアウト段階S28に引き渡される。
クロックレイアウト段階S28は、ステップS281〜S287からなっている。
ステップS281ではフロアプランを取得する。フロアプランとは、LSIの設計者自身から得られるレイアウト情報である。
【0008】
ステップS282では、そのフロアプランに基づいてクロック配線長ができるだけ短くなるようにバッファセル及びフリップフロップセルを図30に示すように初期配置する。図30はLSIのモジュール内におけるバッファセル及びフリップフロップセルの初期配置結果を示す図である。図において、バッファセル301とそれが駆動する6個のフリップフロップセル310〜315の間を線で結んで、結線関係があることを表している。
【0009】
ステップS283では、クロックバッファのボトムアップ配置を行う。ボトムアップ配置とは、クロックソースから最も離れたフリップフロップセルから順番に配置することをいう。これは、フリップフロップセルの配置情報に基づいて、バッファセル301とそれにより駆動されるフリップフロップセル310〜315との間の距離が出来るかぎり等距離になるように、クロックバス上のバッファセルをボトムアップに配置する処理である。ボトムアップの手法には、バッファセルをそのバッファセルが駆動するフリップフロップセルの配置範囲の中心に配置する手法、バッファセルをそのバッファセルが駆動するフリップフロップセルの重心に配置する手法等がある。
【0010】
図31はLSIのモジュール内においてバッファセル301をそのバッファセル301が駆動するフリップフロップセル310〜315の配置範囲の中心に配置した例を示す図である。
次に、ステップS284で、バッファからフリップフロップセルまでの配線長を制限するために、フリップフロップセルの配置制限領域を生成する。これは、フリップフロップセルを駆動するバッファセルを中心に、ひし形の領域である。図32はバッファセル321を中心に配置制限領域322を設定した例を示す図である。次に、配置制限領域322を考慮した再配置処理を行う。ここでは、ステップS283でボトムアップ配置したバッファセル321の配置を固定にし、ステップS284で生成した配置制限領域321をフリップフロップセルの配置制約にし、クロックバッファ以外のセルを再配置する。図33および図34はセルを再配置した結果を示す図である。図示のように、配置制限領域322の中央部にバッファセル321が配置されており、フリップフロップセル331〜336は配置制限領域322の内部に配置されることを示している。
【0011】
次に、ステップS286で、クロックツリー最終段ネットの特殊配線を行う。ここでは図35〜37に示す3つの処理を行う。即ち、図35はクラスタ用バー情報351〜357の設定を示している。図36は、各フリップフロップセルとクラスタ用バーとを結ぶ支線361の配線を示している。図37は、駆動用バッファセル321からクラスタ用バーへのルート配線を示している。
【0012】
次に、バッファ間ネットの特殊配線を行う。ここでは図38に示すように、バッファセル381が駆動する4つのバッファセル382〜385まで、スター状に特殊配線をする。上記に説明した、ステップS282からステップS287の処理を行うことにより、クロックソースからフリップフロップセルまでの信号伝播遅延時間値およびスキュー値を抑えるようにクロックツリーの配置配線を行った後、通常ネットの配線処理を行っている。
【0013】
【発明が解決しようとする課題】
上記従来のLSIレイアウト方法は、おもにASIC(Application Specific Integrated Circuit) のゲートアレイ、エンベデッドアレイで使用されている手法であって、論理設計以降は、ネットリストの変更をすることなくクロックレイアウトおよびLSI実装設計を行う方法である。この従来方法では、クロックツリー論理は変更しないで、ユーザ所望のクロック信号伝播遅延時間、およびスキュー値による制約にしたがうようにクロック信号線をレイアウトする。
【0014】
しかしながら、ステップ271の論理設計およびステップ272のクロックツリー生成の段階では、フリップフロップセルの配置位置およびクロック信号線の配線経路を考慮しないで論理設計するため、その論理情報に対しクロック制約条件を満たすようにクロックレイアウトを行うと、配線の混雑をまねき、クロック配線、およびその後の信号配線ができなくなる問題がある。
【0015】
以下に問題点の詳細について説明する。
ステップ272におけるクロックツリー生成ではフロアプラン、およびフリップフロップの配置は考慮していないので、バッファセルを配置した結果、図39における半導体チップ391上のフロアプランブロック392と395、又はフロアプランブロック393と394のように離れたフロアプランブロックをバッファセル396又は397がそれぞれ駆動する場合がある。この場合、離れたフロアプランブロックを駆動するネットワーク(以下、ネットという)の配線398〜401の長さが長くなり、結果的にクロック信号伝播遅延時間が長くなるという問題および配線の混雑を招くという問題がある(第一の問題)。
【0016】
図27のステップS285の配置制限領域を考慮したフリップフロップセルの再配置において、図40のように配置制限領域430および431が重なってしまった場合に、フリップフロップセルを再配置した結果、図41のように、2つの配置制限領域430および431の共通領域内にフリップフロップセルが集中し、その結果配線が混雑してしまうという問題がある(第二の問題)。図40および図41において、410および420はバッファセル、411〜416はバッファセル410により駆動されるフリップフロップ、421〜426はバッファセル420により駆動されるフリップフロップ、430および431は配置制限領域である。図41には、配置制限領域内430内にフリップフロップセル411〜416を移動させ、配置制限領域431内にフリップフロップセル421〜426を移動させた例を示してある。
【0017】
また、フリップフロップセルを初期配置の位置から配置制限領域内に引き込むことによって、フリップフロップセルにつながるクロック以外のネットの配線長を長くしてしまい、クロック以外の配線についても混雑させてしまうという問題がある(第三の問題)。例えば、図41の配線441〜445のように配線が長くなる。
【0018】
また、図38に示すように、1つのバッファセルにより複数のバッファセルが駆動される場合のバッファセル間の配線では、バッファセルからバッファセルまでの配線での混雑がおきるという問題がある(第四の問題)。図38では、バッファセル381により複数のバッファセル382〜385が駆動される構成において、バッファセル381とバッファセル382および383との間の配線が混雑している様子を示している。
【0019】
配線混雑以外の問題として、信号伝播遅延時間のスキュー値の問題がある(第五の問題)。即ち、図27のステップS285で、フリップフロップセルの配置制限をしながら再配置処理を行い、フリップフロップセルを集め、スキュー値を抑える手法をとっているが、図37に示すフリップフロップセル371のように、フリップフロップセルがクラスタから離れて配置されてしまう場合がある。この場合、その離れたフリップフロップセルまでの配線が長くなることにより、そのセルまでの信号伝播遅延時間が長くなり、結果的にスキューが大きくなるという問題がある。
【0020】
また、図27のステップS273のクロックツリー生成処理では、バッファセルのファンアウト制約を満たすようにバッファセルを配置した結果、図29の小モジュール282又は283と大モジュール284とで、クロックソース285からフリップフロップセルまでのバッファ段数が異なる部分ができる。この場合、バッファ段数2段と3段のクロックパスでは、信号伝播遅延が異なり、スキューのばらつきが大きくなるという問題がある(第六の問題)。
【0021】
さらに、図27のステップS282の初期配置においては、従来は図42に示すようにフリップフロップセル421〜424の配置を、クロックバッファセル425および426からのクロックパス427および428を無視しないで行っていたので、フリップフロップセルを接続するデータパス429の配線経路が交差して混み合うという問題もある。また、データパス429やクロックパス427および428の経路が長くなり、タイミングエラーの原因となるという問題もある(第七の問題)。
【0022】
上記の第一の問題は、クロックツリーを生成するときにレイアウト情報を考慮していないことが障害になって生じていた。
また、上記第二の問題および第三の問題は、配置制限領域が重なってしまうこと、および重なった配置制限領域内に被駆動セルをむりやり引きつけて再配置することが障害となって生じていた。
【0023】
上記第四の問題は、駆動用のバッファセルから各被駆動側バッファまでのバッファセル間の配線を単純なスター状の配線としたことが障害となって生じていた。
上記第五の問題は、フリップフロップセルを単純に配置制限領域内に再配置するという手法をとっていることが障害となって生じていた。
【0024】
上記第六の問題は、バッファ段数が異なるパスがクロックスキューのばらつきを大きくしていることが障害となって生じていた。
上記第七の問題は、初期配置時にクロックパスを無視しないでフリップフロップセルの配置を行っていることにより生じていた。
本発明の目的は、上記の従来技術における問題に鑑み、クロック信号線およびそれ以外の信号線の配線長が短く、且つ配線の混雑の程度が低く、信号伝播遅延時間が短く、且つ信号伝播遅延時間のばらつきが少ないLSIを製造するためのLSIレイアウト方法およびLSIレイアウト用プログラムを格納した記録媒体を提供することにある。
【0025】
【課題を解決するための手段】
上記の目的を達成するために、本発明の第一の態様により提供される方法によれば、RTLで記述されたLSIの設計内容を論理合成後のネットリストに対してフロアプランを実行し、得られたフロアプラン情報に基づいて、クロック信号に応じて動作するバッファセルを配置し、一度バッファセルを配置した結果に対し、バッファ段数を調べ、クロックソースから各フリップフロップセルまでのバッファ段数が等しくなるように、調整を行う(請求項1)。
【0026】
これにより、フロアプラン情報を考慮してクロックバッファセルを配置するので、離れたフロアプランブロックをバッファリングすることがなくなり、その結果、クロックパスの配線長を抑えることが可能になり、引いてはクロック信号伝播遅延時間を抑えることが可能になる。また、バッファ段数を調整するため、クロックスキューも抑えることができる。
【0027】
本発明の第二の態様によれば、初期配置のステップは、ネットリストとフロアプラン情報とに基づいて、クロックツリー上のネットを無視してセルの配置処理を行い、次いで前記クロックツリーに結線されるべきフリップフロップセルの配置位置を決定するというステップを備える(請求項2)。
これにより、クロック信号線のネット(クロックネットという)以外に接続されるセルとフリップフロップセルを最適な位置に初期配置し、その配置結果をもとにクロックネットの再構成を行っているので、クロックネットおよびその他のネットの配線効率を最適にしたセルの配置が可能になり、その後の配線処理時間が短縮される。また、フリップフロップセル間のデータバスの経路も最適に配置されるので、セルのレイアウト後のタイミングエラーを抑えることができる。
【0028】
本発明の第三の態様によれば、バッファ段数を調整するステップの後に、フリップフロップセルの初期配置から、クロックツリーの最終段ネットを抽出し、抽出された最終段ネットのネット範囲を調べ、該ネット範囲が重なる複数のネットをマージし、該マージされたネットをネット範囲が重ならないネットに分割し、分割されたネットにバッファセルを割り当てることによりネット範囲が重ならないようにネットの再構成処理を行う、というステップを備える(請求項3)。
【0029】
これにより、クロック最終段ネットのスキューばらつきを抑え、配線混雑度の緩和が可能である。
本発明の第四の態様によれば、クロックレイアウトを行うステップは、クロックツリー上のネットを無視してセルの配置処理を行うステップによるフリップフロップの配置結果に基づいて、クロックツリー上のバッファセルの配置位置をボトムアップに決定し、クロックツリーの最終段バッファ毎に、バッファが駆動するフリップフロップセルの配置情報から、フリップフロップセルのクラスタ情報を作成し、バッファセルの各々を中心に配置制限領域情報を作成し、次にバッファセル以外のセルについて再配置制限領域情報およびクラスタ情報を制約値として再配置処理を行う、というステップをさらに備える(請求項4)。
【0030】
これにより、フリップフロップセルは配置制限領域内で、かつ、クラスタグループ毎にフリップフロップセルがかたまるように配置されることになるので、クロックパスの信号伝播遅延時間を短縮し、スキュー値を抑えることができるので、レイアウト後のタイミング調整作業工数の短縮が可能である。
本発明の第五の態様により、バッファセル以外のセルについて再配置制限領域情報およびクラスタ情報を制約値として再配置処理を行うステップの次に、クロックツリーのネット毎に、被駆動セルの配置位置からクラスタ情報を作成し、作成した各クラスタ毎に、クラスタされた被駆動セル間をクラスタ配線し、駆動セルから各クラスタまでの配線をスター状にルート配線する、というステップをさらに備える(請求項5)。
【0031】
これにより、クロックスキューを抑えたクロック配線が可能である。また、バッファセル間のネットの配線混雑度を緩和することも可能である。
本発明の第六の態様によれば、クロックツリー上のバッファセルの配置処理をボトムアップに決定するステップの次に、クロックツリーの再構成を行うステップを備え、該クロックツリーの再構成のステップで、クロック論理の変更時に論理変更コマンドをネットリストファイルに出力し、該論理変更コマンドに基づいて前記第二のネットリストを変更することにより、レイアウトデータベース上のクロック論理と一致したクロック論理を含む第三のネットリストを作成するステップを更に備える(請求項6)。
【0032】
これにより、レイアウトデータベース上の論理と、ネットリストの論理の一致性を保持することができるので、論理変更後の論理一致性を保証するためのフォーマルベリフィケーション等が利用できる。
本発明の第七の態様により、上記一連の処理のいずれかを実行するプログラムを格納した記録媒体が提供される(請求項7)。
【0033】
【発明の実施の形態】
次に、本発明の実施の形態を説明する。
図1は本発明によるLSIレイアウト方法の一実施の形態の概略を説明するフローチャートである。図27に示した従来例と同様に、本発明の実施の形態においても、LSIレイアウトは、論理設計段階S11と、クロックレイアウト段階S12と、クロック信号線以外の通常ネットの配線段階S13とからなる。
【0034】
論理設計段階S11は、論理合成のステップS111と、本発明により導入されたフロアプランを利用するステップ112と、クロックツリー生成のステップS113からなっている。
論理合成のステップS111では従来同様に、LSIを構成する素子のレジスタ・トランスファ・レベル(RTL)で記述されたハードウエア記述言語(HDL)を、レイアウト可能な論理に論理合成を行って、各々が複数のフリップフロップセルからなる複数のモジュールを配置した第1のネットリスト(Netlist)(1)を作成する。
【0035】
フロアプランの利用ステップS112では、第1のネットリスト(1)上のモジュールをフロアプランに従って配線長が短くなるようにオペレータが再配置し、その結果をフロアプラン情報ファイル10に格納する。
次にステップS113にて、フロアプラン情報ファイル10に格納されているフロアプラン情報に基づいて、フロアプランを考慮し且つクロッスソースから末端のフリップフロップセルまでの間のバッファ段数を最高のバッファ段数に調整したクロックツリー生成を行って第二のネットリスト(2)を作成する。第二のネットリスト(2)にはクロックツリーに接続されたモジュール(フロアプランブロックという)とバッファセルとが含まれている。第二のネットリスト(2)に基づいてクロックツリーに接続されるセルの接続関係の論理をデータベース267(図26)に格納しておく。
【0036】
次に第二のネットリスト(2)とフロアプラン情報を、クロックレイアウト段階S12で用いる。
クロックレイアウト段階S12では先ず、ステップS121で第二のネットリスト(2)からクロックパスの抽出をする。
次にステップS122にて、フロアプラン情報を用いて、且つステップS121で抽出したクロックパスを無視して、データ線に接続されるフリップフロップセルのみの初期配置を行う。
【0037】
次にステップS123にて、クロック信号を入出力するバッファセル(以下クロックバッファセルともいう)のボトムアップ配置を図27のステップS283で示した従来方法と同様に行う。
次にステップS124にて、図5から図15を用いて後に詳述するクロックツリー最終段ネットの再構成処理を行う。
【0038】
次にステップS125にて、クロックバッファセルをもう一度ボトムアップ配置し、ステップS126にてそのバッファセルの配置からフリップフロップセルの配置制限領域(図18参照)を生成し、生成された配置制限領域を配置制限領域情報ファイル12に出力する。
次にステップS127にて、フリップフロップセルのかたまりに関するクラスタ情報を作成し(図19)、作成されたクラスタ情報を第一のクラスタ情報ファイル14に出力する。
【0039】
次にステップS128にて、先に作成したフリップフロップの配置制限領域情報と、クラスタ情報をコンピュータに入力し、バッファセル以外のセルの再配置処理を行う(図20参照)。
次にステップS129にて、ステップS128における再配置の結果に基づいて、フリップフロップセルと各バッファセルについてクラスタ情報を生成し(図21参照)、生成されたクラスタ情報を第二のクラスタ情報ファイル16に出力する。
【0040】
次にステップS130にて、第二のクラスタ情報ファイルの内容をコンピュータに入力し、クロックネットの特殊配線、すなわち、クラスタ内配線(図23参照)と、ルート配線(図24)を行う。ここまでの処理で、全てのセルの配置処理、およびクロックパスの配線が完了している。
次に残った通常ネットの配線を行いレイアウトを完了する。
【0041】
尚、ステップS124におけるクロックツリー最終段ネットの再構成により、レイアウトデータベースの論理は変更しているので、ステップS131にて、先に作成しておいた論理変更コマンドファイル18の内容に基づいて第二のネットリスト(2)の内容の変更処理を行い、データベース267上の論理と一致する論理を持つ第三のネットリスト(3)を作成している。
【0042】
図2は、図1におけるステップS113の処理内容の詳細を示すフローチャートである。
図2において、ステップS21でフロアプラン情報ファイル10の内容をコンピュータに入力し、ステップS22にて、第一のネットリスト(1)に対してこのフロアプラン情報を考慮したバッファリングを行う(図3参照)。
【0043】
次いでステップS23で、バッファセルが配置された第一のネットリスト内の最大のモジュール内の、クロックソースと末端のフリップフロップとの間のバッファ段数の中で最大のバッファ段数を調べる。そしてステップS24で、最大バッファ段数より小さいバッファ段数を含むクロックパス上のバッファセルの数が最大バッファ段数に等しくなるようにバッファセルを配置して、バッファ段数の調整処理を行う(図4参照)。これにより、クロックソースから末端のフリップフロップのすべてにいたる信号伝播遅延時間が等しくなるので、スキューを抑えることができる。
【0044】
図3はフロアプラン情報を考慮したバッファリングを行った後のクロックツリーを示しており、31は半導体チップ、32−1〜32−5はそれぞれ、1個のバッファセルにより駆動されるモジュール(フロアプランブロックともいう)であり、それぞれのモジュールは複数のフリップフロップセル(図3においては図示を省略してある)を含んでいる。各モジュール内のバッファセル33−1〜33−4はモジュール内のフリップフロップセルを駆動するバッファセルを代表して表している。図2におけるステップS22のバッファリングにより、接近したモジュールを共通のクロックバッファで駆動するようにしている。図3においては、接近している2つのモジュール32−1と32−2を共通に駆動するようにバッファセル34を配置し、同様に接近している2つのモジュール33−3と33−4を共通に駆動するようにバッファセル35を配置している。この結果、図39に示した従来例と比較してフロアプランブロックを駆動するネット36が短くなる。
【0045】
図4は図2のステップS24によるバッファ段数の調整結果を表している。図4において、41は大モジュール、42〜44は小モジュール、45はクロックソース、46〜48はフリップフロップセル、49〜55はバッファセルである。ステップS24により、バッファセル50が追加されている。これにより、クロックソース45と末端のフリップフロップセル46との間のバッファ段数、クロックソース45と末端のフリップフロップセル47との間のバッファ段数、およびクロックソース45と末端のフリップフロップセル48との間のバッファ段数が等しくなり、従ってその間の信号遅延時間は等しくなる。
【0046】
図5は図1のステップS124の詳細を説明するフローチャートである。図5において、まず、ステップS51にて、図1にステップS123でクロックバッファのボトムアップ配置を終了したネットリストからクロックツリー最終段ネットを抽出し、次に、ステップS52にて抽出したネットのネット範囲を調べる。そしてステップS53でネット範囲領域が重なっているネットを検索し、重なっているネットがなければ処理を終了して図1のステップS125に進む。重なっているネットがあれば(図6参照)、ステップS56で重なっているネット同志をマージ(併合)する(図8参照)。次いでステップS57で、併合したネットをネット範囲が重ならないように分割し(図11参照)、ステップS58で、分割されたネットの各々にバッファセルを割り当て(図12参照)、ステップS59で、割り当てたバッファセルをそれぞれのネットの中心に仮配置する(図14参照)。これをバッファの仮想配置という。次いでステップS60で論理変更情報を論理変更コマンドとして論理変更コマンドファイル18に出力する。次に、再び、ステップS52のネット範囲を調べる処理に戻り、ネット範囲の重なりがなくなるまで処理を続ける。
【0047】
図6は図5のステップS54の判断で重なるネットがある場合の最終段ネットのネット範囲を示す図である。図において、61はバッファセルBuf1が駆動するネットの範囲を示し、62はバッファセルBuf2が駆動するネットの範囲を示す。ネット範囲61と62とは図示のように重なっている部分がある。図示例では、ネット範囲61内にはフリップフロップセル1〜6が存在しており、ネット範囲62内にはフリップフロップセル7〜12が存在している。
【0048】
図7は図6に示したネット範囲のクロックネットの論理を表す図である。図示のように、クロックツリーの再構成前では、バッファセルBuf1によってフリップフロップセル1〜6が駆動され、バッファセルBuff2によってフリップフロップセル7〜12が駆動される。
図8は図5のステップS56のネットのマージを示す図である。図示のように、図6に示したネット範囲61および62が併合されてフリップフロップセル1〜12とバッファセルBuf1およびBuf2のすべてが、1つのネット範囲81内に収容されている。
【0049】
図9は図8に示したネット範囲のクロックネットの論理を表す図である。図示のように、ネット範囲のマージ後はフリップフロップセル1〜12を駆動するバッファセルがBuf1およびBuf2のどれであるかが不定となっている。
図10および図11は図5のステップS57のネットの分割処理を説明する図である。図示のように、図8の併合ネット81は、ネット範囲が重ならないネット101と102とに分割されている。ネット101にはフリップフロップ1、2、3、7、8、9が含まれている。ネット102にはフリップフロップ4、5、6、10、11、12が含まれている。ネット101はバッファセルBuf1により駆動される。ネット102はバッファセルBuf2により駆動される。
【0050】
図12は図4のステップS58のバッファ割り当てを説明する図である。図示のように、バッファセルBuf1はネット101を駆動するように割り当てられており、バッファセルBuf2はネット102を駆動するように割り当てられている。
図13は図12に示したようにバッファセルを割り当てた後のクロックネットの論理を示す図である。図示のように、バッファセルBuf1はネット101内のフリップフロップ1、2、3、7、8、9に接続されてこれらを駆動し、バッファセルBuf2はネット102内のフリップフロップ4、5、6、10、11、12に接続されてこれらを駆動する。尚、このようにクロックツリーの論理を変更してもよいバッファセルは、“0”の入力に応じて“0”を出力し、“1”の入力に応じて“1”を出力するトルー系のバッファセルである。
図14は図5のステップS59のバッファセルの仮想配置を示す図である。図示のように、バッファセルBuf1はネット101の中央部に配置されており、バッファセルBuf2はネット102の中央部に配置されている。
【0051】
図15は図1のステップS126の配置制限領域生成を説明する図である。図示のように、図14に示したネット101内のバッファセルBuf1を中心としてネット101内のフリップフロップセルができるだけ多く入る菱形の配置制限領域151が形成され、同様に、ネット102内のバッファセルBuf2を中心としてネット102内のフリップフロップセルができるだけ多く入る菱形の配置制限領域152が形成される。配置制限領域の大きさは中心から辺までの距離が設計対象のLSIの設計上で規定されたルート長の範囲にあればよい。こうして形成された配置制限領域の情報は配置制限領域情報ファイル12(図1)に格納される。
【0052】
図16は図1のステップS128の再配置処理の詳細を説明するフローチャートである。図16において、まず、ステップS161でクロックツリーの最終段ネットを1つ抽出する。
次いでステップS162で、配置制限領域情報ファイル12(図1参照)の内容を読み込み、フリップフロップセルに対する配置制限領域(図17の菱形領域)を設定する。
【0053】
次にステップS163で、第一のクラスタ情報ファイル14を読み込み、クラスタでグループ化したフリップフロップ間に仮想ネットを作成する(図18参照)。
次にステップS164で、作成した仮想ネット情報に対し、通常ネット内のセル間接近度より大きいセル間接近度を設定する。即ち、配置制限領域内に仮想ネットを閉じ込める。
【0054】
ステップS161からステップS164の処理を、すべてのクロックツリー最終段ネットについて行い、すべての最終段ネットについての処理が終了すると、ステップS167で配置制限領域とセル間接近度を制約としてフリップフロップセルの再配置処理を実行することにより再配置処理を終了する。
図17は図16のステップS162で設定されたフリップフロップセルの配置制限領域情報を示す図である。図において、171はバッファセル、172はバッファセル171により駆動される多数のフリップフロップセル、173はフリップフロップセルの配置制限領域である。この配置制限領域は図15に示したものと同じである。
【0055】
図18は図16のステップS163で作成された仮想ネットを示す図である。図示のように、クラスタ情報に基づいて図17に示したフリップフロップセル172を複数のクラスタCL1、CL2、CL3、・・・にグループ化し、各グループにおいてセルの間を仮想的に接続して仮想ネットが作成される。
図19は図16のステップS167における仮想ネットの再配置処理を示す図である。図示のように、クラスタCL1〜CL6は配置制限領域173内に閉じ込められている。
【0056】
図20は図19に示したクラスタの再配置後に図1のステップS129によりセル間の接近度をさらに大きくして生成した第二のクラスタ情報を示す図である。図示のように、第二のクラスタ情報は、図19に示した再配置されたクラスタCL1〜CL6内のフリップフロップセル間の配線長がさらに短くなるようにクラスタCL1〜CL6を再生成することにより得られる。この第二のクラスタ情報は第二のクラスタ情報ファイル16に格納しておく。
【0057】
図21は図1のステップS130におけるクロックネットの特殊配線処理の詳細を説明するフローチャートである。図において、ステップS211では、1クロックネットを抽出し、ステップ212では第二のクラスタ情報ファイル16の内容を読み込み、ステップ213では、入力したクラスタ情報に基づいて、クラスタ内配線を行う。ステップ214ではバッファセルからクラスタ配線までのルート配線を行う。ステップ215では全てのクロックネットについて処理が終了しているかを判断し、終了していない場合はステップ216で次のクロックネットについてステップ211〜S214を繰り返す。ステップ215ですべてのクロックネットについて処理が終了している場合は、この特殊配線の処理を終了する。
【0058】
図22は図21のステップ213のクラスタ内配線処理の説明図である。図示のように、図20に示した第二のクラスタ情報に基づいて、クラスタCL1、CL2、CL3、CL4、CL5、CL6のそれぞれの内部に、図35にて説明した従来の横方向に延びるクラスタバーを用いることなく、配線221〜226が自動的に施されている。この段階ではバッファセル227には配線が施されていない。
【0059】
図23は図21のステップS214のルート配線処理の説明図である。図示のように、図22のクラスタ配線221〜226とバッファセル227とが、ルート配線231〜236によりそれぞれ接続されている。
以上の説明ではフリップフロップセルのバッファセルとの接続方法を説明してきたが、同様の手法をバッファセル同志の接続にも適用する。
【0060】
図24はバッファ間ネットのクラスタ配線とルート配線の結果を示す図である。図において、CL1a、CL1b、CL1cはそれぞれ複数のバッファセルを含むクラスタであり、クラスタCL1a内のバッファセル241、クラスタCL2a内のバッファセル242および243、およびクラスタCL3a内のバッファセル244は、バッファセル245により駆動されるバッファセルである。バッファセル245と、各クラスタCL1a、CL2a、CL3aとはそれぞれ1本のルート配線246、247、248で接続されている。この結果、クラスタ内にバッファセル245により駆動されるべき複数のバッファセルが存在していても、図38に示した従来例のような複数の配線による配線の混雑という問題を回避できる。
【0061】
以上のステップS211からステップS214までの配線処理を全てのクロックネットについて行い、クロックネットの配線処理を完了させる。図1のステップS130までの処理により、全てのセル配置とクロックツリーの配線が完了し、最後にクロックネット以外の通常ネット配線を行い、レイアウトを完了する。図25は、図1のステップS122のフリップフロップセルの初期配置において、クロックネットを無視して行う場合を説明する図である。同図において、251〜254はフリップフロップ、255および256はクロックバッファセル、257はクロックバッファセルとフリップフロップセルとを接続するクロックネット、258はフリップフロップセルを接続するデータパスネットである。フリップフロップの初期配置において、本発明の実施例により、クロックネットを無視し、データパスネットのみに着目してフリップフロップセルを配置することにより、図42に示した従来技術における問題を回避して、データパスネットの経路を短くし、且つ配線混雑度を下げることができる。なお、この場合は、クロックネットは、図1のステップS124におけるクロックツリーの再構成の処理において、配線混雑度を緩和することができる。
【0062】
図26は本発明による方法を実施するためのコンピュータシステムの構成を示すブロック図である。図において、バス260に中央処理装置(CPU)261と、CD−ROMドライブ262と、キーボード263と、ディスプレイ264と、ハードディスク265と、メモリ266と、データベース267とが接続されている。図1に示したフローチャートを含む本発明によるLSIレイアウト方法のプログラムは、ハードディスクに予め格納しておいても、CD−ROMに図1に示したフローチャートを含むプログラムを格納し、そのプログラムをCD−ROMドライブ262からハードディスク265にインストールするようにしてもよい。メモリ266には、図1のフローチャートで説明したフロアプラン情報、配置制限領域情報、第一のクラスタ情報(1)、第二のクラスタ情報(2)、第一〜第三のネットリストが格納される。
【0063】
オペレータはディスプレイ264上の画面を見ながら、キーボード263を操作することにより、図1のフローチャートに従ってLSIレイアウトを行う。
【0064】
【発明の効果】
以上説明したように、本発明によれば、論理設計の段階からフロアプランを行い、その結果からクロックツリーを生成するので、フロアプランブロック間のクロック配線長を短くすることができ、信号伝播遅延時間も短縮することができる。
【0065】
また、クロックバッファ段数を調整することでスキューを抑えることが可能である。
また、初期配置でクロックネットを無視した配置し、そのフリップフロップセルの配置結果からクロックネットの再構成を行うことで、クロックパス以外のパスを無理に接近させないようにするので、配線の混雑を緩和することが出来る。
【0066】
また、フリップフロップセルの配置制限およびクラスタ制約による再配置処理を行うことで、クロックツリー最終段ネットのスキューが抑えられる。
また、バッファ間ネットもクラスタを使用した特殊配線することにより、配線混雑を緩和することが可能である。
以上の効果により、全体の配線効率がよくなり、処理時間が短縮することが可能である。
【0067】
また、クロックの信号伝播遅延時間とスキューが抑えることが出来るため、レイアウト後のタイミングエラーを削減し、タイミング調整作業にかかる処理時間が短縮される。
さらに、配線混雑度を抑えることにより配線密度に余裕ができるため、その余裕部分を高密度にすることにより、チップサイズの縮小することも可能である。
【0068】
また、レイアウト後の論理検証にフォーマルベリファイヤー等の高速検証ツールが利用できるため、LSI実装設計時間を短縮することが可能である。
【図面の簡単な説明】
【図1】本発明によるLSIレイアウト方法の一実施の形態の概略を説明するフローチャートである。
【図2】図1におけるステップS113の処理内容の詳細を示すフローチャートである。
【図3】フロアプラン情報を考慮したバッファリングを行った後のクロックツリーを示す図である。
【図4】図2のステップS24によるバッファ段数の調整結果を表す図である。
【図5】図1のステップS124の詳細を説明するフローチャートである。
【図6】図5のステップS54の判断で重なるネットがある場合の最終段ネットのネット範囲を示す図である。
【図7】図6に示したネット範囲のクロックネットの論理を表す図である。
【図8】図5のステップS56のネットのマージを示す図である。
【図9】図8に示したネット範囲のクロックネットの論理を表す図である。
【図10】図5のステップS57のネットの分割処理を説明する図である。
【図11】図5のステップS57のネットの分割処理を説明する図である。
【図12】図4のステップS58のバッファ割り当てを説明する図である。
【図13】図12に示したようにバッファセルを割り当てた後のクロックネットの論理を示す図である。
【図14】図5のステップS59のバッファセルの仮想配置を示す図である。
【図15】図1のステップS126の配置制限領域生成を説明する図である。
【図16】図1のステップS128の再配置処理の詳細を説明するフローチャートである。
【図17】図16のステップS162で設定されたフリップフロップセルの配置制限領域情報を示す図である。
【図18】図16のステップS163で作成された仮想ネットを示す図である。
【図19】図16のステップS167における仮想ネットの再配置処理を示す図である。
【図20】図19に示したクラスタの再配置後に図1のステップS129によりセル間の接近度をさらに大きくして生成した第二のクラスタ情報を示す図である。
【図21】図1のステップS130におけるクロックネットの特殊配線処理の詳細を説明するフローチャートである。
【図22】図21のステップ213のクラスタ内配線処理の説明図である。
【図23】図21のステップS214のルート配線処理の説明図である。
【図24】バッファ間ネットのクラスタ配線とルート配線の結果を示す図である。
【図25】図1のステップS122におけるフリップフロップセルの初期配置は、クロックネットを無視して行う場合を説明する図である。
【図26】本発明による方法を実施するためのコンピュータシステムの構成を示すブロック図である。
【図27】従来のLSIレイアウト方法を説明するフローチャートである。
【図28】従来の方法において、LSIのモジュール内における、バッファセル導入前のクロックツリーの一例を示す図である。
【図29】従来の方法において、LSIのモジュール内における、バッファセルが導入されたクロックツリーを示す図である。
【図30】従来の方法において、LSIのモジュール内におけるバッファセル及びフリップフロップセルの初期配置結果を示す図である。
【図31】従来の方法において、LSIのモジュール内においてバッファセル301をそのバッファセル301が駆動するフリップフロップセル310〜315の配置範囲の中心に配置した例を示す図である。
【図32】従来の方法において、バッファセル321を中心に配置制限領域322を設定した例を示す図である。
【図33】従来の方法において、セルを再配置した結果を示す図である。
【図34】従来の方法において、セルを再配置した結果を示す図である。
【図35】従来の方法において、クラスタ用バー情報351〜357の設定を示す図である。
【図36】従来の方法において、各フリップフロップセルとクラスタ用バーとを結ぶ支線361の配線を示す図である。
【図37】従来の方法において、駆動用バッファセル321からクラスタ用バーへのルート配線を示す図である。
【図38】従来の方法において、バッファ間ネットの特殊配線を示す図である。
【図39】従来の方法において、フロアプランブロックとクロックツリーを示す図である。
【図40】従来の方法において、配置制限領域の重なりを示す図である。
【図41】従来の方法において、配線の混雑を説明する図である。
【図42】従来の方法において、クロックネットを無視しない配置処理を説明する図である。
【符号の説明】
10…フロアプラン情報ファイル
12…配置制限領域情報
14…第一のクラスタ情報ファイル
16…第二のクラスタ情報ファイル
18…論理変更コマンドファイル
32−1〜32−4…フロアプランブロック
33−1〜33−4…バッファセル
34、35…バッファセル
36…クロックパス
41〜44…モジュール
45…クロックソース
46〜48…フリップフロップセル
49〜55…バッファセル
101、102…分割されたネット
151、152…配置制限領域
171…バッファセル
172…フリップフロップセル
173…配置制限領域
227…バッファセル
221〜226…クラスタ内配線
231〜236…ルート配線
245…バッファセル
246〜248…バッファ間クラスタ配線
251〜254…フリップフロップセル
257…クロックネット
258…データパスネット
262…CD−ROMドライブ
Buf1、Buf2…バッファセル
CL1〜CL4…クラスタ
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a semiconductor integrated circuit (LSI) layout method and a recording medium storing an LSI layout program, and more particularly to a clock path mounting design method in an LSI and the recording medium.
[0002]
[Prior art]
The LSI includes a large number of flip-flop cells and buffer cells for driving them. In general, tens of thousands of flip-flops are driven by a single buffer cell via a clock signal line. In such a layout of circuit elements and clock signal lines in an LSI, it is required to shorten the clock wiring length in order to increase the density, shorten the signal propagation delay time, and alleviate the congestion of the wiring. In addition, an optimum circuit element arrangement for suppressing a time difference (referred to as clock skew) with respect to a circuit element that requires a clock signal is required.
[0003]
FIG. 27 is a flowchart for explaining a conventional LSI layout method. As shown in the figure, the LSI layout includes a logic design stage S27, a clock layout stage S28, and a normal net wiring stage S29 other than the clock signal lines.
The logic design stage S27 includes a logic synthesis step S271 and a clock tree generation step S272.
[0004]
In step S271 of logic synthesis, the hardware description language (HDL) described in the register transfer level (RTL) of the elements constituting the LSI is synthesized into logic that can be laid out, and configured as a module. A first netlist (1) is created. In the clock tree generation step S272, a clock tree before the introduction of the LSI buffer cells is created based on the first netlist (1).
[0005]
FIG. 28 is a diagram showing an example of a clock tree in the LSI module before introducing the buffer cell. In the figure, 281 is a module, 282 to 284 are small modules, 285 is a clock source which is a clock signal source, and 286 to 288 are flip-flop cells. At this stage, since the buffer cell has not been introduced yet, the clock source 285 is a circuit for directly driving the flip-flop cells 286 to 288.
[0006]
Next, buffering processing is performed on the first netlist (1) to introduce buffer cells into the clock tree, thereby creating the second netlist (2).
FIG. 29 is a diagram showing a clock tree in which buffer cells are introduced in an LSI module. As shown in the figure, buffer cells 291 to 296 are introduced into the clock tree of FIG. The number of buffer cells in each module is determined according to the number of flip-flop cells to be driven. In FIG. 29, since the number of flip-flop cells in the small modules 282 and 283 is small, the buffer cells are arranged so as to be driven by one buffer cell 292 and 293, respectively. Since the number of the pcells 288 is larger than the number of flip-flop cells in the other small modules, it is driven by the three buffer cells 295, 296, and 297 in a tree structure.
[0007]
Returning to FIG. 27, the contents of the second netlist (2) are transferred to the clock layout stage S28.
The clock layout stage S28 includes steps S281 to S287.
In step S281, a floor plan is acquired. The floor plan is layout information obtained from the LSI designer himself.
[0008]
In step S282, buffer cells and flip-flop cells are initially arranged as shown in FIG. 30 so that the clock wiring length is as short as possible based on the floor plan. FIG. 30 is a diagram showing an initial arrangement result of buffer cells and flip-flop cells in an LSI module. In the figure, the buffer cell 301 and the six flip-flop cells 310 to 315 driven by the buffer cell 301 are connected by a line to indicate that there is a connection relationship.
[0009]
In step S283, the clock buffer is bottom-up arranged. The bottom-up arrangement means that the flip-flop cells that are farthest from the clock source are arranged in order. This is because the buffer cells on the clock bus are bottomed up so that the distance between the buffer cell 301 and the flip-flop cells 310 to 315 driven thereby is as equal as possible based on the arrangement information of the flip-flop cells. It is processing to arrange in. The bottom-up technique includes a technique in which the buffer cell is arranged at the center of the arrangement range of the flip-flop cell driven by the buffer cell, and a technique in which the buffer cell is arranged at the center of gravity of the flip-flop cell driven by the buffer cell.
[0010]
FIG. 31 is a diagram showing an example in which the buffer cell 301 is arranged in the center of the arrangement range of the flip-flop cells 310 to 315 driven by the buffer cell 301 in the LSI module.
Next, in step S284, in order to limit the wiring length from the buffer to the flip-flop cell, a placement restriction region for the flip-flop cell is generated. This is a rhombus region centered on the buffer cell that drives the flip-flop cell. FIG. 32 is a diagram showing an example in which the placement restriction region 322 is set around the buffer cell 321. Next, rearrangement processing is performed in consideration of the arrangement restriction area 322. Here, the arrangement of the buffer cells 321 arranged bottom-up in step S283 is fixed, the arrangement restriction area 321 generated in step S284 is used as the arrangement restriction of flip-flop cells, and cells other than the clock buffer are rearranged. 33 and 34 are diagrams showing the result of rearranging the cells. As shown in the figure, the buffer cell 321 is arranged at the center of the arrangement restriction area 322, and the flip-flop cells 331 to 336 are arranged inside the arrangement restriction area 322.
[0011]
Next, in step S286, special routing of the clock tree final stage net is performed. Here, the three processes shown in FIGS. That is, FIG. 35 shows the setting of cluster bar information 351-357. FIG. 36 shows the wiring of the branch line 361 connecting each flip-flop cell and the cluster bar. FIG. 37 shows route wiring from the driving buffer cell 321 to the cluster bar.
[0012]
Next, special wiring of the inter-buffer net is performed. Here, as shown in FIG. 38, special wiring is provided in a star shape to the four buffer cells 382 to 385 driven by the buffer cell 381. After performing the processing from step S282 to step S287 described above, the clock tree is arranged and wired so as to suppress the signal propagation delay time value and the skew value from the clock source to the flip-flop cell, and then the normal net wiring Processing is in progress.
[0013]
[Problems to be solved by the invention]
The above-described conventional LSI layout method is a technique mainly used in ASIC (Application Specific Integrated Circuit) gate arrays and embedded arrays, and after logic design, the clock layout and LSI mounting are performed without changing the netlist. It is a method of designing. In this conventional method, the clock signal lines are laid out so as not to change the clock tree logic, but to comply with the restrictions imposed by the user's desired clock signal propagation delay time and skew value.
[0014]
However, in the logic design of step 271 and the clock tree generation stage of step 272, the logic design is performed without considering the arrangement position of the flip-flop cell and the wiring path of the clock signal line, so that the clock constraint condition is satisfied for the logic information. However, when the clock layout is performed, there is a problem that the wiring is congested and the clock wiring and the subsequent signal wiring cannot be performed.
[0015]
Details of the problem will be described below.
Since the clock tree generation in step 272 does not consider the floor plan and the arrangement of the flip-flops, as a result of arranging the buffer cells, the floor plan blocks 392 and 395 on the semiconductor chip 391 in FIG. In some cases, the buffer cell 396 or 397 drives a distant floor plan block such as 394, respectively. In this case, the length of the wirings 398 to 401 of the network (hereinafter referred to as the net) that drives the remote floor plan block becomes long, resulting in a problem that the clock signal propagation delay time becomes long and wiring congestion. There is a problem (first problem).
[0016]
In the rearrangement of the flip-flop cells in consideration of the arrangement restricted area in step S285 of FIG. 27, when the arrangement restricted areas 430 and 431 overlap as shown in FIG. 40, the result of the rearrangement of the flip-flop cells is as shown in FIG. In addition, there is a problem that flip-flop cells are concentrated in a common area of the two arrangement restriction areas 430 and 431, and as a result, wiring is congested (second problem). 40 and 41, 410 and 420 are buffer cells, 411 to 416 are flip-flops driven by the buffer cell 410, 421 to 426 are flip-flops driven by the buffer cell 420, and 430 and 431 are arrangement restriction regions. is there. FIG. 41 shows an example in which the flip-flop cells 411 to 416 are moved into the arrangement restriction area 430 and the flip-flop cells 421 to 426 are moved into the arrangement restriction area 431.
[0017]
In addition, by pulling the flip-flop cell from the initial arrangement position into the arrangement restriction region, the wiring length of the net other than the clock connected to the flip-flop cell is lengthened, and the wiring other than the clock is also congested. (Third problem). For example, the wiring becomes long like the wirings 441 to 445 in FIG.
[0018]
As shown in FIG. 38, the wiring between the buffer cells when a plurality of buffer cells are driven by a single buffer cell has a problem that the wiring from the buffer cell to the buffer cell is congested (first). Fourth problem). FIG. 38 shows a state in which the wiring between the buffer cell 381 and the buffer cells 382 and 383 is congested in a configuration in which a plurality of buffer cells 382 to 385 are driven by the buffer cell 381.
[0019]
As a problem other than wiring congestion, there is a problem of a skew value of signal propagation delay time (fifth problem). That is, in step S285 of FIG. 27, the rearrangement process is performed while limiting the arrangement of the flip-flop cells, the flip-flop cells are collected, and the skew value is suppressed. As in the flip-flop cell 371 shown in FIG. In some cases, the flip-flop cell is arranged away from the cluster. In this case, there is a problem that the signal propagation delay time to the cell becomes longer due to the longer wiring to the flip-flop cell, resulting in an increased skew.
[0020]
In the clock tree generation process in step S273 of FIG. 27, the buffer cells are arranged so as to satisfy the fan-out constraint of the buffer cells. As a result, the small module 282 or 283 and the large module 284 in FIG. There are portions where the number of buffer stages up to the flip-flop cell is different. In this case, there is a problem that the signal propagation delay differs between the two-stage and three-stage clock paths, and the skew variation becomes large (sixth problem).
[0021]
Further, in the initial arrangement of step S282 in FIG. 27, conventionally, as shown in FIG. 42, the flip-flop cells 421 to 424 are arranged without ignoring the clock paths 427 and 428 from the clock buffer cells 425 and 426. Therefore, there is also a problem that the wiring paths of the data paths 429 connecting the flip-flop cells intersect and are crowded. There is also a problem that the paths of the data path 429 and the clock paths 427 and 428 become long and cause a timing error (seventh problem).
[0022]
The first problem is that the layout information is not considered when generating the clock tree.
In addition, the second problem and the third problem are caused by the fact that the arrangement restriction areas overlap and that the driven cells are attracted and relocated in the overlapping arrangement restriction areas. .
[0023]
The fourth problem is that the wiring between the buffer cells from the driving buffer cell to each driven buffer is a simple star-shaped wiring.
The fifth problem is that the problem is that the flip-flop cell is simply rearranged in the arrangement restriction region.
[0024]
The sixth problem is that the path with different number of buffer stages has a large variation in clock skew.
The seventh problem is caused by the arrangement of flip-flop cells without ignoring the clock path during the initial arrangement.
In view of the above problems in the prior art, the object of the present invention is that the wiring length of the clock signal line and the other signal lines is short, the degree of wiring congestion is low, the signal propagation delay time is short, and the signal propagation delay An object of the present invention is to provide an LSI layout method for manufacturing an LSI with little variation in time and a recording medium storing an LSI layout program.
[0025]
[Means for Solving the Problems]
In order to achieve the above object, according to the method provided by the first aspect of the present invention, a floor plan is executed on a netlist after logically synthesizing an LSI design content described in RTL, Based on the obtained floor plan information, buffer cells that operate according to the clock signal are arranged, and the number of buffer stages is checked against the result of arranging the buffer cells once, and the number of buffer stages from the clock source to each flip-flop cell is equal. Adjustments are made so as to satisfy (Claim 1).
[0026]
As a result, the clock buffer cells are arranged in consideration of the floor plan information, so that it is not necessary to buffer the remote floor plan block, and as a result, the wiring length of the clock path can be suppressed. The clock signal propagation delay time can be suppressed. Further, since the number of buffer stages is adjusted, clock skew can be suppressed.
[0027]
According to the second aspect of the present invention, the initial placement step performs cell placement processing ignoring the net on the clock tree based on the net list and the floor plan information, and then connects to the clock tree. And determining the position of the flip-flop cell to be performed.
As a result, cells connected to other than the net of the clock signal line (referred to as clock net) and flip-flop cells are initially placed at optimal positions, and the clock net is reconfigured based on the placement results. It is possible to arrange cells that optimize the wiring efficiency of nets and other nets, and the subsequent wiring processing time is shortened. In addition, since the data bus path between the flip-flop cells is optimally arranged, the timing error after the cell layout can be suppressed.
[0028]
According to the third aspect of the present invention, after the step of adjusting the number of buffer stages, the final stage net of the clock tree is extracted from the initial arrangement of the flip-flop cells, the net range of the extracted final stage net is examined, Multiple nets with overlapping net ranges are merged, the merged nets are divided into nets with non-overlapping net ranges, and buffer cells are assigned to the divided nets so that the net ranges do not overlap (Step 3).
[0029]
As a result, the skew variation of the clock last stage net can be suppressed, and the wiring congestion can be reduced.
According to the fourth aspect of the present invention, the step of performing the clock layout includes the step of ignoring the net on the clock tree and the buffer cell on the clock tree based on the result of the placement of the flip-flop by the step of performing the cell placement process. Is determined bottom-up, and for each final stage buffer of the clock tree, cluster information of flip-flop cells is created from the arrangement information of the flip-flop cells driven by the buffers, and placement restriction area information is centered on each buffer cell. And then performing a rearrangement process on the cells other than the buffer cell using the rearrangement restricted area information and the cluster information as constraint values (claim 4).
[0030]
As a result, the flip-flop cells are arranged in the arrangement limited region and so that the flip-flop cells are clustered for each cluster group, so that the signal propagation delay time of the clock path can be shortened and the skew value can be suppressed. Therefore, it is possible to reduce the man-hours for timing adjustment after layout.
According to the fifth aspect of the present invention, after the step of performing the rearrangement process on the cells other than the buffer cell using the rearrangement restricted region information and the cluster information as constraint values, the placement position of the driven cell for each net of the clock tree Cluster information is created from each of the created clusters, cluster wiring is performed between the clustered driven cells, and wiring from the driving cell to each cluster is routed in a star shape. 5).
[0031]
Thereby, clock wiring with reduced clock skew is possible. It is also possible to reduce the wiring congestion degree of the net between the buffer cells.
According to the sixth aspect of the present invention, the step of reconfiguring the clock tree, comprising the step of reconfiguring the clock tree after the step of determining the placement processing of the buffer cells on the clock tree to be bottom-up, When the clock logic is changed, a logic change command is output to the netlist file, and the second netlist is changed based on the logic change command, thereby including a clock logic that matches the clock logic on the layout database. The method further comprises the step of creating a third netlist.
[0032]
As a result, the consistency between the logic on the layout database and the logic of the netlist can be maintained, so that formal verification or the like for guaranteeing the logic consistency after the logic change can be used.
According to a seventh aspect of the present invention, there is provided a recording medium storing a program for executing any one of the series of processes (claim 7).
[0033]
DETAILED DESCRIPTION OF THE INVENTION
Next, an embodiment of the present invention will be described.
FIG. 1 is a flowchart for explaining an outline of an embodiment of an LSI layout method according to the present invention. As in the conventional example shown in FIG. 27, in the embodiment of the present invention, the LSI layout includes a logic design stage S11, a clock layout stage S12, and a normal net wiring stage S13 other than the clock signal lines. .
[0034]
The logic design stage S11 includes a logic synthesis step S111, a step 112 using the floor plan introduced by the present invention, and a clock tree generation step S113.
In step S111 of logic synthesis, the hardware description language (HDL) described in the register transfer level (RTL) of the elements constituting the LSI is synthesized into logic that can be laid out in the same manner as in the past. A first netlist (1) having a plurality of modules each including a plurality of flip-flop cells is created.
[0035]
In the floor plan utilization step S112, the operator rearranges the modules on the first netlist (1) so as to shorten the wiring length according to the floor plan, and stores the result in the floor plan information file 10.
Next, in step S113, based on the floor plan information stored in the floor plan information file 10, the floor plan is considered and the buffer stage number from the cross source to the terminal flip-flop cell is adjusted to the maximum buffer stage number. Clock tree generation is performed to create the second netlist (2). The second netlist (2) includes modules (referred to as floor plan blocks) connected to the clock tree and buffer cells. The logic of the connection relation of the cells connected to the clock tree based on the second netlist (2) is stored in the database 267 (FIG. 26).
[0036]
Next, the second netlist (2) and the floor plan information are used in the clock layout step S12.
In the clock layout stage S12, first, in step S121, a clock path is extracted from the second netlist (2).
Next, in step S122, using the floor plan information and ignoring the clock path extracted in step S121, the initial arrangement of only the flip-flop cells connected to the data line is performed.
[0037]
Next, in step S123, bottom-up arrangement of buffer cells for inputting and outputting clock signals (hereinafter also referred to as clock buffer cells) is performed in the same manner as the conventional method shown in step S283 of FIG.
In step S124, a reconfiguration process of the clock tree final stage net, which will be described in detail later with reference to FIGS. 5 to 15, is performed.
[0038]
Next, in step S125, the clock buffer cells are arranged bottom-up once again, and in step S126, the arrangement restriction area of flip-flop cells (see FIG. 18) is generated from the arrangement of the buffer cells, and the generated arrangement restriction area is arranged. Output to the restricted area information file 12.
Next, in step S127, cluster information relating to the cluster of flip-flop cells is created (FIG. 19), and the created cluster information is output to the first cluster information file 14.
[0039]
In step S128, the previously created flip-flop placement restriction area information and cluster information are input to the computer and cells other than the buffer cells are rearranged (see FIG. 20).
Next, in step S129, based on the result of the rearrangement in step S128, cluster information is generated for the flip-flop cell and each buffer cell (see FIG. 21), and the generated cluster information is stored in the second cluster information file 16. Output.
[0040]
Next, in step S130, the contents of the second cluster information file are input to the computer, and clock net special wiring, that is, intra-cluster wiring (see FIG. 23) and route wiring (FIG. 24) are performed. By the processing so far, the arrangement processing of all the cells and the wiring of the clock path are completed.
Next, the remaining ordinary net is wired to complete the layout.
[0041]
Since the logic of the layout database has been changed by reconfiguring the clock tree last stage net in step S124, the second is determined based on the contents of the logic change command file 18 previously created in step S131. The third netlist (3) having a logic matching the logic on the database 267 is created by changing the contents of the netlist (2).
[0042]
FIG. 2 is a flowchart showing details of the processing content of step S113 in FIG.
In FIG. 2, the contents of the floor plan information file 10 are input to the computer in step S21, and buffering taking this floor plan information into consideration is performed on the first netlist (1) in step S22 (FIG. 3). reference).
[0043]
Next, in step S23, the maximum number of buffer stages among the number of buffer stages between the clock source and the terminal flip-flop in the largest module in the first netlist in which the buffer cells are arranged is checked. In step S24, the buffer cells are arranged so that the number of buffer cells on the clock path including the buffer stage number smaller than the maximum buffer stage number is equal to the maximum buffer stage number, and the buffer stage number adjustment processing is performed (see FIG. 4). . As a result, the signal propagation delay time from the clock source to all of the flip-flops at the end becomes equal, so that the skew can be suppressed.
[0044]
FIG. 3 shows a clock tree after buffering in consideration of floor plan information. 31 is a semiconductor chip, and 32-1 to 32-5 are modules driven by one buffer cell (floor). Each module includes a plurality of flip-flop cells (not shown in FIG. 3). Buffer cells 33-1 to 33-4 in each module are representative of buffer cells that drive flip-flop cells in the module. The approaching module is driven by a common clock buffer by buffering in step S22 in FIG. In FIG. 3, the buffer cell 34 is arranged so as to drive two approaching modules 32-1 and 32-2 in common, and the two approaching modules 33-3 and 33-4 are similarly connected. Buffer cells 35 are arranged to drive in common. As a result, the net 36 for driving the floor plan block is shortened as compared with the conventional example shown in FIG.
[0045]
FIG. 4 shows the adjustment result of the number of buffer stages in step S24 of FIG. 4, 41 is a large module, 42 to 44 are small modules, 45 is a clock source, 46 to 48 are flip-flop cells, and 49 to 55 are buffer cells. The buffer cell 50 is added by step S24. Thus, the number of buffer stages between the clock source 45 and the terminal flip-flop cell 46, the number of buffer stages between the clock source 45 and the terminal flip-flop cell 47, and the buffer between the clock source 45 and the terminal flip-flop cell 48 are obtained. The number of stages is equal, so the signal delay time between them is equal.
[0046]
FIG. 5 is a flowchart for explaining the details of step S124 in FIG. In FIG. 5, first, in step S51, the last net of the clock tree is extracted from the net list in which the clock buffer bottom-up arrangement is completed in step S123 in FIG. 1, and then the net of the net extracted in step S52. Examine the range. In step S53, a search is made for a net with overlapping net range areas. If there is no overlapping net, the process ends and the process proceeds to step S125 in FIG. If there are overlapping nets (see FIG. 6), the overlapping nets are merged in step S56 (see FIG. 8). In step S57, the merged net is divided so that the net ranges do not overlap (see FIG. 11). In step S58, a buffer cell is assigned to each of the divided nets (see FIG. 12). The buffer cells are temporarily arranged at the center of each net (see FIG. 14). This is called virtual placement of buffers. In step S60, the logic change information is output to the logic change command file 18 as a logic change command. Next, the process returns to the process of examining the net range in step S52 again, and the process is continued until there is no overlap of the net ranges.
[0047]
FIG. 6 is a diagram showing the net range of the final stage net when there are overlapping nets as determined in step S54 of FIG. In the figure, 61 indicates the range of the net driven by the buffer cell Buf1, and 62 indicates the range of the net driven by the buffer cell Buf2. The net ranges 61 and 62 have overlapping portions as shown in the figure. In the illustrated example, flip-flop cells 1 to 6 exist in the net range 61, and flip-flop cells 7 to 12 exist in the net range 62.
[0048]
FIG. 7 is a diagram showing the logic of the clock net in the net range shown in FIG. As shown in the figure, before reconfiguration of the clock tree, the flip-flop cells 1 to 6 are driven by the buffer cell Buf1, and the flip-flop cells 7 to 12 are driven by the buffer cell Buff2.
FIG. 8 is a diagram showing net merging in step S56 of FIG. As shown in the figure, the net ranges 61 and 62 shown in FIG. 6 are merged so that the flip-flop cells 1 to 12 and the buffer cells Buf 1 and Buf 2 are all contained in one net range 81.
[0049]
FIG. 9 is a diagram showing the logic of the clock net in the net range shown in FIG. As shown in the figure, after merging the net range, it is undefined which of the buffer cells driving the flip-flop cells 1 to 12 is Buf1 or Buf2.
10 and 11 are diagrams for explaining the net dividing process in step S57 of FIG. As shown in the figure, the merged net 81 in FIG. 8 is divided into nets 101 and 102 whose net ranges do not overlap. The net 101 includes flip-flops 1, 2, 3, 7, 8, and 9. The net 102 includes flip-flops 4, 5, 6, 10, 11, and 12. The net 101 is driven by the buffer cell Buf1. The net 102 is driven by the buffer cell Buf2.
[0050]
FIG. 12 is a diagram for explaining buffer allocation in step S58 of FIG. As shown, buffer cell Buf1 is assigned to drive net 101, and buffer cell Buf2 is assigned to drive net 102.
FIG. 13 is a diagram showing the logic of the clock net after allocating buffer cells as shown in FIG. As shown, the buffer cell Buf1 is connected to and drives the flip-flops 1, 2, 3, 7, 8, and 9 in the net 101, and the buffer cell Buf2 is flip-flops 4, 5, and 6 in the net 102. Connected to 10, 11, 12 to drive these. Note that a buffer cell that may change the logic of the clock tree in this way outputs a “0” in response to an input of “0” and a true system that outputs “1” in response to an input of “1”. Buffer cells.
FIG. 14 is a diagram showing a virtual arrangement of buffer cells in step S59 of FIG. As shown in the figure, the buffer cell Buf 1 is arranged at the center of the net 101 and the buffer cell Buf 2 is arranged at the center of the net 102.
[0051]
FIG. 15 is a diagram for explaining the arrangement restricted area generation in step S126 of FIG. As shown in the figure, a rhombic arrangement restriction region 151 in which as many flip-flop cells in the net 101 as possible are formed around the buffer cell Buf1 in the net 101 shown in FIG. 14, and similarly, the buffer cell Buf2 in the net 102 is formed. A rhombic arrangement restriction region 152 is formed in which as many flip-flop cells in the net 102 as possible enter. The size of the placement restriction area may be such that the distance from the center to the side is within the range of the route length defined in the design of the LSI to be designed. The information on the restricted area formed in this way is stored in the restricted area information file 12 (FIG. 1).
[0052]
FIG. 16 is a flowchart for explaining details of the rearrangement processing in step S128 of FIG. In FIG. 16, first, one final stage net of the clock tree is extracted in step S161.
Next, in step S162, the contents of the arrangement restricted area information file 12 (see FIG. 1) are read, and an arrangement restricted area (diamond area in FIG. 17) for the flip-flop cell is set.
[0053]
Next, in step S163, the first cluster information file 14 is read, and a virtual net is created between flip-flops grouped by cluster (see FIG. 18).
Next, in step S164, an inter-cell approach degree larger than the inter-cell approach degree in the normal net is set for the created virtual net information. In other words, the virtual net is confined within the arrangement restriction area.
[0054]
The processing from step S161 to step S164 is performed for all the last-stage nets of the clock tree, and when the processing for all the final-stage nets is completed, the rearrangement of the flip-flop cells is performed in step S167 with the arrangement restricted area and the inter-cell approach degree as constraints. The rearrangement process is terminated by executing the process.
FIG. 17 is a diagram showing the placement restriction area information of the flip-flop cell set in step S162 of FIG. In the figure, reference numeral 171 is a buffer cell, 172 is a number of flip-flop cells driven by the buffer cell 171, and 173 is an arrangement restriction area of the flip-flop cells. This arrangement restriction area is the same as that shown in FIG.
[0055]
FIG. 18 is a diagram showing the virtual net created in step S163 of FIG. As shown in the figure, the flip-flop cell 172 shown in FIG. 17 is grouped into a plurality of clusters CL1, CL2, CL3,... Based on the cluster information, and the virtual network is formed by virtually connecting the cells in each group. Is created.
FIG. 19 is a diagram showing the virtual net rearrangement process in step S167 of FIG. As illustrated, the clusters CL <b> 1 to CL <b> 6 are confined within the arrangement restriction region 173.
[0056]
FIG. 20 is a diagram showing second cluster information generated by further increasing the degree of proximity between cells in step S129 of FIG. 1 after the cluster rearrangement shown in FIG. As illustrated, the second cluster information is obtained by regenerating clusters CL1 to CL6 so that the wiring length between flip-flop cells in the rearranged clusters CL1 to CL6 shown in FIG. 19 is further shortened. It is done. This second cluster information is stored in the second cluster information file 16.
[0057]
FIG. 21 is a flowchart for explaining the details of the special wiring processing of the clock net in step S130 of FIG. In the figure, in step S211, one clock net is extracted, in step 212 the contents of the second cluster information file 16 are read, and in step 213, intra-cluster wiring is performed based on the input cluster information. In step 214, route wiring from the buffer cell to the cluster wiring is performed. In step 215, it is determined whether the processing has been completed for all the clock nets. If not completed, steps 211 to S214 are repeated for the next clock net in step 216. If all clock nets have been processed in step 215, the special wiring process is terminated.
[0058]
FIG. 22 is an explanatory diagram of the intra-cluster wiring process in step 213 of FIG. As shown in the figure, based on the second cluster information shown in FIG. 20, the clusters extending in the conventional lateral direction described in FIG. 35 inside each of the clusters CL1, CL2, CL3, CL4, CL5, and CL6. The wirings 221 to 226 are automatically provided without using a bar. At this stage, the buffer cell 227 is not wired.
[0059]
FIG. 23 is an explanatory diagram of the route wiring process in step S214 of FIG. As illustrated, the cluster wirings 221 to 226 and the buffer cell 227 in FIG. 22 are connected by route wirings 231 to 236, respectively.
In the above description, the connection method between the flip-flop cells and the buffer cells has been described. However, the same method is applied to the connection between the buffer cells.
[0060]
FIG. 24 is a diagram showing the results of cluster wiring and route wiring of the inter-buffer net. In the figure, CL1a, CL1b, and CL1c are clusters each including a plurality of buffer cells. The buffer cell 241 in the cluster CL1a, the buffer cells 242 and 243 in the cluster CL2a, and the buffer cell 244 in the cluster CL3a are buffer cells. The buffer cell is driven by H.245. The buffer cell 245 and each of the clusters CL1a, CL2a, and CL3a are connected by one route wiring 246, 247, and 248, respectively. As a result, even if there are a plurality of buffer cells to be driven by the buffer cell 245 in the cluster, the problem of wiring congestion due to a plurality of wirings as in the conventional example shown in FIG. 38 can be avoided.
[0061]
The wiring process from step S211 to step S214 is performed for all the clock nets to complete the clock net wiring process. By the processing up to step S130 in FIG. 1, all the cell arrangements and the wiring of the clock tree are completed, and finally the normal net wiring other than the clock net is performed to complete the layout. FIG. 25 is a diagram for explaining a case where the clock net is ignored in the initial arrangement of the flip-flop cells in step S122 of FIG. In the figure, 251 to 254 are flip-flops, 255 and 256 are clock buffer cells, 257 is a clock net that connects the clock buffer cells and the flip-flop cells, and 258 is a data path net that connects the flip-flop cells. In the initial arrangement of the flip-flops, according to the embodiment of the present invention, the clock net is ignored, and the flip-flop cells are arranged by focusing only on the data path net, thereby avoiding the problem in the prior art shown in FIG. The route of the data path net can be shortened and the wiring congestion level can be reduced. In this case, the clock net can reduce the degree of wiring congestion in the process of reconfiguring the clock tree in step S124 in FIG.
[0062]
FIG. 26 is a block diagram showing the configuration of a computer system for carrying out the method according to the present invention. In the figure, a central processing unit (CPU) 261, a CD-ROM drive 262, a keyboard 263, a display 264, a hard disk 265, a memory 266, and a database 267 are connected to a bus 260. The program of the LSI layout method according to the present invention including the flowchart shown in FIG. 1 is stored in the hard disk in advance, but the program including the flowchart shown in FIG. You may make it install in the hard disk 265 from the ROM drive 262. FIG. The memory 266 stores the floor plan information, the arrangement restricted area information, the first cluster information (1), the second cluster information (2), and the first to third netlists described in the flowchart of FIG. The
[0063]
The operator operates the keyboard 263 while looking at the screen on the display 264 to perform LSI layout according to the flowchart of FIG.
[0064]
【The invention's effect】
As described above, according to the present invention, the floor plan is performed from the logic design stage, and the clock tree is generated from the result, so that the clock wiring length between the floor plan blocks can be shortened, and the signal propagation delay Time can be shortened.
[0065]
Further, the skew can be suppressed by adjusting the number of clock buffer stages.
In addition, by ignoring the clock net in the initial placement and reconfiguring the clock net from the result of the flip-flop cell placement, the path other than the clock path is prevented from approaching forcefully, reducing wiring congestion. I can do it.
[0066]
In addition, by performing rearrangement processing by flip-flop cell placement restriction and cluster restriction, the skew of the clock tree final stage net can be suppressed.
In addition, it is possible to alleviate the wiring congestion by specially wiring the buffers between the buffers using clusters.
With the above effects, the overall wiring efficiency can be improved and the processing time can be shortened.
[0067]
Further, since the clock signal propagation delay time and the skew can be suppressed, the timing error after layout is reduced, and the processing time for the timing adjustment work is shortened.
Furthermore, since the wiring density can be afforded by suppressing the degree of wiring congestion, the chip size can be reduced by increasing the density of the margin.
[0068]
In addition, since a high-speed verification tool such as a formal verifier can be used for logic verification after layout, it is possible to shorten the LSI mounting design time.
[Brief description of the drawings]
FIG. 1 is a flowchart for explaining an outline of an embodiment of an LSI layout method according to the present invention;
FIG. 2 is a flowchart showing details of processing contents in step S113 in FIG.
FIG. 3 is a diagram illustrating a clock tree after performing buffering in consideration of floor plan information.
FIG. 4 is a diagram illustrating a result of adjusting the number of buffer stages in step S24 of FIG.
FIG. 5 is a flowchart illustrating details of step S124 in FIG. 1;
6 is a diagram showing a net range of a final stage net when there are overlapping nets in the determination in step S54 of FIG.
7 is a diagram showing the logic of a clock net in the net range shown in FIG. 6. FIG.
FIG. 8 is a diagram showing net merging in step S56 of FIG. 5;
9 is a diagram illustrating the logic of a clock net in the net range shown in FIG. 8. FIG.
FIG. 10 is a diagram for explaining the net dividing process in step S57 of FIG. 5;
FIG. 11 is a diagram for explaining the net dividing process in step S57 of FIG. 5;
12 is a diagram for explaining buffer allocation in step S58 of FIG. 4;
FIG. 13 is a diagram showing the logic of the clock net after allocating buffer cells as shown in FIG.
14 is a diagram showing a virtual arrangement of buffer cells in step S59 of FIG.
FIG. 15 is a diagram for explaining the arrangement restricted area generation in step S126 of FIG. 1;
FIG. 16 is a flowchart illustrating details of the rearrangement process in step S128 of FIG. 1;
FIG. 17 is a diagram showing arrangement restriction region information of flip-flop cells set in step S162 of FIG.
18 is a diagram showing the virtual net created in step S163 of FIG.
FIG. 19 is a diagram showing virtual net rearrangement processing in step S167 of FIG. 16;
20 is a diagram showing second cluster information generated by further increasing the degree of proximity between cells after step S129 of FIG. 1 after the rearrangement of the clusters shown in FIG. 19;
FIG. 21 is a flowchart for explaining the details of the special wiring process of the clock net in step S130 of FIG. 1;
FIG. 22 is an explanatory diagram of intra-cluster wiring processing in step 213 of FIG. 21;
FIG. 23 is an explanatory diagram of the route wiring process in step S214 of FIG.
FIG. 24 is a diagram illustrating a result of cluster wiring and route wiring of an inter-buffer net.
FIG. 25 is a diagram for explaining a case where the initial arrangement of the flip-flop cells in step S122 in FIG. 1 is performed ignoring the clock net.
FIG. 26 is a block diagram showing the configuration of a computer system for carrying out the method according to the present invention.
FIG. 27 is a flowchart illustrating a conventional LSI layout method.
FIG. 28 is a diagram illustrating an example of a clock tree before introducing buffer cells in an LSI module in a conventional method.
FIG. 29 is a diagram showing a clock tree in which buffer cells are introduced in an LSI module in a conventional method.
FIG. 30 is a diagram showing an initial arrangement result of buffer cells and flip-flop cells in an LSI module in a conventional method.
FIG. 31 is a diagram showing an example in which a buffer cell 301 is arranged at the center of an arrangement range of flip-flop cells 310 to 315 driven by the buffer cell 301 in an LSI module in a conventional method.
FIG. 32 is a diagram showing an example in which an arrangement restriction region 322 is set around a buffer cell 321 in the conventional method.
FIG. 33 is a diagram showing a result of rearranging cells in the conventional method.
FIG. 34 is a diagram showing a result of rearranging cells in the conventional method.
FIG. 35 is a diagram showing the setting of cluster bar information 351 to 357 in the conventional method.
FIG. 36 is a diagram showing a wiring of a branch line 361 connecting each flip-flop cell and a cluster bar in the conventional method.
FIG. 37 is a diagram showing route wiring from a driving buffer cell 321 to a cluster bar in a conventional method.
FIG. 38 is a diagram showing special wiring of a net between buffers in the conventional method.
FIG. 39 is a diagram showing a floor plan block and a clock tree in a conventional method.
FIG. 40 is a diagram showing the overlapping of the arrangement restriction regions in the conventional method.
FIG. 41 is a diagram for explaining wiring congestion in a conventional method;
FIG. 42 is a diagram illustrating an arrangement process in which a clock net is not ignored in a conventional method.
[Explanation of symbols]
10 ... Floor plan information file
12: Placement restricted area information
14 ... First cluster information file
16 ... Second cluster information file
18 ... Logical change command file
32-1-32-4 ... Floor plan block
33-1 to 33-4... Buffer cell
34, 35 ... buffer cells
36 ... clock path
41-44 ... Module
45 ... clock source
46-48 ... flip-flop cells
49-55 ... buffer cells
101, 102 ... divided nets
151, 152 ... Arrangement restricted area
171 ... Buffer cell
172 ... flip-flop cell
173 ... Placement restriction area
227: Buffer cell
221 to 226 ... Wiring in the cluster
231 to 236 ... Route wiring
245 ... Buffer cell
246 to 248: Cluster wiring between buffers
251 to 254 ... flip-flop cells
257 ... Clock net
258 ... Data path net
262 ... CD-ROM drive
Buf1, Buf2, ... buffer cells
CL1 to CL4 ... Cluster

Claims (7)

RTLで記述されたLSI設計内容を論理合成することにより、該LSIを構成するフリップフロップセルの間の接続関係を規定する第一のネットリストを生成するステップと、
前記第一のネットリストを用いてフロアプランを実行することにより、前記LSIのクロックツリーを生成するステップと、
前記クロックツリーに基づいて、前記フリップフロップセルを駆動するためのバッファセルを含む第二のネットリストを作成するステップと、
前記フロアプランの実行により得られたフロアプラン情報と前記第二のネットリストとに基づいて、前記バッファセルと、前記フリップフロップセルと、前記バッファセルと前記フリップフロップセルとを接続するクロック信号線との初期配置を含む前記LSIのクロックレイアウトを行うステップと、
前記クロックレイアウト後にクロック信号線以外の通常ネットの配線を行うステップとを備え、
前記初期配置のステップは、クロックソースから各フリップフロップセルまでのバッファセルの段数が等しくなるようにバッファ段数を調整するステップを備える、LSIレイアウト方法。
Generating a first netlist that defines a connection relationship between flip-flop cells constituting the LSI by logically synthesizing the LSI design contents described in RTL;
Generating a clock tree of the LSI by executing a floor plan using the first netlist; and
Creating a second netlist including buffer cells for driving the flip-flop cells based on the clock tree;
Based on floor plan information obtained by execution of the floor plan and the second netlist, the buffer cell, the flip-flop cell, and a clock signal line connecting the buffer cell and the flip-flop cell Performing clock layout of the LSI including initial placement;
Wiring the normal net other than the clock signal line after the clock layout,
The LSI layout method, wherein the initial arrangement step includes a step of adjusting the number of buffer stages so that the number of buffer cells from the clock source to each flip-flop cell is equal.
前記初期配置のステップは、前記ネットリストと前記フロアプラン情報とに基づいて、前記クロックツリー上のネットを無視してセルの配置処理を行い、次いで前記クロックツリーに結線されるべきフリップフロップセルの配置位置を決定するというステップを備える、請求項1に記載のLSIレイアウト方法。The initial placement step performs cell placement processing ignoring nets on the clock tree based on the net list and the floor plan information, and then places flip-flop cells to be connected to the clock tree. The LSI layout method according to claim 1, further comprising a step of determining a position. 前記バッファ段数を調整するステップの後に、前記フリップフロップセルの初期配置から、前記クロックツリーの最終段ネットを抽出し、抽出された最終段ネットのネット範囲を調べ、該ネット範囲が重なる複数のネットをマージし、該マージされたネットをネット範囲が重ならないネットに分割し、分割されたネットにバッファセルを割り当てることによりネット範囲が重ならないようにネットの再構成処理を行う、というステップを備える請求項1に記載のLSIレイアウト方法。After the step of adjusting the number of buffer stages, the final stage net of the clock tree is extracted from the initial arrangement of the flip-flop cells, the net range of the extracted final stage net is examined, and a plurality of nets where the net ranges overlap are extracted. Merging, dividing the merged net into nets that do not overlap with the net ranges, and reallocating the nets so that the net ranges do not overlap by assigning buffer cells to the divided nets. Item 4. The LSI layout method according to Item 1. 前記クロックレイアウトを行うステップは、前記クロックツリー上のネットを無視してセルの配置処理を行うステップによる前記フリップフロップの配置結果に基づいて、前記クロックツリー上のバッファセルの配置位置をボトムアップに決定し、クロックツリーの最終段バッファ毎に、バッファが駆動するフリップフロップセルの配置情報から、フリップフロップセルのクラスタ情報を作成し、前記バッファセルの各々を中心に配置制限領域情報を作成し、次に前記バッファセル以外のセルについて再配置制限領域情報およびクラスタ情報を制約値として再配置処理を行う、というステップをさらに備える、請求項2に記載のLSIレイアウト方法。In the clock layout step, the buffer cell placement position on the clock tree is bottomed up based on the result of the flip-flop placement in the cell placement process ignoring the net on the clock tree. For each final stage buffer of the clock tree, the cluster information of the flip-flop cells is created from the placement information of the flip-flop cells driven by the buffers, the placement restricted area information is created around each of the buffer cells, The LSI layout method according to claim 2, further comprising a step of performing a rearrangement process on the cells other than the buffer cell using the rearrangement restricted area information and the cluster information as constraint values. 前記バッファセル以外のセルについて再配置制限領域情報およびクラスタ情報を制約値として再配置処理を行うステップの次に、前記クロックツリーのネット毎に、被駆動セルの配置位置からクラスタ情報を作成し、作成した各クラスタ毎に、クラスタされた被駆動セル間をクラスタ配線し、駆動セルから各クラスタまでの配線をスター状にルート配線する、というステップをさらに備える、請求項4に記載のLSIレイアウト方法。Next to the step of performing the rearrangement processing using the relocation restriction area information and the cluster information as constraint values for cells other than the buffer cell, for each net of the clock tree, create cluster information from the placement position of the driven cell, 5. The LSI layout method according to claim 4, further comprising the steps of: performing cluster wiring between the clustered driven cells for each created cluster; and routing the wiring from the driving cell to each cluster in a star shape. . 前記クロックツリー上のバッファセルの配置処理をボトムアップに決定するステップの次に、クロックツリーの再構成を行うステップを備え、該クロックツリーの再構成のステップで、クロック論理の変更時に論理変更コマンドをネットリストファイルに出力し、該論理変更コマンドに基づいて前記第二のネットリストを変更することにより、レイアウトデータベース上のクロック論理と一致したクロック論理を含む第三のネットリストを作成するステップを更に備える、請求項に記載のLSIレイアウト方法。A step of reconfiguring the clock tree after the step of determining the placement processing of the buffer cells on the clock tree from the bottom up is a step of reconfiguring the clock tree. Generating a third netlist including a clock logic that matches the clock logic on the layout database by changing the second netlist based on the logic change command. The LSI layout method according to claim 4 , further comprising: 請求項1から請求項6までの何れか一項に記載のステップを実行する、LSIレイアウト用プログラムを格納した記録媒体。A recording medium storing an LSI layout program for executing the steps according to any one of claims 1 to 6.
JP25140098A 1998-01-26 1998-09-04 LSI layout method and recording medium storing LSI layout program Expired - Fee Related JP3614306B2 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP25140098A JP3614306B2 (en) 1998-09-04 1998-09-04 LSI layout method and recording medium storing LSI layout program
PCT/JP1999/000205 WO2004102657A1 (en) 1998-01-26 1999-01-21 Method and apparatus for optimizing circuit signal line, recording media of optimization program, and recording media of method and program for circuit design
US09/600,144 US6651224B1 (en) 1998-01-26 1999-01-21 Method of optimizing signal lines within circuit, optimizing apparatus, recording medium having stored therein optimizing program, and method of designing circuit and recording medium having stored therein program for designing circuit
US10/634,815 US7032198B2 (en) 1998-01-26 2003-08-06 Method of optimizing signal lines within circuit, optimizing apparatus, recording medium having stored therein optimizing program, and method of designing circuit and recording medium having stored therein program for designing circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25140098A JP3614306B2 (en) 1998-09-04 1998-09-04 LSI layout method and recording medium storing LSI layout program

Publications (2)

Publication Number Publication Date
JP2000082744A JP2000082744A (en) 2000-03-21
JP3614306B2 true JP3614306B2 (en) 2005-01-26

Family

ID=17222289

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25140098A Expired - Fee Related JP3614306B2 (en) 1998-01-26 1998-09-04 LSI layout method and recording medium storing LSI layout program

Country Status (1)

Country Link
JP (1) JP3614306B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4568599B2 (en) * 2004-12-24 2010-10-27 富士通株式会社 Logic circuit dividing method and apparatus

Also Published As

Publication number Publication date
JP2000082744A (en) 2000-03-21

Similar Documents

Publication Publication Date Title
US10268797B2 (en) Architectural physical synthesis
US8819608B2 (en) Architectural physical synthesis
US6080201A (en) Integrated placement and synthesis for timing closure of microprocessors
US8001509B2 (en) Method for programming a mask-programmable logic device and device so programmed
US8732634B1 (en) Method and apparatus for performing fast incremental resynthesis
WO2004102657A1 (en) Method and apparatus for optimizing circuit signal line, recording media of optimization program, and recording media of method and program for circuit design
US9589090B1 (en) Method and apparatus for performing multiple stage physical synthesis
JPH08510885A (en) Field programmable logic device that dynamically interconnects to a dynamic logic core
JP2005182654A (en) Reconfigurable circuit, processing device having reconfigurable circuit, function determination method of logic circuit in reconfigurable circuit, circuit generation method and circuit
US9852255B2 (en) Method and apparatus for implementing periphery devices on a programmable circuit using partial reconfiguration
US9026967B1 (en) Method and apparatus for designing a system on multiple field programmable gate array device types
US10586004B2 (en) Method and apparatus for utilizing estimations for register retiming in a design compilation flow
US8793629B1 (en) Method and apparatus for implementing carry chains on FPGA devices
CN102893282B (en) For performing method and the equipment of asynchronous and synchronous reset removal in comprehensive period
US8225245B2 (en) Method of implementing physically realizable and power-efficient clock gating in microprocessor circuits
Du Nguyen et al. Synthesizing HDL to memristor technology: A generic framework
JP3614306B2 (en) LSI layout method and recording medium storing LSI layout program
US7146591B2 (en) Method of selecting cells in logic restructuring
US11507723B2 (en) Method and apparatus for performing incremental compilation using structural netlist comparison
Pedram et al. Combining technology mapping with layout
US8769461B1 (en) Replicating a driver of a net in a circuit design
US8661385B1 (en) Method and apparatus for performing delay annotation
JPH11260927A (en) In-lsi signal-distribution system and method therefor
JP2008090869A (en) Processor

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040525

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040723

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040928

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041026

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081112

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081112

Year of fee payment: 4

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091112

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101112

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101112

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111112

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111112

Year of fee payment: 7

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111112

Year of fee payment: 7

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111112

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121112

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121112

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131112

Year of fee payment: 9

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees