JP5365637B2 - Semiconductor programmable device and control method thereof - Google Patents

Semiconductor programmable device and control method thereof Download PDF

Info

Publication number
JP5365637B2
JP5365637B2 JP2010529831A JP2010529831A JP5365637B2 JP 5365637 B2 JP5365637 B2 JP 5365637B2 JP 2010529831 A JP2010529831 A JP 2010529831A JP 2010529831 A JP2010529831 A JP 2010529831A JP 5365637 B2 JP5365637 B2 JP 5365637B2
Authority
JP
Japan
Prior art keywords
signal
switch fabric
signals
output
circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010529831A
Other languages
Japanese (ja)
Other versions
JPWO2010032861A1 (en
Inventor
英彰 斎藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2010529831A priority Critical patent/JP5365637B2/en
Publication of JPWO2010032861A1 publication Critical patent/JPWO2010032861A1/en
Application granted granted Critical
Publication of JP5365637B2 publication Critical patent/JP5365637B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/17736Structural details of routing resources

Abstract

Disclosed is a low-cost, high-performance semiconductor programmable device comprising: multiple circuit blocks that input/output signals; a switch fabric that reciprocally transmits the signals input/output by the circuit blocks; and a conversion unit that parallel-serial converts the multiple signals output by the multiple circuit blocks into one signal to be used by the switch fabric and serial-parallel converts the signal output by the switch fabric into multiple signals to be used by the circuit blocks.

Description

本発明は、プロセッサやメモリからなる回路ブロックを複数集積した半導体プログラマブルデバイスに関する。   The present invention relates to a semiconductor programmable device in which a plurality of circuit blocks including processors and memories are integrated.

半導体集積回路デバイスの低コスト化、短TAT(Turn Around Time)化のため、デバイス製作後に回路構成を変更できるプログラマブルデバイスが開発されている。このプログラマブルデバイスの一例として、ゲートレベルで回路を組み合わせて再構成するFPGA(Field Programmable Gate Array)がある。また、プログラマブルデバイスとして、より大きい回路単位であるプロセッサやメモリをアレイ状に並べたものを組み合わせて再構成するデバイスなど、様々なものが実現あるいは提案されている。
回路ブロックを組み合わせて再構成するプログラマブルデバイスとして、例えば、チップ上で2次元アレイ状に回路ブロックを並べて、2次元メッシュの結合網で回路ブロック間を接続するデバイスが、非特許文献1に開示されている。
図29に、非特許文献1に記載された関連する2次元アレイのプログラマブルデバイスの一例を示す。同図に示すように、関連するプログラマブルメモリデバイス600においては、回路ブロックとしてのメモリマクロ610が2次元アレイ状に並んでいる。この回路ブロックとしてはメモリに限らず、プロセッサやカスタムハードウエア回路などがある。メモリマクロ610は、それぞれに対応するスイッチファブリック630と接続されている。これらのスイッチファブリック630同士は、メモリマクロからのデータを他のメモリマクロや2次元アレイの外部へ転送するために2次元メッシュ状に配線で結合されている。
スイッチファブリック630には、例えば、図18に示す構成を有するものを用いることができる。同図を参照すると、スイッチファブリック230は、自身の上下左右の方向で隣り合う他のスイッチファブリック230U、230D、230L、230Rとそれぞれ配線で結合し、また、自身に対応する1つの回路ブロック(例えばメモリブロック110)とも結合している。スイッチファブリック間あるいはスイッチファブリックと回路ブロックとの信号の入出力は5つの4:1セレクタSE1c〜SE5cで実現されている。各セレクタは、4つの入力信号のうちいずれか1つを選択して出力する。各セレクタの入力信号の選択は、選択論理回路LG1c〜LG5cにより制御される。選択論理回路は例えば、データを転送する方向をアドレス化したものをデコードするためのデコード回路からなる。
「プロシーディングス オブ アイ・イー・イー・イー コンピュータ ソサイエティ アニュアル シンポジウム オン VLSI(Proceedings of the IEEE Computer Society Annual Symposium on VLSI)」、2002年、p.105−112
In order to reduce the cost and shorten the turnaround time (TAT) of semiconductor integrated circuit devices, programmable devices that can change the circuit configuration after device fabrication have been developed. As an example of this programmable device, there is an FPGA (Field Programmable Gate Array) that reconfigures by combining circuits at the gate level. Various programmable devices have been realized or proposed, such as devices that are reconfigured by combining processors and memories that are larger circuit units arranged in an array.
As a programmable device that reconfigures by combining circuit blocks, for example, a device that arranges circuit blocks in a two-dimensional array on a chip and connects the circuit blocks with a two-dimensional mesh coupling network is disclosed in Non-Patent Document 1. ing.
FIG. 29 shows an example of a related two-dimensional array programmable device described in Non-Patent Document 1. As shown in the figure, in a related programmable memory device 600, memory macros 610 as circuit blocks are arranged in a two-dimensional array. The circuit block is not limited to a memory, but includes a processor and a custom hardware circuit. The memory macro 610 is connected to the corresponding switch fabric 630. These switch fabrics 630 are coupled to each other in the form of a two-dimensional mesh in order to transfer data from the memory macro to another memory macro or the outside of the two-dimensional array.
As the switch fabric 630, for example, one having the configuration shown in FIG. 18 can be used. Referring to the figure, the switch fabric 230 is connected to other switch fabrics 230U, 230D, 230L, and 230R adjacent in the vertical and horizontal directions of the switch fabric 230 by wiring, and one circuit block corresponding to the switch fabric 230 (for example, It is also coupled to the memory block 110). Input / output of signals between the switch fabrics or between the switch fabric and the circuit block is realized by five 4: 1 selectors SE1c to SE5c. Each selector selects and outputs one of the four input signals. Selection of the input signal of each selector is controlled by selection logic circuits LG1c to LG5c. The selection logic circuit includes, for example, a decoding circuit for decoding a data transfer direction addressed.
“Proceedings of the IEEE Computer Society Annual Symposium on VLSI”, 2002, p. 40, Proceedings of the IE Computer Society Annual Symposium on VLSI (Proceedings of the IEEE Computer Society Annual VLSI). 105-112

非特許文献1に開示されたプログラマブルデバイスは回路ブロック間の接続を切り替えることで所望の回路構成を実現している。しかし、回路変更ができない通常の半導体集積回路デバイスと比べて、回路ブロック間を接続する配線と、その接続を切り替えるためのスイッチファブリックを配置する必要があるため、チップ面積のオーバーヘッドが生じてしまうという問題があった。
例えば、FPGAではチップ面積の半分、プロセッサの2次元アレイの場合でもチップ面積の約1/4程度は配線およびスイッチファブリックで占められている。
配線層数を増やして上述の配線を別の配線層に移設することにより、チップ面積を増大させることなく搭載できる回路ブロックの数を増やし、デバイス性能を向上させることができる。しかし、配線層を増やすと、マスクコストが増加してしまう。
本発明の目的は、上述した課題である、低コストで高性能の半導体プログラマブルデバイスを得るのが困難であるという問題を解決する半導体プログラマブルデバイスおよびその制御方法を提供することにある。
The programmable device disclosed in Non-Patent Document 1 realizes a desired circuit configuration by switching connections between circuit blocks. However, compared to a normal semiconductor integrated circuit device that cannot change the circuit, it is necessary to arrange a wiring for connecting circuit blocks and a switch fabric for switching the connection, resulting in chip area overhead. There was a problem.
For example, in FPGA, about half of the chip area, and in the case of a two-dimensional array of processors, about 1/4 of the chip area is occupied by wiring and switch fabric.
By increasing the number of wiring layers and transferring the above-described wiring to another wiring layer, the number of circuit blocks that can be mounted without increasing the chip area can be increased, and the device performance can be improved. However, when the wiring layer is increased, the mask cost increases.
An object of the present invention is to provide a semiconductor programmable device that solves the above-described problem that it is difficult to obtain a low-cost and high-performance semiconductor programmable device, and a control method thereof.

本発明の半導体プログラマブルデバイスは、信号を入出力する複数の回路ブロックと、回路ブロックが入出力する信号を相互に転送するスイッチファブリックと、複数の回路ブロックから出力された複数の信号を1つの信号にパラレル−シリアル変換した信号をスイッチファブリックに使用させ、スイッチファブリックから出力された信号をシリアル−パラレル変換した複数の信号を回路ブロックに使用させる変換部とを有する。
本発明の半導体プログラマブルデバイスの制御方法は、信号を入出力する複数の回路ブロックと、回路ブロックが入出力する信号を相互に転送するスイッチファブリックと、を備える半導体プログラマブルデバイスの制御方法であって、複数の回路ブロックから出力された複数の信号を1つの信号にパラレル−シリアル変換した信号をスイッチファブリックに使用させ、スイッチファブリックから出力された信号をシリアル−パラレル変換した複数の信号を回路ブロックに使用させる。
The semiconductor programmable device of the present invention includes a plurality of circuit blocks that input and output signals, a switch fabric that transfers signals input and output by the circuit blocks to each other, and a plurality of signals output from the plurality of circuit blocks as one signal. And a conversion unit that causes the circuit fabric to use a plurality of signals obtained by serial-parallel conversion of signals output from the switch fabric.
A method for controlling a semiconductor programmable device of the present invention is a method for controlling a semiconductor programmable device comprising a plurality of circuit blocks that input and output signals and a switch fabric that transfers signals input and output by the circuit blocks to and from each other. The switch fabric uses a signal obtained by parallel-serial conversion of a plurality of signals output from a plurality of circuit blocks into one signal, and a plurality of signals obtained by serial-parallel conversion of a signal output from the switch fabric are used for a circuit block. Let

本発明によれば、スイッチファブリックおよびスイッチファブリック周辺の配線による面積オーバーヘッドを小さくできる。その結果、低コストで高性能な半導体プログラマブルデバイスを得ることができる。   According to the present invention, the area overhead due to the switch fabric and the wiring around the switch fabric can be reduced. As a result, a low-cost and high-performance semiconductor programmable device can be obtained.

図1は本発明の第1の実施形態に係るプログラマブルメモリデバイスの構成を示すブロック図である。
図2は本発明の第1の実施形態に係るSRAMマクロの回路構成を示すブロック図である。
図3は本発明の第1の実施形態に係る変換部の構成を示す回路図である。
図4は本発明の第1の実施形態に係る2:1マルチプレクサの構成を示す回路図である。
図5は本発明の第1の実施形態に係る2:1マルチプレクサの動作を示す真理値表である。
図6は本発明の第1の実施形態に係る2:1マルチプレクサの動作を示す信号波形図である。
図7Aは本発明の第1の実施形態に係る1:2デマルチプレクサの構成を示す回路図である。
図7Bは本発明の第1の実施形態に係るハイスルーラッチの一般的な構成を示す回路図である。
図8は本発明の第1の実施形態に係るハイスルーラッチの動作を示す真理値表である。
図9は本発明の第1の実施形態に係るフリップフロップの動作を示す真理値表である。
図10は本発明の第1の実施形態に係る1:2デマルチプレクサの動作を示す信号波形図である。
図11は本発明の第1の実施形態に係るスイッチファブリックの構成を示すブロック図である。
図12は本発明の第1の実施形態に係るスイッチファブリックを構成する読み出しデータ制御回路の構成を示す回路図である。
図13は本発明の第1の実施形態に係る選択論理回路の動作を示すフローチャートである。
図14は本発明の第1の実施形態に係るスイッチファブリックを構成する書き込みデータ制御回路の構成を示す回路図である。
図15は本発明の第1の実施形態に係るメモリ入出力部の構成を示す回路図である。
図16は本発明の第2の実施形態に係る1:2デマルチプレクサの構成を示す回路図である。
図17は本発明の第3の実施形態に係る変換部の構成を示す回路図である。
図18は本発明の第4の実施形態に係るスイッチファブリックの構成を示す回路図である。
図19は本発明の第5の実施形態に係るプログラマブルメモリデバイスの構成を示すブロック図である。
図20は本発明の第5の実施形態に係る4:1マルチプレクサの構成を示す回路図である。
図21は本発明の第5の実施形態に係る4:1マルチプレクサの動作を示すカルノー図である。
図22は本発明の第5の実施形態に係る4:1マルチプレクサの動作を示す信号波形図である。
図23は本発明の第5の実施形態に係る1:4デマルチプレクサの構成を示す回路図である。
図24は本発明の第5の実施形態に係る1:4デマルチプレクサの動作を示す信号波形図である。
図25は本発明の第6の実施形態に係る1:4デマルチプレクサの構成を示す回路図である。
図26は本発明の第7の実施形態に係る1:4デマルチプレクサのプ構成を示す回路図である。
図27は本発明の第8の実施形態に係る積層デバイスの構成を示す斜視図である。
図28は本発明の第9の実施形態に係るプログラマブルプロセッサデバイスの構成を示すブロック図である。
図29は関連するプログラマブルメモリデバイスの構成を示すブロック図である。
FIG. 1 is a block diagram showing a configuration of a programmable memory device according to the first embodiment of the present invention.
FIG. 2 is a block diagram showing a circuit configuration of the SRAM macro according to the first embodiment of the present invention.
FIG. 3 is a circuit diagram showing a configuration of the conversion unit according to the first embodiment of the present invention.
FIG. 4 is a circuit diagram showing the configuration of the 2: 1 multiplexer according to the first embodiment of the present invention.
FIG. 5 is a truth table showing the operation of the 2: 1 multiplexer according to the first embodiment of the present invention.
FIG. 6 is a signal waveform diagram showing the operation of the 2: 1 multiplexer according to the first embodiment of the present invention.
FIG. 7A is a circuit diagram showing a configuration of a 1: 2 demultiplexer according to the first embodiment of the present invention.
FIG. 7B is a circuit diagram showing a general configuration of the high-through latch according to the first embodiment of the present invention.
FIG. 8 is a truth table showing the operation of the high-through latch according to the first embodiment of the present invention.
FIG. 9 is a truth table showing the operation of the flip-flop according to the first embodiment of the present invention.
FIG. 10 is a signal waveform diagram showing the operation of the 1: 2 demultiplexer according to the first embodiment of the present invention.
FIG. 11 is a block diagram showing the configuration of the switch fabric according to the first exemplary embodiment of the present invention.
FIG. 12 is a circuit diagram showing the configuration of the read data control circuit constituting the switch fabric according to the first embodiment of the present invention.
FIG. 13 is a flowchart showing the operation of the selection logic circuit according to the first embodiment of the present invention.
FIG. 14 is a circuit diagram showing a configuration of a write data control circuit constituting the switch fabric according to the first embodiment of the present invention.
FIG. 15 is a circuit diagram showing a configuration of the memory input / output unit according to the first embodiment of the present invention.
FIG. 16 is a circuit diagram showing a configuration of a 1: 2 demultiplexer according to the second embodiment of the present invention.
FIG. 17 is a circuit diagram showing a configuration of a conversion unit according to the third embodiment of the present invention.
FIG. 18 is a circuit diagram showing a configuration of a switch fabric according to the fourth exemplary embodiment of the present invention.
FIG. 19 is a block diagram showing a configuration of a programmable memory device according to the fifth embodiment of the present invention.
FIG. 20 is a circuit diagram showing a configuration of a 4: 1 multiplexer according to the fifth embodiment of the present invention.
FIG. 21 is a Carnot diagram illustrating the operation of the 4: 1 multiplexer according to the fifth embodiment of the present invention.
FIG. 22 is a signal waveform diagram showing the operation of the 4: 1 multiplexer according to the fifth embodiment of the present invention.
FIG. 23 is a circuit diagram showing a configuration of a 1: 4 demultiplexer according to the fifth embodiment of the present invention.
FIG. 24 is a signal waveform diagram showing the operation of the 1: 4 demultiplexer according to the fifth embodiment of the present invention.
FIG. 25 is a circuit diagram showing a configuration of a 1: 4 demultiplexer according to the sixth embodiment of the present invention.
FIG. 26 is a circuit diagram showing a configuration of a 1: 4 demultiplexer according to the seventh embodiment of the present invention.
FIG. 27 is a perspective view showing the configuration of the laminated device according to the eighth embodiment of the present invention.
FIG. 28 is a block diagram showing a configuration of a programmable processor device according to the ninth embodiment of the present invention.
FIG. 29 is a block diagram showing a configuration of a related programmable memory device.

100、300 プログラマブルメモリデバイス
110、310、511、610 メモリマクロ
110A 上側メモリマクロ
110B 下側メモリマクロ
111 SRAMマクロ
112 メモリセルアレイ
113 アドレスデコーダ
114 ワード線ドライバ
115 センスアンプ
116 ライトバッファ
117 リードバッファ
118 制御部
119A 上側クロック同期型メモリマクロ
119B 下側クロック同期型メモリマクロ
120、220、320、520 変換部
121、142 2:1マルチプレクサ
122、141、222 1:2デマルチプレクサ
130、130U、130D、130L、130R、230、230U、230D、230L、230R、330、530、630 スイッチファブリック
131 読み出しデータ制御回路
132 書き込みデータ制御回路
140、340、440 メモリ入出力部
150、350 ロジックデバイス
151、351 ロジックマクロ
151A 上側ロジックマクロ
151B 下側ロジックマクロ
310A 左上メモリマクロ
310B 右上メモリマクロ
310C 左下メモリマクロ
310D 右下メモリマクロ
311A 左上クロック同期型メモリマクロ
311B 右上クロック同期型メモリマクロ
311C 左下クロック同期型メモリマクロ
311D 右下クロック同期型メモリマクロ
321 4:1マルチプレクサ
322、323、324 1:4デマルチプレクサ
400 積層デバイス
410 ロジックデバイス基板
420 プログラマブルメモリデバイス基板
430 ロジック入出力部
500 プログラマブルプロセッサデバイス
510 メモリデバイス
540 プロセッサ入出力部
551 プロセッサ
600 関連するプログラマブルメモリデバイス
B1、B2 バッファ
N1、N2 NOTゲート
TR1〜TR8 トランジスタ
FF1〜FF7 フリップフロップ
LH1〜LH3 ハイスルーラッチ
SE1〜SE9、SE1c〜SE5c セレクタ
LG1〜LG9、LG1c〜LG5c 選択論理回路
AD1〜AD4 ANDゲート
100, 300 Programmable memory device 110, 310, 511, 610 Memory macro 110A Upper memory macro 110B Lower memory macro 111 SRAM macro 112 Memory cell array 113 Address decoder 114 Word line driver 115 Sense amplifier 116 Write buffer 117 Read buffer 118 Control unit 119A Upper clock synchronous memory macro 119B Lower clock synchronous memory macro 120, 220, 320, 520 Converter 121, 142 2: 1 multiplexer 122, 141, 222 1: 2 demultiplexer 130, 130U, 130D, 130L, 130R, 230, 230U, 230D, 230L, 230R, 330, 530, 630 Switch fabric 131 Read data control times Path 132 Write data control circuit 140, 340, 440 Memory input / output unit 150, 350 Logic device 151, 351 Logic macro 151A Upper logic macro 151B Lower logic macro 310A Upper left memory macro 310B Upper right memory macro 310C Lower left memory macro 310D Right lower memory Macro 311A Upper left clock synchronous memory macro 311B Upper right clock synchronous memory macro 311C Lower left clock synchronous memory macro 311D Lower right clock synchronous memory macro 321 4: 1 multiplexer 322, 323, 324 1: 4 demultiplexer 400 Stacked device 410 Logic Device substrate 420 Programmable memory device substrate 430 Logic input / output unit 500 Programmable processor device 5 DESCRIPTION OF SYMBOLS 10 Memory device 540 Processor input / output part 551 Processor 600 Related programmable memory device B1, B2 Buffer N1, N2 NOT gate TR1-TR8 Transistor FF1-FF7 Flip-flop LH1-LH3 High through latch SE1-SE9, SE1c-SE5c Selector LG1- LG9, LG1c to LG5c selection logic circuit AD1 to AD4 AND gate

以下に、図面を参照しながら、本発明の実施形態について説明する。
[第1の実施形態]
図1は本発明の第1の実施形態に係る半導体プログラマブルデバイスとしてのプログラマブルメモリデバイス100の構成を示すブロック図である。回路ブロックとしての複数のメモリマクロ110が変換手段としての変換部120を介してスイッチファブリック130に接続される。スイッチファブリック130は2次元アレイ状に配列され、一部のスイッチファブリック130はメモリ入出力部140を介してロジックデバイス150を構成するロジックマクロ151と接続している。本実施形態では、図1に示すようにメモリマクロ110が4×4の2次元アレイ状に16個配列した構成とした。
メモリマクロ110からの読み出しデータ信号は変換部120によりシリアル変換され、スイッチファブリック130に入力される。ここでシリアル変換とは、例えば2個のメモリマクロ110A、110Bから出力されたパラレルのデータ信号の時間幅を、それぞれ半分にした上でシリアル化するものであり、パラレルで転送する場合と同じスループットが得られる。スイッチファブリック130間の転送とスイッチファブリック130からメモリ入出力部140への転送は、シリアル化した信号によって行う。
複数のメモリマクロ110で1個のスイッチファブリック130を共有することによって、プログラマブルメモリデバイス100において必要となるスイッチファブリック130の個数を削減することができる。例えば、図1に示すように、2個のメモリマクロ110A、110Bで1個のスイッチファブリック130を共有する場合、必要なスイッチファブリック130の個数を半減することができる。そのため、スイッチファブリックとスイッチファブリック間を接続する配線によって生じるチップ面積のオーバーヘッドを削減することが可能となる。そして、面積オーバーヘッドの低減によりスイッチファブリック等の配置コストが低減でき、また、限られたチップ面積により多くの配線を確保できるので性能を向上させることできる。以上より、本実施形態によれば低コストで高性能な半導体プログラマブルデバイスを得ることができる。
図2に、メモリマクロ110としてのSRAMマクロ111の回路構成を示す。SRAMマクロ111は、メモリセルアレイ112と、アドレスデコーダ113と、ワード線ドライバ114と、センスアンプ115と、ライトバッファ116と、リードバッファ117と、制御部118とを有する。
アドレスデコーダ113は、メモリセルアレイ112内のメモリセルへデータを読み書きするときに、アクセス対象のデータのアドレスを指定する。ワード線ドライバ114は、メモリセルアレイ112におけるワード線(不図示)を所定のタイミングで駆動する。メモリセルアレイ112の構成については後述する。
センスアンプ115は、メモリセルアレイ112に入力する信号またはメモリセルアレイ112から出力された信号を増幅して伝送する。ライトバッファ116およびリードバッファ117は、メモリセルアレイ112と他の装置との処理速度の相違を調整する。制御部118はSRAMマクロ111の動作を制御する。
メモリセルアレイ112には、例えば、SRAMメモリセルが1kワード16ビット構成で配列されている。このときメモリセルアレイ112のアドレスを指定するための信号(アドレス信号)は、アクセスするメモリマクロ110を特定するための4ビット(メモリマクロアドレス)と、個々のメモリマクロ内のワードアドレスを指定するための10ビットとからなる合計14ビットの信号となる。読み書きの対象とするアドレス信号のうち、4ビットのメモリマクロアドレスが制御部118に予め設定されているメモリマクロアドレスと一致する場合、制御部118の後段にあるすべての回路が活性化される。そして、メモリセルアレイ112に対して書き込み、あるいは読み出し動作が行われる。
図1に示したように、本実施形態のプログラマブルメモリデバイス100は、その周辺に配置されたロジックデバイス150と接続されている。ロジックデバイス150は、複数のロジックマクロ151を有する。これらのロジックマクロ151は、論理回路からなるマクロセルである。これらのロジックマクロ151は、回路に定義された所定の処理を実行する。各ロジックマクロ151とプログラマブルメモリデバイス100は、メモリ入出力部140を介してデータ転送を行う。
本実施形態によるプログラマブルメモリデバイス100は、回路ブロックとしての複数(例えば、4×4の16個)のメモリマクロ110と、変換手段としての複数(例えば、8個)の変換部120と、複数(例えば、8個)のスイッチファブリック130を備える。さらに、複数(例えば、4個)のメモリ入出力部140と、これらを接続する配線とを有する。
メモリマクロ110は、例えば、16ビットの単位で1kワードを記憶できるSRAM(Static Random Access Memory)マクロからなる。2つのメモリマクロ110は1つの変換部120と、1つのスイッチファブリック130とを共有する。メモリマクロ110は、変換部120でシリアル−パラレル変換された信号を入力し、もしくはパラレル−シリアル変換するための信号を出力する。
図1に示すように、1つのスイッチファブリック130を共有する2つのメモリマクロ110のうち、一方を上側メモリマクロ110A、他方を下側メモリマクロ110Bとする。
変換部120は、2つのメモリマクロ110A、110Bから出力されたパラレル信号を、シリアル信号にパラレル−シリアル変換し、変換したシリアル信号をスイッチファブリック130に入力する。また、変換部120は、スイッチファブリック130から出力されたシリアル信号を、パラレル信号にシリアル−パラレル変換し、変換したパラレル信号を、2つのメモリマクロ110A、110Bにそれぞれ入力する。
スイッチファブリック130は2次元メッシュ状の配線により相互に接続されており、変換部120により、パラレル−シリアル変換されたシリアル信号の転送方向を制御する。また、スイッチファブリック130の一部は、メモリ入出力部140に接続され、このメモリ入出力部140にシリアル信号を入出力する。
メモリ入出力部140は、スイッチファブリック130から出力されたシリアル信号を、パラレル信号にシリアル−パラレル変換し、変換したパラレル信号を、それぞれのロジックマクロ151に入力する。また、メモリ入出力部140は、2つのロジックマクロ151から出力されたパラレル信号を、シリアル信号にパラレル−シリアル変換し、変換したシリアル信号を、スイッチファブリック130に入力する。
図3は、本実施形態による変換部120の構成を示す回路図の一例である。同図を参照すると、変換部120は、1個の2:1マルチプレクサ121と、3個の1:2デマルチプレクサ122とを有する。そして、これらの2:1マルチプレクサ121および1:2デマルチプレクサ122には、所定の周期のクロック信号が入力される。
2:1マルチプレクサ121は、上側メモリマクロ110Aから出力された16ビットの読み出しデータ信号と、下側メモリマクロ110Bから出力された16ビットの読み出しデータ信号とをシリアル信号に変換し、スイッチファブリック130に入力する。
1:2デマルチプレクサ122は、スイッチファブリック130から出力されたシリアル信号を、上側メモリマクロ110Aへの16ビットの書き込みデータ信号と、下側メモリマクロ110Bへの16ビットの書き込みデータ信号とからなるパラレル信号に変換する。そして、1:2デマルチプレクサ122は、パラレル信号を上側メモリマクロ110Aおよび下側メモリマクロ110Bに入力する。
また、1:2デマルチプレクサ122は、シリアル方式でスイッチファブリック130から出力された2ビットのコマンド信号と14ビットのアドレス信号を、それぞれパラレル信号に変換する。そして、1:2デマルチプレクサ122は、変換したパラレル信号を上側メモリマクロ110Aおよび下側メモリマクロ110Bに入力する。
次に、図4〜図6を参照して、2:1マルチプレクサ121の構成および動作について説明する。
図4は、2:1マルチプレクサ121の構成を示す回路図である。同図を参照すると、2:1マルチプレクサ121は、NOTゲートN1と、トランジスタTR1、TR2、TR3、およびTR4と、バッファB1とを有する。
そして、NOTゲートN1およびトランジスタTR1のゲート電極には、位相が同一のクロック信号が入力される。また、このクロック信号を反転させた信号がトランジスタTR2のゲート電極に入力される。
上側メモリマクロ110Aから出力された読み出しデータ信号は、トランジスタTR1およびTR2のソース電極に入力される。下側メモリマクロ110Bから出力された読み出しデータ信号は、トランジスタTR3およびTR4のソース電極に入力される。NOTゲートN1は、クロック信号を反転させてトランジスタTR2およびTR3に出力する。ここで、トランジスタTR1、TR2、TR3、およびTR4は、例えば、FET(Field Effect Transistor)である。
トランジスタTR1、TR2、TR3、およびTR4から出力された信号は、バッファB1に入力される。バッファB1は、入力された信号の電圧レベルを調整してスイッチファブリック130へ出力する。
このように回路を構成することにより、クロック信号がハイレベルの場合、トランジスタTR1、TR2がON、トランジスタTR3、TR4がOFFとなる結果、2:1マルチプレクサ121は、上側メモリマクロ110Aからの読み出しデータ信号のみを出力する。クロック信号がローレベルの場合、トランジスタTR1、TR2がOFF、トランジスタTR3、TR4がONとなる結果、2:1マルチプレクサ121は、下側メモリマクロ110Bからの読み出しデータ信号のみを出力する。その結果、メモリマクロ110A、110Bからの読み出しデータ信号がシリアル変換される。このとき、2:1マルチプレクサ121により変換されたシリアル信号の転送速度は、メモリマクロ110からのパラレル信号の転送速度の2倍にしているので、パラレル−シリアル変換によってスループットが低下することはない。
図5は、2:1マルチプレクサ121の動作を示す真理値表である。同図を参照すると、クロック信号Clkがローレベル(0)の場合、上側メモリマクロからの読み出しデータD1の値にかかわりなく、下側メモリマクロからの読み出しデータD2がそのまま信号Qとして出力される。クロック信号Clkがハイレベル(1)の場合、下側メモリマクロからの読み出しデータD2の値にかかわりなく、上側メモリマクロからの読み出しデータD1がそのまま出力される。
図6は、2:1マルチプレクサ121の動作を示す信号波形図である。同図を参照すると、クロック信号Clkがハイレベルの間、2:1マルチプレクサ121は、上側メモリマクロ110Aからの読み出しデータ信号D1をスイッチファブリック130に信号Qとして出力する。そして、クロック信号Clkがローレベルの間、2:1マルチプレクサ121は、下側メモリマクロ110Bからの読み出しデータ信号D2をスイッチファブリック130に信号Qとして出力する。
図6の信号波形から明らかなように、入力されるパラレル形式の読み出しデータ信号がクロックサイクルと同じ時間幅を持っていたのに対し、2:1のマルチプレクサ121によってシリアル変換されたデータ信号はクロックサイクルの半分の時間幅となっている。これによって、パラレル形式で転送する場合と同じスループットが得られる。
次に、図7〜図10を参照して、1:2デマルチプレクサの構成および動作について説明する。
図7Aは、1:2デマルチプレクサ122の構成を示す回路図である。同図を参照すると、1:2デマルチプレクサ122は、ハイスルーラッチLH1と、フリップフロップFF1およびFF2とを有する。ハイスルーラッチLH1と、フリップフロップFF1およびFF2には、位相が同一のクロック信号が入力される。ここでハイスルーラッチ(High−through latch)とは、クロックClkがハイレベル(1)の時にデータDを信号Qとしてそのまま出力し、ロウレベル(0)の時に値を保持するラッチのことをいう。一般的なハイスルーラッチは、図7Bに示すように、クロックClkで開閉される入力部のゲートとそれに続くインバータを使ったループとから構成される。
ハイスルーラッチLH1にはスイッチファブリック130からの信号、例えば、書き込みデータ信号が入力される。ハイスルーラッチLH1から出力された信号は、フリップフロップFF1に入力される。フリップフロップFF1から出力された書き込みデータ信号は、上側メモリマクロ110Aに入力される。一方、フリップフロップFF2にはスイッチファブリック130からの書き込みデータ信号が直接入力される。そして、フリップフロップFF2から出力された信号は、下側メモリマクロ110Bに入力される。
図8は、ハイスルーラッチLH1の動作を示す真理値表である。同図を参照すると、ハイスルーラッチLH1は、クロック信号Clkがハイレベル(1)の場合、入力信号Dをそのまま信号Qとして出力し、その出力値を保持する。クロック信号Clkがローレベル(0)の場合、ハイスルーラッチLH1は保持している値Qを出力する。
図9は、フリップフロップFF1およびFF2の動作を示す真理値表である。同図を参照すると、フリップフロップFF1およびFF2はクロック信号Clkの立ち上がりエッジで、入力信号Dをそのまま信号Qとして出力し、その出力値Qを保持する。そして、クロック信号Clkの立ち下がりエッジで、フリップフロップFF1およびFF2は保持している値Qを出力する。
このように回路を構成することにより、クロック信号Clkがハイレベルの場合、フリップフロップFF1はハイスルーラッチLH1からの出力値を透過的に出力し、クロック信号Clkがローレベルの間、保持値を出力する。クロック信号Clkが立ち上がりエッジになると、フリップフロップFF1およびFF2は入力信号を透過的に出力し、その出力値を保持する。
ハイスルーラッチLH1によりシリアル形式の書き込みデータがラッチされるので、各メモリマクロ110は、書き込むべきデータのみを取り込むことができる。また、1:2デマルチプレクサ122はフリップフロップFF1、FF2で出力信号の値を保持するので、パラレル信号の転送速度は、シリアル−パラレル変換およびパラレル−シリアル変換前の速度に戻り、メモリマクロ110A、110Bにおける信号処理に不都合が生じることはない。
図10は、1:2デマルチプレクサ122の動作を示す信号波形図である。ハイスルーラッチLH1は、クロックがハイレベルの期間に入力したスイッチファブリック130からのシリアル形式の書き込みデータ信号を取り込む。このとき取り込むデータ信号は書き込みデータ信号Dのクロックサイクルの前半分のデータ信号である。ハイスルーラッチLH1は、クロックがハイレベルの期間はそのまま取り込んだデータ信号を出力し、クロックがロウレベルの期間も保持して出力する(ハイスルーラッチ出力LQ)。このハイスルーラッチ出力LQをフリップフロップFF1はクロックの立ち上がりエッジで取り込み、上側メモリマクロ110Aへのパラレル信号AQとして出力する。一方、フリップフロップFF2はクロックがロウレベルの期間に入力された書き込みデータ信号Dをクロックの立ち上がりエッジで取り込み、下側メモリマクロ110Bへのパラレル信号BQとして出力する。図10からわかるように、1:2デマルチプレクサ122によるパラレル変換では、書き込みデータ信号がパラレル−シリアル変換およびシリアル−パラレル変換される前の時間幅に戻される。
図11〜図14を参照して、スイッチファブリック130の構成について説明する。
図11は、スイッチファブリック130の構成を示すブロック図である。同図を参照すると、スイッチファブリック130は、読み出しデータ制御回路131および書き込みデータ制御回路132を有する。
図12は、読み出しデータ制御回路131の構成を示す回路図である。同図を参照すると、読み出しデータ制御回路131は、4つのセレクタSE1、SE2、SE3、およびSE4と、4つの選択論理回路LG1、LG2、LG3、およびLG4とを有する。
セレクタSE1、SE2、SE3、およびSE4には、それぞれ、隣り合う上下左右のスイッチファブリック130U、130D、130L、130Rのうち、自身が出力する方向にあるもの以外の3つのスイッチファブリックから読み出されたデータ信号が入力される。これに、変換部120を経由してメモリマクロ110から読み出されたデータ信号を加えた合計4つのデータ信号がセレクタSEに入力される。セレクタSE1は選択論理回路LG1の制御に従い、4つの入力データ信号のうちいずれかを選択して、上側のスイッチファブリック130Uへ出力する。セレクタSE2、SE3、およびSE4は、選択論理回路LG2、LG3、およびLG4の制御に従い、入力データ信号のうちいずれかを選択する。そして各セレクタは、左側のスイッチファブリック130L、下側のスイッチファブリック130D、および右側のスイッチファブリック130Rへ選択したデータ信号をそれぞれ出力する。
選択論理回路LG1〜LG4は、例えば、以下のようにして入力信号のいずれかを選択する。まず、読み出しを行うメモリマクロ110を特定するアドレスの上位ビットをメモリマクロの2次元アレイにおける横方向番地MXとし、下位ビットをメモリマクロの2次元アレイにおける縦方向番地MYとする。そして、これらの値をスイッチファブリック自身の横方向番地SX、縦方向番地SYと比較して入力信号のいずれかを選択する。
図13は、選択論理回路の動作を示すフローチャートである。この動作は、スイッチファブリック130の読み出しデータ制御回路131に読み出しを行うメモリマクロのアドレスが入力されたときに開始する。同図を参照すると、選択論理回路は読み出しを行うメモリマクロのアドレスを読み出し、その上位ビットをメモリマクロの横方向番地MX、下位ビットをメモリマクロの縦方向番地MYとする(ステップS1)。
選択論理回路は、MXおよびMYと予め定義されたスイッチファブリック自身の横方向番地SXおよび縦方向番地SYと比較し、まず、MXがSXより大きいか否かを判断する(ステップS3)。MXがSXより大きければ(ステップS3:YES)、選択論理回路LG1〜LG3はセレクタSE1〜SE3に右側のスイッチファブリック130Rからの入力信号を選択して出力させる(ステップS5)。
MXがSXより大きくなければ(ステップS3:NO)、MXがSXより小さいか否かを判断する(ステップS7)。MXがSXより小さければ(ステップS7:YES)、選択論理回路LG1、LG3、またはLG4は、セレクタSE1、SE3、またはSE4に、左側のスイッチファブリック130Lからの入力信号を選択して出力させる(ステップS9)。
MXがSXより小さくなければ(ステップS7:NO)、MYがSYより大きいか否かを判断する(ステップS11)。MYがSYより大きければ(ステップS11:YES)、選択論理回路LG2、LG3、またはLG4は、セレクタSE2、SE3、またはSE4に、上側のスイッチファブリック130Uからの入力信号を選択して出力させる(ステップS13)。
MYがSYより大きくなければ(ステップS11:NO)、MYがSYより小さいか否かを判断する(ステップS15)。MYがSYより小さければ(ステップS15:YES)、選択論理回路LG1、LG2、またはLG4は、セレクタSE1、SE2、またはSE4に、下側のスイッチファブリック130Dからの入力信号を選択して出力させる(ステップS17)。
MYがSYより小さくなければ(ステップS15:NO)、選択論理回路LG1〜LG4は、セレクタSE1〜SE4に、変換部120を経由したメモリマクロ110からの入力信号を選択して出力させる(ステップS19)。
ステップS5、S9、S13、S17、またはS19の後、選択論理回路LG1〜LG4は、動作を終了する。
図14は、書き込みデータ制御回路132の構成を示す回路図である。同図を参照すると、書き込みデータ制御回路132は、5つのセレクタSE5、SE6、SE7、SE8、およびSE9と、5つの選択論理回路LG5、LG6、LG7、LG8、およびLG9とを有する。
セレクタSE5、SE6、SE7、およびSE8には、それぞれ、隣り合う上下左右のスイッチファブリック130U、130D、130L、130Rのうち、自身が出力する方向のもの以外の3つのスイッチファブリックからのデータ信号が入力される。メモリマクロ110に出力するセレクタSE9には、隣り合う上下左右のスイッチファブリック130U、130D、130L、130Rからのデータ信号が入力される。
セレクタSE5、SE6、SE7、およびSE8は、それぞれ選択論理回路LG5、LG6、LG7、およびLG8の制御に従い、出力方向からの入力信号を除いた3つの入力信号のうちいずれかを選択して、それぞれ、上側、左側、下側、および右側のスイッチファブリック130へ選択した信号を出力する。セレクタSE9は選択論理回路LG9の制御に従い、上下左右のスイッチファブリック130からの4つの入力データ信号のうちいずれかを選択し、変換部120を経由してメモリマクロ110に選択したデータ信号を出力する。
図15は、メモリ入出力部140の構成を示す回路図である。同図を参照すると、メモリ入出力部140は、1個の1:2デマルチプレクサ141と、3個の2:1マルチプレクサ142とを有する。そして、これらの1:2デマルチプレクサ141および2:1マルチプレクサ142には、位相が同一のクロック信号が入力される。
1:2デマルチプレクサ141はスイッチファブリック130から出力されたシリアル信号である読み出しデータ信号を、上側ロジックマクロ151Aと下側ロジックマクロ151Bへの2系統からなる16ビットの読み出しデータ信号にパラレル変換する。1:2デマルチプレクサ141はパラレル変換した読み出しデータ信号を上側ロジックマクロ151Aおよび下側ロジックマクロ151Bに入力する。
上側ロジックマクロ151Aから出力された16ビットの書き込みデータ信号と、下側ロジックマクロ151Bから出力された16ビットの書き込みデータ信号とが、2:1マルチプレクサ142によってシリアル変換される。このシリアル化された書き込みデータ信号がスイッチファブリック130に入力され、メモリマクロ110に転送される。
また、上側ロジックマクロ151Aから出力された14ビットのアドレス信号と、下側ロジックマクロ151Bから出力された14ビットのアドレス信号とが、2:1マルチプレクサ142によってシリアル変換され、スイッチファブリック130に入力される。
同様に、上側ロジックマクロ151Aから出力された2ビットのコマンド信号と、下側ロジックマクロ151Bから出力された2ビットのコマンド信号とが、2:1マルチプレクサ142によってシリアル変換され、スイッチファブリック130に入力される。
ここで、1:2デマルチプレクサ141の構成は、図7に示した1:2デマルチプレクサ122の構成と同様である。2:1マルチプレクサ142の構成は、図4に示した2:1マルチプレクサ121の構成と同様である。
なお、本実施形態ではメモリマクロ110は、1kワード、16ビットのSRAMマクロとしたが、任意のワード、ビット構成のものであってよい。
本実施形態では、メモリマクロ110内のメモリはSRAMマクロとしたが、これをDRAM(Dynamic Random Access Memory)としてもよい。DRAMとすれば、DRAMは回路面積が小さいために、より大容量のメモリを搭載できる。また、メモリマクロのメモリは、フラッシュメモリやMRAM(Magnetic RAM)やReRAM(Resistance Random Access Memory)といった不揮発性メモリとしてもよい。不揮発性メモリを用いることで、一時的に使われないメモリ領域の電源を止めて省電力モードとすることが可能である。
本実施形態では、メモリマクロを4×4の2次元アレイ状に配置したが、アレイサイズは他の構成であってもよい。
本実施形態では、メモリ入出力部140が、読み出しデータ(シリアル信号)のパラレル変換と、書き込みデータ(パラレル信号)のシリアル変換を行う構成としているが、これらの変換をロジックマクロ151が行う構成としてもよい。
本実施形態では、2:1マルチプレクサ121が、トランジスタ(TR1、TR2、TR3、およびTR4)や論理ゲート(N1、B1)を使用して、パラレル信号のシリアル変換を行う構成とした。しかし、2:1マルチプレクサ121は、これらの部品または回路を用いる構成に限られない。図6のタイミングチャートで示したように、スループットを低下させないように、メモリマクロから出力された信号を時分割でシリアル信号に多重化し、複数倍の速度で転送する機能が実現できれば、他の回路または部品を使用してシリアル変換を行ってもよい。
本実施形態では、1:2デマルチプレクサ122が、ハイスルーラッチ(LH1)やフリップフロップ(FF1、FF2)を使用して、シリアル信号のパラレル変換を行う構成としているが、1:2デマルチプレクサ122は、これらの部品または回路を使用する構成に限られない。図10のタイミングチャートで示したように、パラレル変換において、パラレル信号を出力する周期を、シリアル変換前の周期に戻すことができるのであれば、他の部品または回路を使用してパラレル変換してもよい。
本実施形態では、2個のメモリマクロ110A、110Bが1個のスイッチファブリック130を共有する構成としているが、2個より多くの複数のメモリマクロ(回路ブロック)が1個のスイッチファブリックを共有する構成としてもよい。
以上説明したように、本実施形態によれば、メモリマクロのような複数の回路ブロックが入出力する信号をシリアル信号に変換して、このシリアル信号をスイッチファブリックが転送するので、複数の回路ブロックで1個のスイッチファブリックを共有できる。その結果、スイッチファブリックおよびスイッチファブリック周辺の配線による面積オーバーヘッドを小さくできる。そして、面積オーバーヘッドの低減により、スイッチファブリック等の配置コストが低減する。また、限られたチップ面積により多くの配線を確保できるので、プログラマブルデバイスの性能を向上できる。
例えば、本実施形態のプログラマブルメモリデバイス100の場合、2個のメモリマクロ110A、110Bで1個のスイッチファブリック130を共有している。そのため、メモリマクロごとにスイッチファブリックを設ける場合と比較して、スイッチファブリックの数は、半分で済み、スイッチファブリック間の水平、垂直方向の2次元メッシュ状の配線数も半減する。以上より、これらの面積オーバーヘッドが非常に小さくなる。
変換部120は、パラレル−シリアル変換において、複数のメモリマクロ110から出力された信号を、その転送速度の倍の速度で、スイッチファブリック130に転送する。そのため、パラレル−シリアル変換によっても、プログラマブルメモリデバイス100のスループットが低下することはない。
変換部120は、シリアル−パラレル変換において、スイッチファブリック130から出力されたシリアル信号の転送速度を、変換前の速度に戻して複数のメモリマクロ110にそれぞれ入力するので、メモリマクロでの信号処理に支障をきたすことはない。
変換部120は1:2デマルチプレクサ122を有し、1:2デマルチプレクサ122はスイッチファブリック130から出力された所定の時点の信号を保持するハイスルーラッチLH1と、フリップフロップFF1およびFF2とを有する。フリップフロップFF1およびFF2は、スイッチファブリック130から出力された信号とハイスルーラッチLH1で保持された信号とを互いに同じ時点で格納し、格納した各信号をメモリマクロ110A、110Bのそれぞれに入力する。これより、極めて簡易な構成でシリアル−パラレル変換を実現できる。
[第2の実施形態]
次に、本発明の第2の実施形態について説明する。図16は、本実施形態のプログラマブルメモリデバイスが有する変換部が備える1:2デマルチプレクサ222の構成を示す回路図である。同図を参照すると、本実施形態のプログラマブルメモリデバイスは、変換部およびメモリマクロの構成が異なる点で第1の実施形態のプログラマブルメモリデバイスと相違する。
本実施形態の1:2デマルチプレクサ222は、シリアル信号をパラレル信号に変換する回路において、フリップフロップFF1およびFF2を有さず、ハイスルーラッチLH1のみを有する。ハイスルーラッチLH1は、クロック信号がローレベルの間、スイッチファブリックからの信号をラッチする。また本実施形態の1:2デマルチプレクサ222は、クロック入力端子を備えたメモリマクロであるクロック同期型メモリマクロを有する。図16の上側クロック同期型メモリマクロ119Aは、ハイスルーラッチLH1から出力された信号をクロック信号に同期して取り込む。図16の下側クロック同期型メモリマクロ119Bは、スイッチファブリック130から出力された信号をクロック信号に同期して取り込む。
以上説明したように本実施形態によれば、変換部は、スイッチファブリックから出力された所定の時点の信号をハイスルーラッチLH1により保持する。そして、同期型メモリマクロ119A、119Bがスイッチファブリック130から出力された信号またはハイスルーラッチLH1が保持した信号を互いに同じ時点で格納する。そのため、フリップフロップが不要となり、より簡易な構成でシリアル信号をパラレル信号に変換でき、製造コストが低減する。
[第3の実施形態]
次に、本発明の第3の実施形態について説明する。図17は、本実施形態のプログラマブルメモリデバイスが有する変換部220の構成を示す回路図である。同図を参照すると、本実施形態のプログラマブルメモリデバイスは、変換部およびメモリマクロの構成が異なる以外は、第1の実施形態のプログラマブルメモリデバイス100と同様の構成である。
本実施形態の変換部220は、シリアル信号をパラレル信号に変換する回路において、フリップフロップFF1、FF2、およびハイスルーラッチLH1の代わりに、NOTゲートN2を有する。NOTゲートN2は、クロック信号を反転して下側クロック同期型メモリマクロ119Bに出力する。また、スイッチファブリック130から出力された書き込みデータ信号を分岐し、上側クロック同期型メモリマクロ119Aおよび下側クロック同期型メモリマクロ119Bに入力する。
各クロック同期型メモリマクロ119A、119Bは互いに逆位相のクロック信号に同期して書き込みデータ信号を取り込むので、それぞれに書き込むべきデータ信号のみを取り出すことができる。
以上説明したように、本実施形態によれば、変換部220が互いに逆位相のクロック信号をメモリマクロ119A、119Bに出力し、各メモリマクロ119A、119Bは、これらのクロック信号に同期して信号を取り込む。よって、フリップフロップ回路やハイスルーラッチ回路が不要となる。そのため、より簡易な構成でシリアル信号をパラレル信号に変換できるので、製造コストが低減する。
[第4の実施形態]
次に、本発明の第4の実施形態について説明する。図18は、本実施形態のスイッチファブリック230の構成を示す回路図である。同図を参照すると、本実施形態のスイッチファブリック230は、読み出しデータ信号を制御する機能と、書き込みデータ信号を制御する機能とをともに有する1つの回路を実装する点で、第1の実施形態と異なる。
図18を参照すると、スイッチファブリック230は、第1の実施形態における読み出しデータ制御回路131および書き込みデータ制御回路132の代わりに、セレクタSE1c、SE2c、SE3c、SE4c、およびSE5cと、選択論理回路LG1c、LG2c、LG3c、LG4c、およびLG5cと、を有する。
すなわち、スイッチファブリックでの書き込みデータと読み出しデータとは入力方向あるいは出力方向が異なる。そのため、同一のメモリマクロで同時にメモリ読み出しとメモリ書き込みの動作を行わない場合には、接続方向を制御する、読み出しデータ制御回路および書き込みデータ制御回路を一つの回路で兼用することが可能である。
セレクタSE1c、SE2c、SE3c、およびSE4cには、それぞれ、出力方向を除き、隣接する3つのスイッチファブリックからの読み出しデータ信号および書き込みデータ信号と、メモリブロック110からのデータ信号とが入力される。セレクタSE1c、SE2c、SE3c、およびSE4cは、選択論理回路LG1c、LG2c、LG3c、LG4c、およびLG5cの制御に従って、4つの入力信号のうち、いずれか1つを選択してスイッチファブリックに出力する。
セレクタSE5cには、隣接する4つのスイッチファブリック230U、230D、230L、230Rからの読み出しデータ信号または書き込みデータ信号が入力される。セレクタSE5cは、選択論理回路LG5cの制御に従って、4つの入力信号のうち、いずれか1つを選択して変換部120に出力する。
以上説明したように、本実施形態によれば、書き込みデータ信号制御用の処理と、読み込みデータ信号制御用の処理とを一の回路で兼用できる。そのため、スイッチファブリックの部品点数を少なくし、あるいはスイッチファブリックの回路の規模を小さくすることができる。
[第5の実施形態]
次に、本発明の第5の実施形態について説明する。図19は、本実施形態のプログラマブルメモリデバイス300の構成を示すブロック図である。同図を参照すると、本実施形態のプログラマブルメモリデバイス300は、4個のメモリマクロ310で1個のスイッチファブリック330を共有する点で、第1の実施形態によるプログラマブルメモリデバイス100と異なる。ここで、1個のスイッチファブリック330を共有する4つのメモリマクロを、それぞれ左上メモリマクロ310A、右上メモリマクロ310B、左下メモリマクロ310C、右下メモリマクロ310Dとする。
図19を参照すると、プログラマブルメモリデバイス300は、変換部120の代わりに変換部320を有し、メモリ入出力部140の代わりにメモリ入出力部340を有する以外は、第1の実施形態のプログラマブルメモリデバイス100と同様の構成である。すなわち、スイッチファブリック330は2次元アレイ状に配列され、一部のスイッチファブリック330はメモリ入出力部340を介してロジックデバイス350を構成するロジックマクロ351と接続している。本実施形態においても、図19に示すようにメモリマクロ310が4×4の2次元アレイ状に16個配列した構成とした。
変換部320は、第1の実施形態で用いた2:1マルチプレクサ及び1:2デマルチプレクサの代わりに、1個の4:1マルチプレクサ321と、3個の1:4デマルチプレクサ322とを有する。
図20は、本実施形態の4:1マルチプレクサ321の構成を示す回路図である。同図を参照すると、4:1マルチプレクサ321は、ANDゲートAD1、AD2、AD3、およびAD4と、トランジスタTR5、TR6、TR7、およびTR8と、バッファB2とを有する。
ANDゲートAD1には、クロック信号と、そのクロック信号の位相を90度進めたクロック信号(以下、「90°シフトクロック信号」という)を反転した信号とが入力される。ANDゲートAD2には、クロック信号と、90°シフトクロック信号とが入力される。ANDゲートAD3には、クロック信号を反転した信号と、90°シフトクロック信号とが入力される。ANDゲートAD4には、クロック信号を反転した信号と、90°シフトクロック信号を反転した信号とが入力される。
ANDゲートAD1、AD2、AD3、およびAD4は、入力信号の論理積を、それぞれトランジスタTR5、TR6、TR7、およびTR8のゲート電極へ出力する。
トランジスタTR5のソース電極には、左上メモリマクロ310Aからの読み出しデータが入力される。トランジスタTR6のソース電極には、右上のメモリマクロ310Bからの読み出しデータが入力される。トランジスタTR7のソース電極には、左下のメモリマクロ310Cからの読み出しデータが入力される。トランジスタTR8のソース電極には、右下メモリマクロ310Dからの読み出しデータが入力される。
トランジスタTR5、TR6、TR7、およびTR8は、ゲート電極に入力された信号がハイレベルのとき、ソース電極に入力された信号をバッファB1に出力する。
バッファB2は、入力信号の電圧レベルを調整してスイッチファブリック330に出力する。
図21は、4:1マルチプレクサ321の動作を示すカルノー図である。同図を参照すると、クロック信号Clk1がハイレベル(1)、かつ90°シフトクロック信号Clk2がローレベル(0)の場合、トランジスタTR5のみがONとなる。このため、4:1マルチプレクサ321は、左上メモリマクロ310Aからの読み出しデータ(UL)を、スイッチファブリック330に出力する。
クロック信号Clk1、90°シフトクロック信号Clk2がともにハイレベル(1)の場合、トランジスタTR6のみがONとなる。このため、4:1マルチプレクサ321は、右上のメモリマクロ310Bからの読み出しデータ(UR)を、スイッチファブリック330に出力する。
クロック信号Clk1がローレベル(0)、かつ90°シフトクロック信号Clk2がハイレベル(1)の場合、トランジスタTR7のみがONとなる。このため、4:1マルチプレクサ321は、左下のメモリマクロ310Cからの読み出しデータ(LL)を、スイッチファブリック330に出力する。
クロック信号Clk1、90°シフトクロック信号Clk2がともにローレベル(0)の場合、トランジスタTR8のみがONとなる。このため、4:1マルチプレクサ321は、右下メモリマクロ310Dからの読み出しデータ(LR)を、スイッチファブリック330に出力する。
図22は、4:1マルチプレクサ321の動作を示す信号波形図である。同図を参照すると、クロック信号Clk1がハイレベル、かつ90°シフトクロック信号Clk2がローレベルの場合、4:1マルチプレクサ321は左上メモリマクロ310Aからの読み出しデータULをスイッチファブリック330に信号Qとして出力する。
クロック信号Clk1、90°シフトクロック信号Clk2がともにハイレベルの場合、4:1マルチプレクサ321は右上メモリマクロ310Bからの読み出しデータURをスイッチファブリック330に信号Qとして出力する。
クロック信号Clk1がローレベル、かつ90°シフトクロック信号Clk2がハイレベルの場合、4:1マルチプレクサ321は左下メモリマクロ310Cからの読み出しデータLLをスイッチファブリック330に信号Qとして出力する。
クロック信号Clk1、90°シフトクロック信号Clk2がともにローレベルの場合、4:1マルチプレクサ321は右下メモリマクロ310Dからの読み出しデータをスイッチファブリック330に信号Qとして出力する。
このように、4:1マルチプレクサ321は読み出しデータ信号をシリアル変換する際に、シリアル信号の転送速度を変換前の4倍の速度にしているので、シリアル変換によりスループットが低下することはない。
図23は、本実施形態の1:4デマルチプレクサ322の構成を示す回路図である。同図を参照すると、1:4デマルチプレクサ322はハイスルーラッチLH2およびLH3とフリップフロップFF3、FF4、FF5、FF6、およびFF7とを有する。
フリップフロップFF3およびFF7と、ハイスルーラッチLH2およびLH3とにスイッチファブリック330からの書き込みデータ信号が入力される。
フリップフロップFF3は90°シフトクロック信号Clk2が立ち上がりエッジのとき、入力信号をフリップフロップFF4に透過的に出力し、90°シフトクロック信号Clk2が立ち下がりエッジのとき保持値を出力する。フリップフロップFF4はクロック信号Clk1が立ち上がりエッジのとき、書き込みデータ信号を左上メモリマクロ310Aに透過的に出力し、その出力を所定時間保持する。
ハイスルーラッチLH2はクロック信号Clk1がハイレベルの場合、入力信号をフリップフロップFF5に透過的に出力し、クロック信号Clk1がローレベルの場合、保持値を出力する。フリップフロップFF5は、クロック信号Clk1が立ち上がりエッジになると、書き込みデータ信号を右上メモリマクロ310Bに透過的に出力し、その出力を所定時間保持する。
ハイスルーラッチLH3は90°シフトクロック信号Clk2がハイレベルの場合、書き込みデータ信号をフリップフロップFF6に透過的に出力し、90°シフトクロック信号Clk2がローレベルの場合、保持値を出力する。フリップフロップFF6は、クロック信号Clk1が立ち上がりエッジになると、書き込みデータ信号を左下メモリマクロ310Cに透過的に出力し、クロック信号Clk1が立ち下がりエッジになると、保持値を出力する。
フリップフロップFF7はクロック信号Clk1が立ち上がりエッジになると、書き込みデータ信号を右下メモリマクロ310Dに透過的に出力し、その出力を所定時間保持する。
このように、位相を90度ずらしたクロック信号Clk2にそれぞれ同期したハイスルーラッチLH2、LH3で入力信号をラッチするので、各メモリマクロ310はスイッチファブリック330から出力されたシリアル信号から書き込むべきデータ信号のみを取り込むことができる。
1:4デマルチプレクサ322はフリップフロップ(FF4、FF5、FF6、およびFF7)で出力値を保持するので、スイッチファブリック330からのシリアル信号の転送速度を変換前の速度に戻すことができる。
図24は、1:4デマルチプレクサ322の動作を示す信号波形図である。同図を参照すると、1:4デマルチプレクサ322は、フリップフロップFF3の90°シフトクロック信号Clk2による出力FFQを、クロック信号Clk1に同期させて左上メモリマクロ310Aへの書き込みデータAQとして出力する。また、ハイスルーラッチLH2のクロック信号Clk1による出力LHQ1を、クロック信号Clk1に同期させて右上メモリマクロ310Bへの書き込みデータBQとして出力する。また、ハイスルーラッチLH3の90°シフトクロック信号Clk2による出力LHQ2を、クロック信号Clk1に同期させて左下メモリマクロ310Cへの書き込みデータCQとして出力する。また、スイッチファブリック330から出力された書き込みデータDを、クロック信号Clk1に同期させて右下メモリマクロ310Dへの書き込みデータDQとして出力する。
以上説明したように、本実施形態によれば、4個のメモリマクロ310が1個のスイッチファブリック330を共有できるので、スイッチファブリックおよび配線の面積オーバーヘッドが更に低減する。
[第6の実施形態]
次に、本発明の第6の実施形態について説明する。図25は、本実施形態のプログラマブルメモリデバイスが有する変換部が備える1:4デマルチプレクサ323の構成を示す回路図である。同図を参照すると、本実施形態のプログラマブルメモリデバイスは、変換部およびメモリマクロの構成が異なる点で第5の実施形態のプログラマブルメモリデバイスと相違する。
本実施形態の1:4デマルチプレクサ323は、シリアル信号をパラレル信号に変換する回路において、フリップフロップFF4、FF5、FF6、およびFF7を有さず、フリップフロップFF3と、ハイスルーラッチLH2およびLH3とのみを有する。また本実施形態の1:4デマルチプレクサ323は、クロック入力端子を備えたメモリマクロであるクロック同期型メモリマクロを有する。図25の左上クロック同期型メモリマクロ311A、右上クロック同期型メモリマクロ311B、左下クロック同期型メモリマクロ311C、および右下クロック同期型メモリマクロ311Dは、クロック信号Clk1に同期して1:4デマルチプレクサ323から出力された信号を取り込む。
このように回路を構成することにより、各メモリマクロは、書き込むべきデータのみを取り込むことができる。
以上説明したように本実施形態によれば、変換部がスイッチファブリック330から出力された所定の時点の信号をハイスルーラッチLH2、LH3により保持する。そして、メモリマクロ311A、311B、311C、311Dがスイッチファブリック330から出力されたデータ信号、フリップフロップFF3およびハイスルーラッチLH2、LH3が出力するデータ信号を互いに同じ時点で格納する。そのため、データ出力を制御するフリップフロップFF4〜FF7が不要となり、より簡易な構成でシリアル信号をパラレル信号に変換できるので、製造コストが低減する。
[第7の実施形態]
次に、本発明の第7の実施形態について説明する。図26は、本実施形態のプログラマブルメモリデバイスが有する変換部が備える1:4デマルチプレクサ324の構成を示す回路図である。同図を参照すると、本実施形態のプログラマブルメモリデバイスは、変換部およびメモリマクロの構成が異なる以外は、第6の実施形態のプログラマブルメモリデバイスと同様の構成である。
本実施形態の1:4デマルチプレクサ324は、フリップフロップ(FF4、FF5、FF6、FF7、およびFF8)およびハイスルーラッチ(LH2、LH3)を有さず、スイッチファブリック330からの書き込みデータを分岐して、各クロック同期型メモリマクロへ出力する。また、1:4デマルチプレクサ324は、所定のクロック信号Clk1を左上クロック同期型メモリマクロ311Aに出力する。さらに1:4デマルチプレクサ324は、クロック信号Clk1と90度、180度、270度位相が異なるクロック信号とを、右上クロック同期型メモリマクロ311B、左下クロック同期型メモリマクロ311C、および右下クロック同期型メモリマクロ311Dへそれぞれ出力する。
本実施形態の左上クロック同期型メモリマクロ311Aはクロック信号Clk1に同期して1:4デマルチプレクサ324により入力された信号を取り込む。本実施形態の右上クロック同期型メモリマクロ311Bはクロック信号Clk1と比較して90度位相が異なるクロック信号にそれぞれ同期して、1:4デマルチプレクサ324により入力された信号を取り込む。さらに、左下クロック同期型メモリマクロ311Cおよび右下クロック同期型メモリマクロ311Dは、クロック信号Clk1と比較して180度、270度位相が異なるクロック信号にそれぞれ同期して、1:4デマルチプレクサ324により入力された信号を取り込む。
各クロック同期型メモリマクロは、互いに位相が異なるクロック信号に同期して信号を取り込むので、それぞれに書き込むべきデータのみを取り出すことができる。
以上説明したように、本実施形態によれば、変換部を構成する1:4デマルチプレクサ324が互いに位相が異なるクロック信号をクロック同期型メモリマクロ311A、311B、311C、311Dに出力する。そして、各クロック同期型メモリマクロは、これらのクロック信号に同期して信号を取り込む。そのため、フリップフロップおよびハイスルーラッチが不要となり、より簡易な構成でシリアル信号をパラレル信号に変換でき、製造コストが低減する。
[第8の実施形態]
次に、本発明の第8の実施形態について説明する。図27は、本実施形態の積層デバイス400の構成を示す斜視図である。同図を参照すると、ロジックデバイスが配置されたロジックデバイス基板410に、プログラマブルメモリデバイスが配置されたプログラマブルメモリデバイス基板420が積層されている点で第1の実施形態と異なる。ロジックデバイス基板410はメモリ入出力部440と重なるロジック入出力部430を有し、これらの入出力部間でデータが送受信される。
第1の実施形態で示したように、プログラマブルメモリデバイス100とロジックデバイス150を同一基板上に集積する場合には、メモリ入出力部140はプログラマブルメモリデバイス100の周囲に配置することとした。しかし、本実施形態では、プログラマブルメモリデバイスとロジックデバイスを別々の基板に配置し、それらの基板を積層することとしているので、メモリ入出力部をプログラマブルメモリデバイスの周囲だけでなく内部にも配置することが可能となる。
以上説明したように、本実施形態によれば、ロジックデバイス基板410にプログラマブルメモリデバイス基板420を積層させるので、メモリ入出力部440をプログラマブルメモリデバイス基板420の内部にも配置することができる。そのため、基板間のデータ転送量を大きくすることができる。
[第9の実施形態]
次に、本発明の第9の実施形態について説明する。図28は、本実施形態のプログラマブルプロセッサデバイス500の構成を示すブロック図である。同図を参照すると、本実施形態のプログラマブルプロセッサデバイス500は、メモリマクロの代わりにプロセッサ551を回路ブロックとして有する点で、第1の実施形態と異なる。
図28を参照すると、本実施形態のプロセッサ551は、メモリマクロの代わりに4×4の2次元アレイ状に配置されたRISC(Reduced Introduction Set Computer)型のプロセッサ551を有する。プログラマブルプロセッサデバイス500の周囲には、メモリマクロ511からなるメモリデバイス510が配置されている。
プロセッサ551からプロセッサ入出力部540まで、あるいはプロセッサ入出力部540からプロセッサ551までデータ信号を転送するための2次元メッシュ状の配線が形成される。配線の交差部分には配線の上下左右の信号転送方向を制御するためのスイッチファブリック530が配置されている。スイッチファブリック530を上下2つのプロセッサ551で共有し、プロセッサ551からのデータ信号を変換部520が備える2:1マルチプレクサでシリアル変換する。本実施形態では、4×4の16個のプロセッサ551に対して、2×4の8個のスイッチファブリック530が配置される。すなわち、すべてのプロセッサごとにスイッチファブリックを配置する場合と比べ、スイッチファブリック530の個数は半減する。また、スイッチファブリック530間を接続する2次元メッシュ配線については、水平方向の配線数が半減する。
以上説明したように、本実施形態によれば、プログラマブルプロセッサデバイスにおけるスイッチファブリックおよび配線の面積オーバーヘッドを低減することができる。
本発明は上記実施形態に限定されることなく、特許請求の範囲に記載した発明の範囲内で、種々の変形が可能であり、それらも本発明の範囲内に含まれるものであることはいうまでもない。
この出願は、2008年9月16日に出願された日本出願特願2008−236783を基礎とする優先権を主張し、その開示の全てをここに取り込む。
Embodiments of the present invention will be described below with reference to the drawings.
[First Embodiment]
FIG. 1 is a block diagram showing a configuration of a programmable memory device 100 as a semiconductor programmable device according to the first embodiment of the present invention. A plurality of memory macros 110 as circuit blocks are connected to the switch fabric 130 via a conversion unit 120 as conversion means. The switch fabrics 130 are arranged in a two-dimensional array, and some of the switch fabrics 130 are connected to the logic macro 151 that constitutes the logic device 150 via the memory input / output unit 140. In the present embodiment, as shown in FIG. 1, 16 memory macros 110 are arranged in a 4 × 4 two-dimensional array.
A read data signal from the memory macro 110 is serially converted by the conversion unit 120 and input to the switch fabric 130. Here, serial conversion is, for example, serializing after halving the time widths of parallel data signals output from two memory macros 110A and 110B, and the same throughput as when transferring in parallel. Is obtained. Transfer between the switch fabrics 130 and transfer from the switch fabric 130 to the memory input / output unit 140 are performed by serialized signals.
By sharing one switch fabric 130 among a plurality of memory macros 110, the number of switch fabrics 130 required in the programmable memory device 100 can be reduced. For example, as shown in FIG. 1, when two memory macros 110A and 110B share one switch fabric 130, the number of necessary switch fabrics 130 can be halved. Therefore, it is possible to reduce the chip area overhead caused by the wiring connecting the switch fabric. In addition, the placement overhead of the switch fabric and the like can be reduced by reducing the area overhead, and more wiring can be secured with a limited chip area, so that the performance can be improved. As described above, according to this embodiment, a low-cost and high-performance semiconductor programmable device can be obtained.
FIG. 2 shows a circuit configuration of the SRAM macro 111 as the memory macro 110. The SRAM macro 111 includes a memory cell array 112, an address decoder 113, a word line driver 114, a sense amplifier 115, a write buffer 116, a read buffer 117, and a control unit 118.
The address decoder 113 designates the address of data to be accessed when reading / writing data from / to the memory cells in the memory cell array 112. The word line driver 114 drives word lines (not shown) in the memory cell array 112 at a predetermined timing. The configuration of the memory cell array 112 will be described later.
The sense amplifier 115 amplifies and transmits a signal input to the memory cell array 112 or a signal output from the memory cell array 112. The write buffer 116 and the read buffer 117 adjust the difference in processing speed between the memory cell array 112 and other devices. The control unit 118 controls the operation of the SRAM macro 111.
In the memory cell array 112, for example, SRAM memory cells are arranged in a 1k word 16-bit configuration. At this time, the signal (address signal) for designating the address of the memory cell array 112 is 4 bits (memory macro address) for specifying the memory macro 110 to be accessed and the word address in each memory macro. A total of 14 bits of 10 bits. When the 4-bit memory macro address in the address signal to be read / written matches the memory macro address preset in the control unit 118, all circuits in the subsequent stage of the control unit 118 are activated. Then, a write or read operation is performed on the memory cell array 112.
As shown in FIG. 1, the programmable memory device 100 of this embodiment is connected to a logic device 150 arranged in the periphery thereof. The logic device 150 has a plurality of logic macros 151. These logic macros 151 are macrocells composed of logic circuits. These logic macros 151 execute predetermined processing defined in the circuit. Each logic macro 151 and the programmable memory device 100 perform data transfer via the memory input / output unit 140.
The programmable memory device 100 according to the present embodiment includes a plurality of (for example, 4 × 4 16) memory macros 110 as circuit blocks, a plurality of (for example, eight) conversion units 120 as conversion means, and a plurality of (for example, eight). For example, eight switch fabrics 130 are provided. Furthermore, it has a plurality (for example, four) of memory input / output units 140 and wirings connecting them.
The memory macro 110 is, for example, an SRAM (Static Random Access Memory) macro that can store 1k words in a unit of 16 bits. The two memory macros 110 share one conversion unit 120 and one switch fabric 130. The memory macro 110 inputs the signal serial-parallel converted by the converter 120 or outputs a signal for parallel-serial conversion.
As shown in FIG. 1, one of the two memory macros 110 sharing one switch fabric 130 is an upper memory macro 110A and the other is a lower memory macro 110B.
The conversion unit 120 performs parallel-serial conversion of the parallel signals output from the two memory macros 110 </ b> A and 110 </ b> B into serial signals, and inputs the converted serial signals to the switch fabric 130. The conversion unit 120 serial-parallel converts the serial signal output from the switch fabric 130 into a parallel signal, and inputs the converted parallel signal to the two memory macros 110A and 110B, respectively.
The switch fabrics 130 are connected to each other by a two-dimensional mesh wiring, and the conversion unit 120 controls the transfer direction of the serial signal that has been subjected to parallel-serial conversion. A part of the switch fabric 130 is connected to the memory input / output unit 140 and inputs / outputs serial signals to / from the memory input / output unit 140.
The memory input / output unit 140 serial-parallel converts the serial signal output from the switch fabric 130 into a parallel signal, and inputs the converted parallel signal to each logic macro 151. Further, the memory input / output unit 140 performs parallel-serial conversion on the parallel signals output from the two logic macros 151 into serial signals, and inputs the converted serial signals to the switch fabric 130.
FIG. 3 is an example of a circuit diagram illustrating a configuration of the conversion unit 120 according to the present embodiment. Referring to the figure, the conversion unit 120 has one 2: 1 multiplexer 121 and three 1: 2 demultiplexers 122. The 2: 1 multiplexer 121 and the 1: 2 demultiplexer 122 receive a clock signal having a predetermined period.
The 2: 1 multiplexer 121 converts the 16-bit read data signal output from the upper memory macro 110 </ b> A and the 16-bit read data signal output from the lower memory macro 110 </ b> B into a serial signal and supplies the serial signal to the switch fabric 130. input.
The 1: 2 demultiplexer 122 converts the serial signal output from the switch fabric 130 into a parallel consisting of a 16-bit write data signal to the upper memory macro 110A and a 16-bit write data signal to the lower memory macro 110B. Convert to signal. Then, the 1: 2 demultiplexer 122 inputs the parallel signal to the upper memory macro 110A and the lower memory macro 110B.
The 1: 2 demultiplexer 122 converts the 2-bit command signal and the 14-bit address signal output from the switch fabric 130 in a serial manner into parallel signals, respectively. Then, the 1: 2 demultiplexer 122 inputs the converted parallel signal to the upper memory macro 110A and the lower memory macro 110B.
Next, the configuration and operation of the 2: 1 multiplexer 121 will be described with reference to FIGS.
FIG. 4 is a circuit diagram showing a configuration of the 2: 1 multiplexer 121. Referring to the figure, the 2: 1 multiplexer 121 includes a NOT gate N1, transistors TR1, TR2, TR3, and TR4, and a buffer B1.
Then, clock signals having the same phase are input to the NOT gate N1 and the gate electrode of the transistor TR1. A signal obtained by inverting the clock signal is input to the gate electrode of the transistor TR2.
The read data signal output from the upper memory macro 110A is input to the source electrodes of the transistors TR1 and TR2. The read data signal output from the lower memory macro 110B is input to the source electrodes of the transistors TR3 and TR4. NOT gate N1 inverts the clock signal and outputs the inverted signal to transistors TR2 and TR3. Here, the transistors TR1, TR2, TR3, and TR4 are, for example, FETs (Field Effect Transistors).
Signals output from the transistors TR1, TR2, TR3, and TR4 are input to the buffer B1. The buffer B1 adjusts the voltage level of the input signal and outputs it to the switch fabric 130.
By configuring the circuit in this way, when the clock signal is at a high level, the transistors TR1 and TR2 are turned on and the transistors TR3 and TR4 are turned off. As a result, the 2: 1 multiplexer 121 reads data from the upper memory macro 110A. Output only signals. When the clock signal is at a low level, the transistors TR1 and TR2 are turned off and the transistors TR3 and TR4 are turned on. As a result, the 2: 1 multiplexer 121 outputs only the read data signal from the lower memory macro 110B. As a result, read data signals from the memory macros 110A and 110B are serially converted. At this time, since the transfer rate of the serial signal converted by the 2: 1 multiplexer 121 is twice the transfer rate of the parallel signal from the memory macro 110, the throughput is not reduced by the parallel-serial conversion.
FIG. 5 is a truth table showing the operation of the 2: 1 multiplexer 121. Referring to the figure, when the clock signal Clk is at a low level (0), the read data D2 from the lower memory macro is output as the signal Q as it is regardless of the value of the read data D1 from the upper memory macro. When the clock signal Clk is at a high level (1), the read data D1 from the upper memory macro is output as it is regardless of the value of the read data D2 from the lower memory macro.
FIG. 6 is a signal waveform diagram showing the operation of the 2: 1 multiplexer 121. Referring to the figure, while the clock signal Clk is at the high level, the 2: 1 multiplexer 121 outputs the read data signal D1 from the upper memory macro 110A as the signal Q to the switch fabric 130. While the clock signal Clk is at the low level, the 2: 1 multiplexer 121 outputs the read data signal D2 from the lower memory macro 110B to the switch fabric 130 as the signal Q.
As apparent from the signal waveform of FIG. 6, the input parallel read data signal has the same time width as the clock cycle, whereas the data signal serially converted by the 2: 1 multiplexer 121 is clocked. The time width is half of the cycle. This provides the same throughput as when transferring in parallel format.
Next, the configuration and operation of the 1: 2 demultiplexer will be described with reference to FIGS.
FIG. 7A is a circuit diagram showing a configuration of the 1: 2 demultiplexer 122. Referring to the figure, the 1: 2 demultiplexer 122 includes a high-through latch LH1 and flip-flops FF1 and FF2. Clock signals having the same phase are input to the high-through latch LH1 and the flip-flops FF1 and FF2. Here, the high-through latch is a latch that outputs the data D as a signal Q as it is when the clock Clk is at a high level (1) and holds a value when it is at a low level (0). As shown in FIG. 7B, a general high-through latch is composed of a gate of an input section that is opened and closed by a clock Clk and a loop using an inverter that follows the gate.
A signal from the switch fabric 130, for example, a write data signal is input to the high-through latch LH1. The signal output from the high through latch LH1 is input to the flip-flop FF1. The write data signal output from the flip-flop FF1 is input to the upper memory macro 110A. On the other hand, the write data signal from the switch fabric 130 is directly input to the flip-flop FF2. The signal output from the flip-flop FF2 is input to the lower memory macro 110B.
FIG. 8 is a truth table showing the operation of the high-through latch LH1. Referring to the figure, when the clock signal Clk is at the high level (1), the high through latch LH1 outputs the input signal D as it is as the signal Q and holds the output value. When the clock signal Clk is at low level (0), the high-through latch LH1 holds the value Q 0 Is output.
FIG. 9 is a truth table showing the operations of the flip-flops FF1 and FF2. Referring to the figure, the flip-flops FF1 and FF2 output the input signal D as it is as the signal Q at the rising edge of the clock signal Clk, and the output value Q 0 Hold. The flip-flops FF1 and FF2 hold the value Q at the falling edge of the clock signal Clk. 0 Is output.
By configuring the circuit in this manner, when the clock signal Clk is at a high level, the flip-flop FF1 transparently outputs the output value from the high-through latch LH1, and holds the hold value while the clock signal Clk is at a low level. Output. When the clock signal Clk reaches the rising edge, the flip-flops FF1 and FF2 transparently output the input signal and hold the output value.
Since the write data in the serial format is latched by the high-through latch LH1, each memory macro 110 can capture only the data to be written. Further, since the 1: 2 demultiplexer 122 holds the value of the output signal in the flip-flops FF1 and FF2, the parallel signal transfer speed returns to the speed before the serial-parallel conversion and the parallel-serial conversion, and the memory macro 110A, There is no inconvenience in signal processing at 110B.
FIG. 10 is a signal waveform diagram showing the operation of the 1: 2 demultiplexer 122. The high-through latch LH1 takes in the serial-format write data signal from the switch fabric 130 input during the period when the clock is at the high level. The data signal captured at this time is the data signal in the first half of the clock cycle of the write data signal D. The high-through latch LH1 outputs the data signal taken as it is while the clock is at the high level, and holds and outputs the data signal while the clock is at the low level (high-through latch output LQ). The flip-flop FF1 takes in the high-through latch output LQ at the rising edge of the clock and outputs it as a parallel signal AQ to the upper memory macro 110A. On the other hand, the flip-flop FF2 takes in the write data signal D input during the low level of the clock at the rising edge of the clock and outputs it as a parallel signal BQ to the lower memory macro 110B. As can be seen from FIG. 10, in the parallel conversion by the 1: 2 demultiplexer 122, the write data signal is returned to the time width before the parallel-serial conversion and the serial-parallel conversion.
The configuration of the switch fabric 130 will be described with reference to FIGS.
FIG. 11 is a block diagram illustrating a configuration of the switch fabric 130. Referring to the figure, the switch fabric 130 includes a read data control circuit 131 and a write data control circuit 132.
FIG. 12 is a circuit diagram showing a configuration of the read data control circuit 131. Referring to the figure, the read data control circuit 131 has four selectors SE1, SE2, SE3, and SE4 and four selection logic circuits LG1, LG2, LG3, and LG4.
The selectors SE1, SE2, SE3, and SE4 respectively read from three switch fabrics of the adjacent upper, lower, left, and right switch fabrics 130U, 130D, 130L, and 130R other than the one that is in the output direction. Data signal is input. A total of four data signals obtained by adding the data signals read from the memory macro 110 via the converter 120 are input to the selector SE. The selector SE1 selects one of the four input data signals according to the control of the selection logic circuit LG1, and outputs it to the upper switch fabric 130U. The selectors SE2, SE3, and SE4 select one of the input data signals according to the control of the selection logic circuits LG2, LG3, and LG4. Each selector outputs the selected data signal to the left switch fabric 130L, the lower switch fabric 130D, and the right switch fabric 130R.
For example, the selection logic circuits LG1 to LG4 select one of the input signals as follows. First, it is assumed that the upper bit of the address specifying the memory macro 110 to be read is the horizontal address MX in the two-dimensional array of memory macros, and the lower bit is the vertical address MY in the two-dimensional array of memory macros. These values are compared with the horizontal address SX and the vertical address SY of the switch fabric itself to select one of the input signals.
FIG. 13 is a flowchart showing the operation of the selection logic circuit. This operation starts when an address of a memory macro to be read is input to the read data control circuit 131 of the switch fabric 130. Referring to the figure, the selection logic circuit reads the address of the memory macro to be read, and sets the upper bit as the horizontal address MX of the memory macro and the lower bit as the vertical address MY of the memory macro (step S1).
The selection logic circuit compares MX and MY with the predefined horizontal address SX and vertical address SY of the switch fabric itself, and first determines whether MX is greater than SX (step S3). If MX is larger than SX (step S3: YES), the selection logic circuits LG1 to LG3 select and output the input signals from the right switch fabric 130R to the selectors SE1 to SE3 (step S5).
If MX is not larger than SX (step S3: NO), it is determined whether MX is smaller than SX (step S7). If MX is smaller than SX (step S7: YES), the selection logic circuit LG1, LG3, or LG4 selects and outputs the input signal from the left switch fabric 130L to the selector SE1, SE3, or SE4 (step S7). S9).
If MX is not smaller than SX (step S7: NO), it is determined whether MY is larger than SY (step S11). If MY is larger than SY (step S11: YES), the selection logic circuit LG2, LG3, or LG4 causes the selector SE2, SE3, or SE4 to select and output the input signal from the upper switch fabric 130U (step). S13).
If MY is not larger than SY (step S11: NO), it is determined whether MY is smaller than SY (step S15). If MY is smaller than SY (step S15: YES), the selection logic circuit LG1, LG2, or LG4 causes the selector SE1, SE2, or SE4 to select and output the input signal from the lower switch fabric 130D (step S15: YES). Step S17).
If MY is not smaller than SY (step S15: NO), the selection logic circuits LG1 to LG4 select and output the input signals from the memory macro 110 via the converter 120 to the selectors SE1 to SE4 (step S19). ).
After steps S5, S9, S13, S17, or S19, the selection logic circuits LG1 to LG4 end their operations.
FIG. 14 is a circuit diagram showing a configuration of the write data control circuit 132. Referring to the figure, the write data control circuit 132 has five selectors SE5, SE6, SE7, SE8, and SE9 and five selection logic circuits LG5, LG6, LG7, LG8, and LG9.
The selectors SE5, SE6, SE7, and SE8 receive data signals from three switch fabrics other than the ones in the direction in which they are output among the adjacent upper, lower, left, and right switch fabrics 130U, 130D, 130L, and 130R. Is done. The selector SE9 that outputs to the memory macro 110 receives data signals from the adjacent upper, lower, left, and right switch fabrics 130U, 130D, 130L, and 130R.
The selectors SE5, SE6, SE7, and SE8 select one of the three input signals excluding the input signal from the output direction according to the control of the selection logic circuits LG5, LG6, LG7, and LG8, respectively. The selected signal is output to the upper, left, lower, and right switch fabrics 130. The selector SE9 selects one of four input data signals from the upper, lower, left, and right switch fabrics 130 according to the control of the selection logic circuit LG9, and outputs the selected data signal to the memory macro 110 via the conversion unit 120. .
FIG. 15 is a circuit diagram showing a configuration of the memory input / output unit 140. Referring to the figure, the memory input / output unit 140 has one 1: 2 demultiplexer 141 and three 2: 1 multiplexers 142. These 1: 2 demultiplexers 141 and 2: 1 multiplexers 142 receive clock signals having the same phase.
The 1: 2 demultiplexer 141 converts the read data signal, which is a serial signal output from the switch fabric 130, into parallel 16-bit read data signals for the upper logic macro 151 </ b> A and the lower logic macro 151 </ b> B. The 1: 2 demultiplexer 141 inputs the parallel-converted read data signal to the upper logic macro 151A and the lower logic macro 151B.
The 16-bit write data signal output from the upper logic macro 151A and the 16-bit write data signal output from the lower logic macro 151B are serially converted by the 2: 1 multiplexer 142. This serialized write data signal is input to the switch fabric 130 and transferred to the memory macro 110.
The 14-bit address signal output from the upper logic macro 151A and the 14-bit address signal output from the lower logic macro 151B are serially converted by the 2: 1 multiplexer 142 and input to the switch fabric 130. The
Similarly, the 2-bit command signal output from the upper logic macro 151A and the 2-bit command signal output from the lower logic macro 151B are serially converted by the 2: 1 multiplexer 142 and input to the switch fabric 130. Is done.
Here, the configuration of the 1: 2 demultiplexer 141 is the same as the configuration of the 1: 2 demultiplexer 122 shown in FIG. The configuration of the 2: 1 multiplexer 142 is the same as that of the 2: 1 multiplexer 121 shown in FIG.
In this embodiment, the memory macro 110 is a 1k word, 16-bit SRAM macro, but may be of any word and bit configuration.
In the present embodiment, the memory in the memory macro 110 is an SRAM macro, but it may be a DRAM (Dynamic Random Access Memory). In the case of a DRAM, since the circuit area of the DRAM is small, a larger capacity memory can be mounted. In addition, the memory of the memory macro may be a non-volatile memory such as a flash memory, an MRAM (Magnetic RAM), or a ReRAM (Resistance Random Access Memory). By using a non-volatile memory, it is possible to stop the power supply of a memory area that is not temporarily used and enter a power saving mode.
In this embodiment, the memory macros are arranged in a 4 × 4 two-dimensional array, but the array size may be other configurations.
In the present embodiment, the memory input / output unit 140 is configured to perform parallel conversion of read data (serial signal) and serial conversion of write data (parallel signal). However, the logic macro 151 performs these conversions. Also good.
In the present embodiment, the 2: 1 multiplexer 121 is configured to perform serial conversion of parallel signals using transistors (TR1, TR2, TR3, and TR4) and logic gates (N1, B1). However, the 2: 1 multiplexer 121 is not limited to the configuration using these components or circuits. As shown in the timing chart of FIG. 6, if the function of multiplexing the signal output from the memory macro into the serial signal in a time division manner and transferring at a multiple speed can be realized so as not to reduce the throughput, other circuits can be realized. Alternatively, serial conversion may be performed using parts.
In the present embodiment, the 1: 2 demultiplexer 122 is configured to perform parallel conversion of serial signals using a high-through latch (LH1) and flip-flops (FF1, FF2). Is not limited to the configuration using these components or circuits. As shown in the timing chart of FIG. 10, in parallel conversion, if the period for outputting a parallel signal can be returned to the period before serial conversion, parallel conversion is performed using another component or circuit. Also good.
In this embodiment, the two memory macros 110A and 110B share one switch fabric 130. However, more than two memory macros (circuit blocks) share one switch fabric. It is good also as a structure.
As described above, according to the present embodiment, signals input / output by a plurality of circuit blocks such as a memory macro are converted into serial signals, and the serial signals are transferred by the switch fabric. Can share one switch fabric. As a result, the area overhead due to the switch fabric and the wiring around the switch fabric can be reduced. In addition, the reduction in area overhead reduces the placement cost of the switch fabric and the like. Moreover, since many wirings can be ensured by the limited chip area, the performance of the programmable device can be improved.
For example, in the case of the programmable memory device 100 according to the present embodiment, two memory macros 110A and 110B share one switch fabric 130. Therefore, the number of switch fabrics can be halved as compared with the case where a switch fabric is provided for each memory macro, and the number of horizontal and vertical two-dimensional mesh wirings between switch fabrics is also halved. Thus, these area overheads are very small.
In the parallel-serial conversion, the conversion unit 120 transfers signals output from the plurality of memory macros 110 to the switch fabric 130 at a speed twice the transfer speed. Therefore, the throughput of the programmable memory device 100 does not decrease even by parallel-serial conversion.
In the serial-parallel conversion, the conversion unit 120 returns the transfer speed of the serial signal output from the switch fabric 130 to the speed before conversion and inputs it to the plurality of memory macros 110, so that the signal processing in the memory macro is performed. There will be no hindrance.
The conversion unit 120 includes a 1: 2 demultiplexer 122. The 1: 2 demultiplexer 122 includes a high-through latch LH1 that holds a signal at a predetermined time output from the switch fabric 130, and flip-flops FF1 and FF2. . The flip-flops FF1 and FF2 store the signal output from the switch fabric 130 and the signal held by the high-through latch LH1 at the same time, and input the stored signals to the memory macros 110A and 110B, respectively. Thus, serial-parallel conversion can be realized with an extremely simple configuration.
[Second Embodiment]
Next, a second embodiment of the present invention will be described. FIG. 16 is a circuit diagram illustrating a configuration of the 1: 2 demultiplexer 222 included in the conversion unit included in the programmable memory device of the present embodiment. Referring to the figure, the programmable memory device of the present embodiment is different from the programmable memory device of the first embodiment in that the configurations of the conversion unit and the memory macro are different.
The 1: 2 demultiplexer 222 according to the present embodiment is a circuit that converts a serial signal into a parallel signal, and does not include the flip-flops FF1 and FF2, but includes only the high-through latch LH1. The high-through latch LH1 latches a signal from the switch fabric while the clock signal is at a low level. The 1: 2 demultiplexer 222 according to the present embodiment includes a clock synchronous memory macro that is a memory macro having a clock input terminal. The upper clock synchronous memory macro 119A in FIG. 16 takes in the signal output from the high-through latch LH1 in synchronization with the clock signal. The lower clock synchronous memory macro 119B in FIG. 16 takes in the signal output from the switch fabric 130 in synchronization with the clock signal.
As described above, according to the present embodiment, the conversion unit holds the signal at a predetermined time output from the switch fabric by the high-through latch LH1. Then, the synchronous memory macros 119A and 119B store the signal output from the switch fabric 130 or the signal held by the high-through latch LH1 at the same time. This eliminates the need for flip-flops, allows a serial signal to be converted into a parallel signal with a simpler configuration, and reduces manufacturing costs.
[Third Embodiment]
Next, a third embodiment of the present invention will be described. FIG. 17 is a circuit diagram showing a configuration of the conversion unit 220 included in the programmable memory device of the present embodiment. Referring to the figure, the programmable memory device of the present embodiment has the same configuration as that of the programmable memory device 100 of the first embodiment except that the configurations of the conversion unit and the memory macro are different.
The converter 220 of this embodiment is a circuit that converts a serial signal into a parallel signal, and includes a NOT gate N2 instead of the flip-flops FF1 and FF2 and the high-through latch LH1. The NOT gate N2 inverts the clock signal and outputs it to the lower clock synchronous memory macro 119B. The write data signal output from the switch fabric 130 is branched and input to the upper clock synchronous memory macro 119A and the lower clock synchronous memory macro 119B.
Since each of the clock synchronous memory macros 119A and 119B captures the write data signal in synchronization with the clock signals having opposite phases, only the data signal to be written can be extracted.
As described above, according to the present embodiment, the conversion unit 220 outputs clock signals having opposite phases to the memory macros 119A and 119B, and the memory macros 119A and 119B are synchronized with these clock signals. Capture. Therefore, a flip-flop circuit and a high-through latch circuit are not necessary. As a result, serial signals can be converted into parallel signals with a simpler configuration, thereby reducing manufacturing costs.
[Fourth Embodiment]
Next, a fourth embodiment of the present invention will be described. FIG. 18 is a circuit diagram showing a configuration of the switch fabric 230 of the present embodiment. Referring to the figure, the switch fabric 230 of this embodiment is different from that of the first embodiment in that one circuit having both a function of controlling a read data signal and a function of controlling a write data signal is mounted. Different.
Referring to FIG. 18, the switch fabric 230 includes selectors SE1c, SE2c, SE3c, SE4c, and SE5c, and a selection logic circuit LG1c, instead of the read data control circuit 131 and the write data control circuit 132 in the first embodiment. LG2c, LG3c, LG4c, and LG5c.
That is, the input direction or the output direction differs between the write data and the read data in the switch fabric. Therefore, when the memory read operation and the memory write operation are not performed simultaneously in the same memory macro, the read data control circuit and the write data control circuit for controlling the connection direction can be shared by one circuit.
The selectors SE1c, SE2c, SE3c, and SE4c receive the read data signal and write data signal from the three adjacent switch fabrics and the data signal from the memory block 110, respectively, except for the output direction. The selectors SE1c, SE2c, SE3c, and SE4c select any one of the four input signals according to the control of the selection logic circuits LG1c, LG2c, LG3c, LG4c, and LG5c and output them to the switch fabric.
A read data signal or a write data signal from four adjacent switch fabrics 230U, 230D, 230L, and 230R is input to the selector SE5c. The selector SE5c selects any one of the four input signals according to the control of the selection logic circuit LG5c and outputs the selected signal to the conversion unit 120.
As described above, according to the present embodiment, the write data signal control process and the read data signal control process can be used in a single circuit. Therefore, the number of parts of the switch fabric can be reduced, or the scale of the switch fabric circuit can be reduced.
[Fifth Embodiment]
Next, a fifth embodiment of the present invention will be described. FIG. 19 is a block diagram showing the configuration of the programmable memory device 300 of this embodiment. Referring to the figure, the programmable memory device 300 according to the present embodiment is different from the programmable memory device 100 according to the first embodiment in that four memory macros 310 share one switch fabric 330. Here, the four memory macros sharing one switch fabric 330 are an upper left memory macro 310A, an upper right memory macro 310B, a lower left memory macro 310C, and a lower right memory macro 310D, respectively.
Referring to FIG. 19, the programmable memory device 300 includes the conversion unit 320 instead of the conversion unit 120, and the programmable memory device 300 includes the memory input / output unit 340 instead of the memory input / output unit 140. The configuration is the same as that of the memory device 100. That is, the switch fabric 330 is arranged in a two-dimensional array, and a part of the switch fabric 330 is connected to the logic macro 351 constituting the logic device 350 via the memory input / output unit 340. In this embodiment, as shown in FIG. 19, 16 memory macros 310 are arranged in a 4 × 4 two-dimensional array.
The conversion unit 320 includes one 4: 1 multiplexer 321 and three 1: 4 demultiplexers 322 instead of the 2: 1 multiplexer and the 1: 2 demultiplexer used in the first embodiment.
FIG. 20 is a circuit diagram showing a configuration of the 4: 1 multiplexer 321 of the present embodiment. Referring to the figure, the 4: 1 multiplexer 321 includes AND gates AD1, AD2, AD3, and AD4, transistors TR5, TR6, TR7, and TR8, and a buffer B2.
The AND gate AD1 receives a clock signal and a signal obtained by inverting a clock signal obtained by advancing the phase of the clock signal by 90 degrees (hereinafter referred to as “90 ° shift clock signal”). A clock signal and a 90 ° shift clock signal are input to the AND gate AD2. A signal obtained by inverting the clock signal and a 90 ° shifted clock signal are input to the AND gate AD3. The AND gate AD4 receives a signal obtained by inverting the clock signal and a signal obtained by inverting the 90 ° shift clock signal.
AND gates AD1, AD2, AD3, and AD4 output the logical product of the input signals to the gate electrodes of transistors TR5, TR6, TR7, and TR8, respectively.
Read data from the upper left memory macro 310A is input to the source electrode of the transistor TR5. Read data from the upper right memory macro 310B is input to the source electrode of the transistor TR6. Read data from the lower left memory macro 310C is input to the source electrode of the transistor TR7. Read data from the lower right memory macro 310D is input to the source electrode of the transistor TR8.
The transistors TR5, TR6, TR7, and TR8 output the signal input to the source electrode to the buffer B1 when the signal input to the gate electrode is at a high level.
The buffer B2 adjusts the voltage level of the input signal and outputs it to the switch fabric 330.
FIG. 21 is a Carnot diagram illustrating the operation of the 4: 1 multiplexer 321. Referring to the figure, when the clock signal Clk1 is at the high level (1) and the 90 ° shift clock signal Clk2 is at the low level (0), only the transistor TR5 is turned on. Therefore, the 4: 1 multiplexer 321 outputs the read data (UL) from the upper left memory macro 310 </ b> A to the switch fabric 330.
When both the clock signal Clk1 and the 90 ° shift clock signal Clk2 are at the high level (1), only the transistor TR6 is turned on. Therefore, the 4: 1 multiplexer 321 outputs the read data (UR) from the upper right memory macro 310 </ b> B to the switch fabric 330.
When the clock signal Clk1 is at a low level (0) and the 90 ° shift clock signal Clk2 is at a high level (1), only the transistor TR7 is turned on. Therefore, the 4: 1 multiplexer 321 outputs the read data (LL) from the lower left memory macro 310C to the switch fabric 330.
When the clock signal Clk1 and the 90 ° shift clock signal Clk2 are both low level (0), only the transistor TR8 is turned on. Therefore, the 4: 1 multiplexer 321 outputs the read data (LR) from the lower right memory macro 310 </ b> D to the switch fabric 330.
FIG. 22 is a signal waveform diagram showing the operation of the 4: 1 multiplexer 321. Referring to the figure, when the clock signal Clk1 is at the high level and the 90 ° shift clock signal Clk2 is at the low level, the 4: 1 multiplexer 321 outputs the read data UL from the upper left memory macro 310A to the switch fabric 330 as the signal Q. To do.
When both the clock signal Clk1 and the 90 ° shift clock signal Clk2 are at the high level, the 4: 1 multiplexer 321 outputs the read data UR from the upper right memory macro 310B to the switch fabric 330 as the signal Q.
When the clock signal Clk1 is at the low level and the 90 ° shift clock signal Clk2 is at the high level, the 4: 1 multiplexer 321 outputs the read data LL from the lower left memory macro 310C to the switch fabric 330 as the signal Q.
When both the clock signal Clk1 and the 90 ° shift clock signal Clk2 are at the low level, the 4: 1 multiplexer 321 outputs the read data from the lower right memory macro 310D as the signal Q to the switch fabric 330.
As described above, when the 4: 1 multiplexer 321 serially converts the read data signal, the serial signal transfer speed is set to four times that before the conversion, so that the serial conversion does not reduce the throughput.
FIG. 23 is a circuit diagram showing a configuration of the 1: 4 demultiplexer 322 of the present embodiment. Referring to the figure, the 1: 4 demultiplexer 322 has high-through latches LH2 and LH3 and flip-flops FF3, FF4, FF5, FF6, and FF7.
The write data signal from the switch fabric 330 is input to the flip-flops FF3 and FF7 and the high through latches LH2 and LH3.
The flip-flop FF3 transparently outputs the input signal to the flip-flop FF4 when the 90 ° shift clock signal Clk2 is at the rising edge, and outputs a hold value when the 90 ° shift clock signal Clk2 is at the falling edge. When the clock signal Clk1 is at the rising edge, the flip-flop FF4 transparently outputs the write data signal to the upper left memory macro 310A and holds the output for a predetermined time.
The high through latch LH2 transparently outputs an input signal to the flip-flop FF5 when the clock signal Clk1 is at a high level, and outputs a hold value when the clock signal Clk1 is at a low level. When the clock signal Clk1 reaches the rising edge, the flip-flop FF5 transparently outputs the write data signal to the upper right memory macro 310B and holds the output for a predetermined time.
The high-through latch LH3 transparently outputs a write data signal to the flip-flop FF6 when the 90 ° shift clock signal Clk2 is high level, and outputs a hold value when the 90 ° shift clock signal Clk2 is low level. The flip-flop FF6 transparently outputs the write data signal to the lower left memory macro 310C when the clock signal Clk1 becomes the rising edge, and outputs the hold value when the clock signal Clk1 becomes the falling edge.
When the clock signal Clk1 becomes a rising edge, the flip-flop FF7 transparently outputs the write data signal to the lower right memory macro 310D and holds the output for a predetermined time.
As described above, since the input signals are latched by the high-through latches LH2 and LH3 synchronized with the clock signal Clk2 whose phase is shifted by 90 degrees, each memory macro 310 is a data signal to be written from the serial signal output from the switch fabric 330. Can only capture.
Since the 1: 4 demultiplexer 322 holds the output value with flip-flops (FF4, FF5, FF6, and FF7), the transfer rate of the serial signal from the switch fabric 330 can be returned to the pre-conversion rate.
FIG. 24 is a signal waveform diagram showing the operation of the 1: 4 demultiplexer 322. Referring to the figure, the 1: 4 demultiplexer 322 outputs the output FFQ by the 90 ° shift clock signal Clk2 of the flip-flop FF3 as the write data AQ to the upper left memory macro 310A in synchronization with the clock signal Clk1. Further, the output LHQ1 from the clock signal Clk1 of the high-through latch LH2 is output as write data BQ to the upper right memory macro 310B in synchronization with the clock signal Clk1. Further, the output LHQ2 by the 90 ° shift clock signal Clk2 of the high-through latch LH3 is output as write data CQ to the lower left memory macro 310C in synchronization with the clock signal Clk1. The write data D output from the switch fabric 330 is output as write data DQ to the lower right memory macro 310D in synchronization with the clock signal Clk1.
As described above, according to the present embodiment, since the four memory macros 310 can share one switch fabric 330, the area overhead of the switch fabric and wiring is further reduced.
[Sixth Embodiment]
Next, a sixth embodiment of the present invention will be described. FIG. 25 is a circuit diagram illustrating a configuration of the 1: 4 demultiplexer 323 included in the conversion unit included in the programmable memory device of the present embodiment. Referring to the figure, the programmable memory device of the present embodiment is different from the programmable memory device of the fifth embodiment in that the configurations of the conversion unit and the memory macro are different.
The 1: 4 demultiplexer 323 of the present embodiment is a circuit that converts a serial signal into a parallel signal, and does not have the flip-flops FF4, FF5, FF6, and FF7. Have only. Further, the 1: 4 demultiplexer 323 of this embodiment has a clock synchronous memory macro that is a memory macro having a clock input terminal. The upper left clock synchronous memory macro 311A, upper right clock synchronous memory macro 311B, lower left clock synchronous memory macro 311C, and lower right clock synchronous memory macro 311D in FIG. 25 are 1: 4 demultiplexers in synchronization with the clock signal Clk1. The signal output from 323 is captured.
By configuring the circuit in this way, each memory macro can capture only data to be written.
As described above, according to the present embodiment, the conversion unit holds the signal at a predetermined time output from the switch fabric 330 by the high-through latches LH2 and LH3. The memory macros 311A, 311B, 311C, and 311D store the data signals output from the switch fabric 330 and the data signals output from the flip-flop FF3 and the high-through latches LH2 and LH3 at the same time. Therefore, the flip-flops FF4 to FF7 for controlling the data output are not required, and the serial signal can be converted into the parallel signal with a simpler configuration, so that the manufacturing cost is reduced.
[Seventh Embodiment]
Next, a seventh embodiment of the present invention will be described. FIG. 26 is a circuit diagram illustrating a configuration of the 1: 4 demultiplexer 324 included in the conversion unit included in the programmable memory device of the present embodiment. Referring to the figure, the programmable memory device of the present embodiment has the same configuration as that of the programmable memory device of the sixth embodiment except that the configurations of the conversion unit and the memory macro are different.
The 1: 4 demultiplexer 324 of this embodiment does not have flip-flops (FF4, FF5, FF6, FF7, and FF8) and high-through latches (LH2, LH3), and branches write data from the switch fabric 330. Output to each clock synchronous memory macro. The 1: 4 demultiplexer 324 outputs a predetermined clock signal Clk1 to the upper left clock synchronous memory macro 311A. Further, the 1: 4 demultiplexer 324 converts the clock signal Clk1 and the clock signal having a phase difference of 90 degrees, 180 degrees, and 270 degrees into the upper right clock synchronized memory macro 311B, the lower left clock synchronized memory macro 311C, and the lower right clock synchronized. Output to the type memory macro 311D.
The upper left clock synchronous memory macro 311A of this embodiment takes in the signal input by the 1: 4 demultiplexer 324 in synchronization with the clock signal Clk1. The upper right clock synchronous memory macro 311B of the present embodiment takes in the signal input by the 1: 4 demultiplexer 324 in synchronization with the clock signal that is 90 degrees out of phase with the clock signal Clk1. Further, the lower left clock synchronous memory macro 311C and the lower right clock synchronous memory macro 311D are synchronized with clock signals that are 180 degrees and 270 degrees out of phase with the clock signal Clk1, respectively, by the 1: 4 demultiplexer 324. Capture the input signal.
Since each clock synchronous memory macro captures a signal in synchronization with clock signals having different phases, only the data to be written can be extracted.
As described above, according to this embodiment, the 1: 4 demultiplexer 324 configuring the conversion unit outputs clock signals having different phases to the clock synchronous memory macros 311A, 311B, 311C, and 311D. Each clock synchronous memory macro captures a signal in synchronization with these clock signals. This eliminates the need for flip-flops and high-through latches, converts serial signals to parallel signals with a simpler configuration, and reduces manufacturing costs.
[Eighth Embodiment]
Next, an eighth embodiment of the present invention will be described. FIG. 27 is a perspective view showing a configuration of the laminated device 400 of the present embodiment. Referring to the figure, the second embodiment is different from the first embodiment in that a programmable memory device substrate 420 on which a programmable memory device is arranged is stacked on a logic device substrate 410 on which a logic device is arranged. The logic device substrate 410 has a logic input / output unit 430 overlapping the memory input / output unit 440, and data is transmitted and received between these input / output units.
As shown in the first embodiment, when the programmable memory device 100 and the logic device 150 are integrated on the same substrate, the memory input / output unit 140 is arranged around the programmable memory device 100. However, in this embodiment, the programmable memory device and the logic device are arranged on separate substrates, and these substrates are stacked, so that the memory input / output unit is arranged not only around the programmable memory device but also inside. It becomes possible.
As described above, according to the present embodiment, since the programmable memory device substrate 420 is stacked on the logic device substrate 410, the memory input / output unit 440 can also be arranged inside the programmable memory device substrate 420. Therefore, the amount of data transfer between the substrates can be increased.
[Ninth Embodiment]
Next, a ninth embodiment of the present invention will be described. FIG. 28 is a block diagram showing the configuration of the programmable processor device 500 of this embodiment. Referring to the figure, the programmable processor device 500 of the present embodiment is different from the first embodiment in that it has a processor 551 as a circuit block instead of a memory macro.
Referring to FIG. 28, the processor 551 of this embodiment includes a RISC (Reduced Induction Set Computer) type processor 551 arranged in a 4 × 4 two-dimensional array instead of the memory macro. Around the programmable processor device 500, a memory device 510 including a memory macro 511 is arranged.
A two-dimensional mesh wiring for transferring a data signal from the processor 551 to the processor input / output unit 540 or from the processor input / output unit 540 to the processor 551 is formed. A switch fabric 530 for controlling the signal transfer direction of the upper, lower, left, and right of the wiring is disposed at the intersection of the wiring. The switch fabric 530 is shared by the upper and lower processors 551, and the data signal from the processor 551 is serially converted by a 2: 1 multiplexer included in the conversion unit 520. In this embodiment, 8 switch fabrics 530 of 2 × 4 are arranged for 16 processors 551 of 4 × 4. That is, the number of switch fabrics 530 is halved compared to the case where switch fabrics are arranged for all processors. In addition, for the two-dimensional mesh wiring connecting the switch fabrics 530, the number of horizontal wirings is halved.
As described above, according to the present embodiment, the area overhead of the switch fabric and the wiring in the programmable processor device can be reduced.
The present invention is not limited to the above-described embodiment, and various modifications are possible within the scope of the invention described in the claims, and it is also included within the scope of the present invention. Not too long.
This application claims the priority on the basis of Japanese application Japanese Patent Application No. 2008-236783 for which it applied on September 16, 2008, and takes in those the indications of all here.

本発明は、プロセッサやメモリからなる回路ブロックを複数集積した半導体プログラマブルデバイスに適用することができる。   The present invention can be applied to a semiconductor programmable device in which a plurality of circuit blocks including processors and memories are integrated.

Claims (10)

信号を入出力する複数の回路ブロックと、
前記回路ブロックが入出力する信号を相互に転送するスイッチファブリックと、
複数の前記回路ブロックから出力された複数の信号を順次1つの信号にパラレル−シリアル変換した信号を前記スイッチファブリックに使用させ、前記スイッチファブリックから出力された信号をシリアル−パラレル変換した複数の信号を複数の前記回路ブロックに順次使用させる変換部と、を有し、
前記変換部は、前記パラレル−シリアル変換で得られる信号の転送速度を、前記回路ブロックから出力された信号の転送速度の複数倍にし、前記シリアル−パラレル変換で得られる信号の転送速度を、前記スイッチファブリックから出力された信号の転送速度の複数分の1倍にする半導体プログラマブルデバイス。
A plurality of circuit blocks for inputting and outputting signals;
A switch fabric that mutually transfers signals input and output by the circuit block;
A plurality of parallel sequentially one signal a plurality of signals outputted from the circuit block - a plurality of signals parallel conversion - a signal of serial converted by using the switch fabric, the signal outputted serially from the switch fabric a conversion unit which sequentially uses a plurality of said circuit blocks, the possess,
The conversion unit multiplies the transfer rate of the signal obtained by the parallel-serial conversion to a multiple of the transfer rate of the signal output from the circuit block, and sets the transfer rate of the signal obtained by the serial-parallel conversion to the A semiconductor programmable device that increases the transfer rate of signals output from the switch fabric to 1 / multiple .
前記変換部の前記シリアル−パラレル変換は、
前記スイッチファブリックから出力された所定の時点の信号を保持する保持回路と、
前記スイッチファブリックから出力された信号と前記保持回路で保持された信号とを互いに同じ時点で格納し、格納した各信号を前記回路ブロックのそれぞれに入力する複数の格納回路と、を備えたシリアル−パラレル変換回路により実現される、請求項1に記載の半導体プログラマブルデバイス。
The serial-parallel conversion of the conversion unit is
A holding circuit for holding a signal at a predetermined time output from the switch fabric;
A plurality of storage circuits for storing the signal output from the switch fabric and the signal held by the holding circuit at the same time, and inputting the stored signals to each of the circuit blocks; The semiconductor programmable device according to claim 1, which is realized by a parallel conversion circuit .
前記変換部の前記シリアル−パラレル変換は、
前記スイッチファブリックから出力された所定の時点の信号を前記保持回路により保持し、前記複数の回路ブロックが前記スイッチファブリックから出力された信号または前記保持回路が保持した信号を互いに同じ時点で格納することで実現される、請求項2に記載の半導体プログラマブルデバイス。
The serial-parallel conversion of the conversion unit is
A signal at a predetermined time output from the switch fabric is held by the holding circuit, and the plurality of circuit blocks store signals output from the switch fabric or signals held by the holding circuit at the same time. The semiconductor programmable device according to claim 2 , which is realized by:
前記変換部の前記シリアル−パラレル変換は、
前記回路ブロックの動作に同期したクロック信号と、該クロック信号と位相の異なるシフトクロック信号とを用いて、前記スイッチファブリックから出力された信号に時分割で多重化された複数の信号を取り出すデマルチプレクサ回路により実現される、請求項1に記載の半導体プログラマブルデバイス。
The serial-parallel conversion of the conversion unit is
Using a clock signal synchronized with the operation of the circuit block and a shift clock signal having a phase different from that of the clock signal, a demultiplexer that extracts a plurality of signals multiplexed in a time division manner with the signal output from the switch fabric The semiconductor programmable device according to claim 1, realized by a circuit .
前記変換部の前記シリアル−パラレル変換は、
該変換部が位相の異なる複数のクロック信号を前記複数の回路ブロックに出力し、該複数の回路ブロックが、前記スイッチファブリックから出力された信号を該複数のクロック信号に同期して取り込むことにより実現される、請求項1に記載の半導体プログラマブルデバイス。
The serial-parallel conversion of the conversion unit is
The conversion unit outputs a plurality of clock signals having different phases to the plurality of circuit blocks, and the plurality of circuit blocks capture the signals output from the switch fabric in synchronization with the plurality of clock signals. The semiconductor programmable device according to claim 1 .
前記スイッチファブリックにより転送された信号を複数の信号にシリアル−パラレル変換し、変換した該複数の信号を他のデバイスに入出力するデバイス入出力部を更に有する請求項1から5のいずれか一項に記載の半導体プログラマブルデバイス。 6. The device according to claim 1, further comprising: a device input / output unit that serial-parallel converts the signals transferred by the switch fabric into a plurality of signals and inputs / outputs the converted signals to / from another device. The semiconductor programmable device according to 1. 前記半導体プログラマブルデバイスは、前記他のデバイスに積層されている、請求項6に記載の半導体プログラマブルデバイス。 The semiconductor programmable device according to claim 6 , wherein the semiconductor programmable device is stacked on the other device. 前記複数の回路ブロックのうち、1以上はメモリマクロである、請求項1から7のいずれか一項に記載の半導体プログラマブルデバイス。 The semiconductor programmable device according to claim 1, wherein at least one of the plurality of circuit blocks is a memory macro . 前記複数の回路ブロックのうち、1以上はプロセッサである、請求項1から8のいずれか一項に記載の半導体プログラマブルデバイス。 The semiconductor programmable device according to claim 1, wherein at least one of the plurality of circuit blocks is a processor . 信号を入出力する複数の回路ブロックと、前記回路ブロックが入出力する信号を相互に転送するスイッチファブリックと、を備える半導体プログラマブルデバイスの制御方法であって、
複数の前記回路ブロックから出力された複数の信号を順次1つの信号にパラレル−シリアル変換した信号を前記スイッチファブリックに使用させ、前記スイッチファブリックから出力された信号をシリアル−パラレル変換した複数の信号を複数の前記回路ブロックに順次使用させる変換ステップを有し
前記変換ステップにおいて、前記パラレル−シリアル変換で得られる信号の転送速度を、前記回路ブロックから出力された信号の転送速度の複数倍にし、前記シリアル−パラレル変換で得られる信号の転送速度を、前記スイッチファブリックから出力された信号の転送速度の複数分の1倍にする半導体プログラマブルデバイスの制御方法。
A method for controlling a semiconductor programmable device comprising: a plurality of circuit blocks that input and output signals; and a switch fabric that mutually transfers signals input and output by the circuit blocks,
A plurality of parallel sequentially one signal a plurality of signals outputted from the circuit block - a plurality of signals parallel conversion - a signal of serial converted by using the switch fabric, the signal outputted serially from the switch fabric A conversion step for sequentially using the plurality of circuit blocks;
In the conversion step, the transfer rate of the signal obtained by the parallel-serial conversion is set to a multiple of the transfer rate of the signal output from the circuit block, and the transfer rate of the signal obtained by the serial-parallel conversion is A method for controlling a semiconductor programmable device, wherein the transfer rate of a signal output from a switch fabric is a multiple of one-multiple .
JP2010529831A 2008-09-16 2009-09-15 Semiconductor programmable device and control method thereof Expired - Fee Related JP5365637B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010529831A JP5365637B2 (en) 2008-09-16 2009-09-15 Semiconductor programmable device and control method thereof

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2008236783 2008-09-16
JP2008236783 2008-09-16
JP2010529831A JP5365637B2 (en) 2008-09-16 2009-09-15 Semiconductor programmable device and control method thereof
PCT/JP2009/066570 WO2010032861A1 (en) 2008-09-16 2009-09-15 Semiconductor programmable device and control method therefor

Publications (2)

Publication Number Publication Date
JPWO2010032861A1 JPWO2010032861A1 (en) 2012-02-16
JP5365637B2 true JP5365637B2 (en) 2013-12-11

Family

ID=42039679

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010529831A Expired - Fee Related JP5365637B2 (en) 2008-09-16 2009-09-15 Semiconductor programmable device and control method thereof

Country Status (2)

Country Link
JP (1) JP5365637B2 (en)
WO (1) WO2010032861A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5365693B2 (en) * 2009-07-17 2013-12-11 日本電気株式会社 Semiconductor device and data transfer method in semiconductor device

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH098647A (en) * 1995-06-21 1997-01-10 Nippon Telegr & Teleph Corp <Ntt> Programmable logic circuit
JPH1082839A (en) * 1996-09-06 1998-03-31 Hitachi Telecom Technol Ltd Diagnostic system for electronic device using fpga
JP2000232354A (en) * 1999-02-10 2000-08-22 Nec Corp Programmable device
JP2003533931A (en) * 2000-05-18 2003-11-11 ザイリンクス インコーポレイテッド Method and apparatus for incorporating a multiplier in an FPGA
JP2004525439A (en) * 2000-12-19 2004-08-19 ピコチップ デザインズ リミテッド Processor architecture
JP2005182654A (en) * 2003-12-22 2005-07-07 Sanyo Electric Co Ltd Reconfigurable circuit, processing device having reconfigurable circuit, function determination method of logic circuit in reconfigurable circuit, circuit generation method and circuit
JP2010080870A (en) * 2008-09-29 2010-04-08 National Institute Of Advanced Industrial Science & Technology Reconfigurable integrated circuit

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH098647A (en) * 1995-06-21 1997-01-10 Nippon Telegr & Teleph Corp <Ntt> Programmable logic circuit
JPH1082839A (en) * 1996-09-06 1998-03-31 Hitachi Telecom Technol Ltd Diagnostic system for electronic device using fpga
JP2000232354A (en) * 1999-02-10 2000-08-22 Nec Corp Programmable device
JP2003533931A (en) * 2000-05-18 2003-11-11 ザイリンクス インコーポレイテッド Method and apparatus for incorporating a multiplier in an FPGA
JP2004525439A (en) * 2000-12-19 2004-08-19 ピコチップ デザインズ リミテッド Processor architecture
JP2005182654A (en) * 2003-12-22 2005-07-07 Sanyo Electric Co Ltd Reconfigurable circuit, processing device having reconfigurable circuit, function determination method of logic circuit in reconfigurable circuit, circuit generation method and circuit
JP2010080870A (en) * 2008-09-29 2010-04-08 National Institute Of Advanced Industrial Science & Technology Reconfigurable integrated circuit

Also Published As

Publication number Publication date
WO2010032861A1 (en) 2010-03-25
JPWO2010032861A1 (en) 2012-02-16

Similar Documents

Publication Publication Date Title
US20220208233A1 (en) Memory package having stacked array dies and reduced driver load
JP3557114B2 (en) Semiconductor storage device
US7355899B2 (en) Pipe latch circuit of multi-bit prefetch-type semiconductor memory device with improved structure
US6205082B1 (en) LSI device with memory and logics mounted thereon
US6104663A (en) Memory array with a simultaneous read or simultaneous write ports
JP4071910B2 (en) Semiconductor integrated circuit
JP2006012337A (en) Stacked semiconductor memory device
CN105161126A (en) System and method utilizing distributed byte-wise buffers on a memory module
TW201442039A (en) Independent link and bank selection
US8630143B2 (en) Multiple-port memory device comprising single-port memory device with supporting control circuitry
JP2013077358A (en) Semiconductor device
WO2014065424A1 (en) Reconfigurable semiconductor device
JP2011065733A (en) Semiconductor memory device and multilayered chip semiconductor device
US9811628B1 (en) Metal configurable register file
JP5365637B2 (en) Semiconductor programmable device and control method thereof
US11861369B2 (en) Processing-in-memory (PIM) device
Yabe et al. A configurable DRAM macro design for 2112 derivative organizations to be synthesized using a memory generator
US6801144B2 (en) Semiconductor memory device inputting/outputting data synchronously with clock signal
Kamaraj et al. Design of Space-Efficient Nano Router in Reversible Logic with Multilayer Architecture
KR20220008901A (en) Shiftable memory and how to operate shiftable memory
JP3818863B2 (en) Nonvolatile semiconductor memory device
JP4238163B2 (en) Semiconductor integrated circuit device
JP2004158166A (en) Integrated circuit device, method for supplying data, and method for writing data in memory array
JP2008257779A (en) Memory macro cell and semiconductor device using the same
JP2001143464A (en) Semiconductor memory device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120820

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130514

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130712

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130826

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