JP3930053B2 - 動作プログラム可能論理装置における部分的プログラミング回路 - Google Patents
動作プログラム可能論理装置における部分的プログラミング回路 Download PDFInfo
- Publication number
- JP3930053B2 JP3930053B2 JP50312298A JP50312298A JP3930053B2 JP 3930053 B2 JP3930053 B2 JP 3930053B2 JP 50312298 A JP50312298 A JP 50312298A JP 50312298 A JP50312298 A JP 50312298A JP 3930053 B2 JP3930053 B2 JP 3930053B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- programmable
- functional unit
- logic
- programming
- 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 - Lifetime
Links
- 230000006870 function Effects 0.000 claims description 49
- 230000000903 blocking effect Effects 0.000 claims description 12
- 230000008672 reprogramming Effects 0.000 claims description 8
- 238000000034 method Methods 0.000 claims description 6
- 238000012360 testing method Methods 0.000 description 26
- 210000004027 cell Anatomy 0.000 description 13
- 238000012795 verification Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 3
- 210000000352 storage cell Anatomy 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic 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/17748—Structural details of configuration resources
- H03K19/17752—Structural details of configuration resources for hot reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic 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/17704—Logic 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic 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/17748—Structural details of configuration resources
- H03K19/17756—Structural details of configuration resources for partial configuration or partial reconfiguration
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
Description
発明の分野
本発明は、大略、プログラム可能論理装置(PLD)に関するものであって、更に詳細には、複雑なインシステムプログラム可能PLDに関するものである。
関連技術の説明
PLDはユニバーサル相互接続マトリクス(UIM)を介して接続されている同一の機能ブロックからなるアレイを包含する公知のタイプのプログラマブル即ちプログラム可能な集積回路である。入力信号は装置入力ピンからUIMへ送られ且つUIMによって機能ブロックに対して経路付けされる。各機能ブロックは1個のANDアレイと多数のマクロセルとを包含している。
各機能ブロック内において、ANDアレイはUIMからの入力信号を受取り且つマクロセルに対して積項を与える。各マクロセルはANDアレイからの選択した積項に基づいて出力信号を発生するORゲートを有している。マクロセルによって発生された出力信号は、更なる処理のためにUIMへフィードバックされるか、又は出力信号としてPLDの出力ピンへ送られる。上述した回路構成を有するPLDは、ザイリンクス社に発行されているザ・プログラマブル・ロジック・データ・ブック(The Programmable Logic Data Book)(1994)の3章、3−2乃至3−90頁において詳細に記載されており、尚該文献は引用によって本明細書に取込む。
機能ブロック及びUIMは「ユーザ」(例えば、回路設計者)によって所望される論理機能を与えるべくプログラム即ち書込むことが可能である。このようなプログラミングを達成するために、各機能ブロック及びUIMは所望の機能即ち関数を特定するためにプログラムすることの可能な例えばフラッシュトランジスタ格納セル等のプログラム可能なメモリセルからなるアレイを包含している。個々の機能ブロックは別個の論理機能を与えるべくプログラムすることが可能であり、又は機能ブロック及びUIMはより複雑な論理機能を与えるために一体的にプログラムすることが可能である。
「インシステム」、即ちPLDがプリント回路基板上に据え付けられている間に、PLDを再プログラムすることは公知である。然しながら、PLDを物理的に取り外すことは必要ではないが、従来のインシステム再プログラミングは、再プログラミングプロセス期間中にPLDの動作を中断させることを必要とするものである。然しながら、この必要的な中断は、PLDが通信リンクを維持しているか又は基本的なクロック信号を供給している場合のように一時的な動作の中断であっても許容することの不可能なシステムの構成要素である場合には問題を発生する場合がある。以上の理由により、PLDによって与えられている基本的な動作を中断させることなしに再プログラムすることの可能なPLDに対する必要性が存在している。
発明の要約
本発明は、PLDによって与えらえている基本的な動作を中断することなしに再プログラムすることの可能なPLDに関するものである。本発明PLDは外部的に供給されるプログラミング命令を受取るための形態とされている命令バスへ接続されている多数のプログラム可能な機能ユニットを有している。このようなプログラミング命令を発生させることによって、ユーザは特定の論理機能を実行するために機能ユニットの1つ又はそれ以上のものをプログラムする。
本発明によれば、入力されてくるプログラミング命令が1つ又はそれ以上の機能ユニットに影響を与えることを選択的に阻止し、一方残りの機能的ユニットが該命令に応答することを可能とさせる命令ブロッキング回路を包含している。従って、PLDの残りの機能ユニットの動作を中断させることなしに、1つ又はそれ以上の機能ユニットを再プログラムさせることが可能である。更に、本発明によれば、ユーザは1つ又はそれ以上の機能ユニットにおいて基本的な論理機能を実行させ、残りの機能的ユニットが例えばより基本的なものでない論理機能を実施させることが可能である。従って、ユーザが基本的な論理機能のうちのいずれかを中断させることなしにより基本的なものでない論理機能のうちの1つを再プログラムすることを所望する場合には、残りの機能的ユニットが再プログラムされている間にプログラミング命令が基本的な論理を包含する機能的ユニットに対してブロックさせるために命令ブロッキング回路が使用される。従って、本発明は、基本的な論理機能を中断させることなしに再プログラムされるPLDに対する必要性を満足させている。
【図面の簡単な説明】
本発明のこれら及びその他の特徴、側面及び利点は、以下の説明、請求の範囲及び添付の図面を参照して理解されることとなる。
図1は本発明に基づく複雑なPLD100のブロック図であり、
図2はJTAGテスト回路115のブロック図であり、且つ
図3は機能ブロックFB5のブロック図である。
図面の詳細な説明
図1は本発明に基づく複雑なPLD100のブロック図である。PLD100はユニバーサル相互接続マトリクス(UIM)110によって互いに接続されている6個の同一な機能ブロックFB0−FB5からなるアレイを包含している。機能ブロックFB0−FB5及びUIM110の各々は、所望の機能即ち関数を特定するためにプログラムすることの可能なフラッシュトランジスタ格納セルからなるアレイを包含している。この理由により「機能ユニット」という用語は、機能ブロックFB0−FB5とUIM110の両方のことを言及するものとして使用される。PLD100は、更に、JTAGテスト回路115を包含している。
PLD100はインシステムプログラミング特徴及び命令をサポートしている。当業者にとって公知の如く、「インシステムプログラミング(in−system programming)」(以後、ISP)は、PLDをインシステム即ちシステム内においてプログラミングするプロセス全体のことを意味しており、従って、例えば、消去、プログラミング(書込)、及びフラッシュトランジスタ格納セル状態の検証等の動作を包含している。本発明によれば、JTAGテスト回路115はISPをサポートするためのISPイネーブルレジスタ120を包含している。
6個の同一の機能的ブロックFB0−FB5の各々はそれらのそれぞれの入力バスIB0−IB5上において72個の入力ノード(36個の入力ノードとそれらの補元)を有している。10線命令バスINSTは該機能ユニットの各々によって共用されており、例えば、機能ユニットの各々におけるプログラム可能なメモリセルの状態をプログラミング、消去、検証するための命令を供給するテスト制御回路(不図示)へ結合されている。該テスト制御回路に関連する種々のコマンドに関する詳細な説明については、1995年9月25日付で出願した発明者がNapoleon W. Lee、Derek R. Curd、Wei−Yi Ku、Sholeh Diba、George Simmonsであり発明の名称が「フラッシュPLD用のワード線ドライバ(Wordline Driver For Flash PLD)」であり本願出願人が所有する米国特許出願第08/533,412(代理人ドケット番号X−181)を参照するとよく、尚該文献を引用によって本明細書に取込む。
UIM110は例えばバスFBU<0:17>上において各機能ブロックから18個ずつ108個の入力線を受取り、且つ例えば機能ブロックFB5に対して特定的なバスUIMBL<0:35>上の機能ブロックFB0−FB5の各々に対する36個の出力線を駆動する。残りの機能ブロックFB0−FB4に対する接続も同様なものであり、従って、簡単化のために符号を省略してある。
JTAGテスト回路115は、PLD100及び互換性のあるJTAGテスト回路を有する組立てられたプリント回路基板上のその他の回路の間のプリント回路基板トレースの一体性即ち信頼性を検証するために従来使用されている。必要な互換性を与えるために、JTAGテスト回路115は通常「JTAGスタンダード」又は単に「JTAG」と呼ばれるIEEEスタンダード1149.1テストアクセスポート及びバウンダリースキャンアーキテクチュアを完全に順守するものである。即ち、テスト回路115はIEEEスタンダード1149.1を順守するものであると主張する全てのベンダーがサポートせねばならない1組の必須の「パブリック」命令をサポートしている。JTAGはJTAGスタンダードを取り決めた技術的副委員会であるジョイントテストアクショングループ(Joint Test Action Group)に対する略称である。
必須のパブリック命令に加えて、JTAGテスト回路115は、更に、JTAGスタンダードによって定義されている幾つかのオプションとしてのパブリック命令をサポートしている。このようなオプションの命令は、例えば、単一のチップをテストするためにその回路を回路ボードから分離させるものがある。JTAGテスト回路115は図2に関連してより詳細に説明する。
ISPイネーブルレジスタ120は3つのオプションコードビットOP[2:0]、UIMプログラムステータスビットPS[6]、6個の機能ブロックプログラムステータスビットPS[5:0]を一体的に格納する10個のプログラムステータス(PSTATUS)フリップフロップを包含している。プログラムステータスビットを格納する各フリップフロップは、UIM110及び機能ブロックFB0−FB5の対応する1つへ接続している出力線(UPSTAT及びPSTAT0−PSTAT5)を駆動する。ISPイネーブルレジスタ120は実質的に同一の態様で機能ブロックFB0−FB5の各々と共動するので、以下の説明は単一の機能ブロック、即ち機能ブロックFB5、及びUIM110に焦点をあてる。
各機能ユニット内におけるもののようなプログラム可能メモリセルがプログラムされるかまたは消去される場合には、影響を受けるメモリセルの結果的に得られる状態(即ち、プログラムされたか又は消去されたか)を検証するために、通常、プログラム検証又は消去検証テストが行なわれる。この検証プロセスのうちの1つのステップは、テスト中のメモリセルに対して検証電圧を印加させることを包含しており、その検証電圧のレベルは、実施されるテストがプログラム検証であるか又は消去検証テストであるかに依存する。オプションコードビットOP[2:0]はPLD100が与えられた検証命令に対して適宜の検証電圧を供給させることを可能とする。メモリセルの状態がどのようにして検証されるかについての更なる詳細な説明に関しては、本願出願人が所有する「フラッシュPLD用のワード線ドライバ」という名称の米国特許出願第08/533,412号を参照するとよい。
本発明によれば、PSTATUSビットPS[6:0]を使用して、1つ又はそれ以上の機能ユニットを選択的に再プログラムすると共に、残りの機能的ユニットが動作状態に留まること(即ち、「アクティブモード」に留まること)を可能とさせる。PSTATUSビットPS[6:0]の状態(例えば、論理0又は論理1)が、機能ユニットのうちのどれがアクティブのまま残存され且つどれが再プログラムされるかを決定する。例えば、残りの機能ユニットの動作を中断することなしに(即ち、FB0−FB4及びUIM110がアクティブモードに留まることを可能とさせる)機能ブロックFB5の再プログラムを行なうためには、PSTATUSビットPS[6:0]は、機能ブロックFB5に対するものを除いて、命令バスINST上のプログラミング命令をブロック即ち阻止すべく形態とされる。図2はJTAGテスト回路115の詳細を示したブロック図である。JTAGスタンダードによって定義される全ての必須の命令及び特徴をサポートするために、JTAGテスト回路115は以下の従来のJTAG構成要素、即ちバンダリースキャンレジスタ210、システム論理220、バイパスレジスタ240、命令デコーダ250、命令レジスタ260、出力回路265、JTAGテストアクセスポート(TAP)制御器280を包含している。本発明によれば、JTAGテスト回路115は、更に、ISP回路270を包含しており、それは、図1のISPイネーブルレジスタ120とコンフィギュレーション(形態特定)レジスタ272とを包含しており、それらは両方とも付加的なJTAGデータレジスタに対するガイドラインの下でのJTAGスタンダードに従って定義されている。これらのJTAG構成要素の詳細な説明については、1995年8月9日付で出願した発明者がDerek R. Curd、Kameswara K. Rao. Napoleon W.Leeであり発明の名称が「非揮発性プログラム可能論理装置用の効率的なインシステムプログラミング構成体及び方法(Efficient In−System Programming Structure and Method for Non−Volatile Programmable Logic Devices)」という名称の本願出願人が所有する米国特許出願第08/512,796号(代理人ドケット番号X−184)を参照するとよい。
システム論理220(ここでは詳細には示していない)は、JTAG回路115と複数個の入力/出力(I/O)ピンとの間に従来のインターフェースを与えている。システム論理220は、バウンダリースキャンレジスタ210を介して選択的に入力/出力ピンI/Oへ接続され、且つシステム論理220又はバウンダリースキャンレジスタ210のいずれかからの信号がI/Oピンを駆動するような形態とされる。I/Oピン及びJTAGテスト回路115の間のインターフェースは当該技術分野において公知であるので、その詳細な説明は割愛する。
TAP制御器280はJTAGスタンダードに基づいてJTAGアーキテクチュア115の種々のレジスタ内ヘデータをスキャニングすることを制御する16状態の有限状態マシンである。TAP制御器280は4つの端子TDI、TDO、TMS、TCKを有しており、それらはテストアクセスポートを構成している。端子TDIはPLD100への直列入力端子であり、ISPイネーブルレジスタ120、バイパスレジスタ240、命令レジスタ260、コンフィギュレーション(形態特定)レジスタ272へ信号を供給する。端子TMSはTAP制御器280の状態遷移を制御するための信号を供給し、一方端子TCKはTAP制御器280内のマルチプレクサ282ヘクロック信号を供給する。TAP制御器280の状態に依存して、端子TCK上のクロック信号から派生されるローカルクロック信号は、ISPイネーブルレジスタ120、バウンダリースキャンレジスタ210、バイパスレジスタ240、命令レジスタ260又はコンフィギュレーションレジスタ272のうちの選択した1つをクロック動作させ、これらの全てのレジスタはトライステート可能な直列シフトレジスタである。従って、そのような形態とされると、レジスタ120,240,260,272のうちのいずれかの内容を、例えば、複雑なPLD100と同一の回路基板上の2番目のJTAG互換性のある複雑なPLDの同様なレジスタ内に直列的にシフト入力させることが可能である。
端子TDOはPLD100の直列出力端子であり、且つマルチプレクサ267、フリップフロップFF、トライステート可能なドライバ268を包含する出力回路265によって駆動される。マルチプレクサ267は、命令レジスタ260か又はデータレジスタのうちの1つのいずれかの出力を選択するために、JTAGスタンダードに従ってTAP制御器280によりセレクト(選択)端子を介して制御される。更に、JTAGスタンダードに従って、フリップフロップFFが出力端子TDOをしてクロック信号TCKの下降エッジ上で状態を変化させ、且つ出力端子TDOはトライステート可能なドライバ268によってトライステート状態とさせることが可能である。ドライバ268のトライステート端子は、端子TDO上の信号がJTAGアーキテクチュア115を介してデータをシフト動作している期間中にのみアクティブであるように制御され、端子TDOはその他の全ての時間においてトライステート状態とされる。
1実施例においては、テストアクセスポートの端子(TDI、TDO、TCK、TMS)は、更に、プログラム可能なJTAGディスエーブルビット(不図示)の状態に依存して、入力/出力端子として作用する。JTAGディスエーブルビットが論理0である場合には、該4個のテストアクセスポート端子を駆動する出力バッファ(不図示)が、TAP制御器280及び種々のJTAGレジスタがJTAG端子上の信号に応答することを可能とさせる。一方、JTAGディスエーブルビットが論理1である場合には、JTAGアーキテクチュア115は完全にディスエーブル即ち動作不能状態とされる(例えば、TAP制御器280は強制的に永久的なリセット状態とされる)。JTAGディスエーブルビット及びそれに関連する回路の詳細な説明については、発明者がRonald J. Mack、Derek R. Curd、Sholeh Diba、Napo1eon W. Lee、Kameswara K. Rao、Mihai G. Statoviceであり発明の名称が「プログラム可能な論理装置用のリセット回路(Reset Circuit For a Programmable Logic Device)」である本願出願人の米国特許出願(代理人ドケット番号X−170)を参照するとよく、それを引用によって本明細書に取込む。
命令レジスタ260は8個のビット、即ちIR[7:0]を有しており且つ端子TDIと端子TDOとの間に接続されている。命令レジスタ260からの8ビット並列出力バス266が、命令レジスタ260内に格納されている命令(即ち、「OPCODE(命令コード)」)をデコードする命令デコーダ250へ信号を供給する。次いで、従来技術の如く、命令デコーダ250の出力信号が端子TDIとTDOとの間のJTAGレジスタのうちのいずれが与えれた命令に対して選択されるかを決定する。
バイパスレジスタ240は端子TDIと端子TDOとの間に接続されている1段シフトレジスタである。JTAG機能がPLD100に対して所望されない場合には、バイパスレジスタ240は、PLD100がPLD100の動作に影響を与えることなしに、端子TDIからのデータを端子TDOへバイパスさせることによって、多数のJTAG互換性構成要素からなる直列JTAGチェーンから「バイパス」されることを可能とする。
上述した如く、JTAGアーキテクチュア115はISPイネーブルレジスタ120とコンフィギュレーションレジスタ272とを包含するISP回路270を具備するISPをサポートしている。ISPをサポートするために更に設けられているものとしては、付加的な命令ISPイネーブル(ISPEN)、インシステムプログラム(IPGM)、インシステム検証(IVFI)、インシステム消去(IERASE)、コンフィギュレーションロード(CONLD)等があり、それらはJTAG命令セットに付加されている。これらのISP命令はJTAGスタンダードにおいて特定されているものではないが、付加的な命令を付加するためのJTAGスタンダード規則に完全に順守するものである。
ISPイネーブルレジスタ120は、インシステムプログラム消去(ISPen)命令が命令レジスタ260内にロードされる場合に、アクティブである。命令レジスタ260内にロードされるISPen命令は、命令デコーダ250をして、ISPイネーブルレジスタ120を選択させ、その際にISPイネーブルレジスタ120が端子TDIからの直列的に入力されるプログラムステータス命令を受取ることを可能とさせる。該プログラムステータス命令は、PLD100をして完全な又は部分的な再プログラミングに対して準備をさせる。再プログラミングの程度は、図1に関連して上述した如く、ISPイネーブルレジスタ120内に格納されるPSTATUSビットPS[6:0]の値によって決定される。
コンフィギュレーションレジスタ272は、アドレスフィールドADD、プログラムデータフィールドPDATA、ステータスフィールドSTATUSを包含している。ISP命令IPGM、IVFY、IERASEのうちのいずれかが命令レジスタ260内にエンターされると、コンフィギュレーションレジスタ272が選択され且つ端子TDIへ入力されるデータはコンフィギュレーションレジスタ272を介して出力端子TDOへ通過される。命令デコーダ250は命令レジスタ260における命令ビットをデコードし且つ制御/イネーブル信号をコンフィギュレーションレジスタ272へ供給する。
図3は、例えば図1のFB5のような機能ブロックのブロック図である。各機能ブロックは、入力マルチプレクサ(IMUX)310、ワード線ドライバ320、マルチプレクサ325、ANDアレイ330、センスアンプアレイ340、マクロセルブロック360を包含している。本発明によれば、機能ブロックFB5を包含する各機能ブロックは、更に、NANDゲート1130、1142、1150、1177を包含している。これらのNANDゲートは、ラインPOR上のパワーオンリセット信号、プレロードラインPRLD上の信号、コンフィギュレーションロードラインCONLD上の信号、及びコンロード(conload)/プログラム・検証/DC・消去ラインCPVDCE上の信号を、プログラムステータスラインPSTAT上の信号と論理的に結合させる。NANDゲート1130、1142、1150、1177は、ラインPOR、PRLD、CONLD、CPVDCE上のコマンド信号が、ノードPSTAT上の信号が論理1である場合に、機能ブロックFB5の種々の構成要素へ通過することを可能とし、且つノードPSTAT上の該信号が論理0である場合には、これらのコマンド信号をブロック即ち阻止することを可能とするスイッチとして動作する。従って、ISPイネーブルレジスタ120及びNANDゲート1130、1142、1150、1177は、一体的に、命令ブロッキング回路として動作し、該回路は、機能ユニットのうちの選択したものがプログラミング命令を無視し且つアクティブモードに留まることを可能とさせる。
勿論、命令信号を選択的にブロックさせるためにその他の論理要素を使用することも可能である。例えば、各機能ブロック内のマルチプレクサを使用してNANDゲート1130、1142、1150、1177によって図3において与えられる論理を与えることが可能であり、又は単一の複雑なマルチプレクサが機能ブロックFB0−FB5及びUIM110の全てに対し必要な命令ブロッキング論理を与えることが可能である。
ANDアレイ330と関連しているコンフィギュレーションビットラッチ(不図示)は、従来技術の如く、機能ブロックFB0−FB5及びUIM110によって与えられる論理機能を決定するコンフィギュレーション即ち形態特定情報を格納する。コンフィギュレーションロード(即ち、「コンロード(conroad)」)モードにおいては、PLD100がリセットされた直後に、コンフィギュレーション情報がプログラム可能メモリセル内にプログラムされ、次いで、自動的にコンフィギュレーションビットラッチ内にロードされる。PLD100が完全に形態特定され且つ初期化されると、PLD100はアクティブモードへ入る。
IMUX310は151個の入力ノードと36個の出力ノードとを有しており、該出力ノードは入力バス96、ローカルフィードバックバスLFB<0:17>、及びUIM110からのグローバルフィードバックバスUIMBL<0:35>からの入力信号のマルチプレクス化された即ち多重化された組合わせを与える。IMUX310と関連するプログラム可能なメモリセルは、該入力信号のうちのいずれが出力として供給されるかを決定する。
ANDアレイ330はANDゲートからなるプログラム可能なアレイを形成すべく形態特定される複数個のメモリセルからなるアレイである。これらのANDゲートは、選択された論理機能を与えるべくプログラムすることが可能である。本発明の1実施例に基づくANDアレイの動作の更なる詳細な説明については、上掲した「フラッシュPLD用のワード線ドライバ」という名称の特許出願を参照するとよい。
センスアンプアレイ340は18個のセンスアンプからなるアレイであり、該センスアンプの各々はANDアレイ330からのビット線BL#1−BL#18のうちの対応する1つから入力信号を受取る。センスアンプアレイ340はビット線BL#1−BL#18上の電圧レベルを増幅して、0V及びVcc(例えば、5V)の論理レベルを有する論理出力信号をマクロセルブロック360へ供給する。
プログラム可能なANDアレイ330は、ビット線BL#1−BL#18及びセンスアンプアレイ340を介して各ブロック内のマクロセルへ供給される多数の積項を発生する。マクロセルブロック360の18個のマクロセルは、各々、プログラミングの前においては同一であり、プログラミングの後に、それらの各々は、例えば、フリップフロップ等の機能を与えるものの形態とさせることが可能である。
図2を参照すると、ISPイネーブル命令が端子TDIから命令レジスタ260内にロードされると、命令デコーダ250がISPイネーブルレジスタ120をして端子TDI上で受取られたデータを受け付けることを可能とさせる。このデータ、即ちプログラムステータスデータは、PSTATUSビットPS[6:0]内に格納される値を決定し、従って機能ユニットのうちのいずれが爾後のプログラミングコマンドによって影響を受けるかを決定する。プログラムイネーブルはインシステムプログラミングサイクル期間中に実行される最初の命令でなければならない。何故ならば、どの機能ユニットがこれらの命令に応答すべきかを最初に選択することなしに、他のISP命令(例えば、プログラム、消去又はコンフィギュレーション(形態特定)ロード)を実行することは不可能だからである。
プログラムステータス命令がISPイネーブルレジスタ120内にロードされた後に、PSTATUSビットPS[6:0]のうちの特定の1つに格納されている論理1が、そのPSTATUSビットと関連する機能ユニットをして、命令バスINSTを介してプログラミング命令を受取ることを可能とさせる。逆に、論理0は、命令バスINST上の入力してくるプログラミング命令をブロックし、従って対応する機能ユニットはアクティブモードに留まる。PSTATUSビットがプログラムステータス命令によって上書きされない場合には、ISPイネーブルレジスタ120は各PSTATUSビットに対してデフォルトの論理1を出力し、その結果、全ての機能ユニットを再プログラミングさせることとなる。
図3において、機能ブロックFB5と関連しているPSTATUSビットPS[5]はプログラムステータスラインPSTAT5上の論理レベルを決定する。例えば、機能ブロックFB5のみを再プログラムするために部分的な再プログラミングシーケンスが開始される場合には、PSTATUSビットPS[5]は1にセットされ、ラインPSTAT5上の信号を論理1とさせる。このような場合においては、ANDゲート1130、1142、1150、1177は、ラインPOR、PRLD、CPVDCE、CONLD上の夫々の信号が機能ブロックFB5に関して動作することを可能とさせる。一方、機能ブロックFB5に影響を与えるべきでない部分的な再プログラムが開始されると、PSTATUSビットPS[5]が論理0へセットされ、ラインPSTAT5上の信号は論理0とされ、その結果、NANDゲート1130、1142、1150、1177はラインPOR、PRLD、CPVDCE、CONLD上の信号をブロックし、従って機能ブロックFB5はこれらのライン上の信号によって影響を受けることはない。図3には示していないその他のNANDゲートが、前述した説明から理解されるように、機能ブロックFB0−FB5及びUIM110のうちの1つ又はそれ以上のものをプログラミングすることに関連する多数のその他の命令信号を選択的に許容するか又はブロックする。
パワーMUX325は、ワード線ドライバ320に対して、ノードVcc上の電圧レベルか又はノードVpe上の電圧レベルで交互に電圧を供給する。ノードVcc上の電圧は、典型的に5Vであり、アクティブモードにおいてワード線ドライバ320へパワーを供給する。然しながら、機能ブロックFB5内のフラッシュメモリセルは、プログラミング及び消去動作のためにより高い電圧(例えば12V)を必要とする。従って、パワーMUX325はノードPSTAT5へ接続されており且つ、PSTAT5が論理1である場合(機能ブロックFB5が再プログラムされるべきであることを表わす)、ノードVpe上のプログラミング又は消去電圧がワード線ドライバ320へ接続され、且つPSTAT5が論理0である場合(機能ブロックFB5がアクティブモードに留まるべきであることを表わす)には、ノードVcc上の電圧がワード線ドライバ320へ接続されるように所定の形態とされる。UIM110内の同様のパワーマルチプレクサ(不図示)がパワーMUX325と同一の機能を達成し、且つノードUPSTAT上の論理レベルによってスイッチ動作される。
注意すべきことであるが、PLD100は、与えられた機能ユニットが該機能ユニットの他のものからの入力信号に依存するようにプログラムすることが可能である。例えば、機能ブロックFB5はUIM110からフィードバック信号を受取ることが可能である。このような場合には、アクティブな機能ユニットが依存する機能ユニットを再プログラムする試みはエラーを発生する場合がある。従って、1実施例においては、別個の論理機能が別の機能ブロック内においてプログラムされる。
例えば、PLD100は、機能ブロックFB5がカウンタ回路に対して必要な組合わせ論理を供給し且つ機能ブロックFB4がクロックドライバ回路に対して必要な組合わせ論理を供給するようにプログラムすることが可能である。従って、機能ブロックFB5のカウンタ回路が機能ブロックFB4からの入力信号に依存することがないものと仮定すると、機能ブロックFB4は、機能ブロックFB5のカウンタ回路の動作を中断することなしに、再形態特定させることが可能である。
本発明をある実施例についてかなり詳細に説明したが、その他の実施例も可能である。例えば、本発明の1実施例は、上述したような単一のマルチプレクス動作される命令バスの代わりに、複数個の機能ユニットに対し複数個の別々の命令バスを包含することが可能である。従って、請求範囲は本明細書に記載した実施例の説明に制限されるものではない。
Claims (10)
- プログラム可能論理装置において、
プログラミング命令を受取るための形態とされている命令バス、
前記命令バスへ接続されている第一のプログラム可能な機能ユニット、
前記命令バスへ接続されている第二のプログラム可能な機能ユニット、
前記第一及び第二のプログラム可能な機能ユニットの各々へ接続されている命令ブロッキング回路であって、前記命令バスからのプログラミング命令を前記第一及び第二のプログラム可能な機能ユニットの選択した1つに対して選択的にブロックし、その際に該選択したプログラム可能な機能ユニットが該プログラミング命令によって中断されることなしに既にプログラムされている機能を実行することを可能とする命令ブロッキング回路、
を有する装置。 - 請求項1において、前記命令ブロッキング回路がコマンドバスへ接続しているレジスタである装置。
- 請求項1において、前記第一のプログラム可能な機能ユニットが再プログラム可能である装置。
- 請求項1において、前記第一のプログラム可能な機能ユニットが第一論理機能を実施すべくプログラムされ且つ前記第二のプログラム可能な機能ユニットが第二論理機能を実施すべくプログラムされ、且つ前記第二のプログラム可能な機能ユニットは、前記第一のプログラム可能な機能ユニットが前記第一論理機能を実施する期間中に再プログラム可能である装置。
- 請求項1において、前記ブロッキング回路が、
前記命令バスへ接続されている入力ノード、
前記第一及び第二の機能ユニットへ夫々接続している第一及び第二の出力ノード、
を有している装置。 - 請求項5において、前記入力ノードが前記命令バス上のブロッキング命令を受取るための形態とされ、且つ前記ブロッキング命令が、前記第一及び第二の機能ユニットのうちのいずれが前記命令バス上の爾後のプログラミング命令に応答するかを表す装置。
- 集積回路において、
第一及び第二のプログラム可能な機能ユニット、
第一及び第二の論理機能を夫々実行するために前記第一及び第二のプログラム可能な機能ユニットをプログラミングする手段、
前記第二のプログラム可能な機能ユニットが前記第二論理機能を実行している間に前記第一のプログラム可能な機能ユニットを再プログラミングする手段、
を有しており、前記第一のプログラム可能な機能ユニットは、前記第二のプログラム可能な機能ユニットの論理機能を中断させることなしに既にプログラムされている前記第二論理機能を実行することを可能とさせたまま、再プログラムさせることが可能である回路。 - 請求項7において、更に、前記第一のプログラム可能な機能ユニットが前記第一論理機能を実行している期間中に、前記第二のプログラム可能な機能ユニットを再プログラムする手段を有している回路。
- 第一及び第二の機能ユニットを具備するプログラム可能な論理装置を部分的に再プログラミングする方法において、前記第一及び第二の機能ユニットは夫々第一及び第二論理機能を実行すべくプログラムされ、前記第一の機能ユニットにおいて前記第一論理機能を実行し、且つ前記第一論理機能を実行している間に、前記プログラム可能な論理装置へプログラミング命令を供給し、前記第一の機能ユニットが前記プログラミング命令に応答しないように前記第一の機能ユニットに対して前記プログラミング命令をブロックし、前記第二の機能ユニットを再プログラムさせるために前記第二の機能ユニットに対して前記プログラミング命令を通過させる、方法。
- プログラム可能な論理装置において、
プログラミング命令を受取るための形態とされている命令バス、
前記命令バスへ接続している第一のプログラム可能な機能ユニット、
前記命令バスへ接続している第二のプログラム可能な機能ユニット、
を有しており、前記第一及び第二のプログラム可能な機能ユニットの各々に対して接続されている命令ブロッキング回路であって、前記第一及び第二のプログラム可能な機能ユニットのうちの一方が特定された論理機能を実行している間に、前記第一及び第二のプログラム可能な機能ユニットのうちの他方に対して前記命令バスからのプログラミング命令を選択的にブロッキングする命令ブロッキング回路を有している装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/670,472 | 1996-06-26 | ||
US08/670,472 US5764076A (en) | 1996-06-26 | 1996-06-26 | Circuit for partially reprogramming an operational programmable logic device |
PCT/US1997/010147 WO1997050177A1 (en) | 1996-06-26 | 1997-06-11 | Circuit for partially reprogramming an operational programmable logic device |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11511941A JPH11511941A (ja) | 1999-10-12 |
JP3930053B2 true JP3930053B2 (ja) | 2007-06-13 |
Family
ID=24690534
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP50312298A Expired - Lifetime JP3930053B2 (ja) | 1996-06-26 | 1997-06-11 | 動作プログラム可能論理装置における部分的プログラミング回路 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5764076A (ja) |
EP (1) | EP0846370A2 (ja) |
JP (1) | JP3930053B2 (ja) |
WO (1) | WO1997050177A1 (ja) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5986467A (en) * | 1997-10-31 | 1999-11-16 | Xilinx, Inc. | Time-multiplexed programmable logic 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 |
US5968196A (en) * | 1998-04-21 | 1999-10-19 | Atmel Corporation | Configuration control in a programmable logic device using non-volatile elements |
US5889701A (en) * | 1998-06-18 | 1999-03-30 | Xilinx, Inc. | Method and apparatus for selecting optimum levels for in-system programmable charge pumps |
US6463588B1 (en) * | 1998-10-08 | 2002-10-08 | Scientific-Atlanta, Inc. | Method and apparatus for restoring port status in a cable television tap |
US6107821A (en) * | 1999-02-08 | 2000-08-22 | Xilinx, Inc. | On-chip logic analysis and method for using the same |
US6507211B1 (en) | 1999-07-29 | 2003-01-14 | Xilinx, Inc. | Programmable logic device capable of preserving user data during partial or complete reconfiguration |
US6748456B1 (en) * | 2000-09-29 | 2004-06-08 | Cypress Semiconductor Corp. | PLD configuration port architecture and logic |
US7058177B1 (en) | 2000-11-28 | 2006-06-06 | Xilinx, Inc. | Partially encrypted bitstream method |
US7117372B1 (en) | 2000-11-28 | 2006-10-03 | Xilinx, Inc. | Programmable logic device with decryption and structure for preventing design relocation |
US6981153B1 (en) | 2000-11-28 | 2005-12-27 | Xilinx, Inc. | Programmable logic device with method of preventing readback |
US7117373B1 (en) | 2000-11-28 | 2006-10-03 | Xilinx, Inc. | Bitstream for configuring a PLD with encrypted design data |
US6957340B1 (en) | 2000-11-28 | 2005-10-18 | Xilinx, Inc. | Encryption key for multi-key encryption in programmable logic device |
US6965675B1 (en) * | 2000-11-28 | 2005-11-15 | Xilinx, Inc. | Structure and method for loading encryption keys through a test access port |
US6931543B1 (en) | 2000-11-28 | 2005-08-16 | Xilinx, Inc. | Programmable logic device with decryption algorithm and decryption key |
WO2003034202A2 (en) * | 2001-10-17 | 2003-04-24 | Koninklijke Philips Electronics N.V. | On the fly configuration of electronic device with attachable sub-modules |
GB2407730A (en) * | 2003-10-30 | 2005-05-04 | Agilent Technologies Inc | Programmable network monitoring element |
US20050099832A1 (en) * | 2003-11-12 | 2005-05-12 | Agere Systems, Incorporated | System and method for securing an integrated circuit as against subsequent reprogramming |
US7752004B1 (en) * | 2004-01-09 | 2010-07-06 | Cisco Technology, Inc. | Method and apparatus for configuring plurality of devices on printed circuit board into desired test port configuration |
US7343578B1 (en) * | 2004-08-12 | 2008-03-11 | Xilinx, Inc. | Method and system for generating a bitstream view of a design |
US7406673B1 (en) | 2004-08-12 | 2008-07-29 | Xilinx, Inc. | Method and system for identifying essential configuration bits |
US7519823B1 (en) | 2004-08-12 | 2009-04-14 | Xilinx, Inc. | Concealed, non-intrusive watermarks for configuration bitstreams |
US20060080632A1 (en) * | 2004-09-30 | 2006-04-13 | Mathstar, Inc. | Integrated circuit layout having rectilinear structure of objects |
US20070247189A1 (en) * | 2005-01-25 | 2007-10-25 | Mathstar | Field programmable semiconductor object array integrated circuit |
JP4388903B2 (ja) * | 2005-02-09 | 2009-12-24 | 富士通マイクロエレクトロニクス株式会社 | Jtag試験方式 |
US7406642B1 (en) * | 2005-10-03 | 2008-07-29 | Altera Corporation | Techniques for capturing signals at output pins in a programmable logic integrated circuit |
US20090079467A1 (en) * | 2007-09-26 | 2009-03-26 | Sandven Magne V | Method and apparatus for upgrading fpga/cpld flash devices |
US20090144595A1 (en) * | 2007-11-30 | 2009-06-04 | Mathstar, Inc. | Built-in self-testing (bist) of field programmable object arrays |
US8174287B2 (en) * | 2009-09-23 | 2012-05-08 | Avaya Inc. | Processor programmable PLD device |
KR20140134797A (ko) * | 2013-05-14 | 2014-11-25 | 에스케이하이닉스 주식회사 | 반도체 장치 및 이의 동작 방법 |
US9164939B2 (en) * | 2013-10-21 | 2015-10-20 | Altera Corporation | Circuitry and techniques for updating configuration data in an integrated circuit |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63245016A (ja) * | 1987-03-31 | 1988-10-12 | Toshiba Corp | プログラマブル・ロジツク・デバイス |
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 |
US5550782A (en) * | 1991-09-03 | 1996-08-27 | Altera Corporation | Programmable logic array integrated circuits |
US5329179A (en) * | 1992-10-05 | 1994-07-12 | Lattice Semiconductor Corporation | Arrangement for parallel programming of in-system programmable IC logical devices |
GB9223226D0 (en) * | 1992-11-05 | 1992-12-16 | Algotronix Ltd | Improved configurable cellular array (cal ii) |
JPH06276086A (ja) * | 1993-03-18 | 1994-09-30 | Fuji Xerox Co Ltd | フィールドプログラマブルゲートアレイ |
US5654650A (en) * | 1995-12-11 | 1997-08-05 | Hewlett-Packard Company | High throughput FPGA control interface |
US5623217A (en) * | 1996-02-26 | 1997-04-22 | Lucent Technologies Inc. | Field programmable gate array with write-port enabled memory |
-
1996
- 1996-06-26 US US08/670,472 patent/US5764076A/en not_active Expired - Lifetime
-
1997
- 1997-06-11 JP JP50312298A patent/JP3930053B2/ja not_active Expired - Lifetime
- 1997-06-11 EP EP97929942A patent/EP0846370A2/en not_active Withdrawn
- 1997-06-11 WO PCT/US1997/010147 patent/WO1997050177A1/en not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
WO1997050177A1 (en) | 1997-12-31 |
JPH11511941A (ja) | 1999-10-12 |
US5764076A (en) | 1998-06-09 |
EP0846370A2 (en) | 1998-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3930053B2 (ja) | 動作プログラム可能論理装置における部分的プログラミング回路 | |
US6828823B1 (en) | Non-volatile and reconfigurable programmable logic devices | |
US7652500B1 (en) | Reconfiguration of programmable logic devices | |
US6614259B2 (en) | Configuration memory integrated circuit | |
US7576561B1 (en) | Device and method of configuring a device having programmable logic | |
US5689516A (en) | Reset circuit for a programmable logic device | |
US5237218A (en) | Structure and method for multiplexing pins for in-system programming | |
US7215139B2 (en) | Upgradeable and reconfigurable programmable logic device | |
US7301822B1 (en) | Multi-boot configuration of programmable devices | |
KR20010013935A (ko) | 비휘발성 소자를 사용하는 프로그램 가능 논리 디바이스의구성 제어 | |
US7282949B2 (en) | FPGA powerup to known functional state | |
US6148390A (en) | Techniques and circuits for high yield improvements in programmable devices using redundant logic | |
US7304493B2 (en) | FPGA powerup to known functional state | |
JP2010160895A (ja) | 汎用ポートをjtagポートとして利用可能なメモリチップ | |
US7737723B1 (en) | Transparent field reconfiguration for programmable logic devices | |
US6137738A (en) | Method for in-system programming of serially configured EEPROMS using a JTAG interface of a field programmable gate array | |
US7075331B2 (en) | Methods and systems for providing hardware assisted programming of a programmable logic device in an embedded system | |
US6334208B1 (en) | Method and apparatus for in-system programming with a status bit | |
US7768300B1 (en) | Programmable logic device providing serial peripheral interfaces | |
US7656193B1 (en) | Programmable logic device and method of testing | |
US20080036505A1 (en) | Semiconductor integrated circuit device | |
US7876125B1 (en) | Register data retention systems and methods during reprogramming of programmable logic devices | |
US6680871B1 (en) | Method and apparatus for testing memory embedded in mask-programmable logic device | |
GB2346473A (en) | Configuration memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040610 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060328 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060628 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060905 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061205 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070206 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070308 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100316 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110316 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120316 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130316 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130316 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140316 Year of fee payment: 7 |
|
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 |
|
EXPY | Cancellation because of completion of term |