JP3555110B2 - Logic function reconfigurable integrated circuit and reconfiguration method - Google Patents
Logic function reconfigurable integrated circuit and reconfiguration method Download PDFInfo
- Publication number
- JP3555110B2 JP3555110B2 JP2001039033A JP2001039033A JP3555110B2 JP 3555110 B2 JP3555110 B2 JP 3555110B2 JP 2001039033 A JP2001039033 A JP 2001039033A JP 2001039033 A JP2001039033 A JP 2001039033A JP 3555110 B2 JP3555110 B2 JP 3555110B2
- Authority
- JP
- Japan
- Prior art keywords
- input
- threshold
- function
- value
- stage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Logic Circuits (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、集積回路製造後であっても、論理関数機能を再構成することが可能である集積回路に係り、特に、論理関数の再構成を可能にする可変論理部として、しきい素子回路網を使用する集積回路において、素子数の低減方法とその方法を実現する回路の構成とに関するものである。
【0002】
【従来の技術】
デバイス製造後に論理関数機能の書き換えが可能であるFPGA(Field Programmable Gate Array)に代表される再構成可能デバイスを用いたリコンフィギュラブルコンピューテイングシステム(RCS:Reconfigurable Computing System)の研究開発が、文献1「末吉敏則、Reconfigurable Computing Systemの現状と課題−Computer Evolutionへ向けて−、信学技報、VLD96−79,CPSY96−91,pp.111−118.1996−12」に示すように行われている。
【0003】
上記研究開発が進む様々なRCSにおいて、論理関数機能の再構成を可能にしているデバイス部分は、論理関数機能の可変性を実現する可変論理部とメモリ回路とを基本回路し、これらの基本回路の構成についても、様々な提案がされている。
【0004】
従来、再構成可能デバイスは、製品のプロトタイピングや多品種少量生産を必要とするASICの代替品として、主に利用されている。この利用方法においては、システムに組み込む前または、組み込んだ後に、一度、必要となる機能を構成することで十分である。
【0005】
この要求に応える再構成可能デバイスの可変論理部における基本デバイスとしては、真理値表をSRAM(Static−RAM)等のメモリ回路に直接実装するLUT(Look−Up Table)型、マルチプレクサのカスケード接続構造と接続切り替え素子であるアンチフィーズとを用いて論理関数を表現する方法を実装するマルチプレクサ(MUX、Multiplexer)型、論理関数をAND−ORの論理和形(積和形)等で表現し、論理関数機能を保持するEEPROM等を使用するPLA(Programable Logic Array)型がある。
【0006】
一方、可変論理部の性能と機能の向上とを目的として、上記のデバイスとは異なるしきい素子を用いた可変論理部も提案されている。
【0007】
上記しきい素子を用いた可変論理部は、たとえば、文献2「青山一生、澤田宏、名古屋彰、中島和生、ニューロンMOSによる対称関数回路の設計手法、信学技法、CPSY99−90,pp.49−56.1999−11」、文献3「青山一生、澤田宏・名古屋彰・ニューロンMOSによる論理関数回路の一設計手法、第13回 回路とシステム(軽井沢)ワークショップ、Apri1、2000」に記載されている。文献2と文献3とには、ニューロンMOSインバータを用いた回路レベルが記述されている。
【0008】
ここでは、回路固有の特性ではなく、論理関数機能の可変性に焦点を当てるために、ニューロンMOSインバータを、否定出力型しきい素子とみなし、ニューロンMOSインバータを用いた可変論理部に関する従来技術を、論理素子レベルで説明する。
【0009】
図17は、2段論理フィードフォワード回路を示す図である。
【0010】
上記文献2では、対称関数機能を持つ可変論理部を、図17に示す2段論理フィードフォワード回路を用いて、自動設計する手法について記載している。
【0011】
対称関数とは、入力変数の任意の置換に対して、出力値が不変である論理関数であり、算術演算や論理演算を行なう回路において多用されている。たとえば、AND、OR、NAND、NOR、Exclusive−OR(XOR)、Exclusive−NOR(XNOR)は、全て対称関数である。
【0012】
ここでは、図17に示す2段論理フィードフォワード回路が、対称関数機能を実現することを、1段目のしきい素子の動作と、2段目のしきい素子の動作とを用いて、説明する。
【0013】
図17に示すような否定出力型しきい素子を用いた回路に、論理的に「1」または「0」をとる入力変数X1〜Xkが入力され、各入力変数に掛けられる重みを1とする。さらに、
【0014】
【数1】
【0015】
が入力状態数ξであると定義する。
【0016】
また、1段目の(k+1)個の否定出力型しきい素子の「入力閾値」thi、(1≦i≦k+1)を、制御変数cfgiによって、{i−(3/2)、i−(1/2)}のいずれか一方を選択できるとする。
【0017】
ここでは、cfgiが論理的1であるときに、小さい値、すなわちthi=i−(3/2)であり、cfgiが論理的0であるときに、大きい値、thi=i−(1/2)である。
【0018】
ここで用いた「入力閾値」は、入力変数とその重みとの積和値からみた閾値のことである。たとえば、入力変数以外に重み1を持つ1つの制御変数cfgiが、しきい素子に入力されている場合、このしきい素子の全ての入力値と重みとの積和値Sumは、次の式(1)、式(2)で表される。
【0019】
【数2】
【0020】
上記積和値Sumが大小比較され、出力値が決定される場合における比較対象の値を、閾値と呼び、(Sum−cfgi)の比較対象の値を、「入力閾値」と呼ぶ。したがって、入力閾値は、制御変数の値によって変化する。
【0021】
上記入力閾値を持つ場合、1段目のi番目の否定出力型しきい素子の出力Yiは、式(3)になる。
【0022】
【数3】
【0023】
2段目の1つの否定出力型しきい素子の閾値は、th=k+(1/2)に設定され、しきい素子に入力される値に対する重みwは、1に設定されている。
【0024】
図18は、2段目の否定出力型しきい素子の入力状態数に対する入力の和の関係を表す図である。
【0025】
図18において、その横軸は、入力状態数であるξを示し、その縦軸は、入力変数と重みとの積
【0026】
【数4】
【0027】
と、1段目の否定出力型しきい素子の出力値と重みとの積と
【0028】
【数5】
【0029】
の和を表している。
【0030】
2段目の否定出力型しきい素子は、縦軸の値を、閾値であるk+(1/2)と比較し、その大小関係に応じて出力する。
【0031】
図18中、白抜き丸印(○)は、Y(ξ+1)=0である場合、すなわち、図17における、cfg(ξ+1)=1である場合を表し、塗りつぶし丸印(●)は、Y(ξ+1)=1である場合、すなわち、cfg(ξ+1)=0である場合を表す。
【0032】
図18より、図17中2段目の否定出力型しきい素子は、○印である場合、入力の和が閾値よりも小さいので、論理的1を出力し、●印である場合、入力の和が閾値より大きいので、論理的0を出力する。
【0033】
入力状態数がξであるときにおける入出力関係式は、式(4)になる。ただし、2段目の否定出力型しきい素子の出力値をZとした。
【0034】
【数6】
【0035】
式(4)から判るように、図17の回路では、ある1つの入力状態数に、ある1つの1段目の否定出力型しきい素子の出力値を対応させ、取り得る2つの出力値(1,0)を、その否定出力型しきい素子に入力される1つの制御変数によって選択可能にすることにより、ある入力状態数のときに、論理的1または論理的0を選択的に出力できるようにしている。ある入力状態数において選択的に出力値を決定できることは、任意の対称関数を実現できることを意味している。
【0036】
この回路と方法とを用いる場合、入力状態数と、1段目の否定出力型しきい素子の数とを一致させる必要がある。したがって、任意のk入力変数対称関数を実現するためには、入力状態数と等しい(k+1)の否定出力型しきい素子が、1段目に必要である。
【0037】
一方、上記文献3には、否定出力型しきい素子を用いて、任意の論理関数を実現するための2通りの回路構成と方法とが記載されている。
【0038】
まず、論理関数を実現するには、対称関数の場合と異なり、入力変数の置換に対して、異なる出力値を与えられることが必要であり、このためには、入力状態として、対称関数を実現する際に用いた入力変数中の論理的1である変数の数である入力状態数ではなく、入力ベクトルを用いる必要があると述べられている。
【0039】
入力ベクトルをしきい素子の入力状態として用いる典型的な方法として、入力変数に対する重みwとして、2のべき乗を用いる方法が示されている。このときに、入力状態数は、論理関数用に新たに式(5)のように定義し直され、k入力変数論理関数の入力状態数は、0〜2k−1である2k個の整数となる。
【0040】
【数7】
【0041】
論理関数を実現する第1の方法は、上記任意の対称関数を実現する場合と同様の方法で、1段目に、入力状態数の数と同数である2k個の否定出力型しきい素子を用い、そのそれぞれの出力値に、各入力状態数であるときにおける2段目の否定出力型しきい素子の出力値を対応させる方法である。
【0042】
上記第1の方法は、入力変数の数に応じて指数関数的に増加する2k個の否定出力型しきい素子を、1段目に必要とする。
【0043】
図19は、論理関数を実現する第2の方法を実現する回路構成を示す図である。
【0044】
この第2の方法が、上記第1の方法と異なる点は、
(1)1段目の否定出力型しきい素子として、1つの制御信号によって、2つの入力閾値から1つの入力閾値を選択できる否定出力型しきい素子のみならず、2つの制御信号によって、4つの入力閾値から1つの入力閾値を選択できる否定出力型しきい素子を用いた点、
(2)1段目の否定出力型しきい素子の出力に乗算される重みwyiとして、異なる値である{1,2}のどちらかを用いることができる点、
である。
【0045】
これらの点によって、連続する4つの入力状態数を、3つの否定出力型しきい素子の出力値に対応付けることが可能になり・任意のk入力変数論理関数を実現する際に、1段目の否定出力型しきい素子として、(3/4)・2k個の素子が必要になる。
【0046】
上記従来例では、k入力変数の任意の対称関数を実現するには、2段論理フィードフォワード型回路構成の1段目の否定出力型しきい素子を、(k+1)個必要であり、任意の論理関数を実現するには、少くとも(3/4)・2k個が必要である。
【0047】
回路規模の低減のためには、任意の対称関数と、任意の論理関数とを実現する際に使用する否定出力型しきい素子の数をできる限り少くする方法が望まれている。
【0048】
【発明が解決しようとする課題】
従来の否定出力型しきい素子用いた2段論理フィードフォワード回路による可変論理部では、任意の対称関数を実現する際に、1段目に(k+1)個の否定出力型しきい素子が必要であり、論理関数を実現する際には、1段目に少なくとも(3/4)・2k個の否定出力型しきい素子が必要である。
【0049】
本発明は、しきい素子を用いた再構成可能デバイスの可変論理部において、使用する素子数を低減することができる方法とその方法を実現する回路を提供することを目的とするものである。
【0050】
【課題を解決するための手段】
本発明は、しきい素子回路網に入力される入力ベクトルの1次元表示である入力状態数について、3つの入力状態数を1つのグループとし、各グループのそれぞれの入力状態数であるときにおけるしきい素子回路網の出力値と、2つのしきい素子の出力値とを対応付け、上記2つのしきい素子の出力値を上記しきい素子に入力する多値表現された関数機能構成データによって制御することによって、しきい素子回路網におけるしきい素子数を低減するものである。
【0051】
従来技術である任意のk入力変数対称関数を実現する場合と、任意のk入力変数論理関数を実現する場合とについて、一般的である2段論理しきい素子回路網を用いて説明する。
【0052】
任意のk入力変数対称関数を実現する場合、各入力状態数であるときにおける出力値と、2段論理回路の1段目の1つのしきい素子の出力値とを対応付けるので、入力状態数である(k+1)個のしきい素子が、1段目に必要であり、2段目のしきい素子をも含めると、少なくとも(k+2)個のしきい素子が必要である。
【0053】
任意のk入力変数論理関数を実現する場合、上記任意の対称関数を実現する方法と同じ方法を採用すると、1段目のしきい素子として、入力状態数と同数の2k個のしきい素子が必要になり、2段目のしきい素子をも含めると、少なくとも(2k+1)個のしきい素子が必要である。
【0054】
また、入力状態数をグループ化する方法として、入力状態数が2のべき乗であるので、4=22個の入力状態数を1つのグループとし、各グループのそれぞれの入力状態数であるときにおけるしきい素子回路網の出力値と、1段目の3つのしきい素子の出力値とを対応付け、しきい素子数を、(2k・3/4+1)個に低減する方法が提案されている。
【0055】
本発明は、入力状態数をグループ化する際に、3つの入力状態数を1つのグループにし、余りの発生を許容するものである。このようにしたので、本発明は、任意の数の入力状態数に適用することができる。
【0056】
【発明の実施の形態および実施例】
[アウトライン]
本発明は、しきい素子回路網を用いた論理関数機能再構成可能デバイスに関して、任意の論理関数、または、任意の対称関数を実現する際に必要となるしきい素子数を低減する回路である。
【0057】
本発明の第1の実施例は、任意の論理関数を実現する際に、素子数を低減する実施例であり、本発明の第2の実施例は、任意の対称関数を実現する際に、素子数を低減する実施例であり、第1、2の実施例ともに、しきい素子を用いた論理レベルで説明する。本発明の第3の実施例は、回路レベルで説明し、具体的な回路例を挙げる。
【0058】
以下の説明では、int[x/y]は、実数x,y(y≠0)によるx/yの整数部分であり、mod[x/y]は、実数x,y(y≠0)によるx/yの余りの整数である。なお、0≦mod[x/y]<yである。
【0059】
[第1の実施例]
第1の実施例は、任意の論理関数を実現する回路において、複数ビットによる多値表現を用い、しきい素子数を低減する方法と回路構成である。
【0060】
従来方法は、約2k個または約(3/4)・2k個のしきい素子を必要とする。第1の実施例は、必要なしきい素子数を、約(2/3)・2k個に低減することができ、正確には、必要なしきい素子数を、int[(2/3)・2k]+mod[2k/3]+1個に低減することができる。
【0061】
[第2の実施例]
第2の実施例は、任意の対称関数を実現する回路において、複数ビットによる多値表現を用い、しきい素子数を低減する方法と回路構成である。
【0062】
従来方法は、(k+2)個のしきい素子を必要とする。第2の実施例は、必要なしきい素子数を、約(2/3)・(k+1)個に低減し、正確には、int[(2/3)・(k+1)]+mod[(k+1)/3]+1個に低減する。
【0063】
[第3の実施例]」
第3の実施例は、しきい素子の実装対象と、実回路レベルにおいて任意の論理関数とを、int[(2/3)・2k]+mod[2k/3]+1個のしきい素子によって実現する回路である。この回路は、第2の実施例を参照することによって、任意の対称関数にも適用可能なように変更できる。
【0064】
第3の実施例におけるしきい素子の具体的な実装対象は、複数の入力ゲート(信号が入力される端子)と、過渡的に電気的絶縁状態にすることが可能な端子とが、容量を介して直列接続され、上記電気的絶縁状態にすることが可能な端子の電位を入力値とする非線形素子によって構成されるしきい素子(たとえば、ニューロンMOSインバータ)である。
【0065】
上記実施例では、任意の論理関数または任意の対称関数を実現するために、制御変数の多値表現を行い、素子数を低減している。
【0066】
多値の表現方法として、多ビット化(第2の実施例であり、これは空間上に分散された2値信号の組合せによって多値を表現したとも言える)、多電位を用いて信号の振幅上に多値を表現する方法や、Pulse Width Modulation(PWM)を用い、2値信号を時間軸上に分散し、多値を表現する方法でも、上記と同様の効果を得ることができる。
【0067】
また、時間軸上での展開は、PWMのみならず、Pulse Density Moduration(PDM)を使った場合も、上記と同様である。
【0068】
[第1の実施例]
[k入力変数論理関数を実現するための回路構成に対する要求]
k入力変数論理関数を実現するためには、k個の入力変数で構成される2k個の入力ベクトルが、しきい素子の入力としてみたときに、互いに異なることが必要であり、かつ、互いに区別された各入力ベクトルに対する出力値として、論理的「1」または「0」を選択的に与えることが可能であることが必要である。上記2つの要請を満たすときに、k入力変数によって構成される2k個の入力ベクトルに対する2q個(ただし、q=2k、つまり、2の2のk乗個、たとえばk=3であれば28=256個)の論理関数を実現することができる。
【0069】
しきい素子上で、2k個の入力ベクトルを互いに区別する(入力ベクトルを識別可能にする)ために、各入力変数に対して異なる重みを用いる。
【0070】
たとえば、入力ベクトル{X1,X2,…,Xi,…,Xk}に対する重みを{wx1,wx2,…,wxi,…,wxk}とすると、wxi=2i−1とすることによって、入力ベクトルは識別可能になる。このときに、入力変数と重みとの積和値
【0071】
【数8】
【0072】
は、式(6)を満たす整数値であり、この積和値を、入力状態数(ξ)と呼ぶ。
【0073】
【数9】
【0074】
入力ベクトルを識別可能にする方法は、wxi=2i−1とする方法だけに限定されない。たとえば、wxi=αi−1、(α>2)とする方法でもよい。しかし、上記実施例においては、簡単化のために、wxi=2i−1を用いる。
【0075】
[任意の論理関数を実現する回路の一般的構成]
図1は、本発明の第1の実施例である集積回路(論理関数機能再構成可能集積回路100)の構成を示すブロック図である。
【0076】
集積回路100は、k入力変数の任意の論理関数を、{int[(2/3)・2k]+mod[2k/3]}+1個の否定出力型しきい素子(以下、これを「しきい素子」という)によって実現する2段論理フィードフォワード型回路である。
【0077】
集積回路100は、1段目のn={int[(2/3)・2k]+mod[2k/3]}個のしきい素子THG1〜THGnと、2段目の1つのしきい素子THG0とによって構成されている。ただし、int(2/3)・2kは、(2/3)・2kの整数部分を表し、mod[2k/3]は、2k/3の余りの整数を表す。
【0078】
図19に示す従来の2段論理フィードフォワード回路では、連続する4つの入力状態数に、3つの1段目のしきい素子の出力を対応付けることによって、任意のk入力変数論理関数を、(3/4)・2k+1個のしきい素子数を用いて実現できる。
【0079】
一方、上記第1の実施例では、連続する3つの入力状態数に、2つの1段目のしきい素子の出力を対応付けることによって、任意の論理関数を実現する。k入力変数の入力状態数の個数は、2kであり、3つの入力状態数を1つのグループにした場合、必ず余りが出る。
【0080】
上記実施例は、余りが存在することを許容する方法である。この余りの入力状態数mod[2k/3]に対して、それぞれ1段目のしきい素子の出力を対応付ける。このために、上記実施例におけるしきい素子数は、1段目のしきい素子数int[(2/3)・2k]+mod[2k/3]に、2段目のしきい素子数1を加えた値になる。しきい素子数は、mod[2k/3]が1または2であるので、k≦3では、従来方法と同数であるが、k≧4では、上記実施例の方法によって、しきい素子数を低減することができる。
【0081】
次に、各しきい素子の持つ特徴である入力と、「入力閾値」と、出力とについて一般的な部分について説明する。
【0082】
ここで、「閾値」と「入力閾値」とは、従来技術で説明したのと同じ定義で用いる。1段目のしきい素子は、全ての入力変数と、入力閾値を制御するための制御変数とを入力とする。入力変数に乗算される重みについては、上記の通り、入力ベクトルを識別可能なように設定される。1段目のしきい素子には、2つの入力閾値から1つの入力閾値を選択できるものと、4つの入力閾値から1つの入力閾値を選択できるものとの2つの種類がある。
【0083】
また、2つの種類のしきい素子は共に、1つの閾値を持つ否定出力型しきい素子であるので、入力の積和値が入力閾値を越えるまでは、論理的「1」を出力し、一旦入力閾値を越えると、論理的「0」を出力し、再び「1」を出力することはないという特徴を持つ。2段目のしきい素子は、全ての入力変数と、1段目の全てのしきい素子からの出力値とを入力とする。閾値は、予め決められた1つの値である。
【0084】
次に、上記実施例における具体的回路構成を説明する前に、回路構成を分類する。
【0085】
1段目のしきい素子数におけるmod[2k/3]は、1または2であるので、集積回路100の具体的構成は、図2に示すmod[2k/3]=1である場合と、図3に示すmod[2k/3]=2である場合との2通りに分類される。
【0086】
[mod[2k/3]=1の場合:A]
図2は、mod[2k/3]=1である場合における回路構成を示す図である。
【0087】
まず、初めに1段目のしきい素子の構成について述べ、次に、その動作について説明する。
【0088】
1段目の全てのしきい素子の出力値と全ての入力変数とを入力とする2段目のしきい素子の構成を示し、最後に、2段目のしきい素子の動作に着目し、任意の論理関数を実現できることについて説明する。
【0089】
[A:1段目のしきい素子の構成]
今、mod[2k/3]=1であるから、2k−1=3・mとなる整数mが存在する。入力状態数ξに関して、値の小さい順に連続する3つの入力状態数を1組にすると、ξは、m個の組と1つの入力状態数とに分けられる。連続する3つの入力状態数のそれぞれにおいて、集積回路100の出力値として論理的「1」または「0」を、2つの1段目のしきい素子の出力値によって選択できるときに、m個の組の入力状態数に対応付けられるしきい素子数は、2・m個になる。
【0090】
一方、1つの入力状態数における集積回路100の出力値として、「1」と「0」とを選択できるように、1つのしきい素子の出力値を対応付ける。このときに、1段目のしきい素子数は、(2m+1)個になる。今、1段目のしきい素子を番号付けし、THG1,THG2,…,THG(2j−1),THG(2j),…,THG(2m+1)、(1≦j≦m)とする。
【0091】
図4は、k入力変数論理関数を実現する回路における1段目のしきい素子THG(2j−1)を表す図である。
【0092】
THG(2j)も、THG(2j−1)と同じ構成である。THG(2j−1)には、全ての入力変数X1〜Xkと、制御変数cfg(2j−1)1、cfg(2j−1)2とが入力される。また、入力値に乗算される重みは、入力変数Xiに対して、wxi=2i−1であり、制御変数cfg(2j−1)1に対する重みwc(2j−1)1を、wc(2j−1)1=2とし、cfg(2j−1)2に対する重みwc(2j−1)2を、wc(2j−1)2=1とする。また、閾値th(2j−1)は、th(2j−1)=(3j−1/2)であるとする。なお、出力値は、Y(2j−1)で表される。
【0093】
図5は、1段目のしきい素子THG(2m+1)を表す図である。
【0094】
しきい素子THG(2j−1)と同じく、全ての入力変数を入力とし、それぞれに対する重みも同じである。しかし、制御変数が、cfg(2m+1)1だけである点が、異なる。また、制御変数cfg(2m+1)1に対する重みwc(2m+1)1は、wc(2m+1)1=1である。閾値th(2m+1)は、th(2m+1)=(3m+1/2)に設定され、出力値は、Y(2m+1)で表される。
【0095】
[A:1段目のしきい素子の動作]
次に、THG(2j−1)とTHG(2m+1)との動作について順に説明する。
【0096】
図4で示したTHG(2j−1)に関して、入力状態数ξをSumxと表現し直すと、全ての入力と、重みの積和値Sumと、Sumxとの関係は、式(8)となる。
【0097】
【数10】
【0098】
式(8)において、(3j−7/2)<Sumx<(3j−1/2)の場合は、cfg(2j−1)1とcfg(2j−1)2との値に依存して出力値が決まる。
【0099】
ここで、式(8)の関係を、j=1を具体例として説明する。
【0100】
図6は、入力状態数SumxとSumとの関係を表す図である。
【0101】
縦軸のSumは、全ての入力が論理的「0」であるときの値である「0」と、全ての入力が論理的「1」であるときの値である「2k+2」との間の値を取る。閾値th1は、(2+1/2)であるので、Sumxが3以上の領域B1においては、式(8)に示すように、Sumx>(2+1/2)を満たし、制御変数の値に依存せず、Sumは、常に閾値を越え、出力値は、Y1=0となる。
【0102】
一方、Sumx=0、1、2である領域A1では、制御変数の値に依存して、Sumと閾値との関係は異なる。
【0103】
Sumx=0である場合は、cfg11とcfg12との値が共に1である場合に、Sumは閾値を越え、Sumx=1である場合は、cfg11の値が1であれば、Sum閾値を越え、Sumx=2の場合は、cfg11とcfg12との少なくとも一方が1であれば、Sumは閾値を越える。各入力状態数のときの2つの制御変数cfg11、cfg12の値と、Sumおよび出力値Y1との関係を、図20にまとめてある。
【0104】
図7は、図20に示す関係中の入力状態数Sumxと出力値Y1との関係を示す図である。
【0105】
領域B1では、Sumが閾値よりも大きいので、常に論理的「0」出力になる。一方、領域A1では、図20に示すように、4つの場合を取ることができる。
【0106】
図20中の#4は、図7の「a」に対応する。すなわち、制御変数の値の和だけで閾値を越えているので、如何なる入力状態数であっても、閾値を越えるため、出力値が0になる。図20の#3は、「b」に対応し、#2は、「c」に対応し、#1は、「d」に対応する。
【0107】
上記のように、j=1である場合におけるしきい素子THG1は、4つの異なる場合を持つ。つまり、入力状態数Sumxが0以上で出力値が0になる場合と、Sumx=1で始めて出力値が0になる場合と、Sumx=2で始めて出力値が0になる場合と、Sumx=3で始めて出力値が0になる場合との4つの異なる場合を持つ。
【0108】
式(8)から判るように、上記具体的な例は、THG(2j−1)、THG(2j)の場合に容易に拡張できる。THG(2j−1)とTHG(2j)とについても、上記と同様に、始めて0を出力する入力状態数が4通り存在する。
【0109】
次に、図5に示すTHG(2m+1)の動作について、説明する。
【0110】
THG(2j−1)の場合と同じく、全ての入力変数と、重みwc(2m+1)1=1が乗算された制御変数cfg(2m+1)1とが入力であり、閾値th(2m+1)が、th(2m+1)=(3m+1/2)=(2k−1/2)に設定されている。
【0111】
k入力変数である場合、入力状態数Sumxの最大値は、2k−1であるので、全ての入力変数が論理的「1」であっても、Sumxだけでは閾値を越えない。制御変数cfg(2m+1)1が論理的「1」であるときに、初めてSumは、閾値を越える。Y(2m+1)とSumとの関係は、式(9)で表される。
【0112】
【数11】
【0113】
以上、しきい素子THG(2m+1)の出力値Y(2m+1)は、入力状態数(2k−1)において、cfg(2m+1)1の値に依存し、論理的「1」、「0」のいずれか一方を選択的に取ることを説明した。
【0114】
[A:2段目のしきい素子の構成]
次に、2段目のしきい素子THG0の入力と閾値と出力とについて説明する。
【0115】
図2に示すように、THG0には、全ての入力変数と、全ての1段目のしきい素子の出力値とが入力される。入力変数の重みwxiを、wxi=2i−1とする。一方、1段目のしきい素子THG(2j−1)の出力値Y(2j−1)の重み、THG(2j)の出力値Y(2j)の重み、THG(2m+1)の出力値Yの重みを、それぞれwy(2j−1)、wy(2j)、wy(2m+1)としたときに、wy(2j−1)=2、wy(2j)=1、wy(2m+1)=1のように設定する。このときに、THG0に入力される値と、重みの積和値Sumとは、入力状態数をSumxとし、1段目のしきい素子の出力値と重みとの積和値をSumyとし、出力値が、制御変数とは無関係に論理的1または0を取ることができると仮定すると、式(10)に示すように、0以上(2k+1−1)以下の整数値となる。
【0116】
【数12】
【0117】
ここで、2段目のしきい素子THG0の閾値を、Sumの取り得る値の最大値である(2k+1−1)の(1/2)である(2k−(1/2))と設定する。
【0118】
[A:2段目のしきい素子を用いた任意の論理関数実現の説明]
次に、図2に示す回路構成の2段目のしきい素子THG0の動作を説明し、最後に、任意の論理関数を実現できることについて説明する。
【0119】
図8は、2段目のしきい素子THG0において、入力される入力変数X1〜Xkと、重みwx1〜wxkとの積和値である入力状態数Sumxに対する全ての入力値に対する積和値(Sum=Sumx+Sumy)の関係を示す図である。
【0120】
入力状態数の小さい順に、3つの連続する入力状態数、たとえば、j=1に対応するSumx=0、1、2に注目する。
【0121】
上記のように、1段目のしきい素子は、選択された1つの入力閾値を持つ否定出力のしきい関数を実現する素子であるので、一度論理的「0」を出力したしきい素子の出力値を、再び論理的「1」を出力するように設定することができない。ここで、この特徴を有するしきい素子が、論理的「0」を出力する最も小さい入力状態数を、「0出力状態数」と定義する。このときに、1段目のしきい素子THG1とTHG2とを除く全てのしきい素子の閾値は、3よりも大きくなるので、0出力状態数は3以上である。
【0122】
このために、入力状態数Sumxが0、1、2である場合、THG1、THG2を除く、全ての1段目のしきい素子は、論理的「1」を出力する。したがって、2段目のしきい素子THG0の入力の積和値の中で、1段目のしきい素子の出力による積和値Sumyは、式(14)によって表され、全ての入力の積和値Sumは、式(15)で表される。また、式(15)は、図8中の閾値近傍の階段型の実線で表されている。
【0123】
【数13】
【0124】
Sumは、THG0の閾値である(2k−1/2)と大小比較され、出力値が決定される。Sumと(2k−1/2)との差を、ΔSumとすると、ΔSumは、式(16)で表される。
【0125】
【数14】
【0126】
今、ΔSum>0である場合を、ΔSumの論理値が「1」であると呼び、逆に、ΔSum<0である場合を、論理値が「0」であると呼ぶ。ΔSumの論理値が1であるときに、THG0の出力値Zは、Z=0になり、ΔSumの論理値が0であるときに、Z=1になる。式(16)から、ΔSumの論理値を制御するのは、Y1とY2との値であることが判る。
【0127】
ここで、Y1、Y2と、入力状態数Sumxとの関係について説明する。
【0128】
上記のように、1段目のしきい素子THG1とTHG2と0出力状態数は、0より小と、0と1との間と、1と2との間と、2と3との間との4つの区間のうちのいずれか1つに設定されることができる。
【0129】
図21は、3つの入力状態数0、1、2を1組とした場合に実現できる8つのΔSumの状態を、2つのしきい素子の出力値Y1、Y2を制御することによって実現する方法を示す図である。
【0130】
図21において、Y1の0出力状態数が0である場合は、式(16)におけるSumx=0、1、2の3つの入力状態数の全てにおいて、Y1=0になり、Y1の0出力状態数が2である場合は、Sumx=0、1であれば、Y1=1であり、Sumx=2であれば、Y1=0になることを意味している。他の場合も、これから類推できる。
【0131】
次に、図21の#5を用いてTHG0の動作の具体例を示す。
【0132】
図9は、図21の#5の場合を示す図である。
【0133】
Y1の0出力状態数が1であり、Y2の0出力状態数が2であるので、Sumx=0では、Y1=Y2=1であり、式(16)から、ΔSum=1/2>0になり、ΔSumの論理値は1になる。
【0134】
Sumx=1では、Y1=0、Y2=1であり、ΔSum=−1/2<0になり、ΔSumの論理値は0になる。Sumx=2では、Y1=0、Y2=0であり、ΔSum=−1/2<0になり、ΔSumの論理値は0になる。
【0135】
このように、入力状態数Sumx=0、1、2であるときのΔSumの論理値(1,0,0)を実現することができる。また、これは、THG0の出力値が、Sumx=0、1、2に対して、(0,1,1)であることを意味している。図21で示した8つの状態は、3入力変数に対する任意の論理関数に対応しているとも言える。
【0136】
次に、上記j=1である場合の説明を、j=hとして一般化する。
【0137】
式(18)の連続する3つの入力状態数Sumxに対して、上記説明と同様に、2つの1段目のしきい素子の出力Y(2h−1)とY(2h)との値によって、選択的に任意のΔSumの論理値を設定できることについて、説明する。
【0138】
このSumxの領域では、1段目のしきい素子THG(2h−1)とTHG(2h)との2つの出力値Y(2h−1)、Y(2h)だけが、制御変数に依存し、他のしきい素子の出力値は、制御変数とは独立に決まることを示す。
【0139】
上記のように、THG(2h−1)とTHG(2h)との閾値は、それぞれth(2h−1)=(3h−1/2)、th(2h)=(3h−1/2)である。このために、THG(2h−1)とTHG(2h)とに対する入力を、それぞれSum(2h−1)とSum(2h)にすると、式(7)と同じく、式(18)、式(19)で表される。
【0140】
Sum(2h−1)=2・cfg(2h−1)+cfg(2h−1)+Sumx …式(18)
Sum(2h)=2・cfg(2h)1+cfg(2h)2+Sumx …式(19)
0≦2・cfg(2h−1)+cfg(2h−1)≦3であるので、式(18)の領域のSumxに対して、(Sum(2h−1)−th(2h−1))は、cfg(2h−1)とcfg(2h)との値に依存し、正の値、負の値のいずれか一方を選択的に取ることが可能である。これは、Sumxがこの領域にあるときに、THG(2h−1)の出力値Y(2h−1)を制御変数の値に依存し、論理的1、0のいずれか一方にすることができることを意味する。また、Sum(2h)−th(2h)に対しても、これと同じことが言える。
【0141】
一方、j<hのしきい素子THG(2j−1)、THG(2j)に対する入力は、Sumxが、式(18)の領域では、Sumx自身が閾値よりも大きいので、制御変数が如何なる値であっても、出力値は常に論理的0である。逆に、j>hのしきい素子では、Sumxが式(18)の領域では、制御変数が如何なる値であっても、閾値を越えることがないので、出力値は、常に論理的に1である。
【0142】
以上、連続する3つの入力状態数の場合について説明した。
【0143】
Sumxが式(18)の領域の3つの連続する入力状態数であるときに、しきい素子THG(2h−1)とTHG(2h)との2つのしきい素子の出力値だけが、すなわち、2つのしきい素子に入力される制御変数の組合せが、2段目のしきい素子THG0の入力と閾値(2k−1/2)との大小関係を決めることになる。
【0144】
次に、mod[2k/3]=1の余りの1つの入力状態数について、2段目のしきい素子THG(2m+1)の入力値と重みの積和値とが、選択的に閾値の大小関係を変えることが可能であることについて説明する。
【0145】
最大入力状態数(2k−1)を余りの1つとしたので、図2中のしきい素子THG(2m+1)以外の1段目のしきい素子THG1〜THG(2m)の出力値は、全て論理的「0」である。また、Y(2m+1)に重みとして乗算される値は、wy(2m+1)=1であるから、入力状態数Sumx=2k−1であるときのSumの値は、式(20)になる。
【0146】
Sum=Y(2m+1)+(2k−1) ……式(20)
THG0の閾値は(2k−1/2)であるので、式(20)から判るように、しきい素子THG(2m+1)の出力値Y(2m+1)に依存して、Sumの値は、論理的1、0を選択的に取ることが可能である。
【0147】
以上、余りの入力状態数の場合にも、THG0の入力が、選択的に論理的1または0を取ることができることを説明した。
【0148】
上記方法と回路構成とによって、k入力変数の際の任意の入力状態数のそれぞれにおいて、THG0の入力は、選択的に論理的1または0を取ることができる。これは、THG0に、選択的に論理的1または0に出力させることが可能であることを意味し、図2に示す回路構成を用いて、それぞれの入力状態数に対して、論理的1または0を出力させることができることを意味している。この機能によって、図2に示す回路は、任意のk入力変数論理関数を実現することが可能になる。
【0149】
上記実施例では、余りの入力状態数を、最大の入力状態数の場合として説明しているが、3つの入力状態数による組みを、他の入力状態から独立して取り扱うことが可能である点、式(20)で表される1つの否定出力型しきい素子を用いた場合も、0出力状態数を設定することで他の入力状態への影響を排除できる点から、余りの入力状態数を、任意の入力状態数に設定することも可能である。
【0150】
[mod[2k/3]=2である場合:B]
次に、図3の回路図に示すmod[2k/3]=2である場合について、mod[2k/3]=1である場合との相違点に焦点を当て説明する。
【0151】
入力状態数0から2k−2までを、小さい順に連続する3つの入力状態数を1つの組にし、2k−2=3・m、(1≦j≦m)とする。この中の1つの組において、8つの状態を2つのしきい素子を用いて選択的に実現する方法は、mod[2k/3]で既に説明した方法と同じであり、上記の場合と異なる点は、余りの入力状態数(2k−2,2k−1)が2つある点である。
【0152】
上記実施例では、2つの余りの入力状態数に対して、mod[2k/3]=1の場合と同じく、他の入力状態数から独立して、選択的に論理的1または0を出力できるようにする。
【0153】
[B:1段目のしきい素子の構成と動作]
余りの入力状態数に対応する1段目のしきい素子を、THG(2m+1)とTHG(2m+1)とする。THG(2m+1)の構成は、図5に示すmod[2k/3]=1である場合のしきい素子の構成と同じであるが、閾値th(2m+1)=(3・m+1/2)=(2k−3/2)である点は、注意を要する。THG(2m+2)の構成は、THG(2m+1)と類似であるが、制御変数としてcfg(2m+2)1を与える点と、閾値th(2m+2)としてth(2m+2)=(3・m+3/2)=(2k−1/2)を与える点と、出力値としてY(2m+2)を与える点とが異なる。
【0154】
2つのしきい素子の動作原理は、上記のmod[2k/3]=1である場合のTHG(2m+1)と同様であり、mod[2k/3]=2である場合のTHG(2m+1)の出力値は、入力状態数Sumx=2k−2であるときに、論理的1または0を、cfg(2m+1)1の値によって選択的に取ることができ、THG(2m+2)の出力値は、入力状態数Sumx=2k−1のときに、論理的1または0をcfg(2m+2)1の値によって選択的に取ることができる
[B:2段目のしきい素子の構成と動作]
ここで、mod[2k/3]=2である場合の2段目のしきい素子THG0の構成と動作とについて説明する。
【0155】
THG0には、全ての入力変数と重みとの積和値と、全ての1段目のしきい素子の出力値と重みとの積和値との和が入力される。入力変数と重みとの積和値に関しては、mod[2k/3]=1である場合と同じである。また、1段目のしきい素子THG1から、THG(2m)の出力値と重みとの積和値についても、mod[2k/3]=1である場合と同様である。
【0156】
入力状態数Sumx≦2kである場合は、THG1から、THG(2m)のしきい素子によって、Sumが制御され、mod[2k/3]=1である場合の動作から類推できる。また、Sumx=2k+1とSumx=2k+2との場合のSumは、式(21)で表される。
【0157】
Sum=Y(2m+1)+Y(2m+2)+(2k−2) …式(21)
Y(2m+1)は、Sumx=2m+2=2k−1では、常に論理的0を出力し、逆に、Y(2m+2)は、Sumx=2m+1=2k−2では、常に論理的1を出力するため、この2つの入力状態数におけるSumは、式(22)で表される。
【0158】
【数15】
【0159】
閾値が(2k−1/2)であるので、式(22)から次のことが判る。Sumx=2m+1である場合、Y(2m+1)=1であれば、Sumは閾値を越え、出力値Z=0になり、Y(2m+1)=0であれば、Sumは閾値よりも小さく、出力値Z=1になる。Sumx=2m+2である場合、Y(2m+2)=1であれば、Sumは閾値を越え、出力値Z=0になり、Y(2m+2)=0であれば、Sumは閾値よりも小さく、出力値Z=1となる。このように、Y(2m+1)、Y(2m+2)の値に応じて出力値Zが決定される。
【0160】
以上、mod[2k/3]=2である場合の2段目のしきい素子の入出力特性について説明し、任意の入力状態数のときに、論理的「1」または「0」を選択可能であることを示した。
【0161】
[まとめ=第1の実施例]
以上、上記実施例で説明した1段目のしきい素子と2段目のしきい素子とを用いた2段論理フィードフォワード回路構成で、{int[(2/3)・2k]+mod[2k/3]+1}個の否定出力型しきい素子によって、任意のk入力変数論理関数を実現できる。
【0162】
図10は、入力変数の数kに対する1段目のしきい素子数について、従来技術である、2k個のしきい素子を用いる方法と、(3/4)・2k個のしきい素子を用いる方法と、上記実施例の方法とを比較した図である。
【0163】
上記実施例では、最も少いしきい素子数によって、任意の論理関数を実現できる。
【0164】
[第2の実施例]
第1の実施例は、任意の論理関数を実現する回路である。
【0165】
第2の実施例は、任意の対称関数を実現する{int[(2/3)・(k+1)]+mod[(k+1)/3]+1}個の否定出力型しきい素子を用いた2段論理フィードフォワード回路である。
【0166】
[k入力変数対称関数を実現するための回路構成に対する要求]
対称関数は、入力変数の任意の置換に対して、出力値が不変である関数であるので、入力ベクトルの識別は、入力変数の中で論理的1である入力変数の数によって行うことができる。
【0167】
すなわち、入力状態数は、入力変数中の論理的1である変数の数を意味する。たとえば、(X1,X2,X3)の3入力変数の場合、(X1,X2,X3)=(1、0、0)と、(X1,X2,X3)=(0、1、0)とは、X1とX2とを置換することによって同じベクトルになるので、この2つの入力ベクトルは識別される必要はない。したがって、k入力変数である場合、入力状態数は0からkまでの(k+1)個の整数値になる。しきい素子上では、全ての入力変数に対する重みを等しく設定することによって、上記特性を実現することができる。上記実施例においては、入力変数に対する重みwxiを全て等しくwxi=1にする。
【0168】
[任意の対称関数実現する回路構成]
第1の実施例と同様に、連続する3つの入力状態数を1つの組にまとめると、mod[(k+1)/3]の値によって3つの場合、
(1)(k+1)=3m、
(2)(k+1)=3m+1、
(3)(k+1)=3m+2、
に分類することができる。
【0169】
上記(2)、(3)の場合は、それぞれ第1の実施例で、図2と図3とを用いて説明した場合と、入力変数に乗算される重みが異なる以外は、同様である。上記(1)の場合は、余りが存在しない場合であり、この場合の実現方法と回路構成とは、余りが存在する場合から容易に類推できる。
【0170】
[1段目のしきい素子の構成と動作]
第1の実施例で説明したように、1段目のしきい素子には、4つの連続する入力状態数を、選択的に0出力状態数に設定できるしきい素子と、mod[(k+1)/3]≠0の場合に用いる2つの入力状態数とのどちらか一方を選択的に0出力状態数に設定できるしきい素子の2種類がある。
【0171】
図11は、連続する4つの入力状態数の中のいずれか1つの入力状態数を、選択的に0出力状態数とすることが可能なしきい素子の構成を表す図である。
【0172】
図4のしきい素子とは、入力変数に対する重みwxiが異なる。図11に示すしきい素子THG(2j−1)は、(1≦j≦m)のときに用いられる。また、THG(2j)も、THG(2j−1)と同じ入力変数と重みwxiであり、閾値も同じく、th(2j)=(3j−1/2)であり、2つの制御変数として、cfg(2j)1、cfg(2j)2を持ち、それぞれの重みが2と1とである。このしきい素子の動作については、第1の実施例で既に説明してある。
【0173】
図12は、連続する2つの入力状態数のいずれか1つの入力状態数を、選択的に0出力状態数とすることが可能なしきい素子の構成を表す図である。
【0174】
図5に示すしきい素子とは、入力変数に対する重みwxiが異なる。mod[(k+1)/3]=2である場合は、図12に示すTHG(2m+1)の他に、THG(2m+2)も用いられる。THG(2m+2)の構成は、図12に示すTHG(2m+2)と類似であるが、制御変数としてcfg(2m+2)1を用い、その重みとしてwc(2m+2)1=1を用い、しきい値th(2m+2)=3m+3/2=k+1/2として、出力値Y(2m+2)を用いる。このしきい素子の動作については、第1の実施例で既に説明している。
【0175】
[2段目のしきい素子の構成と動作]
2段目のしきい素子の構成は、第1の実施例における2段目のしきい素子の構成と類似であるが、3つの入力状態数を1つのグループとして全入力状態数を分割するmと入力変数kとの関係と、閾値とが、第1の実施例とは異なる。
【0176】
まず、入力変数kと(k+1)個存在する入力状態数を分割するmとの関係について説明する。
【0177】
第1の実施例における関係は、int[2k/3]=mであり、実施例におけるmとkとの関係は、上記の通り、int[(k+1)/3]=mである。
【0178】
次に、閾値について説明する。
【0179】
第1の実施例では、2段目のしきい素子に入力される値Sumの最大値は、(2k+1−1)であり、閾値は、その1/2である(2k−1/2)としている。
【0180】
一方、第2の実施例における2段目のしきい素子へ入力される値Sumの最大値について、図13を用いて説明する。
【0181】
図13は、mod[(k+1)/3]=1である場合における2段目のしきい素子THG0の構成を表す図である。
【0182】
2段目のしきい素子には、k入力変数の全てが重み1を乗算され入力され、1段目のしきい素子の出力値にも2または1の重みが乗算され入力される。1段目のしきい素子THG (2j−1) の出力値Y(2j−1) の重みには、重みwy(2j−1)=2が乗算され、Y (2j) の重みには、重みwy(2j)=1が乗算され、Y(2m+1)には、重みwy(2m+1)=1が乗算される。ただし、1≦j≦mである。したがって、THG0に入力される値Sumの最大値は、k+(k+1)=(2・k+1)である。第1の実施例と同様、最大値の1/2である(k+1/2)を閾値th0とする。
【0183】
図14は、任意のk入力変数対称関数を実現する2段論理フィードフォワード回路における入力状態数Sumxと、2段目のしきい素子の入力値と、重みの積和値Sumとの関係を表す図である。
【0184】
図14は、第1の実施例における図8に類似の図である。横軸は、入力状態数であるSumxを示し、縦軸は、しきい素子に入力される値Sumを表している。Sumの最大値は、2k+1であり、閾値は、k+1/2である。図中、斜線部分は、Sumにおける入力状態数Sumxの寄与分を表し、実線は、1段目のしきい素子の出力値であって、かつ、制御変数から独立して決まる出力値に重みが乗算された値を表している。
【0185】
点線は、1段目のしきい素子の出力値において、その値が制御変数に依存して決まる場合のSumを表している。第1の実施例における図20に示すものと同様に、j=1である場合の3つの入力状態数Sumx=0,1,2を例にとる。このときに、1段目のしきい素子の出力値Y1とY2とに重みが乗算された値である2・Y1とY2との2つの値の組合せによって、Sumx=0,1,2の各入力状態数においてSumと、閾値であるk+1/2との大小関係を選択的に決定することができる。これと同様のことが、任意のjにも適用できる。また、mod[(k+1)/3]≠0である場合も、第1の実施例と同様である。
【0186】
上記に示した、重みと閾値とを用いることによって、第1の実施例と同様の手法を適用することができ、任意の対称関数を実現することができる。
【0187】
[まとめ=第2の実施例]
以上、第2の実施例で説明した1段目のしきい素子と、2段目のしきい素子とを用いた2段論理フィードフォワード回路構成で、{int[(2/3)・(k+1)]+mod[(k+1)/3]+1}個の否定出力型しきい素子によって、任意のk入力変数対称関数を実現することができる。
【0188】
[第3の実施例]
第3の実施例は、第1の実施例と第2の実施例とで使用した否定出力型しきい素子を実装する実回路である。
【0189】
[しきい素子を実装する回路の一般的構成]
図15は、図4に示す否定出力型しきい素子の回路図である。
【0190】
図4のk入力変数X1〜Xkはそれぞれ、図15における容量値Cx1=1・α〜Cxk=2k−1・αを持つ容量の一方の端子に、電位Vx1〜Vxkとして入力され、図4の制御変数cfg(2j−1)1、cfg(2j−1)2は、それぞれ、図15における容量値Cc(2j−1)1=2・αと、Cc(2j−1)2=1・αとを持つ容量の一方の端子に、電位Vc(2j−1)1とVc(2j−1)2として入力される。
【0191】
図4中の各入力に対する重みは、図15中の容量値に対応している。また、図4中の閾値th(2j−1)を実現するために、図15では、固定電位に一方の端子が接続されている容量を用いる。一方の端子が電源電位に接続されている容量値Cvddの容量と、グランド電位に接続されている容量値Cgndの容量とである。これらの容量の他方の端子は、それぞれ端子fltgに接続され、端子fltgはインバータ回路INVの入力端子になる。
【0192】
図15は、複数の容量の並列接続と、その並列に接続された容量とインバータ回路の直列接続とによって構成された否定出力型しきい素子を表す図である。
【0193】
[しきい素子の実装に用いるインバータ回路としてCM0Sインバータを用いる構成]
図16は、図15に示すインバータ回路INVを、CM0Sインバータで置換した回路を示す図である。
【0194】
複数の容量の一方の端子は、入力端子として用いられ、他方の端子は、フローティングゲートであるfltgに接続されている。このフローティングゲートfltgは、PM0SFETとNM0SFETとから成るCM0Sインバータの入力ゲートでもある。
【0195】
[しきい素子回路の動作]
図16に示す回路が、図4に示す否定出力型しきい素子と同じ機能であることを説明する。
【0196】
初めに、フローティングゲートfltgは、金属またはPoly−Siのように金属に準ずる性質を持ち、フローティングゲートfltgと入力端子との間の容量値の総和は、フローティングゲートfltgとPM0SFETまたはNM0SFETとの間の容量の総和に比べて、非常に大きくなるように設定され、フローティングゲートの初期状態での電荷量は0、すなわち、電気的に中性であるとする。このときに、フローティングゲートfltgの電位Yfltgは、式(23)で表される。
【0197】
【数16】
【0198】
式(23)では、容量値は容量比で代替され、図4で示すしきい素子の重みと等しい。ここで、新たにCvdd/α=wvdd、Cgnd/α=wgndとする。また、入力される電位Vxiと、Vc(2j−1)i電源電位Vddまたはグランド電位0の2値のいずれか一方であるときに、式(23)を電源電位で規格化することによって、VxiとVc(2j−1)iとは、それぞれ図4中のxiとcfg(2j−1)iとに等しくなる。また、Vfltg/Vdd=Ufltgとすることによって、Ufltgは、式(24)で表される。
【0199】
【数17】
【0200】
式(24)は、式(25)のように変形できる。
【0201】
次に、CM0Sインバータが論理反転をするフローティングゲート電位をフローティングゲートしき閾値電位Vfthとし、電源電位で規格化した値をUfthとする。PM0SFETとNM0SFETとのゲート幅を調整することによって、Ufth=1/2にする。また、UfthとUfltgとインバータの出力値Uy(2j−1)=Vy(2j−1)/Vddとの関係は、式(26)であるとする。ただし、Uy(2j−1)>1/2のときの値を、論理値を用いてY(2j−1)=1で表し、Uy(2j−1)<1/2のときの値を、論理値を用いてY(2j−1)=0で表す。
【0202】
【数18】
【0203】
式(25)を用いて(Ufltg−Ufth)を変形すると、式(27)になる。
【0204】
Ufltg−Ufth=Sumx+2・cfg(2j−1)1+cfg(2j−1)2−{2k−1+1+(wgnd−wvdd)/2} …式(27)
式(27)において、式(28)が成立するように、wvddとwgndを選択する。
【0205】
2k−1+1+(wgnd−wvdd)/2=3・j−1/2 …式(28)
このときに、式(26)は、第1の実施例で示した式(8)と同じ(再び以下に示す)になり、図4で示したしきい素子の動作を表すことになる。
【0206】
【数19】
【0207】
以上、否定出力型しきい素子の実装回路の構成と動作について説明した。
【0208】
【発明の効果】
本発明によれば、しきい素子回路網を用いて任意の対称関数を実現することができるという効果を奏する。
【0209】
また、本発明によれば、任意の論理関数を実現する際に、3つの連続する入力状態数を、1つのグループにし、各グループの各入力状態数のときの出力値と回路中の2つのしきい素子の出力値とを対応付けることによって、各入力状態数のときの出力値とあるしきい素子の出力値とを対応付ける従来の方法と比較して、しきい素子回路網中に含まれるしきい素子数を約2/3に低減することができるという効果を奏する。
【図面の簡単な説明】
【図1】任意のk入力変数論理関数を実現する{int[2k/3]+mod[2k/3]+1}個の否定出力型しきい素子で構成される2段論理フィードフォワード回路を表す図である。
【図2】図1の回路でmod[2k/3]=1の場合を表す回路図である。
【図3】図1の回路でmod[2k/3]=2の場合を表す回路図である。
【図4】任意のk入力変数論理関数を実現する図1の2段論理フィードフォワード回路における1段目の否定出力型しきい素子THG(2j−1)、(1≦j≦2k−mod[2k/3])の構成を表す図である。
【図5】任意のk入力変数論理関数を実現する図2の2段論理フィードフォワード回路における1段目の否定出力型しきい素子THG(2m+1)、(3m=2k−1)の構成を表す図である。
【図6】図2の回路における1段目の否定出力型しきい素子への入力値と重みの積和値Sumと入力状態数Sumxとの関係を表す図である。
【図7】図2の回路における1段目の否定出力型しきい素子THG1について、2つの制御変数の値の組合せによって入力状態数Sumxに対する出力値Y1の変化が異なることを表す図である。
【図8】図2の回路における2段目のしきい素子THG0において、入力される入力変数X1〜Xkと重みwx1〜wxkとの積和値である入力状態数Sumxに対する全ての入力値に対する積和値(Sum=Sumx+Sumy)の関係を示した図である。
【図9】図2の回路において、入力状態数が0、1、2において、Y1とY2とについて初めて論理的0を出力する入力状態数(0出力状態数)がそれぞれ1と2である場合の2段目のしきい素子THG0への入力値と重みの積和値Sumとしきい値の関係を表す図である。
【図10】入力変数の数kに対する1段目のしきい素子数について、従来技術である、2k個のしきい素子を用いる方法と、(3/4)・2k個のしきい素子を用いる方法と、第1の実施例の方法とを比較した図である。
【図11】任意のk入力変数対称関数を実現するしきい素子で構成された2段論理フィードフォワード回路における1段目のしきい素子中、連続する4つの入力状態数の中のいずれか1つの入力状態数を選択的に0出力状態数とすることが可能なしきい素子の構成を表す図である。
【図12】任意のk入力変数対称関数を実現するしきい素子で構成された2段論理フィードフォワード回路における1段目のしきい素子中、連続する2つの入力状態数の中のいずれか1つの入力状態数を選択的に0出力状態数とすることが可能なしきい素子の構成を表す図である。
【図13】mod[(k+1)/3]=1の場合の任意のk入力変数対称関数を実現する2段論理フィードフォワード回路における2段目のしきい素子THG0の構成を表す図である。
【図14】任意のk入力変数対称関数を実現する2段論理フィードフォワード回路における入力状態数Sumxと2段目のしきい素子の入力値と重みの積和値Sumとの関係を表す図である。
【図15】図4で示した否定出力型しきい素子の実装対象となる回路図である。
【図16】図15のインバータ回路をCMOSインバータによって実現した回路図である。
【図17】従来の任意のk入力変数対称関数を実現する否定出力型しきい素子を用いた2段論理フィードフォワード回路図である。
【図18】従来の任意のk入力変数対称関数を実現する否定出力型しきい素子を用いた2段論理フィードフォワード回路における2段目の否定出力型しきい素子への入力値と重みの積和値と入力状態数の関係を表す図である。
【図19】従来の任意のk入力変数論理関数を実現する否定出力型しきい素子を用いた2段論理フィードフォワード回路の構成を表す図である。
【図20】3つの入力状態数0、1、2を1組とした場合に実現できる8つのΔSumの状態を、2つのしきい素子の出力値Y1、Y2を制御することによって実現する方法を示す図である。
【図21】入力状態数0、1、2において選択的にΔSumを決定するY1、Y2との組み合わせを示す図である。
【符号の説明】
100…論理関数機能再構成可能集積回路、
Sumx…入力状態数、
Y…出力値、
th…閾値、
cfg…制御変数、
THG…しきい素子。[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an integrated circuit capable of reconfiguring a logic function even after manufacturing an integrated circuit, and more particularly, to a threshold element circuit as a variable logic unit capable of reconfiguring a logic function. The present invention relates to a method for reducing the number of elements in an integrated circuit using a network and a configuration of a circuit for realizing the method.
[0002]
[Prior art]
Research and development of a reconfigurable computing system (RCS: Reconfigurable Computing System) using a reconfigurable device typified by an FPGA (Field Programmable Gate Array) capable of rewriting the logic function after device manufacture is described in
[0003]
In the various RCSs for which the above-mentioned R & D has progressed, the device portion enabling the reconfiguration of the logic function function has a basic circuit consisting of a variable logic section for realizing the variability of the logic function function and a memory circuit. Various proposals have also been made for the configuration.
[0004]
2. Description of the Related Art Conventionally, reconfigurable devices are mainly used as alternatives to ASICs that require product prototyping and high-mix low-volume production. In this method of use, it is sufficient to configure the necessary functions once before or after incorporation into the system.
[0005]
As a basic device in the variable logic unit of the reconfigurable device that meets this demand, an LUT (Look-Up Table) type in which a truth table is directly mounted on a memory circuit such as an SRAM (Static-RAM), a cascade connection structure of multiplexers A multiplexer (MUX, Multiplexer) type that implements a method of expressing a logical function by using an anti-phase that is a connection switching element, and a logical function expressed by a logical sum form (product sum form) of AND-OR and the like. There is a PLA (Programmable Logic Array) type using an EEPROM or the like having a function function.
[0006]
On the other hand, for the purpose of improving the performance and function of the variable logic unit, a variable logic unit using a threshold element different from the above device has also been proposed.
[0007]
The variable logic unit using the above threshold element is described in, for example,
[0008]
Here, in order to focus on the variability of the logic function function, not on the inherent characteristics of the circuit, the neuron MOS inverter is regarded as a negative output type threshold element, and the prior art relating to the variable logic unit using the neuron MOS inverter is described. , Will be described at the logic element level.
[0009]
FIG. 17 is a diagram showing a two-stage logical feedforward circuit.
[0010]
[0011]
A symmetric function is a logical function whose output value is invariant with respect to arbitrary substitution of an input variable, and is frequently used in circuits that perform arithmetic operations and logical operations. For example, AND, OR, NAND, NOR, Exclusive-OR (XOR), and Exclusive-NOR (XNOR) are all symmetric functions.
[0012]
Here, the realization of the symmetric function function by the two-stage logic feedforward circuit shown in FIG. 17 will be described using the operation of the first-stage threshold element and the operation of the second-stage threshold element. I do.
[0013]
In a circuit using a negative output type threshold element as shown in FIG. 17, an input variable X which logically takes "1" or "0" is added.1~ XkIs input, and the weight applied to each input variable is set to 1. further,
[0014]
(Equation 1)
[0015]
Is the number of input statesξIs defined as
[0016]
The “input threshold” th of the (k + 1) negative output type threshold elements in the first stagei, (1 ≦ i ≦ k + 1) by the control variable cfgi, One of {i- (3/2) and i- (1/2)} can be selected.
[0017]
Here, cfgiIs a logical one, a small value, ie, thi= I- (3/2) and cfgiIs a logical 0, a large value, thi= I-(1/2).
[0018]
The “input threshold” used here is a threshold as viewed from the sum of products of an input variable and its weight. For example, one control variable cfg having a weight of 1 other than the input variableiIs input to the threshold element, the sum-of-products Sum of all the input values of the threshold element and the weight is expressed by the following equations (1) and (2).
[0019]
(Equation 2)
[0020]
A value to be compared when the sum-of-products Sum is compared in magnitude and an output value is determined is called a threshold, and (Sum-cfg)i) Is referred to as an “input threshold”. Therefore, the input threshold changes according to the value of the control variable.
[0021]
In the case of having the above input threshold, the output Y of the i-th negative output type threshold element of the first stageiBecomes Expression (3).
[0022]
(Equation 3)
[0023]
The threshold value of one negative output type threshold element in the second stage is set to th = k + (1/2), and the weight w for the value input to the threshold element is set to one.
[0024]
FIG. 18 is a diagram illustrating the relationship between the number of input states and the sum of inputs of the negative output type threshold element in the second stage.
[0025]
In FIG. 18, the horizontal axis is the number of input states.ξThe vertical axis indicates the product of the input variable and the weight.
[0026]
(Equation 4)
[0027]
And the product of the output value of the first stage negative output type threshold element and the weight
[0028]
(Equation 5)
[0029]
Represents the sum of
[0030]
The second-stage negative output type threshold element compares the value on the vertical axis with the threshold value k + (1/2) and outputs the value according to the magnitude relation.
[0031]
In FIG. 18, a white circle (○) indicates Y(ξ+1)= 0, that is, cfg in FIG.(ξ+1)= 1, and the filled circle (●) indicates Y(ξ+1)= 1, ie, cfg(ξ+1)= 0.
[0032]
From FIG. 18, the negative output type threshold element in the second stage in FIG. 17 outputs a logical 1 when the mark is “○” because the sum of the inputs is smaller than the threshold value, Since the sum is greater than the threshold, a logical 0 is output.
[0033]
The input / output relational expression when the number of input states is ξ is expressed by Expression (4). However, the output value of the second-stage negative output type threshold element was Z.
[0034]
(Equation 6)
[0035]
As can be seen from Expression (4), in the circuit of FIG. 17, the output value of a certain first-stage negative output type threshold element corresponds to a certain input state number, and two possible output values ( 1, 0) can be selected by one control variable input to the negative output type threshold element, so that logical 1 or logical 0 can be selectively output at a certain number of input states. Like that. The ability to selectively determine the output value for a certain number of input states means that an arbitrary symmetric function can be realized.
[0036]
When using this circuit and method, it is necessary to make the number of input states equal to the number of negative output type threshold elements in the first stage. Therefore, in order to realize an arbitrary k-input variable symmetric function, a negative output type threshold element having (k + 1) equal to the number of input states is required in the first stage.
[0037]
On the other hand,
[0038]
First, in order to realize a logical function, unlike the case of a symmetric function, it is necessary to give different output values to the substitution of input variables. It is stated that it is necessary to use an input vector instead of the number of input states, which is the number of variables that are logical 1 in the input variables used in the processing.
[0039]
As a typical method of using an input vector as an input state of a threshold element, a method of using a power of 2 as a weight w for an input variable is shown. At this time, the number of input states is newly defined as a formula (5) for the logic function, and the number of input states of the k-input variable logic function is 0 to 2k-1
[0040]
(Equation 7)
[0041]
The first method for realizing a logical function is the same as that for realizing the above-mentioned arbitrary symmetric function, and the first stage has the same number of input states as the number of input states.kIn this method, a plurality of negative output type threshold elements are used, and the respective output values correspond to the output values of the second-stage negative output type threshold element when the number of input states is equal.
[0042]
The first method is to increase exponentially according to the number of input variables.kNegative output type threshold elements are required in the first stage.
[0043]
FIG. 19 is a diagram showing a circuit configuration for realizing the second method for realizing a logical function.
[0044]
The difference between this second method and the first method is that
(1) As a first-stage negative output type threshold element, not only a negative output type threshold element capable of selecting one input threshold from two input thresholds by one control signal but also two control signals Using a negative output type threshold element capable of selecting one input threshold from two input thresholds,
(2) Weight w by which the output of the first-stage negative output type threshold element is multipliedyiCan use any of the different values {1, 2}
It is.
[0045]
These points make it possible to associate four consecutive input state numbers with the output values of three negative output type threshold elements. When realizing an arbitrary k-input variable logic function, the first stage (3/4) · 2 as a negative output type threshold elementkElements are required.
[0046]
In the above conventional example, in order to realize an arbitrary symmetric function of k input variables, (k + 1) first-stage negative output type threshold elements of a two-stage logical feedforward type circuit configuration are required, and an arbitrary To implement a logical function, at least (3/4) · 2kI need a piece.
[0047]
In order to reduce the circuit scale, there is a demand for a method of minimizing the number of negative output type threshold elements used for realizing an arbitrary symmetric function and an arbitrary logical function as much as possible.
[0048]
[Problems to be solved by the invention]
In a conventional variable logic unit using a two-stage logic feedforward circuit using a negative output type threshold element, (k + 1) negative output type threshold elements are required in the first stage when an arbitrary symmetric function is realized. When implementing a logical function, at least (3/4) · 2kNegative output type threshold elements are required.
[0049]
An object of the present invention is to provide a method capable of reducing the number of elements used in a variable logic unit of a reconfigurable device using a threshold element, and a circuit for realizing the method.
[0050]
[Means for Solving the Problems]
According to the present invention, the number of input states, which is a one-dimensional display of an input vector input to the threshold element network, is defined as a case where three input state numbers are grouped into one group and the respective input state numbers of each group. The output values of the threshold element network and the output values of the two threshold elements are associated with each other, and the output values of the two threshold elements are controlled by multi-valued functional function configuration data input to the threshold elements. By doing so, the number of threshold elements in the threshold element network is reduced.
[0051]
The case of realizing an arbitrary k-input variable symmetric function and the case of realizing an arbitrary k-input variable logical function, which are conventional techniques, will be described using a general two-stage logic threshold element network.
[0052]
When an arbitrary k-input variable symmetric function is realized, the output value at each input state number is associated with the output value of one threshold element in the first stage of the two-stage logic circuit. Some (k + 1) threshold elements are required in the first stage, and when including the second-stage threshold elements, at least (k + 2) threshold elements are required.
[0053]
To realize an arbitrary k-input variable logic function, if the same method as the above-mentioned method for realizing an arbitrary symmetric function is adopted, the same number of input states as the number of input states, 2kThreshold elements are required, and including the second-stage threshold element, at least (2k+1) threshold elements are required.
[0054]
As a method of grouping the number of input states, the number of input states is a power of 2, so that 4 = 22The number of input states as one group, and associating the output values of the threshold element network with the output values of the three threshold elements in the first stage when the number of input states of each group is the number of input states, The number of threshold elements is (2kA method of reducing the number to (3/4 + 1) has been proposed.
[0055]
According to the present invention, when the number of input states is grouped, the three input states are grouped into one group, and the generation of a remainder is allowed. Thus, the present invention can be applied to any number of input states.
[0056]
Embodiments and Examples of the Invention
[outline]
The present invention relates to a logic function reconfigurable device using a threshold element network, and is a circuit for reducing the number of threshold elements required to realize an arbitrary logic function or an arbitrary symmetric function. .
[0057]
The first embodiment of the present invention is an embodiment in which the number of elements is reduced when implementing an arbitrary logical function, and the second embodiment of the present invention is adapted to implement an arbitrary symmetric function. This is an embodiment in which the number of elements is reduced, and both the first and second embodiments will be described with a logic level using a threshold element. The third embodiment of the present invention will be described at the circuit level, and specific circuit examples will be given.
[0058]
In the following description, int [x / y] is an integer part of x / y based on real numbers x, y (y ≠ 0), and mod [x / y] is based on real numbers x, y (y ≠ 0). This is the remainder of x / y. Note that 0 ≦ mod [x / y] <y.
[0059]
[First Embodiment]
The first embodiment is a method and a circuit configuration for reducing the number of threshold elements by using a multi-valued expression using a plurality of bits in a circuit that realizes an arbitrary logical function.
[0060]
The conventional method is about 2kOr about (3/4) .2kRequires three threshold elements. In the first embodiment, the number of necessary threshold elements is reduced to about (2/3) · 2k, And more precisely, the number of necessary threshold elements can be reduced to int [(2/3) · 2k] + Mod [2k/ 3] +1.
[0061]
[Second embodiment]
The second embodiment relates to a method and a circuit configuration for reducing the number of threshold elements by using a multi-value expression using a plurality of bits in a circuit for realizing an arbitrary symmetric function.
[0062]
The conventional method requires (k + 2) threshold elements. The second embodiment reduces the number of unnecessary threshold elements to about (2/3) · (k + 1), and more precisely, int [(2/3) · (k + 1)] + mod [(k + 1) / 3] +1.
[0063]
[Third Embodiment] "
In the third embodiment, an int [(2/3) · 2k] + Mod [2k/ 3] + 1 threshold element. This circuit can be modified so as to be applicable to any symmetric function by referring to the second embodiment.
[0064]
The specific mounting object of the threshold element in the third embodiment is that a plurality of input gates (terminals to which signals are input) and terminals that can be transiently insulated from each other have a capacitance. A threshold element (for example, a neuron MOS inverter) which is connected in series via a non-linear element and has an input value of a potential of a terminal which can be brought into the electrically insulating state.
[0065]
In the above embodiment, in order to realize an arbitrary logical function or an arbitrary symmetric function, a multi-value expression of a control variable is performed to reduce the number of elements.
[0066]
As a multi-value expression method, multi-bit conversion (this is a second embodiment, which can be said to be multi-value expression by a combination of binary signals dispersed in space), and signal amplitude using multi-potentials The same effect as described above can be obtained also by a method of expressing multi-values on the upper side or a method of expressing multi-values by dispersing a binary signal on a time axis using Pulse Width Modulation (PWM).
[0067]
The development on the time axis is the same as described above when not only PWM but also Pulse Density Modulation (PDM) is used.
[0068]
[First Embodiment]
[Requirement for Circuit Configuration for Realizing k Input Variable Logic Function]
In order to realize a k-input variable logic function, two k-input variables are used.kAre required to be different from each other when viewed as inputs of the threshold element, and logically “1” or “0” is selectively used as an output value for each of the input vectors distinguished from each other. It is necessary to be able to give When the above two requirements are satisfied, 2k2 for the input vectorsq(However, q = 2kThat is, 2 2 to the k-th power, for example, 2 if k = 38= 256) logical functions.
[0069]
On the threshold element, 2kDifferent weights are used for each input variable to distinguish the input vectors from each other (make the input vectors identifiable).
[0070]
For example, the input vector {X1, X2, ..., Xi, ..., XkThe weight for} is {wx1, Wx2, ..., wxi, ..., wxk}, Wxi= 2i-1By doing so, the input vector becomes identifiable. At this time, the product sum value of the input variable and the weight
[0071]
(Equation 8)
[0072]
Is an integer value that satisfies Expression (6), and this sum of products is referred to as the number of input states (ξ).
[0073]
(Equation 9)
[0074]
A method for making the input vector identifiable is wxi= 2i-1It is not limited only to the method. For example, wxi= Αi-1, (Α> 2). However, in the above embodiment, for simplicity, wxi= 2i-1Is used.
[0075]
[General configuration of a circuit that realizes an arbitrary logic function]
FIG. 1 is a block diagram showing a configuration of an integrated circuit (logic function reconfigurable integrated circuit 100) according to a first embodiment of the present invention.
[0076]
The
[0077]
The
[0078]
In the conventional two-stage logic feed-forward circuit shown in FIG. 19, an arbitrary k-input variable logic function can be expressed as (3 / 4) ・ 2kThis can be realized by using +1 number of threshold elements.
[0079]
On the other hand, in the first embodiment, an arbitrary logic function is realized by associating the outputs of the two first-stage threshold elements with the number of three consecutive input states. The number of input states of k input variables is 2kIn the case where the number of input states is set to one group, there is always a surplus.
[0080]
The above embodiment is a method of allowing a remainder to exist. The remaining number of input states mod [2k/ 3] is associated with the output of the first-stage threshold element. For this reason, the number of threshold elements in the above embodiment is equal to the number of threshold elements in the first stage int [(2/3) · 2k] + Mod [2k/ 3] plus 1 for the second-stage threshold element. The number of threshold elements is mod [2k/ 3] is 1 or 2, so that when k ≦ 3, the number is the same as in the conventional method, but when k ≧ 4, the number of threshold elements can be reduced by the method of the above embodiment.
[0081]
Next, a general part of an input, an “input threshold”, and an output, which are characteristics of each threshold element, will be described.
[0082]
Here, the “threshold” and the “input threshold” are used with the same definitions as described in the related art. The first-stage threshold element receives all input variables and control variables for controlling the input threshold. As described above, the weight by which the input variable is multiplied is set so that the input vector can be identified. There are two types of first-stage threshold elements, one that can select one input threshold from two input thresholds and one that can select one input threshold from four input thresholds.
[0083]
In addition, since the two types of threshold elements are both negative output type threshold elements having one threshold, a logical "1" is output until the product sum of the inputs exceeds the input threshold. When the input threshold value is exceeded, logical "0" is output, and "1" is not output again. The second-stage threshold elements receive all input variables and output values from all first-stage threshold elements. The threshold is one predetermined value.
[0084]
Next, before describing a specific circuit configuration in the above embodiment, the circuit configuration is classified.
[0085]
Mod [2] at the number of threshold elements in the first stagek/ 3] is 1 or 2, so the specific configuration of the
[0086]
[Mod [2k/ 3] = 1: A]
FIG. 2 shows that mod [2kFIG. 3 is a diagram illustrating a circuit configuration when [/ 3] = 1.
[0087]
First, the configuration of the first-stage threshold element will be described, and then its operation will be described.
[0088]
The configuration of the second-stage threshold element that receives the output values of all the first-stage threshold elements and all the input variables is shown. Finally, focusing on the operation of the second-stage threshold element, The fact that an arbitrary logical function can be realized will be described.
[0089]
[A: Configuration of first-stage threshold element]
Now, mod [2k/ 3] = 1, 2kThere is an integer m such that −1 = 3 · m. As for the number of input states ξ, if three consecutive input state numbers are arranged in ascending order of value, ξ is divided into m sets and one input state number. In each of the three consecutive input state numbers, when the logical value “1” or “0” can be selected as the output value of the
[0090]
On the other hand, output values of one threshold element are associated with each other so that “1” and “0” can be selected as output values of the
[0091]
FIG. 4 shows a first-stage threshold element THG in a circuit for implementing a k-input variable logic function.(2j-1)FIG.
[0092]
THG(2j)Also, THG(2j-1)It has the same configuration as. THG(2j-1)Has all input variables X1~ XkAnd the control variable cfg(2j-1) 1, Cfg(2j-1) 2Is input. The weight by which the input value is multiplied is the input variable XiFor wxi= 2i-1And the control variable cfg(2j-1) 1Weight w forc (2j-1) 1, Wc (2j-1) 1= 2 and cfg(2j-1) 2Weight w forc (2j-1) 2, Wc (2j-1) 2= 1. Also, the threshold th(2j-1)Is th(2j-1)= (3j-1 / 2). The output value is Y(2j-1)Is represented by
[0093]
FIG. 5 shows a first-stage threshold element THG.(2m + 1)FIG.
[0094]
Threshold element THG(2j-1)Similarly, all input variables are input, and the weights for each are the same. However, if the control variable is cfg(2m + 1) 1The only difference is that Also, the control variable cfg(2m + 1) 1Weight w forc (2m + 1) 1Is wc (2m + 1) 1= 1. Threshold th(2m + 1)Is th(2m + 1)= (3m + /), and the output value is Y(2m + 1)Is represented by
[0095]
[A: Operation of first-stage threshold element]
Next, THG(2j-1)And THG(2m + 1)Will be described in order.
[0096]
THG shown in FIG.(2j-1)When the number of input states 直 す is re-expressed as Sumx, the relationship between all inputs, the sum-of-products Sum of weights, and Sumx is represented by Expression (8).
[0097]
(Equation 10)
[0098]
In equation (8), if (3j−7 / 2) <Sumx <(3j− /), cfg(2j-1) 1And cfg(2j-1) 2The output value is determined depending on the value of.
[0099]
Here, the relationship of Expression (8) will be described using j = 1 as a specific example.
[0100]
FIG. 6 is a diagram illustrating the relationship between the number of input states Sumx and Sum.
[0101]
Sum on the vertical axis is “0” which is a value when all inputs are logical “0”, and “2” which is a value when all inputs are logical “1”.k+2 ”. Threshold th1Is (2 + /), so in the area B1 where Sumx is 3 or more, as shown in Expression (8), Sumx> (2 + /) is satisfied, and Sumx does not depend on the value of the control variable. Always exceeds the threshold, and the output value is Y1= 0.
[0102]
On the other hand, in the area A1 where Sumx = 0, 1, and 2, the relationship between Sum and the threshold differs depending on the value of the control variable.
[0103]
If Sumx = 0, cfg11And cfg12Sum is greater than the threshold value when both are 1, and cfg when Sumx = 1.11Is greater than the Sum threshold if the value is 1, and if Sumx = 2, cfg11And cfg12If at least one of is equal to 1, Sum exceeds the threshold. Two control variables cfg for each number of input states11, Cfg12, Sum and output value Y1Is summarized in FIG.
[0104]
FIG. 7 shows the number of input states Sumx and the output value Y in the relationship shown in FIG.1FIG.
[0105]
In the area B1, since the sum is larger than the threshold value, a logical “0” is always output. On the other hand, in the area A1, four cases can be taken as shown in FIG.
[0106]
# 4 in FIG. 20 corresponds to “a” in FIG. That is, since the threshold value is exceeded only by the sum of the values of the control variables, the output value becomes zero because the threshold value is exceeded regardless of the number of input states. In FIG. 20, # 3 corresponds to "b", # 2 corresponds to "c", and # 1 corresponds to "d".
[0107]
As described above, the threshold element THG when j = 11Has four different cases. That is, the case where the output value becomes 0 when the number of input states Sumx is 0 or more, the case where the output value becomes 0 starting with Sumx = 1, the case where the output value becomes 0 starting with Sumx = 2, and the case where Sumx = 3 And four different cases from when the output value becomes 0 for the first time.
[0108]
As can be seen from equation (8), the specific example is THG(2j-1), THG(2j)Can easily be extended in the case of. THG(2j-1)And THG(2j)Similarly, there are four input states that
[0109]
Next, the THG shown in FIG.(2m + 1)Will be described.
[0110]
THG(2j-1)As in the case of, all input variables and weight wc (2m + 1) 1= Control variable cfg multiplied by 1(2m + 1) 1Is an input and the threshold th(2m + 1)But th(2m + 1)= (3m + /) = (2k-1/2).
[0111]
If there are k input variables, the maximum value of the input state number Sumx is 2k-1Therefore, even if all the input variables are logical “1”, the threshold value does not exceed with only Sumx. Control variable cfg(2m + 1) 1Sum is above the threshold only when is a logical "1". Y(2m + 1)And Sum are represented by equation (9).
[0112]
(Equation 11)
[0113]
This is the threshold element THG(2m + 1)Output value Y(2m + 1)Is the number of input states (2kIn -1), cfg(2m + 1) 1Has been described as selectively taking either one of the logical "1" and "0" depending on the value of.
[0114]
[A:Second stageConfiguration of threshold element]
Next, the second-stage threshold element THG0, The threshold value and the output will be described.
[0115]
As shown in FIG.0, All input variables and the output values of all the first-stage threshold elements are input. Input variable weight wxi, Wxi= 2i-1And On the other hand, the first-stage threshold element THG(2j-1)Output value Y(2j-1)Weight, THG(2j)Output value Y(2j)Weight, THG(2m + 1)Weight of the output value Y of wy (2j-1), Wy (2j), Wy (2m + 1)And then, wy (2j-1)= 2, wy (2j)= 1, wy (2m + 1)= 1. At this time, THG0And the sum of the weights Sum, the sum of the input states is Sumx, the sum of the output value of the first-stage threshold element and the weight is Sumy, and the output value is a control variable. Assuming that a logical 1 or 0 can be taken independently of the above, as shown in equation (10), 0 or more (2k + 1-1) The following integer value is obtained.
[0116]
(Equation 12)
[0117]
Here, the second-stage threshold element THG0Is the maximum of the possible values of Sum (2k + 1-1) (1/2) (2)k− (1 /)).
[0118]
[A: Description of Realization of Arbitrary Logic Function Using Second Threshold Element]
Next, the second-stage threshold element THG of the circuit configuration shown in FIG.0Finally, the fact that an arbitrary logical function can be realized will be described.
[0119]
FIG. 8 shows a second-stage threshold element THG.0, The input variable X to be input1~ XkAnd weight wx1~ WxkIt is a figure which shows the relationship of the sum-of-products value (Sum = Sumx + Sumy) with respect to all the input values with respect to the input state number Sumx which is the sum-of-products value.
[0120]
Attention is paid to three consecutive input state numbers, for example, Sumx = 0, 1, 2 corresponding to j = 1, in ascending order of the input state number.
[0121]
As described above, the first-stage threshold element is an element that realizes a negative output threshold function having the selected one input threshold, and is therefore a threshold element that once outputs a logical “0”. The output value cannot be set to output a logical "1" again. Here, the smallest number of input states at which the threshold element having this feature outputs a logical “0” is defined as “number of 0 output states”. At this time, the first-stage threshold element THG1And THG2Since the threshold values of all the threshold elements except for the above are larger than 3, the number of 0 output states is 3 or more.
[0122]
For this reason, when the number of input states Sumx is 0, 1, 2, THG1, THG2, All the first-stage threshold elements output a logical “1”. Therefore, the second-stage threshold element THG0, The sum-of-products Sum by the output of the first-stage threshold element is expressed by Expression (14), and the sum-of-products Sum of all inputs is expressed by Expression (15). Is done. Equation (15) is represented by a stair-shaped solid line near the threshold in FIG.
[0123]
(Equation 13)
[0124]
Sum is THG0(2)k−1/2) and the output value is determined. Sum and (2kAssuming that the difference from (−1/2) is ΔSum, ΔSum is represented by Expression (16).
[0125]
[Equation 14]
[0126]
Now, the case where ΔSum> 0 is called the logical value of ΔSum is “1”, and conversely, the case where ΔSum <0 is called the logical value is “0”. When the logical value of ΔSum is 1, THG0Becomes Z = 0, and when the logical value of ΔSum is 0, Z = 1. From the expression (16), the logical value of ΔSum is controlled by Y1And Y2It turns out that it is the value of.
[0127]
Where Y1, Y2And the relationship between the input state number Sumx and the input state number Sumx will be described.
[0128]
As described above, the first-stage threshold element THG1And THG2And the number of 0 output states are set in any one of four sections: less than 0, between 0 and 1, between 1 and 2, and between 2 and 3. be able to.
[0129]
FIG. 21 shows eight ΔSum states that can be realized when the number of three
[0130]
In FIG. 21, Y1If the number of 0 output states is 0, then in all of the three input states of Sumx = 0, 1, 2 in equation (16), Y1= 0 and Y1If the number of 0 output states of is 2, Sumx = 0, if 1, then Y1= 1, and if Sumx = 2, Y1= 0. In other cases, it can be inferred from this.
[0131]
Next,
[0132]
FIG. 9 is a diagram showing the case of # 5 in FIG.
[0133]
Y1Is 0, the number of output states is 1, and Y2Since the number of 0 output states of is equal to 2, when Sumx = 0, Y1= Y2= 1, ΔSum = 1/2> 0 from the equation (16), and the logical value of ΔSum becomes 1.
[0134]
For Sumx = 1, Y1= 0, Y2= 1, ΔSum = − / <0, and the logical value of ΔSum becomes 0. For Sumx = 2, Y1= 0, Y2= 0, ΔSum = − / <0, and the logical value of ΔSum becomes 0.
[0135]
In this manner, the logical value (1, 0, 0) of ΔSum when the number of input states Sumx = 0, 1, 2 can be realized. This is THG0Is (0, 1, 1) for Sumx = 0, 1, 2. It can be said that the eight states shown in FIG. 21 correspond to arbitrary logical functions for three input variables.
[0136]
Next, the case where j = 1 is generalized to j = h.
[0137]
For the three consecutive input state numbers Sumx in Expression (18), the output Y of the two first-stage threshold elements is calculated in the same manner as described above.(2h-1)And Y(2h)The fact that an arbitrary logical value of ΔSum can be selectively set based on the values of (1) and (2) will be described.
[0138]
In this Sumx region, the first-stage threshold element THG(2h-1)And THG(2h)And the two output values Y(2h-1), Y(2h)Only depends on the control variable, and the output values of the other threshold elements are determined independently of the control variable.
[0139]
As mentioned above, THG(2h-1)And THG(2h)And the thresholds are th(2h-1)= (3h-1 / 2), th(2h)= (3h-1 / 2). For this, THG(2h-1)And THG(2h)And the input to(2h-1)And Sum(2h)Then, as in Expression (7), Expressions (18) and (19) are used.
[0140]
Sum(2h-1)= 2 · cfg(2h-1)+ Cfg(2h-1)+ Sumx ... Equation (18)
Sum(2h)= 2 · cfg(2h) 1+ Cfg(2h) 2+ Sumx ... Equation (19)
0 ≦ 2 · cfg(2h-1)+ Cfg(2h-1)Since ≦ 3, (Sum(2h-1)-Th(2h-1)) Is cfg(2h-1)And cfg(2h)It is possible to selectively take one of a positive value and a negative value depending on the value of. This is because when Sumx is in this area, THG(2h-1)Output value Y(2h-1)Depends on the value of the control variable and can be either logical 1 or logical 0. Also, Sum(2h)-Th(2h)The same can be said for.
[0141]
On the other hand, the threshold element THG where j <h(2j-1), THG(2j)As for the input to, the output value is always logical 0 irrespective of the value of the control variable because Sumx is larger than the threshold value in the region of the equation (18). Conversely, for a threshold element with j> h, in the region where Sumx is in the expression (18), the control value does not exceed the threshold value regardless of the value of the control variable, so that the output value is always logically 1 is there.
[0142]
The case of three consecutive input states has been described above.
[0143]
When Sumx is the number of three consecutive input states in the region of equation (18), the threshold element THG(2h-1)And THG(2h)Only the output values of the two threshold elements, that is, the combination of the control variables input to the two threshold elements is the threshold element THG of the second stage.0Input and threshold (2k-1/2).
[0144]
Next, mod [2k/ 3] = 1 for the remainder of one input state number, the second-stage threshold element THG(2m + 1)That the sum of the input values and the product sum of the weights can selectively change the magnitude relationship of the threshold will be described.
[0145]
Maximum number of input states (2k-1) is set as one of the remainders, so that the threshold element THG in FIG.(2m + 1)Other than the first-stage threshold element THG1~ THG(2m)Are all logical "0". Also, Y(2m + 1)Is multiplied as a weight by wy (2m + 1)= 1, the number of input states Sumx = 2kThe value of Sum when it is -1 is represented by Expression (20).
[0146]
Sum = Y(2m + 1)+ (2k-1) ... Equation (20)
THG0The threshold of (2k−1 /), and as can be seen from equation (20), the threshold element THG(2m + 1)Output value Y(2m + 1), The value of Sum can take on a logical 1, 0 selectively.
[0147]
As described above, even when the number of input states is excessive, THG0Has been described as being able to take a logical 1 or 0 selectively.
[0148]
According to the above method and circuit configuration, THG is obtained for each of the arbitrary number of input states in the case of k input variables.0Can selectively take a logical one or zero. This is THG0Means that a logical 1 or 0 can be selectively output, and a logical 1 or 0 is output for each input state number using the circuit configuration shown in FIG. It means you can do it. With this function, the circuit shown in FIG. 2 can realize any k-input variable logic function.
[0149]
In the above embodiment, the remaining number of input states is described as the case of the maximum number of input states. , Even when one negative output type threshold element represented by the equation (20) is used, the influence on other input states can be eliminated by setting the number of 0 output states. Can be set to an arbitrary number of input states.
[0150]
[Mod [2k/ 3] = 2: B]
Next, mod [2] shown in the circuit diagram of FIG.k/ 3] = 2, mod [2]k/ 3] = 1 will be described.
[0151]
Number of input states 0 to 2k-2 into one set of three input state numbers that are consecutive in ascending order.k−2 = 3 · m, (1 ≦ j ≦ m). In one set of the above, a method of selectively realizing eight states using two threshold elements is mod [2k/ 3] is the same as the method described above, and the difference from the above case is that the number of remaining input states (2k−2,2k-1) is two points.
[0152]
In the above embodiment, mod [2k/ 3] = 1, so that logical 1 or 0 can be selectively output independently of the number of other input states.
[0153]
[B: Configuration and operation of first-stage threshold element]
The first-stage threshold element corresponding to the remaining number of input states is THG(2m + 1)And THG(2m + 1)And THG(2m + 1)Has a mod [2] shown in FIG.k/ 3] = 1, but the threshold value th(2m + 1)= (3 · m + /) = (2kIt should be noted that this is −3/2). THG(2m + 2)The configuration of THG(2m + 1)Is similar to(2m + 2) 1And a threshold th(2m + 2)As th(2m + 2)= (3 · m + 3/2) = (2k−1/2) and Y as an output value.(2m + 2)Is different.
[0154]
The operating principle of the two threshold elements is mod [2]k/ 3] = 1 when THG(2m + 1)And mod [2k/ 3] = 2 when THG = 2(2m + 1)Is the number of input states Sumx = 2kWhen -2, logical 1 or 0 is set to cfg(2m + 1)THG can be selectively taken by the value of 1.(2m + 2)Is the number of input states Sumx = 2kWhen −1, logical 1 or 0 is cfg(2m + 2) 1Can be taken selectively by the value of
[B: Configuration and operation of the second-stage threshold element]
Here, mod [2k/ 3] = 2, the second-stage threshold element THG0Will be described.
[0155]
THG0Is the sum of the product sum of all input variables and weights and the product sum of output values and weights of all first-stage threshold elements. For the sum of products of the input variables and the weights, mod [2k/ 3] = 1. Also, the first-stage threshold element THG1From, THG(2m)Of the product value of the output value ofk/ 3] = 1.
[0156]
Number of input states Sumx ≦ 2kIf THG1From, THG(2m)Sum is controlled by the threshold element, and mod [2]k/ 3] = 1 can be inferred from the operation. Also, Sumx = 2k+1 and Sumx = 2kSum in the case of +2 is represented by Expression (21).
[0157]
Sum = Y(2m + 1)+ Y(2m + 2)+ (2k-2) ... Equation (21)
Y(2m + 1)Is Sumx = 2m + 2 = 2k-1 always outputs logical 0, and conversely, Y(2m + 2)Is Sumx = 2m + 1 = 2kIn the case of −2, since logical 1 is always output, Sum in these two input state numbers is represented by Expression (22).
[0158]
(Equation 15)
[0159]
If the threshold is (2k−1/2), the following can be found from equation (22). If Sumx = 2m + 1, Y(2m + 1)If = 1, Sum exceeds the threshold, the output value Z = 0, and Y(2m + 1)If = 0, Sum is smaller than the threshold, and the output value Z = 1. If Sumx = 2m + 2, Y(2m + 2)If = 1, Sum exceeds the threshold, the output value Z = 0, and Y(2m + 2)If = 0, Sum is smaller than the threshold, and the output value Z = 1. Thus, Y(2m + 1), Y(2m + 2)The output value Z is determined according to the value of.
[0160]
As described above, mod [2k/ 3] = 2, the input / output characteristics of the second-stage threshold element will be described, showing that logical “1” or “0” can be selected when the number of input states is arbitrary. Was.
[0161]
[Summary = First Embodiment]
As described above, in the two-stage logical feedforward circuit configuration using the first-stage threshold element and the second-stage threshold element described in the above-described embodiment, {int [(2/3) · 2k] + Mod [2kAn arbitrary k-input variable logic function can be realized by / 3] +1} negative output type threshold elements.
[0162]
FIG. 10 shows the prior art of the number of threshold elements in the first stage with respect to the number k of input variables.kA method using three threshold elements, and (3/4) · 2kFIG. 7 is a diagram comparing a method using the threshold elements with the method of the above embodiment.
[0163]
In the above embodiment, an arbitrary logic function can be realized with the smallest number of threshold elements.
[0164]
[Second embodiment]
The first embodiment is a circuit for realizing an arbitrary logic function.
[0165]
The second embodiment employs two stages using {int [(2/3). (K + 1)] + mod [(k + 1) / 3] +1} negative output type threshold elements for realizing an arbitrary symmetric function. It is a logic feedforward circuit.
[0166]
[Requirement for Circuit Configuration for Realizing k Input Variable Symmetric Function]
Since a symmetric function is a function whose output value is invariant with respect to any replacement of an input variable, identification of an input vector can be performed by the number of input variables that are logically 1 in the input variables. .
[0167]
That is, the number of input states means the number of variables that are logical 1 in the input variables. For example, (X1, X2, X3), (X1, X2, X3) = (1,0,0) and (X1, X2, X3) = (0,1,0) means X1And X2The two input vectors do not need to be identified, since the replacement of Therefore, when there are k input variables, the number of input states is (k + 1) integer values from 0 to k. On a threshold element, the above characteristics can be realized by setting the weights for all input variables equal. In the above embodiment, the weight w for the input variablexiAre all equal wxi= 1.
[0168]
[Circuit configuration to realize arbitrary symmetric function]
Similarly to the first embodiment, if the number of continuous three input states is grouped into one set, the number of the input states is three according to the value of mod [(k + 1) / 3].
(1) (k + 1) = 3m,
(2) (k + 1) = 3m + 1,
(3) (k + 1) = 3m + 2,
Can be classified.
[0169]
The cases (2) and (3) are the same as those described in the first embodiment with reference to FIGS. 2 and 3 except that the weights by which the input variables are multiplied are different. The case (1) above is a case where there is no remainder, and the realization method and circuit configuration in this case can be easily inferred from the case where there is a remainder.
[0170]
[Configuration and operation of first-stage threshold element]
As described in the first embodiment, the first-stage threshold element includes a threshold element that can selectively set the number of four consecutive input states to the number of zero output states, and mod [(k + 1) / 3] There are two types of threshold elements that can selectively set either one of the two input state numbers used in the case of ≠ 0 to the 0 output state number.
[0171]
FIG. 11 is a diagram illustrating a configuration of a threshold element capable of selectively setting any one of the four continuous input state numbers to the zero output state number.
[0172]
The threshold element in FIG. 4 is a weight w for an input variable.xiAre different. The threshold element THG shown in FIG.(2j-1)Is used when (1 ≦ j ≦ m). Also, THG(2j)Also, THG(2j-1)Input variables and weights wxiAnd the same applies to the threshold, th(2j)= (3j-1 / 2), and cfg as two control variables(2j) 1, Cfg(2j) 2And their weights are 2 and 1, respectively. The operation of the threshold element has already been described in the first embodiment.
[0173]
FIG. 12 is a diagram illustrating a configuration of a threshold element capable of selectively setting any one of two consecutive input state numbers to 0 output state number.
[0174]
The threshold element shown in FIG. 5 is a weight w for an input variable.xiAre different. If mod [(k + 1) / 3] = 2, the THG shown in FIG.(2m + 1)Besides, THG(2m + 2)Is also used. THG(2m + 2)Has a THG configuration shown in FIG.(2m + 2)Is similar to(2m + 2) 1And w is used as the weight.c (2m + 2) 1= 1 and the threshold th(2m + 2)= 3m + 3/2 = k + /, the output value Y(2m + 2)Is used. The operation of the threshold element has already been described in the first embodiment.
[0175]
[Configuration and operation of second-stage threshold element]
The configuration of the second-stage threshold element is similar to the configuration of the second-stage threshold element in the first embodiment. The relationship between the first embodiment and the input variable k and the threshold value are different from those of the first embodiment.
[0176]
First, the relationship between an input variable k and m that divides the number of (k + 1) input states will be described.
[0177]
The relationship in the first embodiment is int [2k/ 3] = m, and the relationship between m and k in the embodiment is int [(k + 1) / 3] = m as described above.
[0178]
Next, the threshold will be described.
[0179]
In the first embodiment, the maximum value of the value Sum input to the second-stage threshold element is (2k + 1−1), and the threshold value is そ の of that (2)k-1/2).
[0180]
On the other hand, the maximum value of the value Sum input to the second-stage threshold element in the second embodiment will be described with reference to FIG.
[0181]
FIG. 13 shows the second-stage threshold element THG when mod [(k + 1) / 3] = 1.0It is a figure showing the structure of.
[0182]
All of the k input variables are multiplied by the
[0183]
FIG. 14 shows the relationship between the number of input states Sumx, the input value of the second-stage threshold element, and the sum-of-products Sum of the weights in the two-stage logic feedforward circuit that realizes an arbitrary k-input variable symmetric function. FIG.
[0184]
FIG. 14 is a view similar to FIG. 8 in the first embodiment. The horizontal axis indicates Sumx, which is the number of input states, and the vertical axis indicates the value Sum input to the threshold element. The maximum value of Sum is 2k + 1, and the threshold value is k + /. In the figure, the hatched portion represents the contribution of the number of input states Sumx in Sum, and the solid line represents the output value of the first-stage threshold element, and the weight is assigned to the output value determined independently of the control variable. Represents the multiplied value.
[0185]
The dotted line represents the sum when the output value of the first-stage threshold element is determined depending on the control variable. As in the first embodiment shown in FIG. 20, three input state numbers Sumx = 0, 1, 2 when j = 1 are taken as an example. At this time, the output value Y of the first-stage threshold element1And
[0186]
By using the weights and the thresholds described above, the same method as in the first embodiment can be applied, and an arbitrary symmetric function can be realized.
[0187]
[Summary = second embodiment]
As described above, in the two-stage logic feedforward circuit configuration using the first-stage threshold element and the second-stage threshold element described in the second embodiment, {int [(2/3) · (k + 1) )] + Mod [(k + 1) / 3] +1} n-output-type threshold elements can realize an arbitrary k-input variable symmetric function.
[0188]
[Third embodiment]
The third embodiment is an actual circuit for mounting the negative output type threshold element used in the first embodiment and the second embodiment.
[0189]
[General configuration of circuit for mounting threshold element]
FIG. 15 is a circuit diagram of the negative output type threshold element shown in FIG.
[0190]
K input variable X in FIG.1~ XkAre the capacitance values C in FIG.x1= 1 · α-Cxk= 2k-1The potential V is applied to one terminal of the capacitor having α.x1~ VxkAnd the control variable cfg of FIG.(2j-1) 1, Cfg(2j-1) 2Are the capacitance values C in FIG.c (2j-1) 1= 2 · α and Cc (2j-1) 2= 1 · α, the potential Vc (2j-1) 1And Vc(2j-1) 2Is entered as
[0191]
The weight for each input in FIG. 4 corresponds to the capacitance value in FIG. Further, the threshold value th in FIG.(2j-1)In FIG. 15, a capacitor having one terminal connected to a fixed potential is used in order to realize. Capacitance C whose one terminal is connected to the power supply potentialvddAnd the capacitance value C connected to the ground potentialgndAnd capacity. The other terminals of these capacitors are respectively connected to a terminal fltg, and the terminal fltg becomes an input terminal of the inverter circuit INV.
[0192]
FIG. 15 is a diagram showing a negative output type threshold element configured by connecting a plurality of capacitors in parallel and connecting the capacitors connected in parallel and the inverter circuit in series.
[0193]
[Configuration using CM0S inverter as inverter circuit used to mount threshold element]
FIG. 16 is a diagram showing a circuit in which the inverter circuit INV shown in FIG. 15 is replaced with a CM0S inverter.
[0194]
One terminal of the plurality of capacitors is used as an input terminal, and the other terminal is connected to fltg which is a floating gate. This floating gate fltg is also the input gate of the CM0S inverter composed of PM0SFET and NM0SFET.
[0195]
[Operation of threshold element circuit]
It will be described that the circuit shown in FIG. 16 has the same function as the negative output type threshold element shown in FIG.
[0196]
First, the floating gate fltg has a property similar to a metal such as metal or Poly-Si, and the sum of the capacitance values between the floating gate fltg and the input terminal is equal to the value between the floating gate fltg and the PM0SFET or NM0SFET. The floating gate is set to be much larger than the sum of the capacitances, and the charge amount in the initial state of the floating gate is 0, that is, it is electrically neutral. At this time, the potential Y of the floating gate fltg isfltgIs represented by equation (23).
[0197]
(Equation 16)
[0198]
In equation (23), the capacitance value is replaced by a capacitance ratio, which is equal to the weight of the threshold element shown in FIG. Here, Cvdd/ Α = wvdd, Cgnd/ Α = wgndAnd Further, the input potential VxiAnd Vc (2j-1) iPower supply potential VddAlternatively, when one of the two values of the
[0199]
[Equation 17]
[0200]
Equation (24) can be transformed into equation (25).
[0201]
Next, the floating gate potential at which the CM0S inverter performs logical inversion is changed to the floating gate threshold potential VfthAnd the value normalized by the power supply potential is UfthAnd By adjusting the gate width of PM0SFET and NM0SFET, Ufth= 1/2. Also, UfthAnd UfltgAnd the output value U of the invertery (2j-1)= Vy (2j-1)/ VddIs given by equation (26). Where Uy (2j-1)The value at the time of >(2j-1)= 1 and Uy (2j-1)The value at the time of <1/2 is converted to Y(2j-1)= 0.
[0202]
(Equation 18)
[0203]
Using equation (25), (Ufltg-Ufth) Is transformed into equation (27).
[0204]
Ufltg-Ufth=
In Expression (27), w is set such that Expression (28) is satisfied.vddAnd wgndSelect
[0205]
2k-1+1+ (wgnd-Wvdd) / 2 = 3 · j−1 / 2 Equation (28)
At this time, equation (26) becomes the same as equation (8) shown in the first embodiment (shown again below), and represents the operation of the threshold element shown in FIG.
[0206]
[Equation 19]
[0207]
The configuration and operation of the mounting circuit of the negative output type threshold element have been described above.
[0208]
【The invention's effect】
According to the present invention, there is an effect that an arbitrary symmetric function can be realized using a threshold element network.
[0209]
Further, according to the present invention, when realizing an arbitrary logic function, three consecutive input state numbers are grouped into one group, and the output value at each input state number of each group and the two By associating the output value of the threshold element with the output value of each threshold state, the output value of each threshold value is compared with the conventional method of associating the output value of a certain threshold element with the output value of the threshold element. There is an effect that the number of threshold elements can be reduced to about 2/3.
[Brief description of the drawings]
FIG. 1 illustrates an int [2] that implements an arbitrary k-input variable logic functionk/ 3] + mod [2kFIG. 3 is a diagram illustrating a two-stage logical feed-forward circuit composed of [/ 3] +1} negative output type threshold elements.
FIG. 2 is a circuit diagram of FIG.kFIG. 3 is a circuit diagram illustrating a case where [/ 3] = 1.
FIG. 3 is a circuit diagram of FIG.kFIG. 3 is a circuit diagram illustrating a case where [/ 3] = 2.
FIG. 4 is a first-stage negative output type threshold element THG in the two-stage logic feedforward circuit of FIG. 1 for realizing an arbitrary k-input variable logic function;(2j-1), (1 ≦ j ≦ 2k−mod [2k/ 3]).
5 is a first-stage negative output type threshold element THG in the two-stage logical feedforward circuit of FIG. 2 for realizing an arbitrary k-input variable logical function;(2m + 1), (3m = 2kIt is a figure showing the structure of -1).
6 is a diagram illustrating a relationship between a sum-of-product value Sum of an input value and a weight to a first-stage negative output type threshold element in the circuit of FIG. 2 and a number of input states Sumx.
FIG. 7 is a first-stage negative output type threshold element THG in the circuit of FIG. 2;1, The output value Y for the input state number Sumx by the combination of the values of the two control variables1It is a figure showing that the change of is different.
8 is a second-stage threshold element THG in the circuit of FIG. 2;0, The input variable X to be input1~ XkAnd weight wx1~ WxkFIG. 10 is a diagram illustrating a relationship between a sum of products (Sum = Sumx + Sumy) for all input values with respect to the number of input states Sumx which is a sum of products.
FIG. 9 is a circuit diagram of the circuit shown in FIG.1And Y2When the number of input states (the number of 0 output states) for outputting logical 0 for the first time is 1 and 2, respectively, the second-stage threshold element THG0FIG. 6 is a diagram illustrating a relationship between a sum of products sum of weights and a threshold value.
FIG. 10 shows the number of threshold elements in the first stage with respect to the number k of input variables, which is 2kA method using three threshold elements, and (3/4) · 2kFIG. 5 is a diagram comparing a method using one threshold element with the method of the first embodiment.
FIG. 11 shows one of four consecutive input state numbers in a first-stage threshold element in a two-stage logical feedforward circuit constituted by threshold elements realizing an arbitrary k-input variable symmetric function; It is a figure showing the structure of the threshold element which can make one input state number into 0 output state number selectively.
FIG. 12 shows one of two consecutive input state numbers in a first-stage threshold element in a two-step logical feedforward circuit constituted by threshold elements realizing an arbitrary k-input variable symmetric function; It is a figure showing the structure of the threshold element which can make one input state number into 0 output state number selectively.
FIG. 13 shows a second-stage threshold element THG in a two-stage logic feedforward circuit that realizes an arbitrary k-input variable symmetric function when mod [(k + 1) / 3] = 1.0It is a figure showing the structure of.
FIG. 14 is a diagram illustrating the relationship between the number of input states Sumx and the sum of products of the input values and weights of the second-stage threshold elements in the two-stage logical feedforward circuit that realizes an arbitrary k-input variable symmetric function; is there.
15 is a circuit diagram on which the negative output type threshold element shown in FIG. 4 is mounted.
FIG. 16 is a circuit diagram in which the inverter circuit of FIG. 15 is realized by a CMOS inverter.
FIG. 17 is a conventional two-stage logic feedforward circuit using a negative output type threshold element realizing an arbitrary k-input variable symmetric function.
FIG. 18 shows a conventional product of input values and weights to a second-stage negative output type threshold element in a two-stage logical feedforward circuit using a negative output type threshold element realizing an arbitrary k-input variable symmetric function. It is a figure showing the relationship between a sum value and the number of input states.
FIG. 19 is a diagram showing a configuration of a conventional two-stage logic feedforward circuit using a negative output type threshold element realizing an arbitrary k-input variable logic function.
FIG. 20 shows eight ΔSum states that can be realized when three
FIG. 21 is a diagram showing Y for selectively determining ΔSum in the number of input states 0, 1, and 2.1, Y2It is a figure showing the combination with.
[Explanation of symbols]
100: logic function reconfigurable integrated circuit,
Sumx: number of input states,
Y: output value,
th: threshold,
cfg: control variable,
THG: threshold element.
Claims (7)
{int[(2/3)ξ]+mod[ξ/3]}個の1段目のしきい素子を有し、
上記1段目のしきい素子の{int[(2/3)ξ]}個は、少なくとも4つの入力閾値を有し、
上記{int[(2/3)ξ]}個のしきい素子の出力値に乗算される重みのうちの半数は、他の半数の2倍の値を有し、
上記{int[(2/3)ξ]}個のしきい素子とは別の{mod[ξ/3]}個の1段目のしきい素子は、少なくとも2つの入力閾値を有し、
上記{mod[ξ/3]}個の1段目のしきい素子の出力値に乗算される重みの値は、上記{int[(2/3)ξ]}個の重みの小さい値と等しいことを特徴とする論理関数機能再構成可能集積回路。 A two-stage logic feedforward type threshold element circuit for selectively setting an output value at the number of input states ξ to logical 1 or 0,
{Int [(2/3)}] + mod [{/ 3]} first-stage threshold elements,
{Int [(2/3)}] of the first-stage threshold elements have at least four input thresholds,
Half of the weights multiplied by the output values of the {int [(2/3)}] threshold elements have twice the value of the other half, and
{Mod [{/ 3}}} first-stage threshold elements different from the {int [(2/3)}] threshold elements have at least two input thresholds,
The value of the weight multiplied by the output value of the {mod [{/ 3}} first-stage threshold elements is equal to the small value of the {int [(2/3)}] weight A logic function reconfigurable integrated circuit, characterized in that:
上記しきい素子が、複数の容量を有し、
上記容量の一方の端子に、入力変数と関数機能を構成するデータとが入力され、上記容量の他方の端子が、互いに接続され、1つの端子となる構造を有し、
上記1つの端子の電位が、しきい処理を行う非線形素子の入力値となる構造を有することを特徴とする論理関数機能再構成可能集積回路。In claim 1 ,
The threshold element has a plurality of capacitances,
An input variable and data forming a function function are input to one terminal of the capacitor, and the other terminals of the capacitor are connected to each other and have a structure of one terminal,
A logic function reconfigurable integrated circuit having a structure in which the potential of the one terminal is an input value of a nonlinear element that performs threshold processing.
上記しきい処理を行う非線形素子は、MOSトランジスタを用いたインバータであることを特徴とする論理関数機能再構成可能集積回路。In claim 2 ,
A logic function reconfigurable integrated circuit, wherein the nonlinear element that performs the threshold processing is an inverter using a MOS transistor.
入力ベクトルを1次元表示し、それぞれ区別した値を、入力状態数と呼ぶときに、
連続する3つの入力状態数を、1つのグループとし、
上記グループのそれぞれの入力状態数であるときのしきい素子網の出力値と、上記しきい回路網中の2つのしきい素子の出力値とを対応付け、
上記2つのしきい素子の出力値と、それぞれのしきい素子に入力される関数構成データの値とを対応付け、
上記関数構成データの値を変更することによって、任意の論理関数を実現することを特徴とする論理関数機能再構成方法。A threshold element circuit network for realizing an arbitrary logic function, having a structure in which the threshold elements are connected in a plurality of stages, and using a multi-valued data as data constituting the logic function function. A reconfiguration method for a reconfigurable integrated circuit, comprising:
When the input vector is displayed one-dimensionally and the distinguished value is called the number of input states,
The number of three consecutive input states is taken as one group,
Associating the output value of the threshold element network when the number of input states of each of the groups is equal to the output value of two threshold elements in the threshold network,
The output values of the two threshold elements are associated with the values of the function configuration data input to the respective threshold elements,
A logic function reconfiguration method, wherein an arbitrary logic function is realized by changing the value of the function configuration data.
入力ベクトルを1次元表示し、それぞれ区別した値を、入力状態数と呼ぶときに、
連続する3つの入力状態数を、1つのグループとし、
上記グループのそれぞれの入力状態数であるときのしきい素子網の出力値と、しきい回路網中の2つのしきい素子の出力値とを対応付け、
上記2つのしきい素子の出力値と、それぞれのしきい素子に入力される関数構成データの値とを対応付け、
関数構成データの値を変更することによって、任意の対称関数を実現することを特徴とする対称関数機能再構成方法。A threshold element network for realizing an arbitrary symmetric function, having a structure in which the threshold elements are connected in a plurality of stages, and a logic function function using multivalued data as data constituting the symmetric function function. A reconfiguration method for a reconfigurable integrated circuit, comprising:
When the input vector is displayed one-dimensionally and the distinguished value is called the number of input states,
The number of three consecutive input states is taken as one group,
The output value of the threshold element network when the number of input states of each of the above groups is associated with the output values of two threshold elements in the threshold network,
The output values of the two threshold elements are associated with the values of the function configuration data input to the respective threshold elements,
A symmetric function function reconstructing method, wherein an arbitrary symmetric function is realized by changing a value of function configuration data.
入力ベクトルを1次元表示し、それぞれ区別した値を、入力状態数と呼ぶときに、When the input vector is displayed one-dimensionally and the distinguished value is called the number of input states,
連続する3つの入力状態数を、1つのグループとするグループ化手段と;Grouping means for grouping three consecutive input state numbers into one group;
上記グループのそれぞれの入力状態数であるときのしきい素子網の出力値と、上記しきい回路網中の2つのしきい素子の出力値とを対応付ける第1の対応付け手段と;First associating means for associating an output value of the threshold element network with the number of input states of each of the groups with an output value of two threshold elements in the threshold network;
上記2つのしきい素子の出力値と、それぞれのしきい素子に入力される関数構成データの値とを対応付ける第2の対応付け手段と;Second associating means for associating the output values of the two threshold elements with the values of the function configuration data input to the respective threshold elements;
を有し、上記関数構成データの値を変更することによって、任意の論理関数を実現することを特徴とする論理関数機能再構成可能集積回路。And a logic function reconfigurable integrated circuit having an arbitrary logic function realized by changing the value of the function configuration data.
入力ベクトルを1次元表示し、それぞれ区別した値を、入力状態数と呼ぶときに、When the input vector is displayed one-dimensionally and the distinguished value is called the number of input states,
連続する3つの入力状態数を、1つのグループとするグループ化手段と;Grouping means for grouping three consecutive input state numbers into one group;
上記グループのそれぞれの入力状態数であるときのしきい素子網の出力値と、しきい回路網中の2つのしきい素子の出力値とを対応付ける第1の対応付け手段と;First associating means for associating an output value of the threshold element network with the number of input states of each of the groups with an output value of two threshold elements in the threshold network;
上記2つのしきい素子の出力値と、それぞれのしきい素子に入力される関数構成データの値とを対応付ける第2の対応付け手段と;Second associating means for associating the output values of the two threshold elements with the values of the function configuration data input to the respective threshold elements;
を有し、関数構成データの値を変更することによって、任意の対称関数を実現することを特徴とする論理関数機能再構成可能集積回路。And a logic function reconfigurable integrated circuit that realizes an arbitrary symmetric function by changing a value of function configuration data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001039033A JP3555110B2 (en) | 2001-02-15 | 2001-02-15 | Logic function reconfigurable integrated circuit and reconfiguration method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001039033A JP3555110B2 (en) | 2001-02-15 | 2001-02-15 | Logic function reconfigurable integrated circuit and reconfiguration method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002246894A JP2002246894A (en) | 2002-08-30 |
JP3555110B2 true JP3555110B2 (en) | 2004-08-18 |
Family
ID=18901903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001039033A Expired - Fee Related JP3555110B2 (en) | 2001-02-15 | 2001-02-15 | Logic function reconfigurable integrated circuit and reconfiguration method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3555110B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2762547C1 (en) * | 2021-04-02 | 2021-12-21 | федеральное государственное бюджетное образовательное учреждение высшего образования "Ульяновский государственный технический университет" | Threshold module |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020093585A (en) | 2001-06-06 | 2002-12-16 | 마츠시타 덴끼 산교 가부시키가이샤 | Semiconductor device |
CN102545882B (en) * | 2012-01-05 | 2017-04-12 | 福州大学 | Reconfigurable threshold logic unit based on SET (Single Electron Transistor)/MOS (Metal Oxide Semiconductor) composite structure |
-
2001
- 2001-02-15 JP JP2001039033A patent/JP3555110B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2762547C1 (en) * | 2021-04-02 | 2021-12-21 | федеральное государственное бюджетное образовательное учреждение высшего образования "Ульяновский государственный технический университет" | Threshold module |
Also Published As
Publication number | Publication date |
---|---|
JP2002246894A (en) | 2002-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7075827B2 (en) | Function reconfigurable semiconductor device and integrated circuit configuring the semiconductor device | |
US7453285B2 (en) | Dynamically configurable logic gate using a non-linear element | |
JP2019531535A (en) | Binary neural network on programmable integrated circuit | |
JPH0428180B2 (en) | ||
US5920498A (en) | Compression circuit of an adder circuit | |
US10438116B2 (en) | Neuromorphic arithmetic device | |
WO2021044821A1 (en) | Arithmetic device and product-sum arithmetic system | |
Fey | Using the multi-bit feature of memristors for register files in signed-digit arithmetic units | |
CN109478253B (en) | Neural network circuit and neural network integrated circuit | |
JP3555110B2 (en) | Logic function reconfigurable integrated circuit and reconfiguration method | |
JP3706869B2 (en) | Semiconductor arithmetic circuit | |
Khan | Cost Reduction in Nearest Neighbour Based Synthesis of Quantum Boolean Circuits. | |
Ntinas et al. | Memristor-based probabilistic cellular automata | |
KR19980042174A (en) | Learning method of binary system | |
Al-Nsour et al. | Implementation of programmable digital sigmoid function circuit for neuro-computing | |
JP3938697B2 (en) | Function function reconfigurable integrated circuit | |
Kumar et al. | Design of digital functional blocks using hybrid memristor structures | |
JP3565495B2 (en) | Logic function reconfigurable integrated circuit and design method thereof | |
Vijayakumari et al. | An improved design of combinational digital circuits with multiplexers using genetic algorithm | |
US3162774A (en) | Network for obtaining a threshold function utilizing majority gates in an array | |
US11652485B2 (en) | Analog hashing engines using physical dynamical systems | |
JP2018022212A (en) | Information processing device | |
US20240028299A1 (en) | Mac operator related to circuit area | |
Aoyama | A reconfigurable logic circuit based on threshold elements with a controlled floating gate | |
Aoyama et al. | A threshold logic-based reconfigurable logic element with a new programming technology |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040108 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040206 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040405 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040430 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040430 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090521 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090521 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100521 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100521 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110521 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |