設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法
【課題】所定の配線領域内における仕様の回路特性を満たす配線長の配線を自動化することにより、作業負担の軽減化および設計期間の短縮化を図ること。
【解決手段】設計支援装置は、所定の配線領域内に配置された第1および第2の端子を接続する配線経路と、所定の配線領域内でかつ該配線経路と非接続な巡回路とを探索し、探索された配線経路の配線経路長と巡回路の配線経路長とを合わせた配線経路長を算出し、算出された配線経路長が、仕様の回路特性を満たす配線経路長以上か否かを判定し、判定された判定結果を出力する。これにより、探索困難な端子間の最長配線経路の換わりに、比較的に探索容易な端子間の任意の配線経路と巡回路とを合わせた最長配線経路候補を用いて、所定の配線領域における仕様の回路特性を満たす配線経路長の実現可能性を判定することができる。
【解決手段】設計支援装置は、所定の配線領域内に配置された第1および第2の端子を接続する配線経路と、所定の配線領域内でかつ該配線経路と非接続な巡回路とを探索し、探索された配線経路の配線経路長と巡回路の配線経路長とを合わせた配線経路長を算出し、算出された配線経路長が、仕様の回路特性を満たす配線経路長以上か否かを判定し、判定された判定結果を出力する。これにより、探索困難な端子間の最長配線経路の換わりに、比較的に探索容易な端子間の任意の配線経路と巡回路とを合わせた最長配線経路候補を用いて、所定の配線領域における仕様の回路特性を満たす配線経路長の実現可能性を判定することができる。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、LSIやプリント基板などの設計を支援する設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法に関する。
【背景技術】
【0002】
LSI設計におけるアナログ回路やプリント基板の配線の設計では、仕様の回路特性(R,C)を満たすため、また、ばらつきによる特性変動の影響を削減するために、ミクロン単位での配線制約が与えられる。例えば、差動回路においては、複数配線に対して等長の配線制約が与えられる。
【0003】
一般に、このような配線制約を満たす配線を自動化することは難しいため、人手による試行錯誤を繰り返すことで各配線パターンを決定することとなる。このため、配線作業にかかる作業負担および作業時間が増大してしまい、設計期間の長期化を招く要因となっている。
【0004】
そこで、配線作業を自動化する手法として、下記特許文献1には、複数の既配線回路データの中から最大配線長の配線経路を抽出し、当該配線経路とは異なる他の配線経路の配線長が上記最大配線長となるように、他の配線経路を変更することで、等長配線をおこなう手法が記載されている。
【0005】
また、下記特許文献2には、スター型指定長配線をおこなう接続点のすべての接続点位置に基づいて所定の領域を作成し、上記領域内に所定の条件で経由点候補を生成する。そして、生成された経由点候補について上記接続点すべてがスター型指定長配線をおこなう際の配線条件を満足する経由点候補の中から経由点を探索し、その経由点からピンまでの指定長配線をおこなう手法が記載されている。
【0006】
【特許文献1】特開昭63−271661号公報
【特許文献2】特開平08−36596号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、上述した特許文献1,2に記載の従来技術では、複雑な配線禁止領域(障害物が存在する領域)を取り扱うことはできないという問題がある。なぜなら、配線領域上の障害物(トランジスタ、配線、ビアなど)が増加し設計ルールが複雑化すると、与えられた配線領域内で配線制約を満たす配線を実現することができるか否かを判断することが難しくなるからである。
【0008】
このため、複雑な配線禁止領域を取り扱う場合には、結果的に人手による試行錯誤を繰り返すこととなり、依然として配線作業にかかる作業負担および作業時間が増大し、ひいては設計期間の長期化を招くという問題がある。
【0009】
この発明は、上述した従来技術による問題点を解消するため、所定の配線領域内における仕様の回路特性を満たす配線長の配線を自動化することにより、作業負担の軽減化および設計期間の短縮化を図ることができる設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
上述した課題を解決し、目的を達成するため、この設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法は、所定の配線領域内に配置された第1および第2の端子を接続する配線経路と、前記所定の配線領域内でかつ前記配線経路と非接続な巡回路とを探索し、探索された配線経路の配線経路長と巡回路の配線経路長とを合わせた配線経路長を算出し、算出された配線経路長が、仕様の回路特性を満たす配線経路長以上か否かを判定し、判定された判定結果を出力することを要件とする。
【0011】
この設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法によれば、探索困難な端子間の最長配線経路の換わりに、端子間を接続する任意の配線経路と巡回路とを合わせた最長配線経路候補を用いて、所定の配線領域における仕様の回路特性を満たす配線経路長の実現可能性を判定することができる。
【0012】
また、この設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法において、仕様の回路特性を満たす配線経路長以上と判定された場合、前記配線経路の一部と前記巡回路の一部とを通過して前記第1の端子から前記第2の端子に辿り着くまでの最長配線経路を探索し、探索された最長配線経路を出力することとしてもよい。
【0013】
この設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法によれば、配線経路長を最大限に維持しながら端子間の配線経路と巡回路とを4つの接続ポイントで繋ぎ換えることで、端子間の最長配線経路を探索することができる。
【0014】
また、この設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法において、探索された最長配線経路の配線経路長を算出し、算出された最長配線経路の配線経路長が、前記仕様の回路特性を満たす配線経路長以上か否かを判定することとしてもよい。
【0015】
この設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法によれば、探索された最長配線経路の配線経路長を用いて再判定することで、所定の配線領域における仕様の回路特性を満たす配線経路長の実現可能性をより正確に判定することができる。
【0016】
また、この設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法において、前記最長配線経路の配線経路長と、前記仕様の回路特性を満たす配線経路長との差分が予め設定された許容範囲内か否かを判定し、許容範囲外と判定された場合、前記最長配線経路を前記許容範囲内の配線経路長となるように変更し、変更された変更後の最長配線経路を出力することとしてもよい。
【0017】
この設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法によれば、所定の配線領域における仕様の回路特性を満たす配線経路長の配線を実現することができる。
【0018】
また、この設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法において、前記所定の配線領域を、障害物を含まない第1の配線領域と、障害物を含む第2の配線領域とに分割し、分割された第1および第2の配線領域ごとに、探索処理、算出処理および判定処理を実行することとしてもよい。
【0019】
この設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法によれば、所定の配線領域を分割して対象となる配線領域を小さくすることで、実際の最長配線経路の配線経路長と、端子間の配線経路の配線経路長および巡回路の配線経路長を合わせた配線経路長との誤差を低減させることができる。
【0020】
また、この設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法において、前記第1および第2の配線領域ごとに、探索処理、算出処理および判定処理が実行された結果、前記第1の配線領域内の第1の最長配線経路の一部と前記第2の配線領域内の第2の最長配線経路の一部とを通過して前記第1の端子から前記第2の端子に辿り着くまでの最長配線経路を探索することとしてもよい。
【0021】
この設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法によれば、端子間の最長配線経路を精度よく探索することで、所定の配線領域における仕様の回路特性を満たす配線経路長の実現可能性を正確に判定することができる。
【発明の効果】
【0022】
この設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法によれば、所定の配線領域内における仕様の回路特性を満たす配線長の配線を自動化することにより、作業負担の軽減化および設計期間の短縮化を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【0023】
以下に添付図面を参照して、この設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法の好適な実施の形態を詳細に説明する。
【0024】
(設計支援装置のハードウェア構成)
まず、本実施の形態にかかる設計支援装置のハードウェア構成について説明する。図1は、本実施の形態にかかる設計支援装置のハードウェア構成を示す説明図である。
【0025】
図1において、設計支援装置100は、コンピュータ本体110と、入力装置120と、出力装置130と、から構成されており、不図示のルータやモデムを介してLAN,WANやインターネットなどのネットワーク140に接続可能である。
【0026】
コンピュータ本体110は、CPU,メモリ,インターフェースを有する。CPUは、設計支援装置100の全体の制御を司る。メモリは、ROM,RAM,HD,光ディスク111,フラッシュメモリから構成される。メモリはCPUのワークエリアとして使用される。
【0027】
また、メモリには各種プログラムが格納されており、CPUからの命令に応じてロードされる。HDおよび光ディスク111はディスクドライブによりデータのリード/ライトが制御される。また、光ディスク111およびフラッシュメモリはコンピュータ本体110に対し着脱自在である。インターフェースは、入力装置120からの入力、出力装置130への出力、ネットワーク140に対する送受信の制御をおこなう。
【0028】
また、入力装置120としては、キーボード121、マウス122、スキャナ123などがある。キーボード121は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式であってもよい。マウス122は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。スキャナ123は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体110内のメモリに格納される。なお、スキャナ123にOCR機能を持たせてもよい。
【0029】
また、出力装置130としては、ディスプレイ131、スピーカ132、プリンタ133などがある。ディスプレイ131は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。また、スピーカ132は、効果音や読み上げ音などの音声を出力する。また、プリンタ133は、画像データや文書データを印刷する。
【0030】
(本実施の形態の概要)
つぎに、本実施の形態の概要について説明する。本実施の形態では、LSIやプリント基板のレイアウト処理において、所定の配線領域内における仕様の回路特性を満たす配線長の配線を自動化することにより、作業負担の軽減化および設計期間の短縮化を図る。
【0031】
LSI設計におけるアナログ回路やプリント基板の配線の設計では、仕様の回路特性を満たすため、ミクロン単位での配線制約(指定長、等長配線など)が与えられる。ところが、LSIやプリント基板の高集積化により、配線領域上の障害物(トランジスタ、配線、ビアなど)が増加し設計ルールが複雑化している。
【0032】
このため、端子間の配線形成のために割り付けられた配線領域内における端子間の最長経路探索が困難となり、該配線領域内における仕様の回路特性を満たす配線の実現可能性を判断することが難しくなっている。そこで、所定の配線領域内における仕様の回路特性を満たす配線の実現可能性を効率的かつ効果的に判断する手法を提案する。
【0033】
まず、探索困難な端子間の最長経路の換わりに、巡回路を含む端子間の配線経路を最長経路候補として探索する。そして、その最長経路候補の配線長が、仕様の回路特性を満たす配線長以上であった場合に、仕様の回路特性を満たす配線が実現可能であると判断する。これは、巡回路を含む端子間の配線経路の配線長が、巡回路を含まない端子間の配線経路の配線長以上となるという特性を利用したものである。
【0034】
換言すれば、巡回路を含む端子間の配線経路の配線長が、仕様の回路特性を満たす配線長未満であった場合には、配線制約を満たす配線は実現できないことを意味している。仕様の回路特性を満たす配線が実現不可能と判断された場合は、例えば、上流の工程に戻って各端子の配置位置を変更するなどの修正をおこなうこととなる。
【0035】
一方で、仕様の回路特性を満たす配線が実現可能であると判断された場合には、その仕様の回路特性を満たす配線長に応じて、巡回路を含む配線経路を自動修正し、配線制約を満たす端子間の配線を実現する。これにより、複雑な配線禁止領域(障害物)を含む配線領域を扱うことが可能となり、仕様の回路特性を満たす配線長の配線を自動化することができる。
【0036】
(配線領域の具体例)
ここで、端子間の配線経路を形成するために割り付けられる配線領域の具体例について説明する。図2は、配線領域の具体例を示す説明図である。図2において、配線領域200は、ソースS(第1の端子)とターゲットT(第2の端子)とを接続する配線経路を形成するために割り付けられた配線領域である。
【0037】
配線領域200は、格子状に区切って9個のグリッドに分割されている。グリッドには、各グリッドを特定するためのラベルR1〜R9が付与されている。配線領域200において、ラベルR8,R9が付与されたグリッド(図2中ハッチ部分)は、トランジスタ、配線、ビアなどの障害物が配置された配線禁止領域を示している。なお、配線領域200を分割する格子サイズ(グリッドの大きさ)は、配線のプロセスによって決まる。
【0038】
(配線情報のデータ構造)
つぎに、図2に示した配線領域に関する配線情報のデータ構造について説明する。図3は、配線情報のデータ構造を示す説明図である。図3において、配線情報300は、グリッド数、ソースS、ターゲットT、配線禁止領域および各グリッドの座標位置に関する情報を有している。
【0039】
グリッド数は、配線領域200(図2参照)のX方向およびY方向のグリッド数を表わしている。ソースSは、始点端子の配置位置を表わしている。ここでは、ラベルR7のグリッドに始点端子が配置されている。ターゲットTは、終点端子の配置位置を表わしている。ここでは、ラベルR3のグリッドに終点端子が配置されている。
【0040】
配線禁止領域は、トランジスタ、配線、ビアなどの障害物が配置され、新たな配線を形成することができないグリッドを表わしている。ここでは、ラベルR8,R9のグリッドが配線禁止領域となっている。また、配線情報300には、各グリッドの座標位置を認識するための座標データ(例えば、図4に示す座標テーブル400)が含まれている。
【0041】
図4は、座標テーブルの記憶内容を示す説明図である。図4において、座標テーブル400は、グリッドごとに、ラベル名および座標位置に関する情報を記憶している。この座標テーブル400を参照することで、各グリッドの座標位置を認識することができる。例えば、ラベルR1のグリッドの座標位置は(X,Y)=(1,1)である。
【0042】
(設計支援装置の機能的構成)
つぎに、設計支援装置100の機能的構成について説明する。図5は、設計支援装置の機能的構成を示すブロック図である。図5において、設計支援装置100は、探索部501と、算出部502と、判定部503と、出力部504と、変更部505と、分割部506と、を備えている。
【0043】
これら各機能501〜506は、設計支援装置100の記憶部に記憶された当該機能501〜506に関するプログラムをCPUに実行させることにより、または、入出力I/Fにより、当該機能を実現することができる。また、各機能501〜506からの出力データは上記記憶部に保持される。また、図5中矢印で示した接続先の機能は、接続元の機能からの出力データを記憶部から読み込んで、当該機能に関するプログラムをCPUに実行させるものとする。
【0044】
まず、探索部501は、所定の配線領域内に配置された第1および第2の端子を接続する配線経路と、所定の配線領域内でかつ配線経路と非接続な巡回路とを探索する機能を有する。所定の配線領域とは、設計対象回路内の2つの端子ごとに割り付けられる配線領域である。例えば、レイアウトツールを実行することで、第1および第2の端子に所定の配線領域を自動的に割り付けることができる。また、巡回路とは、ループ状の配線経路である。この順回路は、所定の配線領域内のうち第1および第2の端子を接続する配線経路が形成された領域を除く残余の領域に形成される。
【0045】
具体的には、例えば、探索部501は、所定の配線領域に関する配線領域情報と、該配線領域内の配線禁止領域を表わす配線禁止情報と、第1および第2の端子に関する接続端子情報とに基づいて、第1および第2の端子を接続する配線経路と巡回路とを探索する。これら配線領域情報、配線禁止情報および接続端子情報として、例えば、図3に示した配線情報300を用いることができる。なお、配線情報300は、設計支援装置100に直接入力することとしてもよく、また、不図示の外部装置からの取得、不図示のデータベースやライブラリからの抽出によって取得することとしてもよい。
【0046】
ここで、探索部501による第1および第2の端子を接続する配線経路と巡回路とを探索する第1の探索処理の具体例について説明する。図6は、第1の探索処理の概要を示す説明図である。ここでは、配線領域600内のソースSとターゲットTとを接続する配線経路と、配線領域600内でかつ該配線経路と非接続な巡回路とを探索する。
【0047】
まず、配線領域600内の各グリッドがノード化され、ノード間をつなぐ各エッジに変数x1〜x12が割り付けられたグラフ610を作成する。グラフ610における各ノードの配置位置は、配線領域600における各グリッドの配置位置に対応している。例えば、ノードe1とソースSが配置されたグリッドとが対応している。
【0048】
以下、グラフ610を用いて、ソースSからターゲットTに辿り着くまでの配線経路および巡回路を探索する。なお、前提条件として、グラフ610内において、引き返しは不可とし、同じグリッドに2回辿り着いた時点で探索を終了することとする。
【0049】
具体的には、巡回路を含む最長経路探索問題を線形計画問題にモデル化する。より具体的には、巡回路を含む最長経路探索問題を整数計画問題にモデル化し、その整数計画問題を線形計画問題に緩和する。まず、整数計画問題を定式化すると、目的関数は下記式(1)となり、制約式は下記式(2)〜(5)となる。ただし、diは区間iの距離である。また、xi=1は区間iを通過、xi=0は区間iを通過しないことを意味している。
【0050】
max.Σ{di・xi|iは区間} …(1)
【0051】
Σ{ei|iは終端ノード}=2 …(2)
【0052】
bi∈{0,2}(ただし、biは任意の分岐ノード) …(3)
【0053】
ei∈{1}(ただし、eiは2つの始点終点ノード) …(4)
【0054】
xi∈{0,1}(ただし、xiは任意のエッジ) …(5)
【0055】
つぎに、この整数計画問題を線形計画問題に緩和する。具体的には、上記の制約式を線形計画制約によって表現する。ここで、グラフ610内の代表ノード(始点終点ノード、3分岐ノード、4分岐ノード)を例に挙げて、上記式(3)および(5)を線形計画制約によって表現した制約式について説明する。
【0056】
まず、グラフ610内のノードe1(始点ノード)を例に挙げると、制約式は『+x1+x7=1,0≦x1≦1,0≦x7≦1』となる。つぎに、ノードe2(終点ノード)を例に挙げると、制約式は『+x6+x12=1,0≦x6≦1,0≦x12≦1』となる。
【0057】
つぎに、ノードb3(3分岐)を例に挙げると、『−x3+x7+x8≧0,+x3−x7+x8≧0,+x3+x7−x8≧0,+x3+x7+x8≦2,0≦x3≦1,0≦x7≦1,0≦x8≦1』となる。
【0058】
つぎに、ノードb4(4分岐)を例に挙げると、『−x3+x4+x9+x10≧0,+x3−x4+x9+x10≧0,+x3+x4−x9+x10≧0,+x3+x4+x9−x10≧0,+x3+x4+x9+x10≦2,0≦x3≦1,0≦x4≦1,0≦x9≦1,0≦x10≦1』となる。
【0059】
このあと、上記式(1)で示した目的関数と、グラフ610内のノードごとに線形計画制約で表現した制約式と、を線形計画ソルバに入力することで、ソースSからターゲットTに辿り着くまでの巡回路を含む最長経路を求めることができる。なお、線形計画問題に緩和したため、各変数は必ずしも0または1に収束しない。このため、ここでは0と1の間の中間値をとる変数を、近傍の配線と接続されるように0または1に修正することとする。
【0060】
ここで、第1の探索処理の探索結果の具体例について説明する。図7は、第1の探索処理の探索結果の具体例を示す説明図である。図7において、配線領域600には、第1の探索処理の探索結果である、ソースSとターゲットTとを接続する配線経路710と巡回路720とが示されている。
【0061】
図5の説明に戻り、算出部502は、探索部501によって探索された配線経路の配線経路長と巡回路の配線経路長とを合わせた配線経路長を算出する機能を有する。具体的には、例えば、配線経路および巡回路が通過するグリッド数を配線経路長とすることとしてもよく、また、上記式(1)を用いて求めた値を配線経路長とすることとしてもよい。
【0062】
判定部503は、算出部502によって算出された配線経路長が、仕様の回路特性を満たす配線経路長以上か否かを判定する機能を有する。仕様の回路特性を満たす配線経路長とは、例えば、設計対象回路の仕様として規定された配線制約であり、特定の配線経路長である。なお、仕様の回路特性を満たす配線経路長は、例えば、ROMやRAMなどの記憶部に記憶されている。
【0063】
出力部504は、判定部503によって判定された判定結果を出力する機能を有する。例えば、仕様の回路特性を満たす配線経路長未満と判定された場合には、割り付けられた配線領域内で仕様の回路特性を満たす配線経路長を満たすことができない旨のエラーメッセージを出力することとしてもよい。なお、出力部504による出力形式は、ディスプレイ131での画面表示、プリンタ133での印刷出力、メモリへのデータ出力(保存)、外部のコンピュータ装置への送信のいずれであってもよい。
【0064】
設計者は、このエラーメッセージを確認することで、第1および第2の端子に割り付けられた配線領域内において配線制約を満たす配線が実現できないことを認識することができる。これにより、上流の工程に戻って第1および第2の端子の配置位置を変更するなどの対策を適切かつ迅速におこなうことができる。
【0065】
また、探索部501は、判定部503によって配線経路長以上と判定された場合、配線経路の一部と巡回路の一部とを通過して第1の端子から第2の端子に辿り着くまでの最長配線経路を探索する機能を有する。具体的には、4つの接続ポイントで配線経路と巡回路とを繋ぎ換えることで、最大限に配線経路長を維持した単一の最長配線経路を探索する。
【0066】
ここで、探索部501による最長配線経路を探索する第2の探索処理の具体例について説明する。ここでは、図7に示した探索結果を例に挙げて説明する。図8は、第2の探索処理の概要を示す説明図である。最長配線経路を探索する場合、図8に示すターンアウトスイッチグラフ(以下、「Tsグラフ」と表記)800を作成する。
【0067】
Tsグラフ800は、配線経路710と巡回路720とを繋ぎ換える際の接続可能ポイントが表現されたグラフである。具体的には、まず、配線領域600を区切る境界線の中から、配線経路710と巡回路720との間の境界線を検出する。例えば、配線経路710のソースSからターゲットTに辿り着くまでのグリッドごとに、巡回路720との間の境界線を検出する。そして、境界線が検出された都度、その境界線にエッジIDを割り付ける。
【0068】
ここで、ソースSが配置されたグリッドを例に挙げると、巡回路720との間の境界線810を検出し、その境界線810にエッジaを割り付ける。このように、境界線が検出された都度、エッジID(図8では、エッジa〜d)を割り付けることで、配線経路710と巡回路720との間の境界線を認識することができる。
【0069】
このあと、配線経路710、巡回路720、エッジa〜dがノード化されたTsグラフ800を作成する。具体的には、配線経路710を表わすノードN1と、巡回路720を表わすノードN2とが、エッジa〜dを表わすノードNa〜Ndを介して接続されたTsグラフ800を作成する。
【0070】
つぎに、配線経路710および巡回路720の原点を設定する。原点の位置は任意に設定可能である。ここでは、配線経路710の原点をソースS(以下、「原点S」と表記)に設定し、巡回路720の原点を点A(以下、「原点A」と表記)に設定する。
【0071】
さらに、配線経路710の経路上を辿って原点Sから各エッジa〜dに辿り着くまでの距離を求めて、ノード間をつなぐ各枝に設定する。例えば、原点Sからエッジaまでの距離は「0」のため、ノードN1とノードNaとをつなぐ枝に「0」を設定する。また、原点Sからエッジdまでの距離は「4」のため、ノードN1とノードNdとをつなぐ枝に「4」を設定する。
【0072】
同様に、巡回路720の経路上を辿って原点Aから各エッジa〜dに辿り着くまでの距離を求めて、ノード間をつなぐ各枝に設定する。このとき、時計回りに巡回路720の経路上を辿ることとする。例えば、原点Aからエッジaまでの距離は「1」のため、ノードN2とノードNaとをつなぐ枝に「1」を設定する。また、原点Aからエッジdまでの距離は「3」のため、ノードN2とノードNdとをつなぐ枝に「3」を設定する。
【0073】
ここで、Tsグラフ800を表わす具体的なグラフ情報のデータ構造について説明する。図9および図10は、グラフ情報のデータ構造を示す説明図である。図9において、グラフ情報900は、ノードN1,N2,Na〜Ndごとに、ノード名、フラグおよびノードタイプに関する情報を有している。例えば、ノードN1は、フラグがONに設定された配線経路である。フラグに関する詳細な説明は後述する。
【0074】
また、図10において、グラフ情報1000は、ノードN1,N2ごとに、境界線を表わすノードNa〜Ndとの距離に関する情報を有している。このグラフ情報1000を参照することで、ノード間の距離を特定することができる。上述したTsグラフ800は、図9および図10に示したグラフ情報900,1000によって表現することができる。
【0075】
つぎに、グラフ情報900,1000を用いて、配線経路710の一部と巡回路720の一部とを通過してソースSからターゲットTまで辿り着くまでの最長配線経路を探索する。まず、グラフ情報900の全ノードのフラグをOFFに設定する。つぎに、ソースS,ターゲットTを含むノードN1のフラグをONに設定する。
【0076】
このあと、グラフ情報1000が有するノード間の距離を用いて、ノードN1→ノードN2→ノードN1と遷移した場合に、最も迂回の小さい戻り経路を探索する。具体的には、ノードNa〜Ndの中から、ノードN1からノードN2に遷移する際に経由する接続ポイントおよびノードN2からノードN1に遷移する際に経由する接続ポイントとなる2つのノードNa〜Ndを選択し、ノードN1→ノードN2→ノードN1と遷移した場合のコストを計算する。
【0077】
例えば、ノードNa〜Ndの中からノードNa,Nbが選択されたとすると、ノードN1→ノードNa→ノードN2→ノードNb→ノードN1と遷移する場合のコストを計算する。具体的には、N1−Na間の距離(0)とN2−Na間の距離(1)とを加算した値(1)から、N2−Nb間の距離(2)とN1−Nb間の距離(1)とを加算した値(3)を減算した値(−2)をコストとする。
【0078】
具体的には、N1−Na間の距離(0)とN2−Na間の距離(1)とを加算した値(1)は、配線経路710と巡回路720とを繋ぎ換えた際に増加する配線経路長である。また、N2−Nb間の距離(2)とN1−Nb間の距離(1)とを加算した値(3)は、配線経路710と巡回路720とを繋ぎ換えた際に減少する配線経路長である。
【0079】
このコストを接続ポイントとなる全組み合わせ『Na−Nb,Na−Nc,Na−Nd,Nb−Nc,Nb−Nd,Nc−Nd』について求めて、コストが最大(配線経路長の減少分が最小)の組み合わせを接続ポイントの組み合わせとして決定する。ここでは、『Na−Nb』の組み合わせが、最大のコストとなる。この結果、ノードN1→ノードNa→ノードN2→ノードNb→ノードN1の遷移に従って、配線領域600内のグリッドを辿る配線経路を最長配線経路に決定する。
【0080】
ここで、第2の探索処理の探索結果の具体例について説明する。図11は、第2の探索処理の探索結果の具体例を示す説明図である。図11において、符号1100は、配線経路710の一部と巡回路720の一部とを通過してソースSからターゲットTまで辿り着くまでの最長配線経路(上述したノードN1→ノードNa→ノードN2→ノードNb→ノードN1に相当)である。
【0081】
なお、巡回路720と隣接する他の巡回路が存在する場合には、最長配線経路1100が探索された結果、さらに、最長配線経路1100の一部と他の巡回路の一部とを通過してソースSからターゲットTまで辿り着くまでの最長配線経路を探索することとなる。
【0082】
図12は、複数の巡回路の一部を通過する最長配線経路の一例を示す説明図である。図12において、(1)には、ソースSとターゲットTとを接続する配線経路Hおよび巡回路J1〜Jnが示されている。この場合、配線経路Hと隣接する巡回路J1から順に探索部501による第2の探索処理を実行して、ソースSからターゲットTに辿り着くまでの最長配線経路を探索する。
【0083】
この結果、(2)に示すように、配線経路Hの一部と巡回路J1〜Jnの一部(J’1〜J’n)とを通過してソースSからターゲットTに辿り着くまでの最長配線経路Iが探索される。このとき、探索が終了した巡回路J1〜Jnのフラグ(グラフ情報900のフラグに相当)をONに設定することにより、未探索の巡回路J1〜Jnを認識することができる。
【0084】
図5の説明に戻り、出力部504は、探索部501によって探索された最長配線経路を出力する機能を有する。具体的には、例えば、最長配線経路が通過するグリッドを特定するラベルの接続関係を表わす探索結果を出力することとしてもよい。ここで、出力部504によって出力される出力例について説明する。
【0085】
図13は、探索結果の出力例を示す説明図である。図13において、最長配線経路1100(図11参照)を表わす探索結果1300が示されている。探索結果1300は、接続関係を有するグリッドを特定するラベル情報を有している。
【0086】
これにより、最長配線経路1100は、R7→R8→R9→R6→R5→R4→R1→R2→R3を通過する配線経路であると特定することができる。なお、各ラベルR1〜R9の座標位置は、配線領域の配線情報に含まれている座標テーブルを参照することで認識することができる。
【0087】
また、算出部502は、探索部501によって探索された最長配線経路の配線経路長を算出する機能を有する。そして、判定部503は、算出部502によって算出された最長配線経路の配線経路長が、仕様の回路特性を満たす配線経路長以上か否かを判定する機能を有する。
【0088】
すなわち、配線経路と巡回路とを繋ぎ換えることで単一の最長配線経路が探索された結果、仕様の回路特性を満たす配線経路長を実現できるか否かを判定する。ここで、仕様の回路特性を満たす配線経路長未満と判定された場合には、例えば、上述したエラーメッセージを出力することとしてもよい。
【0089】
また、判定部503は、最長配線経路の配線経路長と、仕様の回路特性を満たす配線経路長との差分が予め設定された許容範囲内か否かを判定することとしてもよい。具体的には、配線制約として、指定配線経路長と完全一致ではなく、回路特性を満たす程度の誤差を許容範囲として設定する。許容範囲は、例えば、図1に示したキーボード121やマウス122などの入力装置120をユーザが操作することで、任意に設定可能である。
【0090】
また、変更部505は、判定部503によって許容範囲外と判定された場合、最長配線経路を許容範囲内の配線経路長となるように変更する機能を有する。具体的には、例えば、図12に示した最長配線経路Iの一部であるJ’1〜J’nを、末端のJ’nから順に切り離すことで最長配線経路Iの配線経路長を調整することとしてもよい。
【0091】
さらに、例えば、末端のJ’nを切り離した結果、最長配線経路Iの配線経路長が、仕様の回路特性を満たす配線経路長よりも短くなった場合には、最長配線経路Iの一部を所定の配線領域内の空き領域で迂回させて配線経路長を調整することとしてもよい。また、出力部504は、変更部505によって変更された変更後の最長配線経路を出力する機能を有する。
【0092】
分割部506は、所定の配線領域を、障害物を含まない第1の配線領域と、障害物を含む第2の配線領域とに分割する機能を有する。これは、配線経路の配線経路長および巡回路の配線経路長を合わせた配線経路長と、実際の最長配線経路の配線経路長との誤差を低減させるためにおこなう。特に、大規模な配線領域を扱う場合に有効である。
【0093】
具体的には、例えば、分割部506は、配線情報300に基づいて、所定の配線領域を区切る境界線に沿ってカットラインを設定することで、障害物を含まない第1の配線領域と、障害物を含む第2の配線領域とに分割する。このとき、例えば、障害物(配線禁止領域)を含まない領域ができる限り広くなるように所定の配線領域を分割することとしてもよい。
【0094】
また、カットラインの設定位置は、例えば、配線禁止領域から1グリッド以上離した位置に設定することとしてもよい。どうしても配線禁止領域に接する位置にカットラインを設定しなければならない場合には、2つの配線禁止領域の間に配線可能領域が存在する状況が連続するのを回避することとしてもよい。
【0095】
なお、配線領域上のカットラインの設定位置を表わすカットライン情報は、例えば、グリッドの座標位置によって表現することとしてもよい。このカットライン情報は、分割部506によって分割された結果、上記記憶部に記憶される。そして、カットライン情報を記憶部から読み出すことで、第1および第2の配線領域を認識することができる。
【0096】
また、上記探索部501、算出部502および判定部503は、分割部506によって所定の配線領域が第1および第2の配線領域に分割された場合、第1および第2の配線領域ごとに、探索処理、算出処理および判定処理を実行することとなる。ここで、所定の配線領域内を第1および第2の配線領域に分割した場合の一連の処理の流れについて説明する。
【0097】
図14は、分割時の一連の処理の流れを示す説明図である。図14において、配線領域1400が、カットラインCにより第1の配線領域1410と第2の配線領域1420とに分割されている。また、第1の配線領域1410内に配線経路1430が、第2の配線領域1420内に巡回路1440が探索済みである。
【0098】
ここでは、カットラインCに接する配線禁止領域(ラベルR16,R17,R19)の間に配線可能領域R15,R17が存在している。この場合、これら配線可能領域R15,R17を仮想端子V1,V2として扱うことで、配線経路1430と巡回路1440とを接続する。この結果、配線経路1450と巡回路1460,1470とが探索される。
【0099】
最後に、配線経路1450の一部と巡回路1460の一部と、巡回路1470の一部とを通過してソースSからターゲットTに辿り着くまでの最長配線経路1480を探索する。なお、最長配線経路1480が探索された結果、変更部505により、最長配線経路1480を仕様の回路特性を満たす配線経路長となるように変更することとしてもよい。
【0100】
(設計支援装置の設計支援処理手順)
つぎに、本実施の形態にかかる設計支援装置100の設計支援処理手順について説明する。図15は、設計支援装置の設計支援処理手順の一例を示すフローチャートである。図15のフローチャートにおいて、まず、所定の配線領域に関する配線情報が入力されたか否かを判断する(ステップS1501)。
【0101】
ここで、配線情報が入力されるのを待って(ステップS1501:No)、入力された場合(ステップS1501:Yes)、探索部501により、所定の配線領域内に配置された第1および第2の端子を接続する配線経路と、所定の配線領域内でかつ該配線経路と非接続な巡回路とを探索する第1の探索処理を実行する(ステップS1502)。
【0102】
このあと、算出部502により、ステップS1502において探索された配線経路の配線経路長と巡回路の配線経路長とを合わせた配線経路長を算出する(ステップS1503)。そして、判定部503により、ステップS1503において算出された配線経路長が、仕様の回路特性を満たす配線経路長以上か否かを判定する(ステップS1504)。
【0103】
ここで、仕様の回路特性を満たす配線経路長以上であった場合(ステップS1504:Yes)、探索部501により、配線経路の一部と巡回路の一部とを通過して第1の端子から第2の端子に辿り着くまでの最長配線経路を探索する第2の探索処理を実行する(ステップS1505)。
【0104】
このあと、算出部502により、ステップS1505において探索された最長配線経路の配線経路長を算出する(ステップS1506)。そして、判定部503により、ステップS1506において算出された配線経路長が、仕様の回路特性を満たす配線経路長以上か否かを判定する(ステップS1507)。
【0105】
ここで、仕様の回路特性を満たす配線経路長以上であった場合(ステップS1507:Yes)、判定部503により、最長配線経路の配線経路長と、仕様の回路特性を満たす配線経路長との差分が予め設定された許容範囲内か否かを判定する(ステップS1508)。
【0106】
ここで、許容範囲外だった場合(ステップS1508:No)、変更部505により、最長配線経路を許容範囲内の配線経路長となるように変更し(ステップS1509)、ステップS1508に戻る。一方、許容範囲内だった場合(ステップS1508:Yes)、出力部504により、最長配線経路を出力して(ステップS1510)、本フローチャートによる一連の処理を終了する。
【0107】
また、ステップS1504において配線経路長未満であった場合(ステップS1504:No)、または、ステップS1507において配線経路長未満であった場合(ステップS1507:No)、出力部504により、仕様の回路特性を満たす配線経路長を満たすことができない旨のエラーメッセージを出力して(ステップS1511)、本フローチャートによる一連の処理を終了する。
【0108】
つぎに、図15に示したステップS1502における第1の探索処理の具体的処理手順について説明する。図16は、第1の探索処理の具体的処理手順の一例を示すフローチャートである。これは、巡回路を含む最長経路探索問題を線形計画問題にモデル化した場合の一例である。
【0109】
図16のフローチャートにおいて、まず、所定の配線領域内の各グリッドがノード化され、ノード間をつなぐ各エッジに変数が割り付けられたグラフを作成する(ステップS1601)。このあと、巡回路を含む最長経路探索問題を線形計画問題にモデル化することで、目的関数および制約式を求める(ステップS1602)。
【0110】
そして、ステップS1602において求めた目的関数および制約式を線形計画ソルバに入力することで(ステップS1603)、所定の配線領域内に配置された第1および第2の端子を接続する配線経路と、所定の配線領域内でかつ上記配線経路と非接続な巡回路とを決定し(ステップS1604)、図15に示したステップS1503に移行する。
【0111】
つぎに、図15に示したステップS1505における第2の探索処理の具体的処理手順について説明する。図17は、第2の探索処理の具体的処理手順の一例を示すフローチャートである。これは、Tsグラフ(例えば、Tsグラフ800)を用いて、最長配線経路を探索する場合の一例である。
【0112】
図17のフローチャートにおいて、まず、第1および第2の端子を接続する配線経路と巡回路とを繋ぎ換える際の接続可能ポイントが表現されたTsグラフを作成する(ステップS1701)。このあと、ステップS1701において作成されたTsグラフを用いて、上記配線経路を表わすノードと巡回路を表わすノードとの間を遷移する際に経由する接続ポイントの組み合わせごとのコストを算出する(ステップS1702)。
【0113】
そして、ステップS1702において算出された組み合わせごとのコストに基づいて、上記配線経路の一部と巡回路の一部とを通過して第1の端子から第2の端子に辿り着くまでの最長配線経路を決定して(ステップS1703)、図15に示したステップS1506に移行する。
【0114】
なお、図15に示したステップS1502において所定の配線領域内に複数の巡回路が探索された場合には、未探索の巡回路がなくなるまで、第1および第2の端子を接続する配線経路と隣接する巡回路から順にステップS1701〜ステップS1703の繰り返し実行することとなる。
【0115】
以上説明したように、本実施の形態によれば、探索困難な端子間の最長配線経路の換わりに、比較的に探索容易な端子間の任意の配線経路と巡回路とを合わせた最長配線経路候補を用いて、所定の配線領域における仕様の回路特性を満たす配線経路長の実現可能性を判定することができる。
【0116】
そして、仕様の回路特性を満たす配線経路長の実現可能な場合は、端子間の任意の配線経路と巡回路とを用いて、端子間の最長配線経路を探索することができる。さらに、仕様の回路特性を満たす配線経路長に従って最長配線経路を自動修正することで、所定の配線領域における仕様の回路特性を満たす配線経路長の配線を実現することができる。
【0117】
また、所定の配線領域を分割して対象となる配線領域を小さくすることで、実際の最長配線経路の配線経路長と、最長配線経路候補の配線経路長との誤差を低減させることができる。この結果、端子間の最長配線経路を精度よく探索でき、所定の配線領域における仕様の回路特性を満たす配線経路長の実現可能性を正確に判定することができる。
【0118】
このように、仕様の回路特性を満たす適切な配線をおこなうことで、無駄な配線リソースを削減し、設計対象回路の小型化を実現することができる。さらに、所定の配線領域における仕様の回路特性を満たす配線長の配線を自動化することにより、作業負担の軽減化および設計期間の短縮化を図ることができる。
【0119】
なお、本実施の形態で説明した設計支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
【0120】
また、本実施の形態で説明した設計支援装置100は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、たとえば、上述した設計支援装置100の機能501〜506をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、設計支援装置100を製造することができる。
【図面の簡単な説明】
【0121】
【図1】本実施の形態にかかる設計支援装置のハードウェア構成を示す説明図である。
【図2】配線領域の具体例を示す説明図である。
【図3】配線情報のデータ構造を示す説明図である。
【図4】座標テーブルの記憶内容を示す説明図である。
【図5】設計支援装置の機能的構成を示すブロック図である。
【図6】第1の探索処理の概要を示す説明図である。
【図7】第1の探索処理の探索結果の具体例を示す説明図である。
【図8】第2の探索処理の概要を示す説明図である。
【図9】グラフ情報のデータ構造を示す説明図(その1)である。
【図10】グラフ情報のデータ構造を示す説明図(その2)である。
【図11】第2の探索処理の探索結果の具体例を示す説明図である。
【図12】複数の巡回路の一部を通過する最長配線経路の一例を示す説明図である。
【図13】探索結果の出力例を示す説明図である。
【図14】分割時の一連の処理の流れを示す説明図である。
【図15】設計支援装置の設計支援処理手順の一例を示すフローチャートである。
【図16】第1の探索処理の具体的処理手順の一例を示すフローチャートである。
【図17】第2の探索処理の具体的処理手順の一例を示すフローチャートである。
【符号の説明】
【0122】
100 設計支援装置
200,600 配線領域
300 配線情報
400 座標テーブル
501 探索部
502 算出部
503 判定部
504 出力部
505 変更部
506 分割部
【技術分野】
【0001】
この発明は、LSIやプリント基板などの設計を支援する設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法に関する。
【背景技術】
【0002】
LSI設計におけるアナログ回路やプリント基板の配線の設計では、仕様の回路特性(R,C)を満たすため、また、ばらつきによる特性変動の影響を削減するために、ミクロン単位での配線制約が与えられる。例えば、差動回路においては、複数配線に対して等長の配線制約が与えられる。
【0003】
一般に、このような配線制約を満たす配線を自動化することは難しいため、人手による試行錯誤を繰り返すことで各配線パターンを決定することとなる。このため、配線作業にかかる作業負担および作業時間が増大してしまい、設計期間の長期化を招く要因となっている。
【0004】
そこで、配線作業を自動化する手法として、下記特許文献1には、複数の既配線回路データの中から最大配線長の配線経路を抽出し、当該配線経路とは異なる他の配線経路の配線長が上記最大配線長となるように、他の配線経路を変更することで、等長配線をおこなう手法が記載されている。
【0005】
また、下記特許文献2には、スター型指定長配線をおこなう接続点のすべての接続点位置に基づいて所定の領域を作成し、上記領域内に所定の条件で経由点候補を生成する。そして、生成された経由点候補について上記接続点すべてがスター型指定長配線をおこなう際の配線条件を満足する経由点候補の中から経由点を探索し、その経由点からピンまでの指定長配線をおこなう手法が記載されている。
【0006】
【特許文献1】特開昭63−271661号公報
【特許文献2】特開平08−36596号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、上述した特許文献1,2に記載の従来技術では、複雑な配線禁止領域(障害物が存在する領域)を取り扱うことはできないという問題がある。なぜなら、配線領域上の障害物(トランジスタ、配線、ビアなど)が増加し設計ルールが複雑化すると、与えられた配線領域内で配線制約を満たす配線を実現することができるか否かを判断することが難しくなるからである。
【0008】
このため、複雑な配線禁止領域を取り扱う場合には、結果的に人手による試行錯誤を繰り返すこととなり、依然として配線作業にかかる作業負担および作業時間が増大し、ひいては設計期間の長期化を招くという問題がある。
【0009】
この発明は、上述した従来技術による問題点を解消するため、所定の配線領域内における仕様の回路特性を満たす配線長の配線を自動化することにより、作業負担の軽減化および設計期間の短縮化を図ることができる設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
上述した課題を解決し、目的を達成するため、この設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法は、所定の配線領域内に配置された第1および第2の端子を接続する配線経路と、前記所定の配線領域内でかつ前記配線経路と非接続な巡回路とを探索し、探索された配線経路の配線経路長と巡回路の配線経路長とを合わせた配線経路長を算出し、算出された配線経路長が、仕様の回路特性を満たす配線経路長以上か否かを判定し、判定された判定結果を出力することを要件とする。
【0011】
この設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法によれば、探索困難な端子間の最長配線経路の換わりに、端子間を接続する任意の配線経路と巡回路とを合わせた最長配線経路候補を用いて、所定の配線領域における仕様の回路特性を満たす配線経路長の実現可能性を判定することができる。
【0012】
また、この設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法において、仕様の回路特性を満たす配線経路長以上と判定された場合、前記配線経路の一部と前記巡回路の一部とを通過して前記第1の端子から前記第2の端子に辿り着くまでの最長配線経路を探索し、探索された最長配線経路を出力することとしてもよい。
【0013】
この設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法によれば、配線経路長を最大限に維持しながら端子間の配線経路と巡回路とを4つの接続ポイントで繋ぎ換えることで、端子間の最長配線経路を探索することができる。
【0014】
また、この設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法において、探索された最長配線経路の配線経路長を算出し、算出された最長配線経路の配線経路長が、前記仕様の回路特性を満たす配線経路長以上か否かを判定することとしてもよい。
【0015】
この設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法によれば、探索された最長配線経路の配線経路長を用いて再判定することで、所定の配線領域における仕様の回路特性を満たす配線経路長の実現可能性をより正確に判定することができる。
【0016】
また、この設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法において、前記最長配線経路の配線経路長と、前記仕様の回路特性を満たす配線経路長との差分が予め設定された許容範囲内か否かを判定し、許容範囲外と判定された場合、前記最長配線経路を前記許容範囲内の配線経路長となるように変更し、変更された変更後の最長配線経路を出力することとしてもよい。
【0017】
この設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法によれば、所定の配線領域における仕様の回路特性を満たす配線経路長の配線を実現することができる。
【0018】
また、この設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法において、前記所定の配線領域を、障害物を含まない第1の配線領域と、障害物を含む第2の配線領域とに分割し、分割された第1および第2の配線領域ごとに、探索処理、算出処理および判定処理を実行することとしてもよい。
【0019】
この設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法によれば、所定の配線領域を分割して対象となる配線領域を小さくすることで、実際の最長配線経路の配線経路長と、端子間の配線経路の配線経路長および巡回路の配線経路長を合わせた配線経路長との誤差を低減させることができる。
【0020】
また、この設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法において、前記第1および第2の配線領域ごとに、探索処理、算出処理および判定処理が実行された結果、前記第1の配線領域内の第1の最長配線経路の一部と前記第2の配線領域内の第2の最長配線経路の一部とを通過して前記第1の端子から前記第2の端子に辿り着くまでの最長配線経路を探索することとしてもよい。
【0021】
この設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法によれば、端子間の最長配線経路を精度よく探索することで、所定の配線領域における仕様の回路特性を満たす配線経路長の実現可能性を正確に判定することができる。
【発明の効果】
【0022】
この設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法によれば、所定の配線領域内における仕様の回路特性を満たす配線長の配線を自動化することにより、作業負担の軽減化および設計期間の短縮化を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【0023】
以下に添付図面を参照して、この設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法の好適な実施の形態を詳細に説明する。
【0024】
(設計支援装置のハードウェア構成)
まず、本実施の形態にかかる設計支援装置のハードウェア構成について説明する。図1は、本実施の形態にかかる設計支援装置のハードウェア構成を示す説明図である。
【0025】
図1において、設計支援装置100は、コンピュータ本体110と、入力装置120と、出力装置130と、から構成されており、不図示のルータやモデムを介してLAN,WANやインターネットなどのネットワーク140に接続可能である。
【0026】
コンピュータ本体110は、CPU,メモリ,インターフェースを有する。CPUは、設計支援装置100の全体の制御を司る。メモリは、ROM,RAM,HD,光ディスク111,フラッシュメモリから構成される。メモリはCPUのワークエリアとして使用される。
【0027】
また、メモリには各種プログラムが格納されており、CPUからの命令に応じてロードされる。HDおよび光ディスク111はディスクドライブによりデータのリード/ライトが制御される。また、光ディスク111およびフラッシュメモリはコンピュータ本体110に対し着脱自在である。インターフェースは、入力装置120からの入力、出力装置130への出力、ネットワーク140に対する送受信の制御をおこなう。
【0028】
また、入力装置120としては、キーボード121、マウス122、スキャナ123などがある。キーボード121は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式であってもよい。マウス122は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。スキャナ123は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体110内のメモリに格納される。なお、スキャナ123にOCR機能を持たせてもよい。
【0029】
また、出力装置130としては、ディスプレイ131、スピーカ132、プリンタ133などがある。ディスプレイ131は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。また、スピーカ132は、効果音や読み上げ音などの音声を出力する。また、プリンタ133は、画像データや文書データを印刷する。
【0030】
(本実施の形態の概要)
つぎに、本実施の形態の概要について説明する。本実施の形態では、LSIやプリント基板のレイアウト処理において、所定の配線領域内における仕様の回路特性を満たす配線長の配線を自動化することにより、作業負担の軽減化および設計期間の短縮化を図る。
【0031】
LSI設計におけるアナログ回路やプリント基板の配線の設計では、仕様の回路特性を満たすため、ミクロン単位での配線制約(指定長、等長配線など)が与えられる。ところが、LSIやプリント基板の高集積化により、配線領域上の障害物(トランジスタ、配線、ビアなど)が増加し設計ルールが複雑化している。
【0032】
このため、端子間の配線形成のために割り付けられた配線領域内における端子間の最長経路探索が困難となり、該配線領域内における仕様の回路特性を満たす配線の実現可能性を判断することが難しくなっている。そこで、所定の配線領域内における仕様の回路特性を満たす配線の実現可能性を効率的かつ効果的に判断する手法を提案する。
【0033】
まず、探索困難な端子間の最長経路の換わりに、巡回路を含む端子間の配線経路を最長経路候補として探索する。そして、その最長経路候補の配線長が、仕様の回路特性を満たす配線長以上であった場合に、仕様の回路特性を満たす配線が実現可能であると判断する。これは、巡回路を含む端子間の配線経路の配線長が、巡回路を含まない端子間の配線経路の配線長以上となるという特性を利用したものである。
【0034】
換言すれば、巡回路を含む端子間の配線経路の配線長が、仕様の回路特性を満たす配線長未満であった場合には、配線制約を満たす配線は実現できないことを意味している。仕様の回路特性を満たす配線が実現不可能と判断された場合は、例えば、上流の工程に戻って各端子の配置位置を変更するなどの修正をおこなうこととなる。
【0035】
一方で、仕様の回路特性を満たす配線が実現可能であると判断された場合には、その仕様の回路特性を満たす配線長に応じて、巡回路を含む配線経路を自動修正し、配線制約を満たす端子間の配線を実現する。これにより、複雑な配線禁止領域(障害物)を含む配線領域を扱うことが可能となり、仕様の回路特性を満たす配線長の配線を自動化することができる。
【0036】
(配線領域の具体例)
ここで、端子間の配線経路を形成するために割り付けられる配線領域の具体例について説明する。図2は、配線領域の具体例を示す説明図である。図2において、配線領域200は、ソースS(第1の端子)とターゲットT(第2の端子)とを接続する配線経路を形成するために割り付けられた配線領域である。
【0037】
配線領域200は、格子状に区切って9個のグリッドに分割されている。グリッドには、各グリッドを特定するためのラベルR1〜R9が付与されている。配線領域200において、ラベルR8,R9が付与されたグリッド(図2中ハッチ部分)は、トランジスタ、配線、ビアなどの障害物が配置された配線禁止領域を示している。なお、配線領域200を分割する格子サイズ(グリッドの大きさ)は、配線のプロセスによって決まる。
【0038】
(配線情報のデータ構造)
つぎに、図2に示した配線領域に関する配線情報のデータ構造について説明する。図3は、配線情報のデータ構造を示す説明図である。図3において、配線情報300は、グリッド数、ソースS、ターゲットT、配線禁止領域および各グリッドの座標位置に関する情報を有している。
【0039】
グリッド数は、配線領域200(図2参照)のX方向およびY方向のグリッド数を表わしている。ソースSは、始点端子の配置位置を表わしている。ここでは、ラベルR7のグリッドに始点端子が配置されている。ターゲットTは、終点端子の配置位置を表わしている。ここでは、ラベルR3のグリッドに終点端子が配置されている。
【0040】
配線禁止領域は、トランジスタ、配線、ビアなどの障害物が配置され、新たな配線を形成することができないグリッドを表わしている。ここでは、ラベルR8,R9のグリッドが配線禁止領域となっている。また、配線情報300には、各グリッドの座標位置を認識するための座標データ(例えば、図4に示す座標テーブル400)が含まれている。
【0041】
図4は、座標テーブルの記憶内容を示す説明図である。図4において、座標テーブル400は、グリッドごとに、ラベル名および座標位置に関する情報を記憶している。この座標テーブル400を参照することで、各グリッドの座標位置を認識することができる。例えば、ラベルR1のグリッドの座標位置は(X,Y)=(1,1)である。
【0042】
(設計支援装置の機能的構成)
つぎに、設計支援装置100の機能的構成について説明する。図5は、設計支援装置の機能的構成を示すブロック図である。図5において、設計支援装置100は、探索部501と、算出部502と、判定部503と、出力部504と、変更部505と、分割部506と、を備えている。
【0043】
これら各機能501〜506は、設計支援装置100の記憶部に記憶された当該機能501〜506に関するプログラムをCPUに実行させることにより、または、入出力I/Fにより、当該機能を実現することができる。また、各機能501〜506からの出力データは上記記憶部に保持される。また、図5中矢印で示した接続先の機能は、接続元の機能からの出力データを記憶部から読み込んで、当該機能に関するプログラムをCPUに実行させるものとする。
【0044】
まず、探索部501は、所定の配線領域内に配置された第1および第2の端子を接続する配線経路と、所定の配線領域内でかつ配線経路と非接続な巡回路とを探索する機能を有する。所定の配線領域とは、設計対象回路内の2つの端子ごとに割り付けられる配線領域である。例えば、レイアウトツールを実行することで、第1および第2の端子に所定の配線領域を自動的に割り付けることができる。また、巡回路とは、ループ状の配線経路である。この順回路は、所定の配線領域内のうち第1および第2の端子を接続する配線経路が形成された領域を除く残余の領域に形成される。
【0045】
具体的には、例えば、探索部501は、所定の配線領域に関する配線領域情報と、該配線領域内の配線禁止領域を表わす配線禁止情報と、第1および第2の端子に関する接続端子情報とに基づいて、第1および第2の端子を接続する配線経路と巡回路とを探索する。これら配線領域情報、配線禁止情報および接続端子情報として、例えば、図3に示した配線情報300を用いることができる。なお、配線情報300は、設計支援装置100に直接入力することとしてもよく、また、不図示の外部装置からの取得、不図示のデータベースやライブラリからの抽出によって取得することとしてもよい。
【0046】
ここで、探索部501による第1および第2の端子を接続する配線経路と巡回路とを探索する第1の探索処理の具体例について説明する。図6は、第1の探索処理の概要を示す説明図である。ここでは、配線領域600内のソースSとターゲットTとを接続する配線経路と、配線領域600内でかつ該配線経路と非接続な巡回路とを探索する。
【0047】
まず、配線領域600内の各グリッドがノード化され、ノード間をつなぐ各エッジに変数x1〜x12が割り付けられたグラフ610を作成する。グラフ610における各ノードの配置位置は、配線領域600における各グリッドの配置位置に対応している。例えば、ノードe1とソースSが配置されたグリッドとが対応している。
【0048】
以下、グラフ610を用いて、ソースSからターゲットTに辿り着くまでの配線経路および巡回路を探索する。なお、前提条件として、グラフ610内において、引き返しは不可とし、同じグリッドに2回辿り着いた時点で探索を終了することとする。
【0049】
具体的には、巡回路を含む最長経路探索問題を線形計画問題にモデル化する。より具体的には、巡回路を含む最長経路探索問題を整数計画問題にモデル化し、その整数計画問題を線形計画問題に緩和する。まず、整数計画問題を定式化すると、目的関数は下記式(1)となり、制約式は下記式(2)〜(5)となる。ただし、diは区間iの距離である。また、xi=1は区間iを通過、xi=0は区間iを通過しないことを意味している。
【0050】
max.Σ{di・xi|iは区間} …(1)
【0051】
Σ{ei|iは終端ノード}=2 …(2)
【0052】
bi∈{0,2}(ただし、biは任意の分岐ノード) …(3)
【0053】
ei∈{1}(ただし、eiは2つの始点終点ノード) …(4)
【0054】
xi∈{0,1}(ただし、xiは任意のエッジ) …(5)
【0055】
つぎに、この整数計画問題を線形計画問題に緩和する。具体的には、上記の制約式を線形計画制約によって表現する。ここで、グラフ610内の代表ノード(始点終点ノード、3分岐ノード、4分岐ノード)を例に挙げて、上記式(3)および(5)を線形計画制約によって表現した制約式について説明する。
【0056】
まず、グラフ610内のノードe1(始点ノード)を例に挙げると、制約式は『+x1+x7=1,0≦x1≦1,0≦x7≦1』となる。つぎに、ノードe2(終点ノード)を例に挙げると、制約式は『+x6+x12=1,0≦x6≦1,0≦x12≦1』となる。
【0057】
つぎに、ノードb3(3分岐)を例に挙げると、『−x3+x7+x8≧0,+x3−x7+x8≧0,+x3+x7−x8≧0,+x3+x7+x8≦2,0≦x3≦1,0≦x7≦1,0≦x8≦1』となる。
【0058】
つぎに、ノードb4(4分岐)を例に挙げると、『−x3+x4+x9+x10≧0,+x3−x4+x9+x10≧0,+x3+x4−x9+x10≧0,+x3+x4+x9−x10≧0,+x3+x4+x9+x10≦2,0≦x3≦1,0≦x4≦1,0≦x9≦1,0≦x10≦1』となる。
【0059】
このあと、上記式(1)で示した目的関数と、グラフ610内のノードごとに線形計画制約で表現した制約式と、を線形計画ソルバに入力することで、ソースSからターゲットTに辿り着くまでの巡回路を含む最長経路を求めることができる。なお、線形計画問題に緩和したため、各変数は必ずしも0または1に収束しない。このため、ここでは0と1の間の中間値をとる変数を、近傍の配線と接続されるように0または1に修正することとする。
【0060】
ここで、第1の探索処理の探索結果の具体例について説明する。図7は、第1の探索処理の探索結果の具体例を示す説明図である。図7において、配線領域600には、第1の探索処理の探索結果である、ソースSとターゲットTとを接続する配線経路710と巡回路720とが示されている。
【0061】
図5の説明に戻り、算出部502は、探索部501によって探索された配線経路の配線経路長と巡回路の配線経路長とを合わせた配線経路長を算出する機能を有する。具体的には、例えば、配線経路および巡回路が通過するグリッド数を配線経路長とすることとしてもよく、また、上記式(1)を用いて求めた値を配線経路長とすることとしてもよい。
【0062】
判定部503は、算出部502によって算出された配線経路長が、仕様の回路特性を満たす配線経路長以上か否かを判定する機能を有する。仕様の回路特性を満たす配線経路長とは、例えば、設計対象回路の仕様として規定された配線制約であり、特定の配線経路長である。なお、仕様の回路特性を満たす配線経路長は、例えば、ROMやRAMなどの記憶部に記憶されている。
【0063】
出力部504は、判定部503によって判定された判定結果を出力する機能を有する。例えば、仕様の回路特性を満たす配線経路長未満と判定された場合には、割り付けられた配線領域内で仕様の回路特性を満たす配線経路長を満たすことができない旨のエラーメッセージを出力することとしてもよい。なお、出力部504による出力形式は、ディスプレイ131での画面表示、プリンタ133での印刷出力、メモリへのデータ出力(保存)、外部のコンピュータ装置への送信のいずれであってもよい。
【0064】
設計者は、このエラーメッセージを確認することで、第1および第2の端子に割り付けられた配線領域内において配線制約を満たす配線が実現できないことを認識することができる。これにより、上流の工程に戻って第1および第2の端子の配置位置を変更するなどの対策を適切かつ迅速におこなうことができる。
【0065】
また、探索部501は、判定部503によって配線経路長以上と判定された場合、配線経路の一部と巡回路の一部とを通過して第1の端子から第2の端子に辿り着くまでの最長配線経路を探索する機能を有する。具体的には、4つの接続ポイントで配線経路と巡回路とを繋ぎ換えることで、最大限に配線経路長を維持した単一の最長配線経路を探索する。
【0066】
ここで、探索部501による最長配線経路を探索する第2の探索処理の具体例について説明する。ここでは、図7に示した探索結果を例に挙げて説明する。図8は、第2の探索処理の概要を示す説明図である。最長配線経路を探索する場合、図8に示すターンアウトスイッチグラフ(以下、「Tsグラフ」と表記)800を作成する。
【0067】
Tsグラフ800は、配線経路710と巡回路720とを繋ぎ換える際の接続可能ポイントが表現されたグラフである。具体的には、まず、配線領域600を区切る境界線の中から、配線経路710と巡回路720との間の境界線を検出する。例えば、配線経路710のソースSからターゲットTに辿り着くまでのグリッドごとに、巡回路720との間の境界線を検出する。そして、境界線が検出された都度、その境界線にエッジIDを割り付ける。
【0068】
ここで、ソースSが配置されたグリッドを例に挙げると、巡回路720との間の境界線810を検出し、その境界線810にエッジaを割り付ける。このように、境界線が検出された都度、エッジID(図8では、エッジa〜d)を割り付けることで、配線経路710と巡回路720との間の境界線を認識することができる。
【0069】
このあと、配線経路710、巡回路720、エッジa〜dがノード化されたTsグラフ800を作成する。具体的には、配線経路710を表わすノードN1と、巡回路720を表わすノードN2とが、エッジa〜dを表わすノードNa〜Ndを介して接続されたTsグラフ800を作成する。
【0070】
つぎに、配線経路710および巡回路720の原点を設定する。原点の位置は任意に設定可能である。ここでは、配線経路710の原点をソースS(以下、「原点S」と表記)に設定し、巡回路720の原点を点A(以下、「原点A」と表記)に設定する。
【0071】
さらに、配線経路710の経路上を辿って原点Sから各エッジa〜dに辿り着くまでの距離を求めて、ノード間をつなぐ各枝に設定する。例えば、原点Sからエッジaまでの距離は「0」のため、ノードN1とノードNaとをつなぐ枝に「0」を設定する。また、原点Sからエッジdまでの距離は「4」のため、ノードN1とノードNdとをつなぐ枝に「4」を設定する。
【0072】
同様に、巡回路720の経路上を辿って原点Aから各エッジa〜dに辿り着くまでの距離を求めて、ノード間をつなぐ各枝に設定する。このとき、時計回りに巡回路720の経路上を辿ることとする。例えば、原点Aからエッジaまでの距離は「1」のため、ノードN2とノードNaとをつなぐ枝に「1」を設定する。また、原点Aからエッジdまでの距離は「3」のため、ノードN2とノードNdとをつなぐ枝に「3」を設定する。
【0073】
ここで、Tsグラフ800を表わす具体的なグラフ情報のデータ構造について説明する。図9および図10は、グラフ情報のデータ構造を示す説明図である。図9において、グラフ情報900は、ノードN1,N2,Na〜Ndごとに、ノード名、フラグおよびノードタイプに関する情報を有している。例えば、ノードN1は、フラグがONに設定された配線経路である。フラグに関する詳細な説明は後述する。
【0074】
また、図10において、グラフ情報1000は、ノードN1,N2ごとに、境界線を表わすノードNa〜Ndとの距離に関する情報を有している。このグラフ情報1000を参照することで、ノード間の距離を特定することができる。上述したTsグラフ800は、図9および図10に示したグラフ情報900,1000によって表現することができる。
【0075】
つぎに、グラフ情報900,1000を用いて、配線経路710の一部と巡回路720の一部とを通過してソースSからターゲットTまで辿り着くまでの最長配線経路を探索する。まず、グラフ情報900の全ノードのフラグをOFFに設定する。つぎに、ソースS,ターゲットTを含むノードN1のフラグをONに設定する。
【0076】
このあと、グラフ情報1000が有するノード間の距離を用いて、ノードN1→ノードN2→ノードN1と遷移した場合に、最も迂回の小さい戻り経路を探索する。具体的には、ノードNa〜Ndの中から、ノードN1からノードN2に遷移する際に経由する接続ポイントおよびノードN2からノードN1に遷移する際に経由する接続ポイントとなる2つのノードNa〜Ndを選択し、ノードN1→ノードN2→ノードN1と遷移した場合のコストを計算する。
【0077】
例えば、ノードNa〜Ndの中からノードNa,Nbが選択されたとすると、ノードN1→ノードNa→ノードN2→ノードNb→ノードN1と遷移する場合のコストを計算する。具体的には、N1−Na間の距離(0)とN2−Na間の距離(1)とを加算した値(1)から、N2−Nb間の距離(2)とN1−Nb間の距離(1)とを加算した値(3)を減算した値(−2)をコストとする。
【0078】
具体的には、N1−Na間の距離(0)とN2−Na間の距離(1)とを加算した値(1)は、配線経路710と巡回路720とを繋ぎ換えた際に増加する配線経路長である。また、N2−Nb間の距離(2)とN1−Nb間の距離(1)とを加算した値(3)は、配線経路710と巡回路720とを繋ぎ換えた際に減少する配線経路長である。
【0079】
このコストを接続ポイントとなる全組み合わせ『Na−Nb,Na−Nc,Na−Nd,Nb−Nc,Nb−Nd,Nc−Nd』について求めて、コストが最大(配線経路長の減少分が最小)の組み合わせを接続ポイントの組み合わせとして決定する。ここでは、『Na−Nb』の組み合わせが、最大のコストとなる。この結果、ノードN1→ノードNa→ノードN2→ノードNb→ノードN1の遷移に従って、配線領域600内のグリッドを辿る配線経路を最長配線経路に決定する。
【0080】
ここで、第2の探索処理の探索結果の具体例について説明する。図11は、第2の探索処理の探索結果の具体例を示す説明図である。図11において、符号1100は、配線経路710の一部と巡回路720の一部とを通過してソースSからターゲットTまで辿り着くまでの最長配線経路(上述したノードN1→ノードNa→ノードN2→ノードNb→ノードN1に相当)である。
【0081】
なお、巡回路720と隣接する他の巡回路が存在する場合には、最長配線経路1100が探索された結果、さらに、最長配線経路1100の一部と他の巡回路の一部とを通過してソースSからターゲットTまで辿り着くまでの最長配線経路を探索することとなる。
【0082】
図12は、複数の巡回路の一部を通過する最長配線経路の一例を示す説明図である。図12において、(1)には、ソースSとターゲットTとを接続する配線経路Hおよび巡回路J1〜Jnが示されている。この場合、配線経路Hと隣接する巡回路J1から順に探索部501による第2の探索処理を実行して、ソースSからターゲットTに辿り着くまでの最長配線経路を探索する。
【0083】
この結果、(2)に示すように、配線経路Hの一部と巡回路J1〜Jnの一部(J’1〜J’n)とを通過してソースSからターゲットTに辿り着くまでの最長配線経路Iが探索される。このとき、探索が終了した巡回路J1〜Jnのフラグ(グラフ情報900のフラグに相当)をONに設定することにより、未探索の巡回路J1〜Jnを認識することができる。
【0084】
図5の説明に戻り、出力部504は、探索部501によって探索された最長配線経路を出力する機能を有する。具体的には、例えば、最長配線経路が通過するグリッドを特定するラベルの接続関係を表わす探索結果を出力することとしてもよい。ここで、出力部504によって出力される出力例について説明する。
【0085】
図13は、探索結果の出力例を示す説明図である。図13において、最長配線経路1100(図11参照)を表わす探索結果1300が示されている。探索結果1300は、接続関係を有するグリッドを特定するラベル情報を有している。
【0086】
これにより、最長配線経路1100は、R7→R8→R9→R6→R5→R4→R1→R2→R3を通過する配線経路であると特定することができる。なお、各ラベルR1〜R9の座標位置は、配線領域の配線情報に含まれている座標テーブルを参照することで認識することができる。
【0087】
また、算出部502は、探索部501によって探索された最長配線経路の配線経路長を算出する機能を有する。そして、判定部503は、算出部502によって算出された最長配線経路の配線経路長が、仕様の回路特性を満たす配線経路長以上か否かを判定する機能を有する。
【0088】
すなわち、配線経路と巡回路とを繋ぎ換えることで単一の最長配線経路が探索された結果、仕様の回路特性を満たす配線経路長を実現できるか否かを判定する。ここで、仕様の回路特性を満たす配線経路長未満と判定された場合には、例えば、上述したエラーメッセージを出力することとしてもよい。
【0089】
また、判定部503は、最長配線経路の配線経路長と、仕様の回路特性を満たす配線経路長との差分が予め設定された許容範囲内か否かを判定することとしてもよい。具体的には、配線制約として、指定配線経路長と完全一致ではなく、回路特性を満たす程度の誤差を許容範囲として設定する。許容範囲は、例えば、図1に示したキーボード121やマウス122などの入力装置120をユーザが操作することで、任意に設定可能である。
【0090】
また、変更部505は、判定部503によって許容範囲外と判定された場合、最長配線経路を許容範囲内の配線経路長となるように変更する機能を有する。具体的には、例えば、図12に示した最長配線経路Iの一部であるJ’1〜J’nを、末端のJ’nから順に切り離すことで最長配線経路Iの配線経路長を調整することとしてもよい。
【0091】
さらに、例えば、末端のJ’nを切り離した結果、最長配線経路Iの配線経路長が、仕様の回路特性を満たす配線経路長よりも短くなった場合には、最長配線経路Iの一部を所定の配線領域内の空き領域で迂回させて配線経路長を調整することとしてもよい。また、出力部504は、変更部505によって変更された変更後の最長配線経路を出力する機能を有する。
【0092】
分割部506は、所定の配線領域を、障害物を含まない第1の配線領域と、障害物を含む第2の配線領域とに分割する機能を有する。これは、配線経路の配線経路長および巡回路の配線経路長を合わせた配線経路長と、実際の最長配線経路の配線経路長との誤差を低減させるためにおこなう。特に、大規模な配線領域を扱う場合に有効である。
【0093】
具体的には、例えば、分割部506は、配線情報300に基づいて、所定の配線領域を区切る境界線に沿ってカットラインを設定することで、障害物を含まない第1の配線領域と、障害物を含む第2の配線領域とに分割する。このとき、例えば、障害物(配線禁止領域)を含まない領域ができる限り広くなるように所定の配線領域を分割することとしてもよい。
【0094】
また、カットラインの設定位置は、例えば、配線禁止領域から1グリッド以上離した位置に設定することとしてもよい。どうしても配線禁止領域に接する位置にカットラインを設定しなければならない場合には、2つの配線禁止領域の間に配線可能領域が存在する状況が連続するのを回避することとしてもよい。
【0095】
なお、配線領域上のカットラインの設定位置を表わすカットライン情報は、例えば、グリッドの座標位置によって表現することとしてもよい。このカットライン情報は、分割部506によって分割された結果、上記記憶部に記憶される。そして、カットライン情報を記憶部から読み出すことで、第1および第2の配線領域を認識することができる。
【0096】
また、上記探索部501、算出部502および判定部503は、分割部506によって所定の配線領域が第1および第2の配線領域に分割された場合、第1および第2の配線領域ごとに、探索処理、算出処理および判定処理を実行することとなる。ここで、所定の配線領域内を第1および第2の配線領域に分割した場合の一連の処理の流れについて説明する。
【0097】
図14は、分割時の一連の処理の流れを示す説明図である。図14において、配線領域1400が、カットラインCにより第1の配線領域1410と第2の配線領域1420とに分割されている。また、第1の配線領域1410内に配線経路1430が、第2の配線領域1420内に巡回路1440が探索済みである。
【0098】
ここでは、カットラインCに接する配線禁止領域(ラベルR16,R17,R19)の間に配線可能領域R15,R17が存在している。この場合、これら配線可能領域R15,R17を仮想端子V1,V2として扱うことで、配線経路1430と巡回路1440とを接続する。この結果、配線経路1450と巡回路1460,1470とが探索される。
【0099】
最後に、配線経路1450の一部と巡回路1460の一部と、巡回路1470の一部とを通過してソースSからターゲットTに辿り着くまでの最長配線経路1480を探索する。なお、最長配線経路1480が探索された結果、変更部505により、最長配線経路1480を仕様の回路特性を満たす配線経路長となるように変更することとしてもよい。
【0100】
(設計支援装置の設計支援処理手順)
つぎに、本実施の形態にかかる設計支援装置100の設計支援処理手順について説明する。図15は、設計支援装置の設計支援処理手順の一例を示すフローチャートである。図15のフローチャートにおいて、まず、所定の配線領域に関する配線情報が入力されたか否かを判断する(ステップS1501)。
【0101】
ここで、配線情報が入力されるのを待って(ステップS1501:No)、入力された場合(ステップS1501:Yes)、探索部501により、所定の配線領域内に配置された第1および第2の端子を接続する配線経路と、所定の配線領域内でかつ該配線経路と非接続な巡回路とを探索する第1の探索処理を実行する(ステップS1502)。
【0102】
このあと、算出部502により、ステップS1502において探索された配線経路の配線経路長と巡回路の配線経路長とを合わせた配線経路長を算出する(ステップS1503)。そして、判定部503により、ステップS1503において算出された配線経路長が、仕様の回路特性を満たす配線経路長以上か否かを判定する(ステップS1504)。
【0103】
ここで、仕様の回路特性を満たす配線経路長以上であった場合(ステップS1504:Yes)、探索部501により、配線経路の一部と巡回路の一部とを通過して第1の端子から第2の端子に辿り着くまでの最長配線経路を探索する第2の探索処理を実行する(ステップS1505)。
【0104】
このあと、算出部502により、ステップS1505において探索された最長配線経路の配線経路長を算出する(ステップS1506)。そして、判定部503により、ステップS1506において算出された配線経路長が、仕様の回路特性を満たす配線経路長以上か否かを判定する(ステップS1507)。
【0105】
ここで、仕様の回路特性を満たす配線経路長以上であった場合(ステップS1507:Yes)、判定部503により、最長配線経路の配線経路長と、仕様の回路特性を満たす配線経路長との差分が予め設定された許容範囲内か否かを判定する(ステップS1508)。
【0106】
ここで、許容範囲外だった場合(ステップS1508:No)、変更部505により、最長配線経路を許容範囲内の配線経路長となるように変更し(ステップS1509)、ステップS1508に戻る。一方、許容範囲内だった場合(ステップS1508:Yes)、出力部504により、最長配線経路を出力して(ステップS1510)、本フローチャートによる一連の処理を終了する。
【0107】
また、ステップS1504において配線経路長未満であった場合(ステップS1504:No)、または、ステップS1507において配線経路長未満であった場合(ステップS1507:No)、出力部504により、仕様の回路特性を満たす配線経路長を満たすことができない旨のエラーメッセージを出力して(ステップS1511)、本フローチャートによる一連の処理を終了する。
【0108】
つぎに、図15に示したステップS1502における第1の探索処理の具体的処理手順について説明する。図16は、第1の探索処理の具体的処理手順の一例を示すフローチャートである。これは、巡回路を含む最長経路探索問題を線形計画問題にモデル化した場合の一例である。
【0109】
図16のフローチャートにおいて、まず、所定の配線領域内の各グリッドがノード化され、ノード間をつなぐ各エッジに変数が割り付けられたグラフを作成する(ステップS1601)。このあと、巡回路を含む最長経路探索問題を線形計画問題にモデル化することで、目的関数および制約式を求める(ステップS1602)。
【0110】
そして、ステップS1602において求めた目的関数および制約式を線形計画ソルバに入力することで(ステップS1603)、所定の配線領域内に配置された第1および第2の端子を接続する配線経路と、所定の配線領域内でかつ上記配線経路と非接続な巡回路とを決定し(ステップS1604)、図15に示したステップS1503に移行する。
【0111】
つぎに、図15に示したステップS1505における第2の探索処理の具体的処理手順について説明する。図17は、第2の探索処理の具体的処理手順の一例を示すフローチャートである。これは、Tsグラフ(例えば、Tsグラフ800)を用いて、最長配線経路を探索する場合の一例である。
【0112】
図17のフローチャートにおいて、まず、第1および第2の端子を接続する配線経路と巡回路とを繋ぎ換える際の接続可能ポイントが表現されたTsグラフを作成する(ステップS1701)。このあと、ステップS1701において作成されたTsグラフを用いて、上記配線経路を表わすノードと巡回路を表わすノードとの間を遷移する際に経由する接続ポイントの組み合わせごとのコストを算出する(ステップS1702)。
【0113】
そして、ステップS1702において算出された組み合わせごとのコストに基づいて、上記配線経路の一部と巡回路の一部とを通過して第1の端子から第2の端子に辿り着くまでの最長配線経路を決定して(ステップS1703)、図15に示したステップS1506に移行する。
【0114】
なお、図15に示したステップS1502において所定の配線領域内に複数の巡回路が探索された場合には、未探索の巡回路がなくなるまで、第1および第2の端子を接続する配線経路と隣接する巡回路から順にステップS1701〜ステップS1703の繰り返し実行することとなる。
【0115】
以上説明したように、本実施の形態によれば、探索困難な端子間の最長配線経路の換わりに、比較的に探索容易な端子間の任意の配線経路と巡回路とを合わせた最長配線経路候補を用いて、所定の配線領域における仕様の回路特性を満たす配線経路長の実現可能性を判定することができる。
【0116】
そして、仕様の回路特性を満たす配線経路長の実現可能な場合は、端子間の任意の配線経路と巡回路とを用いて、端子間の最長配線経路を探索することができる。さらに、仕様の回路特性を満たす配線経路長に従って最長配線経路を自動修正することで、所定の配線領域における仕様の回路特性を満たす配線経路長の配線を実現することができる。
【0117】
また、所定の配線領域を分割して対象となる配線領域を小さくすることで、実際の最長配線経路の配線経路長と、最長配線経路候補の配線経路長との誤差を低減させることができる。この結果、端子間の最長配線経路を精度よく探索でき、所定の配線領域における仕様の回路特性を満たす配線経路長の実現可能性を正確に判定することができる。
【0118】
このように、仕様の回路特性を満たす適切な配線をおこなうことで、無駄な配線リソースを削減し、設計対象回路の小型化を実現することができる。さらに、所定の配線領域における仕様の回路特性を満たす配線長の配線を自動化することにより、作業負担の軽減化および設計期間の短縮化を図ることができる。
【0119】
なお、本実施の形態で説明した設計支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
【0120】
また、本実施の形態で説明した設計支援装置100は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、たとえば、上述した設計支援装置100の機能501〜506をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、設計支援装置100を製造することができる。
【図面の簡単な説明】
【0121】
【図1】本実施の形態にかかる設計支援装置のハードウェア構成を示す説明図である。
【図2】配線領域の具体例を示す説明図である。
【図3】配線情報のデータ構造を示す説明図である。
【図4】座標テーブルの記憶内容を示す説明図である。
【図5】設計支援装置の機能的構成を示すブロック図である。
【図6】第1の探索処理の概要を示す説明図である。
【図7】第1の探索処理の探索結果の具体例を示す説明図である。
【図8】第2の探索処理の概要を示す説明図である。
【図9】グラフ情報のデータ構造を示す説明図(その1)である。
【図10】グラフ情報のデータ構造を示す説明図(その2)である。
【図11】第2の探索処理の探索結果の具体例を示す説明図である。
【図12】複数の巡回路の一部を通過する最長配線経路の一例を示す説明図である。
【図13】探索結果の出力例を示す説明図である。
【図14】分割時の一連の処理の流れを示す説明図である。
【図15】設計支援装置の設計支援処理手順の一例を示すフローチャートである。
【図16】第1の探索処理の具体的処理手順の一例を示すフローチャートである。
【図17】第2の探索処理の具体的処理手順の一例を示すフローチャートである。
【符号の説明】
【0122】
100 設計支援装置
200,600 配線領域
300 配線情報
400 座標テーブル
501 探索部
502 算出部
503 判定部
504 出力部
505 変更部
506 分割部
【特許請求の範囲】
【請求項1】
コンピュータを、
所定の配線領域内に配置された第1および第2の端子を接続する配線経路と、前記所定の配線領域内でかつ前記配線経路と非接続な巡回路とを探索する探索手段、
前記探索手段によって探索された配線経路の配線経路長と巡回路の配線経路長とを合わせた配線経路長を算出する算出手段、
前記算出手段によって算出された配線経路長が、仕様の回路特性を満たす配線経路長以上か否かを判定する判定手段、
前記判定手段によって判定された判定結果を出力する出力手段、
として機能させることを特徴とする設計支援プログラム。
【請求項2】
前記探索手段は、
前記判定手段によって配線経路長以上と判定された場合、前記配線経路の一部と前記巡回路の一部とを通過して前記第1の端子から前記第2の端子に辿り着くまでの最長配線経路を探索し、
前記出力手段は、
前記探索手段によって探索された最長配線経路を出力することを特徴とする請求項1に記載の設計支援プログラム。
【請求項3】
前記算出手段は、
前記探索手段によって探索された最長配線経路の配線経路長を算出し、
前記判定手段は、
前記算出手段によって算出された最長配線経路の配線経路長が、前記仕様の回路特性を満たす配線経路長以上か否かを判定することを特徴とする請求項2に記載の設計支援プログラム。
【請求項4】
前記コンピュータを、
前記最長配線経路を変更する変更手段として機能させ、
前記判定手段は、
前記最長配線経路の配線経路長と、前記仕様の回路特性を満たす配線経路長との差分が予め設定された許容範囲内か否かを判定し、
前記変更手段は、
前記判定手段によって許容範囲外と判定された場合、前記最長配線経路を前記許容範囲内の配線経路長となるように変更し、
前記出力手段は、
前記変更手段によって変更された変更後の最長配線経路を出力することを特徴とする請求項3に記載の設計支援プログラム。
【請求項5】
前記コンピュータを、
前記所定の配線領域を、障害物を含まない第1の配線領域と、障害物を含む第2の配線領域とに分割する分割手段として機能させ、
前記コンピュータに、
前記分割手段によって分割された第1および第2の配線領域ごとに、前記探索手段、前記算出手段および前記判定手段による処理を実行させることを特徴とする請求項2〜4のいずれか一つに記載の設計支援プログラム。
【請求項6】
前記探索手段は、
前記第1および第2の配線領域ごとに、前記探索手段、前記算出手段および前記判定手段による処理が実行された結果、前記第1の配線領域内の第1の最長配線経路の一部と前記第2の配線領域内の第2の最長配線経路の一部とを通過して前記第1の端子から前記第2の端子に辿り着くまでの最長配線経路を探索することを特徴とする請求項5に記載の設計支援プログラム。
【請求項7】
所定の配線領域内に配置された第1および第2の端子を接続する配線経路と、前記所定の配線領域内でかつ前記配線経路と非接続な巡回路とを探索する探索手段と、
前記探索手段によって探索された配線経路の配線経路長と巡回路の配線経路長とを合わせた配線経路長を算出する算出手段と、
前記算出手段によって算出された配線経路長が、仕様の回路特性を満たす配線経路長以上か否かを判定する判定手段と、
前記判定手段によって判定された判定結果を出力する出力手段と、
を備えることを特徴とする設計支援装置。
【請求項8】
所定の配線領域内に配置された第1および第2の端子を接続する配線経路と、前記所定の配線領域内でかつ前記配線経路と非接続な巡回路とを探索する探索工程と、
前記探索工程によって探索された配線経路の配線経路長と巡回路の配線経路長とを合わせた配線経路長を算出する算出工程と、
前記算出工程によって算出された配線経路長が、仕様の回路特性を満たす配線経路長以上か否かを判定する判定工程と、
前記判定工程によって判定された判定結果を出力する出力工程と、
を含んだことを特徴とする設計支援方法。
【請求項1】
コンピュータを、
所定の配線領域内に配置された第1および第2の端子を接続する配線経路と、前記所定の配線領域内でかつ前記配線経路と非接続な巡回路とを探索する探索手段、
前記探索手段によって探索された配線経路の配線経路長と巡回路の配線経路長とを合わせた配線経路長を算出する算出手段、
前記算出手段によって算出された配線経路長が、仕様の回路特性を満たす配線経路長以上か否かを判定する判定手段、
前記判定手段によって判定された判定結果を出力する出力手段、
として機能させることを特徴とする設計支援プログラム。
【請求項2】
前記探索手段は、
前記判定手段によって配線経路長以上と判定された場合、前記配線経路の一部と前記巡回路の一部とを通過して前記第1の端子から前記第2の端子に辿り着くまでの最長配線経路を探索し、
前記出力手段は、
前記探索手段によって探索された最長配線経路を出力することを特徴とする請求項1に記載の設計支援プログラム。
【請求項3】
前記算出手段は、
前記探索手段によって探索された最長配線経路の配線経路長を算出し、
前記判定手段は、
前記算出手段によって算出された最長配線経路の配線経路長が、前記仕様の回路特性を満たす配線経路長以上か否かを判定することを特徴とする請求項2に記載の設計支援プログラム。
【請求項4】
前記コンピュータを、
前記最長配線経路を変更する変更手段として機能させ、
前記判定手段は、
前記最長配線経路の配線経路長と、前記仕様の回路特性を満たす配線経路長との差分が予め設定された許容範囲内か否かを判定し、
前記変更手段は、
前記判定手段によって許容範囲外と判定された場合、前記最長配線経路を前記許容範囲内の配線経路長となるように変更し、
前記出力手段は、
前記変更手段によって変更された変更後の最長配線経路を出力することを特徴とする請求項3に記載の設計支援プログラム。
【請求項5】
前記コンピュータを、
前記所定の配線領域を、障害物を含まない第1の配線領域と、障害物を含む第2の配線領域とに分割する分割手段として機能させ、
前記コンピュータに、
前記分割手段によって分割された第1および第2の配線領域ごとに、前記探索手段、前記算出手段および前記判定手段による処理を実行させることを特徴とする請求項2〜4のいずれか一つに記載の設計支援プログラム。
【請求項6】
前記探索手段は、
前記第1および第2の配線領域ごとに、前記探索手段、前記算出手段および前記判定手段による処理が実行された結果、前記第1の配線領域内の第1の最長配線経路の一部と前記第2の配線領域内の第2の最長配線経路の一部とを通過して前記第1の端子から前記第2の端子に辿り着くまでの最長配線経路を探索することを特徴とする請求項5に記載の設計支援プログラム。
【請求項7】
所定の配線領域内に配置された第1および第2の端子を接続する配線経路と、前記所定の配線領域内でかつ前記配線経路と非接続な巡回路とを探索する探索手段と、
前記探索手段によって探索された配線経路の配線経路長と巡回路の配線経路長とを合わせた配線経路長を算出する算出手段と、
前記算出手段によって算出された配線経路長が、仕様の回路特性を満たす配線経路長以上か否かを判定する判定手段と、
前記判定手段によって判定された判定結果を出力する出力手段と、
を備えることを特徴とする設計支援装置。
【請求項8】
所定の配線領域内に配置された第1および第2の端子を接続する配線経路と、前記所定の配線領域内でかつ前記配線経路と非接続な巡回路とを探索する探索工程と、
前記探索工程によって探索された配線経路の配線経路長と巡回路の配線経路長とを合わせた配線経路長を算出する算出工程と、
前記算出工程によって算出された配線経路長が、仕様の回路特性を満たす配線経路長以上か否かを判定する判定工程と、
前記判定工程によって判定された判定結果を出力する出力工程と、
を含んだことを特徴とする設計支援方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公開番号】特開2009−187121(P2009−187121A)
【公開日】平成21年8月20日(2009.8.20)
【国際特許分類】
【出願番号】特願2008−24234(P2008−24234)
【出願日】平成20年2月4日(2008.2.4)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成21年8月20日(2009.8.20)
【国際特許分類】
【出願日】平成20年2月4日(2008.2.4)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]