(57)【要約】【課題】用途特定集積回路における自動伝送線路選択の方法、プログラム製品、および設計ツールを提供すること。【解決手段】本方法は、用途特定集積回路のブロック間の配線経路を決定すること、伝送線路置換候補を得るために配線経路を細かく調べること、および、伝送線路置換候補ごとに、配線経路を実現すべきバッファ付き線か伝送線路を自動的に選択することを含む。【選択図】図３
2006011920.tif 000002
【特許請求の範囲】
【請求項１】
特定用途集積回路（ＡＳＩＣ）のブロック間に通信線を配線する方法であって、
前記ＡＳＩＣのブロック間に配線経路を決定するステップと、
伝送線路置換候補を得るために前記配線経路を調べるステップと、
伝送線路置換候補ごとに、前記配線経路を実現すべきバッファ付き線または伝送線路を自動的に選択するステップとを備える方法。
【請求項２】
配線経路を決定するステップが、さらに、
バッファを有する線およびバッファを有しない線を使用する複数の配線経路を得るステップを備える、請求項１に記載の方法。
【請求項３】
伝送線路置換候補が、前記ＡＳＩＣのブロックを越えて通っている配線経路およびバッファを必要としない配線経路から成るグループから選択される、請求項１に記載の方法。
【請求項４】
前記配線経路を実現すべきバッファ付き線または伝送線路を自動的に選択するステップが、さらに、
前記伝送線路のプロセス固有パラメータを含むルックアップ表を準備するステップを含む、請求項１に記載の方法。
【請求項５】
前記配線経路を実現すべきバッファ付き線または伝送線路を自動的に選択するステップが、さらに、
前記バッファ付き線の配線経路の長さを決定するステップと、
前記伝送線路の配線経路の長さを決定し、かつ前記ルックアップ表に含まれた前記伝送線路のプロセス固有パラメータに基づいて、前記伝送線路の値を得るステップと、
前記伝送線路の前記値を前記バッファ付き線の対応する値と比較するステップと、
前記比較に基づいて、前記バッファ付き線または前記伝送線路を自動的に選択するステップとを備える、請求項４に記載の方法。
【請求項６】
前記値が、単位長さ当たりの信号遅延である、請求項５に記載の方法。
【請求項７】
前記伝送線路が、共平面形線路の伝送線路を備える、請求項１に記載の方法。
【請求項８】
特定用途集積回路（ＡＳＩＣ）のブロック間に通信線を配線するための、記録可能媒体に格納されたプログラムであって、実行されるときに、
前記ＡＳＩＣのブロック間に配線経路を決定するためのプログラム・コードと、
伝送線路置換候補を得るために前記配線経路を細かく調べるためのプログラム・コードと、
伝送線路置換候補ごとに、前記配線経路を実現すべきバッファ付き線または伝送線路を自動的に選択するためのプログラム・コードとを備えるプログラム。
【請求項９】
配線経路を決定するための前記プログラム・コードが、さらに、
バッファを有する線およびバッファを有しない線を使用する複数の配線経路を得るためのプログラム・コードを備える、請求項８に記載のプログラム。
【請求項１０】
伝送線路置換候補が、前記ＡＳＩＣのブロックを越えて通っている配線経路およびバッファを必要としない配線経路から成るグループから選択される、請求項８に記載のプログラム。
【請求項１１】
前記配線経路を実現すべきバッファ付き線または伝送線路を自動的に選択するための前記プログラム・コードが、さらに、
前記伝送線路のプロセス固有パラメータを含むルックアップ表にアクセスためのプログラム・コードを備える、請求項８に記載のプログラム。
【請求項１２】
前記配線経路を実現すべきバッファ付き線または伝送線路を自動的に選択するための前記プログラム・コードが、さらに、
前記バッファ付き線の配線経路の長さを決定するためのプログラム・コードと、
前記伝送線路の配線経路の長さを決定し、かつ前記ルックアップ表に含まれた前記伝送線路のプロセス固有パラメータに基づいて、前記伝送線路の値を得るためのプログラム・コードと、
前記伝送線路の前記値を前記バッファ付き線の対応する値と比較するためのプログラム・コードと、
前記比較に基づいて、前記バッファ付き線または前記伝送線路を自動的に選択するためのプログラム・コードとを備える、請求項１１に記載のプログラム。
【請求項１３】
前記値が、単位長さ当たりの信号遅延である、請求項１２に記載のプログラム。
【請求項１４】
特定用途集積回路（ＡＳＩＣ）のブロック間に通信線を配線するための設計ツールであって、
前記ＡＳＩＣのブロック間に配線経路を決定するためのシステムと、
伝送線路置換候補を得るために前記配線経路を細かく調べるためのシステムと、
伝送線路置換候補ごとに、前記配線経路を実現すべきバッファ付き線または伝送線路を自動的に選択するためのシステムとを備える設計ツール。
【請求項１５】
配線経路を決定するための前記システムが、さらに、
バッファを有する線およびバッファを有しない線を使用する複数の配線経路を得るためのシステムを備える、請求項１４に記載の設計ツール。
【請求項１６】
伝送線路置換候補が、前記ＡＳＩＣのブロックを越えて通っている配線経路およびバッファを必要としない配線経路から成るグループから選択される、請求項１４に記載の設計ツール。
【請求項１７】
前記配線経路を実現すべきバッファ付き線または伝送線路を自動的に選択するための前記システムが、さらに、
前記伝送線路のプロセス固有パラメータを含むルックアップ表を備える、請求項１４に記載の設計ツール。
【請求項１８】
前記配線経路を実現すべきバッファ付き線または伝送線路を自動的に選択するための前記システムが、さらに、
前記バッファ付き線の配線経路の長さを決定するためのシステムと、
前記伝送線路の配線経路の長さを決定し、かつ前記ルックアップ表に含まれた前記伝送線路のプロセス固有パラメータに基づいて、前記伝送線路の値を得るためのシステムと、
前記伝送線路の前記値を前記バッファ付き線の対応する値と比較するためのシステムと、
前記比較に基づいて、前記バッファ付き線または前記伝送線路を自動的に選択するためのシステムとを備える、請求項１７に記載の設計ツール。
【請求項１９】
前記値が、単位長さ当たりの信号遅延である、請求項１８に記載の設計ツール。
【請求項２０】
前記伝送線路が、共平面形線路の伝送線路を備える、請求項１４に記載の設計ツール。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般的に集積回路に関する。より詳細には、本発明は、特定用途集積回路（ＡＳＩＣ）のブロック（例えば、コア）間に通信線を配線するとき、バッファ付き線か伝送線かどちらかを自動的に選択するための方法、プログラム製品、および設計ツールに関する。
【背景技術】
【０００２】
大規模ＡＳＩＣの物理設計で、設計で配置されたブロック間に長い線を配線するのに相当な時間がかかる。この理由は、長い線は、一般に、ＡＳＩＣライブラリに設定された電気的な制限に適合しないからである。例えば、長い線のために、その線を励振するゲートに最大キャパシタンスの電気的違反が生じるかもしれないし、その上、線に沿って進む信号が歪むので、信号を受け取るゲートで電気的な違反が生じるかもしれない。使用される通常の解決策は、線の全行程に沿った１つまたは複数の点で信号をバッファリングすることである。しかし、この解決策の実施には問題があることがある。というのは、バッファは設計で空いた領域に置かなければならないし、さらにバッファの適正な数および配置を計算するために電気的な解析を行わなければならないからである。
【０００３】
コアをベースにしたＡＳＩＣ設計では、配線密集もまた大きな問題である。例えば、多くの設計において、線の配置に使用できる領域は限られている。バッファは簡単にブロック内に配置することができないので、タイミングの要求条件を満たすために設計においてバッファを挿入することが必要になると、密集問題はさらに悪くなる。配線密集の例を図１に示す。特に、ＡＳＩＣ１０のブロックＥとＢの間の配線で、ブロックＡの右下角で密集問題が起こり、さらに電気的な制約を満たすために多数のバッファ１２も必要になる。ただ１本の線だけを図１に示したが、ブロックＡ〜Ｅの間の領域に数千本の線が存在するかもしれないことは、当業者には当然明らかである。
【０００４】
ブロックの大きさが増すにつれて、他の問題が生じる可能性がある。例えば、大きなブロックほど配線するのにいっそう長い線が必要になり、追加のバッファを使用することが必要になる。これによって、より大きな信号遅延が生じ、クロック周波数が減少し、さらに電力要求が増加する。
【０００５】
上述の密集問題を軽減し、バッファの使用を制限し、またはＡＳＩＣ性能の予測可能性を向上するために、あるいはこれら全てのために、いくつかのバッファ付き線の代わりに、伝送線路のような他の相互接続技術を使用することが望ましい。そのような実施を図２に示す。特に、図２では、伝送線路２０は、コアＥとコアＢの間に接続を配線するように使用される。しかし、バッファ付き線がブロック間を通っている図１に示すシナリオと違って、図２の伝送線路２０は、コアＥへの途中でコアＡを越えて通っている。これによって、コアＡの右下角での密集問題は軽減し、またいくつかのバッファ１２の必要性もなくなる。ＡＳＩＣ中のバッファ付き線を伝送線路に置き換えることで、様々な性能上の利益（例えば、遅延の減少、キャパシタンスの減少、その他）も実現することができる。
【０００６】
ＡＳＩＣ中のバッファ付き線のうちのどれを伝送線路に置き換えるかを決定することは、時間のかかるプロセスである。バッファ付き線の代わりに伝送線路を使用することがＡＳＩＣに対して最終的にマイナスの影響を及ぼすことがないように注意しなければならない。どの型の接続技術（すなわち、バッファ付き線か伝送線路か）を使用すべきかを決定する前に、配線長、遅延、配線適合性、抵抗、キャパシタンス、クロストーク、密集、電力消費、その他のようなプロセス固有のパラメータおよび要素を考慮しなければならない。プロセス固有のパラメータおよび要素は、また、どの型の伝送線路を使用すべきかを決定するために使用することができる。
【０００７】
ＡＳＩＣ設計に存在するバッファ付き線の数が通常多いために、どのバッファ付き線を伝送線路に置き換えることができるかを決定するとき、ＡＳＩＣ内の多数のバッファ付き線を手作業で調べることは現実的でない。したがって、当技術分野では、ＡＳＩＣ内の各バッファ付き線を自動的に調べ、どのバッファ付き線を伝送線路に置き換えることができるかを自動的に決定する方法が必要とされている。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、用途特定集積回路（ＡＳＩＣ）のブロック間に通信線を配線するためにバッファ付き線か伝送線路かどちらかを自動的に選択する方法、プログラム製品、および設計ツールを提供する。
【課題を解決するための手段】
【０００９】
本発明の第１の態様は、ＡＳＩＣのブロック間に通信線を配線する方法を対象とし、この方法は、ＡＳＩＣのブロック間に配線経路（route path）を決定すること、伝送線路置換候補（transmission line replacement candidate）を得るために配線経路を細かく調べること、および、伝送線路置換候補ごとに、配線経路を実現すべきバッファ付き線または伝送線路を自動的に選択することを備える。
【００１０】
本発明の第２の態様は、ＡＳＩＣのブロック間に通信線を配線するための、記録可能媒体に格納されたプログラム製品を対象とし、このプログラム製品は、実行されるときに、ＡＳＩＣのブロック間に配線経路を決定するためのプログラム・コードと、伝送線路置換候補を得るために配線経路を細かく調べるためのプログラム・コードと、伝送線路置換候補ごとに、配線経路を実現すべきバッファ付き線または伝送線路を自動的に選択するためのプログラム・コードとを備える。
【００１１】
本発明の第３の態様は、ＡＳＩＣのブロック間に通信線を配線するための設計ツールを対象とし、この設計ツールは、ＡＳＩＣのブロック間に配線経路を決定するためのシステムと、伝送線路置換候補を得るために配線経路を細かく調べるためのシステムと、伝送線路置換候補ごとに、配線経路を実現すべきバッファ付き線または伝送線路を自動的に選択するためのシステムとを備える。
【００１２】
本発明の前述および他の特徴は、本発明の実施形態についての次のより詳細な説明から明らかになるであろう。
【００１３】
本発明の実施形態は、次の図を参照して詳細に説明する。この図では、同様な要素を同様な符号で示す。
【発明を実施するための最良の形態】
【００１４】
本発明は、特定用途集積回路（ＡＳＩＣ）のブロック間に通信線を配線するためにバッファ付き線か伝送線路かどちらかを自動的に選択する方法、プログラム製品、および設計ツールを提供する。
【００１５】
本発明に従ってバッファ付き線か伝送線路かどちらかを自動的に選択する方法を示すフローチャート１００を、図３に示す。
【００１６】
ステップＳ１で、提案されたＡＳＩＣ設計では、バッファを有するおよびバッファを有しない標準的な電子設計自動化（ＥＤＡ）ツールを使用して汎用のルータを動作させ、１組（例えば、１つまたは複数）の配線経路について多数の線配線（wire routing）解決策が作られる。各々の線配線解決策の配線経路について、遅延、キャパシタンス、その他のようなプロセス固有パラメータを決定する。ステップＳ２で、ステップＳ１で生成された配線経路を細かく調べて、伝送線路置換候補を得る。伝送線路置換候補には、例えば、ＡＳＩＣのブロックを越えて通る配線経路、バッファを必要としない配線経路、その他があるかもしれない。伝送線路置換候補を選ぶ他の基準も使用することができる。一般に、バッファ付き線の代わりに伝送線路を使用することで有利になる配線経路はどれでも、伝送線路置換候補として選ぶことができる。
【００１７】
本発明の開示された実施形態では、伝送線路は、共平面形線路（コプレーナ線路、ＣＰＷ）を使用して実現される。当技術分野で知られているように、ＣＰＷ伝送線路では、平行な２配線経路（例えば、信号線と、信号線をＡＳＩＣの他の要素から分離する近接した接地線と）を使用することが必要である。２配線経路は、同じ金属層（すなわち、単層）に配線経路を水平方向に対にして、または、２つの隣り合う金属層（すなわち、複層）に配線経路を垂直方向に対にして実現することができる。ステップＳ２で、ＣＰＷ伝送線路が使用されるので、伝送線路置換候補を選ぶとき、２配線経路の要件を考慮に入れなければならない。本発明はＣＰＷ伝送線路に関して説明するが、現在知られているまたは後で知られる他の適切な型の伝送線路を、本発明で使用することもできる。
【００１８】
その後ステップＳ３で、伝送線路置換候補の配線経路を調べて、どの候補をＣＰＷ伝送線路で実現すべきであるか、およびどの候補を従来のバッファ付き線を使用して実現すべきであるかを決定する。これは、与えられた配線経路に関して、バッファ付き線についてステップＳ１で前に決定されたプロセス固有パラメータを、伝送線路を作るために使用される伝送線路技術（すなわち、本実施形態ではＣＰＷ）のプロセス固有パラメータと比較することで行う。図３に示すように、ＣＰＷ伝送線路（単層／複層）のプロセス固有パラメータは、ルックアップ表１０２に格納されている。プロセス固有パラメータは、例えば、信号遅延、配線適合性、その他を含むことができる。
【００１９】
例えば、図１のブロックＥとＢの間に延びるバッファ付き線の信号遅延は、ステップＳ１から分かる。ブロックＡを越えてブロックＥとＢの間に延びる対応するＣＰＷ伝送線路（図２）の信号遅延は、ＣＰＷ伝送線路の長さおよび利用できる線経路の構造（例えば、単層／複層の各型で、単位長さ当たりに導入される遅延が異なる）に関する遅延情報をルックアップ表１０２から取り出して決定する。それから、バッファ付き線の解決策およびＣＰＷ伝送線の解決策の遅延値を比較し、遅延の小さい方の配線方法を選ぶ。もちろん、配線適合性、キャパシタンス、その他のような他の基準も調べ、そしてステップＳ３で比較し、その後で、与えられた配線経路に従来のバッファ付き線の代わりにＣＰＷ伝送線路を使用するという最終決定を行うことができる。
【００２０】
ステップＳ４で、タイミング解析を行って、伝送線路を使用して実現された新しい配線経路各々を検査する。必要なタイミング条件が満たされた場合には、伝送線路の配線経路が使用される。タイミング条件が満たされない場合には、新しい配線経路は放棄され、従来のバッファ付き線が使用される。伝送線路候補に関して全ての配線経路の線配線解決策を調べ終わるまで、必要に応じてこのプロセスが繰り返される（ステップＳ５）。このようにして、本発明に従って、設計のどの配線経路が従来のバッファ付き線ではなく伝送線路を使用して実現できるかを自動的に決定して、ＡＳＩＣ設計の配線経路の使用を最適化する。
【００２１】
図４は、本発明の方法を実施するＡＳＩＣ設計ツール２００を示す。設計ツール２００はコンピュータ２０２を含み、このコンピュータ２０２は、一般に、中央処理装置（ＣＰＵ）２０４、メモリ２０６、入力／出力（Ｉ／Ｏ）インタフェース２０８、バス２１０、外部デバイス２１２、およびデータベース２１４を含む。ユーザ２１６は、ＡＳＩＣの設計中に設計ツール２００と対話する。
【００２２】
コンピュータ２０２は、標準的なオペレーティング・システム・ソフトウェアを使用する汎用システムまたは特定用途システムを備えることができる。このシステムは、特定のハードウェアの動作を駆動するように設計され、かつ他のシステム構成要素およびＩ／Ｏ制御装置と共存可能である。ＣＰＵ２０４は、ただ１つの処理装置、並列動作をすることができる複数の処理装置を備えることができ、または、１つまたは複数の場所にある、例えばクライアントとサーバにある１つまたは複数の処理装置にわたって分散させることができる。メモリ２０６は、磁気媒体、光媒体、ランダム・アクセス・メモリ（ＲＡＭ）、その他を含んだ、知られているどのような型のデータ記憶装置または伝送媒体あるいはその両方をも備えることができる。さらに、ＣＰＵ２０４と同様に、メモリ２０６は、１つまたは複数の型のデータ記憶装置を備えるただ１つの物理的な場所に存在することができ、または、様々な形で複数の物理的なシステムにわたって分散することができる。
【００２３】
Ｉ／Ｏインタフェース２０８は、１つまたは複数の外部デバイス２１２と情報を交換するための知られているどのようなシステムでも備えることができる。外部デバイス２１２は、追加デバイスを用いてまたは追加デバイスなしでＩ／Ｏインタフェース２０８と通信することができる任意の知られている型の入力／出力デバイスを備えることができる。バス２１０は、コンピュータ２０２の構成要素各々の間に通信リンクを実現し、また、同様に、電気、光、無線、その他を含んだ任意の知られている型の伝送リンクを備えることができる。また、他の知られている構成要素をコンピュータ２０２に組み込むこともできる。
【００２４】
データベース２１４は、本発明を実行するために必要な情報の記憶装置を実現することができる。例えば、ルックアップ表１０２（図３）は、データベース２１４の中に格納することができる。データベース２１４は、磁気ディスク・ドライブまたは光ディスク・ドライブのような１つまたは複数の記憶デバイスを含むことができる。さらに、データベース２１４は、ＬＡＮ、ＷＡＮ、またはインターネットのようなネットワークにわたって分散されたデータを含むことができる。
【００２５】
本発明の伝送線路選択方法を実施することができる伝送線路選択システム２２０は、コンピュータ・プログラム・コードとしてメモリ２０６に格納し示されている。他のＡＳＩＣ設計プログラム２２２は、再びコンピュータ・コードとしてメモリ２０６に格納して示され、設計ツール２００で使用することもできる。
【００２６】
伝送線路選択システム２２０は、バッファを有するおよびバッファを有しないＡＳＩＣの全体的な配線を実施する配線生成システム２２４を含む（図３、ステップＳ１）。伝送線路選択システム２２０は、さらに、配線生成システム２２４で生成された配線経路から伝送線路置換候補を選択するための伝送線路置換候補システム２２６（図３、ステップＳ２）、与えられた配線について伝送線路と対応するバッファ付き線の様々なパラメータを比較しかつこの比較に基づいて最良の配線選択肢を選ぶための比較／決定システム２２８（図３、ステップＳ３）、およびバッファ付き線の代わりに伝送線路を使用して実現された新しい配線経路を検証するタイミング・システム２３０（図３、ステップＳ４）を含む。
【００２７】
理解すべきことであるが、先に示したように、本発明は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組合せで実現することができる。どのような種類のコンピュータ／サーバ・システム、または本明細書で説明した方法を実行するように構成された他の装置も適している。ハードウェアとソフトウェアの一般的な組合せは、ロードされかつ実行されたときに本明細書で説明したそれぞれの方法を実行するコンピュータ・プログラムを有する汎用コンピュータ・システムであるかもしれない。もしくは、本発明の１つまたは複数の機能タスクを実行する専用ハードウェアを含んだ特定用途コンピュータが使用されるかもしれない。また、本発明は、コンピュータ・プログラム製品に組み込むことができ、このプログラム製品は、本明細書で説明した方法の実施を可能にするそれぞれの特徴全てを備え、かつコンピュータ・システムにロードされたときこれらの方法を実行することができる。現在の状況で、コンピュータ・プログラム、ソフトウェア・プログラム、プログラム、またはソフトウェアは、情報処理能力を有するシステムが、直接的に、または次のどれかまたは両方の後で、すなわち（ａ）他の言語、コードまたは表記法に変換または（ｂ）異なる材料の形に再生の後であるいはその両方の後で、特定の機能を実施するように意図された命令の集合の任意の言語、コードまたは表記法でのどのような表現も意味する。
【００２８】
本発明は、先に概説した特定の実施形態に関連して説明したが、多くの代替え、修正、および変形が当業者に明らかになることは明白である。したがって、先に述べたような本発明の実施形態は、例示的なもので制限するものでない意図である。特許請求の範囲に定義されるような本発明の精神および範囲から逸脱することなく、様々な変更を加えることができる。
【図面の簡単な説明】
【００２９】
【図１】複数のブロックを有するＡＳＩＣおよびブロックのうちの２つを接続するバッファ付き線を示す図である。
【図２】バッファ付き線を伝送線路に置き換えた図１のＡＳＩＣを示す図である。
【図３】本発明に従ってバッファ付き線か伝送線路かどちらかを自動的に選択する方法を示す流れ図である。
【図４】本発明の方法を実施するＡＳＩＣ設計ツールの一例を示す図である。
【符号の説明】
【００３０】
１０  ＡＳＩＣ
１００  バッファ付き線か伝送線路かを自動的に選択する方法を示す流れ図
２００  ＡＳＩＣ設計ツール
２１０  バス
２２０  伝送線路選択システム
Ａ、Ｂ、Ｃ、Ｄ、Ｅ  ブロック（例えば、コア）
【図１】
2006011920.tif 000003
【図２】
2006011920.tif 000004
【図３】
2006011920.tif 000005
【図４】
2006011920.tif 000006