JP2006324578A - 半導体集積回路の設計方法 - Google Patents

半導体集積回路の設計方法 Download PDF

Info

Publication number
JP2006324578A
JP2006324578A JP2005147970A JP2005147970A JP2006324578A JP 2006324578 A JP2006324578 A JP 2006324578A JP 2005147970 A JP2005147970 A JP 2005147970A JP 2005147970 A JP2005147970 A JP 2005147970A JP 2006324578 A JP2006324578 A JP 2006324578A
Authority
JP
Japan
Prior art keywords
clock
semiconductor integrated
integrated circuit
delay value
delay
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
JP2005147970A
Other languages
English (en)
Inventor
Tatsuo Ko
達夫 江
Yoichi Matsumura
陽一 松村
Fumihiro Kimura
文浩 木村
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2005147970A priority Critical patent/JP2006324578A/ja
Publication of JP2006324578A publication Critical patent/JP2006324578A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Semiconductor Integrated Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

【課題】 微細化が進んだプロセスに対しても、製造ばらつきの影響を最小限に抑えたクロック信号の供給を可能にする。
【解決手段】 階層設計において、階層トップのクロック経路を抽出し(S100)、抽出した各クロック経路から階層クロック入力端子ペアに対応するクロック分岐ポイントを求め(S110)、遅延値をクロック入力端子ペアごとに求める(S120)。求めた遅延値に対して、クロック経路の特性に基づく製造ばらつきを考慮した設計マージンを与えてタイミング制約を作成し(S130)、タイミング制約に従って、階層ブロック内のタイミング調整を行う(S140)。
【選択図】 図1

Description

本発明は、クロック信号に同期して動作する半導体集積回路の設計方法に関するものである。
従来のロジック回路を含んだ半導体集積回路の多くは、外部から供給されたクロック信号、あるいは、外部から供給された信号に基づき内部で生成したクロック信号に同期して動作する。半導体集積回路を正しく動作させるためには、このようなクロック信号で動作するクロック回路(ロジック回路)を構成する各フリップフロップにクロック信号を正しく供給することが必要である。このため、クロック回路の構成は、半導体集積回路の設計上の重要な課題であると認識されている。
クロック回路を解析するときには、クロック回路のうち、クロック信号が流れる経路(以下、クロック経路という)とクロック経路上に存在する論理セルとに着目し、これらの部分をクロックツリーとして解析することが、広く行なわれている。
一方でプロセスの微細化の進行に伴い、半導体集積回路の製造過程におけるトランジスタのばらつきの割合が増大している。このばらつきは、半導体集積回路の製造能力に影響し、同一構造の論理セルにおいても遅延時間に差が生じる、あるいは、同一構造、同一配線長の配線においても抵抗値、容量値に差が生じるため、遅延時間に差が生じてしまう。そこで経験的数値から最悪値の製造ばらつき度合いを割り出している。
レイアウト設計時には、製造ばらつきを考慮した設計マージンを遅延時間に与えて設計を行ない、タイミング解析においても製造ばらつきによる設計マージンを遅延時間に加えて解析が行われている。これにより、製造ばらつきにより実際の半導体集積回路で遅延値に変動があっても、製造ばらつきを考慮した設計マージン以内の値であれば半導体集積回路は正しく動作することになる。
従来の半導体集積回路のレイアウト設計における階層ブロック間のクロック遅延を調整する方法は、種々の技術が知られている。この中で本発明と関連性を有する技術としては、例えば、特許文献1に記載されたものがある。特許文献1には、階層ブロック間のクロック遅延の調整を、階層トップにおいて、半導体集積回路のクロック入力端子−階層ブロックのクロック入力端子間のクロック配線長を調節することにより行う方法が記載されている。
ここで、階層レイアウト設計、特に階層ブロックから設計を行い、階層トップへと組み上げる設計の場合、階層ブロック内ではクロック・ツリー・シンセシスが行われる。しかし、これにより、階層ブロック内のクロックツリーに対して製造ばらつきによるタイミング解析を行うことができるものの、半導体集積回路(半導体チップ)のクロック入力端子から階層ブロックのクロック入力端子までのクロックツリーに関しては、製造ばらつきによる設計マージンを考慮した遅延値を与えることができない。そのため、半導体集積回路のクロック入力端子から階層ブロックのクロック入力端子へ到達するクロックに遅延差を設けるようにクロック配線の配置を変更することにより、製造ばらつきのために階層ブロック内に生じる遅延差を緩和して対応してきた。
特開2004−253772号公報
しかしながら、更なる半導体集積回路プロセスの微細化および低電圧化の進行に伴い、半導体集積回路におけるクロック信号の供給については、従来よりも高い精度のタイミング調整が要求されてきている。例えば、プロセスの微細化の進行に伴い、クロック回路に含まれる論理セルを構成するトランジスタのサイズは小さくなっており、クロック回路の各部の小さな製造ばらつきがクロック遅延に大きな影響を及ぼしている。このため、従来の階層ブロック回路内の製造ばらつきの影響を階層トップのクロック配線の配置を変更するのみでは、十分にばらつきの影響を吸収できなくなってきている。
上記課題を解決するために、本発明は、微細化が進んだプロセスに対しても、製造ばらつきの影響を最小限に抑えたクロック信号の供給が可能な半導体集積回路の設計方法を提供することを目的とする。
上記目的を達成するために、本発明では、プロセスの微細化が進んだことにより、半導体集積回路のタイミング調整に及ぼす影響が顕著となってきている階層ブロックに至るまでのクロック経路の遅延値に現れる製造ばらつきの影響を抑える。これには、階層ブロックの複数のクロック入力端子へ分岐しているクロック経路のうち、分岐後のクロック経路における遅延差に着目し、この分岐後のクロック経路の遅延値に製造ばらつきを考慮した設計マージンを与えることにより、半導体集積回路のクロック入力端子から階層ブロックのクロック入力端子までのクロック回路部分の製造ばらつきまでも考慮した精度の高いタイミング調整を行う。
すなわち、請求項1記載の発明の半導体集積回路の設計方法は、クロック信号に同期して動作する半導体集積回路の設計方法であって、前記クロック信号を受ける前記半導体集積回路のクロック入力端子から、この半導体集積回路内の階層ブロックが有する複数のクロック入力端子に至るクロック経路を抽出するクロック経路抽出ステップと、前記クロック経路抽出ステップにおいて抽出した前記クロック経路が前記複数のクロック入力端子へ分岐するクロック分岐ポイントを求めるクロック分岐ポイント抽出ステップと、前記クロック分岐ポイント抽出ステップにおいて求めた前記クロック分岐ポイントから前記階層ブロックの各々のクロック入力端子までの遅延値を求める遅延値算出ステップと、前記遅延値算出ステップにおいて求めた各々の前記遅延値に対して製造ばらつきを考慮した設計マージンを与えてタイミング制約を作成するタイミング制約作成ステップと、前記タイミング制約作成ステップにおいて作成した前記タイミング制約に基づいて前記半導体集積回路のタイミング調整を行うタイミング調整ステップとを含むことを特徴とする。
請求項2記載の発明は、請求項1記載の半導体集積回路の設計方法において、前記クロック分岐ポイントから前記階層ブロックの各々のクロック入力端子までの遅延値は、前記クロック経路を構成する各々の構造要素ごとに求められることを特徴とする。
請求項3記載の発明は、請求項1記載の半導体集積回路の設計方法において、前記遅延値算出ステップにおいて求めた各々の前記遅延値はライブラリ又は制約情報として保持されることを特徴とする。
請求項4記載の発明は、請求項3記載の半導体集積回路の設計方法において、前記ライブラリ又は前記制約情報として保持される前記遅延値は、前記階層ブロックのクロック入力端子の任意のペアごとに、このペアに対する一のクロック分岐ポイントから前記ペアの一方のクロック入力端子までの遅延値に他方のクロック入力端子を対応付けたテーブル形式で保持されることを特徴とする。
請求項5記載の発明は、請求項2記載の半導体集積回路の設計方法において、前記遅延値算出ステップは、前記クロック経路上の前記各々の構造要素が有する構造情報を求めてテーブル形式で保持する構造情報算出ステップと、前記構造情報算出ステップにおいて求めた前記構造情報から遅延値を求める遅延値換算ステップとを含み、前記タイミング制約作成ステップは、前記遅延値換算ステップにおいて求めた各々の前記遅延値に対して製造ばらつきを考慮した設計マージンを与えてタイミング制約を作成することを特徴とする。
請求項6記載の発明は、請求項5記載の半導体集積回路の設計方法において、前記構造情報は、前記各々の構造要素が有する抵抗値及び容量値であることを特徴とする。
請求項7記載の発明は、請求項2記載の半導体集積回路の設計方法において、前記遅延値算出ステップは、前記クロック分岐ポイント抽出ステップにおいて求めた前記クロック分岐ポイントから前記階層ブロックの各々のクロック入力端子までの遅延値を、前記構造要素のうちのセル及び配線に対するセル遅延と配線遅延とに分けて求める遅延値分類ステップを含み、前記タイミング制約作成ステップは、前記遅延値分類ステップにおいて求めた各々の前記セル遅延に対して前記セルの製造ばらつきを考慮した設計マージンを与え、また、各々の前記配線遅延に対して前記配線の製造ばらつきを考慮した設計マージンを与えてタイミング制約を作成することを特徴とする。
請求項8記載の発明は、請求項7記載の半導体集積回路の設計方法において、前記遅延値分類ステップでは、前記セルの種類及び前記配線の形状ごとに前記セル遅延と配線遅延とをそれぞれ求め、前記タイミング制約作成ステップでは、前記遅延値分類ステップにおいて求めた各々の前記セル遅延に対して前記セルの種類ごとに製造ばらつきを考慮した設計マージンを与え、また、各々の前記配線遅延に対して前記配線の形状ごとに製造ばらつきを考慮した設計マージンを与えてタイミング制約を作成することを特徴とする。
請求項9記載の発明の半導体集積回路の設計方法は、クロック信号に同期して動作する半導体集積回路の設計方法であって、前記クロック信号を受ける前記半導体集積回路のクロック入力端子から、この半導体集積回路内の階層ブロックが有する複数のクロック入力端子に至るクロック経路が確定していない段階で、前記半導体集積回路のクロック入力端子から前記階層ブロックのクロック入力端子への推定距離を求める推定距離算出ステップと、前記推定距離算出ステップにおいて求めた前記推定距離を遅延値に換算する遅延値換算ステップと、前記遅延値換算ステップにおいて求めた前記遅延値に対して製造ばらつきを考慮した設計マージンを与えてタイミング制約を作成するタイミング制約作成ステップと、前記タイミング制約作成ステップにおいて作成した前記タイミング制約に基づいて前記半導体集積回路のタイミング調整を行うタイミング調整ステップとを含むことを特徴とする。
以上のように、請求項1〜3記載の発明では、半導体集積回路のクロック入力端子から階層ブロックの複数のクロック入力端子までのクロック経路のうち、クロック分岐ポイントから階層ブロックの複数のクロック入力端子までのそれぞれの遅延値を求めてデータとして持たせる。そして、これら求めた遅延値に対して、クロック経路の特性に基づく製造ばらつきを考慮した設計マージンを与えて回路のタイミング調整を行なう。これにより、階層トップにおけるクロック経路の製造ばらつきを考慮した適切なタイミング調整を行うことができる。
また、請求項4記載の発明では、前記遅延値のデータは、クロック分岐ポイントからの遅延値を、このクロック分岐ポイントに対するクロック入力端子のペアごとに遅延値を持ったテーブル形式の書式で作成する。これにより、上記ペアのクロック入力端子から入力されるクロック信号を用いる階層ブロック内の回路間のタイミング調整を効率よく行うことができる。
また、請求項5及び6記載の発明では、遅延値を計算せずに、クロック経路上の各々の構造要素が有する構造情報をデータとして持たせておき、タイミング解析時に前記のデータから遅延値を求める。これにより、構造情報が置き換わった場合においても、階層トップにおけるクロック経路について、より詳細に製造ばらつきを考慮することができ、より適切なタイミング調整が可能となる。
請求項7記載の発明では、製造ばらつきによる設計マージンを、クロック経路上のセルごとに、あるいは、クロック経路上の配線ごとに分けて求めることにより、詳細に、製造ばらつきを考慮したタイミング調整を行うことができる。
特に、請求項8記載の発明では、製造ばらつきによる設計マージンを、クロック経路上のセルの個数、種類ごとに、あるいは、クロック経路上の配線の種類ごとに分けて求めることにより、更に詳細に、製造ばらつきを考慮したタイミング調整を行うことができる。
請求項9記載の発明では、半導体集積回路のクロック入力端子から階層ブロックのクロック入力端子への推定距離を求める。そして、求めた推定距離から遅延値へ換算する処理を行ない、半導体集積回路のクロック入力端子から階層ブロックのクロック入力端子への遅延値としてデータを保持する。これら求めた遅延値に対して、クロック経路の特性に基づく製造ばらつきを考慮した設計マージンを与えて回路設計を行う。これにより、例えばフロアプラン設計時のようなクロック回路構成が確定していない段階において、適切なタイミング調整を行なうことができる。
以上説明したように、請求項1〜6記載の発明によれば、階層トップのクロック経路の製造ばらつきも考慮したタイミング調整を行うので、従来よりも適切に製造ばらつきを考慮した設計マージンを与えることができ、過剰な設計マージンによる回路最適化による消費電力増加、および、設計期間の増加を抑えることができ、あるいは、過小な設計マージンによるレイアウト設計後の後戻りを無くすことが可能である。
請求項7及び8記載の発明によれば、セル、配線ごとに詳細な製造ばらつきを考慮した設計マージンを与えることができ、過剰な設計マージンによる回路最適化による消費電力増加、および、設計期間の増加を抑えることができ、あるいは、過小な設計マージンによるレイアウト設計後の後戻りを無くすことが可能である。
請求項9記載の発明によれば、フロアプラン設計時のようなクロック回路構成が確定していない段階においても、従来よりも適切に製造ばらつきを考慮した設計マージンを与えることができ、階層ブロック設計時に、階層トップの製造ばらつきに対して設計マージンを考慮したクロック遅延に基づいてレイアウト設計を行うことが可能となり、過剰な設計マージンによる回路最適化による消費電力増加、および、設計期間の増加を抑えることができ、あるいは、過小な設計マージンによるレイアウト設計の後戻りを無くすことが可能である。
(第1の実施の形態)
本発明の第1の実施の形態では、半導体集積回路の階層設計において、階層トップのクロック経路上の特性を考慮して、階層ブロック設計を行う方法について説明する。図1は、本実施の形態に係る半導体集積回路の設計方法を示すフローチャートである。図1に示す手順は、クロック回路構成が確定した後に実行される。
図1に示すステップS100では、まず、設計すべき半導体集積回路から階層トップのクロック経路を抽出する(クロック経路抽出ステップ)。次に、ステップS110では、抽出した各クロック経路から、半導体集積回路内の階層ブロックに設けられたクロック入力端子のうち、任意のペアに対応するクロック分岐ポイントを求める(クロック分岐ポイント抽出ステップ)。次に、ステップS120では、ステップS110にて抽出されたクロック分岐ポイントから階層ブロックのクロック入力端子への遅延値を求める(遅延値算出ステップ)。ここで、本実施の形態では、クロック入力端子ペアごとに前記抽出されたクロック分岐ポイントに対応付けて遅延値が求められる。次に、ステップS130では、ステップS120で求めた遅延値のそれぞれに対して、クロック経路の特性に基づく製造ばらつきを考慮した設計マージンを与えてタイミング制約が作成される(タイミング制約作成ステップ)。次に、ステップS140では、ステップS130で作成したタイミング制約に従って、階層ブロック内のタイミング調整を行う(タイミング調整ステップ)。このように、タイミング調整ステップS140では、階層トップでの製造ばらつきを考慮したクロック遅延をステップS130で求めているため、階層トップの製造ばらつきを考慮したタイミング制約に基づいて、階層ブロック内でのクロック回路の調整、および、データパスのタイミング調整が行われる。
図2に示す半導体集積回路(半導体チップ)に、図1に示す手順を適用した場合の説明を行う。図2に示す半導体集積回路は、少なくとも1つの階層ブロックを備えており、図2では、このうちの1つを階層ブロック203として示している。階層トップ202内の階層ブロック203の境界上に、階層ブロックの複数のクロック入力端子205T1、205T2、205T3が設けられている。半導体集積回路のクロック入力端子201からクロック信号が供給され、クロック回路は、クロック配線207、208、及びクロック系路上のセル204C1、204C2、204C3等の構造要素とクロック分岐ポイント206P1、206P2とで構成されている。尚、クロック配線208は、クロック配線207より太幅の配線である。
ここで、クロック分岐ポイント206P1は、クロック入力端子205T1とクロック入力端子205T2又はクロック入力端子205T3とに分岐するポイントであり、クロック分岐ポイント206P2は、クロック入力端子205T2とクロック入力端子205T3とに分岐するポイントである。すなわち、クロック分岐ポイント206P1(一のクロック分岐ポイント)に対して、クロック入力端子205T1とクロック入力端子205T2とがペアになると共に、クロック入力端子205T1とクロック入力端子205T3とがペアになる。また、クロック分岐ポイント206P2(一のクロック分岐ポイント)に対しては、クロック入力端子205T2とクロック入力端子205T3とがペアになる。
図3は、ステップS120で求めた遅延値のデータの持たせ方を示している。本実施の形態では、図1の遅延値を求めるステップS120において、階層トップ202のクロック経路を抽出する処理によって、クロック経路上の構造要素の構造情報が算出される(構造情報算出ステップ)。すなわち、ステップS120にて、クロック経路上の構造要素の構造情報である配線の抵抗値、容量値、セルの種類が求められる。ここでは図示していないが、これらの構造情報はテーブル形式で保持される。
そして、同じステップS120において、クロック分岐ポイント206P1、206P2が求められる。これに続いて、前記求められた構造要素の構造情報を基に、クロック分岐ポイント206P1、206P2のそれぞれから階層ブロック203の各クロック入力端子205T1、205T2、205T3への遅延値がクロック入力端子ペアごとに求められる(遅延値換算ステップ)。ここで、前記ペアのクロック入力端子へ分岐する各々のクロック分岐ポイントから一方のクロック入力端子への遅延値が、ペアとなる他方のクロック入力端子と対応付けられる。そして、これら対応付けられた遅延値テーブルが、図3に示すテーブル形式の書式により、ライブラリあるいは制約情報としてデータベース上に作成される。
このとき、クロックの分岐ポイントを求めることによって、悲観性の排除を行なっている。たとえば、階層ブロック203の入力端子205T1と205T3とのペアにおいては、クロック分岐ポイントは206P1となる。ここで、半導体集積回路のクロック入力端子201からクロック分岐ポイント206P1までの経路は、階層クロックの入力端子205T1と階層クロックの入力端子205T3とに向かうそれぞれの経路に対して共通であるため、この部分に関する製造ばらつきによる遅延変動差は0となり、考慮から外しても問題ない。これにより、クロック分岐ポイントから206P1から階層クロックの入力端子205T1と、クロック分岐ポイントから206P1から階層クロックの入力端子205T3とに対してのみ、製造ばらつきによる遅延変動差を考慮すればよいことになる。
したがって、図3の301は、階層ブロック203のクロック入力端子205T1と205T3とをペアとしたときのクロック分岐ポイント206P1から、階層ブロック203のクロック入力端子205T1までの遅延値を示している。同様に、図3の302は、階層ブロックのクロック入力端子205T1及び205T3をペアとしたときのクロック分岐ポイント206P1から、階層ブロックのクロック入力端子205T3までの遅延値を示している。
尚、クロック入力端子205T1に対して、自身のクロック入力端子205T1をペアとして考えたような場合は、製造ばらつきによる遅延変動差が0になるため求める必要が無い。従って、図3の表において、同一クロック入力端子の組み合わせとなる欄の値は、対角線を引いて省略している。
次に、階層ブロック203内でタイミング調整を行うときは、図3の表を用いる。ここでは、具体例として、あるパスの送り手側のフリップフロップが階層ブロック203のクロック入力端子205T1からのクロックで動作し、受け手側のフリップフロップが同じ階層ブロック203のクロック入力端子205T3から入力されるクロックで動作する場合を考える。この場合、図3に示したように、クロック分岐ポイント206P1からクロック入力端子205T1への遅延値301は2.4、また、クロック分岐ポイント206P1からクロック入力端子205T3への遅延値302は2.5である。これら図3の表の遅延値301、302に対して製造ばらつきを考慮した設計マージンを与えることにより、階層ブロック203内でのクロックツリーの製造ばらつきに対する設計マージンだけでなく、階層トップ202の製造ばらつきに基づく設計マージンが、階層ブロック203内のタイミング調整に反映される。
たとえば、階層トップ202の製造ばらつきに基づく設計マージンを+20%とすると、この場合の製造ばらつきを考慮した設計マージンを含むそれぞれの遅延値205T1(205T3)及び205T3(205T1)は、
205T1(205T3)=2.4*1.2=2.88
205T3(205T1)=2.5*1.2=3.00
となる(上式中の括弧内はペアのクロック入力端子を示している)。
尚、本実施の形態では、ステップS100で階層トップ202のクロック経路が抽出され、ステップS102では、ステップS100で抽出された抵抗値・容量値情報が遅延値へ換算され、クロック分岐ポイントから階層ブロック203の各クロック入力端子205T1、205T2、205T3への遅延値が、任意のクロック入力端子のペアごとに遅延値情報データとして保持されている。しかし、図3のように遅延値情報をデータとして持たせておくのではなく、クロック分岐ポイントから階層ブロック203の各クロック入力端子205T1、205T2、205T3までの抵抗値・容量値情報をテーブル形式のデータとして持たせておき、製造ばらつきに対する設計マージンを考慮した遅延値を求める段階で、前記テーブルを用いて遅延値を計算してもよい。このように、抵抗値・容量値情報をテーブル形式のデータとして持たせておくことにより、抵抗値や容量値等の値が置き換わったときに柔軟且つ適切に対応可能となる。
あるいは、クロック分岐ポイントからではなく半導体集積回路のクロック入力端子201から階層ブロック203の各クロック入力端子205T1、205T2、205T3までの遅延値が保持されていてもよい。
更には、遅延値テーブルに製造ばらつきを考慮した設計マージンを掛けたものが新たな遅延テーブルとして作成されてもよい。
このように、第1の実施の形態により、半導体集積回路のクロック入力端子201から階層ブロック203の各クロック入力端子205T1、205T2、205T3までの遅延値に対して製造ばらつきを考慮した設計マージンを掛けることで、従来よりも精度よく製造ばらつきによる影響を反映し、階層ブロック203内のタイミング調整を行なうことが可能となる。
(第2の実施の形態)
次に、図4及び図5を用いて、本発明の第2の実施の形態について説明を行う。
本実施の形態では、第1の実施の形態と同様に遅延値テーブルを作成する際、各遅延値を、セルおよび配線ごとに分けて作成することを特徴としたものである。
図4は、クロック分岐ポイントから階層ブロック203の各クロック入力端子205T1、205T2、205T3への遅延値を、クロック経路上の構造要素であるセル及び配線に対して、セル遅延と配線遅延とにデータを分けて作成した場合を示している。このように、本実施の形態では、遅延値を求めるステップS120は、クロック分岐ポイントを抽出するステップS110において求めたクロック分岐ポイントから、階層ブロック203の各々のクロック入力端子205T1、205T2、205T3までの遅延値を、セル及び配線(クロック経路上の構造要素)に対してセル遅延と配線遅延とに分けて求めるステップ(遅延値分類ステップ)を含む。
たとえば、セル遅延に対する製造ばらつきを考慮した設計マージンを+20%、配線遅延に対する製造ばらつきを考慮した設計マージンを+10%とすると、この場合の製造ばらつきに対する設計マージンを考慮した各遅延値205T1(205T3)、205T3(205T1)は、セル遅延に対して1.2を、また、配線遅延に1.1を掛けて、
205T1(205T3)=1.8*1.2+0.6*1.1=2.82
205T3(205T1)=1.7*1.2+0.8*1.1=2.92
となる(上式中の括弧内はペアのクロック入力端子を示している)。
これにより、セル遅延と配線遅延とに対して、製造ばらつきを考慮した設計マージンを別々に与えることが可能となり、より精度よく製造ばらつきを反映したタイミング調整が可能となる。
また第1の変形例として、前記セル遅延と前記配線遅延とを別々に持つ遅延値テーブルに対して、セルの種類と配線の種類とを別々に持つ遅延テーブルを持つように作成する。
図5は、ステップS120において、更に詳細に、セルの種類ごとに遅延値を求め、同じセルの種類の遅延値は足し合わせて記載し、また、配線の種類ごとに遅延値を求め、同じ配線の種類の遅延値は足し合わせて記載する(遅延値分類ステップ)。また、クロック経路上の構成に使用されている全セルの種類、全配線の種類を記載するため、セルの遅延、および、配線の遅延の行は可変である。
たとえば、セル204C1のセル遅延に対する製造ばらつきを考慮した設計マージンを+20%、セル204C3のセル遅延に対する製造ばらつきを考慮した設計マージンを+15%、太幅のクロック配線208の配線遅延に対する製造ばらつきを考慮した設計マージンを+10%、通常幅のクロック配線207の配線遅延に対する製造ばらつきを考慮した設計マージンを+5%とすると、この場合の全製造ばらつきに対する設計マージンを考慮した各遅延値205T1(205T3)、205T3(205T1)は、
205T1(205T3)=1.8*1.2 +0.05*1.1+0.55*1.05=2.7925
205T3(205T1)=1.7*1.15+0.75*1.1+0.05*1.05=2.8325
となる(上式中の括弧内はペアのクロック入力端子を示している)。
これにより、セルの種類および配線の種類ごとに、製造ばらつきを考慮した設計マージンを詳細に与えることが可能となり、より精度良く製造ばらつきを考慮した設計マージンを与えることが可能となる。
上述した以外にも、クロック経路の特性として、クロック経路上に存在する配線のピッチやシールドの有無などを考慮してもよい。また、求めたクロック経路の特性に基づき、いかなる方法で製造ばらつきを考慮して設計マージンを求めるかは任意である。
このように、第2の実施の形態により、半導体集積回路のクロック入力端子201から階層ブロック203の各クロック入力端子205T1、205T2、205T3までの遅延値に対して製造ばらつきを考慮した設計マージンを掛けることにより、セル、配線ごとに詳細な製造ばらつきを反映した階層ブロック203内のタイミング調整を行なうことができる。
(第3の実施の形態)
次に、図6のフローチャート図及び図7の半導体集積回路の構成図を用いて、第3の実施の形態について説明を行う。
本実施の形態では、半導体集積回路の階層設計において階層トップのクロック経路推定を行い、階層ブロック設計を行う方法について説明する。
図6は、本実施の形態に係る半導体集積回路の設計方法を示すフローチャートである。図6に示す手順は、フロアプラン段階のようなクロック回路構成が確定していない段階に対して実行される。
図6に示す手順では、まず、ステップS600において、設計すべき半導体集積回路のクロック入力端子から階層ブロックのクロック入力端子への距離を推定し、その値を求める(推定距離算出ステップ)。次に、ステップ610では、ステップS600において求めた推定距離を遅延値に換算し、半導体集積回路のクロック入力端子から階層ブロックのクロック入力端子への遅延値を求める(遅延値換算ステップ)。次に、ステップS620では、ステップ610において求めた遅延値を用いて、製造ばらつきを考慮した設計マージンを与えて、タイミング制約を作成する(タイミング制約作成ステップ)。そして、ステップS630では、ステップS620において作成したタイミング制約にしたがって、階層ブロック内のタイミング調整を行う(タイミング制約作成ステップ)。
このように、階層トップにおける半導体集積回路のクロック入力端子から階層ブロックのクロック入力端子までの推定距離のみに基づいて遅延値を換算し、この遅延値に対して、階層トップでの製造ばらつきを考慮した推定クロック遅延を用いて、ステップS630のタイミング調整が行われるので、階層トップのレイアウトが完了していない段階においても、精度の高いクロック回路の調整及びデータ間のタイミング調整を行うことが可能となる。
次に、図7に示す半導体集積回路の構成図を用いて、図6に示す手順を適用した場合の半導体集積回路の設計方法の説明を行う。
図7に示す半導体集積回路は、階層ブロック702内に1つの階層ブロック703を有している。この階層ブロック703の境界上には、階層ブロック703のクロック入力端子704T1、704T2、704T3があり、半導体集積回路のクロック入力端子701から供給されるクロック信号を受けている。ここで、705は、階層トップのレイアウトが完了していない段階の推定クロック経路を示している。
上記説明したステップS600では、階層トップ702において、半導体集積回路のクロック入力端子701から階層ブロック703の各クロック入力端子704T1、704T2、704T3への距離、およびクロック分岐ポイントを求める。距離の求め方としては、特に限定はしないが以下の方法がある。距離が最短になるように、垂直方向と水平方向だけの線分を用いて2点間の距離を求め、直交スタイナ配線を用いて距離を求めることができる。また、配線混雑度や配線禁止領域などを考慮して推定距離を求めてもよい。前記手法で推定距離を求めたときの、半導体集積回路のクロック入力端子701から階層ブロック703のクロック入力端子704T1への距離を2.1mm、クロック入力端子704T2への距離を1.9mm、クロック入力端子704T3への距離を2.3mmとする。
次に、ステップ610において、前記求めた距離を基に遅延値へ換算する処理を行う。遅延値への換算方法は特に限定はしないが、たとえば以下の方法がある。過去の統計的な数値から距離に応じた図8のような距離−遅延値テーブルを作成しておく。これを用いると、半導体集積回路のクロック入力端子701から階層ブロック703のクロック入力端子704T1への遅延値は2.2、クロック入力端子704T2への遅延値は2.0、クロック入力端子704T3への遅延値は2.4となる。
このようにステップS610で求められた遅延値に対して、ステップS620では、第1の実施の形態のS130と同様に製造ばらつきを考慮した設計マージンを与えてタイミング制約を作成し、この作成したタイミング制約に従って、続くステップS630において階層ブロック703内のタイミング調整を行う。
上述の説明以外にも、クロック経路の特性として、クロック経路上に存在する配線のピッチやシールドの有無などを考慮してもよい。また、求めたクロック経路の特性に基づき、いかなる方法で製造ばらつきを考慮した設計マージンを求めるかは任意である。これら各変形例に係る半導体集積回路の設計方法は、いずれも、図6に示す設計方法と同様の効果を奏する。
このように、第3の実施の形態により、フロアプラン段階のクロックツリー構成が確定していない場合でも、すなわち、階層トップのレイアウトが完了していない段階においても、半導体集積回路のクロック入力端子701から階層ブロック703の各クロック入力端子704T1、704T2、704T3までの推定遅延値に対して、製造ばらつきを考慮した設計マージンを含む係数を掛けることで、階層トップの製造ばらつきを反映した階層ブロック内のタイミング調整を可能とし、従来よりも高精度に半導体集積回路の設計を行うことができる。
本発明は、過剰な設計マージンによる回路最適化による消費電力の増加、及び設計期間の増加を抑え、また、設計マージンによるレイアウト設計後の後戻りを無くすことができるので、種々の半導体集積回路の設計において適用可能であり、特にクロック信号に同期して動作する半導体集積回路に有用である。
本発明の第1の実施の形態に係る半導体集積回路の設計方法を示すフローチャート図である。 本発明の第1の実施の形態に係る半導体集積回路の構成を示す図である。 本発明の第1の実施の形態に係る半導体集積回路の設計方法によって作成する遅延値情報テーブルの図である。 本発明の第2の実施の形態に係る半導体集積回路の設計方法によって作成する、セル及び配線に対する遅延値情報テーブルの図である。 本発明の第2の実施の形態に係る半導体集積回路の設計方法によって作成する、複数のセル及び配線ごとに分類した遅延値情報テーブルの図である。 本発明の第3の実施の形態に係る半導体集積回路の設計方法を示すフローチャート図である。 本発明の第3の実施の形態に係る半導体集積回路の構成を示す図である。 本発明の第3の実施の形態に係る半導体集積回路の設計方法によって作成する遅延値情報テーブルの図である。
符号の説明
201、701 半導体集積回路のクロック入力端子
202、702 階層トップ
203、703 階層ブロック
204C1、204C2、
204C3 基本セル
205T1、205T2、
205T3、704T1、
704T2、704T3 階層ブロックのクロック入力端子
206P1、206P2 クロックツリーのクロック分岐ポイント
207 通常幅のクロック配線
208 太幅のクロック配線
705 推定クロック経路
S100 クロック経路抽出ステップ
S110 クロック分岐ポイント抽出ステップ
S120 遅延値算出ステップ
S130、S620 タイミング制約作成ステップ
S140、S630 タイミング調整ステップ
S600 推定距離算出ステップ
S610 遅延値換算ステップ

Claims (9)

  1. クロック信号に同期して動作する半導体集積回路の設計方法であって、
    前記クロック信号を受ける前記半導体集積回路のクロック入力端子から、この半導体集積回路内の階層ブロックが有する複数のクロック入力端子に至るクロック経路を抽出するクロック経路抽出ステップと、
    前記クロック経路抽出ステップにおいて抽出した前記クロック経路が前記複数のクロック入力端子へ分岐するクロック分岐ポイントを求めるクロック分岐ポイント抽出ステップと、
    前記クロック分岐ポイント抽出ステップにおいて求めた前記クロック分岐ポイントから前記階層ブロックの各々のクロック入力端子までの遅延値を求める遅延値算出ステップと、
    前記遅延値算出ステップにおいて求めた各々の前記遅延値に対して製造ばらつきを考慮した設計マージンを与えてタイミング制約を作成するタイミング制約作成ステップと、
    前記タイミング制約作成ステップにおいて作成した前記タイミング制約に基づいて前記半導体集積回路のタイミング調整を行うタイミング調整ステップとを含む
    ことを特徴とする半導体集積回路の設計方法。
  2. 請求項1記載の半導体集積回路の設計方法において、
    前記クロック分岐ポイントから前記階層ブロックの各々のクロック入力端子までの遅延値は、前記クロック経路を構成する各々の構造要素ごとに求められる
    ことを特徴とする半導体集積回路の設計方法。
  3. 請求項1記載の半導体集積回路の設計方法において、
    前記遅延値算出ステップにおいて求めた各々の前記遅延値はライブラリ又は制約情報として保持される
    ことを特徴とする半導体集積回路の設計方法。
  4. 請求項3記載の半導体集積回路の設計方法において、
    前記ライブラリ又は前記制約情報として保持される前記遅延値は、前記階層ブロックのクロック入力端子の任意のペアごとに、このペアに対する一のクロック分岐ポイントから前記ペアの一方のクロック入力端子までの遅延値に他方のクロック入力端子を対応付けたテーブル形式で保持される
    ことを特徴とする半導体集積回路の設計方法。
  5. 請求項2記載の半導体集積回路の設計方法において、
    前記遅延値算出ステップは、
    前記クロック経路上の前記各々の構造要素が有する構造情報を求めてテーブル形式で保持する構造情報算出ステップと、
    前記構造情報算出ステップにおいて求めた前記構造情報から遅延値を求める遅延値換算ステップとを含み、
    前記タイミング制約作成ステップは、前記遅延値換算ステップにおいて求めた各々の前記遅延値に対して製造ばらつきを考慮した設計マージンを与えてタイミング制約を作成する
    ことを特徴とする半導体集積回路の設計方法。
  6. 請求項5記載の半導体集積回路の設計方法において、
    前記構造情報は、前記各々の構造要素が有する抵抗値及び容量値である
    ことを特徴とする半導体集積回路の設計方法。
  7. 請求項2記載の半導体集積回路の設計方法において、
    前記遅延値算出ステップは、前記クロック分岐ポイント抽出ステップにおいて求めた前記クロック分岐ポイントから前記階層ブロックの各々のクロック入力端子までの遅延値を、前記構造要素のうちのセル及び配線に対するセル遅延と配線遅延とに分けて求める遅延値分類ステップを含み、
    前記タイミング制約作成ステップは、前記遅延値分類ステップにおいて求めた各々の前記セル遅延に対して前記セルの製造ばらつきを考慮した設計マージンを与え、また、各々の前記配線遅延に対して前記配線の製造ばらつきを考慮した設計マージンを与えてタイミング制約を作成する
    ことを特徴とする半導体集積回路の設計方法。
  8. 請求項7記載の半導体集積回路の設計方法において、
    前記遅延値分類ステップでは、前記セルの種類及び前記配線の形状ごとに前記セル遅延と配線遅延とをそれぞれ求め、
    前記タイミング制約作成ステップでは、前記遅延値分類ステップにおいて求めた各々の前記セル遅延に対して前記セルの種類ごとに製造ばらつきを考慮した設計マージンを与え、また、各々の前記配線遅延に対して前記配線の形状ごとに製造ばらつきを考慮した設計マージンを与えてタイミング制約を作成する
    ことを特徴とする半導体集積回路の設計方法。
  9. クロック信号に同期して動作する半導体集積回路の設計方法であって、
    前記クロック信号を受ける前記半導体集積回路のクロック入力端子から、この半導体集積回路内の階層ブロックが有する複数のクロック入力端子に至るクロック経路が確定していない段階で、前記半導体集積回路のクロック入力端子から前記階層ブロックのクロック入力端子への推定距離を求める推定距離算出ステップと、
    前記推定距離算出ステップにおいて求めた前記推定距離を遅延値に換算する遅延値換算ステップと、
    前記遅延値換算ステップにおいて求めた前記遅延値に対して製造ばらつきを考慮した設計マージンを与えてタイミング制約を作成するタイミング制約作成ステップと、
    前記タイミング制約作成ステップにおいて作成した前記タイミング制約に基づいて前記半導体集積回路のタイミング調整を行うタイミング調整ステップとを含む
    ことを特徴とする半導体集積回路の設計方法。
JP2005147970A 2005-05-20 2005-05-20 半導体集積回路の設計方法 Pending JP2006324578A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005147970A JP2006324578A (ja) 2005-05-20 2005-05-20 半導体集積回路の設計方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005147970A JP2006324578A (ja) 2005-05-20 2005-05-20 半導体集積回路の設計方法

Publications (1)

Publication Number Publication Date
JP2006324578A true JP2006324578A (ja) 2006-11-30

Family

ID=37544008

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005147970A Pending JP2006324578A (ja) 2005-05-20 2005-05-20 半導体集積回路の設計方法

Country Status (1)

Country Link
JP (1) JP2006324578A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008120346A1 (ja) * 2007-03-29 2008-10-09 Fujitsu Limited 回路設計支援プログラム、回路設計支援装置および回路設計支援方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008120346A1 (ja) * 2007-03-29 2008-10-09 Fujitsu Limited 回路設計支援プログラム、回路設計支援装置および回路設計支援方法

Similar Documents

Publication Publication Date Title
US9928337B2 (en) Integrated circuit and design method for same
US8533649B2 (en) Reducing leakage power in integrated circuit designs
JP4501728B2 (ja) クロストークエラー制御装置、クロストークエラー制御方法およびクロストークエラー制御プログラム
JP4528659B2 (ja) クロックジッタ算出装置、クロックジッタ算出方法、およびクロックジッタ算出プログラム
JP4154384B2 (ja) 半導体装置の設計方法
JP2004139181A (ja) レイアウト装置及びプログラム
JP2009163655A (ja) 半導体装置の製造方法、半導体装置の製造プログラムおよび半導体装置の製造システム
US20070226671A1 (en) Apparatus and method of static timing analysis considering the within-die and die-to-die process variation
JP2008140821A (ja) 半導体装置および半導体装置の設計方法
US20100037191A1 (en) Method of generating reliability verification library for electromigration
US7698667B2 (en) Pattern correction apparatus, pattern optimization apparatus, and integrated circuit design apparatus
JP2010073137A (ja) 半導体集積回路設計方法及び設計プログラム
JP2006324578A (ja) 半導体集積回路の設計方法
JP4539376B2 (ja) 伝送信号波形解析方法及びプログラム
JP2006261458A (ja) クロックツリー安定化装置、および半導体装置
JP2009075822A (ja) 半導体回路設計装置
JP2008283087A (ja) 半導体集積回路の設計方法、それを実行させるプログラム、及び半導体集積回路
JP4523290B2 (ja) セルレイアウト、半導体集積回路装置、半導体集積回路の設計方法並びに半導体集積回路の半導体製造方法
JP2005276970A (ja) オンチップデカップリングキャパシタ挿入方法及び集積回路装置
JP2010278219A (ja) レイアウト設計方法及びレイアウト設計装置
JP2008205399A (ja) 半導体集積回路の設計方法
US20130080198A1 (en) Timing signoff for maximum profit
US20050289492A1 (en) Method of LSI designing and a computer program for designing LSIs
JP2005294663A (ja) 半導体集積回路の配線方法
JP2003296386A (ja) 半導体集積回路の設計方法及び半導体集積回路