JPH11511307A - 非揮発性プログラム可能論理装置用の効率的なインシステムプログラミング構成体及び方法 - Google Patents

非揮発性プログラム可能論理装置用の効率的なインシステムプログラミング構成体及び方法

Info

Publication number
JPH11511307A
JPH11511307A JP9508692A JP50869297A JPH11511307A JP H11511307 A JPH11511307 A JP H11511307A JP 9508692 A JP9508692 A JP 9508692A JP 50869297 A JP50869297 A JP 50869297A JP H11511307 A JPH11511307 A JP H11511307A
Authority
JP
Japan
Prior art keywords
register
data
isp
address
instruction
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.)
Pending
Application number
JP9508692A
Other languages
English (en)
Inventor
アール. カード,ディレック
ケイ. ラオ,カメスワラ
ダブリュ. リー,ナポレオン
Original Assignee
ザイリンクス,インコーポレイテッド
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 ザイリンクス,インコーポレイテッド filed Critical ザイリンクス,インコーポレイテッド
Publication of JPH11511307A publication Critical patent/JPH11511307A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318516Test of programmable logic devices [PLDs]
    • 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]
    • 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/17704Logic 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 the logic functions being realised by the interconnection of rows and columns

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Read Only Memory (AREA)

Abstract

(57)【要約】 非揮発性プログラム可能論理装置用のインシステムプログラミング/消去/検証構成体は、データ入力ピン(TDI)、データ出力ピン、命令レジスタ(103A,103B)、ISPレジスタを含む複数個のデータレジスタ(506A,506B)、尚前記命令レジスタ及び前記複数個のデータレジスタは前記データ入力ピンと前記データ出力ピンとの間において並列的に結合されており、且つ前記命令レジスタ及び前記複数個のデータレジスタを同期させるコントローラを有している。該ISPレジスタは、アドレスフィールドと、データフィールドと、ステータスフィールドとを有している。装置全体をプログラム/消去するために、ISP命令は一度エンターさせることが必要であるに過ぎない。特に、アドレス/データパケットは、データ入力ピンにおいて各パケット間において複数個の命令を挿入することの必要性なしに、ISPレジスタ内へ連続してシフト入力させることが可能であり、それにより公知のISP方法と比較して、装置全体をプログラム/消去するために必要な時間を著しく減少させている。更に、本発明は、エンドユーザか又はサポート用のソフトウエアのいずれかに対してISP動作のステータス(即ち、結果)を供給するための効率的な方法を提供している。

Description

【発明の詳細な説明】 非揮発性プログラム可能論理装置用の効率的な インシステムプログラミング構成体及び方法発明の背景 発明の分野 本発明はプログラム可能論理装置に関するものであって、更に詳細には、これ らの装置用のインシステム(システム内)プログラミング技術に関するものであ る。従来の技術 プログラム可能論理装置(PLD)は、典型的に、プログラミングすることに よってユーザの設計に対して特定的なデータ経路及び論理機能を該装置内に形成 することの可能な1つ又はそれ以上の非揮発性メモリセル(例えば、EPROM 、EEPROM、フラッシュEPROM、又はフラッシュEEPROM)アレイ を使用している。典型的に、これらのアレイは消去可能であり、その際に該PL Dに所望の機能性を何回も再書込することを可能としている。 種々のタイプのプログラム、消去及び検証動作が、ユーザがPLDをプログラ ム(書込)及び再プログラム(再書込)することを可能としている。プログラミ ングソケットにおいてシステム外でプログラム されるPLDの場合には、メモリアレイの内容をプログラミングし、消去し検証 するための負担の多くは該プログラマを制御するソフトウエアにおかれている。 更に、システム外プログラマは、典型的に、チップのアドレスピン及びデータピ ンに対して並列的なアクセスを有しており、その際にプログラミングソフトウエ アが該装置をプログラムするのに必要とされる必要なアドレス及びデータパケッ トを介して迅速にサイクル動作することを可能とし、そのことはプログラミング 操作の効率に寄与している。 然しながら、業界では、ますます、インシステム(システム内)、即ち該装置 をそれが使用される回路ボード上の所定の位置にハンダ付けした状態で、プログ ラム即ち書込を行ない且つ消去することの可能なPLDを使用している。プログ ラミングソフトウエアはインシステムPLDへのそのアクセスがかなり制限され ているので、プログラム、消去及び検証手順に対する負担のより多くのものがチ ップ自身に課されている。 当業者にとって公知の如く、インシステムプログラミング(以後、ISPと呼 称する)という用語は、インシステム即ちシステム内において装置をプログラミ ングするプロセス全体のことを意味しており、従って、メモリセルプログラミン グの特定の動作に 加えて、該装置内の設計を消去し且つ検証する動作をも包含している。ISPプ ロセスの場合、プログラミングソフトウエアは、従来、少数の専用のピン(典型 的に4又は5)を介して該装置へ直列的にアクセスすることに制限されている。 この形態は、プログラム、消去及び検証動作をより効率の悪いものとさせている 。何故ならば、チップとの通信は、単一の直列ポートに制限されており、それを 介して、全てのアドレス及びデータ情報及び必要なISP命令が該装置へ供給さ れねばならないからである。 更に、該装置のプログラミング用の高電圧電源バスは使用可能ではない。従っ て、従来の内部基準電圧Vccレベル(4.5乃至5.5V)から必要な電圧レ ベルを発生させるために内部的なチャージポンプがチップ上に必要とされる。然 しながら、このようなオンチップのチャージポンプは外部電源の迅速且つ強力な 駆動を与えることは不可能である。従って、ISP装置用のプログラミング及び 消去動作は、システム外装置に対する動作よりも著しく効率が悪いものとなる場 合がある。 典型的に、ISP装置は同一の直列ポートを介してアクセスされる多数の異な る命令及びデータシフトレジスタを有している。これらのレジスタは、並列でシ ステム外のプログラミングプロセスにおける 該装置のピンにおいて通常駆動される場合のある命令コード又はアドレス及びデ ータ値を保持するために使用される。このISPプロセスにおいては、制御ソフ トウエアはISP命令を有しており、該命令はデータレジスタへのアクセスを制 御し且つどのISP動作が現在活性状態であるかを判別する。 単一のアドレスによってアドレスされた位置へデータをプログラミング即ち書 込む場合に、典型的なISPアルゴリズムは、LOAD命令が直列的にISP装 置内へエンターされ、アドレス/データパケットの直列的なエントリーがそれに 続くことを要求する場合がある。従って、そのLOAD命令は終了され且つ実際 のPROGRAM命令が該レジスタ内へシフト入力され、その際に現在のアドレ ス/データに対するプログラミングサイクルを開始させる。そのプログラミング サイクルの後に、意図されたデータが与えられたアドレスにおいて適切にプログ ラム即ち書込まれたことを検証するために付加的なVERIFY(検証)命令を 必要とされる場合がある。 ISP命令及びアドレス/データパケットをエンターするために使用可能な直 列ポートは1個のみであるので、典型的なISP装置は、プログラミング期間中 に各アドレスに対する命令及びデータの間に複数個のスイッチを必要とし、その 際に該装置の効 率を減少させる。従って、PLDの効率的なインシステムプログラミング、消去 及び設計検証を行なうことの可能な方法に対する必要性が存在している。発明の要約 本発明によれば、非揮発性プログラム可能論理装置用のインシステムプログラ ミング/消去/検証構成体が、データ入力ピンと、データ出力ピンと、命令レジ スタと、ISPレジスタを含む複数個のデータレジスタとを有しており、前記命 令レジスタ及び前記複数個のデータレジスタは前記データ入力ピンと前記データ 出力ピンとの間において並列的に結合されており、且つ該構成体は、更に、前記 命令レジスタと前記複数個のデータレジスタとを同期させるコントローラを有し ている。ISPレジスタは、アドレスフィールドと、データフィールドと、ステ ータスフィールドとを有している。一実施例においては、該ステータスフィール ドは2ビットコードを格納する。 本発明に基づくISPプログラミング方法は、プログラミング命令を命令レジ スタ内へシフト入力させ、その際にISPレジスタを活性データレジスタとして 選択することを包含している。次いで、アドレス、データ、第一ステータスコー ドが該ISPレジスタ内へシフト入力される。該第一ステータスコー ドは、そのアドレスにおいて該データに対するプログラミングパルスの開始を許 容する。プログラミングパルスが終了した後に、現在のアドレスにおけるデータ に関して検証動作が自動的に実行される。該検証動作は、選択したメモリセル( 又は1組のメモリセル)が適切にプログラム即ち書込が行なわれたか否かを判別 する。一実施例においては、該検証動作は、該選択したメモリセルによって格納 されている状態を該ISPレジスタ内へシフト入力されたデータと比較する。該 状態が該データ値と一致するか否かに依存して、別の所定のステータスコードが 該ISPレジスタ内へロードされる。 本発明に基づくISP消去方法は、命令レジスタ内へ消去命令をシフト入力し 、その際に再度ISPレジスタを活性データレジスタとして選択することを包含 している。消去動作を実行するために、消去されるべきセクターのアドレスが第 一ステータスコードと共にISPレジスタ内へシフト入力される(データコード は「don’t care」である)。第一ステータスコードは、該アドレスフ ィールド内において表示されているセクターのアドレスに対する消去パルスの開 始を許容する。消去パルスが終了した後に、該装置は、それが適切に消去された ことを検証するために現在のセクターに関する自己ブラン クチェック動作を自動的に実行する。該ブランクチェックの結果に依存して、I SPレジスタのステータスフィールドが別の所定のコードでロードされる。 本発明に基づくISP検証方法は、検証命令を命令レジスタ内へシフト入力さ せ、それによりISPレジスタを再度活性データレジスタとして選択することを 包含している。検証動作を実行するために、所望のアドレスが第一ステータスコ ードと共にISPレジスタ内へシフト入力される(データはこの場合も「don ’t care」である)。第一ステータスコードは、特定した長さの検証パル スの開始を許容する。検証パルスが終了すると、アドレスされた位置におけるメ モリセルの状態がISPレジスタのデータフィールド内へロードされる。次いで 、これらの状態は検査のためにデータ出力ピンを介してシフト出力させることが 可能である。 本発明によれば、ISPアーキテクチュア及び命令セットが、各アドレス/デ ータパケットに関して単一のISP命令が多数の異なる動作即ち演算を実行する ことを効果的に可能としており、その際にPLDに対する公知のISPプログラ ム、消去、検証ルーチンの非効率性を著しく減少させている。例えば、適宜のI SP命令は、装置全体をプログラム/消去するために一度エンターさせることが 必要であるに 過ぎない。このように、データ入力ピンにおける各パケット間において複数個の 命令を挿入することなしに、アドレス/データパケットを連続してISPレジス タ内へシフト入力させることが可能であり、それにより公知のISP方法と比較 して装置全体をプログラム/消去するために必要な時間を著しく減少させている 。更に、本発明は、エンドユーザ又はサポート用のソフトウエアのいずれかに対 してISP動作(演算)のステータス(即ち、結果)を供給する効率的な方法を 提供している。更に別の利点としては、本発明は、1つの装置のデータ出力ピン を別の装置のデータ入力ピンへ接続させることによってマルチチッププログラミ ング/消去を容易なものとさせている。図面の簡単な説明 図1は従来のJTAGアーキテクチュアを例示している。 図2は本発明におけるTAPコントローラの状態線図を示している。 図3は本発明のISPレジスタのフィールドを例示している。 図4はISPレジスタのステータスフィールドにおいて使用される2ビットコ ードに対する真理値表を示している。 図5は本発明の一実施例に基づくISPアーキテクチュアを例示している。 図6はマルチチッププログラミング/消去用のISP形態を示している。 図7はシャドウISPレジスタを含む本発明の別の実施例を示している。図面の詳細な説明 本発明のISPアーキテクチュア及び命令セットは、本明細書に引用によって 導入するIEEEスタンダード1149.1、セクション3、4、5、7に記載 されているジョイント・テスト・アクション・グループ(JTAG)スタンダー ドと互換性を有している。図1を参照すると、IEEEスタンダート1149. 1に準拠したコンポーネントに対する強制的なJTAGアーキテクチュアは、単 一の命令レジスタ103、1組のデータレジスタ106(バイパスレジスタ10 6A及びバウンダリィスキャンレジスタ106Bを含む)、TATコントローラ 101(16状態有限状態マシン)を有している。本装置への直列入力端子であ るTDIピン105命令レジスタ103、バイパスレジスタ106A、バウンダ リィスキャンレジスタ106Bへ信号を供給する。本装置の直列出力端子である TDOピン107は、クロック信号TCKの負のエッジによってトリガさ れるアクティブレジスタ104によって駆動される。TMSピン108はTAP コントローラ101の状態遷移を制御するための信号を供給し、一方TCKピン 109はTAPコントローラ101、命令レジスタ103、バイパスレジスタ1 06A、バウンダリィスキャンレジスタ106B(これらは全て直列シフトレジ スタである)を同期させるためのクロック信号(回路110によって修正されて いる可能性がある)を供給する。 システムロジック112は複数個の入力/出力ピン111へ選択的に結合され る。特に、システムロジック112か又はバウンダリィスキャンレジスタ106 Bからの信号が入力/出力ピン111を駆動する。このJTAGアーキテクチュ アと入力/出力ピン111との間のインターフェースは当該技術分野において公 知であり、従ってその詳細な説明は割愛する。 図1のJTAGアーキテクチュアを制御するTAPコントローラ101の状態 線図200を図2に示してある。図1及び2を参照すると、状態遷移の第一シー ケンス201は、命令レジスタ103へ命令をシフトし且つ状態遷移の第二シー ケンス202はテストデータレジスタ106のうちの1つへデータをシフトさせ る。注意すべきことであるが、Run− Test−Idle(ラン−テスト−アイドル)状態203は、本発明のISP 動作の各々を開始するために使用される(以下に説明する)。IEEEスタンダ ー1149.1、5−1乃至5−16頁に記載されている状態線図200は当業 者にとって公知であり、従って、その詳細な説明は割愛する。 本発明によれば、且つ図3及び5を参照すると、アドレスフィールド301と 、データフィールド302と、ISP動作(演算)のステータスフィールド30 3とを含むISPレジスタ300が従来のJTAGアーキテクチュアへ付加され ている。ISP動作をサポートするために、3つの命令、即ち機能プログラム( FPGM)命令、機能消去(FERASE)命令、及び機能検証(FVFY)命 令が本発明におけるJTAG命令セットへ付加されている。これらの命令のうち のいずれか1つが命令レジスタ103内へエンターされると、ISPレジスタ3 00がTDIピン105とTDOピン107との間のアクティブ(活性)データ レジスタとして選択される。特に、命令デコード回路114が命令レジスタ11 3内の命令ビットをデコードし且つ、例えば、トライステートバッファ115へ 制御/イネーブル信号114を供給する。注意すべきことであるが、マルチプレ クサ116はTAPコントローラ101によっ て供給される選択信号によって制御される。 本発明の一実施例においては、ステータスフィールド303が図4に示した対 応する機能を表わす2ビットコードを受取る。特に、「10」のステータスフィ ールド入力コードは、ISPレジスタ300のアドレスフィールド301及び/ 又はデータフィールド302がそれに関して動作すべき有効なアドレス/データ パケットを有していることを表わす。本装置の偶発的なプログラミング(書込) 又は消去を防止するために、このコードがステータスフィールド303内に存在 しない限りISP動作が開始されることはない。この「10」コードは、又、内 容がISPレジスタ300からシフト出力される場合に存在する場合がある。こ の場合には、「10」コードは、ISP動作が何等かの理由で許可されなかった ことを表わす。 「00」のステータスフィールドコードのシフト出力は現在の動作が完了して いないことを表わす。対照的に、「01」コードは、ISP動作が完了している が、その動作が失敗したこと、例えばデータが成功裡にプログラムされなかった ことを表わす。最後に、「11」コードは、ISP動作が成功裡に完了したこと を表わす。 前述した如く、命令レジスタ103内へシフト入 力されたFPGM命令はISPレジスタ300をアクティブ即ち活性なデータレ ジスタとして選択する。本発明においてプログラミング動作を実行するために、 「10」のステータスフィールドコードを有するアドレス/データパケットがT APコントローラ101の制御下においてISPレジスタ300内へシフト入力 される。TAPコントローラ101がRun−Test−Adle状態203( 図2)へ遷移した後に、コントローラ101はステータスコード「10」を検知 し、その際にアドレスフィールド301において特定されているアドレスにおい てデータフィールド302内に格納されているデータに対するプログラミングパ ルスをトリガさせる。内部的なタイマー(図示していないが、当該技術分野にお いて公知)が、TAPコントローラ101がRun−Test−Idle状態2 03に留まる場合には、適宜の時間において該プログラミングパルスを終了させ る。TAPコントローラ101がこの状態を時期尚早に抜け出す場合には、該プ ログラミングパルスは、この状態から抜け出るや否や終了される。 終了原因に拘らずに、プログラミングパルスが終了すると、本装置は、今プロ グラムされたアドレスに関しての検証動作を自動的に実行し、選択されたメモリ セルが成功裡にプログラムされたか否かを検 証する。特に、付加的なランダムロジック(図示していないが当該技術分野にお いて公知)が、現在アドレスされたメモリセルによって格納されている状態をI SPレジスタ300のデータフィールド302における値と比較する。これらの 状態が値が一致し、その際にプログラミング即ち書込が成功したことを表わす場 合には、該ランダムロジックは、「11」コードがステータスフィールド303 に対する適宜の値であることを表わす。次いで、TAPコントローラ101は、 その値をISPレジスタ300内へロードする。プログラミング動作が完了する が、検証動作が、プログラミングが成功しなかったことを表わす場合には、ステ ータスフィールドは「01」でロードされる。最後に、プログラム/検証動作の 全体が完了する前にステータスフィールド303の値をチェックする場合には、 ステータスフィールド303は「00」コードでロードされる。 本発明は、従来のISPプログラミング方法に対して多数の顕著な改良を与え ている。第一に、任意のアドレスされた位置におけるデータのプログラミング及 びその後の検証の両方を取扱うために単に1つの命令が必要であるに過ぎず、そ の際に別個の検証動作に対する必要性を取除いている。第二に、この手順におい ては単に1つの命令、即ちFPGM命 令が使用されるに過ぎないので、各アドレスに対して複数個の命令をシフト入力 させることは必要ではない。例えば、装置全体をプログラムするためにFPGM 命令を一度エンターさせることが必要であるに過ぎない。このように、TDIピ ン105において各パケットの間に複数個の命令を挿入することなしに、アドレ ス/データパケットをISPレジスタ300内へ連続してシフト入力させること が可能であり、その際に公知のISP方法と比較して装置全体をプログラムする のに必要な時間を著しく減少させている。最後に、ステータスフィールド303 におけるコードは、エンドユーザに対して、プログラミング動作の成功又は失敗 の即刻の表示を与える。 命令レジスタ103内へシフト入力された場合にはFPGM命令のように、F ERASE命令は、ISPレジスタ300をアクティブ即ち活性なデータレジス タとして選択する。然しながら、FERASE命令は、単に数個のセルのみをプ ログラミングするのではなく(一実施例においては、8個のメモリセルを超える ことはない)、大きなセクターのメモリセル(例えば、7920個のメモリセル )に関して典型的に動作する消去動作を活性化させる。消去動作を実行するため に、消去すべきセクターのアドレスが「10」ステータスコードと共にISPレ ジスタ 300内へシフト入力される(注意すべきことであるが、データフィールド30 2内に格納されているビットはこの動作においては「don’t care」で ある)。TAPコントローラ101がRun−Test−Idle状態203へ 遷移した後に、コントローラ101は、このステータスコードを検知し、その際 にアドレスフィールド301において表示されているセクターのアドレスに対す る消去パルスをトリガする。TAPコントローラ101がRun−Test−I dle状態203に留まる場合には、内部的なタイマー(不図示)が適宜の時間 において消去パルスを終了させる。TAPコントローラ101がこの状態を時期 尚早に抜け出ると、該消去パルスは、この状態から抜け出るや否や終了する。 終了原因に拘らずに、消去パルスが終了すると、本装置は、現在のセクターに 関して自己ブランクチェック動作を自動的に実行して、そのセクターがランダム ロジックによって成功裡に消去されたか否かを検証する。この自己ブランクチェ ックについては、米国特許出願第08/397,821号、「プログラム可能論 理装置用の高速最小ロジック自己ブランクチェック方法(HIGH−SPEED MINIMAL LOGIC SELF BALNK CHECKING M ETHOD FOR PROGR AMMABLE LOGIC DEVICE)」に詳細に記載されており、それ を引用により本明細書に取込む。そのブランクチェックが成功し、その際に消去 動作が成功したことを表わす場合には、ISPレジスタ300のステータスフィ ールド303が「11」コードでロードされる。この消去動作が完了したが、ブ ランクチェックが失敗した場合には、ステータスフィールド303は「01」コ ードでロードされる。最後に、消去/ブランクチェック動作の全体が完了する前 にステータスフィールド303の値がチェックされる場合には、該フィールドは 「00」コードでロードされる。 本発明は、従来のISP消去方法に対して多数の顕著な改良を提供している。 第一に、与えられたセクターの消去及びその後のブランクチェックの両方を取扱 うために単に1つの命令であるFERASEが必要とされるに過ぎず、その際に 消去したメモリセルに対する各アドレスを個別的にチェックするための通常の検 証命令を使用する必要性を取除いている。第二に、この手順においては単に1つ の命令が使用されているに過ぎないので、各セクターに対して複数個の命令をシ フト入力させる必要性がない。例えば、装置全体を消去するために、FERAS E命令を命令レジスタ103内へエンターさせること が必要であるに過ぎない。従って、TDIピン105において各アドレスの間に 複数個の命令を挿入することなしに、ISPレジスタ300内へセクターアドレ スを連続してシフト入力させることが可能であり、その際に公知のISP方法と 比較して装置全体を消去するために必要とされる時間を著しく減少させている。 最後に、ステータスフィールド303のコードはエンドユーザに対して消去動作 の成功又は失敗をすぐさま表示する。 FVFY命令は、先行するプログラム又は消去動作が所望されない場合に、装 置内の任意のアドレスされた位置におけるデータを読み戻すために使用される。 この場合にも、FPGM命令及びFERASE命令と同様に、FVFY命令は、 命令レジスタ103内へシフト入力されると、アクティブ即ち活性なデータレジ スタとしてISPレジスタ300を選択する。検証モードの場合には、所望のア ドレスがステータスフィールド300内の「10」のコードと共にISPレジス タ300内へシフト入力される(注意すべきことであるが、データフィールド3 02内に格納されているビットは、この場合も、「don’t care」であ る)。TAPコントローラ101がRun−Test−Idle状態203へエ ンターした後に、コントローラ101はこのステータスコー ドを検知し、その際に特定した長さの検証パルスをトリガする。内部的なタイミ ングによるか又はRun−Test−Idle状態203を抜け出すことのいず れかによって、検証パルスが終了されると、アドレスされた位置におけるメモリ セルの状態がISPレジスタ300のデータフィールド302内へロードされる 。次いで、この状態は、検査するために、TDOピン107を介してシフト出力 させることが可能である。この場合におけるステータスフィールド303のコー ドは「11」であり、それにより、検証動作が完了したことを表わす。「00」 のコードは、その動作が完了する前にそのステータスがチェックされたことを表 わす。 上述したISP検証方法は、各アドレスに対して複数個の命令をシフト入力す ることの必要性を効果的に取除いている。例えば、チップ全体を検証するために FVFY命令は命令レジスタ103内へ一度エンターさせることが必要であるに 過ぎない。このように、識別されるべきメモリセルに対するアドレスは、TDI ピン105において各アドレスの間に複数個の命令を挿入することなしに、IS Pレジスタ300内へ連続してエンターさせることが可能である。 更に別の利点として且つ図6を参照して説明する と、本発明は、装置600AのTDOピン107Aを装置600BのTDIピン 105Bへ接続し且つ命令レジスタ103A内の命令ビットをアクティブ即ち活 性なレジスタ104A(次いで、TDOピン107A)へ供給することによって 、マルチチッププログラミング/消去を容易なものとさせている。この形態にお いては、複数個の装置をプログラミング/消去する時間は、1つの装置をプログ ラミングする時間+各装置に対して適宜の信号をTDIピン105からTDOピ ン107へ伝搬させる時間にほぼ等しい。従って、複数個の装置からなるチェー ンが成長するに従い、データ/命令を直列的にシフト入力するための時間も成長 する。然しながら、実際の動作(即ち、プログラミング、消去、検証)は、あた かも単に1つの装置がプログラム即ち書き込まれているかのように並列的に行な われる。 図7に示した好適な形態においては、シャドウISPレジスタ300AがIS Pレジスタ300へ結合している。この形態においては、ISPレジスタ300 によって受取られるステータスコード「01」が組合わせ論理311をトリガし てイネーブル用信号を論理ゲート310へ転送させる。この実施例においては、 論理ゲート310はANDゲートであり、それは組合わせ論理311から論理1 のイネーブル 用信号を受取ると共にメモリ312から一定値(これも論理1信号)を受取る。 このように、ANDゲート310はシャドウレジスタ300Aのクロック端子へ 高信号を出力し、その際にシャドウISPレジスタ300AがISPレジスタ3 00のビット(この実施例においては、27ビット)を捕獲することを可能とす る。シャドウISPレジスタ300Aは、別のステータスコード「01」が受取 られるまでこれらのビットを格納し、その時に、シャドウISPレジスタ300 AはISPレジスタ300のアップデートされたアドレス/データパケットを格 納する。このように、本発明は、1個を超えるプログラミングサイクルが必要で あり(例えば、フラッシュEPROMアレイが使用されている)且つステータス フィールド303におけるコード(図3)(TDOピン107を介して検証され る)が、プログラミングが成功しなかったことを表わす場合には、シャドウレジ スタ300Aにおけるアドレス/データパケット(この実施例においては、25 ビット)が別個のロードサイクルを必要とすることなしに自動的にアクセスされ ることを確保している。 この形態においては、本発明は、更に、ステータスフィールド303の結果が 「don’t care」である場合には(例えば、全てのメモリセルが1つ のプログラミングサイクルを受取る場合)、プログラムされなかったセルのアド レスが外部的にアクセスされ(ISPレジスタ300を介して)、次いで後の時 間において付加的なプログラミングサイクルを行なわせるようにさせる。前述し た如く、シャドウISPレジスタ300Aは、別のステータスコード「01」を 受取るまで、前のイネーブル用サイクルからのビットを格納し、その時に、シャ ドウISPレジスタ300AはISPレジスタ300のアップデートされたアド レス/データパケットを格納する。 この開示は単に例示的なものであって制限的なものではない。特に、本明細書 における説明は主にPLDのプログラミング即ち書込に焦点を当てているが、同 一の原理は非揮発性メモリアレイを使用する任意の装置に適用することが可能で ある。更に、上述した実施例は、典型的に、電気的にプログラムされ且つ消去す ることの可能なメモリセルアレイを有しており、即ちEEPROM、フラッシュ EPROM又はフラッシュEEPROMアレイを有するものであるが、本発明は 、消去するために紫外線に露呈されねばならないEPROMアレイを含むその他 の実施例においても使用される。更に、インシステムコンポーネントに関して動 作するための汎用ツールとしてJTAGスタンダードの柔軟性はその使用をIS P へ拡張させることを可能とするものであるが、本発明は任意の同様のアーキテク チュアにおいて適用可能なものである。本発明は請求の範囲において記載されて いる。
───────────────────────────────────────────────────── 【要約の続き】 ザか又はサポート用のソフトウエアのいずれかに対して ISP動作のステータス(即ち、結果)を供給するため の効率的な方法を提供している。

Claims (1)

  1. 【特許請求の範囲】 1.非揮発性プログラム可能論理装置用のインシステムプログラミング/消去 /検証構成体において、 データ入力ピン、 データ出力ピン、 命令レジスタ、 ISPレジスタを含む複数個のデータレジスタ、尚前記命令レジスタ及び前記 複数個のデータレジスタは前記データ入力ピンと前記データ出力ピンとの間にお いて並列的に結合されており、 前記命令レジスタ及び前記複数個のデータレジスタのクロック動作を同期させ るコントローラ、 を有するインシステムプログラミング/消去/検証構成体。 2.請求項1において、前記ISPレジスタが、 アドレスフィールド、 データフィールド、 ステータスフィールド、 を有しているインシステムプログラミング/消去/検証構成体。 3.請求項2において、前記ステータスフィールドが2ビットコードを格納す るインシステムプログラミング/消去/検証構成体。 4.非揮発性プログラム可能論理装置用のインシ ステムプログラミング方法において、 プログラム命令を命令レジスタ内へシフト入力し、その際に活性データレジス タとしてISPレジスタを選択し、 前記ISPレジスタ内へアドレス、データ、ステータスコードをシフト入力し 、 前記アドレスにおける前記データに対してプログラミングパルスを開始させ、 前記プログラミングパルスを終了させ、 前記アドレスに関する検証動作を自動的に実行させる、 インシステムプログラミング方法。 5.請求項4において、前記検証動作が、選択したメモリセルがプログラムさ れているか否かを決定するインシステムプログラミング方法。 6.請求項5において、前記検証動作が、前記選択したメモリセルによって格 納されている状態を前記ISPレジスタ内へシフト入力した前記データと比較す るインシステムプログラミング方法。 7.請求項6において、前記状態が前記値と一致する場合には、所定のステー タスコードを前記ISPレジスタ内へロードさせるインシステムプログラミング 方法。 8.非揮発性プログラム可能論理装置用のインシ ステム消去方法において、 消去命令を命令レジスタ内へシフト入力させ、その際に活性データレジスタと してISPレジスタを選択し、 前記ISPレジスタ内にアドレス、データ、ステータスコードをシフト入力し 、 前記アドレスにおいて消去パルスを開始させ、 前記消去パルスを終了させ、 前記アドレスに関しての検証動作を自動的に実行させる、 インシステム消去方法。 9.請求項8において、前記検証動作が、選択したメモリセルが消去されてい るか否かを決定するインシステム消去方法。 10.請求項9において、前記メモリセルが消去されている場合には、所定の ステータスコードを前記ISPレジスタ内へロードさせるインシステム消去方法 。 11.非揮発性プログラム可能論理装置用のインシステム検証方法において、 検証命令を命令レジスタ内へシフト入力させ、その際に活性データレジスタと してISPレジスタを選択し、 前記ISPレジスタ内にアドレス、データ、ステー タスコードをシフト入力し、 前記アドレスにおいて検証パルスを開始させ、 前記検証パルスを終了させ、 前記アドレスにおける前記メモリセルの状態を前記ISPレジスタのデータフ ィールド内へ自動的にロードさせる、 インシステム検証方法。
JP9508692A 1995-08-09 1996-08-09 非揮発性プログラム可能論理装置用の効率的なインシステムプログラミング構成体及び方法 Pending JPH11511307A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/512,796 1995-08-09
US08/512,796 US5734868A (en) 1995-08-09 1995-08-09 Efficient in-system programming structure and method for non-volatile programmable logic devices
PCT/US1996/013036 WO1997006599A1 (en) 1995-08-09 1996-08-09 Efficient in-system programming structure and method for non-volatile programmable logic devices

Publications (1)

Publication Number Publication Date
JPH11511307A true JPH11511307A (ja) 1999-09-28

Family

ID=24040601

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9508692A Pending JPH11511307A (ja) 1995-08-09 1996-08-09 非揮発性プログラム可能論理装置用の効率的なインシステムプログラミング構成体及び方法

Country Status (4)

Country Link
US (2) US5734868A (ja)
EP (1) EP0843915A1 (ja)
JP (1) JPH11511307A (ja)
WO (1) WO1997006599A1 (ja)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734868A (en) * 1995-08-09 1998-03-31 Curd; Derek R. Efficient in-system programming structure and method for non-volatile programmable logic devices
US6097211A (en) 1996-07-18 2000-08-01 Altera Corporation Configuration memory integrated circuit
US5838901A (en) * 1996-08-05 1998-11-17 Xilinx, Inc. Overridable data protection mechanism for PLDs
US6134707A (en) * 1996-11-14 2000-10-17 Altera Corporation Apparatus and method for in-system programming of integrated circuits containing programmable elements
US5966723A (en) * 1997-05-16 1999-10-12 Intel Corporation Serial programming mode for non-volatile memory
US6421812B1 (en) 1997-06-10 2002-07-16 Altera Corporation Programming mode selection with JTAG circuits
US6691267B1 (en) 1997-06-10 2004-02-10 Altera Corporation Technique to test an integrated circuit using fewer pins
US6389321B2 (en) 1997-11-04 2002-05-14 Lattice Semiconductor Corporation Simultaneous wired and wireless remote in-system programming of multiple remote systems
US6148435A (en) * 1997-12-24 2000-11-14 Cypress Semiconductor Corporation Optimized programming/erase parameters for programmable devices
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
US6023570A (en) * 1998-02-13 2000-02-08 Lattice Semiconductor Corp. Sequential and simultaneous manufacturing programming of multiple in-system programmable systems through a data network
US5968196A (en) * 1998-04-21 1999-10-19 Atmel Corporation Configuration control in a programmable logic device using non-volatile elements
US6304099B1 (en) * 1998-05-21 2001-10-16 Lattice Semiconductor Corporation Method and structure for dynamic in-system programming
US5889701A (en) * 1998-06-18 1999-03-30 Xilinx, Inc. Method and apparatus for selecting optimum levels for in-system programmable charge pumps
US6181163B1 (en) * 1999-01-21 2001-01-30 Vantis Corporation FPGA integrated circuit having embedded SRAM memory blocks and interconnect channel for broadcasting address and control signals
US6738962B1 (en) * 2000-06-12 2004-05-18 Altera Corporation Configuration and/or reconfiguration of integrated circuit devices that include programmable logic and microprocessor circuitry
US6651199B1 (en) * 2000-06-22 2003-11-18 Xilinx, Inc. In-system programmable flash memory device with trigger circuit for generating limited duration program instruction
JP4856848B2 (ja) * 2001-10-11 2012-01-18 アルテラ コーポレイション プログラマブルロジックリソース上のエラー検出
US7073111B2 (en) * 2002-06-10 2006-07-04 Texas Instruments Incorporated High speed interconnect circuit test method and apparatus
US7521960B2 (en) * 2003-07-31 2009-04-21 Actel Corporation Integrated circuit including programmable logic and external-device chip-enable override control
US7170315B2 (en) * 2003-07-31 2007-01-30 Actel Corporation Programmable system on a chip
US7328377B1 (en) 2004-01-27 2008-02-05 Altera Corporation Error correction for programmable logic integrated circuits
US7138824B1 (en) 2004-05-10 2006-11-21 Actel Corporation Integrated multi-function analog circuit including voltage, current, and temperature monitor and gate-driver circuit blocks
US7099189B1 (en) * 2004-10-05 2006-08-29 Actel Corporation SRAM cell controlled by non-volatile memory cell
US7242218B2 (en) * 2004-12-02 2007-07-10 Altera Corporation Techniques for combining volatile and non-volatile programmable logic on an integrated circuit
US7116181B2 (en) * 2004-12-21 2006-10-03 Actel Corporation Voltage- and temperature-compensated RC oscillator circuit
US7119398B1 (en) * 2004-12-22 2006-10-10 Actel Corporation Power-up and power-down circuit for system-on-a-chip integrated circuit
US7446378B2 (en) * 2004-12-29 2008-11-04 Actel Corporation ESD protection structure for I/O pad subject to both positive and negative voltages
US7919979B1 (en) * 2005-01-21 2011-04-05 Actel Corporation Field programmable gate array including a non-volatile user memory and method for programming
US20060271728A1 (en) * 2005-05-31 2006-11-30 Stmicroelectronics S.R.L. A low area architecture solution for embedded flash programming memories in microcontrollers
US7602655B2 (en) * 2006-01-12 2009-10-13 Mediatek Inc. Embedded system
US7546498B1 (en) * 2006-06-02 2009-06-09 Lattice Semiconductor Corporation Programmable logic devices with custom identification systems and methods
US7778074B2 (en) * 2007-03-23 2010-08-17 Sigmatel, Inc. System and method to control one time programmable memory
US8055936B2 (en) 2008-12-31 2011-11-08 Pitney Bowes Inc. System and method for data recovery in a disabled integrated circuit
US8060453B2 (en) 2008-12-31 2011-11-15 Pitney Bowes Inc. System and method for funds recovery from an integrated postal security device
US8516176B1 (en) 2012-10-11 2013-08-20 Google Inc. Gang programming of devices
US10599853B2 (en) 2014-10-21 2020-03-24 Princeton University Trust architecture and related methods
US11314865B2 (en) 2017-08-01 2022-04-26 The Trustees Of Princeton University Pluggable trust architecture

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4855954A (en) * 1985-03-04 1989-08-08 Lattice Semiconductor Corporation In-system programmable logic device with four dedicated terminals
US4761768A (en) * 1985-03-04 1988-08-02 Lattice Semiconductor Corporation Programmable logic device
US4879688A (en) * 1985-03-04 1989-11-07 Lattice Semiconductor Corporation In-system programmable logic device
JPH0422576A (ja) * 1990-05-17 1992-01-27 Mitsubishi Electric Corp 半田付け装置
US5237218A (en) * 1991-05-03 1993-08-17 Lattice Semiconductor Corporation Structure and method for multiplexing pins for in-system programming
US5412260A (en) * 1991-05-03 1995-05-02 Lattice Semiconductor Corporation Multiplexed control pins for in-system programming and boundary scan state machines in a high density programmable logic device
JP2637018B2 (ja) * 1992-08-25 1997-08-06 川崎製鉄株式会社 プログラマブルロジックデバイス
US5329179A (en) * 1992-10-05 1994-07-12 Lattice Semiconductor Corporation Arrangement for parallel programming of in-system programmable IC logical devices
US5606710A (en) * 1994-12-20 1997-02-25 National Semiconductor Corporation Multiple chip package processor having feed through paths on one die
US5635855A (en) * 1995-07-21 1997-06-03 Lattice Semiconductor Corporation Method for simultaneous programming of in-system programmable integrated circuits
US5734868A (en) * 1995-08-09 1998-03-31 Curd; Derek R. Efficient in-system programming structure and method for non-volatile programmable logic devices

Also Published As

Publication number Publication date
US5734868A (en) 1998-03-31
EP0843915A1 (en) 1998-05-27
WO1997006599A1 (en) 1997-02-20
US5949987A (en) 1999-09-07

Similar Documents

Publication Publication Date Title
JPH11511307A (ja) 非揮発性プログラム可能論理装置用の効率的なインシステムプログラミング構成体及び方法
US5355464A (en) Circuitry and method for suspending the automated erasure of a non-volatile semiconductor memory
US6772276B2 (en) Flash memory command abstraction
US5825782A (en) Non-volatile memory system including apparatus for testing memory elements by writing and verifying data patterns
US10049038B2 (en) Memory devices with register banks storing actuators that cause operations to be performed on a memory core
US7937576B2 (en) Configuration of a multi-level flash memory device
US6067598A (en) Memory system having programmable flow control register
JP3408552B2 (ja) 不揮発性半導体メモリをプログラム及び消去する回路とその方法
JP3091694B2 (ja) 多重フィールドプログラマブルデバイスの同時プログラミング方法
US20040141375A1 (en) Semiconductor memory device including page latch circuit
JPH0210596A (ja) メモリの消去法およびプログラミング法
US6442092B1 (en) Interface circuit and method for writing data into a non-volatile memory, and scan register
JP2001526443A (ja) バルク動作のための不揮発性セルのブロック選択のためのフラグレジスタを有する集積回路
JP2009170098A (ja) プログラム検証動作の実施方法、消去検証動作の実施方法、および検出時間制御回路
US6707757B2 (en) Apparatus for externally timing high voltage cycles of non-volatile memory system
US5526311A (en) Method and circuitry for enabling and permanently disabling test mode access in a flash memory device
US5802268A (en) Digital processor with embedded eeprom memory
US7136307B2 (en) Write state machine architecture for flash memory internal instructions
JP3937456B2 (ja) マイクロコンピュータ
WO2006011222A1 (ja) 半導体装置および書き込み方法
US6714040B1 (en) Automated boundary-scan chain composition method using a device database and access mechanism for storing and retrieving situation-dependent operation options
JPH0210598A (ja) 記憶装置
US7769943B2 (en) Flexible, low cost apparatus and method to introduce and check algorithm modifications in a non-volatile memory
US6618291B2 (en) Write state machine architecture for flash memory internal instructions
WO2002067268A1 (en) Write state machine architecture for flash memory internal instructions