(57)【要約】【課題】非常に短いターンアラウンド時間で製造可能な、スパイク列処理のための装置を実現するのに好適な論理ゲートアレイを提供する。【解決手段】プログラム可能論理ゲートアレイ２０は、複数の論理ゲートセル５０Ａ〜５０Ｂと、論理ゲートセル５０Ａ〜５０Ｂ間を相互接続するように構成されたプログラム可能な相互接続４０Ａ〜４０Ｎとを含む。論理ゲートセル５０Ａ〜５０Ｂの各々は２より多い入力Ａ、Ｂ、Ｃと、入力Ａ、Ｂ、Ｃのうち１個のみがアクティブであるときのみアクティブとなる出力Ｙとを有する。【選択図】        図１
2005184375.tif 000002
【特許請求の範囲】
【請求項１】
プログラム可能論理ゲートアレイであって、
複数の論理ゲートセルを含み、前記複数の論理ゲートセルの各々は、予め定められた数の入力と、所定数の入力がアクティブであるときのみアクティブとなる出力とを有し、前記予め定められた数は２より大きく、さらに
複数の論理ゲートセル間を相互接続するよう構成されたプログラム可能手段を含む、プログラム可能論理ゲートアレイ。
【請求項２】
前記プログラム可能手段は、前記複数の論理ゲートセルの出力が前記複数の論理ゲートセルのそれぞれ所望の入力に接続されるようにプログラム可能に構成されたプログラム可能な相互接続手段を含み、
前記複数の論理ゲートセルの各々は、前記相互接続手段によって提供される相互接続によってその機能が定められる、請求項１に記載のプログラム可能論理ゲートアレイ。
【請求項３】
前記複数の論理ゲートセルの各々は、前記複数の論理ゲートセルの各々の入力の各々をそれぞれプログラム可能な重みで乗算するプログラム可能加重手段を有する、請求項１または請求項２に記載のプログラム可能論理ゲートアレイ。
【請求項４】
前記複数の論理ゲートセルの各々のプログラム可能加重手段の重みをプログラムするための重みプログラム手段をさらに含む、請求項３に記載のプログラム可能論理ゲートアレイ。
【請求項５】
前記重みの各々が０または１のいずれかの値をとる、請求項３または請求項４に記載のプログラム可能論理ゲートアレイ。
【請求項６】
外部信号を受けるための受信手段と、
受信した外部信号を前記複数の論理ゲートセルの入力のうち所望のものに伝搬するようプログラムされるように構成されたプログラム可能伝搬手段とをさらに含む、請求項１〜請求項５のいずれかに記載のプログラム可能論理ゲートアレイ。
【請求項７】
前記予め定められた数が３である、請求項１〜請求項６のいずれかに記載のプログラム可能論理ゲートアレイ。
【請求項８】
前記予め定められた数が４である、請求項１〜請求項６のいずれかに記載のプログラム可能論理ゲートアレイ。
【請求項９】
前記所定数が１である、請求項１〜請求項８のいずれかに記載のプログラム可能論理ゲートアレイ。
【請求項１０】
プログラム可能論理ゲートアレイであって、
行列に配置された複数の論理ゲートセルを含み、前記複数の論理ゲートセルの各々は、予め定められた数の入力と、所定数の入力がアクティブであるときのみアクティブとなる出力とを有し、前記予め定められた数は２より大きく、さらに
論理ゲートセルの出力が前記行列内において隣接する論理ゲートセルの入力に接続されるように、前記複数の論理ゲートセルを接続するための相互接続手段を含み、
前記論理ゲートセルの各々はその入力をそれぞれの重みで乗算するためのプログラム可能な加重手段を有する、プログラム可能論理ゲートアレイ。
【請求項１１】
前記複数の論理ゲートセルの各々の加重手段の重みをプログラムするためのプログラム手段をさらに含む、請求項１０に記載のプログラム可能論理ゲートアレイ。
【請求項１２】
前記重みの各々が０または１のいずれかの値をとる、請求項１１に記載のプログラム可能論理ゲートアレイ。
【請求項１３】
前記予め定められた数が３である、請求項１〜請求項１２のいずれかに記載のプログラム可能論理ゲートアレイ。
【請求項１４】
前記所定数が１である、請求項１〜請求項１３のいずれかに記載のプログラム可能論理ゲートアレイ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はプログラム可能論理ゲートセルに関し、特に、時系列処理に適し、規模を拡大することが可能でかつ進化することが可能な、ハードウェア設計に適したプログラム可能な論理セル及びアレイに関する。
【背景技術】
【０００２】
現在のところ、論理合成及びパルスを用いるニューラルネットワークの分野の研究者は、彼らのアイデアを、時間がかかるシミュレーションモデルで試すか、かなりの時間と費用をかけてカスタムＩＣ（集積回路）またはＦＰＤ（フィールドプログラム可能装置）を用いたシステムを製作するかしなければならない。
【０００３】
カスタムＩＣは合成論理を実現するには最も費用のかかる手段である。カスタムＩＣを製作するにはかなりの時間を要するうえに、合成論理の設計を何度か手直ししようとすれば、作成サイクル全体を繰返さなければならない。
【０００４】
ＦＰＧＡ（フィールドプログラマブルゲートアレイ）またはＣＰＬＤ（コンプレックスプログラマブル論理装置）等のＦＰＤはそれほど高価ではない。これらの製造に掛るターンアラウンド時間（応答時間）は極めて短い。初期費用と財政的リスクも低い。さらに、設計変更も容易に可能である。
【０００５】
ＦＰＧＡ及びＣＰＬＤのアーキテクチャについては、以下に記載の非特許文献１を参照されたい。
【０００６】
ＦＰＧＡチップは、論理ゲートセルのアレイと、ゲートセルの所望の入出力間に相互接続を提供するためのプログラム可能な相互接続と、Ｉ／Ｏブロックとを有する。通常、プログラム可能な相互接続はＳＲＡＭまたはアンチヒューズによって実現される。論理ゲートセルの各々は汎用のものであって、かなり複雑な機能を実現するための多数の論理回路を含み得る。
【０００７】
【非特許文献１】Ｓ．ブラウン及びＪ．ローズ、「ＦＰＧＡ及びＣＰＬＤのアーキテクチャ：チュートリアル」、ＩＥＥＥコンピュータの設計と試験、第１３巻、第２号、１９９６年、４２−５７頁。（Ｓ   Ｂｒｏｗｎ，  ａｎｄ  Ｊ．  Ｒｏｓｅ，  ”Ａｒｃｈｉｔｅｃｔｕｒｅ  ｏｆ  ＦＰＧＡｓ  ａｎｄ  ＣＰＬＤｓ：  Ａ  Ｔｕｔｏｒｉａｌ”，  ＩＥＥＥ  Ｄｅｓｉｇｎ  ａｎｄ  Ｔｅｓｔ  ｏｆ  Ｃｏｍｐｕｔｅｒｓ，  ｖｏｌ．  １３，  ｎｏ．  ２，  １９９６，  ｐｐ．  ４２――５７．）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
残念ながら、従来のＦＰＤはスパイク列処理用の装置を容易に実現するには適していない。さらに、従来のＦＰＤでは、引数が非常に多い場合、ブール関数を実現するのが困難である。
【０００９】
従って、この発明の目的の一つは、非常に短いターンアラウンド時間で製造可能な、スパイク列処理のための装置を実現するのに好適な論理ゲートアレイを提供することである。
【００１０】
この発明の別の目的は、非常に短いターンアラウンド時間で製造可能な、引数の非常に多いブール関数を実現するのに好適な論理ゲートアレイを提供することである。
【課題を解決するための手段】
【００１１】
この発明の一つの局面に従えば、プログラム可能論理ゲートアレイは複数の論理ゲートセルを含み、複数の論理ゲートセルの各々は予め定められた数の入力と、所定数の入力がアクティブであるときのみアクティブとなる出力とを有し、予め定められた数は２より大きく、さらに複数の論理ゲートセル間を相互接続するように適合されたプログラム可能手段を含む。
【００１２】
好ましくは、プログラム可能手段は、複数の論理ゲートセルの出力が複数の論理ゲートセルのそれぞれ所望の入力に接続されるようにプログラム可能に適合されたプログラム可能な相互接続手段を含み、複数の論理ゲートセルの各々はこの相互接続手段によって提供される相互接続によってその機能が定められる。
【００１３】
より好ましくは、複数の論理ゲートセルの各々は、複数の論理ゲートセルの各々の入力の各々をそれぞれプログラム可能な重みで乗算するプログラム可能加重手段を有してもよい。
【００１４】
プログラム可能論理ゲートアレイは、複数の論理ゲートセルの各々のプログラム可能加重手段の重みをプログラムするための重みプログラム手段をさらに含んでもよい。
【００１５】
重みの各々は０または１のいずれかの値をとり得る。
【００１６】
好ましくは、プログラム可能論理ゲートアレイは、外部信号を受けるための受信手段と、受信した外部信号を複数の論理ゲートセルの入力のうち所望のものに伝搬するようプログラムされるように構成されたプログラム可能伝搬手段とをさらに含む。
【００１７】
より好ましくは、予め定められた数は３または４である。
【００１８】
所定数は１であってもよい。
【００１９】
この発明の第２の局面に従ったプログラム可能論理ゲートアレイは、行列に配置された複数の論理ゲートセルを含み、これら複数の論理ゲートセルの各々は、予め定められた数の入力と、所定数の入力がアクティブであるときのみアクティブとなる出力とを有し、予め定められた数は２より大きく、さらに論理ゲートセルの出力が行列内で隣接する論理ゲートセルの入力に接続されるように複数の論理ゲートセルを接続するための相互接続手段を含み、論理ゲートセルの各々はその入力をそれぞれの重みで乗算するためのプログラム可能な加重手段を有する。
【００２０】
プログラム可能論理ゲートアレイはさらに、複数の論理ゲートセルの各々の加重手段の重みをプログラムするためのプログラム手段を含んでもよい。
【００２１】
重みの各々は０または１のいずれかの値をとり、予め定められた数は３であり、所定数は１であってもよい。
【発明を実施するための最良の形態】
【００２２】
この発明の一実施例は、ＩＣＵＬＵと呼ばれるユニバーサル論理ユニット（ＵＬＵ）の集積回路による実装に関するものである。図１はこの発明の一実施例に従った論理ゲートアレイチップの全体アーキテクチャを示す。
【００２３】
図１を参照して、この実施例の論理ゲートアレイチップ２０は多数の入出力（Ｉ／Ｏ）端子３０と、ＪＴＡＧ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ）端子３２とを有し、行列状に配置された多数のユニバーサル論理ユニット（ＵＬＵ）を含む論理ゲートアレイ３８と、Ｉ／Ｏ端子３０及び論理ゲートアレイ３８に接続され外部入力を受けるとともに論理ゲートアレイ３８の論理計算を出力するためのＩ／Ｏブロック３６と、ＪＴＡＧ端子３２、Ｉ／Ｏブロック３６、及び論理ゲートアレイ３８に接続され、所望のビット値を論理ゲートアレイ３８に含まれるプログラム可能な相互接続内の所望のラッチにシリアルに伝搬することにより、論理ゲートアレイをプログラムするためのＪＴＡＧ及びイン−システムプログラミングコントローラ３４とを含む。
【００２４】
論理ゲートアレイ３８は、多数のゲートセル列４２Ａ−４２Ｎと、それぞれのゲートセル列４２Ａ−４２Ｎの左側に設けられた多数のプログラム可能な相互接続アレイ４０Ａ−４０Ｎとを含む。第１の列のプログラム可能な相互接続アレイ４０ＡはＩ／Ｏブロック３６と第１のゲートセル列４２Ａとの間に設けられる。
【００２５】
ゲートセル列４２Ａ−４２Ｎの各々は多数の４入力ＵＬＵマクロセルを含む。例えば、第１のゲートセル列４２Ａは多数のマクロセル５０Ａ−５０Ｍを含む（「マクロセル５０」と総称する）。従って、論理ゲートアレイ３８はＭ×Ｎ個のマクロセルを含む。Ｍ及びＮの数はウエハのサイズに依存する。
【００２６】
この実施例のマクロセル５０の各々は、４個の入力と、入力のうち１個のみがアクティブであるときのみアクティブとなる１個の出力とを有する。この実施例のように、少なくとも３個の入力と、入力のうち１個のみがアクティブであるときのみアクティブとなる１個の出力とを有するＵＬＵを専ら用いることで、スパイク列系の論理方式またはプロセッサが構築できることが証明されている。さらに、この設計は完全に二次元である、すなわち、交差する配線がない。後にこの明細書中でこれを証明する。
【００２７】
プログラム可能相互接続アレイ４０Ａ−４０Ｎの各々は、ＵＬＵの入出力を接続するための多数の入出力線を含む。プログラム可能相互接続アレイ４０Ａ−４０Ｎはさらに、ＵＬＵへの外部入力を与えるための線を含む。ＵＬＵの入出力間の相互接続及びこれらの線は、非特許文献１に示されるような方式でＪＴＡＧ及びイン−システムプログラミングコントローラ３４によってプログラムされる。
【００２８】
記載を簡潔にするため、３個の入力と、入力のうち１個のみがアクティブであるときのみアクティブになる単一の出力とを有するＵＬＵについて述べる。図２はこのようなＵＬＵ５０を示す。ＵＬＵ５０は３個の入力Ａ、Ｂ、Ｃと、入力Ａ、Ｂ、Ｃのうち１個のみがアクティブであるときにのみアクティブとなる出力Ｙとを有する。
【００２９】
どのＵＬＵ５０も、クロックｔ−１でＵＬＵに隣接するものから返されるパルスの加重合計が１に等しい時のみ、クロックｔでパルスを返す。重みは０または１である。入力はそれぞれの重みと乗算される。図２に示した例では、透明な三角形が１に等しい重みを表す。
【００３０】
なお、重みはプログラム可能である。重みはＪＴＡＧ等の既存のプロトコルと共にＵＬＵ内に記憶され、それによってＵＬＵの機能を決定する。
【００３１】
これに代えて、ＵＬＵの機能をＵＬＵ間の相互接続によってプログラムしてもよい。ＵＬＵ５０の入力が０に固定されている場合、対応する重みには意味がなく、ＵＬＵはその入力に対する重みが０であるかのように動作する。これを図３に示す。図３を参照して、ＵＬＵ５０の入力のうち１個、例えば「南」の入力が０に固定されていると仮定する。この場合、ＵＬＵ５０は「南」の重みが０と等しいＵＬＵ５２と等価である。同様に、ＵＬＵ５０の入力のうち２個を図４に示されるようにプログラムすることができる。図４を参照して、ＵＬＵ５０の「北」と「南」の入力が０に固定されていると仮定する。この場合ＵＬＵ５０は「北」と「南」の入力が０であるＵＬＵ５４と等価である。
【００３２】
ＵＬＵ５０の真理値表を表１として示す。
【００３３】
【表１】
2005184375.tif 000003
表１から、すべての可能な入力について満足する出力を得る集積回路が設計できる。このような回路の例を図５に示す。図５に示す回路は３個の入力Ａ、Ｂ、Ｃと出力Ｙとを有する。出力Ｙは入力Ａ、Ｂ、Ｃのうち１個のみがアクティブのときのみ、アクティブとなる。入出力のいずれかに抵抗または容量負荷が生じることのないよう、バッファが付加されている。
【００３４】
３入力のＵＬＵが一般的に完全であることが証明されており、これは他の論理ゲートを用いる必要なしにＵＬＵによってすべてのブール関数を構築できることを意味する。さらに、ＩＣＵＬＵに基づく方式が立体的な交差を必要としないことも証明されている。これは、ＩＣＵＬＵを用いればどのような論理構成も二次元となり交差する配線がないことを意味し、これは価値のある特徴である。
【００３５】
図６は「平面交差」として働く５個のＵＬＵのグループを示す。図６に示したＵＬＵの詳細を説明する前に、ＵＬＵの特性を要約する。
【００３６】
注＃１：（図４に示すＵＬＵ５４等の）単一入力のノード（ＵＬＵ）は１クロックの遅延として働く。
【００３７】
注＃２：２入力のみのノード（図３に示すＵＬＵ５２等）は１クロック遅延した排他的論理和ＥＸＯＲ（図では＋記号を○で囲んだもので示す。本文中は◎で置きかえる。）として働く。
【００３８】
注＃３：２入力のみのノードであって入力のうち一方がｘであり他方が１に等しいものは１クロック後にｘの否定（〜ｘで示す）を返す。
【００３９】
注＃４：３入力のみのノードであって入力のうち１個がｙに等しく残り２個がいずれもｘに等しいものは、ｘが０に等しい時のみ１クロック後にｙを返す関数、言いかえれば１クロック後にｙ（〜ｘ）を返す関数として働く。
【００４０】
さて、図６に示したようなＵＬＵが「平面交差」として働くことを証明することとする。以下、ＵＬＵ  Ｘt、Ｙt、Ａt、Ｂt、Ｃt、Ｄt、及びＥtの出力をそれぞれ（ｘ1,ｘ2,…）、（ｙ1,ｙ2,…）、（ａ1，ａ2，…）、（ｂ1,ｂ2,…）、（ｃ1,ｃ2,…）、（ｄ1,ｄ2,…）、（ｅ1，ｅ2，…）で表す。全てのノード（ＵＬＵ）は以下に定義する同じ関数ｑを実行する。
【００４１】
定義１．ｑは、クロックｔ−１で１個の、かつ１個のみのパルスを受取ったときにクロックｔで１個のパルスを返す関数である。
【００４２】
関数ｑを用いると、これから証明しようとするものは以下の補題で定式化することができる。
【００４３】
補題１：もし（ｘ1,ｘ2,…）、（ｙ1,ｙ2,…）、（ａ1，ａ2，…）、（ｂ1,ｂ2,…）、（ｃ1,ｃ2,…）、（ｄ1,ｄ2,…）及び（ｅ1，ｅ2，…）が一連のブール値であり、かつａt+1＝ｑ（ｘt、０、０、０,…）、ｃt+1＝ｑ（ｘt，ｙt，０，０，０，…）、ｅt+1＝ｑ（ｙt,０，０，０，…）ｂt+2＝ｑ（ａt+1,ｃt+1,０，０，０，…）かつｅt+2＝ｑ（ａt+1,ｃt+1,０，０，０，…）であれば、ｂt+2＝ｙtでありｄt+2＝ｘtである。
【００４４】
証明：注＃１によれば、ａt+1＝ｘtかつｅt+1＝ｙtであり、一方注＃２によればｃt+1＝ｘt◎ｙtである。従って、注＃２から、ｂt+2＝ｑ（ｘt,ｘt◎ｙt,０,０,０,…）＝ｘt◎（ｘt◎ｙt）かつｄt+2＝ｑ（ｙt,ｘt◎ｙt,０,０,０,…）＝ｙt◎（ｘt◎ｙt）である。ＥＸＯＲの周知の特性により、ｐ◎（ｑ◎ｒ）＝（ｐ◎ｑ）◎ｒである。従って、ｂt+2＝（（ｘt◎ｘt）◎ｙt）＝０◎ｙt＝ｙtであり、ｄt+2＝（（ｙt◎ｙt）◎ｘt）＝０◎ｘt＝ｘtである。（ＱＥＤ）
ＵＬＵ  Ｘtの出力ｘtは、２クロック後にＵＬＵ  Ｄtの出力に現れる。ＵＬＵ  Ｙtの出力は２クロック後にＵＬＵ  Ｂtの出力に現れる。したがって、図６に示すＵＬＵは「平面交差」として働く。
【００４５】
この実施例のＩＣＵＬＵは、特に時系列の処理において、非常に大型の論理構成の実現に関連して、特に時系列の処理に関連して、特化したＶＬＳＩ（超大規模集積回路）の製作及びＦＰＧＡプログラミングに代わる選択肢を提供する。この実施例では、さまざまな機能、レイアウト、およびパッケージのチップを多数集めるのでなく、一旦相互接続すればどのような構成も作り出せる均一な電子要素を提案する。研究者は、高価な多目的ＦＰＧＡの、手間のかかるプログラミングの代わりに、より安価な単一目的のＩＣＵＬＵを、将来にわたり自己進化するハードウェアを構築するためのブロックとして利用することができる。
【００４６】
ＩＣＵＬＵは論理合成及びパルスを用いるニューラルネットワークの研究を加速するであろう。ＩＣＵＬＵを用いたブロックの基本的設計を行うことは、それを高速ハードウェアで実現することと全く同一である。さらに、ＩＣＵＬＵを用いたの方式には立体的な交差が必要でない。これは、ＩＣＵＬＵを用いればいかなる論理構成も二次元となり交差配線がなくなることを意味する。
【００４７】
ＩＣＵＬＵは小型で単純なシステムシミュレーションを可能にするために単一のセルチップとして実現することもできる。逆に、より実際的には、ＶＬＳＩを用いて高密度なマルチセルチップとして実現することもできる。セル間の相互接続は、新しいプロトコルまたは既存のＪＴＡＧ等のプロトコルを用いてプログラム可能である。
【００４８】
さらに、ＩＣＵＬＵはマクロセルを構築するのに用いることができ、そのマクロセルはＶＬＳＩ設計を用いて実現することができる。３入力または４入力のＩＣＵＬＵはマクロセルとして使用するのに好適である。なぜなら、この場合には隣接するセルから入力を受けることができ、４入力のＩＣＵＬＵを用いている場合には外部入力も直接受けることができるからである。
【００４９】
上述の実施の形態は単なる例示であって制限的なものと解してはならない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内でのすべての変更を含む。
【図面の簡単な説明】
【００５０】
【図１】この発明の一実施例に従った論理ゲートアレイの概略図である。
【図２】この発明の実施例で用いられる論理ゲートセルの概略を示す図である。
【図３】１入力が０に固定された論理ゲートセルの概略図である。
【図４】２入力が０に固定された論理ゲートセルの概略図である。
【図５】図２に示す論理ゲートセルの回路図である。
【図６】論理ゲートセルを用いるこの発明の第２の実施例に従ったアレイにおいて、２個の信号が二次元の面でどのように交差するかを示す図である。
【符号の説明】
【００５１】
２０  論理ゲートアレイチップ、３０  Ｉ／Ｏ端子、  ３２  ＪＴＡＧ端子、３４  ＪＴＡＧ及びイン−システムプログラミングコントローラ、３６  Ｉ／Ｏブロック、３８  論理ゲートアレイ、４０Ａ−４０Ｎ  プログラム可能相互接続アレイ、４２Ａ−４２Ｎ  ゲートセル列、５０、５０Ａ−５０Ｍ、５２、５４  ＵＬＵ
【図１】
2005184375.tif 000004
【図２】
2005184375.tif 000005
【図３】
2005184375.tif 000006
【図４】
2005184375.tif 000007
【図５】
2005184375.tif 000008
【図６】
2005184375.tif 000009
【外国語明細書】
2005184375000001.pdf
2005184375000002.pdf
2005184375000003.pdf
2005184375000004.pdf