(57)【要約】低コストで高性能の半導体プログラマブルデバイスを得るため、本発明の半導体プログラマブルデバイスは、信号を入出力する複数の回路ブロックと、回路ブロックが入出力する信号を相互に転送するスイッチファブリックと、複数の回路ブロックから出力された複数の信号を１つの信号にパラレル−シリアル変換した信号をスイッチファブリックに使用させ、スイッチファブリックから出力された信号をシリアル−パラレル変換した複数の信号を回路ブロックに使用させる変換部とを有する。
2010032861.tif 000002
【特許請求の範囲】
【請求項１】
信号を入出力する複数の回路ブロックと、
前記回路ブロックが入出力する信号を相互に転送するスイッチファブリックと、
複数の前記回路ブロックから出力された複数の信号を１つの信号にパラレル−シリアル変換した信号を前記スイッチファブリックに使用させ、前記スイッチファブリックから出力された信号をシリアル−パラレル変換した複数の信号を前記回路ブロックに使用させる変換部と、
を有する半導体プログラマブルデバイス。
【請求項２】
前記変換部による前記パラレル−シリアル変換で得られる信号は、前記回路ブロックから出力された信号の複数倍の速度であり、前記シリアル−パラレル変換で得られる信号は、前記スイッチファブリックから出力された信号の複数分の１倍の速度である、請求項１に記載の半導体プログラマブルデバイス。
【請求項３】
前記変換部の前記シリアル−パラレル変換は、
前記スイッチファブリックから出力された所定の時点の信号を保持する保持回路と、
前記スイッチファブリックから出力された信号と前記保持回路で保持された信号とを互いに同じ時点で格納し、格納した各信号を前記回路ブロックのそれぞれに入力する複数の格納回路と、
を備えたシリアル−パラレル変換回路により実現される、請求項１または２に記載の半導体プログラマブルデバイス。
【請求項４】
前記変換部の前記シリアル−パラレル変換は、
前記スイッチファブリックから出力された所定の時点の信号を前記保持回路により保持し、前記複数の回路ブロックが前記スイッチファブリックから出力された信号または前記保持回路が保持した信号を互いに同じ時点で格納することで実現される、請求項１または２に記載の半導体プログラマブルデバイス。
【請求項５】
前記変換部の前記シリアル−パラレル変換は、
前記回路ブロックの動作に同期したクロック信号と、該クロック信号と位相の異なるシフトクロック信号とを用いて、前記スイッチファブリックから出力された信号に時分割で多重化された複数の信号を取り出すデマルチプレクサ回路により実現される、請求項１または２に記載の半導体プログラマブルデバイス。
【請求項６】
前記変換部の前記シリアル・パラレル変換は、
該変換部が位相の異なる複数のクロック信号を前記複数の回路ブロックに出力し、該複数の回路ブロックが、前記スイッチファブリックから出力された信号を該複数のクロック信号に同期して取り込むことにより実現される、請求項１または２に記載の半導体プログラマブルデバイス。
【請求項７】
前記スイッチファブリックにより転送された信号を複数の信号にシリアル−パラレル変換し、変換した該複数の信号を他のデバイスに入出力するデバイス入出力部を更に有する請求項１から６のいずれか一項に記載の半導体プログラマブルデバイス。
【請求項８】
前記半導体プログラマブルデバイスは、前記他のデバイスに積層されている、請求項７に記載の半導体プログラマブルデバイス。
【請求項９】
前記複数の回路ブロックのうち、１以上はメモリマクロである、請求項１から８のいずれか一項に記載の半導体プログラマブルデバイス。
【請求項１０】
前記複数の回路ブロックのうち、１以上はプロセッサである、請求項１から９のいずれか一項に記載の半導体プログラマブルデバイス。
【請求項１１】
信号を入出力する複数の回路ブロックと、前記回路ブロックが入出力する信号を相互に転送するスイッチファブリックと、を備える半導体プログラマブルデバイスの制御方法であって、
複数の前記回路ブロックから出力された複数の信号を１つの信号にパラレル−シリアル変換した信号を前記スイッチファブリックに使用させ、
前記スイッチファブリックから出力された信号をシリアル−パラレル変換した複数の信号を前記回路ブロックに使用させる、半導体プログラマブルデバイスの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサやメモリからなる回路ブロックを複数集積した半導体プログラマブルデバイスに関する。
【背景技術】
【０００２】
半導体集積回路デバイスの低コスト化、短ＴＡＴ（Ｔｕｒｎ  Ａｒｏｕｎｄ  Ｔｉｍｅ）化のため、デバイス製作後に回路構成を変更できるプログラマブルデバイスが開発されている。このプログラマブルデバイスの一例として、ゲートレベルで回路を組み合わせて再構成するＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）がある。また、プログラマブルデバイスとして、より大きい回路単位であるプロセッサやメモリをアレイ状に並べたものを組み合わせて再構成するデバイスなど、様々なものが実現あるいは提案されている。
回路ブロックを組み合わせて再構成するプログラマブルデバイスとして、例えば、チップ上で２次元アレイ状に回路ブロックを並べて、２次元メッシュの結合網で回路ブロック間を接続するデバイスが、非特許文献１に開示されている。
図２９に、非特許文献１に記載された関連する２次元アレイのプログラマブルデバイスの一例を示す。同図に示すように、関連するプログラマブルメモリデバイス６００においては、回路ブロックとしてのメモリマクロ６１０が２次元アレイ状に並んでいる。この回路ブロックとしてはメモリに限らず、プロセッサやカスタムハードウエア回路などがある。メモリマクロ６１０は、それぞれに対応するスイッチファブリック６３０と接続されている。これらのスイッチファブリック６３０同士は、メモリマクロからのデータを他のメモリマクロや２次元アレイの外部へ転送するために２次元メッシュ状に配線で結合されている。
スイッチファブリック６３０には、例えば、図１８に示す構成を有するものを用いることができる。同図を参照すると、スイッチファブリック２３０は、自身の上下左右の方向で隣り合う他のスイッチファブリック２３０Ｕ、２３０Ｄ、２３０Ｌ、２３０Ｒとそれぞれ配線で結合し、また、自身に対応する１つの回路ブロック（例えばメモリブロック１１０）とも結合している。スイッチファブリック間あるいはスイッチファブリックと回路ブロックとの信号の入出力は５つの４：１セレクタＳＥ１ｃ〜ＳＥ５ｃで実現されている。各セレクタは、４つの入力信号のうちいずれか１つを選択して出力する。各セレクタの入力信号の選択は、選択論理回路ＬＧ１ｃ〜ＬＧ５ｃにより制御される。選択論理回路は例えば、データを転送する方向をアドレス化したものをデコードするためのデコード回路からなる。
【非特許文献１】「プロシーディングス  オブ  アイ・イー・イー・イー  コンピュータ  ソサイエティ  アニュアル  シンポジウム  オン  ＶＬＳＩ（Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ＩＥＥＥ  Ｃｏｍｐｕｔｅｒ  Ｓｏｃｉｅｔｙ  Ａｎｎｕａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  ＶＬＳＩ）」、２００２年、ｐ．１０５−１１２
【発明の開示】
【発明が解決しようとする課題】
【０００３】
非特許文献１に開示されたプログラマブルデバイスは回路ブロック間の接続を切り替えることで所望の回路構成を実現している。しかし、回路変更ができない通常の半導体集積回路デバイスと比べて、回路ブロック間を接続する配線と、その接続を切り替えるためのスイッチファブリックを配置する必要があるため、チップ面積のオーバーヘッドが生じてしまうという問題があった。
例えば、ＦＰＧＡではチップ面積の半分、プロセッサの２次元アレイの場合でもチップ面積の約１／４程度は配線およびスイッチファブリックで占められている。
配線層数を増やして上述の配線を別の配線層に移設することにより、チップ面積を増大させることなく搭載できる回路ブロックの数を増やし、デバイス性能を向上させることができる。しかし、配線層を増やすと、マスクコストが増加してしまう。
本発明の目的は、上述した課題である、低コストで高性能の半導体プログラマブルデバイスを得るのが困難であるという問題を解決する半導体プログラマブルデバイスおよびその制御方法を提供することにある。
【課題を解決するための手段】
【０００４】
本発明の半導体プログラマブルデバイスは、信号を入出力する複数の回路ブロックと、回路ブロックが入出力する信号を相互に転送するスイッチファブリックと、複数の回路ブロックから出力された複数の信号を１つの信号にパラレル−シリアル変換した信号をスイッチファブリックに使用させ、スイッチファブリックから出力された信号をシリアル−パラレル変換した複数の信号を回路ブロックに使用させる変換部とを有する。
本発明の半導体プログラマブルデバイスの制御方法は、信号を入出力する複数の回路ブロックと、回路ブロックが入出力する信号を相互に転送するスイッチファブリックと、を備える半導体プログラマブルデバイスの制御方法であって、複数の回路ブロックから出力された複数の信号を１つの信号にパラレル−シリアル変換した信号をスイッチファブリックに使用させ、スイッチファブリックから出力された信号をシリアル−パラレル変換した複数の信号を回路ブロックに使用させる。
【発明の効果】
【０００５】
本発明によれば、スイッチファブリックおよびスイッチファブリック周辺の配線による面積オーバーヘッドを小さくできる。その結果、低コストで高性能な半導体プログラマブルデバイスを得ることができる。
【図面の簡単な説明】
【０００６】
図１は本発明の第１の実施形態に係るプログラマブルメモリデバイスの構成を示すブロック図である。
図２は本発明の第１の実施形態に係るＳＲＡＭマクロの回路構成を示すブロック図である。
図３は本発明の第１の実施形態に係る変換部の構成を示す回路図である。
図４は本発明の第１の実施形態に係る２：１マルチプレクサの構成を示す回路図である。
図５は本発明の第１の実施形態に係る２：１マルチプレクサの動作を示す真理値表である。
図６は本発明の第１の実施形態に係る２：１マルチプレクサの動作を示す信号波形図である。
図７Ａは本発明の第１の実施形態に係る１：２デマルチプレクサの構成を示す回路図である。
図７Ｂは本発明の第１の実施形態に係るハイスルーラッチの一般的な構成を示す回路図である。
図８は本発明の第１の実施形態に係るハイスルーラッチの動作を示す真理値表である。
図９は本発明の第１の実施形態に係るフリップフロップの動作を示す真理値表である。
図１０は本発明の第１の実施形態に係る１：２デマルチプレクサの動作を示す信号波形図である。
図１１は本発明の第１の実施形態に係るスイッチファブリックの構成を示すブロック図である。
図１２は本発明の第１の実施形態に係るスイッチファブリックを構成する読み出しデータ制御回路の構成を示す回路図である。
図１３は本発明の第１の実施形態に係る選択論理回路の動作を示すフローチャートである。
図１４は本発明の第１の実施形態に係るスイッチファブリックを構成する書き込みデータ制御回路の構成を示す回路図である。
図１５は本発明の第１の実施形態に係るメモリ入出力部の構成を示す回路図である。
図１６は本発明の第２の実施形態に係る１：２デマルチプレクサの構成を示す回路図である。
図１７は本発明の第３の実施形態に係る変換部の構成を示す回路図である。
図１８は本発明の第４の実施形態に係るスイッチファブリックの構成を示す回路図である。
図１９は本発明の第５の実施形態に係るプログラマブルメモリデバイスの構成を示すブロック図である。
図２０は本発明の第５の実施形態に係る４：１マルチプレクサの構成を示す回路図である。
図２１は本発明の第５の実施形態に係る４：１マルチプレクサの動作を示すカルノー図である。
図２２は本発明の第５の実施形態に係る４：１マルチプレクサの動作を示す信号波形図である。
図２３は本発明の第５の実施形態に係る１：４デマルチプレクサの構成を示す回路図である。
図２４は本発明の第５の実施形態に係る１：４デマルチプレクサの動作を示す信号波形図である。
図２５は本発明の第６の実施形態に係る１：４デマルチプレクサの構成を示す回路図である。
図２６は本発明の第７の実施形態に係る１：４デマルチプレクサのプ構成を示す回路図である。
図２７は本発明の第８の実施形態に係る積層デバイスの構成を示す斜視図である。
図２８は本発明の第９の実施形態に係るプログラマブルプロセッサデバイスの構成を示すブロック図である。
図２９は関連するプログラマブルメモリデバイスの構成を示すブロック図である。
【符号の説明】
【０００７】
１００、３００    プログラマブルメモリデバイス
１１０、３１０、５１１、６１０    メモリマクロ
１１０Ａ    上側メモリマクロ
１１０Ｂ    下側メモリマクロ
１１１    ＳＲＡＭマクロ
１１２    メモリセルアレイ
１１３    アドレスデコーダ
１１４    ワード線ドライバ
１１５    センスアンプ
１１６    ライトバッファ
１１７    リードバッファ
１１８    制御部
１１９Ａ    上側クロック同期型メモリマクロ
１１９Ｂ    下側クロック同期型メモリマクロ
１２０、２２０、３２０、５２０    変換部
１２１、１４２    ２：１マルチプレクサ
１２２、１４１、２２２    １：２デマルチプレクサ
１３０、１３０Ｕ、１３０Ｄ、１３０Ｌ、１３０Ｒ、２３０、２３０Ｕ、２３０Ｄ、２３０Ｌ、２３０Ｒ、３３０、５３０、６３０    スイッチファブリック
１３１    読み出しデータ制御回路
１３２    書き込みデータ制御回路
１４０、３４０、４４０    メモリ入出力部
１５０、３５０    ロジックデバイス
１５１、３５１    ロジックマクロ
１５１Ａ    上側ロジックマクロ
１５１Ｂ    下側ロジックマクロ
３１０Ａ    左上メモリマクロ
３１０Ｂ    右上メモリマクロ
３１０Ｃ    左下メモリマクロ
３１０Ｄ    右下メモリマクロ
３１１Ａ    左上クロック同期型メモリマクロ
３１１Ｂ    右上クロック同期型メモリマクロ
３１１Ｃ    左下クロック同期型メモリマクロ
３１１Ｄ    右下クロック同期型メモリマクロ
３２１    ４：１マルチプレクサ
３２２、３２３、３２４    １：４デマルチプレクサ
４００    積層デバイス
４１０    ロジックデバイス基板
４２０    プログラマブルメモリデバイス基板
４３０    ロジック入出力部
５００    プログラマブルプロセッサデバイス
５１０    メモリデバイス
５４０    プロセッサ入出力部
５５１    プロセッサ
６００    関連するプログラマブルメモリデバイス
Ｂ１、Ｂ２    バッファ
Ｎ１、Ｎ２    ＮＯＴゲート
ＴＲ１〜ＴＲ８    トランジスタ
ＦＦ１〜ＦＦ７    フリップフロップ
ＬＨ１〜ＬＨ３    ハイスルーラッチ
ＳＥ１〜ＳＥ９、ＳＥ１ｃ〜ＳＥ５ｃ    セレクタ
ＬＧ１〜ＬＧ９、ＬＧ１ｃ〜ＬＧ５ｃ    選択論理回路
ＡＤ１〜ＡＤ４    ＡＮＤゲート
【発明を実施するための最良の形態】
【０００８】
以下に、図面を参照しながら、本発明の実施形態について説明する。
［第１の実施形態］
図１は本発明の第１の実施形態に係る半導体プログラマブルデバイスとしてのプログラマブルメモリデバイス１００の構成を示すブロック図である。回路ブロックとしての複数のメモリマクロ１１０が変換手段としての変換部１２０を介してスイッチファブリック１３０に接続される。スイッチファブリック１３０は２次元アレイ状に配列され、一部のスイッチファブリック１３０はメモリ入出力部１４０を介してロジックデバイス１５０を構成するロジックマクロ１５１と接続している。本実施形態では、図１に示すようにメモリマクロ１１０が４×４の２次元アレイ状に１６個配列した構成とした。
メモリマクロ１１０からの読み出しデータ信号は変換部１２０によりシリアル変換され、スイッチファブリック１３０に入力される。ここでシリアル変換とは、例えば２個のメモリマクロ１１０Ａ、１１０Ｂから出力されたパラレルのデータ信号の時間幅を、それぞれ半分にした上でシリアル化するものであり、パラレルで転送する場合と同じスループットが得られる。スイッチファブリック１３０間の転送とスイッチファブリック１３０からメモリ入出力部１４０への転送は、シリアル化した信号によって行う。
複数のメモリマクロ１１０で１個のスイッチファブリック１３０を共有することによって、プログラマブルメモリデバイス１００において必要となるスイッチファブリック１３０の個数を削減することができる。例えば、図１に示すように、２個のメモリマクロ１１０Ａ、１１０Ｂで１個のスイッチファブリック１３０を共有する場合、必要なスイッチファブリック１３０の個数を半減することができる。そのため、スイッチファブリックとスイッチファブリック間を接続する配線によって生じるチップ面積のオーバーヘッドを削減することが可能となる。そして、面積オーバーヘッドの低減によりスイッチファブリック等の配置コストが低減でき、また、限られたチップ面積により多くの配線を確保できるので性能を向上させることできる。以上より、本実施形態によれば低コストで高性能な半導体プログラマブルデバイスを得ることができる。
図２に、メモリマクロ１１０としてのＳＲＡＭマクロ１１１の回路構成を示す。ＳＲＡＭマクロ１１１は、メモリセルアレイ１１２と、アドレスデコーダ１１３と、ワード線ドライバ１１４と、センスアンプ１１５と、ライトバッファ１１６と、リードバッファ１１７と、制御部１１８とを有する。
アドレスデコーダ１１３は、メモリセルアレイ１１２内のメモリセルへデータを読み書きするときに、アクセス対象のデータのアドレスを指定する。ワード線ドライバ１１４は、メモリセルアレイ１１２におけるワード線（不図示）を所定のタイミングで駆動する。メモリセルアレイ１１２の構成については後述する。
センスアンプ１１５は、メモリセルアレイ１１２に入力する信号またはメモリセルアレイ１１２から出力された信号を増幅して伝送する。ライトバッファ１１６およびリードバッファ１１７は、メモリセルアレイ１１２と他の装置との処理速度の相違を調整する。制御部１１８はＳＲＡＭマクロ１１１の動作を制御する。
メモリセルアレイ１１２には、例えば、ＳＲＡＭメモリセルが１ｋワード１６ビット構成で配列されている。このときメモリセルアレイ１１２のアドレスを指定するための信号（アドレス信号）は、アクセスするメモリマクロ１１０を特定するための４ビット（メモリマクロアドレス）と、個々のメモリマクロ内のワードアドレスを指定するための１０ビットとからなる合計１４ビットの信号となる。読み書きの対象とするアドレス信号のうち、４ビットのメモリマクロアドレスが制御部１１８に予め設定されているメモリマクロアドレスと一致する場合、制御部１１８の後段にあるすべての回路が活性化される。そして、メモリセルアレイ１１２に対して書き込み、あるいは読み出し動作が行われる。
図１に示したように、本実施形態のプログラマブルメモリデバイス１００は、その周辺に配置されたロジックデバイス１５０と接続されている。ロジックデバイス１５０は、複数のロジックマクロ１５１を有する。これらのロジックマクロ１５１は、論理回路からなるマクロセルである。これらのロジックマクロ１５１は、回路に定義された所定の処理を実行する。各ロジックマクロ１５１とプログラマブルメモリデバイス１００は、メモリ入出力部１４０を介してデータ転送を行う。
本実施形態によるプログラマブルメモリデバイス１００は、回路ブロックとしての複数（例えば、４×４の１６個）のメモリマクロ１１０と、変換手段としての複数（例えば、８個）の変換部１２０と、複数（例えば、８個）のスイッチファブリック１３０を備える。さらに、複数（例えば、４個）のメモリ入出力部１４０と、これらを接続する配線とを有する。
メモリマクロ１１０は、例えば、１６ビットの単位で１ｋワードを記憶できるＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）マクロからなる。２つのメモリマクロ１１０は１つの変換部１２０と、１つのスイッチファブリック１３０とを共有する。メモリマクロ１１０は、変換部１２０でシリアル−パラレル変換された信号を入力し、もしくはパラレル−シリアル変換するための信号を出力する。
図１に示すように、１つのスイッチファブリック１３０を共有する２つのメモリマクロ１１０のうち、一方を上側メモリマクロ１１０Ａ、他方を下側メモリマクロ１１０Ｂとする。
変換部１２０は、２つのメモリマクロ１１０Ａ、１１０Ｂから出力されたパラレル信号を、シリアル信号にパラレル−シリアル変換し、変換したシリアル信号をスイッチファブリック１３０に入力する。また、変換部１２０は、スイッチファブリック１３０から出力されたシリアル信号を、パラレル信号にシリアル−パラレル変換し、変換したパラレル信号を、２つのメモリマクロ１１０Ａ、１１０Ｂにそれぞれ入力する。
スイッチファブリック１３０は２次元メッシュ状の配線により相互に接続されており、変換部１２０により、パラレル−シリアル変換されたシリアル信号の転送方向を制御する。また、スイッチファブリック１３０の一部は、メモリ入出力部１４０に接続され、このメモリ入出力部１４０にシリアル信号を入出力する。
メモリ入出力部１４０は、スイッチファブリック１３０から出力されたシリアル信号を、パラレル信号にシリアル−パラレル変換し、変換したパラレル信号を、それぞれのロジックマクロ１５１に入力する。また、メモリ入出力部１４０は、２つのロジックマクロ１５１から出力されたパラレル信号を、シリアル信号にパラレル−シリアル変換し、変換したシリアル信号を、スイッチファブリック１３０に入力する。
図３は、本実施形態による変換部１２０の構成を示す回路図の一例である。同図を参照すると、変換部１２０は、１個の２：１マルチプレクサ１２１と、３個の１：２デマルチプレクサ１２２とを有する。そして、これらの２：１マルチプレクサ１２１および１：２デマルチプレクサ１２２には、所定の周期のクロック信号が入力される。
２：１マルチプレクサ１２１は、上側メモリマクロ１１０Ａから出力された１６ビットの読み出しデータ信号と、下側メモリマクロ１１０Ｂから出力された１６ビットの読み出しデータ信号とをシリアル信号に変換し、スイッチファブリック１３０に入力する。
１：２デマルチプレクサ１２２は、スイッチファブリック１３０から出力されたシリアル信号を、上側メモリマクロ１１０Ａへの１６ビットの書き込みデータ信号と、下側メモリマクロ１１０Ｂへの１６ビットの書き込みデータ信号とからなるパラレル信号に変換する。そして、１：２デマルチプレクサ１２２は、パラレル信号を上側メモリマクロ１１０Ａおよび下側メモリマクロ１１０Ｂに入力する。
また、１：２デマルチプレクサ１２２は、シリアル方式でスイッチファブリック１３０から出力された２ビットのコマンド信号と１４ビットのアドレス信号を、それぞれパラレル信号に変換する。そして、１：２デマルチプレクサ１２２は、変換したパラレル信号を上側メモリマクロ１１０Ａおよび下側メモリマクロ１１０Ｂに入力する。
次に、図４〜図６を参照して、２：１マルチプレクサ１２１の構成および動作について説明する。
図４は、２：１マルチプレクサ１２１の構成を示す回路図である。同図を参照すると、２：１マルチプレクサ１２１は、ＮＯＴゲートＮ１と、トランジスタＴＲ１、ＴＲ２、ＴＲ３、およびＴＲ４と、バッファＢ１とを有する。
そして、ＮＯＴゲートＮ１およびトランジスタＴＲ１のゲート電極には、位相が同一のクロック信号が入力される。また、このクロック信号を反転させた信号がトランジスタＴＲ２のゲート電極に入力される。
上側メモリマクロ１１０Ａから出力された読み出しデータ信号は、トランジスタＴＲ１およびＴＲ２のソース電極に入力される。下側メモリマクロ１１０Ｂから出力された読み出しデータ信号は、トランジスタＴＲ３およびＴＲ４のソース電極に入力される。ＮＯＴゲートＮ１は、クロック信号を反転させてトランジスタＴＲ２およびＴＲ３に出力する。ここで、トランジスタＴＲ１、ＴＲ２、ＴＲ３、およびＴＲ４は、例えば、ＦＥＴ（Ｆｉｅｌｄ  Ｅｆｆｅｃｔ  Ｔｒａｎｓｉｓｔｏｒ）である。
トランジスタＴＲ１、ＴＲ２、ＴＲ３、およびＴＲ４から出力された信号は、バッファＢ１に入力される。バッファＢ１は、入力された信号の電圧レベルを調整してスイッチファブリック１３０へ出力する。
このように回路を構成することにより、クロック信号がハイレベルの場合、トランジスタＴＲ１、ＴＲ２がＯＮ、トランジスタＴＲ３、ＴＲ４がＯＦＦとなる結果、２：１マルチプレクサ１２１は、上側メモリマクロ１１０Ａからの読み出しデータ信号のみを出力する。クロック信号がローレベルの場合、トランジスタＴＲ１、ＴＲ２がＯＦＦ、トランジスタＴＲ３、ＴＲ４がＯＮとなる結果、２：１マルチプレクサ１２１は、下側メモリマクロ１１０Ｂからの読み出しデータ信号のみを出力する。その結果、メモリマクロ１１０Ａ、１１０Ｂからの読み出しデータ信号がシリアル変換される。このとき、２：１マルチプレクサ１２１により変換されたシリアル信号の転送速度は、メモリマクロ１１０からのパラレル信号の転送速度の２倍にしているので、パラレル−シリアル変換によってスループットが低下することはない。
図５は、２：１マルチプレクサ１２１の動作を示す真理値表である。同図を参照すると、クロック信号Ｃｌｋがローレベル（０）の場合、上側メモリマクロからの読み出しデータＤ１の値にかかわりなく、下側メモリマクロからの読み出しデータＤ２がそのまま信号Ｑとして出力される。クロック信号Ｃｌｋがハイレベル（１）の場合、下側メモリマクロからの読み出しデータＤ２の値にかかわりなく、上側メモリマクロからの読み出しデータＤ１がそのまま出力される。
図６は、２：１マルチプレクサ１２１の動作を示す信号波形図である。同図を参照すると、クロック信号Ｃｌｋがハイレベルの間、２：１マルチプレクサ１２１は、上側メモリマクロ１１０Ａからの読み出しデータ信号Ｄ１をスイッチファブリック１３０に信号Ｑとして出力する。そして、クロック信号Ｃｌｋがローレベルの間、２：１マルチプレクサ１２１は、下側メモリマクロ１１０Ｂからの読み出しデータ信号Ｄ２をスイッチファブリック１３０に信号Ｑとして出力する。
図６の信号波形から明らかなように、入力されるパラレル形式の読み出しデータ信号がクロックサイクルと同じ時間幅を持っていたのに対し、２：１のマルチプレクサ１２１によってシリアル変換されたデータ信号はクロックサイクルの半分の時間幅となっている。これによって、パラレル形式で転送する場合と同じスループットが得られる。
次に、図７〜図１０を参照して、１：２デマルチプレクサの構成および動作について説明する。
図７Ａは、１：２デマルチプレクサ１２２の構成を示す回路図である。同図を参照すると、１：２デマルチプレクサ１２２は、ハイスルーラッチＬＨ１と、フリップフロップＦＦ１およびＦＦ２とを有する。ハイスルーラッチＬＨ１と、フリップフロップＦＦ１およびＦＦ２には、位相が同一のクロック信号が入力される。ここでハイスルーラッチ（Ｈｉｇｈ−ｔｈｒｏｕｇｈ  ｌａｔｃｈ）とは、クロックＣｌｋがハイレベル（１）の時にデータＤを信号Ｑとしてそのまま出力し、ロウレベル（０）の時に値を保持するラッチのことをいう。一般的なハイスルーラッチは、図７Ｂに示すように、クロックＣｌｋで開閉される入力部のゲートとそれに続くインバータを使ったループとから構成される。
ハイスルーラッチＬＨ１にはスイッチファブリック１３０からの信号、例えば、書き込みデータ信号が入力される。ハイスルーラッチＬＨ１から出力された信号は、フリップフロップＦＦ１に入力される。フリップフロップＦＦ１から出力された書き込みデータ信号は、上側メモリマクロ１１０Ａに入力される。一方、フリップフロップＦＦ２にはスイッチファブリック１３０からの書き込みデータ信号が直接入力される。そして、フリップフロップＦＦ２から出力された信号は、下側メモリマクロ１１０Ｂに入力される。
図８は、ハイスルーラッチＬＨ１の動作を示す真理値表である。同図を参照すると、ハイスルーラッチＬＨ１は、クロック信号Ｃｌｋがハイレベル（１）の場合、入力信号Ｄをそのまま信号Ｑとして出力し、その出力値を保持する。クロック信号Ｃｌｋがローレベル（０）の場合、ハイスルーラッチＬＨ１は保持している値Ｑ０を出力する。
図９は、フリップフロップＦＦ１およびＦＦ２の動作を示す真理値表である。同図を参照すると、フリップフロップＦＦ１およびＦＦ２はクロック信号Ｃｌｋの立ち上がりエッジで、入力信号Ｄをそのまま信号Ｑとして出力し、その出力値Ｑ０を保持する。そして、クロック信号Ｃｌｋの立ち下がりエッジで、フリップフロップＦＦ１およびＦＦ２は保持している値Ｑ０を出力する。
このように回路を構成することにより、クロック信号Ｃｌｋがハイレベルの場合、フリップフロップＦＦ１はハイスルーラッチＬＨ１からの出力値を透過的に出力し、クロック信号Ｃｌｋがローレベルの間、保持値を出力する。クロック信号Ｃｌｋが立ち上がりエッジになると、フリップフロップＦＦ１およびＦＦ２は入力信号を透過的に出力し、その出力値を保持する。
ハイスルーラッチＬＨ１によりシリアル形式の書き込みデータがラッチされるので、各メモリマクロ１１０は、書き込むべきデータのみを取り込むことができる。また、１：２デマルチプレクサ１２２はフリップフロップＦＦ１、ＦＦ２で出力信号の値を保持するので、パラレル信号の転送速度は、シリアル−パラレル変換およびパラレル−シリアル変換前の速度に戻り、メモリマクロ１１０Ａ、１１０Ｂにおける信号処理に不都合が生じることはない。
図１０は、１：２デマルチプレクサ１２２の動作を示す信号波形図である。ハイスルーラッチＬＨ１は、クロックがハイレベルの期間に入力したスイッチファブリック１３０からのシリアル形式の書き込みデータ信号を取り込む。このとき取り込むデータ信号は書き込みデータ信号Ｄのクロックサイクルの前半分のデータ信号である。ハイスルーラッチＬＨ１は、クロックがハイレベルの期間はそのまま取り込んだデータ信号を出力し、クロックがロウレベルの期間も保持して出力する（ハイスルーラッチ出力ＬＱ）。このハイスルーラッチ出力ＬＱをフリップフロップＦＦ１はクロックの立ち上がりエッジで取り込み、上側メモリマクロ１１０Ａへのパラレル信号ＡＱとして出力する。一方、フリップフロップＦＦ２はクロックがロウレベルの期間に入力された書き込みデータ信号Ｄをクロックの立ち上がりエッジで取り込み、下側メモリマクロ１１０Ｂへのパラレル信号ＢＱとして出力する。図１０からわかるように、１：２デマルチプレクサ１２２によるパラレル変換では、書き込みデータ信号がパラレル−シリアル変換およびシリアル−パラレル変換される前の時間幅に戻される。
図１１〜図１４を参照して、スイッチファブリック１３０の構成について説明する。
図１１は、スイッチファブリック１３０の構成を示すブロック図である。同図を参照すると、スイッチファブリック１３０は、読み出しデータ制御回路１３１および書き込みデータ制御回路１３２を有する。
図１２は、読み出しデータ制御回路１３１の構成を示す回路図である。同図を参照すると、読み出しデータ制御回路１３１は、４つのセレクタＳＥ１、ＳＥ２、ＳＥ３、およびＳＥ４と、４つの選択論理回路ＬＧ１、ＬＧ２、ＬＧ３、およびＬＧ４とを有する。
セレクタＳＥ１、ＳＥ２、ＳＥ３、およびＳＥ４には、それぞれ、隣り合う上下左右のスイッチファブリック１３０Ｕ、１３０Ｄ、１３０Ｌ、１３０Ｒのうち、自身が出力する方向にあるもの以外の３つのスイッチファブリックから読み出されたデータ信号が入力される。これに、変換部１２０を経由してメモリマクロ１１０から読み出されたデータ信号を加えた合計４つのデータ信号がセレクタＳＥに入力される。セレクタＳＥ１は選択論理回路ＬＧ１の制御に従い、４つの入力データ信号のうちいずれかを選択して、上側のスイッチファブリック１３０Ｕへ出力する。セレクタＳＥ２、ＳＥ３、およびＳＥ４は、選択論理回路ＬＧ２、ＬＧ３、およびＬＧ４の制御に従い、入力データ信号のうちいずれかを選択する。そして各セレクタは、左側のスイッチファブリック１３０Ｌ、下側のスイッチファブリック１３０Ｄ、および右側のスイッチファブリック１３０Ｒへ選択したデータ信号をそれぞれ出力する。
選択論理回路ＬＧ１〜ＬＧ４は、例えば、以下のようにして入力信号のいずれかを選択する。まず、読み出しを行うメモリマクロ１１０を特定するアドレスの上位ビットをメモリマクロの２次元アレイにおける横方向番地ＭＸとし、下位ビットをメモリマクロの２次元アレイにおける縦方向番地ＭＹとする。そして、これらの値をスイッチファブリック自身の横方向番地ＳＸ、縦方向番地ＳＹと比較して入力信号のいずれかを選択する。
図１３は、選択論理回路の動作を示すフローチャートである。この動作は、スイッチファブリック１３０の読み出しデータ制御回路１３１に読み出しを行うメモリマクロのアドレスが入力されたときに開始する。同図を参照すると、選択論理回路は読み出しを行うメモリマクロのアドレスを読み出し、その上位ビットをメモリマクロの横方向番地ＭＸ、下位ビットをメモリマクロの縦方向番地ＭＹとする（ステップＳ１）。
選択論理回路は、ＭＸおよびＭＹと予め定義されたスイッチファブリック自身の横方向番地ＳＸおよび縦方向番地ＳＹと比較し、まず、ＭＸがＳＸより大きいか否かを判断する（ステップＳ３）。ＭＸがＳＸより大きければ（ステップＳ３：ＹＥＳ）、選択論理回路ＬＧ１〜ＬＧ３はセレクタＳＥ１〜ＳＥ３に右側のスイッチファブリック１３０Ｒからの入力信号を選択して出力させる（ステップＳ５）。
ＭＸがＳＸより大きくなければ（ステップＳ３：ＮＯ）、ＭＸがＳＸより小さいか否かを判断する（ステップＳ７）。ＭＸがＳＸより小さければ（ステップＳ７：ＹＥＳ）、選択論理回路ＬＧ１、ＬＧ３、またはＬＧ４は、セレクタＳＥ１、ＳＥ３、またはＳＥ４に、左側のスイッチファブリック１３０Ｌからの入力信号を選択して出力させる（ステップＳ９）。
ＭＸがＳＸより小さくなければ（ステップＳ７：ＮＯ）、ＭＹがＳＹより大きいか否かを判断する（ステップＳ１１）。ＭＹがＳＹより大きければ（ステップＳ１１：ＹＥＳ）、選択論理回路ＬＧ２、ＬＧ３、またはＬＧ４は、セレクタＳＥ２、ＳＥ３、またはＳＥ４に、上側のスイッチファブリック１３０Ｕからの入力信号を選択して出力させる（ステップＳ１３）。
ＭＹがＳＹより大きくなければ（ステップＳ１１：ＮＯ）、ＭＹがＳＹより小さいか否かを判断する（ステップＳ１５）。ＭＹがＳＹより小さければ（ステップＳ１５：ＹＥＳ）、選択論理回路ＬＧ１、ＬＧ２、またはＬＧ４は、セレクタＳＥ１、ＳＥ２、またはＳＥ４に、下側のスイッチファブリック１３０Ｄからの入力信号を選択して出力させる（ステップＳ１７）。
ＭＹがＳＹより小さくなければ（ステップＳ１５：ＮＯ）、選択論理回路ＬＧ１〜ＬＧ４は、セレクタＳＥ１〜ＳＥ４に、変換部１２０を経由したメモリマクロ１１０からの入力信号を選択して出力させる（ステップＳ１９）。
ステップＳ５、Ｓ９、Ｓ１３、Ｓ１７、またはＳ１９の後、選択論理回路ＬＧ１〜ＬＧ４は、動作を終了する。
図１４は、書き込みデータ制御回路１３２の構成を示す回路図である。同図を参照すると、書き込みデータ制御回路１３２は、５つのセレクタＳＥ５、ＳＥ６、ＳＥ７、ＳＥ８、およびＳＥ９と、５つの選択論理回路ＬＧ５、ＬＧ６、ＬＧ７、ＬＧ８、およびＬＧ９とを有する。
セレクタＳＥ５、ＳＥ６、ＳＥ７、およびＳＥ８には、それぞれ、隣り合う上下左右のスイッチファブリック１３０Ｕ、１３０Ｄ、１３０Ｌ、１３０Ｒのうち、自身が出力する方向のもの以外の３つのスイッチファブリックからのデータ信号が入力される。メモリマクロ１１０に出力するセレクタＳＥ９には、隣り合う上下左右のスイッチファブリック１３０Ｕ、１３０Ｄ、１３０Ｌ、１３０Ｒからのデータ信号が入力される。
セレクタＳＥ５、ＳＥ６、ＳＥ７、およびＳＥ８は、それぞれ選択論理回路ＬＧ５、ＬＧ６、ＬＧ７、およびＬＧ８の制御に従い、出力方向からの入力信号を除いた３つの入力信号のうちいずれかを選択して、それぞれ、上側、左側、下側、および右側のスイッチファブリック１３０へ選択した信号を出力する。セレクタＳＥ９は選択論理回路ＬＧ９の制御に従い、上下左右のスイッチファブリック１３０からの４つの入力データ信号のうちいずれかを選択し、変換部１２０を経由してメモリマクロ１１０に選択したデータ信号を出力する。
図１５は、メモリ入出力部１４０の構成を示す回路図である。同図を参照すると、メモリ入出力部１４０は、１個の１：２デマルチプレクサ１４１と、３個の２：１マルチプレクサ１４２とを有する。そして、これらの１：２デマルチプレクサ１４１および２：１マルチプレクサ１４２には、位相が同一のクロック信号が入力される。
１：２デマルチプレクサ１４１はスイッチファブリック１３０から出力されたシリアル信号である読み出しデータ信号を、上側ロジックマクロ１５１Ａと下側ロジックマクロ１５１Ｂへの２系統からなる１６ビットの読み出しデータ信号にパラレル変換する。１：２デマルチプレクサ１４１はパラレル変換した読み出しデータ信号を上側ロジックマクロ１５１Ａおよび下側ロジックマクロ１５１Ｂに入力する。
上側ロジックマクロ１５１Ａから出力された１６ビットの書き込みデータ信号と、下側ロジックマクロ１５１Ｂから出力された１６ビットの書き込みデータ信号とが、２：１マルチプレクサ１４２によってシリアル変換される。このシリアル化された書き込みデータ信号がスイッチファブリック１３０に入力され、メモリマクロ１１０に転送される。
また、上側ロジックマクロ１５１Ａから出力された１４ビットのアドレス信号と、下側ロジックマクロ１５１Ｂから出力された１４ビットのアドレス信号とが、２：１マルチプレクサ１４２によってシリアル変換され、スイッチファブリック１３０に入力される。
同様に、上側ロジックマクロ１５１Ａから出力された２ビットのコマンド信号と、下側ロジックマクロ１５１Ｂから出力された２ビットのコマンド信号とが、２：１マルチプレクサ１４２によってシリアル変換され、スイッチファブリック１３０に入力される。
ここで、１：２デマルチプレクサ１４１の構成は、図７に示した１：２デマルチプレクサ１２２の構成と同様である。２：１マルチプレクサ１４２の構成は、図４に示した２：１マルチプレクサ１２１の構成と同様である。
なお、本実施形態ではメモリマクロ１１０は、１ｋワード、１６ビットのＳＲＡＭマクロとしたが、任意のワード、ビット構成のものであってよい。
本実施形態では、メモリマクロ１１０内のメモリはＳＲＡＭマクロとしたが、これをＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）としてもよい。ＤＲＡＭとすれば、ＤＲＡＭは回路面積が小さいために、より大容量のメモリを搭載できる。また、メモリマクロのメモリは、フラッシュメモリやＭＲＡＭ（Ｍａｇｎｅｔｉｃ  ＲＡＭ）やＲｅＲＡＭ（Ｒｅｓｉｓｔａｎｃｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）といった不揮発性メモリとしてもよい。不揮発性メモリを用いることで、一時的に使われないメモリ領域の電源を止めて省電力モードとすることが可能である。
本実施形態では、メモリマクロを４×４の２次元アレイ状に配置したが、アレイサイズは他の構成であってもよい。
本実施形態では、メモリ入出力部１４０が、読み出しデータ（シリアル信号）のパラレル変換と、書き込みデータ（パラレル信号）のシリアル変換を行う構成としているが、これらの変換をロジックマクロ１５１が行う構成としてもよい。
本実施形態では、２：１マルチプレクサ１２１が、トランジスタ（ＴＲ１、ＴＲ２、ＴＲ３、およびＴＲ４）や論理ゲート（Ｎ１、Ｂ１）を使用して、パラレル信号のシリアル変換を行う構成とした。しかし、２：１マルチプレクサ１２１は、これらの部品または回路を用いる構成に限られない。図６のタイミングチャートで示したように、スループットを低下させないように、メモリマクロから出力された信号を時分割でシリアル信号に多重化し、複数倍の速度で転送する機能が実現できれば、他の回路または部品を使用してシリアル変換を行ってもよい。
本実施形態では、１：２デマルチプレクサ１２２が、ハイスルーラッチ（ＬＨ１）やフリップフロップ（ＦＦ１、ＦＦ２）を使用して、シリアル信号のパラレル変換を行う構成としているが、１：２デマルチプレクサ１２２は、これらの部品または回路を使用する構成に限られない。図１０のタイミングチャートで示したように、パラレル変換において、パラレル信号を出力する周期を、シリアル変換前の周期に戻すことができるのであれば、他の部品または回路を使用してパラレル変換してもよい。
本実施形態では、２個のメモリマクロ１１０Ａ、１１０Ｂが１個のスイッチファブリック１３０を共有する構成としているが、２個より多くの複数のメモリマクロ（回路ブロック）が１個のスイッチファブリックを共有する構成としてもよい。
以上説明したように、本実施形態によれば、メモリマクロのような複数の回路ブロックが入出力する信号をシリアル信号に変換して、このシリアル信号をスイッチファブリックが転送するので、複数の回路ブロックで１個のスイッチファブリックを共有できる。その結果、スイッチファブリックおよびスイッチファブリック周辺の配線による面積オーバーヘッドを小さくできる。そして、面積オーバーヘッドの低減により、スイッチファブリック等の配置コストが低減する。また、限られたチップ面積により多くの配線を確保できるので、プログラマブルデバイスの性能を向上できる。
例えば、本実施形態のプログラマブルメモリデバイス１００の場合、２個のメモリマクロ１１０Ａ、１１０Ｂで１個のスイッチファブリック１３０を共有している。そのため、メモリマクロごとにスイッチファブリックを設ける場合と比較して、スイッチファブリックの数は、半分で済み、スイッチファブリック間の水平、垂直方向の２次元メッシュ状の配線数も半減する。以上より、これらの面積オーバーヘッドが非常に小さくなる。
変換部１２０は、パラレル−シリアル変換において、複数のメモリマクロ１１０から出力された信号を、その転送速度の倍の速度で、スイッチファブリック１３０に転送する。そのため、パラレル−シリアル変換によっても、プログラマブルメモリデバイス１００のスループットが低下することはない。
変換部１２０は、シリアル−パラレル変換において、スイッチファブリック１３０から出力されたシリアル信号の転送速度を、変換前の速度に戻して複数のメモリマクロ１１０にそれぞれ入力するので、メモリマクロでの信号処理に支障をきたすことはない。
変換部１２０は１：２デマルチプレクサ１２２を有し、１：２デマルチプレクサ１２２はスイッチファブリック１３０から出力された所定の時点の信号を保持するハイスルーラッチＬＨ１と、フリップフロップＦＦ１およびＦＦ２とを有する。フリップフロップＦＦ１およびＦＦ２は、スイッチファブリック１３０から出力された信号とハイスルーラッチＬＨ１で保持された信号とを互いに同じ時点で格納し、格納した各信号をメモリマクロ１１０Ａ、１１０Ｂのそれぞれに入力する。これより、極めて簡易な構成でシリアル−パラレル変換を実現できる。
［第２の実施形態］
次に、本発明の第２の実施形態について説明する。図１６は、本実施形態のプログラマブルメモリデバイスが有する変換部が備える１：２デマルチプレクサ２２２の構成を示す回路図である。同図を参照すると、本実施形態のプログラマブルメモリデバイスは、変換部およびメモリマクロの構成が異なる点で第１の実施形態のプログラマブルメモリデバイスと相違する。
本実施形態の１：２デマルチプレクサ２２２は、シリアル信号をパラレル信号に変換する回路において、フリップフロップＦＦ１およびＦＦ２を有さず、ハイスルーラッチＬＨ１のみを有する。ハイスルーラッチＬＨ１は、クロック信号がローレベルの間、スイッチファブリックからの信号をラッチする。また本実施形態の１：２デマルチプレクサ２２２は、クロック入力端子を備えたメモリマクロであるクロック同期型メモリマクロを有する。図１６の上側クロック同期型メモリマクロ１１９Ａは、ハイスルーラッチＬＨ１から出力された信号をクロック信号に同期して取り込む。図１６の下側クロック同期型メモリマクロ１１９Ｂは、スイッチファブリック１３０から出力された信号をクロック信号に同期して取り込む。
以上説明したように本実施形態によれば、変換部は、スイッチファブリックから出力された所定の時点の信号をハイスルーラッチＬＨ１により保持する。そして、同期型メモリマクロ１１９Ａ、１１９Ｂがスイッチファブリック１３０から出力された信号またはハイスルーラッチＬＨ１が保持した信号を互いに同じ時点で格納する。そのため、フリップフロップが不要となり、より簡易な構成でシリアル信号をパラレル信号に変換でき、製造コストが低減する。
［第３の実施形態］
次に、本発明の第３の実施形態について説明する。図１７は、本実施形態のプログラマブルメモリデバイスが有する変換部２２０の構成を示す回路図である。同図を参照すると、本実施形態のプログラマブルメモリデバイスは、変換部およびメモリマクロの構成が異なる以外は、第１の実施形態のプログラマブルメモリデバイス１００と同様の構成である。
本実施形態の変換部２２０は、シリアル信号をパラレル信号に変換する回路において、フリップフロップＦＦ１、ＦＦ２、およびハイスルーラッチＬＨ１の代わりに、ＮＯＴゲートＮ２を有する。ＮＯＴゲートＮ２は、クロック信号を反転して下側クロック同期型メモリマクロ１１９Ｂに出力する。また、スイッチファブリック１３０から出力された書き込みデータ信号を分岐し、上側クロック同期型メモリマクロ１１９Ａおよび下側クロック同期型メモリマクロ１１９Ｂに入力する。
各クロック同期型メモリマクロ１１９Ａ、１１９Ｂは互いに逆位相のクロック信号に同期して書き込みデータ信号を取り込むので、それぞれに書き込むべきデータ信号のみを取り出すことができる。
以上説明したように、本実施形態によれば、変換部２２０が互いに逆位相のクロック信号をメモリマクロ１１９Ａ、１１９Ｂに出力し、各メモリマクロ１１９Ａ、１１９Ｂは、これらのクロック信号に同期して信号を取り込む。よって、フリップフロップ回路やハイスルーラッチ回路が不要となる。そのため、より簡易な構成でシリアル信号をパラレル信号に変換できるので、製造コストが低減する。
［第４の実施形態］
次に、本発明の第４の実施形態について説明する。図１８は、本実施形態のスイッチファブリック２３０の構成を示す回路図である。同図を参照すると、本実施形態のスイッチファブリック２３０は、読み出しデータ信号を制御する機能と、書き込みデータ信号を制御する機能とをともに有する１つの回路を実装する点で、第１の実施形態と異なる。
図１８を参照すると、スイッチファブリック２３０は、第１の実施形態における読み出しデータ制御回路１３１および書き込みデータ制御回路１３２の代わりに、セレクタＳＥ１ｃ、ＳＥ２ｃ、ＳＥ３ｃ、ＳＥ４ｃ、およびＳＥ５ｃと、選択論理回路ＬＧ１ｃ、ＬＧ２ｃ、ＬＧ３ｃ、ＬＧ４ｃ、およびＬＧ５ｃと、を有する。
すなわち、スイッチファブリックでの書き込みデータと読み出しデータとは入力方向あるいは出力方向が異なる。そのため、同一のメモリマクロで同時にメモリ読み出しとメモリ書き込みの動作を行わない場合には、接続方向を制御する、読み出しデータ制御回路および書き込みデータ制御回路を一つの回路で兼用することが可能である。
セレクタＳＥ１ｃ、ＳＥ２ｃ、ＳＥ３ｃ、およびＳＥ４ｃには、それぞれ、出力方向を除き、隣接する３つのスイッチファブリックからの読み出しデータ信号および書き込みデータ信号と、メモリブロック１１０からのデータ信号とが入力される。セレクタＳＥ１ｃ、ＳＥ２ｃ、ＳＥ３ｃ、およびＳＥ４ｃは、選択論理回路ＬＧ１ｃ、ＬＧ２ｃ、ＬＧ３ｃ、ＬＧ４ｃ、およびＬＧ５ｃの制御に従って、４つの入力信号のうち、いずれか１つを選択してスイッチファブリックに出力する。
セレクタＳＥ５ｃには、隣接する４つのスイッチファブリック２３０Ｕ、２３０Ｄ、２３０Ｌ、２３０Ｒからの読み出しデータ信号または書き込みデータ信号が入力される。セレクタＳＥ５ｃは、選択論理回路ＬＧ５ｃの制御に従って、４つの入力信号のうち、いずれか１つを選択して変換部１２０に出力する。
以上説明したように、本実施形態によれば、書き込みデータ信号制御用の処理と、読み込みデータ信号制御用の処理とを一の回路で兼用できる。そのため、スイッチファブリックの部品点数を少なくし、あるいはスイッチファブリックの回路の規模を小さくすることができる。
［第５の実施形態］
次に、本発明の第５の実施形態について説明する。図１９は、本実施形態のプログラマブルメモリデバイス３００の構成を示すブロック図である。同図を参照すると、本実施形態のプログラマブルメモリデバイス３００は、４個のメモリマクロ３１０で１個のスイッチファブリック３３０を共有する点で、第１の実施形態によるプログラマブルメモリデバイス１００と異なる。ここで、１個のスイッチファブリック３３０を共有する４つのメモリマクロを、それぞれ左上メモリマクロ３１０Ａ、右上メモリマクロ３１０Ｂ、左下メモリマクロ３１０Ｃ、右下メモリマクロ３１０Ｄとする。
図１９を参照すると、プログラマブルメモリデバイス３００は、変換部１２０の代わりに変換部３２０を有し、メモリ入出力部１４０の代わりにメモリ入出力部３４０を有する以外は、第１の実施形態のプログラマブルメモリデバイス１００と同様の構成である。すなわち、スイッチファブリック３３０は２次元アレイ状に配列され、一部のスイッチファブリック３３０はメモリ入出力部３４０を介してロジックデバイス３５０を構成するロジックマクロ３５１と接続している。本実施形態においても、図１９に示すようにメモリマクロ３１０が４×４の２次元アレイ状に１６個配列した構成とした。
変換部３２０は、第１の実施形態で用いた２：１マルチプレクサ及び１：２デマルチプレクサの代わりに、１個の４：１マルチプレクサ３２１と、３個の１：４デマルチプレクサ３２２とを有する。
図２０は、本実施形態の４：１マルチプレクサ３２１の構成を示す回路図である。同図を参照すると、４：１マルチプレクサ３２１は、ＡＮＤゲートＡＤ１、ＡＤ２、ＡＤ３、およびＡＤ４と、トランジスタＴＲ５、ＴＲ６、ＴＲ７、およびＴＲ８と、バッファＢ２とを有する。
ＡＮＤゲートＡＤ１には、クロック信号と、そのクロック信号の位相を９０度進めたクロック信号（以下、「９０°シフトクロック信号」という）を反転した信号とが入力される。ＡＮＤゲートＡＤ２には、クロック信号と、９０°シフトクロック信号とが入力される。ＡＮＤゲートＡＤ３には、クロック信号を反転した信号と、９０°シフトクロック信号とが入力される。ＡＮＤゲートＡＤ４には、クロック信号を反転した信号と、９０°シフトクロック信号を反転した信号とが入力される。
ＡＮＤゲートＡＤ１、ＡＤ２、ＡＤ３、およびＡＤ４は、入力信号の論理積を、それぞれトランジスタＴＲ５、ＴＲ６、ＴＲ７、およびＴＲ８のゲート電極へ出力する。
トランジスタＴＲ５のソース電極には、左上メモリマクロ３１０Ａからの読み出しデータが入力される。トランジスタＴＲ６のソース電極には、右上のメモリマクロ３１０Ｂからの読み出しデータが入力される。トランジスタＴＲ７のソース電極には、左下のメモリマクロ３１０Ｃからの読み出しデータが入力される。トランジスタＴＲ８のソース電極には、右下メモリマクロ３１０Ｄからの読み出しデータが入力される。
トランジスタＴＲ５、ＴＲ６、ＴＲ７、およびＴＲ８は、ゲート電極に入力された信号がハイレベルのとき、ソース電極に入力された信号をバッファＢ１に出力する。
バッファＢ２は、入力信号の電圧レベルを調整してスイッチファブリック３３０に出力する。
図２１は、４：１マルチプレクサ３２１の動作を示すカルノー図である。同図を参照すると、クロック信号Ｃｌｋ１がハイレベル（１）、かつ９０°シフトクロック信号Ｃｌｋ２がローレベル（０）の場合、トランジスタＴＲ５のみがＯＮとなる。このため、４：１マルチプレクサ３２１は、左上メモリマクロ３１０Ａからの読み出しデータ（ＵＬ）を、スイッチファブリック３３０に出力する。
クロック信号Ｃｌｋ１、９０°シフトクロック信号Ｃｌｋ２がともにハイレベル（１）の場合、トランジスタＴＲ６のみがＯＮとなる。このため、４：１マルチプレクサ３２１は、右上のメモリマクロ３１０Ｂからの読み出しデータ（ＵＲ）を、スイッチファブリック３３０に出力する。
クロック信号Ｃｌｋ１がローレベル（０）、かつ９０°シフトクロック信号Ｃｌｋ２がハイレベル（１）の場合、トランジスタＴＲ７のみがＯＮとなる。このため、４：１マルチプレクサ３２１は、左下のメモリマクロ３１０Ｃからの読み出しデータ（ＬＬ）を、スイッチファブリック３３０に出力する。
クロック信号Ｃｌｋ１、９０°シフトクロック信号Ｃｌｋ２がともにローレベル（０）の場合、トランジスタＴＲ８のみがＯＮとなる。このため、４：１マルチプレクサ３２１は、右下メモリマクロ３１０Ｄからの読み出しデータ（ＬＲ）を、スイッチファブリック３３０に出力する。
図２２は、４：１マルチプレクサ３２１の動作を示す信号波形図である。同図を参照すると、クロック信号Ｃｌｋ１がハイレベル、かつ９０°シフトクロック信号Ｃｌｋ２がローレベルの場合、４：１マルチプレクサ３２１は左上メモリマクロ３１０Ａからの読み出しデータＵＬをスイッチファブリック３３０に信号Ｑとして出力する。
クロック信号Ｃｌｋ１、９０°シフトクロック信号Ｃｌｋ２がともにハイレベルの場合、４：１マルチプレクサ３２１は右上メモリマクロ３１０Ｂからの読み出しデータＵＲをスイッチファブリック３３０に信号Ｑとして出力する。
クロック信号Ｃｌｋ１がローレベル、かつ９０°シフトクロック信号Ｃｌｋ２がハイレベルの場合、４：１マルチプレクサ３２１は左下メモリマクロ３１０Ｃからの読み出しデータＬＬをスイッチファブリック３３０に信号Ｑとして出力する。
クロック信号Ｃｌｋ１、９０°シフトクロック信号Ｃｌｋ２がともにローレベルの場合、４：１マルチプレクサ３２１は右下メモリマクロ３１０Ｄからの読み出しデータをスイッチファブリック３３０に信号Ｑとして出力する。
このように、４：１マルチプレクサ３２１は読み出しデータ信号をシリアル変換する際に、シリアル信号の転送速度を変換前の４倍の速度にしているので、シリアル変換によりスループットが低下することはない。
図２３は、本実施形態の１：４デマルチプレクサ３２２の構成を示す回路図である。同図を参照すると、１：４デマルチプレクサ３２２はハイスルーラッチＬＨ２およびＬＨ３とフリップフロップＦＦ３、ＦＦ４、ＦＦ５、ＦＦ６、およびＦＦ７とを有する。
フリップフロップＦＦ３およびＦＦ７と、ハイスルーラッチＬＨ２およびＬＨ３とにスイッチファブリック３３０からの書き込みデータ信号が入力される。
フリップフロップＦＦ３は９０°シフトクロック信号Ｃｌｋ２が立ち上がりエッジのとき、入力信号をフリップフロップＦＦ４に透過的に出力し、９０°シフトクロック信号Ｃｌｋ２が立ち下がりエッジのとき保持値を出力する。フリップフロップＦＦ４はクロック信号Ｃｌｋ１が立ち上がりエッジのとき、書き込みデータ信号を左上メモリマクロ３１０Ａに透過的に出力し、その出力を所定時間保持する。
ハイスルーラッチＬＨ２はクロック信号Ｃｌｋ１がハイレベルの場合、入力信号をフリップフロップＦＦ５に透過的に出力し、クロック信号Ｃｌｋ１がローレベルの場合、保持値を出力する。フリップフロップＦＦ５は、クロック信号Ｃｌｋ１が立ち上がりエッジになると、書き込みデータ信号を右上メモリマクロ３１０Ｂに透過的に出力し、その出力を所定時間保持する。
ハイスルーラッチＬＨ３は９０°シフトクロック信号Ｃｌｋ２がハイレベルの場合、書き込みデータ信号をフリップフロップＦＦ６に透過的に出力し、９０°シフトクロック信号Ｃｌｋ２がローレベルの場合、保持値を出力する。フリップフロップＦＦ６は、クロック信号Ｃｌｋ１が立ち上がりエッジになると、書き込みデータ信号を左下メモリマクロ３１０Ｃに透過的に出力し、クロック信号Ｃｌｋ１が立ち下がりエッジになると、保持値を出力する。
フリップフロップＦＦ７はクロック信号Ｃｌｋ１が立ち上がりエッジになると、書き込みデータ信号を右下メモリマクロ３１０Ｄに透過的に出力し、その出力を所定時間保持する。
このように、位相を９０度ずらしたクロック信号Ｃｌｋ２にそれぞれ同期したハイスルーラッチＬＨ２、ＬＨ３で入力信号をラッチするので、各メモリマクロ３１０はスイッチファブリック３３０から出力されたシリアル信号から書き込むべきデータ信号のみを取り込むことができる。
１：４デマルチプレクサ３２２はフリップフロップ（ＦＦ４、ＦＦ５、ＦＦ６、およびＦＦ７）で出力値を保持するので、スイッチファブリック３３０からのシリアル信号の転送速度を変換前の速度に戻すことができる。
図２４は、１：４デマルチプレクサ３２２の動作を示す信号波形図である。同図を参照すると、１：４デマルチプレクサ３２２は、フリップフロップＦＦ３の９０°シフトクロック信号Ｃｌｋ２による出力ＦＦＱを、クロック信号Ｃｌｋ１に同期させて左上メモリマクロ３１０Ａへの書き込みデータＡＱとして出力する。また、ハイスルーラッチＬＨ２のクロック信号Ｃｌｋ１による出力ＬＨＱ１を、クロック信号Ｃｌｋ１に同期させて右上メモリマクロ３１０Ｂへの書き込みデータＢＱとして出力する。また、ハイスルーラッチＬＨ３の９０°シフトクロック信号Ｃｌｋ２による出力ＬＨＱ２を、クロック信号Ｃｌｋ１に同期させて左下メモリマクロ３１０Ｃへの書き込みデータＣＱとして出力する。また、スイッチファブリック３３０から出力された書き込みデータＤを、クロック信号Ｃｌｋ１に同期させて右下メモリマクロ３１０Ｄへの書き込みデータＤＱとして出力する。
以上説明したように、本実施形態によれば、４個のメモリマクロ３１０が１個のスイッチファブリック３３０を共有できるので、スイッチファブリックおよび配線の面積オーバーヘッドが更に低減する。
［第６の実施形態］
次に、本発明の第６の実施形態について説明する。図２５は、本実施形態のプログラマブルメモリデバイスが有する変換部が備える１：４デマルチプレクサ３２３の構成を示す回路図である。同図を参照すると、本実施形態のプログラマブルメモリデバイスは、変換部およびメモリマクロの構成が異なる点で第５の実施形態のプログラマブルメモリデバイスと相違する。
本実施形態の１：４デマルチプレクサ３２３は、シリアル信号をパラレル信号に変換する回路において、フリップフロップＦＦ４、ＦＦ５、ＦＦ６、およびＦＦ７を有さず、フリップフロップＦＦ３と、ハイスルーラッチＬＨ２およびＬＨ３とのみを有する。また本実施形態の１：４デマルチプレクサ３２３は、クロック入力端子を備えたメモリマクロであるクロック同期型メモリマクロを有する。図２５の左上クロック同期型メモリマクロ３１１Ａ、右上クロック同期型メモリマクロ３１１Ｂ、左下クロック同期型メモリマクロ３１１Ｃ、および右下クロック同期型メモリマクロ３１１Ｄは、クロック信号Ｃｌｋ１に同期して１：４デマルチプレクサ３２３から出力された信号を取り込む。
このように回路を構成することにより、各メモリマクロは、書き込むべきデータのみを取り込むことができる。
以上説明したように本実施形態によれば、変換部がスイッチファブリック３３０から出力された所定の時点の信号をハイスルーラッチＬＨ２、ＬＨ３により保持する。そして、メモリマクロ３１１Ａ、３１１Ｂ、３１１Ｃ、３１１Ｄがスイッチファブリック３３０から出力されたデータ信号、フリップフロップＦＦ３およびハイスルーラッチＬＨ２、ＬＨ３が出力するデータ信号を互いに同じ時点で格納する。そのため、データ出力を制御するフリップフロップＦＦ４〜ＦＦ７が不要となり、より簡易な構成でシリアル信号をパラレル信号に変換できるので、製造コストが低減する。
［第７の実施形態］
次に、本発明の第７の実施形態について説明する。図２６は、本実施形態のプログラマブルメモリデバイスが有する変換部が備える１：４デマルチプレクサ３２４の構成を示す回路図である。同図を参照すると、本実施形態のプログラマブルメモリデバイスは、変換部およびメモリマクロの構成が異なる以外は、第６の実施形態のプログラマブルメモリデバイスと同様の構成である。
本実施形態の１：４デマルチプレクサ３２４は、フリップフロップ（ＦＦ４、ＦＦ５、ＦＦ６、ＦＦ７、およびＦＦ８）およびハイスルーラッチ（ＬＨ２、ＬＨ３）を有さず、スイッチファブリック３３０からの書き込みデータを分岐して、各クロック同期型メモリマクロへ出力する。また、１：４デマルチプレクサ３２４は、所定のクロック信号Ｃｌｋ１を左上クロック同期型メモリマクロ３１１Ａに出力する。さらに１：４デマルチプレクサ３２４は、クロック信号Ｃｌｋ１と９０度、１８０度、２７０度位相が異なるクロック信号とを、右上クロック同期型メモリマクロ３１１Ｂ、左下クロック同期型メモリマクロ３１１Ｃ、および右下クロック同期型メモリマクロ３１１Ｄへそれぞれ出力する。
本実施形態の左上クロック同期型メモリマクロ３１１Ａはクロック信号Ｃｌｋ１に同期して１：４デマルチプレクサ３２４により入力された信号を取り込む。本実施形態の右上クロック同期型メモリマクロ３１１Ｂはクロック信号Ｃｌｋ１と比較して９０度位相が異なるクロック信号にそれぞれ同期して、１：４デマルチプレクサ３２４により入力された信号を取り込む。さらに、左下クロック同期型メモリマクロ３１１Ｃおよび右下クロック同期型メモリマクロ３１１Ｄは、クロック信号Ｃｌｋ１と比較して１８０度、２７０度位相が異なるクロック信号にそれぞれ同期して、１：４デマルチプレクサ３２４により入力された信号を取り込む。
各クロック同期型メモリマクロは、互いに位相が異なるクロック信号に同期して信号を取り込むので、それぞれに書き込むべきデータのみを取り出すことができる。
以上説明したように、本実施形態によれば、変換部を構成する１：４デマルチプレクサ３２４が互いに位相が異なるクロック信号をクロック同期型メモリマクロ３１１Ａ、３１１Ｂ、３１１Ｃ、３１１Ｄに出力する。そして、各クロック同期型メモリマクロは、これらのクロック信号に同期して信号を取り込む。そのため、フリップフロップおよびハイスルーラッチが不要となり、より簡易な構成でシリアル信号をパラレル信号に変換でき、製造コストが低減する。
［第８の実施形態］
次に、本発明の第８の実施形態について説明する。図２７は、本実施形態の積層デバイス４００の構成を示す斜視図である。同図を参照すると、ロジックデバイスが配置されたロジックデバイス基板４１０に、プログラマブルメモリデバイスが配置されたプログラマブルメモリデバイス基板４２０が積層されている点で第１の実施形態と異なる。ロジックデバイス基板４１０はメモリ入出力部４４０と重なるロジック入出力部４３０を有し、これらの入出力部間でデータが送受信される。
第１の実施形態で示したように、プログラマブルメモリデバイス１００とロジックデバイス１５０を同一基板上に集積する場合には、メモリ入出力部１４０はプログラマブルメモリデバイス１００の周囲に配置することとした。しかし、本実施形態では、プログラマブルメモリデバイスとロジックデバイスを別々の基板に配置し、それらの基板を積層することとしているので、メモリ入出力部をプログラマブルメモリデバイスの周囲だけでなく内部にも配置することが可能となる。
以上説明したように、本実施形態によれば、ロジックデバイス基板４１０にプログラマブルメモリデバイス基板４２０を積層させるので、メモリ入出力部４４０をプログラマブルメモリデバイス基板４２０の内部にも配置することができる。そのため、基板間のデータ転送量を大きくすることができる。
［第９の実施形態］
次に、本発明の第９の実施形態について説明する。図２８は、本実施形態のプログラマブルプロセッサデバイス５００の構成を示すブロック図である。同図を参照すると、本実施形態のプログラマブルプロセッサデバイス５００は、メモリマクロの代わりにプロセッサ５５１を回路ブロックとして有する点で、第１の実施形態と異なる。
図２８を参照すると、本実施形態のプロセッサ５５１は、メモリマクロの代わりに４×４の２次元アレイ状に配置されたＲＩＳＣ（Ｒｅｄｕｃｅｄ  Ｉｎｔｒｏｄｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ）型のプロセッサ５５１を有する。プログラマブルプロセッサデバイス５００の周囲には、メモリマクロ５１１からなるメモリデバイス５１０が配置されている。
プロセッサ５５１からプロセッサ入出力部５４０まで、あるいはプロセッサ入出力部５４０からプロセッサ５５１までデータ信号を転送するための２次元メッシュ状の配線が形成される。配線の交差部分には配線の上下左右の信号転送方向を制御するためのスイッチファブリック５３０が配置されている。スイッチファブリック５３０を上下２つのプロセッサ５５１で共有し、プロセッサ５５１からのデータ信号を変換部５２０が備える２：１マルチプレクサでシリアル変換する。本実施形態では、４×４の１６個のプロセッサ５５１に対して、２×４の８個のスイッチファブリック５３０が配置される。すなわち、すべてのプロセッサごとにスイッチファブリックを配置する場合と比べ、スイッチファブリック５３０の個数は半減する。また、スイッチファブリック５３０間を接続する２次元メッシュ配線については、水平方向の配線数が半減する。
以上説明したように、本実施形態によれば、プログラマブルプロセッサデバイスにおけるスイッチファブリックおよび配線の面積オーバーヘッドを低減することができる。
本発明は上記実施形態に限定されることなく、特許請求の範囲に記載した発明の範囲内で、種々の変形が可能であり、それらも本発明の範囲内に含まれるものであることはいうまでもない。
この出願は、２００８年９月１６日に出願された日本出願特願２００８−２３６７８３を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０００９】
本発明は、プロセッサやメモリからなる回路ブロックを複数集積した半導体プログラマブルデバイスに適用することができる。
【図１】
2010032861.tif 000003
【図２】
2010032861.tif 000004
【図３】
2010032861.tif 000005
【図４】
2010032861.tif 000006
【図５】
2010032861.tif 000007
【図６】
2010032861.tif 000008
【図７Ａ】
2010032861.tif 000009
【図７Ｂ】
2010032861.tif 000010
【図８】
2010032861.tif 000011
【図９】
2010032861.tif 000012
【図１０】
2010032861.tif 000013
【図１１】
2010032861.tif 000014
【図１２】
2010032861.tif 000015
【図１３】
2010032861.tif 000016
【図１４】
2010032861.tif 000017
【図１５】
2010032861.tif 000018
【図１６】
2010032861.tif 000019
【図１７】
2010032861.tif 000020
【図１８】
2010032861.tif 000021
【図１９】
2010032861.tif 000022
【図２０】
2010032861.tif 000023
【図２１】
2010032861.tif 000024
【図２２】
2010032861.tif 000025
【図２３】
2010032861.tif 000026
【図２４】
2010032861.tif 000027
【図２５】
2010032861.tif 000028
【図２６】
2010032861.tif 000029
【図２７】
2010032861.tif 000030
【図２８】
2010032861.tif 000031
【図２９】
2010032861.tif 000032
【国際調査報告】
2010032861.tif 000033
2010032861.tif 000034
2010032861.tif 000035
2010032861.tif 000036