(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-02-10
(45)【発行日】2025-02-19
(54)【発明の名称】回路図読取り装置、プリント基板設計装置および回路図読取りプログラム
(51)【国際特許分類】
G06F 30/31 20200101AFI20250212BHJP
G06V 30/422 20220101ALI20250212BHJP
【FI】
G06F30/31
G06V30/422
(21)【出願番号】P 2024558547
(86)(22)【出願日】2022-11-15
(86)【国際出願番号】 JP2022042435
(87)【国際公開番号】W WO2024105789
(87)【国際公開日】2024-05-23
【審査請求日】2024-07-18
(73)【特許権者】
【識別番号】593099861
【氏名又は名称】株式会社オンテック
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】山岡 律雄
(72)【発明者】
【氏名】徳 正一郎
(72)【発明者】
【氏名】田中 省吾
(72)【発明者】
【氏名】香西 一樹
(72)【発明者】
【氏名】米倉 寛稀
(72)【発明者】
【氏名】藤木 貴大
(72)【発明者】
【氏名】越後 富夫
【審査官】合田 幸裕
(56)【参考文献】
【文献】特開2021-177274(JP,A)
【文献】特開平10-027251(JP,A)
【文献】特開2022-063599(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/00 - 30/398
G06V 30/422
IEEE Xplore
JSTPlus(JDreamIII)
(57)【特許請求の範囲】
【請求項1】
回路図の画像に含まれる文字列、および前記文字列の位置を検出することによって、部品名および前記部品名の位置、またはピン番号およびピン番号の位置を検出する部品名検出部と、
前記回路図の画像に含まれる部品を検出し、前記部品の部品種類、および部品領域を検出部品リストに登録する部品検出部と、
前記回路図の画像に含まれる直線を検出する直線検出部と、
前記検出された直線に基づいて、配線を検出する配線検出部と、
前記検出部品リストに登録された前記部品の部品領域の位置と、前記部品名の位置とに基づいて、前記部品と前記部品名とをペアリングするペアリング部と、
回路図の画像において、前記検出部品リストに登録された前記部品と前記配線との接続を検出し、1個以上の配線によって接続される2つの部品を特定し、特定された2つの部品がネットリストにおいても接続されている場合に、前記特定された2つの部品が接続されていることを表わす接続情報を作成する接続検出部と、を備えた回路図読取り装置。
【請求項2】
前記部品名検出部は、検出された文字列が部品名リストに登録されている場合には、検出された文字列を部品名として特定し、その文字列の位置を部品名の位置として特定し、検出された文字列がピン番号リストに登録されている場合には、検出された文字列をピン番号として特定し、その文字列の位置をピン番号の位置として特定する、請求項1記載の回路図読取り装置。
【請求項3】
前記部品名検出部は、検出された文字列から前記部品の物性を表わす文字列を削除し、削除後の文字列と前記部品名リストまたは前記ピン番号リストとを照合する、請求項2記載の回路図読取り装置。
【請求項4】
前記部品検出部は、深層学習アルゴリズムに基づいて、部品種類、および部品領域を検出する、請求項1記載の回路図読取り装置。
【請求項5】
前記部品検出部は、検出された部品の部品種類として複数の候補を推定し、前記複数の候補の中から前記部品領域の中心位置に最も近い部品名に基づいて、1つの部品種類を選択する、請求項4記載の回路図読取り装置。
【請求項6】
回路図の一部において検出された部品の部品領域のサイズの中央値を部品の種類ごとに算出する部品サイズ分布算出部を備え、
前記部品検出部は、回路図の他の部分において検出された部品の部品種類として複数の候補を推定し、前記複数の候補の中から、部品の種類ごとの部品領域のサイズの中央値に基づいて、1つの部品種類を選択する、請求項4記載の回路図読取り装置。
【請求項7】
前記部品検出部は、検出された部品の部品領域が前記直線検出部によって検出された直線と接触しない場合に、検出された部品の部品種類および部品領域を前記検出部品リストに登録しない、請求項4記載の回路図読取り装置。
【請求項8】
前記部品検出部は、検出された部品の部品領域から所定距離内に部品名が回路図の画像に存在しない場合に、検出された部品の部品種類および部品領域を前記検出部品リストに登録しない、請求項4記載の回路図読取り装置。
【請求項9】
前記配線検出部は、前記直線検出部によって検出された直線のうち、検出した部品の部品領域に内包されている直線を前記配線としない、請求項1記載の回路図読取り装置。
【請求項10】
前記配線検出部は、前記直線検出部によって検出された直線のうち、交点、部品領域、および回路図の他の箇所との接続を表わす記号のいずれとも交差しない直線を前記配線としない、請求項1記載の回路図読取り装置。
【請求項11】
前記検出部品リストに登録された1個以上の抵抗、コイル、およびコンデンサの大きさの中央値を単位距離として算出する単位距離算出部を備えた、請求項1記載の回路図読取り装置。
【請求項12】
前記配線検出部は、前記直線検出部によって検出された第1の直線の端点を中心として、前記単位距離の所定倍数の半径の円内に第2の直線が存在する場合に、配線検出のため、前記第1の直線の端点と前記第2の直線とを接続する最短の直線を追加する、請求項11記載の回路図読取り装置。
【請求項13】
前記ペアリング部は、前記部品と、前記部品の部品領域の中心の位置に最も近い中心位置を有する部品名とをペアリングする、請求項1記載の回路図読取り装置。
【請求項14】
前記ペアリング部は、前記部品の部品領域の中心の位置から所定距離内に複数の部品名が存在する場合には、前記部品と、前記複数の部品名のうち、前記部品の部品種類と同じ種類の部品名とをペアリングする、請求項1記載の回路図読取り装置。
【請求項15】
前記ペアリング部は、同一の部品種類の複数の部品に1つの部品名がペアリングされた場合には、複数の部品を1つの部品に統合する、請求項13記載の回路図読取り装置。
【請求項16】
前記接続検出部は、前記検出部品リストに登録されている全ての部品の部品領域を上下および左右方向に単位距離の所定倍数だけ拡張し、拡張された部品領域と配線とが接続されているときに、部品と配線とが接続されていることを検出する、請求項11記載の回路図読取り装置。
【請求項17】
請求項1~16のいずれか1項に記載の回路図読取り装置と、
前記検出部品リストに登録された部品を、親部品と、子部品と、その他の部品とに分類する部品分類部と、
前記接続情報に基づいて、親部品と、前記親部品に直接または間接的に接続される1個以上の子部品とを含む近接ブロックを生成する近接ブロック生成部と、
前記近接ブロック内の部品を配置する近接ブロック内部品配置設計部と、を備えた、プリント基板設計装置。
【請求項18】
前記部品分類部は、前記検出部品リストに登録された部品を、前記部品の部品種類に基づいて、前記親部品と、前記子部品と、前記その他の部品とに分類する、請求項17記載のプリント基板設計装置。
【請求項19】
前記部品分類部は、前記検出部品リストに登録された複数の部品の中に、親部品として指定された部品種類の部品が存在しない場合に、ネットリストを参照して、前記複数の部品の中で2ピンかつネット属性が電源のみの部品を親部品に分類する、請求項18記載のプリント基板設計装置。
【請求項20】
前記部品分類部は、前記検出部品リストに登録された複数の部品の中に、2ピンかつネット属性が電源のみの部品が存在しない場合に、前記複数の部品の中で最もピン数の多い部品を親部品に分類する、請求項19記載のプリント基板設計装置。
【請求項21】
コンピュータに、
回路図の画像に含まれる文字列、および前記文字列の位置を検出することによって、部品名および前記部品名の位置、またはピン番号およびピン番号の位置を検出するステップと、
前記回路図の画像に含まれる部品を検出し、前記部品の部品種類、および部品領域を検出部品リストに登録するステップと、
前記回路図の画像に含まれる直線を検出するステップと、
前記検出された直線に基づいて、配線を検出するステップと、
前記検出部品リストに登録された前記部品の部品領域の位置と、前記部品名の位置とに基づいて、前記部品と前記部品名とをペアリングするステップと、
回路図の画像において、前記検出部品リストに登録された前記部品と前記配線との接続を検出し、1個以上の配線によって接続される2つの部品を特定し、特定された2つの部品がネットリストにおいても接続されている場合に、前記特定された2つの部品が接続されていることを表わす接続情報を作成するステップと、を実行させる回路図読取りプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、回路図読取り装置、プリント基板設計装置および回路図読取りプログラムに関する。
【背景技術】
【0002】
従来から、電子回路としての性能または特性が十分に発揮することができるように、互いに接近して配置したい部品をプリント基板上に配置できる設計装置が知られている。たとえば、特許文献1に記載の設計装置は、プリント基板上で接近して配置したい部品の条件を知識パターンとして記憶する知識パターン記憶部と、プリント基板上に配置すべき部品と、部品間の配線情報を記憶するプリント基板設計情報記憶部と、プリント基板設計情報記憶部に記憶されている各部品について、その配線情報もとに知識パターン記憶部の記憶する知識パターンを満たすかどうか判定し、知識パターンを満たす部品の集まりを1グループとして分類するグループ分類手段と、1つのグループに分類された部品群を1つの配置要素とし、プリント基板上での配置を決定する配置決定手段とを備える。グループ以外の部品の配置は、プリント基板設計情報記憶部の接続情報をもとに配置される。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載のプリント基板設計装置は、プリント基板上に部品をどのように配置するかについて記載されていない。
【0005】
一方、設計者は、回路図において部品がどのように配置されるかを参照することによって、部品の配置を決定することができる。回路図は、電子回路としての性能または特性が発揮できるように作成されているからである。回路図の情報を自動で適切に読み取ることができれば、有用である。
【0006】
それゆえに、本開示の目的は、回路図の情報を適切に読取ることができる回路図読取り装置、プリント基板設計装置および回路図読取りプログラムを提供することである。
【課題を解決するための手段】
【0007】
本開示の回路図読取り装置は、回路図の画像に含まれる文字列、および文字列の位置を検出することによって、部品名および部品名の位置、またはピン番号およびピン番号の位置を検出する部品名検出部と、回路図の画像に含まれる部品を検出し、部品の部品種類、および部品領域を検出部品リストに登録する部品検出部と、回路図の画像に含まれる直線を検出する直線検出部と、検出された直線に基づいて、配線を検出する配線検出部と、検出部品リストに登録された部品の部品領域の位置と、部品名の位置とに基づいて、部品と部品名とをペアリングするペアリング部と、回路図の画像において、検出部品リストに登録された部品と配線との接続を検出し、1個以上の配線によって接続される2つの部品を特定し、特定された2つの部品がネットリストにおいても接続されている場合に、特定された2つの部品が接続されていることを表わす接続情報を作成する接続検出部と、を備える。
【発明の効果】
【0008】
本開示によれば、回路図の情報を適切に読取ることができる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施の形態のプリント基板設計装置1の構成を表わす図である。
【
図3】YOLOによる部品の検出結果の例を表わす図である。
【
図5】(a)は、部品領域に内含される直線の例を表わす図である。(b)は、配線の検出結果を表わす図である。
【
図6】(a)は、部品領域に内合される直線の別の例を表わす図である。(b)は、配線の検出結果を表わす図である。
【
図7】(a)は、部品領域を貫く直線の例を表わす図である。(b)は、配線の検出結果を表わす図である。
【
図8】2つの直線が途切れて検出されたときに、2つの直線を接続する直線の追加の例を表わす図である。
【
図9】(a)は、回路図を表わす図である。(b)は、(a)の回路図における配線の検出結果を表わす図である。
【
図10】(a)は、同一の部品種類の複数の部品に1つの部品名がペアリングされた例を表わす図である。(b)は、(a)の部品が統合された部品を表わす図である。
【
図11】(a)は、同一の部品種類の複数の部品に1つの部品名がペアリングされた別の例を表わす図である。(b)は、(a)の部品が統合された部品を表わす図である。
【
図13】(a)は、2ピンかつネット属性が電源のみの部品の例を表わす図である。(b)は、ネットリストの例を表わす図である。
【
図14】回路図グループ内に2ピンかつネット属性が電源のみの部品が複数個存在する例を表わす図である。
【
図15】ペアリングおよび子部品の配置の例を説明するための図である。
【
図16】ペアリングおよび子部品の配置の別の例を説明するための図である。
【
図19】実施の形態のプリント基板設計装置1の処理手順を表わすフローチャートである。
【
図20】プリント基板設計装置1のハードウエア構成を表わす図である。
【発明を実施するための形態】
【0010】
以下、実施の形態について図面を参照して説明する。
図1は、実施の形態のプリント基板設計装置1の構成を表わす図である。
【0011】
プリント基板設計装置1は、データ入力部2と、ユーザI/F4と、CAD(Computer Aided Design)部3と、配置設計部21とを備える。
【0012】
CAD部3および配置設計部21の機能は、コンピュータがメモリに記憶されたプリント基板設計プログラムを実行することによって実現されるものとしてもよい。プリント基板設計プログラムは、外部からネットワークを通じてメモリにインストールされるものとしてもよい。あるいは、プリント基板設計プログラムは、可搬性の記録媒体を通じてメモリにインストールされるものとしてもよい。
【0013】
データ入力部2は、外部から、回路図およびネットリストなどのデータを入力する。回路図は、PDF形式のデータ、画像データまたはCADデータで表される。
【0014】
ユーザI/F4は、設計者の操作を受け付けるとともに、画面を表示する。
CAD部3は、設計者の操作に従って、データ入力部2から入力されたデータを用いてバイナリ形式のCADデータを作成する。CADデータは、部品名リスト、およびピン番号リストなどを含む。
【0015】
配置設計部21は、変換部5と、分割部6と、ネット属性設定部20と、回路図グループ配置設計部31と、全体配置設計部18とを備える。回路図グループ配置設計部31は、直線検出部7と、部品名検出部8と、部品検出部9と、部品サイズ分布算出部10と、単位距離算出部11と、配線検出部12と、交点検出部19と、部品-部品名ペアリング部13と、接続検出部14と、部品分類部15と、近接ブロック生成部16と、近接ブロック内部品配置設計部17とを備える。
【0016】
変換部5は、回路図がPDF形式のデータまたはCADデータの場合に、画像データに変換する。変換部5は、回路図に基づいて作成されたバイナリ形式のCADデータをテキストデータに変換して、テキストデータの部品名リストを作成する。
【0017】
ネット属性設定部20は、回路図に含まれる複数の部品間を接続するネットの属性を設定する。たとえば、ネット属性設定部20は、ネットリストに含まれるネットの名前に基づいて、ネットの属性を設定する。
【0018】
分割部6は、回路図を任意の処理単位に分割する。分割部6は、回路図が複数ページに渡る場合には、回路図を1ページ毎に分割する。分割部6は、回路図が1枚の大きな回路図の場合には、意味のある単位(ブロック)毎に分割する。意味のある単位は、設計者によって設定することができる。回路図において意味のある単位を規定するルールを定めることによって、分割部6が、回路図を意味のある単位に自動で分割することもできる。以下の処理は、分割された単位ごとに実行される。分割された単位を回路図グループと称する。
【0019】
回路図グループ配置設計部31は、回路図グループ内の部品の配置設計を行なう。
直線検出部7は、各回路図グループにおいて、回路図内の直線を検出する。直線検出アルゴリズムとして、たとえばハフ変換を用いることができる。ハフ変換において、検出を行なう直線の角度を所定の範囲に絞ることによって、無駄な計算を省くことができる。一般的な回路図では、配線は、垂直、または水平の線で表されることが多いためである。特殊な回路図において、選択した任意の角度の直線を検出することとしてもよい。
【0020】
部品名検出部8は、回路図がPDF形式のデータまたはCADデータの場合には、データ内に埋め込まれた文字列と、その位置を検出する。部品名検出部8は、回路図が画像データの場合には、既知の文字認識アルゴリズムを用いることによって、回路図の画像に含まれる文字列、およびその位置を検出する。
【0021】
部品名検出部8は、検出された文字列が部品名リストに登録されている場合には、検出された文字列を部品名として特定し、その文字列の位置を部品名の位置として特定する。部品名検出部8は、検出された文字列がピン番号リストに登録されている場合には、検出された文字列をピン番号として特定し、その文字列の位置をピン番号の位置として特定する。部品名検出部8は、検出した文字列がICの部品領域に存在し、かつ検出された文字列がピン番号リストに登録されている場合に、検出された文字列をピン番号として特定し、その文字列の位置をピン番号の位置として特定するものとしてもよい。
【0022】
部品名検出部8は、純粋な一致検索を実行するのではなく、表記ゆれに対応できるものとしてもよい。たとえば、部品名検出部8は、検出された文字列が、部品の物性を表わす文字列を含む場合には、その文字列を除外した文字列と部品名リストまたはピン番号リストとを照合することとしてもよい。部品の物性を表わす文字列とは、たとえば、抵抗値、静電容量、電圧、インダクタンスなどである。たとえば、部品名検出部8は、検出された文字列「R1 10k」の場合には、「R1」と部品名リストとを照合する。
【0023】
部品名検出部8は、1つの部品が複数のシートに含まれており、各シートにその部品に対応する類似する文字列が存在する場合には、各シートの文字列の共通部分を部品名として特定してもよい。部品名検出部8は、分割された第1シートの回路図に「IC1-1」が記載され、第2シートの回路図に「IC1-2」と記載されている場合には、部品名を「IC1」と特定する。
【0024】
部品名検出部8は、検出された文字列が、部品名リストまたはピン番号リストに登録されていない場合には、検出された文字列を部品名またはピン番号として特定しない。これによって、コメント、作者、および日付などの回路に関係のない文字列が部品名またはピン番号として検出されない。
【0025】
図2は、部品名の検出結果の例を表わす図である。
IC52、R95、R98、R72、R74、R46、C24、C25の部品名が検出されている。
【0026】
部品検出部9は、回路図の画像に含まれる部品を検出し、部品の部品種類、および部品領域を検出部品リストに登録する。
【0027】
部品検出部9は、CNN(Convolutional Neural Network)、またはYOLO(You-Only-Look-Once)などの深層学習アルゴリズムを用いて、回路図に含まれる部品を検出する。部品の検出ととともに、部品の部品種類、および回路図上の部品の部品領域が検出される。部品は、回路図において、部品種類を表わす回路図記号として記載されている。検出された部品は、検出部品リストに登録される。部品領域は、たとえば、矩形の領域である。検出部品リストは、検出された部品の「部品種類」および「部品領域」を定める。「部品種類」は、複数個の候補と、各候補の確度を含むものとしてもよい。
【0028】
「ICおよびコネクタ等」と「抵抗およびコンデンサ等」では回路図上で描かれる大きさが極端に異なることがあるため、部品検出部9は、回路図の画像と、回路図の画像を拡大して指定の領域に分割した画像とを用いることによって、検出精度を高めることとしてもよい。部品検出部9は、回路図の画像と、回路図の画像の左右を反転した画像と、上下に反転した画像とを用いて、それらの検出結果の総和または多数決(アンサンブル)によって、検出精度をさらに高めることとしてもよい。
【0029】
図3は、YOLOによる部品の検出結果の例を表わす図である。
5個の抵抗R、1個のIC、および2個のコンデンサが検出されている。図中の数字は、確度を表わす。
【0030】
部品検出部9は、検出された部品の部品領域が直線検出部7によって検出された直線と接触しない場合に、検出された部品の部品種類および部品領域を検出部品リストに登録しないものとしてもよい。部品検出部9は、検出された部品の「部品領域」から所定距離内に部品名が回路図の画像内に存在しない場合に、検出された部品の部品種類および部品領域を検出部品リストに登録しないものとしてもよい。誤検出の可能性が高いからである。
【0031】
部品検出部9は、検出された部品の部品種類として複数の候補を推定し、複数の候補の中から部品領域の中心位置に最も近い部品名に基づいて、1つの部品種類を選択するものとしてもよい。部品検出部9は、検出された部品の「部品種類」が「IC」または「C」の場合に、回路図の画像において、検出された部品の「部品領域」に最も近い部品名が「IC**」の場合に、「IC」を検出された部品の「部品種類」として決定してもよい。
【0032】
部品検出部9は、検出された部品の「部品種類」が複数の候補を含む場合に、確度が最大のものを「部品種類」として決定してもよい。たとえば、部品検出部9は、候補「IC」の確度が90%、候補「C」の確度が10%の場合に、「IC」を部品種類として決定する。
【0033】
部品サイズ分布算出部10は、回路図の一部(たとえば、複数のシートのうちの最初の数シート)において、検出した部品の種類ごとに、部品のサイズ分布を求め、サイズの中央値を算出する。回路図が異なれば、部品の大きさおよび縮尺が異なるが、1つ回路図内で同じ部品が極端に異なった大きさで書かれることは少ない。回路図における部品ごとのサイズ分布を求めることによって、回路図では、この部品は「A×B画素」前後で書かれることが多いといった大まかな縮尺を求めることができる。たとえば、コンデンサのサイズの中央値は5×5画素、ICのサイズの中央値は100×100画素のように求めることができる。
【0034】
部品検出部9は、回路図の他の部分(とえば、複数のシートのうちの最初の数シートを除くシート)において、検出された部品の「部品種類」が複数の候補を含む場合に、部品の種類別のサイズ分布に基づいて、検出された部品の「部品種類」を決定してもよい。たとえば、部品検出部9は、5×5の部品領域において、候補「IC」の確度50%、候補「C」の確度10%、「IC」のサイズ分布の中央値が「10×10」、「C」のサイズ分布の中央値が「5×5」の場合に、「C」を「部品種類」として決定してもよい。
【0035】
図4は、部品の統合の例を表わす図である。
部品検出部9は、部品種類が「X」で、部品領域が「RA1」の部品Aを検出し、部品種類が「X」で、部品領域が「RA2」の部品Bを検出し、部品領域RA1の一部と部品領域RA2の一部とが重なっている場合に、1つの部品Cが検出されたものとみなす。部品検出部9は、部品Cの「部品種類」をX、「部品領域」を部品領域RA1と部品領域RA2とをカバーする領域RA3とする。
【0036】
単位距離算出部11は、検出部品リストに登録された1個以上のR(抵抗)、L(コイル)、C(コンデンサ)の部品領域のサイズ分布の中央値を単位距離として算出する。回路図によって縮尺が相違するため、様々な処理判断のための基準値が単位距離に基づいて設定される。R、L、Cを距離の単位として用いるのは、R、L、Cは、能動素子に比べて、回路図に多く含まれるからである。また、R、L、Cの回路図記号は、能動素子の回路図記号と比較して、大きさのばらつき少ないとともに、小さく記載されることが多いためである。たとえば、単位距離を基準として、親部品に対して、子部品を近くに配置するか否かが決められる。
【0037】
交点検出部19は、回路図上の黒丸で表される配線の接続箇所(交点)を検出する。
配線検出部12は、直線検出部7が検出した直線に基づいて、配線を検出する。配線検出部12は、直線検出部7が検出した直線のうち、部品検出部9が検出した部品の部品領域に内包されている直線を配線としない。検出した部品領域に内包されている直線は、部品を構成する直線であるからである。
【0038】
図5(a)は、部品領域に内含される直線の例を表わす図である。
図5(b)は、配線の検出結果を表わす図である。
【0039】
直線検出部7によって直線L1、L2、L3、L4が検出される。配線検出部12は、部品領域RAに内含される直線L3、L4は、配線としない。配線検出部12は、直線L1、L2のうち、部品領域RAに内合される部分を配線としない。
【0040】
図6(a)は、部品領域に内合される直線の別の例を表わす図である。
図6(b)は、配線の検出結果を表わす図である。
【0041】
直線検出部7によって直線L1、L2、L3、L4が検出される。配線検出部12は、部品領域RBに内含される直線L1は、配線としない。配線検出部12は、直線L2、L3、L4のうち、部品領域RBに内合される部分を配線としない。
【0042】
コイル等の部品は、「部品左右から伸びる配線」と「部品内の直線」(部品に内包されている直線)とが連続して記載されていることがある。これらの直線を1本の配線とすると、左右の端子がショートしているものとして扱われる。配線検出部12は、直線検出部7が検出した直線が部品領域を貫く場合は、部品領域を中心として、直線を分割し、部品領域の外部の一方の直線を1つの配線とし、部品領域の外部の他方の直線を別の配線とする。
【0043】
図7(a)は、部品領域を貫く直線の例を表わす図である。
図7(b)は、配線の検出結果を表わす図である。
【0044】
直線検出部7によって、部品領域RCを貫く直線L1が検出される。配線検出部12は、部品領域RCを中心として直線L1を分割し、部品領域RCの外側の一方の直線L1Aを1つの配線とし、部品領域RCの外側の他方の直線L1Bを別の配線とする。
【0045】
配線検出部12は、直線検出部7が検出した直線のうち、交点、部品、および飛び信号記号のいずれとも交差しない直線を配線としない。配線は、交点、部品、および飛び信号記号のいずれかと交差して書かれるためである。飛び信号記号とは、回路図の他の箇所との接続を表わす記号である。回路図の位置Xに飛び信号記号Sが記載され、回路図の位置Yに同じ飛び信号記号Sが記載されている場合には、回路図に記載されていないが、回路図の位置Xと位置Yとを接続する配線が存在することを表わす。
【0046】
配線検出部12は、直線検出部7によって検出された第1の直線の端点を中心として、単位距離の所定倍数の半径の円内に第2の直線が存在する場合に、配線検出のため、第1の直線の端点と第2の直線とを接続する最短の直線を追加する。ハフ変換では短い直線の検出精度が落ち、回路図上で実際に接続されている2つの直線が途切れているように検出されることがあるためである。
【0047】
図8は、2つの直線が途切れて検出されたときに、2つの直線を接続する直線の追加の例を表わす図である。
【0048】
直線L1の端点EN1を中心として、単位距離の所定倍数の半径の円CR1内に別の直線L2が存在するので、端点EN1と直線L2とを接続する最短の直線L3が追加される。これによって、直線L1、L3、L2がそれぞれ配線として検出される。
【0049】
図9(a)は、回路図を表わす図である。
図9(b)は、
図9(a)の回路図における配線の検出結果を表わす図である。
図9(b)において太線で記載されている線が検出された配線である。
【0050】
部品-部品名ペアリング部13は、検出部品リストに登録された部品と、部品名とをペアリングする。部品-部品名ペアリング部13は、部品領域の中心の位置と部品名の中心位置とに基づいて、部品と部品名とをペアリングする。具体的には、部品-部品名ペアリング部13は、部品と、その部品の部品領域の中心の位置に最も近い中心位置を有する部品名とをペアリングする。
【0051】
部品-部品名ペアリング部13は、部品の部品領域の中心の位置から所定距離内に複数の部品名が存在する場合には、部品と、複数の部品名のうち、部品の部品種類と同じ種類の部品名とをペアリングする。
【0052】
部品-部品名ペアリング部13は、同一の部品種類の複数の部品に1つの部品名がペアリングされた場合には、複数の部品を1つの部品に統合する。部品-部品名ペアリング部13は、複数の部品の部品領域を含む最小の矩形を統合した部品の部品領域とする。
【0053】
図10(a)は、同一の部品種類の複数の部品に1つの部品名がペアリングされた例を表わす図である。
図10(b)は、
図10(a)の部品が統合された部品を表わす図である。同一の部品種類の2つの部品A、Bに1つの部品名「IC1」がペアリングされている。2つの部品A、Bが1つの部品Cに統合され、部品Aの部品領域R1と部品Bの部品領域R2とが統合される。統合された1つの部品Cの部品領域がRCである。
【0054】
図11(a)は、同一の部品種類の複数の部品に1つの部品名がペアリングされた別の例を表わす図である。
図11(b)は、
図11(a)の部品が統合された部品を表わす図である。同一の部品種類の3つの部品A、B、Cに1つの部品名「IC2」がペアリングされている。3つの部品A、B、Cが1つの部品Dに統合され、部品Aの部品領域R1と部品Bの部品領域R2と部品Cの部品領域R3とが統合される。統合された1つの部品Dの部品領域がRCである。
【0055】
接続検出部14は、回路図の画像において、検出部品リストに登録された部品と、配線との接続を検出する。接続検出部14は、部品の部品領域と配線とが接続されているときに、部品と配線とが接続されていることを検出する。回路図上で、トランジスタの斜めの短い引出線のように、部品から伸びる短い引出線は、直線検出から漏れることが多い。配線検出の結果を用いて、回路図上での部品の繋がりを辿っても、引出線の部分で途切れる。このような問題を解決するために、接続検出部14は、検出部品リストに登録された全ての部品の部品領域を上下および左右方向に単位距離の所定倍数だけ拡張する。これによって、引出線の領域までを囲うように部品領域が拡張される。接続検出部14は、拡張された部品領域と配線とが接続されているときに、部品と配線とが接続されていることを検出するものとしてもよい。
【0056】
図12は、部品領域の拡張の例を表わす図である。
部品領域R1が拡張されて拡張部品領域R1Aが生成される。拡張部品領域R1Aと、配線W1、W2、W3との接続が検出される。拡張部品領域R2Aと、配線W3、W4、W5、W6との接続が検出される。
【0057】
接続検出部14は、1個以上の配線によって接続される2つの部品(第1の部品および第2の部品)を特定する。接続検出部14は、特定された2つの部品がネットリストにおいても接続されているか否かを確かめる。このようにネットリストを参照するのは、回路図上において2つの線が交差している場合に、2つの配線が接続されている場合と、2つの配線が接続されていない場合とがあることを考慮したものである。2つの配線が接続されている場合には、交点が存在する。接続検出部14は、特定された2つの部品がネットリストにおいても接続されている場合に、この2つの部品(第1の部品および第2の部品)が接続されていることを表わす接続情報を作成する。
【0058】
接続検出部14は、1個以上の配線によって、第1の部品のXピンと、第2の部品とが接続されている場合に、第1の部品のXピンと、第2の部品とが接続されていることを表わす接続情報を作成する。
【0059】
部品分類部15は、検出部品リストに登録された複数の部品を、その部品種類に基づいて、親部品と、子部品と、その他の部品とに分類する。親部品は、たとえば、ICなどである。子部品は、たとえば、発振子、バイパスコンデンサ、ダンピング抵抗、電解コンデンサ、および終端抵抗などである。
【0060】
部品分類部15は、1つの回路図グループにおいて、検出部品リストに登録された複数の部品の中に、親部品として指定された部品種類の部品が存在しない場合に、以下のルールで親部品を設定する。
【0061】
部品分類部15は、ネットリストを参照して、検出部品リストに登録された複数の部品の中で2ピンかつネット属性が電源のみの部品を親部品に分類する。
【0062】
図13(a)は、2ピンかつネット属性が電源のみの部品の例を表わす図である。
図13(b)は、ネットリストの例を表わす図である。L1は、2ピンを有し、ネット属性が電源5V、5VAのみである。よって、L1は、親部品に設定され、C1、C2は、親部品と直接接続されるので、L1の子部品に設定される。
【0063】
部品分類部15は、検出部品リストに登録された複数の部品の中に、2ピンかつネット属性が電源のみの部品が複数個存在する場合には、それらの部品を親部品に設定する。部品分類部15は、親部品に直接または間接的に接続される部品を、その親部品の子部品に設定する。部品分類部15は、複数の親部品に直接または間接的に接続される部品を、接続される親部品のうちその部品から最も近い距離にある親部品の子部品に設定する。
【0064】
図14は、回路図グループ内に2ピンかつネット属性が電源のみの部品が複数個存在する例を表わす図である。
【0065】
L1は、2ピンを有し、ネット属性が電源5V、5VAのみである。よって、L1は、親部品に設定される。C1は、L1に直接接続されるので、C1は、L1の子部品に設定される。L2は、2ピンを有し、ネット属性が電源5V、5VBのみである。よって、L2は、親部品に設定される。C2は、L2に直接接続されるので、C2は、L2の子部品に設定される。C3は、L1およびL2に接続されるが、C3とL2との距離がC3とL1との距離よりも短いので、C3はL2の子部品に設定される。
【0066】
近接ブロック生成部16は、接続情報に基づいて、親部品と、親部品に直接または間接的に接続される1個以上の子部品とを含む近接ブロックを生成する。
【0067】
近接ブロック内部品配置設計部17は、接続情報に基づいて、親部品のピンと、親部品のピンと接続する子部品とをペアリング、または子部品のピンと、子部品のピンと接続する別の子部品とをペアリングする。
【0068】
近接ブロック内部品配置設計部17は、親部品のピンと複数個の子部品とがペアリングされた場合には、回路図における親部品のピンの位置と、複数個の子部品の位置とに基づいて、複数個の子部品の位置を決定する。近接ブロック内部品配置設計部17は、回路図において親部品のピンに近い子部品ほど、親部品のピンの近くに配置する。
【0069】
図15は、ペアリングおよび子部品の配置の例を説明するための図である。
IC1のピンP4と、子部品C3と、子部品C4とが接続されている。親部品IC1のピンP4と、子部品C3およびC4とがペアリングされる。回路図から子部品C4は、子部品C3よりも親部品IC1のピンP4に近いと検出されているので、子部品C4は、子部品C3よりも親部品IC1のピンP4の近くに配置される。
【0070】
親部品IC1のピンP2と、子部品XのピンP7と、子部品C1とが接続されている。親部品IC1のピンP3と、子部品XのピンP6と、子部品C2とが接続されている。子部品XのピンP8と、子部品C1と、子部品C2とが接続されている。子部品XのピンP5と、子部品C1と、子部品C2とが接続されている。
【0071】
親部品IC1のピンP2と子部品Xとがペアリングされ、親部品IC1のピンP3と子部品Xとがペアリングされる。回路図から、子部品Xと親部品IC1のピンP2との距離と、子部品Xと親部品IC1のピンP3との距離がほぼ同じなので、子部品Xは、親部品IC1のピンP2およびP3の近くに配置される。
【0072】
子部品XのピンP7と子部品C1とがペアリングされ、子部品XのピンP8と子部品C1とがペアリングされる。回路図から、子部品C1と子部品XのピンP7との距離と、子部品C1と子部品XのピンP8との距離がほぼ同じなので、子部品C1は、子部品XのピンP7およびP8の近くに配置される。
【0073】
子部品XのピンP5と子部品C2とがペアリングされ、子部品XのピンP6と子部品C2とがペアリングされる。回路図から、子部品C2と子部品XのピンP5との距離と、子部品C2と子部品XのピンP6との距離がほぼ同じなので、子部品C2は、子部品XのピンP5およびP6の近くに配置される。
【0074】
近接ブロック内部品配置設計部17は、親部品の複数のピンと子部品とがペアリングされた場合には、回路図における検出した親部品の複数のピンの位置と、子部品の位置とに基づいて、子部品の位置を決定する。近接ブロック内部品配置設計部17は、回路図において、親部品の複数のピンのうち子部品に近いピンの近くに子部品を配置する。
【0075】
図16は、ペアリングおよび子部品の配置の別の例を説明するための図である。
親部品IC1のピンP1と、子部品C1とがペアリングされ、親部品IC1のピンP2と、子部品C1とがペアリングされる。回路図から、子部品C1は、親部品IC1のピンP1よりも親部品IC1のピンP2に近いと検出されているので、子部品C1は、親部品IC1のピンP2に近い位置に配置される。
【0076】
図17は、回路図を表わす図である。
図18は、
図17の回路図に基づく配置例を表わす図である。
【0077】
C79は、接続されるIC15の第12ピンの近くに配置され、C80は、接続されるIC15の第13ピンの近くに配置され、C81は、接続されるIC15の第16ピンの近くに配置され、C82は、接続されるIC15の第17ピンの近くに配置される。
【0078】
C90は、接続されるIC15の第35ピンの近くに配置され、C91は、接続されるIC15の第34ピンの近くに配置され、C92は、接続されるIC15の第29ピンの近くに配置され、C93は、接続されるIC15の第28ピンの近くに配置される。
【0079】
X4は、接続されるIC15の第6ピンおよび第7ピンの近くに配置される。C18は、接続されるX4の第1ピンの近くに配置され、C19は、接続されるX4の第3ピンの近くに配置される。
【0080】
C83、C84、C85は、接続されるIC15の第5ピン、第10ピン、第32ピンのいずれかの近くに配置される。
【0081】
R33が、接続されるIC15の第36ピンの近く(基板の裏面)に配置され、R34が、接続されるIC15の第26ピンの近く(基板の裏面)に配置され、R35が、接続されるIC15の第25ピンの近く(基板の裏面)に配置され、R36が、接続されるIC15の第24ピンの近く(基板の裏面)に配置され、R37が、接続されるIC15の第21ピンの近く(基板の裏面)に配置される。
【0082】
C78が、接続されるC84の近くに配置される。FL6が、接続されるC78の近くに配置される。
【0083】
全体配置設計部18は、回路図グループに含まれる1個以上の近接ブロックの回路図グループ内における配置を決定し、基板上における回路図グループの領域を取得し、取得した回路図グループの領域に回路図グループに含まれる1個以上の近接ブロックを配置する。
【0084】
図19は、実施の形態のプリント基板設計装置1の処理手順を表わすフローチャートである。
【0085】
ステップS101において、データ入力部2は、外部から、回路図およびネットリストなどのデータを入力する。
【0086】
ステップS102において、CAD部3は、設計者の操作に従って、データ入力部2から入力されたデータを用いて、部品名リスト、およびピン番号リストを含むバイナリ形式のCADデータを作成する。
【0087】
ステップS103において、変換部5は、回路図がPDF形式のデータまたはCADデータの場合に、画像データに変換する。変換部5は、回路図に基づいて作成されたバイナリ形式のCADデータをテキストデータに変換して、テキストデータの部品名リストおよびピン番号リストを作成する。
【0088】
ステップS104において、分割部6は、回路図を任意の処理単位に分割して、複数の回路図グループを作成する。
【0089】
ステップS105において、直線検出部7は、各回路図グループにおいて、回路図内の直線を検出する。
【0090】
ステップS106において、部品名検出部8は、各回路図グループにおいて、回路図の画像に含まれる文字列、およびその文字列の位置を検出することによって、部品名および部品名の位置、またはピン番号およびピン番号の位置を検出する。
【0091】
ステップS107において、部品検出部9は、各回路図グループにおいて、回路図の画像に含まれる部品を検出し、部品の部品種類、および部品領域を検出部品リストに登録する。部品サイズ分布算出部10は、回路図の一部において検出された部品の部品領域のサイズの中央値を部品の種類ごとに算出する。
【0092】
ステップS108において、単位距離算出部11は、検出部品リストに登録された1個以上の抵抗、コイル、およびコンデンサの大きさの中央値を単位距離として算出する。
【0093】
ステップS109において、部品-部品名ペアリング部13は、各回路図グループにおいて、検出部品リストに登録された部品の部品領域の位置と、部品名の位置とに基づいて、部品と部品名とをペアリングする。
【0094】
ステップS110において、配線検出部12は、各回路図グループにおいて、検出された直線に基づいて、配線を検出する。
【0095】
ステップS111において、交点検出部19は、各回路図グループにおいて、回路図上の黒丸で表される配線の接続箇所(交点)を検出する。
【0096】
ステップS112において、接続検出部14は、各回路図グループにおいて、回路図の画像で検出部品リストに登録された部品と配線との接続を検出し、1個以上の配線によって接続される2つの部品を特定し、特定された2つの部品がネットリストにおいても接続されている場合に、特定された2つの部品が接続されていることを表わす接続情報を作成する。
【0097】
ステップS113において、部品分類部15は、各回路図グループにおいて、検出部品リストに登録された部品を、親部品と、子部品と、その他の部品とに分類する。
【0098】
ステップS114において、近接ブロック生成部16は、各回路図グループにおいて、接続情報に基づいて、親部品と、親部品に直接または間接的に接続される1個以上の子部品とを含む近接ブロックを生成する。
【0099】
ステップS115において、近接ブロック内部品配置設計部17は、各回路図グループにおいて、近接ブロック内の部品を配置する。
【0100】
ステップS116において、全体配置設計部18は、回路図グループに含まれる1個以上の近接ブロックの回路図グループ内における配置を決定し、基板上における回路図グループの領域を取得し、取得した回路図グループの領域に回路図グループに含まれる1個以上の近接ブロックを配置する。
【0101】
図20は、プリント基板設計装置1のハードウエア構成を表わす図である。プリント基板設計装置1は、公知のパーソナルコンピュータなどで実現することができる。プリント基板設計装置1は、プロセッサ100と、液晶ディスプレイなどの表示装置200と、キーボードおよびマウスなどの入力装置300と、メモリなどの内部記憶装置400と、ハードディスクまたは可搬性の記録媒体などの外部記憶装置500と、通信装置600とを備える。
【0102】
入力装置300は、設計者からの入力を受け付ける。通信装置600は、外部からインターネットなどを通じて、プリント基板設計プログラム、およびデータを受信することができる。外部記憶装置500は、プリント基板設計プログラム、およびデータを記憶することができる。内部記憶装置400は、通信装置600または外部記憶装置500から転送されるプリント基板設計プログラム、およびデータを記憶する。プロセッサ100は、回路図、近接ブロック、検出部品リスト、ネットリストなどを表示装置200に表示する。プロセッサ100は、内部記憶装置400に記憶されたプリント基板設計プログラムを実行する。これによって、
図19のフローチャートに従って、処理が実行される。
【0103】
変形例.
本開示は、上記の実施形態に限定されない。たとえば、以下のような変形例も含まれる。
【0104】
(1)回路図グループ
上記の実施形態では、分割部6によって、回路図が分割された単位を配置設計の単位となる回路図グループとしたが、これに限定されるものではない。たとえば、回路図が分割された単位を複数個有するものを回路図グループとしてもよい。
【0105】
(2)プリント基板設計装置
上記の実施形態では、プリント基板設計装置が、
図1の配置設計部21の構成要素をすべて備えるものとしたが、これに限定されるものではない。たとえば、プリント基板設計装置が、変換部5と、分割部6と、ネット属性設定部20と、回路図グループ配置設計部31に含まれる直線検出部7、部品名検出部8、部品検出部9、配線検出部12、部品-部品名ペアリング部13、接続検出部14、交点検出部19、部品サイズ分布算出部10、および単位距離算出部11のみを備えるものとしてもよい。この場合、プリント基板設計装置は、回路図読取り装置として機能する。
【0106】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0107】
1 プリント基板設計装置、2 データ入力部、3 CAD部、4 ユーザI/F、5 変換部、6 分割部、7 直線検出部、8 部品名検出部、9 部品検出部、10 部品サイズ分布算出部、11 単位距離算出部、12 配線検出部、13 部品名ペアリング部、14 接続検出部、15 部品分類部、16 近接ブロック生成部、17 近接ブロック内部品配置設計部、18 全体配置設計部、19 交点検出部、20 ネット属性設定部、21 配置設計部、31 回路図グループ配置設計部、100 プロセッサ、200 表示装置、300 入力装置、400 内部記憶装置、500 外部記憶装置、600 通信装置。