JP5401256B2 - 半導体装置の設計方法 - Google Patents
半導体装置の設計方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3315—Design verification, e.g. functional simulation or model checking using static timing analysis [STA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/12—Timing 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は、本発明の実施の形態1による半導体装置の設計方法において、その処理内容の一例を示すフロー図である。図1に示す半導体装置の設計方法は、ハードディスク等の記憶部に保持された入力データINDを受けて、コンピュータシステムによるプログラム処理を実行することで実現される。入力データINDには、ネットリストNLや、ネットリスト内に含まれる各セルのセル情報SLや、タイミング情報TMや、場合によってはフロアプラン情報FPが含まれる。
図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の境界が最適な分割ブロックの境界となる。
以下、目的関数Gの詳細について説明する。
電力コスト(PW)は、部分的な電力集中により電源電圧降下が発生する可能性を表す指標であり、ここでは、この値が大きい程問題が生じるものとする。このPWの値は、例えば、セル情報SLから各セルの消費電力を取得し、ネットリストNLから対象とするノード内に含まれるセルを認識し、そのセルの消費電力の和によって定められる。ここで、セルの活性化率の情報があれば、それも加味する。また、ネットリストNLから各セルのファンアウトを認識し、このファンアウトに伴う配線容量を重みとして加える。次に、製造性コスト(YE)の値は、例えば、セル情報SLから各セルの製造歩留まり(Yield)を取得し、ネットリストNLから対象とするノード内に含まれるセルを認識し、そのセルの歩留まりの和によって定められる。ここでは、この値が大きい程問題が生じるものとする。
レイアウト処理時間のコスト(RT)は、例えば、[1]Pin/Net、[2]フリップフロップに到達するクロック速度の和(CKSUM)、[3]エンドポイント数(EP)、[4]タイミングスラックの和(TPS)からなる4つの変数の関数によって定められる。図6〜図10は、図1の設計方法において、そのトレース(S103)時に使用する目的関数に含まれるレイアウト処理コストの内容を説明する図である。
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となる。
[C]ノイズコスト(NS)
ノイズコスト(NS)は、部分的な同時切り替えノイズの発生によりチップ性能が劣化する可能性を表す指標であり、ここでは、この値が大きい程問題が生じるものとする。このNSの値は、例えば、ネットリストNLを参照して、同一のクロックでトリガされるフリップフロップの数を検出することで算出される。また、その中でも特に、同一のクロックゲーティングセルのファンアウトとなっているフリップフロップの数を検出することで算出される。
本実施の形態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等とすればよい。
本実施の形態3では、実施の形態1で述べた図1の設計方法の更なる詳細について説明する。図20は、本発明の実施の形態3による半導体装置の設計方法において、その処理内容の一例を示すフロー図である。図20において、コンピュータシステムは、まず、図1のS101と同様にM個のシードを選択し(S2001)、初期条件として、残りのシード数(未サブグラフ化シード数)XにMを代入し、サブグラフ数Sに0を代入し、ノード数NにX+Sを代入する(S2002)。次いで、基準値XI=Mとした後(S2003)、トレースを行う。
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)
- 複数のフリップフロップ回路と前記複数のフリップフロップ回路間に適宜接続された組み合わせ回路とを含む半導体装置のレイアウト設計に際して、
コンピュータシステムが、前記半導体装置のネットリストを参照して、各ブロック毎の目的関数の値が均一となるように前記複数のフリップフロップ回路および前記組み合わせ回路をN個のブロックに振り分ける第1ステップを実行し、
前記各ブロック毎の目的関数は、自身のブロックに含まれる回路に対するタイミング情報を反映した第1変数を含んでいることを特徴とする半導体装置の設計方法。 - 請求項1記載の半導体装置の設計方法において、
前記タイミング情報には、前記複数のフリップフロップ回路毎のクロック周波数の情報が含まれていることを特徴とする半導体装置の設計方法。 - 請求項1記載の半導体装置の設計方法において、
前記タイミング情報には、前記複数のフリップフロップ回路間の前記組み合わせ回路を介したタイミングパスに対して静的タイミング検証を行った結果の情報が含まれていることを特徴とする半導体装置の設計方法。 - 請求項1記載の半導体装置の設計方法において、
前記各ブロック毎の目的関数は、更に、前記自身のブロックに含まれるフリップフロップ回路を対象として、同一のクロックでトリガされる前記フリップフロップ回路の数を反映した第2変数を含んでいることを特徴とする半導体装置の設計方法。 - 請求項4記載の半導体装置の設計方法において、
前記各ブロック毎の目的関数は、更に、前記自身のブロックに含まれる回路内の各セルに対する消費電力の大きさを反映した第3変数を含んでいることを特徴とする半導体装置の設計方法。 - 請求項1記載の半導体装置の設計方法において、
前記コンピュータシステムは、更に、前記第1ステップによって生成された前記N個のブロックを単位としてフロアプランを行う第2ステップを実行することを特徴とする半導体装置の設計方法。 - 請求項1記載の半導体装置の設計方法において、
前記コンピュータシステムは、更に、前記第1ステップによって生成された前記N個のブロックを並列処理単位として、複数のCPUを用いて並列に自動レイアウト処理を行う第3ステップを実行することを特徴とする半導体装置の設計方法。 - 複数のフリップフロップ回路と前記複数のフリップフロップ回路間に適宜接続された組み合わせ回路とを含む半導体装置のレイアウト設計に際して、
コンピュータシステムが、前記半導体装置のネットリストを参照して、
前記複数のフリップフロップ回路の中からM個のフリップフロップ回路を選択し、前記M個のフリップフロップ回路をシードとして設定する第1ステップと、
前記M個のシードのそれぞれを起点として、各シード毎に前段または後段に位置するフリップフロップ回路を段階的に取り込みながら、各シードを目的関数の値が均一となるように並行して拡大させ、拡大の過程で第1条件を満たしたシードをサブグラフとし、前記サブグラフになっていない残存シードの数が第1の割合に減少するまで前記各シードの拡大を継続する第2ステップと、
前記残存シードの数と前記サブグラフの数の合計値が第2の割合に減少するまで前記サブグラフを統合する第3ステップと、
前記残存シードおよび前記サブグラフにおける前記目的関数の値と、前記残存シードにも前記サブグラフにも属していない回路におけるタイミングパス数とに基づいてトータルコストを算出する第4ステップと、
前記トータルコストが悪化するまで前記第2ステップ〜前記第4ステップを繰り返す第5ステップとを実行し、
前記目的関数は、前記各シードの拡大範囲内に含まれる回路に対するタイミング情報を反映した第1変数を含んでいることを特徴とする半導体装置の設計方法。 - 請求項8記載の半導体装置の設計方法において、
前記第2ステップは、前記ネットリストの論理階層をフラットにした状態で行われ、
前記第1条件は、他のシードの拡大範囲に接することで、それ以上の拡大ができなくなった場合に成立することを特徴とする半導体装置の設計方法。 - 請求項8記載の半導体装置の設計方法において、
前記第2ステップは、前記ネットリストの論理階層を維持した状態で行われ、
前記第1条件は、論理階層の境界に接することで、それ以上の拡大ができなくなった場合に成立することを特徴とする半導体装置の設計方法。 - 請求項8記載の半導体装置の設計方法において、
前記タイミング情報には、前記複数のフリップフロップ回路毎のクロック周波数の情報が含まれていることを特徴とする半導体装置の設計方法。 - 請求項8記載の半導体装置の設計方法において、
前記タイミング情報には、前記複数のフリップフロップ回路間の前記組み合わせ回路を介したタイミングパスに対して静的タイミング検証を行った結果の情報が含まれていることを特徴とする半導体装置の設計方法。 - 請求項8記載の半導体装置の設計方法において、
前記目的関数は、更に、前記各シードの拡大範囲内に含まれるフリップフロップ回路を対象として、同一のクロックでトリガされる前記フリップフロップ回路の数を反映した第2変数を含んでいることを特徴とする半導体装置の設計方法。 - 請求項13記載の半導体装置の設計方法において、
前記目的関数は、更に、前記各シードの拡大範囲内に含まれる回路内の各セルに対する消費電力の大きさを反映した第3変数を含んでいることを特徴とする半導体装置の設計方法。 - 請求項8記載の半導体装置の設計方法において、
前記コンピュータシステムは、前記第1ステップにおいて、前記ネットリストの論理階層を下層方向に向けて探索しながら前記M個と同程度の数で構成される下位下層ブロックを検出し、この検出した下位下層ブロックのそれぞれの中から前記シードを設定することを特徴とする半導体装置の設計方法。 - 請求項15記載の半導体装置の設計方法において、
前記コンピュータシステムは、前記下位下層ブロックのそれぞれの中から前記シードを設定する際に、前記下位下層ブロックのそれぞれの中から前記下位下層ブロックの外部に向けて入力または出力を行うフリップフロップ回路を識別し、このフリップフロップ回路から最も多い段数を経て接続されるフリップフロップ回路を前記シードとして設定することを特徴とする半導体装置の設計方法。 - 請求項8記載の半導体装置の設計方法において、
前記コンピュータシステムは、更に、前記第5ステップの結果を用いて前記トータルコストが最良となる前記残存シードおよび前記サブグラフを認識し、この最良となる前記残存シードおよび前記サブグラフをそれぞれブロック単位としてフロアプランを行う第6ステップを実行することを特徴とする半導体装置の設計方法。 - 請求項8記載の半導体装置の設計方法において、
前記コンピュータシステムは、更に、前記第5ステップの結果を用いて前記トータルコストが最良となる前記残存シードおよび前記サブグラフを認識し、この最良となる前記残存シードおよび前記サブグラフをそれぞれ並列処理単位として、複数のCPUを用いて並列に自動レイアウト処理を行う第7ステップを実行することを特徴とする半導体装置の設計方法。
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)
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)
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 |
-
2009
- 2009-10-16 JP JP2009239619A patent/JP5401256B2/ja not_active Expired - Fee Related
-
2010
- 2010-10-17 US US12/906,117 patent/US20110093827A1/en not_active Abandoned
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 |