(57)【要約】【課題】スイッチノードのデータ転送時間を極小として動作を高速化することができるプログラマブルデバイス回路を提供する。【解決手段】二次元アレイ状に配置されている複数の回路ブロックに個々に接続されている複数のスイッチノード１００が相互接続により二次元の可変自在な接続網を形成する。このスイッチノード１００が、回路ブロックがデータ出力を実行しているときに並行してプリチャージ動作を実行するプリチャージロジック回路からなる。プリチャージロジック回路はプリチャージ動作に多分に時間を必要とすることでデータ転送時間を短縮できる。そのプリチャージ時間は回路ブロックのデータ出力時間と重複しているのでタイムロスとならない。【選択図】図１
2011146944.tif 000002
【特許請求の範囲】
【請求項１】
二次元アレイ状に配置されていてクロック信号に同期して少なくともデータ出力を実行する複数の回路ブロックと、
複数の前記回路ブロックに個々に接続されていて相互接続により二次元の可変自在な接続網を形成するスイッチノードと、を有し、
前記スイッチノードが、前記回路ブロックが前記データ出力を実行しているときに並行してプリチャージ動作を実行するプリチャージロジック回路からなるプログラマブルデバイス回路。
【請求項２】
前記プリチャージロジック回路は、
プリチャージ期間の出力遅延時間が前記回路ブロックのデータ出力時間以下であり、
評価期間の前記出力遅延時間が前記プリチャージ期間の前記出力遅延時間よりも小さい請求項１に記載のプログラマブルデバイス回路。
【請求項３】
前記プリチャージロジック回路は、パルス信号により前記プリチャージ期間が発生し、
前記プリチャージ期間となるパルス時間が、前記回路ブロックのデータ出力時間以下、かつ、前記プリチャージ期間の前記出力遅延時間以上である請求項１または２に記載のプログラマブルデバイス回路。
【請求項４】
前記回路ブロックがメモリブロックからなる請求項１ないし３の何れか一項に記載のプログラマブルデバイス回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、二次元アレイ状に配置されている複数の回路ブロックが、個々に接続されている複数のスイッチノードの相互接続により形成される二次元の可変自在な接続網に接続されるプログラマブルデバイス回路に関する。
【背景技術】
【０００２】
半導体集積回路デバイスの低コスト、短ＴＡＴ(Turn Around Time)化のために、デバイス製作後に回路構成を変更できるプログラマブルデバイス回路が開発されており、ゲートレベルで回路を組み合わせて再構成するＦＰＧＡ(Field Programmable Gate Array)から、より大きい回路単位であるプロセッサやメモリをアレイ状に並べたものを組み合わせて再構成するものまで様々なものが実現、提案されている。
【０００３】
回路ブロックを組み合わせて再構成するプログラマブルデバイス回路としては、チップ上で二次元アレイ状に回路ブロックを並べて、二次元メッシュの結合網で回路ブロック間を接続するプログラマブルデバイス回路がある(非特許文献１)。
【０００４】
図２４は、非特許文献１のFig.１に相当し、現在のプログラマブルデバイス回路を図示したものであり、回路ブロック(非特許文献１のresourceに相当)が二次元アレイ状に並んでいる。回路ブロックとしては、プロセッサ、メモリ、カスタムハードウエア回路、等がある。
【０００５】
回路ブロックはスイッチノードと接続されており、回路ブロックからのデータを他の回路ブロックや二次元アレイの外部へ転送するために、スイッチノード同士は二次元メッシュ状に配線結合されている。
【０００６】
図２５は非特許文献１のFig.２に相当し、スイッチノード１００の一般的な回路構成である。図の上下左右の方向で隣り合うスイッチノード１００と配線で結合し、また、回路ブロック３００とも結合するため、全部で五つの方向の接続がある。
【０００７】
五つの方向に出力するセレクタ回路１５０は、自身の出力方向以外の四つの方向からの入力信号のうちの何れかを選択して出力する。どの方向からの信号を選択するかは選択論理回路(非特許文献１のselection logicに相当)で決定される。選択論理回路は、例えば、データを転送する方向をアドレス化したものをデコードするためのデコード回路からなる。
【０００８】
また、ノイズに対する保障回路を付けることなしにノイズ保障を可能とし、高速な半導体集積回路を提供する提案もある。その技術では、α粒子がダイナミック回路部に入射し、生じうる最大のノイズを発生した場合にも回路の誤動作を生じないように、ダイナミックに電荷を保持するところの出力バッファの入力部にｎ個以上のｎ−ＭＯＳ(Metal Oxide Semiconductor)トランジスタを並列接続する回路構成とする。
【０００９】
ｎ個以上のｎ−ＭＯＳトランジスタをダイナミックに電荷を保持する部分に並列接続することにより、ノイズが発生しても回路誤動作を生じない十分な電荷量を保持することが可能となった（特許文献１）。
【００１０】
さらに、より複雑な演算を高速に実行することが可能になる半導体集積回路装置の提案もある。その技術では、第一メモリバンクと第二メモリバンクを具備し、第一メモリバンクは、クロック信号に同期する第一および第二バンク選択信号Ｒｉ，Ｃｉが入力され、第二メモリバンクは、クロック信号に同期する第三および第四バンク選択信号Ｒｉ．Ｃｉが入力される。
【００１１】
第一バンク選択信号Ｒｉと第三バンク選択信号は、クロック信号の所定サイクル内では、入力されることが禁止され、第二バンク選択信号と第四バンク選択信号Ｃｉは、クロック信号の所定サイクル内では、入力されることが禁止される。
【００１２】
第一バンク選択信号Ｒｉと第四バンク選択信号Ｃｉは、クロック信号の所定サイクル内であっても、入力されることが許可され、第二バンク選択信号Ｃｉと第三バンク選択信号Ｒｉは、クロック信号の所定サイクル内であっても、入力されることが許可される（特許文献２）。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２０００−１０１４２０号公報
【特許文献２】特開２００２−１９０１９５号公報
【非特許文献】
【００１４】
【非特許文献１】「A Network on Chip Architecture and Design Methodology」Shashi Kumar et al、IEEE Computer Society Annual Symposium on VLSI 2002
【発明の概要】
【発明が解決しようとする課題】
【００１５】
プログラマブルデバイス回路１０００は回路ブロック３００間の接続を切り替えることで望みの回路構成を実現するが、回路変更できない通常の半導体集積回路デバイスと比較して、回路ブロック３００間接続の配線接続を切り替えるスイッチノード１００によってデータ通信に遅延が生じるという問題がある。
【００１６】
例えば、図２６の４×４の二次元アレイで回路ブロック３００が並んでいた場合、左上の回路ブロックから右下の回路ブロックまでは七つのスイッチノード１００を経由する。ノード数は二次元アレイの規模が大きくなると増加するため、大規模なプログラマブルデバイス回路の場合では動作周波数を上げることが困難になる。
【００１７】
スイッチノード１００にＣＭＯＳ(Complementary MOS)からなるＡＮＤ回路を使った組み合わせ回路を使うことを想定した場合、このスイッチノード１００での遅延が０．２ｎｓ程度あるため、スイッチノード１００の経由数が７であればスイッチノード１００での転送遅延時間が最大１．４ｎｓかかることになる。
【００１８】
図２６の左上の回路ブロック３００がメモリブロックの場合、クロック信号に同期してメモリブロック３００から初段のスイッチノード１００まで出力される読み出しデータの遅延が２ｎｓ程度であれば、メモリブロック３００から最も遠い他の回路ブロックのスイッチノード１００までデータを読み出すのにかかる時間が合計３．４ｎｓになり、３００ＭＨｚを超えるサイクル速度でメモリデータを読み出すことができない。
【００１９】
本発明は上述のような課題に鑑みてなされたものであり、スイッチノードのデータ転送時間を極小として動作を高速化することができるプログラマブルデバイス回路を提供するものである。
【課題を解決するための手段】
【００２０】
本発明のプログラマブルデバイス回路は、二次元アレイ状に配置されていてクロック信号に同期して少なくともデータ出力を実行する複数の回路ブロックと、複数の回路ブロックに個々に接続されていて相互接続により二次元の可変自在な接続網を形成するスイッチノードと、を有し、スイッチノードが、回路ブロックがデータ出力を実行しているときに並行してプリチャージ動作を実行するプリチャージロジック回路からなる。
【発明の効果】
【００２１】
本発明のプログラマブルデバイス回路では、二次元アレイ状に配置されている複数の回路ブロックがクロック信号に同期して少なくともデータ出力を実行する。複数の回路ブロックに個々に接続されている複数のスイッチノードが相互接続により二次元の可変自在な接続網を形成する。このスイッチノードが、回路ブロックがデータ出力を実行しているときに並行してプリチャージ動作を実行するプリチャージロジック回路からなる。プリチャージロジック回路はプリチャージ動作に多分に時間を必要とすることでデータ転送時間を短縮できる。そのプリチャージ時間は回路ブロックのデータ出力時間と重複しているのでタイムロスとならない。従って、スイッチノードのデータ転送時間を極小としてプログラマブルデバイス回路の動作を高速化することができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施の形態のプログラマブルデバイス回路の要部であるスイッチノードの構造を示す回路図である。
【図２】スイッチノードのＡＮＤ回路の構造を示す回路図である。
【図３】プログラマブルデバイス回路の動作時間を示す特性図である。
【図４】スイッチノードのプリチャージ回路の動作を示す特性図である。
【図５】クロックサイクル時間とプログラマブルメモリデバイスの出力遅延の関係を示す特性図である。
【図６】変形例のスイッチノードのプリチャージ回路の構造を示す回路図である。
【図７】クロックサイクル時間とメモリデバイスの読出遅延との関係を示す特性図である。
【図８】本発明の第一の実施例のプログラマブルデバイス回路であるプログラマブルメモリデバイスの構造を示すブロック図である。
【図９】プログラマブルメモリデバイスのメモリブロックの構造を示す回路図である。
【図１０】プログラマブルメモリデバイスのスイッチノードの構造を示す回路図である。
【図１１】スイッチノードのＡＮＤ回路の構造を示す回路図である。
【図１２】プログラマブルメモリデバイスのメモリデータ出力時のタイミングチャートである。
【図１３】メモリ入出力部の構造を示す回路図である。
【図１４】変形例のスイッチノードの構造を示す回路図である。
【図１５】変形例のプログラマブルメモリデバイスの構造を示すブロック図である。
【図１６】本発明の第二の実施例のプログラマブルメモリデバイスの構造を示すブロック図である。
【図１７】プログラマブルメモリデバイスのメモリブロックの構造を示す回路図である。
【図１８】プログラマブルメモリデバイスのスイッチノードの構造を示す回路図である。
【図１９】スイッチノードのＯＲ回路の構造を示す回路図である。
【図２０】本発明の第三の実施例のプログラマブルメモリデバイスの構造を示すブロック図である。
【図２１】プログラマブルメモリデバイスのスイッチノードのＡＮＤ回路の構造を示す回路図である。
【図２２】プログラマブルメモリデバイスのメモリデータの出力時のタイミングチャートである。
【図２３】変形例のスイッチノードのＯＲ回路の構造を示す回路図である。
【図２４】非特許文献１のプログラマブルデバイス回路の構造を示すブロック図である。
【図２５】プログラマブルデバイス回路のスイッチノードの構造を示す回路図である。
【図２６】プログラマブルメモリデバイスの動作を示す模式図である。
【発明を実施するための形態】
【００２３】
本発明の実施の形態を図１ないし図５を参照して以下に説明する。図１は本発明のプログラマブルデバイス回路(図示せず)のスイッチノード１００の構成である。なお、プログラマブルデバイス回路は、例えば、非特許文献１として前述したプログラマブルメモリデバイスと同様に形成されている。
【００２４】
そのスイッチノード１００は、図面の上下左右の方向で隣り合うスイッチノード(図示せず)と配線で結線されており、また、メモリブロック(図示せず)とも結合するため、全部で五つの双方向の接続がある。
【００２５】
五つの方向に出力する回路は、自身の出力方向以外の四つの方向からの入力信号を入力するＡＮＤ回路１１０である。このＡＮＤ回路１１０は、図２に示すように、クロック同期型のダイナミック回路であるプリチャージロジックで形成されている。
【００２６】
プリチャージロジックからなるＡＮＤ回路１１０は、クロック信号ＣＬＫがＨｉのプリチャージ期間でスイッチノード１００の出力配線の全部を一斉にＬｏ信号に遷移させて、プリチャージセットする。
【００２７】
その後、クロック信号ＣＬＫがＬｏの評価期間で各スイッチノード１００でのデータ転送を可能にして、メモリブロックからＨｉ信号が出力されてスイッチノード１００に入力した場合には、スイッチノード１００がＨｉ信号を出力して後段のスイッチノード１００へＨｉ信号を転送する。
【００２８】
より具体的には、図２に示したＡＮＤ回路１１０であるプリチャージロジック回路の動作は次の通りである。まず、プリチャージ期間となるクロック信号ＣＬＫがＨｉの期間では、プリチャージロジックの出力がＬｏにセットされる。
【００２９】
もし、前の評価期間で出力がＬｏであれば、それに続くプリチャージ期間での出力はＬｏのままで遷移がないが、前の評価期間で出力がＨｉであれば、それに続くプリチャージ期間でクロック信号ＣＬＫがＨｉになると、プリチャージ回路の出力はＨｉからＬｏに遷移する。このクロック信号ＣＬＫがＨｉになったときからプリチャージ回路の出力がＬｏに遷移するまでの時間を、「プリチャージ期間の出力遅延時間」と定義する。
【００３０】
プリチャージ期間に続く評価期間となるクロック信号ＣＬＫがＬｏの期間では、ＡＮＤ論理の演算をするためにプリチャージ回路のデータ入力端子Ａ，Ｂ，Ｃ，Ｄの全てにＨｉ信号が入力した場合に、プリチャージロジック出力がＨｉに遷移する。
【００３１】
それ以外のデータ入力の組み合わせではプリチャージロジック出力はＬｏのままである。このデータ入力Ａ，Ｂ，Ｃ，Ｄの全てにＨｉ信号が入力したときからプリチャージ回路の出力がＨｉに遷移するまでの時間を「評価期間の出力遅延時間」と定義する。
【００３２】
ここで、プリチャージロジックがＯＲ論理の演算をするものであれば、データ入力端子の何れかにＨｉ信号が入力した場合に、プリチャージロジック出力がＨｉに遷移する。従って、ＯＲ論理であれば、「評価期間の出力遅延時間」はデータ入力の何れかにＨｉ信号が入力したときからプリチャージ回路の出力がＨｉに遷移する時間となる。
【００３３】
クロック信号ＣＬＫに同期してメモリデータがプログラマブルメモリデバイスから出力されるまでにかかる時間は、従来のＣＭＯＳを使ったＡＮＤ回路のスイッチノードの場合には、図３の上段に示すようにメモリブロックが記憶データを出力するための出力遅延時間と複数のスイッチノード１００の転送遅延時間の合計となる。
【００３４】
この図では、スイッチノード１００の転送遅延時間はスイッチノード１００の経由数１０を想定している。一方プリチャージロジックからなるスイッチノード１００では、転送遅延時間以外にプリチャージ期間が発生する。
【００３５】
しかし、図３の下段に示すようにメモリブロックがデータ出力を実行しているときに並行してスイッチノード１００のプリチャージ動作を実行することでプリチャージにかかる時間を隠蔽する。
【００３６】
ここでスイッチノード１００での転送遅延時間となる評価期間でのスイッチノード１００のＨｉ遷移の出力遅延時間は、プリチャージ期間でのスイッチノード１００のＬｏ遷移の出力遅延時間とトレードオフの関係にある。
【００３７】
図４と次式
評価期間のＨｉ出力遅延時間＜＜プリチャージ期間のＬｏ出力遅延時間≦データ出力時間
で表されるように、プリチャージのＬｏ遷移の出力遅延時間を通常のメモリブロックのデータ出力時間である数ｎｓまで大きくする一方で、Ｈｉ遷移の出力遅延時間を通常のＣＭＯＳのＡＮＤ回路１１０の遷移遅延時間の半分程度となる１００ｐｓ程度まで小さく設定する。
【００３８】
プリチャージのＬｏ遷移は、先ほど述べたようにメモリブロックの出力遅延時間に隠蔽されているため、今回発明したプリチャージロジックのスイッチノード１００を使ったプログラマブルメモリデバイスでクロック信号ＣＬＫに同期してメモリデータが出力されるまでにかかる時間は、メモリブロックのデータ出力遅延と、評価期間での高速なＨｉ遷移によるスイッチノード１００間データ転送遅延時間の合計となる。従って、通常のＣＭＯＳのスイッチノード１００と比較してメモリ出力遅延を小さくなる。
【００３９】
前述したプリチャージ回路ではプリチャージ期間と評価期間は、クロック信号ＣＬＫを使ってそれぞれクロック信号ＣＬＫのＨｉ期間とＬｏ期間に設定したが、クロックサイクル時間が長くてプリチャージ期間がメモリブロック内の遅延より大きいとスイッチノード１００での転送開始時間が遅れる。
【００４０】
図５は、クロックサイクル時間とプログラマブルメモリデバイス１０００の出力遅延の関係を示したものであるが、クロックサイクル時間が大きくなってプリチャージ期間が長くなることで、プログラマブルメモリデバイス１０００からの出力遅延は通常のＣＭＯＳ回路で構成されたスイッチノード１００と比較してプリチャージロジック回路で構成されたスイッチノード１００の方が大きくなる。
【００４１】
また、クロックサイクル時間が小さくなり、プリチャージ期間が短くなると、プリチャージのＬｏ遷移へのセットが完了できない不具合が起きる。これが問題となる場合には、図６に示すように、スイッチノード１００のＡＮＤ回路１１０のプリチャージ期間をクロック信号ＣＬＫでなくパルス信号で制御する。
【００４２】
プリチャージ期間となるパルス信号のＨｉ時間は、
プリチャージ期間のＬｏ出力遅延時間≦パルス信号のＨｉ時間≦データ出力時間
を満たすようにする。
【００４３】
これにより、図７に示すようにクロックサイクル時間に依存せずにプログラマブルメモリデバイスからの読み出しデータの遅延を常にＣＭＯＳの回路よりも小さくすることも実現できる。
【００４４】
［実施例］
以下、本発明の実施例を例示する。まず、図８は、本発明の第一の実施例のプログラマブルデバイス回路であるプログラマブルメモリデバイス１０００を備えた半導体集積回路装置の構成である。
【００４５】
プログラマブルメモリデバイス１０００では１６ビット、１ｋワードのＳＲＡＭ(Static Random Access Memory)からなるメモリブロック３００が４×４の二次元アレイ状に１６個並んでいる。
【００４６】
図９はＳＲＡＭからなるメモリブロック３００の回路構成である。ＳＲＡＭのメモリセル３１０が１ｋワード１６ビット構成で並んでおり、メモリセル３１０への書き込みとメモリセル３１０からの読み出し動作について、該当するメモリセル３１０へのアクセスを制御するためのアドレスデコーダ３２０、ワード線ドライバ３３０と、メモリセル３１０からのデータあるいはメモリセル３１０へのデータの増幅と伝送のためのセンスアンプ３４０とライトバッファ３５０、リードバッファ３６０、制御部３７０、出力データである読出データを出力するＯＲ回路３８０、がある。
【００４７】
本実施例のプログラマブルメモリデバイス１０００では、アドレス信号は、４×４の１６個のメモリブロック３００からアクセスする一個を指定するための４ビットのブロックアドレスと、メモリブロック３００の記憶データを指定するための１０ビットのワードアドレスと、の合計１４ビットある。
【００４８】
ただし、４ビットのブロックアドレスが、図の制御部３７０に予め設定されている自身のブロックアドレスと一致した場合に、制御部３７０の後段にある全ての回路が活性化され、書き込みあるいは読み出し動作が行われる。
【００４９】
このとき、制御部３７０からの出力信号をインバータで反転した信号ＥＮｂはローレベルとなり、メモリブロックの出力データが、そのままＯＲ回路３８０から出力される。一方、ブロックアドレスが一致しない場合には、制御部３７０からの出力信号をインバータで反転した信号ＥＮｂはＨｉレベルとなり、ＯＲ回路３８０を経由するメモリブロックの出力データは全ビットがＨｉレベルとなる。
【００５０】
プログラマブルメモリデバイス１０００は、図８に示すように、周囲にロジックデバイス２００があり、プログラマブルメモリデバイス１０００とロジックデバイス２００間でのデータ転送はメモリ入出力部４００を用いて行われる。
【００５１】
メモリブロック３００からメモリ入出力部４００まで、あるいはメモリ入出力部４００からメモリブロック３００までデータ信号を転送するための二次元メッシュ状の配線があり、配線の交差部分には配線の上下左右の信号転送方向を制御するためのスイッチノード１００がある。
【００５２】
例えば、図８でロジックデバイス２００中の一つのロジックブロック２１０がプログラマブルメモリデバイス１０００にアクセスしてメモリの読み出しを実行する際には、ロジックブロック２１０と接続するメモリ入出力部４００を経由して二次元メッシュ配線網５００につながるメモリブロック３００と読み出し動作を実行する。
【００５３】
ここで二次元メッシュ配線網５００はメモリデバイスの全てのメモリブロック３００とつながるため、ロジックブロック２１０からは、全メモリブロック３００で一つのメモリ領域を構成していると見なされる。
【００５４】
この場合、ロジックブロック２１０からメモリデバイスへの読み出し動作は全メモリブロック３００のうちの一つのメモリブロック３００に対して実行することとなり、同時に複数のメモリブロック３００への読み出し動作は生じない。
【００５５】
図１０は、スイッチノード１００の構成である。図の上下左右の方向で隣り合うスイッチノード１００と配線で結合し、また、メモリブロック３００とも結合するため、全部で五つの方向の接続がある。
【００５６】
五つの方向に出力する回路は、自身の出力方向以外の四つの方向からの入力信号を入力するＡＮＤ回路１１０である。メモリ入出力部４００を共有する複数のメモリブロック３００は一つのメモリ領域を構成するため、複数のメモリブロック３００で同時に読み出し動作は行わない。
【００５７】
一つのメモリブロック３００が読み出しデータを出力するときは、その他のメモリブロック３００の出力は読み出しデータを出力せずに、読み出し信号が全ビットでＨｉレベル出力となる。
【００５８】
これにより、スイッチノード１００への入力信号は五つの入力方向のうち、読み出しデータを出力するメモリブロック３００からデータが転送されてくる方向以外は全ビットがＨｉレベルの信号であり、ＡＮＤ回路１１０の出力は、読み出しデータ信号が、そのまま出力されて隣り合うスイッチノード１００へ転送される。
【００５９】
図１１はスイッチノード１００の四入力ＡＮＤ回路１１０であり、クロック同期型のダイナミック回路であるプリチャージロジックで構成される。クロック信号ＣＬＫがＨｉ期間であるプリチャージ期間で全てのスイッチノード１００を出力Ｌｏ信号にセットする。
【００６０】
このプリチャージ動作は、メモリブロック３００のデータ出力動作と並列に実行するため、メモリブロック３００内の出力遅延にプリチャージ期間を隠蔽できる。図１２はメモリデータ出力時のタイミングチャートである。
【００６１】
タイミングチャートで内部遅延と書かれているメモリブロック３００内の出力遅延は数ｎｓあるため、プリチャージの出力Ｌｏ遷移にかかる時間はこれと同程度の時間がかかってもよい。
【００６２】
一方評価期間では、出力Ｈｉ信号を複数のスイッチノード１００で転送していくために、一つのスイッチノード１００では１００ｐｓ程度の高速データ転送を実行する。このためプリチャージＬｏ出力の遷移が遅く、評価期間Ｈｉ出力の遷移が早くなるように図１１の回路はトランジスタの駆動力が制御され、通常ＣＭＯＳのＡＮＤ回路１１０と比較して入力ピンｎ−ＭＯＳのトランジスタサイズと、出力ピンｐ−ＭＯＳのトランジスタのサイズが小さく設計されている。
【００６３】
これにより、メモリブロック３００、スイッチノード１００のデータ遅延は、
評価期間のＨｉ出力遅延時間＜＜プリチャージ期間のＬｏ出力遅延時間≦データ出力時間
なる関係となる。
【００６４】
メモリブロック３００への書き込みデータ信号、アドレス信号、コマンド信号については、メモリ入出力部４００を共有して、一つのメモリ領域として扱われる複数のメモリブロック３００に対しては、メモリ入出力部４００から、同時に複数のメモリブロック３００へ異なる読み出しあるいは書き込み動作のためのコマンド信号を入力することはない。
【００６５】
従って、並列して複数の書き込みデータ信号、あるいはアドレス信号、あるいはコマンド信号が転送することはないので、スイッチノード１００は読み出しデータ信号で説明したものと同じＡＮＤ回路１１０で構成できる。
【００６６】
図１３はメモリ入出力部４００の構成である。メモリブロック３００からスイッチノード１００を経由してきた１６ビット読み出しデータ信号が入力してロジックデバイス２００側に出力する。また、ロジックデバイス２００側からの１６ビット書き込みデータ信号、１４ビットアドレス信号、２ビットコマンド信号が入力し、スイッチノード１００へ出力する。
【００６７】
本実施例では、一つのメモリ領域として扱われる複数のメモリブロック３００は、二次元メッシュ接続網につながる全メモリブロック３００であり、図８のプログラマブルメモリデバイス１０００の全メモリブロック３００であった。
【００６８】
一方、ロジックデバイス２００の複数のロジックブロック２１０が同時に読み出し動作を実行する場合には、メモリ領域をそれぞれのロジックブロック２１０用に分割する。この場合は、図１４に示すようにスイッチノード１００の出力側に出力スイッチ１２０を設けて、二次元メッシュを分割する。
【００６９】
図１５はロジックブロック２１０Ａとロジックブロック２１０Ｂからアクセスするメモリ領域を、メモリ領域Ａとメモリ領域Ｂに分割したものである。メモリ領域Ａの下側の四つのスイッチノード１００の出力がスイッチで切り離され、また、メモリ領域Ｂの上側の四つのスイッチノード１００の出力がスイッチで切り離されることで、メモリ領域Ａとメモリ領域Ｂの二次元メッシュは電気的に分離される。
【００７０】
これにより、メモリ領域Ａとメモリ領域Ｂはそれぞれ独立に読み出し動作を行い、読み出しデータ転送はそれぞれの領域内の二次元メッシュで実行することになる。なお、本実施例では、メモリブロック３００を、１ｋワード１６ビットのＳＲＡＭとしたが、任意のワード、ビット構成のものでよい。
【００７１】
本実施例では、メモリブロック３００をＳＲＡＭとしたが、これをＤＲＡＭ(Dynamic RAM)としてもよい。ＤＲＡＭは回路面積が小さいために、より大容量のメモリを搭載できる。
【００７２】
また、フラッシュメモリやＭＲＡＭ(Magnetoresistive RAM)やＲｅＲＡＭ(Resistance RAM)といった不揮発メモリとしてもよい。不揮発メモリを使うことで、一時的に使われないメモリ領域の電源を止めて、省電力モードとすることが可能である。
【００７３】
本実施例では、メモリブロック３００を４×４の二次元アレイ状に並べたが、このアレイサイズは他の構成でもよい。本実施例ではプログラマブルメモリデバイス１０００として、メモリブロック３００を二次元アレイ状に並べたが、プロセッサブロックを二次元アレイ状に並べたプログラマブルロジックデバイスとしてもよい。
【００７４】
プロセッサブロック以外の構成は、実施例と同様である。さらに、プロセッサをカスタムハードウエアマクロに置き換えることや、プロセッサやカスタムハードウエアマクロやメモリブロック３００の混成構成にしてもよい。
【００７５】
図１６は本発明の第二の実施例である、スイッチノード１００をプリチャージロジックのダイナミックＯＲ回路１３０にしたプログラマブルメモリデバイス１０００の構成である。
【００７６】
第一の実施例のスイッチノード１００のＡＮＤ回路１１０をＯＲ回路１３０に置き換えたものとなっている。一方、メモリブロックには図１７に示すＳＲＡＭを使い、第一の実施例のＯＲ回路３８０がＡＮＤ回路３９０に置き換わったものとなっている。
【００７７】
図１８は、スイッチノード１００の構成である。図の上下左右の方向で隣り合うスイッチノード１００と配線で結合し、また、メモリブロックとも結合するため、全部で五つの方向の接続がある。五つの方向に出力する回路は自身の出力方向以外の四つの方向からの入力信号を入力するＯＲ回路１３０である。
【００７８】
メモリ入出力部を共有する複数のメモリブロックは一つのメモリ領域を構成するため、複数のメモリブロックで同時に読み出し動作は行わない。一つのメモリブロックが読み出しデータを出力するときは、その他のメモリブロックの出力は読み出しデータを出力せずに、読み出し信号が全ビットでローレベル出力となる。
【００７９】
これにより、スイッチノード１００への入力信号は五つの入力方向のうち、読み出しデータを出力するメモリブロックからデータが転送されてくる方向以外は全ビットローレベルの信号であり、ＯＲ回路１３０の出力は、読み出しデータ信号が、そのまま出力されて隣り合うスイッチノード１００へ転送される。
【００８０】
図１９はスイッチノード１００の四入力のＯＲ回路１３０であり、クロック同期型のダイナミック回路であるプリチャージロジックで構成する。プリチャージ期間で全てのスイッチノード１００を出力Ｈｉ信号にセットする。
【００８１】
このプリチャージは、メモリブロックのデータ出力動作と並列に実行するため、このメモリブロック内の出力遅延にプリチャージ期間を隠蔽できる。メモリデータ出力時のタイミングチャートは第一の実施例と図１２と同様である。
【００８２】
図１９のＯＲ回路１３０はプリチャージ論理の入力部をｎ−ＭＯＳトランジスタが並列構成になるようにすることでスイッチ抵抗を小さくすることでき、転送が速くなることが期待できる。
【００８３】
図１９の回路では、第一の実施例と同様にプリチャージＬｏ出力の遷移が遅く、評価期間Ｈｉ出力の遷移が早くなるように、通常ＣＭＯＳのＡＮＤ回路と比較して入力ピンｎ−ＭＯＳのトランジスタサイズと、出力ピンｐ−ＭＯＳのトランジスタのサイズを小さく設計する。
【００８４】
図２０は本発明の第三の実施例である、スイッチノード１００をパルス信号制御のプリチャージロジック回路にしたプログラマブルメモリデバイス１０００の構成である。第一の実施例では、スイッチノード１００は、図１１のようにクロック信号ＣＬＫのＨｉ期間とＬｏ期間でプリチャージ期間と評価期間を設定するプリチャージロジックのダイナミックＡＮＤ回路１１０を使った。しかし、本実施例では、図２１に示すパルス信号制御のプリチャージロジックのＡＮＤ回路１１０にする。
【００８５】
この場合、図２２のタイミングチャートに示すようにプリチャージ期間はクロック信号ＣＬＫでなくパルス信号で制御される。プリチャージ期間となるパルス信号のＨｉ時間は、
プリチャージ期間のＬｏ出力遅延時間≦パルス信号のＨｉ時間≦データ出力時間 
とする。
【００８６】
これにより、クロックサイクル時間に依存せずにプログラマブルメモリデバイス１０００からの読み出しデータのアクセス遅延を常にＣＭＯＳの回路よりも小さくすることが可能である。
【００８７】
また、第一の実施例と同じく、プリチャージＬｏ出力の遷移が遅く、評価期間Ｈｉ出力の遷移が早くなるように図２１の回路は、通常ＣＭＯＳのＡＮＤ回路と比較して入力ピンｎ−ＭＯＳのトランジスタサイズと、出力ピンｐ−ＭＯＳのトランジスタのサイズを小さく設計する。
【００８８】
本実施例では、スイッチノード１００をパルス信号制御のプリチャージロジックのＡＮＤ回路１１０としたが、これを図２３に示すようなパルス信号制御のプリチャージロジックのＯＲ回路１３０としてもよい。この場合、スイッチノード１００以外の構成は第二の実施例と同様である。
【００８９】
なお、本発明は本実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で各種の変形を許容する。また、当然ながら、上述した実施の形態および複数の変形例は、その内容が相反しない範囲で組み合わせることができる。さらに、上述した実施の形態および変形例では、各部の構造などを具体的に説明したが、その構造などは本願発明を満足する範囲で各種に変更することができる。
【符号の説明】
【００９０】
１００    スイッチノード
１１０    ＡＮＤ回路
１２０    出力スイッチ
１３０    ＯＲ回路
１５０    セレクタ回路
２００    ロジックデバイス
２１０    ロジックブロック
３００    回路ブロック(メモリブロック)
３１０    メモリセル
３２０    アドレスデコーダ
３３０    ワード線ドライバ
３４０    センスアンプ
３５０    ライトバッファ
３６０    リードバッファ
３７０    制御部
３８０    ＯＲ回路
３９０    ＡＮＤ回路
４００    メモリ入出力部
５００    二次元メッシュ配線網
１０００    プログラマブルデバイス回路(プログラマブルメモリデバイス)
【図１】
2011146944.tif 000003
【図２】
2011146944.tif 000004
【図３】
2011146944.tif 000005
【図４】
2011146944.tif 000006
【図５】
2011146944.tif 000007
【図６】
2011146944.tif 000008
【図７】
2011146944.tif 000009
【図８】
2011146944.tif 000010
【図９】
2011146944.tif 000011
【図１０】
2011146944.tif 000012
【図１１】
2011146944.tif 000013
【図１２】
2011146944.tif 000014
【図１３】
2011146944.tif 000015
【図１４】
2011146944.tif 000016
【図１５】
2011146944.tif 000017
【図１６】
2011146944.tif 000018
【図１７】
2011146944.tif 000019
【図１８】
2011146944.tif 000020
【図１９】
2011146944.tif 000021
【図２０】
2011146944.tif 000022
【図２１】
2011146944.tif 000023
【図２２】
2011146944.tif 000024
【図２３】
2011146944.tif 000025
【図２４】
2011146944.tif 000026
【図２５】
2011146944.tif 000027
【図２６】
2011146944.tif 000028