JP2009037278A - 動作タイミング検証装置、方法、及び、プログラム - Google Patents

動作タイミング検証装置、方法、及び、プログラム Download PDF

Info

Publication number
JP2009037278A
JP2009037278A JP2007198571A JP2007198571A JP2009037278A JP 2009037278 A JP2009037278 A JP 2009037278A JP 2007198571 A JP2007198571 A JP 2007198571A JP 2007198571 A JP2007198571 A JP 2007198571A JP 2009037278 A JP2009037278 A JP 2009037278A
Authority
JP
Japan
Prior art keywords
delay time
clock
macro
delay
time
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
JP2007198571A
Other languages
English (en)
Inventor
Hiroshi Sugano
浩史 菅野
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2007198571A priority Critical patent/JP2009037278A/ja
Priority to US12/219,134 priority patent/US20090037860A1/en
Publication of JP2009037278A publication Critical patent/JP2009037278A/ja
Pending 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
    • G06F30/39Circuit design at the physical level
    • G06F30/396Clock trees

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)

Abstract

【課題】マクロ内部でのクロック遅延時間を考慮したクロックスキュー計算が可能な動作タイミング検証装置を提供する。
【解決手段】遅延時間算出手段21は、回路ネットリスト11を入力し、セルライブラリ12、マクロ遅延ライブラリ13を用いて、配線遅延情報、マクロとセルの遅延情報をSDF14として出力する。遅延解析手段22は、例えば始点ブロックがマクロで、終点ブロックがセルの信号パスの動作タイミング検証においては、ソースクロックからマクロのクロック端子までの配線遅延時間に、マクロクロック補正遅延ライブラリに記述されたマクロ内部のクロック遅延時間を加えた時間をマクロのクロック遅延時間とし、ソースクロックからセルのクロック端子までの配線遅延時間をセルのクロック遅延時間として、両者の差を、クロックスキューとして算出する。
【選択図】図1

Description

本発明は、動作タイミング検証装置、方法、及び、プログラムに関し、更に詳しくは、半導体集積回路の信号パスの動作タイミングを検証する動作タイミング検証装置、方法、及び、プログラムに関する。
半導体集積回路の設計では、タイミングシミュレーションにより、信号パスの動作検証を行う。半導体集積回路のタイミングシミュレーションを効率よく、かつ、精度よく行うことが望まれている。タイミングシミュレーションを効率よく、かつ、精度よく行うことを目的とした半導体集積回路のタイミングシミュレーション方法としては、特許文献1に記載されたものがある。
ところで、近年、半導体集積回路のレイアウトでは、マクロが使用されることがある。マクロは、セルの群で構成される。マクロを構成するセル群は、所定の機能を有する大規模な回路を構成する。マクロは、例えばCPUコア、RAMなどの回路そのものや、それを含む回路である。マクロが使用される背景には、半導体集積回路が大規模化していること、及び、半導体集積回路の設計の効率化が求められていることがある。半導体集積回路の設計では、必要とする機能を有するマクロをつなぎ合わせることにより、大規模な半導体集積回路が容易に設計できるようになる。
マクロが含まれる半導体集積回路の動作タイミングを、正確かつ簡便に検証する方法として、特許文献2に記載の方法がある。この方法では、ゲートレベルで静的な遅延解析を行う際に、RAMなどのマクロを、内部の遅延値をライブラリ化(マクロ遅延ライブラリ)して解析する。
特開平9−319776号公報 特開2001−273338号公報
一般に、同期化回路の物理設計、遅延設計では、設計手順の便宜上、クロック分配設計と信号パスの遅延設計とを別々に処理している。その場合、クロック分配設計では、クロック分配遅延差であるクロックスキューをできるだけ0に近づけるように設計し、信号パスの遅延設計では、クロック分配設計でクロックスキューが十分に小さくなることを念頭に、パス遅延が所望のクロックサイクル内となるように、パス遅延の改善を行う。
マクロが含まれる半導体集積回路の動作タイミング検証で使用されている関連技術のマクロ遅延ライブラリでは、マクロ内部のクロック分配遅延時間と、マクロ内部のFF(フリップフロップ)のセットアップ/ホールド時間とを足し合わせた値を、マクロ遅延ライブラリのセットアップ/ホールド時間と定義している。また、マクロ内部のクロック分配遅延時間とマクロ内部のFFの出力遅延時間とを、マクロ遅延ライブラリの遅延時間と定義している。ここで、マクロ内部のクロック分配遅延時間とは、マクロのクロック端子からマクロ内部のクロック分配経路を通ってマクロ内部の実際のFFのクロック端子に到達するまでの遅延時間のことである。
関連技術のマクロ遅延ライブラリでは、セットアップ/ホールド時間が、マクロ内部のクロック分配遅延時間とマクロ内部のFFのセットアップホールド時間とを足し合わせた値で定義されるため、マクロに絡んだパス、例えば始点がマクロで終点がFFのパスの動作タイミング検証において、マクロ遅延ライブラリからマクロ内部のクロック分配遅延時間のみを取り出すことはできない。このため、マクロ内部のクロック分配遅延時間は、信号パスの遅延時間として算出され、クロックスキューの算出には考慮されていなかった。従って、関連技術では、クロックスキュー情報に真のクロックスキュー、つまりソースクロックからの信号が、始点マクロ内部のクロック分配経路を通ってマクロ内部の実際のFFのクロック端子に到達するまでの遅延時間と、終点FFのクロック端子に到達するまでの遅延時間との差を出力することができない。この結果、クロックスキュー情報を参照しても、真のクロックスキューの値を得ることができず、パスの遅延改善を行う際に、クロックスキューの値が大きければクロックパスを改善し、クロックスキューの値が小さければ信号パスを改善する、といった判断ができず、迅速に適切な遅延改善を行うことが困難であった。
本発明は、マクロを含む半導体集積回路の動作検証にて、マクロ内部でのクロック遅延時間を考慮したクロックスキュー算出が可能な動作タイミング検証装置、方法、及び、プログラムを提供することを目的とする。
上記目的を達成するために、本発明の動作タイミング検証装置は、構成要素にマクロを含む半導体集積回路の回路構成情報に基づいて、前記半導体集積回路の各部分における遅延時間を計算する遅延時間算出手段と、始点ブロック及び終点ブロックの少なくとも一方がマクロである信号パスの動作タイミング検証にて、前記遅延時間算出手段が算出した、ソースクロックから始点ブロック及び終点ブロックのそれぞれまでのクロック配線の配線遅延時間と、前記マクロ内部のクロック遅延時間を記述したマクロクロック補正遅延ライブラリとを用い、前記始点ブロックと前記終点ブロックとの間のクロックスキューを求める遅延解析手段とを備えることを特徴とする。
本発明の動作タイミング検証方法は、コンピュータを用い、構成要素にマクロを含む半導体集積回路の動作タイミング検証を行う動作タイミング検証方法であって、前記コンピュータが、前記半導体集積回路の回路構成情報に基づいて、前記半導体集積回路の各部分における遅延時間を計算するステップと、前記コンピュータが、前記遅延時間を計算するステップで計算した、ソースクロックから始点ブロック及び終点ブロックのそれぞれまでのクロック配線の配線遅延時間と、前記マクロ内部のクロック遅延時間を記述したマクロクロック補正遅延ライブラリとを用い、前記始点ブロックと前記終点ブロックとの間のクロックスキューを求めるステップとを有することを特徴とする。
本発明のプログラムは、コンピュータに、構成要素にマクロを含む半導体集積回路の動作タイミング検証を行う処理を実行させるプログラムであって、前記コンピュータに、前記半導体集積回路の回路構成情報に基づいて、前記半導体集積回路の各部分における遅延時間を計算する処理と、前記遅延時間を計算する処理で計算した、ソースクロックから始点ブロック及び終点ブロックのそれぞれまでのクロック配線の配線遅延時間と、前記マクロ内部のクロック遅延時間を記述したマクロクロック補正遅延ライブラリとを用い、前記始点ブロックと前記終点ブロックとの間のクロックスキューを求める処理とを実行させることを特徴とする。
本発明の動作タイミング検証装置、方法、及び、プログラムでは、マクロを含む半導体集積回路の動作検証にて、マクロ内部でのクロック遅延時間を考慮したクロックスキューを算出することができる。
以下、図面を参照し、本発明の実施の形態を詳細に説明する。図1は、本発明の一実施形態の動作タイミング検証装置の構成を示している。動作タイミング検証装置は、プログラム制御により動作するデータ処理装置(コンピュータ)20と、ハードディスク等の記憶装置30とを備える。データ処理装置20は、バス41を介して、記憶装置30と接続する。また、データ処理装置20は、バス41を介して、データ入力を行う入力部42と、データ出力を行う出力部43とに接続する。
データ処理装置20は、遅延時間算出手段21と、クロック補正値考慮可能な遅延解析手段(以下、単に遅延解析手段と呼ぶ)22とを有する。記憶装置30は、回路ネットリスト記憶部31、セルライブラリ記憶部32、マクロ遅延ライブラリ記憶部33、SDF記憶部34、遅延制約情報記憶部35、マクロクロック補正遅延ライブラリ記憶部36を有する。SDF(Standard Delay Format)は、遅延計算によって算出されるネットワークごとの配線遅延情報やゲート遅延情報を格納するファイルのフォーマットであり、業界標準である。本実施形態では、ファイルフォーマットとして、SDFを用いる例で説明する。
遅延時間算出手段21は、回路ネットリスト(回路構成情報)11を入力し、セルライブラリ12とマクロ遅延ライブラリ13とを参照して、RCシミュレーションによる遅延計算を行い、SDF14を生成し、生成したSDF14をSDF記憶部34に記憶する。遅延解析手段22は、回路ネットリスト11を入力し、SDF記憶部34に記憶されたネットワークごとの配線遅延時間情報やゲート遅延時間情報と、マクロクロック補正遅延ライブラリ16と、遅延制約情報15とを参照して、信号パスの遅延時間の算出、クロックパスの遅延時間の算出、クロックスキューの算出、クロックパス遅延時間と信号パス遅延時間とが遅延制約を満たしているか否かのチェックを行い、クロックスキュー情報17−2を含むタイミング検証エラーレポート17を出力する。
遅延解析手段22におけるクロックパスの遅延時間の算出、及び、クロックスキューの算出では、マクロクロック補正遅延ライブラリ16に記憶されたマクロ内のクロックパスの遅延時間を、クロックパス遅延時間に加算して算出する。クロックスキュー情報17−2には、マクロクロック補正遅延ライブラリ16に記憶された遅延時間を、クロックパスの遅延時間に加算して算出された真のクロックスキュー、つまり、ソースクロックからの信号がマクロ内部の実際の始点又は終点FFのクロック端子に到達するまでの遅延時間の差が出力される。
図2に、検証対象の半導体集積回路の具体例を示す。この半導体集積回路50は、マクロ70、セル51a、52a、52b、配線53a〜53h、組合せ回路55aを含む。マクロ70は、2つのバッファと2つのFFとを有するマクロである。セル51aのセル種類は、フリップフロップ(FF)である。セル51aは、入力端子54a、出力端子54b、及び、クロック端子54cを有する。セル52a、52bのセル種類は、バッファ(BUF)である。マクロ70の出力端子DOUTから出力された信号は、配線53a、組合せ回路55a、配線53bを介して、セル51aの入力端子54aに入力される。セル52a、52bは、それぞれ入力端子54d、54fと出力端子54e、54gとを有する。半導体集積回路50は、これらの要素が、図2に示すように組み合わされた回路である。図2では、同時に、レイアウトされた状態を模式的に示している。
図3に、マクロ70の詳細を示す。マクロ70は、セル72a、72b、73a、73b、配線74a〜74i、及び、組合せ回路75aを含む。セル72a、72bのセル種類は、バッファ(BUF)である。セル72a、72bは、それぞれ入力端子76a、76cと出力端子76b、76dとを有する。セル73a、73bのセル種類は、フリップフロップ(FF)である。セル73a、73bは、それぞれ入力端子76e、76hと出力端子76f、76iとクロック端子76g、76jを有する。マクロ70は、これらの要素が、図3に示すように組み合わされた回路である。
図1のセルライブラリ12には、フリップフロップ(FF)のセル、及び、バッファ(BUF)のセルのそれぞれにおける入力端子から出力端子への遅延時間や、入力端子に入力されるデータ信号に対するクロック信号のセットアップ時間、ホールド時間などが記憶されている。セルライブラリの詳細については、特開2001−273338号公報でセルライブラリ、特開2006−39621号公報でタイミング制約ライブラリとして説明されている。
マクロ遅延ライブラリ13の構成を示す概念図を、図4に示す。このライブラリの構成は、セルライブラリ12のセル種類フリップフロップ(FF)に係る部分と同じである。マクロ遅延ライブラリ13は、遅延時間テーブル群131、出力波形なまりテーブル群132、セットアップ時間テーブル群133、ホールド時間テーブル群134、及び、マクロ情報テーブル群135を含んでいる。
遅延時間テーブル群131は、複数の「遅延時間テーブル」を含んでいる。各遅延時間テーブルは、マクロのクロック端子CLKINから出力端子DOUTまでの信号遅延時間のうち、マクロ内部のクロック分配遅延時間を差し引いた値が記述されている。つまり、マクロ70(図3)のクロック端子CLKINから出力端子DOUTまでの遅延時間から、配線74e、74f、74g、74i、セル72a、72bの遅延時間の和を差し引いた遅延時間が記述されている。
図5に、遅延時間テーブルの具体例を示す。この遅延時間テーブル131aは、複数の条件に対する遅延時間をテーブル形式で示している。複数の条件は、第1条件と第2条件との組合せで表される。ここでは、第1条件(第1テーブルインデックス)は、マクロのクロック端子CLKINに入力される信号の波形なまりの程度を示す「入力波形なまり」とする。また、第2条件(第2テーブルインデックス)は、出力端子DOUTにかかる負荷容量を示す「出力負荷容量」とする。マクロが複数の出力端子DOUTを有する場合は、1つのマクロについて、複数の出力端子に対応して複数の遅延時間テーブルが用意される。
図5では、複数の条件は、第1条件(0.05R〜1R)と、第2条件(0.05C〜1C)との組合せで与えられ、遅延時間テーブル131aは、その組合せのそれぞれに対する25種類の遅延時間を示している。遅延時間テーブル131aにおける遅延時間の単位は、[ps]とする。テーブルを引く際に、条件がインデックス間の値をとるときは、補間(例えば線形補間)により、補間値を求める。遅延時間テーブルは、最大値、標準値、最小値のそれぞれについて記述される。図5に示す遅延時間テーブル131aは、これらのうち、最大値が記述された遅延時間テーブルである。
比較例として、図6に、関連技術で用いる遅延時間テーブルの具体例を示す。関連技術で用いる遅延時間テーブル131bのテーブル構造は、図5に示す、本実施形態で用いる遅延時間テーブル131aのテーブル構造と同じである。関連技術における遅延時間テーブル131bは、マクロ70内部のクロック分配遅延時間も含んだクロック端子CLKINから出力端子DOUTまでの信号遅延時間が記述されている。ここで、マクロ70内部のクロック分配遅延時間、つまり、クロック信号がマクロ70のクロック端子CLKINからマクロ内部のFFセル73bのクロック端子76jに到達するまでの時間の最大値を80[ps]、最小値を60[ps]とする。図5に示す遅延時間テーブル131aの遅延時間と、図6に示す遅延時間テーブル131bの遅延時間とを比較すると、マクロ内部のクロック分配遅延時間(80[ps])分の差がついていることがわかる。
出力波形なまりテーブル群132は、複数の「出力波形なまりテーブル」を含んでいる。各出力波形なまりテーブルは、マクロの各入力端子DINと各出力端子DOUTとのそれぞれの組み合わせにおける出力波形なまりを示す。出力波形なまりは、対応する出力端子DOUTにおける信号の鈍りの程度を示す。本実施形態における出力波形なまりテーブルは、関連技術における出力波形なまりテーブルと同じ記述である。
図7に、出力波形なまりテーブルの具体例を示す。この出力波形なまりテーブル132aは、条件に対する出力波形なまりをテーブル形式で示している。ここでは、条件(テーブルインデックス)は、出力端子DOUTにかかる負荷容量を示す「出力負荷容量」としている。例えば、条件は、0.05C〜1Cで与えられ、出力波形なまりテーブル132aは、各条件に対応して、5種類の出力波形なまり(単位[ps])を示している。テーブルを引く際に、条件がインデックス間の値をとるときは、補間(例えば線形補間)により、補間値を求める。出力波形なまりテーブルは、最大値、標準値、最小値のそれぞれについて記述され。図7に示す出力波形なまりテーブル132aは、これらのうち、最大値が記述された出力波形なまりテーブルである。
セットアップ時間テーブル群133は、複数の「セットアップ時間テーブル」を含んでいる。各セットアップ時間テーブルは、マクロの入力端子DINに入力される入力信号の、クロック端子CLKINに入力されるクロック信号に対するセットアップ時間のうち、マクロ内部のクロック分配の遅延時間を差し引いた値を示す。つまり、マクロ70の入力端子DINのクロック端子CLKINに対するセットアップ時間から、配線74e、74f、74g、74h、セル72a、72bの遅延時間の和を差し引いた時間を示す。マクロを正常に動作させるためには、クロック信号CLKによってマクロ内部のFFセル73aがラッチを閉じる前に、入力信号をある一定時間以上前から入力開始しなければならない。「セットアップ時間」は、その入力する一定時間の最小値を示す。
図8に、セットアップ時間テーブルの具体例を示す。このセットアップ時間テーブル133aは、複数の条件に対するセットアップ時間をテーブル形式で示している。複数の条件は、第1条件と第2条件との組合せで構成される。ここでは、第1条件(第1テーブルインデックス)は、入力端子DINに入力される信号の波形なまりの程度を示す「入力波形なまり」とする。また、第2条件(第2テーブルインデックス)は、クロック端子CLKINに入力されるクロック信号の波形なまりの程度を示す「クロック波形なまり」とする。図8では、複数の条件は、第1条件(0.05R〜1R)と第2条件(0.05R〜1R)との組合せで与えられ、セットアップ時間テーブル133aは、その組合せに対する25種類のセットアップ時間(単位[ps])を示している。テーブルを引く際に、条件がインデックス間の値をとるときは、補間(例えば線形補間)により、補間値を求める。セットアップ時間テーブルは、最大値、標準値、最小値のそれぞれについて記述されている。図8に示すセットアップ時間テーブル133aは、それらのうち、最大値が記述されたセットアップ時間テーブルである。
比較例として、図9に、関連技術におけるセットアップ時間テーブルの具体例を示す。セットアップ時間テーブル133bのテーブル構成は、図8に示す、本実施形態で用いるセットアップ時間テーブル133aのテーブル構造と同じである。関連技術におけるセットアップ時間テーブル133bは、マクロ70(図3)内部のクロック分配の遅延時間を含んだ、入力端子DINに入力される入力信号の、クロック端子CLKINに入力されるクロック信号に対するセットアップ時間が記述されている。ここで、マクロ内部のクロック分配遅延時間、つまり、クロック信号がマクロ70のクロック端子CLKINからマクロ内部のFFセル73aのクロック端子76gに到達するまでの時間の最大値を80[ps]、最小値を60[ps]とする。図8に示すセットアップ時間テーブル133aのセットアップ時間と、図9に示すセットアップ時間テーブルのセットアップ時間とを比較すると、マクロ内部のクロック分配遅延時間(80[ps])分の差がついていることがわかる。
ホールド時間テーブル群134は、複数の「ホールド時間テーブル」を含んでいる。各ホールド時間テーブルは、マクロの入力端子DINに入力される入力信号の、クロック端子CLKINに入力されるクロック信号に対するホールド時間のうち、マクロ内部のクロック分配の遅延時間を含まない値を示す。つまり、マクロ70の入力端子DINのクロック端子CLKINに対するホールド時間から、配線74e、74f、74g、74h、セル72a、72bの遅延時間の和を差し引いたホールド時間を示す。マクロ70を正常に動作させるためには、クロック信号CLKによってマクロ70内部のFFセル73aのラッチを閉じた後、入力信号をある一定上保持しなければならない。ホールド時間は、その保持する一定時間の最小値を示す。
図10に、ホールド時間テーブルの具体例を示す。このホールド時間テーブル134aは、複数の条件に対するホールド時間をテーブル形式で示している。複数の条件は、第1条件と第2条件との組合せで構成される。ここでは、第1条件(第1テーブルインデックス)は、入力端子DINに入力される信号の波形なまりの程度を示す「入力波形なまり」とする。また、第2条件(第2テーブルインデックス)は、クロック端子に入力されるクロック信号の波形なまりの程度を示す「クロック波形なまり」とする。図10では、複数の条件は、第1条件(0.05R〜1R)と第2条件(0.05R〜1R)との組合せで与えられ、ホールド時間テーブル134aは、その組合せに対する25種類のホールド時間(単位[ps])を示している。テーブルを引く際に、条件がインデックス間の値をとるときは、補間(例えば線形補間)により、補間値を求める。ホールド時間テーブルは、最大値、標準値、最小値のそれぞれについて記述されている。図10に示すホールド時間テーブル134aは、それらのうち、最大値が記述されたホールド時間テーブルである。
比較例として、図11に、関連技術で用いるホールド時間テーブルを示す。ホールド時間テーブル134bのテーブル構成は、図10に示す、本実施形態で用いるホールド時間テーブル134aのテーブル構成と同じである。関連技術におけるホールド時間テーブル134bは、マクロ70(図3)内部のクロック分配の遅延時間を含んだ、入力端子DINに入力される入力信号の、クロック端子CLKINに入力されるクロック信号に対するホールド時間が記述されている。前述のように、マクロ内部のクロック分配遅延時間、つまり、クロック信号がマクロ70のクロック端子CLKINからマクロ内部のFFセル73aのクロック端子76gに到達するまでの時間の最大値を80[ps]、最小値を60[ps]とする。図10に示すホールド時間テーブル134aのホールド時間と、図11に示すホールド時間テーブルのホールド時間134bとを比較すると、マクロ内部のクロック分配遅延時間(80[ps])分の差がついていることがわかる。
マクロ情報テーブル群135は、複数のマクロ情報テーブルを含んでいる。各マクロ情報テーブルには、マクロの大きさ、入力端子DINの容量、入力端子DINのしきい値電圧が取り得る範囲、クロック端子CLKINの容量、クロック端子CLKINのしきい値電圧がとり得る範囲、出力端子DOUTの抵抗などが記述されている。本実施形態で用いるマクロ情報テーブルは、関連技術におけるマクロ情報テーブルと同じ記述内容である。
遅延制約情報15(図1)は、半導体集積回路を動作させるための制約情報となる基本クロック周期(或いは基本クロック周波数)、入力ピン外部の遅延時間、出力ピン外部の要求遅延時間、遅延制約例外パス(フォールス・パス,マルチサイクル・パス)などの情報である。基本クロック周期は、半導体集積回路の動作クロックの周期を表している。例えば、1クロックサイクル以内に動作完了する必要がある場合は、動作タイミング検証にて、動作時間が、基本クロック周期以内に収まっているか否かを判定する。
入力ピン外部の遅延時間は、半導体集積回路の外部入力ピンから、半導体集積回路内のブロックへのパスのタイミング検証の際に使用される遅延時間であり、半導体集積回路外部の信号出力点から外部入力ピンまでの遅延時間を示す。出力ピン外部の遅延時間は、半導体集積回路内のブロックから、半導体集積回路の外部出力ピンへのパスのタイミング検証に使用される遅延時間であり、外部出力ピンから半導体集積回路外部の信号入力点までの遅延時間を示す。
遅延制約例外パスのフォールス・パスは、半導体集積回路内でタイミング検証をする必要のないパスを指定するものであり、特定のパスを無視してタイミング検証を実施するときに使用する。遅延制約例外パスのマルチサイクル・パスは、半導体集積回路内でタイミング検証時に1クロックサイクル内に収める必要がなく、2クロックサイクルや3クロックサイクル内に収めれば良いパスを指定するものである。マルチサイクル・パスの検証では、例えば、動作時間が、基本クロック周期の2倍や3倍の周期以内に収まっているか否かを判定する。遅延制約情報15は、遅延制約情報記憶部35に、あらかじめ記憶されている。
マクロクロック補正遅延ライブラリ16には、マクロ70の内部のクロック分配の遅延時間が記述されている。図12に、マクロクロック補正遅延ライブラリの具体例を示す。マクロクロック補正遅延ライブラリ16は、ライン16−1とライン16−2とを含む。ライン16−1には、クロック端子CLKINからマクロ70内部の入力端子DIN側のFFセル73aのクロック端子76gまでのクロックパス遅延時間、つまり、配線74e、74f、74g、74h、セル72a、72bの遅延時間の和の最大値と最小値とが記述されている。ライン16−2には、クロック端子CLKINからマクロ70内部の出力端子DOUT側のFFセル73bのクロック端子76jまでのクロックパス遅延時間、つまり、配線74e、74f、74g、74i、セル72a、72bの遅延時間の和の最大値と最小値とが記述されている。
前記したとおり、クロック端子CLKINからマクロ70内部の入力端子DIN側のFFセル73aのクロック端子76gまでのクロックパス遅延時間の最大値及び最小値は、それぞれ80[ps]、60[ps]である。また、クロック端子CLKINからマクロ70内部の出力端子DOUT側のFFセル73bのクロック端子76jまでのクロックパス遅延時間の最大値及び最小値は、それぞれ80[ps]、60[ps]である。従って、ライン16−1及び16−2には、それぞれ、「80」、「60」が記述されている。
SDF14には、遅延時間算出手段21によって算出されたネットワークごとの配線遅延時間やゲート遅延時間が出力される。タイミング検証エラーレポート17には、クロックパス遅延時間と信号パス遅延時間が遅延制約を満たしているか否かのチェックの結果であるタイミング検証結果が記述される。このタイミング検証結果には、遅延解析手段22が算出したクロックスキュー情報を示すライン17−2が含まれる。
図13に、タイミング検証エラーレポートの内容を示す。タイミング検証エラーレポート17は、ライン17−1〜ライン17−11を含む。ライン17−1には、クロックサイクル時間Tが記述されている。このクロックサイクル時間は、遅延制約情報における基本クロック周期に相当する。ライン17−2には、クロックスキューTsが記述されている。ライン17−3には、セットアップタイミング検証の場合にはセットアップ時間Tsuが、ホールドタイミング検証の場合にはホールド時間Thlが記述されている。ライン17−4には、始点ブロック名と、始点ブロックの出力遅延時間とが記述されている。ライン17−5〜17−7には、経路となる配線名、セル名と、それぞれの遅延時間とが記述されている。ライン17−8には、終点ブロック名が記述されている。
ライン17−9には、信号パス要求遅延時間Trが記述されている。信号パス要求遅延時間Trは、クロックサイクル時間Tから、クロックスキューTsとセットアップ時間Tsuを差し引いた値である。ライン17−10には、信号パス遅延時間Tdが記述されている。信号パス遅延時間Tdは、始点の遅延時間T1と経路のそれぞれの遅延時間T2〜T4を足し合わせた値である。ライン17−11には、スラックが記述されている。スラックは信号パス要求遅延時間Trから、信号パス遅延時間Tdを差し引いた値である。スラックがプラスの値であればパスの動作タイミングに違反がないと判定される。一方、スラックがマイナスの値であればパスの動作タイミングに違反があると判定される。
図14は、動作タイミング検証装置の動作手順を示している。遅延時間算出手段21は、回路ネットリスト11、セルライブラリ12、マクロ遅延ライブラリ13を読み込み(ステップS1)、RCシミュレーションによる遅延計算を行い、配線遅延情報及びマクロとセルの遅延情報を、SDFとして出力する(ステップS2)。ステップS1、S2の詳細については、特開2001−273338号公報、特開2000−259686号公報、特開2000−305966号公報、特開2000−250950号公報などに記載されている。
ステップS2における遅延計算では、例えば、出力波形なまりテーブル132a(図7)を参照してマクロ70の出力負荷容量からマクロ70の出力波形なまりを求め、これを組合せ回路55aの入力波形なまりとして用い、組合せ回路55aの遅延時間を算出する。ステップS2における遅延計算は、基本的には、関連技術における通常の遅延計算と同様である。ただし、本実施形態では、マクロ遅延ライブラリ13の遅延時間テーブル131a(図5)は、マクロのクロック端子から出力端子までの信号の遅延時間のうち、クロック分配の遅延時間を差し引いた値を保持しているため、ステップS2で計算されるマクロの遅延時間は、マクロ内のクロック分配の遅延時間を含まない遅延時間である。
遅延解析手段22は、回路ネットリスト11、SDF14、遅延制約情報15、マクロクロック補正遅延ライブラリ16を読み込む(ステップS3)。遅延解析手段22は、SDFから、始点ブロックの遅延時間と、各経路の配線、セル、組合せ回路の遅延時間とを取得し、信号パス遅延時間を求める(ステップS4)。ステップS4では、例えば、ステップS2で生成されたSDF14を参照し、図2に示す半導体集積回路50について、始点ブロックであるマクロ70の遅延時間、配線53a、53bの遅延時間、組合せ回路55aの遅延時間を取得する。その後、取得した始点ブロックの遅延時間、各経路の配線、セル、組合せ回路の遅延時間から、信号パス遅延時間Tdを算出する。図2に示す半導体集積回路50では、信号パス遅延時間Tdは、マクロ70の遅延時間、配線53a、53b、組合せ回路55aの遅延時間を足し合わせた値となる。
遅延解析手段22は、検証対象の半導体集積回路について、クロックスキューを算出する(ステップS5)。クロックスキューの算出は、具体的には、以下のように行う。図2に示す半導体集積回路50の場合、まず、クロック信号CLKがマクロ70のクロック端子CLKINに到達するまでのクロック遅延時間Tc1を算出する。このクロック遅延時間Tc1は、配線53c、53dの遅延時間の和である。各配線の遅延時間は、SDF14を参照することで取得できる。次いで、クロック信号CLKがセル51aのクロック端子54cに到達するまでのクロック遅延時間Tc2を算出する。クロック遅延時間Tc2は、セル52a、52bの遅延時間、配線53c、53e、53f、53g、53hの配線遅延時間の和である。各セル及び各配線の遅延時間は、SDF14を参照することで取得できる。
遅延解析手段22は、上記算出したクロック遅延時間Tc1、Tc2と、マクロクロック補正遅延ライブラリ16とを用いて、クロックスキューTsを算出する。マクロクロック補正遅延ライブラリ16(図12)には、マクロ70内の各部に対するクロック分配経路の遅延時間が保持されている。遅延解析手段22は、マクロクロック補正遅延ライブラリ16から、マクロ70のクロック端子CLKINからFFセル73bのクロック端子76jまでのマクロ内クロック遅延時間を取得する。遅延解析手段22は、マクロ70までのクロック遅延時間Tcと、マクロクロック補正遅延ライブラリ16から取得したマクロ内のクロック分配経路の遅延時間との和から、セル51aまでの遅延時間Tc2を差し引いた値を、クロックスキューTsとする。このクロックスキューTsは、実際のクロックスキュー、つまり、マクロ70内部のクロック分配遅延を考慮した、ソースクロックからの信号がマクロ内部の実際の始点又は終点FFのクロック端子に到達するまでの遅延時間の差である。
遅延解析手段22は、ステップS4で算出した信号パス遅延時間Tdと、ステップS5で算出したクロックスキューTsとを用いて、動作タイミングを検証する(ステップS6)。セットアップ検証では、遅延制約であるクロック信号CLKのクロックサイクル時間から、クロックスキューTsとセル51aのセットアップ時間との和を差し引いた値、つまり、信号パス要求遅延時間Trと、信号パス遅延時間Tdとを比較することで、回路の動作タイミングを検証する。クロック信号CLKのクロックサイクル時間は、遅延制約情報15から取得する。セル51aのセットアップ時間は、セルライブラリ12のセットアップ時間テーブルから取得する。タイミング検証では、信号パス要求遅延時間Trから、信号パス遅延時間Tdを差し引いた値であるスラックが、プラスの値であれば動作タイミングに違反がないと判定される。また、マイナスの値であれば動作タイミングに違反があり、遅延改善が必要であると判定される。
遅延解析手段22は、タイミング検証の結果から、タイミング検証エラーレポート17を生成する。具体的に、タイミング検証エラーレポート17(図13)におけるライン17−4〜17−7には、ステップS4にて、SDF14を参照して取得されたマクロ70の遅延時間、配線53a、53bの遅延時間、組合せ回路55aの遅延時間が記述される。また、ライン17−10には、ステップS4で算出された信号パス遅延時間Tdが記述される。ライン17−2には、ステップS5で算出されたクロックスキューTsが記述される。ライン17−9には、信号パス要求時間Trが記述される。ライン17−11には、スラック(信号パス要求時間−信号パス遅延時間)が記述される。遅延解析手段22は、生成したタイミング検証エラーレポート17を、出力部43から出力する。
以下、半導体集積回路50の動作タイミング検証について、具体的数値例を用いて説明する。遅延時間算出手段21は、ステップS2で、各配線の配線遅延時間及びマクロとセルの遅延時間を計算する。遅延時間算出手段21は、マクロ70の遅延時間計算では、遅延時間テーブル131a(図5)を参照し、マクロ70に入力する信号の入力波形なまりと、マクロ70の出力負荷容量とから、遅延時間を求める。入力波形なまり「0.2R」で、出力負荷容量「0.2C」のときは、遅延時間テーブル131aから、遅延時間は、「167[ps]」と求まる。遅延時間算出手段21は、計算した各部の遅延時間を、SDF14に記述し、SDF14をSDF記憶部34に記憶する。
遅延解析手段22は、ステップS4で、SDF14から、マクロ70の遅延時間、配線53a、53bの遅延時間、セル51a、組合せ回路55aの遅延時間を取得する。配線53aの遅延時間は10[ps]、組合せ回路55aの遅延時間は780[ps]、配線53bの遅延時間は10[ps]であったとする。この場合、遅延解析手段22は、マクロ70の遅延時間167[ps]に、これらの遅延時間を足した967[ps]を、信号パス遅延時間Tdとして算出する。
続いて、遅延解析手段22は、クロックスキューTsを算出する。クロックスキューTsの計算では、まず、マクロ70のクロック遅延時間Tc1と、セル51aのクロック遅延時間Tc2とを求める。遅延解析手段22は、SDF14を参照して、配線53c、53dの遅延時間を取得し、これらの和を、クロックソースからマクロ70のクロック端子CLKINまでのクロック遅延時間Tc1とする。また、SDF14を参照して、セル52a、52bの遅延時間、配線53c、53e、53f、53g、53hの遅延時間を取得し、これらの和を、クロックソースからセル51aのクロック端子54cまでのクロック遅延時間Tc2とする。ここでは、クロック遅延時間Tc1は10[ps]であり、クロック遅延時間Tc2は、90[ps]であるとする。
次いで、遅延解析手段22は、マクロクロック補正遅延ライブラリ16を参照し、マクロ70内部のクロック遅延時間を求める。より詳細には、マクロクロック補正遅延ライブラリ16を参照して、マクロ70のクロック端子CLKINから出力端子DOUT側のFFセル73b(図3)のクロック端子76jまでのクロック遅延時間を求める。図12に示すマクロクロック補正遅延ライブラリ16では、ライン16−2に、FFセル73bのクロック遅延時間が記述されており、遅延解析手段22は、ライン16−2から、FFセル73bのクロック遅延時間80[ps]を取得する。
遅延解析手段22は、マクロ70のクロック遅延時間Tc2と、マクロ70内のクロック遅延時間との和を、クロックソースから、マクロ70における出力端子側のFFセル73bのクロック端子76jまで間のクロック遅延時間とする。クロック遅延時間Tc1は10[ps]で、マクロ70内部のクロック遅延時間は80[ps]であるので、クロックソースからクロック端子76jまでの間のクロック遅延時間は90[ps]となる。遅延解析手段22は、マクロ70内のクロック端子76jまでのクロック遅延時間から、セル51aのクロック遅延時間Tc2を引いた値を、クロックスキューTsとする。マクロ70内のクロック端子76jまでのクロック遅延時間が90[ps]で、セル51aのクロック遅延時間Tc2が90[ps]なので、クロックスキューTsは0[ps]となる。
遅延解析手段22は、ステップS6で、信号パス遅延時間Tdと、クロックスキューTsとを用いて、動作タイミングを検証する。セットアップ検証では、まず、信号パス要求遅延時間Trを求める。信号パス遅延時間Trは、クロックサイクル時間Tから、クロックスキューTsとセットアップ時間Tsuとの和を差し引いた値で定義される。クロックサイクル時間Tを1000[ps]とし、セットアップ時間Tsuを40[ps]とすれば、クロックスキューTsは0[ps]なので、信号パス要求遅延時間Trは960[ps]と求まる。次いで、信号パス要求遅延時間Trから信号パス遅延時間Tdを引いたスラックを求める。信号パス遅延時間Tdは967[ps]であるので、スラックは、−7[ps]となる。
遅延解析手段22は、動作タイミング検証を終えると、ステップS7で、タイミング検証エラーレポートを生成する。図15に、タイミング検証エラーレポートの具体例を示す。タイミング検証エラーレポート17aでは、ライン17a−4〜17a−8に、始点ブロックであるマクロ70から終点ブロックであるセル51aまでの信号経路が記述されている。また、ライン17a−4にはマクロ70の遅延時間(167[ps])が記述され、ライン17a−5には配線53aの遅延時間(10[ps])が記述され、ライン17a−6には組合せ回路55aの遅延時間(780[ps])が記述され、ライン17a−7には配線53bの遅延時間(10[ps])が記述されている。ライン17a−10は、信号パス遅延時間Tdが記述され、その値は、ライン17a−4〜17a−7に記述された遅延時間の和(167+10+780+10=967[ps])である。
タイミング検証エラーレポート17aのライン17a−1は、クロックサイクル時間Tであり、その値は1000[ps]である。ライン17a−2は、ステップS5で算出されたクロックスキューであり、0[ps]である。ライン17a−3は、セットアップ時間であり、40[ps]である。ライン17a−9は、信号パス要求遅延時間Trであり、その値は、ライン17a−1のクロックサイクル時間Tから、ライン17a−2のクロックスキューTsとライン17a−3のセットアップ時間Tsuとの和を引いた値(1000−0−40=960[ps])である。
ライン17a−11は、ライン17a−9の信号パス要求遅延時間Trから、ライン17a−10の信号パス遅延時間Tdを引いたスラックであり、その値は、960−967=−7[ps]である。このスラック値がプラスの値であれば、動作タイミング違反はないと判定され、スラック値がマイナスの値であれば、動作タイミング違反が発生しており、遅延改善が必要であると判定されることになる。この例では、スラック値はマイナスの値であり、遅延改善が必要である。
ここで、比較例として、関連技術を適用して半導体集積回路50の動作タイミング検証を行った。図16に、関連技術における動作タイミング検証の結果であるタイミング検証エラーレポートを示す。タイミング検証エラーレポート17bにおけるライン17b−1のクロックサイクル時間Tと、ライン17b−3のセットアップ時間Tsuは、図15に示す本実施形態におけるタイミング検証エラーレポート17aの値と同じである。また、ライン17b−5〜17b−7の遅延時間も、図15に示す本実施形態におけるタイミング検証エラーレポート17aの値と同じである。
関連技術においては、マクロ70の遅延時間計算に際して、マクロ70内部のクロック遅延時間(80[ps])を含んだ遅延時間を保持する遅延時間テーブル131b(図6)を参照する。入力波形なまり「0.2R」、出力負荷容量「0.2C」にて遅延時間テーブル131bを参照すると、マクロ70の遅延時間は、247[ps]となる。従って、ライン17b−4のマクロ70の遅延時間(247[ps])は、タイミング検証エラーレポート17aにおけるマクロ70の遅延時間(167[ps])よりも、マクロ内部での遅延時間分である80[ps]長い。ライン17b−10は、ライン17b−4〜17b−7の遅延時間の和で与えられるため、本実施形態における動作タイミングレポート17aの値(967[ps])よりも80[ps]長い1047[ps]となる。
関連技術では、マクロ70内部のクロック分配遅延時間は、遅延時間テーブル131bの値に含まれ、マクロ70の遅延時間として与えられており、クロックスキューの計算には考慮されない。すなわち、クロックスキューTsは、マクロ70のクロック遅延時間Tc1と、セル51aのクロック遅延時間Tc2との差で与えられる。マクロ70のクロック遅延時間Tc1は10[ps]で、セル51aのクロック遅延時間Tc2は90[ps]なので、関連技術におけるタイミング検証エラーレポートのライン17b−2のクロックスキューTsは、10−90=−80[ps]となる。
ライン17b−9の信号パス要求遅延時間Trは、ライン17b−1のクロックサイクル時間Tから、ライン17b−2のクロックスキューTsとライン17b−3のセットアップ時間Tsuとの和を引いた値であり、1000−(−80+40)=1040[ps]となる。ライン17b−11のスラックは、ライン17b−9の信号パス要求遅延時間Trから、ライン17b−10の信号パス遅延時間Tdを引いた値であり、1040−1047=−7[ps]となる。
図15のタイミング検証エラーレポートと、図16のタイミング検証エラーレポートとを比較すると、動作タイミング違反が発生しているか否かを判断する際に参照されるスラックの値は同じ値(−7[ps])となっている。従って、本実施形態におけるタイミング検証エラーレポート17aでも、関連技術におけるタイミング検証エラーレポート17bでも、遅延改善が必要と判定されることになる。遅延改善の方法としては、信号経路の遅延時間を改善する方法と、クロックスキューを改善する方法との2つがある。本実施形態におけるタイミング検証エラーレポート17aを参照すると、クロックスキューTsは0[ps]であるので、信号経路の遅延時間改善を図ればよいことになる。
一方、関連技術におけるタイミング検証エラーレポート17bを参照すると、クロックスキューTsが−80[ps]であるので、クロックスキュー改善が必要と判断されることになる。しかしながら、実際には、マクロ70内部でのクロック遅延時間をも考慮すると、クロックスキューは良好である。このように、関連技術におけるタイミング検証エラーレポート17bでは、実際にはクロック分配は良い状態であっても、クロック分配に改善が必要であるかのように見え、迅速に適切な遅延改善を行うことが困難である。
続いて、図17に、検証対象の半導体集積回路の別の例を示す。この半導体集積回路60は、マクロ70、セル61a、配線63a〜63f、組合せ回路65aを含む。マクロ70の構成は、図3に示す構成である。セル61aのセル種類は、フリップフロップ(FF)である。セル61aは、入力端子64a、出力端子64b、及び、クロック端子64cを有する。マクロ70の出力端子DOUTから出力された信号は、配線63a、組合せ回路65a、配線63bを介して、セル61aの入力端子64aに入力される。以下、半導体集積回路60の動作タイミング検証について、具体的数値例を用いて説明する。
遅延時間算出手段21は、ステップS2で、半導体集積回路60についての回路ネットリスト11と、セルライブラリ12と、マクロ遅延ライブラリ13とを用いて遅延時間計算を行い、SDF14を、SDF記憶部34に記憶する。マクロ70については、遅延時間テーブル131aを参照し、マクロ70の入力波形なまり「0.2R」と、出力負荷容量「0.2C」とから、マクロ70の遅延時間は167[ps]と求まる。この遅延時間は、マクロ70内部のクロック遅延時間を含まない値である。マクロ70の遅延時間「167[ps]」を含め、各部の遅延時間は、SDF14に記述される。
遅延解析手段22は、SDF14を参照して、始点ブロックであるマクロ70の遅延時間、配線63a、63bの遅延時間、組合せ回路65aの遅延時間を取得し、マクロ70からセル61aまでの信号遅延時間Tdを計算する。配線63aの遅延時間は10[ps]、組合せ回路65aの遅延時間は710[ps]、配線63bの遅延時間は10[ps]とすれば、信号遅延時間Tdは、これらとマクロ70の遅延時間との和であり、897[ps]と求まる。
遅延解析手段22は、ステップS5で、クロックスキューTsを算出する。クロック信号がマクロ70のクロック端子CLKINに到達するまでのクロック遅延時間Tc1は、配線63c、63dの配線遅延時間の和である。配線63c、63dの配線遅延時間は、SDF14を参照することで取得できる。ここでは、配線63c、63dの配線遅延時間の和、すなわち、クロック遅延時間Tc1は、10[ps]であるとする。また、クロック信号がセル61aのクロック端子64cに到達するまでのクロック遅延時間Tc2は、配線63c、63e、63fの配線遅延時間の和である。配線63c、63e、63fの配線遅延時間も、SDF14から取得できる。ここでは、配線63c、63e、63fの配線遅延時間の和、すなわち、クロック遅延時間Tc2は、10[ps]であるとする。
遅延解析手段22は、マクロクロック補正遅延ライブラリ16(図12)を参照して、マクロ70のクロック端子CLKINから出力端子DOUT側のFFセル73bのクロック端子76jまでのクロック遅延時間を求める。図12に示すマクロクロック補正遅延ライブラリ16では、FFセル73bのクロック端子76jまでのクロック遅延時間はライン16−2に記述されており、80[ps]と求まる。マクロ70までのクロック遅延時間Tc1が10[ps]、マクロ70内部でのクロック遅延時間が80[ps]で、セル61aのクロック遅延時間が10[ps]であるので、クロックスキューTsは、(10+80)−10=80[ps]となる。このクロックスキューは、実際のクロックスキュー、つまり、マクロ70内部のクロック分配遅延を考慮したクロック遅延時間を用いて算出されたクロックスキューである。
遅延解析手段22は、ステップS6で、信号パス遅延時間Td、クロックスキューTsを用いて動作タイミング検証を行う。セットアップ検証では、まず、クロック信号CLKのクロックサイクル時間から、クロックスキューTsとセル61aのセットアップ時間との和を差し引いた値である信号パス要求遅延時間Trを求める。クロックサイクル時間が1000[ps]、クロックスキューTsが80[ps]、セル61aのセットアップ時間が40[ps]であるとすれば、信号パス要求時間Trは、1000−(80+40)=880[ps]となる。次いで、信号パス要求遅延時間Trから信号パス遅延時間Tdを引いたスラックを求める。信号パス遅延時間Tdは、897[ps]であるので、スラックは、880−897=−17[ps]となる。
遅延解析手段22は、ステップS7で、タイミング検証エラーレポートを出力する。図18に、タイミング検証エラーレポートを示す。ライン17c−1には、クロックサイクル時間(1000[ps])が記述され、ライン17c−2には、ステップS5で算出されたクロックスキューTs(80[ps])が記述される。また、ライン17c−3には、セル61aのセットアップ時間(40[ps])が記述される。ライン17c−4〜17c−8には、始点ブロックであるマクロ70から終点ブロックであるセル61aまでの信号経路が記述される。
ライン17c−4にはマクロ70の遅延時間(167[ps])が記述され、ライン17c−5には配線63cの遅延時間(10[ps])が記述され、ライン17c−6には組合せ回路65aの遅延時間(710[ps])が記述され、ライン17c−7には配線63bの遅延時間(10[ps])が記述される。ライン17c−10は、ステップS4で算出された信号パス遅延時間Td(897[ps])が記述される。ライン17c−9には、ライン17c−1のクロックサイクル時間Tから、ライン17c−2のクロックスキューTsとライン17c−3のセットアップ時間Tsuとの和を引いた信号パス要求遅延時間Tr(880[ps])が記述される。また、ライン17c−11には、ライン17c−9の信号パス要求遅延時間Trから信号パス遅延時間Tdを引いたスラック(−17[ps])が記述される。
ここで、比較例として、関連技術を適用して半導体集積回路60の動作タイミング検証を行った。図19に、関連技術における動作タイミング検証の結果であるタイミング検証エラーレポートを示す。タイミング検証エラーレポート17dにおけるライン17d−1のクロックサイクル時間Tと、ライン17d−3のセットアップ時間Tsuは、図18に示す本実施形態におけるタイミング検証エラーレポート17cの値と同じである。また、ライン17d−5〜17d−7の遅延時間も、タイミング検証エラーレポート17cの値と同じである。
関連技術においては、マクロ70の遅延時間計算に際して、マクロ70内部のクロック遅延時間(80[ps])を含んだ遅延時間を保持する遅延時間テーブル131b(図6)を参照する。入力波形なまり「0.2R」、出力負荷容量「0.2C」にて遅延時間テーブル131bを参照すると、マクロ70の遅延時間は、247[ps]となる。従って、ライン17d−4には、タイミング検証エラーレポート17cにおけるマクロ70の遅延時間(167[ps])よりも、マクロ内部での遅延時間分である80[ps]長い遅延時間(247[ps])が、マクロ70の遅延時間として記述される。ライン17d−10は、ライン17d−4〜17d−7の遅延時間の和で与えられるため、本実施形態における動作タイミングレポート17cの値(897[ps])よりも80[ps]長い977[ps]となる。
関連技術では、マクロ70内部のクロック分配遅延時間は、遅延時間テーブル131bの値に含まれ、マクロ70の遅延時間として与えられており、クロックスキューの計算には考慮されない。すなわち、クロックスキューTsは、マクロ70のクロック遅延時間Tc1と、セル61aのクロック遅延時間Tc2との差で与えられる。マクロ70のクロック遅延時間Tc1は10[ps]で、セル61aのクロック遅延時間Tc2は10[ps]なので、関連技術におけるタイミング検証エラーレポートのライン17d−2のクロックスキューTsは、0[ps]となる。
ライン17d−9の信号パス要求遅延時間Trは、ライン17d−1のクロックサイクル時間Tから、ライン17d−2のクロックスキューTsとライン17d−3のセットアップ時間Tsuとの和を引いた値であり、1000−(0+40)=960[ps]となる。ライン17d−11のスラックは、ライン17d−9の信号パス要求遅延時間Trから、ライン17b−10の信号パス遅延時間Tdを引いた値であり、960−977=−17[ps]となる。
図18のタイミング検証エラーレポート17cと、図19のタイミング検証エラーレポート17dとを比較すると、動作タイミング違反が発生しているか否かを判断する際に参照されるスラックの値は同じ値(−17[ps])となっている。従って、本実施形態におけるタイミング検証エラーレポート17cでも、関連技術におけるタイミング検証エラーレポート17dでも、遅延改善が必要と判定されることになる。本実施形態におけるタイミング検証エラーレポート17cを参照すると、クロックスキューTsは80[ps]であるので、クロックスキューを改善すればよいことがわかる。
一方、関連技術におけるタイミング検証エラーレポート17dを参照すると、クロックスキューTsが0[ps]であるので、信号経路の遅延時間改善が必要と判断されることになる。しかしながら、実際には、マクロ70内部でのクロック遅延時間をも考慮すると、クロックスキューは80[ps]であり、良好ではない。このように、関連技術におけるタイミング検証エラーレポート17dでは、実際にはクロック分配は悪い状態であっても、クロック分配に改善が必要でないかのように見え、迅速に適切な遅延改善を行うことが困難である。
本実施形態では、始点ブロック及び終点ブロックの少なくとも一方がマクロである信号パスの動作タイミング検証にて、遅延時間算出手段21が算出した遅延時間と、マクロ内部でのクロック遅延時間を記述したマクロクロック補正遅延ライブラリとを用いて、クロックスキューを算出する。より詳細には、遅延時間算出手段21にて算出された、ソースクロックからマクロのクロック端子までのクロック遅延時間に、マクロクロック補正遅延ライブラリに記述された、マクロ内部でのクロック遅延時間を足し合わせた値を用いてクロックスキューを計算する。このようにすることで、マクロ70内部のクロック分配遅延を考慮した真のクロックスキューが得られる。
動作タイミング検証にて、動作タイミング違反が発生した際に、クロックスキューが大きいときは、クロックスキュー改善が必要であり、クロックスキューが小さければ、信号パスの遅延時間改善が必要である。本発明では、マクロ内部のクロック分配遅延時間を考慮したクロックスキューが得られるため、動作タイミング違反が発生した際に、クロック分配改善が必要か、或いは、信号遅延時間改善が必要かを、正しく判断できる。一般に、クロック分配を修正すると、その前後に存在する全てのパスの遅延結果に影響が出るため、クロック分配は極力避けたい。その意味でも、クロック分配が良好であるか否かを、タイミング検証エラーレポートのクロックスキュー情報を参照することで簡単に判断できることは、半導体集積回路を設計する上で、大きなメリットである。
なお、上記では、始点ブロックがマクロで、終点ブロックがFFの信号パスのセットアップ検証を具体例に挙げて説明したが、これには限定されない。始点ブロックがFF等のセルで終点ブロックがマクロの信号パス、或いは、始点ブロックがマクロで終点ブロックがマクロの信号パスについても、上記と同様な手法により、マクロ内部のクロック分配遅延を考慮したクロックスキューを算出し、そのクロックスキューを用いた動作タイミング検証が可能である。マクロが終点ブロックとなる信号パスのセットアップ検証/ホールド検証では、セットアップ時間テーブル133a(図8)/ホールド時間テーブル134a(図10)より、マクロのセットアップ時間/ホールド時間を取得すればよい。
上記実施形態では、マクロ内部でのクロック分配遅延時間を除外した遅延時間テーブル131a(図5)を用意し、遅延時間計算では、その遅延時間テーブル131aを参照して、クロック分配遅延時間を含まないマクロの信号遅延時間を算出したが、マクロの遅延時間計算は、これには限定されない。例えば、関連技術で用いられる、クロック分配遅延時間を含む遅延時間テーブル131aを参照してマクロの遅延時間を算出し、その後、マクロクロック補正遅延ライブラリを参照して、算出した遅延時間から、マクロ内部でのクロック分配遅延時間を差し引いて、クロック分配遅延時間を含まないマクロの信号遅延時間を算出してもよい。このようにする場合は、クロック分配遅延時間を除外した遅延時間テーブル131aを用意する必要がない。
以上、本発明をその好適な実施形態に基づいて説明したが、本発明の動作タイミング検証装置、方法、及び、プログラムは、上記実施形態にのみ限定されるものではなく、上記実施形態の構成から種々の修正及び変更を施したものも、本発明の範囲に含まれる。
本発明の一実施形態の動作タイミング検証装置の構成を示すブロック図。 検証対象の半導体集積回路の構成を示すブロック図。 マクロの内部構成を示すブロック図。 マクロ遅延ライブラリの構成を示すブロック図。 本発明の一実施形態における遅延時間テーブルの具体例を示す図。 関連技術における遅延時間テーブルの具体例を示す図。 出力波形なまりテーブルの具体例を示す図。 本発明の一実施形態におけるセットアップ時間テーブルの具体例を示す図。 関連技術におけるセットアップ時間テーブルの具体例を示す図。 本発明の一実施形態におけるホールド時間テーブルの具体例を示す図。 関連技術におけるホールド時間テーブルの具体例を示す図。 マクロクロック補正遅延ライブラリの具体例を示す図。 タイミング検証エラーレポートを示す図。 動作タイミング検証装置の動作手順を示すフローチャート。 本発明の一実施形態におけるタイミング検証エラーレポートの第1の具体例を示す図。 関連技術におけるタイミング検証エラーレポートの第1の具体例を示す図。 検証対象の別の半導体集積回路の構成を示すブロック図。 本発明の一実施形態におけるタイミング検証エラーレポートの第2の具体例を示す図。 関連技術におけるタイミング検証エラーレポートの第2の具体例を示す図。
符号の説明
11:回路ネットリスト
12:セルライブラリ
13:マクロ遅延ライブラリ
14:SDF
15:遅延制約情報
16:マクロクロック補正遅延ライブラリ
17:タイミング検証エラーレポート
17−2:クロックスキュー情報
20:データ処理装置
21:遅延時間算出手段
22:クロック補正値考慮可能な遅延解析手段
30:記憶装置
31:回路ネットリスト記憶部
32:セルライブラリ記憶部
33:マクロ遅延ライブラリ記憶部
34:SDF記憶部
35:遅延制約情報記憶部
36:マクロクロック補正遅延ライブラリ記憶部
41:バス
42:入力部
43:出力部
51a:セル(FF)
52a、52b:セル(BUF)
55a:組合せ回路
70:マクロ
131:遅延時間テーブル群
132:出力波形なまりテーブル群
133:セットアップ時間テーブル群
134:ホールド時間テーブル群
135:マクロ情報テーブル群

Claims (15)

  1. 構成要素にマクロを含む半導体集積回路の回路構成情報に基づいて、前記半導体集積回路の各部分における遅延時間を計算する遅延時間算出手段と、
    始点ブロック及び終点ブロックの少なくとも一方がマクロである信号パスの動作タイミング検証にて、前記遅延時間算出手段が算出した、ソースクロックから始点ブロック及び終点ブロックのそれぞれまでのクロック配線の配線遅延時間と、前記マクロ内部のクロック遅延時間を記述したマクロクロック補正遅延ライブラリとを用い、前記始点ブロックと前記終点ブロックとの間のクロックスキューを求める遅延解析手段とを備えることを特徴とする動作タイミング検証装置。
  2. 前記遅延解析手段は、前記遅延時間算出手段にて算出された、ソースクロックから前記マクロのクロック端子までの間のクロック配線の配線遅延時間に、前記マクロ内部のクロック遅延時間を加えた遅延時間を、該マクロのクロック遅延時間として、前記クロックスキューを算出する、請求項1に記載の動作タイミング検証装置。
  3. 前記遅延時間算出手段は、前記回路構成情報を入力し、セル内部の信号パスの遅延時間を求めるためのセル遅延時間テーブルを有するセルライブラリと、マクロ内部の信号パスの遅延時間を求めるためのマクロ遅延時間テーブルを有するマクロ遅延ライブラリとを参照して、RCシミュレーションによる遅延時間計算を行う、請求項1又は2に記載の動作タイミング検証装置。
  4. 前記マクロ遅延時間テーブルは、前記マクロ内部のクロック遅延時間を含まない遅延時間を保持する、請求項3に記載の動作タイミング検証装置。
  5. 前記遅延解析手段は、前記回路構成情報と、前記遅延時間算出手段が算出した各部分における遅延時間と、前記マクロクロック補正遅延ライブラリと、遅延制約情報とを参照して、信号パスの遅延時間、クロックパスの遅延時間、及び、前記クロックスキューを算出し、信号パス遅延時間が前記遅延制約情報で定義される遅延制約を満たしているか否かを示す情報を出力する、請求項1〜4の何れか一に記載の動作タイミング検証装置。
  6. コンピュータを用い、構成要素にマクロを含む半導体集積回路の動作タイミング検証を行う動作タイミング検証方法であって、
    前記コンピュータが、前記半導体集積回路の回路構成情報に基づいて、前記半導体集積回路の各部分における遅延時間を計算するステップと、
    前記コンピュータが、前記遅延時間を計算するステップで計算した、ソースクロックから始点ブロック及び終点ブロックのそれぞれまでのクロック配線の配線遅延時間と、前記マクロ内部のクロック遅延時間を記述したマクロクロック補正遅延ライブラリとを用い、前記始点ブロックと前記終点ブロックとの間のクロックスキューを求めるステップとを有することを特徴とする動作タイミング検証方法。
  7. 前記クロックスキューを求めるステップでは、前記コンピュータは、前記遅延時間を計算するステップにて計算された、ソースクロックから前記マクロのクロック端子までの間のクロック配線の配線遅延時間に、前記マクロ内部のクロック遅延時間を加えた遅延時間を、該マクロのクロック遅延時間として、前記クロックスキューを算出する、請求項6に記載の動作タイミング検証方法。
  8. 前記遅延時間を計算するステップでは、前記コンピュータは、前記回路構成情報を入力し、セル内部の信号パスの遅延時間を求めるためのセル遅延時間テーブルを有するセルライブラリと、マクロ内部の信号パスの遅延時間を求めるためのマクロ遅延時間テーブルを有するマクロ遅延ライブラリとを参照して、RCシミュレーションによる遅延時間計算を行う、請求項6又は7に記載の動作タイミング検証方法。
  9. 前記マクロ遅延時間テーブルは、前記マクロ内部のクロック遅延時間を含まない遅延時間を保持する、請求項8に記載の動作タイミング検証方法。
  10. 前記コンピュータが、前記回路構成情報と、前記遅延時間を計算するステップで計算した各部分における遅延時間と、前記算出したクロックスキューとを用いて、信号パスの遅延時間を算出し、信号パス遅延時間が遅延制約情報で定義される遅延制約を満たしているか否かを示す情報を出力するステップを更に有する、請求項6〜9の何れか一に記載の動作タイミング検証方法。
  11. コンピュータに、構成要素にマクロを含む半導体集積回路の動作タイミング検証を行う処理を実行させるプログラムであって、前記コンピュータに、
    前記半導体集積回路の回路構成情報に基づいて、前記半導体集積回路の各部分における遅延時間を計算する処理と、
    前記遅延時間を計算する処理で計算した、ソースクロックから始点ブロック及び終点ブロックのそれぞれまでのクロック配線の配線遅延時間と、前記マクロ内部のクロック遅延時間を記述したマクロクロック補正遅延ライブラリとを用い、前記始点ブロックと前記終点ブロックとの間のクロックスキューを求める処理とを実行させることを特徴とするプログラム。
  12. 前記クロックスキューを求める処理では、前記遅延時間を計算する処理にて計算された、ソースクロックから前記マクロのクロック端子までの間のクロック配線の配線遅延時間に、前記マクロ内部のクロック遅延時間を加えた遅延時間を、該マクロのクロック遅延時間として、前記クロックスキューを算出する、請求項11に記載のプログラム。
  13. 前記遅延時間を計算する処理では、前記回路構成情報を入力し、セル内部の信号パスの遅延時間を求めるためのセル遅延時間テーブルを有するセルライブラリと、マクロ内部の信号パスの遅延時間を求めるためのマクロ遅延時間テーブルを有するマクロ遅延ライブラリとを参照して、RCシミュレーションによる遅延時間計算を行う、請求項11又は12に記載のプログラム。
  14. 前記マクロ遅延時間テーブルは、前記マクロ内部のクロック遅延時間を含まない遅延時間を保持する、請求項13に記載のプログラム。
  15. 前記コンピュータに、前記回路構成情報と、前記遅延時間を計算するステップで計算した各部分における遅延時間と、前記算出したクロックスキューとを用いて、信号パスの遅延時間を算出し、信号パス遅延時間が遅延制約情報で定義される遅延制約を満たしているか否かを示す情報を出力する処理を更に実行させる、請求項11〜15の何れか一に記載のプログラム。
JP2007198571A 2007-07-31 2007-07-31 動作タイミング検証装置、方法、及び、プログラム Pending JP2009037278A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007198571A JP2009037278A (ja) 2007-07-31 2007-07-31 動作タイミング検証装置、方法、及び、プログラム
US12/219,134 US20090037860A1 (en) 2007-07-31 2008-07-16 Apparatus, system and method for simulating operation of circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007198571A JP2009037278A (ja) 2007-07-31 2007-07-31 動作タイミング検証装置、方法、及び、プログラム

Publications (1)

Publication Number Publication Date
JP2009037278A true JP2009037278A (ja) 2009-02-19

Family

ID=40339329

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007198571A Pending JP2009037278A (ja) 2007-07-31 2007-07-31 動作タイミング検証装置、方法、及び、プログラム

Country Status (2)

Country Link
US (1) US20090037860A1 (ja)
JP (1) JP2009037278A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011059767A (ja) * 2009-09-07 2011-03-24 Toshiba Corp タイミングライブラリ検査装置、タイミングライブラリ検査方法、及びタイミングライブラリ検査プログラムを格納する記憶媒体

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2484295A (en) * 2010-10-05 2012-04-11 St Microelectronics Ltd Circuit simulation
US8250509B2 (en) * 2010-11-11 2012-08-21 International Business Machines Corporation Slack-based timing budget apportionment
US8499265B2 (en) * 2011-02-14 2013-07-30 Nanya Technology Corporation Circuit for detecting and preventing setup fails and the method thereof

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1055377A (ja) * 1996-08-09 1998-02-24 Oki Electric Ind Co Ltd 集積回路のタイミング設計方法
JPH10162040A (ja) * 1996-11-29 1998-06-19 Fujitsu Ltd 大規模集積回路装置の製造方法及び大規模集積回路装置
JPH11259555A (ja) * 1998-03-13 1999-09-24 Nec Ic Microcomput Syst Ltd マクロの設計方法
JP2001273338A (ja) * 2000-03-24 2001-10-05 Nec Corp 半導体集積回路の動作タイミング検証方法
JP2004102739A (ja) * 2002-09-11 2004-04-02 Matsushita Electric Ind Co Ltd 寄生素子抽出方法とこれを用いた遅延計算方法
JP2006012008A (ja) * 2004-06-29 2006-01-12 Oki Electric Ind Co Ltd タイミングモデル、及びそれを用いたlsi設計方法
JP2006309643A (ja) * 2005-05-02 2006-11-09 Nec Electronics Corp 遅延計算装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5754826A (en) * 1995-08-04 1998-05-19 Synopsys, Inc. CAD and simulation system for targeting IC designs to multiple fabrication processes
US5956497A (en) * 1997-02-26 1999-09-21 Advanced Micro Devices, Inc. Methodology for designing an integrated circuit using a reduced cell library for preliminary synthesis
US6625787B1 (en) * 1999-08-13 2003-09-23 Xilinx, Inc. Method and apparatus for timing management in a converted design
JP3420195B2 (ja) * 2000-09-26 2003-06-23 エヌイーシーマイクロシステム株式会社 クロック配線の設計方法
US7047175B1 (en) * 2001-11-16 2006-05-16 Synopsys, Inc. System and method for enhancing the speed of dynamic timing simulation using delay assessment at compile time
JP2005512236A (ja) * 2001-12-07 2005-04-28 カデンス デザイン システムズ, インコーポレイテッド タイミンググラフ縮小によるタイミングモデル抽出
US6754877B1 (en) * 2001-12-14 2004-06-22 Sequence Design, Inc. Method for optimal driver selection
US6698006B1 (en) * 2001-12-14 2004-02-24 Sequence Design, Inc. Method for balanced-delay clock tree insertion
JP2005004268A (ja) * 2003-06-09 2005-01-06 Matsushita Electric Ind Co Ltd 半導体集積回路装置の動作解析方法、これに用いられる解析装置およびこれを用いた最適化設計方法
US6952813B1 (en) * 2003-07-30 2005-10-04 Xilinx, Inc. Method and apparatus for selecting programmable interconnects to reduce clock skew
US7134062B2 (en) * 2003-08-12 2006-11-07 Via Telecom, Inc. Static timing analysis approach for multi-clock domain designs
JP2006039621A (ja) * 2004-07-22 2006-02-09 Nec Electronics Corp タイミング制約ライブラリの作成方法及び作成システム
JP4530883B2 (ja) * 2004-09-30 2010-08-25 富士通セミコンダクター株式会社 シミュレーションモデル生成方法
EP1907957A4 (en) * 2005-06-29 2013-03-20 Otrsotech Ltd Liability Company INVESTMENT METHODS AND SYSTEMS
US7406669B2 (en) * 2005-12-06 2008-07-29 Lsi Corporation Timing constraints methodology for enabling clock reconvergence pessimism removal in extracted timing models
US7509598B1 (en) * 2007-04-19 2009-03-24 Lattice Semiconductor Corporation Clock boosting systems and methods

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1055377A (ja) * 1996-08-09 1998-02-24 Oki Electric Ind Co Ltd 集積回路のタイミング設計方法
JPH10162040A (ja) * 1996-11-29 1998-06-19 Fujitsu Ltd 大規模集積回路装置の製造方法及び大規模集積回路装置
JPH11259555A (ja) * 1998-03-13 1999-09-24 Nec Ic Microcomput Syst Ltd マクロの設計方法
JP2001273338A (ja) * 2000-03-24 2001-10-05 Nec Corp 半導体集積回路の動作タイミング検証方法
JP2004102739A (ja) * 2002-09-11 2004-04-02 Matsushita Electric Ind Co Ltd 寄生素子抽出方法とこれを用いた遅延計算方法
JP2006012008A (ja) * 2004-06-29 2006-01-12 Oki Electric Ind Co Ltd タイミングモデル、及びそれを用いたlsi設計方法
JP2006309643A (ja) * 2005-05-02 2006-11-09 Nec Electronics Corp 遅延計算装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011059767A (ja) * 2009-09-07 2011-03-24 Toshiba Corp タイミングライブラリ検査装置、タイミングライブラリ検査方法、及びタイミングライブラリ検査プログラムを格納する記憶媒体

Also Published As

Publication number Publication date
US20090037860A1 (en) 2009-02-05

Similar Documents

Publication Publication Date Title
US7506292B2 (en) Method for clock synchronization validation in integrated circuit design
US8719752B1 (en) Hierarchical crosstalk noise analysis model generation
US7882483B2 (en) Method for checking constraints equivalence of an integrated circuit design
JP2009037278A (ja) 動作タイミング検証装置、方法、及び、プログラム
Iizuka et al. A tool set for the design of asynchronous circuits with bundled-data implementation
KR20160047662A (ko) 타이밍 분석기의 타이밍 정합 방법 및 그것을 이용한 집적회로 설계 방법
Peng et al. Finding glitches using formal methods
US7930609B2 (en) Apparatus and method for verifying target circuit
Sakib et al. Formal modeling and verification of PCHB asynchronous circuits
US9344408B2 (en) Cloud-basd digital verification system and method
US8775989B2 (en) Computer-aided design system and methods thereof for merging design constraint files across operational modes
US8056037B2 (en) Method for validating logical function and timing behavior of a digital circuit decision
US10885248B1 (en) Method for modeling glitches during circuit simulation
TWI488063B (zh) 最佳化並驗證第一電路的設備,方法及電腦可讀取儲存媒體
Brinkmann et al. Formal verification—the industrial perspective
Vij Algorithms and methodology to design asynchronous circuits using synchronous CAD tools and flows
Beltrame et al. Multi-level fault modeling for transaction-level specifications
US8756543B2 (en) Verifying data intensive state transition machines related application
Keng et al. Automated debugging of missing assumptions
JP5338919B2 (ja) 集積回路の消費電力算出方法、消費電力算出プログラム及び消費電力算出装置
JP2008107872A (ja) 半導体集積回路
US9047428B2 (en) Determining method, computer product, and determining apparatus
JP5145167B2 (ja) クロックドメインチェック方法及びクロックドメインチェック用プログラム並びに記録媒体
EP2797017B1 (en) Cloud-based digital verification system and method
Plassan Conclusive formal verification of clock domain crossing properties

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20100225

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100614

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120206

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120313