(57)【特許請求の範囲】
【請求項１】
ｎ個（ｎは正整数）の入力信号と１個の制御信号とが入力される（ｎ＋１）個のプリインバータと、
前記（ｎ＋１）個のプリインバータの全ての出力信号とｎ個の入力信号とが入力されるメインインバータとを具備するニューロンＭＯＳ回路であって、
前記メインインバータのフローティングゲートと前記プリインバータの出力端子との間の（ｎ＋１）個の容量値は互いに等しく設定され、
前記フローティングゲートと前記ｎ個の入力信号が入力される端子との間のｎ個の容量値は互いに等しく設定されている
ことを特徴とするニューロンＭＯＳ回路。
【請求項２】
請求項１に記載のニューロンＭＯＳ回路において、
前記メインインバータのフローティングゲートと前記プリインバータの出力端子との間の（ｎ＋１）個の容量値と、前記フローティングゲートと前記ｎ個の入力信号が入力される端子との間のｎ個の容量値とが互いに等しく設定されている
ことを特徴とするニューロンＭＯＳ回路。
【請求項３】
請求項１に記載のニューロンＭＯＳ回路において、
前記（ｎ＋１）個のプリインバータのうちの第ｉ番目のプリインバータ（１≦ｉ≦ｎ＋１、ｉは整数）の出力信号の状態が、（ｎ＋１−ｉ）入力状態の前後で変化する
ことを特徴とするニューロンＭＯＳ回路。
【請求項４】
請求項３に記載のニューロンＭＯＳ回路において、
前記（ｎ＋１）個のプリインバータのうちの第ｉ番目のプリインバータ（１≦ｉ≦ｎ＋１、ｉは整数）の閾値ｘｐｖｔｈ．ｉｊ（ｊは制御信号の状態に対応する値であり、１または０）が、第ｉ番目のプリインバータに入力される制御信号の状態に依存して、（ｎ＋１−ｉ）入力状態の前後の値である
ことを特徴とするニューロンＭＯＳ回路。
【請求項５】
請求項１に記載のニューロンＭＯＳ回路において、
前記メインインバータのフローティングゲートと（ｎ＋１）個のプリインバータの出力端子及びｎ個の入力信号が入力される端子との間の容量値の総和に対する当該フローティングゲートとプリインバータの出力端子との間の容量値の比をａとし、前記容量値の総和に対する前記フローティングゲートと前記入力信号が入力される端子との間の容量値の比をｂとした時、ａ，ｂが
（ｎ−１）／（２ｎ２）＜ａ＜１／２ｎ，
１／｛２（ｎ＋１）｝＜ｂ＜１／２ｎ
を満たす値に設定され、
前記メインインバータの規格化フローティングゲートに対する閾値Ｖｔｈが、ｎ／（２ｎ＋１）＜Ｖｔｈ＜（ｎ＋１）／（２ｎ＋１）を満たす値に設定されている
ことを特徴とするニューロンＭＯＳ回路。
【請求項６】
請求項５に記載のニューロンＭＯＳ回路において、
前記ａ，ｂ，Ｖｔｈが、
（ａ，ｂ，Ｖｔｈ）＝｛１／（２ｎ＋１），１／（２ｎ＋１），１／２｝
に設定されている
ことを特徴とするニューロンＭＯＳ回路。
【請求項７】
請求項１に記載のニューロンＭＯＳ回路において、
前記入力信号のＨｉｇｈ  Ｌｅｖｅｌの数である入力状態に応じて、（ｎ＋１）個の前記制御信号のうち１つの制御信号の状態を選択する機能を有する
ことを特徴とするニューロンＭＯＳ回路。
【請求項８】
ｎ個（ｎは正整数）の入力信号と１個の制御信号とが入力される（ｎ＋１）
のプリインバータと
前記（ｎ＋１）個のプリインバータの全ての出力信号とｎ個の入力信号とが
力されるメインインバータとを具備するニューロンＭＯＳ回路による対称関数生成方法であって、
前記メインインバータのフローティングゲートと前記プリインバータの出力端子との間の（ｎ＋１）個の容量値を互いに等しく設定する手順と、
前記フローティングゲートと前記ｎ個の入力信号が入力される端子との間のｎ個の容量値を互いに等しく設定する手順とを有する
ことを特徴とするニューロンＭＯＳ回路による対称関数生成方法。
【請求項９】
請求項８に記載のニューロンＭＯＳ回路による対称関数生成方法において、
前記メインインバータのフローティングゲートと（ｎ＋１）個のプリインバータの出力端子及びｎ個の入力信号が入力される端子との間の容量値の総和に対する当該フローティングゲートとプリインバータの出力端子との間の容量値の比をａとし、前記容量値の総和に対する前記フローティングゲートと前記入力信号が入力される端子との間の容量値の比をｂとした時、
ａ，ｂを
（ｎ−１）／２ｎ２＜ａ＜１／２ｎ，
１／｛２（ｎ＋１）｝＜ｂ＜１／２ｎを満たす値に設定する手順と、
前記メインインバータの規格化フローティングゲートに対する閾値Ｖｔｈを、
ｎ／（２ｎ＋１）＜Ｖｔｈ＜（ｎ＋１）／（２ｎ＋１）
を満たす値に設定する手順とを有する
ことを特徴とするニューロンＭＯＳ回路による対称関数生成方法。
【請求項１０】
請求項９に記載のニューロンＭＯＳ回路による対称関数生成方法において、
更に、
前記（ｎ＋１）個のプリインバータのうちの第ｉ番目のプリインバータ（１≦ｉ≦ｎ＋１、ｉは整数）の出力信号の状態を、（ｎ＋１−ｉ）入力状態の前後で変化するように設定する手順とを有する
ことを特徴とするニューロンＭＯＳ回路による対称関数生成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ニューロンＭＯＳトランジスタで構成されたＭＯＳ回路とその設計方法とに係わり、特に、対称関数をニューロンＭＯＳ回路で実現する際の設計方法と対称関数ニューロンＭＯＳ回路とその入力回路に関するものである。
【０００２】
【従来の技術】
多入力信号の積和演算と閾値論理処理を単体デバイスで行うことが可能であるニューロンＭＯＳトランジスタが提案されている。例として、文献１「Ｔａｄａｓｈｉ  Ｓｈｉｂａｔａ  ａｎｄ  Ｔａｄａｈｉｒｏ  Ｏｈｍｉ，Ａ  Ｆｕｎｃｔｉｏｎａ１  ＭＯＳ  Ｔｒａｎｓｉｓｔｏｒ  Ｆｅａｔｕｒｉｎｇ  Ｇａｔｅ−Ｌｅｖｅ１  Ｗｅｉｇｈｔｅｄ  Ｓｕｍ  ａｎｄ  Ｔｈｒｅｓｈｏ１ｄ  Ｏｐｅｒａｔｉｏｎｓ，ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｅ１ｅｃｔｒｏｎ  Ｄｅｖｉｃｅｓ，Ｖｏ１．３９，Ｎｏ．６，ｐｐ．１４４４−１４５５，１９９２」がある。このニューロンＭＯＳトランジスタを用いて構成したニューロンＭＯＳ回路は、生体ニューロンのモデルの１つであるマカロック・ピッツニューロンモデル（文献２「Ｗ．Ｓ．ＭｃＣｕ１１ｏｃｈ  ａｎｄ  Ｗ．Ａ．Ｐｉｔｔｓ，“Ａ  Ｌｏｇｉｃａｌ  Ｃａ１ｃｕｌｕｓ  ｏｆ  ｔｈｅ  ＩｄｅａｓＩｍｍａｎｅｎｔ  ｉｎ  Ｎｅｕｒａ１  Ｎｅｔｓ”，Ｂｕ１１．Ｍａｔｈ．Ｂｉｏｐｈｙ．，Ｖｏ１．５，ｐｐ．１１５−１３３，１９４３」）に対応するデバイスとしてニューラルネットワークＬＳＩへの応用が期待されているだけでなく、画像処理用デバイスなど様々な応用の可能性を持っている。その応用の一つとして可変論理回路がある。可変論理回路については、２つの入力変数に対して、３つの多値制御信号を用いてブール関数が生成可能であること、及び、８つの入力変数によって構成可能な対称関数を９つの２値制御信号を持つ１０個のニューロンＭＯＳインバータと標準的なＣＭＯＳインバータ回路で作製可能であることが示されている。例として、文献３「Ｔａｄａｓｈｉ  Ｓｈｉｂａｔａ，Ｋｏｊｉ  Ｋｏｔａｎｉ  ａｎｄ  Ｔａｄａｈｉｒｏ  Ｏｈｍｉ，Ｒｅａｌ−Ｔｉｍｅ  Ｒｅｃｏｎｆｉｇｕｒａｂ１ｅ  Ｌｏｇｉｃ  Ｃｉｒｃｕｉｔｓ  Ｕｓｉｎｇ  Ｎｅｕｒｏｎ  ＭＯＳＴｒａｎｓｉｓｔｏｒｓ，ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａ１  Ｓｏ１ｉｄ−Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ  Ｃｏｎｆｅｒｅｎｃｅ，ＦＡ１５．３，ｐｐ．２３８−２３９，１９９３」がある。しかしながら、任意の正整数ｎに対する対称関数及び全ブール関数をニューロンＭＯＳ回路を用いて表現する汎用的方法はまだ提案されていない。
【０００３】
【発明が解決しようとする課題】
上記のように、特定の場合についてはニューロンＭＯＳ回路による実現性が確認されているが、任意の正の整数ｎに対する一般的な場合については未だ成功していない。本発明の目的とするところは、上記未解決の問題点を解決し、ブール関数中で特に対称関数について、任意の正の整数ｎに対する入力対称関数をニューロンＭＯＳ回路を用いて表現し、従来知られている積和演算機能のみならずマルチプレックス機能をも有する回路を設計する方法と、この方法により設計された回路を提供することである。
【０００４】
【課題を解決するための手段】
上記の目的を達成するために、本発明の請求項１においては、ｎ個（ｎは正整数）の入力信号と１個の制御信号とが入力される（ｎ＋１）個のプリインバータと、前記（ｎ＋１）個のプリインバータの全ての出力信号とｎ個の入力信号とが入力されるメインインバータとを具備するニューロンＭＯＳ回路であって、前記メインインバータのフローティングゲートと前記プリインバータの出力端子との間の（ｎ＋１）個の容量値は互いに等しく設定され、前記フローティングゲートと前記ｎ個の入力信号が入力される端子との間のｎ個の容量値は互いに等しく設定されているニューロンＭＯＳ回路について規定している。
【０００５】
請求項２においては、請求項１に記載のニューロンＭＯＳ回路において、前記メインインバータのフローティングゲートと前記プリインバータの出力端子との間の（ｎ＋１）個の容量値と、前記フローティングゲートと前記ｎ個の入力信号が入力される端子との間のｎ個の容量値とが互いに等しく設定ニューロンＭＯＳ回路について規定している。
請求項３においては、請求項１に記載のニューロンＭＯＳ回路において、前記（ｎ＋１）個のプリインバータのうちの第ｉ番目のプリインバータ（１≦ｉ≦ｎ＋１、ｉは整数）の出力信号の状態が、（ｎ＋１−ｉ）入力状態の前後で変化するニューロンＭＯＳ回路について規定している。
請求項４においては、請求項３に記載のニューロンＭＯＳ回路において、前記（ｎ＋１）個のプリインバータのうちの第ｉ番目のプリインバータ（１≦ｉ≦ｎ＋１、ｉは整数）の閾値ｘｐｖｔｈ．ｉｊ（ｊは制御信号の状態に対応する値であり、１または０）が、第ｉ番目のプリインバータに入力される制御信号の状態に依存して、（ｎ＋１−ｉ）入力状態の前後の値であるニューロンＭＯＳ回路について規定している。
請求項５においては、請求項１に記載のニューロンＭＯＳ回路において、前記メインインバータのフローティングゲートと（ｎ＋１）個のプリインバータの出力端子及びｎ個の入力信号が入力される端子との間の容量値の総和に対する当該フローティングゲートとプリインバータの出力端子との間の容量値の比をａとし、前記容量値の総和に対する前記フローティングゲートと前記入力信号が入力される端子との間の容量値の比をｂとした時、ａ，ｂが
（ｎ−１）／（２ｎ２）＜ａ＜１／２ｎ，
１／｛２（ｎ＋１）｝＜ｂ＜１／２ｎ
を満たす値に設定され、
前記メインインバータの規格化フローティングゲートに対する閾値Ｖｔｈが、
ｎ／（２ｎ＋１）＜Ｖｔｈ＜（ｎ＋１）／（２ｎ＋１）
を満たす値に設定されているニューロンＭＯＳ回路について規定している。
請求項６においては、請求項５に記載のニューロンＭＯＳ回路において、前記ａ，ｂ，Ｖｔｈが、
（ａ，ｂ，Ｖｔｈ）＝｛１／（２ｎ＋１），１／（２ｎ＋１），１／２｝
に設定されているニューロンＭＯＳ回路について規定している。
請求項７においては、請求項１に記載のニューロンＭＯＳ回路において、前記入力信号のＨｉｇｈ  Ｌｅｖｅｌの数である入力状態に応じて、（ｎ＋１）個の前記制御信号のうち１つの制御信号の状態を選択する機能を有するニューロンＭＯＳ回路について規定している。
【０００６】
請求項８においては、ｎ個（ｎは正整数）の入力信号と１個の制御信号とが入力される（ｎ＋１）のプリインバータと、前記（ｎ＋１）個のプリインバータの全ての出力信号とｎ個の入力信号とが入力されるメインインバータとを具備するニューロンＭＯＳ回路による対称関数生成方法であって、前記メインインバータのフローティングゲートと前記プリインバータの出力端子との間の（ｎ＋１）個の容量値を互いに等しく設定する手順と、前記フローティングゲートと前記ｎ個の入力信号が入力される端子との間のｎ個の容量値を互いに等しく設定する手順とを有するニューロンＭＯＳ回路による対称関数生成方法について規定している。
請求項９においては、請求項８に記載のニューロンＭＯＳ回路による対称関数生成方法において、前記メインインバータのフローティングゲートと（ｎ＋１）個のプリインバータの出力端子及びｎ個の入力信号が入力される端子との間の容量値の総和に対する当該フローティングゲートとプリインバータの出力端子との間の容量値の比をａとし、前記容量値の総和に対する前記フローティングゲートと前記入力信号が入力される端子との間の容量値の比をｂとした時、
ａ，ｂを
（ｎ−１）／（２ｎ２）＜ａ＜１／２ｎ，
１／｛２（ｎ＋１）｝＜ｂ＜１／２ｎ
を満たす値に設定する手順と、前記メインインバータの規格化フローティングゲートに対する閾値Ｖｔｈを、
ｎ／（２ｎ＋１）＜Ｖｔｈ＜（ｎ＋１）／（２ｎ＋１）
を満たす値に設定する手順とを有するニューロンＭＯＳ回路による対称関数生成方法について規定している。
請求項１０においては、請求項９に記載のニューロンＭＯＳ回路による対称関数生成方法において、更に、前記（ｎ＋１）個のプリインバータのうちの第ｉ番目のプリインバータ（１≦ｉ≦ｎ＋１、ｉは整数）の出力信号の状態を、（ｎ＋１−ｉ）入力状態の前後で変化するように設定する手順とを有するニューロンＭＯＳ回路による対称関数生成方法について規定している。
【０００７】
【発明の実施の形態】
ある正整数ｎ個の入力に対する２(n+1)個の対称関数を実現する際に、図１に示すように（ｎ＋１）個のプリインバータの（ｎ＋１）個の出力及びｎ個の直接入力をメインインバータの入力とすることを主構成要素とするニューロンＭＯＳ回路を用いる。図１において、１０はプリインバータであり、１１はメインインバータである。各入力端子の静電容量に着目して、図１の回路を図２に示す等価的な回路に簡単化する。時刻Ｔ＝０の初期状態において、メインインバータのフローティングゲートの電圧Ｖfg＝０、全ての入力端子電圧Ｖi＝０、出力端子電圧Ｖout（０）と仮定すると、フローティングゲート電圧Ｖfgは次式で表される。
【０００８】
【数１】
0003685959.tif 000002
【０００９】
今、ゲートオーバーラップ容量を無視すると、上式は次式のように簡単化できる。
【００１０】
【数２】
0003685959.tif 000003
【００１１】
Ｖfgの最大値は全ての入力信号が電源電圧Ｖddの時であり、次式で表すことができる。
【００１２】
【数３】
0003685959.tif 000004
【００１３】
Ｖfg(max)で規格化されたフローティングゲート電圧を規格化フローティングゲート電圧と呼び、Ｕfgで表す。すなわち、Ｕfgは次式で定義される。
【００１４】
【数４】
0003685959.tif 000005
【００１５】
ここで、ｎ個の入力中で「真」の数、即ちｈｉｇｈ  １ｅｖｅ１の入力信号の数がｍ個（０≦ｍ≦ｎ：ｍは整数）の場合を「入力がｍ入力状態である」と呼ぶ。入力状態とフローティングゲート電圧の関係を理解しやすくするために、文献４「Ｔａｄａｓｈｉ Ｓｈｉｂａｔａ ａｎｄ Ｔａｄａｈｉｒｏ Ｏｈｍｉ，Ｎｅｕｒｏｎ ＭＯＳ Ｂｉｎａｒｙ−Ｌｏｇｉｃ Ｉｎｔｅｇｒａｔｅｄ Ｃｉｒｃｕｉｔｓ−ＰａｒｔＩ：Ｄｅｓｉｇｎ Ｆｕｎｄａｍｅｎｔａ１ｓ ａｎｄ Ｓｏｆｔ−Ｈａｒｄｗａｒｅ−Ｌｏｇｉｃ Ｃｉｒｃｕｉｔ     Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ，ＩＥＥＥ Ｔｒａｎｓａｃｔｉｏｎｓ ｏｎ Ｅ１ｅｃｔｒｏｎ Ｄｅｖｉｃｅｓ，Ｖｏ１．４０，Ｎｏ．３，ｐｐ．５７２．１９９３」のＦｉｇ．３を修正した図を図３に示す。図３において、横軸はｈｉｇｈ  ｌｅｖｅｌの入力信号の数、縦軸はフローティングゲート電圧である。対称関数においては、直接入力される信号の入力端子に依存した固有の情報は失われているために、メインインバータヘの直接入力端子とフローティングゲート間の静電容量値を全て等しいと仮定し、また、プリインバータの出力は全て１ｏｗ  １ｅｖｅ１であると仮定すると、入力状態と規格化フローティングゲート電圧Ｕfgの関係は図３中○印のように直線上に並ぶ。今、実際の状態は離散値であり、規格化フローティングゲート電圧Ｕfgも離散値であるが、仮想的に状態を連続量ｘ、規格化フローティングゲート電圧を連続量Ｕfg（ｘ）として扱い、図中直線で上記○印の点を結ぶ。この図３のことを対称関数のためのＦ１ｏａｔｉｎｇ−ｇａｔｅ  Ｐｏｔｅｎｔｉａ１  Ｄｉａｇｒａｍ（ＦＰＤＳ）と呼ぶ。図３中の直線の傾きは、直接入力端子とフローティングゲート間の容量値（Ｃj）と、メインインバータの全ての入力端子とフローティングゲート間の容量値の比ａであり、次式で表すことができる。
【００１６】
【数５】
0003685959.tif 000006
【００１７】
次に、プリインバータの出力のメインインバータヘの効果をＦＰＤＳを用いて考察する。今、（ｎ＋１）個あるプリインバータのｋ番目のプリインバータのみが全ての入力状態においてｈｉｇｈ  １ｅｖｅ１を出力し、他は全て１ｏｗ  １ｅｖｅ１出力であると仮定する。このプリインバータ出力端子とフローティングゲート間の容量が下記の（数６）式の容量比ｂkを持つ場合、ＦＰＤＳは図４のようになる。
【００１８】
【数６】
0003685959.tif 000007
【００１９】
図４中のメインインバータの閾値Ｖthを用いて、ＦＰＤＳと論理の関係を説明する。図４のＦＰＤＳにおいて、直接入力端子のＵfgに対する効果（ｆo）と、プリインバータがｈｉｇｈ  １ｅｖｅ１を出力した時の効果（ｆk）は各々次式で表すことができる。
【００２０】
ｆ0（ｘ）＝ａ・ｘ
ｆk（ｘ）＝ｂK
ｋ番目のプリインバータの出力がｈｉｇｈ  １ｅｖｅ１でない場合は、Ｕfgはｆ0（ｘ）のみで表され、図４から知れるように、どの入力状態においてもＶthに達していない。この時は、メインインバータの出力はｈｉｇｈ １ｅｖｅ１である。次に、プリインバータの出力がｈｉｇｈ  １ｅｖｅ１の場合は、規格化フローティングゲート電圧Ｕfgはｆ0（ｘ）とｆk（ｘ）の重ね合わせであるから
【００２１】
【数７】
0003685959.tif 000008
【００２２】
で表され、Ｖthとの交点の状態（ｘvth）よりも大きい入力状態ではメインインバータはｈｉｇｈ １ｅｖｅ１の反転信号である１ｏｗ １ｅｖｅ１を出力する。このため、メインインバータの出力は、状態数ｘが、ｘ≦ｘvth（ｘは０以上の整数）では、ｈｉｇｈ  １ｅｖｅ１であり、ｘ＞ｘvthでは１ｏｗ  １ｅｖｅ１となる。
【００２３】
この考えを（ｎ＋１）個のプリインバータに拡張する。メインインバータの入力が直接入力端子とプリインバータの出力端子のみから構成され、プリインバータの閾値は１つであると仮定する。この時、ＦＰＤＳは図５のようになる。メインインバータヘの直接入力端子のＵfgに対する効果ｆ0（ｘ）は次式で表される。
【００２４】
【数８】
0003685959.tif 000009
【００２５】
また、ｉ番目（１≦ｉ≦ｎ＋１：ｉは整数）のプリインバータの出力のＵfgに対する効果ｆi（ｘ）は次式で表される。
【００２６】
【数９】
0003685959.tif 000010
【００２７】
（数９）式におけるｘpvthはプリインバータの閾値であり、図５にはｘpvth＞ｎの場合が記載されている。（数８）式と（数９）式を用いてメインインバータのＵfg（ｘ）は、（数７）式で示したようにｆ0（ｘ）＋ｆi（ｘ）であるから、次式で表される。
【００２８】
【数１０】
0003685959.tif 000011
【００２９】
ここまでは、プリインバータが１つの閾値を持つことを仮定したが、各プリインバータの制御信号入力端子に１つの制御信号を入力することで、プリインバータは異なる２つの閾値を持つことが可能になる。各々のプリインバータの閾値を調整することで、ｎ入力の対称関数を全て実現することが可能となる。この方法をｎ＝２の場合を例として説明する。
【００３０】
ｎ＝２の場合のＦＰＤＳを図６に示す。ｉ番目のプリインバータに２つの異なる閾値をこのプリインバータに入力される１つの制御信号で設定し、その制御信号が１の状態、すなわち「真」の状態、である時のこのプリインバータの閾値をｘpvth.i1とし、同じ制御信号が０の状態、すなわち「偽」の状態、の時のこのプリインバータの閾値をｘpvth.i0とする。この場合、Ｕfg（ｘ）は次式で表される。
【００３１】
【数１１】
0003685959.tif 000012
【００３２】
図６と（数１１）式を参考にして対称関数を生成する。３つのプリインバータ中、第１のプリインバータの閾値を図６中、ｘ＝２の入力状態を挟む両側に設定し、図６中のθ10（ｘ）とθ11（ｘ）で表されるように、ｊ＝０とｊ＝１の場合で，Ｕfg（２）がメインインバーターの閾値（図６中、Ｖth）の上下になるように設定する。第２のプリインバータについて、その閾値をｘ＝１の入力状態を挟む両側に設定し、図６中のθ20（ｘ）とθ21（ｘ）で表されるように、ｊ＝０とｊ＝１の場合で、Ｕfg（１）がメインインバータの閾値の上下に来るように設定する。第３のプリインバータについて、その閾値をｘ＝０の入力状態を挟む両側に設定し、図６中、θ30（ｘ）とθ31（ｘ）で表されるように、ｊ＝０とｊ＝１の場合で、Ｕfg（０）がメインインバータの閾値の上下に来るように設定する。このように設定することにより、ｉ番目のプリインバータの２つの出力の状態と（ｎ＋１−ｉ）入力状態（但し、ｎ＝２）における２つの状態を１対１対応させることができる。この方法に示す設定が実回路において実現可能な場合、２個の入力による２3個の対称関数を生成することが可能となる。
【００３３】
この方法をｎが任意の正整数の場合に拡張し、この方法が実現可能である実回路が必ず存在することを説明する。ｎが正整数の場合のＵfg（ｘ）は、直接入力端子のＵfgに対する効果とプリインバータがｈｉｇｈ  ｌｅｖｅｌを出力したときの効果の和であるから、次式の形になる。
【００３４】
【数１２】
0003685959.tif 000013
【００３５】
また、（１２）式をｍ入力状態の場合に着目すると、次式になる。
【００３６】
【数１３】
0003685959.tif 000014
【００３７】
ｎ＝２の場合に示した設定のｎが正整数の場合への拡張を（数１３）式を用いて行い、同時にメインインバータの入力が直接入力端子とプリインバータの出力端子のみから構成されるという仮定を定式化すると次式のようになる。
【００３８】
【数１４】
0003685959.tif 000015
【００３９】
【数１５】
0003685959.tif 000016
【００４０】
【数１６】
0003685959.tif 000017
【００４１】
０≦ｍ≦ｎ：ｍは整数という条件において、（数１４）式、（数１５）式、（数１６）式を同時に満たすａ、ｂｋ、Ｖｔｈが解である。今、各々のプリインバータの出力端子とフローティングゲートとの間の容量によるｂｋが全てｂに等しいと仮定し、（数１３）式、（数１６）式を次式のように簡単化する。
【００４２】
【数１７】
0003685959.tif 000018
【００４３】
【数１８】
0003685959.tif 000019
【００４４】
（数１７）式を用いて、ａ、ｂ、Ｖthに関する条件を定式化すると次式のようになる。（数５）式、（数６）式からａ、ｂに関する条件も再び併せて記載し、
Ｕfgをｍ、ａの関数とした。
【００４５】
【数１９】
0003685959.tif 000020
【００４６】
【数２０】
0003685959.tif 000021
【００４７】
【数２１】
0003685959.tif 000022
【００４８】
【数２２】
0003685959.tif 000023
【００４９】
（数１９）式と（数２０）式を図７に示す。（数１９）式のＵfgは全てのｍに対して、
【００５０】
【数２３】
0003685959.tif 000024
【００５１】
を通る直線であり、（数２０）式のＵfgは全てのｍに対して、
【００５２】
【数２４】
0003685959.tif 000025
【００５３】
を通る直線になる。図７中の実線は（数１９）式のＵfgを表しており、Ｌ10、Ｌ11、Ｌ1(n-1)、Ｌ1nは、各々ｊ＝１の場合のｍ＝０、ｍ＝１、ｍ＝ｎ−１、ｍ＝ｎの場合のＵfgをを示す。一方、点線は（数２０）式のＵfgを表しており、Ｌ00、Ｌ01、Ｌ0(n-1)、Ｌ0nは、各々ｊ＝０の場合のｍ＝０、ｍ＝１、ｍ＝ｎ−１、ｍ＝ｎの場合のＵfgを示している。
【００５４】
（数１９）式と（数２０）式を満たすａとＶthは、図７中の点線の交点Ｐ、実線の交点Ｑ、Ｌ1nとＬ00の交点Ｒ及び、Ｌ10とＬ0nの交点Ｓで囲まれる境界を含まない平面中に存在する。図７中の交点Ｐ、Ｑ、Ｒ、Ｓは次式で示される。
【００５５】
【数２５】
0003685959.tif 000026
【００５６】
（数２５）式から、Ｐ、Ｑ、Ｒ、Ｓで囲まれた閉領域は、正の整数ｎに対して常に正の面積を持ち、ａとＶthについて常に解が存在することを示している。
【００５７】
本発明の実施の形態として、図７中のＰ、Ｑ、Ｒ、Ｓで囲まれる閉領域において、ａとＶthについて最大マージンを持つ直線ＰＱと直線ＲＳの交点を、（数１９）式と（数２０）式を満たす解の一つとする。この解、ａ、ｂ、Ｖthは次式で表される。
【００５８】
【数２６】
0003685959.tif 000027
【００５９】
（数２６）式の解を用いた場合のＦＰＤＳを図８に示す。ｉ番目のプリインバータは（ｎ−ｉ）入力状態と（ｎ＋１−ｉ）入力状態の間に第１の閾値を持ち、（ｎ＋１−ｉ）入力状態と（ｎ＋２−ｉ）入力状態の間に第２の閾値を持つ。但し、ｉ＝ｎ＋１の場合の第１の閾値は仮想的にｘ＝０の入力状態よりも小さい状態に閾値を持ち、ｉ＝１の場合の第２の閾値はｘ＝ｎの入力状態よりも大きい状態に閾値を持つように設定される。（但し、この両者は図８には記載されていない。）この時、（ｎ＋１−ｉ）入力状態におけるＵｆｇはｉ番目のプリインバータの出力状態のみに依存することになる。Ｕｆｇがメインインバータの閾値よりも大きい時、Ｕｆｇの閾値を基準とした２値表現での状態Ｗｉｎが”１”であると呼び、逆に小さい時、Ｗｉｎが”０”であると呼ぶ。Ｗｉｎ＝１の場合、メインインバータの出力状態Ｗｏｕｔは”０”であり、Ｗｉｎ＝０の場合、メインインバータの出力状態Ｗｏｕｔは”１”である。（ｎ＋１）個のプリインバータの各々独立した２つの状態が（ｎ＋１）個の入力状態に対応していることから、ｎ個の入力に対する２（ｎ＋１）個の対称関数が生成できることが判る。
【００６０】
このことを図９に示した。図９の右側の部分がプリインバータの２値化された出力状態であり、左側の部分は（ｎ＋１）個の入力状態の０入力状態からｎ入力状態までのＷinが記載されている。図９右側部分の各行のような出力状態になるように各プリインバータの閾値を制御すると、左側部分のような論理が構成されることを示している。また、図９は別の見方も可能である。入力状態の方を制御信号の状態と考え、プリインバータ出力を入力と考えることで、（ｎ＋１）個の信号端子を持つマルチプレクサ機能になる。例えば、図９において、（ｎ−１）入力状態を意図的に制御して作ったとすると、この時、Ｗinは２番目のプリインバータの出力状態と一致することになる。
【００６１】
（数２６）式で表される解を実際のニューロンＭＯＳ回路で表現すると、図１０に示すように、各々のプリインバータの出力端子とメインインバータのフローティングゲートとの間の容量値が等しく、かつ、直接入力端子とメインインバータのフローティングゲートとの間の容量値もプリインバータの出力端子とメインインバータのフローティングゲートとの間の容量値に等しく、かつ、メインインバータの論理閾値が（３）式のγＶddの１／２に設定されている場合である。
【００６２】
本発明によるプリインバータの閾値設定方法、メインインバータにおける容量値の設定方法及びメインインバータの論理閾値設定方法を用いることで、正整数ｎ個の入力による２(n+1)個の対称関数の生成が可能になり、更に、プログラム化することで自動生成することも可能になる。
【００６３】
【実施例】
＜入力数ｎ＝２の場合＞
本発明の方法による規格化フローティング電圧Ｕｆｇと、メインインバータのすべての入力端子とフローティングゲート間との容量比ａの関係を図１１に示す。（数２５）式のＰ、Ｑ、Ｒ、Ｓはこの式におけるｎ＝２の場合と一致し、ＰＱＲＳ閉領域が正の面積を持ち、ａ、ｂ、Ｖｔｈの解が存在することが判る。この閉領域中の（ａ、Ｖｔｈ）＝（１／５、１／２）を解とした場合のＦＰＤＳを図１２に示す。図１２中○印は各入力状態においてＵｆｇが取り得る状態である。各入力状態に対応する１つのプリインバータの出力状態だけで各入力状態におけるＵｆｇの状態が決まることが判る。図１２を用いて、入力状態とプリインバータの出力状態の関係からｎ＝２の場合の対称関数が生成される例を図１３に示す。図１３から適当な制御信号列を作ることで任意の対称関数が生成されることが判る。
【００６４】
＜入力数ｎ＝４の場合＞
本発明の方法によるＵfgとａの関係を図１４に示す。（数２５）式のＰ、Ｑ、Ｒ、Ｓはこの式におけるｎ＝４の場合と一致し、ＰＱＲＳ閉領域が正の面積を持ち、ａ、ｂ、Ｖthの解が存在することが判る。
【００６５】
この閉領域中の（ａ、Ｖth）＝（１／９、１／２）を解とした場合のＦＰＤＳを図１５に示す。図１５中○印は各入力状態においてＵfgが取り得る状態である。各入力状態に対応する１つのプリインバータの出力状態だけで各入力状態におけるＵfgの状態が決まることが判る。また、図１３を参考にすることで、全ての対称関数を生成可能であることが判る。
【００６６】
＜入力数ｎ＝８の場合＞
本発明の方法によるＵfgとａの関係を図１６に示す。（数２５）式のＰ、Ｑ、Ｒ、Ｓはこの式におけるｎ＝４の場合と一致し、ＰＱＲＳ閉領域が正の面積を持ち、ａ、ｂ、Ｖthの解が存在することが判る。この閉領域中の（ａ、Ｖth）＝（１／１７、１／２）を解とした場合のＦＰＤＳを図１７に示す。図１７中○印は各入力状態においてＵfgが取り得る状態である。各入力状態に対応する１つのプリインバータの出力状態だけで各入力状態におけるＵfgの状態が決まることが判る。また、図１３を参考にすることで、全ての対称関数を生成可能であることが判る。
【００６７】
【発明の効果】
以上詳細に説明したように、本発明による対称関数生成方法によれば、任意の入力数の対称関数を生成する回路が存在することが保証されており、かつ、その回路を自動生成することを可能にする。また、本発明の回路構成によれば、任意の入力数の対称関数の実現も可能となる。
【図面の簡単な説明】
【図１】    ニューロンＭＯＳ回路主構成要素図。
【図２】    メインインバータの容量成分等価回路図。
【図３】  対称関数のためのフローティングゲートポテンシャルダイアグラム図（以下ＦＰＤＳ図）。
【図４】プリインバータの１つだけが全ての入力状態においてｈｉｇｈ  １ｅｖｅｌ出力である場合のＦＰＤＳ図。
【図５】ｎ個のプリインバータの出力を考慮した場合のＦＰＤＳ図。
【図６】入力数が２であり、各々のプリインバータが異なる２つの閾値を持つ場合のＦＰＤＳ図。
【図７】ｎ入力の場合のａとＵｆｇの関係図。
【図８】ｎ入力の場合の入力状態とＵｆｇの関係図。
【図９】ｎ入力の対称関数とプリインバータ出力状態の関係図。
【図１０】ｎ入力対称関数を生成するためのニューロンＭＯＳ回路主構成要素図。
【図１１】ｎ＝２の場合のａとＵｆｇの関係図．
【図１２】ｎ＝２の場合のＦＰＤＳ図。
【図１３】ｎ＝２の場合の対称関数とプリインバータの出力状態の関係図。
【図１４】ｎ＝４の場合のａとＵｆｇの関係図．
【図１５】ｎ＝４の場合のＦＰＤＳ図。
【図１６】ｎ＝８の場合のａとＵｆｇの関係図。
【図１７】ｎ＝８の場合のＦＰＤＳ図。
【符号の説明】
１０：プリインバータ
１１：メインインバータ
【図１】
0003685959.tif 000028
【図２】
0003685959.tif 000029
【図３】
0003685959.tif 000030
【図４】
0003685959.tif 000031
【図５】
0003685959.tif 000032
【図６】
0003685959.tif 000033
【図７】
0003685959.tif 000034
【図８】
0003685959.tif 000035
【図９】
0003685959.tif 000036
【図１０】
0003685959.tif 000037
【図１１】
0003685959.tif 000038
【図１２】
0003685959.tif 000039
【図１３】
0003685959.tif 000040
【図１４】
0003685959.tif 000041
【図１５】
0003685959.tif 000042
【図１６】
0003685959.tif 000043
【図１７】
0003685959.tif 000044