JP5609364B2 - 集積回路設計装置、集積回路設計方法、及び集積回路設計プログラム - Google Patents

集積回路設計装置、集積回路設計方法、及び集積回路設計プログラム Download PDF

Info

Publication number
JP5609364B2
JP5609364B2 JP2010164499A JP2010164499A JP5609364B2 JP 5609364 B2 JP5609364 B2 JP 5609364B2 JP 2010164499 A JP2010164499 A JP 2010164499A JP 2010164499 A JP2010164499 A JP 2010164499A JP 5609364 B2 JP5609364 B2 JP 5609364B2
Authority
JP
Japan
Prior art keywords
wiring
delay
value
path
hold 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.)
Expired - Fee Related
Application number
JP2010164499A
Other languages
English (en)
Other versions
JP2012027630A (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 JP2010164499A priority Critical patent/JP5609364B2/ja
Priority to US13/177,111 priority patent/US8327308B2/en
Publication of JP2012027630A publication Critical patent/JP2012027630A/ja
Application granted granted Critical
Publication of JP5609364B2 publication Critical patent/JP5609364B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/394Routing
    • 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/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は、半導体集積回路のレイアウト設計に関し、特に配置、配線後のタイミング検証でホールドタイミングエラーが発生した場合のタイミング修正に関するものである。
近年、半導体集積回路の設計において、回路規模の増大やプロセス技術の微細化、及び、回路の動作周波数の高速化に伴い、半導体集積回路の設計期間を短縮することが困難となってきている。このような状況において半導体集積回路のレイアウト設計を効率よく行うために、例えば、特許文献1に示すように、集積回路を分割してレイアウト設計を行なったり、配置、配線後のタイミング修正をECO(Engineering Change Order)処理により行なったりすることがなされている。ここで、ECO処理によるタイミング修正では、レイアウト修正すべき一部の回路についてのみ論理変更や回路素子の配置の修正等によりタイミング処理を行う。また、特許文献2のようにクロックディレイを調整する技術も用いられている。
特開2002−149730号公報 特開2002−245109号公報
前述の背景技術におけるECO処理等においては、タイミングエラーが発生した場合の対処方法として、同一論理で遅延値や負荷駆動能力が異なる回路素子(セル)への変更、リピータセルやディレイバッファの挿入等が行われたり、クロックパスのスキュー調整が行われたりする場合もある。また、セルの配置位置を変更してタイミング調整が行なわれることもある。これらのタイミング修正方法は、セルの変更等によって遅延調整する方法であり、遅延値を大きく変更し得る点で、設計の中盤でのタイミング検証のように、比較的大きなタイミングエラーが残っている場合に有効な手法と考えられる。
しかし、セル変更等による修正では、変更箇所の遅延値が大きく変わることにより、新たなタイミングエラーを発生させてしまう場合がある。設計の中盤では、タイミング修正時に多少、タイミングを悪化させる箇所があったとしても、他の大きなエラーに隠れて目立たない場合が多いが、設計の終盤に近づくにつれて、タイミング修正時に新たなエラーを発生させてしまうと設計工程に影響を与える場合が出てくる。
特に、ホールドタイムエラーの場合には、一般にデータパスにディレイバッファを挿入して、データパスの信号を遅延させる処理を行うが、挿入するディレイバッファの遅延値や挿入箇所によっては、挿入したディレイバッファを通る他のパス等でセットアップエラーを引き起こすような場合もある。設計終盤の締め切り間際のタイミング修正で新たなタイミングエラーを引き起こしてしまうと、設計スケジュールの遅延を引き起こしかねない。
そのため、本発明では、設計終盤で小さな値のホールドタイムエラーが残っているような状態において、発生しているホールドタイムエラーのみを修正し、このホールドタイムエラーのタイミング修正によって他に悪影響を与えないようにすることを課題とする。
上記課題を解決するために、本発明に係る集積回路設計装置は、半導体集積回路の配置、配線を行なった結果から遅延情報を抽出し、タイミング検証を行うタイミング検証手段と、前記タイミング検証手段によるタイミング検証を行った結果について、発生したホールドタイムエラーの値が基準値よりも小さいか否かを判定する判定手段と、前記判定手段により、ホールドタイムエラーの値が基準値よりも小さいと判定した場合に、ホールドタイムエラーが発生しているパスを構成する配線の中から、迂回回線として配線を引き出すための余地があり、分岐数が所定値以下であり、該配線を伝搬する信号波形のなまりがスルーレート基準値以内であり、該配線を経由するパスの遅延が所定値以下である、これらの抽出条件に基づいて遅延の挿入可能な配線を抽出する抽出手段と、前記抽出手段により抽出した配線に対して、当該配線を含むパスのホールドタイムエラーを改善しセットアップタイムエラーを生じさせない挿入遅延値に対応する配線延長距離を算出する延長距離算出手段と、前記延長距離算出手段により算出した延長距離の分だけ、前記抽出手段により抽出した配線を延長する配線延長処理を行う配線処理手段とを有する。
レイアウト設計終盤でのタイミング検証で残った小さな値のホールドタイムエラーを、論理変更無しに、かつタイミングエラーが発生していない他の回路に影響を与えることなく、最小限の遅延挿入により修正することが可能となる。
実施例に係る半導体集積回路のレイアウト設計手法の前提となるレイアウト設計フローの例を説明する図である。 実施例に係るレイアウト設計フローを説明する図である。 実施例に係るレイアウト設計処理とデータの関係を説明する図である。 回路例における複数のパスを説明する図である。 回路例におけるホールドタイムエラーが発生したパスの例を説明する図である。 セル・ライブラリに含まれるディレイバッファのセル遅延値の例を説明する図である。 回路例に対して実施例に係る迂回配線による遅延挿入ポイントを説明する図である。 回路例のポイントP1に迂回配線による遅延を挿入した場合の影響範囲を説明する図である。 回路例のポイントP2に迂回配線による遅延を挿入した場合の影響範囲を説明する図である。 回路例のポイントP3に迂回配線による遅延を挿入した場合の影響範囲を説明する図である。 回路例のポイントP4に迂回配線による遅延を挿入した場合の影響範囲を説明する図である。 複数のホールドタイムエラーが発生しているパスに共通したネットがある場合の例を説明する図である。 局所的な遅延計算によって迂回配線に必要な延長距離を求める処理を説明する図である。 遅延計算に利用する情報を説明する図である。 仮想的な配線禁止領域を作成して迂回配線する方法を説明する図である。 迂回地点を経由させて迂回配線する方法を説明する図である。 実施例に係るレイアウト設計処理を行うためのコンピュータのハードウェア構成例を説明する図である。
以下、本発明を実施するための形態について詳細に説明する。実施例の説明にあたり、実施例に係る半導体集積回路のレイアウト設計手法の前提となるレイアウト設計フローの例を説明してから実施例の詳細について説明する。本実施例においては、主に大規模かつ高速な半導体集積回路のレイアウト設計を行う場合について説明する。

図1は、実施例に係る半導体集積回路のレイアウト設計手法の前提となるレイアウト設計フローの例を説明する図である。比較的に大規模かつ高速な半導体集積回路では、CAD(Computer Aided Design)ツールによる自動配置配線だけでなく、手動によるマニュアル・レイアウトも行なわれる場合がある。図1に示すフローは、大規模かつ高速な半導体集積回路のレイアウト設計を行う際に、CADツールによる自動配置・配線処理に加えて、必要に応じて手作業によるマニュアル処理でのレイアウト修正、検証、確認等の処理も行う場合の処理フロー例を示した図である。図1のレイアウト設計フローは、半導体集積回路の全体のレイアウトを行う際に適用してもよいし、半導体集積回路を構成する特定のブロックの部分のレイアウトを行う際に適用してもよい(以下、後述の図2、図3に示すレイアウト設計フローにおいて同じ)。
図1に示すレイアウト設計フローでは、最初にフロアプランを作成する処理を行う(S100)。フロアプランを作成する処理では、半導体集積回路を構成する回路ブロックの回路規模、端子数、配線の接続先等を考慮しながら、各回路ブロックの配置位置を決定する。
フロアプランが決まると、回路を構成するセルの配置又は配置修正の処理を行う(S101)。ここで、セルとは、トランジスタにより構成されて所定の機能ブロックとして機能する回路素子をいう(以下、同じ)。セルの配置処理がなされた後、配置したセルどうしの配置箇所に重複がないかといったバイオレーション検証を行う(S102)。
S102のバイオレーション検証で何らかの問題がある場合には(S103 No)、S101に戻って、問題があるセルについて配置修正等を行うS102のバイオレーション検証で問題が見つからなかった場合には(S103 Yes)、S104に進む。
セルの配置(S101)及びバイオレーション検証(S102)が終わった段階では、まだ配線処理は行なわれていないが、セルの配置箇所が不適切な場合には、配線処理後のタイミング検証で、セットアップタイムエラー等のタイミングエラーを引き起こす場合がある。そのため、S102のバイオレーション検証が終わった段階で、予めセルの配置処理の妥当性を確認するために、仮想的な配線容量を仮定した暫定的なタイミング検証を行いたい場合がある。この暫定的なタイミング検証を行う場合には(S104 Yes)、S105のタイミング検証処理に進む。尚、S104でセルの配置処理後の暫定的なタイミング検証(S105)が不要と判断した場合には(S104 No)、後述のS110の配線処理に進む。
S105のタイミング検証では、配置されたセルどうしを接続する配線を想定した仮想的な配線容量を設定して回路の遅延計算を行い、セットアップタイム等のタイミング条件を満足するか否かを検証する。図1では図示していないが、S105のタイミング検証で何らかの問題が見つかった場合には、必要に応じてS101の処理まで戻ってセルの配置修正等を行う。尚、タイミング検証の手法としては、静的タイミング解析(STA:Static Timing Analysis)や、実配線処理を行なった後の実際の遅延情報を用いたダイナミックシミュレーション等によって行う手法があるが、ここでは主としてSTAによるタイミング検証をいうものとする(以下、同様)。
仮想的なタイミング検証(S105)で問題が無い場合には、次に、クロック配線処理が必要かどうかを判定する(S106)。一般的に、クロックが供給される各クロックツリーの末端のFF(Flip−Flop)でのクロック・スキューを合わせやすいように、データ信号に対する配線処理を行う前に、クロック信号に対する配線処理を優先して行うことが多い。そのため、クロック信号に対する配線処理を優先して行う場合には(S106 Yes)、S107のクロック配線処理に進む。尚、クロック配線を優先的に行う必要が無い場合には(S106 No)、後述のS110の配線処理において、クロック配線を含めて配線するようにしてもよい。また、後述のタイミング修正処理時等において既にクロック配線処理が終わっていて、クロック配線の修正が必要ないような場合も(S106 No)、S110の処理へ進む。
S107のクロック配線の処理においては、クロック・スキュー等を考慮して適切なクロック挿入遅延になるようにクロック配線を行う。その際、クロック挿入遅延を調節するために、必要な数だけクロック・バッファの挿入又は削除等を行う。
S107のクロック配線処理を行なった後、配線処理が行なわれたクロック配線の結果に問題点がないか等を確認する場合には(S108 Yes)、S109で再度暫定的なタイミング検証を行う。S109のタイミング検証では、クロック配線については実際に配線した結果に基づく配線容量を、それ以外の配線については仮想的な配線容量を設定して回路の遅延計算を行い、所定のタイミング条件を満足するか否かを検証する。図示していないが、S109のタイミング検証で問題が見つかった場合においても、必要に応じてS101の処理まで戻ってセルの配置修正等を行う。尚、S109でのタイミング検証が必要ない場合には(S108 No)、S110の処理へ進む。
上記S104、S106、S108の各判断は、設計者がCADツールを用いてレイアウト設計を行なう際に、CADツールの設定画面やCADツールに入力する設定ファイル等によって予め設定しておくようにしてもよい。
セルの配置処理(S101)が終わり、必要に応じてクロック配線処理(S107)が終わると、配置された各セルどうしを接続する配線を生成する配線処理を行う(S110)。配線処理(S110)は、主にCADツールを用いた自動配線処理により行う。しかし、特定の高速動作が要求される回路ブロックの配線や、後述のバイオレーションエラーが発生した場合の配線の修正等は、人手によるマニュアル修正、すなわち、設計者が修正方法を判断し、CAD修正内容を指示して配線修正を行う場合もある。
S110の配線処理では、セルどうしを接続する配線を新規に生成することに加えて、後述のバイオレーション検証(S111)やタイミング検証(S113)で問題が見つかった場合の配線修正処理も行う。例えば、配線間ショート等のバイオレーションがある場合には、ショートしないように配線を引きなおしたり、迂回配線させたりすることにより、バイオレーションが発生しないように配線の修正を行う。また、S107のクロック配線処理を行なわなかった場合であって(S106 No)、未配線となっているクロック配線がある場合には、S110の配線処理において、合わせてクロック配線を行う。
配線処理(S110)が終わると、配線結果について、所定のレイアウト設計ルールを満たすか否かについてのバイオレーション検証を行う(S111)。具体的には、S111のバイオレーション検証では、配線処理された配線どうしが所定の配線間隔以上離して配線されているか等のデザインルールを満たしているか、ショートしている箇所がないか、あるいはクロストークノイズの問題は生じないかといった内容について検証を行う。
S111のバイオレーション検証で何か問題が見つかった場合には(S112 No)、S110の処理に戻って、バイオレーションがでないように問題が見つかった配線の修正を行う。配線修正処理(S110)とバイオレーション検証(S111)は必要に応じて何度も繰り返し行い、バイオレーションが無くなると(S112 Yes)、次のタイミング検証処理(S113)に進む。
配置・配線を行った結果バイオレーションが無くなると(S112 Yes)、実配線処理後のレイアウト結果が所定のタイミング条件を満たすか否かを検証するタイミング検証を行う(S113)。S113のタイミング検証の処理においては、実際の配線結果から配線容量等を抽出し、抽出した配線容量等に基づいて回路に含まれる全てのパスについて遅延計算を行う。そして、回路に含まれる各パスについて、所定のタイミング条件を満足するか否か、例えば、セットアップタイムエラーやホールドタイムエラーが無いか等を検証する(S113)。
通常、最初の配置・配線直後は多数のタイミングエラーがある場合が多く、また、タイミングエラーの値も大きい場合が多い。そのため、以下に述べるタイミング修正処理とタイミング検証を何回も繰り返し、タイミングエラーを収束させていく。
S113のタイミング検証でエラーが残っている場合には(S114 No)、発生したタイミングエラーを修正するために、発生したエラー内容に応じて論理変更やセル移動等のタイミングエラーの修正方法を判断する(S115)。タイミングエラーの修正方法としては、例えば、クロック・スキューが小さくなるように修正したり、データパス上にあるセルについて同一論理で遅延値や負荷駆動能力の異なるセルに変更したり、リピータセルやディレイバッファの挿入等を行ってタイミングエラーを修正する方法がある。
S115での修正方法を判断した結果、論理変更が必要となる場合には(S116 Yes)、タイミングエラーを修正するための論理変更を行い(S117)、変更結果をレイアウト用データベースに反映させる(S118)。そして、S101の処理に戻って、論理変更内容を反映したレイアウトデータベースの内容に基づいて、論理変更があったセル等の配置を修正する。S115での修正方法の判断で論理変更が不要と判断した場合には(S116 No)、そのままS101の処理に戻って、タイミングエラーに関連するセルを移動等する配置修正を行う。尚、タイミングエラーを修正するための配置修正等の処理(S101)では、タイミングエラーに関連したセルの変更や移動のみを行う。
タイミングエラーを修正するための論理修正やセル移動等に関する配置修正(S101)を行った後は、配置結果に対するバイオレーション検証を行う(S102)。S102のバイオレーション検証でエラーがあれば(S103 No)、再度S101に戻って配置修正を行い、S102のバイオレーション検証でエラーがなくなっていれば(S103 Yes)次の処理に進む。ここで、タイミングエラーを修正するための一連の処理では、主にタイミングエラーに関連するセルのみについて変更、移動等が行われるので、特に必要の無い限り、再度、暫定的なタイミング検証(S105)やクロック配線(S107)を行うことなく、S110の配線修正処理に進む。
S110の配線修正処理では、タイミングエラーを修正するための論理変更やセル移動等したセルについて、配線を引きなおす処理を行う。そして、配線処理結果について再度バイオレーション検証を行い(S111)、バイオレーション検証で問題がなくなれば(S112 Yes)、タイミング修正のための一連の配置・配線の修正処理が完了する。
上記、タイミング修正のための一連の処理が完了すると、修正したレイアウト結果を用いて、再度、実配線結果を用いたタイミング検証を行う(S113)。このタイミング検証(S113)でまだタイミングエラーが残っている場合には、再度、上記と同様にS115〜S118の処理、及び配置・配線の修正処理を行う(S101〜S112)。そして、S113のタイミング検証でタイミングエラーが無くなると(S114 Yes)、レイアウト設計が完了する。

上述の通り、図1のレイアウト設計フローでは、最終的なタイミング検証(S113)でタイミングエラーが発生した場合には、負荷駆動能力が異なるセルへの変更やディレイバッファの挿入等の論理変更、又は、セルの配置位置の変更等によりタイミング修正を行う。このようなタイミング修正方法はタイミングエラーが発生しているパス中のセルの遅延値を大きく変更できる点で、比較的大きなタイミングエラーが残っている設計中盤でのタイミング修正方法として有効な手段である。
しかし、設計終盤に近づくにつれて、タイミングエラーの値の小さいホールドタイムエラーのみが残っているような場合においては、上記修正方法では過剰に遅延挿入してしまう場合があり、意図しないセットアップエラーを発生させてしまう場合が生じてくる。特に、高速な回路動作が要求される半導体集積回路においては、クロックのサイクルタイムが非常に短いので、パスによっては、1つのディレイバッファの挿入によってセットアップタイムに大きな影響を及ぼしてしまう場合がある。
設計終盤の締め切り間際のタイミング修正で新たなタイミングエラーを発生させてしまうと、設計スケジュールの遅延を引き起こしかねない。そのため、設計終盤のタイミング修正、特にホールドタイムエラーの修正は、タイミングエラーが発生している箇所以外に影響を与えない方法でタイミング修正する必要がある。このような設計終盤における小さな値のホールドタイムエラーを効率的、かつ他の回路に影響を及ぼさないように修正するためのレイアウト設計の実施例について、以下、図2以降の図面を用いて説明する。

図2は、実施例に係るレイアウト設計フローを説明する図である。図2におけるS120〜S134、及びS141〜S144の各処理は、図1のフローにおけるS100〜S118までの各処理と基本的に同じ内容となるので、図1と図2の各フローの差異点を中心に説明する。具体的には、図2で追加されたS135〜S140の各処理を中心に説明する。
図2のフローでは、配置・配線処理後のタイミング検証(S133)においてタイミングエラーが残っている場合(S134 No)、タイミングエラーが発生しているパスの中で、後述の迂回配線処理を施すだけで改善できるパスを抽出する(S135)。そして、残っている全てのタイミングエラーが迂回配線で修正可能なホールドタイムエラーのみであるかを判断する(S136)。
S136において、残っている全てのタイミングエラーを迂回配線だけでは修正可能でない場合には(S136 No)、S141の処理に進む。すなわち、配線改善で対処するには大きすぎる値のタイミングエラーが存在する場合には、S141に進み、図1のS115以降の各フローと同様、セル変更やディレイバッファ挿入等の論理変更によるタイミング修正を行う。
S136において、全てのタイミングエラーが迂回配線で修正可能な小さな値のホールドタイムエラーのみである場合には(S136 Yes)、S137の処理に進む。S137では、タイミングエラーが出ているパス毎に、迂回配線処理で改善できるポイントとなる改善対象のネットの抽出を行う。その際、後述の抽出方法により、最もタイミング修正による影響範囲が少なくなるように迂回配線ポイントの抽出を試みる。
S138で迂回配線により修正する迂回配線ポイントとなるネットの抽出が完了すると(S138 Yes)、抽出した各ネットについて、どの程度迂回配線を行う必要があるかを見積もるための、簡易的な遅延計算を行う(S139)。この簡易遅延計算の詳細については後述する。
尚、迂回配線による改善対象ネットの抽出処理(S137)において、改善対象ネットの抽出が完了していない場合(S138 No)、すなわち、S135で抽出されたパスに対して、迂回配線処理を行う最適なポイントが見つからなかった場合には、再度S137の処理に戻って次善の迂回配線ポイントの抽出を行う。そして、全ての改善対象ネットについて、迂回配線ポイントを抽出すると、S139の簡易的な遅延計算を行う。
S135で抽出した各ネット毎に簡易遅延計算(S139)を行った後、これらの各ネットに対しての迂回配線を行うためのパラメータを決定する(S140)。すなわち、迂回配線を行う対象となる各ネットのネット名と共に、タイミングエラーを改善するために必要な迂回配線を行う配線の延長距離等のパラメータを決定する。
S140で各迂回配線対象のネットについての配線パラメータが決まると、S130の配線修正処理に進み、抽出した各迂回ポイントのネット毎に配線修正を行う。この迂回配線処理の詳細についても後述する。
そして、S130での迂回配線処理が完了すると、再度、バイオレーション検証(S131)、タイミング検証(S133)を行い、タイミングエラーが無くなるまで、前記S135以降の工程を繰り返す。S133のタイミング検証において、全てのタイミングエラーが無くなってタイミング収束した場合には(S134 Yes)、レイアウト設計が完了する。

図3は、実施例に係るレイアウト設計処理とデータの関係を説明する図である。図3中、S130〜S141の各処理は、図2におけるS130〜S141の各処理と同じ内容である。図3では、S130〜S141の各処理フローを示すフロー図の中央部分に、S130〜S141の各処理で使用するデータや制御ファイルを保存するデータベース(301〜303)や制御ファイル(300)、タイミング解析結果や容量定義ファイル等(304)を示す。
図3のネット延長指示カード300は、S138で抽出された各迂回配線対象ネットについてS140で決定した配線パラメータの内容を保存した制御ファイルである。レイアウトDB301は、レイアウト設計で必要となる回路情報やレイアウト設計において生成される各種レイアウトデータを有するデータベースである。タイミング解析DB302は、タイミング検証を行うためのデータベースであり、タイミング検証を行う前にレイアウトDB301及びセル・ライブラリ303の情報等を用いて生成されたデータベースである(S133)。セル・ライブラリ303は、レイアウト設計対象回路を構成する各セルについての、論理情報や、端子、配線、コンタクト、負荷容量駆動能力、遅延情報といった物理情報等を記憶したライブラリである。
各種結果・容量定義ファイル304は、タイミング検証(S133)を行った結果得られる情報、すなわち、スルーレート解析結果(a)、スラック情報ファイル(b)、容量定義ファイル(c)、パスディレイ解析結果(d)の各情報を有する。ここで、スラックとは、個々のパスに対するセットアップタイムやホールドタイム等のタイミング制約に対する遅延余裕度をいう。また、パスディレイとは、タイミング検証対象のパスに含まれるセルや配線の個々の遅延値を基に、そのパスに関するデータパスの遅延値やクロックパスの遅延値を表したものをいう。
スルーレート解析結果(a)には、レイアウトデータに含まれる配線やセルを伝搬する信号波形のなまりに関する情報、すなわち、信号の立ち上がり時間や立下り時間等を保存する。スラック情報ファイル(b)には、タイミング解析対象となるFF等についてのセットアップタイムやホールドタイム等の遅延余裕度に関する情報を保存する。容量定義ファイル(c)には、レイアウトデータに含まれる配線やセルについての配線容量やセルの入力端子容量等の情報を保存する。パスディレイ解析結果304(d)には、タイミング検証対象のパスに関するデータパスやクロックパスの累積遅延値に加え、そのパスを構成する個々のセルや配線の遅延値をも含めた情報を保存する。また、パスディレイ解析結果304(d)には、タイミング検証対象のパスを構成する配線やセルについての、ネット名、セル名、セルの種類、配線の分岐数等に関する情報も保存する。これらの各ファイル(304)に保存された情報は、後述の迂回配線処理を行う対象となる配線の抽出処理(S137)、簡易遅延計算処理(S139)、迂回配線処理を行うための各種パラメータを決定する処理(S140)等で使用される。
スルーレート解析結果(a)、スラック情報ファイル(b)、パスディレイ解析結果(d)は、タイミング検証(S133)を行った結果のうち、少なくともタイミングエラーが発生したパスに関する情報を有する。一般的なSTA等のタイミング検証においては、スラック値が一番小さい(又は、エラー値が一番大きい)ワーストパスのみを出力する場合が多いが、各種結果・容量定義ファイル304の(a)、(b)、(d)のデータについては、ワーストパスに含まれるセルやネットを共有する全てのパスについてのタイミング解析結果の情報を格納する。すなわち、タイミングエラーが発生しているパスに含まれるネットに関連する全てのパスのスラック情報等について、タイミングエラーの発生の有無に係らず、情報を各種結果・容量定義ファイル304に格納する。タイミングエラーが発生しているパスに含まれるネットに関連する全てのパスのスラック情報がないと、特定のネットを修正した場合の他のパスへの影響を見積もることができないためである。
容量定義ファイル(c)は、レイアウトDB301やセル・ライブラリ303等に基づいて、実際のレイアウトデータに含まれるセルや配線に関する配線容量、負荷容量、入力端子容量等の容量を記憶したファイルである。

S130の迂回配線を行う際には、ネット延長指示カード300の指示に従って、各迂回配線処理の対象となる配線について、迂回配線処理を行う。その際、レイアウトDB301のデータを参照し、迂回配線処理を行なった後のレイアウトのデータをレイアウトDB301に格納する。全ての迂回配線処理対象の配線に対して迂回配線処理(S130)が完了すると、配線結果に対して、所定のレイアウト設計ルールを満たすか否かを検証するバイオレーション検証を行う(S131)。
S131のバイオレーション検証を行う際には、レイアウトDB301に格納された配線処理後のレイアウトデータを参照して、S130で行った配線処理の結果について、所定のレイアウト設計ルールを満たすか否かについてのバイオレーション検証を行う。このバイオレーション検証の結果、配線間ショートや配線間隔エラー等のバイオレーションがあった場合には、そのエラー情報をレイアウトDB301に反映させて、再度S130の処理に戻って(S132 No)、バイオレーション発生箇所の修正を行う。
S133のタイミング検証の処理においては、まず、レイアウトDB301及びセル・ライブラリ303を参照して、実配線処理後のレイアウトデータに基づいてレイアウトデータに含まれるセルや配線の容量抽出を行う。そして、抽出した配線容量等の容量情報に基づいて回路中の各セル遅延や配線遅延についての遅延計算を行い、タイミング解析DB302を作成する。また、合わせて、前記容量定義ファイル(304(c))を作成する。その後、S133の処理ではタイミング解析DB302を用いてタイミング解析を行い、タイミング解析結果として、スルーレート解析結果(304(a))、スラック情報ファイル(304(b))、パスディレイ解析結果(304(d))を作成する。
タイミング検証(S133)を行った結果、タイミングエラーが無ければ(S134 Yes)レイアウト完了となるが、タイミングエラーがある場合には(S134 No)S135以降の処理に進む。
改善対象パス抽出処理(S135)では、セル・ライブラリ303とタイミング検証(S133)の結果出力される結果ファイル304を用いて迂回配線によるタイミング改善対象パスを抽出する。S135でのタイミング改善対象パスの抽出方法については後述する。S135の処理で用いるタイミング検証の結果ファイル304としては、スルーレート解析結果(a)、スラック情報ファイル(b)、パスディレイ解析結果(d)を用いる。
S133のタイミング検証で出力された全てのタイミングエラーが迂回配線によるタイミング修正で修正可能な場合(S136 Yes)、S135で抽出した各パスについて、迂回配線を行うポイントの抽出を行う(S137)。
S137では、タイミングエラーが出ているパス毎に、迂回配線処理で改善できるポイントとなる改善対象のネットの抽出を行う。その際、タイミング検証(S133)の結果出力されるタイミング検証の結果ファイル304に含まれるスルーレート解析結果(a)、スラック情報ファイル(b)、パスディレイ解析結果(d)を用いて迂回配線処理対象のネットを抽出する。具体的な迂回配線処理対象のネットの抽出方法については後述する。
迂回配線処理対象となるネットの抽出が完了すると(S138 Yes)、セル・ライブラリ303、容量定義ファイル(304(c))、パスディレイ解析結果(304(d))を用いて、どの程度迂回配線を行う必要があるかを見積もる簡易遅延計算を行う(S139)。そして、簡易遅延計算(S139)の結果に基づいて、S135で抽出した各ネットに対して、迂回配線処理を行うための各種パラメータを決定し(S140)、決定したパラメータに基づいてネット延長指示カード300を作成する。

図4は、回路中に存在するFF間のパスについてタイミング検証を行う際に、タイミング解析の対象となるパスの例を説明する図である。図4において、2つのFFセル11、12(インスタンス:B1、B2)の間には、複数の論理セル21〜27(インスタンス:BL_A1〜BL_A3、BL_B1〜BL_B3、BL_C1)から成る3つの経路(パス)(パスA、パスB、パスC)が存在する。各論理セル21〜27は、AND、OR、セレクタといった特定の機能を有する論理ゲートであり、図4では、それぞれ模式的に長方形で示されている。
図4において、パスAは、B1.OUTから出力された信号が、BL_A1.X(ここで「X」は端子名とする。以下、各図において同じ)、BL_B1.X、BL_C1.Xを経由してB2.INに到達するまでの経路(パス)をいう。また、パスBは、B1.OUTから出力された信号が、BL_A2.X、BL_B2.X、BL_C1.Xを経由してB2.INに到達するまでの経路をいう。パスCは、B1.OUTから出力された信号が、BL_A3.X、BL_B3.X、BL_C1.Xを経由してB2.INに到達するまでの経路をいう。
図4に示すFF11及びFF12はそれぞれクロック信号(CLK)に接続されており、このクロック信号のクロック周期を基準にタイミング解析を行う。すなわち、FF11の出力(B1.OUT)から出力された信号が、各パス(パスA〜パスC)を通ってFF12の入力端子(B2.IN)に入力された場合のFF12におけるセットアップタイムやホールドタイムの余裕度、すなわち、スラックを求める。そして、スラック値がマイナスの場合、すなわち、パスA〜パスCを通ってFF12に到達する信号到着タイミングが所定のタイミング条件を満たしていない場合には、タイミングエラーが発生していることになる。

図5は、図4の回路例におけるパスBでホールドタイムエラーが発生した場合の経路を太線で示した図である。ここで、パスA及びパスCを経由するパスではタイミングエラーは発生していないものとし、パスBを経由するパスのみ、ホールドタイムエラーが発生しているものとする。パスA及びパスCでは何らタイミングエラーは発生していないものの、パスA、パスB、パスCの各経路を通るパスのセットアップタイムのスラックはほとんど余裕が無いものとする。また、パスBで発生したホールドタイムエラーのエラー値は微小な値であり、パスBについてのセットアップタイムのスラック値よりも少しだけ小さな値のホールドタイムエラーとなっているものとする。
図5の事例のように、パスA〜パスCの各パスにおいて、ほとんどセットアップタイムのスラックに余裕が無い状態で、パスBについて微小な値のホールドタイムエラーが発生した場合には、ディレイバッファの挿入によるホールドタイムエラーの修正を行うと、逆にセットアップタイムエラーを引き起こす恐れがある。すなわち、ディレイバッファ挿入により、セットアップタイムのスラック値よりも大きな過剰な値の遅延が挿入されてしまい、新たなセットアップタイムエラーを引き起こしてしまうおそれがある。そのため、このような状況においては、ディレイバッファの挿入等によるセル変更を伴う修正はせずに、ホールドタイムエラーが発生しているパスBの経路中で、他のパスに影響を与えない箇所の一部の配線に迂回配線処理を行なって配線遅延を増加させ、ホールドタイムエラーを修正することが望ましい。
本実施形態は、このように配置、配線がほぼ収束した状態で、タイミング解析結果においても微小なホールドタイムエラーだけが残っているようなタイミング収束に近い状態において、最小限のタイミング修正で、かつ、そのタイミング修正により他のタイミングエラーを引き起こさないようにタイミング収束させようとするものである。以下、この図5の事例を用いて、図3におけるS130〜S140の各処理がどのように行なわれるかについて説明する。

図3のS133でのタイミング検証の結果、上記の図5におけるパスBで微小なホールドタイムエラーが残っている場合には、タイミングは収束していないことになるので(図3のS134 No)、図3のS135の改善対象パス抽出処理を行う。図3のS135の改善対象パス抽出処理では、ホールドタイムエラーが発生している場合において、そのホールドタイムエラーが小さな値のホールドタイムエラーであって、迂回配線処理のみによってタイミング修正すべきパスであるか否かを判定する。
迂回配線処理によりタイミング修正するか否かの判断基準としては、まず、タイミング検証(S133)の結果、残っているタイミングエラーが小さな値のホールドタイムエラーのみであることが望ましい。そして、そのホールドエラーについて、ディレイバッファの挿入による修正では他のパスに影響を与える可能性があって、全体の設計工程を遅延させる恐れがあるような状況、すなわち、レイアウト設計の終盤であるときに、迂回配線処理によるタイミング修正を行うことが望ましい。
どういった場合に、迂回配線処理によりタイミング修正するのが好ましいかは、設計で使用するテクノロジ、ライブラリの特性や、CADツールにも依存する可能性があるため、設計者の経験則により判断することが可能である。ただし、自動配置配線ツールを用いて効率的、かつ短期間の設計処理を行うためには、より客観的な基準により判断することが望ましい。
従って、図3のS135で迂回配線処理により改善するパスを抽出する際には、使用するテクノロジ毎に、設計者の経験から導き出される特定の基準値がある場合には、その基準値を用いて、迂回配線処理を行うパスであるか否かを判断する。具体的には、タイミング検証(S133)の結果残っているホールドタイムエラーの値が、その基準値以内のエラーであるか否かを判定することにより、迂回配線処理を行うべきパスであるか否かを判断する。
仮に、迂回配線処理によりタイミングエラーを修正するか否かを判断するための基準値が定まっていないような場合には、より客観的な基準が必要となる。このような客観的な基準の一態様として、使用するセル・ライブラリに含まれる、ホールドタイムエラーの修正に用いる可能性のあるディレイバッファのセル遅延値のうち、一番小さいセル遅延値を基準値として用いることができる。
例えば、セル・ライブラリ303に含まれるセルのうち、ホールドタイムエラーの修正に用いるディレイバッファとして図6に示す5つのセル(BUF1〜BUF5)がある場合を考える。この場合、図6に示すディレイバッファの中でセル遅延値の一番小さなBUF1のセル遅延値20ps(pico second)よりもホールドタイムエラーの値が小さいか否かにより、迂回配線処理によりタイミングエラーを修正するか否かを判断する。具体的には、ホールドタイムエラーの値が20psよりも大きい場合には、ディレイバッファ挿入によるタイミング修正を行い、20psよりもホールドタイムエラーの値が小さい場合には迂回配線処理によるタイミング修正を行うといったように判断する。このように、セル遅延値の一番小さなディレイバッファのセル遅延値を用いて迂回配線処理によりタイミングエラーを修正するか否かを判断することで、客観的な基準値によってホールドタイムエラーの修正方法を決定することができる。
図3のS135では、タイミング検証(S133)の結果として出力された全てのホールドタイムエラーについて、ホールドタイムエラーの値が上記基準値(経験値に基づく基準値又は最小ディレイバッファのセル遅延値)よりも小さいか否かを判断する。S135での判断の結果、ホールドタイムエラーの値が基準値よりも小さいパスについては、迂回配線処理によりタイミングエラーを修正するパスであるとして認定する。
S135でホールドタイムエラーが出ている全てのパスについて、そのホールドタイムエラーの値が基準値よりも小さいか否かを判定した後は、タイミング検証(S133)の結果残っている全てのホールドタイムエラーを迂回配線処理により修正できるか否かを判定する(S136)。
タイミング検証(S133)の結果として出力されるエラーとしては、ホールドタイムエラー以外にセットアップエラーやクロックパルス幅エラー等の他のエラーも存在し得る。しかし、一般的には、回路動作周波数のターゲットスペックを満たすためにセットアップエラー等のタイミングエラーを先に修正することが多いため、本実施例を適用するような設計終盤においては、ホールドタイムエラー以外のタイミング修正は収束しているものとする。
S136において、上記基準値よりも大きな値のホールドタイムエラーが残っていると判断された場合には(S136 No)、残っている大きな値のホールドタイムエラーについてはディレイバッファの挿入によるタイミング修正を、他のホールドタイムエラーの修正よりも先に行うことが望ましい。すなわち、ディレイバッファ挿入等のセルの配置・配線の変更を伴う修正を行った場合には、修正箇所に関連する他のパスの遅延や、周りの配線にも影響を与える可能性が大きく、このような修正を先に完了させた方が早くタイミング収束し得ると考えられるためである。そのため、上記基準値よりも大きな値のホールドタイムエラーが残っている場合には(S136 No)、S141以降の処理へ進み、大きな値のホールドタイムエラーが出ているパスについて、ディレイバッファ挿入による修正を行う。このように処理することで、レイアウト設計ツールによる自動的なタイミング修正を容易、かつ、効率的に行うことが可能となる。

ところで、回路全体のタイミング修正がほぼ収束しかけている状態で、少しだけ残ってしまった大きな値のホールドタイムエラーと迂回配線処理で修正可能な小さな値のホールドタイムエラーとが並存する場合には、これらのタイミングエラーを並行して修正した方が効率的な場合もある。すなわち、S136において所定の基準値よりも大きなホールドタイムエラーが少しだけ残ってしまった場合、その数が少なく、かつ、その大きな値のホールドタイムエラーを修正しても他の回路への影響が少ないと判断される場合がある。そのように判断できるような場合、図3で図示していないが、ディレイバッファ挿入によるホールドタイム修正と迂回配線処理によるホールドタイム修正とを同時に行うようにすることも可能である。ただし、ディレイバッファ挿入による修正は、他のタイミングエラーを新たに発生させる場合もあるため、このようなセル変更を伴う修正と迂回配線処理による修正を行う際には、他のパスへの影響が小さいと判断できることが望ましい。
このようにセル変更等を伴う修正と迂回配線処理による修正を並行して行う方が良いと判断した場合、S136において大きな値のホールドタイムエラーが残っていても、別の判断処理(不図示)、あるいは設計者による手動処理により、S137の処理に進ませることができる。この場合、迂回配線処理の対象となるパスについてS137〜S140の処理を行ってネット延長指示カード300を作成しておき、その後、S141の処理へ進む(S140からS141への破線の矢印)。S141以降の処理では、所定の基準値よりも大きなホールドタイムエラーについてはディレイバッファ挿入による修正を行い、再度、S130の配線修正の処理まで進んだ段階で、S140で作成したネット延長指示カード300も読み込んで配線修正を行う。すなわち、S130の処理において、ディレイバッファ挿入に伴う配線修正と合わせて、エラー値の小さなホールドタイムエラーに対する迂回配線処理によるタイミング修正処理も並行して行う。このように、設計終盤の特定の状況においては、ディレイバッファ挿入によるホールドタイム修正と迂回配線処理によるホールドタイム修正を並行して行うことにより、早期タイミング収束を図ることができる場合もある。

次に迂回配線処理を行う修正箇所、すなわち迂回ポイントの抽出方法について説明する。S136においてホールドタイムエラーが出ているパスについて迂回配線処理による修正を行うと判断した場合、S137の処理に進んで、実際に迂回配線を行う修正箇所である迂回ポイントの抽出を行う。以下、図4、図5の事例を用いて、迂回配線処理を行う修正箇所、すなわち迂回ポイントの抽出方法について説明する。
図7は、回路例に対して実施例に係る迂回配線による遅延挿入ポイントを説明する図である。図7に示すように、パスBで小さな値のホールドタイムエラーがある場合、ポイントP1〜ポイントP4の4つのポイントが迂回配線処理を行う対象となり得るポイント(配線)となる。これらの各ポイントの中から、迂回配線処理によるホールドタイムエラーのタイミング修正を行うのに適したポイントを抽出する。
ここで、迂回配線処理による遅延挿入ポイントとなる配線を抽出するための条件としては、以下の条件を満たすことが望ましい。すなわち、
(条件1)配線が短すぎないこと、
(条件2)分岐数が少ないこと(望ましくは分岐数が1)、
(条件3)その配線を伝搬する信号波形に大きななまりがないこと、かつ、
(条件4)その配線を経由するパスにある程度遅延余裕度があることが好ましい。
これらの条件を満たすことが望ましい理由としては、条件1については、迂回配線処理対象となる配線が極端に短いと迂回配線として配線を引き出すための余地がない場合があるためである。また、条件2の分岐数については、迂回配線による遅延挿入でタイミング修正対象外のパスへの影響を抑えるためである。条件3については、なまった波形の信号(例えば、制限値の50%以上なまっているような波形の信号)が通る配線について迂回配線処理を行うと、さらに波形なまりが悪化して、信号波形なまりに関するスルーレートの基準値違反となるおそれがあるためである。条件4については、迂回配線による遅延挿入で、逆にセットアップタイムエラーを引き起こさないようにする必要があるためである。
迂回配線処理によりタイミング修正を行う場合、出来る限り、ホールドタイムエラーが発生している1つのパスに対して、一つの配線に対してのみ迂回配線による迂回路を形成することが望ましい。一つのパスに対して、複数個所の配線を延長させた場合、改善度合いを予測しにくく、逆に悪い結果となる可能性もあるためである。ただし、複数のパスに共通するネットの迂回配線を行うような場合には、一つのパスに対して2箇所の迂回配線を行う場合もある。詳細については、図12を用いて後述する。

ホールドタイムエラーを修正するために、1箇所の配線を迂回配線によって延長させて所望の遅延値を挿入する場合を考える。図7に示すように、回路例のパスBに対しては、4つのポイント(P1〜P4)が迂回配線の対象となり得る。この4つのポイント(P1〜P4)のうち、どのポイントを迂回配線の対象とするかについては、それぞれのポイントに遅延挿入した場合の、他のパスへの影響範囲を考慮する必要がある。
ホールドタイムエラーが発生しているパス中の特定のポイントとなる配線に遅延を挿入した場合、そのポイントを通過する全てのパスについて挿入遅延の分だけセットアップタイムのスラックが減少することになる。遅延挿入ポイントを含むパスの中にセットアップタイムのスラック値に余裕が無いパスがある場合には、ホールドタイムエラー修正の遅延挿入により、逆にセットアップタイムエラーを引き起こしてしまう場合がある。そのため、ホールドタイムエラー修正用の遅延挿入により他のパスのセットアップタイムへの影響が小さくなるポイントを見つける必要がある。
図7の4つのポイント(P1〜P4)を例に、各ポイントに遅延挿入した場合の影響範囲について、図8〜図11を用いて説明する。
図8は、図7におけるポイントP1に迂回配線による遅延を挿入した場合の影響範囲を説明する図である。ポイントP1に係る配線はFF11の出力端子(B1.OUT)が駆動する配線であるが、この配線は、ホールドタイムエラーが発生しているパスBだけでなく、パスA及びパスCにも共通しているパスである。そのため、ポイントP1に遅延挿入した場合、その遅延挿入による影響範囲は、図8の二点鎖線で示した部分、すなわち、パスA、パスB、パスCの全てのパスに影響を与えてしまう。
図9は、図7におけるポイントP2に迂回配線による遅延を挿入した場合の影響範囲を説明する図である。ポイントP2に係る配線は、パスBを構成する論理ゲート23と論理ゲート24とを接続する配線であり、他のパスへの分岐はない。そのため、ポイントP2に遅延挿入した場合の影響範囲は、図9の二点鎖線で示した部分のようにパスBにのみ影響を与えることになる。
図10は、図7におけるポイントP3に迂回配線による遅延を挿入した場合の影響範囲を説明する図である。ポイントP3に係る配線は、パスBを構成する論理ゲート24と論理ゲート27とを接続する配線であり、他のパスへの分岐はない。そのため、ポイントP3に遅延挿入した場合の影響範囲は、図10の二点鎖線で示した部分のようにパスBにのみ影響を与える。
図11は、図7におけるポイントP4に迂回配線による遅延を挿入した場合の影響範囲を説明する図である。ポイントP4に係る配線は、パスA、パスB、パスCに共通した配線であり、各パスのエンドポイントであるFF12の入力端子(B2.IN)に接続される配線である。そのため、ポイントP4に遅延挿入した場合の影響範囲は、図11の二点鎖線で示した部分のように、パスA、パスB、パスCの全てのパスに影響を与えてしまう。
図8〜図11で説明したように、図7に示す4つの各ポイント(P1〜P4)に遅延挿入した場合には、それぞれ影響範囲が異なる。ポイントP1〜ポイントP4の中で、遅延挿入による影響範囲が最も小さくなるのは、ポイントP2とポイントP3の2箇所であることが分かる。ポイントP2とポイントP3のいずれの配線も分岐がなく、上記条件2(分岐数が少ないこと)の条件を満たす。そのため、ポイントP2とポイントP3に関して、上記条件1(配線が短すぎないこと)と上記条件3(その配線を伝搬する信号波形に大きななまりがないこと)とを考慮して、より適切なポイントを選択する。このようにして選択されたポイントについて、セットアップタイムの遅延余裕度があれば(上記条件4)、この選択されたポイントが迂回配線処理による遅延挿入ポイントとなる。
尚、信号波形のなまりについて判定する際には、図3におけるスルーレート解析結果304(a)の情報を用いて判定することができる。また、セットアップタイムの遅延余裕度の判定に際しては、図3のスラック情報ファイル304(b)の情報を用いて判定することができる。
仮に上記条件1〜条件3を満たすポイントが見つかっても、そのポイントが上記条件4を満たさない場合、すなわち、セットアップタイムの遅延余裕度がない場合、そのポイントに遅延挿入するとセットアップタイムエラーを引き起こしてしまう。そのため、そのような場合には、ホールドタイムエラーの修正と合わせて、セットアップタイムの余裕度を増加させるための処理を行い、ホールドタイムエラーの修正に伴うセットアップタイムエラーが発生しないようにする。

ところで、複数のパスでホールドタイムエラーが発生しており、かつ、特定のネットが複数のパスのホールドタイムエラーに関与している場合がある。このような場合、複数のパスに共通する特定のネットに対してのみ迂回配線処理による遅延挿入をすることにより、複数のホールドタイムエラーを同時に改善できる場合がある。ただし、特定のネットを共有する複数パスそれぞれのホールドタイムエラーのエラー値の差が大きい場合には、迂回配線によって挿入する遅延値に注意する必要がある。つまり、前記特定のネットに対して、大きなホールドタイムエラーのエラー値を修正できるだけの挿入遅延を入れてしまうと、セットアップタイムの余裕度のないパスにおいて過度な遅延が挿入されてしまい、逆にセットアップタイムエラーを引き起こしてしまう場合がある。
この場合、特定のネットを共有するパスにおいてセットアップタイムエラーが起きない挿入遅延値の分だけ、その特定ネットに対して迂回配線処理による遅延挿入を行い、その挿入遅延では足りないパスに対しては、そのパス固有の別のポイントに追加の迂回配線処理による遅延挿入を行えばよい。尚、複数のパスに共通する特定のネットに対して修正を行わないで、個々のパスに固有のネットに対して迂回配線処理を行うようにしても良い。
図12は、複数のホールドタイムエラーが発生しているパスに共通したネットがある場合の例を説明する図である。図12(A)は、ホールドタイムエラーが発生しているタイミング検証対象のFF(不図示)に接続するパス上にある論理ゲート(BL_A1,BL_B1,BL_C1,BL_D1)どうしを接続するパスとして、パスAとパスBがある場合の例を示した図である。ホールドタイムエラーは、パスAとパスBのいずれのパスにおいても発生しているものとする。図12(A)に示すように、パスAとパスBはそれぞれ、論理ゲートBL_A1とBL_B1とを接続する配線を共有する。
ホールドタイムエラーが発生しているパスAとパスBのそれぞれについて、迂回配線処理を行う延長ポイントの候補を抽出する際、まずは個々のパス毎に延長ポイントの候補を抽出する。迂回配線処理を行う延長ポイントの候補を抽出した結果、例えば図12(B)に示すように、パスAについては論理ゲート33と34とを接続する配線が、パスBについては、論理ゲート31と32を接続する配線が選ばれたとする。
この場合、パスBについて選択された延長ポイントがパスAにも共通している。そのため、パスBについて選択された延長ポイントに対して、パスAでのホールドタイムエラーとパスBでのホールドタイムエラーの両方のエラーを解消できるだけの遅延を挿入しても問題ないか調べる。すなわち、パスAとパスBに共通するポイントに遅延挿入を行うことにより、パスAとパスBのいずれかのパスでセットアップタイムエラーを引き起こすことがないかを検討する。
パスAとパスBに共通するポイントに各パスのホールドタイムエラーを修正できるだけの遅延挿入をしても、その遅延挿入によって新たにセットアップタイムエラーを引き起こすことがなければ、この共通ポイントに対してのみ迂回配線処理を行う。
パスAとパスBに共通するポイントに各パスのホールドタイムエラーを修正できるだけの遅延挿入をするといずれかのパスでセットアップタイムエラーを引き起こしてしまう場合には、共通ポイントに対して小さい方のホールドタイムエラーを修正できるだけの遅延挿入を行う。そして、大きい方のホールドタイムエラーが出ているパスに対しては、共通ポイントに挿入した遅延値では足りない分の遅延値の分だけ、他のポイントに遅延挿入する。
このように、複数パスに共通するポイントとなる配線がある場合には、その共通ポイントにホールドタイムエラー修正用の遅延挿入を行うことで、全体としてホールドタイムエラー修正用の遅延挿入を最小限に抑えることが可能となる。

迂回配線処理によるホールドタイムエラー修正を行うポイントにどの程度の遅延値を挿入すればよいかについては、タイミング検証(図3のS133)の結果として出力されたホールドタイムエラーを解消できるだけの遅延値であればよい。また、半導体製造工程で生ずる製造ばらつきであるオンチップばらつき(OCV:On Chip Variation)等を考慮したマージン値をホールドタイムエラーの値に加えた値を、迂回配線処理による挿入遅延値としてもよい。
また、ホールドタイムエラーが発生しているパスに含まれるどのポイント(配線)に遅延挿入するかを検討するに当たっては、各ポイントを通る全てのパスについて、前記スラック情報ファイル(図3の304(b))を参照する。そして、ホールドタイムエラー修正用に挿入する遅延値が、スラック情報ファイル304(b)に格納されている関連するパスのセットアップタイムのスラック値よりも小さいか否かを判定する。ホールドタイムエラー修正用に挿入する遅延値が、遅延挿入ポイントを通る全てのパスのセットアップタイムのスラック値(余裕度)よりも小さい値であれば、新たなセットアップタイムエラーを引き起こすことはないので、その遅延挿入ポイントは採用し得ることになる。

迂回配線処理によるホールドタイムエラー修正を行う配線延長ポイント及び挿入遅延値が決まると、次に、実際にその挿入遅延値の分だけ配線遅延を大きくできる配線の延長距離を求める。配線の延長距離と延長された配線による挿入遅延との関係は、配線幅、配線長、配線容量等のパラメータを暫定的に決定することで、おおよその遅延値として求めることは可能である。しかし、迂回配線により過度な遅延値が挿入されてしまわないように、実配線に近い配線パターンを想定して、配線の延長距離に応じた遅延値をある程度正確に見積もる必要がある。
通常の遅延計算では、パスを構成する全てのネットをたどり、パスを構成する全てのセル遅延や配線遅延を求めて、それらの合計遅延値から所定のタイミング条件を満たすか否かを判定する。しかし、実際の配線処理を行う前では、実レイアウトパターンがどのようになるか不明であるため、正確な遅延値を求めることができない。また、実際に配線処理を行なって実配線に基づく容量抽出、遅延計算を行ってタイミング解析を行うと、多くの処理時間が必要となってしまう。
そのため、本実施例では、タイミング検証(図3のS133)時に一度計算した遅延情報を用いつつ、迂回配線による延長処理を行う配線については、仮想的に配線容量等のパラメータを設定して局所的に配線遅延を再計算して、実配線パターンを用いた計算に近い遅延値を求める。迂回配線により延長する配線に対する挿入遅延値の計算は、図3における簡易遅延計算(S139)の処理にて行う。この簡易遅延計算(S139)の詳細について図13を用いて説明する。
図13は、局所的な遅延計算によって迂回配線に必要な延長距離を求める処理を説明する図である。図13のフローでは、最初にS150で、暫定的に迂回配線させる延長距離を設定する。ここでは、迂回配線対象のネットを含むパスのホールドタイムエラーの値の大きさに応じて予め定めた延長距離を設定する。その際、ホールドタイムエラーの値のかかわらず、特定の小さな値の延長距離を設定するようにしてもよい。そして、S150の処理では、設定した延長距離と、迂回配線対象となる配線の実配線パターンにおける元の配線長とを加えた予測配線長401を出力する。
予測配線長401が求まると、図3における容量定義ファイル304(c)及びパスディレイ解析結果304(d)と(不図示)、図13に示す遅延計算に用いる各種パラメータとを用いて延長する対象となる配線の遅延値402を計算する(S152)。延長対象となる配線の遅延値402の計算を行う際には、迂回配線対象となる配線以外の配線やセル等については実際に配線済みの情報(304(c)、304(d))を用いて計算を行う(S152)。そして、迂回配線対象となる配線については、実際の配線層、配線幅、配線箇所の隣接条件等を考慮しつつ、各種パラメータに関する情報400を用いて仮想的な配線容量を設定して遅延計算を行う(S152)。S152の遅延計算で用いる各種パラメータに関する情報400の詳細については、図14を用いて説明する。
図14は、遅延計算に利用する情報を説明する図である。遅延計算を行う際、論理セル自体の遅延であるゲート遅延、及び配線遅延を計算する(図14(A))。配線遅延は、配線の配線長、配線幅、配線のシート抵抗といったパラメータ(図14(B))、及び、配線容量や配線の接続先のセルの入力端子容量(Cin)等のパラメータ(図14(C))を用いて計算する。ゲート遅延は、セル自体の遅延に加えてセルの出力負荷容量(CL)やセルの入力端子に入力される信号波形のなまり(Tsin)等のパラメータを用いて計算する。
尚、遅延計算を行う際の、温度、電圧、プロセス条件といった条件については、特定の条件における遅延値を計算するようにしてもよいし、例えば、ベスト条件とワースト条件の2ポイントを用いて遅延計算し、各条件で所望の遅延値となっているかを判断するようにしてもよい。
図13のフローに戻って、S152で計算した迂回配線の予測した遅延値402が求まると、求めた遅延値402と迂回配線前の元の遅延値との差分が期待する遅延増加分、すなわち、ホールドタイムエラーを修正できるだけの遅延値となっているかを確認する(S154)。S154において、期待する遅延値となっている場合には(S154 Yes)、その遅延値に対応する延長距離が、迂回配線対象ポイントの延長距離と成る。
S154で期待する遅延値が得られなかった場合(S154 No)、例えば、遅延値が足りない場合や、逆に大きすぎる場合には、再度S150の処理に戻って延長距離の追加又は削除を行って、予測配線長401を出力しなおし、再度S152〜S154を行う。そして、所望の延長距離が求まると、図3における配線パラメータ決定処理(S140)を行い、決定したパラメータをネット延長指示カード300に反映させる。図3のS137で抽出した迂回配線処理を行う全ての対象箇所の配線についての迂回配線を行うためのパラメータがネット延長指示カード300に反映されると、図3のS130の処理に移って、実際に迂回配線処理を行う。
迂回配線処理によるホールドタイムエラー修正(図3のS130)では、ネット延長指示カード300の情報と、既存のレイアウトデータが格納されているレイアウトDB301を用いて、迂回配線処理を行う。すなわち、ネット延長指示カード300に挙げられた全てのネットに対して、必要な延長距離の分だけ配線の延長処理を行う。この迂回配線処理によるホールドタイムエラー修正(図3のS130)のための配線延長処理では、特に必要のない限り、セル配置やホールドタイムエラーに関係しない配線については変更しないようにする。ホールドタイムエラーに関係するパスの一部の配線のみ迂回配線による遅延挿入して、新たなタイミングエラーを発生させること無くホールドタイムエラーの修正を行うためである。以下、迂回配線処理を行う方法の例を図15及び図16を用いて説明する。
図15は、迂回配線処理を行う方法の例として、仮想的な配線禁止領域を作成して迂回配線する方法を説明する図である。図15に示す迂回配線の方法では、まず、迂回配線を行う対象の配線50に対して、迂回配線を引くことができる一定範囲の領域であるフレーム40を暫定的に設定する。図15中、斜線で囲まれた領域60、61は、フレーム40内に存在する実際の配線禁止領域であるものとする。また、フレーム40で囲まれた領域の中での、迂回配線対象の配線50の始点と終点をそれぞれ“S”と“T”で示す。
図15に示す迂回配線の方法では、迂回配線対象の配線50の“S”と“T”の間の配線を延長する際に、延長距離を考慮した仮想的な配線禁止領域62を配線50をまたぐように設定する。図15では、仮想的な配線禁止領域62の上側は、フレーム40の上辺まで達しているので、この仮想的な配線禁止領域62を考慮したレイアウトを行うと、配線50を下側へ迂回配線することになる。この場合において、配線50の配線の下側の配線禁止領域62の左右の両辺の長さ及び下辺の長さの和が、ネット延長指示カード300に記憶された延長距離となるように仮想的な配線禁止領域62を設定する。このように設定された仮想的な配線禁止領域62を回避するように配線50を引きなおすことにより、迂回配線処理を行う。
図15では、仮想的な配線禁止領域62に加えて、配線禁止領域60、61も存在するので、配線50を迂回配線処理させる際には、破線51で示す配線禁止領域60〜62の各領域を通らない迂回経路を通って配線50が引かれることになる。このようにして得られた破線51で示される迂回配線の配線長が、所望の延長距離だけ延ばされた配線長になっていれば、配線50に対する迂回配線処理が完了することになる。
仮想的な配線禁止領域62以外の配線禁止領域60、61の影響等により、配線50に対する延長距離として期待していた延長距離よりも長い配線(51)になってしまう場合も発生し得る。そのような場合には、仮想的な配線禁止領域62の位置を変更したり、仮想的な配線禁止領域62の大きさを変更することにより、所望の延長距離だけ延ばされた迂回配線51を引くことが可能となる。
また、仮想的な配線禁止領域62と既存の配線禁止領域60が重なるような場合には、重なっていない部分の配線禁止領域60の外延部分の長さを考慮して、仮想的な配線禁止領域62の大きさを決定するようにしてもよい。このようにすることで、既存の配線禁止領域を考慮したより正確な迂回配線処理を行うことが可能となる。
仮に、暫定的に設定したフレーム40内で、適切な迂回配線経路が得られない場合には、フレーム40の位置を変更したり、フレーム40の領域を広げて、再度、仮想的な配線禁止領域62を設定し、所望の延長距離が得られる迂回配線できるか否かを試みるようにすればよい。あるいは、迂回配線処理を行なった結果を記憶しておき、フレーム40の領域を広げて、足りない配線距離の分だけ、さらに別の仮想的な配線禁止領域を追加設定して、配線をさらに迂回配線させて引き伸ばすこともできる。
また、設定したフレームが十分広い場合には、例えば、図15の配線50の上下両側に迂回配線できる領域が得られるように仮想的な配線禁止領域62を設定し、より、期待する延長距離に近い延長距離が得られる迂回配線経路を用いるようにしてもよい。
図16は、迂回配線処理を行う方法の例として、迂回地点を経由させて迂回配線する方法を説明する図である。図16に示す方法では、まず、フレーム40で囲まれた領域をマス目状に所定の大きさの領域に分ける。この1マスの大きさは、レイアウト設計処理を行う際の最小グリッド幅を基準に決定してもよいし、任意の長さを基準に決定してもよい。そして、フレーム40で囲まれた領域内の前記各マス目状の領域に対して、配線50の始点(S)と終点(T)の各ポイントから、各マス目単位で縦横方向に何マス移動した位置にあるかを示すラベル情報を設定する。この各マス目に設定されたラベル情報は、フレーム40内の配線50の始点(S)及び終点(T)からの距離の情報を、所定の長さを単位としたマンハッタン長で表したものに相当する。
このようにして設定されたラベル情報を用いて、ネット延長指示カード300に記憶された迂回配線処理対象となる配線の延長距離の要件を満たす迂回配線通過ポイントを決定し、決定した迂回配線通過ポイントを通過するように配線50の配線を修正する。この様子を図16の例を用いて具体的に説明する。
図16において、フレーム40で囲まれた領域内の配線50の始点(S)から終点(T)までの長さが18(長さの単位は任意)であったとする。また、この配線50の元の長さと、ネット延長指示カード300で指示する延長距離の長さを加えた長さが42であったとする。
この場合、配線50に対する迂回配線通過ポイントを決定する方法として、例えば、配線50の始点(S)及び終点(T)のそれぞれのポイントから、配線50に対して期待する配線長である42の半分の値である21の距離だけ離れた位置を探索する。そして、配線50の始点(S)及び終点(T)のそれぞれのポイントから21の距離離れた各位置が接するポイントが見つかると、そのポイントを迂回配線通過ポイントとする。図16では、配線50に対する迂回配線通過ポイントを三角印70で示す。
尚、図16では、迂回配線通過ポイント70を、配線50の始点(S)及び終点(T)の各ポイントから等間隔にあるポイントに設定した例を示しているが、迂回配線後の長さが42であれば足りる。従って、Sからの距離とTからの距離との和が42となるポイントでさえあれば、このSとTからの距離の和が42になるポイントを迂回配線通過ポイントとすることができる。
図16に示すように、フレーム40内に配線禁止領域60、61があるような場合には、予めその領域に対しては、S、Tからの配線距離に関するラベル情報を設定しないようにする。そのようにすることで、誤って配線禁止領域60、61内に迂回配線通過ポイントを設定してしまうことを防止することができる。
迂回配線通過ポイント(例えば図16の三角印70)が決まると、その迂回配線通過ポイントから、配線50の始点(S)と終点(T)のそれぞれのポイントへ逆トレースして配線することにより、例えば配線経路51を通過する迂回配線処理済みの配線50を得ることができる。仮に、暫定的に設定したフレーム40内で、適切な迂回配線経路が得られない場合には、フレーム40の位置を変更したり、フレーム40の領域を広げて、再度、迂回配線通過ポイント70を設定し、所望の延長距離が得られる迂回配線できるか否かを試みるようにすればよい。
このように、図16に示す迂回配線の方法では、フレーム40で囲まれた領域内の迂回配線処理対象となる配線50の始点(S)及び終点(T)からの距離の情報を用いて、迂回配線通過ポイントを決定し、決定した通過ポイントを通過するように配線50を修正する。そのようにすることで、所望の配線距離になるように迂回配線処理対象の配線を延長することが可能となり、配線の延長距離に応じた遅延増加によって、その配線を含むパスで発生しているホールドタイムエラーを修正することが可能となる。
迂回配線処理を行う方法の例として、図15及び図16に示す2つの方法を示したが、本発明に係る迂回配線処理はこれらの方法に限定されるものではなく、他の方法による迂回配線処理を用いることも可能である。

図17は、実施例に係るレイアウト設計処理を行うためのコンピュータのハードウェア構成例を示した図である。コンピュータ70は、CPU(Central Processing Unit)71、メモリ72、記憶装置73、ネットワークインターフェース回路74、キーボードやマウス等の入力装置とのインターフェース回路75、ディスプレイ等の出力装置とのインターフェース回路76を有する。また、コンピュータ70の外部には、所定のネットワーク通信回線78を介してネットワーク上の記憶装置79が接続される。
記憶装置73やネットワーク上の記憶装置79は、磁気ディスク装置、光ディスク装置、光磁気ディスク装置あるいは半導体記憶装置を含み、コンピュータ読み取り可能な記録媒体を扱うドライブ装置も含む。ドライブ装置が扱う記録媒体としては、磁気テープ、メモリカード、光ディスク(CD−ROM,DVD−ROM,等)、光磁気ディスク(MO,MD,等)といった、任意のコンピュータ読み取り可能な記録媒体を使用することができる。
記憶装置73やネットワーク上の記憶装置79は、レイアウト設計の対象となる回路情報70、レイアウト処理で使用するライブラリ71、及び、レイアウト処理を行うためのプログラム72等を格納する。CPU71は、バス77や各インターフェース回路(74〜76)を介して、メモリ72、記憶装置73、79、及び各種入出力装置等にアクセスし、記憶装置73や記憶装置79に格納された各種レイアウト設計処理プログラム、又は、メモリ72等にロードされた各種レイアウト設計処理プログラムを実行する。本実施例において説明した各種レイアウト設計処理等は、図17に示すコンピュータ70が有するCPU71により実行される。
すなわち、本実施例に係るレイアウト設計処理プログラムは、タイミング検証(図3のS133)の結果情報304から迂回配線処理によってホールドタイムエラーを改善できる配線を自動的に抽出し(S135、S137)、抽出した配線に対して配線延長する距離を計算する(S139)。そして、レイアウト設計処理プログラムは、計算した配線毎の迂回配線を行うためのパラメータを決定し(S140)、決定したパラメータをネット延長指示カード300に出力する。レイアウト設計処理プログラムによる自動配線処理(S130)は、ネット延長指示カード300に基づいて、迂回配線処理を行い、ホールドタイムエラーを修正するための遅延挿入を行う。レイアウト設計処理プログラムは、迂回配線処理後、再度タイミング検証を行い(S133)、タイミングエラーが無くなるまで、これらの処理(S130〜S133、S135〜S140)を繰り返す。
以上に述べたとおり、本実施例によれば、レイアウト設計終盤でのタイミング検証で残った小さな値のホールドタイムエラーを、かつタイミングエラーが発生していない他の回路に影響を与えることなく、最小限の遅延挿入により修正することが可能となる。
本発明は、半導体集積回路のレイアウト設計に利用することができる。
11、12 FF
21〜34 論理ゲート
40 フレーム
50 迂回配線対象の配線
51 迂回配線経路
60、61 配線禁止領域
62 仮想的な配線禁止領域
70 迂回配線通過ポイント
300 ネット延長指示カード
301 レイアウトDB
302 タイミング解析DB
303 セル・ライブラリ
304 各種解析結果・設定ファイル

Claims (8)

  1. 半導体集積回路の配置、配線及びタイミング修正を行う集積回路設計装置であって、
    半導体集積回路の配置、配線を行なった結果から遅延情報を抽出し、タイミング検証を行うタイミング検証手段と、
    前記タイミング検証手段によるタイミング検証を行った結果について、発生したホールドタイムエラーの値が基準値よりも小さいか否かを判定する判定手段と、
    前記判定手段により、ホールドタイムエラーの値が基準値よりも小さいと判定した場合に、ホールドタイムエラーが発生しているパスを構成する配線の中から、迂回回線として配線を引き出すための余地があり、分岐数が所定値以下であり、該配線を伝搬する信号波形のなまりがスルーレート基準値以内であり、該配線を経由するパスの遅延が所定値以下である、これらの抽出条件に基づいて遅延の挿入可能な配線を抽出する抽出手段と、
    前記抽出手段により抽出した配線に対して、当該配線を含むパスのホールドタイムエラーを改善しセットアップタイムエラーを生じさせない挿入遅延値に対応する配線延長距離を算出する延長距離算出手段と、
    前記延長距離算出手段により算出した延長距離の分だけ、前記抽出手段により抽出した配線を延長する配線延長処理を行う配線処理手段と
    を有することを特徴とする集積回路設計装置。
  2. 前記判定手段は、ホールドタイムエラーの値と比較する基準値として、ホールドタイムエラーの修正に使用するディレイバッファの遅延値の中で最小の遅延値を用いること
    を特徴とする請求項1記載の集積回路設計装置。
  3. 前記抽出手段は、発生した全てのホールドタイムエラーが前記判定手段により基準値よりも小さいと判定された場合にのみ、前記配線延長処理を行う対象となる配線の抽出を行うこと
    を特徴とする請求項1記載の集積回路設計装置。
  4. 前記延長距離算出手段はさらに、
    算出した配線延長距離の分だけ配線を延長した場合の配線遅延を、当該配線の配線長、配線幅、配線容量を暫定的に設定して計算する延長配線遅延計算手段と、
    前記抽出手段により抽出した配線について、当該配線を含むパスのホールドタイムエラーを解消できる挿入遅延値に対応する配線延長距離を算出した後に、
    前記延長配線遅延計算手段により計算した当該配線についての遅延値と、当該配線を一部に有するパスに含まれる当該配線以外のセルや配線の実レイアウト処理結果に基づく遅延値とを用いて、当該配線を延長した場合のパス遅延値を予測するパス遅延予測手段と、
    前記パス遅延予測手段により予測されたパス遅延値が、前記ホールドタイムエラーを解消できる遅延値となっているかを判定し、ホールドタイムエラーを解消できる遅延値となっていない場合には、前記算出した配線延長距離を変更して、再度、延長配線遅延計算手段に配線遅延を計算させる配線延長距離変更手段と
    を有することを特徴とする請求項1乃至3のいずれかに記載の集積回路設計装置。
  5. 前記配線処理手段は、前記延長距離算出手段により算出した延長距離の分だけ、前記抽出手段が抽出した配線を迂回配線させる仮想的な配線禁止領域を設定して当該配線を延長する配線延長処理を行うこと
    を特徴とする請求項1乃至4のいずれかに記載の集積回路設計装置。
  6. 前記配線処理手段は、
    前記抽出手段が抽出した配線を延長する処理を行うための領域であるフレームを設定するフレーム設定手段と、
    前記フレーム設定手段により設定されたフレームを、所定の長さの辺を有する複数の分割領域に分割するフレーム分割手段と、
    前記分割手段により分割された各分割領域が、前記抽出手段により抽出した配線の前記フレーム内における始点から上下左右に何個分移動した箇所にあるかを表す第1のラベル値を、各分割領域に設定する第1のラベル設定手段と、
    前記各分割領域が、前記抽出手段により抽出した配線の前記フレーム内における終点から上下左右に何個分移動した箇所にあるかを表す第2のラベル値を、各分割領域に設定する第2のラベル設定手段と、
    対応する前記第1のラベル値と前記第2のラベル値とを加算した値が、前記抽出手段により抽出した配線の当該フレーム内における配線長と前記延長距離算出手段により算出した配線延長距離とを加えた長さに相当するラベル値に等しくなる分割領域に対して、前記配線を延長する場合に配線を通過させる迂回配線通過ポイントを設定する通過ポイント設定手段と
    を有し、
    前記配線処理手段は、前記通過ポイント設定手段により設定された迂回配線通過ポイントを通過するように、前記抽出手段により抽出した配線を修正する
    ことを特徴とする請求項1乃至5のいずれかに記載の集積回路設計装置。
  7. 半導体集積回路の配置、配線及びタイミング修正を行う集積回路設計方法であって、
    半導体集積回路の配置、配線を行なった結果から遅延情報を抽出し、タイミング検証を行うタイミング検証工程と、
    前記タイミング検証工程によるタイミング検証を行った結果について、発生したホールドタイムエラーの値が基準値よりも小さいか否かを判定する判定工程と、
    前記判定工程により、ホールドタイムエラーの値が基準値よりも小さいと判定した場合に、ホールドタイムエラーが発生しているパスを構成する配線の中から、迂回回線として配線を引き出すための余地があり、分岐数が所定値以下であり、該配線を伝搬する信号波形のなまりがスルーレート基準値以内であり、該配線を経由するパスの遅延が所定値以下である、これらの抽出条件に基づいて遅延の挿入可能な配線を抽出する抽出工程と、
    前記抽出工程により抽出した配線に対して、当該配線を含むパスのホールドタイムエラーを改善しセットアップタイムエラーを生じさせない挿入遅延値に対応する配線延長距離を算出する延長距離算出工程と、
    前記延長距離算出工程により算出した延長距離の分だけ、前記抽出工程により抽出した配線を延長する配線延長処理を行う配線処理工程と
    をコンピュータに行わせることを特徴とする集積回路設計方法。
  8. 半導体集積回路の配置、配線及びタイミング修正を行う集積回路設計プログラムであって、
    半導体集積回路の配置、配線を行なった結果から遅延情報を抽出し、タイミング検証を行うタイミング検証工程と、
    前記タイミング検証工程によるタイミング検証を行った結果について、発生したホールドタイムエラーの値が基準値よりも小さいか否かを判定する判定工程と、
    前記判定工程により、ホールドタイムエラーの値が基準値よりも小さいと判定した場合に、ホールドタイムエラーが発生しているパスを構成する配線の中から、迂回回線として配線を引き出すための余地があり、分岐数が所定値以下であり、該配線を伝搬する信号波形のなまりがスルーレート基準値以内であり、該配線を経由するパスの遅延が所定値以下である、これらの抽出条件に基づいて遅延の挿入可能な配線を抽出する抽出工程と、
    前記抽出工程により抽出した配線に対して、当該配線を含むパスのホールドタイムエラーを改善しセットアップタイムエラーを生じさせない挿入遅延値に対応する配線延長距離を算出する延長距離算出工程と、
    前記延長距離算出工程により算出した延長距離の分だけ、前記抽出工程により抽出した配線を延長する配線延長処理を行う配線処理工程と
    をコンピュータに行わせることを特徴とする集積回路設計プログラム
JP2010164499A 2010-07-22 2010-07-22 集積回路設計装置、集積回路設計方法、及び集積回路設計プログラム Expired - Fee Related JP5609364B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010164499A JP5609364B2 (ja) 2010-07-22 2010-07-22 集積回路設計装置、集積回路設計方法、及び集積回路設計プログラム
US13/177,111 US8327308B2 (en) 2010-07-22 2011-07-06 Method and apparatus for designing integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010164499A JP5609364B2 (ja) 2010-07-22 2010-07-22 集積回路設計装置、集積回路設計方法、及び集積回路設計プログラム

Publications (2)

Publication Number Publication Date
JP2012027630A JP2012027630A (ja) 2012-02-09
JP5609364B2 true JP5609364B2 (ja) 2014-10-22

Family

ID=45494589

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010164499A Expired - Fee Related JP5609364B2 (ja) 2010-07-22 2010-07-22 集積回路設計装置、集積回路設計方法、及び集積回路設計プログラム

Country Status (2)

Country Link
US (1) US8327308B2 (ja)
JP (1) JP5609364B2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2012124117A1 (ja) * 2011-03-17 2014-07-17 富士通株式会社 タイミングエラー除去方法、設計支援装置、及びプログラム
US9064063B1 (en) * 2011-12-30 2015-06-23 Cadence Design Systems, Inc. Methods, systems, and articles of manufacture for implementing interactive, real-time checking or verification of complex constraints
US8694943B1 (en) 2011-12-30 2014-04-08 Cadence Design Systems, Inc. Methods, systems, and computer program product for implementing electronic designs with connectivity and constraint awareness
US8595662B1 (en) 2011-12-30 2013-11-26 Cadence Design Systems, Inc. Methods, systems, and articles of manufacture for implementing a physical design of an electronic circuit with automatic snapping
US8645902B1 (en) 2011-12-30 2014-02-04 Cadence Design Systems, Inc. Methods, systems, and computer program products for implementing interactive coloring of physical design components in a physical electronic design with multiple-patterning techniques awareness
US9053289B1 (en) 2012-04-12 2015-06-09 Cadence Design Systems, Inc. Method and system for implementing an improved interface for designing electronic layouts
US10273069B2 (en) * 2013-08-13 2019-04-30 Silgan Dispensing Systems Corporation Blister packaging
JP5881655B2 (ja) * 2013-09-06 2016-03-09 株式会社東芝 半導体集積回路装置
US9135389B2 (en) * 2013-09-25 2015-09-15 United Microelectronics Corporation Clock skew adjusting method and structure
CN104573146B (zh) * 2013-10-16 2018-01-23 联华电子股份有限公司 时钟信号传输调整方法及相关集成电路结构
US9165105B2 (en) * 2013-12-13 2015-10-20 Taiwan Semiconductor Manufacturing Co., Ltd. Rule checking for confining waveform induced constraint variation in static timing analysis
US9405880B2 (en) * 2014-05-16 2016-08-02 Taiwan Semiconductor Manufacturing Company Limited Semiconductor arrangement formation
CN112736027A (zh) * 2019-10-14 2021-04-30 台湾积体电路制造股份有限公司 具有约束金属线布置的集成电路

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11282896A (ja) * 1998-03-31 1999-10-15 Fujitsu Ltd タイミングマージンエラー対処方法、装置、及び記憶媒体
JP4031905B2 (ja) 2000-11-09 2008-01-09 富士通株式会社 回路設計装置及び回路設計方法
JP4218924B2 (ja) 2001-02-15 2009-02-04 株式会社日立製作所 半導体集積回路の設計システム
JP4237434B2 (ja) * 2001-11-26 2009-03-11 富士通マイクロエレクトロニクス株式会社 集積回路のホールドタイムエラー修正方法及びその修正プログラム
JP2006154951A (ja) * 2004-11-25 2006-06-15 Fujitsu Ltd 検証方法及び検証装置
JP2007335498A (ja) * 2006-06-13 2007-12-27 Matsushita Electric Ind Co Ltd 半導体集積回路の設計方法およびこれを用いて形成された半導体集積回路
JP4993362B2 (ja) * 2007-06-26 2012-08-08 ルネサスエレクトロニクス株式会社 半導体集積回路の自動遅延調整方法

Also Published As

Publication number Publication date
US20120023470A1 (en) 2012-01-26
US8327308B2 (en) 2012-12-04
JP2012027630A (ja) 2012-02-09

Similar Documents

Publication Publication Date Title
JP5609364B2 (ja) 集積回路設計装置、集積回路設計方法、及び集積回路設計プログラム
US8788999B1 (en) Automatic routing system with variable width interconnect
US8171447B1 (en) Automatically routing nets according to current density rules
US8966425B1 (en) Clock tree generation and routing
US8010928B1 (en) Automatically routing nets according to parasitic constraint rules
US7823113B1 (en) Automatic integrated circuit routing using spines
US8984470B2 (en) Method and apparatus for performing redundant via insertion during circuit design
US8095903B2 (en) Automatically routing nets with variable spacing
US9171124B2 (en) Parasitic extraction in an integrated circuit with multi-patterning requirements
JP5883676B2 (ja) Lsi設計方法
JP2006323643A (ja) 半導体集積回路のフロアプラン設計プログラム、フロアプラン設計装置、および設計方法
TWI410819B (zh) 考量元件與佈線對稱之類比佈局方法
US20030023938A1 (en) LSI layout method and apparatus for cell arrangement in which timing is prioritized
TWI719090B (zh) 用於修改界定電路組件之標準單元布局之電腦實施系統及方法
Lee et al. Contango: Integrated optimization of SoC clock networks
US10331840B2 (en) Resource aware method for optimizing wires for slew, slack, or noise
US7373628B1 (en) Method of automatically routing nets using a Steiner tree
CN109074412B (zh) 使用自动焊接和自动克隆的电路中的连接的交互式布线
US20070067748A1 (en) Method and system for enhancing circuit design process
US10817641B1 (en) Method and system to implement topology integrity throughout routing implementations
US20120174052A1 (en) Routing
US6931610B1 (en) Method for rapid estimation of wire delays and capacitances based on placement of cells
US10551431B1 (en) EM-compliance topology in a tree router
US12032893B2 (en) Optimizing place-and-routing using a random normalized polish expression
US8151232B2 (en) Repeater driven routing methodology

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130507

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140213

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140818

R150 Certificate of patent or registration of utility model

Ref document number: 5609364

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees