(57)【要約】【課題】ＬＳＩ設計の効率化および設計期間の短縮化を図ること。【解決手段】グループＧ１１は、回路素子３０１，３０２の除外により再構築されたグループである。また、グループＧ０１から除外された回路素子３０１，３０２は、あらたなグループＧ０３としてグループ化される。この再構築処理により、グループＧ１１、グループＧ０２、およびグループＧ０３が構築される。グループＧ０２の回路素子３０３とグループＧ０３の回路素子３０２とを接続するデータパスＤＰ１を新規のグループ間パスＧＰ２として特定する。そして、このグループ間パスＧＰ２を解析する。【選択図】図４
2007128429.tif 000002
【特許請求の範囲】
【請求項１】
設計対象回路に関するクロックツリーを取得する取得手段と、
前記取得手段によって取得されたクロックツリーに基づいて、スキューが同一となる回路素子群からなるグループを構築する構築手段と、
前記構築手段によって構築されたグループ間を接続するパス（以下、「グループ間パス」という）のタイミングを解析する解析手段と、
前記解析手段によって解析された前記グループ間パスの解析結果を出力する出力手段と、
を備えることを特徴とする設計支援装置。
【請求項２】
前記構築手段は、
前記解析手段により、前記グループ間パスがクリティカルパスであると解析された場合、前記グループ間パスに接続されている回路素子が、当該回路素子が含まれているグループから除外するようにグループを構築し、
前記解析手段は、
前記構築手段によって構築された新規のグループと他のグループとの間のパス（以下、「新規のグループ間パス」という）のタイミングを解析し、
前記出力手段は、
前記新規のグループ間パスの解析結果を出力することを特徴とする請求項１に記載の設計支援装置。
【請求項３】
設計対象回路に関するクロックツリーを取得する取得工程と、
前記取得工程によって取得されたクロックツリーに基づいて、スキューが同一となる回路素子群からなるグループを構築する構築工程と、
前記構築工程によって構築されたグループ間を接続するパス（以下、「グループ間パス」という）のタイミングを解析する解析工程と、
前記解析工程によって解析された前記グループ間パスの解析結果を出力する出力工程と、
を含んだことを特徴とする設計支援方法。
【請求項４】
設計対象回路に関するクロックツリーを取得させる取得工程と、
前記取得工程によって取得されたクロックツリーに基づいて、スキューが同一となる回路素子群からなるグループを構築させる構築工程と、
前記構築工程によって構築されたグループ間を接続するパス（以下、「グループ間パス」という）のタイミングを解析させる解析工程と、
前記解析工程によって解析された前記グループ間パスの解析結果を出力させる出力工程と、
をコンピュータに実行させることを特徴とする設計支援プログラム。
【請求項５】
請求項４に記載の設計支援プログラムを記録したコンピュータに読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、設計対象回路（ＬＳＩ）に関する設計支援をおこなう設計支援装置、設計支援方法、設計支援プログラム、および記録媒体に関する。
【背景技術】
【０００２】
タイミング設計とは、ＬＳＩの回路遅延を見積もり、最適化をおこなって遅延がＬＳＩの正常動作に必要な範囲内にあることを確認する工程のことである。タイミング設計は、製造したＬＳＩが正しく動作することを保証するために必要不可欠であると同時に、作業量が多く、ＬＳＩ設計工数の中でも大きな割合を占めているため非常に重要である。ＬＳＩ設計期間の短縮のためには、まず、タイミング設計工数の削減を図る必要がある。
【０００３】
近年のＬＳＩ設計では、低消費電力化、モジュール再利用などの理由により、複雑なタイミング設計上の制約が要求されることが多い。たとえば、速く動く必要がない部分は分周して低いクロック周波数を使用したり、クロックゲートを入れて不要なクロックの供給を停止したりすることによって低消費電力化を図ることが一般的におこなわれている。また、一つのＬＳＩを複数の機器に使うため、タイミング条件が異なる複数の動作モードを用意することもある。このため、ＬＳＩ設計のタイミング制約は複雑になることが多い。
【０００４】
ＬＳＩがターゲット周波数で動作するためには、セットアップ制約とホールド制約の２種類のタイミング制約を満たす必要がある。一般的に、送り側のＦＦ（フリップフロップ）から出た信号が、受け側のＦＦに到達するタイミングは、現クロックの後、つぎのクロックの前になければならない。信号の到達が現在のクロックよりも後に届くことを保証するのがホールド制約、つぎのクロックよりも前に届くことを保証するのがセットアップ制約であり、それぞれ信号の伝播時間の最小限、最大限の値を定める。
【０００５】
そして、従来の一般的な設計フローでは、全ＦＦが同一時刻にクロックを受けるものと仮定してＦＦ間のタイミング制約を導き出し、タイミング最適化配置を行った後、スキュー（ＦＦ間のクロック到達時刻の差）を最小化するようにクロックツリーを構築していた。
【０００６】
図７は、クロックツリーの一例を示す説明図である。図７において、太線はクロックパス、細線はデータパス、ＣＳはクロックソースをあらわしている。クロックツリー７００を構築する際、クロック生成回路などを構成するクロックツリー７００末端のＦＦ１、ＦＦ３、・・・からなるグループＧのスキューを０にする必要がある。
【０００７】
データパスＤＰは、ＦＦ１からクロックツリーの非末端であるＦＦ２（たとえば、分周回路やクロックゲート）に対し、データを出力するパスである。この場合、スキュー調整は、配置配線後におこなうこととなる。配置配線後にスキュー調整をおこなう従来技術としては、たとえば、下記特許文献１が挙げられる。
【０００８】
また、論理合成終了後に簡易に配置配線・クロックツリー７００を構築する場合、ＳＴＡ（Ｓｔａｔｉｃ  Ｔｉｍｉｎｇ  Ａｎａｌｙｓｉｓ）解析をおこなうことにより、タイミングエラーを早期に発見することができる。これにより、ＦＦにタイミング制約を与えてクロックツリーを生成し直し、エラーの修正をおこなうことができる。
【０００９】
【特許文献１】特開２００４−１８５４６６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、図７に示したクロックツリー７００では、ＦＦ１とＦＦ３は同一のグループであるにもかかわらず、ＦＦ１からデータパスＤＰを介してデータが入力されたＦＦ２の動作の後にＦＦ３が動作するため、ＦＦ１とＦＦ３との間にスキューが発生することとなる。したがって、データパスＤＰが存在することにより、クロックツリー７００のタイミング制約の遵守が困難になる場合があるという問題があった。
【００１１】
このように、タイミング制約違反が配置配線終了後に残ると、ＥＣＯ（Ｅｎｇｉｎｅｅｒｉｎｇ  Ｃｈａｎｇｅ  Ｏｒｄｅｒ）による修正を施すことになるが、配置配線終了後の修正は、手戻りが発生するため設計者の労力が増大し、設計期間が長期化するという問題があった。
【００１２】
また、上述したように、論理合成終了後に簡易にクロックツリー７００を構築する場合、タイミングエラーを検出するためにＳＴＡ解析をおこなうが、一般にＳＴＡ解析は全パスを対象としている。また、一部のＦＦのタイミングを変更した際も、他のパスへの影響が起こりうるために、逐一全パスについてＳＴＡ解析をおこなう必要がある。したがって、論理合成終了後にクロックツリーを構築する場合、クロックタイミングを修正する都度、ＳＴＡ解析が必要となるため、設計期間が長期化するという問題があった。
【００１３】
この発明は、上述した従来技術による問題点を解消するため、ＬＳＩ設計の効率化および設計期間の短縮化を図ることができる設計支援装置、設計支援方法、設計支援プログラム、および記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上述した課題を解決し、目的を達成するため、この発明にかかる設計支援装置、設計支援方法、設計支援プログラム、および記録媒体は、設計対象回路に関するクロックツリーを取得し、取得されたクロックツリーに基づいて、スキューが同一となる回路素子群からなるグループを構築し、構築されたグループ間を接続するパス（以下、「グループ間パス」という）のタイミングを解析し、解析された前記グループ間パスの解析結果を出力することを特徴とする。
【００１５】
この発明によれば、配置配線処理前に、エラー発生の蓋然性の高い解析箇所をグループ間パスに絞り込むことができる。
【００１６】
また、上記発明において、前記グループ間パスがクリティカルパスであると解析された場合、前記グループ間パスに接続されている回路素子が、当該回路素子が含まれているグループから除外するようにグループを構築し、構築された新規のグループと他のグループとの間のパス（以下、「新規のグループ間パス」という）のタイミングを解析し、前記新規のグループ間パスの解析結果を出力することとしてもよい。
【００１７】
この発明によれば、配置配線処理前にスキュー調整をしつつ、エラー発生の蓋然性の高いグループ間パスを特定することができる。
【００１８】
また、上記発明において、前記新規のグループ間パスがクリティカルパスでないと解析された場合、前記新規のグループと前記他のグループとが同一のスキューであるか否かを判断し、判断結果に基づいて、前記新規のグループと前記他のグループとを併合するようにグループを構築することとしてもよい。
【００１９】
この発明によれば、配置配線処理前にスキュー調整の最適化を図ることができる。
【発明の効果】
【００２０】
本発明にかかる設計支援装置、設計支援方法、設計支援プログラム、および記録媒体によれば、ＬＳＩ設計の効率化および設計期間の短縮化を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００２１】
以下に添付図面を参照して、この発明にかかる設計支援装置、設計支援方法、設計支援プログラム、および記録媒体の好適な実施の形態を詳細に説明する。
【００２２】
（設計支援装置のハードウェア構成）
まず、この発明の実施の形態にかかる設計支援装置のハードウェア構成について説明する。図１は、この発明の実施の形態にかかる設計支援装置のハードウェア構成を示すブロック図である。
【００２３】
図１において、設計支援装置は、ＣＰＵ１０１と、ＲＯＭ１０２と、ＲＡＭ１０３と、ＨＤＤ（ハードディスクドライブ）１０４と、ＨＤ（ハードディスク）１０５と、ＦＤＤ（フレキシブルディスクドライブ）１０６と、着脱可能な記録媒体の一例としてのＦＤ（フレキシブルディスク）１０７と、ディスプレイ１０８と、Ｉ／Ｆ（インターフェース）１０９と、キーボード１１０と、マウス１１１と、スキャナ１１２と、プリンタ１１３と、を備えている。また、各構成部はバス１００によってそれぞれ接続されている。
【００２４】
ここで、ＣＰＵ１０１は、設計支援装置の全体の制御を司る。ＲＯＭ１０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ１０３は、ＣＰＵ１０１のワークエリアとして使用される。ＨＤＤ１０４は、ＣＰＵ１０１の制御にしたがってＨＤ１０５に対するデータのリード／ライトを制御する。ＨＤ１０５は、ＨＤＤ１０４の制御で書き込まれたデータを記憶する。
【００２５】
ＦＤＤ１０６は、ＣＰＵ１０１の制御にしたがってＦＤ１０７に対するデータのリード／ライトを制御する。ＦＤ１０７は、ＦＤＤ１０６の制御で書き込まれたデータを記憶したり、ＦＤ１０７に記憶されたデータを設計支援装置に読み取らせたりする。
【００２６】
また、着脱可能な記録媒体として、ＦＤ１０７のほか、ＣＤ−ＲＯＭ（ＣＤ−Ｒ、ＣＤ−ＲＷ）、ＭＯ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、メモリーカードなどであってもよい。ディスプレイ１０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ１０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００２７】
Ｉ／Ｆ１０９は、通信回線を通じてインターネットなどのネットワーク１１４に接続され、このネットワーク１１４を介して他の装置に接続される。そして、Ｉ／Ｆ１０９は、ネットワーク１１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ１０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００２８】
キーボード１１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス１１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００２９】
スキャナ１１２は、画像を光学的に読み取り、設計支援装置内に画像データを取り込む。なお、スキャナ１１２は、ＯＣＲ機能を持たせてもよい。また、プリンタ１１３は、画像データや文書データを印刷する。プリンタ１１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００３０】
（設計支援装置の機能的構成）
つぎに、この発明の実施の形態にかかる設計支援装置２００の機能的構成について説明する。図２は、この発明の実施の形態にかかる設計支援装置２００の機能的構成を示すブロック図である。図２において、設計支援装置２００は、取得部２０１と、構築部２０２と、解析部２０３と、出力部２０４と、判断部２０５と、から構成されている。
【００３１】
図２において、取得部２０１は、設計対象回路に関するクロックツリーを取得する。具体的には、たとえば、設計対象回路（ＬＳＩ）に関するネットリストや論理合成ツールによって生成されたタイミング制約ファイルなど、クロックツリーの生成に必要な回路情報を読み込む。そして、設計対象回路の仮配置・仮配線処理を施す。これにより、設計対象回路に関するクロックツリーが生成される。ここで、クロックツリーについて図面を用いて説明する。
【００３２】
図３は、この発明の実施の形態にかかる設計対象回路に関するクロックツリー３００を示す説明図である。図３において、クロックツリー３００は、クロックソースＣＳと複数の回路素子とから構成されている。各回路素子は、バッファ、クロック生成回路、分周回路、クロックゲートバッファなどを構成する設計対象回路内の回路部品であり、たとえば、フリップフロップ（ＦＦ）等から構成されている。図３においては、回路素子３０１，３０２，３０４〜３０７がクロックツリー３００の末端に位置する回路素子であり、回路素子３０３は、非末端の回路素子である。
【００３３】
また、各回路素子３０１〜３０７は、クロックソースＣＳからクロックパス（図３中、太線）によって直接または間接的に接続されている。各回路素子３０１〜３０６は、クロックパスを経由してクロックソースＣＳからクロック信号を入力する。また、各回路素子３０１〜３０７は、他の回路素子とデータパス（図３中、細線矢印）によって接続されている。たとえば、データパスＤＰ１の接続先の回路素子３０３と、データパスＤＰ２の接続先の回路素子３０４はともに、接続元の回路素子３０２からデータ信号を入力する。
【００３４】
また、図２において、構築部２０２は、取得部２０１によって取得されたクロックツリー３００に基づいて、スキューが同一となる回路素子群からなるグループを構築する。スキューとは、回路素子（ＦＦ）間のクロックソースＣＳからのクロック信号の到達時間差である。構築部２０２は、スキューが０となる回路素子どうしを同一グループになるようにグループ化する。
【００３５】
たとえば、図３においては、クロックツリー３００の末端に位置する回路素子３０１，３０２，３０４〜３０７は、回路素子３０１，３０２，３０４〜３０７間においてクロック信号の到達時間差が０、すなわち、スキューが０となる回路素子群である。この回路素子群を、ここではグループＧ０１と表記する。
【００３６】
また、構築部２０２は、同一スキューの回路素子がない場合には、当該回路素子のみかからなるグループにグループ化する。たとえば、回路素子３０３は、回路素子３０２からデータパスＤＰ１を介してデータ信号を取り込む。そして、取り込んだデータ信号を処理してから、回路素子３０４，３０５に対しクロックパスを介してクロック信号を供給する。
【００３７】
したがって、回路素子３０３は、他の回路素子３０１，３０２，３０４〜３０７とはスキューが異なるため、グループＧ０１とは別グループに属することとなる。また、図３においては、回路素子３０３と同一スキューの回路素子は存在しない。これにより、回路素子３０３は、単独でグループＧ０２を構成する。
【００３８】
なお、本明細書では、グループに付されている符号『Ｇｘｙ（ｘ、ｙは数字）』について、『ｙ』はグループの種類をあらわす番号であり、『ｘ』は後述する再構築回数を示す。たとえば、『グループＧ０１』は、構築部２０２によって構築されたグループであり、『グループＧ１１』は、グループＧ０１を一度再構築したグループである。
【００３９】
また、構築部２０２によるグループ化（後述する再構築や新規構築も含む）は、回路素子群のスキューを算出することにより自動的にグループ化することとしてもよく、クロックツリー３００をディスプレイ１０８の表示画面に表示させて、ユーザ操作、たとえば、ドラッグアンドドローにより、グループ化することとしてもよい。
【００４０】
また、図２において、解析部２０３は、構築部２０２によって構築されたグループ間を接続するデータパス（以下、「グループ間パス」という）のタイミングを解析する。具体的には、図３に示したクロックツリー３００を例に挙げる。
【００４１】
解析部２０３は、まず、回路素子３０２および回路素子３０３を接続するデータパスＤＰ１を、グループＧ０１とグループＧ０２とを接続するグループ間パスＧＰ１として特定する。そして、当該グループ間パスＧＰ１のみをＳＴＡ解析の解析対象とする。具体的には、グループ間パスＧＰ１が、グループＧ０１またはグループＧ０２において遅延を生じさせるクリティカルパスであるか否かを解析する。
【００４２】
このように、解析部２０３は、グループ間パスＧＰ１のみをＳＴＡ解析対象とし、他のデータパスをＳＴＡ解析の解析対象外とすることで、ＳＴＡ解析の解析処理の高速化、ＳＴＡ解析時間の短縮化を図ることができる。
【００４３】
また、解析部２０３により、グループ間パスがクリティカルパスであると解析された場合、構築部２０２は、グループの再構築をおこなう。具体的には、構築部２０２は、グループ間パスに接続されている回路素子が、当該回路素子が含まれているグループから除外するようにグループを再構築する。より具体的には、たとえば、グループ間パスに接続されているグループ内において、グループ間パスに接続されている回路素子および当該回路素子の前段の回路素子をそのグループから除外し、あらたなグループとして構築する。
【００４４】
たとえば、図３に示したグループ間パスＧＰ１によりグループＧ０１のタイミング制約が遵守されず、グループ間パスＧＰ１がクリティカルパスであると判断された場合、構築部２０２は、グループの再構築をおこなう。すなわち、図３に示したグループ間パスＧＰ１がクリティカルパスである場合、タイミング制約違反となったグループＧ０１中、グループ間パスＧＰ１に接続されている回路素子３０２およびその前段の回路素子３０１を、グループＧ０１から除外する。
【００４５】
図４は、構築部２０２によるグループの再構築を示す説明図である。図４において、グループＧ１１は、図３において、回路素子３０１，３０２の除外により再構築されたグループである。また、グループＧ０１（図３）から除外された回路素子３０１，３０２は、あらたなグループＧ０３としてグループ化される。この再構築処理により、グループＧ１１、グループＧ０２、およびグループＧ０３が構築される。
【００４６】
この場合、解析部２０３は、構築部２０２によって構築された新規のグループと他のグループとの間のパス（以下、「新規のグループ間パス」という）のタイミングを解析する。すなわち、再構築後のグループ間パスのタイミングを解析する。図４では、たとえば、グループＧ０２の回路素子３０３とグループＧ０３の回路素子３０２とを接続するデータパスＤＰ１を新規のグループ間パスＧＰ２として特定する。また、グループＧ０３の回路素子３０２とグループＧ１１の回路素子３０４とを接続するデータパスＤＰ２を新規のグループ間パスＧＰ３として特定する。
【００４７】
なお、新規のグループ間パスであっても、新規に構築されたグループと当該グループを構成する回路素子群の除外元のグループとの間のグループ間パスは、解析部２０３によるＳＴＡ解析の解析対象外とすることができる。たとえば、グループ間パスＧＰ３は、グループＧ０３を構成する回路素子３０１，３０２の除外元となるグループＧ０１（除外後のグループＧ１１）に接続されているデータパスＤＰ２である。
【００４８】
すなわち、グループＧ０１においてスキューが０となる回路素子３０２，３０４間のデータパスＤＰ２である。したがって、ＳＴＡ解析をしなくてもタイミング制約を遵守しているため、ＳＴＡ解析対象外とすることができる。これにより、再構築後も極力解析対象外とすることで、ＳＴＡ解析の解析処理の高速化、ＳＴＡ解析時間の短縮化を図ることができる。
【００４９】
そして、特定されたグループ間パスＧＰ２，ＧＰ３のタイミングを解析する。具体的には、グループ間パスＧＰ２，ＧＰ３が、グループＧ１１，Ｇ０２，Ｇ０３において遅延を生じさせるクリティカルパスであるか否かを解析する。この場合、解析部２０３により、グループ間パスＧＰ２またはグループ間パスＧＰ３がクリティカルパスであると解析された場合、上記と同様に、構築部２０２はグループの再構築をおこなう。
【００５０】
また、図２において、出力部２０４は、解析部２０３によって解析されたグループ間パスの解析結果を出力する。ここで、解析結果とは、たとえば、図３において、グループ間パスＧＰ１がクリティカルパスでない場合、その旨の情報、またはグループ間パスＧＰ１に接続されているグループ（Ｇ０１、Ｇ０２）がタイミング制約を遵守した場合のデータ信号の到達時間などを含むタイミング制約ファイルを、解析結果として出力する。
【００５１】
また、図４に示したようにグループの再構築後のＳＴＡ解析により、グループ間パスＧＰ２，ＧＰ３がクリティカルパスでないと解析された場合、この解析に応じたタイミング制約ファイルを出力する。これにより、タイミング制約遵守の内容を確認することができる。
【００５２】
また、図２において、判断部２０５は、解析部２０３により、新規のグループ間パスがクリティカルパスでないと解析された場合、新規のグループと他のグループとが同一のスキューであるか否かを判断する。具体的には、新規のグループと、当該新規のグループ内の回路素子の除外元となるグループ以外の他のグループとが、同一のスキューであるか否かを判断する。
【００５３】
たとえば、図４に示した新規のグループＧ０３内の回路素子３０１，３０２と他のグループＧ０２の回路素子３０３とが、同一スキュー（たとえば、スキュー値：０）であるか否かを判断する。同一スキューでないと判断された場合、最終的に構築されたクロックツリー３００は、図４に示した構造となる。
【００５４】
また、上述した構築部２０２は、判断部２０５によって判断された判断結果に基づいて、新規のグループと他のグループとを併合する。具体的には、判断部２０５によって同一スキューであると判断された場合、新規のグループと他のグループとを併合（マージ処理）する。たとえば、図４に示したグループＧ０２とグループＧ０３とが同一スキューである場合、すなわち、クロックソースＣＳから回路素子３０１〜３０３までのクロック信号の到達時間差が０である場合、グループＧ０２とグループＧ０３とをマージする。
【００５５】
図５は、グループのマージ処理結果を示す説明図である。図５において、グループＧ０４は、グループＧ０２およびグループＧ０３をマージ処理することにより構築されたあらたなグループである。
【００５６】
なお、上述した取得部２０１、構築部２０２、解析部２０３、出力部２０４、および判断部２０５は、具体的には、たとえば、図１に示したＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５などの記録媒体に記録されたプログラムを、ＣＰＵ１０１が実行することによって、またはＩ／Ｆ１０９によって、その機能を実現する。
【００５７】
（設計支援装置２００の設計支援処理）
つぎに、この発明の実施の形態にかかる設計支援装置２００の設計支援処理について説明する。図６は、この発明の実施の形態にかかる設計支援装置２００の設計支援処理手順を示すフローチャートである。
【００５８】
図６において、まず、取得部２０１により、設計対象回路のネットリストやタイミング制約ファイルなどの回路情報が読み込まれるまで待機し（ステップＳ６０１：Ｎｏ）、回路情報が読み込まれた場合（ステップＳ６０１：Ｙｅｓ）、図３に示した設計対象回路に関するクロックツリー３００を生成する（ステップＳ６０２）。
【００５９】
そして、図３に示したように、構築部２０２によりクロックツリー３００をグループ分け（グループの構築）する（ステップＳ６０３）。つぎに、解析部２０３により、グループ間パスＧＰ１を特定してグループ間パスＧＰ１のタイミング解析をおこなう（ステップＳ６０４）。そして、グループ間パスＧＰ１がクリティカルパスであるか否かを判断する（ステップＳ６０５）。
【００６０】
クリティカルパスでない場合（ステップＳ６０５：Ｎｏ）、回路情報内のタイミング制約ファイルに記述されているタイミング制約を遵守していることとなり、一連の処理を終了する。この場合、クロックツリー３００中、グループ間パスＧＰ１のみをＳＴＡ解析すればタイミング制約を遵守しているか否かが判明するため、解析処理の高速化、解析時間の短縮化を実現することができる。
【００６１】
一方、ステップＳ６０５において、クリティカルパスであると判断された場合（ステップＳ６０５：Ｙｅｓ）、構築部２０２によるグループの再構築をおこなう（ステップＳ６０６）。すなわち、図４に示したように、グループ間パスＧＰ１に接続される回路素子を有するグループＧ０１，Ｇ０２のうち、タイミング制約違反となったグループＧ０１から、グループ間パスＧＰ１に接続される回路素子３０２とその前段の回路素子３０１を、グループＧ０１から除外してグループＧ１１とする。また、除外された回路素子３０１，３０２を新規のグループＧ０３として構築する。
【００６２】
このあと、解析部２０３により、必要に応じて、クロックツリー３００におけるクロックタイミングの修正をおこなう（ステップＳ６０７）。この修正は、解析部２０３によるあらかじめ設定された自動修正処理でもよく、また、ユーザ操作による修正処理でもよい。
【００６３】
つぎに、解析部２０３により、新規のグループＧ０３に関するグループ間パスＧＰ２，ＧＰ３のタイミング解析をおこなう（ステップＳ６０８）。なお、グループ間パスＧＰ３は、新規のグループＧ０３に属する回路素子３０１，３０２の除外元となるグループＧ０１（図４ではＧ１１）に接続されているデータパスＤＰ２である。
【００６４】
したがって、グループ間パスＧＰ３は、解析対象外となり、グループ間パスＧＰ２のみが解析対象となる。これにより、再構築後においても、解析処理の高速化、解析時間の短縮化を実現することができる。
【００６５】
そして、この解析処理により、クリティカルパスがあるか否かを判断する（ステップＳ６０９）。すなわち、グループ間パスＧＰ２がクリティカルパスであるか否かを判断する。クリティカルパスである場合（ステップＳ６０９：Ｙｅｓ）、ユーザ操作により、クロックタイミング変更入力があったか否かを判断する（ステップＳ６１０）。
【００６６】
クロックタイミング変更入力があった場合（ステップＳ６１０：Ｙｅｓ）、ステップＳ６０７に戻って、クロックタイミングの修正をおこなう。一方、クロックタイミング変更入力がない場合（ステップＳ６１０：Ｎｏ）、ユーザ操作により、再構築入力があったか否かを判断する（ステップＳ６１１）。再構築入力がない場合（ステップＳ６１１：Ｎｏ）、ステップＳ６１０に戻る。
【００６７】
一方、再構築入力があった場合（ステップＳ６１１：Ｙｅｓ）、グループ変更初期化をおこなう（ステップＳ６１２）。グループ変更初期化とは、構築部２０２において現在構築されているグループを、直前のタイミング解析前のグループに戻す処理である。そして、ステップＳ６０６に戻る。
【００６８】
一方、ステップＳ６０９において、クリティカルパスがない場合（ステップＳ６０９：Ｎｏ）、同一スキューのグループがあるか否かを判断する（ステップＳ６１３）。図４に示したグループＧ０２およびグループＧ０３のように、同一スキューのグループがある場合（ステップＳ６１３：Ｙｅｓ）、構築部２０２により、グループＧ０２およびグループＧ０３をマージ処理して（ステップＳ６１４）、あらたなグループＧ０４を構築する。そして、ステップＳ６１５に移行する。
【００６９】
これにより、同一スキューのグループ数を最小限にとどめて、解析結果を自動的に簡略化することができる。一方、同一スキューのグループがない場合（ステップＳ６１３：Ｎｏ）、ステップＳ６１５に移行する。そして、ステップＳ６１５において、クロックタイミングが修正されたタイミング制約ファイルを修正結果として、出力部２０４により出力する（ステップＳ６１５）。
【００７０】
このように、上述した実施の形態によれば、クロックツリー３００をスキューによりグループ化することにより、ＳＴＡ解析対象を、エラー発生の蓋然性の高いグループ間パスに絞り込むことができる。また、ＳＴＡ解析後においてもタイミング制約違反（クリティカルパス検出）がある場合には、グループを構築しなおすことにより、新規のグループ間パスに絞り込むことができる。したがって、修正箇所を容易に把握することができる。
【００７１】
また、全パスのＳＴＡ解析をおこなわなくてもよいため、ＳＴＡ解析処理の高速化を実現することができる。さらに、配置配線前にクロックツリーを修正してスキュー調整をおこなうことができるため、ＥＣＯによる修正が不要であり、配置配線後の手戻りが軽減される。したがって、ユーザの設計負担の軽減を図ることができるとともに、設計期間の短縮化を図ることができる。
【００７２】
なお、本実施の形態で説明した設計支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【００７３】
（付記１）設計対象回路に関するクロックツリーを取得する取得手段と、
前記取得手段によって取得されたクロックツリーに基づいて、スキューが同一となる回路素子群からなるグループを構築する構築手段と、
前記構築手段によって構築されたグループ間を接続するパス（以下、「グループ間パス」という）のタイミングを解析する解析手段と、
前記解析手段によって解析された前記グループ間パスの解析結果を出力する出力手段と、
を備えることを特徴とする設計支援装置。
【００７４】
（付記２）前記構築手段は、
前記解析手段により、前記グループ間パスがクリティカルパスであると解析された場合、前記グループ間パスに接続されている回路素子が、当該回路素子が含まれているグループから除外するようにグループを構築し、
前記解析手段は、
前記構築手段によって構築された新規のグループと他のグループとの間のパス（以下、「新規のグループ間パス」という）のタイミングを解析し、
前記出力手段は、
前記新規のグループ間パスの解析結果を出力することを特徴とする付記１に記載の設計支援装置。
【００７５】
（付記３）前記解析手段により、前記新規のグループ間パスがクリティカルパスでないと解析された場合、前記新規のグループと前記他のグループとが同一のスキューであるか否かを判断する判断手段を備え、
前記構築手段は、
前記判断手段によって判断された判断結果に基づいて、前記新規のグループと前記他のグループとを併合するようにグループを構築することを特徴とする付記２に記載の設計支援装置。
【００７６】
（付記４）設計対象回路に関するクロックツリーを取得する取得工程と、
前記取得工程によって取得されたクロックツリーに基づいて、スキューが同一となる回路素子群からなるグループを構築する構築工程と、
前記構築工程によって構築されたグループ間を接続するパス（以下、「グループ間パス」という）のタイミングを解析する解析工程と、
前記解析工程によって解析された前記グループ間パスの解析結果を出力する出力工程と、
を含んだことを特徴とする設計支援方法。
【００７７】
（付記５）設計対象回路に関するクロックツリーを取得させる取得工程と、
前記取得工程によって取得されたクロックツリーに基づいて、スキューが同一となる回路素子群からなるグループを構築させる構築工程と、
前記構築工程によって構築されたグループ間を接続するパス（以下、「グループ間パス」という）のタイミングを解析させる解析工程と、
前記解析工程によって解析された前記グループ間パスの解析結果を出力させる出力工程と、
をコンピュータに実行させることを特徴とする設計支援プログラム。
【００７８】
（付記６）付記５に記載の設計支援プログラムを記録したコンピュータに読み取り可能な記録媒体。
【産業上の利用可能性】
【００７９】
以上のように、本発明にかかる設計支援装置、設計支援方法、設計支援プログラム、および記録媒体は、ＬＳＩやシステムＬＳＩなどの設計対象回路の設計支援ツールとして有用であり、特に、設計対象回路に関する複雑な構造のクロックツリーのタイミング制約の解析・修正に適している。
【図面の簡単な説明】
【００８０】
【図１】この発明の実施の形態にかかる設計支援装置のハードウェア構成を示すブロック図である。
【図２】この発明の実施の形態にかかる設計支援装置の機能的構成を示すブロック図である。
【図３】この発明の実施の形態にかかる設計対象回路に関するクロックツリーを示す説明図である。
【図４】構築部によるグループの再構築を示す説明図である。
【図５】グループのマージ処理結果を示す説明図である。
【図６】この発明の実施の形態にかかる設計支援装置の設計支援処理手順を示すフローチャートである。
【図７】クロックツリーの一例を示す説明図である。
【符号の説明】
【００８１】
２００  設計支援装置
２０１  取得部
２０２  構築部
２０３  解析部
２０４  出力部
２０５  判断部
３００  クロックツリー
３０１〜３０７  回路素子
ＣＳ  クロックソース
ＤＰ１，ＤＰ２  データパス
Ｇ０１，Ｇ１１，Ｇ０２，Ｇ０３，Ｇ０４  グループ
ＧＰ１，ＧＰ２，ＧＰ３  グループ間パス
【図１】
2007128429.tif 000003
【図２】
2007128429.tif 000004
【図３】
2007128429.tif 000005
【図４】
2007128429.tif 000006
【図５】
2007128429.tif 000007
【図６】
2007128429.tif 000008
【図７】
2007128429.tif 000009