(57)【要約】【課題】半導体集積回路のレイアウト工程において、信号遅延が必要であるが、バッファ回路等が配置可能な面積として一定値以上、確保できない場合が存在する。そのような場合には、半導体集積回路の信号遅延に関する設計制約を満たすことができない。そのため、信号遅延が必要な箇所を含む領域が小面積であっても、信号遅延に関する設計制約を満たす半導体集積回路の設計が可能な半導体集積回路設計装置、が望まれる。【解決手段】半導体集積回路設計装置は、レイアウト情報に基づき、信号の遅延が必要な遅延回路挿入箇所を特定する遅延回路挿入箇所検索部と、遅延回路挿入箇所を含む所定の領域に、容量値が選択可能なミラー容量を含んで構成される遅延回路を挿入する遅延回路挿入部と、を備える。【選択図】図１
2013164683.tif 000002
【特許請求の範囲】
【請求項１】
レイアウト情報に基づき、信号の遅延が必要な遅延挿入箇所を特定する遅延回路挿入箇所検索部と、
前記遅延挿入箇所を含む所定の領域に、容量値が選択可能なミラー容量を含んで構成される遅延回路を挿入する遅延回路挿入部と、
を備えることを特徴とする半導体集積回路設計装置。
【請求項２】
前記所定の領域の面積に対する、前記所定の領域にレイアウトされた配線が占める面積の占有率を示す配線混雑度を算出する配線混雑度判定部を備え、
前記遅延回路挿入部は、前記配線混雑度が所定の値以下の場合に、前記遅延回路の挿入を行う請求項１の半導体集積回路設計装置。
【請求項３】
前記遅延回路は、
直列接続された複数のインバータ回路と、
前記複数のインバータ回路のうち、少なくともいずれかの入出力端子間に接続された容量素子と、を含み、
前記遅延回路挿入部は、必要な遅延量に応じて、前記容量素子の容量値を選択する請求項１又は２の半導体集積回路設計装置。
【請求項４】
前記容量素子は、同一の配線層又は異なる配線層において並行する配線により形成され、
前記遅延回路挿入部は、必要な遅延量に応じて、前記並行する配線の長さを定める請求項３の半導体集積回路設計装置。
【請求項５】
前記所定の領域の面積に対する、前記所定の領域にレイアウトされた半導体素子が占める面積の占有率を示す配置混雑度を算出する配置混雑度判定部を備え、
前記配線混雑度判定部は、前記配置混雑度が所定の値以下の場合に、前記配線混雑度を算出する請求項２乃至４のいずれか一に記載の半導体集積回路設計装置。
【請求項６】
前記配線混雑度が所定の値以下の場合に、前記所定の領域の面積に対する、前記所定の領域にレイアウトされた半導体素子が占める面積の占有率を示す配置混雑度を算出する配置混雑度判定部を備え、
前記遅延回路挿入部は、前記配置混雑度が所定の値以下の場合に、前記遅延回路の挿入を行う請求項２乃至４のいずれか一に記載の半導体集積回路設計装置。
【請求項７】
レイアウト情報に基づき、信号の遅延が必要な遅延挿入箇所を特定する遅延回路挿入箇所検索工程と、
前記遅延挿入箇所を含む所定の領域に、容量値が選択可能なミラー容量を含んで構成される遅延回路を挿入する遅延回路挿入工程と、
を含むことを特徴とする半導体集積回路設計方法。
【請求項８】
前記所定の領域の面積に対する、前記所定の領域にレイアウトされた配線が占める面積の占有率を示す配線混雑度を算出する配線混雑度判定工程を含み、
前記遅延回路挿入工程は、前記配線混雑度が所定の値以下の場合に、前記遅延回路の挿入を行う請求項７の半導体集積回路設計方法。
【請求項９】
前記遅延回路は、
直列接続された複数のインバータ回路と、
前記複数のインバータ回路のうち、少なくともいずれかの入出力端子間に接続された容量素子と、を含み、
前記遅延回路挿入工程は、必要な遅延量に応じて、前記容量素子の容量値を選択する請求項７又は８の半導体集積回路設計方法。
【請求項１０】
前記容量素子は、同一の配線層又は異なる配線層において並行する配線により形成され、
前記遅延回路挿入工程は、必要な遅延量に応じて、前記並行する配線の長さを定める請求項９の半導体集積回路設計方法。
【請求項１１】
前記所定の領域の面積に対する、前記所定の領域にレイアウトされた半導体素子が占める面積の占有率を示す配置混雑度を算出する配置混雑度判定工程を含み、
前記配線混雑度判定工程は、前記配置混雑度が所定の値以下の場合に、前記配線混雑度を算出する請求項８乃至１０のいずれか一に記載の半導体集積回路設計方法。
【請求項１２】
前記配線混雑度が所定の値以下の場合に、前記所定の領域の面積に対する、前記所定の領域にレイアウトされた半導体素子が占める面積の占有率を示す配置混雑度を算出する配置混雑度判定工程を含み、
前記遅延回路挿入工程は、前記配置混雑度が所定の値以下の場合に、前記遅延回路の挿入を行う請求項８乃至１０のいずれか一に記載の半導体集積回路設計方法。
【請求項１３】
レイアウト情報に基づき、信号の遅延が必要な遅延挿入箇所を特定する遅延回路挿入箇所検索処理と、
前記遅延挿入箇所を含む所定の領域に、容量値が選択可能なミラー容量を含んで構成される遅延回路を挿入する遅延回路挿入処理と、
をコンピュータに実行させ、前記コンピュータを半導体集積回路設計装置として動作させるプログラム。
【請求項１４】
前記所定の領域の面積に対する、前記所定の領域にレイアウトされた配線が占める面積の占有率を示す配線混雑度を算出する配線混雑度判定処理を実行し、
前記遅延回路挿入処理は、前記配線混雑度が所定の値以下の場合に、前記遅延回路の挿入を行う請求項１３のプログラム。
【請求項１５】
前記遅延回路は、
直列接続された複数のインバータ回路と、
前記複数のインバータ回路のうち、少なくともいずれかの入出力端子間に接続された容量素子と、を実行し、
前記遅延回路挿入処理は、必要な遅延量に応じて、前記容量素子の容量値を選択する請求項１３又は１４のプログラム。
【請求項１６】
前記容量素子は、同一の配線層又は異なる配線層において並行する配線により形成され、
前記遅延回路挿入処理は、必要な遅延量に応じて、前記並行する配線の長さを定める請求項１５のプログラム。
【請求項１７】
前記所定の領域の面積に対する、前記所定の領域にレイアウトされた半導体素子が占める面積の占有率を示す配置混雑度を算出する配置混雑度判定処理を実行し、
前記配線混雑度判定処理は、前記配置混雑度が所定の値以下の場合に、前記配線混雑度を算出する請求項１４乃至１６のいずれか一に記載のプログラム。
【請求項１８】
前記配線混雑度が所定の値以下の場合に、前記所定の領域の面積に対する、前記所定の領域にレイアウトされた半導体素子が占める面積の占有率を示す配置混雑度を算出する配置混雑度判定処理を実行し、
前記遅延回路挿入処理は、前記配置混雑度が所定の値以下の場合に、前記遅延回路の挿入を行う請求項１４乃至１６のいずれか一に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路設計装置、半導体集積回路設計方法及びプログラムに関する。特に、半導体集積回路のレイアウト設計を行う半導体集積回路設計装置、半導体集積回路設計方法及びプログラムに関する。
【背景技術】
【０００２】
年々、半導体集積回路の回路規模は増大し、そのクロック周波数は上昇の一途である。そのため、半導体集積回路の内部に含まれるロジック回路間のタイミング設計が困難になりつつある。とりわけ、クロックが発行された後に出力されたデータをより確実に伝達するために規定されるホールド時間に関する設計が困難になる傾向にある。
【０００３】
ここで、半導体集積回路の回路設計工程やレイアウト設計工程において、ロジック回路間の信号遅延が、予め定められた設計制約を満足するか否かの確認が行われる。このような設計制約を予め定めることで、データの伝達がより確実に行われるようにロジック回路間の信号遅延は管理される。
【０００４】
さらに、半導体集積回路のレイアウト設計工程等において、信号遅延に関する設計制約を満たせていない箇所の存在が判明すると、そのような箇所に対してバッファ回路等の遅延回路を挿入することが行われる。例えば、ある回路におけるホールド時間が設計制約を満たしていない場合には、設計制約を満たすために要求される遅延量を算出し、算出した遅延量に適合した遅延回路をロジック回路間に挿入することでタイミングマージンを改善する。
【０００５】
特許文献１に、半導体集積回路のレイアウト設計において、基板上における配置混雑度の上昇及び配線性の低下を防止しつつ、バッファ回路を挿入する技術が開示されている。特許文献１が開示するバッファ回路挿入方法は、所定の領域において、ロジック回路や半導体素子が配置可能な割合を配置混雑度として算出している。この配置混雑度に対して上限値を設け、配置混雑度が上限値よりも低い領域にバッファ回路を挿入することで、レイアウトが局所的に混雑することを防止している。
【０００６】
また、特許文献２において、フリップフロップ間の配線容量を変更することで、遅延時間の変更が可能であることが開示されている。さらに、特許文献３において、インバータ回路の入出力端子に容量を付けたミラー容量が開示されている。さらにまた、特許文献４において、電気的なノイズ低減を目的とした容量の容量値を大きく設定し、遅延に関する制約を満たせない場合には、順次、その容量値を低減させる技術が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１０−１４６０４７号公報
【特許文献２】特開２００３−３３８５４６号公報
【特許文献３】特開平０３−０４９３１５号公報
【特許文献４】特許第４７３４９８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
なお、上記先行技術文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明の観点からなされたものである。
【０００９】
特許文献１が開示する技術では、所定の領域においてどの程度、半導体素子等が配置されているかの割合を示す配置混雑度を算出している。この配置混雑度が予め定めた上限値以下であれば、所定の領域にバッファ回路を挿入し、半導体集積回路の信号遅延に関する設計制約を遵守する（タイミングマージンを改善する）。
【００１０】
しかし、所定の領域における配置混雑度が上限値よりも高い場合には、バッファ回路を挿入することができない。即ち、特許文献１が開示する技術では、信号遅延が必要な領域において、バッファ回路が配置可能な面積として一定値以上、確保できる場合に限り半導体集積回路の信号遅延に関する設計制約を満たすことができる。一方、バッファ回路を挿入するための面積が確保できない場合には、半導体集積回路の信号遅延に関する設計制約を満足することができない。
【００１１】
そのため、信号遅延が必要な箇所を含む領域が小面積であっても、信号遅延に関する設計制約を満たす半導体集積回路の設計が可能な半導体集積回路設計装置、半導体集積回路設計方法及びプログラムが、望まれる。
【課題を解決するための手段】
【００１２】
本発明の第１の視点によれば、レイアウト情報に基づき、信号の遅延が必要な遅延挿入箇所を特定する遅延回路挿入箇所検索部と、前記遅延挿入箇所を含む所定の領域に、容量値が選択可能なミラー容量を含んで構成される遅延回路を挿入する遅延回路挿入部と、を備える半導体集積回路設計装置が提供される。
【００１３】
本発明の第２の視点によれば、レイアウト情報に基づき、信号の遅延が必要な遅延挿入箇所を特定する遅延回路挿入箇所検索工程と、前記遅延挿入箇所を含む所定の領域に、容量値が選択可能なミラー容量を含んで構成される遅延回路を挿入する遅延回路挿入工程と、を含む半導体集積回路設計方法が提供される。
【００１４】
本発明の第３の視点によれば、レイアウト情報に基づき、信号の遅延が必要な遅延挿入箇所を特定する遅延回路挿入箇所検索処理と、前記遅延挿入箇所を含む所定の領域に、容量値が選択可能なミラー容量を含んで構成される遅延回路を挿入する遅延回路挿入処理と、をコンピュータに実行させ、前記コンピュータを半導体集積回路設計装置として動作させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント（ｎｏｎ−ｔｒａｎｓｉｅｎｔ）なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１５】
本発明の各視点によれば、信号遅延が必要な箇所を含む領域が小面積であっても、信号遅延に関する設計制約を満たす半導体集積回路の設計が可能な半導体集積回路設計装置、半導体集積回路設計方法及びプログラムが、提供される。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態の概要を説明するための図である。
【図２】第１の実施形態に係る半導体集積回路設計装置１の内部構成の一例を示す図である。
【図３】図２に示す制御部１０の内部構成の一例を示す図である。
【図４】ミラー容量を含んで構成される遅延回路３００の構成の一例を示す図である。
【図５】半導体集積回路設計装置１におけるレイアウト設計の一例を示すフローチャートである。
【図６】遅延回路挿入処理時の動作の一例を示すフローチャートである。
【図７】遅延回路挿入箇所を含む所定の領域４００の一例を示す図である。
【図８】遅延回路挿入箇所を含む所定の領域４００の一例を示す図である。
【図９】遅延回路挿入部１０４の動作の一例を示すフローチャートである。
【図１０】所定の領域５００の一例を示す図である。
【図１１】第２の遅延回路に関するライブラリの一例を示す図である。
【図１２】並行配線の配線長に関するライブラリの一例を示す図である。
【図１３】所定の領域５００の一例を示す図である。
【図１４】所定の領域５００の一例を示す図である。
【図１５】第２の実施形態に係る半導体集積回路設計装置２の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００１７】
初めに、図１を用いて一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【００１８】
上述のように、信号遅延が必要な領域において、バッファ回路等が配置可能な面積として一定値以上、確保できない場合が存在する。そのような場合には、半導体集積回路の信号遅延に関する設計制約を満たすことができない。そのため、信号遅延が必要な箇所を含む領域が小面積であっても、信号遅延に関する設計制約を満たす半導体集積回路の設計が可能な半導体集積回路設計装置、が望まれる。
【００１９】
そこで、一例として図１に示す半導体集積回路設計装置６００を提供する。図１に示す半導体集積回路設計装置６００は、レイアウト情報に基づき、信号の遅延が必要な遅延回路挿入箇所を特定する遅延回路挿入箇所検索部６０１と、遅延回路挿入箇所を含む所定の領域に、容量値が選択可能なミラー容量を含んで構成される遅延回路を挿入する遅延回路挿入部６０２と、を備える。
【００２０】
半導体集積回路設計装置６００は、ミラー容量を含んで構成される遅延回路を使用して、信号遅延に関する設計制約を満たす半導体集積回路の設計を行う。ここで、反転増幅回路の入出力端子に接続されたミラー容量の容量値は、反転増幅回路の入力端子側からは、本来の容量値よりも大きいものとみなせる（所謂、ミラー効果）。従って、単位面積で実現できる遅延量を比較すると、ミラー容量を含む遅延回路の方が、単に複数のバッファ回路等を直列接続した遅延回路等よりも極めて大きな遅延が実現できる。即ち、ミラー容量を含む遅延回路を実装するために必要な面積は小さく、効率的な遅延を作り出すことができる。その結果、信号遅延が必要な箇所を含む領域が小面積であっても、信号遅延に関する設計制約を満たす半導体集積回路の設計が可能となる。
【００２１】
本発明において下記の形態が可能である。
【００２２】
［形態１］上記第１の視点に係る半導体集積回路設計装置のとおりである。
【００２３】
［形態２］前記半導体集積回路設計装置は、前記所定の領域の面積に対する、前記所定の領域にレイアウトされた配線が占める面積の占有率を示す配線混雑度を算出する配線混雑度判定部を備え、前記遅延回路挿入部は、前記配線混雑度が所定の値以下の場合に、前記遅延回路の挿入を行うことが好ましい。
【００２４】
［形態３］前記遅延回路は、直列接続された複数のインバータ回路と、前記複数のインバータ回路のうち、少なくともいずれかの入出力端子間に接続された容量素子と、を含み、前記遅延回路挿入部は、必要な遅延量に応じて、前記容量素子の容量値を選択することが好ましい。
【００２５】
［形態４］前記容量素子は、同一の配線層又は異なる配線層において並行する配線により形成され、前記遅延回路挿入部は、必要な遅延量に応じて、前記並行する配線の長さを定めることが好ましい。
【００２６】
［形態５］前記半導体集積回路設計装置は、前記所定の領域の面積に対する、前記所定の領域にレイアウトされた半導体素子が占める面積の占有率を示す配置混雑度を算出する配置混雑度判定部を備え、前記配線混雑度判定部は、前記配置混雑度が所定の値以下の場合に、前記配線混雑度を算出することが好ましい。
【００２７】
［形態６］前記半導体集積回路設計装置は、前記配線混雑度が所定の値以下の場合に、前記所定の領域の面積に対する、前記所定の領域にレイアウトされた半導体素子が占める面積の占有率を示す配置混雑度を算出する配置混雑度判定部を備え、前記遅延回路挿入部は、前記配置混雑度が所定の値以下の場合に、前記遅延回路の挿入を行うことが好ましい。
【００２８】
［形態７］上記第２の視点に係る半導体集積回路設計方法のとおりである。
【００２９】
［形態８］前記半導体集積回路設計方法は、前記所定の領域の面積に対する、前記所定の領域にレイアウトされた配線が占める面積の占有率を示す配線混雑度を算出する配線混雑度判定工程を含み、前記遅延回路挿入工程は、前記配線混雑度が所定の値以下の場合に、前記遅延回路の挿入を行うことが好ましい。
【００３０】
［形態９］前記遅延回路は、直列接続された複数のインバータ回路と、前記複数のインバータ回路のうち、少なくともいずれかの入出力端子間に接続された容量素子と、を含み、前記遅延回路挿入工程は、必要な遅延量に応じて、前記容量素子の容量値を選択することが好ましい。
【００３１】
［形態１０］前記容量素子は、同一の配線層又は異なる配線層において並行する配線により形成され、前記遅延回路挿入工程は、必要な遅延量に応じて、前記並行する配線の長さを定めることが好ましい。
【００３２】
［形態１１］前記半導体集積回路設計方法は、前記所定の領域の面積に対する、前記所定の領域にレイアウトされた半導体素子が占める面積の占有率を示す配置混雑度を算出する配置混雑度判定工程を含み、前記配線混雑度判定工程は、前記配置混雑度が所定の値以下の場合に、前記配線混雑度を算出することが好ましい。
【００３３】
［形態１２］前記半導体集積回路設計方法は、前記配線混雑度が所定の値以下の場合に、前記所定の領域の面積に対する、前記所定の領域にレイアウトされた半導体素子が占める面積の占有率を示す配置混雑度を算出する配置混雑度判定工程を含み、前記遅延回路挿入工程は、前記配置混雑度が所定の値以下の場合に、前記遅延回路の挿入を行うことが好ましい。
【００３４】
［形態１３］上記第３の視点に係るプログラムのとおりである。
【００３５】
［形態１４］前記プログラムは、前記所定の領域の面積に対する、前記所定の領域にレイアウトされた配線が占める面積の占有率を示す配線混雑度を算出する配線混雑度判定処理を実行し、前記遅延回路挿入処理は、前記配線混雑度が所定の値以下の場合に、前記遅延回路の挿入を行うことが好ましい。
【００３６】
［形態１５］前記遅延回路は、直列接続された複数のインバータ回路と、前記複数のインバータ回路のうち、少なくともいずれかの入出力端子間に接続された容量素子と、を実行し、前記遅延回路挿入処理は、必要な遅延量に応じて、前記容量素子の容量値を選択することが好ましい。
【００３７】
［形態１６］前記容量素子は、同一の配線層又は異なる配線層において並行する配線により形成され、前記遅延回路挿入処理は、必要な遅延量に応じて、前記並行する配線の長さを定めることが好ましい。
【００３８】
［形態１７］前記プログラムは、前記所定の領域の面積に対する、前記所定の領域にレイアウトされた半導体素子が占める面積の占有率を示す配置混雑度を算出する配置混雑度判定処理を実行し、前記配線混雑度判定処理は、前記配置混雑度が所定の値以下の場合に、前記配線混雑度を算出することが好ましい。
【００３９】
［形態１８］前記プログラムは、前記配線混雑度が所定の値以下の場合に、前記所定の領域の面積に対する、前記所定の領域にレイアウトされた半導体素子が占める面積の占有率を示す配置混雑度を算出する配置混雑度判定処理を実行し、前記遅延回路挿入処理は、前記配置混雑度が所定の値以下の場合に、前記遅延回路の挿入を行うことが好ましい。
【００４０】
以下に具体的な実施の形態について、図面を参照してさらに詳しく説明する。
【００４１】
［第１の実施形態］
本発明の第１の実施形態について、図面を用いてより詳細に説明する。
【００４２】
図２は、第１の実施形態に係る半導体集積回路設計装置１の内部構成の一例を示す図である。
【００４３】
半導体集積回路設計装置１は、制御部１０と、メモリ２０と、記憶部３０と、操作部４０と、表示部５０から構成されている。なお、図２には、簡単のため、本実施形態に係る半導体集積回路設計装置１に関係するモジュールのみを記載する。
【００４４】
制御部１０は、操作部４０を初めとした各部を制御し、半導体集積回路設計装置１に要求される機能を実現する。なお、制御部１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）にプログラムを実行させること実現できる。
【００４５】
メモリ２０は、制御部１０の一時的な記憶領域として用いられる。記憶部３０は、設計対象となっている半導体集積回路のレイアウト情報やＣＰＵで実行するプログラム等を記憶する。操作部４０が、半導体集積回路設計装置１を使用するユーザ（設計者）の操作を受け付ける。表示部５０は、ユーザの操作に必要な情報を表示する。
【００４６】
図３は、制御部１０の内部構成の一例を示す図である。
【００４７】
制御部１０は、遅延回路挿入箇所検索部１０１と、配置混雑度判定部１０２と、配線混雑度判定部１０３と、遅延回路挿入部１０４と、を含んで構成されている。さらに、遅延回路挿入部１０４は、遅延回路配置部２０１と、ミラー容量算出部２０２と、ミラー容量形成部２０３と、を含んでいる。
【００４８】
遅延回路挿入箇所検索部１０１は、記憶部３０が記憶するレイアウト情報に基づき遅延回路を挿入する箇所を特定する。
【００４９】
配置混雑度判定部１０２は、遅延回路挿入箇所検索部１０１が特定した箇所を含む所定の領域の配置混雑度を算出し、配置混雑度の判定を行う。
【００５０】
配線混雑度判定部１０３は、遅延回路挿入箇所検索部１０１が特定した箇所を含む所定の領域の配線混雑度を算出し、配線混雑度の判定を行う。なお、配置混雑度及び配線混雑度の詳細については後述する。
【００５１】
遅延回路挿入部１０４は、配置混雑度判定部１０２又は配線混雑度判定部１０３において遅延回路の挿入が可能と判断された箇所に遅延回路を挿入する。
【００５２】
ここで、半導体集積回路設計装置１が、レイアウトに使用する遅延回路について説明する。半導体集積回路設計装置１は、２種類の遅延回路を適宜使い分ける。
【００５３】
第１の遅延回路は、複数のバッファ回路を直列接続することで、信号遅延させる遅延回路である。
【００５４】
第２の遅延回路は、ミラー容量を含んで構成される遅延回路である。第２の遅延回路は、インバータ回路等の反転増幅回路と、反転増幅回路の入出力端子に接続された容量素子と、を含んでいる。第２の遅延回路では、反転増幅回路の入出力端子に接続された容量の入力端子側からみた実効的な容量値が増加するミラー効果を利用する。なお、反転増幅回路の入出力端子に接続された容量素子をミラー容量として、以降の説明を行う。
【００５５】
図４は、ミラー容量を含んで構成される遅延回路３００の構成の一例を示す図である。
【００５６】
遅延回路３００は、４つのインバータ回路ＩＮＶ０１〜ＩＮＶ０４から構成されるインバータ回路群３０１と、ミラー容量Ｃ０１と、を含んでいる。インバータ回路群３０１に含まれるインバータ回路ＩＮＶ０１〜ＩＮＶ０４は、それぞれ直列接続されている。ミラー容量Ｃ０１は、インバータ回路ＩＮＶ０２の入出力端子（Ｐ０１／Ｐ０２）に接続されている。
【００５７】
なお、遅延回路３００に含まれるインバータ回路の個数は４個に限定されるものではない。例えば、遅延回路３００を介して伝達するデータの論理が反転しないように、遅延回路３００に含まれるインバータ回路の個数は偶数であればよい。
【００５８】
さらに、ミラー容量Ｃ０１の接続先となるインバータ回路もインバータ回路ＩＮＶ０２に限定されない。但し、ミラー容量Ｃ０１は、インバータ回路群３０１の最前列又は最後尾のインバータ回路以外のインバータ回路に接続されることが好ましい。即ち、入出力端子にミラー容量Ｃ０１が接続されたインバータ回路の出力波形は、他のインバータ回路と比較すると、非線形性が強まってしまう（所謂、波形が鈍る）。しかし、そのような出力波形であっても入出力端子に容量素子が接続されていないインバータ回路を通過させることによって、波形を補整することができる。図４に示す遅延回路３００を例に取ると、インバータ回路ＩＮＶ０２又はＩＮＶ０３にミラー容量Ｃ０１を接続するのが好ましい。さらに、インバータ回路による波形を補整する効果をより期待できるのは、インバータ回路ＩＮＶ０２にミラー容量Ｃ０１を接続する場合である。インバータ回路ＩＮＶ０３及びＩＮＶ０４によって、出力波形の補整がなされるためである。
【００５９】
また、上述のように、遅延回路挿入部１０４は、遅延回路配置部２０１と、ミラー容量算出部２０２と、ミラー容量形成部２０３と、を含んでいる。遅延回路配置部２０１は、第１の遅延回路又は第２の遅延回路のいずれかを選択し、信号の遅延が必要な箇所に挿入する。
【００６０】
ミラー容量算出部２０２は、第２の遅延回路（ミラー容量を含んで構成される遅延回路）を使用する際に、必要な遅延量からミラー容量Ｃ０１の容量値を算出する。
【００６１】
ミラー容量形成部２０３は、ミラー容量算出部２０２で算出された容量値に基づき、どのような形態でミラー容量Ｃ０１を実現するかを決定する。なお、各部の詳細については後述する。
【００６２】
次に、半導体集積回路設計装置１の動作について説明する。
【００６３】
半導体集積回路設計装置１は、半導体集積回路のレイアウト設計が可能である。そのため、半導体集積回路設計装置１におけるレイアウト設計について初めに概説する。
【００６４】
図５は、半導体集積回路設計装置１におけるレイアウト設計の一例を示すフローチャートである。なお、図５のフローチャートを実施する主体は、制御部１０に含まれるレイアウト設計部（図２及び図３において図示せず）である。
【００６５】
ステップＳ０１において、設計対象となっている半導体集積回路の配置配線を行う。本ステップで行う配置配線では、回路設計工程において生成されたネットリストに基づき半導体素子及び半導体素子間の配線を行う。半導体素子の配置及びその配線に関する情報は、レイアウト情報として記憶部３０に保存される。
【００６６】
ステップＳ０２において、前ステップにより生成されたレイアウト情報に基づいて、レイアウト設計後の回路におけるタイミング検証を行う。本ステップにおけるタイミング検証は、半導体集積回路に含まれる半導体素子により生じる信号遅延や、配線の寄生抵抗及び寄生容量に起因する信号遅延等を考慮してクロックのタイミング検証が行われる。より具体的には、半導体素子間の信号遅延が予め定めた設計制約（例えば、ホールド時間等）を遵守しているか否かを判定する。さらに、タイミング検証の結果はＳＴＡ（Ｓｔａｔｉｃ  Ｔｉｍｉｎｇ  Ａｎａｌｙｓｉｓ）レポートとして算出され、記憶部３０に保存される。
【００６７】
ステップＳ０３において、ＳＴＡレポートを参照することで、タイミング不良箇所の有無を判定する。
【００６８】
ステップＳ０４では、設計対象となっている半導体集積回路にはタイミング不良は存在しないため、ステップＳ０１で生成したレイアウト情報に基づきレイアウトデータを生成する。その際のフォーマットには、ＧＤＳフォーマット等が用いられる。なお、ＧＤＳフォーマットで生成されたレイアウトデータは、半導体集積回路の製造工程で使用するレチクル（フォトマスク）を製造するために必要となる。
【００６９】
ステップＳ０５では、設計対象となっている半導体集積回路に存在するタイミング不良を解消するため、遅延回路の挿入処理を行う。本ステップが終了した後は、ステップＳ０２に遷移し、タイミング検証を継続する。
【００７０】
次に、図５に示す遅延回路挿入処理（ステップＳ０５）について説明する。
【００７１】
図６は、遅延回路挿入処理時の動作の一例を示すフローチャートである。
【００７２】
ステップＳ１０１において、遅延回路挿入箇所検索部１０１は、レイアウト情報及びＳＴＡレポートに基づき、遅延回路を挿入すべき遅延回路挿入箇所を特定する。その際、遅延回路挿入箇所検索部１０１は、レイアウト情報から半導体素子間の遅延量の算出（検索）を行う。その後、遅延回路挿入箇所検索部１０１は、ＳＴＡレポートに含まれるタイミング違反値から、設計制約を遵守するために必要な遅延量を算出する。
【００７３】
ステップＳ１０２において、配置混雑度判定部１０２は、前ステップで特定した遅延回路挿入箇所を含む所定の領域の配置混雑度を算出する。
【００７４】
ここで、配置混雑度は、遅延回路挿入箇所を含む所定の領域の総面積に対する、半導体素子やロジック回路等が占有する面積の割合（半導体素子等の占有率）と定義することができる。図７及び図８は、遅延回路挿入箇所を含む所定の領域４００の一例を示す図である。図７及び図８において、半導体素子４０１と半導体素子４０２の間に遅延回路の挿入が必要であるとする。図７と図８の配置混雑度を比較すると、図７に示す所定の領域４００の方が配置混雑度は高く算出される。
【００７５】
次に、ステップＳ１０３において、配置混雑度判定部１０２は、前ステップで算出した所定の領域の配置混雑度と予め定めた上限値との比較を行う。遅延回路挿入箇所を含む所定の領域の配置混雑度が予め定めた上限値以下であれば、ステップＳ１０４に遷移する。一方、遅延回路挿入箇所を含む所定の領域の配置混雑度が予め定めた上限値よりも高ければステップＳ１０５に遷移する。
【００７６】
ステップＳ１０４において、遅延回路挿入部１０４の遅延回路配置部２０１が、第１の遅延回路（ミラー容量を含まない遅延回路）をステップＳ１０１で特定した遅延回路挿入箇所に挿入する。図７及び図８を例に取ると、半導体素子４０１と半導体素子４０２の間に第１の遅延回路が挿入される。
【００７７】
ステップＳ１０５において、配線混雑度判定部１０３は、ステップＳ１０１で特定した遅延回路挿入箇所を含む所定の領域の配線混雑度を算出する。ここで、配線混雑度は、遅延回路挿入箇所を含む所定の領域の総面積に対する、配線が占有する面積の割合（配線の占有率）と定義することができる。若しくは、配線トラックを用いる場合には、所定の領域に含まれる総トラックに対する、使用配線トラック（配線トラック使用率）と定義することができる。なお、配線の占有率又は配線トラック使用率のいずれであっても、配線混雑度の算出は配線層ごとに行う。つまり、多層配線が可能な半導体集積回路であれば、それぞれの配線層ごとに配線混雑度を算出する。
【００７８】
ステップＳ１０６において、配線混雑度判定部１０３は、前ステップで算出した所定の領域の配線混雑度と予め定めた上限値との比較を行う。遅延回路挿入箇所を含む所定の領域の配線混雑度が予め定めた上限値以下であれば、ステップＳ１０７に遷移する。一方、遅延回路挿入箇所を含む所定の領域の配線混雑度が予め定めた上限値よりも高ければステップＳ１０８に遷移する。
【００７９】
ステップＳ１０７において、遅延回路挿入部１０４が、第２の遅延回路（ミラー容量を含む遅延回路）をステップＳ１０１で特定した遅延回路挿入箇所に挿入する。本ステップの詳細については後述する。
【００８０】
ステップＳ１０８において、遅延回路挿入箇所検索部１０１が、配置混雑度及び配線混雑度の上限値を緩和する。その後、ステップＳ１０２に遷移し、処理を継続する。
【００８１】
続いて、遅延回路挿入部１０４による第２の遅延回路の挿入処理（ステップＳ１０７）について説明する。
【００８２】
図９は、遅延回路挿入部１０４の動作の一例を示すフローチャートである。
【００８３】
ステップＳ２０１において、遅延回路配置部２０１が、図６のステップＳ１０１で特定した遅延回路挿入箇所を含む所定の領域に第２の遅延回路を構成するインバータ回路群を配置する。
【００８４】
図１０は、所定の領域５００の一例を示す図である。図１０に示す所定の領域５００には、第２の遅延回路を構成するインバータ回路群５０１と配線が含まれている。なお、図１０において、斜線で示す領域が配線である。さらに、図１０においては、インバータ回路群５０１と配線は同一平面上に位置するかのように図示しているが、配線に関しては、シリコン基板（インバータ回路群５０１と同一平面）上に形成しなくてもよい。また、図１０で配置する第２の遅延回路の回路構成は、図４に示す遅延回路３００と同一の構成とする。即ち、図１０の第２の遅延回路を構成するインバータ回路群５０１には、４つのインバータ回路が含まれている。但し、図１０に示す第２の遅延回路には、未だミラー容量Ｃ０１が接続されていない。また、図１０には、第２の遅延回路の入出力端子（ＩＮ／ＯＵＴ）と、インバータ回路ＩＮＶ０２の入出力端子（Ｐ０１／Ｐ０２）を図示している。
【００８５】
ステップＳ２０１では、図１０に示すインバータ回路群５０１を所定の領域５００のいずれかに配置する。
【００８６】
ステップＳ２０２では、ミラー容量算出部２０２が、図６のステップＳ１０１で算出された遅延量からミラー容量Ｃ０１の容量値を算出する。なお、容量値の算出には、記憶部３０に予め記憶されたライブラリを使用する。このライブラリには、第２の遅延回路に含まれるミラー容量の容量値を変化させた場合に、第２の遅延回路で実現可能な遅延量との関係が記憶されている。
【００８７】
図１１は、第２の遅延回路に関するライブラリの一例を示す図である。図６のステップＳ１０１で算出された遅延量が、図１１に示すライブラリに含まれていれば、その遅延量を実現するための容量値を決定できる。例えば、算出された遅延量がＤ０１であれば、ミラー容量Ｃ０１の容量値はＸ０１と定まる。しかし、必要な遅延量がライブラリに記述されているとは限らない。そのような場合には、複数の遅延量と、それぞれの遅延量に対応する容量値と、を用いて遅延量と容量値との関係を線形近似し、必要なミラー容量Ｃ０１の容量値を決定することが考えられる。なお、ミラー容量Ｃ０１の容量値の算出に用いる近似はどのようなものでもよく、線形近似に限定する趣旨ではない。例えば、多数の遅延量と、それぞれに対応する容量値と、を用いて遅延量と容量値との関係を高次の関数で近似することも考えられる。どのような近似を使用するかは、ミラー容量Ｃ０１の容量値に求められる精度と許容できる計算量（容量値の算出に費やす時間）とに基づき、適宜選択する。
【００８８】
ステップＳ２０３において、ミラー容量形成部２０３が、前ステップで得られた容量値を実現するミラー容量Ｃ０１の実装形態を決定する。
【００８９】
ここで、第２の遅延回路に含まれるミラー容量Ｃ０１は、同一又は異なる配線層に形成される並行配線によって実現する。そのため、本ステップでは、並行配線を配線する配線層及び並行配線の長さを決定する。
【００９０】
本ステップにおいても、記憶部３０が記憶するライブラリを使用する。本ステップで使用するライブラリには、必要なミラー容量Ｃ０１の容量値と、その容量を実現するために必要な配線長と、の関係が記憶されている。さらに、必要な配線長は並行配線を実現する配線層ごとに記憶されている。なお、本ライブラリは、並行配線の幅、層間膜圧及び被誘電率等のプロセス条件に基づき予め生成され、記憶部３０に記憶されている。
【００９１】
図１２は、並行配線の配線長に関するライブラリの一例を示す図である。図１２に示すようなライブラリを使用して、並行配線の配線長を決定する。ここでも、ライブラリに記述されていない容量値が必要な場合には、線形近似等を用いて、並行配線の配線長を決定する。なお、並行配線は、図６のステップＳ１０５で得られた配線混雑度が低い配線層に優先して配線する。配線混雑度が低い配線層を優先することで、それぞれの配線層間の配線密度（配線の占有率）の均衡を図るためである。
【００９２】
ステップＳ２０４において、ミラー容量形成部２０３が、前ステップで決定したミラー容量Ｃ０１を、遅延回路挿入箇所を含む所定の領域に形成する。より具体的には、並行配線に結合容量が発生するように２本の配線を近接させつつ、前ステップで算出した配線長の長さを持つ並行配線を形成する。なお、並行配線の形成方法は、直接、バッファ回路の挿入箇所を含む所定の領域に形成してもよいし、配線だけからなる専用のセルを予め用意しておき、このようなセルを配置してもよい。
【００９３】
図１３は、所定の領域５００の一例を示す図である。図１３において図１０と同一構成要素には、同一の符号を表し、その説明を省略する。図１３では、図１０に対し、ミラー容量Ｃ０１を実現する並行配線５０２を追加している。さらに、ミラー容量形成部２０３は、ミラー容量Ｃ０１を実現するために必要な配線長を確保でき、かつ、インバータ回路群５０１に近接する配線空き領域を検索し、ミラー容量Ｃ０１を形成する場所を決定する（図１３参照）。
【００９４】
ステップＳ２０５において、ミラー容量形成部２０３が、インバータ回路群５０１と並行配線５０２（ミラー容量Ｃ０１）を接続する。
【００９５】
図１４は、所定の領域５００の一例を示す図である。図１４において図１３と同一構成要素には、同一の符号を表し、その説明を省略する。図１４では、インバータ回路群５０１と並行配線５０２とを接続している。図１４に示すように、インバータ回路群５０１に含まれるインバータ回路の入出力端子（Ｐ０１／Ｐ０２）と並行配線５０２を接続する。なお、その際に用いる配線ツールはどのようなものであってもよい。
【００９６】
なお、本実施形態では、半導体集積回路設計装置の内部でレイアウト設計を行い、レイアウト情報及びＳＴＡレポートを算出する場合について説明した。しかし、半導体集積回路設計装置の内部でレイアウト情報やＳＴＡレポートを算出せず、他の設計装置が算出した情報を使用することができるのは勿論である。さらに、レイアウト情報やＳＴＡレポートは半導体集積回路設計装置の記憶部に保存されておらず、ネットワークに接続されたサーバ等からこれらの情報を取得する形態であってもよい。
【００９７】
ここで、特許文献１が開示するバッファ回路挿入方法では、バッファ回路の挿入が予定される箇所の伝送経路周辺において半導体素子や配線が密集している場合、配置混雑度の上限値を引き上げて（条件を緩和して）、所定の領域にバッファ回路を挿入することが行われる。このような条件緩和を行うと、既に半導体素子等で密集している領域が、さらに混雑するという問題が起きる。その結果、特許文献１が開示する技術では、半導体集積回路に含まれる半導体素子等の配置を変更する等が発生し、設計が後退する。
【００９８】
また、配置混雑度の上限値を引き上げたとしても、バッファ回路を挿入する領域（基板面積）が確保できるとは限らず、そのような場合にはバッファ回路を挿入する処理は行われない。さらに、信号遅延に関する設計制約を満たすために必要な遅延量が大きい場合には、多数のバッファ回路（大規模な遅延回路）を挿入しなければならない。このような場合にも、当該領域にバッファ回路を挿入すると、伝送経路周辺がさらに混雑する。
【００９９】
さらにまた、多数のバッファ回路を挿入すると、半導体集積回路の回路規模の増大や消費電力の増加といった問題も発生する。なお、特許文献２〜４には、ミラー容量を含む遅延回路を用いた信号遅延に関する技術は開示されていない。
【０１００】
以上のように、本実施形態に係る半導体集積回路設計装置１は、第１の遅延回路を配置する領域が確保できない場合あっても、第２の遅延回路を用いて信号遅延を実現する。第２の遅延回路は、反転増幅回路の入出力端子に接続された容量素子を備えている。このような容量素子の容量値は、入力端子側からは、本来の容量値の（１＋Ａ）倍とみなすことができる（ミラー効果；但し、Ａは反転増幅回路の利得）。従って、第２の遅延回路（ミラー容量を含む遅延回路）が実現する単位面積あたりの遅延量は極めて大きい。つまり、第２の遅延回路は、ミラー容量を含まない第１の遅延回路と比較して、少ない面積で大きな遅延量を実現できる。
【０１０１】
また、ミラー容量の容量値は、同一又は異なる配線層の並行配線により選択可能であるため、必要な遅延量を自在に（容易に）実現することができる。同時に、並行配線は特定の配線層に限らず形成することができるため、設計自由度も極めて高くなる。つまり、特許文献１が開示するバッファ回路挿入方法とは異なり、既に半導体素子等で密集している領域が、さらに混雑するという問題が起きることもない。
【０１０２】
さらに、大きな遅延量を得るために必要な半導体素子の個数は限られており（例えば、４つのインバータ回路）、第２の遅延回路を含む半導体集積回路の回路規模が増大することがない。さらにまた、必要な半導体素子の個数が限られるため、消費電力も増加することがない。以上のように、ミラー容量を含む第２の遅延回路を用いることで、効率的な遅延を作り出すことができる。
【０１０３】
［第２の実施形態］
続いて、第２の実施形態について図面を参照して詳細に説明する。
【０１０４】
なお、本実施形態に係る半導体集積回路設計装置２と半導体集積回路設計装置１の内部構成等は相違する点は存在しないので、図２及び図３に相当する説明は省略する。
【０１０５】
第１の実施形態に係る半導体集積回路設計装置１では、所定の領域の配置混雑度を判定し、その後、配線混雑度を判定していた。本実施形態に係る半導体集積回路設計装置２では、この判定の順序を逆にする。即ち、配線混雑度の判定を行った後に配置混雑度の判定を行って、必要であれば第１又は第２の遅延回路の挿入を行う。
【０１０６】
このように、配置混雑度と配線混雑度の判定の順序を逆にする理由は、設計対象となっている半導体集積回路によっては、半導体素子等を配置する面積と配線のための面積の関係は様々考えられるためである。
【０１０７】
例えば、半導体素子を配置する面積には余裕があるが、配線のための面積には余裕がない半導体集積回路が存在する。しかし、一方で、配線のための面積には余裕があるが、半導体素子を配置するための面積には余裕がない半導体集積回路も存在する。
【０１０８】
前者の場合であれば、第１の実施形態に係る半導体集積回路設計装置１のように先に配置混雑度を判定する方が好ましい。ミラー容量を形成するための配線を追加することで、配線のための面積をさらに消費するのは適切ではないためである。
【０１０９】
一方、後者の場合であれば、配線混雑度を先に判定することが好ましい。効率的な遅延が実現できる第２の遅延回路を優先して使用することができるためである。
【０１１０】
図１５は、本実施形態に係る半導体集積回路設計装置２の動作の一例を示すフローチャートである。図１５に示すように、半導体集積回路設計装置２では、配線混雑度を判定した後、第２の遅延回路を優先して使用する。なお、図１５に示す各処理の内容は、図６を用いて説明した内容と相違しないので、さらなる説明は省略する。
【０１１１】
以上のように、本実施形態に係る半導体集積回路設計装置２では、配線のための面積には余裕があるが、半導体素子を配置するための面積には余裕がない半導体集積回路に対しても遅延回路を挿入することができる。
【０１１２】
なお、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【０１１３】
１、２、６００  半導体集積回路設計装置
１０  制御部
２０  メモリ
３０  記憶部
４０  操作部
５０  表示部
１０１、６０１  遅延回路挿入箇所検索部
１０２  配置混雑度判定部
１０３  配線混雑度判定部
１０４、６０２  遅延回路挿入部
２０１  遅延回路配置部
２０２  ミラー容量算出部
２０３  ミラー容量形成部
３００  遅延回路
３０１、５０１  インバータ回路群
４００、５００  所定の領域
４０１〜４０４  半導体素子
５０２  並行配線
Ｃ０１  ミラー容量
ＩＮＶ０１〜ＩＮＶ０４  インバータ回路
【図１】
2013164683.tif 000003
【図２】
2013164683.tif 000004
【図３】
2013164683.tif 000005
【図４】
2013164683.tif 000006
【図５】
2013164683.tif 000007
【図６】
2013164683.tif 000008
【図７】
2013164683.tif 000009
【図８】
2013164683.tif 000010
【図９】
2013164683.tif 000011
【図１０】
2013164683.tif 000012
【図１１】
2013164683.tif 000013
【図１２】
2013164683.tif 000014
【図１３】
2013164683.tif 000015
【図１４】
2013164683.tif 000016
【図１５】
2013164683.tif 000017