JP6819306B2 - 迂回配線チェックプログラム、迂回配線チェック方法、および情報処理装置 - Google Patents

迂回配線チェックプログラム、迂回配線チェック方法、および情報処理装置 Download PDF

Info

Publication number
JP6819306B2
JP6819306B2 JP2017004673A JP2017004673A JP6819306B2 JP 6819306 B2 JP6819306 B2 JP 6819306B2 JP 2017004673 A JP2017004673 A JP 2017004673A JP 2017004673 A JP2017004673 A JP 2017004673A JP 6819306 B2 JP6819306 B2 JP 6819306B2
Authority
JP
Japan
Prior art keywords
cell
path
target path
information
target
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.)
Active
Application number
JP2017004673A
Other languages
English (en)
Other versions
JP2018112995A (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 JP2017004673A priority Critical patent/JP6819306B2/ja
Priority to US15/841,381 priority patent/US10628623B2/en
Publication of JP2018112995A publication Critical patent/JP2018112995A/ja
Application granted granted Critical
Publication of JP6819306B2 publication Critical patent/JP6819306B2/ja
Active 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/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3323Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking
    • 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
    • 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/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/347Physical level, e.g. placement or routing
    • 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/06Power analysis or power optimisation
    • 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

本発明は、迂回配線チェックプログラム、迂回配線チェック方法、および情報処理装置に関する。
従来、半導体集積回路の設計では、RTL(Register Transfer Level)設計やレイアウト設計などが行われる。RTL設計では、ユーザ仕様がレジスタ転送レベルの記述に変換される。RTL設計では、ハードウェア記述言語などによって、半導体集積回路の各部がクロックサイクルごとにどのように動作するかがネットリストなどに記述される。レイアウト設計では、RTLのネットリストを論理合成することにより得られたゲートレベルのネットリストに基づいてレイアウトが行われる。また、レイアウト設計では、素子を配置する配置処理が行われた後に、素子間を繋ぐ配線処理が行われる。
先行技術としては、例えば、半導体集積回路の設計において、レイアウトデータから素子間距離を抽出してばらつき値を計算し、素子配置の許容範囲を設定する技術がある(例えば、以下特許文献1参照。)。
また、先行技術としては、例えば、半導体集積回路のレイアウト検証において、仮配線情報を取得して配置情報を特定し、迂回配線があるか否かを判定する技術がある(例えば、以下特許文献2参照。)。
特開2006−93631号公報 特開2014−186706号公報
しかしながら、従来、パス上のセルの配置が悪いために生じた迂回配線によってタイミングエラーが発生する場合、設計工程の手戻りが生じる場合がある。例えば、配線処理後などのようにレイアウト設計の工程の終盤に迂回配線が発見された場合、RTL設計、論理合成、配置処理などの工程に戻って迂回配線が修正される場合がある。
1つの側面では、本発明は、設計工程の手戻りの抑制を図ることができる迂回配線チェックプログラム、迂回配線チェック方法、および情報処理装置を提供することを目的とする。
本発明の一側面によれば、回路内のパスに関する各々の特徴情報について、前記パス上の各セル間を繋ぐ配線が迂回する可能性があるか否かの判定に用いる枠の大きさに関するサイズ情報を記憶する記憶部にアクセス可能なコンピュータに、検証の対象回路に含まれる検証の対象パスに関する特徴情報と、前記対象パス上の各セルの位置を示す位置情報と、を取得し、前記記憶部と、取得した前記位置情報とに基づいて、前記対象パスの送信セルおよび前記対象パスの受信セルの各位置を基準に設けられた、取得した前記特徴情報についての前記サイズ情報に基づく大きさの枠に、前記対象パスの送信セルと前記対象パスの受信セルとの間の各セルが含まれるか否かを判定し、前記対象パスの送信セルと前記対象パスの受信セルとの間の各セルのうち少なくとも一つのセルが前記枠内に含まれないと判定した場合、前記対象パス上の各セル間を繋ぐ配線が迂回する可能性があることを出力する迂回配線チェックプログラム、迂回配線チェック方法、および情報処理装置が提案される。
本発明の一態様によれば、設計工程の手戻りの抑制を図ることができる。
図1は、本発明にかかる情報処理装置の一動作例を示す説明図である。 図2は、迂回配線例を示す説明図である。 図3は、機械学習DBを用いた全体の設計フローを示す説明図である。 図4は、情報処理装置のハードウェア構成例を示すブロック図である。 図5は、機械学習DBの記憶例を示す説明図である。 図6は、タイミングレポートの一記憶例を示す説明図である。 図7は、情報処理装置の機能的構成例を示すブロック図である。 図8は、矩形形状の検出枠の生成例を示す説明図である。 図9は、円形形状の検出枠の生成例を示す説明図である。 図10は、仮検出枠よりも検出枠が小さくなる一例を示す説明図である。 図11は、判定例を示す説明図である。 図12は、チェック結果出力例を示す説明図である。 図13は、情報処理装置が行う処理手順例を示すフローチャートである。
以下に添付図面を参照して、本発明にかかる迂回配線チェックプログラム、迂回配線チェック方法、および情報処理装置の実施の形態を詳細に説明する。
図1は、本発明にかかる情報処理装置の一動作例を示す説明図である。情報処理装置100は、例えば、半導体集積回路のレイアウト設計における迂回配線をチェックする機能を有するコンピュータである。
従来、半導体集積回路の設計では、RTL設計、論理合成、レイアウト設計などが行われる。RTLのネットリストを論理合成することによりゲートレベルのネットリストが得られる。レイアウト設計では、ゲートレベルのネットリストに基づいてセルを配置する配置処理が行われる。つぎに、レイアウト設計では、セル間を繋ぐ配線処理が行われる。
しかし、従来、パス上のセルの配置が悪いために生じた迂回配線によってタイミングエラーが発生する場合、設計工程の手戻りが生じる場合がある。例えば、配線処理後などのようにレイアウト設計の工程の終盤に迂回配線が発見された場合に、RTL設計、論理合成、配置処理などの工程に戻って迂回配線が修正される場合がある。例えば、論理合成や配置処理は数時間かかるのに対して、配線処理や配線処理後のタイミング検証は数十時間かかる。このため、迂回配線のために工程に手戻りが生じると、配線処理のやり直しも発生し、論理回路設計およびレイアウト設計全体に要する時間が長くなる。また、迂回配線によってタイミングエラーが発生しているか否かを判断するのは、設計者が目視などで評価することになる。このため、設計者に応じてその評価基準が異なるなど、パス上のセルの配置が悪いために生じた迂回配線であるか否かを判別することは、困難である。迂回配線例については、図2を用いて後述する。
そこで、本実施の形態では、情報処理装置100は、パスの特徴情報別の検出枠の大きさ情報を参照して、対象パスの特徴情報に応じた大きさの枠内に対象パス上の各セルが含まれるか否かにより該各セル間の配線が迂回する可能性があるかを判定する。これにより、情報処理装置100は、配線処理前に、セルの配置によって生じうる迂回配線をチェックすることができる。したがって、情報処理装置100は、設計の手戻りを抑制することができる。ひいては、設計時間の短縮化を図ることができる。また、情報処理装置100は、パスの特徴に応じて検出枠のサイズを変更することができ、検出精度の向上を図ることができる。
ここで、パスとは、例えば、データ保持素子間の経路、入力端子からデータ保持素子までの経路、データ保持素子から出力端子までの経路である。データ保持素子としては、例えば、FFなどが挙げられる。パスの始点となるFFや入力端子は、例えば、送信セルとも称する。パスの終点となるFFや入力端子は、例えば、受信セルとも称する。また、受信セルと送信セルとの間の各セルを中間セルとも称する。
記憶部101は、例えば、過去に設計された回路内のパスに関する各々の特徴情報について、パス上の各セル間を繋ぐ配線が迂回する可能性があるか否かの判定に用いる枠の大きさに関するサイズ情報を記憶する。特徴情報としては、例えば、送受信間距離、論理段数、周波数などの少なくともいずれかである。送受信間距離とは、受信セルと送信セルとの間の距離である。論理段数とは、受信セルと送信セルとの間のパス上のゲートの段数である。ここでのゲートとは、論理回路に含まれるトランジスタを含む(マクロ)セルである。ゲートとしては、NORゲート、ORゲート、インバータゲート、バッファゲートなどが挙げられる。周波数は、パスを動作させる最大周波数が設定される。
図1の例では、大きさに関するサイズ情報は、例えば、マージン量によって表される。マージン量は、送信セルと受信セルとを含む最小の形状の仮の枠の面積を何倍にするかの比率である。ここで、枠は、検出枠とも称する。検出枠130の形状は、例えば、図1のように矩形形状であってもよいし、円形形状であってもよく、特に限定しない。
情報処理装置100は、検証の対象回路に含まれる検証の対象パスに関する特徴情報111と、対象パス上の各セルの位置を示す位置情報112と、を取得する。特徴情報111には、送受信間距離と、ゲート段数と、クロック周波数とを示す情報を含む。位置情報112は、送信セル121と、受信セル122と、中間セル123と、中間セル124と、の位置を示す。
情報処理装置100は、記憶部101と、位置情報112とに基づいて、対象パスの送信セルおよび対象パスの受信セルの各位置を基準に設けられた、特徴情報111についてのサイズ情報に基づく大きさの検出枠130に、対象パス上の各セルが含まれるか否かを判定する。具体的には、情報処理装置100は、例えば、対象パスの送信セルおよび対象パスの受信セルの各位置を基準に、取得した特徴情報111についてのサイズ情報が示す大きさの検出枠130を設ける。より詳細に説明すると、情報処理装置100は、例えば、対象パスの送信セルおよび対象パスの受信セルの各位置を基準に、対象パスの送信セルおよび対象パスの受信セルを包含する最小の矩形形状の仮の検出枠130を設ける。情報処理装置100は、記憶部101から、特徴情報111についてのサイズ情報に関する大きさを抽出する。ここでは、「×1.2」が抽出される。そして、情報処理装置100は、仮の検出枠130に対して取得した特徴情報111についてのサイズ情報に関する大きさを乗算した大きさの検出枠130を設ける。このようにして、取得した特徴情報111についてのサイズ情報に基づく大きさの検出枠130が設定される。
そして、情報処理装置100は、位置情報112に基づいて、検出枠130内に各セルが含まれているか否かを判定する。ここで、各セルのパターンサイズは、予ライブラリ化されてあることとしてもよい。情報処理装置100は、例えば、セルの少なくとも一部が検出枠130内に含まれていなければ、セルは検出枠130内に含まれていないと判定する。
情報処理装置100は、対象パス上の各セルのうち少なくとも一つのセルが枠内に含まれないと判定した場合、対象パス上の各セル間を繋ぐ配線が迂回の可能性があることを出力する。情報処理装置100は、例えば、レポートを作成して記憶部101などに格納してもよいし、対象パス上の各セル間を繋ぐ配線が迂回する可能性があることをディスプレイなどの画面に出力してもよい。
図1の例では、中間セル123が検出枠130内に含まれていない。送信セル125から受信セル126までのパス上のセルは中間セル123と中間セル127である。このように、中間セル123は、送信セル121から受信セル122までのパス上のセルだけでなく、送信セル125から受信セル126までのパス上のセルでもある。このため、中間セル123は、送信セル125の近くに配置されてある。情報処理装置100は、対象パス上の中間セル123を繋ぐ配線が迂回する可能性があることを出力する。
このようにして、情報処理装置100は、セルの配置に起因してタイミングエラーとなりうる迂回配線を配線処理前にチェックすることができる。したがって、情報処理装置100は、設計の手戻りを防ぐことができる。また、パスの特徴情報に基づいて検出枠の大きさが決まるため、迂回配線の検出精度の向上を図ることができる。
図2は、迂回配線例を示す説明図である。送信セルから受信セルまでのパス200上には、例えば、素子Aと素子Bとがある。パス200において、例えば、素子Aが、パス200以外の他のパス上の素子でもある場合がある。このような場合、他のパスの配置結果の影響によって、素子Aは、送信セルや素子Bから遠くに配置される場合がある。
図3は、機械学習DBを用いた全体の設計フローを示す説明図である。過去設計情報300などや経験値に基づいて機械学習DB301が作成される(ステップS311)。過去設計情報300は、例えば、過去の回路のレイアウト設計後のレイアウトデータやレイアウトデータに対するタイミング検証のタイミングレポートなどである。また、ステップS311において、例えば、開発者や過去の回路の設計者などが機械学習DB301を作成する。
また、ユーザ仕様がレジスタ転送レベルの記述にされたRTLのネットリスト302やタイミング制約情報303に基づいて、論理合成が行われる(ステップS301)。RTLのネットリスト302は、ハードウェア記述言語などによって、半導体集積回路の各部がクロックサイクルごとにどのように動作するかが記述されてある。また、ステップS301において、RTLのネットリスト302が論理合成されることによりゲートレベルのネットリスト304が得られる。
そして、論理合成後のネットリスト304に応じた配置処理が行われる(ステップS302)。つぎに、配置後のレイアウトデータ305および論理合成後のネットリスト304に基づいてタイミング検証が行われる(ステップS303)。これにより、タイミングレポート306が得られる。
つぎに、情報処理装置100は、機械学習DB301とタイミングレポート306とに基づいて迂回配線チェックを行う(ステップS304)。これにより、チェック結果308などが得られる。ステップS304において迂回配線ありと判定された場合、チェック結果308に基づいて、ステップS301、ステップS302、ステップS303などが再度行われる。ステップS304において迂回配線なしと判定された場合、配線処理が行われる(ステップS305)。そして、タイミング検証が行われる(ステップS306)。これにより、タイミングレポート307が得られる。
(情報処理装置100のハードウェア構成例)
図4は、情報処理装置のハードウェア構成例を示すブロック図である。図4において、情報処理装置100は、CPU(Central Processing Unit)401と、ROM402と、RAM403と、ディスクドライブ404と、ディスク405と、を有する。情報処理装置100は、I/F(Inter/Face)406と、キーボード407と、マウス408と、ディスプレイ409と、を有する。また、CPU401と、ROM402と、RAM403と、ディスクドライブ404と、I/F406と、キーボード407と、マウス408と、ディスプレイ409とは、バス400によってそれぞれ接続される。
ここで、CPU401は、情報処理装置100の全体の制御を司る。ROM402は、ブートプログラムなどのプログラムを記憶する。RAM403は、CPU401のワークエリアとして使用される。ディスクドライブ404は、CPU401の制御にしたがってディスク405に対するデータのリード/ライトを制御する。ディスク405は、ディスクドライブ404の制御で書き込まれたデータを記憶する。ディスク405としては、磁気ディスク、光ディスクなどが挙げられる。
I/F406は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク410に接続され、このネットワーク410を介して他の装置に接続される。そして、I/F406は、ネットワーク410と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F406には、例えばモデムやLANアダプタなどを採用することができる。
キーボード407やマウス408は、利用者の操作により、各種データの入力を受け付けるインターフェースである。ディスプレイ409は、CPU401の指示により、データを出力するインターフェースである。
また、図示を省略するが、情報処理装置100には、カメラから画像や動画を取り込む入力装置やマイクから音声を取り込む入力装置が設けられていてもよい。また、図示を省略するが、情報処理装置100には、プリンタなどの出力装置が設けられていてもよい。
また、本実施の形態では、情報処理装置100のハードウェア構成として、パーソナル・コンピュータを例に挙げているが、これに限らず、サーバなどであってもよい。情報処理装置100がサーバである場合、情報処理装置100と、利用者が操作可能な装置やディスプレイ409などと、がネットワーク410を介して接続されてもよい。
(各種DB等の記憶内容)
つぎに、情報処理装置100が有する各種DB(Database)等の記憶内容について説明する。各種DB等は、例えば、情報処理装置100が有するROM402、RAM403、ディスク405、フラッシュメモリ等の不揮発性の半導体メモリ(図示省略)などの記憶部により実現される。
図5は、機械学習DBの記憶例を示す説明図である。機械学習DB301は、例えば、メーカやデバイス、周波数などの特徴情報に、タイミングエラーの要因別に複数の領域の各々における最大値又は最小値などが対応付けられた情報である。
機械学習DB301は、特徴、マージン量のフィールドを有する。特徴のフィールドは、デバイス、送受信間距離、論理段数、周波数のフィールドを有する。デバイスのフィールドに設定される情報は、設計の対象回路の使用に関する特徴情報である。送受信間距離、論理段数、周波数のフィールドに設定される情報は、設計の対象回路に含まれる各パスの特徴情報である。
デバイスのフィールドには、ターゲットのFPGAの識別情報としてデバイス名が設定される。送受信間距離のフィールドには、例えば、パスの始点となるFFや入力端子と、パスの終点となるFFや出力端子との間の距離が設定される。送受信間距離が長すぎると、配線遅延の増大によりタイミングエラーが発生する場合がある。送受信間距離は、レイアウト用のCADで用いるコンピュータ空間上の長さの単位によって表される。
論理段数のフィールドには、パス上のゲートの段数である。ここでのゲートとは、論理回路に含まれるトランジスタを含む(マクロ)セルである。ゲートとしては、NORゲート、ORゲート、インバータゲート、バッファゲートなどが挙げられる。周波数のフィールドには、設計の対象回路を動作させる最大周波数が設定される。
マージン量のフィールドには、基準となる検出枠に対するマージン量が設定される。基準となる検出枠は、対象パスの送信セルと受信セルとを包含する最小の検出枠である。マージン量は、例えば、送受信間距離が大きいほど、小さくなるように設定される。また、マージン量は、例えば、論理段数が多いほど、小さくなるように設定される。また、マージン量は、周波数が大きいほど、小さくなるように設定される。ここでは、マージン量は、「×数値」によって表される。「×数値」とは、仮検出枠の面積を何倍にするかの比率を示す。
例えば、デバイスが「AB」であり、送受信間距離が「1〜10」であり、論理段数が「5以下」であり、周波数が「100[MHz]」である場合に、マージン量は、「×4」が設定されてある。このような場合、レイアウト用のCADで用いるコンピュータ空間上に定義されたx軸とy軸のそれぞれの仮検出枠の長さを「×4×1/2」だけ大きくした検出枠が生成される。仮検出枠は、検出枠を作成するための仮の枠である。これにより、仮検出枠の4倍の面積の検出枠が生成される。仮検出枠や検出枠については、図8や図9を用いて後述する。
図6は、タイミングレポートの一記憶例を示す説明図である。タイミングレポート306は、図3におけるステップS303によるタイミング検証により得られるレポートである。
タイミングレポート306には、サマリ欄とデータ到着時間の欄とがある。サマリ欄には、パスの送信セルと受信セルとの識別情報が設定される。また、サマリ欄には、パスが動作するクロックの周期の情報が設定される。なお、周期はクロックの周波数の逆数である。情報処理装置100は、タイミングレポート306から周期の情報を取得して周期の逆数の周波数情報を求めることができる。
また、データ到着時間の欄には、合計遅延、遅延増加量、タイプ種別、座標、要素情報の欄を有する。合計遅延の欄には、パス上の各要素までの合計の遅延量が設定される。遅延増加量の欄には、パス上の各要素の遅延が設定される。タイプ種別の欄には、パス上の各要素の種別が設定される。要素の種別としては、例えば、セルを表す「CELL」が挙げられる。座標の欄には、パス上の各要素の位置を示す位置情報として各要素の座標値が設定される。要素情報の欄には、パス上の各要素に関する要素情報が設定される。要素情報としては、要素の識別情報と、要素が送信セルであるか受信セルであるか中間セルであるかを示す情報が設定される。情報処理装置100は、送信セルの座標値と、受信セルの座標値と、各中間セルの座標値を取得することによりパス上の各セルの位置を示す位置情報を得る。情報処理装置100は、送信セルの座標値と、受信セルの座標値とを取得することにより送受信間距離を得ることができる。また、情報処理装置100は、中間セルの個数をカウントすることにより論理段数を得ることができる。
(情報処理装置100の機能的構成例)
図7は、情報処理装置の機能的構成例を示すブロック図である。情報処理装置100は、制御部700と、記憶部101とを有する。制御部700の処理は、例えば、図4に示すCPU401がアクセス可能なROM402、RAM403、ディスク405などの記憶装置に記憶されたプログラムにコーディングされている。そして、CPU401が記憶装置から該プログラムを読み出して、プログラムにコーディングされている処理を実行する。これにより、制御部700の処理が実現される。また、制御部700の処理結果は、例えば、RAM403、ROM402、ディスク405などの記憶装置に記憶される。
記憶部101は、例えば、機械学習DB301と、RTLのネットリスト302と、ゲートレベルのネットリスト304と、レイアウトデータ305と、タイミングレポート306と、を有する。
制御部700は、検証の対象回路に含まれる検証の対象パスに関する特徴情報を取得する。制御部700は、対象パス上の各セルの位置を示す位置情報を取得する。
具体的には、制御部700は、タイミングレポート306を取得する。つぎに、制御部700は、タイミングレポート306から、対象パスの特徴情報を取得する。制御部700は、例えば、対象パスの特徴情報として、送受信間距離、対象パスの論理段数、対象パスで用いられる周波数を取得する。また、制御部700は、例えば、タイミングレポート306から、対象パス上の送信セルと対象パス上の受信セルとの間の中間セルの位置を示す位置情報を取得する。また、制御部700は、例えば、タイミングレポート306から、対象パス上の送信セルおよび受信セルの位置を示す位置情報を取得する。
つぎに、制御部700は、記憶部101を参照して、取得した位置情報に基づいて、対象パスの送信セルおよび対象パスの受信セルの各位置を基準にして設けられ、取得した特徴情報についての大きさを示す情報に応じた大きさの枠を示す枠情報を生成する。枠は、例えば、レイアウト設計用のCADのコンピュータ空間上に生成される。枠情報は、レイアウト設計用のCADのコンピュータ空間上に枠が生成されるような枠の情報である。枠の形状は、矩形形状や円形形状などが挙げられる。
より具体的には、制御部700は、例えば、送信セルおよび受信セルの位置情報に基づいて、送信セルおよび受信セルを囲う最大外形の仮検出枠を示す仮枠情報を生成する。制御部700は、取得した特徴情報についての大きさに関する情報を取得する。制御部700は、例えば、取得した特徴情報に対応するマージン量を取得する。制御部700は、仮検出枠にマージン量を含めた検出枠を示す枠情報を生成する。なお、検出枠の生成例については、図8から図10を用いて後述する。
制御部700は、対象パス上の各セルの位置情報に基づいて、対象パス上の各セルが、枠情報が示す枠に含まれるか否かを判定する。なお、判定例については、図11を用いて後述する。
制御部700は、対象パス上のいずれかのセルが、枠情報が示す検出枠に含まれないと判定された場合、対象パス上の各セル間を繋ぐ配線が迂回する可能性があることを示す情報を出力する。出力例については、図12を用いて後述する。
制御部700は、対象パス上のすべてのセルが、検出枠に含まれると判定した場合、対象回路に含まれる別のパスを新たに対象パスとして、タイミングレポート306から新たに各種情報を取得する。検出枠の大きさはパス別に異なるため、パス別に生成される。対象回路に含まれるすべてのパスについて、検出枠に含まれると判定された場合、図3に示すように、配線処理の工程が行われる。
図8は、矩形形状の検出枠の生成例を示す説明図である。制御部700は、例えば、矩形形状の仮検出枠801を示す仮枠情報を生成する。仮検出枠801は、例えば、送信セルと受信セルを囲う最大外形の矩形形状の枠である。制御部700は、例えば、仮枠情報が示す仮検出枠801にマージン量を加味した検出枠802を示す枠情報を生成する。図8の例では、マージン量が「×2」である。
x軸のプラス方向およびマイナス方向と、y軸のプラス方向およびマイナス方向と、の両方に、仮検出枠801×1/2×1/2の長さ大きくした検出枠802が生成される。図8において、「d0/2=d1×2」である。検出枠802は、y軸にプラス方向およびマイナス方向との合計で1倍になる。これにより、仮検出枠801の2倍の面積の検出枠802が得られる。
図8の例では、制御部700は、x軸のプラス方向とマイナス方向に均等に仮検出枠801を大きくし、x軸とy軸とを均等に仮検出枠801を大きくしているが、これに限らない。例えば、x軸のプラス方向およびマイナス方向との比率やx軸とy軸との比率などが、利用者の操作入力によって異なるようにしてもよい。
図9は、円形形状の検出枠の生成例を示す説明図である。制御部700は、例えば、受信セルおよび送信セルを示す位置情報に基づいて、受信セルと送信セルとの中間位置を算出する。つぎに、制御部700は、例えば、中間位置を中心に、送信セルおよび受信セルの最大外形を囲う最小の円形形状の検出枠を示す仮枠情報を生成する。仮検出枠901は、例えば、送信セルと受信セルを囲う最大外形の円形形状の枠である。
制御部700は、例えば、仮枠情報が示す仮検出枠901にマージン量を加味した検出枠902を示す枠情報を生成する。図9には、図8と同様に、マージン量が「×2」の場合を例に挙げてある。
図10は、仮検出枠よりも検出枠が小さくなる一例を示す説明図である。例えば、パスの送受信間距離が遠すぎる場合、論理段数が多すぎる場合、周波数が高すぎる場合などには、例えば、仮検出枠1001よりも検出枠1002が小さくなることがある。図10の例では、送受信間距離が遠すぎるため、検出枠1002が小さくなる。
図11は、判定例を示す説明図である。制御部700は、例えば、検出枠に素子が含まれているか否かを判定する。図11(1)および図11(2)に示すように、制御部700は、例えば、検出枠に素子の一部が含まれていない場合、検出枠に素子が含まれていないと判定する。また、制御部700は、検出枠に素子のすべてが含まれている場合、検出枠に素子が含まれていると判定する。
図11(1)に示すように、矩形形状の検出枠1101の場合に、制御部700は、素子Aおよび素子Bが検出枠1101内に含まれていると判定する。制御部700は、素子Cは検出枠1101内に含まれていないと判定する。
図11(2)に示すように円形形状の検出枠1102の場合に、制御部700は、素子Aおよび素子Bが検出枠1102内に含まれていると判定する。制御部700は、素子Cは検出枠1102内に含まれていないと判定する。
図12は、チェック結果出力例を示す説明図である。制御部700は、検出枠1101内に含まれていないと判定された素子Cは配線処理終了後に迂回配線またはタイミングエラーの可能性があることを示す情報を出力する。図12の例では、素子Cが検出枠1101の範囲外であるため、制御部700は、配線処理後に、迂回配線によるタイミングエラーの可能性があり、素子Cを検出枠内に配置することを指示するチェック結果308を出力する。制御部700は、例えば、チェック結果308を記憶部101などに記憶させてもよいし、チェック結果308の内容をディスプレイ409などの画面に出力してもよい。
(情報処理装置100が行う処理手順例を示すフローチャート)
図13は、情報処理装置が行う処理手順例を示すフローチャートである。情報処理装置100は、配置処理後のタイミング検証によって得られるタイミングレポート306を取得する(ステップS1301)。
つぎに、情報処理装置100は、タイミングレポート306から、対象パスの中間セルの位置情報、送信セルおよび受信セルの位置情報、対象パスの特徴情報を取得する(ステップS1302)。そして、情報処理装置100は、機械学習DB301からマージン量を抽出する(ステップS1303)。つぎに、情報処理装置100は、送信セルおよび受信セルの位置情報に基づいて仮検出枠を生成する(ステップS1304)。
情報処理装置100は、マージン量を加味した検出枠を生成する(ステップS1305)。つぎに、情報処理装置100は、迂回配線チェックを行う(ステップS1306)。情報処理装置100は、チェック結果を生成して出力し(ステップS1307)、一連の処理を終了する。
以上説明したように、情報処理装置100は、パスの特徴別の枠の大きさ情報を参照して、対象パスの特徴に応じた大きさの枠内にパス上の各セルが含まれるかにより該各セル間の配線が迂回する可能性があるかを判定する。これにより、情報処理装置100は、配線処理前に、セルの配置によって生じうる迂回配線をチェックする。したがって、情報処理装置100は、設計の手戻りを抑制することができる。ひいては、設計時間の短縮化を図ることができる。また、情報処理装置100は、パスの特徴情報に応じて検出枠の大きさを決定するため、迂回配線の検出精度の向上を図ることができる。
特徴情報は、パスを動作させるクロックの周波数を示す情報と、パス上の受信セルとパス上の終点セルとの間の距離を示す情報と、パス上のゲート段数を示す情報との少なくともいずれかを含む。例えば、クロックの周波数が大きいほど、検出枠が小さくなるようにする。また、パス上の受信セルとパス上の終点セルとの間の距離が遠いほど、検出枠が小さくなるようにする。ゲート段数が大きいほど、検出枠が小さくなるようにする。
また、情報処理装置100は、対象パスの特徴情報および対象回路の仕様に関する特徴情報の組み合わせについてのサイズ情報に基づく大きさの検出枠に、対象パスの各セルが含まれるか否かを判定する。これにより、情報処理装置100は、パスの特徴と、回路の仕様に応じて検出枠のサイズを決定することができる。また、仕様に関する特徴情報は、例えば、ターゲットFPGAの識別情報である。FPGAの種類によってFPGAの内部構成が異なる。例えば、迂回配線が発生し易いようなFPGAの内部構成の場合に、検出枠が小さすぎると、FPGAに回路を構成させることができないことがある。また、例えば、迂回配線が発生しにくいようなFPGAの内部構成の場合に、検出枠が大きすぎると、タイミングエラーとなる迂回配線が検出できなくなる。このように、パスの特徴情報だけでなく、FPGAの種類によって検出枠のサイズ情報を変更することにより、迂回配線の検出精度の向上を図ることができる。
なお、本実施の形態で説明した迂回配線チェック方法は、予め用意された迂回配線チェックプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本迂回配線チェックプログラムは、磁気ディスク、光ディスク、USB(Universal Serial Bus)フラッシュメモリなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、迂回配線チェックプログラムは、インターネット等のネットワークを介して配布してもよい。
また、本実施の形態で説明した情報処理装置は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、例えば、上述した情報処理装置の機能をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、情報処理装置を製造することができる。
100 情報処理装置
101 記憶部
111 特徴情報
112 位置情報
121,125 送信セル
122,126 受信セル
123,124 中間セル
130,802,902,1002,1101,1102 検出枠
200 パス
300 過去設計情報
301 機械学習DB
302,304 ネットリスト
303 タイミング制約情報
305 レイアウトデータ
306,307 タイミングレポート
308 チェック結果
700 制御部
801,901,1001 仮検出枠

Claims (6)

  1. 回路内のパスに関する各々の特徴情報について、前記パス上の各セル間を繋ぐ配線が迂回する可能性があるか否かの判定に用いる枠の大きさに関するサイズ情報を記憶する記憶部にアクセス可能なコンピュータに、
    検証の対象回路に含まれる検証の対象パスに関する特徴情報と、前記対象パス上の各セルの位置を示す位置情報と、を取得し、
    前記記憶部と、取得した前記位置情報とに基づいて、前記対象パスの送信セルおよび前記対象パスの受信セルの各位置を基準に設けられた、取得した前記特徴情報についての前記サイズ情報に基づく大きさの枠に、前記対象パスの送信セルと前記対象パスの受信セルとの間の各セルが含まれるか否かを判定し、
    前記対象パスの送信セルと前記対象パスの受信セルとの間の各セルのうち少なくとも一つのセルが前記枠内に含まれないと判定した場合、前記対象パス上の各セル間を繋ぐ配線が迂回する可能性があることを出力する、
    処理を実行させることを特徴とする迂回配線チェックプログラム。
  2. 前記パスに関する各々の特徴情報は、前記パス上のゲート段数を示す情報と、前記パス上の受信セルと前記パス上の終点セルとの間の距離を示す情報と、前記パスを動作させるクロックの周波数を示す情報との少なくともいずれかを含むことを特徴とする請求項1に記載の迂回配線チェックプログラム。
  3. 前記記憶部には、前記回路内のパスに関する各々の特徴情報および前記回路の仕様に関する各々の特徴情報の組み合わせの各々について、前記パス上の各セル間を繋ぐ配線が迂回する可能性があるか否かの判定に用いる枠の大きさを示すサイズ情報を記憶し、
    前記取得する処理では、
    さらに、前記対象回路の仕様に関する特徴情報を取得し、
    前記判定する処理では、
    前記対象パスの送信セルおよび前記対象パスの受信セルの各位置を基準にした、取得した前記対象パスに関する前記特徴情報および前記仕様に関する前記特徴情報の組み合わせについての前記サイズ情報に基づく大きさの枠に、前記対象パスの送信セルと前記対象パスの受信セルとの間の各セルが含まれるか否かを判定する、
    ことを特徴とする請求項1または2に記載の迂回配線チェックプログラム。
  4. 前記回路の仕様に関する各々の特徴情報は、前記回路を内部に構成可能な集積回路の識別情報を含むことを特徴とする請求項3に記載の迂回配線チェックプログラム。
  5. 回路内のパスに関する各々の特徴情報について、前記パス上の各セル間を繋ぐ配線が迂回する可能性があるか否かの判定に用いる枠の大きさを示すサイズ情報を記憶する記憶部にアクセス可能なコンピュータが、
    検証の対象回路に含まれる検証の対象パスに関する特徴情報と、前記対象パス上の各セルの位置を示す位置情報と、を取得し、
    前記記憶部と、取得した前記位置情報とに基づいて、前記対象パスの送信セルおよび前記対象パスの受信セルの各位置を基準に設けられた、取得した前記特徴情報についての前記サイズ情報に基づく大きさの枠に、前記対象パスの送信セルと前記対象パスの受信セルとの間の各セルが含まれるか否かを判定し、
    前記対象パスの送信セルと前記対象パスの受信セルとの間の各セルのうち少なくとも一つのセルが前記枠内に含まれないと判定した場合、前記対象パス上の各セル間を繋ぐ配線が迂回する可能性があることを出力する、
    処理を実行することを特徴とする迂回配線チェック方法。
  6. 回路内のパスに関する各々の特徴情報について、前記パス上の各セル間を繋ぐ配線が迂回する可能性があるか否かの判定に用いる枠の大きさを示すサイズ情報を記憶する記憶部と、
    検証の対象回路に含まれる検証の対象パスに関する特徴情報と、前記対象パス上の各セルの位置を示す位置情報と、を取得し、前記記憶部と取得した前記位置情報とに基づいて、前記対象パスの送信セルおよび前記対象パスの受信セルの各位置を基準に設けられた、取得した前記特徴情報についての前記サイズ情報に基づく大きさの枠に、前記対象パスの送信セルと前記対象パスの受信セルとの間の各セルが含まれるか否かを判定し、前記対象パスの送信セルと前記対象パスの受信セルとの間の各セルのうち少なくとも一つのセルが前記枠内に含まれないと判定した場合、前記対象パス上の各セル間を繋ぐ配線が迂回する可能性があることを出力する制御部と、
    を有することを特徴とする情報処理装置。
JP2017004673A 2017-01-13 2017-01-13 迂回配線チェックプログラム、迂回配線チェック方法、および情報処理装置 Active JP6819306B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017004673A JP6819306B2 (ja) 2017-01-13 2017-01-13 迂回配線チェックプログラム、迂回配線チェック方法、および情報処理装置
US15/841,381 US10628623B2 (en) 2017-01-13 2017-12-14 Non-transitory computer-readable recording medium recording detour wiring check program, detour wiring check method, and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017004673A JP6819306B2 (ja) 2017-01-13 2017-01-13 迂回配線チェックプログラム、迂回配線チェック方法、および情報処理装置

Publications (2)

Publication Number Publication Date
JP2018112995A JP2018112995A (ja) 2018-07-19
JP6819306B2 true JP6819306B2 (ja) 2021-01-27

Family

ID=62840894

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017004673A Active JP6819306B2 (ja) 2017-01-13 2017-01-13 迂回配線チェックプログラム、迂回配線チェック方法、および情報処理装置

Country Status (2)

Country Link
US (1) US10628623B2 (ja)
JP (1) JP6819306B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111858790A (zh) * 2020-04-03 2020-10-30 北京嘀嘀无限科技发展有限公司 一种绕路提醒的方法、装置、电子设备及介质
CN113283212A (zh) * 2021-05-24 2021-08-20 海光信息技术股份有限公司 集成电路绕线质量分析方法、装置、电子设备和存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7350173B1 (en) * 2002-06-11 2008-03-25 Synplicity, Inc. Method and apparatus for placement and routing cells on integrated circuit chips
US6990648B2 (en) * 2003-04-04 2006-01-24 International Business Machines Corporation Method for identification of sub-optimally placed circuits
JP2006093631A (ja) 2004-09-27 2006-04-06 Matsushita Electric Ind Co Ltd 半導体集積回路の製造方法および半導体集積回路の製造装置
EP1907957A4 (en) * 2005-06-29 2013-03-20 Otrsotech Ltd Liability Company INVESTMENT METHODS AND SYSTEMS
US7415687B2 (en) * 2005-10-05 2008-08-19 Lsi Corporation Method and computer program for incremental placement and routing with nested shells
US7904865B2 (en) * 2008-01-23 2011-03-08 International Business Machines Corporation Placement driven routing
TWI403914B (zh) * 2010-03-08 2013-08-01 Mstar Semiconductor Inc 防止壅塞配置裝置及方法
US8627256B2 (en) * 2011-04-25 2014-01-07 Lsi Corporation Method for computing IO redistribution routing
US8984464B1 (en) * 2011-11-21 2015-03-17 Tabula, Inc. Detailed placement with search and repair
JP5772990B2 (ja) * 2012-02-01 2015-09-02 富士通株式会社 設計支援装置,設計支援方法および設計支援プログラム
JP6089853B2 (ja) 2013-03-25 2017-03-08 富士通株式会社 配線検査装置、配線検査プログラム及び配線検査方法
US10268795B2 (en) * 2017-04-20 2019-04-23 Taiwan Semiconductor Manufacturing Company Ltd. Method and system for timing optimization with detour prediction

Also Published As

Publication number Publication date
US10628623B2 (en) 2020-04-21
JP2018112995A (ja) 2018-07-19
US20180203952A1 (en) 2018-07-19

Similar Documents

Publication Publication Date Title
US7472361B2 (en) System and method for generating a plurality of models at different levels of abstraction from a single master model
US9298865B1 (en) Debugging an optimized design implemented in a device with a pre-optimized design simulation
US8869091B2 (en) Incremental clock tree synthesis
US9189591B2 (en) Path-based floorplan analysis
US8539406B2 (en) Equivalence checking for retimed electronic circuit designs
JP6819306B2 (ja) 迂回配線チェックプログラム、迂回配線チェック方法、および情報処理装置
US20130198712A1 (en) Canonical Signature Generation For Layout Design Data
US10430535B2 (en) Verification support program medium, verification support method, and information processing device for verification of a circuit
US20170011139A1 (en) Physically-aware circuit design partitioning
JP2014501968A (ja) 複数の複数コーナー複数モードのシナリオにおける設計要求違反を修正する方法および装置
CN107784185B (zh) 一种门级网表中伪路径的提取方法、装置及终端设备
US20140181491A1 (en) Field-programmable module for interface bridging and input/output expansion
US8910097B2 (en) Netlist abstraction
WO2014106042A1 (en) Abstract creation
US10540463B1 (en) Placement of delay circuits for avoiding hold violations
JP6787024B2 (ja) 設計支援プログラム、設計支援方法、および情報処理装置
US10643012B1 (en) Concurrent formal verification of logic synthesis
US10255396B2 (en) Graphical analysis of complex clock trees
JP6089627B2 (ja) 消費電力見積り装置および消費電力見積り方法
US10049174B2 (en) Exact delay synthesis
US20230205969A1 (en) Techniques for modeling and verification of convergence for hierarchical domain crossings
US10094875B1 (en) Methods, systems, and articles of manufacture for graph-driven verification and debugging of an electronic design
US20230110701A1 (en) Techniques for design verification of domain crossings
US8762904B2 (en) Optimizing logic synthesis for environmental insensitivity
JP2007011477A (ja) 論理回路動作モデル生成装置及び論理回路動作モデル生成方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191008

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201125

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201214

R150 Certificate of patent or registration of utility model

Ref document number: 6819306

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150