JP2011065320A - レイアウト方法、レイアウト装置及びレイアウトプログラム - Google Patents
レイアウト方法、レイアウト装置及びレイアウトプログラム Download PDFInfo
- Publication number
- JP2011065320A JP2011065320A JP2009214087A JP2009214087A JP2011065320A JP 2011065320 A JP2011065320 A JP 2011065320A JP 2009214087 A JP2009214087 A JP 2009214087A JP 2009214087 A JP2009214087 A JP 2009214087A JP 2011065320 A JP2011065320 A JP 2011065320A
- Authority
- JP
- Japan
- Prior art keywords
- cell
- clock gating
- clock
- layout
- logic synthesis
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/396—Clock trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2117/00—Details relating to the type or aim of the circuit design
- G06F2117/04—Clock gating
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
【課題】クロックゲーティングセルの配置を制御することによって消費電力を低減する場合に、その処理時間を削減することができるレイアウト方法、レイアウト装置及びレイアウトプログラムを提供すること
【解決手段】本発明にかかるレイアウト方法は、半導体集積回路のレイアウトを行うレイアウト方法であって、半導体集積回路に挿入するクロックゲーティングセルのうち、少なくとも1つのクロックゲーティングセルを挿入せずに論理合成を行い、論理合成の結果に基づいて、セルの配置を行い、セルの配置後に、論理合成において挿入しなかったクロックゲーティングセルを挿入し、挿入したクロックゲーティングセルを配置し、クロックツリーの構築を行う。
【選択図】図1
【解決手段】本発明にかかるレイアウト方法は、半導体集積回路のレイアウトを行うレイアウト方法であって、半導体集積回路に挿入するクロックゲーティングセルのうち、少なくとも1つのクロックゲーティングセルを挿入せずに論理合成を行い、論理合成の結果に基づいて、セルの配置を行い、セルの配置後に、論理合成において挿入しなかったクロックゲーティングセルを挿入し、挿入したクロックゲーティングセルを配置し、クロックツリーの構築を行う。
【選択図】図1
Description
本発明は、レイアウト方法、レイアウト装置及びレイアウトプログラムに関し、特に半導体集積回路のレイアウトに関する。
近年、半導体集積回路の大規模化に伴い、半導体集積回路における消費電力が増大してきている。そのため、半導体集積回路は、低消費電力化のために、クロックゲーティング回路を搭載している。
特許文献1には、クロックゲーティング回路の配置位置等を制御することで低消費電力化を図る技術が開示されている。以下、図4及び図5を参照して、特許文献1に開示されているレイアウト装置について説明する。図4は、特許文献1に開示のレイアウト装置の構成を示すブロック図である。
特許文献1に開示されているレイアウト装置301は、情報読込部302と、フロアプラン実施部303と、配置・CTS(Clock Tree Synthesis)・最適化部304と、LOCKUPセル削除/挿入部305と、タイミング最適化部306と、信号配線部307とを有する。また、配置・CTS・最適化部304は、クロックライン認識部341、クロックゲーティング回路認識部342、クロックゲーティング回路削除部344、他回路配置・最適化部344、クロックゲーティング回路まとめ/分割部345及びクロックゲーティング回路配置/CTS実施部346を有する。
図5は、特許文献1に開示のレイアウト装置の処理を示すフローチャートである。
まず、情報読込部302は、デザインルール、ライブラリ、RTL(Register Transfer Level)もしくネットリスト、タイミング制約を読み込む(S401、S402)。
次に、フロアプラン実施部303は、フロアプランを実施し、I/O(Input Output)位置、チップサイズ、ハードマクロの配置位置を決定する(S403)。
次に、クロックライン認識部341は、作成する回路内のクロックラインを認識する(S404)。
まず、情報読込部302は、デザインルール、ライブラリ、RTL(Register Transfer Level)もしくネットリスト、タイミング制約を読み込む(S401、S402)。
次に、フロアプラン実施部303は、フロアプランを実施し、I/O(Input Output)位置、チップサイズ、ハードマクロの配置位置を決定する(S403)。
次に、クロックライン認識部341は、作成する回路内のクロックラインを認識する(S404)。
次に、クロックゲーティング回路認識部342は、認識したクロックラインにクロックゲーティング回路に相当する組み合わせ回路が存在しているかどうかをチェックする(S405)。ここで、組み合わせ回路がクロックゲーティング回路であるか否かの判断は、その回路の後段にクロック信号が無条件に伝わるか、イネーブル信号等によって停止されるかによって判断する。なお、ICG(Integrated Clock Gating Cell)のようにマクロ化されたセルにあっては、セル名から判断することもできる。
クロックゲーティング回路が存在しない場合、他回路配置・最適化部344は、配置・CTS・最適化を実施する(S406)。
クロックゲーティング回路が存在している場合、クロックゲーティング回路削除部343は、そのクロックゲーティング回路を初期配置対象から除外する(S407)。
クロックゲーティング回路が存在しない場合、他回路配置・最適化部344は、配置・CTS・最適化を実施する(S406)。
クロックゲーティング回路が存在している場合、クロックゲーティング回路削除部343は、そのクロックゲーティング回路を初期配置対象から除外する(S407)。
次に、他回路配置・最適化部344は、クロックラインのクロックゲーティング回路以外のセルを配置する(S408)。
次に、クロックゲーティング回路まとめ/分割部345は、クロックラインのクロックゲーティングセルのまとめもしくは分割を行う(S409)。
次に、クロックゲーティング回路配置/CTS実施部346は、クロックラインのクロックゲーティングセルの配置およびクロックツリー構築を、低消費電力化を考慮した上でクロックスキューを調整しつつ実施する(S410)。このとき、クロックゲーティング回路をクロックルートに近い初段に配置してやることにより、その手前のクロックツリーを構築する必要はなくなり、クロックツリーを構成するセルによる消費電力を低減することができる。
以降、LOCKUPセルの処理を行い(S411〜S414)、クロックツリー構築後のタイミング最適化を実施し(ステップS415)、信号配線を実施(S416)して、レイアウト完了となる。
次に、クロックゲーティング回路まとめ/分割部345は、クロックラインのクロックゲーティングセルのまとめもしくは分割を行う(S409)。
次に、クロックゲーティング回路配置/CTS実施部346は、クロックラインのクロックゲーティングセルの配置およびクロックツリー構築を、低消費電力化を考慮した上でクロックスキューを調整しつつ実施する(S410)。このとき、クロックゲーティング回路をクロックルートに近い初段に配置してやることにより、その手前のクロックツリーを構築する必要はなくなり、クロックツリーを構成するセルによる消費電力を低減することができる。
以降、LOCKUPセルの処理を行い(S411〜S414)、クロックツリー構築後のタイミング最適化を実施し(ステップS415)、信号配線を実施(S416)して、レイアウト完了となる。
以上のようにして、特許文献1に開示のレイアウト装置は、クロックゲーティング回路がフリップフロップ等の同期回路の近くに配置されてしまうことにより、クロックスキューの調整が困難ないしは不可能となる問題を解決している。
しかし、特許文献1に開示の技術は、配置・CTS・最適化部304のクロックライン認識部341、クロックゲーティング回路認識部342及びクロックゲーティング回路削除部343における各工程(以下、これら3つの工程をまとめて「クロックゲーティング回路認識/削除工程」とする)に時間を要してしまうという問題がある。その理由を以下に述べる。
しかし、特許文献1に開示の技術は、配置・CTS・最適化部304のクロックライン認識部341、クロックゲーティング回路認識部342及びクロックゲーティング回路削除部343における各工程(以下、これら3つの工程をまとめて「クロックゲーティング回路認識/削除工程」とする)に時間を要してしまうという問題がある。その理由を以下に述べる。
特許文献1に開示の技術において、クロックラインの組み合わせ回路に対して入力されるイネーブル信号の有無に基づいてクロックゲーティング回路を判断している場合、クロックゲーティング回路認識/削除工程が、クロックラインの組み合わせ回路に対するイネーブル信号数繰り返して実施される。そのため、クロックゲーティング回路認識/削除工程に要する時間がX時間であり、クロックラインの組み合わせ回路に対して入力されるイネーブル信号数がYである半導体集積回路の場合、半導体集積回路全体のクロックゲーティング回路認識/削除工程に要する時間は、X×Y時間となる。つまり、クロックゲーティング回路認識/削除工程に要する時間は、クロックラインの組み合わせ回路に対して入力されるイネーブル信号数に比例して増大する。ところが、近年、半導体集積回路の大規模化に伴い、クロックゲーティング回路及びその出力を制御するイネーブル信号の数が増加してきていることに鑑みると、クロックゲーティング回路認識/削除工程にかかる時間は非常に大きくなってしまうという問題がある。
また、特許文献1に開示の技術において、セル名に基づいてクロックゲーティング回路を判断している場合、クロックゲーティング回路認識/削除工程がクロックゲーティング回路数繰り返して実施されることとなる。それぞれのクロックゲーティング回路には、イネーブル信号が入力されているため、セル名に基づいてクロックゲーティング回路を判断している場合であっても、クロックラインの組み合わせ回路に対して入力されるイネーブル信号数に比例して、クロックゲーティング回路認識/削除工程にかかる時間が増加してしまうと言える。
クロックゲーティング回路及びその出力を制御するイネーブル信号は、半導体集積回路に対して上限なく任意に挿入することができる。そのため、大規模かつ複雑なクロック制御機能を有する半導体集積回路になるほど多くのクロックゲーティング回路及びその出力を制御するイネーブル信号が挿入され、クロックゲーティング回路認識/削除工程に要する時間は無制限に増大してしまう。
なお、特許文献2には、半導体集積回路において、チップ上でのセルの位置関係、セルの消費電力を左右する動作周波数を考慮することにより、セル配置後の電源降下領域を事前に推測し、推測した電圧降下領域内でのセルの再配置により電源電圧降下を抑制することを可能とする技術が開示されている。これにより、電源電圧降下の検証後に実施する再配置配線に関する工程を削減することを可能としている。しかし、特許文献2は、クロックゲーティングセルの配置を制御することによって消費電力を低減する場合に、その処理時間を削減することができるようにする具体的な技術を開示したものではない。
背景技術として説明したように、特許文献1に開示の技術では、クロックゲーティングセルの配置を制御することで消費電力を低減する場合に、その処理に時間がかかってしまうという問題がある。
本発明の第1の態様にかかるレイアウト方法は、半導体集積回路のレイアウトを行うレイアウト方法であって、前記半導体集積回路に挿入するクロックゲーティングセルのうち、少なくとも1つのクロックゲーティングセルを挿入せずに論理合成を行い、前記論理合成の結果に基づいて、セルの配置を行い、前記セルの配置後に、前記論理合成において挿入しなかったクロックゲーティングセルを挿入し、前記挿入したクロックゲーティングセルを配置し、クロックツリーの構築を行うものである。
本発明の第2の態様にかかるレイアウト装置は、半導体集積回路のレイアウトを行うレイアウト装置であって、前記半導体集積回路に挿入するクロックゲーティングセルのうち、少なくとも1つのクロックゲーティングセルを挿入せずに論理合成を行う論理合成部と、前記論理合成の結果に基づいて、セルの配置を行うセル配置部と、前記セル配置部におけるセルの配置後に、前記論理合成において挿入しなかったクロックゲーティングセルを挿入するクロックゲーティングセル挿入部と、前記クロックゲーティングセル挿入部が挿入したクロックゲーティングセルを配置し、クロックツリーの構築を行うクロックゲーティングセル配置・ツリー構築実施部と、を備えたものである。
本発明の第3の態様にかかるレイアウトプログラムは、半導体集積回路のレイアウトを行うレイアウトプログラムであって、前記半導体集積回路に挿入するクロックゲーティングセルのうち、少なくとも1つのクロックゲーティングセルを挿入せずに論理合成を行う処理と、前記論理合成の結果に基づいて、セルの配置を行う処理と、前記セルの配置後に、前記論理合成において挿入しなかったクロックゲーティングセルを挿入する処理と、前記挿入したクロックゲーティングセルを配置し、クロックツリーの構築を行う処理と、をコンピュータに実行させるものである。
これらによれば、論理合成においてクロックゲーティングセルを挿入していないため、クロックゲーティング回路認識/削除工程を行う必要がなくなり、処理時間を低減することができる。また、スタンダードセルの配置後に、クロックゲーティングセルを挿入して、クロックゲーティングセルの配置とクロックツリー構築を行っているため、低消費電力化を考慮した位置となるようにクロックゲーティングセルの配置を制御して、クロックツリーを構築することができる。
上述した各態様により、クロックゲーティングセルの配置を制御することによって消費電力を低減する場合に、その処理時間を削減することができるレイアウト方法、レイアウト装置及びレイアウトプログラムを提供することができる。
図1を参照して、本発明の実施の形態にかかるレイアウト装置の構成について説明する。図1は、本発明の実施の形態にかかるレイアウト装置の構成を示すブロック図である。
レイアウト装置1は、情報読込部2、フロアプラン実施部3、配置・CTS・最適化部4、LOCKUPセル削除/挿入部5、タイミング最適化部6及び信号配線部7を有する。レイアウト装置1は、例えば、PC(Personal Computer)やサーバ等の情報処理装置である。つまり、レイアウト装置1は、例えば、CPU(Central Processing Unit)やメモリ等のハードウェアを有しており、これらのハードウェアによって処理を実行する。レイアウト装置1は、入力された情報に基づいて、半導体集積回路のレイアウトを行い、半導体集積回路のレイアウトを示すレイアウトデータを生成する。
情報読込部2は、論理合成部21及び擬似セル置換/制御情報ファイル作成部22を有する。配置・CTS・最適化部4は、スタンダードセル配置・最適化部41、クロックゲーティングセル挿入部42及びクロックゲーティングセル配置/CTS実施部43を有する。
続いて、上述したレイアウト装置の各構成要素について説明する。
情報読込部2は、デザインルール81、ライブラリ82、RTL/RTLネットリスト83及びタイミング制約84等の情報を読み込む。
フロアプラン実施部3は、情報読込部2において読み込んだ情報に基づいて、フロアプランを実施する。
配置・CTS・最適化部4は、回路の配置、クロックツリーの構築及び回路の配置の最適化を行う。
LOCKUPセル削除/挿入部5は、DFT(Design For Testability)のために挿入されるLOCKUPセルの削除もしくは挿入を行う。
情報読込部2は、デザインルール81、ライブラリ82、RTL/RTLネットリスト83及びタイミング制約84等の情報を読み込む。
フロアプラン実施部3は、情報読込部2において読み込んだ情報に基づいて、フロアプランを実施する。
配置・CTS・最適化部4は、回路の配置、クロックツリーの構築及び回路の配置の最適化を行う。
LOCKUPセル削除/挿入部5は、DFT(Design For Testability)のために挿入されるLOCKUPセルの削除もしくは挿入を行う。
タイミング最適化部6は、セットアップ時間やホールド時間等を示す情報を含むタイミング制約84の内容に基づいて、タイミングの最適化を行う。
信号配線部7は、信号配線を行う。
記憶装置8は、デザインルール81、ライブラリ82、RTL/RTLネットリスト83、タイミング制約84、ゲートレベル・ネットリスト85及び制御情報ファイル90を格納する。記憶装置8に格納される情報81〜85、90は、任意の形式のファイルとして格納されている。記憶装置8は、例えば、ハードディスク又は不揮発性メモリ等である。
信号配線部7は、信号配線を行う。
記憶装置8は、デザインルール81、ライブラリ82、RTL/RTLネットリスト83、タイミング制約84、ゲートレベル・ネットリスト85及び制御情報ファイル90を格納する。記憶装置8に格納される情報81〜85、90は、任意の形式のファイルとして格納されている。記憶装置8は、例えば、ハードディスク又は不揮発性メモリ等である。
論理合成部21は、情報読込部2において読み込んだ情報に基づいて、論理合成を行う。また、論理合成部21は、論理合成の結果となるゲートレベル・ネットリストを生成して、生成したゲートレベル・ネットリストを記憶装置8に格納する。ここで、RTLネットリストとは、RTLをゲートレベルで表した情報である。また、ゲートレベル・ネットリスト83とは、RTLをゲートレベルで表し、かつ、引用するライブラリを示す情報等も含んだ情報となる。論理合成部21は、RTL又はRTLネットリストのいずれかの情報に基づいて、論理合成を行うことができる。
擬似セル置換/制御情報ファイル作成部22は、イネーブル信号の制御対象となる制御対象フリップフロップを擬似セルに置換する。また、擬似セル置換/制御情報ファイル作成部22は、イネーブル信号と、このイネーブル信号の制御対象となる制御対象フリップフロップとを対応付けた情報を示す制御情報ファイル90の作成を行う。ここで、制御対象フリップフロップとは、イネーブル信号によって、入力されるデータが制御されるフリップフロップである。
スタンダードセル配置・最適化部41は、スタンダードセルを構成する回路の配置・最適化を行う。ここで、スタンダードセルとは、クロックゲーティングセルを除くセルである。クロックゲーティングセルとは、クロックゲーティング回路によって構成されるセルである。
クロックゲーティングセル挿入部42は、スタンダードセルの配置を考慮してクロックラインにクロックゲーティングセルを挿入する。
クロックゲーティングセル配置/CTS実施部43は、クロックゲーティング回路を配置してクロックツリー構築を行う。
クロックゲーティングセル挿入部42は、スタンダードセルの配置を考慮してクロックラインにクロックゲーティングセルを挿入する。
クロックゲーティングセル配置/CTS実施部43は、クロックゲーティング回路を配置してクロックツリー構築を行う。
続いて、図2を参照して、本発明の実施の形態にかかる制御情報ファイルのファイル・フォーマットの一例について説明する。図2は、本発明の実施の形態にかかる制御情報ファイルのファイル・フォーマットの一例を示す図である。
図2Aは、制御情報ファイル90の基本となるフォーマットを示す。
制御情報ファイル90は、イネーブル信号91と、このイネーブル信号91の制御対象となる制御対象フリップフロップ92とを対応付けて1つの情報ブロックとして構成する。制御情報ファイル90は、イネーブル信号91の名称と、このイネーブル信号91によって制御される制御対象フリップフロップ92のインスタンス名とが対応付けられて記載された制御情報となる。制御情報ファイル90は、1つの情報ブロックをイネーブル信号毎に有するため、イネーブル信号数の情報ブロックで構成される。ここで、イネーブル信号91の名称とは、イネーブル信号毎に一意に定められた名称のことである。また、インスタンス名とは、制御対象フリップフロップ毎に一意に定められた名称のことである。
制御情報ファイル90は、イネーブル信号91と、このイネーブル信号91の制御対象となる制御対象フリップフロップ92とを対応付けて1つの情報ブロックとして構成する。制御情報ファイル90は、イネーブル信号91の名称と、このイネーブル信号91によって制御される制御対象フリップフロップ92のインスタンス名とが対応付けられて記載された制御情報となる。制御情報ファイル90は、1つの情報ブロックをイネーブル信号毎に有するため、イネーブル信号数の情報ブロックで構成される。ここで、イネーブル信号91の名称とは、イネーブル信号毎に一意に定められた名称のことである。また、インスタンス名とは、制御対象フリップフロップ毎に一意に定められた名称のことである。
図2Bは、制御情報ファイル90の具体的な出力例を示す。
図2Bにおいて、「EN1」及び「EN2」は、イネーブル信号91の名称を示している。また、図2Bにおいて、「FF11」〜「FF13」及び「FF21」〜「FF23」は、制御対象フリップフロップ92のインスタンス名を示している。
図2Bは、イネーブル信号EN1によって、フリップフロップFF11、フリップフロップFF12及びフリップフロップFF13に入力されるデータが制御されることを示している。また、図2Bは、イネーブル信号EN2によって、フリップフロップFF21、フリップフロップFF22及びフリップフロップFF23に入力されるデータが制御されることを示している。
図2Bにおいて、「EN1」及び「EN2」は、イネーブル信号91の名称を示している。また、図2Bにおいて、「FF11」〜「FF13」及び「FF21」〜「FF23」は、制御対象フリップフロップ92のインスタンス名を示している。
図2Bは、イネーブル信号EN1によって、フリップフロップFF11、フリップフロップFF12及びフリップフロップFF13に入力されるデータが制御されることを示している。また、図2Bは、イネーブル信号EN2によって、フリップフロップFF21、フリップフロップFF22及びフリップフロップFF23に入力されるデータが制御されることを示している。
このように、制御情報ファイル90は、イネーブル信号名と、そのイネーブル信号によって制御される制御対象フリップフロップのインスタンス名とが同じ情報ブロックに記載されている。そのため、制御情報ファイル90は、クロックゲーティング回路を挿入した場合に、どのイネーブル信号が、どの制御対象フリップフロップに入力されるクロック信号を制御するイネーブル信号なのかを判別可能とする情報となる。なお、半導体集積回路が有するイネーブル信号が1つである場合は、制御情報であるイネーブル信号名と制御対象フリップフロップとの組み合わせは一意に決まるため、制御情報ファイル90の作成を省略してもよい。
続いて、図3を参照して、本発明の実施の形態にかかるレイアウト装置の処理について説明する。図3は、本発明の実施の形態にかかるレイアウト装置の処理を示すフローチャートである。
情報読込部2の論理合成部21は、記憶装置8に格納されているデザインルールファイル81とライブラリファイル82とを読み込む(S101)。また、論理合成部91は、RTLファイル83とタイミング制約ファイル84とを読み込む(S102)。
論理合成部21は、読み込んだファイルに含まれる情報に基づいて、論理合成を行う(S103)。このとき、論理合成部91は、論理合成対象の半導体集積回路に制御対象フリップフロップが存在する場合であっても、クロックゲーティングセルの挿入を行わずに、論理合成を行う。そして、論理合成部21は、論理合成の結果となるゲートレベル・ネットリストファイル85を作成して、作成したゲートレベル・ネットリストファイル85を記憶装置8に格納する。
論理合成部21は、読み込んだファイルに含まれる情報に基づいて、論理合成を行う(S103)。このとき、論理合成部91は、論理合成対象の半導体集積回路に制御対象フリップフロップが存在する場合であっても、クロックゲーティングセルの挿入を行わずに、論理合成を行う。そして、論理合成部21は、論理合成の結果となるゲートレベル・ネットリストファイル85を作成して、作成したゲートレベル・ネットリストファイル85を記憶装置8に格納する。
次に、情報読込部2の擬似セル置換/制御情報ファイル作成部22は、半導体集積回路が有する全ての制御対象フリップフロップのセル・タイプを擬似セルに置換する(S104)。擬似セルとは、制御対象フリップフロップと、イネーブル信号の制御対象でないフリップフロップとを明白に区別するために、例えば、標準のフリップフロップのセル・ライブラリのセル名のみを任意に変更したセル・ライブラリである。この擬似セルのセル・ライブラリは、標準のフリップフロップのセル・ライブラリが有する情報のうち、AND論理又はOR論理等のファンクション、後段に信号を伝える速度等を示す駆動能力、入力出力端子等を示すピン情報等のセル名以外の情報が標準のフリップフロップのセル・ライブラリと基本的に同じである。
ここで、擬似セルのセル・ライブラリは、標準のフリップフロップのセル・ライブラリよりも情報量の少ないライブラリとしてもよい。例えば、擬似セルのセル・ライブラリは、後述するクロックゲーティングセル配置、CTS実施(S110)を行うまでに不要な情報を標準のフリップフロップのセル・ライブラリから削除したものとなる。例えば、クロックゲーティングセル配置、CTS実施(S110)を行うまでに、使用されないクロック信号の入力端子の情報等を含まない擬似セルのセル・ライブラリに置換する。このようにすることで、レイアウト装置1は、クロックゲーティングセル配置、CTS実施(S110)前にセルの再置換(S109)を行うまでの間、メモリに保有するセルに関する情報量を少なくすることができる。そのため、他の用途に使用できるメモリ量を増やすことができ、処理速度を向上することができる。
次に、擬似セル置換/制御情報ファイル作成部22は、擬似セルに置換した制御対象フリップフロップと、この制御対象フリップフロップを制御するイネーブル信号とを対応付けた制御情報ファイル90を作成し、作成した制御情報ファイル90を記憶装置8に格納する(S105)。このようにすることで、後述するクロックゲーティングセルの挿入(S108)時に制御情報ファイル90を参照するのみで、制御対象フリップフロップの特定をすることができる。よって、レイアウト装置1は、例えば、イネーブル信号とその接続関係に関するRTLの情報等の制御対象フリップフロップの特定に必要な情報をメモリに保有しておく必要がなくなる。そのため、他の用途に使用できるメモリ量を増やすことができ、処理速度を向上することができる。
次に、フロアプラン実施部3は、フロアプランを実施して、I/O位置、チップサイズ及びハードマクロ等の回路ブロックの配置位置を決定する(S106)。そして、フロアプラン実施部3は、決定した配置位置を示す情報をレイアウトデータに含める。
次に、配置・CTS・最適化部4のスタンダードセル配置・最適化部41は、回路ブロックが配置されたレイアウトデータに対して、タイミング制約を満たすように論理回路の最適化を行いつつ、スタンダードセルの配置を行う(S107)。本実施の形態では、ステップS103において、クロックゲーティングセルを挿入しないで論理合成を行っているため、クロックゲーティングセルを判断又は削除する処理を行うことなく、クロックゲーティングセルを除いたスタンダードセルを配置することができる。また、ここで、制御対象フリップフロップ等のスタンダードセルの座標が決定されて、決定された座標の情報がレイアウトデータに含められる。
次に、配置・CTS・最適化部4のスタンダードセル配置・最適化部41は、回路ブロックが配置されたレイアウトデータに対して、タイミング制約を満たすように論理回路の最適化を行いつつ、スタンダードセルの配置を行う(S107)。本実施の形態では、ステップS103において、クロックゲーティングセルを挿入しないで論理合成を行っているため、クロックゲーティングセルを判断又は削除する処理を行うことなく、クロックゲーティングセルを除いたスタンダードセルを配置することができる。また、ここで、制御対象フリップフロップ等のスタンダードセルの座標が決定されて、決定された座標の情報がレイアウトデータに含められる。
次に、配置・CTS・最適化部4のクロックゲーティングセル挿入部42は、スタンダードセル配置後のレイアウトデータに対して、制御情報ファイル90に基づいて、クロックゲーティングセルの挿入を行う(S108)。
ここで、クロックゲーティングセルの挿入処理(S108)について、具体的に説明する。まず、クロックゲーティングセル挿入部42は、記憶装置8から制御情報ファイル90を取得する。そして、クロックゲーティングセル挿入部42は、取得した制御情報ファイル90に示されるイネーブル信号91と、このイネーブル信号によって制御される制御対象フリップフロップ92の情報ブロックを、イネーブル信号91毎に1つのグループ(以下、「大グループ」とする)として取得する。
ここで、クロックゲーティングセルの挿入処理(S108)について、具体的に説明する。まず、クロックゲーティングセル挿入部42は、記憶装置8から制御情報ファイル90を取得する。そして、クロックゲーティングセル挿入部42は、取得した制御情報ファイル90に示されるイネーブル信号91と、このイネーブル信号によって制御される制御対象フリップフロップ92の情報ブロックを、イネーブル信号91毎に1つのグループ(以下、「大グループ」とする)として取得する。
次に、クロックゲーティングセル挿入部42は、スタンダードセル配置後のレイアウトデータから、大グループに含まれる全ての制御対象フリップフロップ92の座標を抽出し、近くに配置されている制御対象フリップフロップ92同士を1つのグループ(以下、「小グループ」とする)とする。ここで、「近く」とは、予め定められた所定の範囲であって、例えば、クロック信号のタイミング制約を満たすことができる範囲等のように、任意に定めることができる。また、1つの小グループには、必ずしも複数の制御対象フリップフロップ92が含まれていなくてもよく、制御対象フリップフロップ92が1つだけ含まれていてもよい。
次に、クロックゲーティングセル挿入部42は、レイアウトデータのうち、同一の小グループに含まれる全ての制御対象フリップフロップ92のクロックラインに対して、1つのクロックゲーティングセルを挿入して、イネーブル信号を接続する。このように、クロックゲーティングセルを1つにまとめることで、半導体集積回路に搭載する素子数を削減することができる。また、このように、クロックゲーティングセル挿入部42は、制御情報ファイル90に含まれる大グループの全てに対して、順次クロックゲーティングセルの挿入を行う。
また、クロックゲーティングセル挿入部42は、擬似セルに置換された制御対象フリップフロップのセル・タイプを標準のセル・タイプに置換する(S109)。つまり、クロックゲーティングセル挿入部42は、制御対象フリップフロップのセル・タイプをステップS104において置換する前のセル・タイプに戻す。
次に、配置・CTS・最適化部4のクロックゲーティング回路配置/CTS実施部43は、クロックゲーティングセル挿入後のレイアウトデータに対して、クロックツリーを構築するために、クロックゲーティングセルの配置とCTSを実施する(S110)。本実施の形態では、この段階で、クロックゲーティングセルを配置し、クロックツリーを構築するようにしているため、低消費電力化を考慮した位置でクロックゲーティングセル及びクロックバッファを配置してクロックツリーを構築することができる。
例えば、クロックゲーティングセルをクロックルートに近い位置に配置するようにして、クロックゲーティングセルの後段にクロックバッファが配置されるようにして、クロックツリーを構築することができる。つまり、クロックゲーティングセルがフリップフロップ等の同期回路の近くに配置されてしまい、クロックゲーティングセルの後段にクロックバッファを配置してクロックスキューを調整することが困難又は不可能となる事態を防ぐことができる。これにより、イネーブル信号によって、クロックゲーティングセルの後段にクロック信号を供給しないようにしている場合には、クロックバッファにクロック信号が供給されなくなるため、クロックバッファにおいて消費される電力を低減することができる。
次に、LOCKUPセル削除/挿入部5は、半導体集積回路に含まれるフリップフロップ等の同期回路によってDFTのために構成されるスキャンチェーンにおいて、異なるクロックラインからクロック信号が供給されるフリップフロップ間のクロックスキューが十分少ないか否かを判定する(S111)。
クロックスキューが十分少ない場合、LOCKUPセル削除/挿入部5は、LOCKUPセルが挿入されているか否かを判定する(S112)。
LOCKUPセルが挿入されている場合、LOCKUPセル削除/挿入部5は、クロックスキュー調整は十分であるため、そのLOCKUPセルを削除する(S114)。
クロックスキューが十分少なくない場合、例えば、クロックスキューが大きい場合、LOCKUPセル削除/挿入部5は、クロックスキューを調整するために、LOCKUPセルを挿入する(S113)。
LOCKUPセルが挿入されている場合、LOCKUPセル削除/挿入部5は、クロックスキュー調整は十分であるため、そのLOCKUPセルを削除する(S114)。
クロックスキューが十分少なくない場合、例えば、クロックスキューが大きい場合、LOCKUPセル削除/挿入部5は、クロックスキューを調整するために、LOCKUPセルを挿入する(S113)。
次に、タイミング最適化部6は、記憶装置8からタイミング制約84を取得し、取得したタイミング制約84の内容に基づいて、タイミングの最適化を実施する(S115)。
次に、信号配線部7は、信号配線を行う。
次に、信号配線部7は、信号配線を行う。
以上に説明したように、本実施の形態によれば、半導体集積回路に挿入するクロックゲーティングセルを挿入せずに論理合成を行い、その論理合成の結果に基づいて、スタンダードセルの配置を行い、スタンダードセルの配置後に、クロックゲーティングセルを挿入して、クロックゲーティングセルの配置とクロックツリー構築を行っている。
これによれば、論理合成においてクロックゲーティングセルを挿入していないため、クロックゲーティング回路認識/削除工程を行う必要がなくなり、処理時間を低減することができる。また、スタンダードセルの配置後に、クロックゲーティングセルを挿入して、クロックゲーティングセルの配置とクロックツリー構築を行っているため、低消費電力化を考慮した位置となるようにクロックゲーティングセルの配置を制御して、クロックツリーを構築することができる。
これによれば、論理合成においてクロックゲーティングセルを挿入していないため、クロックゲーティング回路認識/削除工程を行う必要がなくなり、処理時間を低減することができる。また、スタンダードセルの配置後に、クロックゲーティングセルを挿入して、クロックゲーティングセルの配置とクロックツリー構築を行っているため、低消費電力化を考慮した位置となるようにクロックゲーティングセルの配置を制御して、クロックツリーを構築することができる。
同様に、レイアウト装置において、クロックゲーティング回路認識/削除工程が実装されている場合であっても、論理合成においてクロックゲーティングセルを挿入していないため、クロックラインの組み合わせ回路に対して入力されるイネーブル信号数Yは0となり、クロックゲーティング回路認識/削除工程に要する時間は、X×Y時間が0時間となる。そのため、処理時間を低減することができるとともに、低消費電力化を考慮した位置となるようにクロックゲーティングセルの配置を制御して、クロックツリーを構築することができる。
なお、本発明は、上述の実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、本実施の形態では、論理合成において、半導体集積回路に挿入するクロックゲーティングセルの全てを挿入しないようにしているが、そのうちの少なくとも1つを挿入しないようにし、挿入しなかったクロックゲーティングセルをスタンダードセルの配置後に挿入するようにしてもよい。
以上に説明した本発明にかかるレイアウト装置は、上述の実施の形態の機能を実現するプログラムを記憶した記憶媒体をシステムもしくは装置に供給し、システムあるいは装置の有するコンピュータ又はCPU、MPU(Micro Processing Unit)がこのプログラムを実行することによって、構成することが可能である。
また、このプログラムは様々な種類の記憶媒体に格納することが可能であり、通信媒体を介して伝達されることが可能である。ここで、記憶媒体には、例えば、フレキシブルディスク、ハードディスク、磁気ディスク、光磁気ディスク、CD−ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)、BD(Blu-ray(登録商標) Disc)、ROM(Read Only Memory)カートリッジ、バッテリバックアップ付きRAM(Random Access Memory)、メモリカートリッジ、フラッシュメモリカートリッジ、不揮発性RAMカートリッジを含む。また、通信媒体には、電話回線等の有線通信媒体、マイクロ波回線等の無線通信媒体を含む。また、上述のプログラムは、インターネットを介して伝達することも可能である。
また、コンピュータが上述の実施の形態の機能を実現するプログラムを実行することにより、上述の実施の形態の機能が実現されるだけではなく、このプログラムの指示に基づき、コンピュータ上で稼動しているOS(Operating System)もしくはEDAツール等のアプリケーションソフトと共同して上述の実施の形態の機能が実現される場合も、発明の実施の形態に含まれる。
さらに、このプログラムの処理の全てもしくは一部がコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットにより行われて上述の実施の形態の機能が実現される場合も、発明の実施の形態に含まれる。
さらに、このプログラムの処理の全てもしくは一部がコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットにより行われて上述の実施の形態の機能が実現される場合も、発明の実施の形態に含まれる。
1、301 レイアウト装置
2、302 情報読込部
3、303 フロアプラン実施部
4、304 配置・CTS・最適化部
5、305 LOCKUPセル削除/挿入部
6、306 タイミング最適化部
7、307 信号配線部
8 記憶装置
9 情報読込部
21 論理合成部
22 擬似セル配置/制御情報ファイル作成部
41 スタンダードセル配置・最適化部
42 クロックゲーティングセル挿入部
43 クロックゲーティングセル配置/CTS実施部
81 デザインルール
82 ライブラリ
83 RTL/RTLネットリスト
84 タイミング制約
85 ゲートレベル・ネットリスト
90 制御情報ファイル
91 クロック制御信号
92 制御対象フリップフロップ
341 クロックライン認識部
342 クロックゲーティング回路認識部
343 クロックゲーティング回路削除部
344 他回路配置・最適化部
345 クロックゲーティング回路まとめ/分割部
346 クロックゲーティング回路配置/CTS実施部
2、302 情報読込部
3、303 フロアプラン実施部
4、304 配置・CTS・最適化部
5、305 LOCKUPセル削除/挿入部
6、306 タイミング最適化部
7、307 信号配線部
8 記憶装置
9 情報読込部
21 論理合成部
22 擬似セル配置/制御情報ファイル作成部
41 スタンダードセル配置・最適化部
42 クロックゲーティングセル挿入部
43 クロックゲーティングセル配置/CTS実施部
81 デザインルール
82 ライブラリ
83 RTL/RTLネットリスト
84 タイミング制約
85 ゲートレベル・ネットリスト
90 制御情報ファイル
91 クロック制御信号
92 制御対象フリップフロップ
341 クロックライン認識部
342 クロックゲーティング回路認識部
343 クロックゲーティング回路削除部
344 他回路配置・最適化部
345 クロックゲーティング回路まとめ/分割部
346 クロックゲーティング回路配置/CTS実施部
Claims (8)
- 半導体集積回路のレイアウトを行うレイアウト方法であって、
前記半導体集積回路に挿入するクロックゲーティングセルのうち、少なくとも1つのクロックゲーティングセルを挿入せずに論理合成を行い、
前記論理合成の結果に基づいて、セルの配置を行い、
前記セルの配置後に、前記論理合成において挿入しなかったクロックゲーティングセルを挿入し、
前記挿入したクロックゲーティングセルを配置し、クロックツリーの構築を行うレイアウト方法。 - 前記レイアウト方法は、さらにイネーブル信号と、当該イネーブル信号の制御対象となる制御対象セルとを対応付けた制御情報を生成して、生成した制御情報を記憶部に格納し、
前記クロックゲーティングセルの挿入において、前記記憶部に格納された制御情報に基づいて、前記制御対象セルに対してクロックゲーティングセルを挿入する請求項1に記載のレイアウト方法。 - 前記クロックゲーティングセルの挿入において、前記制御情報が示す制御対象セルのうち、同一のイネーブル信号によって制御され、所定の範囲内に配置されている制御対象セルに対して1つのクロックゲーティングセルを挿入する請求項2に記載のレイアウト方法。
- 前記レイアウト方法は、さらに前記論理合成の結果に含まれる制御対象セルを、当該制御対象セルよりも情報量の少ない擬似セルに置換し、
前記挿入したクロックゲーティングセルを配置し、クロックツリーの構築を行うときに、前記擬似セルを、前記制御対象セルに置換する請求項2又は3に記載のレイアウト方法。 - 前記制御情報は、前記制御対象セルのインスタンス名と、前記イネーブル信号名とを対応付けた情報である請求項2乃至4のいずれか1項に記載のレイアウト方法。
- 前記制御対象セルは、フリップフロップである請求項2乃至5のいずれか1項に記載のレイアウト方法。
- 半導体集積回路のレイアウトを行うレイアウト装置であって、
前記半導体集積回路に挿入するクロックゲーティングセルのうち、少なくとも1つのクロックゲーティングセルを挿入せずに論理合成を行う論理合成部と、
前記論理合成の結果に基づいて、セルの配置を行うセル配置部と、
前記セル配置部におけるセルの配置後に、前記論理合成において挿入しなかったクロックゲーティングセルを挿入するクロックゲーティングセル挿入部と、
前記クロックゲーティングセル挿入部が挿入したクロックゲーティングセルを配置し、クロックツリーの構築を行うクロックゲーティングセル配置・ツリー構築実施部と、を備えたレイアウト装置。 - 半導体集積回路のレイアウトを行うレイアウトプログラムであって、
前記半導体集積回路に挿入するクロックゲーティングセルのうち、少なくとも1つのクロックゲーティングセルを挿入せずに論理合成を行う処理と、
前記論理合成の結果に基づいて、セルの配置を行う処理と、
前記セルの配置後に、前記論理合成において挿入しなかったクロックゲーティングセルを挿入する処理と、
前記挿入したクロックゲーティングセルを配置し、クロックツリーの構築を行う処理と、をコンピュータに実行させるレイアウトプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009214087A JP2011065320A (ja) | 2009-09-16 | 2009-09-16 | レイアウト方法、レイアウト装置及びレイアウトプログラム |
US12/881,724 US20110066987A1 (en) | 2009-09-16 | 2010-09-14 | Layout method, layout device, and non-transitory computer readable medium storing layout program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009214087A JP2011065320A (ja) | 2009-09-16 | 2009-09-16 | レイアウト方法、レイアウト装置及びレイアウトプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011065320A true JP2011065320A (ja) | 2011-03-31 |
Family
ID=43731713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009214087A Pending JP2011065320A (ja) | 2009-09-16 | 2009-09-16 | レイアウト方法、レイアウト装置及びレイアウトプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20110066987A1 (ja) |
JP (1) | JP2011065320A (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8751986B2 (en) * | 2010-08-06 | 2014-06-10 | Synopsys, Inc. | Method and apparatus for automatic relative placement rule generation |
US10365779B2 (en) * | 2012-05-17 | 2019-07-30 | Sony Interactive Entertainment LLC | Dynamically assigning shortcuts to menu items and actions |
US9361417B2 (en) | 2014-02-07 | 2016-06-07 | Synopsys, Inc. | Placement of single-bit and multi-bit flip-flops |
JP2021015537A (ja) * | 2019-07-16 | 2021-02-12 | キオクシア株式会社 | 半導体集積回路の設計方法、回路設計システム及び制御プログラム |
US11409931B1 (en) * | 2021-03-16 | 2022-08-09 | Cadence Design Systems, Inc. | Systems and methods for optimizing scan pipelining in hierarchical test design |
CN112926283B (zh) * | 2021-04-09 | 2023-09-15 | 成都海光集成电路设计有限公司 | 用于集成电路的布局设计方法及装置、设备和存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7155687B2 (en) * | 2004-05-04 | 2006-12-26 | Texas Instruments Incorporated | Methods and apparatus for scan insertion |
JP4955484B2 (ja) * | 2007-08-24 | 2012-06-20 | ルネサスエレクトロニクス株式会社 | 回路設計装置、回路設計方法、及び、回路設計プログラム |
JP2009053989A (ja) * | 2007-08-28 | 2009-03-12 | Toshiba Corp | 半導体回路設計方法 |
-
2009
- 2009-09-16 JP JP2009214087A patent/JP2011065320A/ja active Pending
-
2010
- 2010-09-14 US US12/881,724 patent/US20110066987A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20110066987A1 (en) | 2011-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2011065320A (ja) | レイアウト方法、レイアウト装置及びレイアウトプログラム | |
US7904872B2 (en) | System-on-chip (SOC), design structure and method | |
US10437946B1 (en) | Using implemented core sources for simulation | |
TW200837591A (en) | Circuit-design-modifying method executable in computer system | |
US8042074B2 (en) | Circuit design device, circuit design program, and circuit design method | |
JP4918934B2 (ja) | 半導体集積回路の遅延解析装置及び遅延解析方法並びにそのプログラム | |
US8671374B2 (en) | Information processing apparatus | |
US7904873B2 (en) | System-on-chip (SOC), design structure and method | |
US7418675B2 (en) | System and method for reducing the power consumption of clock systems | |
US8132141B2 (en) | Method and apparatus for generating a centerline connectivity representation | |
US8181143B2 (en) | Method and apparatus for generating a memory-efficient representation of routing data | |
US20210264081A1 (en) | Methods of designing semiconductor devices, design systems performing the same and methods of manufacturing semiconductor devices using the same | |
JP2009053830A (ja) | 自動配置配線方法およびレイアウト装置 | |
JP4886559B2 (ja) | 半導体設計支援装置、半導体設計支援方法および半導体設計支援プログラム | |
JP2007103662A (ja) | 半導体集積回路およびその製造方法 | |
JP2008204111A (ja) | 半導体集積回路の設計支援装置、その設計支援方法、その製造方法、プログラム、及び記録媒体 | |
CN105260545B (zh) | 一种可编程电路系统的验证方法 | |
JP2010141005A (ja) | 半導体集積回路の設計方法 | |
WO2024131164A1 (zh) | 一种时钟树的时序调节方法及装置 | |
JP5321185B2 (ja) | 半導体集積回路の設計方法、設計装置および、コンピュータプログラム | |
JP2009004700A (ja) | スペアセルの挿入/配置方法 | |
JP2002259487A (ja) | 多電源回路シミュレーション方法及び装置 | |
JP2009129325A (ja) | 回路設計方法 | |
JP5531479B2 (ja) | 回路設計方法、及び回路設計プログラム | |
JP2000305965A (ja) | クロックツリーシンセシス方法及び装置 |