(57)【要約】チップ面積が小さく、消費電力が少ない半導体プログラマブルデバイスを得るため、本発明の半導体プログラマブルデバイスは、チップ上に配置された複数の行配線と複数の列配線と、行配線と列配線との交点に設けられ、入力されたデータ信号の転送を行う複数のスイッチファブリックと、複数のスイッチファブリックのそれぞれと直接接続され、複数のスイッチファブリックを介してデータ信号の入出力を行う複数の回路ブロックとを有し、回路ブロックは、他の回路ブロックがデータ信号を出力している場合は擬似データ信号を出力し、スイッチファブリックは、データ信号と擬似データ信号に演算を施し、データ信号を出力する。
2010032865.tif 000002
【特許請求の範囲】
【請求項１】
チップ上に配置された複数の行配線と複数の列配線と、前記行配線と前記列配線との交点に設けられ、入力されたデータ信号の転送を行う複数のスイッチファブリックと、前記複数のスイッチファブリックのそれぞれと直接接続され、前記複数のスイッチファブリックを介して前記データ信号の入出力を行う複数の回路ブロックとを有し、
前記回路ブロックは、他の回路ブロックが前記データ信号を出力している場合は擬似データ信号を出力し、
前記スイッチファブリックは、前記データ信号と前記擬似データ信号に演算を施し、前記データ信号を出力する
半導体プログラマブルデバイス。
【請求項２】
請求項１に記載の半導体プログラマブルデバイスにおいて、
前記擬似データ信号は、全てのビットがハイレベルのビットであるハイレベル信号であり、
前記データ信号は、直接接続された回路ブロックと、前記行配線上及び前記列配線上で隣接するスイッチファブリックとから入力され、
前記演算は、前記データ信号と前記ハイレベル信号に対し、ビット毎に行うＡＮＤ演算である
半導体プログラマブルデバイス。
【請求項３】
請求項１に記載の半導体プログラマブルデバイスにおいて、
前記擬似データ信号は、全てのビットがローレベルのビットであるローレベル信号であり、
前記データ信号は、直接接続された回路ブロックと、前記行配線上及び前記列配線上で隣接するスイッチファブリックとから入力され、
前記演算は、前記データ信号と前記ローレベル信号に対し、ビット毎に行うＯＲ演算である
半導体プログラマブルデバイス。
【請求項４】
請求項１から３のいずれか一項に記載の半導体プログラマブルデバイスにおいて、前記回路ブロックがメモリマクロである半導体プログラマブルデバイス。
【請求項５】
請求項１から３のいずれか一項に記載の半導体プログラマブルデバイスにおいて、前記回路ブロックがプロセッサである半導体プログラマブルデバイス。
【請求項６】
チップ上に配置された複数の行配線と複数の列配線と、前記行配線と前記列配線との交点に設けられ、入力されたデータ信号の転送を行う複数のスイッチファブリックと、前記複数のスイッチファブリックのそれぞれと直接接続され、前記複数のスイッチファブリックを介して前記データ信号の入出力を行う複数の回路ブロックとを有する半導体プログラマブルデバイスにおける信号転送方法であって、
前記回路ブロックは、他の回路ブロックが前記データ信号を出力している場合は擬似データ信号を出力し、
前記スイッチファブリックは、前記データ信号と前記擬似データ信号に演算を施し、前記データ信号を出力する
半導体プログラマブルデバイスにおける信号転送方法。
【請求項７】
請求項６に記載の半導体プログラマブルデバイスにおける信号転送方法において、
前記擬似データ信号は、全てのビットがハイレベルのビットであるハイレベル信号であり、
前記データ信号は、直接接続された回路ブロックと、前記行配線上及び前記列配線上で隣接するスイッチファブリックとから入力され、
前記演算は、前記データ信号と前記ハイレベル信号に対し、ビット毎に行うＡＮＤ演算である
半導体プログラマブルデバイスにおける信号転送方法。
【請求項８】
請求項６に記載の半導体プログラマブルデバイスにおける信号転送方法において、
前記擬似データ信号は、全てのビットがローレベルのビットであるローレベル信号であり、
前記データ信号は、直接接続された回路ブロックと、前記行配線上及び前記列配線上で隣接するスイッチファブリックとから入力され、
前記演算は、前記データ信号と前記ローレベル信号に対し、ビット毎に行うＯＲ演算である
半導体プログラマブルデバイスにおける信号転送方法。
【請求項９】
請求項６から８のいずれか一項に記載の半導体プログラマブルデバイスにおける信号転送方法において、前記回路ブロックがメモリマクロである半導体プログラマブルデバイスにおける信号転送方法信号転送方法。
【請求項１０】
請求項６から８のいずれか一項に記載の半導体プログラマブルデバイスにおける信号転送方法において、前記回路ブロックがプロセッサである半導体プログラマブルデバイスにおける信号転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路の構成を変更できる半導体プログラマブルデバイス及び信号転送方法に関する。
【背景技術】
【０００２】
近年、半導体集積回路装置の低コスト化や短ＴＡＴ（Ｔｕｒｎ  Ａｒｏｕｎｄ  Ｔｉｍｅ）化のため、半導体集積回路装置の製作後に回路の構成を変更できる半導体プログラマブルデバイスの開発が盛んになってきている。なお、ＴＡＴとは、受注から納品が完了するまでの時間のことをいう。
半導体プログラマブルデバイスには、ゲートレベルで回路を組み合わせて再構成するＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）から、より大きい回路単位である回路ブロック（例えば、プロセッサやメモリ）を組み合わせて再構成するものまで様々なものがある。
回路ブロックを組み合わせて再構成する半導体プログラマブルデバイスとしては、チップ上で２次元アレイ状に回路ブロックを配列し、メッシュ状の配線によって回路ブロック間を接続する技術が例えば、非特許文献１に開示されている。
図１４は、２次元アレイ状に回路ブロックを配列してメッシュ状の配線によって回路ブロック間を接続した関連する半導体プログラマブルデバイスの一例を示すブロック図である。
図１４に示す関連する半導体プログラマブルデバイスは、回路ブロック２１１が２次元アレイ状に配列されている。なお、回路ブロック２１１としては、プロセッサやメモリ、カスタムハードウエア回路等がある。
また、図１４に示すように２次元アレイ状に配列された回路ブロック２１１のそれぞれは、スイッチファブリック２１３と接続されている。なお、スイッチファブリック２１３は、自身と直接接続された回路ブロック２１１との間で信号の入出力を行う。また、自身に隣接するスイッチファブリック２１３から出力された信号を転送する。
また、図１４に示すように回路ブロック２１１から出力された信号を他の回路ブロック２１１や半導体プログラマブルデバイスの外部へ転送するために、スイッチファブリック２１３同士はメッシュ状の列配線２１４及び行配線２１５によって接続されている。
つまり、スイッチファブリック２１３は、図中の上下方向で隣接する他のスイッチファブリック２１３と列配線２１４で接続され、図中の左右方向で隣接する他のスイッチファブリック２１３と行配線２１５で接続されている。また、回路ブロック２１１とも接続されており、スイッチファブリック２１３には全部で５つの方向の入力及び出力がある。
図１５は、図１４に示した関連する半導体プログラマブルデバイスのスイッチファブリック２１３の構成を示すブロック図である。
図１４に示したスイッチファブリック２１３は図１５に示すように、５つのセレクタ２１３−１と、それぞれのセレクタ２１３−１に接続された選択論理回路２１３−２とを備えている。これは、上述したようにスイッチファブリック２１３には５つの方向に入力及び出力があるからである。
セレクタ２１３−１は、自身が出力する方向以外の４つの方向から入力された信号のうちのいずれか１つを選択して出力する。どの方向からの信号を選択するかは、選択論理回路２１３−２で決定される。なお、選択論理回路２１３−２は例えば、データを転送する方向をアドレス化したものをデコードするためのデコード回路からなる。
【非特許文献１】「プロシーディングス  オブ  アイ・イー・イー・イー  コンピュータ  ソサイエティ  アニュアル  シンポジウム  オン  ＶＬＳＩ（Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ＩＥＥＥ  Ｃｏｍｐｕｔｅｒ  Ｓｏｃｉｅｔｙ  Ａｎｎｕａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  ＶＬＳＩ）」、２００２年、ｐ．１０５−１１２
【発明の開示】
【発明が解決しようとする課題】
【０００３】
非特許文献１に開示されたような半導体プログラマブルデバイスを利用すれば、回路ブロック間の接続を切り替えることにより、半導体集積回路装置の製作後でも回路の構成を変更することができ、半導体集積回路装置の低コスト化や短ＴＡＴ化を実現することができる。
非特許文献１に開示されたような半導体プログラマブルデバイスは、回路の構成の変更ができない通常の半導体集積回路装置と比べ、回路の構成を変更するために回路ブロック間の接続を切り替えるスイッチファブリックとを有している点が異なる。非特許文献１に開示されたような半導体プログラマブルデバイスでは、スイッチファブリックがチップ上で大きな面積を占めている。
その結果、回路ブロックが占める面積によっては、必要十分な数のスイッチファブリックをチップ上に収めることができなくなるという問題点がある。
また、入力信号の転送先を切り替える動作に必要なスイッチファブリックの電力消費量が大きいという問題点がある。
本発明の目的は、上述した課題である、チップ面積が小さく、消費電力が少ない半導体プログラマブルデバイスを得るのが困難であるという問題を解決する半導体プログラマブルデバイス及び半導体プログラマブルデバイスにおける信号転送方法を提供することにある。
【課題を解決するための手段】
【０００４】
本発明の半導体プログラマブルデバイスは、チップ上に配置された複数の行配線と複数の列配線と、行配線と列配線との交点に設けられ、入力されたデータ信号の転送を行う複数のスイッチファブリックと、複数のスイッチファブリックのそれぞれと直接接続され、複数のスイッチファブリックを介してデータ信号の入出力を行う複数の回路ブロックとを有し、回路ブロックは、他の回路ブロックがデータ信号を出力している場合は擬似データ信号を出力し、スイッチファブリックは、データ信号と擬似データ信号に演算を施し、データ信号を出力する。
本発明の半導体プログラマブルデバイスにおける信号転送方法は、
チップ上に配置された複数の行配線と複数の列配線と、行配線と列配線との交点に設けられ、入力されたデータ信号の転送を行う複数のスイッチファブリックと、複数のスイッチファブリックのそれぞれと直接接続され、複数のスイッチファブリックを介してデータ信号の入出力を行う複数の回路ブロックとを有する半導体プログラマブルデバイスにおける信号転送方法であって、回路ブロックは、他の回路ブロックがデータ信号を出力している場合は擬似データ信号を出力し、スイッチファブリックは、データ信号と擬似データ信号に演算を施し、データ信号を出力する。
【発明の効果】
【０００５】
本発明によれば、チップ面積が小さく、消費電力が少ない半導体プログラマブルデバイスを得ることができる。
【図面の簡単な説明】
【０００６】
図１Ａは本発明の第１の実施形態に係る半導体プログラマブルデバイスの構成を示すブロック図である。
図１Ｂは本発明の第１の実施形態に係る半導体プログラマブルデバイスを備えた半導体集積回路装置の構成を示すブロック図である。
図２は本発明の第１の実施形態に係る半導体プログラマブルデバイスのメモリマクロの構成を示すブロック図である。
図３は本発明の第１の実施形態に係る半導体プログラマブルデバイスのメモリ入出力部の構成を示すブロック図である。
図４は本発明の第１の実施形態に係るスイッチファブリックの構成を示すブロック図である。
図５は本発明の第１の実施形態に係る別の半導体プログラマブルデバイスを備えた半導体集積回路装置の構成を示すブロック図である。
図６は本発明の第１の実施形態に係る別の半導体プログラマブルデバイスのスイッチファブリックの構成を示すブロック図である。
図７は本発明の第２の実施形態に係る半導体集積回路装置の構成を示すブロック図である。
図８は本発明の第３の実施形態に係る半導体プログラマブルデバイスを備えた半導体集積回路装置の構成を示すブロック図である。
図９は本発明の第４の実施形態に係るスイッチファブリックの構成を示すブロック図である。
図１０は本発明の第４の実施形態に係る半導体プログラマブルデバイスのメモリマクロの構成を示すブロック図である。
図１１は本発明の第５の実施形態に係る半導体プログラマブルデバイスの構成を示すブロック図である。
図１２は本発明の第５の実施形態に係るＮＡＮＤ回路を備えたスイッチファブリックの構成を示すブロック図である。
図１３は本発明の第５の実施形態に係るＮＯＲ回路を備えたスイッチファブリックの構成を示すブロック図である。
図１４は関連する半導体プログラマブルデバイスの一例を示すブロック図である。
図１５は関連する半導体プログラマブルデバイスのスイッチファブリックの構成を示すブロック図である。
【符号の説明】
【０００７】
１、２    メモリ領域
１０、５０、８０、３００    半導体プログラマブルデバイス
１１、５１、９１、１１１、３１１、３１１Ａ、３１１Ｂ    メモリマクロ
１１ａ、１１１ａ    制御部
１１ｂ、１１１ｂ    アドレスデコーダ
１１ｃ、１１１ｃ    ワード線ドライバ
１１ｄ、１１１ｄ    センスアンプ
１１ｅ、１１１ｅ    ライトバッファ
１１ｆ、１１１ｆ    リードバッファ
１１ｇ、１１１ｇ    メモリセルアレイ
１１ｈ、１１１ｈ    インバータ
１１ｉ、１１３ａ    ＯＲ回路
１２、５２、８２、３１２    メモリ入出力部
１３、３３、５３、８３、１１３、２１３、３１３    スイッチファブリック
１３ａ、１１１ｉ    ＡＮＤ回路
１４、５４、８４、２１４    列配線
１５、５５、８５、２１５    行配線
２０、６０、９０    ロジックデバイス
２１、６１、９１    ロジックマクロ
３４    出力スイッチ
６２    ロジック入出力部
８１    プロセッサ
９０    メモリデバイス
２１１    回路ブロック
２１３−１    セレクタ
２１３−２    選択論理回路
３１３Ａ    ＮＡＮＤ回路を備えたスイッチファブリック
３１３Ｂ    ＮＯＲ回路を備えたスイッチファブリック
３２０    ＮＡＮＤ回路
３３０    ＮＯＲ回路
【発明を実施するための最良の形態】
【０００８】
以下に、本発明の実施形態について図面を参照して説明する。
［第１の実施形態］
図１Ａは、本発明の第１の実施形態に係る半導体プログラマブルデバイスの構成を示すブロック図である。半導体プログラマブルデバイス１０は、チップ上に配置された複数の列配線１４と複数の行配線１５と、列配線１４と行配線１５との交点に設けられ、入力されたデータ信号を転送する複数のスイッチファブリック１３を有する。各スイッチファブリック１３にはそれぞれ回路ブロックが直接接続されており、各回路ブロックはスイッチファブリックを介してデータ信号の入出力を行う。
回路ブロックは、他の回路ブロックがデータ信号を出力している場合は擬似データ信号を出力する。本実施形態では、回路ブロックとしてメモリマクロ１１を用いた。擬似データ信号としては、例えば、全てのビットがハイレベルのビットであるハイレベル信号、または、全てのビットがローレベルのビットであるローレベル信号などを用いることができる。
スイッチファブリック１３は、データ信号と擬似データ信号を入力し、データ信号を出力する。そして本実施形態によるスイッチファブリック１３は、複数のＡＮＤ回路、ＯＲ回路、またはこれらの論理回路の組み合わせによって構成されている。
したがって、本実施形態によれば、スイッチファブリック１３の回路規模を小さくでき、さらに、データ読み出し動作ごとに入力切り替えのスイッチング動作が不要となる。その結果、スイッチファブリックによって生じる面積オーバーヘッドおよび消費電力のオーバーヘッドを削減することができるので、チップ面積が小さく、消費電力が少ない半導体プログラマブルデバイスを得ることができる。
［第２の実施形態］
図１Ｂは、本発明の第１の実施形態に係る半導体プログラマブルデバイスを備えた半導体集積回路装置の構成を示すブロック図である。図１Ｂに示す半導体集積回路装置は、半導体プログラマブルデバイス１０と、ロジックデバイス２０とを備えている。
半導体プログラマブルデバイス１０は、回路ブロックであるメモリマクロ１１と、メモリ入出力部１２と、スイッチファブリック１３とを備えている。
図１Ｂに示す半導体プログラマブルデバイス１０には、１６個のメモリマクロ１１が４×４の２次元アレイ状に配列されている。また、メモリマクロ１１のそれぞれは、スイッチファブリック１３と直接接続されている。
また、図１Ｂに示す半導体プログラマブルデバイス１０には、行方向と列方向とに複数の配線が敷設されている。具体的には、図中の上下方向に列配線１４が敷設されており、図中の左右方向に行配線１５が敷設されている。
メモリマクロ１１は例えば、１ｋワードのＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）マクロからなり、ロジックデバイス２０から出力された書き込みデータ信号をメモリセルに書き込んだり、ロジックデバイス２０への読み出しデータ信号を出力したりする。
図２は、図１Ｂに示した半導体プログラマブルデバイス１０のメモリマクロ１１の構成を示すブロック図である。図１Ｂに示したメモリマクロ１１は図２に示すように、制御部１１ａと、メモリセルアレイ１１ｇと、アドレスデコーダ１１ｂと、ワード線ドライバ１１ｃと、センスアンプ１１ｄと、ライトバッファ１１ｅと、リードバッファ１１ｆとを備えている。ここで、アドレスデコーダ１１ｂはメモリセルアレイ１１ｇ内のメモリセルの書き込み及び読み出し動作においてメモリセルへのアクセスを制御する。また、ワード線ドライバ１１ｃはメモリセルアレイ１１ｇ内のメモリセルのそれぞれと接続されているワード線を制御し、センスアンプ１１ｄは信号の増幅を行う。なお、制御部１１ａの動作については後述する。
図１Ｂに示したメモリ入出力部１２は、ロジックデバイス２０との間の信号の入出力を仲介する。図３は、図１Ｂに示した半導体プログラマブルデバイス１０のメモリ入出力部１２の構成を示すブロック図である。
図３に示すようにメモリ入出力部１２には、メモリマクロ１１からスイッチファブリック１３を経由してきた１６ビットの読み出しデータ信号が入力され、ロジックデバイス２０を構成するロジックマクロ２１へ出力される。また、ロジックマクロ２１からの１６ビットの書き込みデータ信号、１４ビットのアドレス信号及び２ビットのコマンド信号が入力され、スイッチファブリック１３へ出力される。
ここで、ロジックマクロ２１と半導体プログラマブルデバイス１０との間の信号の入出力の一例として、ロジックマクロ２１から半導体プログラマブルデバイス１０へデータ信号の読み出しを指示する場合について図１Ｂから図３を参照しながら説明する。
データの読み出しを指示するロジックマクロ２１は、図３に示すようにメモリ入出力部１２へコマンド信号及びアドレス信号を出力する。このコマンド信号及びアドレス信号は、メモリ入出力部１２を介して半導体プログラマブルデバイス１０（図１Ｂ参照）内の全てのメモリマクロ１１へ入力される。なお、ここではコマンド信号は、データの読み出し指示を示しているとする。
コマンド信号及びアドレス信号が入力されたメモリマクロ１１の制御部１１ａ（図２参照）は、予め記憶している自身のアドレスと、アドレス信号が示すデータの読み出しの対象となるメモリマクロ１１のアドレスとを比較する。なお本実施形態では、アドレス信号は、メモリマクロ１１を指定するための４ビットのメモリマクロアドレスと、メモリマクロ１１内のワードアドレスを指定するための１０ビットのワードアドレスとの合計１４ビットで構成されていることとした。
アドレス信号のメモリマクロアドレスと、制御部１１ａが予め記憶している自身のアドレスとが一致した場合、後段にあるすべての回路を活性化する出力信号が、制御部１１ａから制御部１１ａに接続された出力側の全ての配線に出される。このとき制御部１１ａは、メモリセルアレイ１１ｇの中のワードアドレスが示すメモリセルからデータを読み出す。これは、コマンド信号がデータの読み出し指示を示しているからである。そして、制御部１１ａは読み出したデータを読み出しデータ信号としてリードバッファ１１ｆから出力する。
リードバッファ１１ｆから出力された読み出しデータ信号は、ＯＲ回路１１ｉへ入力される。また、制御部１１ａからの出力信号をインバータ１１ｈによって反転させた信号がＯＲ回路１１ｉへ入力される。アドレスが一致した場合には、この信号はローレベルとなるので、制御部１１ａによって出力された読み出しデータ信号がＯＲ回路１１ｉからそのまま出力される。メモリマクロ１１から出力された読み出しデータ信号は、スイッチファブリック１３によって転送され、メモリ入出力部１２を介してロジックマクロ２１に出力される。なお、ＯＲ回路とは、入力された複数の信号の全てがローレベルの信号である場合にのみローレベルの信号を出力し、それ以外の場合にはハイレベルの信号を出力する回路のことをいう。
一方、アドレス信号のメモリマクロアドレスと制御部１１ａが予め記憶している自身のマクロアドレスとが一致しない場合、制御部１１ａからの出力信号をインバータ１１ｈによって反転させた信号はハイレベルとなる。そのため、各ＯＲ回路１１ｉの出力はいずれもハイレベルになり、メモリマクロ１１からは全てのビットがハイレベルである信号が出力される。この全てのビットがハイレベルである信号は、直接接続されたスイッチファブリック１３へ入力される。
スイッチファブリック１３は、列配線１４と行配線１５との交点に設けられており、隣接するスイッチファブリック１３及び直接接続されたメモリマクロ１１から入力された複数の信号に応じて出力する信号を決定する。
図４は、図１Ｂに示したスイッチファブリック１３の構成を示すブロック図である。図４に示すように、スイッチファブリック１３はＡＮＤ回路１３ａを備えている。ＡＮＤ回路１３ａは信号の入出力方向毎に設けられている。なお、ＡＮＤ回路とは、入力された複数の信号の全てがハイレベルの信号である場合にのみハイレベルの信号を出力し、それ以外の場合にはローレベルの信号を出力する回路のことである。
図４に示すようにスイッチファブリック１３では、全部で５つの方向の入力及び出力がある。これは、図１Ｂに示したようにスイッチファブリック１３は、メモリマクロ１１との接続以外に、図１Ｂ中の上下方向では、隣接するスイッチファブリック１３と列配線１４で接続されており、図１Ｂ中の左右方向では、隣接するスイッチファブリック１３と行配線１５で接続されているためである。そのため、スイッチファブリック１３は、信号の入出力方向の数と同じ５つのＡＮＤ回路１３ａを備えている。
ここで、自身が信号を出力する方向以外の４つの方向からＡＮＤ回路１３ａへ信号が入力された場合にＡＮＤ回路１３ａが出力する信号について説明する。
まず、メモリ入出力部１２を共有する複数のメモリマクロ１１は１つのメモリ領域を構成するため、複数のメモリマクロ１１が同時に読み出しデータ信号を出力することはない。このことについて、ロジックデバイス２０の中の１つのロジックマクロ２１が半導体プログラマブルデバイス１０内のメモリマクロ１１にデータ信号の読み出しを指示する場合について説明する。
この場合図３に示したように、ロジックマクロ２１はデータ信号の読み出しを行いたいメモリマクロ１１のアドレスを示すアドレス信号と、データの読み出しを示すコマンド信号とを、個々のロジックマクロ２１と接続されたメモリ入出力部１２を介してスイッチファブリック１３へ出力する。ここで、メモリ入出力部１２は、スイッチファブリック１３および列配線１４と行配線１５によって、全てのメモリマクロ１１と接続されている。つまり、半導体プログラマブルデバイス１０内の全てのメモリマクロ１１は、メモリ入出力部１２を共有しており、１つのメモリ領域を構成していることとなる。
したがって、ロジックマクロ２１から出力されたアドレス信号及びコマンド信号は、半導体プログラマブルデバイス１０内の全てのメモリマクロ１１に入力される。
そして、アドレス信号及びコマンド信号が入力されたメモリマクロ１１は、上述したように自身のアドレスとアドレス信号が示すアドレスとを比較し、それらが一致した場合に読み出しデータ信号を出力する。つまり、ロジックマクロ２１によってデータ信号の読み出しを指示されたメモリマクロ１１以外のメモリマクロ１１は、自身のアドレスとアドレス信号が示すアドレスが一致しないので、データ信号の読み出しを行うことはない。したがって、同時に複数のメモリマクロ１１が読み出しデータ信号を出力することはない。
また、上述したように、ロジックマクロ２１によってデータ信号の読み出しを指示されたメモリマクロ１１以外のメモリマクロ１１は、図２に示したＯＲ回路１１ｉから、全てのビットがハイレベルのハイレベル信号を出力する。
これにより、読み出しデータ信号を出力するメモリマクロ１１から転送されてくる方向以外からスイッチファブリック１３へ入力される信号は、全てのビットがハイレベルであるハイレベル信号となる。そのため、スイッチファブリック１３からは、ＡＮＤ回路１３ａによって読み出しデータ信号がそのまま出力されて隣接するスイッチファブリック１３へ転送される。
上述したように、図１Ｂに示した半導体プログラマブルデバイス１０内の全てのメモリマクロ１１はメモリ入出力部を共有しており、各ロジックマクロ２１に対して１つのメモリ領域を構成している。よって、図３に示した書き込みデータ信号、アドレス信号及びコマンド信号についても、ロジックマクロ２１から複数のメモリマクロ１１へ同時に異なる信号が出力されることはない。従って、ロジックマクロ２１から出力される書き込みデータ信号、アドレス信号及びコマンド信号に対しても、同じＡＮＤ回路１３ａを用いてスイッチファブリック１３を構成することができる。
なお、本実施形態では、図１Ｂに示した半導体プログラマブルデバイス１０内の全てのメモリマクロ１１が１つのメモリ領域を構成することとした。そのため、複数の異なるロジックマクロ２１が別々のメモリマクロ１１に対して同時にデータの読み出しを指示することはなかった。つまり、複数のメモリマクロ１１が同時に読み出しデータ信号を出力することはなかった。
複数のロジックマクロ２１が別々のメモリマクロ１１に対して同時にデータの読み出しを指示し、複数のメモリマクロ１１が同時に読み出しデータ信号を出力できるようにするために、半導体プログラマブルデバイス１０を複数のメモリ領域に分割した構成とすることができる。
図５は、複数のメモリ領域に分割された半導体プログラマブルデバイスを備えた半導体集積回路装置の構成を示すブロック図である。図５に示すように、図１Ｂに示した半導体プログラマブルデバイス１０内のメモリマクロ１１がメモリ領域１とメモリ領域２とに分割されている。この場合、スイッチファブリック３３に出力スイッチを備えることによってメモリ領域１とメモリ領域２とを切り離すことができる。
図６は、図５に示したスイッチファブリック３３の構成を示すブロック図である。スイッチファブリック３３は図６に示すように、ＡＮＤ回路１３ａの出力側に出力スイッチ３４を備えている。これにより、図５に示したメモリ領域１とメモリ領域２とが電気的に分離される。一方、ロジックマクロはメモリ入出力部１２を介してメモリ領域１またはメモリ領域２に接続される。
したがって、メモリ領域１に接続されたロジックマクロとメモリ領域２に接続されたロジックマクロは、それぞれ独立して読み出し動作を行うことができる。これにより、複数のロジックマクロが同時に読み出し動作を行う場合であっても、メモリ領域１内のメモリマクロと、メモリ領域２内のメモリマクロは読み出しデータ信号を同時に出力し、それぞれのメモリ領域内で読み出しデータ信号を転送することができる。
なお、本実施形態では、メモリマクロ１１は１ｋワード１６ビットのＳＲＡＭメモリマクロとしたが、メモリマクロ１１は、任意のワード、ビット構成のものでも良い。
また、本実施形態では、メモリマクロ１１内のメモリをＳＲＡＭとしたが、これをＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）としても良い。ＤＲＡＭは回路の面積が小さいために、より大容量のメモリを搭載できる。また、フラッシュメモリやＭＲＡＭ（Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やＲｅＲＡＭ（Ｒｅｓｉｓｔａｎｃｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）といった不揮発メモリとしても良い。不揮発メモリを使うことで、一時的に使われないメモリ領域の電源を止めて、省電力モードとすることが可能である。
また、本実施形態では、メモリマクロ１１を４×４の２次元アレイとした場合について説明したが、この２次元アレイのサイズは、４×４の２次元アレイに限定されない。
以上述べたように本実施形態においては、スイッチファブリック１３は、信号の転送を行うための回路としてセレクタよりも回路の規模が小さなＡＮＤ回路１３ａを用いている。これにより、スイッチファブリック１３の面積を小さくすることができる。また、スイッチファブリック１３において、入力された信号の転送先を切り替える動作が不要となる。これにより、スイッチファブリック１３で発生する消費電力を少なくすることができる。
［第２の実施形態］
次に、本発明の第２の実施形態について説明する。第１の実施形態では、半導体プログラマブルデバイスと、ロジックデバイスとが同一のチップ上に集積されている半導体集積回路装置について説明した。第２の実施形態では、半導体プログラマブルデバイスと、ロジックデバイスとをそれぞれ別のチップ上に集積し、それらのチップを積層した半導体集積回路装置について説明する。
図７は、本実施形態による半導体集積回路装置の構成を示すブロック図である。本実施形態の半導体集積回路装置では、ロジックデバイス６０と半導体プログラマブルデバイス５０とが積層されている。
第１の実施形態で説明した半導体集積回路装置は、半導体プログラマブルデバイス１０（図１Ｂ参照）とロジックデバイス２０とが同一のチップ上に集積されていたため、メモリ入出力部１２がメモリマクロ１１の周囲に配列されていた。
それに対して本実施形態では、図７に示すように、半導体プログラマブルデバイス５０とロジックデバイス６０とを別のチップ上に集積し、それらのチップを積層する構成とした。そのため、半導体プログラマブルデバイス５０の内部にメモリ入出力部５２をメモリマクロ５１毎に配置することができる。
この場合、半導体プログラマブルデバイス５０とロジックデバイス６０との間の信号の転送は、メモリマクロ５１毎に設けられたメモリ入出力部５２とロジック入出力部６２とを介して行われる。つまり、メモリ入出力部５２は、複数のメモリマクロ５１で共有されることがないため、第１の実施形態で説明した半導体集積回路装置に比べ、半導体プログラマブルデバイス５０とロジックデバイス６０との間の信号の転送量を大きくすることが可能となる。
［第３の実施形態］
次に、本発明の第３の実施形態について説明する。第１の実施形態及び第２の実施形態では、半導体プログラマブルデバイスがメモリマクロで構成される場合について説明した。本実施形態では、半導体プログラマブルデバイスがプロセッサで構成されることとした。つまり、本実施形態においてはプロセッサが回路ブロックとなる。
図８は、半導体プログラマブルデバイスを備えた半導体集積回路装置の第３の実施の形態を示す図である。図８に示す半導体集積回路装置は、図１Ｂに示した半導体集積回路装置と比べ以下の点が異なる。すなわち、図１Ｂに示した半導体プログラマブルデバイス１０におけるメモリマクロ１１がプロセッサ８１に置き換えられており、半導体プログラマブルデバイス８０の周辺にメモリマクロ９１からなるメモリデバイス９０が配置されている点が異なっている。なお、プロセッサ８１は例えば、１６ビットのＲＩＳＣ（Ｒｅｄｕｃｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ）プロセッサである。
本実施形態のように回路ブロックがメモリからプロセッサに代わっても、第１の実施形態で説明したのと同様に、信号の転送を行うための回路としてセレクタよりも回路の規模が小さなＡＮＤ回路を利用することが可能である。これにより、スイッチファブリック８３の面積を小さくすることができる。また、スイッチファブリック８３において入力された信号の出力先を切り替える動作が不要となることも、第１の実施形態で説明したのと同様である。これにより、スイッチファブリック８３で発生する消費電力を少なくすることができる。
［第４の実施形態］
次に、本発明の第４の実施形態について説明する。上述した第１〜第３の実施形態では、スイッチファブリックにＡＮＤ回路を備えた場合について説明した。第４の実施の形態では、スイッチファブリックにＯＲ回路を備えた場合について説明する。
図９は、本実施形態によるスイッチファブリックの構成を示すブロック図である。図９に示すスイッチファブリック１１３は、図４に示したスイッチファブリック１３と比べるとスイッチファブリック１３が備えるＡＮＤ回路１３ａがＯＲ回路１１３ａとなっている点が異なっている。
図１０は、本発明の第４の実施形態に係る半導体プログラマブルデバイスのメモリマクロの構成を示すブロック図である。図１０に示すメモリマクロ１１１は、図２に示したメモリマクロ１１と比べると、図２に示したＯＲ回路１１ｉがＡＮＤ回路１１１ｉとなっている点が異なっている。
また、図１０に示すメモリマクロ１１１においては、制御部１１１ａからの出力信号は直接ＡＮＤ回路１１１ｉへ入力される。アドレス信号のメモリマクロアドレスと制御部１１１ａが予め記憶している自身のマクロアドレスが一致した場合には、制御部１１１ａからの出力信号はハイレベルとなるので、制御部１１１ａによって出力された読み出しデータ信号がＡＮＤ回路１１１ｉからそのまま出力される。
一方、アドレスが一致しない場合、制御部１１１ａからの出力信号はローレベルとなる。そのため、読み出しデータ信号を出力しているメモリマクロ１１１以外のメモリマクロ１１１は、全てのビットがローレベルである信号を出力する。これにより、読み出しデータ信号を出力するメモリマクロ１１１から転送されてくる方向以外からスイッチファブリック１１３へ入力される信号は、全てのビットがローレベルの信号となる。
以上より、図９に示したスイッチファブリック１１３からは、ＯＲ回路１１３ａによって読み出しデータ信号がそのまま出力されて隣接するスイッチファブリック１１３へ転送される。
なお、本実施形態においては、スイッチファブリック１１３で転送する全てのビットについてＯＲ回路による出力としたが、これをＡＮＤ回路による出力ビットとＯＲ回路による出力ビットとの混成としてもよい。この場合、ＡＮＤ回路による出力ビットについては、読み出しデータ信号を出力しているメモリマクロ以外は、ローレベルの信号を出力することとする。また、ＯＲ回路による出力ビットについては、読み出しデータ信号を出力しているメモリマクロ以外は、ハイレベルの信号を出力することとすればよい。
以上述べたように、本実施形態においては、スイッチファブリック１１３は信号の転送を行うための回路としてセレクタよりも回路の規模が小さなＯＲ回路１１３ａを備えている。これにより、スイッチファブリック１１３の面積を小さくすることができる。また、スイッチファブリック１１３において入力された信号の出力先を切り替える動作が不要となる。これにより、スイッチファブリック１１３で発生する消費電力を少なくすることができる。
［第５の実施形態］
次に、本発明の第５の実施形態について説明する。第１〜第４の実施形態では、スイッチファブリックにＡＮＤ回路または、ＯＲ回路を備えた場合について説明した。本実施形態による半導体プログラマブルデバイス３００は、図１１に示すように、ＮＡＮＤ回路を備えたスイッチファブリック３１３ＡとＮＯＲ回路を備えたスイッチファブリック３１３Ｂが互い違いに配置された構成となっている。
図１２は、本実施形態によるＮＡＮＤ回路を備えたスイッチファブリック３１３Ａの構成を示すブロック図である。ＮＡＮＤ回路を備えたスイッチファブリック３１３Ａは、図４に示したスイッチファブリック１３と比べると、スイッチファブリック１３が備えるＡＮＤ回路１３ａがＮＡＮＤ回路３２０となっている点が異なる。
図１３は、本実施形態によるＮＯＲ回路を備えたスイッチファブリック３１３Ｂの構成を示すブロック図である。ＮＯＲ回路を備えたスイッチファブリック３１３Ｂは、図９に示したスイッチファブリック１１３と比べるとスイッチファブリック１１３が備えるＯＲ回路１１３ａがＮＯＲ回路３３０となっている点が異なる。
また、本実施形態に係る半導体プログラマブルデバイス３００は、各スイッチファブリック３１３に接続されたメモリマクロ３１１を有する。ここで、ＮＡＮＤ回路を備えたスイッチファブリック３１３Ａに接続するメモリマクロ３１１Ａの構成は、図２に示した第１の実施形態に係るメモリマクロ１１と同様の構成である。したがって、データ読み出しの対象となっていないメモリマクロ３１１Ａは、全てのビットがハイレベルである信号を出力する。
一方、ＮＯＲ回路を備えたスイッチファブリック３１３Ｂに接続するメモリマクロ３１１Ｂの構成は、図１０に示した第４の実施形態に係るメモリマクロ１１１と同様の構成である。したがって、データ読み出しの対象となっていないメモリマクロ３１１Ｂは、全てのビットがローレベルである信号を出力する。
メモリマクロ３１１から出力された読み出しデータ信号は、ＮＡＮＤ回路を備えたスイッチファブリック３１３Ａ、あるいは、ＮＯＲ回路を備えたスイッチファブリック３１３Ｂを経由する度に信号が反転する。このとき、メモリ入出力部３１２が、入力された信号が経由してきたスイッチファブリック３１３の個数に応じて、入力された信号を反転させ、または、反転させずに、読み出しデータ信号として出力する。
具体的には、メモリ入出力部３１２はまず、読み出しデータ信号を出力するメモリマクロ３１１の番地を記憶する。この番地は半導体プログラマブルデバイス３００を構成する配線マトリックス上における番地であり、ロジックマクロ２１から出力されるアドレス信号に含まれている。メモリ入出力部３１２は、自身が接続されているスイッチファブリック３１３の番地と、読み出しデータ信号を出力するメモリマクロ３１１の番地とから、入力された信号が経由してきたスイッチファブリック３１３の個数を導出する。そして、入力された信号が奇数個のスイッチファブリック３１３を経由してきたときは、メモリ入出力部３１２は入力された信号を反転させてから読み出しデータ信号としてロッジクマクロ２１に出力する。一方、入力された信号が偶数個のスイッチファブリック３１３を経由してきたときは、メモリ入出力部３１２は入力された信号をそのまま読み出しデータ信号としてロッジクマクロ２１に出力する。
以上述べたように、本実施形態においては、スイッチファブリック３１３は信号の転送を行うための回路として、セレクタよりも回路の規模が小さなＮＡＮＤ回路３２０、あるいはＮＯＲ回路３３０を備えている。これにより、スイッチファブリック３１３の面積を小さくすることができる。また、スイッチファブリック３１３において入力された信号の出力先を切り替える動作が不要となる。これにより、スイッチファブリック３１３で発生する消費電力を少なくすることができる。
［第６の実施形態］
本発明の第６の実施形態に係る半導体プログラマブルデバイスは、チップ上に敷設された複数の行配線と複数の列配線との交点に設けられ、入力されたデータ信号の転送を行う複数のスイッチファブリックと、複数のスイッチファブリックのそれぞれと直接接続され、複数のスイッチファブリックを介してデータ信号の入出力を行う複数の回路ブロックとを有し、スイッチファブリックは、入力された複数の信号のＡＮＤ演算をビット毎に行うＡＮＤ回路を備え、回路ブロックは、他の回路ブロックがデータ信号を出力している場合、全てのビットがハイレベルのビットであるハイレベル信号を出力し、スイッチファブリックは、直接接続された回路ブロックと、行配線上及び列配線上で隣接するスイッチファブリックとから入力されたデータ信号及びハイレベル信号をＡＮＤ回路に入力し、このＡＮＤ回路によるＡＮＤ演算後の信号を出力する。
［第７の実施形態］
本発明の第７の実施形態に係る半導体プログラマブルデバイスは、チップ上に敷設された複数の行配線と複数の列配線との交点に設けられ、入力されたデータ信号の転送を行う複数のスイッチファブリックと、複数のスイッチファブリックのそれぞれと直接接続され、複数のスイッチファブリックを介してデータ信号の入出力を行う複数の回路ブロックとを有し、スイッチファブリックは、入力された複数の信号のＯＲ演算をビット毎に行うＯＲ回路を備え、回路ブロックは、他の回路ブロックがデータ信号を出力している場合、全てのビットがローレベルのビットであるローレベル信号を出力し、スイッチファブリックは、直接接続された回路ブロックと、行配線上及び列配線上で隣接するスイッチファブリックとから入力されたデータ信号及びローレベル信号をＯＲ回路に入力し、このＯＲ回路によるＯＲ演算後の信号を出力する。
［第８の実施形態］
本発明の第８の実施形態に係る半導体プログラマブルデバイスにおける信号転送方法は、チップ上に敷設された複数の行配線と複数の列配線との交点に設けられ、入力されたデータ信号の転送を行う複数のスイッチファブリックと、複数のスイッチファブリックのそれぞれと直接接続され、複数のスイッチファブリックを介してデータ信号の入出力を行う複数の回路ブロックとを有する半導体プログラマブルデバイスにおける信号転送方法であって、回路ブロックが、他の回路ブロックがデータ信号を出力している場合、全てのビットがハイレベルのビットであるハイレベル信号を出力する処理と、スイッチファブリックが、直接接続された回路ブロックと、行配線上及び列配線上で隣接するスイッチファブリックとから入力されたデータ信号及びハイレベル信号のＡＮＤ演算をビット毎に行い、このＡＮＤ演算後の信号を出力する処理を行う。
［第９の実施形態］
本発明の第９の実施形態に係る半導体プログラマブルデバイスにおける信号転送方法は、チップ上に敷設された複数の行配線と複数の列配線との交点に設けられ、入力されたデータ信号の転送を行う複数のスイッチファブリックと、複数のスイッチファブリックのそれぞれと直接接続され、複数のスイッチファブリックを介してデータ信号の入出力を行う複数の回路ブロックとを有する半導体プログラマブルデバイスにおける信号転送方法であって、回路ブロックが、他の回路ブロックがデータ信号を出力している場合、全てのビットがローレベルのビットであるローレベル信号を出力する処理と、スイッチファブリックが、直接接続された回路ブロックと、行配線上及び列配線上で隣接するスイッチファブリックとから入力されたデータ信号及びローレベル信号のＯＲ演算をビット毎に行い、このＯＲ演算後の信号を出力する処理を行う。
本発明は上記実施形態に限定されることなく、特許請求の範囲に記載した発明の範囲内で、種々の変形が可能であり、それらも本発明の範囲内に含まれるものであることはいうまでもない。
この出願は、２００８年９月１６日に出願された日本出願特願２００８−２３６７８１を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０００９】
本発明は、プロセッサやメモリからなる回路ブロックを複数集積した半導体プログラマブルデバイスに適用することができる。
【図１Ａ】
2010032865.tif 000003
【図１Ｂ】
2010032865.tif 000004
【図２】
2010032865.tif 000005
【図３】
2010032865.tif 000006
【図４】
2010032865.tif 000007
【図５】
2010032865.tif 000008
【図６】
2010032865.tif 000009
【図７】
2010032865.tif 000010
【図８】
2010032865.tif 000011
【図９】
2010032865.tif 000012
【図１０】
2010032865.tif 000013
【図１１】
2010032865.tif 000014
【図１２】
2010032865.tif 000015
【図１３】
2010032865.tif 000016
【図１４】
2010032865.tif 000017
【図１５】
2010032865.tif 000018
【国際調査報告】
2010032865.tif 000019
2010032865.tif 000020
2010032865.tif 000021