集積回路の配線方法、集積回路の配線プログラム及びそれを記憶した記憶媒体
【課題】 要求性能を満たすとともに、消費電力を削減することができる配線方法を提供すること。
【解決手段】 本発明の実施形態による集積回路の配線方法は、所定の動作周波数を満たすように第1の配線を求め、前記所定の動作周波数と前記第1の配線のクリティカルパスとを用いて最大迂回配線長を算出し、集積回路の配線を複数の群に分けた場合に、配線群に含まれる前記第1の配線を、前記第1の配線を含む他の配線群内の配線を用いて迂回させることで第2の配線を求め、前記第2の配線と前記第1の配線との差分が前記最大迂回配線長以下ならば、前記第2の配線によって前記第1の配線を更新し、前記第2の配線と前記第1の配線の差分が前記最大迂回配線長よりも大きければ、前記第1の配線を更新しないことを特徴としている。
【解決手段】 本発明の実施形態による集積回路の配線方法は、所定の動作周波数を満たすように第1の配線を求め、前記所定の動作周波数と前記第1の配線のクリティカルパスとを用いて最大迂回配線長を算出し、集積回路の配線を複数の群に分けた場合に、配線群に含まれる前記第1の配線を、前記第1の配線を含む他の配線群内の配線を用いて迂回させることで第2の配線を求め、前記第2の配線と前記第1の配線との差分が前記最大迂回配線長以下ならば、前記第2の配線によって前記第1の配線を更新し、前記第2の配線と前記第1の配線の差分が前記最大迂回配線長よりも大きければ、前記第1の配線を更新しないことを特徴としている。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は集積回路の配線方法、集積回路の配線プログラム及びそれを記憶した記憶媒体に関する。
【背景技術】
【0002】
利用者が独自の論理回路を書き込み、ユーザが所望する動作を実現することができる集積回路の一種に、FPGA(Field Programmable Gate Array)がある。FPGAでは、製品出荷後も内部回路を書き換えることができる。従来のFPGAのレイアウトにおいて、配置された論理ブロックを繋ぐ配線を行うには、予め選択された複数の配線を使用して、論理ブロック間の配線長が最も短くなるように、つまり動作周波数が最も高くなるように配線する。そして、ユーザが要求する性能(動作周波数)を満たすならばその配置配線を採用し、満たさなければ配線の選択からやり直す。
【0003】
このように配置配線されたFPGAは、ASIC(Application Specific Integrated Circuit)と異なり、回路として使用されていない配線や論理ブロックが多数存在する可能性がある。このような配線や論理ブロックには、使用していないにも関わらず電流が流れるため、FPGA全体の消費電力(特に静的消費電力)が大きくなってしまうという問題がある。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】KARA K. W. POON, STEVEN J.E. Wilton, and Andy YAN, “A Derailed Power Model for Field-Programmable Gate Arrays”, ACM Trans. on Design Automation of Electronic Systems, Vol. 10, No2, April 2005.
【特許文献】
【0005】
【特許文献1】米国特許第7281233号
【発明の概要】
【発明が解決しようとする課題】
【0006】
そこで本発明は、要求性能を満たすとともに、消費電力を削減することができる配線方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するために、本発明の実施形態による集積回路の配線方法は、所定の動作周波数を満たすように第1の配線を求め、前記所定の動作周波数と前記第1の配線のクリティカルパスとを用いて最大迂回配線長を算出し、集積回路の配線を複数の群に分けた場合に、配線群に含まれる前記第1の配線を、前記第1の配線を含む他の配線群内の配線を用いて迂回させることで第2の配線を求め、前記第2の配線と前記第1の配線との差分が前記最大迂回配線長以下ならば、前記第2の配線によって前記第1の配線を更新し、前記第2の配線と前記第1の配線の差分が前記最大迂回配線長よりも大きければ、前記第1の配線を更新しないことを特徴としている。
【図面の簡単な説明】
【0008】
【図1】本発明の実施形態に係るFPGAの概念を示す図。
【図2】本発明の実施形態に係る配線の電源を制御するための回路の一例を示す図。
【図3】本発明の実施形態に係るインバータとトランジスタとの接続部分を詳細に示す図。
【図4】本発明の実施形態に係るFPGAの配置配線を行うPCのブロック図。
【図5】本発明の実施形態に係るFPGAの配置配線処理を示すフローチャート。
【図6】本発明の実施形態に係るFPGAの配置配線処理を示すフローチャート。
【図7】本発明の実施形態に係るFPGAの配置配線処理を示すフローチャート。
【図8】本発明の実施形態に係るFPGAの配置配線処理を示すフローチャート。
【図9】本発明の実施形態に係るFPGAの配置配線処理を示すフローチャート。
【図10】本発明の実施形態に係るFPGAの配置配線処理を示すフローチャート。
【図11】本発明の実施形態に係るFPGAの配置配線処理を示すフローチャート。
【図12】本発明の実施形態に係るFPGAの配置配線処理を示すフローチャート。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態について図面を参照して説明する。図1は、本実施形態に係るFPGAの概念を示す図である。本実施形態に係るFPGAは、FPGAに含まれる配線をいくつかの群(以降では、配線群と称する)に分け、1つの配線群に含まれる複数(n本であるとする)の配線の電源のON/OFFを1つのメモリーから出力された信号で制御する。図では全ての配線群に含まれる本数が同じように描かれているが、実際は本数が異なっていても構わない。図1では、メモリーD1〜D18が接続された制御用配線に、FPGAの配線群が接続されている様子を示している。なお、メモリーD1〜D18は、SRAM等の揮発性メモリーを用いても良いし、DRAM等の不揮発性メモリーを用いても良い。不揮発性メモリーを使用した場合には、FPGA全体の電源をOFFにしたとしても、情報を保持することができるため、揮発性メモリーと比較して情報の再書込みが必要無く、消費電力が低く抑えることができる。
【0010】
このように構成することで、配線群に含まれる複数の配線がFPGAの動作で使用されないならば、この配線群の電源をOFFにすることができる。FPGAにおいて、配線部分の消費電力量は高いため、使用されない配線群の電源をOFFにすることで静的消費電力を削減することができる。また、本実施形態に係るFPGAのように、複数の配線の電源を1つのメモリーで管理することによって、各配線に対して1つずつメモリーを設ける場合と比較して、メモリー数が少なくて済み、メモリー配置のための面積増大を抑制することができる。
【0011】
図2は、配線の電源を制御するための回路の一例(メモリーD1に接続された回路の例)を示す図である。例えばFPGA上のスイッチ部分には、図2に示すような2入力マルチプレクサが使用されている。このマルチプレクサによって、例えばメモリーD10によって制御されている配線をメモリーD1によって制御されている配線に接続することが可能となり、これにより異なる配線への経路切り替えが可能となる。この2入力マルチプレクサは、FPGAを制御するためのメモリー23からの出力に応じて選択されるN型MOSFET21またはP型MOSFET22に入力された配線の信号を出力する。図2の例では、メモリーD10によって制御される配線の信号はN型MOSFET21に入力し、メモリーD1によって制御される配線の信号はP型MOSFET21に入力するものとしている。また、この2入力マルチプレクサには、信号増幅のためのインバータ24〜26が設けられており、このインバータ24〜26のそれぞれに対して、メモリーD1ないしはメモリーD10からの出力信号によってON/OFFするトランジスタ27〜29が設けられている。なお、図2では、配線群に含まれる1つの配線に設けられるマルチプレクサの回路を図示しているが、同一のメモリーD1に接続される全ての配線に設けられているインバータ全てに対して、同様のトランジスタ回路が設けられる。
【0012】
図3は、図2におけるインバータ24とトランジスタ27との接続部分(図2において破線で囲った部分)を詳細に示す図である。インバータ24とトランジスタ27接続部分は、例えば図3(a)〜(c)のいずれかのように構成される。図3(a)と(b)は、インバータ24を構成するN型MOSFETもしくはP型MOSFETのいずれかの一端に1つのトランジスタ27を接続した回路を示している。図3(c)は、インバータ24を構成するN型MOSFETの一端に1つのトランジスタ27を接続し、インバータ24を構成するP型MOSFETの一端にもう1つのトランジスタ27を接続した回路を示している。
【0013】
インバータ24に接続されるトランジスタ27をメモリーD1からの出力信号によってOFFに設定すると、インバータを流れる電流を遮断することができる。特に、図3(c)に示す回路では、図3(a)や(b)と比較して、必要なトランジスタ27が1つ多いが、より安定してインバータ24が接続された配線の電源ON/OFFを設定することができる。なお、図2のインバータ25とトランジスタ28の接続部分やインバータ26とトランジスタ29の接続部分も図3(a)〜(c)を用いて説明した回路によって構成することができる。
【0014】
次に、図1〜図3にて説明したFPGAの配置配線について説明する。本実施形態によるFPGAの配置配線は、例えばパーソナルコンピュータ(PC)によって実行される。図4は、FPGAの配置配線を行うPC1のブロック図である。PC1は、プロセッサ10、メインメモリー20、ハードディスク30、入出力装置40が内部インタフェースで接続されている。また、メインメモリー20には不揮発性メモリー50が接続されている。プロセッサ10は、演算処理を行うプロセッサエレメント11とキャッシュ12を有し、PC1全体の制御を行う。入出力装置40は、様々な外部機器と接続し、例えば配置配線の情報をFPGAに書き込む際に配置配線の情報を出力するために用いられる。FPGAの配置配線のためのプログラムは、例えばハードディスク30に記憶されており、メインメモリー20がそのプログラムを読み込んで、プロセッサエレメント11がメインメモリー20に読み込まれたプログラムに従って演算を行って実行される。ハードディスク30に記憶されるFPGAの配置配線プログラムは、そのプログラムを記憶した記憶媒体(記録型CD/DVDやUSBメモリ等)から、入出力装置40経由で入手しても良いし、プログラムを記憶したサーバから、図示しないアンテナ経由で入手しても良い。
【0015】
本実施形態によるFPGAの配置配線は、図5〜図7の処理をプロセッサエレメント11が実行することで行われる。プロセッサエレメント11は、図5に示す処理を行ってユーザの要求性能を満たすよう配置および仮の配線を行い、図6および図7に示す処理を行って、ユーザの要求性能を満たす範囲内で、仮の配線を変更して、より多くの配線の電源をOFFすることができるような配線を行う。
【0016】
図5に示す処理について説明する。なお、図5に示す仮の配線処理フローの各ステップにおける処理については、非特許文献1に記載があるため、詳細な説明を省略する。プロセッサエレメント11は、ユーザが所望するための回路を実現する論理ブロックの配置を行う(S10)。そして、複数の配線を選択し(S11)、選択された配線を使用して、ステップS10にて配置された論理ブロックを繋ぐ配線を行う(S12)。
【0017】
選択された配線を使用して配線ができれば(S13のYes)、作成した配置配線のクリティカルパスを計算する(S14)。そして、計算されたクリティカルパスに基づいて、作成した配置配線の最大動作周波数を求め、予め与えられたユーザが要求する動作周波数(以下、要求周波数と称する)を満たすかどうかを判断する(S15)。もし、ステップS15にて、作成された配置配線が要求周波数を満たさないと判断されたときには(S15のNo)、ステップS11に戻って配線をやり直す。一方、要求周波数を満たす配置配線が作成できた場合には(S15のYes)、図5に示す仮の配線処理を終了する。以降では、作成された配置配線に用いられている配線をレイアウトに使用される配線と称する。
【0018】
次に、図6および図7に示す処理について説明する。仮の配線処理では、要求周波数を満たす配置配線が得られるが、配線の消費電力を削減することは考慮されていない。そこで、プロセッサエレメント11は、図5に示す仮の配線処理が終了すると、図6および図7に示す再配線処理を開始する。
【0019】
プロセッサエレメント11は、まず、要求周波数を満たす範囲内で、現状の配線のクリティカルパスを最大限迂回可能な配線長を算出する(S20)。迂回可能配線長BNUMの算出は、例えば式(1)によって行う。
BNUM = (1/fR - DPATH)/DCLB ・・・(1)
ここで、DPATHはクリティカルパスCPATHによって生じる遅延時間を表し、DCLBは論理ブロック1辺の長さの配線によって生じる遅延時間を表す。つまり、迂回可能配線長BNUMは、ユーザの要求性能を満たす範囲内で、現状の配線のクリティカルパスCPATHから配線を迂回させる場合、論理ブロック何辺分だけ配線を迂回させることができるかどうかを示している。
【0020】
なお、迂回可能配線長BNUMの算出方法は、数1に限らず、ユーザの要求性能とクリティカルパスとを用いた、他の算出方法でも良い。例えば式(2)のような算出方法が考えられる。
BNUM = (LMAX - LC)/LCLB ・・・(2)
ここで、LMAXは要求周波数fRを満たす最大の配線の長さを表し、LCはクリティカルパスCPATHの長さを表し、LCLBは論理ブロック1辺の長さを表す。
【0021】
プロセッサエレメント11は、このようにして算出した迂回可能配線長BNUMが2以上であるか否かを判断する(S21)。図8(a)に示すように、縦方向に配置された論理ブロック1辺分の配線T1を迂回させる場合、横方向の論理ブロック2辺分の配線T2、T3と、縦方向の論理ブロック1辺分の配線T4の配線が少なくとも必要である。同様に、図8(b)に示すように、横方向に配置された論理ブロック1辺分の配線T5を迂回させる場合、縦方向の論理ブロック2辺分の配線T6、T7と、横方向の論理ブロック1辺分の配線T8が少なくとも必要である。つまり、クリティカルパスCPATHの配線を迂回させると、少なくとも論理ブロック2辺分配線長が増えることを意味する。
【0022】
そこで、迂回可能配線長BNUMを2と比較することによって、ユーザの要求性能を満たす範囲内で配線を迂回させることが可能であるか否かを判断することができる。そして、迂回可能配線長BNUMが2未満であれば(S21のNo)、配線処理は終了する。このように事前にユーザの要求性能を満たす範囲内で配線を迂回させることが可能か否かを判断することによって、ユーザの要求性能を満たすことができないにも関わらず配線の迂回を試行するという無駄な処理を省くことができる。
【0023】
ステップS21で迂回可能配線長BNUMが2以上であると判断されると、プロセッサエレメント11は、配線群内でレイアウトとして使用されている配線の本数によって配線群を分類する(S22)。つまり、配線群を構成するk本の配線のうち、レイアウトに使用されている配線(以降、使用配線と称する)がi本の配線群(0≦i≦n)のものに分類する。そして、再配線が行われたかどうかの判断(S28にて後述する)に用いるためのフラグをリセットする(S23)。
【0024】
そして、使用配線が1本の分類G1を選択し(S24)、分類G1内に配線群が存在するならば(S25のYes)、図7に示すフローチャートに移り、存在しないならば(S25のNo)、現在選択している分類よりも使用配線が1本多い分類を選択して、変数Iがnとなるまで、ステップS25の処理を繰り返す。
【0025】
ステップS25において、分類GIに配線群が存在すると判断された場合、プロセッサエレメント11は、分類GIから任意の配線群WTARGETを1つ選択する(S40)。そして、配線群WTARGETに含まれるレイアウトに使用されているI本の配線それぞれについて、使用配線が1本からn本の配線群の配線を使用した迂回経路を算出する(S41)。なお、ステップS41で算出される迂回経路が複数ある場合には、最短の迂回経路を選ぶ。
【0026】
そして、プロセッサエレメント11は、配線群WTARGETに含まれる全ての使用配線が配線群WTARGETとは異なる配線群に迂回可能であるならば(S42のYes)、元の配線と比較した迂回後の配線の増加長BADDを算出する(S43)。なお、配線増加分の長さを示すBADDは、迂回可能配線長BNUMと比較できるように、論理ブロック何辺分の長さであるかを示す値として算出する。ただし、これに限らず、BADDとBNUMとが比較できるように両者の単位が揃っていれば良い。
【0027】
配線増加長BADDが最大迂回配線長BNUMよりも短ければ(S44のYes)、迂回後の配線が要求周波数を満たすことが保障される。そのため、プロセッサエレメント11は、迂回後の配線を採用する(S45)。迂回後の配線が採用される場合には、式(3)に示すように、配線群WTARGETの分類が使用配線0本の分類に変更され、最大迂回配線長BNUMの値が更新される。さらに、配線群WTARGETの配線の迂回に用いられた配線を含む配線群の分類が、迂回配線採用後の使用配線数に応じて変更される。
G0=G0∪{WTARGET}
GI=GI−{WTARGET}
BNUM=BNUM−BADD ・・・(3)
ステップS45にて、迂回経路を採用する処理が終了すると、プロセッサエレメント11は、再配線が行われたことを示すフラグをセットする(S46)。そして、最大迂回配線長BNUMが2未満ならば(S47のNo)、これ以上配線を迂回させることができないため、図6のステップS29にて再配線後のクリティカルパスを計算し、ステップS20からの処理を繰り返す。それに対して、最大迂回配線長BNUMが2以上ならば(S47のYes)、ステップS25に戻り、分類GIに含まれる配線群の再配線処理を行う。
【0028】
ステップS44において、配線増加長BADDが最大迂回配線長BNUMよりも長い場合(S44のNo)や、配線群WTARGETの使用配線の内、少なくとも1本の使用配線が迂回できない場合(S42のNo)、迂回後の配線は採用されない(S48)。迂回後の配線が採用されない場合には、配線群WTARGETが処理済であることが判別するための情報を付与する。例えば、処理済の配線群を示す分類GFINISHを設け、式(4)に示すように、配線群WTARGETを分類GFINISHに移動させることによって、処理済を判別させる。
GFINISH=GFINISH∪{WTARGET}
GI=GI−{WTARGET} ・・・(4)
そして、ステップS48の処理が終了すると、ステップS25に戻り、分類GIに含まれる配線群の再配線処理を行う。なお、最大迂回配線長BNUMが2以上の状態で、全ての分類G1〜Gn−1に含まれる全ての配線群に対する再配線処理が終了すると(S27のYes)、ステップS28にて、迂回配線が採用されたかどうかが判断され、迂回配線が採用されていなければ(S28のNo)、配線処理を終了する。迂回配線が採用されたかどうかは、再配線が行われたことを示すフラグによって判断できる。
【0029】
以上説明したような処理によれば、要求周波数を満たしている配線を基にして、要求周波数を満たしながら、レイアウトに使用される配線が無い配線群の数を増やした配線を得ることができる。
【0030】
なお、本実施形態では、使用配線が少ない分類に含まれる配線群から順に再配線処理を行ったが、再配線処理を行う順番はこれに限られない。例えば、配線群を、使用配線が0本の分類、使用配線がn本の分類、および使用配線が1本〜(n−1)本のいずれかである分類の3つに分け、使用配線が1本〜(n−1)本のいずれかの配線群から任意の順で再配線処理を行っても良い。
【0031】
図6および図7を用いて説明した再配線処理では、処理の終了条件は、最大迂回配線長BNUMが2よりも小さくなった場合か、最大迂回配線長BNUMを算出した後に、いずれの配線群も迂回配線が採用されなかった場合の2つである。しかしながら、採用された配置配線によっては、最大迂回配線長BNUMが2以上であっても、これ以上再配置することができない場合がある。そこで、上述の終了条件だけでなく、以下の変形例1〜3に示すような終了条件を加えても良い。なお、以下の変形例のフローチャートでは、図6、図7を用いて説明した処理と同じ処理には同じ番号を付与し、詳細な説明を省略する。
【0032】
(変形例1)
例えば、最大迂回配線長BNUMが2の場合、再配置計算を行っていない配線群の使用配線数がいずれも2以上であるならば、例え1本の使用配線を迂回することができたとしても、他の使用配線を迂回することができない。つまり、使用配線の本数が少ない分類に含まれる配線群から順に再配置計算を行う場合、最大迂回配線長BNUMが2×I(Iは、使用配線の本数)未満となると、使用配線の全てを迂回させることはできない。
【0033】
そこで、図6に示した処理に代えて図9のように、最大迂回配線長BNUMと2×Iとを比較し(S101)、最大迂回配線長BNUMが2×I以上ならば(S101のYes)、ステップS40へ進み、分類GI内の配線群の再配線処理を行い、最大迂回配線長BNUMが2×I未満ならば(S101のNo)、ステップS28の処理に進むことで、再配置できないにもかかわらず再配置を試みる処理を行うことを防ぐことができる。
【0034】
(変形例2)
迂回配線が何度も連続で採用されなかった場合、その時点で配線処理を終了させても良い。図10及び図11は、迂回経路の不採用が所定の回数(NF回)を超えた時点で配線処理を終了させる場合のプロセッサエレメント11の処理を示すフローチャートである。
【0035】
図10及び図11に示す処理において、迂回経路の不採用回数をカウントする変数Ncountを用いる。変数Ncountは、迂回経路の探索が行われる前に(例えば、図10のステップS111)、0にリセットされる。そして、図11のステップS48にて迂回経路が採用されなかった場合には、変数Ncountが1増加する(S112)。そして、変数Ncountが閾値NFよりも大きくなった場合(S113のYes)、配線処理を終了する。一方、図11のステップS45にて迂回経路が採用された場合には、変数Ncountが0にリセットされる(S114)。
【0036】
(変形例3)
予め再配置計算対象の分類を定め、再配置計算対象の分類に含まれる配線群の再配置計算が終了すると、処理を終了させても良い。そのためには、図6に示した処理に代えて図12に基づいて処理を行う。図12に示す処理では、再配置計算を行う前に(例えば図12のS121)再配置計算対象の分類を設定する。ここでは、何本の使用配線の分類に属する配線群までが再配線出来る可能性を持っているのかを式(5)および式(6)により計算する。
【数1】
ここで、Riは、横方向の配線から成る配線群であり、使用配線の本数がi本である配線群の数を表す。また、Ciは、縦方向の配線群であり、使用配線の本数がi本である配線群の数を表す。プロセッサエレメント11は、式(5)および式(6)の両方を満たすように再配線対象分類の最大使用配線数Jを求める。
【0037】
配線群の中で、レイアウトに使用されている配線がi本の縦方向の配線である場合、迂回配線として横方向の配線を2×i本と縦方向の配線i本が必要である。また、レイアウトに使用されている配線がi本の横方向の配線である場合、迂回配線として横方向の配線をi本と縦方向の配線を2×i本が必要である。
【0038】
式(5)の左辺は、配線群内のレイアウトに使用されている配線が1〜J本であると分類された配線群に含まれる配線を全て迂回させるときに必要な横方向の配線の本数を表している。式(5)の右辺は、配線群内のレイアウトに使用されている配線が(J+1)本〜n本であると分類された配線群に含まれるレイアウトに使用されていない横方向の配線の合計本数を表している。つまり、式(5)では、配線群内のレイアウトに使用されている配線が1〜J本であると分類された配線群に含まれる配線を全て迂回させる場合に、迂回先となる横方向の配線が足りるか否かを検証している。
【0039】
同様に、式(6)では、配線群内のレイアウトに使用されている配線が1〜J本であると分類された配線群に含まれる配線を全て迂回させる場合に、迂回先となる縦方向の配線が足りるか否かを検証している。そして、式(5)および式(6)を満たすJを探索し、レイアウトに使用されている配線が1〜J本の配線群を配線迂回の候補とする。
【0040】
このような変形例を用いることによって、再配線の処理にかかる時間を短縮し、より短時間で配線経路を得ることができる。なお、変形例1〜3は複数を組み合わせて使用しても良い。
【0041】
以上説明したように、本発明の実施形態やその変形例の構成をとることで、要求周波数を満たしながら、レイアウトに使用される配線が無い配線群の数ができるだけ多くなるよう配線することができる。使用されない配線群の電源はOFFにすることができるため、消費電力を削減することができる。
【0042】
なお、上記実施形態に限定されることはなく、本発明の要旨を逸脱しない範囲において、適宜変更しても良い。
【符号の説明】
【0043】
1…PC、 10…プロセッサ、 11…プロセッサエレメント、 12…キャッシュ、 20…メインメモリー、 30…ハードディスク、 40…入出力装置、 21…N型MOSFET、 22…P型MOSFET、 23…メモリー、 24,25,26…インバータ、 27,28,29…トランジスタ
【技術分野】
【0001】
本発明の実施形態は集積回路の配線方法、集積回路の配線プログラム及びそれを記憶した記憶媒体に関する。
【背景技術】
【0002】
利用者が独自の論理回路を書き込み、ユーザが所望する動作を実現することができる集積回路の一種に、FPGA(Field Programmable Gate Array)がある。FPGAでは、製品出荷後も内部回路を書き換えることができる。従来のFPGAのレイアウトにおいて、配置された論理ブロックを繋ぐ配線を行うには、予め選択された複数の配線を使用して、論理ブロック間の配線長が最も短くなるように、つまり動作周波数が最も高くなるように配線する。そして、ユーザが要求する性能(動作周波数)を満たすならばその配置配線を採用し、満たさなければ配線の選択からやり直す。
【0003】
このように配置配線されたFPGAは、ASIC(Application Specific Integrated Circuit)と異なり、回路として使用されていない配線や論理ブロックが多数存在する可能性がある。このような配線や論理ブロックには、使用していないにも関わらず電流が流れるため、FPGA全体の消費電力(特に静的消費電力)が大きくなってしまうという問題がある。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】KARA K. W. POON, STEVEN J.E. Wilton, and Andy YAN, “A Derailed Power Model for Field-Programmable Gate Arrays”, ACM Trans. on Design Automation of Electronic Systems, Vol. 10, No2, April 2005.
【特許文献】
【0005】
【特許文献1】米国特許第7281233号
【発明の概要】
【発明が解決しようとする課題】
【0006】
そこで本発明は、要求性能を満たすとともに、消費電力を削減することができる配線方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するために、本発明の実施形態による集積回路の配線方法は、所定の動作周波数を満たすように第1の配線を求め、前記所定の動作周波数と前記第1の配線のクリティカルパスとを用いて最大迂回配線長を算出し、集積回路の配線を複数の群に分けた場合に、配線群に含まれる前記第1の配線を、前記第1の配線を含む他の配線群内の配線を用いて迂回させることで第2の配線を求め、前記第2の配線と前記第1の配線との差分が前記最大迂回配線長以下ならば、前記第2の配線によって前記第1の配線を更新し、前記第2の配線と前記第1の配線の差分が前記最大迂回配線長よりも大きければ、前記第1の配線を更新しないことを特徴としている。
【図面の簡単な説明】
【0008】
【図1】本発明の実施形態に係るFPGAの概念を示す図。
【図2】本発明の実施形態に係る配線の電源を制御するための回路の一例を示す図。
【図3】本発明の実施形態に係るインバータとトランジスタとの接続部分を詳細に示す図。
【図4】本発明の実施形態に係るFPGAの配置配線を行うPCのブロック図。
【図5】本発明の実施形態に係るFPGAの配置配線処理を示すフローチャート。
【図6】本発明の実施形態に係るFPGAの配置配線処理を示すフローチャート。
【図7】本発明の実施形態に係るFPGAの配置配線処理を示すフローチャート。
【図8】本発明の実施形態に係るFPGAの配置配線処理を示すフローチャート。
【図9】本発明の実施形態に係るFPGAの配置配線処理を示すフローチャート。
【図10】本発明の実施形態に係るFPGAの配置配線処理を示すフローチャート。
【図11】本発明の実施形態に係るFPGAの配置配線処理を示すフローチャート。
【図12】本発明の実施形態に係るFPGAの配置配線処理を示すフローチャート。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態について図面を参照して説明する。図1は、本実施形態に係るFPGAの概念を示す図である。本実施形態に係るFPGAは、FPGAに含まれる配線をいくつかの群(以降では、配線群と称する)に分け、1つの配線群に含まれる複数(n本であるとする)の配線の電源のON/OFFを1つのメモリーから出力された信号で制御する。図では全ての配線群に含まれる本数が同じように描かれているが、実際は本数が異なっていても構わない。図1では、メモリーD1〜D18が接続された制御用配線に、FPGAの配線群が接続されている様子を示している。なお、メモリーD1〜D18は、SRAM等の揮発性メモリーを用いても良いし、DRAM等の不揮発性メモリーを用いても良い。不揮発性メモリーを使用した場合には、FPGA全体の電源をOFFにしたとしても、情報を保持することができるため、揮発性メモリーと比較して情報の再書込みが必要無く、消費電力が低く抑えることができる。
【0010】
このように構成することで、配線群に含まれる複数の配線がFPGAの動作で使用されないならば、この配線群の電源をOFFにすることができる。FPGAにおいて、配線部分の消費電力量は高いため、使用されない配線群の電源をOFFにすることで静的消費電力を削減することができる。また、本実施形態に係るFPGAのように、複数の配線の電源を1つのメモリーで管理することによって、各配線に対して1つずつメモリーを設ける場合と比較して、メモリー数が少なくて済み、メモリー配置のための面積増大を抑制することができる。
【0011】
図2は、配線の電源を制御するための回路の一例(メモリーD1に接続された回路の例)を示す図である。例えばFPGA上のスイッチ部分には、図2に示すような2入力マルチプレクサが使用されている。このマルチプレクサによって、例えばメモリーD10によって制御されている配線をメモリーD1によって制御されている配線に接続することが可能となり、これにより異なる配線への経路切り替えが可能となる。この2入力マルチプレクサは、FPGAを制御するためのメモリー23からの出力に応じて選択されるN型MOSFET21またはP型MOSFET22に入力された配線の信号を出力する。図2の例では、メモリーD10によって制御される配線の信号はN型MOSFET21に入力し、メモリーD1によって制御される配線の信号はP型MOSFET21に入力するものとしている。また、この2入力マルチプレクサには、信号増幅のためのインバータ24〜26が設けられており、このインバータ24〜26のそれぞれに対して、メモリーD1ないしはメモリーD10からの出力信号によってON/OFFするトランジスタ27〜29が設けられている。なお、図2では、配線群に含まれる1つの配線に設けられるマルチプレクサの回路を図示しているが、同一のメモリーD1に接続される全ての配線に設けられているインバータ全てに対して、同様のトランジスタ回路が設けられる。
【0012】
図3は、図2におけるインバータ24とトランジスタ27との接続部分(図2において破線で囲った部分)を詳細に示す図である。インバータ24とトランジスタ27接続部分は、例えば図3(a)〜(c)のいずれかのように構成される。図3(a)と(b)は、インバータ24を構成するN型MOSFETもしくはP型MOSFETのいずれかの一端に1つのトランジスタ27を接続した回路を示している。図3(c)は、インバータ24を構成するN型MOSFETの一端に1つのトランジスタ27を接続し、インバータ24を構成するP型MOSFETの一端にもう1つのトランジスタ27を接続した回路を示している。
【0013】
インバータ24に接続されるトランジスタ27をメモリーD1からの出力信号によってOFFに設定すると、インバータを流れる電流を遮断することができる。特に、図3(c)に示す回路では、図3(a)や(b)と比較して、必要なトランジスタ27が1つ多いが、より安定してインバータ24が接続された配線の電源ON/OFFを設定することができる。なお、図2のインバータ25とトランジスタ28の接続部分やインバータ26とトランジスタ29の接続部分も図3(a)〜(c)を用いて説明した回路によって構成することができる。
【0014】
次に、図1〜図3にて説明したFPGAの配置配線について説明する。本実施形態によるFPGAの配置配線は、例えばパーソナルコンピュータ(PC)によって実行される。図4は、FPGAの配置配線を行うPC1のブロック図である。PC1は、プロセッサ10、メインメモリー20、ハードディスク30、入出力装置40が内部インタフェースで接続されている。また、メインメモリー20には不揮発性メモリー50が接続されている。プロセッサ10は、演算処理を行うプロセッサエレメント11とキャッシュ12を有し、PC1全体の制御を行う。入出力装置40は、様々な外部機器と接続し、例えば配置配線の情報をFPGAに書き込む際に配置配線の情報を出力するために用いられる。FPGAの配置配線のためのプログラムは、例えばハードディスク30に記憶されており、メインメモリー20がそのプログラムを読み込んで、プロセッサエレメント11がメインメモリー20に読み込まれたプログラムに従って演算を行って実行される。ハードディスク30に記憶されるFPGAの配置配線プログラムは、そのプログラムを記憶した記憶媒体(記録型CD/DVDやUSBメモリ等)から、入出力装置40経由で入手しても良いし、プログラムを記憶したサーバから、図示しないアンテナ経由で入手しても良い。
【0015】
本実施形態によるFPGAの配置配線は、図5〜図7の処理をプロセッサエレメント11が実行することで行われる。プロセッサエレメント11は、図5に示す処理を行ってユーザの要求性能を満たすよう配置および仮の配線を行い、図6および図7に示す処理を行って、ユーザの要求性能を満たす範囲内で、仮の配線を変更して、より多くの配線の電源をOFFすることができるような配線を行う。
【0016】
図5に示す処理について説明する。なお、図5に示す仮の配線処理フローの各ステップにおける処理については、非特許文献1に記載があるため、詳細な説明を省略する。プロセッサエレメント11は、ユーザが所望するための回路を実現する論理ブロックの配置を行う(S10)。そして、複数の配線を選択し(S11)、選択された配線を使用して、ステップS10にて配置された論理ブロックを繋ぐ配線を行う(S12)。
【0017】
選択された配線を使用して配線ができれば(S13のYes)、作成した配置配線のクリティカルパスを計算する(S14)。そして、計算されたクリティカルパスに基づいて、作成した配置配線の最大動作周波数を求め、予め与えられたユーザが要求する動作周波数(以下、要求周波数と称する)を満たすかどうかを判断する(S15)。もし、ステップS15にて、作成された配置配線が要求周波数を満たさないと判断されたときには(S15のNo)、ステップS11に戻って配線をやり直す。一方、要求周波数を満たす配置配線が作成できた場合には(S15のYes)、図5に示す仮の配線処理を終了する。以降では、作成された配置配線に用いられている配線をレイアウトに使用される配線と称する。
【0018】
次に、図6および図7に示す処理について説明する。仮の配線処理では、要求周波数を満たす配置配線が得られるが、配線の消費電力を削減することは考慮されていない。そこで、プロセッサエレメント11は、図5に示す仮の配線処理が終了すると、図6および図7に示す再配線処理を開始する。
【0019】
プロセッサエレメント11は、まず、要求周波数を満たす範囲内で、現状の配線のクリティカルパスを最大限迂回可能な配線長を算出する(S20)。迂回可能配線長BNUMの算出は、例えば式(1)によって行う。
BNUM = (1/fR - DPATH)/DCLB ・・・(1)
ここで、DPATHはクリティカルパスCPATHによって生じる遅延時間を表し、DCLBは論理ブロック1辺の長さの配線によって生じる遅延時間を表す。つまり、迂回可能配線長BNUMは、ユーザの要求性能を満たす範囲内で、現状の配線のクリティカルパスCPATHから配線を迂回させる場合、論理ブロック何辺分だけ配線を迂回させることができるかどうかを示している。
【0020】
なお、迂回可能配線長BNUMの算出方法は、数1に限らず、ユーザの要求性能とクリティカルパスとを用いた、他の算出方法でも良い。例えば式(2)のような算出方法が考えられる。
BNUM = (LMAX - LC)/LCLB ・・・(2)
ここで、LMAXは要求周波数fRを満たす最大の配線の長さを表し、LCはクリティカルパスCPATHの長さを表し、LCLBは論理ブロック1辺の長さを表す。
【0021】
プロセッサエレメント11は、このようにして算出した迂回可能配線長BNUMが2以上であるか否かを判断する(S21)。図8(a)に示すように、縦方向に配置された論理ブロック1辺分の配線T1を迂回させる場合、横方向の論理ブロック2辺分の配線T2、T3と、縦方向の論理ブロック1辺分の配線T4の配線が少なくとも必要である。同様に、図8(b)に示すように、横方向に配置された論理ブロック1辺分の配線T5を迂回させる場合、縦方向の論理ブロック2辺分の配線T6、T7と、横方向の論理ブロック1辺分の配線T8が少なくとも必要である。つまり、クリティカルパスCPATHの配線を迂回させると、少なくとも論理ブロック2辺分配線長が増えることを意味する。
【0022】
そこで、迂回可能配線長BNUMを2と比較することによって、ユーザの要求性能を満たす範囲内で配線を迂回させることが可能であるか否かを判断することができる。そして、迂回可能配線長BNUMが2未満であれば(S21のNo)、配線処理は終了する。このように事前にユーザの要求性能を満たす範囲内で配線を迂回させることが可能か否かを判断することによって、ユーザの要求性能を満たすことができないにも関わらず配線の迂回を試行するという無駄な処理を省くことができる。
【0023】
ステップS21で迂回可能配線長BNUMが2以上であると判断されると、プロセッサエレメント11は、配線群内でレイアウトとして使用されている配線の本数によって配線群を分類する(S22)。つまり、配線群を構成するk本の配線のうち、レイアウトに使用されている配線(以降、使用配線と称する)がi本の配線群(0≦i≦n)のものに分類する。そして、再配線が行われたかどうかの判断(S28にて後述する)に用いるためのフラグをリセットする(S23)。
【0024】
そして、使用配線が1本の分類G1を選択し(S24)、分類G1内に配線群が存在するならば(S25のYes)、図7に示すフローチャートに移り、存在しないならば(S25のNo)、現在選択している分類よりも使用配線が1本多い分類を選択して、変数Iがnとなるまで、ステップS25の処理を繰り返す。
【0025】
ステップS25において、分類GIに配線群が存在すると判断された場合、プロセッサエレメント11は、分類GIから任意の配線群WTARGETを1つ選択する(S40)。そして、配線群WTARGETに含まれるレイアウトに使用されているI本の配線それぞれについて、使用配線が1本からn本の配線群の配線を使用した迂回経路を算出する(S41)。なお、ステップS41で算出される迂回経路が複数ある場合には、最短の迂回経路を選ぶ。
【0026】
そして、プロセッサエレメント11は、配線群WTARGETに含まれる全ての使用配線が配線群WTARGETとは異なる配線群に迂回可能であるならば(S42のYes)、元の配線と比較した迂回後の配線の増加長BADDを算出する(S43)。なお、配線増加分の長さを示すBADDは、迂回可能配線長BNUMと比較できるように、論理ブロック何辺分の長さであるかを示す値として算出する。ただし、これに限らず、BADDとBNUMとが比較できるように両者の単位が揃っていれば良い。
【0027】
配線増加長BADDが最大迂回配線長BNUMよりも短ければ(S44のYes)、迂回後の配線が要求周波数を満たすことが保障される。そのため、プロセッサエレメント11は、迂回後の配線を採用する(S45)。迂回後の配線が採用される場合には、式(3)に示すように、配線群WTARGETの分類が使用配線0本の分類に変更され、最大迂回配線長BNUMの値が更新される。さらに、配線群WTARGETの配線の迂回に用いられた配線を含む配線群の分類が、迂回配線採用後の使用配線数に応じて変更される。
G0=G0∪{WTARGET}
GI=GI−{WTARGET}
BNUM=BNUM−BADD ・・・(3)
ステップS45にて、迂回経路を採用する処理が終了すると、プロセッサエレメント11は、再配線が行われたことを示すフラグをセットする(S46)。そして、最大迂回配線長BNUMが2未満ならば(S47のNo)、これ以上配線を迂回させることができないため、図6のステップS29にて再配線後のクリティカルパスを計算し、ステップS20からの処理を繰り返す。それに対して、最大迂回配線長BNUMが2以上ならば(S47のYes)、ステップS25に戻り、分類GIに含まれる配線群の再配線処理を行う。
【0028】
ステップS44において、配線増加長BADDが最大迂回配線長BNUMよりも長い場合(S44のNo)や、配線群WTARGETの使用配線の内、少なくとも1本の使用配線が迂回できない場合(S42のNo)、迂回後の配線は採用されない(S48)。迂回後の配線が採用されない場合には、配線群WTARGETが処理済であることが判別するための情報を付与する。例えば、処理済の配線群を示す分類GFINISHを設け、式(4)に示すように、配線群WTARGETを分類GFINISHに移動させることによって、処理済を判別させる。
GFINISH=GFINISH∪{WTARGET}
GI=GI−{WTARGET} ・・・(4)
そして、ステップS48の処理が終了すると、ステップS25に戻り、分類GIに含まれる配線群の再配線処理を行う。なお、最大迂回配線長BNUMが2以上の状態で、全ての分類G1〜Gn−1に含まれる全ての配線群に対する再配線処理が終了すると(S27のYes)、ステップS28にて、迂回配線が採用されたかどうかが判断され、迂回配線が採用されていなければ(S28のNo)、配線処理を終了する。迂回配線が採用されたかどうかは、再配線が行われたことを示すフラグによって判断できる。
【0029】
以上説明したような処理によれば、要求周波数を満たしている配線を基にして、要求周波数を満たしながら、レイアウトに使用される配線が無い配線群の数を増やした配線を得ることができる。
【0030】
なお、本実施形態では、使用配線が少ない分類に含まれる配線群から順に再配線処理を行ったが、再配線処理を行う順番はこれに限られない。例えば、配線群を、使用配線が0本の分類、使用配線がn本の分類、および使用配線が1本〜(n−1)本のいずれかである分類の3つに分け、使用配線が1本〜(n−1)本のいずれかの配線群から任意の順で再配線処理を行っても良い。
【0031】
図6および図7を用いて説明した再配線処理では、処理の終了条件は、最大迂回配線長BNUMが2よりも小さくなった場合か、最大迂回配線長BNUMを算出した後に、いずれの配線群も迂回配線が採用されなかった場合の2つである。しかしながら、採用された配置配線によっては、最大迂回配線長BNUMが2以上であっても、これ以上再配置することができない場合がある。そこで、上述の終了条件だけでなく、以下の変形例1〜3に示すような終了条件を加えても良い。なお、以下の変形例のフローチャートでは、図6、図7を用いて説明した処理と同じ処理には同じ番号を付与し、詳細な説明を省略する。
【0032】
(変形例1)
例えば、最大迂回配線長BNUMが2の場合、再配置計算を行っていない配線群の使用配線数がいずれも2以上であるならば、例え1本の使用配線を迂回することができたとしても、他の使用配線を迂回することができない。つまり、使用配線の本数が少ない分類に含まれる配線群から順に再配置計算を行う場合、最大迂回配線長BNUMが2×I(Iは、使用配線の本数)未満となると、使用配線の全てを迂回させることはできない。
【0033】
そこで、図6に示した処理に代えて図9のように、最大迂回配線長BNUMと2×Iとを比較し(S101)、最大迂回配線長BNUMが2×I以上ならば(S101のYes)、ステップS40へ進み、分類GI内の配線群の再配線処理を行い、最大迂回配線長BNUMが2×I未満ならば(S101のNo)、ステップS28の処理に進むことで、再配置できないにもかかわらず再配置を試みる処理を行うことを防ぐことができる。
【0034】
(変形例2)
迂回配線が何度も連続で採用されなかった場合、その時点で配線処理を終了させても良い。図10及び図11は、迂回経路の不採用が所定の回数(NF回)を超えた時点で配線処理を終了させる場合のプロセッサエレメント11の処理を示すフローチャートである。
【0035】
図10及び図11に示す処理において、迂回経路の不採用回数をカウントする変数Ncountを用いる。変数Ncountは、迂回経路の探索が行われる前に(例えば、図10のステップS111)、0にリセットされる。そして、図11のステップS48にて迂回経路が採用されなかった場合には、変数Ncountが1増加する(S112)。そして、変数Ncountが閾値NFよりも大きくなった場合(S113のYes)、配線処理を終了する。一方、図11のステップS45にて迂回経路が採用された場合には、変数Ncountが0にリセットされる(S114)。
【0036】
(変形例3)
予め再配置計算対象の分類を定め、再配置計算対象の分類に含まれる配線群の再配置計算が終了すると、処理を終了させても良い。そのためには、図6に示した処理に代えて図12に基づいて処理を行う。図12に示す処理では、再配置計算を行う前に(例えば図12のS121)再配置計算対象の分類を設定する。ここでは、何本の使用配線の分類に属する配線群までが再配線出来る可能性を持っているのかを式(5)および式(6)により計算する。
【数1】
ここで、Riは、横方向の配線から成る配線群であり、使用配線の本数がi本である配線群の数を表す。また、Ciは、縦方向の配線群であり、使用配線の本数がi本である配線群の数を表す。プロセッサエレメント11は、式(5)および式(6)の両方を満たすように再配線対象分類の最大使用配線数Jを求める。
【0037】
配線群の中で、レイアウトに使用されている配線がi本の縦方向の配線である場合、迂回配線として横方向の配線を2×i本と縦方向の配線i本が必要である。また、レイアウトに使用されている配線がi本の横方向の配線である場合、迂回配線として横方向の配線をi本と縦方向の配線を2×i本が必要である。
【0038】
式(5)の左辺は、配線群内のレイアウトに使用されている配線が1〜J本であると分類された配線群に含まれる配線を全て迂回させるときに必要な横方向の配線の本数を表している。式(5)の右辺は、配線群内のレイアウトに使用されている配線が(J+1)本〜n本であると分類された配線群に含まれるレイアウトに使用されていない横方向の配線の合計本数を表している。つまり、式(5)では、配線群内のレイアウトに使用されている配線が1〜J本であると分類された配線群に含まれる配線を全て迂回させる場合に、迂回先となる横方向の配線が足りるか否かを検証している。
【0039】
同様に、式(6)では、配線群内のレイアウトに使用されている配線が1〜J本であると分類された配線群に含まれる配線を全て迂回させる場合に、迂回先となる縦方向の配線が足りるか否かを検証している。そして、式(5)および式(6)を満たすJを探索し、レイアウトに使用されている配線が1〜J本の配線群を配線迂回の候補とする。
【0040】
このような変形例を用いることによって、再配線の処理にかかる時間を短縮し、より短時間で配線経路を得ることができる。なお、変形例1〜3は複数を組み合わせて使用しても良い。
【0041】
以上説明したように、本発明の実施形態やその変形例の構成をとることで、要求周波数を満たしながら、レイアウトに使用される配線が無い配線群の数ができるだけ多くなるよう配線することができる。使用されない配線群の電源はOFFにすることができるため、消費電力を削減することができる。
【0042】
なお、上記実施形態に限定されることはなく、本発明の要旨を逸脱しない範囲において、適宜変更しても良い。
【符号の説明】
【0043】
1…PC、 10…プロセッサ、 11…プロセッサエレメント、 12…キャッシュ、 20…メインメモリー、 30…ハードディスク、 40…入出力装置、 21…N型MOSFET、 22…P型MOSFET、 23…メモリー、 24,25,26…インバータ、 27,28,29…トランジスタ
【特許請求の範囲】
【請求項1】
所定の動作周波数を満たすように第1の配線を求め、
前記所定の動作周波数と前記第1の配線のクリティカルパスとを用いて最大迂回配線長を算出し、
集積回路の配線を複数の群に分けた場合に、配線群に含まれる前記第1の配線を、前記第1の配線を含む他の配線群内の配線を用いて迂回することで第2の配線を求め、
前記第2の配線と前記第1の配線との差分が前記最大迂回配線長以下ならば、前記第2の配線によって前記第1の配線を更新し、前記第2の配線と前記第1の配線の差分が前記最大迂回配線長よりも大きければ、前記第1の配線を更新しないことを特徴とする集積回路の配線方法。
【請求項2】
前記最大迂回配線長が集積回路の論理ブロック2辺分の長さよりも短い場合には、迂回経路を求める処理を行わずに、前記第1の配線を更新しないことを特徴とする請求項1に記載の集積回路の配線方法。
【請求項3】
前記迂回経路を再配線された配線として採用した場合に、前記第2の配線と前記第1の配線の差分を用いて前記最大迂回配線長を更新し、更新された最大迂回配線長が集積回路の論理ブロック2辺分の長さよりも長い場合には、前記第1の配線群とは異なる第2の配線群に対して迂回経路の算出を行うことを特徴とする請求項1または2に記載の集積回路の配線方法。
【請求項4】
前記迂回経路を再配線された配線として採用した場合に、前記迂回経路と前記第1の配線の差分を用いて前記最大迂回配線長を更新し、更新された最大迂回配線長が集積回路の論理ブロック2辺分の長さよりも短い場合には、再配線された配線のクリティカルパスを算出し、前記所定の動作周波数と前記再配線された配線のクリティカルパスとを用いて最大迂回配線長を更新し、更新された最大迂回配線長が集積回路の論理ブロック2辺分の長さよりも長い場合には、前記第1の配線群とは異なる第2の配線群に対して迂回経路の算出を行うことを特徴とする請求項1乃至3のいずれかに記載の集積回路の配線方法。
【請求項5】
前記迂回経路の算出は、前記第1の配線に使用されていない配線が1以上であって他の配線群よりも少ない本数である配線群を前記第1の配線群として迂回経路の算出を行う処理であって、前記第1の配線群で前記第1の配線に使用されていない配線の本数をIとしたときに、前記最大迂回配線長が集積回路の論理ブロック2辺分のI倍である場合には、前記迂回経路の算出処理を行わずに配線処理を終了することを特徴とする請求項1乃至4のいずれかに記載の集積回路の配線方法。
【請求項6】
前記第2の配線と前記第1の配線の差分が前記最大迂回配線長よりも大きく、前記第1の配線を更新しない状態が生じた回数をカウントし、この回数が所定の回数を上回ると、配線処理を終了することを特徴とする請求項1乃至5のいずれかに記載の集積回路の配線方法。
【請求項7】
前記迂回経路の算出を行う配線群を予め設定し、この中の1つの配線群を前記第1の配線群として迂回経路の算出を行う請求項1乃至6のいずれかに記載の集積回路の配線方法。
【請求項8】
コンピュータに、
所定の動作周波数を満たすように第1の配線を算出する手段と、
前記所定の動作周波数と前記第1の配線のクリティカルパスとを用いて最大迂回配線長を算出する手段と、
集積回路の配線を複数の群に分けた場合に、配線群に含まれる第一の配線を、第1の配線を含む他の配線群内の配線を用いて迂回させることで第2の配線を算出する手段と、
前記第2の配線と前記第1の配線との差分が前記最大迂回配線長以下ならば、前記第2の配線によって前記第1の配線を更新し、前記第2の配線と前記第1の配線の差分が前記最大迂回配線長よりも大きければ、前記第1の配線を更新しない手段とを実行させることを特徴とする集積回路の配線プログラム。
【請求項9】
請求項8に記載の集積回路の配線プログラムを記録したコンピュータ読み取り可能な記憶媒体。
【請求項1】
所定の動作周波数を満たすように第1の配線を求め、
前記所定の動作周波数と前記第1の配線のクリティカルパスとを用いて最大迂回配線長を算出し、
集積回路の配線を複数の群に分けた場合に、配線群に含まれる前記第1の配線を、前記第1の配線を含む他の配線群内の配線を用いて迂回することで第2の配線を求め、
前記第2の配線と前記第1の配線との差分が前記最大迂回配線長以下ならば、前記第2の配線によって前記第1の配線を更新し、前記第2の配線と前記第1の配線の差分が前記最大迂回配線長よりも大きければ、前記第1の配線を更新しないことを特徴とする集積回路の配線方法。
【請求項2】
前記最大迂回配線長が集積回路の論理ブロック2辺分の長さよりも短い場合には、迂回経路を求める処理を行わずに、前記第1の配線を更新しないことを特徴とする請求項1に記載の集積回路の配線方法。
【請求項3】
前記迂回経路を再配線された配線として採用した場合に、前記第2の配線と前記第1の配線の差分を用いて前記最大迂回配線長を更新し、更新された最大迂回配線長が集積回路の論理ブロック2辺分の長さよりも長い場合には、前記第1の配線群とは異なる第2の配線群に対して迂回経路の算出を行うことを特徴とする請求項1または2に記載の集積回路の配線方法。
【請求項4】
前記迂回経路を再配線された配線として採用した場合に、前記迂回経路と前記第1の配線の差分を用いて前記最大迂回配線長を更新し、更新された最大迂回配線長が集積回路の論理ブロック2辺分の長さよりも短い場合には、再配線された配線のクリティカルパスを算出し、前記所定の動作周波数と前記再配線された配線のクリティカルパスとを用いて最大迂回配線長を更新し、更新された最大迂回配線長が集積回路の論理ブロック2辺分の長さよりも長い場合には、前記第1の配線群とは異なる第2の配線群に対して迂回経路の算出を行うことを特徴とする請求項1乃至3のいずれかに記載の集積回路の配線方法。
【請求項5】
前記迂回経路の算出は、前記第1の配線に使用されていない配線が1以上であって他の配線群よりも少ない本数である配線群を前記第1の配線群として迂回経路の算出を行う処理であって、前記第1の配線群で前記第1の配線に使用されていない配線の本数をIとしたときに、前記最大迂回配線長が集積回路の論理ブロック2辺分のI倍である場合には、前記迂回経路の算出処理を行わずに配線処理を終了することを特徴とする請求項1乃至4のいずれかに記載の集積回路の配線方法。
【請求項6】
前記第2の配線と前記第1の配線の差分が前記最大迂回配線長よりも大きく、前記第1の配線を更新しない状態が生じた回数をカウントし、この回数が所定の回数を上回ると、配線処理を終了することを特徴とする請求項1乃至5のいずれかに記載の集積回路の配線方法。
【請求項7】
前記迂回経路の算出を行う配線群を予め設定し、この中の1つの配線群を前記第1の配線群として迂回経路の算出を行う請求項1乃至6のいずれかに記載の集積回路の配線方法。
【請求項8】
コンピュータに、
所定の動作周波数を満たすように第1の配線を算出する手段と、
前記所定の動作周波数と前記第1の配線のクリティカルパスとを用いて最大迂回配線長を算出する手段と、
集積回路の配線を複数の群に分けた場合に、配線群に含まれる第一の配線を、第1の配線を含む他の配線群内の配線を用いて迂回させることで第2の配線を算出する手段と、
前記第2の配線と前記第1の配線との差分が前記最大迂回配線長以下ならば、前記第2の配線によって前記第1の配線を更新し、前記第2の配線と前記第1の配線の差分が前記最大迂回配線長よりも大きければ、前記第1の配線を更新しない手段とを実行させることを特徴とする集積回路の配線プログラム。
【請求項9】
請求項8に記載の集積回路の配線プログラムを記録したコンピュータ読み取り可能な記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2013−45294(P2013−45294A)
【公開日】平成25年3月4日(2013.3.4)
【国際特許分類】
【出願番号】特願2011−182833(P2011−182833)
【出願日】平成23年8月24日(2011.8.24)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
【公開日】平成25年3月4日(2013.3.4)
【国際特許分類】
【出願日】平成23年8月24日(2011.8.24)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
[ Back to top ]