JP6065400B2 - 図形検索装置及び図形検索方法 - Google Patents

図形検索装置及び図形検索方法 Download PDF

Info

Publication number
JP6065400B2
JP6065400B2 JP2012075125A JP2012075125A JP6065400B2 JP 6065400 B2 JP6065400 B2 JP 6065400B2 JP 2012075125 A JP2012075125 A JP 2012075125A JP 2012075125 A JP2012075125 A JP 2012075125A JP 6065400 B2 JP6065400 B2 JP 6065400B2
Authority
JP
Japan
Prior art keywords
trace
graphic data
search
search range
graphic
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
JP2012075125A
Other languages
English (en)
Other versions
JP2013206178A (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 JP2012075125A priority Critical patent/JP6065400B2/ja
Priority to US13/739,017 priority patent/US20130262508A1/en
Publication of JP2013206178A publication Critical patent/JP2013206178A/ja
Application granted granted Critical
Publication of JP6065400B2 publication Critical patent/JP6065400B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content

Landscapes

  • Engineering & Computer Science (AREA)
  • Library & Information Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は、図形検索を高速に行うことに関する。
LSI(Large Scale Integration)の設計では、LSIの製造に係る配線、ビア等の2次元空間の大量の図形データを管理し、図形データを検索することが行われている。形状及び大きさが多種にわたる大量の2次元空間の図形データが管理されている。管理されている図形データに対する図形検索では、図形データから次の図形データへと辿りながら(以下、トレースと言う)、目標の図形データを検索することが行われる。
高速検索を実現するために、図形データが存在する2次元空間の領域を再帰的に4つの領域(セル又はバケット)に分割し(四分木)、各セル内に図形データを格納して管理することにより、検索範囲の図形データを絞り込むこと、また、検索の効率化を図るために、全体の図形データを基準座標によってソートし、その後に処理対象となるトレース範囲に含まれるデータを小さな領域に振り分ける分割統治による検索等が提案されている。
特開平2−15637号公報 特開2007−233658号公報 特開2009−104755号公報 特許第3649430号
一般的に図形を検索する場合、限られた狭い範囲に存在する図形データを検索するが、データ規模が膨大になると分割する領域の階層が深くなり、分割数が多くなる。これにより検索しようとする目標の図形データまで辿りつく為の処理が多くなり、検索スピードが低下する。
複数の領域(セル)に跨る図形データが存在する場合、図形データの格納方法として次のような2種類が考えられる。
(1)図形データを分割せず、図形データが格納可能な上位階層の領域(セル)に図形データを格納する方法
(2)最下位の領域に収まるように図形データを分割して管理する方法
である。
複数の領域に跨る図形データが多数存在する場合、上記(1)の方法では、検索領域の対象外となる図形データが上位の領域に多数存在する可能性がある。このケースにおいて、上位に存在するデータに対して、検索の範囲内に存在するか否かの絞り込みに対する処理が増加する問題がある。
また、上記(2)の方法では、図形データが分割されることにより、管理対象となる図形データ数が増加する。例えば、LSIの製造データなどに使用される図形データでは領域の端から端までを結ぶ配線や、微小な区間の配線など、多種多様な配線図形が存在しており、そのような図形データにおいて上記(2)の方法を採用した場合、図形データの規模が倍以上に膨れ上がる恐れがある。
図形データをソートしてバイナリサーチで目的の範囲を検索する手法も考えられるが、大規模データにおいては四分木の方法に比べて更に検索効率が低下してしまう恐れがある。
また、LSIの製造データなどの検証処理では、領域全体に対して局所的な領域をシフトしながら図形を検索し、設計ルール上の問題が無いかを検査するが、データ規模が膨大な場合、検索のたびに領域の絞り込み処理が必要となり、検索処理のオーバーヘッドが大きいと言った問題がある。
1つの側面では、本発明は、図形検索の際に、検索開始付近の局所的な領域の検索を高速に行うことを目的とする。
開示の図形検索装置は、複数の図形データが存在する所定領域について、前記所定領域に含まれる複数の領域の1つを検索範囲として、前記検索範囲内の前記図形データを所定のトレース方向にたどりながら前記検索範囲に接触する前記図形データを検索する図形検索装置であって、前記所定領域内を前記トレース方向に対して垂直方向に区切られたトレース毎に、該トレース方向に従ってトレースされる複数の図形データのうち、最初の図形データへのリンクと、該図形データによって示される図形の長さ及び幅の最大長及び最大幅とを、該トレースを特定するトレース番号に対応付けたトレーステーブルを記憶した記憶部と、前記トレーステーブルを参照して、現在の検索範囲から前記最大幅以上離れたトレースの図形データをスキップし、また、前記トレース方向の座標のうち前記現在の検索範囲の最小座標から前記トレース方向と逆方向に前記最大長以上離れた場所を始点とする図形データをスキップすることによって、前記現在の検索範囲で検索対象とするトレース及び該図形データを絞り込み、絞り込んだ該トレース及び該図形データを検索対象として、前記現在の検索範囲に接触する図形データを検索するとともに、当該検索結果に基づき、前記検索対象とした図形データのうち、該図形データの基準点の前記トレース方向のX座標が前記現在の検索範囲の最大X座標より小さいという条件と、該基準点が前記現在の検索範囲に接するか又は近傍に存在するという条件の両方を満たす図形データと該トレース番号とをリンクした局所トレーステーブルを前記記憶部に記憶させる検索部と、次回の検索範囲における前記検索対象とするトレース及び前記図形データの絞り込み処理の開始位置を前記局所トレーステーブルに記憶されたトレース番号及び図形データに基づき調整するとともに、前記次回の検索範囲における前記検索結果に基づき前記局所トレーステーブルを更新するように前記検索部とを有する。
また、上記課題を解決するための手段として、コンピュータに上記図形検索装置として機能させるためのプログラム、そのプログラムを記録した記録媒体、及び図形検索方法とすることもできる。
1つの実施形態によれば、図形検索の際に、検索開始付近の領域の検索を高速に行うことができる。
配線層の例を示す図である。 配線の図形例を示す図である。 ラインデータを座標によってソートする場合の概念をイメージ化した図である。 ソート例を説明するための図である。 メタルデータテーブルのデータ構造例を示す図である。 VIAデータテーブルのデータ構造例を示す図である。 X方向配線層2bのトレーステーブルを作成した場合のイメージ図である。 Max長及びMax幅の例を示す図である。 トレーステーブルのデータ構成例を示す図である。 検索範囲と図形データとの関係を説明するための図である。 検索方法を説明するための図である。 局所トレーステーブルを用いた検索方法を説明するための図(その1)である。 局所トレーステーブルを用いた検索方法を説明するための図(その2)である。 局所トレーステーブルのデータ構造例を示す図である。 図形検索装置のハードウェア構成を示す図である。 図形検索装置の機能構成例を示す図である。 図形検索処理の概略を説明するためのフローチャート図である。 図形検索処理を詳述するためのフローチャート図である。 図18のステップS13でのトレーステーブルの作成処理を説明するためのフローチャート図である。 図18のステップS15でのトレースの絞込処理を説明するためのフローチャート図である。 図18のステップS18での図形データの絞込処理を説明するためのフローチャート図である。 図18のステップS21での処理を説明するためのフローチャート図である。 リンクアップデートを説明するための図である。 処理時間の比較を示す図である。
以下、本発明の実施の形態を図面に基づいて説明する。本実施例において、LSIの製造データなどのように多様な図形が存在し、データ規模(数)が膨大な図形データにおいて、局所領域に含まれる図形を高速に検索し、図形検索に必要なメモリの増加を少なく抑えられ、局所的な領域をシフトしながら検索する動作において効率的な検索を行う。
以下に、多数の配線層によって構成されるLSIに関する2次元の図形データにおいて、ある特定の図形を検索するために、下記の2つの絞込みにより検索する、本実施例に係る図形検索方法について説明する。
図1に示されるLSI2では、配線がY方向に配線されたY方向配線層2aと、X方向に配線されたX方向配線層2bとが交互に積層され構成される。このようなLSI2の配線及びビアに関する図形データに対して、下記の絞り込みを行う。
(1)全図形データを1次元の単純なソートにより整列させておく。全図形データは、配線方向、及び、予め定められた基準点(図2(B))に基づいてソートされる。
(2)上記(1)でソートされた図形データをグループ化したトレーステーブルを作成する。X方向配線層2bに対して同一Y座標の図形データがグループ化され、Y方向配線層2aに対して同一X座標の図形データがグループ化される。X方向配線層2bに対する同一Y座標、Y方向配線層2aに対する同一X座標を、以下単に同一トレースと言う。また、X方向又はY方向に図形データから図形データへとトレースされるトレース方向は、配線の方向に相当する。
また、上記(2)の同一トレース毎のラインデータの検索には、
(2−1)局所的にシフトする場合はスキップサーチ(図11(B))、
又は、
(2−2)1回のみのサーチではバイナリサーチ(図11(A))
を採用する。
特に、(2−1)局所的にシフトする場合はスキップサーチと、局所的に(1)のトレーステーブルを組み合わせることで、データ総数に依存しない検索を可能とすることにより、検索領域の絞込み処理の効率化を図ることが可能となる。
バイナリサーチの場合はO(log n)、四分木の場合はO(log n)の処理時間となるがスキップサーチと局所的トレーステーブルとの組み合わせにおいて、検索開始点の近傍に検索対象が存在するケースでは、図形データの総数nに依存しない計算時間で検索が可能となる。
(1)先ず、図形データを座標によってソートする。配線方向に従って、図形の左下のXY座標(左下座標)を基準点として用いて、図形データを基準点でソートする。
図2は、配線の図形例を示す図である。図2(A)に示す配線の図形例において、X方向の長さをXlen、Y 方向の長さをYlenで示している。VIAも同様である。図2(B)では、トレース方向の決め方を説明する。図2(B)において、XlenがYlenより小さい場合(Xlen<Ylen)、トレース方向はY方向であると判断する。一方、XlenがYlenより大きい場合(Xlen>Ylen)、トレース方向はX方向であると判断する。Xlen=Ylenの場合は、予めX方向、Y方向のどちらかに属するように定めておく。基準点はいずれの場合も左下座標である。
判断したトレース方向に従って、図形の基準点を用いて図形データをソートする。ソート方法には、図形データを直接ソートする方法と、データを示すインデックスをソートする方法の2種類が考えられる。どちらの方法を採用してもよい。
図形データをソートする例について説明する。図3は、ラインデータを座標によってソートする場合の概念をイメージ化した図である。図3において、X方向配線層2bの場合、図形データは、左下からスタートし右上の図形データで終わるような順番にソートされる。
図4は、ソート例を説明するための図である。図4(A)は、X方向配線層2bの1段分の配線の配置例である。配線A、B、C、及びDが、この順で、左から右へと配置されているとする。
図4(B)では、図4(A)の配線A、B、C、及びDのラインデータをデータ格納領域4内で直接ソートする例を示している。図4(B)において、ラインデータが、基準点に基づいて、配線D、A、C、及びBの順にデータ格納領域4内で直接ソートされることによって、配線A、B、C、及びDの順に格納される。
図4(C)では、配線D、A、C、及びBの順にデータ格納領域4内に格納されたラインデータを直接ソートするのではなく、各配線をインデックスで示すインデックステーブル4−2をソートする例を示している。ソートされたインデックスによって、配線A、B、C、及びDの順を示す。このソート例では、データ格納領域4内の配線D、A、C、及びBの順に変わりない。
次に、トレーステーブルについて説明する。
(2)トレーステーブル
データ量が膨大となる場合では、検索領域の絞り込みを狭くし、検索効率を上げる目的で同一トレースの図形データをグループ化するためにトレーステーブルを作成する。X方向配線層2bの場合、Y座標がトレース座標となる。Y方向配線層2aの場合、X座標がトレース座標となる。
先ず、トレーステーブルを作成する際に参照されるデータテーブルの例について説明する。図5は、メタルデータテーブルのデータ構造例を示す図である。図5に示すメタルデータテーブル51は、配線毎のデータを記憶するテーブルであり、配線層、方向、左下座標(基準点)、右上座標、及び属性等の項目を有する。
配線層には、多層階のうちどの層かを指定する値が示される。方向には、Y方向配線層2aであれば「Y」が示され、X方向配線層2bであれば「X」が示される。左下座標は、配線の左下の座標(MinX、MinY)で示され、基準点として使用される。右上座標は、配線の右上の座標(MaxX、MaxY)で示される。属性には、配線の電気的特性等が示される。MinXとMaxXとで配線の幅Xlenを取得でき、MinYとMaxYとで配線の幅Ylenを取得できる。
図5のデータ構造例では、配線層「1」はX方向配線層2bであり、左下座標(100、100)と右上座標(300、150)とで特定される配線と、左下座標(400、100)と右上座標(500、150)とで特定される配線と、左下座標(600、100)と右上座標(900、200)とで特定される配線等が配置されていることを示している。
図6は、VIAデータテーブルのデータ構造例を示す図である。図6に示すVIAデータテーブル52は、VIA(ビア)毎のデータを記憶するテーブルであり、配線層、左下座標(基準点)、右上座標、及び属性等の項目を有する。
配線層には、多層階のうちどの層かを指定する値が示される。左下座標は、VIAの左下の座標(MinX、MinY)で示され、基準点として使用される。右上座標は、VIAの右上の座標(MaxX、MaxY)で示される。属性には、VIAの電気的特性等が示される。MinXとMaxXとでVIAの幅Xlenを取得でき、MinYとMaxYとでVIAの幅Ylenを取得できる。
図6のデータ構造例では、配線層「1」には、左下座標(100、100)と右上座標(200、200)とで特定されるVIAと、左下座標(400、100)と右上座標(500、200)とで特定されるVIAと、左下座標(600、100)と右上座標(700、200)とで特定されるVIA等が配置されていることを示している。
上述したような、メタルデータテーブル51と、VIAデータテーブル52とを、配線層毎に、左下座標を基準点としてソートし、同一トレース座標をグループ化する。図7は、X方向配線層2bのトレーステーブルを作成した場合のイメージ図である。図7に示すように、X方向配線層2bのトレーステーブル53では、同一Y座標の図形データ5がグループ化される。
グループ内の図形データ5は、基準点に基づいてソートされることにより、左から右へとリンクされたイメージ図で示している。
また、作成したトレーステーブル53では、図8に示すように、各グループの図形データ5の中において、最大の長さを示すMax長と、最大の幅を示すMax幅とを記憶する。
図9は、トレーステーブルのデータ構成例を示す図である。図9において、トレーステーブル53は、グループ毎にトレースに関するデータを記憶し管理するテーブルであり、トレース番号、トレース座標(Y)、データ範囲、データ数、Max長、Max幅、リンク等の項目を有する。
トレース番号は、各トレースを識別するための番号を示す。トレース座標(Y)は、グループ化される図形データのY座標を示す。データ範囲は、データ開始点とデータ終了点とを有する。データ開始点は、配置される図形のうち、同一トレース内のうち基準点のY座標が最も小さい値を示す。データ終了点は、配置される図形のうち、同一トレース内のうち基準点のY座標が最も大きい値を示す。
データ数は、同一トレース内の図形データ5の個数を示す。Max長は、同一トレース内の図形データ5の長さXlenのうちの最大長さを示す。Max幅は、同一トレース内の図形データ5の幅Ylenのうちの最大幅を示す。Max長及びMax幅は、検索範囲の絞り込みに使用する。
リンクは、同一トレース内で、最初にリンクする図形データ5を特定するStartLinkと、最後にリンクする図形データ5を特定するEndLinkとを有する。トレース座標(Y)で示される範囲(トレース座標範囲)のY座標を有する図形データ5のうち、基準点のX座標が最小の図形データ5(即ち、トレースの先頭の図形データ5)を特定する図形データ番号がStartLinkに設定され、基準点のX座標が最大の図形データ5(即ち、トレースの最後の図形データ5)を特定する図形データ番号がEndLinkに設定される。各トレースにおける図形データ5間のリンクは、ソートした順に従えばよい。
上述したデータ構成例において、StartLinkとEndLinkとから、図形データ数を求めてもよい。また、図形データ数とStartLinkとが存在すれば、EndLinkを計算で求めるようにしてもよい。説明の簡略化の為に、トレーステーブル53は図形データ数と、StartLink及びEndLinkとを有する構成としているが、図形データ数、StartLink、EndLinkのいずれか1つを省略してもよい。
図9に示すトレーステーブル53は、トレースに幅を持たせた構造の例を示している。1つのトレーステーブル53が管理する座標を所定間隔(例えば、100毎)とすることができる。
(3)検索方法
一般的に、検索処理は対象となる矩形の領域を指示して対象となる図形データを検索する。トレーステーブル53を利用する場合の検索範囲と図形データ5との関係について説明する。
図10は、検索範囲と図形データとの関係を説明するための図である。図10の例において、検索範囲6の領域と接触する図形データ5を取り出す際に、基準点のY座標が検索範囲6内に含まれるか否かを調査する為にMax幅を使用する(トレース絞込)。Max幅が検索範囲6に達しないトレースは調査する必要がない(スキップする)。
Max長はX座標の範囲を絞り込む為に使用する(図形データ絞込)。Max長以上に離れた場所でX座標を始点とする図形データ5は無視(スキップ)することができる。また、トレース内のMax幅だけではなく、トレーステーブル53でその配線層における全てのトレースの中でのMax幅を記憶しておくことで、検索範囲6の対象となる図形データ5の絞り込みを容易化(高速化)することができる。
各トレース内のX方向の検索に対してはバイナリサーチ又はスキップサーチ(後述)を行う。どちらのサーチを採用するかは、1回のサーチのみの場合はバイナリサーチを使用し、局所的な範囲をシフトしながら連続してサーチする場合はスキップサーチを使用する。
図11は、検索方法を説明するための図である。図11(A)では、バイナリサーチの一例が示されている。バイナリサーチでは、検索範囲6の対象となる図形データ5のデータ数がnの場合、n/2**i(i=1、2、3、・・・)の移動量でサーチする。
図11(B)では、スキップサーチの一例が示されている。スキップサーチでは、検索の開始点より目標に到達するか、又は、目標を通り過ぎるまでは、2、4、6、8などのように移動量を増加させ、目標を通り過ぎた場合はバイナリサーチのように移動量を減らして探索を行う。この例では、2の倍数で移動量を変化させているが、3、4等の倍数を選択することも可能である。
スキップサーチでは、サーチの開始点に近い部分にターゲットが存在する場合には、バイナリサーチより効率的に検索を行うことが可能である。バイナリサーチでは検索時の移動回数はデータ数nに依存しているが、スキップサーチではデータ数nに依存しないサーチを可能とする。
(4)局所トレースデータ
局所トレーステーブルを用いて局所的な領域をシフトしながら検索を行う。図12及び図13は、局所トレーステーブルを用いた検索方法を説明するための図である。図12及び図13中、検索範囲1から検索範囲2へと変わる場合のトレーステーブル53、局所トレーステーブル54、図形データ5との関係を示している。トレーステーブル53では、簡易的にトレース番号1、2、3、・・・のみを示している。
局所トレーステーブル54は、検索範囲に関係するトレースの情報と、基準点が検索範囲より小さくかつ検索範囲に接するか又は近傍に存在する図形データ5へのリンクを保持するテーブルである。
図12では、検索範囲1から検索範囲2へと変わる前の、検索範囲1を処理する場合の例を示している。図12に例示されるように局所トレーステーブル54では、基準点が検索範囲1より小さくかつ検索範囲に接するか又は近傍に存在する図形データ5へリンクされる。局所トレーステーブル54には、トレース番号1、4、5、6、及び7が保持される。一方、それ以外のトレース番号2、3等の図形データ5は、検索範囲1に接触しないため、局所トレーステーブル54には登録されない。
検索範囲1から検索範囲2へと変わると、図13に例示されるように局所トレーステーブル54では、基準点が検索範囲2より小さくかつ検索範囲に接するか又は近傍に存在する図形データ5へリンクされる。局所トレーステーブル54には、トレース番号1、4、5、6、及び7が保持される。一方、それ以外のトレース番号2、3等の図形データ5は、検索範囲2に接触しないため、局所トレーステーブル54には登録されない。
最初の検索において、図12に例示されるように、検索範囲1に対して対象となる図形データ5に関して、トレース番号と図形データ5へのリンクとが、局所トレーステーブル54に保持される。次の検索時において、検索範囲2のトレース方向に変化が無い場合、或いは、変化があってもトレース座標範囲が前回のトレース範囲に含まれている場合は、前回記憶した局所トレーステーブル54の内容を利用してスキップサーチにて近傍のサーチを行う。このサーチ結果を次回の検索用に記憶する。
このように局所領域をシフトしながら検索を行うケースでは、局所トレーステーブル54とスキップサーチとを組み合せることで、対象となる図形データ5のデータ数の絞り込みを効率的に行うことができる。また、大規模データにおいては大幅な高速化が可能となる。
図14は、局所トレーステーブルのデータ構造例を示す図である。図14において、局所トレーステーブル54は、トレース番号、リンク等の項目を有する。局所トレーステーブル54のトレース番号を用いてトレーステーブル53を参照し、トレーステーブル53に記憶されているデータ範囲(データ開始点及びデータ終了点)、Max長、Max幅等のデータを参照しながら、対象となる図形データ5へのリンクを記憶して管理する。
インデックステーブル4−2(図4)が作成される場合には、リンクはインデックス(例えば、図形データ5の番号)を示す。
本実施例の四文木への適用について説明する。
(5)四分木への適用
(1)〜(4)の機構は単体でも利用可能であるが、四分木への応用も可能である。
四分木のセルのサイズを大きくすると、検索対象の図形データ5のデータ数が増えるために、一般的に検索時間が増加する。
セルのサイズを大きめに設定し、セル内の図形データ5に対して(1)〜(4)を適用することで検索効率を落とさずに、更に、データ分割によるデータ規模増大を抑えながら、かつ、局所領域をシフトしながら検索を行うケースに対しても高速な検索が可能となる。
以下、上述した本実施例に係る処理を行う図形検索装置について説明する。
(6)図形検索装置
図形検索装置100(図15)にて行われる図形検索処理は、LSI設計における配線処理などの2次元空間の図形処理、又は、設計者の指示に応じて行われる処理である。
図15は、図形検索装置のハードウェア構成を示す図である。図15において、図形検索装置100は、コンピュータによって制御される端末であって、CPU(Central Processing Unit)11と、主記憶装置12と、補助記憶装置13と、入力装置14と、表示装置15と、出力装置16と、通信インターフェース17と、ドライブ18とを有し、バスBに接続される。
CPU11は、主記憶装置12に格納されたプログラムに従って図形検索装置100を制御する。主記憶装置12には、RAM(Random Access Memory)及びROM(Read-Only Memory)等が用いられ、CPU11にて実行されるプログラム、CPU11での処理に必要なデータ、CPU11での処理にて得られたデータ等を格納する。また、主記憶装置12の一部の領域が、CPU11での処理に利用されるワークエリアとして割り付けられている。
補助記憶装置13には、ハードディスクドライブが用いられ、各種処理を実行するためのプログラム等のデータを格納する。補助記憶装置13に格納されているプログラムの一部が主記憶装置12にロードされ、CPU11に実行されることによって、各種処理が実現される。記憶部130は、主記憶装置12及び/又は補助記憶装置13を有する。
入力装置14は、マウス、キーボード等を有し、LSI2の設計者が図形検索装置100による処理に必要な各種情報を入力するために用いられる。表示装置15は、CPU11の制御のもとに必要な各種情報を表示する。出力装置16は、プリンタ等を有し、ユーザからの指示に応じて各種情報を出力するために用いられる。通信インターフェース17は、例えばインターネット、LAN(Local Area Network)等に接続し、外部装置との間の通信制御をするための装置である。
図形検索装置100によって行われる処理を実現するプログラムは、例えば、CD−ROM(Compact Disc Read-Only Memory)等の記憶媒体19によって図形検索装置100に提供される。即ち、プログラムが保存された記憶媒体19がドライブ18にセットされると、ドライブ18が記憶媒体19からプログラムを読み出し、その読み出されたプログラムがバスBを介して補助記憶装置13にインストールされる。そして、プログラムが起動されると、補助記憶装置13にインストールされたプログラムに従ってCPU11がその処理を開始する。尚、プログラムを格納する媒体としてCD−ROMに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。コンピュータ読取可能な記憶媒体として、CD−ROMの他に、DVDディスク、USBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
図16は、図形検索装置の機能構成例を示す図である。図16において、図形検索装置100は、制御部21と、図形データ取込部22と、検索範囲入力部23と、検索部24と、検索結果出力部25とを有する。制御部21と、図形データ取込部22と、検索範囲入力部23と、検索部24と、検索結果出力部25の夫々は、対応するプログラムをCPU11が実行することによって行われる処理によって実現される。図形データ取込部22と、検索範囲入力部23と、検索部24と、検索結果出力部25とは、夫々、制御部22によって制御される。
また、記憶部130は、データベース31、データ格納領域4、インデックステーブル4−2、トレーステーブル53、局所トレーステーブル54、前回検索範囲55、今回検索範囲56、検索結果57等を有する。
制御部21は、トレーステーブル53と局所トレーステーブル54とを用いた図形検索処理全体の制御を行い、図形データ取込部22と、検索範囲入力部23と、検索部24と、検索結果出力部25とを制御する。
図形データ取込部22は、データベース31から読み込んだ配線及びVIAの図形データ5を、各配線層のトレース毎に、基準点を用いてトレース方向にソートして、データ格納領域4に格納する。データベース31から読み込んだ図形データ5は、データ格納領域4のメタルデータテーブル51及びVIAデータテーブル52として格納される。図形データ5は、テーブル51及び52内でソートされる。
又は、インデックステーブル4−2を用いる場合、図形データ取込部22は、ソートせずに、インデックステーブル4−2の図形データ5を指し示すインデックスをソートして格納する。この場合、ソート処理時のデータ移動量を少なくすることが可能となり(図4)、大規模なデータにおいてはソート時間を短縮することができる。
検索範囲入力部23によって、検索対象の座標の範囲が指定される。検索部24は、前回の検索範囲を示す前回検索範囲55と、新規に指定された検索範囲を示す今回検索範囲56との差分を判断して、局所トレースが使用可能な場合は、局所トレーステーブル54を使用してスキップサーチを実施する。検索範囲に大幅なずれがある場合、又は局所トレーステーブル54が作成されていない場合についてはバイナリサーチを使用し、局所トレーステーブル54を作成しながら検索対象の抽出を行う。後述される図20及び図21のフローチャートでは、処理の簡略化のためにバイナリサーチを使用せず、スキップサーチを行うフローとなっている。データ規模が小さい場合、このように処理の簡略化のためにスキップサーチで統一しても性能差はでない。
検索結果出力部25は、検索部24で抽出されたデータを保持する。
データベース31は、LSI2の配線、VIA(ビア)の形状等の図形データ5を含めて、LSI2の製造に係るデータを記憶し管理するためのデータベースである。図形データ取込部22によって、配線、VIA(ビア)の図形データ5が取り込まれデータ格納領域4に格納されソートされる。
インデックステーブル4−2は、図4(C)で説明したように、図形データA〜Dの夫々を示すインデックスがソートされて格納される。図形データ取込部22によって、データ格納領域4内のメタルデータテーブル51及びVIAデータテーブル52に格納される図形データ5を直接ソートする場合、インデックステーブル4−2は不要となる。
トレーステーブル53は、図9で説明したように、予めソートされた図形データ5のうち、各トレースの先頭の図形データ5へリンクする。データ格納領域4又はインデックステーブル4−2において、各トレースの先頭の図形データ5へリンクする。
局所トレーステーブル54は、図14で説明したように、検索範囲に対して対象となるトレース番号と図形データ5へのリンクとを格納し管理する。局所トレーステーブル54は、検索処理中にアップデートされ、前回の検索で使用したデータを示す。
前回検索範囲55は前回の検索範囲を示し、今回検索範囲56は新規に指定された検索範囲を示す。前回検索範囲55と今回検索範囲56とは、検索部24によって参照される。検索結果57は、検索範囲内であると判断された図形データ5を含む。
図形検索装置100による図形検索処理の概略について図17で説明する。図17は、図形検索処理の概略を説明するためのフローチャート図である。図17に示す図形検索処理において、図形データ取込部22は、図形データ5をデータベース31から読み込み、データ格納領域4に記憶して(ステップS1)、データ格納領域4内、又は、インデックステーブル4−2を用いてソートする(ステップS2)。
制御部21は、検索範囲入力部23によって、検索範囲を入力する(ステップS4)。制御部21は、検索部24に、入力された検索範囲で対象となるトレースを検索させ(ステップS5)、また、図形データ5を検索する(ステップS6)。検索結果57が記憶部130に記憶される。そして、制御部21は、検索結果出力部25によって、検索範囲で対象となる図形データ5を含む検索結果57を出力させる(ステップS7)。
制御部21は、検索終了か否かを判断する(ステップS8)。制御部21は、検索が終了していない場合、ステップS4へと戻り、上記同様の処理を繰り返す。一方、制御部21は、検索が終了した場合、この図形検索処理を終了する。
図18は、図形検索処理を詳述するためのフローチャート図である。図18において、図形データ取込部22は、データベース31より図形データ5を読み込んで、データ格納領域4に格納する(ステップS11)。
図形データ取込部22は、基準点を用いて図形データ5をソートする(ステップS12)。インデックステーブル4−2が存在する場合は、図形データ5を指し示すインデックスを作成してインデックステーブル4−2に記憶した後に、図形の基準点に基づいてインデックステーブル4−2をソートする。
制御部21は、図形データ取込部22によってソートされたインデックステーブル4−2又はデータ格納領域4に記憶される図形データ5を参照して、図7に示すように、トレース毎に先頭の図形データ5へリンクするトレーステーブル53を作成する(ステップS13)。また、この時、同一トレース内に含まれる図形データ5のなかで、最大となる長さ(Max長)と、最大となる幅(Max幅)とがトレーステーブル53に記憶される。制御部21によるトレーステーブル53の作成処理は、図19で詳述される。
検索範囲入力部23は、配線処理又は設計者による指示に応じて図形の検索範囲を示す(Xmin、Ymin)及び(Xmax、Ymax)を入力し、記憶部130に今回検索範囲56として記憶する(ステップS14)。
制御部21は、検索部24によって、トレースを絞り込む(ステップS15)。図10に示すように、検索範囲となるトレース座標を調査するための最初のトレース番号が求められる(トレースの頭出し)。検索部24によるトレースの絞込処理は、図20で詳述される。
ステップS15にて頭出ししたトレース番号からトレース番号の最後までループする(ステップS16:ループ1)。ループ毎に、トレースが検索範囲外であるか否かが判断される(ステップS17:トレース座標の範囲チェック)。トレースが検索範囲外か否かは、図10に示されるように、検索範囲6に対してMax幅が評価されることにより判断される。トレースが検索範囲外である場合、制御部21は、ループ1を抜けて、ステップS22へと進む。
トレースが検索範囲外でない場合、制御部21は、検索部24によって、検索範囲外のトレースにグループ化される図形データ5を読み飛ばし、検索対象となるトレース毎に図形データ5の頭出し(図12及び図13)を行うことによって、図形データ5の絞込処理を行う(ステップS18)。この図形データ5の絞込処理では、図10に示されるMax長が参照される。検索部24による図形データ5の絞込処理は、図21で詳述される。
検索対象となる図形データ5の検索を同一トレースの最後までループする(ステップS19:ループ2)。制御部21は、図形データ5の基準点が検索範囲内であるか否かを判断する(ステップS20)。基準点が検索範囲を超えている場合、制御部21は、ループ2を抜けて、ステップS22へと進む。
一方、図形データ5の基準点が検索範囲内の場合、制御部21は、検索部24によって、検索範囲内の図形データ5を含む検索結果57を記憶部130に記憶し、また、同時に局所トレーステーブル54を作成する(ステップS21)。検索範囲内の候補となりうる全ての図形データ5がチェックされ、検索範囲と図形データ5の矩形が重なる場合に記憶部130に記憶される。
ループ2及びループ1を終了すると、制御部21は、検索結果出力部25によって、記憶部130に記憶された検索結果57を出力させる(ステップS22)。検索結果出力部25は、設計者によって検索範囲が指定された場合、検索結果57を表示装置15又は出力装置16に検索結果57の内容を出力する。
図19は、図18のステップS13でのトレーステーブルの作成処理を説明するためのフローチャート図である。図19において、制御部21は、処理トレースTRCを初期化する(ステップS31)。
制御部21は、全図形データの最後までループする(ステップS32:ループ1)。制御部21は、データ格納領域4から順に図形データ5を読み出して、制御部21は、配線の方向(トレース方向)がX方向であるか否かを判断する(ステップS33)。配線の方向(トレース方向)は、図5に示すように、メタルデータテーブル51の方向の値が参照される。
X方向を示す場合、制御部21は、処理トレースTRCにMinY(基準点のY座標)を設定し(ステップS34)、トレーステーブル53を作成する際の作成モードにX方向を設定する(ステップS35)。一方、Y方向を示す場合、制御部21は、処理トレースTRCにMinX(基準点のX座標)を設定し(ステップS36)、トレーステーブル53を作成する際の作成モードにY方向を設定する(ステップS37)。
その後、制御部21は、処理トレースTRCが前回と同一か否かを判断する(ステップS38)。処理トレースTRCが前回と同一の場合、制御部21は、ステップS41へと進む。処理トレースTRCが前回と同一でない場合、制御部21は、トレーステーブル53に新たな処理トレースTRCを追加する(ステップS39)。新たな処理トレースTRCのStartLinkに図形データ5の図形データ番号を設定する(ステップS40)。
制御部21は、トレーステーブル53の処理トレースTRCのEndLinkに図形データ5の図形データ番号を設定し(ステップS41)、処理トレースTRCの図形データ数を1インクリメントする(ステップS42)。
制御部21は、トレーステーブル53の処理トレースTRCのMax長、Max幅をアップデートする(ステップS43)。制御部21は、データ格納領域4から読み出した図形データ5のXlenがMax長より大のとき、処理トレースTRCのMax長をXlenでアップデートし、YlenがMax幅より大のとき、処理トレースTRCのMax幅をYlenでアップデートする。
制御部21は、データ格納領域4に格納されている図形データ5の全てに対して処理を終了した場合、このトレーステーブル53の作成処理を終了する。
図20は、図18のステップS15でのトレースの絞込処理を説明するためのフローチャート図である。トレースの絞込処理では、検索範囲となるトレース座標を調査するための最初のトレース番号を取得する。
図20において、検索部24は、前回の結果が利用可能か否かを判断する(ステップS51)。前回の結果が利用可能な場合、検索部24は、局所トレーステーブル54を利用して、スタート位置を調整する(ステップS52)。前回の局所トレーステーブル54(前回のトレース範囲)が利用可能な場合、つまり、前回と今回とで一部でも検索範囲がオーバラップする場合、前回の局所トレーステーブル54を利用して、トレースの頭出しを行う場合のトレースの初期値とする。
一方、前回の結果が利用できない場合、検索部24は、スタート位置を0番号のトレースに設定する(ステップS53)。前回の局所トレーステーブル54(前回のトレース範囲)が無関係な場合、スキップサーチの開始点を先頭(0)に設定する。尚、このフローでは、スキップサーチを使用するフローとなっているが、スキップサーチではなく、バイナリサーチを行うことも可能である。
検索部24は、トレーステーブル53を参照して、スタート位置のトレースから、検索範囲で対象となるトレースを特定する(ステップS54:ループ1)。検索部24は、トレーステーブル53からスタート位置のトレースから順にトレースを1つ読み出して、座標範囲を計算する(ステップS55)。トレーステーブル53を作成する際の作成モードがX方向の場合、検索部24は、同一トレース内の図形のMax幅とトレース座標とからこのトレース内に含まれる図形の範囲を計算する。
そして、検索部24は、このトレースが検索範囲内であるか否かを判断する(ステップS56:図10)。検索範囲内である場合、検索部24は、トレースを微調整し(ステップS56−2)、このトレースの絞込処理を終了する。検索部24は、トレースが検索範囲となった場合に検索範囲の先頭となるトレースを求める為に、マイナス方向へトレースを移動してトレース内の図形データ5の範囲をチェックしながらトレースの開始点を求める。例えば、スキップサーチを使用する場合は、トレース毎のMax幅とは別に、全トレースでのMax幅(トレース毎のMax幅の中で最大となるMax幅)を使用して範囲を狭めてゆく。そのトレースが検索範囲に関係するかしないかはトレース毎の判断が必要となる為、全トレースでのMax幅を用いた絞込を行った後に、各トレース単位に詳細なチェックを行う。そのトレース単位のチェックで使用するトレースの開始点を調整する。
一方、検索範囲外である場合、検索部24は、範囲をオーバしたか否かを判断する(ステップS57)。範囲をオーバした場合、検索部24は、移動方向を−(マイナス)に設定し(ステップS58)、オーバフラグをONに設定する(ステップS59)。
スキップサーチの途中で検索範囲の上位のトレース番号をオーバした場合には、移動量を増加−>減少へ切り替える必要がある。範囲をオーバした場合は、記憶部130内のオーバフラグをONにし、後続の処理にて移動量の計算に使用する。
一方、範囲をオーバしていない場合、検索部24は、移動方向+(プラス)に設定する(ステップS60)。検索部24は、スキップサーチのトレース番号が、検索範囲から外れた場合、かつ、検索範囲の上位のトレース番号をオーバした場合に、次にチェックするトレースを現在のトレースから−(マイナス)方向に、それ以外(即ち、検索範囲から外れた場合、かつ、検索範囲の下位のトレース番号より小さい場合)は+(プラス)方向に設定する。
検索部24は、オーバフラグがONか否かを判断する(ステップS61)。オーバフラグがONの場合、検索部24は、バイナリサーチのように移動量を1/2(移動量(N)=N/2)で絞り込む(ステップS62)。一方、オーバフラグがOFFの場合、検索部24は、K倍(Kは2以上の定数)により移動量を増加させる(ステップS63)。
そして、検索部24は、現在のトレース番号と、ステップS58又はS60で求めた移動方向、ステップS62又はS63で求めた移動量から、次にチェックするトレース番号を算出し(ステップS64)、ステップS55へと戻り、上述同様の処理を繰り返す(ループ1)。検索部24は、ステップS54のループ1が終了した場合、トレーステーブル53に対象となるトレースが存在しないと判断して(ステップS65)、このトレースの絞込処理を終了する。
図21は、図18のステップS18での図形データ5の絞込処理を説明するためのフローチャート図である。図21では、インデックステーブル4−2を利用する場合で説明する。
図21において、検索部24は、前回の結果が利用可能か否かを判断する(ステップS71)。前回の結果が利用可能な場合、検索部24は、局所トレーステーブル54を利用して、スタート位置を調整する(ステップS72)。前回の局所トレーステーブル54(前回のトレース範囲)が利用可能な場合、つまり、前回検索範囲55と今回検索範囲56とで一部でも検索範囲がオーバラップする場合、前回の局所トレーステーブル54を利用して、トレースの頭出しを行う場合のトレースの初期値とする。
一方、前回の結果が利用できない場合、検索部24は、スタート位置を0番号のトレースに設定する(ステップS73)。前回の局所トレーステーブル54(前回のトレース範囲)が無関係な場合、スキップサーチの開始点を先頭(0)に設定する。尚、このフローでは、スキップサーチを使用するフローとなっているが、スキップサーチではなく、バイナリサーチを行うことも可能である。
検索部24は、図18のステップS16で決定した検索対象のトレーステーブル53のトレース内に存在する図形データをスキップサーチで検索する(ステップS74:ループ1)。
検索部24は、トレーステーブル53からスタート位置のトレースから順にトレースを1つ読み出して、トレース内の図形データ5のMax長から検索範囲に対して図形データ5の基準点がどこに有るべきかを計算する(ステップS75)。トレーステーブル53を作成する際の作成モードがX方向の場合、トレース内のMax長と検索範囲の座標(MinX)から調べるべき図形の基準点がどこに有るべきかを求める。基準点(x座標)SX=MinX − Max長で求められる。
そして、検索部24は、図形データ5が検索範囲内であるか否かを判断する(ステップS76:図10)。トレース内の図形データ5の基準点をPosXとすると、
PosX > SX
となる図形データ5を検索して、更に、図形データ5の長さを使用して、図形データ5が検索範囲に入るか否かを判断する。最初に見つかった図形データ5を以降の検索開始点とする。
検索範囲内である場合、検索部24は、開始の図形データ5を微調整し(ステップS76−2)、この図形データ5の絞込処理を終了する。検索部24は、図形データ5が検索範囲となった場合に検索範囲の先頭となる図形データ5を求める為にマイナス方向へトレースを移動してトレース内の図形データ5の範囲をチェックしながら先頭の図形データ5を求める。
一方、検索範囲外である場合、検索部24は、範囲をオーバしたか否かを判断する(ステップS77)。検索範囲をオーバした場合、検索部24は、移動方向を−(マイナス)に設定し(ステップS78)、オーバフラグをONに設定する(ステップS79)。
スキップサーチの途中でトレース方向の座標(トレース方向が、X方向であればx座標、Y方向であればy座標)に対して検索範囲をオーバした場合には、移動量を増加−>減少へ切り替える必要がある。検索範囲をオーバした場合は、記憶部130内のオーバフラグをONにし、後続の処理にて移動量の計算に使用する。
一方、検索範囲をオーバしていない場合、検索部24は、移動方向+(プラス)に設定する(ステップS80)。検索部24は、検索範囲から外れた場合、かつ、検索範囲をオーバした場合に、次にチェックする図形データ5を現在の図形データ5から−(マイナス)方向に、それ以外は+(プラス)方向に設定する。
検索部24は、オーバフラグがONか否かを判断する(ステップS81)。オーバフラグがONの場合、検索部24は、バイナリサーチのように移動量を1/2(移動量(N)=N/2)で絞り込む(ステップS82)。一方、オーバフラグがOFFの場合、検索部24は、K倍(Kは2以上の定数)により移動量を増加させる(ステップS83)。
そして、検索部24は、現在の図形データ5の番号と、ステップS78又はS80で求めた移動方向、ステップS82又はS83で求めた移動量とから、次にチェックする図形データ5の番号を算出し(ステップS84)、ステップS75へと戻り、上述同様の処理を繰り返す(ループ1)。検索部24は、ステップS74のループ1が終了した場合、インデックステーブル4−2に対象となる図形データ5が存在しないと判断して(ステップS85)、このトレースの絞込処理を終了する。
図22は、図18のステップS21での図形データ5の絞込処理を説明するためのフローチャート図である。図22に示すフローは、同一トレース内の図形データ5毎に行われ、局所レーステーブル54のリンクアップデートと、検索結果57を保存する処理とを行う。図22において、検索部24は、図形データ5が検索範囲に接触するか否かを判断する(ステップS91)。
検索範囲に接触する場合、検索部24は、記憶部130に記憶されている接触フラグがONに設定されているか否かをチェックすることによって、図形データ5が最初に接触した図形データ5であるのか否かを判断する(ステップS92)。図形データ5が最初に接触した図形データ5でないと判断した場合(接触フラグがONである場合)、検索部24は、ステップS95へと進む。
一方、図形データ5が最初に接触した図形データ5であると判断した場合(接触フラグがOFFの場合)、検索部24は、局所トレーステーブル54に図形データ5へのリンクを設定して(ステップS93)、接触フラグをONに設定する(ステップS94)。
検索部24は、記憶部130内の検索結果57に図形データ5を追加して記憶して(ステップS95)、この図形データ5の絞込処理を終了する。図形データ5を特定する番号を検索結果57に記憶してもよい。
検索範囲に接触しない場合、検索部24は、局所トレーステーブル54のリンクをシフトさせて(ステップS96)、この図形データ5の絞込処理を終了する。
ステップS93及びS96のリンクアップデートについて図23で説明する。図23は、リンクアップデートを説明するための図である。図23(A)では、ステップS93での処理によって、局所トレーステーブル54が最初の図形データ5にリンクしている状態を示している。検索範囲に接触する最初の図形データ5が、局所トレーステーブル54の検索範囲の対象となるトレース毎にリンクされている。
また、図23(B)では、ステップS96での処理によって、検索範囲に接触する図形データ5が現われない間に、局所トレーステーブル54のリンクをシフトする動きを示している。作成モードがX方向の場合、検索範囲に接触する図形データ5が現われない間は、局所トレーステーブル54のリンクはX方向へシフトしながらアップデートされる。
局所トレーステーブル54のリンクがアップデートされることによって、局所的な領域8aがシフトされる。
制御部21は、図形データ取込部22と、検索範囲入力部23と、検索部24と、検索結果出力部25とを制御することによって、図形データ5が存在する2次元空間の領域を再帰的に4つの領域(セル又はバケット)に分割した(四分木)セル毎に、セル内に存在する図形データ5に対して、上述した図形検索処理を行うこともできる。
図24は、処理時間の比較を示す図である。図24において、横軸にデータ数を示し、縦軸に処理時間(マイクロ秒)を示す。本実施例を適用したスキップサーチ(■)は、本実施例の適用のないバイナリーサーチ(◆)と比較して、データ数の増加に伴う処理時間の増加を大幅に少なくすることができる。
上述したように、本実施例に係る図形検索装置100では、LSI2の製造データなどのように2次元空間の大量の図形データ5を管理し、図形検索処理を行う際に、図形データ5を1次元の単純なソートにより整列させた後、座標範囲を管理するトレーステーブル53と、前回の検索開始点(リンクした図形データ5)を管理する局所的な検索用の局所トレーステーブル54とを用いたスキップサーチによって、局所的な領域8aの図形データをシフトしながら繰り返して検索する。このような本実施例に係るスキップサーチによって、省メモリかつ図形データ5の総数に依存しない高速な検索を可能とする。
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
所定領域に含まれる複数の領域の1つを検索範囲として、前記検索範囲に含まれる複数の図形データの各々をソートしたソート結果に基づいて前記検索範囲に含まれる図形データをトレースして得られる該図形データに関する情報を含む第1のトレース情報を記憶した記憶部と、
前記記憶部に記憶された前記第1のトレース情報に含まれる情報に対応する図形データから開始して、当該図形データを含む検索範囲に隣り合う検索範囲に向けて該図形データの検索を行って、前記第1のトレース情報の更新を行う処理を制御する制御部と
を有することを特徴とする図形検索装置。
(付記2)
前記記憶部は、前記所定領域内をトレース方向に対して垂直方向に区切られたトレース毎に、該トレース方向に従ってトレースされる複数の図形データのうち、最初の図形データへのリンクと、該図形データによって示される図形の長さ及び幅の最大長及び最大幅とを、該トレースを特定するトレース番号に対応付けた第2のトレース情報を記憶し、
前記制御部によって制御される、前記記憶部に記憶された前記第2のトレース情報を参照することによって、前記隣り合う検索範囲から前記最大幅以上離れたトレースの図形データをスキップし、また、前記トレース方向の座標のうち該隣り合う検索範囲から前記最大長以上に離れた場所を始点とする図形データをスキップすることによって前記検索範囲を前記隣り合う検索範囲へとシフトさせて検索した、該隣り合う検索範囲で対象となるトレースのトレース番号と、該トレース内で検索対象となる図形データへのリンクとで前記第1のトレース情報を更新する検索部
を有することを特徴とする付記1記載の図形検索装置。
(付記3)
前記検索部は、
前記図形データが前記隣り合う検索範囲から前記最大幅以上離れているトレースをスキップする場合、該トレースのトレース番号が、前記隣り合う検索範囲外であり、かつ、該隣り合う検索範囲の上位のトレース番号をオーバしている場合には、マイナスの移動方向に設定し、該隣り合う検索範囲外であり、かつ、該隣り合う検索範囲の下位のトレース番号より小さい場合には、プラスの移動方向に設定することによって、該隣り合う検索範囲内のトレースに絞り込むトレース絞込部
を有することを特徴とする付記2記載の図形検索装置。
(付記4)
前記検索部は、
前記トレース絞込部によって絞り込まれた前記隣り合う検索範囲内のトレース毎の前記図形データの検索で、該図形データが前記トレース方向の座標のうち該隣り合う検索範囲から前記最大長以上に離れている図形データをスキップする場合、該隣り合う検索範囲から前記トレース方向の前方でオーバして該隣り合う検索範囲外となる場合にはマイナスの移動方向に設定し、該隣り合う検索範囲から該トレース方向の後方で該隣り合う検索範囲外となる場合にはプラスの移動方向に設定することによって、該隣り合う検索範囲内の図形データに絞り込む図形データ絞込部
を有することを特徴とする付記3記載の図形検索装置。
(付記5)
前記検索部は、スキップ後の前記設定された移動方向への移動量を、前記隣り合う検索範囲に到達するか又は該隣り合う検索範囲を通り過ぎるまで増やし、該隣り合う検索範囲を通り過ぎた場合に減らすことを特徴とする付記3又は4記載の図形検索装置。
(付記6)
前記制御部は、前記所定領域を再帰的に4つの領域に分割したセル毎に、該セル内の図形データに対して前記検索を行うことを特徴とする付記1乃至5のいずれか一項記載の図形検索装置。
(付記7)
複数の前記所定領域が積層され、
前記制御部は、
各所定領域内を層毎に定めたトレース方向に対して垂直方向に区切ったトレース毎に、ソート結果を参照して、該トレース方向に従って前記図形データをトレースすることによって、前記最初の図形データへのリンクと、同一トレース内の図形データのうちの前記最大長及び前記最大幅とを取得して、該リンクと該最大長及び該最大幅とを前記トレース番号に対応付けた前記第2のトレース情報を記憶部に作成する
ことを特徴とする付記2記載の図形検索装置。
(付記8)
前記所定領域はLSIの配線層の領域であり、前記図形データは該配線層に配置される配線を表すデータであり、
前記制御部は、前記層毎に配置される前記配線の長さ及び幅の大きい方を前記トレース方向に設定する
ことを特徴とする付記2乃至7のいずれか一項記載の図形検索装置。
(付記9)
コンピュータによって実行される図形検索方法であって、
記憶部に記憶された、所定領域に含まれる複数の領域の1つを検索範囲として、前記検索範囲に含まれる複数の図形データの各々をソートしたソート結果に基づいて前記検索範囲に含まれる図形データ間を辿るトレースによって得られる該図形データに関する情報を含む第1のトレース情報を参照し、
前記記憶部に記憶された前記第1のトレース情報に含まれる情報に対応する図形データから開始し、
前記図形データを含む検索範囲に隣り合う検索範囲に向けて該図形データの検索を行って、前記第1のトレース情報の更新を行う処理を制御する
を有することを特徴とする図形検索方法。
(付記10)
記憶部に記憶された、所定領域に含まれる複数の領域の1つを検索範囲として、前記検索範囲に含まれる複数の図形データの各々をソートしたソート結果に基づいて前記検索範囲に含まれる図形データ間を辿るトレースによって得られる該図形データに関する情報を含む第1のトレース情報を参照し、
前記記憶部に記憶された前記第1のトレース情報に含まれる情報に対応する図形データから開始し、
前記図形データを含む検索範囲に隣り合う検索範囲に向けて該図形データの検索を行って、前記第1のトレース情報の更新を行う処理を制御する
処理をコンピュータに実行させる図形検索プログラム。
4 データ格納領域
5 図形データ
11 CPU
12 主記憶装置
13 補助記憶装置
14 入力装置
15 表示装置
16 出力装置
18 ドライブ
19 記憶媒体
21 制御部
22 図形データ取込部
23 検索範囲入力部
24 検索部
25 検索結果出力部
31 データベース
53 トレーステーブル
54 局所トレーステーブル
55 前回検索範囲
56 今回検索範囲
57 検索結果
100 図形検索装置
130 記憶部

Claims (6)

  1. 複数の図形データが存在する所定領域について、前記所定領域に含まれる複数の領域の1つを検索範囲として、前記検索範囲内の前記図形データを所定のトレース方向にたどりながら前記検索範囲に接触する前記図形データを検索する図形検索装置であって、
    前記所定領域内を前記トレース方向に対して垂直方向に区切られたトレース毎に、該トレース方向に従ってトレースされる複数の図形データのうち、最初の図形データへのリンクと、該図形データによって示される図形の長さ及び幅の最大長及び最大幅とを、該トレースを特定するトレース番号に対応付けたトレーステーブルを記憶した記憶部と、
    前記トレーステーブルを参照して、現在の検索範囲から前記最大幅以上離れたトレースの図形データをスキップし、また、前記トレース方向の座標のうち前記現在の検索範囲の最小座標から前記トレース方向と逆方向に前記最大長以上離れた場所を始点とする図形データをスキップすることによって、前記現在の検索範囲で検索対象とするトレース及び該図形データを絞り込み、絞り込んだ該トレース及び該図形データを検索対象として、前記現在の検索範囲に接触する図形データを検索するとともに、当該検索結果に基づき、前記検索対象とした図形データのうち、該図形データの基準点の前記トレース方向のX座標が前記現在の検索範囲の最大X座標より小さいという条件と、該基準点が前記現在の検索範囲に接するか又は近傍に存在するという条件の両方を満たす図形データと該トレース番号とをリンクした局所トレーステーブルを前記記憶部に記憶させる検索部と、
    次回の検索範囲における前記検索対象とするトレース及び前記図形データの絞り込み処理の開始位置を前記局所トレーステーブルに記憶されたトレース番号及び図形データに基づき調整するとともに、前記次回の検索範囲における前記検索結果に基づき前記局所トレーステーブルを更新するように前記検索部を制御する制御部と
    を有する図形検索装置。
  2. 前記検索部は、
    前記現在の検索範囲から前記最大幅以上離れているトレースの図形データをスキップする場合、該トレースのトレース番号が、該現在の検索範囲外であり、かつ、該現在の検索範囲の上位のトレース番号をオーバしている場合には、前記トレーステーブルから次に参照するトレースへの移動方向をマイナスの移動方向に設定し、該現在の検索範囲外であり、かつ、該現在の検索範囲の下位のトレース番号より小さい場合には、該トレーステーブルから次に参照するトレースへの移動方向をプラスの移動方向に設定することによって、該現在の検索範囲内のトレースに絞り込むトレース絞込部
    を有することを特徴とする請求項1記載の図形検索装置。
  3. 前記検索部は、
    前記トレース絞込部によって絞り込まれた前記現在の検索範囲内のトレース毎の前記図形データの検索で、前記トレース方向の座標のうち該現在の検索範囲の最小座標から前記トレース方向と逆方向に前記最大長以上離れた場所を始点とする図形データをスキップする場合、該現在の検索範囲から前記トレース方向の前方でオーバして該現在の検索範囲外となる場合には、前記トレーステーブルから次に参照する図形データへの移動方向をマイナスの移動方向に設定し、該現在の検索範囲から該トレース方向の後方で該現在の検索範囲外となる場合には、前記トレーステーブルから次に参照する図形データへの移動方向をプラスの移動方向に設定することによって、該現在の検索範囲内の図形データに絞り込む図形データ絞込部
    を有することを特徴とする請求項2記載の図形検索装置。
  4. 前記検索部は、スキップ後の前記設定された移動方向への移動量を、前記現在の検索範囲に到達するか又は該現在の検索範囲を通り過ぎるまで増加させ、該現在の検索範囲を通り過ぎた場合に減らすことを特徴とする請求項2又は3記載の図形検索装置。
  5. 前記制御部は、前記所定領域を再帰的に4つの領域に分割したセル毎に、該セル内の図形データに対して前記検索を行うことを特徴とする請求項1乃至4のいずれか一項記載の図形検索装置。
  6. 複数の図形データが存在する所定領域について、前記所定領域に含まれる複数の領域の1つを検索範囲として、コンピュータが、前記検索範囲内の前記図形データを所定のトレース方向にたどりながら前記検索範囲に接触する前記図形データを検索する図形検索方法であって、
    記憶部に記憶された、前記所定領域内を前記トレース方向に対して垂直方向に区切られたトレース毎に、該トレース方向に従ってトレースされる複数の図形データのうち、最初の図形データへのリンクと、該図形データによって示される図形の長さ及び幅の最大長及び最大幅とを、該トレースを特定するトレース番号に対応付けたトレーステーブルを参照して、現在の検索範囲から前記最大幅以上離れたトレースの図形データをスキップし、また、前記トレース方向の座標のうち前記現在の検索範囲の最小座標から前記トレース方向と逆方向に前記最大長以上離れた場所を始点とする図形データをスキップすることによって、前記現在の検索範囲で検索対象とするトレース及び該図形データを絞り込み、絞り込んだ該トレース及び該図形データを検索対象として、前記現在の検索範囲に接触する図形データを検索するとともに、当該検索結果に基づき、前記検索対象とした図形データのうち、該図形データの基準点の前記トレース方向のX座標が前記現在の検索範囲の最大X座標より小さいという条件と、該基準点が前記現在の検索範囲に接するか又は近傍に存在するという条件の両方を満たす図形データと該トレース番号とをリンクした局所トレーステーブルを前記記憶部に記憶し、
    次回の検索範囲における前記検索対象とするトレース及び前記図形データの絞り込み処理の開始位置を前記局所トレーステーブルに記憶されたトレース番号及び図形データに基づき調整するとともに、前記次回の検索範囲における前記検索結果に基づき前記局所トレーステーブルを更新するように前記検索を制御する
    とを特徴とする図形検索方法。
JP2012075125A 2012-03-28 2012-03-28 図形検索装置及び図形検索方法 Active JP6065400B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012075125A JP6065400B2 (ja) 2012-03-28 2012-03-28 図形検索装置及び図形検索方法
US13/739,017 US20130262508A1 (en) 2012-03-28 2013-01-11 Graphic search apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012075125A JP6065400B2 (ja) 2012-03-28 2012-03-28 図形検索装置及び図形検索方法

Publications (2)

Publication Number Publication Date
JP2013206178A JP2013206178A (ja) 2013-10-07
JP6065400B2 true JP6065400B2 (ja) 2017-01-25

Family

ID=49236485

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012075125A Active JP6065400B2 (ja) 2012-03-28 2012-03-28 図形検索装置及び図形検索方法

Country Status (2)

Country Link
US (1) US20130262508A1 (ja)
JP (1) JP6065400B2 (ja)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60201481A (ja) * 1984-03-26 1985-10-11 Sharp Corp 大量図形デ−タの図形関係検査法
JPH0291768A (ja) * 1988-09-29 1990-03-30 Toshiba Corp データ検索装置
JPH02211584A (ja) * 1989-02-13 1990-08-22 Toshiba Corp 図形情報処理方式
JP2000276519A (ja) * 1999-03-29 2000-10-06 Shinko Electric Ind Co Ltd 図形処理方法
JP3649430B2 (ja) * 1999-06-30 2005-05-18 日立ソフトウエアエンジニアリング株式会社 図形データ管理方法およびシステム、記憶媒体
US20080260033A1 (en) * 2007-04-17 2008-10-23 Horizon Semiconductors Ltd. Hybrid hierarchical motion estimation for video streams
US8271909B2 (en) * 2009-02-06 2012-09-18 Cadence Design Systems, Inc. System and method for aperture based layout data analysis to achieve neighborhood awareness
US20100318550A1 (en) * 2009-05-26 2010-12-16 Nikon Corporation Image searching system, image searching apparatus, and medium storing image searching program
US8516585B2 (en) * 2010-10-01 2013-08-20 Alcatel Lucent System and method for detection of domain-flux botnets and the like
US20120123924A1 (en) * 2010-10-20 2012-05-17 Mark Rose Virtual currency configuration apparatuses, methods and systems

Also Published As

Publication number Publication date
JP2013206178A (ja) 2013-10-07
US20130262508A1 (en) 2013-10-03

Similar Documents

Publication Publication Date Title
US6446239B1 (en) Method and apparatus for optimizing electronic design
JP2022033689A (ja) ページのテーマを決定するための方法、装置、電子機器、コンピュータ可読記憶媒体及びコンピュータプログラム
CN104794116B (zh) 一种页面中元素的布局方法和装置
CN104217046B (zh) 布线方法和装置
KR101543196B1 (ko) 시퀀스 프로그램 작성 장치
US20180268580A1 (en) Display method, display control device, and recording medium
CN111597769A (zh) 用于生成电路版图图案的方法、设备和存储介质
JP2016132538A (ja) 搬入据付け作業計画支援装置および搬入据付け作業計画支援方法
CN105677968B (zh) 可编程逻辑器件电路图绘制方法及装置
JP6065400B2 (ja) 図形検索装置及び図形検索方法
US20110066993A1 (en) Printed circuit board layout system and method thereof
US20150356724A1 (en) Information processing apparatus, method of outputting circuit image, and storage medium storing circuit image output program
JP5881937B2 (ja) 情報処理装置、情報処理方法、およびプログラム
CN111611761B (zh) 生成电路版图图案的方法、设备和计算机可读存储介质
JP3215351B2 (ja) 配置方式
US9778812B2 (en) Screen transition diagram creator
CN106998489A (zh) 一种焦点越界搜索方法及装置
Pawanekar et al. A nonlinear analytical optimization method for standard cell placement of vlsi circuits
JP2005275859A (ja) 図形オブジェクト指定装置、図形オブジェクト指定方法、図形オブジェクト指定プログラム
JP5609302B2 (ja) 接触定義装置、接触定義プログラム及び接触定義方法
CN113569518A (zh) 用于PCB工程文件的Set拼板识别方法及其应用
JP2009169533A (ja) 画像配置データ生成装置及び画像配置データ生成方法
Pecht et al. Advanced routing of electronic modules
JP2004070626A (ja) レイアウトデータの保存方法、レイアウトデータ変換装置、及び図形検証装置
CN120929624B (zh) 一种电子元器件最小间隙的查找方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160126

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160302

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160621

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160711

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161212

R150 Certificate of patent or registration of utility model

Ref document number: 6065400

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150