JP3653814B2 - Delay value calculation method - Google Patents

Delay value calculation method Download PDF

Info

Publication number
JP3653814B2
JP3653814B2 JP22617695A JP22617695A JP3653814B2 JP 3653814 B2 JP3653814 B2 JP 3653814B2 JP 22617695 A JP22617695 A JP 22617695A JP 22617695 A JP22617695 A JP 22617695A JP 3653814 B2 JP3653814 B2 JP 3653814B2
Authority
JP
Japan
Prior art keywords
delay
net
element group
hierarchical
hierarchy
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
JP22617695A
Other languages
Japanese (ja)
Other versions
JPH0974138A (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co 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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP22617695A priority Critical patent/JP3653814B2/en
Publication of JPH0974138A publication Critical patent/JPH0974138A/en
Application granted granted Critical
Publication of JP3653814B2 publication Critical patent/JP3653814B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【産業上の利用分野】
本発明は、半導体集積回路のレイアウト設計における論理的接続検証方法と、タイミング設計における遅延値算出方法に関するものである。
【0002】
【従来の技術】
同期式回路は、動作タイミング、即ちクロック信号の立ち上がり(立ち下がり)のタイミングによって回路を動作させている。理想的なクロック分配は半導体基板(チップ)上のいずれの場所でも同時にクロック信号が得られることである。しかし、実際はクロック信号配線の引き回しや接続されている素子に応じた時間的遅れが生じるので、クロック発生素子に近い位置で得られたクロック信号と離れた位置で得られたクロック信号とは到達時間差(スキュー)が生じる。
【0003】
スキューが大きくなると同期がとれなくなるので正常な回路動作ができなくなる。従って、クロック信号のスキュー低減は重要な課題である。
【0004】
このスキュー低減のために、クロック木方式の設計方法がある。これの代表的なものとして、H木方式がある。("Reduction of Clock delays in VLSI Structure," Proc. IEEE Int. Conf. on Computer Design, 1984)。
【0005】
この方式は、結線する2つの素子(群)の配線経路が完全対称となるようH型に配線を行なって等しいディレイの配線を提供するものである。H型の分岐点には例えばバッファセル等の素子が挿入されるのが一般的である。これを実現する場合、論理設計時にこのクロック構造を意識してバッファセル等を論理回路上に挿入されないで、レイアウト設計時に挿入することが多い。従って、ネットリストで表現された論理接続情報とレイアウト終了後の論理接続情報は一致しなくなる。
【0006】
近年レイアウト設計を行なうためにはレイアウトツール(自動配置配線ツール)を用いることが一般的であるが、最近のそのツールは入力したネットリストに対してレイアウト側で修正を行なった場合、修正部分を反映した修正ネットリストを出力する機能を有している。自動配置配線ツールが出力した結果は修正ネットリストを元にレイアウトを生成している筈だが、ツール自身のバグや一度設計した後若干の人手によるレイアウト修正等が入る場合があるので、再度論理的接続検証を行なうことは避けられない。
【0007】
また、得られたレイアウト結果に対して所望のタイミングで動作するかどうかを検証することはそのチップを製造してよいかどうか判断するために最重要なことである。それを行なう工程はバックアノテーションと呼ばれる。それは、レイアウト結果から素子の位置情報と配線情報(RCネットワーク:Rは抵抗、Cは容量)を抽出し、それから素子遅延と配線遅延を計算し、その結果をタイミングシミュレータ等に返してシミュレーションを行なうことである。この場合、素子遅延と配線遅延をチップ全体に対して求める必要があるので効率的な方法を行なわないと膨大な時間を要する。特に、階層設計が一般になっている今、チップ全体で一度に処理することは難しい。
【0008】
また、最近では遅延を高精度に計算するために各素子の入力信号の傾きや動作ポイント(ドライビングポイント)を考慮した方法が採られるようになり、複雑な計算を要する場合が多い。
【0009】
この場合、各素子の入力側の配線情報も必要になる。一方、階層展開は素子の入出力関係を意識しないで階層間にまたがるネット情報のみを上位の階層の情報と合成していくだけで展開できる。遅延計算処理と階層展開処理を両立させることができれば効率の良い遅延計算が行なえるであろう。
【0010】
また、前述のクロック木において遅延結果をタイミングシミュレータ等に返す場合、元のネットリストと異なったレイアウト結果から抽出し遅延計算したので単純に返すことができない。何故なら、元のネットリストにない素子の情報が入っているからである。一般にタイミングシミュレータに遅延値を返す方法は、素子上の端子の2点をペア(from-to)で表現し、その間に遅延値を割り当てる方法を採る。よって、ネットリスト上で定義されていない素子をもって遅延値を返そうとしても、その素子が存在しないので遅延値は返すことができない。
【0011】
【発明が解決しようとする課題】
以上のように、クロック木をレイアウト設計時に挿入した場合、ネットリストから得られる論理情報とレイアウト結果から得られる論理情報が異なるため、通常行なわれるネットリストとレイアウトとの接続検証が行なえなくなるといった問題が生じる。
【0012】
また、レイアウト結果から素子の入力波形の傾きを考慮して素子内遅延や配線遅延を計算する場合、階層展開するために必要な情報と遅延計算するために必要な情報は異なるといった問題点が生じる。
【0013】
また、上で求めた遅延結果でクロック木の遅延結果をタイミングシミュレータ等に返す場合、元のネットリストにない素子が含まれているため、単純に返すことができない問題点が生じる。
【0015】
第1の発明は、半導体集積回路の構成要素となる1つ以上素子群(例えば、機能ブロックや論理セル)を配置した後それらの間を論理接続要求に従って配線することを階層的に行なってレイアウト設計をした階層構造を持つ前記半導体集積回路のレイアウト結果に対して素子内遅延と配線遅延を算出する方法であって、遅延計算するためにレイアウト階層を展開していく順番を決定する階層展開順序決定ステップと、前記階層展開順序ステップで決定した順番に従って素子群を選択するブロック選択ステップと、前記ブロック選択ステップで選択された前記素子群に対してこの階層で遅延計算するための素子群及びネットを抽出する第1の素子群/ネット抽出ステップと、前記第1の抽出ステップで抽出された素子群/ネットの素子内遅延と配線遅延を計算する遅延計算ステップと、前記ブロック選択ステップで選択された前記素子群に対して上位の階層と合成するための外部端子につながるネットと素子及び該素子につながる内側の素子とネットからなる素子群及びネットを抽出する第2の素子群/ネット抽出ステップと、前記階層展開順序決定ステップで得られた階層展開の順番に従って、前記第2の素子群/ネット抽出ステップによって得られた下位階層の素子群及びネットと上位階層の素子及びネットを合成する階層展開ステップと、遅延計算した情報の全てを合成する遅延値情報合成ステップを備えたことを特徴とする半導体集積回路の遅延値算出方法である。
【0017】
【作用】
上記した構成によって、第1の発明は、下位の階層から順に上位の階層に処理していく際に、下位の階層の外部端子につながるネットと素子及び該素子につながる内側の素子とネットからなる素子群及びネットを抽出して上位の階層と合成することにより、下位の階層の遅延計算では不正確になる箇所を上位の階層の遅延計算で正確に求めることができ、さらに、遅延計算結果が得られた後、正確な遅延計算を行なったところのみを選択して合成しているので、結果として、必要最小限のデータで遅延計算をしながら階層展開が可能となるだけでなく、得られた遅延計算結果は全て正確なものとなる。
【0020】
【実施例】
以下本発明の一実施例のレイアウト検証方法及び遅延値算出方法について、図面を参照しながら説明する。
【0021】
(実施例1)
以下本発明の第1の実施例について図1及び図4を参照しながら説明する。図1は本発明の第1の実施例におけるレイアウト検証方法を実現するフロー図である。
【0022】
まず、必要なデータに関して説明を行なう。
図4はある回路の一部分を示した図である。図4(a)は元のネットリストSの論理回路を表している。回路1とバッファ21が接続され、さらにそれは複数のフリップフロップ22のクロック端子につながっている。また、フリップフロップ22のデータ端子は回路2につながっている。
【0023】
このネットリストSからクロック木を生成したときの論理回路を図4(b)に示す。バッファ21を根としてバッファ23や24を木の分岐に挿入しフリップフロップ22を葉に配置した構造になっている。これは前述のクロック木方式の一実施例である。レイアウト結果から抽出される情報は図4(b)の状態であると考える(前述のように、この論理回路に基づいてレイアウトを行なうが、実際にそのようになると完全に保証されない)。前述のようにレイアウトツールを使った場合、修正ネットリストが出力できるのでこのクロック木を反映したネットリストの入手は可能である。ここで、そのネットリストをS'とする。
【0024】
以上により、元のネットリストSと修正ネットリストS'、レイアウトツールによって作成したレイアウト結果図の3つが揃ったことになる。
【0025】
さて、第1の実施例におけるレイアウト検証方法について図1を用いて説明する。まず、ネットリストS-S'間相違抽出ステップ1によって、ネットリストSとS'の相違点を求める。図4の場合、バッファ21とフリップフロップ22の間の構造が異なる。例えば、同図の太線はその一例である。
【0026】
次に、論理チェックステップ2によって、パス毎に異なる部分同士(バッファ21とフリップフロップ22の間、バッファ21とフリップフロップ25の間等)の論理的検証を行なう。ここで、バッファ21とフリップフロップ22を例にとって説明する。図4(a)のバッファ21とフリップフロップ22は、直接配線でつながっているので論理的の変化はない。図4(b)のバッファ21とフリップフロップ22は、バッファが2つ挿入されているだけで論理的の変化はない。よって、両図とも論理的変化がないことがわかる。これを全パスについて検証する。
【0027】
以上によって、全パスの論理に変更がないなら、図4の(a)の回路と(b)の回路は論理的に同一なものが証明されたので、ネットリストS'はネットリストSと論理的に等価であることになる。なお、不一致が生じた場合、エラー処理ステップ4でその箇所を明示し、ネットリストSやS'のチェックと修正等を行なって再度ネットリストS-S'間相違抽出ステップ1から実行する。
【0028】
そして最後に、ネットリストS'を用いて、ネットリストS'による接続検証ステップ3を実行し、レイアウトの論理的接続検証が終了する。このステップ3は従来のレイアウト接続検証である。任意の方法でよい。
【0029】
(実施例2)
以下本発明の第2の実施例について図2、図5〜8を参照しながら説明する。図2は本発明の第2の実施例における階層的に遅延算出する方法を示すフロー図である。
【0030】
ここで、本発明を説明する前にその中で使われる遅延計算ステップ8について説明しておく。
【0031】
図5は回路の一部分を表した図である。図中で、30はAND素子、31はAND30のある入力側につながるバッファ、32はAND30の出力側につながるバッファ、33はバッファ31とAND30間のネット、34はAND30の出力側ネットである。
【0032】
さて、ステップ8で行なう、AND30の素子内遅延と、AND30とバッファ32間の配線遅延の求め方について説明する。
【0033】
遅延時間は、入力波形の傾きによって異なることが知られている。例えば、AND30の入力側ネット33の構成によって入力波形は異なり、その影響は素子内遅延に及ぼす。そこで、遅延計算する際、AND30の入力側のネットの状態を抵抗と容量でモデル化したRCネットワークで表し、そのネットワークから入力波形の傾きを算出し、素子内遅延はその入力波形の傾きを一パラメータとして計算する。また、配線遅延は、出力側端子からある素子の入力側端子までの配線の影響による遅延である。図5では出力側ネット34がそれに当たるが、これは入力波形の傾きを求めるときと同様にRCネットワークを算出し、その結果を基に各出力側端子からある素子の入力側端子までの配線遅延を算出する。
【0034】
以上から、ある素子の遅延値を計算する際、その素子の入出力側ネットが揃っていないと正確な計算ができないことがわかる。なお、この遅延計算方法は、例えば市販されている遅延計算ツールのマニュアル(文献:エクセレントデザイン社発行, "Peacock Reference Manual V2.0")に記載されている。
【0035】
次に、第2の実施例における遅延値算出方法について説明する。図6(a)は回路の一例である。図のように、2階層で、最上位階層はブロックAであり、その中にハードブロック(例えば、メモリブロック等)のブロックB、ソフトブロック(例えば、スタンダードセル方式ブロック)のブロックC、Dがあり、さらにソフトブロック内に複数の素子40(素子の左側を入力端子、右側を出力端子とする)とその間にネット(配線)が存在しているものとする。この階層構造を図6(b)に示す。
【0036】
まず、階層展開順序決定ステップ5で階層展開の順番を決定する。展開はボトムアップに行なわれ、この図の場合、ブロックCとDを処理後、最後にブロックAが展開される。ここで、ブロックBはハードブロックなので展開する必要はない。
【0037】
次にその順番に従って、ブロックを選択する(ブロック選択ステップ6)。
まず、ブロックCが選択される。そのブロックCに対して、素子群/ネット抽出1ステップ7により、遅延計算するための素子群とネットを抽出する。図7(a)では太線がそれに当たる。この素子群とネットを基に、遅延計算ステップ8を実行し、遅延計算を行なう。その結果は例えばファイルDFCに書き込まれる。例えばファイルの表現形式として、2つの素子端子のペア(from-to)に遅延値を割り当てるものがある。SDFフォーマット(文献:Cadence社発行, "SDF Annotator User Guide")がその一例である。
【0038】
次に、階層展開用データを求めるために、第2の素子群/ネット抽出ステップ9を実行する。前述の遅延計算ステップ8の説明で明らかなように、素子の入出力が完全に揃っていないと正確な遅延計算ができない。そこで、このステップ9では今遅延計算に使われた素子群/ネット(図7(a))対して正確に計算されていないもの、即ち外部端子41につながるネットと素子及びその素子につながるさらに内側の素子及びネットの全てを抽出する。図7(b)の実線で表した部分がそれに当たる。ここで、できたブロックをブロックC'とする。同様に、ブロックDについても第1の素子群/ネット抽出ステップ7と遅延計算ステップ8を実行し、遅延計算を行ない(ファイルDFDの生成)、さらに、素子群/ネット抽出2ステップ9を実行して、ブロックD'を生成する(図7(b)参照)。
【0039】
以上によって、ブロックCとDの処理が終了し、同一階層のブロックがなくなったので階層展開ステップ10を実行する。上位階層ブロックはブロックAである。下位階層ブロックはブロックB、C'、D'である。このステップ10によって全ての素子群とネットを合成する。図8(a)はその結果である。
【0040】
そして再び、ブロック選択ステップ6を実行してブロックAを選択し、前述と同様に、第1の素子群/ネット抽出ステップ7と遅延計算ステップ8を実行し(ファイルDFAの生成)、さらに、素子群/ネット抽出2ステップ9を実行し、ブロックA'を生成する(以上、図8(a)参照)。ここで、ブロックAには外部端子がないので、結局ブロックA'は空となることに注意。
【0041】
以上により、全ての階層の展開が終ったので、最後に遅延計算結果を1つに合成するために遅延値情報合成ステップ11が実行される。ここで注意しなければならないのは合成の仕方である。図8(b)はどの時点の遅延計算結果を使って合成しているかを表している。
太線は下位階層で遅延計算された結果であり(DFCとDFD)、実線は上位階層で遅延計算された結果(DFA)である。
【0042】
遅延値の選択基準は以下のとおりである。
1)外部端子とつながるネットが出力側ネットであったとき、そのネットにつながる素子Eの出力側のネットの配線遅延とそれに接続する素子Eを除く素子の素子内遅延は下位階層側で計算された遅延結果を採用する。
【0043】
2)外部端子とつながるネットが入力側ネットであったとき、そのネットにつながる素子Eの出力側のネットの配線遅延とそれに接続する素子Eを除く素子の素子内遅延は上位階層側で計算した遅延結果を採用する。
【0044】
以上によって、全体の遅延計算が終了し、タイミングシミュレータ等にその値が返されてシミュレーションを行なう。
【0045】
(実施例3)
以下本発明の第3の実施例について図3及び図9を参照しながら説明する。図3は本発明の第3の実施例におけるクロック木上の遅延値を算出する方法を示す図である。
【0046】
図9において、(a)はクロック木生成前の論理図、(b)はクロック木生成後の論理図である。
実施例1でも述べたように、クロック木の生成はレイアウト設計時に行なわれるので、単純にレイアウト図から遅延値を算出してもシミュレータに返すことはできない。そこで本発明はそれを返すことができるようにしたものである。
【0047】
まずレイアウト設計時、即ち図9(b)の状態のレイアウト結果に対して、遅延計算ステップ12を用いて遅延値算出を行なう。このステップ12は、例えば、実施例2で示したように階層レイアウトの結果から本発明の第2を実行させて遅延計算をしたものである。
元のネットリストSはクロック木がないので追加された素子を削除した形で遅延結果を生成しなければならない(図9(a))。
【0048】
そこで、クロックネット内遅延値算出ステップ13で、追加素子とそれに関わるネットによって変化した遅延値を基に遅延を算出する。図9(a)と(b)の太線は、始点からフリップフロップ52への同一パスである。本来返さなければならない遅延値は始点からフリップフロップ52までの遅延時間なので、ステップ13でそのパス上で計算された遅延値の総和を計算し、その値を図9(a)における始点からフリップフロップ52の遅延値とする。図の場合、
始点からフリップフロップ52の遅延値 =
(バッファ52の素子内遅延)+
(バッファ52の出力端子からバッファ53の入力端子までの配線遅延)+
(バッファ53の素子内遅延)+
(バッファ53の出力端子からバッファ54の入力端子までの配線遅延)+
(バッファ54の素子内遅延)+
(バッファ54の出力端子からフリップフロップ52の入力端子までの配線遅延)
となる。
【0049】
この計算をクロック木内の全てのパスについて実行する。得られた結果がクロック木上の遅延時間である。
【0050】
以上により、遅延計算は単純にパス内の遅延時間の和だけなので非常に高速に計算できる。
【0051】
【発明の効果】
以上のように、第1の発明は、階層展開に必要な最小限のデータと遅延計算に必要な最小限のデータで処理を行なっているので、メモリ使用量が少なく、正確で高速な処理が可能となる
【図面の簡単な説明】
【図1】本発明の第1の実施例におけるレイアウト検証を示すフロー図
【図2】本発明の第2の実施例における階層的に遅延算出する方法を示すフロー図
【図3】本発明の第3の実施例におけるクロック木上の遅延値を算出する方法を示すフロー図
【図4】本発明の第1の実施例を説明するための回路の一例を示す図
【図5】遅延計算を説明するための図
【図6】本発明の第2の実施例を説明するための分解図
【図7】同実施例を説明するための分解図
【図8】同実施例を説明するための分解図
【図9】本発明の第3の実施例を説明するための回路の一例を示す図
【符号の説明】
1 ネットリストS-S'間相違抽出ステップ
2 論理チェックステップ
3 ネットリストS'による接続検証ステップ
4 エラー処理ステップ
5 階層展開順序決定ステップ
6 ブロック選択ステップ
7 素子群/ネット抽出1ステップ
8 遅延計算ステップ
9 素子群/ネット抽出2ステップ
10 階層展開ステップ
11 遅延値情報合成ステップ
12 遅延計算ステップ
13 クロックネット内遅延算出ステップ
[0001]
[Industrial application fields]
The present invention relates to a logical connection verification method in layout design of a semiconductor integrated circuit and a delay value calculation method in timing design.
[0002]
[Prior art]
The synchronous circuit operates the circuit at the operation timing, that is, the rising (falling) timing of the clock signal. An ideal clock distribution is that a clock signal can be obtained simultaneously at any location on a semiconductor substrate (chip). However, in actuality, there is a time delay depending on the routing of the clock signal wiring and connected elements, so the clock signal obtained at a position close to the clock generating element and the clock signal obtained at a distant position are different in arrival time. (Skew) occurs.
[0003]
When the skew increases, synchronization cannot be achieved and normal circuit operation cannot be performed. Therefore, reducing the skew of the clock signal is an important issue.
[0004]
In order to reduce this skew, there is a clock tree design method. A typical example of this is the H-tree method. ("Reduction of Clock delays in VLSI Structure," Proc. IEEE Int. Conf. On Computer Design, 1984).
[0005]
In this system, the wiring paths of two elements (groups) to be connected are wired in an H shape so that the wiring paths are completely symmetric, thereby providing equal delay wiring. For example, an element such as a buffer cell is generally inserted at the H-type branch point. When realizing this, it is often the case that a buffer cell or the like is not inserted on the logic circuit in consideration of the clock structure at the time of logic design, but is inserted at the time of layout design. Accordingly, the logical connection information expressed in the net list does not match the logical connection information after the layout ends.
[0006]
In recent years, it is common to use a layout tool (automatic place and route tool) to perform layout design. However, recently, when the tool corrects the input netlist on the layout side, It has a function to output the reflected corrected netlist. The result of the automatic placement and routing tool output is that the layout is generated based on the modified netlist, but there may be bugs in the tool itself or some manual layout correction after design once, so logical again It is inevitable to perform connection verification.
[0007]
In addition, verifying whether or not it operates at a desired timing with respect to the obtained layout result is the most important for determining whether or not the chip can be manufactured. The process of doing that is called back annotation. It extracts element position information and wiring information (RC network: R is resistance, C is capacitance) from the layout result, calculates element delay and wiring delay, and returns the result to a timing simulator or the like for simulation. That is. In this case, since it is necessary to obtain the element delay and the wiring delay for the entire chip, an enormous amount of time is required unless an efficient method is used. In particular, now that hierarchical design is common, it is difficult to process the entire chip at once.
[0008]
Recently, in order to calculate the delay with high accuracy, a method taking into account the inclination of the input signal of each element and the operation point (driving point) has been adopted, and complicated calculation is often required.
[0009]
In this case, wiring information on the input side of each element is also required. On the other hand, the hierarchical expansion can be expanded only by synthesizing only the net information straddling the hierarchy with the information of the higher hierarchy without being aware of the input / output relationship of the elements. If delay calculation processing and hierarchy expansion processing can be made compatible, efficient delay calculation will be possible.
[0010]
Also, when the delay result is returned to the timing simulator or the like in the clock tree described above, it cannot be simply returned because it is extracted from the layout result different from the original netlist and the delay calculation is performed. This is because information on elements that are not in the original netlist is included. In general, a method of returning a delay value to the timing simulator employs a method of expressing two points of terminals on an element as a pair (from-to) and assigning a delay value therebetween. Therefore, even if an attempt is made to return a delay value with an element not defined on the netlist, the delay value cannot be returned because the element does not exist.
[0011]
[Problems to be solved by the invention]
As described above, when the clock tree is inserted at the time of layout design, the logical information obtained from the net list and the logical information obtained from the layout result are different, and therefore, the normal connection verification between the net list and the layout cannot be performed. Occurs.
[0012]
In addition, when calculating the in-element delay and the wiring delay in consideration of the slope of the input waveform of the element from the layout result, there arises a problem that information required for hierarchical development differs from information required for delay calculation. .
[0013]
Further, when returning the delay result of the clock tree to the timing simulator or the like using the delay result obtained above, an element that is not in the original netlist is included, so that there is a problem that it cannot be simply returned.
[0015]
According to a first aspect of the present invention, one or more element groups (for example, functional blocks and logic cells) that are constituent elements of a semiconductor integrated circuit are arranged and then wired between them according to a logic connection request in a hierarchical manner. A method of calculating an in-element delay and a wiring delay with respect to a layout result of the semiconductor integrated circuit having a designed hierarchical structure, wherein a hierarchy expansion order for determining an order in which the layout hierarchy is expanded in order to calculate a delay A determination step, a block selection step for selecting an element group according to the order determined in the hierarchy expansion order step, and an element group and a net for delay calculation in this hierarchy for the element group selected in the block selection step A first element group / net extraction step for extracting the element, and an intra-element delay and arrangement of the element group / net extracted in the first extraction step. A delay calculating step of calculating a delay consists inner element and a net connected to the net and elements and the element connected to an external terminal for combining the upper layer with respect to the block selecting the element group selected in step A second element group / net extraction step for extracting element groups and nets, and a lower hierarchy obtained by the second element group / net extraction step according to the hierarchy development order obtained in the hierarchy development order determination step A delay value calculating method for a semiconductor integrated circuit, comprising: a layer expansion step for combining the element group and net of the device and the upper layer element and net; and a delay value information combining step for combining all of the delay calculation information It is.
[0017]
[Action]
With the configuration described above, the first invention comprises a net and an element connected to an external terminal of the lower hierarchy and an inner element and a net connected to the element when processing from the lower hierarchy to the upper hierarchy in order. By extracting element groups and nets and synthesizing them with the upper layer, it is possible to accurately determine the inaccurate part in the lower layer delay calculation by the upper layer delay calculation. After being obtained, only accurate delay calculations are selected and synthesized. As a result, not only can hierarchy expansion be performed while performing delay calculations with the minimum necessary data, All the delay calculation results are accurate .
[0020]
【Example】
Hereinafter, a layout verification method and a delay value calculation method according to an embodiment of the present invention will be described with reference to the drawings.
[0021]
(Example 1)
A first embodiment of the present invention will be described below with reference to FIGS. FIG. 1 is a flowchart for realizing the layout verification method in the first embodiment of the present invention.
[0022]
First, necessary data will be described.
FIG. 4 is a diagram showing a part of a certain circuit. FIG. 4A shows the logic circuit of the original netlist S. The circuit 1 and the buffer 21 are connected, and further connected to the clock terminals of the plurality of flip-flops 22. The data terminal of the flip-flop 22 is connected to the circuit 2.
[0023]
A logic circuit when a clock tree is generated from the netlist S is shown in FIG. With the buffer 21 as a root, the buffers 23 and 24 are inserted into the branches of the tree, and the flip-flop 22 is arranged on the leaf. This is an example of the clock tree method described above. The information extracted from the layout result is considered to be in the state shown in FIG. 4B (as described above, the layout is performed based on this logic circuit, but if that is the case, it is not completely guaranteed). As described above, when the layout tool is used, a corrected netlist can be output, so that a netlist reflecting this clock tree can be obtained. Here, the net list is S ′.
[0024]
As described above, the original netlist S, the corrected netlist S ′, and the layout result diagram created by the layout tool are prepared.
[0025]
Now, the layout verification method in the first embodiment will be described with reference to FIG. First, the difference between the netlists S and S ′ is obtained in the difference extraction step 1 between the netlists SS ′. In the case of FIG. 4, the structure between the buffer 21 and the flip-flop 22 is different. For example, the bold line in FIG.
[0026]
Next, in logical check step 2, logical verification is performed between different parts for each path (between the buffer 21 and the flip-flop 22, between the buffer 21 and the flip-flop 25, etc.). Here, the buffer 21 and the flip-flop 22 will be described as an example. Since the buffer 21 and the flip-flop 22 in FIG. 4A are directly connected by wiring, there is no logical change. In the buffer 21 and the flip-flop 22 in FIG. 4B, only two buffers are inserted and there is no logical change. Therefore, it can be seen that there is no logical change in both figures. This is verified for all paths.
[0027]
As described above, if there is no change in the logic of all the paths, it has been proved that the circuit of FIG. 4 (a) and the circuit of (b) are logically identical. Are equivalent. If there is a discrepancy, the error processing step 4 specifies the location, checks and corrects the netlists S and S ′, and executes again from the netlist SS ′ difference extraction step 1.
[0028]
Finally, using the netlist S ′, the connection verification step 3 by the netlist S ′ is executed, and the logical connection verification of the layout is completed. Step 3 is conventional layout connection verification. Any method may be used.
[0029]
(Example 2)
A second embodiment of the present invention will be described below with reference to FIGS. FIG. 2 is a flowchart showing a hierarchical calculation method for delays according to the second embodiment of the present invention.
[0030]
Here, before describing the present invention, the delay calculation step 8 used therein will be described.
[0031]
FIG. 5 is a diagram showing a part of the circuit. In the figure, 30 is an AND element, 31 is a buffer connected to the input side of AND30, 32 is a buffer connected to the output side of AND30, 33 is a net between the buffer 31 and AND30, and 34 is an output side net of AND30.
[0032]
Now, how to calculate the in-element delay of the AND 30 and the wiring delay between the AND 30 and the buffer 32 performed in step 8 will be described.
[0033]
It is known that the delay time varies depending on the slope of the input waveform. For example, the input waveform varies depending on the configuration of the input side net 33 of the AND 30, and the influence thereof has an influence on the in-element delay. Therefore, when calculating the delay, the state of the net on the input side of the AND 30 is represented by an RC network that is modeled by resistance and capacitance, and the slope of the input waveform is calculated from the network. Calculate as a parameter. The wiring delay is a delay due to the influence of wiring from the output side terminal to the input side terminal of a certain element. In FIG. 5, the output side net 34 corresponds to this. This is the same as when calculating the slope of the input waveform, and the RC network is calculated. Based on the result, the wiring delay from each output side terminal to the input side terminal of a certain element is calculated. Is calculated.
[0034]
From the above, it can be seen that when calculating the delay value of an element, accurate calculation cannot be performed unless the input / output side nets of the element are prepared. This delay calculation method is described, for example, in a manual of a commercially available delay calculation tool (reference: published by Excellent Design, “Peacock Reference Manual V2.0”).
[0035]
Next, the delay value calculation method in the second embodiment will be described. FIG. 6A is an example of a circuit. As shown in the figure, there are two hierarchies, and the highest hierarchy is a block A, among which a block B of a hard block (for example, a memory block) and a block C, D of a soft block (for example, a standard cell block) are included. In addition, it is assumed that a plurality of elements 40 (the left side of the element is an input terminal and the right side is an output terminal) and a net (wiring) between the elements exist in the soft block. This hierarchical structure is shown in FIG.
[0036]
First, in the hierarchy development order determination step 5, the hierarchy development order is determined. Expansion is performed from the bottom up. In this figure, after processing blocks C and D, block A is finally expanded. Here, since the block B is a hard block, there is no need to expand it.
[0037]
Next, blocks are selected according to the order (block selection step 6).
First, block C is selected. In the element group / net extraction step 1 for the block C, an element group and a net for delay calculation are extracted. In FIG. 7 (a), the thick line corresponds to it. Based on the element group and the net, the delay calculation step 8 is executed to calculate the delay. The result is written in the file DFC, for example. For example, there is a file expression format in which a delay value is assigned to a pair (from-to) of two element terminals. An example is the SDF format (literature: published by Cadence, "SDF Annotator User Guide").
[0038]
Next, a second element group / net extraction step 9 is executed in order to obtain hierarchical development data. As is clear from the description of the delay calculation step 8 described above, accurate delay calculation cannot be performed unless the input and output of the elements are completely aligned. Therefore, in this step 9, the element group / net (FIG. 7 (a)) used for the delay calculation is not accurately calculated, that is, the net and the element connected to the external terminal 41 and the inner side connected to the element. Extract all elements and nets. The part indicated by the solid line in FIG. Here, the resulting block is referred to as a block C ′. Similarly, for the block D, the first element group / net extraction step 7 and the delay calculation step 8 are executed, the delay calculation is performed (generation of the file DFD), and the element group / net extraction 2 step 9 is executed. Thus, the block D ′ is generated (see FIG. 7B).
[0039]
As described above, the processes of blocks C and D are completed, and blocks in the same hierarchy are no longer present, so the hierarchy development step 10 is executed. The upper layer block is block A. The lower hierarchical blocks are blocks B, C ′, and D ′. In step 10, all element groups and nets are synthesized. FIG. 8 (a) shows the result.
[0040]
Then, the block selection step 6 is executed again to select the block A, the first element group / net extraction step 7 and the delay calculation step 8 are executed (file DFA generation) in the same manner as described above. The group / net extraction 2 step 9 is executed to generate a block A ′ (see FIG. 8A). Note that since block A has no external terminals, block A ′ is empty.
[0041]
As described above, since the development of all the hierarchies has been completed, the delay value information synthesis step 11 is executed in order to finally combine the delay calculation results into one. It is the way of synthesis that must be noted here. FIG. 8B shows at which point the delay calculation result is used for synthesis.
The thick line is the result of delay calculation in the lower layer (DFC and DFD), and the solid line is the result of delay calculation in the upper layer (DFA).
[0042]
The selection criteria for the delay value are as follows.
1) When the net connected to the external terminal is the output side net, the wiring delay of the net on the output side of the element E connected to the net and the intra-element delay of the elements excluding the element E connected thereto are calculated on the lower layer side. Adopt the delayed result.
[0043]
2) When the net connected to the external terminal is the input side net, the wiring delay of the net on the output side of the element E connected to the net and the intra-element delay of the elements excluding the element E connected to the net are calculated on the upper layer side. Adopt delay results.
[0044]
Thus, the entire delay calculation is completed, and the value is returned to the timing simulator or the like for simulation.
[0045]
(Example 3)
Hereinafter, a third embodiment of the present invention will be described with reference to FIGS. FIG. 3 is a diagram showing a method for calculating a delay value on the clock tree in the third embodiment of the present invention.
[0046]
9A is a logic diagram before clock tree generation, and FIG. 9B is a logic diagram after clock tree generation.
As described in the first embodiment, since the generation of the clock tree is performed at the time of layout design, even if the delay value is simply calculated from the layout diagram, it cannot be returned to the simulator. Therefore, the present invention makes it possible to return it.
[0047]
First, a delay value is calculated using the delay calculation step 12 for the layout design, that is, for the layout result in the state of FIG. In step 12, for example, as shown in the second embodiment, the delay calculation is performed by executing the second of the present invention from the result of the hierarchical layout.
Since the original netlist S has no clock tree, the delay result must be generated in a form in which the added elements are deleted (FIG. 9A).
[0048]
Therefore, in the delay value calculation step 13 in the clock net, the delay is calculated based on the delay value changed by the additional element and the net related thereto. The thick lines in FIGS. 9A and 9B are the same path from the start point to the flip-flop 52. Since the delay value that should be returned originally is the delay time from the start point to the flip-flop 52, in step 13, the sum of the delay values calculated on the path is calculated, and the value is calculated from the start point in FIG. The delay value is 52. In the case of the figure
Delay value of flip-flop 52 from the start point =
(Internal delay of buffer 52) +
(Wiring delay from the output terminal of the buffer 52 to the input terminal of the buffer 53) +
(Intra-element delay of buffer 53) +
(Wiring delay from the output terminal of the buffer 53 to the input terminal of the buffer 54) +
(In-element delay of buffer 54) +
(Wiring delay from the output terminal of the buffer 54 to the input terminal of the flip-flop 52)
It becomes.
[0049]
This calculation is performed for all paths in the clock tree. The obtained result is the delay time on the clock tree.
[0050]
As described above, since the delay calculation is simply the sum of the delay times in the path, it can be calculated very quickly.
[0051]
【The invention's effect】
As described above, according to the first invention , processing is performed with the minimum data necessary for hierarchical development and the minimum data necessary for delay calculation, so that the memory usage is small and accurate and high-speed processing is performed. It becomes possible .
[Brief description of the drawings]
FIG. 1 is a flowchart showing layout verification in the first embodiment of the present invention. FIG. 2 is a flowchart showing a hierarchical delay calculation method in the second embodiment of the present invention. FIG. 4 is a flowchart showing a method for calculating a delay value on a clock tree in the third embodiment. FIG. 4 is a diagram showing an example of a circuit for explaining the first embodiment of the present invention. FIG. 6 is an exploded view for explaining the second embodiment of the present invention. FIG. 7 is an exploded view for explaining the embodiment. FIG. 8 is for explaining the embodiment. FIG. 9 is a diagram showing an example of a circuit for explaining a third embodiment of the present invention.
1 Netlist SS 'Difference Extraction Step 2 Logic Check Step 3 Netlist S' Connection Verification Step 4 Error Processing Step 5 Hierarchy Expansion Order Determination Step 6 Block Selection Step 7 Element Group / Net Extraction 1 Step 8 Delay Calculation Step 9 Element group / net extraction 2 step 10 Hierarchy expansion step 11 Delay value information synthesis step 12 Delay calculation step 13 Delay calculation step in clock net

Claims (1)

半導体集積回路の構成要素となる1つ以上素子群を配置した後それらの間を論理接続要求に従って配線することを階層的に行なってレイアウト設計をした階層構造を持つ前記半導体集積回路のレイアウト結果に対して素子内遅延と配線遅延を算出する方法であって、
遅延計算するためにレイアウト階層を展開していく順番を決定する階層展開順序決定ステップと、
前記階層展開順序ステップで決定した順番に従って素子群を選択するブロック選択ステップと、
前記ブロック選択ステップで選択された前記素子群に対してこの階層で遅延計算するための素子群及びネットを抽出する第1の素子群/ネット抽出ステップと、
前記第1の抽出ステップで抽出された素子群/ネットの素子内遅延と配線遅延を計算する遅延計算ステップと、
前記ブロック選択ステップで選択された前記素子群に対して上位の階層と合成するための外部端子につながるネットと素子及び該素子につながる内側の素子とネットからなる素子群及びネットを抽出する第2の素子群/ネット抽出ステップと、
前記階層展開順序決定ステップで得られた階層展開の順番に従って、前記第2の素子群/ネット抽出ステップによって得られた下位階層の素子群及びネットと上位階層の素子及びネットを合成する階層展開ステップと、
遅延計算した情報の全てを合成する遅延値情報合成ステップを備えたことを特徴とする遅延値算出方法。
In the layout result of the semiconductor integrated circuit having a hierarchical structure in which one or more element groups serving as constituent elements of the semiconductor integrated circuit are arranged and then wired according to a logical connection request to perform hierarchical design. A method for calculating the in-element delay and the wiring delay,
A hierarchy expansion order determination step for determining the order in which the layout hierarchy is expanded for delay calculation;
A block selection step of selecting an element group according to the order determined in the hierarchical expansion order step;
A first element group / net extraction step for extracting an element group and a net for delay calculation in this hierarchy for the element group selected in the block selection step;
A delay calculation step of calculating an intra-element delay and a wiring delay of the element group / net extracted in the first extraction step;
Extracting element groups and nets composed of nets and elements connected to external terminals for synthesizing with the upper hierarchy for the element group selected in the block selection step, and inner elements and nets connected to the elements The element group / net extraction step of
Hierarchical expansion step of synthesizing lower hierarchical element groups and nets obtained by the second element group / net extracting step with higher hierarchical elements and nets in accordance with the hierarchical expansion order obtained in the hierarchical expansion order determining step. When,
A delay value calculation method comprising a delay value information synthesis step for synthesizing all of the delay-calculated information.
JP22617695A 1995-09-04 1995-09-04 Delay value calculation method Expired - Fee Related JP3653814B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP22617695A JP3653814B2 (en) 1995-09-04 1995-09-04 Delay value calculation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22617695A JP3653814B2 (en) 1995-09-04 1995-09-04 Delay value calculation method

Publications (2)

Publication Number Publication Date
JPH0974138A JPH0974138A (en) 1997-03-18
JP3653814B2 true JP3653814B2 (en) 2005-06-02

Family

ID=16841082

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22617695A Expired - Fee Related JP3653814B2 (en) 1995-09-04 1995-09-04 Delay value calculation method

Country Status (1)

Country Link
JP (1) JP3653814B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7191426B1 (en) * 2004-09-01 2007-03-13 Altera Corporation Method and apparatus for performing incremental compilation on field programmable gate arrays
CN103258079A (en) * 2013-04-08 2013-08-21 宁波大学 Equivalent function test method for digital combined logic circuits

Also Published As

Publication number Publication date
JPH0974138A (en) 1997-03-18

Similar Documents

Publication Publication Date Title
US5930148A (en) Method and system for verifying a digital circuit design including dynamic circuit cells that utilize diverse circuit techniques
US6530073B2 (en) RTL annotation tool for layout induced netlist changes
Bhatnagar Advanced ASIC Chip Synthesis: Using Synopsys® Design CompilerTM Physical CompilerTM and PrimeTime®
US7162706B2 (en) Method for analyzing and validating clock integration properties in circuit systems
US5396435A (en) Automated circuit design system and method for reducing critical path delay times
US6505328B1 (en) Method for storing multiple levels of design data in a common database
US6701505B1 (en) Circuit optimization for minimum path timing violations
US5751596A (en) Automated system and method for identifying critical timing paths in integrated circuit layouts for use with automated circuit layout system
US7926011B1 (en) System and method of generating hierarchical block-level timing constraints from chip-level timing constraints
US5521836A (en) Method for determining instance placements in circuit layouts
JP4540540B2 (en) Delay calculator
JP2005512236A (en) Timing model extraction by timing graph reduction
US8037448B2 (en) Language and templates for use in the design of semiconductor products
US6651232B1 (en) Method and system for progressive clock tree or mesh construction concurrently with physical design
US6763513B1 (en) Clock tree synthesizer for balancing reconvergent and crossover clock trees
US7134062B2 (en) Static timing analysis approach for multi-clock domain designs
US6834379B2 (en) Timing path detailer
US9449127B1 (en) System for verifying timing constraints of IC design
US20070288875A1 (en) Skew clock tree
JP3653814B2 (en) Delay value calculation method
US20050251776A1 (en) Integrated circuit design system
US7117471B1 (en) Generation of design views having consistent input/output pin definitions
US20220327269A1 (en) Computing device and method for detecting clock domain crossing violation in design of memory device
Chen et al. Simultaneous placement with clustering and duplication
US7006962B1 (en) Distributed delay prediction of multi-million gate deep sub-micron ASIC designs

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040127

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040329

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: 20050208

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050221

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

Free format text: PAYMENT UNTIL: 20080311

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090311

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100311

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110311

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees