JP5401256B2 - 半導体装置の設計方法 - Google Patents

半導体装置の設計方法 Download PDF

Info

Publication number
JP5401256B2
JP5401256B2 JP2009239619A JP2009239619A JP5401256B2 JP 5401256 B2 JP5401256 B2 JP 5401256B2 JP 2009239619 A JP2009239619 A JP 2009239619A JP 2009239619 A JP2009239619 A JP 2009239619A JP 5401256 B2 JP5401256 B2 JP 5401256B2
Authority
JP
Japan
Prior art keywords
semiconductor device
designing
flip
seed
objective function
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
JP2009239619A
Other languages
English (en)
Other versions
JP2011086189A (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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2009239619A priority Critical patent/JP5401256B2/ja
Priority to US12/906,117 priority patent/US20110093827A1/en
Publication of JP2011086189A publication Critical patent/JP2011086189A/ja
Application granted granted Critical
Publication of JP5401256B2 publication Critical patent/JP5401256B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3315Design verification, e.g. functional simulation or model checking using static timing analysis [STA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Architecture (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は、半導体装置の設計方法に関し、特に、全体のレイアウトを分割して自動レイアウトする際の分割方式として適用して有効な技術に関する。
例えば、特許文献1には、概略配線処理の後に配線領域を分割し、各分割配線領域の詳細配線処理を並列で行う際に、この各分割配線領域の詳細配線処理時間を均等化する方法が示されている。具体的には、概略格子毎の配線負荷が算出され、プロセッサ数と同数に設定した複数の種を起点として、それぞれの周囲から、統合した際の詳細配線負荷増分が少なくなる概略格子を逐次選択して統合していく処理が行われる。また、概略格子毎の配線負荷は、対象とする概略格子内に含まれる配線数、配線禁止量、ならびに格子形状の歪み率に基づいて定められる。
特開平6−348784号公報
例えば、大規模な半導体チップの実装方法として、階層レイアウト手法が知られている。図29は、一般的な階層レイアウト手法の一例を説明するものであり、(a)はその処理の流れを示すフロー図、(b)は入力となる設計データの論理階層図、(c)は出力となるレイアウトを示す概略図である。まず、入力として図29(b)に示すような、論理階層構造のネットリストデータが与えられる。図29(b)の例では、回路全体となる最上位階層TOPが3個のブロックBLK_A〜BLK_Cからなる下位下層に分割され、BLK_Cが更に2個のブロックBLK_D,BLK_Eからなる下位下層に分割されている。ここで、各ブロックは、機能的な単位の固まりとなっている。
このような入力データを用いてレイアウト設計を行う場合、通常、まず仮配置(フロアプラン)により、図29(b)の論理構造に基づいて各ブロックの概略的な配置や各ブロック間の概略的な配線が行われる(S2901)。その後、この各ブロックを分割単位とした並列処理によって、各ブロック内の概略的な回路配置や回路間配線が定められる(S2902,S2903)。次いで、回路全体に対して適宜配置調整や最適化が行われた後(S2904)、クロック設計が行われる(S2905)。その後、再度、各ブロックを分割単位とした並列処理によって、各ブロック内の詳細な回路配置や回路間配線が定められ、更に各ブロック間の詳細な配線も定められる(S2906,S2907)。その結果、図29(c)に示すように、図29(b)の論理階層構造に対応したレイアウトが得られることになる。
このように、階層レイアウト手法では、通常、論理階層すなわち半導体チップ内での機能的な単位を区切りとするブロックに基づいてデータ分割が行われ、分割された各データを並列処理単位としてコンピュータシステムによる自動レイアウトが行われる。しかしながら、この場合、半導体チップ全体から見ると、各ブロック毎の論理的なサイズ(セル数およびネット数)が不均一となる可能性が高く、それぞれの処理データ量も不均一となり、全体的なレイアウト処理時間の増大を招く恐れがある。
一方、例えば、次の(A)、(B)を指標としてブロック単位への分割を行うことが考えられる。(A)各ブロックが均一なゲート数(セル面積)ならびにブロック面積となるように分割する。(B)各ブロックのインタフェースピンが同じ数となるように分割する。このような分割を行い、各ブロックを均一な処理データ量にすることにより、各ブロック毎のレイアウト処理時間の均一化と全体的なレイアウト処理時間の短縮が期待される。しかしながら、この場合においても、各ブロック毎のタイミング収束の難易度などが異なるため、全体的なレイアウト処理時間の増大を招く恐れがある。すなわち、各ブロックは、半導体チップ全体のタイミング制約(SDC)をブロック単位に分割(budget)したタイミング制約に基づいて、この制約を満たすようにレイアウトが定められるが、例えば各ブロック毎の動作周波数が異なると、タイミング制約の難易度も異なり、最上位階層での最適化に要する時間を含めて全体的なレイアウト処理時間の予測が困難となる。
図25(a)は、一般的なマイクロコンピュータの構成例を示すブロック図であり、(b)は(a)の論理階層例を示す図、(c)は(a)の論理規模の一例を示す図である。図25(a)に示すマイクロコンピュータは、演算処理ブロックCPU、DMA(Direct Memory Access)制御ブロックDMAC、揮発性メモリブロックRAM、不揮発性メモリブロックROM、タイマブロックTMR、アナログ・ディジタル変換ブロックA/D、外部ポート制御ブロックI/Oと、2本のバスBSh,BSlを備えている。BShは100MHzで動作し、BSlは50MHzで動作する。CPU,TMR,A/Dは、BSlにのみ接続され、それ以外は、BShとBSlの両方に接続され、モード設定に応じて100MHz動作と50MHz動作が可能なように構成されている。
このようなマイクロコンピュータは、論理的(機能的)には、例えば図25(b)のように分類され、この分類に基づいてネットリスト(回路図データ)などが管理される。ここでは、最上位階層TOPが、CPU、I/O、メモリMEM、DMAC、周辺モジュールPERIからなる下位下層に分割され、MEMがRAMとROMからなる下位下層に分割され、PERIがTMRとA/Dからなる下位下層に分割されている。TOP自体には、例えば、BSh,BSl等が含まれる。各ブロックの論理規模は、図25(c)に示すように、例えばCPUが最も大きい200kゲートであり、RAM,ROMのそれぞれが最も小さい20kゲートとなっている。ただし、RAM,ROMの論理規模は、ハードマクロ(すなわち、各メモリコア部分RAM_CR,ROM_CR)を除くランダムゲート部(制御回路)の論理規模を示している。
図26(a)は、図25(a)のマイクロコンピュータのフロアプラン例を示す概略図であり、(b)は(a)の各ブロックに対して自動レイアウト処理を行った際の処理時間の一例を示す図である。図26(a)に示すように、マイクロコンピュータ内の各ブロックの面積は、基本的には、図25(c)に示した論理規模に対応した大きさとなる。イタリックで示したブロックは最大周波数100MHzで動作し、その他は50MHzである。ここで、論理規模の観点からはCPUに対するレイアウト処理時間が最も長くなることが予想されるが、実際には、図26(b)に示すにように、論理規模がCPUの半分以下(80kゲート)であるDMACのレイアウト処理時間が最も長く、CPUの2倍程度を要している。これは、DMACの動作周波数が高いため、特にタイミング違反が生じないレイアウトを探索するのに時間を要しているためである。なお、TMRやA/Dは、論理規模が小さく周波数も低いため、そのレイアウト処理時間はDMACの1/4未満となっている。
このように各ブロック毎のレイアウト処理時間がばらつくと、全体的なレイアウト処理時間も増大し、設計期間の増大を招いてしまう。そこで、例えば、特許文献1のように、半導体チップ全体をCPU数と同数に分割し、かつ各分割ブロック毎の配線数等が均一となるようにその分割境界を設定する方式が考えられる。しかしながら、この方式では、前述したように、配線数のみならず当該配線の動作周波数等によっても処理時間の不均一化が生じるため、最適な分割が行われない恐れがある。さらに、この方式は、詳細配線におけるレイアウト処理時間の均一化を目的としたものであるが、別の観点として半導体装置のレイアウト設計を全体から見渡した場合に、この詳細配線における処理時間の均一化のみではレイアウト設計を十分に最適化することができない。
すなわち、特許文献1を代表とする従来のレイアウト方式は、予め概略的なレイアウトが決まった状態で、その概略的なレイアウトを例えばCPU数と同数に分割した後に詳細なレイアウトを行うことで、全体的なレイアウト処理時間を短縮するというものである。しかしながら、そもそも、その概略的なレイアウト自体が、半導体装置の設計を全体から見渡した場合に最適であるとは限らない。具体的には、例えば特許文献1のような方式は、図26(a)のように、各ブロックの配置が定まっており、かつ各ブロック内の回路配置もある程度定まっていることを前提として、その後の詳細配線の処理時間が均一となる分割境界線を定めることが目的である。ただし、その前提となる各ブロック内の概略的な回路配置や、さらには各ブロックの配置自体が不均一であれば、仮にレイアウト処理時間のみが均一化されても、設計全体から見た場合の最適化は図れない。例えば、この不均一性に伴う問題として、電力が大きい回路が集中することによる局所的な電源電圧降下や、同時に動作する回路が集中することによる同時切り替えノイズの増加等が挙げられる。
また、近年では、図27に示すように、3次元スタックによる積層レイアウトが行われる場合がある。図27(a)は、積層チップの構成例を示す概略図であり、(b)は(a)の論理階層例を示す図である。図27(a)においては、2個の半導体チップCP1,CP2が積層搭載され、各半導体チップが複数のビア(TSV:Through Silicon Via)によって接続されている。CP1には複数の回路ブロックBLK_A,BLK_Bが実装され、CP2にも複数の回路ブロックBLK_C,BLK_Dが実装され、これらの回路ブロックが一体となって一つの半導体装置が構成される。
このような積層レイアウトを行う場合、通常、各回路ブロックBLK_A〜BLK_Dを機能単位とし、例えば、類似した機能が1個の半導体チップに含まれるように各半導体チップに各回路ブロックが適宜振り分けられる。図28は、図27の積層チップのレイアウト結果から得られる指標の一例を示すものであり、(a)は各チップ毎のレイアウト処理時間を示す説明図、(b)は各チップ毎の消費電力を示す説明図である。図28(a)では、BLK_A,BLK_BがBLK_C,BLK_Dに比べて論理規模が大きく、あるいはレイアウトの複雑度が高く、これに伴いCP1とCP2のレイアウト処理時間が大きく乖離している。また、図28(b)では、BLK_Dが他の回路ブロックに比べて消費電力が非常に大きく、これに伴いCP1とCP2の消費電力が大きく乖離している。
ここで、半導体装置の設計を全体として見た場合、各半導体チップ毎のレイアウト処理時間が均一となり、加えて、消費電力やノイズ等も均一化されることが望ましい。特に、積層レイアウトの場合には、設計が進んだ段階で不均一に伴う不具合が発生すると、設計戻りに伴う損失が大きいため、早い段階で均一なレイアウト設計を実現する必要がある。この不均一性の問題は、勿論、積層レイアウトに限らず一つの半導体チップに対するレイアウトでも同様であり、一つの半導体チップ内において、各回路ブロック毎のレイアウト処理時間が均一となり、加えて、消費電力やノイズ等も均一化されることが望ましい。ただし、実際には、トレードオフの関係も存在するため、その最適解を得る仕組みが必要となる。
本発明は、このようなことを鑑みてなされたものであり、その目的の一つは、最適なレイアウト設計を実現可能な半導体装置の設計方法を提供することにある。本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的な実施の形態の概要を簡単に説明すれば、次のとおりである。
本実施の形態による半導体装置の設計方法は、タイミング収束を加味したレイアウト処理時間の長さや、電力の大きさや、ノイズの大きさ等の関数であり、レイアウトの総合的な複雑度を表す目的関数を定義し、コンピュータシステムによって、各ブロック毎の目的関数の値が所定の基準値を目処に均一となるように最上位階層での全体回路をN個のブロックに割り当てるものとなっている。
これによって、レイアウト処理時間ならびに品質を含めて総合的に均一化された複数の分割ブロックが得られる。したがって、この結果に基づいて各分割ブロックを並列処理でレイアウトすることで、レイアウト処理時間の短縮が可能となり、更に、この結果に基づいてフロアプランならびに複数の半導体チップへの振り分けを行うことで、半導体装置の品質やレイアウト処理時間を含めて最適化が図れる。このようなことから、総合的な観点でレイアウト設計の最適化が実現可能になる。
また、本実施の形態による半導体装置の設計方法は、更に、前述した基準値に、N個のブロック以外の回路となる最上位階層に残存した回路の複雑度(例えばタイミングパス数)を反映してトータルコストを算出し、この基準値を増加させつつNの値を段階的に減少させながら、各Nの値毎のトータルコストを算出するものとなっている。これによって、トータルコストが最良となるNの値ならびにそれに伴う各ブロックの境界が得られる。すなわち、分割ブロックの数自体に関しても最適な解を探索することが可能となる。
また、前述した半導体装置の設計方法は、より具体的には、回路全体のネットリストおよびタイミング情報、また場合によってはフロアプラン情報も入力とし、まず、回路全体の中からフリップフロップ回路となる複数のシードを設定する。次いで、第1段階のトレース処理として、複数のシード毎に、各シードの有効範囲を、目的関数の値が各シードの有効範囲の間で均一となるように段階的に拡大させていく。この拡大の際には、複数のシード毎に、自身の前段または後段に接続されたフリップフロップを順次に取り込む形で拡大させていく。そして、この拡大の過程で第1条件に達したシードをサブグラフとし、サブグラフに達していない残存シードの数が第1の割合に減少するまでトレース処理を継続する。続いて、第1段階のマージ処理として、残存シードの数とサブグラフの数の合計値が第2の割合に減少するまでサブグラフを適宜統合する。次いで、残存シードのそれぞれとサブグラフのそれぞれを分割単位として、この分割単位で分割を行った際のトータルコストを、残存シードにもサブフラグにも属していない回路のタイミングパス数等を加味して算出する。以降、このトータルコストが前段階のトータルコストより改善する限り、第1段階と同様にして、第2段階のトレース処理およびマージ処理、第3段階のトレース処理およびマージ処理、…を繰り返す。
このように、予め複数のシードを設定し、各シードの有効範囲を除々に拡大させつつサブグラフ化したシードを適宜統合し、これによって全体としての分割数を段階的に減らしながらトータルコストの改善有無を検証することで、最適な分割数を効率的に求めることが可能となる。なお、前述した第1条件に達したシードとは、当該シードの有効範囲の外周全てが他のシードの有効範囲と接触し、それ以上拡大することができなくなったシードや、あるいは、ネットリストが階層ブロックで管理されている場合において、当該シードの有効範囲の外周全てが、当該シードが属する階層ブロックの境界に達したシードである。
本願において開示される発明のうち、代表的な実施の形態によって得られる効果を簡単に説明すると、レイアウト設計の最適化が実現可能になる。
本発明の実施の形態1による半導体装置の設計方法において、その処理内容の一例を示すフロー図である。 図1のフローに伴う処理対象の推移の一例を表す模式図である。 (a)〜(c)は、図1の設計方法を用いることによる効果の一例を示す概念図である。 図1の設計方法において、そのシードの選択方法の一例を説明する図である。 図1の設計方法において、そのシードの選択方法の一例を説明する図である。 図1の設計方法において、そのトレース時に使用する目的関数に含まれるレイアウト処理コストの内容を説明する図である。 図1の設計方法において、そのトレース時に使用する目的関数に含まれるレイアウト処理コストの内容を説明する図である。 図1の設計方法において、そのトレース時に使用する目的関数に含まれるレイアウト処理コストの内容を説明する図である。 図1の設計方法において、そのトレース時に使用する目的関数に含まれるレイアウト処理コストの内容を説明する図である。 図1の設計方法において、そのトレース時に使用する目的関数に含まれるレイアウト処理コストの内容を説明する図である。 図1の設計方法において、設計対象となる半導体装置が複数モードを持つ場合での目的関数の算出方法の一例を示す説明図である。 図1の設計方法において、そのトレース時のノードの拡大方法の概要を示す説明図である。 図1の設計方法において、そのトレース時のノードの拡大方法の概要を示す他の説明図である。 図12および図13におけるノードの拡大の過程でノードが接した場合の処理方法の一例を示す概念図であり、(a)はフラット階層の場合、(b)は論理階層保持の場合を示すものである。 図12および図13におけるノードの拡大の過程でノードが接した場合の境界の決め方の一例を示す説明図である。 図1の設計方法において、そのトレース過程での目的関数の変化の一例を示す概念図である。 図1の設計方法において、そのトレース時に生成するトレースグラフの一例を示す概念図である。 図1の設計方法において、そのマージ時に生成するマージグラフの一例を示す概念図である。 図1の設計方法において、そのトータルコスト計算に関する説明図である。 本発明の実施の形態3による半導体装置の設計方法において、その処理内容の一例を示すフロー図である。 図20のフローに伴う処理対象の推移の一例を表す模式図である。 図21の推移に伴うマージグラフおよびトレースグラフの一例を表す説明図である。 図20のフローに伴う処理対象の他の推移の一例を表す模式図である。 図23に続く模式図である。 (a)は、一般的なマイクロコンピュータの構成例を示すブロック図であり、(b)は(a)の論理階層例を示す図、(c)は(a)の論理規模の一例を示す図である。 (a)は、図25(a)のマイクロコンピュータのフロアプラン例を示す概略図であり、(b)は(a)の各ブロックに対して自動レイアウト処理を行った際の処理時間の一例を示す図である。 (a)は、積層チップの構成例を示す概略図であり、(b)は(a)の論理階層例を示す図である。 図27の積層チップのレイアウト結果から得られる指標の一例を示すものであり、(a)は各チップ毎のレイアウト処理時間を示す説明図、(b)は各チップ毎の消費電力を示す説明図である。 一般的な階層レイアウト手法の一例を説明するものであり、(a)はその処理の流れを示すフロー図、(b)は入力となる設計データの論理階層図、(c)は出力となるレイアウトを示す概略図である。
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施の形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。
さらに、以下の実施の形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
(実施の形態1)
図1は、本発明の実施の形態1による半導体装置の設計方法において、その処理内容の一例を示すフロー図である。図1に示す半導体装置の設計方法は、ハードディスク等の記憶部に保持された入力データINDを受けて、コンピュータシステムによるプログラム処理を実行することで実現される。入力データINDには、ネットリストNLや、ネットリスト内に含まれる各セルのセル情報SLや、タイミング情報TMや、場合によってはフロアプラン情報FPが含まれる。
図1において、コンピュータシステムは、まず、ネットリストNLを参照し、その中からP個のシードを選択する(S101)。各シードは、フリップフロップである。次いで、基準値NI=Pとした後(S102)、トレースを行う(S103)。トレースでは、ネットリストNLを参照し、各シードを起点としてそれぞれ前段または後段に接続されたフリップフロップを取り込むことで各シードの有効範囲(ノードと称す)を段階的に並行して拡大させる。この際には、ネットリストNL、セル情報SL、タイミング情報TMに基づいて目的関数を逐次計算しながら、各ノード毎の目的関数の値が均一となるように各ノードを拡大させる。目的関数は、詳細は後述するが、レイアウト処理時間の長さ、電力の大きさ、ノイズの大きさ等の関数であり、レイアウトの総合的な複雑度を表すものである。続いて、このトレースの過程でノード同士が接触した場合、このノード同士の統合可否を判定する。例えば、ネットリストNLや場合によってはフロアプラン情報FPからノード同士の関係が密であると判断され、また、統合した場合でも統合後の目的関数の値がその他のノードとある程度の均一性を保てる場合には統合(マージ)を行う(S104)。
次いで、コンピュータシステムは、マージが行われた後のノード数NがNI×Jよりも少なくなったかを判定する(S105)。Jは、0<J<1の中から予めユーザによって設定された定数である。S105の条件を満たさない場合には、再度、S103のトレースに移行する。一方、S105の条件を満たした場合には、基準値NI=Nとした後(S106)、トータルコストを計算する(S107)。このトータルコストの値が改善している間はS103に戻ってループ処理を繰り返し、トータルコストの値が悪化した場合にはループを抜け、前回ループ時のノード数Nを最適な分割数として定める(S108,S109)。
ここで、トータルコストは、各ノードを並列処理でレイアウトするものとして、各ノードの代表的な目的関数の値(例えば最大値または平均値等)に、各ノードに属していない回路部分(すなわち、最上位階層(トップ)に残存している回路)のコスト(タイミングパス数等)を加味して定められる。具体的には、例えば、式(1)で計算される。なお、式(1)におけるαは、ノード数Nに依存するオーバーヘッド係数であり、ノード数Nが大きいほど大きくなる。
トータルコスト=max(各ノードの目的関数の値)×α+トップコスト (1)
図2は、図1のフローに伴う処理対象の推移の一例を表す模式図である。図2に示すように、まず、初期状態として、回路全体の中から均一的にP個(ここでは16個)のシードSEDが選択され、図1のS103〜S108に対応する1回目のループ処理(トレースおよびマージ)が行われる。この1回目のマージによって、ノードNDEの数は、初期状態の16個から13個に減少する。以降同様にして、2回目のループ処理によってNDE数が10個に減少し、3回目のループ処理によってNDE数が7個に減少する。各ループ処理では、マージ後の状態に対するトータルコストが計算され、例えば、3回目のループ処理によってトータルコストが悪化した場合には、4回目以降のループ処理は行われず、2回目のループ処理におけるノード数(10個)が最適な分割数となり、各ノードNDEの境界が最適な分割ブロックの境界となる。
このように、本実施の形態1による半導体装置の設計方法は、レイアウトの総合的な複雑度が均一となり、かつ全体的なレイアウト処理時間が短くなる分割条件(分割数ならびに各分割ブロックの境界)を探索するものとなっている。ここでは、トレースを行うことで各分割ブロックの複雑度を均一に保ちつつ段階的に引き上げながら、これと並行してマージを行うことで分割数を段階的に引き下げ、各段階におけるトータルコストの算出によって全体的なレイアウト処理時間を検証している。
図3(a)〜(c)は、図1の設計方法を用いることによる効果の一例を示す概念図である。まず、図3(b)に示すように、論理階層に基づくブロックBLK_A〜BLK_Eを単位としてレイアウト設計を行った場合、各ブロックを、レイアウト処理時間、電力の大きさ、ノイズの大きさ、あるいは製造歩留まりを踏まえた総合的な指標で評価すると、大きなばらつきが生じる恐れがあった。一方、図1の設計方法を用いると、この総合的な指標が均一となる分割条件を得ることが可能となる。したがって、図3(a)に示すように、この分割条件に基づいたブロックBLK_F〜BLK_Iを単位としてレイアウト設計を行うことで、全体的なレイアウト処理時間が短縮できると共に、さらに、電力、ノイズ、製造歩留まりが均一化されることから、半導体装置の品質を向上させることが可能となる。具体的には、当該ブロックを単位として図29(a)における仮配置(フロアプラン)(S2901)やその後のデータ分割(S2902,S2906)を行う。
また、図3(c)に示すように、図1に基づいたブロックBLK_F〜BLK_Iを単位として各チップCP1,CP2に分割することで、積層チップ全体のレイアウト処理時間が短縮できると共に、さらに、電力、ノイズ、製造歩留まりが均一化されることから、積層チップの品質を向上させることが可能となる。なお、このようなチップ分割を行う場合、図1の設計方法により最適解として得られる分割数は様々となるが、各分割ブロックは前述した総合的な指標が均一であるため、半導体チップのサイズ等を加味して各分割ブロックを各チップに適宜振り分ければよい。
以下、図1のフローの詳細について説明する。
図4および図5は、図1の設計方法において、そのシードの選択方法(S101)の一例を説明する図である。まず、選択するシード数(フリップフロップ数)は、ある程度多い数とし、特に限定はされないが、例えば回路全体に含まれるフリップフロップ数の1/50程度(例えば全フリップフロップが350K個の場合は7K個)とする。さらに、各シードは、回路全体の中から均一的に選ばれることが望ましい。そこで、コンピュータシステムは、図4に示すように、ネットリストNLの論理階層を下位方向に探索していき、必要なシード数に見合った階層を定める。
すなわち、ネットリストの論理階層は、通常、最上位階層TOPが大きな機能単位となる複数のブロックBLK0[0]〜BLK0[n]からなる下位階層を備え、その各下位階層が、更に、比較的大きな機能単位となる複数のブロックからなる下位階層を備え、これが所定の階層分で継続する構造となっている。ここでは、例えば、BLK0[1]を下層に辿っていくと、ブロックBLKi[0]〜BLKi[m]が存在する。また、下層に位置する各ブロック(例えばBLKi[1])は、小さい機能単位となる複数のモジュール(例えばMD0[0]〜MD0[l])からなる下位階層を備え、その各下位階層が、更に、複数のモジュールからなる下位階層を備え、これが所定の階層分で継続する構造となっている。ここでは、例えば、MD0[1]を下層に辿っていくと、モジュールMDj[0]〜MDj[k]が存在する。そして、最下層のモジュール(例えばMDj[1])が、複数のフリップフロップ(例えばFF[0]〜FF[x])を含んで構成される。
したがって、コンピュータシステムは、例えば、ある同一階層に位置するモジュール数がシード数と同等であれば、その各モジュール内から一つずつシードを選択すればよい。また、過不足分は、例えば、一部のモジュールからシードを選択しなかったり、あるいは、特に回路規模が大きい一つのモジュール内から数個のシードを選択することなどで対応すればよい。これによって、回路全体の中から均一的にシードを選択することが可能となる。
さらに、この各モジュールからシードを選択する際にも、可能な限り各モジュールの中心付近に位置すると推定されるフリップフロップをシードとして選択することが望ましい。そこで、コンピュータシステムは、図5(a)に示すように、ネットリストNLを参照して、シードの選択対象となったモジュールにおける境界部分(すなわちモジュール外との入出力を行うフリップフロップ)を検出し、この境界部分から最も離れたフリップフロップをシードとして選択する。具体的には、境界部分に位置する各フリップフロップとの間のステージ数(フリップフロップ段数)(ここではSG1〜SG6の合計値)が最も大きくなるフリップフロップを探索し、それをシードとすればよい。なお、仮に一つのモジュールから数個のシードを選択する場合には、図5(b)に示すように、その各シード間のステージ数(ここではSG7〜SG9)も大きくなるように各シードを選択する。
このようにしてシードの選択が行われた後は、各シードを起点としたトレースが行われる。このトレースに際して、コンピュータシステムは、予め定義された目的関数に基づいて、各シードの有効範囲となる各ノード毎に、この目的関数の値が均一となるように各ノードを並行して拡大させる。ここで、目的関数Gは、前述したように、レイアウト処理時間の長さ(言い換えればレイアウト収束性の難易度)を表すコスト(RT)、電力の大きさを表すコスト(PW)、ノイズの大きさを表すコスト(NS)、製造性(製造歩留まり)を表すコスト(YE)を変数とする関数であり、例えば式(2)となる。式(2)において、β1〜β4は各変数に対する重み付けを行う係数であり、ユーザによって任意設定が可能な値である。
G=β1×RT+β2×PW+β3×NS+β4×YE (2)
以下、目的関数Gの詳細について説明する。
[A]電力コスト(PW)および製造性コスト(YE)
電力コスト(PW)は、部分的な電力集中により電源電圧降下が発生する可能性を表す指標であり、ここでは、この値が大きい程問題が生じるものとする。このPWの値は、例えば、セル情報SLから各セルの消費電力を取得し、ネットリストNLから対象とするノード内に含まれるセルを認識し、そのセルの消費電力の和によって定められる。ここで、セルの活性化率の情報があれば、それも加味する。また、ネットリストNLから各セルのファンアウトを認識し、このファンアウトに伴う配線容量を重みとして加える。次に、製造性コスト(YE)の値は、例えば、セル情報SLから各セルの製造歩留まり(Yield)を取得し、ネットリストNLから対象とするノード内に含まれるセルを認識し、そのセルの歩留まりの和によって定められる。ここでは、この値が大きい程問題が生じるものとする。
[B]レイアウト処理時間のコスト(RT)
レイアウト処理時間のコスト(RT)は、例えば、[1]Pin/Net、[2]フリップフロップに到達するクロック速度の和(CKSUM)、[3]エンドポイント数(EP)、[4]タイミングスラックの和(TPS)からなる4つの変数の関数によって定められる。図6〜図10は、図1の設計方法において、そのトレース(S103)時に使用する目的関数に含まれるレイアウト処理コストの内容を説明する図である。
まず、[1]Pin/Netは、ネットリストNLを参照して、対象とするノードに含まれるピン数とネット数(配線数)を検出することで得られ、通常、この値が大きいほどレイアウトの複雑度(難易度)が高く、これに伴いレイアウト処理時間が増大する。例えば、図6(a)には、Pin/Netが2.0の場合の回路例が示されており、図6(b)には、Pin/Netが3.0の場合の回路例が示されている。なお、この複雑度は、当該ノードの面積値によっても変化し、面積が大きいほど複雑度は下がる。したがって、仮にフロアプラン後のレイアウト設計に本実施の形態の設計方法を用いる場合は、フロアプラン情報FPによって概算面積値が判明するため、面積値を反映してPin/Netを補正した(Pin/Net)’を算出する。図6(c)の例では、面積に反比例する関数fにPin/Netを乗算することで、Pin/Netは共に2.0であるが、(Pin/Net)’は、面積値が100の場合に3.0となり、300の場合に1.0となる。
次に、[2]フリップフロップに到達するクロック速度の和(CKSUM)は、ネットリストNLならびにタイミング情報TMを参照して、対象とするノードに含まれるフリップフロップのクロック情報を認識することで得られる。このクロック速度の和が大きいほど、タイミング収束の難易度が高いと考えられ、これに伴いレイアウト処理時間が増大することになる。図7には、組み合わせ回路LOGを介して適宜接続された5個のフリップフロップFF1〜FF5が示されており、FF1〜FF3には、150MHzのクロックCLK1と100MHzのクロックCLK2が選択的に供給され、FF4,FF5には、CLK2と50MHzのクロックCLK3が選択的に供給されている。このような回路の場合、クロック速度の和(CKSUM)は、CLK1(150MHz)が3個のFFに、CLK2(100MHz)が5個のFFに、CLK3(50MHz)が2個のFFに供給されるため、CKSUM=150×3+100×5+50×2=1050となる。
なお、クロック速度の和(CKSUM)に伴う難易度は、より厳密には、図7の例における各組み合わせ回路LOGの論理段数によって変化するため、より望ましくは、ネットリストNLからこの論理段数を検出し、これをCKSUMに反映させるとよい。この場合、各FFに供給される周波数ごとのタイミングパスにおいて、各タイミングパスの論理段数の上限を関数とする。すなわち、図7において、FF1〜FF5に到達するクロック毎の論理段数が例えば下記の(括弧)内の値であったとする。例えばCLK1=FF1(10)とは、FF1がCLK1で動作する場合、10段の論理段数からなる組み合わせ回路LOGを介して信号が入力されることを意味する。
CLK1=FF1(10),FF2(15),FF3(15)
CLK2=FF1(25),FF2(30),FF3(30),FF4(40),FF5(40)
CLK3=FF4(40),FF5(40)
このような論理段数を反映させた場合、基準の論理段数の際に値が1となり、基準の論理段数より多いほど値が1より増大し、基準の論理段数に満たない場合は値が1より小さくなる関数fを用いて、クロック速度の和(CKSUM)’は、例えば以下のように計算される。
150MHz×(f(10)+f(15)+f(15)=3.4)=510
100MHz×(f(25)+f(30)+f(30)+f(40)+f(40)=5.3)=515
50MHz×(f(40)+f(40)=0.8)=40
(CKSUM)’=510+515+40=1065
続いて、[3]エンドポイント数(EP)は、ネットリストNLを参照して、対象とするノードに含まれる各フリップフロップ毎のエンドポイント数を認識することで得られる。このエンドポイント数(EP)が大きいほど、レイアウトの難易度が高いと考えられ、これに伴いレイアウト処理時間が増大することになる。図8には、組み合わせ回路LOGを介して適宜接続された5個のフリップフロップFF1〜FF5と、同様にLOGを介して適宜接続された3個のフリップフロップFF6〜FF8が示されている。FF1は、FF2〜FF5となる4個のエンドポイントを持ち、FF6は、FF7,FF8となる2個のエンドポイントを持っている。したがって、例えばFF1とFF6に着目した場合、エンドポイント数(EP)は、例えばその平均値を求めて3となる。
次いで、[4]タイミングスラックの和(TPS)は、ネットリストNLならびにタイミング情報TMを参照して、対象とするノードに含まれる各タイミングパスと、各タイミングパスに対するSTA(静的タイミング検証)の結果を認識することで得られる。STAの結果は、予め回路設計段階で得られ、タイミング情報TMとして保存されている。このタイミングスラックの和(TPS)が大きいほど、タイミング収束の難易度が高く、これに伴いレイアウト処理時間が増大することになる。
図9には、5個のフリップフロップFF1〜FF5が示されている。FF1とFF5間には、組み合わせ回路LOGを介してタイミングパスPH_Aが存在し、同様に、FF1とFF2間、FF1とFF3間、FF1とFF4間にも、それぞれ、タイミングパスPH_B、PH_C、PH_Dが存在している。ここでSTA(静的タイミング検証)により、PH_A、PH_B、PH_C、PH_Dの伝送時間が例えば12ns、11.5ns、11ns、8nsであったとする。各タイミングパスのターゲットを10ns周期(100MHz)とした場合、PH_A、PH_B、PH_C、PH_Dのタイミングスラック値は、それぞれ、+2ns、+1.5ns、+1.0ns、−2.0nsとなる。したがって、タイミングスラックの和(TPS)は、これらを合計して+2.5nsとなる。
以上のような、[1]Pin/Net、[2]クロック速度の和(CKSUM)、[3]エンドポイント数(EP)、[4]タイミングスラックの和(TPS)からなる4つの変数の関数によってレイアウト処理時間のコスト(RT)が算出される。具体的には、例えば式(3)のように、各変数がγ1〜γ4によって重み付けされ、RTが算出される。
RT=γ1×(Pin/Net)+γ2×CKSUM+γ3×EP+γ4×TPS (3)
[C]ノイズコスト(NS)
ノイズコスト(NS)は、部分的な同時切り替えノイズの発生によりチップ性能が劣化する可能性を表す指標であり、ここでは、この値が大きい程問題が生じるものとする。このNSの値は、例えば、ネットリストNLを参照して、同一のクロックでトリガされるフリップフロップの数を検出することで算出される。また、その中でも特に、同一のクロックゲーティングセルのファンアウトとなっているフリップフロップの数を検出することで算出される。
図10には、クロック生成回路PLLからのクロックCLKが直接供給されるフリップフロップ群FF_G3と、クロックゲーティングセルCG1を介して供給されるフリップフロップ群FF_G1と、クロックゲーティングセルCG2を介して供給されるフリップフロップ群FF_G2が示されている。CG1は、イネーブル信号EN1に応じてCLKの供給・遮断を制御し、CG2は、イネーブル信号EN2に応じてCLKの供給・遮断を制御する。このように、CG1のファンアウトになっているFF_G1や、CG2のファンアウトになっているFF_G2は、各グループ内の各フリップフロップが、通常、配置的に近接して置かれるためスキューが小さくなり、同時切り替えノイズが大きくなる。したがって、同一クロックでトリガされるフリップフロップの中でも特にクロックゲーティングセルのファンアウトとなっているフリップフロップ数に対して重み付けを行ってノイズコスト(NS)を算出することが望ましい。
以上、[A]〜[C]のようにして、式(2)に示した目的関数Gが算出される。ここで、設計対象とする半導体装置が、例えば、複数モードのタイミング制約を持っていたとする。すなわち、例えば、設計対象となる半導体装置が、ある周波数で動作するモードと他の周波数で動作するモードを持つような場合である。図11は、図1の設計方法において、設計対象となる半導体装置が複数モードを持つ場合での目的関数の算出方法の一例を示す説明図である。
図11に示すように、ここでは2種類のモード(モード1、モード2)を持つものとし、あるノードNDEにおけるフォルスパスの箇所がモード毎に異なるものとし、当該ノードNDEの目的関数Gの値は、モード1の場合に100であり、モード2の場合に200であったとする。この場合、NDEの目的関数Gの値は、例えばこの2つのモードの目的関数の合計値とする。このように各モードの合計値に基づいてトレースを行うことで、複数のモードを加味した上で総合的にレイアウトの均一化を図ることができ、レイアウト設計の最適化が図れる。なお、ここでは、合計値を用いたが、平均値等を用いても同様の効果が得られる。
以上にようにして算出した目的関数Gを用いて、コンピュータシステムは、各ノード毎の目的関数Gの値が均一となるように、各ノードを並行して拡大させていく。図12は、図1の設計方法において、そのトレース(S103)時のノードの拡大方法の概要を示す説明図である。図12に示すように図1のS101で選択した各シードを起点として、それぞれのロジックコーンをトレースし(すなわち前段または後段に接続されるフリップフロップを1段ずつ取り込んでいき)、各シードの有効範囲となるノードに含まれる論理を段階的に増やしていく。
図13は、図1の設計方法において、そのトレース(S103)時のノードの拡大方法の概要を示す他の説明図である。図13に示すように、前述したロジックコーンのトレースは、データパスDPのみを対象とし、リセットラインおよびスキャンイネーブルライン等は、ファンアウトが膨大となるケースが考えられるため対象外とする。また、トレースには、後段のフリップフロップFFに向けた順方向トレースと、前段のFFに向けた逆方向トレースの2種類が存在する。あるノードNDEから1段分のFFをトレースした結果、複数のFFがピックアップされるが、他のノードに含まれていないFFのみ当該ノードに組み入れる。
ここで、図12および図13に示したトレースは、基本的には他のノードに接した時点で終了となるが、論理階層を持たないフラット階層でトレースを行う場合と、論理階層を維持したままトレースを行う場合とで終了条件が異なる。すなわち、トレースを行う場合、レイアウト品質のみに着目すると、フラット階層から分割ブロックを定めることが望ましいが、レイアウト後の可読性等を考慮すると、論理階層を維持したまま分割ブロックを定める方が望ましい場合もある。本実施の形態による設計方法は、このいずれの場合にも適用でき、論理階層を維持する場合に適用する際には、更に2通りのケースがある。
一つ目のケースは、論理階層を完全に維持する場合であり、この場合は、論理階層に応じてフロアプランが行われたレイアウトデータに対してレイアウト処理時間の短縮のみを目的として図1のフローを適用する。その結果、レイアウト処理時間の短縮を可能とするデータの分割単位が得られる。二つ目のケースは、論理階層を可能な限り維持しつつも、適宜、その枠組みを最適化する場合であり、この場合は、フロアプランの前段階で図1のフローを適用する。そして、その結果に基づいてフロアプランを行うことで、レイアウト処理時間の短縮に加えて、半導体装置の品質向上が図れる。すなわち、この場合は、図1のフローにより、論理階層の下位階層を起点として上位階層に向けて、その最適な束ね方が段階的に探索されることになる。この際には、論理階層の枠組みを可能な限り維持し、かつ各分割ブロックの均一性が保てるような処理が行われ、その結果、論理階層における下位階層の枠組みは保たれ、上位階層に向かう程、枠組みの組み替えが発生することになる。
図14は、図12および図13におけるノードの拡大の過程でノードが接した場合の処理方法の一例を示す概念図であり、(a)はフラット階層の場合、(b)は論理階層保持の場合を示すものである。図14(a)に示すように、フラット階層の場合、各ノードNDEは、他のノードと接した際には探索方向を変えてトレースを継続する。そして、例えば、複数の隣接ノードに囲まれ、いずれの方向にもトレースを行えなくなった場合には、隣接ノードのいずれかとのマージを待つ。一方、図14(b)に示すように、論理階層保持の場合、各ノードNDEは、各論理階層の境界BDに達した時点で、上位階層に移動するか、あるいは、隣接ノードとのマージを待つかを判断する。
図15は、図12および図13におけるノードの拡大の過程でノードが接した場合の境界の決め方の一例を示す説明図である。図15に示すように、例えば、ノードBに含まれるフリップフロップFFの出力が組み合わせ回路LOGbを介した後に各所で分岐し、ノードAに含まれる各FFに入力されるような回路において、ノードの拡大(トレース)の過程でノードAとノードBが接した場合、ノードBに最も近い分岐点と組み合わせ回路LOGbの間に境界(境界ピンPN)を設定する。このような箇所に境界を設定することで、その後の自動レイアウトが容易となる。
図16は、図1の設計方法において、そのトレース(S103)過程での目的関数の変化の一例を示す概念図である。図16に示すように、まず、各ノードA〜Eを一定の範囲で並行して拡大させたのち、各ノードの目的関数Gの値を算出する。次いで、目的関数が最低となったノード(ここではノードC)を対象に、当該ノードを一定の範囲で拡大させたのち、当該ノードの目的関数の値を算出する。これによって、ノードCの目的関数の値が各ノードA〜Eの中で最低で無くなった場合には、最低となったノードを対象として、同様に拡大を行ったのち目的関数の値を算出し、また、依然として最低であった場合には、ノードCの拡大を再度行ったのち目的関数の値を算出する。このような処理を繰り返すことで、結果として、各ノードの目的関数の値を均一化しながら、各ノードを適宜拡大させることが可能となる。
図17は、図1の設計方法において、そのトレース(S103)時に生成するトレースグラフの一例を示す概念図である。図1のトレース(S103)において、コンピュータシステムは、例えば図17に示すようなトレースグラフを逐次生成しながらトレースを行う。図17に示すトレースグラフでは、前述したノードNDEが○印で表され、各ノード間における組み合わせ回路ならびにフリップフロップを介した接続有無がエッジEGで表され、各ノードの目的関数の値が各ノード内の数字として表されている。各ノードのトレース方向は、このトレースグラフに基づいて定められ、例えば目的関数の値の小さい(又は大きい)ノードが存在する方向に定められる。
例えば、図17においては、目的関数Gの値が小さいノードが存在する方向に向けたトレースの例が示されており、まず、Gの値が最小となる「2」のノードを、その周辺の中でGの値が最小となる「3」のノードが存在する方向に向けてトレースする。そして、トレースの過程で「3」のノードと接した場合、この2つのノード間のエッジが消滅し、以降、この「3」の方向に向けたトレースが行われなくなる。そして、このエッジが消滅した状態で再び前述した「2」のノードにおけるGの値を算出した結果、例えば、Gの値が「5」になったとする。この場合、次の段階では、現時点で目的関数Gの値が最小となる「3」のノードを、その周辺の中でGの値が最小となる「6」のノードが存在する方向に向けてトレースする。
図18は、図1の設計方法において、そのマージ(S104)時に生成するマージグラフの一例を示す概念図である。図1のマージ(S104)において、コンピュータシステムは、例えば図18に示すようなマージグラフを逐次生成しながらマージを行う。図18に示すマージグラフでは、トレースの過程で隣接したノードNDEが○印で表され、この隣接したノード間がエッジEGで接続されている。また、各ノードの目的関数の値が各ノード内の数字で表され、各ノード間の接続における相関の程度(エッジコスト)がエッジEG上の数字で表される。エッジコストは、対応するノード間の論理的結合度が強いほど(すなわち、ネットリストNLから得られるノード間の論理接続本数が多いほど)数字が小さく、また、フロアプラン情報FPがある場合には、対応するノード間の物理的な位置が近いほど数字が小さい。
マージは、このエッジコストの数字が小さい(すなわち対象となるノード同士の相関が高い)箇所を優先して行われる。図18の例では、最小値となる「2」を持つエッジEG[1]が優先してマージされ、目的関数Gの値が「5」のノードNDE[1]とGの値が「4」のノードNDE[2]とが1個のノードNDE[3]として統合される。その結果、ノードNDE[3]のGの値は、例えば「9」となる。この場合、NDE[3]のGの値は、一時的には、他のノードのGの値と比較して大きくなるが、その後、他のノードに対してもマージが行われる(例えばエッジEG[2]のマージが行われる)ことで、各ノードの目的関数Gの値は、段階的に均一化されることになる。ただし、仮に、他のノードではなくノードNDE[3]が更なるマージ対象となると、目的関数Gの均一化が困難になり得るため、例えば、マージにより他のノードと比較して大きな乖離(例えば、最小ノードと最大ノードで3倍以上の開き等)が生じることが見込まれる場合には、当該マージを行わないなどの制約を設けることが望ましい。
図19は、図1の設計方法において、そのトータルコスト計算(S107)に関する説明図である。図19では、例えば3個のノードNDEa,NDEb,NDEcと、それ以外の回路部となる最上位階層TOPによって半導体装置全体が構成されている。前述した図1のトータルコスト計算(S107)では、式(1)に示したように、各ノードの目的関数の中の最大値等とトップコストとの合計によってトータルコストが算出される。トップコストは、例えば、最上位階層TOPに含まれる回路のタイミングパス数等に基づいて算出される。トップコストは、各ノードの拡大が進むほど小さくなる。また、例えばノードNDEaとNDEbのマージが行われると、マージ後のノードにおける目的関数の値は大きくなるが、トップコストは、変わらないか或いは小さくなる。
以上のように、本実施の形態1による半導体装置の設計方法を用いることで、処理時間ならびに品質を含めて総合的に均一化された複数の分割ブロックが得られ、更に、その各分割ブロックの範囲ならびに分割ブロックの数自体に関しても最適な解を探索することが可能となる。したがって、この結果に基づいて各分割ブロックを並列処理でレイアウトすることで、レイアウト処理時間の短縮が可能となり、更に、この結果に基づいてフロアプランならびに複数の半導体チップへの振り分けを行うことで、半導体装置の品質やレイアウト処理時間を含めて最適化が図れる。このようなことから、総合的な観点でレイアウト設計の最適化が実現可能になる。
(実施の形態2)
本実施の形態2では、それぞれ処理能力が異なる複数のコンピュータシステムを用いて並列的に自動レイアウトを行う際に、前述した実施の形態1の設計方法を適用する場合について説明する。前述した実施の形態1では、各ノードの目的関数の値(レイアウト処理時間を含む)が均一となるように分割を行ったが、分散処理対象のハードウェアのスペックが異なれば、これに応じて各ノードの目的関数の値に対して所定の比率を持たせた方がより処理時間が短縮できる場合がある。そこで、本実施の形態2による半導体装置の設計方法では、分散処理対象のハードウェアのスペック(CPU、メモリ)を考慮して、適切な分割を実施し、それぞれのハードウェアに処理を割り当てる。
例えば、自動レイアウトを行うコンピュータシステムのハードウェアスペックが以下のようであったとする。
CPU1:cpuf=100MHz Memory=4GB
CPU2:cpuf=200MHz Memory=8GB
CPU3:cpuf=300MHz Memory=16GB
CPU4:cpuf=400MHz Memory=32GB
この場合、CPUスペックから見て、各CPUの処理能力の比率は、例えばCPU1:CPU2:CPU3:CPU4=1:2:3:4となる。この場合、例えばCPU4はCPU1の4倍の処理能力を備えるため、同じレイアウト処理時間内で目的関数の値が4倍のノードを処理することができる。したがって、本実施の形態2による半導体装置の設計方法では、第1の方法として、実施の形態1で説明した図1のフローにおいてトレース(S103)およびマージ(S104)を行う際に、各ノードの目的関数の値を、4個を単位として1:2:3:4の比率を保ちながら増大させていけばよい。例えば、ノードが8個の状態では、各ノードの目的関数の値の比率を、1:2:3:4:1:2:3:4等とすればよい。
あるいは、第2の方法として、実施の形態1の場合と同様に、各ノードの目的関数の値が均一となるように制御し、最終的に、各CPUに対して割り当てるノード数を変更してもよい。例えば、最終解として得られたノード数が10個の場合、CPU1、CPU2、CPU3、CPU4に対してそれぞれ1個、2個、3個、4個のノードを割り当てればよい。なお、事前にリソースが定まっていれば問題ないが、LSF(Load Sharing Facility)等の管理ソフトウェアでリソースを共有しているような場合には動的に使用可能なリソースが変動するため、スペック均一や指定ブロック数により対処する。
以上、本実施の形態2による半導体装置の設計方法を用いることで、実施の形態1で述べた各種効果に加えて、更に、複数のコンピュータシステムで自動レイアウトを行う際に各ハードウェアスペックが異なっている場合にも、レイアウト処理時間の短縮が実現可能になる。
(実施の形態3)
本実施の形態3では、実施の形態1で述べた図1の設計方法の更なる詳細について説明する。図20は、本発明の実施の形態3による半導体装置の設計方法において、その処理内容の一例を示すフロー図である。図20において、コンピュータシステムは、まず、図1のS101と同様にM個のシードを選択し(S2001)、初期条件として、残りのシード数(未サブグラフ化シード数)XにMを代入し、サブグラフ数Sに0を代入し、ノード数NにX+Sを代入する(S2002)。次いで、基準値XI=Mとした後(S2003)、トレースを行う。
トレースにおいて、コンピュータシステムは、トレースグラフ生成(S2004)、目的関数計算(S2005)、ノードの拡大(S2006)をループ単位として、残りのシード数XがX≦XI×Kとなるまで当該ループ処理を繰り返す(S2007)。Kの値は、0<K<1で定めた任意の値である。すなわち、実施の形態1と同様に、各ノードの目的関数の値が均一となるように各ノードを拡大させながら、所定の条件に達したノードをサブグラフとし、サブグラフ化していない残りのシード数が所定の割合に減少するまでノードの拡大を継続する。すなわち、トレースが進むほど、サブグラフ数Sは増加し、その増加した分、残りのシード数Xが減少することになる。ここで、サブグラフとは、ノードの拡大の過程で外周全てが他のノード等に接し、それ以上の拡大ができなくなったノードを指す。コンピュータシステムは、残りのシード数が所定の割合に減少するとループを抜け、基準値XIをその時点の残りのシード数Xで更新する(S2008)。
次いで、コンピュータシステムは、基準値NI=X+Sとした後(S2009)、マージを行う。マージにおいて、コンピュータシステムは、マージグラフ生成(S2010)、エッジコスト計算(S2011)、サブグラフのマージ(S2012)をループ単位として、ノード数NがN≦NI×Jとなるまで当該ループ処理を繰り返す(S2013)。Jの値は、K<J<1で定めた任意の値である。すなわち、ここでは、前述したトレースによって生成された複数のサブグラフの内、隣接するサブグラフを対象としてマージを行う。このマージによってサブグラフ数が減少し、その減少した分だけ、ノード数N(サブグラフ数Sと残りのシード数Xの和)も減少することになる。コンピュータシステムは、ノード数Nが所定の割合に減少するとループを抜ける。
ループを抜けると、コンピュータシステムは、実施の形態1の場合と同様に、前述した式(1)を用いてトータルコストを計算する(S2014)。ここで、トータルコストが前回算出されたトータルコストよりも大きくなった場合(すなわちトータルコストが悪化した場合)には、前回算出したトータルコストを最適解とし、この際のノード数Nを最適な分割数とし、各ノードの境界を最適な分割境界とする(S2016)。一方、トータルコストが前回算出されたトータルコストよりも小さくなった場合(すなわちトータルコストが改善した場合)には、S2004に戻り再度トレースを行う。このトレースに際しては、現時点での残りのシード数Xが基準値XIとされており、この残りのシードを対象にサブグラフ化が進み、これに伴い残りのシード数が所定の割合に減少するまでトレースが継続される。それ以降も同様に、現時点でのノード数を基準値NIとして、ノード数が所定の割合に減少するまでサブグラフがマージされる。これによって、図20の符号S200に示すように、残りのシード数Xと、ノード数Nを段階的に減らしながら処理が進むことになる。
図21は、図20のフローに伴う処理対象の推移の一例を表す模式図である。ここでは、例えば、前述したKの値を0.5、Jの値を0.7とし、初期状態として16個のシードを選択して処理を行った場合を示している。図21では、それぞれ組み合わせ回路(図示せず)を介して適宜接続された複数のフリップフロップFFからなる回路が模式的に示され、初期状態においては、複数のFFの中から均一的に16個のシードSEDが選択されている。その後、1回目のトレースが行われると、各シードを起点とする各ノードNDEが段階的に拡大していき、拡大が限界に達したノードがサブグラフSGHとなっていく。この際、各ノードNDEの拡大の速度は、実施の形態1で述べたように、各ノードに含まれる回路の総合的な複雑度に応じて様々に異なる。この1回目のトレースは、残りのシード数Xがトレース前の16個からその0.5倍程度となる8個になるまで継続され、これに伴い8個のサブグラフSGHが生成される。
次いで、サブグラフSGHを対象に1回目のマージが行われ、このマージは、ノード数Nがマージ前の16個からその0.7倍程度となる11個に減少するまで行われる。すなわち、ノード数Nは、残りのシード数Xとサブグラフ数Sの合計であり、残りのシード数Xは変えられないため、結果的に、サブグラフ数Sが8個から3個に減少するまでマージが行われる。以降、同様にして、2回目のトレースは、残りのシード数Xがトレース前の0.5倍程度となる4個となるまで行われ、その後、2回目のマージは、ノード数Nがマージ前の0.7倍程度となる7個となるまで行われる。以降のトレースおよびマージも同様となる。
図22は、図21の推移に伴うマージグラフおよびトレースグラフの一例を表す説明図である。ここでは、一例として、図21における1回目のトレースの後に生成されるマージグラフと、1回目のマージの後に生成されるトレースグラフとが示されている。マージグラフは、図18で説明したようにマージ対象となるノード(ここではサブグラフSGH)を丸印で表し、そのノード間の接続関係をエッジで表したものであり、図22では省略しているが、各ノードは目的関数の値を持ち、各エッジはエッジコストを持っている。ここでは、エッジコストに基づいて、双方向矢印で示したマージがそれぞれ行われ、その結果、図22に示したマージ(1回目)の状態になる。
一方、トレースグラフは、図17で説明したようにトレース対象となるノードNDEを丸印で表し、そのノード間の接続有無をエッジで表したものであり、図22では省略しているが、各ノードは目的関数の値を持っている。また、図17で説明したように、ノードが接した場合にはエッジが切断されるため、ノードNDEの一種となるサブグラフSGHは、エッジを持たない。ここでは、各ノードの目的関数の値に基づいて、矢印で示した方向に向けてそれぞれトレースが行われ、その結果、図22に示したトレース(2回目)の状態になる。
図23は、図20のフローに伴う処理対象の他の推移の一例を表す模式図であり、図24は、図23に続く模式図である。図21は、処理対象がフラット階層である場合の遷移の一例を示したものであったが、図23および図24は、処理対象が論理階層を保持する場合の遷移の一例を示したものとなっている。ここでは、例えば、前述したKの値を0.5、Jの値を0.75とし、初期状態として27個のシードを選択して処理を行った場合を示している。論理階層は、例えば、最上位階層TOPが3個のブロックBLKを持ち、各ブロックBLKが、更に3個のサブブロックSBLKを持ち、各サブブロックSBLKが、更に3個のモジュールMDを持つものとし、シードSEDは、各MDの中から一つずつ選択されている。
その後、1回目のトレースが行われると、各シードを起点とする各ノードNDEが段階的に拡大していき、拡大が限界に達したノードがサブグラフSGHとなっていく。ここで、論理階層保持の場合では、図21に示したフラット階層の場合と異なり、各ノードの外周が各論理階層(ブロックBLK、サブブロックSBLK、モジュールMD)の境界BDに達した際に拡大の限界に達することとなる。また、各ノードNDEの拡大の速度は、実施の形態1で述べたように、各ノードに含まれる回路の総合的な複雑度に応じて様々に異なる。この1回目のトレースは、残りのシード数Xがトレース前の27個からその0.5倍程度となる13個になるまで継続され、これに伴い14個のサブグラフSGHが生成される。
次いで、サブグラフSGHを対象に1回目のマージが行われ、このマージは、ノード数Nがマージ前の27個からその0.75倍程度となる20個に減少するまで行われる。すなわち、ノード数Nは、残りのシード数Xとサブグラフ数Sの合計であり、残りのシード数Xは変えられないため、結果的に、サブグラフ数Sが14個から7個に減少するまでマージが行われる。この例では、3個のサブグラフSGH(モジュールMD)が1個のSGHとして統合されたり、2個のSGH(モジュールMD)が1個のSGHとして統合されたり等が行われている。
続いて、2回目のトレースは、残りのシード数Xがトレース前の0.5倍程度となる6個となるまで行われる。この際には、例えば、前述した3個のモジュールMDを統合した1個のサブグラフSGHは、上位階層(サブブロックSBLK)に移動した上でトレースが継続される。その後、2回目のマージは、ノード数がマージ前の0.75倍程度となる15個となるまで行われる。この例では、1回目のマージと同様のモジュールMD階層での統合に加えて、例えば、2個のサブグラフSGH(サブブロックSBLK)が1個のSGHとして統合されるといったサブブロックSBLK階層での統合等が行われている。以降も同様にして、図24に示すように、3回目、4回目、…のトレースおよびマージが順次行われ、それに応じて、段階的にノード数Nが減少すると共に上位階層でのマージが進んでいく。
以上のように、フラット階層と論理階層保持のいずれの場合においても、ノード数Nを段階的に減らしながら、その都度トータルコストが算出され、最終的には、トータルコストが最良であったノード数が最適な分割数となり、その各ノードの境界が最適な分割境界となる。したがって、この分割単位に基づいて並列処理により自動レイアウトを行うことで、その処理時間の短縮が図れる。さらに、この分割単位に基づいてフロアプランやチップ分割等を行うことで、前述したレイアウト処理時間や半導体装置の品質も含めてレイアウト設計の総合的な最適化が図れる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
本実施の形態による半導体装置の設計方法は、特に、マイクロコンピュータ等を代表に異なる機能を備えた回路ブロックが混在した半導体装置のレイアウト設計方法に適用して有益な技術であり、これに限らず、各種半導体装置のレイアウト設計方法として広く適用可能である。
A/D アナログ・ディジタル変換ブロック
BD 論理階層の境界
BLK ブロック
BS バス
CLK クロック
CP チップ
CPU 演算処理ブロック
DMAC DMA制御ブロック
DP データパス
EG エッジ
EN イネーブル信号
FF フリップフロップ
FP フロアプラン情報
I/O 外部ポート制御ブロック
IND 入力データ
LOG 組み合わせ回路
MD モジュール
MEM メモリ
NDE ノード
NL ネットリスト
PERI 周辺モジュール
PH タイミングパス
PLL クロック生成回路
PN ピン
RAM 揮発性メモリブロック
ROM 不揮発性メモリブロック
SBLK サブブロック
SED シード
SG ステージ数
SGH サブグラフ
SL セル情報
TM タイミング情報
TMR タイマブロック
TOP 最上位階層
TSV ビア

Claims (18)

  1. 複数のフリップフロップ回路と前記複数のフリップフロップ回路間に適宜接続された組み合わせ回路とを含む半導体装置のレイアウト設計に際して、
    コンピュータシステムが、前記半導体装置のネットリストを参照して、各ブロック毎の目的関数の値が均一となるように前記複数のフリップフロップ回路および前記組み合わせ回路をN個のブロックに振り分ける第1ステップを実行し、
    前記各ブロック毎の目的関数は、自身のブロックに含まれる回路に対するタイミング情報を反映した第1変数を含んでいることを特徴とする半導体装置の設計方法。
  2. 請求項1記載の半導体装置の設計方法において、
    前記タイミング情報には、前記複数のフリップフロップ回路毎のクロック周波数の情報が含まれていることを特徴とする半導体装置の設計方法。
  3. 請求項1記載の半導体装置の設計方法において、
    前記タイミング情報には、前記複数のフリップフロップ回路間の前記組み合わせ回路を介したタイミングパスに対して静的タイミング検証を行った結果の情報が含まれていることを特徴とする半導体装置の設計方法。
  4. 請求項1記載の半導体装置の設計方法において、
    前記各ブロック毎の目的関数は、更に、前記自身のブロックに含まれるフリップフロップ回路を対象として、同一のクロックでトリガされる前記フリップフロップ回路の数を反映した第2変数を含んでいることを特徴とする半導体装置の設計方法。
  5. 請求項4記載の半導体装置の設計方法において、
    前記各ブロック毎の目的関数は、更に、前記自身のブロックに含まれる回路内の各セルに対する消費電力の大きさを反映した第3変数を含んでいることを特徴とする半導体装置の設計方法。
  6. 請求項1記載の半導体装置の設計方法において、
    前記コンピュータシステムは、更に、前記第1ステップによって生成された前記N個のブロックを単位としてフロアプランを行う第2ステップを実行することを特徴とする半導体装置の設計方法。
  7. 請求項1記載の半導体装置の設計方法において、
    前記コンピュータシステムは、更に、前記第1ステップによって生成された前記N個のブロックを並列処理単位として、複数のCPUを用いて並列に自動レイアウト処理を行う第3ステップを実行することを特徴とする半導体装置の設計方法。
  8. 複数のフリップフロップ回路と前記複数のフリップフロップ回路間に適宜接続された組み合わせ回路とを含む半導体装置のレイアウト設計に際して、
    コンピュータシステムが、前記半導体装置のネットリストを参照して、
    前記複数のフリップフロップ回路の中からM個のフリップフロップ回路を選択し、前記M個のフリップフロップ回路をシードとして設定する第1ステップと、
    前記M個のシードのそれぞれを起点として、各シード毎に前段または後段に位置するフリップフロップ回路を段階的に取り込みながら、各シードを目的関数の値が均一となるように並行して拡大させ、拡大の過程で第1条件を満たしたシードをサブグラフとし、前記サブグラフになっていない残存シードの数が第1の割合に減少するまで前記各シードの拡大を継続する第2ステップと、
    前記残存シードの数と前記サブグラフの数の合計値が第2の割合に減少するまで前記サブグラフを統合する第3ステップと、
    前記残存シードおよび前記サブグラフにおける前記目的関数の値と、前記残存シードにも前記サブグラフにも属していない回路におけるタイミングパス数とに基づいてトータルコストを算出する第4ステップと、
    前記トータルコストが悪化するまで前記第2ステップ〜前記第4ステップを繰り返す第5ステップとを実行し、
    前記目的関数は、前記各シードの拡大範囲内に含まれる回路に対するタイミング情報を反映した第1変数を含んでいることを特徴とする半導体装置の設計方法。
  9. 請求項8記載の半導体装置の設計方法において、
    前記第2ステップは、前記ネットリストの論理階層をフラットにした状態で行われ、
    前記第1条件は、他のシードの拡大範囲に接することで、それ以上の拡大ができなくなった場合に成立することを特徴とする半導体装置の設計方法。
  10. 請求項8記載の半導体装置の設計方法において、
    前記第2ステップは、前記ネットリストの論理階層を維持した状態で行われ、
    前記第1条件は、論理階層の境界に接することで、それ以上の拡大ができなくなった場合に成立することを特徴とする半導体装置の設計方法。
  11. 請求項8記載の半導体装置の設計方法において、
    前記タイミング情報には、前記複数のフリップフロップ回路毎のクロック周波数の情報が含まれていることを特徴とする半導体装置の設計方法。
  12. 請求項8記載の半導体装置の設計方法において、
    前記タイミング情報には、前記複数のフリップフロップ回路間の前記組み合わせ回路を介したタイミングパスに対して静的タイミング検証を行った結果の情報が含まれていることを特徴とする半導体装置の設計方法。
  13. 請求項8記載の半導体装置の設計方法において、
    前記目的関数は、更に、前記各シードの拡大範囲内に含まれるフリップフロップ回路を対象として、同一のクロックでトリガされる前記フリップフロップ回路の数を反映した第2変数を含んでいることを特徴とする半導体装置の設計方法。
  14. 請求項13記載の半導体装置の設計方法において、
    前記目的関数は、更に、前記各シードの拡大範囲内に含まれる回路内の各セルに対する消費電力の大きさを反映した第3変数を含んでいることを特徴とする半導体装置の設計方法。
  15. 請求項8記載の半導体装置の設計方法において、
    前記コンピュータシステムは、前記第1ステップにおいて、前記ネットリストの論理階層を下層方向に向けて探索しながら前記M個と同程度の数で構成される下位下層ブロックを検出し、この検出した下位下層ブロックのそれぞれの中から前記シードを設定することを特徴とする半導体装置の設計方法。
  16. 請求項15記載の半導体装置の設計方法において、
    前記コンピュータシステムは、前記下位下層ブロックのそれぞれの中から前記シードを設定する際に、前記下位下層ブロックのそれぞれの中から前記下位下層ブロックの外部に向けて入力または出力を行うフリップフロップ回路を識別し、このフリップフロップ回路から最も多い段数を経て接続されるフリップフロップ回路を前記シードとして設定することを特徴とする半導体装置の設計方法。
  17. 請求項8記載の半導体装置の設計方法において、
    前記コンピュータシステムは、更に、前記第5ステップの結果を用いて前記トータルコストが最良となる前記残存シードおよび前記サブグラフを認識し、この最良となる前記残存シードおよび前記サブグラフをそれぞれブロック単位としてフロアプランを行う第6ステップを実行することを特徴とする半導体装置の設計方法。
  18. 請求項8記載の半導体装置の設計方法において、
    前記コンピュータシステムは、更に、前記第5ステップの結果を用いて前記トータルコストが最良となる前記残存シードおよび前記サブグラフを認識し、この最良となる前記残存シードおよび前記サブグラフをそれぞれ並列処理単位として、複数のCPUを用いて並列に自動レイアウト処理を行う第7ステップを実行することを特徴とする半導体装置の設計方法。
JP2009239619A 2009-10-16 2009-10-16 半導体装置の設計方法 Expired - Fee Related JP5401256B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009239619A JP5401256B2 (ja) 2009-10-16 2009-10-16 半導体装置の設計方法
US12/906,117 US20110093827A1 (en) 2009-10-16 2010-10-17 Semiconductor device design method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009239619A JP5401256B2 (ja) 2009-10-16 2009-10-16 半導体装置の設計方法

Publications (2)

Publication Number Publication Date
JP2011086189A JP2011086189A (ja) 2011-04-28
JP5401256B2 true JP5401256B2 (ja) 2014-01-29

Family

ID=43880251

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009239619A Expired - Fee Related JP5401256B2 (ja) 2009-10-16 2009-10-16 半導体装置の設計方法

Country Status (2)

Country Link
US (1) US20110093827A1 (ja)
JP (1) JP5401256B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8516412B2 (en) * 2011-08-31 2013-08-20 International Business Machines Corporation Soft hierarchy-based physical synthesis for large-scale, high-performance circuits
US8910097B2 (en) * 2012-12-31 2014-12-09 Synopsys, Inc. Netlist abstraction
US8732647B1 (en) * 2013-03-13 2014-05-20 Atrenta, Inc. Method for creating physical connections in 3D integrated circuits
US8832608B1 (en) * 2013-06-17 2014-09-09 Duke University Retiming-based design flow for delay recovery on inter-die paths in 3D ICs
CN103500240B (zh) * 2013-09-04 2016-09-07 深圳先进技术研究院 对硅通孔进行动态规划布线的方法
GB2529170B (en) * 2014-08-11 2021-06-16 Ahmad Fawaz Khodor Circuit design generator
KR102439861B1 (ko) * 2018-02-14 2022-09-02 삼성전자주식회사 반도체 칩을 제조하기 위한 전자 장치 및 방법
JP7306134B2 (ja) * 2019-07-24 2023-07-11 富士通株式会社 回路設計方法、プログラム、及び情報処理装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5790841A (en) * 1996-04-15 1998-08-04 Advanced Micro Devices, Inc. Method for placement of clock buffers in a clock distribution system
JPH10198711A (ja) * 1997-01-06 1998-07-31 Yamaha Corp 回路変更方式
US20050091622A1 (en) * 2003-10-28 2005-04-28 Pappu Krishna K. Method of grouping scan flops based on clock domains for scan testing
US7979831B1 (en) * 2008-11-17 2011-07-12 Xilinx, Inc. Placement driven control set resynthesis
US8136073B1 (en) * 2009-04-24 2012-03-13 Xilinx, Inc. Circuit design fitting

Also Published As

Publication number Publication date
JP2011086189A (ja) 2011-04-28
US20110093827A1 (en) 2011-04-21

Similar Documents

Publication Publication Date Title
JP5401256B2 (ja) 半導体装置の設計方法
US8458640B2 (en) Routing using a dynamic grid
US6442743B1 (en) Placement method for integrated circuit design using topo-clustering
US7484199B2 (en) Buffer insertion to reduce wirelength in VLSI circuits
US7934188B2 (en) Legalization of VLSI circuit placement with blockages using hierarchical row slicing
US8631378B2 (en) Implementing enhanced clock tree distributions to decouple across N-level hierarchical entities
Lee et al. Contango: Integrated optimization of SoC clock networks
US20140331196A1 (en) Analyzing sparse wiring areas of an integrated circuit design
JP2013171503A (ja) Lsi設計方法
Kahng et al. Improved flop tray-based design implementation for power reduction
US20140143531A1 (en) Automatic pipeline stage insertion
CN107563095A (zh) 一种大规模集成电路非线性布局方法
CN101369294A (zh) SoC布局的平面布图规划方法
Li et al. A connectivity based clustering algorithm with application to VLSI circuit partitioning
US20100257499A1 (en) Techniques for fast area-efficient incremental physical synthesis
Lin et al. Retiming for wire pipelining in system-on-chip
Jiang et al. Fpga-accelerated maze routing kernel for vlsi designs
Zhu et al. Minideviation: an efficient multi-stage bus-aware global router
Healy et al. Thermal optimization in multi-granularity multi-core floorplanning
Dong et al. Delay-driven and antenna-aware layer assignment in global routing under multitier interconnect structure
JP2013257646A (ja) 自動レイアウトプログラム、自動レイアウト装置及びレイアウト最適化方法
JP3433025B2 (ja) モジュール配置方法
Saha et al. An efficient intersection avoiding rectilinear routing technique in VLSI
Gade et al. A Pre-RTL floorplanner tool for automated CMP design space exploration with thermal awareness
Huang et al. Wirelength based clustering technique for vlsi physical design

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120802

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130701

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: 20131001

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131028

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees