JPWO2005008893A1 - Semiconductor integrated circuit - Google Patents
Semiconductor integrated circuit Download PDFInfo
- Publication number
- JPWO2005008893A1 JPWO2005008893A1 JP2005504364A JP2005504364A JPWO2005008893A1 JP WO2005008893 A1 JPWO2005008893 A1 JP WO2005008893A1 JP 2005504364 A JP2005504364 A JP 2005504364A JP 2005504364 A JP2005504364 A JP 2005504364A JP WO2005008893 A1 JPWO2005008893 A1 JP WO2005008893A1
- Authority
- JP
- Japan
- Prior art keywords
- memory block
- input
- data
- logic
- address
- 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
Links
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/1776—Structural details of configuration resources for memories
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1075—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for multiport memories each having random access ports and serial ports, e.g. video RAM
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Logic Circuits (AREA)
- Semiconductor Integrated Circuits (AREA)
- Semiconductor Memories (AREA)
Abstract
本半導体集積回路は、複数個のメモリブロック(11)から構成されている。各メモリブロック(11)は、四辺(12a〜12d)で囲まれ、各辺(12a〜12d)毎にアドレス入力端子(A0〜A11)およびデータ入出力端子(D0〜D11)が設けられている。隣接する2つのメモリブロック(11)を第1および第2のメモリブロック(11)とすると、第1のメモリブロック(11)の辺(12a)に設けられたアドレス入力端子(A0〜A2)が、第2のメモリブロック(11)の対向する辺のデータ入出力端子(D8〜D6)にそれぞれ接続されている。第1のメモリブロック(11)の辺(12a)に設けられたデータ入出力端子(D0〜D2)は、第2のメモリブロック(11)の対向する辺のアドレス入力端子(A8〜A6)にそれぞれ接続されている。各メモリブロック(11)は、フレキシブルな可変論理セルを構成する。これらの可変論理セルによって所望の論理回路が形成される。The semiconductor integrated circuit is composed of a plurality of memory blocks (11). Each memory block (11) is surrounded by four sides (12a to 12d), and an address input terminal (A0 to A11) and a data input / output terminal (D0 to D11) are provided for each side (12a to 12d). . Assuming that the two adjacent memory blocks (11) are the first and second memory blocks (11), address input terminals (A0 to A2) provided on the side (12a) of the first memory block (11) are provided. Are connected to the data input / output terminals (D8 to D6) on opposite sides of the second memory block (11). The data input / output terminals (D0 to D2) provided on the side (12a) of the first memory block (11) are connected to the address input terminals (A8 to A6) on the opposite side of the second memory block (11). Each is connected. Each memory block (11) constitutes a flexible variable logic cell. These variable logic cells form a desired logic circuit.
Description
本発明は、任意の論理をプログラム可能とする複数のメモリブロックにより構成された半導体集積回路に関するものである。
技術背景
ICの製造完成後にフィールドでユーザがIC内部の回路を電気的にプログラム(書き込み)することにより、様々な論理構成を実現することのできる汎用のロジックICとしてFPGA(Field Programmable Gate Array)が知られている。
第25図(A)に示すようにFPGA100は、任意の論理を構成可能とされた複数の可変論理ブロックCLB101と、各論理ブロックCLB101を結ぶ配線群の接続状態をプログラマブルに切り換えるスイッチ回路102とによって構成されている。可変論理ブロックCLB101は、第25図(B)に示すように、組み合わせ論理回路を表現するブロックであるLUT(Look Up Table)101aと、論理情報を一時的に記憶・保持するフリップフロップ(FF)101bとからなる。LUT101aには、一般的に微小なSRAM(Static Random Access Memory)が用いられる。
また、スイッチ回路102は、第25図(C)に示すようにMOSスイッチ102aのゲート電極に1ビットの情報が記憶されたSRAM102bが接続されてなる。MOSスイッチ102aのオン/オフは、SRAM102bに記憶された情報(“0”または“1”)によって制御される。このように構成されたFPGA100は「SRAMベースのFPGA」と呼ばれる。FPGA100は、CLB101とスイッチ回路102を構成要素としてプログラマブルに論理を構成することのできるロジックICである。
このFPGA100のユーザは、まず実現しようとする所望の論理機能をHDL(Hardware Description Language)で記述し、この記述を論値合成ツールと呼ばれるプログラムによりLUT101aの論理値やスイッチ回路102のオン/オフ情報を表わす論理ゲートレベルの設計データに変換する。そして、この設計データをフィールドでFPGA100に書き込むことによって、当該論理機能がFPGA100上に構成される。
本発明者らは、上記のFPGAとは異なる技術として、SRAMやDRAM(Dynamic Random Access Memory)などの汎用メモリに類似した構成を有するメモリブロック(メモリ回路)を利用し、このメモリブロックのアドレス入力とデータ出力との関係が所望する論理回路の入力と出力との関係に対応するように、メモリブロックに論理データを格納することを可能とし、ユーザがフィールドで論理をプログラムすることのできるデバイスに関する技術を提案しており、これは例えば、国際公開WO/52735号公報または特開2003−149300号公報に開示されている。この技術によると、デバイスの構成が単純であり、メモリブロックに所望の論理機能を実現するための論理データを書き込むことで、所望の論理機能を有する回路が容易に得られるので、設計工数および開発期間が大幅に短縮される。
しかしながら、上記の先願発明は、FPGA100の論理ブロックCLB101をメモリブロックによって構成したものであり、少なくとも各メモリブロック間を任意に接続するために配線群の接続状態を切り換えるスイッチ回路が要される。そのため、回路が大規模になるにしたがい、スイッチ回路に含まれオン/オフ情報を記憶するための記憶回路の記憶容量およびその占有面積が増大する。また、組み合わせ論理を記憶させる領域と、それらの組み合わせ論理の接続状態を記憶する領域とが別々に構成されるため、論理データを効率よく格納することができない。The present invention relates to a semiconductor integrated circuit including a plurality of memory blocks that can program arbitrary logic.
Technical Background After the manufacture of an IC is completed, an FPGA (Field Programmable Gate Array) is a general-purpose logic IC that can realize various logic configurations by electrically programming (writing) the circuits inside the IC in the field. Are known.
As shown in FIG. 25 (A), the
As shown in FIG. 25C, the
The user of the
The present inventors use a memory block (memory circuit) having a configuration similar to that of a general-purpose memory such as SRAM or DRAM (Dynamic Random Access Memory) as a technology different from the above-described FPGA, and input the address of this memory block. The present invention relates to a device that allows logic data to be stored in a memory block so that a user can program logic in a field so that a relationship between a data output and a data output corresponds to a desired input / output relationship of a logic circuit. A technology is proposed, which is disclosed in, for example, International Publication WO / 52735 or Japanese Patent Application Laid-Open No. 2003-149300. According to this technology, the configuration of the device is simple, and by writing logic data for realizing a desired logic function in the memory block, a circuit having the desired logic function can be easily obtained. The period is greatly shortened.
However, in the above-mentioned prior application, the logic block CLB101 of the
本発明は、論理ブロックとスイッチ回路との区別をなくしたフレキシブルな可変論理セルにより構成された半導体集積回路を提供するものである。
上記目的を達成するために、本発明の半導体集積回路は、複数の辺で囲まれた領域毎に形成された複数のメモリブロックと、前記辺毎に設けられた複数のアドレス入力端子およびデータ入出力端子と、前記複数のメモリブロックのうち第1のメモリブロックの第1の辺に隣接する第2のメモリブロックとの間で、前記第1の辺の少なくとも1つのアドレス入力端子を、前記第2のメモリブロックの対向する辺のデータ入出力端子に接続し、前記第1の辺の少なくとも1つのデータ入出力端子を、前記第2のメモリブロックの対向する辺のアドレス入力端子に接続する接続手段と、から論理回路を構成することを特徴とするものである。
前記メモリブロックは、外部装置により予め書き込まれたデータによって、前記アドレス入力端子に入力される内部アドレス信号と前記データ入出力端子から出力される内部データ信号との関係を論理変換することを特徴とするものである。
前記メモリブロックは、スイッチ回路として動作することを特徴とするものである。
前記メモリブロックは、組み合わせ論理回路として動作することを特徴とするものである。
複数個の前記メモリブロックは、その一部で帰還経路を形成することにより、全体として順序論理回路として動作することを特徴とするものである。
前記接続手段は、外部装置から送られる外部入力アドレス信号および外部入力データ信号をそれぞれ切り換え選択可能に前記メモリブロックに入力するためのセレクタをさらに備えてもよい。
前記接続手段は、外部装置から送られる外部入力アドレス信号および外部入力データ信号をスキャンパスを介し、シフト動作によってシリアルに前記メモリブロックに入力するためのシフタブルレジスタをさらに備えてもよい。
前記各シフタブルレジスタは、前記スキャンパスにより直列に連結されていることが好ましい。
前記各メモリブロック内の不良ビットは、前記スキャンパスを介して検出されることが好ましい。
前記接続手段は、第1のメモリブロックのデータ入出力端子から出力される内部データ信号を自己のアドレス入力端子に帰還するか、または、この内部データ信号を隣接する第2のメモリブロックへ転送するかを選択可能とするマルチプレクサをさらに備えるようにしてもよい。
前記複数のアドレス入力端子およびデータ入出力端子のうち、前記論理変換に用いられていないアドレス入力端子およびデータ入出力端子を前記マルチプレクサの選択制御に用いることで、前記メモリブロックに搭載される論理の圧縮を行うことが好ましい。
前記各メモリブロックは、3辺で囲まれた三角形をしていてもよい。
前記各メモリブロックは、複数のアドレス入力端子およびデータ入出力端子が設けられた上面および下面をさらに備えており、前記接続手段は、第1のメモリブロックの上面のアドレス入力端子をその上面に隣接するメモリブロックの下面のデータ入出力端子に接続し、前記第1のメモリブロックの上面のデータ入出力端子をその上面に隣接する前記メモリブロックの下面のアドレス入力端子に接続してもよい。The present invention provides a semiconductor integrated circuit composed of flexible variable logic cells that eliminate the distinction between logic blocks and switch circuits.
In order to achieve the above object, a semiconductor integrated circuit according to the present invention includes a plurality of memory blocks formed for each region surrounded by a plurality of sides, a plurality of address input terminals and a data input provided for each side. At least one address input terminal on the first side is connected between the output terminal and a second memory block adjacent to the first side of the first memory block among the plurality of memory blocks. A connection that connects to data input / output terminals on opposite sides of the second memory block, and connects at least one data input / output terminal on the first side to an address input terminal on the opposite side of the second memory block And a logic circuit.
The memory block logically converts a relationship between an internal address signal input to the address input terminal and an internal data signal output from the data input / output terminal according to data written in advance by an external device. To do.
The memory block operates as a switch circuit.
The memory block operates as a combinational logic circuit.
A plurality of the memory blocks operate as a sequential logic circuit as a whole by forming a feedback path at a part thereof.
The connecting means may further comprise a selector for inputting an external input address signal and an external input data signal sent from an external device to the memory block so that they can be switched and selected.
The connection unit may further include a shiftable register for inputting an external input address signal and an external input data signal sent from an external device serially to the memory block by a shift operation via a scan path.
Each of the shiftable registers is preferably connected in series by the scan path.
It is preferable that a defective bit in each memory block is detected through the scan path.
The connection means feeds back the internal data signal output from the data input / output terminal of the first memory block to its own address input terminal or transfers the internal data signal to the adjacent second memory block. You may make it further provide the multiplexer which enables selection.
Of the plurality of address input terminals and data input / output terminals, an address input terminal and data input / output terminal that are not used for the logical conversion are used for selection control of the multiplexer, thereby enabling the logic of the memory block to be mounted. It is preferable to perform compression.
Each of the memory blocks may have a triangle surrounded by three sides.
Each of the memory blocks further includes an upper surface and a lower surface provided with a plurality of address input terminals and data input / output terminals, and the connection means is adjacent to the upper surface of the address input terminal of the first memory block. The data input / output terminal on the lower surface of the memory block to be connected may be connected, and the data input / output terminal on the upper surface of the first memory block may be connected to the address input terminal on the lower surface of the memory block adjacent to the upper surface.
第1図は可変論理セルの構成を示す図であり、
第2図(A)および(B)はデータセレクタの構成および動作を説明する回路図であり、
第3図(A)および(B)はアドレスセレクタの構成および動作を説明する回路図であり、
第4図はトライステートバッファの真理値を示す図であり、
第5図はマトリクス状に2次元配列された可変論理セルを示す図であり、
第6図は隣接する可変論理セル間の接続手段を示す図であり、
第7図はスイッチ回路を構成するためにメモリブロック内に格納すべき論理データの一例を示す図であり、
第8図は組み合わせ論理回路を構成するためにメモリブロック内に格納すべき論理データの一例を示す図であり、
第9図は第2の可変論理セルの構成を示す図であり、
第10図はシフタブルレジスタの構成を示す回路図であり、
第11図は可変論理LSIに所望の論理機能を構成するための手順を説明するフローチャートであり、
第12図は第3の可変論理セルの構成を示す図であり、
第13図はマルチプレクサの構成を示す回路図であり、
第14図(A)は、2つの論理段数を持つ回路の一例を示す図であり、第14図(B)は第14図(A)の回路を構成するためにメモリブロック内に格納すべき論理データの一例を示す図であり、
第15図は第4の可変論理セルの構成を示す図であり、
第16図(A)は4入力1出力の回路の一例を示す図であり、第16図(B)は第16図(A)の回路を構成するためにメモリブロック内に格納すべき論理データの一例を示す図であり、
第17図は第5の可変論理セルの構成を示す図であり、
第18図は2次元の初源メモリ論理空間が圧縮されるイメージを示す図であり、
第19図はメモリブロックの端子配列の別の例を示す図であり、
第20図(A)は三角形のメモリブロックを示す図であり、第20図(B)は三角形の可変論理セルが配列された2次元平面を示す図であり、
第21図(A)は上面および下面に端子が配置されたメモリブロックを示す図であり、第21図(B)は可変論理セルが3次元的に配置された様子を示す図であり、
第22図は3次元的に配置された可変論理セルの上下方向の断面を示す図であり、
第23図はSOCのテストを説明するフローチャートであり、
第24図はSOCの構成を示す図であり、
第25図(A)〜(C)はFPGAの構成を示す図である。FIG. 1 is a diagram showing the configuration of a variable logic cell,
FIGS. 2A and 2B are circuit diagrams illustrating the configuration and operation of the data selector.
FIGS. 3A and 3B are circuit diagrams illustrating the configuration and operation of the address selector.
FIG. 4 shows the truth value of the tristate buffer.
FIG. 5 is a diagram showing variable logic cells arranged in a two-dimensional matrix.
FIG. 6 is a diagram showing connection means between adjacent variable logic cells,
FIG. 7 is a diagram showing an example of logical data to be stored in a memory block in order to configure a switch circuit.
FIG. 8 is a diagram showing an example of logical data to be stored in a memory block in order to constitute a combinational logic circuit.
FIG. 9 is a diagram showing the configuration of the second variable logic cell,
FIG. 10 is a circuit diagram showing the configuration of the shiftable register,
FIG. 11 is a flowchart illustrating a procedure for configuring a desired logic function in the variable logic LSI.
FIG. 12 is a diagram showing the configuration of the third variable logic cell,
FIG. 13 is a circuit diagram showing the configuration of the multiplexer,
FIG. 14 (A) is a diagram showing an example of a circuit having two logic stages, and FIG. 14 (B) should be stored in a memory block to constitute the circuit of FIG. 14 (A). It is a figure which shows an example of logical data,
FIG. 15 is a diagram showing the configuration of the fourth variable logic cell,
FIG. 16 (A) is a diagram showing an example of a circuit with four inputs and one output, and FIG. 16 (B) is logical data to be stored in the memory block to constitute the circuit of FIG. 16 (A). It is a figure which shows an example of
FIG. 17 is a diagram showing the configuration of the fifth variable logic cell,
FIG. 18 is a diagram showing an image in which the two-dimensional initial source memory logical space is compressed;
FIG. 19 is a diagram showing another example of the terminal arrangement of the memory block,
FIG. 20 (A) is a diagram showing a triangular memory block, and FIG. 20 (B) is a diagram showing a two-dimensional plane in which triangular variable logic cells are arranged.
FIG. 21 (A) is a diagram showing a memory block in which terminals are arranged on the upper and lower surfaces, and FIG. 21 (B) is a diagram showing a state in which variable logic cells are arranged three-dimensionally,
FIG. 22 is a diagram showing a cross-section in the vertical direction of the variable logic cells arranged three-dimensionally,
FIG. 23 is a flowchart for explaining the SOC test.
FIG. 24 is a diagram showing the structure of the SOC.
FIGS. 25A to 25C are diagrams showing the configuration of the FPGA.
第1図において、可変論理セル10は、四辺12a〜12dで囲まれた領域に形成された方形のメモリブロック11と、メモリブロック11の四辺12a〜12dに沿って配置され、メモリブロック11に対するデータ信号の入出力を切り換えるためのデータセレクタ(DSEL)16a〜16dと、DSEL16a〜16dの外側に配置され、メモリブロック11に対するアドレス信号の入力を選択するためのアドレスセレクタ(ASEL)17a〜17dと、DSEL16a〜16dとASEL17a〜17dとの間に配線され、DSEL16a〜16dに外部入力データ信号ed0〜ed11を供給するための外部データバス13と、同じくDSEL16a〜16dとASEL17a〜17dとの間に配線され、ASEL17a〜17dに外部入力アドレス信号ea0〜ea11を供給するための外部アドレスバス14とからなる。外部入力データ信号ed0〜ed11および外部入力アドレス信号ea0〜ea11は、データ書き込み時やテストモード時に外部から入力される信号である。
メモリブロック11は、図示しないが、複数のメモリセルトランジスタがマトリクス状に配置されるとともに、複数のワード線と複数のビット線が格子状に配置されてなる公知のSRAMであり、アドレス信号のデコーダ回路やメモリセルトランジスタからビット線に読み出された電位を増幅するセンスアンプ回路などを備えている。なお、このデコーダ回路を、配線により構成されたワイヤードANDワイヤードORなどの論理回路を用いて構成し、回路規模を削減するようにしてもよい。
メモリブロック11は、12個のアドレス入力端子A0〜A11と、12個のデータ入出力端子D0〜D11とが設けられており、各辺にアドレス入力端子とデータ入出力端子とが混在し、A0,D0,A1,D1,A2,D2,・・・,A11,D11と、それぞれ交互に並ぶように配列されている。また、辺12aには端子A0〜A2および端子D0〜D2が、辺12bには端子A3〜A5および端子D3〜D5が、辺12cには端子A6〜A8および端子D6〜D8が、辺12dには端子A9〜A11および端子D9〜D11が各々配置されている。なお、アドレス入力端子およびデータ入出力端子の数を各々12個としたが、この数は任意であり、例えば各々8個や16個としてもよい。また、メモリブロック11はSRAMに限られず、DRAM等のメモリを用いてもよい。
DSEL16aは、外部データバス13から入力される外部入力データ信号ed0〜ed2をメモリブロック11に向けて出力するか、若しくはメモリブロック11から入力される内部データ信号id0〜id2をメモリブロック11から離反する方向に出力する。なお、その他のDSEL16b〜16dについても同様である。また、信号線15がDSEL16a〜16dを直列に結ぶように配線され、この信号線15を介して切り換え信号TSが各DSEL16a〜16dに入力されている。
ASEL17aは、外部アドレスバス14から入力される外部入力アドレス信号ea0〜ea2をメモリブロック11に向けて出力するか、若しくは他のメモリブロック11から送られる内部アドレス信号ia0〜ia2をメモリブロック11に向けて出力する。なお、その他のASEL17b〜17dについても同様である。また、信号線15はASEL17a〜17dをも直列に結ぶように配線され、信号線15を介して切り換え信号TSが各ASEL17a〜17dに入力されている。
第2図(A)および(B)は、DSEL16aの構成およびその機能について説明する図であり、データ入出力端子D0に連結される部分のみを示す。DSEL16aは、1つの端子D0に対してトライステートバッファ(TRBUF)18a,18bを備え、TRBUF18aの出力にフリップフロップ(FF)18cが接続されている。なお、このFF18cはデータを一時的に保持するものであるが、これは必須ではないため設けなくてもよい。
TRBUF18a,18bは、第4図に示す真理値をとる論理回路である。TRBUF18aには切り換え信号TSが第4図の“enable”信号として入力され、TRBUF18bには切り換え信号TSの反転信号が第4図の“enable”信号として入力される。“enable”信号が“1”であれば、“in”に入力されたデータは“out”にそのまま出力され、“enable”信号が“0”であれば“in”に入力されたデータに係わらず“out”は不定値(ハイインピーダンス)“z”となる。
第2図(A)は、切り換え信号TSが“0”の場合であり、TRBUF18aには“0”、TRBUF18bには“1”が“enable”信号として入力されるので、TRBUF18bの入出力のみが有効となる。このとき、外部データバス13からDSEL16aに入力された外部入力データ信号ed0がTRBUF18bを介してメモリブロック11のデータ入出力端子D0に入力される。
第2図(B)は、切り換え信号TSが“1”の場合であり、TRBUF18aには“1”、TRBUF18bには“0”が“enable”信号として入力されるので、TRBUF18aの入出力のみが有効となる。このとき、メモリブロック11から出力されDSEL16aに入力された内部データ信号id0がTRBUF18aを介してFF18cにラッチされるとともに、メモリブロック11から離反する方向に向けて(後述する隣接するメモリブロックに向けて)出力される。なお、DSEL16a内のその他のデータ入出力端子D1,D2に連結される部分についても同様であり、さらに、他のDSEL16b〜16dの構成についても同様である。
第3図(A)および(B)は、ASEL17aの構成およびその機能について説明する図であり、アドレス入力端子A0に連結される部分のみを示す。ASEL17aは、1つの端子A0に対してトライステートバッファ(TRBUF)19a,19bを備え、TRBUF19a,19bの出力にフリップフロップ(FF)19cが接続されている。なお、このFF19cはデータを一時的に保持するものであるが、これは必須ではないため設けなくてもよい。
このTRBUF19a,19bも第4図に示す真理値をとる論理回路である。TRBUF19aには切り換え信号TSが“enable”信号として入力され、TRBUF19bには切り換え信号TSの反転信号が“enable”信号として入力される。
第3図(A)は、切り換え信号TSが“0”の場合であり、TRBUF19aには“0”、TRBUF19bには“1”が“enable”信号として入力されるので、TRBUF19bの入出力のみが有効となる。このとき、外部アドレスバス14からASEL17aに入力された外部入力アドレス信号ea0がTRBUF19bを介してFF19cにラッチされるとともに、メモリブロック11のアドレス入力端子A0に入力される。
第3図(B)は、切り換え信号TSが“1”の場合であり、TRBUF19aには“1”、TRBUF19bには“0”が“enable”信号として入力されるので、TRBUF19aの入出力のみが有効となる。このとき、後述する隣接するメモリブロック11から入力された内部アドレス信号ia0がTRBUF19aを介してFF19cにラッチされるとともに、メモリブロック11のアドレス入力端子A0に入力される。なお、ASEL17a内のその他のアドレス入力端子A1,A2に連結される部分についても同様であり、さらに、他のASEL17b〜17dの構成についても同様である。
なお、切り換え信号TSの論理を上記とは逆にし、切り換え信号TSが“1”の場合に外部入力データ信号ea0〜ea11および外部入力アドレス信号ea0〜ea11を選択し、切り換え信号TSが“0”の場合に外部入力データ信号ea0〜ea11および内部アドレス信号ea0〜ea11を選択するようにDSEL16a〜16dおよびASEL17a〜17dを構成してもよい。
第5図は、以上のように構成された可変論理セル10を平面内に2次元マトリクス状に並べ、隣接する可変論理セル10間を相互に接続することにより構成した可変論理LSI(半導体集積回路)を示す。外部アドレスバス14は各メモリブロック11に共通に接続されており、一方、外部データバス13は各メモリブロック11に独立に接続されている。
第6図に隣接するメモリブロック11間の接続手段の詳細を示すように、接続手段は、あるメモリブロック11のデータ入出力端子Dn(n=0〜11)から出力された内部データ信号idn(n=0〜11)を、隣接するメモリブロック11のアドレス指定を行う内部アドレス信号iam(m=0〜11)としてアドレス入力端子Am(m=0〜11)に入力するように構成されている。
具体的には、あるメモリブロック11の辺12aのデータ入出力端子D0〜D2は、隣接するメモリブロック11の辺12cのアドレス入力端子A8〜A6に、DSEL16aおよびASEL17cを介してそれぞれ接続されている。切り換え信号TSが“1”の場合には、データ入出力端子D0〜D2からDSEL16aを介して出力された内部データ信号id0〜id2は、隣接するメモリブロック11の内部アドレス信号ia8〜ia6となって、ASEL17cを介してアドレス入力端子A8〜A6にそれぞれ入力される。
また、あるメモリブロック11の辺12cのデータ入出力端子D6〜D8は、隣接するメモリブロック11の辺12aのアドレス入力端子A2〜A0に、DSEL16cおよびASEL17aを介してそれぞれ接続されている。切り換え信号TSが“1”の場合には、データ入出力端子D6〜D8からDSEL16cを介して出力された内部データ信号id6〜id8は、隣接するメモリブロック11の内部アドレス信号ia2〜ia0となって、ASEL17aを介してアドレス入力端子A2〜A0にそれぞれ入力される。
縦方向に隣接するメモリブロック11間の接続手段に関しても同様であり、辺12bのデータ入出力端子D3〜D5は、隣接するメモリブロック11の辺12dのアドレス入力端子A11〜A9に、DSEL16bおよびASEL17dを介してそれぞれ接続され、内部データ信号id3〜id5は、それぞれ隣接するメモリブロック11のアドレス指定を行う内部アドレス信号ia11〜ia9となっている。また、辺12dのデータ入出力端子D9〜D11は、隣接するメモリブロック11の辺12bのアドレス入力端子A5〜A3に、DSEL16dおよびASEL17bを介してそれぞれ接続され、内部データ信号id9〜id11は、それぞれ隣接するメモリブロック11のアドレス指定を行う内部アドレス信号ia5〜ia3となっている。
このように、隣接する2つのメモリブロック11の対向する2辺12a,12cまたは12b,12dにおいて、一方のメモリブロック11のアドレス入力端子が他方のメモリブロック11のデータ入出力端子に相互に接続されている。
第7図は、メモリブロック11に論理データを書き込み、可変論理セル10をスイッチ回路(接続変換器)として機能させるために、アドレス入力端子A0〜A11とデータ入出力端子D0〜D11とに与える信号の論理の一例を示す。この書き込みは、外部データバス13、外部アドレスバス14、および信号線15に接続された図示しないパーソナルコンピュータ等の外部装置により制御される。このとき、前述したように切り換え信号TSが“0”とされて、外部入力アドレス信号ea0〜ea11および外部入力データ信号ed0〜ed11が、アドレス入力端子A0〜A11およびデータ入出力端子D0〜D11に入力される。例えば、同図に示すように、端子D3〜D5には、端子A0〜A2と同一論理の信号が与えられる。同図中の“X”は、論理が“0”と“1”のどちらであっても良いことを意味し、端子D0〜D2,D6〜D11に与えられる論理は任意である。
このような論理データがメモリブロック11に格納され、切り換え信号TSが“1”とされると、左方に隣接する可変論理セル10から左辺12aのアドレス入力端子A0〜A2に入力された信号は、同一論理のまま、下辺12bのデータ入出力端子D3〜D5から下方に隣接する可変論理セル10に向けて出力されることとなる。なお、アドレス入力端子とデータ入出力端子との対応を変えるように格納する論理データを変更することで、ある1つの辺に入力された信号を辺12a〜12dのいずれの辺からでも出力することができる。例えば、左辺12aに入力された信号を反射するように、同じく左辺12aから出力するといったことも可能となる。このように、可変論理セル10は、メモリブロック11に格納された論理データに基づいて信号の流れを切り換えることのできるスイッチ回路として機能する。
第8図は、メモリブロック11に論理データを書き込み、可変論理セル10を組み合わせ論理回路として機能させるために、アドレス入力端子A0〜A11とデータ入出力端子D0〜D11とに与える信号の論理の一例を示す。書き込み制御に関しては上記と同様である。例えば、同図に示すように、端子D6には端子A0,A1の論理の論理積(AND)が与えられ、端子D7には端子A1,A2の論理の論理和(OR)が与えられ、端子D8には端子A0,A2の論理の排他論理和(EOR)が与えられる。
このような論理データがメモリブロック11に格納され、切り換え信号TSが“1”とされると、左方に隣接する可変論理セル10から左辺12aのアドレス入力端子A0〜A2に入力された信号は、上記の論理演算が行われて、右辺12cのデータ入出力端子D6〜D8から右方に隣接する可変論理セル10に向けて出力されることとなる。なお、格納する論理データを変更することでNAND、NOR、ENORなどの組み合わせ論理演算も行うことができ、アドレス入力端子とデータ入出力端子との対応関係を変えることで、同時に信号の入出力の方向を変えることができることは言うまでもない。このように、2つ以上の異なる入力信号に応じた論理データをメモリブロック11に格納することによって、可変論理セル10は組み合わせ論理回路として機能する。
また、例えば、アドレス入力端子A0またはA1に入力されたいずれかの信号と同一論理の信号を、アドレス入力端子A2に入力される信号(選択信号)に応じて、データ入出力端子D6から出力させるように論理データを生成し、その論理データをメモリブロック11に格納することにより、可変論理セル10を、複数の入力信号から1つを選んで出力端子から出力する入力選択型のマルチプレクサとして機能させることも可能である。
さらに、例えば、アドレス入力端子A0に入力された信号と同一論理の信号を、アドレス入力端子A1に入力される信号(選択信号)に応じて、データ入出力端子D6またはD7のいずれかから出力させるように論理データを生成し、その論理データをメモリブロック11に格納することにより、可変論理セル10を、入力信号を複数の出力端子から1つを選んで出力する出力選択型のマルチプレクサとして機能させることも可能である。
また、その他、可変論理セル10に格納する論理データにより、1入力他出力の回路等も構成することが可能である。
このように、可変論理セル10は、メモリブロック11に格納する論理データによって、スイッチ回路、組み合わせ論理回路、マルチプレクサなどとして機能するように論理変換を行う。
第9図は、上記とは別の形態の可変論理セル20の構成を示す。可変論理セル20は、前述の可変論理セル10のDSEL16a〜16dおよびASEL17a〜17dの代わりに、データレジスタ(DREG)21a〜21dおよびアドレスレジスタ(AREG)22a〜22dを用いたものである。このDREG21a〜21dとAREG22a〜22dには、例えばJTAG(Joint Test Action Group)により提唱されているような、2つの回路ブロック間に設けられて2つの回路ブロック間の信号の並列転送を可能にするとともに、スキャンパス23を介してスキャンインされたデータをラッチして、シフト動作でデータをスキャンアウトさせることが可能な境界スキャン回路で構成される。
DREG21a〜21dは、メモリブロック11から読み出される内部データ信号id0〜id11を隣接するメモリブロック11に並列に出力する、AREG22a〜22dは、隣接するメモリブロック11から出力された内部データ信号id0〜id11を内部アドレス信号ia0〜ia11としてメモリブロック11に並列に入力する。このパラレル動作の他に、DREG21a〜21dは、スキャンパス23を介して外部からスキャンインされるシリアルな外部入力データ信号ed0〜ed11をシフトさせて順次スキャンアウトし、AREG22a〜22dは、同じくスキャンパス23を介して外部からスキャンインされるシリアルな外部入力アドレス信号ea0〜ea11をシフトさせて順次スキャンアウトするシフトレジスタの機能を有するように構成されている。スキャンパス23を介して外部装置から外部アドレス信号入力、外部データ信号入力が行われるので、第1図に示した外部データバス13および外部アドレスバス14を設ける必要がなく、可変論理セル20のサイズを可変論理セル10より小さくできることが期待される。
第10図は、DREG21a〜21dおよびAREG22a〜22dの具体例としてシフト動作と双方向入出力が可能なレジスタを示す。このシフタブルレジスタは、3つのフリップフロップFF0〜FF2を備え、各フリップフロップFF0〜FF2のデータ入力端子の前段には、マルチプレクサMUX0〜MUX2が設けられている。マルチプレクサMUX0〜MUX2は、制御信号MUX_SELに応じて、スキャンインデータSCAN_IN、または、データ端子I/O−0〜I/0−2若しくはI/O−3〜I/O−5のデータのうちいずれかを選択する。また、制御信号DIRECTIONによって信号の入出力の方向が切り換えられる。なお、シフト動作は各フリップフロップFF0〜FF2に入力されるクロック信号FFCLKによって制御される。スキャンインデータSCAN_INは、クロック信号FFCLKに応じてFF0→FF1→FF2の順にシフトされ、スキャンアウトデータSCAN_OUTとして出力される。
さらに、DREG21a〜21dのフリップフロップFF0〜FF2は、後述するカウンタ回路等の順序論理回路を構成する際に用いられる他、メモリブロック11としてDRAMが使用された場合に、このDRAMが行うリフレッシュ(電気的な記憶保持動作)期間にデータを保持して行うアドレス動作にも用いられる。
可変論理セル20は、前述の可変論理セル10と同様に平面内に2次元マトリクス状に並べられ、隣接する可変論理セル20間が相互に接続されることにより可変論理LSIが構成される。また、隣接する可変論理セル20間のデータ入出力端子D0〜D11とアドレス入力端子A0〜A11とは、第6図と同様に隣接する可変論理セル20間で対向するデータ入出力端子とアドレス入力端子とがデータレジスタおよびアドレスレジスタを介して接続される。さらに、可変論理セル20は、メモリブロック11に格納する論理データによってスイッチ回路、組み合わせ論理回路、またはマルチプレクサのいずれかとして機能して論理変換を行う。
また、可変論理セル20のスキャンアウトデータが、隣接する可変論理セル20のスキャンインデータとなるようにスキャンパス23が順に接続されている。これにより、メモリブロック11のテストモードにおいて、メモリブロック11から読み出された内部データ信号id0〜id11をDREG21a〜21dに取り込んでシフトし、スキャンアウトさせることでメモリブロック11内の不良ビットが容易に検出される。そして、この不良ビットを有するメモリブロック11が明らかになれば、その可変論理セル20を除いて正常な可変論理セル20のみを用いて論理回路を構成するようにすればよい。
以上のように、可変論理セル10または可変論理セル20で構成された可変論理LSIは、さらに、可変論理セルで構成される組み合わせ論理回路の出力から入力に、他の可変論理セルで構成される複数のスイッチ回路によって信号経路を生成して帰還をかけることによって、カウンタ回路等の順序論理回路が構成され、その結果、任意の論理回路を実現することができる。従って、スイッチ回路を他の論理回路と区別せず、任意の可変論理セルで構成できるため、所望の論理機能を有する論理回路を可変論理セルのマトリクス平面内のどの場所にでも自由に構成することができ、信号の経路や方向性も自由に定めることができる。
第11図は、可変論理セル20で構成された可変論理LSIにおいて、所望の論理回路を構成するための具体的な手順を示す。まず、従来と同様に所望の論理機能をC言語で記述した設計データを作成し、この設計データをHDLなどの言語で記述されたデータに変換する。ここで、C言語による機能設計を省略して直接HDLで記述して設計データを作成してもよい。次に、HDLで記述された設計データから論理合成を行って、ゲートレベルで表現したデータに変換する。そして、ゲートレベルの設計データを順序論理回路と組み合わせ論理回路に分離する。
続いて、順序論理回路に使用する可変論理セル20を決定する。組み合わせ論理回路については、所望の論理を構成する可変論理セル20を決定する。そして、決定された上記可変論理セル20間を接続するのに使用するスイッチ回路としての可変論理セル20を決定する。その後、各セル内のメモリブロック11に格納するための論理データを生成し、生成された論理データと、メモリブロック11の所定の番地に書き込むためのアドレス信号とを、スキャンパス23を介して各メモリブロック11に転送するのに適したビットストリームに変換する。そして、そのビットストリームをスキャンパス23から転送し、対応するメモリブロック11に格納する。これによって、所望の論理機能を有する論理回路が構築される。
ただし、可変論理セル10で構成された可変論理LSIの場合には、スキャンパス23は設けられていないので、上記のビットストリームを生成せずに、論理データを外部データバス13および外部アドレスバス14を介して各メモリブロック11に書き込むこととなる。
次に、第12図は、搭載される論理の圧縮を可能とする可変論理セル30を示す。この可変論理セル30には、AREG22a〜22dの外側に沿ってマルチプレクサ(MUX)31a〜31dが設けられている。メモリブロック11を挟むように横方向に配置されたMUX31aとMUX31cとは帰還信号線32a〜32fにより互いに出力と入力の間で帰還がかけられ、メモリブロック11を挟むように縦方向に配置されたMUX31bとMUX31dとは帰還信号線33a〜33fにより互いに出力と入力の間で帰還がかけられている。なお、この可変論理セル30は、第1図に示した可変論理セル10を用いて構成することもできる。この場合には、可変論理セル30のDREG21a〜21dはDSEL16a〜16dによって置き換えられ、AREG22a〜22dはASEL17a〜17dによって置き換えられる。
第13図は、メモリブロック11を横方向に挟むMUX31a,31cの構成を示す。MUX31a,31cは、それぞれ2つのAND回路と1つのOR回路とからなる回路部34a,34cと、2つのAND回路からなる回路部35a,35cとを有する。回路部34a,34cは、各アドレス入力端子毎に1つずつ設けられており、回路部34a,34cの出力部は、AREG22a,22cを介してアドレス入力端子A0〜A2,A6〜A8にそれぞれ接続されている。また、回路部35a,35cは、各データ入出力端子毎に1つずつ設けられており、データ入出力端子D0〜D2,D6〜D8は、DREG21a,21cを介して回路部35a,35cの入力部に接続されている。
ただし、辺12aのアドレス入力端A0〜A2のうち1つ(例えば端子A2)は、AREG22aを介してMUX31a内の制御信号線36aに接続されている。この制御信号線36aは、各回路部34a,35aの2つのAND回路の入力端子に接続されており、一方のAND回路には論理が反転されるようにして接続されている。また、辺12aのデータ入出力端子D6〜D8のうち1つ(例えば端子D6)は、DREG21cを介してMUX31c内の制御信号線36cに接続されている。この制御信号線36cは、各回路部34c,35cの2つのAND回路の入力端子に接続されており、一方のAND回路には論理が反転されるようにして接続されている。
回路部35cは、制御信号線36cの論理が“1”のときにはデータ入出力端子D8から読み出された内部データ信号id8をそのまま向きを変えずに隣接する他の可変論理セル30に転送し、制御信号線36cの論理が“0”のときには内部データ信号id8を帰還信号線32aを介してMUX31aに転送する。この帰還信号線32aを介して転送された内部データ信号id8は、回路部34aに入力される。このとき制御信号36aの論理が“0”であれば、内部データ信号id8はそのメモリブロック11の自己のアドレス入力端子A0に帰還される。一方、制御信号線36aの論理が“1”であれば、隣接する他の可変論理セル30から転送された内部アドレス信号ia0がアドレス入力端子A0に転送される。
なお、回路部35a,34cに関しても同様であり、制御信号線36a,36cの論理が“0”のときには、データ入出力端子D0から読み出された内部データ信号id0は帰還信号線32bを介して自己のアドレス入力端子A8に帰還され、制御信号線36a,36cの論理が“1”のときには、隣接する可変論理セル30との間で内部データ信号id0または内部アドレス信号ia8が転送される。図示しないが、その他の端子に接続される回路部についても同様である。また、図示しないが、メモリブロック11を縦方向に挟むMUX31b,31dの構成はMUX31a,31cと同様である。
可変論理セル30は、前述の可変論理セル10と同様に平面内に2次元マトリクス状に並べられ、隣接する可変論理セル30間が相互に接続されることにより論理の圧縮を可能とする可変論理LSIが構成される。第14図(A)は、論理段数α,βで構成される2段の論理回路の一例を示す。論理段数αにおいて、入力された内部アドレス信号ia0,ia1がそれぞれNAND回路37aおよびNOR回路37bによって論理演算され、フリップフロップ37cにラッチされる。そして、論理段数βにおいて、フリップフロップ37cにラッチされたデータのうちNAND回路37aの出力データはインバータ38aによって反転されてフリップフロップ38bにラッチされ、NOR回路37bの出力データはそのままの論理でフリップフロップ38bにラッチされ、それぞれ内部データ信号id8,id7として出力される。
このような2つの論理段数を有する回路の論理を表現するには、可変論理セル10または20を用いた場合には2つの可変論理セルを組み合わせる必要があるが、上記の様に構成された可変論理セル30を用いた場合には1つの可変論理セルで表現することができる。第14図(B)は、第14図(A)の回路の論理を表現するために可変論理セル30内のメモリブロック11に書き込まれるべき論理データを示す。制御信号線36a,36cを同一の論理とするために、データ入出力端子D6にはアドレス入力端子A2と同一論理の信号が与えられる。すなわち、端子A2の論理が“0”の場合には論理段数αの演算がなされるとともに、データ入出力端子からアドレス入力端子に帰還がかかり、そして端子A2の論理が“1”となると論理段数βの演算がなされて出力が行われる。このように、端子A2,D6は、論理演算には用いられず、MUX31a,31cの切り換え制御に用いられている。
メモリブロック11に所望の論理を搭載する場合、全ての端子が論理変換に使用されれば論理の搭載効率は良いが、全ての端子が使用されるとは限らず、いくつかの端子は未使用で余分となることがある。この未使用の端子を上記の端子A2,D6のようにして用いれば、複数の論理段数を1つの可変論理セル30で表現することができ、1つの可変論理セルへの論理搭載効率を上げることができる。なお、横方向の論理圧縮について説明を行ったが、MUX31b,31dを用いることにより縦方向の論理圧縮も同様に行うことができる。
次に、第15図は、アドレス入力端子とデータ入出力端子とが各々2段のフリップフロップに接続された可変論理セル40を示す。この可変論理セル40は、可変論理セル20のAREG22a〜22dの外側に沿って、内部データ信号id0〜id8をラッチするためのフリップフロップ(DFF)41a〜41dが配置され、さらにその外側に沿って内部アドレス信号ia0〜ia8をラッチするためのフリップフロップ(AFF)42a〜42dが配置されたものである。DREG21a〜21dおよびAREG22a〜22dは、シフト動作を行わない場合は、信号を並列転送させる通常のフリップフロップとなるので、DREG21a〜21dとDFF41a〜41dは、セル間で内部データ信号id0〜id8を並列に転送する2段のフリップフロップとして機能し、AREG22a〜22dとAFF42a〜42dは、セル間で内部アドレス信号ad0〜ad8を並列に転送する2段のフリップフロップとして機能する。なお、各フリップフロップには、クロック信号が入力されているが図示を省略している。また、この可変論理セル40は、第1図に示した可変論理セル10を用いて構成することもできる。この場合、DREG21a〜21dはDSEL16a〜16dによって置き換えられ、AREG22a〜22dはASEL17a〜17dによって置き換えられる。
このように構成された可変論理セル40は、前述の可変論理セル10と同様に平面内に2次元マトリクス状に並べられ、隣接する可変論理セル40間が相互に接続されることにより、使用する端子数を削減することが可能な可変論理LSIが構成される。第16図(A)は、2入力in1,in2のNAND回路43aと、2入力in3,in4のAND回路43bと、NAND回路43aおよびAND回路43bの出力データout1,out2をラッチするフリップフロップ43cとからなる4入力2出力の回路を示す。可変論理セル10または20を用いてこの回路を構成しようとすると、各辺12a〜12dにはアドレス入力端子が各々3つずつしか設けられていないため、4入力を実現するためには少なくとも2つの辺のアドレス入力端子を同時に使用するか、または2つの可変論理セル10または20を用いる必要がある。
上記のように構成された可変論理セル40を用い、第16図(B)に示す論理データをメモリブロック11内に書き込むことにより、1つの可変論理セル40で第16図(A)の回路を実現することができる。第16図(B)の論理データによると、可変論理セル40は、端子A2に与えられた内部アドレス信号ia0の論理が“0”の場合には、端子A0,A1に与えられた内部アドレス信号ia0,ia1(上記in1,in2)のNAND論理演算を行い、演算結果を端子D8から内部データ信号id8(上記out1)として出力する。端子A2に与えられた内部アドレス信号ia0の論理が“1”の場合には、端子A0,A1に与えられた内部アドレス信号ia0,ia1(上記in3,in4)のNOR論理演算を行い、演算結果を端子D8から内部データ信号id8(上記out2)として出力する。
従って、内部アドレス信号ia2が“0”と“1”のそれぞれの場合において、内部アドレス信号ia0〜ia2をAFF42aおよびAREG22aに順次入力してラッチさせるとともに、メモリブロック11の一辺12aに配列された端子A0〜A2に入力し、辺12cの端子D8から演算結果を示す内部データ信号id8を順次出力してDREG21cおよびDFF41cにラッチさせるとともに、順にデータout1,out2がシリアルに出力される。このように、可変論理セル40を用いると、3入力1出力の端子数で第16図(A)の回路を実現することができる。
第17図に示した可変論理セル50は、可変論理セル30と可変論理セル40の構成を兼ね備えており、アドレス入力端子とデータ入出力端子とがそれぞれ2段のフリップフロップに接続され、自己のアドレス入力端子とデータ入出力端子との間で帰還がかけられる。この可変論理セル50を用いると、論理の搭載効率をさらに高めることができる。
第18図は、データ入出力端子とアドレス入力端子との間に帰還経路を有する可変論理セル30または50で作られる2次元の初源メモリ論理空間が圧縮されるイメージを示す。初源メモリ空間は、上記の自己のアドレス入力端子とデータ入出力端子との間での帰還により、横方向および縦方向へと折り畳まれ、圧縮されたメモリ論理空間となる。
なお、上記実施形態では、メモリブロック11の各辺12a〜12dにアドレス入力端子とデータ入出力端子とが交互に並ぶように配置したが、必ずしも1端子毎に交互に並べる必要はなく、各辺にアドレス入力端子とデータ入出力端子とが共に設けられていればよい。例えば、第19図(A)に示すように、アドレス入力端子とデータ入出力端子を各々2端子ずつセットにして各辺12a〜12dに配置してもよいし、第19図(B)に示すように、各辺12a〜12dにおいてアドレス入力端子とデータ入出力端子を2つにグループ分けして配置するようにしてもよい。このとき、各端子は隣接するメモリブロック11間でアドレス入力端子とデータ入出力端子とが対向するように配置されればよい。
また、上記実施形態では、メモリブロック11を四辺12a〜12dで囲まれた方形としたが、これに代えて、メモリブロック11を第20図(A)に示すような3辺で囲まれた三角形としてもよい。このメモリブロック11を備えた可変論理セル10,20,30,40,50のいずれかを三角形にして、第20図(B)のように2次元平面状にセルを敷き詰めると、可変論理LSIが構成される。この三角形のメモリブロック11は、メモリ容量が小さい場合、すなわち端子数が少ない場合に各辺へ端子を効率よく配置することができる。また、その三角形の形状により斜め方向への信号伝達を短い経路で効率よく行うことができる。さらには、メモリブロック11を五角形以上の多角形とすることができることは言うまでもない。このように、メモリ容量を考慮してメモリブロック11の形状およびその配置を決定することにより、論理の搭載効率をさらに高めることができる。
また、上記実施形態では、可変論理セルを2次元平面内に配置するように相互に端子間を接続したが、これに代えて、可変論理セルを3次元的に配置するようにしてもよい。例えば、第21図(A)に示すように、アドレス入力端子およびデータ入出力端子をメモリブロック11の四辺12a〜12dの他、メモリブロック11が備える上面12eおよび下面12fにも配置する。そして、第21図(B)に示すように、このメモリブロック11を備えた可変論理セル10,20,30,40,50のいずれかを2次元平面状に敷き詰め、メモリブロック11間の辺12a〜12dを相互に配線し、この2次元平面状の可変論理セルを複数個積層するようにして上下に隣接するメモリブロック11間の上面12eと下面12fの間を配線する。
第22図の断面図に示すように、対向する端子A4,D5間、および端子A5,D4間の接続が行われる。図示しないが、これらの端子間に前述のデータセレクタおよびアドレスセレクタ、または、前述のデータレジスタおよびアドレスレジスタが介装され、さらには前述のマルチプレクサやフリップフロップが介装される。これにより、上下方向(積層方向)への論理の圧縮も可能となる。
さらに、上記実施形態では、1つの可変論理セル30内にデータ入出力端子から自己のアドレス入力端子に帰還をかけるためのMUX31a〜31dを設けたが、このMUX31a〜31dは、複数の可変論理セル10(または20)を用いて構成されるようにしてもよい。可変論理セル10(または20)では、各端子に1つのフリップフロップが接続されているため、少なくとも5つの可変論理セル10(または20)を用いることで、第17図に示した、各端子に2段のフリップフロップが接続され、かつデータ入出力端子から自己のアドレス入力端子に帰還経路を有する可変論理セル50を構成することができる。
以上の可変論理LSIは、LSIチップの自己テストに利用可能である。つまり、最近のSOC(System on Chip)では、内蔵メモリがチップ全体の50〜80%を占めているため、LSIチップに内蔵されるメモリを利用することで効率よく自己テストを行うことが期待できる。
第23図のフローチャートを用いて第24図に示すSOC60のテスト方法を説明する。SOC60には、内蔵メモリ61を構成するSRAM61aとして上記の可変論理セル10,20,30,40,50のいずれかが用いられている。
まず、一部のSRAM61aを用いて他のSRAM61aをテストするためのテストパターンを発生するALPG(Algorithmic Pattern Generator)をHDL記述によって構成する。これにより、他のSRAM61aをテストし、テスト結果を判定する。テスト結果がフェイルであれば、フェイル信号を発生してテストを終了する。一方、テスト結果がパスと判定された場合には、このテストされたSRAM61aを含めたSRAM61aにより、ロジック回路部分をテストするためのテスト回路をHDL記述によって構成するとともに、そのテストパターンを格納するメモリを上記テストをパスしたSRAM61aで構成する。このメモリにテストパターンを記述して、ユーザロジック回路62やCPU63をテストする。このテストにフェイルすると、フェイル信号を発生してテストを終了する。
このテストをパスした場合には、一部のSRAM61aにDRAM64のテストパターンを生成するALPGを構成し、かつ他のSRAM61aを用いてそのテスト結果を格納するフェイルメモリを構成する。そして、CPU63にDRAM64の救済アルゴリズムをロードして、ALPGでDRAM64をテストするとともに、救済ビット線64aによる不良ビットのビット救済を実施する。DRAMがこのテストをフェイルし、かつ救済不可能であれば、フェイル信号を発生してテストを終了する。一方、テストをパスした場合には、テスト回路を構成したSRAM61aを通常のメモリとし、SOC60の記憶装置として動作させる。
以上はテストにおける可変論理セルの活用であるが、可変論理セル10,20,30,40,50のいずれかで構成された内蔵メモリ61を、テスト時以外の通常動作時もプログラマブルデバイスとして使用し、SOC60をプログラマブルデバイス内蔵のLSIチップとすることもできる。また、複数のCPUをこの可変論理セルで連結して構成したSOCも考えられ、これにより並列演算等の処理を高速化することができる。さらに、本発明をSIP(System In Package)などへ応用することもできる。
また、この可変論理LSIは、コンピュータの記憶装置や演算装置に利用できる。現在の一般のコンピュータは、入力装置(キーボード)、出力装置(CRTディスプレイ)、記憶装置(主メモリやキャッシュメモリやレジスタ)、演算装置(ALU)などで構成されている。このコンピュータでは、主メモリとALUとの間に高速のキャッシュメモリとレジスタを配置して、その間のデータ転送を高速に行わせ、演算処理の高速化を図っている。これは、ALUの演算処理以外に各記憶装置間のアドレス演算が必要であることを意味し、高速処理に対する弊害となっている。そこで、この可変論理LSIをコンピュータに適用すると、上記の記憶装置と演算装置を一体に構成することができ、各記憶装置間のアドレス演算の必要がなくなるので、演算処理の高速化を期待することができる。
本発明の半導体集積回路は、第1のメモリブロックの第1辺の少なくとも1つのアドレス入力端子を、隣接する第2のメモリブロックの対向する辺のデータ入出力端子に接続し、第1のメモリブロックの第1辺の少なくとも1つのデータ入出力端子を、第2のメモリブロックの対向する辺のアドレス入力端子に接続するようにしたので、1つのメモリブロックは、外部装置により書き込まれる論理データにより、スイッチ回路や組み合わせ論理回路として動作し、また複数のメモリブロックは順序論理回路として動作することもできる。これにより、本発明の半導体集積回路は、論理ブロックとスイッチ回路の区別をなくしたフレキシブルな可変論理セルにより構成され、所望の論理回路を効率よく構成することができる。
また、メモリブロックの自己のデータ入出力端子からアドレス入力端子へ内部データ信号の帰還を行うようにしたことにより、搭載される論理の圧縮を行うことができ、各メモリブロックの容量を節約することが可能となる。
さらに、本発明の半導体集積回路は、大部分がメモリブロックによって構成されるため、従来のメモリデバイスと同様な2層配線程度のプロセスで製造することが可能となり、少なくとも5層配線を要したFPGAに比して製造コストが安価であるという利点がある。In FIG. 1, a
Although not shown, the
The
The
The
FIGS. 2A and 2B are diagrams for explaining the configuration and function of the
The
FIG. 2 (A) shows a case where the switching signal TS is “0”. Since “0” is input to the
FIG. 2B shows the case where the switching signal TS is “1”. Since “1” is input to the
FIGS. 3A and 3B are diagrams for explaining the configuration and function of the
These TRBUFs 19a and 19b are also logic circuits taking the truth values shown in FIG. The switching signal TS is input as an “enable” signal to the
FIG. 3 (A) shows a case where the switching signal TS is “0”. Since “0” is input to the
FIG. 3B shows the case where the switching signal TS is “1”. Since “1” is input to the
Note that the logic of the switching signal TS is reversed, and when the switching signal TS is “1”, the external input data signals ea0 to ea11 and the external input address signals ea0 to ea11 are selected, and the switching signal TS is “0”. In this case, the
FIG. 5 shows a variable logic LSI (semiconductor integrated circuit) configured by arranging the
As shown in FIG. 6 in detail of the connection means between the adjacent memory blocks 11, the connection means uses the internal data signal idn (n = 0 to 11) output from the data input / output terminal Dn (n = 0 to 11) of a
Specifically, the data input / output terminals D0 to D2 of the
The data input / output terminals D6 to D8 on the
The same applies to the connection means between the memory blocks 11 adjacent in the vertical direction, and the data input / output terminals D3 to D5 of the
As described above, the address input terminals of one
FIG. 7 shows signals applied to the address input terminals A0 to A11 and the data input / output terminals D0 to D11 in order to write logic data in the
When such logic data is stored in the
FIG. 8 shows an example of the logic of signals applied to the address input terminals A0 to A11 and the data input / output terminals D0 to D11 in order to write logic data to the
When such logic data is stored in the
In addition, for example, a signal having the same logic as any signal input to the address input terminal A0 or A1 is output from the data input / output terminal D6 according to a signal (selection signal) input to the address input terminal A2. In this way, by generating logical data and storing the logical data in the
Further, for example, a signal having the same logic as the signal input to the address input terminal A0 is output from either the data input / output terminal D6 or D7 according to the signal (selection signal) input to the address input terminal A1. Thus, by generating logical data and storing the logical data in the
In addition, a circuit having one input and other outputs can be configured by logic data stored in the
As described above, the
FIG. 9 shows a configuration of a
The
FIG. 10 shows a register capable of shift operation and bidirectional input / output as a specific example of
Further, the flip-flops FF0 to FF2 of the
The
Further, the
As described above, the variable logic LSI configured with the
FIG. 11 shows a specific procedure for constructing a desired logic circuit in the variable logic LSI composed of the
Subsequently, the
However, in the case of a variable logic LSI composed of the
Next, FIG. 12 shows a
FIG. 13 shows the configuration of the
However, one of the address input terminals A0 to A2 of the
When the logic of the
The same applies to the
The
In order to express the logic of such a circuit having two logic stages, it is necessary to combine two variable logic cells when the
When a desired logic is mounted on the
Next, FIG. 15 shows a
The
Using the
Accordingly, when the internal address signal ia2 is “0” and “1”, the internal address signals ia0 to ia2 are sequentially input to the
The
FIG. 18 shows an image in which a two-dimensional initial memory logic space formed by the
In the above-described embodiment, the address input terminals and the data input / output terminals are alternately arranged on each
In the above embodiment, the
In the above embodiment, the terminals are connected to each other so that the variable logic cells are arranged in a two-dimensional plane. Instead, the variable logic cells may be arranged three-dimensionally. For example, as shown in FIG. 21A, the address input terminal and the data input / output terminal are arranged on the
As shown in the sectional view of FIG. 22, the terminals A4 and D5 facing each other and the terminals A5 and D4 are connected. Although not shown, the aforementioned data selector and address selector, or the aforementioned data register and address register are interposed between these terminals, and further, the aforementioned multiplexer and flip-flop are interposed. Thereby, the logic can be compressed in the vertical direction (stacking direction).
Further, in the above embodiment, the
The above variable logic LSI can be used for self-test of LSI chips. That is, in the recent SOC (System on Chip), the built-in memory occupies 50 to 80% of the entire chip, and therefore it is expected that the self-test can be efficiently performed by using the memory built in the LSI chip. .
The SOC 60 test method shown in FIG. 24 will be described with reference to the flowchart of FIG. In the SOC 60, any one of the
First, an ALPG (Algorithmic Pattern Generator) that generates a test pattern for testing another
If this test is passed, an ALPG that generates a test pattern of the
The above is the use of the variable logic cell in the test. The built-in
The variable logic LSI can be used for a computer storage device or arithmetic device. A current general computer includes an input device (keyboard), an output device (CRT display), a storage device (main memory, cache memory, and register), an arithmetic unit (ALU), and the like. In this computer, a high-speed cache memory and a register are arranged between the main memory and the ALU, and data transfer between them is performed at high speed, thereby speeding up arithmetic processing. This means that an address operation between the storage devices is necessary in addition to the ALU operation processing, which is an adverse effect on high-speed processing. Therefore, when this variable logic LSI is applied to a computer, the above-mentioned storage device and arithmetic device can be configured integrally, and there is no need for address arithmetic between the respective storage devices. Can do.
According to the semiconductor integrated circuit of the present invention, at least one address input terminal on the first side of the first memory block is connected to the data input / output terminal on the opposite side of the adjacent second memory block. Since at least one data input / output terminal on the first side of the block is connected to the address input terminal on the opposite side of the second memory block, one memory block can be controlled by logical data written by an external device. The memory block can operate as a switch circuit or a combinational logic circuit, and the plurality of memory blocks can operate as a sequential logic circuit. As a result, the semiconductor integrated circuit of the present invention is configured by a flexible variable logic cell in which the distinction between the logic block and the switch circuit is eliminated, and a desired logic circuit can be efficiently configured.
In addition, since the internal data signal is fed back from the data input / output terminal of the memory block to the address input terminal, the mounted logic can be compressed and the capacity of each memory block can be saved. Is possible.
Further, since the semiconductor integrated circuit of the present invention is mostly constituted by memory blocks, it can be manufactured by a process of about two layers wiring similar to a conventional memory device, and an FPGA requiring at least five layers wiring. Compared to the above, there is an advantage that the manufacturing cost is low.
本発明の半導体装置は、FPGAのようなフィードで論理をプログラム可能なロジックICとして利用できる他に、SOCなどの内蔵メモリやコンピュータの記憶装置や演算装置にも利用できる。 The semiconductor device of the present invention can be used as a built-in memory such as an SOC, a storage device of a computer, and an arithmetic device, in addition to being usable as a logic IC that can program logic by a feed such as an FPGA.
Claims (13)
前記辺毎に設けられた複数のアドレス入力端子およびデータ入出力端子と、
前記複数のメモリブロックのうち第1のメモリブロックの第1の辺に隣接する第2のメモリブロックとの間で、前記第1の辺の少なくとも1つのアドレス入力端子を、前記第2のメモリブロックの対向する辺のデータ入出力端子に接続し、前記第1の辺の少なくとも1つのデータ入出力端子を、前記第2のメモリブロックの対向する辺のアドレス入力端子に接続する接続手段と、から論理回路を構成することを特徴とする半導体集積回路。A plurality of memory blocks formed for each region surrounded by a plurality of sides;
A plurality of address input terminals and data input / output terminals provided for each side;
Among the plurality of memory blocks, at least one address input terminal on the first side is connected to the second memory block adjacent to the first side of the first memory block. Connecting means for connecting to at least one data input / output terminal on the opposite side, and connecting at least one data input / output terminal on the first side to an address input terminal on the opposite side of the second memory block; A semiconductor integrated circuit comprising a logic circuit.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2003/009030 WO2005008893A1 (en) | 2003-07-16 | 2003-07-16 | Semiconductor integrated circuit |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2005008893A1 true JPWO2005008893A1 (en) | 2006-09-07 |
JP4334541B2 JP4334541B2 (en) | 2009-09-30 |
Family
ID=34074100
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005504364A Expired - Fee Related JP4334541B2 (en) | 2003-07-16 | 2003-07-16 | Semiconductor integrated circuit |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP4334541B2 (en) |
AU (1) | AU2003248073A1 (en) |
WO (1) | WO2005008893A1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100883352B1 (en) | 2006-11-21 | 2009-02-11 | 한국전자통신연구원 | Method for expressing emotion and intention in remote interaction and Real emoticon system therefor |
US9379713B2 (en) * | 2014-01-17 | 2016-06-28 | Semiconductor Energy Laboratory Co., Ltd. | Data processing device and driving method thereof |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06276086A (en) * | 1993-03-18 | 1994-09-30 | Fuji Xerox Co Ltd | Field programmable gate array |
US5894565A (en) * | 1996-05-20 | 1999-04-13 | Atmel Corporation | Field programmable gate array with distributed RAM and increased cell utilization |
JP3471628B2 (en) * | 1998-05-12 | 2003-12-02 | 日本電信電話株式会社 | Rewriteable logic circuit and latch circuit |
JP3471623B2 (en) * | 1998-07-31 | 2003-12-02 | 日本電信電話株式会社 | Rewriteable logic circuit |
WO2000052753A1 (en) * | 1999-03-04 | 2000-09-08 | Hitachi, Ltd. | Semiconductor integrated circuit and method for designing logic integrated circuit comprising the same |
JP3517839B2 (en) * | 2000-11-29 | 2004-04-12 | 日本電信電話株式会社 | Programmable cell array circuit |
JP3665962B2 (en) * | 2000-12-20 | 2005-06-29 | 日本電信電話株式会社 | Programmable logic cell array circuit and initialization method thereof |
JP2003149300A (en) * | 2001-11-16 | 2003-05-21 | Hitachi Ltd | Test method and semiconductor device |
JP2003224468A (en) * | 2002-01-31 | 2003-08-08 | Hitachi Ltd | Semiconductor integrated circuit, its manufacturing method, and testing method |
-
2003
- 2003-07-16 AU AU2003248073A patent/AU2003248073A1/en not_active Abandoned
- 2003-07-16 WO PCT/JP2003/009030 patent/WO2005008893A1/en active Application Filing
- 2003-07-16 JP JP2005504364A patent/JP4334541B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP4334541B2 (en) | 2009-09-30 |
WO2005008893A8 (en) | 2007-06-21 |
AU2003248073A8 (en) | 2005-02-04 |
WO2005008893A1 (en) | 2005-01-27 |
AU2003248073A1 (en) | 2005-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10281524B2 (en) | Test partition external input/output interface control for test partitions in a semiconductor | |
US8677306B1 (en) | Microcontroller controlled or direct mode controlled network-fabric on a structured ASIC | |
US6201406B1 (en) | FPGA configurable by two types of bitstreams | |
JP6250548B2 (en) | Reconfigurable semiconductor device logic configuration method | |
JP4169164B2 (en) | Integrated circuit and programmable logic circuit interconnection method | |
KR950005022B1 (en) | Programmable logic circuit | |
US7908453B2 (en) | Semiconductor device having a dynamically reconfigurable circuit configuration | |
US8780648B2 (en) | Latch based memory device | |
JP6564186B2 (en) | Reconfigurable semiconductor device | |
JPH07175719A (en) | Memory capable of programming word length | |
Doumar et al. | Defect and fault tolerance FPGAs by shifting the configuration data | |
TWI545898B (en) | A semiconductor device that can be reconstructed | |
TWI597737B (en) | Reconfigurable semiconductor device | |
US9431075B2 (en) | Memory macro configuration and method | |
JP5890733B2 (en) | Reconfigurable semiconductor device placement and routing method, program thereof, and placement and routing device | |
JP4334541B2 (en) | Semiconductor integrated circuit | |
US9621159B2 (en) | Reconfigurable semiconductor integrated circuit and electronic device | |
JP3237579B2 (en) | Memory test circuit | |
JP2859234B2 (en) | Semiconductor integrated circuit device | |
JP3821621B2 (en) | Semiconductor integrated circuit | |
JP2004512630A (en) | Built-in self-test of multi-port CsRAM at-speed | |
JPH03204959A (en) | Semiconductor integrated circuit device | |
JP2004129188A (en) | Integrated circuit module and integrated circuit device | |
JP2004118915A (en) | Semiconductor memory device | |
JPH0945781A (en) | Method and device for designing standard cell type semiconductor chip, and semiconductor chip design device and standard cell type semiconductor chip using these |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060705 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090318 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090512 |
|
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: 20090610 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090623 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120703 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |