(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0016】
以下、図面を用いて、実施例について説明する。
【実施例1】
【0017】
図1を参照して、実施例1のニューラルネットワーク回路の構成について説明する。
図1に示すように、実施例1のニューラルネットワーク回路には、多数のデジタル信号が入力される。多数のデジタル信号のうちの例えば3つの入力信号である入力1、入力2、入力3はそれぞれ、D/A変換器11A、D/A変換器11B、D/A変換器11Cによりアナログ電圧に変換される。それぞれのアナログ電圧は、アナログデジタル乗算部(アナデジ乗算部)12A、アナログデジタル乗算部(アナデジ乗算部)12B、アナログデジタル乗算部(アナデジ乗算部)12Cに入力される。
【0018】
前記アナログデジタル乗算部12A、前記アナログデジタル乗算部12B、前記アナログデジタル乗算部12Cには、それぞれ、デジタル信号である重み係数1、重み係数2、重み係数3が入力されている。アナログデジタル乗算部12Aは、D/A変換器11Aが出力するアナログ電圧と、デジタル信号である重み係数1との乗算結果に対応する第一の電荷信号を出力する。
【0019】
同様に、アナログデジタル乗算部12Bは、D/A変換器11Bが出力するアナログ電圧と、デジタル信号である重み係数2との乗算結果に対応する第二の電荷信号を出力する。同様に、前記アナログデジタル乗算部12Cは、D/A変換器11Cが出力するアナログ電圧と、デジタル信号である重み係数3との乗算結果に対応する第三の電荷信号を出力する。
【0020】
アナログデジタル乗算部12Aの出力はスイッチ13Aに接続され、アナログデジタル乗算部12Bの出力はスイッチ13Bに接続され、アナログデジタル乗算部12Cの出力はスイッチ13Cに接続される。スイッチ13A、スイッチ13B、スイッチ13Cがオンとなることで、アナログデジタル乗算部12A、アナログデジタル乗算部12B、アナログデジタル乗算部12Cのそれぞれの出力が互いに接続される。
【0021】
その結果、第一の電荷信号と第二の電荷信号と第三の電荷信号の和に対応する第一の積和電圧が生成される。さらに、スイッチ13A、スイッチ13B、スイッチ13Cの他端はアナログ活性化関数回路14に接続されている。アナログ活性化関数回路14は、ステップ関数、または、シグモイド関数、またはReLU(Rectified Linear Unit)など、ニューラルネットワークとして必要な活性化関数の演算を模擬するアナログ回路である。アナログ活性化関数回路14は、入力される第一の積和電圧に対して、必要な活性化関数に相当する処理を施して、アナログ電圧として出力する。前記第一の積和電圧は、スイッチ13A、スイッチ13B、スイッチ13Cからアナログ活性化関数回路14に至る配線と、グランド、電源配線などとの間に形成される寄生容量、すなわち、配線容量16上に生成される。また、スイッチ13A、スイッチ13B、スイッチ13Cがオフの期間中に、前記配線と直流電位(グランド、電源電圧も含む)との間に挿入されたスイッチ15をオンとすることで、あらかじめ、配線容量16上の電荷の交流成分を放電し、ゼロにしておく。配線容量16の容量値だけでは不十分な場合は、追加の容量として、容量素子を前記配線と任意の直流電位との間に挿入してもよい。
【0022】
なお、実施例1では、アナログデジタル乗算部12A〜12Cで始まりアナログ活性化関数回路14で終わる一まとまりの部分を「層」と呼ぶ。アナログデジタル乗算部12A、アナログデジタル乗算部12B、アナログデジタル乗算部12C、スイッチ13A、スイッチ13B、スイッチ13C、スイッチ15、配線容量16、及びアナログ活性化関数回路14は第1層に含まれる。
【0023】
すなわち、アナログ活性化関数回路14が出力するアナログ電圧は、第1層の第1の出力である。アナログ電圧である第1層の第1の出力は、第2層のアナログデジタル乗算部12Dに入力される。また、図示されていないが同様な構成で生成される第1層の第2の出力は、アナログデジタル乗算部12Eに入力される。また、同じく図示されていないが同様な構成で生成される第1層の第3の出力は、アナログデジタル乗算部12Fに入力される。以降、第1層と同様に第2層において積和演算と活性化関数処理が行われ、第3層に伝達される。実施例1のニューラルネットワーク回路に入力される多数のデジタル信号に対して、上記の処理が深い層まで行われ、最終層の各出力からAI認識結果が得られる。
【0024】
図3を参照して、アナログデジタル乗算部12A〜12Cの構成について説明する。
アナログデジタル乗算部12A〜12Cのアナログ入力電圧V
INは、スイッチ31を介して、出力ノードOUTに接続されている。スイッチ31はクロック信号φにもとづいてオン/オフが制御される。また、重み係数であるアナログデジタル乗算部12A〜12Cのデジタル入力信号は、1本または複数本のビット信号で表される。実施例1では4ビットの例を示している。
【0025】
アナログデジタル乗算部12A〜12Cは、4本のビット信号にそれぞれ対応するMOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35を備えている。これらはNMOSである。それぞれのMOSトランジスタは、そのソース端子とドレイン端子が出力ノードに接続され、さらに、そのゲート端子には、それぞれのビット信号にもとづく電圧が印加されている。
【0026】
すなわち、重み係数がW3,W2,W1,W0の4ビットのビット信号で表されている場合、MOSトランジスタ32のゲート端子には、クロック信号φとW3信号の論理積(AND)出力信号が印加される。また、MOSトランジスタ33のゲート端子には、クロック信号φとW2信号の論理積(AND)出力信号が印加される。また、MOSトランジスタ34のゲート端子には、クロック信号φと前記W1信号の論理積(AND)出力信号が印加される。さらに、MOSトランジスタ35のゲート端子には、クロック信号φとW0信号の論理積(AND)出力信号が印加される。
【0027】
MOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35のバックゲート端子は、DC電位であるグランド電位に接続されている。なお、これらのバックゲート端子をグランド電位以外の直流電位に接続してもよい。ここで、重み係数のW3,W2,W1,W0ビット信号による表現において、W3がMSB(Most Significant Bit)、W0がLSB(Least Significant Bit)である場合、MOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35の例えばゲート幅の比を8:4:2:1に選ぶとよい。
【0028】
図9を参照して、実施例1のニューラルネットワーク回路の動作について説明する。
図9のタイムチャートに示すように、
図1における初段のD/A変換器11A、D/A変換器11B、D/A変換器11Cのそれぞれのアナログ出力電圧は、
図9の最上部の波形のように変化している。これに対して、第1層に属する各アナログデジタル乗算部12A〜12Cのクロック信号φは、
図9の「第1層のφ」の波形となる。
【0029】
クロック信号φがハイ電圧の期間、
図3におけるスイッチ31はオンとなり、アナログ入力電圧V
IN、すなわち、
図9における「初段D/A変換の出力」が前記出力ノードOUT上に印加される。なお、前記期間中は、
図1におけるスイッチ13A、スイッチ13B、スイッチ13Cはオフとなっている。一方、スイッチ15はオンとなり、配線容量16上の電荷の交流成分を放電し、ゼロにする。
【0030】
上記の通り、MOSトランジスタ32のゲート端子には、クロック信号φとW3信号の論理積(AND)出力信号が印加される。MOSトランジスタ33のゲート端子には、クロック信号φとW2信号の論理積(AND)出力信号が印加される。MOSトランジスタ34のゲート端子には、クロック信号φとW1信号の論理積(AND)出力信号が印加される。MOSトランジスタ35のゲート端子には、クロック信号φとW0信号の論理積(AND)出力信号が印加される。
【0031】
このため、W3、W2、W1、W0ビット信号のうち、ハイ電圧(論理値=1)となっているビット信号に対応するMOSトランジスタのゲート電圧はハイ電圧、すなわち、電源電圧と等しい電圧となる。また、ロー電圧(論理値=0)となっているビット信号に対応するMOSトランジスタのゲート電圧はロー電圧、すなわち、グランド電位となっている。
【0032】
そのため、ハイ電圧となっているビット信号に対応するMOSトランジスタはオン状態となり、そのゲート端子と、ソース端子とドレイン端子との間に、ゲート幅に比例したチャネル容量が形成される。ソース端子とドレイン端子は、アナログ入力電圧V
INが印加されている出力ノードOUTに接続されている。このため、ハイ電圧となっているビット信号に対応するMOSトランジスタのチャネル容量には、アナログ入力電圧V
INとゲート幅の積に対応する電荷が充電される。一方、ロー電圧となっているビット信号に対応するMOSトランジスタはオフ状態となり、チャネル容量は形成されないため電荷も充電されない。
【0033】
以上から、クロック信号φがハイ電圧である期間中に、MOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35に充電される合計の電荷量は、V
IN*(8*W3+4*W2+2*W1+1*W0)に比例する。すなわち、アナログ入力電圧と重み係数の値の積に対応する電荷量となっている。
【0034】
なお、
図3におけるCPARA3、CPARA2、CPARA1、CPARA0は上記チャネル容量値、ゲートソース間の固定値のオーバーラップ容量値及びゲートドレイン間の固定値のオーバーラップ容量値の和であり、チャネル容量値は上記の通りその存否が制御される。また、
図3におけるCJ3、CJ2、CJ1、CJ0はMOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35の固定値の接合容量値である。本発明では、上記の通り存否を制御できるチャネル容量値が、固定のオーバーラップ容量値と接合容量値の総和よりも十分に大きいことが必要となるため、MOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35のゲート長を必要な程度に長くして、この条件を満足させる。
【0035】
クロック信号φがロー電圧の期間は、スイッチ31がオフとなり、アナログ入力電圧は出力ノードOUTから遮断される。上記の通り、MOSトランジスタ32のゲート端子には、クロック信号φとW3信号の論理積(AND)出力信号が印加される。MOSトランジスタ33のゲート端子には、クロック信号φと前記W2信号の論理積(AND)出力信号が印加される。MOSトランジスタ34のゲート端子には、クロック信号φとW1信号の論理積(AND)出力信号が印加される。MOSトランジスタ35のゲート端子には、クロック信号φとW0信号の論理積(AND)出力信号が印加される。このため、クロック信号φがロー電圧の期間は、MOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35のゲート電圧はいずれもロー電圧、すなわち、グランド電位となる。
【0036】
そのため、MOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35は、いずれもオフ状態となり、チャネル容量が消失する。このため、アナログ入力電圧と重み係数の値の積に対応する電荷量は、MOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35から出力ノードOUTに向けて電荷信号として放出される。
【0037】
第1層のクロック信号φがロー電圧の期間において、
図1におけるスイッチ13A、スイッチ13B、スイッチ13Cはオンとなる。それにより、アナログデジタル乗算部12A、アナログデジタル乗算部12B、アナログデジタル乗算部12Cの出力が互いに接続され、これらから放出される電荷信号が加算される。加算された電荷信号が配線容量16上に充電されることで、第一の積和電圧が生成される。なお、この期間において、スイッチ15はオフになっている。
【0038】
さらに、前記第1層のクロック信号φがロー電圧の期間において、アナログ活性化関数回路14は、第一の積和電圧に対して、活性化関数に相当する処理を施して、アナログ電圧として出力する。第2層のアナログデジタル乗算部12D、アナログデジタル乗算部12E、アナログデジタル乗算部12Fは、
図9における第2層のクロック信号φにより上記の動作を行う。
【0039】
第1層の各アナログデジタル乗算部が電荷の前記放出を行う期間中に、第2層の各アナログデジタル乗算部は電荷の前記充電を行う。このため、第2層のクロック信号φは第1層のクロック信号φに対して半周期ずらしている。同様に、第3層のクロック信号φは第2層のクロック信号φに対して半周期ずれていればよいため、第1層のクロック信号φと同じ波形となっている。
【0040】
このように、実施例1においては、MOSトランジスタのチャネル容量のオン/オフ特性を利用することで、一つのMOSトランジスタを容量素子とスイッチ素子に兼用し、電荷領域でアナログ積和演算を行っている。これにより、積和演算を小面積のアナログ回路で実現できるため、大規模なニューラルネットワーク回路をチップ上に集積できる。
【実施例2】
【0041】
図2を参照して、実施例2のニューラルネットワーク回路の構成について説明する。
図2に示すように、実施例2のニューラルネットワーク回路には多数のデジタル信号が入力される。多数のデジタル信号のうちの例えば3つの入力信号である入力1、入力2、入力3はそれぞれ、D/A変換器11A、D/A変換器11B、D/A変換器11Cによりアナログ電圧に変換される。それぞれのアナログ電圧は、アナログデジタル乗算部(アナデジ乗算部)12A、アナログデジタル乗算部(アナデジ乗算部)12B、アナログデジタル乗算部(アナデジ乗算部)12Cに入力される。
【0042】
アナログデジタル乗算部12A、アナログデジタル乗算部12B、アナログデジタル乗算部12Cには、それぞれ、デジタル信号である重み係数1、重み係数2、重み係数3も入力されている。アナログデジタル乗算部12Aは、D/A変換器11Aが出力するアナログ電圧と、デジタル信号である重み係数1との乗算結果に対応する第一の電荷信号を出力する。アナログデジタル乗算部12Bは、D/A変換器11Bが出力するアナログ電圧と、デジタル信号である前記重み係数2との乗算結果に対応する第二の電荷信号を出力する。アナログデジタル乗算部12Cは、D/A変換器11Cが出力するアナログ電圧と、デジタル信号である重み係数3との乗算結果に対応する第三の電荷信号を出力する。
【0043】
アナログデジタル乗算部12Aの出力はスイッチ13Aに接続される。アナログデジタル乗算部12Bの出力はスイッチ13Bに接続される。アナログデジタル乗算部12Cの出力はスイッチ13Cに接続される。スイッチ13A、スイッチ13B、スイッチ13Cがオンとなることで、アナログデジタル乗算部12A、アナログデジタル乗算部12B、アナログデジタル乗算部12Cのそれぞれの出力が互いに接続される。その結果、第一の電荷信号と第二の電荷信号と第三の電荷信号の和に対応する第一の積和電圧が生成される。
【0044】
さらに、スイッチ13A、スイッチ13B、スイッチ13Cの他端はA/D変換器21に接続されている。A/D変換器21は第一の積和電圧をデジタル値に変換する。A/D変換器21の出力はデジタル活性化関数回路22に接続されている。デジタル活性化関数回路22は、ステップ関数、または、シグモイド関数、またはReLUなど、ニューラルネットワークとして必要な活性化関数の演算を行うデジタル回路である。デジタル活性化関数回路22は、A/D変換器21から出力されるデジタル値に対して、必要な活性化関数に相当する処理を施して、デジタル値として出力する。デジタル活性化関数回路22の出力はD/A変換器11Dに接続される。D/A変換器11Dは、デジタル活性化関数回路22の出力をアナログ電圧に変換する。前記第一の積和電圧は、スイッチ13A、スイッチ13B、スイッチ13CからA/D変換器21に至る配線と、グランド、電源配線などとの間に形成される寄生容量、すなわち、配線容量16上に生成される。また、スイッチ13A、スイッチ13B、スイッチ13Cがオフの期間中に、前記配線と直流電位(グランド、電源電圧も含む)との間に挿入されたスイッチ15をオンとすることで、あらかじめ、配線容量16上の電荷の交流成分を放電し、ゼロにしておく。配線容量16の容量値だけでは不十分な場合は、追加の容量として、容量素子を前記配線と任意の直流電位との間に挿入してもよい。
【0045】
なお、実施例2では、アナログデジタル乗算部12A〜12Cで始まりD/A変換器11Dで終わる一まとまりの部分を「層」と呼ぶ。アナログデジタル乗算部12A、アナログデジタル乗算部12B、アナログデジタル乗算部12C、スイッチ13A、スイッチ13B、スイッチ13C、スイッチ15、配線容量16、A/D変換器21、デジタル活性化関数回路22、D/A変換器11Dは第1層に含まれる。
【0046】
すなわち、D/A変換器11Dが出力する前アナログ電圧は、第1層の第1の出力である。アナログ電圧である第1層の第1の出力は、第2層のアナログデジタル乗算部12Dに入力される。また、図示されていないが同様な構成で生成される第1層の第2の出力は、アナログデジタル乗算部12Eに入力される。また、同じく図示されていないが同様な構成で生成される第1層の第3の出力は、アナログデジタル乗算部12Fに入力される。
【0047】
以降、第1層と同様に第2層において積和演算と活性化関数処理が行われ、第3層に伝達される。実施例2のニューラルネットワーク回路に入力される多数のデジタル信号に対して、上記の処理が深い層まで行われ、最終層の各出力からAI認識結果が得られる。
【0048】
図10を参照して、実施例2のニューラルネットワーク回路の動作について説明する。
図10のタイムチャートに示すように、初段のD/A変換器11A、D/A変換器11B、D/A変換器11Cのそれぞれのアナログ出力電圧は、
図10の最上部の波形のように変化している。これに対して、第1層に属する各アナログデジタル乗算部の前記クロック信号φは
図10の「第1層のφ」の波形となる。
【0049】
実施例1と同様に、第1層に属する各アナログデジタル乗算部は、第1層のクロック信号φがハイ電圧の期間中、
図3におけるMOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35に、アナログデジタル乗算部に入力されるアナログ入力電圧と重み係数の積に対応する電荷が充電される。また、実施例1と同様に、第1層のクロック信号φがロー電圧の期間は、アナログデジタル乗算部の出力ノードに向けて電荷が放出される。
【0050】
実施例1と同様に、第1層のクロック信号φがロー電圧の期間において、
図2におけるスイッチ13A、スイッチ13B、スイッチ13Cはオンとなる。それにより、アナログデジタル乗算部12A、アナログデジタル乗算部12B、アナログデジタル乗算部12Cの出力が互いに接続され、これらから放出される前記電荷信号が加算される。加算された電荷信号が配線容量16上に充電されることで、第一の積和電圧が生成される。
【0051】
なお、第1層のクロック信号φがロー電圧の期間において、スイッチ15はオフになっている。
【0052】
さらに、第1層のクロック信号φがロー電圧の期間において、A/D変換器21は第一の積和電圧に対するA/D変換を行い、例えば、第1層のクロック信号φがハイ電圧になるタイミングでA/D変換の結果を出力する。また、A/D変換器21の後段のデジタル活性化関数回路22とD/A変換器11Dは、前記タイミングに呼応して動作し、それぞれの出力が更新される。第2層のアナログデジタル乗算部12D、アナログデジタル乗算部12E、アナログデジタル乗算部12Fは、
図10における第2層のクロック信号φにより上記の動作を行う。
【0053】
実施例2では、前記D/A変換器11Dの更新された出力を受けるために、第2層のクロック信号φを第1層のクロック信号φと同じ波形の信号としている。同様に、第3層以下のクロック信号φも第1層のクロック信号φと同じ波形の信号を適用できる。
【0054】
このように、実施例2によれば、MOSトランジスタのチャネル容量のオン/オフ特性を利用することで、一つのMOSトランジスタを容量素子とスイッチ素子に兼用し、電荷領域でアナログ積和演算を行っている。これにより、積和演算を小面積のアナログ回路で実現できるため、大規模なニューラルネットワーク回路をチップ上に集積できる。
【0055】
さらに、実施例2では、実施例1と比較して、A/D変換器21、D/A変換器11Dが必要であるが、活性化関数回路にデジタル回路を適用できるため、演算の精度がより高くなる。
【実施例3】
【0056】
図4を参照して、実施例3のアナログデジタル乗算部12A〜12Cの構成について説明する。
実施例3では、
図3のアナログデジタル乗算部における各MOSトランジスタを、NMOSからPMOSに置換している。PMOSとすることで1/f雑音の影響を低減することができる。
【0057】
図4に示すように、アナログデジタル乗算部のアナログ入力電圧V
INは、スイッチ41を介して、出力ノードOUTに接続されている。スイッチ41はクロック信号φにもとづいてオン/オフが制御される。また、重み係数であるアナログデジタル乗算部のデジタル入力信号は、1本または複数本のビット信号で表される。実施例3では4ビットの例を示している。
【0058】
アナログデジタル乗算部は、4本のビット信号にそれぞれ対応するPMOSトランジスタ42、PMOSトランジスタ43、PMOSトランジスタ44、PMOSトランジスタ45を備えている。それぞれのPMOSトランジスタは、そのソース端子とドレイン端子が出力ノードOUTに接続されている。ゲート端子には、それぞれのビット信号にもとづく電圧が印加されている。
【0059】
すなわち、重み係数がW3,W2,W1,W0の4ビットのビット信号で表されている場合、PMOSトランジスタ42のゲート端子には、クロック信号φの反転信号とW3信号の反転信号の論理和(OR)出力信号が印加される。PMOSトランジスタ43のゲート端子には、クロック信号φの反転信号とW2信号の反転信号の論理和(OR)出力信号が印加される。PMOSトランジスタ44のゲート端子には、クロック信号φの反転信号とW1信号の反転信号の論理和(OR)出力信号が印加される。PMOSトランジスタ45のゲート端子には、クロック信号φの反転信号とW0信号の反転信号の論理和(OR)出力信号が印加されている。
【0060】
PMOSトランジスタ42、PMOSトランジスタ43、PMOSトランジスタ44、PMOSトランジスタ45のバックゲート端子は、DC電位として電源電圧(VDD)に接続されている。なお、これらのバックゲート端子を電源電圧以外の直流電位に接続してもよい。
【0061】
ここで、重み係数の前記W3,W2,W1,W0ビット信号による表現において、W3がMSB(Most Significant Bit)、W0がLSB(Least Significant Bit)である場合、PMOSトランジスタ42、PMOSトランジスタ43、PMOSトランジスタ44、PMOSトランジスタ45の例えばゲート幅の比を8:4:2:1に選ぶとよい。
【0062】
前記クロック信号φがハイ電圧の期間、
図4におけるスイッチ41はオンとなり、アナログ入力電圧V
INが出力ノードOUT上に印加される。また、上記の通り、PMOSトランジスタ42のゲート端子には、前記クロック信号φの反転信号とW3信号の反転信号の論理和(OR)出力信号が印加される。PMOSトランジスタ43のゲート端子には、クロック信号φの反転信号とW2信号の反転信号の論理和(OR)出力信号が印加される。PMOSトランジスタ44のゲート端子には、クロック信号φの反転信号とW1信号の反転信号の論理和(OR)出力信号が印加される。PMOSトランジスタ45のゲート端子には、クロック信号φの反転信号とW0信号の反転信号の論理和(OR)出力信号が印加される。
【0063】
このため、前記W3、W2、W1、W0ビット信号のうち、ハイ電圧(論理値=1)となっているビット信号に対応する前記PMOSトランジスタのゲート電圧はロー電圧、すなわち、グランド電位となり、ロー電圧(論理値=0)となっているビット信号に対応するPMOSトランジスタのゲート電圧はハイ電圧、すなわち電源電圧と等しい電圧となっている。
【0064】
そのため、前記ハイ電圧となっているビット信号に対応するPMOSトランジスタはオン状態となり、そのゲート端子と、前記接続されたソース端子とドレイン端子との間に、ゲート幅に比例したチャネル容量が形成される。接続されたソース端子とドレイン端子は、アナログ入力電圧V
INが印加されている出力ノードOUTに接続されている。このため、前記ハイ電圧となっているビット信号に対応するPMOSトランジスタのチャネル容量には、アナログ入力電圧V
INとゲート幅の積に対応する電荷が充電される。一方、ロー電圧となっているビット信号に対応するPMOSトランジスタはオフ状態となり、チャネル容量は形成されないため電荷も充電されない。
【0065】
以上から、クロック信号φがハイ電圧である期間中に、PMOSトランジスタ42、PMOSトランジスタ43、PMOSトランジスタ44、PMOSトランジスタ45に充電される合計の電荷量は、V
IN*(8*W3+4*W2+2*W1+1*W0)に比例する。すなわち、アナログ入力電圧と重み係数の値の積に対応する電荷量となっている。
【0066】
なお、
図4におけるCPARA3、CPARA2、CPARA1、CPARA0は、チャネル容量値、ゲートソース間の固定値のオーバーラップ容量値及びゲートドレイン間の固定値のオーバーラップ容量値の和である。チャネル容量値は上記の通り、その存否が制御される。また、
図4におけるCJ3、CJ2、CJ1、CJ0はMOSトランジスタ42、MOSトランジスタ43、MOSトランジスタ44、MOSトランジスタ45の固定値の接合容量値である。本発明では、上記の通り存否を制御できるチャネル容量値が、固定のオーバーラップ容量値と接合容量値の総和よりも十分に大きいことが必要となるため、MOSトランジスタ42、MOSトランジスタ43、MOSトランジスタ44、MOSトランジスタ45のゲート長を必要な程度に長くして、この条件を満足させる。
【0067】
クロック信号φがロー電圧の期間は、スイッチ41がオフとなり、アナログ入力電圧は出力ノードOUTから遮断される。また、上記の通り、PMOSトランジスタ42のゲート端子には、クロック信号φの反転信号とW3信号の反転信号の論理和(OR)出力信号が印加される。PMOSトランジスタ43のゲート端子には、クロック信号φの反転信号とW2信号の反転信号の論理和(OR)出力信号が印加される。PMOSトランジスタ44のゲート端子には、クロック信号φの反転信号とW1信号の反転信号の論理和(OR)出力信号が印加される。PMOSトランジスタ45のゲート端子には、クロック信号φの反転信号とW0信号の反転信号の論理和(OR)出力信号が印加される。
【0068】
このため、クロック信号φがロー電圧の期間は、PMOSトランジスタ42、PMOSトランジスタ43、PMOSトランジスタ44、PMOSトランジスタ45のゲート電圧はいずれも電源電圧となる。そのため、PMOSトランジスタ42、PMOSトランジスタ43、PMOSトランジスタ44、PMOSトランジスタ45は、いずれもオフ状態となり、チャネル容量が消失する。このため、アナログ入力電圧と重み係数の値の積に対応する電荷量は、PMOSトランジスタ42、PMOSトランジスタ43、PMOSトランジスタ44、PMOSトランジスタ45から出力ノードOUTに向けて電荷信号として放出される。それ以外の動作は実施例1や実施例2と同様であるため、その説明は省略する。
【0069】
実施例3では、MOSトランジスタのチャネル容量のオン/オフ特性を利用することで、一つのMOSトランジスタを容量素子とスイッチ素子に兼用し、電荷領域でアナログ積和演算を行っている。これにより、積和演算を小面積のアナログ回路で実現できるため、大規模なニューラルネットワーク回路をチップ上に集積できる。
【実施例4】
【0070】
図5を参照して、実施例4のアナログデジタル乗算部12A〜12Cの構成について説明する。
図5に示すように、実施例4では、
図3のアナログデジタル乗算部を差動回路構成としている。すなわち、アナログ入力電圧V
INは、正側入力電圧V
INPと負側入力電圧V
INNの差の電圧である。正側入力電圧V
INPは、正側の出力ノードOUT
Pに正側のスイッチ31Pを介して接続される。正側のそれぞれのMOSトランジスタ32P、33P、34P、35Pのソース端子とドレイン端子が、正側の出力ノードOUT
Pに接続されている。
【0071】
また、負側入力電圧V
INNは、負側の出力ノードOUT
Nに負側のスイッチ31Nを介して接続されている。負側のそれぞれのMOSトランジスタ32N、33N、34N、35Nのソース端子とドレイン端子が負側の出力ノードOUT
Nに接続されている。また、MOSトランジスタ32Pと32N、MOSトランジスタ33Pと33N、MOSトランジスタ34Pと34N、MOSトランジスタ35Pと35Nには、それぞれのビット信号にもとづく電圧が印加されている。
【0072】
すなわち、重み係数がW3,W2,W1,W0の4ビットのビット信号で表されている場合、MOSトランジスタ32P、32Nのゲート端子には、クロック信号φとW3信号の論理積(AND)出力信号が印加される。MOSトランジスタ33P、33Nのゲート端子には、クロック信号φとW2信号の論理積(AND)出力信号が印加される。MOSトランジスタ34P、34Nのゲート端子には、前記クロック信号φと前記W1信号の論理積(AND)出力信号が印加される。MOSトランジスタ35P、35Nのゲート端子には、クロック信号φとW0信号の論理積(AND)出力信号が印加されている。
【0073】
MOSトランジスタ32P、32N、前記MOSトランジスタ33P、33N、前記MOSトランジスタ34P、34N、前記MOSトランジスタ35P、35Nのバックゲート端子は、DC電位としてグランド電位に接続されている。なお、これらのバックゲート端子をグランド電位以外の直流電位に接続してもよい。
【0074】
ここで、重み係数の前記W3, W2, W1, W0ビット信号による表現において、W3がMSB(Most Significant Bit)、W0がLSB(Least Significant Bit)である場合、MOSトランジスタ32P、32N、MOSトランジスタ33P、33N、MOSトランジスタ34P、34N、MOSトランジスタ35P、35Nの例えばゲート幅の比を8:4:2:1に選ぶとよい。
【0075】
以上の差動回路構成において、実施例1における
図3の説明と同様な動作を行い、クロック信号φがロー電圧である期間に、正側の出力ノードOUT
Pには、V
INP*(8*W3+4*W2+2*W1+1*W0)に対応する電荷が放出される。負側の出力ノードOUT
Nには、V
INN*(8*W3+4*W2+2*W1+1*W0)に対応する電荷が放出される。実施例4のアナログデジタル乗算部の出力信号は、正側の出力ノードOUT
Pに放出される電荷と負側の出力ノードOUT
Nに放出される電荷の差分であるため、V
IN*(8*W3+4*W2+2*W1+1*W0)に対応する電荷となる。
【0076】
実施例4では、クロック信号φによるオーバーラップ容量の充放電にともなう電荷(クロックフィードスルーと呼ばれる電荷)の影響が差動間でキャンセルされて出力信号に現れない。すなわち、実際に正側の出力ノードOUT
Pに放出される電荷はV
INP*(8*W3+4*W2+2*W1+1*W0)に対応する成分以外に、クロック信号φによるオーバーラップ容量の充放電にともなう電荷も含んでいる。また、実際に負側の出力ノードOUT
Nに放出される電荷はV
INN*(8*W3+4*W2+2*W1+1*W0)に対応する成分以外に、クロック信号φによるオーバーラップ容量の充放電にともなう電荷も含んでいる。
【0077】
しかし、クロック信号φによるオーバーラップ容量の充放電にともなう電荷は、正側の出力ノードOUT
Pに放出される電荷と負側の出力ノードOUT
Nに放出される電荷に同量含まれる。このため、これらの差分であるアナログデジタル乗算部の出力信号には、キャンセルされて現れない。
【実施例5】
【0078】
図6を参照して、実施例5のアナログデジタル乗算部12A〜12Cの構成について説明する。
実施例5では、
図4のPMOS型アナログデジタル乗算部を差動回路構成としている。すなわち、アナログ入力電圧V
INは、正側入力電圧V
INPと負側入力電圧V
INNの差の電圧である。正側入力電圧V
INPは、正側の出力ノードOUT
Pに正側のスイッチ41Pを介して接続されている。また、正側のそれぞれのPMOSトランジスタ42P、43P、44P、45Pのソース端子とドレイン端子が正側の出力ノードOUT
Pに接続されている。
【0079】
負側入力電圧V
INNは、負側の出力ノードOUT
Nに負側のスイッチ41Nを介して接続されている。負側のそれぞれのPMOSトランジスタ42N、43N、44N、45Nのソース端子とドレイン端子が負側の出力ノードOUT
Nに接続されている。
【0080】
PMOSトランジスタ42Pと42N、PMOSトランジスタ43Pと43N、PMOSトランジスタ44Pと44N、PMOSトランジスタ45Pと45Nには、それぞれのビット信号にもとづく電圧が印加されている。すなわち、重み係数がW3,W2,W1,W0の4ビットのビット信号で表されている場合、PMOSトランジスタ42P、42Nのゲート端子には、クロック信号φの反転信号と前記W3信号の反転信号の論理和(OR)出力信号が印加される。PMOSトランジスタ43P、43Nのゲート端子には、前記クロック信号φの反転信号と前記W2信号の反転信号の論理和(OR)出力信号が印加される。
【0081】
PMOSトランジスタ44P、44Nのゲート端子には、クロック信号φの反転信号とW1信号の反転信号の論理和(OR)出力信号が印加される。PMOSトランジスタ45P、45Nのゲート端子には、クロック信号φの反転信号とW0信号の反転信号の論理和(OR)出力信号が印加される。また、PMOSトランジスタ42P、42N、PMOSトランジスタ43P、43N、PMOSトランジスタ44P、44N、PMOSトランジスタ45P、45Nのバックゲート端子は電源電圧に接続されている。
【0082】
なお、これらのバックゲート端子を電源電圧以外の直流電位に接続してもよい。ここで、重み係数の前記W3,W2,W1,W0ビット信号による表現において、W3がMSB(Most Significant Bit)、W0がLSB(Least Significant Bit)である場合、PMOSトランジスタ42P、42N、PMOSトランジスタ43P、43N、PMOSトランジスタ44P、44N、PMOSトランジスタ45P、45Nの例えばゲート幅の比を8:4:2:1に選ぶとよい。
【0083】
以上の差動回路構成において、実施例3における
図4の説明と同様な動作を行い、クロック信号φがロー電圧である期間に、正側の出力ノードOUT
Pには、V
INP*(8*W3+4*W2+2*W1+1*W0)に対応する電荷が放出される。負側の出力ノードOUT
Nには、V
INN*(8*W3+4*W2+2*W1+1*W0)に対応する電荷が放出される。実施例5のアナログデジタル乗算部の出力信号は、正側の出力ノードOUT
Pに放出される電荷と負側の出力ノードOUT
Nに放出される前記電荷の差分であるため、V
IN*(8*W3+4*W2+2*W1+1*W0)に対応する電荷となる。
【0084】
実施例5では、実施例4と同様に、クロック信号φの反転信号によるオーバーラップ容量の充放電にともなう電荷(クロックフィードスルーと呼ばれる電荷)の影響が差動間でキャンセルされて出力信号に現れない。すなわち、実際に正側の出力ノードOUT
Pに放出される電荷はV
INP*(8*W3+4*W2+2*W1+1*W0)に対応する成分以外に、クロック信号φの反転信号によるオーバーラップ容量の充放電にともなう電荷も含んでいる。また、実際に負側の出力ノードOUT
Nに放出される電荷はV
INN*(8*W3+4*W2+2*W1+1*W0)に対応する成分以外に、クロック信号φの反転信号によるオーバーラップ容量の充放電にともなう電荷も含んでいる。
【0085】
しかし、クロック信号φの反転信号によるオーバーラップ容量の充放電にともなう電荷は、正側の出力ノードOUT
Pに放出される電荷と負側の出力ノードOUT
Nに放出される電荷に同量含まれるため、これらの差分であるアナログデジタル乗算部の出力信号には、キャンセルされて現れない。
【実施例6】
【0086】
図7を参照して、実施例6のアナログデジタル乗算部12A〜12Cの構成について説明する。
実施例6では、
図5の実施例4に対して、スイッチ71Pとスイッチ71Nを追加することで、負の重み係数に対する乗算を可能にしている。スイッチ71Pは、負側入力電圧V
INNと正側の出力ノードOUT
Pの間に挿入され、スイッチ71Nは、正側入力電圧V
INPと負側の出力ノードOUT
Nの間に挿入されている。
【0087】
以上の構成において、正側入力電圧V
INPと負側入力電圧V
INNの差の電圧であるアナログ入力電圧V
INと、正の重み係数の乗算を行う場合は、クロック信号φがハイ電圧である期間に、上記の通り、スイッチ31Pとスイッチ31Nをオンにして、スイッチ71Pとスイッチ71Nをオフにする。その結果、アナログデジタル乗算部の出力信号はV
IN*(8*W3+4*W2+2*W1+1*W0)に対応する電荷となる。
【0088】
一方、前記アナログ入力電圧V
INと負の重み係数の乗算を行う場合は、前記クロック信号φがハイ電圧である期間に、スイッチ31Pとスイッチ31Nをオフにして、スイッチ71Pとスイッチ71Nはオンにする。その結果、正側のMOSトランジスタ32P、33P、34P、35Pには負側入力電圧V
INNに対応する電荷が充電される。また、負側のMOSトランジスタ32N、33N、34N、35Nには正側入力電圧V
INPに対応する電荷が充電される。
【0089】
したがって、クロック信号φがロー電圧である期間に、正側の出力ノードOUT
Pには、V
INN*(8*W3+4*W2+2*W1+1*W0)に対応する電荷が放出される。負側の出力ノードOUT
Nには、V
INP*(8*W3+4*W2+2*W1+1*W0)に対応する電荷が放出される。アナログデジタル乗算部の出力信号は、正側の出力ノードOUT
Pに放出される電荷と負側の出力ノードOUT
Nに放出される電荷の差分であるため、−V
IN*(8*W3+4*W2+2*W1+1*W0)に対応する電荷となる。これは、V
IN*{−(8*W3+4*W2+2*W1+1*W0)}と等しいため、アナログ入力電圧と負の重み係数の乗算が行われたことになる。
【0090】
実施例6では、以上の通り、負の重み係数との乗算を実現でき、かつ、実施例4と同様に、クロック信号φによるオーバーラップ容量の充放電にともなう電荷の影響をキャンセルできる。
【実施例7】
【0091】
図8を参照して、実施例7のアナログデジタル乗算部12A〜12Cの構成について説明する。
【0092】
実施例7は、実施例6において、実施例3で説明したPMOS型のアナログデジタル乗算部を適用している。したがって、動作や効果はこれらの実施例と同様であるため、その説明は省略する。
【実施例8】
【0093】
図11を参照して、実施例8のアナログデジタル乗算部12A〜12Cの構成について説明する。
実施例8では、
図3のアナログデジタル乗算部における各MOSトランジスタのゲート端子と、ソース端子とドレイン端子への接続を入れ換えている。
【0094】
すなわち、アナログデジタル乗算部のアナログ入力電圧V
INは、スイッチ31を介して、出力ノードOUTに接続されている。スイッチ31はクロック信号φにもとづいてオン/オフが制御される。また、重み係数であるアナログデジタル乗算部のデジタル入力信号は、1本または複数本のビット信号で表される。実施例8では4ビットの例を示している。
【0095】
アナログデジタル乗算部は、4本のビット信号にそれぞれ対応するMOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35を備えている。それぞれのMOSトランジスタは、そのゲート端子が出力ノードOUTに接続され、さらに、そのソース端子とドレイン端子が接続されて、それぞれのビット信号にもとづく電圧が印加されている。
【0096】
すなわち、重み係数がW3,W2,W1,W0の4ビットのビット信号で表されている場合、MOSトランジスタ32のソース端子とドレイン端子には、クロック信号φの反転信号とW3信号の反転信号の論理和(OR)出力信号が印加される。MOSトランジスタ33のソース端子とドレイン端子には、クロック信号φの反転信号とW2信号の反転信号の論理和(OR)出力信号が印加される。MOSトランジスタ34のソース端子とドレイン端子には、クロック信号φの反転信号とW1信号の反転信号の論理和(OR)出力信号が印加される。MOSトランジスタ35のソース端子とドレイン端子には、クロック信号φの反転信号とW0信号の反転信号の論理和(OR)出力信号が印加される。
【0097】
また、MOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35のバックゲート端子は、DC電位としてグランド電位に接続されている。なお、これらのバックゲート端子をグランド電位以外の直流電位に接続してもよい。ここで、重み係数の前記W3,W2,W1,W0ビット信号による表現において、W3がMSB(Most Significant Bit)、W0がLSB(Least Significant Bit)である場合、MOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35の例えばゲート幅の比を8:4:2:1に選ぶとよい。
【0098】
クロック信号φがハイ電圧の期間、
図11におけるスイッチ31はオンとなり、アナログ入力電圧V
INが出力ノードOUT上に印加される。また、上記の通り、MOSトランジスタ32のソース端子とドレイン端子には、クロック信号φの反転信号とW3信号の反転信号の論理和(OR)出力信号が印加される。MOSトランジスタ33のソース端子とドレイン端子には、クロック信号φの反転信号とW2信号の反転信号の論理和(OR)出力信号が印加される。MOSトランジスタ34のソース端子とドレイン端子には、クロック信号φの反転信号とW1信号の反転信号の論理和(OR)出力信号が印加される。MOSトランジスタ35のソース端子とドレイン端子には、クロック信号φの反転信号とW0信号の反転信号の論理和(OR)出力信号が印加される。
【0099】
このため、W3、W2、W1、W0ビット信号のうち、ハイ電圧(論理値=1)となっているビット信号に対応するMOSトランジスタのソース端子とドレイン端子はロー電圧、すなわち、グランド電位となり、ロー電圧(論理値=0)となっているビット信号に対応するMOSトランジスタのソース端子とドレイン端子はハイ電圧、すなわち電源電圧と等しい電圧となっている。
【0100】
そのため、ハイ電圧となっているビット信号に対応するMOSトランジスタはオン状態となり、そのゲート端子と、ソース端子とドレイン端子との間に、ゲート幅に比例したチャネル容量が形成される。ゲート端子は、アナログ入力電圧V
INが印加されている出力ノードOUTに接続されているため、ハイ電圧となっているビット信号に対応するMOSトランジスタのチャネル容量には、アナログ入力電圧V
INとゲート幅の積に対応する電荷が充電される。一方、ロー電圧となっているビット信号に対応するMOSトランジスタはオフ状態となり、チャネル容量は形成されないため、電荷も充電されない。
【0101】
以上から、前記クロック信号φがハイ電圧である期間中に、MOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35に充電される合計の電荷量は、V
IN*(8*W3+4*W2+2*W1+1*W0)に比例する。すなわち、前記アナログ入力電圧と前記重み係数の値の積に対応する電荷量となっている。
【0102】
なお、
図11におけるCPARA3、CPARA2、CPARA1、CPARA0は、チャネル容量値、ゲートソース間の固定値のオーバーラップ容量値およびゲートドレイン間の固定値のオーバーラップ容量値の和であり、チャネル容量値は上記の通り、その存否が制御される。本発明では、上記の通り存否を制御できるチャネル容量値が、固定のオーバーラップ容量値の総和よりも十分に大きいことが必要となるため、MOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35のゲート長を必要な程度に長くして、この条件を満足させる。なお、本構成では、アナログ入力電圧V
INがMOSトランジスタの接合容量に充電されないため、接合容量には影響されない利点がある。
【0103】
クロック信号φがロー電圧の期間は、スイッチ31がオフとなり、アナログ入力電圧は出力ノードOUTから遮断される。また、上記の通り、MOSトランジスタ32のソース端子とドレイン端子には、クロック信号φの反転信号とW3信号の反転信号の論理和(OR)出力信号が印加される。MOSトランジスタ33のソース端子とドレイン端子には、クロック信号φの反転信号とW2信号の反転信号の論理和(OR)出力信号が印加される。MOSトランジスタ34のソース端子とドレイン端子には、クロック信号φの反転信号とW1信号の反転信号の論理和(OR)出力信号が印加される。MOSトランジスタ35のソース端子とドレイン端子には、クロック信号φの反転信号とW0信号の反転信号の論理和(OR)出力信号が印加される。
【0104】
このため、クロック信号φがロー電圧の期間は、MOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35のソース端子とドレイン端子はいずれも電源電圧が印加される。そのため、MOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35は、いずれもオフ状態となり、チャネル容量が消失する。このため、アナログ入力電圧と重み係数の値の積に対応する電荷量は、MOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35から出力ノードOUTに向けて電荷信号として放出される。それ以外の動作は実施例1や実施例2と同様であるためその説明は省略する。
【0105】
実施例8では、MOSトランジスタのチャネル容量のオン/オフ特性を利用することで、一つのMOSトランジスタを容量素子とスイッチ素子に兼用し、電荷領域でアナログ積和演算を行っている。これにより、積和演算を小面積のアナログ回路で実現できるため、大規模なニューラルネットワーク回路をチップ上に集積できる。