JP2010102716A - マスクプログラム可能なロジックデバイスをプログラムする方法およびその方法によってプログラムされたデバイス - Google Patents
マスクプログラム可能なロジックデバイスをプログラムする方法およびその方法によってプログラムされたデバイス Download PDFInfo
- Publication number
- JP2010102716A JP2010102716A JP2009256592A JP2009256592A JP2010102716A JP 2010102716 A JP2010102716 A JP 2010102716A JP 2009256592 A JP2009256592 A JP 2009256592A JP 2009256592 A JP2009256592 A JP 2009256592A JP 2010102716 A JP2010102716 A JP 2010102716A
- Authority
- JP
- Japan
- Prior art keywords
- programmable logic
- logic device
- user
- mask
- design
- 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/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
- G06F30/347—Physical level, e.g. placement or routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
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)
- Logic Circuits (AREA)
- Stored Programmes (AREA)
Abstract
【課題】プログラム可能なロジックデバイスをプログラムする方法を提供すること。
【解決手段】マスクプログラム可能なロジックデバイス(MPLD)に対するユーザーのロジック設計は、互換性を有するユーザープログラム可能なロジックデバイス(UPLD)上で設計されMPLDに移行され得る、または直接MPLD上で設計され得る。設計がUPLD上でなされる場合には、目標のMPLDの制約(例えば、デバイスの間の差異)が考慮され、その結果、移行は成功する。設計が直接MPLD上でなされる場合には、その設計を試験のためにUPLDに移行することをユーザーが意図するときに、互換性を有するUPLDの制約が考慮される。これは、ロジック設計のUPLDとMPLDとの間で行き返りの移行が意図される場合にのみ、特徴の一致が使用され得ることを意味する。移行を助長するためにデバイスのペアの間の固定されたマッピングが生成され得る。
【選択図】図4
【解決手段】マスクプログラム可能なロジックデバイス(MPLD)に対するユーザーのロジック設計は、互換性を有するユーザープログラム可能なロジックデバイス(UPLD)上で設計されMPLDに移行され得る、または直接MPLD上で設計され得る。設計がUPLD上でなされる場合には、目標のMPLDの制約(例えば、デバイスの間の差異)が考慮され、その結果、移行は成功する。設計が直接MPLD上でなされる場合には、その設計を試験のためにUPLDに移行することをユーザーが意図するときに、互換性を有するUPLDの制約が考慮される。これは、ロジック設計のUPLDとMPLDとの間で行き返りの移行が意図される場合にのみ、特徴の一致が使用され得ることを意味する。移行を助長するためにデバイスのペアの間の固定されたマッピングが生成され得る。
【選択図】図4
Description
本発明は、マスクプログラム可能なロジックデバイスに関する。より詳細には、ユーザープログラム可能なロジックデバイスへおよびからの移行が可能で、実証および/または試験がより容易にできる、マスクプログラム可能なロジックデバイスをプログラムする方法に関する。
一部で「フィールドプログラム可能なゲートアレイ」(「FPGA])として知られるプログラム可能なロジックデバイスは、周知である。初期のプログラム可能なロジックデバイスは、一回限りの設定が可能(configurable)であった。例えば、設定(configuration)は可溶性のリンクを「飛ばす(blowing)」−−つまり、開く−−ことによって達成されてきた。代替案としては、設定が、プログラム可能な読み出し専用メモリに貯蔵されることも可能とされてきた。これらのデバイスは一般にユーザーに対して、デバイスを「積和(sum−of−products)」(つまり、「積項(product term)」または「P−TERM」)ロジック計算用として設定する(configure)可能性を提供した。その後、設定用として、消去可能なプログラマブル読み出し専用メモリ(EPROM)として具体化したこのようなプログラム可能なロジックデバイスが利用可能となり、その結果、デバイスの再設定が可能となった。
さらにその後になって、設定用として、スタティック随時書き込み読み出しメモリ(SRAM)要素として具体化したプログラム可能なロジックデバイスが、利用可能となった。これらのデバイスは、再設定が可能であり、EPROMのような不揮発性メモリの中にその設定を貯蔵し、デバイスに電力が投入されるときに、そこから、その設定がSRAM要素に装填され(読み込まれ)る。これらのデバイスは一般にユーザーに、デバイスをルックアップテーブル形式のロジック計算用として設定する可能性を提供する。一部の点において、これらのデバイスは、ユーザーによって随時書き込み読み出しメモリ、読み出し専用メモリ、またはロジック(P−TERMロジックのような)として働くように設定されることができる、随時書き込み読み出しメモリのはめ込まれた(embedded)ブロックとして提供が開始された。さらに最近には、これらのデバイスは、デジタル信号処理用の積算器および積算器/加算器ブロックなどの、専用の機能ブロックとして提供されている。
前述の全てのプログラム可能なロジックデバイスにおいては、デバイスの特定のロジック要素のロジック機能と、ロジック要素の間の信号の伝達のための相互接続(interconnect)との両方が、プログラム可能であった。このようなデバイスは、これ以降では「従来形プログラム可能なロジックデバイス」または「ユーザープログラム可能なロジックデバイス」または「フィールドプログラム可能なロジックデバイス」として引用される。なお、後者に関しては、前述の3個の用語によって記述される種類のデバイスの部分集合(subset)であると考えられる「フィールドプログラム可能なゲートアレイ」の用語と混用されるべきではない。
さらに最近には、マスクプログラム可能なロジックデバイスが提供されるようになった。マスクプログラム可能なロジックデバイスに関しては、全てのユーザーに同じデバイスを販売する代わりに、製造業者は、ユーザーによってその機能をプラグラムできないロジック要素の、標準化された配置を有する部分的なデバイスを製造し、そのデバイスは一切の信号伝達または相互結合のリソースを有しないものである。
マスクプログラム可能なロジックデバイスをプログラムするためには、ユーザーはマスクプログラム可能なロジックデバイスの製造業者に対して、所望のデバイスの仕様書(specification)を提供し、その仕様書は、対比される従来形プログラム可能なロジックデバイスをプログラムするための設定ファイルであり得る。製造業者はその情報を使用し、上記記載された部分的なデバイスにメタライゼーションの層を追加する。これらの追加された層は、ロジック要素の間にある種の接続を形成することによってロジック要素をプログラムし、またロジック要素の間の相互接続経路を追加する。マスクプログラム可能なロジックデバイスは、上記記載のとおり、従来形プログラム可能なロジックデバイスと結合して、埋め込まれた随時書き込み読み出しメモリブロックとしても提供されることができる。このようなマスクプログラム可能なロジックデバイスでは、埋め込まれたメモリが読み出し専用メモリまたはP−TERMロジックとして設定されている場合には、その設定はまた、追加のメタライゼーション層を使用することで実現される。
従来形プログラム可能なロジックデバイスは、所望の機能を実行するように、ユーザーがデバイスを容易に設計することを可能とするが、従来形プログラム可能なロジックデバイスは、特定の設計のためには使用され得ないリソースを常に含む。さらに、一般的な目的の伝達経路および相互接続のためのリソース、およびあらゆるロジック要素からの信号があらゆる所望の接続経路および相互接続リソースに到達することを可能とするスイッチングリソース、を備えるために、従来形プログラム可能なロジックデバイスは、より多くの機能性がその中に組み込まれるにつれてますます大きく成長し、これらデバイスの寸法および消費電力を増加させつつある。信号が1つの伝達経路および相互接続リソースから別のそれらに移動するときの、様々なスイッチング要素を経由する信号の伝達は、また信号の速度を低下させる。
マスクプログラム可能なロジックデバイスの出現は、ユーザーが従来形プログラム可能なロジックデバイスの中の設計を立証する(prove)ことを可能としたが、しかし、プロダクションバージョンをマスクプログラム可能なロジックデバイスに委ねることも可能とした。それは、デバイス上に存在する相互接続および伝達経路リソースは特定の設計に対して実際に必要とされるものだけであるために、同じ機能性に対して、非常に小形化が可能であり、また著しく省電力化が可能である。さらに、これらのリソースは簡単なメタライゼーションであり、スペースおよび電力を浪費しかつ信号速度を低下させる一般目的のスイッチング要素は存在しない。
にもかかわらず、これまでマスクプログラム可能なロジックデバイスのプログラミングは、対比される従来形プログラム可能なロジックデバイスとして実施された、ユーザーのロジック設計に関するユーザーのプログラミングファイルを、製造業者に提供することによって、実現されてきた。製造業者は最大限の努力をはらって、その設計を最も効率的で可能なマスクプログラムされたロジックデバイスに翻訳する。しかしながら、製造業者はいかなる場合でも、ユーザーが実施するであろう設計を実行することはできない。
例えばユーザーは、デバイスがある使用頻度で作動することを望んでいたかも知れない。またはユーザーの設計は、異なるデバイスの中で異なる数だけ使用される、ある数のある種類の構成部品を含んでいるかも知れず、ユーザーはこのような差異を考慮に入れて、異なったプログラミングを設計するかも知れない。製造業者は設定ファイルからこのような要望を推論することは、必然的に不可能である。
そのうえに、充分に熟練した(sophisticated)ユーザーは、マスクプログラム可能なロジックデバイスに対して特化した設計を希望することがあり得る。ユーザーがそれを実施するうえで必要なツールは、これまで利用可能ではなかった。
本発明に従って、適切なコンピュータベースまたはマイクロプロセッサベースのプログラミング装置によって実行される方法が提供される。その方法は、マスクプログラム可能なロジックデバイスのユーザーのロジック設計の実行と関連して、ユーザーがある程度の選択を規定することを可能とする。発明の別の局面に従って、本発明に従ったプログラミングツールが、あるプログラム可能なロジックデバイスから別のプログラム可能なロジックデバイスに、設計全体を再コンパイルする必要なしに、設計を移行することを可能にし得る。本発明のさらにさらなる局面にしたがって、他の状況では対比されるユーザープログラム可能なロジックデバイスとマスクプログラム可能なロジックデバイスとの間の差異に起因するリソースの制約(constraint)が、ユーザープログラム可能なロジックデバイスのユーザー設計をマスクプログラム可能なロジックデバイスに変換する、またはその逆に変換する際の失敗を最小化するために、考慮される。ユーザーはユーザープログラム可能なロジックデバイスのための設計をプログラムすることを得、ユーザープログラム可能なロジックデバイス内でそれをデバッグまたはテストし得、ついでそれをマスクプログラム可能なロジックデバイスに委ね得る。代替案としては、ユーザーは直接マスクプログラム可能なロジックデバイスのための設計をプログラムすることを得るが、しかしプロトタイピング/試験のために、その設計をユーザープログラム可能なロジックデバイスに移行し得る。
マスクプログラム可能なロジックデバイスの供給者によって設計がマスクプログラム可能なロジックデバイスに移行される前に、設計がユーザープログラム可能なロジックデバイスの中でユーザーによって実証される、既に公知の設計プロセスが、必ずしも全ての場合において最良の結果をもたらすとは限らないことの1つの理由は、マスクプログラム可能なロジックデバイスがユーザープログラム可能なロジックデバイスとは、たとえ最も近く対応するユーザープログラム可能なロジックデバイスであっても、異なるリソースを有することである。
例えば、California、San JoseのAltera Corporationから提供されるマスクプログラム可能なロジックデバイスのファミリーであるHardCopyTMAPEXTMにおいては、これはAlteraのユーザープログラム可能なロジックデバイスのファミリーであるAPEXTMに基づいているが、マスクプログラム可能なロジックデバイスはユーザープログラム可能なロジックデバイスと同じフロアプランに基づいている。特に、HardCopyTMAPEXTMファミリーのデバイスのあらゆるメンバーの中のロジックエリアの配置は、従来のユーザープログラム可能なロジックデバイスであるAPEXTMファミリーの対応する部品の中のそれと同じである。
従来のAPEXTMユーザープログラム可能なロジックデバイスにおいては、相互接続リソースは、プログラム可能ではあるが、数および位置が固定されている。従って、グループ分けされた各ロジック要素は、それが接続されることができる、固定された数のプログラム可能な相互接続ラインを有する。しかしながら、対応するHardCopyTMAPEXTMマスクプログラム可能なロジックデバイスはこのような制約を有しない。物理的な制限が存在するものの、適切なメタライゼーションを使用することによって、本質的にはいかなる結合も作ることができる。それ故に、APEXTMファミリーの従来形ユーザープログラム可能なロジックデバイスに対してユーザーがロジックを設計する場合には、ユーザーの設計はその従来のデバイスの制限された相互接続リソースに対して最適化される。HardCopyTMAPEXTMマスクプログラム可能なロジックデバイスに移行するときに、APEXTMユーザープログラム可能なロジックデバイスからの相互接続を完全模倣的にコピーすることは、本質的に制限を受けない相互接続の利用可能性がより効率的な設計を可能とする場合には、それ故に非効率的であり得る。
その証拠には、ユーザーがマスクプログラム可能なロジックデバイスに対して直接設計を行うが、しかしその設計をユーザープログラム可能なロジックデバイスで試験またはプロトタイプすることを望む場合に、マスクプログラム可能な設計からユーザープログラム可能な設計への変換が、マスクプログラム可能な設計がマスクによって制約のない接続を作ることができることに基づくものであり得るのに、対応するまたは互換性を有するユーザープログラム可能なロジックデバイスにおいて利用可能な内部接続の数が制約され、その設計を支援するうえで十分でないことがあり得るので、適切に行われないことがあり得る。
これらの問題点(concerns)は、両者ともにAltera Corporationから入手可能な、ユーザープログラム可能なロジックデバイスのSTRATIXTMファミリー、および対応するマスクプログラム可能なロジックデバイスのHardCopyTMSTRATIXTMファミリーなどの、より最近のデバイスにおいては一層複雑になっている。これらのデバイスのファミリーにおいては、一つのファミリーのメンバーと他のファミリーの対応するメンバーとの間の一対一の対応が存在しない。対応するファミリーのメンバーの能力は等しいにもかかわらず、ロジック要素あるいはモジュールの数または、よりあり得ることであるが、その位置が変わり得る。さらに、ユーザーメモリなどの補助的要素の数が変わり得る。従って、ある種類のデバイスに対して設計されたロジック設計は、他の種類のデバイスに移行することは不可能となり得る。あるいは設計が移行され得た場合にも、一部のユーザーの設計においては相対的位置が重要であり得るにもかかわらず、要素の同じ相対的位置を保持することが不可能であり得る。
本発明は、ユーザーがロジック設計を、最初にそれをユーザープログラム可能なロジックデバイスに対して準備することなしに、直接マスクプログラム可能なロジックデバイスに対して準備することができる方法を含む。本発明はまた、それを実施するとき、少なくともユーザーがユーザープログラム可能なロジックデバイスにおいてロジック設計をプロトタイプするまたは試験することを意図するときには、対応するまたは互換性を有するユーザープログラム可能なロジックデバイスのあらゆる制約(例えば、上述したような、制限された内部接続リソース、または異なるフロアプラン)を考慮することを含み、その結果、ユーザープログラム可能なロジックデバイスへの設計の所望の移行が可能となる。
本発明はまた、最初にロジック設計を互換性を有するユーザープログラム可能なロジックデバイスに対して設計することによって、マスクプログラム可能なロジックデバイスをプログラムする方法を含む。この方法においては、設計はマスクプログラム可能なロジックデバイスに移行される。この方法の部分として、本発明はまた、ユーザープログラム可能なロジックデバイスを設計するときに、対応するまたは互換性を有するマスクプログラム可能なロジックデバイスのあらゆる制約(例えば、上述したような、より少ない補助的なリソース、または異なるフロアプラン)を考慮することを含み、その結果、所望のマスクプログラム可能なロジックデバイスへの移行が可能となる。
後者の方法の拡張案として、ユーザープログラム可能なロジックデバイスの中でロジック設計を設計すること、およびそれをマスクプログラム可能なロジックデバイスに移行することの後に、ユーザーはプロトタイピング/試験のために、設計を再びもとのユーザープログラム可能なロジックデバイスに移行することを希望し得る。この拡張案に従って、本発明は、最終的な目標であるマスクプログラム可能なロジックデバイスの制約を考慮して、最初のユーザープログラム可能なロジックデバイスの設計を行うこと、その設計をマスクプログラム可能なロジックデバイスに移行するときには、少なくともユーザーがそのロジック設計をプロトタイピング/試験のためにユーザープログラム可能なロジックデバイスに再移行することを意図するときには、互換性を有するユーザープログラム可能なロジックデバイスの制約をさらに考慮すること、を含み、その結果、所望のユーザープログラム可能なロジックデバイスへの設計の再移行が可能となる。
本発明はさらに、ユーザープログラム可能なロジックデバイス用の設定ファイルから変換されたマスクプログラム可能なロジックデバイス用の設計を、マスクプログラム可能なロジックデバイスへの最初の変換を試験するために、ユーザープログラム可能なロジックデバイス用の設定ファイルに戻す変換を行う変換を提供する事を含む。戻す変換のための変換が、最初の変換の単なる鏡像イメージでない(そして、そうでないことが望ましい)かぎりにおいては、戻りの変換から得られた設定ファイルが意図されたように機能する場合には、最初の変換が正しかったと推定することができる。戻りの変換から得られた設定ファイルは、単にそれをもとの設定ファイルと比較することによって、公知の手法を使用するソフトウェアでその作動をシミュレーションすることによって、またはユーザープログラム可能なロジックデバイスを実際にプログラムすることおよびそのデバイスの作動を試験することによって、試験することができる。ファイルが単純に比較される場合には、一致することが正しいことの証明となり得、その他の試験は必要でなくなる。しかしながら、1つよりも多い設計が機能的に一致することがあり得るために、一致しないことが正しくないことの証明ではなく、それ故に比較によって一致しなかった場合でも、シミュレーションによって、または実際のデバイスでの試験によって、追加的評価されることが望ましい。
前述してきた方法を促進するために、本発明は異なるプログラム可能なロジックデバイスの間のマッピングを生成し維持するためのさらなる方法を含む。上述したように、初期のマスクプログラム可能なロジックデバイスの設計は、互換性を有するユーザープログラム可能なロジックデバイスに対して本質的に一対一の対応を維持していた。このことは、例えば、様々なロジック要素の間の位置的関係を維持する(例えば、ユーザーが設計を統合するときに、いくつかのロジック関数を相互に物理的に接近して確保するために、Altera Corporationから入手可能なLogicLockTM関数を頼りにするとき)ことを容易にした。しかしながら、また上述したように、より新しいマスクプログラム可能なロジックデバイスの設計は、互換性を有するユーザープログラム可能なロジックデバイスとの一対一の対応から逸脱している。
このように、ユーザープログラム可能なロジックデバイスは5×4のアレイのロジック要素またはモジュールのブロックを含み得るが、一方ではそれに対応するマスクプログラム可能なロジックデバイスは7×3のアレイのロジック要素またはモジュールのブロックを含み得る。ユーザープログラム可能なロジックデバイスに対する設計の最左側の列の5個のブロックのすべてを、マスクプログラム可能なロジックデバイスの最左側の列に含むことは、その列が3個のブロックしか含まないので、不可能である。ユーザープログラム可能なロジックデバイスから別のロジックデバイスへ、またはマスクプログラム可能なロジックデバイスから別のロジックデバイスへ、移動するときにおいても、同様の事態が起こり得る。
このことは、本発明に従って、一つのプログラム可能なロジックデバイスを別のロジックデバイスに対してマッピングする方法によって、解決が計られており、その結果、任意の2個のデバイスの間でのように、あるデバイスのロジックブロックの中の機能を他のデバイスの中のロジックブロックに対してマッピングする方法が知られる。このように上記の7×3対5×4の例においては、5個のブロックの内のどれが最初の列にマッピングされないかが知られ、さらにそれらがどこにマッピングされるかが知られる。マッピングは手動または様々な代替案を吟味し最も最適なマッピングを選択する自動化されたプロセスによって行われ得、最も近い近隣関係、および/またはロジックブロックおよび入力/出力ブロックとの間の関係、を維持するという潜在的なニーズを考慮して行われる。任意の2個のデバイスの間でのように、マッピングを行うのは1回のみとする必要があり、次いでそのマッピングが、任意の設計を1つのデバイスから他のデバイスに移行する(上記で検討された他の制約が適用されるならば、そのもとで)ために使用され得る。それぞれのマッピングはそれぞれのデバイスのペアに対して1回しか実行できないために、手動によってマッピングを行うことが実行可能であり得る。
このマッピングの発明は、任意の1つのデバイスがマスクプログラム可能またはユーザープログラム可能であっても適用される。つまり、マッピングは、特定のユーザープログラム可能なロジックデバイスと特定のマスクプログラム可能なロジックデバイスとの間、特定のユーザープログラム可能なロジックデバイスと別の特定のユーザープログラム可能なロジックデバイスとの間、または特定のマスクプログラム可能なロジックデバイスと別の特定のマスクプログラム可能なロジックデバイスとの間で準備されることができる。
このように、本発明に従って、1つ以上の所望の機能を実行するマスクプログラムされたロジックデバイスを生成するための、マスクプログラム可能なロジックデバイスをプログラムする方法が提供される。その方法は、マスクプログラム可能なロジックデバイスと互換性を有するユーザープログラム可能なロジックデバイスに対して、1つ以上の所望の機能を実行するようなプログラミングを設計すること、それによって1つ以上のユーザープログラム可能なロジックデバイス設定ファイルを生成することを含む。1つ以上のユーザープログラム可能なロジックデバイス設定ファイルは、第1の変換関数を使用することによって、1つ以上のマスクプログラム可能なロジックデバイス設定ファイルを含む、マスクプログラム可能なロジックデバイス用のプログラミングを生成するために作動される。
追加として、1つ以上の所望の機能を実行するマスクプログラムされたロジックデバイスを生成するための、マスクプログラム可能なロジックデバイスをプログラムする方法が提供される。その方法は、マスクプログラム可能なロジックデバイスが1つ以上の所望の機能を実行するようにプログラミングを設計すること、それによって1つ以上のマスクプログラム可能なロジックデバイス設定ファイルを生成することを含む。1つ以上のマスクプログラム可能なロジックデバイス設定ファイルは、変換関数を使用することによって、1つ以上のユーザープログラム可能なロジックデバイス設定ファイルを含む、前記マスクプログラム可能なロジックデバイスと互換性を有するユーザープログラム可能なロジックデバイス用のプログラミングを生成するために作動される。
さらに、1つよりも多いプログラム可能なロジックデバイスと互換性を有するプログラミングを生成する方法が提供される。その方法は、第1のプログラム可能なロジックデバイスに対するプログラミングを設計することを含み、その設計は、そのプログラミングが少なくとも一部分において、少なくとも第2のプログラム可能なロジックデバイスに基づいていることを含む。
これまでに述べられた方法に従ってプログラムされた、プログラム可能なロジックデバイスが、また提供される。
例えば、本発明は以下の項目を提供する。
(項目1)
一つ以上の所望の機能を実行するマスクプログラムされたロジックデバイスを生成するために、マスクプログラム可能なロジックデバイスをプログラムする方法であって、
該マスクプログラム可能なロジックデバイスと互換性を有するユーザープログラム可能なロジックデバイスに対して、該一つ以上の所望の機能を実行するためのプログラミングを設計することであって、それによって一つ以上のユーザープログラム可能なロジックデバイス設定ファイルを生成する、ことと、
第1の変換関数を使用して、一つ以上のマスクプログラム可能なロジックデバイス設定ファイルを含む該マスクプログラム可能なロジックデバイスのためのプログラミングを生成するために、該一つ以上のユーザープログラム可能なロジックデバイスに働きかけることと、
を包含する方法。
(項目2)
上記マスクプログラムされたロジックデバイスを生成するために、上記一つ以上のユーザープログラム可能なロジックデバイス設定ファイルおよび上記一つ以上のマスクプログラム可能なロジックデバイス設定ファイルを処理することをさらに包含する、項目1に記載の方法。
(項目3)
上記処理することは、
上記少なくとも一つのユーザープログラム可能なロジックデバイス設定ファイルの少なくとも一つを逆アセンブルして、ネットリストを生成することを包含する、項目2に記載の方法。
(項目4)
上記処理することは、
上記ネットリストを配置配線処理ツールに入力することをさらに包含する、項目3に記載の方法。
(項目5)
上記処理することは、
上記少なくとも一つのマスクプログラム可能なロジックデバイス設定ファイルを上記配置配線処理ツールに入力することをさらに包含する、項目4に記載の方法。
(項目6)
上記少なくとも一つのユーザープログラム可能なロジックデバイス設定ファイルは、少なくとも一つのビットストリーム設定ファイルを備える、項目1に記載の方法。
(項目7)
上記少なくとも一つのユーザープログラム可能なロジックデバイス設定ファイルは、ユーザー制約を表すファイルをさらに備える、項目6に記載の方法。
(項目8)
上記少なくとも一つのマスクプログラム可能なロジックデバイス設定ファイルは、
(a)マスクプログラム可能なロジックデバイスのタイミング制約を表すファイル、および
(b)マスクプログラム可能なロジックデバイスの配置制約を表すファイル、
の少なくとも1つを備える、項目1に記載の方法。
(項目9)
上記マスクプログラムされたロジックデバイスを生成することに先立って、上記互換性を有するユーザープログラム可能なロジックデバイスに対する上記プログラミングを試験することをさらに包含する、項目1に記載の方法。
(項目10)
上記設計することは、少なくとも部分的に上記マスクプログラム可能なロジックデバイスの特性に基づいて、上記互換性を有するユーザープログラム可能なロジックデバイスに対する上記プログラミングを設計することを包含する、項目9に記載の方法。
(項目11)
上記設計することは、少なくとも部分的に上記マスクプログラム可能なロジックデバイスの特性に基づいて、上記互換性を有するユーザープログラム可能なロジックデバイスに対する上記プログラミングを設計することを包含する、項目1に記載の方法。
(項目12)
上記第1の変換関数は、上記ユーザープログラム可能なロジックデバイスと上記マスクプログラム可能なロジックデバイスとの間のマッピングを含む、項目1に記載の方法。
(項目13)
上記マスクプログラム可能なロジックデバイスに対する上記プログラミングを、上記ユーザープログラム可能なロジックデバイスに対する導出されたプログラミングに変換するために、第2の変換関数を使用することと、
上記ユーザープログラム可能なロジックデバイスに対する上記プログラミングを試験することと、
をさらに包含する、項目1に記載の方法。
(項目14)
上記試験することは、上記導出されたプログラミングを、上記ユーザープログラム可能なロジックデバイスに対して設計された上記プログラミングと比較することを包含する、項目13に記載の方法。
(項目15)
上記試験することは、上記導出されたプログラミングによってユーザープログラム可能なロジックデバイスをプログラムすること、および該プログラムされたユーザープログラム可能なロジックデバイスの作動を観察すること、を包含する、項目13に記載の方法。
(項目16)
項目1に記載の方法に従ってプログラムされた、マスクプログラムされたロジックデバイス。
(項目17)
処理サーキットリと、
該処理サーキットリに接続されたメモリと、
項目1に記載の方法に従ってプログラムされ、該処理サーキットリおよび該メモリと接続された、マスクプログラムされたロジックデバイスと、
を備える、デジタル処理システム。
(項目18)
項目1に記載の方法に従ってプログラムされたマスクプログラムされたロジックデバイスが取り付けられている、プリント回路基板。
(項目19)
上記プリント回路基板上に取り付けられ、上記マスクプログラムされたロジックデバイスに接続された、メモリサーキットリをさらに備える、項目18に規定されたプリント回路基板。
(項目20)
上記プリント回路基板上に取り付けられ、上記メモリサーキットリに接続された、処理サーキットリをさらに備える、項目19に規定されたプリント回路基板。
(項目21)
一つ以上の所望の機能を実行するマスクプログラムされたロジックデバイスを生成するために、マスクプログラム可能なロジックデバイスをプログラムする方法であって、
該一つ以上の所望の機能を実行するために該マスクプログラム可能なロジックデバイスに対するプログラミングを設計することであって、それによって一つ以上のマスクプログラム可能なロジックデバイス設定ファイルを生成する、ことと、
変換関数を使用して、一つ以上のユーザープログラム可能なロジックデバイス設定ファイルを含む、上記マスクプログラム可能なロジックデバイスと互換性を有するユーザープログラム可能なロジックデバイスのためのプログラミングを生成するために、該一つ以上のマスクプログラム可能なロジックデバイス設定ファイルに働きかけることと、
を包含する方法。
(項目22)
上記マスクプログラムされたロジックデバイスを生成するために、上記一つ以上のユーザープログラム可能なロジックデバイス設定ファイルおよび上記一つ以上のマスクプログラム可能なロジックデバイス設定ファイルを処理することをさらに包含する、項目21に記載の方法。
(項目23)
上記処理することは、
上記少なくとも一つのユーザープログラム可能なロジックデバイス設定ファイルの少なくとも一つを逆アセンブルして、ネットリストを生成することを包含する、項目22に記載の方法。
(項目24)
上記処理することは、
上記ネットリストを配置配線処理ツールに入力することをさらに包含する、項目23に記載の方法。
(項目25)
上記処理することは、
上記少なくとも一つのマスクプログラム可能なロジックデバイス設定ファイルを上記配置配線処理ツールに入力することをさらに包含する、項目24に記載の方法。
(項目26)
上記少なくとも一つのユーザープログラム可能なロジックデバイス設定ファイルは、少なくとも一つのビットストリーム設定ファイルを備える、項目21に記載の方法。
(項目27)
上記少なくとも一つのユーザープログラム可能なロジックデバイス設定ファイルは、ユーザー制約を表すファイルをさらに備える、項目26に記載の方法。
(項目28)
上記少なくとも一つのマスクプログラム可能なロジックデバイス設定ファイルは、
(a)マスクプログラム可能なロジックデバイスのタイミング制約を表すファイル、および
(b)マスクプログラム可能なロジックデバイスの配置制約を表すファイル、
の少なくとも1つを備える、項目21に記載の方法。
(項目29)
上記マスクプログラムされたロジックデバイスを生成することに先立って、上記互換性を有するユーザープログラム可能なロジックデバイスに対する上記プログラミングを試験することをさらに包含する、項目21に記載の方法。
(項目30)
上記働きかけることは、少なくとも部分的に上記マスクプログラム可能なロジックデバイスの特性に基づいて、上記互換性を有するユーザープログラム可能なロジックデバイスに対する上記プログラミングを設計することを包含する、項目29に記載の方法。
(項目31)
上記働きかけることは、少なくとも部分的に上記マスクプログラム可能なロジックデバイスの特性に基づいて、上記互換性を有するユーザープログラム可能なロジックデバイスに対する上記プログラミングを設計することを包含する、項目21に記載の方法。
(項目32)
上記設計することは、少なくとも部分的に上記互換性を有するユーザープログラム可能なロジックデバイスの特性に基づいて、上記マスクプログラム可能なロジックデバイスに対する上記プログラミングを設計することを包含する、項目21に記載の方法。
(項目33)
上記変換関数は、上記ユーザープログラム可能なロジックデバイスと上記マスクプログラム可能なロジックデバイスとの間のマッピングを含む、項目21に記載の方法。
(項目34)
項目21に記載の方法に従ってプログラムされた、マスクプログラムされたロジックデバイス。
(項目35)
処理サーキットリと、
該処理サーキットリに接続されたメモリと、
項目21に記載の方法に従ってプログラムされ、該処理サーキットリおよび該メモリと接続された、マスクプログラムされたロジックデバイスと、
を備える、デジタル処理システム。
(項目36)
項目21に記載の方法に従ってプログラムされたマスクプログラムされたロジックデバイスが取り付けられている、プリント回路基板。
(項目37)
上記プリント回路基板上に取り付けられ、上記マスクプログラムされたロジックデバイスに接続された、メモリサーキットリをさらに備える、項目36に規定されたプリント回路基板。
(項目38)
上記プリント回路基板上に取り付けられ、上記メモリサーキットリに接続された、処理サーキットリをさらに備える、項目37に規定されたプリント回路基板。
(項目39)
第1のプログラム可能なロジックデバイスをプログラムする方法であって、該方法は、
該プログラミングが、少なくとも部分的に、少なくとも一つの第2のプログラム可能なロジックデバイスに対するプログラミングを該第1のプログラム可能なロジックデバイスの上にマッピングすることに基づくことを包含する、方法。
(項目40)
上記第1のプログラム可能なロジックデバイスはマスクプログラム可能なロジックデバイスであり、
上記第2のプログラム可能なロジックデバイスはユーザープログラム可能なロジックデバイスである、項目39に記載の方法。
(項目41)
上記第1のプログラム可能なロジックデバイスはユーザープログラム可能なロジックデバイスであり、
上記第2のプログラム可能なロジックデバイスはマスクプログラム可能なロジックデバイスである、項目39に記載の方法。
(項目42)
上記第1のプログラム可能なロジックデバイスおよび上記第2のプログラム可能なロジックデバイスは共に、ユーザープログラム可能である、項目39に記載の方法。
(項目43)
上記第1のプログラム可能なロジックデバイスおよび上記第2のプログラム可能なロジックデバイスは共に、マスクプログラム可能である、項目39に記載の方法。
(項目44)
上記基づくことは、複数のプログラム可能なロジックデバイスの各々の、該複数のプログラム可能なロジックデバイスの他の各々への、構成のマッピングのライブラリの中から、上記第2のプログラム可能なロジックデバイスの上記第1のプログラム可能なロジックデバイスへの構成のマッピングを選択することを包含する、項目39に記載の方法。
(項目45)
上記マッピングのライブラリをアセンブルすることおよび維持することをさらに包含する、項目44に記載の方法。
(項目46)
項目39に記載の方法に従ってプログラムされた、プログラム可能なロジックデバイス。
(項目47)
処理サーキットリと、
該処理サーキットリに接続されたメモリと、
項目39に記載の方法に従ってプログラムされ、該処理サーキットリおよび該メモリと接続された、プログラム可能なロジックデバイスと、
を備える、デジタル処理システム。
(項目48)
項目39に記載の方法に従ってプログラムされたプログラム可能なロジックデバイスが取り付けられている、プリント回路基板。
(項目49)
上記プリント回路基板上に取り付けられ、上記マスクプログラムされたロジックデバイスに接続された、メモリサーキットリをさらに備える、項目48に規定されたプリント回路基板。
(項目50)
上記プリント回路基板上に取り付けられ、上記メモリサーキットリに接続された、処理サーキットリをさらに備える、項目49に規定されたプリント回路基板。
(項目1)
一つ以上の所望の機能を実行するマスクプログラムされたロジックデバイスを生成するために、マスクプログラム可能なロジックデバイスをプログラムする方法であって、
該マスクプログラム可能なロジックデバイスと互換性を有するユーザープログラム可能なロジックデバイスに対して、該一つ以上の所望の機能を実行するためのプログラミングを設計することであって、それによって一つ以上のユーザープログラム可能なロジックデバイス設定ファイルを生成する、ことと、
第1の変換関数を使用して、一つ以上のマスクプログラム可能なロジックデバイス設定ファイルを含む該マスクプログラム可能なロジックデバイスのためのプログラミングを生成するために、該一つ以上のユーザープログラム可能なロジックデバイスに働きかけることと、
を包含する方法。
(項目2)
上記マスクプログラムされたロジックデバイスを生成するために、上記一つ以上のユーザープログラム可能なロジックデバイス設定ファイルおよび上記一つ以上のマスクプログラム可能なロジックデバイス設定ファイルを処理することをさらに包含する、項目1に記載の方法。
(項目3)
上記処理することは、
上記少なくとも一つのユーザープログラム可能なロジックデバイス設定ファイルの少なくとも一つを逆アセンブルして、ネットリストを生成することを包含する、項目2に記載の方法。
(項目4)
上記処理することは、
上記ネットリストを配置配線処理ツールに入力することをさらに包含する、項目3に記載の方法。
(項目5)
上記処理することは、
上記少なくとも一つのマスクプログラム可能なロジックデバイス設定ファイルを上記配置配線処理ツールに入力することをさらに包含する、項目4に記載の方法。
(項目6)
上記少なくとも一つのユーザープログラム可能なロジックデバイス設定ファイルは、少なくとも一つのビットストリーム設定ファイルを備える、項目1に記載の方法。
(項目7)
上記少なくとも一つのユーザープログラム可能なロジックデバイス設定ファイルは、ユーザー制約を表すファイルをさらに備える、項目6に記載の方法。
(項目8)
上記少なくとも一つのマスクプログラム可能なロジックデバイス設定ファイルは、
(a)マスクプログラム可能なロジックデバイスのタイミング制約を表すファイル、および
(b)マスクプログラム可能なロジックデバイスの配置制約を表すファイル、
の少なくとも1つを備える、項目1に記載の方法。
(項目9)
上記マスクプログラムされたロジックデバイスを生成することに先立って、上記互換性を有するユーザープログラム可能なロジックデバイスに対する上記プログラミングを試験することをさらに包含する、項目1に記載の方法。
(項目10)
上記設計することは、少なくとも部分的に上記マスクプログラム可能なロジックデバイスの特性に基づいて、上記互換性を有するユーザープログラム可能なロジックデバイスに対する上記プログラミングを設計することを包含する、項目9に記載の方法。
(項目11)
上記設計することは、少なくとも部分的に上記マスクプログラム可能なロジックデバイスの特性に基づいて、上記互換性を有するユーザープログラム可能なロジックデバイスに対する上記プログラミングを設計することを包含する、項目1に記載の方法。
(項目12)
上記第1の変換関数は、上記ユーザープログラム可能なロジックデバイスと上記マスクプログラム可能なロジックデバイスとの間のマッピングを含む、項目1に記載の方法。
(項目13)
上記マスクプログラム可能なロジックデバイスに対する上記プログラミングを、上記ユーザープログラム可能なロジックデバイスに対する導出されたプログラミングに変換するために、第2の変換関数を使用することと、
上記ユーザープログラム可能なロジックデバイスに対する上記プログラミングを試験することと、
をさらに包含する、項目1に記載の方法。
(項目14)
上記試験することは、上記導出されたプログラミングを、上記ユーザープログラム可能なロジックデバイスに対して設計された上記プログラミングと比較することを包含する、項目13に記載の方法。
(項目15)
上記試験することは、上記導出されたプログラミングによってユーザープログラム可能なロジックデバイスをプログラムすること、および該プログラムされたユーザープログラム可能なロジックデバイスの作動を観察すること、を包含する、項目13に記載の方法。
(項目16)
項目1に記載の方法に従ってプログラムされた、マスクプログラムされたロジックデバイス。
(項目17)
処理サーキットリと、
該処理サーキットリに接続されたメモリと、
項目1に記載の方法に従ってプログラムされ、該処理サーキットリおよび該メモリと接続された、マスクプログラムされたロジックデバイスと、
を備える、デジタル処理システム。
(項目18)
項目1に記載の方法に従ってプログラムされたマスクプログラムされたロジックデバイスが取り付けられている、プリント回路基板。
(項目19)
上記プリント回路基板上に取り付けられ、上記マスクプログラムされたロジックデバイスに接続された、メモリサーキットリをさらに備える、項目18に規定されたプリント回路基板。
(項目20)
上記プリント回路基板上に取り付けられ、上記メモリサーキットリに接続された、処理サーキットリをさらに備える、項目19に規定されたプリント回路基板。
(項目21)
一つ以上の所望の機能を実行するマスクプログラムされたロジックデバイスを生成するために、マスクプログラム可能なロジックデバイスをプログラムする方法であって、
該一つ以上の所望の機能を実行するために該マスクプログラム可能なロジックデバイスに対するプログラミングを設計することであって、それによって一つ以上のマスクプログラム可能なロジックデバイス設定ファイルを生成する、ことと、
変換関数を使用して、一つ以上のユーザープログラム可能なロジックデバイス設定ファイルを含む、上記マスクプログラム可能なロジックデバイスと互換性を有するユーザープログラム可能なロジックデバイスのためのプログラミングを生成するために、該一つ以上のマスクプログラム可能なロジックデバイス設定ファイルに働きかけることと、
を包含する方法。
(項目22)
上記マスクプログラムされたロジックデバイスを生成するために、上記一つ以上のユーザープログラム可能なロジックデバイス設定ファイルおよび上記一つ以上のマスクプログラム可能なロジックデバイス設定ファイルを処理することをさらに包含する、項目21に記載の方法。
(項目23)
上記処理することは、
上記少なくとも一つのユーザープログラム可能なロジックデバイス設定ファイルの少なくとも一つを逆アセンブルして、ネットリストを生成することを包含する、項目22に記載の方法。
(項目24)
上記処理することは、
上記ネットリストを配置配線処理ツールに入力することをさらに包含する、項目23に記載の方法。
(項目25)
上記処理することは、
上記少なくとも一つのマスクプログラム可能なロジックデバイス設定ファイルを上記配置配線処理ツールに入力することをさらに包含する、項目24に記載の方法。
(項目26)
上記少なくとも一つのユーザープログラム可能なロジックデバイス設定ファイルは、少なくとも一つのビットストリーム設定ファイルを備える、項目21に記載の方法。
(項目27)
上記少なくとも一つのユーザープログラム可能なロジックデバイス設定ファイルは、ユーザー制約を表すファイルをさらに備える、項目26に記載の方法。
(項目28)
上記少なくとも一つのマスクプログラム可能なロジックデバイス設定ファイルは、
(a)マスクプログラム可能なロジックデバイスのタイミング制約を表すファイル、および
(b)マスクプログラム可能なロジックデバイスの配置制約を表すファイル、
の少なくとも1つを備える、項目21に記載の方法。
(項目29)
上記マスクプログラムされたロジックデバイスを生成することに先立って、上記互換性を有するユーザープログラム可能なロジックデバイスに対する上記プログラミングを試験することをさらに包含する、項目21に記載の方法。
(項目30)
上記働きかけることは、少なくとも部分的に上記マスクプログラム可能なロジックデバイスの特性に基づいて、上記互換性を有するユーザープログラム可能なロジックデバイスに対する上記プログラミングを設計することを包含する、項目29に記載の方法。
(項目31)
上記働きかけることは、少なくとも部分的に上記マスクプログラム可能なロジックデバイスの特性に基づいて、上記互換性を有するユーザープログラム可能なロジックデバイスに対する上記プログラミングを設計することを包含する、項目21に記載の方法。
(項目32)
上記設計することは、少なくとも部分的に上記互換性を有するユーザープログラム可能なロジックデバイスの特性に基づいて、上記マスクプログラム可能なロジックデバイスに対する上記プログラミングを設計することを包含する、項目21に記載の方法。
(項目33)
上記変換関数は、上記ユーザープログラム可能なロジックデバイスと上記マスクプログラム可能なロジックデバイスとの間のマッピングを含む、項目21に記載の方法。
(項目34)
項目21に記載の方法に従ってプログラムされた、マスクプログラムされたロジックデバイス。
(項目35)
処理サーキットリと、
該処理サーキットリに接続されたメモリと、
項目21に記載の方法に従ってプログラムされ、該処理サーキットリおよび該メモリと接続された、マスクプログラムされたロジックデバイスと、
を備える、デジタル処理システム。
(項目36)
項目21に記載の方法に従ってプログラムされたマスクプログラムされたロジックデバイスが取り付けられている、プリント回路基板。
(項目37)
上記プリント回路基板上に取り付けられ、上記マスクプログラムされたロジックデバイスに接続された、メモリサーキットリをさらに備える、項目36に規定されたプリント回路基板。
(項目38)
上記プリント回路基板上に取り付けられ、上記メモリサーキットリに接続された、処理サーキットリをさらに備える、項目37に規定されたプリント回路基板。
(項目39)
第1のプログラム可能なロジックデバイスをプログラムする方法であって、該方法は、
該プログラミングが、少なくとも部分的に、少なくとも一つの第2のプログラム可能なロジックデバイスに対するプログラミングを該第1のプログラム可能なロジックデバイスの上にマッピングすることに基づくことを包含する、方法。
(項目40)
上記第1のプログラム可能なロジックデバイスはマスクプログラム可能なロジックデバイスであり、
上記第2のプログラム可能なロジックデバイスはユーザープログラム可能なロジックデバイスである、項目39に記載の方法。
(項目41)
上記第1のプログラム可能なロジックデバイスはユーザープログラム可能なロジックデバイスであり、
上記第2のプログラム可能なロジックデバイスはマスクプログラム可能なロジックデバイスである、項目39に記載の方法。
(項目42)
上記第1のプログラム可能なロジックデバイスおよび上記第2のプログラム可能なロジックデバイスは共に、ユーザープログラム可能である、項目39に記載の方法。
(項目43)
上記第1のプログラム可能なロジックデバイスおよび上記第2のプログラム可能なロジックデバイスは共に、マスクプログラム可能である、項目39に記載の方法。
(項目44)
上記基づくことは、複数のプログラム可能なロジックデバイスの各々の、該複数のプログラム可能なロジックデバイスの他の各々への、構成のマッピングのライブラリの中から、上記第2のプログラム可能なロジックデバイスの上記第1のプログラム可能なロジックデバイスへの構成のマッピングを選択することを包含する、項目39に記載の方法。
(項目45)
上記マッピングのライブラリをアセンブルすることおよび維持することをさらに包含する、項目44に記載の方法。
(項目46)
項目39に記載の方法に従ってプログラムされた、プログラム可能なロジックデバイス。
(項目47)
処理サーキットリと、
該処理サーキットリに接続されたメモリと、
項目39に記載の方法に従ってプログラムされ、該処理サーキットリおよび該メモリと接続された、プログラム可能なロジックデバイスと、
を備える、デジタル処理システム。
(項目48)
項目39に記載の方法に従ってプログラムされたプログラム可能なロジックデバイスが取り付けられている、プリント回路基板。
(項目49)
上記プリント回路基板上に取り付けられ、上記マスクプログラムされたロジックデバイスに接続された、メモリサーキットリをさらに備える、項目48に規定されたプリント回路基板。
(項目50)
上記プリント回路基板上に取り付けられ、上記メモリサーキットリに接続された、処理サーキットリをさらに備える、項目49に規定されたプリント回路基板。
上記およびその他の本発明の利点は、添付の図面と共に、以下の詳細な記述を考慮することによって明らかとなる。添付図面において、同じ参照数字は全ての図面において同じ部分を表す。
本発明は、マスクプログラム可能なロジックデバイス(「MPLD])に対するプログラミングプロセスの流れを変更する。従来のユーザープログラム可能なPLD(「UPLD」)に対するユーザーの設定ファイルを単純に使用して、ユーザーがMPLDにおいて実行されることを希望する設計を、MPLD提供者が自分で判断するという方法ではなく、本発明はユーザーの管理の下でより多くのプロセスがなされるように拡張されたユーザーツールを提供し、そのツールはユーザーがプロセスの間に追加の情報を入力することを可能にする。
このプロセスをさらに拡張するために、発明に従って強化されたツールは、以下に記述されるようにMPLDの特性の拡張されたモデルを好適に具体化する。
発明はここに、図1〜図7を参照して記載される。
図1はMPLDをプログラムする、すでに公知の方法10を示す。ユーザーの管理の下でなされるプロセスのこれらの部分は、破線の囲み11の中に示されており、MPLD供給者の管理の下でなされるこれらのステップは、破線の囲み12の中に示される。方法10は、プログラムされるMPLDは、望ましくは同一の供給者からの、従来のUPLDに対するMPLDの写し(counterpart)であることを、予め予想している。
ステップ110において、ユーザーはその目的のために供給者によって供給された設計ツールを使用して、周知のとおり、従来のUPLDに対する設計を開始する。ステップ111において、これらのツールはユーザーの設計をコンパイルし設定ファイル112とする。このファイルは、ユーザーが設計を実施したUPLDのそれぞれの設定ビットに対して指定される値(1および0)を好適に含む、ビットストリームファイルであることが望ましい。ユーザーの制約(例えば、デバイスの所望の作動回数)のリストを含む第2のファイル113が、生成され得る。好ましくはファイル113のデータはファイル112の中に編入され、供給者プロセス12に提供される。
ステップ120では、設定ファイル112が好適に逆アセンブルされる。設計が実行されたUPLDモデルに関する知識、およびそのUPLDに対する各設定ビットの効果を使用して、逆アセンブラ120は設計が実行するべき論理的機能を決定することができる。その情報はネットリスト生成ステップ121が、プログラムされたMPLD上に提供されるべき機能のネットリストを生成することを可能とする。ネットリストは配置配線処理(place−and−route)ステップ122において好適に処理され、この処理は望ましくは、California、Mountain ViewのSynopsys,Inc.から入手可能な(以前はCalifornia、San JoseのAvanti Corp.から入手可能であった)APOLLO−IITM配置配線処理ツールなどの、周知である既存の配置配線処理ツールを使用してなされる。配置配線処理ステップ122の結果は、ステップ123において、MPLDをプログラムするために必要なメタライゼーションを生成するために使用される。配置配線処理ステップ122の後にタイミングレポート1220が生成され得、ユーザーはこれを用いて所望のタイミング関係が実現されているかを確かめることができる。
UPLD設計をMPLDに変換することを決定することにおいては、ユーザーは変換による性能上の報酬を得ることをしばしば期待する。例えば、ある機能を実行するプログラムされたMPLDは、対応するプログラムされたUPLDよりもより速くおよび/またはよりクールに(より少ない電力で)作動し得る。しかしながら、例えば、特定のロジックブロック内の機能の位置、および特定の信号に対する特定の経路の選択によっては、性能上の改善が他と比べてある特定の改善に偏る(例えば、消費電力と比べて速さが、またはその逆に)ことが、あり得る。方法10において供給者が設定ファイル112を入手するとき、供給者はユーザーにとってどのような考慮が、それがある場合には、最も重要かに関してほとんど情報を有しない。供給者は設計に基づいてユーザーの要求に関する訓練された推測を行うことは可能であるが、それらの推測は誤りである可能性があり、その結果、機能的ではあるがユーザーの見込みからは最適の次の(suboptimal)MPLD設計が得られる可能性がある。
図2は2個のデバイスを比較する。デバイス130は5×4の形状に配置された20個のブロック131(例えば、それぞれ10個のロジック要素、またはモジュール)を有する仮定のUPLDであり、一方デバイス140は7×3の形状に配置されたロジック要素またはモジュールの21個のブロック141を有する、対応する互換性を有するMPLDである。これらは異なるダイ(die)寸法を有し得るが、互換性を有するデバイスとして、各デバイス130と140は同じ外部環境条件に適合しなければならない。それ故に、入力/出力ドライバ132の配置は異なり得るものの、それぞれは同じパッケージおよびピンアウト(pinout)を有することが望ましい。この例において、デバイス130と140はさらに、UPLDデバイス130は2個のユーザーメモリ133を有し、一方MPLDデバイス140は1個のみのユーザーメモリ143を有する点で異なる。実際のデバイスのペアの間には、ほかの相違点がまたあり得る。そしてUPLD上の使用可能な経路決定(routing)は製造業者によって提供されるプログラム可能な相互接続構造のみであるが、一方でMPLDにおける経路決定上の唯一の制限は、一部のユーザーによって要望される一部の複雑な経路決定プラン(例えば、使用可能なメタライゼーションの層によってまかなわれるよりも、2個の多数の信号経路が、相互に交差する必要があるためによる)に対するメタライゼーションを配置することに潜在する困難から生じる制限であり、この点において全てのUPLDは全てのMPLDとは異なる。
ユーザーがUPLD130に対する設計を実施するときには、デバイスの外部で使用される信号を生成するいくつかの機能は入力/出力領域132に近づけて置かれる必要があり、しかしまた相互に結果を利用するいくつかのロジック機能はまた相互に近づけて置かれるべきである、ということにユーザーは留意する。ロジックブロック131と141の配置が異なるために、ユーザーの設計をMPLD140に移行するときに、これらの両方の目標を得ることは難しい。
本発明に従った方法20(図3)は、ユーザーにプロセス上でより多くの制御を与えることによって、ユーザーの要望により多くの重みを置くことを試みている。このように、方法20のユーザーの割り当て部分21において、UPLD設計がステップ111でコンパイルされた後に、その結果は設定ファイル112に出力されるのみならず、MPLDモデル210にもまた出力され、その中では対応するMPLDの特性および応答−−MPLDの実際の配置または「フロアプラン」を含む−−が表現され、実質的にはUPLD機能をMPLD機能に翻訳し、それはステップ211において好適にコンパイルされる。同じコンパイルのためのツール、望ましくは同じアルゴリズムおよび/またはコード基準、がUPLDをコンパイルするステップ111およびMPLDをコンパイルするステップ211(およびMPLDをコンパイルするステップ410−−図5を参照)において使用されることが望ましい。同じユーザーの設計に対して同じコンパイラを使用することによって、複雑な証明を必要とせずに、UPLDの中で働く設計がMPLDの中で働くことに関して、高い確信が得られる。図7に関連して以下に記載されるように、MPLDモデル210はデバイス対デバイスのマッピングに基づいて得られる。
ステップ211の結果は、プログラムされたMPLDに対するタイミング制約のファイル213、およびプログラムされたMPLDに対する配置制約のファイル214である。ユーザーはステップ211でのコンパイル実行に指示を与える(guide)ために、ステップ211に対して入力212を提供し得る。例えば、ユーザーの目標の1つが、UPLDバージョンにおけるよりもMPLDバージョンにおいて50%速い確かなクロックランを得ることである場合には、ステップ211でユーザーによってそのことを入力することが可能で、その結果、ステップは例えば電力消費量の削減よりも速さに配慮することを「知る」。
上述のように、シングルファイルであり得るファイル112と113が、方法10におけると同様に逆アセンブラ120に対して提供されるときに、またシングルファイルであり得る、MPLDに対するタイミングおよび配置データを含むファイル213および214が、配置配線処理ステップ122に提供される。詳細には、これらのデータは、UPLDによっては満たされずMPLDによって満たされ得る(それ故にファイル112/113には反映されない)タイミング制約、およびMPLDの配置構造の「知識」に基づく配置制約を含む。これらのデータを用いて、配置機能がすでに実行されているので、配置配線処理ツールがなすべきことはほとんどない。それ故に、配置配線処理ツールは好適に実質的に配線のみを実行し、次いで上記のようにステップ123でMPLDが作成される。
方法20において、方法10と同様にユーザーは、所望のMPLDを対応するUPLDの言語(term)によって定義する。しかしながら、UPLDプログラミングを設計するに際して、最終目標であるMPLDの制約が考慮されねばならない。故に、UPLD設計ステップ110のユーザー入力の部分は、設計が最終的にMPLDに対して意図されたものであるか否かの指示である。そのように意図された場合には、MPLDの制約が考慮される。例えば設計ツールは、所望のロジック設計を達成するが、しかし互換性を有するMPLDの中では使用できない、UPLD機能の使用を許可しない。なぜならば、例えば、相互に互換性を有する場合においても、UPLDとMPLDとの間に上述した種類の相違があるためである。
発明の別の好適な実施形態においては、方法30(図4)のユーザー割り当て部分31において、ユーザーはユーザー設計310の中で所望のMPLDをMPLD言語そのものによって定義する。これはMPLDに対する設計を最適化する。なぜならば様々なリソースの数および配置に関して言えば、MPLDの構造を直接的に考慮して設計が生成されるからである。
設計310および、再び所望の作動回数などのMPLD制約のユーザー入力212、がMPLDコンパイラステップ211に入力され、そのステップはタイミングおよび配置制約213と214を再び出力する。ステップ211の出力はまたステップ311でのモデルへの入力となり、そのモデルの中では対応するUPLDの特性および応答が表現され、実質的にMPLD機能がUPLD機能に翻訳され、それは好適にステップ111でコンパイルされる。ステップ111は再びUPLD設定および制約データ112と113を生成する。データ112、113、213および214は方法30の供給者割り当て部分12の中で、方法20の供給者割り当て部分12の中でと同様に、使用される。
追加として、ステップ123で供給者にプログラムされたMPLDを作成することを委ねるに先立って、ユーザーが所望のMPLDをシミュレーションするためにUPLDをプログラムすることを要望するという事態においては、データ112と113が使用できる。しかしながら、ユーザーがこのようなUPLDでの実証の実行を意図する場合には、ユーザーはUPLD実証がなされることを入力212の部分として指示するべきことが望ましい。このような場合、UPLDの制約が考慮される。例えば設計ツールは、所望のロジック設計を達成するが、しかし互換性を有するUPLDの中では使用できない、MPLD機能の使用を許可しない。なぜならば、例えば、相互に互換性を有する場合においても、UPLDとMPLDとの間に上述した種類の相違があるためである。
図5に示される方法40の、さらなる好適な実施形態において、ユーザーは再びユーザー割り当て部分41の中において、ユーザー設計310の中でMPLDそのものの言語で所望のMPLDを定義する。その設計310および、再び所望の作動回数のようなMPLD制約のユーザー入力212が、MPLDコンパイラステップ410に入力され、そのステップはアーキテクチャファイル411およびユーザー制約ファイル412と同様にタイミングおよび配置制約213と214を再び出力する。この場合には、MPLD設計は、単に逆アセンブラ120によって使用されるための設定および制約ファイル112と113を提供するためのみに、UPLD設計に変換されるべきではない。その代わりに、コンパイラステップ411によって提供されるアーキテクチャおよび制約ファイル411と412が、方法40の提供者割り当て部分42のネットリスト生成器121によって直接使用され、ここでは逆アセンブラ120を必要としない。しかしながら、コンパイラステップ410の出力は、任意ではあるがステップ311のモデルに入力され得、そのモデルの中で対応するUPLDの特性および応答が表現され、実質的にMPLD機能がUPLD機能に翻訳され、それは次いでステップ111でコンパイルされ得る。この場合のステップ111はUPLD設定データ112を生成し、必要な場合には、そのデータは、ステップ123で供給者にプログラムされたMPLDを作成することを委ねるに先立って、所望のMPLDをシミュレーションするためにUPLDをプログラムするために、使用することができる。再び、ユーザーがUPLDの中でこのような実証を実行することを意図する場合には、ユーザーはUPLD実証がなされることを、入力212の部分として指示するべきであることが望ましい。このような場合には、方法30(図4)に関連して上記で述べられたように、UPLDの制約が考慮される。
方法20、30および40の全てに関連して、ユーザーが1つの種類のデバイス(UPLDまたはMPLD)に対してロジックを、そのロジックが他の種類のデバイス(MPLDまたはUPLD)に変換可能であることを意図して、設計する場合には、次のことに留意しなければならない。すなわち、ソフトウェアは1つのデバイスから別のデバイスへ翻訳されることができない機能の使用を許可しないのみならず、ソフトウェアはソースおよび目標のデバイスの中の各種類のリソースの数をチェックし、許容される変換をそれらの数が一致する値に−−例えば、どのカテゴリのリソースにおいてもソースデバイスで使用される数が目標のデバイスで使用できる数を超えることがない値に−−制限することが望ましい。かくして、ソースデバイスの中の全てのリソースよりも少ないリソースを使用する設計に対して、その設計は特定の目標デバイスに変換可能であり得るが、しかし1つ以上の種類のより多いリソースを使用する、同じソースデバイスの中の異なる設計は、それと同じ特定の種類の目標デバイスに変換可能でないことがあり得る。
発明のこの局面は、例えばそれがコンパイルステップ111の統合化ステージに適用される場合には、数時間後になるかもしれない変換の試みの失敗を待つ代わりに、好適なことに設計が開始されたときに失敗の予告をユーザーに助言する。このような失敗が予告された場合には、ソフトウェアは次により大きい使用可能な目標デバイスに切り替える、または切り替えることをユーザーに助言し得る。代替案として、特に使用可能な最大の目標デバイスがすでに考慮されている場合には、ソースデバイスのなかの1種類のリソースであって、目標デバイスの中で特に少ないリソース、の中で実行される幾つかの機能に対して、ソフトウェアは、可能な場合には異なる種類のリソースの中で、幾つかの機能を実行するまたはユーザーがそれらの機能を実行することを薦める。
同様に、ソースデバイス上で特定の種類のリソースの中で実行された機能を移行するときに、目標デバイスがその種類のリソースに不足するときには、ソフトウェアは好適にもその機能を目標デバイスの同じ種類のリソースの中で実行することを試みない。その代わりに、ソフトウェアは使用可能な他の種類のリソースの中でその機能をモデル化する。このことはUPLDとMPLDとの間で移行するときだけではなく、異なるリソースを有する同じ種類のデバイスの間においても正しいことに留意すべきである。
図6は図3の方法20と同じ方法60を示し、ユーザーはUPLDのためのロジックを設計し、そのロジック設計は次いで設定ファイル112をステップ120で逆アセンブルすることによってMPLDの中での使用に対して変換され、ステップ121でネットリストを生成し、それは次いでステップ122と123でMPLD上で配置配線処理される。発明のこの局面に従って、実証のために、得られたネットリストはステップ1210で再処理され、新しいUPLD設定ファイル1120を生成する。設定ファイル1120は次いで、そのファイルによってプログラムされたUPLDが設計に従って作動することを調べるために、ステップ1121で試験されることができる。
試験するステップ1121はいくつかの形をとり得る。1つの極端な例としては、設定ファイル1120が直接UPLDをプログラムするために使用され、その機能が適合することが求められる設計の仕様と比較されることができる。他の極端な例としては、設定ファイル1120がオリジナルの設定ファイル112と単純に比較されることができる。ファイルが一致する場合には、調査はそこで終了する。しかしながらファイル112および1120が一致しない場合にも、それらはなお同じ機能を示すデバイスをもたらす可能性がある。それ故にさらなる試験が必要であり、それはシミュレーションのような方法、または実際にデバイスをプログラムすることによって、実施されることができる。
再処理のステップ1121はステップ121の単純な鏡像イメージであってはならない。さもなければ、ファイル1120は常にファイル112と同一となり、結果として得られるMPLDの中の誤り(error)が検出されなくなる。むしろステップ1121は、ステップ121のネットリストを設定ファイル1120に戻す変換を行うように、独立に作成されることが望ましい。
上記で検討したように、モデル210と311はUPLDとMPLDとの間のまたはその逆の変換をモデル化するために(そして同様のモデルが異なるUPLDの間または異なるMPLDの間で変換するために使用され得る)提供される。この発明の好適な実施形態に従って、モデル210と311(および任意の同様のモデル)はデバイスのペアのマッピングに基づき得る。これらのマッピングは、その間でロジック設計をマッピングすることの必要性が予見される、デバイスの選択されたペアに対して、先行してセットアップされる。かくして、詳細には、これらのマッピングは各MPLDおよびその対応するまたは互換性を有するUPLDに対して生成され得る。一部のこのような例においては、マッピングは1対1の対応を有し、それはAltera CorporationのAPEXTMおよびHardCopyTMAPEXTM製品などの場合である。Altera CorporationのSTRATIXTMおよびHardCopyTMSTRATIXTM製品などの他の種類のデバイスにおいては、リソースの数および配置が対応するあるいは互換性を有するデバイスの間で異なり、マッピングはより複雑になり得るが、しかしI/Oブロックおよびロジックブロックの間の関係を含む、最も近い近隣関係を維持するように好適に設計されるときには、その結果、1つのデバイスから別のデバイスへ移行された設計は所望のとおり作動する。デバイスのアスペクト比が異なる場合においても、このようになることが好ましい。例えば、100×100のロジックブロックを有するUPLDが500×20のロジックブロックを有するMPLDにマッピングされる場合、最も近い近隣関係、および性能を維持するためにロジックとI/Oとの間の関係を維持することが望ましい。
例えば、I/Oブロックおよび特定の他のロジックブロックと近づけるために、ロジックブロックの最右側の列に置かれたUPLDロジックブロックを考える。目標のMPLDの最右側の列には、わずか5分の1の数のロジックブロックしかないが、発明に従って、ソースデバイスの最右側の列のロジックデバイスは好適なことに、それが目標デバイスの最右側の列に入ることができない場合にも、少なくとも目標デバイスの最右側から5番目までの列の1つに入るように、制約が付けられる。ソースデバイスにおいて最初のロジックブロックの近くに意図的に置かれた他のロジックブロックもまた、好適なことに、目標デバイスにおいて最初のロジックブロックの近くに置かれる。これを実現する1つの好適な方法は、2つの配置の中で個別の要素(例えば、ロジックブロック)の間の1対1の対応を維持することである。
より小さな例が図7に示されており、これは5×4のUPLD70と7×3のMPLD71との間の上述したような差異およびマッピングを示し、マッピングされた入力/出力ブロック、マッピングされたロジックブロック、およびマッピングされたメモリには類似した番号が付けられている。デバイス70において、例えば第1の列にあって入力/出力ブロック132に近い位置にあった一部のロジックブロックは、デバイス71において、例えば第2の列にあり入力/出力ブロック132から遠くなる。少なくともデバイス70がUPLDでありデバイス71がMPLDである場合には、MPLDの中では信号は単にメタライゼーション上を移動し、それ故にUPLDの相互接続上の信号よりも速く移動するために、これらの配置の相違はタイミングに重大な影響を与えない。
マッピングプロセスを自動化することは可能である。しかしながら、マッピングは手動によって実施されることが可能であり、各マッピングはデバイスのペアに基づいているために、またそのペアの中のデバイスの間の全ての変換をマッピングするために使用されるために、それは一度だけ生成される必要があり、そのことが手動マッピングの採用を適切とする。マッピングが実施されたならば、そのペアの中のデバイスの間の全ての変換は、単にマッピングに従うことのみによって実施されることができる。発明のこの局面はまた、1つのUPLDからMPLDへの変換を異なるUPLDからMPLDへの変換(例えば、「目標の」MPLDが異なる場合)にマッピングするために、または1つのUPLDから別のUPLDにマッピングするためにも、そこでは代替の目標デバイスが異なった寸法、リソースの配置および数を有する場合でもマッピングがそれ以前にすでに準備されている限りにおいては、使用することができる。発明のこの局面は、最初の設計がUPLDに対するものである場合には、特に有用であり、なぜならば、それは新しい目標の設計に対する出発点として、コンパイルされたUPLD設計に好適に依存するからである。これは数時間を要し得る新しい設計の配置配線処理のステップの実行を不要とする。コンパイルされたUPLD設計を使用することによって、比較的短い時間で代替のマッピングがユーザーに提示されることができる。
同じ方針に沿って、発明の別の局面に従って、PLDおよび対応するMPLDの所与のファミリーにおいて、MPLDは様々な種類のロジックブロックおよびメモリ要素などのある種類のリソースを異なる数だけ所有し得ることが、認められている。発明のこの局面(図示されていない)に従って、ユーザーのソフトウェアがソースおよび目標デバイスの中の各種類のリソースの必要数をチェックし、−−例えばどのカテゴリのリソースにおいても、ソースデバイスで使用される数が目標デバイスで使用できる数を越えることがない値に、これらの数が一致する範囲内に許容される変換の数を制限することが望ましい。このように、ソースデバイスの中のすべてのリソースよりも少ないリソースを使用する設計に対して、その設計は特定の目標デバイスに変換可能であり得るが、しかし1つ以上の種類のより多いリソースを使用する同じソースデバイスの異なる設計は、その同じ特定の種類の目標デバイスに変換可能であるとは言えない。
発明のこの局面は、例えばそれがコンパイルステップ111の統合化ステージに適用される場合には、数時間後になるかもしれない変換の試みの失敗を待つ代わりに、好適なことに設計が開始されたときに失敗の予告をユーザーに助言する。このような失敗が予告された場合には、ソフトウェアは次により大きい使用可能な目標デバイスに切り替えるか、または切り替えることをユーザーに助言する。代替案として、特に使用可能な最大の目標デバイスがすでに考慮されている場合には、ソースデバイスのなかの1種類のリソースであって、目標デバイスの中で特に少ないリソース、の中で実行される幾つかの機能に対して、ソフトウェアは、可能な場合には異なる種類のリソースの中で、幾つかの機能を実行するまたはユーザーがそれらの機能を実行することを薦める。同様に、ソースデバイス上で特定の種類のリソースの中で実行された機能を移行するときに、目標デバイスがその種類のリソースに不足するときには、ソフトウェアはその機能を目標デバイスの同じ種類のリソースの中で実行することを試みない。その代わりに、ソフトウェアは使用可能な他の種類のリソースの中でその機能をモデル化する。このことはPLDとMPLDとの間で移行するときだけではなく、異なるリソースを有する同じ種類のデバイスの間においても正しいことに留意すべきである。
本発明に従ってプログラムされたデバイスは、多くの種類の電子デバイスにおいて使用され得る。例えばPLD908(MPLDまたはUPLD)としての、1つの可能な用途は、図8に示されたデータ処理システム900の中に見られる。データ処理システム900は1つ以上の次のような構成部品、すなわちプロセッサ901、メモリ902、I/Oサーキットリ903、および周辺デバイス904を含み得る。これらの構成部品はシステムバス905によって一緒に接続され、エンドユーザーシステム907に含まれる回路基板906上に配置される。
システム900は、コンピュータネットワーク接続、データネットワーク接続、計装、ビデオ処理、デジタル信号処理、あるいはプログラム可能なまたは再プログラム可能なロジックの使用による利益が期待される他のすべての用途、などの広範囲の用途において使用され得る。PLD908は様々な異なるロジック機能を実行するために使用することができる。例えば、PLD908はプロセッサ901と協調して作動するプロセッサまたは制御器として設定され得る。PLD908はまた、システム900の中の分割共有されるリソースへの仲裁(arbitrating)を要するアクセスに対するアービターとしても使用され得る。さらに別の実施例において、PLD908はプロセッサ901とシステム900の1つの他の構成部品との間のインターフェイスとして設定され得る。システム900は単なる例示にすぎないことに留意すべきである。
上記のとおり、PLDおよびMPLDを実用するために、またそれと共に本発明が使用されるために、様々な技術が使用されることができる。
これまでに述べられてきたことは本発明の原理の単なる例示であって、本発明の範囲および精神から逸脱することなく同業者によって様々な修正が可能であること、および本発明が添付の請求項のみによって制限されることが、理解される。
Claims (6)
- 第1のプログラム可能なロジックデバイスをプログラムする方法であって、該方法は、入力手段とプロセッサとメモリ手段とを備えているコンピュータによって実行され、該方法は、
該メモリ手段が、複数のプログラム可能なロジックデバイスのそれぞれ1つのプログラム可能なロジックデバイスの、該複数のプログラム可能なロジックデバイスのそれぞれ他のプログラム可能なロジックデバイスへの構造の複数のマッピングのライブラリを維持することと、
該入力手段が、少なくとも一つの第2のプログラム可能なロジックデバイスに対するプログラミングを受信することと、
該プログラミングが、少なくとも部分的に、少なくとも一つの第2のプログラム可能なロジックデバイスに対するプログラミングの該第1のプログラム可能なロジックデバイスへの構造的なマッピングに基づいていることであって、該基づいていることは、該プロセッサが、該複数のマッピングのライブラリから、該第1のプログラム可能なロジックデバイスへの該第2のプログラム可能なロジックデバイスの構造的なマッピングを選択することと、
該プロセッサが、該第2のプログラム可能なロジックデバイスからマッピングされた該プログラミングを用いて、該第1のプログラム可能なロジックデバイスのプログラムされていない第1のプログラム可能なロジックデバイスから、該第1のプログラム可能なロジックデバイスのプログラムされた第1のプログラム可能なロジックデバイスを作成することと
を包含する、方法。 - 前記第1のプログラム可能なロジックデバイスはマスクプログラム可能なロジックデバイスであり、
前記第2のプログラム可能なロジックデバイスはユーザープログラム可能なロジックデバイスである、請求項1に記載の方法。 - 前記第1のプログラム可能なロジックデバイスはユーザープログラム可能なロジックデバイスであり、
前記第2のプログラム可能なロジックデバイスはマスクプログラム可能なロジックデバイスである、請求項1に記載の方法。 - 前記第1のプログラム可能なロジックデバイスおよび前記第2のプログラム可能なロジックデバイスは共に、ユーザープログラム可能である、請求項1に記載の方法。
- 前記第1のプログラム可能なロジックデバイスおよび前記第2のプログラム可能なロジックデバイスは共に、マスクプログラム可能である、請求項1に記載の方法。
- 前記プロセッサが、前記複数のマッピングのライブラリをアセンブルすることをさらに包含する、請求項1に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US48091703P | 2003-06-23 | 2003-06-23 | |
US48352503P | 2003-06-26 | 2003-06-26 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006517645A Division JP2007524911A (ja) | 2003-06-23 | 2004-06-23 | マスクプログラム可能なロジックデバイスをプログラムする方法およびその方法によってプログラムされたデバイス |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010102716A true JP2010102716A (ja) | 2010-05-06 |
Family
ID=33555565
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006517645A Withdrawn JP2007524911A (ja) | 2003-06-23 | 2004-06-23 | マスクプログラム可能なロジックデバイスをプログラムする方法およびその方法によってプログラムされたデバイス |
JP2009256592A Withdrawn JP2010102716A (ja) | 2003-06-23 | 2009-11-09 | マスクプログラム可能なロジックデバイスをプログラムする方法およびその方法によってプログラムされたデバイス |
JP2010065248A Expired - Fee Related JP4896242B2 (ja) | 2003-06-23 | 2010-03-19 | マスクプログラム可能なロジックデバイスをプログラムする方法およびその方法によってプログラムされたデバイス |
JP2010065249A Expired - Fee Related JP4896243B2 (ja) | 2003-06-23 | 2010-03-19 | マスクプログラム可能なロジックデバイスをプログラムする方法およびその方法によってプログラムされたデバイス |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006517645A Withdrawn JP2007524911A (ja) | 2003-06-23 | 2004-06-23 | マスクプログラム可能なロジックデバイスをプログラムする方法およびその方法によってプログラムされたデバイス |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010065248A Expired - Fee Related JP4896242B2 (ja) | 2003-06-23 | 2010-03-19 | マスクプログラム可能なロジックデバイスをプログラムする方法およびその方法によってプログラムされたデバイス |
JP2010065249A Expired - Fee Related JP4896243B2 (ja) | 2003-06-23 | 2010-03-19 | マスクプログラム可能なロジックデバイスをプログラムする方法およびその方法によってプログラムされたデバイス |
Country Status (3)
Country | Link |
---|---|
US (2) | US7290237B2 (ja) |
JP (4) | JP2007524911A (ja) |
WO (1) | WO2005001724A2 (ja) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7112994B2 (en) | 2002-07-08 | 2006-09-26 | Viciciv Technology | Three dimensional integrated circuits |
US6992503B2 (en) | 2002-07-08 | 2006-01-31 | Viciciv Technology | Programmable devices with convertibility to customizable devices |
US8643162B2 (en) | 2007-11-19 | 2014-02-04 | Raminda Udaya Madurawe | Pads and pin-outs in three dimensional integrated circuits |
US7181703B1 (en) * | 2003-07-22 | 2007-02-20 | Altera Corporation | Techniques for automated sweeping of parameters in computer-aided design to achieve optimum performance and resource usage |
US7030651B2 (en) | 2003-12-04 | 2006-04-18 | Viciciv Technology | Programmable structured arrays |
US7100142B2 (en) * | 2004-04-07 | 2006-08-29 | Synopsys, Inc. | Method and apparatus for creating a mask-programmable architecture from standard cells |
US7404156B2 (en) * | 2004-06-03 | 2008-07-22 | Lsi Corporation | Language and templates for use in the design of semiconductor products |
US7398492B2 (en) * | 2004-06-03 | 2008-07-08 | Lsi Corporation | Rules and directives for validating correct data used in the design of semiconductor products |
US7243329B2 (en) | 2004-07-02 | 2007-07-10 | Altera Corporation | Application-specific integrated circuit equivalents of programmable logic and associated methods |
US7558718B2 (en) * | 2004-09-28 | 2009-07-07 | Broadcom Corporation | Method and system for design verification of video processing systems with unbalanced data flow |
US7360197B1 (en) | 2005-02-03 | 2008-04-15 | Altera Corporation | Methods for producing equivalent logic designs for FPGAs and structured ASIC devices |
US7406668B1 (en) | 2005-03-03 | 2008-07-29 | Altera Corporation | Methods for producing mappings of logic suitable for FPGA and structured ASIC implementations |
US7275232B2 (en) * | 2005-04-01 | 2007-09-25 | Altera Corporation | Methods for producing equivalent field-programmable gate arrays and structured application specific integrated circuits |
US7246339B2 (en) * | 2005-04-08 | 2007-07-17 | Altera Corporation | Methods for creating and expanding libraries of structured ASIC logic and other functions |
US7363596B1 (en) | 2005-04-27 | 2008-04-22 | Altera Corporation | Methods for storing and naming static library cells for lookup by logic synthesis and the like |
US7243315B2 (en) * | 2005-05-31 | 2007-07-10 | Altera Corporation | Methods for producing structured application-specific integrated circuits that are equivalent to field-programmable gate arrays |
US7370295B1 (en) | 2005-07-21 | 2008-05-06 | Altera Corporation | Directed design space exploration |
US7386819B1 (en) | 2005-07-28 | 2008-06-10 | Altera Corporation | Methods of verifying functional equivalence between FPGA and structured ASIC logic cells |
US7444610B1 (en) * | 2005-08-03 | 2008-10-28 | Xilinx, Inc. | Visualizing hardware cost in high level modeling systems |
US7373630B1 (en) | 2005-12-12 | 2008-05-13 | Altera Corporation | Methods for improved structured ASIC design |
US20090079467A1 (en) * | 2007-09-26 | 2009-03-26 | Sandven Magne V | Method and apparatus for upgrading fpga/cpld flash devices |
US7786757B2 (en) * | 2008-03-21 | 2010-08-31 | Agate Logic, Inc. | Integrated circuits with hybrid planer hierarchical architecture and methods for interconnecting their resources |
US8296705B2 (en) * | 2009-08-28 | 2012-10-23 | Taiwan Semiconductor Manufacturing Co., Ltd. | Code tiling scheme for deep-submicron ROM compilers |
US9465903B1 (en) * | 2014-11-18 | 2016-10-11 | Xilinx, Inc. | Programmable IC design creation using circuit board data |
US11195100B2 (en) * | 2016-08-17 | 2021-12-07 | International Business Machines Corporation | Determining applications based on interactions of different electronic devices |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5068603A (en) * | 1987-10-07 | 1991-11-26 | Xilinx, Inc. | Structure and method for producing mask-programmed integrated circuits which are pin compatible substitutes for memory-configured logic arrays |
DE59010515D1 (de) * | 1989-03-17 | 1996-10-31 | Sumitomo Chemical Co | Neue Polyarylenether |
US5212652A (en) | 1989-08-15 | 1993-05-18 | Advanced Micro Devices, Inc. | Programmable gate array with improved interconnect structure |
US5717928A (en) * | 1990-11-07 | 1998-02-10 | Matra Hachette Sa | System and a method for obtaining a mask programmable device using a logic description and a field programmable device implementing the logic description |
US5550839A (en) * | 1993-03-12 | 1996-08-27 | Xilinx, Inc. | Mask-programmed integrated circuits having timing and logic compatibility to user-configured logic arrays |
TW396312B (en) * | 1993-12-30 | 2000-07-01 | At & T Corp | Method and apparatus for converting field-programmable gate array implementations into mask-programmable logic cell implementations |
US5815405A (en) * | 1996-03-12 | 1998-09-29 | Xilinx, Inc. | Method and apparatus for converting a programmable logic device representation of a circuit into a second representation of the circuit |
US5943488A (en) * | 1996-06-26 | 1999-08-24 | Cypress Semiconductor Corp. | Method and apparatus to generate mask programmable device |
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 |
US5946478A (en) * | 1997-05-16 | 1999-08-31 | Xilinx, Inc. | Method for generating a secure macro element of a design for a programmable IC |
US6492833B1 (en) * | 1998-04-30 | 2002-12-10 | Altera Corporation | Configurable memory design for masked programmable logic |
US6311316B1 (en) * | 1998-12-14 | 2001-10-30 | Clear Logic, Inc. | Designing integrated circuit gate arrays using programmable logic device bitstreams |
US6177844B1 (en) | 1999-01-08 | 2001-01-23 | Altera Corporation | Phase-locked loop or delay-locked loop circuitry for programmable logic devices |
GB2351824B (en) | 1999-07-02 | 2004-03-31 | Altera Corp | Embedded memory blocks for programmable logic |
US6625787B1 (en) * | 1999-08-13 | 2003-09-23 | Xilinx, Inc. | Method and apparatus for timing management in a converted design |
US6769109B2 (en) * | 2000-02-25 | 2004-07-27 | Lightspeed Semiconductor Corporation | Programmable logic array embedded in mask-programmed ASIC |
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 |
US6515509B1 (en) | 2000-07-13 | 2003-02-04 | Xilinx, Inc. | Programmable logic device structures in standard cell devices |
JP2002312411A (ja) * | 2001-04-10 | 2002-10-25 | Ricoh Co Ltd | 論理合成装置および論理合成方法 |
US6941538B2 (en) * | 2002-02-22 | 2005-09-06 | Xilinx, Inc. | Method and system for integrating cores in FPGA-based system-on-chip (SoC) |
US6938236B1 (en) * | 2002-03-29 | 2005-08-30 | Altera Corporation | Method of creating a mask-programmed logic device from a pre-existing circuit design |
US6988258B2 (en) * | 2002-12-09 | 2006-01-17 | Altera Corporation | Mask-programmable logic device with building block architecture |
US7210115B1 (en) * | 2004-07-02 | 2007-04-24 | Altera Corporation | Methods for optimizing programmable logic device performance by reducing congestion |
-
2004
- 2004-06-23 WO PCT/US2004/020362 patent/WO2005001724A2/en active Application Filing
- 2004-06-23 US US10/875,256 patent/US7290237B2/en not_active Expired - Fee Related
- 2004-06-23 JP JP2006517645A patent/JP2007524911A/ja not_active Withdrawn
-
2007
- 2007-09-19 US US11/858,060 patent/US8001509B2/en not_active Expired - Fee Related
-
2009
- 2009-11-09 JP JP2009256592A patent/JP2010102716A/ja not_active Withdrawn
-
2010
- 2010-03-19 JP JP2010065248A patent/JP4896242B2/ja not_active Expired - Fee Related
- 2010-03-19 JP JP2010065249A patent/JP4896243B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
WO2005001724A2 (en) | 2005-01-06 |
JP2010182327A (ja) | 2010-08-19 |
US20040261052A1 (en) | 2004-12-23 |
JP2010182326A (ja) | 2010-08-19 |
WO2005001724A3 (en) | 2005-11-03 |
US20080005716A1 (en) | 2008-01-03 |
JP4896243B2 (ja) | 2012-03-14 |
US7290237B2 (en) | 2007-10-30 |
JP4896242B2 (ja) | 2012-03-14 |
JP2007524911A (ja) | 2007-08-30 |
US8001509B2 (en) | 2011-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4896243B2 (ja) | マスクプログラム可能なロジックデバイスをプログラムする方法およびその方法によってプログラムされたデバイス | |
US5815405A (en) | Method and apparatus for converting a programmable logic device representation of a circuit into a second representation of the circuit | |
TW527549B (en) | Method for implementing a physical design for a dynamically reconfigurable logic circuit | |
JP4989803B2 (ja) | 等価なフィールドプログラマブルゲートアレイとストラクチャード特定用途向け集積回路の製造方法 | |
Bergamaschi et al. | Designing systems-on-chip using cores | |
Gschwind et al. | FPGA prototyping of a RISC processor core for embedded applications | |
Mesquita et al. | Remote and Partial Reconfiguration of FPGAs: tools and trends | |
JPH10116302A (ja) | 集積回路の設計方法及びそれによって設計された集積回路 | |
Zhang et al. | A review of high-level synthesis for dynamically reconfigurable FPGAs | |
US20060236292A1 (en) | Base platforms with combined ASIC and FPGA features and process of using the same | |
WO2006046711A1 (ja) | 再構成可能な論理回路を有するデータ処理装置 | |
US7249340B2 (en) | Adaptable circuit blocks for use in multi-block chip design | |
Gajski et al. | System design methodologies: aiming at the 100 h design cycle | |
Hübner et al. | Exploiting dynamic and partial reconfiguration for FPGAs: toolflow, architecture and system integration | |
US8046206B1 (en) | Method and system using subgraph isomorphism to configure hardware resources | |
Quadri | MARTE based model driven design methodology for targeting dynamically reconfigurable FPGA based SoCs | |
US7360177B1 (en) | Method and arrangement providing for implementation granularity using implementation sets | |
JP3476688B2 (ja) | ネットリスト生成方法及びネットリスト生成装置 | |
Moraes et al. | Development of a tool-set for remote and partial reconfiguration of FPGAs | |
Parab et al. | Genesis of PLD’s, Market Players, and Tools | |
Hartnett | Integration of Digital Signal Processing Block in SymbiFlow FPGA Toolchain for Artix-7 Devices | |
CN100514340C (zh) | 给掩模可编程逻辑器件编程的方法及如此编程的器件 | |
CN115796105A (zh) | 用于添加另外的电路组件的方法、装置和存储介质 | |
Bhardwaj | Framework for hardware agility on FPGAs | |
JP4208919B2 (ja) | 活性化コードの生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A072 | Dismissal of procedure [no reply to invitation to correct request for examination] |
Free format text: JAPANESE INTERMEDIATE CODE: A073 Effective date: 20110425 |
|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20110510 |