(57)【要約】【課題】製造段階で生じるマスクパターンの位置ずれを考慮したレイアウト設計技術を提供する。【解決手段】レイアウトデータを格納するレイアウトデータ格納部１３と、半導体集積回路を構成するセルについて、マスクパターンの位置ずれが無い場合の遅延値と、マスクパターンの位置ずれが生じると予測される複数の方向に対応する遅延値からの遅延差分とを含む遅延ライブラリを格納する遅延ライブラリ格納部２０と、レイアウトデータと遅延ライブラリとを用いて、位置ずれが無い場合と複数の方向へ位置ずれが生じた場合の遅延量を算出して、タイミング制約に違反するタイミング違反パスを抽出する遅延検証部１５と、位置ずれが無い場合と複数の方向へ位置ずれが生じた場合には、タイミング制約に違反する程度を小さくするように、タイミング違反パスに含まれるセルの配置方向を変更し、修正後のレイアウトデータを出力するセル配置調整部１７と、を備える。【選択図】図１Ａ
2013222442.tif 000002
【特許請求の範囲】
【請求項１】
修正前の半導体集積回路のレイアウトデータを格納するレイアウトデータ格納部と、
前記半導体集積回路を構成する少なくとも一つのセルについて、マスクパターンの位置ずれが無い場合の遅延値と、前記マスクパターンの位置ずれが生じると予測される複数の方向に対応する前記遅延値からの遅延差分とを含む遅延ライブラリを格納する遅延ライブラリ格納部と、
前記レイアウトデータと前記遅延ライブラリとを用いて、前記位置ずれが無い場合と前記複数の方向との複数の遅延量を算出して、タイミング制約に違反するタイミング違反パスを抽出する遅延検証部と、
前記位置ずれが無い場合と前記複数の方向とにおいて、前記タイミング制約に違反する程度を小さくするように、前記タイミング違反パスに含まれるセルの配置方向を変更し、修正後のレイアウトデータを出力するセル配置調整部と、
を備える半導体集積回路のレイアウト設計装置。
【請求項２】
前記遅延検証部は、前記位置ずれが無い場合の遅延量と前記複数の方向のすべての遅延量とのうちの少なくとも一つが前記タイミング制約を満たさない場合には、前記タイミング違反パスであると判定し、
前記セル配置調整部は、前記位置ずれが無い場合と、前記複数の方向のすべてにおいて、前記タイミング制約に違反する程度を小さくするように前記セルの配置方向を変更することを特徴とする請求項１記載の半導体集積回路のレイアウト設計装置。
【請求項３】
前記セル配置調整部は、前記セルの配置方向を、左右反転、上下反転及び上下左右反転のいずれかの方向に変更することを特徴とする請求項１または２記載の半導体集積回路のレイアウト設計装置。
【請求項４】
前記複数の方向は、左、右、上、及び下の４方向と、左上、左下、右上、及び右下の４方向とのうちの少なくとも一方を含むことを特徴とする請求項１または２記載の半導体集積回路のレイアウト設計装置。
【請求項５】
前記複数の方向は、左、右、上、下、右上、右下、左上、及び左下の８方向を少なくとも含むことを特徴とする請求項１または２記載の半導体集積回路のレイアウト設計装置。
【請求項６】
前記遅延ライブラリは、前記少なくとも一つのセルの任意の配置方向に対応する前記遅延値と前記遅延差分とを含み、
前記遅延検証部は、前記レイアウトデータから検証対象となる検証対象パスを抽出し、前記検証対象パスに含まれるセルの配置方向を検出し、検出したセルの配置方向と前記任意の配置方向とが異なる場合には、前記複数の方向を、前記検出したセルの配置方向と前記任意の方向とを用いて変換し、前記遅延ライブラリの前記遅延差分のうち、変換した方向に対応する前記遅延差分を参照することを特徴とする請求項１または２記載の半導体集積回路のレイアウト設計装置。
【請求項７】
前記セル配置調整部は、前記タイミング違反パスについて、前記複数の方向のうち、前記タイミング制約に違反する程度が最も大きい方向を抽出し、抽出した方向の前記タイミング制約に違反する程度を小さくするように、前記セルの配置方向を変更することを特徴とする請求項１または２記載の半導体集積回路のレイアウト設計装置。
【請求項８】
前記セル配置調整部は、
前記タイミング違反パスに含まれるセルの中から、前記セルの配置方向を左右反転させることによって、前記タイミング制約に違反する程度を小さくするセルを検索する第１検索部と、
前記第１検索部によって前記タイミング制約が満たされない場合に、前記タイミング違反パスに含まれるセルの中から、前記セルの配置方向を上下反転と上下左右反転とのいずれかによって、前記タイミング制約に違反する程度を小さくするセルを検索する第２検索部と、
前記第１検索部と前記第２検索部とが検索したセルの配置方向を変更して、前記修正後のレイアウトデータを生成する変更部と、を有することを特徴とする請求項１または２記載の半導体集積回路のレイアウト設計装置。
【請求項９】
前記第１セル検索部は、左右反転させるセルの候補を選択し、選択したセルを左右反転させた場合における、前記タイミング違反パスについて前記位置ずれが無い場合の遅延量と前記複数の方向のすべての遅延量とを、前記遅延ライブラリを用いて算出し、前記タイミング制約の違反の程度が小さくなる場合には、前記選択したセルを左右反転させると決定することを特徴とする請求項８記載の半導体集積回路のレイアウト設計装置。
【請求項１０】
前記第２セル検索部は、上下反転または上下左右反転させるセルの候補を選択し、選択したセルを上下反転または上下左右反転させた場合における、前記タイミング違反パスについて前記位置ずれが無い場合の遅延量と前記複数の方向のすべての遅延量とを、前記遅延ライブラリを用いて算出し、前記タイミング制約の違反の程度が小さくなる場合には、前記選択したセルを上下反転または上下左右反転させると決定することを特徴とする請求項８記載の半導体集積回路のレイアウト設計装置。
【請求項１１】
前記遅延ライブラリは、さらに、前記半導体集積回路を構成する複数のセルを含むブロックに対応する、前記遅延値と前記遅延差分とを含み、
前記遅延検証部は、前記レイアウトデータから検証対象となる検証対象パスを抽出したときに、前記検証対象パスに前記ブロックが含まれる場合には、前記ブロックの前記遅延値と前記遅延差分とを用いて前記タイミング違反パスを抽出することを特徴とする請求項１または２記載の半導体集積回路のレイアウト設計装置。
【請求項１２】
前記セル配置調整部によって前記タイミング制約が満たされない場合に、前記タイミング違反パスに含まれるセルの中から、マスクパターンの位置ずれによる遅延変動の小さいセルに置き換えるセルを検索する第３セル検索部と、
前記第３セル検索部が検索した前記セルを置き換えるセル置き換え部と、をさらに備えることを特徴とする請求項１または２記載の半導体集積回路のレイアウト設計装置。
【請求項１３】
前記第３セル検索部は、前記タイミング違反パスについて、前記複数の方向のうち、前記タイミング制約に違反する程度が最も大きい方向を抽出し、抽出した方向の前記タイミング制約に違反する程度を小さくするように、前記セルを選択することを特徴とする請求項１２記載の半導体集積回路のレイアウト設計装置。
【請求項１４】
記憶領域に格納された半導体集積回路のレイアウトデータを用いてレイアウトを設計する設計装置が実施するレイアウト設計方法であって、
前記半導体集積回路を構成する少なくとも一つのセルについて、マスクパターンの位置ずれが無い場合の遅延値と、前記マスクパターンの位置ずれが生じると予測される複数の方向に対応する前記遅延値からの遅延差分とを含む遅延ライブラリを、前記記憶領域に格納し、
前記レイアウトデータと前記遅延ライブラリとを前記記憶領域から読み出し、
前記レイアウトデータと前記遅延ライブラリとを用いて、前記位置ずれが無い場合と前記複数の方向との複数の遅延量を算出して、タイミング制約に違反するタイミング違反パスを抽出し、
前記位置ずれが無い場合と前記複数の方向とにおいて、前記タイミング制約に違反する程度を小さくするように、前記タイミング違反パスに含まれるセルの中から配置方向を変更するセルを検索し、
前記配置方向を変更するセルの情報を修正した修正後のレイアウトデータを出力する
レイアウト設計方法。
【請求項１５】
半導体集積回路のレイアウト設計方法を実現するプログラムであって、
コンピュータに、
前記半導体集積回路を構成する少なくとも一つのセルについて、マスクパターンの位置ずれが無い場合の遅延値と、前記マスクパターンの位置ずれが生じると予測される複数の方向に対応する前記遅延値からの遅延差分とを含む遅延ライブラリを、記憶領域に格納する遅延ライブラリ格納処理と、
修正前の半導体集積回路のレイアウトデータを、前記記憶領域に格納するレイアウトデータ格納処理と、
前記レイアウトデータと前記遅延ライブラリとを前記記憶領域から読み出す処理と、
前記レイアウトデータと前記遅延ライブラリとを用いて、前記位置ずれが無い場合と前記複数の方向との複数の遅延量を算出して、タイミング制約に違反するタイミング違反パスを抽出する遅延検証処理と、
前記位置ずれが無い場合と前記複数の方向とにおいて、前記タイミング制約に違反する程度を小さくするように、前記タイミング違反パスに含まれるセルの中から配置方向を変更するセルを検索するセル配置調整処理と、
前記配置方向を変更するセルの情報を修正した修正後のレイアウトデータを生成するレイアウトデータ修正処理と、を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体修正回路のセルベース設計に関し、例えば、４０ｎｍ世代以降の微細ＬＳＩ（Large Scale Integration）設計分野に関する。
【背景技術】
【０００２】
近年の特に４０ｎｍ世代以降のＬＳＩ製造において、作成する図形の最小幅が露光に使用する光の波長に近づいてきている。その結果、露光解像度の限界に近いために矩形や直線で構成された図形のマスクパターンの角が丸みを帯びた出来上がりになることが知られている。
また、１つのＬＳＩの製造では、複数の異なるマスクパターンを使用して露光、エッチング等の処理を工程毎に実施する。そのため、ＬＳＩの微細化により、工程間のマスクパターンの位置ずれについても無視できないものになってきている。
作成した図形が、丸みを帯びることが、工程間のマスクパターンの位置ずれと同時に起きると、トランジスタの遅延性能に影響が出る。このため、ある程度遅延が変動することを許容するようなマージンを付加したタイミング検証が必要となる。もしくは、マージンを付加しないタイミング検証を行う場合には、マスクパターンの位置ずれが起きても遅延変動が無視できるほど小さくなるように、異なるマスクから作られる図形同士の間隔を大きく取るなどして対策をとるのが一般的であった。
【０００３】
例えば、特許文献１には、スタンダードセル方式を用いた半導体集積回路の高速化を図る設計装置が開示されている。特許文献１は、タイミングパスにおける立ち上がりの遅延と立ち下がり遅延を比較し、差分が大きい箇所に対し、ＰＭＯＳトランジスタのゲート幅とＮＭＯＳトランジスタのゲート幅の比が異なるセルに置換する。これにより、立ち上がり、立ち下がりのパス遅延の差を小さくすることでタイミングを改善し、高速化する技術である。
加えて、特許文献２には、光学系の収差により、セルの配置方向でデバイス特性及びパス遅延が変動する現象を設計時に取り込んでタイミング検証を行なえるようにして、設計マージンの精度を高められるようにする技術が開示されている。さらに、特許文献３には、配線占有領域を削減し、冗長ビア配線ルール違反箇所を無くし又は削減することができるようにした半導体集積回路のレイアウト設計方法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−３３９５０５号公報
【特許文献２】特開２００６−２３８７３号公報
【特許文献３】特開２００８−３１１４５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の技術では、製造段階のマスクパターンの位置ずれの方向に依存して遅延変動量が変わることに対する考慮がされていない。このため、マスクパターンの位置ずれが発生した場合でもチップが動作するようにマージンを付加したタイミング検証を行うか、または、異なるマスクパターンから作られる図形同士の距離を大きく取ってセル面積を予め大きくしておく必要がある。
どの方向にマスクパターンの位置ずれが発生しても問題にならないようマージンを付加したセルを使用してレイアウト設計を行う場合には、より厳しいタイミング制約を満たすために高駆動なセルを使用することや、ホールド調整用バッファが増加する。このため、チップ面積の増大を招くことが問題である。
【０００６】
また、製造段階でマスクパターンの位置ずれが発生した場合の遅延変動が無視できるように、異なるマスクから作られる図形同士の距離を大きく取ってセル面積を大きくする場合には、セル自体の面積が大きいものとなる。このため、チップ面積が増大することが問題である。
さらに、特許文献２は、タイミング検証を実施する場合に、セルの配置方向でデバイス特性及びパス遅延が変動する現象に着目した技術である。特許文献３は、配線占有領域を削減することに着目した技術である。特許文献２，３ともに、製造段階で生じるマスクパターンの位置ずれを考慮した技術ではない。
上述したように、製造段階で生じるマスクパターンの位置ずれを考慮して、タイミング余裕度を付加することやセル面積を大きくすることは、ＬＳＩの高集積化の阻害要因となる。
このような事情から、半導体修正回路のレイアウト設計において、製造段階で生じるマスクパターンの位置ずれを考慮したレイアウト設計の実現が望まれている。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
一実施形態は、半導体集積装置のレイアウト設計は、修正前の半導体集積回路のレイアウトデータを用いて、レイアウトを設計する手法である。例えば、前記半導体集積回路を構成する少なくとも一つのセルについて、マスクパターンの位置ずれが無い場合の遅延値と、前記マスクパターンの位置ずれが生じると予測される複数の方向に対応する前記遅延値からの遅延差分とを含む遅延情報を遅延ライブラリに格納しておく。そして、前記レイアウトデータと前記遅延ライブラリとを用いて、前記位置ずれが無い場合と前記複数の方向との複数の遅延量を算出して、タイミング制約に違反するタイミング違反パスを抽出する。抽出したタイミング違反パスについて、前記位置ずれが無い場合と前記複数の方向とにおいて、前記タイミング制約に違反する程度を小さくするように、前記タイミング違反パスに含まれるセルの配置方向を変更し、修正後のレイアウトデータを出力する。
【発明の効果】
【０００８】
一実施形態によれば、製造段階で生じるマスクパターンの位置ずれを考慮したレイアウト設計の技術を提供することができる。
【図面の簡単な説明】
【０００９】
【図１Ａ】一実施形態に係る半導体集積回路のレイアウト設計装置の構成例を示すブロック図である。
【図１Ｂ】実施形態１に係る半導体集積回路のレイアウト設計装置の構成例を示すブロック図である。
【図２】遅延ライブラリの一例を示す図である。
【図３Ａ】実施形態１の半導体集積回路のレイアウト設計方法の動作例の概略を示すフローチャートである。
【図３Ｂ】実施形態１の半導体集積回路のレイアウト設計方法の遅延検証の動作例を示すフローチャートである。
【図３Ｃ】実施形態１の半導体集積回路のレイアウト設計方法において、左右反転の配置向き変更を行うセルを検索する動作例を示すフローチャートである。
【図３Ｄ】実施形態１の半導体集積回路のレイアウト設計方法において、上下反転と上下左右反転とのいずれかの配置向き変更を行うセルを検索する動作例を示すフローチャートである。
【図４Ａ】拡散層のマスクパターンの位置ずれが左上方向の場合に参照する遅延差分を説明する図である。
【図４Ｂ】拡散層のマスクパターンの位置ずれが下方向の場合に参照する遅延差分を説明する図である。
【図５Ａ】セル内のトランジスタの設計上のマスクパターンの一例を示す図である。
【図５Ｂ】セル内のトランジスタの製造後のレイアウトパターンでマスクパターンの位置ずれが無い場合の一例を示す図である。
【図５Ｃ１】セル内のトランジスタの製造後のレイアウトパターンで左方向のマスクパターンの位置ずれが生じた場合の一例を示す図である。
【図５Ｃ２】セル内のトランジスタの製造後のレイアウトパターンで右方向のマスクパターンの位置ずれが生じた場合の一例を示す図である。
【図５Ｃ３】セル内のトランジスタの製造後のレイアウトパターンで下方向のマスクパターンの位置ずれが生じた場合の一例を示す図である。
【図６】タイミング改善対象とするパスの一例を示す構成図である。
【図７】図６に示すバッファの遅延量と遅延差分との一例を示す図である。
【図８Ａ】図６に示すパスの二つのバッファのセル配置方向の一例を示す図である。
【図８Ｂ１】図６に示すパスについて、従来のレイアウト設計方法を用いる場合のタイミングチャートを示す図である。
【図８Ｂ２】図６に示すパスについて、実施形態１のレイアウト設計方法を用いて、位置ずれが生じる場合のタイミングチャートを示す図である。
【図８Ｂ３】図６に示すパスについて、実施形態１のレイアウト設計方法を用いて、位置ずれが生じない場合のタイミングチャートを示す図である。
【図９Ａ】図６に示すパスの二つのバッファのセル配置方向の変更候補一例を示す図である。
【図９Ｂ１】図６に示すパスについて、図９Ａのセル配置方向のマスクパターンの位置ずれが左、左上、左下方向の場合のタイミングチャートを示す図である。
【図９Ｂ２】図６に示すパスについて、図９Ａのセル配置方向のマスクパターンの位置ずれが右、右上、右下方向の場合のタイミングチャートを示す図である。
【図９Ｂ３】図６に示すパスについて、図９Ａのセル配置方向のマスクパターンの位置ずれが上、下方向の場合のタイミングチャートを示す図である。
【図１０】実施形態２に係る半導体集積回路のレイアウト設計装置の構成例を示すブロック図である。
【図１１Ａ】実施形態２のセル内のトランジスタの設計上のマスクパターンの一例を示す図である。
【図１１Ｂ】実施形態２のセル内のトランジスタの製造後のレイアウトパターンでマスクパターンの位置ずれが無い場合の一例を示す図である。
【図１１Ｃ】実施形態２のセル内のトランジスタの製造後のレイアウトパターンで左方向のマスクパターンの位置ずれが生じた場合の一例を示す図である。
【図１１Ｄ】実施形態２のマスクパターンの位置ずれによる遅延変動が小さいセル内のトランジスタの設計上のマスクパターンの一例を示す図である。
【図１１Ｅ】実施形態２のマスクパターンの位置ずれによる遅延変動が小さいセル内のトランジスタの製造後のレイアウトパターンでマスクパターンの位置ずれが無い場合の一例を示す図である。
【図１１Ｆ】実施形態２のマスクパターンの位置ずれによる遅延変動が小さいセル内のトランジスタの製造後のレイアウトパターンで左方向のマスクパターンの位置ずれが生じた場合の一例を示す図である。
【図１２】レイアウト設計手法を実現するコンピュータ装置の構成例を示すブロック図である。
【発明を実施するための形態】
【００１０】
以下、実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。各図面において同一の構成または機能を有する構成要素および相当部分には、同一の符号を付し、その説明は省略する。
【００１１】
一実施形態は、ＬＳＩの特にセルベース設計におけるレイアウト設計技術であって、マスクパターンの位置ずれが発生した場合の遅延変動を考慮してタイミング改善を行う装置と方法である。図１Ａは、一実施形態に係る半導体集積回路のレイアウト設計装置の構成例を示すブロック図である。レイアウト設計装置１０は、記憶領域１１と、遅延検証部１５と、セル配置調整部１７とを備える。記憶領域１１は、レイアウトデータ格納部１３と遅延ライブラリ格納部２０とを有する構成例を示す。
レイアウトデータ格納部１３は、修正前と修正後との半導体集積回路のレイアウトデータを格納する記憶領域である。加えて、レイアウトデータ格納部１３は、タイミング制約などレイアウト設計に必要な情報を格納する。
【００１２】
遅延ライブラリ格納部２０は、半導体集積回路を構成する少なくとも一つのセルについて、マスクパターンの位置ずれが無い場合の遅延値と、遅延差分とを含む遅延ライブラリを格納する記憶領域である。ここで、遅延差分は、遅延値との差分であり、一つのセルについて、マスクパターンの位置ずれが生じると予測される複数の方向それぞれに対応する差分が格納される。また、遅延ライブラリには、半導体修正回路を構成する複数のセルについて、遅延値と複数の遅延差分との組合せが格納されることが好ましい。遅延ライブラリ格納部２０は、複数のセルに応じた遅延ライブラリを、セルを識別する情報（例えば、セルの種類を示すセル識別子）と対応づけて保持する。従って、遅延ライブラリを用いる場合には、セルの種類に応じて複数の遅延ライブラリからセルに応じた遅延ライブラリを選択する。
【００１３】
遅延検証部１５は、レイアウトデータと遅延ライブラリとを用いて、マスクパターンの位置ずれが無い場合と、マスクパターンの位置ずれが生じる場合の複数の方向とについて、複数の遅延量を算出する。そして、算出した遅延量を用いて、半導体集積回路を構成する複数のパスの中から、タイミング制約に違反するパスを抽出する。以降適宜、タイミング制約に違反するパスを、「タイミング違反パス」と称する。
セル配置調整部１７は、マスクパターンの位置ずれが無い場合と、マスクパターンの位置ずれが生じる場合の複数の方向とにおいて、タイミング制約に違反する程度を小さくするように、タイミング違反パスに含まれるセルの配置方向を変更する。そして、変更したセルの配置方向を反映した、修正後のレイアウトデータを生成し、レイアウトデータ格納部１３へ格納する。セル配置調整部１７は、タイミング制約を満たすように、タイミング違反パスに含まれるセルの配置方向を変更することが好ましい。
【００１４】
図１Ａに示すレイアウト設計装置１０は、例えば、コンピュータを用いて実現され、遅延検証部１５とセル配置調整部１７とは、ＣＰＵ（Central Processing Unit）の制御のもとで各処理を実施する。
なお、図１Ａでは、レイアウトデータ格納部１３を示したが、以降で説明する各実施形態で示すように、修正前と修正後のレイアウトデータを格納する領域を個別に備える構成であってもよい。
【００１５】
一実施形態では、マスクパターンの位置ずれによるタイミングの悪化が抑制されるセルの配置方向やセルの種類の変更を行なうことにより、最適化時の余分な遅延マージンを不要とする。このため、タイミング制約を満たすために、必要以上の高駆動なセルやホールド調整用バッファを削減することを可能とする。加えて、マスクパターンの位置ずれによる遅延を適切に扱えるため、異なるマスクから作られる図形同士の距離を大きく取る必要はなく、チップ面積の増大を防ぐことを可能にする。
以上、図１Ａを参照して、一実施形態の概略を説明した。以降、各実施形態について図面を参照して説明する。
【００１６】
実施形態１．
＊  実施形態１の構成
図１Ｂは、一実施形態に係る半導体集積回路のレイアウト設計装置の構成例を示すブロック図である。レイアウト設計装置１００は、遅延ライブラリ格納部２０と、修正前レイアウトデータ格納部２１と、遅延検証部２２と、修正後レイアウトデータ格納部２６と、セル配置調整部３０とを備える。図１Ａと同じ符号の構成要素は同様であるため適宜説明を省略する。
修正前レイアウトデータ格納部２１は、修正前の半導体集積回路のレイアウトデータ（以降適宜、「半導体集積回路のレイアウトデータ」を「ＬＳＩレイアウトデータ」ともいう）を格納する記憶領域である。実施形態１では、セルベースのレイアウトデータを対象とすることを前提とする。
【００１７】
遅延検証部２２は、図１Ａの遅延検証部１５と同様であり、ＬＳＩレイアウトデータと遅延ライブラリを読み込んで、遅延検証を行う。具体的には、遅延検証部２２は、修正前レイアウトデータ格納部２１からＬＳＩレイアウトデータを、遅延ライブラリ格納部２０から遅延ライブラリを読み出し、読み出したＬＳＩレイアウトデータと、遅延ライブラリ（遅延値及び遅延差分）とを用いて、タイミング違反パスを抽出して検証結果を出力する。遅延検証部２２は、位置ずれが無い場合の遅延量と複数の方向のすべての遅延量とのうちの少なくとも一つがタイミング制約を満たさない場合には、タイミング違反パスであると判定する。
【００１８】
セル配置調整部３０は、図１Ａのセル配置調整部１７と同様である。遅延検証部２２から検証結果を受け、遅延検証部２２が抽出したタイミング違反パスについて、タイミング制約に違反する程度を小さくするセルの配置方向を変更する。このとき、セル配置調整部３０は、マスクパターンの位置ずれが無い場合と位置ずれが生じる場合の複数の方向のすべてにおいて、タイミング制約に違反する程度を小さくするようにセルの配置方向を変更する。図１Ｂの構成例では、セル配置調整部３０は、第１セル検索部２３と、第２セル検索部２４と、変更部（セル配置方向変更部）２５とから構成される例を示す。
【００１９】
第１セル検索部２３は、遅延検証部２２から出力される検証結果を使用して、セルの配置向きを左右に反転させること（左右反転の配置向き変更）でタイミング改善ができるセルを検索する。
第２セル検索部２４は、セルの配置向きを上下と上下左右とのいずれかに反転させること（上下反転と上下左右反転の配置向き変更）でタイミング改善できるセルを検索する。
変更部２５は、第１セル検索部２３及び第２セル検索部２４により配置向きの変更を行うことが決まったセルの配置向きを変更する。
修正後レイアウトデータ格納部２６は、配置向き変更後の結果（修正後の半導体集積回路のレイアウトデータ）を格納する記憶領域である。
【００２０】
なお、図１Ｂでは明示していないが、レイアウト設計装置１００は、修正前レイアウトデータ格納部２１と、遅延ライブラリ格納部２０と、修正後レイアウトデータ格納部２６とを含む記憶領域を備える。記憶領域は、不揮発性メモリ、揮発性メモリ等の複数種類の記録媒体から構成され、使用用途によって適宜使い分けることを前提とする。
加えて、レイアウト設計装置１００の各構成要素は、処理を実行するにあたって、記憶領域内の任意の領域を用いて情報の受け渡しを実施することができる。例えば、遅延検証部２２は、検証結果を任意の記憶領域に格納し、第１セル検索部２３と第２セル検索部２４とは、記憶領域に格納された検証結果を読み込むことによって取得することができる。第１セル検索部２３は、配置方向を変更するセルの情報を記憶領域に格納することによって、第２セル検索部２４に配置方向を変更すると決定したセルの情報を通知することができる。また、第１セル検索部２３と第２セル検索部２４とは、配置方向を変更するセルの情報を記憶領域に格納し、変更部２５は、記憶領域に格納されたセルの情報を読み込むことによって取得することができる。
【００２１】
図２は、遅延ライブラリの一例を示す図であり、製造段階においてマスクパターンの位置ずれがない場合の遅延値と、製造段階において生じるマスクパターンの位置ずれの方向に応じた遅延差分を格納した遅延情報を図示したものである。図２では、マスクパターンの位置ずれが無い場合の遅延値と、上方向と下方向と左方向と右方向と左上方向と左下方向と右下方向と右上方向との８方向のマスクパターンの位置ずれが生じた場合における、マスクパターンの位置ずれが無い場合の遅延値からの遅延差分を格納する。以降の説明では、マスクパターンの位置ずれが無い場合の遅延値を、「基準遅延値」ということもある。
なお、図２では、１つの遅延値と、８つの遅延差分とから構成される遅延ライブラリを示しているが、この構成に限られることはない。これについては他の実施形態で説明する。
【００２２】
＊  実施形態１の動作又は製造方法等
実施形態１の動作を図３Ａ〜図３Ｄのフローチャートを用いて説明する。図３Ａは、実施形態１の半導体集積回路のレイアウト設計方法の動作例の概略を示すフローチャートである。図３Ｂは、実施形態１の半導体集積回路のレイアウト設計方法において、遅延検証の動作例を示すフローチャートである。図３Ｃは、実施形態１の半導体集積回路のレイアウト設計方法において、左右反転の配置向き変更を行うセルを検索する動作例を示すフローチャートである。図３Ｄは、実施形態１の半導体集積回路のレイアウト設計方法において、上下反転と上下左右反転とのいずれかの配置向き変更を行うセルを検索する動作例を示すフローチャートである。
本実施形態のレイアウト設計方法は、半導体集積回路の最適化を実施する前の時点において適用する。
【００２３】
図３Ａに示すように、レイアウト設計方法では、まず、遅延検証部２２が、ＬＳＩレイアウトデータと遅延ライブラリとを用いて、遅延検証を実施して検証結果を出力する（ステップＳ１１０、遅延検証処理）。遅延検証部２２は、タイミング違反パスを抽出した場合には、第１セル検索部２３へタイミング違反パスの存在を通知する（ステップＳ１１２、ＹＥＳ）。一方、タイミング違反パスを検出しない場合には、処理を終了させる（ステップＳ１１２、ＮＯ）。第１セル検索部２３は、遅延検証部２２からタイミング違反パスの存在の通知を受けると、検証結果と遅延ライブラリを用いて、左右反転の配置方向を変更するセルを検出する（ステップＳ１２０、第１セル検索処理）。
第１セル検索部２３は、タイミング違反が全て解消し、タイミング違反パスが存在しなくなると、変更部２５へ配置方向を変更するセルの検索が終了したことを通知する（ステップＳ１２２、ＮＯ）。一方、セルの配置方向を左右反転することによってタイミング違反が解消せずに、タイミング違反パスが存在する場合には、第２セル検索部２４へタイミング違反パスの存在を通知する（ステップＳ１２２、ＹＥＳ）。
【００２４】
第２セル検索部２４は、第１セル検索部２３からタイミング違反パスの存在の通知を受けると、検証結果と遅延ライブラリを用いて、上下反転及び上下左右反転の配置方向を変更するセルを検出する（ステップＳ１３０、第２セル検索処理）。
変更部２５は、第１セル検索部２３または第２セル検索部２４から処理の終了の通知を受けると、第１セル検索部２３と第２セル検索部２４とによって検索されたセルの配置方向の変更を実行する（ステップＳ１４０）。すべての処理が終了すると、通常の最適化を実施する。
図３Ａでは、各構成要素間で次の処理の実施を通知・指示する動作を説明したが、これに限られるわけではない。例えば、図１Ｂに示すレイアウト設計装置１００は、各構成要素を制御する制御部を備え、制御部が各構成要素の処理結果を受け、処理結果に応じて各構成要素間の処理実行の要否を判断するように構成してもよい。
【００２５】
続いて、図３Ｂ〜図３Ｄを参照して、遅延検証（ステップＳ１１０）、左右反転の配置方向を変更するセル検出（ステップＳ１２０）、上下反転及び上下左右反転の配置方向を変更するセル検出（ステップＳ１３０）の各処理の詳細動作を説明する。
まず、遅延検証部２２は、修正前レイアウトデータ格納部２１から読み出したレイアウトデータに基づいて、配線の抵抗、容量及びインダクタンスの抽出（LPE : layout parasitic extraction）とタイミングパスの抽出を行う（ステップＳ１１１、ステップＳ１１２）。そして、遅延検証部２２は、タイミングパス上のセルの配置方向を検出する（ステップＳ１１３）。次に、遅延検証部２２は、ステップＳ１１３で検出したセルの配置方向と製造上のマスクパターンの位置ずれの方向に応じた遅延差分を格納した遅延ライブラリを参照する（ステップＳ１１４）。遅延検証部２２は、マスクパターンの位置ずれが無い場合と８方向それぞれにマスクパターンの位置ずれが発生した場合についての、９回の遅延計算と静的タイミング検証とを実施し、検証結果を出力する（ステップＳ１１５）。その際、マスクパターンの位置ずれが無い場合については、遅延検証部２２は、マスクパターンの位置ずれが無い場合の遅延値を使用しての遅延計算と静的タイミング検証とを実施する。一方、各８方向のマスクパターンの位置ずれが生じた場合については、遅延検証部２２は、マスクパターンの位置ずれが無い場合の遅延値にマスクパターンの位置ずれの方向に対応した遅延差分を加算した遅延値を用いて、遅延計算と静的タイミング検証とを実施する。検証結果には、タイミング違反パスの有無、タイミング違反パスの具体的な情報等が含まれる。
【００２６】
次に、図３Ｃを参照して、左右反転の配置方向を変更するセル検索処理（Ｓ１２０）の詳細動作を説明する。この処理は、遅延検証部２２が実施したタイミング検証（図３ＢのステップＳ１１１〜Ｓ１１５）において、タイミング違反となった各パスのタイミングを、セル配置方向の左右反転により改善するステップである。第１セル検索部２３は、処理の開始にあたって、遅延検証部２２が抽出したタイミング違反パスを含む検証結果を取得する。このとき、第１セル検索部２３は、セル検索処理に必要な他の情報、例えば、タイミング違反パスの構成、パスに含まれるセルの配置方向、タイミング制約等の情報も取得する。情報の受け渡しには、任意の記憶領域（例えば、メインメモリやキャシュメモリなどの揮発性メモリ）が利用される。
第１セル検索部２３は、まず、タイミング違反が発生しているパスにおいて、最も違反量が大きいマスクパターンの位置ずれの方向を検出する（ステップＳ１２１）。以降の説明では、第１セル検索部２３が検出した最も違反量が大きいマスクパターンの位置ずれ方向を「方向Ａ」と呼ぶものとする。加えて、方向Ａに対し左右反転となる方向を「方向Ｂ」と呼ぶものとする。
【００２７】
第１セル検索部２３は、タイミング改善対象のパス上のセルの配置向きを左右反転させることで、タイミング改善するものが有るかを検索する（ステップＳ１２２）。具体的には、第１セル検索部２３は、タイミング改善対象のパス上のセルの方向Ａの遅延差分と、方向Ｂの遅延差分とから、左右反転した場合のタイミング余裕度の改善量（タイミング改善量）を求める。ここで、タイミング改善対象となっているパスの全てのセルで左右反転による改善が無い場合には（ステップＳ１２２、ＮＯ）、ステップＳ１２９へ、改善するセルが有る場合には（ステップＳ１２２、ＹＥＳ）、ステップＳ１２３へ進む。以降の説明では、「タイミング余裕度」を「スラック（Ｓｌａｃｋ）値」を用いて判定する場合を一例として説明する。
スラック値は、タイミング制約に対する余裕値である。スラック値が正であればタイミング制約に対して余裕がある（適合している）ことを示し、負であればタイミング制約を割り込んでいる（適合していない）こと示す。第１セル検索部２３は、タイミング制約に違反する程度を小さくするようなセルの配置方向を検索する。
ステップＳ１２３では、第１セル検索部２３は、Ｓ１２２で求めた改善量が最も大きいセルに着目する（以降適宜、「改善量が最も大きいセル」を、「着目セル」とも称す）。改善量が最も大きいセルを左右反転させた場合、タイミング改善対象となっているパスのタイミングは改善するが、そのセルを経由する他のパスは必ずしも改善するとは限らない。このため、次以降のステップで他のパスへの影響の確認を行う。
【００２８】
第１セル検索部２３は、ステップＳ１２３で着目した、改善量が最も大きいセルを経由する全てのパスにおける各方向のタイミング余裕度（スラック値）を検討する（ステップＳ１２４）。具体的には、第１セル検索部２３は、全てのパスにおける９方向のタイミング余裕度のうち、左右反転により遅延差分の値が変わる可能性が有る、左上、左、左下、右上、右、右下の６方向のスラック値を算出する。スラック値を算出する場合には、第１セル検索部２３は、左右反転したとして参照先を変更した後のセルの遅延を使用してスラック値を求める。
ここで、ある向きにおいて左右反転前には正の値（タイミングを満たす）だったスラック値が、左右反転後に負の値（タイミング違反）になる場合や、左右反転前に元々負だったスラック値が、さらに悪化する場合が生じる。このような場合には、タイミング改善対象となっているパス以外のパスにおけるタイミングの悪化を避けるため、着目セルの配置方向の左右反転は実施しないようにする。そのため、第１セル検索部２３は、着目セルを着目対象から外した上でステップＳ１２２へ戻り、以降ステップＳ１２５まで同様に、次に改善が大きいセルに着目して、その着目セルが経由するパスのスラック変動を確認する。
【００２９】
次に、第１セル検索部２３は、着目セルを経由するパスにおいて、左右反転後の遅延を用いたタイミング検証において、新たなタイミング違反や、元のタイミング違反がより悪くなるものが無かった場合には、左右反転がタイミング改善に有効であると判断する（ステップＳ１２５）。
第１セル検索部２３は、ステップＳ１２５において左右反転がタイミング改善に有効と判断したセルの左右反転を確定する（ステップＳ１２６）。左右反転を確定したセルは、その後のステップＳ１２２における左右反転の試行の対象から外す。このとき、第1セル検索部２３は、左右反転を確定したセルの情報を配置方向変更セル情報として任意の記憶領域に保持する。配置方向変更セル情報は、セルを特定する識別子、現在のセルの配置方向、変更する配置方向（例えば、左右反転、上下反転、上下左右反転）などを含む。
【００３０】
次に、第１セル検索部２３は、タイミング改善対象となっているパスに含まれる１つまたは複数のセルの左右反転によって９方向のスラック値がいずれも正の値となるか否かを判定する（ステップＳ１２７）。言い換えると、ステップＳ１２７では、パスにおいてマスクパターンの位置ずれが９方向で生じた場合にも、タイミング制約を満たしているか否かを判定する。
９方向のスラック値がいずれも正の値となった場合には（ステップＳ１２７、ＹＥＳ）、第１セル検索部２３は、これ以上のパス上のセルの左右反転試行はやめ、ステップＳ１２９へ移動する。これにより、必要以上の回路変更を抑制する。このとき、第１セル検索部２３は、改善したタイミング違反パスの情報を検証結果から削除して検証結果を更新する。一方、９方向のスラック値のうち、負の値のものが１つでも有る場合には（ステップＳ１２７、ＮＯ）、第１セル検索部２３は、次にタイミング改善の大きいセルに移動し同様の解析を行うため、ステップＳ１２８へ移動する。
【００３１】
第１セル検索部２３は、タイミング改善対象となっているパスにおいてまだ左右反転の試行を行っていないセルの有無を判断する（ステップＳ１２８）。タイミング改善対象となっているパス上の全セルの試行が終わっていない場合には（ステップＳ１２８、ＮＯ）、ステップＳ１２１へ移動する。この時、すでに左右反転を確定したセルが有るため、最もタイミング違反の大きい方向Ａが別の向きへ変更になる可能性が有る。このため、ステップＳ１２１において再度違反の大きい方向の検出を行う。
タイミング改善対象となっているパス上の全セルの試行が終わっている場合には（ステップＳ１２８、ＹＥＳ）、第１セル検索部２３は、検証結果においてタイミング違反と判定されている全パスの試行が完了したどうかの判断する（ステップＳ１２９）。全パスの試行が終わっていない場合には（ステップＳ１２９、ＮＯ）、第１セル検索部２３は、ステップＳ１２１の処理から繰り返す。一方、全パスの試行が終わっている場合には（ステップＳ１２９、ＹＥＳ）、タイミング違反パスがまだ存在するか否かの判断（図３ＡのステップＳ１２２）に移る。
【００３２】
続いて、図３Ｄを参照して、上下反転及び上下左右反転の配置方向を変更するセル検出（ステップＳ１３０）の各処理の詳細動作を説明する。この処理は、上下反転および上下左右反転によりタイミングを改善するステップである。第２セル検索部２４は、処理の開始にあたって、第１セル検索部２３によって更新された検証結果を取得する。このとき、第２セル検索部２４は、セル検索処理に必要な他の情報、例えば、タイミング違反パスの構成、パスに含まれるセルの配置方向、タイミング制約等の情報も取得する。
ステップＳ１３１からステップＳ１３９までは、基本的にステップＳ１２１からステップＳ１２９までの処理と同様である。ただし、ステップＳ１２１からステップＳ１２９までが左右反転の試行だったのに対し、ステップＳ１３１からステップＳ１３９まででは、上下反転と上下左右反転の試行に変わる。具体的には、ステップＳ１３２において、セルの上下反転、及び、上下左右反転を試行し、ステップＳ１３３では、試行したセルの向き変更のうちから着目セルを抽出する。そして、ステップＳ１３６において、抽出したセルの向きの変更を確定する。加えて、セルの向きを変更した場合のスラック値確認ステップＳ１３４において、対象とするマスクパターンの位置ずれの方向が全９方向に変わる。
第２セル検索部２４は、第１セル検索部２３と同様に、上下反転または上下左右反転を確定したセルの情報を配置方向変更セル情報として任意の記憶領域に保持する（ステップＳ１３６）。加えて、第２セル検索部２４は、タイミング違反パスがタイミング制約を満たすことになった場合には、取得した検証結果を更新する（ステップＳ１３７、ＹＥＳ）。
【００３３】
上下反転及び上下左右反転の配置方向を変更するセル検出（ステップＳ１３０）が終了すると、変更部２５は、ステップＳ１２６とステップＳ１３６で確定したセルの向きの変更を実際のレイアウトに反映する（図３Ａ、ステップＳ１４０）。具体的には、変更部２５は、第１セル検索部２３及び／または第２セル検索部２４が生成した配置方向セル情報を取得し、第１セル検索部２３及び第２セル検索部２４が配置方向の変更を決定したセルについて、レイアウトデータを変更し、修正後のレイアウトデータを修正後レイアウトデータ格納部２６へ格納する。この時、上下反転を伴うセルの向き変更は、上下いずれかのＲＯＷへの移動が発生し、元々その場所にあったセルとの重なってしまう場合が有る。このため、変更部２５は、配置位置の微調整を行うことでセルの重なりを解消する処理を施す。
この後は、通常の最適化を実施する。なお、図３Ａ〜図３Ｄに示したステップＳ１１０からＳ１４０の処理は、通常の最適化後に実施することも可能である。
【００３４】
配置方向と検証するマスクパターンの位置ずれの方向により、遅延差分の参照先が変わる例を図４Ａ、４Ｂに示す。図４Ａおよび図４Ｂは、チップ内に、反転せずに配置されたセル４１と、左右反転の向きに配置されたセル４２と、上下左右反転の向きに配置されたセル４３と、上下反転の向きに配置されたセル４４とに着目した例である。なお、図４Ａおよび図４Ｂでは、セル４１の配置方向を反転無し（向きの変更無し）として表す例を示しているが、反転無しとするセルの配置方向はこれに限られるわけではない。
図４Ａは、拡散層のマスクパターンの位置ずれが左上方向の場合に参照する遅延差分の対応を表したものである。反転せずに配置されたセル４１の配置向きを反転無しの向きと定義する。遅延ライブラリは、製造上のマスクパターンの位置ずれの方向に応じた遅延差分を格納する。このとき、遅延ライブラリは、反転無しの向きを基準に作成される。
マスクパターンの位置ずれの方向が左上の場合には、反転せずに配置されたセル４１が参照する遅延差分は、製造上のマスクパターンの位置ずれの方向に応じた遅延差分を格納した遅延ライブラリのうち左上方向の位置ずれのもの（左上ずれの遅延差分）となる。セル４２は、セル４１に対し左右反転した向きのセルであり、マスクパターンの位置ずれの方向が左上の場合、セル４２が参照する遅延差分は、セル４１が参照する左上方向を左右反転させた、右上の位置ずれもの（右上ずれの遅延差分）となる。セル４３は、セル４１に対し上下左右反転した向きのセルであり、参照する遅延差分は、セル４１が参照する左上方向を上下左右反転させた、右下方向の位置ずれのもの（右下ずれの遅延差分）となる。セル４４は、セル４１に対し上下反転した向きのセルであり、参照する遅延差分は、セル４１が参照する左上方向を上下反転させた、左下方向の位置ずれのもの（左下ずれ遅延差分）となる。
【００３５】
図４Ｂは、拡散層のマスクパターンの位置ずれが下方向の場合に参照する遅延差分の対応を表したものである。
マスクパターンの位置ずれの方向が下の場合には、反転せずに配置されたセル４１が参照する遅延差分は、製造上のマスクパターンの位置ずれの方向に応じた遅延差分を格納した遅延ライブラリのうち下方向の位置ずれのもの（下ずれの遅延差分）となる。セル４２は、セル４１に対し左右反転した向きのセルであり、マスクパターンの位置ずれの方向が下の場合、参照する遅延差分は、セル４１が参照する下方向を左右反転させた、下方向の位置ずれのもの（下ずれの遅延差分）となる。セル４３は、セル４１に対し上下左右反転した向きのセルであり、参照する遅延差分は、セル４１が参照する下方向を上下左右反転させた、上方向の位置ずれのもの（上ずれの遅延差分）となる。セル４４は、セル４１に対し上下反転した向きのセルであり、参照する遅延差分は、セル４１が参照する下方向を上下反転させた、上方向の位置ずれのもの（上ずれの遅延差分）となる。
【００３６】
図５Ａ〜図５Ｃ３は、本実施形態が扱うマスクパターンの位置ずれを説明する図である。図５Ａは、設計上のマスクパターンの一例であり、拡散層５０１、ゲート５０２、コンタクト５０３の図形に着目した模式図である。拡散層５０１とゲート５０２が重なる図形がトランジスタ５０４であり、トランジスタ５０４の縦方向の長さであるトランジスタのＷサイズ５０５が設計上のトランジスタのＷサイズ（ゲート幅）である。
【００３７】
図５Ｂは、マスクパターンの位置ずれが無い場合の製造後のレイアウトパターンの一例である（製造後の位置ずれなし）。図５Ａの拡散層５０１の逆Ｌ字型の図形は、製造後においては図５Ｂの拡散層５１１のように光学効果で丸みを帯びたものとなる。この例では、拡散層が丸みを帯びたことによるトランジスタ５１４のＷサイズ５１５は図５Ａのトランジスタ５０４のＷサイズ５０５と同等とする。図５Ａのゲート５０２は、製造後においては図５Ｂのゲート５１２のように光学効果で丸みを帯びたものとなる。図５Ａのコンタクト５０３は、製造後においては図５Ｂのコンタクト５１３のように光学効果で丸みを帯びたものとなる。
【００３８】
図５Ｃ１は、拡散層に左方向のマスクパターンの位置ずれが有る場合（製造後の左方向の位置ずれあり）の製造後のレイアウトパターンの一例である。拡散層５２１について、実線はマスクパターンの位置ずれが生じた製造後の領域を示し、点線は、位置ずれが無い場合の製造後の領域を示す。図５Ｃ２、図５Ｃ３の拡散層５３１、５４１についても同様である。トランジスタ５２４のＷサイズ５２５は、丸みを帯びた部分の拡散層５２１の影響により、マスクパターンの位置ずれが無い場合のトランジスタ５１４のＷサイズ５１５よりも大きくなり、遅延の変動が発生する。
【００３９】
図５Ｃ２は、拡散層に右方向のマスクパターンの位置ずれが有る場合（製造後の右方向の位置ずれあり）の製造後のレイアウトパターンの一例である。この場合、丸みを帯びた拡散層５３１の影響は小さく、トランジスタ５３４のＷサイズ５３５は、マスクパターンの位置ずれが無い場合のトランジスタ５１４のＷサイズ５１５と同等である。
図５Ｃ３は、拡散層に下方向のマスクパターンの位置ずれが有る場合（製造後の下方向の位置ずれあり）の製造後のレイアウトパターンの一例である。この場合も丸みを帯びた拡散層５４１の影響は小さく、トランジスタ５４４のＷサイズ５４５は、マスクパターンの位置ずれが無い場合のトランジスタ５１４のＷサイズ５１５と同等である。
【００４０】
製造段階のマスクパターンの位置ずれは、Ｘ、Ｙ方向および回転方向に分解でき、Ｘ、Ｙ方向のマスクパターンの位置ずれに比較すると回転方向のマスクパターンの位置ずれの影響は十分に小さいため、影響の大きいＸ、Ｙ方向のマスクパターンの位置ずれによる遅延変動に対処するのが効果的である。
Ｘ、Ｙ方向のマスクパターンの位置ずれが生じた場合、チップ上に存在する各セル内のマスクパターンの位置ずれは、どのセルにおいてもほぼ同一方向と考えられる。
【００４１】
＊  実施形態１のメカニズムおよび効果
ここで、提案する方法の具体例を示して、効果を説明する。図６は、タイミング改善対象とするパスの一例を示す構成図である。パスは、クロック信号６０に同期したフリップフロップ６１を起点として、バッファ６２およびバッファ６３を経由してクロック信号６０に同期したフリップフロップ６４に至る経路を表す。フリップフロップ６１の出力端子を６５、バッファ６２の出力端子を６６、フリップフロップ６４の入力端子６７とする。
バッファ６２とバッファ６３は、マスクパターンの位置ずれが無い時の遅延が４０ｐｓの同一の構造のバッファであり、図７に示すように左上、左、左下方向のマスクパターンの位置ずれが生じた際に遅延が２０ｐｓ、上、下、右上、右、右下方向のマスクパターンの位置ずれとずれが無い場合には遅延が４０ｐｓであるバッファとする。加えて、説明を容易にするため、フリップフロップ６１は、遅延が２０ｐｓであり、マスクパターンの位置ずれが生じないことを前提とする。
【００４２】
また、バッファ６２およびバッファ６３のレイアウト上の配置方向は、図８Ａに示すように、バッファ６２とバッファ６３共に上下、左右とも反転の無い向きになっているとする。この場合、バッファ６２、バッファ６３とも想定するマスクパターンの位置ずれと同じマスクパターンの位置ずれの方向の遅延を参照する。図８Ｂ１〜図８Ｂ３に示す、図６に示すパスのタイミングチャートを参照して、本実施形態で提案する方法の効果を説明する。
図８Ｂ１は従来手法のレイアウト設計方法を用いた場合のタイミングチャートである。パス遅延は、フリップフロップ６１の遅延８１の２０ｐｓとバッファ６２の遅延８２の２０ｐｓとバッファ６３の遅延８３の２０ｐｓの和で６０ｐｓとなり、フリップフロップ６４のホールド制約８０の７０ｐｓに違反する。従来のタイミング検証では、バッファ６２、６３の遅延については、推定される遅延が複数ある場合には最も小さい値（２０ｐｓ）を用いて算出することになる。そのため、最適化時にホールド制約８０を満たすためのバッファをタイミングパスに追加するなどのレイアウト修正が必要になる。
【００４３】
本実施形態では、各マスクパターンの位置ずれの方向毎のタイミング検証を行い、タイミング違反が大きい方向の確認を行う。
ここで、説明を容易にするため、各マスクパターンの位置ずれの方向の遅延変動は、図６のバッファ６２とバッファ６３において発生すると仮定する。バッファ６２とバッファ６３の遅延は、マスクパターンの位置ずれが無い場合には図７中央の遅延値４０ｐｓである。また、マスクパターンの位置ずれが上、下、右上、右、右下方向の場合にはマスクパターンの位置ずれによる遅延変動が±０ｐｓのため遅延値はマスクパターンの位置ずれが無い場合と同じ４０ｐｓである。さらに、マスクパターンの位置ずれが左上、左、左下方向の場合にはマスクパターンの位置ずれが無い場合の遅延４０ｐｓにマスクパターンの位置ずれによる遅延差分−２０ｐｓを加算して２０ｐｓとなる。
図８Ｂ２は、本実施形態において、マスクパターンの位置ずれが左上、左、左下方向の場合のタイミングチャートである。この時、図６のパス遅延は、フリップフロップ６１の遅延８１の２０ｐｓとバッファ６２の遅延８５の２０ｐｓとバッファ６３の遅延８６の２０ｐｓの和で６０ｐｓとなり、ホールド制約８０の７０ｐｓに違反する。
【００４４】
図８Ｂ３はマスクパターンの位置ずれが無い場合およびマスクパターンの位置ずれが上、下、右上、右、右下方向の場合のタイミングチャートである。この時、図６のパス遅延は、フリップフロップ６１の遅延８１の２０ｐｓとバッファ６２の遅延８８の４０ｐｓとバッファ６３の遅延８９の４０ｐｓの和で１００ｐｓとなり、ホールド制約８０の７０ｐｓを満たす。
本実施形態では、図６に示すパスについて二種類のタイミング検証の結果に基づいてセルの配置方向の変更を検討することが可能になる。この段階は、図３Ａの遅延検証（ステップＳ１１０）が終了した状態である。
【００４５】
次にホールド制約違反となるマスクパターンの位置ずれの方向に対し、タイミングが改善するようにセルの配置方向の変更を行う。図３Ａに示すように、まず左右反転の配置方向を変更するセルを検出する（ステップＳ１２０）。図６に示すパスでは、方向Ａは、左上、左、左下の各方向が設定される。
図９Ａは、図８Ａの配置状態に対して、バッファ６３を左右反転する場合の例である。この時、マスクパターンの位置ずれの方向毎のタイミング検証の際にバッファ６３は左右反対の遅延差分を使用するため、図７の表を左右反転させた値として使用する。
図９Ｂ１は、マスクパターンの位置ずれが左、左上、左下方向の場合のタイミングチャートである。この時、図６のパス遅延は、フリップフロップ６１の遅延８１の２０ｐｓとバッファ６２の遅延９１の２０ｐｓとバッファ６２の遅延９２の４０ｐｓの和で８０ｐｓとなり、ホールド制約８０の７０ｐｓを満たす。
図９Ｂ２は、マスクパターンの位置ずれが右、右上、右下方向の場合のタイミングチャートである。この時、図６のパス遅延は、フリップフロップ６１の遅延８１の２０ｐｓとバッファ６２の遅延９３の４０ｐｓとバッファ６３の遅延９４の２０ｐｓの和で８０ｐｓとなり、ホールド制約８０の７０ｐｓを満たす。
図９Ｂ３は、マスクパターンの位置ずれが無い場合およびマスクパターンの位置ずれが上、下方向の場合のタイミングチャートである。この時、図６のパス遅延は、フリップフロップ６１の遅延８１の２０ｐｓとバッファ６２の遅延９５の４０ｐｓとバッファ６３の遅延９６の４０ｐｓの和で１００ｐｓとなり、ホールド制約８０の７０ｐｓを満たす。
【００４６】
本実施形態により、左上、左、左下、上、下、右上、右、右下の方向にマスクパターンの位置ずれが生じた場合、およびマスクパターンの位置ずれが生じない場合においてホールド制約を満たすようになり、最適化時にホールド調整用バッファが不要となる。
本実施形態では、図３Ａの左右反転の向き変更を行うセル検索（ステップＳ１２０、図３Ｃ）までの検索処理により、バッファ６３の左右反転のみでタイミング制約を満たすことができた。しかし、もしそれだけではタイミング制約を満たせない場合には、バッファ６２の左右反転の試行や図３Ａの上下反転と上下左右反転の配置向き変更を行うセル検索（ステップＳ１３０、図３Ｄ）の処理により、左右反転の向き変更を行うセル検索部２３と同様の方法でバッファ６２およびバッファ６３の上下反転、上下左右反転によるタイミング改善を行う。
【００４７】
本実施形態では、マスクパターンの位置ずれが発生した際は、どのセルも同一方向にマスクパターンの位置ずれが発生することを利用して、過剰な設計上のマージンを排除することを特徴としている。チップ内で同一方向となるマスクパターンの位置ずれの方向とセルの配置方向を考慮した遅延計算をすることにより、セルのレイアウト的なマージンやタイミング検証時の過剰なマージンを排除し、余分なチップ面積の増大を防ぐことが可能となる。
【００４８】
実施形態２．
＊  実施形態２の構成
図１０は、実施形態２に係る半導体集積回路のレイアウト設計装置の構成例を示すブロック図であり、図１０の構成要素のうち、図１Ｂと同じ符号２０から２５の構成要素は、実施形態１と同様である。実施形態１と異なる点は、セル配置調整部３０の変更部２５の後段に、第３セル検索部２７とセル置き換え部２８とを備える点である。
第３セル検索部（置換セル検索部）２７は、拡散層のマスクパターンの位置ずれによる遅延変動の小さいセルに置き換えるセルが存在するか否かの検索を行う。具体的には、第３セル検索部２７は、変更部２５でセルの配置向きを変更してもタイミング違反が解消できない場合に、マスクパターンの位置ずれによる遅延変動の小さいセルへ置き換えを行うセルの検索を行う。タイミング違反が解消できないか否かは、第１セル検索部２３と第２セル検索部２４とが更新した後の検証結果に、タイミング違反パスの情報が残っているか否かによって判定する。例えば、第３セル検索部は、複数のセルの形状を保持し、タイミング制約に違反する程度が大きい方向のタイミング制約に違反する程度を小さくするように、セルの形状を選択する。
セル置き換え部２８は、第３セル検索部２７が検索したセルの置き換えを実施する。具体的には、セル検索部２７が検索したセルの置き換えをすることが決まったセルを、マスクパターンの位置ずれによる遅延変動の小さいセルに置き換えることを実施する。セル置き換え部２８は、置き換えたセルの情報を反映したレイアウトデータを生成し、修正後のレイアウトデータを修正後レイアウトデータ格納部２６へ格納する。
修正後レイアウトデータ格納部２６は、セル置き換え後の結果をコンピュータ装置内の記憶領域に格納する。
【００４９】
＊  実施形態２の動作又は製造方法等
左右反転の向き変更を行うセル検索部２３や上下反転、上下左右反転の配置向き変更を行うセル検索部２４では、同一のセルの配置向き変更の検索を行うのに対し、マスクパターンの位置ずれによる遅延変動の小さいセルに置き換えを行うセル検索部２７では、予め用意したマスクパターンの位置ずれによる遅延変動が小さいセルに置き換えた場合にタイミングが改善するかを確認し、タイミング改善する場合にはセル置き換え部２８において置き換えを行う。
【００５０】
＊  実施形態２のメカニズムおよび効果
図１１Ａは設計上のマスクパターンの一例を表し、拡散層３１１とゲート３１２とコンタクト３１３で構成され、拡散層３１１とゲート３１２が重なる部分がトランジスタ３１５でありそのゲード幅は、Ｗサイズ３１６であるものとする。
図１１Ｂは製造後の位置ずれが無い場合（製造後の位置ずれなし）の形状の一例を表し、図１１Ａの各図形が光学効果によりそれぞれ丸みを帯びた拡散層３２１とゲート３２２とコンタクト３２３から成る。
図１１Ｃは、図１１Ｂの製造後の位置ずれが無い場合の状態に対し、拡散層に左方向の位置ずれが発生した場合（製造後の位置ずれあり）の例である。拡散層３３１について、実線はマスクパターンの位置ずれが生じた製造後の領域を示し、点線は、位置ずれが無い場合の製造後の領域を示す。設計上のトランジスタ３３５に対して遅延変動が起きる状態を表しており、トランジスタ３３５のＷサイズ３３６はトランジスタ３１５のＷサイズ３１６よりも大きくなっている。
【００５１】
図１１Ｄは、設計上のマスクパターンの一例を表し、拡散層３４１とゲート３４２とコンタクト３４３で構成される。図１１Ｄの設計上のマスクパターンは、拡散層３４１の逆Ｌ時に窪んだ部分とゲート３４２との距離３４７を、図１１Ａの拡散層３１１の逆Ｌ時に窪んだ部分とゲート３１２との距離３１７よりも大きく取った点が図１１Ａのマスクパターンと異なる。トランジスタ３４５のＷサイズ３４６は図１１Ａのトランジスタ３１５のＷサイズ３１６と同じである。
図１１Ｅは、図１１Ｄの製造後で位置ずれが無い場合（製造後の位置ずれなし）の形状の一例を表し、図１１Ｄの各図形が光学効果によりそれぞれ丸みを帯びた拡散層３５１とゲート３５２とコンタクト３５３から成る。
図１１Ｆは左方向の位置ずれが発生した場合（製造後の位置ずれあり）の形状の一例を表す。拡散層３６１について、実線はマスクパターンの位置ずれが生じた製造後の領域を示し、点線は、位置ずれが無い場合の製造後の領域を示す。図１１Ｆにおいて、トランジスタ３６５のＷサイズ３６６と設計上のＷサイズ３４６との差はほぼ無く、マスクパターンの位置ずれによる変動が図１１Ｃのトランジスタ３３５のＷサイズ３３６と設計上のＷサイズ３１６との差よりも小さくなっている。このように、図１１Ｆに示す製造後のレイアウトパターンは、図１１Ｃに示す製造後のレイアウトパターンに比べ、マスクパターンの位置ずれによる遅延変動が小さいセルであることがわかる。一方で、図１１Ｄ〜図１１Ｆに示すセルは、マスクパターンの位置ずれによる遅延変動が大きいセルに比べてセル面積が大きくなる。
【００５２】
以上説明したように、本実施形態のレイアウト設計方法では、セルの配置向き変更だけではタイミング違反を修正し切れなかったパスに対し、マスクパターンの位置ずれによる遅延変動が小さいセルに置き換える手法を用いる。これにより、最低限のセル面積の増加でタイミング改善を行うことが可能になる。
【００５３】
実施形態３．
上記各実施形態では、遅延ライブラリが、上方向と下方向と左方向と右方向と左上方向と左下方向と右下方向と右上方向との８方向の遅延差分を保持する場合を説明した。しかしながら、これに限られるものではない。
例えば、遅延ライブラリは、遅延差分として、上方向と下方向と左方向と右方向との４方向、または、左上方向と左下方向と右下方向と右上方向との４方向の遅延差分を保持する場合であってもよい。または、８方向をさらに細分化した１６方向の遅延差分を保持していてもよい。
遅延差分の保持数が少ない場合には、タイミング検証の精度の低下を招く一方で、データの保持量と計算量とを削減し処理速度の向上が図れる。一方、遅延差分の保持数が多い場合には、と、データの保持量及び計算量とが多くなり処理速度が遅くなるものの、タイミング検証の精度の向上が図れる。従って、要求される回路設計に応じて、遅延差分の保持数を選択することが好ましい。
【００５４】
さらに、上記各実施形態では、遅延ライブラリが格納する遅延差分の複数の方向全部について、タイミング検証を実施する場合を説明した。しかしながら、遅延ライブラリが格納する遅延差分の複数の方向のうち、タイミング検証を実施する方向を選択してもよい。
例えば、遅延ライブラリが上述した８方向の遅延差分を格納している場合には、例えば、上方向と下方向と左方向と右方向との４方向、または、左上方向と左下方向と右下方向と右上方向との４方向についてタイミング検証を実施することが可能である。
例えば、遅延検証部２２は、マスクパターンの位置ずれを予測する複数の方向に関して、検証する方向の数を選択できるような、利用者とのインターフェースを備えていてもよい。遅延ライブラリ格納部が上述した８方向の遅延差分を含む場合には、（１）８方全部、（２）上方向と下方向と左方向と右方向との４方向、（３）左上方向と左下方向と右下方向と右上方向との４方向、のいずれかを選択することができる。利用者とのインターフェースは、パラメータの入力、任意の記憶領域への利用者によるパラメータの書き込み、パラメータの入力を促す画面表示等により実現できる。
タイミング検証を実施する方向を削減することによって、タイミング検証に要する計算量を削減することが可能になる。このため、設計する回路に要求される精度に応じてタイミング検証する方向の数を柔軟に変更することができる。
これにより、複数のセルを含むブロックでタイミング検証を実施することが可能となり、検証処理に要する時間を短縮することができる。
【００５５】
実施形態４．
上記各実施形態では、遅延ライブラリは、セルについての遅延値と複数の遅延差分とを設定する場合を説明した。しかし、セルに応じた遅延ライブラリに限られず、遅延ライブラリは、複数のセルを含むブロック、例えば、ＩＯ（Input Output）ブロック、ハードマクロブロックに応じた遅延値と複数の遅延差分とを設定する場合であってもよい。
この場合、上記各実施形態において、遅延検証部２２は、レイアウトデータから検証対象となる検証対象パスを抽出したときに、検証対象パスにブロックが含まれる場合には、ブロックに応じた遅延値と前記遅延差分とを含む遅延ライブラリを用いてタイミング違反パスを抽出する。
【００５６】
実施形態５．
上記各実施形態で説明したレイアウト設計手法は、コンピュータ装置によって実現することが可能である。図１２は、レイアウト設計手法を実現するコンピュータ装置の構成例を示すブロック図である。コンピュータ装置６００は、記憶部６１０、ＣＰＵで構成される処理部６２０、及び、入出力部６３０で構成される例を示す。
記憶部６１０は、情報を記憶する記憶媒体（記憶領域）であり、ハードディスクやＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）といった記憶装置で構成される。
処理部６２０は、記憶部６１０に記憶されたレイアウト設計手法を実現するための実行プログラムを読み込んで、実行することによりコンピュータ装置６００の機能を実現する。
入出力部６３０は、コンピュータ装置６００の使用者との入出力インターフェースであり、例えば、キーボードやマウスや、ＬＣＤで構成される。
コンピュータ装置６００は、例えば、パーソナルコンピュータのような一般的な汎用コンピュータである。コンピュータ装置６００は、本実施形態における半導体集積回路のレイアウト設計手法を実現するための実行プログラムやデータを取得し、記憶部６１０へ記録する。実行プログラムやデータは、コンピュータ装置６００の入出力部６３０を介して記憶部６１０に書き込むことができる。あるいは、コンピュータ装置６００がネットワークを介して外部から実行プログラムやデータを取得することも可能である。
コンピュータ装置６００は、上述の構成により、取得した実行プログラムを読み込んでＣＰＵの制御のもとで実行し、本実施形態の半導体集積回路のレイアウト設計手法を実現する。
【００５７】
本実施形態のレイアウト設計手法を実現するプログラムは、少なくとも次の処理をコンピュータに実行させる。（Ａ）半導体集積回路を構成する少なくとも一つのセルについて、マスクパターンの位置ずれが無い場合の遅延値と、マスクパターンの位置ずれが生じると予測される複数の方向に対応する遅延値からの遅延差分とを含む遅延ライブラリを、記憶部６１０に格納する遅延ライブラリ格納処理。（Ｂ）修正前の半導体集積回路のレイアウトデータを、記憶部６１０に格納するレイアウトデータ格納処理。（Ｃ）レイアウトデータと遅延ライブラリとを記憶部６１０から読み出す処理。（Ｄ）レイアウトデータと遅延ライブラリとを用いて、マスクパターンの位置ずれが無い場合と位置ずれが予測される複数の方向との複数の遅延量を算出して、タイミング制約に違反するタイミング違反パスを抽出し、抽出したタイミング違反パスを記憶部６１０へ格納する遅延検証処理。（Ｅ）マスクパターンの位置ずれが無い場合と位置ずれが予測される複数の方向とにおいて、タイミング制約に違反する程度を小さくするように、タイミング違反パスに含まれるセルの中から、配置方向を変更するセルを検索するセル配置調整処理。（Ｆ）配置方向を変更するセルの情報を修正した修正後のレイアウトデータを生成し、記憶部６１０へ格納するレイアウトデータ修正処理。
【００５８】
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
加えて、上記各実施形態で説明した遅延検証部、第１、第２及び第３検索部、変更部、置き換え部の各構成要素は、ソフトウェア（プログラム）で実現する場合に限られるものではない。例えば、ハードウェアとソフトウェアとの組合せにより実現してもよく、ハードウェア、ファームウェア、ソフトウェアのいずれか、あるいは、これらの二つ以上の組合せにより実現してもよい。
【００５９】
以上、本発明者によってなされた発明を実施形態に基づき具体的に説明したが、本発明は前記実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【００６０】
１０、１００、２００  レイアウト設計装置
１１  記憶領域
１５、２２  遅延検証部
１７、３０  セル配置調整部
１３  レイアウトデータ格納部
２０  遅延ライブラリ格納部
２１  修正前レイアウトデータ格納部
２３  第１セル検索部
２４  第２セル検索部
２５  変更部
２６  修正後レイアウトデータ格納部
２７  第３セル検索部
２８  セル置き換え部
４１  反転せずに配置されたセル
４２  左右反転の向きに配置されたセル
４３  上下左右反転の向きに配置されたセル
４４  上下反転の向きに配置されたセル
６０  クロック信号
６１、６４  フリップフロップ
６２、６３  バッファ
６５  フリップフロップ６１の出力端子
６６  バッファ６２の出力端子
６７  フリップフロップ６４の入力端子
８０  フリップフロップ６４のホールド制約
８１  フリップフロップ６１の遅延
８２、８５、８８、９１、９３、９５  バッファ６２の遅延
８３、８６、８９、９２、９４、９６  バッファ６３の遅延
３１１、３２１、３３１、３４１、３５１、３６１、５０１、５１１、５２１、５３１、５４１  拡散層
３１２、３２２、３４２，３５２、５０２、５１２  ゲート
３１３、３２３、３４３、３５３、５０３、５１３  コンタクト
３１５、３３５、３４５、３６５、５０４、５１４、５２４、５３４、５４４  トランジスタ
３１６、３３６、３４６、３６６、５０５、５１５、５２５、５３５、５４５  トランジスタのＷサイズ
３１７、３４７  拡散層とゲートとの距離
６００  コンピュータ装置
６１０  記憶部
６２０  処理部
６３０  入出力部
【図１Ａ】
2013222442.tif 000003
【図１Ｂ】
2013222442.tif 000004
【図２】
2013222442.tif 000005
【図３Ａ】
2013222442.tif 000006
【図３Ｂ】
2013222442.tif 000007
【図３Ｃ】
2013222442.tif 000008
【図３Ｄ】
2013222442.tif 000009
【図４Ａ】
2013222442.tif 000010
【図４Ｂ】
2013222442.tif 000011
【図５Ａ】
2013222442.tif 000012
【図５Ｂ】
2013222442.tif 000013
【図５Ｃ１】
2013222442.tif 000014
【図５Ｃ２】
2013222442.tif 000015
【図５Ｃ３】
2013222442.tif 000016
【図６】
2013222442.tif 000017
【図７】
2013222442.tif 000018
【図８Ａ】
2013222442.tif 000019
【図８Ｂ１】
2013222442.tif 000020
【図８Ｂ２】
2013222442.tif 000021
【図８Ｂ３】
2013222442.tif 000022
【図９Ａ】
2013222442.tif 000023
【図９Ｂ１】
2013222442.tif 000024
【図９Ｂ２】
2013222442.tif 000025
【図９Ｂ３】
2013222442.tif 000026
【図１０】
2013222442.tif 000027
【図１１Ａ】
2013222442.tif 000028
【図１１Ｂ】
2013222442.tif 000029
【図１１Ｃ】
2013222442.tif 000030
【図１１Ｄ】
2013222442.tif 000031
【図１１Ｅ】
2013222442.tif 000032
【図１１Ｆ】
2013222442.tif 000033
【図１２】
2013222442.tif 000034