JP2013149122A - 集積回路の設計方法、設計装置、及びプログラム - Google Patents
集積回路の設計方法、設計装置、及びプログラム Download PDFInfo
- Publication number
- JP2013149122A JP2013149122A JP2012009857A JP2012009857A JP2013149122A JP 2013149122 A JP2013149122 A JP 2013149122A JP 2012009857 A JP2012009857 A JP 2012009857A JP 2012009857 A JP2012009857 A JP 2012009857A JP 2013149122 A JP2013149122 A JP 2013149122A
- Authority
- JP
- Japan
- Prior art keywords
- logic
- logic cell
- cell
- cells
- subset
- 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
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
【課題】消費電力をなるべく低減できるように断熱リサイクル論理回路を設計する。
【解決手段】断熱リサイクル論理回路の論理セルをそれぞれの論理深さに応じてM個(M≧N)の論理セル部分集合にグルーピングし、M個の論理セル部分集合のうちの少なくとも一の論理セル部分集合に属する論理セルの数が増加するように、グルーピングされた複数の論理セルのうちの少なくとも一の論理セルを移動して少なくとも一の論理セルが属する論理セル部分集合を変更する。更に、論理セル集合のそれぞれが、M個の論理セル部分集合のうちの一の論理セル部分集合又は2以上の論理セル部分集合の和集合として決定される。決定されたN個の論理セル集合にN個の電源クロック信号を割り当てる。更に、論理セル集合のそれぞれは、論理セルの数が増加された前記少なくとも一の論理セル部分集合に属する論理セルが、論理セル集合回路の第1段の論理セルになるように決定される。
【選択図】図6
【解決手段】断熱リサイクル論理回路の論理セルをそれぞれの論理深さに応じてM個(M≧N)の論理セル部分集合にグルーピングし、M個の論理セル部分集合のうちの少なくとも一の論理セル部分集合に属する論理セルの数が増加するように、グルーピングされた複数の論理セルのうちの少なくとも一の論理セルを移動して少なくとも一の論理セルが属する論理セル部分集合を変更する。更に、論理セル集合のそれぞれが、M個の論理セル部分集合のうちの一の論理セル部分集合又は2以上の論理セル部分集合の和集合として決定される。決定されたN個の論理セル集合にN個の電源クロック信号を割り当てる。更に、論理セル集合のそれぞれは、論理セルの数が増加された前記少なくとも一の論理セル部分集合に属する論理セルが、論理セル集合回路の第1段の論理セルになるように決定される。
【選択図】図6
Description
本発明は、集積回路の設計方法、設計装置、及びプログラムに関し、特に、断熱リサイクル動作に対応した構成を有する集積回路の設計に関する。
あらゆるロジックLSI(large scale integrated circuit)で消費電力の低減が求められている。スタティックCMOS回路技術においても、既に、消費電力の低減のための様々な手法が提案されているが、CMOS論理の動作原理が低電力化の大きな壁として立ちはだかっている。CMOS論理は、原理的に、論理セルの出力の値が変化するときに電源からの充電と接地への放電とが行われるため、電源から接地へ静電エネルギーを放出してしまうという性質がある。加えて、充電及び放電に伴い素子や配線に電流が流れ、抵抗成分によってジュール熱という形でエネルギーを放出してしまうという性質がある。
以上の課題を解決する手法として、断熱リサイクル動作が提案されている。断熱リサイクル動作とは、入力信号を確定させてから電源端子と接地端子に供給される信号を徐々に変化させ、また、出力信号が確定している状態で当該信号を徐々に変化させることで消費電力を低減させる手法である。断熱リサイクル動作では、電源端子や接地端子の電位の変化を緩やかにすることで素子や配線に流れる電流を抑えることが可能となり、ジュール熱によるエネルギー放出を抑えることが可能になっている(このような動作は、断熱動作と呼ばれる)。また、出力信号が確定している状態で電源端子と接地端子に供給される信号を変化させることで、電源に電荷を回収し、再利用することが可能になっている(このような動作は、リサイクル動作と呼ばれる)。断熱リサイクル動作では、電源端子と接地端子に与えられる信号は交流(非直流)である。この交流信号は電源とクロックを兼ねているため、電源クロック信号とよばれる。
なお、断熱リサイクル動作については、例えば、特開平10−308662号公報(特許文献1)、及び、特開平7−221631号公報(特許文献2)、特開2011−124631号公報(特許文献3)に開示されている。特許文献1は、クロスカップルされたPMOSトランジスタとNMOS演算部からなる単位論理回路において、入力信号と電圧信号とを同位相で制御する技術を開示している。特許文献2は、CMOS(complementary MOS)論理回路にスイッチングダイオードを結合すると共に、位相が180°ずれた入力クロックを供給する技術を開示している。特許文献3は、断熱的回路動作と非断熱的回路動作を切り替え可能である回路装置を開示している。
断熱リサイクル論理回路は、論理レベルでは同期式論理のCMOS論理回路と概ね同様の構成であり、回路入力とフリップフロップ(レジスタ)の間、フリップフロップとフリップフロップの間、フリップフロップと回路出力の間に組合せ論理回路をおく構成をとる。図1は、断熱リサイクル動作に対応したCMOS論理回路の構成の簡単な例を示している。コア101は、断熱リサイクル動作に対応する構成を有しており、コア101には、高位側電源クロック信号VDD1〜VDD3、VDDFと、低位側電源クロック信号GND1〜GND3、GNDFとが供給されている。コア101は、論理セル102〜104と、フリップフロップ105、106とを備えている。論理セル102〜104のそれぞれは、CMOS回路として構成されており、論理セル102〜104は、組み合わせ論理回路を構成している。
図1の回路では、フリップフロップ105は、データ信号D0を論理セル102に出力する。論理セル102は、データ信号D0に応答してデータ信号D1を出力し、論理セル103は、データ信号D1に応答してデータ信号D2を出力し、論理セル104は、データ信号D2に応答してデータ信号D3を出力する。フリップフロップ106は、データ信号D3をラッチする。
断熱リサイクル論理回路では、基本的には、フリップフロップと組合せ論理回路内の論理セルとで、異なる電源クロック信号が供給される。そして、論理パスの前段の論理セルの電源クロック信号が次段の論理セルの電源クロック信号よりも早く変化するように各論理セルに電源クロック信号が供給される。これは、各論理セルは、入力信号の確定の後に電源クロック信号が変化するという順序によって、断熱リサイクル動作を実現するためである。
例えば、図1の回路では、フリップフロップ105、106に高位側電源クロック信号VDDF及び低位側電源クロック信号GNDFが供給される。一方、論理セル102、103、104には、高位側電源クロック信号VDD1、VDDD2、VDD3がそれぞれ供給され、更に、低位側電源クロック信号GND1、GND2、GND3がそれぞれ供給される。
図2A及び図2Bは、図1の回路の各信号の波形の例を示すタイミングチャートである。図2Aは、低位側電源クロック信号GND1、GND2、GND3が接地電位(VL(=0V))に固定される場合の波形を示しており、図2Bは、低位側電源クロック信号GND1、GND2、GND3が高位側電源クロック信号VDD1、VDDD2、VDD3に同期して変化する場合の波形を示している。図2A、図2Bの動作では、フリップフロップ105、106に供給される高位側電源クロック信号VDDF、低位側電源クロック信号GNDFは、それぞれ、正電源電圧VH、接地電圧VLに固定される。
図2Aの動作では、論理セル102に入力されるデータ信号D0の値が確定した後(タイミング(1))、高位側電源クロック信号VDD1が接地電圧VLから正電源電圧VHに緩やかにプルアップされる(タイミング(2))。これにより、論理セル102から出力される(即ち、論理セル103に入力される)データ信号D1の値が確定する。即ち、論理セル102の出力ノードの充電が完了する。続いて、高位側電源クロック信号VDD2が接地電圧VLから正電源電圧VHに緩やかにプルアップされる。これにより、論理セル103から出力される(即ち、論理セル104に入力される)データ信号D2の値が確定する。更に、高位側電源クロック信号VDD3が接地電圧VLから正電源電圧VHに緩やかにプルアップされ、論理セル104から出力されるデータ信号D3の値が確定する。高位側電源クロック信号VDD1、VDD2、VDD3が緩やかに(図2Aではランプ波形状に)変化されることにより、論理セル102、103、104の出力ノードを充電する経路に流れる電流の大きさが小さくなり、消費電力が有効に低減される。
続いて、高位側電源クロック信号VDD3が正電源電圧VHから接地電圧VLに緩やかにプルダウンされる。これにより、電荷が、論理セル104の出力ノードから高位側電源クロック信号VDD3を生成する電源に回収される。続いて、高位側電源クロック信号VDD2、VDD1が順次に正電源電圧VHから接地電圧VLに緩やかにプルダウンされ、電荷が、論理セル103、102の出力ノードから電源に回収される。電荷が電源に回収されることにより、消費電力が有効に低減される。
低位側電源クロック信号GND1、GND2、GND3も変化される場合、図2Bに図示されているように、低位側電源クロック信号GND1、GND2、GND3が、それぞれ、高位側電源クロック信号VDD1、VDDD2、VDD3が正電源電圧VHにプルアップされるタイミングで接地電圧VLにプルダウンされ、高位側電源クロック信号VDD1、VDDD2、VDD3が接地電圧VLにプルダウンされるタイミングで正電源電圧VHにプルアップされる。これにより、消費電力の低減が実現される。
多段の論理セルに供給される電源クロック信号の変動において適切な時間差を実現するためには、理想的には、図1に図示されているように、組合せ論理回路の最大の論理深さ(最大の論理段数)と同数の電源クロック信号を組合せ論理回路に供給することが望ましい。例えば、図1の回路では、論理セル102〜104で構成される組合せ論理回路の最大の論理深さが3であり、3つの高位側電源クロック信号VDD1〜VDD3が当該組合せ論理回路に供給される。ところが、所望のタイミングで変動する交流信号を多数発生させると、回路サイズが大きくなり、また、消費電力が増大するため、一部の論理セルは前段と同じ電源クロック信号を与えざるを得ないことがある。
例えば、図3は、論理セル102〜104で構成される組合せ論理回路(論理深さが3)に2つの高位側電源クロック信号VDD1、VDD2しか供給されない場合の断熱リサイクル論理回路の構成の例を示している。図3の回路では、論理セル102、103に高位側電源クロック信号VDD1が共通に供給されている。
このような場合には、図4に図示されているように、後段の論理セル103に供給される高位側電源クロック信号VDD1が変動を始めるタイミングが、前段の論理セル102の出力信号D1が確定する前になってしまう。そのため、前段の論理セル102は断熱リサイクル動作を行うが、後段の論理セル103は断熱リサイクル動作を行わなくなってしまう。
よって、できるだけ消費電力が低い断熱リサイクル論理回路を設計するためには、組合せ論理回路部分を組合せ論理回路部分に供給可能な電源クロック信号と同数の電源ドメインにグルーピングしたときに、電源ドメインの第1段になる論理セルの数を増やす一方で、電源ドメインの第2段以降になる論理セルの数を少なくすることが望ましい。
この点は、通常のCMOS論理回路と断熱リサイクル論理回路の設計の重要な差異である。図5は、CMOS論理回路と断熱リサイクル論理回路の設計の差異を説明する図である。断熱リサイクル論理回路は、多数の電源を用いるという点でCMOS論理回路と共通点があるが、CMOS論理回路では、CPU等のコアやコア内部の演算器を単位として同一の電源電圧が供給される電源ドメインが定められる。例えば、図5の左図に示されているように、コア201、202、203のそれぞれに論理セルとフリップフロップとが含まれ、コア201、202、203のそれぞれに含まれている論理セルとフリップフロップに同一の電源電圧が供給される。例えば、コア201には論理セル204〜206とフリップフロップ207、208が含まれているが、これらの論理セル204〜206、フリップフロップ207、208には、高位側電源電圧VDD1と低位側電源電圧VSS1が供給される。それぞれの電源ドメインでは、機能の使用/不使用にしたがい電源のオン/オフや、要求性能にしたがい電源電圧の昇圧/降圧が行われる。
それに対して、断熱リサイクル論理回路は、図5の右図に図示されているように、原則的に論理セルを単位として電源ドメインのグルーピングが行われる。このとき、各電源ドメインの第1段の論理セル以外は断熱リサイクル動作を行わない。このため、各電源ドメインの第1段の論理セル以外の論理セルでは、消費電力を浪費してしまうことになる。
しかしながら、ここで議論したようなCMOS論理回路と断熱リサイクル論理回路の設計における差異に着目し、消費電力をなるべく低減できるように断熱リサイクル論理回路を設計する手法は、発明者の知る限り知られていない。
このように、従来技術には消費電力をなるべく低減できるように断熱リサイクル論理回路を設計する技術が存在しないという課題がある。
一実施形態では、集積回路設計方法が、断熱リサイクル論理回路に含まれる複数の論理セルをN個(N≧3)の論理セル集合にグルーピングする工程と、N個の論理セル集合にN個の電源クロック信号を割り当てる工程と、複数の論理セル集合のそれぞれに割り当てられた電源クロック信号が、それぞれに属する論理セルで構成される論理セル集合回路に供給されるように、断熱リサイクル論理回路のネットリストである出力ネットリストを生成する工程とを具備する。ここで、N個の論理セル集合のうちの一であるフリップフロップ論理セル集合については、該フリップフロップ論理セル集合がフリップフロップで構成されるように複数の論理セルが論理セル集合に割り当てられる。加えて、複数の論理セルのうちフリップフロップ論理セル集合に割り当てられていない論理セルがそれぞれの論理深さに応じてM個(M≧N)の論理セル部分集合にグルーピングされ、M個の論理セル部分集合のうちの少なくとも一の論理セル部分集合に属する論理セルの数が増加するように、グルーピングされた複数の論理セルのうちの少なくとも一の論理セルを移動して少なくとも一の論理セルが属する論理セル部分集合が変更される。更に、N個の論理セル集合のうちのフリップフロップ論理セル集合以外の論理セル集合のそれぞれが、M個の論理セル部分集合のうちの一の論理セル部分集合又は2以上の論理セル部分集合の和集合として決定される。N個の論理セル集合のうちのフリップフロップ論理セル集合以外の論理セル集合のそれぞれは、論理セルの数が増加された前記少なくとも一の論理セル部分集合に属する論理セルが、論理セル集合回路の第1段の論理セルになるように決定される。
一実施形態によれば、消費電力をなるべく低減できるように断熱リサイクル論理回路を設計する技術が提供される。
以下、添付図面を参照しながら、一実施形態の集積回路の設計方法を説明する。まず、以下の説明において使用される用語について説明する。
(1)論理セル
論理セルとは、例えば、フリップフロップや、組合せ論理ゲート(ANDゲート、ORゲート、インバータ等)のような、一つの機能を実現する単位となる論理回路をいう。本実施形態では、各論理セルが(少なくとも一のNMOSトランジスタと少なくとも一のPMOSトランジスタとを備える)CMOS回路として構成されている。
論理セルとは、例えば、フリップフロップや、組合せ論理ゲート(ANDゲート、ORゲート、インバータ等)のような、一つの機能を実現する単位となる論理回路をいう。本実施形態では、各論理セルが(少なくとも一のNMOSトランジスタと少なくとも一のPMOSトランジスタとを備える)CMOS回路として構成されている。
(2)論理セル集合
論理セル集合とは、最終的に1つの電源ドメインを構成する(即ち、同一の電源クロック回路が供給される)論理セルの集合である。例えば、N個の高電位電源クロック信号が供給される場合、本実施形態の設計方法の最終的な目標は、N個の論理セル集合を最適に決定することにある。後述されるように、本実施形態の設計方法では、フリップフロップだけで構成される論理セル集合が一つ定義され、他の論理セルは、N−1個の論理セル集合にグルーピングされる。
論理セル集合とは、最終的に1つの電源ドメインを構成する(即ち、同一の電源クロック回路が供給される)論理セルの集合である。例えば、N個の高電位電源クロック信号が供給される場合、本実施形態の設計方法の最終的な目標は、N個の論理セル集合を最適に決定することにある。後述されるように、本実施形態の設計方法では、フリップフロップだけで構成される論理セル集合が一つ定義され、他の論理セルは、N−1個の論理セル集合にグルーピングされる。
(3)論理セル集合回路
ある論理セル集合の論理セル集合回路とは、該論理セル集合に含まれる論理セルで構成される回路である。1つの電源ドメインに1つの論理セル集合回路が存在する。各論理セル集合について論理セル集合回路は定義可能である。
ある論理セル集合の論理セル集合回路とは、該論理セル集合に含まれる論理セルで構成される回路である。1つの電源ドメインに1つの論理セル集合回路が存在する。各論理セル集合について論理セル集合回路は定義可能である。
(4)論理セル部分集合
論理セル部分集合とは、論理セル集合を最終的に決定するために補助的に利用される集合である。後述されるように、論理セル部分集合は、初期的に、フリップフロップ間に設けられる組合せ論理回路の入力からの論理深さ(後述)に基づいて定義される。最終的には、論理セル集合が、一つ以上の論理セル部分集合の集合として定義される。即ち、複数の論理セル部分集合を併合して一つの論理セル集合が決定されることがあり、また、単一の論理セル部分集合がそのまま一つの論理セル集合として決定されることもあり得る。
論理セル部分集合とは、論理セル集合を最終的に決定するために補助的に利用される集合である。後述されるように、論理セル部分集合は、初期的に、フリップフロップ間に設けられる組合せ論理回路の入力からの論理深さ(後述)に基づいて定義される。最終的には、論理セル集合が、一つ以上の論理セル部分集合の集合として定義される。即ち、複数の論理セル部分集合を併合して一つの論理セル集合が決定されることがあり、また、単一の論理セル部分集合がそのまま一つの論理セル集合として決定されることもあり得る。
(5)論理深さ
組合せ論理回路の特定の論理セル(以下、「対象論理セル」という)の論理深さとは、当該組合せ論理回路の入力から対象論理セルに到達するパスに存在する論理セル(対象論理セルを含む)の数の最大値である。ここで、組合せ論理回路の入力から対象論理セルに到達するパスが複数存在し得ることに留意されたい。
組合せ論理回路の特定の論理セル(以下、「対象論理セル」という)の論理深さとは、当該組合せ論理回路の入力から対象論理セルに到達するパスに存在する論理セル(対象論理セルを含む)の数の最大値である。ここで、組合せ論理回路の入力から対象論理セルに到達するパスが複数存在し得ることに留意されたい。
図6は、本発明の一実施形態における断熱リサイクル論理回路の設計手順の概略を示すフローチャートであり、図7は、設計方法の例を示す概念図である。図7の例では、設計対象の断熱リサイクル論理回路に3つの高位側電源クロック信号Vdd1、Vdd2、Vdd3が割り当てられる。ここで、図7の例では、理解を容易にするために、各論理セルの接地端子が接地電圧VLに固定される(即ち、低位側電源クロック信号が接地電圧VLに固定される)ものとする。この場合、各論理セルが、電源クロック信号Vdd1、Vdd2、Vdd3にそれぞれに対応する電源ドメイン(即ち、論理セル集合)のいずれに属するかを決定するかが本実施形態の設計方法の主題である。入力としては、断熱リサイクル論理回路における論理セルとその接続関係を記述したネットリスト(入力ネットリストという)が与えられる。なお、当該設計方法は、コンピュータにインストールされたプログラムによって実行されてもよい。
図6に戻り、第1の工程では、入力ネットリストに含まれる論理セルのうち組合せ論理回路に属する論理セル(フリップフロップ以外の論理セル)が、それぞれの論理深さに応じて論理セル部分集合にグルーピングされる(ステップS101)。このとき、フリップフロップは、特定の論理セル集合(以下では、フリップフロップ論理セル集合という。)にグルーピングされ、論理セル部分集合にはグルーピングされない。これは、本実施形態では、全フリップフロップが、組合せ論理回路に属する論理セルとは別に同一の電源ドメインに属するように決定されるからである。なお、本実施形態では、フリップフロップとは、データを保持する機能を有する記憶素子を意味し、ラッチやレジスタを含むことを意味している。
ここで、(1)各論理セル部分集合は、直接接続するパス(配線)を有する2つの論理セルを含んではならず、また、(2)論理セル部分集合の接続関係を有向グラフにしたときに帰還ループが存在してはならないという2つの制約を有する。ここで、該有向グラフの辺は、論理セル部分集合の間の配線として定義され、且つ、各辺の向きは、該辺の一端に第1の論理セルの出力が接続され他端に第2の論理セルの入力が接続される場合に、第1の論理セルの出力から第2の論理セルの入力に向かう方向と定義される。
例えば、図8Aは、直接接続するパスを有する2つの論理セルC1、C2の例を示しており、論理セルC1の出力が配線を通じて直接に論理セルC2の出力に接続されている。図8Aの論理セルC1、C2が同一の論理セル部分集合に属することは禁止される。また、図8Bは、論理セル部分集合の接続関係に帰還ループが存在する例を示している。図8Bでは、論理セルC1、C2、C3が論理セル部分集合#1に属し、論理セルC4、C5、C6が論理セル部分集合#2に属している。ここで、図8Bでは、論理セル部分集合#1の論理セルC2の出力から論理セル部分集合#2の論理セルC6の入力に接続された配線が存在する一方で、論理セル部分集合#2の論理セルC5の出力が論理セル部分集合#1の論理セルC3の入力に接続されている。即ち、論理セル部分集合#1から論理セル部分集合#2に送られる信号と、論理セル部分集合#2から論理セル部分集合#1に送られる信号とが存在し、論理セル部分集合の間に帰還ループが存在する。図8Bに示されているような論理セル部分集合#1、#2を定義することは禁止される。
図7の左図は、ステップS101のグルーピングの例を示している。図7の例では、入力ネットリストに記述された設計対象の断熱リサイクル論理回路が、フリップフロップF1〜F8と、論理セルC1〜C14とを備えている。論理セルC1〜C14は、フリップフロップF1〜F4と、フリップフロップF5〜F8との間に設けられた組合せ論理回路を構成している。図7では、フリップフロップF1〜F4の出力が、当該組合せ論理回路の入力となっており、各論理セルの論理深さは、フリップフロップF1〜F4の出力から起算される。
図7の例では、論理深さが1である論理セル、即ち、論理セルC1〜C4は、論理セル部分集合#1にグルーピングされ、論理深さが2である論理セル、即ち、論理セルC5〜C8は、論理セル部分集合#2にグルーピングされる。更に、論理深さが3である論理セル、即ち、論理セルC9〜C12は、論理セル部分集合#3にグルーピングされ、論理深さが4である論理セル、即ち、論理セルC13は、論理セル部分集合#4にグルーピングされる。そして、論理深さが5である論理セル、即ち、論理セルC14は、論理セル部分集合#5にグルーピングされる。フリップフロップF1〜F8は、論理セル部分集合にはグルーピングされず、別個にフリップフロップ論理セル集合に分類される。フリップフロップ論理セル集合には、後のステップS103において、一つの電源クロック信号が割り当てられる。
第2の工程では、論理セルを論理セル部分集合の間で移動することでグルーピングが変更される(ステップS102)。論理セルの移動は、組合せ論理回路に割り当てられる電源クロック信号の数と同数の論理セル部分集合になるべく多くの論理セルが属するように行われる。論理セルの移動後にも、上述の制約(各論理セル部分集合は、直接接続するパスを有する2つの論理セルを含んではならず、また、論理セル部分集合の接続関係を有向グラフにしたときに帰還ループが存在してはならない)が満たされていなければならない。論理セルの移動については、後に詳細に説明する。
例えば、図7の例では、既に、フリップフロップ論理セル集合に一つの電源クロック信号が割り当てられると決定されているから、組合せ論理回路に割り当てられる電源クロック信号の数は2である。よって、2つの論理セル部分集合に多くの論理セルが集まるように論理セルが移動される。図7の例では、論理セルC7、C8が論理セル部分集合#3に移動され、論理セルC12が論理セル部分集合#5に移動されている。これにより、論理セル部分集合#1、#3により多くの論理セルが集まるように論理セルが移動されることになる。
第3の工程では、ステップS102で決定された論理セル部分集合から論理セル集合が最終的に決定され、各論理セル集合に1つの電源クロック信号が割り当てられる(ステップS103)。論理セル集合は、それに含まれる論理セルによって構成される論理セル集合回路において、ステップS102において多くの論理セルが集められた論理セル部分集合に含まれる論理セルが第1段となるように生成される。
第4の工程では、各々の論理セルに供給される電源クロック信号の情報を含むネットリストが生成されて出力される(ステップS104)。このとき、各論理セル集合に属する論理セルには、該論理セル集合に割り当てられた電源クロック信号が供給されるようにネットリストが生成される。
ステップS102における論理セルの移動、ステップS103における電源割当、及び、ステップS104におけるネットリストの作成の結果、ステップS102において少なくとも一の論理セル部分集合に属する論理セルの数が増加され、更に、該少なくとも一の論理セル部分集合に属する論理セルが、対応する論理セル集合回路(電源ドメイン)において第1段の論理セルとなる。この結果、各電源ドメインの第1段に位置する論理セルが増加され、断熱リサイクル動作を行う論理セルの数を増加させることができる。
特に、ステップS102において、組合せ論理回路に割り当てられる電源クロック信号の数と同数の論理セル部分集合に属する論理セルの数を増加し、論理セルの数を増加させた該論理セル部分集合を対応する論理セル集合回路(電源ドメイン)において第1段の論理セルとすることで、断熱リサイクル動作を行う論理セルの数を増加させることができる。
図7の例では、図7の左下図から理解されるようにステップS101におけるグルーピングで決められた論理セル部分集合から論理セル集合を決定し、該論理セル集合に対して電源の割り当てを行った場合、断熱リサイクル動作を行う論理セルの数は、8個になる。一方、図7の右下図から理解されるようにステップS102において論理セルを論理セル部分集合の間で移動させることで、断熱リサイクル動作を行う論理セルの数が9個に増加する。これは、本実施形態の設計方法は、消費電力を低減した設計を実現していることを意味している。
以下では、本実施形態の集積回路設計方法について詳細に説明する。図9A〜図9Cは、本実施形態における断熱リサイクル論理回路の設計手順を示すフローチャートである。後述のように、図9A〜図9Cに示された設計手順は、データ処理装置にインストールされたデータ処理プログラムによって実行される。該データ処理プログラムは、非一時的に(non-transitory)データを記録する記録媒体に書き込まれて当該データ処理装置に提供されてもよい。
以下では、設計対象の断熱リサイクル論理回路にN個の高位側電源クロック信号Vdd1、Vdd2・・・Vdd(N)が割り当てられるものとして説明を行う。ここで、理解を容易にするために、各論理セルの接地端子が接地電圧VLに固定される(即ち、低位側電源クロック信号が接地電圧VLに固定される)ものとし、高位側電源クロック信号を、単に、電源クロック信号と記述することにする。上述のように、電源クロック信号には、1からNまでの番号が与えられる。ここで、後述されるように、1つの電源クロック信号はフリップフロップで構成される論理セル集合に割り当てられ、且つ、少なくとも2つの電源クロック信号が組合せ論理回路に供給されなければ組合せ論理回路を構成する論理セルをグルーピングする意味がないから、Nは3以上の整数である。
該データ処理プログラムの入力データは、RTL(Register Transfer Level)記述を論理合成ツールにより変換して得られる断熱リサイクル論理回路のネットリストである入力ネットリストと、供給される電源クロック信号の数である。入力ネットリストには、該断熱リサイクル論理回路に含まれる論理セル(例えば、フリップフロップ、NANDゲート、NORゲート、インバータ等)と、それらの間の接続関係が記述される。一方、最終的に得ようとするデータ、即ち、当該データ処理プログラムの出力データは、各々の論理セルに電源情報を付加したネットリストである。
まず、入力ネットリストに記述された断熱リサイクル論理回路に含まれるフリップフロップを、組合せ論理回路を構成する論理セルとは別にグルーピングして、フリップフロップで構成される論理セル集合#1を生成する(ステップS1)。組合せ論理回路を構成する論理セル(即ち、断熱リサイクル論理回路に含まれる論理セルのうち、フリップフロップ以外の論理セル)は、以下、組合せ論理セルということにする。
以下では、組合せ論理セルを(N−1)個の論理セル集合に最適にグルーピングする手法について説明する。本実施形態では、論理セル集合の形成に当たり、まず論理セル部分集合を生成する。この論理セル部分集合は、論理セル集合#2〜#Nを形成するために補助的に用いられる。最終的に、各論理セル集合を少なくとも1つ以上の論理セル部分集合に含まれる論理セルの集合として定義することで、同一の電源クロック信号が供給される論理セルで構成される論理セル集合が形成される。
本実施形態で論理セル部分集合を用いる目的は、論理セルの断熱リサイクル動作の可能性を集約的に計算することにある。この目的のため、複数の論理セル部分集合を併合して一つの電源クロック信号が供給される論理セル集合を形成したときに、該論理セル集合を構成する論理セル部分集合のうちの一つの論理セル部分集合に含まれる全ての論理セルが当該電源ドメイン(即ち、該論理セル集合の論理セル集合回路)での第1段になっているように、各々の論理セル部分集合を形成する。このため、上述のように、論理セル部分集合は、直接接続するパスを有する2つの論理セルを含んではならないこと(図8A参照)と、論理セル部分集合の接続関係を有向グラフにしたときに帰還ループが存在してはならないこと(図8B参照)の2つの制約を有する。
本実施形態では、組合せ論理セルで構成される組合せ論理回路の入力からの論理深さに基づいて論理セルをグルーピングし、同一の論理深さの論理セル全てを1つの論理セル部分集合に含めることで各論理セル部分集合を定義する方法を用いる。
具体的には、まず、入力ネットリストの断熱リサイクル論理回路に記述された組合せ論理セルの論理深さの最大値Depthを求め、Depth個の論理セル部分集合を、空集合として生成する(ステップS2)。ここで、上述のように、特定の論理セルの論理深さとは、当該組合せ論理回路の入力から該特定の論理セルに到達するパスに存在する論理セル(該特定の論理セルを含む)の数の最大値である。論理セル部分集合には論理深さに対応して1〜Depthの番号が与えられる。ここで、論理セル部分集合の個数Depthが、組合せ論理回路に割り当てられる電源クロック信号の数(N−1)以下である場合には、論理セル部分集合のグルーピングに関わらず全ての組合せ論理セルについて断熱リサイクル動作を行うことが可能であることに留意されたい。結果として、以下の手順は、論理セル部分集合の個数Depthが組合せ論理回路に割り当てられる電源クロック信号の数(N−1)より多いである場合、即ち、Depth≧Nである場合に意味があることに留意されたい。
次に、組合せ論理セル(フリップフロップ以外の論理セル)の各々について、それぞれの論理深さに対応する論理セル部分集合へのグルーピングを行う。具体的には、まだグルーピングされていない組合せ論理セルが存在する場合(ステップS11で「Yes」)、そのうち一つが選択され(ステップS12)、選択された組合せ論理セルの論理深さdが求められる。選択された組合せ論理セルの論理深さがdである場合、該組合せ論理セルは、論理セル部分集合#dにグルーピングされる(ステップS13)。ステップS12、S13の過程は、未分配の組合せ論理セルがなくなるまで(ステップS11で「No」)行われる。以上の図9AのステップS1〜S13が、第1の工程(図6のステップS101)に相当する。
続いて、ステップS31〜S33、S41〜S47、S51〜S54における論理セルの移動の前準備として、組合せ論理回路の出力に直接に接続された出力を有する組合せ論理セルが、論理セル部分集合#Depthに移動される。これは、以降で述べられる論理セルの移動の際に、論理セルの移動可能範囲をなるべく広くするためである。
更に、組合せ論理回路に割り当てられる電源クロック信号の数(即ち、N−1)と同数の論理セル部分集合に属する論理セルの数が最大になるように論理セル部分集合間で論理セルの移動を行う(ステップS31〜S33、S41〜S47、S51〜S54)。この移動の結果、前述の2つの制約を違反してはならない。この移動の制約について図10の例を用いて説明する。
図10において、論理セル部分集合#3に含まれる論理セルC4が、3つの入力と2つの出力を有していて、該3つの入力を供給する論理セルC1〜C3が論理セル部分集合#1、#2に含まれ、2つの出力を受ける論理セルC9、C11が論理セル部分集合#7、論理セル部分集合#9に含まれる場合を考える。論理セルC4が論理セル部分集合#2に移動されると、入力を供給する論理セルC2と同一の論理セル部分集合に属することになる。この場合、論理セルC2が電源ドメインの第1段で維持される一方で論理セルC4が第2段になる可能性がある。また、論理セルC4が論理セル部分集合#7に移動されると、出力を受ける論理セルC9と同一の論理セル部分集合に属することになる。この場合、論理セルC7が電源ドメインの第1段になる一方で論理セルC9が電源ドメインの第2段になる可能性がある。このような移動は(1)各論理セル部分集合は、直接接続するパス(配線)を有する2つの論理セルを含んではならないという制約を満足しないから、禁止されなくてはならない。一方、論理セルC4の移動先が論理セル部分集合#3〜#6であれば、同じ論理セル部分集合に含まれる論理セルとともに電源ドメインの第1段になるか、ともに第2段以降になるかのどちらかとなる。このような移動は許容される。
そこで、以下で述べられる処理においては、まず、各論理セルの移動先となり得る候補(移動先候補)の論理セル部分集合を求め、最も多くの論理セルが所属可能な論理セル部分集合を求める。このような論理セル部分集合へ論理セルを集結させ、該論理セル部分集合を電源ドメインの第1段とすることで断熱リサイクル動作を行う論理セルの割合を高めることが可能となる。そのため、論理セル部分集合の各々について、所属可能な論理セルの個数を求めて、所属可能な論理セル数が最多の論理セル部分集合に所属可能な論理セルが移動される。組合せ論理回路電源数と同数の論理セル部分集合に論理セルを最大限に集めることで、断熱リサイクル動作を行う論理セルの割合を最大化できるため、所属可能セル数の計算と論理セルの論理セル部分集合間の移動を(N−1)回繰り返す。
具体的な手順としては、まず、上述の繰り返しのカウンタとして使用する変数iの初期値をi=2と定め(ステップS31)、カウンタiが電源クロック信号の数N以下である場合には(ステップS32で「Yes」)、ステップS41〜S47とステップS51〜S54におけるセル移動処理を繰り返して行う。セル移動処理が行われる毎にカウンタiが1増加させる(ステップS33)。
各セル移動処理では、まず各々の部分集合の所属可能セル数を0にリセットする(ステップS41)。
続いて、各論理セルについて、それぞれが所属可能な論理セル部分集合を計算する。具体的には、所属可能な論理セル部分集合が未計算の論理セルが存在する限りは(ステップS42で「Yes」)、そのうち1つを対象セルCとして選んで(ステップS43)、対象セルCのファンインセル(対象セルCの入力に接続された出力を有する論理セル)が所属する論理セル部分集合の番号の最大値dMaxと(ステップS44)、対象セルCのファンアウトセル(対象セルCの出力に接続された入力を有する論理セル)の所属する論理セル部分集合の番号の最小値dMinを求める(ステップS45)。このとき、当該論理セルの移動先候補である論理セル部分集合dMax+1から部分集合dMin−1の全てについて所属可能セル数を1増加させる(ステップS46)。すべての論理セルについて前述の計算が行われた後(ステップS42で「No」)、過去に移動先としたことのない論理セル部分集合のうちで、所属可能論理セル数が最大である論理セル部分集合Mを移動先の論理セル部分集合として選択する(ステップS47)。初めてセル移動処理が行われる場合には、過去に移動先として選択した論理セル部分集合が無いため、単純に所属可能論理セル数が最大である論理セル部分集合が論理セル部分集合Mとして選択される。一方、既に少なくとも一回のセル移動処理が行われている場合には、ステップS47において既にセル移動処理を行った論理セル部分集合については論理セル部分集合Mとして選択しない。
次に、各論理セルが論理セル部分集合Mに移動可能かの判断を行う。具体的には、全ての論理セルのうち論理セル部分集合Mへの移動可否の判定を行っていない論理セルがあれば(ステップS51で「Yes」)、そのうち一つの論理セルCが選択される(ステップS52)。更に、ステップS44、S45で求めたdMaxとdMinから、論理セルCが論理セル部分集合Mに所属可能であれば(ステップS53で「Yes」)、論理セルCを論理セル部分集合Mに移動し(ステップS54)、所属不能であれば(ステップS53で「No」)、次の移動可否が未判定の論理セルを選択してステップS51〜S54を行う。論理セル部分集合Mに移動可能かの判断を行っていない論理セルがもし残っていなければ(ステップS51で「No」)、カウンタiを1だけ増加した上で(ステップS33)、セル移動処理を再度行う(ステップS41〜S47、ステップS51〜S54)。
以上のステップS21、S31〜S33、S41〜S47及びS51〜S54が、図6のステップS102に相当する。
組合せ論理回路に割り当てられる電源クロック信号の数と同じ回数(N−1回)だけセル移動処理を繰り返した後(即ち、ステップS33においてカウンタiが電源クロック信号の数Nを超えてステップS32で「No」と判断された場合)、論理セル部分集合を必要に応じで併合することで電源クロック信号の数Nと同一の数の論理セル集合を求める(ステップS61〜66)。更に、各々の論理セル集合に電源を割り当てる(ステップS71〜73)。
より具体的には、まず、論理セル部分集合を数えるためのカウンタdと論理セル集合を数えるためのカウンタvをともに1に初期化する(ステップS61)。このとき、論理セル集合#2〜論理セル集合#Nは初期的には空集合であるとする。なお、上述のように、論理セル集合#1は、全てのフリップフロップが属する論理セル集合であると既に決定されていることに留意されたい。
カウンタdが論理セル部分集合の数Depth以下である間は(ステップS62で「Yes」)、論理セル部分集合dの、論理セル部分集合#1〜#Depthにおける所属する論理セルの数の多さの順位(即ち、論理セル部分集合#1〜#Depthのうち、論理セル部分集合dは何番目に論理セルの数が多いか)が求められる。その順位が(N−1)以下である場合には(ステップS63で「Yes」)、論理セル集合を数えるカウンタvを1増加させる(ステップS64)。一方、前記の順位がN以上であれば、カウンタvをそのままに維持する。続いて、論理セル部分集合dと論理セル集合vの和集合を求めて、和集合を新たに論理セル集合vと決定する(ステップS65)。更に、次の論理セル部分集合の併合処理を行うためにカウンタdを1増加させる(ステップS66)。
カウンタdが論理セル部分集合の数Depthを超えると(ステップS62で「Yes」)、全ての論理セル部分集合について併合処理が完了する。この結果、論理セル集合#2〜#Nが決定される。ここで、論理セル集合#2〜#Nのそれぞれは、一の論理セル部分集合、又は、複数の論理セル部分集合の和集合として決定される。
続いて、論理セル集合#1〜#Nのそれぞれに電源クロック信号が割り当てられる。具体的には、再度カウンタvが1に初期化される(ステップS71)。更に、カウンタvが電源クロック信号の数N以下の間は(ステップS72で「Yes」)、論理セル集合vに電源クロック信号Vdd(v)を割り当ててカウンタvが1だけ増加される(ステップS73)。カウンタvが電源クロック数Nを超えると(ステップS72で「No」)、論理セル集合#1〜#Nのそれぞれへの電源クロック信号の割り当てが完了したことになる。以上のステップS71〜S73が、図6のステップS103に相当している。
更に、各論理セルに割り当てられた電源クロック信号を記述する割り当て電源情報を含む出力ネットリストが生成されて出力される(ステップS99)。上述のステップS71〜S73において論理セル集合#iに属する論理セルに電源クロック信号Vdd(i)が割り当てられるが、ステップS99では、このことが割当電源情報に記述される。このステップS99が、図6のステップS104に相当している。
図9A〜図9Cのフローチャートに示された設計方法によって生成される出力ネットリストが、最終的には半導体装置として実装される。実装形態の一例を図11A、図11Bに示す。図11Aの例では、半導体基板に電源の数(電源クロック信号の数)と同数の矩形の電源ドメイン20−1〜20−Nが定義され、電源ドメイン20のそれぞれに電源クロック信号を供給する電源配線が配置される。電源制御回路10は、該電源配線を介して各電源ドメイン20に電源クロック信号を供給する。電源ドメイン20−1〜20−Nに、それぞれ、上述の設計方法によって論理セル集合#1〜#Nに属すると決定された論理セルが配置される。論理セル間の配線もまた実装される。その結果、電源ドメイン間を接続する配線が多数存在して、電源ドメイン内での論理セル間配線が少数存在する半導体装置が製造される。
例えば、電源ドメイン20−kの構成の一例を図示する図11Bにおいて、符号11は、電源ドメイン20−kに属する論理セルのうち第1段である論理セルを示しており、符号12は、第2段以降の論理セルを示している。符号13は、電源ドメイン20−kとは異なる電源ドメインに属する論理セルと、電源ドメイン20−kに属する論理セル11とを接続する外部配線を示しており、符号14は、電源ドメイン20−kに属する論理セル動詞を接続する内部配線を示している。図9A〜図9Cのフローチャートに示された設計方法は、各電源ドメイン20−kの第1段の論理セル11を増加する一方で、各電源ドメイン20−kの第2段以降の論理セル12を減少させる。即ち、外部配線13が多く存在する一方、内部配線14が少数存在する半導体集積回路が設計されることになる。
図12〜図15は、本実施形態の設計方法の具体例、特に、論理セル部分集合間の論理セルの移動の例を示す概念図である。本実施形態の設計方法を実現するデータ処理プログラムに、図12の上図に示すような14個の組合せ論理セルC1〜C14と8個のフリップフロップF1〜F8から成る断熱リサイクル論理回路のネットリストが入力されたとする。このとき、電源の数(即ち、断熱リサイクル論理回路に供給される電源クロック信号の数)は、3(=N)とする(図9AのステップS0)。1つの電源クロック信号はフリップフロップF1〜F8で構成される論理セル集合(電源ドメイン)に割り当てられるから、論理セルC1〜C14で構成される組合せ論理回路に割り当てられる電源クロック信号の数は2である。
まず、フリップフロップF1〜F8から成る論理セル集合#1が生成され(ステップS1)、残る組合せ論理セルC1〜C14を入力からの論理深さに従って論理セル部分集合にグルーピングする。フリップフロップF1〜F4とフリップフロップF5〜F8の間に設けられた組合せ論理回路の論理深さの最大値Depthは5であるから、5つの論理セル部分集合#1〜#5が生成される(ステップS2)。便宜的に、組合せ論理回路の入力側のフリップフロップF1〜F4は仮想的な論理セル部分集合#0に属すると見なし、出力側のフリップフロップF5〜F8は論理セル部分集合#6(=Depth+1)に所属すると見なす。ここで、図12の上図では、簡単のため組合せ論理回路の入力側と出力側で共通のフリップフロップが存在しないが、仮に存在する場合は双方に所属していると見なす。
初期状態では、論理セルC1〜C14は、いずれも、論理セル部分集合にグルーピングされていない状態である(ステップS11で「Yes」)。まず、未グルーピングの論理セルの1つである論理セルC1を選択すると(ステップS12)、論理セルC1の入力に接続される配線はフリップフロップF1、F2の出力からの配線(組合せ論理回路の入力に直接接続される配線)のみであるため論理深さは1となり、論理セルC1は論理セル部分集合#1へグルーピングされる(ステップS12)。論理セルC2〜C4についても同様にステップS12〜S13が適用され、論理セルC2〜C4が論理セル部分集合#1へグルーピングされる。論理セルC5の入力は、フリップフロップF1からの配線だけでなく、論理深さが1である論理セルC1、C2からの配線に接続されているため、論理セルC5の論理深さは2となり、論理セルC5は論理セル部分集合#2へ分配される。同様の動作を論理セルC6〜C14に対して適用すると(ステップS11〜S13)、図12の上図のような論理セル部分集合#1〜#5を得る。その結果、全ての論理セルが論理セル部分集合#1〜#5のいずれかにグルーピングされる(ステップS11で「No」)。
次に、図13に図示されているように、出力がフリップフロップF5〜F8の入力(組合せ論理回路の出力)に直接接続されている(即ち、他の論理セルの入力に直接接続されていない)論理セルC12、C9が論理セル部分集合#5(=Depth)に移動される(ステップS21)。尚、論理セルC14は本ステップでの移動以前に論理セル部分集合#5に属している。
更に、ステップS32〜S54のループ回数を示すカウンタiが2に設定される(ステップS31)。i≦N(=3)であるので(ステップS32で「Yes」)、各論理セル部分集合に所属可能な論理セルの数を計算する。まず、各論理セル部分集合に所属可能な論理セルの数を示す変数を0に設定して(ステップS41)、各々の論理セルについて移動先の候補となる論理セル部分集合を列挙する。図14は、各論理セルについて移動先の候補となる論理セル部分集合を列挙する方法を示している。
最初は全てについて未計算であるので(ステップS42で「Yes」)、そのうちの1つである論理セルC1は、入力がフリップフロップF1、F2に接続され、出力は論理セル部分集合#2に属する論理セルC5に接続されている。即ち、論理セルC1のファンインセルはフリップフロップF1、F2であり、それらが即する論理セル部分集合の番号は仮想的に0としてあるのでdMax=0となる(ステップS44)。一方、論理セルC1のファンアウトセルは論理セルC5であり、論理セルC5が所属する論理セル部分集合の番号は2であるのでdMin=2となる(ステップS45)。そのため、論理セルC1が所属可能な論理セル部分集合の番号はdMax+1からdMin−1、即ち、1のみとなり、論理セル部分集合#1に所属可能な論理セルの数を表わす変数を0から1に増加させる(ステップS46)。
未計算セルが残っているため(ステップS42で「Yes」)、そのうち論理セルC2を選ぶ(ステップS43)。論理セルC2に対してもステップS44〜45が同様に適用される。論理セルC2は、それが所属可能な論理セル部分集合の番号は1のみと計算され、論理セル部分集合#1に所属可能な論理セルの数を表わす変数を1から2に増加させる(ステップS46)。論理セルC3〜C4に対しても同様の計算が行われ、論理セル部分集合#1に所属可能な論理セルの数を表わす係数は4となる(ステップS42〜46)。
論理セルC5に対しては(ステップS42〜43)、ファンインセルであるフリップフロップF1が所属する論理セル部分集合の番号は0、論理セルC1、C2の所属する論理セル部分の番号は1であるので、dMax=1となる(ステップS44)。またファンアウトセルである論理セルC9、C10の所属する論理セル部分集合の番号は3であるので、dMax=3となる(ステップS45)。そのため、論理セルC5が所属可能な論理セル部分集合の番号はdMax+1からdMin−1、即ち、2のみとなり、論理セル部分集合#2に所属可能な論理セルの数を表わす変数を0から1に増加させる(ステップS46)。論理セルC6に対しても同様の計算が行われ、論理セル部分集合#2に所属可能な論理セルの数を表わす変数は2となる(ステップS42〜46)。
論理セルC7に対しては(ステップS42〜43)、ファンインセルである論理セルC3、C4が所属する論理セル部分集合の番号は1であるので、dMax=1となる(ステップS44)。またファンアウトセルである論理セルC12、C14の所属する論理セル部分集合の番号は5であるので、dMax=5となる(ステップS45)。そのため、論理セルC7が所属可能な部分集合の番号はdMax+1からdMin−1、即ち、2から4となる。つまり、論理セルC7は論理セル部分集合#2〜#4のいずれに属してもよい。そのため、論理セル部分集合#2〜#4に所属可能な論理セルの数を表わす変数を、それぞれ1だけ増加させる。つまり、この段階では、論理セル部分集合#2の所属可能な論理セルの数を表わす変数は3となり、論理セル部分集合#3に所属可能な論理セルの数を表わす変数は1となり、論理セル部分集合#4に所属可能な論理セルの数を表わす変数は1となる。(ステップS46)。論理セルC8〜C14に対しても同様の計算が行われる(ステップS42〜46)。
全ての論理セルに対して計算が終了したとき(ステップS42で「Yes」)、論理セル部分集合#1に所属可能な論理セルの数を表わす変数は4、論理セル部分集合#2については4、論理セル部分集合#3については6、論理セル部分集合#4については5、論理セル部分集合#5については3となり、そのうち所属可能な論理セルの数を表わす変数が最大の論理セル部分集合#3(=M)が選択される(ステップS47)。
次に、論理セル部分集合#3に移動可能な論理セル全てが論理セル部分集合#3に移動される(ステップS51〜54)。具体的には、全ての論理セルC1〜C14に対して、最初は移動の可否が判定された論理セルがなく未移動セルが存在するため(ステップS51で「Yes」)、そのうちの1つである論理セルC1が選択される(ステップS52)。論理セルC1の移動先の候補は論理セル部分集合#1のみで、論理セル部分集合#3は移動先として選択できないので(ステップS53で「No」)、移動を行わない。
論理セルC2〜C6に対しても論理セルC1に対する処理と同様の処理が行われる(ステップS51〜53)。
次に残る論理セルC7〜C14のうち(ステップS51で「Yes」)、論理セルC7を選択すると(ステップS52)、移動先候補は論理セル部分集合#2〜#4で、論理セル部分集合#3が含まれている(ステップS53で「Yes」)。このため、図15の上図に示されてように、論理セルC7が論理セル部分集合#3に移動される(ステップS54)。論理セルC8〜C11に対しても、論理セルC7に対する処理と同様の処理が行われる(ステップS51〜54)。
次に、残る論理セルC12〜C14のうち(ステップS51で「Yes」)、論理セルC12を選択すると(ステップS52)、図14では論理セルC12の移動先候補は論理セル部分集合#3〜#5であり、論理セル部分集合#3が含まれている。しかしながら、図15の上図に図示されているように既にファンインセルである論理セルC7、C8が論理セル部分集合#3に移動されているため、移動先候補が論理セル部分集合#4、#5になっている(ステップS53で「No」)。そのため、論理セルC12は論理セル部分集合#3に移動されない。論理セルC13〜C14に対しても、論理セルC1に対する処理と同様の処理を行う(ステップS51〜53)。
全ての論理セルについての移動の可否の判定が完了したため(ステップS51で「Yes」)、カウンタiを1だけ増加させてi=3とし(ステップS33)、更に、ステップS47で論理セル部分集合#3を除外するようにして、ステップS42〜54が再度に実行される。このとき、論理セル部分集合#1に所属可能な論理セルの数を表わす変数が4となるため、ステップS47で論理セル部分集合#1が選択される。論理セルの移動の結果、論理セル部分集合#1〜#5は、それぞれ、図15の上図に図示されているような構成となる。
次にカウンタiを1増加させると(ステップS33)、iは4となり、i>N(=3)となるため(ステップS32で「No」)、論理セル部分集合の併合による論理セル集合の形成に処理が移る(ステップS61〜S66)。
まず、論理セル集合をカウントする変数vと論理セル部分集合をカウントする変数dとがv=1、d=1に初期化される(ステップS61)。カウンタdの値は1であり、d≦Depth(=5)が成立するので(ステップS62で「Yes」)、論理セル部分集合#1に含まれる論理セルの数が数えられる。その結果、論理セル部分集合#1の論理セルの数の順位は2位でN−1(=2)以下であるため(ステップS63で「Yes」)、カウンタvを1増加させてv=2とする(ステップS64)。論理セル集合#2に論理セル部分集合#1に含まれる論理セルを追加して(ステップS65)、カウンタdを1増加させてd=2とする(ステップS66)。
次の段階では、カウンタdが2であり、d≦Depth(=5)が成立するので(ステップS62で「Yes」)、論理セル部分集合#2に含まれる論理セルの数が数えられる。その結果、論理セルの数の順位は3位でN−1(=2)を超えるため(ステップS63で「No」)、論理セル集合#2に論理セル部分集合#2に含まれる論理セルを追加して(ステップS65)、カウンタdを1増加させてd=3とする(ステップS66)。
次の段階では、カウンタdが3であり、d≦Depth(=5)が成立するので(ステップS62で「Yes」)、論理セル部分集合#3に含まれる論理セルの数が数えられる。その結果、論理セルの数の順位は1位でN−1(=2)以下であるため(ステップS63で「Yes」)、カウンタvを1増加させてv=3とする(ステップS64)。更に、論理セル集合#3に論理セル部分集合#3に含まれる論理セルを追加して(ステップS65)、カウンタdを1増加させてd=4とする(ステップS66)。
カウンタdの値がd=4およびd=5のときは、カウンタdの値がd=2である場合同様の処理を行う(ステップS61〜63、S65〜66)。
その結果、論理セル部分集合#1、#2に含まれる論理セルから成る論理セル集合#2と、論理セル部分集合#3〜#5に含まれる論理セルから成る論理セル集合#3が得られる。続いて、カウンタdが増加されて6になると、d>Depth(=5)が成立し(ステップ62で「No」)、手順が電源割り当て(ステップS71〜73)に移る。
電源割り当てでは、まず論理セル集合をカウントするためのカウンタvが初期化され、v=1に設定される(ステップS71)。カウンタvについてv≦N(=3)が成立する(ステップS72で「Yes」)、図15の下図に図示されているようにフリップフロップから成る論理セル集合#1に電源クロック信号Vdd1が割り当てられる。続いて、カウンタvが1だけ増加されてv=2に設定される(ステップS73)。
同様に、論理セルC1〜C6から成る論理セル集合#2に電源クロック信号Vdd2が割り当てられる。続いて、カウンタvが1だけ増加されてv=3に設定される。同様に、論理セルC7〜C14から成る論理セル集合3#に電源クロック信号Vdd3が割り当てられる。更に、カウンタvが1だけ増加されてv=4に設定される。これによりカウンタvについてv>N(=3)となったため(ステップS72で「No」)、図15の下図に図示されているような各論理セルへ供給される電源クロック信号の情報を含むネットリストを出力して処理を終了する(ステップS99)。
以上に説明されている本実施形態の設計方法は、(互いが配線で直接接続されていない論理セルで構成される)論理セル部分集合のうち電源の数と同数の論理セル部分集合の論理セルの数を最大化することで断熱リサイクル動作が可能な論理セルの個数を最大化する機能を実現している。これにより、設計された断熱リサイクル論理回路を低い電力で動作させることができる。例えば、図12の下図に示されているように、論理深さに基づくグルーピングのみを行った電源割り当てを行った場合では、断熱リサイクル動作する論理セルは14個中の8個にすぎない。一方、図15の下段に示されているように、本実施形態の設計手法を適用することで断熱リサイクル動作する論理セルが14個中の9個に増えている。これは、本実施形態の設計手法が、断熱リサイクル論理回路の消費電力を低減させる効果を有していることが示している。
なお、上述では、高位側電源クロック信号VDD1、VDD2、VDD3が変化される一方で、低位側電源クロック信号GND1、GND2、GND3が接地電圧VLに固定される場合について説明したが、低位側電源クロック信号GND1、GND2、GND3も高位側電源クロック信号VDD1、VDD2、VDD3に同期して変化されてもよい。この場合、高位側電源クロック信号VDD1と、それに同期する低位側電源クロック信号GND1が同一の電源ドメイン(論理セル集合)に割り当てられ、高位側電源クロック信号VDD2と、それに同期する低位側電源クロック信号GND2が同一の電源ドメイン(論理セル集合)に割り当てられ、高位側電源クロック信号VDD3と、それに同期する低位側電源クロック信号GND3が同一の電源ドメイン(論理セル集合)に割り当てられる。
本実施形態の設計方法は、例えば、図16に図示されているような断熱リサイクル論理回路を含む集積回路の設計手順に適用される。図16に示されている設計手順では、System C等の高級言語記述21に対して高位合成(ステップS201)が行われ、該高級言語記述21がRTL記述22に変換される。RTL記述としては、例えば、Verilog又はVHDL(VHSIC(Very High Speed Integrated Circuits)Hardware Description
Language)が使用され得る。本実施形態では、入力ネットリストに含まれる組合せ論理回路の論理深さが小さいほど論理セル部分集合が少なくなり、論理セル部分集合のなかで断熱リサイクル動作する論理セルで構成される部分集合の割合が高くなる効果が期待される。したがって、ステップS201の高位合成では、組合せ論理回路が所定の論理深さ以下になるように中間フリップフロップ(中間レジスタ)を配置する工程を含んでいることが好ましい。
Language)が使用され得る。本実施形態では、入力ネットリストに含まれる組合せ論理回路の論理深さが小さいほど論理セル部分集合が少なくなり、論理セル部分集合のなかで断熱リサイクル動作する論理セルで構成される部分集合の割合が高くなる効果が期待される。したがって、ステップS201の高位合成では、組合せ論理回路が所定の論理深さ以下になるように中間フリップフロップ(中間レジスタ)を配置する工程を含んでいることが好ましい。
RTL記述22に対して論理合成が行われ(ステップS202)、テクノロジ独立なネットリスト23が生成される。
この論理合成のステップにおいては、使用する論理セルを限定してもよい。例えば、論理実現部をスタティックCMOS論理と同様に構成する断熱リサイクル論理回路については、それに使用する論理セルを負論理関数を実現する論理セルに限定してもよい。スタティックCMOS論理は1段の論理セルで実現可能な論理関数はNOTやNORやNANDのような単純な負論理関数や、AND−OR−INVのような複合的な負論理関数に限定される。ORやANDのような正論理関数はさらに負論理セルの出力にINVを設けて実質的に2段にすることで実現される。正論理関数を1つの断熱リサイクル論理で実現すると、2段のCMOS論理部へ同一の電源が供給されることになり、第2段のINV素子部が断熱リサイクル動作をしなくなってしまう。そこで、負論理セルに限定することで、入力ネットリストの段階で断熱リサイクル動作不能な部分を含めてしまうことを回避することが可能となる。
また、ネットリスト23の生成に際して、論理合成で生成されたネットリスト23の一部を論理的に等価な部分回路と置き換える工程を含んでもよい。一例としては、論理回路中に含まれる直列接続された2段のインバータを前段インバータの入力と後段インバータの出力を直接接続するような置換が挙げられる。また、第1段と複数の多入力1出力NANDセルとして、第2段を第1段のセルからの信号を入力とする2段NAND部分回路を、第1段のNANDセルの入力元と第2段のNANDセルの出力先をそれぞれ入出力端子に接続されるAND−OR複合セルへの置換が挙げられる。この工程により、断熱リサイクル動作可能な論理セルの割合を高めることが可能になるという効果が期待される。これは、前述のように入力ネットリストに含まれる組合せ論理回路の論理深さの最大値が小さいことが本実施形態の設計方法において好ましいためである。論理深さが小さい組合せ論理回路に含まれる論理セルは少数の論理セル部分集合に分割される。このとき、断熱リサイクル動作を行う論理セルから成る論理セル部分集合の全論理セル部分集合に対する割合を高くすることができる。
テクノロジ独立なネットリスト23に対してテクノロジマッピング・論理最適化が行われ(ステップS203)、テクノロジ依存のネットリスト24が生成される。上述された本実施形態の設計手順は、テクノロジマッピング・論理最適化の工程の一部に含まれる。本工程において、本実施形態の設計方法は当該テクノロジ依存のネットリスト24、又は、所定の論理最適化を適用した結果として得られるテクノロジ依存のネットリスト24に対して適用される。
テクノロジ依存のネットリスト24に対して電源配線(ステップS204)、フロアプラン(ステップS205)、セル配置(ステップS206)、CTS(clock tree synthesis)(ステップS207)、配線(ステップS208)が行われ、設計対象の集積回路のGDSファイル(レイアウトデータ)が生成される。
図16に図示されているような設計方法は、例えば、図17に図示されている集積回路設計装置30によって提供される環境で実行される。図17の集積回路設計装置30は、CPU31、メモリ32、入力装置33、出力装置34、及び外部記憶装置35を備えている。外部記憶装置35には、高位合成ツール41、論理合成ツール42、テクノロジマッピング論理最適化ツール43、及び配置・配線ツール44がインストールされている。高位合成ツール41は、図16の高位合成(ステップS201)を行うために使用されるコンピュータプログラムであり、論理合成ツール42は、論理合成(ステップS202)を行うために使用されるコンピュータプログラムである。また、テクノロジマッピング論理最適化ツール43は、テクノロジマッピング・論理最適化(ステップS203)を行うために使用されるコンピュータプログラムであり、配置・配線ツール44は、電源配線(ステップS204)、フロアプラン(ステップS205)、セル配置(ステップS206)、CTS(clock tree synthesis)(ステップS207)、及び、配線(ステップS208)を行うために使用されるコンピュータプログラムである。CPU31及びメモリ32によって高位合成ツール41、論理合成ツール42、テクノロジマッピング論理最適化ツール43、及び配置・配線ツール44が実行されることで、本実施形態の設計手順が実行される。このとき、入力ネットリスト及び出力ネットリストを含む、本実施形態の設計手順において生成されるデータは、メモリ32又は外部記憶装置35に保存される。
上述されている本実施形態の設計方法は、様々に変更可能である。例えば、本実施形態の設計方法のフローチャート(図9A〜図9C)のステップS32では、分岐の条件をi≦Nとしているが、本条件式の右辺はNに限定する必要はない。例えば、当該条件式の右辺をN未満で2以上の任意の数とする場合は、ステップS32〜S54の繰り返し適用回数を低減できるため、本方法による設計時間の短縮が可能となる。また、当該条件式の右辺をNよりも大きい値とする場合、Nとする場合よりも結果として得られる回路の断熱リサイクル率を向上させる確率があるという効果がある。
また、本実施形態の設計方法のフローチャートのステップS46〜S47では、各論理セル部分集合の所属可能な論理セルの数の算出と所属可能な論理セルの数に基づく論理セル部分集合の選択が行われているが、所属可能な論理セルの数の代わりに所属可能な論理セルのトータルの面積や、所属可能な論理セルが非断熱リサイクル動作をしたときの推定消費電力を用いてもよい。
また、本実施形態の設計方法において、入力として部分集合番号1と論理深さの最大値Depthが与えられ、i=2のときにステップS47で部分集合1を選択して、i=3のときにステップS47で部分集合Depthを選択するように設計手順を変更してもよい。この場合、ステップS61において、論理セル集合#2に論理セル部分集合#1を組み込んで、カウンタ初期値をd=2とv=1とするように設計手順を変更する。
このような変形例は、動作機序の異なるフリップフロップと組合せ論理回路の第1段の論理セルを異なる電源で駆動させることを保証する効果を有する。また、組合せ論理回路の出力に接続されている論理セルを最終段の論理セル部分集合#Depthに移動させることによって、それ以降のセル移動の際に各々の論理セルの所属可能な論理セル部分集合の数を増やして、断熱リサイクル動作が可能な論理セルの比率を高め、論理回路全体の消費電力を低減する効果を有する。
また、上述の実施形態において、異なる位相で動作するフリップフロップやメモリを含むネットリストが入力ネットリストとするように変更してもよい。ステップS1は、フリップフロップを動作する位相で分類したときに最多のものが抽出され、そのフリップフロップを論理セル集合#1にグルーピングするように変更される。その他のフリップフロップはステップS3以降において、組合せ論理セルと同様に扱う。
このような変形例は、1サイクルの間にレジスタや同期式メモリにアクセスして演算を行いレジスタへ結果を格納するために異なる位相で動作するフリップフロップやメモリを含む断熱リサイクル論理回路の設計を可能にするという効果を有する。
また、上述の実施形態において、入力ネットリストが、それに含まれる論理セルの遅延を示す遅延情報を含んでいてもよい。この場合、ステップS3は、回路入力からの論理深さを計算する際に、遅延が所定値より大きいセルを遅延に応じてD段(Dは、2以上の整数)として扱うように変更される。例えば、組合せ論理回路入力からの段数が第3段の論理セルの遅延が平均的な論理セルの遅延の2倍であれば、その論理セルの出力を入力とするファンアウト論理セルの論理深さが第5段と決定される。さらに、ステップS44を、論理セルCのファンイン論理セルにD段相当の遅延をもつ論理セルが存在する場合は、当該ファンイン論理セルが属する論理セル部分集合の番号を当該番号からD−1だけ減じた番号として計算するように変更する。ステップS46は、論理セルC自身がD段相当の遅延をもつ場合、dMin−1をdMin−1+(D−1)と置き換えて各部分集合の所属可能セル数に1を加算するように変更される。
このような変形例は、高性能で低電力な断熱リサイクル論理回路を設計できるという効果を有する。各電源クロック信号は、所定の周期で、且つ、異なるタイミングで順々に変動している。遅延の大きい論理セルとその出力信号が入力される論理セルの間で、それぞれに供給される電源クロック信号の変動のタイミング差が遅延よりも小さい場合、後者の論理セルが電源ドメインの第1段であったとしても、データ入力信号と電源入力信号の変動タイミングが逆転してしまう。電源クロック信号の電圧レベルの変動を高速に行う場合は、電荷のリサイクルが不可能となり、電力を浪費してしまう。電力の浪費を避けるために電源クロック信号の変動を低速に行えばよいが、性能が低下してしまう。本変形例の改良によって、遅延の大きい論理セルの電源クロック信号を隣接しないようにすることが可能となるため、その論理セルの前後で電源クロック信号が変動する時間間隔を大きく保つことが可能になる。そのため、電力浪費および性能低下を抑制することが可能となる。
以上に説明された実施形態及びその変形例は、適宜に組み合わせて実施可能である。
以上、本発明者の実施形態を具体的に説明したが、本発明は、上記の実施形態に限定されるものではなく、その要旨を逸脱しない範囲で様々に変更可能であることはいうまでもない。
101、201、202、203:コア
102、103、104、204、205、206:論理セル
105、106、207、208:フリップフロップ
C、C1、C2、C3、C4、C5、C6、C7、C8、C9、C10、C11、C12、C13、C14:論理セル
F1、F2、F3、F4、F5、F6、F7、F8:フリップフロップ
10:電源制御回路
11、12:論理セル
13:外部配線
14:内部配線
20:電源ドメイン
21:高級言語記述
22:RTL記述
23:テクノロジ独立なネットリスト
24:テクノロジ依存のネットリスト
25:GDSデータ
30:集積回路設計装置
31:CPU
32:メモリ
33:入力装置
34:出力装置
35:外部記憶装置
41:高位合成ツール
42:論理合成ツール
43:テクノロジマッピング論理最適化ツール
44:配置・配線ツール
102、103、104、204、205、206:論理セル
105、106、207、208:フリップフロップ
C、C1、C2、C3、C4、C5、C6、C7、C8、C9、C10、C11、C12、C13、C14:論理セル
F1、F2、F3、F4、F5、F6、F7、F8:フリップフロップ
10:電源制御回路
11、12:論理セル
13:外部配線
14:内部配線
20:電源ドメイン
21:高級言語記述
22:RTL記述
23:テクノロジ独立なネットリスト
24:テクノロジ依存のネットリスト
25:GDSデータ
30:集積回路設計装置
31:CPU
32:メモリ
33:入力装置
34:出力装置
35:外部記憶装置
41:高位合成ツール
42:論理合成ツール
43:テクノロジマッピング論理最適化ツール
44:配置・配線ツール
Claims (13)
- 断熱リサイクル論理回路に含まれる複数の論理セルをN個(N≧3)の論理セル集合にグルーピングする工程と、
前記N個の論理セル集合にN個の電源クロック信号を割り当てる工程と、
前記複数の論理セル集合のそれぞれに割り当てられた前記電源クロック信号が、それぞれに属する論理セルで構成される論理セル集合回路に供給されるように、前記断熱リサイクル論理回路のネットリストである出力ネットリストを生成する工程
とを具備し、
前記グルーピングする工程では、前記N個の論理セル集合のうちの一であるフリップフロップ論理セル集合がフリップフロップで構成されるように前記複数の論理セルが前記論理セル集合に割り当てられ、
前記グルーピングする工程では、前記複数の論理セルのうち前記フリップフロップ論理セル集合に割り当てられていない論理セルをそれぞれの論理深さに応じてM個(M≧N)の論理セル部分集合にグルーピングし、前記M個の論理セル部分集合のうちの少なくとも一の論理セル部分集合に属する論理セルの数が増加するようにグルーピングされた前記複数の論理セルのうちの少なくとも一の論理セルを移動して前記少なくとも一の論理セルが属する論理セル部分集合を変更し、更に、前記N個の論理セル集合のうちのフリップフロップ論理セル集合以外の論理セル集合のそれぞれを、前記M個の論理セル部分集合のうちの一の論理セル部分集合又は2以上の論理セル部分集合の和集合として決定し、
前記N個の論理セル集合のうちのフリップフロップ論理セル集合以外の論理セル集合のそれぞれは、論理セルの数が増加された前記少なくとも一の論理セル部分集合に属する論理セルが、前記論理セル集合回路の第1段の論理セルになるように決定される
集積回路設計方法。 - 請求項1に記載の集積回路設計方法であって、
前記グルーピングする工程では、前記N個の論理セル集合のうちの前記フリップフロップ論理セル集合でない論理セル集合に対応する前記論理セル集合回路において第1段となる論理セルの数の総和が最大になるように、前記少なくとも一の論理セルが属する論理セル部分集合を変更する
集積回路設計方法。 - 請求項1又は2に記載の集積回路設計方法であって、
前記少なくとも一の論理セルが属する論理セル部分集合の変更は、前記M個の論理セル部分集合のそれぞれは、配線で直接に接続される2つの論理セルを含んではならず、前記M個の論理セル部分集合の接続関係を有向グラフにしたときに帰還ループが存在しないという条件で行われる
集積回路設計方法。 - 請求項3に記載の集積回路設計方法であって、
前記グルーピングする工程では、前記少なくとも一の論理セルが属する論理セル部分集合の変更において、前記複数の論理セルのうち前記フリップフロップ論理セル集合に割り当てられていない論理セルのそれぞれについて、前記M個の論理セル部分集合のうちから移動先となり得る論理セル部分集合を算出し、更に、前記M個の論理セル部分集合のそれぞれについて、所属可能な論理セルの数を算出し、前記少なくとも一の論理セルの移動先を前記M個の論理セル部分集合のうち所属可能な論理セルの数が1番目からN−1番目に多い論理セル部分集合に選択する
集積回路設計方法。 - 請求項1乃至4のいずれかに記載の集積回路設計方法であって、
更に、前記断熱リサイクル論理回路のネットリストである入力ネットリストを生成する工程を具備し、
前記入力ネットリストを生成する工程は、前記断熱リサイクル論理回路の組合せ論理回路が所定の論理深さ以下になるように中間フリップフロップを配置する工程を含む
集積回路設計方法。 - 請求項1乃至4のいずれかに記載の集積回路設計方法であって、
更に、前記断熱リサイクル論理回路のネットリストである入力ネットリストを生成する工程を具備し、
前記入力ネットリストの生成においては、前記断熱リサイクル論理回路に使用する論理セルが負論理関数を実現する論理セルに限定される
集積回路設計方法。 - 請求項1乃至4のいずれかに記載の集積回路設計方法であって、
更に、前記断熱リサイクル論理回路のネットリストである入力ネットリストを生成する工程を具備し、
前記入力ネットリストを生成する工程は、論理合成で生成されたネットリストの一部を論理的に等価な部分回路と置き換えることで前記断熱リサイクル論理回路の組合せ論理回路の論理深さを低減する工程を含む
集積回路設計方法。 - 請求項1乃至4のいずれかに記載の集積回路設計方法であって、
更に、前記断熱リサイクル論理回路のネットリストである入力ネットリストを生成する工程を具備し、
前記入力ネットリストは、前記複数の論理セルそれぞれの遅延を示す遅延情報を含み、
前記複数の論理セルのうち前記フリップフロップ論理セル集合に割り当てられていない論理セルのうち遅延が所定値より大きいセルを、遅延に応じて複数段として扱いながら論理深さを算出する
集積回路設計方法。 - 断熱リサイクル論理回路に含まれる複数の論理セルをN個(N≧3)の論理セル集合にグルーピングするグルーピング手段と、
前記N個の論理セル集合にN個の電源クロック信号を割り当てる割当手段と、
前記複数の論理セル集合のそれぞれに割り当てられた前記電源クロック信号が、それぞれに属する論理セルで構成される論理セル集合回路に供給されるように、前記断熱リサイクル論理回路のネットリストを生成するネットリスト生成手段
とを具備し、
前記グルーピング手段は、前記N個の論理セル集合のうちの一であるフリップフロップ論理セル集合がフリップフロップで構成されるように前記複数の論理セルを前記論理セル集合に割り当て、
前記グルーピング手段は、前記複数の論理セルのうち前記フリップフロップ論理セル集合に割り当てられていない論理セルをそれぞれの論理深さに応じてM個(M≧N)の論理セル部分集合にグルーピングし、前記M個の論理セル部分集合のうちの少なくとも一の論理セル部分集合に属する論理セルの数が増加するように、グルーピングされた前記複数の論理セルのうちの少なくとも一の論理セルを移動して前記少なくとも一の論理セルが属する論理セル部分集合を変更し、更に、前記N個の論理セル集合のうちのフリップフロップ論理セル集合以外の論理セル集合のそれぞれを、前記M個の論理セル部分集合のうちの一の論理セル部分集合又は2以上の論理セル部分集合の和集合として決定し、
前記N個の論理セル集合のうちのフリップフロップ論理セル集合以外の論理セル集合のそれぞれは、論理セルの数が増加された前記少なくとも一の論理セル部分集合に属する論理セルが、前記論理セル集合回路の第1段の論理セルになるように決定される
集積回路設計装置。 - 請求項9に記載の集積回路設計装置であって、
前記グルーピング手段は、前記N個の論理セル集合のうちの前記フリップフロップ論理セル集合でない論理セル集合に対応する前記論理セル集合回路において第1段となる論理セルの数の総和が最大になるように、前記少なくとも一の論理セルが属する論理セル部分集合を変更する
集積回路設計装置。 - 請求項9又は10に記載の集積回路設計装置であって、
前記少なくとも一の論理セルが属する論理セル部分集合の変更は、前記M個の論理セル部分集合のそれぞれは、配線で直接に接続される2つの論理セルを含んではならず、前記M個の論理セル部分集合の接続関係を有向グラフにしたときに帰還ループが存在しないという条件で行われる
集積回路設計装置。 - 請求項11に記載の集積回路設計装置であって、
前記グルーピング手段は、前記少なくとも一の論理セルが属する論理セル部分集合の変更において、前記複数の論理セルのうち前記フリップフロップ論理セル集合に割り当てられていない論理セルのそれぞれについて、前記M個の論理セル部分集合のうちから移動先となり得る論理セル部分集合を算出し、更に、前記M個の論理セル部分集合のそれぞれについて、所属可能な論理セルの数を算出し、前記少なくとも一の論理セルの移動先を前記M個の論理セル部分集合のうち所属可能な論理セルの数が1番目からN−1番目に多い論理セル部分集合に選択する
集積回路設計装置。 - コンピュータに
断熱リサイクル論理回路に含まれる複数の論理セルをN個(N≧3)の論理セル集合にグルーピングする工程と、
前記N個の論理セル集合にN個の電源クロック信号を割り当てる工程と、
前記複数の論理セル集合のそれぞれに割り当てられた前記電源クロック信号が、それぞれに属する論理セルで構成される論理セル集合回路に供給されるように、前記断熱リサイクル論理回路のネットリストである出力ネットリストを生成する工程
とを実行させる集積回路設計用プログラムであって、
前記グルーピングする工程では、前記N個の論理セル集合のうちの一であるフリップフロップ論理セル集合がフリップフロップで構成されるように前記複数の論理セルが前記論理セル集合に割り当てられ、
前記グルーピングする工程では、前記複数の論理セルのうち前記フリップフロップ論理セル集合に割り当てられていない論理セルをそれぞれの論理深さに応じてM個(M≧N)の論理セル部分集合にグルーピングし、前記M個の論理セル部分集合のうちの少なくとも一の論理セル部分集合に属する論理セルの数が増加するように、グルーピングされた前記複数の論理セルのうちの少なくとも一の論理セルを移動して前記少なくとも一の論理セルが属する論理セル部分集合を変更し、更に、前記N個の論理セル集合のうちのフリップフロップ論理セル集合以外の論理セル集合のそれぞれを、前記M個の論理セル部分集合のうちの一の論理セル部分集合又は2以上の論理セル部分集合の和集合として決定し、
前記N個の論理セル集合のうちのフリップフロップ論理セル集合以外の論理セル集合のそれぞれは、論理セルの数が増加された前記少なくとも一の論理セル部分集合に属する論理セルが、前記論理セル集合回路の第1段の論理セルになるように決定される
集積回路設計用プログラム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2012009857A JP2013149122A (ja) | 2012-01-20 | 2012-01-20 | 集積回路の設計方法、設計装置、及びプログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2012009857A JP2013149122A (ja) | 2012-01-20 | 2012-01-20 | 集積回路の設計方法、設計装置、及びプログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2013149122A true JP2013149122A (ja) | 2013-08-01 |
Family
ID=49046553
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2012009857A Pending JP2013149122A (ja) | 2012-01-20 | 2012-01-20 | 集積回路の設計方法、設計装置、及びプログラム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2013149122A (ja) |
-
2012
- 2012-01-20 JP JP2012009857A patent/JP2013149122A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Blotti et al. | Ultralow-power adiabatic circuit semi-custom design | |
| Abdollahi et al. | A robust power gating structure and power mode transition strategy for MTCMOS design | |
| US6396307B1 (en) | Semiconductor integrated circuit and method for designing the same | |
| Sharma et al. | Area and power efficient 4-bit comparator design by using 1-bit full adder module | |
| Murugan et al. | Analysis of full adder cells in numerous logic styles | |
| Mo et al. | PLA-based regular structures and their synthesis | |
| Pakbaznia et al. | Coarse-grain MTCMOS sleep transistor sizing using delay budgeting | |
| Mirzaee et al. | Optimized adder cells for ternary ripple-carry addition | |
| Chaudhuri | Beyond bits: A quaternary FPGA architecture using multi-VT multi-Vdd FDSOI devices | |
| Upadhyay et al. | Low‐Power Adiabatic Computing with Improved Quasistatic Energy Recovery Logic | |
| US7613942B2 (en) | Power mode transition in multi-threshold complementary metal oxide semiconductor (MTCMOS) circuits | |
| Takahashi et al. | Two-phase clocked CMOS adiabatic logic | |
| JP2013149122A (ja) | 集積回路の設計方法、設計装置、及びプログラム | |
| Patil | Flow based logic design partitioning | |
| Sinha et al. | BDD based logic synthesis and optimization for low power comparator circuit | |
| Uma et al. | Performance of adders with logical optimization in FPGA | |
| Limniotis et al. | A design technique for energy reduction in NORA CMOS logic | |
| Sasamal et al. | Design of registers and memory in qca | |
| Mahmoodi-Meimand et al. | Low-power, low-noise adder design with pass-transistor adiabatic logic | |
| Lu et al. | A reconfigurable clock polarity assignment flow for clock gated designs | |
| Xue | Timing and power optimization using mixed-dynamic-static CMOS | |
| KR102568174B1 (ko) | 삼진-이진 변환기 및 이의 삼진-이진 변환 방법, 및 이진-삼진 변환기 및 이의 이진-삼진 변환 방법 | |
| JP2001036020A (ja) | 半導体集積回路及び半導体集積回路設計方法 | |
| Senthilpari et al. | Power Efficiency Top-Down ALU for Error Correction and Detection Circuit | |
| Bhuvaneswari et al. | Performance Analysis of Reversed Binary Decision Diagram Pass Transistor Logic Synthesis |