JPH08503321A - マイクロプロセサをベースとしたfpga - Google Patents

マイクロプロセサをベースとしたfpga

Info

Publication number
JPH08503321A
JPH08503321A JP7505952A JP50595295A JPH08503321A JP H08503321 A JPH08503321 A JP H08503321A JP 7505952 A JP7505952 A JP 7505952A JP 50595295 A JP50595295 A JP 50595295A JP H08503321 A JPH08503321 A JP H08503321A
Authority
JP
Japan
Prior art keywords
microprocessor
integrated circuit
input
programmable integrated
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP7505952A
Other languages
English (en)
Other versions
JP3708541B2 (ja
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 JPH08503321A publication Critical patent/JPH08503321A/ja
Application granted granted Critical
Publication of JP3708541B2 publication Critical patent/JP3708541B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/17736Structural details of routing resources
    • H03K19/17744Structural details of routing resources for input/output signals
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7814Specially adapted for real time processing, e.g. comprising hardware timers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1733Controllable logic circuits
    • H03K19/1737Controllable logic circuits using multiplexers
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Microcomputers (AREA)
  • Executing Machine-Instructions (AREA)
  • Multi Processors (AREA)
  • Logic Circuits (AREA)

Abstract

(57)【要約】 本発明によれば、ユーザにとってはプログラマブル論理装置として見えるマイクロプロセサ制御型装置が提供される。従来のプログラマブル論理装置の場合に行なわれるのと同一の態様で信号が外部ピンからとられ且つ外部ピンへ供給される。然しながら、論理関数を実行するプログラマブル論理装置内に設けられる内部的ハードウエアは、関連するメモリ(102,103)を有するマイクロプロセサ(101)で置換されている。該マイクロプロセサは入力ピンから入力信号を読取り、所望の論理に関連した計算を行ない、且つ出力ピンへ信号を供給すべくプログラム可能である。従って、外部ピン上の信号を観察することによって見える本マイクロプロセサ制御型装置の機能は従来のFPGA又はその他の論理装置のものと同一である。然しながら、内部的には、マイクロプロセサ(101)と関連するメモリ(103)内に格納されているプログラムが、マイクロプロセサをして、外部ピンから信号を逐次的に読取り、必要な計算を行ない、且つ出力ピンへ信号を供給させる。同一の論理装置においてマルチプルマイクロプロセサ(101a,101b)を与えることも可能である。

Description

【発明の詳細な説明】 マイクロプロセサをベースとしたFPGA技術分野 本発明は、例えばフィールドプログラマブルゲートアレイ(FPGA)又はイ レーザブルプログラマブル論理装置(EPLD)として知られているような装置 であるフィールドプログラマブル集積回路論理装置又はアレイ(PLA)に関す るものである。従来の技術 PLA,PAL,ASIC,FPGA,EPLDとして知られるプログラマブ ル即ち書込み可能な論理装置は従来公知である。このような装置は、例えば、B irknerの米国特許第4,124,899号、Freemanの米国特許第 4,870,302号、Carterの米国特許第4,706,216号、El gamal et al.の米国特許第4,758,745号、Kaplins kyの米国特許第4,847,612号等の先の刊行物に記載されている。これ ら全ての特許は引用により本明細書に導入する。これらの装置は、全て、ユーザ によって選択された論理機能乃至は論理関数を実行するためにプログラムするこ とによって即ち書込みを 行なうことによって接続することの可能なハードウエアを有している。これらの 装置がユーザによってプログラム即ち書込みが行なわれると、ある外部ピンは入 力ピンとして機能し、他のピンは出力ピンとして機能し、ある場合には、幾つか のピンは入力/出力ピンとして機能する。該装置は入力ピン上へ供給される信号 及び信号の組合わせに応答して、ユーザによってその装置内にプログラム即ち書 込みが行なわれた機能によって決定されるように、その出力ピン上に信号を供給 する。 ユーザは多様な問題を解決するためにこれらのプログラマブル即ち書込み可能 な装置を使用しており、且つ製造業者は多様な装置寸法及び速度及び装置設計を 提供している。ある装置は速度に対して最適化されており、別の装置は柔軟性に 対して最適化されており、更に別の装置は複雑性に対して最適化されており、且 つある装置の場合には低コストに対して最適化されている。通常、速度が速いこ と、柔軟性が高いこと、及び寸法が大きいことは夫々コストが高いことと関連し ている。既存の装置の場合には、通常高速性能が提供されており、ユーザがそれ を必要とするか否かに拘らずそのための対価を支払わねばならない。あるユーザ の場合には多数の信号ピンを必要とするが出力バッファが低速であることを我 慢できる場合がある。このような特性を有する装置は未だに入手可能なものでは ない。発明の要約 本発明によれば、ユーザにとってはプログラマブル論理装置として見えるマイ クロプロセサによって制御される装置が提供される。従来の論理装置においてな されるのと同一の態様で、外部ピンにおいて信号がとられ且つそこに信号が供給 される。然しながら、論理関数を実行するためのプログラマブル論理装置内に与 えられる内部的なハードウエアは関連するメモリを具備するマイクロプロセサに よって置換されている。該マイクロプロセサは、入力ピンから入力信号を読取り 、所望の論理に関係した計算を実行し、且つ出力ピン上に信号を供給すべくプロ グラムすることが可能である。従って、このマイクロプロセサにより制御される 装置の機能は、外部ピン上における信号を観察することから考えると、従来のF PGA又はその他の論理装置のものと同一である。然しながら、内部的には、マ イクロプロセサと関連するメモリ内に格納されているプログラムが、マイクロプ ロセサをして外部ピンから直列的に信号を読取らせ、必要な計算を実行させ、且 つ出力ピン上に信号を供給させる。比較的大型の設計である場 合に高速性能とするためには、1個を超えた数のマイクロプロセサが使用される 。複数個のマイクロプロセサが共用されるデータメモリを介して互いに通信を行 なう。一実施形態においては、いずれかの与えられたメモリ空間は1つのマイク ロプロセサによってのみ書込むことが可能であるが、任意のマイクロプロセサに よって読取ることが可能である。図面の簡単な説明 図1は本発明に基づくマイクロプロセサ制御型論理装置のアーキテクチュアを 示している。 図2A−2Eは図1の入力/出力バッファの幾つかの実施例を詳細に示してい る。 図3A及び3Bは図2A及び2Bに夫々示した記憶装置の実施例を示している 。 図4は本発明の動作を説明するために使用する論理関数の例を示している。 図5は2つのマイクロプロセサを使用するマイクロプロセサ制御型論理装置の アーキテクチュアを示している。 図6は図5に示したようにマイクロプロセサを制御するための命令ワードフォ ーマットを示している。 図7は図5の実施例に対する関連したアクセス回路を有するマイクロプロセサ 関連メモリのメモリ部 分を示している。発明の詳細な説明 図1は本発明に基づくマイクロプロセサ制御型装置のアーキテクチュアを示し ている。図面の周りに位置させて複数個のパッドが設けられている(パッドは集 積回路チップの導電性領域であり、それは集積回路パッケージの外部ピンヘ接続 される)。各パッド、従って各ピンは入力/出力バッファへ接続される。例えば 、パッドP3は入力/出力バッファIOB3へ接続される。各入力/出力バッフ ァはアドレス線と、データ線と及び例えばクロック線及びリセット線等のその他 の線を有するバスへ接続されている。図1に示した如く、該バスは、アドレス線 A0乃至A5、双方向データ線D、読取/書込信号線R/W 、クロック信号線 CLK、リセット線RSを有している。尚、英文字記号の後にアンダーライン記 号を付したものはその英文字記号の上にオーバーラインを付したものと同一の意 味を有している。マイクロプロセサ101はROM103内に格納されているプ ログラムによって制御される。その他の公知のプログラム及びマイクロプロセサ の場合における如く、ROM103内に格納されているプログラムは、マイクロ プロセサ101に対して、データに 関しての演算を行ない且つオプションとして異なるメモリ位置へジャンプして実 行を継続させるための命令を与える。マイクロプロセサ101は外部クロック線 CLKによってクロック動作され且つアドレス線A0乃至A5,データ線D及び システムクロック線CLKを介してバスへアクセスする。(システムクロック線 CLKは、マイクロプロセサ101を駆動し且つIOBにおけるフリップフロッ プへ印加されるクロック信号を担持する。このCLK信号は種々の論理関数(機 能)を制御するための典型的なユーザの設計の一部であるクロック信号とは異な るものである。ユーザのクロック信号は、ROM103内に格納されているプロ グラムに依存して、システムCLK信号よりも一桁速度が遅い場合がある。)外 部ピンへ供給されることのない内部データ信号の状態はRAMメモリ102内に 格納される。I/Oバッファへ供給される信号もRAMメモリ102内において 複製される場合がある。シミュレートすることの可能な内部論理ゲートの数は、 信号を格納する場合には、ROM102内のメモリの量に依存し、且つ命令を格 納する場合には、ROM103内のメモリの量に依存する。ROM103におい て必要とされるメモリはロジックゲート当たり1つの命令よりも僅かに大きい程 度である。図1において使用さ れる如く、ROMという用語はマイクロプロセサによって読み取られるがそれに 対して書込みを行なうことのないメモリのことを意味する。このメモリは物理的 にはRAM102と異なるものではなく、境界が必要なものではない。ROM1 03は、単にメモリが格納されているメモリの部分のことを言及するものであり 、且つRAM102はデータが格納されているメモリの部分を言及するものであ る。相対的な寸法は1つのコンフィギュレーション(1組の命令)と別のコンフ ィギュレーションとで異なる場合がある。 ROM103内に格納されているプログラムは、周期的にマイクロプロセサ1 01に対して外部ピンを読取るか又は外部ピンに対して書込みを行なうことの命 令を与える。通常、マイクロプロセサはRAM102における内部メモリ位置に 対しても読取り及び書込みを行なう。例えば、マイクロプロセサが100MHz のクロック速度で動作している場合に、プログラムがそれに対して10サイクル 毎にピンP3の読取りを行なうこと、200サイクル毎にピンP2の読取りを行 なうこと、且つ30乃至50サイクル毎に発生する場合のある特定のシーケンス のイベントの後にピン4に対して書込みを行なうことの命令をする場合がある。 従って、ピンP3において、 本装置は10MHzの速度を有しているように見え、ピンP2においてはそれが 0.5MHzの速度を有しているように見え、且つピンP4においては、本装置 が2MHzの速度を有しているように見える。これらは特定の環境に対しては満 足のいく速度である場合がある。又、1つのピンにおける速度が許容できない程 度に低速である場合には、ROM103におけるプログラムを修正してあるピン における見掛けの速度を増加させることが可能である。 図5に関連して後述する如く、速度を増加させるために並列動作を行なうこと が可能であるように1つを超えた数のマイクロプロセサが存在する場合がある。 一実施例においては、少数の数のマイクロプロセサを有するシステムがサブセッ トの外部ピンを各マイクロプロセサで制御する。これらのマイクロプロセサは共 用するメモリ及び/又は内部通信線を介して互いに通信を行なう。多数のマイク ロプロセサを有する大型の実施例においては、マイクロプロセサが互いに通信を 行なうために内部マルチプロセサバスが設けられる。 図2Aは図1の入力/出力バッファIOB3のゲート型クロック実施例を詳細 に示している。図1のIOBは、当該技術分野において公知の如く、各々が異な るアドレスに応答するということを除いて、同 一とすることが可能である。図2Aの実施例においては、2つのレジスタR1及 びR2が設けられている。レジスタR2はトライステートバッファTB3Oを介 して出力をパッド乃至はピンP3へ供給する。レジスタR1はトライステートバ ッファTB3Oの状態を制御する。アドレス線A0乃至A5上にアドレスを与え ることにより、マイクロプロセサ101は入力/出力バッファのうちの任意の選 択した1つへアドレスすることが可能である。図2Aの実施例においては、トラ イステート制御値をIOB3のレジスタR1内へロードし且つデータをIOB3 のレジスタR2内へロードするために設けられている。例えば、図2Aに示した 如く、マイクロプロセサ101はレジスタR1をアドレス000110でアドレ スすることが可能であり且つレジスタR2をアドレス000111でアドレスす ることが可能である。アドレス000111は、読取り/書込み線R/W が論 理0を担持している場合にのみANDゲートAND3Dをターンオンさせ、線D 上のデータがレジスタR2内へロードされ従ってピンP3に対して書込まれるべ きであることを表わす。アドレス000111は、読取り/書込み線R/W が 論理1を担持している場合にトライステートバッファTB31をターンオンし、 ピンP3上の値がデータ線D上へ 与えられるべきであることを表わす。レジスタR1がアドレスされる場合には、 ANDゲートAND3OEが上方へ向かうクロックエッジを発生し、データ線D 上の値をレジスタR1内へロードさせる。その値が論理1である場合には、レジ スタR1がトライステートバッファTB22をターンオンし、従ってレジスタR 2内に存在するデータ信号をピンP3上へ与える。 図2Bはゲート型クロック信号を使用することのない本発明において使用され る出力バッファの一実施例を示している。レジスタR11及びR12はクロック イネーブルポートCEを有している。この実施例は、CLK信号がスイッチ動作 する場合にQ出力において有効信号を与えることが可能であるという点において 図2Aの実施例よりも有利であり、従ってレジスタ12がアドレスされる時に線 D上に所望の信号が存在することを保証することは必要ではない。 一方、図2Aの実施例は必要とされる部品数が少なく且つより小型のシリコン 面積において実現することが可能であるという利点を有している。 図3Aは図2AのレジスタR2のレベル感応性実施例を示している。レジスタ R2は、格納ループの形態に接続されたインバータ131及び132と格 納ループをデータ線Dへ接続するアクセストランジスタT31からなる5トラン ジスタメモリセルを有している。リセットの場合には、線RSが論理1を担持し ている場合には、トランジスタT32がターンオンし且つ論理0(接地)を該ル ープの非反転端子へ印加する。従って、レジスタR2においては6個のトランジ スタが使用されているに過ぎない(公知の如く、CMOSインバータ131及び 132は各々が2つのトランジスタを使用している)。 図2BのレジスタR12は図3Bに示した如くに構成されている。マルチプレ クサ121がANDゲートAND3DOからのクロックイネーブル出力信号によ って制御され、レジスタ122の出力Qをレジスタ122のD入力ヘフィードバ ックすることのディスエーブルされた状態と、線D上のデータ信号をレジスタ1 22のD入力ヘ供給することのイネーブルされた状態との間の選択を行なう。従 って、レジスタR12がディスエーブル即ち動作不能状態とされる限り、線D上 のデータが変化するか否かに拘らず、クロック信号に応答してQ出力が変化する ことはない。レジスタR12がイネーブル即ち動作可能状態とされると、線CL K上のクロック信号の上昇エッジにおいてのみ線D上のデータが有効であること が必要である。クロック信号のタイミングは、図 3AのANDゲートAND3Dの出力のタイミングよりも一層確かである。従っ て、本実施例は、線D上のデータがANDゲート出力の上昇エッジにおいて有効 であることを保証することができないがクロック信号の上昇エッジにおいて有効 であることを保証することが可能である場合に好適である。入力/出力バッファ 図2Cは、入力バッファであることから出力バッファであることに動的にスイ ッチ動作することの可能な入力/出力バッファIOB3を示している。別々のア ドレス000110及び000111が、夫々、ANDゲートAND3OE及び AND3DOを介して供給され、出力関数(機能)を制御するレジスタR11及 びR12のクロック入力をイネーブルさせる。第3及び第4アドレス00010 0及び000101が、夫々、入力関数(機能)をアドレスするためにANDゲ ートAND3DIC及びAND3DIDを介して供給される。この実施例におい ては、入力、出力及びイネーブル関数(機能)の間でアドレスが共用されること はなく、従って図2A及び2Bに示したようなR/W 線は使用されることはな い。出力 図2CのANDゲートAND3OEは、レジスタR1のクロックイネーブル入 力をアドレスし、従っ て、線CLK上の高クロック信号がレジスタR1のクロック入力ヘ印加されると 、線D0上のデータはレジスタR11のQ出力へ転送される。レジスタR11の クロックイネーブルピンがアドレスされる場合の線D0上の値が論理1である場 合には、レジスタR11のQ出力はトライステートバッファTB3Oをターンオ ンさせる。トライステートバッファTB3Oは、レジスタR1が再度アドレスさ れ且つ線D0上の論理信号がレジスタR11のQ出力を低状態へ移行させるまで 、オン状態に留まる。トライステートバッファTB3Oがオンである間は、レジ スタR12のQ出力はピンP3へ印加される。マイクロプロセサ101は、新た な値が線D0上にある間、レジスタR12をアドレスすることにより(ANDゲ ートAND3DOによってデコードされる)ピンP3における値を変化させるこ とが可能である。入力 ピンP3は、入力ピンとしてか又は出力ピンとして機能することが可能である 。トライステートバッファTB3Oがターンオフされ且つレジスタR13がイネ ーブルされると(ANDゲートAND3DICをアドレスすることによりセット /リセットフリップフロップSR3DIをセットする)、パッドP3へ印加され るオフチップ信号がシステムクロック信 号CLKの次のサイクルでレジスタR13内へロードされる。マイクロプロセサ 101(図1参照)は、トライステートバッファTB3Iをアドレスすることに より(ANDゲートAND3DIDによりデコードされる)レジスタR13内の 値を読取ることが可能であり、そのことはレジスタR13のQ出力線上のデータ をデータ線D0上へ配置させる。ピンP3は、レジスタR11における値を変化 させることにより、入力ピンであることと出力ピンであることとの間でスイッチ 動作させることが可能である。 図2Cの実施例は、ピンP3が入力バスの一部として機能することを許容する 。外部バスは、例えばピンP3等の幾つかのピンに対して同時的にデータを印加 することが可能である。マイクロプロセサが例えばP3等のピンの上に全ての入 力値を検索するためにはある有限の時間が必要であり、且つこれらの値は検索さ れる前に変化する場合があるので、全ての入力バス値を一度に捕獲するための構 成が必要である。従って、ピンP3へ印加されるデータはクロック信号CLKの 次のエッジにおいてレジスタR13内に格納され、次いで、マイクロプロセサが トライステートバッファTB3Iをアドレスする場合に、内部バスへ転送される 。図2Cにおいて、3つの線が内部バスの一部として、即ち線D0乃至D2 として示してあるに過ぎない。然しながら、本発明に基づいて任意の寸法のバス を設けることが可能である。異なる入力/出力ブロックにおける複数個のカウン タ、例えば入力/出力ブロックIOB3におけるカウンタCTR3DIは、例え ばANDゲートAND3DIC等のアドレス手段によって逐次的に初期化される 。カウント値はカウンタCTR3DI内へ永久的にプログラム即ち書込むことが 可能であり、又は、図2Cに示した如く、信号が3つの線D0乃至D2上へ与え られて8個の可能なカウント値のうちの1つを表示する。選択されたカウント値 は、次のクロックサイクルでカウンタCTR3DI内へロードされる。次いで、 カウンタCTR3DIは0へカウントダウンし、その場合に、NORゲートNO R3DIは高信号をセット/リセットラッチSR3DIのリセット入力Rへ印加 し、セット/リセットラッチSR3DIをしてレジスタR13のCE入力上へ低 信号を与える。このことは、レジスタR13をしてそのQ出力上においてピンP 3からの値を保持させる。ピンP3上の信号に対するその後の変化は無視される 。逐次的なカウンタ内へ異なるカウントを逐次的にロードすることにより、全て のカウンタはそれらの対応するピンの値を同時的に捕獲するようにセットさせる ことが可能である。次いで、 適宜の時間において、例えばTB3I等のバッファが例えばAND3DID等の アドレス手段によって逐次的にアドレスされてそれらの対応する値を線D0上へ 与える。別法として、同一のアドレスを例えばD0,D1,D2等の異なるデー タバス線へ供給することにより、同一のアドレスにより幾つかのピンをアドレス することが可能である。この実施例においては、マイクロプロセサはデータバス から同時的に全てのピン値を読取る。 レジスタR11,R12,R13は、図3Bに図示し且つ図2Bに関連して上 述したように構成することが可能である。バイト幅データバス 図2DはRAM102におけるデータが、単一のアドレスによってアクセスさ れ8ビットバイトとして格納されている実施例に対するIOB3の別の実施例を 示している。勿論、より大きなバス幅を与えることも可能である。図2Dの出力 バッファは8個のビットが並列的にロードされ、且つ8ビットの出力を直列的に ピンP3上へシフト出力させる。図2Dの入力部分は図2Cの入力部分と同一で ある。 図1におけるものと同様のアーキテクチュアにおいて、6個のアドレス線A0 乃至A5を介して、マイクロプロセサ101が、図1に示した線Dを介し て単一ビットのデータをアクセスする代わりに、RAM102における8個のデ ータ線D0乃至D7をアクセスする。これらの8個のデータ線は図2Dにおいて 示してある。トライステート出力バッファTB3OをフリップフロップR11の Q出力上の高信号でイネーブルさせることにより(データ線D0を介して)、次 いでこれら8個のデータビットをデータ線D0乃至D7上へ与え、且つANDゲ ートAND3DOをアドレス111000でアドレスすることにより(それによ ってCLK信号が低状態から高状態へ移行する場合に、線LD上に高並列ロード 信号が与えられる)、マイクロプロセサ101はマルチプレクサM12−0乃至 M12−7をしてデータ線D0乃至D7上の値を並列的にレジスタR12−0乃 至R12−7内へロードさせる。システムクロックが相次ぐ高及び低CLK信号 を発生すると、レジスタR12−0乃至R12−7におけるこれら8個のビット はピンP3及び外部装置へシフト出力される。従って、マイクロプロセサ101 はデータ線D0乃至D7及び3つのその他の線への単一のアクセスのみで。ピン P3上の8個の相次ぐ信号を制御することが可能である。システムクロック速度 よりも一層遅いか又は速い速度でこれらの8個のデータ信号がピンP3へシフト 出力されることが望まれる 場合がある。このような実施形態においては、図2Dに示したCLK線は、異な る速度でスイッチ動作する信号を担持する別のクロック信号線と置換される。こ の別のクロック信号は、通常、システムクロック信号から分割されるものであり 、一実施形態においては、選択した数によって割算するためにユーザによって制 御される。このような柔軟性は、特に、ユーザが例えばP3等のピン上に波形を 発生させることを希望し、且つマイクロプロセサからの関与を最小の状態でこの 波形の周波数を制御することを所望する場合に有用である。 典型的な単一ポートマイクロプロセサにおいては、単一動作において使用され るメモリ値へのアクセスは逐次的に発生する。従って、2入力ゲートを評価する ために、マイクロプロセサは順番にそれら2つの入力へアドレスし、次いで計算 を行ない、次いで結果の書込みを行なわねばならない。この動作は3つのメモリ アクセスを必要とし、従って3つのメモリクロックサイクルを必要とする。マイ クロプロセサが動作を行なう速度を改善するために、マイクロプロセサをマルチ ポートマイクロプロセサとして形成することが可能である。2つの入力と1つの 入力とを使用する動作の場合には、3ポートマイクロプロセサは単一のクロック サイクルで3の全てのポー トへアクセスし且つその機能を実行することが可能である。マルチポートマイク ロプロセサについては、マルチプロセサチップに関連して以下に説明する。マイクロプロセサFPGAの動 プログラム即ち書込みが行なわれたFPGAのように動作するためにマイクロ プロセサチップのプログラム即ち書込みを行なうためには、正しい時刻に正しい 信号をピンから取出し且つ正しい時刻に正しい信号をあるピンへ与えるプログラ ムをメモリ103(図1)へロードすることが必要である。 図4は図1乃至3Bのアーキテクチュアで実現すべき論理関数(機能)の一例 を示している。この例においては、ユーザは、例えばハードウエア記述言語等の 他の論理設計エントリ方法を介して概略図に示したような情報を与えている。別 法として状態マシン入力を使用することも可能である。勿論、この例に示したも のよりも一層大型の設計とすることも可能であり、又そのようにすることは典型 的である。 図4における論理記号はANDゲーT43と、ORゲート44とXORゲート 45と、フリップフロップ46と、インバータ47である。例えば、従来のFP GAにおいて行なわれていたように、プログラマブル論理装置内の内部レジスタ にビットを格納させる代わりに、図示した論理図においては、RAM メモリ102が信号の内部状態を格納する。 図4に示したユーザの設計は、ユーザの設計の記述を読取るプログラムを使用 する汎用コンピュータによってコンパイルされる(例えば、ユーザの設計のゲー ト及び接続部を記述するネットリスト内にロードする)。この技術は「コンパイ ルされたコードシミュレーション」として知られており、公知である。該設計が 例えばANDゲート43等のANDゲートを必要とする場合には、該汎用コンピ ュータプログラムが、第一出力線A上の値を有するメモリセル又は外部ピンをア ドレスし、入力線A上の値を検索し、第二入力線B上の値を有するメモリセル又 は外部ピンをアドレスし、入力線B上の値を検索し、これら2つの検索した値を AND処理し、出力線の値を有するべきメモリセル(この場合は、信号Eに対す るメモリ位置)をアドレスし、且つ信号Eに対するそのメモリ位置内にその値を セットするために、オブジェクトコード命令を書く。説明の便宜上、入力信号の 値が同一名称のメモリ位置内に格納されているものと仮定する。信号A,B,C ,Dが外部ピン上に与えられ且つメモリ内にはないものと仮定すると、論理値E ,G,H,KLOKがRAM102のメモリ位置E,G,H,KLOK内に格納 される。然しながら、論理値F及びIは出力ピン上に与えられね ばならない。このことは、例えば図2CのレジスタR12等のレジスタ又はIO 出力フリップフロップのアドレスに対してそれらを割当てることにより行なわれ る。 図4においては4つの論理レベルが表わされている。即ち、入力A,B,C, D,KLOKの論理関数は4つの段において計算されねばならず、それらの出力 はLEVEL1,LEVEL2,LEVEL3,LEVEL4として表わされて いる。第一段においては、メモリセルA及びB内に格納されている論理値A及び BのAND関数43が計算され且つ、OR関数44又はXOR関数45を計算す る前に、RAM102のメモリセルE内に信号Eとして格納されねばならない。 マイクロプロセサがその命令セットにおいてAND命令を有する場合には、入力 A及びBのAND関数を計算することは1つのマシン命令で行なうことが可能で ある。何故ならば、AND関数を計算するための上述したステップは専用の組合 わせハードウエアによって行なわれるからである。 LEVEL1からLEVEL2へ移行するためには、信号Eが使用可能となる と、OR関数44及びXOR関数45をいずれかの順番で計算することが可能で ある。何故ならば、Eが使用可能な状態とな ると、全ての入力C,D,Eが使用可能であるからである。好適には、図4に示 されている全ての関数AND,OR,XOR,フリップフロップ,INVは、マ イクロプロセサの命令セット内にあり(各々がそれ自身の専用ハードウエアで実 現されている)、且つ各々が単一の命令サイクルで取扱うことが可能なものであ る。 LEVEL2からLEVEL3へ移行するためにはマイクロプロセサ101に 対するフリップフロップ命令がマイクロプロセサ101をしてその入力位置Gに おけるデータをその出力位置Hへ移動させる。フリップフロップ46を実現する ためには、マイクロプロセサがクロック信号をシミュレートするためにKLOK 信号を頻繁にスイッチ動作するようにプログラムすることが可能である。別法と して、KLOK信号は図4に示していないマイクロプロセサによって計算される 組合わせ論理関数の出力とするか又はチップへの入力とすることが可能である。 この点に関して、KLOK信号は図4の信号A,B,C,D,E,Gと同様であ る。本実施例においては、位置Gにおける値を位置Hへ移動させることは、値K LOKが低から高へ変化した後に次のシステムクロックサイクル(図1CLK信 号)が発生するやいなや発生するようにプログラムすることが可能である。 KLOK値が高へセットされた後に、メモリセルG内に格納されているXORゲ ート45の出力GがメモリセルHへ移動される。従来のハードウエア構成とは異 なり、競合条件が発生する可能性はなく、線H上のQ出力はLEVEL2出力G がメモリセルG内に格納される前に決定される。何故ならば、マイクロプロセサ 101は逐次的に演算を実行し且つHを計算する前にGを計算するからである図 4の論理図における各線はRAM102におけるメモリ位置が割当てられている 。マイクロプロセサは図4においてA,B,C,Dとして表わされている値をと り且つ関数によって表わされるステップを実行し出力線によって表わされる値を 発生する。 表1は図4の論理関数を評価するためにマイクロプロセサ101によって行な われるステップを示している。 表1 LOOP { INV H ->I AND A,B ->E OR C,E ->F XOR D,E ->G IF KLOK == 1 and LASTKLOK == 0 { MOVE G ->H } LASTKLOK = KLOK } 表1において、メモリ位置Hにおける値の補元を位置I内に与えることにより 、フリップフロップ出力反転「NOT」の評価が最初に取扱われる。(別法とし て、この反転ステップは図4において示されるように、最後に取扱うことが可能 である。)次に、位置A及びB内の値のAND関数を計算し且つ位置E内に与え る。次いで、位置C及びE内の値のOR関数を入力/出力ブロックFへ送給し、 次のクロックサイクルで対応するピン上へ与える。D及びEにおける値のXOR 関数が位置Gに格納される。好適には、マイクロプロセサ101は、その命令セ ットにおいてポピュラーな論理演算であるAND,OR,NAND,NOR,X OR,XNOR,NOTを有しており、従ってこれらの各々は単一のクロックサ イクルで評価され且つ格納させることが可能である。次いで、マイクロプロセサ がKLOKの値及びLASTKLOTの値をテストし、それはフリップフロップ クロック信号が高へ移行することを検知するためのハードウエアにおけるテスト と等価である。(信 号KLOKは位置KLOK内に現在格納されている値である。KLOKは上には 示していないコードの一部によって与えらえる信号であり、又、別法として、チ ップへの入力である。LASTKLOKはこのような逐次的演算を容易化させる ために汎用コンピュータコンパイラによって該コードのこの部分へ付加される変 数である。)従って、表1にリストしたステップは図4に示した論理を実現する 。 スタンダードなコンパイラは表1における各命令を逐次的なステップへ分解す る。例えば、表1における「AND A, B −> E」ステップは、Aをア ドレスし且つそのデータを検索し、Bをアドレスし且つそのデータを検索し、こ れら2つのデータ値をAND処理し、且つその結果をC内へ格納するという逐次 的なステップへ分解される。(マイクロプロセサがマルチポートマイクロプロセ サである場合には、これらの動作即ち演算の幾つかは同時的に実施することが可 能である。)スタンダードなコンパイラは、更に、ある命令を命令セット内にお いて使用可能なものへ翻訳する。例えば、表1における、 IF KLOK == 1 AND LASTKLOK == 0 { MOVE G -> H } LASTKLOK = KLOK } の命令は、典型的には、次のように翻訳される。 IF KLOK≠1 OR LASTKLOK ≠ 0,GOTO K MOVE G -> H K: LASTKLOK = KLOK GOTO LOOP 勿論、論理信号の各計算は逐次的に行なわれるので、表4に示された論理関数 の計算はマイクロプロセサクロック速度よりも一層遅い。IFステーメントを評 価するために2つのクロックサイクルが必要であると仮定すると、上述したルー プ演算は約9個のクロックサイクルを必要とする。従って、図4の論理を実現す るために本発明に基づくマイクロプロセサを使用する装置の見掛けの速度はシス テムクロックの速度の約1/9である。従って、100MHzのシステムクロッ クの場合には、装置速度は約11MHzである。このような速度は多くの適用場 面に対して充分に高速なものである。マイクロプロセサはそれが置換する論理装 置要素よりも一層小型のものとすることが可能である。従って、本発明装置は、 それが置換するプログラマブル論理装置よりも かなり低価格である。 大型の設計の場合には、見掛けの速度は遅くなる。然しながら、変化を検知し 且つ変化が発生した場合にのみレジスタへアクセスするためのプログラムをシミ ュレータをして書かせることにより高速化させることが可能である。例えば、表 1の「INV H −> I」ステップは、それが「MOVE G −> H」 ステップの後においてのみ実行されるように移動させることが可能である。フリ ップフロップ出力以外の信号を付加的にチェックすることにより入力値が変化し なかった場合に論理のアップデートをマイクロプロセサがスキップさせることも 可能である。インタラプト駆動型マイクロプロセサ ある論理設計においては、全ての入力ピンが同じ周波数で読取られる場合に発 生する速度よりも一層迅速にあるピンがサービスされねばならない。上述した如 く、一層速い応答を供給せねばならないピンはより頻繁に読取ることが可能であ る。然しながら、幾つかのピンを頻繁に読取ることは他の機能からマイクロプロ セササイクルを取上げ且つ不所望に全体的なチップ性能を遅滞化させる場合があ る。1つのピンが比較的たまにしか値を変化させない場合には、頻繁にチェック を行なってもたまにしか変化を発生 させることはない。別法は、1つのピン上の信号が変化した時を検知するために インタラプトメカニズムを使用することである。 図2Eはインタラプト駆動型マイクロプロセサと共に使用する入力/出力ブロ ックIOB3の実施例を示している。インタラプト線及びインタラプトバスがチ ップに付加されており、且つ図2Dに示した如く、入力構成体へ接続されている 。 更に入力/出力ブロックIOB3へ付加されているものは、変化検知用XOR ゲートXOR3I、インタラプト許容ゲートAND3I、セット/リセットラッ チSR3I、リセットゲートAND3IR、トライステート制御ANDゲートT C3I、トライステートバッファTB3IA0乃至TB3IA5、インタラプト 信号アキュムレートINT3である。 XORゲートXOR3Iは、レジスタR13のQ出力をピンP3上の値と比較 することによりピンP3の値における変化を検知する。これらの値における差異 はXORゲートXOR3Iをして論理Iを出力させる。インタラプト許容AND ゲートAND3Iは、XORゲート3Iの出力を、INTALLOW信号によっ てイネーブルされる場合に、セット/リセットラッチSR3Iへパスさせる。こ のINTALLOW信号はグローバル信号、一群のピン入力へ 印加される信号、又はレジスタR11がアドレスされる態様でアドレスバスから アドレスされる別のレジスタの出力とすることが可能である。 INTALLOW信号が高である場合には、XORゲートSOR3Iの出力上 の高信号がセット/リセットラッチSR3Iをして高インタラプト信号を出力さ せる。この高信号はインタラプト線上に高信号を発生する。このインタラプト線 は図2EにおいてインタラプトORゲートINT3によって接続された線INT IN及び線INTOUTとして示してある。線INT3IN上における高信号又 は線INTIN上の高信号は、ORゲートINT3をして線INTOUT上に高 信号を与える。ORゲートINT3と等価なゲートが各ピンに対して設けられて おり、それはインタラプトを発生することが可能であり、且つ例えばストリング 又はツリー構成に接続されており、いずれかのインタラプト駆動ピンが値を変化 させた場合にマイクロプロセサに対して高インタラプト信号を発生する。その他 のインタラプト信号を発生する構成も可能であり、例えばワイヤードANDイン タラプト信号を使用することも可能である。 線INT3IN上の高信号もANDゲートTC3Iをイネーブル即ち動作可能 状態とさせる。ORゲートINT3から上流側の別のピンが高INTIN信 号を発生すると、ANDゲートTC3IはトライステートバッファTB3IA0 乃至TB3IA5をターンオンさせることはない。然しながら、上流側のピンが インタラプト信号を発生しない場合には、ANDゲートTC3Iが高出力信号を 発生し、それはトライステートバッファTB3IA0乃至TB31A5をしてピ ンP3のインタラプトアドレスを線I0乃至15から構成されるインタラプトバ ス上へ配置させる。 マイクロプロセサがこのインタラプト信号を検知すると、それはその現在のプ ログラムカウンタとその他の内部状態とをセーブし且つそのピンに対するインタ ラプトを取扱うコードへ分岐する。インタラプトを取扱うことは、変化した値に 基づく関数(機能)を評価することを包含する場合があり、且つ新たな値を他の ピンへ書込むこととなる場合がある。与えられたピンに対するインタラプトに応 答して行なわれる動作はユーザによって決定され、ユーザはインタラプトイネー ブルされるべきピンのサブセット及びそのインタラプトに応答する設計の一部を 識別することが可能である。別法として、インタラプト応答はユーザの設計を1 組のマイクロプロセサ命令へ変換するコンパイラによって選択することが可能で ある。 図2Eに示した如く、アドレス000011はセット/リセットラッチSR3 Iに対するANDゲートAND3IRによってデコードされるアドレスと同一で ある。一方、該アドレスはピンP3のラベル(00011)又はその他の独特の アドレスとすることが可能である。 セット/リセットラッチSR3Iによって開始されるインタラプトを受取り且 つ処理した後に、マイクロプロセサはANDゲートAND3IRをアドレスして セット/リセットラッチSR3Iをリセットする。ANDゲートAND3IRの アドレスがANDゲートAND3DIDのアドレスと異なるものであることが重 要である。何故ならば、これらのデコーダは同一のアドレスバス上にあるからで ある。 マイクロプロセサが全てのアクティブ即ち活性状態にあるインタラプトを処理 すると、それはその命令空間内にロードされた命令において特定されている計算 へ復帰する。インタラプトを取扱うマイクロプロセサの動作に後続するものはイ ンタラプトを取扱う従来のマイクロプロセサによって使用される従来のシーケン スのステップである。このようなステップはジョンワイリィアンドサンズ出版社 によって1978年に出版されたコンピュータ及び計算の構造(The Str uctures of Com puters and Computation)においてDavid J. Kuckによって説明されている。 本発明の多くの実施形態において、幾つかのピンが同一のインタラプトアドレ ス及びリセットアドレスを共用する場合がある。このことはインタラプト信号が 通過せねばならないゲート数を少なくし、インタラプトバス幅を減少し、且つイ ンタラプトベクトルを格納するのに必要なメモリを減少させるが、個々のピンの 上の信号を処理することが可能な柔軟性を制限する。マルチプルマイクロプロセサ実施例 マイクロプロセサの速度が多くの命令を充分な見掛けのクロック速度で取扱う のに充分ではない程度に大型であり且つ尚且つ典型的なFPGAを必要とするも のではないタイプの設計においては、幾つかのマイクロプロセサを1つのチップ 内に組込むことが可能である。 図5は2つのマイクロプロセサ101a及び101bが設けられているアーキ テクチュアを示している。これら2つのマイクロプロセサは共用のメモリ102 a及び102bを介して互いに通信を行なう。両方のマイクロプロセサは全メモ リ空間102a及び102bを読取ることが可能である。然しながら、 任意の特定のメモリ位置に対して1つのマイクロプロセサのみが書込みを行なう ことが可能である。本実施例においては、マイクロプロセサ101aはメモリ空 間102aに対して書込みを行なうことが可能であり、且つマイクロプロセサ1 01bはメモリ空間102bに対して書込みを行なうことが可能である。一実施 例においては、どちらのマイクロプロセサによってどのメモリ空間に対して書込 みを行なうことが可能であるかの選択は、どのマイクロプロセサがどのメモリセ ルの書込みポートに対してアクセスを有しているかによって決定される。(この 実施例については図7に関連して後述する。)別の実施例においては、書込みポ ートが両方のマイクロプロセサ101a及び101bからの殆ど又は全てのメモ リセルに対して設けられており、且つ選択は命令空間103内に格納されている プログラムによって制御される。この多数読取器−単一書込器条件は、機能的に は、幾つかの装置を与えられた線によって駆動することが可能であるが1個の出 力ドライバのみが与えられた線に対して信号を与えることが可能であるという公 知のハードウエア設計条件と類似している。ハードウエアの場合においては、こ の条件はファンアウトを可能としながら接続(2つのドライバが異なる電圧を同 一の線へ印加すること)を回 避する。本マルチプロセサの場合においては、この規則は特定のメモリ位置にお ける値に関しての非予測性を回避し、尚且つ複数個のマイクロプロセサが共用メ モリを介して通信することを可能とする。 図5の実施例においては、命令空間103における命令はマイクロプロセサ1 01aを制御する命令空間103aとマイクロプロセサ103bを制御する命令 空間103bに分割される。これら2つの命令空間が同一の寸法であること、又 は命令空間103がデータ空間102から物理的に異なるものであることは必要 ではない。前述した如く、命令空間103a及び103bは外部供給源からロー ドされたメモリの一部である。これらの命令はチップのコンフィギュレーション を確立する(即ち、チップがエミュレートする論理を定義する)。どちらのマイ クロプロセサもメモリ空間103に対して書込みを行なうことはない。命令空間 103は図1に示した如く書込みポートを外部ピンに対してのみアクセス可能で あるようにすることにより上書きされることから保護することが可能である。一 方、命令を発生するために使用されるコンパイラが命令空間の寸法を確立するこ とが可能であり、且つ書込み命令が命令に対して割当てられている空間へアクセ スすることがないことを確保することが可能である。 単一サイクルに於いて2つの入力と1つの出力とを有する動作を実行するため にマイクロプロセサは2つの入力へ同時的にアクセスせねばならず、且つこのこ とはマイクロプロセサが2つの入力ポートを有することを必要とする。同一のサ イクルにおいて値を出力することは、上昇クロックエッジで一方の入力を読取る ことが可能であり且つ下降エッジで同一のポートに対して出力を送給することが 可能であり、従って単一のポートを同一のクロックサイクルにおいて読取り及び 書込みの両方のために使用することが可能であるが、典型的に、第三のポートを 必要とする。1つのメモリセルが同一のクロックサイクルにおいて読取り及び書 込みの両方が行なわれる可能性が存在する場合には、変化された値が再び読取ら れ且つ同一のクロックサイクルで変化される競合条件を、入力値を非同期的に読 取り(命令を受取るやいなや)且つクロックエッジで新たな値を書込むことによ って回避することが可能である。 マイクロプロセサが2つの読取りポートを有すべき場合には、マイクロプロセ サがどのポートがメモリセル内にその値を与えるかを選択することが可能である ようにメモリセルも2つの読取りポートをもたねばならない。本実施例において は、各マイクロプロセサは2つの入力ポートと1つの出力ポートと を有している。これらの2つのマイクロプロセサは同一のメモリセルへアクセス し、従ってメモリセルはマイクロプロセサへ入力するために4つのポートを持た ねばならない。任意の与えられたメモリセルに対してマイクロプロセサのうちの 1つのみが書込みを行なうことが可能であるに過ぎないので、書込みのために第 5メモリセルポートを使用することが可能である。 図6は2つの入力と、1つの出力と、1つの動作とを識別するために各マイク ロプロセサへ与えられる命令のフォーマットを示している。図6の命令内に含ま れているものは、マイクロプロセサによって演算されるべき関数F(典型的に、 ブール関数、算術関数、シフト、反転、等を包含しており、これら関数のうちの 少なくとも幾つかは単一ビット入力及びマルチビット入力で演算可能である)、 Aポートへ入力されるべきデータのアドレス(行アドレス及び列アドレス)、B ポートへ入力されるべきデータのアドレス、及び出力が書込まれるべきアドレス である。マイクロプロセサは識別されたメモリセルに到達するためにデコーダを アドレスすることにより応答する。マイクロプロセサ及びメモリ技術において公 知の如く、マイクロプロセサによりアドレスされるデコーダは、マイクロプロセ サからの特定のア ドレスに応答してどのアドレス線が高へプルされ且つマイクロプロセサからの特 定のアドレスに応答してどのデータ線が読取られるか又は書込まれるかを選択す る。各ポータ及び各マイクロプロセサに対して別々のデコーダが設けられている 。従って、各行及び各列は5個のデコーダを有している。デコーダは公知である ので、ここでは図示していない。 図5に戻ると、各マイクロプロセサは3つのアドレスバスAA,AB,ACと 3つのデータバスDA,DB,DCとを有しており、それらは図6に示したフォ ーマットの命令に応答してアクセスされる。マイクロプロセサ101aからのバ スはラベル即ち記号aを有しており且つマイクロプロセサ101bからのバスは ラベル即ち記号bを有している。マイクロプロセサ101aのアドレスバスAA a及びABa及びデータバスDAa及びDBaは読取りのためであり、且つRA M102a及び102bの両方へアクセスする。同様に、マイクロプロセサ10 1bのアドレスバスAAb及びABb及びデータバスDAb及びDBbはRAM 102a及び102bの両方へアクセスする。更に、アドレスバスAAa,AB a,AAb,ABb及びデータバスDAa,DBa,DAb,DBbはI/Oブ ロックIOB0乃至IOB19の全てへアクセスする。然しながら、マイクロ プロセサ102aのアドレスバスACa及びデータバスACaは書込みのためで あり、且つRAM102aのみへアクセスし、一方マイクロプロセサ102bの アドレスバスACb及びデータバスDCbはRAM102bのみにアクセスする 。マイクロプロセサ101aのアドレスバスACa及びデータバスDCaはI/ OブロックIOB7乃至IBO17へアクセスし、一方マイクロプロセサ101 bのアドレスバスACb及びデータバスDCbはI/OブロックIOB18,I OB19及びIOB0乃至IOB6へアクセスする。従って、各I/Oブロック 及び各メモリセルはいずれかのマイクロプロセサによって読取られ且つ1つのマ イクロプロセサによってのみ書込みが行なわれる。これら2つのマイクロプロセ サは並列的に動作し、ROM103a及び103b内に格納されている命令を同 時的に実行し、従って単一のマイクロプロセサの速度の最大で2倍の速度を与え る。 勿論、その他の実施例においては、その他の分割を行なうことが可能である。 重要なことであるが、本発明は2つのマイクロプロセサに制限されるものではな い。複数個のマイクロプロセサの間でアクセスされる位置を分割し且つ異なるマ イクロプロセサに対して異なる組の命令を与える本明細書に記載し た原理を使用して、32個のプロセサ又はその他のより多くの数のマイクロプロ セサを有する実施例を与えることも可能である。 多数のマイクロプロセサとすることは多数のアドレス線及びデータ線が存在す ることを意味する。多数プロセサ実施例においてのアドレス線及びデータ線の数 を制限するために、それらのマイクロプロセサがアドレス線及びデータ線の幾つ かを共用することが可能である。これらのマイクロプロセサは、幾つかの共用さ れていないメモリ(効率的であるが他のマイクロプロセサとの通信のために使用 することはできない)、少数の他のマイクロプロセサと共用された幾つかのメモ リ、及び他の全てのマイクロプロセサと共用された幾つかのメモリ(相互接続構 成体の大きさにおいて高価である)を有することが可能である。 一方、複数個のマイクロプロセサが共用バスを介して互いに通信を行なうこと が可能である。このような態様でパスされる情報は、1個を超えた数のマイクロ プロセサによって使用されるデータ値における変化を包含している。このような 実施例の場合には、命令は他のマイクロプロセサによるバスアクセスのスケジュ ールを考慮に入れねばならない。マイクロプロセサに対する適宜のスケージュー リングに よって、バス競合を回避することが可能である。一方、バス要求とバス許可とを 取扱うハードウエアによってバス競合の回避を確保することが可能である。 図7はRAM102a用のメモリ構成を示している。6個のメモリセルM1, 1乃至M3,2が示されているが、勿論、実際の装置においてはより多くのもの が設けられている。これらのメモリセルは行及び列の形態に配列されており、各 行へアクセスするための1組のデータ線と各列へアクセスするための1組のアド レス線が設けられている。各メモリセルはループ状に接続された一対のインバー タI1及びI2を有している。これらはメモリセルM1,1においてのみラベル 即ち記号が付けられている。これはマルチポートメモリであって、即ちマルチポ ートマイクロプロセサと共に動作するために、メモリセルは5つのアドレス線と 5つのデータ線を介してアクセスすることが可能である。ラベル即ち記号におい て小文字「a」を有するアドレス線はマイクロプロセサ101aによってアクセ スされ、且つラベル即ち記号において小文字「b」を有するアドレス線はマイク ロプロセサ101bによってアクセスされる。大文字「A」で終了するラベル即 ち記号を有するアドレス線は、データを夫々のマイクロプロセサのA入力ポート 上へ配置させ、一方大文字「B」 で終了するラベル即ち記号を有するアドレス線はデータを夫々のマイクロプロセ サのB入力ポート上へ配置させる。大文字「C」で終了するラベル即ち記号を有 するアドレス線は、マイクロプロセサから出力され且つ対応するデータ線上に配 置されたデータを対応するメモリセルへ書込ませる。例えばメモリセルM1,1 等のメモリセル内に格納されている値は5つの対応するトランジスタによって制 御される5つのポートのうちのいずれかを介してアクセスすることが可能である 。例えば、線A1aA上の高信号はトランジスタT1,1aAをターンオンし、 それはメモリセルM1,1内の値をデータ線D1aA上に配置させる。線A1a A上の高信号は、トランジスタT2,1aA及び同一の列内のその他のトランジ スタをターンオンさせる。注意すべきことであるが、図7に示したメモリ102 aの部分はマイクロプロセサ101bによって書込まれることはない。然しなが ら、マイクロプロセサ101bはメモリ102aから値を読取ることが可能であ り且つ計算結果をメモリ102b内に配置させることが可能であり、それはマイ クロプロセサ101aによって読取ることは可能であるがマイクロプロセサ10 1aによって書込むことはできない。 マイクロプロセサ101aは位置M1,1及びM 2,1内の値のAND関数を決定し且つその結果を位置M3,1内に配置させる べく命令されると、図6におけるフォーマットに基づくメモリ103内の命令は 以下の如くである。 0001 000000 000000 000000 000001 00 0000 000010この命令は以下の如くに分解される。 0001 両方の入力が論理1である場合のみ(AND関数)論理1出 力を発生する。 000000 A入力ポートの場合には、列1をアドレスする(図7におけ るAlaA) 000000 A入力ポートの場合、行1内のデータをアドレス(DlaA ) 000000 B入力ポートの場合、列1をアドレス(AlaB) 000001 B入力ポートの場合、行2内のデータをアドレス(D2aB ) 000000 C出力ポートの場合、列1をアドレス(AlaC) 000010 C出力ポートの場合、行3からのデータをロード(D3aC ) この命令に応答して、マイクロプロセサ101a はセルM1,1からの第一入力をそのA入力ポート上へ配置させるために線A1 aA及びD1aAをアドレスし且つセルM2,1からの第二入力をそのD入力ポ ート上へ配置させるために線A1aB及びD2aBをアドレスする。関数ビット 0001はAND関数に対する真理値表である。注意すべきことであるが、4つ のビットが2つの入力の16個の組合わせ関数の全てに対する真理値表として作 用する。従って、これらの4つの命令ビットは、マイクロプロセサ101aのA 及びD入力ポートへ入力される値によってアドレスされ、且つC出力ポート上へ 配列されるべき出力値を与える。マイクロプロセサ101aは、AND関数の結 果をメモリセルM3,1へ書込むために線A1aC及びD3aCをアドレスする 。マイクロプロセサ101aがこの命令を実施している同一のクロックサイクル 期間中に、マイクロプロセサ101bは別の命令を実施し、それは領域102b 内におけるメモリセルへ値を同時的に書込むこととなる場合があるが、領域10 2a内のメモリセルへ値を買い込むこととなることはない。 マイクロプロセサ101a及び101bが書込みを行なう位置の中には、チッ プの周囲に設けられている入力/出力バッファがある。これらのI/Oバッファ の各々は1つのマイクロプロセサによっての み書込むが行なわれる。図5に示した実施例においては、ハードウエアが単に1 つのマイクロプロセサが特定のI/Oバッファに対して書込みを行なうことを許 容する。別の実施例においては、両方のマイクロプロセサが書込みを行なうため に全てのI/Oバッファ及び全ての内部メモリセルへアクセスすることが可能で あり、且つメモリ103内の命令がどのマイクロプロセサがどのI/Oバッファ へ書込みを行なうかを制御する。このような実施例においては、I/Oバッファ 及び内部メモリの書込み制御は、メモリ103内の命令内に特定されている場合 には、2つのマイクロプロセサの間で行ったり戻ったりすることが可能である。 上述したマルチポートマイクロプロセサの説明では、2つのポートが入力用で あり且つ1つが出力用である3ポートマイクロプロセサの例を使用している。こ のことはマルチポートマイクロプロセサの一般的な構成である。然しながら、本 発明は付加的なポートを有するマイクロプロセサを効果的に使用することが可能 である。例えば、3入力又は4入力関数に対して装置を最適化させる場合には、 3又は4入力ポートマイクロプロセサを与えることが可能である。メモリは対応 する数のポートを有している。幾つかのマイクロプロセサが使用される場合には 、 メモリ又はメモリの一部は2入力ポート例に対して説明した様に、マイクロプロ セサの1つ又はそれ以上へアクセスするためのポートを有している。
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI G06F 15/78 510 E 4232−5L H03K 19/173 101 9199−5K 【要約の続き】 1b)を与えることも可能である。

Claims (1)

  1. 【特許請求の範囲】 1.プログラマブル集積回路において、 マイクロプロセサ、 複数個の導電線を有する内部バス、 複数個のピン又はパッド、 各々が前記バスの1つの線へ接続されている複数個のリードと前記ピン又はパ ッドのうちの1つへ接続されている少なくとも1つのリードとを具備する複数個 の入力/出力ブロック、 前記マイクロプロセサの少なくとも1つのリードを前記バスにおける前記導電 線の対応する1つへ接続する手段、 前記マイクロプロセサを制御する1組の命令を格納する手段、 を有するプログラマブル集積回路。 2.請求項1において、前記マイクロプロセサの少なくとも1つのリードを 接続する手段が、前記バス内の複数個の導電線へアクセスする手段を有するプロ グラマブル集積回路。 3.請求項1において、更に、 前記マイクロプロセサによって発生される信号を格納する手段(102)、 前記信号を読取る手段、 を有するプログラマブル集積回路。 4.請求項1において、前記入力/出力ブロックが少なくとも1つの出力格 納レジスタを有しているプログラマブル集積回路。 5.請求項4において、前記入力/出力ブロックが、外部ピンヘ印加すべき データを格納するための第一出力格納レジスタと、前記ピンへの印加を制御する ための第二出力格納レジスタとを有するプログラマブル集積回路。 6.請求項5において、更に、前記第一格納レジスタの出力において3状態 バッファが設けられており、且つ第二出力格納レジスタが前記3状態バッファを 制御するプログラマブル集積回路。 7.請求項1において、前記入力/出力ブロックが少なくとも1個の入力格 納レジスタを有するプログラマブル集積回路。 8.請求項7において、前記入力/出力ブロックが、更に、前記入力格納レ ジスタをイネーブルするためのカウンタ手段(201)を有するプログラマブル 集積回路。 9.請求項8において、前記カウンタ手段がカウンタとセット/リセットラ ッチとを有しており、前記バスがアドレスバスとデータバスとを有しており、前 記データバスが前記カウンタへ並列的にロードし、前記アドレスバスが前記カウ ンタをスタート させ、且つ前記カウンタが前記ラッチをリセットさせるプログラマブル集積回路 。 10.請求項7において、前記入力/出力ブロックが、更に、前記入力格納レ ジスタによってロードされる3状態バッファを有しているプログラマブル集積回 路。 11.請求項1において、前記入力/出力ブロックが入力3状態バッファを有 しているプログラマブル集積回路。 12.請求項11において、前記入力34状態バッファが前記アドレスバスを 介してアドレスされるプログラマブル集積回路。 13.請求項1において、前記1組の命令における1つの命令が前記命令にお いて実行される関数を定義するルックアップテーブルを有しているプログラマブ ル集積回路。 14.請求項1において、前記1組の命令における1つの命令がデータの読取 り及び書込みのための複数個のポートを識別するプログラマブル集積回路。 15.請求項1において、前記マイクロプロセサが複数個のマイクロプロセサ を有しているプログラマブル集積回路。 16.請求項15において、前記ピン又はパッドのうちのいずれか1つが前記 複数個のマイクロプロセ サのうちの1つによってのみ書込まれるプログラマブル集積回路。 17.請求項15において、更に、複数個のメモリセルを有するメモリが設け られており、前記メモリにおける前記セルのうちのいずれか1つが前記複数個の マイクロプロセサのうちの1つによってのみ書込まれるプログラマブル集積回路 。 18.請求項1において、1つの命令が3つのアドレスを呼出し、そのうちの 2つが入力用であり且つ1つが出力用であるプログラマブル集積回路。 19.請求項18において、前記入力アドレスのうちの両方が別個のメモリポ ートを介して同時的にメモリセルへアクセルするプログラマブル集積回路。 20.請求項1において、1つの命令が4つのアドレスを呼出し、そのうちの 3つが入力用であり且つ1つが出力用であるプログラマブル集積回路。 21.請求項1において、前記入力/出力ブロックのうちの少なくとも1つが 1つのクロック信号の単一サイクルにおいて複数個のデータビットをロードする ために複数個のフリップフロップを有しており、前記フリップフロップを単一の アドレスに応答して制御するプログラマブル集積回路。 22.請求項21において、前記複数個のデータビットが前記フリップフロッ プを制御する前記クロッ ク信号の制御下において外部ピンへシフトされ、且つ前記フリップフロップを制 御する前記クロック信号が前記マイクロプロセサを制御するクロック信号と異な る速度でスイッチ動作するプログラマブル集積回路。
JP50595295A 1993-08-03 1994-08-02 マイクロプロセサをベースとしたfpga Expired - Lifetime JP3708541B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10201193A 1993-08-03 1993-08-03
US102,011 1993-08-03
PCT/US1994/008490 WO1995004402A1 (en) 1993-08-03 1994-08-02 Microprocessor-based fpga

Publications (2)

Publication Number Publication Date
JPH08503321A true JPH08503321A (ja) 1996-04-09
JP3708541B2 JP3708541B2 (ja) 2005-10-19

Family

ID=22287641

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50595295A Expired - Lifetime JP3708541B2 (ja) 1993-08-03 1994-08-02 マイクロプロセサをベースとしたfpga

Country Status (4)

Country Link
US (2) US5652904A (ja)
EP (1) EP0665998A4 (ja)
JP (1) JP3708541B2 (ja)
WO (1) WO1995004402A1 (ja)

Families Citing this family (156)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5794062A (en) * 1995-04-17 1998-08-11 Ricoh Company Ltd. System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization
US5894228A (en) * 1996-01-10 1999-04-13 Altera Corporation Tristate structures for programmable logic devices
US6882177B1 (en) 1996-01-10 2005-04-19 Altera Corporation Tristate structures for programmable logic devices
US5752006A (en) * 1996-01-31 1998-05-12 Xilinx, Inc. Configuration emulation of a programmable logic device
US5737766A (en) * 1996-02-14 1998-04-07 Hewlett Packard Company Programmable gate array configuration memory which allows sharing with user memory
US5744995A (en) * 1996-04-17 1998-04-28 Xilinx, Inc. Six-input multiplexer wtih two gate levels and three memory cells
US6624658B2 (en) 1999-02-04 2003-09-23 Advantage Logic, Inc. Method and apparatus for universal program controlled bus architecture
US6034547A (en) 1996-09-04 2000-03-07 Advantage Logic, Inc. Method and apparatus for universal program controlled bus
DE19651075A1 (de) * 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen
DE19654846A1 (de) * 1996-12-27 1998-07-09 Pact Inf Tech Gmbh Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.)
US5959466A (en) 1997-01-31 1999-09-28 Actel Corporation Field programmable gate array with mask programmed input and output buffers
US5821776A (en) * 1997-01-31 1998-10-13 Actel Corporation Field programmable gate array with mask programmed analog function circuits
US6150837A (en) 1997-02-28 2000-11-21 Actel Corporation Enhanced field programmable gate array
US6188381B1 (en) * 1997-09-08 2001-02-13 Sarnoff Corporation Modular parallel-pipelined vision system for real-time video processing
US6014036A (en) * 1997-11-20 2000-01-11 International Business Machines Corporation Bidirectional data transfer path having increased bandwidth
US6785327B1 (en) * 1997-12-23 2004-08-31 Agere Systems, Inc. Multiported register file for burst mode coefficient updating
US20020152060A1 (en) * 1998-08-31 2002-10-17 Tseng Ping-Sheng Inter-chip communication system
US6300792B1 (en) 1999-02-06 2001-10-09 Altera Corporation Programmable input/output pin signal multiplexing/demultiplexing circuitry for integrated circuits
US6407576B1 (en) * 1999-03-04 2002-06-18 Altera Corporation Interconnection and input/output resources for programmable logic integrated circuit devices
US6580288B1 (en) * 1999-09-09 2003-06-17 International Business Machines Corporation Multi-property microprocessor with no additional logic overhead to shared pins
AU7597600A (en) * 1999-09-20 2001-04-24 Seagate Technology Llc Field programmable gate array hard disk system
US6947882B1 (en) * 1999-09-24 2005-09-20 Mentor Graphics Corporation Regionally time multiplexed emulation system
US6732203B2 (en) * 2000-01-31 2004-05-04 Intel Corporation Selectively multiplexing memory coupling global bus data bits to narrower functional unit coupling local bus
US6665766B1 (en) * 2000-08-14 2003-12-16 Xilinx, Inc. Adaptable configuration interface for a programmable logic device
US6522167B1 (en) 2001-01-09 2003-02-18 Xilinx, Inc. User configurable on-chip memory system
US6662285B1 (en) 2001-01-09 2003-12-09 Xilinx, Inc. User configurable memory system having local and global memory blocks
US20040078608A1 (en) * 2001-04-02 2004-04-22 Ruban Kanapathippillai Method and apparatus for power reduction in a digital signal processor integrated circuit
US6605962B2 (en) 2001-05-06 2003-08-12 Altera Corporation PLD architecture for flexible placement of IP function blocks
US7076595B1 (en) 2001-05-18 2006-07-11 Xilinx, Inc. Programmable logic device including programmable interface core and central processing unit
US20030020082A1 (en) * 2001-07-25 2003-01-30 Motorola, Inc. Structure and method for fabricating semiconductor structures and devices for optical switching
DE10142679A1 (de) * 2001-08-31 2003-04-03 Infineon Technologies Ag Treiberschaltung
US7420392B2 (en) * 2001-09-28 2008-09-02 Xilinx, Inc. Programmable gate array and embedded circuitry initialization and processing
US6781407B2 (en) 2002-01-09 2004-08-24 Xilinx, Inc. FPGA and embedded circuitry initialization and processing
US6798239B2 (en) 2001-09-28 2004-09-28 Xilinx, Inc. Programmable gate array having interconnecting logic to support embedded fixed logic circuitry
US20030212940A1 (en) * 2001-10-16 2003-11-13 Dale Wong Interface architecture for embedded field programmable gate array cores
US6983405B1 (en) 2001-11-16 2006-01-03 Xilinx, Inc., Method and apparatus for testing circuitry embedded within a field programmable gate array
US6996758B1 (en) 2001-11-16 2006-02-07 Xilinx, Inc. Apparatus for testing an interconnecting logic fabric
US6886092B1 (en) 2001-11-19 2005-04-26 Xilinx, Inc. Custom code processing in PGA by providing instructions from fixed logic processor portion to programmable dedicated processor portion
US7126214B2 (en) * 2001-12-05 2006-10-24 Arbor Company Llp Reconfigurable processor module comprising hybrid stacked integrated circuit die elements
US6627985B2 (en) 2001-12-05 2003-09-30 Arbor Company Llp Reconfigurable processor module comprising hybrid stacked integrated circuit die elements
US6674303B1 (en) * 2001-12-14 2004-01-06 Lattice Semiconductor Corporation Programmable input/output cell with bidirectional and shift register capabilities
US6686769B1 (en) * 2001-12-14 2004-02-03 Altera Corporation Programmable I/O element circuit for high speed logic devices
US6590418B1 (en) * 2001-12-19 2003-07-08 Intel Corporation Method and apparatus for a programmable output interface
JP3848152B2 (ja) * 2001-12-20 2006-11-22 株式会社東芝 多機能icカード
US6820248B1 (en) 2002-02-14 2004-11-16 Xilinx, Inc. Method and apparatus for routing interconnects to devices with dissimilar pitches
US6976160B1 (en) 2002-02-22 2005-12-13 Xilinx, Inc. Method and system for controlling default values of flip-flops in PGA/ASIC-based designs
US6941538B2 (en) * 2002-02-22 2005-09-06 Xilinx, Inc. Method and system for integrating cores in FPGA-based system-on-chip (SoC)
US7058921B1 (en) 2002-02-22 2006-06-06 Xilinx, Inc. Method and system for resource allocation in FPGA-based system-on-chip (SoC)
US6735756B1 (en) 2002-02-22 2004-05-11 Xilinx, Inc. Method and architecture for dynamic device drivers
US7382823B1 (en) 2002-02-22 2008-06-03 Xilinx, Inc. Channel bonding control logic architecture
US6754882B1 (en) 2002-02-22 2004-06-22 Xilinx, Inc. Method and system for creating a customized support package for an FPGA-based system-on-chip (SoC)
US6760898B1 (en) 2002-02-22 2004-07-06 Xilinx, Inc. Method and system for inserting probe points in FPGA-based system-on-chip (SoC)
US6693452B1 (en) 2002-02-25 2004-02-17 Xilinx, Inc. Floor planning for programmable gate array having embedded fixed logic circuitry
US7007121B1 (en) 2002-02-27 2006-02-28 Xilinx, Inc. Method and apparatus for synchronized buses
US6934922B1 (en) 2002-02-27 2005-08-23 Xilinx, Inc. Timing performance analysis
US6839874B1 (en) 2002-02-28 2005-01-04 Xilinx, Inc. Method and apparatus for testing an embedded device
US7111217B1 (en) 2002-02-28 2006-09-19 Xilinx, Inc. Method and system for flexibly nesting JTAG TAP controllers for FPGA-based system-on-chip (SoC)
US7124382B1 (en) 2002-03-01 2006-10-17 Xilinx, Inc. Method and apparatus for rule file generation
US7187709B1 (en) 2002-03-01 2007-03-06 Xilinx, Inc. High speed configurable transceiver architecture
US6970013B1 (en) 2002-03-01 2005-11-29 Xilinx, Inc Variable data width converter
US7111220B1 (en) 2002-03-01 2006-09-19 Xilinx, Inc. Network physical layer with embedded multi-standard CRC generator
US6617877B1 (en) 2002-03-01 2003-09-09 Xilinx, Inc. Variable data width operation in multi-gigabit transceivers on a programmable logic device
US7088767B1 (en) 2002-03-01 2006-08-08 Xilinx, Inc. Method and apparatus for operating a transceiver in different data rates
US6810458B1 (en) 2002-03-01 2004-10-26 Xilinx, Inc. Method and circuit for hot swap protection
US6961919B1 (en) 2002-03-04 2005-11-01 Xilinx, Inc. Method of designing integrated circuit having both configurable and fixed logic circuitry
JP2003338175A (ja) * 2002-05-20 2003-11-28 Mitsubishi Electric Corp 半導体回路装置
US6973405B1 (en) 2002-05-22 2005-12-06 Xilinx, Inc. Programmable interactive verification agent
US6772405B1 (en) 2002-06-13 2004-08-03 Xilinx, Inc. Insertable block tile for interconnecting to a device embedded in an integrated circuit
US7085973B1 (en) 2002-07-09 2006-08-01 Xilinx, Inc. Testing address lines of a memory controller
US7099426B1 (en) 2002-09-03 2006-08-29 Xilinx, Inc. Flexible channel bonding and clock correction operations on a multi-block data path
US7092865B1 (en) 2002-09-10 2006-08-15 Xilinx, Inc. Method and apparatus for timing modeling
US6917536B1 (en) * 2002-09-13 2005-07-12 Lattice Semiconductor Corporation Memory access circuit and method for reading and writing data with the same clock signal
US6944836B1 (en) 2002-11-15 2005-09-13 Xilinx, Inc. Structures and methods for testing programmable logic devices having mixed-fabric architectures
KR100481184B1 (ko) * 2003-03-26 2005-04-07 삼성전자주식회사 반도체 메모리 집적회로
US7421014B2 (en) * 2003-09-11 2008-09-02 Xilinx, Inc. Channel bonding of a plurality of multi-gigabit transceivers
US7126381B1 (en) 2004-02-14 2006-10-24 Herman Schmit VPA interconnect circuit
US7284222B1 (en) * 2004-06-30 2007-10-16 Tabula, Inc. Method and apparatus for identifying connections between configurable nodes in a configurable integrated circuit
US7167025B1 (en) 2004-02-14 2007-01-23 Herman Schmit Non-sequentially configurable IC
US7193440B1 (en) * 2004-02-14 2007-03-20 Herman Schmit Configurable circuits, IC's, and systems
US7622951B2 (en) * 2004-02-14 2009-11-24 Tabula, Inc. Via programmable gate array with offset direct connections
US7425841B2 (en) 2004-02-14 2008-09-16 Tabula Inc. Configurable circuits, IC's, and systems
US7282950B1 (en) * 2004-11-08 2007-10-16 Tabula, Inc. Configurable IC's with logic resources with offset connections
US7145361B1 (en) * 2004-06-30 2006-12-05 Andre Rohe Configurable integrated circuit with different connection schemes
US7312630B2 (en) 2004-06-30 2007-12-25 Tabula, Inc. Configurable integrated circuit with built-in turns
TWI262570B (en) * 2004-10-05 2006-09-21 Faraday Tech Corp Integrated circuit chip with high area utility rate
US7301242B2 (en) 2004-11-04 2007-11-27 Tabula, Inc. Programmable system in package
US7530044B2 (en) * 2004-11-04 2009-05-05 Tabula, Inc. Method for manufacturing a programmable system in package
US7317331B2 (en) 2004-11-08 2008-01-08 Tabula, Inc. Reconfigurable IC that has sections running at different reconfiguration rates
US7276933B1 (en) * 2004-11-08 2007-10-02 Tabula, Inc. Reconfigurable IC that has sections running at different looperness
US7917559B2 (en) 2004-11-08 2011-03-29 Tabula, Inc. Configurable IC's with configurable logic circuits that perform adder and/or subtractor operations
US7743085B2 (en) 2004-11-08 2010-06-22 Tabula, Inc. Configurable IC with large carry chains
US7242216B1 (en) 2004-11-08 2007-07-10 Herman Schmit Embedding memory between tile arrangement of a configurable IC
US7259587B1 (en) * 2004-11-08 2007-08-21 Tabula, Inc. Configurable IC's with configurable logic resources that have asymetric inputs and/or outputs
US7295037B2 (en) * 2004-11-08 2007-11-13 Tabula, Inc. Configurable IC with routing circuits with offset connections
US7342415B2 (en) * 2004-11-08 2008-03-11 Tabula, Inc. Configurable IC with interconnect circuits that also perform storage operations
US7268586B1 (en) 2004-11-08 2007-09-11 Tabula, Inc. Method and apparatus for accessing stored data in a reconfigurable IC
US7330050B2 (en) * 2004-11-08 2008-02-12 Tabula, Inc. Storage elements for a configurable IC and method and apparatus for accessing data stored in the storage elements
US7573296B2 (en) * 2004-11-08 2009-08-11 Tabula Inc. Configurable IC with configurable routing resources that have asymmetric input and/or outputs
US7301368B2 (en) 2005-03-15 2007-11-27 Tabula, Inc. Embedding memory within tile arrangement of a configurable IC
US20060136606A1 (en) * 2004-11-19 2006-06-22 Guzy D J Logic device comprising reconfigurable core logic for use in conjunction with microprocessor-based computer systems
US7236009B1 (en) 2004-12-01 2007-06-26 Andre Rohe Operational time extension
US7496879B2 (en) * 2004-12-01 2009-02-24 Tabula, Inc. Concurrent optimization of physical design and operational cycle assignment
US7428721B2 (en) 2004-12-01 2008-09-23 Tabula, Inc. Operational cycle assignment in a configurable IC
US7337104B2 (en) * 2005-02-03 2008-02-26 International Business Machines Corporation Device emulation in programmable circuits
US7698449B1 (en) 2005-02-23 2010-04-13 Xilinx, Inc. Method and apparatus for configuring a processor embedded in an integrated circuit for use as a logic element
US7310003B2 (en) * 2005-03-15 2007-12-18 Tabula, Inc. Configurable IC with interconnect circuits that have select lines driven by user signals
US7530033B2 (en) 2005-03-15 2009-05-05 Tabula, Inc. Method and apparatus for decomposing functions in a configurable IC
US7298169B2 (en) * 2005-03-15 2007-11-20 Tabula, Inc Hybrid logic/interconnect circuit in a configurable IC
US8201124B1 (en) 2005-03-15 2012-06-12 Tabula, Inc. System in package and method of creating system in package
US7272031B1 (en) * 2005-03-15 2007-09-18 Tabula, Inc. Method and apparatus for reduced power cell
US7230869B1 (en) * 2005-03-15 2007-06-12 Jason Redgrave Method and apparatus for accessing contents of memory cells
US7224182B1 (en) * 2005-03-15 2007-05-29 Brad Hutchings Hybrid configurable circuit for a configurable IC
US7825684B2 (en) 2005-03-15 2010-11-02 Tabula, Inc. Variable width management for a memory of a configurable IC
US7375550B1 (en) * 2005-07-15 2008-05-20 Tabula, Inc. Configurable IC with packet switch configuration network
US7550991B2 (en) * 2005-07-15 2009-06-23 Tabula, Inc. Configurable IC with trace buffer and/or logic analyzer functionality
US7372297B1 (en) 2005-11-07 2008-05-13 Tabula Inc. Hybrid interconnect/logic circuits enabling efficient replication of a function in several sub-cycles to save logic and routing resources
US7765249B1 (en) 2005-11-07 2010-07-27 Tabula, Inc. Use of hybrid interconnect/logic circuits for multiplication
US8463836B1 (en) 2005-11-07 2013-06-11 Tabula, Inc. Performing mathematical and logical operations in multiple sub-cycles
US7818361B1 (en) 2005-11-07 2010-10-19 Tabula, Inc. Method and apparatus for performing two's complement multiplication
US7327159B1 (en) * 2005-11-28 2008-02-05 Lattice Semiconductor Corporation Interface block architectures
US7679401B1 (en) 2005-12-01 2010-03-16 Tabula, Inc. User registers implemented with routing circuits in a configurable IC
US7694083B1 (en) 2006-03-08 2010-04-06 Tabula, Inc. System and method for providing a virtual memory architecture narrower and deeper than a physical memory architecture
US7609085B1 (en) 2006-03-08 2009-10-27 Tabula, Inc. Configurable integrated circuit with a 4-to-1 multiplexer
US7518400B1 (en) 2006-03-08 2009-04-14 Tabula, Inc. Barrel shifter implemented on a configurable integrated circuit
US7797497B1 (en) 2006-03-08 2010-09-14 Tabula, Inc. System and method for providing more logical memory ports than physical memory ports
US7504858B1 (en) 2006-03-08 2009-03-17 Tabula, Inc. Configurable integrated circuit with parallel non-neighboring offset connections
US7669097B1 (en) 2006-03-27 2010-02-23 Tabula, Inc. Configurable IC with error detection and correction circuitry
US7529992B1 (en) 2006-03-27 2009-05-05 Tabula, Inc. Configurable integrated circuit with error correcting circuitry
US7587697B1 (en) 2006-12-12 2009-09-08 Tabula, Inc. System and method of mapping memory blocks in a configurable integrated circuit
US7930666B1 (en) 2006-12-12 2011-04-19 Tabula, Inc. System and method of providing a memory hierarchy
US7525344B2 (en) * 2007-03-20 2009-04-28 Tabula, Inc. Configurable IC having a routing fabric with storage elements
US7535252B1 (en) 2007-03-22 2009-05-19 Tabula, Inc. Configurable ICs that conditionally transition through configuration data sets
TWI340911B (en) * 2007-04-13 2011-04-21 Generalplus Technology Inc Capacitance touch sensor
US8069425B2 (en) 2007-06-27 2011-11-29 Tabula, Inc. Translating a user design in a configurable IC for debugging the user design
US7501855B2 (en) * 2007-06-27 2009-03-10 Tabula, Inc Transport network for a configurable IC
US7839162B2 (en) 2007-06-27 2010-11-23 Tabula, Inc. Configurable IC with deskewing circuits
US7579867B2 (en) * 2007-06-27 2009-08-25 Tabula Inc. Restructuring data from a trace buffer of a configurable IC
US7595655B2 (en) * 2007-06-27 2009-09-29 Tabula, Inc. Retrieving data from a configurable IC
US7652498B2 (en) * 2007-06-27 2010-01-26 Tabula, Inc. Integrated circuit with delay selecting input selection circuitry
US8412990B2 (en) * 2007-06-27 2013-04-02 Tabula, Inc. Dynamically tracking data values in a configurable IC
US7969184B1 (en) 2007-09-06 2011-06-28 Tabula, Inc. Configurable high speed high voltage input/output circuit for an IC
WO2009035586A1 (en) 2007-09-06 2009-03-19 Tabula, Inc. Configuration context switcher
US8990651B2 (en) 2007-09-19 2015-03-24 Tabula, Inc. Integrated circuit (IC) with primary and secondary networks and device containing such an IC
US7795913B2 (en) * 2007-12-26 2010-09-14 Tier Logic Programmable latch based multiplier
US7602213B2 (en) * 2007-12-26 2009-10-13 Tier Logic, Inc. Using programmable latch to implement logic
US8863067B1 (en) 2008-02-06 2014-10-14 Tabula, Inc. Sequential delay analysis by placement engines
US8166435B2 (en) 2008-06-26 2012-04-24 Tabula, Inc. Timing operations in an IC with configurable circuits
WO2010016857A1 (en) * 2008-08-04 2010-02-11 Tabula, Inc. Trigger circuits and event counters for an ic
EP2345160A4 (en) 2008-09-17 2016-11-16 Altera Corp CONTROLLABLE MEMORY ELEMENTS FOR AN IC
US7859294B1 (en) * 2009-01-22 2010-12-28 Xilinx, Inc. Method and arrangement for reducing power in bidirectional input/output ports
US8072234B2 (en) 2009-09-21 2011-12-06 Tabula, Inc. Micro-granular delay testing of configurable ICs
US8760193B2 (en) 2011-07-01 2014-06-24 Tabula, Inc. Configurable storage elements
US9148151B2 (en) 2011-07-13 2015-09-29 Altera Corporation Configurable storage elements
TWI526815B (zh) * 2014-09-10 2016-03-21 秦祖敬 智慧電源監控系統及其實施方法
US9887699B2 (en) 2015-10-27 2018-02-06 Andapt, Inc. Programmable logic device with integrated high voltage power FET
US20240402755A1 (en) * 2023-06-02 2024-12-05 Apple Inc. Power management based on self-synchronization of clocks

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4124899A (en) * 1977-05-23 1978-11-07 Monolithic Memories, Inc. Programmable array logic circuit
JPS57124463A (en) * 1981-01-26 1982-08-03 Nec Corp Semiconductor device
US4870302A (en) * 1984-03-12 1989-09-26 Xilinx, Inc. Configurable electrical circuit having configurable logic elements and configurable interconnects
US4706216A (en) * 1985-02-27 1987-11-10 Xilinx, Inc. Configurable logic element
US5367208A (en) * 1986-09-19 1994-11-22 Actel Corporation Reconfigurable programmable interconnect architecture
US4758745B1 (en) * 1986-09-19 1994-11-15 Actel Corp User programmable integrated circuit interconnect architecture and test method
JPH0197016A (ja) * 1987-10-09 1989-04-14 Fujitsu Ltd 半導体集積回路装置
US4847612A (en) * 1988-01-13 1989-07-11 Plug Logic, Inc. Programmable logic device
US5212652A (en) * 1989-08-15 1993-05-18 Advanced Micro Devices, Inc. Programmable gate array with improved interconnect structure
EP0419105B1 (en) * 1989-09-21 1997-08-13 Texas Instruments Incorporated Integrated circuit formed on a surface of a semiconductor substrate and method for constructing such an integrated circuit
JP2744154B2 (ja) * 1991-10-24 1998-04-28 株式会社東芝 バスシステム
US5428800A (en) * 1991-10-30 1995-06-27 I-Cube, Inc. Input/output (I/O) bidirectional buffer for interfacing I/O ports of a field programmable interconnection device with array ports of a cross-point switch
JP2965802B2 (ja) * 1991-12-19 1999-10-18 株式会社東芝 半導体集積回路
ES2099955T3 (es) * 1992-05-15 1997-06-01 Zenith Data Systems Corp Puerta en paralelo realzada.
US5331571A (en) * 1992-07-22 1994-07-19 Nec Electronics, Inc. Testing and emulation of integrated circuits
US5361373A (en) * 1992-12-11 1994-11-01 Gilson Kent L Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor

Also Published As

Publication number Publication date
US5944813A (en) 1999-08-31
US5652904A (en) 1997-07-29
WO1995004402A1 (en) 1995-02-09
JP3708541B2 (ja) 2005-10-19
EP0665998A1 (en) 1995-08-09
EP0665998A4 (en) 1996-06-12

Similar Documents

Publication Publication Date Title
JPH08503321A (ja) マイクロプロセサをベースとしたfpga
US6076152A (en) Multiprocessor computer architecture incorporating a plurality of memory algorithm processors in the memory subsystem
US6349346B1 (en) Control fabric unit including associated configuration memory and PSOP state machine adapted to provide configuration address to reconfigurable functional unit
US4907148A (en) Cellular array processor with individual cell-level data-dependent cell control and multiport input memory
US6460131B1 (en) FPGA input output buffer with registered tristate enable
US6066961A (en) Individually accessible macrocell
US20030107398A1 (en) Method and system for use of a field programmable interconnect within an asic for configuring the asic
JPS6361691B2 (ja)
US7617383B2 (en) Circular register arrays of a computer
US4685080A (en) Microword generation mechanism utilizing separate programmable logic arrays for first and second microwords
US4115852A (en) Microprogrammed controller
EP0223690A2 (en) Processor array with means to control cell processing state
CN118311916B (zh) 一种可编程逻辑系统和微处理器
JPH0216584B2 (ja)
KR100204616B1 (ko) 효율적인 파우어 온 초기화를 갖는 정보 처리 시스템
US4931989A (en) Microword generation mechanism utilizing a separate programmable logic array for first microwords
US7225321B2 (en) Reprogrammable microprogram based reconfigurable multi-cell logic concurrently processing configuration and data signals
US7058832B2 (en) Idle power reduction for state machines
CA1271259A (en) Simulation system
CA2515283C (en) Multiprocessor computer architecture incorporating a plurality of memory algorithm processors in the memory subsystem
Jiang et al. Co-Processor Based FSM Generator
Leventhal Microcomputer architecture: memory and input/output sections
WO2007139964A2 (en) Circular register arrays of a computer
KR20050060715A (ko) 마이크로 프로세서의 초기화 장치
EP1821198A1 (en) Circular register arrays of a computer

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040622

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040917

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20041101

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050516

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: 20050705

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050804

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: 20080812

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090812

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090812

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100812

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110812

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110812

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120812

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120812

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130812

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term