JP5589783B2 - 設計プログラム、設計装置及び設計方法 - Google Patents

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

Info

Publication number
JP5589783B2
JP5589783B2 JP2010251282A JP2010251282A JP5589783B2 JP 5589783 B2 JP5589783 B2 JP 5589783B2 JP 2010251282 A JP2010251282 A JP 2010251282A JP 2010251282 A JP2010251282 A JP 2010251282A JP 5589783 B2 JP5589783 B2 JP 5589783B2
Authority
JP
Japan
Prior art keywords
pin
swap
wiring
pins
net
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
JP2010251282A
Other languages
English (en)
Other versions
JP2012103866A (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 JP2010251282A priority Critical patent/JP5589783B2/ja
Priority to US13/221,572 priority patent/US8484600B2/en
Publication of JP2012103866A publication Critical patent/JP2012103866A/ja
Application granted granted Critical
Publication of JP5589783B2 publication Critical patent/JP5589783B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は、計算機利用設計(CAD)で用いる設計プログラム、設計装置及び設計方法に関する。
近年、各種設計はCADにより行われるようになった。CADの一例としての電気CADにはプリント配線板の部品配置、配線等を行うプリント配線板CAD(実装CAD)が含まれている。設計者等は、例えばプリント配線板CADを利用してプリント配線板の部品配置や配線等を行っている。
プリント配線板では例えばFPGA(Field Programmable Gate Array)と呼ばれるピンスワップ(ピン交換)可能なピンを持つ部品が使用される。ピンスワップは例えば図1及び図2に示すように利用される。
図1は、捩れているラッツネストの一例のイメージ図である。ラッツネストとは端子の接続を示す線である。ラッツネストは端子同士の論理的接続関係を示している。図1は部品1のピンと他の部品(図示せず)のピンとの接続を示すラッツネストが捩れている。例えばピンスワップは、図1のように捩れたラッツネストの捩れが最小になるように行われる。図2は捩れが最小になるようにピンスワップが行われた後のラッツネストの一例のイメージ図である。
例えばピンスワップ可能なピンを持つ部品の一例であるFPGAは、ピン数の増大や複数I/Oバンク構造等により高速、高密度化している。したがって、捩れが最小になるようにI/Oピンの割当てを手動で行うことは非常に困難となっている。
従来の配線処理装置には、配線を行う前に論理的に等価であって交換可能な端子(等価端子)を考慮し、等価端子を交換することでネットの交差を避けられる場合に、ネットの交差を避けるように必要に応じて等価端子を交換してから導体パターンの配線を行うものや、手動による配線システムにおける等価端子の交換および導体パターンの配線に伴う操作を軽減して操作性を向上させるものがあった(例えば特許文献1参照)。
特開平9−44538号公報
図1及び図2に示すように、捩れているラッツネストを、捩れが最小になるようにピンスワップしたとしても、プリント配線板における実際の配線では、物理的あるいは電気的な制約を満たさないことも多かった。プリント配線板における実際の配線が物理的あるいは電気的な制約を満たさなければ、従来のプリント配線板CADではピンスワップの手戻りが発生するという問題があった。
特にFPGA等のピンスワップ可能なピン数が多い部品ではピンスワップの組み合わせも多く、配線にも時間が掛かる。したがって、ピンスワップと配線との間での手戻りによる繰り返しは設計工数増加の原因にもなるという問題があった。
本実施形態は、配線性を保証しながらピンスワップ可能なピンのピン割当を行うことができる設計プログラム、設計装置及び設計方法を提供することを目的とする。
上記課題を解決する為、本発明の一実施形態は、コンピュータに、少なくとも一方がピンスワップ可能なピンを持つ部品間の配線を設計するとき前記ピンに割り当てられているネットを考慮せず配線性を保証するように仮配線接続し、仮配線接続されたピン同士が同一のネット番号となるように、ピンスワップ可能なピンをピンスワップする処理を実行させる設計プログラムである。
なお、本発明の一実施形態の構成要素、表現又は構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。
本実施形態によれば、配線性を保証しながらピンスワップ可能なピンのピン割当を行うことができる。
捩れているラッツネストの一例のイメージ図である。 捩れが最小になるようにピンスワップが行われた後のラッツネストの一例のイメージ図である。 PCの一例のハードウェア構成図である。 本実施例の設計装置の一実施例のブロック構成図である。 配線処理部の一実施例のブロック構成図である。 本実施例の配線処理部による処理の一例のイメージ図である。 本実施例の配線処理部による処理の他の例のイメージ図である。 本実施例の配線処理部による処理の他の例のイメージ図である。 本実施例の配線処理部による処理の他の例のイメージ図である。 本実施例の配線処理部による処理の他の例のイメージ図である。 本実施例のピンスワップ処理部によるピンスワップ手法の一例のイメージ図である。 本実施例のピンスワップ処理部によるピンスワップ手法の他の例のイメージ図である。 本実施例のピンスワップ処理部によるピンスワップ手法の他の例のイメージ図である。 本実施例のピンスワップ処理部によるピンスワップ手法の他の例のイメージ図である。 本実施例の配線処理部による処理の一例のイメージ図である。 本実施例の配線処理部による処理の他の例のイメージ図である。 本実施例の配線処理部による処理の他の例のイメージ図である。 本実施例の配線処理部の処理手順を表した一例のフローチャートである。 ソースピン及びターゲットピン集合の一例の構成図である。 ピンスワップの結果が反映された部品ピン情報の一例の構成図である。 ピンスワップ手法(X)=1の処理手順を表す一例のフローチャートである。 ピンスワップ手法(X)=2の処理手順を表す一例のフローチャートである。 ピンスワップ手法(X)=4の処理手順を表す一例のフローチャートである。 本実施例の配線処理部の処理を表した一例のイメージ図(1/2)である。 本実施例の配線処理部の処理を表した一例のイメージ図(2/2)である。 本実施例の配線処理部の処理の応用例を表したイメージ図(1/3)である。 本実施例の配線処理部の処理の応用例を表したイメージ図(2/3)である。 本実施例の配線処理部の処理の応用例を表したイメージ図(3/3)である。
次に、本発明を実施するための形態を、以下の実施例に基づき図面を参照しつつ説明していく。本実施例の設計プログラム、設計装置及び設計方法は一例であって、例えば他の名称のプログラム、装置及び方法であってもよい。また、本実施例ではプリント配線板上のピンスワップ可能なピンを持つ部品としてFPGAを例に説明するが、コネクタ、ASIC(Application Specific Integrated Circuit)等であってもよい。
本実施例の設計プログラムは例えば図3に示すパーソナルコンピュータ(PC)で実行される。図3はPCの一例のハードウェア構成図である。図3のPC10は、バス29で相互に接続された入力装置21、出力装置22、記録媒体読取装置23、補助記憶装置24、主記憶装置25、演算処理装置26及びインターフェース装置27を有する。
入力装置21はキーボードやマウス等である。入力装置21は、各種信号を入力するために用いられる。出力装置22はディスプレイ装置等である。出力装置22は、各種ウインドウやデータ等を表示するために用いられる。インターフェース装置27は、モデム又はLANカード等である。インターフェース装置27は、ネットワークに接続する為に用いられる。
本実施例の設計プログラムは、図3のPC10を制御する各種プログラムの少なくとも一部である。設計プログラムは記録媒体28の配布やネットワークからダウンロードすることによって提供される。設計プログラムを記録した記録媒体28はCD−ROM、フレキシブルディスク、光磁気ディスク等の様に情報を光学的,電気的或いは磁気的に記録する記録媒体、ROM、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリなど様々なタイプの記録媒体を用いることができる。
設計プログラムを記録した記録媒体28が記録媒体読取装置23にセットされると、設計プログラムは記録媒体28から記録媒体読取装置23を介して補助記憶装置24にインストールされる。
なお、ネットワークからダウンロードされた設計プログラムはインターフェース装置27を介して補助記憶装置24にインストールされる。補助記憶装置24は、インストールされた設計プログラムを格納すると共に必要なファイル,データ等を格納する。
主記憶装置25は、設計プログラムの起動時に補助記憶装置24から設計プログラムを読み出して格納する。演算処理装置26は主記憶装置25に格納された設計プログラムに従って、後述するような各種処理を実現している。設計プログラムを実行するPC10は設計装置の一例である。
例えばPC10は主記憶装置25に格納された設計プログラムに従って、図4に示すような各種処理を実現している。図4は本実施例の設計装置の一実施例のブロック構成図である。
図4の設計装置30は、入力処理部32、出力処理部33、配線処理部34、ネットリスト記録部35、部品データ記録部36を有する。入力処理部32は設計者等の使用者が入力装置21から入力した内容に基づき、入力処理を行う。出力処理部33は使用者が入力した内容や配線処理部34による配線処理の結果に基づき、出力処理を行う。配線処理部34はネットリスト記録部35からネットリストを読み出し、部品データ記録部36から部品データを読み出し、配線処理を行う。
ネットリスト記録部35はネットリストを記録している。ネットリストはネット名に対応付けて、そのネット名のネットによって接続されている部品の部品名、ピン名を後述のネットグループごとに記録している。また、部品データ記録部36は部品データを記録している。部品データは部品名と対応付けて、ピン名、ピンスワップ可能なピンを識別する為のピンスワップ情報を記録している。なお、ピンスワップ情報には後述のピンスワップグループ番号が含まれる。
図5は配線処理部の一実施例のブロック構成図である。図5の配線処理部34は、選択処理部41、仮配線処理部42、ピンスワップ処理部43、詳細配線処理部44を有している。
選択処理部41は配線処理の対象となるピン(ビア)集合を選択する。例えば選択処理部41は配線処理の対象となるソースピン及びターゲットピン集合を選択する。仮配線処理部42は選択処理部41により選択されたソースピンとターゲットピンとを仮配線接続する。仮配線処理部42は、例えばMaxFlowアルゴリズムなどの単層結線手法を用いる。仮配線処理部42はピンスワップ可能なピンに割り当てられた複数のネットをある単層(L層)にて接続する単層結線手法の一例である。MaxFlowアルゴリズムはプリント配線板における実際の配線が物理的あるいは電気的な制約を満たすように接続する手法である。なお、配線単位のネット群はネットグループと呼ばれる。
したがって、仮配線処理部42が用いる単層結線手法は、プリント配線板における実際の配線が物理的あるいは電気的な制約を満たすように、ソースとターゲットとを配線により仮想的に接続する手法である。ピンスワップ処理部43は仮想的に接続(仮接続)したピンのうち、ネット名が一致しないピンに対し、後述のピンスワップ手法を実行する。詳細配線処理部44は仮配線接続されているソースピンとターゲットピンとを詳細配線接続する。
図6は本実施例の配線処理部による処理の一例のイメージ図である。図6(A)は単層にて接続する部品1及び2のピンのネットグループを表している。なお、図6中の○はピン(ビア)を表している。図6中の丸数字は、ネット名の一例としてネット番号を表している。図6中の部品1及び2のピンはピンスワップ可能なピンとする。
図6(B)では図6(A)に示した部品1及び2のピンを例えばMaxFlowアルゴリズムなどの単純な単層結線手法を用いて、プリント配線板における実際の配線が物理的あるいは電気的な制約を満たすように仮配線接続する。図6(B)の仮配線接続はネット番号に関係なくピンが仮配線接続される。
図6(C)では図6(B)において仮配線接続されたピンのうちネット番号が一致しないピンに対し、ピンスワップ処理を行う。図6(C)中の◎はピンスワップしたピンを表している。図6(C)はピンスワップ処理により、図6(B)で仮配線接続されたピン同士が同一のネット番号となっている。
このように、本実施例では仮配線接続とピンスワップとを連動させ、結線後、自動的にピンスワップを試行することにより、配線性を保証しながらピン割り当てを行い、ピンスワップのやり直しなどの手戻りを少なくすることができる。
図7は本実施例の配線処理部による処理の他の例のイメージ図である。図7(A)は図6(B)と同様である。図7(B)は図6(C)と同様である。図7(B)にクロック信号や差動ペア信号などの特定の種類の信号(特定信号)が含まれるとき、本実施例では特定信号を考慮した順番に図7(B)のピンスワップ処理の結果を補正する。
例えばクロック信号に対応するネット番号「7」のネットは図7(C)において外側になるように図7(B)のピンスワップ処理の結果が補正されている。このように特定信号を考慮した順番になるようにピンスワップ処理の結果を補正することで、本実施例では電気的な制約を守りながら高密度配線を行うことができる。本実施例では図7(A)において仮配線接続された全てのピンのネット番号が一致した場合であっても、図7(C)の処理を実行可能とする。
図8は本実施例の配線処理部による処理の他の例のイメージ図である。図8(A)は図6(B)と同様である。例えば図8(A)の部品1及び2はピンスワップ可能なピンを持つFPGAであるとする。すなわち、図8(A)では部品1及び2ともピンスワップ可能であるため、部品1及び2におけるピンスワップを制御することで、部品1又は2の片方によるピンスワップ、又は、部品1及び2の両方によるピンスワップを選択できる。
図8(B1)は部品2のピンを固定し、部品1によるピンスワップを選択した例を表している。図8(B2)は部品1のピンを固定し、部品2によるピンスワップを選択した例を表している。図8(B3)は部品1及び2の両方によるピンスワップを選択した例を表している。
図9及び図10は本実施例の配線処理部による処理の他の例のイメージ図である。図9及び図10は部品A〜Dを含む。図9及び図10は3つのネットグループ(NG)1〜3を含む。NG1は配線層Lxにて部品A及びBを接続する。NG2は配線層Lyにて部品B及びCを接続する。NG3は配線層Lzにて部品C及びDを接続する。
図9中のNG1〜3のうち1つのネットグループ(例えばNG1)に含まれる信号が他のネットグループ(例えばNG2、3)に含まれる場合、NG1のピンスワップ処理に連動してNG2、3のピンスワップ処理が自動的に行われる。
図10(A)は部品A〜Dを例えばMaxFlowアルゴリズムなどの単純な単層結線手法を用いて、プリント配線板における実際の配線が物理的あるいは電気的な制約を満たすように仮配線接続したものである。
図10(B)では部品Aのピンの並びを固定し、部品Aに接続されているNG1の他方の部品Bのピンの並びをピンスワップしている。図10(C)ではNG1のピンスワップ処理に連動して、部品Bのピンの並びを固定し、部品Bに接続されているNG2の他方の部品Cのピンの並びをピンスワップしている。図10(D)ではNG2のピンスワップ処理に連動して、部品Cのピンの並びを固定し、部品Cに接続されているNG3の他方の部品Dのピンの並びをピンスワップしている。
図11は本実施例のピンスワップ処理部によるピンスワップ手法の一例のイメージ図である。図11は全てのピンがピンスワップ可能なケースを表している。図11中の○はピン(ビア)を表している。図11中の丸数字は、ネット名の一例としてネット番号を表している。
また、図11中の最も外側の丸数字列は、例えばMaxFlowアルゴリズムなどの単純な単層結線手法を用いて、プリント配線板における実際の配線が物理的あるいは電気的な制約を満たすように仮配線接続したあとの各ピンに割り当てられたネット番号を表している。図11中、ピンスワップグループ(PSG)は各ピンのピンスワップグループ番号を表している。なお、同一のピンスワップ番号を持つピンは、ピンスワップ可能なピンである。図11中の点線は仮配線接続されているピンを表している。最も左側の丸数字列はピンスワップを行う一方の部品に割り当てられたネット番号を表している。
さらに、図11は左側から右側に向かってピンスワップ処理を進めている様子を表している。1回のピンスワップ処理はピンスワップステップに対応する。図11中、上側の数字列はピンスワップステップ番号を表している。図11は5回のピンスワップステップを表している。
ピンスワップ処理部43は、仮配線処理部42による仮配線接続の外側(図11においては上側)から他方の部品のピンに割り当てられたネット番号(図11においては最も右側の丸数字列)に合わせてピンスワップする。
ピンスワップステップ番号「1」のピンスワップ処理では他方の部品のピンに割り当てられたネット番号「8」に合わせて、一方の部品のネット番号「7」が割り当てられたピンとネット番号「8」が割り当てられたピンとをピンスワップしている。
ピンスワップステップ番号「2」のピンスワップ処理では他方の部品のピンに割り当てられたネット番号「3」に合わせて、一方の部品のネット番号「6」が割り当てられたピンとネット番号「3」が割り当てられたピンとをピンスワップしている。
ピンスワップステップ番号「3」のピンスワップ処理では他方の部品のピンに割り当てられたネット番号「7」に合わせて、一方の部品のネット番号「2」が割り当てられたピンとネット番号「7」が割り当てられたピンとをピンスワップしている。
ピンスワップステップ番号「4」のピンスワップ処理では他方の部品のピンに割り当てられたネット番号「2」に合わせて、一方の部品のネット番号「5」が割り当てられたピンとネット番号「2」が割り当てられたピンとをピンスワップしている。
ピンスワップステップ番号「5」のピンスワップ処理では他方の部品のピンに割り当てられたネット番号「6」に合わせて、一方の部品のネット番号「10」が割り当てられたピンとネット番号「6」が割り当てられたピンとをピンスワップしている。ピンスワップ処理部43は仮配線接続されている他方の部品のピン及び一方の部品のピンに割り当てられたネット番号が同一であるとき、ピンスワップ処理を行わない。
図11に示すように、1回のピンスワップ処理を行うと、一方及び他方の部品のピンに割り当てられたネット番号は1つ又は2つ揃う。例えば1つのネット番号がk回揃った後に2つのネット番号がk+1回目で揃った場合、ネット番号が揃ったピンの数はk+2となる。この2つのネット番号が揃うまでの処理を1ループとすると、全体でのループ数を求めることで、全体の最小ピンスワップ回数は求められる。
初期段階でネット番号が不揃いのピンの数をmとし、ループ数をpとすると、最小ピンスワップ回数はm−p回となる。なお、ループ同士は独立しているので、ループ間でピンスワップ処理が前後しても影響はない。図11のピンスワップ手法は1回のピンスワップ処理により1つのネット番号を揃えるため、ネット番号が不揃いのピンをピンスワップする手法である。したがって、図11のピンスワップ手法は上記の最小ピンスワップ回数を求める処理と同様のものであり、すなわち最適解を求めることができる。
例えば一方の部品の全ピンが同じピンスワップグループである場合、ピンスワップ処理部43は以下の条件及び手順で処理することにより解を求めることができる。
対象とするネット数:S
仮想接続並び順:i=1、2、…
i番目の配線に接続するピンスワップ可能なピンのネット番号:n(i)
i番目の配線に接続する他方のピンのネット番号:m(i)
手順1:i=1
手順2:m(i)=n(j)となるn(j)とn(i)とをピンスワップ
手順3:i=2〜Sに対して手順2を繰り返す。
図12は本実施例のピンスワップ処理部によるピンスワップ手法の他の例のイメージ図である。図12はピンスワップ不可なピンを含むケースを表している。図12は一方の部品でピンスワップ不可のピンに割り当てられたネットを他方の部品のピンがピンスワップ可能である例を示している。なお、図12において図11と同様な部分についての説明は適宜省略する。
図12中、ピンスワップグループ(PSG)は各ピンのピンスワップグループ番号を表している。ピンスワップ番号「0」を持つピンは、ピンスワップ不可なピンである。図12ではピンスワップステップ番号の順番にピンスワップ処理が進められる。
ピンスワップステップ番号「1」のピンスワップ処理では他方の部品のピンに割り当てられたネット番号「8」に合わせて、一方の部品のネット番号「7」が割り当てられたピンとネット番号「8」が割り当てられたピンとをピンスワップしている。
次に、一方の部品のネット番号「6」が割り当てられたピンはピンスワップ不可なピンであるため、図12のピンスワップ手法では他方の部品のピンのピンスワップ処理により一方及び他方の部品のピンに割り当てられるネット番号を合わせることを試みる。具体的には、ピンスワップステップ番号「2」のピンスワップ処理では一方の部品のピンに割り当てられたネット番号「6」に合わせて、他の部品のネット番号「3」が割り当てられたピンとネット番号「6」が割り当てられたピンとをピンスワップしている。
次に、一方の部品のネット番号「2」が割り当てられたピンはピンスワップ不可なピンであるため、一方の部品のピンに割り当てられたネット番号「2」に合わせて、他の部品のネット番号「7」が割り当てられたピンとネット番号「2」が割り当てられたピンとをピンスワップしている。
ピンスワップステップ番号「4」のピンスワップ処理では他方の部品のピンに割り当てられたネット番号「7」に合わせて、一方の部品のネット番号「5」が割り当てられたピンとネット番号「7」が割り当てられたピンとをピンスワップしている。
次に、一方の部品のネット番号「10」が割り当てられたピンはピンスワップ不可なピンであるため、一方の部品のピンに割り当てられたネット番号「10」に合わせて、他の部品のネット番号「3」が割り当てられたピンとネット番号「10」が割り当てられたピンとをピンスワップしている。
図12に示すピンスワップ手法は図11と同様、1回のピンスワップ処理により1つのネット番号を揃え、ネット番号が不揃いのピンをピンスワップする手法である。図12のピンスワップ手法は上記の最小ピンスワップ回数を求める処理と同様のものであり、すなわち最適解を求めることができる。
例えば一方の部品がピンスワップ不可なピンを含み、一方の部品のピンスワップ不可なピンに割り当てられたネット番号に合わせるように、他方の部品のピンスワップ可能なピンでピンスワップする場合、ピンスワップ処理部43は以下の条件及び手順で処理することにより解を求めることができる。
対象とするネット数:S
仮想接続並び順:i=1、2、…
i番目の配線に接続する一方の部品nのピンのネット番号:n(i)
i番目の配線に接続する他方の部品mのピンのネット番号:m(i)
i番目の配線に接続する部品nのピンのピンスワップグループ番号:np(i)
i番目の配線に接続する部品mのピンのピンスワップグループ番号:mp(i)
ピンスワップ不可:np(i)=0、mp(i)=0
手順1:i=1
手順2:np(i)≧1であるならm(i)=n(j)となるn(j)とn(i)とをピンスワップする。
np(i)=0であるならn(i)=m(j)となるm(j)とm(i)とをピンスワップする。
手順3:i=2〜Sに対して手順2を繰り返す。
図13は本実施例のピンスワップ処理部によるピンスワップ手法の他の例のイメージ図である。図13はピンスワップ不可なピンを含むケースを表している。図13(A)は一方及び他方の部品の両方でピンスワップ不可のピンに割り当てられたネットが存在する例を示している。なお、図13において、図11又は図12と同様な部分についての説明は適宜省略する。図13中、ピンスワップ処理部43は一方及び他方の部品の両方でピンスワップ不可のピンに割り当てられたネット番号「2」「10」のピンを除外する。
そして、仮配線処理部42は除外されたピンについて先に仮配線しておく。除外されなかったピンについて、仮配線処理部42は上記した例えばMaxFlowアルゴリズムなどの単純な単層結線手法を用いて、プリント配線板における実際の配線が物理的あるいは電気的な制約を満たすように仮配線接続する。その後、図12に示したピンスワップ手法によりピンスワップ処理部43は図13(B)に示すように、ピンスワップステップ番号の順番にピンスワップ処理を進める。
図13に示すピンスワップ手法は一方又は他方のピンがピンスワップ可能でも相手先のピンがピンスワップ不可で解を求められないこともある。しかし、図13のピンスワップ手法は解が存在する場合、最適解を求めることができる。
例えば部品がピンスワップ不可なピンを含み、一方及び他方の部品のピンスワップ不可なピンに割り当てられたネット番号が存在する場合、ピンスワップ処理部43は以下の条件及び手順で処理することにより解を求めることができる。
対象とするネット数:S
仮想接続並び順:i=1、2、…
i番目の配線に接続する一方の部品nのピンのネット番号:n(i)
i番目の配線に接続する他方の部品mのピンのネット番号:m(i)
i番目の配線に接続する部品nのピンのピンスワップグループ番号:np(i)
i番目の配線に接続する部品mのピンのピンスワップグループ番号:mp(i)
ピンスワップ不可:np(i)=0、mp(i)=0
手順1:n(i)=m(j)でnp(i)=0且つmp(j)=0であるネット番号n(i)を全て抽出し、対象とするネットから除外する。
手順2:除外したネットの仮接続を別途、先に行う。
手順3:i=1
手順4:np(i)≧1であるならm(i)=n(j)となるn(j)とn(i)とをピンスワップする。
np(i)=0であるならn(i)=m(j)となるm(j)とm(i)とをピンスワップする。
手順5:i=2〜(S−除外したネットの数)に対して手順4を繰り返す。
図14は本実施例のピンスワップ処理部によるピンスワップ手法の他の例のイメージ図である。図14は一方及び他方の部品が複数のピンスワップグループのピンを含むケースを表している。なお、図14において、図11〜図13と同様な部分についての説明は適宜省略する。図14では、ピンスワップステップ番号の順番にピンスワップ処理が進められる。
ピンスワップステップ番号「1」のピンスワップ処理では他方の部品のピンに割り当てられたネット番号「8」に合わせて、一方の部品のネット番号「7」が割り当てられたピンとネット番号「8」が割り当てられたピンとをピンスワップしている。
次に、他方の部品のピンに割り当てられたネット番号「3」に合わせて、一方の部品のネット番号「6」が割り当てられたピンとネット番号「3」が割り当てられたピンとをピンスワップしようとするが、ピンスワップグループが異なる。
そこで、ピンスワップステップ番号「2」のピンスワップ処理では、他方の部品のピンのピンスワップ処理により一方及び他方の部品のピンに割り当てられるネット番号を合わせることを試みる。
具体的には、ピンスワップステップ番号「2」のピンスワップ処理では一方の部品のピンに割り当てられたネット番号「6」に合わせて、他の部品のネット番号「3」が割り当てられたピンとネット番号「6」が割り当てられたピンとをピンスワップしている。
以下、同様にして、図14に示すピンスワップ手法はピンスワップ処理を行おうとした一方の部品のピンが同一のピンスワップグループでない場合、他の部品のピンによるピンスワップ処理を試みる。図14に示すピンスワップ手法ではピンスワップ処理を行おうとした他方の部品のピンも同一のピンスワップグループでない場合、次のネット番号が割り当てられたピンのピンスワップ処理にスキップする。
図14に示すピンスワップ手法は一方及び他方のピンのピンスワップグループが同一でない場合に、解を求められないこともある。しかし、図14のピンスワップ手法は解が存在する場合、最適解を求めることができる。
例えば一方及び他方の両方の部品が複数のピンスワップグループのピンを含む場合、ピンスワップ処理部43は以下の条件及び手順で処理することにより解を求めることができる。
対象とするネット数:S
仮想接続並び順:i=1、2、…
i番目の配線に接続する一方の部品nのピンのネット番号:n(i)
i番目の配線に接続する他方の部品mのピンのネット番号:m(i)
i番目の配線に接続する部品nのピンのピンスワップグループ番号:np(i)
i番目の配線に接続する部品mのピンのピンスワップグループ番号:mp(i)
ピンスワップ不可:np(i)=0、mp(i)=0
手順1:i=1
手順2:m(i)=n(j)となるjに対して、np(j)=np(i)であるならばn(j)とn(i)とをピンスワップし、手順4へ
np(j)≠np(i)であるならば手順3へ
手順3:n(i)=m(j)となるjに対して、mp(j)=mp(i)であるならばm(j)とm(i)とをピンスワップし、手順4へ
mp(j)≠mp(i)であるならば手順4へ
手順4:i=2〜Sに対して手順2を繰り返す。
図15は本実施例の配線処理部による処理の一例のイメージ図である。図15(A)は単層にて接続する部品1及び2のピンのネットグループを表している。なお、図15中の○はピン(ビア)を表している。図15中の丸数字は、ネット名の一例としてのネット番号を表している。図15中の丸数字以外の○は、ピンスワップ可能なダミーネットピンとする。図15中の部品1及び2のピンはピンスワップ可能なピンとする。
図15(B)では図15(A)に示した部品1及び2のピンを例えばMaxFlowアルゴリズムなどの単純な単層結線手法を用いて、プリント配線板における実際の配線が物理的あるいは電気的な制約を満たすように仮配線接続する。図15(B)の仮配線接続はピンスワップ可能なダミーネットピンの使用を許可した例を表している。
図15(B)では部品1のピンのうちネット番号「3」及び「7」が割り当てられたピンの代わりにダミーネットピンが仮配線接続されている。また、図15(B)では部品2のピンのうちネット番号「6」及び「8」が割り当てられたピンの代わりにダミーネットピンが仮配線接続されている。図15(C)は図15(B)において仮配線接続されたピン又はダミーネットピンのうちネット番号が一致しないピン又はダミーネットピンに対してピンスワップ処理を行う。
図15(C)中の◎はピンスワップしたピン又はダミーネットピンを表している。図15(C)はピンスワップ処理により仮配線接続されたピン又はダミーネットピンが同一のネット番号となっている。
このように、本実施例では仮配線接続とピンスワップとを連動させ、結線後、自動的にピンスワップを試行することにより、配線性を保証しながらピン割り当てを行い、ピンスワップのやり直しなどの手戻りを少なくすることができる。
図16及び図17は本実施例の配線処理部による処理の他の例のイメージ図である。図16及び図17において図6等と同様な部分についての説明は適宜省略する。
図16(A)は単層(Lx層)にて接続する部品1及び2のピンのネットグループを表している。図16(B)では図16(A)に示した部品1及び2のピンを例えばMaxFlowアルゴリズムなどの単純な単層結線手法を用いて、プリント配線板における実際の配線が物理的あるいは電気的な制約を満たすように仮配線接続する。図16(B)の仮配線接続はネット番号に関係なくピンが仮配線接続されているが、ネット番号を割り当てられている一部のピンが未結線となっている。図16では、未結線のピンを点線の○で表している。
図16(C)では図16(B)において仮配線接続されたピンのうちネット番号が一致しないピンに対し、ピンスワップ処理を行う。図16(C)はピンスワップ処理により図16(B)で仮配線接続されたピン同士が同一のネット番号となっている。
一方で、図16(C)は点線の○で表される未結線のピンが残されている。このように未結線のピンが残された場合、本実施例の配線処理部34は図17(A)に示す未結線のピンについて、逐次、別の単層(Ly層)にて図17(B)に示すように例えばMaxFlowアルゴリズムなどの単純な単層結線手法を用いて、プリント配線板における実際の配線が物理的あるいは電気的な制約を満たすように仮配線接続する。
そして、図17(C)では図17(B)において仮配線接続されたピンのうちネット番号が一致しないピンに対し、ピンスワップ処理を行う。図17(C)はピンスワップ処理により、図17(B)で仮配線接続されたピン同士が同一のネット番号となっている。
このように、本実施例では仮配線接続とピンスワップとを連動させ、複数の単層を利用したピンスワップを試行することにより、配線性を保証しながらピン割り当てを行い、ピンスワップのやり直しなどの手戻りを少なくすることができる。
図18は本実施例の配線処理部の処理手順を表した一例のフローチャートである。図18のフローチャートにおいて、ピンスワップ手法(X)=1は図11のピンスワップ手法である。ピンスワップ手法(X)=2は図12のピンスワップ手法である。ピンスワップ手法(X)=3は図13のピンスワップ手法である。ピンスワップ手法(X)=4は図14のピンスワップ手法である。
ステップS1において、選択処理部41は配線処理の対象となるピン(ビア)集合として例えばソースピン及びターゲットピン集合を選択する。選択処理部41は例えばネットリスト記録部35に記録されているネットリスト及び部品データ記録部36に記録されている部品データに基づき、複数の部品ピン情報を含むソースピン及びターゲットピン集合を選択する。
ステップS2において、ピンスワップ処理部43はソースピン及びターゲットピン集合に含まれる部品ピン情報に基づいて、ピンスワップ可能ピンの有無のチェックと、ピンスワップ手法(X)の確定とを行う。ピンスワップ処理部43はピンスワップ可能ピンが無ければ、ステップS10においてピンスワップ失敗と判定する。
ピンスワップ処理部43はピンスワップ可能ピンが有れば、ステップS3においてピンスワップ手法(X)=3であるか否かを判定する。また、ピンスワップ手法(X)=3であれば詳細配線処理部44はステップS4において、ネットNのソース側のピンのピンスワップグループ番号SWP_S(N)=0、及び、ネットNのターゲット側のピンのピンスワップグループ番号SWP_T(N)=0のネットを詳細配線接続する。
ステップS5において、選択処理部41はソースピン及びターゲットピン集合から詳細配線接続したネットのピンに対応する部品ピン情報を除外する。ステップS3においてピンスワップ手法(X)=3でないとき、又は、ステップS5の処理のあと、仮配線処理部42はステップS6において、ソースピン及びターゲットピン集合に含まれる部品ピン情報に基づき、ソースピンとターゲットピンとを、例えばMaxFlowアルゴリズムなどの単層結線手法を用いて仮配線接続する。
ステップS7において、ピンスワップ処理部43はピンスワップ手法(X)に基づいて後述のピンスワップ手法(X)=1、2又は4の何れかを実行する。ピンスワップを成功すれば、詳細配線処理部44はステップS8において仮配線を削除する。ピンスワップを失敗すれば、ピンスワップ処理部43はステップS10においてピンスワップ失敗と判定する。仮配線を削除したあと、詳細配線処理部44はステップS9において、仮配線接続されていたソース側のピン及びターゲット側のピンを詳細配線接続する。
図19はソースピン及びターゲットピン集合の一例の構成図である。図19のソースピン及びターゲットピン集合には複数の部品ピン情報が含まれる。図19の部品ピン情報はピン名、ネット名、ピンスワップグループ番号を含む。
図20はピンスワップの結果が反映された部品ピン情報の一例の構成図である。図20に示す部品ピン情報はステップS6で仮配線接続されるが、ネット名の一致しないピン同士が仮想的に接続されている。ステップS7のピンスワップ手法(X)により図20の部品ピン情報は一方の部品のネット名がスワップ(ネット交換)され、仮配線接続されたピンのネット番号が一致する。
図21は、ピンスワップ手法(X)=1の処理手順を表した一例のフローチャートである。図21のフローチャートにおいて、S_sはソースピン(ビア)集合(任意順列)を表している。Sはソースピン(ビア)集合要素数を表している。S_s(i)はS_s内の任意順列のi番目の要素を表している。T(i)はS_s(i)と接続するターゲットピン(ビア)集合の要素を表している。N(e)はピン(ビア)要素eがもつネットを表している。また、Fはソースピンとターゲットピンのネットが揃ったネットの集合を表している。
ステップS21において、ピンスワップ処理部43はi=0、j=0とする。ステップS22において、ピンスワップ処理部43は終了条件としてFの要素数がSになったか否かを判定する。Fの要素数がSになっていなければ、ピンスワップ処理部43はステップS23においてiに1を加算する。ステップS24において、ピンスワップ処理部43はi>Sであるか否かを判定する。i>Sでなければ、ピンスワップ処理部43はステップS25において、N(S_s(i))=N(T(i))であるか否かを判定する。
N(S_s(i))=N(T(i))でなければ、ピンスワップ処理部43はステップS26においてjをi+1とする。ステップS27において、ピンスワップ処理部43はj>Sであるか否かを判定する。j>Sでなければ、ピンスワップ処理部43はステップS28において、N(S_s(j))=N(T(i))であるか否かを判定する。
N(S_s(j))=N(T(i))でなければ、ピンスワップ処理部43はステップS29においてjに1を加算したあと、ステップS27の処理を行う。ステップS26〜S29の処理は例えば図11において他方の部品のピンに割り当てられたネット番号(図11においては最も右側の丸数字列)に合わせて一方の部品のピンに割り当てられたネット番号(図11においては最も左側の丸数字列)をピンスワップする1回のピンスワップステップに対応している。
N(S_s(j))=N(T(i))であれば、ピンスワップ処理部43はステップS30においてS_s(i)とS_s(j)とをピンスワップしたあと、ステップS25の処理を行う。そして、N(S_s(i))=N(T(i))であれば、ピンスワップ処理部43はステップS31においてFにN(S_s(i))を追加したあと、ステップS22の処理を行う。
ステップS24において、i>Sであれば、ピンスワップ処理部43はステップS32においてピンスワップ失敗と判定する。ステップS27において、ピンスワップ処理部43はj>Sであれば、ステップS32においてピンスワップ失敗と判定する。ステップS22において、Fの要素数がSになっていれば、ピンスワップ処理部43はステップS33においてピンスワップ成功と判定する。
図22は、ピンスワップ手法(X)=2の処理手順を表した一例のフローチャートである。図22のフローチャートにおいて、S_s、S、S_s(i)、T(i)、N(e)及びFは図21と同様である。PS(i)はS_s(i)のピンスワップグループ番号を表している。PT(i)はT(i)のピンスワップグループ番号を表している。
ステップS41において、ピンスワップ処理部43はi=0、j=0、及び、k=0とする。ステップS42において、ピンスワップ処理部43は終了条件としてFの要素数がSになったか否かを判定する。
Fの要素数がSになっていなければ、ピンスワップ処理部43はステップS43においてiに1を加算する。ステップS44において、ピンスワップ処理部43はi>Sであるか否かを判定する。i>Sでなければ、ピンスワップ処理部43はステップS45において、N(S_s(i))=N(T(i))であるか否かを判定する。
N(S_s(i))=N(T(i))でなければ、ピンスワップ処理部43はステップS46においてjをi+1とする。ステップS47において、ピンスワップ処理部43はj>Sであるか否かを判定する。j>Sでなければ、ピンスワップ処理部43はステップS48において、N(S_s(j))=N(T(i))であるか否かを判定する。
N(S_s(j))=N(T(i))でなければ、ピンスワップ処理部43はステップS49においてjに1を加算したあと、ステップS47の処理を行う。ステップS46〜S49の処理は例えば図12において他方の部品のピンに割り当てられたネット番号(図12においては最も右側の丸数字列)に合わせて一方の部品のピンに割り当てられたネット番号(図12においては最も左側の丸数字列)をピンスワップする1回のピンスワップステップに対応している。
N(S_s(j))=N(T(i))であれば、ピンスワップ処理部43はステップS50において、PS(i)=PS(j)且つPS(i)≠0であるか否かを判定する。ピンスワップ処理部43はPS(i)=PS(j)且つPS(i)≠0であれば、ステップS51においてS_s(i)とS_s(j)とをピンスワップしたあと、ステップS45の処理を行う。そして、N(S_s(i))=N(T(i))であれば、ピンスワップ処理部43はステップS57においてFにN(S_s(i))を追加したあと、ステップS42の処理を行う。
PS(i)=PS(j)且つPS(i)≠0でなければ、ピンスワップ処理部43はステップS52において、kをi+1とする。ステップS53において、ピンスワップ処理部43はk>Sであるか否かを判定する。k>Sでなければ、ピンスワップ処理部43はステップS54においてN(S_s(i))=N(T(k))であるか否かを判定する。
N(S_s(i))=N(T(k))でなければ、ピンスワップ処理部43はステップS55においてkに1を加算したあと、ステップS53の処理を行う。ステップS52〜S55の処理は例えば図12において一方の部品のピンに割り当てられたネット番号(図12においては最も左側の丸数字列)に合わせて他方の部品のピンに割り当てられたネット番号(図12においては最も右側の丸数字列)をピンスワップする1回のピンスワップステップに対応している。
N(S_s(i))=N(T(k))であれば、ピンスワップ処理部43は、ステップS56においてT(i)とT(k)とをピンスワップしたあとで、ステップS45の処理を行う。そして、N(S_s(i))=N(T(i))であれば、ピンスワップ処理部43はステップS57においてFにN(S_s(i))を追加したあと、ステップS42の処理を行う。
ステップS44において、i>Sであれば、ピンスワップ処理部43はステップS58においてピンスワップ失敗と判定する。ステップS47において、ピンスワップ処理部43はj>Sであれば、ステップS58においてピンスワップ失敗と判定する。ステップS53において、k>Sであれば、ピンスワップ処理部43はステップS59においてピンスワップ失敗と判定する。ステップS42において、Fの要素数がSになっていれば、ピンスワップ処理部43はステップS60においてピンスワップ成功と判定する。
図23は、ピンスワップ手法(X)=4の処理手順を表した一例のフローチャートである。なお、図23のフローチャートは一部を除いて図22のフローチャートと同様であるため、同一部分についての説明を適宜省略する。図23のステップS61〜S75の処理は図22のステップS41〜S55の処理と同様である。
ステップS74において、N(S_s(i))=N(T(k))であれば、ピンスワップ処理部43は、ステップS76において、PT(i)=PT(k)且つPT(i)≠0であるか否かを判定する。
PT(i)=PT(k)且つPT(i)≠0であれば、ステップS77においてピンスワップ処理部43はT(i)とT(k)とをピンスワップしたあと、ステップS65の処理を行う。そして、N(S_s(i))=N(T(i))であれば、ピンスワップ処理部43はステップS78においてFにN(S_s(i))を追加したあと、ステップS62の処理を行う。
ステップS56において、PT(i)=PT(k)且つPT(i)≠0でなければ、ピンスワップ処理部43はステップS80においてピンスワップ失敗と判定する。
図24及び図25は本実施例の配線処理部の処理を表した一例のイメージ図である。図24(A)は例えばステップS6の処理により、ソースピン及びターゲットピン集合に含まれる部品ピン情報に基づき、ソースピンとターゲットピンとを、例えばMaxFlowアルゴリズムなどの単層結線手法を用いて仮配線接続したものである。
図24(B)は例えばステップS7の処理により、ピンスワップ手法(X)を実行したものである。図24(C)は例えばステップS8の処理により、仮配線を削除したものである。図24(D)は例えばステップS9の処理により、仮配線接続されていたソース側のピン及びターゲット側のピンを詳細配線接続したものである。
図24及び図25に示した本実施例の配線処理部の処理ではネットの並び順がマッチしているため、ネット別の間隙等を考慮した詳細配線接続への適用が容易である。本実施例の配線処理部の処理は自動化でき、詳細配線接続も単層マッチング自動配線と連携することでピンスワップ自動配線機能として運用可能である。
図26〜図28は本実施例の配線処理部の処理の応用例を表したイメージ図である。図26(A)は部品(n)から部品(m)への束配線において、部品(m)の接続対象ピンがスワップ可能である場合に、マウスカーソルポイント100付近を中継点として指定する様子を表している。なお、中継点とは配線対象ネット数分の順列点を仮想接続点とみなしたものである。
図26(B)は、部品(n)から中継点101への仮配線処理と、中継点101から部品(m)への仮配線処理とに分割した様子を表したものである。部品(n)から中継点101への仮配線処理と中継点101から部品(m)への仮配線処理とで図26(B)では例えばMaxFlowアルゴリズムを用いて仮配線接続を行っている。
図26(C)は、中継点101にてネットが一致しない場合に、部品(n)あるいは部品(m)でのピンスワップを行い、部品(n)から中継点101までの詳細配線処理を実行して中継点101までの配線を確定した様子を表したものである。
図27(D)は中継点101から部品(m)への束配線と置き換えて、同様の中継点102を指定した様子を表している。図27(E)は中継点102にてネットが一致しない場合に、部品(n)あるいは部品(m)でのピンスワップを行い、部品(n)から中継点102までの詳細配線処理を実行して中継点102までの配線を確定した様子を表したものである。図28(F)は最後の中継点102から部品(m)までの詳細配線処理を実行して、部品(n)から部品(m)までの配線が全て確定された様子を表したものである。
本発明は、以下に記載する付記のような構成が考えられる。
(付記1)
コンピュータに、
少なくとも一方がピンスワップ可能なピンを持つ部品間の配線を設計するとき前記ピンに割り当てられているネットを考慮せず配線性を保証するように仮配線接続し、
仮配線接続された前記ピンに割り当てられているネットが同一となるように前記ピンスワップ可能なピンをピンスワップする
処理を実行させる設計プログラム。
(付記2)
前記ピンスワップする処理は前記ネットを流れる信号の種類に応じて前記ピンスワップ処理の結果を補正する
付記1記載の設計プログラム。
(付記3)
前記ピンスワップする処理は前記部品の両方がピンスワップ可能なピンを持つとき何れか一方の部品において前記ピンスワップを実行するか、又は、両方の部品において前記ピンスワップを実行する
付記1記載の設計プログラム。
(付記4)
前記ピンスワップする処理は一のネットグループに含まれる信号が他のネットグループに含まれるとき、前記一のネットグループにおける前記信号のピンスワップの実行に連動して、他のネットグループにおける前記信号のピンスワップを実行する
付記1記載の設計プログラム。
(付記5)
前記ピンスワップする処理は、前記ピンスワップ可能なピンを持つ一方の部品のピンに割り当てられている前記ネットが、前記仮配線接続された他方の部品のピンに割り当てられている前記ネットと同一となるように、前記一方の部品のピンを順次、ピンスワップする
付記1記載の設計プログラム。
(付記6)
前記ピンスワップする処理は、前記部品の両方がピンスワップ可能なピンを持ち、一方の前記部品がピンスワップ不可なピンを持つとき、一方の前記部品のピンスワップ可能なピンを持つ一方の部品のピンに割り当てられている前記ネットが、前記仮配線接続された他方の部品のピンに割り当てられている前記ネットと同一となるように、前記一方の部品のピンを順次、ピンスワップし、一方の前記部品のピンスワップ不可なピンに割り当てられている前記ネットが、前記仮配線接続された他方の部品のピンに割り当てられている前記ネットと同一となるように、前記他方の部品のピンを順次、ピンスワップする
付記1記載の設計プログラム。
(付記7)
前記ピンスワップする処理は、前記部品の両方が、ピンスワップ可能なピン及びピンスワップ不可なピンを持つとき、両方の前記部品のピンスワップ不可なピンに割り当てられている前記ネットを除外する
付記1記載の設計プログラム。
(付記8)
前記ピンスワップする処理は、前記部品の両方が、ピンスワップ可能なピンの複数のピンスワップグループを含むとき、前記ピンスワップ可能なピンを持つ一方の部品のピンに割り当てられている前記ネットが、前記仮配線接続された他方の部品のピンに割り当てられている前記ネットと同一、且つ前記ピンスワップするピンのピンスワップグループが同じであるときに、前記一方の部品のピンを順次、ピンスワップし、
前記ピンスワップするピンのピンスワップグループが異なるときに、前記ピンスワップ可能なピンを持つ他方の部品のピンに割り当てられている前記ネットが、前記仮配線接続された一方の部品のピンに割り当てられている前記ネットと同一、且つ前記ピンスワップするピンのピンスワップグループが同じであるときに、前記他方の部品のピンを順次、ピンスワップする
付記1記載の設計プログラム。
(付記9)
ピンスワップ可能なピンを持つ部品の配線を設計する設計装置であって、
少なくとも一方がピンスワップ可能なピンを持つ部品間の配線を設計するとき前記ピンに割り当てられているネットを考慮せず配線性を保証するように仮配線処理手段と、
仮配線接続された前記ピンに割り当てられているネットが同一となるように前記ピンスワップ可能なピンをピンスワップするピンスワップ処理手段と
を有する設計装置。
(付記10)
コンピュータによって実行される設計方法であって、
少なくとも一方がピンスワップ可能なピンを持つ部品間の配線を設計するとき前記ピンに割り当てられているネットを考慮せず配線性を保証するように仮配線接続し、
仮配線接続された前記ピンに割り当てられているネットが同一となるように前記ピンスワップ可能なピンをピンスワップする
ことを特徴とする設計方法。
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
1、2 部品
21 入力装置
22 出力装置
23 記録媒体読取装置
24 補助記憶装置
25 主記憶装置
26 演算処理装置
27 インターフェース装置
28 記録媒体
29 バス
30 設計装置
32 入力処理部
33 出力処理部
34 配線処理部
35 ネットリスト記録部
36 部品データ記録部
41 選択処理部
42 仮配線処理部
43 ピンスワップ処理部
44 詳細配線処理部

Claims (6)

  1. コンピュータに、
    少なくとも一方がピンスワップ可能なピンを持つ部品間の配線を設計するとき前記ピンに割り当てられているネットを考慮せず配線性を保証するように仮配線接続し、
    仮配線接続されたピン同士が同一のネット番号となるように、ピンスワップ可能なピンをピンスワップする
    処理を実行させる設計プログラム。
  2. 前記ピンスワップする処理は前記ネットを流れる信号の種類に応じて前記ピンスワップ処理の結果を補正する
    請求項1記載の設計プログラム。
  3. 前記ピンスワップする処理は前記部品の両方がピンスワップ可能なピンを持つとき何れか一方の部品において前記ピンスワップを実行するか、又は、両方の部品において前記ピンスワップを実行する
    請求項1記載の設計プログラム。
  4. 前記ピンスワップする処理は一のネットグループに含まれる信号が他のネットグループに含まれるとき、前記一のネットグループにおける前記信号のピンスワップの実行に連動して、他のネットグループにおける前記信号のピンスワップを実行する
    請求項1記載の設計プログラム。
  5. ピンスワップ可能なピンを持つ部品の配線を設計する設計装置であって、
    少なくとも一方がピンスワップ可能なピンを持つ部品間の配線を設計するとき前記ピンに割り当てられているネットを考慮せず配線性を保証するように仮配線処理手段と、
    仮配線接続されたピン同士が同一のネット番号となるように、ピンスワップ可能なピンをピンスワップするピンスワップ処理手段と
    を有する設計装置。
  6. コンピュータによって実行される設計方法であって、
    少なくとも一方がピンスワップ可能なピンを持つ部品間の配線を設計するとき前記ピンに割り当てられているネットを考慮せず配線性を保証するように仮配線接続し、
    仮配線接続されたピン同士が同一のネット番号となるように、ピンスワップ可能なピンをピンスワップする
    ことを特徴とする設計方法。
JP2010251282A 2010-11-09 2010-11-09 設計プログラム、設計装置及び設計方法 Expired - Fee Related JP5589783B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010251282A JP5589783B2 (ja) 2010-11-09 2010-11-09 設計プログラム、設計装置及び設計方法
US13/221,572 US8484600B2 (en) 2010-11-09 2011-08-30 Apparatus, design method and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010251282A JP5589783B2 (ja) 2010-11-09 2010-11-09 設計プログラム、設計装置及び設計方法

Publications (2)

Publication Number Publication Date
JP2012103866A JP2012103866A (ja) 2012-05-31
JP5589783B2 true JP5589783B2 (ja) 2014-09-17

Family

ID=46020858

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010251282A Expired - Fee Related JP5589783B2 (ja) 2010-11-09 2010-11-09 設計プログラム、設計装置及び設計方法

Country Status (2)

Country Link
US (1) US8484600B2 (ja)
JP (1) JP5589783B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5776413B2 (ja) * 2011-07-28 2015-09-09 富士通株式会社 回路設計支援装置、回路設計支援方法および回路設計支援プログラム
JP6318500B2 (ja) * 2013-08-29 2018-05-09 オムロン株式会社 シミュレーション装置およびシミュレーションプログラム
US10831968B1 (en) * 2016-09-26 2020-11-10 Synopsys, Inc. Reconfigurable connections
CN109614682B (zh) * 2018-11-05 2023-04-18 广州兴森快捷电路科技有限公司 一种基于Expedition PCB的FPGA管脚交换的方法、装置及存储介质
US12008300B2 (en) * 2021-08-31 2024-06-11 Siemens Industry Software Inc. Machine learning-based unravel engine for integrated circuit packaging design

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2887454B2 (ja) 1995-07-27 1999-04-26 株式会社図研 配線処理装置
US5757656A (en) * 1995-12-20 1998-05-26 Mentor Graphics Method for routing breakouts
JP3975495B2 (ja) * 1996-12-06 2007-09-12 松下電器産業株式会社 半導体集積回路の低消費電力化設計方法
JPH11110434A (ja) * 1997-10-07 1999-04-23 Fujitsu Ltd プリント板パターン設計装置
US6473885B1 (en) * 1998-07-17 2002-10-29 Mentor Graphics Corporation Digital circuit layout techniques using circuit decomposition and pin swapping
US6477688B1 (en) * 1998-07-17 2002-11-05 David E. Wallace Logic equivalence leveraged placement and routing of an IC design
GB9929084D0 (en) * 1999-12-08 2000-02-02 Regan Timothy J Modification of integrated circuits
WO2001054001A1 (en) * 2000-01-18 2001-07-26 Cadence Design Systems, Inc. Adaptable circuit blocks for use in multi-block chip design
US6988253B1 (en) * 2000-02-17 2006-01-17 Synopsys, Inc. Methods, apparatus and computer program products that perform layout versus schematic comparison of integrated circuits using advanced pin coloring operations
US6877040B1 (en) * 2000-07-25 2005-04-05 Xilinx, Inc. Method and apparatus for testing routability
JP2004199625A (ja) * 2002-12-20 2004-07-15 Renesas Technology Corp 自動配置配線装置
JP3814616B2 (ja) * 2004-04-12 2006-08-30 富士通株式会社 配線設計装置
JP3776108B2 (ja) * 2004-04-12 2006-05-17 富士通株式会社 配線設計装置
US7299444B1 (en) * 2005-03-31 2007-11-20 Altera Corporation Interface for pin swap information
EP1930825A3 (en) * 2006-12-04 2011-06-29 Fujitsu Limited Circuit-design supporting apparatus, circuit-design supporting method, computer product, and printed-circuit-board manufacturing method
US7831943B1 (en) * 2007-04-16 2010-11-09 Xilinx, Inc. Checking for valid slice packing in a programmable device
US7809864B1 (en) * 2007-12-03 2010-10-05 Xilinx, Inc. Method and apparatus for a hot-swappable input/output device with programmable over-voltage clamp protection
JP5289851B2 (ja) * 2008-07-31 2013-09-11 株式会社図研 データ管理装置、データ管理方法、プログラムおよびコンピュータ読み取り可能な記録媒体
US8069431B1 (en) * 2009-03-18 2011-11-29 Lattice Semiconductor Corporation Routing signals to pins of components in programmable logic devices

Also Published As

Publication number Publication date
JP2012103866A (ja) 2012-05-31
US8484600B2 (en) 2013-07-09
US20120117529A1 (en) 2012-05-10

Similar Documents

Publication Publication Date Title
JP5589783B2 (ja) 設計プログラム、設計装置及び設計方法
US7143341B1 (en) Method and apparatus for concurrent engineering and design synchronization of multiple tools
US8239813B2 (en) Method and apparatus for balancing signal delay skew
JP5050413B2 (ja) 設計支援プログラム、該プログラムを記録した記録媒体、設計支援方法、および設計支援装置
US8006219B2 (en) Wiring path information creating method and wiring path information creating apparatus
JP4303280B2 (ja) 半導体集積回路のレイアウト方法、レイアウトプログラム
US8051400B2 (en) Modifying integrated circuit layout
US7960836B2 (en) Redundant micro-loop structure for use in an integrated circuit physical design process and method of forming the same
JP5204420B2 (ja) システマティック欠陥に対応したルータにおける歩留まりの最適化
JP4448466B2 (ja) 論理回路設計方法、論理回路設計プログラム及び論理回路設計装置
US20090031274A1 (en) Computer Readable Medium, System and Associated Method For Designing Integrated Circuits With Loop Insertions
US10042970B2 (en) Sharing global route topologies in detailed routing
JP2005149445A (ja) 電子装置の端子群割付設計方法
US7681169B2 (en) Process for managing complex pre-wired net segments in a VLSI design
CN118673847B (zh) 一种用于Post-Mask ECO的定制Spare Cell方法
US11803686B2 (en) Selective exposure of standard cell output nets for improved routing solutions
JP2002175343A (ja) プリント配線板の設計装置、それを用いたプリント配線板の設計方法およびその設計方法を記録した記録媒体
JP6459628B2 (ja) 設計支援プログラム、設計支援装置、および設計支援方法
JP6111906B2 (ja) トポロジ表示プログラム及び情報処理装置
JP5531721B2 (ja) ピン配置決定プログラム、ピン配置決定装置及びピン配置決定方法
JP2012209564A (ja) 設計支援プログラム、該プログラムを記録した記録媒体、設計支援方法、および設計支援装置
JP4667330B2 (ja) 配線パターン自動編集プログラム
CN118673847A (zh) 一种用于Post-Mask ECO的定制Spare Cell方法
JP2006186388A (ja) シールド配線を行うためのlsi
JP2006278370A (ja) 半導体装置の設計方法および半導体装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130805

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140320

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140714

R150 Certificate of patent or registration of utility model

Ref document number: 5589783

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees