(57)【特許請求の範囲】
【請求項１】
プログラム記憶手段に記憶されたプログラムに従い、入力手段に入力されたネットリストに基づいて半導体装置の設計を行う半導体装置設計方法であって、
（ａ）上位レイヤに、マクロが格納されるマクロ領域を配置するステップと、
（ｂ）前記上位レイヤのうち前記マクロ領域の外側にある第１位置から前記マクロ領域の外側にある第２位置に伝送信号を伝送するための配線経路を、前記マクロ領域を通るように配置するステップ
とを備え、
前記配線経路は、
前記マクロ領域の内側に配置された第１バッファと、
前記マクロ領域の内側に配置され、且つ、前記第１バッファの出力端子が、入力端子に接続されている第２バッファと、
前記第１バッファの入力端子と、前記第１位置との間に介設された第１配線と、
前記第２バッファの出力端子と、前記第２位置との間に介設された第２配線とを含み、
前記第１バッファは、前記第１配線のうち前記マクロ領域の内側にある部分で発生する遅延時間が実質的に０であるように配置され、
前記第２バッファは、前記第２配線のうち前記マクロ領域の内側にある部分で発生する遅延時間が実質的に０であるように配置され、
前記（ｂ）ステップは、
（ｃ）前記第１配線で発生する遅延時間の許容最大値である第１制約時間と、前記第１バッファの入力端子から前記第２バッファの出力端子までの遅延時間の許容最大値である第２制約時間と、前記第２配線で発生する遅延時間の許容最大値である第３制約時間とを定めるステップと、
（ｄ）前記第１配線で発生する遅延時間が、前記第１制約時間以内になるように、前記第１配線のレイアウトを定めるステップと、
（ｅ）前記第１バッファの入力端子から前記第２バッファの出力端子までの遅延時間が前記第２制約時間以内になるように、前記マクロ領域の内部のレイアウトを定めるステップと、
（ｆ）前記第２配線で発生する遅延時間が、前記第３制約時間以内になるように、前記第２配線のレイアウトを定めるステップ
とを含む
半導体装置設計方法。
【請求項２】
請求項１に記載の半導体装置設計方法において、
前記配線経路は、更に、前記第１バッファの出力端子と前記第２バッファの入力端子との間に介設された第３配線を含み、
前記（ｅ）ステップは、
（ｇ）前記第１バッファの入力端子から前記第２バッファの出力端子までの遅延時間が前記第２制約時間以内になるように、前記第３配線のレイアウトを定めるステップを備えている
半導体装置設計方法。
【請求項３】
請求項１に記載の半導体装置設計方法において、
前記（ｃ）ステップは、
（ｈ）前記第１位置と前記第２位置とを接続する仮配線経路を定めるステップと、
（ｉ）前記仮配線経路の全体で発生する仮想遅延時間を算出するステップと、
（ｊ）前記仮想遅延時間に基づいて、前記第２制約時間を定めるステップを備え、
前記仮配線経路は、
前記マクロ領域の内側に配置された第１仮バッファと、
前記マクロ領域の内側に配置された第２仮バッファと、
前記第１位置と前記第１仮バッファの入力端子との間に介設されている第１仮配線と、
前記第１仮バッファの出力端子と、前記第２仮バッファの入力端子との間に介設されている第２仮配線と、
前記第２仮バッファの出力端子と前記第２位置との間に介設されている第３仮配線
とを含み、
前記第１仮バッファは、前記第１仮配線のうち前記マクロ領域の内側にある部分で発生する遅延時間が実質的に０であるように配置され、
前記第２仮バッファは、前記第３仮配線のうち前記マクロ領域の内側にある部分で発生する遅延時間が実質的に０であるように配置され、
前記（ｊ）ステップは、
（ｋ）前記第１仮バッファの入力端子から前記第２仮バッファの出力端子までの仮想内部遅延時間を算出するステップと、
（ｌ）前記仮想遅延時間と前記仮想内部遅延時間とに基づいて、前記第２制約時間を算出するステップ
とを含む
半導体装置設計方法。
【請求項４】
請求項３に記載の半導体装置設計方法において、
前記第２制約時間は、下記式：
ＴＣ２＝ＴＣ・（Ｔ２／Ｔ０），
ＴＣ２：前記第２制約時間
ＴＣ：前記配線経路で発生する遅延時間の許容最大値
Ｔ２：前記仮想内部遅延時間
Ｔ０：前記仮想遅延時間
により定められる
半導体装置設計方法。
【請求項５】
請求項３に記載の半導体装置設計方法において、
前記（ｅ）ステップは、
（ｓ）前記第１仮バッファの前記マクロ領域における位置を保持したまま、前記第１仮バッファを前記第１バッファとして埋め込むステップと、
（ｔ）前記第２仮バッファの前記マクロ領域における位置を保持したまま、前記第２仮バッファを前記第２バッファとして埋め込むステップ
とを含む
半導体装置設計方法。
【請求項６】
請求項３に記載の半導体装置設計方法において、
前記（ｃ）ステップは、更に、
（ｍ）前記仮想遅延時間に基づいて、前記第１制約時間を定めるステップを備え、
前記（ｍ）ステップは、
（ｎ）前記第１仮配線で発生する第１仮想外部遅延時間を算出するステップと、
（ｏ）前記第１仮想外部遅延時間と前記仮想遅延時間とに基づいて、前記第１制約時間を算出するステップを含む
半導体装置設計方法。
【請求項７】
請求項６に記載の半導体装置設計方法において、
前記第１制約時間は、下記式：
ＴＣ１＝ＴＣ・（Ｔ１／Ｔ０），
ＴＣ１：前記第１制約時間
ＴＣ：前記配線経路で発生する遅延時間の許容最大値
Ｔ１：前記第１仮想外部遅延時間
Ｔ０：前記仮想遅延時間
により定められる
半導体装置設計方法。
【請求項８】
請求項３に記載の半導体装置設計方法において、
前記（ｃ）ステップは、更に、
（ｐ）前記仮想遅延時間に基づいて、前記第３制約時間を定めるステップを備え、
前記（ｐ）ステップは、
（ｑ）前記第３仮配線で発生する第２仮想外部遅延時間を算出するステップと、
（ｒ）前記第２仮想外部遅延時間と前記仮想内部遅延時間とに基づいて、前記第３制約時間を算出するステップを含む
半導体装置設計方法。
【請求項９】
請求項８に記載の半導体装置設計方法において、
前記第３制約時間は、下記式：
ＴＣ３＝ＴＣ・（Ｔ３／Ｔ０），
ＴＣ３：前記第３制約時間
ＴＣ：前記配線経路で発生する遅延時間の許容最大値
Ｔ３：前記第２仮想外部遅延時間
Ｔ０：前記仮想遅延時間
により定められる
半導体装置設計方法。
【請求項１０】
コンピュータを使用して半導体装置を設計するための半導体装置設計用プログラムであって、
（ａ）上位レイヤに、マクロが格納されるマクロ領域を配置するステップと、
（ｂ）前記上位レイヤのうち前記マクロ領域の外側にある第１位置から前記マクロ領域の外側にある第２位置に伝送信号を伝送するための配線経路を、前記マクロ領域を通るように配置するステップ
とを実行し、
前記配線経路は、
前記マクロ領域の内側に配置された第１バッファと、
前記マクロ領域の内側に配置され、且つ、前記第１バッファの出力端子が、入力端子に接続されている第２バッファと、
前記第１バッファの入力端子と、前記第１位置との間に介設された第１配線と、
前記第２バッファの出力端子と、前記第２位置との間に介設された第２配線
とを含み、
前記第１バッファは、前記第１配線のうち前記マクロ領域の内側にある部分で発生する遅延時間が実質的に０であるように配置され、
前記第２バッファは、前記第２配線のうち前記マクロ領域の内側にある部分で発生する遅延時間が実質的に０であるように配置され、
前記（ｂ）ステップは、
（ｃ）前記第１配線で発生する遅延時間の許容最大値である第１制約時間と、前記第１バッファの入力端子から前記第２バッファの出力端子までの遅延時間の許容最大値である第２制約時間と、前記第３配線で発生する遅延時間の許容最大値である第３制約時間とを定めるステップと、
（ｄ）前記第１配線で発生する遅延時間が、前記第１制約時間以内になるように、前記第１配線のレイアウトを定めるステップと、
（ｅ）前記第１バッファの入力端子から前記第２バッファの出力端子までの遅延時間が前記第２制約時間以内になるように、前記マクロ領域の内部のレイアウトを定めるステップと、
（ｆ）前記第２配線で発生する遅延時間が、前記第３制約時間以内になるように、前記第２配線のレイアウトを定めるステップ
とを含む
半導体装置設計用プログラム。
【請求項１１】
請求項１０に記載の半導体装置設計用プログラムにおいて、
前記配線経路は、更に、前記第１バッファの出力端子と前記第２バッファの入力端子との間に介設された第３配線を含み、
前記（ｅ）ステップは、
（ｇ）前記第１バッファの入力端子から前記第２バッファの出力端子までの遅延時間が前記第２制約時間以内になるように、前記第３配線のレイアウトを定めるステップを備えている
半導体装置設計用プログラム。
【請求項１２】
請求項１０に記載の半導体装置設計用プログラムにおいて、
前記（ｃ）ステップは、
（ｈ）前記第１位置と前記第２位置とを接続する仮配線経路を定めるステップと、
（ｉ）前記仮配線経路の全体で発生する仮想遅延時間を算出するステップと、
（ｊ）前記仮想遅延時間に基づいて、前記第２制約時間を定めるステップを備え、
前記仮配線経路は、
前記マクロ領域の内側に配置された第１仮バッファと、
前記マクロ領域の内側に配置された第２仮バッファと、
前記第１位置と前記第１仮バッファの入力端子との間に介設されている第１仮配線と、
前記第１仮バッファの出力端子と、前記第２仮バッファの入力端子との間に介設されている第２仮配線と、
前記第２仮バッファの出力端子と前記第２位置との間に介設されている第３仮配線
とを含み、
前記第１仮バッファは、前記第１仮配線のうち前記マクロ領域の内側にある部分で発生する遅延時間が実質的に０であるように配置され、
前記第２仮バッファは、前記第２仮配線のうち前記マクロ領域の内側にある部分で発生する遅延時間が実質的に０であるように配置され、
前記（ｊ）ステップは、
（ｋ）前記第１仮バッファの入力端子から前記第２仮バッファの出力端子までの仮想内部遅延時間を算出するステップと、
（ｌ）前記仮想遅延時間と前記仮想内部遅延時間とに基づいて、前記第２制約時間を算出するステップ
とを含む
半導体装置設計用プログラム。
【請求項１３】
上位レイヤに、マクロが格納されるマクロ領域を配置する手段と、
前記上位レイヤのうち前記マクロ領域の外側にある第１位置から前記マクロ領域の外側にある第２位置に伝送信号を伝送するための配線経路を、前記マクロ領域を通るように配置する手段
とを備え、
前記配線経路は、
前記マクロ領域の内側に配置された第１バッファと、
前記マクロ領域の内側に配置され、且つ、前記第１バッファの出力端子が、入力端子に接続されている第２バッファと、
前記第１バッファの入力端子と、前記第１位置との間に介設された第１配線と、
前記第２バッファの出力端子と、前記第２位置との間に介設された第２配線
とを含み、
前記第１バッファは、前記第１配線のうち前記マクロ領域の内側にある部分で発生する遅延時間が実質的に０であるように配置され、
前記第２バッファは、前記第２配線のうち前記マクロ領域の内側にある部分で発生する遅延時間が実質的に０であるように配置され、
前記配線経路の配置においては、前記第１配線で発生する遅延時間の許容最大値である第１制約時間と、前記第１バッファの入力端子から前記第２バッファの出力端子までの遅延時間の許容最大値である第２制約時間と、前記第２配線で発生する遅延時間の許容最大値である第３制約時間とが定められ、前記第１配線で発生する遅延時間が前記第１制約時間以内になるように前記第１配線のレイアウトが定められ、前記第１バッファの入力端子から前記第２バッファの出力端子までの遅延時間が前記第２制約時間以内になるように前記マクロ領域の内部のレイアウトが定められ、更に、前記第２配線で発生する遅延時間が前記第３制約時間以内になるように前記第２配線のレイアウトを定められる
半導体装置設計装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体装置設計方法、半導体装置設計用プログラム及び半導体装置設計装置に関する。本発明は、特に、階層的レイアウト方法が使用される半導体装置設計方法、半導体装置設計用プログラム及び半導体装置設計装置に関する。
【０００２】
【従来の技術】
大規模な半導体装置の設計では、階層的レイアウト方法が広く使用されている。階層的レイアウト方法では、階層毎に順次にレイアウトがなされ、設計の分業化が図られている。
【０００３】
このような階層化レイアウト方法の一つが、特許公報（２９８０３１６号）に開示されている。図１１は、公知のその階層化レイアウト方法を示す。
【０００４】
まず、図１１（ａ）に示されているように、上位レイヤのフロアプランが行われる。マクロ１０１ａ、１０１ｂ及び１０１ｃと、配線経路１０２とが、上位レイヤに配置される。配線経路１０２は、マクロ１０１ｂを通過するように配置され、マクロ１０１ａからマクロ１０１ｃに信号を伝送する。配線経路１０２は、配線１０３、１０４及びリピータ用バッファ１０５から構成されている。リピータ用バッファ１０５が設けられていることにより、マクロ１０１ａからマクロ１０１ｃに信号を伝送する遅延時間が短縮されている。
【０００５】
続いて、図１１（ｂ）に示されているように、上位レイヤのレイアウトを示すレイアウトデータから、下位レイヤのレイアウトを示すレイアウトデータが抽出される。図１１（ｂ）に示されている例では、下位レイヤであるマクロ１０１ｂのレイアウトを示すレイアウトデータが、上位レイヤのレイアウトデータから抽出される。
【０００６】
より詳細には、以下のようにして、マクロ１０１ｂを示すレイアウトデータが、上位レイヤのレイアウトデータから抽出される。まず、配線１０３、１０４と、マクロ１０１ｂの境界線との交点に、それぞれ、仮想端子１０６ｂ、１０６ｃが作成される。配線１０３は、仮想端子１０６ｂにより、配線１０３ａと配線１０３ｂとに分割される。同様に、配線１０４は、仮想端子１０６ｃにより、配線１０４ａと配線１０４ｂとに分割される。マクロ１０１ｂの外部にある配線１０３ａと配線１０４ａとの配置を示す情報は、上位レイヤのレイアウトデータとして残される。一方、マクロ１０１ｂが存在する領域の内部にある配線１０３ｂ、配線１０４ｂ、及びリピータ用バッファ１０５の配置を示す情報は、下位レイヤのレイアウトを示す下位レイアウトデータとして分離される。
【０００７】
続いて、分離された下位レイアウトデータに基づいて、マクロ１０１ｂの内部のレイアウトが定められる。配線１０３ｂ、１０４ｂのレイアウトは適宜変更される。このとき、仮想端子１０６ｂ、１０６ｃと、リピータ用バッファ１０５の位置は、そのままに保持される。
【０００８】
このように、公知のその階層化レイアウト方法では、マクロ１０１ｂを通過するように配線経路が定められ、更に、その配線経路が下位レイヤの設計の際にマクロ１０１ｂに埋め込まれる。上位レイヤの配線経路は、マクロ１０１ｂを迂回しないことが可能である。これにより配線経路が短縮でき、上位レイヤのタイミング保証が容易になる。
【０００９】
しかし、公知のその階層化レイアウト方法では、一般的に広く使用されているタイミング解析ツールを使用してタイミング解析を行う場合、上位レイヤと下位レイヤとのレイアウトデータをマージした上でタイミング解析が行われることを要する。上位レイヤと下位レイヤとのレイアウト設計が別個に行うことができる利点が十分に活用されない。なぜなら、一般的なタイミング解析ツールは、公知のその階層化レイアウト方法で設計された半導体装置のタイミング解析に適合しないからである。
【００１０】
図１２に示されているように、あるマクロ２０１についてのタイミング解析を行う場合、一般的なタイミング解析ツールは、入力端子２０２に入力される入力信号の波形なまりと、出力信号が出力される出力端子２０３に接続される配線の抵抗と、出力端子２０３の負荷容量とが与えられることを要求する。ここで、波形なまりとは、入力信号がＬｏｗレベルからＨｉレベルに立ち上がる、又はＨｉレベルからＬｏｗレベルに立ち下がるのに要する時間である。一般に、入力信号が、Ｈｉレベルの１０％から９０％に立ち上がる、又は、Ｈｉレベルの９０％から１０％に立ち下がるのに要する時間が、波形なまりとして使用される。入力信号の波形なまり、出力端子に接続されている配線の抵抗、及び出力端子の負荷容量が与えられると、マクロの内部で信号が伝達される遅延時間が算出され、タイミング解析が行われる。
【００１１】
このとき、一般的なタイミング解析ツールは、以下のようにして、バッファの遅延時間の算出を行う。図１３に示されているように、マクロ２０１にバッファ２０４と、バッファ２０４の出力端子に接続された配線２０５とが含まれているとする。一般的なタイミング解析ツールでは、バッファ２０４の遅延時間Ｔｇは、下記の式（１）により計算される。
Ｔｇ＝ｆ１（Ｔｒｆ、Ｒ、Ｃ＋Ｃｉｎ）．        …（１）
ここで、ｆ１は、所定の関数である。Ｔｒｆは、バッファ２０４の入力端子における波形なまり、Ｒは、バッファ２０４の出力端子に接続される配線２０５の抵抗、Ｃは、配線２０５の配線容量、Ｃｉｎは、配線２０５が接続された次段セル２０６の入力端子の容量である。
【００１２】
更に、配線２０５の遅延時間Ｔｗは、下記の式（２）により計算される。
Ｔｗ＝ｆ２（Ｒ、Ｃ＋Ｃｉｎ）＋Ｔｒｆ’．        …（２）
ここで、Ｔｒｆ’は、次段セル２０６の入力端子における波形なまりである。波形なまりＴｒｆ’は、下記式により計算される。
Ｔｒｆ’＝ｆ３（Ｄ、Ｒ、Ｃ＋Ｃｉｎ）．        …（３）
ここで、Ｄは、配線２０５に信号を出力するバッファ２０４のドライブ能力である。
【００１３】
このような一般的なタイミング解析ツールは、公知の階層化レイアウト方法で設計された半導体装置に含まれるマクロ１０１ｂのタイミング解析に適合しない。図１４に示されているように、上述の公知の階層化レイアウト方法で設計された半導体装置に含まれるマクロ１０１ｂについて、上述された一般的なタイミング解析ツールでタイミング解析する場合を考える。
【００１４】
仮想端子１０６ｂから仮想端子１０６ｃに信号が伝達されるのに要する遅延時間Ｔは、
Ｔ＝Ｔｗ１＋Ｔｇ１＋Ｔｗ２．
ここで、Ｔｗ１は、配線１０３ｂで発生する配線遅延時間、Ｔｇ１は、リピータ用バッファ１０５で発生する遅延時間、Ｔｗ２は、配線１０４ｂで発生する配線遅延時間である。
【００１５】
式（２）から、配線遅延時間Ｔｗ１は、
Ｔｗ１＝ｆ２（Ｒ２、Ｃ２＋Ｃｉｎ１）＋Ｔｒｆ１．
Ｒ２は、配線１０３ｂの配線抵抗、Ｃ２は、配線１０３ｂの配線容量、Ｃｉｎ１は、リピータ用バッファ１０５の入力端子の容量、Ｔｒｆ１は、リピータ用バッファ１０５の入力端子における波形なまりである。
【００１６】
このとき、波形なまりＴｒｆ１は、上述された一般的なタイミング解析ツールでは、算出できない。一般的なタイミング解析ツールは、波形なまりＴｒｆ１を算出するのに必要な全てのパラメータを受け取る機能を有しないからである。波形なまりＴｒｆ１は、式（３）から、
Ｔｒｆ１＝ｆ３（Ｄ１、Ｒ１＋Ｒ２、Ｃ１＋Ｃ２＋Ｃｉｎ１）．
ここで、Ｄ１は、マクロ１０１ａに含まれた、仮想端子１０６ｂに入力信号を供給するバッファ１０１ａのドライブ能力、Ｒ１は、仮想端子１０６ｂに接続する配線１０３ａの配線抵抗、Ｃ１は、配線１０３ａの配線容量である。一般的なタイミング解析ツールは、仮想端子１０６ｂに入力される入力信号の波形なまりを受け取る機能を有する。しかし、一般的なタイミング解析ツールは、波形なまりＴｒｆ１を算出するのに必要な、ドライブ能力Ｄ１、配線抵抗Ｒ１、配線容量Ｃ１を受け取る機能を有しない。
【００１７】
波形なまりＴｒｆ１が算出できないため、配線１０３ｂで発生する配線遅延時間Ｔｗ１を算出することができない。
【００１８】
更に、一般的なタイミング解析ツールでは、リピータ用バッファ１０５で発生する遅延時間Ｔｇ１を算出することができない。式（１）から、遅延時間Ｔｇ１は、
Ｔｇ１＝ｆ１（Ｔｒｆ１、Ｒ２＋Ｒ４、Ｃ３＋Ｃ４＋Ｃｉｎ２）．
このように、遅延時間Ｔｇ１の算出には、リピータ用バッファ１０５の入力端子における波形なまりＴｒｆ１が必要である。波形なまりＴｒｆ１は、上述されているように、一般的なタイミング解析ツールでは、算出できない。従って、一般的なタイミング解析ツールでは、遅延時間Ｔｇ１を算出することができない。
【００１９】
このように、一般的なタイミング解析ツールでは、マクロ１０１ｂのタイミングの解析を、マクロ１０１ｂ単独ですることができない。公知の階層化レイアウト方法で設計された半導体装置を、一般的なタイミング解析ツールを使用してタイミング解析する場合、上位レイヤと下位レイヤとのレイアウトデータをマージした上でタイミング解析が行われることが必要である。
【００２０】
マクロ領域を通過する配線経路を設けるような半導体装置設計方法であって、下位レイヤのタイミング解析を、上位レイヤと独立して行うことができる半導体装置設計方法の提供が望まれる。
【００２１】
【発明が解決しようとする課題】
本発明の目的は、マクロ領域を通過する配線経路を設けるような半導体装置設計方法であって、下位レイヤのタイミング解析を、上位レイヤと独立して行うことができる半導体装置設計方法を提供することにある。
【００２２】
本発明の他の目的は、マクロ領域を通過する配線経路を設けるような半導体装置設計方法であって、下位レイヤのタイミング解析を、上位レイヤと独立して、一般的なタイミング解析ツールを使用して行うことができる半導体装置設計方法を提供することにある。
【００２３】
【課題を解決するための手段】
その課題を解決するための手段は、下記のように表現される。その表現中に現れる技術的事項には、括弧（）つきで、番号、記号等が添記されている。その番号、記号等は、本発明の複数の実施の形態のうちの、少なくとも１つの実施の形態を構成する技術的事項、特に、その実施の形態に対応する図面に表現されている技術的事項に付せられている参照番号、参照記号等に一致している。このような参照番号、参照記号は、請求項記載の技術的事項と実施の形態の技術的事項との対応・橋渡しを明確にしている。このような対応・橋渡しは、請求項記載の技術的事項が実施の形態の技術的事項に限定されて解釈されることを意味しない。
【００２４】
本発明による半導体装置設計方法は、プログラム記憶手段（５２）に記憶されたプログラムに従い、入力手段（５１）に入力されたネットリスト（ａ）に基づいて半導体装置の設計を行う方法である。当該半導体装置設計方法は、
（ａ）上位レイヤに、マクロが格納されるマクロ領域（１ｂ）を配置するステップと、
（ｂ）上位レイヤのうちマクロ領域（１ｂ）の外側にある第１位置（４ａ）から、マクロ領域（１ｂ）の外側にある第２位置（４ｄ）に伝送信号を伝送するための配線経路（２”）を、マクロ領域（１ｂ）を通るように配置するステップ
とを備えている。
配線経路（２”）は、第１配線（５ａ）、第１バッファ（３ａ）、第２バッファ（３ｂ）、及び第２配線（５ｂ）を含む。第１バッファ（３ａ）は、マクロ領域（１ｂ）の内側に配置されている。第２バッファ（３ｂ）は、マクロ領域（１ｂ）の内側に配置され、且つ、第１バッファ（３ａ）の出力端子が、その入力端子に接続されている。第１配線（５ａ）は、第１バッファ（３ａ）の入力端子と、第１位置（４ａ）との間に介設されている。第２配線（５ｂ）は、第２バッファ（３ｂ）の出力端子と、第２位置（４ｄ）との間に介設されている。第１バッファ（３ａ）は、第１配線（５ａ）のうちマクロ領域（１ｂ）の内側にある部分で発生する遅延時間が実質的に０であるように配置される。第２バッファ（３ｂ）は、第２配線（５ｂ）のうちマクロ領域（１ｂ）の内側にある部分で発生する遅延時間が実質的に０であるように配置される。これにより、マクロ領域（１ｂ）の内部のレイアウト変更は、マクロ領域（１ｂ）の外部のタイミングに影響を及ぼさない。
【００２５】
このとき、前記（ｂ）ステップは、
（ｃ）第１配線（５ａ）で発生する遅延時間の許容最大値である第１制約時間（ＴＣ１）と、第１バッファ（３ａ）の入力端子から第２バッファ（３ｂ）の出力端子までの遅延時間の許容最大値である第２制約時間（ＴＣ２）と、第２配線（５ｂ）で発生する遅延時間の許容最大値である第３制約時間（ＴＣ３）とを定めるステップと、
（ｄ）第１配線（５ａ）で発生する遅延時間が、第１制約時間（ＴＣ１）以内になるように、第１配線（５ａ）のレイアウトを定めるステップと、
（ｅ）第１バッファ（３ａ）の入力端子から第２バッファ（３ｂ）の出力端子までの遅延時間が第２制約時間（ＴＣ２）以内になるように、マクロ領域（１ｂ）の内部のレイアウトを定めるステップと、
（ｆ）第２配線（５ｂ）で発生する遅延時間が、第３制約時間（ＴＣ３）以内になるように、第２配線（５ｂ）のレイアウトを定めるステップ
とを含むことが好ましい。
【００２６】
このとき、配線経路（２”）は、更に、第１バッファ（３ａ）の出力端子と第２バッファ（３ｂ）の入力端子との間に介設された第３配線（６）を含むことがある。このとき、前記（ｅ）ステップは、
（ｇ）第１バッファ（３ａ）の入力端子から第２バッファ（３ｂ）の出力端子までの遅延時間が第２制約時間（ＴＣ２）以内になるように、第３配線（６）のレイアウトを定めるステップを備えていることが好ましい。
【００２７】
また、前記（ｃ）ステップは、
（ｈ）第１位置（４ａ）と第２位置（４ｄ）とを接続する仮配線経路（２’）を定めるステップと、
（ｉ）仮配線経路（２’）の全体で発生する仮想遅延時間（Ｔ０）を算出するステップと、
（ｊ）仮想遅延時間（Ｔ０）に基づいて、第２制約時間（ＴＣ２）を定めるステップを備え、
仮配線経路（２’）は、マクロ領域（１ｂ）の内側に配置された第１仮バッファ（３ａ）と、マクロ領域の内側に配置された第２仮バッファ（３ｂ）と、第１位置（４ａ）と第１仮バッファ（３ａ）の入力端子との間に介設されている第１仮配線（２ａ）と、第１仮バッファ（３ａ）の出力端子と、第２仮バッファ（３ｂ）の入力端子との間に介設されている第２仮配線（２ｂ）と、第２仮バッファ（３ｂ）の出力端子と第２位置（４ｄ）との間に介設されている第３仮配線（２ｃ）とを含み、第１仮バッファ（３ａ）は、第１仮配線（２ａ）のうちマクロ領域（１ｂ）の内側にある部分で発生する遅延時間が実質的に０であるように配置され、第２仮バッファ（３ｂ）は、第３仮配線（２ｃ）のうちマクロ領域（１ｂ）の内側にある部分で発生する遅延時間が実質的に０であるように配置され、
前記（ｊ）ステップは、
（ｋ）第１仮バッファ（３ａ）の入力端子から第２仮バッファ（３ｂ）の出力端子までの仮想内部遅延時間（Ｔ２）を算出するステップと、
（ｌ）仮想遅延時間（Ｔ０）と仮想内部遅延時間（Ｔ２）とに基づいて、第２制約時間（ＴＣ２）を算出するステップとを含むことが好ましい。
【００２８】
このとき、第２制約時間（ＴＣ２）は、下記式：
ＴＣ２＝ＴＣ・（Ｔ１／Ｔ０），
ＴＣ：配線経路（２”）で発生する遅延時間の許容最大値
Ｔ２：仮想内部遅延時間
Ｔ０：仮想遅延時間
により定められることが好ましい。
【００２９】
また、前記（ｅ）ステップは、
（ｓ）第１仮バッファ（３ａ）のマクロ領域（１ｂ）における位置を保持したまま、第１仮バッファ（３ａ）を第１バッファ（３ａ）として埋め込むステップと、
（ｔ）第２仮バッファ（３ｂ）のマクロ領域（１ｂ）における位置を保持したまま、第２仮バッファ（３ｂ）を第２バッファ（３ｂ）として埋め込むステップとを含むことが好ましい。
【００３０】
また、前記（ｃ）ステップは、更に、
（ｍ）仮想遅延時間（Ｔ０）に基づいて、第１制約時間（ＴＣ１）を定めるステップを備え、
前記（ｍ）ステップは、
（ｎ）第１仮配線（２ａ）で発生する第１仮想外部遅延時間（Ｔ１）を算出するステップと、
（ｏ）第１仮想外部遅延時間（Ｔ１）と仮想遅延時間（Ｔ０）とに基づいて、第１制約時間（ＴＣ１）を算出するステップを含むことが好ましい。
【００３１】
このとき、第１制約時間（ＴＣ１）は、下記式：
ＴＣ１＝ＴＣ・（Ｔ１／Ｔ０），
ＴＣ１：第１制約時間
ＴＣ：配線経路（２”）で発生する遅延時間の許容最大値
Ｔ１：第１仮想外部遅延時間
Ｔ０：仮想遅延時間
により定められることが好ましい。
【００３２】
また、前記（ｃ）ステップは、更に、
（ｐ）仮想遅延時間（Ｔ０）に基づいて、第３制約時間（ＴＣ３）を定めるステップを備え、
前記（ｐ）ステップは、
（ｑ）第３仮配線（２ｃ）で発生する第２仮想外部遅延時間（Ｔ３）を算出するステップと、
（ｒ）第２仮想外部遅延時間（Ｔ３）と仮想遅延時間（Ｔ０）とに基づいて、第３制約時間（ＴＣ３）を算出するステップを含むことが好ましい。
【００３３】
このとき、第３制約時間（ＴＣ３）は、下記式：
ＴＣ３＝ＴＣ・（Ｔ３／Ｔ０），
ＴＣ３：第３制約時間
ＴＣ：配線経路で発生する遅延時間の許容最大値
Ｔ３：第２仮想外部遅延時間
Ｔ０：仮想遅延時間
により定められることが好ましい。
【００３４】
本発明による半導体装置設計用プログラムは、コンピュータを使用して半導体装置を設計するための半導体装置設計用プログラムである。当該半導体装置設計用プログラムは、
（ａ）上位レイヤに、マクロが格納されるマクロ領域（１ｂ）を配置するステップと、
（ｂ）上位レイヤのうちマクロ領域（１ｂ）の外側にある第１位置（４ａ）から、マクロ領域（１ｂ）の外側にある第２位置（４ｄ）に伝送信号を伝送するための配線経路（２”）を、マクロ領域（１ｂ）を通るように配置するステップとを実行する。配線経路（２”）は、マクロ領域（１ｂ）の内側に配置された第１バッファ（３ａ）と、マクロ領域（１ｂ）の内側に配置され、且つ、第１バッファ（３ａ）の出力端子が、入力端子に接続されている第２バッファ（３ｂ）と、第１バッファ（３ａ）の入力端子と、第１位置（４ａ）との間に介設された第１配線（５ａ）と、第２バッファ（３ｂ）の出力端子と、第２位置（４ｄ）との間に介設された第２配線（５ｂ）とを含む。第１バッファ（３ａ）は、第１配線（５ａ）のうちマクロ領域（１ｂ）の内側にある部分で発生する遅延時間が実質的に０であるように配置され、第２バッファ（３ｂ）は、第２配線（５ｂ）のうちマクロ領域（１ｂ）の内側にある部分で発生する遅延時間が実質的に０であるように配置される。
【００３５】
本発明による半導体装置設計装置は、上位レイヤに、マクロが格納されるマクロ領域（１ｂ）を配置する手段（５３）と、上位レイヤのうちマクロ領域（１ｂ）の外側にある第１位置（４ａ）から、マクロ領域（１ｂ）の外側にある第２位置（４ｄ）に伝送信号を伝送するための配線経路（２”）を、マクロ領域（１ｂ）を通るように配置する手段（５３）とを備えている。配線経路（２”）は、マクロ領域（１ｂ）の内側に配置された第１バッファ（３ａ）と、マクロ領域（１ｂ）の内側に配置され、且つ、第１バッファ（３ａ）の出力端子が、入力端子に接続されている第２バッファ（３ｂ）と、第１バッファ（３ａ）の入力端子と、第１位置（４ａ）との間に介設された第１配線（５ａ）と、第２バッファ（３ｂ）の出力端子と、第２位置（４ｂ）との間に介設された第２配線（５ｂ）とを含む。第１バッファ（３ａ）は、第１配線（５ａ）のうちマクロ領域（１ｂ）の内側にある部分で発生する遅延時間が実質的に０であるように配置され、第２バッファ（３ｂ）は、第２配線（５ｂ）のうちマクロ領域（１ｂ）の内側にある部分で発生する遅延時間が実質的に０であるように配置される。
【００３６】
【発明の実施の形態】
以下、添付図面を参照しながら、本発明による実施の一形態の半導体装置設計方法を説明する。
【００３７】
図２は、本実施の形態の半導体装置設計方法を実行するためのハードウエアを示す。当該ハードウエアは、入力部５１、プログラム記憶部５２、演算部５３、出力部５４を備えている。
【００３８】
入力部５１には、外部からネットリストａが入力される。
【００３９】
プログラム記憶部５２は、演算部５３が実行するプログラムが記憶されている。プログラム記憶部５２が記憶するプログラムには、後述される本実施の形態の半導体装置設計方法を実行する手順が記載されている。
【００４０】
演算部５３は、ネットリストａに基づいて、プログラム記憶部５２に記憶されたプログラムに記載された手順を実行してレイアウト結果ｂの生成を行う。
【００４１】
出力部５４は、レイアウト結果ｂを外部に出力する。
【００４２】
図１は、本実施の形態の半導体装置設計方法を示すフローチャートである。まず、上位レイヤのフロアプランと、概略配線が行われる（ステップＳ０１）。図３に示されているように、マクロ領域１ａ、１ｂ、１ｃと、仮配線２とが上位レイヤに配置される。マクロ領域１ａ、１ｂ、１ｃは、マクロが格納される領域である。仮配線２は、マクロ領域１ａとマクロ領域１ｃとを接続する。このとき、仮配線２は、マクロ領域１ｂを通過するように配置される。
【００４３】
続いて、図１に示されているように、リピータ用バッファの挿入が行われる（ステップＳ０２）。図４に示されているように、仮配線２にリピータ用バッファ３ａ、３ｂが挿入される。仮配線２は、リピータ用バッファ３ａ、及び３ｂにより、仮配線２ａ、２ｂ、及び２ｃに分割される。仮配線２ａは、マクロ領域１ａと、リピータ用バッファ３ａの入力端子とに接続される。仮配線２ｂは、リピータ用バッファ３ａの出力端子と、リピータ用バッファ３ｂの入力端子とに接続される。仮配線２ｃは、リピータ用バッファ３ｂの入力端子と、マクロ領域１ｃとに接続される。仮配線２ａ、２ｂ及び２ｃと、リピータ用バッファ３ａ、３ｂとは、以後、総称して、仮配線経路２’と記載される。
【００４４】
リピータ用バッファ３ａ、３ｂは、マクロ領域１ｂの境界線の近傍に配置される。リピータ用バッファ３ａは、仮配線２ａのうち、マクロ領域１ｂの内部にある部分で発生する遅延時間が実質的に０であるように、マクロ領域１ｂの境界線の近傍に設けられる。仮配線２ａのリピータ用バッファ３ａに接続する一端は、実質的に、マクロ領域１ｂの境界線の上にある。同様に、リピータ用バッファ３ｂは、仮配線２ｃのうち、マクロ領域１ｃの内部にある部分で発生する遅延時間が実質的に０であるように、マクロ領域１ｂの境界線の近傍に設けられる。仮配線２ｃのリピータ用バッファ３ｂに接続する一端は、実質的に、マクロ領域１ｂの境界線の上にある。
【００４５】
続いて、図１に示されているように、上位レイヤの第１次的なタイミング解析が行われる（ステップＳ０３）。図５（ａ）に示されているように、仮配線経路２’のうち、マクロ領域１ａとマクロ領域１ｂとの間にある部分、マクロ領域１ｂの内部にある部分、マクロ領域１ｂとマクロ領域１ｃとの間にある部分のそれぞれにおいて発生する遅延時間が算出される。即ち、仮配線２ａで発生する遅延時間Ｔ１、リピータ用バッファ３ａ、仮配線２ｂ、及びリピータ用バッファ３ｂで発生する遅延時間Ｔ２、及び、仮配線２ｃで発生する遅延時間Ｔ３が算出される。遅延時間Ｔ１、Ｔ２、Ｔ３の和が、仮配線経路２’で発生する遅延時間Ｔ０である。遅延時間Ｔ０が、仮配線経路２’の遅延時間として許容される制約時間ＴＣと比較される。
【００４６】
遅延時間Ｔ０が、制約時間ＴＣよりも大きい場合、上位レイヤのフロアプランからやり直しが行われる。即ち、ステップＳ０１とステップＳ０２とが、再度、実行される。
【００４７】
遅延時間Ｔ０が、制約時間ＴＣよりも小さい場合、リピータ用バッファの埋め込み処理とタイミング制約条件の分配処理とが行われる（ステップＳ０４）。リピータ用バッファの埋め込み処理では、図５（ｂ）に示されているように、上位レイヤレイアウト用データ１０と、下位レイヤ埋め込み用データ２０とが生成される。
【００４８】
上位レイヤレイアウト用データ１０は、上位レイヤのレイアウトに必要な情報を含む。より詳細には、上位レイヤレイアウト用データ１０は、
（１）マクロ領域１ａ、１ｂ、１ｃの位置
（２）仮配線２ａの両方の端にある端子４ａ、４ｂの位置
（３）マクロ領域１ａの内部にあり、端子４ａから信号を出力するバッファ（図示されない）のドライブ能力Ｄ１
（４）端子４ｂに接続される負荷容量、即ち、リピータ用バッファ３ａの入力端子の容量Ｃｉｎ１
（５）端子４ａと端子４ｂとが、配線により接続されることを示す接続情報
（６）仮配線２ｂの両方の端にある端子４ｃ、４ｄの位置
（７）端子４ｃに接続されるリピータ用バッファ３ｂのドライブ能力Ｄ３
（８）マクロ領域１ｃの内部にあり、端子４ｄから信号が入力されるバッファ（図示されない）の入力端子の容量Ｃｉｎ３
（９）端子４ｃと端子４ｄとが、配線により接続されることを示す接続情報
を含む。ここで、端子４ｂの位置は、リピータ用バッファ３ａの入力端子の位置に一致し、端子４ｃの位置は、リピータ用バッファ３ｂの出力端子の位置に一致する。
【００４９】
下位レイヤ埋め込み用データ２０は、下位レイヤのレイアウトの際に下位レイヤに埋め込まれるリピータ用バッファ３ａ、３ｂに関する情報を含む。より詳細には、下位レイヤ埋め込み用データ２０は、
（１）マクロ領域１ｂにおけるリピータ用バッファ３ａ、３ｂの位置
（２）リピータ用バッファ３ａとリピータ用バッファ３ｂとが配線により接続されることを示す接続情報
を含む。
【００５０】
タイミング制約条件の分配処理では、仮配線経路２’の遅延時間として許容される制約時間ＴＣが、上位レイヤと下位レイヤとに分配される。図５（ａ）に示されているように、上位レイヤに関し、端子４ａと端子４ｂとを接続する配線に許容される制約時間ＴＣ１は、
ＴＣ１＝ＴＣ・（Ｔ１／Ｔ０），
と定められる。制約時間ＴＣ１は、前述の第１次的なタイミング解析により、仮配線２ａで発生すると算出された遅延時間Ｔ１に比例するように定められる。更に、端子４ｃと端子４ｄとを接続する配線に許容される制約時間ＴＣ３は、
ＴＣ３＝ＴＣ・（Ｔ３／Ｔ０）
と定められる。制約時間ＴＣ３は、前述の第１次的なタイミング解析により、仮配線２ｃで発生すると算出された遅延時間Ｔ３に比例するように定められる。制約時間ＴＣ１と制約時間ＴＣ３とは、上位レイヤの詳細配線が行われる際に使用される。
【００５１】
一方、下位レイヤに関し、マクロ領域１ｂの内部で発生することが許容される制約時間ＴＣ２は、
ＴＣ２＝ＴＣ・（Ｔ２／Ｔ０）
と定められる。制約時間ＴＣ２は、前述の第１次的なタイミング解析により、マクロ領域１ｂの内部で発生すると算出された遅延時間Ｔ２に比例するように定められる。制約時間ＴＣ２は、下位レイヤのレイアウトが行われる際に使用される。
【００５２】
このように、制約時間ＴＣが、上位レイヤと下位レイヤに分配されることにより、以後、上位レイヤのレイアウト及びタイミング解析と、下位レイヤのレイアウト及びタイミング解析とを、別個に行うことが可能になる。以後、上位レイヤのレイアウト及びタイミング解析と、下位レイヤのレイアウト及びタイミング解析とは、別個に行われる。
【００５３】
図１に示されているように、上位レイヤについて詳細配線が行われ、上位レイヤのレイアウト結果を示す上位レイヤレイアウト結果データが生成される（ステップＳ０５）。詳細配線は、上位レイヤレイアウト用データ１０に基づいて行われる。図６に示されているように、端子４ａと端子４ｂとを接続する配線５ａと、端子４ｃと端子４ｄとを接続する配線５ｂとのレイアウトが定められる。配線５ａと配線５ｂとは、必ずしも、上述の仮配線２ａ、仮配線２ｃのレイアウトと一致しない。更に、上位レイヤの他の部分の配線が行われ、上位レイヤレイアウト結果データが生成される。上位レイヤレイアウト結果データは、配線５ａ、配線５ｂのレイアウトを示す情報を含む。
【００５４】
後述されるように、配線５ａは、遅延時間が、上述の制約時間ＴＣ１よりも小さくなるようにレイアウトされる。同様に、配線５ｂは、遅延時間が上述の制約時間ＴＣ３よりも小さくなるようにレイアウトされる。
【００５５】
ステップＳ０５に続いて、図１に示されているように、生成された上位レイヤレイアウト結果データに基づいて、上位レイヤのシグナルインテグリティーチェックが行われる（ステップＳ０６）。シグナルインテグリティーチェックでは、クロストークチェック、エレクトロマイグレーションチェック及びホットキャリアチェックが行われる。クロストークチェックでは、上位レイヤの配線間で発生するクロストークの影響が調べられる。上位レイヤの配線間の容量により、同じ長さの配線であっても、遅延時間の変動が発生する。クロストークチェックでは、上位レイヤの配線の遅延時間の変動分が算出される。エレクトロマイグレーションチェックでは、上位レイヤの配線において、エレクトロマイグレーションが発生し得るか否かが調べられる。ホットキャリアチェックでは、上位レイヤの配線に接続されているトランジスタにおいて、ホットキャリア劣化が発生し得るか否かが調べられる。
【００５６】
更に、上位レイヤレイアウト結果データと上位レイヤレイアウト用データ１０とに基づいて、上位レイヤのタイミング解析が行われる（ステップＳ０７）。配線５ａと配線５ｂとの遅延時間が算出される。図７は、配線５ａと配線５ｂとの遅延時間の算出過程を示す図である。
【００５７】
配線５ａで発生する遅延時間Ｔｗ１は、下記式：
Ｔｗ１＝ｆ２（Ｒ１、Ｃ１＋Ｃｉｎ１）＋Ｔｒｆ１，
により算出される。ここで、ｆ２は、所定の関数、Ｒ１は、配線５ａの配線抵抗、Ｃ１は、配線５ａの配線容量、Ｃｉｎ１は、リピータ用バッファ３ａの入力端子の容量、Ｔｒｆ１は、端子４ａにおける波形なまりである。波形なまりＴｒｆ１は、下記式：
Ｔｒｆ１＝ｆ３（Ｄ１、Ｒ１、Ｃ１＋Ｃｉｎ１）
により算出される。ここで、ｆ３は、所定の関数、Ｄ１は、マクロ領域１ａの内部にある端子４ａに信号を出力するバッファ１ａ１のドライブ能力である。配線抵抗Ｒ１、配線容量Ｃ１は、配線５ａの配線長により定まる。容量Ｃｉｎ１、ドライブ能力Ｄ１は、上述されているように、上位レイヤレイアウト用データ１０に含まれている。
【００５８】
同様に、配線５ｂで発生する遅延時間Ｔｗ３は、下記式：
Ｔｗ３＝ｆ２（Ｒ３、Ｃ３＋Ｃｉｎ３）＋Ｔｒｆ３，
により算出される。ここで、Ｒ３は、配線５ｂの配線抵抗、Ｃ３は、配線５ｂの配線容量、Ｃｉｎ３は、マクロ領域１ｂの内部にあり、端子４ｄから信号が入力されるバッファ１ｃ１の入力端子の容量、Ｔｒｆ３は、端子４ｄにおける波形なまりである。波形なまりＴｒｆ３は、下記式：
Ｔｒｆ３＝ｆ３（Ｄ３、Ｒ３、Ｃ３＋Ｃｉｎ３）
により算出される。ここで、Ｄ３は、リピータ用バッファ３ｂのドライブ能力である。配線抵抗Ｒ３、配線容量Ｃ３は、配線５ｂの配線長により定まる。容量Ｃｉｎ３、ドライブ能力Ｄ３は、上述されているように、上位レイヤレイアウト用データ１０に含まれている。
【００５９】
更に、算出された遅延時間Ｔｗ１と、配線５ａについて定められた制約時間ＴＣ１とが比較される。遅延時間Ｔｗ１が制約時間ＴＣ１よりも大きい場合、タイミングエラーが発生していると判断される。
【００６０】
同様に、算出された遅延時間Ｔｗ３と、配線５ｂについて定められた制約時間ＴＣ３とが比較される。遅延時間Ｔｗ３が制約時間ＴＣ３よりも大きい場合、タイミングエラーが発生していると判断される。
【００６１】
更に、上位レイヤの他の部分でタイミングエラーが発生しているか否かが判断される。
【００６２】
タイミングエラーが発生していると判断されると、図１に示されているように、タイミングエラーの修復が行われる（ステップＳ０８）。配線５ａ、配線５ｂのレイアウト、及び上位レイヤの他の部分が修正される。レイアウトの修正に応答して、上位レイヤレイアウト結果データが修正される。その後、再度、上位レイヤのシグナルインテグリティーチェックとタイミング解析とが行われる（ステップＳ０６、Ｓ０７）。
【００６３】
一方、タイミングエラーが発生していないと判断された場合、上位レイヤのレイアウトは終了する。このとき、算出された遅延時間Ｔｗ１と遅延時間Ｔｗ３とは、それぞれ、制約時間ＴＣ１、制約時間ＴＣ３よりも小さい。
【００６４】
更に、下位レイヤのレイアウト及びタイミング解析とが行われる。図１に示されているように、下位レイヤのレイアウトが行われ、下位レイヤレイアウト結果データが生成される（ステップＳ０９）。下位レイヤのレイアウトは、下位レイヤ埋め込み用データ２０を参照して行われる。図８に示されているように、下位レイヤであるマクロ領域１ｂの内部には、リピータ用バッファ３ａ、３ｂが埋め込まれる。リピータ用バッファ３ａ、３ｂは、マクロ領域１ｂにおける位置を保持しながら埋め込まれる。更に、リピータ用バッファ３ａとリピータ用バッファ３ｂとを接続する配線６のレイアウトが定められる。配線６のレイアウトは、前述の仮配線２ｂのレイアウトと必ずしも一致しない。更に、マクロ領域１ｂの内部の他の部分のレイアウトが下位レイヤレイアウト結果データが生成される。下位レイヤレイアウト結果データは、リピータ用バッファ３ａ、３ｂ及び配線６のレイアウトを示す情報を含む。
【００６５】
後述されるように、配線６は、リピータ用バッファ３ａ、３ｂ及び配線６で発生する遅延時間が、上述の制約時間ＴＣ２よりも小さくなるようにレイアウトされる。
【００６６】
ステップＳ０９に続いて、図１に示されているように、生成された下位レイヤレイアウト結果データに基づいて、下位レイヤのシグナルインテグリティーチェックが行われる（ステップＳ１０）。シグナルインテグリティーチェックでは、クロストークチェック、エレクトロマイグレーションチェック及びホットキャリアチェックが行われる。
【００６７】
更に、図１に示されているように、下位レイヤレイアウト結果データに基づいて、下位レイヤのタイミング解析が行われる（ステップＳ１１）。下位レイヤのタイミング解析には、外部から入力される入力信号の波形なまり、出力端子に接続されている配線の抵抗、及び出力端子の負荷容量に基づいて遅延時間を算出する、一般的なタイミング解析ツールが使用される。
【００６８】
ステップＳ０７のタイミング解析では、リピータ用バッファ３ａ、配線６、及びリピータ用バッファ３ｂで発生する遅延時間が算出され、その和が制約時間ＴＣ２よりも小さいか否かが判断される。図９は、リピータ用バッファ３ａ、配線６、及びリピータ用バッファ３ｂの遅延時間の算出過程を示す図である。
【００６９】
リピータ用バッファ３ａで発生する遅延時間Ｔｇ１は、下記式により算出される。
Ｔｇ１＝ｆ１（Ｔｒｆ１、Ｒ２、Ｃ２＋Ｃｉｎ２）．
ここで、ｆ１は、所定の関数、Ｔｒｆ１は、端子４ｂにおける波形なまり、Ｒ２は、配線６の配線抵抗、Ｃ２は、配線６の配線容量、Ｃｉｎ２は、リピータ用バッファ３ｂの入力端子の容量である。波形なまりＴｒｆ１は、上位レイヤのタイミング解析（ステップＳ０７）で算出されたものと同一である。波形なまりＴｒｆ１は、タイミング解析ツールによって読み込まれ、遅延時間Ｔｇ１の算出に使用される。Ｒ２、Ｃ２は、配線６の配線長により定まる。
【００７０】
配線６で発生する遅延時間Ｔｗ２は、下記式により算出される。
Ｔｗ２＝ｆ２（Ｒ２、Ｃ２＋Ｃｉｎ２）＋Ｔｒｆ２，
ここで、Ｒ２は、配線６の配線抵抗、Ｃ２は、配線６の配線容量、Ｃｉｎ２は、リピータ用バッファ３ｂの入力端子の容量、Ｔｒｆ２は、リピータ用バッファ３ｂの入力端子における波形なまりである。波形なまりＴｒｆ２は、下記式：
Ｔｒｆ２＝ｆ３（Ｄ２、Ｒ２、Ｃ２＋Ｃｉｎ２）
により算出される。ここで、Ｄ２は、リピータ用バッファ３ａのドライブ能力である。
【００７１】
リピータ用バッファ３ｂで発生する遅延時間Ｔｇ２は、下記式により算出される。
Ｔｇ２＝ｆ１（Ｔｒｆ２、Ｒ３、Ｃ３＋Ｃｉｎ３）．
ここで、Ｔｒｆ２は、上述のリピータ用バッファ３ｂの入力端子における波形なまり、Ｒ３は、配線５ｂの配線抵抗、Ｃ３は、配線５ｂの配線容量、Ｃｉｎ３は、マクロ領域１ｂの内部にあり、端子４ｄから信号が入力されるバッファ１ｃ１の入力端子の容量である。配線抵抗Ｒ３、配線容量Ｃ３、容量Ｃｉｎ３は、タイミング解析ツールにより、上述の上位レイヤレイアウト結果データから抽出され、読み込まれる。
【００７２】
算出された遅延時間Ｔｇ１、遅延時間Ｔｗ２、及び遅延時間Ｔｇ２の和が、上述の制約時間ＴＣ２よりも大きい場合、タイミングエラーが発生していると判断される。
【００７３】
更に、マクロ領域１ｂの内部の他の部分でタイミングエラーが発生しているか否かが判断される。
【００７４】
タイミングエラーが発生していると判断されると、図１に示されているように、タイミングエラーの修復が行われる（ステップＳ１２）。配線６のレイアウト、及び／又は、マクロ領域１ｂの他の部分のレイアウトが修正される。レイアウトの修正に応答して、下位レイヤレイアウト結果データが修正される。その後、再度、下位レイヤのシグナルインテグリティーチェックとタイミング解析とが行われる（ステップＳ１０、Ｓ１１）。このとき、配線６のレイアウトが修正された場合でも、リピータ用バッファ３ａ、３ｂがマクロ領域１ｂの境界線の近傍に設けられていることにより、配線６のレイアウトの修正が、マクロ領域１ｂの外部のタイミングに影響を及ぼすことがない。従って、配線６のレイアウトが修正されても、再度、上位レイヤのタイミング解析を行う必要が無い。下位レイヤの内部のみで独立してタイミング解析を行うことができる。
【００７５】
一方、タイミングエラーが発生していないと判断されると、下位レイヤのレイアウトが終了する。
【００７６】
上位レイヤと下位レイヤと両方のレイアウトが完了すると、生成された上位レイヤレイアウト結果データと下位レイヤレイアウト結果データとがマージされ、レイアウト結果ｂが生成される。図１０は、最終的なレイアウトを示す。マクロ領域１ｂの外部に配線５ａ、５ｂが配置される。マクロ領域１ｂの外部にリピータ用バッファ３ａ、３ｂと、配線６ａとが配置される。配線５ａは、端子４ａとリピータ用バッファ３ａの入力端子の間に介設されている。配線５ｂは、リピータ用バッファ３ａの出力端子と、端子４ｄとの間に介設されている。配線６は、リピータ用バッファ３ａの出力端子と、リピータ用バッファ３ｂの入力端子との間に回折されている。配線５ａのうち、マクロ領域１ｂの内部にある部分で発生する遅延時間は、実質的に０である。配線５ｂのうち、マクロ領域１ｃの内部にある部分で発生する遅延時間は、実質的に０である。リピータ用バッファ３ａ、３ｂ、配線５ａ、５ｂ、及び配線６ａは、マクロ領域１ｂの外部にある端子４ａから端子４ｄに伝送信号を伝送する配線経路２”を構成する。
【００７７】
以上に説明されたように、本実施の形態の半導体装置設計方法は、下位レイヤであるマクロ領域１ｂの内部のタイミング解析を行うために、上位レイヤのレイアウトデータをマージすることが必要とされない。
【００７８】
更に、本実施の形態の半導体装置設計方法は、配線６のレイアウトが変更されても、配線５ａ、５ｂの遅延時間に影響されない。下位レイヤであるマクロ領域１ｂの内部のレイアウトの変更が行われても、マクロ領域１ｂの外部のタイミング解析を再度行うことを必要としない。
【００７９】
【発明の効果】
本発明によりマクロ領域を通過する配線経路を設けるような半導体装置設計方法であって、下位レイヤのタイミング解析を、上位レイヤと独立して行うことができる半導体装置設計方法が提供される。
【００８０】
また、本発明により、マクロ領域を通過する配線経路を設けるような半導体装置設計方法であって、下位レイヤのタイミング解析を、上位レイヤと独立して、一般的なタイミング解析ツールを使用して行うことができる半導体装置設計方法が提供される。
【００８１】
その理由は、配線経路の途中に介設されるバッファが、マクロ領域の内側、且つ、マクロ領域の境界近傍に設けられていることにより、下位レイヤのタイミングが、上位レイヤと独立して算出可能であるためである。
【図面の簡単な説明】
【図１】図１は、本発明による実施の一形態の半導体装置設計方法を示すフローチャートである。
【図２】図２は、本実施の形態の半導体装置設計方法を実行するハードウエアを示す。
【図３】図３は、上位レイヤのフロアプランと概略配線とを示す。
【図４】図４は、リピータ用バッファ３ａ、３ｂの挿入処理を示す。
【図５】図５（ａ）は、タイミング制約条件の分配処理を示し、図５（ｂ）は、リピータ用バッファの埋め込み処理を示す。
【図６】図６は、上位レイヤの詳細配線を示す。
【図７】図７は、配線５ａ、５ｂの遅延時間の算出の過程を示す。
【図８】図８は、下位レイヤのレイアウト処理を示す。
【図９】図９は、マクロ領域１ｂの内部で発生する遅延時間の算出の過程を示す。
【図１０】図１０は、設計された半導体装置のレイアウトを示す。
【図１１】図１１は、従来の半導体装置設計方法を示す。
【図１２】図１２は、一般的なタイミング解析ツールの機能を説明する図である。
【図１３】図１３は、一般的なタイミング解析ツールの機能を説明する図である。
【図１４】図１４は、従来の半導体装置設計方法で設計された半導体装置を一般的なタイミング解析ツールで解析する際に発生する問題を説明する図である。
【符号の説明】
１ａ〜１ｃ：マクロ領域
２、２ａ〜２ｃ：仮配線
３ａ、３ｂ：リピータ用バッファ
４ａ〜４ｄ：端子
５ａ、５ｂ、６：配線
【図１】
0004683762.tif 000002
【図２】
0004683762.tif 000003
【図３】
0004683762.tif 000004
【図４】
0004683762.tif 000005
【図５】
0004683762.tif 000006
【図６】
0004683762.tif 000007
【図７】
0004683762.tif 000008
【図８】
0004683762.tif 000009
【図９】
0004683762.tif 000010
【図１０】
0004683762.tif 000011
【図１１】
0004683762.tif 000012
【図１２】
0004683762.tif 000013
【図１３】
0004683762.tif 000014
【図１４】
0004683762.tif 000015