JP2010262572A - 設計支援装置、設計支援方法、および設計支援プログラム - Google Patents

設計支援装置、設計支援方法、および設計支援プログラム Download PDF

Info

Publication number
JP2010262572A
JP2010262572A JP2009114487A JP2009114487A JP2010262572A JP 2010262572 A JP2010262572 A JP 2010262572A JP 2009114487 A JP2009114487 A JP 2009114487A JP 2009114487 A JP2009114487 A JP 2009114487A JP 2010262572 A JP2010262572 A JP 2010262572A
Authority
JP
Japan
Prior art keywords
ordered
cell
order
area
cell arrangement
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
Application number
JP2009114487A
Other languages
English (en)
Inventor
Kenichi Horiguchi
憲一 堀口
Shuichi Nagatani
修一 永谷
Daiji Abe
大司 阿部
Shinichiro Hori
伸一郎 堀
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.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
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 Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2009114487A priority Critical patent/JP2010262572A/ja
Publication of JP2010262572A publication Critical patent/JP2010262572A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

【課題】タイミングドリブン配置された順序セルのタイミングを維持しながら消費電力の低減化を図ること。
【解決手段】まず、初期情報を取得する(S1801)。つぎに、順序セルがタイミングドリブン配置されたセル配置可能領域に、所定数のROW領域候補を設定する(S1802)。そして、ランキング処理を実行して(S1803)、ROW領域候補riの優先順位を付ける。このあと、実際にチップに使用するROW領域の必要個数Nを算出する(S1803)。ROW領域候補の中からROW領域を決定する(S1805)。そして、順序セルの整列化処理を実行する(S1806)。
【選択図】図18

Description

本開示技術は、LSI(Large Scale integration)の設計を支援する設計支援装置、設計支援方法、および設計支援プログラムに関する。
従来から、フリップフロップ(以下、「FF」)などの順序セルの配置については、タイミングを考慮して配置するタイミングドリブン配置が行われている。タイミングドリブン配置では、クロック系統は理想的に遅延を0として扱うため、FF−FF間のデータ系統のみを考慮した配置となっている。
従来の配置配線ツールでは、クロック系統を考慮せずFF−FF間のデータ系統を優先したタイミングドリブン配置を行うため、FFが散らばって配置されてしまい、FFへのクロック信号線が長くなってしまっている。また、タイミングドリブン配置されたFFをROW領域に縦列配置する技術が開示されている(たとえば、下記特許文献1,2を参照。)。
特開平1−196137号公報 特開2000−243846号公報
しかしながら、上述した従来技術では、クロック信号線の配線長が長くなると配線による容量が増加するため、配線スイッチング電力が増加するという問題がある。また、配線容量の増加による信号なまりや遅延を抑えるためにクロックバッファのサイズを大きくしたり、配線分割用のクロックバッファ数を増やしたりする必要がある。したがって、さらに消費電力が増加してしまうという問題がある。
特定のROW領域にFFを集中して配置しすぎると、データ系統のタイミングドリブン配置が崩れてしまうため、タイミングが悪化するという問題がある。また、その修正のために、通常のタイミングドリブン配置より多くのセルが追加されてしまう。したがって、消費電力の増加を招いてしまうという問題がある。
本開示技術は、上述した従来技術による問題点を解消するため、タイミングを維持しながらクロック信号線の短縮化を図るとともにクロックバッファ削減による消費電力の低減化を図ることができる設計支援装置、設計支援方法、および設計支援プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するため、本開示技術は、クロックバッファごとにクロックが分配される順序セルが所定方向に配置可能な複数個の順序セル配置領域候補を、前記順序セルが配置されたセル配置可能領域に設定し、設定された順序セル配置領域候補ごとに前記順序セルの重なりを示す重複度を算出し、前記セル配置可能領域内での前記全順序セルのサイズと前記順序セル配置領域のサイズとに基づいて、前記セル配置可能領域内での前記順序セル配置領域候補の必要個数を算出し、前記順序セル配置領域候補の中から、算出された重複度の高い順に、算出された必要個数分の順序セル配置領域を決定し、前記順序セルが属する順序セル配置領域を、決定された必要個数分の各順序セル配置領域の中から特定し、特定された順序セル配置領域に当該順序セル配置領域に属する順序セルが包含されるように再配置することを要件とする。
本設計支援装置、設計支援方法、および設計支援プログラムによれば、タイミングを維持しながら消費電力の低減化を図ることができるという効果を奏する。
順序セルのタイミングドリブン配置後におけるクロックツリーと順序セルの配置改善後におけるクロックツリーを示す説明図である。 実施の形態にかかる設計支援装置のハードウェア構成を示すブロック図である。 設計支援装置の機能的構成を示すブロック図である。 タイミングドリブン配置後のセル配置可能領域を示す説明図である。 ROW領域候補を示す説明図である。 順序セルの重複状態を示す説明図である。 ROW領域候補削除後のセル配置可能領域を示す説明図である。 タイミングマージンテーブルを示す説明図である。 再配置部による順序セルの再配置を示す説明図である。 クロック系統別のクロック信号線の配線接続を示す説明図である。 順序セルごとのクロック系統を示す説明図である。 異なるクロック系統間で順序セルを左右反転させた再配置状態を示す説明図である。 異なるクロック系統間で順序セルをX軸方向に平行移動させた再配置状態を示す説明図である。 クロックツリーの生成例を示す説明図である。 隣接しあう順序セル配置領域の順序セルを接続するクロック信号線の配線状態を示す説明図である。 順序セルの個数比較例を示す説明図である。 再配線部による再配線後のクロックツリーを示す説明図である。 本実施の形態にかかる設計支援装置による設計支援処理手順を示すフローチャートである。 図18に示したランキング処理(ステップS1803)の詳細な処理手順を示すフローチャートである。 図18に示した整列化処理(ステップS1806)の詳細な処理手順を示すフローチャートである。 クロックツリー生成後における再配置処理手順を示すフローチャートである。
以下に添付図面を参照して、本開示技術にかかる設計支援装置、設計支援方法、および設計支援プログラムの好適な実施の形態を詳細に説明する。
本開示技術では、ROW領域の個数の最適化とクロック信号線の短縮化とをおこなうことで、タイミングドリブン配置されたFFやラッチなどの順序セルのタイミングを維持しながら消費電力の低減化を実現する。
図1は、順序セルのタイミングドリブン配置後におけるクロックツリーと順序セルの配置改善後におけるクロックツリーを示す説明図である。(A)は、セル配置可能領域100において、順序セル(図1中、FF1〜FF18)のタイミングドリブン配置後におけるクロックツリーCT1を示している。また、(B)は、セル配置可能領域100において、順序セルの配置改善後におけるクロックツリーCT2を示している。
(B)では、FF1〜FF18は、複数(5個)のROW領域R1〜R3,R5,R6上に配置されている。ROW領域R1〜R3,R5,R6は、一般にはスタンダードセルの配置領域をいうが、本実施の形態では、順序セル専用のROW領域とし、他のセルは配置できないものとする。ただし、整列化処理後は他のセルも配置できる。
(設計支援装置のハードウェア構成)
図2は、実施の形態にかかる設計支援装置のハードウェア構成を示すブロック図である。図2において、設計支援装置は、CPU(Central Processing Unit)201と、ROM(Read‐Only Memory)202と、RAM(Random Access Memory)203と、磁気ディスクドライブ204と、磁気ディスク205と、光ディスクドライブ206と、光ディスク207と、ディスプレイ208と、I/F(Interface)209と、キーボード210と、マウス211と、スキャナ212と、プリンタ213と、を備えている。また、各構成部はバス200によってそれぞれ接続されている。
ここで、CPU201は、設計支援装置の全体の制御を司る。ROM202は、ブートプログラムなどのプログラムを記憶している。RAM203は、CPU201のワークエリアとして使用される。磁気ディスクドライブ204は、CPU201の制御にしたがって磁気ディスク205に対するデータのリード/ライトを制御する。磁気ディスク205は、磁気ディスクドライブ204の制御で書き込まれたデータを記憶する。
光ディスクドライブ206は、CPU201の制御にしたがって光ディスク207に対するデータのリード/ライトを制御する。光ディスク207は、光ディスクドライブ206の制御で書き込まれたデータを記憶したり、光ディスク207に記憶されたデータをコンピュータに読み取らせたりする。
ディスプレイ208は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ208は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
I/F209は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク214に接続され、このネットワーク214を介して他の装置に接続される。そして、I/F209は、ネットワーク214と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F209には、たとえばモデムやLANアダプタなどを採用することができる。
キーボード210は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス211は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
スキャナ212は、画像を光学的に読み取り、設計支援装置内に画像データを取り込む。なお、スキャナ212は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ213は、画像データや文書データを印刷する。プリンタ213には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
(設計支援装置の機能的構成)
つぎに、設計支援装置の機能的構成について説明する。図3は、設計支援装置の機能的構成を示すブロック図である。設計支援装置300は、設定部301と、重複度算出部302と、必要個数算出部303と、決定部304と、特定部305と、再配置部306と、検出部307と、配線長算出部308と、判断部309と、再配線部310と、を含む構成である。各機能(設定部301〜再配線部310)は、具体的には、たとえば、図2に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶されたプログラムをCPU201に実行させることにより、または、I/F209により、その機能を実現する。
設定部301は、クロックバッファごとにクロックが分配される順序セルが所定方向に配置可能な複数個の順序セル配置領域候補を、順序セルが配置されたセル配置可能領域100に設定する機能を有する。ここで、セル配置可能領域100とは、順序セルや他のセル(クロックバッファなど)を配置できる領域(コアエリア)である。
図4は、タイミングドリブン配置後のセル配置可能領域100を示す説明図である。図4では、タイミングドリブン配置されたFF1〜FF18はセル配置可能領域100に分散配置されている。この状態でクロックツリーを生成すると、図1(A)に示した状態となる。また、順序セル配置領域候補とは、セル配置可能領域100に設定されるROW領域候補である。
図5は、ROW領域候補を示す説明図である。図5では、説明上、図4に示したタイミングドリブン配置されたFF1〜FF18を省略している。ROW領域候補ri(iは番号)は、セル配置可能領域100に6本形成されている。セル配置可能領域100の隣接する2辺をそれぞれX軸、Y軸とする。
ROW領域候補riの幅をd、高さをhとした場合、ROW領域候補riの幅方向はX軸方向、高さ方向はY軸方向とする。幅dは、デザインで使用しているFFサイズの最大幅とし、高さhは、1つのクロックバッファでクロックを供給できるFFの最大数を縦に積んだ高さとする。また、X軸方向に隣接するROW領域候補riの間隔は、幅dとする。本実施の形態では、初期状態として、セル配置可能領域100に配置可能な最大数(図5では6個)のROW領域候補r1〜r6を設定している。
図3において、重複度算出部302は、順序セル配置領域候補ごとに順序セルの重なりを示す重複度を算出する機能を有する。具体的には、たとえば、ROW領域候補riごとに順序セルの重なりを示す重複度として、順序セルの重複個数や重複面積を算出する。ここで、重複とは、ROW領域候補riに順序セルが包含されている状態や順序セルがROW領域候補riの境界にまたがって順序セルの一部がROW領域候補ri内にある状態をいう。
図6は、順序セルの重複状態を示す説明図である。図6において、ROW領域候補r1はFF6と重複している。ROW領域候補r2は、FF2,FF5,FF8〜FF10と重複している。ROW領域候補r3は、FF3,FF4と重複している。ROW領域候補r4は、FF18と重複している。ROW領域候補r5は、FF7,FF14,FF15,FF17と重複している。ROW領域候補r6は、FF11〜FF13と重複している。なお、FF1,FF16はどのROW領域候補r1〜r6とも重複していない。
したがって、ROW領域候補riの重複度Giを重複個数で定義した場合、ROW領域候補r1の重複度G1はG1=1である。ROW領域候補r2の重複度G2はG2=5である。ROW領域候補r3の重複度G3はG3=2である。ROW領域候補r4の重複度G4はG4=1である。ROW領域候補r5の重複度G5はG5=4である。ROW領域候補r6の重複度G6はG6=3である。
図3において、必要個数算出部303は、セル配置可能領域100内での全順序セルのサイズと順序セル配置領域候補のサイズとに基づいて、セル配置可能領域100内での順序セル配置領域候補の必要個数を算出する機能を有する。具体的には、たとえば、セルFF1〜FF18の総面積と、ROW領域候補riの1個当たりの面積(d×h)を用いて必要個数を算出する。たとえば、ROW領域候補riの必要個数Nは下記式(1)により算出する。
N=(Sf/R/Sr)+1・・・(1)
ここで、Sfはセル配置可能領域100に配置された全順序セル(FF1〜FF18)の総面積、Rは設計対象回路での目標ROW領域使用率、Srは1個あたりのROW領域候補の面積である。目標ROW領域使用率Rは、0≦R≦1の値であり、初期設定されているものとする。
図3において、決定部304は、順序セル配置領域候補の中から、重複度算出部302によって算出された重複度の高い順に必要個数算出部303によって算出された必要個数分の順序セル配置領域を決定する機能を有する。具体的には、たとえば、ROW領域候補riに重複度Giに応じた優先順位を付ける。
たとえば、図6に示した例において、重複度Gi(重複個数)の高い順に順位を付ける。図6では、順位をカッコ数字で表記している。ROW領域候補r1の重複度G1とROW領域候補r4の重複度G4はともにG1=G4=1であるが、同じ場合は、重複面積で優先順位を付ける。この場合は、ROW領域候補r1とFF6との重複面積が、ROW領域候補r4とFF18との重複面積よりも大きいため、ROW領域候補r1が5位、ROW領域候補r4が6位(最下位)となる。
そして、決定部304は、必要個数算出部303によって算出された必要個数Nにより、採用するROW領域を決定する。すなわち、上位1位から必要個数に該当する順位までのROW領域候補riをROW領域Riとして残す。そして、それ以降の順位のROW領域候補riをセル配置可能領域100から削除する。たとえば、必要個数N=5とした場合、1位から5位までのROW領域候補r1〜r3,r5,r6が選ばれることとなる。したがって、6位以降のROW領域候補r4をセル配置可能領域100から削除する。
図7は、ROW領域候補ri削除後のセル配置可能領域100を示す説明図である。図7では、ROW領域候補r4が最下位のため削除される。したがって、FF18が残余のどのROW領域R1〜R3,R5,R6にも重複しない状態となる。
図3において、特定部305は、順序セルが属する順序セル配置領域を必要個数N分の各順序セル配置領域の中から特定する機能を有する。具体的には、たとえば、各順序セル(FF1〜FF18)とROW領域R1〜R3,R5,R6との重複関係により、どの順序セルがどのROW領域Riに属しているかを特定する。たとえば、図7の例では、FF6はROW領域R1と重複しているので、FF6はROW領域R1に属していることとなる。
また、どのROW領域R1〜R3,R5,R6にも重複していないFF1、FF16,FF18については、最も近いROW領域Riを探索し、探索ROW領域Riに属することとする。
再配置部306は、特定部305によって特定された順序セル配置領域に当該順序セル配置領域に属する順序セルが包含されるように再配置する機能を有する。具体的には、たとえば、タイミングマージンを参照して、移動対象となる順序セルを決める。そして、移動対象の順序セルから順次、当該順序セルが属するROW領域Riに移動させる。
図8は、タイミングマージンテーブル800を示す説明図である。タイミングマージンテーブル800は、FFごとのタイミングマージンを記憶するテーブルである。タイミングマージンテーブル800は、FF名項目とタイミングマージン項目を有し、FFごとにFF名およびタイミングマージン(の値)をレコード化している。FF名とは、FFを一意に特定する識別情報(たとえば、インスタンス名)である。
図9は、再配置部306による順序セルの再配置を示す説明図である。図9中、(A)は順序セルの移動状態を示しており、(B)は移動完了後の状態を示している。図9(A)の矢印は順序セルの移動方向を示している。実際は、タイミングマージンの値が小さい順序セルから順次移動対象として選択される。
移動対象の順序セルは、まず、X軸方向に移動して、当該順序セルが属するROW領域Riに包含されるようにする。他の順序セルと重複した場合は、Y軸方向に移動して重ならないようにする。このような移動処理をおこなうことで、ROW領域R1〜R3,R5,R6において順序セルがY軸方向に縦列配置されることとなる。
したがって、再配置部306による再配置後の状態でクロックツリーを生成すると、図1(B)に示した状態になる。したがって、図1(A)と比較するとクロック信号線の配線長が短縮化されているため、配線スイッチング電力の低減化を図ることができる。また、重複度に応じてROW領域候補r1〜r6の絞込みを行ったため、タイミングドリブン配置によるタイミングを維持することができる。
また、順序セルのクロック系統が複数存在する場合がある。このような場合は、クロック系統ごとにクロックツリーが異なるため、互いに抵触しないように配線することとなる。このような場合は、クロック信号線を最短距離で配線することができず冗長となり、配線スイッチング電力が増加することとなる。
図10は、クロック系統別のクロック信号線の配線接続を示す説明図である。図10(A)は、クロック系統が1系統であるときのクロック信号線の配線接続を示している。(B)は、クロック系統が2系統であるときのクロック信号線の配線接続を示している。順序セルのクロックピンの位置は固定であるため、(A)のように隣接する順序セルは向きを換えて配置することで、クロックピンCPの位置がY軸方向に揃う。したがって、クロック信号線Lが一直線で配線することができる。
一方、(B)では、FF18,FF15が同一クロック系統であり、FF14,FF17が同一クロック系統である。このように、複数のクロック系統でクロックピンが一直線に並んでいる場合、クロック系統1のクロック信号線L1とクロック系統2のクロック信号線L2のように、異なるクロック系統で抵触しないよう迂回配線しなければならない。
このような場合、本実施の形態では、検出部307と再配置部306により最適化を図る。すなわち、クロック系統ごとに順序セルを認識し、クロック系統単位で順序セルの位置を調整することで、クロック信号線を最短距離で配線できるようにする。以下、検出部307と再配置部306について説明する。
検出部307は、順序セル群のクロック系統が複数系統であるか否かを検出する機能を有する。各順序セルのクロック系統は、設計対象回路の設計情報(ネットリスト)を参照することで検出される。そして、順序セルごとにクロック系統を特定する。図11は、順序セルごとのクロック系統を示す説明図である。
また、再配置部306は、検出部307によって複数系統であると検出された場合、同一系統の順序セルのクロック端子が所定方向に整列するように、同一系統の順序セルを再配置する。たとえば、2系統である場合、異なるクロック系統間で順序セルを左右(X方向)反転させる。
図12は、異なるクロック系統間で順序セルを左右反転させた再配置状態を示す説明図(その1)である。図12では、FF14,FF17がクロック系統1でFF18,FF15がクロック系統2である。したがって、一方のクロック系統1のFF14,FF17は固定しておき、他方のクロック系統2のFF18,FF15をフリップする。
これにより、FF14,FF17のクロックピンCPの配列と、FF18,FF15のクロックピンCPの配列が抵触しない。したがって、クロック系統1のクロック信号線L1とクロック系統2のクロック信号線L2とが互いに抵触せずかつともに直線状に配線することができる。
図13は、異なるクロック系統間で順序セルをX軸方向に平行移動させた再配置状態を示す説明図(その2)である。図13では、3系統の例を示している。ROW領域R5では、クロック系統が3系統であるため、図12に示したフリップではなく、X軸方向の平行移動により3つのクロック系統別にクロック信号線L1〜L3を直線状に配線可能にする。
したがって、複数のクロック系統が存在する場合であっても、クロック系統別にクロック信号線を最短距離で配線することができ、配線スイッチング電力の低減化を図ることができる。また、順序セルをROW領域Ri上で縦列配置しているため、フリップや平行移動といった単純な操作によりクロック信号線の短縮化を実現することができる。
また、クロックツリー生成の際、クロックバッファはROW領域ごとに挿入されるが、ROW領域に属する順序セルの数が少ない場合、クロックバッファの個数が相対的に多くなるため、消費電力が高くなる。
図14は、クロックツリーの生成例を示す説明図である。図14では、同一クロック系統の順序セルとしてFF1〜FF8がROW領域R1〜R3,R5,R6に配置されているものとする。ROW領域R1〜R3,R5,R6には、それぞれクロックバッファB1〜B3,B5,B6が挿入され、それぞれ対応するROW領域R1〜R3,R5,R6内の順序セルFF1〜FF8にクロックを供給している。
このように、ROW領域Riに配置された順序セルの数が少ない場合は、クロックバッファB1〜B3,B5,B6が過剰となり、消費電力の増大につながるため、本実施の形態では、配線長算出部308、判断部309および再配線部310により、クロック信号線の再配線を実行する。
図3において、配線長算出部308は、再配置部306によって再配置された結果、クロックツリーが生成された場合、隣接しあう順序セル配置領域に割当てられたクロックバッファどうしをクロック信号線で接続することにより、隣接しあう順序セル配置領域の順序セルどうしをつなぐクロック信号線の配線長を算出する機能を有する。
ここで、隣接しあう順序セル配置領域とは、X軸方向に隣接しあうROW領域Ri,Rjである。図14を参照すると、X軸方向に隣接するROW領域Ri,Rjとは、(R1,R2)、(R2,R3)、(R5,R6)である。
図15は、隣接しあう順序セル配置領域の順序セルを接続するクロック信号線の配線状態を示す説明図である。図15では、クロックバッファを省略している。隣接しあうROW領域(R5,R6)を例に挙げると、隣接しあうROW領域(R5,R6)を接続するクロック信号線は、L5,L56,L6となる。
したがって、隣接しあう順序セル配置領域の順序セルどうしをつなぐクロック信号線の配線長をLEabとすると、LEab=L5+L56+L6となる。
また、図3において、判断部309は、隣接しあう順序セル配置領域のうち後段側の順序セル配置領域上の順序セルに接続されているクロックバッファを削除するか否かを判断する機能を有する。具体的には、配線長算出部308によって算出された配線長と順序セル配置領域の最長クロック配線長とに基づいて判断する(以下、「配線長による判断」)。
順序セル配線領域の最長クロック配線長とは、ROW領域内で配線できるクロック信号線の最長配線長である。たとえば、図15において、ROW領域Riのサイズは幅dで高さh(h>d)であるため、ROW領域Riのクロック信号線の最長配線長LEmaxは、LEmax=hとなる。
そして、判断部309では、LEmaxとLEabとを比較する。LEmaxがLEab以上である場合、隣接しあう順序セル配置領域のうち後段側の順序セル配置領域上の順序セルに接続されているクロックバッファを削除する。具体的には、たとえば、後段側のROW領域R6のクロックバッファB6(図14を参照)を削除する。LEmaxがLEab以上でない場合、後段側のROW領域R6のクロックバッファB6(図14を参照)を削除せず残しておく。
また、判断部309は、隣接しあう順序セル配置領域内の順序セルの個数と順序セル配置領域での順序セルの最大配置可能個数とに基づいて判断する(以下、「順序セル個数による判断」)。
図16は、順序セルの個数比較例を示す説明図である。順序セル配置領域での順序セルの最大配置可能個数(Cmaxとする)とは、ROW領域RiでのY軸方向へのFFの積み上げ数である。図16の例では6個である。隣接しあうROW領域(R5,R6)の順序セルの個数(Cabとする)は、3個(FF6〜FF8)である。
そして、判断部309では、CmaxとCabとを比較する。CmaxがCab以上である場合、隣接しあう順序セル配置領域のうち後段側の順序セル配置領域上の順序セルに接続されているクロックバッファを削除する。具体的には、たとえば、後段側のROW領域R6のクロックバッファB6(図14を参照)を削除する。CmaxがCab以上でない場合、後段側のROW領域R6のクロックバッファB6(図14を参照)を削除せず残しておく。
なお、判断部309では、クロックバッファの削除について、配線長による判断のみで判断してもよく、順序セル個数による判断のみで判断してもよい。また、配線長による判断および順序セル個数による判断の両判断で削除すると判断された場合に、クロックバッファを削除することとしてもよい。
また、図3において、再配線部310は、判断部309によってクロックバッファを削除すると判断された場合、当該クロックバッファを削除して、隣接しあう順序セル配置領域内の順序セルどうしをつなぐクロック信号線を生成する機能を有する。具体的には、たとえば、図14の例において、隣接しあうROW領域(R5,R6)でクロックバッファB6を削除すると判断された場合、後段のROW領域R6のFF6およびFF7が前段のROW領域R5のクロックバッファB5からクロックの供給を受けるようにクロック信号線を配線する。
図17は、再配線部310による再配線後のクロックツリーを示す説明図である。図17のクロックツリーCT4は、再配線前のクロックツリーCT3(図14)と比較すると、クロックバッファB6が削除されている。したがって、ROW領域R6のFF6,FF7は、ROW領域R5のFF8とともに、クロックバッファB5からクロックの供給を受けることとなる。
なお、本実施の形態では、クロックツリーの生成は外部機能としたため、図3では不図示としたが、本実施の形態の設計支援装置内でクロックツリーを生成することとしてもよい。
(設計支援処理手順)
図18は、本実施の形態にかかる設計支援装置による設計支援処理手順を示すフローチャートである。まず、初期情報を取得する(ステップS1801)。具体的には、たとえば、セル配置可能領域100に設定するROW領域候補riの設定数、設定間隔、ROW領域候補riのサイズ情報(幅d、高さh)を読み込む。つぎに、順序セルがタイミングドリブン配置されたセル配置可能領域100に、所定数のROW領域候補riを設定する(ステップS1802)。
そして、ランキング処理を実行して(ステップS1803)、ROW領域候補riの優先順位を付ける。このあと、必要個数算出部303により、実際にチップに使用するROW領域Riの必要個数Nを算出する(ステップS1804)。決定部304により、ROW領域候補riの中からROW領域Riを決定する(ステップS1805)。
そして、順序セルの整列化処理を実行する(ステップS1806)。順序セルをROW領域Riに整列化させたあと、順序セル群は複数のクロック系統であるか否かを判断する(ステップS1807)。単一のクロック系統である場合(ステップS1807:No)、一連の処理を終了する。単一のクロック系統である場合は、各ROW領域Riに配置されている順序セルのクロックピンは高さ方向に整列しているため、クロック信号線が一直線に配線できる。このため、ステップS1808を実行せずに終了する。
一方、複数のクロック系統である場合(ステップS1807:Yes)、クロック系統が混在しているにもかかわらず、各ROW領域Riに配置されている順序セルのクロックピンが高さ方向に整列している。したがって、各ROW領域Riにおいてクロック系統ごとに順序セルのクロックピンを高さ方向に整列化する(ステップS1808)。これにより、クロック系統ごとに、各ROW領域Riに配置されている順序セルのクロックピンは高さ方向に整列しているため、クロック信号線が一直線に配線できる。
図19は、図18に示したランキング処理(ステップS1803)の詳細な処理手順を示すフローチャートである。ランキング処理では、重複度算出部302により重複個数を重複度としてROW領域候補riをランク付けする。
具体的には、まず、未選択のROW領域候補riがあるか否かを判断し(ステップS1901)、未選択のROW領域候補riがある場合(ステップS1901:Yes)、未選択のROW領域候補riを1つ選択する(ステップS1902)。つぎに、選択ROW領域候補riと重複する順序セルの個数(重複個数)を算出して(ステップS1903)、ステップS1901に戻る。
ステップS1901において、未選択のROW領域候補riがない場合(ステップS1901:No)、ステップS1904に移行する。ステップS1901〜S1903により全ROW領域候補riの重複度を算出することができる。
つぎに、ステップS1904において、順序セルの重複個数の多い順にソートしてROW領域候補のランク付けをする(ステップS1904)。このあと、順序セルの重複個数が同数であるROW領域候補riがあるか否かを判断する(ステップS1905)。すなわち、同順位のROW領域候補riがあるか否かを判断する。
重複個数が同数であるROW領域候補riがある場合(ステップS1905:Yes)、重複個数では優劣がつかないため、順序セルの重複面積を同順位のROW領域候補ごとに算出する(ステップS1906)。そして、同順位のROW領域候補riを重複面積の大きい順にソートしてランク付けし(ステップS1907)、ステップS1905に戻る。ステップS1905において、重複個数が同数であるROW領域候補riがない場合(ステップS1905:No)、ステップS1804に移行する。
図19では、重複個数でランク付けしてから同順位がある場合に重複面積で優劣を決めて同順位がなくなるようにランク付けしているが、重複面積でランク付けしてから同順位がある場合に重複個数で優劣を決めて同順位がなくなるようにランク付けしてもよい。
図20は、図18に示した整列化処理(ステップS1806)の詳細な処理手順を示すフローチャートである。整列化処理では、ROW領域Riに属する順序セルをROW領域Riに包含するように移動させ、また、どのROW領域Riにも属さない順序セルについては、所属するROW領域Riを見つけて包含するように移動させる。
まず、未選択の順序セルがあるか否かを判断し(ステップS2001)、未選択の順序セルがある場合(ステップS2001:Yes)、未選択の順序セルを1つ選択する(ステップS2002)。そして、選択順序セルがROW領域Riに包含されているか否かを判断する(ステップS2003)。
包含されている場合(ステップS2003:Yes)、ステップS2001に戻り、つぎの順序セルを選択する。一方、包含されていない場合(ステップS2003:No)、一部包含しているか否かを判断する(ステップS2004)。一部包含している場合(ステップS2004:Yes)、選択順序セル全体が包含されるように移動させる(ステップS2005)。そして、ステップS2001に戻り、つぎの順序セルを選択する。
一方、一部包含していない場合(ステップS2004:No)、選択順序セルはいずれのROW領域Riにも属していないため、最近傍のROW領域Riを探索する(ステップS2006)。そして、探索ROW領域Riに包含されるように選択順序セルを移動させる(ステップS2007)。そして、ステップS2001に戻り、つぎの順序セルを選択する。ステップS2001において、未選択の順序セルがない場合(ステップS2001:No)、ステップS1807に移行する。
このように、順序セルをROW領域Riに包含されるように移動することにより、タイミングドリブン配置からの配置ずれを最小限に抑えつつ、クロック信号線の短縮化を図ることができる。特に、削除されたROW領域候補riに重複していた順序セルは、ROW領域Riに属していない。したがって、最近傍のROW領域Riに移動させることで、可能な限りタイミングドリブン配置からの配置ずれを最小限に抑えつつ、クロック信号線の短縮化を図ることができる。
つぎに、クロックツリー生成後における再配置処理手順について説明する。クロックツリー生成後における再配置処理は、配線長算出部308、判断部309、および再配線部310により実行する。
図21は、クロックツリー生成後における再配置処理手順を示すフローチャートである。まず、未選択のROW領域Riがあるか否かを判断し(ステップS2101)、未選択のROW領域Riがある場合(ステップS2101:Yes)、未選択のROW領域Riを1つ選択する(ステップS2102)。
つぎに、未選択の隣接ROW領域(たとえば、後段側)Rjがあるか否かを判断する(ステップS2103)。ない場合(ステップS2103:No)、ステップS2101に戻る。一方、ある場合(ステップS2103:Yes)、未選択の隣接ROW領域Rjを1つ選択する(ステップS2104)。そして、両隣接ROW領域Ri,Rjをまたがった場合の配線長LEabを配線長算出部308により算出する(ステップS2105)。
このあと、LEmax≧LEabであるか否かを判断する(ステップS2106)。LEmax≧LEabでない場合(ステップS2106:No)、ステップS2103に戻る。一方、LEmax≧LEabである場合(ステップS2106:Yes)、Cmax≧Cabであるか否かを判断する(ステップS2107)。
Cmax≧Cabでない場合(ステップS2107:No)、ステップS2103に戻る。一方、Cmax≧Cabである場合(ステップS2107:Yes)、再配線部310により、隣接ROW領域RjのクロックバッファBjを削除する(ステップS2108)。そして、選択ROW領域Ri,Rjにまたがるようにクロック信号線を配線する(ステップS2109)。
すなわち、選択ROW領域RiのクロックバッファBiから、選択ROW領域Riの順序セルおよび隣接ROW領域Rjの順序セルを接続するクロック信号線を配線する。そのあと、ステップS2101に戻る。ステップS2101において、未選択のROW領域がない場合(ステップS2101:No)、一連の処理を終了する。これにより、過剰なクロックバッファBjを削除することができ、消費電力の低減化を図ることができる。
このように、本実施の形態によれば、1つのクロックバッファでクロックを供給できる順序セルを縦列配置するROW領域Riの必要個数を、順序セルの総面積およびROW面積から決めて調整する。これにより、個数制限された各ROW領域Riに順序セルを集約することができる。したがって、タイミングドリブン配置を考慮した順序セルの集約を実現できクロック信号線の短縮化を図ることができる。また、ROW領域Riの必要個数を最適な個数に調整できるため、クロックバッファBiの個数も削減でき、消費電力の低減化を図ることができる。
また、ROW領域Riに採用されなかったROW領域候補riに属する順序セルは、どのROW領域Riにも属さないが、近接するROW領域Riに包含するように移動させることで、可能な限りタイミングドリブン配置を考慮した再配置を実現することができる。
また、クロック系統別に順序セルのクロックピンを整列化することで、クロック系統別のクロック信号線の短縮化を図ることができる。
また、ROW領域Ri,Rj間の配線長に応じて後段側の隣接ROW領域Rjのクロックバッファを削除し、ROW領域RiのクロックバッファBiからROW領域Ri,Rjの順序セルにクロックを供給する。したがって、タイミングを維持したまま、過剰配置されたクロックバッファによる電力消費を削減し、消費電力の低減化を図ることができる。
以上のことから、本実施の形態によれば、ROW領域Riの個数を調整することにより、順序セルのタイミングを維持しながら消費電力の低減化を図ることができるという効果を奏する。また、クロックバッファ削減により低消費電力化を図ることができる。
なお、本実施の形態で説明した設計支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設計支援プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本設計支援プログラムは、インターネット等のネットワークを介して配布してもよい。
300 設計支援装置
301 設定部
302 重複度算出部
303 必要個数算出部
304 決定部
305 特定部
306 再配置部
307 検出部
308 配線長算出部
309 判断部
310 再配線部
800 タイミングマージンテーブル

Claims (7)

  1. コンピュータを、
    クロックバッファごとにクロックが分配される順序セルが所定方向に配置可能な複数個の順序セル配置領域候補を、前記順序セルが配置されたセル配置可能領域に設定する設定手段、
    前記設定手段によって設定された順序セル配置領域候補ごとに前記順序セルの重なりを示す重複度を算出する重複度算出手段、
    前記セル配置可能領域内での前記全順序セルのサイズと前記順序セル配置領域のサイズとに基づいて、前記セル配置可能領域内での前記順序セル配置領域候補の必要個数を算出する必要個数算出手段、
    前記順序セル配置領域候補の中から、前記重複度算出手段によって算出された重複度の高い順に前記必要個数算出手段によって算出された必要個数分の順序セル配置領域を決定する決定手段、
    前記順序セルが属する順序セル配置領域を前記決定手段によって決定された必要個数分の各順序セル配置領域の中から特定する特定手段、
    前記特定手段によって特定された順序セル配置領域に当該順序セル配置領域に属する順序セルが包含されるように再配置する再配置手段、
    として機能させることを特徴とする設計支援プログラム。
  2. 前記特定手段は、
    どの順序セル配置領域とも重複しない順序セルと前記必要個数分の順序セル配置領域との距離に基づいて、前記必要個数分の順序セル配置領域の中から、前記重複しない順序セルが属する順序セル配置領域を特定することを特徴とする請求項1に記載の設計支援プログラム。
  3. 前記コンピュータを、
    前記順序セル群のクロック系統が複数系統であるか否かを検出する検出手段として機能させ、
    前記再配置手段は、
    前記検出手段によって複数系統であると検出された場合、同一系統の順序セルのクロック端子が前記所定方向に整列するように、前記同一系統の順序セルを再配置することを特徴とする請求項1または2に記載の設計支援プログラム。
  4. 前記コンピュータを、
    再配置手段によって再配置された結果、クロックツリーが生成された場合、隣接しあう順序セル配置領域に割当てられたクロックバッファどうしを接続することにより、前記隣接しあう順序セル配置領域の順序セルどうしをつなぐクロック信号線の配線長を算出する配線長算出手段、
    前記配線長算出手段によって算出された配線長と前記順序セル配置領域の最長クロック配線長とに基づいて、前記隣接しあう順序セル配置領域のうち後段側の順序セル配置領域上の順序セルに接続されているクロックバッファを削除するか否かを判断する判断手段、
    前記判断手段によって前記クロックバッファを削除すると判断された場合、当該クロックバッファを削除して、前記隣接しあう順序セル配置領域内の順序セルどうしをつなぐクロック信号線を生成する再配線手段、
    として機能させることを特徴とする請求項1〜3のいずれか一つに記載の設計支援プログラム。
  5. 前記コンピュータを、
    前記再配置手段によって再配置された結果、クロックツリーが生成された場合、隣接しあう順序セル配置領域内の順序セルの個数と前記順序セル配置領域での前記順序セルの最大配置可能個数とに基づいて、前記隣接しあう順序セル配置領域のうち後段側の順序セル配置領域上の順序セルに接続されているクロックバッファを削除するか否かを判断する判断手段、
    前記判断手段によって前記クロックバッファを削除すると判断された場合、当該クロックバッファを削除して、前記隣接しあう順序セル配置領域内の順序セルどうしをつなぐクロック信号線を生成する再配線手段、
    として機能させることを特徴とする請求項1〜4のいずれか一つに記載の設計支援プログラム。
  6. クロックバッファごとにクロックが分配される順序セルが所定方向に配置可能な複数個の順序セル配置領域候補を、前記順序セルが配置されたセル配置可能領域に設定する設定手段と、
    前記設定手段によって設定された順序セル配置領域候補ごとに前記順序セルの重なりを示す重複度を算出する重複度算出手段と、
    前記セル配置可能領域内での前記全順序セルのサイズと前記順序セル配置領域のサイズとに基づいて、前記セル配置可能領域内での前記順序セル配置領域候補の必要個数を算出する必要個数算出手段と、
    前記順序セル配置領域候補の中から、前記重複度算出手段によって算出された重複度の高い順に前記必要個数算出手段によって算出された必要個数分の順序セル配置領域を決定する決定手段と、
    前記順序セルが属する順序セル配置領域を前記決定手段によって決定された必要個数分の各順序セル配置領域の中から特定する特定手段と、
    前記特定手段によって特定された順序セル配置領域に当該順序セル配置領域に属する順序セルが包含されるように再配置する再配置手段と、
    を備えることを特徴とする設計支援装置。
  7. コンピュータが、
    クロックバッファごとにクロックが分配される順序セルが所定方向に配置可能な複数個の順序セル配置領域候補を、前記順序セルが配置されたセル配置可能領域に設定する設定工程と、
    前記設定工程によって設定された順序セル配置領域候補ごとに前記順序セルの重なりを示す重複度を算出する重複度算出工程と、
    前記セル配置可能領域内での前記全順序セルのサイズと前記順序セル配置領域のサイズとに基づいて、前記セル配置可能領域内での前記順序セル配置領域候補の必要個数を算出する必要個数算出工程と、
    前記順序セル配置領域候補の中から、前記重複度算出工程によって算出された重複度の高い順に前記必要個数算出工程によって算出された必要個数分の順序セル配置領域を決定する決定工程と、
    前記順序セルが属する順序セル配置領域を前記決定工程によって決定された必要個数分の各順序セル配置領域の中から特定する特定工程と、
    前記特定工程によって特定された順序セル配置領域に当該順序セル配置領域に属する順序セルが包含されるように再配置する再配置工程と、
    を実行することを特徴とする設計支援方法。
JP2009114487A 2009-05-11 2009-05-11 設計支援装置、設計支援方法、および設計支援プログラム Pending JP2010262572A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009114487A JP2010262572A (ja) 2009-05-11 2009-05-11 設計支援装置、設計支援方法、および設計支援プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009114487A JP2010262572A (ja) 2009-05-11 2009-05-11 設計支援装置、設計支援方法、および設計支援プログラム

Publications (1)

Publication Number Publication Date
JP2010262572A true JP2010262572A (ja) 2010-11-18

Family

ID=43360565

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009114487A Pending JP2010262572A (ja) 2009-05-11 2009-05-11 設計支援装置、設計支援方法、および設計支援プログラム

Country Status (1)

Country Link
JP (1) JP2010262572A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019049498A1 (ja) * 2017-09-11 2019-03-14 ソニーセミコンダクタソリューションズ株式会社 半導体集積回路

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019049498A1 (ja) * 2017-09-11 2019-03-14 ソニーセミコンダクタソリューションズ株式会社 半導体集積回路
JPWO2019049498A1 (ja) * 2017-09-11 2020-12-17 ソニーセミコンダクタソリューションズ株式会社 半導体集積回路
JP7116731B2 (ja) 2017-09-11 2022-08-10 ソニーセミコンダクタソリューションズ株式会社 半導体集積回路

Similar Documents

Publication Publication Date Title
Pan et al. FastRoute: A step to integrate global routing into placement
US8984470B2 (en) Method and apparatus for performing redundant via insertion during circuit design
Huang et al. Partitioning-based standard-cell global placement with an exact objective
US8495552B1 (en) Structured latch and local-clock-buffer planning
TW200849051A (en) System and method for sign-off timing closure of a VLSI chip
CN111914500B (zh) 一种快速单磁通量子rsfq电路布局方法和装置
Darav et al. Eh? Placer: A high-performance modern technology-driven placer
JP2003044536A (ja) タイミング優先でセル配置するlsiのレイアウト方法及びその装置
Kennings et al. Detailed placement accounting for technology constraints
US8601425B2 (en) Solving congestion using net grouping
US7367005B2 (en) Method and apparatus for designing a layout, and computer product
JP2010262572A (ja) 設計支援装置、設計支援方法、および設計支援プログラム
Chu et al. Efficient nonrectangular shaped voltage island aware floorplanning with nonrandomized searching engine
Viswanathan et al. Fastplace: an analytical placer for mixed-mode designs
US11126768B2 (en) Methods of designing semiconductor devices, design systems performing the same and methods of manufacturing semiconductor devices using the same
JP7306134B2 (ja) 回路設計方法、プログラム、及び情報処理装置
JP2010117963A (ja) 設計支援方法
Cheng et al. Obstacle-avoiding length-matching bus routing considering nonuniform track resources
JP2002217300A (ja) セル配置方法
Chu ABOUT THIS CHAPTER
Wu et al. Bus-pin-aware bus-driven floorplanning
Ferreira et al. FBM: A Simple and Fast Algorithm for Placement Legalization
Xu et al. Redundant local-loop insertion for unidirectional routing
JP4778339B2 (ja) 自動配置方法、装置、及びプログラム
Arnaldo et al. Boosting the 3D thermal‐aware floorplanning problem through a master‐worker parallel MOEA