(57)【要約】【課題】セルを効率的に配置しつつ回路動作の高速化を実現すること。【解決手段】半導体集積回路を設計するためのレイアウト装置は、論理機能を有するセルを配置できる配置可能領域の高速動作回路近傍において、論理機能を有するセルを配置できない配置禁止領域を設定する禁止領域設定手段と、禁止領域設定手段により設定された配置禁止領域において、論理機能を有しない複数のセルを固めて配置する第１セル配置手段と、禁止領域設定手段により設定された配置禁止領域以外の配置可能領域に論理機能を有するセルを均一に配置する第２セル配置手段と、を備える。【選択図】図１
2014132416.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路を設計するためのレイアウト装置であって、
論理機能を有するセルを配置できる配置可能領域の高速動作回路近傍において、前記論理機能を有するセルを配置できない配置禁止領域を設定する禁止領域設定手段と、
前記禁止領域設定手段により設定された配置禁止領域において、論理機能を有しない複数のセルを固めて配置する第１セル配置手段と、
前記禁止領域設定手段により設定された配置禁止領域以外の前記配置可能領域に前記論理機能を有するセルを均一に配置する第２セル配置手段と、
を備える、レイアウト装置。
【請求項２】
請求項１記載のレイアウト装置であって、
前記第１セル配置手段は、前記禁止領域設定手段により設定された配置禁止領域において、前記論理機能を有しない複数のバッファセルを相互に接続したバッファチェーンを配置する、レイアウト装置
【請求項３】
請求項１記載のレイアウト装置であって、
前記禁止領域設定手段は、前記配置可能領域の隅又は周辺に前記配置禁止領域を設定する、レイアウト装置
【請求項４】
請求項１記載のレイアウト装置であって、
前記第２セル配置手段は、前記配置禁止領域に配置された各セル、通常の回路として認識し、該セルの回路を避けるようにして、前記論理機能を有するセルを均一に配置する、レイアウト装置。
【請求項５】
請求項１記載のレイアウト装置であって、
前記配置禁止領域に配置された論理機能を有しない各セルを削除するセル削除手段を更に備える、レイアウト装置
【請求項６】
論理機能を有するセルが均一に配置され配置可能領域と、該配置可能領域の高速周波数回路近傍に、相互に接続された論理機能を有しない複数のバッファセルを相互に接続したバッファチェーンを配置した配置禁止領域と、を含む、半導体集積回路。
【請求項７】
半導体集積回路を設計するためのレイアウトプログラムであって、
論理機能を有するセルを配置できる配置可能領域の高速動作回路近傍において、前記論理機能を有するセルを配置できない配置禁止領域を設定する処理と、
前記設定された配置禁止領域において、論理機能を有しない複数のセルを固めて配置する処理と、
前記設定された配置禁止領域以外の前記配置可能領域に前記論理機能を有するセルを均一に配置する処理と、
をコンピュータに実行させる、レイアウトプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セル配置を行って半導体集積回路を設計するためのレイアウト装置、半導体集積回路及びレイアウトプログラムに関するものである。
【背景技術】
【０００２】
半導体集積回路の製造コストを削減するには、その回路面積を低減することが重要となる。それを実現するためには各セルを決められた配置可能領域に効率良く配置する必要があり、そのようにセルを配置するための様々なレイアウト装置が提案されている（例えば、特許文献１乃至６）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−０９３３６５号公報
【特許文献２】特開２００７−１０３６０７号公報
【特許文献３】特開２００６−１５６９２９号公報
【特許文献４】特許第３５６３３９３号
【特許文献５】特開２００３−０５８５９０号公報
【特許文献６】特許第３９５３７４０号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一方で、半導体集積回路に搭載される回路の動作周波数の高速化に伴い、単に各セルを効率良く配置可能領域に配置しただけでは、上記回路の動作周波数の高速化が困難となり得る。なお、その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００５】
本一態様は、論理機能を有するセルを配置できる配置可能領域の高速動作回路近傍において、前記論理機能を有するセルを配置できない配置禁止領域を設定する禁止領域設定手段と、前記禁止領域設定手段により設定された配置禁止領域において、論理機能を有しない複数のセルを固めて配置する第１セル配置手段と、前記禁止領域設定手段により設定された配置禁止領域以外の前記配置可能領域に前記論理機能を有するセルを均一に配置する第２セル配置手段と、を備える、レイアウト装置である。
また、本一態様は、論理機能を有するセルが均一に配置され配置可能領域と、該配置可能領域の高速周波数回路近傍に、相互に接続された論理機能を有しない複数のバッファセルを相互に接続したバッファチェーンを配置した配置禁止領域と、を含む、半導体集積回路であってもよい。
さらに、本一態様は、論理機能を有するセルを配置できる配置可能領域の高速動作回路近傍において、前記論理機能を有するセルを配置できない配置禁止領域を設定する処理と、前記設定された配置禁止領域において、論理機能を有しない複数のセルを固めて配置する処理と、前記設定された配置禁止領域以外の前記配置可能領域に前記論理機能を有するセルを均一に配置する処理と、をコンピュータに実行させる、レイアウトプログラムであってもよい。
【発明の効果】
【０００６】
本態様によれば、セルを効率的に配置しつつ回路動作の高速化を実現できるレイアウト装置、半導体集積回路及びレイアウトプログラムを提供することができる。
【図面の簡単な説明】
【０００７】
【図１】本一実施の形態に係るレイアウト装置の概略的なシステム構成を示すブロック図である。
【図２】配置可能領域において、高速動作回路近傍に配置禁止領域を設定した一例を示す図である。
【図３】半導体集積回路の概略的構成の一例を示す概念図である。
【図４】バッファセルを数珠繋ぎしたバッファチェーンの一例を示す図である。
【図５】本実施の形態に係る配置禁止領域を設定しバッファチェーンを配置する方法のフローを示すフローチャートである。
【図６】本実施の形態に係る半導体集積回路のレイアウト方法のフローを示すフローチャートである。
【図７】本実施の形態に係るレイアウト装置により配置禁止領域を設定しバッファセルを配置したレイアウトの一例を示す図である。
【図８】図７に示すａ部分の配置禁止領域を部分的に拡大した部分拡大図である。
【発明を実施するための形態】
【０００８】
以下、図面を参照して本一実施の形態について説明する。図１は、本一実施の形態に係るレイアウト装置の概略的なシステム構成を示すブロック図である。本実施の形態に係るレイアウト装置１は、入力処理部２と、配置禁止領域を設定する禁止領域設定部３と、配置禁止領域に論理機能を有しないセルを配置する第１セル配置部４と、配置禁止領域を除く配置可能領域に論理機能を有するセルを均一に配置する第２セル配置部５と、配置禁止領域のセルを削除するセル削除部６と、出力処理部７と、を備えている。
【０００９】
なお、レイアウト装置１は、例えば、演算処理等と行うＣＰＵ（Central Processing Unit）、ＣＰＵによって実行される演算プログラム等が記憶されたＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）からなるメモリ、外部と信号の入出力を行うインターフェイス部（Ｉ／Ｆ）、などからなるマイクロコンピュータを中心にして、ハードウェア構成されている。ＣＰＵ、メモリ、及びインターフェイス部は、データバスなどを介して相互に接続されている。
【００１０】
禁止領域設定部３は、禁止領域設定手段の一具体例であり、論理機能を有するセルを配置できる配置可能領域Ｙにおいて、高速動作回路（高速周波数回路）近傍に配置禁止領域Ｘを設定する（図２）。
【００１１】
禁止領域設定部３は、後述のフロアプランに基づいて、高速動作回路（１ＧＨｚ以上の高速周波数を実現することが困難なタイミングクリティカル回路など）近傍で、例えば、配置可能領域Ｙの右隅、左隅などの隅や下辺、上辺などの周辺に配置禁止領域Ｘを設定する。上記高速動作回路は、大規模の演算処理部（浮動小数点回路などのデータパス部）を有し、通常、データ入出力部と離れた位置（一方側に偏った位置など）に固めて配置されている。禁止領域設定部３は、配置禁止領域Ｘに配置される回路を独立した回路として認識し、配置可能領域Ｙの隅や周辺に設定する。図３は、半導体集積回路の概略的構成一例を示す概念図である。禁止領域設定部３は、半導体集積回路１００において、高速動作回路の近傍で配置可能領域Ｙの隅（配置可能領域Ｙの中心から離れた位置）に設定する。
【００１２】
このように、配置禁止領域Ｘを高速動作回路の近傍で配置可能領域Ｙの隅に設定することで、高速動作回路が隅に広がるのを抑え、高速動作回路をより小さな範囲に固めて配置することができる。したがって、高速動作回路の高速動作をより確実に実現できる。
【００１３】
第１セル配置部４は、第１セル配置手段の一具体例であり、禁止領域設定部３により設定された配置禁止領域Ｘを埋めるように、論理機能を有しないスタンダードセルを配置する。第１セル配置部４は、禁止領域設定部３により設定された配置禁止領域Ｘにおいて、例えば、相互に接続された論理機能を有しない複数のスタンダードセルを夫々配置する。第１セル配置部４は、配置禁止領域Ｘに論理機能を有しないスタンダードセルを配置することで、その後、その配置禁止領域Ｘに論理機能を有するセルの配置を禁止する。
【００１４】
第１セル配置部４は、禁止領域設定部３により設定された配置禁止領域Ｘにおいて、例えば、複数（１００〜１０００個程度）のバッファセル１１を数珠繋ぎしたバッファチェーン１２を配置する（図４）。このように、配置禁止領域Ｘに配置されたバッファセル１１を相互に繋げることで、バッファセル１１を配置可能領域Ｙの隅や周辺に固めて配置することができる。
【００１５】
第１セル配置部４は、各バッファセル１１の入力信号を電位固定することで、各バッファセル１１を配置する。第１セル配置部４は、例えば、バッファチェーン１２の一部を電位固定することで、バッファチェーン１２の配置位置、すなわち、配置禁止領域Ｘの設定位置を制御する。より具体的には、第１セル配置部４は、バッファチェーン１２において、始端のバッファセルＳと終端のバッファセルＥを電位固定することで、バッファチェーン１２全体を配置する（図２）。
【００１６】
ここで、各バッファセル１１は、配置禁止領域Ｘの形状に自由度を持たせるために、１倍力程度の小さいサイズ（配置禁止領域Ｙを構成する最小単位（最小形状）：ＢＵＸＦＸ１）で構成されている。これにより、バッファチェーン１２の形状を容易に可変させることができる。
【００１７】
なお、第１セル配置部４は、バッファチェーン１２を用いて、各バッファセル１１を固めて配置しているが、これに限らず、相互に接続を有しない専用セルを固めて配置をしてもよい。例えば、第１セル配置部４は、各専用セル同士に対して配置を固めるためのバウンディング設定などを行って各専用セルを配置してもよい。
【００１８】
ここで、配置禁止領域Ｘを設定しバッファチェーン１２を配置する方法について詳細に説明する。図５は、本実施の形態に係る配置禁止領域を設定しバッファチェーンを配置する方法のフローを示すフローチャートである。
【００１９】
禁止領域設定部３は、配置可能領域Ｙの総面積と、設計回路の目標実装率と、に基づいて次式を用いて目標セル面積を算出する（ステップＳ１０１）。なお、目標実装率、後述のバッファセル１個当たりの面積、及び生成するバッファチェーン１２の数は、例えば、予め、入力処理部２に入力され上記ＲＡＭなどに設定されている。
目標セル面積＝配置可能領域Ｙの総面積×目標実装率（％）／１００
【００２０】
次に、禁止領域設定部３は、算出した目標セル面積に基づいて次式を用いて追加セル面積を算出する（ステップＳ１０２）。
追加セル面積＝目標セル面積−（現在レイアウト中のバッファセルの合計面積）
その後、禁止領域設定部３は、算出した追加セル面積と、設定されたバッファセル１個当たりの面積と、に基づいて次式を用いて追加セル個数を算出する（ステップＳ１０３）。
追加セル個数＝追加セル面積／（設定されたバッファセル１個当たりの面積）
【００２１】
禁止領域設定部３は、生成するバッファチェーン１２の数と、算出した追加セル個数と、に基づいて生成したバッファチェーン１２を配置する配置禁止領域Ｘを設定する（ステップＳ１０４）。以上のようにして、配置禁止領域Ｘを設定し、バッファチェーン１２を配置することで、目標実装率に応じた最適なバッファチェーン１２の配置が可能となる。
【００２２】
第１セル配置部４は、禁止領域設定部３により設定された配置禁止領域Ｘを埋めるように、バッファチェーン１２を配置する。なお、上記配置禁止領域Ｘを設定しバッファチェーンを配置する方法は一例であり、これに限らず、任意の方法が適用可能である。
【００２３】
第２セル配置部５は、第２セル配置手段の一具体例であり、禁止領域設定部３により設定された配置禁止領域Ｘ以外、すなわち、既に配置された論理機能を有しないスタンダードセルの領域を除く配置可能領域Ｙに論理機能を有するセルを均一に配置する。
【００２４】
第２セル配置部５は、配置禁止領域に配置されたバッファセルを、通常の回路として認識し、そのバッファセルの回路を避けるようにして、論理機能を有するセルを均一配置する。このようにして、論理機能を有するセルを容易に均一配置することができる。
【００２５】
セル削除部６は、セル削除手段の一具体例であり、第１セル配置部４により配置禁止領域Ｘに配置された論理機能を有しないスタンダードセルを削除する。これにより、配置禁止領域Ｘに配置された論理機能を有しないスタンダードセルからのリークに起因して発生するノイズを抑制することができる。また、スタンダードセルを削除した領域に、配線や別セルなどを配置することが可能となり、領域を効率的に活用することができる。
【００２６】
なお、本実施の形態において、セル削除部６は第１セル配置部４により配置禁止領域Ｙに配置された論理機能を有しないスタンダードセルの一部或いは全部を削除しなくてもよい。これにより、本レイアウト処理量を低減することができる。
【００２７】
図６は、本実施の形態に係る半導体集積回路のレイアウト方法のフローを示すフローチャートである。
【００２８】
入力処理部２には、ネットリスト情報、タイミング情報、フロアプラン情報（入出力端子、配置可能領域等の情報）、テクノロジ情報、セル情報（セルライブラリ情報）などの入力情報が入力される（ステップＳ２０１）。入力処理部２は、これら入力情報に基づいて、各セルを配置するためのフロアプランを生成する。
【００２９】
禁止領域設定部３は、入力処理部２により生成されたフロアプランに基づいて、高速動作回路近傍で配置可能領域Ｙの隅や周辺に配置禁止領域Ｘを設定する（ステップＳ２０２）。第１セル配置部４は、禁止領域設定部３により設定された配置禁止領域Ｘにおいて、バッファチェーン１２を配置する。
【００３０】
第２セル配置部５は、入力処理部２からの入力情報に基づいて、物理的制約及びタイミング制約を満たすようにセルのレイアウトを生成する。第２セル配置部５は、生成したレイアウトに基づいて各セルを均一に配置し、配置した各セルに対して配線処理を行ってレイアウト情報を生成する（ステップＳ２０３）。
セル削除部６は、第２セル配置部５により生成されたレイアウト情報から、配置禁止領域Ｘに配置された論理機能を有しないスタンダードセルを削除する（ステップＳ２０４）。
【００３１】
出力処理部７は、上記生成された半導体集積回路のレイアウト情報に基づいて、そのマスクを生成するのに必要なマスク情報を生成し、生成したマスク情報を表示装置やプリンタなどに出力する（ステップＳ２０５）。
【００３２】
なお、高速動作回路の動作周波数が高く、タイミング収束が困難となる場合、既にタイミング改善処理を行った配置処理を複数回繰り返すことがある。そこで、禁止領域設定部３は、その各配置処理の結果に対してセル実装率を計算し、計算した実装率に基づいて、配置禁止領域のサイズを見直す処理を行っても良い。これにより、目標実装率を維持することが可能となる。例えば、目標実装率が８０％で配置後の実装率がそれよりも低い７５％となった場合、禁止領域設定部３は、その低くなった５％分だけ、配置禁止領域Ｘのサイズを増加させる。配置禁止領域Ｘのサイズ変更は、例えば、セル個数を増加させる、あるいは、セルサイズを増加させることで可能となる。
【００３３】
図７は、本実施の形態に係るレイアウト装置により配置禁止領域を設定しバッファセルを配置したレイアウトの一例を示す図である。図７に示すように、配置可能領域Ｙにおいて、入出力部が上側に位置しており、データパス部（演算処理部）が下側に位置している。データパス部は目標周波数の達成が困難な回路の代表例であるため、セル配置の広がりを抑えコンパクトに配置する必要がある。したがって、データパス部は、上記のように、配置可能領域Ｙの下側に配置されている。そして、配置禁止領域Ｘは、そのデータパス部の近傍で右下隅、左下隅、右上隅（メモリマクロ下）に設定されている。これにより、データパス部の広がりを抑え目標周波数の達成を可能にしている。図８は、図７に示すａ部分の配置禁止領域Ｘを部分的に拡大した部分拡大図である。図８に示すように、本実施の形態に係るレイアウト装置１を用いることで、配置可能領域Ｙの右隅をバッファセル１１でほぼ埋め尽くすことができ、データパス部の右隅への広がりを確実に抑えることができることが分かる。
【００３４】
以上、本実施の形態に係るレイアウト装置１において、配置可能領域の高速動作回路近傍において、論理機能を有するセルを配置できない配置禁止領域を設定し、設定された配置禁止領域において、論理機能を有しない複数のセルを固めて配置する。そして、設定された配置禁止領域以外の配置可能領域に論理機能を有するセルを均一に配置する。これにより、セルを効率的に配置しつつ回路動作の高速化を実現できる。
【００３５】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【００３６】
また、本発明は、例えば、図５及び図６に示す処理を、ＣＰＵにコンピュータプログラムを実行させることにより実現することも可能である。
【００３７】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（random access memory））を含む。
【００３８】
また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【００３９】
１    レイアウト装置
２    入力処理部
３    禁止領域設定部
４    第１セル配置部
５    第２セル配置部
６    セル削除部
７    出力処理部
１１    バッファセル
１２    バッファチェーン
【図１】
2014132416.tif 000003
【図２】
2014132416.tif 000004
【図３】
2014132416.tif 000005
【図４】
2014132416.tif 000006
【図５】
2014132416.tif 000007
【図６】
2014132416.tif 000008
【図７】
2014132416.tif 000009
【図８】
2014132416.tif 000010