(57)【特許請求の範囲】
【請求項１】
内部に第１記憶手段を有し、前記第１記憶手段によってプログラマブル論理手段、プログラマブル結線手段又はメモリ手段として動作し、アレイ状に配置された複数のプログラマブルセルであり、隣接するプログラマブルセル間の入出力ポート同志が直結された複数のプログラマブルセルと、
複数の配線により構成され、第２記憶手段によって配線群の結線状態を決定する配線ネットワークと、
を有するプログラマブルデバイスであり、
前記プログラマブルセルの入出力ポート群をｎセット（ｎは２以上の整数）設け、
前記配線ネットワークをｍセット（ｍは２以上の整数）設け、
前記プログラマブルセルが記憶情報によって前記プログラマブル結線手段として動作する時に、前記記憶情報によって同一セット内及びセット間の配線接続を決定することを特徴とするプログラマブルデバイス。
【請求項２】
前記プログラマブルセルのｎセットの入出力ポート群の一部又は全部と、前記ｍセットの配線ネットワークの一部又は全部を、共通に接続することを特徴とする請求項１記載のプログラマブルデバイス。
【請求項３】
前記プログラマブルセルの入出力ポートが、前記第１記憶手段によって前記プログラマブルセル内の他の入出力ポートと接続されることを特徴とする請求項１、２のいずれか一つに記載されたプログラマブルデバイス。
【請求項４】
前記記憶情報は、同一セット内及びセット間の配線接続をプログラマブルセル内で一括に制御する配線モード情報と、同一セット内及びセット間の配線接続の一部を制御する前記第１記憶手段の配線マトリクス接続情報とからなることを特徴とする請求項１記載のプログラマブルデバイス。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明は、プログラマブルデバイスに関し、特に、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等のプログラマブルデバイスを構成するプログラマブルセルと配線ネットワークに関する。
【０００２】
【従来の技術】
従来、ＦＰＧＡを代表とするプログラマブルデバイスは、ハードウェアをどのように構成するかを指定するコンフィグレーション情報を内部に保持し、このコンフィグレーション情報の指示に従って所望のハードウェアを実現するＬＳＩである。近年半導体製造技術の進歩によってプログラマブルデバイスで実現可能なハードウェアの規模が拡大するに伴い、ゲートアレイＬＳＩからプログラマブルデバイスへの置き換えが進んでおり、大きな注目を集める様になってきている。この様なプログラマブルデバイスは、一般的に任意の機能のハードウェアを実現することが求められるが、その汎用性から任意の論理を実現するプログラマブルセルの回路規模が大きくなる為に大規模な回路を実現することが難しく、より大きな規模の回路を搭載するセル及びチップアーキテクチャが要求されている。
【０００３】
又、実現する回路によっては論理ゲート間の配線が大規模となって、プログラマブルセルの配線リソースが不足することから、より多くの配線リソースが求められている。
【０００４】
この様な要請に応える為に、例えば平成１０年特許願３０９２８５号には、任意の論理とメモリ、結線手段をプログラマブルセルで実現することにより、ハードウェア規模及び配線リソースの要求に応える技術が開示されている。具体的には、この技術は、プログラマブルセルのモードとしてメモリと結線手段を持たせることにより、論理ゲートで実現するには効率が悪いメモリを効率良く実現し、配線リソースが不足した場合にはセルを配線リソースとして用いることにより大規模な回路を効率良く実現するものである。
【０００５】
又、特願平７−２７３６４０号公報（「フィールドプログラマブルゲートアレイ素子」）においては、プログラマブル論理回路は、図８に示すように、比較器１０４への入力の一つをメモリセル１０２に格納されたデータと外部データ信号の間で切り替えるためのマルチプレクサ１０３を含ませている。このようなプログラマブル論理回路と図示しない復号器とを２次元配列して、小型ＲＯＭ、連想メモリ、マルチポートレジスタファイルを構成している。
【０００６】
又、特開平９−８３３４７号公報（「マルチポートＲＡＭを有するフィールド・プログラマブル・ゲート・アレ」）においては、図９に示すように、第１、第２ＲＡＭセル１０２、１０８は、対応する第１、第２読み出し／書込みポート１０４、１１０に接続される。ＲＡＭセルは、スイッチングデバイス１１４によって切り離される時シングルポートＲＡＭとして独立して機能する。しかし、ＲＡＭセルは、スイッチングデバイス１１４によって接続される時、二重ポートＲＡＭとして集合適に機能するためデータを分け合う。  又、特開平９−１８６５８１号公報（「フィールド・プログラマブル・メモリ・アレイ」）においては、図１０に示すように、アドレス・デコーダ、階層ビット線配列、入出力配置、はプログラム可能であり、アレイのそれぞれの部分を選択モードにプログラムすることができる。
【０００７】
又、特開平１０−２４０６７８号公報（「拡張入出力バス」）においては、図１１に示すように、マスタプロセッサ１とスレーブプロセッサ４との間に配置されたＦＰＧＡ３は、コンフィグレーション信号Ｄを選択することにより、任意の数のレジスタからなるＦＩＦＯ（先入れ先出しメモリ）として動作する。複数のコンフィグレーション信号Ｄは、コンフィグレーションＲＯＭ７から読み出され、セレクタ６で其の中の一つが選択される。
【０００８】
【発明が解決しようとする課題】
しかし、従来の技術では、プログラマブルセルを配線リソースやメモリとして使う必要がない場合、プログラマブルセルの配線リソースモードとメモリモードが不要となり、プログラマブルセルに生じた回路及び面積のオーバーヘッドが無駄であるという問題がある。又、モード追加により１つのプログラマブルセルの回路および面積が増加しチップに載せるプログラマブルセルが少なくなるために、実現出来る回路規模が小さくなるという問題がある。又、例えばＦＩＦＯ回路を実現する場合メモリの書き込みと読み出しが同時に出来ないプログラマブルセルでは、多くのプログラマブルセルが必要になる。
【０００９】
ここで、プログラマブルセルのモード追加に伴うオーバーヘッドについて説明しておく。
【００１０】
図１２は任意の論理を実現する４入力１出力論理と１６ビットＲＡＭをモードの切り替えによって実現する構成の１例である。本回路が４入力１出力回路として動作する場合、記憶素子８０１中の記憶情報は任意の論理を可能にするルックアップテーブルの内容とるため書き換えの必要はない。よって動作としてはデータがＩＮ１〜４に入力されると入力されたアドレスに対応する記憶素子８０１の情報が読み出されることにより任意の論理を実現する。次に本回路が１６ビットＲＡＭとして動作する場合、読み出し動作はアドレスがＩＮ１〜４に入力されるとアドレスに対応する記憶素子８０１の情報が読み出され、４入力１出力回路の動作と全く同じである。しかしながらデータを書き込む場合は新たな経路が必要となり書き込みバッファ８０５及びそれに付随する配線がオーバーヘッドとなる。
【００１１】
図１３は任意の論理を実現する４入力１出力回路と１６ビットＲＡＭ、縦４本横４本のクロスバースイッチをモード切り替えにより実現するプログラマブルセルの１例である。本プログラマブルセルは、隣接した上下左右のプログラマブルセル及び配線ネットワークとを入出力ポート９０１により直結させる。又プログラマブルセルの上下左右にセレクタを有し、入出力ポートとメモリ手段との接続を制御する。動作としては、プログラマブルセルが任意の論理を実現する４入力１出力回路又は１６ビットＲＡＭとして動作する場合、データ及びアドレス信号はアドレス入力端子から入力され、データ出力端子から出力される。又プログラマブルセルがクロスバースイッチとして動作する場合は、隣接するプログラマブルセル及び配線ネットワークとメモリ手段が縦横４本ずつの配線により接続され、記憶素子の情報により縦配線と横配線が接続される。よって縦と横の配線とスイッチ素子がクロスバースイッチモードの主なオーバーヘッドである。
【００１２】
そこで、本発明は、従来技術によるプログラマブルデバイスの欠点である論理回路の実現効率を改善し、より大規模な回路を実現することを課題としている。
【００１３】
又、本発明は、従来技術によるプログラマブルデバイスでは不可能であったプログラマブルセルでの複数ポートメモリを提供することを課題としている。
【００１４】
【課題を解決するための手段】
上記の課題を解決するための本発明は、内部に記憶手段を有し、記憶手段によってプログラマブル論理またはメモリとして動作するプログラマブルセルと、複数の配線により構成され記憶手段によって配線群の結線状態を決定する配線ネットワークを有するプログラマブルデバイスにおいて、プログラマブルセルの入出力ポート群をｎセット（ｎは２以上の整数）設け、配線ネットワークをｍセット（ｍは２以上の整数）設けている。
【００１５】
又、本発明は、記憶素子の２次元配列と、前記記憶素子を選択するデコーダと、書込み信号を入力するバッファと、前記記憶素子の出力を選択して出力するセレクタとを備えたプログラマブルデバイスであって、前記デコーダ及び前記セレクタを２以上の組に組織し、前記２以上の組の制御信号を前記デコーダ及び前記セレクタに入力し、前記記憶素子を、前記書込み信号を書き込む前記組と、前記記憶素子に既に書き込まれた信号を読み出す前記組とに組織している。
【００１６】
又、本発明は、プログラマブルセルの２次元配列と、２以上の配線ネットワーク群とを備えたプログラマブルデバイスであって、前記プログラマブルセルの入出力ポート群の各々を、前記配線ネットワーク群の各々に結線し、前記配線群の各々に、同一又は異なる機能の制御信号を入力している。
【００１７】
又、本発明は、記憶素子・スイッチ素子の対の２次元配列と、前記対を選択するセレクタとを備えたプログラマブルデバイスであって、前記セレクタに、データ信号、アドレス信号、及び制御信号を入力し、前記制御信号に基いて、前記対を記憶素子又はスイッチ素子のいずれかとして機能させ、前記対の出力ポートからの出力を前記セレクタから出力している。
【００１８】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態について説明する。
【００１９】
図１は、入出力ポートを２セット化し、２セットの４入力１出力回路（２読み出し）、又は１６ビット２ポート（１読み出し１書き込み）ＲＡＭを実現する回路の構成を示している。
【００２０】
本回路において、記憶素子１０１はマトリクス状に配置され、２組のワード線及びデータ線対により接続される。
【００２１】
接続されたワード線はデコーダ１０２に接続される。
【００２２】
センスアンプ１０３は、記憶素子１０１のデータ線対とセレクタ１０４に接続される。
【００２３】
セレクタ１０４はセンスアンプ１０３のデータを信号ＩＮａ３、ＩＮａ４、ＩＮｂ３、ＩＮｂ４により選択しＯＵＴａ及びＯＵＴｂに出力する。
【００２４】
書き込みバッファ１０５は、記憶素子１０１のデータ線対のどちらか一方に接続され、ｗｒｉｔｅＥｎａ１〜４が活性化された時にＷｒｉｔｅＤａｔａをデータ線対に伝搬する。
【００２５】
よって本回路が４入力１出力回路として動作する場合、２組の入力ポート群ＩＮａ１〜４とＩＮｂ１〜４はそれぞれ１６個の記憶素子１０１の１つを選択し、情報をＯＵＴａ及びＯＵＴｂに出力する。この時、記憶素子１０１の情報は入力ポートによらず共通であるため４入力１出力回路としての論理は同一である。
【００２６】
又本回路が１６ビット２ポートＲＡＭとして動作する場合、データの読み出しは入力ポート群ＩＮａ１〜４とＩＮｂ１〜４から入力されたデータに従って記憶素子１０１の情報が読み出されるが、データの書き込みは書き込みバッファ１０５により一方のポートから行われる為、残りのポートは読み出し動作となる。
【００２７】
この様に本回路では書き込みバッファ１０５及び記憶素子１０１の大部分を共通化し面積オーバーヘッドを抑えつつ２倍の論理及び２ポートＲＡＭを実現出来る。
【００２８】
図２は、３組の入出力ポート群（ｐｏｒｔ−ａ、ｐｏｒｔ−ｂ、ｐｏｒｔ−ｃ）を持ったプログラマブルセル２０１をアレイ状に配置し、３組の配線群（配線ネットワークａ２０２、配線ネットワークｂ２０３、配線ネットワークｃ２０４）を用いてプログラマブルセル２０１を接続した場合のプログラマブルデバイスを示している。
【００２９】
本回路では、各プログラマブルセルの３つの入出力ポート群がそれぞれ別の配線ネットワークで接続されており、プログラマブルセルの同一入出力ポート群間（例えばｐｏｒｔ−ａとｐｏｒｔ−ａ）の任意の接続を可能とする。
【００３０】
よって、例えばプログラマブルセル２０１の入出力ポート群と３組の配線群を同一に構成、接続することにより、プログラマブルデバイスを同一機能の３つの回路として用いることができ面積オーバーヘッドを抑えつつ３倍の性能を実現出来る。
【００３１】
図３は、本発明の一実施の形態として、２組の４入力１出力回路と２ポート１６ビットＲＡＭ、２組の縦４本横４本のクロスバースイッチをモード切り替えにより実現するプログラマブルセルの構成を示している。
【００３２】
本回路において回路外部又は内部を選択的に接続するセレクタ３０４は、隣接するプログラマブルセルとの接続を実現する為に、本回路の上下左右、場合によっては右上右下左上左下に配置される。
【００３３】
セレクタ３０４は、専用配線により他のセレクタ３０４、メモリ手段３０３、入出力ポート群（ａポート入出力３０１、ｂポート入出力３０２）に接続され、接続された信号を任意に接続出来る。
【００３４】
動作としては、プログラマブルセルが２つの４入力１出力回路か２ポート１６ビットＲＡＭの場合、データ及びアドレス信号は入出力ポート群からセレクタ３０４を通ってａポートデータ入力端子３０６及びｂポートデータ入力端子３０７に入力され、ａポートデータ出力端子３０８及びｂポートデータ出力端子３０９からセレクタ３０４を通って入出力ポート群に出力される。
【００３５】
又、モードがクロスバースイッチの場合、隣接するプログラマブルセル及び配線ネットワークとメモリ手段３０４が縦横４本ずつの配線により接続され、記憶素子３１０の情報により縦配線と横配線を接続するクロスバースイッチとして動作する。この時、本図に示すメモリ手段３０３ではａポート入出力３０１及びｂポート入出力３０２から接続された縦横４本の配線の交点全てにスイッチ素子３１１がマトリクス状に配置されており、１ビットの記憶素子を使ってａポート配線群とｂポート配線群の同位置のスイッチ素子３１１を２つ制御している。
【００３６】
よって本プログラマブルセルでは、記憶素子３１０を共通化することにより面積オーバーヘッドを抑えつつ２組の４入力１出力回路、２ポート１６ビットＲＡＭ、２組のクロスバースイッチのいずれかを実現できる。
【００３７】
図４は、プログラマブルセルを２組のクロスバースイッチとして用いた時のメモリ手段におけるスイッチ素子３１１と記憶素子３１０の配置を示している。
【００３８】
本回路においてスイッチ素子３１１は、マトリクス状に配置された記憶素子３１０の情報を用いて縦横に８本ずつ配置された配線群を接続出来る。
【００３９】
よって、本図に示すようにプログラマブルセルをクロスバースイッチとして用いる場合、スイッチ素子３１１を接続したい任意の位置に配置し、クロスバースイッチのサブモードとして図４（ａ）〜（ｉ）を切り替えることにより、同一ポート同士（ａポート縦配線４０１とａポート横配線４０３、ｂポート縦配線４０２とｂポート横配線４０４）の接続だけでなく他ポート間の接続（ａポート配線とｂポート配線）を実現でき、ポートを問わず任意の接続を実現するクロスバースイッチを実現できる。
【００４０】
更にこのクロスバースイッチを用いれば、２組の論理ゲート又は２ポートＲＡＭを接続する際に多く用いられるデータのコピー、乗り換え、入れ替え、通過をプログラマブルセルで実現出来る為、従来配線リソースで持っていたデータのコピー、乗り換え、入れ替え、通過の機能を縮小又は削減でき面積を削減することが出来る。
【００４１】
図５は、プログラマブルセル５０１をアレイ状に配置したプログラマブルセルブロック５０２を、３組の配線群（配線ネットワークａ５０３、配線ネットワークｂ５０４、配線ネットワークｃ５０５）で接続した場合のプログラマブルデバイスを示している。
【００４２】
本回路において、プログラマブルセル５０１は、ａポート入出力群（ｎａ、ｓａ、ｗａ、ｅａ）とｂポート入出力群（ｎｂ、ｓｂ、ｗｂ、ｅｂ）により隣接したプログラマブルセル５０１に接続され、プログラマブルセルブロック５０２を構成する。
【００４３】
プログラマブルセルブロック５０２は、ａポート入出力群により配線ネットワークａ５０３と配線ネットワークｂ５０４に、ｂポート入出力群により配線ネットワークｂ５０４と配線ネットワークｃ５０５に接続される。又場合によっては隣接するプログラマブルセルブロック５０２にも接続される。
【００４４】
よってプログラマブルセル５０２のａポート入出力群とｂポート入出力群は配線ネットワークｂ５０４を用いて自由に乗り換えが出来る様になり、例えばａポート入出力群とｂポート入出力群に共通なデータを配線ネットワークｂ５０４で接続することにより効率のよい配線が可能になる。
【００４５】
又、本構成は、プログラマブルセル５０１のクロスバースイッチモードと組み合わせることにより、更に自由度が高く配線リソースと論理の比率が任意に変更出来るプログラマブルデバイスを実現出来る。
【００４６】
図６は、図３のプログラマブルセルにより２個の全加算器を実現し、２つの全加算器を接続することにより２ビット分の加算器１つのプログラマブルセルで構成している。
【００４７】
本回路は、太線で示すデータ経路からも分かるように、プログラマブルセルの左側のａポート入出力３０１から入力されたデータ（ＡｎとＢｎ）とｂポート入出力３０２から入力されたデータ（Ａｎ＋１とＢｎ＋１）はセレクタ３０４によりメモリ手段３０３に入力する。この時、一方の全加算器の入力にはＡｎとＢｎ以外に下位ビットからのキャリー信号であるＣａｒｒｙ（ｎ−１）がプログラマブルセル外部から入力され、Ｓｕｍ（ｎ）とＣａｒｒｙ（ｎ）が出力される。又他方の全加算器は上位ビットの演算になるためＡｎ＋１とＢｎ＋１とＣａｒｒｙ（ｎ）が入力され、Ｓｕｍ（ｎ＋１）とＣａｒｒｙ（ｎ＋１）が出力される。
【００４８】
この様に本発明のプログラマブルセルを使えば複数ビットの演算回路を低面積で実現することが出来る。
【００４９】
図７は、図３のプログラマブルセルによりクロスバースイッチを実現し、２ビットのデータをコピーすると同時に出力ポートの位置を入れ替える場合の構成を示している。
【００５０】
ここでメモリ手段３０３としては図４の（ｂ）を用い、ａポート配線とｂポート配線の乗り換えを可能とした。
【００５１】
動作としては、プログラマブルセルの左側のａポート入出力３０１から入力されたＡ信号とＢ信号が、クロスバースイッチの通過機能を用いてプログラマブルセル右側のａポート入出力３０１から出力される。又、スイッチ素子３１１の黒丸部分を接続することにより、Ａ信号とＢ信号の出力位置を入れ替えながらｂポート入出力３０２にも信号を出力出来る。
【００５２】
よって、このプログラマブルセルの右側に隣接するプログラマブルセルに減算器を構成すれば、絶対値減算回路に必要なＡ−ＢとＢ−Ａの１ビット分の演算が１つのプログラマブルセルで実現出来る。
【００５３】
【発明の効果】
以上説明した本発明によれば、従来技術によるプログラマブルデバイスの欠点である論理回路の実現効率を改善し、より大規模な回路を実現することができる。
【００５４】
又、本発明によれば、従来技術によるプログラマブルデバイスでは不可能であったプログラマブルセルでの複数ポートメモリを提供することができる。
【図面の簡単な説明】
【図１】本発明による２つの同一論理の４入力１出力回路又は１６ビット２ポート（２読み出し、又は１読み出し１書き込み）ＲＡＭの実施の形態を示したブロック図である。
【図２】本発明によるプログラマブルデバイスの実施の形態を示したブロック図である。
【図３】本発明による２組の４入力１出力回路と２ポート１６ビットＲＡＭ、２組の縦４本横４本のクロスバースイッチをモード切り替えにより実現するプログラマブルセルの実施の形態を示したブロック図である。
【図４】本発明によるプログラマブルセルを２組のクロスバースイッチとして用いた時のメモリ手段におけるスイッチ素子と記憶素子の配置の実施の形態を示したブロック図である。
【図５】本発明によるプログラマブルデバイスの別の実施の形態を示したブロック図である。
【図６】本発明によってプログラマブルセルにより２個の全加算器を実現し、２つの全加算器を接続することにより２ビット分の加算器１つのプログラマブルセルで構成した時の実施の形態を示したブロック図である。
【図７】本発明によってプログラマブルセルによりクロスバースイッチを実現し、２ビットのデータをコピーすると同時に出力ポートの位置を入れ替える場合の実施の形態を示したブロック図である。
【図８】従来のＦＰＧＡのブロック図である。
【図９】従来のもう一つのＦＰＧＡのブロック図である。
【図１０】従来の他のＦＰＧＡのブロック図である。
【図１１】従来の更に他のＦＰＧＡのブロック図である。
【図１２】任意の論理を実現する４入力１出力論理と１６ビットＲＡＭをモードの切り替えによって実現する従来例の具体的な例を示したブロック図である。
【図１３】任意の論理を実現する４入力１出力回路と１６ビットＲＡＭ、縦４本横４本のクロスバースイッチをモード切り替えにより実現するプログラマブルセルの従来例の具体的な例を示したブロック図である。
【符号の説明】
１０１  記憶素子
１０２  デコーダ
１０３  センスアンプ
１０４  セレクタ
１０５  書込みバッファ
３０１  ａポート入出力
３０２  ｂポート入出力
３０３  メモリ手段
３０４  セレクタ
３０６，３０８  ａポートデータ入力端子
３０７、３０９  ｂポートデータ入力端子
３１０  記憶素子
３１１  スイッチ素子
【図１】
0003616518.tif 000002
【図２】
0003616518.tif 000003
【図３】
0003616518.tif 000004
【図４】
0003616518.tif 000005
【図５】
0003616518.tif 000006
【図６】
0003616518.tif 000007
【図７】
0003616518.tif 000008
【図８】
0003616518.tif 000009
【図９】
0003616518.tif 000010
【図１０】
0003616518.tif 000011
【図１１】
0003616518.tif 000012
【図１２】
0003616518.tif 000013
【図１３】
0003616518.tif 000014