JPWO2005008893A1 - Semiconductor integrated circuit - Google Patents

Semiconductor integrated circuit Download PDF

Info

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
Application number
JP2005504364A
Other languages
Japanese (ja)
Other versions
JP4334541B2 (en
Inventor
佐藤 正幸
正幸 佐藤
Original Assignee
イノテック株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by イノテック株式会社 filed Critical イノテック株式会社
Publication of JPWO2005008893A1 publication Critical patent/JPWO2005008893A1/en
Application granted granted Critical
Publication of JP4334541B2 publication Critical patent/JP4334541B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/1776Structural details of configuration resources for memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1075Input/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 FPGA 100 includes a plurality of variable logic blocks CLB101 capable of configuring arbitrary logic, and a switch circuit 102 that switches the connection state of wiring groups connecting the logic blocks CLB101 in a programmable manner. It is configured. As shown in FIG. 25 (B), the variable logic block CLB101 includes an LUT (Look Up Table) 101a that represents a combinational logic circuit, and a flip-flop (FF) that temporarily stores and holds logic information. 101b. A small static random access memory (SRAM) is generally used for the LUT 101a.
As shown in FIG. 25C, the switch circuit 102 is formed by connecting an SRAM 102b in which 1-bit information is stored to the gate electrode of the MOS switch 102a. On / off of the MOS switch 102a is controlled by information ("0" or "1") stored in the SRAM 102b. The FPGA 100 configured in this way is called “SRAM-based FPGA”. The FPGA 100 is a logic IC that can programmatically configure logic using the CLB 101 and the switch circuit 102 as components.
The user of the FPGA 100 first describes a desired logical function to be realized by HDL (Hardware Description Language), and this description is written by a program called a logical value synthesis tool, and the logical value of the LUT 101a and the on / off information of the switch circuit 102 Is converted into logic gate level design data. Then, the logical function is configured on the FPGA 100 by writing the design data in the FPGA 100 in the field.
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 FPGA 100 is configured by memory blocks, and at least a switch circuit for switching the connection state of the wiring groups is required to connect the memory blocks arbitrarily. Therefore, as the circuit becomes larger, the storage capacity and the area occupied by the storage circuit included in the switch circuit for storing the on / off information increase. Further, since the area for storing the combinational logic and the area for storing the connection state of the combinational logic are configured separately, the logical data cannot be stored efficiently.

本発明は、論理ブロックとスイッチ回路との区別をなくしたフレキシブルな可変論理セルにより構成された半導体集積回路を提供するものである。
上記目的を達成するために、本発明の半導体集積回路は、複数の辺で囲まれた領域毎に形成された複数のメモリブロックと、前記辺毎に設けられた複数のアドレス入力端子およびデータ入出力端子と、前記複数のメモリブロックのうち第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 variable logic cell 10 is arranged along a rectangular memory block 11 formed in a region surrounded by four sides 12a to 12d, and four sides 12a to 12d of the memory block 11, and data for the memory block 11 is shown. Data selectors (DSEL) 16a to 16d for switching signal input / output, address selectors (ASEL) 17a to 17d for selecting an input of an address signal to the memory block 11 disposed outside the DSELs 16a to 16d, Wired between DSELs 16a-16d and ASELs 17a-17d, external data bus 13 for supplying external input data signals ed0-ed11 to DSELs 16a-16d, and similarly wired between DSELs 16a-16d and ASELs 17a-17d. , ASEL17a-17 Consisting external address bus 14. for supplying an external input address signal ea0~ea11 to. The external input data signals ed0 to ed11 and the external input address signals ea0 to ea11 are externally input signals at the time of data writing or test mode.
Although not shown, the memory block 11 is a well-known SRAM in which a plurality of memory cell transistors are arranged in a matrix and a plurality of word lines and a plurality of bit lines are arranged in a grid, and an address signal decoder. A sense amplifier circuit that amplifies the potential read from the circuit and the memory cell transistor to the bit line is provided. Note that this decoder circuit may be configured by using a logic circuit such as a wired AND wired OR configured by wiring to reduce the circuit scale.
The memory block 11 is provided with twelve address input terminals A0 to A11 and twelve data input / output terminals D0 to D11. An address input terminal and a data input / output terminal are mixed on each side. , D0, A1, D1, A2, D2,..., A11, D11 are arranged alternately. Also, the side 12a has terminals A0 to A2 and terminals D0 to D2, the side 12b has terminals A3 to A5 and terminals D3 to D5, the side 12c has terminals A6 to A8 and terminals D6 to D8, and the side 12d Are provided with terminals A9 to A11 and terminals D9 to D11, respectively. The number of address input terminals and data input / output terminals is twelve, but this number is arbitrary, and may be eight or sixteen, for example. Further, the memory block 11 is not limited to the SRAM, and a memory such as a DRAM may be used.
The DSEL 16a outputs external input data signals ed0 to ed2 input from the external data bus 13 toward the memory block 11 or separates the internal data signals id0 to id2 input from the memory block 11 from the memory block 11. Output in direction. The same applies to the other DSELs 16b to 16d. Further, the signal line 15 is wired so as to connect the DSELs 16a to 16d in series, and the switching signal TS is input to each of the DSELs 16a to 16d via the signal line 15.
The ASEL 17a outputs external input address signals ea0 to ea2 input from the external address bus 14 to the memory block 11 or directs internal address signals ia0 to ia2 sent from other memory blocks 11 to the memory block 11. Output. The same applies to the other ASELs 17b to 17d. Further, the signal line 15 is wired so as to connect the ASELs 17a to 17d in series, and the switching signal TS is input to each of the ASELs 17a to 17d via the signal line 15.
FIGS. 2A and 2B are diagrams for explaining the configuration and function of the DSEL 16a, and show only the portion connected to the data input / output terminal D0. The DSEL 16a includes tristate buffers (TRBUF) 18a and 18b for one terminal D0, and a flip-flop (FF) 18c is connected to the output of the TRBUF 18a. The FF 18c temporarily holds data, but this is not essential and need not be provided.
The TRBUFs 18a and 18b are logic circuits taking the truth values shown in FIG. The switching signal TS is input to the TRBUF 18a as the “enable” signal in FIG. 4, and the inverted signal of the switching signal TS is input to the TRBUF 18b as the “enable” signal in FIG. If the “enable” signal is “1”, the data input to “in” is output as it is to “out”, and if the “enable” signal is “0”, it is related to the data input to “in”. “Out” is an indefinite value (high impedance) “z”.
FIG. 2 (A) shows a case where the switching signal TS is “0”. Since “0” is input to the TRBUF 18a and “1” is input to the TRBUF 18b, only the input / output of the TRBUF 18b is performed. It becomes effective. At this time, the external input data signal ed0 input from the external data bus 13 to the DSEL 16a is input to the data input / output terminal D0 of the memory block 11 via the TRBUF 18b.
FIG. 2B shows the case where the switching signal TS is “1”. Since “1” is input to the TRBUF 18a and “0” is input to the TRBUF 18b, only the input / output of the TRBUF 18a is performed. It becomes effective. At this time, the internal data signal id0 output from the memory block 11 and input to the DSEL 16a is latched by the FF 18c via the TRBUF 18a and is directed away from the memory block 11 (to an adjacent memory block described later). ) Is output. The same applies to the portions connected to the other data input / output terminals D1 and D2 in the DSEL 16a, and the same applies to the configurations of the other DSELs 16b to 16d.
FIGS. 3A and 3B are diagrams for explaining the configuration and function of the ASEL 17a, and show only the portion connected to the address input terminal A0. The ASEL 17a includes tristate buffers (TRBUF) 19a and 19b for one terminal A0, and a flip-flop (FF) 19c is connected to the outputs of the TRBUFs 19a and 19b. The FF 19c temporarily holds data, but this is not essential and need not be provided.
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 TRBUF 19a, and an inverted signal of the switching signal TS is input as an “enable” signal to the TRBUF 19b.
FIG. 3 (A) shows a case where the switching signal TS is “0”. Since “0” is input to the TRBUF 19a and “1” is input to the TRBUF 19b, only the input / output of the TRBUF 19b is input. It becomes effective. At this time, the external input address signal ea0 input from the external address bus 14 to the ASEL 17a is latched by the FF 19c via the TRBUF 19b and input to the address input terminal A0 of the memory block 11.
FIG. 3B shows the case where the switching signal TS is “1”. Since “1” is input to the TRBUF 19a and “0” is input to the TRBUF 19b, only the input / output of the TRBUF 19a is input. It becomes effective. At this time, an internal address signal ia0 input from an adjacent memory block 11 described later is latched by the FF 19c via the TRBUF 19a and input to the address input terminal A0 of the memory block 11. The same applies to the parts connected to the other address input terminals A1 and A2 in the ASEL 17a, and the same applies to the configurations of the other ASELs 17b to 17d.
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 DSELs 16a to 16d and the ASELs 17a to 17d may be configured to select the external input data signals ea0 to ea11 and the internal address signals ea0 to ea11.
FIG. 5 shows a variable logic LSI (semiconductor integrated circuit) configured by arranging the variable logic cells 10 configured as described above in a two-dimensional matrix in a plane and connecting adjacent variable logic cells 10 to each other. ). The external address bus 14 is commonly connected to each memory block 11, while the external data bus 13 is independently connected to each memory block 11.
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 certain memory block 11. n = 0 to 11) is input to the address input terminal Am (m = 0 to 11) as an internal address signal iam (m = 0 to 11) for addressing the adjacent memory block 11. .
Specifically, the data input / output terminals D0 to D2 of the side 12a of a certain memory block 11 are respectively connected to the address input terminals A8 to A6 of the side 12c of the adjacent memory block 11 via the DSEL 16a and the ASEL 17c. . When the switching signal TS is “1”, the internal data signals id0 to id2 output from the data input / output terminals D0 to D2 via the DSEL 16a become the internal address signals ia8 to ia6 of the adjacent memory block 11. , And ASEL 17c, respectively, are input to address input terminals A8 to A6.
The data input / output terminals D6 to D8 on the side 12c of a certain memory block 11 are connected to the address input terminals A2 to A0 on the side 12a of the adjacent memory block 11 via the DSEL 16c and the ASEL 17a, respectively. When the switching signal TS is “1”, the internal data signals id6 to id8 output from the data input / output terminals D6 to D8 via the DSEL 16c become the internal address signals ia2 to ia0 of the adjacent memory block 11. , Are input to the address input terminals A2 to A0 via the ASEL 17a.
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 side 12b are connected to the address input terminals A11 to A9 of the side 12d of the adjacent memory block 11 with DSEL16b and ASEL17d. The internal data signals id3 to id5 are internal address signals ia11 to ia9 for addressing the adjacent memory blocks 11, respectively. The data input / output terminals D9 to D11 on the side 12d are connected to the address input terminals A5 to A3 on the side 12b of the adjacent memory block 11 via the DSEL 16d and the ASEL 17b, respectively, and the internal data signals id9 to id11 are respectively Internal address signals ia5 to ia3 for addressing adjacent memory blocks 11 are provided.
As described above, the address input terminals of one memory block 11 are mutually connected to the data input / output terminals of the other memory block 11 in two opposing sides 12a, 12c or 12b, 12d of two adjacent memory blocks 11. ing.
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 memory block 11 and to make the variable logic cell 10 function as a switch circuit (connection converter). An example of the logic is shown. This writing is controlled by an external device such as a personal computer (not shown) connected to the external data bus 13, the external address bus 14, and the signal line 15. At this time, as described above, the switching signal TS is set to “0”, and the external input address signals ea0 to ea11 and the external input data signals ed0 to ed11 are transferred to the address input terminals A0 to A11 and the data input / output terminals D0 to D11. Entered. For example, as shown in the figure, signals having the same logic as the terminals A0 to A2 are given to the terminals D3 to D5. “X” in the figure means that the logic may be either “0” or “1”, and the logic given to the terminals D0 to D2 and D6 to D11 is arbitrary.
When such logic data is stored in the memory block 11 and the switching signal TS is set to “1”, a signal input from the variable logic cell 10 adjacent to the left to the address input terminals A0 to A2 on the left side 12a is Then, the same logic is output from the data input / output terminals D3 to D5 on the lower side 12b toward the variable logic cell 10 adjacent to the lower side. Note that by changing the logical data to be stored so as to change the correspondence between the address input terminal and the data input / output terminal, a signal input to one side can be output from any one of the sides 12a to 12d. Can do. For example, it is also possible to output from the left side 12a so as to reflect the signal input to the left side 12a. Thus, the variable logic cell 10 functions as a switch circuit that can switch the signal flow based on the logic data stored in the memory block 11.
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 memory block 11 and cause the variable logic cell 10 to function as a combinational logic circuit. Indicates. The write control is the same as described above. For example, as shown in the figure, the logical product (AND) of the terminals A0 and A1 is given to the terminal D6, and the logical logical sum (OR) of the terminals A1 and A2 is given to the terminal D7. An exclusive OR (EOR) of the logic of the terminals A0 and A2 is given to D8.
When such logic data is stored in the memory block 11 and the switching signal TS is set to “1”, the signal input from the variable logic cell 10 adjacent to the left to the address input terminals A0 to A2 on the left side 12a is Then, the above logical operation is performed, and the data is output from the data input / output terminals D6 to D8 on the right side 12c toward the variable logic cell 10 adjacent to the right side. Note that combinational logic operations such as NAND, NOR, ENOR, etc. can be performed by changing the logical data to be stored. By changing the correspondence between the address input terminals and the data input / output terminals, signal input / output can be performed simultaneously. Needless to say, the direction can be changed. In this way, by storing logic data corresponding to two or more different input signals in the memory block 11, the variable logic cell 10 functions as a combinational logic circuit.
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 memory block 11, the variable logic cell 10 is made to function as an input selection type multiplexer that selects one from a plurality of input signals and outputs it from the output terminal. It is also possible.
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 memory block 11, the variable logic cell 10 is caused to function as an output selection type multiplexer that selects and outputs one input signal from a plurality of output terminals. It is also possible.
In addition, a circuit having one input and other outputs can be configured by logic data stored in the variable logic cell 10.
As described above, the variable logic cell 10 performs logic conversion based on the logic data stored in the memory block 11 so as to function as a switch circuit, a combinational logic circuit, a multiplexer, and the like.
FIG. 9 shows a configuration of a variable logic cell 20 having a form different from that described above. The variable logic cell 20 uses data registers (DREG) 21a to 21d and address registers (AREG) 22a to 22d in place of the DSELs 16a to 16d and ASELs 17a to 17d of the variable logic cell 10 described above. These DREGs 21a to 21d and AREGs 22a to 22d are provided between two circuit blocks as proposed by, for example, JTAG (Joint Test Action Group) to enable parallel transfer of signals between the two circuit blocks. At the same time, it is configured by a boundary scan circuit capable of latching data scanned in via the scan path 23 and scanning out the data by a shift operation.
The DREGs 21a to 21d output the internal data signals id0 to id11 read from the memory block 11 in parallel to the adjacent memory block 11, and the AREGs 22a to 22d output the internal data signals id0 to id11 output from the adjacent memory block 11. The internal address signals ia0 to ia11 are input to the memory block 11 in parallel. In addition to this parallel operation, the DREGs 21a to 21d shift the serial external input data signals ed0 to ed11 scanned in from the outside via the scan path 23 and sequentially scan out, and the AREGs 22a to 22d are similarly scanned paths. 23, the serial external input address signals ea0 to ea11 scanned in from the outside through the shift unit 23 are shifted so as to sequentially scan out. Since an external address signal and an external data signal are input from an external device via the scan path 23, it is not necessary to provide the external data bus 13 and the external address bus 14 shown in FIG. Is expected to be smaller than the variable logic cell 10.
FIG. 10 shows a register capable of shift operation and bidirectional input / output as a specific example of DREGs 21a to 21d and AREGs 22a to 22d. This shiftable register includes three flip-flops FF0 to FF2, and multiplexers MUX0 to MUX2 are provided in front of the data input terminals of the flip-flops FF0 to FF2. Depending on the control signal MUX_SEL, the multiplexers MUX0 to MUX2 are either scan-in data SCAN_IN or data of data terminals I / O-0 to I / 0-2 or I / O-3 to I / O-5. Select. The direction of signal input / output is switched by the control signal DIRECTION. The shift operation is controlled by a clock signal FFCLK input to each flip-flop FF0 to FF2. The scan-in data SCAN_IN is shifted in the order of FF0 → FF1 → FF2 according to the clock signal FFCLK, and output as scan-out data SCAN_OUT.
Further, the flip-flops FF0 to FF2 of the DREGs 21a to 21d are used when constructing a sequential logic circuit such as a counter circuit described later, and when the DRAM is used as the memory block 11, the refresh (electricity) performed by the DRAM is performed. It is also used for an address operation performed by holding data during a typical memory holding operation) period.
The variable logic cells 20 are arranged in a two-dimensional matrix in the same plane as the variable logic cell 10 described above, and a variable logic LSI is configured by connecting adjacent variable logic cells 20 to each other. Further, the data input / output terminals D0 to D11 and the address input terminals A0 to A11 between the adjacent variable logic cells 20 are the same as the data input / output terminals facing each other between the adjacent variable logic cells 20 as in FIG. Terminals are connected via a data register and an address register. Further, the variable logic cell 20 functions as any one of a switch circuit, a combinational logic circuit, and a multiplexer according to logic data stored in the memory block 11 and performs logic conversion.
Further, the scan paths 23 are sequentially connected so that the scan-out data of the variable logic cell 20 becomes the scan-in data of the adjacent variable logic cell 20. Thereby, in the test mode of the memory block 11, the internal data signals id0 to id11 read from the memory block 11 are taken into the DREGs 21a to 21d, shifted, and scanned out, so that defective bits in the memory block 11 can be easily obtained. Detected. If the memory block 11 having the defective bit is clarified, the logic circuit may be configured using only the normal variable logic cell 20 except the variable logic cell 20.
As described above, the variable logic LSI configured with the variable logic cell 10 or the variable logic cell 20 is further configured with another variable logic cell from the output of the combinational logic circuit configured with the variable logic cell to the input. By generating a signal path by a plurality of switch circuits and applying feedback, a sequential logic circuit such as a counter circuit is configured. As a result, an arbitrary logic circuit can be realized. Therefore, since the switch circuit can be configured by any variable logic cell without distinguishing it from other logic circuits, a logic circuit having a desired logic function can be freely configured anywhere in the matrix plane of the variable logic cell. The signal path and direction can be freely determined.
FIG. 11 shows a specific procedure for constructing a desired logic circuit in the variable logic LSI composed of the variable logic cell 20. First, design data in which a desired logical function is described in a C language is created as in the prior art, and the design data is converted into data described in a language such as HDL. Here, the functional design by C language may be omitted and the design data may be created by directly describing in HDL. Next, logic synthesis is performed from the design data described in HDL, and converted into data expressed at the gate level. Then, the gate level design data is separated into a sequential logic circuit and a combinational logic circuit.
Subsequently, the variable logic cell 20 used in the sequential logic circuit is determined. For the combinational logic circuit, the variable logic cell 20 constituting the desired logic is determined. Then, the variable logic cell 20 as a switch circuit used for connecting the determined variable logic cells 20 is determined. Thereafter, logical data to be stored in the memory block 11 in each cell is generated, and the generated logical data and an address signal to be written to a predetermined address of the memory block 11 are sent via the scan path 23 to each A bit stream suitable for transfer to the memory block 11 is converted. The bit stream is transferred from the scan path 23 and stored in the corresponding memory block 11. Thereby, a logic circuit having a desired logic function is constructed.
However, in the case of a variable logic LSI composed of the variable logic cell 10, since the scan path 23 is not provided, the logical data is transferred to the external data bus 13 and the external address bus 14 without generating the bit stream. The data is written to each memory block 11 via
Next, FIG. 12 shows a variable logic cell 30 that enables compression of the mounted logic. The variable logic cell 30 is provided with multiplexers (MUX) 31a to 31d along the outside of the AREGs 22a to 22d. The MUX 31a and MUX 31c arranged in the horizontal direction so as to sandwich the memory block 11 are fed back between the output and the input by feedback signal lines 32a to 32f, and arranged in the vertical direction so as to sandwich the memory block 11. The MUX 31b and the MUX 31d are fed back between the output and the input by feedback signal lines 33a to 33f. The variable logic cell 30 can also be configured using the variable logic cell 10 shown in FIG. In this case, DREGs 21a to 21d of the variable logic cell 30 are replaced by DSELs 16a to 16d, and AREGs 22a to 22d are replaced by ASELs 17a to 17d.
FIG. 13 shows the configuration of the MUXs 31a and 31c that sandwich the memory block 11 in the horizontal direction. Each of the MUXs 31a and 31c includes circuit units 34a and 34c including two AND circuits and one OR circuit, and circuit units 35a and 35c including two AND circuits. The circuit units 34a and 34c are provided one for each address input terminal, and the output units of the circuit units 34a and 34c are connected to the address input terminals A0 to A2 and A6 to A8 via the AREGs 22a and 22c, respectively. Has been. The circuit units 35a and 35c are provided for each data input / output terminal, and the data input / output terminals D0 to D2 and D6 to D8 are input to the circuit units 35a and 35c via the DREGs 21a and 21c. Connected to the department.
However, one of the address input terminals A0 to A2 of the side 12a (for example, the terminal A2) is connected to the control signal line 36a in the MUX 31a via the AREG 22a. The control signal line 36a is connected to the input terminals of the two AND circuits of the circuit units 34a and 35a, and is connected to one of the AND circuits so that the logic is inverted. One of the data input / output terminals D6 to D8 on the side 12a (for example, the terminal D6) is connected to the control signal line 36c in the MUX 31c via the DREG 21c. The control signal line 36c is connected to the input terminals of the two AND circuits of the circuit units 34c and 35c, and is connected to one of the AND circuits so that the logic is inverted.
When the logic of the control signal line 36c is “1”, the circuit unit 35c transfers the internal data signal id8 read from the data input / output terminal D8 to another adjacent variable logic cell 30 without changing the direction. When the logic of the control signal line 36c is “0”, the internal data signal id8 is transferred to the MUX 31a via the feedback signal line 32a. The internal data signal id8 transferred via the feedback signal line 32a is input to the circuit unit 34a. At this time, if the logic of the control signal 36 a is “0”, the internal data signal id 8 is fed back to its own address input terminal A 0 of the memory block 11. On the other hand, if the logic of the control signal line 36a is “1”, the internal address signal ia0 transferred from another adjacent variable logic cell 30 is transferred to the address input terminal A0.
The same applies to the circuit portions 35a and 34c. When the logic of the control signal lines 36a and 36c is "0", the internal data signal id0 read from the data input / output terminal D0 is sent via the feedback signal line 32b. When the logic of the control signal lines 36a and 36c is “1”, the internal data signal id0 or the internal address signal ia8 is transferred to and from the adjacent variable logic cell 30 when it is fed back to its own address input terminal A8. Although not shown, the same applies to circuit portions connected to other terminals. Although not shown, the configurations of the MUXs 31b and 31d that sandwich the memory block 11 in the vertical direction are the same as those of the MUXs 31a and 31c.
The variable logic cells 30 are arranged in a two-dimensional matrix in the same plane as the variable logic cell 10 described above, and the variable logic cells 30 can be compressed by connecting adjacent variable logic cells 30 to each other. An LSI is configured. FIG. 14 (A) shows an example of a two-stage logic circuit composed of logic stages α and β. In the logic stage number α, the input internal address signals ia0 and ia1 are logically operated by the NAND circuit 37a and the NOR circuit 37b, respectively, and latched in the flip-flop 37c. Then, in the logic stage number β, the output data of the NAND circuit 37a among the data latched in the flip-flop 37c is inverted by the inverter 38a and latched in the flip-flop 38b, and the output data of the NOR circuit 37b is flip-flop with the logic as it is. 38b and output as internal data signals id8 and id7, respectively.
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 variable logic cell 10 or 20 is used. When the logic cell 30 is used, it can be expressed by one variable logic cell. FIG. 14B shows logical data to be written to the memory block 11 in the variable logic cell 30 in order to express the logic of the circuit of FIG. In order to set the control signal lines 36a and 36c to the same logic, a signal having the same logic as that of the address input terminal A2 is applied to the data input / output terminal D6. That is, when the logic of the terminal A2 is “0”, the calculation of the logic stage number α is performed, feedback is applied from the data input / output terminal to the address input terminal, and the logic level of the terminal A2 becomes “1”. β is calculated and output. Thus, the terminals A2 and D6 are not used for the logical operation but are used for switching control of the MUXs 31a and 31c.
When a desired logic is mounted on the memory block 11, if all terminals are used for logic conversion, the logic mounting efficiency is good, but not all terminals are used, and some terminals are unused. May be extra. If these unused terminals are used as the terminals A2 and D6, a plurality of logic stages can be expressed by one variable logic cell 30, and the logic mounting efficiency in one variable logic cell can be improved. Can do. Although the logical compression in the horizontal direction has been described, the logical compression in the vertical direction can be similarly performed by using the MUXs 31b and 31d.
Next, FIG. 15 shows a variable logic cell 40 in which an address input terminal and a data input / output terminal are each connected to a two-stage flip-flop. In the variable logic cell 40, flip-flops (DFF) 41a to 41d for latching the internal data signals id0 to id8 are arranged along the outside of the AREGs 22a to 22d of the variable logic cell 20, and further along the outside thereof. Flip-flops (AFF) 42a to 42d for latching internal address signals ia0 to ia8 are arranged. The DREGs 21a to 21d and the AREGs 22a to 22d are normal flip-flops that transfer signals in parallel when the shift operation is not performed. Therefore, the DREGs 21a to 21d and the DFFs 41a to 41d parallel the internal data signals id0 to id8 between the cells. AREGs 22a to 22d and AFFs 42a to 42d function as two-stage flip-flops that transfer internal address signals ad0 to ad8 in parallel between cells. Note that a clock signal is input to each flip-flop, but the illustration is omitted. The variable logic cell 40 can also be configured using the variable logic cell 10 shown in FIG. In this case, DREGs 21a to 21d are replaced by DSELs 16a to 16d, and AREGs 22a to 22d are replaced by ASELs 17a to 17d.
The variable logic cells 40 configured in this way are arranged in a two-dimensional matrix in the same plane as the above-described variable logic cell 10 and are used by connecting the adjacent variable logic cells 40 to each other. A variable logic LSI capable of reducing the number of terminals is configured. FIG. 16A shows a NAND circuit 43a with two inputs in1 and in2, an AND circuit 43b with two inputs in3 and in4, and a flip-flop 43c that latches output data out1 and out2 from the NAND circuit 43a and AND circuit 43b. 4 shows a 4-input 2-output circuit. If this circuit is configured using the variable logic cell 10 or 20, since each of the sides 12a to 12d has only three address input terminals, there are at least two to realize four inputs. Either the edge address input terminals must be used at the same time, or two variable logic cells 10 or 20 must be used.
Using the variable logic cell 40 configured as described above, the logic data shown in FIG. 16 (B) is written into the memory block 11, so that the circuit of FIG. Can be realized. According to the logic data of FIG. 16B, the variable logic cell 40 has the internal address signal applied to the terminals A0 and A1 when the logic of the internal address signal ia0 applied to the terminal A2 is “0”. NAND logic operation of ia0, ia1 (in1, in2) is performed, and the operation result is output as an internal data signal id8 (out1) from the terminal D8. When the logic of the internal address signal ia0 applied to the terminal A2 is “1”, the NOR logic operation of the internal address signals ia0 and ia1 (in3 and in4) applied to the terminals A0 and A1 is performed, and the operation result Is output from the terminal D8 as the internal data signal id8 (out2 above).
Accordingly, when the internal address signal ia2 is “0” and “1”, the internal address signals ia0 to ia2 are sequentially input to the AFF 42a and the AREG 22a to be latched, and the terminals arranged on the one side 12a of the memory block 11 The data is input to A0 to A2, and the internal data signal id8 indicating the calculation result is sequentially output from the terminal D8 of the side 12c and latched in the DREG 21c and the DFF 41c, and the data out1 and out2 are sequentially output in series. Thus, when the variable logic cell 40 is used, the circuit of FIG. 16A can be realized with the number of terminals of three inputs and one output.
The variable logic cell 50 shown in FIG. 17 has the configuration of the variable logic cell 30 and the variable logic cell 40, and the address input terminal and the data input / output terminal are respectively connected to the two-stage flip-flops. Feedback is applied between the address input terminal and the data input / output terminal. When this variable logic cell 50 is used, the logic mounting efficiency can be further increased.
FIG. 18 shows an image in which a two-dimensional initial memory logic space formed by the variable logic cell 30 or 50 having a feedback path between the data input / output terminal and the address input terminal is compressed. The initial source memory space is folded into a horizontal direction and a vertical direction by feedback between the self address input terminal and the data input / output terminal and becomes a compressed memory logical space.
In the above-described embodiment, the address input terminals and the data input / output terminals are alternately arranged on each side 12a to 12d of the memory block 11, but it is not always necessary to alternately arrange each side. Need only be provided with both an address input terminal and a data input / output terminal. For example, as shown in FIG. 19 (A), two sets of address input terminals and data input / output terminals may be arranged on each side 12a-12d, or as shown in FIG. 19 (B). As described above, the address input terminals and the data input / output terminals may be divided into two groups on each side 12a to 12d. At this time, each terminal may be arranged so that the address input terminal and the data input / output terminal face each other between the adjacent memory blocks 11.
In the above embodiment, the memory block 11 is a square surrounded by the four sides 12a to 12d. Instead, the memory block 11 is a triangle surrounded by three sides as shown in FIG. It is good. When any one of the variable logic cells 10, 20, 30, 40, and 50 including the memory block 11 is formed into a triangle and the cells are laid out in a two-dimensional plane as shown in FIG. Composed. The triangular memory block 11 can efficiently arrange terminals on each side when the memory capacity is small, that is, when the number of terminals is small. Further, signal transmission in an oblique direction can be efficiently performed with a short path due to the triangular shape. Further, it goes without saying that the memory block 11 can be a pentagon or more polygon. Thus, by determining the shape and arrangement of the memory block 11 in consideration of the memory capacity, the logic mounting efficiency can be further increased.
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 upper surface 12e and the lower surface 12f of the memory block 11 in addition to the four sides 12a to 12d of the memory block 11. Then, as shown in FIG. 21 (B), any one of the variable logic cells 10, 20, 30, 40, 50 provided with the memory block 11 is spread in a two-dimensional plane, and the side 12a between the memory blocks 11 is placed. ˜12d are connected to each other, and a plurality of two-dimensional planar variable logic cells are stacked so that the upper surface 12e and the lower surface 12f between the upper and lower adjacent memory blocks 11 are wired.
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 MUXs 31a to 31d for providing feedback from the data input / output terminal to its own address input terminal are provided in one variable logic cell 30, but the MUXs 31a to 31d are a plurality of variable logic cells. 10 (or 20) may be used. In the variable logic cell 10 (or 20), one flip-flop is connected to each terminal. Therefore, by using at least five variable logic cells 10 (or 20), each terminal shown in FIG. A variable logic cell 50 to which two stages of flip-flops are connected and which has a feedback path from the data input / output terminal to its own address input terminal can be configured.
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 variable logic cells 10, 20, 30, 40, 50 is used as the SRAM 61a constituting the built-in memory 61.
First, an ALPG (Algorithmic Pattern Generator) that generates a test pattern for testing another SRAM 61a using a part of the SRAM 61a is configured by an HDL description. Thereby, another SRAM 61a is tested and the test result is determined. If the test result is fail, a fail signal is generated and the test is terminated. On the other hand, when the test result is determined to be a pass, a test circuit for testing the logic circuit portion is configured by the HDL description by the SRAM 61a including the tested SRAM 61a, and a memory for storing the test pattern Is composed of the SRAM 61a that has passed the above test. A test pattern is described in this memory, and the user logic circuit 62 and the CPU 63 are tested. If this test fails, a fail signal is generated and the test is terminated.
If this test is passed, an ALPG that generates a test pattern of the DRAM 64 is configured in a part of the SRAM 61a, and a fail memory that stores the test result is configured using another SRAM 61a. Then, the relief algorithm of the DRAM 64 is loaded into the CPU 63, the DRAM 64 is tested with ALPG, and bit relief of the defective bit is performed by the relief bit line 64a. If the DRAM fails this test and cannot be relieved, a fail signal is generated and the test is terminated. On the other hand, if the test is passed, the SRAM 61a constituting the test circuit is set as a normal memory and is operated as a storage device of the SOC 60.
The above is the use of the variable logic cell in the test. The built-in memory 61 constituted by any one of the variable logic cells 10, 20, 30, 40, 50 is used as a programmable device during normal operation other than the test. The SOC 60 may be an LSI chip with a programmable device. An SOC in which a plurality of CPUs are connected by the variable logic cell is also conceivable. This makes it possible to speed up parallel processing and the like. Furthermore, the present invention can be applied to SIP (System In Package).
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.
前記メモリブロックは、外部装置により予め書き込まれたデータによって、前記アドレス入力端子に入力される内部アドレス信号と前記データ入出力端子から出力される内部データ信号との関係を論理変換することを特徴とする請求項1記載の半導体集積回路。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. The semiconductor integrated circuit according to claim 1. 前記メモリブロックは、スイッチ回路として動作することを特徴とする請求項2記載の半導体集積回路。3. The semiconductor integrated circuit according to claim 2, wherein the memory block operates as a switch circuit. 前記メモリブロックは、組み合わせ論理回路として動作することを特徴とする請求項2記載の半導体集積回路。3. The semiconductor integrated circuit according to claim 2, wherein the memory block operates as a combinational logic circuit. 複数個の前記メモリブロックは、その一部で帰還経路を形成することにより、全体として順序論理回路として動作することを特徴とする請求項2記載の半導体集積回路。3. The semiconductor integrated circuit according to claim 2, wherein the plurality of memory blocks operate as a sequential logic circuit as a whole by forming a feedback path at a part thereof. 前記接続手段は、外部装置から送られる外部入力アドレス信号および外部入力データ信号をそれぞれ切り換え選択可能に前記メモリブロックに入力するためのセレクタをさらに備えていることを特徴とする請求項1ないし5いずれかに記載の半導体集積回路。6. The connection unit according to claim 1, further comprising 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 as to be switchable and selectable. A semiconductor integrated circuit according to claim 1. 前記接続手段は、外部装置から送られる外部入力アドレス信号および外部入力データ信号をスキャンパスを介し、シフト動作によってシリアルに前記メモリブロックに入力するためのシフタブルレジスタをさらに備えていることを特徴とする請求項1ないし5いずれかに記載の半導体集積回路。The connection means further includes a shiftable register for serially inputting an external input address signal and an external input data signal sent from an external device to the memory block by a shift operation through a scan path. The semiconductor integrated circuit according to claim 1. 前記各シフタブルレジスタは、前記スキャンパスにより直列に連結されていることを特徴とする請求項7記載の半導体集積回路。8. The semiconductor integrated circuit according to claim 7, wherein the shiftable registers are connected in series by the scan path. 前記各メモリブロック内の不良ビットは、前記スキャンパスを介して検出されることを特徴とする請求項9記載の半導体集積回路。10. The semiconductor integrated circuit according to claim 9, wherein a defective bit in each memory block is detected through the scan path. 前記接続手段は、第1のメモリブロックのデータ入出力端子から出力される内部データ信号を自己のアドレス入力端子に帰還するか、または、この内部データ信号を隣接する第2のメモリブロックへ転送するかを選択可能とするマルチプレクサをさらに備えていることを特徴とする請求項1ないし9のいずれかに記載の半導体集積回路。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. 10. The semiconductor integrated circuit according to claim 1, further comprising a multiplexer that makes it possible to select one of these. 前記複数のアドレス入力端子およびデータ入出力端子のうち、前記論理変換に用いられていないアドレス入力端子およびデータ入出力端子を前記マルチプレクサの選択制御に用いることで、前記メモリブロックに搭載される論理の圧縮を行うことを特徴とする請求項10記載の半導体集積回路。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. 11. The semiconductor integrated circuit according to claim 10, wherein compression is performed. 前記各メモリブロックは、3辺で囲まれた三角形をしていることを特徴とする請求項1ないし11いずれかに記載の半導体集積回路。12. The semiconductor integrated circuit according to claim 1, wherein each of the memory blocks has a triangular shape surrounded by three sides. 前記各メモリブロックは、複数のアドレス入力端子およびデータ入出力端子が設けられた上面および下面をさらに備えており、前記接続手段は、第1のメモリブロックの上面のアドレス入力端子をその上面に隣接するメモリブロックの下面のデータ入出力端子に接続し、前記第1のメモリブロックの上面のデータ入出力端子をその上面に隣接する前記メモリブロックの下面のアドレス入力端子に接続することを特徴とする請求項1ないし12のいずれかに記載の半導体集積回路。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 is connected, and the data input / output terminal on the upper surface of the first memory block is connected to the address input terminal on the lower surface of the memory block adjacent to the upper surface. The semiconductor integrated circuit according to claim 1.
JP2005504364A 2003-07-16 2003-07-16 Semiconductor integrated circuit Expired - Fee Related JP4334541B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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