JP6613971B2 - 情報処理装置、設計支援方法、および設計支援プログラム - Google Patents

情報処理装置、設計支援方法、および設計支援プログラム Download PDF

Info

Publication number
JP6613971B2
JP6613971B2 JP2016046171A JP2016046171A JP6613971B2 JP 6613971 B2 JP6613971 B2 JP 6613971B2 JP 2016046171 A JP2016046171 A JP 2016046171A JP 2016046171 A JP2016046171 A JP 2016046171A JP 6613971 B2 JP6613971 B2 JP 6613971B2
Authority
JP
Japan
Prior art keywords
path
wiring
processing apparatus
information processing
connection
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
JP2016046171A
Other languages
English (en)
Other versions
JP2017162200A (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 JP2016046171A priority Critical patent/JP6613971B2/ja
Publication of JP2017162200A publication Critical patent/JP2017162200A/ja
Application granted granted Critical
Publication of JP6613971B2 publication Critical patent/JP6613971B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は、情報処理装置、設計支援方法、および設計支援プログラムに関する。
従来、半導体集積回路の設計では、配置配線前にタイミング解析を実行する。そして、レイアウト設計では、例えば、設計者が重要なセルを手作業で配置した後に、自動配置配線を行う。さらに、半導体集積回路の設計では、例えば、自動配置配線後に再度静的タイミング解析を行う。ここで、静的タイミング解析によって解析されるタイミングエラーとしては、例えば、セットアップタイムエラーやホールドタイムエラーがある。
先行技術としては、例えば、ホールドタイムエラーが起こる可能性のあるパスに対して、入力端子と出力端子との間が内部配線で接続された配線セルを挿入し、挿入後のレイアウトデータに対してタイミング検証を行った結果より、配線セルをディレイセルに変換する技術がある(例えば、以下特許文献1参照。)。また、例えば、半導体集積回路のレイアウト設計において、ネットリストからセットアップタイムを解析してクリティカルパスを抽出し、クリティカルパスの配線セルを変更してレイアウトを生成する技術がある(例えば、以下特許文献2参照。)。また、例えば、レイアウト設計において初期配置を行った後に、仮想的な配線によってクリティカルパスを抽出する技術がある(例えば、以下特許文献3参照。)。
特開平4−107844号公報 特開2004−111672号公報 特開平7−282108号公報
しかしながら、従来技術では、レイアウトした後のレイアウトデータでは、セル間の配線による配線負荷が増加するため、レイアウトした後の静的タイミング解析の解析結果と、レイアウトする前の静的タイミング解析の解析結果と、の乖離が広がる。このため、レイアウト後の静的タイミング解析の解析結果においてタイミングエラーが多くなり、レイアウト後にタイミングエラーを解消するために設計者が手作業でレイアウトを修正するという問題点がある。
1つの側面では、本発明は、レイアウト設計の効率化を図ることができる情報処理装置、設計支援方法、および設計支援プログラムを提供することを目的とする。
本発明の一側面によれば、設計の対象回路内のセルとセル間の接続関係を示す回路情報に基づいて静的タイミング解析を行い、前記対象回路内の各パスについて、第1のフリップフロップから第2のフリップフロップまでを含むパス上の各セルの接続先および接続元のうちの、前記第1のフリップフロップを含む前記対象回路内の第1のモジュールと異なる前記対象回路内の第2のモジュールに含まれる前記静的タイミング解析によって得られる接続先および接続元の数に基づいて、前記パスの配線に関する遅延量を導出し、前記各パスから、導出した前記パスの配線に関する遅延量に基づきクリティカルパスを抽出する制御部を有する情報処理装置、設計支援方法、および設計支援プログラムが提案される。
本発明の一態様によれば、レイアウト設計の効率化を図ることができる。
図1は、本発明にかかる情報処理装置の一動作例を示す説明図である。 図2は、配置配線前の遅延量と配置配線後の遅延量とが異なる例を示す説明図である。 図3は、情報処理装置のハードウェア構成例を示すブロック図である。 図4は、情報処理装置の機能的構成例を示すブロック図である。 図5は、記憶部の記憶例を示す説明図である。 図6は、他モジュール接続ネット例を示す説明図である。 図7は、スラックの余裕度と重みの対応表例を示す説明図である。 図8は、スラックの重みの算出例を示す説明図である。 図9は、項目ごとの影響度例を示す説明図である。 図10は、配線の遅延の余裕度と重みの対応表例を示す説明図である。 図11は、配線の遅延の重みの算出例を示す説明図である。 図12は、優先度の算出例を示す説明図である。 図13は、入力画面例を示す説明図である。 図14は、出力画面例を示す説明図である。 図15は、情報処理装置による設計支援処理手順例を示すフローチャート(その1)である。 図16は、情報処理装置による設計支援処理手順例を示すフローチャート(その2)である。 図17は、図15に示すクリティカルパス抽出処理手順例を示すフローチャートである。 図18は、図17に示すスラックの余裕度に応じた重み付け処理手順例を示すフローチャートである。 図19は、図17に示す遅延量の余裕度に応じた重み付け処理手順例を示すフローチャートである。 図20は、図17に示すパスの優先度の導出処理手順例を示すフローチャートである。
以下に添付図面を参照して、本発明にかかる情報処理装置、設計支援方法、および設計支援プログラムの実施の形態を詳細に説明する。
図1は、本発明にかかる情報処理装置の一動作例を示す説明図である。情報処理装置100は、例えば、レイアウト前のクリティカルパスを抽出してレイアウト設計を支援するコンピュータである。
上述したように、レイアウト設計では、例えば、重要なセルを設計者が手作業で配置した後に、自動配置配線を行う。さらに、半導体集積回路の設計では、例えば、自動配置配線後に再度静的タイミング解析を行う。
ここで、静的タイミング解析とは、半導体集積回路内のセルやセル間の接続関係を示す回路情報111に基づいて静的にパスを解析して、タイミングを解析する技術である。ここで、パスとは、対象回路101の外部入力端子からフリップフロップ(以下、FF(Flip Flop)と称する。)までの経路と、始点のFFから終点のFFまでの経路と、FFから対象回路101の外部出力端子までの経路と、を示す。外部入力端子や外部出力端子には、例えば、各検証時にFFを仮想的に設けてもよいため、パスについては、FF間パスとも称する。
静的タイミング解析では、パスについて最大遅延量と最小遅延量を解析し、最小遅延量が終点のFFのホールド時間よりも短い場合は、パスがホールドタイムエラーであると判定される。そして、最大遅延量が終点のFFのセットアップ時間とクロック周期の和よりも遅い場合、パスがセットアップエラーであると判定される。
従来技術では、レイアウトした後のレイアウトデータでは、セル間の配線による配線負荷が増加するため、レイアウトした後の静的タイミング解析の解析結果と、レイアウトする前の静的タイミング解析の解析結果と、の乖離が広がる。このため、レイアウト後の静的タイミング解析の解析結果においてタイミングエラーが多くなり、レイアウト後にタイミングエラーを解消するために設計者が手作業でレイアウトを修正するため、設計の工数が増大する。
本実施の形態では、配置配線前の回路情報111に基づく静的タイミング解析で得た他モジュールと接続するパス上のセルの接続線の数に基づき算出したパスごとの配線の遅延量に基づいてクリティカルパスを抽出する。
これにより、設計者が、抽出したクリティカルパスを優先的に配置配線することにより、クリティカルパスについての配線の遅延量の低減を図ることができ、セットアップエラーの抑制を図ることができる。したがって、レイアウト設計の効率化を図ることができる。レイアウト設計の効率化を図るとは、例えば、設計者の工数の低減を図ることである。例えば、タイミングエラーを解消するために設計者が手作業でレイアウトを修正する回数の低減を図ることができる。
まず、情報処理装置100は、例えば、設計の対象回路101内のセルとセル間の接続関係を示す回路情報111に基づいて静的タイミング解析を行う。ここで、回路情報111は、例えば、ネットリストを含む。
つぎに、情報処理装置100は、例えば、対象回路101内の各パスについて、他モジュール接続ネット数に基づいて、パスの配線に関する遅延量を導出する。すなわち、情報処理装置100は、パスごとにパスの配線に関する遅延量を導出する。パスは、例えば、第1のFFから第2のFFによって形成される。ここで、接続線はセル間の接続線については、ネットとも称する。他モジュール接続ネット数とは、第1のFFから第2のFFまでの間の各セルの接続先および接続元のうちの、第1のFFを含む対象回路101内の第1のモジュールと異なる対象回路101内の第2のモジュールに含まれる接続先および接続元の数である。換言すると、接続先および接続元の数は、例えば、パス上のいずれかのセルに接続されるネットのうち第2のモジュール内に含まれるセルに接続されるネットの数である。ここで、他モジュール接続ネット数は、静的タイミング解析によって得られる。パスの配線に関する遅延量とは、配線が有する抵抗および容量や、隣接する配線との間の容量などによって生じる遅延である。パスの配線に関する遅延量は、省略してパスの配線の遅延量や配線の遅延量とも称する。
図1の例では、対象回路101は、パスp1とパスp2とを含む。パスp1についての第1のFFを含む第1のモジュールは、モジュールmBである。そして、パスp1上のセルについての接続線n1と接続線n2とは接続元がモジュールmAに含まれる。このため、パスp1についての他モジュール接続ネット数は、太線で表されるネットn1とネットn2との2つである。
また、パスp2についての第1のFFを含む第1のモジュールは、モジュールmBである。パスp2上のセルについての接続線n3は接続元がモジュールmAに含まれる。このため、パスp2についての他モジュール接続ネット数は、太線で表されるネットn3の1つである。
そして、図1の例では、他モジュール接続ネット1つあたりの遅延量をdvとする。このため、情報処理装置100は、パスp1についての配線の遅延量を2dvとし、パスp2についての配線の遅延量をdvとする。
つぎに、情報処理装置100は、複数のパスから、導出した遅延量に基づきクリティカルパスを抽出する。図1の例では、閾値をdvとし、情報処理装置100は、複数のパスから、導出した配線の遅延量がdvより大きいパスをクリティカルパスとして抽出する。このため、図1の例では、パスp1が抽出される。
このように、他のモジュールを介して配線されるために配線の遅延量が多くなり、セットアップエラーを起こしうるパスをクリティカルパスとして抽出することができる。さらに、クリティカルパスを優先的に配置配線すれば、パス上の配線の遅延量の低減を図ることができるため、セットアップエラーの抑制を図ることができる。
ここで、パスを形成する第1のFFは、送信FF、始点FF、前段のFFとも称し、パスを形成する第2のFFは、受信FF、終点FF、後段のFFとも称する。
図2は、配置配線前の遅延量と配置配線後の遅延量とが異なる例を示す説明図である。回路200例では、FF−A〜FF−Fと、セルc1〜セルc8と、を有する。ここで、回路200例におけるaからmは、接続線であり、ネットとも称する。ネットは、配置配線が行われると、セル間を接続する配線となる。
図2には、FF−AからFF−Fまでの間のパスと、FF−BからFF−Fまでの間のパスと、FF−EからFF−Fまでの間のパスと、の各々について、配置配線前のパスの遅延量の例と、配置配線後のパスの遅延量の例と、を示す。
表201に示すように、配置配線前のディレイ例では、各パスの遅延量はセルの遅延量の合計値である。このため、FF−AからFF−Fまでの間のパスについての合計遅延量は1[ns]である。FF−BからFF−Fまでの間のパスについての合計遅延量は1[ns]である。FF−EからFF−Fまでの間のパスについての合計遅延量は0.5[ns]である。
また、表202に示すように、配置配線後のディレイ例では、各パスの遅延量は、セルの遅延量およびセル間の配線の遅延量と、の合計値である。このため、FF−AからFF−Fまでの間のパスについての合計遅延量は1.7[ns]である。FF−BからFF−Fまでの間のパスについての合計遅延量は1.72[ns]である。FF−EからFF−Fまでの間のパスについての合計遅延量は1.06[ns]である。セルc1については、入力配線aと入力配線bとの線長が短いため、配置配線後のセルc1の遅延量が、配置配線前のセルc1の遅延量に対して±0.1[ns]である。セルc8については、入力配線iと入力配線lとの線長が長いため、配置配線後のセルc8の遅延量が、配置配線前のセルc8の遅延量に対して±0.4[ns]である。
このように、配線の遅延量と配線負荷によるセルの遅延量の増減とにより、配置配線前のパスの遅延量と配置配線後のパスの遅延量とには乖離がある。
(情報処理装置100のハードウェア構成例)
図3は、情報処理装置のハードウェア構成例を示すブロック図である。情報処理装置100は、PC(Personal Computer)などであってもよいし、サーバなどであってもよく、特に限定しない。また、情報処理装置100は、例えば、VDI(Virtual Desktop Infrastructure)システムなどに適用されてもよい。例えば、サーバが情報処理装置100による処理を行い、クライアント端末が当該処理に応じた画面を表示する。
まず、情報処理装置100は、CPU(Central Processing Unit)301と、ROM(Read Only Memory)302と、RAM(Random Access Memory)303と、を有する。情報処理装置100は、ディスクドライブ304と、ディスク305と、I/F(Inter/Face)306と、キーボード307と、マウス308と、ディスプレイ309と、を有する。また、CPU301と、ROM302と、RAM303と、ディスクドライブ304と、I/F306と、キーボード307と、マウス308と、ディスプレイ309とは、バス300によってそれぞれ接続される。
ここで、CPU301は、情報処理装置100の全体の制御を司る。ROM302は、ブートプログラムや設計支援プログラムなどのプログラムを記憶する。RAM303は、CPU301のワークエリアとして使用される。ディスクドライブ304は、CPU301の制御にしたがってディスク305に対するデータのリード/ライトを制御する。ディスク305は、ディスクドライブ304の制御で書き込まれたデータを記憶する。図示省略するが、ディスク305は、例えば、設計支援プログラムなどのプログラムを記憶していてもよい。ディスク305としては、磁気ディスク、光ディスクなどが挙げられる。ここで、CPU301が、ROM302やディスク305などに記憶された設計支援プログラムなどを読み出して、設計支援プログラムにコーディングされている処理を実行する。
I/F306は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク310に接続され、このネットワーク310を介して他の装置に接続される。そして、I/F306は、ネットワーク310と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F306には、例えばモデムやLANアダプタなどを採用することができる。
キーボード307やマウス308は、利用者の操作により、各種データの入力を行うインターフェースである。ディスプレイ309は、CPU301の指示により、データを出力するインターフェースである。
また、情報処理装置100は、上述した構成部のほか、カメラから画像や動画を取り込む入力装置やマイクから音声を取り込む入力装置を有していてもよい。また、情報処理装置100は、上述した構成部のほか、プリンタなどの出力装置を有していてもよい。また、情報処理装置100は、上述した構成部のほか、例えば、SSD(Solid State Drive)、半導体メモリなどを有していてもよい。
また、本実施の形態では、情報処理装置100のハードウェア構成として、パーソナル・コンピュータを例に挙げているが、これに限らず、サーバなどであってもよい。情報処理装置100がサーバである場合、情報処理装置100と利用者の操作可能な装置やディスプレイ309などがネットワーク310を介して接続されてもよい。
(情報処理装置100の機能的構成例)
図4は、情報処理装置の機能的構成例を示すブロック図である。情報処理装置100は、第1のタイミング検証部401と、デザインチェック部402と、第1の重み付け部403と、第2の重み付け部404と、パス優先度算出部405と、を有する。情報処理装置100は、第1の配置配線部406と、第2の配置配線部407と、第2のタイミング検証部408と、検証結果判定部409と、修正部410と、記憶部411と、を有する。
第1のタイミング検証部401から修正部410までの制御部の処理は、例えば、図3に示すCPU301がアクセス可能なROM302、ディスク305などの記憶装置に記憶された設計支援プログラムにコーディングされている。そして、CPU301が記憶装置から該プログラムを読み出して、設計支援プログラムにコーディングされている処理を実行する。これにより、制御部の処理が実現される。また、制御部の処理結果は、例えば、RAM303、ディスク305などの記憶装置に記憶される。制御部の機能のうち、一部の機能をサーバなどの他の装置によって実行させてもよい。
記憶部411は、ROM302やディスク305などの記憶装置によって実現される。記憶部411に格納される情報例については図5を用いて説明する。
図5は、記憶部の記憶例を示す説明図である。記憶部411は、例えば、論理回路情報501、タイミング定義情報502、静的タイミング検証情報503、デザインチェック情報504、配置配線結果情報508などを記憶する。また、記憶部411は、例えば、本実施の形態における出力情報として、セルディレイ重み付け結果505と、デザインチェック重み付け結果506と、パス優先度情報507と、を有する。
論理回路情報501は、例えば、設計の対象回路に含まれるセルとセル間の接続関係を表す。具体的に、論理回路情報501は、例えば、ネットリストを含む。より具体的に、論理回路情報501は、VerilogやVHDL(Very high speed integrated circuit Hardware Description Language)などのハードウェア記述言語やシステム記述言語によって記述される。
タイミング定義情報502には、例えば、設計の対象回路についてのタイミングが定義される。タイミング定義情報502は、例えば、クロック情報511を含む。より具体的に、タイミング定義情報502は、例えば、クロック周期などが定義される。
まず、図4の説明に戻って、第1のタイミング検証部401は、例えば、論理回路情報501とタイミング定義情報502とに基づいて、静的タイミング解析を行う。これにより、図5に示す静的タイミング検証情報503が得られる。
静的タイミング検証情報503は、ディレイ情報514と、第2の回路情報515と、を含む。ディレイ情報514は、例えば、パスごとに、パスに含まれる各セルの遅延量の合計値を表す情報である。第2の回路情報515は、例えば、パスごとに、パスに含まれるセルのファンアウト数の合計値、パスに含まれるセル段数、パスに含まれるセルのネットのうち他モジュールに接続されるネットの数などを表す情報である。他モジュールに接続されるネットの数は、省略して他モジュール接続ネット数とも称する。
図6は、他モジュール接続ネット例を示す説明図である。図6に示す設計の対象回路600は、例えば、モジュールmA〜モジュールmCなどを含む。ここで、モジュールは、部分回路の単位であり、設計時の単位でもある。例えば、対象回路の論理設計やレイアウト設計などでは、モジュール単位で行われる場合がある。モジュールmBは、回路l1などを有する。モジュールmCは、回路l2などを有する。
回路l1と回路l2とは、同じセルを含み、同一の構成である。回路l1では、例えば、入力PAと入力PCからのネットが他のモジュールmAを介して回路l1内の入力端Bと入力端Dに接続される。このため、回路l1のパスの例では、他モジュールに接続されるネットの数は2である。これに対して、回路l2では、例えば、入力PA’と入力PC’からのネットが直接回路l2内の入力端B’と入力端D’に接続される。このため、回路l2のパスの例では、他モジュールに接続されるネットの数は0である。ここで、他モジュールに接続されるネットの数を省略して他モジュール接続ネット数とも称する。
ここで、始点FFが第1のモジュールに含まれ、送信FFが第2のモジュールに含まれる場合、送信FFへの接続ネットは、他モジュール接続ネット数として計数される。ここで、パス上のセルがいずれのモジュールに含まれるかは、ネットリスト内に定義されたインスタンス名によって判別可能である。
つぎに、図4に示すデザインチェック部402は、例えば、論理回路情報501に基づいて、デザインチェックを行う。デザインチェック部402は、例えば、対象回路に含まれる各パスについて、パス上にあるセルのゲート数およびピン/ネットを検証する。図5に示すデザインチェック情報504は、デザインチェック部402によるチェック結果である第1の回路情報516を有する。第1の回路情報516は、パスごとのセルのゲート数およびピン/ネットを表す情報を含む。
第1の重み付け部403は、例えば、各パスについて、静的タイミング解析によって得られるパス上のセルの遅延量の合計値と、クロック周期と、に基づいて、パスのスラックの余裕度を算出する。そして、第1の重み付け部403は、例えば、各パスについて、算出したパスのスラックの余裕度についての重み付けを行う。
具体的に、図4に示す第1の重み付け部403は、例えば、静的タイミング検証情報503に含まれるディレイ情報514が示すセルの遅延量とタイミング定義情報502に定義されたクロックの周期と、に基づいて、スラックを算出する。スラックとは、例えば、タイミングの過不足を表す。スラックがマイナス値の場合、その値だけデータ信号がクロック信号に対してタイミングが未達であることを示す。スラックがプラス値の場合、その値だけデータ信号がクロック信号に対してタイミングが余裕であることを示す。
そして、第1の重み付け部403は、スラックと、クロック周期と、に基づいて、スラックの余裕度を算出する。パスを形成する始点FF同士のクロック周波数が異なる場合、スラックだけでは、いずれのパスがクリティカルパスであるかの判別が困難である。そこで、本実施の形態では、第1の重み付け部403が、上述のようにスラックの余裕度を算出することにより、周波数が異なるパス同士であっても遅延量を比較することができ、クリティカルパスの抽出精度の向上を図ることができる。
具体的に、第1の重み付け部403は、例えば、パスごとに以下式(1)によりスラックを算出する。そして、第1の重み付け部403は、例えば、パスごとに以下式(2)によりスラックの余裕度を算出する。
始点FFに供給されるクロックの周期−始点FFから終点FFまでの間の各セルの合計遅延量=スラック・・・式(1)
スラック÷始点FFに供給されるクロックの周期=スラックの余裕度・・・式(2)
つぎに、第1の重み付け部403は、例えば、パスごとに、スラックの余裕度に基づいて、パスのセルの遅延量についての重み付けを行う。ここで、重み付けを行うためのスラックの余裕度と重みの対応表を図7に示す。
図7は、スラックの余裕度と重みの対応表例を示す説明図である。第1の対応表700は、例えば、スラックの余裕度と重みとの対応関係を示す。本実施の形態では、セットアップエラーとなる可能性が高いパスを抽出するため、第1の対応表700では、スラックの余裕度が小さいほど、重みが大きくなるように設定される。
スラックの余裕度が、20[%]未満である場合、重みが5である。スラックの余裕度が、20〜40[%]未満である場合、重みが4である。スラックの余裕度が、40〜60[%]未満である場合、重みが3である。スラックの余裕度が、60〜80[%]未満である場合、重みが2である。スラックの余裕度が、80[%]以上である場合、重みが1である。図7の例では、余裕度が20[%]ごとに重み付けを5段階で表しているが、これに限らない。
図8は、スラックの重みの算出例を示す説明図である。図8の例では、パスが少なくともパスp1〜パスp4まである。パスp1については、例えば、クロック周波数が1[GHz]であり、クロックの周期が1[ns]であり、FF間セル遅延量が0.70[ns]である。このため、パスp1については、例えば、スラックが、「1[ns]−0.70[ns]」により0.30[ns]である。パスp1については、例えば、スラックの余裕度が、「0.3[ns]÷1[ns]」により30[%]である。そして、パスp1については、例えば、スラックの余裕度が30[%]であるため、第1の対応表700によると、スラックの余裕度に応じた重みが4である。同様に、パスp2〜p4についても第1の重み付け部403によって重み付けることができる。
つぎに、第2の重み付け部404は、例えば、各パスについて、静的タイミング解析によって得られる他モジュール接続ネット数に基づいて、パスの配線に関する遅延量を算出する。そして、第1の配置配線部406は、複数のパスから、パスの配線に関する遅延量に基づいてクリティカルパスを抽出する。
また、第2の重み付け部404は、例えば、他モジュール接続ネット数および第1の度合と、デザインチェックによって得られるセル段数および第2の度合とに基づいて、パスの配線に関する遅延量を算出する。第1の度合は、他モジュール接続ネット数がパスの配線の負荷に影響する度合である。パスの配線の負荷とは、例えば、パス上の容量や抵抗などである。第2の度合は、セル段数がパスの配線の負荷に影響する度合である。
第1の度合は、例えば、第2の度合よりも高くなるように予め設定される。また、これに限らず、第1の度合と第2の度合は、キーボード307やマウス308などの設計者の操作入力によって受け付けてもよい。
第2の重み付け部404は、他モジュール接続ネット数および第1の度合と、ピン/ネットおよび第3の度合と、に基づいて、パスの配線に関する遅延量を算出する。第3の度合は、ピン/ネットがパスの配線の負荷に影響する度合である。第1の度合は、第3の度合よりも高くなるように予め設定される。また、これに限らず、第1の度合と第3の度合は、キーボード307やマウス308などの設計者の操作入力によって受け付けてもよい。
第2の重み付け部404は、他モジュール接続ネット数および第1の度合と、ファンアウト数および第4の度合と、に基づいて、パスの配線に関する遅延量を算出する。第4の度合は、ファンアウト数がパスの配線の負荷に影響する度合である。第1の度合は、第4の度合よりも高くなるように予め設定される。また、これに限らず、第1の度合と第4の度合は、キーボード307やマウス308などの設計者の操作入力によって受け付けてもよい。
第1の度合から第4の度合は、それぞれ各項目の内容についての影響度とも称する。
また、第2の重み付け部404は、例えば、各パスについて、他モジュール接続ネット数と、セルの段数と、ピン/ネットと、ファンアウト数と、に基づいて、パスの配線の遅延量を算出してもよい。
また、第2の重み付け部404は、設計者の操作入力によって受け付けた項目の内容に基づいて配置の遅延量を算出してもよい。設計者の操作入力は、キーボード307やマウス308などによって受け付け可能である。
ここで、他モジュール接続ネット数については、他モジュールを経てネットが接続されている場合、配線が長くなるため、配線の遅延量が大きくなる。また、配線が長くなると、配線に接続されるセルの遅延量が大きくなる。このため、パス上の組合せ回路において他モジュール接続ネット数が大きいほど、第2の重み付け部404は、配線の遅延量が大きくなるように算出する。
また、セルの段数が多い場合、セルに接続されるネットの数が増えるため、パスの合計の遅延量が大きくなる可能性がある。図2で示したように、パスごとにパス上の遅延量を算出する際に、セルの段数によって遅延量は大きく変わる。また、セル自体に遅延量があるため、セル段数が多いほど、セルによる合計の遅延量が大きくなる。また、セル段数が多いほど、セル間のネット数も増えるため、セル間の配線長によりセルの遅延量は変化する。このため、セルの段数が多いほど、第2の重み付け部404は、配線の遅延量が大きくなるように算出する。
また、ファンアウト数が大きい場合、配線数が多くなるため、配線の遅延量が大きくなると推定可能である。そこで、ファンアウト数が大きいほど、第2の重み付け部404は、配線の遅延量が大きくなるように算出する。
また、ピン/ネットは、上述したように、パス間のピン数をパス間のネット数により除算した値である。ネット1本あたりのピン数が多いほど、パス上にあるセルのネットが多いことを示す。このため、ネットが多いと、配線の遅延量が大きくなる可能性があるため、ピン/ネットが大きいほど、第2の重み付け部404は、配線の遅延量が大きくなるように算出する。
また、第2の重み付け部404は、項目の内容と、当該項目の内容についての影響度と、に基づいて配線の遅延量を算出する。上述したように、項目の内容についての影響度については、設計者の操作入力によって受け付けてもよいし、予め定められたものでもよい。
本実施の形態では、第2の重み付け部404は、例えば、パスの各々について、ファンアウト数と、セル段数と、他モジュール接続ネット数と、ピン/ネットと、に基づいて、パスの配線の遅延量を算出する。具体的に、第2の重み付け部404は、例えば、パスごとにパスの配線の遅延量を以下式(3)によって求める。
配線の遅延量=(他モジュール接続ネット数×第1の影響度)+(セル段数×影響度)+(ファンアウト数×影響度)+(ピン/ネット×影響度)・・・式(3)
図9は、項目ごとの影響度例を示す説明図である。ここで、配線影響度情報900は、項目ごとの影響度の例を示す。配線の負荷に対して最も影響の高い項目は他モジュール接続ネット数である。他モジュール接続ネット数についての影響度は0.04である。配線の負荷に対して影響の高い項目はFF間セル段数である。FF間セル段数についての影響度は0.03である。配線の負荷に対して影響のある項目はファンアウト数とピン/ネットである。ファンアウト数とピン/ネットについての影響度は0.02である。上述したように、項目ごとの影響度は、例えば、設計者の操作入力によって受け付けてもよいし、予め定められていてもよい。項目ごとの影響度は、例えば、ROM302、RAM303、ディスク305などの記憶装置に記憶される。
つぎに、図4に示す第2の重み付け部404は、各パスについて、導出したパスの配線に関する遅延量と、始点FFに供給されるクロックの周期と、に基づいて、パスの配線の遅延の余裕度を算出する。クロック周期は、例えば、クロック情報511に定義される。
具体的に、第2の重み付け部404は、例えば、クロック周期から配線の遅延量を減算した差分値を算出する。具体的に、第2の重み付け部404は、例えば、差分値を以下式(4)によって求める。
差分値=クロック周期−配線の遅延量・・・式(4)
つぎに、第2の重み付け部404は、例えば、差分値と、クロック周期と、に基づいて配線の遅延の余裕度を求める。具体的に、第2の重み付け部404は、例えば、配線の遅延の余裕度を以下式(5)によって求める。
配線の遅延の余裕度=差分値÷クロック周期・・・式(5)
これにより、パスの始点FFに供給されるクロックの周期が異なる場合であっても配線の遅延に余裕があるか否かを比較することが可能となる。
そして、第2の重み付け部404は、例えば、パスごとに、配線の遅延の余裕度に基づいて、パスの配線の遅延についての重み付けを行う。ここで、重み付けを行うために配線の遅延の余裕度と重みの対応表を図10に示す。
図10は、配線の遅延の余裕度と重みの対応表例を示す説明図である。第2の対応表1000は、例えば、配線の遅延の余裕度と重みとの対応関係を示す。本実施の形態では、セットアップエラーとなる可能性が高いパスを抽出するため、第2の対応表1000では、配線の遅延の余裕度が小さいほど、重みが大きくなるように設定される。
配線の遅延の余裕度が、20[%]未満である場合、重みが5である。配線の遅延の余裕度が、20〜40[%]未満である場合、重みが4である。配線の遅延の余裕度が、40〜60[%]未満である場合、重みが3である。配線の遅延の余裕度が、60〜80[%]未満である場合、重みが2である。配線の遅延の余裕度が、80[%]以上である場合、重みが1である。図10の例では、余裕度が20[%]ごとに重み付けを5段階で表しているが、これに限らない。
図11は、配線の遅延の重みの算出例を示す説明図である。図11の例では、パスが少なくともパスp1〜パスp4まである。パスp1については、例えば、クロックの周期が1[ns]であり、セル段数が6であり、ファンアウト数が5である。パスp1については、例えば、他モジュール接続ネット数が8であり、ピン/ネットが1.6である。
このため、パスp1については、例えば、配線の遅延量が、「6×0.03+5×0.02+8×0.04+1.6×0.02」により0.63[ns]である。パスp1については、例えば、差分値が、「1−0.63」により0.37[ns]である。パスp1については、例えば、遅延の余裕度が、「0.37[ns]/1[ns]」により37[%]である。第2の対応表1000によると、遅延の余裕度に応じた重みが4である。同様に、パスp2〜p4についても第2の重み付け部404によって重み付けることができる。
また、第2の重み付け部404は、例えば、パスごとの重み付け結果をデザインチェック重み付け結果506として記憶部411に記憶させる。
つぎに、図4に示すパス優先度算出部405は、例えば、各パスについて、第1の重み付け部403と第2の重み付け部404との各々による重み付けの結果を集計してパスに関する遅延の度合を算出する。ここで、パスに関する遅延の度合は、パスの優先度とも称する。パスの優先度は大きいほど、パスに関する遅延が大きいことを示す。
具体的に、パス優先度算出部405は、例えば、パスの各々について、スラックの余裕度に応じた重みと、配線の遅延の余裕度に応じた重みと、に基づいて、パスの優先度を算出する。具体的に、パス優先度算出部405は、例えば、パスの優先度を以下式(6)によって求める。
パスの優先度=スラックの余裕度に応じた重み+配線の遅延の余裕度に応じた重み・・・式(6)
これにより、スラックの余裕度と配線の遅延の余裕度とに基づいてパスに関する遅延量を総合的に評価することができる。
図12は、優先度の算出例を示す説明図である。パスp1は、例えば、スラックの余裕度に応じた重みが4であり、配線の遅延の余裕度に応じた重みが4であるため、優先度が8である。パスp2は、例えば、スラックの余裕度に応じた重みが5であり、配線の遅延の余裕度に応じた重みが5であるため、優先度が10である。パスp3は、例えば、スラックの余裕度に応じた重みが5であり、配線の遅延の余裕度に応じた重みが3であるため、優先度が8である。パスp4は、例えば、スラックの余裕度に応じた重みが3であり、配線の遅延の余裕度に応じた重みが4であるため、優先度が7である。
パス優先度算出部405は、パスの優先度の算出結果をパス優先度情報507として記憶部411などに記憶させる。
つぎに、第1の配置配線部406は、複数のパスから、導出した配線の遅延量に基づきクリティカルパスを抽出する。第1の配置配線部406は、複数のパスのうち、導出した配線の遅延量が所定値以上であるパスをクリティカルパスとして抽出する。また、第1の配置配線部406は、複数のパスのうち、導出した配線の遅延量が大きいものから順に所定数のパスをクリティカルパスとして抽出してもよい。
また、第1の配置配線部406は、複数のパスのうち、算出したパスに関する遅延の度合に基づいてクリティカルパスを抽出する。第1の配置配線部406は、複数のパスのうち、算出したパスに関する遅延の度合が所定の度合よりも遅延が大きいことを示すパスをクリティカルパスとして抽出する。具体的に、第1の配置配線部406は、複数のパスのうち、算出したパスの優先度が基準値よりも大きいパスをクリティカルパスとして抽出する。基準値については、設計者や情報処理装置100によって定められた値である。
図4に示す第1の配置配線部406は、例えば、パス優先度情報507を参照して、対象回路に含まれるパスのうち、優先度が基準値以上のパスを抽出する。また、第1の配置配線部406は、例えば、対象回路に含まれるパスのうち、優先度が高い順に所定数のパスを抽出してもよい。
第1の配置配線部406は、例えば、抽出したクリティカルパスについて自動で第1の配置配線処理を行うことにより第1のレイアウトデータを得る。このように、優先度が高いパスほど先に配置配線することにより、パス上の配線の遅延量の低減を図ることができる。したがって、セットアップタイムエラーの発生数の低減を図ることができる。
図4に示す第2の配置配線部407は、第1の配置配線部406による未配置配線のパスについて、自動で第2の配置配線処理を行うことにより第2のレイアウトデータを得る。これにより、第2の配置配線部407は、図5に示す配置配線結果情報508を得る。第2のレイアウトデータは、例えば、配置配線結果情報508に含まれるレイアウトデータ512である。第1の配置配線部406による未配置配線のパスは、例えば、優先度が低いパスである。配置配線結果情報508は、例えば、レイアウトデータ512と、回路遅延情報513と、を含む。レイアウトデータ512は、例えば、設計の対象回路についての配置配線の結果である。回路遅延情報513には、レイアウトデータ512に含まれるセルの種類ごとの遅延値やセルの配線の遅延値などが定義される。
第2のタイミング検証部408は、例えば、タイミング定義情報502に含まれるクロック情報511と配置配線結果情報508とに基づいて静的タイミング解析を行う。
そして、図4に示す検証結果判定部409は、静的タイミング解析によって得られるタイミングエラーのうち、当該タイミングエラーの修正処理によって修正した後のタイミングエラーの数が閾値以上であるか否かを判定する。タイミングエラーの数との比較対象となる閾値については、例えば、許容範囲とも称する。
具体的に、検証結果判定部409は、例えば、第2のタイミング検証部408による静的タイミング解析の解析結果に基づいて、タイミングエラーがあるか否かを判定する。修正部410は、例えば、タイミングエラーがあると判定された場合、タイミングエラーの自動修正処理を行う。ここでの自動修正処理については公知技術であるため、特に限定しない。
つぎに、検証結果判定部409は、修正部410による修正後のタイミングエラーの数が、許容範囲内であるか否かを判断する。許容範囲は、例えば、設計者などによって予め定められ、記憶部411などに記憶される。例えば、設計の対象回路内のパスの総数が10000パス程度であれば、許容範囲を200程度とし、検証結果判定部409は、タイミングエラー数が200以内であれば、許容範囲内であると判定する。また、許容範囲を0とし、検証結果判定部409が、タイミングエラーが0であるか否かを判定してもよい。
検証結果判定部409が、許容範囲内であると判定した場合、配置配線の処理を終了する。検証結果判定部409は、検証結果判定部409により許容範囲内でないと判断された場合、上述した所定値または所定数を現状よりも高く設定する。そして、第1の配置配線部406から修正部410までの処理を繰り返す。
図13は、入力画面例を示す説明図である。ここで、本実施の形態における設計者が情報処理装置100を使用する際に情報処理装置100のディスプレイ309などに表示される入力画面1300例を説明する。入力画面1300は、例えば、静的タイミング検証情報503のコンピュータ上の在処を指定可能な項目1301と、項目1301に設定された内容に基づいて静的タイミング検証情報503を参照するための参照ボタン1302と、を有する。コンピュータ上の在処とは、例えば、情報処理装置100が有する記憶装置における在り処であってもよいし、ネットワーク310を介した他の装置が有する記憶装置における在り処であってもよい。
入力画面1300は、例えば、タイミング定義情報502のコンピュータ上の在処を指定可能な項目1303と、項目1303に設定された内容に基づいてタイミング定義情報502を参照するための参照ボタン1304と、を有する。
また、入力画面1300は、例えば、デザインチェック情報504のコンピュータ上の在処を指定可能な項目1305と、項目1305に設定された内容に基づいてデザインチェック情報504を参照するための参照ボタン1306と、を有する。
また、入力画面1300は、例えば、重み付け優先順位を入力可能な項目1311〜1314を有する。入力画面1300において、重み付け優先順位を入力可能な項目1311〜1314が選択されると、影響度が設定される項目の内容の一覧1310が表示される。図13の例では、設計者は、他モジュール接続ネット数と、FF間セル段数と、ファンアウト数と、ピン/ネットとの中から影響度の順位を指定可能である。項目の内容は上述した4つである。このため、入力画面1300は、重み付け影響度の優先順位を入力可能な項目が4つある。図13の例では、他モジュール接続ネット数が最も影響度が高くなるように指定され、FF間セル段数がつぎに影響度が高くなるように指定される。そして、図13の例では、ファンアウト数がそのつぎに影響度が高くなるように指定され、ピン/ネットが、最も影響度が低くなるように指定される。
図13の例では、重み付け影響度の優先順位を入力可能であるが、これに限らず、例えば、影響度そのものを入力可能な項目であってもよい。
また、図13の例では、他モジュール接続ネット数と、FF間セル段数と、ファンアウト数と、ピン/ネットのすべてが選択されているが、これに限らず、少なくともいずれか一つの項目や2つの項目や3つの項目などであってもよい。
また、入力画面1300は、実行ボタン1321を有する。実行ボタン1321が押下されると、情報処理装置100が、設定された影響度と、静的タイミング検証情報503と、タイミング定義情報502と、デザインチェック情報504と、に基づいて、制御部による各種処理を行う。
図14は、出力画面例を示す説明図である。ここで、本実施の形態における設計者が情報処理装置100を使用する際に情報処理装置100のディスプレイ309などに表示される出力画面1400例を説明する。出力画面1400は、例えば、対象回路内のパスのうち、優先度が高い複数のパスの各々についての優先度順の番号と、ネットリストにおけるパスの始点FFと、終点FFと、の項目を有する。図14の例では、出力画面1400は、優先度が12番目までに高いパスについて、始点FFと終点FFとの項目を含む。
(情報処理装置100による設計支援処理手順例)
図15および図16は、情報処理装置による設計支援処理手順例を示すフローチャートである。情報処理装置100は、静的タイミング解析を行う(ステップS1501)。情報処理装置100は、重要セルを配置後のレイアウトデータ512を取得する(ステップS1502)。ここで、重要セルとは、例えば、クロックツリーを形成するセルなどのクロックの供給源に関係するセルやタイミングが厳しいと事前に決まっている重要なFFなどが挙げられる。
つぎに、情報処理装置100は、デザインチェック情報504を取得する(ステップS1503)。そして、情報処理装置100は、クリティカルパス抽出処理を行う(ステップS1504)。つぎに、情報処理装置100は、例えば、未選択のパスがあるか否かを判断する(ステップS1505)。
未選択のパスがないと判断された場合(ステップS1505:No)、情報処理装置100は、ステップS1509へ移行する。未選択のパスがあると判断された場合(ステップS1505:Yes)、情報処理装置100は、ステップS1506へ移行する。
情報処理装置100は、例えば、未選択のパスからいずれかのパスを選択する(ステップS1506)。情報処理装置100は、選択したパスの優先度が基準値以上か否かを判断する(ステップS1507)。選択したパスの優先度が基準値以上であると判断した場合(ステップS1507:Yes)、情報処理装置100は、選択したパスを自動で配置・配線し(ステップS1508)、ステップS1505へ戻る。
選択したパスの優先度が基準値以上でないと判断した場合(ステップS1507:No)、情報処理装置100は、ステップS1505へ戻る。つぎに、未選択のパスがないと判断された場合(ステップS1505:No)、情報処理装置100は、基準値未満と判定されたパスを自動で配置・配線する(ステップS1509)。
つぎに、情報処理装置100は、配置配線後のレイアウトデータ512に基づいて、静的タイミング検証を行う(ステップS1601)。そして、情報処理装置100は、タイミングエラーがあるか否かを判断する(ステップS1602)。タイミングエラーがないと判断された場合(ステップS1602:No)、情報処理装置100は、一連の処理を終了する。
タイミングエラーがあると判断された場合(ステップS1602:Yes)、情報処理装置100は、タイミングエラーを修正する(ステップS1603)。情報処理装置100は、タイミングエラー数が許容範囲内か否かを判断する(ステップS1604)。
タイミングエラー数が許容範囲内でないと判断された場合(ステップS1604:No)、情報処理装置100は、基準値を高く再設定し(ステップS1605)、ステップS1505へ戻る。一方、タイミングエラー数が許容範囲内であると判断された場合(ステップS1604:Yes)、情報処理装置100は、一連の処理を終了する。
図17は、図15に示すクリティカルパス抽出処理手順例を示すフローチャートである。情報処理装置100は、スラックの余裕度に応じた重み付け処理を行い(ステップS1701)、遅延量の余裕度に応じた重み付け処理を行う(ステップS1702)。ステップS1701とステップS1702による処理については、いずれが先に行われてもよいし、並列に行われてもよい。
つぎに、情報処理装置100は、パスの優先度の導出処理を行い(ステップS1703)、一連の処理を終了する。
図18は、図17に示すスラックの余裕度に応じた重み付け処理手順例を示すフローチャートである。情報処理装置100は、ネットリストに基づいて、対象回路に含まれる複数のパスのうち、未選択のパスからいずれかのパスを選択する(ステップS1801)。つぎに、情報処理装置100は、クロック周期と選択したパス上のセルの合計遅延量に基づきスラックを算出する(ステップS1802)。
そして、情報処理装置100は、スラックをクロック周期で除算することによりスラックの余裕度を算出する(ステップS1803)。つぎに、情報処理装置100は、第1の対応表700に基づいて、算出したスラックの余裕度について重み付けを行う(ステップS1804)。そして、情報処理装置100は、未選択のパスがあるか否かを判断する(ステップS1805)。
未選択のパスがあると判断された場合(ステップS1805:Yes)、情報処理装置100は、例えば、ステップS1801へ戻る。未選択のパスがないと判断された場合(ステップS1805:No)、情報処理装置100は、例えば、一連の処理を終了する。
図19は、図17に示す遅延量の余裕度に応じた重み付け処理手順例を示すフローチャートである。まず、情報処理装置100は、未選択のパスからいずれかのパスを選択する(ステップS1901)。つぎに、情報処理装置100は、選択したパスについて、配線影響度情報900とファンアウト数に基づく第1の遅延量を算出する(ステップS1902)。
そして、情報処理装置100は、選択したパスについて、配線影響度情報900とパス上のセルの段数とに基づく第2の遅延量を算出する(ステップS1903)。つぎに、情報処理装置100は、選択したパスについて、配線影響度情報900と他モジュール接続ネット数に基づく第3の遅延量を算出する(ステップS1904)。情報処理装置100は、配線影響度情報900とピン/ネット数に基づく第4の遅延量を算出する(ステップS1905)。
そして、情報処理装置100は、各遅延量に基づき配線の遅延量を算出する(ステップS1906)。つぎに、情報処理装置100は、クロック周期と、パスの配線の遅延量との差分値を算出する(ステップS1907)。
つづいて、情報処理装置100は、差分値をクロック周期で除算することによりパスの配線の遅延の余裕度を算出する(ステップS1908)。そして、情報処理装置100は、余裕度に応じて重み付けを行う(ステップS1909)。つぎに、情報処理装置100は、未選択のパスがあるか否かを判断する(ステップS1910)。
未選択のパスがあると判断された場合(ステップS1910:Yes)、情報処理装置100は、ステップS1901へ戻る。未選択のパスがないと判断された場合(ステップS1910:No)、情報処理装置100は、一連の処理を終了する。ここで、余裕度に応じた重み付け結果は、デザインチェック重み付け結果506として記憶部411などに記憶される。
図20は、図17に示すパスの優先度の導出処理手順例を示すフローチャートである。情報処理装置100は、未選択のパスからいずれかのパスを選択する(ステップS2001)。つぎに、情報処理装置100は、選択したパスについての重み付け結果を集計することにより選択したパスについての優先度を算出する(ステップS2002)。情報処理装置100は、未選択のパスがあるか否かを判断する(ステップS2003)。
未選択のパスがあると判断された場合(ステップS2003:Yes)、情報処理装置100は、ステップS2001へ戻る。未選択のパスがないと判断された場合(ステップS2003:No)、情報処理装置100は、一連の処理を終了する。
以上説明したように、情報処理装置100は、配置配線前の回路情報に基づく静的タイミング解析で得た他モジュール接続ネット数に基づき算出したパスごとの配線の遅延量に基づいてクリティカルパスを抽出する。これにより、タイミングエラーの発生の抑制を図ることができる。
また、情報処理装置100は、各パスについて、他モジュール接続ネット数および他モジュール接続ネット数についての影響度と、セル段数およびセル段数についての影響度とに基づいて、パスの配線に関する遅延量を算出する。これにより、セル段数が大きいほど、配線が長くなるため、セル段数が大きいほど、セル間のネット数も増えるため、セル間の配線長によりセルの配線の遅延量が大きくなる。このため、セル段数を配線に関する遅延量の算出に用いることにより、より精度よくクリティカルパスを抽出することができる。
また、他モジュール接続ネット数についての影響度と、パス上のセルの段数についての影響度と、の各影響度を設計者に設定させる。このように、対象回路の内容などに応じて設計者が影響度を設定可能である。例えば、回路規模が小さいものであれば、モジュールの数が少なく、モジュール間が遠くに配線される可能性が低くなるため、セルの段数についての影響度が他モジュール接続ネット数についての影響度よりも高くなるように設定されてもよい。
また、情報処理装置100は、各パスについて、他モジュール接続ネット数および他モジュール接続ネット数についての影響度と、ピン/ネットおよびピン/ネットについての影響度と、に基づいて、パスの配線の遅延量を算出する。ネット1本あたりのピン数が多いほど、パス上にあるセルのネットが多いことを示す。ネットが多いと、配線の遅延量が大きくなる可能性があるため、ピン/ネットが大きいほど、配線の遅延量が大きくなる。このため、ピン/ネットをパスの配線の遅延量の算出に用いることにより、より精度よくクリティカルパスを抽出することができる。
他モジュール接続ネット数についての影響度と、ピン/ネットについての影響度と、の各影響度を設計者に設定させる。このように、対象回路の内容などに応じて設計者が影響度を設定可能である。例えば、回路規模が小さいものであれば、モジュールの数が少なく、モジュール同士が遠くに配線される可能性が低くなるため、ピン/ネットについての影響度が他モジュール接続ネット数についての影響度よりも高くなるように設定されてもよい。
また、情報処理装置100は、各パスについて、他モジュール接続ネット数および他モジュール接続ネット数についての影響度と、パス上のセルのファンアウト数およびファンアウト数についての影響度と、に基づいて、パスの配線の遅延量を算出する。ファンアウト数が大きい場合、配線数が多くなるため、配線の遅延量が大きくなると推定可能である。このため、ファンアウト数をパスの配線の遅延量の算出に用いることにより、精度よくクリティカルパスを抽出することができる。
他モジュール接続ネット数についての影響度と、ファンアウト数についての影響度と、の各影響度を設計者に設定させる。このように、対象回路の内容などに応じて設計者が影響度を設定可能である。例えば、回路規模が小さいものであれば、モジュールの数が少なく、モジュール同士が遠くに配線される可能性が低くなるため、ファンアウト数についての影響度が他モジュール接続ネット数についての影響度よりも高くなるように設定されてもよい。
また、情報処理装置100は、他モジュール接続ネット数と、セルの段数と、ピン/ネットと、セルのファンアウト数と、のうち、操作入力によって選択された項目の内容に基づいて配線の遅延量を算出する。
また、情報処理装置100は、クリティカルパスについての第1配置配線処理を行った後に、残余のパスについての第2配置配線処理を行う。これにより、セットアップエラーが発生する可能性が高いパスが先に自動配置配線されるため、当該パス上の配線の遅延量の低減を図ることができ、クリティカルパスの発生を抑制することができる。
また、情報処理装置100は、第2の配置配線処理後に再度行った静的タイミング解析によって得られたタイミングエラーのうち、タイミングを自動修正後のタイミングエラーの数が許容範囲内の場合、クリティカルパスがより多く抽出されるようにする。
また、情報処理装置100は、各パスについて、導出したパスの配線に関する遅延量と、始点FFに供給されるクロックの周期と、に基づいて、パスの配線の遅延の余裕度を算出する。これにより、パスごとにクロックの周期が異なっていても、いずれのパスが配線の遅延に余裕がないかを判別可能であり、クリティカルパスをより精度よく抽出できる。
また、情報処理装置100は、パスのスラックの余裕度と、パスの配線の遅延の余裕度と、の各々についての重み付けを行い、パスに関する遅延の度合いを算出し、パスに関する遅延の度合に基づいてクリティカルパスを抽出する。これにより、パスの配線の遅延量およびパス上のセルの遅延量との両方を総合的に評価してクリティカルパスを抽出することができるため、タイミングエラーの発生の抑制を図ることができる。
また、情報処理装置100は、例えば、パスに関する遅延の度合いが所定の度合いよりも遅延が大きいことを示すパスをクリティカルパスとして抽出する。これにより、基準値との比較により容易にクリティカルパスを抽出することができる。
また、情報処理装置100は、自動修正後のタイミングエラーの数が閾値以上である場合、所定の度合いを遅延が大きくなることを示すように変更し、再度クリティカルパスを抽出する。これにより、クリティカルパスとして抽出されるパスの数が少なくなる。このため、クリティカルパスについての遅延量がより少なくなるように配置配線ができるため、タイミングエラーの発生数を抑制することができる。
また、情報処理装置100は、抽出したクリティカルパスを、抽出したクリティカルパスについて算出した遅延の度合いが、遅延が大きいことを示す順に表示する。これにより、設計者はいずれのパスがクリティカルパスであるかを容易に判別可能であり、設計の容易化を図ることができる。例えば、設計者が表示内容を確認して、クリティカルパスの中でも特に遅延が大きいと判定したパスについては、設計者が手作業で配置配線を行ってもよい。これにより、タイミングエラーの発生を抑制することができる。
なお、本実施の形態で説明した設計支援方法は、予め用意された設計支援プログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設計支援プログラムは、磁気ディスク、光ディスク、USB(Universal Serial Bus)フラッシュメモリなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、設計支援プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)
設計の対象回路内のセルとセル間の接続関係を示す回路情報に基づいて静的タイミング解析を行い、
前記対象回路内の各パスについて、第1のフリップフロップから第2のフリップフロップまでを含むパス上の各セルの接続先および接続元のうちの、前記第1のフリップフロップを含む前記対象回路内の第1のモジュールと異なる前記対象回路内の第2のモジュールに含まれる前記静的タイミング解析によって得られる接続先および接続元の数に基づいて、前記パスの配線に関する遅延量を導出し、
前記各パスから、導出した前記パスの配線に関する遅延量に基づきクリティカルパスを抽出する、
制御部を有することを特徴とする情報処理装置。
(付記2)前記制御部は、
前記各パスについて、前記接続先および接続元の数と、前記接続先および接続元の数が前記パスの配線の負荷に影響する第1の度合と、前記回路情報に基づくデザインチェックによって得られる前記パス上のセルの段数と、前記パス上のセルの段数が前記パスの配線の負荷に影響する第2の度合と、に基づいて、前記パスの配線に関する遅延量を導出する、
ことを特徴とする付記1に記載の情報処理装置。
(付記3)前記第1の度合は、前記第2の度合よりも高いことを特徴とする付記2に記載の情報処理装置。
(付記4)前記制御部は、
前記第1の度合と、前記第2の度合と、を操作入力に応じて受け付け、
前記接続先および接続元の数と、受け付けた前記第1の度合と、前記パス上のセルの段数と、受け付けた前記第2の度合と、に基づいて、前記パスの配線に関する遅延量を導出する、
ことを特徴とする付記2に記載の情報処理装置。
(付記5)前記制御部は、
前記各パスについて、前記接続先および接続元の数と、前記接続先および接続元の数が前記パスの配線の負荷に影響する第1の度合と、前記回路情報に基づくデザインチェックによって得られる前記パス上の接続線あたりの前記パス上のセルの端子数と、前記パス上の接続線あたりの前記パス上のセルの端子数が前記パスの配線の負荷に影響する第3の度合と、に基づいて、前記パスの配線に関する遅延量を導出する、
ことを特徴とする付記1〜4のいずれか一つに記載の情報処理装置。
(付記6)前記第1の度合は、前記第3の度合よりも高いことを特徴とする付記5に記載の情報処理装置。
(付記7)前記制御部は、
前記第1の度合と、前記第3の度合と、を操作入力に応じて受け付け、
前記接続先および接続元の数と、受け付けた前記第1の度合と、前記パス上の接続線あたりの前記パス上のセルの端子数と、受け付けた前記第3の度合と、に基づいて、前記パスの配線に関する遅延量を導出する、
ことを特徴とする付記5に記載の情報処理装置。
(付記8)前記制御部は、
前記各パスについて、前記接続先および接続元の数と、前記接続先および接続元の数が前記パスの配線の負荷に影響する第1の度合と、前記静的タイミング解析によって得られる前記パス上のセルのファンアウト数と、前記ファンアウト数が前記パスの配線の負荷に影響する第4の度合と、に基づいて、前記パスの配線に関する遅延量を導出する、
ことを特徴とする付記1〜7のいずれか一つに記載の情報処理装置。
(付記9)前記第1の度合は、前記第4の度合よりも高いことを特徴とする付記8に記載の情報処理装置。
(付記10)前記制御部は、
前記第1の度合と、前記第4の度合と、を操作入力に応じて受け付け、
前記接続先および接続元の数と、受け付けた前記第1の度合と、前記ファンアウト数と、受け付けた前記第4の度合と、に基づいて、前記パスの配線に関する遅延量を導出する、
ことを特徴とする付記8に記載の情報処理装置。
(付記11)前記制御部は、
前記各パスについて、前記接続先および接続元の数と、前記回路情報に基づくデザインチェックによって得られる前記パス上のセルの段数と、前記回路情報に基づくデザインチェックによって得られる前記パス上の接続線あたりの前記パス上のセルの端子数と、前記パス上のセルのファンアウト数と、のうち、操作入力によって選択された項目の内容と、選択された前記項目の内容が前記パスの配線の負荷に影響する各度合とに基づいて、前記パスの配線に関する遅延量を導出する、
前記各パスから、導出した前記パスの配線に関する遅延量に基づきクリティカルパスを抽出する、
ことを特徴とする付記1〜10のいずれか一つに記載の情報処理装置。
(付記12)前記制御部は、
抽出した前記クリティカルパスについての第1の配置配線処理を行い、
前記第1の配置配線処理の後に、前記第1の配置配線処理によって得られる前記対象回路内のセルと当該セルの位置とセル間の配線とを示す第1のレイアウトデータに基づいて、前記各パスのうち、抽出した前記クリティカルパス以外のパスについての第2の配置配線処理を行う、
ことを特徴とする付記1〜11のいずれか一つに記載の情報処理装置。
(付記13)前記制御部は、
抽出した前記クリティカルパスについての第1の配置配線処理を行い、
前記第1の配置配線処理の後に、前記第1の配置配線処理によって得られる前記対象回路内のセルと当該セルの位置とセル間の配線とを示す第1のレイアウトデータに基づいて、前記各パスのうち、抽出した前記クリティカルパス以外のパスについての第2の配置配線処理を行い、
前記第2の配置配線処理によって得られる前記対象回路内のセルと当該セルの位置とセル間の配線とを示す第2のレイアウトデータに基づいて、第2の静的タイミング解析を行い、
前記第2の静的タイミング解析によって得られるタイミングエラーのうち、当該タイミングエラーの修正処理によって修正した後のタイミングエラーの数が閾値以上であるか否かを判定し、
前記タイミングエラーの数が前記閾値以上である場合に、前記クリティカルパスの数が多くなるように前記各パスから、導出した前記遅延量に基づき前記クリティカルパスを抽出する、
ことを特徴とする付記1〜11のいずれか一つに記載の情報処理装置。
(付記14)前記制御部は、
前記各パスについて、導出した前記パスの配線に関する遅延量と、前記第1のフリップフロップに供給されるクロックの周期と、に基づいて、前記パスの配線の遅延の余裕度を算出し、
前記各パスから、算出した前記パスの配線の遅延の余裕度に基づきクリティカルパスを選択する、
ことを特徴とする付記1〜13のいずれか一つに記載の情報処理装置。
(付記15)前記制御部は、
前記各パスについて、前記静的タイミング解析によって得られる前記パス上のセルの遅延量の合計値と、前記クロックの周期と、に基づいて、前記パスのスラックの余裕度を算出し、
前記各パスについて、算出した前記パスのスラックの余裕度についての重み付けと、算出した前記パスの配線の遅延の余裕度についての重み付けを行い、
前記各パスについて、重み付けの結果を集計して前記パスに関する遅延の度合を算出し、
前記各パスのうち、算出した前記パスに関する遅延の度合に基づいて前記クリティカルパスを抽出する、
ことを特徴とする付記14に記載の情報処理装置。
(付記16)前記制御部は、
前記各パスのうち、算出した前記パスに関する遅延の度合が所定の度合よりも遅延が大きいことを示すパスをクリティカルパスとして抽出する、
ことを特徴とする付記15に記載の情報処理装置。
(付記17)前記制御部は、
抽出した前記クリティカルパスについての第1の配置配線処理を行い、
前記第1の配置配線処理の後に、前記第1の配置配線処理によって得られる前記対象回路内のセルと当該セルの位置とセル間の配線とを示す第1のレイアウトデータに基づいて、前記各パスのうち、抽出した前記クリティカルパス以外のパスについての第2の配置配線処理を行い、
前記第2の配置配線処理によって得られる前記対象回路内のセルと当該セルの位置とセル間の配線とを示す第2のレイアウトデータに基づいて、第2の静的タイミング解析を行い、
前記第2の静的タイミング解析によって得られるタイミングエラーのうち、修正処理によって修正した後のタイミングエラーの数が閾値以上であるか否かを判定し、
前記タイミングエラーの数が前記閾値以上である場合に、前記所定の度合を遅延が大きくなることを示すように変更し、
前記各パスのうち、算出した前記パスに関する遅延の度合が変更後の所定の度合よりも遅延が大きいことを示すパスをクリティカルパスとして抽出する、
ことを特徴とする付記16に記載の情報処理装置。
(付記18)前記制御部は、
抽出した前記クリティカルパスを、抽出した前記クリティカルパスについて算出した前記パスに関する遅延の度合が、遅延が大きいことを示す順に表示する、
ことを特徴とする付記15〜17のいずれか一つに記載の情報処理装置。
(付記19)コンピュータに、
設計の対象回路内のセルとセル間の接続関係を示す回路情報に基づいて静的タイミング解析を行い、
前記対象回路内の各パスについて、第1のフリップフロップから第2のフリップフロップまでを含むパス上の各セルの接続先および接続元のうちの、前記第1のフリップフロップを含む前記対象回路内の第1のモジュールと異なる前記対象回路内の第2のモジュールに含まれる前記静的タイミング解析によって得られる接続先および接続元の数に基づいて、前記パスの配線に関する遅延量を導出し、
前記各パスから、導出した前記パスの配線に関する遅延量に基づきクリティカルパスを抽出する、
処理を実行させることを特徴とする設計支援方法。
(付記20)コンピュータが、
設計の対象回路内のセルとセル間の接続関係を示す回路情報に基づいて静的タイミング解析を行い、
前記対象回路内の各パスについて、第1のフリップフロップから第2のフリップフロップまでを含むパス上の各セルの接続先および接続元のうちの、前記第1のフリップフロップを含む前記対象回路内の第1のモジュールと異なる前記対象回路内の第2のモジュールに含まれる前記静的タイミング解析によって得られる接続先および接続元の数に基づいて、前記パスの配線に関する遅延量を導出し、
前記各パスから、導出した前記パスの配線に関する遅延量に基づきクリティカルパスを抽出する、
処理を実行することを特徴とする設計支援プログラム。
100 情報処理装置
101,600 対象回路
111 回路情報
401 第1のタイミング検証部
402 デザインチェック部
403,404 重み付け部
405 パス優先度算出部
406 第1の配置配線部
407 第2の配置配線部
408 第2のタイミング検証部
409 検証結果判定部
410 修正部
411 記憶部
501 論理回路情報
502 タイミング定義情報
503 静的タイミング検証情報
504 デザインチェック情報
505 セルディレイ重み付け結果
507 パス優先度情報
511 クロック情報
512 レイアウトデータ
513 回路遅延情報
514 ディレイ情報
700 第1の対応表
1000 第2の対応表
1300 入力画面
1400 出力画面
n1,n2,n3 接続線

Claims (10)

  1. 設計の対象回路内のセルとセル間の接続関係を示す回路情報に基づいて静的タイミング解析を行い、
    前記対象回路内の各パスについて、第1のフリップフロップから第2のフリップフロップまでを含むパス上の各セルの接続先および接続元のうちの、前記第1のフリップフロップを含む前記対象回路内の第1のモジュールと異なる前記対象回路内の第2のモジュールに含まれる前記静的タイミング解析によって得られる接続先および接続元の数に基づいて、前記パスの配線に関する遅延量を導出し、
    前記各パスから、導出した前記パスの配線に関する遅延量に基づきクリティカルパスを抽出する、
    制御部を有することを特徴とする情報処理装置。
  2. 前記制御部は、
    前記各パスについて、前記接続先および接続元の数と、前記接続先および接続元の数が前記パスの配線の負荷に影響する第1の度合と、前記回路情報に基づくデザインチェックによって得られる前記パス上のセルの段数と、前記パス上のセルの段数が前記パスの配線の負荷に影響する第2の度合と、に基づいて、前記パスの配線に関する遅延量を導出する、
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記制御部は、
    前記各パスについて、前記接続先および接続元の数と、前記接続先および接続元の数が前記パスの配線の負荷に影響する第1の度合と、前記回路情報に基づくデザインチェックによって得られる前記パス上の接続線あたりの前記パス上のセルの端子数と、前記パス上の接続線あたりの前記パス上のセルの端子数が前記パスの配線の負荷に影響する第3の度合と、に基づいて、前記パスの配線に関する遅延量を導出する、
    ことを特徴とする請求項1または2に記載の情報処理装置。
  4. 前記制御部は、
    前記各パスについて、前記接続先および接続元の数と、前記接続先および接続元の数が前記パスの配線の負荷に影響する第1の度合と、前記静的タイミング解析によって得られる前記パス上のセルのファンアウト数と、前記ファンアウト数が前記パスの配線の負荷に影響する第4の度合と、に基づいて、前記パスの配線に関する遅延量を導出する、
    ことを特徴とする請求項1〜3のいずれか一つに記載の情報処理装置。
  5. 前記制御部は、
    抽出した前記クリティカルパスについての第1の配置配線処理を行い、
    前記第1の配置配線処理の後に、前記第1の配置配線処理によって得られる前記対象回路内のセルと当該セルの位置とセル間の配線とを示す第1のレイアウトデータに基づいて、前記各パスのうち、抽出した前記クリティカルパス以外のパスについての第2の配置配線処理を行い、
    前記第2の配置配線処理によって得られる前記対象回路内のセルと当該セルの位置とセル間の配線とを示す第2のレイアウトデータに基づいて、第2の静的タイミング解析を行い、
    前記第2の静的タイミング解析によって得られるタイミングエラーのうち、当該タイミングエラーの修正処理によって修正した後のタイミングエラーの数が閾値以上であるか否かを判定し、
    前記タイミングエラーの数が前記閾値以上である場合に、前記クリティカルパスの数が多くなるように前記各パスから、導出した前記遅延量に基づき前記クリティカルパスを抽出する、
    ことを特徴とする請求項1〜4のいずれか一つに記載の情報処理装置。
  6. 前記制御部は、
    前記各パスについて、導出した前記パスの配線に関する遅延量と、前記第1のフリップフロップに供給されるクロックの周期と、に基づいて、前記パスの配線の遅延の余裕度を算出し、
    前記各パスから、算出した前記パスの配線の遅延の余裕度に基づきクリティカルパスを選択する、
    ことを特徴とする請求項1〜5のいずれか一つに記載の情報処理装置。
  7. 前記制御部は、
    前記各パスについて、前記静的タイミング解析によって得られる前記パス上のセルの遅延量の合計値と、前記クロックの周期と、に基づいて、前記パスのスラックの余裕度を算出し、
    前記各パスについて、算出した前記パスのスラックの余裕度についての重み付けと、算出した前記パスの配線の遅延の余裕度についての重み付けを行い、
    前記各パスについて、重み付けの結果を集計して前記パスに関する遅延の度合を算出し、
    前記各パスのうち、算出した前記パスに関する遅延の度合に基づいて前記クリティカルパスを抽出する、
    ことを特徴とする請求項6に記載の情報処理装置。
  8. 前記制御部は、
    前記各パスのうち、算出した前記パスに関する遅延の度合が所定の度合よりも遅延が大きいことを示すパスをクリティカルパスとして抽出する、
    ことを特徴とする請求項7に記載の情報処理装置。
  9. コンピュータに、
    設計の対象回路内のセルとセル間の接続関係を示す回路情報に基づいて静的タイミング解析を行い、
    前記対象回路内の各パスについて、第1のフリップフロップから第2のフリップフロップまでを含むパス上の各セルの接続先および接続元のうちの、前記第1のフリップフロップを含む前記対象回路内の第1のモジュールと異なる前記対象回路内の第2のモジュールに含まれる前記静的タイミング解析によって得られる接続先および接続元の数に基づいて、前記パスの配線に関する遅延量を導出し、
    前記各パスから、導出した前記パスの配線に関する遅延量に基づきクリティカルパスを抽出する、
    処理を実行させることを特徴とする設計支援方法。
  10. コンピュータが、
    設計の対象回路内のセルとセル間の接続関係を示す回路情報に基づいて静的タイミング解析を行い、
    前記対象回路内の各パスについて、第1のフリップフロップから第2のフリップフロップまでを含むパス上の各セルの接続先および接続元のうちの、前記第1のフリップフロップを含む前記対象回路内の第1のモジュールと異なる前記対象回路内の第2のモジュールに含まれる前記静的タイミング解析によって得られる接続先および接続元の数に基づいて、前記パスの配線に関する遅延量を導出し、
    前記各パスから、導出した前記パスの配線に関する遅延量に基づきクリティカルパスを抽出する、
    処理を実行することを特徴とする設計支援プログラム。
JP2016046171A 2016-03-09 2016-03-09 情報処理装置、設計支援方法、および設計支援プログラム Expired - Fee Related JP6613971B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016046171A JP6613971B2 (ja) 2016-03-09 2016-03-09 情報処理装置、設計支援方法、および設計支援プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016046171A JP6613971B2 (ja) 2016-03-09 2016-03-09 情報処理装置、設計支援方法、および設計支援プログラム

Publications (2)

Publication Number Publication Date
JP2017162200A JP2017162200A (ja) 2017-09-14
JP6613971B2 true JP6613971B2 (ja) 2019-12-04

Family

ID=59857046

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016046171A Expired - Fee Related JP6613971B2 (ja) 2016-03-09 2016-03-09 情報処理装置、設計支援方法、および設計支援プログラム

Country Status (1)

Country Link
JP (1) JP6613971B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05334390A (ja) * 1992-05-29 1993-12-17 Toshiba Corp ハードウェアモデルのクリティカルパス検出装置およびクリティカルパス検出方法
JP4644142B2 (ja) * 2006-02-24 2011-03-02 富士通セミコンダクター株式会社 クリティカルパス推定プログラム、推定装置、推定方法、および集積回路設計プログラム。

Also Published As

Publication number Publication date
JP2017162200A (ja) 2017-09-14

Similar Documents

Publication Publication Date Title
US8839171B1 (en) Method of global design closure at top level and driving of downstream implementation flow
US10354042B2 (en) Selectively reducing graph based analysis pessimism
US9589096B1 (en) Method and apparatus for integrating spice-based timing using sign-off path-based analysis
JP5883676B2 (ja) Lsi設計方法
US10997352B1 (en) Routing congestion based on layer-assigned net and placement blockage
US10740520B2 (en) Pessimism in static timing analysis
US9384310B1 (en) View data sharing for efficient multi-mode multi-corner timing analysis
US11042678B2 (en) Clock gate latency modeling based on analytical frameworks
US8898602B2 (en) Apparatus for design assist and method for selecting signal line onto which test point for test controlling is to be inserted in circuit to be designed
JP4554509B2 (ja) タイミング解析装置及びタイミング解析手法
US6941532B2 (en) Clock skew verification methodology for grid-based design
JP2015166981A (ja) レイアウト検証方法、検証装置、及び検証プログラム
JP6613971B2 (ja) 情報処理装置、設計支援方法、および設計支援プログラム
JP4053969B2 (ja) 半導体集積回路の設計装置および半導体集積回路の設計方法
US9754069B2 (en) Determining slack estimates for multiple instances of a cell in a hierarchical circuit design
US7493580B2 (en) Critical path estimating program, estimating apparatus, estimating method, and integrated circuit designing program
US11163929B1 (en) Generate clock network using inverting integrated clock gate
US7275223B2 (en) Facilitating high-level validation of integrated circuits in parallel with development of blocks in a hierarchical design approach
US8875085B2 (en) Wiring inspection apparatus and wiring inspection method
US9542519B2 (en) Method and design apparatus
JP2015053001A (ja) 半導体集積回路のレイアウト方法、及び、半導体集積回路のレイアウトプログラム
JP6146224B2 (ja) 判定方法、判定プログラム、および判定装置
US11675956B2 (en) Pruning redundant buffering solutions using fast timing models
US11734485B1 (en) Routing congestion based on fractional via cost and via density
US11132490B1 (en) Using negative-edge integrated clock gate in clock network

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190926

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191021

R150 Certificate of patent or registration of utility model

Ref document number: 6613971

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees