JP2001504958A - ロジックデバイスのアレイを構成するための方法およびシステム - Google Patents

ロジックデバイスのアレイを構成するための方法およびシステム

Info

Publication number
JP2001504958A
JP2001504958A JP52050198A JP52050198A JP2001504958A JP 2001504958 A JP2001504958 A JP 2001504958A JP 52050198 A JP52050198 A JP 52050198A JP 52050198 A JP52050198 A JP 52050198A JP 2001504958 A JP2001504958 A JP 2001504958A
Authority
JP
Japan
Prior art keywords
logic
cell
design
cells
fpga
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.)
Ceased
Application number
JP52050198A
Other languages
English (en)
Inventor
メイソン,マーティン・ティ
エバンズ,スコット・シィ
アラネイク,サンディープ・エス
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.)
Atmel Corp
Original Assignee
Atmel 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 Atmel Corp filed Critical Atmel Corp
Publication of JP2001504958A publication Critical patent/JP2001504958A/ja
Ceased legal-status Critical Current

Links

Classifications

    • 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]

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)
  • Stored Programmes (AREA)
  • Logic Circuits (AREA)

Abstract

(57)【要約】 ゲートアレイの部分的再構成に関するシステムおよび方法は、ロジック回路の配置および経路付け(312)によって設計データベースを生成する(314)ステップを含む。この設計データベースは、配置および経路付け動作によって作り出されたロジックセルの構成を修正する(322)ためにアクセスされる。この修正に基づいて、修正されたロジックセルを実現するビット列のみを含む部分構成ビットストリームが作り出される(324)。部分構成ビットストリームはゲートアレイにダウンロードされ(326)、これによってゲートアレイの部分構成を実現する。代替的な実施例では、この発明に従ったシステムは、アプリケーションプログラム(602)がプログラマブルゲートアレイを含むシステム中で実行してオンザフライのアレイを再構成することを可能にするソフトウェアユーティリティ(604)を含む。このユーティリティは実時間中に検出された外部状況に応答して設計を修正するルーチンを含む。このアプローチにより、1組の予め定められた代替する設計を提供する必要がなくなり、アプリケーションはそれ自身で判断を下すことができるようになる。

Description

【発明の詳細な説明】 ロジックデバイスのアレイを構成するための方法およびシステム 技術分野 この発明は一般にプログラマブルロジックデバイスに関し、より具体的にはフ ィールドプログラマブルゲートアレイの構成に関する。 背景技術 集積回路技術の初期には、シフトレジスタ、マルチプレクサ、加算器などの論 理回路は、デジタルICから構築されていた。これらの小規模集積回路(SSI )ICは通常、少数(たとえば4から8)の、ANDゲート、ORゲート、フリ ップフロップ、ラッチなどの、数ダース程度のトランジスタを要するロジックゲ ートを含んでいた。技術が発達するにつれて、より多数のトランジスタをIC中 に組入れられるようになった。今日では、半導体製造者は何百万ものトランジス タを単一のダイ上に取付けることができ、この結果現代のマイクロプロセッサの ような非常に高性能のチップが生じる。 これと同等に高性能であるのが、これらのVLSI(超大規模集積)およびU LSI(極超大規模集積)チップが中に組入れられるシステムである。このよう なシステムは通常多数のカスタムロジックチップを採用し、システムを支援する さまざまなロジック機能を提供する。ゲートアレイが開発されたので、製造者は カスタマのロジック設計を迅速に実現できるようになつた。ロジックゲートのア レイからなるこれらのデバイスは標準の方法を用いて製造された。デバイスのカ スタム化は製造の最終段階で行なわれ、ここでメタライゼーション層がロジック ゲートに接続されて所望のロジック機能を実現していた。 プログラマブルデバイス中に生成されたこれらのゲートアレイは、少数のデバ イスしか必要としない設計者、またはロジック設計を完成させてはいないがテス トのために小さなサンプルを必要とするかもしれない設計者にとっては非常に柔 軟である。別のタイプのプログラマブルロジックデバイスにはヒューズが採用さ れ、デバイス内のロジックゲート間を相互接続する。これらのヒューズは溶断さ れて接続を断つか、またはいわゆるアンチヒューズの場合は接続を形成した。し たがってこのようなデバイスは1回しか用いることができず、1組のロジック機 能しか記憶できなかった。 プログラマブルロジックデバイスが継続的に発展した結果、再プログラマブル 相互接続が発達し、さらにより重要なことには、構成可能なロジックセルが発達 した。この名前が意味するように、構成可能なロジックセルによって、設計者が 多数の基本ロジックゲートまたはより高レベルのロジック機能のいずれか1つと して機能するようにセルをプログラムすることが可能になった。現在の製造技術 は、何千もの構成可能なロジックセルおよびそれに付随する相互接続を有し、か つフィールドプログラマブルゲートアレイ(FPGA)として知られている高密 度のデバイスの製造を可能にする。これらの高密度のデバイスを利用できるので 、設計者はより多くの複雑なロジック機能を採用することが可能になる。従来の ものと同様、FPGAはプログラマブル相互接続を含む。さらに、この相互接続 は再プログラムでき、FPGAの有用性はさらに増す。 しかしながら、これらの再プログラマブルFPGAを再構成するには、典型的 にはデバイス全体を再構成する必要が生じる。これらのデバイスのさらなる発展 段階は、本発明の譲受人であるアトメル・コーポレイションによって製造された FPGAに代表される。これらのデバイスは動的に再構成可能なFPGAとして 公知であり、ロジックアレイの選択された部分のみを再構成できるようになって いる。この方法では、アレイの選択された部分のみが再構成可能であり、デバイ ス全体をプログラムする必要なしに、FPGAを変更することができる。 図1を参照すると、典型的なFPGA100は、まとめてFPGAのリソース と呼ばれる、複数の構成可能なロジックセル130と、構成可能なI/Oブロッ ク110と、相互接続120、122とを含む。相互接続120、122は個別 の相互接続線のグリッドとして表わされるが、各「線」は実際には図3Bに例を 示すように1組の相互接続線である。各ロジックセル130およびI/Oブロッ ク110は、相互接続120、122に選択的に結合され得るデータ線140、 142を含む。 典型的な設計サイクルは、1つ以上のロジック回路の設計ではじまり、これが 後にFPGA内で実現される。ロジックの設計は、ロジックゲートとロジックゲ ート間の相互接続とを含む。しかしながら、デジタルフィルタのような特定の設 計は「定数」すなわち1および0の列の使用を組入れてそれらの動作を決定する 。この発明の説明をするために、このような定数は設計の一部と見なし、またロ ジックゲートと呼ぶことにする。 たとえば、図2は単純なロジック設計を表わす。このロジック設計の各素子は インスタンス名によって識別される。したがって、図2のANDゲートおよびO RゲートはG1−G3と称される。図3Aはロジック設計がFPGA100’内 でどのように現われるかを表わす。図2に示すゲートG1−G3および相互接続 の各々は図3Aに示すように選択されたロジックセルおよび相互接続にマップさ れる。同様に、入力A−Dおよび出力OUT(図2)は選択されたI/Oブロッ クにマップされる。したがって、相互接続120a−120cおよび122a− 122c(強調して図示する)は、ロジックセルG1−G3とI/Oブロック1 10a−110eとを接続する。図3Aの構成の拡大された部分が図3Bに表わ され、これはさまざまなロジックセル、相互接続、およびI/Oブロック間の特 定の相互接続を表わしている。図面の設計は定数の使用を示してはいないが、現 代のFPGA内のロジックセルがロジック「1」またはロジック「0」を出力す るように構成され、またロジックセルのグループが必要に応じて1つ以上の1お よび0の列を生成するように構成され得ることは公知である。 次に、図3Aに示すもののような、図2の設計をFPGAに移すステップを説 明する。今日の設計の多くは機能性においてかなり複雑な傾向があるので、設計 処理を容易にするために計算機援用設計(CAD)ツールが通常採用される。し たがって図4では、たとえばCADツールを使用して、設計フロー200はロジ ック回路の初期設計を入力するステップ210で開始する。 次は、ロジック回路のロジックゲートの配置および経路付け、ステップ212 である。配置および経路付けのステップの結果、設計データベースがステップ2 14で生成される。設計データベースは選択されたリソースの場所およびそれら の経路付けまたはロジック構成を含む、ロジック回路の実現にかかわるとされる FPGAのロジックセル、I/Oブロック、および相互接続(すなわちリソース )を特定する。図1は、ロジックセルの場所を識別するのに用いられる多数の 座標系のうちの1つを表わす。図1に示す慣例では、セルは左から右の順序で下 から上へ番号を付けられ、一番左下のセル(0,0)で始まり、一番右上のセル (3,3)で終わる。典型的には、設計データベースは、図2の設計段階中にロ ジック回路の素子に割当てられたインスタンス名をさらに含む。 設計データベースに含まれる情報から、通常ビットストリームコンパイラと呼 ばれるツールによって、構成ビットストリームが生成される(ステップ216) 。このビットストリームコンパイラは設計データベース内に記憶された場所およ び構成情報を得て、FPGA内にさまざまなリソースを構成する定義ビット列を 作り出す。物理的レベルでは、定義ビット列はFPGA内のトランジスタのオン /オフ状態(スイッチ)を表わし、これは実際に各ロジックセルおよび、I/O ブロックの構成と、ロジックセルおよびI/Oブロック間の相互接続とを制御す る。 この時点で、構成ビットストリームを、ロジックアレイにダウンロードしてデ バイスを構成する(ステップ218a)か、またはディスク上に保存する(ステ ップ218b)かのいずれであってもよい。これらの選択肢は図4に点線で示さ れる。 時々起こるように、たとえ設計がデバッグされて意図したように動作するとし ても、初期設計の変更が望ましいことがある。たとえば、新しい要求があれば、 機能的仕様の変更が起こり、結果的に初期設計の変更が必要となるかもしれない 。従来技術を用いると、初期設計の最終バージョンの修正(ステップ220)は 結果的に前のステップの繰返しとなる。したがって、設計者は初期設計の最終バ ージョンにCADツールを用いてアクセスし、その設計に所望の変更をする。第 2の配置および経路付けステップはステップ222で実行され、ここから第2の 設計データベースが生成される(ステップ224)。この後第2の構成ビットス トリームが新規な設計データベースに基づいてビットストリームコンパイラによ って作り出される(ステップ226)。 第1の構成ビットストリームと同様、第2の構成ビットストリームをFPGA にダウンロードしてもしなくてもよい。ダウンロードが所望される場合は2つの 選択肢が可能である。ビットストリームは全体をFPGAにダウンロードしてア レイ全体に修正後の設計を含むように再構成することができる。これに代えて、 FPGAが動的に再構成可能、つまりデバイスが部分的に再構成できる場合は、 第2の構成ビットストリームのうち設計の変更に対応する部分のみをダウンロー ドすることができる。これはまず第1の構成ビットストリームと第2の構成ビッ トストリームとの相違をステップ228で判断し、部分(再構成)ビットストリ ームを生成することによって達成される。この後この部分ビットストリームが動 的に再構成可能なFPGAにダウンロードされ(ステップ230)、これによっ てFPGAの部分的な再構成を実現し、ここでは修正後の設計にかかわるロジッ クセル、相互接続、およびI/Oのみが再プログラムされる。最後に、このサイ クルは設計の機能的要求における変更が起こるたびに、設計をさらに修正するた めに繰返すことができる(ステップ232)。 ある設計のロジックゲートの配置および経路付けは多くの計算を要するアクテ ィビティである。設計者は、高密度のFPGAが利用可能であることから、設計 をますます複雑にする傾向があるので、配置および経路付け動作が著しく増大す るおそれがある。図4に表わした従来技術のアプローチでは、配置および経路付 けの計算のためだけに費やした時間は、設計サイクルを反復するたびに完全な配 置および経路付け動作を要するであろうことを考慮すると、驚くべきレベルに達 するかもしれない。 従来技術のアプローチの別の局面には、修正された設計が結果的に前の設計と 異なる配置および経路付けの構成を生じる可能性がある。これは、前の設計が特 定のクリティカルタイミング動作を提供するように精密に調整されていたとすれ ば、問題となる。完全な配置および経路付け動作を通じて処理された次の設計は 、異なる全長の異なるロジックゲートの配置を生じるおそれがあり、したがって 回路のタイミングに悪影響が及ぶ。実時間のアプリケーションがかかわっている 場合は、この状況は許容できない。 完了しかつ完全にデバッグされたロジック設計の再設計にかかるターンアラウ ンド時間に関して、従来技術を改良する方法が必要とされる。また、従来の設計 のうち設計の修正にかかわらない部分は影響されずに残るような発展した方法を 有することも望ましい。 ここまでは、設計者の工学実験室の環境におけるロジック回路の設計を中心に 述べてきた。しかしながら、FPGAのフィールドアプリケーションは単一の静 的な設計には適さない可能性がある。FPGAは実際の動作状況下ではフィール ドで再構成され得るが、新規な構成は典型的にはEPROMのような不揮発性デ バイス内に記憶された完全な設計からなる。構成ビットストリームはEPROM から読出され、FPGA内にダウンロードされる。したがって、利用可能な構成 の組は、EPROMの記憶容量に制限される。適応フィルタリングのようなアプ リケーションでは、フィルタされているデータの周波数および位相特性のような 基準、すなわち通常予測不可能な状況に基づいて、フィルタ応答を実行時に変更 できることが強く望まれる。このような場合には、フィルタパラメータのような 新規な構成を演繹的に特定することは不可能である。 さらにまた、デバイスが動作している環境に応答してオンザフライのFPGA を構成する能力も必要とされる。さらに、適応フィルタの場合にそうであるよう に、再構成が必要なのはFPGAの一部分のみなので、オンザフライの部分的な 再構成能力を有することが望ましい。 発明の概要 この発明に従うと、動的に再構成可能なFPGAを構成する方法は、初期ロジ ック設計を入力するステップで開始する。この設計で配置および経路付けが実行 され、その結果FPGA内のロジックセルおよび相互接続に対する場所が割当ら れて設計が実現される。設計データベースは配置および経路付け動作の結果生じ たものである。次に、設計データベース上で動作するビットストリームコンパイ ラが構成ビットストリームを生成する。このビットストリームはFPGAにダウ ンロードされてデバイスを構成するか、または単に記憶媒体上に保存されるかの いずれであってもよい。 初期設計の最終作業バージョンへの変更は、対応の設計データベースに基づい てなされる。修正された設計データベースは保存され、第2の構成ビットストリ ームが修正された設計データベースから生成される。この発明に従うと、第2の 構成ビットストリームは、修正後のロジック設計に対応するロジックセル、I/ Oブロック、および相互接続についての定義ビット列のみを含む。この第2のビ ットストリームは部分構成ビットストリームと称される。 設計データベースに直接アクセスして設計を変更することによって、(直接ア クセスしなければ必要である)時間のかかる配置および経路付けの訃算が完全に 回避される。これは、たとえばFPGAに組入れるシステムの機能的要求の変更 によって、ロジック設計の最終作業バージョンを修正しなければならないときに 特に有用かつ望ましい特徴である。全体の設計のごく局所的な部分のみに関わる 、設計変更というのはもともと性質上増大しがちであることがきわめて多い。そ の他、設計者がロジック設計の最終作業バージョンのさまざまなものを実験した い場合もあるだろう。この発明の構成方法論は、設計の変更を実施するためのタ ーンアラウンド時間が非常に短くて済み、増加する変更および「こうしたらどう なるか(“what-if”)」の実験が実行可能かつ適切であるので、企画の進行お よび製品の発売スケジュールに不利に影響を与えることはない。さらに、配置お よび経路付け動作はバイパスされるので、設計のうち設計者によって修正されて いないいかなるタイミングクリティカルな部分も影響されず、また公知のタイミ ング性能を確実に行なう。より一般的には、設計の修正されていないどの部分も 期待通りの動作を継続するはずである。したがってこの発明の方法では、結果的 に生じるFPGAのアプリケーションは構築によって正確であり、従って機能的 に正確であると保証される。 この発明の好ましい一実施例では、設計データベースはグラフィカルインター フェイスを通じてユーザに提示される。このインターフェイスにより、ユーザは 設計データベースの一部分を特定して表示することができる。設計データベース は、ロジックセル、I/Oブロック、および相互接続を、それらのインスタンス 名とFPGA内の場所とによって識別する。ユーザには、名前、場所、および定 数論理値を出力するために構成されたものを含むロジックセルの現在の構成が提 示される。ロジックセル間の相互接続もまた示される。 設計データベースの修正は、図または文字によって表わされる論理ゲートのリ ストまたはメニューおよび相互接続の選択肢から選択することによって行なわれ る。定数の修正は、新規な定数値を文字で入力するか、または、開(ロジック「 0」)もしくは閉(ロジック「1」)にできる1つ以上のスイッチを図でアイ コン表示したものを操作することによってなされる。 この発明の別の実施例では、FPGAの実時間再構成のためのシステムは、デ バイスへのハードウェアインターフェイスと、新規な構成データをダウンロード する目的でデバイスにアクセスソフトウェアユーティリティとを含む。ソフトウ ェアユーティリティは部分的な構成ビットストリームを生成するための手段を含 み、これはあるアプリケーションプログラムが実行時に検出された動作環境での 特定の状況に応答してFPGAを構成することを可能にする。ハードウェアイン ターフェイスおよびソフトウェアユーティリティはデバイス使用中にFPGAに アクセスすることを許可し、これがデバイスの一部分を再構成することを可能に する。 図面の簡単な説明 図1は、典型的なFPGAの構築を表わす。 図2は、ロジック回路の一例である。 図3Aおよび3Bは、図1のFPGA内の図2のロジック回路の実現を表わす 。 図4は、FPGAの設計において従来採用されているステップの概略である。 図5は、この発明の設計方法論の一実施例の概略である。 図6は、この発明に従ったFPGAを構成するためのシステムのブロック図で ある。 図7A−7Cは、デジタルフィルタの設計を表わす。 図8Aおよび8Bは、この発明のユーザインターフェイスの画面表示の見本で ある。 図9A−9Dは、ROMに基づいたルックアップテーブルを用いた加算器回路 および減算器回路の実現を表わす。 図10Aおよび10Bは、この発明のユーザインターフェイスの画面表示の見 本を表わす。 図11は、実時間FPGA再構成のためのシステムを表わす。 発明を実施するための最良の様態 図5を参照すると、この発明の一実施例に従った構成方法論300は、初期設 計を作り出すステップ310と、配置および経路付け動作を実行して第1の設計 データベースを得るステップ312および314とを含む。その後、ビットスト リームコンパイラは構成ビットストリームを作り出し(ステップ316)、これ はFPGAにダウンロードされてデバイスを構成する(ステップ318a)こと ができる。これに代えて、構成ビットストリームは単に記憶デバイス上に記憶さ れる(ステップ318b)こともできる。構成ビットストリームは複数の定義ビ ット列を含み、これはFPGA内でリソースがどのように構成されるかを特定す る。 初期ロジック設計の最終作業バージョンを変更する必要がある場合は、設計の 修正は設計データベースに直接行なわれる。その後引続き図5に表わす方法30 0で、設計データベースの一部が設計者に表示される(ステップ320)。設計 者は設計データベースのうち修正が必要な部分を選択し、変更を入力する(ステ ップ322)。入力された修正に基づいて、部分構成ビットストリーム(再構成 ビットストリームとも呼ばれる)が生成され、これは修正に対応する定義ビット 列のみからなる。この部分ビットストリームはこの後ダウンロードされる(ステ ップ326)か、または記憶媒体に保存され得る。 動的に構成可能なFPGAを構成するためのシステムは、図5で概要を示した 方法を具体化したもので、図6に表わされる。システム400はデータ記憶部4 20および種々のモジュール402−420を含む。CADツール、略式キャプ チャプログラムなどのような設計エントリモジュール402を用いて初期設計4 20aが作られ、かつディスク420上に記憶される。配置および経路付けモジ ュール404は初期設計420aを用いて設計データベース420bを作り出し 、これもまたディスク上に記憶される。ビットストリームコンパイラ406は構 成ビットストリーム420cを生成し、ダウンロードモジュール408が構成ビ ットストリームをFPGA150にダウンロードする。 初期ロジック設計の最終作業バージョンに対する修正は、グラフィカルユーザ インターフェイス(GUI)モジュール410を通じて設計者によって入力され る。GUIは設計者によって選択された設計データベースの一部を設計データベ ース420b中読出し、かつ表示する。GUIは設計データベースに対する修正 を受入れ、入力された修正にのみ基づいた部分ビットストリームを作り出す。G UIはビットストリームコンパイラの機能性を組入れ、部分ビットストリームを 生成する。部分ビットストリーム420dはこの後ディスク上に記憶され、さら にその後ダウンロードモジュール408を通じてFPGAにダウンロードされる 。これに代えて、GUIは部分ビットストリームをダウンロードモジュール40 8に直接伝えることもできる。この時点で注目すべきことは、FPGAへの即時 ダウンロードが必要でない場合、構成(および再構成)ビットストリームを記憶 するために代替的な記憶媒体を用いることができるという点である。たとえば、 構成(および再構成)ビットストリームをEEPROMなどに後の分配に備えて ダウンロードすることが望まれるかもしれない。 図6で表わした方法論を説明するために、図7Aに示すもののような適応デジ タルフィルタを考える。このフィルタ設計500は遅延レジスタR1−R7、乗 算器M1−M8、および加算器A1−A7が直列にカスケード接続されたものか らなる。データの幅は8ビット(1バイト)である。1組のフィルタ係数C0− C7は、乗法演算子の被乗数としての役割を果たす。データの各バイトがシフト インし、レジスタを通じて伝搬されるにつれて、マルチプレクサは係数とデータ との間に積項を形成する。この積項はこの後加算器A1−A7によって加算され る。 ロジック設計内のフィルタ設計500のような素子の各々は設計者によって独 創的に割当てられたインスタンス名を有するということを想起されたい。したが って、図7Aを参照して、レジスタはR1−R7と名付けられ、マルチプレクサ はM1−M8と名付けられ、さらに加算器はA1−A7というインスタンス名を 有する。インスタンス名はまた、係数C0−C7に割当てられている。具体的には 、係数を含むビットの各々は名前を有する。これは、図7Cに示す係数C0の拡 大図により明確に表わされる。この係数ビット数は8であり、このビットはC0 _0からC0_7と名付けられる。図7Aに戻って、素子R1−R7、M1−M 8、およびA1−A7の間の相互接続もまた名付けられるのは言うまでもない。 しかしながら、これらの相互接続のインスタンス名は図の混乱を避けるために省 略さ れている。 フィルタ設計500の配置および経路付けは設計データベースを生じ、インス タンス名によって、レジスタおよび算術演算子の各々、ならびにこれらの機能を 実現するように選択されるロジックセルの場所および構成を特定する。同様の方 法で、設計データベースは係数C0−C7を含むビットのインスタンス名の各々、 それらに対応するロジックセルの場所、およびロジックセルがロジック「0」ま たはロジック「1」を生成するように構成されるか否かをリストする。設計デー タベース中に現われるロジックセルは、図1に示すもののようなFPGA内の座 標系によって識別される。 図7Bは図7Aのデジタルフィルタの修正後の設計500’を表わし、これに よって異なる組の係数C0’−C7’が特定されている。この発明の方法に従って このような修正をしたいと望む設計者は、初期設計500に基づいて作り出され た第1の設計データベースにアクセスすることから始める。これはグラフィカル ユーザインターフェイス(GUI)を用いて最もよく達成される。ただし、テキ ストベースのインターフェイスも同じ程度効果的ではあるが、おそらく使用する のがより難しく効率が悪いとされる。 一実施例では、GUIはロジック設計中で定義されたロジック定数を編集する ためのモードを有する。たとえば、図8Aの画面表示は設計500内の定数C0 −C7の各々を表示する。カラム「インスタンス名(Instance Name)」の下には、 係数C0−C7の各々を含むビットの名前がある。各ビットはロジックセルによっ て実現され、一定のロジックレベルを出力するように構成される。各ロジックセ ルが対応のインスタンス名を有することを想起されたい。図8Aの場合のように 、セルがある範囲で識別されると、その範囲内の最初および最後のセルのインス タンス名が表示される。「場所(Location)」カラムの下には、対応のロジックセ ルのFPGA内の場所がある。例示の目的で、使用されている座標のナンバリン グ規約が図1に示す慣例に従うと仮定する。したがって、図8Aに従うと、係数 C0を含むロジックセルはFPGA内の行10のカラム7−14に位置し、係数 C1のセルは行12のカラム7−14に位置し、以下同様である。「既存の構成 (Existing Conf)」のカラムはロジックセルによって生成されている現在のロ ジック値を表示する。たとえば、係数C0を含むカラム7、8、9、10、11 、12、13および14の8つのロジックセルは、それぞれロジック「1」、「 0」、「1」、「0」、「1」、「0」、「1」、および「1」を出力するよう に現在構成されて示される。「新規な構成(New Conf)」カラムは入力フィール ドからなり、ユーザが新規なロジック値をビットの列として入力するのを許可す る。列中の各ビットは1対1の関係で列によって表わされた定数セルと対応する 。 設計データベースは図8Aに示す表示を生成するのに必要な情報のすべてを含 むので、GUIは単に設計データベースをサーチし、一定のロジックレベルを生 成するように構成されているそれらのロジックセルを識別し、かつそれらのイン スタンス名、セルの場所、および現在の構成情報にアクセスする。設計データベ ースにアクセスし、図8Aのような表示を生成するための特定のソフトウェアの 実現例は、何らかの所与の設計データベースのフォーマットに用いられる精密な データ構造によって変化すると思われる。このような実現例の詳細は通常の技術 を有するコンピュータプログラマーの能力および範囲内に十分収まる。 図8Aに示すロジック定数は水平方向の隣接を優先してグループ分けされるの が好ましい。定数ロジックセルの所与のブロックでは、セルは水平セルまたは垂 直セルの組としてグループ分けされ得る。たとえば、図8Aでは、セルの場所( 7,18)から(14,21)は32のロジックセルのブロックを規定する。こ れらのセルは8つの水平に隣接したセルの4つのグループとして表示される。し たがって、4つの水平なグループは(7,18)から(14,18)と、(7, 19)から(14,19)と、(7,20)から(14,20)と、(7,21 )から(14,21)とである。 これに代えて、ブロック(7,18)から(14,21)内のセルは垂直方向 に隣接することを優先してグループ分けされてもよい。これは図8Bの画面表示 に表わされる。この場合は、各々が4つのセルを含む8つの垂直なグループがあ り、これらは(7,18)から(7,21)と、(8,18)から(8,21) と、(9,18)から(9,21)と、(10,18)から(10,21)と、 (11,18)から(11,21)と、(12,18)から(12,21)と、 (13,18)から(13,21)と、(14,18)から(14,21)とで ある。これらのセルの他のフィールドは、これに従って垂直なグループ分けを反 映するように修正される。 好ましい実施例に従うと、隣接する定数セルのグループはある範囲のセルとし て表わされるであろう。係数C0−C3を構成するセルは水平方向の隣接性のみを 示すので、水平なグループとして表示される。同様に、垂直方向の隣接性のみを 表わすセルは垂直にグループ分けされることになる。定数セルが垂直にもまた水 平にもグループ分けできるところでは、ユーザによって特定される要望に従って グループ分けが行なわれる。したがって、係数C4−C7は、設計者の好みに応じ て図8Aおよび8Bに示すように水平にも垂直にもグループ分けされ得る。図示 した例では、図8Aに示すように水平に隣接するものを要望したと思われる。し かしながら、別の設計では、係数は垂直な形式で並べることができ、その場合図 8Bの垂直なものが選択されるであろう。 この発明の別の実施例では、連続していない定数セルが同じグループにされる こともある。GUIはユーザが任意の組の定数セルを選択し、選択されたセルを 1グループとして扱うことを許可する。セルは連続していないが、GUIはこれ らのセルを1グループとして表示し、ユーザが1グループとしてのセルのロジッ ク値を修正することを許可する。したがって、ユーザによって入力された新規な ロジック値を表わすビット値の列は1対1でそのグループ内の定数セルに対応し てマップされる。これは、図8Aおよび8Bに関して上に述べた方法とほぼ同じ である。 新規な係数値C0’−C7’を入力すると、GUIは図5のステップ324に従 って部分構成ビットストリームを生成する。GUIはセルの場所(設計データベ ースから得たもの)と、それらの新規な構成(設計者から得たもの)との両方を 有するので、GUIは設計者によって特定されたデザインの変更を実現すべき構 成ビットストリームを生成できる。部分構成ビットストリームは設計者による変 更の入力にのみ基づき、かつFPGA内の設計の変更に関係するセルについての みの構成情報を含む。構成ビットストリームに変更を生じるために設計全体で配 置および経路付け動作を実行する必要はない。これは、図4に示す従来技術の方 法の場合と同様である。その代わりに、GUIはユーザの入力から部分構成ビッ トストリームへ直接進む。このアプローチは設計の変更を実施するのに必要な時 間を著しく減じ、設計者が設計の選択肢を迅速に実施および検査することを許可 する。 好ましい実施例のGUIはさらに、ロジックゲートとして構成されたロジック セルを修正するためのモードを含む。たとえば、ROMアレイおよびデコーダか らなる、ROMに基づいて図9Aに示すルックアップテーブルを考慮されたい。 ルックアップテーブルは典型的には機能ジェネレータとして用いられて全加算器 および全減算器のようなロジック機能を実現する。この真理値表は図9Bに示さ れる。加算器および減算器の実現は図9Cおよび9Dにそれぞれ示され、図9A のデコーダの8つの出力(0−7)は、図9Cおよび9DにA0−A7として示 される。加算器回路は4つの位置において減算器と異なることがわかる。加算器 のANDゲートG8、G12は、減算器ではORゲートG7、G11によって置 き換えられ、加算器のORゲートG24、G28は減算器ではANDゲートG2 3、G27によって置き換えられる。 この発明の方法を用いて、設計者は単に、好みの4つのゲートの位置を特定す るかまたは他のやり方で識別し、さらに対応のロジックセルの構成を変更するこ とによって、ある回路から別の回路へ容易に入れ替えることができる。図10A および10Bを参照して、GUIはウィンドウに、ロジック設計をFPGA内に 並べられているとおりに表示することができる。ウィンドウをスクロールするこ とにより、そのアレイのどの部分もウィンドウ内に見られるようになる。これに 代えて、GUIは図10Aに示すように、セルの場所フィールドまたはインスタ ンス名フィールドに適切な情報を入力することによってアレイの一部分の位置を 特定することができる。 次の論考として、初期ロジック設計は図9Cの加算器回路を組入れ、また図9 Dの減算器回路を変換することが所望されると仮定する。GUIは、加算器回路 の初期設計で実現された配置および経路付け動作によって生じる設計データベー スにアクセスし、かつ設計のレイアウトをFPGAの素子に置き換えて表示する 。この表示はFPGAを構成するロジックセルの、アイコンまたは他のグラフィ カ ルな表現からなり得る。これに代えて、GUIは各ロジックセルが提供したロジ ック機能を表わすアイコンを表示してもよい。さらに別の代替するものとしてF PGAの組成を文字で表わしてもよいが、このアプローチはFPGAについての 情報の伝達またはFPGA内での誘導において、グラフィカルなアプローチほど 効率がよくない。 設計者は、加算器回路の変更するべき部分をゲートのインスタンス名を特定す るかまたはスクロールすることによって表示する。図10Aの画面表示は設計デ ータベースの、加算器回路の一部周辺に集中した一部分、すなわちゲートG6、 G8、G10、およびG12を表わす。ORゲートG6は、列56、カラム10 0のロジックセルに割当てられており、ANDゲートG8は列56、カラム10 1のロジックセルに割当てられているということなどがわかる。ゲートG8をA NDゲートからORゲートに変更するには、設計者はまず、マウスのカーソルを ゲートのアイコン上に置いてマウスのボタンを押すことによって、ゲートを選択 する。図10BはゲートG8が強調されているところを表わし、それが選択され たということを示す。再度マウスボタンをクリックする(またはキーを押す)こ とにより、ポップアップメニューが現われ、可能なロジックゲートのリストを表 わす。OR入力をメニューから選択すると、選択されたゲートG8はORゲート として構成されるようになる。ゲートG12も同じ手法で変更される。次に、設 計者はたとえばウィンドウをスクロールすることによってゲートG24およびG 28を見えるようにする。ゲートG24およびG28はこの後、上述の方法で修 正される。 修正が完了すると、OKボタンが押される。図5に示した方法で概略を述べた ように、GUIは修正のみに基づく部分構成ビットストリームを生成する。その 結果生じるビットストリームは元の設計の4つのセル(加算器回路のG8、G1 2、G24、およびG28)が、減算器のゲートG7、G11、G23、および G27として動作するように再定義する必要のあるビット列のみを含む。したが って、設計データベースに直接アクセスして初期の全加算器の設計をし、かつそ れに対する変更を行なうことによって、設計技術者は、時間のかかる配置および 経路付けの全動作のステップを回避することができる。 最後に注目することとして、上述の特定のゲート選択およびメニューの方法は 、この発明の実務にとって決定的に重要ではないことがわかる。他のグラフィッ クベースの入力/選択方法も同等に有効であると思われる。 一般に、図9Bに示すもののようなルックアップテーブルに関して、ルックア ップテーブルによって実現されたロジック機能は、テーブルの出力により完全に 定義される。したがって、図9BのSumおよびCoutのカラムは全加算器の機 能を完全に定義し、SubおよびBoutのカラムは全減算器の機能を完全に定義 する。 GUIは特定のルックアップテーブルを実現する特有のロジックセルを表示する 必要はなく、テーブルの出力のみをリストし、またユーザがテーブルの出力に対 して変更を入力するのを許可することができる。GUIはこの後、新規なルック アップテーブルを実現するのに必要なロジックセルを特定する。ルックアップテ ーブルをこの手法でより高い抽象レベルで表わすことにより、このテーブルはユ ーザに対してより意味のあるものになり、あまり意味のない実現の詳細部はユー ザから隠すので、有用性がより大きくなる。 図9Cおよび9Dから、ルックアップテーブルは直列にカスケード接続された 2入力ANDゲートおよび2入力ORゲートによって実現され得ることがわかる 。たとえば、全加算器のSUM出力はゲートG2、G6、G10、G14、G1 8、G22、G26、およびG30によって実現され、同時にCoutの出力はゲ ートG4、G8、G12、G16、G20、G24、G28、およびG32によ って実現される。したがって、GUIは第1の機能を定義するルックアップテー ブルを容易に再構成し、単にテーブルを実現する適切なゲートを変更することに より第2の機能を実現することができる。 次に述べるのは、この発明の別の実施例であって、これは実時間の動的に再構 成可能なFPGA、すなわち再構成時に動作しているシステム中に組入れられた アレイを、再構成することを許可する。図11を参照して、典型的なシステム6 00はCPUまたはマイクロコントローラ610、FPGA620、EPROM 622または他の何らかの不揮発性RAMデバイス、およびディスク記憶部のよ うなデータ記憶部630を含む。CPU610で実行中のシステムソフトウェア は用途特定型ソフトウェア602およびFPGAを構成するためのFPGAユー ティリティ604を含む。システムがブートされると、FPGAはEPROM6 22中にプログラムされている構成ビットストリームでロードされる。これに代 えて、FPGAは最初に、データ記憶部630に記憶された構成ビットストリー ムから構成されてもよい。 システム600の動作中、ソフトウェアはその動作環境650についての特定 の状況を検出し得る。たとえば、図8Aおよび8Bに示すデジタルフィルタ設計 に関して、ソフトウェア602は、フィルタの遮断周波数が調整を要するかどう かを判断できる。これに応答して、前に累積されたデータが分析され、この分析 に基づいて新規な係数が計算され得る。その後、特定のFPGAユーティリティ 604が呼び出され、新規な係数を定義するためのビット列を含む部分構成ビッ トストリームを作り出す。次に、アプリケーションソフトウェア602は他のF PGAユーティリティを呼び出してFPGAに部分構成ビットストリームをダウ ンロードすることによりフィルタの設計における変更を実行する。 実時間で行なわれる設計の変更の範囲はFPGAユーティリティ604によっ てではなく、FPGA中にロードされた特有の設計における複雑さの程度によっ て制限される。オンザフライの変更はアプリケーションソフトウェアによって、 ロジック定数または個別のロジックゲートの変更のみに制限されるかもしれない 。しかしながら、このような制限はアプリケーション特有のものであり、これは 計算力の利用可能性、メモリ、動作環境などによって決定され、この発明が制限 するものではない。 FPGAユーティリティ604のアプリケーションプログラミングインターフ ェイス(API)の1組は以下のものを含む。 定数セル 機能: 各ロジックセルを特定の範囲内で構成する構成ビットストリームを 生成し、ロジック1またはロジック0のいずれかを作り出す。 パラメータ: xStart−第1のロジックセルのX座標 yStart−第1のロジックセルのY座標 xEnd−最後のロジックセルのX座標 yEnd−最後のロジックセルのY座標 value_string−1および0の対応の列 buf−構成ビット列を記憶するためのメモリ記憶部へのポインタ リターン: ビットストリーム中のバイト数 ダウンロード 機能: 構成ビット列をFPGAにダウンロードする。 パラメータ: buf−ダウンロードされるべき構成ビット列に対するポインタ リターン: n/a ゲートセル 機能: 前に定義されたロジックゲートを再構成する構成ビットストリーム を生成し、異なるロジック機能を実現する。ゲートのロジック機能 のみが変更される。入力および出力端子の数などのゲートの他の局 面は同じままで留まる。 パラメータ: x_coord−ロジックセルのX座標の場所 y_coord−ロジックセルのY座標の場所 logic−特定のロジック機能:AND、NAND、OR、NOR、 XOR、INVERTERなど buf−構成ビット列を記憶するためのメモリ記憶部に対するポイン タ リターン: ビットストリーム中のビット数 読出セル 機能: 特定のロジックセルについての現在の構成を戻す。 パラメータ: x_coord−ロジックセルのX座標の場所 y_coord−ロジックセルのY座標の場所 buf−セル構成を記憶するためのメモリ記憶部に対するポインタ リターン: n/a 以下のC言語コードフラグメントは、これらのユーティリティが典型的なアプ リケーション中でどのように用いられるかを表わす。この例は図8Aのデジタル フィルタに対するものであり、係数C0−C7が外部動作環境に応答してどのよう に調整されるかを表わす。 この発明に従ったFPGAを再構成するためのシステムは、実時間でFPGA を再構成することを許可し、FPGAの一部のみを再構成することを可能にする 。さらに、この発明は、アプリケーションソフトウェアが外部動作環境に応答し て設計の一部の変更を決定することを可能にする。このアプローチの利点は、設 計者が設計およびそれに対応する構成ビットストリームの考えられるすべての選 択肢を演繹的に決定する必要がないということである。むしろ、アプリケーショ ンソフトウェアは設計の変更をオンザフライで決定でき、部分構成ビットストリ ームを作り出して環境の状態に応答して必要に応じてそれらの変更を実現するこ とができる。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アラネイク,サンディープ・エス アメリカ合衆国、94086 カリフォルニア 州、サニーベイル、エス・フェア・オーク ス・アベニュ、655、ナンバー・エム・314 【要約の続き】 を下すことができるようになる。

Claims (1)

  1. 【特許請求の範囲】 1.ロジックセルのプログラマブルアレイを構成する方法であって、前記アレイ は複数のプログラマブルな相互接続を有し、各前記ロジックセルは前記アレイ内 に固有のセル場所を有し、前記アレイはそれに付随するロジック設計を有し、前 記方法は、 ロジックセルの定義および前記ロジック設計に対応するロジックセル間の相互 接続の構成を表わす設計データベースにアクセスするステップと、 前記設計データベースの一部をユーザに提供するステップと、 ユーザによって特定された変更を入力して前記設計データベースのユーザが選 択した部分を再定義するステップと、 前記設計データベースの前記再定義された部分に付随する前記ロジックセルお よび前記相互接続の部分のみを表わす部分構成ビットストリームを生成するステ ップと、 前記部分構成ビットストリームをロジックセルの前記アレイにダウンロードし 、それによってロジックセルの前記アレイのうち前記ユーザによって特定された 変更に対応する部分のみを構成するステップとを含む、方法。 2.前記生成するステップが、前記部分構成ビットストリームを単独で前記設計 データベースの前記再定義された部分に基づいて定義するステップを含む、請求 項1に記載の方法。 3.前記ユーザによって特定された変更が新規なロジックセルの定義または新規 な相互接続を含み、前記生成するステップが前記部分構成ビットストリームを単 独で前記新規なロジックセルの定義または前記新規な相互接続に基づいて定義す るステップを含む、請求項1に記載の方法。 4.前記提供するステップが、ロジックゲートとして構成される特定のロジック セルを識別するステップを含み、前記特定のロジックセルの各々についてそのセ ル場所を表示し、かつその対応するロジックゲートのグラフィック画像または文 字表現を表示する、請求項1に記載の方法。 5.前記ユーザによって特定された変更を入力するステップが、再構成されるべ きロジックセルを識別するステップと、代替するロジックゲートのリストを表示 するステップと、代替するロジックゲートを前記リスト間から選択して前記識別 されたロジックセルを再構成するステップとを含む、請求項4に記載の方法。 6.前記代替するロジックゲートのリストを表示するステップが、前記代替する ロジックゲートのグラフィック表現を表示するステップを含む、請求項5に記載 の方法。 7.前記提供するステップが、 前記設計データベース中の固定値ロジックセルを識別するステップと、 他のどの固定値ロジックセルとも隣接しない固定値ロジックセルについて、前 記固定値ロジックセルのセル場所および現在値を表示するステップと、 隣接する固定値ロジックセルのグループについて、前記グループのセル場所を ある範囲のセル場所として表示し、前記グループ中のロジックセルの現在値をビ ット列として表示するステップとをさらに含む、 請求項4に記載の方法。 8.前記提供するステップが、定数ロジック「1」または定数ロジック「0」を 出力するように定義されたロジックセルのみを表示するステップを含む、請求項 1に記載の方法。 9.前記提供するステップが、 前記設計データベース中の固定値ロジックセルを識別するステップと、 他のどの固定値ロジックセルとも隣接しない固定値ロジックセルについて、前 記固定値ロジックセルのセル場所および現在値を表示するステップと、 隣接する固定値ロジックセルのグループについて、前記グループのセル場所を ある範囲のセル場所として表示し、前記グループの各ロジックセルの現在値をま とめてビット列として表示するステップとを含む、 請求項1に記載の方法。 10.プログラマブルロジックセルおよびI/Oブロックならびに前記ロジック セルと前記I/Oブロックとの間に配置されたプログラマブル相互接続を有する FPGA中で、前記FPGAの構成ビットストリームを生成する方法であって、 ロジック回路を入力するステップを含み、前記ロジック回路は複数のロジックゲ ートと前記ロジックゲート間の接続とを含み、前記方法はさらに、前記ロジック 回路を実現するためのロジックセルおよび相互接続を選択するステップと、前記 選択されたロジックセルおよび相互接続についての配置および経路付けの情報を 含む設計データベースを形成するステップと、前記配置および経路付けの情報に 基づいて第1の構成ビットストリームを生成するステップとを含み、前記第1の 構成ビットストリームは前記選択されたロジックセルおよび相互接続のすべてつ いての定義を含み、それによって前記ロジック回路を実現し、前記方法はさらに 、前記第1の構成ビットストリームをデータ記憶部に記憶して前記FPGA中へ の次のダウンロードに備えるステップと、前記ロジック回路の設計に対する変更 を組入れるステップとを含み、この方法の改良点が、 前記設計データベースの一部をユーザに表示して前記設計データベースの選択 された部分に対する修正を入力するステップと、 前記ロジックセルおよび相互接続のうち、前記設計データベースの前記選択さ れた部分に対する前記修正に関するもののみに対して新規な定義を含む第2の構 成ビットストリームを生成するステップとを含む、方法。 11.前記第1の構成ビットストリームを前記FPGA中にダウンロードするス テップをさらに含む、請求項10に記載の方法。 12.前記第1の構成ビットストリームをダウンロードする前記ステップに続い て、前記第2の構成ビットストリームを前記FPGA中にダウンロードするステ ップをさらに含む、請求項11に記載の方法。 13.前記第2の構成ビットストリームを生成するステップが、前記ロジックセ ルおよび相互接続の前記部分の場所および新規な定義に基づいてビットストリー ムを単独で定義するステップを含む、請求項10に記載の方法。 14.前記設計データベースの一部を表示する前記サブステップが、 ロジックゲートとして構成される、前記設計データベース中の第1のタイプの ロジックセルを識別するステップと、 前記第1のタイプのロジックセルの各々について、そのセル場所およびその対 応するロジックゲートの表現を表示するステップと、 定数ロジック値を作り出すように構成された前記設計データベース中の第2の タイプのロジックセルを識別するステップと、 前記第2のタイプのロジックセルのセル場所および値を表示するステップとを 含む、請求項10に記載の方法。 15.前記第2のタイプのロジックセルを前記表示するステップが、前記第2の タイプのロジックセルのうち互いに隣接するものを含むセルのグループを形成す るステップと、ある範囲のセル場所を用いて前記セルグループの各々内のロジッ クセルのセル場所を表示するステップとを含む、請求項14に記載の方法。 16.前記セルグループを形成するサブステップが、前記第2のタイプのロジッ クセルのうち他のものと水平に隣接する前記第2のタイプのロジックセルの部分 について水平なグループを形成するステップと、前記第2のタイプのロジックセ ルのうち他のものと垂直に隣接する前記第2のタイプのロジックセルの部分につ いて垂直なグループを形成するステップと、所与のロジックセルが水平グループ と垂直グループとの両方に属する場合、前記所与のロジックセルを前記水平なグ ループに割当てるステップとを含む、請求項15に記載の方法。 17.前記セルグループを形成するサブステップが、前記第2のタイプのロジッ クセルのうち前記第2のタイプのロジックセルの他のものと水平に隣接するもの について水平グループを形成するステップと、前記第2のタイプのロジックセル のうち前記第2のタイプのロジックセルの他のものと垂直に隣接するものについ て垂直グループを形成するステップと、所与のロジックセルが水平グループと垂 直グループとの両方に属する場合、前記所与のロジックセルを前記垂直グループ に割当てるステップとを含む、請求項15に記載の方法。 18.前記第2のタイプのロジックセルを前記表示するステップが、前記第2の タイプのロジックセルのうちユーザによって特定されたものを含むセルグループ を形成するステップと、前記セルグループの各々内のロジックセルのセル場所お よびロジック値を表示するステップとを含む、請求項14に記載の方法。 19.FPGA中にプログラムされた少なくとも1つのロジック設計を有するF PGAを構成するためのシステムであって、 前記FPGAの実時間動作中に、前記FPGAに対して外部の状況を検出する ための手段と、 前記FPGAの外部状況の検出に応答して前記ロジック設計の一部を再設計す るための手段と、 前記再設計された部分のみに基づいて部分構成ビットストリームを形成するた めの手段と、 前記部分構成ビットストリームを前記FPGAに伝送し、それによって前記F PGAを実時間で部分的に再構成して前記ロジック設計の前記再設計された部分 を実現するための手段とを含む、システム。 20.設計データベースのうち前記ロジック設計を表わす少なくとも一部分を記 憶するための手段を含み、前記再設計するための手段が前記設計データベースに アクセスすることにより前記ロジック設計を再設計するための基準を提供するた めの手段を含む、請求項19に記載のシステム。 21.FPGA中にプログラムされた少なくとも1つのロジック定数を有するF PGAを構成するためのシステムであって、 前記FPGAの実時間動作中に前記FPGAの外部状況を検出するための手段 と、 前記FPGAの外部状況の検出に応答して前記ロジック定数の新規な値を決定 するための手段と、 前記新規な値にのみ基づいた部分構成ビットストリームを形成するための手段 と、 前記部分構成ビットストリームを前記FPGAに伝送し、それによって前記F PGAを実時間で部分的に再構成するための手段とを含む、システム。
JP52050198A 1996-10-30 1997-10-15 ロジックデバイスのアレイを構成するための方法およびシステム Ceased JP2001504958A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/739,606 1996-10-30
US08/739,606 US5946219A (en) 1996-10-30 1996-10-30 Method and system for configuring an array of logic devices
PCT/US1997/018363 WO1998019256A1 (en) 1996-10-30 1997-10-15 Method and system for configuring an array of logic devices

Publications (1)

Publication Number Publication Date
JP2001504958A true JP2001504958A (ja) 2001-04-10

Family

ID=24973056

Family Applications (1)

Application Number Title Priority Date Filing Date
JP52050198A Ceased JP2001504958A (ja) 1996-10-30 1997-10-15 ロジックデバイスのアレイを構成するための方法およびシステム

Country Status (8)

Country Link
US (1) US5946219A (ja)
EP (1) EP0958542A4 (ja)
JP (1) JP2001504958A (ja)
KR (1) KR100446338B1 (ja)
CN (1) CN1121016C (ja)
HK (1) HK1022753A1 (ja)
TW (1) TW359801B (ja)
WO (1) WO1998019256A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8106681B2 (en) 2008-11-07 2012-01-31 Renesas Electronics Corporation Semiconductor device, and programming method and programming system therefor
JP2017054511A (ja) * 2015-09-08 2017-03-16 ディスペース デジタル シグナル プロセッシング アンド コントロール エンジニアリング ゲゼルシャフト ミット ベシュレンクテル ハフツングdspace digital signal processing and control engineering GmbH プログラム可能な論理チップのコンフィギュレーションを変更する方法

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026226A (en) * 1996-10-28 2000-02-15 Altera Corporation Local compilation in context within a design hierarchy
US6134707A (en) * 1996-11-14 2000-10-17 Altera Corporation Apparatus and method for in-system programming of integrated circuits containing programmable elements
US6078736A (en) * 1997-08-28 2000-06-20 Xilinx, Inc. Method of designing FPGAs for dynamically reconfigurable computing
US6243851B1 (en) 1998-03-27 2001-06-05 Xilinx, Inc. Heterogeneous method for determining module placement in FPGAs
US6292925B1 (en) 1998-03-27 2001-09-18 Xilinx, Inc. Context-sensitive self implementing modules
US6237129B1 (en) 1998-03-27 2001-05-22 Xilinx, Inc. Method for constraining circuit element positions in structured layouts
US6260182B1 (en) 1998-03-27 2001-07-10 Xilinx, Inc. Method for specifying routing in a logic module by direct module communication
US6430732B1 (en) 1998-03-27 2002-08-06 Xilinx, Inc. Method for structured layout in a hardware description language
US6216258B1 (en) 1998-03-27 2001-04-10 Xilinx, Inc. FPGA modules parameterized by expressions
US6178541B1 (en) * 1998-03-30 2001-01-23 Lsi Logic Corporation PLD/ASIC hybrid integrated circuit
DE19843640A1 (de) * 1998-09-23 2000-03-30 Siemens Ag Verfahren zum Konfigurieren eines konfigurierbaren Hardware-Blocks
EP1351154A2 (en) * 1998-11-20 2003-10-08 Altera Corporation Reconfigurable programmable logic device computer system
TW476069B (en) * 1998-11-20 2002-02-11 Via Tech Inc Placement and routing for array device
US6363519B1 (en) 1999-02-26 2002-03-26 Xilinx, Inc. Method and apparatus for testing evolvable configuration bitstreams
US6539532B1 (en) 1999-02-26 2003-03-25 Xilinx, Inc. Method and apparatus for relocating elements in an evolvable configuration bitstream
US6430736B1 (en) 1999-02-26 2002-08-06 Xilinx, Inc. Method and apparatus for evolving configuration bitstreams
US6378122B1 (en) 1999-02-26 2002-04-23 Xilinx, Inc. Method and apparatus for evolving a plurality of versions of a configuration bitstream in parallel
US6363517B1 (en) 1999-02-26 2002-03-26 Xilinx, Inc. Method and apparatus for remotely evolving configuration bitstreams
ATE314754T1 (de) 1999-05-07 2006-01-15 Infineon Technologies Ag Heterogenes programmierbares gatterfeld
WO2000068775A1 (en) 1999-05-07 2000-11-16 Morphics Technology Inc. Apparatus and method for programmable datapath arithmetic arrays
KR100648909B1 (ko) 1999-05-07 2006-11-24 모픽스 테크놀로지 아이엔씨 프로그래머블 게이트 어레이내의 가변성 크기 자율 서브어레이들을 동적으로 정의하는 장치 및 방법
US6438737B1 (en) 2000-02-15 2002-08-20 Intel Corporation Reconfigurable logic for a computer
US6453456B1 (en) * 2000-03-22 2002-09-17 Xilinx, Inc. System and method for interactive implementation and testing of logic cores on a programmable logic device
US6725441B1 (en) 2000-03-22 2004-04-20 Xilinx, Inc. Method and apparatus for defining and modifying connections between logic cores implemented on programmable logic devices
US6542844B1 (en) 2000-08-02 2003-04-01 International Business Machines Corporation Method and apparatus for tracing hardware states using dynamically reconfigurable test circuits
US6530071B1 (en) * 2000-09-28 2003-03-04 Xilinx, Inc. Method and apparatus for tolerating defects in a programmable logic device using runtime parameterizable cores
US6904436B1 (en) * 2000-10-04 2005-06-07 Cypress Semiconductor Corporation Method and system for generating a bit order data structure of configuration bits from a schematic hierarchy
US6625794B1 (en) * 2000-11-06 2003-09-23 Xilinx, Inc. Method and system for safe device reconfiguration
US6836842B1 (en) * 2001-04-24 2004-12-28 Xilinx, Inc. Method of partial reconfiguration of a PLD in which only updated portions of configuration data are selected for reconfiguring the PLD
US6912706B1 (en) 2001-08-15 2005-06-28 Xilinx, Inc. Instruction processor and programmable logic device cooperative computing arrangement and method
CN1307586C (zh) * 2001-10-16 2007-03-28 捷豹逻辑股份有限公司 高效逻辑打包的现场可编程门阵列核心单元
US7406674B1 (en) * 2001-10-24 2008-07-29 Cypress Semiconductor Corporation Method and apparatus for generating microcontroller configuration information
EP1320048A3 (en) * 2001-12-14 2004-03-03 STMicroelectronics Pvt. Ltd Rapid partial configuration of reconfigurable devices
US7386833B2 (en) * 2002-09-04 2008-06-10 Mentor Graphics Corp. Polymorphic computational system and method in signals intelligence analysis
KR200304200Y1 (ko) * 2002-09-16 2003-02-19 신창업 마이크 보호용 커버
US7194615B2 (en) * 2002-09-17 2007-03-20 Nokia Corporation Reconfigurable apparatus being configurable to operate in a logarithmic scale
US7124392B2 (en) 2002-09-27 2006-10-17 Stmicroelectronics, Pvt. Ltd. Mapping of programmable logic devices
US7111110B1 (en) * 2002-12-10 2006-09-19 Altera Corporation Versatile RAM for programmable logic device
CN1304994C (zh) * 2003-08-27 2007-03-14 四川南山之桥微电子有限公司 可运行的2层/3层交换机和路由器芯片及制定方法
JP3966873B2 (ja) * 2003-10-08 2007-08-29 株式会社東芝 論理回路装置、動作電圧変更方法
US7669035B2 (en) * 2004-01-21 2010-02-23 The Charles Stark Draper Laboratory, Inc. Systems and methods for reconfigurable computing
JP4095576B2 (ja) * 2004-05-17 2008-06-04 株式会社東芝 プログラマブル論理回路を用いる汎用論理回路装置
US7406673B1 (en) 2004-08-12 2008-07-29 Xilinx, Inc. Method and system for identifying essential configuration bits
US7343578B1 (en) * 2004-08-12 2008-03-11 Xilinx, Inc. Method and system for generating a bitstream view of a design
US7519823B1 (en) 2004-08-12 2009-04-14 Xilinx, Inc. Concealed, non-intrusive watermarks for configuration bitstreams
US20060200603A1 (en) * 2005-03-01 2006-09-07 Naoto Kaneko Dynamic resource allocation for a reconfigurable IC
US7861190B1 (en) * 2005-03-17 2010-12-28 Altera Corporation Power-driven timing analysis and placement for programmable logic
US7275232B2 (en) * 2005-04-01 2007-09-25 Altera Corporation Methods for producing equivalent field-programmable gate arrays and structured application specific integrated circuits
US7784005B1 (en) * 2005-06-14 2010-08-24 Xilinx, Inc. Electronic circuit design viewer
US7571395B1 (en) * 2005-08-03 2009-08-04 Xilinx, Inc. Generation of a circuit design from a command language specification of blocks in matrix form
US7739092B1 (en) * 2006-01-31 2010-06-15 Xilinx, Inc. Fast hardware co-simulation reset using partial bitstreams
US7827023B2 (en) * 2006-02-01 2010-11-02 Cadence Design Systems, Inc. Method and apparatus for increasing the efficiency of an emulation engine
US7631223B1 (en) * 2006-06-06 2009-12-08 Lattice Semiconductor Corporation Programmable logic device methods and system for providing multi-boot configuration data support
US7640527B1 (en) * 2006-06-29 2009-12-29 Xilinx, Inc. Method and apparatus for partial reconfiguration circuit design for a programmable device
US7634743B1 (en) * 2006-07-21 2009-12-15 Cadence Design Systems, Inc. Method for updating a placed and routed netlist
US7521961B1 (en) * 2007-01-23 2009-04-21 Xilinx, Inc. Method and system for partially reconfigurable switch
US7873934B1 (en) * 2007-11-23 2011-01-18 Altera Corporation Method and apparatus for implementing carry chains on field programmable gate array devices
US8214592B2 (en) * 2009-04-15 2012-07-03 International Business Machines Corporation Dynamic runtime modification of array layout for offset
US8276105B2 (en) * 2009-09-18 2012-09-25 International Business Machines Corporation Automatic positioning of gate array circuits in an integrated circuit design
US8368423B2 (en) * 2009-12-23 2013-02-05 L-3 Communications Integrated Systems, L.P. Heterogeneous computer architecture based on partial reconfiguration
US8397054B2 (en) * 2009-12-23 2013-03-12 L-3 Communications Integrated Systems L.P. Multi-phased computational reconfiguration
US7982504B1 (en) * 2010-01-29 2011-07-19 Hewlett Packard Development Company, L.P. Interconnection architecture for multilayer circuits
US8595670B1 (en) * 2010-03-08 2013-11-26 Altera Corporation Method and apparatus for circuit block reconfiguration EDA
US8364946B2 (en) 2010-03-22 2013-01-29 Ishebabi Harold Reconfigurable computing system and method of developing application for deployment on the same
US9116751B2 (en) * 2011-02-08 2015-08-25 Canon Kabushiki Kaisha Reconfigurable device, processing assignment method, processing arrangement method, information processing apparatus, and control method therefor
US8751998B2 (en) * 2011-07-01 2014-06-10 Altera Corporation Method and system for partial reconfiguration simulation
TWI459216B (zh) * 2011-09-09 2014-11-01 Iner Aec Executive Yuan 數位安全系統硬體化之方法
EP2894572B1 (en) 2014-01-09 2018-08-29 Université de Rennes 1 Method and device for programming a FPGA
CN104850669A (zh) * 2014-02-14 2015-08-19 国网河南省电力公司鹤壁供电公司 逻辑器件及构建方法、逻辑器件库、逻辑器构建方法
US9619610B1 (en) * 2015-10-01 2017-04-11 Altera Corporation Control block size reduction through IP migration in an integrated circuit device
CN108182303B (zh) * 2017-12-13 2020-08-28 京微齐力(北京)科技有限公司 基于混合功能存储单元的可编程器件结构
KR102559581B1 (ko) 2018-05-23 2023-07-25 삼성전자주식회사 재구성 가능 로직을 포함하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
US10838389B2 (en) 2018-12-13 2020-11-17 Hamilton Sunstrand Corporation Reconfigurable control architecture for programmable logic devices
US11042414B1 (en) 2019-07-10 2021-06-22 Facebook, Inc. Hardware accelerated compute kernels
US11556382B1 (en) 2019-07-10 2023-01-17 Meta Platforms, Inc. Hardware accelerated compute kernels for heterogeneous compute environments
US11042413B1 (en) * 2019-07-10 2021-06-22 Facebook, Inc. Dynamic allocation of FPGA resources
CN111274199A (zh) * 2020-01-23 2020-06-12 中国科学院微电子研究所 差异上注定向修改的fpga在轨重构实现方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4845633A (en) * 1985-12-02 1989-07-04 Apple Computer Inc. System for programming graphically a programmable, asynchronous logic cell and array
US5089973A (en) * 1986-11-07 1992-02-18 Apple Computer Inc. Programmable logic cell and array
US4745084A (en) * 1986-11-12 1988-05-17 Vlsi Technology, Inc. Method of making a customized semiconductor integrated device
JP2877303B2 (ja) * 1987-03-31 1999-03-31 株式会社東芝 集積回路の自動設計装置
US4970664A (en) * 1988-06-10 1990-11-13 Kaiser Richard R Critical path analyzer with path context window
AU4347189A (en) * 1988-10-05 1990-05-01 Mentor Graphics Corporation Method of using electronically reconfigurable gate array logic and apparatus formed thereby
US5208768A (en) * 1988-11-14 1993-05-04 Digital Equipment Corporation Expert system including arrangement for acquiring redesign knowledge
US4967367A (en) * 1988-11-21 1990-10-30 Vlsi Technology, Inc. Synthetic netlist system and method
US5448493A (en) * 1989-12-20 1995-09-05 Xilinx, Inc. Structure and method for manually controlling automatic configuration in an integrated circuit logic block array
US5623418A (en) * 1990-04-06 1997-04-22 Lsi Logic Corporation System and method for creating and validating structural description of electronic system
US5544067A (en) * 1990-04-06 1996-08-06 Lsi Logic Corporation Method and system for creating, deriving and validating structural description of electronic system from higher level, behavior-oriented description, including interactive schematic design and simulation
US5555201A (en) * 1990-04-06 1996-09-10 Lsi Logic Corporation Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including interactive system for hierarchical display of control and dataflow information
US5278769A (en) * 1991-04-12 1994-01-11 Lsi Logic Corporation Automatic logic model generation from schematic data base
US5349691A (en) * 1990-07-03 1994-09-20 Xilinx, Inc. Programming process for 3-level programming logic devices
US5499192A (en) * 1991-10-30 1996-03-12 Xilinx, Inc. Method for generating logic modules from a high level block diagram
US5491640A (en) * 1992-05-01 1996-02-13 Vlsi Technology, Inc. Method and apparatus for synthesizing datapaths for integrated circuit design and fabrication
ATE207234T1 (de) * 1992-07-02 2001-11-15 Atmel Corp Unterbrechungsfreies wahlfreies zugriffspeichersystem
GB9223226D0 (en) * 1992-11-05 1992-12-16 Algotronix Ltd Improved configurable cellular array (cal ii)
US5361373A (en) * 1992-12-11 1994-11-01 Gilson Kent L Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor
CA2126265A1 (en) * 1993-09-27 1995-03-28 Michael Robert Cantone System for synthesizing field programmable gate array implementations from high level circuit descriptions
US5394031A (en) * 1993-12-08 1995-02-28 At&T Corp. Apparatus and method to improve programming speed of field programmable gate arrays
US5781756A (en) * 1994-04-01 1998-07-14 Xilinx, Inc. Programmable logic device with partially configurable memory cells and a method for configuration
US5673198A (en) * 1996-03-29 1997-09-30 Xilinx, Inc. Concurrent electronic circuit design and implementation

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8106681B2 (en) 2008-11-07 2012-01-31 Renesas Electronics Corporation Semiconductor device, and programming method and programming system therefor
JP2017054511A (ja) * 2015-09-08 2017-03-16 ディスペース デジタル シグナル プロセッシング アンド コントロール エンジニアリング ゲゼルシャフト ミット ベシュレンクテル ハフツングdspace digital signal processing and control engineering GmbH プログラム可能な論理チップのコンフィギュレーションを変更する方法

Also Published As

Publication number Publication date
KR20000052714A (ko) 2000-08-25
CN1121016C (zh) 2003-09-10
TW359801B (en) 1999-06-01
US5946219A (en) 1999-08-31
KR100446338B1 (ko) 2004-09-01
WO1998019256A1 (en) 1998-05-07
CN1241275A (zh) 2000-01-12
HK1022753A1 (en) 2000-08-18
EP0958542A4 (en) 2000-05-17
EP0958542A1 (en) 1999-11-24

Similar Documents

Publication Publication Date Title
JP2001504958A (ja) ロジックデバイスのアレイを構成するための方法およびシステム
US8001509B2 (en) Method for programming a mask-programmable logic device and device so programmed
US5963454A (en) Method and apparatus for efficiently implementing complex function blocks in integrated circuit designs
US6078736A (en) Method of designing FPGAs for dynamically reconfigurable computing
US5594657A (en) System for synthesizing field programmable gate array implementations from high level circuit descriptions
TW527549B (en) Method for implementing a physical design for a dynamically reconfigurable logic circuit
US6844757B2 (en) Converting bits to vectors in a programmable logic device
US5737234A (en) Method of optimizing resource allocation starting from a high level block diagram
US7679398B2 (en) Reprogrammable instruction DSP
WO2002027928A2 (en) Method and apparatus for tolerating defects in a programmable logic device using runtime parameterizable cores
Raghavan et al. JPG-A partial bitstream generation tool to support partial reconfiguration in Virtex FPGAs
US20050114818A1 (en) Chip design command processor
US7062744B2 (en) Emulation solution for programmable instruction DSP
US5574655A (en) Method of allocating logic using general function components
JPH06274568A (ja) 階層図形データの展開方法
US7096444B2 (en) Representing device layout using tree structure
Lagadec et al. Object-oriented meta tools for reconfigurable architectures
US7139995B1 (en) Integration of a run-time parameterizable core with a static circuit design
US7509246B1 (en) System level simulation models for hardware modules
US20050132315A1 (en) Extendable method for revising patterned microelectronic conductor layer layouts
US8196085B1 (en) Interactive design optimization techniques and interface
Sklyarov et al. Development system for FPGA-based digital circuits
Stavros et al. CAD dependent Estimation of Optimal k-Value in FSM onto k-LUT FPGA mappings, based on standard benchmark networks
Hawkins SOPCs: Systems on Programmable Chips
JPH11143914A (ja) Fsm再構築方法及びこれを用いたlsi設計方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040915

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060725

A313 Final decision of rejection without a dissenting response from the applicant

Free format text: JAPANESE INTERMEDIATE CODE: A313

Effective date: 20061218

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070130