JP2006268165A - 集積回路のタイミング解析装置、集積回路のタイミング最適化装置、集積回路のタイミング解析方法、集積回路のタイミング最適化方法、集積回路基板の製造方法、制御プログラムおよび可読記録媒体 - Google Patents

集積回路のタイミング解析装置、集積回路のタイミング最適化装置、集積回路のタイミング解析方法、集積回路のタイミング最適化方法、集積回路基板の製造方法、制御プログラムおよび可読記録媒体 Download PDF

Info

Publication number
JP2006268165A
JP2006268165A JP2005082284A JP2005082284A JP2006268165A JP 2006268165 A JP2006268165 A JP 2006268165A JP 2005082284 A JP2005082284 A JP 2005082284A JP 2005082284 A JP2005082284 A JP 2005082284A JP 2006268165 A JP2006268165 A JP 2006268165A
Authority
JP
Japan
Prior art keywords
tree
clock
delay time
clock tree
integrated circuit
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.)
Withdrawn
Application number
JP2005082284A
Other languages
English (en)
Inventor
Shinji Shinjo
信次 新庄
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.)
Sharp Corp
Original Assignee
Sharp 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 Sharp Corp filed Critical Sharp Corp
Priority to JP2005082284A priority Critical patent/JP2006268165A/ja
Publication of JP2006268165A publication Critical patent/JP2006268165A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

【課題】 LSIのチップ内遅延ばらつきによるクロックスキューへの影響を、クロックツリー合成以前の設計ステップで適切に予測して、タイミング制約違反に対処することによりクロックツリー合成後にタイミング制約違反が多発することを防ぐ。
【解決手段】 クロックツリー合成以前のステップでタイミング解析を行う際に、クロックツリー構造予測手段71がクロックツリー合成前の論理回路の構造から合成後のクロックツリーの構造を予測し、遅延時間予測手段72が予測されたクロックツリーの構造に基づいて各クロックツリーの遅延時間を予測し、クロックスキュー予測手段73がチップ内遅延変動によって生じるクロックスキューを予測する。
【選択図】 図1

Description

本発明は、LSI(大規模集積回路)やIC(集積回路)のチップ内遅延ばらつきによるクロック信号到達時間の差(クロックスキュー)への影響を、クロック分配回路生成前の設計ステップで予測する集積回路のタイミング解析装置、その予測結果を用いて回路を最適化する集積回路のタイミング最適化装置、集積回路のタイミング解析方法、その予測結果を用いて回路を最適化する集積回路のタイミング最適化方法、集積回路基板の製造方法、これらの方法の処理をコンピュータに実行させるための制御プログラムおよびこれが記録されたコンピュータ読み取り可能な可読記録媒体に関する。
現在、LSI(大規模集積回路)の設計では、CAD(Computer Aided Design)ツールによる設計自動化を目的として、主として同期式回路が用いられている。
この同期式回路では、回路の動作基準としてクロック信号が生成されている。このクロック信号は、回路内のフリップフロップ回路、ラッチ回路およびメモリ回路などの全ての順序回路に対して、同時か、または、ほぼ同時と見なすことができる許容時間範囲内に到達することが前提とされており、この前提を崩さないように、クロック分配回路を構成する必要がある。
図7は、従来の一般的なLSIの自動設計フローを説明するためのフローチャートである。
図7に示すように、LSIの設計工程(ステップ)では、回路の機能設計工程(ステップ)終了後、ステップS11の論理合成工程(ステップ)で論理素子の接続情報であるネットリストを作成し、ステップS12〜S14のレイアウト設計ステップに移行する。このレイアウト設計ステップでは、ステップS12の論理素子配置ステップ、ステップS13の後述するクロックツリー合成ステップ、さらにステップS14の論理素子間の配線ステップの各処理を順次行った後、LSI製造用マスクデータ作成ステップへと処理が進む。
上記時間的な前提を崩さないようにクロック分配回路を生成するためには、各順序回路のレイアウト設計において、物理的な位置を考慮して、より正確な遅延の見積りに基づいた設計が必要とされる。このため、ステップS11の論理合成ステップではなく、ステップS12の論理素子配置ステップの後に、ステップS13のような特別なクロックツリー合成ステップを設けて、そのクロックツリー合成ステップでバッファツリー型クロック分配回路(クロックツリー)を自動的に生成するクロックツリー合成方法が主流になっている。このクロックツリー合成方法は、例えば特許文献1に開示されている。
一般的に、LSIの設計ステップでは、LSIが正しく動作するか否かを解析して、問題がある場合には回路の修正を行う必要がある。
まず、タイミング解析の概要について、図8を用いて説明する。
図8は、任意の組み合せ回路23を通してデータのやり取りを行うフリップフロップ21および22の間の論理パスのタイミング解析について説明するための回路図である。
図8において、フリップフロップ21および22に対しては、クロック供給点24からクロックバッファ25、26および27によって構成されるクロックツリーによってクロックが順次供給される。
この回路に対して、主要なタイミング制約であるセットアップ制約およびホールド制約について考える。
チップ内の遅延ばらつきを考慮しない場合、セットアップ制約の検証は、
{(クロック1サイクルの時間)+(クロック供給点24からフリップフロップ22に至るクロックパスの遅延)−(クロック供給点24からフリップフロップ21に至るクロックパスの遅延)−(フリップフロップ21〜22のデータパスの遅延)>0}
を検証するものと言い換えることができる。
一方、ホールド制約の検証は、
{(フリップフロップ21〜22のデータパスの遅延)−((クロック供給点24からフリップフロップ22に至るクロックパスの遅延)−(クロック供給点24からフリップフロップ21に至るクロックパスの遅延))>0}
を検証するものと言い換えることができる。
タイミング解析では、LSI内の全論理パスについて、上記式を満たしているか否かが確認される。
上記タイミング解析に加えて、例えば非特許文献1に記載されているように、更なる半導体プロセスの微細化に伴って、チップ内の各素子の遅延特性が一様と考えることができなくなっており、チップ内遅延ばらつきを考慮したタイミング解析が必要となってきている。
遅延ばらつきの影響を考慮したタイミング解析では、順序回路間のデータパスの遅延への影響だけではなく、クロックツリーへの遅延ばらつきの影響を考慮する必要がある。
クロックツリーの合成では、理想的に、クロックスキューが「0」になるように構成される。例えば図8の回路例では、
(クロック供給点24からフリップフロップ22に至るクロックパスの遅延)−(クロック供給点24からフリップフロップ21に至るクロックパスの遅延))=0
になるように構成される。
しかしながら、どのようにクロックツリーが構成されたとしても、各素子に遅延ばらつきによる新たなスキューが発生する。
クロックツリーの遅延ばらつきを考慮した場合、セットアップ制約の検証は、
{(クロック1サイクルの時間)+(クロック供給点24からフリップフロップ22に至るクロックパスの遅延+クロックバッファ27の遅延ばらつきによる遅延の変動)−(クロック供給点24から21に至るクロックパスの遅延+クロックバッファ26の遅延ばらつきによる遅延の変動)−(フリップフロップ21〜22のデータパスの遅延)>0}
と表せる。
また、ホールド制約の検証は
{(フリップフロップ21〜22のデータパスの遅延)−((クロック供給点24からフリップフロップ22に至るクロックパスの遅延+クロックバッファ27の遅延ばらつきによる遅延の変動)−(クロック供給点24からフリップフロップ21に至るクロックパスの遅延+クロックバッファ26の遅延ばらつきによる遅延の変動))>0}
と表せる。
クロックバッファ25は、フリップフロップ21および22に至るクロックパスにおける共通部分であり、遅延ばらつきによる遅延の変動があっても、これらの式の結果には影響せず、クロックスキューは発生しない。
したがって、遅延ばらつきによって新たに生じるクロックスキューは、フリップフロップ21および22に至るクロックパスにおける非共有部分の遅延変動の差であり、図7の回路例では、
(クロックバッファ27の遅延ばらつきによる遅延の変動−クロックバッファ26の遅延ばらつきによる遅延の変動)
と表せる。
遅延ばらつきが最も厳しい条件になった場合にチップの動作を保証するため、例えば特許文献2,3に開示されているように、セットアップ制約の検証では遅延ばらつきによるスキューが最大になるケースが検証され、ホールド制約の検証では最小になるケースが検証される。
ここで、図7の設計フロー全体の説明に戻る。
図7に示す設計フローにおいて、正確なタイミング解析は、配線の容量および抵抗が確定されるステップS14の配線ステップの後でしか、実施することができない。
しかしながら、配線の変更による回路への影響は小さく、この配線ステップで大きなタイミング問題が発生した場合には、ステップS12の論理素子配置ステップやステップS11の論理合成ステップへの大きな手戻りが発生する。
このため、一般的なLSI設計フローでは、ステップS11の論理合成ステップ、ステップS12の論理素子配置ステップおよびステップS14の配線ステップなど、各ステップ毎にタイミング解析が実施される。
図9は図7のステップS11の論理合成ステップを詳細に説明するためのフローチャートであり、図10は図7のステップS12の論理素子配置ステップを詳細に説明するためのフローチャートであり、図11は図7のステップS14の配線ステップを詳細に説明するためのフローチャートである。
図9に示すように、図7のステップS11の論理合成ステップでは、まず、初期回路が生成されるステップS111の初期回路生成ステップの後に、ステップS112のタイミング解析ステップが行われる。次に、ステップS113においてタイミング制約違反があるかどうかを検出し、ステップS113でタイミング制約違反が検出されると(YES)、ステップS114で、タイミング制約違反箇所に対して論理の構成とセルの駆動能力とが修正処理される。その後、ステップS112のタイミング解析ステップの処理に戻り、タイミング制約違反がなくなるまでこれらの処理を繰り返し、タイミング制約違反がなくなれば(ステップS113;NO)、図7のステップS11の論理合成ステップを終了する。
図10に示すように、図7のステップS12の論理素子配置ステップでは、まず、論理素子の初期配置が生成されるステップS121の初期配置生成ステップの後に、ステップS122のタイミング解析ステップが行われる。次に、ステップS123においてタイミング制約違反があるかどうかを検出し、ステップS123でタイミング制約違反が検出されると(YES)、ステップS124で、違反箇所に対してセルの配置と駆動能力とが修正される。その後、ステップS122のタイミング解析ステップの処理に戻り、タイミング制約違反がなくなるまでこれらの処理を繰り返し、タイミング制約違反がなくなれば(ステップS123;NO)、図7のステップS12の論理素子配置ステップを終了する。
図11に示すように、図7のステップS14の配線ステップでは、まず、初期配線が生成されるステップS141の初期配線生成ステップの後に、ステップS142のタイミング解析ステップが行われる。次に、ステップS143においてタイミング制約違反があるかどうかを検出し、ステップS143でタイミング制約違反が検出されると(YES)、ステップS144で、違反箇所に対して配線とセルの駆動能力とが修正される。その後、ステップS142のタイミング解析ステップの処理に戻り、タイミング制約違反がなくなるまでこれらの処理を繰り返し、タイミング制約違反がなくなれば(ステップS143;NO)、図7のステップS14の配線ステップを終了する。
このように、ステップ毎にタイミング解析と回路修正とを行って、各ステップ毎に問題を解決することによって、次ステップからの手戻りが発生しないように設計することができる。
これらの論理合成ステップ(ステップS11;図9)および論理素子配置ステップ(ステップS12;図10)におけるタイミング解析ステップ(ステップS112、S122)では、過去の経験や統計情報を元に、最終的な回路形状と配線容量・抵抗が予測されて、タイミング解析が実施される。また、クロックツリーについても、図7のステップS13のクロックツリー合成ステップにおいて初めて生成されるため、クロックツリーの総遅延と遅延ばらつきを含むクロックスキューについて、予測に基づいた解析が行われる。
特開平7−134626号公報 "My Head Hurts, My Timing Stinks, and I Don’t Love On−Chip Variation", Synopsys User Group Meeting, 2002. Boston, MA 特開平10−301982号公報 特開平11−39357号公報
しかしながら、現在のLSI設計では、レイアウト設計ステップにてバッファツリー型クロック分配回路(クロックツリー)を自動的に生成する方法が主流になっている。このため、クロックツリー合成ステップ以前の作業(処理ステップ)ではクロックツリーが存在しないため、クロックツリーの詳細な構造や遅延を検証することができない。
上記特許文献2,3では、クロックツリー合成後のタイミング解析にて遅延ばらつきを考慮するための方法であり、クロックツリー合成以前の設計ステップで遅延ばらつきの影響を適切に見積もることはできない。
ここで、図7の設計フローにおいて、ステップS13のクロックツリー合成ステップ以前のステップでクロックツリー部分の遅延ばらつきを考慮しない場合には、クロックツリー合成ステップ後のステップで遅延ばらつきを考慮することにより、新たにクロックスキューが発生する。このため、この検証条件の差によって、ステップS14の配線ステップでタイミング制約違反が多数発生することになってしまう。
ステップS13のクロックツリー合成ステップの処理終了時点では各論理素子の配置は確定しており、タイミング制約違反が多数発生した場合には修正に時間がかかる。また、全てを修正することができない場合には、ステップS11の論理合成ステップおよびステップS12の論理素子配置ステップへの手戻りが発生する。
一方、クロックツリー合成ステップ後のタイミング制約違反を防止するために、遅延ばらつきによるクロックスキューを過大に考慮した場合、例えば図8のクロックバッファ25に相当する部分がなく、全てクロックバッファ26および27に相当する非共通部分であるという前提で設計マージンを設定すると、タイミング制約が厳しくなり過ぎる。その結果、図9の論理合成ステップにおけるステップS112のタイミング解析とステップS113の回路修正および、図10の論理素子配置ステップにおけるステップS122のタイミング解析とステップS123の回路修正で、繰り返し処理が終了されなくなったり、タイミング制約を守るために巨大な回路が生成されたりするという問題が生じる。
本発明は、上記従来の問題を解決するもので、LSIのチップ内遅延ばらつきによるクロックスキューへの影響を、クロックツリー合成以前の設計ステップで適切に予測することができる集積回路のタイミング解析装置、その予測結果を用いてタイミング制約違反に対処することによりクロックツリー合成後にタイミング制約違反が多発することを防ぐことができる集積回路のタイミング最適化装置、これを用いた集積回路のタイミング解析方法、これを用いた集積回路のタイミング最適化方法、集積回路基板の製造方法、これらの方法の各処理をコンピュータに実行させるための制御プログラムおよびこれが記録されたコンピュータ読み取り可能な可読記録媒体を提供することを目的とする。
本発明の集積回路のタイミング解析装置は、回路の機能設計終了後、論理素子の接続情報であるネットリストを作成する論理合成と、バッファツリー型クロック分配回路であるクロックツリーの合成以前の該論理素子のレイアウト設計との少なくともいずれかにおいてタイミング解析を行う集積回路のタイミング解析装置において、該クロックツリーの合成以前で、タイミング解析を行う際に、論理合成された回路構造から該クロックツリーの構造を予測するクロックツリー構造予測手段と、予測されたクロックツリーの構造に基づいて、当該クロックツリーの遅延時間を予測する遅延時間予測手段と、予測されたクロックツリーの遅延時間を用いて、チップ内遅延変動によって生じるクロック信号到達時間の差を示すクロックスキューを予測するクロックスキュー予測手段とを有し、そのことにより上記目的が達成される。
好ましくは、本発明の集積回路のタイミング解析装置におけるクロックツリー構造予測手段は、クロックツリーの起点から該クロックツリーの終点までの回路情報から組み合せ論理素子を検出し、検出された該組み合わせ論理素子から該終点までの間に部分的なクロックツリーである子ツリーが生成されることを前提として、最終的なクロックツリーの構成を予測する。
さらに、好ましくは、本発明の集積回路のタイミング解析装置におけるクロックツリー構造予測手段は、前記レイアウト設計にて階層レイアウト設計を行う場合に、クロックツリーの起点から該クロックツリーの終点までの回路情報から階層設計における子階層の入力端子を検出し、検出された該入力端子から該終点までの間に部分的なクロックツリーである子ツリーが生成されることを前提として、最終的なクロックツリーの構成を予測する。
さらに、好ましくは、本発明の集積回路のタイミング解析装置における遅延時間予測手段は、部分的な子ツリーを持たないクロックツリーについては、該クロックツリーの終点に接続される論理の規模に対して予め作成された遅延予測データベースを元にクロックツリーの遅延時間を予測し、該部分的な子ツリーを持つクロックツリーについては、該子ツリーを経由せずに直接接続される論理の規模に対して予め作成された該遅延予測データベースを元に当該クロックツリーの遅延時間を予測した上で、該子ツリーの遅延時間と比較して、大きい方の遅延時間をクロックツリーの遅延時間とする。
本発明の集積回路のタイミング解析装置における遅延時間予測手段では、前記子ツリーの総遅延時間を、予めレイアウト設計の試行を行った結果から求めても良い。
さらに、好ましくは、本発明の集積回路のタイミング解析装置における遅延時間予測手段は、前記部分的な子ツリーを持つクロックツリーの処理対象ネットが該クロックツリーの起点でなく、親ツリーを持つ場合に、該親ツリーが生成されるネットを新たな処理対象ネットとして該クロックツリーの遅延時間を予測する。
さらに、好ましくは、本発明の集積回路のタイミング解析装置における遅延時間予測手段は、タイミング解析対象となる論理パスの始点および終点が同一の子ツリーに接続されている場合に、予め定義された非共有パスの比率と該子ツリーの総遅延時間とを乗じることによって、分岐点から先の非共有パスの遅延時間を予測する。
さらに、好ましくは、本発明の集積回路のタイミング解析装置における遅延時間予測手段は、タイミング解析対象となる論理パスの始点および終点が異なる子ツリーに接続されている場合に、該始点および該終点を包含する親ツリーを検索した上で、該論理パスの始点が含まれる子ツリーの総遅延時間、該論理パスの終点が含まれる子ツリーの総遅延時間、および予め定義された非共有パスの比率と該親ツリーの総遅延時間とを乗じたものを求めて、それらのうちの最も大きいものを非共有パスの遅延時間とする。
さらに、好ましくは、本発明の集積回路のタイミング解析装置におけるクロックスキュー予測手段は、予め定義されたチップ内遅延変動による遅延の変動率と、前記遅延時間予測手段で予測された遅延時間とを乗じることによって、クロックスキューを予測する。
さらに、好ましくは、本発明の集積回路のタイミング解析装置において、前記クロックスキューの予測結果に基づいてタイミング解析を行うタイミング解析手段を更に有する。
本発明の集積回路のタイミング最適化装置は、本発明の上記集積回路のタイミング解析装置と、該タイミング解析装置によって前記クロックスキューの予測結果に基づいて回路のタイミング解析を行い、タイミング制約違反かどうかを検出するタイミング制約違反検出手段と、該タイミング制約違反が検出された場合に、該タイミング制約違反の検出箇所の回路を、該タイミング制約違反がなくなるように修正する回路修正手段とを有し、そのことにより上記目的が達成される。
本発明の集積回路のタイミング解析方法は、回路の機能設計終了後、論理素子の接続情報であるネットリストを作成する論理合成ステップと、バッファツリー型クロック分配回路であるクロックツリー合成ステップ以前の該論理素子のレイアウト設計ステップとの少なくともいずれかにおいてタイミング解析を行う集積回路のタイミング解析方法において、 該クロックツリー合成ステップ以前のステップで、タイミング解析を行う際に、該クロックツリー合成ステップ前の回路構造から該クロックツリー合成ステップ後のクロックツリーの構造を予測するクロックツリー構造予測ステップと、予測されたクロックツリーの構造に基づいて、当該クロックツリーの遅延時間を予測する遅延時間予測ステップと、予測されたクロックツリーの遅延時間を用いて、チップ内遅延変動によって生じるクロック信号到達時間の差を示すクロックスキューを予測するクロックスキュー予測ステップとを有し、そのことにより上記目的が達成される。
また、好ましくは、本発明の集積回路のタイミング解析方法において、前記クロックツリー合成ステップ以前の論理素子のレイアウト設計ステップは、該論理素子間の配線設計ステップである。
さらに、好ましくは、本発明の集積回路のタイミング解析方法におけるクロックツリー構造予測ステップは、クロックツリーの起点から該クロックツリーの終点までの回路情報から組み合せ論理素子を検出し、検出された組み合わせ論理素子から該終点までの間に部分的なクロックツリーである子ツリーが生成されることを前提として、最終的なクロックツリーの構成を予測する。
さらに、好ましくは、本発明の集積回路のタイミング解析方法におけるクロックツリー構造予測ステップは、前記レイアウト設計ステップにて階層レイアウト設計を行う場合に、クロックツリーの起点から該クロックツリーの終点までの回路情報から階層設計における子階層の入力端子を検出し、検出された該入力端子から該終点までの間に部分的なクロックツリーである子ツリーが生成されることを前提として、最終的なクロックツリーの構成を予測する。
さらに、好ましくは、本発明の集積回路のタイミング解析方法における遅延時間予測ステップは、部分的な子ツリーを持たないクロックツリーについては、該クロックツリーの終点に接続される論理の規模に対して予め作成された遅延予測データベースを元にクロックツリーの遅延時間を予測し、該部分的な子ツリーを持つクロックツリーについては、該子ツリーを経由せずに直接接続される論理の規模に対して予め作成された該遅延予測データベースを元に当該クロックツリーの遅延時間を予測した上で、該子ツリーの遅延時間と比較して、大きい方の遅延時間をクロックツリーの遅延時間とする。
さらに、好ましくは、本発明の集積回路のタイミング解析方法における遅延時間予測ステップは、前記部分的な子ツリーを持つクロックツリーの処理対象ネットが該クロックツリーの起点でなく、親ツリーを持つ場合に、該親ツリーが生成されるネットを新たな処理対象ネットとして該クロックツリーの遅延時間を予測する。
本発明の集積回路のタイミング解析方法における遅延時間予測ステップは、前記子ツリーの総遅延時間を、予めレイアウト設計の試行を行った結果から求めても良い。
さらに、好ましくは、本発明の集積回路のタイミング解析方法における遅延時間予測ステップは、タイミング解析対象となる論理パスの始点および終点が同一の子ツリーに接続されている場合に、予め定義された非共有パスの比率と該子ツリーの総遅延時間とを乗じることによって、分岐点から先の非共有パスの遅延時間を予測する。
さらに、好ましくは、本発明の集積回路のタイミング解析方法における遅延時間予測ステップは、タイミング解析対象となる論理パスの始点および終点が異なる子ツリーに接続されている場合に、該始点および該終点を包含する親ツリーを検索した上で、該論理パスの始点が含まれる子ツリーの総遅延時間、該論理パスの終点が含まれる子ツリーの総遅延時間、および予め定義された非共有パスの比率と該親ツリーの総遅延時間とを乗じたものを求めて、それらのうちの最も大きいものを非共有パスの遅延時間とする。
さらに、好ましくは、本発明の集積回路のタイミング解析方法におけるクロックスキュー予測ステップは、予め定義されたチップ内遅延変動による遅延の変動率と、前記遅延時間予測ステップで予測された遅延時間とを乗じることによって、クロックスキューを予測する。
さらに、好ましくは、本発明の集積回路のタイミング解析方法において、前記クロックスキューの予測結果に基づいてタイミング解析を行うタイミング解析手段を更に有する。
本発明の集積回路のタイミング最適化方法は、本発明の上記集積回路のタイミング解析方法の各ステップと、該タイミング解析方法によって前記クロックスキューの予測結果に基づいて回路のタイミング解析を行い、タイミング制約違反かどうかを検出するタイミング制約違反検出ステップと、該タイミング制約違反が検出された場合に、該タイミング制約違反の検出箇所の回路を、該タイミング制約違反がなくなるように修正する回路修正ステップとを有し、そのことにより上記目的が達成される。
本発明の集積回路基板の製造方法は、回路の機能設計終了後、論理合成ステップで論理素子の接続情報であるネットリストを作成し、レイアウト設計ステップで論理素子の配置、バッファツリー型クロック分配回路であるクロックツリーの合成、さらに論理素子間の配線設計を行って、マスクデータ作成ステップで製造用マスクデータを作成し、これを用いて集積回路基板を製造する集積回路基板の製造方法において、該クロックツリーの合成ステップ以前の設計ステップで、本発明の上記集積回路のタイミング解析方法によって得られたクロックスキューの予測結果に基づいて回路のタイミング解析を行い、タイミング制約違反かどうかを検出し、該タイミング制約違反が検出された場合に、該タイミング制約違反の検出箇所の回路を、該タイミング制約違反がなくなるように修正するものであり、そのことにより上記目的が達成される。
本発明の制御プログラムは、本発明の上記集積回路のタイミング解析方法の各ステップをコンピュータに実行させるためのものであり、そのことにより上記目的が達成される。
本発明の可読記録媒体は、本発明の上記制御プログラムが記録されたコンピュータ読み出し可能なものであり、そのことにより上記目的が達成される。
上記構成により、以下、本発明の作用を説明する。
本発明にあっては、例えば図7のステップS11の論理合成ステップや、図7のレイアウト設計ステップにおけるステップS12の論理素子の配置ステップなど、図7のステップS13のクロックツリー合成ステップ前の設計ステップにおいて、図9のステップS112のタイミング解析や図10のステップS122のタイミング解析などを行う際に、クロックツリー合成前の論理回路の構造から合成後のクロックツリーの構造を予測し、予測されたクロックツリーの構造に基づいて各クロックツリーの遅延時間を予測して、予測されたクロックツリーの遅延時間を用いてチップ内遅延変動によって生じるクロック信号到達時間の差であるクロックスキューを予測する。
クロックツリーの構造を予測する際には、クロックツリーの起点からクロックツリーの終点(各フリップフロップ)までの回路情報(論理回路情報)から組み合せ論理素子を検出する。この検出された組み合わせ論理素子から終点までの間に部分的なクロックツリーである子ツリーが生成されることを前提として、最終的なクロックツリーの構成を予測する。また、レイアウト設計にて階層レイアウト設計を行う場合には、クロックツリーの起点からクロックツリーの終点(各フリップフロップ)までの回路情報から階層設計における子階層の入力端子を検出する。この検出された入力端子から終点までの間に子ツリーが生成されることを前提として、最終的なクロックツリーの構成を予測する。
部分的な子ツリーを持たないクロックツリーについては、終点に接続される論理の規模に対して予め作成された遅延予測データベースを元に各クロックツリーの遅延時間を予測する。また、部分的な子ツリーを持つクロックツリーについては、子ツリーを経由せずに直接接続される論理の規模に対して予め作成された遅延予測データベースを元にクロックツリーの遅延時間を予測した上で、子ツリーの遅延時間と比較して、大きい方の遅延時間をクロックツリーの遅延時間とする。或いは、子ツリーの総遅延時間を、予めレイアウト設計の試行を行った結果から求めてもよい。
チップ内遅延ばらつきを考慮したタイミング解析では、クロックツリーの分岐点以降の非共通パス部分に着目する。これは、クロックパスのうちの共通部分については、遅延ばらつきによる遅延の変動があっても、セットアップ制約やホールド制約の式の結果に影響を与えず、スキューが発生しないからである。
解析対象となる論理パスの始点および終点が同一の子ツリーに接続されている場合には、予め定義された非共有パスの比率と子ツリーの総遅延時間とを乗じることによって、分岐点から先の非共有パスの遅延時間を予測することが可能となる。
また、解析対象となる論理パスの始点および終点が異なる子ツリーに接続されている場合には、始点および終点を包含する親ツリーを検索した上で、論理パスの始点が含まれる子ツリーの総遅延時間、論理パスの終点が含まれる子ツリーの総遅延時間、および予め定義された非共有パスの比率と親ツリーの総遅延時間とを乗じたものを求めて、それらのうちの最も大きいものを非共有パスの遅延時間とすることが可能となる。
予測された各クロックツリーの遅延時間と、予め定義しておいたチップ内遅延変動による遅延の変動率とを乗じることによって、クロックスキューを予測することが可能となる。
このように、クロックツリー合成前の回路構造(論理回路の構造)からクロックツリー合成後のクロックツリーの構造を予測することによって、遅延ばらつきによるクロックスキューとして適切な値を予測することが可能となる。
さらに、クロックツリー合成前のステップで、得られたクロックスキューの予測値に基づいてタイミング解析を行い、タイミング制約違反が発生した箇所の回路を、タイミング制約違反が発生しないように修正することによって、クロックツリー合成後にタイミング制約違反が多発することを防ぐことが可能となる。
以上により、本発明によれば、クロックツリー合成前の論理回路の構造からクロックツリー合成後のクロックツリーの構造を予測することにより、遅延ばらつきによるクロックスキューとして適切な値を予測することができる。さらに、この予測値に基づいたタイミング解析により検出されたタイミング制約違反に予め対処することによって、クロックツリー合成後にタイミング制約違反が多発することを防ぐことができる。
以下、本発明の集積回路のタイミング解析装置を含むタイミング最適化装置およびタイミング解析方法を含むタイミング最適化方法の実施形態について図面を参照しながら説明する。
図1は、本発明の大規模集積回路のタイミング最適化装置の実施形態における要部構成例を示すブロック図である。
図1において、本実施形態の大規模集積回路(LSI)のタイミング最適化装置1は、情報入力用および選択用のキーボードやマウスなどの他、外部情報入力を可能とする入力部2と、本発明の大規模集積回路のタイミング解析方法をコンピュータにより実行させるための処理手順が記述された制御プログラムおよびそのデータが格納されている可読記録媒体としてのROM3と、制御手段がワークメモリとして利用するRAM4と、本発明のタイミング解析処理を実行するための各種データを格納したデータベース5と、初期画面、情報入力および選択内容などを示す画面の他、解析結果などを表示可能とする表示部6と、CPU(中央演算処理装置)からなる制御手段7とを有している。
可読記録媒体としては、各種ICメモリ、ハードディスク(HD)、光ディスク(例えばCD)および磁気記録媒体(例えばFD)などの記憶装置であり、本発明の制御プログラムおよびそのデータがコンピュータ読み取り可能な記録媒体であって、この記録媒体から読み取られた制御プログラムおよびそのデータがROM3からRAM4内に格納されて制御手段7によって実行される。
データベース5は、本発明のタイミング解析処理を実行するための各種データとして、後述するが、遅延時間予測処理をするために予め作成されたクロックツリーに接続される論理の規模(回路規模)対クロック遅延のデータベースD1と、別途定義した非共有パス比率E1と、別途定義した遅延ばらつき比率F1とを格納している。
制御手段7は、詳細に後述するが、本発明の制御プログラムおよびそのデータに基づいて、クロックツリーの合成以前で、タイミング解析を行う際に、論理合成された論理回路の構造からクロックツリーの構造を予測するクロックツリー構造予測手段71と、この予測されたクロックツリーの構造に基づいて、各クロックツリーの遅延時間を予測する遅延時間予測手段72と、予測されたクロックツリーの遅延時間を用いて、チップ内遅延変動によって生じるクロック信号到達時間の差を示すクロックスキューを予測するクロックスキュー予測手段73と、クロックスキューの予測結果に基づいてタイミング解析を行うタイミング解析手段74と、タイミング制約違反かどうかを検出するタイミング制約違反検出手段75と、タイミング制約違反検出手段75でタイミング制約違反が検出された場合に、タイミング制約違反の検出箇所の回路(論理回路)を、タイミング制約違反がなくなるように修正する回路修正手段76との各機能を実行する。これらのクロックツリー構造予測手段71、遅延時間予測手段72、クロックスキュー予測手段73およびタイミング解析手段74により本発明の大規模集積回路のタイミング解析装置1Aの制御手段7Aが構成されている。この大規模集積回路のタイミング解析装置1Aの制御手段7Aと、タイミング制約違反検出手段75および回路修正手段76とにより大規模集積回路(LSI)のタイミング最適化装置1の制御手段7が構成されている。
クロックツリー構造予測手段71は、クロックツリーの起点からクロックツリーの終点となるフリップフロップまでの論理回路情報から、階層設計における子階層の入力端子や、組み合せ論理素子を検出し、検出された入力端子や組み合わせ論理素子からフリップフロップまでの間に部分的なクロックツリーである子ツリーが生成されることを前提として、最終的なクロックツリーの構成を予測する。
遅延時間予測手段72は、部分的な子ツリーを持たないクロックツリーについては、終点に接続される論理の規模に対して予め作成された遅延予測データベースを元に各クロックツリーの遅延時間を予測し、また、部分的な子ツリーを持つクロックツリーについては、子ツリーを経由せずに直接接続される論理の規模に対して予め作成された遅延予測データベースを元にクロックツリーの遅延時間を予測した上で、その子ツリーの遅延時間と比較して、大きい方の遅延時間をクロックツリーの遅延時間とする。
クロックスキュー予測手段73は、予め定義されたチップ内遅延変動による遅延の変動率と、遅延時間予測手段72で予測された遅延時間とを乗じることによって、クロックスキューを予測する。
上記大規模集積回路のタイミング解析装置1Aを用いたタイミング解析方法について具体的に説明する前に、まず、一般的なクロックツリーの構造について図2および図3により説明する。
図2(a)〜図2(f)は、一般的なクロックツリーの構造を説明するための回路図である。なお、図2(a)、図2(c)および図2(e)はそれぞれ、クロックツリー合成前の回路図を示しており、図2(b)、図2(d)および図2(f)はそれぞれ、クロックツリー合成後の回路図を示している。
図2(b)の回路32は、図2(a)の回路31に対してクロックツリー合成を行った後の回路図である。図2(a)の回路31に対してクロックツリーの合成を行う際には、クロックツリーの起点として指定された点311から、同じクロックに所属する全てのフリップフロップ312までの遅延が一律になるように、図2(b)に示すバッファツリー型の回路32を構成する。
図2(d)の回路34は、図2(c)の回路33に対してクロックツリー合成を行った後の回路図である。図2(c)の回路33のように、クロック系統のゲーテッドクロック用として組み合せ論理素子331が挿入されている場合についても、その先に接続されているフリップフロップ333までの遅延が、その他のフリップフロップ332までの遅延と等しくなるように、図2(d)に示すバッファツリー型の回路34を構成する。ただし、この場合、クロックツリー合成前後で論理を等しくするために、クロックツリー合成後の回路34には、ゲーテッドクロック用に、組み合せ論理素子331以降にこれを含む子ツリー334を有する回路構成となっている。
図2(f)の回路36は、図2(e)の回路35に対してクロックツリー合成を行った後の回路図である。階層レイアウト設計を行う場合に、図2(e)の回路35のように、クロックツリー合成前のクロック系統に子階層のクロック入力端子351が含まれている場合についても、その先に接続されているフリップフロップ353までの遅延が、その他のフリップフロップ352までの遅延と等しくなるように、図2(f)に示すバッファツリー型の回路36を構成する。ただし、この場合、クロックツリー合成処理が階層別に実施されるため、子階層のクロック入力端子351以降にこれを含む子ツリー354を有する回路構成となっている。
図3(a)〜図3(d)は、子ツリーが存在する場合について、クロックツリーの構造例を説明するための回路図である。なお、図3(a)および図3(c)はそれぞれ、クロックツリー合成前の回路図を示し、図3(b)および図3(d)はそれぞれ、クロックツリー合成後の回路図を示している。
図3(b)の回路42は、図3(a)の回路41に対してクロックツリー合成を行った後の回路図である。図3(a)の回路41では、クロックツリーの起点417から並列のクロックネット411,412が接続され、一方のクロックネット411に組み合せ論理素子413が挿入されてフリップフロップ414、415に接続され、他方のクロックネット412に複数のフリップフロップ416が接続されている。これに対して、図3(b)の回路42のように、組み合せ論理素子413以降にこれを含む子ツリー421を有する回路構成となっいる。ここで、図3(b)のように、子ツリー421に接続されるフリップフロップ414、415の数が、親ツリー422に直接接続される複数のフリップフロップ416の数よりも少ない場合には、子ツリー421の規模よりも親ツリー422の規模が大きくなる。この場合、各フリップフロップ414〜416への遅延を等しくするために、回路全体の遅延(子ツリー421の遅延+親ツリー422の一部423の遅延)が親ツリー422の遅延と等しくなるように、子ツリー421が親ツリー422の途中に接続されている。
図3(d)の回路44は、図3(c)の回路43に対してクロックツリー合成を行った後の回路図である。図3(c)の回路43では、クロックツリーの起点437から並列のクロックネット431,432が接続され、一方のクロックネット431に組み合せ論理素子433が挿入されてフリップフロップ434、435、・・に接続され、他方のクロックネット432に複数のフリップフロップ416、・・が接続されている。これに対して、図3(d)の回路44のように、組み合せ論理素子433以降にこれを含む子ツリー441を有する回路構成となる。ここで、図3(d)のように、子ツリー441に接続される複数のフリップフロップ434、435、・・の数が親ツリー444に直接接続されるフリップフロップの数よりも多い場合には、子ツリー441の規模よりも親ツリー444が直接駆動するフリップフロップの部分ツリー442の規模が小さくなる。この場合、各フリップフロップへの遅延を等しくするために、親ツリーに直接接続されるフリップフロップに対して遅延回路443が挿入されて、親ツリー444の遅延と、子ツリー441の遅延がほぼ等しくなる。
次に、ここで、本実施形態の大規模集積回路のタイミング解析装置1Aを用いたタイミング解析方法について具体的に説明する。
本実施形態では、図1で前述したように、クロックツリー合成前の設計ステップでクロックツリーの構造を予測するクロックツリー構造予測手段71は、このようなクロックツリーの構成を前提として、クロックツリー合成前の論理回路の構造からクロックツリー合成後のクロックツリーの構造を予測する。さらに、遅延時間予測手段72により、予測されたクロックツリーの構造に基づいて各クロックツリーの遅延時間を予測し、クロックスキュー予測手段73により、予測された遅延時間を用いて、遅延ばらつきによるクロックスキューを求める。これについて図4〜図6により具体的に説明する。
図4は、図1の大規模集積回路のタイミング解析装置1Aを用いたタイミング解析方法の各処理を示すフローチャートである。
本実施形態では、図7のステップS11の論理合成ステップやレイアウト設計ステップにおけるステップS12の論理素子の配置ステップのようなクロックツリー合成前の設計ステップにおいて、図9のステップS112や図10のステップS122のようにタイミング解析処理(タイミング解析手段74)を行う際に(タイミング解析処理を行う前に)、クロックツリー構造予測手段71がクロックツリー合成前の論理回路の構造からクロックツリー合成後のクロックツリーの構造を予測し、遅延時間予測手段72がその予測されたクロックツリーの構造に基づいて各クロックツリーの遅延時間を予測して、クロックスキュー予測手段73が遅延ばらつきによるクロックスキューを求める。
なお、以下では、図4の内容を補足するために、遅延ばらつきを考慮したタイミング解析の事例を説明する図6、および子ツリーを含む回路例としての図2および図3を用いて説明を行う。
クロックツリー構造予測手段71によるクロックツリー構造予測ステップでは、クロックツリー合成対象の回路の中から、図2(e)に示す階層設計における子階層の入力端子351の先にこれを含む子ツリー354や、図2(b)に示すゲーテッドクロックを構成する組み合わせ論理素子331の先にこれを含む子ツリー334が生成されることを前提として、クロックツリーの構造を予測する。このために、まず、該当する子階層の入力端子351や論理素子331を検出するための処理が必要である。
そこで、図7のステップS11の論理合成ステップやレイアウト設計ステップにおけるステップS12の論理素子の配置ステップのようなクロックツリー合成ステップ前の設計ステップにおいて、図9のステップS112や図10のステップS122のようにタイミング解析を行う際に、図4の処理フローを開始して、まず、ステップS21で、クロックツリー合成前の論理回路と、図3(a)に示すクロックツリーの起点417のようなクロック定義点に関する情報を読み込む。
次に、ステップS22で、レイアウト設計にて階層レイアウト設計を用いるかどうかを判定し、レイアウト設計にて階層レイアウト設計を用いる場合(YES)は、図4のステップS23で、階層設計における子階層の入力端子を抽出する。抽出に当たっては、前のステップS21で読み込まれた論理回路と、図3(a)に示すクロックツリーの起点417のようなクロック定義点に関する情報を元に、起点から下流方向にネットを移動して、図3(a)に示すフリップフロップのクロック端子414〜416、・・のような終点となるフリップフロップに至るパスを全て検索する。検索したパスの中から、子階層の入力端子を全て抽出する。
続いて、ステップS22でレイアウト設計にて階層レイアウト設計を用いない場合(NO)かまたは、階層レイアウト設計を用いかつステップS23の処理終了後、即ち、階層レイアウト設計に関わらず、図4のステップS24で、図3(a)に示す組み合せ論理素子413のような組み合わせ論理素子を抽出する。このときの抽出は、子階層の入力端子の場合と同様に、前のステップS21で読み込まれた論理回路と、図3(a)に示すクロックツリーの起点417のようなクロック定義点に関する情報を元に、起点から下流方向にネットを移動して、図3(a)に示す終点となるクロック端子のフリップフロップ414〜416に至るパスを全て検索する。この検索したパスの中から、組み合せ論理素子を全て抽出する。
このようにして、子階層の入力端子や論理素子を抽出した後、遅延時間予測手段72による遅延時間予測ステップにおいて、クロックツリー構造予測手段71が予測したクロックツリーの構造に基づいて、各クロックツリーの遅延時間を予測する。
まず、図4のステップS25において、各子ツリーおよびクロックツリー全体の遅延時間を予測する。クロックツリーの遅延時間の予測に際しては、ステップS21で読み込まれたクロック定疑点の情報、ステップS23、S24で抽出された子階層の入力端子と論理素子の情報、および、予め作成されたクロックツリーに接続される論理の規模(回路規模)対クロック遅延のデータベースD1を用いる。
図5は、図4の遅延時間予測処理ステップS25について詳細に説明するためのフローチャートである。
まず、ステップS251においては、図3(a)のクロックの起点417となるネットを処理の対象とする。
次に、条件判断のステップS252において、処理対象のネット上に、図4のステップS23,S24で抽出された子階層の入力端子や図3(a)のような組み合せ論理素子413が存在し、かつ、それらの先に予想される図3(b)のような子ツリー421のうち、総遅延が未確定のものがある場合には、ステップS253において、図3(a)のクロックネット411のような子ツリーが予想されるネットを新たな対象として、条件判断のステップS252の処理に戻る。
条件判断のステップS252において、処理対象のネット上に、図4のステップS23,S24で抽出された子階層の入力端子や組み合せ論理素子が存在しないか、または、存在していても子ツリーの予想遅延が確定している場合(NO)には、ステップS254の処理に進み、処理対象ネット自体の遅延を予測する。
ステップS254では、クロックツリーに接続される論理の規模対クロック遅延のデータベースD1を用いる。一般的な傾向として、クロックツリーが駆動すべきフリップフロップ数が多いと、大規模なクロックツリーが必要になるため、クロックツリーの遅延が大きくなる。また、フリップフロップ数が少ないと、クロックツリーの遅延は小さくなる。このような傾向を、試行データや過去の設計結果の集計を行って求め、「フリップフロップの数 対 生成されるクロックツリーの遅延の対応表」としてデータベースD1に格納することができる。このデータベースD1と、処理対象ネットに直接接続されているフリップフロップの数から、予想されるクロックツリーの遅延を求めることができる。
条件判断のステップS255において、図3(b)の子ツリー421または図3(d)の子ツリー441のように、処理対象のネット上に図4のステップS23,S24で抽出された子階層の入力端子や論理素子が存在しないケース(NO)であるか、または、図3(b)の親ツリー422または図3(d)の部分ツリー442のように、子ツリーが存在していて子ツリーの予想遅延が確定しているケース(YES)であるかどうかを判断する。
前者である場合(NO;部分的な子ツリーを持たない場合)には、ステップS256の処理に進み、ステップS254で求めた遅延を処理対象ネットに生成されるクロックツリーの予想遅延とする。
また、後者である場合(YES;部分的な子ツリーを持つ場合)には、ステップS257の処理に進み、クロックツリーの構成が、図3(b)の回路42のように、子ツリー421の遅延が親ツリー422の遅延より小さいケースと、図3(d)の回路44のように子ツリー441の遅延が親ツリーの部分ツリー442の遅延よりも大きいケースとを想定し、ステップS254で求めた処理対象ネットの遅延と、子ツリーの遅延とのうちの大きい方を、処理対象ネットに生成されるクロックツリーの予想遅延とする。
処理対象ネットの予想遅延の確定後、条件判断のステップS258の処理に進み、処理対象ネットがクロックの起点でなく、親ツリーを持つ場合には(YES)、ステップS259で親ツリーが生成されるネットを新たな処理対象ネットとして、条件判断のステップS252の処理に戻る。
また、処理対象ネットがクロックの起点のネットである場合は、クロックツリーの総遅延を求める作業(ステップS25)を終了し、次の図4のステップS26の処理に進む。
即ち、部分的な子ツリーを持たないクロックツリーについては、クロックツリーの終点に接続される論理の規模に対して予め作成された遅延予測データベースを元に各クロックツリーの遅延時間を予測し、また、部分的な子ツリーを持つクロックツリーについては、子ツリーを経由せずに直接接続される論理の規模に対して予め作成された該遅延予測データベースを元にクロックツリーの遅延時間(処理対象ネットの遅延時間)を予測した上で、子ツリーの遅延時間と比較して、大きい方の遅延時間をクロックツリーの遅延時間とする。この場合に、処理対象ネットがクロックツリーの起点ではなく、親ツリーを持つ場合には、その親ツリーが生成されるネットを新たな処理対象ネットとしてクロックツリーの遅延時間を予測する。
次の 図4のステップS26では、図8の24〜21および24〜22のような論理パスの始点から終点へのクロックパスのうち、遅延ばらつきについては、図8の26および27のような非共有パスについてのみ考慮すればよいことに着目して、図4のステップS25で予測した各子ツリーの遅延時間と、別途定義した非共有パス比率E1とを用いて、始点および終点が共に同一子ツリーに含まれる非共有パスの遅延を求める。
LSIのレイアウト設計においては、タイミング制約に基づいて論理素子の配置が行われるため、通常、密接に関係するフリップフロップは近い位置に配置されることが多く、クロックツリーの同じ枝に属することが多い。
そこで、本実施形態では、このような状況を反映するために、非共有パスの比率E1を用いる。非共有パス比率E1は、予め試行データを用いてレイアウト設計を行い、その結果から、互いに関連するフリップフロップ間のクロックツリーの遅延のうち、非共有パスの遅延の割合がどの程度であるかを集計して準備する。
非共有パスの遅延は、
(各子ツリーの遅延時間×非共有パス比率)
として算出されるが、集計結果に応じて、
(各子ツリーの遅延時間×非共有パス比率+非共有パス遅延の一律部分)
のように、予測式を変えた応用も可能である。
即ち、タイミング解析対象となる論理パスの始点および終点が同一の子ツリーに接続されている場合に、予め定義された非共有パスの比率と子ツリーの総遅延時間とを乗じることによって、分岐点から先の非共有パスの遅延時間を予測する。
このようにして、全ての子ツリー、およびクロックツリー全体に対して、非共有パスの遅延を求めた後、後述するが、クロックスキュー予測手段73によるクロックスキュー予測ステップにおいて、遅延ばらつきによるクロックスキューを求める。
図4のステップS27では、論理パスの始点および終点が、同一の子ツリーに接続されるか、または、別の子ツリーに接続されるかによって、非共有パスの遅延値の予測方法を変え、適切な非共有パスの予測に基づいて、遅延ばらつきによるクロックスキューを求める。この具体例を図6に示している。
図6は、図4の遅延バラツキによるクロックスキュー予測ステップS27について、その内容を詳細に説明するためのフローチャートである。
図6に示すように、まず、ステップS271において、任意の論理パスの始点および終点について、図3(a)のフリップフロップ414,415のように同一のクロックネット411に接続されているか、または図3(a)のフリップフロップ415,416のように異なるクロックネット411,412に接続されているかどうかを判断する。
図3(a)のフリップフロップ414,415のように、任意の論理パスの始点および終点が同一のクロックネット411に接続されている場合(ステップS271;YES)には、ステップS272の処理に進み、そのネットに対して図4のステップS26で求めた子ツリーの非共有パスの遅延値と、別途定義した遅延ばらつき比率F1とから、その論理パスのタイミング解析で考慮すべき遅延ばらつきによるクロックスキューを
(子ツリーの非共有パスの遅延値×遅延ばらつき比率)
として算出する。
また、図3(a)のフリップフロップ415,416のように、任意の論理パスの始点および終点が異なるクロックネット411,412に接続されている場合(ステップS271;NO)には、ステップS273の処理に進み、始点および終点が所属する親ツリーが予想されるクロックネット412を検索する。始点、終点または両方が子ツリーに所属する場合は、それぞれに予想される子ツリー421の総遅延時間と、親ツリー422の非共有パスの遅延時間の大小関係を比較する。ここで、総遅延時間は図4のステップS25で、非共有パスの遅延時間は図4のステップS26で、既に求められている。
親ツリーの非共有パスの遅延時間が各子ツリーの総遅延時間よりも大きい場合(YES)は、ステップS275の処理に進み、その論理パスのタイミング解析で考慮すべき遅延ばらつきによるクロックスキューを
(親ツリーの非共有パスの遅延値×遅延ばらつき比率)
として算出する。この処理は、図3(b)のように、親ツリー422が子ツリー421に対して大きく、子ツリー421の起点が親ツリー422の起点よりも終点のフリップフロップに近い位置にあるケースに対応する。
また、子ツリーの非共有パスの遅延が子ツリーの総遅延よりも大きくない場合(NO)には、ステップS276の処理に進み、その論理パスのタイミング解析で考慮すべき遅延ばらつきによるクロックスキューを
(子ツリーの総遅延値×遅延ばらつき比率)
として算出する。この処理は、図3(d)のように、子ツリー441が大きく、子ツリー441の起点が親ツリーの起点に近い位置にあるケースに対応する。
即ち、タイミング解析対象となる論理パスの始点および終点が異なる子ツリーに接続されている場合に、始点および終点を包含する親ツリーを検索した上で、論理パスの始点が含まれる子ツリーの総遅延時間、論理パスの終点が含まれる子ツリーの総遅延時間、および、予め定義された非共有パスの比率と親ツリーの総遅延時間とを乗じたものを求めて、それらのうちの最も大きいものを非共有パスの遅延時間とする。このようにして予測された遅延時間と、予め定義されたチップ内遅延変動による遅延の変動率とを乗じることによって、クロックスキューを予測する。
図4のステップS27の処理後、図9のステップS112または図10のステップS122のタイミング解析ステップにおける残りの処理に戻る。
図4のステップS27において予測された遅延ばらつきによるクロックスキュー(予測結果)を、図9のステップS112または図10のステップS122のタイミング解析ステップ(タイミング解析手段74によるタイミング解析処理)に適用し、タイミング制約違反検出手段75により図9のステップS113または図10のステップS123のように、タイミング制約違反かどうかを検出し、タイミング制約違反が検出された場合に、回路修正手段76により図9のステップS114または図10のステップS124のように、そのタイミング制約違反の検出箇所の回路を、そのタイミング制約違反がなくなるように修正する。
このようなクロックスキュー予測処理、タイミング解析処理、タイミング制約違反検出処理および回路修正処理が論理合成ステップおよび論理素子の配置ステップにて行われる。このようにして、回路の機能設計終了後、論理合成ステップで論理素子の接続情報であるネットリストを作成し、レイアウト設計ステップで論理素子の配置、バッファツリー型クロック分配回路であるクロックツリーの合成、さらに論理素子間の配線を行って、マスクデータ作成ステップで製造用マスクデータを作成し、これを用いて集積回路基板を製造することができる。
以上により、本実施形態によれば、クロックツリー合成以前のステップでタイミング解析を行う前に、クロックツリー構造予測手段71がクロックツリー合成前の論理回路の構造から合成後のクロックツリーの構造を予測し、遅延時間予測手段72が予測されたクロックツリーの構造に基づいて各クロックツリーの遅延時間を予測し、クロックスキュー予測手段73がチップ内遅延変動によって生じるクロックスキューを予測する。このように、遅延ばらつきによるクロックスキューを適切に予測し、このクロックスキューの予測結果に基づいてタイミング解析を行って、検出されたタイミング制約違反に予め対処することによって、図7のステップS13のクロックツリー合成ステップ後に行われる、図7のステップS14の論理素子の配線ステップにおいて、タイミング制約違反が多発することを防ぐことができる。即ち、LSIのチップ内遅延ばらつきによるクロックスキューへの影響を、クロックツリー合成以前の設計ステップで適切に予測して、タイミング制約違反に対処することによりクロックツリー合成後にタイミング制約違反が多発することを防ぐことができる。
なお、以上のように、本発明の好ましい実施形態を用いて本発明を例示してきたが、本発明は、この実施形態に限定して解釈されるべきものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。本明細書において引用した特許、特許出願および文献は、その内容自体が具体的に本明細書に記載されているのと同様にその内容が本明細書に対する参考として援用されるべきであることが理解される。
本発明は、LSI(大規模集積回路)やIC(集積回路)のチップ内遅延ばらつきによるクロック信号到達時間の差(クロックスキュー)への影響を、クロック分配回路生成前の設計ステップで予測する集積回路のタイミング解析装置、その予測結果を用いて回路を最適化する集積回路のタイミング最適化装置、集積回路のタイミング解析方法、その予測結果を用いて回路を最適化する集積回路のタイミング最適化方法、集積回路基板の製造方法、これらの方法の処理をコンピュータに実行させるための制御プログラムおよびこれが記録されたコンピュータ読み取り可能な可読記録媒体の分野において、LSIなどの設計ステップで、遅延ばらつきによるクロックスキューを適切に予測し、これに基づいてタイミング解析を行って、検出されたタイミング制約違反に予め対処することによってタイミングを最適化することが可能となり、クロックツリー合成ステップ後のステップにおいて、タイミング制約違反が多発することを防いで、設計時間の短縮化を図ることができる。
本発明の大規模集積回路のタイミング最適化装置の実施形態における要部構成例を示すブロック図である。 (a)〜(f)は、一般的なクロックツリーの構造を説明するための回路図である。 (a)〜(d)は、子ツリーが存在する場合について、クロックツリーの構造例を説明するための回路図である。 図1の大規模集積回路のタイミング解析装置を用いたタイミング解析方法の各処理を示すフローチャートである。 図4の遅延時間予測処理ステップについて詳細に説明するためのフローチャートである。 図4の遅延バラツキによるクロックスキュー予測ステップについて詳細に説明するためのフローチャートである。 一般的なLSIの自動設計フローを説明するためのフローチャートである。 任意の組み合せ回路を通してデータのやり取りを行うフリップフロップ間の論理パスのタイミング解析について説明するための回路図である。 図7のステップS11の論理合成ステップを詳細に説明するためのフローチャートである。 図7のステップS12の論理素子配置ステップを詳細に説明するためのフローチャートである。 図7のステップS14の配線ステップを詳細に説明するためのフローチャートである。
符号の説明
1 タイミング最適化装置
1A タイミング解析装置
2 入力部
3 ROM
4 RAM
5 データベース
6 表示部
7 制御手段
7A タイミング解析装置の制御手段
71 クロックツリー構造予測手段
72 遅延時間予測手段
73 クロックスキュー予測手段
74 タイミング解析手段
75 タイミング制約違反検出手段
76 回路修正手段
21、22 フリップフロップ
23 組み合せ回路
24 クロック供給点
25〜27 バッファ
31、33、35 クロックツリー合成前の回路
32、34、36 クロックツリー合成後の回路
311 クロックツリーの起点
312 フリップフロップ
331 組み合せ論理素子
332、333 フリップフロップ
334 子ツリー
351 子階層の入力端子
352、353 フリップフロップ
354 子ツリー
41、43 クロックツリー合成前の回路
42、44 クロックツリー合成後の回路
411、412、431、432 クロックネット
413、433 組み合せ論理素子
414、415、416 フリップフロップ
417、444 クロックツリーの起点
421、441 子ツリー
422 親ツリー
423 親ツリーの一部
442 親ツリーば直接駆動するフリップフロップへの部分ツリー
443 遅延回路

Claims (26)

  1. 回路の機能設計終了後、論理素子の接続情報であるネットリストを作成する論理合成と、バッファツリー型クロック分配回路であるクロックツリーの合成以前の該論理素子のレイアウト設計との少なくともいずれかにおいてタイミング解析を行う集積回路のタイミング解析装置において、
    該クロックツリーの合成以前で、タイミング解析を行う際に、論理合成された回路構造から該クロックツリーの構造を予測するクロックツリー構造予測手段と、
    予測されたクロックツリーの構造に基づいて、当該クロックツリーの遅延時間を予測する遅延時間予測手段と、
    予測されたクロックツリーの遅延時間を用いて、チップ内遅延変動によって生じるクロック信号到達時間の差を示すクロックスキューを予測するクロックスキュー予測手段とを有する集積回路のタイミング解析装置。
  2. 前記クロックツリー構造予測手段は、クロックツリーの起点から該クロックツリーの終点までの回路情報から組み合せ論理素子を検出し、検出された該組み合わせ論理素子から該終点までの間に部分的なクロックツリーである子ツリーが生成されることを前提として、最終的なクロックツリーの構成を予測する請求項1に記載の集積回路のタイミング解析装置。
  3. 前記クロックツリー構造予測手段は、前記レイアウト設計にて階層レイアウト設計を行う場合に、クロックツリーの起点から該クロックツリーの終点までの回路情報から階層設計における子階層の入力端子を検出し、検出された該入力端子から該終点までの間に部分的なクロックツリーである子ツリーが生成されることを前提として、最終的なクロックツリーの構成を予測する請求項1または2に記載の集積回路のタイミング解析装置。
  4. 前記遅延時間予測手段は、
    部分的な子ツリーを持たないクロックツリーについては、該クロックツリーの終点に接続される論理の規模に対して予め作成された遅延予測データベースを元にクロックツリーの遅延時間を予測し、
    該部分的な子ツリーを持つクロックツリーについては、該子ツリーを経由せずに直接接続される論理の規模に対して予め作成された該遅延予測データベースを元に当該クロックツリーの遅延時間を予測した上で、該子ツリーの遅延時間と比較して、大きい方の遅延時間をクロックツリーの遅延時間とする請求項1に記載の集積回路のタイミング解析装置。
  5. 前記遅延時間予測手段は、前記部分的な子ツリーを持つクロックツリーの処理対象ネットが該クロックツリーの起点でなく、親ツリーを持つ場合に、該親ツリーが生成されるネットを新たな処理対象ネットとして該クロックツリーの遅延時間を予測する請求項4に記載の集積回路のタイミング解析装置。
  6. 前記遅延時間予測手段は、前記子ツリーの総遅延時間を、予めレイアウト設計の試行を行った結果から求める請求項1に記載の集積回路のタイミング解析装置。
  7. 前記遅延時間予測手段は、タイミング解析対象となる論理パスの始点および終点が同一の子ツリーに接続されている場合に、予め定義された非共有パスの比率と該子ツリーの総遅延時間とを乗じることによって、分岐点から先の非共有パスの遅延時間を予測する請求項1、4および6のいずれかに記載の集積回路のタイミング解析装置。
  8. 前記遅延時間予測手段は、タイミング解析対象となる論理パスの始点および終点が異なる子ツリーに接続されている場合に、該始点および該終点を包含する親ツリーを検索した上で、該論理パスの始点が含まれる子ツリーの総遅延時間、該論理パスの終点が含まれる子ツリーの総遅延時間、および予め定義された非共有パスの比率と該親ツリーの総遅延時間とを乗じたものを求めて、それらのうちの最も大きいものを非共有パスの遅延時間とする請求項1、4および6のいずれかに記載の集積回路のタイミング解析装置。
  9. 前記クロックスキュー予測手段は、予め定義されたチップ内遅延変動による遅延の変動率と、前記遅延時間予測手段で予測された遅延時間とを乗じることによって、クロックスキューを予測する請求項1および4〜8のいずれかに記載の集積回路のタイミング解析装置。
  10. 前記クロックスキューの予測結果に基づいてタイミング解析を行うタイミング解析手段を更に有する請求項1または9に記載の集積回路のタイミング解析装置。
  11. 請求項1〜10のいずれかに記載の集積回路のタイミング解析装置と、該タイミング解析装置によって前記クロックスキューの予測結果に基づいて回路のタイミング解析を行い、タイミング制約違反かどうかを検出するタイミング制約違反検出手段と、該タイミング制約違反が検出された場合に、該タイミング制約違反の検出箇所の回路を、該タイミング制約違反がなくなるように修正する回路修正手段とを有する集積回路のタイミング最適化装置。
  12. 回路の機能設計終了後、論理素子の接続情報であるネットリストを作成する論理合成ステップと、バッファツリー型クロック分配回路であるクロックツリー合成ステップ以前の該論理素子のレイアウト設計ステップとの少なくともいずれかにおいてタイミング解析を行う集積回路のタイミング解析方法において、
    該クロックツリー合成ステップ以前のステップで、タイミング解析を行う際に、該クロックツリー合成ステップ前の回路構造から該クロックツリー合成ステップ後のクロックツリーの構造を予測するクロックツリー構造予測ステップと、
    予測されたクロックツリーの構造に基づいて、当該クロックツリーの遅延時間を予測する遅延時間予測ステップと、
    予測されたクロックツリーの遅延時間を用いて、チップ内遅延変動によって生じるクロック信号到達時間の差を示すクロックスキューを予測するクロックスキュー予測ステップとを有する集積回路のタイミング解析方法。
  13. 前記クロックツリー合成ステップ以前の論理素子のレイアウト設計ステップは、該論理素子間の配線設計ステップである請求項12に記載の集積回路のタイミング解析方法。
  14. 前記クロックツリー構造予測ステップは、クロックツリーの起点から該クロックツリーの終点までの回路情報から組み合せ論理素子を検出し、検出された組み合わせ論理素子から該終点までの間に部分的なクロックツリーである子ツリーが生成されることを前提として、最終的なクロックツリーの構成を予測する請求項12に記載の集積回路のタイミング解析方法。
  15. 前記クロックツリー構造予測ステップは、前記レイアウト設計ステップにて階層レイアウト設計を行う場合に、クロックツリーの起点から該クロックツリーの終点までの回路情報から階層設計における子階層の入力端子を検出し、検出された該入力端子から該終点までの間に部分的なクロックツリーである子ツリーが生成されることを前提として、最終的なクロックツリーの構成を予測する請求項12または14に記載の集積回路のタイミング解析方法。
  16. 前記遅延時間予測ステップは、
    部分的な子ツリーを持たないクロックツリーについては、該クロックツリーの終点に接続される論理の規模に対して予め作成された遅延予測データベースを元にクロックツリーの遅延時間を予測し、
    該部分的な子ツリーを持つクロックツリーについては、該子ツリーを経由せずに直接接続される論理の規模に対して予め作成された該遅延予測データベースを元に当該クロックツリーの遅延時間を予測した上で、該子ツリーの遅延時間と比較して、大きい方の遅延時間をクロックツリーの遅延時間とする請求項12に記載の集積回路のタイミング解析方法。
  17. 前記遅延時間予測ステップは、前記部分的な子ツリーを持つクロックツリーの処理対象ネットが該クロックツリーの起点でなく、親ツリーを持つ場合に、該親ツリーが生成されるネットを新たな処理対象ネットとして該クロックツリーの遅延時間を予測する請求項16に記載の集積回路のタイミング解析方法。
  18. 前記遅延時間予測ステップは、前記子ツリーの総遅延時間を、予めレイアウト設計の試行を行った結果から求める請求項12に記載の集積回路のタイミング解析方法。
  19. 前記遅延時間予測ステップは、タイミング解析対象となる論理パスの始点および終点が同一の子ツリーに接続されている場合に、予め定義された非共有パスの比率と該子ツリーの総遅延時間とを乗じることによって、分岐点から先の非共有パスの遅延時間を予測する請求項12、16および18のいずれかに記載の集積回路のタイミング解析方法。
  20. 前記遅延時間予測ステップは、タイミング解析対象となる論理パスの始点および終点が異なる子ツリーに接続されている場合に、該始点および該終点を包含する親ツリーを検索した上で、該論理パスの始点が含まれる子ツリーの総遅延時間、該論理パスの終点が含まれる子ツリーの総遅延時間、および予め定義された非共有パスの比率と該親ツリーの総遅延時間とを乗じたものを求めて、それらのうちの最も大きいものを非共有パスの遅延時間とする請求項12、16および18のいずれかに記載の集積回路のタイミング解析方法。
  21. 前記クロックスキュー予測ステップは、予め定義されたチップ内遅延変動による遅延の変動率と、前記遅延時間予測ステップで予測された遅延時間とを乗じることによって、クロックスキューを予測する請求項12および16〜20のいずれかに記載の集積回路のタイミング解析方法。
  22. 前記クロックスキューの予測結果に基づいてタイミング解析を行うタイミング解析手段を更に有する請求項12または21に記載の集積回路のタイミング解析方法。
  23. 請求項12〜22のいずれかに記載の集積回路のタイミング解析方法の各ステップと、該タイミング解析方法によって前記クロックスキューの予測結果に基づいて回路のタイミング解析を行い、タイミング制約違反かどうかを検出するタイミング制約違反検出ステップと、該タイミング制約違反が検出された場合に、該タイミング制約違反の検出箇所の回路を、該タイミング制約違反がなくなるように修正する回路修正ステップとを有する集積回路のタイミング最適化方法。
  24. 回路の機能設計終了後、論理合成ステップで論理素子の接続情報であるネットリストを作成し、レイアウト設計ステップで論理素子の配置、バッファツリー型クロック分配回路であるクロックツリーの合成、さらに論理素子間の配線設計を行って、マスクデータ作成ステップで製造用マスクデータを作成し、これを用いて集積回路基板を製造する集積回路基板の製造方法において、
    該クロックツリーの合成ステップ以前の設計ステップで、請求項12〜22のいずれかに記載の集積回路のタイミング解析方法によって得られたクロックスキューの予測結果に基づいて回路のタイミング解析を行い、タイミング制約違反かどうかを検出し、該タイミング制約違反が検出された場合に、該タイミング制約違反の検出箇所の回路を、該タイミング制約違反がなくなるように修正する集積回路基板の製造方法。
  25. 請求項12〜22のいずれかに記載の集積回路のタイミング解析方法の各ステップをコンピュータに実行させるための制御プログラム。
  26. 請求項25に記載の制御プログラムが記録されたコンピュータ読み出し可能な可読記録媒体。
JP2005082284A 2005-03-22 2005-03-22 集積回路のタイミング解析装置、集積回路のタイミング最適化装置、集積回路のタイミング解析方法、集積回路のタイミング最適化方法、集積回路基板の製造方法、制御プログラムおよび可読記録媒体 Withdrawn JP2006268165A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005082284A JP2006268165A (ja) 2005-03-22 2005-03-22 集積回路のタイミング解析装置、集積回路のタイミング最適化装置、集積回路のタイミング解析方法、集積回路のタイミング最適化方法、集積回路基板の製造方法、制御プログラムおよび可読記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005082284A JP2006268165A (ja) 2005-03-22 2005-03-22 集積回路のタイミング解析装置、集積回路のタイミング最適化装置、集積回路のタイミング解析方法、集積回路のタイミング最適化方法、集積回路基板の製造方法、制御プログラムおよび可読記録媒体

Publications (1)

Publication Number Publication Date
JP2006268165A true JP2006268165A (ja) 2006-10-05

Family

ID=37204107

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005082284A Withdrawn JP2006268165A (ja) 2005-03-22 2005-03-22 集積回路のタイミング解析装置、集積回路のタイミング最適化装置、集積回路のタイミング解析方法、集積回路のタイミング最適化方法、集積回路基板の製造方法、制御プログラムおよび可読記録媒体

Country Status (1)

Country Link
JP (1) JP2006268165A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008204152A (ja) * 2007-02-20 2008-09-04 Fujitsu Ltd クロックゲーティング回路挿入方法、クロックゲーティング回路挿入プログラムおよび設計支援装置
JP2011086136A (ja) * 2009-10-16 2011-04-28 Hitachi Information & Communication Engineering Ltd Lsi設計方法及びプログラム
US9058070B2 (en) 2012-05-30 2015-06-16 Utah State University Predicting timing violations
CN117151015A (zh) * 2023-09-15 2023-12-01 上海合芯数字科技有限公司 集成电路布局布线方法、装置、集成电路芯片

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008204152A (ja) * 2007-02-20 2008-09-04 Fujitsu Ltd クロックゲーティング回路挿入方法、クロックゲーティング回路挿入プログラムおよび設計支援装置
JP2011086136A (ja) * 2009-10-16 2011-04-28 Hitachi Information & Communication Engineering Ltd Lsi設計方法及びプログラム
US9058070B2 (en) 2012-05-30 2015-06-16 Utah State University Predicting timing violations
CN117151015A (zh) * 2023-09-15 2023-12-01 上海合芯数字科技有限公司 集成电路布局布线方法、装置、集成电路芯片
CN117151015B (zh) * 2023-09-15 2024-03-15 上海合芯数字科技有限公司 集成电路布局布线方法、装置、集成电路芯片

Similar Documents

Publication Publication Date Title
JP4061295B2 (ja) デジタル回路の統計的タイミング解析のためのシステムおよび方法
US9589096B1 (en) Method and apparatus for integrating spice-based timing using sign-off path-based analysis
US7949987B1 (en) Method and system for implementing abstract layout structures with parameterized cells
US7159202B2 (en) Methods, apparatus and computer program products for generating selective netlists that include interconnection influences at pre-layout and post-layout design stages
JP2010079737A (ja) タイミング解析支援装置
US20220075920A1 (en) Automated Debug of Falsified Power-Aware Formal Properties using Static Checker Results
JP2006048525A (ja) シミュレーション方法
JP2006285333A (ja) 動作合成装置及び方法
JP2006268165A (ja) 集積回路のタイミング解析装置、集積回路のタイミング最適化装置、集積回路のタイミング解析方法、集積回路のタイミング最適化方法、集積回路基板の製造方法、制御プログラムおよび可読記録媒体
US10430535B2 (en) Verification support program medium, verification support method, and information processing device for verification of a circuit
TWI713680B (zh) 控制實體擺置之方法、系統及電腦實施方法以及製造積體電路之方法
US8510693B2 (en) Changing abstraction level of portion of circuit design during verification
JP2010033493A (ja) レイアウト配線混雑予測装置およびその方法、並びにプログラム
US8024684B2 (en) Apparatus, method, and computer product for estimating power consumption of LSI
JP5447547B2 (ja) マクロ遅延解析装置、マクロ境界パスの遅延解析方法、マクロ境界パスの遅延解析プログラム
US20160232275A1 (en) Method and apparatus for logical design connectivity-based automatic macro placement
TW201935289A (zh) 用於單元交換的方法
US20220327269A1 (en) Computing device and method for detecting clock domain crossing violation in design of memory device
JP2005293349A (ja) 回路設計支援システム、設計方法及びプログラム
Pawar Application of Machine Learning to Physical Design
JP4587754B2 (ja) クロック合成方法、半導体装置及びプログラム
CN117907812B (zh) 电路检测方法及装置、电子设备、存储介质、程序产品
JP4448048B2 (ja) 構造解析プログラム
JP2012053703A (ja) 最適化ネットリスト作成プログラム、最適化ネットリスト作成装置および最適化ネットリスト作成方法
JP2011163897A (ja) テストパタン生成装置、テストパタン生成方法、及びプログラム

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080603