(57)【要約】【課題】ユーザの論理設計をインプリメントするようにプログラムされたＦＰＧＡと機能上等価な構造化ＡＳＩＣに対する物理レイアウトを好適に生成する方法を提供する。【解決手段】本発明による、ユーザの論理設計をインプリメントするようにプログラムされたＦＰＧＡと機能上等価な構造化ＡＳＩＣに対する物理レイアウトを生成する方法は、該ユーザの論理設計の構造化ＡＳＩＣインプリメンテーションに対するネットリストにおける各回路ブロックに対して、ライブラリから該ブロックの構造化ＡＳＩＣの物理レイアウトを取り出すこと（７０）と；構造化ＡＳＩＣテンプレート上に該ブロックの該物理レイアウトを配置すること（７０）と；該ネットリストに従って、該構造化ＡＳＩＣテンプレート上に、該ブロックの該物理レイアウト間の相互接続をレイアウトすること（７０）とを含む。【選択図】図１
2006338659.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの論理設計をインプリメントするようにプログラムされたＦＰＧＡと機能上等価な構造化ＡＳＩＣに対する物理レイアウトを生成する方法であって、該方法は、
該ユーザの論理設計の構造化ＡＳＩＣインプリメンテーションに対するネットリストにおける各回路ブロックに対して、ライブラリから該ブロックの構造化ＡＳＩＣの物理レイアウトを取り出すことと、
構造化ＡＳＩＣテンプレート上に該ブロックの該物理レイアウトを配置することと、
該ネットリストに従って、該構造化ＡＳＩＣテンプレート上に、該ブロックの該物理レイアウト間の相互接続をレイアウトすることと
を包含する、方法。
【請求項２】
前記取り出すことと、前記配置することと、前記レイアウトすることとのうちの少なくとも１つの少なくとも一部の局面を実行するときにおいて、前記ユーザによって提供される少なくとも１つのタイミング制限に従うことをさらに包含する、請求項１に記載の方法。
【請求項３】
製造後の前記構造化ＡＳＩＣのテストを容易にする回路を前記ネットリストに追加することをさらに包含する、請求項１に記載の方法。
【請求項４】
少なくとも１つの回路ブロックに対して、前記ライブラリは関連のタイミングモデルを含み、
該回路ブロックに対して、前記取り出すことが、該関連のタイミングモデルを取り出すことを包含する、請求項２に記載の方法。
【請求項５】
前記従うことが、前記関連のタイミングモデルを用いることを包含する、請求項４に記載の方法。
【請求項６】
クロストークの可能性に関して、前記構造化ＡＳＩＣに対する前記物理レイアウトをチェックすることをさらに包含する、請求項１に記載の方法。
【請求項７】
アンテナの可能性に関して、前記構造化ＡＳＩＣに対する前記物理レイアウトをチェックすることをさらに包含する、請求項１に記載の方法。
【請求項８】
前記構造化ＡＳＩＣの前記物理レイアウトにタイミング最適化をかけることをさらに包含する、請求項１に記載の方法。
【請求項９】
設計ルール違反に関して、前記構造化ＡＳＩＣに対する前記物理レイアウトをチェックすることをさらに包含する、請求項１に記載の方法。
【請求項１０】
前記構造化ＡＳＩＣの前記物理レイアウトに静的なタイミング分析をかけることをさらに包含する、請求項１に記載の方法。
【請求項１１】
請求項１に記載の方法を実行するための機械可読命令でエンコードされた機械可読媒体。
【請求項１２】
ユーザの論理設計をインプリメントするようにプログラムされたＦＰＧＡと機能上等価な構造化ＡＳＩＣを製造する方法であって、該方法は、
該ユーザの論理設計の構造化ＡＳＩＣインプリメンテーションに対するネットリストにおける各回路ブロックに対して、ライブラリから該ブロックの構造化ＡＳＩＣの物理レイアウトを取り出すことと、
構造化ＡＳＩＣテンプレート上に該ブロックの該物理レイアウトを配置することと、
該ネットリストに従って、該構造化ＡＳＩＣテンプレート上に、該ブロックの該物理レイアウト間の相互接続をレイアウトすることと、
該配置することと該レイアウトすることとの結果に従って、該構造化ＡＳＩＣを製造することと
を包含する、方法。
【請求項１３】
前記回路ブロックの少なくとも一部に対して、前記ライブラリは関連のタイミングモデルを含み、
そのような回路ブロックに対して、前記取り出すことが、該関連のタイミングモデルを取り出すことを包含する、請求項１２に記載の方法。
【請求項１４】
所定のタイミング制限が破られないことを確実にするために、前記関連のタイミングモデルを用いることをさらに包含する、請求項１３に記載の方法。
【請求項１５】
前記回路ブロックの少なくとも１つのタイプに対して、前記構造化ＡＳＩＣインプリメンテーションが、ＦＰＧＡにおける該タイプの回路ブロックのために用いられる基本回路ユニットの完全な性能よりも低い完全な性能を有する可変数個の構造化ＡＳＩＣ基本回路ユニットを用い、
前記配置することが、該回路ブロックの該構造化ＡＳＩＣインプリメンテーションに必要とされる該構造化ＡＳＩＣ基本ユニットのインスタンスと実質的に同数だけのインスタンスを用いて、前記構造化ＡＳＩＣテンプレート上に、該タイプの各回路ブロックを配置する、請求項１２に記載の方法。
【請求項１６】
ユーザの論理設計をインプリメントするようにプログラムされたＦＰＧＡと機能上等価な構造化ＡＳＩＣを製造する方法であって、該方法は、
該ユーザの論理設計の構造化ＡＳＩＣインプリメンテーションに対するネットリストにおける各回路ブロックに対して、ライブラリから、該ブロックの構造化ＡＳＩＣの物理レイアウトと、該ブロックのタイミングモデルとを取り出すことと、
構造化ＡＳＩＣテンプレート上に該ブロックの該物理レイアウトを配置することと、
該ネットリストに従って、該構造化ＡＳＩＣテンプレート上に、該ブロックの該物理レイアウト間の相互接続をレイアウトすることと、
所定のタイミング制限が破られないことを確実にするために、該タイミングモデルを用いることと
を包含する、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特定用途向け集積回路（「ＡＳＩＣ」）に関し、より詳しくは、場合により構造化ＡＳＩＣとしても知られるタイプのＡＳＩＣに関する。
【背景技術】
【０００２】
Ｓｃｈｌｅｉｃｈｅｒらの２００５年４月１日に出願された特許文献１（整理番号１７４／３８９）は、プログラムされたフィールドプログラマブルゲートアレイ（「ＦＰＧＡ」）および構造化ＡＳＩＣにおけるユーザの論理設計の機能上等価なインプリメンテーションを生成するために用いられ得るデータ、を生成するためのユーザ論理設計と協働する方法を示す。（このＳｃｈｌｅｉｃｈｅｒらの文献は、本明細書では、その全容を援用する。）例えば、ＦＰＧＡの場合では、Ｓｃｈｌｅｉｃｈｅｒらの文献は、ユーザ論理設計をインプリメントするようにＦＰＧＡのプログラミングにおいて用いるデータを生成するように、ユーザ論理設計を操作する一連のステップを示す。構造化ＡＳＩＣの場合では、Ｓｃｈｌｅｉｃｈｅｒらの文献は、この文献においてハンドオフ設計ファイルと呼ばれるものを生成するように、ユーザ論理設計を操作する一連のステップを示す。これらは、ユーザ論理設計が、同一のユーザ論理設計のＦＰＧＡインプリメンテーションとのこのインプリメンテーションの機能上の等価を確実にするのを助けるために、構造化ＡＳＩＣにおいて実際にインプリメントされる態様を詳しく特定することを意図した設計ファイルである。
【特許文献１】米国特許出願第１１／０９７，６３３号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、これらのハンドオフ設計ファイルを構造化ＡＳＩＣの製造の制御に必要な最終的なデータに変えるためには、これらのファイルにさらなる作業を行う必要があるということは、理解される。このさらなる作業は、Ｓｃｈｌｅｉｃｈｅｒらの文献では、構造化ＡＳＩＣの設計プロセスのバックエンドと呼ばれているものであり、本発明の主題である。さらに、Ｓｃｈｌｅｉｃｈｅｒらの文献に見られるように、本発明の重要な目的は、（１）結果として得られる構造化ＡＳＩＣと、同じユーザ論理設計をインプリメントするＦＰＧＡとの高度に信頼性のある機能上の等価性を保つことと、（２）構造化ＡＳＩＣのリソースを効率的に使用することと、（３）最終的な構造化ＡＳＩＣ製品の迅速な利用可能性を促進するためのバックエンドタスクを速く完了することとである。
【課題を解決するための手段】
【０００４】
（発明の概要）
本発明によると、ユーザ論理設計をインプリメントするようにプログラムされたＦＰＧＡと機能上等価な構造化ＡＳＩＣに対する物理レイアウトを生成する方法は、ＦＰＧＡ回路ブロックの構造化ＡＳＩＣ等価物の物理レイアウトのライブラリから、ユーザ論理設計の構造化ＡＳＩＣインプリメンテーションに対するネットリスト（ｎｅｔｌｉｓｔ）に存在する種々の回路ブロックに対する物理レイアウトを取り出すことを含む。このブロックの取り出された物理レイアウトは、構造化ＡＳＩＣに対するテンプレート上に配置される。物理レイアウトブロック間の相互接続は、ネットリストに従って、構造化ＡＳＩＣテンプレート上にレイアウトされる。
【０００５】
本発明の方法の少なくとも一部のステップは、ユーザによって提供される一つ以上のタイミング制限に従うように実行され得る。
【０００６】
本方法は、製造後の構造化ＡＳＩＣのテストを容易にする回路をネットリストに追加することを含み得る。
【０００７】
本方法は、クロストークの閉止（ｃｌｏｓｕｒｅ）と、アンテナの閉止と、タイミングの最適化と、設計ルールのチェックと、設計  対  回路図とのチェックと、静的なタイミング分析とのうちの任意の一つ以上を含み得る。
【０００８】
本発明のさらなる特徴、ならびにその性質および種々の利点は、添付の図面と下記の詳細な説明とからより明確になる。
【０００９】
本発明は、さらに以下の手段を提供する。
【００１０】
（項目１）
ユーザの論理設計をインプリメントするようにプログラムされたＦＰＧＡと機能上等価な構造化ＡＳＩＣに対する物理レイアウトを生成する方法であって、該方法は、
該ユーザの論理設計の構造化ＡＳＩＣインプリメンテーションに対するネットリストにおける各回路ブロックに対して、ライブラリから該ブロックの構造化ＡＳＩＣの物理レイアウトを取り出すことと、
構造化ＡＳＩＣテンプレート上に該ブロックの該物理レイアウトを配置することと、
該ネットリストに従って、該構造化ＡＳＩＣテンプレート上に、該ブロックの該物理レイアウト間の相互接続をレイアウトすることと
を包含する、方法。
【００１１】
（項目２）
上記取り出すことと、上記配置することと、上記レイアウトすることとのうちの少なくとも１つの少なくとも一部の局面を実行するときにおいて、上記ユーザによって提供される少なくとも１つのタイミング制限に従うことをさらに包含する、項目１に記載の方法。
【００１２】
（項目３）
製造後の上記構造化ＡＳＩＣのテストを容易にする回路を上記ネットリストに追加することをさらに包含する、項目１に記載の方法。
【００１３】
（項目４）
少なくとも１つの回路ブロックに対して、上記ライブラリは関連のタイミングモデルを含み、
該回路ブロックに対して、上記取り出すことが、該関連のタイミングモデルを取り出すことを包含する、項目２に記載の方法。
【００１４】
（項目５）
上記従うことが、上記関連のタイミングモデルを用いることを包含する、項目４に記載の方法。
【００１５】
（項目６）
クロストークの可能性に関して、上記構造化ＡＳＩＣに対する上記物理レイアウトをチェックすることをさらに包含する、項目１に記載の方法。
【００１６】
（項目７）
アンテナの可能性に関して、上記構造化ＡＳＩＣに対する上記物理レイアウトをチェックすることをさらに包含する、項目１に記載の方法。
【００１７】
（項目８）
上記構造化ＡＳＩＣの上記物理レイアウトにタイミング最適化をかけることをさらに包含する、項目１に記載の方法。
【００１８】
（項目９）
設計ルール違反に関して、上記構造化ＡＳＩＣに対する上記物理レイアウトをチェックすることをさらに包含する、項目１に記載の方法。
【００１９】
（項目１０）
上記構造化ＡＳＩＣの上記物理レイアウトに静的なタイミング分析をかけることをさらに包含する、項目１に記載の方法。
【００２０】
（項目１１）
項目１に記載の方法を実行するための機械可読命令でエンコードされた機械可読媒体。
【００２１】
（項目１２）
ユーザの論理設計をインプリメントするようにプログラムされたＦＰＧＡと機能上等価な構造化ＡＳＩＣを製造する方法であって、該方法は、
該ユーザの論理設計の構造化ＡＳＩＣインプリメンテーションに対するネットリストにおける各回路ブロックに対して、ライブラリから該ブロックの構造化ＡＳＩＣの物理レイアウトを取り出すことと、
構造化ＡＳＩＣテンプレート上に該ブロックの該物理レイアウトを配置することと、
該ネットリストに従って、該構造化ＡＳＩＣテンプレート上に、該ブロックの該物理レイアウト間の相互接続をレイアウトすることと、
該配置することと該レイアウトすることとの結果に従って、該構造化ＡＳＩＣを製造することと
を包含する、方法。
【００２２】
（項目１３）
上記回路ブロックの少なくとも一部に対して、上記ライブラリは関連のタイミングモデルを含み、
そのような回路ブロックに対して、上記取り出すことが、該関連のタイミングモデルを取り出すことを包含する、項目１２に記載の方法。
【００２３】
（項目１４）
所定のタイミング制限が破られないことを確実にするために、上記関連のタイミングモデルを用いることをさらに包含する、項目１３に記載の方法。
【００２４】
（項目１５）
上記回路ブロックの少なくとも１つのタイプに対して、上記構造化ＡＳＩＣインプリメンテーションが、ＦＰＧＡにおける該タイプの回路ブロックのために用いられる基本回路ユニットの完全な性能よりも低い完全な性能を有する可変数個の構造化ＡＳＩＣ基本回路ユニットを用い、
上記配置することが、該回路ブロックの該構造化ＡＳＩＣインプリメンテーションに必要とされる該構造化ＡＳＩＣ基本ユニットのインスタンスと実質的に同数だけのインスタンスを用いて、上記構造化ＡＳＩＣテンプレート上に、該タイプの各回路ブロックを配置する、項目１２に記載の方法。
【００２５】
（項目１６）
ユーザの論理設計をインプリメントするようにプログラムされたＦＰＧＡと機能上等価な構造化ＡＳＩＣを製造する方法であって、該方法は、
該ユーザの論理設計の構造化ＡＳＩＣインプリメンテーションに対するネットリストにおける各回路ブロックに対して、ライブラリから、該ブロックの構造化ＡＳＩＣの物理レイアウトと、該ブロックのタイミングモデルとを取り出すことと、
構造化ＡＳＩＣテンプレート上に該ブロックの該物理レイアウトを配置することと、
該ネットリストに従って、該構造化ＡＳＩＣテンプレート上に、該ブロックの該物理レイアウト間の相互接続をレイアウトすることと、
所定のタイミング制限が破られないことを確実にするために、該タイミングモデルを用いることと
を包含する、方法。
【発明の効果】
【００２６】
本発明により、（１）結果として得られる構造化ＡＳＩＣと、同じユーザ論理設計をインプリメントするＦＰＧＡとの高度に信頼性のある機能上の等価性が保たれ得、（２）構造化ＡＳＩＣのリソースが効率的に使用され得、（３）最終的な構造化ＡＳＩＣ製品の迅速な利用可能性を促進するためのバックエンドタスクが速く完了され得る。
【発明を実施するための最良の形態】
【００２７】
図１に示される要素の一部は、上記のＳｃｈｌｅｉｃｈｅｒらの文献に示されたものを繰り返しまたは要約する。例えば、フロー要素５０は、Ｓｃｈｌｅｉｃｈｅｒらの図６、図７ａまたは図７ｂのいずれかにおけるハンドオフ設計ファイル８６０の生成をもたらすＳｃｈｌｅｉｃｈｅｒらのステップを要約する。そして、フロー要素５２および５４は、Ｓｃｈｌｅｉｃｈｅｒらのハンドオフ設計ファイル８６０の重要な局面を要約する。（本開示では、用語「カスタマー」は、場合により、ユーザのシノニムとして用いられる。）従って、本明細書におけるフロー要素５２および５４は、Ｓｃｈｌｅｉｃｈｅｒらのハンドオフ設計ファイルが、好適には（１）ユーザ論理設計の構造化ＡＳＩＣインプリメンテーションに向けられたユーザ論理設計のネットリスト（ベリログ（Ｖｅｒｉｌｏｇ）ネットリスト）と、（２）ユーザ論理設計からのタイミングの制限とを含むということを、反映する。
【００２８】
図１のフロー要素の数個の要素（換言すると、要素２０、３０、３２、４０および４２）は、任意の特定のユーザ論理設計に対するハンドオフ設計ファイル（Ｓｃｈｌｅｉｃｈｅｒらにおいては８６０；本明細書では５２／５４）を受け取る前に用意され得るリソース（好適には、用意されるリソース）に関する。これらは、ハンドオフ設計ファイル５２／５４を介して提示されたユーザ論理設計をインプリメントするＦＰＧＡと機能上等価になる構造化ＡＳＩＣの製造の促進に用いられるリソースである。この段落においてリソースと呼ばれるものは、（折々改良および／または追加がなされ得るが）一度展開（ｄｅｖｅｌｏｐ）されることのみを必要とするライブラリリソースである。これらの要素をより詳細に記載する。
【００２９】
要素２０は、ユーザ論理設計において用いられ得る種々のタイプの回路ブロックのリストである。これらとしては、論理セル２１と、メモリブロック２２と、入力／出力（「ＩＯ」または「Ｉ／Ｏ」）ブロック２３と、位相ロックループ（「ＰＬＬ」）ブロック２４と、バッファセル２５とが挙げられる。このリストは例示にすぎず、必要に応じて別のタイプのブロックが含まれ得ることは、理解される。例えば、含められ得る別のタイプのブロックは、遅延ロックループ（「ＤＬＬ」）ブロック、デジタル信号処理（「ＤＳＰ」）ブロックなどである。
【００３０】
ユーザがユーザ論理設計において用い得るブロック２０の各々に対して、少なくとも１つの構造化ＡＳＩＣ構成３０が事前に展開される。ユーザ論理設計のＦＰＧＡインプリメンテーションにおいてユーザが用い得る一部のタイプのブロックは、基本的には、関連の構造化ＡＳＩＣにおいて複製され得る。これは、例えば、メモリブロック２２、ＩＯブロック２３、ＰＬＬブロック２４およびバッファセル２５に当てはまり得る。従って、例えば、一ＦＰＧＡに提供されたメモリブロック２２の各タイプに対して、そのタイプのメモリブロックの少なくとも１つの構造化ＡＳＩＣ構成３０が展開される。これと同様のことが、各タイプのＦＰＧＡ  ＩＯブロック２３、各タイプのＦＰＧＡ  ＰＬＬブロック２４、各タイプのＦＰＧＡバッファセル２５に当てはまる。各々の場合において、少なくとも１つの機能上等価な（場合によっては構造上も類似する）構造化ＡＳＩＣの等価構成３０が展開される。
【００３１】
上記記載と関連して、構成３０が上記の段落において議論した一部のタイプのブロックの７つの異なった形態を含む必要があり得るということに留意されたい。例えば、ＩＯブロック２３は、最終製品におけるそれらの位置（例えば、ブロックがデバイスの左側にあるか、右側にあるか、上側にあるか、それとも下側にあるか）に基づいて、異なり得る。それらのＦＰＧＡの形態では、ＩＯブロック２３は、種々のプログラム可能な局面を有し得る（例えば、ＩＯブロック内のレジスタが用いられるか否か、入力ブロックまたは出力ブロックであるかなど）。構成３０は、好適には、ＩＯブロック変数のこれらの可能性のある組み合わせの全てに対する構造化ＡＳＩＣインプリメンテーションを含む。この点の別の例としては、メモリブロック２２は、複数の異なったサイズで存在し得る。さらに、これらのＦＰＧＡの形態では、これらのメモリ機能のうちの少なくとも１つは、一部の点においてプログラム可能であり得る（例えば、メモリが単一ポートまたはデュアルポートであるか、入力バスの幅、出力バスの幅など）。また同じように、構成３０は、好適には、サポートされることが望まれるこれらのメモリブロックサイズおよび機能の組み合わせの全てに対する構造化ＡＳＩＣインプリメンテーションを含む。さらに別の例としては、ＰＬＬブロック２４は、そのＦＰＧＡの形態で、例えば、ブロックが提供する遅延量に関してプログラム可能であり得る。構成３０は、好適には、サポートされることが望まれるこれらのＰＬＬブロックの可能性の全ての構造化ＡＳＩＣインプリメンテーションを含む。同様のことが、ＦＰＧＡの形態において、強度に関してプログラム可能なバッファセル２５に当てはまり得る。
【００３２】
本発明の「ターゲット」であるデバイスは構造化ＡＳＩＣであるので、これらのデバイスは、常に、同一の基本テンプレート回路を含む。先の２つの段落において議論したタイプの回路ブロックに対しては、このテンプレート回路は、種々の固定された位置において、これらの種々のタイプのブロックの適切な数のインスタンスであると信じられているものの基本回路を含む。例えば、この構造化ＡＳＩＣテンプレート回路は、テンプレートの左側に沿って一つ以上のタイプのＩＯブロック２３からなる基本回路と、デバイスの上部に沿ったこれらのブロック２３よりも多くからなる基本回路などを含み得る。同様に、この構造化ＡＳＩＣテンプレート回路は、テンプレートの固定された位置に数タイプのメモリブロック２２の数個のインスタンスからなる基本回路を含み得る。ＦＰＧＡの形態においてプログラム可能なこれら（および別の類似の「非論理」ブロック（例えば、２４および２５））の局面は、構造化ＡＳＩＣを作成するために用いられるわずかに小数のマスクを適切にカスタマイズすることによって、構造化ＡＳＩＣにおいてインプリメントされる。別のマスク（換言すると、基本回路またはテンプレート回路に対するマスク）は、常に、同じであるか、少なくとも実質的に同じである。カスタマイズされたマスクはまた、種々の回路ブロック間のカスタマイズされた相互接続を提供するために用いられる。（当然、数個の異なった構造化ＡＳＩＣのターゲット製品が存在し得、それらの製品は、回路の性能の異なった範囲をサポートする異なったテンプレートを有し得る。しかし、各ターゲット製品に対して、テンプレート回路は、常に、同じであるか、少なくとも実質的に同じである。構造化ＡＳＩＣにおける特定のカスタマー回路設計をインプリメントするためにカスタマイズする必要のある構造化ＡＳＩＣ製品を作成するために、数個のマスクのみが用いられる。）。
【００３３】
論理セル２１は、上述したものと若干異なるように処理される（しかし、異なるのは若干だけである）。Ｓｃｈｌｅｉｃｈｅｒらの文献が明らかにしたように、ＦＰＧＡ論理セルは、回路の比較的大きなブロックである傾向がある。例えば、ＦＰＧＡ論理セル（Ｓｃｈｌｅｉｃｈｅｒらの文献ではＡＬＥと呼ばれている）は、最大６つの入力信号の任意の論理結合である出力信号を提供し得るルックアップテーブル回路を含み得る。これらの大きなＡＬＥは、本質的には、本発明による構造化ＡＳＩＣにおいて複製されない。その代わりに、構造化ＡＳＩＣのテンプレート回路は、多数のさらに小さな論理セルの原基（ｒｕｄｉｍｅｎｔ）または基本回路（Ｓｃｈｌｅｉｃｈｅｒらの文献ではＨＬＥと呼ばれている）を含む。ＦＰＧＡ  ＡＬＥの機能を実行するために、一つのＨＬＥ、または数個の近隣または近接したＨＬＥが併用される。（このように併用される数個のＨＬＥは、ＨＬＥのクラスタ、すなわちＣＨＬＥと呼ばれる。）ＣＨＬＥは、最大６個のＨＬＥに限定され得る。各ＨＬＥの機能が限定されており、一つのＣＨＬＥにおいて許可されたＨＬＥの数が限定されているので、一つのＣＨＬＥはただ、（一つのＡＬＥに対して可能である６つの入力ではなく）４入力の任意の論理結合を提供することが出来ることが保証されている。一つのＣＨＬＥは、５入力または６入力の特定の組み合わせを提供し得る。しかし、５入力または６入力の別の組み合わせを提供するためには、２つ以上のＣＨＬＥが必要である。いずれにしても、構成３０は、好適には、一つのＦＰＧＡ  ＡＬＥが提供し得る各４入力（およびそれ未満）の論理機能の少なくとも１つの構造化ＡＳＩＣ（換言すると、ＨＬＥ／ＣＨＬＥ）インプリメンテーションを含む。構成３０はまた、一つのＦＰＧＡ  ＡＬＥが提供し得る５入力および６入力の一部の論理機能の少なくとも１つの構造化ＡＳＩＣインプリメンテーションを含み得る。構成３０が提供されない別の５入力および６入力の機能は、これらの機能を、各々がよりそれよりも少ない入力を備えた複数の機能に低減することによって、インプリメントされ得る。例えば、構造化ＡＳＩＣ構成３０が提供していなかった６入力の機能は、構成が提供する複数の５入力および／または４入力の機能によって、インプリメント可能であり得る。
【００３４】
先の段落を簡単に要約すると、構成３０は、一つのＦＰＧＡ  ＡＬＥが提供し得る全ての２入力ロジック、３入力および４入力のロジック機能の少なくとも１つの構造化ＡＳＩＣ（換言すると、ＨＬＥ／ＣＨＬＥ）インプリメンテーションを含む。構成３０はまた、一つのＦＰＧＡ  ＡＬＥが提供し得る５入力および／または６入力の一部の論理機能の少なくとも１つの構造化ＡＳＩＣインプリメンテーションを含み得る。
【００３５】
少なくとも一部の開始ＦＰＧＡ回路ブロック２０に対して二つ以上の構造化ＡＳＩＣ構成３０が展開され得るので、句「少なくとも１つ」を先の議論において数回用いた。これの単なる一例として、特定のＦＰＧＡの４入力ルックアップテーブル機能２１の二つ以上の既知の構造化ＡＳＩＣ  ＨＬＥ／ＣＨＬＥが存在し得る（好適には、存在する）。これら既知の構造化ＡＳＩＣインプリメンテーションの全ては、好適には、その４入力の論理機能をインプリメントする可能な代替としてフロー要素３０に含められる。論理セル２１の構造化ＡＳＩＣ  ＨＬＥ／ＣＨＬＥインプリメンテーションに対して何千（例えば、３０，０００）もの構成３０が存在し得る。このような多数のあらかじめ構築されたライブラリのモデルを有することは、カスタマー設計のターンアラウンドタイムを低減するなどの目的に対して望ましい。
【００３６】
構成３０が含み得る別のものは、ＦＰＧＡのレジスタおよびＦＰＧＡ  ＤＡＰのブロックの構造化ＡＳＩＣ（換言すると、ＨＬＥ／ＣＨＬＥ）である。
【００３７】
フロー要素３０の先の議論をさらに要約すると、その要素は、フロー要素２０における各タイプのＦＰＧＡ回路ブロックと同等の少なくとも１つの構造化ＡＳＩＣに対するネットリストおよびレイアウトの生成を生成または表す。さらに、これは、数個のタイプおよび構成のメモリブロック２２と、数個のタイプおよび構成のＩＯブロック２３と、一つ以上のタイプおよび構成のＰＬＬブロック２４、一つ以上のタイプおよび構成のバッファセル２５、好適には何千もの異なるように構成された論理セル２１などであり得る。構成３０の部分である「レイアウト」は、このような構成の各々の構造化ＡＳＩＣインプリメンテーションに必要とされる完全な物理情報を含む。構成３０の各々は、後述するように、さらに処理される。
【００３８】
構成３０の各々に対して、構造化ＡＳＩＣの物理ライブラリ要素は、物理ライブラリフロー要素３２への算入のために展開される。（参照部材３２とも呼ばれ得る）各物理ライブラリ要素は、対応の回路ブロックに対する上記の構造化ＡＳＩＣのレイアウトである。フロー要素３０の先の議論から明らかであるように、各タイプの開始回路ブロックに対して二つ以上の物理ライブラリ要素３２が存在し得る。例えば、所与のタイプのＩＯブロック２３は、物理ライブラリ３２の４つのバージョン：ＩＯブロックが構造化ＡＳＩＣの左手側にある場合に用いられる第１のバージョン、ＩＯブロックが右手側にある場合に用いられる第２のバージョン、ＩＯブロックが構造化ＡＳＩＣの上部にある場合に用いられる第３のバージョン、および、ＩＯブロックが構造化ＡＳＩＣの下部にある場合に用いられる第４のバージョンにおいて見られ得る。このタイプのＩＯブロック２３がそのＦＰＧＡの形態において一つ以上の点でプログラム可能である場合、ライブラリ３２にはこのタイプのＩＯブロックの５つ以上のバージョンが存在し得る。同一のことが、ライブラリ３２に表されたブロックのような別のタイプの開始ブロック２０に当てはまる。要約すると、構成３０の各々に対して物理ライブラリ要素３２が存在し得る。
【００３９】
フロー要素７０（後に説明する）の動作をスピードアップするために、フロー要素７０において、ライブラリ３２内のレイアウトの完全な物理情報が、少なくとも一部の用途（特に、プレイスアンドルート（ｐｌａｃｅ  ａｎｄ  ｒｏｕｔｅ）動作）に対していわゆる「フレームビュー」に変換され得る。ライブラリ要素３２のフレームビューは、各ライブラリ要素に関するポートおよびブロッケージ情報を含むだけである。フロー要素７０のプレイスアンドルート部は、全てのプレイスアンドルートステップを実行するために、これらの簡略化されたフレームビューのレイアウトを用いる。しかし、最終的には、プレイスアンドルート・ツールは、テープアウト９０用の最終データベースをダンプするために、完全なレイアウト（いわゆる「セルビュー」）を用いる。
【００４０】
タイミング情報は、構造化ＡＳＩＣの物理ライブラリ要素３２の少なくとも一部に必要であり得る。従って、そのようなタイミング情報が必要とされる構成３０の各々は、シミュレーションフロー要素４０において処理される。このフロー要素は、構成３０の各々の動作の性能をシミュレートする。例えば、フロー要素４０は、ＲＣ情報を抽出するために構成３０のレイアウトを用いる。次いで、構成のタイミングの振る舞いをシミュレートするために、フロー要素４０は、構成３０のネットリストと共に、これらのＲＣファイルを用いる。次いで、各ブロックのタイミングの振る舞いは、「ＬＩＢＥＲＴＹ」（または「ＬＩＢ」）形式（工業基準形式）へと変換され、その形式は、フロー要素７０のプレイスアンドルート・ツールおよびフロー要素８０の静的なタイミング分析ツールによって理解され得る。これらのＬＩＢＥＲＴＹタイミングモデルは、ライブラリフロー要素４２に記憶される。
【００４１】
フロー要素４０において実行されるシミュレーションは、（１）構造化ＡＳＩＣを製造するために用いられるプロセス、（２）構造化ＡＳＩＣが動作する電圧、および（３）構造化ＡＳＩＣが動作する温度（または温度範囲）などのファクターについての種々の仮定を反映し得る。（これらのファクターは、場合によっては、プロセス、電圧および温度（すなわちＰＶＴ）ファクターと呼ばれる。）例えば、シミュレーション４０は、最悪の場合のＰＶＴ条件を仮定して実行され得る。あるいは、ＰＶＴに関する異なった仮定を用いて数個の異なったシミュレーションが実行され得る。これは、ユーザ論理設計の数個の異なったＰＶＴ構造化ＡＳＩＣの任意のインプリメンテーションをサポートするために、結果得られるタイミング情報の使用を促進するようになされ得る。
【００４２】
既に記載したように、シミュレーション４０の結果は、タイミングモデルライブラリ４２に蓄積される。従って、タイミング情報が必要とされる物理ライブラリ要素３２の各々に対して、そのタイミング情報は、タイミングモデルライブラリ４２において利用可能である。次の段落に記載するように、ライブラリ３２および４２は、ユーザの論理設計をインプリメントする構造化ＡＳＩＣを作成するためにその設計が処理されるときにおいて、リソースとして利用可能である。先に記載したように、好適には、フロー要素３０は何千ものあらかじめ構築されたライブラリモデルを含むので、フロー要素３２および４２はまた、好適には、対応した多数のあらかじめ構築された物理およびタイミングモデルを含む。また同じように、これらの多数のあらかじめ構築された物理およびタイミングモデルは、カスタマー設計のターンアラウンド時間を低減するなどの目的に望ましい。
【００４３】
既に記載したように、ユーザの論理設計に対するハンドオフ設計ファイルは、２つの主要部：（１）その設計の構造化ＡＳＩＣインプリメンテーションに対するネットリスト５２と（２）その設計に関連したタイミングの制限５４とを含む。ネットリスト５２は、そのネットリストにおいて具体化されるユーザの論理設計の構造化ＡＳＩＣインプリメンテーションの製造に向けられている。例えば、ネットリスト５２は、それのために物理要素がライブラリ３２に存在し、必要に応じてそのためにタイミングモデルがライブラリ４２に存在する回路ブロックのみを用いる。さらに、ネットリスト５２は、そのネットリストにおいて用いた回路ブロックに関するかなりの量の情報を保存する。例えば、ネットリスト５２は、好適には、構成３０、従ってライブラリ３２および４２における対応の回路ブロックの識別子と関連する、用いた回路ブロックの識別子（Ｓｃｈｌｅｉｃｈｅｒらの文献では「ｃ数」と呼ばれている）を含む。ネットリスト５２はまた、一部のタイプの回路ブロックに対する「構成」情報を含み得る。この構成情報は、回路ブロックがどの構成をとるのかについてのバックエンド（換言すると、本発明）を伝える。例えば、ＩＯブロック２３に対するネットリスト５２の回路ブロック情報は、最終的な構造化ＡＳＩＣ製品上のどこにそのＩＯブロックが配置されるべきかについての情報を反映し得る。これは、ＩＯブロックの種々の構成要素のレイアウトと、構造化ＡＳＩＣデバイス上のＩＯブロックの配置との双方に影響し得る。別の例として、メモリブロック２２に対するネットリスト５２の情報は、入力バスの幅、出力バスの幅などのメモリブロックの構成可能な局面を特定する構成情報を含み得る。
【００４４】
ハンドオフ設計ファイルの構成要素５４に含まれ得るタイミング制限の例としては、（１）Ｆｍａｘクロック周波数（例えば、１００ＭＨｚであり、これは、１０ｎｓのクロック周期を意味する）の規定と、（２）入力インタフェースのタイミング要求と、（３）出力インタフェースのタイミング要求と、（４）別の類似のタイミング要求とが挙げられる。１００ＭＨｚのＦｍａｘの例を続けると、この場合では、フロー要素７０におけるプレイスアンドルート・ツールおよびフロー要素８０における静的なタイミング分析ツールは、全てのレジスタ−レジスタ経路に対して１０ｎｓに合わせようと試みる。（当然、カスタマー設計のコンパイル５０は、ネットリスト５２などのネットリストを生成するときにおいて、タイミングのチェックが可能なものをすべて含む）。
【００４５】
本発明によると、ハンドオフ設計ネットリスト５２は、最終的な構造化ＡＳＩＣ製品において必要および／または望ましいが、一般的にはユーザに関心がないかユーザによりアクセス可能でないネットリスト要素を加えるように、フロー要素６０によって、操作される。例えば、フロー要素６０は、典型的には、クロックネットワークおよびクロック接続を盛り込む。フロー要素６０はまた、カスタマー設計にはないグローバル信号接続（グローバルリセット／プリセットなど）を盛り込む。
【００４６】
フロー要素６０はまた、任意の回路ブロック（そのブロックに対するネットリスト５２には適切な構成情報が含まれる）のｃ数に、その構成を備えたその回路ブロックに対応する物理ライブラリ要素３２を一意に識別する回路ブロックに対する構成データを、アペンドする。例えば、ネットリスト５２の構成情報は、構成可能な論理ブロックに特定の構成を与えるのに必要な構成ＲＡＭ（「ＣＲＡＭ」）の状態をエンコードし得る。フロー要素６０は、対応の物理ライブラリ要素３２を一意に識別するために、このＣＲＡＭのビットコードを回路ブロックに対するｃ数にアペンドし得る。
【００４７】
フロー要素６０はまた、テストマルチプレクサ（ｍｕｘ）の製造およびテスト信号接続を盛り込み得る。（このタイプの非常に一般的な回路は、いわゆるスキャンチェーン回路であり、その回路は、デバイス上のフリップフロップが、シフトレジスタのようにチェーン状に、一時的に相互に接続されることを可能にする。そのデバイスが適切に製造されたかをテストするために、データが、そのようなレジスタのチェーンに、チェーンを介して、チェーンからシフトされ得る。）フロー要素６０はまた、不使用セル（例えば、ＨＬＥ、メモリブロック、ＰＬＬブロックなど）を盛り込み得る。それによって、使用されていない場合でさえ、ターゲットの構造化ＡＳＩＣデバイスの全リソースが適切に占められ、処理される。フロー要素６０はまた、カスタマー設計のコンパイルフロー要素５０には見られないブロック（例えば、電源オン−リセット回路、較正回路、フューズなど）を盛り込み得る。フロー要素６２は、ネットリスト５２のステップ６０の動作から生じる後処理ネットリストである。
【００４８】
後処理ネットリスト６２が生成された後において、ハンドオフネットリスト５２と後処理ネットリスト６２との論理上の同等性をチェックすることは望ましくあり得る。これは、（テストモードとは区別されるような）ユーザモードにおいて正式な照合によってなされ得る。
【００４９】
後処理ネットリスト６２が生成された後には、ステップ７０の実行の準備は全て整う。ステップ７０は、ユーザの論理設計をインプリメントする構造化ＡＳＩＣの最終的な設計を生成する。ステップ７０において、構造化ＡＳＩＣを生成するためにカスタマイズ（これらのマスクのカスタム化も含む）する必要のあるマスクを実際に特定するためのデータが生成される。ステップ７０は、フロー要素５４および６２からユーザの論理設計に関する全ての必要な情報を取得する。ステップ７０は、ユーザ論理設計情報５４／６２の処理において、フロー要素３２および４２からのライブラリ情報を用いる。
【００５０】
ステップ７０は、いくつかのサブステップの実行を含む。これらとしては、（１）プレイスアンドルート動作と、（２）スキャン並び替え動作と、（３）クロストーク閉止動作と、（４）アンテナ閉止動作と、（５）タイミングの最適化と、（６）設計ルールのチェック（「ＤＲＣ」）およびレイアウト  対  回路図（「ＬＶＳ」）の認証動作と、（７）電力およびＥＭ分析とが挙げられる。次の動作の実行中に検出された要求を満たすように実行された動作の一部の再実行を引き起こし得るこれらの動作間の特定の相互作用があり得るということに留意されたいが、これらは、以下の段落において順々に考察する。
【００５１】
ステップ７０のプレイスアンドルート部は、ネットリスト６２において特定された各回路ブロックのインプリメントに適したライブラリ３２内の物理レイアウトを見つけることを含む。これは、カスタマー設計コンパイル５０からの配置の制限、またはカスタマーからのコンパイル５０を満たす配置の制限を考慮することを含み得る。例えば、カスタマーが特定したＩＯブロックは、最終の構造化ＡＳＩＣデバイスの適切な側面に沿った概ね対応の位置を有する必要のあり得る特定のピンアウト位置を有する必要がある。フロー要素７０のプレイスアンドルート部は、一部分は、ライブラリ３２内において、正確な左側、右側、上側または下側のレイアウトでの正確なタイプのＩＯブロックのインプリメンテーションを見つけることによって、この配置の要求に適応させる。フロー要素７０のプレイスアンドルート部はまた、ハンドオフ設計ファイル部５４からのカスタマータイミング制限と、タイミングモデルライブラリ４２からのタイミング性能情報とを考慮に入れ得る。例えば、長ルーティングまたは高ファンアウトのためにタイミング要求が満たされない場合では、プレイスアンドルート・ツール７０は、より強力な駆動力を備えたバッファ（このようなセルが利用可能な場合）を盛り込み得る。
【００５２】
ネットリスト６２において特定された回路ブロック全てのインプリメンテーションを物理ライブラリ３２から選択することに加えて、ステップ７０のプレイスアンドルート部は、これらのインプリメンテーションの全てを物理的に利用可能な「現実のスペース（ｒｅａｌ  ｅｓｔａｔｅ）」および構造化ＡＳＩＣテンプレートの基本回路リソースに配置する。また、これらのテンプレートまたはベース設計層（プログラム層を除く）が、これらの層のマスクがターンアラウンドタイム（「ＴＡＴ」）および非回復可能エンジニアリング（「ＮＲＥ」）コストを省くためにあらかじめ構築され得るように、固定されているということは、先の議論から思い出される。いったんプログラムされた設計がプレイスアンドルートされると、プログラマブルな金属層およびビアは、カスタマー設計情報を有することになり、ベース層とともに、完全な構造化ＡＳＩＣ製品の設計を形成する。従って、カスタマーの設計には数個のプログラマブル層のみをカスタマイズ必要がある。構造化ＡＳＩＣ上のどこにライブラリ３２からの物理レイアウトを配置するかを決定するときにおいて、ステップ７０のプレイスアンドルート部はまた、（例えばハンドオフ設計ファイル部５４から）適用可能な配置およびタイミングの制限を考慮し得る。ステップ７０のプレイスアンドルート部はまた、ネットリスト６２において特定された回路ブロックをインプリメントするのに用いるためにライブラリ３２から選択された回路ブロックの複数の物理レイアウト間における必要な全ての接続を、作成および物理的にレイアウト（「ルート」）する。プレイスアンドルート・ツールは、上記の物理ライブラリ要素３２の簡略化した「フレームビュー」と協働し得る。少なくとも最初は、これらのフレームビューは、フロー要素７０のプレイスアンドルート部がこの作業を行うことを可能にするのに十分なポートおよびブロッケージ情報を含む。その後、ライブラリ要素３２の全詳細がフロー要素７０に引き寄せられ得る（例えば、製造される構造化ＡＳＩＣ製品のテープアウト９０に必要なデータの完全な生成を可能にするために）。
【００５３】
ステップ７０のプレイスアンドルート部が、ネットリスト６２において特定された設計全体に対して実行された後において、ステップ６０に盛り込まれたスキャンチェーンにおけるレジスタは、ステップ６０において検討された順序を失い得る。従って、ステップ７０のスキャン並び替え部は、スキャンチェーンにおけるレジスタの必要な全ての並び替えを実現するように実行される。
【００５４】
ステップ７０のクロストーク閉止部は、導体間をクロストークするように導電性であり得るパターンの相互接続導体を探すように実行される。例えば、比較的長い距離にわたってすぐ側に隣接した２つの導体は、それらの導体間にクロストークを生じ得る。そのような導体のパターンが見つけられた場合では、ステップ７０のクロストーク閉止部は、クロストークのリスクを低減または削除するために、そのリスクを有する導体の物理ルーティングを変更し得る。
【００５５】
ステップ７０のアンテナ閉止部は、製造プロセスにおいてデバイスの別の回路に損傷を与えるに十分強い電荷を集め得る長いワイヤを探すように実行される。このような長いワイヤが検出される場合には、望ましくなく回路に存在するアンテナのリスクを低減または削除するために、プレイスアンドルートの修正がなされ得る。
【００５６】
ステップ７０のタイミング最適化部は、タイミングに関するプレイスアンドルート動作の結果の性能の改善を試みるよう実行され得る。例えば、ステップ７０のタイミング最適化部は、プレイスアンドルート動作の結果を介して比較的遅い経路を探し得、次いで、そのような比較的遅い経路をスピードアップする方法を探し得る。この例を続けると、経路は、回路ブロック間に比較的長い相互接続を一つ以上含むので、その経路は、比較的遅くあり得る。ステップ７０のタイミング最適化部は、セットアップ時間の要求を満たすために、その経路に強力なバッファを盛り込むことによって、または駆動セルサイズを増すことによって（このようなセルが利用可能な場合）、この経路をスピードアップすることを試み得る。別の例として、保持時間の問題は、データ経路の遅延を増やすようにバッファまたは遅延セルを盛り込むことによって、解決され得る。タイミングの性能を改善するようにセルを移動させることは可能であり得る。ステップ７０のタイミング最適化部が、カスタマーの設計によって特定されたタイミングの制限５４内で動作する（換言すると、制限に適合し、制限を破らない）ことは、理解される。確かに、ステップ７０のタイミング最適部は、ステップ７０がタイミングの制限５４を満たす態様の一局面であり得る。
【００５７】
ステップ７０の設計ルールチェック（「ＤＲＣ」）部は、ユーザが意図した構造化ＡＳＩＣの製造「設計ルール」が従うべきものは、ステップ７０において構造化ＡＳＩＣに対して展開された物理レイアウトの部分によって破られないということを、確実にする。必要に応じて、その製造設計ルールが全ての点で破られないように、ステップ７０の設計ルールチェック部は、展開された物理レイアウトを修正する。
【００５８】
ステップ７０のレイアウト  対  回路図（ネットリスト）（「ＬＶＳ」）部は、物理レイアウトがネットリストを正確に反映することを確実にするように展開された物理レイアウトをチェックする。例えば、このチェックは、レイアウトがネットリストと同じ接続を有する、短絡がない、などのことを確実にする。
【００５９】
上記記載から、ステップ７０が反復性の局面を有し得ることは、理解される。例えば、ＤＲＣがステップ７０の終りへと向かい実行される場合、そして、先のプレイスアンドルート結果においてある変化を生じさせる場合では、（例えば、可能性のあるさらなるスキャン並び替えを実行するために、まだクロストークおよびアンテナの閉止が存在することを確実にするために、さらなるタイミング最適化の必要があるか否かを決定するために、など）ステップ７０の反復部分の一部または全ては、再度実行する必要があり得る。
【００６０】
図２ａおよび図２ｂは、プレイスアンドルートステップ７０の例示的な実施形態をより詳細に示す。ステップ１１０では、適切なライブラリ環境３２／４２は、プレイスアンドルート・ツールにセットアップされるか、そのツールに利用可能にされる。ステップ１１２では、ターゲットの構造化ＡＳＩＣデバイスの床配置は、プレイスアンドルート・ツールにロードされる。他では、この床配置情報は、ターゲットの構造化ＡＳＩＣのテンプレートまたは基本（固定）回路と呼ばれる。ステップ１１４では、あらかじめ構築されたクロックツリー、電力ネットワークおよび別のマクロが読み込まれる。この一部または全部は、フロー要素６０に関連して説明したように追加される種類の情報であり得る。ステップ１１６では、（例えば、フロー要素５４から）タイミング制限がロードされる。
【００６１】
ステップ１２０では、後処理ネットリスト６２からのセルは、配置制限に従って配置される。ステップ１３０では、必要な全てのスキャンの並び替えが実行される。ステップ１４０では、既に配置されたブロック間の必要な全ての接続をルート割り当てする。ステップ１５０では、（例えば、接続を適切に再ルーティングすることによって）おこり得る全てのクロストークを除去する。ステップ１６０では、全てのアンテナの問題は、（例えば、必要に応じて要素を再配置することによって）解消される。ステップ１７０では、タイミングの最適化が実行される。ステップ１８０では、設計ルールのチェックおよびレイアウト  対  回路図の認証が実行される。
【００６２】
また、図２ａおよび図２ｂは完全に一方向かつ一回限りの流れを示唆し得るが、一部の後のステップの結果が、前の一つ以上のステップの再実行の必要を生じ得ること、およびこれが種々の態様で二回以上起こり得る。
【００６３】
ステップ７０の全ての部分を実行した後において、その結果は、ユーザの論理設計をインプリメントするように製造される構造化ＡＳＩＣに対する完全な仕様（物理レイアウト）である。この完全な物理レイアウトは、ステップ８０へと渡される。このステップは、設計の全部分が静的なタイミングルールを満たすことを確実にするために、設計に静的なタイミング分析を行う。ステップ８０が静的なタイミングルールの破れを見つける場合では、ステップ７０に、設計を変更させる命令（技術変更指示すなわち「ＥＣＯ」の形態の命令）を出す。例えば、ステップ８０は、レジスタが登録される信号のソースからかなり遠くにあるために静的なタイミングルールが破られているということを見つけ得る。このように、ステップ８０は、ステップ７０に技術変更指示を出し得、レジスタがその信号源から特定の距離未満にある必要があるということを指定する。次いで、ステップ７０は、このさらなる制限とともに実行される。これによって、構造化ＡＳＩＣに対する修正された物理レイアウトが生じ、このレイアウトはまた、別の静的なタイミングのチェックのためにステップ８０へと渡される。
【００６４】
タイミングをサインオフするために、静的なタイミング分析ツール（「ＳＴＡ」）８０が用いられる。これはタイミングのサインオフのためであるので、ＲＣ分析は、正確である必要がある。従って、設計のＲＣ特性を抽出するために、ステップ７０からのプレイスアンドルートデータベースは、正確なＲＣ抽出ツールへと渡される。この抽出されたＲＣと、プレイスアンドルートネットリストと、（たとえば、フロー要素５４からの）タイミングの制限とを用いて、ＳＴＡツール８０は、設計がカスタマーのタイミングの仕様と合うことを確実にするために、その設計を分析する。タイミングの使用が合わない場合では、フロー要素７０への逆の自動ＥＣＯフローが用いられる。タイミングを失った経路に基づいて、ＳＴＡツール８０内のＥＣＯフローは、必要な調節をするために、プレイスアンドルート・ツール７０に対するコマンドを生成する。一旦プレイスアンドルート・ツール７０がＥＣＯの変更を完了すると、ＳＴＡフロー８０は、タイミングがＳＴＡに合格するまで、繰り返される。
【００６５】
静的なタイミングの破れ（またはさらなる静的なタイミングの破れ）を見つけることなくステップ８０が実行される場合では、構造化ＡＳＩＣのレイアウトは、製造できる状態にある。従って、構造化ＡＳＩＣのレイアウトは、構造化ＡＳＩＣデバイスの実際の製造を制御するために用いられ得るデータの形式で、ステップ９０において「テープアウト」される。
【００６６】
図３は、フローのこの部分の例示的な実施形態をより詳細に示す。図１と比較すると、図３は、フロー要素８５の追加を示す。この要素は、タイミングのサインオフ（ステップ８０）が達成されたときにおいて、テープアウトステップ９０に入力され得る業界標準の形式のデータ（「ＧＤＳＩＩ」）における最終的な、完全かつ詳細な構造化ＡＳＩＣ設計の物理レイアウトを取り込む。
【００６７】
上記記載が、構造化ＡＳＩＣがインプリメントするように製造されるものと同じユーザの論理設計をインプリメントするようにプログラムされたＦＰＧＡと機能上同等な構造化ＡＳＩＣの製造という、Ｓｃｈｌｅｉｃｈｅｒらの文献に記載の目的（本明細書において再度繰り返している目的）と一致するということは、理解される。例えば、ネットリスト５２は、（Ｓｃｈｌｅｉｃｈｅｒらの文献にあるように）、本発明による、構造化ＡＳＩＣの最終の物理レイアウトを実行するための基礎を形成する構造化ＡＳＩＣリソース（本明細書では構成３０）の同一のライブラリを用いて、コンパイルされる。本明細書では、Ｓｃｈｌｅｉｃｈｅｒらの文献において従うものと同じブロックごとのアプローチが、続けられる。構造化ＡＳＩＣのインプリメンテーションに対するユーザの論理設計の根底の再合成は、避けられる。その代わりに、ＦＰＧＡ回路ブロック２０の各々は、機能上等価であると知られている構造化ＡＳＩＣブロックに、置き換えられる。ＦＰＧＡの回路ブロックのこのように等価であると知られた構造化ＡＳＩＣインプリメンテーションの大きなライブラリ３０は、Ｓｃｈｌｅｉｃｈｅｒらのコンパイルおよび本明細書における構造化ＡＳＩＣの物理レイアウトを実行するときにおいて、引き出される。全ての大きな論理再合成を避けるために、プロセス全体にわたって、等価なＦＰＧＡと構造化ＡＳＩＣ回路ブロックとの一対一の対応が保たれる。これは、構造化ＡＳＩＣデバイスに論理上の誤差を導入するリスクなしで、ステップ７０に、（例えば、タイミングの制限を満たし、クロストーク、アンテナ生成などの問題を避けるために）ブロックを移動させる特定の自由を与えることを助ける。本発明はまた、Ｓｃｈｌｅｉｃｈｅｒらのコンパイルを介して流れたユーザのタイミングの制限５４が、構造化ＡＳＩＣに対する物理レイアウトの展開において、順守およびインプリメントされることを可能にする。このことは、ＦＰＧＡと、同じユーザ論理設計をインプリメントする構造化ＡＳＩＣとの機能上の等価性を確実にすることをさらに助ける。
【００６８】
図４は、本発明の別のとり得る局面を示す。これは、本発明による一つ以上の方法を少なくとも部分的には実行する機械可読命令１２１０（例えば、コンピュータプログラム）でエンコードされた機械可読媒体１２００（例えば、磁気ディスク、光ディスク、磁気テープなど）である。
【００６９】
上記記載は本発明を例示したものに過ぎず、本発明の範囲および精神を逸脱せずに、当業者によって種々の改変がなされ得るということは、理解される。例えば、種々のステップ７０動作が実行される順序は、図１または図２ａおよび図２ｂに示したものや、上述したものと異なり得る。
【００７０】
以上のように、本発明の好ましい実施形態を用いて本発明を例示してきたが、本発明は、この実施形態に限定して解釈されるべきものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。本明細書において引用した特許出願は、その内容自体が具体的に本明細書に記載されているのと同様にその内容が本明細書に対する参考として援用されるべきであることが理解される。
【００７１】
ユーザの論理設計を実行するようにプログラムされたＦＰＧＡと機能上等価な構造化ＡＳＩＣを製造するプロセスの一部として、ＡＳＩＣインプリメンテーションに対して準備された設計のコンパイルが、構造化ＡＳＩＣの物理レイアウトに変換される。この物理レイアウトの製造は、ユーザによって提供されたタイミング制限を順守し、また、基準のプログラムされたＦＰＧＡに対する機能上の等価性を保つ。構造化ＡＳＩＣは、生成された物理レイアウトから製造され得る。
【図面の簡単な説明】
【００７２】
【図１】図１は、本発明による方法の例示的な実施形態の略フローチャートである。
【図２ａ】図２ａと図２ｂは、あわせて、図１の一部分の例示的な実施形態をより詳細に示す略フローチャートである。
【図２ｂ】図２ａと図２ｂは、あわせて、図１の一部分の例示的な実施形態をより詳細に示す略フローチャートである。
【図３】図３は、図１の別の部分の例示的な実施形態をより詳細に示す略フローチャートである。
【図４】図４は、本発明のとり得る局面による例示的な機械可読媒体の略ブロック図である。
【符号の説明】
【００７３】
２０  ベース設計（ＦＰＧＡ）
３０  構成（ネットリスト＆レイアウト）
３２  物理ライブラリ
４０  シミュレーション
４２  タイミングモデル
５０  カスタマー設計のコンパイル
５２  カスタマー設計のベリログネットリスト
５４  カスタマー設計のタイミング制限
６０  ネットリスト、後処理、スキャンチェーンの盛り込み
６２  後処理ネットリスト
７０  プレイス＆ルート、スキャン並び替え、クロストーク閉止、アンテナ閉止、タイミング最適化、ＤＲＣ＆ＬＶＳ
８０  タイミングサインオフ、静的なタイミング分析
９０  テープアウト
【図１】
2006338659.tif 000003
【図２ａ】
2006338659.tif 000004
【図２ｂ】
2006338659.tif 000005
【図３】
2006338659.tif 000006
【図４】
2006338659.tif 000007