JP2012185818A - 部分再構成モジュールを設置およびルーティングするための方法および装置 - Google Patents

部分再構成モジュールを設置およびルーティングするための方法および装置 Download PDF

Info

Publication number
JP2012185818A
JP2012185818A JP2012037429A JP2012037429A JP2012185818A JP 2012185818 A JP2012185818 A JP 2012185818A JP 2012037429 A JP2012037429 A JP 2012037429A JP 2012037429 A JP2012037429 A JP 2012037429A JP 2012185818 A JP2012185818 A JP 2012185818A
Authority
JP
Japan
Prior art keywords
module
routing
static logic
modules
target device
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.)
Granted
Application number
JP2012037429A
Other languages
English (en)
Other versions
JP5937845B2 (ja
Inventor
Samuel Goldman David
サミュエル ゴールドマン デイビッド
Bogart Mark
ボーガルト マーク
Louis Herrmann Alan
ルイス ハーマン アラン
Vaughn Betz
ベッツ ボーン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Altera Corp
Original Assignee
Altera Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Altera Corp filed Critical Altera Corp
Publication of JP2012185818A publication Critical patent/JP2012185818A/ja
Application granted granted Critical
Publication of JP5937845B2 publication Critical patent/JP5937845B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing
    • G06F30/3953Routing detailed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/347Physical level, e.g. placement or routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2117/00Details relating to the type or aim of the circuit design
    • G06F2117/06Spare resources, e.g. for permanent fault suppression

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Evolutionary Computation (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Architecture (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Logic Circuits (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

【課題】標的デバイス上に部分再構成(PR)モジュールを設置し、かつルーティングするための方法および装置を提供すること。
【解決手段】標的デバイス上にシステムを設計するための方法であって、方法は、標的デバイス上のリソースをシステムの静的論理モジュールと部分再構成可能な(PR)モジュールとに割り当てることと、割り当てられたリソースを用いて、標的デバイス上のPRモジュールのうちの1つのインスタンスを並列に設置し、ルーティングすることのうちの1つを行うこととを含む。
【選択図】図1

Description

(分野)
本発明の実施形態は、標的デバイス上にシステムを設計するためのツールに関する。より具体的には、本発明の実施形態は、標的デバイス上に部分再構成(PR)モジュールを設置し、かつルーティングするための方法および装置に関する。
(背景)
標的デバイス(例えば、フィールドプログラマブルゲートアレイ(FPGA)、ストラクチャード特定用途向け集積回路(ASIC)、およびASIC)は、100万個のゲートおよびメガビットの内蔵メモリを含み得る大きなシステムを実装するために使用される。大きなシステムの複雑さは、しばしば、物理的標的デバイス上のシステムに対して設計を生成し、そして最適化するための自動電子設計(EDA)の使用を必要とする。コンピュータ支援設計(CAD)においてEDAツールによって実装される手順の中で、コンパイルフローは、システムのためのハードウェア記述言語(HDL)の生成、並びに標的デバイス上のシステムの統合、設置、およびルーティングである。
部分再構成(PR)は、コンパイルの間に、プログラマブル標的デバイス上のPRモジュールに対して複数のインスタンスを設計することを含む。PRモジュールの各インスタンスは、PRモジュールに対して実装され得る異なる回路記述を表す。選択されたPRモジュールは、第1のインスタンスから第2のインスタンスへ再構成され得、その一方で、プログラマブル標的デバイス上の他のPRモジュールおよび静的モジュールは、アクティブな動作のままである。
PRは、プログラマブル標的デバイス全体を表す典型的なプログラミングファイルとは異なり、システムの一部分が、標的デバイスのその部分のみを表すEDAツールによって生成されたプログラミングファイルを用いて再構成されることを可能にする。PRはまた、システムが、再プログラミングのためにプログラマブル標的デバイスの電力を下げる必要性なしに、再構成されることを可能にする。PRは、デバイスの影響しない部分に対してとられるダウン時間を必要とすることなしに、再プログラミングを必要とするデバイス上の特徴アップグレードまたは変更、バグ修正、または任意の他の動作のために使用され得る。
(要約)
標的デバイス上の部分再構成(PR)モジュールの設置およびルーティングのための方法および装置が開示される。本発明の第1の実施形態に従って、標的デバイス上のリソースは、システムの特定のPRモジュールによって使用されるべきである候補として割り当てられる。この実施形態の局面に従って、PRモジュールのインスタンスが設置およびルーティングされる前に、静的論理モジュールが、設置およびルーティングされ、静的論理モジュールによって使用されていないリソースは、PRモジュールによって使用されるべきである候補として割り当てられる。PRモジュールのインスタンスは、割り当てられたリソースを用いて、標的デバイス上に並列に設置およびルーティングされる。本発明の実施形態に従って、標的デバイス上にPRモジュールを並列に設置し、かつルーティングすることは、時間において同時にPRモジュールを設置およびルーティングすることを含み得る。
本発明の第2の実施形態に従って、最初の設置およびルーティングは、モジュールによって使用されるべきである候補のセットを発見するために、静的論理モジュールおよびPRモジュール上で行われる。最初の設置およびルーティングは、禁止を課すことなしに、リソースが使用されている標的デバイスに、標的デバイス上のリソースとモジュールを自由に適合させる。2以上のモジュールと共に用いるように選択された、競合するリソースが識別され、リソースに対して競合する静的論理モジュールおよびPRモジュールに対して仲裁される。最初の一致からの使用されていないリソースは、競合を有する静的論理モジュールおよびPRモジュールに割り当てられる。後の設置およびルーティング(再一致させること)は、仲裁され、かつ割り当てられたリソースを用いて、競合を有する静的論理モジュールおよびPRモジュール上に行われる。
本発明の第3の実施形態に従って、最初の一致は、静的論理モジュールおよびPRモジュール上に行われる。最初の一致は、リソースが使用されている禁止部分を強要することなしに、標的デバイス上のリソースを用いて、静的論理モジュールおよびPRモジュールを自由に設置し、かつルーティングする。2以上のモジュールによって使用することによって、競合するリソースが識別される。1つ以上の後の設置およびルーティング(再一致させること)は、このような競合が存在しないまでに、競合を有する静的論理モジュールおよびPRモジュール上に行われる。
本発明は、例えば以下の項目を提供する。
(項目1)
標的デバイス上にシステムを設計するための方法であって、該方法は、
該標的デバイス上のリソースを該システムの静的論理モジュールと部分再構成可能(PR)モジュールとに割り当てることと、
該割り当てられたリソースと並列に、該標的デバイス上の該PRモジュールのうちの1つのインスタンスを設置およびルーティングすることのうちの1つを行うことと
を含む、方法。
(項目2)
上記PRモジュールのうちの上記1つの各インスタンスは、該PRモジュールの異なる回路記述を含み、該異なる回路記述の各々は、同一の静的論理とインターフェースをとる、上記項目のいずれかに記載の方法。
(項目3)
上記割り当てることは、ルーティングリソースをフロアプラン領域から、上記静的論理モジュールおよびPRモジュールの各々に割り当てることを含む、上記項目のいずれかに記載の方法。
(項目4)
上記ルーティングすることは、PRモジュールの第1のインスタンスをルーティングするために第1の処理リソースを使用することと、該PRモジュールの第2のインスタンスをルーティングするために第2の処理リソースを使用することと並列に行うことを含む、上記項目のいずれかに記載の方法。
(項目5)
上記PRモジュールをルーティングする前に、割り当てられた続くルーティングリソースを用いて、上記静的論理モジュールをルーティングすることをさらに含む、上記項目のいずれかに記載の方法。
(項目6)
上記静的論理モジュールの使用されていないルーティングリソースを上記PRモジュールに割り当てることをさらに含む、上記項目のいずれかに記載の方法。
(項目7)
使用されていないルーティングリソースを割り当てることは、
上記PRモジュールのための上記標的デバイス上のフロアプラン領域を拡張することと、ルーティングリソースを該PRモジュールの対応するフロアプラン領域から、該PRモジュールの各々に割り当てることとを含む、上記項目のいずれかに記載の方法。
(項目8)
上記拡張することは、各フロアプラン領域の水平境界エッジおよび該フロアプラン領域の各々の垂直境界エッジが、上記標的デバイスの境界または別のPRモジュールに対応する境界エッジに達するまで、該水平境界エッジを垂直方向に動かすことと、該垂直境界エッジを水平方向に動かすこととを含む、上記項目のいずれかに記載の方法。
(項目9)
上記静的論理モジュールおよびPRモジュールは、回路のハードウェア記述言語を含む、上記項目のいずれかに記載の方法。
(項目10)
標的デバイス上にシステムを設計する方法であって、該方法は、
標的デバイス上に静的論理モジュールおよび部分再構成可能な(PR)モジュールをルーティングすることと、
ルーティングリソースに対して競合する静的論理モジュールおよびPRモジュールに対して、競合する該ルーティングリソースを該ルーティングから仲裁することと、
使用されていないルーティングリソースを、該ルーティングから、競合を有する静的論理モジュールおよびPRモジュールに割り当てることと、
仲裁され、かつ割り当てられた該ルーティングリソースを用いて、競合を有する該静的論理モジュールおよびPRモジュールを再ルーティングすることと
を含む、方法。
(項目11)
標的デバイス上にPRモジュールをルーティングすることは、PRモジュールのインスタンスを直列にルーティングすることを含む、上記項目のいずれかに記載の方法。
(項目12)
上記標的デバイス上にPRモジュールをルーティングすることは、PRモジュールの第1のインスタンスを該PRモジュールの第2のインスタンスと並列にルーティングすることを含む、上記項目のいずれかに記載の方法。
(項目13)
上記標的デバイス上に上記PRモジュールをルーティングすることは、他のルーティングリソースを選択することよりも、該PRモジュールの第2のインスタンスによって使用されるPRモジュールの第1のインスタンスのためのルーティングリソースを優先的に選択することを含む、上記項目のいずれかに記載の方法。
(項目14)
上記静的論理モジュールおよび上記PRモジュールをルーティングすることは、他の静的モジュールまたはPRモジュールによって使用されるルーティングリソースを選択することよりも、該他の静的論理モジュールおよびPRモジュールによって使用されていない、該静的論理モジュールおよび該PRモジュールのためのルーティングリソースを優先的に選択することを含む、上記項目のいずれかに記載の方法。
(項目15)
競合するルーティングリソースを仲裁することは、タイミング制約またはルーティング制約のうちの1つに応じて、競合状態のルーティングリソースをモジュールに割り当てることを含む、上記項目のいずれかに記載の方法。
(項目16)
上記PRモジュールの各インスタンスは、該PRモジュールの異なる回路記述を含み、該異なる回路記述の各々は、同一の静的論理部分とインターフェースをとる、上記項目のいずれかに記載の方法。
(項目17)
非一時的なコンピュータ読み取り可能な媒体であって、該非一時的なコンピュータ読み取り可能な媒体は、一連の命令が格納されており、該一連の命令は、
標的デバイス上に静的論理モジュールをルーティングすることと、
該標的デバイス上の部分再構成可能(PR)モジュールのインスタンスを並列にルーティングすることと、
該静的論理モジュールおよび該PRモジュールが不当にルーティングされていることを決定するのに応じて、該静的論理モジュールおよび該PRモジュールを再ルーティングすることと
を含む方法をコンピュータに方法を実行させる、非一時的なコンピュータ読み取り可能な媒体。
(項目18)
上記標的デバイス上に上記PRモジュールをルーティングすることは、他のルーティングリソースを選択することよりも、該PRモジュールの第2のインスタンスによって使用される該PRモジュールの第1のインスタンスのためのルーティングリソースを選択することを含む、上記項目のいずれかに記載の非一時的なコンピュータ読み取り可能な媒体。
(項目19)
上記静的論理モジュールおよび上記PRモジュールをルーティングすることは、他の静的モジュールまたはPRモジュールによって使用されるルーティングリソースを選択することよりも、該他の静的論理モジュールおよびPRモジュールによって使用されていない、該静的論理モジュールおよび該PRモジュールのためのルーティングリソースを選択することを含む、上記項目のいずれかに記載の非一時的なコンピュータ読み取り可能な媒体。
(項目20)
上記PRモジュールの上記インスタンスの各々は、該PRモジュールの異なる回路記述を含み、該異なる回路記述の各々は、同一の静的論理部分とインターフェースをとる、上記項目のいずれかに記載の非一時的なコンピュータ読み取り可能な媒体。
(項目21)
上記再ルーティングすることは、上記静的論理モジュールを並列にルーティングするための第1の処理リソースを使用することと、上記PRモジュールのインスタンスをルーティングするための第2の処理リソースを使用することとを含む、上記項目のいずれかに記載の非一時的なコンピュータ読み取り可能な媒体。
(項目22)
上記静的論理モジュールおよび上記PRモジュールが不当に設置されていることを決定するのに応じて、該静的論理モジュールおよび該PRモジュールを並列に再設置することを含む、上記項目のいずれかに記載の非一時的なコンピュータ読み取り可能な媒体。
(項目23)
上記標的デバイス上にPRモジュールを設置する前に、静的論理モジュールを設置することをさらに含む、上記項目のいずれかに記載の方法。
(項目24)
上記PRモジュールが、並列に設置される、上記項目のいずれかに記載の方法。
(項目25)
標的デバイス上に静的論理モジュールを設置することと、
該標的デバイス上にPRモジュールのインスタンスを並列に設置することと、
設置における不当性を決定するのに応じて、該静的論理モジュールおよび該PRモジュールを並列に設置することと
をさらに含む、上記項目のいずれかに記載の非一時的なコンピュータ読み取り可能な媒体。
(項目1a)
標的デバイス上にシステムを設計するための方法であって、該方法は、
該標的デバイス上のリソースを該システムの静的論理モジュールと部分再構成可能な(PR)モジュールとに割り当てることと、
該割り当てられたリソースを用いて、該標的デバイス上の該PRモジュールのうちの1つのインスタンスを並列にルーティングすることと
を含む、方法。
(項目10a)
上記割り当てられたリソースを用いて、上記標的デバイス上に上記PRモジュールのうちの1つのインスタンスを並列に設置することをさらに含む、上記項目のいずれかに記載の方法。
(項目18a)
非一時的なコンピュータ読み取り可能な媒体であって、該非一時的なコンピュータ読み取り可能な媒体は、コンピュータに方法を実行させるために、該非一時的なコンピュータ読み取り可能な媒体に格納された一連の命令を含み、該方法は、
標的デバイス上の静的論理モジュールをルーティングすることと、
該標的デバイス上のPRモジュールのインスタンスを並列にルーティングすることと、
該静的論理モジュールおよび該PRモジュールが不当にルートされていることを決定するのに応じて、該静的論理モジュールおよび該PRモジュールを再ルーティングすることと
を含む、非一時的なコンピュータ読み取り可能な媒体。
(摘要)
標的デバイス上にシステムを設計するための方法は、標的デバイス上のリソースをシステムの静的論理モジュールおよび部分再構成可能な(PR)モジュールに割り当てることを含む。PRモジュールのうちの1つのインスタンスは、割り当てられているリソースからのリソースを利用して並列に設置され、ルーティングされる。他の実施形態も開示される。
本発明の特徴および利点は、実施例を通して例示され、しかし、本発明の実施形態の範囲を示される特定の実施形態に限定するように意図されない。
図1は、本発明の実施形態に従う代表的な部分再構成(PR)設計を例示するダイヤグラムである。 図2は、本発明の代表的な実施形態に従う、静的リソース割り当て用いて標的デバイス上のPRモジュールを有するシステムを設計するための方法を例示するフローチャートである。 図3は、本発明の実施形態に従う、静的リソース割り当てのために使用された設計の代表的なフロアプランを例示する。 図4は、図3に例示された方法を用いてコンパイルのための代表的なスケジュールを例示する表である。 図5は、本発明の代表的な実施形態に従う、静的リソース割り当ておよび再割り当てを用いて標的デバイス上のPRモジュールを有するシステムを設計するための方法を例示するフローチャートである。 図6は、図5に例示された方法を用いてコンパイルのための代表的なスケジュールを例示する表である。 図7は、本発明の実施形態に従う、静的リソース割り当てのために使用された設計の代表的な修正されたフロアプランを例示する。 図8は、本発明の代表的な実施形態に従う、自動発見を有する静的リソース割り当てを用いて標的デバイス上のPRモジュールを有するシステムを設計するための方法を例示するフローチャートである。 図9は、図8に例示された方法を用いてコンパイルのための代表的なスケジュールを例示する表である。 図10は、本発明の代表的な実施形態に従う、動的リソース割り当てを用いて標的デバイス上のPRモジュールを有するシステムを設計するための方法を例示するフローチャートである。 図11は、図10に例示された方法を用いてコンパイルのための代表的なスケジュールを例示する表である。 図11は、図10に例示された方法を用いてコンパイルのための代表的なスケジュールを例示する表である。 図12は、本発明の実施形態に従う、システム設計者を実装するコンピュータシステムのブロックダイヤグラムを例示する。 図13は、本発明の実施形態に従う代表的な標的デバイスを例示する。
以下の説明において、説明の目的のために、具体的な用語は、本発明の実施形態の完全な理解を提供するために説明される。説明における具体的な詳細が本発明の実施形態を辞実践する必要がない場合もあることは、当業者にとって明白である。他の場合において、周知の回路、デバイス、およびプログラムは、本発明の実施形態を必要なしに曖昧にすることを避けるためにブロックダイヤグラムの形式で示される。
図1は、本発明の実施形態に従う部分再構成(PR)を使用するシステム100のための代表的な設計を例示するダイヤグラムである。設計100は、5つのより低いレベルのモジュール(A〜E)のインスタンスを作成するトップレベルモジュール110を含む。各モジュールは、レジスタ転送レベルに説明される複数の部品を含む。モジュールA、CおよびE、並びにトップレベルモジュール110は、静的論理モジュールである。本発明の実施形態に従って、静的論理モジュールは、標的デバイス上にプログラム化された後に、変更しない。モジュールBおよびDは、PRモジュールである。PRモジュールBは、B1〜B4とラベル付けされた4つの可能なインスタンスを有する。PRモジュールDは、D1〜D3とラベル付けされた3つの可能なインスタンスを有する。本発明の実施形態に従って、PRモジュールは、複数の可能なインスタンスを含み、PRモジュールの第1のインスタンスは、PRモジュールが標的デバイス上にプログラム化された後に、PRモジュールの第2のインスタンスに変更され得る。PRモジュールの各インスタンスは、PRモジュールのために実装され得る異なるレジスタ転送レベル(RTL)を表す。
本発明の実施形態に従って、PRモジュールの各インスタンスは、1つ以上の入力ポートおよび1つ以上の出力ポートを含む。各入力ポートおよび出力ポートは、PRモジュールの境界が論理的に一致であるように、標的デバイス上の同一の静的論理と相互作用する。PRモジュールの各インスタンスの入力ポートは、静的論理の境界において静的論理からデータを受信するために、構成可能なランダムアクセスメモリ(CRAM)によってプログラム化され得る。同様に、PRモジュールの各インスタンスの出力ポートは、静的論理の境界において静的論理からデータを送信するために、CRAMによってプログラム化され得る。PRモジュールの境界において静的論理は、レジスタ、ルックアップテーブル(LUT)、ワイヤ、または他の部品を用いて実装され得ることが認識される。
図2は、本発明の代表的な実施形態に従って、静的リソース割り当てを用いて標的デバイス上のPRモジュールを有するシステムを設計するための方法を例示するフローチャートである。標的デバイスは、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、構造化されたASIC、または他のプログラマブルデバイスであり得る。一実施形態において、図2に例示された手順は、コンピュータシステム上に実装されたコンピュータ支援設計(CAD)/自動電子設計(EDA)ツールによって行われ得る。ステップ201において、ハードウェア記述言語(HDL)設計定義は、システムを説明するために生成される。HDLは、レジスタによって提供されるシステムの仕様に応じて生成される。仕様は、設計入力ツールを通じて設計者によって提供され得る。仕様は、システムにおいて、部品および相互接続を説明し得る。本発明の実施形態に従って、仕様の部分の識別は、静的論理モジュールとして実装されるべきであり、PRモジュールはまた、設計者によって提供される。
ステップ202において、システムが統合される。統合は、標的デバイスによって実装されるべきであるシステムの倫理設計を生成することを含む。本発明の実施形態に従って、統合は、HDL設計定義から静的論理モジュールおよびPRモジュールを含むシステムの最適化された論理表示を生成する。統合はまた、最適化された論理設計をマップ化することを含む。マッピングは、どのように標的デバイス上の具体的なリソースを用いて最適化された論理表示の論理ゲートおよび論理要素を実装するのを決定することを含む。本発明の実施形態に従って、ネットリストが、マッピングから生成される。このネットリストは、HDLから生成された、最適化されたテクノロジーマップ化されたネットリストであり得る。
ステップ203において、フロアプランが、システムの設計のために生成される。本発明の実施形態に従って、フロアプランは、標的デバイス上の物理位置(「フロアプラン領域」)をステップ202において生成された、統合された論理に示す。本発明の実施形態において、標的デバイス上のフロアプラン領域は、統合から生成された静的モジュールおよびPRモジュールの各々に割り当てられ得る。
図3は、図1に例示された設計100のための代表的なフロアプラン300を例示する。フロアプラン領域310、312、314、および315は、それぞれ、静的モジュールA、C、Eおよびトップに割り当てられる。フロアプラン領域311は、PRモジュールBに割り当てられ、従って、暗示的にインスタンスB1〜B4に割り当てられる。フロアプラン領域313は、PRモジュールDに割り当てられ、従って、暗示的にインスタンスD1〜D3に割り当てられる。本発明の実施形態に従って、フロアプラン領域は、任意の寸法または形状を有し、隣接である必要がない。フロアプランは、モジュールに割り当てるためのフロアプラン領域の大きさ、形状、および/または位置について、設計者によって提供される入力に応じてCAD/EDAによって生成され得る。代替的に、フロアプランは、単独に統合出力ネットリストの分析によるCAD/EDAツールによって生成され得、設計者によって提供される任意の出力に独立し得る。
図2に戻って参照すると、ステップ204において、標的デバイス上のルーティングリソースは、静的論理モジュールおよびPRモジュールに割り当てられる。本発明の実施形態に従って、モジュールに割り当てられるフロアプラン領域は、静的リソース割り当てのために使用される。この実施形態において、モジュールは、モジュールの割り当てられたフロアプラン領域に配置されるルーティングリソースのみを使用することを可能にされる。静的にルーティングリソースをシステムの静的モジュールおよびPRモジュールを割り当て、かつ割り当てることによって、PRモジュールは、静的論理モジュールのルーティングの間または後に、任意の順序でルーティングされ得る。加えて、PRモジュールのインスタンスのルーティングは、並列に行われ得る。複数のコンピュータノードは、並列のコンパイルを容易にするために利用され得る。本発明の実施形態に従って、コンピュータノードは、設置およびルーティングのようなコンパイル手順を行うための処理手順を含む。コンピュータノードは、コンピュータシステムのプロセッサまたはプロセッサコアーによって実装され得る。
ステップ205において、コンパイルスケジュールが生成される。コンパイルスケジュールは、いつおよびどのコンピュータノードによって設計の静的論理モジュールおよびPRモジュールがコンパイルされるかを決定する。行われたコンパイルは、静的論理モジュールおよびPRモジュールの設置およびルーティングを含み得る。本発明の実施形態に従って、コンパイルは、最も多くの数の利用可能なコンピュータノードが同数のコンパイルを並列に行うために利用されるようにスケジュールされる。本発明の実施形態に従って、コンパイルスケジュールは、第1のコンパイルの第1のコンピュータノード上に静的論理モジュールの全部と、各PRモジュールの第1のインスタンスとのコンパイルを一緒にスケジュールする。次に、コンパイルスケジュールは、第2のコンパイルの利用可能なコンピュータノード上に並列にコンパイルされるべきである各PRモジュールの残りのインスタンスのコンパイルをスケジュールする。異なるPRモジュールのインスタンスは、同一のコンパイルの間に同一のコンピュータノードによって一緒にコンパイルされ得る。複数のこのようなモジュールが、それらが同一の時間においてチップにプログラム化されるときに、同一のリソースを利用し得るので、同一のPRモジュールのインスタンスは、同一のコンパイルの間に同一のコンピュータノードによって一緒にコンパイルされない場合もある。追加のコンパイルは、コンパイルされていないPRモジュールのインスタンスをコンパイルするようにスケジュールされ得る。代替的な実施形態において、1つのコンピュータのみが利用可能であり、スケジューリング手順は、単一のコンピュータノード上にコンパイルされるべきであるコンパイルを連続して順序付ける。
図4は、図1に例示された設計100のために、図3において例示された方法を用いるコンパイルのための代表的なスケジュールを例示する表である。図4に示されるように、設計100の静的論理モジュールおよびPRモジュールは、2つのコンパイルにおいて3つのコンピュータノードP1〜P3を用いてコンパイルされる。コンパイル1の間に、第1のコンピュータノードP1は、モジュール、トップ、A、B1、C、D1およびEをコンパイルする。コンパイル2の間に、第1のコンピュータノードP1は、モジュールB2およびD2をコンパイルし、第2のコンピュータノードP2は、モジュールB3およびD3をコンパイルし、第3のコンピュータノードP3は、モジュールB4をコンパイルする。
図2に戻って参照すると、206において、システムが設置される。本発明の実施形態に従って、設置は、モジュールに割り当てられたフロアプランの領域において、標的デバイス上にマップ化された論理システムを設置することを含む。設置は、機能ブロックの各々のための設置を生成するために、テクノロジーマップ化されたネットリストで働く。本発明の実施形態に従って、設置は、具体的な論理要素のために使用される論理設計上のリソース、および統合の間に決定されたようなシステムを実装するために決定された他の機能ブロックを決定することによって標的デバイス上のシステムを一致させる。設置は、標的デバイス上に存在する論理クラスタリングを形成するために、論理要素を一緒にグループ化することを含むクラスタリングを含み得る。本発明の実施形態に従って、クラスタリングは、設置の早いステージにおいて行われ、設置準備ステージの間に統合の後に発生する。
ステップ207において、設置された設計がルーティングされる。本発明の実施形態において、204において、モジュールに割り当てられたルーティングリソースは、論理ゲート、論理要素、および静的論理モジュールおよびPRモジュールの他の部品の間の相互接続を提供するために使用される。ルーティング可能性の最適化はまた、設置された論理設計上に行われ得る。本発明の実施形態に従って、ルーティング可能性の最適化のゴールは、設定された論理設計において部品を接続するために使用された配線の量を減らすことである。ルーティング可能性の最適化は、ファンアウト分割、論理複製、論理再配線、または他の手順を行うことを含み得る。手順おのうちの1つ以上は、設置された論理設計上に行われ得ることが認識される。
本発明の実施形態に従って、206および207において説明されたルーティングおよび設置手順が、205において生成されたコンパイルスケジュールに従って行われる。この実施形態において、コンピュータノードは、設置のインスタンスおよび1つ以上のコンパイルのための処理手順を実行するために使用される。各コンピュータノードは、特定のコンパイル数の間に、設置し、かつルーティングするための割り当てられた具体的なモジュールである。複数のコンピュータノードを利用することによって、PRモジュールのインスタンスが並列にルーティングされ得る。
208において、組み立て手順が行われる。組み立て手順は、説明されたコンパイル手順によって決定された情報を含む複数のデータファイルを生成することを含む。データファイルは、全部の標的デバイスをプログラム化するために使用され得るビットストリーム、または標的デバイスの具体的な部分のみをプログラム化するために使用され得るビットストリームであり得る。本発明の実施形態に従って、図2に例示された手順は、第1のコンピュータシステム上に実行されるEDAツールによって実行され得る。生成されたデータファイルは、システムの設計がさらに処理されることを可能にするために、第2のコンピュータシステムに送信され得る。代替的には、データファイルは、システム設計に従って標的デバイスをプログラム化するために使用され得る第2のコンピュータシステムに送信され得る。システムの設計はまた、ディスプレイデバイスまたは他の媒体上のように他の形で出力され得ることが認識される。標的デバイスは、全部のチップをプログラム化し、または初期化するための情報を含むデータファイルを用いてプログラム化され得、チップの部分は、その部分のみをプログラム化するための情報を含む他のデータファイルを用いて再プログラム化され得る。データファイルを有する標的をプログラム化することによって、標的デバイス上の部品は、システムを実装するために、物理的に転送される。
図5は、本発明の代表的な実施形態に従う、静的リソース割り当ておよび再割り当てを用いて標的デバイス上のPRモジュールを有するシステムを設計するための方法を例示するフローチャートである。501において、システムのためのHDL設計が生成される。502において、統合がシステム上に行われる。503において、フロアプランがシステムに対して生成される。504において、ルーティングリソースは、システムの静的論理モジュールおよびPRモジュールに割り当てられる。本発明の実施形態に従って、図2に参照して説明された手順201〜204は、手順501〜504を実装するために使用される。
505において、コンパイルスケジュールが生成される。コンパイルスケジュールは、いつおよびどのコンピュータノードによって設計の静的論理モジュールおよびPRモジュールがコンパイルされるかを決定する。行われたコンパイルは、静的論理モジュールおよびPRモジュールの設置およびルーティングを含み得る。本発明の実施形態に従って、コンパイルは、最も多くの数の利用可能なコンピュータノードが同数のコンパイルを並列に行うために利用されるようにスケジュールされる。本発明の実施形態に従って、コンパイルスケジュールは、第1のコンパイルの第1のコンピュータノード上に、全部の静的論理モジュールのコンパイルを一緒にスケジュールする。次に、コンパイルスケジュールは、第2のコンパイルの利用可能なコンピュータノード上に並列にコンパイルされるべきである各PRモジュールのインスタンスのコンパイルをスケジュールする。異なるPRモジュールのインスタンスは、同一のコンパイルの間に同一のコンピュータノードによって一緒にコンパイルされ得る。同一のPRモジュールのインスタンスは、同一のコンパイルの間に同一のコンピュータノードによって一緒にコンパイルされない場合もある。追加のコンパイルは、コンパイルされていないPRモジュールのインスタンスをコンパイルするようにスケジュールされ得る。別の実施形態において、1つのコンピュータのみが利用可能であり、スケジューリング手順は、単一のコンピュータノード上にコンパイルされるべきであるコンパイルを連続して順序付ける。
図6は、図1に例示された設計100のために、図5において例示された方法を用いるコンパイルのための代表的なスケジュールを例示する表である。図6に示されるように、設計100の静的論理モジュールおよびPRモジュールは、2つのコンパイルにおいて4つのコンピュータノードP1〜P4を用いてコンパイルされる。コンパイル1の間に、第1のコンピュータノードP1は、静的論理モジュール、トップ、A、CおよびEをコンパイルする。コンパイル2の間に、第1のコンピュータノードP1は、PRモジュールB1およびD1をコンパイルし、第2のコンピュータノードP2は、PRモジュールB2およびD2をコンパイルし、第3のコンピュータノードP3は、PRモジュールB3およびD3をコンパイルし、第4のコンピュータノードP4は、PRモジュールB4をコンパイルする。
図5に戻って参照すると、506および507において、システムの静的論理モジュールが設置され、かつルーティングされる。この方式において、図6からのコンパイル1が行われる。本発明の実施形態に従って、図2に参照して説明される手順206〜207は、静的論理モジュール上に手順506〜507を実装するために使用され得る。さらに、PRモジュールのインスタンスに対して静的論理モジュールにまたはそれから接続することを必要とされる(「通してルーティングする」)PRモジュールに割り当てられるルーティングリソースは、PRモジュールのインスタンスに再割り当てされる。PRモジュールの割り当てられたフロアプランエリアを通してPRモジュールまたは静的モジュールにまたはそれらからルートしなければならない静的モジュールからの接続は、設計ネットリストの分析によって決定され得る。1つのPRモジュールから別のPRモジュールへの接続は、静的論理境界のみを通して達成され得、それゆえに、接続は、(可能に、PRモジュールに割り当てられたリソースを用いて)静−静的接続として処理され得る。本発明の実施形態に従って、506および507において説明された設置およびルーティング手順は、505において生成されたコンパイルスケジュールの第1の列に従って行われる。
508において、修正されたフロアプランが生成される。修正されたフロアプランは、静的論理モジュールに事前に割り当てられたフロアプラン領域のエリアを含むために、PRモジュールに割り当てられたフロアプラン領域を拡張する。本発明の実施形態に従って、PRモジュールに割り当てられた各フロアプラン領域の縁が反復して拡張される手順が利用され得る。この実施形態において、各フロアプラン領域の水平境界のエッジおよび各フロアプラン領域の垂直境界のエッジが、標的デバイスの境界または別のPRモジュールに対応する境界エッジに達するまでに、水平境界のエッジが垂直に動かされ、垂直境界のエッジが水平に動かされる。フロアプランを修正するための、ルーティング可能性およびタイミングの問題が予測されるフロアプラン領域を優先的に成長させる手順を含む他の手順が使用され得ることが認識されるべきである。
509において、デバイスリソースが再割り当てされる。静的論理モジュールに事前に割り当てられる、使用されていないリソースが、PRモジュールに再割り当てられる。本発明の実施形態に従って、各PRモジュールは、その割り当てられたフロアプラン領域に配置された使用されていないリソースを使用することを可能にされる。リソースをシステムのPRモジュールに静的に割り当て、かつ割り当てることによって、PRモジュールは、任意の順序で設置され得、かつルーティングされ得る。加えて、PRモジュールのインスタンスの設置およびルーティングが、並列に行われ得る。複数の処理ノードは、並列のコンパイルを容易にするように利用され得る。本発明の実施形態に従って、処理ノードは、設置およびルーティングのようなコンパイル手順を行うために、処理リソースを含む。
図7は、本発明の実施形態に従う、静的リソース割り当てのために使用された設計の代表的な修正されたフロアプラン700を例示する。例示されるように、図3に例示されたPRモジュールBに割り当てられたフロアプラン領域311は、静的論理モジュールトップおよびEに事前に割り当てられたフロアプラン領域を含むように拡張される。静的論理モジュールトップおよびEによって使用されていないリソースは、PRモジュールBに対して有用である。図3に例示されたPRモジュールDに割り当てられたフロアプラン領域313は、静的論理モジュールA、C、Eおよびトップに事前に割り当てられたフロアプラン領域を含むように拡張される。静的論理モジュールA、C、Eおよびトップによって使用されていないリソースは、PRモジュールDに対して有用である。
図5に戻って参照すると、510および511において、システムのPRモジュールが設置され、かつルーティングされる。本発明の実施形態に従って、図2に参照して説明される手順206〜207は、PRモジュール上に手順510〜511を実装するために使用され得る。本発明の実施形態に従って、510および511において説明された設置およびルーティング手順は、505において生成されたコンパイルスケジュールに従って行われる。この実施形態において、コンピュータノードは、1つ以上のコンパイルのためのルーティングおよび設置の手順のインスタンスを実行するために使用される。各コンピュータノードは、特定のコンパイル数の間に設置し、かつルーティングするための割り当てられた具体的なモジュールである。複数のコンピュータノードを利用することによって、PRモジュールのインスタンスが並列にルーティングされ得る。
512において、組み立て手順が行われる。本発明の実施形態に従って、図2に参照して説明された手順208は、手順512を実装するために使用され得る。
図5に説明された方法は、図2に説明された方法以上のいくつかの利点を提供する。例えば、静的論理モジュールによって使用されていないルーティングリソースを再割り当てることによって、標的デバイス上の使用されていないルーティングリソースがより良く利用され得る。加えて、図5に説明された方法は、PRモジュールが、インターモジュール通信上の限定を減少させる静的論理モジュールを通してルーティングすることを可能にする。図2の方法はまた、この増強を用いて修正され得ることが認識される。
図8は、本発明の代表的な実施形態に従う、自動発見を有する静的リソース割り当てを用いて標的デバイス上のPRモジュールを有するシステムを設計するための方法を例示するフローチャートである。801において、システムのためのHDL設計が生成される。802において、統合がシステム上に行われる。803において、フロアプランがシステムに対して生成される。本発明の実施形態に従って、図2に参照して説明された手順201〜203は、手順801〜803を実装するために使用され得る。
804において、コンパイルスケジュールが生成される。コンパイルスケジュールは、いつ設計の静的論理モジュールおよびPRモジュールがコンパイルされるかを決定する。行われたコンパイルは、静的論理モジュールおよびPRモジュールの設置およびルーティングを含み得る。本発明の実施形態に従って、コンパイルスケジュールは、第1のコンパイルの第1のコンピュータノード上に静的論理モジュールの全部と、各PRモジュールの第1のインスタンスとのコンパイルを一緒にスケジュールする。次に、コンパイルスケジュールは、第2のコンパイルにおいてコンパイルされるべきである各PRモジュールの次のインスタンスのコンパイルをスケジュールする。異なるPRモジュールのインスタンスは、同一のコンパイルの間に単一のコンピュータノードによって一緒にコンパイルされ得る。追加のコンパイルは、コンパイルされていないPRモジュールのインスタンスをコンパイルするようにスケジュールされ得る。別の実施形態において、1つのコンピュータのみが利用可能であり、スケジューリング手順は、単一のコンピュータノード上にコンパイルされるべきであるコンパイルを連続して順序付ける。
図9は、図1に例示された設計100のための、図8に例示された方法を用いてコンパイルのための代表的なスケジュールを例示する表である。図9に示されるように、設計100の静的論理モジュールおよびPRモジュールは、4つのコンパイルにおいて単一のコンピュータノードを用いてコンパイルされる。コンパイル1の間に、ノードトップ、A、B1、C、D1およびEが一緒にコンパイルされる。コンパイル2の間に、ノードB2およびD2が一緒にコンパイルされる。コンパイル3の間に、ノードB3およびD3が一緒にコンパイルされる。コンパイル4の間に、ノードB4がコンパイルされる。
図8に戻って参照すると、805において、システムの静的論理モジュールおよびPRモジュールが設置される。本発明の実施形態に従って、図2に参照して説明される手順206は、静的論理モジュールおよびPRモジュール上に手順805を実装するために使用され得る。
806において、設置されたシステムがルーティングされる。本発明の実施形態に従って、標的デバイス上のルーティングリソースは、論理ゲート、論理要素、および静的論理モジュールおよびPRモジュールの他の部品の間の相互接続を提供するために選択される。この実施形態において、静的論理モジュールおよびPRモジュールは、標的デバイス上のどこにもルーティングリソースを用いてルーティングされることを可能にされる。ルーティングのためのこの手順は、モジュールが必要とされるルーティングリソースを発見するために自由にルーティングすることを可能にされるので、「自動発見」と呼ばれ得る。本発明の実施形態に従って、モジュールに対してルーティングリソースを選択する場合に、優先の順序が使用される。PRモジュールの第1のインスタンスに対して選択されたルーティングリソースは、他のルーティングリソースを選択するよりも、PRモジュールの第2のインスタンスのために使用されるように優先的に選択される。他の静的論理モジュールおよびPRモジュールによって使用されていないルーティングリソースは、より早いコンパイル数において他の静的論理モジュールおよびPRモジュールによって既に使用されたルーティングリソースを選択するよりも、優先的に選択される。
本発明の実施形態に従って、805および806において説明された設置およびルーティングの手順は、804において生成されたコンパイルスケジュールに従って行われる。この実施形態において、単一のコンピュータノードは、複数のコンパイルのための設置および処理手順の単一のインスタンスを実行するために使用される。
807において、競合する任意のルーティングリソースがあるか否かが決定される。異なるPRモジュールのインスタンスまたはPRモジュールおよび静的論理モジュールのインスタンスによって使用されるために選択されるルーティングリソースが、競合するように考慮される。同一のルーティングリソースを選択するモジュールが、競合するモジュールであるように考慮される。競合するように決定されるルーティングリソースがない場合に、制御は、808へ進む。競合するように決定されるルーティングリソースがある場合に、制御は、809へ進む。
808において、制御は、手順を終了させる。
809において、競合のルーティングリソースが仲裁される。本発明の実施形態に従って、競合するルーティングリソースの各々は、ルーティングリソースを選択した競合するモジュールのうちの1つに割り当てられる。ルーティングリソースは、モジュール、または他の基準に関連付けられたタイミング制約またはルーティング制約に基づいて仲裁され得ることが認識される。代替的には、ルーティングリソースの仲裁が、ランダム指定に基づき得る。
810において、使用されていないルーティングリソースが割り当てられる。806においてルーティングからの使用されていないルーティングリソースは、競合を有する静的論理モジュールとPRモジュールとに割り当てられる。本発明の実施形態に従って、806において発見された詳細なルーティングリソースは、モジュールのルーティングのための候補として割り当てられるべきである更新されたセットのリソースを生成するために使用される。その発見されたリソースのための仲裁においてそのリソースを成功させていない信号は、次回のルーティングにおいて代替的な選択肢へのアクセスを有するために、所望の配線の近傍のリソースに割り当てられる。仲裁および割り当てのための特定の手順に対する詳細は、デバイスのルーティング接続性の仕様に対して特定であることと、他の手順が使用され得ることとが認識されるべきである。
811において、新しいコンパイルスケジュールが生成される。新しいコンパイルスケジュールは、いつ競合を有する1つ以上のモジュールが再コンパイルされるかを決定する。行われた再コンパイルは、モジュールのルーティング上に競合を有する1つ以上のネットリストの再ルーティングを含み得る。本発明の実施形態に従って、異なるPRモジュールのインスタンスは、同一の再コンパイルの間に、単一のコンピュータノードによって一緒に再コンパイルされ得る。
812において、競合を有するモジュールは、809において仲裁されたルーティングリソースを用いて再ルーティングされ、811において生成されたコンパイルスケジュールに従って810において割り当てられる。本発明の実施形態に従って、競合を有するモジュールもみが再ルーティングされる。競合を有しないモジュールは、それらのより早いルーティング選択を利用する。仲裁が、競合がなかった静的リソース指定を生成したので、我々は、さらなる競合がないことを保証される。手順は、成功のルートを用いて終了する。仲裁および割り当てが、不完全な静的リソース指定のために、結果としてルートへの失敗を生じ得る別の実施形態において、手順は、変更される必要がある仲裁および割り当ての詳細を用いて、ステップ807へ戻り得る。
805の優先的順序は、非並列のコンパイルを達成する。代替的な実施形態において、単一のコンピュータノードが直列に設置およびルーティングの単一のインスタンスを実行するために利用されるコンパイルスケジュールを生成することを代わりに、複数のコンピュータノードは、並列に設置およびルーティングの複数のインスタンスを実行するために利用され得る。この実施形態において、PRモジュールの異なるインスタンスは、同一のコンパイルの間に、利用可能なコンピュータノード上に並列にコンパイルされ得る。異なるPRモジュールのインスタンスはまた、同一のコンパイルの間に同一のコンピュータノードによって一緒にコンパイルされ得る。この実施形態において、各ルーティングが他のルーティングの結果の知識なしに行われるので、競合の可能性は、増大する。
図8において説明された方法は、803において生成されたフロアプランを用いて設置を行う。本発明の代替的な実施形態において、設置は、設置がフロアプランによって制約されない自動発見方式で行われ得ることが認識される。この実施形態において、設置の競合もルーティングの競合も807において識別され得、再設置手順は、新しいスケジュールが811において生成された後に行われ得る。
図10は、本発明の代表的な実施形態に従う、動的リソース割り当てを用いて標的デバイス上のPRモジュールを有するシステムを設計するための方法を例示するフローチャートである。この実施形態において、モジュールへのリソースの静的割り当てが行われない。代わりに、設置およびルーティングの動作は、正当の解決上の収束までに動く。1001において、システムのためのHDL設計が生成される。1002において、統合が、システム上に行われる。1003において、フロアプランが、システムに対して生成される。本発明の代替的な実施形態において、フロアプランが生成されない。本発明の実施形態に従って、図2に参照して説明される手順201〜203は、手順1001〜1003を実装するために使用され得る。
1004において、コンパイルスケジュールが生成される。コンパイルスケジュールは、いつおよびどのコンピュータノードによって設計の静的論理モジュールおよびPRモジュールがコンパイルされるかを決定する。行われたコンパイルは、静的論理モジュールおよびPRモジュールの設置およびルーティングを含み得る。本発明の実施形態に従って、コンパイルは、同数の利用可能なコンピュータノードが同数のコンパイルを並列に行うために利用されるようにスケジュールされる。本発明の実施形態に従って、コンパイルスケジュールは、第1のコンパイルの第1のコンピュータノード上に静的論理モジュールの全部のコンパイルを一緒にスケジュールする。次に、コンパイルスケジュールは、第2のコンパイルの利用可能なコンピュータノード上に並列にコンパイルされるべきである各PRモジュールのインスタンスのコンパイルをスケジュールする。異なるPRモジュールのインスタンスは、同一のコンパイルの間に同一のコンピュータノードによって一緒にコンパイルされ得る。追加のコンパイルは、コンパイルされていないPRモジュールのインスタンスをコンパイルするようにスケジュールされ得る。代替的な実施形態において、1つのコンピュータのみが利用可能であり、スケジューリング手順は、単一のコンピュータノード上にコンパイルされるべきであるコンパイルを連続して順序付ける。
図11Aは、図1に例示された設計100のための、図10に例示された方法を用いてコンパイルのための代表的なスケジュールを例示する表である。図11に示されるように、設計100の静的論理モジュールおよびPRモジュールは、2つのコンパイルにおいて4つのコンピュータノードP1〜P4を用いてコンパイルされる。コンパイル1の間に、第1のコンピュータノードP1は、モジュール、トップ、A、CおよびEをコンパイルする。コンパイル2の間に、第1のコンピュータノードP1は、モジュールB1およびD1をコンパイルし、第2のコンピュータノードP2は、モジュールB2およびD2をコンパイルし、第3のコンピュータノードP3は、モジュールB3およびD3をコンパイルし、第4のコンピュータノードP4は、モジュールB4をコンパイルする。
図10に戻って参照すると、1005において、システムの静的論理モジュールおよびPRモジュールが設置される。本発明の実施形態に従って、図2に参照して説明される手順206は、静的論理モジュールおよびPRモジュール上に手順1005を実装するために使用され得る。
1006において、設置されたシステムがルーティングされる。本発明の実施形態に従って、標的デバイス上のルーティングリソースは、論理ゲート、論理要素、および静的論理モジュールおよびPRモジュールの他の部品の間の相互接続を提供するために選択される。この実施形態において、静的論理モジュールおよびPRモジュールは、標的デバイス上のどこにもルーティングリソースを用いてルーティングされることを可能にされる。ルーティングのためのこの手順は、モジュールが必要とされるルーティングリソースを発見するために自由にルーティングすることを可能にされるので、「自動発見」と呼ばれ得る。本発明の実施形態に従って、モジュールに対してルーティングリソースを選択する場合に、優先の順序が使用される。PRモジュールの第1のインスタンスに対して選択されたルーティングリソースは、他のルーティングリソースを選択するよりも、PRモジュールの第2のインスタンスのために使用されるように優先的に選択される。他の静的論理モジュールおよびPRモジュールによって使用されていないルーティングリソースは、他の静的論理モジュールおよびPRモジュールによって使用されたルーティングリソースを選択するよりも、優先的に選択される。
本発明の実施形態に従って、1005および1006において説明された設置およびルーティングの手順は、1004において生成されたコンパイルスケジュールに従って行われる。この実施形態において、複数のコンピュータノードは、PRモジュールのインスタンスが並列にコンパイルされることを可能にするために、設置および処理手順の複数のインスタンスを実行する。
1007において、競合する任意のルーティングリソースがあるか否かが決定される。2つ以上のモジュールによって使用されるために選択されるルーティングリソースが、競合するように考慮される。同一のルーティングリソースを選択するモジュールが、競合するモジュールであるように考慮される。競合するように決定されるルーティングリソースがない場合に、制御は、1008へ進む。競合するように決定されるルーティングリソースがある場合に、制御は、1009へ進む。
1008において、制御は、手順を終了させる。
1009において、新しいコンパイルスケジュールが生成される。新しいコンパイルスケジュールは、いつおよびどのコンピュータノードによって競合を有する1つ以上のノードが再コンパイルされるべきであるかを決定する。行われた再コンパイルは、競合を有する1つ以上のノードの再ルーティングを含み得る。本発明の実施形態に従って、異なるPRモジュールのインスタンスは、同一の再コンパイルの間に単一のコンピュータノードによって一緒に再コンパイルされ得る。
図11Bは、図1に例示された設計100のための、図10に例示された方法を用いてコンパイルのための代表的な新しいスケジュールを例示する表である。この実施例において、競合は、静的論理モジュールトップとPRモジュールB1との間に、静的論理モジュールAとPRモジュールB2との間に検出されている。新しいスケジュールは、これらのモジュールの再ルーティングをスケジュールする。コンパイル3の間に、第1のコンピュータノードP1は、静的論理モジュールトップとA、およびPRモジュールB1をコンパイルする。コンパイル3の間に、第2のコンピュータノードP2は、モジュールB2をコンパイルする。
1010において、競合を有するモジュールが再ルーティングされる。本発明の実施形態に従って、競合を有する静的論理モジュールおよびPRモジュールは、標的デバイス上のどこにもルーティングリソースを用いてルーティングされることを可能にされる。本発明の実施形態に従って、モジュールに対してルーティングリソースを選択する場合に、優先の順序が使用される。PRモジュールの第1のインスタンスに対して選択されたルーティングリソースは、他のルーティングリソースを選択する前に、PRモジュールの第2のインスタンスのために使用されるように選択される。他の静的論理モジュールおよびPRモジュールによって使用されていないルーティングリソースは、他の静的論理モジュールおよびPRモジュールによって使用されたルーティングリソースを選択する前に、選択される。制御は、1007へ戻る。手順1007〜1010が反復され、1010において説明された選択の優先は、手順が解決上に収束することを可能にするコスト関数で実装され得る。
本発明の代替的な実施形態において、設置はまた、設置がフロアプランによって制約されない自動発見方式で行われ得る。この実施形態において、設置の競合は、1007においてルーティングの競合を用いて識別され得、再設置手順は、新しいスケジュールが1009において生成された後に行われ得る。
図2、5、8および10は、本発明の実施形態を例示するフローチャートである。例示された技術のいくつかは、連続して、並列に、または説明されたことと、説明された手順が繰り返され得ること以外の順序で行われ得る。説明された技術の全部が行われる必要がないことと、追加の技術が加えられ得ることと、例示された技術のいくつかが他の技術を用いて代替され得ることとが認識される。
図12は、本発明の例の実施形態が存在するコンピュータシステム1200のブロックダイヤグラムである。コンピュータシステム1200は、データ信号を処理する1つ以上のプロセッサを含む。示されるように、コンピュータシステム1200は、第1のプロセッサ1201と、第nのプロセッサ1205とを含み、nは、任意数であり得る。プロセッサ1201および1205は、各チップ上に複数のプロセッサコアーを有する多重コアープロセッサであり得る。プロセッサ1201および1205は、CPUバス1210またはプロセッサ1201および1205と、コンピュータシステム1200の他の部品との間にデータ信号を送信する他のスイッチ構造に連結される。本発明の実施形態に従って、コンピュータシステム1200のプロセッサまたはプロセッサコアーの各々は、コンピュータノードとして動作し得、その自身のスレッドを実行し得る。各スレッドは、他のスレッドと共に、ソフトウェアプログラムのインスタンスを並列に実行し得る。
コンピュータシステム1200は、メモリ1213を含む。メモリ1213は、プロセッサ1201および1205によって実行され得るデータ信号によって表わされる指令およびコードを格納し得る。ブリッジメモリコントローラ1211は、CPUバス1210とメモリ1213とに連結される。ブリッジメモリコントローラ1211は、プロセッサ1201および1205と、メモリ1213と、コンピュータシステム1200他の部品との間に信号を向け、CPUバス1210と、メモリ1213と、第1のIOバス1220との間にブリッジする。本発明の実施形態に従って、プロセッサ1201および1205は、メモリ1213に直接に連結され得、ブリッジメモリコントローラ1211なしにメモリ1213と通信する。
第1のIOバス1220は、単一のバスまたは複数のバスの組み合わせであり得る。第1のIOバス1220は、コンピュータシステム1200の部品の間に通信リンクを提供する。ネットワークコントローラ1221は、第1のIOバス1220に連結される。ネットワークコントローラ1221は、コンピュータシステム1200をコンピュータのネットワーク(示されていない)にリンクし得、機械の中の通信を支持する。ディスプレイデバイスコントローラ1222は、第1のIOバス1220に連結される。ディスプレイデバイスコントローラ1222は、コンピュータシステム1200へのディスプレイデバイス(示されていない)の連結を可能にし、ディスプレイデバイスとコンピュータシステム1200との間のインターフェースとして動作する。
第2のIOバス1230は、単一のバスまたは複数のバスの組み合わせであり得る。第2のIOバス1230は、コンピュータシステム1200の部品の間の通信リンクを的称する。データ記憶デバイス1231が、第2のIOバス1230に連結される。入力インターフェース1232が、第2のIOバス1230に連結される。入力インターフェース1232は、コンピュータシステム1200への入力デバイスの連結を可能にし、入力デバイスからコンピュータシステム1200まで連結する。バスブリッジ1223は、第1のIOバス1220と第2のIOバス1230との間にデータ信号をバッファーし、かつブリッジするように動作する。異なるアーキテクチャを有するコンピュータシステムはまた、コンピュータシステム1200を実装するために使用され得ることが認識されるべきである。
システム設計者1240は、メモリ1213に存在し、メモリに存在するプロセッサ1201および1205またはプロセッサコアーの1つ以上によって実行され得る。システム設計者1240は、HDLを生成し、システムを統合し、フロアプランを生成し、ルーティングリソースを割り当て、コンパイルスケジュール、標的デバイス上にシステムを設置し、標的デバイス上にシステムをルートさせ、フロアプランを修正し、ルーティングリソースを再割り当て、競合を仲裁し、システムを組み立て、そして/または他の手順、例えば、図2、5、8および10に説明される手順を行うように動作し得る。本発明の実施形態に従って、システム設計者1240は、同時に(並列に)複数のスレッドによって実行され得る部分を含むプログラム。
本発明の実施形態は、指令を有するコンピュータ読み取り可能または機械読み取り可能な媒体を含み得るコンピュータプログラム製品、またはソフトウェアとして提供され得る。コンピュータ読み取り可能または機械読み取り可能な媒体上の指令は、コンピュータプログラムまたは他の電子デバイスをプログラム化するように使用され得る。機械読み取り可能な媒体は、フロッピディスケット、光学ディスク、CD−ROM、および磁気光学ディスクまたは電子指令を格納するのに適切な他のタイプの媒体/機械読み取り可能な媒体を含み得、しかしそれらに限定されない。
本明細書に説明された技術は、任意の特定のソフトウェア構成に限定されない。それらは、計算または処理環境において適応性を見つけ得る。本明細書に使用された用語「コンピュータ読み取り可能な媒体」または「機械読み取り可能な媒体」は、コンピュータによって実行のための一連の命令を格納しまたは符号化することが可能であり、コンピュータに本明細書に説明された方法のいずれかを行わせる任意の媒体を含むべきである。さらに、動作をとり、または結果を生じる1つの形または別の形(例えば、プログラム、手順、応用、モジュール、ユニット、論理等)においてソフトウェアの認識は、当分野において共通である。このような表現は、単に処理システムによるソフトウェアの実行が、プロセッサに結果を生成するための動作を行わせることを説明する簡略的方法である。
図13は、本発明の実施形態に従って標的デバイスを実装するために使用され得るデバイス1300を例示する。デバイス1300は、複数の論理アレイブロック(LAB)を含むフィールドプログラマブルゲートアレイ(FPGA)である。各LABは、複数の論理ブロック、キャリアチェーン、LAB制御信号、ルックアップテーブル(LUT)チェーン、およびレジスタチェーン接続ラインから形成され得る。論理ブロックは、ユーザー論理機能の効率的実装を提供する小さな論理ユニットである。論理ブロックは、組み合わせセルであり、各組み合わせセルは、単一の出力、およびレジスタを有する。本発明の一実施形態に従って、論理ブロックは、論理要素(LE)、例えば、Altera(登録商標)Corporationによって製造されたStratixデバイスまたはCycloneデバイスにおいて見つけられるそれら、または組み合わせ論理ブロック(CLB)、例えば、Xilinx Inc.によって製造されたVirtexデバイスにおいて見つけられるそれらに類似して動作し得る。この実施形態において、論理ブロックは、構成可能なレジスタを有する4つの入力LUTを含み得る。本発明の代替的な実施形態に従って、論理ブロックは、適合性のある論理モジュール(ALM)、例えば、Altera(登録商標)Corporationによって製造されたStratixデバイスにおいて見つけられるそれらに類似して動作し得る。LABは、デバイス1300にわたる行および列にグループ化される。LABの列が、1311〜1316として示される。論理ブロックは、追加または代替的な部品を含み得ることが認識されるべきである。
デバイス1300は、メモリブロックを含む。メモリブロックは、例えば、専用の真デュアルポート、簡単デュアルポート、またはさまざまなビットまでのメモリ、さまざまな周波数までの幅広さを有する単一のポートを提供するデュアルポートランダムアクセスメモリ(RAM)ブロックであり得る。メモリブロックは、選択されたLABの間においてデバイスにわたる列にグループ化され得、またはデバイス1300内に単独またはペアで配置され得る。メモリブロックの列が、1321〜1324として示される。
デバイス1300は、デジタル信号処理(DSP)ブロックを含む。DSPブロックは、加算また減算の特徴を有するさまざまな構成の掛算器を実装するために使用され得る。DSPブロックは、シフトレジスタ、乗算器、加算器、および累算器を含む。DSPブロックは、デバイス1300にわたる列にグループ化され得、1331として示される。
デバイス1300は、複数の入力/出力要素(IOE)1340を含む。各IOEは、IOピン(示されていない)デバイス1300上に与える。IOE1340は、デバイス1300の周囲の周りにLABの行および列の最後に配置される。各IOEは、双方向IOバッファーと、入力、出力、および出力可能な信号を登録するための複数のレジスタとを含み得る。
デバイス1300は、標的デバイス上の部品の間に信号をルーティングするために、ルーティングリソース、例えば、LABローカル相互接続ライン、列の相互接続ライン(「Hタイプ配線」)、および行の相互接続ライン(「Vタイプ」配線)(示されていない)を含み得る。
以上の明細書において、本発明の実施形態は、明細書の具体的代表的な実施形態を参照して説明されている。しかしながら、さまざまな修正および変更は、本発明の実施形態のより広い精神および範囲から逸脱することなしに明細書に加えられ得ることが考えられる。従って、明細書および図面は、制限的意味より例示的意味とみなされるべきである。
100 システム
110 トップレベルモジュール
A〜E モジュール

Claims (25)

  1. 標的デバイス上にシステムを設計するための方法であって、該方法は、
    該標的デバイス上のリソースを該システムの静的論理モジュールと部分再構成可能(PR)モジュールとに割り当てることと、
    該割り当てられたリソースと並列に、該標的デバイス上の該PRモジュールのうちの1つのインスタンスを設置およびルーティングすることのうちの1つを行うことと
    を含む、方法。
  2. 前記PRモジュールのうちの前記1つの各インスタンスは、該PRモジュールの異なる回路記述を含み、該異なる回路記述の各々は、同一の静的論理とインターフェースをとる、請求項1に記載の方法。
  3. 前記割り当てることは、ルーティングリソースをフロアプラン領域から、前記静的論理モジュールおよびPRモジュールの各々に割り当てることを含む、請求項1に記載の方法。
  4. 前記ルーティングすることは、PRモジュールの第1のインスタンスをルーティングするために第1の処理リソースを使用することと、該PRモジュールの第2のインスタンスをルーティングするために第2の処理リソースを使用することと並列に行うことを含む、請求項1に記載の方法。
  5. 前記PRモジュールをルーティングする前に、割り当てられた続くルーティングリソースを用いて、前記静的論理モジュールをルーティングすることをさらに含む、請求項1に記載の方法。
  6. 前記静的論理モジュールの使用されていないルーティングリソースを前記PRモジュールに割り当てることをさらに含む、請求項5に記載の方法。
  7. 使用されていないルーティングリソースを割り当てることは、
    前記PRモジュールのための前記標的デバイス上のフロアプラン領域を拡張することと、ルーティングリソースを該PRモジュールの対応するフロアプラン領域から、該PRモジュールの各々に割り当てることとを含む、請求項6に記載の方法。
  8. 前記拡張することは、各フロアプラン領域の水平境界エッジおよび該フロアプラン領域の各々の垂直境界エッジが、前記標的デバイスの境界または別のPRモジュールに対応する境界エッジに達するまで、該水平境界エッジを垂直方向に動かすことと、該垂直境界エッジを水平方向に動かすこととを含む、請求項7に記載の方法。
  9. 前記静的論理モジュールおよびPRモジュールは、回路のハードウェア記述言語を含む、請求項1に記載の方法。
  10. 標的デバイス上にシステムを設計する方法であって、該方法は、
    標的デバイス上に静的論理モジュールおよび部分再構成可能な(PR)モジュールをルーティングすることと、
    ルーティングリソースに対して競合する静的論理モジュールおよびPRモジュールに対して、競合する該ルーティングリソースを該ルーティングから仲裁することと、
    使用されていないルーティングリソースを、該ルーティングから、競合を有する静的論理モジュールおよびPRモジュールに割り当てることと、
    仲裁され、かつ割り当てられた該ルーティングリソースを用いて、競合を有する該静的論理モジュールおよびPRモジュールを再ルーティングすることと
    を含む、方法。
  11. 標的デバイス上にPRモジュールをルーティングすることは、PRモジュールのインスタンスを直列にルーティングすることを含む、請求項10に記載の方法。
  12. 前記標的デバイス上にPRモジュールをルーティングすることは、PRモジュールの第1のインスタンスを該PRモジュールの第2のインスタンスと並列にルーティングすることを含む、請求項10に記載の方法。
  13. 前記標的デバイス上に前記PRモジュールをルーティングすることは、他のルーティングリソースを選択することよりも、該PRモジュールの第2のインスタンスによって使用されるPRモジュールの第1のインスタンスのためのルーティングリソースを優先的に選択することを含む、請求項10に記載の方法。
  14. 前記静的論理モジュールおよび前記PRモジュールをルーティングすることは、他の静的モジュールまたはPRモジュールによって使用されるルーティングリソースを選択することよりも、該他の静的論理モジュールおよびPRモジュールによって使用されていない、該静的論理モジュールおよび該PRモジュールのためのルーティングリソースを優先的に選択することを含む、請求項10に記載の方法。
  15. 競合するルーティングリソースを仲裁することは、タイミング制約またはルーティング制約のうちの1つに応じて、競合状態のルーティングリソースをモジュールに割り当てることを含む、請求項10に記載の方法。
  16. 前記PRモジュールの各インスタンスは、該PRモジュールの異なる回路記述を含み、該異なる回路記述の各々は、同一の静的論理部分とインターフェースをとる、請求項10に記載の方法。
  17. 非一時的なコンピュータ読み取り可能な媒体であって、該非一時的なコンピュータ読み取り可能な媒体は、一連の命令が格納されており、該一連の命令は、
    標的デバイス上に静的論理モジュールをルーティングすることと、
    該標的デバイス上の部分再構成可能(PR)モジュールのインスタンスを並列にルーティングすることと、
    該静的論理モジュールおよび該PRモジュールが不当にルーティングされていることを決定するのに応じて、該静的論理モジュールおよび該PRモジュールを再ルーティングすることと
    を含む方法をコンピュータに方法を実行させる、非一時的なコンピュータ読み取り可能な媒体。
  18. 前記標的デバイス上に前記PRモジュールをルーティングすることは、他のルーティングリソースを選択することよりも、該PRモジュールの第2のインスタンスによって使用される該PRモジュールの第1のインスタンスのためのルーティングリソースを選択することを含む、請求項17に記載の非一時的なコンピュータ読み取り可能な媒体。
  19. 前記静的論理モジュールおよび前記PRモジュールをルーティングすることは、他の静的モジュールまたはPRモジュールによって使用されるルーティングリソースを選択することよりも、該他の静的論理モジュールおよびPRモジュールによって使用されていない、該静的論理モジュールおよび該PRモジュールのためのルーティングリソースを選択することを含む、請求項17に記載の非一時的なコンピュータ読み取り可能な媒体。
  20. 前記PRモジュールの前記インスタンスの各々は、該PRモジュールの異なる回路記述を含み、該異なる回路記述の各々は、同一の静的論理部分とインターフェースをとる、請求項17に記載の非一時的なコンピュータ読み取り可能な媒体。
  21. 前記再ルーティングすることは、前記静的論理モジュールを並列にルーティングするための第1の処理リソースを使用することと、前記PRモジュールのインスタンスをルーティングするための第2の処理リソースを使用することとを含む、請求項17に記載の非一時的なコンピュータ読み取り可能な媒体。
  22. 前記静的論理モジュールおよび前記PRモジュールが不当に設置されていることを決定するのに応じて、該静的論理モジュールおよび該PRモジュールを並列に再設置することを含む、請求項17に記載の非一時的なコンピュータ読み取り可能な媒体。
  23. 前記標的デバイス上にPRモジュールを設置する前に、静的論理モジュールを設置することをさらに含む、請求項10に記載の方法。
  24. 前記PRモジュールが、並列に設置される、請求項23に記載の方法。
  25. 標的デバイス上に静的論理モジュールを設置することと、
    該標的デバイス上にPRモジュールのインスタンスを並列に設置することと、
    設置における不当性を決定するのに応じて、該静的論理モジュールおよび該PRモジュールを並列に設置することと
    をさらに含む、請求項17に記載の非一時的なコンピュータ読み取り可能な媒体。
JP2012037429A 2011-03-03 2012-02-23 部分再構成モジュールを設置およびルーティングするための方法および装置 Expired - Fee Related JP5937845B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/040,255 US8671377B2 (en) 2011-03-03 2011-03-03 Method and apparatus for placement and routing of partial reconfiguration modules
US13/040,255 2011-03-03

Publications (2)

Publication Number Publication Date
JP2012185818A true JP2012185818A (ja) 2012-09-27
JP5937845B2 JP5937845B2 (ja) 2016-06-22

Family

ID=45656465

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012037429A Expired - Fee Related JP5937845B2 (ja) 2011-03-03 2012-02-23 部分再構成モジュールを設置およびルーティングするための方法および装置

Country Status (4)

Country Link
US (3) US8671377B2 (ja)
EP (1) EP2495676A1 (ja)
JP (1) JP5937845B2 (ja)
CN (1) CN102708221B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021530809A (ja) * 2018-07-20 2021-11-11 ザイリンクス インコーポレイテッドXilinx Incorporated プログラマブル集積回路のための階層型部分的再構成

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8671377B2 (en) 2011-03-03 2014-03-11 Altera Corporation Method and apparatus for placement and routing of partial reconfiguration modules
US8476926B1 (en) * 2012-02-08 2013-07-02 Altera Corporation Method and apparatus for implementing periphery devices on a programmable circuit using partial reconfiguration
US8677298B1 (en) 2013-01-04 2014-03-18 Altera Corporation Programmable device configuration methods adapted to account for retiming
US8645885B1 (en) * 2013-01-04 2014-02-04 Altera Corporation Specification of multithreading in programmable device configuration
US8896344B1 (en) * 2013-01-04 2014-11-25 Altera Corporation Heterogeneous programmable device and configuration software adapted therefor
US8713496B1 (en) 2013-01-04 2014-04-29 Altera Corporation Specification of latency in programmable device configuration
US8863059B1 (en) 2013-06-28 2014-10-14 Altera Corporation Integrated circuit device configuration methods adapted to account for retiming
US9384311B1 (en) 2014-07-25 2016-07-05 Altera Corporation Programmable device configuration methods incorporating retiming
JPWO2017188416A1 (ja) * 2016-04-28 2019-03-07 Necソリューションイノベータ株式会社 回路装置、回路書き換え方法、及びプログラム
US10169513B2 (en) * 2016-05-06 2019-01-01 Baidu Usa Llc Method and system for designing FPGA based on hardware requirements defined in source code
US10394990B1 (en) * 2016-09-27 2019-08-27 Altera Corporation Initial condition support for partial reconfiguration
US10824786B1 (en) * 2016-10-05 2020-11-03 Xilinx, Inc. Extend routing range for partial reconfiguration
US10558777B1 (en) * 2017-11-22 2020-02-11 Xilinx, Inc. Method of enabling a partial reconfiguration in an integrated circuit device
CN110162378B (zh) * 2018-02-13 2023-12-29 华为技术有限公司 一种资源调度的方法、装置、设备及系统
US10936525B2 (en) 2019-05-10 2021-03-02 Achronix Semiconductor Corporation Flexible routing of network data within a programmable integrated circuit
US10970248B2 (en) 2019-05-10 2021-04-06 Achronix Semiconductor Corporation Processing of ethernet packets at a programmable integrated circuit
US10707875B1 (en) * 2019-05-10 2020-07-07 Achronix Semiconductor Corporation Reconfigurable programmable integrated circuit with on-chip network

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1117524A (ja) * 1997-06-20 1999-01-22 Fuji Xerox Co Ltd プログラマブル論理回路システムおよびプログラマブル論理回路装置の再構成方法
US6080204A (en) * 1997-10-27 2000-06-27 Altera Corporation Method and apparatus for contemporaneously compiling an electronic circuit design by contemporaneously bipartitioning the electronic circuit design using parallel processing
US7600210B1 (en) * 2005-09-28 2009-10-06 Xilinx, Inc. Method and apparatus for modular circuit design for a programmable logic device

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5925920A (en) * 1996-06-12 1999-07-20 Quicklogic Corporation Techniques and circuits for high yield improvements in programmable devices using redundant routing resources
US6466050B1 (en) * 2001-06-27 2002-10-15 Cypress Semiconductor Corporation Method to improve routability in programmable logic devices via prioritized augmented flows
US7386826B1 (en) * 2003-06-24 2008-06-10 Xilinx, Inc. Using redundant routing to reduce susceptibility to single event upsets in PLD designs
US7640526B1 (en) * 2005-09-12 2009-12-29 Xilinx, Inc. Modular partial reconfiguration
US7856545B2 (en) 2006-07-28 2010-12-21 Drc Computer Corporation FPGA co-processor for accelerated computation
US7541833B1 (en) * 2007-10-09 2009-06-02 Xilinx, Inc. Validating partial reconfiguration of an integrated circuit
CN100590977C (zh) * 2007-11-30 2010-02-17 电子科技大学 一种fpga
US8095906B2 (en) * 2008-12-29 2012-01-10 Altera Corporation Method and apparatus for performing parallel routing using a multi-threaded routing procedure
US8312409B1 (en) * 2010-03-05 2012-11-13 Xilinx, Inc. Multi-threaded deterministic router
US8386983B1 (en) * 2010-08-10 2013-02-26 Xilinx, Inc. Parallel signal routing
US8671377B2 (en) 2011-03-03 2014-03-11 Altera Corporation Method and apparatus for placement and routing of partial reconfiguration modules

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1117524A (ja) * 1997-06-20 1999-01-22 Fuji Xerox Co Ltd プログラマブル論理回路システムおよびプログラマブル論理回路装置の再構成方法
US6080204A (en) * 1997-10-27 2000-06-27 Altera Corporation Method and apparatus for contemporaneously compiling an electronic circuit design by contemporaneously bipartitioning the electronic circuit design using parallel processing
US7600210B1 (en) * 2005-09-28 2009-10-06 Xilinx, Inc. Method and apparatus for modular circuit design for a programmable logic device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021530809A (ja) * 2018-07-20 2021-11-11 ザイリンクス インコーポレイテッドXilinx Incorporated プログラマブル集積回路のための階層型部分的再構成
JP7377852B2 (ja) 2018-07-20 2023-11-10 ザイリンクス インコーポレイテッド プログラマブル集積回路のための階層型部分的再構成

Also Published As

Publication number Publication date
CN102708221B (zh) 2018-01-19
US20120227026A1 (en) 2012-09-06
US9361421B2 (en) 2016-06-07
US20160267212A1 (en) 2016-09-15
EP2495676A1 (en) 2012-09-05
US10242146B2 (en) 2019-03-26
US8671377B2 (en) 2014-03-11
JP5937845B2 (ja) 2016-06-22
US20140237441A1 (en) 2014-08-21
CN102708221A (zh) 2012-10-03

Similar Documents

Publication Publication Date Title
JP5937845B2 (ja) 部分再構成モジュールを設置およびルーティングするための方法および装置
US11093672B2 (en) Method and apparatus for performing fast incremental physical design optimization
US10628622B1 (en) Stream FIFO insertion in a compilation flow for a heterogeneous multi-core architecture
US8719750B1 (en) Placement and routing of a circuit design
US9852255B2 (en) Method and apparatus for implementing periphery devices on a programmable circuit using partial reconfiguration
US10339243B2 (en) Method and apparatus for automatic hierarchical design partitioning
US11138019B1 (en) Routing in a compilation flow for a heterogeneous multi-core architecture
Otero et al. Dreams: A tool for the design of dynamically reconfigurable embedded and modular systems
US10860766B1 (en) Compilation flow for a heterogeneous multi-core architecture
US10102172B1 (en) Method and apparatus for performing a single pass compilation for systems with dynamically reconfigurable logic blocks
US8522185B1 (en) Method for placement and routing of a circuit design
JP5779237B2 (ja) 合成中に非同期および同期リセット解除を実行するための方法および装置
US9230047B1 (en) Method and apparatus for partitioning a synthesis netlist for compile time and quality of results improvement
US10872057B1 (en) Partitioning in a compiler flow for a heterogeneous multi-core architecture
Grigore et al. HLS enabled partially reconfigurable module implementation
US9195793B1 (en) Method and apparatus for relocating design modules while preserving timing closure
Montone et al. Floorplacement for Partial Reconfigurable FPGA‐Based Systems
US8201114B1 (en) Method and apparatus for performing look up table unpacking and repacking for resynthesis
US20190251220A1 (en) Method and apparatus for performing incremental compilation using structural netlist comparison
Stüllein et al. Bitfile preservation-generation of reusable out of context modules
Ullah SystemC Model of Hierarchical Network-on-Chip for System-Level On-Chip Multi-Core Platform

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160307

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160425

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160513

R150 Certificate of patent or registration of utility model

Ref document number: 5937845

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees