(57)【要約】【課題】半導体集積回路のレイアウト工程において、ＲＴＬの修正や回路変更が発生しても、以前に構築したクロックツリーを再設計することなく再現する。【解決手段】クロックツリー上のバッファをクロックソースからバッファ以外のセルの入力ピンまで順に検索して認識する工程と、認識されたクロックツリー上のバッファグループを階層ブロックとしてインスタンス化する工程と、この階層ブロックをネットリストとして抽出する工程により、一度設計したクロックツリーのバッファ構成部分のみを階層ブロック化し、その階層ブロックをネットリストとして、個々のバッファの物理配置情報とともに保存する。その後回路修正やネットリストの変更を行った後に、保存しておいて階層ブロックをネットリストに挿入し、自動配置後に階層を展開し、クロックツリーの物理配置情報を再現する。【選択図】  図１
2005339200.tif 000002
【特許請求の範囲】
【請求項１】
クロックツリー上のバッファをクロックソースからバッファ以外のセルの入力ピンまで順に検索して認識する工程と、前記認識されたクロックツリー上のバッファグループを階層ブロックとしてインスタンス化する工程と、前記階層ブロックをネットリストとして抽出する工程と、回路修正やネットリストの変更後に前記階層ブロックを回路に挿入する工程とを備える半導体集積回路のクロックツリーレイアウト方法。
【請求項２】
前記クロックツリーの物理配置情報を抽出する工程と、回路修正やネットリストの変更後に前記クロックツリーの物理配置情報を用いて前記クロックツリーの物理配置を再現する工程とを備える請求項１記載の半導体集積回路のクロックツリーレイアウト方法。
【請求項３】
前記クロックツリーの配線情報を抽出する工程と、回路修正やネットリストの変更後に前記クロックツリーの配線情報を用いて前記クロックツリーの配線を再現する工程とを備える請求項１記載の半導体集積回路のクロックツリーレイアウト方法。
【請求項４】
インバータを使用して前記クロックツリーを設計する請求項１記載の半導体集積回路のクロックツリーレイアウト方法。
【請求項５】
半導体集積回路にあらかじめクロックツリーが挿入されており、前記クロックツリーのバッファブロックが階層化されているネットリストを自動配置する半導体集積回路のクロックツリーレイアウト方法。
【請求項６】
前記クロックツリーの階層化されたバッファブロックの出力ピンが複数あり、自動配置後の配置情報によりクロックスキューが最小となるように前記出力ピンと前記出力ピンの接続先セルとの接続関係を再設定する請求項５記載の半導体集積回路のクロックツリーレイアウト方法。
【請求項７】
前記クロックツリーにおける所望のソースポイントから階層ブロックの入力の間のバッファ構成部分においてクロック遅延調整を行う請求項１記載の半導体集積回路のクロックツリーレイアウト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体集積回路のレイアウト方法に関し、特に半導体集積回路の設計期間の短縮に対して有効なクロックツリーのレイアウト方法に関する。
【背景技術】
【０００２】
近年、半導体技術の飛躍的な進歩に伴い、半導体集積回路の大規模化、複雑化、高集積化が進んでいる。特に、システムＬＳＩでは多数のソフトコア、ハードコアを流用するためクロック系統が複雑化し、半導体集積回路設計のレイアウト工程においてクロックツリー生成の設計工数が増加し、設計スケジュールに大きな影響を与えている。
【０００３】
近年のクロックツリーの設計においては、フリップフロップに対するクロックスキューの低減だけでなく、消費電力の問題、微細化に伴うトランジスタ劣化の問題、プロセス変動による遅延誤差の問題などを解決することも重要な課題となっている。
【０００４】
クロックツリーの設計の際には、使用されるトランジスタのバラツキ誤差を低減するために、クロックツリーの段数やセルタイプを合わせて等長配線や等負荷となるようにするが、従来のスキュー調整手法だけでは簡単に実現することができず、クロックツリー生成に多大な労力を費やしている。
【０００５】
また、大規模複雑化する半導体集積回路のレイアウト設計においては回路修正が発生することは多々あり、最終的なＲＴＬ仕様が決定してから短期間でレイアウトを行うために、通常はＲＴＬ仕様が確定する前に仮レイアウトを実施し、クロックツリー生成も行っている。
【０００６】
しかしながら、仮レイアウトで多大な労力を費やし、低消費電力でばらつきやクロストークに強固なクロックツリーを設計し、そのクロックツリーを保存しても、回路修正後に再合成された回路に対して同じ思想のクロックツリーを効率よく再現するための有効な手段がないため、ＲＴＬに修正が入った場合はクロックツリーの設計を再度一から構築し直す必要がある。したがって最終レイアウト工程のクロックツリー設計期間は仮レイアウト時の設計期間にほぼ等しくなってしまう。
【０００７】
このような問題の対策として、従来、クロックツリーをハードマクロ化してスキュー調整を容易にすることで設計を効率的にする技術が開発されている（例えば、特許文献１参照）。図６は、従来技術によるクロックツリーの設計方法を示すフロー図である。
【０００８】
図６において、ステップ６０１で回路設計を行い、ステップ６０２で回路に挿入されているクロックをハードマクロ化し、ステップ６０３でフォアードアノテーションを行い、実施結果がＯＫであった場合は次のステップ６０４に進み、ＮＧであった場合はステップ６０１の回路設計に戻る。
【０００９】
ステップ６０４ではステップ６０３とステップ６０２で作成したハードマクロブロックを配置し、ステップ６０５で自動配置配線を行い、ステップ６０６でバックアノテーションを行い、実施結果がＯＫであれば終了し、ＮＧであれば再びステップ６０１の回路設計に戻る。このようなクロックツリー生成方法によりスキュー調整を容易化している。
【特許文献１】特許第３１１２８４３号登録
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、以上述べた従来技術はクロックスキューを最小限に抑えるための技術であるが、配置配線まで行った後のバックアノテーションで回路のタイミングを満足することができなかった場合は再び回路設計まで戻って設計し直す必要があり、最終的なＲＴＬ仕様確定からレイアウトが終了するまでの期間を短縮するための有効な手段とは言えず、設計効率という点では問題がある。
【００１１】
また、ハードマクロを配置した後に自動配置配線を行うため、配置されたフリップフロップとハードマクロの接続が配線混雑を引き起こし、クロックスキューを悪化させる可能性がある。クロックの配線混雑を考えてハードマクロに接続されるフリップフロップがハードマクロに近接配置された場合でも、データパスのタイミングが悪化する可能性がある。
【００１２】
本発明は上記従来の問題点を解決するためになされたもので、半導体集積回路のレイアウト工程において、仮レイアウトを実施してクロックツリー生成を行った後に回路修正が発生しても、一度構築したクロックツリーを再設計することなく使用可能にし、半導体集積回路の設計期間短縮に寄与するクロックツリーのレイアウト方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、本発明の半導体集積回路のクロックツリーレイアウト方法は、クロックツリー上のバッファをクロックソースからバッファ以外のセルの入力ピンまで順に検索して認識する工程と、前記認識されたクロックツリー上のバッファグループを階層ブロックとしてインスタンス化する工程と、前記階層ブロックをネットリストとして抽出する工程と、回路修正やネットリストの変更後に前記階層ブロックを回路に挿入する工程とを備える。
【００１４】
本発明において、前記クロックツリーの物理配置情報を抽出する工程と、回路修正やネットリストの変更後に前記クロックツリーの物理配置情報を用いて前記クロックツリーの物理配置を再現する工程とを備える。
【００１５】
本発明において、前記クロックツリーの配線情報を抽出する工程と、回路修正やネットリストの変更後に前記クロックツリーの配線情報を用いて前記クロックツリーの配線を再現する工程とを備える。
【００１６】
本発明において、インバータを使用して前記クロックツリーを設計する。
【００１７】
また、本発明は、半導体集積回路の一部にあらかじめクロックツリーが挿入されており、前記クロックツリーのバッファブロックが階層化されているネットリストを自動配置する。
【００１８】
本発明において、前記クロックツリーの階層化されたバッファブロックの出力ピンが複数あり、自動配置後の配置情報によりクロックスキューが最小となるように前記出力ピンと前記出力ピンの接続先セルとの接続関係を再設定する。
【００１９】
本発明において、前記クロックツリーにおける所望のソースポイントから階層ブロックの入力の間のバッファ構成部分においてクロック遅延調整を行うものである。
【００２０】
上記構成によれば、ＲＴＬ情報からクロックツリー情報を抽出し、回路変更後のネットリストに対して先に抽出した情報を用いてクロックツリーを再現することができるため、ＲＴＬの修正による再合成や回路修正が発生しフリップフロップの数やインスタンス名が変更になった場合でも、フリップフロップに接続されるネット名やクロックツリー上のセル名が変わらない程度の回路修正であれば、最終レイアウト工程でクロックツリーを再構築することなく容易に仮レイアウトで構築したクロックツリーを再現して使用することが可能となり、設計期間の大幅な短縮が達成される。
【発明の効果】
【００２１】
以上説明したように、本発明によれば、複数のセルと複雑なクロック系統有する半導体集積回路のクロックツリーを等段、等セル等長配線や等負荷構成にして設計する際に、回路修正が複数回発生しても一度構築したクロックツリーを再設計することなく再現可能であり、かつフリップフロップの数や配置が回路修正によって多少変更があった場合でもフリップフロップの再接続によってクロックスキューのずれを吸収することができるという利点がある。
【００２２】
また、大幅な回路修正が発生したブロックがある場合には、そのブロックのみクロックツリーを再構築し、その他の小変更ブロックは前述手法によりそのままクロックツリーを再現することで大幅にレイアウト期間を短縮することが可能である。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の最良の実施形態について図面を参照して説明する。なお、以下の説明において、クロックを供給される側のセルの代表例としてフリップフロップを、クロックパス上のバッファやインバータ以外のセルの代表例としてマルチプレクサを、クロックパス上のクロックツリーセルの代表例としてバッファをそれぞれ用いる。
【００２４】
図１は本発明の一実施の形態に係るクロックツリーレイアウト方法を示すフロー図であり、図２は本発明の一実施携帯に係る半導体集積回路のクロックツリーレイアウト方法において、クロックツリーの情報を自動的に抽出する方法を示すフロー図である。さらに、図３〜図５はクロックツリーを階層ブロックとして挿入する際の基本概念を示すイメージ図である。
【００２５】
図１〜図５を参照してクロックツリーを抽出して回路変更後のネットリストに対してツリーを再現する手法について説明する。図１において、まず、クロックツリー生成工程１０１で、等段構成やセルの配置配線まで含めた詳細なクロックツリーを設計する。次いで、クロックツリー物理情報抽出工程１０２でクロックツリーバッファやインバータの配置座標情報を抽出し、物理配置情報ファイル１１１として保存する。
【００２６】
さらに、クロックツリー論理情報抽出工程１０３でクロックツリーのバッファやインバータのグループを認識し、認識されたグループを階層ブロックとしてネットリスト形式で論理情報ファイル１１２に保存する。その際に、階層ブロックの階層の入力ピンに接続されるネットの情報も同時に保存しておく。
【００２７】
ここで、クロックツリー論理情報抽出工程１０３においてクロックツリーの情報を自動的に抽出する方法を図２のフロー図を参照して詳細に説明する。
【００２８】
仮レイアウトで詳細に作りこんだクロックツリーに対して、まず工程２０１で、クロックツリーバッファ以外の全てのセルの入力ピンをクロックツリー検索処理の終点に設定する。次いで工程２０２で、クロック信号入力からクロックツリー上のバッファを検索するための検索開始ポイントを設定する。これを以下ソースポイントと称する。
【００２９】
その上で、クロックパス検索工程２０３では検索処理の終点に対してソースポイントからクロックツリー上のバッファやインバータを検索し、それらを認識する。ソースポイントが複数ある場合には、ソースポイントの数だけクロックツリーの検索を実施する。
【００３０】
工程２０４では工程２０３で認識されたバッファグループを階層化する。すなわち、クロックツリー検索処理によって得られたクロックバッファのリストから、バッファブロックを作成し、入力ネット名とそのネットの出力ピン名、階層ブロックのネットリストを論理情報ファイル１１２に出力する。
【００３１】
工程２０３および工程２０４は工程２０２で定義されたソースポイントに対して実施され、工程２０５で全てのソースポイントに対して検索が行われたか否かを判定する。全てのソースポイントに対して検索が実施されていた場合は、検索した終点の全てのセルがフリップフロップかを工程２０６で判定する。フリップフロップ以外のセルが存在していた場合は工程２０２に戻り、フリップフロップ以外のセルを新たなソースポイントとしてデータベースを更新し、以降は工程２０２〜２０６を繰り返す。
【００３２】
工程２０６で、検索した終点のセルが全てフリップフロップであった場合は、全てのクロックツリーの検索が終了したと判断し、クロックツリーの情報抽出処理を終了する。以上の処理により、クロックパス上に存在しているバッファ群はそれぞれ階層化されたバッファブロックのネットとして出力される。
【００３３】
図３は、以上に説明したクロックツリーの情報抽出処理で作成された階層ブロックの具体例を示す回路図である。図３において３０１〜３０４が階層化されたバッファブロックである。クロックパス上に３０５や３０６のようなクロックバッファ以外のセルがある場合は階層ブロックには含まれない。
【００３４】
図１において、工程１０１〜１０３の後に回路変更１０４が発生した場合に、フリップフロップに入力するクロックネット以外のクロック系統に変更が無いならば、クロックツリー論理情報再現工程１０５で、工程１０３までの処理で保存したクロック階層を挿入する。
【００３５】
図４はクロックツリー論理情報再現工程１０５で階層ブロックが挿入される様子を示す図である。工程１０３までの処理で出力されたバッファブロック３０１〜３０４は、図４において、４０１〜４０４のようにバッファブロックとしてクロックパス上に挿入される。
【００３６】
挿入例としてバッファブロック４０３の処理を説明する。バッファブロック４０３はクロック上のセル４０５の出力ピンに接続されたネットを切断し、それらをバッファブロック４０３の出力ピンの１つに接続する。
【００３７】
図５はクロックツリー論理情報再現工程１０５でバッファブロック４０３の出力ピンの１つにクロックネットが接続された様子を示す図である。図５において５０１〜５０４がバッファブロック４０３の出力ピンを示している。このように、階層ブロックが挿入された状態ではフリップフロップに接続されるネットは１つの出力ピンが接続され、残りの出力ピンがオープンの状態となる。
【００３８】
そのような状態を保持したまま、自動配置工程１０６において自動配置を行う。自動配置を行った後は、バッファブロックの出力ピン再接続工程１０７で、フリップフロップ等の配置情報をもとにスキューや消費電力、あるいはクロストークの影響が最小になるように配線混雑を考慮し、バッファブロックの出力ピンを振り分けて再接続し、それを全てのクロックツリー階層ブロックに対して繰り返し実施する。
【００３９】
再接続を行った後、工程１０８において全ての階層を展開し、クロックツリー物理情報再現工程１０９において、工程１０５でフラット化されたバッファについて、クロックツリー物理情報抽出工程１０２で出力された物理配置座標情報をもとに、各クロックツリーのバッファやインバータの配置を再現する。
【００４０】
以上説明したように、再合成による回路変更が発生し、挿入された階層ブロックについてフリップフロップの数やインスタンス名が変更されても、変更後のネットリストに対して再度クロックツリーを生成することなくクロックツリーを再現することができ、クロックツリー設計期間を大幅に短縮することが可能となる。
【産業上の利用可能性】
【００４１】
本発明の半導体集積回路のクロックツリーレイアウト方法は、クロック系統の複雑さにかかわらずクロックツリーの抽出が可能であり、大規模で複雑な半導体集積回路において最終レイアウトの期間の短縮に有用な手法である。
【００４２】
また、個々のクロックツリーのブロックの構成、配置情報が変わらないため、ブロック内の消費電力やクロストークを低減させるような配線再現等の用途にも応用することができる。
【００４３】
また、半導体集積回路の階層レイアウト手法において、階層ブロック間のクロック遅延調整をバッファのみで行い、かつ階層ブロック内のクロック遅延が回路修正によって変更されない場合のブロック間遅延調整バッファの構成を再現する用途にも応用することができる。
【図面の簡単な説明】
【００４４】
【図１】本発明の一実施の形態に係る半導体集積回路のクロックツリーレイアウト方法を示すフロー図。
【図２】本発明の一実施の形態においてクロックツリーの情報を自動的に抽出する方法を示すフロー図。
【図３】クロックツリーの情報抽出処理で作成された階層ブロック例を示す回路図。
【図４】クロックツリー論理情報再現工程で階層ブロックが挿入される様子を示す図。
【図５】クロックツリー論理情報再現工程で階層ブロックが挿入された状態を示す図。
【図６】従来技術によるクロックツリーの設計方法を示すフロー図。
【符号の説明】
【００４５】
１０１  クロックツリー生成工程
１０２  クロックツリー物理情報抽出工程
１０３  クロックツリー論理情報抽出工程
１０４  回路変更工程
１０５  クロックツリー論理情報再現工程
１０６  自動配置工程
１０７  バッファブロックの出力ピン再接続工程
１０８  階層の展開工程
１０９  クロックツリー物理情報再現工程
１１１  物理配置情報ファイル
１１２  論理情報ファイル
２０１  検索の終点設定工程
２０２  ソースポイント設定工程
２０３  クロックパス検索工程
２０４  バッファグループの階層化工程
２０５  全ソースポイント検索終了判定工程
２０６  全終点セルのフリップフロップ判定工程
３０１〜３０４、４０１〜４０４  バッファブロック
３０５、４０５  マルチプレクサ
５０１〜５０５  バッファブロックの出力ピン
６０１〜６０６  従来技術によるクロックツリーの設計工程
【図１】
2005339200.tif 000003
【図２】
2005339200.tif 000004
【図３】
2005339200.tif 000005
【図４】
2005339200.tif 000006
【図５】
2005339200.tif 000007
【図６】
2005339200.tif 000008