(57)【要約】【課題】クロックゲーティングセルの配置を制御することによって消費電力を低減する場合に、その処理時間を削減することができるレイアウト方法、レイアウト装置及びレイアウトプログラムを提供すること【解決手段】本発明にかかるレイアウト方法は、半導体集積回路のレイアウトを行うレイアウト方法であって、半導体集積回路に挿入するクロックゲーティングセルのうち、少なくとも１つのクロックゲーティングセルを挿入せずに論理合成を行い、論理合成の結果に基づいて、セルの配置を行い、セルの配置後に、論理合成において挿入しなかったクロックゲーティングセルを挿入し、挿入したクロックゲーティングセルを配置し、クロックツリーの構築を行う。【選択図】図１
2011065320.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路のレイアウトを行うレイアウト方法であって、
前記半導体集積回路に挿入するクロックゲーティングセルのうち、少なくとも１つのクロックゲーティングセルを挿入せずに論理合成を行い、
前記論理合成の結果に基づいて、セルの配置を行い、
前記セルの配置後に、前記論理合成において挿入しなかったクロックゲーティングセルを挿入し、
前記挿入したクロックゲーティングセルを配置し、クロックツリーの構築を行うレイアウト方法。
【請求項２】
前記レイアウト方法は、さらにイネーブル信号と、当該イネーブル信号の制御対象となる制御対象セルとを対応付けた制御情報を生成して、生成した制御情報を記憶部に格納し、
前記クロックゲーティングセルの挿入において、前記記憶部に格納された制御情報に基づいて、前記制御対象セルに対してクロックゲーティングセルを挿入する請求項１に記載のレイアウト方法。
【請求項３】
前記クロックゲーティングセルの挿入において、前記制御情報が示す制御対象セルのうち、同一のイネーブル信号によって制御され、所定の範囲内に配置されている制御対象セルに対して１つのクロックゲーティングセルを挿入する請求項２に記載のレイアウト方法。
【請求項４】
前記レイアウト方法は、さらに前記論理合成の結果に含まれる制御対象セルを、当該制御対象セルよりも情報量の少ない擬似セルに置換し、
前記挿入したクロックゲーティングセルを配置し、クロックツリーの構築を行うときに、前記擬似セルを、前記制御対象セルに置換する請求項２又は３に記載のレイアウト方法。
【請求項５】
前記制御情報は、前記制御対象セルのインスタンス名と、前記イネーブル信号名とを対応付けた情報である請求項２乃至４のいずれか１項に記載のレイアウト方法。
【請求項６】
前記制御対象セルは、フリップフロップである請求項２乃至５のいずれか１項に記載のレイアウト方法。
【請求項７】
半導体集積回路のレイアウトを行うレイアウト装置であって、
前記半導体集積回路に挿入するクロックゲーティングセルのうち、少なくとも１つのクロックゲーティングセルを挿入せずに論理合成を行う論理合成部と、
前記論理合成の結果に基づいて、セルの配置を行うセル配置部と、
前記セル配置部におけるセルの配置後に、前記論理合成において挿入しなかったクロックゲーティングセルを挿入するクロックゲーティングセル挿入部と、
前記クロックゲーティングセル挿入部が挿入したクロックゲーティングセルを配置し、クロックツリーの構築を行うクロックゲーティングセル配置・ツリー構築実施部と、を備えたレイアウト装置。
【請求項８】
半導体集積回路のレイアウトを行うレイアウトプログラムであって、
前記半導体集積回路に挿入するクロックゲーティングセルのうち、少なくとも１つのクロックゲーティングセルを挿入せずに論理合成を行う処理と、
前記論理合成の結果に基づいて、セルの配置を行う処理と、
前記セルの配置後に、前記論理合成において挿入しなかったクロックゲーティングセルを挿入する処理と、
前記挿入したクロックゲーティングセルを配置し、クロックツリーの構築を行う処理と、をコンピュータに実行させるレイアウトプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レイアウト方法、レイアウト装置及びレイアウトプログラムに関し、特に半導体集積回路のレイアウトに関する。
【背景技術】
【０００２】
近年、半導体集積回路の大規模化に伴い、半導体集積回路における消費電力が増大してきている。そのため、半導体集積回路は、低消費電力化のために、クロックゲーティング回路を搭載している。
【０００３】
特許文献１には、クロックゲーティング回路の配置位置等を制御することで低消費電力化を図る技術が開示されている。以下、図４及び図５を参照して、特許文献１に開示されているレイアウト装置について説明する。図４は、特許文献１に開示のレイアウト装置の構成を示すブロック図である。
【０００４】
特許文献１に開示されているレイアウト装置３０１は、情報読込部３０２と、フロアプラン実施部３０３と、配置・ＣＴＳ(Clock Tree Synthesis)・最適化部３０４と、ＬＯＣＫＵＰセル削除／挿入部３０５と、タイミング最適化部３０６と、信号配線部３０７とを有する。また、配置・ＣＴＳ・最適化部３０４は、クロックライン認識部３４１、クロックゲーティング回路認識部３４２、クロックゲーティング回路削除部３４４、他回路配置・最適化部３４４、クロックゲーティング回路まとめ／分割部３４５及びクロックゲーティング回路配置／ＣＴＳ実施部３４６を有する。
【０００５】
図５は、特許文献１に開示のレイアウト装置の処理を示すフローチャートである。
まず、情報読込部３０２は、デザインルール、ライブラリ、ＲＴＬ(Register Transfer Level)もしくネットリスト、タイミング制約を読み込む(Ｓ４０１、Ｓ４０２)。
次に、フロアプラン実施部３０３は、フロアプランを実施し、Ｉ／Ｏ(Input Output)位置、チップサイズ、ハードマクロの配置位置を決定する(Ｓ４０３)。
次に、クロックライン認識部３４１は、作成する回路内のクロックラインを認識する(Ｓ４０４)。
【０００６】
次に、クロックゲーティング回路認識部３４２は、認識したクロックラインにクロックゲーティング回路に相当する組み合わせ回路が存在しているかどうかをチェックする(Ｓ４０５)。ここで、組み合わせ回路がクロックゲーティング回路であるか否かの判断は、その回路の後段にクロック信号が無条件に伝わるか、イネーブル信号等によって停止されるかによって判断する。なお、ＩＣＧ(Integrated Clock Gating Cell)のようにマクロ化されたセルにあっては、セル名から判断することもできる。
クロックゲーティング回路が存在しない場合、他回路配置・最適化部３４４は、配置・ＣＴＳ・最適化を実施する(Ｓ４０６)。
クロックゲーティング回路が存在している場合、クロックゲーティング回路削除部３４３は、そのクロックゲーティング回路を初期配置対象から除外する(Ｓ４０７)。
【０００７】
次に、他回路配置・最適化部３４４は、クロックラインのクロックゲーティング回路以外のセルを配置する(Ｓ４０８)。
次に、クロックゲーティング回路まとめ／分割部３４５は、クロックラインのクロックゲーティングセルのまとめもしくは分割を行う(Ｓ４０９)。
次に、クロックゲーティング回路配置／ＣＴＳ実施部３４６は、クロックラインのクロックゲーティングセルの配置およびクロックツリー構築を、低消費電力化を考慮した上でクロックスキューを調整しつつ実施する(Ｓ４１０)。このとき、クロックゲーティング回路をクロックルートに近い初段に配置してやることにより、その手前のクロックツリーを構築する必要はなくなり、クロックツリーを構成するセルによる消費電力を低減することができる。
以降、ＬＯＣＫＵＰセルの処理を行い(Ｓ４１１〜Ｓ４１４)、クロックツリー構築後のタイミング最適化を実施し(ステップＳ４１５)、信号配線を実施(Ｓ４１６)して、レイアウト完了となる。
【０００８】
以上のようにして、特許文献１に開示のレイアウト装置は、クロックゲーティング回路がフリップフロップ等の同期回路の近くに配置されてしまうことにより、クロックスキューの調整が困難ないしは不可能となる問題を解決している。
しかし、特許文献１に開示の技術は、配置・ＣＴＳ・最適化部３０４のクロックライン認識部３４１、クロックゲーティング回路認識部３４２及びクロックゲーティング回路削除部３４３における各工程(以下、これら３つの工程をまとめて「クロックゲーティング回路認識／削除工程」とする)に時間を要してしまうという問題がある。その理由を以下に述べる。
【０００９】
特許文献１に開示の技術において、クロックラインの組み合わせ回路に対して入力されるイネーブル信号の有無に基づいてクロックゲーティング回路を判断している場合、クロックゲーティング回路認識／削除工程が、クロックラインの組み合わせ回路に対するイネーブル信号数繰り返して実施される。そのため、クロックゲーティング回路認識／削除工程に要する時間がＸ時間であり、クロックラインの組み合わせ回路に対して入力されるイネーブル信号数がＹである半導体集積回路の場合、半導体集積回路全体のクロックゲーティング回路認識／削除工程に要する時間は、Ｘ×Ｙ時間となる。つまり、クロックゲーティング回路認識／削除工程に要する時間は、クロックラインの組み合わせ回路に対して入力されるイネーブル信号数に比例して増大する。ところが、近年、半導体集積回路の大規模化に伴い、クロックゲーティング回路及びその出力を制御するイネーブル信号の数が増加してきていることに鑑みると、クロックゲーティング回路認識／削除工程にかかる時間は非常に大きくなってしまうという問題がある。
【００１０】
また、特許文献１に開示の技術において、セル名に基づいてクロックゲーティング回路を判断している場合、クロックゲーティング回路認識／削除工程がクロックゲーティング回路数繰り返して実施されることとなる。それぞれのクロックゲーティング回路には、イネーブル信号が入力されているため、セル名に基づいてクロックゲーティング回路を判断している場合であっても、クロックラインの組み合わせ回路に対して入力されるイネーブル信号数に比例して、クロックゲーティング回路認識／削除工程にかかる時間が増加してしまうと言える。
【００１１】
クロックゲーティング回路及びその出力を制御するイネーブル信号は、半導体集積回路に対して上限なく任意に挿入することができる。そのため、大規模かつ複雑なクロック制御機能を有する半導体集積回路になるほど多くのクロックゲーティング回路及びその出力を制御するイネーブル信号が挿入され、クロックゲーティング回路認識／削除工程に要する時間は無制限に増大してしまう。
【００１２】
なお、特許文献２には、半導体集積回路において、チップ上でのセルの位置関係、セルの消費電力を左右する動作周波数を考慮することにより、セル配置後の電源降下領域を事前に推測し、推測した電圧降下領域内でのセルの再配置により電源電圧降下を抑制することを可能とする技術が開示されている。これにより、電源電圧降下の検証後に実施する再配置配線に関する工程を削減することを可能としている。しかし、特許文献２は、クロックゲーティングセルの配置を制御することによって消費電力を低減する場合に、その処理時間を削減することができるようにする具体的な技術を開示したものではない。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００７−０７２９９５号公報
【特許文献２】特開２００７−１１４９８６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
背景技術として説明したように、特許文献１に開示の技術では、クロックゲーティングセルの配置を制御することで消費電力を低減する場合に、その処理に時間がかかってしまうという問題がある。
【課題を解決するための手段】
【００１５】
本発明の第１の態様にかかるレイアウト方法は、半導体集積回路のレイアウトを行うレイアウト方法であって、前記半導体集積回路に挿入するクロックゲーティングセルのうち、少なくとも１つのクロックゲーティングセルを挿入せずに論理合成を行い、前記論理合成の結果に基づいて、セルの配置を行い、前記セルの配置後に、前記論理合成において挿入しなかったクロックゲーティングセルを挿入し、前記挿入したクロックゲーティングセルを配置し、クロックツリーの構築を行うものである。
【００１６】
本発明の第２の態様にかかるレイアウト装置は、半導体集積回路のレイアウトを行うレイアウト装置であって、前記半導体集積回路に挿入するクロックゲーティングセルのうち、少なくとも１つのクロックゲーティングセルを挿入せずに論理合成を行う論理合成部と、前記論理合成の結果に基づいて、セルの配置を行うセル配置部と、前記セル配置部におけるセルの配置後に、前記論理合成において挿入しなかったクロックゲーティングセルを挿入するクロックゲーティングセル挿入部と、前記クロックゲーティングセル挿入部が挿入したクロックゲーティングセルを配置し、クロックツリーの構築を行うクロックゲーティングセル配置・ツリー構築実施部と、を備えたものである。
【００１７】
本発明の第３の態様にかかるレイアウトプログラムは、半導体集積回路のレイアウトを行うレイアウトプログラムであって、前記半導体集積回路に挿入するクロックゲーティングセルのうち、少なくとも１つのクロックゲーティングセルを挿入せずに論理合成を行う処理と、前記論理合成の結果に基づいて、セルの配置を行う処理と、前記セルの配置後に、前記論理合成において挿入しなかったクロックゲーティングセルを挿入する処理と、前記挿入したクロックゲーティングセルを配置し、クロックツリーの構築を行う処理と、をコンピュータに実行させるものである。
【００１８】
これらによれば、論理合成においてクロックゲーティングセルを挿入していないため、クロックゲーティング回路認識／削除工程を行う必要がなくなり、処理時間を低減することができる。また、スタンダードセルの配置後に、クロックゲーティングセルを挿入して、クロックゲーティングセルの配置とクロックツリー構築を行っているため、低消費電力化を考慮した位置となるようにクロックゲーティングセルの配置を制御して、クロックツリーを構築することができる。
【発明の効果】
【００１９】
上述した各態様により、クロックゲーティングセルの配置を制御することによって消費電力を低減する場合に、その処理時間を削減することができるレイアウト方法、レイアウト装置及びレイアウトプログラムを提供することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施の形態にかかるレイアウト装置の構成を示すブロック図である。
【図２Ａ】本発明の実施の形態にかかる制御情報ファイルの基本となるファイル・フォーマットの一例を示す図である。
【図２Ｂ】本発明の実施の形態にかかる制御情報ファイルの具体的な出力例を示す図である。
【図３】本発明の実施の形態にかかるレイアウト装置の処理を示すフローチャートである。
【図４】背景技術にかかるレイアウト装置の構成を示すブロック図である。
【図５】背景技術にかかるレイアウト装置の構成を示すブロック図である。
【発明を実施するための形態】
【００２１】
図１を参照して、本発明の実施の形態にかかるレイアウト装置の構成について説明する。図１は、本発明の実施の形態にかかるレイアウト装置の構成を示すブロック図である。
【００２２】
レイアウト装置１は、情報読込部２、フロアプラン実施部３、配置・ＣＴＳ・最適化部４、ＬＯＣＫＵＰセル削除／挿入部５、タイミング最適化部６及び信号配線部７を有する。レイアウト装置１は、例えば、ＰＣ(Personal Computer)やサーバ等の情報処理装置である。つまり、レイアウト装置１は、例えば、ＣＰＵ(Central Processing Unit)やメモリ等のハードウェアを有しており、これらのハードウェアによって処理を実行する。レイアウト装置１は、入力された情報に基づいて、半導体集積回路のレイアウトを行い、半導体集積回路のレイアウトを示すレイアウトデータを生成する。
【００２３】
情報読込部２は、論理合成部２１及び擬似セル置換／制御情報ファイル作成部２２を有する。配置・ＣＴＳ・最適化部４は、スタンダードセル配置・最適化部４１、クロックゲーティングセル挿入部４２及びクロックゲーティングセル配置／ＣＴＳ実施部４３を有する。
【００２４】
続いて、上述したレイアウト装置の各構成要素について説明する。
情報読込部２は、デザインルール８１、ライブラリ８２、ＲＴＬ／ＲＴＬネットリスト８３及びタイミング制約８４等の情報を読み込む。
フロアプラン実施部３は、情報読込部２において読み込んだ情報に基づいて、フロアプランを実施する。
配置・ＣＴＳ・最適化部４は、回路の配置、クロックツリーの構築及び回路の配置の最適化を行う。
ＬＯＣＫＵＰセル削除／挿入部５は、ＤＦＴ(Design For Testability)のために挿入されるＬＯＣＫＵＰセルの削除もしくは挿入を行う。
【００２５】
タイミング最適化部６は、セットアップ時間やホールド時間等を示す情報を含むタイミング制約８４の内容に基づいて、タイミングの最適化を行う。
信号配線部７は、信号配線を行う。
記憶装置８は、デザインルール８１、ライブラリ８２、ＲＴＬ／ＲＴＬネットリスト８３、タイミング制約８４、ゲートレベル・ネットリスト８５及び制御情報ファイル９０を格納する。記憶装置８に格納される情報８１〜８５、９０は、任意の形式のファイルとして格納されている。記憶装置８は、例えば、ハードディスク又は不揮発性メモリ等である。
【００２６】
論理合成部２１は、情報読込部２において読み込んだ情報に基づいて、論理合成を行う。また、論理合成部２１は、論理合成の結果となるゲートレベル・ネットリストを生成して、生成したゲートレベル・ネットリストを記憶装置８に格納する。ここで、ＲＴＬネットリストとは、ＲＴＬをゲートレベルで表した情報である。また、ゲートレベル・ネットリスト８３とは、ＲＴＬをゲートレベルで表し、かつ、引用するライブラリを示す情報等も含んだ情報となる。論理合成部２１は、ＲＴＬ又はＲＴＬネットリストのいずれかの情報に基づいて、論理合成を行うことができる。
【００２７】
擬似セル置換／制御情報ファイル作成部２２は、イネーブル信号の制御対象となる制御対象フリップフロップを擬似セルに置換する。また、擬似セル置換／制御情報ファイル作成部２２は、イネーブル信号と、このイネーブル信号の制御対象となる制御対象フリップフロップとを対応付けた情報を示す制御情報ファイル９０の作成を行う。ここで、制御対象フリップフロップとは、イネーブル信号によって、入力されるデータが制御されるフリップフロップである。
【００２８】
スタンダードセル配置・最適化部４１は、スタンダードセルを構成する回路の配置・最適化を行う。ここで、スタンダードセルとは、クロックゲーティングセルを除くセルである。クロックゲーティングセルとは、クロックゲーティング回路によって構成されるセルである。
クロックゲーティングセル挿入部４２は、スタンダードセルの配置を考慮してクロックラインにクロックゲーティングセルを挿入する。
クロックゲーティングセル配置／ＣＴＳ実施部４３は、クロックゲーティング回路を配置してクロックツリー構築を行う。
【００２９】
続いて、図２を参照して、本発明の実施の形態にかかる制御情報ファイルのファイル・フォーマットの一例について説明する。図２は、本発明の実施の形態にかかる制御情報ファイルのファイル・フォーマットの一例を示す図である。
【００３０】
図２Ａは、制御情報ファイル９０の基本となるフォーマットを示す。
制御情報ファイル９０は、イネーブル信号９１と、このイネーブル信号９１の制御対象となる制御対象フリップフロップ９２とを対応付けて1つの情報ブロックとして構成する。制御情報ファイル９０は、イネーブル信号９１の名称と、このイネーブル信号９１によって制御される制御対象フリップフロップ９２のインスタンス名とが対応付けられて記載された制御情報となる。制御情報ファイル９０は、１つの情報ブロックをイネーブル信号毎に有するため、イネーブル信号数の情報ブロックで構成される。ここで、イネーブル信号９１の名称とは、イネーブル信号毎に一意に定められた名称のことである。また、インスタンス名とは、制御対象フリップフロップ毎に一意に定められた名称のことである。
【００３１】
図２Ｂは、制御情報ファイル９０の具体的な出力例を示す。
図２Ｂにおいて、「ＥＮ１」及び「ＥＮ２」は、イネーブル信号９１の名称を示している。また、図２Ｂにおいて、「ＦＦ１１」〜「ＦＦ１３」及び「ＦＦ２１」〜「ＦＦ２３」は、制御対象フリップフロップ９２のインスタンス名を示している。
図２Ｂは、イネーブル信号ＥＮ１によって、フリップフロップＦＦ１１、フリップフロップＦＦ１２及びフリップフロップＦＦ１３に入力されるデータが制御されることを示している。また、図２Ｂは、イネーブル信号ＥＮ２によって、フリップフロップＦＦ２１、フリップフロップＦＦ２２及びフリップフロップＦＦ２３に入力されるデータが制御されることを示している。
【００３２】
このように、制御情報ファイル９０は、イネーブル信号名と、そのイネーブル信号によって制御される制御対象フリップフロップのインスタンス名とが同じ情報ブロックに記載されている。そのため、制御情報ファイル９０は、クロックゲーティング回路を挿入した場合に、どのイネーブル信号が、どの制御対象フリップフロップに入力されるクロック信号を制御するイネーブル信号なのかを判別可能とする情報となる。なお、半導体集積回路が有するイネーブル信号が１つである場合は、制御情報であるイネーブル信号名と制御対象フリップフロップとの組み合わせは一意に決まるため、制御情報ファイル９０の作成を省略してもよい。
【００３３】
続いて、図３を参照して、本発明の実施の形態にかかるレイアウト装置の処理について説明する。図３は、本発明の実施の形態にかかるレイアウト装置の処理を示すフローチャートである。
【００３４】
情報読込部２の論理合成部２１は、記憶装置８に格納されているデザインルールファイル８１とライブラリファイル８２とを読み込む(Ｓ１０１)。また、論理合成部９１は、ＲＴＬファイル８３とタイミング制約ファイル８４とを読み込む(Ｓ１０２)。
論理合成部２１は、読み込んだファイルに含まれる情報に基づいて、論理合成を行う(Ｓ１０３)。このとき、論理合成部９１は、論理合成対象の半導体集積回路に制御対象フリップフロップが存在する場合であっても、クロックゲーティングセルの挿入を行わずに、論理合成を行う。そして、論理合成部２１は、論理合成の結果となるゲートレベル・ネットリストファイル８５を作成して、作成したゲートレベル・ネットリストファイル８５を記憶装置８に格納する。
【００３５】
次に、情報読込部２の擬似セル置換／制御情報ファイル作成部２２は、半導体集積回路が有する全ての制御対象フリップフロップのセル・タイプを擬似セルに置換する(Ｓ１０４)。擬似セルとは、制御対象フリップフロップと、イネーブル信号の制御対象でないフリップフロップとを明白に区別するために、例えば、標準のフリップフロップのセル・ライブラリのセル名のみを任意に変更したセル・ライブラリである。この擬似セルのセル・ライブラリは、標準のフリップフロップのセル・ライブラリが有する情報のうち、ＡＮＤ論理又はＯＲ論理等のファンクション、後段に信号を伝える速度等を示す駆動能力、入力出力端子等を示すピン情報等のセル名以外の情報が標準のフリップフロップのセル・ライブラリと基本的に同じである。
【００３６】
ここで、擬似セルのセル・ライブラリは、標準のフリップフロップのセル・ライブラリよりも情報量の少ないライブラリとしてもよい。例えば、擬似セルのセル・ライブラリは、後述するクロックゲーティングセル配置、ＣＴＳ実施(Ｓ１１０)を行うまでに不要な情報を標準のフリップフロップのセル・ライブラリから削除したものとなる。例えば、クロックゲーティングセル配置、ＣＴＳ実施(Ｓ１１０)を行うまでに、使用されないクロック信号の入力端子の情報等を含まない擬似セルのセル・ライブラリに置換する。このようにすることで、レイアウト装置１は、クロックゲーティングセル配置、ＣＴＳ実施(Ｓ１１０)前にセルの再置換(Ｓ１０９)を行うまでの間、メモリに保有するセルに関する情報量を少なくすることができる。そのため、他の用途に使用できるメモリ量を増やすことができ、処理速度を向上することができる。
【００３７】
次に、擬似セル置換／制御情報ファイル作成部２２は、擬似セルに置換した制御対象フリップフロップと、この制御対象フリップフロップを制御するイネーブル信号とを対応付けた制御情報ファイル９０を作成し、作成した制御情報ファイル９０を記憶装置８に格納する(Ｓ１０５)。このようにすることで、後述するクロックゲーティングセルの挿入(Ｓ１０８)時に制御情報ファイル９０を参照するのみで、制御対象フリップフロップの特定をすることができる。よって、レイアウト装置１は、例えば、イネーブル信号とその接続関係に関するＲＴＬの情報等の制御対象フリップフロップの特定に必要な情報をメモリに保有しておく必要がなくなる。そのため、他の用途に使用できるメモリ量を増やすことができ、処理速度を向上することができる。
【００３８】
次に、フロアプラン実施部３は、フロアプランを実施して、Ｉ／Ｏ位置、チップサイズ及びハードマクロ等の回路ブロックの配置位置を決定する(Ｓ１０６)。そして、フロアプラン実施部３は、決定した配置位置を示す情報をレイアウトデータに含める。
次に、配置・ＣＴＳ・最適化部４のスタンダードセル配置・最適化部４１は、回路ブロックが配置されたレイアウトデータに対して、タイミング制約を満たすように論理回路の最適化を行いつつ、スタンダードセルの配置を行う(Ｓ１０７)。本実施の形態では、ステップＳ１０３において、クロックゲーティングセルを挿入しないで論理合成を行っているため、クロックゲーティングセルを判断又は削除する処理を行うことなく、クロックゲーティングセルを除いたスタンダードセルを配置することができる。また、ここで、制御対象フリップフロップ等のスタンダードセルの座標が決定されて、決定された座標の情報がレイアウトデータに含められる。
【００３９】
次に、配置・ＣＴＳ・最適化部４のクロックゲーティングセル挿入部４２は、スタンダードセル配置後のレイアウトデータに対して、制御情報ファイル９０に基づいて、クロックゲーティングセルの挿入を行う(Ｓ１０８)。
ここで、クロックゲーティングセルの挿入処理(Ｓ１０８)について、具体的に説明する。まず、クロックゲーティングセル挿入部４２は、記憶装置８から制御情報ファイル９０を取得する。そして、クロックゲーティングセル挿入部４２は、取得した制御情報ファイル９０に示されるイネーブル信号９１と、このイネーブル信号によって制御される制御対象フリップフロップ９２の情報ブロックを、イネーブル信号９１毎に１つのグループ(以下、「大グループ」とする)として取得する。
【００４０】
次に、クロックゲーティングセル挿入部４２は、スタンダードセル配置後のレイアウトデータから、大グループに含まれる全ての制御対象フリップフロップ９２の座標を抽出し、近くに配置されている制御対象フリップフロップ９２同士を１つのグループ(以下、「小グループ」とする)とする。ここで、「近く」とは、予め定められた所定の範囲であって、例えば、クロック信号のタイミング制約を満たすことができる範囲等のように、任意に定めることができる。また、１つの小グループには、必ずしも複数の制御対象フリップフロップ９２が含まれていなくてもよく、制御対象フリップフロップ９２が１つだけ含まれていてもよい。
【００４１】
次に、クロックゲーティングセル挿入部４２は、レイアウトデータのうち、同一の小グループに含まれる全ての制御対象フリップフロップ９２のクロックラインに対して、１つのクロックゲーティングセルを挿入して、イネーブル信号を接続する。このように、クロックゲーティングセルを１つにまとめることで、半導体集積回路に搭載する素子数を削減することができる。また、このように、クロックゲーティングセル挿入部４２は、制御情報ファイル９０に含まれる大グループの全てに対して、順次クロックゲーティングセルの挿入を行う。
【００４２】
また、クロックゲーティングセル挿入部４２は、擬似セルに置換された制御対象フリップフロップのセル・タイプを標準のセル・タイプに置換する(Ｓ１０９)。つまり、クロックゲーティングセル挿入部４２は、制御対象フリップフロップのセル・タイプをステップＳ１０４において置換する前のセル・タイプに戻す。
【００４３】
次に、配置・ＣＴＳ・最適化部４のクロックゲーティング回路配置／ＣＴＳ実施部４３は、クロックゲーティングセル挿入後のレイアウトデータに対して、クロックツリーを構築するために、クロックゲーティングセルの配置とＣＴＳを実施する(Ｓ１１０)。本実施の形態では、この段階で、クロックゲーティングセルを配置し、クロックツリーを構築するようにしているため、低消費電力化を考慮した位置でクロックゲーティングセル及びクロックバッファを配置してクロックツリーを構築することができる。
【００４４】
例えば、クロックゲーティングセルをクロックルートに近い位置に配置するようにして、クロックゲーティングセルの後段にクロックバッファが配置されるようにして、クロックツリーを構築することができる。つまり、クロックゲーティングセルがフリップフロップ等の同期回路の近くに配置されてしまい、クロックゲーティングセルの後段にクロックバッファを配置してクロックスキューを調整することが困難又は不可能となる事態を防ぐことができる。これにより、イネーブル信号によって、クロックゲーティングセルの後段にクロック信号を供給しないようにしている場合には、クロックバッファにクロック信号が供給されなくなるため、クロックバッファにおいて消費される電力を低減することができる。
【００４５】
次に、ＬＯＣＫＵＰセル削除／挿入部５は、半導体集積回路に含まれるフリップフロップ等の同期回路によってＤＦＴのために構成されるスキャンチェーンにおいて、異なるクロックラインからクロック信号が供給されるフリップフロップ間のクロックスキューが十分少ないか否かを判定する(Ｓ１１１)。
【００４６】
クロックスキューが十分少ない場合、ＬＯＣＫＵＰセル削除／挿入部５は、ＬＯＣＫＵＰセルが挿入されているか否かを判定する(Ｓ１１２)。
ＬＯＣＫＵＰセルが挿入されている場合、ＬＯＣＫＵＰセル削除／挿入部５は、クロックスキュー調整は十分であるため、そのＬＯＣＫＵＰセルを削除する(Ｓ１１４)。
クロックスキューが十分少なくない場合、例えば、クロックスキューが大きい場合、ＬＯＣＫＵＰセル削除／挿入部５は、クロックスキューを調整するために、ＬＯＣＫＵＰセルを挿入する(Ｓ１１３)。
【００４７】
次に、タイミング最適化部６は、記憶装置８からタイミング制約８４を取得し、取得したタイミング制約８４の内容に基づいて、タイミングの最適化を実施する(Ｓ１１５)。
次に、信号配線部７は、信号配線を行う。
【００４８】
以上に説明したように、本実施の形態によれば、半導体集積回路に挿入するクロックゲーティングセルを挿入せずに論理合成を行い、その論理合成の結果に基づいて、スタンダードセルの配置を行い、スタンダードセルの配置後に、クロックゲーティングセルを挿入して、クロックゲーティングセルの配置とクロックツリー構築を行っている。
これによれば、論理合成においてクロックゲーティングセルを挿入していないため、クロックゲーティング回路認識／削除工程を行う必要がなくなり、処理時間を低減することができる。また、スタンダードセルの配置後に、クロックゲーティングセルを挿入して、クロックゲーティングセルの配置とクロックツリー構築を行っているため、低消費電力化を考慮した位置となるようにクロックゲーティングセルの配置を制御して、クロックツリーを構築することができる。
【００４９】
同様に、レイアウト装置において、クロックゲーティング回路認識／削除工程が実装されている場合であっても、論理合成においてクロックゲーティングセルを挿入していないため、クロックラインの組み合わせ回路に対して入力されるイネーブル信号数Ｙは０となり、クロックゲーティング回路認識／削除工程に要する時間は、Ｘ×Ｙ時間が０時間となる。そのため、処理時間を低減することができるとともに、低消費電力化を考慮した位置となるようにクロックゲーティングセルの配置を制御して、クロックツリーを構築することができる。
【００５０】
なお、本発明は、上述の実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、本実施の形態では、論理合成において、半導体集積回路に挿入するクロックゲーティングセルの全てを挿入しないようにしているが、そのうちの少なくとも１つを挿入しないようにし、挿入しなかったクロックゲーティングセルをスタンダードセルの配置後に挿入するようにしてもよい。
【００５１】
以上に説明した本発明にかかるレイアウト装置は、上述の実施の形態の機能を実現するプログラムを記憶した記憶媒体をシステムもしくは装置に供給し、システムあるいは装置の有するコンピュータ又はＣＰＵ、ＭＰＵ(Micro Processing Unit)がこのプログラムを実行することによって、構成することが可能である。
【００５２】
また、このプログラムは様々な種類の記憶媒体に格納することが可能であり、通信媒体を介して伝達されることが可能である。ここで、記憶媒体には、例えば、フレキシブルディスク、ハードディスク、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)、ＤＶＤ(Digital Versatile Disc)、ＢＤ(Blu-ray(登録商標) Disc)、ＲＯＭ(Read Only Memory)カートリッジ、バッテリバックアップ付きＲＡＭ(Random Access Memory)、メモリカートリッジ、フラッシュメモリカートリッジ、不揮発性ＲＡＭカートリッジを含む。また、通信媒体には、電話回線等の有線通信媒体、マイクロ波回線等の無線通信媒体を含む。また、上述のプログラムは、インターネットを介して伝達することも可能である。
【００５３】
また、コンピュータが上述の実施の形態の機能を実現するプログラムを実行することにより、上述の実施の形態の機能が実現されるだけではなく、このプログラムの指示に基づき、コンピュータ上で稼動しているＯＳ(Operating System)もしくはＥＤＡツール等のアプリケーションソフトと共同して上述の実施の形態の機能が実現される場合も、発明の実施の形態に含まれる。
さらに、このプログラムの処理の全てもしくは一部がコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットにより行われて上述の実施の形態の機能が実現される場合も、発明の実施の形態に含まれる。
【符号の説明】
【００５４】
１、３０１    レイアウト装置
２、３０２    情報読込部
３、３０３    フロアプラン実施部
４、３０４    配置・ＣＴＳ・最適化部
５、３０５    ＬＯＣＫＵＰセル削除／挿入部
６、３０６    タイミング最適化部
７、３０７    信号配線部
８    記憶装置
９    情報読込部
２１    論理合成部
２２    擬似セル配置／制御情報ファイル作成部
４１    スタンダードセル配置・最適化部
４２    クロックゲーティングセル挿入部
４３    クロックゲーティングセル配置／ＣＴＳ実施部
８１    デザインルール
８２    ライブラリ
８３    ＲＴＬ／ＲＴＬネットリスト
８４    タイミング制約
８５    ゲートレベル・ネットリスト
９０    制御情報ファイル
９１    クロック制御信号
９２    制御対象フリップフロップ
３４１    クロックライン認識部
３４２    クロックゲーティング回路認識部
３４３    クロックゲーティング回路削除部
３４４    他回路配置・最適化部
３４５    クロックゲーティング回路まとめ／分割部
３４６    クロックゲーティング回路配置／ＣＴＳ実施部
【図１】
2011065320.tif 000003
【図２Ａ】
2011065320.tif 000004
【図２Ｂ】
2011065320.tif 000005
【図３】
2011065320.tif 000006
【図４】
2011065320.tif 000007
【図５】
2011065320.tif 000008