JP5321185B2 - 半導体集積回路の設計方法、設計装置および、コンピュータプログラム - Google Patents

半導体集積回路の設計方法、設計装置および、コンピュータプログラム Download PDF

Info

Publication number
JP5321185B2
JP5321185B2 JP2009074284A JP2009074284A JP5321185B2 JP 5321185 B2 JP5321185 B2 JP 5321185B2 JP 2009074284 A JP2009074284 A JP 2009074284A JP 2009074284 A JP2009074284 A JP 2009074284A JP 5321185 B2 JP5321185 B2 JP 5321185B2
Authority
JP
Japan
Prior art keywords
buffer
flip
integrated circuit
semiconductor integrated
flop
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.)
Expired - Fee Related
Application number
JP2009074284A
Other languages
English (en)
Other versions
JP2010225084A (ja
Inventor
匠 岡本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2009074284A priority Critical patent/JP5321185B2/ja
Publication of JP2010225084A publication Critical patent/JP2010225084A/ja
Application granted granted Critical
Publication of JP5321185B2 publication Critical patent/JP5321185B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Power Sources (AREA)

Description

本発明は、半導体集積回路の設計方法、設計装置および、コンピュータプログラムに関し、特に、クロックゲーティングを含むクロック構造を含む半導体集積回路の配置配線を行う設計方法、設計装置および、コンピュータプログラムに関する。
同期式半導体集積回路は、演算および演算の制御を行うための論理素子(以後、論理セルまたは論理ゲートとも呼ぶ)と、論理素子群の動作の同期を取るための順序回路素子(フリップフロップまたはFFとも呼ぶ)から構成されている。フリップフロップには周期的に発振するクロック信号が供給され、クロック信号の立ち上がりまたは立ち下がりに応じて、フリップフロップが保持しているデータを論理素子に供給し、論理素子は供給されたデータを入力として演算および演算の制御を行い、その結果をフリップフロップに保存する。以上の処理は周期的に変化するクロック信号の立ち上がりまたは立ち下がりに応じて繰り返される。
上述の同期式回路を、クロック信号を基準にして、正常なタイミングで動作させるために理想的なクロック信号分配回路の配置配線は、半導体基板上のいずれの場所においても全く同じクロック信号波形が得られることである。しかし、実際には、クロック信号を引き回す配線、接続しているセルの配置によって、フリップフロップによってクロック信号が到着する時間に差が生じる。フリップフロップ集合の中で、クロック信号が最も早く到達する時間と、クロック信号が最も遅く到着する時間の差をクロックスキュー(クロック信号到着時間差)と呼ぶ。このクロックスキューが大きいと回路は正常動作しなくなる。従って、クロック分配回路の配置配線は、可能な限りクロックスキューを最小とすることが要求される。
図20(b)にクロック分配回路の配置配線例を示す。ここで、上述のクロックスキューを最小化するクロック分配回路配置配線方法の公知例として、特許文献1がある。この方法は、クロック分配回路を構築していく際、末端セルから順に、ボトムアップ的に2分木を構成するようにゼロスキュー併合と呼ぶ、常に、その木のスキューがゼロ(この状態をゼロスキューと呼ぶ)となるように生成していくものである。この処理を末端セル3から順にクロックドライバセル5まで繰り返すことにより、図20(b)に示すクロック分配回路の配置配線を生成する。図20(a)は、クロック分配レイアウトの処理途中を示す図である。
近年、半導体プロセスの微細化により、製造バラツキによる遅延バラツキ問題が深刻化しており、これに従い、クロックスキューの最小化は、さらに困難なものになっている。製造バラツキ問題が深刻な半導体集積回路のクロック設計においては、製造バラツキの影響を最小化するためには、チップ領域1において、クロックドライバセル5から各末端セル3への配線経路と、配線経路上の中継バッファ7の種類および前記中継バッファ7が駆動する配線経路の形状が各段で完全に同一となるようにクロック分配信号のレイアウトを行なうことが望まれている。なお、ここでは、このような構造を持つクロック分配信号レイアウトを完全対称なクロック分配信号レイアウトと呼ぶ。図21に完全対称なクロック分配信号レイアウト11の例を示す。
高速動作する半導体回路の設計では、ゲートの配置設計を行う前に、このような完全対称なクロック構造を設計しておき、フリップフロップを含むゲートの配置を、このクロック構造に合わせて行い、その後、前記クロック構造の末端バッファとフリップフロップとの接続設計を行う手法が有効とされている。このような設計手法の例が、非特許文献1、特許文献2などに示されている。
なお、特許文献1の方法を、製造バラツキ耐性を強くするための拡張した方法の公知例として、特許文献3があるが、ボトムアップ的に2分木を構成するゼロスキュー併合を繰り返す方法では、完全対称なクロック信号レイアウトが生成されることは保証できない。すなわち、最先端の半導体プロセスを利用して、実際のデバイス上でのクロックスキューが極小となるクロックレイアウトを生成することは困難である。
一方、近年の半導体回路の大規模化、および、高速化の進歩は、クロック信号部での消費電力の増大を招いており、クロックスキュー削減に加えて、低消費電力化を実現するクロック配置配線設計技術も重要となってきている。クロック信号部の消費電力を削減する効果的な方法としては、ゲーティッドクロック回路設計手法が提案され、広く普及している。
しかし、ゲーティッドクロック回路設計手法は、クロックライン上にゲーティング構造が入ることにより、クロックスキューが悪化する傾向にあるという問題が存在する。これを解決する手段として、特許文献4乃至6に記載されるような、回路の論理構造とフリップフロップの配置分布とを考慮して、フリップフロップ全体を、同一ゲーティング論理で制御可能なほぼ均等なサイズのフロップフロップクラスタの集合に分割し、このフリップフロップクラスタをゲーティング単位とする技術が提案されている。
特開平5−54100号公報 特開2008−288559号公報 特開2007−123336号公報 特開2002−237521号公報 特開2006−195757号公報 特開2007−72995号公報
P.J.Restle等、"A clock distribution network for microprocessors"、米国、IEEE Journal of Solid−State Circuits、2001年5月、第36巻、第5号、pp.792−799
しかしながら、これらのゲーティッドクロック設計技術は、特許文献1のクロック木生成手法を基本としているため、完全対称なクロック分配信号レイアウト構造を得ることは困難であり、製造バラツキによる遅延バラツキに耐性が弱いという問題点があった。
また、スキュー削減のために提案されている完全対称なクロック分配信号レイアウト構造に対して、効果的にクロックゲーティングを導入する手法は未だ提案されていない。
このように、半導体プロセスの微細化による遅延バラツキの条件下でクロックスキューを最小化しつつ、クロック信号部での消費電力を最小化するためには、完全対称なクロック分配信号レイアウトを基本として、ゲーティングクロック構造を実現する必要があるが、特許文献1記載の設計技術では、これを実現することは困難であった。
本発明の目的は、上述した課題であるクロックスキューの最小化しつつ、クロック信号部での消費電力を最小化する半導体集積回路の設計方法、設計装置および、プログラムを提供することにある。
本発明の半導体集積回路の設計装置は、クロックゲーティング構造を含む半導体集積回路のチップ情報を記憶する記憶装置と、
規則対称レイアウト構造を有するバッファツリーを生成するバッファツリー生成手段と、
フリップフロップを含む論理ゲートを配置する配置手段と、
配置された前記フリップフロップの配置分布と前記半導体集積回路のゲーティング構造を考慮して、前記フリップフロップのクラスタを生成するクラスタ生成手段と、
前記フリップフロップの各クラスタを駆動するゲーティッドブロックを挿入する挿入手段と、
前記ゲーティッドブロックを前記バッファツリーの末端バッファに置換する置換手段と、を備える。
本発明の半導体集積回路の設計方法は、クロックゲーティング構造を含む半導体集積回路のチップ情報を受け付け、
規則対称レイアウト構造を有するバッファツリーを生成し、
フリップフロップを含む論理ゲートを配置し、
配置された前記フリップフロップの配置分布と前記半導体集積回路のゲーティング構造を考慮して、前記フリップフロップのクラスタを生成し、
前記フリップフロップの各クラスタを駆動するゲーティッドブロックを挿入し、
前記ゲーティッドブロックを前記バッファツリーの末端バッファに置換する。
本発明のコンピュータプログラムは、半導体集積回路の設計装置として機能させるコンピュータに、
クロックゲーティング構造を含む半導体集積回路のチップ情報を受け付ける手順と、
規則対称レイアウト構造を有するバッファツリーを生成する手順と、
フリップフロップを含む論理ゲートを配置する手順と、
配置された前記フリップフロップの配置分布と前記半導体集積回路のゲーティング構造を考慮して、前記フリップフロップのクラスタを生成する手順と、
前記フリップフロップの各クラスタを駆動するゲーティッドブロックを挿入する手順と、
前記ゲーティッドブロックを前記バッファツリーの末端バッファに置換する手順と、を実行させる。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
また、本発明の方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明の方法およびコンピュータプログラムを実施するときには、その複数の手順の順番は内容的に支障しない範囲で変更することができる。
さらに、本発明の方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
本発明によれば、製造バラつきを含むスキューの削減のために有効である完全対称なクロック分配信号レイアウト構造に対して、効果的にクロックゲーティングを導入することできる。
本発明の実施の形態に係る半導体集積回路の設計装置の構成を示す機能ブロック図である。 本発明の実施の形態に係る半導体集積回路の設計方法の処理手順の一例を示すフローチャートである。 末端バッファを4つ持つ完全対称なクロック分配信号レイアウトの一例を示す図である。 フリップフロップの配置結果を示す図である。 フリップフロップのクラスタリングを示す図である。 フリップフロップクラスタへのゲーティッドブロック挿入結果を示す図である。 本発明の実施の形態に係る半導体集積回路の設計装置の構成を示す機能ブロック図である。 本発明の実施の形態に係る半導体集積回路の設計方法の処理手順の一例を示すフローチャートである。 ゲーティッドブロックの複製、併合、および末端バッファの追加の結果を示す図である。 ゲーティッドブロックと末端バッファの置換の結果を示す図である。 本発明の実施の形態に係る半導体集積回路の設計装置の構成を示す機能ブロック図である。 本発明の実施の形態に係る半導体集積回路の設計方法の処理手順の一例を示すフローチャートである。 末端バッファ周辺へのフリップフロップ移動の結果を示す図である。 本発明の実施の形態に係る半導体集積回路の設計装置の構成を示す機能ブロック図である。 本発明の実施の形態に係る半導体集積回路の設計方法の処理手順の一例を示すフローチャートである。 フリップフロップ移動後の再クラスタリングの結果を示す図である。 本発明の実施の形態に係る半導体集積回路の設計装置の構成を示す機能ブロック図である。 本発明の実施の形態に係る半導体集積回路の設計方法の処理手順の一例を示すフローチャートである。 末端バッファとフリップフロップ間の接続生成およびクロックスキュー調整用の負荷容量の追加の結果を示す図である。 特許文献記載のクロック分配方法を示す図である。 完全対称なクロック分配信号レイアウトを示す図である。
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
(第1の実施の形態)
図1は、本発明の実施の形態に係る半導体集積回路の設計装置の構成を示す機能ブロック図である。
本実施形態の半導体集積回路設計装置100は、クロックゲーティング構造を含む半導体集積回路のチップ情報を記憶するチップ情報記憶部90と、規則対称レイアウト構造を有するバッファツリーを生成するバッファツリー生成部103と、フリップフロップを含む論理ゲートを配置する論理ゲート配置部105と、配置されたフリップフロップの配置分布と半導体集積回路のゲーティング構造を考慮して、フリップフロップのクラスタを生成するクラスタ生成部107と、フリップフロップの各クラスタを駆動するゲーティッドブロックを挿入するゲーティッドブロック挿入部109と、ゲーティッドブロックをバッファツリーの末端バッファに置換する置換部111と、を備える。
詳細には、半導体集積回路設計装置100は、チップ情報記憶部90と、チップ情報受付部101と、バッファツリー生成部103と、論理ゲート配置部105と、クラスタ生成部107と、ゲーティッドブロック挿入部109と、置換部111と、を備える。
なお、本実施形態の半導体集積回路設計装置100は、制御装置、記憶装置、入力装置および表示装置からなる一般的なコンピュータにより構成することができる。これらの各部については図示しない。また、上記の各ユニットは、記憶装置に格納されたコンピュータプログラムにより動作する制御装置により、ROM(Read Only Memory)、RAM(Random Access Memory)などの記憶装置上に構築されて制御される。なお、以下の図において、本発明の本質に関わらない部分の構成については省略してあり、図示されていない。
すなわち、半導体集積回路設計装置の各構成要素は、任意のコンピュータのCPU(Central Processing Unit)、メモリ、メモリにロードされた本図の構成要素を実現するプログラム、そのプログラムを格納するハードディスクなどの記憶ユニット、ネットワーク接続用インタフェースを中心にハードウエアとソフトウエアの任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。以下説明する各図は、ハードウエア単位の構成ではなく、機能単位のブロックを示している。
チップ情報記憶部90は、設計対象となる半導体集積回路チップのフリッププロップを含むゲートレベルのネットリストに関する情報(チップデータ)を記憶する。ここで、フリップフロップの集合は、回路の論理構造から同一のゲーティング論理でクロック信号の伝搬を制御できる部分集合に分割されている。
チップ情報受付部101は、上記チップデータを受け付け、チップ情報記憶部90に記憶する。チップ情報受付部101は、たとえば、半導体集積回路設計装置100の図示されない、入出力インタフェースを介して、各種記録媒体または記憶装置、あるいはネットワークなどを介した他の装置からデータを入力して受け付けてもよいし、ユーザが操作入力したデータを受け付けてもよい。チップ情報記憶部90の情報は、必ずしも毎回受け付けて更新する必要はなく、既にチップ情報記憶部90に記憶されている情報を利用することもできる。
バッファツリー生成部103は、フリップフロップ配置対象領域を覆う形で、規則対称レイアウト構造を持つバッファツリーを生成する。ここで、バッファツリーの形状としては、Hツリー型、2分木型など従来から提案されている形状が考えられる。
論理ゲート配置部105は、論理ゲートとフリップフロップの配置をネットリストのセル間接続とフリップフロップ間タイミング制約に基づいて行う。この論理ゲート配置部105は、既存の配置手段を用いることもでき、本発明の本質に関わらないので詳細な説明は省略する。
クラスタ生成部107は、回路の論理構造から判断される同一のゲーティング論理でクロック信号の伝搬を制御できる集合単位とフリップフロップの配置分布を考慮して、フリップフロップのクラスタを生成する。具体的には、同一のゲーティング論理でクロック信号の伝搬を制御でき、かつ、座標が近いフリップフロップ集合を1つのクラスタとしてまとめる。
ゲーティッドブロック挿入部109は、フリップフロップのクラスタ生成部107で生成された各クラスタに対して、ゲーティッドブロックを挿入する。
置換部111は、挿入されているゲーティッドブロックを、その近辺に存在するバッファツリーの末端バッファに置換する。
本実施形態の半導体集積回路設計装置100において、CPUが、ハードディスクに記憶されるプログラムをメモリに読み出して実行することにより、上記各ユニットの各機能を実現することができる。
本実施形態のコンピュータプログラムは、半導体集積回路設計装置100を実現させるためのコンピュータに、クロックゲーティング構造を含む半導体集積回路のチップ情報を受け付ける手順と、規則対称レイアウト構造を有するバッファツリーを生成する手順と、フリップフロップを含む論理ゲートを配置する手順と、配置されたフリップフロップの配置分布と半導体集積回路のゲーティング構造を考慮して、フリップフロップのクラスタを生成する手順と、フリップフロップの各クラスタを駆動するゲーティッドブロックを挿入する手順と、ゲーティッドブロックをバッファツリーの末端バッファに置換する手順と、を実行させるように記述されている。
このように構成された本実施形態の半導体集積回路設計装置100の動作について、以下に説明する。
図2は、本発明の実施の形態に係る半導体集積回路の設計方法の処理手順の一例を示すフローチャートである。
本実施形態の半導体集積回路の設計方法は、クロックゲーティング構造を含む半導体集積回路のチップ情報を受け付け(ステップS101)、規則対称レイアウト構造を有するバッファツリーを生成し(ステップS103)、フリップフロップを含む論理ゲートを配置し(ステップS105)、配置されたフリップフロップの配置分布と半導体集積回路のゲーティング構造を考慮して、フリップフロップのクラスタを生成し(ステップS107)、フリップフロップの各クラスタを駆動するゲーティッドブロックを挿入し(ステップS109)、ゲーティッドブロックをバッファツリーの末端バッファに置換する(ステップS111)。
以下、図1乃至図6を用いて具体的に説明する。
はじめに、チップ情報受付部101により、設計対象となる半導体集積回路チップのフリッププロップを含むゲートレベルのネットリストに関する情報(チップデータ)の入力を受け付け、チップ情報記憶部90に記憶する(ステップS101)。ここで、フリップフロップの集合は、回路の論理構造から同一のゲーティング論理でクロック信号の伝搬を制御できる部分集合に分割されている。
そして、チップ情報受付部101によりチップ情報記憶部90に記憶された論理回路に対して、バッファツリー生成部103が、図3に示すようにフリップフロップ配置対象領域を覆う形で、規則対称レイアウト構造を持つバッファツリーを生成する(ステップS103)。なお、ここでは簡単のため、4つの末端バッファ31(図では、A、B、C、Dと示す)を持つ完全対称なクロック分配信号レイアウトの一例としてHツリー型の構造を示しているが、これに限定されない。なお、図3の33は、クロックドライバセルを示している。
そして、論理ゲート配置部105が、論理ゲートとフリップフロップの配置をネットリストのセル間接続とフリップフロップ間タイミング制約に基づいて行い、図4のようなフリップフロップ配置結果を生成する(ステップS105)。図4では簡単のため、フリップフロップ41以外の論理ゲートは省略している。また、同一数字が振られているフリップフロップ(たとえば、F1、F2、F3等)は、同一のゲーティング論理によりクロック信号の伝搬を制御されることを意味している。
そして、フリップフロップのクラスタ生成部107が、回路の論理構造から判断される同一のゲーティング論理でクロック信号の伝搬を制御できる集合単位とフリップフロップの配置分布を考慮して、フリップフロップのクラスタを生成する(ステップS107)。具体的には、図5に示すように、同一のゲーティング論理でクロック信号の伝搬を制御でき、かつ、座標が近いフリップフロップ集合を1つのクラスタ51としてまとめる。ここでは、6つのクラスタ51が生成されている。同一のゲーティング論理により制御されるフリップフロップ集合の分布範囲が大きい場合は、ゲーティング論理F2のように複数のクラスタC21とC22に分割される。
そして、ゲーティッドブロック挿入部109が、図6に示すように、フリップフロップのクラスタ生成部107で生成された各クラスタ51(図5)に対して、ゲーティッドブロック61を挿入する(ステップS109)。そして、置換部111が、ステップS109で挿入されたゲーティッドブロック61を、その近辺に存在するバッファツリーの末端バッファに置換する(ステップS111)。
以上、説明したように、本実施形態の半導体集積回路設計装置100および設計方法によれば、製造バラつきを含むスキューの削減のために有効である完全対称なクロック分配信号レイアウト構造に対して、効果的にクロックゲーティングを導入することができ、製造バラつき影響が大きな半導体に対して、クロックスキューの削減とともに消費電力の削減を行うことが可能になる。
(第2の実施の形態)
図7は、本発明の実施の形態に係る半導体集積回路の設計装置の構成を示す機能ブロック図である。
本実施形態の半導体集積回路設計装置200は、図1の上記実施形態の半導体集積回路設計装置100とは、ゲーティッドブロック挿入部109により挿入されたゲーティッドブロック(図6)の結果と、図3のバッファツリー構造を比較して、ゲーティッドブロックを複製または併合し、あるいはバッファを追加する点で相違する。
本実施形態の半導体集積回路設計装置200において、置換部111(ゲーティッドブロック複製部201、ゲーティッドブロック併合部203)は、ゲーティッドブロック61をバッファツリーの末端バッファ31(図3)に置換する際に、ゲーティッドブロック61に接続するフリップフロップ41(図4)の配置分布を考慮して、ゲーティッドブロック61の複製、および、併合を行う。
また、本実施形態の半導体集積回路設計装置200において、置換部111により、ゲーティッドブロック61をバッファツリーの末端バッファ31(図3)に置換する際に、バッファツリーの末端バッファ31(図3)が不足する場合、置換部111(バッファ追加部205)は、バッファツリーの末端バッファ31(図3)の出力端子に複数のバッファ91を追加接続して、ゲーティッドブロック61を追加バッファに置換する。
詳細には、本実施形態の半導体集積回路設計装置200は、図1の半導体集積回路設計装置100の構成に加え、ゲーティッドブロック複製部201と、ゲーティッドブロック併合部203と、バッファ追加部205と、をさらに備えている。
ゲーティッドブロック複製部201は、ゲーティッドブロックと規則対称レイアウト構造バッファツリー生成部103が生成したバッファツリーの末端バッファ集合とゲーティッドブロック挿入部109が挿入したゲーティッドブロック集合を比較し、ゲーティッドブロックが駆動するフリップフロップクラスタが大きい場合に、フリップフロップクラスタを分割し、分割により生じた各クラスタにゲーティッドブロックを複製して挿入する。
ゲーティッドブロック併合部203は、ゲーティッドブロックと規則対称レイアウト構造バッファツリー生成部103が生成したバッファツリーの末端バッファ集合とゲーティッドブロック挿入部109が挿入したゲーティッドブロック集合を比較し、ゲーティッドブロックが駆動するフリップフロップクラスタが小さい場合に、論理的に併合可能で、かつ、クラスタの座標が近いフリップフロップクラスタを併合し、併合により生じたクラスタにゲーティッドブロックを1つ挿入する。
バッファ追加部205は、ゲーティッドブロックと規則対称レイアウト構造バッファツリー生成部103が生成したバッファツリーの末端バッファ集合とゲーティッドブロック挿入部109が挿入したゲーティッドブロック集合を比較し、末端バッファ集合が不足している場合に、末端バッファの出力端子にバッファを必要数追加して接続する。
このように構成された本実施形態の半導体集積回路設計装置200の動作について、以下に説明する。
図8は、本発明の実施の形態に係る半導体集積回路の設計方法の処理手順の一例を示すフローチャートである。
本実施形態の半導体集積回路の設計方法において、ゲーティッドブロック61をバッファツリーの末端バッファ31(図3)に置換する際に、ゲーティッドブロック61に接続するフリップフロップ41(図4)の配置分布を考慮して、ゲーティッドブロック61の複製(ステップS201)、および、併合(ステップS203)を行う。
本実施形態の半導体集積回路の設計方法において、ゲーティッドブロック61をバッファツリーの末端バッファ31(図3)に置換する際に、バッファツリーの末端バッファ31(図3)が不足する場合は、バッファツリーの末端バッファ31(図3)の出力端子に複数のバッファ91を追加接続して(ステップS205)、ゲーティッドブロック61を追加バッファに置換する(ステップS111)。
以下、具体的に、図7乃至図10を用いて説明する。
本実施形態の設計方法の処理手順は、図2の上記実施形態の設計方法と同様な手順、すなわち、ステップS101〜ステップS111に加え、ステップS109とステップS111の間に、ステップS201〜ステップS205をさらに有する。
ステップS109の後、図6の結果と、図3のバッファツリー構造を比較して、ゲーティッドブロックの複製(ステップS201)、ゲーティッドブロックの併合(ステップS203)、およびバッファの追加(ステップS205)をそれぞれ実行する。そしてステップS111に進む。
ゲーティッドブロックの複製のステップS201では、図9の70に示すように、ゲーティング論理F1は、末端バッファ31(図3)の分布に対して、ゲーティッドブロック61が駆動するフリップフロップクラスタ51(図5)が大きいため、2つのクラスタに分割され、各クラスタにゲーティッドブロックが割り当てられるように、ゲーティッドブロック61を複製して新たなゲーティッドブロック71が一方のクラスタに挿入されている。
ゲーティッドブロックの併合のステップS203では、図9の80に示すように、ゲーティング論理F2は、末端バッファ31(図3)の分布に対して、ゲーティッドブロック81と83(図6の61)が駆動するフリップフロップクラスタ51(図5のC21のC22)が小さいため、併合され、生じたクラスタにゲーティッドブロック81が1つ挿入されている。
また、バッファの追加のステップS205では、図9の85に示すように、バッファツリーの末端バッファBとCは、それぞれの周辺に、2つのゲーティッドブロック61がそれぞれ存在するため、各末端バッファBとCの出力端子に2つのバッファ91をそれぞれ追加して接続している。末端バッファBからは、新たな末端バッファB1とB2が生成され、末端バッファCからは、新たな末端バッファC1とC2が生成されている。
図8に戻り、ゲーティッドブロックのバッファへの置換部111が、図9で挿入されたゲーティッドブロックを、図10に示すように、その近辺に存在するバッファツリーの末端バッファ31にそれぞれ置換する(ステップS111)。ゲーティング論理F1のゲーティッドブロックは末端バッファC2とDに、ゲーティング論理F2のゲーティッドブロックは末端バッファAに、ゲーティング論理F3のゲーティッドブロックは末端バッファB1に、ゲーティング論理F4のゲーティッドブロックは末端バッファB2に、ゲーティング論理F5のゲーティッドブロックは末端バッファC1にそれぞれ置換されている。
以上、説明したように、本実施形態の半導体集積回路設計装置200および設計方法によれば、製造バラつきを含むスキューの削減のために有効である完全対称なクロック分配信号レイアウト構造に対して、より効果的にクロックゲーティングを導入することができ、製造バラつき影響が大きな半導体に対して、クロックスキューの削減とともに消費電力の削減を行うことが可能になる。
(第3の実施の形態)
図11は、本発明の実施の形態に係る半導体集積回路の設計装置の構成を示す機能ブロック図である。
本実施形態の半導体集積回路設計装置300は、図1または図7の上記実施形態の半導体集積回路設計装置100または200とは、ゲーティッドブロックをバッファツリーの末端バッファに置換した後、フリップフロップを、フリップフロップが属するゲーティング論理に接続するゲーティッドブロック群に対応するバッファツリーの末端バッファ群周辺に移動する点で相違する。
本実施形態の半導体集積回路設計装置300において、置換部111がゲーティッドブロック61をバッファツリーの末端バッファ31(図3)に置換した後、フリップフロップ41(図4)を、フリップフロップ41(図4)が属するゲーティング論理に接続するゲーティッドブロック群に対応するバッファツリーの末端バッファ群周辺に移動するフリップフロップ移動部301をさらに備える。
詳細には、本実施形態の半導体集積回路設計装置300は、図1の半導体集積回路設計装置100または半導体集積回路設計装置200の構成に加え、フリップフロップ移動部301をさらに備えている。
フリップフロップ移動部301は、各フリップフロップを、そのフリップフロップへのクロック信号伝搬を制御するゲーティッドブロックに対応するバッファツリーの末端バッファの周辺に移動する。各フリップフロップへクロック信号伝搬を制御するゲーティッドブロックに対応する末端バッファは、この段階で複数存在し得るため、その中で近いバッファを選択し、その周辺へ移動する。
このように構成された本実施形態の半導体集積回路設計装置300の動作について、以下に説明する。
図12は、本発明の実施の形態に係る半導体集積回路の設計方法の処理手順の一例を示すフローチャートである。
本実施形態の半導体集積回路の設計方法において、ゲーティッドブロック61をバッファツリーの末端バッファ31(図3)に置換した後、フリップフロップ41(図4)を、フリップフロップ41(図4)が属するゲーティング論理に接続するゲーティッドブロック群に対応するバッファツリーの末端バッファ群周辺に移動する(ステップS301)。
以下、図11乃至図13を用いて説明する。
本実施形態の設計方法の処理手順は、図2または図8の上記実施形態の設計方法と同様な手順、すなわち、ステップS101〜ステップS111、またはステップS201〜205に加え、ステップS111の後に、ステップS301をさらに有する。
ステップS111の後、フリップフロップ移動部301が、図13に示すように、各フリップフロップ41を、そのフリップフロップ41へのクロック信号伝搬を制御するゲーティッドブロックに対応するバッファツリーの末端バッファA、B、C、Dの周辺に移動する(ステップS301)。たとえば、ゲーティング論理F1のゲーティッドブロックは末端バッファC2とDに置換されているため、ゲーティング論理F1に属する3つのフリップフロップ41は、末端バッファC2とDのいずれかの周辺に移動することになる。
以上、説明したように、本実施形態の半導体集積回路設計装置300および設計方法によれば、製造バラつきを含むスキューの削減のために有効である完全対称なクロック分配信号レイアウト構造に対して、より効果的にクロックゲーティングを導入することができ、製造バラつき影響が大きな半導体に対して、クロックスキューの削減とともに消費電力の削減を行うことが可能になる。
(第4の実施の形態)
図14は、本発明の実施の形態に係る半導体集積回路の設計装置の構成を示す機能ブロック図である。
本実施形態の半導体集積回路設計装置400は、図11の上記実施形態の半導体集積回路設計装置300とは、フリップフロップを移動した後、変更されたフリップフロップの配置分布に基づいて、フリップフロップの再クラスタリングを行う点で相違する。
本実施形態の半導体集積回路設計装置400において、フリップフロップ移動部301が、ゲーティッドブロック61(図6)に接続していたフリップフロップ41(図4)を、ゲーティッドブロックを置換したバッファツリーの末端バッファ31(図3)周辺に移動した後、変更されたフリップフロップ41(図4)の配置分布に基づいて、フリップフロップ41(図4)の再クラスタリングを行う再クラスタリンク制御部401と、再生成されたフリップフロップ41(図4)のクラスタ151(図16)をバッファツリーの末端バッファ31(図3)へ割り当て直す割当部(再クラスタリンク制御部401)と、をさらに備える。
また、本実施形態の半導体集積回路設計装置400において、フリップフロップ移動部301によるフリップフロップの移動と、再クラスタリンク制御部401によるフリップフロップの再クラスタリングと、再クラスタリンク制御部401によるフリップフロップのクラスタにおけるバッファツリーの末端バッファへの再割り当てと、を少なくとも1回以上繰り返す繰り返し部(再クラスタリンク制御部401)をさらに備える。
詳細には、本実施形態の半導体集積回路設計装置400は、図11の半導体集積回路設計装置300の構成に加え、再クラスタリンク制御部401をさらに備えている。
再クラスタリンク制御部401は、フリップフロップ移動部301でのフリップフロップ移動量を計測し、最大移動量が閾値以上の場合に、更新されたフリップフロップの配置分布を基に、フリップフロップのクラスタ生成部107からの処理を繰り返す。最大移動量が閾値以下の場合については、後述する。
このように構成された本実施形態の半導体集積回路設計装置400の動作について、以下に説明する。
図15は、本発明の実施の形態に係る半導体集積回路の設計方法の処理手順の一例を示すフローチャートである。
本実施形態の半導体集積回路の設計方法において、ゲーティッドブロックに接続していたフリップフロップを、ゲーティッドブロックを置換したバッファツリーの末端バッファ周辺に移動した後、変更されたフリップフロップの配置分布に基づいて、フリップフロップの再クラスタリングを行い、再生成されたフリップフロップのクラスタをバッファツリーの末端バッファへ割り当て直す(ステップS403)。
また、本実施形態の半導体集積回路設計装置400の設計方法において、フリップフロップの移動と、フリップフロップの再クラスタリングと、フリップフロップのクラスタにおけるバッファツリーの末端バッファへの再割り当てと、を少なくとも1回以上繰り返す。
以下、具体的に図14乃至図16を用いて説明する。
本実施形態の設計方法の処理手順は、図12の上記実施形態の設計方法と同様な手順、すなわち、ステップS101〜ステップS111、ステップS201〜205、ステップS301に加え、ステップS301の後に、ステップS401およびステップS403をさらに有する。
ステップS301の後、再クラスタリンク制御部401が、フリップフロップ移動部301でのフリップフロップ最大移動量が閾値を超えたと判断し(ステップS401のYES)、更新されたフリップフロップの配置分布を基に、フリップフロップのクラスタ生成部107により再度クラスタリングを行うと(ステップS403)、図16に示すようになる。図13と比較して、ゲーティング論理F1のクラスタ151が変更されている。
以上、説明したように、本実施形態の半導体集積回路設計装置400および設計方法によれば、製造バラつきを含むスキューの削減のために有効である完全対称なクロック分配信号レイアウト構造に対して、より効果的にクロックゲーティングを導入することができ、製造バラつき影響が大きな半導体に対して、クロックスキューの削減とともに消費電力の削減を行うことが可能になる。
(第5の実施の形態)
図17は、本発明の実施の形態に係る半導体集積回路の設計装置の構成を示す機能ブロック図である。
本実施形態の半導体集積回路設計装置500は、図7、図11、または図14の上記実施形態の半導体集積回路設計装置200、300または400とは、バッファの追加によりクロック遅延が増加する場合に、バッファツリーの他の末端バッファの出力端子に負荷容量を追加する点で相違する。
本実施形態の半導体集積回路設計装置500は、バッファの追加によりクロック遅延が増加する場合、バッファツリーの他の末端バッファの出力端子に負荷容量を追加する負荷容量追加部503をさらに備える。
詳細には、本実施形態の半導体集積回路設計装置500は、図7、図11、または図14の半導体集積回路設計装置200、300または400の構成に加え、接続部501および負荷容量追加部503をさらに備えている。
接続部501は、バッファツリーの末端バッファとそのバッファが駆動するように割り当てられたフリップフロップとの間の接続を生成する。また、スキュー調整用負荷容量追加部503は、フリップフロップへのクロック信号遅延が早い経路上にある末端バッファの出力端子に負荷容量を追加し、クロックスキューの削減を行う。このようにして、クロックスキューを調整することができる。
このように構成された本実施形態の半導体集積回路設計装置500の動作について、以下に説明する。
図18は、本発明の実施の形態に係る半導体集積回路の設計方法の処理手順の一例を示すフローチャートである。
本実施形態の半導体集積回路の設計方法において、バッファの追加によりクロック遅延が増加する場合、バッファツリーの他の末端バッファの出力端子に負荷容量を追加する。
以下、図17乃至図19を用いて説明する。
本実施形態の設計方法の処理手順は、図8、図12、または図15の上記実施形態の設計方法と同様な手順、すなわち、ステップS101〜ステップS111、ステップS201〜ステップS205、またはステップS301、あるいはステップS401およびステップS403に加え、ステップS401の後に、ステップS501およびステップS503をさらに有する。
ステップS403の後、すなわち、ステップS401で、フリップフロップ移動部301でのフリップフロップの最大移動量が閾値以下の場合、負荷容量追加部503に現在のデータが受け渡される。そして、各フリップフロップと対応する末端バッファの間に論理接続が生成され(ステップS501)、負荷容量追加部503が、バッファの追加によりクロック遅延が増加すると判定した場合、バッファツリーの他の末端バッファの出力端子にスキュー調整用負荷容量を追加する(ステップS503)。
図19に示すように、図16に対して、まず、各フリップフロップと対応する末端バッファ31(A、B、C、D)の間に論理接続181が生成されている。また、末端バッファA、Dは、接続するフリップフロップの数が末端バッファB、Cと比較して少ないため、各フリップフロップへのクロック信号伝搬遅延が早いと判断される。そのため、末端バッファA、Dの出力端子に負荷容量191を追加し、クロックスキューの削減を行っている。
以上、説明したように、本実施形態の半導体集積回路の設計装置および設計方法によれば、製造バラつきを含むスキューの削減のために有効である完全対称なクロック分配信号レイアウト構造に対して、より効果的にクロックゲーティングを導入することができ、製造バラつき影響が大きな半導体に対して、クロックスキューの削減とともに消費電力の削減を行うことが可能になる。
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
以下、参考形態の例を付記する。
1. クロックゲーティング構造を含む半導体集積回路のチップ情報を記憶する記憶装置と、
規則対称レイアウト構造を有するバッファツリーを生成するバッファツリー生成手段と、
フリップフロップを含む論理ゲートを配置する配置手段と、
配置された前記フリップフロップの配置分布と前記半導体集積回路のゲーティング構造を考慮して、前記フリップフロップのクラスタを生成するクラスタ生成手段と、
前記フリップフロップの各クラスタを駆動するゲーティッドブロックを挿入する挿入手段と、
前記ゲーティッドブロックを前記バッファツリーの末端バッファに置換する置換手段と、を備える半導体集積回路の設計装置。
2. 1.に記載の半導体集積回路の設計装置において、
前記置換手段は、前記ゲーティッドブロックを前記バッファツリーの前記末端バッファに置換する際に、前記ゲーティッドブロックに接続する前記フリップフロップの前記配置分布を考慮して、前記ゲーティッドブロックの複製、および、併合を行う半導体集積回路の設計装置。
3. 1.または2.に記載の半導体集積回路の設計装置において、
前記置換手段により、前記ゲーティッドブロックを前記バッファツリーの前記末端バッファに置換する際に、前記バッファツリーの前記末端バッファが不足する場合、前記置換手段は、前記バッファツリーの前記末端バッファの出力端子に複数のバッファを追加接続して、前記ゲーティッドブロックを追加バッファに置換する半導体集積回路の設計装置。
4. 3.に記載の半導体集積回路の設計装置において、
前記バッファの追加によりクロック遅延が増加する場合、前記バッファツリーの他の前記末端バッファの出力端子に負荷容量を追加する負荷容量追加手段をさらに備える半導体集積回路の設計装置。
5. 1.乃至4.いずれかに記載の半導体集積回路の設計装置において、
前記置換手段が前記ゲーティッドブロックを前記バッファツリーの前記末端バッファに置換した後、前記フリップフロップを、前記フリップフロップが属するゲーティング論理に接続するゲーティッドブロック群に対応する前記バッファツリーの前記末端バッファ群周辺に移動する移動手段をさらに備える半導体集積回路の設計装置。
6. 5.に記載の半導体集積回路の設計装置において、
前記移動手段が、前記ゲーティッドブロックに接続していた前記フリップフロップを、前記ゲーティッドブロックを置換した前記バッファツリーの前記末端バッファ周辺に移動した後、変更された前記フリップフロップの前記配置分布に基づいて、前記フリップフロップの再クラスタリングを行う再クラスタリンク手段と、
再生成された前記フリップフロップのクラスタを前記バッファツリーの前記末端バッファへ割り当て直す割当手段と、をさらに備える半導体集積回路の設計装置。
7. 6.に記載の半導体集積回路の設計装置において、
前記移動手段による前記フリップフロップの移動と、前記再クラスタリンク手段による前記フリップフロップの再クラスタリングと、前記割当手段による前記フリップフロップの前記クラスタにおける前記バッファツリーの前記末端バッファへの再割り当てと、を少なくとも1回以上繰り返す繰り返し手段をさらに備える半導体集積回路の設計装置。
8. クロックゲーティング構造を含む半導体集積回路のチップ情報を受け付け、
規則対称レイアウト構造を有するバッファツリーを生成し、
フリップフロップを含む論理ゲートを配置し、
配置された前記フリップフロップの配置分布と前記半導体集積回路のゲーティング構造を考慮して、前記フリップフロップのクラスタを生成し、
前記フリップフロップの各クラスタを駆動するゲーティッドブロックを挿入し、
前記ゲーティッドブロックを前記バッファツリーの末端バッファに置換する半導体集積回路の設計方法。
9. 8.に記載の半導体集積回路の設計方法において、
前記ゲーティッドブロックを前記バッファツリーの前記末端バッファに置換する際に、
前記ゲーティッドブロックに接続する前記フリップフロップの前記配置分布を考慮して、
前記ゲーティッドブロックの複製、および、併合を行う半導体集積回路の設計方法。
10. 8.または9.に記載の半導体集積回路の設計方法において、
前記ゲーティッドブロックを前記バッファツリーの前記末端バッファに置換する際に、
前記バッファツリーの前記末端バッファが不足する場合は、前記バッファツリーの前記末端バッファの出力端子に複数のバッファを追加接続して、前記ゲーティッドブロックを追加バッファに置換する半導体集積回路の設計方法。
11. 10.に記載の半導体集積回路の設計方法において、
前記バッファの追加によりクロック遅延が増加する場合、前記バッファツリーの他の前記末端バッファの出力端子に負荷容量を追加する半導体集積回路の設計方法。
12. 8.乃至11.いずれかに記載の半導体集積回路の設計方法において、
前記ゲーティッドブロックを前記バッファツリーの前記末端バッファに置換した後、前記フリップフロップを、前記フリップフロップが属するゲーティング論理に接続するゲーティッドブロック群に対応する前記バッファツリーの前記末端バッファ群周辺に移動する半導体集積回路の設計方法。
13. 12.に記載の半導体集積回路の設計方法において、
前記ゲーティッドブロックに接続していた前記フリップフロップを、前記ゲーティッドブロックを置換した前記バッファツリーの前記末端バッファ周辺に移動した後、変更された前記フリップフロップの前記配置分布に基づいて、前記フリップフロップの再クラスタリングを行い、
再生成された前記フリップフロップのクラスタを前記バッファツリーの前記末端バッファへ割り当て直す半導体集積回路の設計方法。
14. 13.に記載の半導体集積回路の設計方法において、
前記フリップフロップの移動と、前記フリップフロップの再クラスタリングと、前記フリップフロップの前記クラスタにおける前記バッファツリーの前記末端バッファへの再割り当てと、を少なくとも1回以上繰り返す半導体集積回路の設計方法。
15. 半導体集積回路の設計装置として機能させるコンピュータに、
クロックゲーティング構造を含む半導体集積回路のチップ情報を受け付ける手順と、
規則対称レイアウト構造を有するバッファツリーを生成する手順と、
フリップフロップを含む論理ゲートを配置する手順と、
配置された前記フリップフロップの配置分布と前記半導体集積回路のゲーティング構造を考慮して、前記フリップフロップのクラスタを生成する手順と、
前記フリップフロップの各クラスタを駆動するゲーティッドブロックを挿入する手順と、
前記ゲーティッドブロックを前記バッファツリーの末端バッファに置換する手順と、を実行させるためのコンピュータプログラム。
16. 15.に記載のコンピュータプログラムにおいて、
前記ゲーティッドブロックを前記バッファツリーの前記末端バッファに置換する際に、前記ゲーティッドブロックに接続する前記フリップフロップの前記配置分布を考慮して、前記ゲーティッドブロックの複製、および、併合を行う手順をさらにコンピュータに実行させるためのコンピュータプログラム。
17. 15.または16.に記載のコンピュータプログラムにおいて、
前記置換手段により、前記ゲーティッドブロックを前記バッファツリーの前記末端バッファに置換する際に、前記バッファツリーの前記末端バッファが不足する場合、前記置換手段は、前記バッファツリーの前記末端バッファの出力端子に複数のバッファを追加接続して、前記ゲーティッドブロックを追加バッファに置換するコンピュータプログラム。
18. 17.に記載のコンピュータプログラムにおいて、
前記バッファの追加によりクロック遅延が増加する場合、前記バッファツリーの他の前記末端バッファの出力端子に負荷容量を追加する手順をさらにコンピュータに実行させるためのコンピュータプログラム。
19. 15.乃至18.いずれかに記載のコンピュータプログラムにおいて、
前記ゲーティッドブロックを前記バッファツリーの前記末端バッファに置換した後、前記フリップフロップを、前記フリップフロップが属するゲーティング論理に接続するゲーティッドブロック群に対応する前記バッファツリーの前記末端バッファ群周辺に移動する手順をさらにコンピュータに実行させるためのコンピュータプログラム。
20. 19.に記載のコンピュータプログラムにおいて、
前記ゲーティッドブロックに接続していた前記フリップフロップを、前記ゲーティッドブロックを置換した前記バッファツリーの前記末端バッファ周辺に移動した後、変更された前記フリップフロップの前記配置分布に基づいて、前記フリップフロップの再クラスタリングを行う再クラスタリンク手順と、
再生成された前記フリップフロップのクラスタを前記バッファツリーの前記末端バッファへ割り当て直す手順と、をさらにコンピュータに実行させるためのコンピュータプログラム。
21. 20.に記載のコンピュータプログラムにおいて、
前記フリップフロップの移動と、前記フリップフロップの再クラスタリングと、前記フリップフロップの前記クラスタにおける前記バッファツリーの前記末端バッファへの再割り当てと、を少なくとも1回以上繰り返す繰り返し手順をさらにコンピュータに実行させるためのコンピュータプログラム。
31 末端バッファ
33 クロックドライバセル
41 フリップフロップ
51 クラスタ
61 ゲーティッドブロック
71 ゲーティッドブロック
81 ゲーティッドブロック
83 ゲーティッドブロック
90 チップ情報記憶部
91 バッファ
100 半導体集積回路設計装置
101 チップ情報受付部
103 バッファツリー生成部
105 論理ゲート配置部
107 クラスタ生成部
109 ゲーティッドブロック挿入部
111 置換部
151 クラスタ
181 論理接続
191 負荷容量
200 半導体集積回路設計装置
201 ゲーティッドブロック複製部
203 ゲーティッドブロック併合部
205 バッファ追加部
300 半導体集積回路設計装置
301 フリップフロップ移動部
400 半導体集積回路設計装置
401 再クラスタリンク制御部
500 半導体集積回路設計装置
501 接続部
503 負荷容量追加部

Claims (21)

  1. クロックゲーティング構造を含む半導体集積回路のチップ情報を記憶する記憶装置と、
    規則対称レイアウト構造を有するバッファツリーを生成するバッファツリー生成手段と、
    フリップフロップを含む論理ゲートを配置する配置手段と、
    配置された前記フリップフロップの配置分布と前記半導体集積回路のゲーティング構造を考慮して、前記フリップフロップのクラスタを生成するクラスタ生成手段と、
    前記フリップフロップの各クラスタを駆動するゲーティッドブロックを挿入する挿入手段と、
    前記ゲーティッドブロックを前記バッファツリーの末端バッファに置換する置換手段と、を備える半導体集積回路の設計装置。
  2. 請求項1に記載の半導体集積回路の設計装置において、
    前記置換手段は、前記ゲーティッドブロックを前記バッファツリーの前記末端バッファに置換する際に、前記ゲーティッドブロックに接続する前記フリップフロップの前記配置分布を考慮して、前記ゲーティッドブロックの複製、および、併合を行う半導体集積回路の設計装置。
  3. 請求項1または2に記載の半導体集積回路の設計装置において、
    前記置換手段により、前記ゲーティッドブロックを前記バッファツリーの前記末端バッファに置換する際に、前記バッファツリーの前記末端バッファが不足する場合、前記置換手段は、前記バッファツリーの前記末端バッファの出力端子に複数のバッファを追加接続して、前記ゲーティッドブロックを追加バッファに置換する半導体集積回路の設計装置。
  4. 請求項3に記載の半導体集積回路の設計装置において、
    前記バッファの追加によりクロック遅延が増加する場合、前記バッファツリーの他の前記末端バッファの出力端子に負荷容量を追加する負荷容量追加手段をさらに備える半導体集積回路の設計装置。
  5. 請求項1乃至4いずれかに記載の半導体集積回路の設計装置において、
    前記置換手段が前記ゲーティッドブロックを前記バッファツリーの前記末端バッファに置換した後、前記フリップフロップを、前記フリップフロップが属するゲーティング論理に接続するゲーティッドブロック群に対応する前記バッファツリーの前記末端バッファ群周辺に移動する移動手段をさらに備える半導体集積回路の設計装置。
  6. 請求項5に記載の半導体集積回路の設計装置において、
    前記移動手段が、前記ゲーティッドブロックに接続していた前記フリップフロップを、前記ゲーティッドブロックを置換した前記バッファツリーの前記末端バッファ周辺に移動した後、変更された前記フリップフロップの前記配置分布に基づいて、前記フリップフロップの再クラスタリングを行う再クラスタリンク手段と、
    再生成された前記フリップフロップのクラスタを前記バッファツリーの前記末端バッファへ割り当て直す割当手段と、をさらに備える半導体集積回路の設計装置。
  7. 請求項6に記載の半導体集積回路の設計装置において、
    前記移動手段による前記フリップフロップの移動と、前記再クラスタリンク手段による前記フリップフロップの再クラスタリングと、前記割当手段による前記フリップフロップの前記クラスタにおける前記バッファツリーの前記末端バッファへの再割り当てと、を少なくとも1回以上繰り返す繰り返し手段をさらに備える半導体集積回路の設計装置。
  8. コンピュータによって実行される半導体集積回路の設計方法であって、
    クロックゲーティング構造を含む半導体集積回路のチップ情報を受け付け、
    規則対称レイアウト構造を有するバッファツリーを生成し、
    フリップフロップを含む論理ゲートを配置し、
    配置された前記フリップフロップの配置分布と前記半導体集積回路のゲーティング構造を考慮して、前記フリップフロップのクラスタを生成し、
    前記フリップフロップの各クラスタを駆動するゲーティッドブロックを挿入し、
    前記ゲーティッドブロックを前記バッファツリーの末端バッファに置換する半導体集積回路の設計方法。
  9. 請求項8に記載の半導体集積回路の設計方法において、
    前記ゲーティッドブロックを前記バッファツリーの前記末端バッファに置換する際に、前記ゲーティッドブロックに接続する前記フリップフロップの前記配置分布を考慮して、前記ゲーティッドブロックの複製、および、併合を行う半導体集積回路の設計方法。
  10. 請求項8または9に記載の半導体集積回路の設計方法において、
    前記ゲーティッドブロックを前記バッファツリーの前記末端バッファに置換する際に、前記バッファツリーの前記末端バッファが不足する場合は、前記バッファツリーの前記末端バッファの出力端子に複数のバッファを追加接続して、前記ゲーティッドブロックを追加バッファに置換する半導体集積回路の設計方法。
  11. 請求項10に記載の半導体集積回路の設計方法において、
    前記バッファの追加によりクロック遅延が増加する場合、前記バッファツリーの他の前記末端バッファの出力端子に負荷容量を追加する半導体集積回路の設計方法。
  12. 請求項8乃至11いずれかに記載の半導体集積回路の設計方法において、
    前記ゲーティッドブロックを前記バッファツリーの前記末端バッファに置換した後、前記フリップフロップを、前記フリップフロップが属するゲーティング論理に接続するゲーティッドブロック群に対応する前記バッファツリーの前記末端バッファ群周辺に移動する半導体集積回路の設計方法。
  13. 請求項12に記載の半導体集積回路の設計方法において、
    前記ゲーティッドブロックに接続していた前記フリップフロップを、前記ゲーティッドブロックを置換した前記バッファツリーの前記末端バッファ周辺に移動した後、変更された前記フリップフロップの前記配置分布に基づいて、前記フリップフロップの再クラスタリングを行い、
    再生成された前記フリップフロップのクラスタを前記バッファツリーの前記末端バッファへ割り当て直す半導体集積回路の設計方法。
  14. 請求項13に記載の半導体集積回路の設計方法において、
    前記フリップフロップの移動と、前記フリップフロップの再クラスタリングと、前記フリップフロップの前記クラスタにおける前記バッファツリーの前記末端バッファへの再割り当てと、を少なくとも1回以上繰り返す半導体集積回路の設計方法。
  15. 半導体集積回路の設計装置として機能させるコンピュータに、
    クロックゲーティング構造を含む半導体集積回路のチップ情報を受け付ける手順と、
    規則対称レイアウト構造を有するバッファツリーを生成する手順と、
    フリップフロップを含む論理ゲートを配置する手順と、
    配置された前記フリップフロップの配置分布と前記半導体集積回路のゲーティング構造を考慮して、前記フリップフロップのクラスタを生成する手順と、
    前記フリップフロップの各クラスタを駆動するゲーティッドブロックを挿入する手順と、
    前記ゲーティッドブロックを前記バッファツリーの末端バッファに置換する手順と、を実行させるためのコンピュータプログラム。
  16. 請求項15に記載のコンピュータプログラムにおいて、
    前記ゲーティッドブロックを前記バッファツリーの前記末端バッファに置換する際に、前記ゲーティッドブロックに接続する前記フリップフロップの前記配置分布を考慮して、前記ゲーティッドブロックの複製、および、併合を行う手順をさらにコンピュータに実行させるためのコンピュータプログラム。
  17. 請求項15または16に記載のコンピュータプログラムにおいて、
    前記置換手段により、前記ゲーティッドブロックを前記バッファツリーの前記末端バッファに置換する際に、前記バッファツリーの前記末端バッファが不足する場合、前記置換手段は、前記バッファツリーの前記末端バッファの出力端子に複数のバッファを追加接続して、前記ゲーティッドブロックを追加バッファに置換するコンピュータプログラム。
  18. 請求項17に記載のコンピュータプログラムにおいて、
    前記バッファの追加によりクロック遅延が増加する場合、前記バッファツリーの他の前記末端バッファの出力端子に負荷容量を追加する手順をさらにコンピュータに実行させるためのコンピュータプログラム。
  19. 請求項15乃至18いずれかに記載のコンピュータプログラムにおいて、
    前記ゲーティッドブロックを前記バッファツリーの前記末端バッファに置換した後、前記フリップフロップを、前記フリップフロップが属するゲーティング論理に接続するゲーティッドブロック群に対応する前記バッファツリーの前記末端バッファ群周辺に移動する手順をさらにコンピュータに実行させるためのコンピュータプログラム。
  20. 請求項19に記載のコンピュータプログラムにおいて、
    前記ゲーティッドブロックに接続していた前記フリップフロップを、前記ゲーティッドブロックを置換した前記バッファツリーの前記末端バッファ周辺に移動した後、変更された前記フリップフロップの前記配置分布に基づいて、前記フリップフロップの再クラスタリングを行う再クラスタリンク手順と、
    再生成された前記フリップフロップのクラスタを前記バッファツリーの前記末端バッファへ割り当て直す手順と、をさらにコンピュータに実行させるためのコンピュータプログラム。
  21. 請求項20に記載のコンピュータプログラムにおいて、
    前記フリップフロップの移動と、前記フリップフロップの再クラスタリングと、前記フリップフロップの前記クラスタにおける前記バッファツリーの前記末端バッファへの再割り当てと、を少なくとも1回以上繰り返す繰り返し手順をさらにコンピュータに実行させるためのコンピュータプログラム。
JP2009074284A 2009-03-25 2009-03-25 半導体集積回路の設計方法、設計装置および、コンピュータプログラム Expired - Fee Related JP5321185B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009074284A JP5321185B2 (ja) 2009-03-25 2009-03-25 半導体集積回路の設計方法、設計装置および、コンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009074284A JP5321185B2 (ja) 2009-03-25 2009-03-25 半導体集積回路の設計方法、設計装置および、コンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2010225084A JP2010225084A (ja) 2010-10-07
JP5321185B2 true JP5321185B2 (ja) 2013-10-23

Family

ID=43042173

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009074284A Expired - Fee Related JP5321185B2 (ja) 2009-03-25 2009-03-25 半導体集積回路の設計方法、設計装置および、コンピュータプログラム

Country Status (1)

Country Link
JP (1) JP5321185B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101971472B1 (ko) * 2014-12-26 2019-08-13 전자부품연구원 저전력 구현을 위한 순차회로 설계방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3125759B2 (ja) * 1998-08-11 2001-01-22 日本電気株式会社 自動設計システム、方法及び記録媒体
JP2001022816A (ja) * 1999-07-12 2001-01-26 Matsushita Electric Ind Co Ltd 半導体集積回路装置のレイアウト方法
JP2002237521A (ja) * 2001-02-08 2002-08-23 Matsushita Electric Ind Co Ltd 半導体装置のクロックスキュー調整方法
JP2007123336A (ja) * 2005-10-25 2007-05-17 Renesas Technology Corp 半導体集積回路のクロック構成方法およびそのプログラム
JP2009271699A (ja) * 2008-05-07 2009-11-19 Seiko Epson Corp 半導体集積回路並びにその設計方法及び設計プログラム

Also Published As

Publication number Publication date
JP2010225084A (ja) 2010-10-07

Similar Documents

Publication Publication Date Title
US9455715B2 (en) Apparatus for improving reliability of electronic circuitry and associated methods
US8689170B2 (en) Changing the location of a buffer bay in a netlist
US20110260764A1 (en) Semiconductor integrated circuit, method for designing semiconductor integrated circuit, and computer readable recording medium
JP2014006650A (ja) 動作合成装置、動作合成方法、動作合成装置を備えたデータ処理システム、及び、動作合成プログラム
US9697309B1 (en) Metastability-hardened synchronization circuit
US9141753B2 (en) Method for placing operational cells in a semiconductor device
JP2010257164A (ja) 半導体集積回路装置の設計方法およびプログラム
US9684751B2 (en) Slack redistribution for additional power recovery
US11321513B1 (en) DVD analysis that accounts for delays
US12079558B2 (en) On-the-fly multi-bit flip flop generation
JP5321185B2 (ja) 半導体集積回路の設計方法、設計装置および、コンピュータプログラム
Lim et al. An optimal algorithm for allocation, placement, and delay assignment of adjustable delay buffers for clock skew minimization in multi-voltage mode designs
US10216880B1 (en) Systems and methods for power efficient flop clustering
US8032855B1 (en) Method and apparatus for performing incremental placement on a structured application specific integrated circuit
US20220171912A1 (en) Poly-bit cells
US9519746B1 (en) Addressing early mode slack fails by book decomposition
JP2011210053A (ja) 半導体集積回路の設計方法、設計装置およびプログラム
JP2009188093A (ja) 半導体集積回路の設計装置、方法、及び、プログラム
JP6326756B2 (ja) スキャンパスを構成するための情報処理装置、スキャンパス接続方法及びプログラム
KR102563928B1 (ko) 표준 셀 라이브러리, 동기 회로를 포함하는 집적 회로 및 집적 회로를 설계하기 위한 컴퓨팅 시스템
Arumugam et al. A novel PDWC‐UCO algorithm‐based buffer placement in FPGA architecture
JP5531479B2 (ja) 回路設計方法、及び回路設計プログラム
JP2003330990A (ja) 多電源対応論理ネットリスト、遅延情報抽出方法および論理タイミング検証方法
JP2012094065A (ja) クロックツリー生成装置及びクロックツリー生成方法
JP2011128682A (ja) 半導体集積回路の設計方法、設計装置およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130305

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130618

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130701

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees