JP4249745B2 - 集積回路上で揮発性と不揮発性プログラム可能ロジックを結合させるための技術 - Google Patents

集積回路上で揮発性と不揮発性プログラム可能ロジックを結合させるための技術 Download PDF

Info

Publication number
JP4249745B2
JP4249745B2 JP2005336979A JP2005336979A JP4249745B2 JP 4249745 B2 JP4249745 B2 JP 4249745B2 JP 2005336979 A JP2005336979 A JP 2005336979A JP 2005336979 A JP2005336979 A JP 2005336979A JP 4249745 B2 JP4249745 B2 JP 4249745B2
Authority
JP
Japan
Prior art keywords
block
programmable logic
integrated circuit
power
programmable
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.)
Expired - Fee Related
Application number
JP2005336979A
Other languages
English (en)
Other versions
JP2006166430A (ja
JP2006166430A5 (ja
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.)
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 JP2006166430A publication Critical patent/JP2006166430A/ja
Publication of JP2006166430A5 publication Critical patent/JP2006166430A5/ja
Application granted granted Critical
Publication of JP4249745B2 publication Critical patent/JP4249745B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17724Structural details of logic blocks
    • H03K19/17732Macroblocks
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/17758Structural details of configuration resources for speeding up configuration or reconfiguration
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/1776Structural details of configuration resources for memories
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/17768Structural details of configuration resources for security
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/17772Structural details of configuration resources for powering on or off

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Logic Circuits (AREA)
  • Storage Device Security (AREA)

Description

本発明は、集積回路(IC)上で揮発性と不揮発性プログラム可能ロジックを結合させるための技術、より具体的にはオフ・チップ・メモリで構成される1区画のプログラム可能ロジックとオン・チップ不揮発メモリで構成されるもう1つの区画のプログラム可能ロジックとを有するICを提供するための技術を提供する。
オン・チップ揮発性メモリを含む大規模フィールド・プログラム可能ゲート・アレイ(FPGA)は、電源投入時に構成させるに相当の時間を要するのが普通である。なぜなら、構成データが外部のメモリ・チップからチップにロードされるので外部メモリ・チップは、例えばシリアル・リード・オンリ・メモリ(SROM)である。
AlteraのCPLDのMAXファミリのような小規模のコンプレックス・プログラム可能ロジック・デバイス(CPLD)は、オン・チップ不揮発性メモリを含む。構成データは、オン・チップ不揮発性メモリに蓄えられる。構成データは、電源投入時にオン・チップ不揮発性メモリからプログラム可能ロジックにすばやくロードすることができる。不揮発性CPLDは、電源投入と同時に実質上瞬時オンであり、外部の構成データを必要としない。しかし大規模FPGAに不揮発性メモリを全て持たせることは、面積の面でいえば高く付き、プロセス選択を制限する。
多くの大規模揮発性FPGAは、電源投入と構成プロセスを編成するために随伴CPLDを有する。構成データがFPGAに送出される前に、CPLDは、構成データを暗号化することによって、構成データを傍受やコピーされないようにする。しかし、このソルーションは、大規模FPGAにFPGA,SROM、CPLDを含む3つのデバイス備えさせることになるのでこの技術はより複雑である。
したがってフィールド・プログラム可能ゲート・アレイを構成するためのより高速な技術を提供することが望ましい。構成プロセス中に設計を十分に保障するための方式をユーザーに提供することも望ましい。
本発明は、揮発性と不揮発性プログラム可能ロジックを1つの集積回路(IC)に結合するための技術を提供する。本発明のICは2つの部分に分けられている。ICの片方の部分は、オン・チップ・不揮発性メモリ・ブロックにストアされたビットによって構成される、プログラム可能ロジックの第1のブロックを含む。ICのもう一方の部分は、オフ・チップ・メモリ・デバイスにストアされたビットによって構成される、プログラム可能ロジックの第2のブロックを含む。
ICの不揮発性の部分にあるロジックは、揮発性の部分にあるロジックを構成することができる時間のごく僅かで構成させ、完全に機能を果たすようにすることができる。不揮発性の部分のロジックは、ICの揮発性の部分の構成を助けるように十分に速く構成できかつ十分に独立性を持っている。不揮発性メモリは、ユーザーの設計に対して暗号化や暗号解読などのセキュリティ特徴を提供することができる。
本発明のその他の目的、特徴、利点は、下記詳細説明とその中で同じ参照符号が、図面全般にわたり同じ特徴を表している添付図面を良く考えれば明らかに成るであろう。
図1は、本発明の第1の実施形態により設計されたプログラム可能ロジック集積回路(IC)の一部100を示す。部分100は、プログラム可能ロジックの第1のブロック110とプログラム可能ロジックの第2のブロック130を含む。プログラム可能ロジック・ブロック110、130は共に、プログラム可能ロジック回路を収納する。プログラム可能ロジック回路は、例えばルック・アップ・テーブル・ベースの或いはプロダクト・ターム・ベースのロジック要素などである。ブロック110、130内のプログラム可能ロジック・アレイのアーキテクチャは同じでも、異なっていてもよい。ロジック・ブロック110、130はメモリを含んでもよい。両方のブロック110、130内のメモリは、例えばSRAMなどの揮発性メモリでよい。
ブロック110内のプログラム可能ロジックは、不揮発性メモリ・ブロック112内にストアされた構成ビットによって構成される。製造者又はユーザーは構成ビットを、不揮発性メモリ・ブロック112内に記憶させることができる。パワー・オン・リセット(POR)構成ブロック111が、不揮発性メモリ112からロジック・ブロック110内のメモリに構成ビットを転送する。
ブロック130内のプログラム可能ロジックは外部メモリ・デバイス内にストアされている構成ビットによって構成される。外部メモリ・デバイスは、例えばFLASHメモリ・デバイス又はシリアルROM(SROM)メモリ・デバイスなどである。構成ビットは、I/Oポート103からマルチプレクサ118やイン・システム構成(ISC)ブロック131を通ってブロック130にロードされる。
上記したように、多くの大規模FPGAでは、電源投入時に相当の構成時間を必要とする。一方小規模な不揮発性CPLDは、電源投入時に実質的に瞬時オンであり、外部構成データを必要としない。しかし、FPGAのプログラム可能ロジック回路全てを構成するために、大規模FPGA上に十分なオン・チップ・不揮発性メモリを配置するには大きすぎるダイ面積を必要とする。
本発明は、2ブロックのプログラム可能ロジック(110、130)を設けることによってこれらの問題を解決する。電源投入時に構成データをメモリ112からロードすることにより、ブロック110内のプログラム可能ロジックをすばやく構成することができる。ブロック110は、電源投入段階でブロック130が構成される前に実行される必要がある特定の重要な機能を実行するためのプログラム可能ロジックを十分に収納していることが好ましい。ブロック130は、外部ソースからロードされる構成データにより、もっとゆっくりと構成される。
一実施形態によれば、IC上のプログラム可能ロジックはほとんど揮発性ブロック130内に存在する。この実施形態では、不揮発性メモリ・ブロック112は、ブロック110内のプログラム可能ロジックのための構成データを記憶するのに十分な大きさを必要とするだけである。ブロック110が比較的小さな場合、メモリ112は比較的小さなサイズでもよい。この要件が、IC上でのメモリ112の面積の影響を最小にする。ブロック130は、例えば電源投入に続いてFPGAの機能の全てを実行することができる。
メモリ112が小さなサイズであれば、より多くの実装の可能性がある。例えばFPGA全体に使用される大規模不揮発性メモリ・ブロックは、最先端のEEPROM又はFLASHプロセスを必要とする。FPGAのほんのわずかの部分のためにのみ構成データを供給する小さなメモリ・ブロック112は、ポリフューズ・アレイや磁気抵抗ROMのようなメモリ・テクノロジを使用できる。
ここでプログラム可能ロジック・ブロック110が実行することができる特定の機能の一例を検討する。システム・リセット信号や重要信号は、FPGAが構成され完全に機能する前に制御される必要がある。大規模FPGAが、そのシステム内で中心的な役割を果たすこともある。FPGAが重要信号、リセット、又はバスをドライブする場合には、FPGAは、それが構成されるまで信号を能動的に又は正確にドライブすることができない。電源投入と構成の間の不動作が、システムの適切な電源投入処理を妨げることがある。プログラム可能ロジック・ブロック110は、電源投入処理中に重要信号を制御してこれらの問題を解決することができる。
ブロック110は、構成を制御することもできるし、FPGA構成の前後でリセットを順番に配列することができる。ブロック110は、外部IO信号を使用せずに揮発性FPGAブロック・リセットを直接ドライブする能力を有する。
他の例として、ブロック110は、ブロック130に送出する構成データを確保するために使用することができる。ブロック110は、CPLDと同様に読出し禁止にすることができ、イン・システム構成(ISC)ポート131への内部バイパスを有することもできる。ブロック110は、外部ピンへのアクセスができないデータ暗号化/暗号解読を追加して実行することができる。
例えば、電源投入時にブロック110内のロジックを構成し、メモリ112内に記憶されている暗号化アルゴリズムに基づいてそのブロックに暗号解読スキームを実施させることができる。次いで、ブロック130のための構成データが、I/Oポート103を通してブロック110にロードされ、暗号解読される。その後、暗号解読された構成データが、ブロック110からブロック130へ(例えば、直接又はマルチプレクサ118を通して)ロードされる。
ブロック110は、暗号化スキームを各顧客向けに個人化し、顧客の安全性及び快適さを追加することができる。したがって顧客は、彼らが望む任意の暗号スキームを選択することができる。暗号アルゴリズムにハッカによるクラックが生じた場合には、顧客は、メモリ112に新しいアルゴリズムをロードすることによって簡単に暗号スキームを変更することができる。ブロック110を使用して、顧客の選択した非構成データ・ストリームを暗号化又は暗号解読することもできる。
FPGAのための構成データが専用のSROMからロードされないときには、標準のFLASHデバイス又はプロセッサ・バスからロードされるのが一般的である。いずれのソルーションにも、電源投入時にFPGAが構成される前にアクティブになっているいくつかのロジックが求められる。このロジックは、データを順番に配列し、不揮発性のデータ・ソースからFPGA構成ピン(ISC ポート)に転送する。FPGAは、プロセッサを含む広い範囲の不揮発性記憶デバイスや広い範囲のFPGA構成モードを受容することができるので、このロジックを内部で実行することは利点である。
図1を参照すると、ICの部分100は6つの領域101〜106を含む。各6つの領域101〜106は、別々のパワー・オン・リセット回路(POR1〜POR6)を含む。パワー・オン・リセット回路は、1つ又は複数のパワー・レール(又はパワー・グリッド)からの電源電圧を監視する。パワー・オン・リセット回路は、対応するパワー・レールからの電源電圧が予め決められたレベルに達した時期を示す出力信号を生成する。予め決められた電源電圧レベルは、ICの特定の領域が安全に機能をはじめることができる時期を示す。例えば、パワー・オン・リセット回路POR1は、領域101内の回路が電源投入後に動作を開始するのに許容できる最低の電圧レベルまで電源電圧が増加した時期を示す出力信号を生成する。
図1に示す回路の領域は、2つの区画に分割することができる。第1の区画は領域101〜104を含む。領域101〜104は、不揮発性メモリ・ブロック112とプログラム可能ロジック・ブロック110に関連している。領域105〜106はプログラム可能ロジック・ブロック130に関連している。
POR構成ブロック111は、パワー・オン・リセット回路POR1〜POR6を制御し、監視する。電源電圧が領域101〜104で許容値に達したことをパワー・オン・リセット回路POR1〜POR4が示すとすぐに、POR構成ブロック111は、不揮発性メモリ112にストアされている構成データを不揮発性のFPGAブロック110に転送する。
したがってPOR1〜POR4は、領域101〜104で電源が予め決められたレベルに達したらすぐに、領域105〜106での電源電圧の上昇を待つことなくブロック110内のプログラム可能ロジックを構成させる。この実施形態は、電源投入期間中のブロック110の構成速度をさらに速くできるようにする。
領域105〜106で電源が許容値に達したことをパワー・オン・リセット回路POR5、POR6が示したらすぐに、イン・システム構成データは外部のソースからマルチプレクサ118とISCインターフェース131を通してブロック130にロードされる。POR構成ブロック111又はブロック110内のプログラム可能ロジックは、マルチプレクサ118の選択入力を制御することができる。
図1に示すFPGAの実施形態では、領域103内のイン・システム構成(ISC)I/Oポートは、不揮発性プログラム可能ロジック・ブロック110と揮発性プログラム可能ロジック・ブロック130とのインターフェースを取っている。
或いは、ISCデータを不揮発性ブロック110にロードし、次でそれに続けてブロック130にロードすることができる。ISC構成データは、図1の矢印で示すようにブロック110からブロック130へ直接、或いはマルチプレクサ118とISCインターフェース131を通してロードされる。ブロック110内のプログラム可能ロジックは、ISC構成データをそれがブロック130にロードされる前に暗号化して顧客の回路設計を保護することができる。
不揮発性メモリ112は、電源が除去されたときデータ・パターンを失わない。例えばメモリ112を使用してFPGA構成ファイルと揮発性FPGA冗長情報を保持することができる。メモリ112は多くの方式で実現することができる。例えばメモリ112は、1回限りのプログラム可能メモリ・セルを有するメタル・ヒューズ・メモリとすることができる。メモリ112のその他の例にプログラム可能アンチ・フューズ・アレイ、メタル又はポリ・マスク・プログラム可能アレイ、フラッシュ・メモリ・アレイ、EEPROMメモリ・アレイ、LASERによってプログラムされたフューズ・アレイ、磁気抵抗メモリ・アレイ(MRAM)、強誘電体メモリ・アレイ(FeRAM)がある。メモリ・ブロック112の小さなサイズがその集積度上の可能性を増加する。
不揮発性メモリ112は、領域102内のJTAGI/Oテスト・ポート又は領域103内のISCポートを通してプログラムされる。不揮発性プログラム可能ロジック・ブロック110も、そのI/Oポートが既にブロック110を制御しているのでなければ領域103内のISCI/Oポートを通して、プログラムされる。不揮発性プログラム可能ブロック110は、汎用IOの小さなサブセットや、ISCのIOの全部、内部リセットとクロック用のバスのサブセット、内部ルーチン用のいくつかの汎用相互接続線にアクセスすることができる。
領域113は、ジョイント・テスト・アクション・グループ(JTAG)IOポートと関連回路を含む。領域113内の回路は、不揮発性メモリ112を良く知られた技術に従ってプログラムするJTAGコマンドをデコードする。領域103は、電源投入時に揮発性FPGAブロック130を構成するイン・システム構成(ISC)I/Oポートと関連回路を含む。ISCIOポートは、揮発性FPGA130の構成SRAMを再構成するために使用することもできる。さらに領域103内のISCIOポートと回路は、1回限りプログラム可能な不揮発性メモリ・プログラムが定義される前にブロック130内の不揮発性構成SRAMをプログラムするために使用することができる。プログラミング上のソルーションが、ブロック110又は112の構成についての前提条件を伴わずに利用可能であることが重要である。
POR構成ブロック111は、領域104内のIO並びに構成マルチプレクサ121やISCソース・マルチプレクサ122を制御する。POR構成ブロック111は、構成データをメモリ112から領域104内のI/Oバンクへマルチプレクサ122を通してロードし、領域104内のIOポートを構成することができる。POR構成111がそれを可能にすれば、揮発性ISCブロック131は、POR4のIOブロック104を再構成することもできる。
POR構成ブロック111は領域104内のI/Oバンクの制御を不揮発性FPGA110に与えることができる。ブロック110内のプログラム可能ロジックが構成されるとすぐにプログラム可能ロジックは、マルチプレクサ121の制御を決定する。マルチプレクサ121は、領域104内のI/Oポートと不揮発性ブロック110又は揮発性ブロック130の間で経路に沿って信号を送る。したがって入出力信号を、マルチプレクサ121を制御することにより領域104内のI/Oポートを通してブロック110内のプログラム可能ロジックか130内のプログラム可能ロジックに経路に沿って送ることができる。
図2は、本発明の第2の実施形態を示す。この実施形態によれば、2セットの構成データをメモリ・ブロック112内に記憶することができる。構成データの第1のセットは、ブート・パターンであり製造者によってプログラムされ、あらゆる顧客向けにASSPのようなFPGAの標準機能を提供する。この実施形態は、製造テスト・フローの簡単な変更によりFPGAの製造者が製品定義(product definition)を時間とともに変更することが可能であるという利点を有する。
ユーザーは、適用分野を決定したらすぐに、メモリ112に構成データを追加書き込みすることができる。例えばユーザーは、FPGAを様々な信号をテストするための診断モードで動作させるのに使用される構成データをメモリ112に記憶することができる。
OTP形の不揮発性メモリでは、メモリ・ブロック112内に2つのパーティションが必要である。1つのパーティションは、製造者のデフォルト・ブート構成データを記憶するために、1つのパーティションは、ユーザーの具体的なニーズにより良く応ずるためのユーザー構成データを記憶するために使用される。パーティションは図2のメモリ・ブロック112で示されている。構成ロジックは、ユーザー・パーティション内に有効データを検出した場合ブート構成をスキップすることができる。
図2の実施形態では、不揮発性メモリ112は十分なメモリを有し、したがってブロック110のために2セットの構成データを記憶することができる。本発明のさらなる実施形態では、不揮発性メモリ112は、2セットを超える構成データをブロック110のために記憶することができる。図2のメモリ112は、図1のメモリ112のN倍だけの量のメモリを記憶することができ、ここにNは、ブロック110を構成するのに必要な構成データのセットの数である。
図3Aは、本発明の他の実施形態を示している。今日のプログラム可能ロジック集積回路の多くはハード・インテレクチュアル・プロパティ・ブロック(HIP)を有する。HIPブロックは特定用途向け集積回路(ASIC)のセグメントであり、所定の機能を実行するために配線で接続されている。多数の顧客が同じ機能を求める場合、製造者はHIPブロックをプログラム可能ロジックICに追加する。特定の機能を実行するときASICは、一般的にFPGAより効率的である。しかしASICは、マスク・セットにより配線で接続された機能だけを実行することができるのでFPGAに比して柔軟性でずっと劣る。
FPGAの顧客は、特定タイプの回路機能に対して同一ではないが同様な要件を有していることが多い。このような場合には、プログラム可能性を組み込んだHIPブロックをFPGAに設けることが望ましい。図3Aに示す例では、プログラム可能レジスタ・セットの形態でHIPブロックにプログラム可能性が組み込まれており、それについては下記に詳細を説明する。プログラム可能レジスタ・セットは、HIPブロックの柔軟性を増す。
図3Aは、プログラム可能ロジックICのHIPブロック301内にある、CRAMで初期化されるレジスタ・セットのブロック図である。図3Aのブロック図は、ユーザー・モード期間中再構成することができる構成インターフェース320、FPGA構成初期化のための構成RAM(CRAM)312、モード・設定をIPロジック335に出力するプログラム可能レジスタ・セット330を示す。
IPロジック335は、特定の機能を実行するために配線で接続されたロジック回路をHIPブロック301内に収納している。プログラム可能レジスタ・セット330は、IPロジック335によって実行される機能にいくらかのプログラム可能性を与える。例えばレジスタ・セット330は、IPロジック335内のマルチプレクサ又はカウンタを制御して、ロジックの機能に関して多数の任意選択を提供することができる。
プログラム可能レジスタ・セット330は、FPGAのユーザー・モードの期間中にプログラムされ、電源投入時に固定機能を有する。レジスタ・セット330は、CRAM312に記憶されているビットであるユーザー・モード(User_Mode)信号からの、又はユーザー・モード構成インターフェース320からのユーザー・モード構成データによってプログラムされる。書込みロジック322はユーザー・モード構成データをマルチプレクサ325を通してレジスタ・セット330に送出する。CRAM312からの構成データも、マルチプレクサ325を通して直接レジスタ・セット330に送出することができる。
電源が投入されると、CRAM_n_configを1に、Write_Enを1にセットすることによってマルチプレクサ325が、CRAMインターフェース312を選択するように、書込みロジック322は規定値に初期設定される。プログラム可能ICのCRAMのビットは、FPGA構成サイクル期間中にロードされる。ユーザー・モードに入ると、プログラム可能ICのコアがユーザー・モード(User_Mode)信号をアサートし、クロック信号がトグル動作を始める。ユーザー・モード(User_Mode)信号のアサートに基づき、書込みロジック(Write_Logic)322内で同期自己タイミング回路を実行し、CRAMの値を初期設定値としてレジスタ・セット330に確実にサンプリングすることができる。
書込みロジック(Write_Logic)322は、CRAM_n_Configを0にセットすることによりマルチプレクサ325を切り替えてユーザー・モード構成インターフェース320を選択することができる。レジスタ・セット330の出力値は、ユーザー・モード期間中、(バスのプロトコル・スキームの)書込みサイクルにより、データをユーザー・モード構成コントローラ310からユーザー・モード構成インターフェース320を通してレジスタ・セット330にロードすることによってその値を変更することができる。ユーザー・モード構成コントローラ310は、構成データ・セットに従って構成されるプログラム可能ロジック・ブロックとして実現されるのが一般的である。レジスタ・セット330は、メモリ・マップド・レジスタとして実現されるのが一般的である。
レジスタ・セット330の出力値は、読み取りロジック321と構成インターフェース320により、モニタリング、デバッグ、テストの目的でその値を読戻すことができる。ユーザー・モード構成インターフェース320は、テスト目的でレジスタ・セット330に記憶された設定を読戻させ、その設定が正しいことを確認する。この実施形態の構成インターフェースを使用することによってCRAM312からHIPブロック301への接続性を確認しより良いテスト網羅度を得ることができる。
レジスタ・セット330は、CRAMによって非同期的に初期化されないことが好ましい。このような実施は、レジスタ・セット330が非同期セットと非同期リセットの両方をサポートする場合、競合状態を招きやすい。競合状態を回避するために余分なロジックを追加することができる。しかし、このようなロジックを追加するための全体的なコストは、前記に説明した同期初期化スキームに比べより高価である。
図3Aの実施形態には、いくつかの利点がある。例えばこの実施形態は、CRAMからレジスタ・セットへの接続性に対してより良いテスト網羅度を提供する。正確なCRAMの設定が、IP機能テスト・ベクトルを実施することによってのみ確認することができる従来式IPの機能テスト・スキームに比べ、テストの構造的な性質により、テスト時間も削減される。しかしこの実施形態は、ダイ面積のコストの面から非常に大規模なレジスタ・セットにとっては適切ではないこともある。
本発明の他の実施形態によればプログラム可能HIPブロック301は、図1又は図2のプログラム可能ロジック・ブロック110にとって代わることができる。図3Bが、この実施形態を示している。図3Bは、HIPブロック301が揮発性プログラム可能ロジック・ブロック130と関係なく動作することを可能にしている。
図3Bは、少量のプログラミングでHIPブロック301の能力をも最大化し、瞬時オンにする。図3BのHIPブロック301は、メモリ112に記憶された少量の構成データを必要とするだけなのでメモリ・ブロック112は多くのタイプのメモリ(例えばポリフューズ、磁気抵抗ROMその他)を使用して実現することができる。
図3Bの実施形態は、プログラム可能ロジック301、130のアーキテクチャが同一である必要はないことを示している。ブロック301、130のアーキテクチャは、いくらかのプログラム可能性を有することを必要とするのみである。ブロック301は、ブロック130に比して非常に少ない構成ビットを必要とすることも望ましい(ただし、必要ではない)。一般的にブロック301の面積や複雑さがより小さな必要はない。
図4は、本発明の態様を含むことができるPLD400の一例の簡素化した部分ブロック図である。本発明を、基本的にPLDやFPGAの文脈で論議しているが、本発明を多くのタイプのプログラム可能集積回路に適用することができることを理解されたい。PLD400は、その中で本発明の技術を実行することができるプログラム可能集積回路の一例である。PLD400は、様々な長さと速度の内部接続の列と行のネットワークにより相互接続されたプログラム可能ロジック・アレイ・ブロック(LAB)402の2次元配列を含む。LAB402は、多数(例えば10個)のロジック要素(LE)を含む。
LEは、ユーザーが定義したロジック機能を効率よく実行するプログラム可能ロジック・ブロックである。PLDは、様々な組み合せ機能と逐次的機能を実行するように構成することができる数多くのロジック要素を有する。ロジック要素は、プログラム可能な相互接続構造にアクセスできる。プログラム可能な相互接続構造は、ほぼ如何なる所望の形にも構成することができる。
PLD400は、アレイにわたって設けられている様々なサイズのRAMブロックを含む分散化メモリ構造も含む。RAMブロックは、例えば512ビットのブロック404、4Kのブロック406と512KビットのRAMを提供するブロック(Block)408を含む。これらメモリ・ブロックはシフト・レジスタやFIFOバッファも含むことができる。
PLD400は、例えば、加算又は減算機能をもつ乗算器を実行することができるディジタル・シグナル・プロセシング(DSP)ブロック410をさらに含む。本例では、デバイスの周辺機器周りに配置されているI/O要素(IOE)412は、数多くのシングルエンド形や差動形のI/O標準をサポートする。本明細書では、PLD400が例示的な目的のために限って説明されているが、本発明は多くの異なるタイプのPLD,FPGA、その他の同様なもので実行することができることを理解されたい。
図4に示されているタイプのPLDは、システム・レベルのソルーションを実行するために必要な多くの資源を提供するが、本発明は、PLDがいくつかの構成部品の1つであるシステムにも利点を与える。図5が、本発明を実施することができる例示的ディジタル・システム500のブロック図を示している。システム500は、プログラムされたディジタル・コンピュータ・システム、ディジタル・シグナル・プロセシング・システム、特化したディジタル・スイッチング・ネットワーク、又はその他のプロセシング・システムなどである。さらに、そのようなシステムは、電気通信システム、自動車システム、制御システム、民生用電子機器、パーソナル・コンピュータ、インターネット通信、ネットワーク、その他の広範囲にわたる適用分野に対して設計することができる。さらにシステム500は、単一のボード上にも、複数のボード上にも、或いは複数の筐体内にも設けることができる。
システム500は、1つ又は複数のバスで相互に接続されたプロセシング・ユニット502、メモリ・ユニット504、I/Oユニット506を含む。この例示的な実施形態によればプログラム可能ロジック・デバイス(PLD)508は、プロセシング・ユニット502に埋め込まれている。PLD508は、図5のシステム内で多くの異なった目的を満たすことができる。PLD508は、例えばプロセシング・ユニット502のロジカル・ビルディング・ブロックとしてその内部オペレーション動作や外部オペレーション動作をサポートすることができる。PLD508は、システム・オペレーションにおける特定の役割を続行するために必要なロジカル機能を実行するようにプログラムされる。PLD508は、接続510を通してメモリ504に、接続512を通してI/Oユニット506に特別に連結することができる。
プロセシング・ユニット502は、処理し又は記憶するためにデータを適切なシステム構成要素に案内し、メモリ504に記憶されたプログラムを実行し、I/Oユニット506を経由してデータを受領し、転送し或いは他の同様の機能を実施することができる。プロセシング・ユニット502は、中央処理ユニット(CPU)、マイクロプロセッサ、浮動小数点コプロセッサ、グラフィック・コプロセッサ、ハードウェア・コントローラ、マイクロコントローラ、コントローラとして使用するためにプログラムされたプログラム可能ロジック・デバイス、ネットワーク・コントローラ、その他の同様のものである。さらに多くの実施形態では、CPUが必要でないこともある。
例えばCPUに代わって1つ又は複数のPLD508がシステムの論理オペレーションを制御することができる。一実施形態では、PLD508は、必要に応じて特定の計算作業を処理するために再プログラムすることができる再構成可能なプロセッサとして動作する。或いはプログラム可能ロジック・デバイス508は、それ自身に埋め込まれたマイクロプロセッサを含むことができる。メモリ・ユニット504は、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、固定又は柔軟なディスク・メディア、PCカード(PC Card)フラッシュ・ディスク・メモリ、テープ、又はその他の記憶手段、或いはこれら記憶手段の組み合せとすることができる。
本明細書では、本発明をその具体的な実施形態を参考に説明してきたが、変形の自由、様々な変更と置換は本発明の意図するものである。時には、本発明の特徴を、その他の特徴を対応して使用することなく、規定された本発明の範囲を逸脱することなしに採用することができる。したがって本発明の基本的な範囲と趣旨から逸脱することなしに、開示した具体的な構成又は方法を適合させるために多くの改変をすることができる。本発明は、開示した具体的な実施形態に限定するものではなく、特許請求の範囲に収まる全ての実施形態及び同等物を含むものとする。
本発明の第1の実施形態による、オン・チップ・不揮発性メモリによって構成されるプログラム可能ロジックのブロック及びオフ・チップ・メモリによって構成されるプログラム可能ロジックのブロックを含むICを示す図である。 本発明の第2の実施形態による、ユーザー及び製造者の構成データを貯蔵するのに十分な大きさであるオン・チップ・不揮発性メモリ・ブロックをもつ、図1に示すICを示す図である。 本発明の第3の実施形態による、プログラム可能ロジックIC上にあり、そのプログラム可能ロジックICが有するプログラム可能レジスタ・セットによりプログラム可能性(programmability)を与えられるハード・インテレクチュアル・プロパティ(HIP)ブロックを示す図である。 本発明の第4の実施形態による、図3Aのプログラム可能HIPブロック及びオフ・チップ・メモリによって構成されるプログラム可能ロジックのブロックを含むICを示す図である。 本発明の技術で使用することができるプログラム可能ロジック・デバイスの簡素化したブロック図である。 本発明の実施形態を実現することができる電子システムのブロック図である。
符号の説明
100 プログラム可能ロジック集積回路(IC)の部分、103 I/Oポート、110 第1のブロック、111 パワー・オン・リセット構成ブロック、112 不揮発性メモリ・ブロック、118 マルチプレクサ、121 マルチプレクサ、122 マルチプレクサ、130 第2のブロック、131 イン・システム構成ブロック、301 HIPブロック、310 構成コントローラ、312 RAM、320 構成インターフェース、322 書込みロジック、325 マルチプレクサ、330 プログラム可能レジスタ・セット、335 IPロジック、400 PLD、402 ロジック・アレイ4、404 RAMブロック、406 RAMブロック、408 RAMブロック、410 シグナル・プロセシング・ブロック、500 ディジタル・システム、502 プロセシング・ユニット、504 メモリ・ユニット、506 I/Oユニット、508 プログラム可能ロジック・デバイス、510 接続

Claims (27)

  1. 不揮発性メモリ・ブロックと、
    前記不揮発性メモリ・ブロック内に記憶された構成データによって構成されるプログラム可能ロジックの第1のブロックと、
    イン・システム構成インターフェースと、
    前記イン・システム構成インターフェースを通して第2のプログラム可能ロジック・ブロックにロードされる外部構成データにより構成されるプログラム可能ロジックの第2のブロックと、
    から構成され、前記第1のブロックは前記第2のブロック構成において補助動作可能であることを特徴とする集積回路。
  2. 前記プログラム可能ロジックの第2のブロックは、前記プログラム可能ロジックの第1のブロックを通して構成データを転送することによってプログラムされることを特徴とする請求項1に記載の集積回路。
  3. 第1のパワー・オン・リセット回路と、
    前記第1のパワー・オン・リセット回路、前記不揮発性メモリ・ブロック、および前記プログラム可能ロジックの第1のブロックに接続されたパワー・オン・リセット構成ブロックと、
    をさらに備え、電源電圧が所定の値に達したことを前記第1のパワー・オン・リセット回路が示したときに、前記パワー・オン・リセット構成ブロックは構成データを前記不揮発性メモリ・ブロックから前記プログラム可能ロジックの第1のブロックに転送することを特徴とする請求項1に記載の集積回路。
  4. 前記パワー・オン・リセット構成ブロックに接続された第2のパワー・オン・リセット回路をさらに備え、
    電源電圧が所定の値に達したことを前記第2のパワー・オン・リセット回路が示したときに、前記パワー・オン・リセット構成ブロックは構成データを外部メモリから前記プログラム可能ロジックの第2のブロックに転送することを特徴とする請求項3に記載の集積回路。
  5. 前記第1又は第2のパワー・オン・リセット回路と集積回路の同じ部分に存在する新たなパワー・オン・リセット回路をさらに有することを特徴とする請求項4に記載の集積回路。
  6. 第1のI/Oブロックと、
    前記第1のI/Oブロックに接続された第1の入力端子、前記プログラム可能ロジックの第1のブロックに接続された第2の入力端子、イン・システム構成インターフェースに接続された出力端子、および前記プログラム可能ロジックの第1のブロックに接続された選択入力を有する第1のマルチプレクサと、
    をさらに有することを特徴とする請求項1に記載の集積回路。
  7. 第2のI/Oブロックと、
    前記第2のI/Oブロック及び前記不揮発性メモリ・ブロックに接続されたJTAGインターフェースとをさらに備えることを特徴とする請求項6に記載の集積回路。
  8. 第3のI/Oブロックと、
    前記第3のI/Oブロック、前記プログラム可能ロジックの第1のブロック、および前記プログラム可能ロジックの第2のブロックに接続された第2のマルチプレクサと、
    をさらに有することを特徴とする請求項7に記載の集積回路。
  9. 前記プログラム可能ロジックの第2のブロックに接続された第4のI/Oブロックをさらに備えることを特徴とする請求項8に記載の集積回路。
  10. 前記プログラム可能ロジックの第1のブロックと前記プログラム可能ロジックの第2のブロックは共にSRAMプログラム可能ロジック・セルのブロックを収納することを特徴とする請求項1に記載の集積回路。
  11. 前記プログラム可能ロジックの第1のブロックは部分的にプログラム可能なハード・インテレクチュアル・プロパティ・ブロックを収納し、前記プログラム可能ロジックの第2のブロックはSRAMプログラム可能ロジック・セルのブロックを収納することを特徴とする請求項1に記載の集積回路。
  12. 前記第1のプログラム可能ロジック・ブロックのための暗号化アルゴリズムは前記不揮発性メモリ・ブロックに記憶されていることを特徴とする請求項1に記載の集積回路。
  13. ブート・パターンは前記不揮発性メモリ・ブロックの第1の部分に記憶され、ユーザー・データは前記不揮発性メモリ・ブロックの第2の部分に記憶されていることを特徴とする請求項1に記載の集積回路。
  14. 集積回路(IC)を製造するための方法であって、前記方法は、
    前記IC上に不揮発性のメモリ・ブロックを設けるステップと、
    前記不揮発性のメモリ・ブロックに記憶された構成データによって構成されるように設計されたプログラム可能ロジックの第1のブロックを前記IC上に設けるステップと、
    イン・システム構成インターフェースを前記IC上に設けるステップと、
    前記イン・システム構成インターフェースを通して前記第2のプログラム可能ロジック・ブロックにロードされた構成データによって構成されるように設計されたプログラム可能ロジックの第2のブロックを前記IC上に設けるステップと、
    から構成されることを特徴とする方法。
  15. 第1のパワー・オン・リセット回路を前記IC上に設けるステップと、
    前記第1のパワー・オン・リセット回路は、電源電圧が所定の値に達したことを示したときに構成データを前記不揮発性メモリ・ブロックから前記プログラム可能ロジックの第1のブロックに転送するように設計されたパワー・オン・リセット構成ブロックを前記IC上に設けるステップと、
    をさらに有することを特徴とする請求項14に記載の方法。
  16. 第2のパワー・オン・リセット回路を前記IC上に設けるステップであって、前記パワー・オン・リセット構成ブロックは、前記第2のパワー・オン・リセット回路が、電源電圧が所定の値に達したことを示したときに、構成データを外部メモリから前記プログラム可能ロジックの第2のブロックに転送するように設計されているステップをさらに備えることを特徴とする請求項15に記載の方法。
  17. プログラム可能ロジックの前記第1のブロックとプログラム可能ロジックの前記第2のブロックは共にSRAMプログラム可能ロジック・セルのブロックを収納することを特徴とする請求項14に記載の方法。
  18. 前記プログラム可能ロジックの第1のブロックは、部分的にプログラム可能なハード・インテレクチュアル・プロパティ・ブロックを、前記プログラム可能ロジックの第2のブロックはSRAMプログラム可能ロジック・セルのブロックを収納することを特徴とする請求項14に記載の方法。
  19. 前記不揮発性メモリ・ブロックの第1の部分にブート・パターンを記憶するステップをさらに備え、前記不揮発性メモリ・ブロックの第2の部分はユーザー・データを記憶するために利用可能であることを特徴とする請求項14に記載の方法。
  20. 前記不揮発性メモリ・ブロックに暗号化アルゴリズムを記憶するステップをさらに備え、前記暗号化アルゴリズムは前記外部構成データを暗号化するために使用されることを特徴とする請求項14に記載の方法。
  21. イン・システム構成インターフェースと、
    前記イン・システム構成インターフェースを通して集積回路にロードされる外部構成データにより第1のプログラム可能ロジック回路を構成するための手段と、
    不揮発性記憶ブロックと、
    前記不揮発性記憶ブロックに記憶されている内部構成データにより第2のプログラム可能ロジック回路を構成するための手段と、
    から構成され、前記第1のブロックは前記第2のブロック構成において補助動作可能であることを特徴とする集積回路。
  22. 前記第1のプログラム可能ロジック回路を構成するための前記手段および前記第2のプログラム可能ロジック回路を構成するための前記手段は、共にSRAMセルを備えることを特徴とする請求項21による集積回路。
  23. 前記第1のプログラム可能ロジック回路を構成するための前記手段はSRAMセルを備え、前記第2のプログラム可能ロジック回路を構成するための前記手段は部分的にプログラム可能なハード・インテレクチュアル・プロパティ・ブロックとレジスタ・セットを備えることを特徴とする請求項21に記載の集積回路。
  24. 前記不揮発性記憶ブロックは、ブート・データを記憶するための第1の部分とユーザー・データを記憶するための第2の部分を有することを特徴とする請求項21に記載の集積回路。
  25. 前記不揮発性記憶ブロックは、前記外部構成データを暗号化するための暗号化アルゴリズムを記憶することを特徴とする請求項21に記載の集積回路。
  26. プログラム可能ロジックのブロックと、
    プログラム可能レジスタ・セットや特定用途向け集積回路を含む部分的にプログラム可能なハード・インテレクチュアル・プロパティ・ブロック(HIP)と、
    から構成され、前記プログラム可能レジスタ・セットは前記特定用途向け集積回路のサブセットの機能を制御するように構成されており、前記部分的にプログラム可能なHIPブロックのロジック回路は、前記集積回路の電源投入時にCRAMからの構成データを前記プログラム可能レジスタ・セットにロードすることを特徴とする集積回路。
  27. 前記部分的にプログラム可能なHIPブロック内のロジック回路は、ユーザー・モード構成コントローラから構成インターフェースを通してデータを前記プログラム可能レジスタ・セットにロードすることを特徴とする請求項26に記載の集積回路。
JP2005336979A 2004-12-02 2005-11-22 集積回路上で揮発性と不揮発性プログラム可能ロジックを結合させるための技術 Expired - Fee Related JP4249745B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/003,586 US7242218B2 (en) 2004-12-02 2004-12-02 Techniques for combining volatile and non-volatile programmable logic on an integrated circuit

Publications (3)

Publication Number Publication Date
JP2006166430A JP2006166430A (ja) 2006-06-22
JP2006166430A5 JP2006166430A5 (ja) 2008-12-11
JP4249745B2 true JP4249745B2 (ja) 2009-04-08

Family

ID=36078904

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005336979A Expired - Fee Related JP4249745B2 (ja) 2004-12-02 2005-11-22 集積回路上で揮発性と不揮発性プログラム可能ロジックを結合させるための技術

Country Status (4)

Country Link
US (1) US7242218B2 (ja)
EP (1) EP1667327A3 (ja)
JP (1) JP4249745B2 (ja)
CN (1) CN1815628B (ja)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7190190B1 (en) * 2004-01-09 2007-03-13 Altera Corporation Programmable logic device with on-chip nonvolatile user memory
US7689726B1 (en) * 2004-10-01 2010-03-30 Xilinx, Inc. Bootable integrated circuit device for readback encoding of configuration data
US7442583B2 (en) * 2004-12-17 2008-10-28 International Business Machines Corporation Using electrically programmable fuses to hide architecture, prevent reverse engineering, and make a device inoperable
US20060136858A1 (en) * 2004-12-17 2006-06-22 International Business Machines Corporation Utilizing fuses to store control parameters for external system components
US20080061817A1 (en) * 2004-12-17 2008-03-13 International Business Machines Corporation Changing Chip Function Based on Fuse States
US7919979B1 (en) * 2005-01-21 2011-04-05 Actel Corporation Field programmable gate array including a non-volatile user memory and method for programming
US20060194603A1 (en) * 2005-02-28 2006-08-31 Rudelic John C Architecture partitioning of a nonvolatile memory
US8395426B2 (en) * 2005-05-19 2013-03-12 Broadcom Corporation Digital power-on reset controller
US7538577B2 (en) * 2005-06-29 2009-05-26 Thomas Bollinger System and method for configuring a field programmable gate array
US7403051B1 (en) * 2006-01-26 2008-07-22 Xilinx, Inc. Determining voltage level validity for a power-on reset condition
JP2007251329A (ja) * 2006-03-14 2007-09-27 Matsushita Electric Ind Co Ltd プログラマブルロジックデバイス
US7327595B2 (en) * 2006-05-09 2008-02-05 Analog Devices, Inc. Dynamically read fuse cell
US7570078B1 (en) 2006-06-02 2009-08-04 Lattice Semiconductor Corporation Programmable logic device providing serial peripheral interfaces
US7378873B1 (en) * 2006-06-02 2008-05-27 Lattice Semiconductor Corporation Programmable logic device providing a serial peripheral interface
US7495970B1 (en) * 2006-06-02 2009-02-24 Lattice Semiconductor Corporation Flexible memory architectures for programmable logic devices
US7375546B1 (en) 2006-06-08 2008-05-20 Xilinx, Inc. Methods of providing performance compensation for supply voltage variations in integrated circuits
US7368940B1 (en) * 2006-06-08 2008-05-06 Xilinx, Inc. Programmable integrated circuit with selective programming to compensate for process variations and/or mask revisions
US7362129B1 (en) 2006-06-08 2008-04-22 Xilinx, Inc. Methods of providing performance compensation for process variations in integrated circuits
US7529993B1 (en) 2006-06-08 2009-05-05 Xilinx, Inc. Method of selectively programming integrated circuits to compensate for process variations and/or mask revisions
US7365563B1 (en) 2006-06-08 2008-04-29 Xilinx, Inc. Integrated circuit with performance compensation for process variation
US20080306723A1 (en) * 2007-06-08 2008-12-11 Luca De Ambroggi Emulated Combination Memory Device
US7576561B1 (en) * 2007-11-13 2009-08-18 Xilinx, Inc. Device and method of configuring a device having programmable logic
US7795909B1 (en) * 2008-04-15 2010-09-14 Altera Corporation High speed programming of programmable logic devices
WO2010038293A1 (ja) * 2008-10-01 2010-04-08 富士通株式会社 半導体装置、情報処理装置及び半導体装置の構築方法
WO2010070736A1 (ja) * 2008-12-16 2010-06-24 株式会社島津製作所 プログラマブルデバイス制御装置およびその方法
US7888965B2 (en) * 2009-01-29 2011-02-15 Texas Instruments Incorporated Defining a default configuration for configurable circuitry in an integrated circuit
EP2224344A1 (en) * 2009-02-27 2010-09-01 Panasonic Corporation A combined processing and non-volatile memory unit array
US8433950B2 (en) * 2009-03-17 2013-04-30 International Business Machines Corporation System to determine fault tolerance in an integrated circuit and associated methods
US8174287B2 (en) * 2009-09-23 2012-05-08 Avaya Inc. Processor programmable PLD device
US8417874B2 (en) * 2010-01-21 2013-04-09 Spansion Llc High speed memory having a programmable read preamble
US8358553B2 (en) * 2010-06-07 2013-01-22 Xilinx, Inc. Input/output bank architecture for an integrated circuit
US9543956B2 (en) * 2011-05-09 2017-01-10 Intel Corporation Systems and methods for configuring an SOPC without a need to use an external memory
US8625345B2 (en) * 2011-07-27 2014-01-07 Micron Technology, Inc. Determining and transferring data from a memory array
US8611138B1 (en) 2012-01-20 2013-12-17 Altera Corporation Circuits and methods for hardening volatile memory circuits through one time programming
US9335954B2 (en) * 2012-09-10 2016-05-10 Texas Instruments Incorporated Customizable backup and restore from nonvolatile logic array
US9547034B2 (en) * 2013-07-03 2017-01-17 Xilinx, Inc. Monolithic integrated circuit die having modular die regions stitched together
US10192062B2 (en) * 2014-06-20 2019-01-29 Cypress Semiconductor Corporation Encryption for XIP and MMIO external memories
US10169618B2 (en) 2014-06-20 2019-01-01 Cypress Semiconductor Corporation Encryption method for execute-in-place memories
US10691838B2 (en) 2014-06-20 2020-06-23 Cypress Semiconductor Corporation Encryption for XIP and MMIO external memories
DE102015110729A1 (de) * 2014-07-21 2016-01-21 Dspace Digital Signal Processing And Control Engineering Gmbh Anordnung zur teilweisen Freigabe einer Debuggingschnittstelle
CN109783435A (zh) * 2014-10-27 2019-05-21 阿尔特拉公司 具有嵌入式可编程逻辑的集成电路器件
CN107111663B (zh) * 2014-11-12 2021-01-08 赛灵思公司 目标为可编程集成电路的异构型多处理器程序编译
US9847783B1 (en) * 2015-10-13 2017-12-19 Altera Corporation Scalable architecture for IP block integration
GB2567215B (en) 2017-10-06 2020-04-01 Advanced Risc Mach Ltd Reconfigurable circuit architecture
US10956241B1 (en) 2017-12-20 2021-03-23 Xilinx, Inc. Unified container for hardware and software binaries
JP7064060B1 (ja) * 2019-04-23 2022-05-09 アーバー・カンパニー・エルエルエルピイ 二重機能セルアレイを再構成するためのシステムおよび方法
US10782759B1 (en) 2019-04-23 2020-09-22 Arbor Company, Lllp Systems and methods for integrating batteries with stacked integrated circuit die elements
US10587270B2 (en) 2019-06-12 2020-03-10 Intel Corporation Coarse-grain programmable routing network for logic devices
US10949204B2 (en) * 2019-06-20 2021-03-16 Microchip Technology Incorporated Microcontroller with configurable logic peripheral
US20210011732A1 (en) 2019-07-09 2021-01-14 MemryX Inc. Matrix Data Reuse Techniques in Processing Systems
US10749528B2 (en) 2019-08-20 2020-08-18 Intel Corporation Stacked programmable integrated circuitry with smart memory
US10992299B1 (en) * 2020-03-09 2021-04-27 Gowin Semiconductor Corporation Method and system for providing word addressable nonvolatile memory in a programmable logic device
US11463524B2 (en) 2020-06-29 2022-10-04 Arbor Company, Lllp Mobile IoT edge device using 3D-die stacking re-configurable processor module with 5G processor-independent modem
US11468220B2 (en) * 2020-07-24 2022-10-11 Gowin Semiconductor Corporation Method and system for enhancing programmability of a field-programmable gate array via a dual-mode port
US11662923B2 (en) 2020-07-24 2023-05-30 Gowin Semiconductor Corporation Method and system for enhancing programmability of a field-programmable gate array
US11829480B2 (en) * 2022-04-20 2023-11-28 Quanta Computer Inc. Remote access of system register configuration
US20240104280A1 (en) * 2022-09-22 2024-03-28 Apple Inc. Functional Circuit Block Harvesting in Integrated Circuits

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08148580A (ja) * 1994-08-01 1996-06-07 Seiko Instr Inc 半導体集積回路装置
US5548228A (en) * 1994-09-28 1996-08-20 Altera Corporation Reconfigurable programmable logic device having static and non-volatile memory
US5734868A (en) * 1995-08-09 1998-03-31 Curd; Derek R. Efficient in-system programming structure and method for non-volatile programmable logic devices
US5784313A (en) * 1995-08-18 1998-07-21 Xilinx, Inc. Programmable logic device including configuration data or user data memory slices
US6005806A (en) * 1996-03-14 1999-12-21 Altera Corporation Nonvolatile configuration cells and cell arrays
US6097211A (en) * 1996-07-18 2000-08-01 Altera Corporation Configuration memory integrated circuit
US5970142A (en) * 1996-08-26 1999-10-19 Xilinx, Inc. Configuration stream encryption
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
US6102963A (en) * 1997-12-29 2000-08-15 Vantis Corporation Electrically erasable and reprogrammable, nonvolatile integrated storage device with in-system programming and verification (ISPAV) capabilities for supporting in-system reconfiguring of PLD's
US6145020A (en) * 1998-05-14 2000-11-07 Advanced Technology Materials, Inc. Microcontroller incorporating an enhanced peripheral controller for automatic updating the configuration date of multiple peripherals by using a ferroelectric memory array
US6107821A (en) * 1999-02-08 2000-08-22 Xilinx, Inc. On-chip logic analysis and method for using the same
US6260087B1 (en) * 1999-03-03 2001-07-10 Web Chang Embedded configurable logic ASIC
JP3754221B2 (ja) * 1999-03-05 2006-03-08 ローム株式会社 マルチチップ型半導体装置
US6515509B1 (en) 2000-07-13 2003-02-04 Xilinx, Inc. Programmable logic device structures in standard cell devices
US6490707B1 (en) 2000-07-13 2002-12-03 Xilinx, Inc. Method for converting programmable logic devices into standard cell devices
US6526563B1 (en) 2000-07-13 2003-02-25 Xilinx, Inc. Method for improving area in reduced programmable logic devices
US6538468B1 (en) * 2000-07-31 2003-03-25 Cypress Semiconductor Corporation Method and apparatus for multiple boot-up functionalities for a programmable logic device (PLD)
US6441641B1 (en) * 2000-11-28 2002-08-27 Xilinx, Inc. Programmable logic device with partial battery backup
WO2002057921A1 (en) * 2001-01-19 2002-07-25 Hitachi,Ltd Electronic circuit device
JP3904859B2 (ja) * 2001-07-30 2007-04-11 シャープ株式会社 パワーオンリセット回路およびこれを備えたicカード
US6918027B2 (en) * 2001-07-30 2005-07-12 Hewlett-Packard Development Company, L.P. System and method for in-system programming through an on-system JTAG bridge of programmable logic devices on multiple circuit boards of a system
US6766406B1 (en) * 2001-10-08 2004-07-20 Lsi Logic Corporation Field programmable universal serial bus application specific integrated circuit and method of operation thereof
KR100479810B1 (ko) * 2002-12-30 2005-03-31 주식회사 하이닉스반도체 불휘발성 메모리 장치
CN1266621C (zh) * 2003-02-18 2006-07-26 明基电通股份有限公司 可重复下载数据至现场可编程门阵列的方法及装置
CN1219256C (zh) * 2003-06-18 2005-09-14 上海北大方正科技电脑系统有限公司 用可编程门阵列对打印机控制器进行硬件逻辑配置的方法
US6842034B1 (en) * 2003-07-01 2005-01-11 Altera Corporation Selectable dynamic reconfiguration of programmable embedded IP
US7170315B2 (en) * 2003-07-31 2007-01-30 Actel Corporation Programmable system on a chip
US7030646B1 (en) * 2003-09-02 2006-04-18 Altera Corporation Functional pre-configuration of a programmable logic device
US20050093572A1 (en) * 2003-11-03 2005-05-05 Macronix International Co., Ltd. In-circuit configuration architecture with configuration on initialization function for embedded configurable logic array
US20050102573A1 (en) * 2003-11-03 2005-05-12 Macronix International Co., Ltd. In-circuit configuration architecture for embedded configurable logic array

Also Published As

Publication number Publication date
US20060119384A1 (en) 2006-06-08
JP2006166430A (ja) 2006-06-22
US7242218B2 (en) 2007-07-10
CN1815628B (zh) 2010-10-27
CN1815628A (zh) 2006-08-09
EP1667327A2 (en) 2006-06-07
EP1667327A3 (en) 2010-05-19

Similar Documents

Publication Publication Date Title
JP4249745B2 (ja) 集積回路上で揮発性と不揮発性プログラム可能ロジックを結合させるための技術
US7190190B1 (en) Programmable logic device with on-chip nonvolatile user memory
US7495970B1 (en) Flexible memory architectures for programmable logic devices
US5737766A (en) Programmable gate array configuration memory which allows sharing with user memory
US5809281A (en) Field programmable gate array with high speed SRAM based configurable function block configurable as high performance logic or block of SRAM
US6097211A (en) Configuration memory integrated circuit
US7919979B1 (en) Field programmable gate array including a non-volatile user memory and method for programming
EP1716641B1 (en) Upgradeable and reconfigurable programmable logic device
US7420392B2 (en) Programmable gate array and embedded circuitry initialization and processing
US7576561B1 (en) Device and method of configuring a device having programmable logic
US7446561B2 (en) I/O circuitry shared between processor and programmable logic portions of an integrated circuit
US6828823B1 (en) Non-volatile and reconfigurable programmable logic devices
JP3939698B2 (ja) 埋込み固定論理回路をサポートする相互接続ロジックを有するプログラマブルゲートアレイ
US7375551B1 (en) Techniques for configuring programmable logic using on-chip nonvolatile memory
JP2008526110A (ja) Fpgaにおける揮発性メモリベースのプログラマブル回路のための不揮発性メモリ構成方式
US7154297B1 (en) Programmable logic with programmable volatility
JP2004056716A (ja) 半導体装置
US10855285B2 (en) Field programmable transistor arrays
US7683660B1 (en) Programmable logic device with a microcontroller-based control system
US6029236A (en) Field programmable gate array with high speed SRAM based configurable function block configurable as high performance logic or block of SRAM
US6680871B1 (en) Method and apparatus for testing memory embedded in mask-programmable logic device
US7554358B1 (en) Programmable logic devices with user non-volatile memory
US7225321B2 (en) Reprogrammable microprogram based reconfigurable multi-cell logic concurrently processing configuration and data signals
JP2015082671A (ja) 半導体装置
US7724029B1 (en) Power management for integrated circuits such as programmable logic devices

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081024

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081024

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20081024

TRDD Decision of grant or rejection written
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20081209

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081216

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090115

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120123

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4249745

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130123

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees