(57)【要約】【課題】  本発明は、半導体集積回路の電流ピークを分散及び低減することができる半導体集積回路の設計方法及びその装置を提供することを目的とする。【解決手段】  複数のフリップフロップを、同一のクロック系統から供給されるクロックで動作させるように配置及び配線する配置配線ステップＳＰ１〜ＳＰ３と、配置及び配線された各フリップフロップ間に接続されるデータパスの動作タイミングを解析することにより、遅延時間が短いデータパスを抽出する抽出ステップＳＰ４と、抽出されたデータパスのタイミングに基づいて、複数のフリップフロップの中から、クロックとは異なる動作タイミングを持つクロック系統に接続可能なフリップフロップを検出することにより、複数のフリップフロップを有するフリップフロップ群を、互いに異なる動作タイミングを持つクロック系統毎に、複数のフリップフロップ群に分類する検出ステップＳＰ５と、分類された複数のフリップフロップ群に対して、それぞれクロック系統毎に配線を実行する配線ステップＳＰ７〜ＳＰ８とを備える。【選択図】  図５
2006024851.tif 000002
【特許請求の範囲】
【請求項１】
複数のフリップフロップを、同一のクロック系統から供給されるクロックで動作させるように配置及び配線する配置配線ステップと、
前記配置及び配線された前記各フリップフロップ間に接続されるデータパスの動作タイミングを解析することにより、遅延時間が短いデータパスを抽出する抽出ステップと、
前記抽出されたデータパスのタイミングに基づいて、前記複数のフリップフロップの中から、前記クロックとは異なる動作タイミングを持つクロック系統に接続可能なフリップフロップを検出することにより、前記複数のフリップフロップを有するフリップフロップ群を、互いに異なる動作タイミングを持つクロック系統毎に、複数のフリップフロップ群に分類する検出ステップと、
前記分類された複数のフリップフロップ群に対して、それぞれ前記クロック系統毎に配線を実行する配線ステップと
を備えることを特徴とする半導体集積回路の設計方法。
【請求項２】
前記抽出されたデータパスのタイミングに基づいて、前記検出ステップによって検出された前記フリップフロップに接続される前記クロック系統から供給されるクロックのシフト量を、前記クロック系統毎に算出する算出ステップをさらに備え、前記配線ステップは、
前記算出したクロックのシフト量に基づいて、前記分類された複数のフリップフロップ群に対して、それぞれ前記クロック系統毎に配線を実行することを特徴とする請求項１記載の半導体集積回路の設計方法。
【請求項３】
前記配線ステップは、
前記分類された複数のフリップフロップ群に対して、所定のタイミング条件を満たすようにそれぞれ前記クロック系統毎にクロックツリー合成を実行するクロックツリー合成ステップと、
前記フリップフロップ及び全ての回路素子に配線を行う回路素子配線ステップと
を有することを特徴とする請求項１記載の半導体集積回路の設計方法。
【請求項４】
複数のフリップフロップを、同一のクロック系統から供給されるクロックで動作させるように配置及び配線する配置配線部と、
前記配置及び配線された前記各フリップフロップ間に接続されるデータパスの動作タイミングを解析することにより、遅延時間が短いデータパスを抽出する抽出部と、
前記抽出されたデータパスのタイミングに基づいて、前記複数のフリップフロップの中から、前記クロックとは異なる動作タイミングを持つクロック系統に接続可能なフリップフロップを検出することにより、前記複数のフリップフロップを有するフリップフロップ群を、互いに異なる動作タイミングを持つクロック系統毎に、複数のフリップフロップ群に分類する検出部と、
前記分類された複数のフリップフロップ群に対して、それぞれ前記クロック系統毎に配線を実行する配線部と
を備えることを特徴とする半導体集積回路の設計装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の設計方法及びその装置に関する。
【背景技術】
【０００２】
近年、LSI（Large Scale Integrated Circuit：大規模集積回路）が大規模化及び高速化することに伴って、クロックスキュー（複数の記憶要素群を、単一のクロック源から分配された同期の複数クロックによって別個に駆動する場合に発生する、各クロック間の位相ずれ）の調整を高精度に行うことが求められている。
【０００３】
かかる高精度なクロックスキュー調整は、クロックに同期して動作する回路を増加させ、これによりクロックに同期して流れるチップ電流の最大値、すなわちチップの電流ピークの増大を引き起こしている。
【０００４】
ここで図８に、クロックの１周期中に流れるチップ電流、すなわちクロックの立ち上がり時間t１から次のクロックの立ち上がり時間t２までのサイクルタイムts中に流れるチップ電流の波形を示す。
【０００５】
一般にチップ電流においては、チップ全体にクロックを分配するためのクロックバッファによるスイッチング電流C１０が始めに流れた後、続いてクロックスキューが十分に小さな状態に調整された、フリップフロップ（F/F）が動作するタイミングtp付近で電流C２０が最大になる。
【０００６】
そして、フリップフロップから読み出されたデータがデータパス（すなわち信号処理系回路）によって所定の演算処理を施されるときに流れる電流が、演算が早く終了するデータパスでの電流C３０から、サイクルタイムの終了まで演算を要するデータパス（すなわちクリティカルパス）での電流C４０まで徐々に減少していくような電流波形となる。
【０００７】
ここで図９に、クロックスキューを十分に小さく調整するためのクロックのチップ分配方法を示す。チップ１０は、PLL(Phase Locked Loop)２０によって動作周波数にロックされたクロックを、クロックバッファ３０を順次介して分配することにより、当該チップ１０の所定位置にそれぞれ配置されている複数のフリップフロップ（図示せず）を駆動するようになされている。
【０００８】
このようにチップ１０は、PLL２０から駆動対象である末端のフリップフロップ（図示せず）まで、クロックバッファ３０を順次挿入し、いわゆるクロックツリー構造を構築することにより、負荷バランスを調整し、クロックスキューの調整を行うようになされている。
【０００９】
以下、従来のクロックスキュー調整に関する文献名を記載する。
【非特許文献１】S.Tam,etal,”Clock Generation and Distribution for the Third Generation Itanium (R) Processor”,Symposion on VLSI circuit 2003(Intel)
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところで、かかるクロックスキューは、例えばチップ１０の動作周波数が100MHz（サイクルタイム：10ns）を超えると、機能設計を厳しくする必要があり、チップのタイミング条件の制約によって、0.5ns程度に調整する必要がある。
【００１１】
この場合、数千を超えるフリップフロップが、クロックスキュー調整を行ったタイミングに基づいて動作するため、チップの電流ピークは大きくなってしまうことになる。この電流ピークの増大は、例えば電源回路をチップに搭載する場合には、所定レベルの電流を供給できなくなるなど、電源の安定性に大きな影響を及ぼし、また  EMI(Electro-Magnetic Interference：電磁放射雑音)やEMS(Electro-Magnetic Susceptibility：電磁妨害)の問題を引き起こす。
【００１２】
本発明は以上の点を考慮してなされたもので、半導体集積回路の電流ピークを分散及び低減することができる半導体集積回路の設計方法及びその装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の一態様による半導体集積回路の設計方法は、
複数のフリップフロップを、同一のクロック系統から供給されるクロックで動作させるように配置及び配線する配置配線ステップと、
前記配置及び配線された前記各フリップフロップ間に接続されるデータパスの動作タイミングを解析することにより、遅延時間が短いデータパスを抽出する抽出ステップと、
前記抽出されたデータパスのタイミングに基づいて、前記複数のフリップフロップの中から、前記クロックとは異なる動作タイミングを持つクロック系統に接続可能なフリップフロップを検出することにより、前記複数のフリップフロップを有するフリップフロップ群を、互いに異なる動作タイミングを持つクロック系統毎に、複数のフリップフロップ群に分類する検出ステップと、
前記分類された複数のフリップフロップ群に対して、それぞれ前記クロック系統毎に配線を実行する配線ステップと
を備えることを特徴とする。
【００１４】
また本発明の一態様による半導体集積回路の設計装置は、
複数のフリップフロップを、同一のクロック系統から供給されるクロックで動作させるように配置及び配線する配置配線部と、
前記配置及び配線された前記各フリップフロップ間に接続されるデータパスの動作タイミングを解析することにより、遅延時間が短いデータパスを抽出する抽出部と、
前記抽出されたデータパスのタイミングに基づいて、前記複数のフリップフロップの中から、前記クロックとは異なる動作タイミングを持つクロック系統に接続可能なフリップフロップを検出することにより、前記複数のフリップフロップを有するフリップフロップ群を、互いに異なる動作タイミングを持つクロック系統毎に、複数のフリップフロップ群に分類する検出部と、
前記分類された複数のフリップフロップ群に対して、それぞれ前記クロック系統毎に配線を実行する配線部と
を備えることを特徴とする。
【発明の効果】
【００１５】
本発明の半導体集積回路設計方法及びその装置によれば、半導体集積回路の電流ピークを分散及び低減することができる。
【発明を実施するための最良の形態】
【００１６】
図１に、タイミング条件を満足しているチップにおけるデータパスの遅延時間の分布を示す。この図１に示すように、クロックの１周期中において、遅延時間の最も長いクリティカルパスが左方に位置し、右方に移ることに応じて、遅延時間が短く、サイクルタイムに対して遅延時間に余裕があるデータパスが位置している。ここではサイクルタイムに対して遅延時間に余裕があるデータパスをショートパスと呼ぶ。
【００１７】
このショートパスは、通常のデータパスにおけるサイクルタイムより短い時間間隔でデータの受け渡しを行うことができる場合が多い。
【００１８】
ここで図２(a)に、同一系統のクロックCLKで動作させる回路構成を示すと共に、図２(b)に、同一系統のクロックCLKから供給されるクロックCLK_A及びクロックCLK_Bのタイムチャートを示す。
【００１９】
一方、図３(a)に、異なる系統のクロックCLK及びDCLKで動作させる回路構成を示すと共に、図３(b)に、クロックCLKから供給されるクロックCLK_Cと当該クロックCLKとは異なる系統のクロックDCLKから供給されるクロックDCLK_D及びDCLK_Eのタイムチャートを示す。
【００２０】
図２(a)に示された構成では、フリップフロップ１００A及び１００B間に、所定の信号処理を行う通常のデータパス１１０が接続され、各フリップフロップ１００A及び１００Bにはそれぞれ同一のクロックCLKが供給される。ここではフリップフロップ１００Aに供給されるクロックCLKをクロックCLK_Aとすると共に、フリップフロップ１００Bに供給されるクロックCLKをクロックCLK_Bとする。
【００２１】
図２(b)に示すように、通常のデータパス１１０においては、クロックCLK_Aの立ち上がりエッジt１００でデータをデータパス１１０に送り出すフリップフロップ１００Aと、クロックCLK_Bの立ち上がりエッジt１１０でデータパス１１０から出力されるデータを受け取るフリップフロップ１００Bとが、同一クロックCLKの１サイクル前後するエッジでデータの受け渡しを行うようになされている。
【００２２】
一方、図３(a)に示された構成では、フリップフロップ１００C及び１００D間に、遅延時間に余裕があるショートパス１２０が接続されると共に、フリップフロップ１００D及び１００E間に、通常のデータパス１３０が接続されており、またフリップフロップ１００CにはクロックCLKが供給されると共に、フリップフロップ１００D及び１００EにはクロックCLKを所望時間遅延させたクロックDCLKがそれぞれ供給される。
【００２３】
ここではフリップフロップ１００Cに供給されるクロックCLKをクロックCLK_Cとし、フリップフロップ１００Dに供給されるクロックDCLKをクロックDCLK_Dとすると共に、フリップフロップ１００Eに供給されるクロックDCLKをクロックDCLK_Eとする。
【００２４】
図３(b)に示すように、ショートパス１２０では、サイクルタイムに対して遅延時間に余裕があることから、データを送り出すフリップフロップ１００Cに供給されるクロックCLK_Cの立ち上がりエッジt１２０と、ショーパス１２０から出力されるデータを受け取るフリップフロップ１００Dに供給されるクロックDCLK_Dの立ち上がりエッジt１３０との時間間隔を、２つのクロックCLK及びDCLKを用いて通常のサイクルタイムより短くなるように設定することができる。
【００２５】
この場合、フリップフロップ１００D及び１００Eは、通常のサイクルタイムと同一時間間隔t１３０〜t１４０でデータの受け渡しを行うが、通常のクロックCLK_Cのエッジとは異なるエッジに基づくタイミングで動作することになる。
【００２６】
このように、本発明の実施の形態による半導体集積回路設計方法では、フリップフロップ１００間におけるデータの受け渡しを、通常のサイクルタイムより短い時間間隔で行うことができるショートパス１２０を抽出し、このショートパス１２０に順次接続されているフリップフロップ１００D及び１００Eを、通常のクロックCLKと異なる系統のクロックDCLKで動作させる。
【００２７】
これにより、クロックCLKに同期して動作するフリップフロップ１００の数を減らすことができ、チップの電流ピークを低減することができる。
【００２８】
ここで図４に、本発明の実施の形態による半導体集積回路設計装置２００の構成を示す。入力部２１０は、半導体集積回路の接続関係を表したネットデータと呼ばれる設計データを入力し、これを配置配線部２２０に与える。
【００２９】
配置配線部２２０は、セル配置を実行した後、クロック配線網にクロックバッファを挿入し、ツリー状に負荷バランスを調整してレイアウトするクロックツリー合成（CTS：Clock Tree Synthesis）を実行することにより、クロックスキューを調整したクロック信号の配線を行い、続いてデータ信号の配線を実行する。そして配置配線部２２０は、得られた設計データを、記憶部２３０に記憶する共にタイミング解析部２４０に出力する。
【００３０】
タイミング解析部２４０は、設計データに所定の高精度なタイミング解析を実行してショートパスを抽出し、得られたタイミング解析結果をフリップフロップ（F/F）検出部２５０に出力する。
【００３１】
フリップフロップ検出部２５０は、このタイミング解析結果に基づいて、通常のクロックとは異なるタイミングのエッジを有する別系統のクロックで動作させることができるフリップフロップを検出し、その検出結果をシフト量算出部２６０に出力する。
【００３２】
シフト量算出部２６０は、抽出されたショートパスの遅延時間に応じて、検出されたフリップフロップ群を動作させる新たなクロックのシフト量（すなわち遅延時間）を算出し、これを配線部２７０に出力する。
【００３３】
配線部２７０は、記憶部２３０から設計データを読み出した後、通常のクロックで動作するフリップフロップ群を有するクロック系統と、当該通常のクロックを所定量シフトさせたクロックで動作するフリップフロップ群を有するクロック系統それぞれに対して、すなわちクロック系統毎にクロックツリー合成を実行することにより、クロックスキューを調整したクロック信号の配線を行い、続いてデータ信号の配線を実行し、得られた設計データをタイミング解析部２４０に出力する。
【００３４】
タイミング解析部２４０は、設計データに対して所定のタイミング解析を実行し、その結果、タイミング条件を満たしていないと判断した場合には、設計データをIPO(In-Place Optimization)部２８０に出力する。
【００３５】
IPO部２８０は、設計データに対してタイミングの修正を実行することにより、チップ全体でタイミング条件を満足したマスクデータ（テープアウトデータ）を生成し、これを出力部２９０を介して外部に出力する。
【００３６】
なおタイミング解析部２４０は、設計データに対して所定のタイミング解析を実行し、その結果、タイミング条件を満たしていると判断した場合には、設計データを出力部２９０を介して外部に出力する。
【００３７】
このようにして半導体集積回路設計装置２００は、通常のクロックで動作するフリップフロップ群と、当該通常のクロックとは異なるタイミングのエッジを有するクロックで動作するフリップフロップ群とを有する半導体集積回路を設計するようになされている。
【００３８】
ここで図５に、本実施の形態による半導体集積回路設計処理手順RT１を示す。すなわちこの図５において配置配線部２２０は、半導体集積回路設計処理手順RT１に入ると、ステップSP１において、機能設計、最適なゲートレベルの論理回路を生成するための論理合成最適化を実行することにより生成された設計データに対して、セル配置を実行した後、続くステップSP２において、クロックツリー合成を実行することによりクロックスキューを調整し、ステップSP３に移って、詳細配線を実行する。
【００３９】
そしてステップSP４において、タイミング解析部２４０は、設計データに対して、例えばショートパスを抽出するなど、所定の高精度なタイミング解析を実行する。次いでステップSP５において、フリップフロップ検出部２５０は、このタイミング解析によって得られたショートパスを用いて、通常のクロックとは異なるタイミングのエッジを有するクロックで動作させることができるフリップフロップを検出する。
【００４０】
ステップSP６において、シフト量算出部２６０は、抽出されたショートパスの遅延時間に応じて、検出されたフリップフロップ群を動作させる新たなクロックのシフト量を算出する。そしてステップSP７において、配線部２７０は、クロック系統毎にクロックツリー合成を実行した後、続くステップSP８に移って、詳細配線を実行する。
【００４１】
ステップSP９において、タイミング解析部２４０は、設計データに対して再度所定のタイミング解析を実行する。そしてステップSP１０において、タイミング解析部２４０は、チップ全体でタイミング条件を満たしているか否か判断し、タイミング条件を満たしていると判断した場合には、ステップSP１１に移って当該半導体集積回路設計処理手順RT１を終了し、タイミング条件を満たしていないと判断した場合には、ステップSP１２に移って、IPO部２８０によってタイミング修正を実行させた後、ステップSP９に戻って再びタイミング解析を実行する。
【００４２】
ここで図６に、通常のクロックと、当該通常のクロックのエッジとは異なるタイミングのエッジを有するクロックとの２系統をチップ４００に分配する様子を示す。
【００４３】
すなわちこの図６に示すように、チップ４００は、通常のクロックを、PLL４１０からクロックバッファ４２０を順次介して分配するクロック系統CT１（図中実線）と、通常のクロックのエッジとは異なるタイミングのエッジを有するクロックを、PLL４１０からクロックバッファ４２０を順次介して分配するクロック系統CT２とを有し、当該異なるタイミングのエッジを有するクロックでフリップフロップ４３０を動作させるようになされている。
【００４４】
図７に、チップに２つのクロック系統を形成した場合におけるチップ電流I１の波形を示す。この図７に示すように、所望のフリップフロップ群を通常のクロックのエッジとは異なるタイミングのエッジを有するクロックで動作させることにより、１つのクロック系統を形成した場合におけるチップ電流I２と比較してチップの電流ピークを分散及び低減することができる。
【００４５】
以上の構成を備えたことにより、半導体集積回路設計装置２００では、通常のクロックとは異なるタイミングのエッジを有するクロックで動作させることができるフリップフロップを検出し、この検出したフリップフロップを、当該通常のクロックとは異なるタイミングのエッジを有するクロックで動作させる。
【００４６】
よって、本実施の形態によれば、同一のクロックに同期して動作するフリップフロップの数を減らしてチップの電流ピークを分散及び低減することができ、これにより例えば電源回路をチップに搭載するような場合であっても、電源の安定性を確保することができ、またEMIやEMSの問題を解消することができる。
【００４７】
なお上述の実施の形態においては、チップに２つのクロック系統を形成する場合について述べたが、本発明はこれに限らず、３つ以上のクロック系統を形成しても良い。
【図面の簡単な説明】
【００４８】
【図１】データパスに対する遅延時間の分布を示す説明図である。
【図２】同一系統のクロックで動作させる回路構成を示すブロック図である。
【図３】異なる系統のクロックで動作させる回路構成を示すブロック図である。
【図４】本発明の実施の形態による半導体集積回路設計装置の構成を示すブロック図である。
【図５】同半導体集積回路設計装置による半導体集積回路設計処理手順を示すフローチャートである。
【図６】同半導体集積回路設計装置におけるクロックのチップ分配方法を示す説明図である。
【図７】本発明の実施の形態によるチップ電流の波形を示す説明図である。
【図８】従来のチップ電流の波形を示す説明図である。
【図９】従来のクロックのチップ分配方法を示す説明図である。
【符号の説明】
【００４９】
１０、４００  チップ
２０、４１０  PLL
３０、４２０  クロックバッファ
１００、４３０  フリップフロップ
１１０、１２０、１３０  データパス
２１０  入力部
２２０  配置配線部
２３０  記憶部
２４０  タイミング解析部
２５０  フリップフロップ検出部
２６０  シフト量検出部
２７０  配線部
２８０  IPO部
２９０  出力部
【図１】
2006024851.tif 000003
【図２】
2006024851.tif 000004
【図３】
2006024851.tif 000005
【図４】
2006024851.tif 000006
【図５】
2006024851.tif 000007
【図６】
2006024851.tif 000008
【図７】
2006024851.tif 000009
【図８】
2006024851.tif 000010
【図９】
2006024851.tif 000011