(57)【要約】【課題】  回路合成、レイアウト等を繰り返し行なう必要性がなく、半導体集積回路を短期間で設計することができる半導体集積回路の設計方法及びその装置を提供すること。【解決手段】  特定の順序回路間パスを構成する始終点順序回路の配置位置と、予め作成されたクロック回路から算出される順序回路配置位置とクロックスキューとの対応表を基に、始終点順序回路間のクロックスキュー値を計算する。そして、算出したクロックスキュー値を考慮して配置処理を行なう。【選択図】  図５
2005136286.tif 000002
【特許請求の範囲】
【請求項１】
予めクロック回路が作成され、配置処理の時点でクロック接続が確定する半導体集積回路の設計方法において、
順序回路の配置位置と、この配置位置間のクロックスキューとが関連付けられたクロックスキュー情報に基づいて、配置された順序回路間のクロックスキューを算出し、算出したクロックスキューを考慮して配置処理を行なうことを特徴とする半導体集積回路の設計方法。
【請求項２】
予めクロック回路が作成され、配置処理の時点でクロック接続が確定する半導体集積回路の設計方法において、
順序回路の配置領域と、この配置領域間のクロックスキューとが関連付けられたクロックスキュー情報から、特定の順序回路間パスを構成する始終点順序回路のクロックスキュー値を算出し、算出したクロックスキュー値を考慮して順序回路の配置処理を行なうことを特徴とする半導体集積回路の設計方法。
【請求項３】
前記順序回路の配置領域に配置される順序回路の数により生じる遅延差を考慮して配置領域間のクロックスキューを決定することを特徴とする請求項２に記載の半導体集積回路の設計方法。
【請求項４】
予めクロック回路が作成され、配置処理の時点でクロック接続が確定する半導体集積回路の設計方法において、
順序回路間パスの接続情報を抽出し、そのパスを構成しているブロックを仮配置するステップと、
仮配置されたパス構成ブロックのパス全体の伝播遅延時間を計算するステップと、
仮配置されたパスの始終点順序回路の配置領域を抽出し、この始終点順序回路間のクロックスキューを、順序回路の配置領域と、この配置領域間のクロックスキューとが関連付けられたクロックスキュー情報から算出するステップと、
前記伝播遅延時間と、前記クロックスキュー情報と、タイミング制約とに基づいて、タイミングを解析するステップと、
タイミングを満足しない場合には、ブロックを仮配置するステップに戻り、各ステップを再度行なうことを特徴とすることを特徴とする半導体集積回路の設計方法。
【請求項５】
前記順序回路の配置領域に配置される順序回路の数により生じる遅延差を考慮して配置領域間のクロックスキューを決定することを特徴とする請求項４に記載の半導体集積回路の設計方法。
【請求項６】
予めクロック回路が作成され、配置処理の時点でクロック接続が確定する半導体集積回路の設計装置において、
順序回路の配置配置と、この配置位置間のクロックスキューとが関連付けられたクロックスキュー情報が格納された記憶装置と、
前記クロックスキュー情報に基づいて、配置された順序回路間のクロックスキューを算出し、算出したクロックスキューを考慮して配置処理を行なう手段と
を有することを特徴とする半導体集積回路の設計装置。
【請求項７】
予めクロック回路が作成され、配置処理の時点でクロック接続が確定する半導体集積回路の設計装置において、
順序回路の配置領域と、この配置領域間のクロックスキューとが関連付けられたクロックスキュー情報が格納された記憶装置と、
前記クロックスキュー情報に基づいて、配置領域に配置された特定の順序回路間パスを構成する始終点順序回路のクロックスキュー値を算出し、算出したクロックスキュー値を考慮して順序回路の配置処理を行なう手段と
を有することを特徴とする半導体集積回路の設計装置。
【請求項８】
前記クロックスキュー情報は、前記順序回路の配置領域に配置される順序回路の数により生じる遅延差を考慮して配置領域間のクロックスキューが決定されることを特徴とする請求項７に記載の半導体集積回路の設計装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体集積回路の設計工程における自動レイアウト設計方法に関し、特に、配線遅延や信号伝搬の同期等のタイミング条件を制約として与え、それを考慮しながら行なうタイミングドリブンブロック配置方法に関する。
【背景技術】
【０００２】
近年の半導体集積回路を用いた電子機器製品の製品寿命の短期化と製品性能の向上とにより、設計自動化技術に対しても、設計の短期化と、設計の高品質化（高性能化）とが求められている。
【０００３】
しかし、トップダウン方式で行われる半導体集積回路の自動設計システムにおいては、設計の上流で行なう論理設計処理において、想定したパス遅延と、下流のレイアウト設計処理におけるレイアウト結果のパス遅延とが異なり、後者のレイアウト結果のパス遅延が前記想定遅延よりも長くなる場合が生じる。
【０００４】
これによってタイミング制約を満足しないレイアウト結果となった場合には、回路構成の変更等の必要が生じ、従って、タイミング制約を満足するレイアウト結果を得るまで回路合成、レイアウト等を繰り返し行なうことが必要となる。その結果、半導体集積回路の開発期間が長期化すると共に、コストを膨大にさせる。
【０００５】
このような問題を解決するために、近年、タイミングドリブン手法が提案されている。このタイミングドリブン手法とは、上流の論理設計処理と下流のレイアウト設計処理とに関連を付け、上流の論理設計で想定したパス遅延を満足するような制約を下流のレイアウト設計に課すことにより、レイアウト結果のパス遅延と上流での想定遅延との差を無くすものである。
【０００６】
以下に、このタイミングドリブン手法について、図面を用いて説明する。図１は従来のタイミングドリブン配置処理の入出力情報を示した概念図である。
【０００７】
一般的に従来のタイミングドリブン配置処理では、配置処理部２０５は、ネットリスト、ブロック情報、下地情報、I／Oバッファ配置情報、ハードマクロ配置情報を含むレイアウト情報２０１と、論理設計での想定遅延を満足するよう全順序回路間パスに対して遅延を定義したタイミング制約２０２、全順序回路間のクロックスキュー情報２０３を入力し、特定の順序回路間のパス遅延Trが下記の式(１)、(２)で示すセットアップ規格、ホールド規格を満たすよう各ブロックの最適配置位置を決定し、配置結果２０４を出力する。
Tr＜Ti−Si−St  …  (１)
Tr＞Si＋Ht  …  (２)
ここで、Tiはタイミング制約２０２から抽出される該当順序回路間パスの動作周波数、Siは順序回路間のクロックスキュー情報２０３から抽出される該当順序回路間のクロックスキュー、Stは終点順序回路のセットアップ時間、Htは終点順序回路のホールド時間である。また、この時、全順序回路間のクロックスキュー情報２０３には、同クロックドメイン間で一律の固定値が定義される。
【０００８】
一方、近年、レイアウト処理時間を短縮するために、等負荷・等配線長ツリー構造で分配されたクロック回路を予め作成したデータチップを用意することで、レイアウト処理過程におけるクロック分配処理を不要とする設計方法が広く用いられている。
【０００９】
図２は、上述の等負荷・等配線長ツリー構造で分配されたクロック回路を予め作成したチップ構造を示している。ここでは、クロックバッファ２０６〜２２８、クロック配線２２９で形成されるクロック回路が予め作成されており、順序回路に接続する最終段クロックバッファからの出力配線まで形成されている為、最終段クロック配線の末端部分を含む領域を順序回路配置専用領域２３１とすることで、配置処理時には順序回路を専用領域内のいずれかの場所に配置すれば、クロックに接続される構造となっている。また、順序回路配置専用領域２３１以外の配置領域は、組み合せ回路配置専用領域２３０となる。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上述の構造を使用して、従来のタイミングドリブン配置処理を行なった場合、順序回路の配置位置によって大きくクロックスキュー値が変化する為、予め配置処理に与える順序回路間のクロックスキュー値と、配置結果から算出される実際のクロックスキュー値とに大幅のずれが生じる可能性が大きかった。
【００１１】
例えば、図３は、図２における最終段クロックバッファ２１４、２１７からそれぞれクロック供給される順序回路間において、データのやり取りを行なっている様子を示したものであるが、この場合、クロックの分岐点がルートクロックバッファ２０６の出力端子となり、クロックのルートから各順序回路までの経路が大きく異なる為にチップ内ばらつきの影響を大きく受け、スキューが増大する。
【００１２】
これに対して図４は、図２における最終段クロックバッファ２１４からクロック供給される順序回路間において、データのやり取りを行なっている様子を示したものであるが、この場合、クロックの分岐点が最終段クロックバッファ２１４の出力端子となり、クロックのルートから各始終点順序回路までの経路がほぼ一致している為にチップ内ばらつきの影響はごく小さく、クロックスキューは殆ど生じない。
【００１３】
このように順序回路の配置位置によって、クロックスキュー値が大幅に変化する場合、セットアップ、ホールド規格を満たすような配置結果を得ることが困難であった。例えば配置結果から算出される実際の順序回路間のクロックスキュー値が、予めタイミングドリブン配置処理に与えたクロックスキュー値より大きい場合、タイミングドリブン配置処理内部において式(１)、(２)を満たすよう配置が行われていても、配置後に実際のクロックスキュー値に基づいてタイミング解析を行なうと、セットアップ、またはホールド規格に違反している可能性が大きかった。
【００１４】
また、タイミングドリブン配置処理内部でセットアップ、ホールド規格を満足するパスが、配置後の実際のクロックスキュー値に基づいたタイミング解析では満足しない問題を完全に回避しようとした場合、タイミングドリブン配置処理に与える順序回路間のクロックスキュー値を、予め生成されたクロック回路から算出されるクロックスキューの最大値に設定する方法が考えられるが、この場合、ほとんどの順序回路間パスについて実際よりもクロックスキュー値が大きく見積もられている為、タイミングドリブン配置処理内部において、全ての順序回路間パスに対して式(１)、(２)を満たすことが困難であった。
【００１５】
そこで、本発明は上記問題点に鑑みて発明されたものであって、回路合成、レイアウト等を繰り返し行なう必要性がなく、半導体集積回路を短期間で設計することができ、開発コストを抑えることができる半導体集積回路の設計方法及びその装置を提供することにある。
【課題を解決するための手段】
【００１６】
上記本発明の目的を達成する第１の発明は、予めクロック回路が作成され、配置処理の時点でクロック接続が確定する半導体集積回路の設計方法において、
順序回路の配置位置と、この配置位置間のクロックスキューとが関連付けられたクロックスキュー情報に基づいて、配置された順序回路間のクロックスキューを算出し、算出したクロックスキューを考慮して配置処理を行なうことを特徴とする。
【００１７】
上記本発明の目的を達成する第２の発明は、予めクロック回路が作成され、配置処理の時点でクロック接続が確定する半導体集積回路の設計方法において、
順序回路の配置領域と、この配置領域間のクロックスキューとが関連付けられたクロックスキュー情報から、特定の順序回路間パスを構成する始終点順序回路のクロックスキュー値を算出し、算出したクロックスキュー値を考慮して順序回路の配置処理を行なうことを特徴とする。
【００１８】
上記本発明の目的を達成する第３の発明は、上記第２の発明において、前記順序回路の配置領域に配置される順序回路の数により生じる遅延差を考慮して配置領域間のクロックスキューを決定することを特徴とする。
【００１９】
上記本発明の目的を達成する第４の発明は、予めクロック回路が作成され、配置処理の時点でクロック接続が確定する半導体集積回路の設計方法において、
順序回路間パスの接続情報を抽出し、そのパスを構成しているブロックを仮配置するステップと、
仮配置されたパス構成ブロックのパス全体の伝播遅延時間を計算するステップと、
仮配置されたパスの始終点順序回路の配置領域を抽出し、この始終点順序回路間のクロックスキューを、順序回路の配置領域と、この配置領域間のクロックスキューとが関連付けられたクロックスキュー情報から算出するステップと、
前記伝播遅延時間と、前記クロックスキュー情報と、タイミング制約とに基づいて、タイミングを解析するステップと、
タイミングを満足しない場合には、ブロックを仮配置するステップに戻り、各ステップを再度行なうことを特徴とすることを特徴とする。
【００２０】
上記本発明の目的を達成する第５の発明は、上記第４の発明において、前記順序回路の配置領域に配置される順序回路の数により生じる遅延差を考慮して配置領域間のクロックスキューを決定することを特徴とする。
【００２１】
上記本発明の目的を達成する第６の発明は、予めクロック回路が作成され、配置処理の時点でクロック接続が確定する半導体集積回路の設計装置において、
順序回路の配置配置と、この配置位置間のクロックスキューとが関連付けられたクロックスキュー情報が格納された記憶装置と、
前記クロックスキュー情報に基づいて、配置された順序回路間のクロックスキューを算出し、算出したクロックスキューを考慮して配置処理を行なう手段と
を有することを特徴とする。
【００２２】
上記本発明の目的を達成する第７の発明は、予めクロック回路が作成され、配置処理の時点でクロック接続が確定する半導体集積回路の設計装置において、
順序回路の配置領域と、この配置領域間のクロックスキューとが関連付けられたクロックスキュー情報が格納された記憶装置と、
前記クロックスキュー情報に基づいて、配置領域に配置された特定の順序回路間パスを構成する始終点順序回路のクロックスキュー値を算出し、算出したクロックスキュー値を考慮して順序回路の配置処理を行なう手段と
を有することを特徴とする。
【００２３】
上記本発明の目的を達成する第８の発明は、上記第７の発明において、前記クロックスキュー情報は、前記順序回路の配置領域に配置される順序回路の数により生じる遅延差を考慮して配置領域間のクロックスキューが決定されることを特徴とする。
【発明の効果】
【００２４】
本発明によれば、半導体集積回路の設計において、従来に比べてセットアップ、ホールド規格を満足する配置結果が得られることで、回路合成、レイアウト等を繰り返し行なう必要性が低い為、半導体集積回路を短期間で設計することができ、またそれに伴って開発コストを最小限に抑えることができるという優れた効果を奏する。
【発明を実施するための最良の形態】
【００２５】
本発明は、従来技術に対し、特定の順序回路間パスを構成する始終点順序回路の配置位置と、予め作成されたクロック回路から算出される順序回路配置位置とクロックスキューとの対応表を基に、始終点順序回路間のクロックスキュー値を計算し、算出したクロックスキュー値を配置処理に反映させる機能を設けたことを特徴とする。
【００２６】
これにより、順序回路間パスのタイミングを最適化する際に、ほぼ実際の値に近いクロックスキュー値を考慮できる為、従来技術に比べてセットアップ、ホールド規格を満足する配置結果が得られる。
【実施例１】
【００２７】
本発明に係る実施例１を説明する。
【００２８】
図５は、本発明によるタイミングドリブン配置処理の構成図である。
【００２９】
本発明によるタイミングドリブン配置処理装置では、配置処理部２４２から抽出される順序回路配置位置情報２３８、及び領域別クロックスキュー情報２３９を基にクロックスキュー計算処理部２４３がクロックスキュー計算を行ない、順序回路間クロックスキュー情報２４０を出力する。
【００３０】
更に、算出された順序回路間クロックスキュー情報２４０を配置処理部２４２に返すことで、配置処理部２４２がスキュー値、及びレイアウト情報２３６、タイミング制約２３７を基に、特定の順序回路間のパス遅延Trが式(１)、(２)で示すセットアップ規格、ホールド規格を満たすよう各ブロックの最適配置位置を決定し、配置結果２４１を出力する。
【００３１】
ここで領域別クロックスキュー情報２３９とは、図２に示すクロック回路を予め作成したチップ構造においてクロック回路の形状から算出される、順序回路配置位置とクロックスキュー値との対応情報である。図２の一部分を拡大した図６を参照して説明すると、ルートクロックバッファ２４４から最終段クロックバッファ２４９、２５０、２５１、２５２を経由し、最終段クロックバッファ２４９、２５０、２５１、２５２の各々の最寄りの順序回路配置専用領域までクロック分配されているクロック回路において、順序回路配置専用領域を各最終段クロックバッファ２４９、２５０、２５１、２５２からのクロック供給領域毎に分割して領域２５３、２５４、２５５、２５６を形成し、それぞれ最終段クロックバッファと各クロック供給領域との対応付けを行なうことができる。
【００３２】
また、クロック回路については、ルートクロックバッファから順序回路配置専用領域までのクロック供給経路が予め形成されている為、ルートクロックバッファから各最終段クロックバッファ入力端子までの伝播遅延差をチップ内ばらつきの最大値を考慮して求めることが出来る。ここで、接続する順序回路の個数によって変動する各最終段クロックバッファの出力負荷容量と、各最終段クロックバッファ入力端子から順序回路入力端子間のクロック経路が受けるチップ内ばらつきの影響とを無視できる程度の小さな値とすれば、ルートクロックバッファから各最終段クロックバッファ入力端子までの伝播遅延差を、各最終段クロックバッファに対応する順序回路配置専用領域間のクロックスキュー値に置きかえることができる。例えば、最終段クロックバッファ２４９からクロック供給される順序回路配置専用領域２５３に配置される順序回路と、最終段クロックバッファ２５０からクロック供給される順序回路配置専用領域２５４に配置される順序回路との間のクロックスキュー値は、ルートクロックバッファ２４４から最終段クロックバッファ２４９までの伝播遅延と、ルートクロックバッファ２４４から最終段クロックバッファ２５０までの伝播遅延との差となる。
【００３３】
このようにして、クロック供給する最終段クロックバッファ毎に順序回路配置専用領域を分割し、全領域間のクロックスキュー値を算出してまとめたものが領域別クロックスキュー情報である。本発明ではこの情報を基にすることで、タイミングドリブン配置処理において特定の順序回路間のクロックスキュー値を算出することを可能としている。
【００３４】
次に、本発明によるタイミングドリブン配置処理の動作例を説明する。
【００３５】
図７は本発明によるタイミングドリブン配置処理の動作例を示したフローチャートである。
【００３６】
まず、最初にステップＳ０１においてレイアウト情報、タイミング制約と共に領域別クロックスキュー情報を入力して記憶する。
【００３７】
ステップＳ０１において各情報の入力処理を終えると、次にステップＳ０２に進み、タイミング制約情報を基に伝播遅延制約が与えられている特定の順序回路間パスの接続情報を抽出し、ステップＳ０３においてそのパスを構成しているブロックを全て仮配置する。
【００３８】
また、ステップＳ０４において、仮配置されたパス構成ブロックの各ブロック種類、ブロック間距離からブロック間配線遅延とブロック内ゲート遅延とを見積もり、パス全体の伝播遅延時間を計算する。
【００３９】
次に、ステップＳ０５において、仮配置されたパスの始終点順序回路の配置位置を抽出し、領域別クロックスキュー情報を基に始終点順序回路間のクロックスキューを求める。
【００４０】
最後にステップＳ０６において、ステップＳ０４で算出したパス伝播遅延時間、ステップＳ０５で算出した始終点順序回路間クロックスキュー、タイミング制約を基にタイミング解析を行なう。
【００４１】
この結果、該当パスが式(１)、(２)で示すセットアップ、ホールド規格を満足していなければ、再度ステップＳ０３のパス構成ブロックの配置処理からやり直す。満足していれば該当パスについての処理は終了し、その上でまだ処理していないパスが存在する場合にはステップＳ０２のパス情報抽出処理に戻り、全てのパスについて処理していれば、本タイミングドリブン配置処理の終了となる。
このように、本発明は、順序回路間のパスについて、その構成ブロックの配置位置を決定する過程で、予め作成されたクロック回路から算出されるほぼ実際の値に近いクロックスキュー値を考慮できる為、タイミングドリブン配置処理内部において式(１)、(２)を満たすよう配置が行われていれば、配置後の実際のクロックスキュー値に基づいたタイミング解析結果でも、セットアップ、ホールド規格を満足する可能性が大きい。
【実施例２】
【００４２】
本発明に係る実施例２を説明する。
【００４３】
タイミングドリブン配置処理内部でセットアップ、ホールド規格を満足するパスが、配置後の実際のクロックスキュー値に基づいたタイミング解析では満足しない問題を完全に回避しようとした場合、本発明では領域別クロックスキュー情報を作成する際に、各最終段クロックバッファに接続する順序回路数が最小と最大の場合でルートクロックバッファから全順序回路までのクロック伝播遅延値を求め、最終段クロックバッファ毎に分割された各順序回路専用領域間で比べて最も大きな遅延差を各順序回路専用領域間クロックスキューとして、タイミングドリブン配置処理に反映させれば良い。
【００４４】
例えば、図６は各最終段クロックバッファが最大６つの順序回路を駆動するクロック回路を示しているが、このクロック回路において、最終段クロックバッファ２４９からクロック供給される順序回路配置専用領域２５３と、最終段クロックバッファ２５０からクロック供給される順序回路配置専用領域２５４との間のクロックスキューを求める場合、まずは最終段クロックバッファ２４９、２５０それぞれに最小数である１つの順序回路が接続する場合と、最大数である６つの順序回路が接続する場合の合計４通りのルートクロックバッファ２４４から順序回路間クロック伝播遅延値を計算する必要がある。
【００４５】
ここで、ルートクロックバッファ２４４から最終段クロックバッファ２４９を経由して１つの順序回路に接続するクロック経路の伝播遅延値をT1min、ルートクロックバッファ２４４から最終段クロックバッファ２４９を経由して６つの順序回路に接続するクロック経路の伝播遅延値をT1max、ルートクロックバッファ２４４から最終段クロックバッファ２５０を経由して１つの順序回路に接続するクロック経路の伝播遅延値をT2min、ルートクロックバッファ２４４から最終段クロックバッファ２５０を経由して６つの順序回路に接続するクロック経路の伝播遅延値をT2maxとし、T2max−T1minの値がT1max−T2minの値より大きいと仮定すると、この場合の順序回路配置専用領域２５３と順序回路配置専用領域２５４との間のクロックスキュー値はT2max−T1minとなる。
【００４６】
この場合、実施例１と比較すると、接続する順序回路の個数によって変動する各最終段クロックバッファ入力端子から順序回路入力端子間の伝播遅延の差、及び各最終段クロックバッファ入力端子から順序回路入力端子間のクロック経路が受けるチップ内ばらつきの影響の分、タイミングドリブン配置処理で考慮するクロックスキュー値が全体的に大きくなるわけであるが、この場合の実施例１と比較したスキュー増加量は、クロック回路全体が受けるチップ内ばらつきの影響によるスキュー値に比べればごく小さい値である。
【００４７】
従って、従来の様に、配置処理内部で考慮する全順序回路間のクロックスキュー値を、予め生成されたクロック回路から算出されるクロックスキューの最大値に設定する場合に比べると、本発明によるタイミングドリブン配置処理内部において全ての順序回路間に対して式(１)、(２)を満たすことは明らかに容易である。
【図面の簡単な説明】
【００４８】
【図１】図１は従来のタイミングドリブン配置処理の入出力情報を示した概念図である。
【００４９】
【図２】図２は等負荷・等配線長ツリー構造で分配されたクロック回路を予め作成したチップ構造を示した図である。
【００５０】
【図３】図３は、図２におけるクロック回路を用いた場合、チップ内ばらつきの影響を大きく受けることでクロックスキューが悪化する例を説明する為の図である。
【００５１】
【図４】図４は、図２におけるクロック回路を用いた場合、チップ内ばらつきの影響をほとんど受けない例を説明する為の図である。
【００５２】
【図５】図５は本発明によるタイミングドリブン配置処理装置の構成を示す図である。
【００５３】
【図６】図６は図２の一部分を拡大した図である。
【００５４】
【図７】図７は本発明によるタイミングドリブン配置処理の動作例を示したフローチャートである。
【符号の説明】
【００５５】
２３６        レイアウト情報
２３７        タイミング制約
２３８        順序回路配置位置情報
２３９        領域別クロックスキュー情報
２４０        順序回路間クロックスキュー情報
２４１        配置結果２４１
２４２        配置処理部
【図１】
2005136286.tif 000003
【図２】
2005136286.tif 000004
【図３】
2005136286.tif 000005
【図４】
2005136286.tif 000006
【図５】
2005136286.tif 000007
【図６】
2005136286.tif 000008
【図７】
2005136286.tif 000009