(57)【要約】１つの２進数を、複数の２進入力として受け取るための複数の入力と、複数の２進入力の内の２進のものの数を示す２進符号を出力するための、複数の出力と、１つ或いは２つ以上の２進入力の複数の組を結合するために排他的論理和ゲートを用いて、２進出力の内の少なくとも１つを、２進入力の基本対称関数として生成するための論理回路とを備えることを特徴とする並列計数器。
2004506260.tif 000002
【特許請求の範囲】
【請求項１】
１つの２進数を、複数の２進入力として受け取るための複数の入力と、
複数の２進入力の内の２進のものの数を示す２進符号を出力するための、複数の出力と、
複数の入力と複数の２進出力との間で接続されて、複数の２進出力の各々を２進入力の基本対称関数として生成するための論理回路と
を備えることを特徴とする並列計数器。
【請求項２】
前記論理回路は、１つ或いは２つ以上の２進入力の複数の組を結合するために排他的論理和ゲートを用いて、２進出力の内の少なくとも１つを、２進入力の基本対称関数として生成するようにまとめられていることを特徴とする請求項１記載の並列計数器。
【請求項３】
前記論理回路は、２進入力の各組の要素を論理積し、論理積演算の結果を排他的論理和するようにまとめられることを特徴とする請求項２記載の並列計数器。
【請求項４】
前記論理回路は、ｉ番目の２進出力を生成するための各組の２ｉ個の２進入力を論理積するようにまとめられており、ここで、ｉは１〜Ｎの整数であり、Ｎは２進出力の数であり、ｉは各２進出力の重要さを表し、各々の組は唯一のものであり、前記組は２進入力の全ての可能な組合せを網羅していることを特徴とする請求項３記載の並列計数器。
【請求項５】
前記論理回路は、２進入力の各組の要素を論理積するようにまとめられており、ここで、各組は唯一のものであり、前記組は２進入力の全ての可能な組合せを網羅していることを特徴とする請求項３記載の並列計数器。
【請求項６】
前記論理回路は、１つ或いは２つ以上の２進入力の複数の組を結合するために、論理和ゲートを用いて、２進出力の少なくとも１つを、２進入力の基本対称関数として生成するようにまとめられていることを特徴とする請求項１から請求項４のいずれか１つに記載の並列計数器。
【請求項７】
前記論理回路は、２進入力の各組の要素を論理積し、論理積演算の結果を論理和するようにまとめられていることを特徴とする請求項６記載の並列計数器。
【請求項８】
前記論理回路は、Ｎ番目の２進出力を生成するために、各組の２Ｎ−１個の２進入力を論理積し、ここで、Ｎは２進出力の要素であり、Ｎ番目の出力は最上位であり、各組は唯一のものであり、前記組は２進入力の全ての可能な組合せを網羅していることを特徴とする請求項７記載の並列計数器。
【請求項９】
前記論理回路は、２進入力の各組の要素を論理積し、各組は、唯一のものであり、前記組は２進入力の全ての可能な組合せを網羅していることを特徴とする請求項７記載の並列計数器。
【請求項１０】
前記論理回路は、１つ或いは２つ以上の２進入力の複数の組を結合するために、第１の２進出力を、排他的論理和ゲートを使用して、２進入力の基本対称関数として生成するように、また、１つ或いは２つ以上の２進入力の複数の組を結合するために、Ｎ番目の２進出力を、論理和ゲートを使用して、２進入力の基本対称関数として生成するようにまとめられていることを特徴とする請求項１記載の並列計数器。
【請求項１１】
前記論理回路は、１つ或いは２つ以上の２進入力の複数の組を結合するために、論理和ゲートを用いた２進入力の基本対称関数として、２つの可能な２進出力を、Ｎ番目の２進出力よりも下位の２進出力に対して生成するようにまとめられており、前記論理回路は、上位２進出力値に基づいて可能な２進出力の１つを選択する選択論理回路を含み、ここで、Ｎは２進出力の要素であり、可能な各２進出力に使われる組は、生成される２進出力の関数であり２つの異なる大きさを持つことを特徴とする並列計数器。
【請求項１２】
前記論理回路は、１つ或いは２つ以上の２進入力の複数の組を結合するための、論理和ゲートを用いた２進入力の基本対称関数として、２つの可能な２進出力を、Ｎ番目の２進出力よりも下位の（Ｎ―１）番目の２進出力に対して生成するようにまとめられており、ここで、可能な各２進出力に使われる組は、それぞれ２Ｎ−１＋２Ｎ−２と２Ｎ−２の大きさであり、前記選択論理回路は、Ｎ番目の２進出力値に基づいて、可能な２進出力の１つを選択するようにまとめられていることを特徴とする請求項１１記載の並列計数器。
【請求項１３】
前記論理回路は、２進入力の基本対称関数として、２つの可能な２進出力を、Ｎ番目の２進出力よりも下位の２進出力に対して生成するようにまとめられており、また、前記論理回路は、上位２進出力値に基づいて可能な２進出力の１つを選択する選択論理回路を含むことを特徴とする請求項１から請求項１０のいずれか１つに記載の並列計数器。
【請求項１４】
前記論理回路は、２進入力の基本対称関数として、中間出力を生成するための論理ユニットを含み、また、１つの論理ユニットの少なくとも中間出力と他の論理ユニットの反転出力とを論理積結合し、かつ、論理積結合した結果と他の中間出力とを論理和結合することによって、論理ユニットの中間出力を結合することで、Ｎ番目の出力よりも下位の２進出力を生成するようにまとめられることを特徴とする請求項１から請求項１０のいずれか１つに記載の並列計数器。
【請求項１５】
前記論理回路は、ｋ番目の２進出力Ｓｋを生成するようにまとめられ、ここでｋ＝０〜ｔ−１であり、ｔは以下の関係による出力の数であり、
【数１】
2004506260.tif 000030
ここで、∧は論理積演算であり、∨は論理和演算であり、¬は反転演算であることを特徴とする請求項１４記載の並列計数器。
【請求項１６】
前記論理回路は、各々が２進入力のいくつかの基本対称関数として、中間２進出力を生成する複数の下位回路論理モジュールと、前記２進出力を生成するために、中間２進出力を論理的に結合するための論理回路とを含むことを特徴とする請求項１から請求項１５のいずれか１つに記載の並列計数器。
【請求項１７】
前記下位回路論理モジュールは、前記２進入力の前記いくつかの組を結合するために、論理和ゲートを用いるようにまとめられることを特徴とする請求項１６記載の並列計数器。
【請求項１８】
前記論理回路は、各々が、１つ或いは２つ以上の２進入力の複数の組を結合するために、排他的論理和ゲートを用いて２進入力の基本対称関数として２進出力を生成するための、１つ或いは２つ以上の論理モジュールを含むことを特徴とする請求項１７記載の並列計数器。
【請求項１９】
前記論理回路は、複数の小さな基本対称関数を実行し、結果を結合することによって、大きな基本対称関数を実行することを特徴とする請求項１から請求項１４のいずれか１つに記載の並列計数器。
【請求項２０】
前記論理回路は、複数の論理ユニットに分割され、各論理ユニットは、論理ユニット２進出力を、論理ユニットへの２進入力の基本対称関数として生成するようにまとめられ、前記複数の入力の２進入力は、複数の前記論理ユニットへの入力に分割され、前記複数の出力の２進出力は、複数の前記論理ユニットの２進出力を用いて生成されることを特徴とする請求項１から請求項１９のいずれか１つに記載の並列計数器。
【請求項２１】
前記論理ユニットは、階層的に高位の論理ユニットが、階層的に低位の少なくとも１つの論理ユニットの論理回路を含み、階層的に低位の論理ユニットよりも多くの２進入力を入力として持つことを特徴とする請求項２０記載の並列計数器。
【請求項２２】
前記複数の入力の２進入力は、複数の前記論理ユニットへの入力への２進ツリーに従って分割されることを特徴とする請求項２０あるいは請求項２１記載の並列計数器。
【請求項２３】
前記論理ユニットは、２ｎ個の前記２進入力を受け取るようにまとめられ、ｎは、２進ツリー内の論理ユニットのレベルを示す整数であり、前記論理回路は、各レベルでｍ個の論理ユニットを持ち、ｍは、（２進入力の数）／２ｎから決定される丸められた整数であり、２進ツリー内で高いレベルの論理ユニットは、２進ツリー内の低いレベルにある論理ユニットの論理回路を備えており、各論理ユニットは、論理ユニットの２進出力を、論理ユニットへの２進入力の対称関数として生成するようにまとめられることを特徴とする請求項２２記載の並列計数器。
【請求項２４】
第１レベルにおける各論理ユニットは、前記論理回路への２進入力の小さな基本対称関数として、論理ユニット２進出力を生成するようにまとめられることを特徴とする請求項２３記載の並列計数器。
【請求項２５】
第１レベルにおける各論理ユニットは、２進入力を結合するために、論理和ゲートを用いて前記論理回路への２進入力の基本対称関数として、論理ユニット２進出力を生成するようにまとめられることを特徴とする請求項２３あるいは請求項２４記載の並列計数器。
【請求項２６】
第１レベルにおける各論理ユニットは、論理ユニット２進出力を生成するのに、論理ユニットへの２進入力の各々を論理積し、かつ、論理ユニットへの２進入力の各々を論理和するようにまとめられることを特徴とする請求項２５記載の並列計数器。
【請求項２７】
第１レベルにおける各論理ユニットは、２進入力を結合するために、排他的論理和ゲートを用いて前記論理回路への２進入力の基本対称関数として、論理ユニット２進出力を生成するようにまとめられることを特徴とする請求項２４記載の並列計数器。
【請求項２８】
第１レベルにおける各論理ユニットは、論理ユニット２進出力を生成するのに、論理ユニットへの２進入力の各々を論理積し、かつ、論理ユニットへの２進入力の各々を排他的論理和するようにまとめられることを特徴とする請求項２７記載の並列計数器。
【請求項２９】
基本対称関数を実行するために第１レベルにおける論理ユニットとして基本論理ユニットが提供され、前記複数の入力からの論理的に隣り合う４つの２進入力を受け取る２つの第１基本論理ユニットの各々からの出力は、２つの第２基本論理ユニットへと入力され、第２基本論理ユニットの各々からの出力は、第３基本論理ユニットへと入力され、前記第１及び第２及び第３基本論理ユニットは、前記第２基本論理ユニットの各々からの２進出力と、前記第３基本論理ユニットからの２つの２進出力とを備える２進出力を持った２進ツリーの第２レベルにおいて第２論理ユニットを形成することを特徴とする請求項２３から２８のいずれか１つに記載の並列計数器。
【請求項３０】
２進ツリーの第３レベルにおける第３論理ユニットの各々は、前記複数の入力から論理的に隣り合う８個の２進入力を受け取る２つの第２論理ユニットと、前記２つの第２論理ユニットの出力を入力として受け取る４個の基本論理ユニットと、さらに、２進入力の対称関数として、前記４個の基本論理ユニットの２進出力を用いて前記第３論理ユニットへの２進出力を生成するための論理回路とを備えることを特徴とする請求項２９記載の並列計数器。
【請求項３１】
２進ツリーの第４レベルにおける第４論理ユニットは各々、前記複数の入力から論理的に隣り合う１６個の２進入力を受け取る２つの第３論理ユニットと、入力として前記２つの第３論理ユニットの出力を受け取る４個の基本論理ユニットと、さらに、前記４個の基本論理ユニットの２進出力を用いて前記第４論理ユニットへの２進入力の基本対称関数として、２進出力を生成するための論理回路とを備えることを特徴とする請求項３０記載の並列計数器。
【請求項３２】
基本対称関数を実行するための第１レベルにおける論理ユニットとして基本論理ユニットが提供され、より高位のレベルの論理ユニットは、より低位のレベルの論理ユニットから成ることを特徴とする請求項２３から請求項２８のいずれか１つに記載の並列計数器。
【請求項３３】
第２レベル以上の、より高位のレベルの前記論理ユニットは、すぐ前のレベルの論理ユニットと基本論理ユニットとを備えることを特徴とする請求項３２記載の並列計数器。
【請求項３４】
各レベルにおける各論理ユニットは、前記論理回路への２進入力の基本対称関数として、２進入力を結合するために論理和ゲートを用いて、論理ユニット２進出力を生成するようにまとめられることを特徴とする請求項２３から請求項３３のいずれか１つに記載の並列計数器。
【請求項３５】
各レベルにおける各論理ユニットは、論理回路への２進入力の基本対称関数として、２進入力を結合するために排他的論理和ゲートを用いて、論理ユニット２進出力を生成するようにまとめられることを特徴とする請求項２３から請求項３３のいずれか１つに記載の並列計数器。
【請求項３６】
論理ユニットは、階層的にまとめられて、階層の少なくとも１つのレベル内の少なくとも１つの論理ユニットが、反転した基本対称関数を実行することを特徴とする請求項２０から請求項３３のいずれか１つに記載の並列計数器。
【請求項３７】
階層内の奇数のレベルにある論理ユニットは、反転した基本対称関数を実行し、階層内の偶数のレベルにある論理ユニットは、対称関数を実行し、階層の第１レベルでは、論理ユニットへへの入力は、反転されることを特徴とする請求項３６記載の並列計数器。
【請求項３８】
階層内の偶数のレベルにある論理ユニットは、反転した基本対称関数を実行し、階層内の偶数のレベルにある論理ユニットは、対称関数を実行し、階層の第１レベルでは、論理ユニットへへの入力は、反転されない階層内の第１レベルの論理ユニットへ入力されることを特徴とする請求項３６記載の並列計数器。
【請求項３９】
階層内の偶数のレベルにある論理ユニットは、反転した基本対称関数を実行し、階層内の奇数のレベルにある論理ユニットは、対称関数を実行し、第１レベルでは、論理ユニットへの階層への入力は、反転されることを特徴とする請求項３６記載の並列計数器。
【請求項４０】
階層の少なくとも１つのレベル内の少なくとも１つの論理ユニットは、基本対称関数を実行し、反転した該基本対称関数或いはその各々と、該基本対称関数或いはその各々は、階層内の連続した交互のレベルで実行されることを特徴とする請求項３６記載の並列計数器。
【請求項４１】
階層内の少なくとも１つのレベル内の論理ユニットは、反転論理ゲートを備えることを特徴とする請求項３６から請求項４０のいずれか１つに記載の並列計数器。
【請求項４２】
前記論理ユニットは、２進ツリー構造内で階層的にまとめられることを特徴とする請求項３６から請求項４１のいずれか１つに記載の並列計数器。
【請求項４３】
入力の数は、少なくとも４つであり、出力の数は、少なくとも３つであることを特徴とする請求項１から請求項４２のいずれか１つに記載の並列計数器。
【請求項４４】
２進数を複数の２進入力として受け取るための少なくとも５つの入力と、
複数の２進入力内の２進のものの数を示す２進符号を出力するための少なくとも３つの出力と、
複数の入力と複数の２進出力の間で接続されて、該複数の２進出力の各々を２進入力の基本対称関数として生成するための論理素子と
を備えることを特徴とする並列計数器。
【請求項４５】
前記論理回路は、互いに独立して少なくとも２つの出力を生成するようにまとめられることを特徴とする請求項４４記載の並列計数器。
【請求項４６】
２進数を２進入力として受け取るためのｎ個の入力と、
２進入力内の２進のものの数を示す２進符号を出力するための３つの出力と、
前記入力と前記３つの出力との間で接続されて、２進入力の基本対称関数ＥＸＯＲ＿ｎ＿１として第１出力を生成し、３つの基本対称関数ＯＲ＿ｎ＿２，ＯＲ＿ｎ＿４，ＯＲ＿ｎ＿６の組合せとして第２出力を生成し、基本対称関数ＯＲ＿ｎ＿４として第３出力を生成する論理回路と
を備え、上記ｎは、４≧ｎ≧７であることを特徴とする並列計数器。
【請求項４７】
２進数を２進入力として受け取るためのｎ個の入力と、
２進入力内の２進のものの数を示す２進符号を出力するための４つの出力と、
前記入力と前記４つの出力との間で接続されて、２進入力の基本対称関数ＥＸＯＲ＿ｎ＿１として第１出力を生成し、２進入力のＥＸＯＲ＿ｎ＿２として第２出力を生成し、３つの基本対称関数ＯＲ＿ｎ＿４，ＯＲ＿ｎ＿８，ＯＲ＿ｎ＿１２の組合せとして第３出力を生成し、基本対称関数ＯＲ＿ｎ＿８として第３出力を生成する論理回路と
を備え、上記ｎは、８≧ｎ≧１５であることを特徴とする並列計数器。
【請求項４８】
ｎ個の入力からｍ個の可能なハイの入力を持つ、条件付き並列計数記であって、ここでｍ＜ｎであり、ｎとｍは整数であり、前記条件付き計数器は、入力を計数してｍ個の入力に対してｐ個の出力を作る、請求項１から請求項４７のいずれか１つに記載の並列計数器を備え、ここで、計数器への入力の数ｎは、２ｐよりも大きいことを特徴とする条件付き計数器。
【請求項４９】
請求項４８記載の条件付き並列計数記を備えることを特徴とする定数乗算器。
【請求項５０】
請求項４８記載の定数乗算器を備えることを特徴とするディジタルフィルター。
【請求項５１】
請求項１から請求項４８のいずれか１つに記載の並列計数器を含むことを特徴とする論理回路。
【請求項５２】
請求項１から請求項４８のいずれか１つに記載の並列計数器を含むことを特徴とする集積回路。
【請求項５３】
請求項１から請求項４８のいずれか１つに記載の並列計数器を含むことを特徴とするディジタル電子機器。
【請求項５４】
各２進数の各ビットの組合せを備えた２進数のアレイを生成するアレイ生成論理回路と、
アレイ中の組合せの数を減らすために、請求項１から請求項４８のいずれか１つに記載の並列計数器を少なくとも１つ含んだアレイ縮小論理回路と、
出力を生成するのに、縮小された組合せを加える２進加算論理回路と
を備えることを特徴とする、２つの２進数を乗算するための論理回路。
【請求項５５】
２つの２進数を乗算するための論理回路であって、
２つの２進数から、加えるのに必要な２進値のアレイを生成し、さらに、アレイ中の２進値を結合して、Ｎを２つの２進数の最大ビット数とするとき、アレイの最大深さがＮビット未満のアレイを生成するためのアレイ生成論理回路と、
アレイの深さを２つの２進数へ縮小するアレイ縮小論理回路と、
２つの２進数の２進値を加算するための加算論理回路と
を備えることを特徴とする論理回路。
【請求項５６】
前記アレイ生成論理回路は、１つの２進数の各ビットと、他の２進数の各ビットとの間で論理２進演算を実行して、２進値のアレイを備えた論理２進結合のアレイを生成するようにまとめられていることを特徴とする請求項５５記載の論理回路。
【請求項５７】
前記アレイ生成論理回路は、１つの２進数の各ビットと、他の２進数の各ビットとの間で論理積演算を実行して、２進値のアレイを備えた論理積結合のアレイを生成するようにまとめられていることを特徴とする請求項５６記載の論理回路。
【請求項５８】
前記アレイ生成論理回路は、１つの２進数の各ビットＡｉと、他の２進数の各ビットＢｊとの論理２進結合によって作られた値に対して、さらなる値の論理結合を実行するようにまとめられており、ここで、ｉ−ｊ−ｋ≦１であり、ｋは選択された整数であり、ｉとｊは１〜Ｎの整数であることを特徴とする請求項５７記載の論理回路。
【請求項５９】
前記アレイ生成論理回路は、第１の２進数の各ビットＡｉと、第２の２進数の各ビットＢｊとを論理積結合して、前記論理積結合（Ａｉ）ＡＮＤ（Ｂｊ）によって表される２進数のシーケンスを備える前記アレイを生成し、Ｎを２進数内のビット数とするとき、（Ａ１）ＡＮＤ（ＢＮ−２），（Ａ１）ＡＮＤ（ＢＮ−１）の組合せを論理結合することによって、さらなる論理結合を実行するようにまとめられていることを特徴とする請求項５５から請求項５８のいずれか１つに記載の論理回路。
【請求項６０】
前記アレイ生成論理回路は、（Ａ１）ＡＮＤ（ＢＮ−２）と（Ａ０）ＡＮＤ（ＢＮ−１）の組合せを結合して、これらの組合せを排他的論理和を用いて置き換え、また、（Ａ１）ＡＮＤ（ＢＮ−１）と（Ａ０）ＡＮＤ（ＢＮ−２）を結合して（Ａ１）ＡＮＤ（ＢＮ−１）と置き換えるようにまとめられることを特徴とする請求項５９記載の論理回路。
【請求項６１】
前記アレイ縮小論理回路は、少なくとも１つの全加算器と少なくとも１つの半加算器と少なくとも１つの並列計数器のうちの少なくとも１つを含むことを特徴とする請求項５５から請求項６０のいずれか１つに記載の論理回路。
【請求項６２】
前記アレイ縮小論理回路は、請求項１から請求項４０のいずれか１つに記載の少なくとも１つの並列計数器を含むことを特徴とする請求項６１記載の論理回路。
【請求項６３】
前記アレイ生成論理回路は、前の乗算器の積算値を含むようにまとめられることを特徴とする請求項５５から請求項６２のいずれか１つに記載の論理回路を備えた積和論理回路。
【請求項６４】
請求項５５から請求項６２のいずれか１つに記載の論理回路を含む集積回路。
【請求項６５】
請求項５５から請求項６２のいずれか１つに記載の論理回路を含むディジタル電子機器。
【請求項６６】
複数の２進入力として、２進数を受け取るための少なくとも４つの入力と、
２進符号を出力するための少なくとも１つの出力と、
複数の入力と、前記２進出力或いはその各々との間で接続されて、２進ツリーとして実現されて少なくとも２の閾値を持つ閾値関数に従って、前記２進出力或いはその各々を生成するための論理素子と
を備えることを特徴とする論理回路。
【請求項６７】
前記論理素子は、前記２進出力或いはその各々を、２進入力の基本対称関数として生成するようにまとめられることを特徴とする請求項６６記載の論理回路。
【請求項６８】
前記論理素子は、少なくとも１つの２進出力を、２進入力の論理和対称関数として生成するようにまとめられることを特徴とする請求項６７記載の論理回路。
【請求項６９】
前記論理素子は、少なくとも１つの２進出力を、２進入力の排他的論理和対称関数として生成するようにまとめられることを特徴とする請求項６８記載の論理回路。
【請求項７０】
前記論理素子は、各々が、中間２進出力を２進入力のいくつかの基本対称関数として生成するような、複数の下位回路論理モジュールと、中間２進出力を論理結合して前記２進出力或いはその各々を生成するための論理回路とを備えることを特徴とする請求項６６から請求項６９のいずれか１つに記載の論理回路。
【請求項７１】
前記論理素子は、各々が、中間２進出力を２進入力のいくつかの基本対称関数として生成するための複数の論理モジュールと、中間２進出力を論理結合して前記２進出力或いはその各々を生成するための論理回路とを備えており、前記論理モジュールは、階層的にまとめられて、階層の少なくとも１つのレベルにある少なくとも１つの論理モジュールが、反転した基本対称関数を実行するようにまとめられることを特徴とする請求項６７記載の論理回路。
【請求項７２】
階層内の奇数レベルにある前記論理モジュールは、反転した基本対称関数を実行し、階層内の偶数レベルにある前記論理モジュールは、対称関数を実行し、階層の第１レベルにおける前記論理モジュールへの入力は反転されることを特徴とする請求項７１記載の論理回路。
【請求項７３】
階層内の偶数レベルにある前記論理モジュールは、反転した基本対称関数を実行し、階層内の偶数レベルにある前記論理モジュールは、対称関数を実行し、階層の第１レベルにおける前記論理モジュールへの入力は、階層内の第１レベル内の論理ユニットへ反転せずに入力されることを特徴とする請求項７１記載の論理回路。
【請求項７４】
階層内の偶数レベルにある前記論理モジュールは、反転した基本対称関数を実行し、階層内の奇数レベルにある前記論理モジュールは、対称関数を実行し、階層の第１レベルにおける前記論理モジュールへの入力は、反転されることを特徴とする請求項７１記載の論理回路。
【請求項７５】
階層の少なくとも１つのレベル内の少なくとも１つの論理モジュールは、基本対称関数を実行し、前記反転した基本対称関数或いはその各々と、前記基本対称関数或いはその各々は、階層内の変更されたレベル内で実行されることを特徴とする請求項７１記載の論理回路。
【請求項７６】
階層内の少なくとも１つのレベルの論理モジュールは、反転論理回路を備えることを特徴とする請求項７１から請求項７５記載の論理回路。
【請求項７７】
前記論理モジュールは、２進ツリー構造内で階層的にまとめられることを特徴とする請求項７１から請求項７６記載の論理回路。
【請求項７８】
２進数を複数の２進入力として受け取るための少なくとも４つの入力と、
２進符号を出力するための少なくとも１つの出力と、
複数の入力と複数の２進出力との間で接続され、前記複数の２進出力或いはその各々を２進入力の基本対称関数として生成するようにまとめられた論理素子と
を備えることを特徴とする論理回路。
【請求項７９】
前記論理素子は、１つ或いは２つ以上の２進入力の複数の組を結合するために、排他的論理和回路を用いて、少なくとも１つの２進出力を２進入力の基本対称関数として生成するようにまとめられることを特徴とする請求項７８記載の論理回路。
【請求項８０】
前記論理素子は、２進入力の各組の要素を論理積し、論理積演算の結果を排他的論理和するようにまとめられることを特徴とする請求項７９記載の論理回路。
【請求項８１】
前記論理素子は、ｉ番目の２進出力を生成するために、各組の２ｉ個の２進入力を論理積し、各組は唯一のものであり、全ての組で２進入力の全ての可能な組合せを網羅し、ｉは１からＮの整数であり、Ｎは２進出力の数であり、ｉが各２進出力の重要さを表すことを特徴とする請求項８０記載の論理回路。
【請求項８２】
前記論理素子は、２進入力の各組の要素を論理積し、各組は唯一のものであり、全ての組で２進入力の全ての可能な組合せを網羅するようにまとめられることを特徴とする請求項８０記載の論理回路。
【請求項８３】
前記論理素子は、１つ或いは２つ以上の２進入力の複数の組を結合するために、論理和回路を用いて、少なくとも１つの２進出力を２進入力の基本対称関数として生成するようにまとめられることを特徴とする請求項７８から請求項８２のいずれか一つに記載の論理回路。
【請求項８４】
前記論理素子は、２進入力の各組の要素を論理積し、論理積演算の結果を論理和するようにまとめられることを特徴とする請求項８３記載の論理回路。
【請求項８５】
前記論理素子は、Ｎ番目の２進出力を生成するために、各組の２Ｎ−１個の２進入力を論理積し、各組は唯一のものであり、全ての組で２進入力の全ての可能な組合せを網羅し、Ｎは２進出力の数であり、Ｎ番目の２進出力が最上位であることを特徴とする請求項８４記載の論理回路。
【請求項８６】
前記論理素子は、２進入力の各組の要素を論理積し、各組は唯一のものであり、全ての組で２進入力の全ての可能な組合せを網羅するようにまとめられることを特徴とする請求項８４記載の論理回路。
【請求項８７】
前記論理回路は、１つ或いは２つ以上の２進入力の複数の組を結合するために、第１の２進出力を、排他的論理和ゲートを使用して、２進入力の基本対称関数として生成するように、また、１つ或いは２つ以上の２進入力の複数の組を結合するために、Ｎ番目の２進出力を、論理和ゲートを使用して、２進入力の基本対称関数として生成するようにまとめられていることを特徴とする請求項７８記載の論理回路。
【請求項８８】
前記論理素子は、１つ或いは２つ以上の２進入力の複数の組を結合するために、論理和ゲートを用いて２進入力の基本対称関数として、２つの可能な２進出力を、Ｎ番目の２進出力よりも下位の２進出力に対して生成するようにまとめられており、前記論理素子は、上位２進出力値に基づいて可能な２進出力の１つを選択する選択論理回路を含み、ここで、Ｎは２進出力の要素であり、可能な各２進出力に使われる組は、生成される２進出力の関数であり２つの異なる大きさを持つことを特徴とする請求項７８から請求項８７のいずれか一つに記載の論理回路。
【請求項８９】
前記論理素子は、１つ或いは２つ以上の２進入力の複数の組を結合するための、論理和ゲートを用いて２進入力の基本対称関数として、２つの可能な２進出力を、Ｎ番目の２進出力よりも下位の（Ｎ―１）番目の２進出力に対して生成するようにまとめられており、ここで、可能な各２進出力に使われる組は、それぞれ２Ｎ−１＋２Ｎ−２と２Ｎ−２の大きさであり、前記選択論理回路は、Ｎ番目の２進出力値に基づいて、可能な２進出力の１つを選択するようにまとめられていることを特徴とする請求項８８記載の論理回路。
【請求項９０】
前記論理素子は、２進入力の基本対称関数として、２つの可能な２進出力を、Ｎ番目の２進出力よりも下位の２進出力に対して生成するようにまとめられており、また、前記論理素子は、上位２進出力値に基づいて可能な２進出力の１つを選択する選択論理回路を含むことを特徴とする請求項７８から８７のいずれか１つに記載の論理回路。
【請求項９１】
前記論理素子は、２進入力の基本対称関数として、中間出力を生成するための論理ユニットを含み、また、１つの論理ユニットの中間出力と他の論理ユニットの反転出力とを論理積結合し、かつ、論理積結合した結果と他の中間出力とを論理和結合することによって、論理ユニットの中間出力を結合することで、Ｎ番目の出力よりも下位の２進出力を生成するようにまとめられることを特徴とする請求項７８から請求項８７のいずれか１つに記載の論理回路。
【請求項９２】
前記論理素子は、ｋ番目の２進出力Ｓｋを生成するようにまとめられ、ここでｋ＝０〜ｔ−１であり、ｔは以下の関係による出力の数であり、
【数２】
2004506260.tif 000031
ここで、∧は論理積演算であり、∨は論理和演算であり、¬は反転演算であることを特徴とする請求項９１記載の論理回路。
【請求項９３】
前記論理素子は、各々が２進入力のいくつかの基本対称関数として、中間２進出力を生成する複数の下位回路論理モジュールと、前記２進出力を生成するために、中間２進出力を論理的に結合するための論理回路とを含むことを特徴とする請求項７８から請求項９２のいずれか１つに記載の論理回路。
【請求項９４】
前記下位回路論理モジュールは、前記２進入力の前記いくつかの組を結合するために、論理和ゲートを用いるようにまとめられることを特徴とする請求項９３記載の論理回路。
【請求項９５】
前記論理素子は、各々が、１つ或いは２つ以上の２進入力の複数の組を結合するために、排他的論理和ゲートを用いて２進入力の基本対称関数として２進出力を生成するための、１つ或いは２つ以上の論理モジュールを含むことを特徴とする請求項９４記載の論理回路。
【請求項９６】
前記論理素子は、複数の小さな基本対称関数を実行し、結果を結合することによって、大きな基本対称関数を実行することを特徴とする請求項７８から９１のいずれか１つに記載の論理回路。
【請求項９７】
前記論理素子は、複数の論理ユニットに分割され、各論理ユニットは、論理ユニット２進出力を、論理ユニットへの２進入力の基本対称関数として生成するようにまとめられ、前記複数の入力の２進入力は、複数の前記論理ユニットへの入力に分割され、前記複数の出力の２進出力は、複数の前記論理ユニットの２進出力を用いて生成されることを特徴とする請求項７８から９６のいずれか１つに記載の論理回路。
【請求項９８】
前記論理ユニットは、階層的に高位の論理ユニットが、階層的に低位の少なくとも１つの論理ユニットの論理回路を含み、階層的に低位の論理ユニットよりも多くの２進入力を入力として持つことを特徴とする請求項９７記載の論理回路。
【請求項９９】
前記複数の入力の２進入力は、複数の前記論理ユニットへの入力への２進ツリーに従って分割されることを特徴とする請求項９７あるいは９８記載の論理回路。
【請求項１００】
前記論理ユニットは、２ｎ個の前記２進入力を受け取るようにまとめられ、ｎは、２進ツリー内の論理ユニットのレベルを示す整数であり、前記論理回路は、各レベルでｍ個の論理ユニットを持ち、ｍは、（２進入力の数）／２ｎから決定される丸められた整数であり、２進ツリー内で高いレベルの論理ユニットは、２進ツリー内の低いレベルにある論理ユニットの論理回路を備えており、各論理ユニットは、論理ユニットの２進出力を、論理ユニットへの２進入力の対称関数として生成するようにまとめられることを特徴とする請求項９９記載の論理回路。
【請求項１０１】
第１レベルにおける各論理ユニットは、前記論理回路への２進入力の小さな基本対称関数として、論理ユニット２進出力を生成するようにまとめられることを特徴とする請求項１００記載の論理回路。
【請求項１０２】
第１レベルにおける各論理ユニットは、２進入力を結合するために、論理和ゲートを用いて前記論理回路への２進入力の基本対称関数として、論理ユニット２進出力を生成するようにまとめられることを特徴とする請求項１００あるいは１０１記載の論理回路。
【請求項１０３】
第１レベルにおける各論理ユニットは、論理ユニット２進出力を生成するのに、論理ユニットへの２進入力の各々を論理積し、かつ、論理ユニットへの２進入力の各々を論理和するようにまとめられることを特徴とする請求項１０２記載の論理回路。
【請求項１０４】
第１レベルにおける各論理ユニットは、２進入力を結合するために、排他的論理和ゲートを用いた前記論理回路への２進入力の基本対称関数として、論理ユニット２進出力を生成するようにまとめられることを特徴とする請求項１０１記載の論理回路。
【請求項１０５】
第１レベルにおける各論理ユニットは、論理ユニット２進出力を生成するのに、論理ユニットへの２進入力の各々を論理積し、かつ、論理ユニットへの２進入力の各々を排他的論理和するようにまとめられることを特徴とする請求項１０４記載の論理回路。
【請求項１０６】
基本対称関数を実行するために第１レベルにおける論理ユニットとして基本論理ユニットが提供され、前記複数の入力からの論理的に隣り合う４つの２進入力を受け取る２つの第１基本論理ユニットの各々からの出力は、２つの第２基本論理ユニットへと入力され、第２基本論理ユニットの各々からの出力は、第３基本論理ユニットへと入力され、前記第１及び第２及び第３基本論理ユニットは、前記第２基本論理ユニットの各々からの２進出力と、前記第３基本論理ユニットからの２つの２進出力とを備える２進出力を持った２進ツリーの第２レベルにおいて第２論理ユニットを形成することを特徴とする請求項１００から１０５のいずれか１つに記載の論理回路。
【請求項１０７】
２進ツリーの第３レベルにおける第３論理ユニットの各々は、前記複数の入力から論理的に隣り合う８個の２進入力を受け取る２つの第２論理ユニットと、前記２つの第２論理ユニットの出力を入力として受け取る４個の基本論理ユニットと、さらに、２進入力の対称関数として、前記４個の基本論理ユニットの２進出力を用いて前記第３論理ユニットへの２進出力を生成するための論理回路とを備えることを特徴とする請求項１０６記載の論理回路。
【請求項１０８】
２進ツリーの第４レベルにおける第４論理ユニットは各々、前記複数の入力から論理的に隣り合う１６個の２進入力を受け取る２つの第３論理ユニットと、入力として前記２つの第３論理ユニットの出力を受け取る４個の基本論理ユニットと、さらに、前記４個の基本論理ユニットの２進出力を用いて前記第４論理ユニットへの２進入力の基本対称関数として、２進出力を生成するための論理回路とを備えることを特徴とする請求項１０７記載の論理回路。
【請求項１０９】
基本対称関数を実行するための第１レベルにおける論理ユニットとして基本論理ユニットが提供され、より高位のレベルの論理ユニットは、より低位のレベルの論理ユニットから成ることを特徴とする請求項１００から１０５のいずれか１つに記載の論理回路。
【請求項１１０】
第２レベル以上のより高位のレベルの前記論理ユニットは、すぐ前のレベルの論理ユニットと基本論理ユニットとを備えることを特徴とする請求項１０９記載の論理回路。
【請求項１１１】
各レベルにおける各論理ユニットは、前記論理回路への２進入力の基本対称関数として、２進入力を結合するために論理和ゲートを用いて、論理ユニット２進出力を生成するようにまとめられることを特徴とする請求項１００から１１０のいずれか１つに記載の論理回路。
【請求項１１２】
各レベルにおける各論理ユニットは、論理回路への２進入力の基本対称関数として、２進入力を結合するために排他的論理和ゲートを用いて、論理ユニット２進出力を生成するようにまとめられることを特徴とする請求項１００から１１０のいずれか１つに記載の論理回路。
【請求項１１３】
論理ユニットは、階層的にまとめられて、階層の少なくとも１つのレベル内の少なくとも１つの論理ユニットが、反転した基本対称関数を実行することを特徴とする請求項９７から１１２のいずれか１つに記載の論理回路。
【請求項１１４】
階層内の奇数のレベルにある論理ユニットは、反転した基本対称関数を実行し、階層内の偶数のレベルにある論理ユニットは、対称関数を実行し、階層の第１レベルでは、論理ユニットへの入力は、反転されることを特徴とする請求項１１３記載の論理回路。
【請求項１１５】
階層内の偶数のレベルにある論理ユニットは、反転した基本対称関数を実行し、階層内の偶数のレベルにある論理ユニットは、対称関数を実行し、階層の第１レベルでは、論理ユニットへの入力は、反転されない階層内の第１レベルの論理ユニットへ入力されることを特徴とする請求項１１３記載の論理回路。
【請求項１１６】
階層内の偶数のレベルにある論理ユニットは、反転した基本対称関数を実行し、階層内の奇数のレベルにある論理ユニットは、反転した対称関数を実行し、階層の第１レベルでは、論理ユニットへの入力は、反転されることを特徴とする請求項１１３記載の論理回路。
【請求項１１７】
階層の少なくとも１つのレベル内の少なくとも１つの論理ユニットは、基本対称関数を実行し、反転した該基本対称関数或いはその各々と、該基本対称関数或いはその各々は、階層内の連続した交互のレベルで実行されることを特徴とする請求項１１３記載の論理回路。
【請求項１１８】
階層内の少なくとも１つのレベル内の論理ユニットは、反転論理ゲートを備えることを特徴とする請求項１１３から１１７のいずれか１つに記載の論理回路。
【請求項１１９】
前記論理ユニットは、２進ツリー構造内で階層的にまとめられることを特徴とする請求項１１３から１１８のいずれか１つに記載の論理回路。
【請求項１２０】
請求項７８から請求項１１９のいずれか１つに記載の論理回路を含むことを特徴とする集積回路。
【請求項１２１】
請求項７８から請求項１１９のいずれか１つに記載の論理回路を含むことを特徴とするディジタル電子機器。
【請求項１２２】
各２進数の各ビットの組合せを備えた２進数のアレイを生成するためのアレイ生成論理回路と、
アレイ中の組合せの数を減らすための、請求項６４から請求項９８のいずれか１つに記載の少なくとも１つの論理回路を含むアレイ縮小論理回路と、
出力を生成するために、縮小した組合せを加算するための２進加算論理回路と
を備えることを特徴とする、２つの２進数を乗算するための論理回路。
【請求項１２３】
２進数を複数の２進入力として受け取るための複数の入力と、２進符号を出力するための少なくとも１つの出力と、複数の入力と該２進出力あるいはその各々との間で接続されて、該２進出力あるいはその各々を２進入力の閾値関数として生成するように作られた論理素子とを備えた論理回路を設計する方法であって、該方法は、
閾値関数を実行するための論理素子を決定する段階と、
２つの閾値関数の論理積を実行する論理素子を識別して、識別した論理素子を高い閾値を持った閾値関数を実行するための論理素子へ縮小し、２つの閾値関数の論理和を実行する論理素子を識別して、識別した論理素子を低い閾値を持った閾値関数を実行するための論理素子へと縮小することによって論理素子を縮小する段階と
を備えることを特徴とする方法。
【請求項１２４】
前記縮小は、ｋ≧ｓであり、ｎは入力の数であり、ｋとｓはハイの入力の数である時に、
ＯＲ＿ｎ＿ｋ∧ＯＲ＿ｎ＿ｓ＝ＯＲ＿ｎ＿ｋ
ＯＲ＿ｎ＿ｋ∨ＯＲ＿ｎ＿ｓ＝ＯＲ＿ｎ＿ｓ
の関係を持つ論理和閾値関数を用いて実行されることを特徴とする請求項１２３記載の方法。
【請求項１２５】
前記論理素子は、閾値関数を基本対称関数として実行するように設計され、前記論理回路は、前記２進出力或いはその各々を基本対称関数として生成するように設計されることを特徴とする請求項１２３あるいは請求項１２４に記載の方法。
【請求項１２６】
２進数を複数の２進入力として受け取るための複数の入力と、２進符号を出力するための少なくとも１つの出力と、複数の入力と該２進出力あるいはその各々との間で接続されて、該２進出力あるいはその各々を２進入力の閾値関数として生成するように作られた論理素子とを備えた論理回路を設計するシステムであって、該システムは、
閾値関数を実行するための論理素子を決定するための決定手段と、
２つの閾値関数の論理積を実行する論理素子を識別して、識別した論理素子を高い閾値を持った閾値関数を実行するための論理素子へ縮小し、２つの閾値関数の論理和を実行する論理素子を識別して、識別した論理素子を低い閾値を持った閾値関数を実行するための論理素子へと縮小することによって論理素子を縮小するための縮小手段と
を備えることを特徴とするシステム。
【請求項１２７】
前記縮小手段は、ｋ≧ｓであり、ｎは入力の数であり、ｋとｓはハイの入力の数である時に、
ＯＲ＿ｎ＿ｋ∧ＯＲ＿ｎ＿ｓ＝ＯＲ＿ｎ＿ｋ
ＯＲ＿ｎ＿ｋ∨ＯＲ＿ｎ＿ｓ＝ＯＲ＿ｎ＿ｓ
の関係を持つ論理和閾値関数を用いて縮小が実行されるように作られていることを特徴とする請求項１２６記載のシステム。
【請求項１２８】
前記決定手段は、閾値関数を基本対称関数として実行し、前記２進出力或いはその各々を基本対称関数として生成するように、論理素子が設計されるように作られることを特徴とする請求項１２６あるいは請求項１２７に記載のシステム。
【請求項１２９】
２進数を複数の２進入力として受け取るための複数の入力と、２進符号を出力するための少なくとも１つの出力と、複数の入力と前記２進出力或いはその各々との間で接続されて、前記２進出力或いはその各々を２進入力の閾値関数として生成するようにまとめられた論理素子とを備えた論理回路を設計するためのコンピュータシステムであって、該コンピュータシステムは、　コンピュータ読み取り可能なコードを記憶したメモリと、
コードを読み取って実行するためのプロセッサと
を備え、前記メモリに記憶されたコードは、前記プロセッサが、
閾値関数を実行するための論理素子を決定し、
２つの閾値関数の論理積を実行する論理素子を識別して、識別した論理素子を高い閾値を持った閾値関数を実行するための論理素子へ縮小し、２つの閾値関数の論理和を実行する論理素子を識別して、識別した論理素子を低い閾値を持った閾値関数を実行するための論理素子へと縮小することによって論理素子を縮小する
のを制御するためのコードを備えることを特徴とするコンピュータシステム。
【請求項１３０】
前記メモリに記憶されたコードは、ｋ≧ｓであり、ｎは入力の数であり、ｋとｓはハイの入力の数である時に、
ＯＲ＿ｎ＿ｋ∧ＯＲ＿ｎ＿ｓ＝ＯＲ＿ｎ＿ｋ
ＯＲ＿ｎ＿ｋ∨ＯＲ＿ｎ＿ｓ＝ＯＲ＿ｎ＿ｓ
の関係を持つ論理和閾値関数を用いて、プロセッサが縮小を実行するのを制御するためのコードを備えていることを特徴とする請求項１２９記載のコンピュータシステム。
【請求項１３１】
メモリに記憶されたコードは、プロセッサが、閾値関数を基本対称関数として実行する論理素子を設計し、かつ、前記２進出力或いはその各々を基本対称関数として生成するのを制御するためのコードを備えることを特徴とする請求項１２９あるいは請求項１３０に記載のコンピュータシステム。
【請求項１３２】
請求項１２３から請求項１２５のいずれか１つに記載の方法をコンピュータが実行するのを制御するための、コンピュータ読み取り可能な命令を運ぶための搬送媒体。
【請求項１３３】
２進数を複数の２進入力として受け取るための複数の入力と、２進符号を出力するための少なくとも１つの出力と、複数の入力と前記２進出力との間で接続されて、各２進出力を２進入力の閾値関数として生成するようにまとめられた論理素子とを備えた論理回路を設計する方法であって、該方法は、
排他的論理和を用いて論理回路を設計する段階と、
同時にハイである入力を持つことのできない論理ゲートを全て識別する段階と、
識別された排他的論理和ゲートを論理和ゲートで置き換える段階と
を備えることを特徴とする方法。
【請求項１３４】
前記論理回路は、各２進出力を２進入力の基本対称関数として生成するように設計されることを特徴とする請求項１３３記載の方法。
【請求項１３５】
前記論理回路は、複数の出力を持つ並列計数器として設計されることを特徴とする請求項１３３あるいは１３４に記載の方法。
【請求項１３６】
２進数を複数の２進入力として受け取るための複数の入力と、２進符号を出力するための複数の出力と、複数の入力と前記２進出力との間で接続されて、各２進出力を２進入力の閾値関数として生成するようにまとめられた論理素子とを備えた論理回路を設計するシステムであって、該システムは、
排他的論理和を用いて論理回路を設計するための設計手段と、
同時にハイである入力を持つことのできない論理ゲートを全て識別するための識別手段と、
識別された排他的論理和ゲートを論理和ゲートで置き換えるための置き換え手段と
を備えることを特徴とするシステム。
【請求項１３７】
前記設計手段は、論理回路が各２進出力を２進入力の基本対称関数として生成するように設計するべく作られることを特徴とする請求項１３６記載のシステム。
【請求項１３８】
前記設計手段は、論理回路を、複数の出力を持つ並列計数器として設計するように作られることを特徴とする請求項１３６あるいは請求項１３７に記載のシステム。
【請求項１３９】
２進数を複数の２進入力として受け取るための複数の入力と、２進符号を出力するための複数の出力と、複数の入力と前記２進出力との間で接続されて、各２進出力を２進入力の対称関数として生成するようにまとめられた論理素子とを備えた論理回路を設計するためのコンピュータシステムであって、該コンピュータシステムは、
コンピュータ読み取り可能なコードを記憶したメモリと、
コードを読み取って実行するためのプロセッサと
を備え、前記メモリに記憶されたコードは、プロセッサが、
排他的論理和を用いて論理回路を設計し、
同時にハイである入力を持つことのできない論理ゲートを全て識別し、
識別された排他的論理和ゲートを論理和ゲートで置き換える
のを制御するためのコードを備えることを特徴とするコンピュータシステム。
【請求項１４０】
前記メモリに記憶されたコードは、各２進出力を２進入力の基本対称関数として生成する論理回路を、プロセッサが設計するのを制御するためのコードを備えることを特徴とする請求項１３９記載のコンピュータシステム。
【請求項１４１】
前記メモリに記憶されたコードは、複数の出力を持つ並列計数器として論理回路を、プロセッサが設計するのを制御するためのコードを備えることを特徴とする請求項１３９あるいは請求項１４０に記載のコンピュータシステム。
【請求項１４２】
請求項１３３から請求項１３５のいずれか１つに記載の方法をコンピュータが実行するのを制御するためのコンピュータ読み取り可能な命令を運ぶための搬送媒体。
【請求項１４３】
論理回路を設計する方法であって、該方法は、
各々が小さな対称関数を実行するための、論理モジュール設計のライブラリを提供する段階と、
大きな対称関数を実行する論理回路を設計する段階と、
前記対称関数を実行することのできる小さな対称関数を識別する段階と、
前記小さな対称関数を実行するための前記ライブラリから論理モジュールを選択する段階と、
対称関数を実行し、他の対称関数を実行するのに使用できる１つの論理回路を、選択された論理回路から識別する段階と、
識別された対称関数に対応する論理回路を選択し、インバータと共に、選択した論理回路を用いて次の対称関数の間の関係
ＯＲ＿ｎ＿ｋ（Ｘ１．．．Ｘｎ）＝¬ＯＲ＿ｎ＿（ｎ＋１−ｋ）（¬Ｘ１．．．¬Ｘｎ）
を使って、前記他の対称関数を実行する段階と
を備え、ここで¬は反転を示し、ｎは入力の数であり、ｋは互いに論理積結合された入力の組の数であることを特徴とする方法。
【請求項１４４】
前記対称関数は、基本対称関数であることを特徴とする請求項１４３記載の方法。
【請求項１４５】
論理回路を設計するためのシステムであって、該システムは、
各々が小さな対称関数を実行するための論理モジュール設計のライブラリを記憶する記憶手段と、
大きな対称関数を実行する論理回路を設計するための設計手段と、
前記対称関数を実行することのできる小さな対称関数を識別する段階と、
前記小さな対称関数を実行するための前期ライブラリから論理モジュールを選択するための第１選択手段と、
選択された論理回路から、対称関数を実行し、他の対称関数を実行するのに使用できる１つの論理回路を識別するための識別手段と、
識別された対称関数に対応する論理回路を選択し、インバータと共に、選択した論理回路を用いて次の対称関数の間の関係
ＯＲ＿ｎ＿ｋ（Ｘ１．．．Ｘｎ）＝¬ＯＲ＿ｎ＿（ｎ＋１−ｋ）（¬Ｘ１．．．¬Ｘｎ）
を使って、前記他の対称関数を実行するための第２選択手段と
を備え、ここで¬は反転を示し、ｎは入力の数であり、ｋは互いに論理積結合された入力の組の数であることを特徴とするシステム。
【請求項１４６】
前記対称関数は、基本対称関数であることを特徴とする請求項１４５記載の方法。
【請求項１４７】
論理回路を設計するためのコンピュータシステムであって、該コンピュータシステムは、
各々が小さな対称関数を実行するための論理モジュール設計のライブラリを記憶するデータメモリと、
コンピュータ読み取り可能なコードを記憶するコードメモリと、
コードを読み出し実行するためのプロセッサと
を備え、コードメモリに記憶されるコードは、プロセッサが、
大きな対称関数を実行する論理回路を設計し、
前記対称関数を実行することのできる小さな対称関数を識別し、
前記小さな対称関数を実行するための前記ライブラリから論理モジュールを選択し、
選択された論理回路から、対称関数を実行し、他の対称関数を実行するのに使用できる１つの論理回路を識別し、
識別された対称関数に対応する論理回路を選択し、インバータと共に、選択した論理回路を用いて次の対称関数の間の関係
ＯＲ＿ｎ＿ｋ（Ｘ１．．．Ｘｎ）＝¬ＯＲ＿ｎ＿（ｎ＋１−ｋ）（¬Ｘ１．．．¬Ｘｎ）
を使って、前記他の対称関数を実行する
のを制御するためのコードを備え、ここで¬は反転を示し、ｎは入力の数であり、ｋは互いに論理積結合された入力の組の数であることを特徴とするコンピュータシステム。
【請求項１４８】
前記対称関数は、基本対称関数であることを特徴とする請求項１４７記載のコンピュータシステム。
【請求項１４９】
請求項１４３あるいは請求項１４４のいずれか１つに記載の方法をコンピュータが実行するのを制御するためのコンピュータ読み取り可能な命令を運ぶための搬送媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、広くディジタル電子機器に関し、その中で特に、２進論理を実行するディジタル電子機器に関する。本発明の１つの面は、並列計数器に関し、他の面は、２進数の乗算を実行する論理回路に関する。
【０００２】
【従来の技術および発明が解決しようとする課題】
多くの用途にとって、同じ２進の加重値のｎ個の入力を合わせて加えるブロックを持つことは役に立つ。このブロックの出力は、ハイの入力の数を２進で表したものである。その様な並列計数器と呼ばれるブロック（Ｌ．Ｄａｄｄａ， Ｓｏｍｅ Ｓｃｈｅｍｅｓ ｆｏｒ Ｐａｒａｌｌｅｌ Ｍｕｌｔｉｐｌｉｅｒｓ， Ａｌｔａ Ｆｒｅｑ：３４９−３５６（１９６５年）； Ｅ．Ｅ．Ｓｗａｒｔｚｌａｎｄｅｒ Ｊｒ．， Ｐａｒａｌｌｅｌ Ｃｏｕｎｔｅｒｓ， ＩＥＥＥ Ｔｒａｎｓ． Ｃｏｍｐｕｔ． Ｃ−２２： １０２１−１０２４（１９７３年））（これらの内容は、ここに参照として組み入れられる）は、２進の乗算を実行する回路の中で使用される。並列計数器の他の用途として、例えば、多数決復号器あるいはＲＳＡ符号化器と復号器がある。最高速を達成する並列計数器を提供することは重要なことである。乗算に並列計数器を使用するのは既知のことである（Ｌ． Ｄａｄｄａ， Ｏｎ Ｐａｒａｌｌｅｌ Ｄｉｇｉｔａｌ Ｍｕｌｔｉｐｌｉｅｒｓ， Ａｌｔａ Ｆｒｅｑ ４５： ５７４−５８０（１９７６年））（この内容は、ここに参照として組み入れられる）。
【０００３】
全加算器は、３ビットの入力と２ビットの出力を持った、特別な並列計数器である。現在提供されている、より高度な計数器、すなわち入力がよりたくさんあるものは、全加算器を用いることを前提としている（Ｃ．Ｃ．Ｆｏｓｔｅｒ ａｎｄ Ｆ．Ｄ．Ｓｔｏｃｋｔｏｎ， Ｃｏｎｔｉｎｇ Ｒｅｓｐｏｎｄｅｒｓ ｉｎ ａｎ Ａｓｓｏｃｉａｔｉｖｅ Ｍｅｍｏｒｙ， ＩＥＥＥ Ｔｒａｎｓ． Ｃｏｍｐｕｔ． Ｃ−２０：１５８０−１５８３（１９７１年））。一般的に、出力の最下位ビットは、そのような適用において最も結果が出るのが速く、一方、他のビットは、通常これより遅い。
【０００４】
以下の記述は、論理演算に用いられる。
【数３】
2004506260.tif 000003
∨　論理和
∧　論理積
¬　否定
【０００５】
並列計数器の有効な従来技術による設計（Ｆｏｓｔｅｒ ａｎｄ Ｓｔｏｃｋｔｏｎ）は、全加算器を用いている。ＦＡと表される全加算器は、図１に示される、３ビットの入力を持つ並列計数器である。これは、３つの入力Ｘ１，Ｘ２，Ｘ３と２つの出力ＳとＣとを持っている。出力に対する論理表現は、
【数４】
2004506260.tif 000004
である。
【０００６】
ＨＡと表される半加算器は、図１に示される、２ビットの入力を持つ並列計数器である。これは、２つの入力Ｘ１，Ｘ２と２つの出力ＳとＣとを持っている。出力に対する論理表現は、
【数５】
2004506260.tif 000005
である。
図２に、従来技術による、７ビット並列計数器が図示される。
【０００７】
Ｉｒｖｉｎｇ Ｔ． Ｔｏ とＴｉｅｎ Ｃｈｉ Ｃｈｅｎ による”Ｍｕｌｔｉｐｌｅ Ａｄｄｉｔｉｏｎ ｂｙ Ｒｅｓｉｄｕｅ Ｔｈｒｅｓｈｏｌｄ Ｆｕｎｃｔｉｏｎｓ ａｎｄ Ｔｈｅｉｒ Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ ｂｙ Ａｒｒａｙ Ｌｏｇｉｃ” （ＩＥＥＥ Ｔｒａｎｓ． Ｃｏｍｐｕｔ． Ｃ−２２：７６２−７６７（１９７３年））という表題の論文（この内容は、ここに参照として組み入れられる）は、残余閾値（ｒｅｓｉｄｕｅ ｔｈｒｅｓｈｏｌｄ）機能を実行するための、正確な対称関数を使って、一集まりの数を足し合わせる方法を開示している。このやり方によって、従来の全加算器の速度が改善されたが、正確に計算する必要があるために、大幅に面積が増大する。
【０００８】
乗算は、基本的な演算である。２つのｎ桁の２進数、
Ａｎ−１２ｎ−１＋Ａｎ−２２ｎ−２＋…＋Ａ１２＋Ａ０　と
Ｂｎ−１２ｎ−１＋Ｂｎ−２２ｎ−２＋…＋Ｂ１２＋Ｂ０　とが与えられると、その積である
Ｐ２ｎ−１２２ｎ−１＋Ｐ２ｎ−２２２ｎ−２＋…＋Ｐ１２＋Ｐ０　は、２ｎ桁までなり得る。出力として全てのＰｉを生成する論理回路は、一般的に図１４に描かれた方式に従う。ウォーレス（Ｗａｌｌａｃｅ）氏が乗算器として最初の高速アーキテクチャを発明し、現在では、ウォーレス・ツリー（Ｗａｌｌａｃｅ−ｔｒｅｅ）乗算器と呼ばれる（Ｗａｌｌａｃｅ， Ｃ．Ｓ．， Ａ Ｓｕｇｇｅｓｔｉｏｎ ｆｏｒ ａ Ｆａｓｔ Ｍｕｌｔｉｐｌｉｅｒ， ＩＥＥＥ Ｔｒａｎｓ． Ｃｏｍｐｕｔ． ＥＣ−１３：１４−１７（１９６４年））（この内容は、ここに参照として組み入れられる）。ダッダ（Ｄａｄｄａ）氏は、乗算器におけるビットの動きを探求した（Ｌ．Ｄａｄｄａ， Ｓｏｍｅ Ｓｃｈｅｍｅｓ ｆｏｒ Ｐａｒａｌｌｅｌ Ｍｕｌｔｉｐｌｉｅｒｓ， Ａｌｔａ Ｆｒｅｑ ３４：３４９−３５６（１９６５年））（この内容は、ここに参照として組み入れられる）。彼は、ダッダ氏のとウォーレス氏の方式に則った様々な乗算器と殆どの並列乗算器を作成した。
【０００９】
ダッダ氏の乗算器は、図２２の方式を使用する。もし、入力が８ビットならば、６４個の並列のＡＮＤ回路が図２３に示すアレイを生成する。ＡＮＤゲートの印∧は、簡略化のために書かれないので、Ａｉ∧ＢｊはＡｉＢｊとなる。図２３の他の部分には、全加算器（ＦＡ）と半加算器（ＨＡ）を含むアレイの縮小が示される。同じ列からのビットは、半加算器あるいは全加算器によって加算される。全加算器に導かれるビットの或るグループは、矩形である。半加算器に導かれるビットの或るグループは、楕円である。アレイ縮小の結果は、最終段階で、加算される２個の２進数となる。１つは、これら２個の数を高速加算法の１つによって加算するが、これは例えば条件付き加算器あるいはキャリー先読み加算器などである。
【００１０】
【課題を解決するための手段】
第１の面に従って、本発明は、基本対称関数の代数的特徴に基づいた並列計数器を提供する。複数の２進出力ビットの各々は、複数の２進入力ビットの基本対称関数として生成される。
【００１１】
基本対称関数には、１つ或いは２つ以上の２進入力値の組を論理積（ＡＮＤ）で結合することと、論理的に結合された２進入力値の組を論理和（ＯＲ）或いは排他的な論理和で結合することを含み、２進出力を生成する。論理和と排他的論理和の対称関数は、基本対称関数であり、生成された出力の２進ビットは、入力の２進ビットの中のハイの入力の数によってのみ決まる。論理和対称関数において、もし、ハイの入力の数が、ｍならば、ｍ≧ｋのときにのみ、出力はハイとなるが、ここで、ｋは、２進入力の組の大きさである。同様に、排他的論理和の対称関数を使って生成される２進出力ビットは、ｍ≧ｋであり、かつ、ハイの入力の組の入力の部分集合の数が奇数のときにのみ、出力はハイとなる。１つの実施形態において、組の大きさは選択可能である。ｉ番目の出力ビットは、排他的論理和の論理回路を用いた対称関数を用いて、その大きさが２ｉとなるよう選択することで生成することができるが、ここで、ｉは、１からＮの間の整数であり、Ｎは２進出力の数であり、ｉは、各２進出力の重要さ（ｓｉｇｎｉｆｉｃａｎｃｅ）を表す。
【００１２】
１つの実施形態において、基本対称関数で使用される２進入力の組は、それぞれ、ただ１つのものであり、２進入力の全ての可能な組合せを網羅する。
【００１３】
本発明の１つの実施形態において、論理回路は、複数の論理ユニットに分けられる。各論理ユニットは、論理ユニット２進出力を生成するのに、論理ユニットへの２進入力の対称関数として用意される。２進入力は、複数の論理ユニットへの入力に分けられ、２進出力が複数の論理ユニットの２進出力を用いて生成される。
【００１４】
この実施形態によって、回路内のファンアウトの数が減少し、論理回路を共有する数が増加する。その結果、大きな２進数のための並列計数器を、さらに実現可能にする。
【００１５】
本発明の１つの実施形態において、論理回路は、階層的に用意される複数の論理ユニットに分けられる。各論理ユニットは、論理ユニット２進出力をユニットの２進入力の基本対称関数として生成するように準備される。階層構造のより低位のおよびその各々における論理ユニットが、階層構造のより高位のおよびその各々における論理ユニットの論理回路内に含まれ、それ以上の入力を持つ。
【００１６】
本発明の特定の実施形態において、並列計数器の論理回路と入力とは、２進ツリー（ｔｒｅｅ）に従って、分けられる。その論理回路は、複数の論理ユニットに分けられる。各論理ユニットは、論理ユニット２進出力をユニットの２進入力の基本対称関数として生成するように準備される。２進入力は、複数の論理ユニットへの入力に分けられ、複数の出力の２進出力は、複数の論理ユニットの２進出力を用いて、生成される。
【００１７】
ある実施形態において、論理ユニットの各々は、２進入力の２ｎを受け取るように用意されており、ここで、ｎは、２進ツリー内の論理ユニットのレベルを示す整数であり、全体の論理回路は各レベルでｍ個の論理ユニットを持ち、ここでｍは、（２進入力の数）／２ｎから決定される丸められた整数であり、２進ツリー内に置いて高レベルの論理ユニットは、２進ツリー内のより低位のレベルで論理ユニットの論理回路を備え、各論理ユニットは、論理ユニットへの２進入力の基本対称関数として論理ユニット２進出力を生成するように決められる。
【００１８】
１つの実施形態において、第１レベルの各論理ユニットは、前記全体の論理回路への２進入力の最小基本対称関数として、論理ユニット２進出力を生成するようにまとめられる。
【００１９】
１つの実施形態において、第１レベルの各論理ユニットは、２進入力を結合するために、論理和ゲートを使用して論理回路への２進入力の基本対称関数として、論理ユニット２進出力を生成するようにまとめられる。
【００２０】
１つの実施形態において、第１レベルの各論理ユニットは、論理ユニットへの２進入力の各々を論理積し、論理ユニットへの２進入力の各々を論理和して、論理ユニット２進出力を生成するようにまとめられる。
【００２１】
１つの実施形態において、第１レベルの各論理ユニットは、論理回路への２進入力の基本対称関数として、２進入力を結合するために排他的論理和を用いて、論理ユニット２進出力を生成するようにまとめられる。
１つの実施形態において、第１レベルの各論理ユニットは、論理ユニットへの２進入力の各々を論理積し、論理ユニットへの２進入力の各々を排他的論理和して、論理ユニット２進出力を生成するようにまとめられる。
【００２２】
１つの実施形態において、基本対称関数を実行するために、基本論理ユニットは、第１レベルで論理ユニットとして提供され、また、前記複数の入力からの論理的に近い４つの２進入力を受け取るための、２つの第１基本論理ユニットの各々からの出力は、２つの第２基本論理ユニットへ入力され、副基本論理ユニットの各々からの出力は、第３基本論理ユニットへ入力され、第１及び第２及び第３論理ユニットは、第２基本論理ユニットの各々からの２進出力と、第３基本論理ユニットからの２つの２進出力とを備えた２進出力を持った２進ツリーの第２レベルにおいて、第２論理ユニットを形成する。
【００２３】
１つの実施形態において、２進ツリーの第３レベルにおける第３論理ユニットは各々、複数の入力から論理的に隣り合う８個の２進入力を受け取る２つの第２論理ユニットと、入力として２つの第２論理ユニットの出力を受け取る４個の基本論理ユニットと、さらに、４個の基本論理ユニットの２進出力を用いて第３論理ユニットへの２進入力の基本対称関数として、２進出力を生成するための論理回路とを備える。
【００２４】
１つの実施形態において、２進ツリーの第４レベルにおける第４論理ユニットは各々、複数の入力から論理的に近い１６個の２進入力を受け取る２つの第３論理ユニットと、入力として２つの第３論理ユニットの出力を受け取る４個の基本論理ユニットと、さらに、４個の基本論理ユニットの２進出力を用いて第４論理ユニットへの２進入力の基本対称関数として、２進出力を生成するための論理回路とを備える。
【００２５】
１つの実施形態において、最小の基本対称関数を実行するための第１レベルにおける論理ユニットとして基本論理ユニットが提供され、より高位のレベルの論理ユニットは、より低位のレベルの論理ユニットを備える。
【００２６】
１つの実施形態において、第２レベル以上のより高位のレベルの論理ユニットは、すぐ前のレベルの論理ユニットと基本論理ユニットとを備える。
【００２７】
１つの実施形態において、各レベルにおける各論理ユニットは、論理回路への２進入力の基本対称関数として、２進入力を結合するための論理和回路を用いて、論理ユニット２進出力を生成するようにまとめられる。
【００２８】
１つの実施形態において、各レベルにおける各論理ユニットは、論理回路への２進入力の基本対称関数として、２進入力を結合するための排他的論理和ゲートを用いて、論理ユニット２進出力を生成するようにまとめられる。
【００２９】
１つの実施形態において、２進出力の各々は、排他的論理和回路を使用する基本対称関数を用いて生成することができる。しかし、排他的論理和回路は、論理和回路ほど速くない。
【００３０】
本発明の他の実施形態によって、少なくとも１つの２進出力が、２進入力の基本対称関数として、様々な組の１つ或いは２つ以上の２進入力を結合するために、論理和回路を用いて生成される。その論理回路は、２進入力の各組の要素を論理積し、論理積演算の結果を論理和するようにまとめられる。
【００３１】
こうして、論理和回路を用いた基本対称関数を使用することで、より速くなり、出力最上位ビットを生成するのに使用することができる。そのような実施形態において、大きさの設定は、２Ｎ−１に設定され、ここでＮは、２進出力の数であり、Ｎ番目の出力が最上位である。
【００３２】
また、上位ビットの出力値に基づいて、下位ビット用に論理和回路を用いた、基本対称関数を使用することもできる。そのような場合、Ｎ番目より下位の２進出力に対して可能な複数の２進出力が、Ｎを２進出力の数とする時に、１つ或いは２つ以上の２進入力の複数の組を結合するために、論理和回路を用いて、２進入力の基本対称関数として生成される。上位２進出力値に基づいて、可能な２進出力の１つを選択するのに、選択回路が提供される。（Ｎ−１）番目のビット用の、そのような装置における、この組の大きさは、それぞれ２Ｎ−１＋２ｎ−２と２Ｎ−２であるのが望ましく、可能な２進出力の１つは、Ｎ番目の２進出力値に基づいて選択される。
【００３３】
本発明の一実施形態において、回路は、モジュラー形式で設計される。複数の下位回路モジュールが設計され、各々は、いくつかの２進入力の基本対称関数として、中間の２進出力を生成するためのものである。論理回路は、また、この実施形態において、２進出力を作るための中間の２進出力を論理的に結合するために提供される。
【００３４】
本発明の一実施形態において、論理ユニットは、階層的にまとめられて、階層の少なくとも１つのレベル内の少なくとも１つの論理ユニットが、反転した基本対称関数を実行する。１つの装置において、階層内の奇数のレベルにある論理ユニットは、反転した基本対称関数を実行し、階層内の偶数のレベルにある論理ユニットは、対称関数を実行し、階層の第１レベルでは、その論理ユニットへの入力は、反転される。他の装置において、階層内の偶数のレベルにある論理ユニットは、反転した基本対称関数を実行し、階層内の偶数のレベルにある論理ユニットは、対称関数を実行し、階層の第１レベルでは、この論理ユニットへの入力は、反転されない階層内の第１レベルの論理ユニットへ入力される。本発明のこの実施形態によって、論理回路内で使用される、高速の反転論理ゲートが可能になる。
【００３５】
論理和回路は高速なので、一実施形態において、下位論理回路モジュールは、論理和回路を用いて基本対称関数を実行する。一実施形態において、下位回路モジュールを、いくつかの２進出力を生成するのに使用することができ、また、１つ或いは２つ以上の論理モジュールを、他の２進出力をするために、提供することができるが、ここで、１つ或いは２つ以上の２進入力の複数の組を結合するために、各論理モジュールは、２進入力の排他的論理和回路の基本対称関数として、２進出力を生成する。
【００３６】
本発明の他の面によると、論理回路を設計する方法が提供され、該方法は、各々が小さい基本対称関数を実行するための論理モジュールのライブラリを提供する段階と、大きな基本対称関数を実行するための論理回路を設計する段階と、前記基本対称関数を実行できる小さな基本対称関数を識別する段階と、前記小さな基本対称関数を実行するために前記ライブラリから論理モジュールを選択する段階と、ある基本対称関数を実行し他の基本対称関数を実行するのに使用できる論理回路を、選択した論理回路内で識別する段階と、識別した基本対称関数に対応する論理回路を選択する段階と、選択した論理回路をインバータと共に使用して、基本対称関数間の
ＯＲ＿ｎ＿ｋ（Ｘ１…Ｘｎ）＝¬ＯＲ＿ｎ＿（ｎ＋１−ｋ）（¬Ｘ１…¬Ｘｎ）
という関係を使って前記他の基本対称関数を実行する段階とを備えており、ここで、¬は反転を表し、ｎは入力の数であり、ｋは互いに論理積結合される入力の数である。
【００３７】
本発明の他の面によると、ｎ個の入力から、ｍ個の可能なハイ入力を持つ条件付き並列計数器が提供され、ここでｍ＜ｎであり、ｎとｍは整数であり、前記計数器は、入力を計数してｍ個の入力に対してｐ個の出力を作る並列計数器を備え、ここで、計数器への入力の数ｎは、２ｐよりも大きく、ｐは、整数である。
【００３８】
こうして、本発明のこれらの面によると、並列計数器を用いた全てのアーキテクチャにおいて使用することのできる高速な回路が提供される。その設計は、それによって論理回路を作るような全ての技術に対して応用可能である。
本発明のこの面に従った並列計数器は、一般的に、従来の計数器よりも著しく高速の乗算回路において応用でき使用できる。
【００３９】
本発明の１つの面によると、ｎ個の入力から、ｍ個の可能なハイの入力を持つ条件付き並列計数器が提供され、ここでｍ＜ｎであり、ｎとｍは整数である。条件付き並列計数器は、上述した並列計数器を備え、これは、入力を計数して、ｍ個の入力に対してｐ個の出力を生成するが、ここで、計数器への入力の数ｎは、２ｐよりも大きい。条件付き乗算器は、例えばディジタルフィルターの中で使用することができる。
【００４０】
本発明の他の面に従って、２進数を乗算するための技術は、２つの２進数のビットの間で論理結合した、従来のものに比べて小さな配列が作られる、配列生成段階を備えている。
【００４１】
本発明のこの面に従って、２つの２進数を乗算するための論理回路は、１つの２進数に含まれる各ビットと他の２進数に含まれる各ビット間で、２進値のアレイを備えた論理２進結合値のアレイを生成する論理２進処理を行い、かつ、アレイの最大深さをＮビット未満にまで下げるのに論理的に隣接した値を論理的に結合するためのアレイ生成論理回路と、アレイの深さを２つの２進値まで下げるためのアレイ縮小論理回路と、２つの２進数の２進値を加算するための加算論理回路とを備え、ここで、Ｎは、２つの２進値の最大のもののビット数である。
【００４２】
一実施形態において、２つの２進数が互いに乗算されるとき、従来は、第１の２進数の各ビットＡｉは、第２の２進数Ｂｊの各ビットと論理的に結合されて、論理組合せＡｉとＢｊで表される２進数のシークエンス（ｓｅｑｕｅｎｃｅ）を備えるアレイを生成する。それ以外の論理的結合は、Ａ１とＢＮ−１，Ａ１とＢＮ−２，Ａ０とＢＮ−２，Ａ０とＢＮ−１の組合せを論理的に結合することによって実行されるが、ここで、Ｎは、２進数のビット数である。このようにして、アレイ内で互いに加算される数の最大列の大きさが縮小される。
【００４３】
より深く説明すると、アレイ生成論理回路は、Ａ１　ＡＮＤ　Ｂｎ−２と、Ａ０　ＡＮＤ　Ｂｎ−１の組合せを結合して、排他的論理和を用いてこの結合を置き換え、またＡ１　ＡＮＤ　ＢＮ−１と、Ａ０　ＡＮＤ　Ｂｎ−２の組合せを結合して、Ａ１　ＡＮＤ　Ｂｎ−１の結合を置き換えるようにまとめられている。
【００４４】
本発明の一実施形態では、アレイ縮小論理回路は、少なくとも１つの全加算器と、少なくとも１つの半加算器と、少なくとも１つの並列計数器との内から、少なくとも１つを含むことができる。該並列計数器あるいはその各々は、本発明の第１の面に従って、並列計数器を備えることができる。
【００４５】
本発明のこの面によって、アレイ内の最大列長が短縮され、従って、アレイ縮小に必要な段階の数が少なくなる。本発明の第１の面が、本発明の第２の面と共に用いられると、さらに効率的な乗算回路が提供される。
【００４６】
本発明の一実施形態によると、上述した論理回路を備えた積和（ｍｕｌｔｉｐｌｙ−ａｃｃｕｍｕｌａｔｅ）論理回路が与えられ、前記アレイ生成論理回路は、前の乗算の累積を含むように作られる。
【００４７】
本発明の他の面では、１つの２進数を複数の２進入力として受け取るための、少なくとも４つの入力と、２進符号を出力するための少なくとも１つの出力と、２進ツリーとして実現され、少なくとも２の閾値を持つ閾値関数に従って、第２進出力あるいはその各々を生成するために、複数の入力と該２進出力あるいはその各々との間で接続された論理素子とを備えた論理回路が提供される。閾値関数は、少なくとも入力の閾値ｋがハイの時、そしてその時のみハイであり、ｋ≧２である。
【００４８】
本発明の一実施形態において、論理素子は、該２進出力あるいはその各々を、２進入力の基本対称関数として作られ、すなわち、閾値関数は、基本対称関数として実現される。
【００４９】
本発明の他の面によると、２進数を複数の２進入力として受け取るための少なくとも４つの入力と、２進符号を出力するための少なくとも１つの出力と、複数の入力と複数の２進出力の間で接続されて該複数の２進出力あるいはその各々を２進入力の基本対称関数として生成するように作られる論理素子とを備えた論理回路が提供される。
【００５０】
本発明の他の面によると、２進数を複数の２進入力として受け取るための複数の入力と、２進符号を出力するための少なくとも１つの出力と、複数の入力と該２進出力あるいはその各々との間で接続されて、該２進出力あるいはその各々を２進入力の閾値関数として生成するように作られた論理素子とを備えた論理回路を設計するための方法とシステムが提供される。この方法は、閾値関数を実行するための論理素子を決定する段階と、２つの閾値関数の論理積を実行する論理素子を識別して、識別した論理素子を高い閾値を持った閾値関数を実行するための論理素子へ縮小する段階と、２つの閾値関数の論理和を実行する論理素子を識別して、識別した論理素子を低い閾値を持った閾値関数を実行するための論理素子へと縮小する段階と備える。
【００５１】
本発明のこの面は、１つ或いは多くのネットワーク接続されたコンピュータを備えたコンピュータシステムを用いたソフトウェアで実現される。本発明は、かくして、コンピュータシステムを制御するためのプログラムコードを含んでいる。このコードは、例えば、フロッピー（登録商標）ディスクやハードディスクやＣＤ　ＲＯＭやプログラム可能な記憶素子や、電気的、光学的、マイクロ波、音響、無線周波数などの過渡的媒体（ｔｒａｎｓｉｅｎｔ ｍｅｄｉｕｍ）のような可搬媒体上のコンピュータシステムに提供することができる。過渡的媒体の一例は、コードを、インターネットのようなネットワーク上で運ぶ信号である。
【００５２】
本発明のさらなる面によると、２進数を複数の２進入力として受け取るための複数の入力と、２進符号を出力するための少なくとも１つの出力と、複数の入力と該２進出力との間で接続されて、各々の２進出力を２進入力の対称関数として生成するように作られた論理素子とを備えた論理回路を設計するための方法とシステムが提供される。この方法は、排他的論理和を使用した論理回路を設計する段階と、同時にハイとなる入力を持つことのできない論理回路を全て識別する段階と、識別した排他的論理和を論理和に置き換える段階とを備える。
【００５３】
本発明のこの面の一実施形態では、論理回路は、各２進出力を、２進入力の基本対称関数として生成するように設計される。
本発明のこの面の特定の実施形態では、論理回路は、並列計数器を備える。
【００５４】
本発明のこの面は、１つ或いは多くのネットワークで接続されたコンピュータを備えたコンピュータシステムを用いたソフトウェアで実現される。こうして、本発明は、コンピュータシステムを制御するためのプログラムコードを含む。このコードは、例えば、フロッピー（登録商標）ディスクやハードディスクやＣＤ　ＲＯＭやプログラム可能な記憶素子や、電気的、光学的、マイクロ波、音響、無線周波数などの過渡的媒体（ｔｒａｎｓｉｅｎｔ ｍｅｄｉｕｍ）のような可搬媒体上のコンピュータシステムに提供することができる。過渡的媒体の一例は、コードを、インターネットのようなネットワーク上で運ぶ信号である。
【００５５】
本発明のさらなる面によると、その各々が小さな対称関数を実行する論理モジュール設計のライブラリを提供する段階と、大きな対称関数を実行する論理回路を設計する段階と、前記対称関数を実行することのできる小さな対称関数を識別する段階と、前記小さな対称関数を実行する前記ライブラリから論理モジュールを選択する段階と、選択された論理回路の中から、対称関数を実行し、他の対称関数を実行するのに使用できる１つの論理回路を識別する段階と、識別された対称関数に対応し、かつ、
ＯＲ＿Ｎ＿ｋ（Ｘ１…Ｘｎ）＝¬ＯＲ＿ｎ＿（ｎ＋１−ｋ）（¬Ｘ１…¬Ｘｎ）
の対称関数間の関係を用いて前記他の対称関数を実行するインバータを備えた選択された論理回路を用いて、論理回路を選択する段階とを備えた設計するための方法とシステムが提供される。前記式において、¬は反転を表し、ｎは入力の数であり、ｋは互いに論理積結合した入力の組の数である。
【００５６】
本発明のこの面の一実施形態において、対称関数は、基本対称関数である。
本発明のこの面は、１つ或いはたくさんのネットワークで接続されたコンピュータを備えたコンピュータシステムを用いたソフトウェアで実現することができる。こうして、本発明は、コンピュータシステムを制御するためのプログラムコードを含んでいる。このこのコードは、例えば、フロッピー（登録商標）ディスクやハードディスクやＣＤ　ＲＯＭやプログラム可能な記憶素子や、電気的、光学的、マイクロ波、音響、無線周波数などの過渡的媒体（ｔｒａｎｓｉｅｎｔ ｍｅｄｉｕｍ）のような可搬媒体上のコンピュータシステムに提供することができる。過渡的媒体の一例は、コードを、インターネットのようなネットワーク上で運ぶ信号である。
【００５７】
【発明の実施の形態】
次に、本発明の実施形態を、添付する図面を参照して説明する。
【００５８】
本発明の第１の面を、次に説明する。
本発明の第１の面は、２進数に含まれるハイの値の数を計数する並列計数器に関する。この計数器は、ｉ個の出力とｎ個の入力とを持ち、ここでｉはｌｏｇ２ｎプラス１の整数部分として決定される。
【００５９】
本発明の第１の面に対する数学的な基盤は、対称関数の理論である。Ｃｎｋでｎ個の要素の組の、異なるｋ個の要素の部分集合の数を表す。ｎ個の変数Ｘ１，Ｘ２，…Ｘｎの、以下に掲げる２つの関数ＥＸＯＲ＿ｎ＿ｋとＯＲ＿ｎ＿ｋを考える。
【数６】
2004506260.tif 000006
ここで、（ｉ１，ｉ２，…ｉｋ）は正確にｋ個の要素を持つ｛Ｘ１，Ｘ２，…Ｘｎ｝の可能な全ての部分集合に渡る。そのような出力を作り出すブロックは、図３に示される。
【００６０】
関数ＥＸＯＲ＿ｎ＿ｋとＯＲ＿ｎ＿ｋは、基本対称関数である。それらの値は、Ｘ１，Ｘ２，Ｘ３，…Ｘｎの中のハイの入力の数だけで決まる。より正確に言うと、もしｍがＸ１，Ｘ２，Ｘ３，…Ｘｎの中のハイの入力の数ならば、ＯＲ＿ｎ＿ｋ（Ｘ１，Ｘ２，…Ｘｎ）は、ｍ≧ｋの時のみ、ハイとなる。同様に、ＥＸＯＲ＿ｎ＿ｋ（Ｘ１，Ｘ２，…Ｘｎ）は、ｍ≧ｋかつＣｍｋが奇数の時のみ、ハイとなる。
【００６１】
ＥＸＯＲ＿ｎ＿ｋとＯＲ＿ｎ＿ｋは、似ているように見え、排他的論理和ゲートが論理和ゲートよりも遅いために、ＯＲ＿ｎ＿ｋは、より高速である。
【００６２】
上記の表記で、ｎは入力の数であり、ｋは選択された入力の部分集合の大きさである。ｋ個の入力の各組は、唯一の組であり、部分集合には、入力の組の全ての可能な部分集合が含まれている。例えば、対称関数ＯＲ＿３＿１には、３つの入力Ｘ１，Ｘ２，Ｘ３があり、この組の大きさは１である。したがって、この組には、Ｘ１，Ｘ２，Ｘ３が含まれる。これらの組の各々は、２進出力を作るために、論理和結合される。この関数を実行するための論理回路が図４に示されている。
【００６３】
図５には、対称関数ＯＲ＿４＿１を実行するための論理回路が示されている。
入力の数が大きくなると、単純な論理回路を用いることができなくなるだろう。
図６には、対称関数ＯＲ＿５＿１を実行するための２つの論理和ゲートが示されている。
【００６４】
図７には、同様に、ＥＸＯＲ＿７＿１を実行する論理回路が示されている。この組には、入力Ｘ１，Ｘ２，Ｘ３，Ｘ４，Ｘ５，Ｘ６，Ｘ７が含まれる。これらの入力は、排他的論理和ゲートの３つのレベルに入力される。
【００６５】
ｋが１より大きい時、部分集合内の入力は、論理積結合されなくてはならない。図８には、対称関数ＯＲ＿３＿２を実行するための論理回路が示されている。入力Ｘ１とＸ２は、第１の組を含んでおり、第１論理積ゲートに入力される。入力Ｘ１とＸ３は、第２の組を構成し、第２論理積ゲートに入力される。入力Ｘ２とＸ３は、第３の組を構成し、第３論理積ゲートに入力される。論理積ゲートの出力は、論理和ゲートに入力され、出力関数を生成する。
【００６６】
図９は、対称関数対称関数ＥＸＯＲ＿５＿３を実行するための論理回路が示された図である。この関数を実行するのに、５つの入力の組用の大きさ３の部分集合が、１０個の組を備え、１０個の論理積ゲートが必要になる。論理積ゲートの出力は、排他的論理和ゲートに入力されて関数を生成する。
【００６７】
対称関数を実行するための特定の論理回路は、技術に依存している。それゆえ、論理回路は、使用される技術に従って設計することになる。
本発明の第１実施形態に従って、各出力の並列計数器は、排他的論理和回路を用いた対称関数を使って作られる。
【００６８】
並列計数器に、ｎ個の入力Ｘ１，…Ｘｎと、ｔ＋１個の出力Ｓｔ，Ｓｔ−１，…Ｓ０を持たせる。Ｓ０は、最下位ビットであり、Ｓｔは最上位ビットである。０からｔの全てのｉに対して、Ｓｉ＝ＥＸＯＲ＿ｎ＿２ｉ（Ｘ１，Ｘ２，…Ｘｎ）である。
【００６９】
したがって、７ビット入力、すなわちｎ＝７に対して、ｉの値は０，１，２となることが分かる。したがって、出力Ｓ０を生成するために、関数はＥＸＯＲ＿７＿１となり、出力Ｓ１を生成するために、関数はＥＸＯＲ＿７＿２となり、出力Ｓ２を生成するために、関数はＥＸＯＲ＿７＿４となるだろう。こうして、最下位ビットに対して、組の大きさ（ｋ）は１であり、第２ビットに対して、組の大きさは、２であり、最上位ビットに対して、組の大きさは４である。上位ビットに対して必要な論理回路は、どんどん複雑になり、実行速度が遅くなるのは、明らかである。
【００７０】
したがって、本発明の第２実施形態に従って、出力最上位ビットは、論理和回路を用いた対称関数を使って生成される。
ＯＲ＿ｎ＿ｋ関数は、ＥＸＯＲ＿ｎ＿ｋ関数よりも高速であるから、これはより実際的である。出力最上位ビットに対して、
Ｓｋ＝ＯＲ＿ｎ＿２ｔ（Ｘ１，Ｘ２，…Ｘｎ）である。
特に、７ビット入力ならば、
Ｓ２＝ＯＲ＿７＿４（Ｘ１，Ｘ２，Ｘ３，Ｘ４，Ｘ５，Ｘ６，Ｘ７）である。
【００７１】
したがって、本発明のこの第２実施形態において、最上位ビットは、論理和回路を用いた対称関数を使って生成され、ところが、他のビットは、排他的論理和回路を用いた対称関数を使って生成される。
第３実施形態が、次に、説明されるが、そこでは、中間ビットが、論理和回路を用いた対称関数を使って生成される。
【００７２】
任意の出力ビットは、最上位のビットが分かっていれば、ＯＲ＿ｎ＿ｋ関数を用いて表すことができる。例えば、第２最上位ビットが、
Ｓｔ−１＝（Ｓｔ∧ＯＲ＿ｎ＿２ｔ＋２ｔ−１）∨（（¬Ｓｔ）∧ＯＲ＿ｎ＿２ｔ−１）
で与えられる。特に、７ビットの入力ならば、
Ｓ１＝（Ｓ２∧ＯＲ＿７＿６（Ｘ１，Ｘ２，Ｘ３，Ｘ４，Ｘ５，Ｘ６，Ｘ７））∨
（（¬Ｓ２）∧ＯＲ＿７＿２（Ｘ１，Ｘ２，Ｘ３，Ｘ４，Ｘ５，Ｘ６，Ｘ７））である。
【００７３】
さらに縮小すると、
Ｓ１＝ＯＲ＿７＿６（Ｘ１，Ｘ２，Ｘ３，Ｘ４，Ｘ５，Ｘ６，Ｘ７）∨
（（¬Ｓ２）∧ＯＲ＿７＿２（Ｘ１，Ｘ２，Ｘ３，Ｘ４，Ｘ５，Ｘ６，Ｘ７））である。
図３に示される乗算器ＭＵは、この論理回路を実現している。そこには、２つの入力Ｘ０，Ｘ１と、制御Ｃと、下式で決定される出力Ｚがある。
Ｚ＝（Ｃ∧Ｘ１）∨（（−Ｃ）∧Ｘ０）
【００７４】
ＥＸＯＲ＿ｎ＿ｋ関数やＯＲ＿ｎ＿ｋ関数を排他的に用いるのは、実際的でない。わずかの最上位ビットに対してＯＲ＿ｎ＿ｋを用い、残りのビットに対してＥＸＯＲ＿ｎ＿ｋを用いるのが望ましい。ＴＳＭＣ．２５において、７入力の最速の並列計数器が図１０に示されている。
【００７５】
高速のＯＲ＿１５＿８ブロックを持った将来の技術ならば、１５入力の並列計数器を作ることができるだろう。ＯＲ＿ｎ＿ｍを用いた第３最上位ビットに対する式は、次の様である。
Ｓｔ−２＝（Ｓｔ∧Ｓｔ−１∧ＯＲ＿ｎ＿２ｔ＋２ｔ−１＋２ｔ−２）∨
（Ｓｔ∧（¬Ｓｔ−１）∧ＯＲ＿ｎ＿２ｔ＋２ｔ−２）∨
（（¬Ｓｔ）∧Ｓｔ−１∧ＯＲ＿ｎ＿２ｔ―１＋２ｔ−２）∨
（（¬Ｓｔ）∧（¬Ｓｔ−１）∧ＯＲ＿ｎ＿２ｔ−２）
【００７６】
本発明の第４実施形態が、次に、説明されるが、それは、対称関数を実行する論理ブロックを再使用できる小さなブロックに分割する。
ＯＲ＿７＿２の実行が、図１１に示される。７つの入力は、２つのグループに分けられる、それは、Ｘ１からＸ５の５つの入力と、２つの残りの入力Ｘ６とＸ７である。そして、以下の恒等式は、図１１の実行の基礎になるものである。
ＯＲ＿７＿２（Ｘ１，…，Ｘ７）＝ＯＲ＿５＿２（Ｘ１，…，Ｘ５）∨
（ＯＲ＿５＿ｋ１（Ｘ１，…Ｘ５）∧ＯＲ＿２＿１（Ｘ６，Ｘ７））∨
ＯＲ＿２＿２（Ｘ６，Ｘ７）
【００７７】
ＯＲ＿７＿４とＯＲ＿７＿６に対して、同様の式を書くことができる。
ＯＲ＿７＿４（Ｘ１，…，Ｘ７）＝ＯＲ＿５＿４（Ｘ１，…，Ｘ５）∨
（ＯＲ＿５＿３（Ｘ１，…Ｘ５）∧ＯＲ＿２＿１（Ｘ６，Ｘ７））∨
（ＯＲ＿５＿２（Ｘ１，…Ｘ５）∧ＯＲ＿２＿２（Ｘ６，Ｘ７）），
ＯＲ＿７＿６（Ｘ１，…，Ｘ７）＝
（ＯＲ＿５＿５（Ｘ１，…Ｘ５）∧ＯＲ＿２＿１（Ｘ６，Ｘ７））∨
（ＯＲ＿５＿４（Ｘ１，…Ｘ５）∧ＯＲ＿２＿２（Ｘ６，Ｘ７））。
【００７８】
したがって、変数を分割して、小さなＯＲ＿ｎ＿ｋ関数を並列計数器の中で再使用するのは有利なことである。例えば、図１２で、７つの入力を２つと５つのグループに分けることに基づいた並列計数器の導入である。
同様に、７つの入力を、４つと３つのグループに分けることもできる。このやり方で分割した並列計数器が、図１３に載っている。このやり方では、次の論理式を使用する。
【００７９】
【数７】
2004506260.tif 000007
【００８０】
図１２と図１３における実行の間で方法を選ぶ必要がある。ここに、選択する際の肺炎規則（ｐｎｅｕｍｏｎｉｃ ｒｕｌｅ）がある。もし１つ或いは２つの入力が、どうしても遅れて到着した場合、７＝５＋２の分割に則った図１２のように実行すべきである。さもないと、７＝４＋３の分割に則った図１３ののように実行するのが、多分最適である。
【００８１】
６入力、５入力、４入力の並列計数器は、７入力並列計数器に対する論理回路に従って、実現することができる。入力の数を減らすことで、面積を著しく減らすことができ、速度を少々上げることができる。６，３＋３，４＋２の分割を用いて、６入力の並列計数器を実現するのが有利である。
本発明の一実施形態が、次に、図１４〜２１を参照して説明される。
【００８２】
すべてのＯＲ＿ｎ＿ｋ或いはＥＸＯＲ＿ｎ＿ｋ関数を２レベルの論理回路で実現することが可能であるが、各入力のファンアウトが非常に高く、論理和ゲートのファンインも非常に高い。ファンアウトとファンインの両方が高いことにより、回路の遅延に著しく影響することは知られている。２つ以上のＯＲ＿ｎ＿ｋ或いはＥＸＯＲ＿ｎ＿ｋ関数が、同じ入力から数えられることが、しばしば必要である。２レベルの実現は、論理回路の共有化ができず、その結果、面積が広くなる。
【００８３】
本発明のこの実施形態は、ファンアウトを減らして論理回路を再使用することができるように、入力と論理回路を分割する２進ツリーを使用する。図１４には、論理回路の構成が図示されている。第１レベルにおいて、８個の基本論理ブロック１が使用され、各々は２進入力を２つ持ち、２つの出力を備えている。第１レベルの基本論理ブロック１は、基本対称関数を実行する。これらは、排他的論理和対称関数か、あるいは論理和対称関数であってよい。第２レベルにおいて、４つの第２次論理ブロック２の各々が、２つの基本論理ブロック１の論理回路を使用し、従って、４つの入力と４つの出力を持つ。第２次論理ブロック２は、より大きな対称関数を実行する。第３次レベルにおいて、２つの３次論理ブロック３の各々が２つの第２次論理ブロック２の論理回路を使用し、従って、８つの入力と８つの出力を持つ。第３次論理ブロック２は、より大きな対称関数を実行する。第４レベルにおいて、並列計数器４は、２つの第２次論理ブロック３の論理回路を使用し、従って、１６個の入力と１６個の出力とを持つ。
【００８４】
図１４から分かるように、論理回路の２進ツリー配列によって、並列計数器に使用する、より小さな対称関数を実行する論理回路が可能になる。また、この配列は、有効な論理回路の分割に対して用意される。これによって、著しくファンアウトが減る。
後に、より詳細に説明されるであろうが、２進ツリーの中の前の論理ブロックの出力を結合するための基本対称関数の論理回路を使用することによって、さらに論理回路を分割することも可能になる。
【００８５】
関数ＯＲ＿１６＿８とＯＲ＿１６＿４とＯＲ＿１６＿１２は、入力Ｘ１，Ｘ２…Ｘ１６の組から作られている。しかし、実施形態は、各論理和ゲートを排他的論理和ゲートで置き換えた後に、同じ構造がＥＸＯＲ＿ｎ＿ｋ関数に適用されるＯＲ＿ｎ＿ｋ関数で説明される。
【００８６】
本発明のこの実施形態を支える原理を、次に説明する。関数ＯＲ＿（ｒ＋ｓ）＿ｋは、ｔが０，１，２…ｋと変化する時に、関数ＯＲ＿ｒ＿ｋ∧ＯＲ＿ｓ＿ｔ−ｋの論理和で計算することができる。
ＯＲ＿（ｒ＋ｓ）＿ｔ（Ｘ１…Ｘｒ＋ｓ）＝∨ｋ＝０ｔ［ＯＲ＿ｒ＿ｋ（Ｘ１…Ｘｒ）∧ＯＲ＿ｓ＿（ｔ−ｋ）（Ｘｒ＋１…Ｘｒ＋ｓ）］
【００８７】
１６個の入力を持つ一実施形態において、第１レベルでは、１６個の入力が８個の部分集合―｛Ｘ１，Ｘ２｝，｛Ｘ３，Ｘ４｝，…，｛Ｘ１５，Ｘ１６｝に分割され、各部分集合は、２つの入力を備える。各部分集合にとって、ＯＲ＿２＿１とＯＲ＿２＿２を計算する論理ブロックが作られる。ツリーの第１レベルから８個のブロックがある。各入力は、１つの論理和ゲートと１つの論理積ゲートへとファンアウト（ｆａｎ ｏｕｔ）するので、各入力のファンアウトは２であると分かる。第１層は、８個の同じブロックから非常に規則正しく構成される。対称関数ＯＲ＿２＿１とＯＲ＿２＿２を計算するための論理ブロック１が、図１５に示される。
【００８８】
第２レベルにおいて、４個の論理ブロック２は、レベル１における２つの隣り合う論理ブロック１からの出力を結合することにより作られる。これらの４個のブロックは、ツリーの第２層を構成する。各ブロックには、入力として、レベル１から隣り合うブロックの主力を持っている。入力は、結合されて関数ＯＲ＿４＿１、ＯＲ＿４＿２、ＯＲ＿４＿３、ＯＲ＿４＿４を形成する。これらの対称関数を計算するための論理ブロック２が、図１６に示されている。以下の式の中で使用される指標１と２は、入力の組の異なる部分集合に作られる関数を区別するものである。対称関数は、次の様に表すことができる。
【００８９】
ＯＲ＿４＿１＝［ＯＲ＿２＿１］１∨［ＯＲ＿２＿１］２，
ＯＲ＿４＿２＝（［ＯＲ＿２＿１］１∧［ＯＲ＿２＿１］２）∨
（［ＯＲ＿２＿２］１＋［ＯＲ＿２＿２］２），
ＯＲ＿４＿３＝（［ＯＲ＿２＿１］１∧［ＯＲ＿２＿２］２）∨
（［ＯＲ＿２＿２］１∧［ＯＲ＿２＿１］２），
ＯＲ＿４＿４＝［ＯＲ＿２＿２］１∧［ＯＲ＿２＿２］２
【００９０】
第３レベルにおいて、２つの論理ブロック３は、レベル２の２つの隣り合う論理ブロック２からの出力を結合して作られる。これらの２つのブロックは、ツリーの第３層を構成する。各ブロックには、入力として、レベル２からの２つの隣り合うブロックの出力がある。その入力は、関数ＯＲ＿８＿１，ＯＲ＿８＿２，ＯＲ＿８＿３，ＯＲ＿８＿４，ＯＲ＿８＿５，ＯＲ＿８＿６，ＯＲ＿８＿７，ＯＲ＿８＿８から結合される。これらの対称関数を計算するための論理ブロック３が、図１７に示される。対称関数は、以下のように表すことができる。
【００９１】
【数８】
2004506260.tif 000008
【００９２】
最後のレベルにおいて、出力は、レベル３での２つの隣り合う論理ブロック３からの出力を組み合わせることによって作られる。この論理回路は、ツリーの第３層を備える。レベル３からの２つの隣り合うブロックの出力は、関数ＯＲ＿１６＿８とＯＲ＿１６＿１２を作るために結合される。これらの対称関数を計算するための論理ブロック４が、図１８に示されている。対称関数は、以下のように表すことができる。
【００９３】
【数９】
2004506260.tif 000009
【００９４】
本発明に従って、論理ブロック３の出力を用いて並列計数器の出力を全て生成することは可能であるが、別々に並列して最下位ビットを決定することは、有利なことである。これは、図１９と図２０とに示されている。これによってファンアウトが多少増えるが、ツリーの深さを減らし、そして回路の速度を上げる。図１９は、対称関数ＥＸＯＲ＿４＿２とＥＸＯＲ＿４＿１とを決定するための論理ブロック５の図である。ＥＸＯＲ＿４＿２を決定するのに、以下のように、より高速の論理和ゲートが排他的論理和ゲートに取って代わる。
【数１０】
2004506260.tif 000010
これらの論理ブロック５の４つは、１６個の入力を取るべく提供される。こうして、論理ブロック５は、レベル１とレベル２を結合したものと考えることができる。
【００９５】
図１９において、最後の論理ゲートは、排他的論理和ゲートではなく論理和ゲートである。これは、ゲートへの両方の入力が、同時に、ハイになること、すなわち、ＡＢ＝０となることは無いので、関係
【数１１】
2004506260.tif 000011
が保たれる。こうして、本発明の１つの面に従って、この関係が保たれる状況を識別することで、より高速の論理和ゲートを全体の論理回路の設計に含めることができる。この処理は、論理回路設計の間、コンピュータプログラムによって自動的に実行することができる。
【００９６】
図２０は、本実施形態の並列計数器から出力される少なくとも２つの重要なビットを備えた対称式ＥＸＯＲ＿１５＿２とＥＸＯＲ＿１５＿１を決定するための論理ブロック６の図である。この論理ブロックは、２進ツリー内のレベル３を備えており、論理ブロック５の４つを使用する。こうして、最下位２ビットのこの並列した決定においても、２進ツリー構造を用いた論理回路の再使用である。
【００９７】
図２１は、本発明の本実施形態の並列計数器の図であり、ここで、ブロック４の論理回路は、最上位ビットを決定するのに使用され、ブロック６の論理回路は、最下位ビットを決定するのに使用される。
【００９８】
図１６，１７，１８で図示された論理ブロックにおいて、入力に対する論理回路の共有に加えて、基本論理ブロックと第２論理ブロックと第３次ブロックの出力は、基本論理ブロックへ入力され、そして、さらに論理回路を共有する。この理由は、論理和関数は、独立していないからである。もしｋ≧ｓとすると、
ＯＲ＿ｎ＿ｋ∧ＯＲ＿ｎ＿ｓ＝ＯＲ＿ｎ＿ｋ…１
ＯＲ＿ｎ＿ｋ∨ＯＲ＿ｎ＿ｓ＝ＯＲ＿ｎ＿ｓ…２
【００９９】
これは、大きな基本対称関数を実現するのに、小さな基本対称関数を実行する論理回路の、出力に対する乗算処理の中に、冗長な論理積あるいは論理和の演算が可能なものがある。
これらの式は、並列計数器に対する論理回路を著しく縮小する結果となる。そのような縮小の第１の例は、並列計数器の第２最上位ビットに対する以下の式である。
Ｓｔ−１＝ＯＲ＿ｎ＿（２ｔ＋２ｔ−１）
∨［¬ＯＲ＿ｎ＿２ｔ∧ＯＲ＿ｎ＿２ｔ―１］
【０１００】
例えば、図１０の回路において、乗算器（ＭＵ）は、ＯＲ（７，４）とＯＲ（７，６）とＯＲ（７，２）を用いてＳ１を生成する。Ｓ１を生成するための論理回路が縮小されないときには、
Ｓ１＝［ＯＲ（７，４）∧ＯＲ（７，６）］∨
［¬ＯＲ（７，４）∧ＯＲ（７，２）］
これは、上記の式１，２を用いて、次の様に縮小される。
Ｓ１＝ＯＲ（７，６）∨［¬ＯＲ（７，４）∧ＯＲ（７，２）］
こうして、関数ＯＲ（７，４）は、Ｓ１の決定において、冗長であると言うことができる。
【０１０１】
図２１の回路において、多重化は、３つの論理ゲートによって実行される。出力Ｓ２から縮小されないときには、
Ｓ２＝［ＯＲ（１５，８）∧ＯＲ（１５，１２）］∨
［¬ＯＲ（１５，８）∧ＯＲ（１５，４）］
上掲の式１と２を用いて、これは、次のようにに縮小される。
Ｓ２＝ＯＲ（１５，１２）∨［¬ＯＲ（１５，８）∧ＯＲ（１５，４）］
これは、図２１に図示されている論理回路であり、ブロック４の出力すなわちインバータと論理積ゲートと論理和ゲートとを結合するための３つの論理ゲートを備えている。
【０１０２】
こうして、式１，２に与えられる関係が、実現しようとする論理回路内で縮小をどこで可能にするかを識別する論理回路設計処理の間に、この縮小の処理を実行することができる。
そのような縮小の第２の例を示すために、もしｋ≧ｓとすると、
（［ＯＲ＿ｎ＿ｋ］１∧［ＯＲ＿ｍ＿ｓ］２）∨（［ＯＲ＿ｍ＿ｓ］１∧［ＯＲ＿ｎ＿ｋ］２）＝（［ＯＲ＿ｍ＿ｓ］１∧［ＯＲ＿ｍ＿ｓ］２）∧（［ＯＲ＿ｎ＿ｋ］１∧［ＯＲ＿ｎ＿ｋ］２）
【０１０３】
これらの式によって、ある論理回路を共有化することで、ファンアウトを減らすことができる。ブロック２に見られるように、関数ＯＲ＿４＿２とＯＲ＿４＿３は、３レベルの共有化した論理回路によって実現される。
【数１２】
2004506260.tif 000012
【０１０４】
ブロック３は、レベル３の論理回路を実現する回路である。この減少によって、関数ＯＲ＿８＿１，ＯＲ＿８＿２，ＯＲ＿８＿３，ＯＲ＿８＿４，ＯＲ＿８＿５，ＯＲ＿８＿６，ＯＲ＿８＿７，ＯＲ＿８＿８の以下の式がもたらされる。
【数１３】
2004506260.tif 000013
【０１０５】
ブロック４は、レベル４に対する論理回路を実現した回路である。関数ＯＲ＿１６＿１とＯＲ＿１６＿４とＯＲ＿１６＿１２の実現は、縮小した以下の式に従う。
【数１４】
2004506260.tif 000014
【０１０６】
本発明の本実施形態の２進ツリーの原理は、論理和あるいは排他的論理和対称関数を用いて実現することができる。排他的論理和対称式を用いる時は、適用する論理回路が縮小される。
【数１５】
2004506260.tif 000015
とし、ここでＳが、ｋの２進表記の１つの一の組として唯一のものとして決定される自然数の組であるとすると、
ＥＸＯＲ＿ｎ＿ｋ＝ＡＮＤｉ∈ＳＥＸＯＲ＿ｎ＿２ｉ
である。
【０１０７】
こうして、ＥＸＯＲ＿ｎ＿ｋを計算する回路を設計するのに、部分集合に値して関数ＥＸＯＲ＿ｎ＿２ｉを計算するだけでよく、そうすることで、排他的論理和回路は低速であるが、論理和回路を使用するよりも少ないファンアウトとなる。
図２１から分かるように、最も効率的な回路は、論理和と排他的論理和の対称関数論理回路が混じったものを含んでいてよい。
【０１０８】
それ以上の縮小は、論理和基本対称関数に基づいた並列計数器用の論理回路に適用することができる。例えば、第３上位ビットは次の表現ができる。
【数１６】
2004506260.tif 000016
【０１０９】
縮小は、次の式を使って、より一般的に書くこともできる。
【数１７】
2004506260.tif 000017
ここで、Ｓｋは、ｋ番目の出力で得有り、ｋ＝０〜ｔ−１であり、ｔは、出力の数である。
【０１１０】
最上位ビットの下の出力ビットの生成は、１つの対称関数の出力と他の対称関数の出力の反転値との少なくとも１つの論理積結合と、論理積結合の結果を論理和結合として説明することができる。
【０１１１】
縮小の他の重要な応用は、条件付き並列計数器用の論理回路である。条件付き並列計数器は、ｎ個の入力を持ったモジュールである。Ｑを｛０，１…ｎ｝の部分集合とする。この部分集合は、条件を決定する。モジュールは、このハイ入力の数がＱに属するならば、ハイ入力の数の２進表記を作り出す。もしハイ入力の数がＱに属しないならば、出力は、どんな論理関数であってもよい。そのようなモジュールは、もしハイ入力の数がＱの中にあれば、並列計数器に置き換えることができる。
【０１１２】
便利な条件付き並列計数器が、ｍ≦ｎに対して、Ｑ＝｛０，１…ｍ｝を持つ。そのような計数器に対する論理回路は、各ＯＲ＿ｍ＿ｋをＯＲ＿ｎ＿ｋに置き換えることによって、ｍ個の入力を持った並列計数器に対する論理回路から得ることができる。例えば、もしＱ＝｛０，１，２，３｝ならば、条件付き並列計数器は、次の式で与えられる、２つの出力Ｓ１，Ｓ０を持つ。
Ｓ１＝ＯＲ＿ｎ＿２，Ｓ０＝ＥＸＯＲ＿ｎ＿１
【０１１３】
条件付き並列計数器の別の例は、Ｑ＝｛０，１，２，３，４，５｝。
Ｓ２＝ＯＲ＿ｎ＿４，Ｓ１＝¬ＯＲ＿ｎ＿４∧ＯＲ＿ｎ＿２，
Ｓ０＝ＥＸＯＲ＿ｎ＿１
である。もし、これら２つの計数器の１つに対して、ハイ入力の数がＱに属さなければ、出力は、Ｑの最大要素の２進表記すなわち３＝１１，５＝１０１である。
【０１１４】
先述した実施形態は、論理ユニットの２進ツリー階層配列を備えているが、本発明は、論理ユニットのどんな階層配置にも応用可能である。入力の分割は、２進によるものである必要は無く、全ての入力は、小さな基本対称関数を実行するための論理ユニットへの入力である必要は無い。
【０１１５】
例えば、図２２は、入力の内の４つだけが、基本論理ユニットに入力される階層配置を示している。入力の４つは、この階層の第３レベルの論理ユニットへの入力のみである。階層の各レベルの各論理ユニットは、前のレベルにおける論理ユニットの論理回路を備えている。この例では、左側のレベル２の論理ユニットは、第１レベルの２つの論理回路を備えており、左側のレベル３の論理ユニットは、第２レベルの論理ユニットを２つ備えている。右側の第３レベルの論理ユニットは、本実施形態では、論理回路の下位ユニットで作られていない。第４レベルの論理ユニットは、全ての論理ユニットを備え、また論理回路を備えている。
【０１１６】
図２３は、図１２の論理回路を２つの階層レベルに分割したものを図示したものである。この例において、第１レベルにおける１つの論理ユニットには、５つの入力があり、他のものには２つある。５つの入力を持った論理ユニットは、図１２に見られるように、ＯＲ＿５＿１，ＯＲ＿５＿２，ＯＲ＿５＿３，ＯＲ＿５＿４，ＯＲ＿５＿５の対称関数を実現するための論理回路を備えている。２つの入力を持った論理ユニットは、図１２に見られるように、ＥＸＯＲ＿７＿１対称関数を実現するための論理回路を備えている。第２レベルにおける論理ユニットは、第１レベルにおける論理ユニットを備え、完全な論理回路を備えている。
【０１１７】
図２４は、図１３の論理回路を２層レベルに分割したものを図示した、別の例である。この例において、第１レベルにおける１つの論理ユニットには、４つの入力があり、他のものは３つある。４つの入力を持った論理ユニットは、図１３に見られるように、ＯＲ＿４＿１，ＯＲ＿４＿２，ＯＲ＿４＿３，ＯＲ＿４＿４の対称関数を実現するための論理回路を備えている。３つの入力を持った論理ユニットは、図１３に見られるように、ＯＲ＿３＿１，ＯＲ＿３＿２，ＯＲ＿３＿３の対称関数を実現するための論理回路を備えている。第２レベルにおける論理ユニットは、第１レベルにおける論理ユニットを備え、完全な論理回路を備えている。
【０１１８】
並列計数器の設計の間、既に使用可能な高速論理ユニットを再使用することによって、論理回路を削減することが可能である。次に有用な式がある。
ＯＲ＿ｎ＿ｋ（Ｘ１…Ｘｎ）＝¬ＯＲ＿ｎ＿（ｎ＋１−ｋ）（¬Ｘ１…¬Ｘｎ）
【０１１９】
このようにして、もしライブラリにＯＲ＿４＿３を生成する高速モジュールがあるならば、このモジュールは、ＯＲ＿４＿２を生成するのにインバータと共に使用することができる。反対の見方も同様にあり得る：ＯＲ＿４＿２モジュールによって、ＯＲ＿４＿３の生成が可能となる。経済的なトランジスタと高速な閾値関数を実現する一実施形態を、図２５〜２８を参照して次に説明する。この実施形態において、閾値関数が、基本対称関数として実現される。
【０１２０】
エレクトロニクスにおいて良く知られているのは、ＡＮＤ−ＯＲ−ＩＮＶＥＲＴ（論理積−論理和−反転）ゲートは、実現するのにトランジスタの数が少なくてすみ、かつ遅延特性が良好である。従って、本発明の本実施形態は、これを利用して、経済的かつ高速な回路設計を提供する。
【０１２１】
前述したように、良く知られているように、
ＯＲ＿ｎ＿ｋ（Ｘ１…Ｘｎ）＝¬ＯＲ＿ｎ＿（ｎ＋１−ｋ）（¬Ｘ１…¬Ｘｎ）
…　（ａ）
これから、導かれるのは、
¬ＯＲ＿ｎ＿ｋ（Ｘ１…Ｘｎ）＝ＯＲ＿ｎ＿（ｎ＋１−ｋ）（¬Ｘ１…¬Ｘｎ）
…　（ｂ）
と、
ＯＲ＿ｎ＿ｋ（¬Ｘ１…¬Ｘｎ）＝ＯＲ＿ｎ＿（ｎ＋１−ｋ）（Ｘ１…Ｘｎ）
…　（ｃ）である。
【０１２２】
表記を簡単にするために、式（ａ）は、次のように書くことができる。
【数１８】
2004506260.tif 000018
式（ｂ）は、次のように書くことができる。
【数１９】
2004506260.tif 000019
式（ｃ）は、次のように書くことができる。
【数２０】
2004506260.tif 000020
ここで、’は、出力の反転を表し、下線は、反転した入力を表す。
【０１２３】
これらの関係を用いると、基本対称関数ＯＲ＿８＿４［８，４］に対する回路は、図１４を参照した上述の実施形態と同様のやり方で作ることができる。図２５は、その中に３レベルの論理回路がある基本対称関数ＯＲ＿８＿４を、２進ツリーで実現したものを図示してある。回路は反転入力Ｘ１’…Ｘ８’を受け取る。第１層の論理ユニットは、図２６に示したように、否定論理積（ＮＡＮＤ）と否定論理和（ＮＯＲ）ゲートを備える。もしこの論理ユニットへの入力がＡ’とＢ’であるならば（’は反転を表す）、このブロックの出力は、それぞれ［２，１］＝（Ａ’∧Ｂ’）と［２，２］＝（Ａ’∨Ｂ’）である。この論理回路は、反転した入力を受け取り、基本対称関数を実行する。
【０１２４】
第２レベルにおいて、２つの連続する第１層の論理ユニットからの出力［２，１］ａ，［２，２］ａ，［２，１］ｂ，［２，２］ｂは、
【数２１】
2004506260.tif 000021
を出力するために結合される。このために、以下の関係が使用される。
【数２２】
2004506260.tif 000022
【０１２５】
これらの論理式を実現する論理回路が、図２７に示される。この論理回路は、反転されない入力を受け取り、反転した基本対称関数を実現する。
第３レベルにおいて、２つの連続する第２層の論理ユニットからの出力
【数２３】
2004506260.tif 000023
は、［８，４］を出力するために結合される。
【０１２６】
以下の関係が使用される。
【数２４】
2004506260.tif 000024
これらの論理式を実現する論理回路が、図２８に示される。この論理回路は、反転されない入力を受け取り、反転した基本対称関数を実現する。
【０１２７】
こうして、図２５〜２９から、対称関数と反転した対称関数とは、論理ユニットの階層構造の別のレベルにおいて実現される。もし、奇数のレベルがあれば、その回路への入力は、反転されなくてはならず、これは［８，４］の例で図示されている。このように反転した対称関数を使用することによって、論理積ゲートの代わりに高速の否定論理積ゲートを使用することができる（インバータの付いた否定論理積として実現され、従って、論理積ゲートの代わりに否定論理積ゲートを使用することで、関数を実現するのに必要な論理回路を減らすことができる）。必要な論理回路を減らすことで、論理回路全体の面積を減らすことにもなる。
【０１２８】
本発明の本実施形態において、階層論理構造の各レベルには、反転論理回路が含まれる。
この技術は、関数［８，４］に即して図解されたが、当業者にとっては、本技術が、いかなる大きさの関数にでも適用できることは、明らかであろう。さらに、本発明の本実施形態は、２進ツリー構造で実現されたが、本技術は、論理ユニットのいかなる階層構造に対しても使用できる。また、本発明の本実施形態は、反転した入力が使用されるが、もし階層内の論理ユニットのレベル数が偶数ならば、入力は反転される必要がない。代わりに、偶数のレベルにおける反転した対称関数を使用することができる。反転した入力は、反転した対称関数を実行する奇数レベルを持つ回路に対して必要である。
【０１２９】
条件付き並列計数器の重要な応用例は、定数乗算器（ｃｏｎｓｔａｎｔ ｍｕｌｔｉｐｌｉｅｒｓ）である。定数乗算器は、Ａが許容される定数であるだけで、入力が２つの数Ａ，Ｂの２進表記となり、出力が積Ａ＊Ｂの２進表記を含んでいるようなモジュールである。定数乗算器は、乗算器よりも小さく高速であるので、被乗数を許された定数から選ぶことができる限り、これを使うことは有益である。例えば、ディジタルフィルターを設計するのに使用することができる。
【０１３０】
本発明の別の面には、乗算の技術が含まれており、これは以降で説明される。
乗算は、ディジタル回路において、基本的な演算である。次の２つのｎ桁の２進値
Ａｎ−１２ｎ−１＋Ａｎ−２２ｎ−２＋…＋Ａ１２＋Ａ０と、
Ｂｎ−１２ｎ−１＋Ｂｎ−２２ｎ−２＋…＋Ｂ１２＋Ｂ０
が与えられると、次の積
Ｐｎ−１２ｎ−１＋Ｐｎ−２２ｎ−２＋…＋Ｐ１２＋Ｐ０
は、２ｎ桁までである。出力として全てのＰｉを生成する論理回路は、一般的に、図１４のやり方に従う。ウォレス（Ｗａｌｌａｓ）氏は、乗算器に関する最初の高速アーキテクチャを発明し、今日ではそれは、ウォレス・ツリー（Ｗａｌｌａｃｅ−ｔｒｅｅ）乗算器と呼ばれている（Ｗａｌｌａｃｅ， Ｃ．Ｓ．， Ａ Ｓｕｇｇｅｓｔｉｏｎ ｆｏｒ ａ Ｆａｓｔ Ｍｕｌｔｉｐｌｉｅｒ， ＩＥＥＥ Ｔｒａｎｓ．Ｅｌｅｃｔｒｏｎ．Ｃｏｍｐｕｔ．ＥＣ−１３：１４−１７（１９６４年））（この内容は、ここに参照として組み入れられる）。ダッダ（Ｄａｄｄａ）氏は、乗算器におけるビットの動きを研究した（Ｌ．Ｄａｄｄａ， Ｓｏｍｅ Ｓｃｈｅｍｅｓ ｆｏｒ Ｐａｒａｌｌｅｌ Ｍｕｌｔｉｐｌｉｅｒｓ， Ａｌｔａ Ｆｒｅｑ ３４：３４９−３５６（１９６５年））（この内容は、ここに参照として組み入れられる）。彼は、様々な乗算器を作成し、多くの乗算器は、ダッダ氏の方法による。
【０１３１】
ダッダ氏の乗算器では、図２９による方法が使われている。もし、入力が８ビットならば、６４個の並列の論理積ゲートは、図３０に示されるアレイを生成する。論理積ゲートの記号∧は、はっきりさせるために控え、従って、Ａｉ∧Ｂｊは、ＡｉＢｊになる。図３０の残りの部分は、全加算器（ＦＡ）と半加算器（ＨＡ）とを含む、アレイの縮小を示してある。同じ列からのビットは、半加算器或いは全加算器によって加算される。全加算器に与えられるビットのグループのいくつかは、矩形によって示される。半加算器に与えられるビットのグループのいくつかは、楕円によって示される。アレイ縮小の結果は、最後の段階で加算される２つの２進数である。これらの２つの数を、例えば条件付き加算器或いはキャリー先読み加算器などの高速化算法の１つによって加算する。
【０１３２】
本発明のこの面には、選ばれた２つの段階が備わる：本発明の第１の面による並列計数器を用いたアレイ変形とアレイ縮小である。
アレイ変形の処理を次に説明する。
【０１３３】
図３０によるようなＡｉＢｊで作られる、乗算アレイのいくつかの部分は、興味深い特徴を持っている。これらの部分における、ビットの和に対する簡単な式を書くことができる。そのような特殊な部分の例が、図３１にある。一般的に、整数ｋを選び、アレイにおいてｉ−ｊ−ｋの絶対値が１より小さいか等しいようなＡｉＢｊは、特別な部分を備えている。
【０１３４】
Ｓｉを、図１に示されるＡｉＢｊの形式の全てのビットの和のビットにする。すると、ｋ＞０の全てのｋに対して、
【数２５】
2004506260.tif 000025
ｋ＞１の全てのｋに対して、
【数２６】
2004506260.tif 000026
【０１３５】
これらの式は、アレイ中の選ばれた入力を加算する論理回路を示し、大きくはならない。無作為の数が加算されたとしても、（ｎ＋１）番目のビットに対する論理回路は、ｎ番目のビットに対する論理回路よりも大きい。
これらの式を使って、異なるアレイを作ることができる。アレイの形は変化する。これは、アレイ変形と呼ばれるからである。これらの式は、特定の形のアレイを作ることによって、乗算回路の速度を上げることができるゆえに、重要である。
【０１３６】
図３２中のアレイは、８ビット乗算用である。論理積ゲートの記号∧は、はっきりさせるために控え、従って、Ａｉ∧Ｂｊは、ＡｉＢｊになる。アレイ変形論理回路はＸとＹとＺを生成する。
【数２７】
2004506260.tif 000027
【０１３７】
図３０に対するアレイの利点は、列の中のビットの最大数が小さいことである。図３０中のアレイには、８ビットの列がある。図３２のアレイには、７ビットの列が４つあるが、８ビット或いはそれ以上のは無い。ＸとＹとＺを生成する論理回路が、図３３に示される。この論理回路は、アレイ縮小段階で、２つの第１全加算器（図２で図示される）と並列に使用することができ、従って、追加された論理回路による遅延を避ける。
【０１３８】
アレイ縮小は、図３２で図示される。第１段階では、１つの半加算器と３つの全加算器と１つの４入力並列計数器と２つの５入力並列加算器と１つの６入力並列加算器と４つの７入力並列加算器を使用する。（列７，８，９の）３つの並列加算器は、７＝５＋２の分割に基づいて実現している。ビットＸ，Ｙ，Ｚは、分割中の２のグループに加わる。列６の計数器は、７＝４＋３の分割で実現される。列５の分割は、６＝３＋３の分割に基づいている。残りの計数器は、分割されるべきではない。全加算器の位置は、楕円で示される。半加算器は、矩形で示される。
【０１３９】
最後の２つの２進数用の加算器は、２つの数におけるビットの到着時間に基づいて設計される。これは、多少利点となるが、常識すなわち条件付き加算器とリップルキャリー加算器に基づいている。
【０１４０】
本実施形態においては、２つの８ビットの数の加算が示されたが、本発明は、すべてのＮビットの２進値加算に応用できる。例えば、１６ビット加算に対して、アレイ縮小が、中間の列の高さを１６から１５に減らし、従って、２つの７ビット加算器を、第１層に対して２つの３ビット出力を作るのに使用することができ、残された入力を、先の７入力全加算器への入力として他の２つの３出力と共に使用することができ、従って、１６ビットの加算をわずか２層で行うことができる。
【０１４１】
本発明の本実施形態は、論理積２進組合せによるアレイを作ることに関して説明したが、本発明のこの面は、２つの２進数のビットの論理的結合、例えば論理和結合と排他的論理和結合と否定論理積結合とのいずれの方法をも含んだアレイの形成と、ブース（Ｂｏｏｔｈ）符号化を用いたアレイの形成のいかなる方法をも含んでいる。さらに、２つの２進数の長さは、同じである必要は無い。
【０１４２】
本発明のこの面は、特定の乗算論理回路に関して説明されたが、本発明は、積和論理回路（乗算論理回路の特殊な例と見ることもできる）を含む乗算を実行する、いかなる論理回路にも応用できる。積和論理回路において、Ａ×Ｂ＋Ｃの演算が実行され、ここでＣが前の乗算の和である。積和論理回路は、乗算論理回路に対して前述したＡ×Ｂのアレイを生成することによって動作する。さらに行がＣのビットに対するアレイの中に加えられる。Ｃは、前の和によって、ＡあるいはＢよりも多くのビットを持って良い。これによって、アレイが大きくなり、従い、上述したようにアレイ縮小を経る。
【０１４３】
本発明のこの面は、高速回路を提供するのに、本発明の第１の面の並列計数器と共に使用することができる。
【０１４４】
本発明の第１の面の並列計数器には、本発明の１つの面の乗算器で使用される以外の他の応用がある。それは、ＲＳＡと縮小した領域の乗算器内で使用することができる。乗算器の一部だけを作ることも実際的なことがある。これは、アレイが大きすぎる時、例えば、被乗数が１０００ビット以上あるＲＳＡアルゴリズムにおいてあり得る。そして、乗算器のこの一部は、アレイを縮小するために繰り返し使われる。現在、実施されているものにおいては、全加算器の集まりから成っている。全加算器の代わりに、７入力の並列計数器を使うこともできる。
【０１４５】
並列加算器は、誤り訂正符号の回路で使用することもできる。並列加算器を使って、ハミング距離を作ることができる。この距離は、ディジタル通信において有用である。特に、ハミング距離は、例えば、ビタビ復号器或いは多数決復号器のような種類の復号器において計算しなくてはならない。
【０１４６】
２つの２進メッセージ（Ａ１，Ａ２，…Ａｎ）と（Ｂ１，Ｂ２，…Ｂｎ）を与えられたとき、これらの間のハミング距離は、ＡｉとＢｉが異なるような、１とｎの間の指標ｉの数である。この距離は、そのｎ個の入力が、
【数２８】
2004506260.tif 000028
であるような並列加算器によって計算することができる。
【０１４７】
積和演算は、フィルタリングを含むために、ディジタルエレクトロニクスにおいて、基本的なものである。２ｎ個の２進数Ｘ１，Ｘ２，…Ｘｎ，Ｙ１，Ｙ２，…Ｙｎが与えられた時、この演算の結果は、Ｘ１Ｙ１＋Ｘ２Ｙ２＋…ＸｎＹｎとなる。
以上で説明した乗算器を、ハードウェアで、積和演算を実行するのに使用することができる。他の方法は、図２９の方法を使うことでも良い。積ＸｉＹｉにおける全ての部分的な積は、アレイを生成する。そして、アレイを縮小するのに並列加算器Ｘを使用する。
【０１４８】
本発明において、数のアレイを加算する必要がある時はいつでも、並列計数器を使用することができる。例えば、２の補数の形式の負の数を乗算する時、ブース記録（Ａ．Ｄ．Ｂｏｏｔｈ， Ａ Ｓｉｇｎｅｄ Ｂｉｎａｒｙ Ｍｕｌｔｉｐｌｉｃａｔｉｏｎ Ｔｅｃｈｎｉｑｕｅ， Ｑ．Ｊ．Ｍｅｃｈ．４：２３６−２４０（１９５１年））（この内容は、ここに参照として組み入れられる）或いは他の方法によって、異なるアレイを生成する。積を得るために、数のこのアレイを加算する。
【０１４９】
図３４には、本発明の他の面の実施形態が示されている。この実施形態は、閾値２を持ち、２進ツリーとして実現される閾値関数に従って、出力を生成する。従って、この回路は、ハイである入力の数（ｋ）が少なくとも２であるときに、出力を生成するための基本対称関数を実現する。
従って、出力は、論理和対称関数として生成される。
【数２９】
2004506260.tif 000029
【０１５０】
従って、回路は、スイッチとして働き、ある数の入力がハイのときに、出力を提供する。出力は、例えば、いかなるＯＲ＿ｎ＿ｋの基本対称関数を備えていても良い。ここで、ｎは入力の数、ｋはハイの入力の数である。
【０１５１】
本実施形態において、１つの出力が示されているが、本発明のこの面の原理は、１つより多い出力ＯＲ＿ｎ＿ｋを生成するのに使用することができる。例えば、１つの出力はＯＲ＿４＿２で、他の出力はＯＲ＿４＿３であって良い。従って、本発明は、閾値関数を氏よした出力を提供する論理回路を含む。これは、並列計数器出力或いは他の論理回路に使用することができる。
【０１５２】
本発明は、上で、特定の実施形態に関して説明したが、変更は本発明の趣旨と範囲の内にあることは、当業者なら明らかであろう。
上述した本発明の本実施形態の論理回路は、集積回路或いはディジタル電子機器において実現することができる。
【図面の簡単な説明】
【図１】従来技術による全加算器と半加算器の図である。
【図２】従来技術による全加算器を用いた並列計数器の図である。
【図３】２進出力を生成するために対称関数を実行する論理モジュールと、出力を選択するために使用される乗算器（選択器）の図である。
【図４】本発明の一実施形態による対称関数ＯＲ＿３＿１を実行するための論理回路の図である。
【図５】本発明の一実施形態による対称関数ＯＲ＿４＿１を実行するための論理回路の図である。
【図６】本発明の一実施形態による、２　３入力の論理和ゲートを用いた対称関数ＯＲ＿５＿１を実行するための論理回路の図である。
【図７】本発明の一実施形態による、２入力の排他的論理和ゲートを用いた対称関数ＥＸＯＲ＿７＿１を実行するための論理回路の図である。
【図８】本発明の一実施形態による対称関数ＯＲ＿３＿２を実行するための論理回路の図である。
【図９】本発明の一実施形態による対称関数ＥＸＯＲ＿５＿３を実行するための論理回路の図である。
【図１０】本発明の一実施形態による、２種類の対称関数を用い、７つの入力と３つの出力を持った並列計数器の図である。
【図１１】本発明の一実施形態による、小さい論理ブロックを再使用することができるように、対称関数ＯＲ＿７＿２を下位モジュールに分割することを示した図である。
【図１２】本発明の一実施形態による、全ての入力ビットから最下位出力ビットを生成するためのＥＸＯＲ＿７＿１対称関数を用いた並列計数器と、第２，第３出力を生成するのに論理和回路を用いて対称関数を実行す小モジュールとの図である。
【図１３】本発明の一実施形態による、入力の分割は、別に、異なる機能的下位モジュールを使用するように選択されること以外は、図１２と似た並列計数器の図である。
【図１４】本発明に第２の面による、並列計数器の持つ論理回路の２進ツリー構造を示した図である。
【図１５】本発明の一実施形態による、基本対称関数ＯＲ＿２＿２とＯＲ＿２＿１を実行するための論理ブロック（ブロック１）の図である。
【図１６】本発明の一実施形態による、第２対称関数ＯＲ＿４＿４とＯＲ＿４＿３とＯＲ＿４＿２とＯＲ＿４＿１を実行するための論理ブロック（ブロック２）の図である。
【図１７】本発明の一実施形態による、第３対称関数ＯＲ＿８＿８とＯＲ＿８＿７とＯＲ＿８＿６とＯＲ＿８＿５とＯＲ＿８＿４とＯＲ＿８＿３とＯＲ＿８＿２とＯＲ＿８＿１を実行するための論理ブロック（ブロック３）の図である。
【図１８】本発明の一実施形態による、対称関数ＯＲ＿１５＿１２とＯＲ＿１５＿８とＯＲ＿１５＿４を実行するための論理ブロック（ブロック４）の図である。
【図１９】本発明の一実施形態による、基本対称関数ＥＸＯＲ＿４＿２とＯＲ＿４＿１を実行するための論理ブロック（ブロック５）の図である。
【図２０】本発明の一実施形態による、基本対称関数ＥＸＯＲ＿１５＿２とＯＲ＿１５＿１を実行するための論理ブロック（ブロック６）の図である。
【図２１】本発明の一実施形態による、図１５〜２０の論理ブロックを用いた並列計数器を示した図である。
【図２２】本発明の一実施形態による、論理ユニットの階層構造を示した図である。
【図２３】本発明の一実施形態による、他の論理ユニットの階層構造を示した図である。
【図２４】本発明の一実施形態による、さらに他の論理ユニットの階層構造を示した図である。
【図２５】本発明の一実施形態による、基本対称関数ＯＲ＿８＿４を実行するツリー構造の論理ユニットの階層構造を示した図である。
【図２６】図２５の回路の第１レベルの高速版用の論理回路の図である。
【図２７】図２５の回路の第２レベルの高速版用の論理回路の図である。
【図２８】図２５の回路の第３レベルの高速版用の論理回路の図である。
【図２９】従来技術で使用される、乗算の段階の図である。
【図３０】図２９の処理のより詳細な図である。
【図３１】アレイ内の対角線領域の特性を示した図である。
【図３２】本発明によるアレイ変形と、アレイ縮小と追加に続く段階を示した図である。
【図３３】アレイ生成のために、この実施形態で使用された論理回路の図である。
【図３４】閾値関数として出力を生成するための論理回路の図である。
【符号の説明】
ＦＡ…全加算器
ＨＡ…半加算器
ＭＵ…乗算器
ＯＲ＿…基本対称関数
ＥＸＯＲ＿…基本対称関数
【図１５】
2004506260.tif 000032
【図１６】
2004506260.tif 000033
【図１７】
2004506260.tif 000034
【図１８】
2004506260.tif 000035
【図１９】
2004506260.tif 000036
【図２０】
2004506260.tif 000037
【図２１】
2004506260.tif 000038
【図２９】
2004506260.tif 000039
【図３０】
2004506260.tif 000040
【図３２】
2004506260.tif 000041
【国際公開パンフレット】
2004506260.tif 000042
2004506260.tif 000043
2004506260.tif 000044
2004506260.tif 000045
2004506260.tif 000046
2004506260.tif 000047
2004506260.tif 000048
2004506260.tif 000049
2004506260.tif 000050
2004506260.tif 000051
2004506260.tif 000052
2004506260.tif 000053
2004506260.tif 000054
2004506260.tif 000055
2004506260.tif 000056
2004506260.tif 000057
2004506260.tif 000058
2004506260.tif 000059
2004506260.tif 000060
2004506260.tif 000061
2004506260.tif 000062
2004506260.tif 000063
2004506260.tif 000064
2004506260.tif 000065
2004506260.tif 000066
2004506260.tif 000067
2004506260.tif 000068
2004506260.tif 000069
2004506260.tif 000070
2004506260.tif 000071
2004506260.tif 000072
2004506260.tif 000073
2004506260.tif 000074
2004506260.tif 000075
2004506260.tif 000076
2004506260.tif 000077
2004506260.tif 000078
2004506260.tif 000079
2004506260.tif 000080
2004506260.tif 000081
2004506260.tif 000082
2004506260.tif 000083
2004506260.tif 000084
2004506260.tif 000085
2004506260.tif 000086
2004506260.tif 000087
2004506260.tif 000088
2004506260.tif 000089
2004506260.tif 000090
2004506260.tif 000091
2004506260.tif 000092
2004506260.tif 000093
2004506260.tif 000094
2004506260.tif 000095
2004506260.tif 000096
2004506260.tif 000097
2004506260.tif 000098
2004506260.tif 000099
2004506260.tif 000100
2004506260.tif 000101
2004506260.tif 000102
2004506260.tif 000103
2004506260.tif 000104
2004506260.tif 000105
2004506260.tif 000106
2004506260.tif 000107
2004506260.tif 000108
2004506260.tif 000109
2004506260.tif 000110
2004506260.tif 000111
2004506260.tif 000112
2004506260.tif 000113
2004506260.tif 000114
2004506260.tif 000115
2004506260.tif 000116
2004506260.tif 000117
2004506260.tif 000118
2004506260.tif 000119
2004506260.tif 000120
2004506260.tif 000121
2004506260.tif 000122
2004506260.tif 000123
2004506260.tif 000124
2004506260.tif 000125
2004506260.tif 000126
2004506260.tif 000127
2004506260.tif 000128
2004506260.tif 000129
2004506260.tif 000130
2004506260.tif 000131
2004506260.tif 000132
2004506260.tif 000133
2004506260.tif 000134
2004506260.tif 000135
2004506260.tif 000136
2004506260.tif 000137
【国際公開パンフレット（コレクトバージョン）】
2004506260.tif 000138
2004506260.tif 000139
【国際調査報告】
2004506260.tif 000140
2004506260.tif 000141
2004506260.tif 000142
2004506260.tif 000143
2004506260.tif 000144
2004506260.tif 000145