(57)【特許請求の範囲】
【請求項１】
コンピュータに、
設計対象の回路基板に設けられる特定の回路であって、論理回路をプログラム可能な特定の回路が有する複数のバンクに、複数の論理回路をプログラムした場合の複数通りの配置状態を決定し、
決定した前記複数通りの配置状態の各々について、記憶部に記憶された前記複数の論理回路と前記回路基板に設けられ前記特定の回路と異なる部品との接続関係を示す接続情報が示す前記接続関係に応じた複数の配線の各長さに基づく評価値を導出し、
前記複数通りの配置状態の各々について、前記配置状態と導出した前記評価値とを関連付けて提示する、
処理を実行させることを特徴とする設計支援プログラム。
【請求項２】
前記提示する処理では、
前記複数通りの配置状態の各々について、前記配置状態における前記複数の配線の状態と、前記評価値と、を関連付けて表示する、
ことを特徴とする請求項１に記載の設計支援プログラム。
【請求項３】
前記提示する処理では、
前記評価値に基づく前記複数通りの配置状態の順序によって、前記配置状態と、前記評価値と、を提示する、
ことを特徴とする請求項１または２に記載の設計支援プログラム。
【請求項４】
前記提示する処理では、
前記配置状態における前記複数の配線のうち、前記バンクと前記部品とを共通とする接続関係の配線を単一の配線に集約して表示する、
ことを特徴とする請求項２または３に記載の設計支援プログラム。
【請求項５】
前記評価値は、前記複数の配線における交差に応じた値であることを特徴とする請求項１〜４のいずれか一つに記載の設計支援プログラム。
【請求項６】
前記提示する処理では、
前記複数通りの配置状態の各々について、前記評価値と、前記配置状態と、前記交差の位置と、を関連付けて表示する、
ことを特徴とする請求項５に記載の設計支援プログラム。
【請求項７】
前記評価値は、前記複数の論理回路の各々について、前記配置状態における前記論理回路が配置される前記バンクと、前記論理回路と接続される前記部品と、の位置関係に応じた値であることを特徴とする請求項５または６に記載の設計支援プログラム。
【請求項８】
前記決定する処理では、前記複数通りの配置状態を、前記特定の回路が前記回路基板に配置される向きに基づき決定することを特徴とする請求項１〜７のいずれか一つに記載の設計支援プログラム。
【請求項９】
設計対象の回路基板に設けられる特定の回路であって、論理回路をプログラム可能な特定の回路と異なる前記回路基板に設けられる部品と、複数の論理回路と、の接続関係を示す接続情報を記憶する記憶部と、
前記特定の回路が有する複数のバンクに、前記複数の論理回路をプログラムした場合の複数通りの配置状態を決定し、決定した前記複数通りの配置状態の各々について、前記記憶部に記憶された前記接続情報が示す前記接続関係に応じた複数の配線の各長さに基づく評価値を導出し、前記複数通りの配置状態の各々について、前記配置状態と導出した前記評価値とを関連付けて提示する制御部と、
を有することを特徴とする設計支援装置。
【請求項１０】
コンピュータが、
設計対象の回路基板に設けられる特定の回路であって、論理回路をプログラム可能な特定の回路が有する複数のバンクに、複数の論理回路をプログラムした場合の複数通りの配置状態を決定し、
決定した前記複数通りの配置状態の各々について、記憶部に記憶された前記複数の論理回路と前記回路基板に設けられ前記特定の回路と異なる部品との接続関係を示す接続情報が示す前記接続関係に応じた複数の配線の各長さに基づく評価値を導出し、
前記複数通りの配置状態の各々について、前記配置状態と導出した前記評価値とを関連付けて提示する、
処理を実行させることを特徴とする設計支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計支援プログラム、設計支援装置、および設計支援方法に関する。
【背景技術】
【０００２】
従来、プリント基板の部品配置や配線などをコンピュータ上で行うことができるＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）が公知である（例えば、以下特許文献１参照。）。
【０００３】
また、近年、例えば、製品の多品種化や小ロット化のために、装置に用いる部品として、論理回路をプログラム可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）が使用される（例えば、以下特許文献２参照。）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１０３８６６号公報
【特許文献２】特開２００８−１６５７５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来、ＣＡＤなどを用いて配線を引く作業に手間がかかるため、設計者はＦＰＧＡに論理回路を配置する際に、プリント基板上の配線の引き易さまでを考慮に入れた検討ができるような様々な配置を検討することは困難である。
【０００６】
１つの側面では、本発明は、プリント基板上の配線の引き易さを設計者が考慮することができるプログラム可能な回路における論理回路の配置を提案できる設計支援プログラム、設計支援装置、および設計支援方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面によれば、設計対象の回路基板に設けられる特定の回路であって、論理回路をプログラム可能な特定の回路が有する複数のバンクに、複数の論理回路をプログラムした場合の複数通りの配置状態を決定し、決定した前記複数通りの配置状態の各々について、記憶部に記憶された前記複数の論理回路と前記回路基板に設けられ前記特定の回路と異なる部品との接続関係を示す接続情報が示す前記接続関係に応じた複数の配線の各長さに基づく評価値を導出し、前記複数通りの配置状態の各々について、前記配置状態と導出した前記評価値とを関連付けて提示する設計支援プログラム、設計支援装置、および設計支援方法が提案される。
【発明の効果】
【０００８】
本発明の一態様によれば、プリント基板上の配線の引き易さを設計者が考慮することができるプログラム可能な回路における論理回路の配置を提案できる。
【図面の簡単な説明】
【０００９】
【図１】図１は、設計支援装置による一動作例を示す説明図である。
【図２】図２は、設計支援装置のハードウェア構成例を示す説明図である。
【図３】図３は、設計支援装置の機能的構成例を示すブロック図である。
【図４】図４は、物理ピン情報例を示す説明図である。
【図５】図５は、論理ピン情報例を示す説明図である。
【図６】図６は、論理ピン接続情報例を示す説明図である。
【図７】図７は、バンクアサイン情報例を示す説明図である。
【図８】図８は、仮想的な配線例を示す説明図である。
【図９】図９は、配線を束ねた例を示す説明図である。
【図１０】図１０は、交差位置を示す説明図である。
【図１１】図１１は、交差数の導出結果例を示す説明図である。
【図１２】図１２は、重み付け例を示す説明図である。
【図１３】図１３は、評価値の導出結果例を示す説明図である。
【図１４Ａ】図１４Ａは、設計支援装置による簡単な動作の流れを示す説明図（その１）である。
【図１４Ｂ】図１４Ｂは、設計支援装置による簡単な動作の流れを示す説明図（その２）である。
【図１５】図１５は、表示例を示す説明図である。
【図１６】図１６は、設計支援装置による設計支援処理手順例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、本発明にかかる設計支援プログラム、設計支援装置、および設計支援方法の実施の形態を詳細に説明する。
【００１１】
図１は、設計支援装置による一動作例を示す説明図である。設計支援装置１００は、プリント基板に設けられるＦＰＧＡ内のバンクに論理回路を配置するのを支援するコンピュータである。
【００１２】
従来、製品の多品種化や小ロット化のために、製品に用いる部品として、論理回路をプログラム可能なＦＰＧＡなどのＰＬＤが使用される。ＣＡＤなどを用いて配線を引く作業に手間がかかるため、ＦＰＧＡに論理回路を配置する際に様々な配置を検討することは困難である。例えば、搭載される部品の多ピン化や高密度化によってプリント基板設計は複雑であり、手戻りが増加する。
【００１３】
本実施の形態では、ＦＰＧＡ内のバンクと論理回路との複数の配置状態の各々について、論理回路と周辺部品との接続関係に応じた配線長に基づく評価値を提示する。これにより、配線の引き易さを設計者が考慮することができる論理回路の配置を提案できる。
【００１４】
また、部品の端子と部品の端子とを配線によってつなぐ際に、配線間の交差や交差を回避するために発生する配線の長さ超過などが発生する場合がある。同じ面において配線が交差すると、ショートしてしまう。例えば、配線が交差しないようにいずれかの配線について迂回させるなどの処理を行うと、配線の長さがルールを満たさない場合などがある。このような場合に、ＦＰＧＡへの論理回路の配置のやり直しや周辺部品の配置のやり直しなどが発生する場合がある。また、同じ面において交差がある場合に、異なる面を用いてねじれの位置となるように配線を設ける場合がある。しかし、このような場合、配線が複雑になり、配線の混雑によりすべての配線について交差を回避できない場合などがある。
【００１５】
そこで、本実施の形態では、複数通りの配置状態の各々について、論理回路と部品との接続関係に応じた複数の配線の交差に基づく評価値と配線状態とを関連付けて提示する。これにより、交差が少ないと推定される配線状態を提示できる。
【００１６】
まず、設計支援装置１００は、設計対象の回路基板に設けられる特定の回路であって、論理回路をプログラム可能な特定の回路が有する複数のバンクに、複数の論理回路をプログラムした場合の複数通りの配置状態を決定する。特定の回路は、例えば、ＦＰＧＡ１１０などのＰＬＤである。複数通りの配置状態は、例えば、２以上の配置状態である。また、複数通りの配置状態は、例えば、指定された２以上の数の配置状態であってもよいし、すべての配置状態であってもよい。
【００１７】
また、設計支援装置１００は、複数通りの配置状態を回路基板に設けられるＦＰＧＡ１１０の向きに応じて決定してもよい。例えば、バンクと論理回路との割当は同じであっても、後述する図１４Ｂに示すように、ＦＰＧＡ１１０の向きが異なる場合には異なる複数の配置状態とする。設計支援装置１００は、論理回路の各々について、論理回路のピンをバンクのピンに割り当てることによって、配置状態を決定する。図１の例では、配置状態１０２−１と配置状態１０２−２とを示す。
【００１８】
設計支援装置１００は、決定した複数通りの配置状態１０２の各々について、接続情報１１１が示す複数の論理回路と回路基板に設けられ特定の回路と異なる部品との接続関係に応じた複数の配線の各長さに基づく評価値を導出する。接続情報１１１は、例えば、記憶部１０１に記憶される。接続情報１１１では、具体的に、周辺の部品と、論理回路と、の接続関係を示す。より具体的には、接続情報１１１は、例えば、周辺の部品のピンと、論理回路のピンと、の接続関係を示している。配線は、仮想的な配線であってもよいし、実際に引いた場合の配線であってもよい。仮想的な配線とは、例えば、部品のピンと、バンクのピンと、を直線で結んだ配線である。本実施の形態では、例えば、配線とは仮想的な配線であるとして説明する。
【００１９】
また、各配線の数は、論理回路のピンの数によって定まる。また、ここでは、設計対象の回路基板における、周辺の部品の位置、周辺の部品における各ピンの位置と、ＦＰＧＡ１１０の位置、ＦＰＧＡ１１０における各ピンの位置などは予め定められてある。
【００２０】
また、評価値は、例えば、複数の配線における交差に応じた値である。交差に応じた値とは、例えば、交差の数に応じた値や交差の有無に応じた値などが挙げられる。ここでは、例えば、交差の数の合計値を評価値とするが、特に限定しない。これにより、交差の少ない配置状態１０２を提案することができる。複数の配線における交差とは、異なる論理回路とバンクとを接続する配線間における交差である。
【００２１】
上述したように、各ピンの位置は定まっているため、配線の始点から配線の終点の位置は定まる。設計支援装置１００は、配線の位置に基づいて複数の配線の交差を特定して交差の数を計数する。設計支援装置１００は、例えば、交差の数の合計値に基づいて評価値を導出する。ここでは、合計値そのものを評価値とするが、これに限らず、例えば交差の数に基づく交差の少なさの度合いを評価値としてもよく、特に限定しない。また、後述するように、設計支援装置１００は、交差の数だけでなく、迂回しない場合の配線の引き易さの指標を評価値に加えてもよい。
【００２２】
図１の例では、複数の配線の状態について論理回路ごとに複数の配線を１つの配線として表示してある。配置状態１０２−１について、配線Ｇ１＿１は８本の配線を束ねた配線であり、配線Ｇ１＿２は４本の配線を束ねた配線であり、配線Ｇ１＿３は４本の配線を束ねた配線である。また、配置状態１０２−１について、配線Ｇ１＿４は２本の配線を束ねた配線であり、配線Ｇ１＿５は３本の配線を束ねた配線であり、配線Ｇ１＿６は３本の配線を束ねた配線である。
【００２３】
配線Ｇ１＿２と配線Ｇ１＿３とが交差する。配線Ｇ１＿４と配線Ｇ１＿５とが交差する。配線Ｇ１＿３と配線Ｇ１＿６とが交差する。例えば、表１０４−１に示すように、設計支援装置１００は、配線数が４の配線Ｇ１＿２と、配線数が４の配線Ｇ１＿３との交差数を４×４の１６として導出する。設計支援装置１００は、同様に他の交差についても導出する。設計支援装置１００は、交差数の合計値を導出する。ここでは、表１０４−１によれば、配線状態１０３−１についての交差数の合計値は６８である。設計支援装置１００は、配置状態１０２−１についての評価値を６８とする。
【００２４】
配置状態１０２−２について、配線Ｇ２＿１は８本の配線を束ねた配線であり、配線Ｇ２＿２は４本の配線を束ねた配線であり、配線Ｇ２＿３は４本の配線を束ねた配線である。また、配置状態１０２−２について、配線Ｇ２＿４は２本の配線を束ねた配線であり、配線Ｇ２＿５は３本の配線を束ねた配線であり、配線Ｇ２＿６は３本の配線を束ねた配線である。
【００２５】
配線Ｇ２＿１と配線Ｇ２＿２とが交差する。配線Ｇ２＿２と配線Ｇ２＿６とが交差する。配線Ｇ２＿３と配線Ｇ２＿６とが交差する。配線Ｇ２＿４と配線Ｇ２＿３とが交差する。配線Ｇ２＿４と配線Ｇ２＿６とが交差する。配線Ｇ２＿５と配線Ｇ２＿６とが交差する。配線Ｇ２＿５と配線Ｇ２＿３とが交差する。例えば、表１０４−２に示すように、設計支援装置１００は、配線数が８の配線Ｇ２＿１と、配線数が４の配線Ｇ２＿２との交差数を８×４の３２として導出する。設計支援装置１００は、同様に他の交差についても導出する。設計支援装置１００は、交差数の合計値を導出する。ここでは、表１０４−２によれば、配線状態１０３−２についての交差数の合計値は１８２である。設計支援装置１００は、配置状態１０２−２についての評価値を１８２とする。
【００２６】
設計支援装置１００は、複数の配置状態１０２の各々について、配置状態１０２と導出した評価値とを関連付けて提示する。これにより、配線の引き易さを設計者が考慮可能な論理回路の配置を提案できる。
【００２７】
また、設計支援装置１００は、複数の配置状態１０２の各々について、配置状態１０２における複数の配線の状態と、評価値と、を関連付けて表示してもよい。設計支援装置１００は、例えば、ディスプレイなどの出力装置に表示する。また、設計支援装置１００は、複数の配線を論理回路に対応して１つの配線として表示してもよい。これにより、設計者は論理回路の配置を検討し易くなる。
【００２８】
（設計支援装置１００のハードウェア構成例）
図２は、設計支援装置のハードウェア構成例を示す説明図である。設計支援装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３と、ディスクドライブ２０４と、ディスク２０５と、を有する。設計支援装置１００は、Ｉ／Ｆ（Ｉｎｔｅｒ／Ｆａｃｅ）２０６と、キーボード２０７と、マウス２０８と、ディスプレイ２０９と、を有する。また、ＣＰＵ２０１と、ＲＯＭ２０２と、ＲＡＭ２０３と、ディスクドライブ２０４と、Ｉ／Ｆ２０６と、キーボード２０７と、マウス２０８と、ディスプレイ２０９とは、バス２００によってそれぞれ接続される。
【００２９】
ここで、ＣＰＵ２０１は、設計支援装置１００の全体の制御を司る。ＲＯＭ２０２は、ブートプログラムなどのプログラムを記憶する。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される。ディスクドライブ２０４は、ＣＰＵ２０１の制御にしたがってディスク２０５に対するデータのリード／ライトを制御する。ディスク２０５は、ディスクドライブ２０４の制御で書き込まれたデータを記憶する。ディスク２０５としては、磁気ディスク、光ディスクなどが挙げられる。
【００３０】
Ｉ／Ｆ２０６は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク２１０に接続され、このネットワーク２１０を介して他の装置に接続される。そして、Ｉ／Ｆ２０６は、ネットワーク２１０と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ２０６には、例えばモデムやＬＡＮアダプタなどを採用することができる。
【００３１】
キーボード２０７やマウス２０８は、利用者の操作により、各種データの入力を行うインターフェースである。ディスプレイ２０９は、ＣＰＵ２０１の指示により、データを出力するインターフェースである。
【００３２】
また、図示を省略するが、設計支援装置１００には、カメラから画像や動画を取り込む入力装置やマイクから音声を取り込む入力装置が設けられていてもよい。また、図示を省略するが、設計支援装置１００には、プリンタなどの出力装置が設けられていてもよい。
【００３３】
また、本実施の形態では、設計支援装置１００のハードウェア構成として、パーソナル・コンピュータを例に挙げているが、これに限らず、サーバなどであってもよい。設計支援装置１００がサーバである場合、設計支援装置１００と利用者の操作可能な装置やディスプレイ２０９などがネットワーク２１０を介して接続されてもよい。
【００３４】
（設計支援装置１００の機能的構成例）
図３は、設計支援装置の機能的構成例を示すブロック図である。設計支援装置１００は、記憶部１０１と、決定部３０１と、導出部３０２と、提示部３０３と、を有する。記憶部１０１は、例えば、ＲＯＭ２０２、ＲＡＭ２０３、ディスク２０５などによって実現される。また、記憶部１０１は、ネットワーク２１０を介して設計支援装置１００に接続されていてもよい。決定部３０１から提示部３０３までの制御部の処理は、例えば、図２に示すＣＰＵ２０１がアクセス可能な記憶部１０１に記憶されたプログラムにコーディングされている。そして、ＣＰＵ２０１が記憶部１０１から該プログラムを読み出して、プログラムにコーディングされている処理を実行する。これにより、制御部の処理が実現される。
【００３５】
また、制御部の処理結果は、例えば、ＲＯＭ２０２、ＲＡＭ２０３、ディスク２０５などの記憶部１０１に記憶される。また、記憶部１０１には、物理ピン情報と、論理ピン情報と、論理ピン接続情報と、が記憶される。
【００３６】
図４は、物理ピン情報例を示す説明図である。物理ピン情報４００は、例えば、ＦＰＧＡ１１０に設けられるピンの物理的な情報である。物理ピン情報４００は、物理ピン名、Ｘ座標、Ｙ座標、バンク名のフィールドを有する。各フィールドに情報が設定されることによりレコード（例えば、４０１−１〜４０１−９など）として登録される。物理ピン情報４００は、例えば、記憶部１０１に記憶される。
【００３７】
物理ピン名のフィールドには、物理ピンを一意に特定可能な識別情報が設定される。Ｘ座標とＹ座標のフィールドには、物理ピンが設けられる位置を示す座標値が設定される。Ｘ座標とＹ座標とは、ＦＰＧＡ１１０における原点に対するＸ座標とＹ座標が設定される。バンク名のフィールドには、物理ピンを含むバンクを一意に特定可能な識別情報が設定される。
【００３８】
図４の例では、ＦＰＧＡ１１０は、バンクＡからバンクＨを含む。物理ピンは、例えば、物理ピン１から物理ピン９まである。レコード４０１−１を例に挙げると、物理ピン１は、Ｘ座標が１、Ｙ座標が１の位置に設けられ、バンクＢに含まれる。
【００３９】
図５は、論理ピン情報例を示す説明図である。論理ピン情報５００は、例えば、ＦＰＧＡ１１０に設けられるピンの論理的な情報である。論理ピン情報５００は、例えば、論理ピン名、論理カテゴリのフィールドを有する。各フィールドに情報が設定されることによりレコード（例えば、５０１−１〜５０１−９など）として登録される。論理ピン情報５００は、例えば、記憶部１０１に記憶される。ＦＰＧＡ１１０で実現される機能ごとに分割された複数ピンごとのグループを論理カテゴリと呼ぶ。ここでは、論理カテゴリとは、バスやクロックなどの論理機能である。図５の例では、論理カテゴリがＢＵＳ＿ＡとＢＵＳ＿ＢとＣＬＯＣＫとがある。
【００４０】
論理ピン名のフィールドには、論理ピンを一意に特定可能な識別情報が設定される。論理カテゴリのフィールドには、論理ピンを含む論理カテゴリを一意に特定可能な識別情報が設定される。
【００４１】
レコード５０１−１を例に挙げると、論理ピン名ＤａｔａＢＵＳ＿Ａ＿１は、論理カテゴリＢＵＳ＿Ａに含まれる。
【００４２】
図６は、論理ピン接続情報例を示す説明図である。論理ピン接続情報６００は、ＦＰＧＡ１１０の論理ピンと、回路基板上に設けられるＦＰＧＡ１１０と異なる周辺の部品の物理ピンとの論理的な接続情報１１１を示す。論理ピン接続情報６００は、例えば、論理ピン名、接続先部品ピン名のフィールドを有する。各フィールドに情報が設定されることによりレコード（例えば、６０１−１〜６０１−９など）として登録される。論理ピン接続情報６００は、例えば、記憶部１０１に記憶される。
【００４３】
図６の例では、周辺の部品は、部品Ｐ１から部品Ｐ４である。レコード６０１−１を例に挙げると、論理ピンＤａｔａＢＵＳ＿Ａ＿１は部品Ｐ１の１番ピンに接続される。
【００４４】
また、図示省略するが、ここでは、回路基板における部品Ｐ１から部品Ｐ４の位置や部品Ｐ１から部品Ｐ４の各ピンの位置などは定められてある。
【００４５】
まず、決定部３０１は、設計対象の回路基板に設けられる特定の回路であって、論理回路をプログラム可能な特定の回路が有する複数のバンクに、複数の論理回路をプログラムした場合の複数通りの配置状態を決定する。特定の回路は、例えば、ＦＰＧＡ１１０である。複数通りの配置状態とは、例えば、２以上の配置状態である。例えば、複数通りの配置状態は、２以上の指定された数の配置状態であってもよいし、すべての配置状態であってもよい。また、後述する図１４Ｂに示すように、決定部３０１は、複数通りの配置状態を、ＦＰＧＡ１１０が回路基板に配置される向きに基づき決定する。バンクと論理回路との対応関係が同じであってもＦＰＧＡ１１０の配置の向きが異なる場合には異なる配置状態とする。
【００４６】
例えば、決定部３０１は、物理ピン情報４００が示す物理ピンに対して、論理カテゴリごとの論理ピン情報５００が示す論理ピンを割り当てることにより、物理ピンと、論理ピンとの複数通りの配置状態を決定する。この決定結果は、バンクアサイン情報として記憶部１０１に記憶させる。バンクアサイン情報は複数通りあるが、ここでは一通りの例を図７に示す。
【００４７】
図７は、バンクアサイン情報例を示す説明図である。バンクアサイン情報７００は、物理ピンと、論理ピンと、の対応関係によって配置状態を示す。バンクアサイン情報７００は、物理ピン名、Ｘ座標、Ｙ座標、バンク名、論理ピン名、論理カテゴリ名のフィールドを有する。各フィールドに情報が設定されることによりレコード（例えば、７０１−１〜７０１−９など）として記憶される。
【００４８】
レコード７０１−１を例に挙げると、バンクＢの物理ピン１に論理ピンＤａｔａＢｕｓ＿Ａ＿１が割り当てられる。レコード７０１−２を例に挙げると、バンクＢの物理ピン２に論理ピンＤａｔａＢｕｓ＿Ａ＿２が割り当てられる。
【００４９】
図６に示す論理ピン接続情報６００と、図７に示すバンクアサイン情報７００と、によれば、物理ピンと、部品のピンと、の接続関係を判別可能である。例えば、物理ピン１と部品Ｐ１の１番ピンとが接続され、物理ピン２と部品Ｐ２の１番ピンとが接続されることを示す。
【００５０】
つぎに、導出部３０２は、複数通りの配置状態の各々について、接続情報１１１が示す複数の論理回路と回路基板に設けられ特定の回路と異なる部品との接続関係に応じた複数の配線長に基づく評価値を導出する。接続情報１１１とは、例えば、図６に示した論理ピン接続情報６００である。
【００５１】
配線長は、例えば、仮想的な配線の長さであってもよいし、交差しない実際の配線の長さであってもよい。ここでは、仮想的な配線を例に挙げる。
【００５２】
図８は、仮想的な配線例を示す説明図である。本実施の形態では、仮想的な配線として、例えば、論理ピンに対応する部品ピンと、論理ピンが割り当てられた物理ピンと、の間を直線で結ぶ接続線を利用する。例えば、部品Ｐ１の８つのピンは、バンクＢの８つの物理ピンに接続される。例えば、部品Ｐ２の４つのピンは、バンクＧの４つの物理ピンに接続される。例えば、部品Ｐ３の３つのピンは、バンクＥの３つの物理ピンに接続される。例えば、部品Ｐ３の２つのピンは、バンクＦの２つの物理ピンに接続される。例えば、部品Ｐ４の３つのピンは、バンクＨの３つの物理ピンに接続される。例えば、部品Ｐ４の４つのピンは、バンクＣの４つの物理ピンに接続される。
【００５３】
図９は、配線を束ねた例を示す説明図である。ここでは、導出部３０２は、配線状態における論理カテゴリの各々について、部品のピンとバンクのピンとの間を接続するための複数の配線を１つの配線に束ねる。ここで、束ねるとは、論理カテゴリの各々についての部品のピンとバンクのピンとの間を接続するため配線を１つの配線によって表すことである。導出部３０２は、例えば、部品のピンのうち中心のピンと、バンクのピンのうち中心のピンと、の間を接続する複数の配線を１つの配線に束ねる。
【００５４】
図９の例では、論理カテゴリの各々について束ねた各配線の幅は、論理ピンの数に応じて設定される。
【００５５】
配線の長さに基づく評価値は、例えば、複数の配線における交差に応じた値である。交差に応じた値とは、例えば、交差の有無に応じた値であったり、交差の数に応じた値である。ここでは、導出部は、交差の数の合計値を評価値として導出する。ここでは、交差の数は省略して交差数とも呼ぶ。導出部３０２は、例えば、配線状態における論理カテゴリの各々について、部品のピンとバンクのピンとの間の配線の数を特定する。そして、導出部３０２は、複数の論理カテゴリの各々について、特定した配線の数に基づき交差数を導出する。
【００５６】
導出部３０２は、配線同士の交差数を導出する。そして、導出部３０２は、すべての接続線に対して交差数の合計値を加算することによって、交差合計値を算出する。
【００５７】
図１０は、交差位置を示す説明図である。ここでは、束ねられた配線は、配線ＧＲＰ＿Ａ〜ＧＲＰ＿Ｆである。交差の位置は、例えば、点線の丸印によって示す。例えば、配線ＧＲＰ＿Ｃと配線ＧＲＰ＿Ｆとが交差し、配線ＧＲＰ＿Ｃと配線ＧＲＰ＿Ｂとが交差し、配線ＧＲＰ＿Ｄと配線ＧＲＰ＿Ｅとが交差する。
【００５８】
例えば、太さが４の配線ＧＲＰ＿Ｃは太さ４の配線ＧＲＰ＿Ｂ、および太さ３の配線ＧＲＰ＿Ｆと交差する。したがって、導出部３０２は、配線ＧＲＰ＿Ｃについての交差合計値を「３＋４＝７」として導出する。導出部３０２は、太さ３の配線ＧＲＰ＿Ｅは太さ２のＧＲＰ＿Ｄと交差する。配線ＧＲＰ＿Ｅについての交差数は２である。これにより、配線ねじれ交差を数値化することができ、配線の難易度を利用者に提示することができる。
【００５９】
図１１は、交差数の導出結果例を示す説明図である。表１１００は、交差数の導出結果を示す。表１１００の配線名の（  ）には配線の数が記載されてある。例えば、配線ＧＲＰ＿Ａについての交差数は０である。例えば、配線ＧＲＰ＿Ｂについての交差数は１６である。例えば、配線ＧＲＰ＿Ｃについての交差数は２８である。例えば、配線ＧＲＰ＿Ｄについての交差数は６である。例えば、配線ＧＲＰ＿Ｅについての交差数は６である。例えば、配線ＧＲＰ＿Ｆについての交差数は１２である。
【００６０】
そして、導出部３０２は、交差数の合計値は６８であるため、６８を配線状態の評価値とする。
【００６１】
また、評価値は、複数の論理回路の各々について、配置状態における論理回路が配置されるバンクと、論理回路と接続される部品と、の位置関係に応じた値である。これにより、迂回せずに配線できた場合の配線の引き易さを考慮した評価値を導出できる。位置関係に応じた値は、例えば、複数の論理回路の各々について、複数のバンクのうちの複数の配線が通過するバンクの数に応じた値であってもよい。具体的に、導出部３０２は、例えば、論理カテゴリの各々について、部品のピンから束ねた配線が通過する、ＦＰＧＡ１１０上のバンクの数によって引き易さについての重み付けを行い、重み付け結果を評価値に反映させる。また、導出部３０２は、例えば、論理カテゴリの各々について、束ねた配線の各部品側の端点から見たＦＰＧＡ１１０内のバンクへの配線の引き易さの指標を評価値に含める。
【００６２】
図１２は、重み付け例を示す説明図である。例えば、導出部３０２は、論理カテゴリを順に重み付けの対象とする。導出部３０２は、対象とした論理カテゴリについて、束ねた配線の各部品側の端点から見た、ＦＰＧＡ１１０内のバンクへの配線の引き易さの指標をつぎの手順で数値化する。
【００６３】
まず、導出部３０２は、周辺部品の配線と着目するＦＰＧＡ１１０のｎ個のバンクの中心点への直線距離を求める。導出部３０２は、直線距離が近いものから順に重みを「０，１／（ｎ−１），２／（ｎ−１），・・・・・（ｎ−１）／（ｎ−１）」とする。ｎはバンク数である。
【００６４】
そして、導出部３０２は、引き易さの指標を「重み×配線数（同一論理カテゴリのピン数）」とする。
【００６５】
図１２の例では、論理カテゴリＧＲＰ＿Ｃの重みが（８−１）／（８−１）である。そして、引き易さの指標が１×４＝４である。
【００６６】
図１３は、評価値の導出結果例を示す説明図である。表１３００は、評価値の導出結果を示す。表１３００の配線名の（  ）には配線の数が記載されてある。また、表１３００には、引き易さの指標が記載される。導出部３０２は、論理カテゴリの各々について算出する。導出部３０２は、算出された配線の難しさの指標によって得られた値を評価値に加算する。これにより、評価値は７６．５となる。
【００６７】
図１４Ａおよび図１４Ｂは、設計支援装置による簡単な動作の流れを示す説明図である。図１４Ａの（１）に示すように、決定部３０１は、論理カテゴリをバンクにアサインすることによって配線状態を決定する。つぎに、図１４Ａの（２）に示すように、導出部３０２は、配線長に基づく評価値を、交差数と配線の引き易さに基づき導出する。
【００６８】
例えば、図１４Ｂに示すように、設計対象の回路基板に設けられるＦＰＧＡ１１０の向きに応じて複数通りの配線状態が決定されてもよい。
【００６９】
提示部３０３は、複数通りの配置状態の各々について、配置状態と、評価値と、を関連付けて提示する。提示部３０３は、例えば、配置状態と評価値とを関連付けて記憶部１０１に記憶させてもよい。提示部３０３は、例えば、配置状態と評価値とを関連付けてディスプレイ２０９に表示してもよい。
【００７０】
また、例えば、提示部３０３は、例えば、図１１に示すように配置状態についての配線状態と評価値と関連付けてディスプレイ２０９に表示してもよい。
【００７１】
また、図１４Ｂに示すように、提示部３０３は、複数通りの配置状態の各々について、配置状態における配線状態と評価値とを関連付けて表示する。また、提示部３０３は、例えば、配置状態について、ＦＰＧＡ１１０のピンを所属するバンクごとに色分けなどによって特徴付けてディスプレイ２０９に表示してもよい。
【００７２】
また、提示部３０３は、図１１や図１４Ｂに示すように、複数の配線を論理カテゴリごとに束ねて表示してもよい。
【００７３】
また、提示部３０３は、配置状態における複数の配線のうち、バンクと部品とを共通とする接続関係の配線を単一の配線に集約して表示する。単一の配線の幅は、複数の配線のうちの、バンクと部品とを共通とする接続関係の配線の数に応じた幅である。また、提示部３０３は、束ねた場合の配線の幅は論理カテゴリごとに配線の数に応じて配線の幅にしてもよい。具体的に、提示部３０３は、例えば、図９に示したように、論理カテゴリごとの配線の数が多いほど、配線の幅が太くなるように表示する。例えば、図９に示すように、８つの配線である配線ＧＲＰ＿Ａは４つの配線であるＧＲＰ＿Ｂよりも太く表示される。
【００７４】
また、評価値が複数の配線における交差に応じた値である場合に、提示部３０３は、複数通りの配置状態の各々について、評価値と、配置状態と、交差の位置と、を関連付けて表示する。また、提示部３０３は、評価値に基づく順序に基づいて、複数通りの配置状態の各々の評価値を提示してもよい。
【００７５】
図１５は、表示例を示す説明図である。提示部３０３は、例えば、評価値に基づいて配置状態に順序を付しておき、順序に基づき配置状態と評価状態とをリスト化してディスプレイ２０９に表示する。そして、提示部３０３は、利用者の操作によって選択された配置状態に基づいて配置状態における配線状態と評価値とを関連付けてディスプレイ２０９に表示してもよい。
【００７６】
（設計支援装置１００による設計支援処理手順例）
図１６は、設計支援装置による設計支援処理手順例を示すフローチャートである。設計支援装置１００は、例えば、論理カテゴリとバンクとの全組み合わせについて処理を終了したか否かを判断する（ステップＳ１６０１）。論理カテゴリとバンクとの全組み合わせについて処理を終了していないと判断された場合（ステップＳ１６０１：Ｎｏ）、設計支援装置１００は、論理カテゴリとバンクとの組み合わせを決定する（ステップＳ１６０２）。
【００７７】
設計支援装置１００は、ＦＰＧＡ１１０を配置可能なすべての向きについて処理を終了したか否かを判断する（ステップＳ１６０３）。終了していないと判断された場合（ステップＳ１６０３：Ｎｏ）、設計支援装置１００は、組み合わせについて未対象の向きを対象の向きに決定する（ステップＳ１６０４）。
【００７８】
そして、設計支援装置１００は、決定した組み合わせについて、論理カテゴリと周辺部品との接続関係によって論理カテゴリごとの配線を特定する（ステップＳ１６０５）。つぎに、設計支援装置１００は、特定した配線間の交差数を導出する（ステップＳ１６０６）。設計支援装置１００は、配線とバンクの位置関係によって配線の引き易さの指標を導出する（ステップＳ１６０７）。
【００７９】
設計支援装置１００は、交差数と難易度とに基づき評価値を導出する（ステップＳ１６０８）。設計支援装置１００は、組み合わせおよび向きについて、配線の状態と、評価値とを関連付けて記憶し（ステップＳ１６０９）、ステップＳ１６０３へ戻る。
【００８０】
ステップＳ１６０３において、終了したと判断された場合（ステップＳ１６０３：Ｙｅｓ）、設計支援装置１００は、ステップＳ１６０１へ戻る。ステップＳ１６０１において、論理カテゴリとバンクとの全組み合わせについて処理を終了したと判断された場合（ステップＳ１６０１：Ｙｅｓ）、設計支援装置１００は、評価値に基づき組み合わせおよび向きについて順序付けを行う（ステップＳ１６１０）。そして、設計支援装置１００は、順序に基づき表示し（ステップＳ１６１１）、一連の処理を終了する。
【００８１】
以上説明したように、設計支援装置１００は、ＦＰＧＡ内のバンクと論理回路との複数の配置状態の各々について、論理回路と周辺部品との接続関係に応じた配線長に基づく評価値を提示する。これにより、配線の引き易さを設計者が考慮可能な論理回路の配置を提案できる。
【００８２】
また、設計支援装置１００は、複数の配線の状態と、評価値と、を関連付けて表示する。これにより、設計者が配置状態に対する配線の状態を容易に確認することができる。
【００８３】
また、設計支援装置１００は、評価値に基づく複数の配置状態の順序によって、配置状態と、評価値と、を提示する。
【００８４】
また、設計支援装置１００は、配置状態における複数の配線を複数の論理回路の各々に対応する単一の配線に集約して表示する。これにより、設計者が配置状態に対する配線の状態を見易くでき、設計者の作業の容易化を図ることができる。
【００８５】
単一の配線の幅は複数の配線の数に応じた幅である。これにより、配線の状態がより見易くなるため、設計者の作業の容易化を図ることができる。
【００８６】
評価値は、複数の配線における交差に応じた値である。これにより、交差の少ない配置状態を提案することができる。
【００８７】
また、設計支援装置１００は、複数の配置状態の各々について、評価値と、配置状態と、交差の位置と、を関連付けて表示する。これにより、交差の少ない配置状態を設計者が選び易くなる。
【００８８】
評価値は、複数の論理回路の各々について、配置状態における論理回路が配置されるバンクと、論理回路と接続される周辺の部品と、の位置関係に応じた値である。これにより、交差を回避した場合の配線の引き易さを設計者が考慮可能な論理回路の配置を提案できる。
【００８９】
また、設計支援装置１００は、配置状態における複数の配線を複数の論理回路の各々に対応する単一の配線に集約して表示する。これにより、配線の状態がより見易くなるため、設計者の作業の容易化を図ることができる。
【００９０】
また、設計支援装置１００は、単一の配線に集約して表示する際に、単一の配線の幅を配線の数に応じて表示する。これにより、配線の状態がより見易くなるため、設計者の作業の容易化を図ることができる。
【００９１】
なお、本実施の形態で説明した設計支援方法は、予め用意された設計支援プログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設計支援プログラムは、磁気ディスク、光ディスク、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）フラッシュメモリなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、設計支援プログラムは、インターネット等のネットワークを介して配布してもよい。
【００９２】
上述した実施の形態に関し、さらに以下の付記を開示する。
【００９３】
（付記１）コンピュータに、
設計対象の回路基板に設けられる特定の回路であって、論理回路をプログラム可能な特定の回路が有する複数のバンクに、複数の論理回路をプログラムした場合の複数通りの配置状態を決定し、
決定した前記複数通りの配置状態の各々について、記憶部に記憶された前記複数の論理回路と前記回路基板に設けられ前記特定の回路と異なる部品との接続関係を示す接続情報が示す前記接続関係に応じた複数の配線の各長さに基づく評価値を導出し、
前記複数通りの配置状態の各々について、前記配置状態と導出した前記評価値とを関連付けて提示する、
処理を実行させることを特徴とする設計支援プログラム。
【００９４】
（付記２）前記提示する処理では、
前記複数通りの配置状態の各々について、前記配置状態における前記複数の配線の状態と、前記評価値と、を関連付けて表示する、
ことを特徴とする付記１に記載の設計支援プログラム。
【００９５】
（付記３）前記提示する処理では、
前記評価値に基づく前記複数通りの配置状態の順序によって、前記配置状態と、前記評価値と、を提示する、
ことを特徴とする付記１または２に記載の設計支援プログラム。
【００９６】
（付記４）前記提示する処理では、
前記配置状態における前記複数の配線のうち、前記バンクと前記部品とを共通とする接続関係の配線を単一の配線に集約して表示する、
ことを特徴とする付記２または３に記載の設計支援プログラム。
【００９７】
（付記５）前記複数の論理回路の各々についての前記単一の配線の幅は、前記複数の配線のうちの、前記論理回路と、前記配置状態に応じた前記バンクとを接続する配線の数に応じた幅であることを特徴とする付記４に記載の設計支援プログラム。
【００９８】
（付記６）前記評価値は、前記複数の配線における交差に応じた値であることを特徴とする付記１〜５のいずれか一つに記載の設計支援プログラム。
【００９９】
（付記７）前記提示する処理では、
前記複数通りの配置状態の各々について、前記評価値と、前記配置状態と、前記交差の位置と、を関連付けて表示する、
ことを特徴とする付記６に記載の設計支援プログラム。
【０１００】
（付記８）前記評価値は、前記複数の論理回路の各々について、前記配置状態における前記論理回路が配置される前記バンクと、前記論理回路と接続される前記部品と、の位置関係に応じた値であることを特徴とする付記６または７に記載の設計支援プログラム。
【０１０１】
（付記９）前記決定する処理では、前記複数通りの配置状態を、前記特定の回路が前記回路基板に配置される向きに基づき決定することを特徴とする付記１〜８のいずれか一つに記載の設計支援プログラム。
【０１０２】
（付記１０）設計対象の回路基板に設けられる特定の回路であって、論理回路をプログラム可能な特定の回路と異なる前記回路基板に設けられる部品と、複数の論理回路と、の接続関係を示す接続情報を記憶する記憶部と、
前記特定の回路が有する複数のバンクに、前記複数の論理回路をプログラムした場合の複数通りの配置状態を決定し、決定した前記複数通りの配置状態の各々について、前記記憶部に記憶された前記接続情報が示す前記接続関係に応じた複数の配線の各長さに基づく評価値を導出し、前記複数通りの配置状態の各々について、前記配置状態と導出した前記評価値とを関連付けて提示する制御部と、
を有することを特徴とする設計支援装置。
【０１０３】
（付記１１）コンピュータが、
設計対象の回路基板に設けられる特定の回路であって、論理回路をプログラム可能な特定の回路が有する複数のバンクに、複数の論理回路をプログラムした場合の複数通りの配置状態を決定し、
決定した前記複数通りの配置状態の各々について、記憶部に記憶された前記複数の論理回路と前記回路基板に設けられ前記特定の回路と異なる部品との接続関係を示す接続情報が示す前記接続関係に応じた複数の配線の各長さに基づく評価値を導出し、
前記複数通りの配置状態の各々について、前記配置状態と導出した前記評価値とを関連付けて提示する、
処理を実行させることを特徴とする設計支援方法。
【符号の説明】
【０１０４】
１００  設計支援装置
１０１  記憶部
１０２−１，１０２−２  配置状態
１０３−１，１０３−２  配線状態
１０４−１，１０４−２  表
１１０  ＦＰＧＡ
【図１】
0006459628.tif 000002
【図２】
0006459628.tif 000003
【図３】
0006459628.tif 000004
【図４】
0006459628.tif 000005
【図５】
0006459628.tif 000006
【図６】
0006459628.tif 000007
【図７】
0006459628.tif 000008
【図８】
0006459628.tif 000009
【図９】
0006459628.tif 000010
【図１０】
0006459628.tif 000011
【図１１】
0006459628.tif 000012
【図１２】
0006459628.tif 000013
【図１３】
0006459628.tif 000014
【図１４Ａ】
0006459628.tif 000015
【図１４Ｂ】
0006459628.tif 000016
【図１５】
0006459628.tif 000017
【図１６】
0006459628.tif 000018