(57)【要約】【課題】BFBを配設することなく、タイミングの制約を満足させ、かつ最適化における収束性を向上させることができる半導体集積回路の設計装置および半導体集積回路の設計方法を提供。【解決手段】LSI自動設計シミュレータ10は、クロック生成機能部30で使用するクロックの数および各クロックに対するクロック遅延を決定し、クロック系統とするクロックのそれぞれを割り付け、各クロックを基に設計に対する制約条件を検証し、ツリー決定機能部32は、作成したクロック系統を用い、各クロックのスキューを調整し、さらにクロックの遅延調整を行って、レイアウト調整を検証して、タイミングの制約違反をすることなく、供給されるデータを取り込み、タイミングの制約をすべて満足させる収束性をより高くできる。【選択図】図１
2005165405.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路における回路設計を行い、該設計に対する制約条件を検証する第１の設計機能ブロックと、
該半導体集積回路におけるレイアウト設計を行い、該設計に対する制約条件を検証する第２の設計機能ブロックとを含み、
前記第１の設計機能ブロックは、該検証に用いる段階的に遅延させるクロックの数を決定し、各クロック間の遅延を決めて、前記数に応じた前記クロックのそれぞれをクロック系統として生成し、割り付けるクロック生成機能ブロックを含み、
前記第２の設計機能ブロックは、前記クロック系統を作成し、各クロックのスキューを調整し、前記クロック系統のクロック遅延を調整する系統決定機能ブロックを含むことを特徴とする半導体集積回路の設計装置。
【請求項２】
請求項１に記載の装置において、前記クロック生成機能ブロックは、データの出力開始点である第１回路における内部遅延、第１回路のデータ供給先である第２回路のセットアップ時間、第１回路と第２回路との間にある経路にともなう遅延および第１回路に供給するクロックの遅延を加算し、この加算値と前記クロックの周期との差で前記割り付けるクロック遅延を決定することを特徴とする半導体集積回路の設計装置。
【請求項３】
半導体集積回路の回路設計において該設計の検証に用いる遅延量の異なるクロックの数を決定し、前記各クロックのクロック遅延をあらかじめ設定されたタイミングの制約条件を基に決定する第１の工程と、
各回路に供給するクロックを割り付ける第２の工程と、
該タイミングの制約条件と前記割り付けによって得られたリストを基にタイミングの最適化を行い、各タイミングの解析結果が前記制約の違反があるか否かを判断する第３の工程とを含み、
前記制約の違反に応じて前記タイミングの最適化を繰り返すことを特徴とする半導体集積回路の設計方法。
【請求項４】
請求項３に記載の方法において、該方法は、前記半導体集積回路のレイアウト設計において該設計の検証に前記遅延量の異なるクロックをそれぞれ作成する第４の工程と、
前記異なるクロック毎にスキューを調整する第５の工程と、
該レイアウト設計において前記クロックのそれぞれが有する遅延を前記決定したクロック遅延に調整する第６の工程と、
該レイアウト設計において前記タイミングの制約条件を満足するレイアウトに調整し、各タイミングの解析結果が前記制約の違反があるか否かを判断する第７の工程とを含み、
前記制約の違反に応じて前記レイアウトの調整を繰り返すことを特徴とする半導体集積回路の設計方法。
【請求項５】
請求項３または４に記載の方法において、該方法は、第３の工程にて前記制約の違反がある場合、該違反に応じて前記クロック遅延の値を再度調整する第８の工程を含むことを特徴とする半導体集積回路の設計方法。
【請求項６】
請求項３、４または５に記載の方法において、該方法は、第７の工程にて前記制約の違反がある場合、該違反に応じて前記クロック毎の遅延を調整する第９の工程を含むことを特徴とする半導体集積回路の設計方法。
【請求項７】
請求項３ないし６のいずれか一項に記載の方法において、該方法は、データを出力する開始点で該データを出力するまでの遅延、該データのセットアップに要する時間、各回路間の経路にともなう遅延および使用するクロックの遅延を加算し、この加算値と前記クロックの周期との差で前記割り付けるクロック遅延を決定することを特徴とする半導体集積回路の設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の設計装置および半導体集積回路の設計方法に関し、本発明の半導体集積回路の設計装置は、たとえば回路やレイアウト設計の制約を満足するかを検証する設計シミュレータに関するものであり、また、本発明の半導体集積回路の設計方法は、とくに、回路設計やレイアウト設計とこれらの設計におけるタイミングの制約を満たすか検証する設計方法に関するものである。
【背景技術】
【０００２】
半導体集積回路の設計は、大別すると、回路設計とレイアウト設計の２つに分けられる。回路設計を行う場合、半導体集積回路の仕様に対応した機能の記述およびタイミング仕様に基づく論理合成用制約ファイルを作成する。回路仕様に対応した機能の記述には、ハードウェアを言語記述する際の抽象レベルの一つで、論理合成の可能なRTL（Register Transfer Level）が広く使われている。また、作成する制約ファイルには、理想的なクロックの周期、クロック遅延、スキュー等が含まれている。ここで、クロック遅延とは、入力ポートからたとえばフリップフロップ回路のそれぞれまでの遅延を意味している。
【０００３】
次にこの制約ファイルを基に論理合成・タイミングの最適化およびホールド保証を行う。この後、理想的なクロックを用いて半導体集積回路のタイミング解析を行う。このとき、解析結果がタイミングの制約を満たしていない場合（タイミング制約違反）、タイミングの制約が満たされるまで、タイミングの最適化を行って、再合成し、理想的なクロックによるタイミング解析が繰り返される。タイミングの制約が満たされると、ゲートレベルネットリストが得られる。これにより、回路設計が終了する。
【０００４】
半導体集積回路の設計におけるもう一つの要素であるレイアウト設計は、回路設計で得られたゲートレベルネットリストの大きさを基にフロアプランを作成する。この後、回路の各ブロックを配置する。そして、クロックツリーの作成およびスキュー調整を行う。スキュー調整は、実際のクロックスキューが制約ファイルに定義されている理想的なクロックのスキューの範囲内に収まるように行う。スキュー調整後、タイミングの制約を満たす各セルの配置および配線を行う（タイミング・ドリブン・レイアウト）。
【０００５】
ここで、タイミング・ドリブン・レイアウトには、ホールド保証も含まれている。
【０００６】
次に実際のクロック遅延を盛り込んだタイミング解析を行う。この結果がタイミングの制約を満たしていない場合、半導体集積回路におけるタイミング・ドリブン・レイアウトの処理を行う。この処理により得られた条件で再びタイミングを解析し、タイミングの制約が満たされるか否かを検証する。タイミングの制約が満たされるまでタイミング・ドリブン・レイアウトおよびそのタイミング解析を繰り返す。このように処理を繰り返すことにより、タイミングの制約が満たされた半導体集積回路のレイアウトデータが得られる。
【０００７】
【特許文献１】特開2001−332693号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、制約ファイルに含まれるタイミングの制約が、一律に等しく、すべてのデータパスに適用されている。データパスとは、フリップフロップ間のロジック部分におけるパスのことである。したがって、タイミングの制約が一律であることから、長いデータパスに対してタイミングの制約が厳しく、制約における検証の収束は困難になる。このような場合、合成段階でタイミングの制約違反が発生してしまうことがある。この発生により、タイミングの最適化における工数が増加する。また、場合によっては、タイミングの制約が達成されないことから、半導体集積回路における仕様変更を余儀なくされることがあった。
【０００９】
特許文献１のバッファ回路およびこれを用いた半導体集積回路装置の設計方法は、入力部、遅延調整部および出力部を含み、少なくとも、ブロックの入/出力端子位置、外形形状および外形寸法、入力端子容量、ならびに出力部の負荷依存性を含めた駆動能力を一定に保ち、遅延調整部の信号遅延値を所定の範囲で変化させる構成に信号遅延値のみを変化させた複数のBFB（BuFfer Block）を備える遅延調整ブロック群を回路ライブラリに登録し必要な信号経路にこのBFBを挿入することによりレイアウト終了後でも設計に影響を及ぼすことなく異なる信号遅延値のBFBと差し替えることができ、遅延シミュレーションのやり直しをせずに済ませることができる。しかしながら、遅延調整を行う上で半導体集積回路には、信号経路にBFBが余分な構成として配設されることになる。
【００１０】
本発明はこのような従来技術の欠点を解消し、BFBを配設することなく、タイミングの制約を満足させ、かつ最適化における収束性を向上させることができる半導体集積回路の設計装置および半導体集積回路の設計方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は上述の課題を解決するために、半導体集積回路における回路設計を行い、この設計に対する制約条件を検証する第１の設計機能ブロックと、この半導体集積回路におけるレイアウト設計を行い、この設計に対する制約条件を検証する第２の設計機能ブロックとを含み、第１の設計機能ブロックは、この検証に用いる段階的に遅延させるクロックの数を決定し、各クロック間の遅延を決めて、数に応じたクロックのそれぞれをクロック系統として生成し、割り付けるクロック生成機能ブロックを含み、第２の設計機能ブロックは、クロック系統を作成し、各クロックのスキューを調整し、クロック系統のクロック遅延を調整する系統決定機能ブロックを含むことを特徴とする。
【００１２】
本発明の半導体集積回路の設計装置は、第１の設計機能ブロックのクロック生成機能ブロックで使用するクロックの数および各クロックに対するクロック遅延を決定し、クロック系統とするクロックのそれぞれを割り付け、各クロックを基に設計に対する制約条件を検証し、タイミングの制約違反をすることなく、供給されるデータを取り込む。これは、タイミングの制約をすべて満足させるリストが得られたことを示し、第２の設計機能ブロックの系統決定機能ブロックは、作成したクロック系統を用い、各クロックのスキューを調整し、さらにクロックの遅延調整を行って、レイアウト調整を検証することにより回路設計およびレイアウト設計においてタイミングの制約をすべて満足させるまでに要する収束時間を従来に比べて短くすることができる。
【００１３】
また、本発明は上述の課題を解決するために、半導体集積回路の回路設計においてこの設計の検証に用いる遅延量の異なるクロックの数を決定し、各クロックのクロック遅延を設定されたタイミングの制約条件を基に決定する第１の工程と、各回路に供給するクロックを割り付ける第２の工程と、このタイミングの制約条件と割り付けによって得られたリストを基にタイミングの最適化を行い、各タイミングの解析結果が制約の違反があるか否かを判断する第３の工程とを含み、制約の違反に応じてタイミングの最適化を繰り返すことを特徴とする。
【００１４】
本発明の半導体集積回路の設計方法は、遅延量の異なるクロックの数および各クロックのクロック遅延を決定し、各回路に供給するクロックをそれぞれ割り付け、タイミングの最適化にともない行われる、各タイミングの解析結果が制約の違反があるか否かを判断し、違反に応じてタイミングの最適化を繰り返して、タイミングの制約をすべて満足させるまでの収束を従来よりも速くすることができる。
【発明を実施するための最良の形態】
【００１５】
次に添付図面を参照して本発明による半導体集積回路の設計装置の一実施例を詳細に説明する。
【００１６】
本実施例は、本発明に係る半導体集積回路の設計装置をLSI（Large-Scale Integration）自動設計シミュレータ10に適用した場合である。本発明と直接関係のない部分について図示および説明を省略する。以下の説明で、信号はその現れる接続線の参照番号で指示する。
【００１７】
LSI自動設計シミュレータ10は、図１に示すように、CPU（Central Processing Unit）12、メモリ14、インタフェース制御部16、データ入力部18、ディスプレイ20およびストレージ22を含む。LSI自動設計シミュレータ10においてCPU 12、メモリ14およびインタフェース制御部16は、データや制御信号のやり取りにバス24を用いている。
【００１８】
CPU 12は、LSI設計で使用するプログラムを順次読み込んで外部から供給される入力条件を満足するように演算してLSIにおける回路を設計する回路設計機能部26およびレイアウト設計を決定するレイアウト設計機能部28を有している。回路設計機能部26は、複数種類のクロックを生成するクロック生成機能部30を含む。クロック生成機能部30には、さらに生成したクロックそれぞれの速度を基に互いの遅延差をも決定する機能がある。
【００１９】
また、レイアウト設計機能部28は、作成するクロックツリーの本数を決定するツリー決定機能部32およびクロックツリー間の遅延差を決定する機能を含む。
【００２０】
メモリ部14には、図示しないがSDRAM（Synchronous Dynamic Random Access Memory)およびメモリ制御部が備えられている。メモリ制御部は、SDRAMのメモリ領域や動作タイミング等を制御する。
【００２１】
インタフェース制御部16には、データ入力部18、ディスプレイ20およびストレージ22がそれぞれ接続されている。そして、インタフェース制御部16は、バス24に接続されている。インタフェース制御部16には、図示しないがたとえば、PCI（Peripheral Component Interconnect）バス制御部が配設され、このPCI制御部に対してデータ入力部18、ディスプレイ20およびストレージ22それぞれに対応するキーボード、マウス等のインタフェース制御部、ディスプレイ制御部、IDE（Integrated Device Electronics）制御部やSCSI（Small Computer System Interface）が接続されている。PCIバス制御部は、周辺機器から供給されるデータをバス24に送り、バス24を介してCPU 12およびメモリ部14に供給する。
【００２２】
データ入力部18は、キーボードやマウス、外部からの通信を介してデータを取り込むモデム等を含む。ディスプレイ20は、回路設計における仕様等の条件ならびに配線配置における入力条件およびこの条件での演算結果等によるレイアウトを視覚的に表示する機能を有している。
【００２３】
ストレージ22は、ハードディスク装置やRAID（Redundant Arrays of Inexpensive Disks）装置である。ストレージ22は、回路設計およびレイアウト設計に用いる各種の情報を格納し、最終的に得られた回路パターンデータを保存している。各種の情報としては、たとえば、論理回路の接続関係を表すネットリスト、セル設計、マクロ設計に用いるセルライブラリおよび機能論理設計を行うプログラム等がある。
【００２４】
このように構成してストレージ22が有する回路設計プログラムおよびレイアウト設計プログラムをCPU 12に順次読み出して、仕様条件およびタイミングの制約等にマッチするか否かを演算し、これらの条件によるLSI設計のシミュレーションを行う。
【００２５】
次にLSI自動設計シミュレータ10の動作について説明する。図２に示すように、LSI自動設計シミュレータ10は、基本的に、回路設計ルーチン（SUB1）およびレイアウト設計ルーチン（SUB2）を有し、回路設計に基づいてレイアウトの設計を行っている。各ルーチンは、後段に示す図３および図４を参照しながら、さらに詳しく説明する。
【００２６】
回路設計ルーチン（SUB1）は、図３に示すように、回路の仕様を記述する（サブステップSS10）。この仕様の記述には、RTL言語が用いられる。次にタイミングの制約を記述する（サブステップSS12）。これらの記述は、データ入力部18を基に条件としてLSI自動設計シミュレータ10に取り込まれる。データ入力部18は、取り込んだデータ34をインタフェース制御部16に送る。インタフェース制御部16は、バス24を介してメモリ14に供給したり、たとえばタイミングの制約条件が記載された制約ファイルデータ38をストレージ22に供給したりする。また、インタフェース制御部16は、供給されたデータ34をディスプレイ20にデータ36として送出し、画面に表示させる。
【００２７】
次に回路設計機能部26は、メモリ14またはストレージ22から制約ファイルを読み出して、タイミングの制約を基に仮論理合成処理を行う（サブステップSS14）。この処理により、回路におけるパスを分類することができる。すなわち、パスの分類とは、タイミングの制約に対して余裕があるか否かにより分類する。具体的には、分類における判断は、仮論理合成で得られた回路に対するタイミング・レポートにおけるスラック値を基にして行う。スラック値とは、フリップフロップ（Flip-Flop： FF）回路に規定されている入力データのセットアップ時間またはホールド時間と実際に入力されるデータの到達時間との差を示すものである。スラック値が正のとき、この値の分がタイミングの制約に対して余裕を持っていることを示している。また、スラック値が負のとき、この値の分だけタイミングの制約に対して違反していることを示している。
【００２８】
クロック生成機能部30は、このスラック値を基にしてレイアウト設計にて生成するクロックツリーの数を決定する（サブステップSS16）。また、クロック生成機能部30は、生成したクロックツリーのそれぞれの間で相互に生じるクロックの遅延差も決定する。クロックの遅延差は、タイミング・レポートの結果により決める。
【００２９】
次に生成するクロックツリーのそれぞれに対する定義を行い、作成した制約ファイルを更新し、ストレージ22に記録する（サブステップSS18）。クロック生成機能部30は、さらに各フリップフロップ回路に対してクロックを割り付ける（サブステップSS20）。具体的に説明すると、仮論理合成処理で行った論理合成で得られるゲートレベルネットリストのフリップフロップ回路には、同じクロックがすべてに供給されている。このクロック割付は、このクロックの供給を定義したクロックツリーのそれぞれに接続し直すことである。図５のクロック生成機能部30は、クロック割付を行った状態を示している。遅延の異なるクロックのそれぞれを組み合わせて使用することにより、クロック生成機能部30は、設計する回路における各フリップフロップ回路間のデータパスに対して異なるタイミングの制約を設定することが可能になる。
【００３０】
図５の場合、フリップフロップ回路40〜52のそれぞれは、経路を介して接続されている。経路の長さは、本実施例におけるパスA〜Eの大きさに比例するものと仮定する。この仮定に基づいて遅延量を検討して見ると、フリップフロップ回路40とフリップフロップ回路52の間にあるパスEが大きいことがわかる。したがって、同じクロックがフリップフロップ回路52に供給されると、タイミングの制約を満足させることは厳しくなる。本実施例のクロック生成機能部30は、クロックが供給される系統樹の枝に相当する分枝のそれぞれにバッファを多段に異ならせて接続させている。これによりクロック生成機能部30は、４種類のクロック60〜66を生成して、パスの長さに応じてこれらのクロックを供給している。ここで、クロック60〜66は、ツリー１〜４であり、図6(a)〜図6(d)に示している。
【００３１】
フリップフロップ回路40は、図５に示すように、データのスタートポイントであり、供給されるツリー1のクロック60で動作する。フリップフロップ回路52は、図6(i)に示すように遅延量Dが大きいことから、クロック60よりも遅延量の大きいクロック66で動作させると、パスEによる遅延がクロックの遅延分だけ相殺される。これは、フリップフロップ回路40からフリップフロップ回路52のパスEに許容される遅延時間が大きくなることを意味している。したがって、フリップフロップ回路52は、データの取り込み位置、すなわちサンプリング位置Sが制約違反を示すハッチング領域にかからず、この回路におけるタイミングの制約違反を仮論理合成処理の段階で回避することができる。
【００３２】
最も遅延量の大きいパスEについて説明したが、フリップフロップ回路42〜50のパスそれぞれについても、図6(e)〜図6(h)に示すように基準のクロックに対してパスの遅延に比例した遅延量を有するクロックを供給することによりタイミングの制約違反を避けることができる。
【００３３】
また、フリップフロップ回路46からパスBを経てデータをサンプリングするフリップフロップ回路44は、タイミングの制約に対して十分余裕がある。この場合、フリップフロップ回路44は、図6(e)に示すように、フリップフロップ回路46に供給されるクロック62（ツリー2）よりも遅延量の小さいクロック60（ツリー1）を用いてもよい。これにより、フリップフロップ回路46とフリップフロップ回路44との間にあるパスBに許容される遅延時間は小さくなるが、タイミングの制約違反は発生しない。
【００３４】
このように、タイミングの制約に対して余裕のあるパスがあった場合にデータを取り込む側のフリップフロップ回路に供給するクロックは、できるだけ遅延量の小さいクロックを使用することが好ましい。この使用により、次段以降にタイミングの制約が厳しいパスが存在した場合には、遅延量の大きいクロックを使用することが可能になる。
【００３５】
ここで、クロックの選択について説明する。クロック生成機能部30は、クロックツリーの本数をn本に決定する。使用するクロックの1周期は、Tである。各クロックツリーを図7(b)〜図7(e)に示すように、ツリー1, ツリー2, ・・・, ツリーnとし、各ツリーのクロック遅延をd(1), d(2), ・・・, d(n)とする。クロックツリーの遅延量は、nの増加とともに比例する（d(x)＜d(x+1), 1≦x≦n）。
【００３６】
また、フリップフロップ回路40における内部データ遅延はtd1、フリップフロップ回路40とフリップフロップ回路42の間にあるパスによる遅延はtd2、フリップフロップ回路42自体に定義されているセットアップ時間はts、フリップフロップ回路40に使用するクロックをツリーmにする。図7(a)に示すクロックを基準に検討する。このとき、フリップフロップ回路42の遅延量d(x)は、
【００３７】
（数１）
d(x) ＞ td1＋td2＋ts＋d(m)−T                        ・・・(1)
を満足する最小のクロック遅延段数xを選択する。このようにしてクロック遅延があらかじめ設定される。
【００３８】
再び図３に戻って、クロックの割付を終了した後、更新したタイミングの制約と割り付けたゲートレベルネットリストを基に再合成によるタイミングの最適化処理を行う（サブステップSS22）。最適化処理は、ホールド保証も行っている。
【００３９】
次に更新したタイミングの制約および生成したn本のクロック（ツリー）を基にタイミング解析を行う（サブステップSS24）。解析結果がタイミングの制約すべてを満足しない場合（NO）、最適化処理（サブステップSS22）に戻って、再合成によるタイミングの最適化を行う。すなわち、タイミングの制約がすべて満足されるまで繰り返される。タイミングの制約がすべて満足された場合（YES）、条件を満足したゲートレベルネットリストが得られる（ゲートレベルネットリストの生成・保存：サブステップSS26）。ディスプレイ20は、生成したゲートレベルネットリストをたとえば、回路図として表示する。回路設計機能部26は、得られたゲートレベルネットリストをストレージ22に保存しリターンに移行して、回路設計の手順を終える。
【００４０】
次にレイアウト設計（SUB2）について説明する。まず、レイアウト設計機能部28にてレイアウトにおけるフロアプランを生成する（サブステップSS30）。これに続いて、ブロック配置を作成する（サブステップSS32）。これまでの手順は従来と同じである。次にツリー決定機能部32にてクロックツリーを作成する（サブステップSS34）。クロックツリーは、前述したように回路設計で作成したクロックを別々に作成する。次に作成したクロック毎にスキューを目標値まで合わせる（サブステップSS36）。次に各クロック間の遅延を回路設計ルーチン（SUB1）で決定したクロック遅延（サブステップSS16）に適合するように調整する（遅延調整：サブステップSS38）。
【００４１】
このクロック調整後、タイミング・ドリブン・レイアウト処理を行う（サブステップSS40）。この処理後、伝播クロックでのタイミング解析を行い、タイミングの制約をすべて満足するか否かを判断する（サブステップSS42）。すべてタイミングの制約を満足しない場合（NO）、タイミング・ドリブン・レイアウト処理に戻ってこのレイアウト処理を繰り返す。すべて満足した場合（YES）、レイアウトデータの生成処理に進む（サブステップSS44へ）。
【００４２】
レイアウト設計機能部28はタイミングの制約すべてを満足したレイアウトデータをバス24に出力し、インタフェース制御部16を介してストレージ22に保存する（サブステップSS44）。また、インタフェース制御部16は、得られたレイアウトデータをディスプレイ20に供給して、表示する。レイアウト設計機能部28は、リターンに移行して、レイアウト設計の手順を終える。
【００４３】
このように動作させることにより、レイアウト設計においても、複数のクロックを用いてタイミング解析を行い、タイミングの制約に対する違反の有無を判断し、すべての制約を満足させたレイアウト設計を得ることができる。
【００４４】
回路設計およびレイアウト設計によれば、仮論理合成結果のゲートレベルネットリストに対するタイミング解析結果により、クロックツリー数、各クロックツリー間の遅延差を決定し、各フリップフロップ回路のサンプリングタイミングを満たすクロックツリーを選択して、使用することから、ロジックのパスに対して一律に同じタイミングの制約を与えて実行していた論理合成がパスの長さに応じたタイミングの制約を適用する論理合成になる。個々のタイミングの制約を適用し、合成することにより、回路設計の初期段階からタイミングの制約に対して厳しいパスをあらかじめ緩和させることができ、かつ通常の回路設計と比較して、より高い動作速度を満足する半導体集積回路を得ることができる。
【００４５】
再び、回路設計ルーチン（SUB1）の動作について図８を用いて説明する。図３と同じ手順に対しては、同じ参照符号を付して、説明の煩雑さを避けるため、説明を省略する。本実施例の手順は、タイミング解析を行い（サブステップSS24）、この結果がタイミングの制約違反の場合（NO）、タイミングの制約を変更させ、再度更新処理を行う（サブステップSS28）。
【００４６】
より具体的には、実際のタイミング最適化の結果を基にクロック遅延差の値を再度調整する（サブステップSS28）。この調整後、最適化処理に移行する（サブステップSS22へ）。最適化処理は、前述したように行う。また、再度の最適化処理では、タイミングの制約違反がなくなった際に、ホールド保証だけを行い、ゲートレベルネットリストを得るようにしてもよい。
【００４７】
このようにして、クロックの遅延における調整値を見直すことによって、回路設計段階において高いタイミングの収束性を得ることができる。
【００４８】
また、レイアウト設計ルーチン（SUB2）の動作について図９を用いて説明する。図４と同じ手順に対しては、同じ参照符号を付して、説明の煩雑さを避けるため、説明を省略する。本実施例の手順は、タイミング解析を行い（サブステップSS42）、この結果がタイミングの制約違反の場合（NO）、クロック毎の遅延を調整する（サブステップSS46）。この遅延調整を行うことにより、新たに出現したホールド違反に対する保証が行われる。このような調整後、タイミング・ドリブン・レイアウト処理に戻し（サブステップSS40へ）、この処理を繰り返す。
【００４９】
これにより、レイアウト設計においてもより高いタイミングの収束性を得ることができる。
【００５０】
なお、回路設計とレイアウト設計の追加工程をともに含むようにすると、より一層高いタイミングの収束性を得ることができることは明らかである。
【００５１】
以上のように構成することにより、回路設計機能部26のクロック生成機能部30で使用するクロックの数および各クロックに対するクロック遅延を決定し、クロック系統とするクロックのそれぞれを割り付け、各クロックを基に設計に対する制約条件を検証し、タイミングの制約違反をすることなく、供給されるデータを取り込むことで、タイミングの制約をすべて満足させるリストを求め、レイアウト設計機能部28のツリー決定機能部32は、作成したクロック系統を用い、各クロックのスキューを調整し、さらにクロックの遅延調整を行って、レイアウト調整を検証することにより、回路設計およびレイアウト設計においてタイミングの制約をすべて満足させるまでに要する収束時間を従来に比べて短くすることができる。
【００５２】
クロック生成機能部30は、データの出力開始点であるフリップフロップ回路における内部遅延、データ供給先であるフリップフロップ回路のセットアップ時間、フリップフロップ回路間にある経路にともなう遅延および出力開始点となるフリップフロップ回路に供給するクロックの遅延を加算し、この加算値とクロックの周期との差で割り付けるクロック遅延を決定することにより、最小のクロックツリーを用いることができ、タイミングの制約違反を回避することができる。
【００５３】
半導体集積回路の設計方法は、遅延量の異なるクロックの数および各クロックのクロック遅延を決定し、各回路に供給するクロックをそれぞれ割り付け、タイミングの最適化にともない行われる、各タイミングの解析結果が制約の違反があるか否かを判断し、違反に応じてタイミングの最適化を繰り返して、タイミングの制約をすべて満足させるまでの収束を従来よりも速くすることができる。
【００５４】
また、半導体集積回路のレイアウト設計においてこの設計の検証に遅延量の異なるクロックをそれぞれ作成し、異なるクロック毎にスキューを調整し、クロックのそれぞれが有する遅延を決定したクロック遅延に調整し、タイミングの制約条件を満足するレイアウトに調整し、各タイミングの解析結果が制約の違反があるか否かを判断し、制約の違反に応じてレイアウトの調整を繰り返すことによってもタイミングの制約をすべて満足させるまでの収束時間を従来よりも短く済ますことができる。
【００５５】
回路設計ルーチンにおいてタイミング解析の結果に制約の違反がある場合、この違反に応じてクロック遅延の値を再度調整することにより、調整値が見直され、このルーチンにおいてより一層高いタイミングの収束をもたらすことができる。
【００５６】
レイアウト設計ルーチンにおいてタイミング解析の結果に制約の違反がある場合、この違反に応じてクロック毎の遅延を調整することにより、このルーチンにおいてより一層高いタイミングの収束をもたらすことができる。
【００５７】
それぞれ割り付けるクロック遅延は、データを出力する開始点での内部遅延、セットアップ時間、経路による遅延および使用するクロックの遅延を加算し、この加算値とクロックの周期との差で決定することにより、最小のクロックツリーを用いることができ、タイミングの制約違反を回避することができる。
【図面の簡単な説明】
【００５８】
【図１】本発明に係る半導体集積回路の設計装置を適用したLSI自動設計シミュレータの概略的な構成を示すブロック図である。
【図２】図１のLSI自動設計シミュレータの動作を説明するメインフローチャートである。
【図３】図２のメインフローチャートにおける回路設計ルーチンの動作を説明するフローチャートである。
【図４】図２のメインフローチャートにおけるレイアウト設計ルーチンの動作を説明するフローチャートである。
【図５】クロック系統と各経路の関係を説明する図である。
【図６】クロック系統と各データの入力タイミングを説明する図である。
【図７】フリップフロップ回路に供給するクロックの選択条件を説明するタイミングチャートである。
【図８】図３に示した回路設計ルーチンにおける動作の改良を説明するフローチャートである。
【図９】図４に示したレイアウト設計ルーチンにおける動作の改良を説明するフローチャートである。
【符号の説明】
【００５９】
10  LSI自動設計シミュレータ
12  CPU
14  メモリ
16  インタフェース制御部
18  データ入力部
20  ディスプレイ
22  ストレージ
24  バス
26  回路設計機能部
28  レイアウト設計機能部
30  クロック生成機能部
32  ツリー決定機能部
【図１】
2005165405.tif 000003
【図２】
2005165405.tif 000004
【図３】
2005165405.tif 000005
【図４】
2005165405.tif 000006
【図５】
2005165405.tif 000007
【図６】
2005165405.tif 000008
【図７】
2005165405.tif 000009
【図８】
2005165405.tif 000010
【図９】
2005165405.tif 000011