説明

半導体集積回路のレイアウト設計方法

【課題】LSIのレイアウト設計において、TAT(Turn Around Time)を増加させることなくタイミング収束を実現する。
【解決手段】LSIのレイアウト設計方法は、レイアウト対象の集積回路のネットリストに基づいて、前記集積回路をクロックドメインに分けることでクロックドメイン回路集合体に区分する工程と、前記クロックドメイン回路集合体の各々に対するタイミング制約を作成する工程と、所定の基準に基づいて前記クロックドメイン回路集合体間の配置順序を決定する工程と、前記クロックドメイン回路集合体を前記配置順序に従って配置し配線することにより前記集積回路のレイアウトを作成する工程とを備える。レイアウト設計後のタイミング収束のTATを短縮することが可能となる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は半導体集積回路(特にLSI:Large Scale Integration)のレイアウト設計の分野に関し、特にタイミング収束のためのレイアウト設計に関する。
【背景技術】
【0002】
LSIのレイアウト設計の技術分野において、LSIの回路規模の増加と高速化に伴い、TAT(Turn Around Time)を増加させることなくタイミングを収束できるレイアウト設計方法の要求(必要性)が高まってきている。
【0003】
特許文献1(特に図3、第2ページ参照)には、LSIの開発設計において、階層レイアウト設計法によりTATを十分に短縮することを目的とした技術が記載されている。この技術では、LSIのネットリストを階層に分割する際に、LSI全体のフラット配置配線の結果からSTA(Static Timing Analysis)によりタイミングエラーパスを抽出する前処理が行われる。その後、タイミングエラーパスを含む領域が階層レイアウトブロック(HLB:Hierarchy Layout Block)に分割され、HLBごとに階層レイアウトが行われる。
【0004】
図12A及び図12Bは、特許文献1の処理手順を示すフローチャートである。LSI全体のフラットの物理設計データに基づいて、配置・配線処理とタイミング解析処理を行う(ステップS1)。タイミングエラーが発生したパスを抽出する(ステップS2)。抽出されたパスを含む領域を階層レイアウトブロック(HLB)に分割する(ステップS3〜S7)。HLBごとにタイミング制約を分割する(ステップS8)。分割されたタイミング制約に基づいて、HLBごとにレイアウトを行う(ステップS9〜S11)。レイアウト済みのHLBのデータを結合してフラットの物理設計データを生成する(ステップS12)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−112299号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1に例示される従来の技術においては、タイミング収束のイタレーションが増え、レイアウト設計のTATが増加するという問題がある。その理由は、以下の通りである。昨今のLSIは、数千万ゲートの論理を搭載し、クロック系統が数十系統で構成され、かつ、1つのクロックが複数の論理モジュールに跨っている。そのため特許文献1のように階層レイアウトを行う前処理として全てのクロックとそれに接続する全ての回路、つまり、LSIの全てをフラットにより配置配線した場合、回路の接続強度に基づき全ての回路が配置される。その結果、局所的な配置混雑やそれに伴う配線混雑、更には配線迂回の発生する可能性が増加する。具体的には、2千万ゲートの論理でクロック系統が5系統相当のLSIでは、局所的な配置配線の混雑がチップの10%程度発生し、これに伴い配線迂回が発生することになる。
【0007】
このため、フラットによる初期配置配線(従来技術の階層レイアウトを行う前処理)でタイミングエラーと配線混雑が多数発生した場合、HLB分割後のHLBのレイアウト(つまり、階層レイアウト)の際に、タイミング収束のためのセルのサイズアップやリピータを挿入する領域がHLB内で不足する。その結果、HLB内でのタイミング収束ができず、ステップ1に戻り、フロアプランの見直しから行う必要が生じる。
【0008】
また、HLBに分割するためには、タイミングバジェット、及び、HLB間のクロック遅延の各HLBへの分配が必要である。各HLBのタイミングバジェット及びHLB間のクロック遅延の各HLBへの分配の仕方によってはタイミングが厳しいHLBが存在し、更にタイミング収束のイタレーションが増加することになる。
【0009】
レイアウト設計後のタイミング収束のTATを短縮することが望まれる。
【課題を解決するための手段】
【0010】
本発明の一側面における半導体集積回路のレイアウト設計方法は、LSIのネットリストをクロック起点より前方探索し、各クロックに接続される回路を抽出し、クロックドメインごとにレイアウト対象回路の集合体を作成する工程と、クロック乗せ換え先フリップフロップを含むクロック乗せ換え先フリップフロップまでの回路をドライバー側クロックドメイン回路集合体に割付け、乗せ換え先フリップフロップを更にレシーバー側のクロックドメイン回路集合体に割付ける工程と、作成したクロックドメイン回路集合体に対応するタイミング制約を作成する工程と、クロックドメイン回路集合体の配置配線順を決定する工程と、ロックドメイン回路集合体を配置配線し、STAとタイミングECO(Engineering Change Order)を行う工程と、クロックドメイン回路集合体の配置配線結果を前回の結果に結合し、fixed(固定)属性を設定する工程と、全てのクロックドメイン回路集合体の配置配線を完了したかを判定する工程を有する。
【0011】
本発明の他の側面における半導体集積回路のレイアウト設計方法は、レイアウト対象の集積回路のネットリストに基づいて、前記集積回路をクロックドメインに分けることでクロックドメイン回路集合体に区分する工程と、前記クロックドメイン回路集合体の各々に対するタイミング制約を作成する工程と、所定の基準に基づいて前記クロックドメイン回路集合体間の配置順序を決定する工程と、前記クロックドメイン回路集合体を前記配置順序に従って配置し配線することにより前記集積回路のレイアウトを作成する工程とを備える。
【発明の効果】
【0012】
本発明により、レイアウト対象の回路がクロックドメインごとに分けられる。そして例えばタイミングの厳しいクロックドメイン回路集合体から順に配置配線することで、タイミングの厳しいパスのタイミング収束を領域に余裕のある状態で優先的に行うことができる。その結果、レイアウト設計後のタイミング収束のTATを短縮することが可能となる。
【図面の簡単な説明】
【0013】
【図1】図1は、本発明の処理手順を示すフローチャートである。
【図2】図2は、LSIに含まれる全ての回路の構成例のネットリストN1である。
【図3】図3は、図2のLSIのネットリストN1より、クロックAのクロックドメイン回路集合体のネットリストN2を作成した例である。
【図4】図4は、図2のLSIのネットリストN1より、クロックBのクロックドメイン回路集合体のネットリストN3を作成した例である。
【図5】図5は、図2のLSIのネットリストN1より、クロックCのクロックドメイン回路集合体のネットリストN4を作成した例である。
【図6】図6は、LSIのタイミング制約より、クロック定義、タイミング制約を抽出し、クロックごとのタイミング制約を生成した例である。
【図7】図7は、LSIのタイミング制約より、クロックドメイン回路集合体の配置配線順を決定した例である。
【図8】図8は、500MHzと最も周波数の高いクロックAのクロックドメイン回路集合体を配置配線した例である。
【図9】図9は、200MHzとクロックAの次に周波数の高いクロックBのクロックドメイン回路集合体を配置配線した例である。
【図10】図10は、最後のクロックドメイン回路集合体であるクロックCの配置配線結果の例である。
【図11】図11は、本発明の処理が実行されるシステム構成図である。
【図12A】図12Aは、従来技術の処理手順を示すフローチャートである。
【図12B】図12Bは、従来技術の処理手順を示すフローチャートである。
【発明を実施するための形態】
【0014】
以下、添付図面を参照して、本発明の実施形態を説明する。
[第1実施形態]
図11は、本発明の第1実施形態におけるシステム構成図である。本システムは、コンピュータ装置10とサーバ14と記録媒体15とネットワーク16とで構成される。記録媒体15は、実行プログラムを格納しサーバ14に保持されている。サーバ14は、インターネットなどのネットワーク16を介してエンジニアリングワークステーション等のコンピュータ装置10に接続される。記録媒体15に格納されている実行プログラムは、ネットワーク16を介してコンピュータ装置10にダウンロードされる。ダウンロードされたプログラムは、コンピュータ装置10のローカルなハードディスク或はメモリなどにストアされて実行処理を行う構成になっている。
【0015】
図1は、本発明の処理手順を示すフローチャートである。
LSIのネットリストを各クロックの起点より前方探索して各クロックに接続される回路を抽出し、クロックドメインごとのレイアウト対象回路の集合体(以降、クロックドメイン回路集合体と称す)を作成する(ステップS101)。クロック乗せ換え先フリップフロップを含むクロック乗せ換え先フリップフロップまでの回路をドライバー側クロックドメイン回路集合体に割付ける。そして乗せ換え先フリップフロップを更にレシーバー側のクロックドメイン回路集合体にも割付ける(ステップS102)。クロックドメインごとにタイミング制約を作成する(ステップS103)。
【0016】
クロックドメイン回路集合体の配置配線順を決定する(ステップS104)。クロックドメイン回路集合体を配置配線した後(ステップS105)、静的タイミング解析(STA:Static Timing Analysis)を実行し(ステップS106)、タイミング制約を満たしているか判断する(ステップS107)。ステップS107にてタイミング制約を満たしていなければ(No)、タイミングECO、つまり、タイミング調整のための回路変更によりタイミングを収束させ(ステップS108)、ステップS106に戻る。
【0017】
ステップS107にてタイミング制約を満たしていれば(Yes)、今回のクロックドメイン回路集合体の配置配線の結果を前回の配置配線結果に結合し、座標が変更されないようfixed(固定)属性を設定する(ステップS109)。全てのクロックドメイン回路集合体の配置配線を終えた時点で処理を完了する(ステップS1010)。
【0018】
図2から図10を用いて、図1の処理フローを具体的に説明する。
レイアウト対象の半導体集積回路(LSI)のネットリストN1が予め記録媒体に格納される。このネットリストN1に基づいて、集積回路をクロックドメインに分けることで複数のクロックドメイン回路集合体に区分する。具体的には、ネットリストN1を各クロックA〜Cの起点より前方探索し、各クロックA〜Cに接続されるフリップフロップL2、L4、L8、L10、L11、L15、L17、L19と、回路L1、L3、L5、L6、L7、L9、L12、L13、L14、L16、L18、L20を抽出し、クロックA〜Cのクロックドメイン回路集合体のネットリストN2〜N4を作成する(ステップS101)。
【0019】
次いで、クロック乗せ換え部のクロック乗せ換え先フリップフロップL11をドライバー側、つまり、クロック乗せ換え元のクロックAのクロックドメイン回路集合体に割付ける(ステップS102)。
【0020】
ここで、クロック乗せ換えフリップフロップL11は、前記ステップS101により、レシーバー側、つまり、クロック乗せ換え先のクロックBのクロックドメイン回路集合体にも割付けられることになる。これにより、クロック乗せ換え先フリップフロップL11までの回路を含むドライバー側のクロックAのクロックドメイン回路集合体と、クロック乗せ換え先フリップフロップL11を含むレシーバー側のクロックBのクロックドメイン回路集合体が作成される。
【0021】
図2は、LSIに含まれる全ての回路を示している。N1は回路の全体のネットリストである。L1〜L6の回路はクロックA(500MHz)に接続されるフリップフロップL2、L4と回路L1、L3、L5、L6である。L7〜L13はクロックB(200MHz)に接続されるフリップフロップL8、L10、L11と回路L7、L9、L12、L13である。L14〜L20はクロックC(60MHz)に接続されるフリップフロップL15、L17、L19と回路L14、L16、L18、L20である。ここで、フリップフロップL11はクロックAから、クロックBにクロック乗せ換えのあるフリップフロップである。
【0022】
図3は、図2のLSIのネットリストN1より、クロックAのクロックドメイン回路集合体のネットリストN2を作成した例である。L1〜L6はクロックAに接続されるフリップフロップL2、L4と回路L1、L3、L5、L6である。フリップフロップL11はクロックAからクロックBにクロックが乗せ換えられるフリップフロップであり、ドライバー側であるクロックAの回路集合体に含める。
【0023】
図4は、図2のLSIのネットリストN1より、クロックBのクロックドメイン回路集合体のネットリストN3を作成した例である。L7〜L13はクロックBに接続されるフリップフロップL8、L10、L11と回路L7、L9、L12、L13である。フリップフロップL11はクロックAからクロックBにクロックが乗せ換えられるフリップフロップであり、ドライバー側クロックAの回路集合体に含めると共に、レシーバー側であるクロックBの回路集合体にも含める。
【0024】
図5は、図2のLSIのネットリストN1より、クロックCのクロックドメイン回路集合体のネットリストN4を作成した例である。L14〜L20の回路はクロックCに接続されるフリップフロップL15、L17、L19と回路L14,L16、L18、L20である。
【0025】
次いで、LSIのタイミング制約から、各クロックドメイン回路集合体のクロック名に対応するクロック定義、フォルスパス、マルチサイクルパス等の全てのタイミング制約を抽出することで、クロックドメイン回路集合体ごとのタイミング制約を作成する(ステップS103)。
【0026】
図6は、LSIのタイミング制約より、クロックA、クロックB、クロックCに関連するクロック定義、フォルスパス、マルチサイクルパス等のタイミング制約を抽出し、クロックA〜Cごとのタイミング制約と生成した例である。LSI全体のタイミング制約から、クロックA〜Cの各々に関する制約を抽出することによって、個々のクロックのタイミング制約を生成する。これにより、各クロックドメイン回路集合体に対応するタイミング制約が得られる。
【0027】
次いで、LSIのタイミング制約を基に、所定の基準に基づいて、クロックドメイン回路集合体の配置配線順を決定する(ステップS104)。特に、周波数の高いクロックより順に配置配線順を決定することがTATを短縮するために効果的である。
【0028】
図7は、LSIのタイミング制約より、クロックドメイン回路集合体の配置配線順を決定した例である。動作周波数が500MHzの一番高いクロックAが最初の配置配線対象に決定される。次いで動作周波数が200MHzのクロックB、動作周波数が60MHzのクロックCと配置配線の順を決定する。なお、決定された順序は入力装置からの手動の入力操作により任意に入れ替えることを可能とする。
【0029】
次いで、ステップS104で決定したクロックドメイン回路集合体の配置配線順に従い、ステップS102で作成したクロックドメイン回路集合体のネットリストN2〜N4に対応する回路のレイアウトを行う。まず、対象のクロックドメイン回路集合体を配置配線する。配置配線するクロックドメイン回路集合体の順序は、入力装置からの入力操作によって適宜、変更することができる。次に、配置配線されたクロックドメイン回路集合体に対してSTAを行い(ステップS106)、タイミング違反がないかを判定する(ステップS107)。タイミング違反のある場合(No)、タイミングECOによりタイミング違反を修正する(ステップS108)。
【0030】
ここで、ステップ102でクロックAのクロックドメイン回路集合体にクロック乗せ換え先フリップフロップL11までの回路を含めている。そのため、一般的な技術による配置アルゴリズムを予め記録媒体15に格納しておき、そのアルゴリズムによって配置を行うと、クロック乗せ換え先フリップフロップL11は、クロック乗せ換え先フリップフロップL11をドライブするフリップフロップL4と回路L6の近くに配置される。また、以降のクロック乗せ換えのフリップフロップL11が属するクロックドメイン回路集合体の配置配線を行う際、クロックAのクロックドメイン回路集合体が既配置となっているため、フリップフロップL11にドライブされる回路L12は、一般的な配置技術により、フリップフロップL11の近くに配置される。
【0031】
ここで、クロック乗せ換え先フリップフロップL11を含むクロックBのクロックドメイン回路集合体を先に配置配線する場合は、一般的な配置技術により当該フリップフロップL11はタイミングを満たす適切な位置に配置される。クロック乗せ換え元のクロックAのクロックドメイン回路集合体を配置配線する際は、クロック乗せ換え先フリップフロップL11が既配置となっているため、フリップフロップL11をドライブするフリップフロップL4と回路L6は、一般的な配置技術により、フリップフロップL11の近くに配置される。なお、配置配線、STA、タイミングECOは一般の技術を利用することでよい(ステップS105、ステップS108)。
【0032】
図8は、500MHzと最も周波数の高いクロックAのクロックドメイン回路集合体を配置配線した例である。C1はLSIチップ、L801はクロックAに接続される回路、W801は配線、L803はクロック乗せ換え回路を示す。このように、周波数の高いクロックAに接続される回路L801は、チップの領域を自由に使い配置配線することができ、タイミングの収束を容易にすることができる。ここで、クロック乗せ換え回路L803は、ドライバー側の回路L802との接続関係により、一般的な配置ツールを使用することで、ドライバー側の回路L802の近くに配置されることになる。
【0033】
なお、配置配線でタイミング収束を行うために追加した回路がある場合には、ステップ101で作成したクロックドメイン回路集合体のネットリストN2に追加された回路を追加する。これにより、STAを行う際、各クロックドメイン回路集合体のネットリストN2〜N4を用いることで、STAの対象とするクロックドメイン回路集合体を特定する。
【0034】
次いで、ステップS107の判定でタイミングを満たしている場合(Yes)、タイミングが収束したクロックドメイン回路集合体の配置配線結果を、以前のクロックドメイン回路集合体の配置配線結果に結合する。結合後、次のクロックドメイン回路集合体の配置配線で配置と配線が変更されないようにFixed属性を設定する(ステップS109)。
【0035】
次いで、未配置配線のクロックドメイン回路集合体がある場合には、ステップS105に戻る。未配置配線のクロックドメイン回路集合体がなくなるまで、ステップS105以降の処理を繰り返し、未配置配線のクロックドメイン回路集合体が無くなった時点で処理を完了する(ステップS1010)。
【0036】
図9は、200MHzとクロックAの次に周波数の高いクロックBのクロックドメイン回路集合体を配置配線した例である。C2はLSIチップ、L901はクロックAに接続される既配置の回路を示す。W901はクロックAに接続される既配置の回路の配線を示す。L904はクロックBに接続される回路、W902はクロックBに接続される回路の配線を示す。ここで、クロック乗せ換え回路L903は、前記のクロックAのクロックドメイン回路集合体の配置配線の際に、既配置となっており、L903クロック乗せ換え回路のレシーバー側回路L905は、一般的な配置ツールにより、クロック乗せ換えセルL903の近くに配置されることになる。
【0037】
このように、クロックBのクロックドメイン回路集合体の配置配線を行う前に、前回のクロックAのクロックドメイン回路集合体の配置配線結果を結合することで、クロックAのクロックドメイン回路集合体の既配置配線結果を考慮したクロックBのクロックドメイン回路集合体の配置配線を行うことができる。
【0038】
図10は、最後のクロックドメイン回路集合体であるクロックCの配置配線結果の例であり、C3はLSIチップを示し、図9と同様に、既配置配線の回路以外の領域にクロックCに接続されるクロックドメイン回路集合体が配置配線される。
【0039】
以上に説明した第1実施形態におけるレイアウト設計方法により、以下の効果が得られる。作成したクロックドメイン回路集合体の内、タイミングの厳しいクロックドメイン回路集合体から順に配置配線することで、タイミングの厳しいパスのタイミング収束を領域に余裕のある状態で優先的に行うことができる。タイミングの厳しいパス上の回路をタイミングを満たす自由な位置に配置配線できるため、レイアウト設計のタイミング収束のTATを短縮することが可能となる。
【0040】
尚、全てのクロックドメイン回路集合体の配置配線が完了した後、LSIチップC3のSTAを実施した結果、クロストーク等によるタイミング違反が生じた場合においても、クロックA〜Cのクロックドメイン回路集合体のタイミングはフィックスしており、回路配置及び配線の微調整によりLSIチップC3全体のタイミング違反を修正することが可能となる。
【0041】
[第2実施形態]
本発明を実施するためのシステム構成は第1実施形態と同じであり、説明は省略する。第1実施形態においては、LSIのタイミング制約を基に、周波数の高いクロックより順に、クロックドメイン回路集合体の配置配線順を決定した(ステップS104)。第2実施形態では、この配置配線の順序に関して、複数のクロックドメイン回路集合体を同順序とし、同時に配置配線の対象とする。この同順序のクロックドメイン回路集合体は、外部からの入力によって指定することができる。
【0042】
関連のある複数のクロックドメイン回路集合体をまとめて配置配線することで、クロックドメイン回路集合体間の接続関係を考慮した配置配線を行い、関連するクロックドメインの回路のタイミングの収束を容易にすることができる。更に、ある程度以上低速なクロックドメイン回路集合体はタイミング収束が容易であると考えられるため、それらをまとめて配置配線することで、配置配線の回数を減らし、レイアウト設計のTATを削減することができる。
【符号の説明】
【0043】
A、B、C クロック
N1、N2、N3、N4 ネットリスト
L1、L3、L5、L6、L7、L9、L12、L13、L14、L16、L18、L20 回路
L2、L4、L8、L10、L11、L15、L17、L19 フリップフロップ
C1、C2、C3 LSIチップ
L801、L802,L803、L901、L903、L904、L905 回路
W801、W901、W902 配線
10 コンピュータ装置
14 サーバ
15 記録媒体
16 ネットワーク

【特許請求の範囲】
【請求項1】
レイアウト対象の集積回路のネットリストに基づいて、前記集積回路をクロックドメインに分けることでクロックドメイン回路集合体に区分する工程と、
前記クロックドメイン回路集合体の各々に対するタイミング制約を作成する工程と、
所定の基準に基づいて前記クロックドメイン回路集合体間の配置順序を決定する工程と、
前記クロックドメイン回路集合体を前記配置順序に従って配置し配線することにより前記集積回路のレイアウトを作成する工程
とを具備する半導体集積回路のレイアウト設計方法。
【請求項2】
前記区分する工程は、
前記ネットリストをクロック起点より前方探索する工程と、
クロック乗せ換え先フリップフロップを含むクロック乗せ換え先フリップフロップまでの回路をドライバー側のクロックドメイン回路集合体に割付ける工程と、
前記クロック乗せ換え先フリップフロップを更にレシーバー側のクロックドメイン回路集合体に割付ける工程
とを具備する請求項1に記載のレイアウト設計方法。
【請求項3】
前記タイミング制約には、クロック定義、フォルスパス及びマルチサイクルパスが含まれる
請求項1または2に記載のレイアウト設計方法。
【請求項4】
前記配置順序を決定する工程において、動作周波数の高いクロックドメイン回路集合体より順に配置順序が決定される
請求項1から3のいずれかに記載のレイアウト設計方法。
【請求項5】
前記配置順序を決定する工程において、前記配置順序を入力装置から入力されたデータによって変更可能である
請求項1から4のいずれかに記載のレイアウト設計方法。
【請求項6】
更に、前記レイアウトを作成する工程の後に、STA(Static Timing Analysis)とタイミングECO(Engineering Change Order)を行う工程を具備し、
前記STA及び前記タイミングECOは、入力装置からの入力によって選択されたクロックドメイン回路集合体のみを対象に実施される
請求項1から5のいずれかに記載のレイアウト設計方法。
【請求項7】
前記レイアウトを作成する工程において、ドライバー側クロックドメイン回路集合体を配置し配線する際に、前記集積回路内のクロック乗せ換え回路を予め記憶した配置アルゴリズムによって接続する
請求項1から6のいずれかに記載のレイアウト設計方法。
【請求項8】
前記レイアウトを作成する工程において、レシーバー側クロックドメイン回路集合体を、前記集積回路内の配置済みのクロック乗せ換え回路の近くに予め記憶した配置アルゴリズムによって接続する
請求項1から7のいずれかに記載のレイアウト設計方法。
【請求項9】
更に、前記レイアウトを作成する工程は、
前記クロックドメイン回路集合体を、前記配置順序に従って順次に配置し、前回までのクロックドメイン回路集合体に今回のクロックドメイン回路集合体を結合してfixed(固定)属性を設定する工程
を具備する請求項1から8のいずれかに記載のレイアウト設計方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12A】
image rotate

【図12B】
image rotate


【公開番号】特開2012−174226(P2012−174226A)
【公開日】平成24年9月10日(2012.9.10)
【国際特許分類】
【出願番号】特願2011−38869(P2011−38869)
【出願日】平成23年2月24日(2011.2.24)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】