(58)【調査した分野】(Int.Cl.,DB名)
前記決定工程で前記ピン割当が決定された前記PLDのピンと前記ICのピンとを接続するための配線パターンを生成する配線工程を更に含むことを特徴とする請求項1に記載の設計方法。
前記決定工程では、前記PLDの複数のピンとそれらにそれぞれ接続されるべき前記ICの複数のピンとのそれぞれの距離が距離制約を満たすように前記ピン割当を決定する、
ことを特徴とする請求項1又は2に記載の設計方法。
【発明を実施するための形態】
【0013】
以下、添付図面を参照しながら本発明をその例示的な実施形態を通して説明する。
【0014】
本明細書において、PLD(Programable Logic Device)という用語の意味には、FPGA(Field Programmable Gate Array)およびCPLD(Complex PLD)が含まれる。
【0015】
図1には、本発明の1つの実施形態の設計装置100の概略構成が示されている。設計装置100は、典型的には、コンピュータ10にプログラム50を組み込むことによって構成されうる。コンピュータ10は、CPU15、ディスプレイ16、RAM17、通信インターフェース18、メディアドライブ19、HDD(ハードディスクドライブ)14を含みうる。HDD14には、プログラム50が格納されうる。プログラム50は、例えば、CDなどのメディア(メモリ媒体)60に格納されてコンピュータ10に提供され、コンピュータ10にインストールされうる。コンピュータ10は、例えば、タッチパッド11、キーボード12およびマウス13などの入力デバイスを含みうる。
【0016】
図2は、設計装置100によって実行される本発明の1つの実施形態の設計方法を説明するフローチャートである。このフローチャートに示す設計方法は、プログラム50によって規定されうる。
図2に示す設計方法は、PLDおよびICが配置された基板をコンピュータによって設計する方法である。該設計方法は、基板におけるPLDおよびICの配置、および、前記基板の設計基準を取得する取得工程S100と、取得工程S100で取得した前記配置および前記基板の前記設計基準に応じて前記PLDのピン割当を決定する決定工程S110と、を含む。該設計方法は、更に、決定工程S110で前記ピン割当が決定された前記PLDのピンと前記ICのピンとを接続するための配線パターンを生成する配線工程S120を含みうる。設計装置100は、取得工程S100を実行する取得部と、決定工程S110を実行する決定部とを備える装置として把握されうる。
【0017】
以下の(1)〜(5)は、取得工程S199で取得する設計基準の例である。設計基準は、例えば、タッチパッド11、キーボード12およびマウス13などの入力デバイス、又は、通信インターフェース18(つまり、他の装置)、又は、メディアドライブ19を介して設計装置100に提供されうる。
【0018】
(1)第1の設計基準は、電源ピン、接地ピン、予約されたピン、交換が禁止されたピン、および、クロック信号ピンについては、決定工程S110においてピン割当を変更することができないという制約を含む。
【0019】
(2)第2の設計基準は、第1のバンクの電圧と第2のバンクの電圧とが異なる場合には、第1のバンクのピンに割り当てられている信号を第2のバンクのピンに割り当てることができず、また、第2のバンクのピンに割り当てられている信号を第1のバンクのピンに割り当てることができないという制約を含む。この場合において、第2の設計基準は、第1のバンクの電圧と第2のバンクの電圧とが同じである場合には、第1のバンクのピンに割り当てられている信号を第2のバンクのピンに割り当てることができ、また、第2のバンクのピンに割り当てられている信号を第1のバンクのピンに割り当てることを許容する。
【0020】
あるいは、第2の設計基準は、第1のバンクの電圧と第2のバンクの電圧とが同じであるか異なるかにかかわらず、第1のバンクのピンに割り当てられている信号を第2のバンクのピンに割り当てることができず、また、第2のバンクのピンに割り当てられている信号を第1のバンクのピンに割り当てることができないという制約を含む。つまり、第2の設計基準は、各バンク内でのみPLDのピン割当を変更することができるという制約を含む。
【0021】
(3)第3の設計基準は、差動信号を割り当てるピンペアは、隣接するピンのペアに限定されるという制約を含む。
【0022】
(4)第4の設計基準は、ユーザーが指定したスワップグループの中でのみ信号を割り当てるべきピンを変更することができるという制約を含む。この制約は、例えば、ピンA1、A2、A3をスワップグループA、ピンB1、B2、B3をスワップグループBとすると、スワップグループA(ピンA1、A2、A3)の中では信号の割り当てを変換することができ、スワップグループB(ピンB1、B2、B3)の中では信号の割り当てを変換することができるが、スワップグループAとスワップグループBとの間では信号の割り当てを変更することができないというものである。
【0023】
(5)第5の設計基準は、I/O属性が共通したピンの間でのみ信号の割り当ての変更が可能であるという制約を含む。
【0024】
決定工程S110は、例えば、前記PLDの複数のピンとそれらにそれぞれ接続されるべきICの複数のピンとのそれぞれの距離が距離基準を満たすようにピン割当を仮決定する仮決定工程S112と、仮決定工程S112において前記PLDの前記複数のピンの1つのピンに複数の信号が割り当てられた場合に、前記複数の信号が前記PLDの前記複数のピンのうち互いに異なるピンに割り当てられるように前記ピン割当を修正する第1修正工程S114と、第1修正工程S114において修正された前記ピン割当に従う前記PLDと前記ICとの間のラッツネストに交差が存在する場合に、当該交差がなくなるように前記ピン割当を修正する第2修正工程S115とを含みうる。
【0025】
以下、
図2に示された設計方法をより具体的に説明する。
図3には、
図2に示された設計方法に従う設計がなされる前における基板200が模式的に示されている。基板200は、例えば、プリント配線基板であり、基板200には、PLD210およびIC221〜228が配置されている。PLD210は、円形で示された複数のピンを有する。PLD210の複数のピンには、例えば、白い円で示されたユーザーI/Oピン、黒い円で示されたGNDピン(接地ピン)、ハッチングが付された円で示されたバンク毎のI/O駆動用電源ピン、クロスハッチングが付された円で示された内部用電源ピンを含みうる。
【0026】
PLD210は、例えば、複数のバンク(I/Oバンク)BANK0〜BANK4を含みうる。バンク(I/Oバンク)とは、インターフェース仕様が共通するピンが配置された領域を意味する。ただし、異なるバンクであっても、インターフェース仕様が共通している場合がある。一例において、バンクBANK0の電源電圧は2.5V、バンクBANK1の電源電圧は1.2V、バンクBANK3の電源電圧は2.5V、バンクBANK4の電源電圧は2.5Vでありうる。
【0027】
図3において、PLD210のピンと複数のIC221〜228のピンとの対応関係は、点線で描かれたラッツネストRNで表現されている。ラッツネストRNで連結された2つのピンは、配線パターンによって互いに連結されるべきものである。
【0028】
取得工程S100では、設計装置100は、基板200におけるPLD210およびIC221〜228の配置、および、基板200の設計基準を取得する。基板200におけるPLD210およびIC221〜228の配置は、例えば、基板200におけるPLD210およびIC221〜228の座標を含みうる。
【0029】
決定工程S110では、設計装置100は、取得工程S100で取得した配置および基板200の設計基準に応じてPLD210のピン割当を決定する。より具体的には、決定工程S110では、設計装置100は、PLD210の複数のピンとそれらにそれぞれ接続されるべきICの複数のピンとのそれぞれの距離が距離制約を満たすようにピン割当を決定しうる。ここで、距離制約とは、例えば、PLD210における接続対象のピンからの距離が所定距離以下であること、例えば、PLD210における接続対象のピンからの距離が最短距離であることを要求する制約である。
図6には、決定工程S110によってピン割当が決定された後の基板200が模式的に示されている。
【0030】
決定工程S110は、仮決定工程S112と、第1修正工程S114と、第2修正工程S116とを含みうる。
図4には、仮決定工程S112の実行後における基板200が模式的に示されている。この例では、仮決定工程S112では、PLD210の複数のピンとそれらにそれぞれ接続されるべきIC221〜28の複数のピンとのそれぞれの距離が最短距離であるという距離制約を満たすように、PLD210のピン割当が仮決定される。このような距離制約の下でPLD210のピン割当が仮決定されると、
図4に例示されるように、PLD210の1つのピンがIC221〜228の複数のピンのうちの2以上のピンに重複して接続されるようにPLD210のピン割当が仮決定されうる。つまり、
図4に例示された状態は、PLD210の1つのピンに対して複数の信号が割り当てられた状態である。
【0031】
第1修正工程S114では、設計装置100は、
図5に例示されるように、PLD210の1つのピンに対して割り当てられた複数の信号がPLD210の複数の信号のうち互いに異なるピンに割り当てられるように、PLD210のピン割当を修正する。具体的には、第1修正工程S114では、1つのピンに重複して割り当てられた複数の信号のうちの1つの信号以外を他のピンに割り当てる。例えば、第1修正工程S114では、設計装置100は、1つのピンに重複して割り当てられた複数の信号のうちの1つの信号以外の信号を当該1つの信号が割り当てられているピンに隣接するピンに割り当てる。
【0032】
ここで、第1修正工程S114において修正されたPLD210のピン割当に従うPLD210とIC221〜28との間のラッツネストRNに交差が生じうる。そこで、第2修正工程S116では、
図6に例示するように、当該交差がなくなるようにPLD210のピン割当を修正する。交差をなくすためには、例えば、PLD210の複数のピンのうち当該交差に係るピンに対して割り当てられている信号を交換すればよい。例えば、PLD210のピンAに接続されたラッツネストとPLD210のピンBに接続されたラッツネストとが交差している場合には、ピンAに割り当てられている信号とピンBに割り当てられている信号とを交換すれば良い。
【0033】
なお、仮決定工程S112の実行によってPLD210の1つのピンに対して複数の信号が割り当てられるような誤りが発生しない場合には第1修正工程S114は不要であるし、仮決定工程S112および/または第1修正工程S114の実施によってラッツネストRNの交差が発生しない場合には第2修正工程S116は不要である。
【0034】
第1修正工程S114を実施しない場合、第2修正工程S116では、仮決定工程S112において決定されたPLD210のピン割当に従うPLD210とIC221〜228との間のラッツネストRNに交差が存在する場合に、当該交差がなくなるようにPLD210のピン割当を修正する。
【0035】
配線工程S120では、設計装置100は、
図7に例示されるように、各ラッツネストRNに接続された2つのピン(即ち、接続すべき2つのピン)を接続するための配線パターンWPを生成する。
図7に例示された配線パターンWPは、
図15に例示された配線パターンWPよりも配線長が短く、また、交差が少ない。つまり、
図7に例示された配線パターンWPは、
図15に例示された配線パターンWPよりも配線の質が高い。PLD210は、決定工程S110で決定されたピン割当にしたがってプログラムされる。
【0036】
以上のように、基板200におけるPLD210およびIC221〜228の配置、および、基板200の設計基準に応じてPLD210のピン割当を決定することによって、PLD210のピンとIC221〜228のピンとを接続する配線パターンWPの質を高めることができる。
【0037】
以下、
図8および
図9A〜9Eを参照しながら配線工程S120のより具体的な処理例を説明する。
図9A〜9Eにおいて、四角形はIC221〜228のピンを示し、円はPLD210のピンを示している。
【0038】
まず、工程S210において、設計装置100は、
図9Aに例示されるように、基板200上の配線領域(配線をすることができる領域)を複数の分割領域DRに分割する。次いで、工程S220では、設計装置100は、接続すべきピンペアを選択する。ここでは、一例として、接続すべきピンペアがIC221〜228の複数のピンの1つであるピンP1と、PLD210の複数のピンのうちの1つであるピンP2とで構成され、ピンP1からピンP2に向かって配線パターンの経路を決定する場合を説明する。ピンP1は、配線パターンの接続元のピンであり、ピンP2は、配線パターンの接続先のピンである。
【0039】
工程S230では、設計装置100は、
図9Bに例示されるように、接続元のピンP1に隣接し且つ接続先のピンP2の方向に存在する分割領域DR1を決定する。ここで、分割領域DR1は、その中に配線パターンが存在しない領域DRの中から決定される。工程S240では、設計装置100は、
図9Cに例示されるように、分割領域DR1の中に配線パターンWPを配置する。
【0040】
工程S250では、設計装置100は、
図9Dに例示されるように、直前に配線パターンWPを配置した分割領域DR1に隣接し且つ接続先のピンP2の方向に存在する分割領域DR2を決定する。ここで、分割領域DR2は、その中に配線パターンが存在しない領域DRの中から決定される。工程S260では、設計装置100は、
図9Eに例示されるように、分割領域DR2の中に配線パターンWPを配置する。
【0041】
工程S270では、設計装置100は、選択されたピンペア(ピンP1、ピンP2)の間の配線パターンWPによる接続が完了したか否かを判断し、完了していない場合には工程S250および工程S260を追加的に実施し、完了した場合には工程S280に進む。
【0042】
工程S280では、設計装置100は、全てのピンペア間の接続が完了したか否かを判断し、完了していない場合には工程S220に戻って、新たなピンペアについて上記と同様の処理を実行し、完了した場合には
図8に示す処理を終了する。
【0043】
図10および
図11を参照しながらディスプレイ16を通して提供されるユーザーインターフェースを例示的に説明する。設計装置100は、ディスプレイ16に設計中の基板200を表示する。
図10および
図11に示す例では、基板200には、複数のPLD(FPGA1、FPGA2、FPGA3、FPGA4)が搭載されている。各PLD(FPGA1、FPGA2、FPGA3、FPGA4)は、複数のバンク(I/Oバンク)を有しうる。
【0044】
設計装置100(あるいはプログラム50)は、コマンドメニュー310をディスプレイ16に表示しうる。コマンドメニュー310は、例えば、「ピン割当の最適化(部品全体)」コマンド、「ピン割当の最適化(I/Oバンク内)」コマンド、「自動配線」コマンド、「ピン割当最適化・配線」コマンドを含む。
【0045】
「ピン割当の最適化(部品全体)」コマンドは、PLD(この例ではFPGA)のピン割当の最適化(変更)を各PLD内のピンの全体を対象として実行することを指示するコマンドである。
【0046】
「ピン割当の最適化(I/Oバンク内)」コマンドは、PLD(この例ではFPGA)のピン割当の最適化(変更)を各PLDの各バンク(I/Oバンク)内で実行することを指示するコマンドである。
【0047】
「自動配線」コマンドは、PLD(この例ではFPGA)の現在のピン割当にしたがって自動配線をすることを指示するコマンドである。
【0048】
「ピン割当最適化・配線」コマンドは、PLD(この例ではFPGA)のピン割当の最適化(変更)および自動配線を実行することを指示するコマンドである。
【0049】
「ピン割当最適化・配線」コマンドには、サブメニュー320が設けられうる。複数のPLD(この例ではFPGA)が存在する場合に、サブメニュー320により、ユーザーは、ピン割当の最適化(変更)を行う対象を指定することができる。また、サブメニュー320により、ユーザーは、PLD(この例ではFPGA)のピン割当の最適化(変更)を各PLDのピンの全体を対象として実行するモード、または、PLD(この例ではFPGA)のピン割当の最適化(変更)を各PLDの各バンク(I/Oバンク)内で実行するモードを選択することができる。
【0050】
サブメニュー320には、更にサブメニュー330が設けられうる。ユーザーは、サブメニュー330により、ピン割当を行うべきバンク(I/Oバンク)を指定することができる。
【0051】
以下、
図12A〜12C、13A〜13C、14A〜14Cを参照しながら上記の実施形態の変形例を説明する。上記の実施形態では、PLDとICとの間にそれらを接続するための配線パターンが全く存在しない状態でPLDのピン割当が決定ないし最適化(変更)されるが、
図12〜A〜12C、13A〜13C、14A〜14Cに例示されるように、PLD210とIC220との間にそれらを接続するための配線パターンWP0が部分的に存在する状態でPLD210のピン割当が決定ないし最適化(変更)されてもよい。
【0052】
図12A、
図13A、
図14Aに示す例では、IC220のピンとPLD210のピンとの間に配線パターンWP0が部分的に延びているが、配線パターンWP0は、IC220のピンとPLD210のピンとを接続していない。
図12A、
図13A、
図14Aに示す状態では、IC220のピンとPLD210のピンとを接続するラッツネストRNが交差しているので、この状態でIC220のピンとPLD210のピンとを接続する配線パターンを配置すると、配線パターンに交差が生じる。
【0053】
そこで、上記の実施形態と同様に、設計装置100は、取得工程S100において、基板におけるPLD210およびIC220の配置、および、前記基板の設計基準を取得する。設計装置100は、決定工程S110において、取得工程S100で取得した前記配置および前記基板の前記設計基準に応じてPLD210のピン割当を決定する。ここで、PLD210のピン割当は、
図12B、
図13B、
図14Bに例示されるように、ラッツネストRNの交差がなくなるように、又は、ラッツネストRNの交差が減少するようになされうる。
【0054】
設計装置100は、S120において、
図12C、
図13C、
図14Cに例示されるように、決定工程S110で前記ピン割当が決定されたPLD210のピンとIC220のピンとを接続するための配線パターンWPを生成する。ここで、配線パターンWPは、既に存在する配線パターンWP0を考慮して、典型的には、配線パターンWP0を利用するように生成される。