JP2006338659A - フィールドプログラマブルゲートアレイと等価な構造化特定用途向け集積回路を製造する方法 - Google Patents
フィールドプログラマブルゲートアレイと等価な構造化特定用途向け集積回路を製造する方法 Download PDFInfo
- Publication number
- JP2006338659A JP2006338659A JP2006142143A JP2006142143A JP2006338659A JP 2006338659 A JP2006338659 A JP 2006338659A JP 2006142143 A JP2006142143 A JP 2006142143A JP 2006142143 A JP2006142143 A JP 2006142143A JP 2006338659 A JP2006338659 A JP 2006338659A
- Authority
- JP
- Japan
- Prior art keywords
- structured asic
- netlist
- physical layout
- block
- timing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/06—Structured ASICs
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
【課題】ユーザの論理設計をインプリメントするようにプログラムされたFPGAと機能上等価な構造化ASICに対する物理レイアウトを好適に生成する方法を提供する。
【解決手段】本発明による、ユーザの論理設計をインプリメントするようにプログラムされたFPGAと機能上等価な構造化ASICに対する物理レイアウトを生成する方法は、該ユーザの論理設計の構造化ASICインプリメンテーションに対するネットリストにおける各回路ブロックに対して、ライブラリから該ブロックの構造化ASICの物理レイアウトを取り出すこと(70)と;構造化ASICテンプレート上に該ブロックの該物理レイアウトを配置すること(70)と;該ネットリストに従って、該構造化ASICテンプレート上に、該ブロックの該物理レイアウト間の相互接続をレイアウトすること(70)とを含む。
【選択図】図1
【解決手段】本発明による、ユーザの論理設計をインプリメントするようにプログラムされたFPGAと機能上等価な構造化ASICに対する物理レイアウトを生成する方法は、該ユーザの論理設計の構造化ASICインプリメンテーションに対するネットリストにおける各回路ブロックに対して、ライブラリから該ブロックの構造化ASICの物理レイアウトを取り出すこと(70)と;構造化ASICテンプレート上に該ブロックの該物理レイアウトを配置すること(70)と;該ネットリストに従って、該構造化ASICテンプレート上に、該ブロックの該物理レイアウト間の相互接続をレイアウトすること(70)とを含む。
【選択図】図1
Description
本発明は、特定用途向け集積回路(「ASIC」)に関し、より詳しくは、場合により構造化ASICとしても知られるタイプのASICに関する。
Schleicherらの2005年4月1日に出願された特許文献1(整理番号174/389)は、プログラムされたフィールドプログラマブルゲートアレイ(「FPGA」)および構造化ASICにおけるユーザの論理設計の機能上等価なインプリメンテーションを生成するために用いられ得るデータ、を生成するためのユーザ論理設計と協働する方法を示す。(このSchleicherらの文献は、本明細書では、その全容を援用する。)例えば、FPGAの場合では、Schleicherらの文献は、ユーザ論理設計をインプリメントするようにFPGAのプログラミングにおいて用いるデータを生成するように、ユーザ論理設計を操作する一連のステップを示す。構造化ASICの場合では、Schleicherらの文献は、この文献においてハンドオフ設計ファイルと呼ばれるものを生成するように、ユーザ論理設計を操作する一連のステップを示す。これらは、ユーザ論理設計が、同一のユーザ論理設計のFPGAインプリメンテーションとのこのインプリメンテーションの機能上の等価を確実にするのを助けるために、構造化ASICにおいて実際にインプリメントされる態様を詳しく特定することを意図した設計ファイルである。
米国特許出願第11/097,633号明細書
しかし、これらのハンドオフ設計ファイルを構造化ASICの製造の制御に必要な最終的なデータに変えるためには、これらのファイルにさらなる作業を行う必要があるということは、理解される。このさらなる作業は、Schleicherらの文献では、構造化ASICの設計プロセスのバックエンドと呼ばれているものであり、本発明の主題である。さらに、Schleicherらの文献に見られるように、本発明の重要な目的は、(1)結果として得られる構造化ASICと、同じユーザ論理設計をインプリメントするFPGAとの高度に信頼性のある機能上の等価性を保つことと、(2)構造化ASICのリソースを効率的に使用することと、(3)最終的な構造化ASIC製品の迅速な利用可能性を促進するためのバックエンドタスクを速く完了することとである。
(発明の概要)
本発明によると、ユーザ論理設計をインプリメントするようにプログラムされたFPGAと機能上等価な構造化ASICに対する物理レイアウトを生成する方法は、FPGA回路ブロックの構造化ASIC等価物の物理レイアウトのライブラリから、ユーザ論理設計の構造化ASICインプリメンテーションに対するネットリスト(netlist)に存在する種々の回路ブロックに対する物理レイアウトを取り出すことを含む。このブロックの取り出された物理レイアウトは、構造化ASICに対するテンプレート上に配置される。物理レイアウトブロック間の相互接続は、ネットリストに従って、構造化ASICテンプレート上にレイアウトされる。
本発明によると、ユーザ論理設計をインプリメントするようにプログラムされたFPGAと機能上等価な構造化ASICに対する物理レイアウトを生成する方法は、FPGA回路ブロックの構造化ASIC等価物の物理レイアウトのライブラリから、ユーザ論理設計の構造化ASICインプリメンテーションに対するネットリスト(netlist)に存在する種々の回路ブロックに対する物理レイアウトを取り出すことを含む。このブロックの取り出された物理レイアウトは、構造化ASICに対するテンプレート上に配置される。物理レイアウトブロック間の相互接続は、ネットリストに従って、構造化ASICテンプレート上にレイアウトされる。
本発明の方法の少なくとも一部のステップは、ユーザによって提供される一つ以上のタイミング制限に従うように実行され得る。
本方法は、製造後の構造化ASICのテストを容易にする回路をネットリストに追加することを含み得る。
本方法は、クロストークの閉止(closure)と、アンテナの閉止と、タイミングの最適化と、設計ルールのチェックと、設計 対 回路図とのチェックと、静的なタイミング分析とのうちの任意の一つ以上を含み得る。
本発明のさらなる特徴、ならびにその性質および種々の利点は、添付の図面と下記の詳細な説明とからより明確になる。
本発明は、さらに以下の手段を提供する。
(項目1)
ユーザの論理設計をインプリメントするようにプログラムされたFPGAと機能上等価な構造化ASICに対する物理レイアウトを生成する方法であって、該方法は、
該ユーザの論理設計の構造化ASICインプリメンテーションに対するネットリストにおける各回路ブロックに対して、ライブラリから該ブロックの構造化ASICの物理レイアウトを取り出すことと、
構造化ASICテンプレート上に該ブロックの該物理レイアウトを配置することと、
該ネットリストに従って、該構造化ASICテンプレート上に、該ブロックの該物理レイアウト間の相互接続をレイアウトすることと
を包含する、方法。
ユーザの論理設計をインプリメントするようにプログラムされたFPGAと機能上等価な構造化ASICに対する物理レイアウトを生成する方法であって、該方法は、
該ユーザの論理設計の構造化ASICインプリメンテーションに対するネットリストにおける各回路ブロックに対して、ライブラリから該ブロックの構造化ASICの物理レイアウトを取り出すことと、
構造化ASICテンプレート上に該ブロックの該物理レイアウトを配置することと、
該ネットリストに従って、該構造化ASICテンプレート上に、該ブロックの該物理レイアウト間の相互接続をレイアウトすることと
を包含する、方法。
(項目2)
上記取り出すことと、上記配置することと、上記レイアウトすることとのうちの少なくとも1つの少なくとも一部の局面を実行するときにおいて、上記ユーザによって提供される少なくとも1つのタイミング制限に従うことをさらに包含する、項目1に記載の方法。
上記取り出すことと、上記配置することと、上記レイアウトすることとのうちの少なくとも1つの少なくとも一部の局面を実行するときにおいて、上記ユーザによって提供される少なくとも1つのタイミング制限に従うことをさらに包含する、項目1に記載の方法。
(項目3)
製造後の上記構造化ASICのテストを容易にする回路を上記ネットリストに追加することをさらに包含する、項目1に記載の方法。
製造後の上記構造化ASICのテストを容易にする回路を上記ネットリストに追加することをさらに包含する、項目1に記載の方法。
(項目4)
少なくとも1つの回路ブロックに対して、上記ライブラリは関連のタイミングモデルを含み、
該回路ブロックに対して、上記取り出すことが、該関連のタイミングモデルを取り出すことを包含する、項目2に記載の方法。
少なくとも1つの回路ブロックに対して、上記ライブラリは関連のタイミングモデルを含み、
該回路ブロックに対して、上記取り出すことが、該関連のタイミングモデルを取り出すことを包含する、項目2に記載の方法。
(項目5)
上記従うことが、上記関連のタイミングモデルを用いることを包含する、項目4に記載の方法。
上記従うことが、上記関連のタイミングモデルを用いることを包含する、項目4に記載の方法。
(項目6)
クロストークの可能性に関して、上記構造化ASICに対する上記物理レイアウトをチェックすることをさらに包含する、項目1に記載の方法。
クロストークの可能性に関して、上記構造化ASICに対する上記物理レイアウトをチェックすることをさらに包含する、項目1に記載の方法。
(項目7)
アンテナの可能性に関して、上記構造化ASICに対する上記物理レイアウトをチェックすることをさらに包含する、項目1に記載の方法。
アンテナの可能性に関して、上記構造化ASICに対する上記物理レイアウトをチェックすることをさらに包含する、項目1に記載の方法。
(項目8)
上記構造化ASICの上記物理レイアウトにタイミング最適化をかけることをさらに包含する、項目1に記載の方法。
上記構造化ASICの上記物理レイアウトにタイミング最適化をかけることをさらに包含する、項目1に記載の方法。
(項目9)
設計ルール違反に関して、上記構造化ASICに対する上記物理レイアウトをチェックすることをさらに包含する、項目1に記載の方法。
設計ルール違反に関して、上記構造化ASICに対する上記物理レイアウトをチェックすることをさらに包含する、項目1に記載の方法。
(項目10)
上記構造化ASICの上記物理レイアウトに静的なタイミング分析をかけることをさらに包含する、項目1に記載の方法。
上記構造化ASICの上記物理レイアウトに静的なタイミング分析をかけることをさらに包含する、項目1に記載の方法。
(項目11)
項目1に記載の方法を実行するための機械可読命令でエンコードされた機械可読媒体。
項目1に記載の方法を実行するための機械可読命令でエンコードされた機械可読媒体。
(項目12)
ユーザの論理設計をインプリメントするようにプログラムされたFPGAと機能上等価な構造化ASICを製造する方法であって、該方法は、
該ユーザの論理設計の構造化ASICインプリメンテーションに対するネットリストにおける各回路ブロックに対して、ライブラリから該ブロックの構造化ASICの物理レイアウトを取り出すことと、
構造化ASICテンプレート上に該ブロックの該物理レイアウトを配置することと、
該ネットリストに従って、該構造化ASICテンプレート上に、該ブロックの該物理レイアウト間の相互接続をレイアウトすることと、
該配置することと該レイアウトすることとの結果に従って、該構造化ASICを製造することと
を包含する、方法。
ユーザの論理設計をインプリメントするようにプログラムされたFPGAと機能上等価な構造化ASICを製造する方法であって、該方法は、
該ユーザの論理設計の構造化ASICインプリメンテーションに対するネットリストにおける各回路ブロックに対して、ライブラリから該ブロックの構造化ASICの物理レイアウトを取り出すことと、
構造化ASICテンプレート上に該ブロックの該物理レイアウトを配置することと、
該ネットリストに従って、該構造化ASICテンプレート上に、該ブロックの該物理レイアウト間の相互接続をレイアウトすることと、
該配置することと該レイアウトすることとの結果に従って、該構造化ASICを製造することと
を包含する、方法。
(項目13)
上記回路ブロックの少なくとも一部に対して、上記ライブラリは関連のタイミングモデルを含み、
そのような回路ブロックに対して、上記取り出すことが、該関連のタイミングモデルを取り出すことを包含する、項目12に記載の方法。
上記回路ブロックの少なくとも一部に対して、上記ライブラリは関連のタイミングモデルを含み、
そのような回路ブロックに対して、上記取り出すことが、該関連のタイミングモデルを取り出すことを包含する、項目12に記載の方法。
(項目14)
所定のタイミング制限が破られないことを確実にするために、上記関連のタイミングモデルを用いることをさらに包含する、項目13に記載の方法。
所定のタイミング制限が破られないことを確実にするために、上記関連のタイミングモデルを用いることをさらに包含する、項目13に記載の方法。
(項目15)
上記回路ブロックの少なくとも1つのタイプに対して、上記構造化ASICインプリメンテーションが、FPGAにおける該タイプの回路ブロックのために用いられる基本回路ユニットの完全な性能よりも低い完全な性能を有する可変数個の構造化ASIC基本回路ユニットを用い、
上記配置することが、該回路ブロックの該構造化ASICインプリメンテーションに必要とされる該構造化ASIC基本ユニットのインスタンスと実質的に同数だけのインスタンスを用いて、上記構造化ASICテンプレート上に、該タイプの各回路ブロックを配置する、項目12に記載の方法。
上記回路ブロックの少なくとも1つのタイプに対して、上記構造化ASICインプリメンテーションが、FPGAにおける該タイプの回路ブロックのために用いられる基本回路ユニットの完全な性能よりも低い完全な性能を有する可変数個の構造化ASIC基本回路ユニットを用い、
上記配置することが、該回路ブロックの該構造化ASICインプリメンテーションに必要とされる該構造化ASIC基本ユニットのインスタンスと実質的に同数だけのインスタンスを用いて、上記構造化ASICテンプレート上に、該タイプの各回路ブロックを配置する、項目12に記載の方法。
(項目16)
ユーザの論理設計をインプリメントするようにプログラムされたFPGAと機能上等価な構造化ASICを製造する方法であって、該方法は、
該ユーザの論理設計の構造化ASICインプリメンテーションに対するネットリストにおける各回路ブロックに対して、ライブラリから、該ブロックの構造化ASICの物理レイアウトと、該ブロックのタイミングモデルとを取り出すことと、
構造化ASICテンプレート上に該ブロックの該物理レイアウトを配置することと、
該ネットリストに従って、該構造化ASICテンプレート上に、該ブロックの該物理レイアウト間の相互接続をレイアウトすることと、
所定のタイミング制限が破られないことを確実にするために、該タイミングモデルを用いることと
を包含する、方法。
ユーザの論理設計をインプリメントするようにプログラムされたFPGAと機能上等価な構造化ASICを製造する方法であって、該方法は、
該ユーザの論理設計の構造化ASICインプリメンテーションに対するネットリストにおける各回路ブロックに対して、ライブラリから、該ブロックの構造化ASICの物理レイアウトと、該ブロックのタイミングモデルとを取り出すことと、
構造化ASICテンプレート上に該ブロックの該物理レイアウトを配置することと、
該ネットリストに従って、該構造化ASICテンプレート上に、該ブロックの該物理レイアウト間の相互接続をレイアウトすることと、
所定のタイミング制限が破られないことを確実にするために、該タイミングモデルを用いることと
を包含する、方法。
本発明により、(1)結果として得られる構造化ASICと、同じユーザ論理設計をインプリメントするFPGAとの高度に信頼性のある機能上の等価性が保たれ得、(2)構造化ASICのリソースが効率的に使用され得、(3)最終的な構造化ASIC製品の迅速な利用可能性を促進するためのバックエンドタスクが速く完了され得る。
図1に示される要素の一部は、上記のSchleicherらの文献に示されたものを繰り返しまたは要約する。例えば、フロー要素50は、Schleicherらの図6、図7aまたは図7bのいずれかにおけるハンドオフ設計ファイル860の生成をもたらすSchleicherらのステップを要約する。そして、フロー要素52および54は、Schleicherらのハンドオフ設計ファイル860の重要な局面を要約する。(本開示では、用語「カスタマー」は、場合により、ユーザのシノニムとして用いられる。)従って、本明細書におけるフロー要素52および54は、Schleicherらのハンドオフ設計ファイルが、好適には(1)ユーザ論理設計の構造化ASICインプリメンテーションに向けられたユーザ論理設計のネットリスト(ベリログ(Verilog)ネットリスト)と、(2)ユーザ論理設計からのタイミングの制限とを含むということを、反映する。
図1のフロー要素の数個の要素(換言すると、要素20、30、32、40および42)は、任意の特定のユーザ論理設計に対するハンドオフ設計ファイル(Schleicherらにおいては860;本明細書では52/54)を受け取る前に用意され得るリソース(好適には、用意されるリソース)に関する。これらは、ハンドオフ設計ファイル52/54を介して提示されたユーザ論理設計をインプリメントするFPGAと機能上等価になる構造化ASICの製造の促進に用いられるリソースである。この段落においてリソースと呼ばれるものは、(折々改良および/または追加がなされ得るが)一度展開(develop)されることのみを必要とするライブラリリソースである。これらの要素をより詳細に記載する。
要素20は、ユーザ論理設計において用いられ得る種々のタイプの回路ブロックのリストである。これらとしては、論理セル21と、メモリブロック22と、入力/出力(「IO」または「I/O」)ブロック23と、位相ロックループ(「PLL」)ブロック24と、バッファセル25とが挙げられる。このリストは例示にすぎず、必要に応じて別のタイプのブロックが含まれ得ることは、理解される。例えば、含められ得る別のタイプのブロックは、遅延ロックループ(「DLL」)ブロック、デジタル信号処理(「DSP」)ブロックなどである。
ユーザがユーザ論理設計において用い得るブロック20の各々に対して、少なくとも1つの構造化ASIC構成30が事前に展開される。ユーザ論理設計のFPGAインプリメンテーションにおいてユーザが用い得る一部のタイプのブロックは、基本的には、関連の構造化ASICにおいて複製され得る。これは、例えば、メモリブロック22、IOブロック23、PLLブロック24およびバッファセル25に当てはまり得る。従って、例えば、一FPGAに提供されたメモリブロック22の各タイプに対して、そのタイプのメモリブロックの少なくとも1つの構造化ASIC構成30が展開される。これと同様のことが、各タイプのFPGA IOブロック23、各タイプのFPGA PLLブロック24、各タイプのFPGAバッファセル25に当てはまる。各々の場合において、少なくとも1つの機能上等価な(場合によっては構造上も類似する)構造化ASICの等価構成30が展開される。
上記記載と関連して、構成30が上記の段落において議論した一部のタイプのブロックの7つの異なった形態を含む必要があり得るということに留意されたい。例えば、IOブロック23は、最終製品におけるそれらの位置(例えば、ブロックがデバイスの左側にあるか、右側にあるか、上側にあるか、それとも下側にあるか)に基づいて、異なり得る。それらのFPGAの形態では、IOブロック23は、種々のプログラム可能な局面を有し得る(例えば、IOブロック内のレジスタが用いられるか否か、入力ブロックまたは出力ブロックであるかなど)。構成30は、好適には、IOブロック変数のこれらの可能性のある組み合わせの全てに対する構造化ASICインプリメンテーションを含む。この点の別の例としては、メモリブロック22は、複数の異なったサイズで存在し得る。さらに、これらのFPGAの形態では、これらのメモリ機能のうちの少なくとも1つは、一部の点においてプログラム可能であり得る(例えば、メモリが単一ポートまたはデュアルポートであるか、入力バスの幅、出力バスの幅など)。また同じように、構成30は、好適には、サポートされることが望まれるこれらのメモリブロックサイズおよび機能の組み合わせの全てに対する構造化ASICインプリメンテーションを含む。さらに別の例としては、PLLブロック24は、そのFPGAの形態で、例えば、ブロックが提供する遅延量に関してプログラム可能であり得る。構成30は、好適には、サポートされることが望まれるこれらのPLLブロックの可能性の全ての構造化ASICインプリメンテーションを含む。同様のことが、FPGAの形態において、強度に関してプログラム可能なバッファセル25に当てはまり得る。
本発明の「ターゲット」であるデバイスは構造化ASICであるので、これらのデバイスは、常に、同一の基本テンプレート回路を含む。先の2つの段落において議論したタイプの回路ブロックに対しては、このテンプレート回路は、種々の固定された位置において、これらの種々のタイプのブロックの適切な数のインスタンスであると信じられているものの基本回路を含む。例えば、この構造化ASICテンプレート回路は、テンプレートの左側に沿って一つ以上のタイプのIOブロック23からなる基本回路と、デバイスの上部に沿ったこれらのブロック23よりも多くからなる基本回路などを含み得る。同様に、この構造化ASICテンプレート回路は、テンプレートの固定された位置に数タイプのメモリブロック22の数個のインスタンスからなる基本回路を含み得る。FPGAの形態においてプログラム可能なこれら(および別の類似の「非論理」ブロック(例えば、24および25))の局面は、構造化ASICを作成するために用いられるわずかに小数のマスクを適切にカスタマイズすることによって、構造化ASICにおいてインプリメントされる。別のマスク(換言すると、基本回路またはテンプレート回路に対するマスク)は、常に、同じであるか、少なくとも実質的に同じである。カスタマイズされたマスクはまた、種々の回路ブロック間のカスタマイズされた相互接続を提供するために用いられる。(当然、数個の異なった構造化ASICのターゲット製品が存在し得、それらの製品は、回路の性能の異なった範囲をサポートする異なったテンプレートを有し得る。しかし、各ターゲット製品に対して、テンプレート回路は、常に、同じであるか、少なくとも実質的に同じである。構造化ASICにおける特定のカスタマー回路設計をインプリメントするためにカスタマイズする必要のある構造化ASIC製品を作成するために、数個のマスクのみが用いられる。)。
論理セル21は、上述したものと若干異なるように処理される(しかし、異なるのは若干だけである)。Schleicherらの文献が明らかにしたように、FPGA論理セルは、回路の比較的大きなブロックである傾向がある。例えば、FPGA論理セル(Schleicherらの文献ではALEと呼ばれている)は、最大6つの入力信号の任意の論理結合である出力信号を提供し得るルックアップテーブル回路を含み得る。これらの大きなALEは、本質的には、本発明による構造化ASICにおいて複製されない。その代わりに、構造化ASICのテンプレート回路は、多数のさらに小さな論理セルの原基(rudiment)または基本回路(Schleicherらの文献ではHLEと呼ばれている)を含む。FPGA ALEの機能を実行するために、一つのHLE、または数個の近隣または近接したHLEが併用される。(このように併用される数個のHLEは、HLEのクラスタ、すなわちCHLEと呼ばれる。)CHLEは、最大6個のHLEに限定され得る。各HLEの機能が限定されており、一つのCHLEにおいて許可されたHLEの数が限定されているので、一つのCHLEはただ、(一つのALEに対して可能である6つの入力ではなく)4入力の任意の論理結合を提供することが出来ることが保証されている。一つのCHLEは、5入力または6入力の特定の組み合わせを提供し得る。しかし、5入力または6入力の別の組み合わせを提供するためには、2つ以上のCHLEが必要である。いずれにしても、構成30は、好適には、一つのFPGA ALEが提供し得る各4入力(およびそれ未満)の論理機能の少なくとも1つの構造化ASIC(換言すると、HLE/CHLE)インプリメンテーションを含む。構成30はまた、一つのFPGA ALEが提供し得る5入力および6入力の一部の論理機能の少なくとも1つの構造化ASICインプリメンテーションを含み得る。構成30が提供されない別の5入力および6入力の機能は、これらの機能を、各々がよりそれよりも少ない入力を備えた複数の機能に低減することによって、インプリメントされ得る。例えば、構造化ASIC構成30が提供していなかった6入力の機能は、構成が提供する複数の5入力および/または4入力の機能によって、インプリメント可能であり得る。
先の段落を簡単に要約すると、構成30は、一つのFPGA ALEが提供し得る全ての2入力ロジック、3入力および4入力のロジック機能の少なくとも1つの構造化ASIC(換言すると、HLE/CHLE)インプリメンテーションを含む。構成30はまた、一つのFPGA ALEが提供し得る5入力および/または6入力の一部の論理機能の少なくとも1つの構造化ASICインプリメンテーションを含み得る。
少なくとも一部の開始FPGA回路ブロック20に対して二つ以上の構造化ASIC構成30が展開され得るので、句「少なくとも1つ」を先の議論において数回用いた。これの単なる一例として、特定のFPGAの4入力ルックアップテーブル機能21の二つ以上の既知の構造化ASIC HLE/CHLEが存在し得る(好適には、存在する)。これら既知の構造化ASICインプリメンテーションの全ては、好適には、その4入力の論理機能をインプリメントする可能な代替としてフロー要素30に含められる。論理セル21の構造化ASIC HLE/CHLEインプリメンテーションに対して何千(例えば、30,000)もの構成30が存在し得る。このような多数のあらかじめ構築されたライブラリのモデルを有することは、カスタマー設計のターンアラウンドタイムを低減するなどの目的に対して望ましい。
構成30が含み得る別のものは、FPGAのレジスタおよびFPGA DAPのブロックの構造化ASIC(換言すると、HLE/CHLE)である。
フロー要素30の先の議論をさらに要約すると、その要素は、フロー要素20における各タイプのFPGA回路ブロックと同等の少なくとも1つの構造化ASICに対するネットリストおよびレイアウトの生成を生成または表す。さらに、これは、数個のタイプおよび構成のメモリブロック22と、数個のタイプおよび構成のIOブロック23と、一つ以上のタイプおよび構成のPLLブロック24、一つ以上のタイプおよび構成のバッファセル25、好適には何千もの異なるように構成された論理セル21などであり得る。構成30の部分である「レイアウト」は、このような構成の各々の構造化ASICインプリメンテーションに必要とされる完全な物理情報を含む。構成30の各々は、後述するように、さらに処理される。
構成30の各々に対して、構造化ASICの物理ライブラリ要素は、物理ライブラリフロー要素32への算入のために展開される。(参照部材32とも呼ばれ得る)各物理ライブラリ要素は、対応の回路ブロックに対する上記の構造化ASICのレイアウトである。フロー要素30の先の議論から明らかであるように、各タイプの開始回路ブロックに対して二つ以上の物理ライブラリ要素32が存在し得る。例えば、所与のタイプのIOブロック23は、物理ライブラリ32の4つのバージョン:IOブロックが構造化ASICの左手側にある場合に用いられる第1のバージョン、IOブロックが右手側にある場合に用いられる第2のバージョン、IOブロックが構造化ASICの上部にある場合に用いられる第3のバージョン、および、IOブロックが構造化ASICの下部にある場合に用いられる第4のバージョンにおいて見られ得る。このタイプのIOブロック23がそのFPGAの形態において一つ以上の点でプログラム可能である場合、ライブラリ32にはこのタイプのIOブロックの5つ以上のバージョンが存在し得る。同一のことが、ライブラリ32に表されたブロックのような別のタイプの開始ブロック20に当てはまる。要約すると、構成30の各々に対して物理ライブラリ要素32が存在し得る。
フロー要素70(後に説明する)の動作をスピードアップするために、フロー要素70において、ライブラリ32内のレイアウトの完全な物理情報が、少なくとも一部の用途(特に、プレイスアンドルート(place and route)動作)に対していわゆる「フレームビュー」に変換され得る。ライブラリ要素32のフレームビューは、各ライブラリ要素に関するポートおよびブロッケージ情報を含むだけである。フロー要素70のプレイスアンドルート部は、全てのプレイスアンドルートステップを実行するために、これらの簡略化されたフレームビューのレイアウトを用いる。しかし、最終的には、プレイスアンドルート・ツールは、テープアウト90用の最終データベースをダンプするために、完全なレイアウト(いわゆる「セルビュー」)を用いる。
タイミング情報は、構造化ASICの物理ライブラリ要素32の少なくとも一部に必要であり得る。従って、そのようなタイミング情報が必要とされる構成30の各々は、シミュレーションフロー要素40において処理される。このフロー要素は、構成30の各々の動作の性能をシミュレートする。例えば、フロー要素40は、RC情報を抽出するために構成30のレイアウトを用いる。次いで、構成のタイミングの振る舞いをシミュレートするために、フロー要素40は、構成30のネットリストと共に、これらのRCファイルを用いる。次いで、各ブロックのタイミングの振る舞いは、「LIBERTY」(または「LIB」)形式(工業基準形式)へと変換され、その形式は、フロー要素70のプレイスアンドルート・ツールおよびフロー要素80の静的なタイミング分析ツールによって理解され得る。これらのLIBERTYタイミングモデルは、ライブラリフロー要素42に記憶される。
フロー要素40において実行されるシミュレーションは、(1)構造化ASICを製造するために用いられるプロセス、(2)構造化ASICが動作する電圧、および(3)構造化ASICが動作する温度(または温度範囲)などのファクターについての種々の仮定を反映し得る。(これらのファクターは、場合によっては、プロセス、電圧および温度(すなわちPVT)ファクターと呼ばれる。)例えば、シミュレーション40は、最悪の場合のPVT条件を仮定して実行され得る。あるいは、PVTに関する異なった仮定を用いて数個の異なったシミュレーションが実行され得る。これは、ユーザ論理設計の数個の異なったPVT構造化ASICの任意のインプリメンテーションをサポートするために、結果得られるタイミング情報の使用を促進するようになされ得る。
既に記載したように、シミュレーション40の結果は、タイミングモデルライブラリ42に蓄積される。従って、タイミング情報が必要とされる物理ライブラリ要素32の各々に対して、そのタイミング情報は、タイミングモデルライブラリ42において利用可能である。次の段落に記載するように、ライブラリ32および42は、ユーザの論理設計をインプリメントする構造化ASICを作成するためにその設計が処理されるときにおいて、リソースとして利用可能である。先に記載したように、好適には、フロー要素30は何千ものあらかじめ構築されたライブラリモデルを含むので、フロー要素32および42はまた、好適には、対応した多数のあらかじめ構築された物理およびタイミングモデルを含む。また同じように、これらの多数のあらかじめ構築された物理およびタイミングモデルは、カスタマー設計のターンアラウンド時間を低減するなどの目的に望ましい。
既に記載したように、ユーザの論理設計に対するハンドオフ設計ファイルは、2つの主要部:(1)その設計の構造化ASICインプリメンテーションに対するネットリスト52と(2)その設計に関連したタイミングの制限54とを含む。ネットリスト52は、そのネットリストにおいて具体化されるユーザの論理設計の構造化ASICインプリメンテーションの製造に向けられている。例えば、ネットリスト52は、それのために物理要素がライブラリ32に存在し、必要に応じてそのためにタイミングモデルがライブラリ42に存在する回路ブロックのみを用いる。さらに、ネットリスト52は、そのネットリストにおいて用いた回路ブロックに関するかなりの量の情報を保存する。例えば、ネットリスト52は、好適には、構成30、従ってライブラリ32および42における対応の回路ブロックの識別子と関連する、用いた回路ブロックの識別子(Schleicherらの文献では「c数」と呼ばれている)を含む。ネットリスト52はまた、一部のタイプの回路ブロックに対する「構成」情報を含み得る。この構成情報は、回路ブロックがどの構成をとるのかについてのバックエンド(換言すると、本発明)を伝える。例えば、IOブロック23に対するネットリスト52の回路ブロック情報は、最終的な構造化ASIC製品上のどこにそのIOブロックが配置されるべきかについての情報を反映し得る。これは、IOブロックの種々の構成要素のレイアウトと、構造化ASICデバイス上のIOブロックの配置との双方に影響し得る。別の例として、メモリブロック22に対するネットリスト52の情報は、入力バスの幅、出力バスの幅などのメモリブロックの構成可能な局面を特定する構成情報を含み得る。
ハンドオフ設計ファイルの構成要素54に含まれ得るタイミング制限の例としては、(1)Fmaxクロック周波数(例えば、100MHzであり、これは、10nsのクロック周期を意味する)の規定と、(2)入力インタフェースのタイミング要求と、(3)出力インタフェースのタイミング要求と、(4)別の類似のタイミング要求とが挙げられる。100MHzのFmaxの例を続けると、この場合では、フロー要素70におけるプレイスアンドルート・ツールおよびフロー要素80における静的なタイミング分析ツールは、全てのレジスタ−レジスタ経路に対して10nsに合わせようと試みる。(当然、カスタマー設計のコンパイル50は、ネットリスト52などのネットリストを生成するときにおいて、タイミングのチェックが可能なものをすべて含む)。
本発明によると、ハンドオフ設計ネットリスト52は、最終的な構造化ASIC製品において必要および/または望ましいが、一般的にはユーザに関心がないかユーザによりアクセス可能でないネットリスト要素を加えるように、フロー要素60によって、操作される。例えば、フロー要素60は、典型的には、クロックネットワークおよびクロック接続を盛り込む。フロー要素60はまた、カスタマー設計にはないグローバル信号接続(グローバルリセット/プリセットなど)を盛り込む。
フロー要素60はまた、任意の回路ブロック(そのブロックに対するネットリスト52には適切な構成情報が含まれる)のc数に、その構成を備えたその回路ブロックに対応する物理ライブラリ要素32を一意に識別する回路ブロックに対する構成データを、アペンドする。例えば、ネットリスト52の構成情報は、構成可能な論理ブロックに特定の構成を与えるのに必要な構成RAM(「CRAM」)の状態をエンコードし得る。フロー要素60は、対応の物理ライブラリ要素32を一意に識別するために、このCRAMのビットコードを回路ブロックに対するc数にアペンドし得る。
フロー要素60はまた、テストマルチプレクサ(mux)の製造およびテスト信号接続を盛り込み得る。(このタイプの非常に一般的な回路は、いわゆるスキャンチェーン回路であり、その回路は、デバイス上のフリップフロップが、シフトレジスタのようにチェーン状に、一時的に相互に接続されることを可能にする。そのデバイスが適切に製造されたかをテストするために、データが、そのようなレジスタのチェーンに、チェーンを介して、チェーンからシフトされ得る。)フロー要素60はまた、不使用セル(例えば、HLE、メモリブロック、PLLブロックなど)を盛り込み得る。それによって、使用されていない場合でさえ、ターゲットの構造化ASICデバイスの全リソースが適切に占められ、処理される。フロー要素60はまた、カスタマー設計のコンパイルフロー要素50には見られないブロック(例えば、電源オン−リセット回路、較正回路、フューズなど)を盛り込み得る。フロー要素62は、ネットリスト52のステップ60の動作から生じる後処理ネットリストである。
後処理ネットリスト62が生成された後において、ハンドオフネットリスト52と後処理ネットリスト62との論理上の同等性をチェックすることは望ましくあり得る。これは、(テストモードとは区別されるような)ユーザモードにおいて正式な照合によってなされ得る。
後処理ネットリスト62が生成された後には、ステップ70の実行の準備は全て整う。ステップ70は、ユーザの論理設計をインプリメントする構造化ASICの最終的な設計を生成する。ステップ70において、構造化ASICを生成するためにカスタマイズ(これらのマスクのカスタム化も含む)する必要のあるマスクを実際に特定するためのデータが生成される。ステップ70は、フロー要素54および62からユーザの論理設計に関する全ての必要な情報を取得する。ステップ70は、ユーザ論理設計情報54/62の処理において、フロー要素32および42からのライブラリ情報を用いる。
ステップ70は、いくつかのサブステップの実行を含む。これらとしては、(1)プレイスアンドルート動作と、(2)スキャン並び替え動作と、(3)クロストーク閉止動作と、(4)アンテナ閉止動作と、(5)タイミングの最適化と、(6)設計ルールのチェック(「DRC」)およびレイアウト 対 回路図(「LVS」)の認証動作と、(7)電力およびEM分析とが挙げられる。次の動作の実行中に検出された要求を満たすように実行された動作の一部の再実行を引き起こし得るこれらの動作間の特定の相互作用があり得るということに留意されたいが、これらは、以下の段落において順々に考察する。
ステップ70のプレイスアンドルート部は、ネットリスト62において特定された各回路ブロックのインプリメントに適したライブラリ32内の物理レイアウトを見つけることを含む。これは、カスタマー設計コンパイル50からの配置の制限、またはカスタマーからのコンパイル50を満たす配置の制限を考慮することを含み得る。例えば、カスタマーが特定したIOブロックは、最終の構造化ASICデバイスの適切な側面に沿った概ね対応の位置を有する必要のあり得る特定のピンアウト位置を有する必要がある。フロー要素70のプレイスアンドルート部は、一部分は、ライブラリ32内において、正確な左側、右側、上側または下側のレイアウトでの正確なタイプのIOブロックのインプリメンテーションを見つけることによって、この配置の要求に適応させる。フロー要素70のプレイスアンドルート部はまた、ハンドオフ設計ファイル部54からのカスタマータイミング制限と、タイミングモデルライブラリ42からのタイミング性能情報とを考慮に入れ得る。例えば、長ルーティングまたは高ファンアウトのためにタイミング要求が満たされない場合では、プレイスアンドルート・ツール70は、より強力な駆動力を備えたバッファ(このようなセルが利用可能な場合)を盛り込み得る。
ネットリスト62において特定された回路ブロック全てのインプリメンテーションを物理ライブラリ32から選択することに加えて、ステップ70のプレイスアンドルート部は、これらのインプリメンテーションの全てを物理的に利用可能な「現実のスペース(real estate)」および構造化ASICテンプレートの基本回路リソースに配置する。また、これらのテンプレートまたはベース設計層(プログラム層を除く)が、これらの層のマスクがターンアラウンドタイム(「TAT」)および非回復可能エンジニアリング(「NRE」)コストを省くためにあらかじめ構築され得るように、固定されているということは、先の議論から思い出される。いったんプログラムされた設計がプレイスアンドルートされると、プログラマブルな金属層およびビアは、カスタマー設計情報を有することになり、ベース層とともに、完全な構造化ASIC製品の設計を形成する。従って、カスタマーの設計には数個のプログラマブル層のみをカスタマイズ必要がある。構造化ASIC上のどこにライブラリ32からの物理レイアウトを配置するかを決定するときにおいて、ステップ70のプレイスアンドルート部はまた、(例えばハンドオフ設計ファイル部54から)適用可能な配置およびタイミングの制限を考慮し得る。ステップ70のプレイスアンドルート部はまた、ネットリスト62において特定された回路ブロックをインプリメントするのに用いるためにライブラリ32から選択された回路ブロックの複数の物理レイアウト間における必要な全ての接続を、作成および物理的にレイアウト(「ルート」)する。プレイスアンドルート・ツールは、上記の物理ライブラリ要素32の簡略化した「フレームビュー」と協働し得る。少なくとも最初は、これらのフレームビューは、フロー要素70のプレイスアンドルート部がこの作業を行うことを可能にするのに十分なポートおよびブロッケージ情報を含む。その後、ライブラリ要素32の全詳細がフロー要素70に引き寄せられ得る(例えば、製造される構造化ASIC製品のテープアウト90に必要なデータの完全な生成を可能にするために)。
ステップ70のプレイスアンドルート部が、ネットリスト62において特定された設計全体に対して実行された後において、ステップ60に盛り込まれたスキャンチェーンにおけるレジスタは、ステップ60において検討された順序を失い得る。従って、ステップ70のスキャン並び替え部は、スキャンチェーンにおけるレジスタの必要な全ての並び替えを実現するように実行される。
ステップ70のクロストーク閉止部は、導体間をクロストークするように導電性であり得るパターンの相互接続導体を探すように実行される。例えば、比較的長い距離にわたってすぐ側に隣接した2つの導体は、それらの導体間にクロストークを生じ得る。そのような導体のパターンが見つけられた場合では、ステップ70のクロストーク閉止部は、クロストークのリスクを低減または削除するために、そのリスクを有する導体の物理ルーティングを変更し得る。
ステップ70のアンテナ閉止部は、製造プロセスにおいてデバイスの別の回路に損傷を与えるに十分強い電荷を集め得る長いワイヤを探すように実行される。このような長いワイヤが検出される場合には、望ましくなく回路に存在するアンテナのリスクを低減または削除するために、プレイスアンドルートの修正がなされ得る。
ステップ70のタイミング最適化部は、タイミングに関するプレイスアンドルート動作の結果の性能の改善を試みるよう実行され得る。例えば、ステップ70のタイミング最適化部は、プレイスアンドルート動作の結果を介して比較的遅い経路を探し得、次いで、そのような比較的遅い経路をスピードアップする方法を探し得る。この例を続けると、経路は、回路ブロック間に比較的長い相互接続を一つ以上含むので、その経路は、比較的遅くあり得る。ステップ70のタイミング最適化部は、セットアップ時間の要求を満たすために、その経路に強力なバッファを盛り込むことによって、または駆動セルサイズを増すことによって(このようなセルが利用可能な場合)、この経路をスピードアップすることを試み得る。別の例として、保持時間の問題は、データ経路の遅延を増やすようにバッファまたは遅延セルを盛り込むことによって、解決され得る。タイミングの性能を改善するようにセルを移動させることは可能であり得る。ステップ70のタイミング最適化部が、カスタマーの設計によって特定されたタイミングの制限54内で動作する(換言すると、制限に適合し、制限を破らない)ことは、理解される。確かに、ステップ70のタイミング最適部は、ステップ70がタイミングの制限54を満たす態様の一局面であり得る。
ステップ70の設計ルールチェック(「DRC」)部は、ユーザが意図した構造化ASICの製造「設計ルール」が従うべきものは、ステップ70において構造化ASICに対して展開された物理レイアウトの部分によって破られないということを、確実にする。必要に応じて、その製造設計ルールが全ての点で破られないように、ステップ70の設計ルールチェック部は、展開された物理レイアウトを修正する。
ステップ70のレイアウト 対 回路図(ネットリスト)(「LVS」)部は、物理レイアウトがネットリストを正確に反映することを確実にするように展開された物理レイアウトをチェックする。例えば、このチェックは、レイアウトがネットリストと同じ接続を有する、短絡がない、などのことを確実にする。
上記記載から、ステップ70が反復性の局面を有し得ることは、理解される。例えば、DRCがステップ70の終りへと向かい実行される場合、そして、先のプレイスアンドルート結果においてある変化を生じさせる場合では、(例えば、可能性のあるさらなるスキャン並び替えを実行するために、まだクロストークおよびアンテナの閉止が存在することを確実にするために、さらなるタイミング最適化の必要があるか否かを決定するために、など)ステップ70の反復部分の一部または全ては、再度実行する必要があり得る。
図2aおよび図2bは、プレイスアンドルートステップ70の例示的な実施形態をより詳細に示す。ステップ110では、適切なライブラリ環境32/42は、プレイスアンドルート・ツールにセットアップされるか、そのツールに利用可能にされる。ステップ112では、ターゲットの構造化ASICデバイスの床配置は、プレイスアンドルート・ツールにロードされる。他では、この床配置情報は、ターゲットの構造化ASICのテンプレートまたは基本(固定)回路と呼ばれる。ステップ114では、あらかじめ構築されたクロックツリー、電力ネットワークおよび別のマクロが読み込まれる。この一部または全部は、フロー要素60に関連して説明したように追加される種類の情報であり得る。ステップ116では、(例えば、フロー要素54から)タイミング制限がロードされる。
ステップ120では、後処理ネットリスト62からのセルは、配置制限に従って配置される。ステップ130では、必要な全てのスキャンの並び替えが実行される。ステップ140では、既に配置されたブロック間の必要な全ての接続をルート割り当てする。ステップ150では、(例えば、接続を適切に再ルーティングすることによって)おこり得る全てのクロストークを除去する。ステップ160では、全てのアンテナの問題は、(例えば、必要に応じて要素を再配置することによって)解消される。ステップ170では、タイミングの最適化が実行される。ステップ180では、設計ルールのチェックおよびレイアウト 対 回路図の認証が実行される。
また、図2aおよび図2bは完全に一方向かつ一回限りの流れを示唆し得るが、一部の後のステップの結果が、前の一つ以上のステップの再実行の必要を生じ得ること、およびこれが種々の態様で二回以上起こり得る。
ステップ70の全ての部分を実行した後において、その結果は、ユーザの論理設計をインプリメントするように製造される構造化ASICに対する完全な仕様(物理レイアウト)である。この完全な物理レイアウトは、ステップ80へと渡される。このステップは、設計の全部分が静的なタイミングルールを満たすことを確実にするために、設計に静的なタイミング分析を行う。ステップ80が静的なタイミングルールの破れを見つける場合では、ステップ70に、設計を変更させる命令(技術変更指示すなわち「ECO」の形態の命令)を出す。例えば、ステップ80は、レジスタが登録される信号のソースからかなり遠くにあるために静的なタイミングルールが破られているということを見つけ得る。このように、ステップ80は、ステップ70に技術変更指示を出し得、レジスタがその信号源から特定の距離未満にある必要があるということを指定する。次いで、ステップ70は、このさらなる制限とともに実行される。これによって、構造化ASICに対する修正された物理レイアウトが生じ、このレイアウトはまた、別の静的なタイミングのチェックのためにステップ80へと渡される。
タイミングをサインオフするために、静的なタイミング分析ツール(「STA」)80が用いられる。これはタイミングのサインオフのためであるので、RC分析は、正確である必要がある。従って、設計のRC特性を抽出するために、ステップ70からのプレイスアンドルートデータベースは、正確なRC抽出ツールへと渡される。この抽出されたRCと、プレイスアンドルートネットリストと、(たとえば、フロー要素54からの)タイミングの制限とを用いて、STAツール80は、設計がカスタマーのタイミングの仕様と合うことを確実にするために、その設計を分析する。タイミングの使用が合わない場合では、フロー要素70への逆の自動ECOフローが用いられる。タイミングを失った経路に基づいて、STAツール80内のECOフローは、必要な調節をするために、プレイスアンドルート・ツール70に対するコマンドを生成する。一旦プレイスアンドルート・ツール70がECOの変更を完了すると、STAフロー80は、タイミングがSTAに合格するまで、繰り返される。
静的なタイミングの破れ(またはさらなる静的なタイミングの破れ)を見つけることなくステップ80が実行される場合では、構造化ASICのレイアウトは、製造できる状態にある。従って、構造化ASICのレイアウトは、構造化ASICデバイスの実際の製造を制御するために用いられ得るデータの形式で、ステップ90において「テープアウト」される。
図3は、フローのこの部分の例示的な実施形態をより詳細に示す。図1と比較すると、図3は、フロー要素85の追加を示す。この要素は、タイミングのサインオフ(ステップ80)が達成されたときにおいて、テープアウトステップ90に入力され得る業界標準の形式のデータ(「GDSII」)における最終的な、完全かつ詳細な構造化ASIC設計の物理レイアウトを取り込む。
上記記載が、構造化ASICがインプリメントするように製造されるものと同じユーザの論理設計をインプリメントするようにプログラムされたFPGAと機能上同等な構造化ASICの製造という、Schleicherらの文献に記載の目的(本明細書において再度繰り返している目的)と一致するということは、理解される。例えば、ネットリスト52は、(Schleicherらの文献にあるように)、本発明による、構造化ASICの最終の物理レイアウトを実行するための基礎を形成する構造化ASICリソース(本明細書では構成30)の同一のライブラリを用いて、コンパイルされる。本明細書では、Schleicherらの文献において従うものと同じブロックごとのアプローチが、続けられる。構造化ASICのインプリメンテーションに対するユーザの論理設計の根底の再合成は、避けられる。その代わりに、FPGA回路ブロック20の各々は、機能上等価であると知られている構造化ASICブロックに、置き換えられる。FPGAの回路ブロックのこのように等価であると知られた構造化ASICインプリメンテーションの大きなライブラリ30は、Schleicherらのコンパイルおよび本明細書における構造化ASICの物理レイアウトを実行するときにおいて、引き出される。全ての大きな論理再合成を避けるために、プロセス全体にわたって、等価なFPGAと構造化ASIC回路ブロックとの一対一の対応が保たれる。これは、構造化ASICデバイスに論理上の誤差を導入するリスクなしで、ステップ70に、(例えば、タイミングの制限を満たし、クロストーク、アンテナ生成などの問題を避けるために)ブロックを移動させる特定の自由を与えることを助ける。本発明はまた、Schleicherらのコンパイルを介して流れたユーザのタイミングの制限54が、構造化ASICに対する物理レイアウトの展開において、順守およびインプリメントされることを可能にする。このことは、FPGAと、同じユーザ論理設計をインプリメントする構造化ASICとの機能上の等価性を確実にすることをさらに助ける。
図4は、本発明の別のとり得る局面を示す。これは、本発明による一つ以上の方法を少なくとも部分的には実行する機械可読命令1210(例えば、コンピュータプログラム)でエンコードされた機械可読媒体1200(例えば、磁気ディスク、光ディスク、磁気テープなど)である。
上記記載は本発明を例示したものに過ぎず、本発明の範囲および精神を逸脱せずに、当業者によって種々の改変がなされ得るということは、理解される。例えば、種々のステップ70動作が実行される順序は、図1または図2aおよび図2bに示したものや、上述したものと異なり得る。
以上のように、本発明の好ましい実施形態を用いて本発明を例示してきたが、本発明は、この実施形態に限定して解釈されるべきものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。本明細書において引用した特許出願は、その内容自体が具体的に本明細書に記載されているのと同様にその内容が本明細書に対する参考として援用されるべきであることが理解される。
ユーザの論理設計を実行するようにプログラムされたFPGAと機能上等価な構造化ASICを製造するプロセスの一部として、ASICインプリメンテーションに対して準備された設計のコンパイルが、構造化ASICの物理レイアウトに変換される。この物理レイアウトの製造は、ユーザによって提供されたタイミング制限を順守し、また、基準のプログラムされたFPGAに対する機能上の等価性を保つ。構造化ASICは、生成された物理レイアウトから製造され得る。
20 ベース設計(FPGA)
30 構成(ネットリスト&レイアウト)
32 物理ライブラリ
40 シミュレーション
42 タイミングモデル
50 カスタマー設計のコンパイル
52 カスタマー設計のベリログネットリスト
54 カスタマー設計のタイミング制限
60 ネットリスト、後処理、スキャンチェーンの盛り込み
62 後処理ネットリスト
70 プレイス&ルート、スキャン並び替え、クロストーク閉止、アンテナ閉止、タイミング最適化、DRC&LVS
80 タイミングサインオフ、静的なタイミング分析
90 テープアウト
30 構成(ネットリスト&レイアウト)
32 物理ライブラリ
40 シミュレーション
42 タイミングモデル
50 カスタマー設計のコンパイル
52 カスタマー設計のベリログネットリスト
54 カスタマー設計のタイミング制限
60 ネットリスト、後処理、スキャンチェーンの盛り込み
62 後処理ネットリスト
70 プレイス&ルート、スキャン並び替え、クロストーク閉止、アンテナ閉止、タイミング最適化、DRC&LVS
80 タイミングサインオフ、静的なタイミング分析
90 テープアウト
Claims (16)
- ユーザの論理設計をインプリメントするようにプログラムされたFPGAと機能上等価な構造化ASICに対する物理レイアウトを生成する方法であって、該方法は、
該ユーザの論理設計の構造化ASICインプリメンテーションに対するネットリストにおける各回路ブロックに対して、ライブラリから該ブロックの構造化ASICの物理レイアウトを取り出すことと、
構造化ASICテンプレート上に該ブロックの該物理レイアウトを配置することと、
該ネットリストに従って、該構造化ASICテンプレート上に、該ブロックの該物理レイアウト間の相互接続をレイアウトすることと
を包含する、方法。 - 前記取り出すことと、前記配置することと、前記レイアウトすることとのうちの少なくとも1つの少なくとも一部の局面を実行するときにおいて、前記ユーザによって提供される少なくとも1つのタイミング制限に従うことをさらに包含する、請求項1に記載の方法。
- 製造後の前記構造化ASICのテストを容易にする回路を前記ネットリストに追加することをさらに包含する、請求項1に記載の方法。
- 少なくとも1つの回路ブロックに対して、前記ライブラリは関連のタイミングモデルを含み、
該回路ブロックに対して、前記取り出すことが、該関連のタイミングモデルを取り出すことを包含する、請求項2に記載の方法。 - 前記従うことが、前記関連のタイミングモデルを用いることを包含する、請求項4に記載の方法。
- クロストークの可能性に関して、前記構造化ASICに対する前記物理レイアウトをチェックすることをさらに包含する、請求項1に記載の方法。
- アンテナの可能性に関して、前記構造化ASICに対する前記物理レイアウトをチェックすることをさらに包含する、請求項1に記載の方法。
- 前記構造化ASICの前記物理レイアウトにタイミング最適化をかけることをさらに包含する、請求項1に記載の方法。
- 設計ルール違反に関して、前記構造化ASICに対する前記物理レイアウトをチェックすることをさらに包含する、請求項1に記載の方法。
- 前記構造化ASICの前記物理レイアウトに静的なタイミング分析をかけることをさらに包含する、請求項1に記載の方法。
- 請求項1に記載の方法を実行するための機械可読命令でエンコードされた機械可読媒体。
- ユーザの論理設計をインプリメントするようにプログラムされたFPGAと機能上等価な構造化ASICを製造する方法であって、該方法は、
該ユーザの論理設計の構造化ASICインプリメンテーションに対するネットリストにおける各回路ブロックに対して、ライブラリから該ブロックの構造化ASICの物理レイアウトを取り出すことと、
構造化ASICテンプレート上に該ブロックの該物理レイアウトを配置することと、
該ネットリストに従って、該構造化ASICテンプレート上に、該ブロックの該物理レイアウト間の相互接続をレイアウトすることと、
該配置することと該レイアウトすることとの結果に従って、該構造化ASICを製造することと
を包含する、方法。 - 前記回路ブロックの少なくとも一部に対して、前記ライブラリは関連のタイミングモデルを含み、
そのような回路ブロックに対して、前記取り出すことが、該関連のタイミングモデルを取り出すことを包含する、請求項12に記載の方法。 - 所定のタイミング制限が破られないことを確実にするために、前記関連のタイミングモデルを用いることをさらに包含する、請求項13に記載の方法。
- 前記回路ブロックの少なくとも1つのタイプに対して、前記構造化ASICインプリメンテーションが、FPGAにおける該タイプの回路ブロックのために用いられる基本回路ユニットの完全な性能よりも低い完全な性能を有する可変数個の構造化ASIC基本回路ユニットを用い、
前記配置することが、該回路ブロックの該構造化ASICインプリメンテーションに必要とされる該構造化ASIC基本ユニットのインスタンスと実質的に同数だけのインスタンスを用いて、前記構造化ASICテンプレート上に、該タイプの各回路ブロックを配置する、請求項12に記載の方法。 - ユーザの論理設計をインプリメントするようにプログラムされたFPGAと機能上等価な構造化ASICを製造する方法であって、該方法は、
該ユーザの論理設計の構造化ASICインプリメンテーションに対するネットリストにおける各回路ブロックに対して、ライブラリから、該ブロックの構造化ASICの物理レイアウトと、該ブロックのタイミングモデルとを取り出すことと、
構造化ASICテンプレート上に該ブロックの該物理レイアウトを配置することと、
該ネットリストに従って、該構造化ASICテンプレート上に、該ブロックの該物理レイアウト間の相互接続をレイアウトすることと、
所定のタイミング制限が破られないことを確実にするために、該タイミングモデルを用いることと
を包含する、方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/141,941 US7243315B2 (en) | 2005-05-31 | 2005-05-31 | Methods for producing structured application-specific integrated circuits that are equivalent to field-programmable gate arrays |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006338659A true JP2006338659A (ja) | 2006-12-14 |
Family
ID=36764424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006142143A Withdrawn JP2006338659A (ja) | 2005-05-31 | 2006-05-22 | フィールドプログラマブルゲートアレイと等価な構造化特定用途向け集積回路を製造する方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7243315B2 (ja) |
EP (1) | EP1729232A1 (ja) |
JP (1) | JP2006338659A (ja) |
CN (1) | CN1873646B (ja) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7386819B1 (en) | 2005-07-28 | 2008-06-10 | Altera Corporation | Methods of verifying functional equivalence between FPGA and structured ASIC logic cells |
US7325215B2 (en) | 2005-08-31 | 2008-01-29 | Lsi Logic Corporation | Timing violation debugging inside place and route tool |
US7610568B2 (en) * | 2005-10-20 | 2009-10-27 | Agere Systems Inc. | Methods and apparatus for making placement sensitive logic modifications |
US7627838B2 (en) * | 2006-04-25 | 2009-12-01 | Cypress Semiconductor Corporation | Automated integrated circuit development |
US7512925B2 (en) * | 2006-07-14 | 2009-03-31 | International Business Machines Corporation | System and method for reducing test time for loading and executing an architecture verification program for a SoC |
US8892806B2 (en) * | 2007-03-07 | 2014-11-18 | Intel Mobile Communications GmbH | Integrated circuit, memory device, method of operating an integrated circuit, and method of designing an integrated circuit |
WO2008112605A2 (en) * | 2007-03-09 | 2008-09-18 | Mentor Graphics Corporation | Incremental layout analysis |
US7657855B1 (en) * | 2007-05-25 | 2010-02-02 | Xilinx, Inc. | Efficient timing graph update for dynamic netlist changes |
US7882453B2 (en) * | 2007-10-17 | 2011-02-01 | Rapid Bridge Llc | Semiconductor device metal programmable pooling and dies |
IT1392495B1 (it) * | 2008-12-29 | 2012-03-09 | St Microelectronics Srl | Metodo per progettare un acceleratore ad elevate prestazioni di tipo asic (circuito integrato ad applicazione specifica - application-specific integrated circuit) |
US8560990B2 (en) | 2010-01-13 | 2013-10-15 | International Business Machines Corporation | Method of managing electro migration in logic designs and design structure thereof |
US8105885B1 (en) | 2010-08-06 | 2012-01-31 | Altera Corporation | Hardened programmable devices |
US8615727B2 (en) * | 2010-12-16 | 2013-12-24 | Synopsys, Inc. | Simultaneous multi-corner static timing analysis using samples-based static timing infrastructure |
CN102768692B (zh) * | 2011-05-06 | 2015-02-04 | 中国科学院微电子研究所 | 应用于fpga测试的导航布局布线方法 |
CA2786220C (en) * | 2011-08-18 | 2020-02-18 | Valydate Inc. | Validation of circuit definitions |
CN103258066B (zh) * | 2012-02-17 | 2015-10-28 | 京微雅格(北京)科技有限公司 | 逻辑簇的布局方法 |
US9251300B2 (en) * | 2013-10-25 | 2016-02-02 | Altera Corporation | Methods and tools for designing integrated circuits with auto-pipelining capabilities |
CN104679628B (zh) * | 2013-12-03 | 2018-10-23 | 中国科学院微电子研究所 | 一种现场可编程门阵列的测试方法 |
US9672306B2 (en) | 2015-09-03 | 2017-06-06 | International Business Machines Corporation | Preparing engineering change orders for physical design using boolean equivalence checking tools |
CN105259444A (zh) * | 2015-11-02 | 2016-01-20 | 湖北航天技术研究院计量测试技术研究所 | Fpga器件测试模型建立方法 |
JP6787045B2 (ja) * | 2016-10-31 | 2020-11-18 | 富士通株式会社 | 検証支援プログラム、検証支援方法、および情報処理装置 |
US10318689B2 (en) * | 2017-04-13 | 2019-06-11 | International Business Machines Corporation | Integrated circuit logic extraction using cloning and expansion for engineering change order |
TWI684987B (zh) * | 2019-05-31 | 2020-02-11 | 創意電子股份有限公司 | 電路校正系統與增加掃描測試涵蓋率的方法 |
US11023650B2 (en) * | 2019-06-18 | 2021-06-01 | Samsung Electronics Co., Ltd. | Apparatus and method for circuit timing fixing using extension metal sections and alternate vias |
CN110889257B (zh) * | 2019-09-30 | 2023-02-24 | 深圳市紫光同创电子有限公司 | Fpga电路验证生成网表的方法及电路逻辑验证平台 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5825202A (en) * | 1996-09-26 | 1998-10-20 | Xilinx, Inc. | Integrated circuit with field programmable and application specific logic areas |
US5874834A (en) * | 1997-03-04 | 1999-02-23 | Xilinx, Inc. | Field programmable gate array with distributed gate-array functionality |
CN1151552C (zh) * | 1997-03-11 | 2004-05-26 | 三菱电机株式会社 | 利用单元库方式进行布局设计的半导体集成电路装置 |
US6515509B1 (en) * | 2000-07-13 | 2003-02-04 | Xilinx, Inc. | Programmable logic device structures in standard cell devices |
US6490707B1 (en) * | 2000-07-13 | 2002-12-03 | Xilinx, Inc. | Method for converting programmable logic devices into standard cell devices |
US6526563B1 (en) * | 2000-07-13 | 2003-02-25 | Xilinx, Inc. | Method for improving area in reduced programmable logic devices |
US6988258B2 (en) * | 2002-12-09 | 2006-01-17 | Altera Corporation | Mask-programmable logic device with building block architecture |
CN1510737A (zh) * | 2002-12-24 | 2004-07-07 | 北京艾克赛利微电子技术有限公司 | 模拟和射频集成电路的物理设计方法 |
US7366652B2 (en) * | 2003-06-16 | 2008-04-29 | Springsoft, Inc. | Method of programming a co-verification system |
US7290237B2 (en) * | 2003-06-23 | 2007-10-30 | Altera Corporation | Method for programming a mask-programmable logic device and device so programmed |
US7275232B2 (en) | 2005-04-01 | 2007-09-25 | Altera Corporation | Methods for producing equivalent field-programmable gate arrays and structured application specific integrated circuits |
-
2005
- 2005-05-31 US US11/141,941 patent/US7243315B2/en not_active Expired - Fee Related
-
2006
- 2006-05-09 EP EP20060009562 patent/EP1729232A1/en not_active Ceased
- 2006-05-22 JP JP2006142143A patent/JP2006338659A/ja not_active Withdrawn
- 2006-05-25 CN CN2006100827787A patent/CN1873646B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20060271899A1 (en) | 2006-11-30 |
US7243315B2 (en) | 2007-07-10 |
EP1729232A1 (en) | 2006-12-06 |
CN1873646A (zh) | 2006-12-06 |
CN1873646B (zh) | 2012-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2006338659A (ja) | フィールドプログラマブルゲートアレイと等価な構造化特定用途向け集積回路を製造する方法 | |
US9152742B1 (en) | Multi-phase models for timing closure of integrated circuit designs | |
US7941774B2 (en) | Partial timing modeling for gate level simulation | |
US10387603B2 (en) | Incremental register retiming of an integrated circuit design | |
US8977995B1 (en) | Timing budgeting of nested partitions for hierarchical integrated circuit designs | |
TWI434191B (zh) | 產生階層式電路設計的平面規劃之方法與設備及其非暫態電腦可讀式儲存媒體 | |
US10318686B2 (en) | Methods for reducing delay on integrated circuits by identifying candidate placement locations in a leveled graph | |
Zheng et al. | Fast and effective placement and routing directed high-level synthesis for FPGAs | |
US9298872B2 (en) | Apportioning synthesis effort for better timing closure | |
EP3324317B1 (en) | Methods for verifying retimed circuits with delayed initialization | |
US10162918B1 (en) | Integrated circuit retiming with selective modeling of flip-flop secondary signals | |
US11361133B2 (en) | Method of reporting circuit performance for high-level synthesis | |
JP2015524589A (ja) | 相対タイミング特徴付け | |
US20160357899A1 (en) | Methods for performing register retiming operations into synchronization regions interposed between circuits associated with different clock domains | |
US20170328951A1 (en) | Embedded built-in self-test (bist) circuitry for digital signal processor (dsp) validation | |
US7254793B2 (en) | Latch modeling technique for formal verification | |
US7814452B1 (en) | Function symmetry-based optimization for physical synthesis of programmable integrated circuits | |
US7610573B1 (en) | Implementation of alternate solutions in technology mapping and placement | |
US9529947B1 (en) | Register retiming and verification of an integrated circuit design | |
Geralla et al. | Optimization of physically-aware synthesis for digital implementation flow | |
US8141028B2 (en) | Structure for identifying and implementing flexible logic block logic for easy engineering changes | |
Parvez et al. | Application-specific fpga using heterogeneous logic blocks | |
US10152566B1 (en) | Constraint based bit-stream compression in hardware for programmable devices | |
US20180349544A1 (en) | Methods for performing register retiming with hybrid initial states | |
US7590960B1 (en) | Placing partitioned circuit designs within iterative implementation flows |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20090804 |