JP5365637B2 - Semiconductor programmable device and control method thereof - Google Patents
Semiconductor programmable device and control method thereof Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17736—Structural details of routing resources
Abstract
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により制御される。選択論理回路は例えば、データを転送する方向をアドレス化したものをデコードするためのデコード回路からなる。
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
FIG. 29 shows an example of a related two-dimensional array programmable device described in Non-Patent
As the
非特許文献1に開示されたプログラマブルデバイスは回路ブロック間の接続を切り替えることで所望の回路構成を実現している。しかし、回路変更ができない通常の半導体集積回路デバイスと比べて、回路ブロック間を接続する配線と、その接続を切り替えるためのスイッチファブリックを配置する必要があるため、チップ面積のオーバーヘッドが生じてしまうという問題があった。
例えば、FPGAではチップ面積の半分、プロセッサの2次元アレイの場合でもチップ面積の約1/4程度は配線およびスイッチファブリックで占められている。
配線層数を増やして上述の配線を別の配線層に移設することにより、チップ面積を増大させることなく搭載できる回路ブロックの数を増やし、デバイス性能を向上させることができる。しかし、配線層を増やすと、マスクコストが増加してしまう。
本発明の目的は、上述した課題である、低コストで高性能の半導体プログラマブルデバイスを得るのが困難であるという問題を解決する半導体プログラマブルデバイスおよびその制御方法を提供することにある。The programmable device disclosed in Non-Patent
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は保持している値Q0を出力する。
図9は、フリップフロップFF1およびFF2の動作を示す真理値表である。同図を参照すると、フリップフロップFF1およびFF2はクロック信号Clkの立ち上がりエッジで、入力信号Dをそのまま信号Qとして出力し、その出力値Q0を保持する。そして、クロック信号Clkの立ち下がりエッジで、フリップフロップFF1およびFF2は保持している値Q0を出力する。
このように回路を構成することにより、クロック信号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
A read data signal from the
By sharing one
FIG. 2 shows a circuit configuration of the
The
The
In the
As shown in FIG. 1, the
The
The
As shown in FIG. 1, one of the two
The
The
The memory input /
FIG. 3 is an example of a circuit diagram illustrating a configuration of the
The 2: 1
The 1: 2
The 1: 2
Next, the configuration and operation of the 2: 1
FIG. 4 is a circuit diagram showing a configuration of the 2: 1
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
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
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
FIG. 5 is a truth table showing the operation of the 2: 1
FIG. 6 is a signal waveform diagram showing the operation of the 2: 1
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
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
A signal from the
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
FIG. 10 is a signal waveform diagram showing the operation of the 1: 2
The configuration of the
FIG. 11 is a block diagram illustrating a configuration of the
FIG. 12 is a circuit diagram showing a configuration of the read
The selectors SE1, SE2, SE3, and SE4 respectively read from three switch fabrics of the adjacent upper, lower, left, and
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
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
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
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
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
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
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
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
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
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
FIG. 15 is a circuit diagram showing a configuration of the memory input /
The 1: 2 demultiplexer 141 converts the read data signal, which is a serial signal output from the
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
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
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
Here, the configuration of the 1: 2 demultiplexer 141 is the same as the configuration of the 1: 2
In this embodiment, the
In the present embodiment, the memory in the
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 /
In the present embodiment, the 2: 1
In the present embodiment, the 1: 2
In this embodiment, the two
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
In the parallel-serial conversion, the
In the serial-parallel conversion, the
The
[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
The 1: 2
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
[Third Embodiment]
Next, a third embodiment of the present invention will be described. FIG. 17 is a circuit diagram showing a configuration of the
The
Since each of the clock
As described above, according to the present embodiment, the
[Fourth Embodiment]
Next, a fourth embodiment of the present invention will be described. FIG. 18 is a circuit diagram showing a configuration of the
Referring to FIG. 18, the
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
A read data signal or a write data signal from four
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
Referring to FIG. 19, the
The conversion unit 320 includes one 4: 1
FIG. 20 is a circuit diagram showing a configuration of the 4: 1
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
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
FIG. 21 is a Carnot diagram illustrating the operation of the 4: 1
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
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
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
FIG. 22 is a signal waveform diagram showing the operation of the 4: 1
When both the clock signal Clk1 and the 90 ° shift clock signal Clk2 are at the high level, the 4: 1
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
When both the clock signal Clk1 and the 90 ° shift clock signal Clk2 are at the low level, the 4: 1
As described above, when the 4: 1
FIG. 23 is a circuit diagram showing a configuration of the 1: 4
The write data signal from the
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
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
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
Since the 1: 4
FIG. 24 is a signal waveform diagram showing the operation of the 1: 4
As described above, according to the present embodiment, since the four
[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
The 1: 4
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
[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
The 1: 4
The upper left clock synchronous memory macro 311A of this embodiment takes in the signal input by the 1: 4
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
[Eighth Embodiment]
Next, an eighth embodiment of the present invention will be described. FIG. 27 is a perspective view showing a configuration of the
As shown in the first embodiment, when the
As described above, according to the present embodiment, since the programmable
[Ninth Embodiment]
Next, a ninth embodiment of the present invention will be described. FIG. 28 is a block diagram showing the configuration of the
Referring to FIG. 28, the
A two-dimensional mesh wiring for transferring a data signal from the
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つの信号にパラレル−シリアル変換した信号を前記スイッチファブリックに使用させ、前記スイッチファブリックから出力された信号をシリアル−パラレル変換した複数の信号を複数の前記回路ブロックに順次使用させる変換ステップを有し、
前記変換ステップにおいて、前記パラレル−シリアル変換で得られる信号の転送速度を、前記回路ブロックから出力された信号の転送速度の複数倍にし、前記シリアル−パラレル変換で得られる信号の転送速度を、前記スイッチファブリックから出力された信号の転送速度の複数分の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 .
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)
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)
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 |
-
2009
- 2009-09-15 WO PCT/JP2009/066570 patent/WO2010032861A1/en active Application Filing
- 2009-09-15 JP JP2010529831A patent/JP5365637B2/en not_active Expired - Fee Related
Patent Citations (7)
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 |