JP4118578B2 - 半導体集積回路の設計方法および設計プログラム - Google Patents

半導体集積回路の設計方法および設計プログラム Download PDF

Info

Publication number
JP4118578B2
JP4118578B2 JP2002069810A JP2002069810A JP4118578B2 JP 4118578 B2 JP4118578 B2 JP 4118578B2 JP 2002069810 A JP2002069810 A JP 2002069810A JP 2002069810 A JP2002069810 A JP 2002069810A JP 4118578 B2 JP4118578 B2 JP 4118578B2
Authority
JP
Japan
Prior art keywords
delay
clock
adjustment position
delay adjustment
semiconductor integrated
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
JP2002069810A
Other languages
English (en)
Other versions
JP2003271689A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2002069810A priority Critical patent/JP4118578B2/ja
Priority to US10/369,535 priority patent/US7047504B2/en
Publication of JP2003271689A publication Critical patent/JP2003271689A/ja
Application granted granted Critical
Publication of JP4118578B2 publication Critical patent/JP4118578B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、複数のクロックモードを具備する半導体集積回路の設計方法、および設計プログラムに関し、特に、各クロックモードにおける複数のクロックパスにおけるクロックスキューを最適化することが可能な半導体集積回路の設計方法および設計プログラムに関する。
【0002】
【従来の技術】
近年、LSIの集積度が高められ、微細化されていくのに伴って、1つのLSIによる処理規模が大きくなり、従来と比較してより複雑で高機能なLSIを実現することが可能となっている。このような高機能なLSIでは、従来と比較してより複雑なクロック信号が使用されている場合が多い。例えば、通常使用のためのクロック信号と、テスト用のクロック信号のように、複数のクロックモードを具備するLSIが存在している。あるいは、消費電力を抑制するための手法として、フリップフロップがデータを更新しない間、クロック信号の供給を止めるゲーテッドクロック回路等が使用されている。
【0003】
【発明が解決しようとする課題】
しかし、このようにクロック信号が複雑に使用されると、パス上のゲートの段数や負荷の増加等によりクロックスキューが増大する恐れがあり、その結果、回路内のフリップフロップ回路等で正常なクロックタイミングが得られない場合がある。特に、複数のクロックモードを具備する回路の場合は、すべてのクロック信号に対して、クロックスキューに対するタイミング補正を行う必要が生じる。
【0004】
複数のクロックモードを具備する回路の設計時には、従来では通常、いずれかのクロックモードで最適化してレイアウトを行っている。このため、クロックモードを変えて動作させると、新たにタイミングエラーが発生したパスが現れる可能性がある。高機能なLSIの場合、すべてのクロックモードにおいてクロックタイミングを合わせ込むことが非常に難しい場合がある。従来ではこのような場合、設計者がマニュアルでクロックモードごとのスキュー調整を行っていたため、非常に多くの工数を要していた。
【0005】
ここで、図10は、複数のクロックモードを具備するLSIの回路構成例を示す図である。
図10では、LSIの入力端の一部の回路構成例を示している。この回路では、通常使用のためのクロック信号CLKと、回路の動作テストの際に使用されるテストクロック信号TCKの2つが供給されている。クロック信号CLKは、セルC71を介して分岐され、一方はセレクタS72の入力端子A72に、他方はORゲートG73を経てセレクタS74の入力端子A74に供給される。また、テストクロック信号TCKは、セルC75を介して分岐され、一方はセレクタS72の入力端子B72に、他方はセレクタS74の入力端子B74に供給される。
【0006】
セレクタS72およびS74の双方には、セルC76を介してテスト信号TSTが供給され、このテスト信号TSTによりクロック信号CLKとテストクロック信号TCKの出力が切り換えられ、クロックモードの切り換えが行われる。
【0007】
セレクタS72の出力端子X72からの出力信号は、セルC77およびC78を介して分岐され、フリップフロップ回路FF79およびFF80の各クロック入力に入力される。また、セレクタS74からの出力信号は、セルC81を介して分岐され、フリップフロップ回路FF82およびFF83の各クロック入力に入力される。フリップフロップ回路FF80からの出力信号は、フリップフロップ回路FF83のデータ入力に入力され、また、フリップフロップ回路FF82の出力信号は、フリップフロップ回路FF79のデータ入力に入力される。
【0008】
また、クロック信号CLKが入力されるORゲートG73には、他方の入力端子B73に制御信号ENが入力され、これによりゲーテッドクロック回路が構成される。すなわち、通常動作時において、Hレベルの制御信号ENが入力されると、フリップフロップ回路FF82およびFF83へのクロック信号CLKの出力がHレベルに保持されて、フリップフロップ回路FF82およびFF83からの出力データの更新が停止される。
【0009】
ここで、クロック信号CLKについて、入力からセルC71、セレクタS72、セルC77およびC78を経てフリップフロップ回路FF79およびFF80に達する信号経路を、クロックパスCP710とする。また、入力からセルC71、ORゲートG73、セレクタS74、セルC81を経てフリップフロップ回路FF82およびFF83に達する信号経路を、クロックパスCP720とする。さらに、テストクロック信号TCKについて、入力からセルC75、セレクタS72、セルC77およびC78を経てフリップフロップ回路FF79およびFF80に達する信号経路を、クロックパスCP810とする。また、入力からセルC75、セレクタS74、セルC81を経てフリップフロップ回路FF82およびFF83に達する信号経路を、クロックパスCP820とする。
【0010】
ところで、上記のように複数のクロックモードを具備する回路の設計時には、従来では通常、いずれかのクロックモードで最適化してレイアウトを行っていた。例えば上記の回路の場合、通常動作用のクロック信号CLKによる正常な動作を実現するように、クロックスキューを合わせ込んでレイアウトが行われるのが通常であった。従って、クロックパスCP710およびCP720がクロックスキューの考慮対象となる。しかし、実際には、テストクロック信号TCKによるクロックパスCP810およびCP820についても動作を保証する必要があり、同様にクロックスキューの考慮対象としなければならない。
【0011】
クロックモードを変えて動作させると、新たにタイミングエラーが発生したパスが現れる可能性がある。従来ではこのような場合、すべてのパスにおけるクロックスキューを考慮して、設計者がマニュアルでセルの挿入や変更を行って調整していた。しかし、クロック信号が複雑に使用された高機能なLSIの場合、すべてのクロックモードの動作におけるすべてのパスにおいてクロックタイミングを合わせ込むことが非常に難しい場合がある。また、クロックスキューが不均衡な状態では、フリップフロップ間のセットアップ/ホールドエラーを修正するために、大掛かりな回路変更を強いられる場合が多く、大量の回路修正やバッファ挿入等を行う必要が生じる。従って、設計者によるマニュアル作業では非常に多くの工数を要し、作業効率が極めて悪いことが問題となっていた。
【0012】
本発明はこのような課題に鑑みてなされたものであり、複数のクロックモードを具備する半導体集積回路の設計の際に、複数のクロックモードにおけるクロックスキューの最適化を効率的に行うことが可能な、半導体集積回路の設計方法を提供することを目的とする。
【0013】
また、本発明の他の目的は、複数のクロックモードを具備する半導体集積回路の設計の際に、複数のクロックモードにおけるクロックスキューの最適化を効率的に行うことが可能な、半導体集積回路の設計プログラムを提供することである。
【0014】
【課題を解決するための手段】
本発明では上記課題を解決するために、図1に示すように、複数のクロックモードを具備する半導体集積回路の設計方法において、クロックパス解析手段が、前記半導体集積回路のレイアウトデータの入力を受け、当該レイアウトデータから、前記各クロックモードにおける複数のクロックパスを検出するステップと(ステップS1)、前記クロックパス解析手段が、検出した前記各クロックパス上に存在するすべての素子のディレイ量を、記憶手段に記憶された、前記レイアウトデータに使用される回路データのデータベースから収集するステップと(ステップS2)、ディレイ調整位置設定手段が、検出された前記各クロックパス上におけるディレイ調整位置を設定するステップと(ステップS3)、ディレイ値演算手段が、設定された前記ディレイ調整位置におけるディレイ量を非負数の変数とし、収集された前記素子のディレイ量と前記変数より前記クロックパスごとに線形式を作成して演算することにより、前記各クロックパス上の前記ディレイ調整位置における最適なディレイを算出するステップと(ステップS4)、回路修正手段が、算出された前記ディレイ値に基づき、前記各ディレイ調整位置に、該当するディレイ量を有する前記データベースに基づく遅延素子を配設して、前記レイアウトデータによる回路構成を自動的に修正するステップと(ステップS5)、を含み、前記ディレイ調整位置を設定するステップ(ステップS3)では、前記ディレイ調整位置は、検出された前記クロックパス上において、複数の入力端子により複数の前記クロックパスが合流する素子である第1の合流素子が存在した場合、前記入力端子の直前に設定されることを特徴とする半導体集積回路の設計方法が提供される。
【0015】
このような半導体集積回路の設計方法では、検出した複数のクロックパスについて、ディレイ調整位置を自動的に指定する。このとき、検出されたクロックパス上において、複数の入力端子により複数のクロックパスが合流する素子である第1の合流素子が存在した場合には、ディレイ調整位置を入力端子の直前に設定する。次に、このディレイ調整位置におけるディレイ量を変数として、この変数と各クロックパス上のセルのディレイ量とにより線形式を作成し、変数の値を算出して最適なディレイ量を得る。この線形式の演算では、例えば線形計画法を用いる。そして、該当するディレイ量を有する遅延素子を各ディレイ調整位置に配設して、回路のレイアウトを修正する。従って、検出した複数のクロックパスについて、クロックスキューが最適化されたレイアウトデータが自動的に生成される。
【0016】
また、本発明では、複数のクロックモードを具備する半導体集積回路を設計するための設計プログラムにおいて、前記半導体集積回路のレイアウトデータから、前記各クロックモードにおける複数のクロックパスを検出するステップと、検出した前記各クロックパス上に存在するすべての素子のディレイ量を収集するステップと、検出した前記各クロックパス上におけるディレイ調整位置を設定するステップと、設定した前記ディレイ調整位置におけるディレイ量を非負数の変数とし、収集した前記素子のディレイ量と前記変数より前記クロックパスごとに線形式を作成して演算することにより、前記各クロックパス上の前記ディレイ調整位置における最適なディレイを算出するステップと、算出した前記ディレイ値に基づき、前記各ディレイ調整位置に、該当するディレイ量を有する遅延素子を配設して、前記レイアウトデータによる回路構成を自動的に修正するステップと、を含み、前記ディレイ調整位置を設定するステップでは、前記ディレイ調整位置は、検出した前記クロックパス上において、複数の入力端子により複数の前記クロックパスが合流する素子である第1の合流素子が存在した場合、前記入力端子の直前に設定される、処理をコンピュータに実行させることを特徴とする半導体集積回路の設計プログラムが提供される。
【0017】
このような処理により、コンピュータは複数のクロックモードを具備する半導体集積回路を設計する装置として機能する。この装置では、検出した複数のクロックパスについて、ディレイ調整位置が自動的に指定される。このとき、検出したクロックパス上において、複数の入力端子により複数のクロックパスが合流する素子である第1の合流素子が存在した場合には、ディレイ調整位置が入力端子の直前に設定される。次に、このディレイ調整位置におけるディレイ量を変数として、この変数と各クロックパス上のセルのディレイ量とにより線形式が作成され、変数の値が算出されて最適なディレイ量が得られる。この線形式の演算では、例えば線形計画法が用いられる。そして、該当するディレイ量を有する遅延素子が各ディレイ調整位置に配設されて、回路のレイアウトが修正される。従って、検出した複数のクロックパスについて、クロックスキューが最適化されたレイアウトデータが自動的に生成される。
【0018】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
図1は、本発明の半導体集積回路の設計方法の処理の流れを示すフローチャートである。以下、図1を用いて、本発明の半導体集積回路の設計方法の概要について説明する。なお、ここでは、処理されるレイアウトデータやネットリスト等のデータは、プロセッサにより制御される情報処理装置が扱うことができるファイル形式を有することを想定している。
【0019】
本発明では、例えば、目的の半導体集積回路を構成するフリップフロップ回路やセレクタといった各種の素子やセルを指定する情報と、これらの素子およびセルの接続情報等を記述したネットリスト等を基にして、回路のレイアウト状態を記述したレイアウトデータが与えられる。また、このレイアウトデータに基づく半導体集積回路は、複数のクロックモードを具備している。例えば、この半導体集積回路は、通常動作用とテスト用等の複数のクロック信号の入力を受けて、それぞれのクロック信号により動作する。あるいは、回路の内部において、入力されたクロック信号を分周した複数の信号のいずれかによる複数の動作モードを具備する素子が存在している。
【0020】
本発明では、このようなレイアウトデータに基づく半導体集積回路に含まれるフリップフロップ等の所定の素子において、入力される複数のクロック信号によるクロックスキューを所定範囲内に収め、この素子が各クロックモードで正常に動作するようにレイアウトデータを自動的に修正する。このために、すべてのクロックモードによるクロック信号のパス(以下、クロックパスと呼称する)を複数検出して、各クロックパスにおいてディレイ調整位置を設定する。そして、各検出したクロックパスにおけるクロックスキューが目的の範囲内となるように、例えば線形計画法(Liner Programming)により各ディレイ調整位置で必要なディレイ量を算出し、遅延素子を配置して回路構成を修正する。
【0021】
以下、図1に沿って説明する。例えばネットリストに基づいてレイアウトデータが生成されると、ステップS1において、このレイアウトデータを解析し、各クロックモードにおける複数のクロックパスを検出する。例えば、回路中より複数のクロックモードで動作するフリップフロップ等の素子を抽出し、この素子に入力される各クロック信号についての入力からのクロックパスを、レイアウトデータから複数検出する。なお、このとき各クロックモードにおけるすべてのクロックパスを検出することが望ましい。
【0022】
ステップS2において、検出した各クロックパス上に存在するすべての素子のディレイ量を、例えばライブラリ等から収集し、すべてのクロックパスにおけるディレイ量を算出する。
【0023】
ステップS3において、ステップS1で検出した各クロックパス上におけるディレイ調整位置を設定する。このディレイ調整位置の設定方法としては、例えば、検出したクロックパス上から、複数の入力端子により複数のクロックパスが合流する素子を抽出し、この素子の入力端子の直前位置をディレイ調整位置として設定する。
【0024】
また、例えば、上記のディレイ調整位置の設定方法を設定ルールR1とし、この設定ルールR1による設定位置の中から、以下の設定ルールR2の条件を満たす場合はディレイ調整位置として設定しないようにしてもよい。ここで、設定ルールR1で抽出されたクロックパスが合流する素子を第1の合流素子と呼称することにすると、設定ルールR1による設定位置から該当するクロックパスの上流を辿り、この設定位置の直前に存在する素子が、複数のクロックパスが合流する第2の合流素子であるか否かを判定する。そして、第2の合流素子である場合に、設定ルールR1による設定位置から第2の合流素子までの経路にクロックパスの分岐点があるか否かを判定して、分岐点がない場合にはそのディレイ調整位置を削除する。
【0025】
このようなディレイ調整位置の設定方法により、各クロックパス上において必要最小限のディレイ調整位置が設定され、後の回路構成の修正時に修正位置の数が抑制され、回路規模の拡大を防止することができる。
【0026】
次に、ステップS4において、設定したディレイ調整位置におけるディレイ量を変数とし、この変数と、収集した素子のディレイ量よりクロックパスごとに線形式を作成して変数を求め、各パス上のディレイ調整位置における最適なディレイ量を算出する。なお、この変数はすべて0以上の値であるとする。
【0027】
この際に作成する線形式では、例えば、検出した各クロックパス上で収集したすべての素子におけるディレイ量と変数との和が所定の範囲内となるようにして、各クロックパス上のクロックスキューが正常動作に必要な範囲内となるようにする。また、線形式の演算では例えば、設定したすべてのディレイ調整位置におけるディレイ量の和が最小となるように、最適化条件を設定して、線形計画法を用いて変数を算出する。この結果、変数の値として、クロックスキューを最適化するために必要最小限のディレイ量が求められる。
【0028】
次に、ステップS5において、算出されたディレイ値に基づき、各ディレイ調整位置に該当するディレイ量を有する遅延素子を配設して、レイアウトデータによる回路構成を自動的に修正する。この回路構成の修正は、例えば以下の2つの方法により行う。第1の修正方法は、ライブラリ等にあらかじめ用意された遅延素子のセル群の中から、例えばステップS4において算出されたディレイ値に最も近いディレイ量を有する遅延素子のセルを選択して、レイアウトデータによる回路構成を修正する。また、第2の修正方法は、算出されたディレイ値より、あらかじめ用意された単一の遅延素子のデータを組み合わせて該当するディレイ量を有する新たな遅延素子のデータを生成し、このデータを用いてレイアウトデータによる回路構成を修正する。この第2の修正方法は、第1の修正方法において、算出されたディレイ値に対して選択可能なセルが用意されていない場合に行われてもよい。
【0029】
また、上記の第1および第2の修正方法では、それぞれ選択したセルや生成した遅延素子を挿入する際に、レイアウトデータの記述を直接変更することにより回路構成を修正してもよく、その他に例えば、選択したセルあるいは生成した遅延素子のデータによりネットリストの接続情報を変更し、このネットリストの変更をレイアウトデータに反映されることで、回路構成を修正するようにしてもよい。
【0030】
以上の半導体集積回路の設計方法では、複数のクロックモードにおけるクロックパスを複数抽出して、線形計画法により各クロックパス上に設定したディレイ調整位置における最適なディレイ値を算出して、必要な遅延素子を自動的に挿入する。従って、従来、膨大な工数および時間を費やして設計者がマニュアル作業で行っていたのに比較して、クロックスキューの最適化のための設計変更を短時間で効率的に行うことが可能となる。
【0031】
また、ステップS3の処理で設定ルールR1およびR2を適用することにより、各クロックパス上で必要最小限のディレイ調整位置が設定され、さらに、ステップS4における各ディレイ調整位置のディレイ値の演算では、例えば線形計画法を用いることにより最適な各ディレイ値の最小値を算出することが可能であるため、無駄な遅延素子の挿入が行われず、最低限の回路構成の変更でクロックスキューを最適化することができる。
【0032】
なお、以上の半導体集積回路の設計方法では、ステップS2での各クロックパスにおけるディレイ量の算出処理で、各クロックパス上に存在する素子のディレイ量のみによって全体のディレイ量を算出しているが、これに加えて配線ラインにおけるディレイ量を考慮して全体のディレイ量を算出してもよい。この場合、ステップS2では、素子のディレイ量とともに各素子間の配線ラインの長さ等のパラメータより全体のディレイ量を算出する。また、ステップS4では、ディレイ調整位置におけるディレイ値、および各素子におけるディレイ量とともに、配線ラインでのディレイ量を用いて線形式を作成する。
【0033】
これにより、各クロックパス上の素子における遅延に加えて、配線遅延も考慮したクロックスキューの最適化を行うことが可能となるので、クロックスキュー調整をより正確に行うことができる。
【0034】
次に、このような半導体集積回路の設計方法を実現するための具体的な装置構成例について説明する。図2は、本発明を適用可能な半導体集積回路に対する設計支援装置の内部構成例を示すブロック図である。
【0035】
図2に示すように、設計支援装置1は、CPU2、RAM3、HDD(ハードディスクドライブ)4、グラフィック処理部5および入力I/F(インタフェース)6によって構成され、これらはバス7を介して相互に接続されている。
【0036】
CPU2は、設計支援装置1の全体に対する制御をつかさどる。RAM3は、CPU2に実行させるプログラムの少なくとも一部や、このプログラムによる処理に必要な各種データを一時的に記憶する。
【0037】
HDD4には、OSやアプリケーションプログラム、各種データが格納される。本発明では主に、設計目的の半導体集積回路に対する論理設計手順後に作成されたレイアウトデータや、対応するネットリスト、ライブラリ等のデータ、およびレイアウトデータを基にしてクロックスキューを最適化するための設計プログラム等が格納される。
【0038】
グラフィック処理部5には、モニタ5aが接続されている。このグラフィック処理部5は、CPU2からの命令に従って、モニタ5aの画面上に画像を表示させる。入力I/F6には、キーボード6aやマウス6bが接続されている。この入力I/F6は、キーボード6aやマウス6bからの出力信号を、バス7を介してCPU2に送信する。
【0039】
なお、この他に例えば、外部の通信ネットワークに接続されて、このネットワークを介して、例えば修正対象のレイアウトデータやネットリスト等の入力を受けることが可能な通信I/Fが、バス7上に接続されてもよい。さらに、修正対象あるいは修正後の回路構成やライブラリ等の情報を印刷するためのプリンタが接続されたプリント処理部が、バス7上に接続されてもよい。
【0040】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。具体的には、与えられたレイアウトデータに基づく回路構成を修正するための半導体集積回路の設計プログラムが、RAM3上にロードされ、CPU2によって実行されることにより実現される。
【0041】
次に、図3は、設計支援装置1の処理機能の例を示す機能ブロック図である。図3に示すように、設計支援装置1は、入力されたレイアウトデータ10aから、すべてのクロックパスを抽出して解析するクロックパス解析部11と、抽出した各クロックパス上でディレイ調整位置を設定するディレイ調整位置設定部12と、設定したディレイ調整位置におけるディレイ値を算出するディレイ値演算部13と、算出されたディレイ値に基づいて回路構成を修正したレイアウトデータ10bを出力する回路修正部14と、各種の素子等のセルや素子の特性情報を保持するライブラリを記憶したライブラリ記憶部15によって構成される。また、与えられるレイアウトデータ10aは、ライブラリからのセルや素子の選択情報とこれらの接続情報等を有するネットリスト10cを基にして生成されている。
【0042】
この設計支援装置1の各機能ブロックにおける処理は、図1に示したフローチャートの各ステップに対して以下のように対応しており、クロックパス解析部11がステップS1およびS2に、ディレイ調整位置設定部12がステップS3に、ディレイ値演算部13がステップS4に、回路修正部14がステップS5にそれぞれ対応している。
【0043】
すなわち、クロックパス解析部11は、レイアウトデータ10aよりすべてのクロックモードによるクロックパスを検出して、各クロックパス上の素子のディレイ量を収集する。ディレイ調整位置設定部12は、検出された各クロックパスにおける必要最小限のディレイ調整位置を設定する。ディレイ値演算部13は、クロックパス解析部11より収集された素子のディレイ量を基に、各クロックパスにおけるクロックスキューが目的の範囲内となるように、各ディレイ調整位置で必要なディレイ値を線形計画法を用いて算出する。回路修正部14は、算出されたディレイ値に応じた最適な遅延素子を配置して回路構成を修正する。
【0044】
また、ライブラリは、レイアウトデータ10aに対して使用可能なセルや素子のデータについての遅延量や負荷、配置サイズ等の特性情報を保持しており、ライブラリ記憶部15において記憶されて、クロックパス解析部11や回路修正部14から適宜参照される。
【0045】
以下、レイアウトデータ10aとして与えられる半導体集積回路の具体的な回路構成例を挙げて、設計支援装置1における処理を説明する。図4は、レイアウトデータ10aとして与えられる半導体集積回路の第1の回路構成例を示す図である。
【0046】
図4では、レイアウトデータ10aとして与えられる半導体集積回路の入力端の一部の回路構成例を示している。この回路では、通常使用のためのクロック信号CLKと、回路の動作テストの際に使用されるテストクロック信号TCKの2つが供給されている。クロック信号CLKは、セルC11を介して分岐され、一方はセレクタS12の入力端子A12に、他方はORゲートG13を経てセレクタS14の入力端子A14に供給される。また、テストクロック信号TCKは、セルC15を介して分岐され、一方はセレクタS12の入力端子B12に、他方はセレクタS14の入力端子B14に供給される。
【0047】
セレクタS12およびS14の双方には、セルC16を介してテスト信号TSTが供給され、このテスト信号TSTによりクロック信号CLKとテストクロック信号TCKの出力が切り換えられ、クロックモードの切り換えが行われる。
【0048】
セレクタS12の出力端子X12からの出力信号は、セルC17およびC18を介して分岐され、フリップフロップ回路FF19およびFF20の各クロック入力に入力される。また、セレクタS14からの出力信号は、セルC21を介して分岐され、フリップフロップ回路FF22およびFF23の各クロック入力に入力される。フリップフロップ回路FF20からの出力信号は、フリップフロップ回路FF23のデータ入力に入力され、また、フリップフロップ回路FF22の出力信号は、フリップフロップ回路FF19のデータ入力に入力される。
【0049】
また、クロック信号CLKが入力されるORゲートG13には、他方の入力端子B13に制御信号ENが入力され、これによりゲーテッドクロック回路が構成される。すなわち、通常動作時において、Hレベルの制御信号ENが入力されると、フリップフロップ回路FF22およびFF23へのクロック信号CLKの出力がHレベルに保持されて、フリップフロップ回路FF22およびFF23からの出力データの更新が停止される。
【0050】
なお、図4では、ディレイ調整位置P111、P121、P211およびP221があらかじめ表示されているが、これらは入力されたレイアウトデータ10aには含まれておらず、後述するディレイ調整位置設定部12における処理により設定されるものである。
【0051】
この回路構成例のように、設計支援装置1に与えられるレイアウトデータ10aに基づく半導体集積回路は、複数のクロックモードを具備している。クロックパス解析部11は、このレイアウトデータ10aより、各クロックモードによるクロックパスをすべて検出する。図4において、フリップフロップ回路FF19およびFF20、およびフリップフロップ回路FF22およびFF23には、それぞれ同一のクロックパスが入力されている。従って、この回路構成例からは、以下の4通りのクロックパスが検出される。
【0052】
まず、クロック信号CLKについて、入力からセルC11、セレクタS12、セルC17およびC18を経てフリップフロップ回路FF19およびFF20に達する信号経路が、クロックパスCP110として検出される。また、入力からセルC11、ORゲートG13、セレクタS14、セルC21を経てフリップフロップ回路FF22およびFF23に達する信号経路が、クロックパスCP120として検出される。
【0053】
さらに、テストクロック信号TCKについて、入力からセルC15、セレクタS12、セルC17およびC18を経てフリップフロップ回路FF19およびFF20に達する信号経路が、クロックパスCP210として検出される。また、入力からセルC15、セレクタS14、セルC21を経てフリップフロップ回路FF22およびFF23に達する信号経路が、クロックパスCP220として検出される。
【0054】
また、クロックパス解析部11は、検出した各クロックパス上に存在する素子のディレイ量を、ライブラリ記憶部15より収集する。例えば、クロックパスCP110の場合では、このパス上に存在する素子としてセルC11、セレクタS12、セルC17およびC18のディレイ量を収集する。
【0055】
次に、ディレイ調整位置設定部12は、クロックパス解析部11により検出された各クロックパスにおける必要最小限のディレイ調整位置を設定する。ここで、図5は、ディレイ調整位置を設定する手順を示すフローチャートである。
【0056】
ステップS501において、クロックパス解析部11で検出されたあるクロックパス上から、複数の入力端子により複数のクロックパスが合流する例えばセレクタ等の素子を1つ抽出し、この素子の入力端子の直前をディレイ調整位置として仮設定する。
【0057】
ステップS502において、この仮設定位置からクロックパスの上流を辿り、仮設定位置の直前に存在する素子が、同様に複数のクロックパスが合流する素子であるか否かを判定する。この素子が複数のクロックパスが合流する素子でない場合には、ステップS503に進み、仮設定位置を正式なディレイ調整位置として正式に設定する。また、ステップS502において、複数のクロックパスが合流する素子である場合にはステップS504に進む。
【0058】
ステップS504において、仮設定位置からステップS502で抽出した素子までの経路にクロックパスの分岐点があるか否かを判定して、分岐点がある場合にはステップS503に進み、仮設定位置を正式なディレイ調整位置として正式に設定する。また、ステップS504において分岐点がない場合には、ステップS505に進む。ステップS505において、この仮設定位置を削除し、正式なディレイ調整位置として設定しないようにする。
【0059】
また、この後、同じクロックパス上においてステップS501の手順を繰り返し行い、仮設定が可能な限りステップS502以下の手順を適用する。さらに、以上の手順を、クロックパス解析部11で検出されたすべてのクロックパスに対して適用する。
【0060】
このような設定手順により、クロックパス解析部11で検出されたすべてのクロックパス上に、1つ以上のディレイ調整位置を設定する。ここで、図4に示した第1の回路構成例に、上記の設定手順を適用した場合について説明する。
【0061】
まず、検出されている各クロックパスから、複数の入力端子を具備して、この入力端子からの複数のクロックパスが合流する素子を抽出し、この素子の入力端子の直前をディレイ調整位置として仮設定する。
【0062】
図4の回路構成において、このような素子としてセレクタS12およびS14が抽出される。従って、クロックパスCP110上では、セレクタS12の入力端子A12の直前にディレイ調整位置P111が仮設定される。また、同様に、クロックパスCP120上では、セレクタS14の入力端子A14の直前にディレイ調整位置P121が、クロックパスCP210上では、セレクタS12の入力端子B12の直前にディレイ調整位置P211が、クロックパスCP220上では、セレクタS14の入力端子B14の直前にディレイ調整位置P221がそれぞれ仮設定される。
【0063】
次に、仮設定された各位置の直前に存在する素子と、この素子までの経路上の分岐の有無とに応じて、ディレイ調整位置として正式に設定するか、あるいは削除するかを決定する。例えば、仮設定したディレイ調整位置P111では、上流の直前に複数のクロックパスが合流する素子が存在しないため、この仮設定位置はディレイ調整位置P111として正式に設定される。また、同様に、ディレイ調整位置P121、P211およびP221も正式に設定される。
【0064】
このような設定手順により、各クロックパスCP110、CP120、CP210およびCP220上に必要最小限の数のディレイ調整位置を設定することがでる。設定された各ディレイ調整位置には、後述するように、ディレイ値演算部13における算出値に応じたディレイ量を有する遅延素子が配置される。なお、後の図8および図9において、他の回路構成例に対するディレイ調整位置の設定例について捕足説明することにする。
【0065】
次に、ディレイ値演算部13は、クロックパス解析部11により収集された素子のディレイ量を基に、各クロックパスにおけるクロックスキューが目的の範囲内となるように、各ディレイ調整位置で必要なディレイ値を算出する。例えば、図4の回路構成例の場合では、フリップフロップ回路FF19およびFF20に入力されるクロック信号CLKおよびテストクロック信号TCKの各クロックスキューを合わせ込むことが要求される。従って、クロックパスCP110およびCP210の経路において生じるディレイ量が所定の時間範囲内に収まるように、各クロックパスCP110およびCP210上のディレイ調整位置P111およびP211において必要なディレイ値を算出する。
【0066】
なお、例えば配線ルールが0.18μmで、クロック信号の周波数が100〜200MHzの半導体集積回路の場合、フリップフロップ回路のクロック入力段において10nsec程度のクロックスキューが生じることがあり、一般的なクロックキュー調整過程では、このクロックスキューを例えば0.5nsec程度にする必要が生じているのが現状である。
【0067】
ディレイ値演算部13は、まず、各クロックパスCP110、CP120、CP210およびCP220について、それぞれ設定されたディレイ調整位置P111、P121、P211およびP221におけるディレイ値を変数とし、この変数とそれぞれに存在する素子のディレイ量とを用いて線形式を作成する。具体的には、各クロックパスCP110、CP120、CP210およびCP220上の素子およびディレイ調整位置に挿入する遅延素子の有するディレイ量の和を、所定の範囲内とするような不等式が作成される。
【0068】
クロックパスCP110に対しては以下の線形式(1)および(2)、クロックパスCP120に対しては線形式(3)および(4)、クロックパスCP210に対しては線形式(5)および(6)、クロックパスCP220に対しては線形式(7)および(8)がそれぞれ作成される。なお、D_nは素子nの有するディレイ量、D_n_a_xは素子nにおける入力端子aから出力端子xまでのディレイ量を示し、DX_nは0以上の変数で、ディレイ調整位置nにおけるディレイ量を示す。また、D_path_n_max、D_path_n_minは、それぞれクロックパスnの全体において必要とするディレイ量の最大値および最小値を示す。
(数1)
D_C11+DX_P111+D_S12_A12_X12+D_C17+D_C18>D_path_CP110_min ………(1)
D_C11+DX_P111+D_S12_A12_X12+D_C17+D_C18<D_path_CP110_max ………(2)
D_C11+D_G13_A13_X13+DX_P121+D_S14_A14_X14+D_C21>D_path_CP120_min ………(3)
D_C11+D_G13_A13_X13+DX_P121+D_S14_A14_X14+D_C21<D_path_CP120_max ………(4)
D_C15+DX_P211+D_S12_B12_X12+D_C17+D_C18>D_path_CP210_min ………(5)
D_C15+DX_P211+D_S12_B12_X12+D_C17+D_C18<D_path_CP210_max ………(6)
D_C15+DX_P221+D_S14_B14_X14+D_C21>D_path_CP220_min ………(7)
D_C15+DX_P221+D_S14_B14_X14+D_C21<D_path_CP220_max ………(8)
また、さらに各変数DX_P111、DX_P121、DX_P211およびDX_P221について、以下の式(9)のような最適化条件を付加する。この式(9)は、変数DX_P111、DX_P121、DX_P211およびDX_P221の値が最小となるように最適化する。
(数2)
DX_P111+DX_P121+DX_P211+DX_P221−>最小………(9)
以上の線形式(1)〜(8)を制約条件、式(9)を目的関数として最適化して、線形計画法を用いて変数DX_P111、DX_P121、DX_P211およびDX_P221の値を求めることにより、各フリップフロップ回路FF19、FF20、FF22およびFF23においてクロックスキューが満足されるようなディレイ調整位置P111、P121、P211およびP221における各ディレイ値が算出される。
【0069】
なお、上記の線形式(1)〜(8)では、クロックパスCP110、CP120、CP210およびCP220上に配置された素子におけるディレイのみの和から、全体のディレイ量に対する条件を設定していたが、これらに加えて、各クロックパスCP110、CP120、CP210およびCP220上の素子間の配線長さ等から得られる配線遅延量も加味して、線形式を生成してもよい。これにより、より正確なクロックスキュー調整を行うことが可能となる。
【0070】
次に、回路修正部14は、ディレイ値演算部13において算出された変数DX_P111、DX_P121、DX_P211およびDX_P221の値に応じて、ディレイ調整位置P111、P121、P211およびP221に対して該当するディレイ量を有する遅延素子を挿入して、回路構成を修正する。この回路修正方法としては、ライブラリにあらかじめ記憶された遅延素子のセルから適当なものを選択して挿入する方法と、ライブラリにあらかじめ記憶された単一の遅延素子の回路データを組み合わせて、必要なディレイ量を有する回路データを作成して、ディレイ調整位置に挿入する方法とを用いることができる。
【0071】
ここで、図6は、ライブラリにあらかじめ登録された遅延素子のセルの例を示す図である。
図6に示すように、ライブラリには例えば、異なるディレイ量を有する3種類の遅延素子のセル61、62および63が登録されている。各セル61、62おおび63を構成するバッファ60はそれぞれが同じディレイ量を有しており、セル61はこのバッファ60の1段分により構成され、セル62はバッファ60を2段分直列に接続されることにより構成され、セル63はバッファ60を3段分直列に接続されることにより構成されている。回路修正部14は、このようにライブラリにあらかじめ登録されたセル61、62および63を選択して、レイアウトデータ10aに基づく回路構成中に挿入することができる。
【0072】
図7は、回路修正部14における遅延素子の選択および回路構成の修正手順の例を示すフローチャートである。
ステップS701において、ディレイ値演算部13より、算出された変数DX_P111、DX_P121、DX_P211およびDX_P221の値、すなわちディレイ調整位置P111、P121、P211およびP221におけるディレイ値を受け取る。ステップS702において、ライブラリ記憶部15に記憶されたライブラリを参照して、該当するディレイ量を有する遅延素子のセルを検索する。
【0073】
ステップS703において、ライブラリ内に該当する適切な遅延素子のセルが存在するか否かを判定する。このセルの選択では、例えば、ライブラリ内の遅延素子の各セルの有するディレイ量が、算出されたディレイ値と正確に一致したものを常に選択してもよいが、例えば、ライブラリ内の各セルについて、選択基準となるディレイ量の範囲をあらかじめ決めておき、算出されたディレイ値がこの範囲に合致した場合にこのセルを選択するようにする。このステップS703で、該当するセルが存在した場合にはステップS704に進む。
【0074】
ステップS704において、ライブラリ内に存在した該当するセルを選択する。ステップS705において、このセルを所定のディレイ調整位置に挿入するようにレイアウトデータ10aを変更して、回路構成を修正する。
【0075】
また、ステップS703において、該当するセルが存在しなかった場合には、ステップS706に進む。ステップS706において、ライブラリを参照して、あらかじめ記憶された単一の遅延素子の回路データを組み合わせて、新たな遅延素子のデータを生成する。そして、ステップS705において、このデータを用いてレイアウトデータ10aを変更し、回路構成を修正する。
【0076】
ところで、ステップS705における回路構成の修正では、レイアウトデータ10aを直接変更する方法の他に、このレイアウトデータ10aに対応するネットリスト10cの内容を変更することにより修正を行ってもよい。この場合、例えば、ステップS704において選択されたセル、あるいはステップS706において生成された遅延素子のデータを用いて、ネットリスト10c内の素子の選択情報および接続情報を変更した後、このネットリスト10cに基づいてレイアウトデータ10bをあらためて作成する。
【0077】
なお、ディレイ値演算部13において算出されたディレイ値が0またはこれに近い場合には、このディレイ調整位置に対する遅延素子の配置は行わない。
以上のように、設計支援装置1では、修正対象の回路構成中のすべてのクロックパスCP110、CP120、CP210およびCP220において、必要最小限のディレイ調整位置P111、P121、P211およびP221を設定し、クロックスキューが最適化されるように、線形計画法により各ディレイ調整位置P111、P121、P211およびP221において必要なディレイ値を算出する。そして、算出したディレイ値に応じて必要な遅延素子を自動的に挿入し、クロックスキューが最適化されたレイアウトデータ10bを自動的に生成する。従って、設計者がマニュアル作業で行うのに比較して、クロックスキューの最適化のための回路レイアウト変更を短時間で効率的に、かつ正確に行うことが可能となる。
【0078】
また、上述したディレイ値演算部13における演算では、式(9)により変数DX_P111、DX_P121、DX_P211およびDX_P221の値が最小となるように最適化される。このため、各ディレイ調整位置P111、P121、P211およびP221において必要なディレイ値としてできるだけ小さな値が算出されるので、回路修正部14において、大きな回路規模を有する遅延素子が選択される可能性が減少し、無駄な素子の挿入が防止される。従って、上記の設計支援装置1では、回路構成の修正が最小限にとどめられる。
【0079】
なお、以上の実施形態例では、クロックパス解析部11において、レイアウトデータ10aより各クロックモードのすべてのクロックパスを検出したが、これに限らず、一部のクロックパスについては、必要に応じて、別の方法でクロックスキューの最適化を行ってもよい。この場合、別の方法としては、例えば、設計者がマニュアル作業でクロックスキューを検出し、回路レイアウトを変更する方法がある。ただし、本実施形態例のようにすべてのクロックパスを検出することが望ましく、この場合に最も短時間で効率的にクロックスキューを最適化することができる。
【0080】
次に、図8および図9にそれぞれ第2および第3の回路構成を示して、上記の設計支援装置1のディレイ調整位置設定部12における処理を、補足説明する。まず、図8は、レイアウトデータとして与えられる半導体集積回路の第2の回路構成例を示す図である。
【0081】
図8では、レイアウトデータ10aとして与えられる半導体集積回路の入力端の一部の回路構成例を示している。この回路では、上記の第1の回路構成例と同様に、通常使用のためのクロック信号CLKと、回路の動作テスト用のテストクロック信号TCKの2つが供給されている。クロック信号CLKは、セルC31を介して分岐され、一方はセレクタS32の入力端子A32に、他方はORゲートG33を経てセレクタS34の入力端子A34に供給される。また、テストクロック信号TCKは、セルC35を介して分岐され、一方はセレクタS32の入力端子B32に、他方はセレクタS34の入力端子B34に供給される。
【0082】
セレクタS32の出力端子X32からの出力信号は、セレクタS36の入力端子A36に入力され、出力端子X36からの出力信号は分岐されて、フリップフロップ回路FF37およびFF38の各クロック入力に入力される。また、セレクタS34の出力端子X34からの出力信号は、セルC39を介して分岐され、フリップフロップ回路FF40およびFF41の各クロック入力に入力される。フリップフロップ回路FF40からの出力信号は、フリップフロップ回路FF37のデータ入力に入力され、また、フリップフロップ回路FF38の出力信号は、フリップフロップ回路FF41のデータ入力に入力される。
【0083】
また、セレクタS32、S34およびS36には、セルC42を介してテスト信号TSTが供給される。セレクタS32およびS34は、このテスト信号TSTによりクロック信号CLKとテストクロック信号TCKの出力が切り換えられ、また、セレクタS36はこれらのいずれかと、入力端子B36に入力される別のクロック信号との出力が切り換えられて、それぞれクロックモードの切り換えが行われる。さらに、クロック信号CLKが入力されるORゲートG33には、他方の入力端子B33に制御信号ENが入力され、これによりゲーテッドクロック回路が構成される。
【0084】
このような第2の回路構成例に対して、クロックパス解析部11では、例えば、クロック信号CLKのクロックパスとして、セルC31、セレクタS32およびS36を経てフリップフロップ回路37および38に至るクロックパスが検出される。このクロックパスにおいては、ディレイ調整位置設定部12において、以下のようにディレイ調整位置が決定される。
【0085】
まず、このクロックパスから、複数の入力端子を具備して、この入力端子からの複数のクロックパスが合流する素子として、セレクタS32およびS36が抽出される。従って、このクロックパス上では、セレクタS32の入力端子A32の直前と、セレクタS36の入力端子A36の直前に、それぞれディレイ調整位置P311およびP312が仮設定される。
【0086】
次に、仮設定された各位置の直前に存在する素子と、この素子までの経路上の分岐の有無とに応じて、ディレイ調整位置として正式に設定するか、あるいは削除するかを決定する。仮設定したディレイ調整位置P311では、上流の直前に複数のクロックパスが合流する素子が存在しないため、この仮設定位置はディレイ調整位置P311として正式に設定される。
【0087】
これに対して、ディレイ調整位置P312の上流側の直前には、複数のクロックパスが合流するセレクタS32が存在している。この場合、セレクタS32の出力端子X32から、セレクタS36の入力端子A36までの経路上に、クロックパスの分岐点があるか否かを判定する。ここでは分岐点は存在しないため、このディレイ調整位置P312は削除される。これは、セレクタS32において合流する2つのクロックパス上では、合流点の直前、すなわちセレクタS32の入力端子A32およびB32の直前にそれぞれディレイ調整位置P311およびP321が設定されるので、合流後の位置に存在するディレイ調整位置P312が重複して必要ではなくなるためである。このように、ディレイ調整位置設定部12における処理では、必要最小限のディレイ調整位置が設定される。
【0088】
次に、図9は、レイアウトデータとして与えられる半導体集積回路の第3の回路構成例を示す図である。
図9では、レイアウトデータ10aとして与えられる半導体集積回路の入力端の一部の回路構成例を示している。この回路では、上記の第1および第2の回路構成例と同様に、通常使用のためのクロック信号CLKと、回路の動作テスト用のテストクロック信号TCKの2つが供給されている。クロック信号CLKは、セルC51を介して分岐され、一方はセレクタS52の入力端子A52に、他方はORゲートG53を経てセレクタS54の入力端子A54に供給される。また、テストクロック信号TCKは、セルC55を介して分岐され、一方はセレクタS52の入力端子B52に、他方はセレクタS54の入力端子B54に供給される。
【0089】
セレクタS52の出力端子X52からの出力信号は、分岐されて、それぞれセレクタS56の入力端子A56、およびセレクタS57の入力端子A57に入力される。また、セレクタ56の出力端子X56からの出力信号は分岐されて、フリップフロップ回路FF58およびFF59の各クロック入力に入力される。
【0090】
一方、セレクタS54の出力端子X54からの出力信号は、セルC60を介して分岐され、フリップフロップ回路FF61およびFF62の各クロック入力に入力される。フリップフロップ回路FF61からの出力信号は、フリップフロップ回路FF58のデータ入力に入力され、また、フリップフロップ回路FF59の出力信号は、フリップフロップ回路FF62のデータ入力に入力される。
【0091】
また、セレクタS52、S54、S56およびS57には、セルC63を介してテスト信号TSTが供給される。セレクタS52およびS54は、このテスト信号TSTによりクロック信号CLKとテストクロック信号TCKの出力が切り換えられる。また、セレクタS56は、テスト信号TSTにより、クロック信号CLKとテストクロック信号TCKのいずれかと、入力端子B56に入力される別のクロック信号との出力が切り換えられて、それぞれクロックモードの切り換えが行われる。同様に、セレクタS57は、クロック信号CLKとテストクロック信号TCKのいずれかと、入力端子B57に入力される別のクロック信号との出力が切り換えられる。さらに、クロック信号CLKが入力されるORゲートG53には、他方の入力端子B53に制御信号ENが入力され、これによりゲーテッドクロック回路が構成される。
【0092】
このような第3の回路構成例に対して、クロックパス解析部11では、例えば、クロック信号CLKのクロックパスとして、セルC51、セレクタS52およびS56を経てフリップフロップ回路58および59に至るクロックパスが検出される。このクロックパスにおいては、ディレイ調整位置設定部12において、以下のようにディレイ調整位置が決定される。
【0093】
まず、このクロックパスから、複数の入力端子を具備して、この入力端子からの複数のクロックパスが合流する素子として、セレクタS52およびS56が抽出される。従って、このクロックパス上では、セレクタS52の入力端子A52の直前と、セレクタS56の入力端子A56の直前に、それぞれディレイ調整位置P511およびP512が仮設定される。
【0094】
次に、仮設定されたディレイ調整位置P511では、上流の直前に複数のクロックパスが合流する素子が存在しないため、この仮設定位置はディレイ調整位置P511として正式に設定される。
【0095】
また、ディレイ調整位置P512の上流側の直前には、複数のクロックパスが合流するセレクタS52が存在している。この場合、セレクタS52の出力端子X52から、セレクタS56の入力端子A56までの経路上に、クロックパスの分岐点S64が存在するため、この経路上の仮設定位置もディレイ調整位置P512として正式に設定される。
【0096】
このディレイ調整位置P512の場合と同じ手順で、セレクタS57の入力端子A57の直前にも、ディレイ調整位置P521が設定される。このように、クロックパスの分岐点S64の後には、確実にディレイ調整位置が設定される。
【0097】
なお、上記の設計支援装置1における処理機能は、コンピュータによって実現することができる。その場合、設計支援装置1が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disk)、DVD−RAM、CD−ROM(Compact Disk Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
【0098】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0099】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0100】
(付記1) 複数のクロックモードを具備する半導体集積回路の設計方法において、
前記半導体集積回路のレイアウトデータから、前記各クロックモードにおける複数のクロックパスを検出し、
検出した前記各クロックパス上に存在するすべての素子のディレイ量を収集し、
検出した前記各クロックパス上におけるディレイ調整位置を設定し、
設定した前記ディレイ調整位置におけるディレイ量を非負数の変数とし、収集した前記素子のディレイ量と前記変数より前記クロックパスごとに線形式を作成して演算することにより、前記各パス上の前記ディレイ調整位置における最適なディレイ値を算出し、
算出した前記ディレイ値に基づき、前記各ディレイ調整位置に、該当するディレイ量を有する遅延素子を配設して、前記レイアウトデータによる回路構成を自動的に修正する、
ことを特徴とする半導体集積回路の設計方法。
【0101】
(付記2) 前記ディレイ調整位置は、検出した前記クロックパス上において、複数の入力端子により複数の前記クロックパスが合流する素子である第1の合流素子が存在した場合、前記入力端子の直前に設定されることを特徴とする付記1記載の半導体集積回路の設計方法。
【0102】
(付記3) 検出した前記クロックパス上における前記入力端子の直前の位置の上流に、複数の前記クロックパスが合流する素子である第2の合流素子がさらに存在する場合、前記入力端子の直前の位置から前記第2の合流素子までの経路に前記クロックパスの分岐点がないときは、前記ディレイ調整位置として設定しないことを特徴とする付記2記載の半導体集積回路の設計方法。
【0103】
(付記4) 前記ディレイ調整位置におけるディレイ値の算出では、検出した前記各クロックパス上で収集したすべての前記素子におけるディレイ量と前記変数との和を所定の範囲内とするような線形式を作成し、演算することを特徴とする付記1記載の半導体集積回路の設計方法。
【0104】
(付記5) 前記線形式の演算では、前記レイアウトデータ上で設定したすべての前記ディレイ調整位置におけるディレイ値の和が最小となるように最適化して、線形計画法を用いて前記変数を算出することを特徴とする付記4記載の半導体集積回路の設計方法。
【0105】
(付記6) 前記ディレイ調整位置におけるディレイ値が算出されると、あらかじめ用意された遅延素子のセル群の中から、該当するディレイ量を有する前記遅延素子のセルを選択して、前記レイアウトデータによる回路構成を修正することを特徴とする付記1記載の半導体集積回路の設計方法。
【0106】
(付記7) 前記遅延素子のセルを選択すると、前記レイアウトデータに対応するネットリストに、選択した前記遅延素子のセルの接続情報を追加することにより、前記レイアウトデータによる回路構成を修正することを特徴とする付記6記載の半導体集積回路の設計方法。
【0107】
(付記8) 前記ディレイ調整位置におけるディレイ値が算出されると、あらかじめ用意された単一の遅延素子のデータを組み合わせて該当するディレイ量を有する新たな遅延素子のデータを生成することにより、前記レイアウトデータによる回路構成を修正することを特徴とする付記1記載の半導体集積回路の設計方法。
【0108】
(付記9) 前記新たな遅延素子を生成すると、前記レイアウトデータに対応するネットリストに、前記新たな遅延素子のデータの接続情報を追加することにより、前記レイアウトデータによる回路構成を修正することを特徴とする付記8記載の半導体集積回路の設計方法。
【0109】
(付記10) 前記クロックパスの検出の際には、前記レイアウトデータから、前記各クロックモードにおけるすべての前記クロックパスを検出することを特徴とする付記1記載の半導体集積回路の設計方法。
【0110】
(付記11) 複数のクロックモードを具備する半導体集積回路の設計方法において、
前記半導体集積回路のレイアウトデータから、前記各クロックモードにおける複数のクロックパスを検出し、
検出した前記各クロックパス上に存在するすべての素子および配線ラインの各ディレイ量を収集し、
検出した前記各クロックパス上におけるディレイ調整位置を設定し、
設定した前記ディレイ調整位置におけるディレイ量を非負数の変数とし、収集した前記素子および前記配線ラインの各ディレイ量と前記変数より前記クロックパスごとに線形式を作成して演算することにより、前記各パス上の前記ディレイ調整位置における最適なディレイ値を算出し、
算出した前記ディレイ値に基づき、前記各ディレイ調整位置に、該当するディレイ量を有する遅延素子を配設して、前記レイアウトデータによる回路構成を自動的に修正する、
ことを特徴とする半導体集積回路の設計方法。
【0111】
(付記12) 複数のクロックモードを具備する半導体集積回路を設計するための設計プログラムにおいて、
前記半導体集積回路のレイアウトデータから、前記各クロックモードにおける複数のクロックパスを検出し、
検出した前記各クロックパス上に存在するすべての素子のディレイ量を収集し、
検出した前記各クロックパス上におけるディレイ調整位置を設定し、
設定した前記ディレイ調整位置におけるディレイ量を非負数の変数とし、収集した前記素子のディレイ量と前記変数より前記クロックパスごとに線形式を作成して演算することにより、前記各パス上の前記ディレイ調整位置における最適なディレイ値を算出し、
算出した前記ディレイ値に基づき、前記各ディレイ調整位置に、該当するディレイ量を有する遅延素子を配設して、前記レイアウトデータによる回路構成を自動的に修正する、
処理をコンピュータに実行させることを特徴とする半導体集積回路の設計プログラム。
【0112】
(付記13) 前記ディレイ調整位置は、検出した前記クロックパス上において、複数の入力端子により複数の前記クロックパスが合流する素子である第1の合流素子が存在した場合、前記入力端子の直前に設定されることを特徴とする付記12記載の半導体集積回路の設計プログラム。
【0113】
(付記14) 検出した前記クロックパス上における前記入力端子の直前の位置の上流に、複数の前記クロックパスが合流する素子である第2の合流素子がさらに存在する場合、前記入力端子の直前の位置から前記第2の合流素子までの経路に前記クロックパスの分岐点がないときは、前記ディレイ調整位置として設定しないことを特徴とする付記13記載の半導体集積回路の設計プログラム。
【0114】
(付記15) 前記ディレイ調整位置におけるディレイ値の算出では、検出した前記各クロックパス上で収集したすべての前記素子におけるディレイ量と前記変数との和を所定の範囲内とするような線形式を作成し、演算することを特徴とする付記12記載の半導体集積回路の設計プログラム。
【0115】
(付記16) 前記線形式の演算では、前記レイアウトデータ上で設定したすべての前記ディレイ調整位置におけるディレイ値の和が最小となるように最適化して、線形計画法を用いて前記変数を算出することを特徴とする付記15記載の半導体集積回路の設計プログラム。
【0116】
(付記17) 前記ディレイ調整位置におけるディレイ値が算出されると、あらかじめ用意された遅延素子のセル群の中から、該当するディレイ量を有する前記遅延素子のセルを選択して、前記レイアウトデータによる回路構成を修正することを特徴とする付記12記載の半導体集積回路の設計プログラム。
【0117】
(付記18) 前記遅延素子のセルを選択すると、前記レイアウトデータに対応するネットリストに、選択した前記遅延素子のセルの接続情報を追加することにより、前記レイアウトデータによる回路構成を修正することを特徴とする付記17記載の半導体集積回路の設計プログラム。
【0118】
(付記19) 前記ディレイ調整位置におけるディレイ値が算出されると、あらかじめ用意された単一の遅延素子のデータを組み合わせて該当するディレイ量を有する新たな遅延素子のデータを生成することにより、前記レイアウトデータによる回路構成を修正することを特徴とする付記12記載の半導体集積回路の設計プログラム。
【0119】
(付記20) 前記新たな遅延素子を生成すると、前記レイアウトデータに対応するネットリストに、前記新たな遅延素子のデータの接続情報を追加することにより、前記レイアウトデータによる回路構成を修正することを特徴とする付記19記載の半導体集積回路の設計プログラム。
【0120】
(付記21) 前記クロックパスの検出の際には、前記レイアウトデータから、前記各クロックモードにおけるすべての前記クロックパスを検出することを特徴とする付記12記載の半導体集積回路の設計プログラム。
【0121】
(付記22) 複数のクロックモードを具備する半導体集積回路を設計するための設計プログラムにおいて、
前記半導体集積回路のレイアウトデータから、前記各クロックモードにおける複数のクロックパスを検出し、
検出した前記各クロックパス上に存在するすべての素子および配線ラインの各ディレイ量を収集し、
検出した前記各クロックパス上におけるディレイ調整位置を設定し、
設定した前記ディレイ調整位置におけるディレイ量を非負数の変数とし、収集した前記素子および前記配線ラインの各ディレイ量と前記変数より前記クロックパスごとに線形式を作成して演算することにより、前記各パス上の前記ディレイ調整位置における最適なディレイ値を算出し、
算出した前記ディレイ値に基づき、前記各ディレイ調整位置に、該当するディレイ量を有する遅延素子を配設して、前記レイアウトデータによる回路構成を自動的に修正する、
処理をコンピュータに実行させることを特徴とする半導体集積回路の設計プログラム。
【0122】
(付記23) 複数のクロックモードを具備する半導体集積回路を設計するための設計支援装置において、
前記半導体集積回路のレイアウトデータから、前記各クロックモードにおける複数のクロックパスを検出して、検出した前記各クロックパス上に存在するすべての素子のディレイ量を収集するクロックパス解析手段と、
検出した前記各クロックパス上におけるディレイ調整位置を設定するディレイ調整位置設定手段と、
設定した前記ディレイ調整位置におけるディレイ量を非負数の変数とし、収集した前記素子のディレイ量と前記変数より前記クロックパスごとに線形式を作成して演算することにより、前記各パス上の前記ディレイ調整位置における最適なディレイ値を算出するディレイ値演算手段と、
算出した前記ディレイ値に基づき、前記各ディレイ調整位置に、該当するディレイ量を有する遅延素子を配設して、前記レイアウトデータによる回路構成を自動的に修正する回路修正手段と、
を有することを特徴とする半導体集積回路の設計支援装置。
【0123】
【発明の効果】
以上説明したように、本発明の半導体集積回路の設計方法では、検出した複数のクロックパスについて、ディレイ調整位置を自動的に指定し、このディレイ調整位置におけるディレイ量を算出する。そして、該当するディレイ量を有する遅延素子を各ディレイ調整位置に配設して、回路のレイアウトを修正する。従って、検出した複数のクロックパスについて、クロックスキューが最適化されたレイアウトデータが自動的に生成され、レイアウトデータに対するクロックスキューの最適化を短時間で効率よく、かつ正確に行うことが可能となる。
【0124】
また、本発明の半導体集積回路の設計プログラムでは、検出した複数のクロックパスについて、ディレイ調整位置を自動的に指定し、このディレイ調整位置におけるディレイ量を算出する。そして、該当するディレイ量を有する遅延素子を各ディレイ調整位置に配設して、回路のレイアウトを修正する。従って、検出した複数のクロックパスについて、クロックスキューが最適化されたレイアウトデータが自動的に生成され、レイアウトデータに対するクロックスキューの最適化を短時間で効率よく、かつ正確に行うことが可能となる。
【図面の簡単な説明】
【図1】本発明の半導体集積回路の設計方法の処理の流れを示すフローチャートである。
【図2】本発明を適用可能な半導体集積回路に対する設計支援装置の内部構成例を示すブロック図である。
【図3】本発明を適用可能な半導体集積回路に対する設計支援装置の処理機能の例を示す機能ブロック図である。
【図4】レイアウトデータとして与えられる半導体集積回路の第1の回路構成例を示す図である。
【図5】ディレイ調整位置を設定する手順を示すフローチャートである。
【図6】ライブラリにあらかじめ登録された遅延素子のセルの例を示す図である。
【図7】回路修正部における遅延素子の選択および回路構成の修正手順の例を示すフローチャートである。
【図8】レイアウトデータとして与えられる半導体集積回路の第2の回路構成例を示す図である。
【図9】レイアウトデータとして与えられる半導体集積回路の第3の回路構成例を示す図である。
【図10】複数のクロックモードを具備するLSIの回路構成例を示す図である。
【符号の説明】
1 設計支援装置
2 CPU
3 RAM
4 HDD
5 グラフィック処理部
5a モニタ
6 入力I/F
6a キーボード
6b マウス
7 バス
10a、10b レイアウトデータ
10c ネットリスト
11 クロックパス解析部
12 ディレイ調整位置設定部
13 ディレイ値演算部
14 回路修正部
15 ライブラリ記憶部

Claims (8)

  1. 複数のクロックモードを具備する半導体集積回路の設計方法において、
    クロックパス解析手段が、前記半導体集積回路のレイアウトデータの入力を受け、当該レイアウトデータから、前記各クロックモードにおける複数のクロックパスを検出するステップと
    前記クロックパス解析手段が、検出した前記各クロックパス上に存在するすべての素子のディレイ量を、記憶手段に記憶された、前記レイアウトデータに使用される回路データのデータベースから収集するステップと
    ディレイ調整位置設定手段が、検出された前記各クロックパス上におけるディレイ調整位置を設定するステップと
    ディレイ値演算手段が、設定された前記ディレイ調整位置におけるディレイ量を非負数の変数とし、収集された前記素子のディレイ量と前記変数より前記クロックパスごとに線形式を作成して演算することにより、前記各クロックパス上の前記ディレイ調整位置における最適なディレイ値を算出するステップと
    回路修正手段が、算出された前記ディレイ値に基づき、前記各ディレイ調整位置に、該当するディレイ量を有する前記データベースに基づく遅延素子を配設して、前記レイアウトデータによる回路構成を自動的に修正するステップと
    を含み、
    前記ディレイ調整位置を設定するステップでは、前記ディレイ調整位置は、検出された前記クロックパス上において、複数の入力端子により複数の前記クロックパスが合流する素子である第1の合流素子が存在した場合、前記入力端子の直前に設定されることを特徴とする半導体集積回路の設計方法。
  2. 前記ディレイ調整位置を設定するステップでは、検出された前記クロックパス上における前記入力端子の直前の位置の上流に、複数の前記クロックパスが合流する素子である第2の合流素子がさらに存在する場合、前記入力端子の直前の位置から前記第2の合流素子までの経路に前記クロックパスの分岐点がないときは、前記ディレイ調整位置として設定しないことを特徴とする請求項1記載の半導体集積回路の設計方法。
  3. 前記ディレイ調整位置におけるディレイ値の算出ステップでは、検出された前記各クロックパス上で収集されたすべての前記素子におけるディレイ量と前記変数との和を所定の範囲内とするような線形式が作成されて、演算されることを特徴とする請求項記載の半導体集積回路の設計方法。
  4. 複数のクロックモードを具備する半導体集積回路の設計方法において、
    クロックパス解析手段が、前記半導体集積回路のレイアウトデータの入力を受け、当該レイアウトデータから、前記各クロックモードにおける複数のクロックパスを検出するステップと、
    前記クロックパス解析手段が、検出した前記各クロックパス上に存在するすべての素子のディレイ量を、記憶手段に記憶された、前記レイアウトデータに使用される回路データのデータベースから収集するとともに、前記各クロックパス上に存在する全ての配線ラインのディレイ量を当該配線ラインのパラメータを基に収集するステップと、
    ディレイ調整位置設定手段が、検出された前記各クロックパス上におけるディレイ調整位置を設定するステップと、
    ディレイ値演算手段が、設定された前記ディレイ調整位置におけるディレイ量を非負数の変数とし、収集された前記素子および前記配線ラインの各ディレイ量と前記変数より前記クロックパスごとに線形式を作成して演算することにより、前記各クロックパス上の前記ディレイ調整位置における最適なディレイ値を算出するステップと、
    回路修正手段が、算出された前記ディレイ値に基づき、前記各ディレイ調整位置に、該当するディレイ量を有する前記データベースに基づく遅延素子を配設して、前記レイアウトデータによる回路構成を自動的に修正するステップと、
    を含み、
    前記ディレイ調整位置を設定するステップでは、前記ディレイ調整位置は、検出された前記クロックパス上において、複数の入力端子により複数の前記クロックパスが合流する素子である第1の合流素子が存在した場合、前記入力端子の直前に設定されることを特徴とする半導体集積回路の設計方法。
  5. 複数のクロックモードを具備する半導体集積回路を設計するための設計プログラムにおいて、
    前記半導体集積回路のレイアウトデータから、前記各クロックモードにおける複数のクロックパスを検出するステップと、
    検出した前記各クロックパス上に存在するすべての素子のディレイ量を収集するステップと、
    検出した前記各クロックパス上におけるディレイ調整位置を設定するステップと、
    設定した前記ディレイ調整位置におけるディレイ量を非負数の変数とし、収集した前記素子のディレイ量と前記変数より前記クロックパスごとに線形式を作成して演算することにより、前記各クロックパス上の前記ディレイ調整位置における最適なディレイ値を算出するステップと、
    算出した前記ディレイ値に基づき、前記各ディレイ調整位置に、該当するディレイ量を有する遅延素子を配設して、前記レイアウトデータによる回路構成を自動的に修正するステップと、
    を含み、
    前記ディレイ調整位置を設定するステップでは、前記ディレイ調整位置は、検出した前記クロックパス上において、複数の入力端子により複数の前記クロックパスが合流する素子である第1の合流素子が存在した場合、前記入力端子の直前に設定される、
    処理をコンピュータに実行させることを特徴とする半導体集積回路の設計プログラム。
  6. 前記ディレイ調整位置を設定するステップでは、検出した前記クロックパス上における前記入力端子の直前の位置の上流に、複数の前記クロックパスが合流する素子である第2の合流素子がさらに存在する場合、前記入力端子の直前の位置から前記第2の合流素子までの経路に前記クロックパスの分岐点がないときは、前記ディレイ調整位置として設定しないことを特徴とする請求項5記載の半導体集積回路の設計プログラム。
  7. 前記ディレイ調整位置におけるディレイ値の算出ステップでは、検出した前記各クロックパス上で収集したすべての前記素子におけるディレイ量と前記変数との和を所定の範囲内とするような線形式が作成されて、演算されることを特徴とする請求項記載の半導体集積回路の設計プログラム。
  8. 複数のクロックモードを具備する半導体集積回路を設計するための設計プログラムにおいて、
    前記半導体集積回路のレイアウトデータから、前記各クロックモードにおける複数のクロックパスを検出するステップと、
    検出した前記各クロックパス上に存在するすべての素子および配線ラインの各ディレイ量を収集するステップと、
    検出した前記各クロックパス上におけるディレイ調整位置を設定するステップと、
    設定した前記ディレイ調整位置におけるディレイ量を非負数の変数とし、収集した前記素子および前記配線ラインの各ディレイ量と前記変数より前記クロックパスごとに線形式を作成して演算することにより、前記各クロックパス上の前記ディレイ調整位置における最適なディレイ値を算出するステップと、
    算出した前記ディレイ値に基づき、前記各ディレイ調整位置に、該当するディレイ量を有する遅延素子を配設して、前記レイアウトデータによる回路構成を自動的に修正するステップと、
    を含み、
    前記ディレイ調整位置を設定するステップでは、前記ディレイ調整位置は、検出した前 記クロックパス上において、複数の入力端子により複数の前記クロックパスが合流する素子である第1の合流素子が存在した場合、前記入力端子の直前に設定される、
    処理をコンピュータに実行させることを特徴とする半導体集積回路の設計プログラム。
JP2002069810A 2002-03-14 2002-03-14 半導体集積回路の設計方法および設計プログラム Expired - Fee Related JP4118578B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002069810A JP4118578B2 (ja) 2002-03-14 2002-03-14 半導体集積回路の設計方法および設計プログラム
US10/369,535 US7047504B2 (en) 2002-03-14 2003-02-21 Method and program for designing semiconductor integrated circuits to optimize clock skews on plurality of clock paths

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002069810A JP4118578B2 (ja) 2002-03-14 2002-03-14 半導体集積回路の設計方法および設計プログラム

Publications (2)

Publication Number Publication Date
JP2003271689A JP2003271689A (ja) 2003-09-26
JP4118578B2 true JP4118578B2 (ja) 2008-07-16

Family

ID=28035025

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002069810A Expired - Fee Related JP4118578B2 (ja) 2002-03-14 2002-03-14 半導体集積回路の設計方法および設計プログラム

Country Status (2)

Country Link
US (1) US7047504B2 (ja)
JP (1) JP4118578B2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101015187B1 (ko) * 2003-03-25 2011-02-17 트랜스퍼시픽 소닉, 엘엘씨 클럭 비교 분석 회로를 이용한 디에스피 입력 클럭의최적화 방법
US20060044016A1 (en) * 2004-08-24 2006-03-02 Gasper Martin J Jr Integrated circuit with signal skew adjusting cell selected from cell library
US7584449B2 (en) * 2004-11-22 2009-09-01 Fulcrum Microsystems, Inc. Logic synthesis of multi-level domino asynchronous pipelines
US7818705B1 (en) * 2005-04-08 2010-10-19 Altera Corporation Method and apparatus for implementing a field programmable gate array architecture with programmable clock skew
US7853911B1 (en) 2005-11-04 2010-12-14 Altera Corporation Method and apparatus for performing path-level skew optimization and analysis for a logic design
US7437691B2 (en) * 2006-04-11 2008-10-14 International Business Machines Corporation VLSI artwork legalization for hierarchical designs with multiple grid constraints
JP2008091406A (ja) * 2006-09-29 2008-04-17 Matsushita Electric Ind Co Ltd 半導体集積回路のレイアウト方法
US7937604B2 (en) * 2007-04-19 2011-05-03 International Business Machines Corporation Method for generating a skew schedule for a clock distribution network containing gating elements
JP5002352B2 (ja) * 2007-06-29 2012-08-15 ルネサスエレクトロニクス株式会社 半導体集積回路の配置配線方法及び半導体集積回路の配置配線支援プログラム
US8205182B1 (en) * 2007-08-22 2012-06-19 Cadence Design Systems, Inc. Automatic synthesis of clock distribution networks
JP4901702B2 (ja) * 2007-11-27 2012-03-21 株式会社東芝 回路設計方法
US7996804B2 (en) * 2008-01-17 2011-08-09 Lsi Corporation Signal delay skew reduction system
JPWO2012124117A1 (ja) * 2011-03-17 2014-07-17 富士通株式会社 タイミングエラー除去方法、設計支援装置、及びプログラム
US8839178B1 (en) 2013-03-14 2014-09-16 Medtronic, Inc. Tool for evaluating clock tree timing and clocked component selection
US9660626B2 (en) 2013-03-14 2017-05-23 Medtronic, Inc. Implantable medical device having clock tree network with reduced power consumption

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2695078B2 (ja) * 1991-06-10 1997-12-24 株式会社東芝 データ処理装置クロック信号の分配方法
US5740067A (en) * 1995-10-19 1998-04-14 International Business Machines Corporation Method for clock skew cost calculation
US5956256A (en) * 1996-11-19 1999-09-21 Unisys Corporation Method and apparatus for optimizing a circuit design having multi-paths therein
US6725389B1 (en) * 2000-12-11 2004-04-20 Lsi Logic Corporation Method for minimizing clock skew by relocating a clock buffer until clock skew is within a tolerable limit
US6738960B2 (en) * 2001-01-19 2004-05-18 Cadence Design Systems, Inc. Method and apparatus for producing sub-optimal routes for a net by generating fake configurations
US6594807B1 (en) * 2001-03-06 2003-07-15 Lsi Logic Corporation Method for minimizing clock skew for an integrated circuit
US6550044B1 (en) * 2001-06-19 2003-04-15 Lsi Logic Corporation Method in integrating clock tree synthesis and timing optimization for an integrated circuit design
US6925555B2 (en) * 2001-07-27 2005-08-02 Hewlett-Packard Development Company, L.P. System and method for determining a plurality of clock delay values using an optimization algorithm

Also Published As

Publication number Publication date
US7047504B2 (en) 2006-05-16
JP2003271689A (ja) 2003-09-26
US20030177454A1 (en) 2003-09-18

Similar Documents

Publication Publication Date Title
JP4118578B2 (ja) 半導体集積回路の設計方法および設計プログラム
US7809971B2 (en) Clock distribution circuit, semiconductor integrated circuit and method of designing clock distribution circuit
US8051399B2 (en) IC design flow incorporating optimal assumptions of power supply voltage drops at cells when performing timing analysis
US7581201B2 (en) System and method for sign-off timing closure of a VLSI chip
US8539413B1 (en) Frequency optimization using useful skew timing
JP4530731B2 (ja) レイアウト設計装置、レイアウト設計方法、レイアウト設計プログラム、および記録媒体
US20060010414A1 (en) Method and apparatus for rapidly selecting types of buffers which are inserted into the clock tree for high-speed very-large-scale-integration
US8527925B2 (en) Estimating clock skew
US20200285791A1 (en) Circuit design method and associated computer program product
US6560763B1 (en) Route searching method and storage medium
US6449756B1 (en) Method for accurate and efficient updates of timing information logic synthesis, placement and routing for integrated circuit design
JP2002009155A (ja) 半導体回路の設計方法及びそれを用いて設計する半導体回路
JP4475691B2 (ja) 計算機支援タイミング調整方法及び装置並びに記憶媒体
CN112257379B (zh) 电路时钟延迟的校正方法
JP3561661B2 (ja) 半導体集積回路及び半導体集積回路の設計方法
JP3116915B2 (ja) クロックネットのレイアウト設計変更方式
JP4587754B2 (ja) クロック合成方法、半導体装置及びプログラム
JP2011107769A (ja) 半導体集積回路のレイアウト装置及びクロックゲーティング方法
JP2007102420A (ja) データベース、データベースの生成方法、半導体集積回路の遅延演算方法および最適化方法
JPWO2010100830A1 (ja) 半導体装置、回路修正方法、設計支援装置及び設計支援プログラム
US6543033B2 (en) Circuit design apparatus, circuit design method, circuit design program and semiconductor integrated circuit fabrication method
JP3047884B2 (ja) 論理合成方法および装置
JP2845478B2 (ja) 論理回路の遅延時間解析装置
JP2010160580A (ja) ホールドエラー修正方法、装置及びプログラム
JP2000100957A (ja) タイミング調整方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050224

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080218

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080423

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110502

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110502

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110502

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110502

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120502

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120502

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130502

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140502

Year of fee payment: 6

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees