(57)【特許請求の範囲】
【請求項１】
コンフィギュレーションデータに応じて複数の４入力１出力論理機能の中から一つの論理機能が選択され、前記選択された論理機能に従って第１、第２、第３および第４論理入力から論理出力を生成する論理機能生成器と、
前記第２、第３および第４論理入力から4-2キャリ出力信号を生成する4-2キャリブロックと、
少なくとも前記論理出力を入力し、第１信号を生成する第１信号生成手段と、
少なくとも前記第１論理入力を入力し、第２信号を生成する第２信号生成手段と、
少なくとも4-2キャリ入力信号を入力し、第３信号を生成する第３信号生成手段と、
少なくとも前記4-2キャリ入力信号を入力し、第４信号を生成する第４信号生成手段と、
前記第１信号に従って、前記第２信号及び前記第３信号のいずれかを選択してキャリ出力信号として出力する選択手段と、
前記論理出力と前記第４信号との排他的論理和を出力する排他的論理和回路と、
を備えることを特徴とする機能ブロック。
【請求項２】
請求項１に記載の機能ブロックであって、
前記4-2キャリブロックは、
前記第３および第４論理入力の排他的論理和を出力する4-2キャリ排他的論理和回路と、
前記4-2キャリ排他的論理和回路の出力に従って、前記4-2キャリ排他的論理和回路の一方の入力および前記第２論理入力のいずれか一方を選択して前記4-2キャリ出力信号として出力する4-2キャリマルチプレクサと、
を備えることを特徴とする機能ブロック。
【請求項３】
請求項１に記載の機能ブロックであって、
前記論理機能生成器は、４入力１出力排他的論理和を生成することを特徴とする機能ブロック。
【請求項４】
請求項１に記載の機能ブロックであって、
前記第１信号生成手段が出力する前記第１信号は前記論理出力であることを特徴とする機能ブロック。
【請求項５】
請求項１に記載の機能ブロックであって、
前記第１信号生成手段は、少なくとも第１制御信号および前記論理出力を入力し、いずれか一方を選択して前記第１信号として出力する第１選択回路からなることを特徴とする機能ブロック。
【請求項６】
請求項５に記載の機能ブロックであって、
前記選択手段は、前記第１信号が前記第１制御信号であるとき、前記第２信号を選択してキャリ出力信号として出力することを特徴とする機能ブロック。
【請求項７】
請求項５に記載の機能ブロックであって、
前記第１制御信号は固定されていない動的信号であることを特徴とする機能ブロック。
【請求項８】
請求項１に記載の機能ブロックであって、
前記第２信号生成手段が出力する前記第２信号は、前記第１論理入力であることを特徴とする機能ブロック。
【請求項９】
請求項１に記載の機能ブロックであって、
前記第２信号生成手段は、前記第１、第２、第３および第４論理入力の少なくとも２つから一つを選択し前記第２信号として出力する第２選択回路からなることを特徴とする機能ブロック。
【請求項１０】
請求項９に記載の機能ブロックであって、
前記第２選択回路は、動的信号によって制御される少なくとも１つのマルチプレクサからなることを特徴とする機能ブロック。
【請求項１１】
請求項１に記載の機能ブロックであって、
前記第３信号生成手段が出力する第３信号は、前記4-2キャリ入力信号であることを特徴とする機能ブロック。
【請求項１２】
請求項１に記載の機能ブロックであって、
前記第３信号生成手段は、少なくとも、前記第１、第２、第３および第４論理入力の少なくとも１つと前記4-2キャリ入力信号とを含む第１複数信号群から１つを選択し、前記第３信号として出力する第３選択回路からなることを特徴とする機能ブロック。
【請求項１３】
請求項１２に記載の機能ブロックであって、
前記第１複数信号群は、さらに、他の信号を含むことを特徴とする機能ブロック。
【請求項１４】
請求項１に記載の機能ブロックであって、
前記第４信号生成手段が出力する第４信号は、前記4-2キャリ入力信号であることを特徴とする機能ブロック。
【請求項１５】
請求項１に記載の機能ブロックであって、
前記第４信号生成手段は、少なくとも前記4-2キャリ入力信号を含む第２複数信号群から一つを選択し、前記第４信号として出力する第４選択回路からなることを特徴とする機能ブロック。
【請求項１６】
請求項１５に記載の機能ブロックであって、
前記第２複数信号群は固定論理値を含むことを特徴とする機能ブロック。
【請求項１７】
請求項１に記載の機能ブロックであって、
前記第３信号生成手段は、少なくとも、前記第１、第２、第３および第４論理入力の少なくとも１つと前記4-2キャリ入力信号とを含む第１複数信号群から１つを選択し、前記第３信号として出力する第３選択回路からなり、
前記第４信号生成手段は、少なくとも前記4-2キャリ入力信号を含む第２複数信号群から一つを選択し、前記第４信号として出力する第４選択回路からなり、
前記第３選択回路と前記第４選択回路とは１つの回路で構成され、前記第１複数信号群と前記第２複数信号群とは同一であることを特徴とする機能ブロック。
【請求項１８】
請求項１に記載の機能ブロックであって、
前記第３信号生成手段は、少なくとも、前記第１、第２、第３および第４論理入力の少なくとも１つと前記4-2キャリ入力信号とを含む第１複数信号群から１つを選択し、前記第３信号として出力する第３選択回路からなり、
前記第４信号生成手段は、少なくとも前記4-2キャリ入力信号を含む第２複数信号群から一つを選択し、前記第４信号として出力する第４選択回路からなり、
前記第４信号生成手段は前記第３信号生成手段を含み、前記第２複数信号群は前記第１複数信号群を含むことを特徴とする機能ブロック。
【請求項１９】
請求項１に記載の機能ブロックであって、
前記第３信号生成手段は、少なくとも、前記第１、第２、第３および第４論理入力の少なくとも１つと前記4-2キャリ入力信号とを含む第１複数信号群から１つを選択し、前記第３信号として出力する第３選択回路からなり、
前記第４信号生成手段は、少なくとも前記4-2キャリ入力信号を含む第２複数信号群から一つを選択し、前記第４信号として出力する第４選択回路からなり、
前記第１複数信号群および前記第２複数信号群の少なくとも一方はリップルキャリ入力信号を含むことを特徴とする機能ブロック。
【請求項２０】
請求項１に記載の機能ブロックであって、
少なくとも前記論理機能生成器の第１ないし第４論理入力のうちの２つとリップルキャリ入力信号とに基づいて、桁上げ信号を生成してリップルキャリ出力信号を生成するリップルキャリ生成手段をさらに有することを特徴とする機能ブロック。
【請求項２１】
請求項２０に記載の機能ブロックであって、
前記リップルキャリ生成手段は、前記論理出力に応じて、前記論理機能生成器の第１ないし第４論理入力のうちの1つと前記リップルキャリ入力信号とから一方を選択してリップルキャリ出力として出力するリップルキャリマルチプレクサであることを特徴とする機能ブロック。
【請求項２２】
請求項２０に記載の機能ブロックであって、
前記リップルキャリ生成手段は、前記論理機能生成器の第１ないし第４論理入力のうちの２つと、前記論理出力と、前記リップルキャリ入力と、から桁上げ信号を生成してリップルキャリ出力として出力するリップルキャリブロックであることを特徴とする機能ブロック。
【請求項２３】
請求項１に記載の機能ブロックであって、
前記第１、第２、第３および第４の論理入力の少なくとも一つに接続され、複数の論理機能の中から任意の一つの論理機能をプログラマブルに設定可能な前置回路がさらに設けられたことを特徴とする機能ブロック。
【請求項２４】
請求項２３に記載の機能ブロックであって、
前記前置回路はコンフィギュレーションデータに応じて論理機能が設定されることを特徴とする機能ブロック。
【請求項２５】
請求項２３に記載の機能ブロックであって、
前記前置回路は、複数の機能ブロック間をプログラマブルに接続する相互接続網上の動的信号および固定論理値に基づいて論理機能が設定されることを特徴とする機能ブロック。
【請求項２６】
請求項２４に記載の機能ブロックであって、
前記前置回路はルックアップテーブルであることを特徴とする機能ブロック。
【請求項２７】
請求項２５に記載の機能ブロックであって、
前記前置回路は動的信号によって制御可能なマルチプレクサであることを特徴とする機能ブロック。
【請求項２８】
請求項２３に記載の機能ブロックであって、
前記複数の論理機能は論理積機能を含むことを特徴とする機能ブロック。
【請求項２９】
請求項２３に記載の機能ブロックであって、
前記前置回路が前記第１、第２、第３および第４の論理入力の少なくとも２つ以上に接続されたことを特徴とする機能ブロック。
【請求項３０】
請求項２９に記載の機能ブロックであって、
少なくとも１つの前置回路はコンフィギュレーションデータに応じて論理機能が設定されるルックアップテーブルであり、
少なくとも１つの他の前記前置回路は、複数の機能ブロック間をプログラマブルに接続する相互接続網上の信号と固定論理値とからプログラマブルに選択された信号が供給されることで論理機能が設定される、ことを特徴とする機能ブロック。
【請求項３１】
請求項２９に記載の機能ブロックであって、
少なくとも２つの前記前置回路は、動的信号によって制御可能なマルチプレクサであることを特徴とする機能ブロック。
【請求項３２】
請求項２９記載の機能ブロックであって、
少なくとも２つの前記前置回路は、論理積機能を設定可能であることを特徴とする機能ブロック。
【請求項３３】
請求項２３に記載の機能ブロックであって、
前記前置回路が前記第１、第２、第３および第４の論理入力のそれぞれに接続されたことを特徴とする機能ブロック。
【請求項３４】
請求項３３に記載の機能ブロックであって、
前記４つの前置回路は動的信号によって制御可能なマルチプレクサであることを特徴とする機能ブロック。
【請求項３５】
請求項３３に記載の機能ブロックであって、
前記４つの前置回路は論理積機能を設定可能であることを特徴とする機能ブロック。
【請求項３６】
複数の接続配線からなる相互接続配線群にプログラマブルに接続可能な機能セルにおいて、
前記相互接続配線群から複数の入力をプログラマブルに選択する入力選択手段と、
前記複数の入力から少なくとも加算出力信号およびキャリ出力信号からなる複数の出力信号を生成する機能ブロックと、
前記複数の出力信号を、前記相互接続配線群からプログラマブルに選択した接続配線へそれぞれ出力する出力選択手段と、
を有し、
前記機能ブロックは、
コンフィギュレーションデータに応じて複数の４入力１出力論理機能の中から一つの論理機能が選択され、前記選択された論理機能に従って第１、第２、第３および第４論理入力から論理出力を生成する論理機能生成器と、
前記第２、第３および第４論理入力から4-2キャリ出力信号を生成する4-2キャリブロックと、
少なくとも前記論理出力を入力し、第１信号を生成する第１信号生成手段と、
少なくとも前記第１論理入力を入力し、第２信号を生成する第２信号生成手段と、
少なくとも4-2キャリ入力信号を入力し、第３信号を生成する第３信号生成手段と、
少なくとも前記4-2キャリ入力信号を入力し、第４信号を生成する第４信号生成手段と、
前記第１信号に従って、前記第２信号及び前記第３信号のいずれかを選択して前記キャリ出力信号として出力する選択手段と、
前記論理出力と前記第４信号との排他的論理和を前記加算出力信号として出力する排他的論理和回路と、
を備えることを特徴とする機能セル。
【請求項３７】
請求項３６記載の機能セルにおいて、
前記出力選択手段は、
少なくとも前記加算出力信号および前記キャリ出力信号を入力し、これら２つの信号をそのまま出力するか又は交換して出力するかをプログラマブルに設定する信号交換手段と、
前記信号交換手段の第１出力信号を前記相互接続配線群の第１配線群に選択的に出力する第１出力選択ブロックと、
前記信号交換手段の第２出力信号を、前記相互接続配線群内の前記第１配線群と共通でない第２配線群に選択的に出力する第２出力選択ブロックと、
を有する、
ことを特徴とする機能セル。
【請求項３８】
請求項３６記載の機能セルにおいて、
前記出力選択手段は、
前記加算出力信号および前記キャリ出力信号を、それぞれ、そのまま出力するか又はメモリを介して出力するかをプログラマブルに選択可能な第１レジスタブロックおよび第２レジスタブロックと、
前記メモリを介して出力される場合は、当該出力を前記相互接続配線群を介さずに前記機能ブロックへ供給する手段と、
を有することを特徴とする機能セル。
【請求項３９】
請求項３６記載の機能セルにおいて、
前記出力選択手段は、
少なくとも前記加算出力信号および前記キャリ出力信号を入力し、これら２つの信号をそのまま出力するか又は交換して出力するかをプログラマブルに設定する信号交換手段と、
前記信号交換手段の２つの出力を、それぞれ、そのまま出力するか又はメモリを介して出力するかをプログラマブルに選択可能な第１レジスタブロックおよび第２レジスタブロックと、
前記第１レジスタブロックのメモリを介さない出力を、前記相互接続配線群の第１配線群に選択的に出力する第１出力選択ブロックと、
前記第２レジスタブロックのメモリを介さない出力を、前記相互接続配線群内の前記第１配線群と共通でない第２配線群に選択的に出力する第２出力選択ブロックと、
前記メモリを介した出力を前記相互接続配線群を介さずに前記機能ブロックへ供給する手段と、
を有する、
ことを特徴とする機能セル。
【請求項４０】
第１機能ブロックおよび第２機能ブロックからなる複合機能ブロックにおいて、
前記第１機能ブロックは、
コンフィギュレーションデータに応じて複数の４入力１出力論理機能の中から一つの論理機能が選択され、前記選択された論理機能に従って第１、第２、第３および第４論理入力から論理出力Ａを生成する論理機能生成器Ａと、
前記第２、第３および第４論理入力から4-2キャリ出力信号Ａを生成する4-2キャリブロックＡと、
少なくとも前記論理出力Ａを入力し、第１信号Ａを生成する第１信号生成手段Ａと、
少なくとも前記第１論理入力を入力し、第２信号Ａを生成する第２信号生成手段Ａと、
4-2キャリ入力信号を少なくとも含む第１複数信号群から１つを選択して第３信号Ａを生成する第３信号生成手段Ａと、
前記4-2キャリ入力信号を少なくとも含む第２複数信号群から１つを選択して第４信号Ａを生成する第４信号生成手段Ａと、
前記第１信号Ａに従って、前記第２信号Ａ及び前記第３信号Ａのいずれかを選択してキャリ出力信号Ａとして出力する選択手段Ａと、
前記論理出力Ａと前記第４信号Ａとの排他的論理和を出力する排他的論理和回路Ａと、
前記第１論理入力と、第２ないし第４論理入力のいずれか一つと、の論理積を出力する第１論理積回路と、
を有し、
前記第２機能ブロックは、
コンフィギュレーションデータに応じて複数の４入力１出力論理機能の中から一つの論理機能が選択され、前記選択された論理機能に従って第５、第６、第７および第８論理入力から論理出力Ｂを生成する論理機能生成器Ｂと、
前記第６、第７および第８論理入力から4-2キャリ出力信号Ｂを生成する4-2キャリブロックＢと、
少なくとも前記論理出力Ｂを入力し、第１信号Ｂを生成する第１信号生成手段Ｂと、
少なくとも前記第５論理入力を入力し、第２信号Ｂを生成する第２信号生成手段Ｂと、
前記4-2キャリ出力信号Ａおよび前記第１論理積回路の出力を少なくとも含む第３複数信号群から１つを選択し、第３信号Ｂを生成する第３信号生成手段Ｂと、
前記4-2キャリ出力信号Ａおよび前記キャリ出力信号Ａを少なくとも含む第４複数信号群から一つを選択し、第４信号Ｂを生成する第４信号生成手段Ｂと、
前記第１信号Ｂに従って、前記第２信号Ｂ及び前記第３信号Ｂのいずれかを選択してキャリ出力信号Ｂとして出力する選択手段Ｂと、
前記論理出力Ｂと前記第４信号Ｂとの排他的論理和を出力する排他的論理和回路Ｂと、
前記論理機能生成器Ａの論理出力Ａと前記論理機能生成器Ｂの論理出力Ｂとの論理積を出力する第２論理積回路と、
前記第２論理積回路の論理積出力とリップルキャリ入力信号との論理積と、前記選択手段Ｂから出力されるキャリ出力信号Ｂと、の論理和をリップルキャリ出力信号として出力する論理積・論理和回路と、
を有することを特徴とする複合機能ブロック。
【請求項４１】
請求項４０に記載の複合機能ブロックにおいて、
前記論理積・論理和回路は、
前記第２論理積回路の出力と前記リップルキャリ入力信号とを入力する第１否定論理積回路と、
前記第１否定論理積回路の出力と前記キャリ出力信号Ｂの否定とを入力し、前記リップルキャリ出力信号を出力する第２否定論理積回路と、
からなることを特徴とする複合機能ブロック。
【請求項４２】
コンフィギュレーションデータに応じて４入力１出力排他的論理和を含む複数の論理機能の中から一つの論理機能が選択され、前記選択された論理機能に従って第１乃至第４の論理入力から出力を生成する論理機能生成器と、
少なくとも３つの前記論理入力から桁上げ信号を生成し4-2キャリ出力として出力する4-2キャリブロックと、
少なくとも１つの前記論理入力と4-2キャリ入力とを含む複数信号から桁上げ信号を生成しキャリ出力として出力するキャリブロックと、
動的信号によって制御可能な第１と第２のマルチプレクサと、を備え、
前記第１と第２の論理入力には、それぞれ前記第１と第２のマルチプレクサの出力が供給されることを特徴とする機能ブロック。
【請求項４３】
請求項４２に記載の機能ブロックにおいて、
動的信号によって制御可能な第３と第４のマルチプレクサとを備え、
前記第３と第４の論理入力には、それぞれ前記第３と第４のマルチプレクサの出力が供給されることを特徴とする機能ブロック。
【請求項４４】
コンフィギュレーションデータに応じて４入力１出力排他的論理和を含む複数の論理機能の中から一つの論理機能が選択され、前記選択された論理機能に従って第１乃至第４の論理入力から出力を生成する論理機能生成器と、
動的信号によって制御可能な第１、第２、第３のマルチプレクサとを備え、
前記第１と第２の論理入力には、それぞれ前記第１と第２のマルチプレクサの出力が供給され、
前記第３のマルチプレクサは、制御信号に応じて前記第１と第２のマルチプレクサの出力のうち一方を選択して出力する、ことを特徴とする機能ブロック。
【請求項４５】
請求項４４に記載の機能ブロックにおいて、
前記論理機能生成器の出力から第１信号を生成する第１信号生成手段と、
4-2キャリ入力から第２信号を生成する第２信号生成手段と、
前記第１信号に応じて、前記第２信号と前記第３のマルチプレクサの出力とを含む複数信号から一つを選択して出力する第４のマルチプレクサと、
を備えることを特徴とする機能ブロック。
【請求項４６】
請求項４４に記載の機能ブロックにおいて、さらに、
リップルキャリ入力と前記第３のマルチプレクサの出力とを含む複数信号から桁上げ信号を生成しリップルキャリ出力として出力するリップルキャリブロックを備えることを特徴とする機能ブロック。
【請求項４７】
請求項４４に記載の機能ブロックにおいて、さらに、
少なくとも３つの前記論理入力から桁上げ信号を生成し4-2キャリ出力として出力する4-2キャリブロックを備えることを特徴とする機能ブロック。
【請求項４８】
コンフィギュレーションデータに応じて４入力１出力排他的論理和を含む複数の論理機能の中から一つの論理機能が選択され、前記選択された論理機能に従って第１乃至第４の論理入力から出力を生成する論理機能生成器と、
動的信号によって制御可能な第１、第２、第３のマルチプレクサと、
前記論理機能生成器の出力から第１信号を生成する第１信号生成手段と、
前記第２の論理入力から第２信号を生成する第２信号生成手段と、を備え、
前記第１と第２の論理入力には、それぞれ前記第１と第２のマルチプレクサの出力が供給され、
前記第３のマルチプレクサは、前記第１信号に応じて、前記第１マルチプレクサの出力と前記第２信号とを含む複数信号から一つを選択して出力する、
ことを特徴とする機能ブロック。
【請求項４９】
請求項４８に記載の機能ブロックにおいて、さらに、
少なくとも３つの前記論理入力から桁上げ信号を生成し4-2キャリ出力として出力する4-2キャリブロックを備えることを特徴とする機能ブロック。
【請求項５０】
コンフィギュレーションデータに応じて４入力１出力排他的論理和を含む複数の論理機能の中から一つの論理機能が選択され、前記選択された論理機能に従って第１乃至第４の論理入力から出力を生成する論理機能生成器と、
動的信号によって制御可能な第１〜第６のマルチプレクサと、を備え、
前記第１乃至第４の論理入力には、それぞれ前記第１乃至第４のマルチプレクサの出力が供給され、
前記第５のマルチプレクサの入力には、少なくとも前記第１と第２の論理入力が供給され、
前記第６のマルチプレクサの入力には、少なくとも前記第３と第４の論理入力が供給される、
ことを特徴とする機能ブロック。
【請求項５１】
請求項５０に記載の機能ブロックにおいて、
前記第５と第６のマルチプレクサは同じ信号によって制御されることを特徴とする機能ブロック。
【請求項５２】
請求項５０に記載の機能ブロックにおいて、さらに、
前記論理機能生成器の出力から第１信号を生成する第１信号生成手段と、
前記第６のマルチプレクサの出力から第２信号を生成する第２信号生成手段と、
前記第１信号に応じて、前記第２信号と前記第５のマルチプレクサの出力とを含む複数信号から一つを選択して出力する第７のマルチプレクサと、
を備えることを特徴とする機能ブロック。
【請求項５３】
請求項５０に記載の機能ブロックにおいて、さらに、
前記第５と第６のマルチプレクサの出力のうち少なくとも１つとリップルキャリ入力とを含む複数信号から桁上げ信号を生成しリップルキャリ出力として出力するリップルキャリブロックを備えることを特徴とする機能ブロック。
【請求項５４】
請求項５０に記載の機能ブロックにおいて、
動的信号によって制御可能な第７のマルチプレクサを備え、前記第７のマルチプレクサの入力は前記第５と第６のマルチプレクサの出力によって供給されることを特徴とする機能ブロック。
【請求項５５】
請求項５４に記載の機能ブロックにおいて、さらに、
前記論理機能生成器の出力から第１信号を生成する第１信号生成手段と、
前記第１信号に応じて、前記第７のマルチプレクサの出力と4-2キャリ入力とを含む複数信号から一つを選択して出力する第８のマルチプレクサと、
を備えることを特徴とする機能ブロック。
【請求項５６】
請求項５４に記載の機能ブロックにおいて、さらに、
前記第７のマルチプレクサの出力とリップルキャリ入力とを含む複数信号から桁上げ信号を生成しリップルキャリ出力として出力するリップルキャリブロックを備えることを特徴とする機能ブロック。
【請求項５７】
請求項５０に記載の機能ブロックにおいて、さらに、
少なくとも３つの前記論理入力から桁上げ信号を生成し4-2キャリ出力として出力する4-2キャリブロックを備えることを特徴とする機能ブロック。
【請求項５８】
コンフィギュレーションデータに応じて４入力１出力排他的論理和を含む複数の論理機能の中から一つの論理機能が選択され、前記選択された論理機能に従って第１乃至第４の論理入力から論理出力を生成する論理機能生成器と、
論理積機能が含まれる複数の論理機能の中からプログラマブルに任意の一つの論理機能を設定可能な２つの前置回路と、
前記論理出力から第１信号を生成する第１信号生成手段と、
4-2キャリ入力から第２信号を生成する第２信号生成手段と、
前記第１の論理入力から第３信号を生成する第３信号生成手段と、
前記第１信号に応じて、前記第２信号と前記第３信号とを含む複数信号から一つを選択して出力するマルチプレクサと、を備え、
前記２つの前置回路の出力は前記論理入力のうちの２つにそれぞれ供給されることを特徴とする機能ブロック。
【請求項５９】
請求項５８に記載の機能ブロックにおいて、さらに、
少なくとも３つの前記論理入力から桁上げ信号を生成し4-2キャリ出力として出力する4-2キャリブロックを備えることを特徴とする機能ブロック。
【請求項６０】
第１、第２、第３および第４論理入力と、
前記第１および第２論理入力である第１および第２入力と第３入力とを少なくとも有し、コンフィギュレーションデータに応じて複数の論理機能の中から一つの論理機能が選択され、前記選択された論理機能に従って前記第１、第２および第３入力から論理出力を生成する論理機能生成器と、
第３および第４論理入力から信号を入力し、前記論理機能生成器の第３入力に出力信号を供給する第１排他的論理和回路と、
前記第１排他的論理和回路の一方の入力と前記第２論理入力とから4-2キャリ出力信号を生成する4-2キャリブロックと、
少なくとも前記論理出力を入力し、第１信号を生成する第１信号生成手段と、
少なくとも前記第１入力を入力し、第２信号を生成する第２信号生成手段と、
少なくとも4-2キャリ入力信号を入力し、第３信号を生成する第３信号生成手段と、
少なくとも前記4-2キャリ入力信号を入力し、第４信号を生成する第４信号生成手段と、
前記第１信号に従って、前記第２信号及び前記第３信号のいずれかを選択してキャリ出力信号として出力する選択手段と、
前記論理出力と前記第４信号との排他的論理和を出力する第２排他的論理和回路と、
を備えることを特徴とする機能ブロック。
【請求項６１】
請求項６０に記載の機能ブロックにおいて、
前記4-2キャリブロックは、前記第１排他的論理和回路の出力で制御され、前記第１排他的論理和回路の一方入力と前記第２論理入力とから一方を選択して前記4-2キャリ出力信号として出力する4-2キャリマルチプレクサからなることを特徴とする機能ブロック。
【請求項６２】
請求項６０に記載の機能ブロックにおいて、
前記論理機能生成器は、３入力１出力排他的論理和を生成することを特徴とする機能ブロック。
【請求項６３】
第１、第２、第３および第４論理入力と、
少なくとも第１、第２および第３入力を有し、コンフィギュレーションデータに応じて３入力１出力排他的論理和を含む複数の論理機能の中から一つの論理機能が選択され、前記選択された論理機能に従って前記入力から加算出力を生成する論理機能生成器と、
前記第３および第４論理入力を入力し前記論理機能生成器の第３入力に信号を供給する第１排他的論理和回路と、
前記第１および第２論理入力を入力し前記論理機能生成器の第２入力に信号を供給する第２排他的論理和回路と、
前記第１および第２排他的論理和回路の出力の排他的論理和を出力する第３排他的論理和回路と、
前記第１排他的論理和回路の一方の入力と前記第２論理入力とから4-2キャリ出力信号を生成する4-2キャリブロックと、
少なくとも前記第３排他的論理和回路からの出力を入力し、第１信号を生成する第１信号生成手段と、
少なくとも前記第１論理入力を入力し、第２信号を生成する第２信号生成手段と、
少なくとも4-2キャリ入力信号を入力し、第３信号を生成する第３信号生成手段と、
少なくとも4-2キャリ入力信号を入力して第４信号を生成し、前記論理機能生成器の第１入力へ供給する第４信号生成手段と、
前記第３排他的論理和回路の出力によって制御され、前記第２信号および前記第３信号から一つを選択してキャリ出力信号として出力する選択手段と、
を備えることを特徴とする機能ブロック。
【請求項６４】
請求項６３に記載の機能ブロックにおいて、
前記4-2キャリブロックは、前記第１排他的論理和回路の出力で制御され、前記第１排他的論理和回路の一方入力と前記第２論理入力とから一方を選択して前記4-2キャリ出力信号として出力する4-2キャリマルチプレクサからなることを特徴とする機能ブロック。
【請求項６５】
請求項６３に記載の機能ブロックにおいて、
前記論理機能生成器は、３入力１出力排他的論理和を生成することを特徴とする機能ブロック。
【請求項６６】
第１入力および第２入力から排他的論理和を生成する第１排他的論理和回路と、
第３入力および第４入力から排他的論理和を生成する第２排他的論理和回路と、
少なくとも前記第１排他的論理和回路の一方の入力と第２排他的論理和回路の一方の入力とを入力し、4-2キャリ出力信号を出力する4-2キャリブロックと、
前記第１および第２排他的論理和回路の出力の排他的論理和を出力する第３の排他的論理和回路と、
前記第３の排他的論理和回路の出力を入力し、第１信号を生成する第１信号生成手段と、
少なくとも前記第１排他的論理和回路の一方の入力を入力し、第２信号を生成する第２信号生成手段と、
4-2キャリ入力信号と少なくとも１つの論理入力とを含む第１複数信号群を入力し、第３信号を生成する第３信号生成手段と、
前記4-2キャリ入力信号と少なくとも１つの論理入力とを含む第２複数信号群を入力し、第４信号を生成する第４信号生成手段と、
前記第１信号によって制御され、前記第２信号及び前記第３信号の一方を選択してキャリ出力信号として出力する選択手段と、
前記第３排他的論理和回路の出力と前記第４信号との排他的論理和を出力する第４排他的論理和回路と、
を有することを特徴とする機能ブロック。
【請求項６７】
請求項６６に記載の機能ブロックにおいて、
前記4-2キャリブロックは、前記第２排他的論理和回路の出力で制御され、前記第１排他的論理和回路の前記一方の入力と前記第２排他的論理和回路の他方の入力とから一方を選択し、前記4-2キャリ出力信号として出力する4-2キャリマルチプレクサを有することを特徴とする機能ブロック。
【請求項６８】
請求項６６に記載の機能ブロックにおいて、
前記第１信号生成手段は、前記第３排他的論理和回路の出力を前記第１信号として出力することを特徴とする機能ブロック。
【請求項６９】
請求項６６に記載の機能ブロックにおいて、
前記第１信号生成手段は、前記第３排他的論理和回路の出力と制御信号とを含む第３複数信号群から一つを選択して、第１信号として出力することを特徴とする機能ブロック。
【請求項７０】
請求項６９に記載の機能ブロックにおいて、
前記第１信号生成手段が前記第３複数信号群から前記制御信号を選択した場合、前記選択手段は前記第２信号を選択してキャリ出力信号として出力することを特徴とする機能ブロック。
【請求項７１】
請求項６９に記載の機能ブロックにおいて、
前記制御信号は、固定値ではない動的信号であることを特徴とする機能ブロック。
【請求項７２】
請求項６６に記載の機能ブロックにおいて、
前記第２信号生成手段は、前記第１排他的論理和回路の前記一方の入力を出力することを特徴とする機能ブロック。
【請求項７３】
請求項６６に記載の機能ブロックにおいて、
複数の論理機能の中から任意の一つの論理機能をプログラマブルに設定可能な前置回路を設け、前記第１、第２、第３および第４入力の少なくとも一つを供給することを特徴とする機能ブロック。
【請求項７４】
請求項７３に記載の機能ブロックにおいて、
前記第１入力および第３入力は第１前置回路および第２前置回路によりそれぞれ供給されることを特徴とする機能ブロック。
【請求項７５】
請求項７４に記載の機能ブロックにおいて、
前記第２信号生成手段は、前記第１前置回路の出力を前記第２信号として出力することを特徴とする機能ブロック。
【請求項７６】
請求項７４に記載の機能ブロックにおいて、
前記第２信号生成手段は、前記第１前置回路の出力を少なくとも含む第４複数信号群から一つを選択して前記第２信号として出力することを特徴とする機能ブロック。
【請求項７７】
請求項７６に記載の機能ブロックにおいて、
前記第４複数信号群は、さらに、前記第１排他的論理和回路の出力および前記第２前置回路の出力のうち少なくとも一方を含むことを特徴とする機能ブロック。
【請求項７８】
請求項７７に記載の機能ブロックにおいて、
前記第２信号生成手段は、動的信号によって制御可能なマルチプレクサを含むことを特徴とする機能ブロック。
【請求項７９】
請求項７４に記載の機能ブロックにおいて、
前記第２複数信号群は、前記第２前置回路の出力を含むことを特徴とする機能ブロック。
【請求項８０】
請求項７４に記載の機能ブロックにおいて、
前記第１前置回路および第２前置回路の入力と前記論理入力とは、複数の前記機能ブロック間をプログラマブルに接続する相互接続配線上の信号および固定論理値からプログラマブルに選択された信号であることを特徴とする機能ブロック。
【請求項８１】
請求項７４に記載の機能ブロックにおいて、
前記第２入力及び第４入力は、複数の前記機能ブロック間をプログラマブルに接続する相互接続配線上の信号と固定論理値とからプログラマブルに選択された信号であることを特徴とする機能ブロック。
【請求項８２】
請求項７４に記載の機能ブロックにおいて、
前記第１前置回路および第２前置回路は、動的信号によって制御可能なマルチプレクサであることを特徴とする機能ブロック。
【請求項８３】
請求項７３に記載の機能ブロックにおいて、
前記第１、第２、第３および第４入力は、それぞれ、プログラマブルに複数の論理機能の中から任意の一つの論理機能が設定される第１、第２、第３および第４前置回路により供給されることを特徴とする機能ブロック。
【請求項８４】
請求項８３に記載の機能ブロックにおいて、
前記第２信号生成手段は、前記第１〜第４前置回路の少なくとも１つの出力を前記第２信号として出力することを特徴とする機能ブロック。
【請求項８５】
請求項８４に記載の機能ブロックにおいて、
前記第２信号生成手段は、動的信号によって制御可能なマルチプレクサを含むことを特徴とする機能ブロック。
【請求項８６】
請求項８３に記載の機能ブロックにおいて、
前記第１複数信号群は、前記第３前置回路および第４前置回路の少なくとも一方の出力を含むことを特徴とする機能ブロック。
【請求項８７】
請求項８３に記載の機能ブロックにおいて、
前記第１〜第４前置回路の入力は、複数の前記機能ブロック間をプログラマブルに接続する相互接続配線上の信号および固定論理値からプログラマブルに選択された信号であることを特徴とする機能ブロック。
【請求項８８】
請求項８３に記載の機能ブロックにおいて、
前記第１〜第４前置回路は、動的信号によって制御可能なマルチプレクサであることを特徴とする機能ブロック。
【請求項８９】
請求項６６に記載の機能ブロックにおいて、
前記第４信号生成手段は前記第３信号生成手段を含み、
前記第２複数信号群は前記第１複数信号群を含み、
前記第４信号生成手段は、前記第３信号生成手段の出力を含む複数信号から一つを選択して出力するマルチプレクサを備えることを特徴とする機能ブロック。
【請求項９０】
請求項６６に記載の機能ブロックにおいて、
前記第３信号生成手段と前記第４信号生成手段とは同一であり、
前記第１複数信号群と前記第２複数信号群は同一であることを特徴とする機能ブロック。
【請求項９１】
第１〜第４マルチプレクサと、
前記第１および第２マルチプレクサの出力の排他的論理和を出力する第１排他的論理和回路と、
前記第３および第４マルチプレクサの出力の排他的論理和を出力する第２排他的論理和回路と、
前記第１および第２排他的論理和回路の出力の排他的論理和を出力する第３排他的論理和回路と、
少なくとも前記第１および第２排他的論理和回路の一方の入力から桁上げ信号を生成し4-2キャリ出力信号として出力する4-2キャリブロックと、
第１制御信号に応じて前記第１および第２マルチプレクサの出力から一方を選択して出力する第５マルチプレクサと、
第２制御信号に応じて前記第３および第４マルチプレクサの出力から一方を選択して出力する第６マルチプレクサと、
１つの論理入力と4-2キャリ入力信号とを含む第１複数信号群から一つを選択して出力する第７マルチプレクサと、
前記第６マルチプレクサの出力と前記第７マルチプレクサの出力とを含む第２複数信号群から一つを選択して出力する第８マルチプレクサと、
第３制御信号と前記第３排他的論理和回路の出力とを含む第３複数信号群から一つを選択して出力する第９マルチプレクサと、
前記第９マルチプレクサの出力によって制御され、前記第５マルチプレクサの出力と前記第８マルチプレクサの出力とを含む第４複数信号群から一つを選択してキャリ出力信号として出力する第１０マルチプレクサと、
前記第３排他的論理和回路の出力と前記第７マルチプレクサの出力との排他的論理和を加算出力として出力する第４排他的論理和回路と、
を備えることを特徴とする機能ブロック。
【請求項９２】
請求項９１に記載の機能ブロックにおいて、
前記第１制御信号と前記第２制御信号とは共通であることを特徴とする機能ブロック。
【請求項９３】
請求項９１に記載の機能ブロックにおいて、
前記4-2キャリブロックは、前記第２排他的論理和回路の出力で制御され、前記第１排他的論理和回路の一方の入力と前記第２排他的論理和回路の一方の入力とから一方を選択して前記4-2キャリ出力信号として出力する4-2キャリマルチプレクサからなることを特徴とする機能ブロック。
【請求項９４】
第１〜第４マルチプレクサと、
前記第１および第２マルチプレクサの出力の排他的論理和を出力する第１排他的論理和回路と、
前記第３および第４マルチプレクサの出力の排他的論理和を出力する第２排他的論理和回路と、
前記第１および第２排他的論理和回路の出力の排他的論理和を出力する第３排他的論理和回路と、
少なくとも前記第１および第２排他的論理和回路の一方の入力から桁上げ信号を生成し4-2キャリ出力信号として出力する4-2キャリブロックと、
第１制御信号に応じて前記第１および第２マルチプレクサの出力から一方を選択して出力する第５マルチプレクサと、
第２制御信号に応じて前記第３および第４マルチプレクサの出力から一方を選択して出力する第６マルチプレクサと、
少なくとも１つの論理入力と4-2キャリ入力信号とを含む第１複数信号群から一つを選択して出力する第７マルチプレクサと、
前記論理入力と前記4-2キャリ入力信号とを含む第２複数信号群から一つを選択して出力する第８マルチプレクサと、
第３制御信号に応じて前記第５マルチプレクサの出力と第６マルチプレクサの出力とを含む第３複数信号群から一つを選択して出力する第９マルチプレクサと、
第４制御信号と前記第３排他的論理和回路の出力とを含む第４複数信号群から一つを選択して出力する選択手段と、
前記選択手段の出力によって制御され、前記第８マルチプレクサの出力と第９マルチプレクサの出力とを含む第５複数信号群から一つを選択してキャリ出力信号として出力する第１０マルチプレクサと、
前記第３排他的論理和回路の出力と前記第７マルチプレクサの出力との排他的論理和を加算出力として出力する第４排他的論理和回路と、
を備えることを特徴とする機能ブロック。
【請求項９５】
請求項９４に記載の機能ブロックにおいて、
前記選択手段が前記第４制御信号を選択するとき、前記第１０マルチプレクサは前記第９マルチプレクサの出力を選択して出力することを特徴とする機能ブロック。
【請求項９６】
請求項９４に記載の機能ブロックにおいて、
前記第１制御信号と第２制御信号は共通であることを特徴とする機能ブロック。
【請求項９７】
請求項９４に記載の機能ブロックにおいて、
前記4-2キャリブロックは、前記第２排他的論理和回路の出力で制御され、前記第１排他的論理和回路の一方の入力と前記第２排他的論理和回路の一方の入力とから一方を選択して前記4-2キャリ出力信号として出力する4-2キャリマルチプレクサを備えることを特徴とする機能ブロック。
【請求項９８】
請求項９１に記載の機能ブロックにおいて、
前記第８マルチプレクサは前記第７マルチプレクサを含み、
前記第２複数信号群は前記第１複数信号群を含み、
前記第８マルチプレクサは、前記第７マルチプレクサの出力を含む複数信号から一つを選択して出力するマルチプレクサを備えることを特徴とする機能ブロック。
【請求項９９】
請求項９４に記載の機能ブロックにおいて、
前記第８マルチプレクサは前記第７マルチプレクサを含み、
前記第２複数信号群は前記第１複数信号群を含み、
前記第８マルチプレクサは、前記第７マルチプレクサの出力を含む複数信号から一つを選択して出力するマルチプレクサを備えることを特徴とする機能ブロック。
【請求項１００】
請求項９４に記載の機能ブロックにおいて、
前記第７マルチプレクサと前記第８マルチプレクサとは同一であり、
前記第１複数信号群と前記第２複数信号群とは同一であることを特徴とする機能ブロック。
【請求項１０１】
請求項６６に記載の機能ブロックにおいて、
前記第１複数信号群はリップルキャリ入力信号を含むことを特徴とする機能ブロック。
【請求項１０２】
請求項１０１に記載の機能ブロックにおいて、
前記第１複数信号群および前記第２複数信号群はリップルキャリ入力信号を含むことを特徴とする機能ブロック。
【請求項１０３】
請求項１０１に記載の機能ブロックにおいて、
前記第３排他的論理和回路の２つの入力と前記リップルキャリ入力とから桁上げ信号を生成してリップルキャリ出力信号として出力するリップルキャリブロックを備えることを特徴とする機能ブロック。
【請求項１０４】
請求項１０１に記載の機能ブロックにおいて、
前記第３排他的論理和回路の出力に応じて、前記第３排他的論理和回路の１つの入力と前記リップルキャリ入力信号とから一方を選択してリップルキャリ出力信号として出力するリップルキャリマルチプレクサを備えることを特徴とする機能ブロック。
【請求項１０５】
請求項１０１に記載の機能ブロックにおいて、
前記リップルキャリ入力信号と、前記第３排他的論理和回路の２つの入力および１つの出力と、から桁上げ信号を生成してリップルキャリ出力として出力するリップルキャリブロックを備えることを特徴とする機能ブロック。
【請求項１０６】
複数の接続配線からなる相互接続配線群にプログラマブルに接続可能な機能セルにおいて、
前記相互接続配線群から複数の入力をプログラマブルに選択する入力選択手段と、
前記複数の入力から少なくとも加算出力信号およびキャリ出力信号からなる複数の出力信号を生成する機能ブロックと、
前記複数の出力信号を、前記相互接続配線群からプログラマブルに選択した接続配線へそれぞれ出力する出力選択手段と、
を有し、
前記機能ブロックは、
第１入力および第２入力から排他的論理和を生成する第１排他的論理和回路と、
第３入力および第４入力から排他的論理和を生成する第２排他的論理和回路と、
少なくとも前記第１排他的論理和回路の一方の入力と第２排他的論理和回路の一方の入力とを入力し、4-2キャリ出力信号を出力する4-2キャリブロックと、
前記第１および第２排他的論理和回路の出力の排他的論理和を出力する第３の排他的論理和回路と、
前記第３の排他的論理和回路の出力を入力し、第１信号を生成する第１信号生成手段と、
少なくとも前記第１排他的論理和回路の一方の入力を入力し、第２信号を生成する第２信号生成手段と、
4-2キャリ入力信号と少なくとも１つの論理入力とを含む第１複数信号群を入力し、第３信号を生成する第３信号生成手段と、
前記4-2キャリ入力信号と少なくとも１つの論理入力とを含む第２複数信号群を入力し、第４信号を生成する第４信号生成手段と、
前記第１信号によって制御され、前記第２信号及び前記第３信号の一方を選択してキャリ出力信号として出力する選択手段と、
前記第３排他的論理和回路の出力と前記第４信号との排他的論理和を出力する第４排他的論理和回路と、
を備えることを特徴とする機能セル。
【請求項１０７】
請求項１０６記載の機能セルにおいて、
前記出力選択手段は、
少なくとも前記加算出力信号および前記キャリ出力信号を入力し、これら２つの信号をそのまま出力するか又は交換して出力するかをプログラマブルに設定する信号交換手段と、
前記信号交換手段の第１出力信号を前記相互接続配線群の第１配線群に選択的に出力する第１出力選択ブロックと、
前記信号交換手段の第２出力信号を、前記相互接続配線群内の前記第１配線群と共通でない第２配線群に選択的に出力する第２出力選択ブロックと、
を有する、
ことを特徴とする機能セル。
【請求項１０８】
請求項１０６記載の機能セルにおいて、
前記出力選択手段は、
前記加算出力信号および前記キャリ出力信号を、それぞれ、そのまま出力するか又はメモリを介して出力するかをプログラマブルに選択可能な第１レジスタブロックおよび第２レジスタブロックと、
前記メモリを介して出力される場合は、当該出力を前記相互接続配線群を介さずに前記機能ブロックへ供給する手段と、
を有することを特徴とする機能セル。
【請求項１０９】
請求項１０６記載の機能セルにおいて、
前記出力選択手段は、
少なくとも前記加算出力信号および前記キャリ出力信号を入力し、これら２つの信号をそのまま出力するか又は交換して出力するかをプログラマブルに設定する信号交換手段と、
前記信号交換手段の２つの出力を、それぞれ、そのまま出力するか又はメモリを介して出力するかをプログラマブルに選択可能な第１レジスタブロックおよび第２レジスタブロックと、
前記第１レジスタブロックのメモリを介さない出力を、前記相互接続配線群の第１配線群に選択的に出力する第１出力選択ブロックと、
前記第２レジスタブロックのメモリを介さない出力を、前記相互接続配線群内の前記第１配線群と共通でない第２配線群に選択的に出力する第２出力選択ブロックと、
前記メモリを介した出力を前記相互接続配線群を介さずに前記機能ブロックへ供給する手段と、
を有する、
ことを特徴とする機能セル。
【請求項１１０】
第１機能ブロックおよび第２機能ブロックからなる複合機能ブロックにおいて、
前記第１機能ブロックは、
第１入力および第２入力から排他的論理和を生成する第１排他的論理和回路Ａと、
第３入力および第４入力から排他的論理和を生成する第２排他的論理和回路Ａと、
少なくとも前記第１排他的論理和回路Ａの一方の入力と第２排他的論理和回路Ａの一方の入力とを入力して4-2キャリ出力信号Ａを出力する4-2キャリブロックＡと、
前記第１および第２排他的論理和回路Ａの出力の排他的論理和を出力する第３排他的論理和回路Ａと、
前記第３排他的論理和回路Ａの出力を入力し、第１信号Ａを生成する第１信号生成手段Ａと、
少なくとも前記第１排他的論理和回路Ａの一方の入力を入力し、第２信号Ａを生成する第２信号生成手段Ａと、
4-2キャリ入力信号と、リップルキャリ入力信号と、少なくとも１つの論理入力と、を含む第１複数信号群を入力し、第３信号Ａを生成する第３信号生成手段Ａと、
前記4-2キャリ入力信号と、前記リップルキャリ入力信号と、少なくとも１つの論理入力と、を含む第２複数信号群を入力し、第４信号Ａを生成する第４信号生成手段Ａと、
前記第１信号Ａによって制御され、前記第２信号Ａ及び前記第３信号Ａの一方を選択してキャリ出力信号Ａとして出力する選択手段Ａと、
前記第３排他的論理和回路Ａの出力と前記第４信号Ａとの排他的論理和を出力する第４排他的論理和回路Ａと、
前記第３排他的論理和回路Ａの２つの入力の論理積を出力する第１論理積回路と、
を有し、
前記第２機能ブロックは、
第５入力および第６入力から排他的論理和を生成する第１排他的論理和回路Ｂと、
第７入力および第８入力から排他的論理和を生成する第２排他的論理和回路Ｂと、
少なくとも前記第１排他的論理和回路Ｂの一方の入力と第２排他的論理和回路Ｂの一方の入力とを入力して4-2キャリ出力信号を出力する4-2キャリブロックＢと、
前記第１および第２排他的論理和回路Ｂの出力の排他的論理和を出力する第３排他的論理和回路Ｂと、
前記第３排他的論理和回路Ｂの出力を入力し、第１信号Ｂを生成する第１信号生成手段Ｂと、
少なくとも前記第１排他的論理和回路Ｂの一方の入力を入力し、第２信号Ｂを生成する第２信号生成手段Ｂと、
前記第１機能ブロックからの前記4-2キャリ出力信号Ａ、キャリ出力信号Ａおよび前記第１論理積回路の出力と、少なくとも１つの論理入力と、を含む第３複数信号群を入力し、第３信号Ｂを生成する第３信号生成手段Ｂと、
前記第１機能ブロックからの前記4-2キャリ出力信号Ａおよびキャリ出力信号Ａと、少なくとも１つの論理入力と、を含む第４複数信号群を入力し、第４信号Ｂを生成する第４信号生成手段Ｂと、
前記第１信号Ｂによって制御され、前記第２信号Ｂ及び前記第３信号Ｂの一方を選択してキャリ出力信号Ｂとして出力する選択手段Ｂと、
前記第３排他的論理和回路Ｂの出力と前記第４信号Ｂとの排他的論理和を出力する第４排他的論理和回路Ｂと、
前記第１機能ブロックの前記第３排他的論理和回路Ａの出力と前記第２機能ブロックの前記第３排他的論理和回路Ｂの出力との論理積を出力する第２論理積回路と、
前記第２論理積回路の出力と前記リップルキャリ入力信号との論理積と、前記第２機能ブロックの前記キャリ出力信号Ｂと、の論理和をリップルキャリ出力信号として出力する論理積・論理和回路と、
を備えることを特徴とする複合機能ブロック。
【請求項１１１】
請求項１１０に記載の複合機能ブロックにおいて、
前記論理積・論理和回路は、
前記第２論理積回路の出力と前記リップルキャリ入力信号と入力する第１否定論理積回路と、
前記第１否定論理積回路の出力と前記キャリ出力信号Ｂの否定とを入力し、前記リップルキャリ出力信号を出力する第２否定論理積回路と、
からなることを特徴とする複合機能ブロック。
【請求項１１２】
第１半機能ブロックおよび第２半機能ブロックを備え、少なくとも第１〜第４論理入力を有する機能ブロックにおいて、
前記第１半機能ブロックは、
少なくとも第１入力および第２入力を有し、コンフィギュレーションデータに応じて複数の２入力１出力論理機能の中から一つの論理機能が選択され、前記選択された論理機能に従って前記第１及び第２入力から第１論理出力を生成する第１論理機能生成器を有し、
前記第１論理入力、前記第２論理入力および前記第４論理入力を加算した結果である第１加算出力および4-2キャリ出力信号を出力する全加算器としてコンフィギュレーション可能であり、
前記第２半機能ブロックは、
少なくとも第３入力および第４入力を有し、コンフィギュレーションデータに応じて複数の２入力１出力論理機能の中から一つの論理機能が選択され、前記選択された論理機能に従って前記第３及び第４入力から第２論理出力を生成する第２論理機能生成器を有し、
前記第１加算出力、前記第３論理入力および4-2キャリ入力信号を加算した結果である第２加算出力およびキャリ出力信号を出力する全加算器としてコンフィギュレーション可能であり、
前記第１および第２論理機能生成器の各入力数は３以下である、
ことを特徴とする機能ブロック。
【請求項１１３】
請求項１１２に記載の機能ブロックにおいて、
前記第１半機能ブロックは、さらに、
少なくとも前記第１論理入力から第１信号を生成する第１信号生成手段と、
少なくとも前記第４論理入力から第２信号を生成する第２信号生成手段と、
少なくとも前記第４論理入力から第３信号を生成する第３信号生成手段と、
少なくとも前記第２信号および前記第１論理機能生成器の第１入力に基づいて前記4-2キャリ出力信号を生成する4-2キャリ生成手段と、
前記第１論理出力と前記第３信号との排他的論理和を前記第１加算出力として出力する第１排他的論理和回路と、
を備え、前記第１論理機能生成器の前記第１入力および前記第２入力は、それぞれ、前記第１信号および前記第２論理入力であり、
前記第２半機能ブロックは、さらに、
少なくとも前記第１加算出力から第４信号を生成する第４信号生成手段と、
少なくとも前記4-2キャリ入力信号から第５信号を生成する第５信号生成手段と、
少なくとも前記4-2キャリ入力信号から第６信号を生成する第６信号生成手段と、
前記第２論理出力から第７信号を生成する第７信号生成手段と、
前記第２論理機能生成器の一方の入力から第８信号を生成する第８信号生成手段と、
少なくとも前記第５信号および前記第８信号に基づいて前記キャリ出力信号を生成するキャリ生成手段と、
前記第２論理出力と前記第６信号との排他的論理和を前記第２加算出力として出力する第２排他的論理和回路と、
を備え、前記第２論理機能生成器の前記第３および第４入力は、それぞれ、前記第３論理入力および前記第４信号である、
ことを特徴とする機能ブロック。
【請求項１１４】
請求項１１３に記載の機能ブロックにおいて、
前記4-2キャリ生成手段は、前記第１論理出力によって制御され、前記第２信号と前記第１論理機能生成器の第１入力とから一つを選択して4-2キャリ出力信号として出力する第１マルチプレクサからなり、
前記キャリ生成手段は、前記第７信号によって制御され、前記第５信号および前記第８信号から一つを選択してキャリ出力信号として出力する第２マルチプレクサからなる、
ことを特徴とする機能ブロック。
【請求項１１５】
請求項１１３に記載の機能ブロックにおいて、
前記4-2キャリ生成手段は、前記第２信号と前記第１論理機能生成器の第１入力とに関する桁上げ信号を4-2キャリ出力信号として出力する第１のキャリブロックからなり、
前記キャリ生成手段は、前記第５信号と前記第２論理機能生成器の第３入力とに関する桁上げ信号をキャリ出力信号として生成する第２のキャリブロックからなる、
ことを特徴とする機能ブロック。
【請求項１１６】
請求項１１３に記載の機能ブロックにおいて、
前記第３信号生成手段は、前記第４論理入力を含む複数信号群から一つを選択して出力する選択回路であることを特徴とする機能ブロック。
【請求項１１７】
請求項１１３に記載の機能ブロックにおいて、
前記第６信号供給手段は、前記4-2キャリ入力信号を含む複数信号群から一つを選択して出力する選択回路であることを特徴とする機能ブロック。
【請求項１１８】
請求項１１３に記載の機能ブロックにおいて、
前記第２信号生成手段と第３信号生成手段とは同一であることを特徴とする機能ブロック。
【請求項１１９】
請求項１１３に記載の機能ブロックにおいて、
前記第５信号生成手段と第６信号生成手段とは同一であることを特徴とする機能ブロック。
【請求項１２０】
請求項１１３に記載の機能ブロックにおいて、
前記第１信号生成手段は、前記第１論理入力と前記第３論理入力とを含む複数信号群から一つを選択して第１信号として出力することを特徴とする機能ブロック。
【請求項１２１】
請求項１１３に記載の機能ブロックにおいて、
前記第４信号生成手段は、前記第１加算出力と前記第２論理入力とを含む複数信号群から一つを選択して第４信号として出力することを特徴とする機能ブロック。
【請求項１２２】
請求項１１２に記載の機能ブロックにおいて、さらに、
前記第３論理入力および前記第２論理入力を、前記第１論理機能生成器の第１入力および前記第２論理機能生成器の第４入力に、それぞれ選択的に供給する手段を備えることを特徴とする機能ブロック。
【請求項１２３】
請求項１１２に記載の機能ブロックにおいて、
前記第１加算出力を前記第２半機能ブロックに供給する配線は、複数の前記機能ブロック間をプログラマブルに相互接続する配線とは別の専用配線であることを特徴とする機能ブロック。
【請求項１２４】
請求項１２２に記載の機能ブロックにおいて、
前記第２論理入力を前記第２半機能ブロックに供給する配線は、複数の前記機能ブロック間をプログラマブルに相互接続する配線とは別の専用配線であることを特徴とする機能ブロック。
【請求項１２５】
請求項１２２に記載の機能ブロックにおいて、
前記第３論理入力を前記第１半機能ブロックに供給する配線は、複数の前記機能ブロック間をプログラマブルに相互接続する配線とは別の専用配線であることを特徴とする機能ブロック。
【請求項１２６】
請求項１１２に記載の機能ブロックにおいて、さらに、
前記第１加算出力および第２加算出力から一方を選択して出力する加算出力マルチプレクサを備えることを特徴とする機能ブロック。
【請求項１２７】
請求項１２６に記載の機能ブロックにおいて、
前記加算出力マルチプレクサは、前記第４論理入力を含む複数信号からプログラマブルに選択された信号によって制御されることを特徴とする機能ブロック。
【請求項１２８】
請求項１１２に記載の機能ブロックにおいて、さらに、
前記第１論理出力および第２論理出力から一方を選択して出力する論理出力マルチプレクサを備えることを特徴とする機能ブロック。
【請求項１２９】
請求項１２８に記載の機能ブロックにおいて、
前記論理出力マルチプレクサは前記第４論理入力によって制御されることを特徴とする機能ブロック。
【請求項１３０】
請求項１１２に記載の機能ブロックにおいて、さらに、
前記第２論理入力および第３論理入力の少なくとも一方に、プログラマブルに複数の論理機能の中から任意の一つの論理機能を設定可能な前置回路を接続したことを特徴とする機能ブロック。
【請求項１３１】
請求項１３０に記載の機能ブロックにおいて、
前記前置回路はコンフィギュレーションデータに応じて論理機能が設定されることを特徴とする機能ブロック。
【請求項１３２】
請求項１３０に記載の機能ブロックにおいて、
前記前置回路は、複数の前記機能ブロック間をプログラマブルに接続する相互接続配線上の信号と固定論理値とからプログラマブルに選択された信号によって論理機能が設定されることを特徴とする機能ブロック。
【請求項１３３】
請求項１３０に記載の機能ブロックにおいて、
前記前置回路はコンフィギュレーションデータに応じて論理機能が設定されるルックアップテーブルであることを特徴とする機能ブロック。
【請求項１３４】
請求項１３０に記載の機能ブロックにおいて、
前記前置回路は動的信号によって制御可能なマルチプレクサであることを特徴とする機能ブロック。
【請求項１３５】
請求項１３０に記載の機能ブロックにおいて、
前記前置回路は論理積機能を設定可能であることを特徴とする機能ブロック。
【請求項１３６】
請求項１３０に記載の機能ブロックにおいて、
前記第２論理入力および第３論理入力の各々に前記前置回路を接続したことを特徴とする機能ブロック。
【請求項１３７】
請求項１３６に記載の機能ブロックにおいて、
一方の前記前置回路はコンフィギュレーションデータに応じて論理機能が設定されるルックアップテーブルであり、
他方の前記前置回路は、複数の前記機能ブロック間をプログラマブルに接続する相互接続配線上の信号と固定論理値とからプログラマブルに選択された信号によって論理機能が設定されることを特徴とする機能ブロック。
【請求項１３８】
請求項１３６に記載の機能ブロックにおいて、
前記２つの前置回路は動的信号によって制御可能なマルチプレクサであることを特徴とする機能ブロック。
【請求項１３９】
請求項１３６に記載の機能ブロックにおいて、
前記２つの前置回路は論理積機能を設定可能であることを特徴とする機能ブロック。
【請求項１４０】
請求項１１２に記載の機能ブロックにおいて、
前記第１半機能ブロックは、さらに、第１リップルキャリ入力信号を含む複数信号から桁上げ信号を生成し第１リップルキャリ出力信号として出力する第１リップルキャリブロックを備え、前記第１論理入力、前記第２論理入力および前記第１リップルキャリ入力信号を加算した結果を前記第１加算出力および前記第１リップルキャリ出力信号として出力する全加算器としてコンフィギュレーション可能であり、
前記第２半機能ブロックは、さらに、第２リップルキャリ入力信号を含む複数信号から桁上げ信号を生成し第２リップルキャリ出力信号として出力する第２リップルキャリブロックを備え、前記第１加算出力、前記第３論理入力および前記第２リップルキャリ入力を加算した結果を、前記第２加算出力および前記第２リップルキャリ出力信号として出力する全加算器としてコンフィギュレーション可能である、
ことを特徴とする機能ブロック。
【請求項１４１】
第１半機能ブロックおよび第２半機能ブロックを備え、少なくとも第１〜第４論理入力を有する機能ブロックにおいて、
前記第１半機能ブロックは、
第１加算出力を生成するための少なくとも２つの排他的論理和回路を有し、
前記第１論理入力、前記第２論理入力および前記第３論理入力を加算した結果である前記第１加算出力および4-2キャリ出力信号を出力する全加算器としてコンフィギュレーション可能であり、
前記第２の半機能ブロックは、
第２加算出力を生成するための少なくとも２つの排他的論理和回路を有し、
前記第１加算出力、前記第４論理入力および4-2キャリ入力信号を加算した結果である前記第２加算出力およびキャリ出力信号を出力する全加算器としてコンフィギュレーション可能である、
ことを特徴とする機能ブロック。
【請求項１４２】
請求項１４１に記載の機能ブロックにおいて、
前記第１半機能ブロックは、前記第３論理入力に接続され、プログラマブルに複数の論理機能の中から任意の一つの論理機能を設定することができる第１前置回路をさらに有し、
前記第２半機能ブロックは、前記第４論理入力に接続され、プログラマブルに複数の論理機能の中から任意の一つの論理機能を設定することができる第２前置回路をさらに有する、
ことを特徴とする機能ブロック。
【請求項１４３】
請求項１４２に記載の機能ブロックにおいて、
前記第１半機能ブロックは、
少なくとも前記第１論理入力から第１信号を生成する第１信号生成手段と、
前記第１前置回路の出力と前記第１信号との排他的論理和を出力する第１排他的論理和回路と、
少なくとも前記第２論理入力から第２信号を生成する第２信号生成手段と、
前記第１排他的論理和回路の出力によって制御され、前記第２信号と前記第１排他的論理和回路の一方の入力とから一つを選択して前記4-2キャリ出力信号として出力する第１選択手段と、
前記第１排他的論理和回路の出力と前記第２信号との排他的論理和を前記第１加算出力として出力する第２排他的論理和回路と、を備え、
前記第２半機能ブロックは、
少なくとも前記第１加算出力から第３信号を生成する第３信号生成手段と、
前記第２前置回路の出力と前記第３信号との排他的論理和を出力する第３排他的論理和回路と、
少なくとも前記4-2キャリ入力信号から第４信号を生成する第４信号生成手段と、
少なくとも前記第３排他的論理和回路の一方の入力から第５信号を生成する第５信号生成手段と、
前記第３排他的論理和回路の出力によって制御され、前記第４信号と前記第５信号とから一つを選択して前記キャリ出力信号として出力する第２選択手段と、
前記第３排他的論理和回路の出力と第４信号との排他的論理和を前記第２加算出力として出力する第４排他的論理和回路と、
を備えることを特徴とする機能ブロック。
【請求項１４４】
請求項１４２に記載の機能ブロックにおいて、
前記第１半機能ブロックは、さらに、前記4-2キャリ出力信号を生成する4-2キャリブロックを備え、
前記第２半機能ブロックは、さらに、前記キャリ出力信号を生成するキャリブロックを備えたことを特徴とする機能ブロック。
【請求項１４５】
請求項１４２に記載の機能ブロックにおいて、
前記第１前置回路の出力を前記第２半機能ブロックに供給する手段を備え、
前記第２半機能ブロックは、前記第１前置回路の出力、前記第２前置回路の出力および前記4-2キャリ入力信号を加算した結果である前記第２加算出力および前記キャリ出力信号を出力する全加算器としてコンフィギュレーション可能であることを特徴とする機能ブロック。
【請求項１４６】
請求項１４５に記載の機能ブロックにおいて、
前記第１前置回路の出力を前記第２半機能ブロックに供給する配線は、複数の前記機能ブロック間をプログラマブルに相互接続する配線とは別の専用配線であることを特徴とする機能ブロック。
【請求項１４７】
請求項１４２に記載の機能ブロックにおいて、
前記第２前置回路の出力を前記第１半機能ブロックに供給する手段を備え、
前記第１半機能ブロックは、前記第１前置回路の出力、前記第２前置回路の出力および前記第２論理入力を加算した結果である前記第１加算出力および前記4-2キャリ出力信号を出力する全加算器としてコンフィギュレーション可能であることを特徴とする機能ブロック。
【請求項１４８】
請求項１４７に記載の機能ブロックにおいて、
前記第２前置回路の出力を前記第１半機能ブロックに供給する配線は、複数の前記機能ブロック間をプログラマブルに相互接続する配線とは別の専用配線であることを特徴とする機能ブロック。
【請求項１４９】
請求項１４１に記載の機能ブロックにおいて、
前記第１加算出力を前記第２半機能ブロックに供給する配線は、複数の前記機能ブロック間をプログラマブルに相互接続する配線とは別の専用配線であることを特徴とする機能ブロック。
【請求項１５０】
請求項１４１に記載の機能ブロックにおいて、さらに、
前記第１加算出力および第２加算出力から一方を選択して出力する加算出力マルチプレクサを備えることを特徴とする機能ブロック。
【請求項１５１】
請求項１４２に記載の機能ブロックにおいて、
前記第１前置回路および第２前置回路は動的信号によって制御可能なマルチプレクサであることを特徴とする機能ブロック。
【請求項１５２】
請求項１４２に記載の機能ブロックにおいて、
前記第１前置回路および第２前置回路は論理積機能を設定可能であることを特徴とする機能ブロック。
【請求項１５３】
請求項１４２に記載の機能ブロックにおいて、
前記第１前置回路および第２前置回路の入力には、複数の前記機能ブロック間をプログラマブルに接続する相互接続配線配線上の信号と固定論理値とからプログラマブルに選択された信号が供給されることを特徴とする機能ブロック。
【請求項１５４】
請求項１４２に記載の機能ブロックにおいて、
前記第２論理入力には、複数の前記機能ブロック間をプログラマブルに接続する相互接続配線上の信号と固定論理値とからプログラマブルに選択された信号が供給されることを特徴とする機能ブロック。
【請求項１５５】
請求項１４１に記載の機能ブロックにおいて、
前記第１半機能ブロックは、
第１リップルキャリ入力信号を含む複数信号から桁上げ信号を生成し第１リップルキャリ出力信号として出力する第１リップルキャリブロックをさらに備え、
前記第１論理入力、前記第１リップルキャリ入力信号、前記第３論理入力を加算した結果である前記第１加算出力および前記第１リップルキャリ出力信号を出力する全加算器としてコンフィギュレーション可能であり、
前記第２の半機能ブロックは、
第２リップルキャリ入力信号を含む複数信号から桁上げ信号を第２リップルキャリ出力信号として出力する第２リップルキャリブロックを備え、
前記第１加算出力、前記第４論理入力および前記第２リップルキャリ入力を加算した結果である前記第２加算出力および前記第２リップルキャリ出力信号を出力する全加算器としてコンフィギュレーション可能であることを特徴とする機能ブロック。
【請求項１５６】
4-2キャリおよびリップルキャリの少なくとも一方の機能を含むＮ個の機能ブロックB1-BN（Ｎは１以上の自然数）からなる複合機能ブロックにおいて、
4-2キャリおよびリップルキャリの少なくとも一方であるキャリ信号に関して、前記機能ブロックBi（ｉは１以上Ｎ−１以下の任意の自然数）のキャリ出力信号が、機能ブロックBi+1のキャリ入力信号となるように、前記Ｎ個の機能ブロックが接続されていることを特徴とする複合機能ブロック。
【請求項１５７】
請求項１５６に記載の複合機能ブロックにおいて、
前記Ｎ個の機能ブロックB1-BNの各々は、
コンフィギュレーションデータに応じて複数の４入力１出力論理機能の中から一つの論理機能が選択され、前記選択された論理機能に従って第１、第２、第３および第４論理入力から論理出力を生成する論理機能生成器と、
前記第２、第３および第４論理入力から4-2キャリ出力信号を生成する4-2キャリブロックと、
少なくとも前記論理出力を入力し、第１信号を生成する第１信号生成手段と、
少なくとも前記第１論理入力を入力し、第２信号を生成する第２信号生成手段と、
少なくとも4-2キャリ入力信号を入力し、第３信号を生成する第３信号生成手段と、
少なくとも前記4-2キャリ入力信号を入力し、第４信号を生成する第４信号生成手段と、
前記第１信号に従って、前記第２信号及び前記第３信号のいずれかを選択してキャリ出力信号として出力する選択手段と、
前記論理出力と前記第４信号との排他的論理和を出力する排他的論理和回路と、
を有することを特徴とする複合機能ブロック。
【請求項１５８】
請求項１５７に記載の複合機能ブロックにおいて、
前記Ｎ個の機能ブロックB1-BNの各々は、さらに、少なくとも、前記論理機能生成器の第１ないし第４論理入力のうちの１つと前記リップルキャリ入力信号とに基づいて、リップルキャリ出力信号を生成するリップルキャリ生成手段を有することを特徴とする複合機能ブロック。
【請求項１５９】
請求項１５６に記載の複合機能ブロックにおいて、
前記Ｎ個の機能ブロックB1-BNの各々は第１機能ブロック及び第２機能ブロックからなり、
前記第１機能ブロックは、
コンフィギュレーションデータに応じて複数の４入力１出力論理機能の中から一つの論理機能が選択され、前記選択された論理機能に従って第１、第２、第３および第４論理入力から論理出力Ａを生成する論理機能生成器Ａと、
前記第２、第３および第４論理入力から4-2キャリ出力信号Ａを生成する4-2キャリブロックＡと、
少なくとも前記論理出力Ａを入力し、第１信号Ａを生成する第１信号生成手段Ａと、
少なくとも前記第１論理入力を入力し、第２信号Ａを生成する第２信号生成手段Ａと、
4-2キャリ入力信号を少なくとも含む第１複数信号群から１つを選択して第３信号Ａを生成する第３信号生成手段Ａと、
前記4-2キャリ入力信号を少なくとも含む第２複数信号群から１つを選択して第４信号Ａを生成する第４信号生成手段Ａと、
前記第１信号Ａに従って、前記第２信号Ａ及び前記第３信号Ａのいずれかを選択してキャリ出力信号Ａとして出力する選択手段Ａと、
前記論理出力Ａと前記第４信号Ａとの排他的論理和を出力する排他的論理和回路Ａと、
前記第１論理入力と、第２ないし第４論理入力のいずれか一つと、の論理積を出力する第１論理積回路と、
を有し、
前記第２機能ブロックは、
コンフィギュレーションデータに応じて複数の４入力１出力論理機能の中から一つの論理機能が選択され、前記選択された論理機能に従って第５、第６、第７および第８論理入力から論理出力Ｂを生成する論理機能生成器Ｂと、
前記第６、第７および第８論理入力から4-2キャリ出力信号Ｂを生成する4-2キャリブロックＢと、
少なくとも前記論理出力Ｂを入力し、第１信号Ｂを生成する第１信号生成手段Ｂと、
少なくとも前記第５論理入力を入力し、第２信号Ｂを生成する第２信号生成手段Ｂと、
前記4-2キャリ出力信号Ａおよび前記第１論理積回路の出力を少なくとも含む第３複数信号群から１つを選択し、第３信号Ｂを生成する第３信号生成手段Ｂと、
前記4-2キャリ出力信号Ａおよび前記キャリ出力信号Ａを少なくとも含む第４複数信号群から一つを選択し、第４信号Ｂを生成する第４信号生成手段Ｂと、
前記第１信号Ｂに従って、前記第２信号Ｂ及び前記第３信号Ｂのいずれかを選択してキャリ出力信号Ｂとして出力する選択手段Ｂと、
前記論理出力Ｂと前記第４信号Ｂとの排他的論理和を出力する排他的論理和回路Ｂと、
前記論理機能生成器Ａの論理出力Ａと前記論理機能生成器Ｂの論理出力Ｂとの論理積を出力する第２論理積回路と、
前記第２論理積回路の論理積出力とリップルキャリ入力信号との論理積と、前記選択手段Ｂから出力されるキャリ出力信号Ｂと、の論理和をリップルキャリ出力信号として出力する論理積・論理和回路と、
を有し、
前記機能ブロックBi（ｉは１以上Ｎ−１以下の任意の自然数）の第２機能ブロックの4-2キャリ出力信号が、機能ブロックBi+1の第１機能ブロックの4-2キャリ入力信号となるように前記Ｎ個の機能ブロックが接続されていることを特徴とする複合機能ブロック。
【請求項１６０】
請求項１５６に記載の複合機能ブロックにおいて、
前記Ｎ個の機能ブロックの各々に共通信号を供給する共通信号線が接続されていることを特徴とする複合機能ブロック。
【請求項１６１】
請求項１６０に記載の複合機能ブロックにおいて、
前記共通信号線は前記機能ブロックの信号入力専用であることを特徴とする複合機能ブロック。
【請求項１６２】
請求項１６０に記載の複合機能ブロックを複数個接続した複合機能ブロックにおいて、
一つの複合機能ブロックの共通信号を含む複数信号からプログラマブルに一つの信号を選択して他の複合機能ブロックの共通信号として供給する共通信号接続手段を有することを特徴とする複合機能ブロック。
【請求項１６３】
少なくとも4-2キャリ出力信号を生成する機能を有する一ブロックと、
少なくとも4-2キャリ入力信号を入力して所定の機能を実現する他のブロックと、
前記一ブロックと前記他のブロックとの間に接続され、前記一ブロックからの4-2キャリ出力信号とその他の信号とを含む複数信号群から１つを選択し、前記他のブロックへ前記4-2キャリ入力信号として出力する4-2キャリ接続回路と、
を備えたことを特徴とする複合機能ブロック。
【請求項１６４】
請求項１６３記載の複合機能ブロックにおいて、
前記一ブロックは、請求項１５７に記載の複合機能ブロックであり、
前記他のブロックは、請求項１に記載の機能ブロックであることを特徴とする複合機能ブロック。
【請求項１６５】
請求項１６３記載の複合機能ブロックにおいて、
前記一ブロックは、請求項１に記載の機能ブロックであり、
前記他のブロックは、請求項１５７に記載の複合機能ブロックであることを特徴とする複合機能ブロック。
【請求項１６６】
請求項１６３記載の複合機能ブロックにおいて、
前記一ブロックは、請求項１５９に記載の複合機能ブロックであり、
前記他のブロックは、請求項４０に記載の複合機能ブロックであることを特徴とする複合機能ブロック。
【請求項１６７】
請求項１６３記載の複合機能ブロックにおいて、
前記一ブロックは、請求項４０に記載の複合機能ブロックであり、
前記他のブロックは、請求項１５９に記載の複合機能ブロックであることを特徴とする複合機能ブロック。
【請求項１６８】
請求項１６３記載の複合機能ブロックにおいて、
前記その他の信号は固定論理値であることを特徴とする複合機能ブロック。
【請求項１６９】
少なくともリップルキャリ出力信号を生成する機能を有する一ブロックと、
少なくともリップルキャリ入力信号を入力して所定の機能を実現する他のブロックと、
前記一ブロックと前記他のブロックとの間に接続され、前記一ブロックからのリップルキャリ出力信号とその他の信号とを含む複数信号群から１つを選択し、前記他のブロックへ前記リップルキャリ入力信号として出力するリップルキャリ接続回路と、
を備えたことを特徴とする複合機能ブロック。
【請求項１７０】
請求項１６９に記載の複合機能ブロックにおいて、
前記一ブロックは、請求項１５８に記載の複合機能ブロックであり、
前記他のブロックは、請求項２０に記載の機能ブロックであることを特徴とする複合機能ブロック。
【請求項１７１】
請求項１６９に記載の複合機能ブロックにおいて、
前記一ブロックは、請求項２０に記載の機能ブロックであり、
前記他のブロックは、請求項１５８に記載の複合機能ブロックであることを特徴とする複合機能ブロック。
【請求項１７２】
請求項１６９に記載の複合機能ブロックにおいて、
前記一ブロックは、請求項１５９に記載の複合機能ブロックであり、
前記他のブロックは、請求項４０に記載の複合機能ブロックであることを特徴とする複合機能ブロック。
【請求項１７３】
請求項１６９に記載の複合機能ブロックにおいて、
前記一ブロックは、請求項４０に記載の複合機能ブロックであり、
前記他のブロックは、請求項１５９に記載の複合機能ブロックであることを特徴とする複合機能ブロック。
【請求項１７４】
請求項１６９に記載の複合機能ブロックにおいて、
前記その他の信号は固定論理値であることを特徴とする複合機能ブロック。
【請求項１７５】
請求項１５６、１６２、１６３、または１６９に記載の複合機能ブロックを２次元アレイに配置した領域を有する集積回路。
【請求項１７６】
請求項１５６、１６２、１６３、または１６９に記載の複合機能ブロックを２次元アレイに配置した領域と、
前記領域の周辺に、互いに独立に論理機能を設定できる複数の機能ブロックを配置した領域と、
を有する集積回路。
【請求項１７７】
請求項１５６に記載の複合機能ブロックにおいて、
前記Ｎ個のブロックB1-BNの各々は、
第１入力および第２入力から排他的論理和を生成する第１排他的論理和回路と、
第３入力および第４入力から排他的論理和を生成する第２排他的論理和回路と、
少なくとも前記第１排他的論理和回路の一方の入力と第２排他的論理和回路の一方の入力とを入力し、4-2キャリ出力信号を出力する4-2キャリブロックと、
前記第１および第２排他的論理和回路の出力の排他的論理和を出力する第３の排他的論理和回路と、
前記第３の排他的論理和回路の出力を入力し、第１信号を生成する第１信号生成手段と、
前記第１排他的論理和回路の一方の入力を入力し、第２信号を生成する第２信号生成手段と、
4-2キャリ入力信号と少なくとも１つの論理入力とを含む第１複数信号群を入力し、第３信号を生成する第３信号生成手段と、
前記4-2キャリ入力信号と少なくとも１つの論理入力とを含む第２複数信号群を入力し、第４信号を生成する第４信号生成手段と、
前記第１信号によって制御され、前記第２信号及び前記第３信号の一方を選択してキャリ出力信号として出力する選択手段と、
前記第３排他的論理和回路の出力と前記第４信号との排他的論理和を出力する第４排他的論理和回路と、
を有することを特徴とする複合機能ブロック。
【請求項１７８】
請求項１７７に記載の複合機能ブロックにおいて、
前記Ｎ個のブロックB1-BNの各々は、前記第３排他的論理和回路の２つの入力と前記リップルキャリ入力信号とから桁上げ信号を生成してリップルキャリ出力信号として出力するリップルキャリブロックをさらに有することを特徴とする複合機能ブロック。
【請求項１７９】
請求項１５６に記載の複合機能ブロックにおいて、
前記Ｎ個のブロックB1-BNの各々は第１機能ブロック及び第２機能ブロックからなり、
前記第１機能ブロックは、
第１入力および第２入力から排他的論理和を生成する第１排他的論理和回路Ａと、
第３入力および第４入力から排他的論理和を生成する第２排他的論理和回路Ａと、
少なくとも前記第１排他的論理和回路Ａの一方の入力と第２排他的論理和回路Ａの一方の入力とを入力して4-2キャリ出力信号Ａを出力する4-2キャリブロックＡと、
前記第１および第２排他的論理和回路Ａの出力の排他的論理和を出力する第３排他的論理和回路Ａと、
前記第３排他的論理和回路Ａの出力を入力し、第１信号Ａを生成する第１信号生成手段Ａと、
前記第１排他的論理和回路Ａの一方の入力を入力し、第２信号Ａを生成する第２信号生成手段Ａと、
4-2キャリ入力信号と、リップルキャリ入力信号と、少なくとも１つの論理入力と、を含む第１複数信号群を入力し、第３信号Ａを生成する第３信号生成手段Ａと、
前記4-2キャリ入力信号と、前記リップルキャリ入力信号と、少なくとも１つの論理入力と、を含む第２複数信号群を入力し、第４信号Ａを生成する第４信号生成手段Ａと、
前記第１信号Ａによって制御され、前記第２信号Ａ及び前記第３信号Ａの一方を選択してキャリ出力信号Ａとして出力する選択手段Ａと、
前記第３排他的論理和回路Ａの出力と前記第４信号Ａとの排他的論理和を出力する第４排他的論理和回路Ａと、
前記第３排他的論理和回路Ａの２つの入力の論理積を出力する第１論理積回路と、
を有し、
前記第２機能ブロックは、
第５入力および第６入力から排他的論理和を生成する第１排他的論理和回路Ｂと、
第７入力および第８入力から排他的論理和を生成する第２排他的論理和回路Ｂと、
少なくとも前記第１排他的論理和回路Ｂの一方の入力と第２排他的論理和回路Ｂの一方の入力とを入力して4-2キャリ出力信号を出力する4-2キャリブロックＢと、
前記第１および第２排他的論理和回路Ｂの出力の排他的論理和を出力する第３排他的論理和回路Ｂと、
前記第３排他的論理和回路Ｂの出力を入力し、第１信号Ｂを生成する第１信号生成手段Ｂと、
前記第１排他的論理和回路Ｂの一方の入力を入力し、第２信号Ｂを生成する第２信号生成手段Ｂと、
前記第１機能ブロックからの前記4-2キャリ出力信号Ａ、キャリ出力信号Ａおよび前記第１論理積回路の出力と、少なくとも１つの論理入力と、を含む第３複数信号群を入力し、第３信号Ｂを生成する第３信号生成手段Ｂと、
前記第１機能ブロックからの前記4-2キャリ出力信号Ａおよびキャリ出力信号Ａと、少なくとも１つの論理入力と、を含む第４複数信号群を入力し、第４信号Ｂを生成する第４信号生成手段Ｂと、
前記第１信号Ｂによって制御され、前記第２信号Ｂ及び前記第３信号Ｂの一方を選択してキャリ出力信号Ｂとして出力する選択手段Ｂと、
前記第３排他的論理和回路Ｂの出力と前記第４信号Ｂとの排他的論理和を出力する第４排他的論理和回路Ｂと、
前記第１機能ブロックの前記第３排他的論理和回路Ａの出力と前記第２機能ブロックの前記第３排他的論理和回路Ｂの出力との論理積を出力する第２論理積回路と、
前記第２論理積回路の出力と前記リップルキャリ入力信号との論理積と、前記第２機能ブロックの前記キャリ出力信号Ｂと、の論理和をリップルキャリ出力信号として出力する論理積・論理和回路と、
を有し、前記ブロックBi（ｉは１以上Ｎ−１以下の任意の自然数）の第２機能ブロックの4-2キャリ出力信号が、ブロックBi+1の第１機能ブロックの4-2キャリ入力信号となるように前記Ｎ個のブロックが接続されていることを特徴とする複合機能ブロック。
【請求項１８０】
請求項１５７に記載の複合機能ブロックにおいて、
前記Ｎ個のブロックの各々に共通信号を供給する共通信号線が接続されていることを特徴とする複合機能ブロック。
【請求項１８１】
請求項１８０に記載の複合機能ブロックにおいて、
前記共通信号線は前記ブロックの信号入力専用であることを特徴とする複合機能ブロック。
【請求項１８２】
請求項１８０に記載の複合機能ブロックを複数個接続した複合機能ブロックにおいて、
一つの複合機能ブロックの共通信号を含む複数信号からプログラマブルに一つの信号を選択して他の複合機能ブロックの共通信号として供給する共通信号接続手段を有することを特徴とする複合機能ブロック。
【請求項１８３】
請求項１６３記載の複合機能ブロックにおいて、
前記一ブロックは、請求項１５７に記載の複合機能ブロックであり、
前記他のブロックは、請求項６６に記載の機能ブロックであることを特徴とする複合機能ブロック。
【請求項１８４】
請求項１６３記載の複合機能ブロックにおいて、
前記一ブロックは、請求項６６に記載の機能ブロックであり、
前記他のブロックは、請求項１５７に記載の複合機能ブロックであることを特徴とする複合機能ブロック。
【請求項１８５】
請求項１６３記載の複合機能ブロックにおいて、
前記一ブロックは、請求項１５９に記載の複合機能ブロックであり、
前記他のブロックは、請求項１１０に記載の複合機能ブロックであることを特徴とする複合機能ブロック。
【請求項１８６】
請求項１６３記載の複合機能ブロックにおいて、
前記一ブロックは、請求項１１０に記載の複合機能ブロックであり、
前記他のブロックは、請求項１５９に記載の複合機能ブロックであることを特徴とする複合機能ブロック。
【請求項１８７】
請求項１６３記載の複合機能ブロックにおいて、
前記その他の信号は固定論理値であることを特徴とする複合機能ブロック。
【請求項１８８】
請求項１６９に記載の複合機能ブロックにおいて、
前記一ブロックは、請求項１５８に記載の複合機能ブロックであり、
前記他のブロックは、請求項１０３に記載の機能ブロックであることを特徴とする複合機能ブロック。
【請求項１８９】
請求項１６９に記載の複合機能ブロックにおいて、
前記一ブロックは、請求項１０３に記載の機能ブロックであり、
前記他のブロックは、請求項１５８に記載の複合機能ブロックであることを特徴とする複合機能ブロック。
【請求項１９０】
請求項１６９に記載の複合機能ブロックにおいて、
前記一ブロックは、請求項１５９に記載の複合機能ブロックであり、
前記他のブロックは、請求項１１０に記載の複合機能ブロックであることを特徴とする複合機能ブロック。
【請求項１９１】
請求項１６９に記載の複合機能ブロックにおいて、
前記一ブロックは、請求項１１０に記載の複合機能ブロックであり、
前記他のブロックは、請求項１５９に記載の複合機能ブロックであることを特徴とする複合機能ブロック。
【請求項１９２】
請求項１６９に記載の複合機能ブロックにおいて、
前記その他の信号は固定論理値であることを特徴とする複合機能ブロック。
【請求項１９３】
少なくとも第１〜第４論理入力と、4-2キャリ入力と、4-2キャリ出力と、加算出力と、キャリ出力とを有する機能ブロックにおいて、
前記第１〜第４論理入力と前記4-2キャリ入力との和Ｓが常に次式
Ｓ＝（ｏ４２＋ｏｃ）×２＋ｏｓ  （ここで、ｏ４２は前記4-2キャリ出力、ｏｃは前記キャリ出力、ｏｓは前記加算出力である。）
となるようにコンフィギュレーション可能であることを特徴とする機能ブロック。
【請求項１９４】
請求項１９３に記載の機能ブロックにおいて、
コンフィギュレーションデータに応じてすべての４入力１出力論理機能の中から任意の一つの論理機能を設定できる論理機能生成器を１つのみ備えることを特徴とする機能ブロック。
【請求項１９５】
請求項１９３に記載の機能ブロックにおいて、
コンフィギュレーションデータに応じてすべての３入力１出力論理機能の中から任意の一つの論理機能を設定できる論理機能生成器を１つ備えることを特徴とする機能ブロック。
【請求項１９６】
請求項１９３に記載の機能ブロックにおいて、
コンフィギュレーションデータに応じてすべての３入力１出力論理機能の中から任意の一つの論理機能を設定できる論理機能生成器を２つ備えることを特徴とする機能ブロック。
【請求項１９７】
請求項１９３に記載の機能ブロックにおいて、
コンフィギュレーションデータに応じてすべての２入力１出力論理機能の中から任意の一つの論理機能を設定できる論理機能生成器をｎ個（ｎは２以上４以下の自然数）備えることを特徴とする機能ブロック。
【請求項１９８】
請求項１９４に記載の機能ブロックにおいて、
コンフィギュレーションデータに応じてすべての４入力１出力論理機能を実現できることを特徴とする機能ブロック。
【請求項１９９】
請求項１９６に記載の機能ブロックにおいて、
第１リップルキャリ入力と第１リップルキャリ出力とを有する第１全加算器と第２リップルキャリ入力と第２リップルキャリ出力とを有する第２全加算器とを同時に実現することを特徴とする機能ブロック。
【請求項２００】
請求項１９７に記載の機能ブロックにおいて、
第１リップルキャリ入力と第１リップルキャリ出力とを有する第１全加算器と第２リップルキャリ入力と第２リップルキャリ出力とを有する第２全加算器とを同時に実現することを特徴とする機能ブロック。
【請求項２０１】
請求項１９３に記載の機能ブロックにおいて、
少なくとも１つの排他的論理和回路を含むことを特徴とする機能ブロック。
【請求項２０２】
請求項１９３に記載の機能ブロックにおいて、さらに、リップルキャリ入力とリップルキャリ出力とを有する一つの全加算器を実現できることを特徴とする機能ブロック。
【請求項２０３】
請求項１９３に記載の機能ブロックにおいて、
第１リップルキャリ入力と第１リップルキャリ出力とを有する第１全加算器と第２リップルキャリ入力と第２リップルキャリ出力とを有する第２全加算器とを同時に実現することを特徴とする機能ブロック。
【請求項２０４】
請求項１９３に記載の機能ブロックにおいて、
前記第１〜第４論理入力の少なくとも１つに対して、プログラマブルに複数の論理機能の中から任意の一つの論理機能を設定することができる少なくとも１個の前置回路を備え、
複数の前記機能ブロック間をプログラマブルに接続する相互接続配線を介することなく、前記コンフィギュレ―ションが可能であることを特徴とする機能ブロック。
【請求項２０５】
少なくとも第１〜第４論理入力と、4-2キャリ入力と、4-2キャリ出力と、加算出力と、キャリ出力とを有する機能ブロックにおいて、
コンフィギュレーションデータに応じて４入力１出力排他的論理和を含む複数の論理機能の中から任意の一つの論理機能を設定できる論理機能生成器と、
前記第１〜第４論理入力のうち少なくとも３つの論理入力から前記4-2キャリ出力を生成する4-2キャリブロックと、
前記第１〜第４論理入力のうち少なくとも１つの論理入力、前記論理機能生成器の出力および前記4-2キャリ入力を含む複数信号群から前記キャリ出力を生成するキャリブロックと、
前記論理機能生成器の出力と前記4-2キャリ入力との排他的論理和を前記加算出力として出力する排他的論理和回路と、
を備え、前記第１〜第４論理入力と前記4-2キャリ入力との和Ｓが常に次式
Ｓ＝（ｏ４２＋ｏｃ）×２＋ｏｓ  （ここで、ｏ４２は前記4-2キャリ出力、ｏｃは前記キャリ出力、ｏｓは前記加算出力である。）
となるようにコンフィギュレーション可能であることを特徴とする機能ブロック。
【請求項２０６】
請求項２０５に記載の機能ブロックにおいて、
前記4-2キャリブロックは、前記第１論理入力および第２論理入力の論理積と前記第３論理入力および第４論理入力の論理積との論理和を出力し、
前記キャリブロックは、前記論理機能生成器の出力に応じて、前記第１論理入力および第２論理入力の論理和と前記第３論理入力および第４論理入力の論理和との論理積と、前記4-2キャリ入力と、から一方を選択して前記キャリ出力として出力することを特徴とする機能ブロック。
【請求項２０７】
請求項２０５に記載の機能ブロックにおいて、
前記4-2キャリブロックは、前記第１論理入力および第２論理入力の論理和と前記第３論理入力および第４論理入力の論理和との論理積を出力し、
前記キャリブロックは、前記論理機能生成器の出力に応じて、前記第１論理入力および第２論理入力の論理積と前記第３論理入力および第４論理入力の論理積との論理和と、前記4-2キャリ入力と、から一方を選択して前記キャリ出力として出力することを特徴とする機能ブロック。
【請求項２０８】
請求項２０５に記載の機能ブロックにおいて、さらに、
前記第１〜第４論理入力のうち少なくとも一つに信号を供給する少なくとも一つの前置回路とを備え、
前記前置回路はプログラマブルに複数の論理機能の中から任意の一つの論理機能を設定可能である、ことを特徴とする機能ブロック。
【請求項２０９】
少なくとも第１〜第４論理入力と、4-2キャリ入力と、4-2キャリ出力と、加算出力と、キャリ出力とを有する4-2加算ブロックと、
前記第１〜第４論理入力のうち少なくとも一つに信号を供給する、プログラマブルに複数の論理機能の中から任意の一つの論理機能を設定可能な少なくとも一つの前置回路と、
を備え、前記第１〜第４論理入力と前記4-2キャリ入力との和Ｓが常に次式
Ｓ＝（ｏ４２＋ｏｃ）×２＋ｏｓ  （ここで、ｏ４２は前記4-2キャリ出力、ｏｃは前記キャリ出力、ｏｓは前記加算出力である。）
となるようにコンフィギュレーション可能であり、かつ、複数の４入力１出力論理機能を実現できることを特徴とする機能ブロック。
【請求項２１０】
請求項２０９に記載の機能ブロックにおいて、
前記4-2加算ブロックは、
前記第１〜第４論理入力および前記4-2キャリ入力の排他的論理和を前記加算出力として出力する５入力排他的論理和回路と、
前記第１〜第４論理入力のうち少なくとも３つの入力から前記4-2キャリ出力を生成する4-2キャリブロックと、
前記第１〜第４論理入力のうち少なくとも１つの入力と前記4-2キャリ入力とを含む第１複数信号群から前記キャリ出力を生成するキャリブロックと、
を備えることを特徴とする機能ブロック。
【請求項２１１】
請求項２１０に記載の機能ブロックにおいて、
前記５入力排他的論理和回路は前記第１〜第４論理入力の排他的論理和を出力する４入力排他的論理和回路を含み、
前記キャリブロックは前記４入力排他的論理和回路の出力によって制御されることを特徴とする機能ブロック。
【請求項２１２】
請求項２１１に記載の機能ブロックにおいて、
前記4-2キャリブロックは前記第１論理入力および第２論理入力の論理積と前記第３論理入力および第４論理入力の論理積との論理和を出力し、
前記キャリブロックは、前記４入力排他的論理和回路の出力に応じて、前記第１論理入力および第２論理入力の論理和と前記第３論理入力および第４論理入力の論理和との論理積と、前記4-2キャリ入力と、から一方を選択して出力することを特徴とする機能ブロック。
【請求項２１３】
請求項２１１に記載の機能ブロックにおいて、
前記4-2キャリブロックは前記第１論理入力および第２論理入力の論理和と前記第３論理入力および第４論理入力の論理和との論理積を出力し、
前記キャリブロックは、前記４入力排他的論理和回路の出力に応じて、前記第１論理入力および第２論理入力の論理積と前記第３論理入力および第４論理入力の論理積との論理和と、前記4-2キャリ入力と、から一方を選択して出力することを特徴とする機能ブロック。
【請求項２１４】
少なくとも4-2キャリ入力と、4-2キャリ出力と、加算出力と、キャリ出力と、リップルキャリ入力と、リップルキャリ出力とを有する機能ブロックであって、
複数の前記機能ブロック間をプログラマブルに接続する相互接続配線を含まずに、少なくとも、動的信号によって制御される4入力1出力マルチプレクサと、
複数の4入力1出力論理機能と、
前記4-2キャリ入力と前記4-2キャリ出力と前記加算出力と前記キャリ出力とを含む4-2加算器と、
前記加算出力と前記リップルキャリ入力と前記リップルキャリ出力とを含む全加算器と、
を実現可能であることを特徴とする機能ブロック。
【請求項２１５】
第１〜第４のNビット引数入力（Nは２以上の自然数）、多ビット加算出力および多ビットキャリ出力を有するNビット4-2加算器において、
少なくとも第１〜第４引数入力、4-2キャリ入力、4-2キャリ出力、加算出力およびキャリ出力を有し、プログラマブルに複数の論理機能の中から任意の一つの論理機能が設定される機能ブロックをＮ個設け、
前記第１〜第４のNビット引数入力は、それぞれ、前記Ｎ個の機能ブロックの第１〜第４引数入力から成り、前記多ビット加算出力は前記Ｎ個の機能ブロックの加算出力を含み、前記多ビットキャリ出力は前記Ｎ個の機能ブロックのキャリ出力を含み、
前記Ｎ個の機能ブロックは、ｉ番目（ｉは１以上N-1以下の自然数）の機能ブロックの前記4-2キャリ出力が(i+1)番目の機能ブロックの前記4-2キャリ入力に信号を供給するように接続され、かつ、
前記Ｎ個の機能ブロックの各々は、前記第１〜第４引数入力と前記4-2キャリ入力との和Ｓが常に次式
Ｓ＝（ｏ４２＋ｏｃ）×２＋ｏｓ  （ここで、ｏ４２は前記4-2キャリ出力、ｏｃは前記キャリ出力、ｏｓは前記加算出力である。）
となるようにコンフィギュレーションされている、
ことを特徴とするNビット4-2加算器。
【請求項２１６】
請求項２１５に記載のNビット4-2加算器において、
前記Ｎ個の機能ブロックと、前記Ｎ個の機能ブロック間をプログラマブルに接続する相互接続網と、を備える集積回路上に実現されていることを特徴とするNビット4-2加算器。
【請求項２１７】
請求項２１５に記載のNビット4-2加算器において、
前記Ｎ個の機能ブロックの各々は、
コンフィギュレーションデータに応じて複数の４入力１出力論理機能の中から一つの論理機能が選択され、前記選択された論理機能に従って前記第１〜第４引数入力から論理出力を生成する論理機能生成器と、
前記第２、第３および第４引数入力から前記4-2キャリ出力を生成する4-2キャリブロックと、
少なくとも前記論理出力を入力し、第１信号を生成する第１信号生成手段と、
少なくとも前記第１引数入力を入力し、第２信号を生成する第２信号生成手段と、
少なくとも前記4-2キャリ入力を入力し第３信号を生成する第３信号生成手段と、
少なくとも前記4-2キャリ入力を入力し第４信号を生成する第４信号生成手段と、
前記第１信号に従って、前記第２信号及び前記第３信号のいずれかを選択して前記キャリ出力として出力する選択手段と、
前記論理出力と前記第４信号との排他的論理和を前記加算出力として出力する排他的論理和回路と、
を備えることを特徴とするNビット4-2加算器。
【請求項２１８】
請求項２１５に記載のNビット4-2加算器において、
前記Ｎ個の機能ブロックの各々は、
前記第１引数入力および前記第２引数入力から排他的論理和を生成する第１排他的論理和回路と、
前記第３引数入力および前記第４引数入力から排他的論理和を生成する第２排他的論理和回路と、
前記第１排他的論理和回路の一方の入力と第２排他的論理和回路の一方の入力とを入力し、前記4-2キャリ出力を生成する4-2キャリブロックと、
前記第１および第２排他的論理和回路の出力の排他的論理和を出力する第３の排他的論理和回路と、
前記第３の排他的論理和回路の出力を入力し第１信号を生成する第１信号生成手段と、
前記第１排他的論理和回路の一方の入力を入力し第２信号を生成する第２信号生成手段と、
前記4-2キャリ入力と少なくとも１つの論理入力とを含む第１複数信号群を入力し、第３信号を生成する第３信号生成手段と、
前記4-2キャリ入力と少なくとも１つの論理入力とを含む第２複数信号群を入力し、第４信号を生成する第４信号生成手段と、
前記第１信号によって制御され、前記第２信号及び前記第３信号の一方を選択して前記キャリ出力として出力する選択手段と、
前記第３排他的論理和回路の出力と前記第４信号との排他的論理和を前記加算出力として出力する第４排他的論理和回路と、
を備えることを特徴とするNビット4-2加算器。
【請求項２１９】
複数の多ビット4-2加算器（I, J, K は２以上の自然数)を含む多ビット多引数加算器において、
前記複数の多ビット4-2加算器の各々は、
第１〜第４の多ビット引数入力、多ビット加算出力および多ビットキャリ出力を有し、
少なくとも第１〜第４引数入力、4-2キャリ入力、4-2キャリ出力、加算出力およびキャリ出力を有し、プログラマブルに複数の論理機能の中から任意の一つの論理機能が設定される機能ブロックを複数個設け、
前記第１〜第４の多ビット引数入力は、それぞれ、前記複数の機能ブロックの前記第１〜第４引数入力から成り、前記多ビット加算出力は前記複数の機能ブロックの前記加算出力を含み、前記多ビットキャリ出力は前記複数の機能ブロックの前記キャリ出力を含み、
前記複数の機能ブロックは、ｉ番目の機能ブロックの前記4-2キャリ出力が(i+1)番目の機能ブロックの前記4-2キャリ入力に信号を供給するように接続され、かつ、
前記複数の機能ブロックの各々は、前記第１〜第４引数入力と前記4-2キャリ入力との和Ｓが常に次式
Ｓ＝（ｏ４２＋ｏｃ）×２＋ｏｓ  （ここで、ｏ４２は前記4-2キャリ出力、ｏｃは前記キャリ出力、ｏｓは前記加算出力である。）
となるようにコンフィギュレーションされており、
次の接続構成（１）〜（６）：
（１）  Iビット4-2加算器（Iは２以上の自然数)の前記多ビットキャリ出力の少なくとも一部および前記多ビット加算出力の少なくとも一部と、Jビット4-2加算器（J は２以上の自然数)の前記多ビットキャリ出力の少なくとも一部および前記多ビット加算出力の少なくとも一部とは、Kビット4-2加算器（K は２以上の自然数)の前記第１〜第４のKビット引数入力に供給されるように接続された構成；
（２）  前記Iビット4-2加算器の前記多ビットキャリ出力の少なくとも一部および前記多ビット加算出力の少なくとも一部は、前記Jビット4-2加算器の前記第１〜第４のJビット引数入力のいずれかに供給されるように接続された構成；
（３）  前記Iビット4-2加算器の前記多ビットキャリ出力の少なくとも一部および前記多ビット加算出力の少なくとも一部は、前記Jビット4-2加算器の前記第１〜第４のJビット引数入力のいずれかに供給され、
前記Jビット4-2加算器の前記多ビットキャリ出力の少なくとも一部および前記多ビット加算出力の少なくとも一部は、前記Kビット4-2加算器の前記第１〜第４のKビット引数入力のいずれかに供給されるように接続された構成；
（４）  多ビット加算出力と第１および第２多ビット引数入力とを有する多ビット全加算器とを備え、
Nビット4-2加算器（N は２以上の自然数)の前記多ビットキャリ出力の少なくとも一部および前記多ビット加算出力の少なくとも一部は、前記多ビット全加算器の前記第１および第２多ビット引数入力にそれぞれ供給されるように接続された構成；
（５）  前記Iビット4-2加算器の前記多ビットキャリ出力の少なくとも一部および前記多ビット加算出力の少なくとも一部は、前記Jビット4-2加算器の前記第１〜第４のJビット引数入力のいずれかに供給され、
前記Kビット4-2加算器の前記多ビットキャリ出力の少なくとも一部および前記多ビット加算出力の少なくとも一部は、Lビット4-2加算器（L は２以上の自然数)の前記第１〜第４のLビット引数入力のいずれかに供給され、
前記Jビット4-2加算器の前記多ビットキャリ出力の少なくとも一部および前記多ビット加算出力の少なくとも一部と、前記Lビット4-2加算器の前記多ビットキャリ出力の少なくとも一部および前記多ビット加算出力の少なくとも一部とは、Mビット4-2加算器（M は２以上の自然数)の前記第１〜第４のMビット引数入力に供給されるように接続された構成；
（６）  前記Iビット4-2加算器の前記多ビットキャリ出力の少なくとも一部および前記多ビット加算出力の少なくとも一部は、前記Jビット4-2加算器の前記第１〜第４のJビット引数入力のいずれかに供給され、
前記Jビット4-2加算器の前記多ビットキャリ出力の少なくとも一部および前記多ビット加算出力の少なくとも一部と、前記Kビット4-2加算器の前記多ビットキャリ出力の少なくとも一部および前記多ビット加算出力の少なくとも一部とは、前記Lビット4-2加算器の前記第１〜第４のLビット引数入力に供給され、
前記Mビット4-2加算器の前記多ビットキャリ出力の少なくとも一部および前記多ビット加算出力の少なくとも一部と、前記Nビット4-2加算器の前記多ビットキャリ出力の少なくとも一部および前記多ビット加算出力の少なくとも一部とは、前記Kビット4-2加算器の前記第１〜第４のKビット引数入力に供給されるように接続された構成、
の少なくとも１つの構成を含む多ビット多引数加算器。
【請求項２２０】
多ビット加算出力および多ビットキャリ出力とを有するNビット4AND4-2加算器（Nは２以上の自然数）において、
少なくとも、各々に論理積回路の出力が供給される第１〜第４入力、4-2キャリ入力、4-2キャリ出力、加算出力およびキャリ出力を有し、プログラマブルに複数の論理機能の中から任意の一つの論理機能が設定される機能ブロックをＮ個設け、
前記多ビット加算出力は前記Ｎ個の機能ブロックの前記加算出力を含み、
前記多ビットキャリ出力は前記第Ｎ個の機能ブロックの前記キャリ出力を含み、
前記Ｎ個の機能ブロックは、ｉ番目（ｉは１以上N-1以下の自然数）の機能ブロックの前記4-2キャリ出力が(i+1)番目の機能ブロックの前記4-2キャリ入力に信号を供給するように接続され、かつ、
前記Ｎ個の機能ブロックの各々は、前記第１〜第４入力と前記4-2キャリ入力との和Ｓが常に次式
Ｓ＝（ｏ４２＋ｏｃ）×２＋ｏｓ  （ここで、ｏ４２は前記4-2キャリ出力、ｏｃは前記キャリ出力、ｏｓは前記加算出力である。）
となるようにコンフィギュレーションされていることを特徴とするNビット4AND4-2加算器。
【請求項２２１】
請求項２２０に記載のNビット4AND4-2加算器において、
前記Ｎ個の機能ブロックの各々は、
コンフィギュレーションデータに応じて複数の４入力１出力論理機能の中から一つの論理機能が選択され、前記選択された論理機能に従って前記第１〜第４引数入力から論理出力を生成する論理機能生成器と、
前記第２、第３および第４引数入力から前記4-2キャリ出力を生成する4-2キャリブロックと、
少なくとも前記論理出力を入力し、第１信号を生成する第１信号生成手段と、
少なくとも前記第１引数入力を入力し、第２信号を生成する第２信号生成手段と、
少なくとも前記4-2キャリ入力を入力し第３信号を生成する第３信号生成手段と、
少なくとも前記4-2キャリ入力を入力し第４信号を生成する第４信号生成手段と、
前記第１信号に従って、前記第２信号及び前記第３信号のいずれかを選択して前記キャリ出力として出力する選択手段と、
前記論理出力と前記第４信号との排他的論理和を前記加算出力として出力する排他的論理和回路と、
を有することを特徴とするNビット4AND4-2加算器。
【請求項２２２】
請求項２２０に記載のNビット4AND4-2加算器において、
前記Ｎ個の機能ブロックの各々は、
前記第１引数入力および前記第２引数入力から排他的論理和を生成する第１排他的論理和回路と、
前記第３引数入力および前記第４引数入力から排他的論理和を生成する第２排他的論理和回路と、
前記第１排他的論理和回路の一方の入力と第２排他的論理和回路の一方の入力とを入力し、前記4-2キャリ出力を生成する4-2キャリブロックと、
前記第１および第２排他的論理和回路の出力の排他的論理和を出力する第３の排他的論理和回路と、
前記第３の排他的論理和回路の出力を入力し第１信号を生成する第１信号生成手段と、
前記第１排他的論理和回路の一方の入力を入力し第２信号を生成する第２信号生成手段と、
前記4-2キャリ入力と少なくとも１つの論理入力とを含む第１複数信号群を入力し、第３信号を生成する第３信号生成手段と、
前記4-2キャリ入力と少なくとも１つの論理入力とを含む第２複数信号群を入力し、第４信号を生成する第４信号生成手段と、
前記第１信号によって制御され、前記第２信号及び前記第３信号の一方を選択して前記キャリ出力として出力する選択手段と、
前記第３排他的論理和回路の出力と前記第４信号との排他的論理和を前記加算出力として出力する第４排他的論理和回路と、
を有することを特徴とするNビット4AND4-2加算器。
【請求項２２３】
多ビット加算出力および多ビットキャリ出力とを有するNビット4AND4-2加算器（Nは２以上の自然数）を複数個と、
複数の多ビット4-2加算器を含む多ビット多引数加算器と、
を備え、
前記Nビット4AND4-2加算器の前記多ビット加算出力の少なくとも一部および前記多ビットキャリ出力の少なくとも一部は、前記多ビット多引数加算器に供給され、
前記Nビット4AND4-2加算器は、
少なくとも、各々に論理積回路の出力が供給される第１〜第４入力、4-2キャリ入力、4-2キャリ出力、加算出力およびキャリ出力を有し、プログラマブルに複数の論理機能の中から任意の一つの論理機能が設定される機能ブロックをＮ個設け、
前記多ビット加算出力は前記Ｎ個の機能ブロックの前記加算出力を含み、
前記多ビットキャリ出力は前記第Ｎ個の機能ブロックの前記キャリ出力を含み、
前記Ｎ個の機能ブロックは、ｉ番目（ｉは１以上N-1以下の自然数）の機能ブロックの前記4-2キャリ出力が(i+1)番目の機能ブロックの前記4-2キャリ入力に信号を供給するように接続され、かつ、
前記Ｎ個の機能ブロックの各々は、前記第１〜第４入力と前記4-2キャリ入力との和Ｓが常に次式
Ｓ＝（ｏ４２＋ｏｃ）×２＋ｏｓ  （ここで、ｏ４２は前記4-2キャリ出力、ｏｃは前記キャリ出力、ｏｓは前記加算出力である。）
となるようにコンフィギュレーションされており、
前記多ビット多引数加算器の前記複数の多ビット4-2加算器の各々は、
第１〜第４の多ビット引数入力、多ビット加算出力および多ビットキャリ出力を有し、
少なくとも第１〜第４引数入力、4-2キャリ入力、4-2キャリ出力、加算出力およびキャリ出力を有し、プログラマブルに複数の論理機能の中から任意の一つの論理機能が設定される機能ブロックを複数個設け、
前記第１〜第４の多ビット引数入力は、それぞれ、前記複数の機能ブロックの前記第１〜第４引数入力から成り、前記多ビット加算出力は前記複数の機能ブロックの前記加算出力を含み、前記多ビットキャリ出力は前記複数の機能ブロックの前記キャリ出力を含み、
前記複数の機能ブロックは、ｉ番目の機能ブロックの前記4-2キャリ出力が(i+1)番目の機能ブロックの前記4-2キャリ入力に信号を供給するように接続され、かつ、
前記複数の機能ブロックの各々は、前記第１〜第４引数入力と前記4-2キャリ入力との和Ｓが常に次式
Ｓ＝（ｏ４２＋ｏｃ）×２＋ｏｓ  （ここで、ｏ４２は前記4-2キャリ出力、ｏｃは前記キャリ出力、ｏｓは前記加算出力である。）
となるようにコンフィギュレーションされている、
ことを特徴とする乗算器。
【請求項２２４】
第１および第２のNビット引数入力、多ビット加算出力および多ビットキャリ出力を有するNビット2AND4-2加算器（Nは２以上の自然数）において、
少なくとも、各々に論理積回路の出力が供給される第１および第２引数入力、第３および第４引数入力、4-2キャリ入力、4-2キャリ出力、加算出力およびキャリ出力を有し、プログラマブルに複数の論理機能の中から任意の一つの論理機能が設定される機能ブロックをＮ個設け、
前記第１および第２のNビット引数入力は、それぞれ、前記Ｎ個の機能ブロックの第１および第２引数入力から成り、前記多ビット加算出力は前記Ｎ個の機能ブロックの加算出力を含み、前記多ビットキャリ出力は前記Ｎ個の機能ブロックのキャリ出力を含み、
前記Ｎ個の機能ブロックは、ｉ番目（ｉは１以上N-1以下の自然数）の機能ブロックの前記4-2キャリ出力が(i+1)番目の機能ブロックの前記4-2キャリ入力に信号を供給するように接続され、かつ、
前記Ｎ個の機能ブロックの各々は、前記第１〜第４引数入力と前記4-2キャリ入力との和Ｓが常に次式
Ｓ＝（ｏ４２＋ｏｃ）×２＋ｏｓ  （ここで、ｏ４２は前記4-2キャリ出力、ｏｃは前記キャリ出力、ｏｓは前記加算出力である。）
となるようにコンフィギュレーションされている、
ことを特徴とするNビット2AND4-2加算器。
【請求項２２５】
請求項２２４に記載のNビット2AND4-2加算器において、
前記Ｎ個の機能ブロックの各々は、
コンフィギュレーションデータに応じて複数の４入力１出力論理機能の中から一つの論理機能が選択され、前記選択された論理機能に従って前記第１〜第４引数入力から論理出力を生成する論理機能生成器と、
前記第２、第３および第４引数入力から前記4-2キャリ出力を生成する4-2キャリブロックと、
少なくとも前記論理出力を入力し、第１信号を生成する第１信号生成手段と、
少なくとも前記第１引数入力を入力し、第２信号を生成する第２信号生成手段と、
少なくとも前記4-2キャリ入力を入力し第３信号を生成する第３信号生成手段と、
少なくとも前記4-2キャリ入力を入力し第４信号を生成する第４信号生成手段と、
前記第１信号に従って、前記第２信号及び前記第３信号のいずれかを選択して前記キャリ出力として出力する選択手段と、
前記論理出力と前記第４信号との排他的論理和を前記加算出力として出力する排他的論理和回路と、
を有することを特徴とするNビット2AND4-2加算器。
【請求項２２６】
請求項２２４に記載のNビット2AND4-2加算器において、
前記Ｎ個の機能ブロックの各々は、
前記第１引数入力および前記第２引数入力から排他的論理和を生成する第１排他的論理和回路と、
前記第３引数入力および前記第４引数入力から排他的論理和を生成する第２排他的論理和回路と、
前記第１排他的論理和回路の一方の入力と第２排他的論理和回路の一方の入力とを入力し、前記4-2キャリ出力を生成する4-2キャリブロックと、
前記第１および第２排他的論理和回路の出力の排他的論理和を出力する第３の排他的論理和回路と、
前記第３の排他的論理和回路の出力を入力し第１信号を生成する第１信号生成手段と、
前記第１排他的論理和回路の一方の入力を入力し第２信号を生成する第２信号生成手段と、
前記4-2キャリ入力と少なくとも１つの論理入力とを含む第１複数信号群を入力し、第３信号を生成する第３信号生成手段と、
前記4-2キャリ入力と少なくとも１つの論理入力とを含む第２複数信号群を入力し、第４信号を生成する第４信号生成手段と、
前記第１信号によって制御され、前記第２信号及び前記第３信号の一方を選択して前記キャリ出力として出力する選択手段と、
前記第３排他的論理和回路の出力と前記第４信号との排他的論理和を前記加算出力として出力する第４排他的論理和回路と、
を有することを特徴とするNビット2AND4-2加算器。
【請求項２２７】
請求項２２４に記載のNビット2AND4-2加算器をＭ個（Ｍは２以上の自然数）備え、
前記Ｍ個のNビット2AND4-2加算器は、j番目（ｊは１以上M-1以下の自然数）のNビット4-2加算器の前記多ビットキャリ出力の少なくとも一部および前記多ビット加算出力の少なくとも一部は、j+1番目のNビット4-2加算器の前記第１および第２のNビット引数入力に供給されるように接続されたことを特徴とする乗算器。
【請求項２２８】
請求項２２４に記載のNビット2AND4-2加算器を一つ備えることを特徴とする乗算器。
【請求項２２９】
請求項２２４に記載のNビット2AND4-2加算器をＭ個（Ｍは２以上の自然数）接続した回路を少なくとも２つ以上備え、
各回路における前記Ｍ個のNビット2AND4-2加算器は、j番目（ｊは１以上M-1以下の自然数）のNビット4-2加算器の前記多ビットキャリ出力の少なくとも一部および前記多ビット加算出力の少なくとも一部は、j+1番目のNビット4-2加算器の前記第１および第２のNビット引数入力に供給されるように接続されたことを特徴とする乗算器。
【請求項２３０】
プログラマブルに複数の論理機能の中から任意の一つの論理機能をそれぞれ設定可能な複数の機能ブロックを複数段配列し、
前記複数の機能ブロックを相互接続網によりプログラマブルに接続し、
前記複数の機能ブロックの各々に、動的信号によって制御される4入力１出力マルチプレクサを設定したことを特徴とするバレルシフタ。
【請求項２３１】
請求項２３０に記載のバレルシフタにおいて、
任意の段におけるｎ番目の前記4入力１出力マルチプレクサのｉ番目（ｉは０以上３以下の整数）の入力には、前段から出力される多ビットデータのn-i×4k番目（kは0以上の整数、nは3×4k以上の整数）のビットが供給されることを特徴とするバレルシフタ。
【請求項２３２】
請求項２３０に記載のバレルシフタにおいて、
任意の段におけるｎ番目の前記4入力１出力マルチプレクサのｉ番目（ｉは０以上３以下の整数）の入力には、前段から出力される多ビットデータのn+i×4k番目（k, nは0以上の整数）のビットが供給されることを特徴とするバレルシフタ。
【請求項２３３】
請求項２３０に記載のバレルシフタにおいて、
第１セクションと第２セクションとからなり、
前記第１および第２セクションの各々における各機能ブロックには、動的信号によって制御される4入力１出力マルチプレクサが設定され、
前記第１セクションにおいて、任意の段におけるm番目の前記4入力１出力マルチプレクサのｉ番目（ｉは０以上３以下の整数）の入力には、前段からの多ビットデータのm-i×4k番目（kは0以上の整数、mは3×4k以上の整数）のビットが供給され、
前記第２セクションにおいて、任意の段におけるn番目（nは3×4k+1以上の整数）の前記4入力１出力マルチプレクサのj番目（ｊは０以上３以下の整数）の入力には、前記第１セクションの出力のn-j×4k+1番目のビットが供給されることを特徴とするバレルシフタ。
【請求項２３４】
請求項２３０に記載のバレルシフタにおいて、
第１セクションと第２セクションとからなり、
前記第１および第２セクションの各々における各機能ブロックには、動的信号によって制御される4入力１出力マルチプレクサが設定され、
前記第１セクションにおいて、任意の段におけるm番目の前記4入力１出力マルチプレクサのｉ番目（ｉは０以上３以下の整数）の入力には、前段からの多ビットデータのm+i×4k番目（k, mは0以上の整数）のビットが供給され、
前記第２セクションにおいて、任意の段におけるn番目（nは0以上の整数）の前記4入力１出力マルチプレクサのj番目（ｊは０以上３以下の整数）の入力には、前記第１セクションの出力のn+j×4k+1番目のビットが供給されることを特徴とするバレルシフタ。
【請求項２３５】
請求項２３０に記載のバレルシフタにおいて、
前記複数の機能ブロックの各々は、
コンフィギュレーションデータに応じて複数の４入力１出力論理機能の中から一つの論理機能が選択され、前記選択された論理機能に従って前記第１〜第４引数入力から論理出力を生成する論理機能生成器と、
前記第２、第３および第４引数入力から前記4-2キャリ出力を生成する4-2キャリブロックと、
少なくとも前記論理出力を入力し、第１信号を生成する第１信号生成手段と、
少なくとも前記第１引数入力を入力し、第２信号を生成する第２信号生成手段と、
少なくとも前記4-2キャリ入力を入力し第３信号を生成する第３信号生成手段と、
少なくとも前記4-2キャリ入力を入力し第４信号を生成する第４信号生成手段と、
前記第１信号に従って、前記第２信号及び前記第３信号のいずれかを選択して前記キャリ出力として出力する選択手段と、
前記論理出力と前記第４信号との排他的論理和を前記加算出力として出力する排他的論理和回路と、
を有することを特徴とするバレルシフタ。
【請求項２３６】
請求項２３０に記載のバレルシフタにおいて、
前記複数の機能ブロックの各々は、
前記第１引数入力および前記第２引数入力から排他的論理和を生成する第１排他的論理和回路と、
前記第３引数入力および前記第４引数入力から排他的論理和を生成する第２排他的論理和回路と、
前記第１排他的論理和回路の一方の入力と第２排他的論理和回路の一方の入力とを入力し、前記4-2キャリ出力を生成する4-2キャリブロックと、
前記第１および第２排他的論理和回路の出力の排他的論理和を出力する第３の排他的論理和回路と、
前記第３の排他的論理和回路の出力を入力し第１信号を生成する第１信号生成手段と、
前記第１排他的論理和回路の一方の入力を入力し第２信号を生成する第２信号生成手段と、
前記4-2キャリ入力と少なくとも１つの論理入力とを含む第１複数信号群を入力し、第３信号を生成する第３信号生成手段と、
前記4-2キャリ入力と少なくとも１つの論理入力とを含む第２複数信号群を入力し、第４信号を生成する第４信号生成手段と、
前記第１信号によって制御され、前記第２信号及び前記第３信号の一方を選択して前記キャリ出力として出力する選択手段と、
前記第３排他的論理和回路の出力と前記第４信号との排他的論理和を前記加算出力として出力する第４排他的論理和回路と、
を有することを特徴とするバレルシフタ。
【請求項２３７】
プログラマブルに複数の論理機能の中から任意の一つの論理機能が設定される二つの機能ブロックと、
リップルキャリ入力とリップルキャリ出力を有する２ビットキャリルックアヘッド回路と、を備え、
前記２ビットキャリルックアヘッド回路は第１と第２の否定論理積回路を含み、
前記リップルキャリ出力は前記第１の否定論理積回路の出力によって供給され、
前記第１の否定論理積回路の一方の入力は前記第２の否定論理積回路の出力によって供給され、
前記第２の否定論理積回路の一方の入力は前記リップルキャリ入力によって供給される、ことを特徴とする複合機能ブロック。
【請求項２３８】
コンフィギュレーションデータに応じて、任意の４入力１出力論理機能の中から一つの論理機能が選択され、前記選択された論理機能に従って第１、第２、第３および第４論理入力から第１論理出力を生成する第１の論理機能生成器と、
コンフィギュレーションデータに応じて、任意の３入力１出力論理機能の中から一つの論理機能が選択され、前記選択された論理機能に従って第５、第６および第７論理入力から第２論理出力を生成する第２の論理機能生成器と、
少なくともリップルキャリ入力と前記第１論理出力とを入力とし、リップルキャリ出力を生成するブロックと、
コンフィギュレーションデータに応じて、複数の入力信号のうち一つを選択して出力するマルチプレクサと、
を備え、前記第２、第３および第４論理入力と前記第５、第６および第７論理入力とはそれぞれ互いに接続され、前記第１論理出力と前記マルチプレクサの出力とを含む信号群から１つの出力信号を生成する、
ことを特徴とする機能ブロック。
【請求項２３９】
請求項２３８に記載の機能ブロックからなる第１の機能ブロックと、同じく請求項２３８に記載の機能ブロックからなる第２の機能ブロックと、を備え、
前記第１の機能ブロックの前記第２論理出力は、前記第２の機能ブロックの前記マルチプレクサの前記複数の入力信号の一つとして入力され、
前記第１の機能ブロックの前記リップルキャリ出力は、前記第２の機能ブロックの前記リップルキャリ入力に接続される、
ことを特徴とする複合機能ブロック。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ユーザーによって多様な機能を設定できる再構成可能デバイスに係り、特にそのデバイスの中の論理機能構成単位である機能ブロックに関する。より詳しくは、本発明は乗算回路とマルチプレクサの実現に適した機能ブロックに関する。なお、本明細書では、プログラマブル機能セルの中で論理機能の主要部分を担う回路を機能ブロックと呼ぶこととする。
【０００２】
【従来の技術】
ＰＬＤ（プログラマブル論理装置）、ＦＰＧＡ（フィールド・プログラマブル・ゲート・アレイ）等、ユーザーによって多様な機能を設定できる再構成可能デバイスは、近年急速に発展している。集積度及びスピードの向上によって、従来のＡＳＩＣ（特定用途向け集積回路）設計時のエミュレーションや簡単な周辺回路の置き換えのみならず、アプリケーションに応じてハードウエア構成を変えられる再構成可能コンピュータに使うことも期待されている。
【０００３】
しかしながら、コンピューティングにおいて頻繁に使用される乗算器は、従来のＰＬＤやＦＰＧＡでは効率的に実現できず、これが再構成可能コンピュータ実用化の妨げの一因になっていた。さらに、従来のＰＬＤやＦＰＧＡでは多入力マルチプレクサ（ＭＵＸ）も効率的に実現できず、このため、たとえば浮動小数点の加減算に使うバレルシフタもコンパクトなものができなかった。
【０００４】
図１０３に通常の乗算器の典型例を示す。この乗算器は、
Ｘ  ＝  ｘ７ｘ６ｘ５ｘ４ｘ３ｘ２ｘ１ｘ０とＹ  ＝  ｙ３ｙ２ｙ１ｙ０との積
Ｚ  ＝  ｚ１１ｚ１０ｚ９ｚ８ｚ７ｚ６ｚ５ｚ４ｚ３ｚ２ｚ１ｚ０を算出する。ここでｘｉ，  ｙｉ，  ｚｉは、それぞれ二進数データＸ，  Ｙ，  Ｚの第ｉ＋１番目のビットを表し、０または１である（ｉ＝０，  １，  ２，  ・・・）。たとえばｘ７ｘ６ｘ５ｘ４ｘ３ｘ２ｘ１ｘ０という表記は二進数データＸのビット配列を表す。図１０３からわかるように、この乗算器は乗算器単位７６をアレイ状に規則的に配列することで構成される。乗算器単位７６は、論理積回路（ＡＮＤ）３１の出力を１ビット全加算器４３の一方の引数入力ｂに接続したものである。なお、図１０３の１ビット全加算器４３において、ａはもう一方の引数入力、ｉｃはキャリ入力、ｏｃはキャリ出力、ｓは加算出力を表す。図１０３は、最も基本的なアレイ型乗算器であり、簡単で規則性が高いためＦＰＧＡにインプリメントするのに適している。
【０００５】
図１０４に、従来のＦＰＧＡの機能ブロック４の一例を示す（例えば、Ｕ．Ｓ．  Ｐａｔｅｎｔ  ５，３４９，２５０、５，４８１，２０６、５，５４６，０１８を参照）。なお、ここでは本説明に関係する部分のみを示した。図中、論理機能生成器４０は、内蔵されたコンフィギュレーションメモリの記憶内容に応じて種々の論理機能を実現できる回路である。
【０００６】
図１０５に論理機能生成器４０の一例を示す。これは、コンフィギュレ―ションメモリとして１６個の１ビットメモリセル１３を持ち、各メモリセルの出力を１６入力のマルチプレクサ（ＭＵＸ）２０に接続したものである。４本の制御入力ｉｎ０，  ｉｎ１，  ｉｎ２，  ｉｎ３の値に応じて１６入力ＭＵＸ  ２０は１６個の入力のうち一つを選択し、それをｏｕｔとして出力する。この論理機能生成器４０は、コンフィギュレーションメモリ１３に記憶された内容に応じて論理機能が決まり、ｉｎ０，  ｉｎ１，  ｉｎ２，  ｉｎ３を入力としｏｕｔを出力とする任意の４入力１出力論理関数を実現できる。一般に、２ｋビットのメモリセルを持ち、ｋ入力１出力の論理関数すべてを実現できる論理機能生成器をルックアップテーブル（Ｌｏｏｋ−Ｕｐ  Ｔａｂｌｅ、以下、ＬＵＴと記す。）と呼ぶ。図１０５は、４入力ＬＵＴの一例である。ＬＵＴの他の構成例は、Ｕ．Ｓ．  Ｐａｔｅｎｔ  Ｒｅ．３４，３６３，  ４，７０６，２１６などに開示されている。
【０００７】
図１０４の機能ブロック４は、多様な論理機能を実現するために論理機能生成器４０を用い、それにリップルキャリー回路として２入力ＭＵＸ  ２２と、加算器を構成するのに必要な２入力排他的論理和回路（ＸＯＲ）３０を付加したものである。
【０００８】
２入力ＭＵＸについては、図７を参照していただきたい。図７において、２入力ＭＵＸ  ２２は、入力ｉｎ０が繋がっている０と記された方の入力（０−入力）と、入力ｉｎ１が繋がっている１と記された方の入力（１−入力）を有する。制御入力ｉｎ２が論理値０のとき、０−入力側に与えられている信号ｉｎ０が出力ｏｕｔに出力され、制御入力ｉｎ２が論理値１のとき、１−入力側に与えられている信号ｉｎ１が出力ｏｕｔに出力される。なお、本明細書では、入力数を略して単に「ＭＵＸ」と記した場合には、２入力（制御入力を除いて）であることを意味するものとする。
【０００９】
図１０４の機能ブロック４を使って図１０３の乗算器を構成するには、図１０４の論理機能生成器４０に図１０６に示す回路の機能をインプリメントすればよい。このとき、図１０４の機能ブロック４は、図１０３の乗算器単位７６として機能する。ここで、図１０４の入力ｉｎ０、出力ｏｓ、リップルキャリ入力ｉｒｃ、リップルキャリ出力ｏｒｃは、図１０３の１ビット全加算器４３の引数入力ａ、加算出力ｓ、キャリ入力ｉｃ、キャリ出
力ｏｃにそれぞれ対応する。また、図１０４の論理機能生成器４０にインプリメントされる図１０６の回路のなかのＡＮＤ  ３１は、図１０３の乗算器単位７６のなかのＡＮＤ  ３１に対応する。
【００１０】
以上のように、図１０３の乗算器単位７６は図１０４の機能ブロック４一つで構成できる。しかしこの方法で乗算器を作ると、ｍビットデータとｎビットデータの乗算には、ｍ×ｎ個の機能ブロック４を必要とし大きな面積を占有する。さらに、乗数がｎビットのときｎ段の機能ブロック４を信号が伝搬しなければならないため（キャリの伝搬遅延を除く）、信号伝搬遅延も大きくなる。
【００１１】
図１０４に示す機能ブロック以外にも、１ビット全加算器の一方の引数入力にＡＮＤを付加した乗算器単位を一つの機能ブロックで実現する方法が、幾つか考案されている（例えば、特開平１１−２４８９１号公報、特開平１１−１２２０９６号公報、特開平１１−３５３１５２号公報、Ｕ．Ｓ．  Ｐａｔｅｎｔ  ５，５７０，０３９を参照）。そして、これら従来の技術も上述した問題と同様の問題を抱えている。
【００１２】
上記問題を解決すべく、修正ブースアルゴリズムとワレスツリーを使った乗算器をＰＬＤにインプリメントする方法がＵ．Ｓ．  Ｐａｔｅｎｔ  ５，７５４，４５９に開示されている。しかし、この乗算器は構造が複雑で多量の配線資源を必要とし面積縮小効果が少ないという問題が有る。
【００１３】
更に、従来のＦＰＧＡでは、多入力（本明細書では３入力以上の意味に用いる）のＭＵＸを効率的に実現できないという問題もあった。図１０４のように、４入力論理機能生成器４０を一つ有する機能ブロック４では、最も簡単な２入力ＭＵＸ一つしかインプリメントできない。なぜなら、２入力ＭＵＸは制御入力も合わせて全部で３つの入力端子で実現できるが、３入力ＭＵＸは５つの入力端子、４入力ＭＵＸは６つの入力端子を必要とし、４入力論理機能生成器では入力数が不足するからである。
【００１４】
この理由から、たとえば有用性の高い４入力ＭＵＸを従来のＦＰＧＡで実現するためには、図１０７に示すように２つの機能ブロック４ａおよび４ｂとＭＵＸ  ２２を用いなければならなかった（図１０７には、機能ブロックのうち本説明に関連する部分のみを示す）。ここで、各機能ブロックの中の論理機能生成器４０には、例えば図７に示されるような２入力ＭＵＸがインプリメントされる。このとき、図１０７において、機能ブロック４ａおよび４ｂそれぞれの入力ｉ０，  ｉ１が４入力ＭＵＸの４つの入力に対応し、入力ｉ２とｉ４がそれぞれ４入力ＭＵＸの第一及び第二の制御入力に対応し、出力ｏｍが４入力ＭＵＸの出力に対応する。
【００１５】
このように従来のＦＰＧＡで４入力ＭＵＸを実現するためには、２つの機能ブロックを使わなければならず、占有面積が大きくなるという問題があった。特開平１１−２４８９１号公報、特開平１１−１２２０９６号公報、特開平１１−３５３１５２号公報では、４入力ＬＵＴを使わない全く別の方式の機能ブロックが開示されている。しかし、この機能ブロックでも、４入力ＭＵＸを１ブロックで実現することはできない。
【００１６】
浮動小数点加減算では、多数のＭＵＸで構成されるバレルシフタが用いられる。これをＦＰＧＡにインプリメントする場合、１つの機能ブロックに一つの２入力ＭＵＸを対応させていたのでは効率が悪く、面積が大きくなってしまう。４入力ＭＵＸを一つの機能ブロックで実現して、効率を大幅に改善することが望まれる。
【００１７】
【発明が解決しようとする課題】
第１の問題点は、従来の機能ブロックを用いて乗算器を構成した場合、乗算器の面積および遅延が大きくなることである。その理由は、１ビット全加算器とＡＮＤからなる乗算器単位を１つの機能ブロックで作っているため、乗算器全体を構成するのには非常に多くの機能ブロックを使わなければならないからである。
【００１８】
第２の問題点は、従来の機能ブロックを用いて多入力マルチプレクサを構成した場合、面積が大きくなることである。その理由は、１つの機能ブロックには２入力ＭＵＸしかインプリメントできないので、多入力ＭＵＸを構成するためには複数の機能ブロックを使わなければならないからである。
【００１９】
【発明の目的】
そこで、本発明の目的は、コンパクトで高速な乗算器を実現できる機能ブロックを提供することである。
【００２０】
また、本発明の他の目的は、多入力マルチプレクサをコンパクトに実現できる機能ブロックを提供することである。
【００２１】
【課題を解決するための手段】
本発明による機能ブロックは、既知の機能ブロックに４−２キャリブロックを加えて、４−２加算器として使用可能である。さらに、前置ロジックを加えて、ＡＮＤ付き４−２加算器を一つの機能ブロックで実現できる。また、ＸＯＲ（排他的論理和回路）とＭＵＸ（マルチプレクサ）とを組み合わせて、ＡＮＤ付き４−２加算器としても使える機能ブロックを構成する。さらに、前置ロジックとして使ったＭＵＸを利用して、４入力以上のＭＵＸを一つの機能ブロックで実現できるようにする。
【００２２】
本発明の第１の観点による機能ブロックは、請求項１に記載されているように、コンフィギュレーションデータに応じて複数の４入力１出力論理機能の中から一つの論理機能が選択され、前記選択された論理機能に従って第１、第２、第３および第４論理入力から論理出力を生成する論理機能生成器と、前記第２、第３および第４論理入力から４−２キャリ出力信号を生成する４−２キャリブロックと、少なくとも前記論理出力を入力し、第１信号を生成する第１信号生成手段と、少なくとも前記第１論理入力を入力し、第２信号を生成する第２信号生成手段と、少なくとも４−２キャリ入力信号を入力し、第３信号を生成する第３信号生成手段と、少なくとも前記４−２キャリ入力信号を入力し、第４信号を生成する第４信号生成手段と、前記第１信号に従って、前記第２信号及び前記第３信号のいずれかを選択してキャリ出力信号として出力する選択手段と、前記論理出力と前記第４信号との排他的論理和を出力する排他的論理和回路と、を備えることを特徴とする。
【００２３】
請求項１記載の機能ブロックに基づく種々の実施形態は、図６、図４０〜４２、図４５〜５１、図５４、図５９、図６１等に具体的に示される。
【００２４】
一例として図６を参照すれば、上記論理機能生成器の第１、第２、第３および第４論理入力は、論理機能生成器４０の入力ｉｎ０，  ｉｎ１，  ｉｎ２およびｉｎ３にぞれぞれ対応し、出力ｏｕｔは上記論理出力に対応する。
【００２５】
上記第１信号生成手段は、図６においては、論理機能生成器４０の出力ｏｕｔをそのまま第１信号としてマルチプレクサ２２ｃ（上記選択手段に対応）の制御入力に接続する配線に対応する。あるいは、図４０や図４２の例では、上記第１信号生成手段は、論理機能生成器４０の出力ｏｕｔや他の信号ｉ５０あるいは固定値などから１つを選択して第１信号としてマルチプレクサ２２ｃの制御入力に接続するマルチプレクサ２２ｄやＡＮＤゲート３１ｄなどに対応する。
【００２６】
上記第２信号生成手段は、図６においては、論理機能生成器４０の入力ｉｎ０をそのまま第２信号としてマルチプレクサ２２ｃの０−入力に接続する配線に対応する。あるいは、上記第２信号生成手段は、図４２に示す例では、論理機能生成器４０の入力ｉｎ０およびｉｎ３から１つを選択して第２信号としてマルチプレクサ２２ｃの０−入力へ出力するマルチプレクサ２２ｍに対応する。
【００２７】
上記第３信号生成手段は、図６においては、４−２キャリ入力信号ｉ４２をそのままマルチプレクサ２２ｃの１−入力に接続する配線に対応する。図４１に示す例では、上記第３信号生成手段は、４−２キャリ入力信号ｉ４２と入力ｉｎ３とから１つを選択するマルチプレクサ２２ｇと、その出力を第３信号としてマルチプレクサ２２ｃの１−入力へ出力する配線とに対応する。また、図４８に示す例では、上記第３信号生成手段は、４−２キャリ入力信号ｉ４２とリップルキャリ入力信号ｉｒｃとから１つを選択するマルチプレクサ２２ｈと、その出力を第３信号としてマルチプレクサ２２ｃの１−入力へ出力する配線とに対応する。
【００２８】
上記第４信号生成手段は、図６においては、４−２キャリ入力信号ｉ４２をそのまま排他的論理和回路３０（上記排他的論理和回路に対応）の一方の入力に接続する配線に対応する。言い換えれば、図６においては、第３信号生成手段と第４信号生成手段とは、共に４−２キャリ入力信号ｉ４２をそのまま第３信号及び第４信号として用いる。また、図４１に示す例では、上記第４信号生成手段は、４−２キャリ入力信号ｉ４２と入力ｉｎ３とから１つを選択するマルチプレクサ２２ｇと、その出力を第４信号として排他的論理和回路３０の一方の入力に接続する配線とに対応する。また、図４７に示す例では、上記第４信号生成手段は、４−２キャリ入力信号ｉ４２とリップルキャリ入力信号ｉｒｃとから１つを選択して第４信号として排他的論理和回路３０の一方の入力へ出力するマルチプレクサ２２ｈに対応する。さらに、図５９に示す例では、上記第４信号生成手段は、４−２キャリ入力信号ｉ４２とリップルキャリ入力信号ｉｒｃとから１つを選択するマルチプレクサ２２ｈと、その出力と固定値とを選択的に第４信号として排他的論理和回路３０の一方の入力へ出力させるＡＮＤゲート３１ｋとに対応する。
【００２９】
本発明の第２の観点による機能ブロックは、請求項６６に記載されているように、第１入力および第２入力から排他的論理和を生成する第１排他的論理和回路と、第３入力および第４入力から排他的論理和を生成する第２排他的論理和回路と、少なくとも前記第１排他的論理和回路の一方の入力と第２排他的論理和回路の一方の入力とを入力し、４−２キャリ出力信号を出力する４−２キャリブロックと、前記第１および第２排他的論理和回路の出力の排他的論理和を出力する第３の排他的論理和回路と、前記第３の排他的論理和回路の出力を入力し、第１信号を生成する第１信号生成手段と、少なくとも前記第１排他的論理和回路の一方の入力を入力し、第２信号を生成する第２信号生成手段と、４−２キャリ入力信号と少なくとも１つの論理入力とを含む第１複数信号群を入力し、第３信号を生成する第３信号生成手段と、前記４−２キャリ入力信号と少なくとも１つの論理入力とを含む第２複数信号群を入力し、第４信号を生成する第４信号生成手段と、前記第１信号によって制御され、前記第２信号及び前記第３信号の一方を選択してキャリ出力信号として出力する選択手段と、前記第３排他的論理和回路の出力と前記第４信号との排他的論理和を出力する第４排他的論理和回路と、を有することを特徴とする。
【００３０】
請求項６６記載の機能ブロックに基づく種々の実施形態は、図７３、図７７〜８１、図８４〜８６等に具体的に示される。
【００３１】
たとえば、図７３に示す例では、第１排他的論理和回路はＸＯＲ３０ａに、第２排他的論理和回路はＸＯＲ３０ｂに、４−２キャリブロックはマルチプレクサ２２ｊに、第３排他的論理和回路はＸＯＲ３０ｃに、第４排他的論理和回路は３０ｄにそれぞれ対応する。
【００３２】
また、上記第１信号生成手段は、基本的には、請求項１記載の機能ブロックの場合と同様である。たとえば、図７３においては、第３排他的論理和回路ＸＯＲ３０ｃの出力をそのまま第１信号としてマルチプレクサ２２ｃ（上記選択手段に対応）の制御入力に接続する配線に対応する。
【００３３】
上記第２信号生成手段も、基本的には、請求項１記載の機能ブロックの場合と同様である。たとえば、図７３においては、第１排他的論理和回路はＸＯＲ３０ａの１つの入力をそのまま第２信号としてマルチプレクサ２２ｃの０−入力に接続する配線に対応する。
【００３４】
上記第３信号生成手段も、基本的には、請求項１記載の機能ブロックの場合と同様である。たとえば、図７３においては、４−２キャリ入力信号ｉ４２と他の論理入力信号ｉ４０とを含む第１複数信号群から１つを選択するマルチプレクサ２２ｈと、その出力を第３信号としてマルチプレクサ２２ｃの１−入力へ出力する配線とに対応する。
【００３５】
上記第４信号生成手段も、基本的には、請求項１記載の機能ブロックの場合と同様である。たとえば、図７３においては、４−２キャリ入力信号ｉ４２と他の論理入力信号ｉ４０とを含む第２複数信号群から１つを選択するマルチプレクサ２２ｈと、その出力を第４排他的論理和回路３０ｄの一方の入力に接続する配線とに対応する。言い換えれば、図７３においては、第３信号生成手段と第４信号生成手段とは、共に同じ複数信号群から１つの信号をマルチプレクサ２２ｈにより選択し、その選択された信号をそのまま第３信号及び第４信号として用いる。
【００３６】
【発明の実施の形態】
以下、本発明による機能ブロックの実施形態およびそれを用いたプログラマブル機能セルについて図面を参照して詳細に説明する。
【００３７】
１．第１実施形態
１．０）プログラマブル機能セル
図１は、本発明による機能ブロックを用いたプログラマブル機能セルの概略的構成を示すブロック図である。このプログラマブル機能セル１は、入力ブロック３、機能ブロック４、および出力ブロック５を有する。
【００３８】
プログラマブル機能セル１は、再構成可能デバイス上に二次元アレイ状に配置され、プログラマブル機能セル間は相互接続配線群２によって結合される。
【００３９】
入力ブロック３は、複数の入力選択ユニット（ここでは４個の入力選択ユニット３＿０，  ３＿１，  ３＿２，  ３＿３）から成る。各入力選択ユニットは、相互接続配線群２から一つの配線上の信号を選択して機能ブロック４へ出力する。入力選択ユニット３＿０，  ３＿１，  ３＿２，  ３＿３の出力は、機能ブロック４の入力ｉ０，  ｉ１，  ｉ２，  ｉ３にそれぞれ接続される。出力ブロック５は、機能ブロック４の出力ｏｌ，  ｏｓ，  ｏｃおよびクロック信号ｃｌｋを入力とし、ｏｌ，  ｏｓ，  ｏｃから選択された信号を相互接続配線群２から選択された配線に直接、または一旦レジスタに保持した後、出力する。当該プログラマブル機能セルが使われない場合には、出力ブロック５はどの相互接続配線にも出力しないこともある。入力ブロック３および出力ブロック５における配線あるいは信号の選択は、ユーザーが設定するコンフィギュレーションデータによって決まる。
【００４０】
１．１）入力選択ユニット
図２は、図１におけるプログラマブル機能セルに用いられる入力選択ユニットの第１の例を示すブロック図である。入力選択ユニット３＿ｋ（ｋは整数）は、１本の出力線１１と複数のプログラマブルスイッチ１０から成る。各プログラマブルスイッチ１０は、出力線１１と相互接続配線群２の対応する１本の配線とを結合する。必ずしも、入力選択ユニット３＿ｋを通過する相互接続配線群２のすべての配線と出力線１１がプログラマブルスイッチ１０によって結合している必要はない。また、相互接続配線群２の中のどの配線と結合しているかは、入力選択ユニットごとに違っていてもよい。各プログラマブルスイッチ１０は、コンフィギュレーションデータに応じて２つの端子間を接続、遮断のいずれかの状態にする回路である。
【００４１】
図３は、図２におけるプログラマブルスイッチ１０の一例を示すブロック図である。各プログラマブルスイッチ１０は、１ビットのコンフィギュレーションメモリ１３とトランスミッションゲート１２とから成る。コンフィギュレーションメモリ１３の出力ｑと反転出力ｑｂは、トランスミッションゲート１２のゲート入力ｇと反転ゲート入力ｇｂにそれぞれ接続され、トランスミッションゲート１２の入出力端子ｔ０とｔ１はプログラマブルスイッチ１０の端子１４と１５にそれぞれ繋がる。プログラマブルスイッチ１０の端子１４と１５の間は、コンフィギュレーションメモリ１３に論理値１が保存されているとき接続状態になり、論理値０が保存されているとき遮断状態になる。
【００４２】
図４は、図３におけるトランスミッションゲート１２の一例を示す回路図である。トランスミッションゲート１２は、周知のように、ＮＭＯＳ  （ｎ−ｃｈａｎｎｅｌ  ｍｅｔａｌ−ｏｘｉｄｅ−ｓｅｍｉｃｏｎｄｕｃｔｏｒ）トランジスタ１６とＰＭＯＳ  （ｐ−ｃｈａｎｎｅｌ  ＭＯＳ）  トランジスタ１７のドレイン端子同士を繋いで第一の入出力端子ｔ０とし、ソース端子同士を繋いで第二の入出力端子ｔ１としたものである。
【００４３】
これ以外にもプログラマブルスイッチ１０は種々の方法で構成することができる。たとえば、特開平１１−３５３１５２号公報を参照されたい。
【００４４】
図５、図１におけるプログラマブル機能セルに用いられる入力選択ユニットの第２の例を示すブロック図である。この入力選択ユニット３＿ｋは、相互接続配線群２の一つ以上の配線をマルチプレクサ２０の入力に接続し、マルチプレクサ２０の制御入力２１の各線にコンフィギュレーションメモリ１３の出力を接続したものである。コンフィギュレーションメモリ１３の内容に応じて、マルチプレクサ２０の入力のいずれかの信号が出力線１１に伝達される。
【００４５】
上記第１例と同様に、必ずしも、入力選択ユニット３＿ｋを通過する相互接続配線群２のすべての配線がマルチプレクサ２０に接続される必要はなく、また、相互接続配線群２とマルチプレクサ２０との接続の仕方は入力選択ユニットごとに違っていてもよい。
【００４６】
１．２）機能ブロック（第１実施形態）
図６は、本発明による機能ブロックの第１実施形態の構成を示すブロック図である。
【００４７】
本実施形態の機能ブロック４は、論理機能生成器４０、４−２キャリブロック４１、２入力ＭＵＸ  ２２ｃ、および排他的論理和回路（ＸＯＲ）３０から構成される。機能ブロック４の入力ｉ１，  ｉ２，  ｉ３はそれぞれ論理機能生成器４０の入力ｉｎ１，  ｉｎ２，  ｉｎ３及び４−２キャリブロック４１の入力ｉｎ１，  ｉｎ２，  ｉｎ３に接続され、機能ブロック４の入力ｉ０は論理機能生成器４０の入力ｉｎ０及びＭＵＸ  ２２ｃの０−入力に接続される。論理機能生成器４０の出力ｏｕｔは、ＭＵＸ  ２２ｃの制御入力およびＸＯＲ  ３０の第一の入力に接続され、かつ機能ブロック４の論理出力ｏｌとなる。
【００４８】
機能ブロック４の４−２キャリ入力ｉ４２はＭＵＸ  ２２ｃの１−入力およびＸＯＲ  ３０の第二の入力に接続される。４−２キャリブロック４１の出力、ＸＯＲ  ３０の出力、ＭＵＸ  ２２ｃの出力は、それぞれ本機能ブロック４の４−２キャリ出力ｏ４２、加算出力ｏｓ、キャリ出力ｏｃになる。なお、ＭＵＸ  ２２ｃについては、すでに説明したのでここでは省略する（図７を参照）。
【００４９】
論理機能生成器４０は、内蔵されたコンフィギュレーションメモリの記憶内容に応じて種々の論理機能を実現できる回路であり、４入力ＬＵＴ（図１０５参照）がその典型例である。
【００５０】
４−２キャリブロック４１は、入力ｉｎ１，  ｉｎ２，  ｉｎ３に関するキャリ信号（３入力を加算する際に生じる桁上げ信号）を出力ｏｕｔとする回路である。以下、図８を参照しながら、いくつかの回路例を説明する。
【００５１】
図８（１）は４−２キャリブロック４１の第１の例を示す回路図である。論理和回路（ＯＲ）３２は、ｉｎ１とｉｎ２を入力とするＡＮＤ  ３１ｂの出力と、ｉｎ２とｉｎ３を入力とするＡＮＤ  ３１ｃの出力と、ｉｎ３とｉｎ１を入力とするＡＮＤ  ３１ａの出力と、を入力し、それら３入力の論理和（ＯＲ）を出力ｏｕｔとする。この構成からわかるように、４−２キャリブロック４１は入力ｉｎ１，  ｉｎ２，  ｉｎ３について対称（すなわち入力を互いに置換しても出力ｏｕｔは不変）である。
【００５２】
図８（２）は４−２キャリブロック４１の第２の例を示す回路図である。ｉｎ２とｉｎ３を入力とするＡＮＤ  ３１の出力をＭＵＸ  ２２の０−入力に接続し、ｉｎ２とｉｎ３を入力とするＯＲ  ３３の出力をＭＵＸ  ２２の１−入力に接続し、入力ｉｎ１をＭＵＸ  ２２の制御入力とし、ＭＵＸ  ２２の出力をｏｕｔとしたものである。
【００５３】
図８（３）は４−２キャリブロック４１の第３の例を示す回路図である。ｉｎ２とｉｎ３を入力とするＡＮＤ  ３１ｂの出力をＯＲ  ３３ｂの第一の入力に接続し、ｉｎ２とｉｎ３を入力とするＯＲ  ３３ａの出力をＡＮＤ  ３１ａの第一の入力に接続し、入力ｉｎ１をＡＮＤ  ３１ａの第二の入力とし、ＡＮＤ  ３１ａの出力をＯＲ  ３３ｂの第二の入力に接続し、ＯＲ  ３３ｂの出力をｏｕｔとしたものである。
【００５４】
図８（４）は４−２キャリブロック４１の第４の例を示す回路図である。この第４の例は、第３の例におけるＯＲ  ３３ａをＸＯＲ  ３０に置き換えたものである。
【００５５】
図８（５）は４−２キャリブロック４１の第５の例を示す回路図である。ｉｎ２とｉｎ３を入力とするＸＯＲ  ３０の出力をＭＵＸ  ２２の制御入力とし、ｉｎ２（ｉｎ３でもよい）をＭＵＸ  ２２の０−入力に接続し、ｉｎ１をＭＵＸ  ２２の１−入力とし、ＭＵＸ  ２２の出力をｏｕｔとしたものである。
【００５６】
図８（６）は４−２キャリブロック４１の第６の例を示す回路図である。ｉｎ２とｉｎ３を入力とするＮＡＮＤ  ３４の出力をＭＵＸ  ２２の０−入力に接続し、ｉｎ２とｉｎ３を入力とするＮＯＲ  ３５の出力をＭＵＸ  ２２の１−入力に接続し、入力ｉｎ１をＭＵＸ  ２２の制御入力とし、ＭＵＸ  ２２の反転出力をｏｕｔとしたものである。これは、第２の例における各論理ゲート３１，  ３３，  ２２の出力を反転したものである。一般に論理ゲートは、ＡＮＤやＯＲなどよりも、出力が反転したＮＡＮＤやＮＯＲなどのほうが簡単にでき、遅延も小さい。そのため、第２の例よりも第６の例の方が面積および遅延の点で優れている。
【００５７】
図８（７）は４−２キャリブロック４１の第７の例であるを示す回路図である。ｉｎ２とｉｎ３を入力とするＮＡＮＤ  ３４の出力をＯＡＩ  ３６の第一の入力に接続し、ｉｎ２とｉｎ３を入力とするＮＯＲ  ３５の出力をＯＡＩ  ３６の第二の入力に接続し、ｉｎ１を入力としるインバータ３７の出力をＯＡＩ  ３６の第三の入力に接続し、ＯＡＩ  ３６の出力をｏｕｔとしたものである。ここでＯＡＩ  ３６は、第二の入力と第三の入力との論理和の結果と、第一の入力との否定論理積を出力する論理ゲートである。別々のＯＲとＮＡＮＤを繋いで作ることもできるが、不可分な一つの論理ゲートとして作った方が面積、遅延の点でよい場合がある。第７の例は、第３の例の各論理ゲートの出力を反転したものである。
【００５８】
図８に挙げた例以外にも、論理を反転するなどこの分野の技術を持つものであれば容易に考えることができる種々の変形例がある。また、多様な論理回路をインプリメントできる３入力論理機能生成器（例えば３入力ＬＵＴ）を４−２キャリブロック４１として用いてもよい。この場合、コンフィギュレーション次第で４−２キャリ出力ｏ４２を生成するのに使ったり、後述するように他の目的に使ったりできるという利点がある。
【００５９】
１．３）出力ブロック
図９は、図１における出力ブロックの第１の例を示すブロック図である。ｏｃ、ｏｓ、ｏｌの各信号は、レジスタブロック４２ｃ，  ４２ｂ，  ４２ａの入力ｉｎにそれぞれ入力する。レジスタブロック４２ａ，  ４２ｂ，  ４２ｃにはクロック信号ｃｌｋが供給され、コンフィギュレーションデータに応じて入力ｉｎの信号をそのままｏｕｔに出力したり、クロック信号ｃｌｋで制御されるレジスタに一旦保持してからｏｕｔに出力したりする。
【００６０】
レジスタブロック４２ａ，  ４２ｂ，４２ｃの出力ｏｕｔは、出力選択ユニット５＿２，  ５＿１，  ５＿０の入力ｉｎにそれぞれ接続される。出力選択ユニット５＿０，  ５＿１，  ５＿２はコンフィギュレーションデータに応じて入力ｉｎの信号を相互接続配線群２の一本または複数の配線に出力したり、いずれにも出力しなかったりする。レジスタブロック４２ｃ，  ４２ｂ，  ４２ａはいくつかの制御入力（図９ではｃｔｌ１，  ｃｔｌ２の２本）を持ち、それらはそれぞれ入力ブロック３ｃ，  ３ｂ，  ３ａの出力に繋がれる。入力ブロック３ｃ，  ３ｂ，  ３ａと相互接続配線群２とのつながり方は入力ブロックごとに異なっていてもよい。
【００６１】
図１０は、図９におけるレジスタブロックの例を示すブロック図である。レジスタブロック４２の入力ｉｎはＤ−フリップフロップ（ＦＦ）  ３８のデータ入力ｄとＭＵＸ  ２２ｓの一方の入力に接続され、Ｄ−ＦＦ  ３８のデータ出力ｑはＭＵＸ  ２２ｓのもう一方の入力に接続され、ＭＵＸ  ２２ｓの出力はレジスタブロック４２の出力ｏｕｔとなる。
【００６２】
Ｄ−ＦＦ  ３８にはクロック信号ｃｌｋが入力される他、いくつかの制御信号が入力する。ここでは、レジスタブロック４２の２つの制御入力にｃｔｌ１，  ｃｔｌ２が接続する。Ｄ−ＦＦの制御入力はいろいろな種類があるが、たとえばクロックイネーブルｅやセット／リセットｓｒは有用性が高い。ＭＵＸ２２ｓの制御入力にはコンフィギュレーションメモリ１３ｓの出力が接続され、その保持内容に応じて、入力ｉｎが直接ｏｕｔに出力されたり、クロック信号ｃｌｋに同期してＤ−ＦＦに一旦レジスタされた後で出力されたりする。
【００６３】
なお、ＭＵＸへ２つの入力を繋ぐ際、どちらを０−入力（あるいは１−入力）にするかを特に問わないときは、図１０のＭＵＸ  ２２ｓのようにＭＵＸ記号のなかの０，  １を省略することがある。
【００６４】
図１１は、図９における出力選択ユニットの第１例を示すブロック図である。出力選択ユニット５＿ｋ（ｋ  ＝  ０，  １，  ・・・）の入力ｉｎはバッファ３９に入力され、バッファの出力１８は各プログラマブルスイッチ１０の一方の端子に接続される。プログラマブルスイッチ１０のもう一方の端子は相互接続配線群２の一つの配線に接続される。出力選択ユニット５＿ｋを通過する相互接続配線群２のすべての配線がプログラマブルスイッチ１０を介してバッファ３９の出力１８に繋がっている必要はない。また、図１１の参照番号２＿１，  ２＿２で示されるように、相互接続配線群２のある配線が直接バッファ３９の出力１８に繋がっていてもよい。相互接続配線群２と出力選択ユニット５＿ｋ（ｋ＝０，  １，  ・・・）との繋がり方は、出力選択ユニットごとに異なっていてもよい。
【００６５】
図１２は、図９における出力選択ユニットの第２例を示すブロック図である。ＭＵＸ  ２２ａは制御入力に繋がれたコンフィギュレーションメモリ１３ａの内容に応じてｏｓとｏｌのいずれかの信号を選択し、レジスタブロック４２ｂの入力ｉｎへ出力する。信号ｏｃはレジスタブロック４２ｃの入力ｉｎに入力される。また、レジスタブロック４２ｂ、４２ｃの制御入力（ｃｔｌ１，  ｃｔｌ２）には、それぞれ入力ブロック３ｂと３ｃの出力が接続される。レジスタブロック４２ｃの出力ｏｕｔはＭＵＸ  ２２ｃの０−入力とＭＵＸ  ２２ｂの１−入力に、レジスタブロック４２ｂの出力ｏｕｔはＭＵＸ  ２２ｃの１−入力とＭＵＸ  ２２ｂの０−入力に、ＭＵＸ  ２２ｃとＭＵＸ  ２２ｂの制御入力はともにコンフィギュレーションメモリ１３ｂの出力に、それぞれ接続される。コンフィギュレーションメモリ１３ｂに論理値０が保存されているとき、レジスタブロック４２ｂと４２ｃの出力はそれぞれ出力選択ユニット５＿１と５＿０に入力され、コンフィギュレーションメモリ１３ｂに論理値１が保存されているとき、レジスタブロック４２ｂと４２ｃの出力はそれぞれ出力選択ユニット５＿０と５＿１に入力される。
【００６６】
出力選択ユニット５＿０と５＿１は、それぞれ相互接続配線群２（図１２では６本の配線の例が示されている）の偶数番目と奇数番目の配線にプログラマブルスイッチ１０を介して結合される。
【００６７】
出力ブロック５の第２例（図１２）は、第１例（図９）に比べて、入力ブロック３、出力選択ユニット５＿ｋ（ｋは整数）、レジスタブロック４２の数が少なく、小さい面積で済む利点がある。これは、ＭＵＸ  ２２ａで信号ｏｓ，  ｏｌのうち１つのみを選択することで実現されている。
【００６８】
図６に示す機能ブロック４において、三つの出力ｏｓ，  ｏｌ，  ｏｃが同時に使われることはほとんどなく、従ってそれらすべてに独立に入力ブロック３、出力選択ユニット５＿ｋ（ｋは整数）、レジスタブロック４２を持たせる必要はない。したがって、出力ブロック５の第２例（図１２）のように、最初に入力信号を２つに絞ってから、それらの信号に対して入力選択ユニット、出力選択ユニット、レジスタブロックを設けた方が効率的である。
【００６９】
また、出力ブロック５の第２例（図１２）では、ＭＵＸ  ２２ｃと２２ｂを用いて、レジスタブロック４２ｂと４２ｃの出力をコンフィギュレーションメモリ１３ｂの内容に応じて交換して出力選択ユニット５＿０と５＿１に与えることができる。各出力選択ユニットは相互接続配線群２の中の半分の配線としか繋がっていない。しかしながら、レジスタブロックはコンフィギュレーションメモリ１３ｂの内容次第でどちらの出力選択ユニットにも出力できるために、相互接続配線群２のすべての配線に出力可能である。
【００７０】
このようにして、ルータビリティを確保しつつ、出力選択ユニットのプログラマブルスイッチ１０の数を半減でき、面積を小さくできる。
【００７１】
なお、図１２の例では、信号を交換するＭＵＸ  ２２ｃと２２ｂはレジスタブロック４２ｂと４２ｃの出力側についているが、入力側に付けて２つのレジスタブロックの入力信号を交換できるようにしても効果は同じである。また、図１２において信号ｏｓとｏｃを入れ替え、ｏｃとｏｌからＭＵＸ  ２２ａで一つの信号を選択するようにしてもよい。
【００７２】
ただし、図１２において信号ｏｌとｏｃを入れ替え、ｏｃとｏｓから一つの信号を選択するようにしたものや、さらに信号ｏｌとｏｃとｏｓから一つの信号のみを選択してレジスタブロックや出力選択ユニットなどを一つで済ませるようにしたものは、本発明の目的を達成することはできない。後で述べるように、本発明の目的を達成するためには、ｏｃとｏｓが同時に相互接続配線群に出力できることが必要だからである。
【００７３】
１．４）動作
次に、上述した構成を有するプログラマブル機能セルの動作および効果について説明する。プログラマブル機能セルには、次に述べる二通りの動作形態がある。
【００７４】
１．４．１）論理モード
第一の動作形態は、従来のＰＬＤやＦＰＧＡにおけるプログラマブル機能セルと同様に、多様な論理機能を設定して再構成可能デバイス上にインプリメントされる種々の回路の構成要素として使用するものである。この動作形態を論理モードと呼ぶ。
【００７５】
論理モードでは、図１のプログラマブル機能セル１において、機能ブロック４の論理出力ｏｌが相互接続配線群２に出力されるように出力ブロック５をコンフィギュレーションする。論理出力ｏｌは機能ブロック４（図６）の論理機能生成器４０の出力ｏｕｔそのものであるため、論理モードにおいてプログラマブル機能セル１は、論理機能生成器４０によって実現できる任意の論理回路として使用することができる。
【００７６】
１．４．２）４−２加算器モード
第二の動作形態は、図１のプログラマブル機能セル１を４−２加算器として使用するものである。この動作形態を４−２加算器モードと呼ぶ。４−２加算器モードでは、機能ブロック４（図６）の中の論理機能生成器４０に、図１３に示すような４入力ＸＯＲ  ２４をインプリメントする。
【００７７】
図１３は、４−２加算器モードにおいて、機能ブロック４の論理機能生成器４０にインプリメントされる４入力ＸＯＲ  ２４を示す図である。図１３において、４入力ＸＯＲ  ２４の４入力ｉｎ０，  ｉｎ１，  ｉｎ２，  ｉｎ３および１出力ｏｕｔは、それぞれ図６に示す論理機能生成器４０の同じ記号の入力および出力に対応する。
【００７８】
このように４入力ＸＯＲ  ２４がインプリメントされた論理機能生成器４０を有する機能ブロック４は、図１４に示すような４−２加算器と呼ばれる回路と同じ機能を有する。
【００７９】
（４−２加算器の等価回路）
図１４は、４−２加算器の等価回路を示す図である。４−２加算器の入力ｉ０，  ｉ１，  ｉ２，  ｉ３，  ｉ４２と出力ｏ４２，  ｏｓ，  ｏｃとは、それぞれ図６の機能ブロック４の同じ記号の入力および出力に対応する。４−２加算器４４には加算出力ｏｓとキャリ出力ｏｃがあるため、４−２加算器モードではプログラマブル機能セル１の出力ブロック５は、機能ブロック４の出力ｏｓとｏｃ両方を同時に相互接続配線群２の異なる配線にそれぞれ出力する必要がある。
【００８０】
図１４において、４−２加算器４４の引数入力ｉ１，  ｉ２，  ｉ３を１ビット全加算器４３ａのキャリ入力ｉｃおよび引数入力ａ，  ｂにそれぞれ入力し、４−２加算器４４の４−２キャリ入力ｉ４２および引数入力ｉ０と１ビット全加算器４３ａの加算出力ｓとを１ビット全加算器４３ｂのキャリ入力ｉｃおよび引数入力ａ，  ｂにそれぞれ入力する。そして、１ビット全加算器４３ａのキャリ出力と１ビット全加算器４３ｂの加算出力ｓおよびキャリ出力ｏｃとをそれぞれ４−２加算器４４の４−２キャリ出力ｏ４２、加算出力ｏｓ、およびキャリ出力ｏｃとする。
【００８１】
なお、４−２加算器モードにおいて図６の機能ブロック４は、図１４の回路と等価な入出力関係（真理値表）を持つが、図６の機能ブロック４が図１４の回路のように２つの１ビット全加算器に分解できるわけではない。
【００８２】
（４−２加算器の用法と利点）
図１５は、複数の４−２加算器を配列した多ビット４−２加算器の回路図である。同図に示すように、４−２加算器は、一般に、複数の４−２加算器４４を一列に並べて隣同士の４−２キャリ出力ｏ４２と４−２キャリ入力ｉ４２を接続した多ビット４−２加算器４５として使用される。これは多ビットデータをキャリセーブ加算するための回路である。
【００８３】
図１５において、一般にｎビット４−２加算器４５は４つのｎビット引数入力Ｃ、Ｄ、Ｅ、Ｆからｎ＋１ビット加算出力ＯＳとｎ＋１ビットキャリ出力ＯＣを生成する。ここでＣ、Ｄ、Ｅ、Ｆの第ｋ番目（ｋ  ＝  １，  ２，・・・ｎ）のビットｃｋ−１，  ｄｋ−１，  ｅｋ−１，  ｆｋ−１はｎビット４−２加算器４５の第ｋ番目の４−２加算器４４の引数入力ｉ３，  ｉ２，  ｉ１，  ｉ０にそれぞれ入力される。ｎビット４−２加算器４５における第ｋ番目の４−２加算器４４の加算出力ｏｓｋ−１はｎ＋１ビット加算出力ＯＳの第ｋ番目のビットとなり、第ｎ番目の４−２加算器４４の４−２キャリ出力ｏ４２はｎ＋１ビット加算出力ＯＳの第ｎ＋１番目のビット（すなわち、ＭＳＢ）ｏｓｎとなる。ｎビット４−２加算器４５の第ｋ番目の４−２加算器４４のキャリ出力ｏｃｋ−１はｎ＋１ビットキャリ出力ＯＣの第ｋ＋１番目のビットとなり、ｎ＋１ビットキャリ出力ＯＣの第１番目のビット（ＬＳＢ）ｏｃ−１は他の回路から与えられる信号あるいは固定論理値である。ｎビット４−２加算器４５の第１番目の４−２加算器４４のキャリ入力ｉｃ−１もまた他の回路から与えられる信号あるいは固定論理値である。ｏｃ−１とｉｃ−１は、４つのｎビット引数入力Ｃ、Ｄ、Ｅ、Ｆをすべて加算する場合にはどちらも論理値０、いずれか一つのｎビット引数入力を引算にする場合はどちらか一方が論理値０で他方は論理値１、いずれか二つのｎビット引数入力を引算にする場合はどちらも論理値１とする。
【００８４】
完全ツリー型多ビット多引数加算器
図１６（１）は、４−２加算器を用いた完全ツリー型多ビット多引数加算器の一例を示すブロック図である。ここでは、１６個の多ビットデータＣ，  Ｄ，  Ｅ，  Ｆ，  Ｇ，  Ｈ，  Ｉ，  Ｊ，  Ｋ，  Ｌ，  Ｍ，  Ｎ，  Ｏ，  Ｐ，  Ｑ，  Ｒの加算結果を出力する多ビット多引数加算器を例示する。
【００８５】
まず、多ビットデータＣ，  Ｄ，  Ｅ，  Ｆを多ビット４−２加算器４５＿１の多ビット引数入力Ｉ３，  Ｉ２，  Ｉ１，  Ｉ０にそれぞれ入力し（これは図１５に示した例と同じ）、多ビットデータＧ，  Ｈ，  Ｉ，  Ｊを多ビット４−２加算器４５＿２の多ビット引数入力Ｉ３，  Ｉ２，  Ｉ１，  Ｉ０にそれぞれ入力し、多ビットデータＫ，  Ｌ，  Ｍ，  Ｎを多ビット４−２加算器４５＿３の多ビット引数入力Ｉ３，  Ｉ２，  Ｉ１，  Ｉ０にそれぞれ入力し、多ビットデータＯ，  Ｐ，  Ｑ，  Ｒを多ビット４−２加算器４５＿４の多ビット引数入力Ｉ３，  Ｉ２，  Ｉ１，  Ｉ０にそれぞれ入力する。ここで、多ビット４−２加算器４５＿ｋ（ｋは整数）の多ビット引数入力Ｉ０は、その多ビット４−２加算器を構成する第１番目から第ｎ番目までの４−２加算器の引数入力ｉ０に対応し、多ビット引数入力Ｉ１，  Ｉ２，  Ｉ３についても同様である。
【００８６】
次に、多ビット４−２加算器４５＿２の多ビット加算出力ＯＳと多ビットキャリ出力ＯＣおよび多ビット４−２加算器４５＿１の多ビット加算出力ＯＳと多ビットキャリ出力ＯＣとを多ビット４−２加算器４５＿５の多ビット引数入力Ｉ０，  Ｉ１，  Ｉ２，  Ｉ３にそれぞれ入力する。また、多ビット４−２加算器４５＿４の多ビット加算出力ＯＳと多ビットキャリ出力ＯＣおよび多ビット４−２加算器４５＿３の多ビット加算出力ＯＳと多ビットキャリ出力ＯＣとを多ビット４−２加算器４５＿６の多ビット引数入力Ｉ０，  Ｉ１，  Ｉ２，  Ｉ３にそれぞれ入力する。
【００８７】
次に、多ビット４−２加算器４５＿６の多ビット加算出力ＯＳと多ビットキャリ出力ＯＣおよび多ビット４−２加算器４５＿５の多ビット加算出力ＯＳと多ビットキャリ出力ＯＣとをそれぞれ多ビット４−２加算器４５＿７の多ビット引数入力Ｉ０，  Ｉ１，  Ｉ２，  Ｉ３にそれぞれ入力する。最後に、多ビット４−２加算器４５＿７の多ビット加算出力ＯＳと多ビットキャリ出力ＯＣとを多ビット全加算器４６の多ビット引数入力ＡとＢにそれぞれ入力し、最終的に多ビット全加算器４６の多ビット加算出力Ｓとして多ビットデータＣ，  Ｄ，  Ｅ，  Ｆ，  Ｇ，  Ｈ，  Ｉ，  Ｊ，  Ｋ，  Ｌ，  Ｍ，  Ｎ，  Ｏ，  Ｐ，  Ｑ，  Ｒの加算結果を得る。
【００８８】
図１６（１）からわかるように、多ビット４−２加算器４５は４つの入力データを２つの出力データに半減する機能がある。この機能を利用して、一段ごとに加算すべきデータの数を半減していき、最後に残った二つのデータを通常の多ビット全加算器で加算して最終加算結果を得るのが、図１６（１）の多ビット多引数加算器である。このため必ず最終段に多ビット全加算器が必要であるが、これを本発明のプログラマブル機能セルで効率的に作る方法は後で詳細に述べる。
【００８９】
上述した多ビット４−２加算器４５を構成する各４−２加算器４４（図１５参照）は、図６に示す本発明による機能ブロックを用いれば、一つのプログラマブル機能セルで実現できる。
【００９０】
他方、従来の機能ブロック（図１０４参照）には（そしてそれをひとつ含むプログラマブル機能セルも）、１ビット全加算器しかインプリメントできないため、図１４からわかるように４−２加算器４４を作るためには２つのプログラマブル機能セルを縦続接続しなければならない。すなわち、同じ数のデータを加算するのに、従来のプログラマブル機能セルでは本発明によるプログラマブル機能セルの２倍のセル数を必要とするのである（最終段の多ビット全加算器を除く）。
【００９１】
ところで、本発明による機能ブロック（図６）と従来の機能ブロック（図１０４）とは、わずかに４−２キャリブロック４１ひとつ分の違いしかない。これは図１に示すように、面積が大きい入力ブロック３や出力ブロック５を含めたプログラマブル機能セル全体から比べると非常にわずかな面積である。すなわち本発明のプログラマブル機能セルと従来のそれとはほとんど同じ面積である。また、同じ論理回路を同じ段数通る両機能ブロックの構造からして、本発明のプログラマブル機能セルの遅延と従来のそれとは同じである。
【００９２】
以上のことから、同じ数のデータを加算する場合、本発明のプログラマブル機能セルを用いると、従来のプログラマブル機能セルを用いた場合の半分の面積で済むことがわかる（最終段の多ビット全加算器を除く）。また、遅延に関しても、２つのセルを直列接続して一つの４−２加算器を作らなければならない従来のプログラマブル機能セルに比べて、本発明のプログラマブル機能セルを用いた場合の遅延は半分になる（最終段の多ビット全加算器を除く）。
【００９３】
図１６（１）の多ビット多引数加算器では、最初のデータ入力から最終加算結果を得るまでの遅延は、図に示したように第１段から第４段までの演算ブロック４段分である。また、使用される演算ブロック数は４５＿１〜４５＿７と４６の合計８個である。
【００９４】
図１６（１）には具体例として多ビット１６引数加算器を示したが、これはほんの一例に過ぎない。一般に、２ｋ個の多ビットデータを加算する場合、第１段の演算ブロック（２ｋ−２個の多ビット４−２加算器から成る）でデータ数を２ｋ−１個にし、第２段の演算ブロック（２ｋ−３個の多ビット４−２加算器から成る）でデータ数を２ｋ−２個にし、というように一段ごとにデータ数を半減していき、第ｋ−１段の演算ブロック（１つの多ビット４−２加算器）を通してデータ数が２になったところで多ビット全加算器を用いて両データを加算し最終結果を得る。このとき、全部で２ｋ−１−１個の多ビット４−２加算器を用い、演算ブロックｋ−１段分の遅延になる（最終段の多ビット全加算器を除く）。入力データ数２ｋが大きい場合、最終段の多ビット全加算器の面積および遅延は全体から見ると小さい割合しか占めない。このような完全ツリー型の多ビット多引数加算器は、後で述べる他のタイプの多ビット多引数加算器に比べて、もっとも遅延が小さいという特長がある。
【００９５】
なお、今まで４−２加算器を用いた完全ツリー型多ビット多引数加算器について述べてきたが、このほかにも完全ツリー型多ビット多引数加算器にはいろいろな種類がある。そのうち従来の機能ブロック（図１０４）に最も適した例を図１６（２）に示す。
【００９６】
図１６（２）は、全加算器を用いた完全ツリー型多ビット多引数加算器の一例を示すブロック図である。ここでは、多ビット全加算器４６＿１〜４６＿１５を用いた完全ツリー型多ビット多引数加算器を例示する。従来の機能ブロック（図１０４）では１ビット全加算器を１つのブロックで実現できるため、図１６（２）のように多ビット全加算器を用いた完全ツリー型多ビット多引数加算器の方が効率がよい。実際この場合、遅延に関しては、本発明のプログラマブル機能セルに４−２加算器をインプリメントして作った図１６（１）に示す完全ツリー型多ビット多引数加算器と同じになる。
【００９７】
しかし、演算ブロックの数すなわち面積は、やはり図１６（１）の方が図１６（２）のほぼ半分になる。図１６（１）のような完全ツリー型多ビット多引数加算器は最も高速であるという利点があるものの、配線が不規則で複雑であるという欠点もある。この配線の複雑さは、加算されるデータが増えるに従って、すなわち演算ブロックの段数が増すに従って急速に増大する。一般に、再構成可能デバイスでは、２次元アレイ状に配置された各プログラマブル機能セルに均等に相互接続用資源が割り当てられている。したがって、データ数が多い完全ツリー型多ビット多引数加算器のように、部分的に非常に複雑で大量の配線資源を消費するような回路はインプリメントが困難である。
【００９８】
完全縦続型ツリー型多ビット多引数加算器
図１７（１）は、完全縦続型の多ビット多引数加算器の一例を示すブロック図である。これは、機能は図１６（１）の完全ツリー型多ビット多引数加算器と全く同じである。第１段の多ビット４−２加算器４５＿１の多ビット引数入力Ｉ３，  Ｉ２，  Ｉ１，  Ｉ０には、それぞれ多ビットデータＣ，  Ｄ，  Ｅ，  Ｆが入力され、第２段の多ビット４−２加算器４５＿２の多ビット引数入力Ｉ３，  Ｉ０，  Ｉ２，  Ｉ１には、多ビットデータＧ，  Ｈおよび第１段からの多ビット出力ＯＣ，  ＯＳがそれぞれ入力され、以後同様に、第ｋ段の多ビット４−２加算器４５＿ｋの多ビット引数入力には２つの多ビットデータと第ｋ−１段からの多ビット出力ＯＣ，  ＯＳが入力される、ということが繰り返される。そして、最終段では、前段からの多ビット出力ＯＣ，  ＯＳが多ビット全加算器４６で加算され最終的な加算結果が多ビット加算出力Ｓとして得られる。
【００９９】
図１７（１）には多ビットデータの数が１６のときの例を示しているが、任意のデータ数に対しても同様に完全縦続型多ビット多引数加算器を作ることができる。一般に、多ビットデータの数が２ｋの場合、完全縦続型多ビット多引数加算器に必要な多ビット４−２加算器は２ｋ−１−１個であり、完全ツリー型多ビット多引数加算器と同じである。
【０１００】
図１８は、図１７（１）の第１段〜第３段の詳細な構成を示すブロック図である。なお、図１８の構成では、各多ビット４−２加算器４５＿ｋでオーバーフローが起こらないことを仮定している。また、入力が書かれていないところは論理値０が与えられるものとする。
【０１０１】
図１８からもわかるように、完全縦続型多ビット多引数加算器は非常に規則性が高く配線が簡単である。このような構造は、加算される多ビットデータの数が増えても変わらない。一般に完全縦続型多ビット多引数加算器は、種々のタイプの多ビット多引数加算器のなかで最も規則性が高く配線が簡単であるという利点を持つ。このため、この多ビット多引数加算器は、相互接続用資源が規則的かつ均等に割り当てられている再構成可能デバイスには最もインプリメントしやすい。
【０１０２】
遅延に関しては、完全縦続型多ビット多引数加算器は演算ブロック（多ビット４−２加算器）２ｋ−１−１段分であり、完全ツリー型多ビット多引数加算器における演算ブロックｋ−１段分の遅延と比べると大きい（最終段の多ビット全加算器を除く）。しかし、その差は、小さいｋにおいてはそれほど問題にはならない。さらに、ここでは演算ブロックの段数でのみ遅延を測っているが、完全縦続型多ビット多引数加算器は配線遅延が完全ツリー型にくらべてずっと少ないというメリットもある。したがって、データ数が少ない場合には、遅延の面でも完全縦続型は完全ツリー型にあまり劣らない。
【０１０３】
４−２加算器を用いた完全縦続型多ビット多引数加算器（図１７（１））を従来の機能ブロック（図１０４）で作ると、前述の完全ツリー型の場合と同様、本発明の機能ブロック（図６）を用いた場合に比べて、２倍の面積と遅延になる（最終段の多ビット全加算器を除く）。
【０１０４】
図１７（２）は、多ビット全加算器を用いた完全縦続型多ビット多引数加算器の一例を示すブロック図である。この場合、演算ブロック数も演算ブロックの段数もともに、４−２加算器を用いた場合（図１７（１））の２倍になる。すなわち、どちらにしても完全縦続型多ビット多引数加算器においては、完全ツリー型の場合とは異なり、本発明のプログラマブル機能セルを用いることにより、面積、遅延共に半減できる。
【０１０５】
これまで詳しく述べてきたように、完全ツリー型は高速であるが配線が複雑であり、完全縦続型は配線が簡単であるが遅延が大きいという特性を持つ。とくに完全縦続型では、加算されるデータ数が多くなると完全ツリー型に比べて大幅に遅延が大きくなる。このような問題を解決するものとして、半縦続型多ビット多引数加算器がある。
【０１０６】
半縦続型多ビット多引数加算器
図１９は、半縦続型多ビット多引数加算器の例を示すブロック図である。これは、図１６（１）、図１７（１）と同じく１６引数の加算器の例である。多ビット４−２加算器４５＿１，  ４５＿２，  ４５＿３は第一の完全縦続型多ビット多引数加算器を形成し、多ビット４−２加算器４５＿４，  ４５＿５，  ４５＿６は第二の完全縦続型多ビット多引数加算器を形成する。多ビット４−２加算器４５＿７は両者からの計４つの出力を受け、多ビット４−２加算器４５＿７の出力は多ビット全加算器４６で加算されて最終加算結果がＳに出力される。
【０１０７】
この例に使われる演算ブロック数は既に述べた完全ツリー型や完全縦続型と同じである。また、遅延は、最終段の多ビット全加算器を除いて演算ブロック４段分であり、これは完全縦続型の対応する遅延が演算ブロック７段分であるのに比べて、半分近い。
【０１０８】
図１９では、１６引数の場合を例示したが、加算されるデータの数が違っても第一と第二の完全縦続型多ビット多引数加算器の段数が変わるだけで、同様にこのタイプの多ビット多引数加算器を作ることができる。一般に、加算されるデータの数が多いときには、半縦続型多ビット多引数加算器の遅延は、完全縦続型のほぼ半分になる。半縦続型多ビット多引数加算器は、完全ツリー型に比べて演算ブロックの段数は多いものの配線が簡単で配線遅延が少ないというメリットがある。このため、あまりデータ数が多くない場合には、遅延の面でも半縦続型は完全ツリー型にあまり劣らない。加算されるデータが少なく遅延があまり問題にならないときは完全縦続型多ビット多引数加算器を用い、データ数が比較的多く完全縦続型では遅延が大きくなり過ぎる場合に半縦続型多ビット多引数加算器を用いるとよい。しかし、データ数があまり多くなると、半縦続型でも遅延が大きくなり過ぎてしまう。その場合、次に述べる２次縦続型多ビット多引数加算器が有効である。
【０１０９】
２次縦続型多ビット多引数加算器
図２０は、２次縦続型多ビット多引数加算器の一例を示すブロック図である。ここでは、３０個の多ビットデータＣ，  Ｄ，  Ｅ，  Ｆ，  Ｇ，  Ｈ，  Ｉ，  Ｊ，  Ｋ，  Ｌ，  Ｍ，  Ｎ，  Ｏ，  Ｐ，  Ｑ，  Ｒ，  Ｔ，  Ｕ，  Ｖ，  Ｗ，  ＡＡ，  ＢＢ，  ＣＣ，  ＤＤ，  ＥＥ，  ＦＦ，  ＧＧ，  ＨＨ，  ＩＩ，  ＪＪの加算結果を出力する２次縦続型多ビット多引数加算器を例示する。
【０１１０】
多ビット４−２加算器４５＿１，  ４５＿２は第一の完全縦続型多ビット多引数加算器を形成し、多ビット４−２加算器４５＿３，  ４５＿４は第二の完全縦続型多ビット多引数加算器を形成し、多ビット４−２加算器４５＿５，  ４５＿６，  ４５＿７は第三の完全縦続型多ビット多引数加算器を形成し、多ビット４−２加算器４５＿８，  ４５＿９，  ４５＿１０，  ４５＿１１は第四の完全縦続型多ビット多引数加算器を形成する。以上をまとめて第一階層の完全縦続型多ビット多引数加算器と呼ぶ。
【０１１１】
多ビット４−２加算器４５＿１２，  ４５＿１３，  ４５＿１４は第二階層の完全縦続型多ビット多引数加算器を形成し、その加算データとして第一階層の完全縦続型多ビット多引数加算器の出力が入力される。半縦続型多ビット多引数加算器（図１９）は、第二階層が一つの多ビット４−２加算器４５＿７からできている最も簡単な２次縦続型多ビット多引数加算器の例と見なすことができる。また、図１７に示した例は、第一階層のみの１次縦続型多ビット多引数加算器である。
【０１１２】
半縦続型多ビット多引数加算器で加算データの数を増やしていくと、第一階層の完全縦続型多ビット多引数加算器の段数がそれに比例して増えていくため遅延が大きくなってしまう。第一階層の完全縦続型多ビット多引数加算器の段数を増やすかわりに、図２０のように段数の少ない多数の完全縦続型多ビット多引数加算器を用意し、その出力を第二階層の完全縦続型多ビット多引数加算器の引数入力に繋ぐことで、全体の遅延の増加を抑えることができる。
【０１１３】
なお、図２０の第一階層の完全縦続型多ビット多引数加算器の段数は、その接続先が第二階層の完全縦続型多ビット多引数加算器の出力段（４５＿１４）に近いものほど、大きくなるようにしている。これは最初のデータ入力から出力段（４５＿１４）までの遅延がどの信号経路でもほぼ同じになるようにするためである。第一階層の第一および第二の完全縦続型多ビット多引数加算器の出力は出力段（４５＿１４）までに、４５＿１２，  ４５＿１３と２段の多ビット４−２加算器を通らねばならない。また、第一階層の第三の完全縦続型多ビット多引数加算器の出力は出力段（４５＿１４）までに、１段の多ビット４−２加算器４５＿１３を通らねばならない。一方、第一階層の第四の完全縦続型多ビット多引数加算器の出力は、直接出力段（４５＿１４）に繋がっている。もし、第一階層のすべての完全縦続型多ビット多引数加算器の段数を同じにすると、第二階層の出力段から遠い多ビット４−２加算器を経由する信号経路ほど遅延が大きくなりそれが全体の遅延を決めてしまう。そこで、第二階層の出力段から遠い多ビット４−２加算器に接続されている第一階層の完全縦続型多ビット多引数加算器ほど段数を少なくして、他に比べて大きい遅延を持つ信号経路を無くすようにしている。
【０１１４】
以上、２次縦続型多ビット多引数加算器について述べたが、階層数を増やしてより高次の縦続型多ビット多引数加算器を作ることもできる。
【０１１５】
高次縦続型多ビット多引数加算器
図２１は、高次縦続型多ビット多引数加算器の一例を示すブロック図である。一般に、Ｋ次縦続型多ビット多引数加算器はＫ階層から成り、各階層は少なくとも一つの図２１に示すような完全縦続型多ビット多引数加算器から成る。第一階層では、図２１の完全縦続型多ビット多引数加算器の入力Ｘｉ，  Ｙｉ（ｉ＝０，  １，  ２，  ・・・，ｎ）は加算すべき多ビットデータであり、第ｋ階層（ｋは２以上）では、Ｘｉ，  Ｙｉは第ｋ−１層の完全縦続型多ビット多引数加算器の出力である。第Ｋ階層の完全縦続型多ビット多引数加算器は１つで、その出力は多ビット全加算器で加算され最終的な結果が得られる。
【０１１６】
図２１の段数ｎは、階層間でも、階層内でも、完全縦続型多ビット多引数加算器ごとに違っていてよい。その段数はすべての信号経路における遅延が同じになるように決めるのが最も好ましい。一般に、加算データが少ないときは１次縦続型多ビット多引数加算器を使い、データ数が増えるにしたがってより高次の縦続型多ビット多引数加算器を使うとよい。これによって、完全ツリー型を使うのに比べて配線が簡単になりかつ速度もほとんど劣らない多ビット多引数加算器を得ることができる。縦続型多ビット多引数加算器は、規則性が高く配線が簡単なので再構成可能デバイスに適したものである。本発明のプログラマブル機能セルでは、従来のプログラマブル機能セルに比べて半分の面積でこれらの多ビット多引数加算器を作ることができ、また遅延も小さくできる（最大で従来の半分）。
【０１１７】
乗算器
コンパクトで高速な多ビット多引数加算器は、乗算器の主要ブロックとして大きな需要がある。一般に乗算は、部分積生成と、その部分積の加算という２つの部分から成る。このうち後者に多ビット多引数加算器が使われる。他方、部分積生成には、修正ブースアルゴリズムを用いた方法がしばしば使われる。
【０１１８】
図２２は、修正ブースアルゴリズムを用いた部分積生成器（以下、修正ブース部分積生成器と呼ぶ）のブロック図である。これは、被乗数Ｘに乗数Ｙを掛けたときの部分積を生成するものである。ｍ／２個の部分積生成ユニット４７は、各々Ｘとｙ２ｋ−１，  ｙ２ｋ，  ｙ２ｋ＋１を入力とし部分積Ｐ２ｋを出力する（ｋ  ＝  ０，  １，  ２，  ・・・，  ｍ／２−１）。ここでＹはｍビットデータｙｍ−１ｙｍ−２・・・ｙ３ｙ２ｙ１ｙ０であるとする。通常のＡＮＤを用いる方法では部分積はｍ個の多ビットデータから成るが、修正ブースアルゴリズムではその半分のｍ／２になる。
【０１１９】
現在のカスタム設計ＬＳＩでは、この修正ブース部分積生成器と図１６（１）のような完全ツリー型多ビット多引数４−２加算器（４−２加算器を使った多ビット多引数加算器を以後とくに「多ビット多引数４−２加算器」と呼ぶ）を組み合わせた乗算器が最もよく使用されている。しかし、再構成可能デバイスでは、それが最適の方法ではない。つぎにそれについて説明する。
【０１２０】
従来のＦＰＧＡで最もよく用いられている乗算器は、図１０３に示すような多ビット全加算器を用いるものである。ここで、部分積は全加算器の入力に付けられたＡＮＤによって生成される。この方式では、Ｙをｍビットデータとすると、ｍ個の多ビット全加算器すなわちｍ列のプログラマブル機能セルを使用する。なお、図１０３は最も簡単な完全縦続型であるが、他の方式で多ビット全加算器を結合した場合でも必要なプログラマブル機能セル数はほぼ同じである。
【０１２１】
他方、修正ブース部分積生成器と多ビット多引数４−２加算器とを用いた乗算器の場合、必要な演算ブロック数は約３ｍ／４個となる。そして、部分積生成ユニット４７は本発明のプログラマブル機能セル１列分にインプリメントできる。このように、修正ブース部分積生成器と多ビット多引数４−２加算器とを本発明のプログラマブル機能セルにインプリメントして構成した乗算器は、従来のＦＰＧＡの乗算器のほぼ３／４の面積になる。面積はたしかに小さくなるが、その差はわずかである。そして前者の乗算器の方が後者より構造が複雑で多くの配線資源を必要とすることから、わずかの面積縮小ではメリットがほとんどないといってよい。
【０１２２】
このようにカスタム設計ＬＳＩでは最適な方式でも、再構成可能デバイスでは必ずしもそうではない。カスタム設計ＬＳＩでは回路を自由な形状や配置で作成できるため、任意の回路を最適に作ることができる。他方、再構成可能デバイスの場合、プログラマブル機能セルを構成単位としてそれに各回路をインプリメントしなければならない。さらに、再構成可能デバイスはカスタム設計ＬＳＩに比べて配線リソースに関して大きな制約がある。このような違いから、上記の乗算器の例のように、一方で最適なものが他方ではそうでないということが生じうる。
【０１２３】
次に、再構成可能デバイスに適したよりコンパクトな乗算器と、それを実現する機能ブロックについて述べる。
【０１２４】
２．第２実施形態
２．１）機能ブロック
図２３は、本発明による機能ブロックの第２実施形態を示す回路図である。第２実施形態は、図６に示す第１実施形態の入力ｉ０，  ｉ１，  ｉ２，  ｉ３に前置ロジック２９を付けたものである。
【０１２５】
図２３において、前置ロジックの例として、ＡＮＤ  ３１，３入力ＬＵＴ  ４８，  ２入力ＬＵＴ  ４９，  ＭＵＸ  ２２ｆの四種類が示されている。しかしこれに限定されるものではなく、一般に前置ロジックは、コンフィギュレーションに応じて種々の論理機能を設定できる回路であって、論理機能生成器４０に比べて多様性は小さく、小型で高速な回路である。
【０１２６】
図２３に示す機能ブロックの入力ｉ００，  ｉ０１，  ｉ１０，  ｉ１１，  ｉ１２，  ｉ２０，  ｉ２１，  ｉ３０，  ｉ３１，  ｉ３２は、図１のように各々入力選択ユニットに繋がれる。図１には４つの入力選択ユニットの例が示されているが、一般にプログラマブル機能セル１の入力ブロック３には機能ブロック４の入力の数だけ入力選択ユニット３＿ｋ（ｋは整数）があり、機能ブロック４の各入力には各入力選択ユニットの出力がそれぞれ繋がれる。図２３の前置ロジック２９のうち、３入力ＬＵＴ４８の入力ｉ１０，  ｉ１１，  ｉ１２および２入力ＬＵＴ４９の入力ｉ２０，  ｉ２１の入力に接続される入力選択ユニットは、図２や図５に示した例のように、相互接続配線群２から一つの信号を選択して出力するものである。すでに述べたようにｋ入力ＬＵＴはその内部のコンフィギュレーションメモリに保存されたコンフィギュレーションデータに応じて、任意のｋ入力１出力論理関数を実現できる。
【０１２７】
他方、図２３の前置ロジック２９のうち、ＡＮＤ  ３１の入力ｉ００，  ｉ０１とＭＵＸ  ２２ｆの入力ｉ３０，  ｉ３１，  ｉ３２には、別の種類の入力選択ユニットを接続する。それは、相互接続配線群２の信号と固定論理値０と１のうちから一つを選択して出力する固定値付き入力選択ユニットである。
【０１２８】
２．２）固定値付き入力選択ユニット
図２４は、固定値付き入力選択ユニットの第１例を示す回路図である。これは、図２の入力選択ユニットの出力線１１に固定論理値供給スイッチ１９の出力を接続したものである。
【０１２９】
図２５は固定論理値供給スイッチの例を示す回路図である。固定論理値供給スイッチ１９において、ＮＭＯＳトランジスタ１６のソース端子はグランドに、ＰＭＯＳトランジスタ１７のソース端子は電源電圧Ｖｃｃにそれぞれ接続されている。さらに、両トランジスタ１６，  １７のドレイン端子同士が接続されて、それが出力線１１に接続されている。
【０１３０】
また、１ビットのコンフィギュレーションメモリ１３ａの出力ｑはＰＭＯＳトランジスタ１７のゲート端子に、別の１ビットのコンフィギュレーションメモリ１３ｂの出力ｑはＮＭＯＳトランジスタ１６のゲート端子にそれぞれ接続される。コンフィギュレーションメモリ１３ａおよび１３ｂにそれぞれ論理値１と０が保存されているとき固定論理値供給スイッチ１９の出力は高インピーダンス状態に、両コンフィギュレーションメモリともに論理値０が保存されているとき固定論理値供給スイッチ１９の出力は論理値１に、両コンフィギュレーションメモリともに論理値１が保存されているとき固定論理値供給スイッチ１９の出力は論理値０に、それぞれなる。
【０１３１】
図２６は、固定値付き入力選択ユニットの第２例を示す回路図である。これは、図５の入力選択ユニット３＿ｋの中のマルチプレクサ２０の入力の一つに、固定論理値供給用メモリ１３ａの出力を接続したものである。マルチプレクサ２０の制御用メモリ１３を設定して固定論理値供給用メモリ１３ａの出力を選択するようにすれば、固定論理値供給用メモリ１３ａに保存された論理値が固定論理値として出力線１１に供給される。
【０１３２】
図２７は、固定値付き入力選択ユニットの第３例を示す回路図である。これは、図５の入力選択ユニット３＿ｋの中のマルチプレクサ２０の入力の一つを電源電圧Ｖｃｃに、さらに別の入力をグランドにそれぞれ接続したものである。制御用メモリ１３の設定に応じて、電源電圧Ｖｃｃ（論理値１）やグランド（論理値０）が固定論理値として出力線１１に供給される。
【０１３３】
なお、本明細書では、電源電圧やグランド、コンフィギュレーションメモリの出力、およびそれらによって一意に決まる信号を固定論理値あるいは固定値と呼び、それ以外の信号を動的信号と呼ぶ。
【０１３４】
上述した固定値付き入力選択ユニットを入力に接続することによって、一つの論理回路をいろいろな論理回路として使うことができるようになる。その最も簡単な例の一つは、図２３の前置ロジック２９の中のＡＮＤ  ３１である。入力ｉ００とｉ０１をともに信号入力として使った場合、すなわちそこに接続される固定値付き入力選択ユニットがともに相互接続配線群２のいずれかの信号を出力するように設定された場合、ＡＮＤ  ３１は２つの信号の論理積を出力する回路として機能する。
【０１３５】
他方、入力ｉ００に接続される固定値付き入力選択ユニットが固定論理値１を出力するように設定され、入力ｉ０１に接続される固定値付き入力選択ユニットが相互接続配線群２のいずれかの信号を出力するように設定された場合、ＡＮＤ  ３１は入力ｉ０１をそのまま出力する回路として機能する。
【０１３６】
ＡＮＤにはこの２種類の機能しかインプリメントできないが、図２３の前置ロジック２９の中のＭＵＸ  ２２ｆにはより多くの機能をインプリメントすることができる。
【０１３７】
２．３）ＭＵＸの論理機能
図２８は、ＭＵＸの種々の論理機能を示すテーブルである。ここでは、入力を種々に設定したときのＭＵＸの等価回路を示す。ここで、入、出力の記号ｉｎ０，  ｉｎ１，  ｉｎ２，  ｏｕｔは図７に準ずる。図２８の入力設定欄において、０，  １はその入力に供給される固定論理値を、Ｘは機能がその入力に依存しないことを、それ以外はその入力が信号入力として使われることを意味する。これからわかるように、ＭＵＸは、ＡＮＤやＯＲなど使用頻度の高い回路を含む多様な論理回路として使用することができる。
【０１３８】
図２３では、前置ロジック２９として４種類の異なる回路を用いた例を示したが、これらは部分的にあるいはすべて同じ回路であってもよい。とくにＭＵＸは、小面積で遅延も小さいわりには大きい多様性を持ち、またあとで述べるように多入力ＭＵＸにも転用できるなど、前置ロジックとして優れている。このため、前置ロジックをすべてＭＵＸにした機能ブロックは有用性の高い実施例である。
【０１３９】
また、必ずしも入力ｉ０〜ｉ３のすべてに前置ロジックを付ける必要はない。たとえばあとで述べるように、ｉ０〜ｉ３のうち２つにのみ前置ロジックを付けた機能ブロックも有用性の高い実施例のひとつである。
【０１４０】
２．４）４ＡＮＤ４−２加算器
図２９は、図２３の前置ロジック２９のすべての回路をＡＮＤとして使用した４ＡＮＤ４−２加算器を示す回路図である。機能ブロック４は、図２９に示すような４−２加算器４４の各入力ｉ０〜ｉ３にＡＮＤ３１の出力を接続した回路２５（以後これを４ＡＮＤ４−２加算器と呼ぶ）として使うことができる。これを用いると、乗算器を非常にコンパクトに作ることができる。
【０１４１】
乗算器
図３０は、図２９の４ＡＮＤ４−２加算器を用いた乗算器に必要な演算ブロックを示す回路図である。図３０の演算ブロック２６（以下、「多ビット４ＡＮＤ４−２加算器」と呼ぶ）において、４ＡＮＤ４−２加算器２５ａ〜２５ｋは、４−２加算器の入力にＡＮＤを融合した記号で表される。
【０１４２】
図２３からわかるように、機能ブロック４は入力ｉ０〜ｉ３について対称（すなわち入力を交換しても出力が不変）ではない。より詳しく言うと、入力ｉ０とそれ以外の入力ｉ１〜ｉ３とは対称性がない。そこで、図３０のように、４ＡＮＤ４−２加算器のどのＡＮＤが入力ｉ０に繋がっているかを示すために、ｉ０の位置を記する。機能ブロック４は入力ｉ１〜ｉ３に関しては対称なので、簡単のため４ＡＮＤ４−２加算器記号の中にそれは記さない。
【０１４３】
また、最上位ビット（図３０の第１１ビット）の４ＡＮＤ４−２加算器２５ｋの４−２キャリ出力ｏ４２とキャリ出力ｏｃはともに０なので、出力線は省略した。図３０では、簡単のため被乗数入力Ｘが８ビットデータｘ７ｘ６ｘ５ｘ４ｘ３ｘ２ｘ１ｘ０の例を示しているが、一般にこれは任意のビット幅でよい。また、ｙ０，  ｙ１，  ｙ２，  ｙ３は乗数入力で、あとのものほど一桁ずつ上位ビットになっていく。
【０１４４】
完全ツリー型乗算器
図３１（１）は、多ビット４ＡＮＤ４−２加算器２６を使った完全ツリー型乗算器の例を示すブロック図である。ここで、Ｍは被乗数、Ｎ０，  Ｎ１，  Ｎ２，  Ｎ３はそれぞれ乗数の第１〜第４ビット、第５〜第８ビット、第９〜第１２ビット、第１３〜第１６ビットである。第１段の多ビット４ＡＮＤ４−２加算器２６＿１〜２６＿４は、ＡＮＤを使った部分積生成と、その部分積の４−２加算器での加算とを一つの演算ブロックで行なっている。あとは、そこからの出力を完全ツリー型多ビット多引数４−２加算器（図３１（１）の第２〜第４段）で加え合わせることで最終的な乗算結果を得る。
【０１４５】
図３１（１）は乗数が１６ビットの例であるが、一般に乗数がｍビットの場合、ｍ／４個の多ビット４ＡＮＤ４−２加算器２６＿１〜２６＿（ｍ／４）と、ｍ／４−１個の多ビット４−２加算器４５＿１〜４５＿（ｍ／４−１）および多ビット全加算器４６で乗算器は構成される。したがって、全部でｍ／２個の演算ブロックで乗算器を作れることになる。他方、前述のように修正ブース部分積生成器と多ビット多引数４−２加算器とで乗算器を作る場合には、３ｍ／４個の演算ブロックが必要であった。
【０１４６】
このように、本発明の機能ブロックの第２実施形態を用いて、多ビット４ＡＮＤ４−２加算器と多ビット多引数４−２加算器とで乗算器を構成することにより、少ないプログラマブル機能セル数で乗算器を実現できる。
【０１４７】
図３１（１）は完全ツリー型多ビット多引数４−２加算器を用いた例であるが、他のタイプの多ビット多引数４−２加算器でも同様に多ビット４ＡＮＤ４−２加算器を使った乗算器を構成できる。
【０１４８】
図３１（２）は完全縦続型多ビット多引数４−２加算器を用いた例を示すブロック図である。これは演算ブロック４５＿１，  ４５＿２，  ４５＿３、４６から構成される完全縦続型多ビット多引数４−２加算器の加算データとして、多ビット４ＡＮＤ４−２加算器２６＿１〜２６＿４の出力を入力したものである。一般に、多ビット４ＡＮＤ４−２加算器の出力を任意のタイプの多ビット多引数４−２加算器で加算することで、乗算器を構成できる。どのタイプの場合も使用されるプログラマブル機能セル数は同じである。
【０１４９】
図２３の機能ブロック４では、図６のそれに比べて、前置ロジック２９が増えている。前置ロジック２９自体の面積はプログラマブル機能セル全体からみるとわずかであり、それによる面積増大はあまり問題にならない。しかし、前置ロジック２９を加えることにより機能ブロック４の入力数が大幅に増え、それに伴ってそこに繋ぐ入力選択ユニットの数も大幅に増えることは、全体の面積に無視できない影響を及ぼす。（固定値付き）入力選択ユニットはかなり大きな部品だからである。また、図３０からわかるように、多ビット４ＡＮＤ４−２加算器２６はかなり多くの配線を必要とする。
【０１５０】
ところで図３１からもわかるように、乗算器を構成する演算ブロックなかで多ビット４ＡＮＤ４−２加算器は半分しか占めておらず、残り半分の演算ブロックでは前置ロジックも多数の配線も必要ない。このような不均一性が少ない回路の方が、再構成可能デバイスにはインプリメントしやすい。次に、この点を改善する乗算器とそれをインプリメントするのに適した機能ブロックについて述べる。
【０１５１】
２．５）第２実施形態の変形例（１）
図３２は、本発明の第２実施形態による機能ブロックの変形例を示す回路図である。これは、図２３の機能ブロックにおいて、入力ｉ１，  ｉ２に接続されていた前置ロジックを除いたものである。これによって、機能ブロックの入力数増加が抑えられ、そして（固定値付き）入力選択ユニットの増加によるプログラマブル機能セルの面積増加も抑えられる。なお、図３２では、前置ロジックとしてＡＮＤ  ３１とＭＵＸ  ２２ｆを用いているが、既に述べたようにこれに限定されるものではない。しかし、少なくともＡＮＤとして使うことができることが必要である。また、入力ｉ０と、入力ｉ１〜ｉ３のいずれか１つに、それぞれ前置ロジックが接続されているのが好ましい。
【０１５２】
２ＡＮＤ４−２加算器
図３３は、図３２の前置ロジック２９における２つの回路をＡＮＤとして使用した場合の回路を示す回路図である。機能ブロック４は、図３３に示すような４−２加算器４４の入力ｉ０とｉ３にＡＮＤ  ３１の出力を接続した回路２７（以後これを「２ＡＮＤ４−２加算器」と呼ぶ）として使うことができる。
【０１５３】
乗算器
図３４は、図３３に示す２ＡＮＤ４−２加算器を用いて構成した乗算器の例を示す回路図である。これは、被乗数Ｘ  ＝  ｘ７ｘ６ｘ５ｘ４ｘ３ｘ２ｘ１ｘ０と乗数Ｙ  ＝  ｙ７ｙ６ｙ５ｙ４ｙ３ｙ２ｙ１ｙ０の積Ｚ  ＝  ｚ１５ｚ１４ｚ１３ｚ１２ｚ１１ｚ１０ｚ９ｚ８ｚ７ｚ６ｚ５ｚ４ｚ３ｚ２ｚ１ｚ０を生成する乗算器の例である。図３０の４ＡＮＤ４−２加算器２５の記号と同様、２ＡＮＤ４−２加算器２７の記号には入力ｉ０の位置だけを記す。また、図３４においては、２ＡＮＤ４−２加算器２７ａ，  ２７ｂ，  ２７ｅなど入力ｉ２，  ｉ３に固定論理値０が入力されるものは入力線を省き、２ＡＮＤ４−２加算器２７ａ，  ２７ｃ，  ２７ｆなどキャリ出力ｏｃや４−２キャリ出力ｏ４２が常に固定論理値０を出力する場合も出力線を省略した。
【０１５４】
図３４において、第５列（多ビット全加算器）を除く各列を「多ビット２ＡＮＤ４−２加算器」と呼ぶ。多ビット２ＡＮＤ４−２加算器は図３０の多ビット４ＡＮＤ４−２加算器２６に比べて少ない配線で済み、また各２ＡＮＤ４−２加算器２７は、図３２の機能ブロックを使ったより小さいプログラマブル機能セルにインプリメントできる。そして、図３１の乗算器と異なり、図３４の乗算器は最終列（第５列）を除くすべての列が同じ演算ブロック（多ビット２ＡＮＤ４−２加算器）でできており均一性が高い。これらの特徴から、図３４の乗算器は再構成可能デバイスに非常に適している。
【０１５５】
同じ乗数の乗算で比べると、この多ビット２ＡＮＤ４−２加算器を縦続接続した乗算器は、図１０３の多ビット全加算器を縦続接続した乗算器に比べてほぼ半分の列数で済む。すなわち、従来のＦＰＧＡに図１０３のタイプの乗算器をインプリメントしたものに比べて、本発明の機能ブロック（図３２）を用いた再構成可能デバイスに図３４のタイプの乗算器をインプリメントしたものの方が、面積、遅延ともにほぼ半分になる。
【０１５６】
図３４は多ビット２ＡＮＤ４−２加算器を用いた完全縦続型乗算器であるが、多ビット２ＡＮＤ４−２加算器を使って他のタイプの乗算器も作ることができる。一般に、多ビット２ＡＮＤ４−２加算器を複数段縦続接続した回路の出力を、完全ツリー型（図１６（１））、完全縦続型（図１７（１））、半縦続型（図１９）、２次縦続型（図２０）など任意の多ビット多引数加算器に加算データとして入力することで乗算器を作ることができる。
【０１５７】
また、多ビット２ＡＮＤ４−２加算器を複数段縦続接続した回路は、第１段目と第２段目を多ビット４ＡＮＤ４−２加算器１つで置き換えて、演算ブロックを一段減らすことも可能である。
【０１５８】
なお、多ビット２ＡＮＤ４−２加算器を用いた完全縦続型乗算器（図３４）は、図３５に示すように第１列を置き換えることもできる。ここで図３５の第１列は、２つのＡＮＤを引数入力ａ，  ｂに付加した全加算器７７で構成される。図３５の乗算器は、さらに図３６に示すように書き換えることもできる。
【０１５９】
これら図３４、図３５、図３６に示す回路はすべて等価である。しかし、図３４に示す回路は最終列を除いてすべて同じ演算器（２ＡＮＤ４−２加算器）で構成されているのに対し、図３５や図３６に示す回路は異なる種類の演算器を含むため均一性に欠ける。
【０１６０】
また、図３４では、多ビット２ＡＮＤ４−２加算器が紙面に対して右に行くにしたがって上方にシフトしながら配置されている。すなわち、図３７（１）に示すように演算ブロックが配置されている（２８＿ｋは第ｋ列の多ビット２ＡＮＤ４−２加算器を示し、４６は最終列の多ビット全加算器を示す）。これは乗算結果を全ビット使う場合には有用なことであるが、浮動小数点の仮数部の乗算のように乗算結果の上位半分しか必要ない場合は無駄に面積を消費する。
【０１６１】
そこで、上位半分のみが必要な場合は、図３７（２）のように多ビット２ＡＮＤ４−２加算器を水平に並べて配置することで、無駄な隙間を無くし実質的な乗算器の面積を縮小することができる。これは多ビット２ＡＮＤ４−２加算器の完全縦続型乗算器において最も有効に働く。多ビット２ＡＮＤ４−２加算器を他の仕方で接続した場合、大きなビット幅をもつ演算ブロックが必要になるため、図３７（２）のように配置し直しても乗算器の面積はそれほど縮まらないからである。
【０１６２】
４入力ＭＵＸ
次に、図２３のような前置ロジック付き機能ブロックの別の効果について述べる。
【０１６３】
図３８は、図２３のような前置ロジック付き機能ブロックに基づいて構成された４入力ＭＵＸの一例を示す回路図である。図２３の機能ブロック４は、次のようにすることで４入力ＭＵＸとして使うことができる。図２３の前置ロジック２９の中のＡＮＤ  ３１を２入力ＭＵＸ  ２２ａで置き換え、かつ、２入力ＬＵＴ４９をｉ２０とｉ２１のうち一方の入力がそのままｉ２に出力されるようにコンフィギュレーションするか、もしくは２入力ＬＵＴ  ４９を取り除く。そして、論理機能生成器４０に、ｉｎ３とｉｎ０をデータ入力としｉｎ２を制御入力とする２入力ＭＵＸをインプリメントする。ここで、２２ｂは論理機能生成器４０にインプリメントされたＭＵＸに対応し、その出力ｏｕｔは図２３の論理出力ｏｌとして機能ブロック４から取り出される。
【０１６４】
また、図２３のＡＮＤ３１を２入力ＭＵＸで置き換えるかわりに、３入力ＬＵＴ  ４８に２入力ＭＵＸをインプリメントしても同様な効果が得られる。このとき、図３８の（）内に記したように、ＭＵＸ  ２２ａは３入力ＬＵＴ  ４８に対応し、ｉ００はｉ１０に、ｉ０１はｉ１１に、ｉ０２はｉ１２に、ｉ０はｉ１にそれぞれなる。
【０１６５】
図１０７に示したように、従来のＦＰＧＡに４入力ＭＵＸをインプリメントするには、少なくとも２つの機能ブロックを必要とした。これに対して、本発明の機能ブロックでは一つで４入力ＭＵＸを実現できるため、面積が従来の半分になる。
【０１６６】
図２３の機能ブロック４は別の方法でも４入力ＭＵＸとして使うことができる。４−２キャリブロック４１として３入力ＬＵＴを使用し、それにｉｎ３とｉｎ１をデータ入力としｉｎ２を制御入力とする２入力ＭＵＸをインプリメントする。そして３入力ＬＵＴ  ４８にも２入力ＭＵＸをインプリメントする。これによって、やはり図３８に示すような４入力ＭＵＸを実現できる。このとき、図３８の（）内に記したように、ＭＵＸ  ２２ｂは４−２キャリブロック４１に、ＭＵＸ  ２２ａは３入力ＬＵＴ  ４８にそれぞれ対応する。ただし、４−２キャリブロック４１の出力ｏ４２は図３９に示すように隣の機能ブロックに接続されるため、図３８の出力ｏｕｔは隣の機能ブロックから取り出さなければならない。図３９を参照しながら、くわしく説明する
図３９は、２つの機能ブロックにまたがる４入力ＭＵＸの構成法を説明するための回路図である。図３９において、機能ブロック４ａの４−２キャリ出力ｏ４２は、隣の機能ブロック４ｂの４−２キャリ入力ｉ４２すなわちＭＵＸ  ２２ｃの１−入力に接続されている。従って、論理機能生成器４０をコンフィギュレーションして固定論理値１を出力するようにし、ＭＵＸ  ２２ｃの１−入力をキャリ出力ｏｃとして機能ブロックから取り出すようにすれば本方式の４入力ＭＵＸの出力が使えるようになる。
【０１６７】
あるいは、論理機能生成器４０をコンフィギュレーションして固定論理値０を出力するようにしても、ＸＯＲ  ３０を経由して加算出力ｏｓとして本方式の４入力ＭＵＸの出力を取り出すことができる。この構成法では一つの４入力ＭＵＸが２つの機能ブロック４ａ，  ４ｂに股がっている。しかし、このプログラマブル機能ブロック４ａ，  ４ｂはさらに別の４入力ＭＵＸの部品として使うことができるため、実質的にはプログラマブル機能ブロック一つ当り一個の４入力ＭＵＸが作れることになる。
【０１６８】
次に、さらに別の４入力ＭＵＸ構成法について説明する。それは、図３９において、機能ブロック４ａのＭＵＸ  ２２ｆと、機能ブロック４ｂのＭＵＸ  ２２ａと２２ｃを４入力ＭＵＸを構成する２入力ＭＵＸとして使用するものである。このためには、機能ブロック４ａの４−２キャリブロック４１を入力ｉｎ３の信号がそのまま出力ｏｕｔに伝達されるように設定し、かつ、機能ブロック４ｂの論理機能生成器４０を入力ｉｎ２の信号がそのまま出力ｏｕｔに伝達されるように設定する。このとき、機能ブロック４ｂのＭＵＸ  ２２ａと機能ブロック４ａのＭＵＸ  ２２ｆが４入力ＭＵＸの入力段の２つの２入力ＭＵＸとして機能し、機能ブロック４ｂの入力ｉ２がＭＵＸ  ２２ｃの制御信号となり、このＭＵＸ  ２２ｃが４入力ＭＵＸの出力段の２入力ＭＵＸとして機能する。
【０１６９】
４−２キャリブロック４１が３入力ＬＵＴの場合は一つの入力をそのまま出力するようにコンフィギュレーションすることは容易である。しかし、４−２キャリブロック４１が図８のようにキャリ信号生成のための専用回路であってもそのような機能を実現することはできる。なぜなら、一般にキャリ信号生成回路は、三つの入力のうち２つを論理値０と１にそれぞれ設定すれば、残り一つの入力をそのまま出力するからである。したがって、図３９の各機能ブロックにおいて、３入力ＬＵＴ  ４８にｉ１２を反転して出力するインバータをインプリメントし、ｉ１２にｉ２とおなじ信号を入力すれば、４−２キャリブロック４１は入力ｉｎ３の信号をそのまま出力する。この構成法でも一つの４入力ＭＵＸが２つの機能ブロック４ａ，  ４ｂに股がっている。しかし、プログラマブル機能ブロック４ａ，  ４ｂはさらに別の４入力ＭＵＸの部品として使うことができるため、実質的にはプログラマブル機能ブロック一つ当り一個の４入力ＭＵＸが作れることになる。
【０１７０】
ところで、機能ブロックの入力ｉ２をＭＵＸ  ２２ｃの制御入力として使う場合、制御信号が論理機能生成器４０を通らなければならないために遅延が大きくなってしまう。この問題は、図４０に示すような機能ブロックを用いることによって解決できる。
【０１７１】
２．６）第２実施形態の変形例（２）
図４０は、本発明の第２実施形態による機能ブロックの別の変形例を示す回路図である。これは、これまで述べてきた本発明の機能ブロック（たとえば図３９の４ａ，  ４ｂ）において、論理機能生成器４０とＭＵＸ  ２２ｃの制御入力とを直結するかわりに図４０に示すごとくＭＵＸ  ２２ｄを介して両者を結合するものである。
【０１７２】
ＭＵＸ  ２２ｄはコンフィギュレーションメモリ１３ｄによって制御され、コンフィギュレーションメモリ１３ｄに論理値１が保存されているときＭＵＸ  ２２ｃは論理機能生成器４０の出力で制御され、論理値０が保存されているときＭＵＸ  ２２ｃは制御入力ｉ５０で制御される。後者の方が高速に制御できるため、高性能の４入力ＭＵＸを構成するのに適している。また、ＭＵＸ  ２２ｃの制御をｉ５０で行なうとき、ｉ５０として固定論理値０を入力することにより、機能ブロック４の入力ｉ００あるいはｉ０１をＭＵＸ  ２２ｃの０−入力を通じてキャリ出力ｏｃに出力することができる。これによって、機能ブロック４の入力を論理機能生成器４０をバイパスして高速に出力することができる。このような信号バイパスは、図１に示すようなプログラマブル機能セルの出力ブロック５の中のＤ−ＦＦのみを使用する場合や、ルータビリティ改善のために使われる。
【０１７３】
図３９の機能ブロック（４ａあるいは４ｂ）でも、固定論理値０を出力するように論理機能生成器４０をコンフィギュレーションすれば同様なことは可能である。しかしその場合、論理機能生成器４０を他の論理回路として使うことができない。一方、図４０の機能ブロック４では、ＭＵＸ  ２２ｃの制御入力をｉ５０によって供給することで、論理機能生成器４０は他の目的に使用することができる。上記のようなバイパスを用いた場合、入力ｉ０はバイパスのために占有されるが、ほかの入力ｉ１，  ｉ２，  ｉ３は論理機能生成器４０の入力として使うことができる。すなわち、一つの機能ブロック４で信号バイパスと３入力論理回路を同時に実現できる。なお、このとき３入力論理回路の出力は図４０の論理出力ｏｌから取り出される。
【０１７４】
３．第３実施形態
３．１）機能ブロック
図４１は、本発明による機能ブロックの第３実施形態を示す回路図である。これは、図４０の機能ブロック４において、ＭＵＸ  ２２ｆの出力と４−２キャリ入力ｉ４２をＭＵＸ  ２２ｇの０−入力と１−入力にそれぞれ接続し、ＭＵＸ  ２２ｇの出力をＭＵＸ  ２２ｃの１−入力とＸＯＲの一方の入力とに接続したものである。図４１では図４０の３入力ＬＵＴ  ４８を除いた例を示しているが、これは本質的なことではなく、たとえば図４１のｉ１，  ｉ２に前置ロジックが付いていてもよい。
【０１７５】
本実施形態による機能ブロック４は、コンフィギュレーションメモリ１３ｄとＭＵＸ  ２２ｇを制御するコンフィギュレーションメモリ１３ｇにともに論理値１が保存されているとき、図３２の機能ブロック４と（図３２のＡＮＤ  ３１がＭＵＸ  ２２ａに置き換えられることを除いて）同じ機能を持つ。他方、コンフィギュレーションメモリ１３ｄと１３ｇにともに論理値０が保存されているとき、図４１のＭＵＸ  ２２ａ，  ２２ｆ，  ２２ｃで４入力ＭＵＸが構成される。この４入力ＭＵＸは、これまで述べたものと異なり信号経路に４−２キャリブロック４１も論理機能生成器４０も含まないため、高速であるという特長を持つ。
【０１７６】
さらに、本実施形態による機能ブロック４は、ＭＵＸ  ２２ｃをリップルキャリ用回路として使って、１ビット全加算器として使用することもできる。そのためには、コンフィギュレ―ションメモリ１３ｄと１３ｇにそれぞれ論理値１と０を保存し、論理機能生成器４０に、ｉｎ１（もしくはｉｎ２）とｉｎ０とを入力とするＸＯＲをインプリメントする。このとき、図４１のｉｎ１（もしくはｉｎ２）とｉｎ０が１ビット全加算器の引数入力に、加算出力ｏｓが１ビット全加算器の加算出力に、キャリ出力ｏｃがリップルキャリ出力に、ＭＵＸ  ２２ｆの出力（すなわち入力ｉ３０とｉ３１のいずれか）がリップルキャリ入力にそれぞれ対応する。リップルキャリ信号はキャリ出力ｏｃから相互接続配線を経由して隣の機能ブロックの入力ｉ３０（あるいはｉ３１）に伝送される。
【０１７７】
３．２）第３実施形態の変形例
図４２は、本発明による機能ブロックの第３実施形態の変形例を示す回路図である。これは、ＭＵＸ  ２２ａと２２ｆの出力をＭＵＸ  ２２ｍの０−入力と１−入力にそれぞれ接続し、ＭＵＸ  ２２ｍの制御入力に制御信号ｉ５０を入れて、これら３つの２入力ＭＵＸで４入力ＭＵＸを形成するようにしたものである。
【０１７８】
ＭＵＸ  ２２ｃの０−入力と１−入力にはそれぞれＭＵＸ  ２２ｍの出力と４−２キャリ入力ｉ４２が接続され、論理機能生成器４０の出力とコンフィギュレーションメモリ１３ｄの出力とを入力とするＡＮＤ  ３１ｄの出力がＭＵＸ  ２２ｃの制御入力に接続される。コンフィギュレーションメモリ１３ｄに論理値０が保存されているとき、図４２の機能ブロック４は４入力ＭＵＸとして使うことができる。
【０１７９】
一方、制御入力ｉ５０に固定論理値０を入れ、コンフィギュレーションメモリ１３ｄに論理値１を保存すると、図３２の機能ブロック４と（図３２のＡＮＤ  ３１がＭＵＸ  ２２ａに置き換えられることを除いて）同じ機能を持つ。
【０１８０】
図４２では４入力ＭＵＸの出力段ＭＵＸ  ２２ｍに制御信号ｉ５０が直接入力されているため、図４１のようにＭＵＸ  ２２ｄを経由して入力されるのに比べて高速に制御できるというメリットがある。また、４−２キャリ入力ｉ４２も、図４１ではＭＵＸ  ２２ｇと２２ｃを経由してキャリ出力ｏｃに出力されるが、図４２では一つのＭＵＸ  ２２ｃのみを経由して出力されるため遅延が小さいというメリットもある。
【０１８１】
なお、図４２では、ＭＵＸ  ２２ｃの制御用としてＡＮＤ  ３１ｄを用いたがこれに限定されるものではない。たとえばＡＮＤ  ３１ｄの代わりにＮＡＮＤを用いても、ＭＵＸ  ２２ｃの０−入力と１−入力を入れ替えれば機能は同じになる。また、ＭＵＸ  ２２ｃの制御用にＡＮＤ  ３１ｄとコンフィギュレーションメモリ１３ｄを使うことは、図４２に限らず本発明の他の機能ブロックでも可能である。たとえば図６の機能ブロック４にそれを適用した場合、コンフィギュレーションメモリ１３ｄに論理値０を保存したとき、入力ｉ０からＭＵＸ  ２２ｃを通って（すなわち論理機能生成器４０をバイパスして）ｏｃに信号を出力する経路と、ｉ１，  ｉ２，  ｉ３を入力としｏｌを出力とする論理機能とを同時にインプリメントすることができる。
【０１８２】
以上、４入力ＭＵＸを一つの（あるいは実質的に一つの）機能ブロックにインプリメントできる本発明の実施の形態について説明した。次に、その利点がよく生かされるバレルシフタについて説明する。
【０１８３】
３．３）バレルシフタ
バレルシフタは、多ビットデータのシフト量を制御信号に応じて動的に変えられる回路で、浮動小数点の加減算に主に使われる。
【０１８４】
図４３は、２入力ＭＵＸで構成した通常のバレルシフタの例を示す回路図である。１６ビット入力データｉ０〜ｉ１５は、２入力ＭＵＸから成る第１段から第４段までのブロックを通って出力される。第１段は制御入力ｉ６０に応じて、入力をそのまま出力したり１ビットシフトしてから出力したりする。第２段は制御入力ｉ６１に応じて、入力をそのまま出力したり２ビットシフトしてから出力したりする。第３段は制御入力ｉ６２に応じて、入力をそのまま出力したり４ビットシフトしてから出力したりする。第４段は制御入力ｉ６３に応じて、入力をそのまま出力したり８ビットシフトしてから出力したりする。
【０１８５】
全体として図４３のバレルシフタは、制御入力に応じて０ビットから１５ビットまでの任意のシフトを行なうことができる。これを従来のＦＰＧＡにインプリメントすると、一つの機能ブロックには一つの２入力ＭＵＸが対応するため、多くのプログラマブル機能セルを消費しかつ遅延も大きくなる。
【０１８６】
図４４は、本発明による４入力ＭＵＸで構成したバレルシフタの例を示す回路図である。ここで４入力ＭＵＸ  ６０の記号の中の数字は、制御入力ｉ６２，  ｉ６３がそれぞれ０と０のときには０のところの入力が、１と０のときには１のところの入力が、０と１のときには２のところの入力が、１と１のときには３のところの入力が、それぞれ出力される、という意味である。
【０１８７】
図４４において、第１段は制御入力ｉ６０とｉ６１に応じて、０，  １，  ２，  ３ビットのいずれかの量のシフトを行なう。第２段は制御入力ｉ６２とｉ６３に応じて、０，  ４，  ８，  １２ビットのいずれかの量のシフトを行なう。全体として図４４のバレルシフタは、制御入力に応じて０ビットから１５ビットまでの任意のシフトを行なうことができる。
【０１８８】
これを従来のＦＰＧＡにインプリメントすると、図１０７に示したように１つの４入力ＭＵＸに２つの機能ブロックを使うため、図４３の２入力ＭＵＸによるバレルシフタのときと同じ数のプログラマブル機能セルを消費する。
【０１８９】
これに対して、本発明による機能ブロックを用いると、１つの機能ブロックで４入力ＭＵＸを作れるため、従来の半分の面積で同じ機能を持つバレルシフタをインプリメントできる。しかも、図４３の２入力ＭＵＸによるバレルシフタに比べると図４４の４入力ＭＵＸによるバレルシフタは段数が半分なので、遅延も半分になる。
【０１９０】
４．第４実施形態
４．１）機能ブロック
図４５は、本発明による機能ブロックの第４実施形態を示す回路図である。本実施形態では、図４０の機能ブロック４において、ＭＵＸ  ２２ｂ、ＭＵＸ  ２２ｅ  、ＭＵＸ  ２２ｎおよび  ＭＵＸ  ２２ｍを設ける。論理機能生成器４０の入力ｉ１とｉ２にそれぞれＭＵＸ  ２２ｂおよび２２ｅの出力を接続し、ＭＵＸ  ２２ｅと２２ｆの出力をそれぞれＭＵＸ  ２２ｎ  の０−入力と１−入力に接続し、ＭＵＸ  ２２ａと２２ｂの出力をそれぞれＭＵＸ  ２２ｍ  の０−入力と１−入力に接続する。さらに、制御入力ｉ５１でＭＵＸ  ２２ｍと２２ｎを制御し、ＭＵＸ  ２２ｍと２２ｎの出力をそれぞれＭＵＸ  ２２ｃと２２ｇの０−入力に接続する。
【０１９１】
このようにして、本実施形態による機能ブロック４は一つで８入力ＭＵＸを実現できる。８入力ＭＵＸとして使うためにはコンフィギュレーションメモリ１３ｄと１３ｇにともに論理値０を保存すればよい。このとき、前置ロジックの四つのＭＵＸ  ２２ａ，  ２２ｂ，  ２２ｅ，  ２２ｆを入力段、二つのＭＵＸ  ２２ｍ，  ２２ｎを第２段、ＭＵＸ  ２２ｃを出力段とする８入力ＭＵＸが形成される。
【０１９２】
また、本実施形態による機能ブロック４は、四つのＭＵＸ  ２２ａ，  ２２ｂ，  ２２ｅ，  ２２ｆをＡＮＤとして使うことにより、図２９に示した４ＡＮＤ４−２加算器２５も実現できる。
【０１９３】
さらに、本実施形態による機能ブロック４は、図４１の場合と同じような方法で、全加算器を構成できる。そのためには、コンフィギュレーションメモリ１３ｄと１３ｇにそれぞれ論理値１と０を保存し、制御入力ｉ５１を固定論理値、たとえば０に設定する。そして、論理機能生成器４０にｉｎ１（もしくはｉｎ３）とｉｎ０を入力するＸＯＲをインプリメントする。このとき、本実施形態による機能ブロック４は、ｉｎ１（もしくはｉｎ３）とｉｎ０を引数入力、ＭＵＸ２２ｅの出力（すなわち入力ｉ２０，  ｉ２１のいずれか）をリップルキャリ入力、キャリ出力ｏｃをリップルキャリ出力とする１ビット全加算器として機能する。
【０１９４】
４．２）第４実施形態の変形例
図４６は、本発明による機能ブロックの第４実施形態の変形例を示す回路図である。本実施形態では、図４２の機能ブロック４において、ＭＵＸ  ２２ｂ、ＭＵＸ  ２２ｅ  、ＭＵＸ  ２２ｎ、ＭＵＸ  ２２ｍ  およびＭＵＸ  ２２ｇを設ける。論理機能生成器４０の入力ｉ１とｉ２にそれぞれＭＵＸ  ２２ｂと２２ｅの出力を接続し、ＭＵＸ  ２２ｅと２２ｆの出力をそれぞれＭＵＸ  ２２ｎ  の０−入力と１−入力に接続し、（図４２のＭＵＸ  ２２ｍの代わりに）ＭＵＸ  ２２ａと２２ｂの出力をそれぞれＭＵＸ  ２２ｍ  の０−入力と１−入力に接続し、ＭＵＸ  ２２ｍと２２ｎの出力をそれぞれＭＵＸ  ２２ｇ  の０−入力と１−入力に接続する。また、制御入力ｉ５１でＭＵＸ  ２２ｍと２２ｎを制御し、制御入力ｉ５０でＭＵＸ  ２２ｇを制御し、ＭＵＸ  ２２ｇの出力をＭＵＸ  ２２ｃの０−入力に接続する。
【０１９５】
このようにして、本実施形態による機能ブロック４は、一つで８入力ＭＵＸを実現できる。８入力ＭＵＸとして使うためにはコンフィギュレーションメモリ１３ｄに論理値０を保存する。前置ロジックの四つのＭＵＸ  ２２ａ，  ２２ｂ，  ２２ｅ，２２ｆを入力段、二つのＭＵＸ  ２２ｍ，  ２２ｎを第２段、ＭＵＸ  ２２ｇを出力段とする８入力ＭＵＸが形成され、出力段の出力はＭＵＸ  ２２ｃを通じてｏｃに取り出される。
【０１９６】
また、図４６の機能ブロック４は、四つのＭＵＸ  ２２ａ，  ２２ｂ，  ２２ｅ，  ２２ｆをＡＮＤとして使うことにより、図２９に示した４ＡＮＤ４−２加算器２５も実現できる。
【０１９７】
５．第５実施形態
ところで、上述の図４５（あるいは図４１）の機能ブロックによる全加算器では、リップルキャリ信号はキャリ出力ｏｃから出力ブロック５（図１）と相互接続配線を経由して隣のプログラマブル機能セルに伝送され、そのセルで入力選択ユニットを経由して機能ブロックに入力される。このように幾つかのスイッチング回路を通り、かつ多数の回路が接続されていて負荷が重い相互接続配線を経由することは、信号伝送遅延をかなり大きくしてしまう。次に、高速なリップルキャリ伝送を実現する機能ブロックについて説明する。
【０１９８】
５．１）機能ブロック
図４７は、本発明による機能ブロックの第５実施形態を示す回路図である。これは、図６に示す機能ブロックにリップルキャリブロック５０を接続したものである。リップルキャリブロック５０の入力ｃはリップルキャリ入力ｉｒｃに、出力ｏｕｔはリップルキャリ出力ｏｒｃにそれぞれ接続される。入力ａ，  ｂ，  ｄは必ずしもすべてが使われる必要はない。また入力ａとｂは入力ｉ０，  ｉ１，  ｉ２，  ｉ３のいずれかに接続されればよく、図４７は接続の仕方の一例を示したに過ぎない。
【０１９９】
リップルキャリブロック５０は、４−２キャリブロック４１の実現方法と同じである。したがって図８の（１）〜（７）うちいずれかの回路を用いることができる。ここで図８の（１），  （２），  （３），  （６），  （７）における入力ｉｎ１，  ｉｎ２，  ｉｎ３は、リップルキャリブロック５０の入力ｃ，  ｂ，  ａにそれぞれ対応し、入力ｄは使用されない。図８の（４）における入力ｉｎ１，  ｉｎ２，  ｉｎ３およびＸＯＲ  ３０の出力は、リップルキャリブロック５０の入力ｃ，  ｂ，  ａおよびｄにそれぞれ対応する。図８の（５）における入力ｉｎ１，  ｉｎ２およびＸＯＲ  ３０の出力は、リップルキャリブロック５０の入力ｃ，  ｂおよびｄにそれぞれ対応し入力ａは使用されない。図８の各回路の出力ｏｕｔは、リップルキャリブロック５０の出力ｏｕｔに対応する。
【０２００】
図４７の機能ブロック４を１ビット全加算器として使用する場合には、論理機能生成器４０に、ｉｎ０とｉｎ１を入力としｏｕｔを出力とするＸＯＲをインプリメントする。このとき、機能ブロック４の入力ｉ０，  ｉ１および加算出力ｏｓが、それぞれ１ビット全加算器の２つの引数入力および加算出力に対応する。図８の回路（４），  （５）の中のＸＯＲ  ３０は図４７の機能ブロック４の論理機能生成器４０にインプリメントされたＸＯＲが担うので、図８の回路（４），  （５）をリップルキャリに用いるときは回路中のＸＯＲを除いたものをリップルキャリブロック５０とする。それ以外の図８の回路は、そのままリップルキャリブロック５０となる。
【０２０１】
図４７におけるコンフィギュレーションメモリ１３ｈには、機能ブロック４を１ビット全加算器として使用するときは論理値１を保存し、それ以外の機能（図６の機能ブロック４と同じ機能）を用いるときは論理値０を保存する。
【０２０２】
５．２）第５実施形態の第１変形例
図４８は、本発明による機能ブロックの第５実施形態の第１変形例を示す回路図である。これは、図４７の機能ブロック４におけるＭＵＸ  ２２ｈを別の箇所に接続したものであるが、機能は図４７の機能ブロック４とほとんど変わらない。ただ、図４８の場合はリップルキャリ入力ｉｒｃをＭＵＸ  ２２ｃ経由でキャリ出力ｏｃに出力することができる点が図４７の場合とは異なる。
【０２０３】
５．３）第５実施形態の第２変形例
図４９は、本発明による機能ブロックの第５実施形態の第２変形例を示す回路図である。これは、図４８の機能ブロック４において、ＭＵＸ  ２２ｃの０−入力と１−入力を入れ替え、ＭＵＸ  ２２ｃの制御用としてＮＡＮＤ  ３４ｄを挿入し、リップルキャリブロック５０の入力ａ，  ｂを入力ｉ２，  ｉ１に繋ぎ変えたものである。
【０２０４】
コンフィギュレーションメモリ１３ｄに論理値１を保存したとき、図４９の機能ブロック４は、図４８のそれと実質的に同じ機能を持つ。両者の違いはリップルキャリブロック５０の入力ａ，  ｂの接続先のみである。これは機能ブロックを１ビット全加算器として使うときの引数入力が図４９ではｉ１，  ｉ２に変わるだけである（このとき論理機能生成器４０には、ｉｎ１とｉｎ２を入力としｏｕｔを出力とするＸＯＲがインプリメントされる）。
【０２０５】
コンフィギュレーションメモリ１３ｄに論理値０を保存したとき、図４９の機能ブロック４には、ｉｎ１，  ｉｎ２，  ｉｎ３を入力としｏｌを出力とする３入力論理回路と、入力ｉ０をそのままｏｃに出力するバイパス経路とを同時にインプリメントすることができる。バイパス経路は、ルータビリティを増したり、入力信号を（図１の出力ブロック５の中にある）Ｄ−ＦＦを通してそのまま出力したりするときに役立つ。さらに、このコンフィギュレーションでは、ｉ１，  ｉ２を引数入力としｏｓを加算出力とする１ビット全加算器と、入力ｉ０をそのままｏｃに出力するバイパス経路とを同時にインプリメントすることもできる。
【０２０６】
図４９の機能ブロック４を１ビット全加算器として使う場合、リップルキャリ信号はｉｒｃからｏｒｃに伝送されるため、キャリ出力ｏｃは使用されない。したがって、バイパス経路はｏｃを別の用途に使って無駄をなくするのに役立つ。既に述べたように一つのプログラマブル機能セル（の中の出力ブロック）には少なくとも２つのＤ−ＦＦがあるため、これらをできるだけ有効利用することが望まれる。
【０２０７】
上述のような、３入力論理回路あるいは１ビット全加算器と、バイパス経路との同時使用を可能にするコンフィギュレーションは、その目的にかなうものである。なお、図４９の機能ブロック４ではＭＵＸ  ２２ｃの制御用としてＮＡＮＤ  ３４ｄを用いたが、図４２のようにＡＮＤを使ってもよい。このとき図４９のＭＵＸ  ２２ｃの０−入力と１−入力は入れ替えられる。
【０２０８】
６．第６実施形態
図５０は、本発明による機能ブロックの第６実施形態を示す回路図である。これは、図４２の機能ブロック４に、図４８と同様な仕方でリップルキャリブロック５０を付けた例である。なお、図５０では、図４２の制御用ＡＮＤ  ３１ｄを除いた例を示したが、それを入れてもよい。
【０２０９】
本実施形態による機能ブロック４で、論理機能生成器４０を固定論理値０を出力するように設定すると、ＭＵＸ２２ａ，  ２２ｆ，  ２２ｍでｏｃを出力とする４入力ＭＵＸを構成することができる。図５０では、リップルキャリブロック５０の入力ｂをＭＵＸ  ２２ｍの出力に接続してある。これによって、機能ブロック４を１ビット全加算器として使うとき、制御入力ｉ５０に与える論理値に応じて加算器の引数入力としてｉ３とｉ０のどちらでも使うことができるという柔軟性が生じる。
【０２１０】
なお、この柔軟性は失われるものの、リップルキャリブロック５０の入力ｂを論理機能生成器４０の入力（例えばｉ０）に直接接続しても本機能ブロック４を１ビット全加算器として使うことは可能である。
【０２１１】
７．第７実施形態
７．１）機能ブロック
図５１は、本発明による機能ブロックの第７実施形態を示す回路図である。これは、図４５の機能ブロック４に、図４８と同様な仕方でリップルキャリブロック５０を付けた例である。リップルキャリブロック５０の入力ａとｂはそれぞれＭＵＸ  ２２ｎと２２ｍの出力に接続してある。これによって、機能ブロック４を１ビット全加算器として使うとき、制御入力ｉ５１に与える論理値に応じて加算器の引数入力としてｉ０とｉ２、もしくはｉ１とｉ３のいずれかの組みを使うことができるという柔軟性が得られる。なお、このような柔軟性は失われるものの、リップルキャリブロック５０の入力ａとｂを、論理機能生成器４０の入力ｉ０，  ｉ１，  ｉ２，  ｉ３のいずれかに直接接続しても本機能ブロック４を１ビット全加算器として使うことはできる。
【０２１２】
図５１において、メモリ付き３入力ＭＵＸ  ２３は、内部にコンフィギュレーションメモリを持っており、その内容に応じて入力ａ，  ｂ，  ｃの信号のうちから一つを選択してｏｕｔに出力する回路である。メモリ付き３入力ＭＵＸ  ２３において入力ｃが選択されたとき、図５１の機能ブロック４は、専用リップルキャリ回路５０を持った１ビット全加算器として機能する。
【０２１３】
メモリ付き３入力ＭＵＸ  ２３において入力ａまたはｂが選択されたとき、本実施形態の機能ブロック４は、図４５においてコンフィギュレーションメモリ１３ｇにそれぞれ論理値０または１を保存したときと同じ機能を有する。
【０２１４】
メモリ付き３入力ＭＵＸ
図５２は、メモリ付き３入力ＭＵＸ  ２３の第１例を示す回路図である。これはＭＵＸ２２ｇの片方のデータ入力にＭＵＸ  ２２ｈの出力を接続したものである。
【０２１５】
図５３は、メモリ付き３入力ＭＵＸ  ２３の第２例を示す回路図である。これは３つのトランスミッションゲート１２ａ，  １２ｂ，  １２ｃで３入力のＭＵＸを構成したものである。コンフィギュレーションメモリ１３ａ（または１３ｂ）に論理値１が保存されるとき、トランスミッションゲート１２ａ（または１２ｂ）が導通状態になり入力ａ（またはｂ）がｏｕｔに出力される。このときＮＡＮＤ３４とインバータ３７で制御されるトランスミッションゲート１２ｃは遮断状態になる。
【０２１６】
コンフィギュレーションメモリ１３ａと１３ｂにともに論理値０が保存されるとき、トランスミッションゲート１２ｃのみが導通状態になり入力ｃがｏｕｔに出力される。図５３のメモリー付き３入力ＭＵＸ  ２３は、図５２の第１例に比べて、データ入力（入力ｂ，  ｃ）から出力ｏｕｔまでの遅延が小さいという特長を持つ。
【０２１７】
７．２）第７実施形態の変形例
図５４は、本発明による機能ブロックの第７実施形態の変形例を示す回路図である。これは、図４６の機能ブロック４に、図４７と同様な仕方でリップルキャリブロック５０を付けた例である。（図５４では、図４６の制御用ＡＮＤ  ３１ｄを除いた例を示したが、それを入れてもよい。）  本機能ブロック４を８入力ＭＵＸとして使うときは、論理機能生成器４０を固定論理値０を出力するように設定する。
【０２１８】
図５４において、リップルキャリブロック５０の入力ａとｂはそれぞれ入力ｉ２とＭＵＸ  ２２ｇの出力に接続してある。ＭＵＸ  ２２ｇの出力に接続することで、機能ブロック４を１ビット全加算器として使うときに、次のような柔軟性が得られる。すなわち、制御入力ｉ５１およびｉ５０に与える論理値に応じて加算器の引数入力としてｉ０とｉ１とｉ３のうちいずれでも使うことができる。
【０２１９】
なお、リップルキャリブロック５０の入力ａとｂは、論理機能生成器４０の入力ｉ０，  ｉ１，  ｉ２，  ｉ３のいずれかの信号が供給されればよく、たとえばそれらの入力に直接接続したり、ＭＵＸ２２ｍや２２ｎの出力に接続したりしてもよい。
【０２２０】
８．第８実施形態
次に、本発明による機能ブロックの第８実施形態について説明する。これは、これまで述べてきた通常のリップルキャリ回路より高速な、２ビットキャリルックアヘッド回路を持つ機能ブロックの例である。
【０２２１】
８．１）機能ブロック
図５５は、本発明による機能ブロックの第８実施形態を示す回路図である。本実施形態は複合機能ブロックであり、機能ブロック４ａと機能ブロック４ｂとで構成されている。
【０２２２】
機能ブロック４ａは、図６の機能ブロック４に２ビットキャリルックアヘッドのための回路としてＭＵＸ  ２２ｈとそれを制御するコンフィギュレーションメモリ１３ｈ、およびＡＮＤ  ３１を付加したものである。機能ブロック４ｂは、図６の機能ブロック４に２ビットキャリルックアヘッドのための回路としてＭＵＸ  ２２ｈと２２ｓ、それらを制御するコンフィギュレーションメモリ１３ｈ、およびＡＯ  ５１とＡＮＤ  ３１を付加したものである。
【０２２３】
機能ブロック４ａおよび４ｂのコンフィギュレーションメモリ１３ｈに論理値０を保存すると、これらの機能ブロックはそれぞれ図６の機能ブロック４と同じ機能を持つ。このとき機能ブロック４ａの４−２キャリ出力は機能ブロック４ｂの４−２キャリ入力と結合される。
【０２２４】
機能ブロック４ａおよび４ｂのコンフィギュレーションメモリ１３ｈに論理値１を保存すると、これらの機能ブロックはキャリルックアヘッドを用いた２ビット全加算器として使うことができる。ただし、そのためには機能ブロック４ａと４ｂの論理機能生成器４０にｉｎ０とｉｎ３を入力とするＸＯＲをインプリメントする必要がある。（ｉｎ３のかわりに、ｉｎ２またはｉｎ１でもよい。そのとき機能ブロック４ａのＡＮＤ  ３１のｉ３に繋がっている入力もｉ２またはｉ１に繋ぎかえる。）このとき、論理機能生成器４０にインプリメントしたＸＯＲの入力が各ビットの全加算器の引数入力となり、ｏｓが各ビットの全加算器の加算出力となり、ｉｒｃとｏｒｃが２ビット全加算器のリップルキャリ入力とリップルキャリ出力にそれぞれ成る。
【０２２５】
図５５におけるＡＯ  ５１は、ＯＲの一方の入力にＡＮＤの出力を接続した回路と同じ論理機能を持つ。しかし、実際にはＣＭＯＳ回路の特性から、ＡＯの出力を反転したＡＯＩとインバータとから作るのが一般的である。ここで、ＡＯＩは、ＮＯＲの一方の入力にＡＮＤの出力を繋いでもできるが、一つの不可分な論理ゲートとして作ったほうが高速で面積も小さくなる。
【０２２６】
図５６は、ＮＡＮＤによるＡＯの構成例を示す回路図である。このように、ＡＯ  ５１はＮＡＮＤを用いて構成することもできる。ＮＡＮＤは非常に簡単で高速な論理ゲートであるため、このようにして作ったＡＯ  ５１を用いると図５５のｉｒｃからｏｒｃまでのキャリ伝搬は非常に高速なものになる。
【０２２７】
８．２）第８実施形態の変形例
図５７は、本発明の機能ブロックの第８実施形態の変形例を示す回路図である。これは、図４２の機能ブロック二つから成る複合機能ブロックに２ビットキャリルックアヘッド回路を付加した例である。
【０２２８】
機能ブロック４ａは、図４２の機能ブロック４に２ビットキャリルックアヘッドのための回路としてＭＵＸ  ２２ｈとそれを制御するコンフィギュレーションメモリ１３ｈおよびＡＮＤ  ３１を付加したものである。機能ブロック４ｂは、図４２の機能ブロック４に２ビットキャリルックアヘッドのための回路としてＭＵＸ  ２２ｈと２２ｓ、それらを制御するコンフィギュレーションメモリ１３ｈ、およびＡＯ  ５１とＡＮＤ  ３１を付加したものである。ただし、図５７の機能ブロック４ｂにおけるＭＵＸ  ２２ｈと２２ｓの付け方は、図５５の機能ブロック４ｂにおけるそれとは異なっている。しかし、これは同じ機能の異なる実現法の例に過ぎず、本質的な違いではない。
【０２２９】
図５７の複合機能ブロックにおいて、機能ブロック４ａと４ｂのコンフィギュレーションメモリ１３ｈに論理値０を保存すると、これらの機能ブロックはそれぞれ図４２の機能ブロック４と同じ機能を持つ。このとき機能ブロック４ａの４−２キャリ出力は機能ブロック４ｂの４−２キャリ入力と結合される。
【０２３０】
機能ブロック４ａと４ｂのコンフィギュレーションメモリ１３ｈに論理値１を保存すると、これらの機能ブロックはキャリルックアヘッドを用いた２ビット全加算器として使うことができる。ただし、そのためには機能ブロック４ａと４ｂの論理機能生成器４０にｉｎ０とｉｎ３を入力とするＸＯＲをインプリメントする必要がある。（ｉｎ３のかわりに、ｉｎ２またはｉｎ１でもよい。そのとき機能ブロック４ａのＡＮＤ  ３１のｉ３に繋がっている入力もｉ２またはｉ１に繋ぎかえる。）このとき、論理機能生成器４０にインプリメントしたＸＯＲの入力が各ビットの全加算器の引数入力となり、ｏｓが各ビットの全加算器の加算出力となり、ｉｒｃとｏｒｃが２ビット全加算器のリップルキャリ入力とリップルキャリ出力にそれぞれ成る。
【０２３１】
図５７に示した変形例は、多数の変形例のほんの一例に過ぎない。他の本発明の機能ブロックにも同様に２ビットキャリルックアヘッド回路を付加することができる。それらは当該分野の技術を有するものであれば、本明細書で開示された情報から容易に構成できる。
【０２３２】
図５８は、上述したリップルキャリ回路を有する機能ブロックの接続方法を示すブロック図である。ここで、本発明の第５〜第７実施形態およびそれらの変形例のような通常のリップルキャリ回路を持つ機能ブロックを用いる場合には、セル５２は、それを一つ含むプログラマブル機能セルに対応する。また、本発明の機能ブロックの第８実施形態およびそれらの変形例ような２ビットキャリルックアヘッド回路を持つ複合機能ブロックを用いる場合は、図５８のセル５２は一つの機能ブロックを含むプログラマブル機能セル２つ分に対応する。
【０２３３】
９．第９実施形態
図５９は、本発明による機能ブロックの第９実施形態を示す回路図である。これは、図４８の機能ブロック４に、ＸＯＲ  ３０を制御するＡＮＤ  ３１ｋと、ＡＮＤ  ３１ｋを制御するコンフィギュレーションメモリ１３ｋを挿入し、論理出力ｏｌを除いたものである。
【０２３４】
コンフィギュレーションメモリ１３ｋに論理値１を保存すると、図５９の機能ブロック４は図４８のそれと（ｏｌがないことを除いて）同じ機能になる。他方コンフィギュレーションメモリ１３ｋに論理値０を保存すると、図５９の論理機能生成器４０の出力ｏｕｔがｏｓから出力される。これによって、図４８のように論理出力ｏｌがなくても、論理機能生成器４０にインプリメントされる様々な論理機能を利用できるようになる。このとき機能ブロック４の出力はｏｓとｏｃの２つのみとなるため、出力ブロック（図９）の中の出力選択ユニット５＿２、レジスタブロック４２ａ、入力ブロック３ａは必要無くなり、省面積になる。
【０２３５】
ところで、図５９では論理機能生成器４０の出力はＸＯＲ  ３０を通ってｏｓに出力されるのに対して、図４８ではＸＯＲ  ３０を通らずにｏｌから出力される。しかしトータルの遅延はどちらも同じである。
【０２３６】
図６０はＸＯＲ３０の構成例を示す回路図である。図６０  （１）に示すＸＯＲは、図６０（２）のようにＭＵＸ  ２２およびインバータ３７で構成することができる。図５９のＸＯＲ  ３０にこの構成を採用し、入力ａを論理機能生成器４０の出力ｏｕｔに接続するようにすると、出力ｏｕｔの信号はＭＵＸ一段を通って出力ブロックに入力されることになる。
【０２３７】
他方、図４８のように論理出力ｏｌを有する場合でも、図１２の出力ブロックを使うことでやはり出力選択ユニット、レジスタブロック、入力選択ユニットをそれぞれ２つずつで済ますことができるが、このとき論理出力ｏｌは図１２のＭＵＸ  ２２ａ（図９には対応するものがない）を通過しなければならない。このように、出力ブロックまで考えると、図５９と図４８とは、遅延において差はない。
【０２３８】
なお、ＡＮＤ  ３１ｋの挿入位置は図５９に示したところ以外に、たとえば配線６１，  ６２，  ６３のいずれであってもよい。このＡＮＤ  ３１ｋは、ＸＯＲ  ３０の一方の入力にプログラマブルに固定論理値を与えることができればどこにあってもよく、またそのような機能がありさえすれば他の論理回路であってもよい。また、ここでは図４８の機能ブロック４を例にＸＯＲ  ３０の一方の入力にプログラマブルに固定論理値を与える手段を説明したが、この手段は他の本発明の機能ブロックにも同様に適用することができる。
【０２３９】
これまで種々の本発明の機能ブロックの実施の形態を説明してきた。これらは、図６の機能ブロックを基本とし、入力ｉ０〜ｉ３、ＭＵＸ  ２２ｃの各々の入力およびＸＯＲ  ３０の一方の入力への信号供給手段やキャリ回路を様々に変えたものである。本明細書ではそれら様々な信号供給手段やキャリ回路を用いた機能ブロックの例の一部を示したに過ぎない。これまで述べてきた様々な信号供給手段やキャリ回路を、本明細書で示した例以外の組み合わせで用いて機能ブロックを構成することは、当該分野の技術を有するものであれば容易にできる。
【０２４０】
１０．第１０実施形態
これまで説明してきた本発明の機能ブロックは、４−２加算器４４（図１４）を実現するために４−２キャリブロック４１とＭＵＸ  ２２ｃを持っていた。ところで、４−２加算器は図１４のように２つの１ビット全加算器で構成されるもの以外にもいろいろな種類のものがある。
【０２４１】
一般に、４−２加算器は、ｉ０，  ｉ１，  ｉ２，  ｉ３，  ｉ４２の５つの入力と、ｏ４２，  ｏｃ，  ｏｓの３つの出力があって、（ｏ４２  ＋  ｏｃ）×２  ＋  ｏｓが５つの入力の和に等しくなるような回路である。その使用法は図１４の場合と同じであるが、入出力関係（真理値表）は回路によって異なる。次に、図１４とは別の種類の４−２加算器を実現することができる機能ブロックについて説明する。
【０２４２】
図６１は、本発明による機能ブロックの第１０実施形態を示す回路図である。機能ブロック４の入力ｉ０，  ｉ１，  ｉ２，  ｉ３は、それぞれ、論理機能生成器４０の入力ｉｎ０，  ｉｎ１，  ｉｎ２，  ｉｎ３、４−２キャリブロック４１の入力ｉｎ０，  ｉｎ１，  ｉｎ２，  ｉｎ３、及びキャリブロック５３の入力ｉｎ０，  ｉｎ１，  ｉｎ２，  ｉｎ３に接続される。論理機能生成器４０の出力ｏｕｔは、キャリブロック５３の入力ｉｎ５およびＸＯＲ  ３０の第一の入力に接続され、かつ機能ブロック４の論理出力ｏｌとなる。
【０２４３】
機能ブロック４の４−２キャリ入力ｉ４２はキャリブロック５３の入力ｉｎ４およびＸＯＲ  ３０の第二の入力に接続される。４−２キャリブロック４１の出力、ＸＯＲ  ３０の出力、キャリブロック５３の出力は、それぞれ機能ブロック４の４−２キャリ出力ｏ４２、加算出力ｏｓ、キャリ出力ｏｃになる。図６１の機能ブロック４を４−２加算器として使用するときは、論理機能生成器４０に図１３に示すような４入力ＸＯＲ  ２４をインプリメントする。
【０２４４】
図６２の（１）と（２）は、それぞれ４−２キャリブロック４１の第１例および第２例を示す回路図であり、図６３の（１）と（２）は、それぞれキャリブロック５３の第１例および第２例を示す回路図である。４−２キャリブロック４１およびキャリブロック５３は、入力ｉ０，  ｉ１，  ｉ２，  ｉ３，  ｉ４２の和が（ｏ４２  ＋  ｏｃ）×２  ＋  ｏｓと等しくなるような回路であれば何でもよい。
【０２４５】
なお、図６１の機能ブロックの入力ｉ０〜ｉ３に、これまで述べてきたような前置ロジックを付加することは、当該分野の技術を有するものであれば容易にできる。
【０２４６】
これまで、４入力の論理機能生成器を一つ含む機能ブロックについて説明してきた。すでに述べたように４入力論理機能生成器の典型例は４入力ＬＵＴ（図１０５）である。
【０２４７】
図６４（１）に示すように、４入力ＬＵＴ  ４０は、二つの３入力ＬＵＴ  ４８とそれらを繋ぐＭＵＸ  ２２とで構成される。さらに、図６４（２）に示すように、３入力ＬＵＴ  ４８は二つの２入力ＬＵＴ  ４９とそれらを繋ぐＭＵＸ  ２２とで構成される。このように一般にＬＵＴは入力数が一つ減ると面積は半分以下になり、また入力から出力までの遅延も短くなる。
【０２４８】
次に、３入力以下の論理機能生成器を使い、かつ４−２加算器を構成できる機能ブロックについて説明する。
【０２４９】
１１．第１１実施形態
１１．１）機能ブロック
図６５は、本発明による機能ブロックの第１１実施形態を示す回路図である。機能ブロック４の入力ｉ０，  ｉ１，  ｉ２，  ｉ３はそれぞれ３入力論理機能生成器４８の入力ｉｎ０とｉｎ１及びＸＯＲ  ３０ｂの２つの入力に接続され、ＸＯＲ  ３０ｂの出力は３入力論理機能生成器４８の入力ｉｎ２に接続される。
【０２５０】
３入力論理機能生成器４８の出力ｏｕｔは、ＭＵＸ  ２２ｃの制御入力およびＸＯＲ  ３０ｄの第一の入力に接続され、かつ機能ブロック４の論理出力ｏｌとなる。機能ブロック４の４−２キャリ入力ｉ４２はＭＵＸ  ２２ｃの１−入力およびＸＯＲ  ３０ｄの第二の入力に接続される。ＭＵＸ２２ｃの０−入力には機能ブロック４の入力ｉ０が接続される。ＸＯＲ  ３０ｄの出力とＭＵＸ  ２２ｃの出力は、それぞれ機能ブロック４の加算出力ｏｓとキャリ出力ｏｃになる。
【０２５１】
ＭＵＸ  ２２ｊは機能ブロック４の４−２キャリ出力ｏ４２を生成する。ＭＵＸ  ２２ｊはＸＯＲ  ３０ｂの出力によって制御され、０−入力は入力ｉ３（またはｉ２）に接続され、１−入力は入力ｉ１に接続される。４−２キャリ出力ｏ４２を生成する回路は、入力ｉ１，  ｉ２，  ｉ３に関するキャリ信号（３入力を加算する際に生じる桁上げ信号）を生成するものであれば何でもよいが、ＭＵＸ  ２２ｊはそのもっとも好ましい例である。
【０２５２】
図６５に示す機能ブロックは、論理モードと４２加算器モードの二通りの動作形態を有する。論理モードでは、図６５の入力ｉ３に固定論理値０を与え、機能ブロック４をｉ０，  ｉ１，  ｉ２を入力としｏｌを出力とする３入力論理回路として使用する。このとき機能ブロック４は、３入力論理機能生成器４８によって実現できる任意の論理回路として使用することができる。
【０２５３】
４２加算器モードは、図６５の機能ブロックを４−２加算器として使用するものである。このためには、３入力論理機能生成器４８にｉｎ０，  ｉｎ１，  ｉｎ２を入力とする３入力ＸＯＲをインプリメントする。このとき機能ブロック４は、ｉ０，  ｉ１，  ｉ２，  ｉ３を引数入力、ｉ４２を４−２キャリ入力、ｏ４２を４−２キャリ出力、ｏｓを加算出力、ｏｃをキャリ出力とする４−２加算器として機能する。
【０２５４】
図６５に示す機能ブロックは、３入力論理機能生成器４８を一つ含む。すでに説明したように、３入力論理機能生成器は４入力論理機能生成器に比べて半分以下の面積であるため、図６５の機能ブロックは、これまで述べてきた４入力論理機能生成器を含む機能ブロックに比べて面積が小さいという特長がある。
【０２５５】
なお、４入力論理機能生成器４０を使った図６の機能ブロックと比べると、図６５の機能ブロックは３入力論理機能生成器４８の入力にＸＯＲ  ３０ｂが付加されているものの、入力から出力までの遅延はどちらもあまり変わらない。それは、図６５の機能ブロックにおいてＸＯＲ  ３０ｂを通ることによる遅延増加と、４入力論理機能生成器を３入力論理機能生成器に置き換えたことによる遅延減少とがほぼ相殺するからである。
【０２５６】
１１．２）第１１実施形態の変形例
図６６は、本発明による機能ブロックの第１１実施形態の変形例を示す回路図である。これは、図６５に示す構成に、本発明の第３実施形態の変形例（図４２）、第５実施形態の第１変形例（図４８）および第９実施形態（図５９）と同様な変更を施したものである。
【０２５７】
具体的には、図６６におけるＭＵＸ  ２２ａ，  ２２ｆ，  ２２ｍ、ＡＮＤ３１ｄおよびコンフィギュレーションメモリ１３ｄは、第３実施形態の変形例（図４２）におけるそれらと同じ機能を図６５の機能ブロックに付加するものである。また、図６６におけるリップルキャリブロック５０、ＭＵＸ  ２２ｈおよびコンフィギュレーションメモリ１３ｈは、第５実施形態の第１変形例（図４８）におけるそれらと同じ機能を図６５の機能ブロックに付加するものである。さらに、図６６におけるＡＮＤ  ３１ｋおよびコンフィギュレーションメモリ１３ｋは、第９実施形態（図５９）におけるそれらと同じ機能を図６５の機能ブロックに付加するものである。
【０２５８】
４入力論理機能生成器を含む機能ブロックの様々なバリエーションについてはすでに詳しく述べた。それらは、図６の機能ブロックを基本とし、入力ｉ０乃至ｉ３、ＭＵＸ  ２２ｃの各々の入力およびＸＯＲ  ３０の一方の入力への信号供給手段やキャリ回路を様々に変えたものである。図６５の入力ｉ０乃至ｉ３およびＭＵＸ  ２２ｃの各々の入力は図６のそれらに対応し、図６５のＸＯＲ  ３０ｄは図６のＸＯＲ  ３０に対応する。このため、図６の機能ブロックに対して施した様々な変更は図６５の機能ブロックに対しても同様に施すことができる。図６６は、その一例を示したに過ぎない。
【０２５９】
なお、図６５の機能ブロックに高速キャリ回路を付加する場合、リップルキャリブロック５０の入力ａあるいは図５５および図５７の機能ブロック４ａの中のＡＮＤ  ３１の一方の入力は、図６６に示したようにＸＯＲ  ３０ｂの出力に接続されるのが好ましが、ｉ１〜ｉ３のいずれかの信号が与えられてもよい。
【０２６０】
１２．第１２実施形態
１２．１）機能ブロック
図６７は、本発明による機能ブロックの第１２実施形態を示す回路図である。機能ブロック４の入力ｉ０，  ｉ１，  ｉ２，  ｉ３はＸＯＲ  ３０ａと３０ｂの入力に接続され、ＸＯＲ  ３０ａと３０ｂの出力は３入力論理機能生成器４８の入力ｉｎ１とｉｎ２及びＸＯＲ  ３０ｃの入力に接続され、ＸＯＲ  ３０ｃの出力ｏｌはＭＵＸ  ２２ｃの制御入力に接続される。機能ブロック４の４−２キャリ入力ｉ４２はＭＵＸ  ２２ｃとＭＵＸ  ２２ｋの１−入力に接続され、ＭＵＸ  ２２ｃの０−入力には機能ブロック４の入力ｉ０が接続され、ＭＵＸ  ２２ｋの０−入力には機能ブロック４の入力ｉ４が接続され、ＭＵＸ  ２２ｋの出力は３入力論理機能生成器４８の入力ｉｎ０に接続される。３入力論理機能生成器４８の出力とＭＵＸ２２ｃの出力は、それぞれ機能ブロック４の加算出力ｏｓとキャリ出力ｏｃになる。
【０２６１】
なお、ＭＵＸ  ２２ｋは図６７に示された箇所の代わりに、図６７の６１の箇所に挿入してもよい。ＭＵＸ  ２２ｊは機能ブロック４の４−２キャリ出力ｏ４２を生成する。ＭＵＸ  ２２ｊはＸＯＲ  ３０ｂの出力によって制御され、０−入力は入力ｉ３（またはｉ２）に接続され、１−入力は入力ｉ１に接続される。４−２キャリ出力ｏ４２を生成する回路は、入力ｉ１，  ｉ２，  ｉ３に関するキャリ信号（３入力を加算する際に生じる桁上げ信号）を生成するものであれば何でもよいが、ＭＵＸ  ２２ｊはそのもっとも好ましい例である。
【０２６２】
図６７の機能ブロックは、論理モードと４２加算器モードの二通りの動作形態を有する。論理モードでは、図６７の入力ｉ１とｉ３に固定論理値０を与え且つコンフィギュレ―ションメモリ１３ｋに論理値０を保存して、機能ブロック４をｉ０，  ｉ２，  ｉ４を入力としｏｓを出力とする３入力論理回路として使用する。このとき機能ブロック４は、３入力論理機能生成器４８によって実現できる任意の論理回路として使用することができる。
【０２６３】
４２加算器モードは、図６７の機能ブロックを４−２加算器として使用するものである。このためには、３入力論理機能生成器４８にｉｎ０，  ｉｎ１，  ｉｎ２を入力とする３入力ＸＯＲをインプリメントし、且つコンフィギュレーションメモリ１３ｋに論理値１を保存する。このとき機能ブロック４は、ｉ０，  ｉ１，  ｉ２，  ｉ３を引数入力、ｉ４２を４−２キャリ入力、ｏ４２を４−２キャリ出力、ｏｓを加算出力、ｏｃをキャリ出力とする４−２加算器として機能する。
【０２６４】
図６７の機能ブロックは３入力論理機能生成器４８を一つ含む。すでに説明したように３入力論理機能生成器は４入力論理機能生成器に比べて半分以下の面積であるため、図６７の機能ブロックは、４入力論理機能生成器を含む機能ブロックに比べて面積が小さいという特長がある。
【０２６５】
また、図６７の機能ブロック４の入力ｉ０〜ｉ３から出力ｏｓまでの遅延は、ＸＯＲと３入力論理機能生成器の遅延の和であるが、他方これまで述べてきた機能ブロックの対応する遅延はＸＯＲと４入力論理機能生成器の遅延の和（本発明の機能ブロックの第１１の実施の形態以外の場合）あるいはＸＯＲ２段と３入力論理機能生成器の遅延の和（本発明の機能ブロックの第１１の実施の形態の場合）である。このため、図６７の機能ブロック４はこれまで述べてきた機能ブロックより高速であるという特長もある。
【０２６６】
１２．２）第１２実施形態の変形例
図６８は、本発明による機能ブロックの第１２実施形態の変形例を示す回路図である。これは、図６７に示す第１２実施形態に、本発明の第３実施形態の変形例（図４２）および第５実施形態の第１変形例（図４８）と同様な変更を施したものである。
【０２６７】
具体的には、図６８におけるＭＵＸ  ２２ａ，  ２２ｆ，  ２２ｍ、ＡＮＤ３１ｄおよびコンフィギュレーションメモリ１３ｄは、第３実施形態の変形例（図４２）におけるそれらと同じ機能を図６７の機能ブロックに付加するものである。また、図６８におけるリップルキャリブロック５０、ＭＵＸ  ２２ｈおよびコンフィギュレーションメモリ１３ｈは、第５実施形態の第１変形例（図４８）におけるそれらと同じ機能を図６７の機能ブロックに付加するものである。なお、ＭＵＸ  ２２ｋは図６８に示された箇所の代わりに、図６８に示す６１，  ６２，  ６３のいずれかの箇所に挿入してもよい。
【０２６８】
４入力論理機能生成器を含む機能ブロックの様々なバリエーションについてはすでに詳しく述べた。それらは、図６の機能ブロックを基本とし、入力ｉ０〜ｉ３、ＭＵＸ  ２２ｃの各々の入力およびＸＯＲ  ３０の一方の入力への信号供給手段やキャリ回路を様々に変えたものである。
【０２６９】
図６７の入力ｉ０〜ｉ３およびＭＵＸ  ２２ｃの各々の入力は図６のそれらに対応し、図６７の３入力論理機能生成器４８の入力ｉｎ０は図６のＸＯＲ  ３０の一方の入力に対応する。このため、図６の機能ブロックに対して施した様々な変更は図６７の機能ブロックに対しても同様に施すことができる。図６８は、その一例を示したに過ぎない。ただしこのような変更を行う場合、図６の機能ブロック４におけるｏｓとｏｌは、図６７の機能ブロック４では３入力論理機能生成４８の出力とＸＯＲ  ３０ｃの出力にそれぞれ対応することに留意する必要がある。
【０２７０】
なお、図６７の機能ブロックに高速キャリ回路を付加する場合、リップルキャリブロック５０の入力ａ，  ｂあるいは図５５および図５７の機能ブロック４ａの中のＡＮＤ  ３１の入力は、図６８に示したようにＸＯＲ  ３０ａと３０ｂの出力に接続されるのが好ましいが、ｉ０乃至ｉ３の信号が与えられてもよい。
【０２７１】
また、図６５〜図６８には３入力論理機能生成器を含む機能ブロックの例を示したが、これらの機能ブロックにおいて３入力論理機能生成器を４入力論理機能生成器に置き換えることは容易に可能である。
【０２７２】
１３．第１３実施形態
１３．１）機能ブロック
図６９は、本発明による機能ブロックの第１３実施形態を示す回路図である。機能ブロック４は、二つの半機能ブロック４＿０と４＿１、およびそれらを繋ぐＭＵＸ  ２２ｑと２２ｒから成る。
【０２７３】
半機能ブロック４＿０は、第１の論理出力を生成する第１の２入力論理機能生成器４９と、第１の加算出力を生成する第１のＸＯＲ  ３０と、４−２キャリ出力ｏ４２を生成する第１のＭＵＸ  ２２ｃと、第１のリップルキャリ出力ｏｒｃ０を生成する第１のリップルキャリブロック５０と、第１の２入力論理機能生成器４９の入力ｉｎ０と第１のＭＵＸ  ２２ｃの０−入力と第１のリップルキャリブロック５０のｂ−入力に信号を供給する第１のＭＵＸ  ２２ｐおよびそれを制御する第１のコンフィギュレーションメモリ１３ｐと、第１のＸＯＲ  ３０の第１の入力と第１のＭＵＸ  ２２ｃの１−入力に信号を供給する第１のＭＵＸ  ２２ｈおよびそれを制御する第１のコンフィギュレーションメモリ１３ｈから成る。
【０２７４】
第１の論理出力は、第１のＭＵＸ  ２２ｃの制御入力、第１のＸＯＲ  ３０の第２の入力、第１のリップルキャリブロック５０のｄ−入力に供給される。第１のリップルキャリブロック５０のａ−入力は第１の２入力論理機能生成器４９の入力ｉｎ１に接続される。第１のリップルキャリ入力ｉｒｃ０は第１のリップルキャリブロック５０のｃ−入力と第１のＭＵＸ  ２２ｈの１−入力に供給される。
【０２７５】
半機能ブロック４＿１は、第２の論理出力を生成する第２の２入力論理機能生成器４９と、第２の加算出力を生成する第２のＸＯＲ  ３０と、キャリ出力ｏｃを生成する第２のＭＵＸ  ２２ｃと、第２のリップルキャリ出力ｏｒｃ１を生成する第２のリップルキャリブロック５０と、第２の２入力論理機能生成器４９の入力ｉｎ１と第２のリップルキャリブロック５０のａ−入力に信号を供給する第２のＭＵＸ  ２２ｐおよびそれを制御する第２のコンフィギュレーションメモリ１３ｐと、第２のＸＯＲ  ３０の第１の入力と第２のＭＵＸ  ２２ｃの１−入力に信号を供給する第２のＭＵＸ  ２２ｈおよびそれを制御する第２のコンフィギュレーションメモリ１３ｈから成る。
【０２７６】
第２の論理出力は、第２のＭＵＸ  ２２ｃの制御入力、第２のＸＯＲ  ３０の第２の入力、第２のリップルキャリブロック５０のｄ−入力に供給される。第２のリップルキャリブロック５０のｂ−入力と第２のＭＵＸ  ２２ｃの０−入力は第２の２入力論理機能生成器４９の入力ｉｎ０に接続される。第２のリップルキャリ入力ｉｒｃ１は第２のリップルキャリブロック５０のｃ−入力と第２のＭＵＸ  ２２ｈの１−入力に供給される。
【０２７７】
４−２キャリ入力ｉ４２は第２のＭＵＸ  ２２ｈの０−入力に、入力ｉ０は第２の２入力論理機能生成器４９の入力ｉｎ０と第１のＭＵＸ  ２２ｐの０−入力に、入力ｉ１は第１のＭＵＸ  ２２ｈの０−入とＭＵＸ  ２２ｑの制御入力に、入力ｉ２は第１のＭＵＸ  ２２ｐの１−入に、入力ｉ３は第１の２入力論理機能生成器４９の入力ｉｎ１と第２のＭＵＸ  ２２ｐの０−入力に、それぞれ供給される。
【０２７８】
ＭＵＸ２２  ｑの０−入力と１−入力にはそれぞれ第１と第２の論理出力が供給され、ＭＵＸ  ２２ｒの０−入力と１−入力にはそれぞれ第１と第２の加算出力が供給され、第２のＭＵＸ  ２２ｐの１−入力には第１の加算出力が供給される。機能ブロック４の加算出力ｏｓと論理出力ｏｌはそれぞれＭＵＸ  ２２ｒの出力とＭＵＸ  ２２ｑの出力によって与えられる。
【０２７９】
１３．２）動作モード
図６９に示す機能ブロックは、論理モード、４２加算器モードおよび条件キャリモードの三通りの動作形態を有する。
【０２８０】
論理モード
論理モードでは、図６９の第１と第２のコンフィギュレーションメモリ１３ｐに論理値０を保存する。このとき、図６４（２）との比較からわかるように、第１と第２の２入力論理機能生成器４９およびＭＵＸ  ２２ｑは、ｉ０，  ｉ１，  ｉ３を入力としｏｌを出力とする３入力論理機能生成器として機能する。（ただし、２入力論理機能生成器はＬＵＴであるとする。）このように、論理モードでは図６９の機能ブロックを任意の３入力論理回路として使うことができる。
【０２８１】
４２加算器モード
４２加算器モードでは、第１と第２の２入力論理機能生成器４９に２入力ＸＯＲをインプリメントし、第１と第２のコンフィギュレーションメモリ１３ｐに論理値１を保存し、第１と第２のコンフィギュレーションメモリ１３ｈに論理値０を保存し、ＭＵＸ  ２２ｒの制御入力ｉｃｃに固定論理値１を与える。このとき機能ブロック４は、ｉ０，  ｉ１，  ｉ２，  ｉ３を引数入力、ｉ４２を４−２キャリ入力、ｏ４２を４−２キャリ出力、ｏｓを加算出力、ｏｃをキャリ出力とする４−２加算器として機能する。
【０２８２】
条件キャリモード
条件キャリモードでは、第１と第２の２入力論理機能生成器４９に２入力ＸＯＲをインプリメントし、第１と第２のコンフィギュレーションメモリ１３ｐに論理値０を保存し、第１と第２のコンフィギュレーションメモリ１３ｈに論理値１を保存する。このとき半機能ブロック４＿０は、ｉ０とｉ３を引数入力、ｉｒｃ０をリップルキャリ入力、ｏｒｃ０をリップルキャリ出力、第１の加算出力を加算出力とする１ビット全加算器として機能する。同時に、半機能ブロック４＿１は、ｉ０とｉ３を引数入力、ｉｒｃ１をリップルキャリ入力、ｏｒｃ１をリップルキャリ出力、第２の加算出力を加算出力とする１ビット全加算器として機能する。
【０２８３】
このように共通の引数入力と独立のリップルキャリ経路を有する２つの全加算器は、高速な条件キャリ加算器として使用することができる。そのために、図６９の機能ブロック４を含むプログラマブル機能セル５２を、図７０に示すように接続する。
【０２８４】
図７０は、条件キャリ加算器を構成するための複合機能セルを示すブロック図である。複合機能セル７１は、複数（たとえば８個）のプログラマブル機能セル５２を備える。各プログラマブル機能セル５２の４−２キャリ出力ｏ４２、第１のリップルキャリ出力ｏｒｃ０、第２のリップルキャリ出力ｏｒｃ１を上位のプログラマブル機能セル５２の４−２キャリ入力ｉ４２、第１のリップルキャリ入力ｉｒｃ０、第２のリップルキャリ入力ｉｒｃ１にそれぞれ接続し、最上位のプログラマブル機能セル５２の第１のリップルキャリ出力ｏｒｃ０と第２のリップルキャリ出力ｏｒｃ１をＭＵＸ  ２２の０−入力と１−入力にそれぞれ接続し、ＭＵＸ  ２２の制御入力と各プログラマブル機能セル５２の入力ｉｃｃに共通信号ｉｃｃを与える。
【０２８５】
図７１は、複合機能セル７１をカスケード接続したブロック図である。このような構成によって、通常のリップルキャリより高速な条件キャリを有する多ビット全加算器を実現できる。図７１の各複合機能セル７１に含まれる各機能ブロックのｉ０とｉ３にそれぞれ第１と第２の多ビット引数入力の各ビットを与え、図７１の最下位の複合機能セル７１のｉｃｃにキャリ入力を与えると、各機能ブロックの加算出力ｏｓに加算結果の各ビットが出力される。
【０２８６】
図６９の機能ブロック４は二つの２入力論理機能生成器４９と一つのＭＵＸ  ２２ｑを含み、これは機能的にも面積的にも３入力論理機能生成器一つ分に相当する。３入力論理機能生成器は４入力論理機能生成器に比べて半分以下の面積であるため、図６９の機能ブロックは、４入力論理機能生成器を含む機能ブロックに比べて面積が小さいという特長がある。
【０２８７】
１３．３）第１３実施形態の変形例
図７２は、本発明による機能ブロックの第１３実施形態の変形例を示す回路図である。これは、上記第１３実施形態（図６９）に、第３実施形態の変形例（図４２）と同様な変更を施し、かつ図６９のＭＵＸ  ２２ｑを省いてＭＵＸ  ２２ｒがその機能を兼用するように変更したものである。
【０２８８】
具体的には、図７２におけるＭＵＸ  ２２ａ，  ２２ｆ，  ２２ｍ、半機能ブロック４＿１の中のＡＮＤ３１とコンフィギュレーションメモリ１３ｄは、第３実施形態の変形例（図４２）におけるそれらと同じ機能を図６９の機能ブロックに付加するものである。すなわち、図７２の機能ブロック４におけるＭＵＸ  ２２ａ，  ２２ｆ，  ２２ｍは第２のＭＵＸ  ２２ｃを経由してｏｃに出力する４入力ＭＵＸを構成することができる。
【０２８９】
また、４−２加算器モードでＭＵＸ  ２２ａと２２ｆをＡＮＤとして使用することにより、図７２の機能ブロック４を２ＡＮＤ４−２加算器（図３３）として使うことができる。
【０２９０】
図７２において、４−２加算器モードと条件キャリモードでは、半機能ブロック４＿０と４＿１の中のコンフィギュレーションメモリ１３ｋおよびコンフィギュレーションメモリ１３ｓに論理値１を保存する。他方、論理モードではそれらに論理値０を保存する。このとき、第１の論理出力はそのまま第１の加算出力に、第２の論理出力はそのまま第２の加算出力にそれぞれ出力され、ＭＵＸ  ２２ｒはｉ１によって制御される。このため、図７２のＭＵＸ  ２２ｒは図６９のＭＵＸ  ２２ｑと同じ役割を果たし、加算出力ｏｓは論理出力となる。
【０２９１】
図７２は、図６９の機能ブロックに施し得る多様な変更の一例を示したに過ぎない。当該分野の技術者であれば、本明細書に開示された他の機能ブロックへの変更例を図６９の機能ブロックに適用することは容易である。また、図６９および図７２には２入力論理機能生成器を含む機能ブロックの例を示したが、これらの機能ブロックにおいて２入力論理機能生成器を３入力論理機能生成器に置き換えることもまた容易である。
【０２９２】
これまで論理機能生成器を含む機能ブロックについて説明してきた。以下では論理機能生成器を含まない機能ブロックについて説明する。
【０２９３】
１４．第１４実施形態
１４．１）機能ブロック
図７３は、本発明による機能ブロックの第１４実施形態を示す回路図である。機能ブロック４において、入力ｉ００，  ｉ０１，  ｉ０２はそれぞれＭＵＸ  ２２ａの０−入力，  １−入力，  制御入力に接続され、ＭＵＸ  ２２ａの出力はＸＯＲ  ３０ａの第一の入力に接続され、入力ｉ０３はＸＯＲ  ３０ａの第二の入力に接続される。入力ｉ１０，  ｉ１１，  ｉ１２はそれぞれＭＵＸ  ２２ｂの０−入力，  １−入力，  制御入力に接続され、ＭＵＸ  ２２ｂの出力はＸＯＲ  ３０ｂの第一の入力に接続され、入力ｉ１３はＸＯＲ  ３０ａの第二の入力に接続される。
【０２９４】
４−２キャリ出力ｏ４２を出力するＭＵＸ  ２２ｊの０−入力，  １−入力，  制御入力にはそれぞれ入力ｉ１３，  入力ｉ０３，  ＸＯＲ  ３０ｂの出力が接続され、ＸＯＲ  ３０ｃの第一と第二の入力にはそれぞれＸＯＲ  ３０ａと３０ｂの出力が接続される。ＭＵＸ２２ｈの０−入力，  １−入力，  制御入力にはそれぞれ入力ｉ４０，  ４−２キャリ入力ｉ４２，  コンフィギュレーションメモリ１３ｈの出力が接続され、キャリ出力ｏｃを出力するＭＵＸ  ２２ｃの０−入力，  １−入力，  制御入力にはそれぞれＭＵＸ  ２２ａ，  ＭＵＸ  ２２ｈ，  ＸＯＲ  ３０ｃの出力が接続され、加算出力ｏｓを出力するＸＯＲ  ３０ｄの第一と第二の入力にはそれぞれＸＯＲ  ３０ｃとＭＵＸ  ２２ｈの出力が接続される。
【０２９５】
図７３の機能ブロック４は、図１のようなプログラマブル機能セル１の中で使われる。ただし、入力選択ユニット３＿ｋ（ｋは整数）は９つ用意され、その各々の出力は図７３の入力ｉ００，  ｉ０１，  ｉ０２，  ｉ０３，  ｉ１０，  ｉ１１，  ｉ１２，  ｉ１３，  ｉ４０にそれぞれ接続される。また、このときの入力選択ユニット３＿ｋはすべて固定値付き入力選択ユニットである。図７３の機能ブロック４には論理出力ｏｌがないので、出力ブロック５（図９）においてもｏｌに対応する回路５＿２，  ３ａ，  ４２ａは除かれる。
【０２９６】
１４．２）動作モード
次に、本実施形態における動作と効果について説明する。本実施形態には、全加算器モードと４−２加算器モードの二通りの動作形態がある。
【０２９７】
全加算器モード
全加算器モードで使うためには、コンフィギュレーションメモリ１３ｈに論理値０を保存し、かつ入力ｉ０３に固定論理値０を与える。
【０２９８】
図７４（１）は、全加算器モードにおける図７３の機能ブロックの等価回路を示す図である。この回路は、１ビット全加算器４３の各引数入力ａ，  ｂに、前置ロジックとしてＭＵＸ  ２２ａとＭＵＸ−ＸＯＲ  ５４の出力をそれぞれ接続したものである。すでに図２８に示したように、ＭＵＸは入力の設定に応じて種々の論理回路を実現できる。
【０２９９】
図７５は、ＭＵＸ−ＸＯＲ  ５４の多様な論理機能を示すテーブルである。図７５に示すように、ＭＵＸの出力にＸＯＲの一方の入力を接続したＭＵＸ−ＸＯＲ  ５４は、入力の設定に応じて非常に多様な論理回路を実現できる。とくに、図７５はすべての２入力１出力論理回路を含んでいる。このように、図７４（１）の回路は、１ビット全加算器の入力に多様な論理回路を付加した回路を実現でき、種々の算術演算に有用である。
【０３００】
また、図７６に示すように、１ビット全加算器もキャリ出力ｏｃと加算出力ｓの両方を利用することで、入力の設定に応じていろいろな論理回路を実現できる。（ここで、図７６の入／出力の記号ａ，  ｂ，  ｉｃ，  ｏｃ，  ｓは図７４（１）の１ビット全加算器４３に記されたものに準ずる。）  このような１ビット全加算器と前置ロジックの論理的多様性を合わせて使うことによって、図７４（１）の回路は非常に多様な論理回路を実現することができる。すなわち、図７３の機能ブロック４における全加算器モードは、算術演算のみならず論理演算にも優れている。この性質によって、図７３の機能ブロック４は、再構成可能デバイスの論理機能構成単位としての役目を十分に果たすことができる。
【０３０１】
４−２加算器モード
一方、図７３の機能ブロック４はコンフィギュレーションメモリ１３ｈに論理値１を保存すると４−２加算器モードになる。
【０３０２】
図７４（２）は、４−２加算器モードにおける図７３の機能ブロックの等価回路を示す図である。この回路は、４−２加算器４４の入力ｉ０，  ｉ３にそれぞれＭＵＸ  ２２ａ，  ２２ｂの出力を接続したものである。図２８に示したように、ＭＵＸは前置ロジックとしていろいろな論理機能を実現できる。例えば、それをＡＮＤとして使うと図７４（２）は図３３の２ＡＮＤ４−２加算器２７と等価になり、高性能乗算器を構成するのに使うことができる（図３４）。
【０３０３】
図７３の機能ブロック４は、図３２においてＡＮＤ  ３１をＭＵＸに置換した機能ブロックに近い機能を持つ。前者の方が論理的多様性は劣るものの、論理機能生成器４０を持たないため面積、遅延ともに小さいという利点がある。
【０３０４】
１５．第１５実施形態
図７７は、本発明による機能ブロックの第１５実施形態を示す回路図である。これは、図７３の機能ブロック４に、ＭＵＸ  ２２ｄとそれを制御するコンフィギュレーションメモリ１３ｄ、およびＭＵＸ  ２２ｇとそれを制御するコンフィギュレーションメモリ１３ｇを加えたものである。ＭＵＸ  ２２ｇの０−入力と１−入力にはそれぞれＭＵＸ  ２２ｂの出力とｉ４０が接続され、ＭＵＸ  ２２ｇの出力はＭＵＸ  ２２ｈの０−入力に接続される。ＭＵＸ  ２２ｄは、ＸＯＲ  ３０ｃの出力と制御信号ｉ５０とから一方を選択してＭＵＸ  ２２ｃの制御入力に供給する。
【０３０５】
図７７の機能ブロック４は、コンフィギュレーションメモリ１３ｄと１３ｇに論理値１を保存したとき、図７３の機能ブロック４と等価になる。他方、コンフィギュレーションメモリ１３ｄと１３ｇと１３ｈに論理値０を保存したとき、ＭＵＸ  ２２ａ，  ２２ｂ，  ２２ｃはｏｃを出力とする４入力ＭＵＸを形成する。
【０３０６】
図７７の機能ブロック４は、図４１のそれに近い機能を持つ。前者の方が論理的多様性は劣るものの、論理機能生成器４０を持たないため面積、遅延ともに小さいという利点がある。
【０３０７】
図７８は、本発明による機能ブロックの第１５実施形態の変形例を示す回路図である。これは、図７３の機能ブロック４に、ＭＵＸ  ２２ｍとＡＮＤ  ３１ｄおよびコンフィギュレーションメモリ１３ｄを加えたものである。ＭＵＸ  ２２ｍの１−入力と０−入力にはそれぞれＭＵＸ  ２２ａと２２ｂの出力が接続され、ＭＵＸ  ２２ｍの出力はＭＵＸ  ２２ｃの０−入力に接続され、ＭＵＸ  ２２ｍは制御入力ｉ５０で制御される。ＡＮＤ  ３１ｄはＸＯＲ  ３０ｃとコンフィギュレーションメモリ１３ｄの出力を入力とし、ＡＮＤ  ３１ｄの出力はＭＵＸ  ２２ｃを制御する。
【０３０８】
図７８の機能ブロック４は、ｉ５０として論理値１を与え、かつコンフィギュレーションメモリ１３ｄに論理値１を保存したとき、図７３の機能ブロック４と等価になる。一方、コンフィギュレーションメモリ１３ｄに論理値０を保存したとき、ＭＵＸ  ２２ａ，  ２２ｂ，  ２２ｍはｏｃを出力とする４入力ＭＵＸを形成する。図７８の機能ブロック４は、図４２のそれに近い機能を持つ。前者の方が論理的多様性は劣るものの、論理機能生成器４０を持たないため面積、遅延ともに小さいという利点がある。
【０３０９】
１６．第１６実施形態
図７９は、本発明による機能ブロックの第１６実施形態を示す回路図である。これは、図７３の機能ブロック４に、図４５と同様の８入力ＭＵＸを実現できる変更を施したものである。図７９の機能ブロック４は、ｉ５１として論理値０を与え、かつコンフィギュレーションメモリ１３ｄと１３ｇにともに論理値１を保存したとき、図７３のｉ０３とｉ１３にＭＵＸを加えたものと等価な回路になる。
【０３１０】
他方、コンフィギュレーションメモリ１３ｄと１３ｇにともに論理値０を保存したとき、ＭＵＸ  ２２ａ，  ２２ｂ，  ２２ｅ，  ２２ｆ，  ２２ｍ，  ２２ｎ，  ２２ｃはｏｃを出力とする８入力ＭＵＸを形成する。図７９の機能ブロック４は、図４５のそれに近い機能を持つ。前者の方が論理的多様性は劣るものの、論理機能生成器４０を持たないため面積、遅延ともに小さいという利点がある。
【０３１１】
図８０は、本発明による機能ブロックの第１６実施形態の変形例を示す回路図である。これは、図７３の機能ブロック４に、図４６と同様の８入力ＭＵＸを実現できる変更を施したものである。図８０の機能ブロック４は、ｉ５０とｉ５１に論理値０を与え、かつコンフィギュレーションメモリ１３ｄに論理値１を保存したとき、図７３のｉ０３とｉ１３にＭＵＸを加えたものと等価な回路になる。
【０３１２】
他方、コンフィギュレーションメモリ１３ｄに論理値０を保存したとき、ＭＵＸ  ２２ａ，  ２２ｂ，  ２２ｅ，  ２２ｆ，  ２２ｍ，  ２２ｎ，  ２２ｇはｏｃを出力とする８入力ＭＵＸを形成する。図８０の機能ブロック４は、図４６のそれに近い機能を持つ。前者の方が論理的多様性は劣るものの、論理機能生成器４０を持たないため面積、遅延ともに小さいという利点がある。
【０３１３】
１７．第１７実施形態
図８１は、本発明による機能ブロックの第１７実施形態を示す回路図である。これは、図７３の機能ブロック４に、ＭＵＸ  ２２ｋとそれを制御するコンフィギュレーションメモリ１３ｋを加えたものである。
【０３１４】
図８１の機能ブロック４は、コンフィギュレーションメモリ１３ｋに論理値１を保存したとき、図７３と等価になる。
【０３１５】
一方、コンフィギュレーションメモリ１３ｋと１３ｈにともに論理値０を保存したとき、図８１の機能ブロック４は、図８２の回路と等価になる。
【０３１６】
図８２は、図８１の機能ブロック４の等価回路の１つを示す図であり、１ビット全加算器４３の各引数入力ａ，  ｂに、前置ロジックとしてＭＵＸ−ＸＯＲ  ５４ａと５４ｂの出力をそれぞれ接続したものである。
【０３１７】
すでに説明したように、ＭＵＸ−ＸＯＲはＭＵＸより多様な論理回路を実現できるため、図８２の回路は図７４（１）よりさらに多様な論理回路をインプリメントできる。
【０３１８】
図８３は、図８２の回路で実現できる使用頻度の高い論理回路を示す図である。図８２の回路は図８３に示すタイプの論理回路をすべてインプリメントできるという特長を持つ。ここで５５ａ，  ５５ｂ，  ５５ｃは任意の２入力１出力論理回路である。このタイプの論理回路の使用頻度は他のタイプのものに比べて格段に高いので、それを一つの機能ブロックで実現できることは、再構成可能デバイスの論理機能構成単位として非常に有用な特性である。
【０３１９】
１８．第１８実施形態
図８４は、本発明による機能ブロックの第１８実施形態を示す回路図である。これは、図７８の機能ブロック４に、ＭＵＸ  ２２ｋとそれを制御するコンフィギュレーションメモリ１３ｋを加えたものである。図８４の機能ブロック４は、コンフィギュレーションメモリ１３ｋに論理値１を保存したとき、図７８と等価になる。
【０３２０】
一方、コンフィギュレーションメモリ１３ｋ，  １３ｄ，  １３ｈにそれぞれ論理値０，  １，  ０を保存し、制御入力ｉ５０として論理値１を与えたとき、図８４の機能ブロック４は、図８２の回路と等価になる。これらのモードによって、図８４の機能ブロック４は４入力ＭＵＸを実現でき、かつ大きな論理的多様性を持つ。同様な仕方で、図７９あるいは図８０の機能ブロック４においても、ＭＵＸ  ２２ｋとそれを制御するコンフィギュレーションメモリ１３ｋを加えて大きな論理的多様性を持たせることができる。
【０３２１】
１９．第１９実施形態
図８５は、本発明による機能ブロックの第１９実施形態を示す回路図である。これは、図７３の機能ブロック４に図４７と同様な方法でリップルキャリブロック５０を加えて、高速なリップルキャリ伝搬を可能にしたものである。このリップルキャリ機能を使用するときはコンフィギュレーションメモリ１３ｋに論理値１を保存する。このとき図８５の機能ブロック４は、図８２においてｉ４０をリップルキャリ入力ｉｒｃに、ｏｃをリップルキャリ出力ｏｒｃにそれぞれ置き換えた回路と等価になる。
【０３２２】
また図８５の機能ブロック４は、コンフィギュレーションメモリ１３ｋに論理値０を保存すると、図７３の機能ブロック４と等価になる。本発明の他の機能ブロック（本発明の機能ブロックの第１５乃至第１８の実施の形態およびその変形例）に本例と同様にリップルキャリブロック５０を設けることは、当該分野の技術を有するものであれば本明細書で開示された情報から容易に構成できる。
【０３２３】
図８６は、本発明による機能ブロックの第１９実施形態の変形例を示す回路図である。これは、図７３の機能ブロック４に図４８と同様な方法でリップルキャリブロック５０を加えて、高速なリップルキャリ伝搬を可能にしたものである。このリップルキャリ機能を使用するときは、メモリ付き３入力ＭＵＸ  ２３をコンフィギュレーションして入力ｃをｏｕｔに出力するようにする。このとき図８６の機能ブロック４は、図８２においてｉ４０をリップルキャリ入力ｉｒｃに、ｏｃをリップルキャリ出力ｏｒｃにそれぞれ置き換えた回路と等価になる。
【０３２４】
また図８６の機能ブロック４は、メモリ付き３入力ＭＵＸ  ２３で入力ａ
またはｂを選択すると、それぞれ図７３のＭＵＸ  ２２ｈで０−入力または１−入力を選択した回路と等価になる。
【０３２５】
本発明の他の機能ブロック（本発明の機能ブロックの第１５〜第１８の実施の形態およびその変形例）に本実施形態と同様にリップルキャリブロック５０を設けることは、当該分野の技術を有するものであれば本明細書で開示された情報から容易に構成できる。
【０３２６】
２０．第２０実施形態
図８７は、本発明による機能ブロックの第２０実施形態を示す回路図である。本実施形態は、機能ブロック４ａおよび機能ブロック４ｂで構成されている複合機能ブロックである。各々の機能ブロックは、図７３の機能ブロック４に、図５５と同様の２ビットキャリルックアヘッド
機能を付加したものである。
【０３２７】
２ビットキャリルックアヘッド機能を使用するためには、図８７の２つの機能ブロック４ａ，  ４ｂにおいて、メモリ付き３入力ＭＵＸ  ２３をコンフィギュレーションして入力ｃをｏｕｔに出力するようにし、かつ入力ｉ０３に固定論理値０を与える。このとき図８７の機能ブロック４ａ，  ４ｂは、図７４（１）においてキャリ回路を２ビットキャリルックアヘッドに変更したものと等価になる（これはキャリの伝搬を高速にするだけで、全加算器の機能は変わらない）。
【０３２８】
図８７の機能ブロック４ａ，  ４ｂは、コンフィギュレーションメモリ１３ｓに論理値１を保存し、メモリ付き３入力ＭＵＸ  ２３で入力ａまたはｂを選択すると、それぞれ図７３のＭＵＸ  ２２ｈで０−入力または１−入力を選択した回路と等価になる。本発明の他の機能ブロック（本発明の機能ブロックの第１５〜第１８の実施の形態およびその変形例）に本実施形態と同様に２ビットキャリルックアヘッド機能を付加することは、当該分野の技術を有するものであれば本明細書で開示された情報から容易に構成できる。
【０３２９】
２１．第２１実施形態
図８８は、本発明による機能ブロックの第２１実施形態を示す回路図である。これは、図６１の機能ブロック４における論理機能生成器４０をＸＯＲ  ３０ａ，  ３０ｂ，  ３０ｃで構成される４入力ＸＯＲに置き換え、且つ前置ロジックとしてＭＵＸ  ２２ａと２２ｂを付加したものである。図８８の機能ブロック４は図７４の（２）と等価な回路として機能し、それゆえたとえば２ＡＮＤ４−２加算器として使用できる。また、図８８のＭＵＸ  ２２ａとＸＯＲ  ３０ａあるいはＭＵＸ  ２２ｂとＸＯＲ  ３０ｂは既に述べた前置ロジックＭＵＸ−ＸＯＲを形成しており、それらは図７５に示したように多様な論理回路として使用することができる。
【０３３０】
２２．第２２実施形態
２２．１）機能ブロック
図８９は、本発明による機能ブロックの第２２実施形態を示す回路図である。機能ブロック４は、二つの半機能ブロック４＿０と４＿１、およびそれらを繋ぐＭＵＸ  ２２ｒから成る。
【０３３１】
半機能ブロック４＿０は、第１の加算出力を生成する第１のＸＯＲ  ３０ｄと、４−２キャリ出力ｏ４２と論理出力ｏｌを生成する第１のＭＵＸ  ２２ｃと、第１のリップルキャリ出力ｏｒｃ０を生成する第１のリップルキャリブロック５０と、第１のＸＯＲ  ３０ｄの第１の入力と第１のリップルキャリブロック５０のｄ−入力と第１のＭＵＸ  ２２ｃの制御入力に信号を供給する第１のＸＯＲ  ３０ｃと、第１のＭＵＸ  ２２ｃの０−入力と第１のＸＯＲ  ３０ｃの第１の入力と第１のリップルキャリブロック５０のｂ−入力に信号を供給する第１のＭＵＸ  ２２ｐおよびそれを制御する第１のコンフィギュレーションメモリ１３ｐと、第１のＸＯＲ  ３０ｃの第２の入力と第１のリップルキャリブロック５０のａ−入力に信号を供給する第１のＭＵＸ  ２２ａと、第１のＸＯＲ３０ｄの第２の入力と第１のＭＵＸ  ２２ｃの１−入力に信号を供給する第１のＭＵＸ  ２２ｈおよびそれを制御する第１のコンフィギュレーションメモリ１３ｈとを備える。
【０３３２】
第１のリップルキャリ入力ｉｒｃ０は第１のリップルキャリブロック５０のｃ−入力と第１のＭＵＸ  ２２ｈの１−入力に供給され、第１のＭＵＸ  ２２ｈの０−入力には入力ｉ１が供給され、第１のＭＵＸ  ２２ｐの１−入力には入力ｉ２が供給される。
【０３３３】
半機能ブロック４＿１は、第２の加算出力を生成する第２のＸＯＲ  ３０ｄと、キャリ出力ｏｃを生成する第２のＭＵＸ  ２２ｃと、第２のリップルキャリ出力ｏｒｃ１を生成する第２のリップルキャリブロック５０と、第２のＸＯＲ  ３０ｄの第１の入力と第２のリップルキャリブロック５０のｄ−入力と第２のＭＵＸ  ２２ｃの制御入力に信号を供給する第２のＸＯＲ  ３０ｃと、第２のＭＵＸ  ２２ｃの０−入力と第２のＸＯＲ  ３０ｃの第１の入力と第２のリップルキャリブロック５０のｂ−入力に信号を供給する第１のＭＵＸ  ２２ａと、第２のＸＯＲ  ３０ｃの第２の入力と第２のリップルキャリブロック５０のａ−入力に信号を供給する第２のＭＵＸ  ２２ｐおよびそれを制御する第２のコンフィギュレーションメモリ１３ｐと、第２のＸＯＲ  ３０ｄの第２の入力と第２のＭＵＸ  ２２ｃの１−入力に信号を供給する第２のＭＵＸ  ２２ｈおよびそれを制御する第２のコンフィギュレーションメモリ１３ｈとを備える。
【０３３４】
第２のリップルキャリ入力ｉｒｃ１は第２のリップルキャリブロック５０のｃ−入力と第２のＭＵＸ  ２２ｈの１−入力に供給され、第２のＭＵＸ  ２２ｈの０−入力には４−２キャリ入力ｉ４２が供給される。
【０３３５】
第１の加算出力はＭＵＸ  ２２ｒの０−入力と第２のＭＵＸ  ２２ｐの１−入力に供給され、第２の加算出力はＭＵＸ  ２２ｒの１−入力に供給され、第１のＭＵＸ  ２２ｐの０−入力には２のＭＵＸ  ２２ａの出力が供給され、第２のＭＵＸ  ２２ｐの０−入力には第１のＭＵＸ  ２２ａの出力が供給される。
【０３３６】
２２．２）動作モード
図８９の機能ブロック４は、論理モード、４２加算器モードおよび条件キャリモードの三通りの動作形態を有する。
【０３３７】
論理モードでは、図８９の第１のコンフィギュレーションメモリ１３ｐと第１のコンフィギュレーションメモリ１３ｈに論理値０を保存し、ｉｃｃに論理値０を与える。このとき、図８９の機能ブロック４は図９０と等価な回路になる。既に述べたように、全加算器４３と前置ロジックＭＵＸ  ２２ａは様々な論理回路として機能するため、図９０の回路は多様な論理回路として使うことができる。
【０３３８】
４２加算器モードでは、図８９の第１と第２のコンフィギュレーションメモリ１３ｈに論理値０を保存し、第１と第２のコンフィギュレーションメモリ１３ｐに論理値１を保存し、ｉｃｃに論理値１を与える。このとき、図８９の機能ブロック４は図７４（２）と等価な回路になる。
【０３３９】
条件キャリモードでは、図８９の第１と第２のコンフィギュレーションメモリ１３ｈに論理値１を保存し、第１と第２のコンフィギュレーションメモリ１３ｐに論理値０を保存する。
【０３４０】
このとき半機能ブロック４＿０は、第１と第２のＭＵＸ  ２２ａの出力によって引数入力ｉ０とｉ３が供給され、ｉｒｃ０をリップルキャリ入力、ｏｒｃ０をリップルキャリ出力、第１の加算出力を加算出力とする前置ロジック付きの１ビット全加算器として機能する。
【０３４１】
同時に、半機能ブロック４＿１は、第１と第２のＭＵＸ  ２２ａの出力によって引数入力ｉ０とｉ３が供給され、ｉｒｃ１をリップルキャリ入力、ｏｒｃ１をリップルキャリ出力、第２の加算出力を加算出力とする前置ロジック付きの１ビット全加算器として機能する。
【０３４２】
このように共通の引数入力と独立のリップルキャリ経路を有する２つの全加算器は、すでに述べたように、高速な条件キャリ加算器として使用することができる。そのためには、図８９の機能ブロック４を含むプログラマブル機能セル５２を図７０に示すように接続した複合機能セル７１を構成し、さらにそれを図７１に示すようにカスケード接続する。このような構成によって、通常のリップルキャリより高速な条件キャリを有する多ビット全加算器を実現できる。
【０３４３】
本発明による機能ブロックの第１４〜第２２実施形態およびその変形例では、前置ロジックとしてＭＵＸを用いた例を示してきた。しかし本発明の機能ブロックにおける前置ロジックはこれに限定されるものではなく、たとえばＬＵＴやＭＵＸ−ＸＯＲなどプログラマブルに多様な機能を設定できる他の回路であってもよい。また、前置ロジックの数や前置ロジックを付加する入力を本明細書で例示した以外のものに変更することは、当該分野の技術を有するものであれば容易にできる。
【０３４４】
２３．プログラマブル機能セル
図９１は、本発明による機能ブロックを用いたプログラマブル機能セルの他の例を示すブロック図である。図９１では、図７３の機能ブロック４を用いた例を示しているが、本発明による他の機能ブロックであってもよい。また、相互接続配線群２が６本の配線からなる例を示しているが、配線本数はこれに限定されるものではない。
【０３４５】
図９１において、機能ブロック４の２つの出力ｏｃとｏｓは、まず出力ブロック５のＭＵＸ  ２２ｃ，  ２２ｂを通る。これらのＭＵＸはコンフィギュレーションメモリ１３ｂによって制御され、その保存値に応じてｏｃとｏｓをそのまま出力したり、交換してから出力したりする。これは図１２のＭＵＸ  ２２ｃ，  ２２ｂと同じ役割をするものであり、ただ図９１の場合はそれがレジスタブロックの入力側に付いているに過ぎない。
【０３４６】
出力ブロック５のレジスタブロック４２ｂ，  ４２ｃは、すでに説明したレジスタブロック（図１０）に若干の変更を加えたものである。
【０３４７】
図９２は、変更を加えたレジスタブロック４２を示す回路図である。このレジスタブロック４２は、データ入力がｉｌとｉｄの２つあり、データ出力もｏｕｔとｏｆｂの２つある。ｉｌとｉｄはＭＵＸ  ２２ｔのデータ入力に接続され、その出力はＤ−ＦＦ  ３８のデータ入力ｄに接続される。
【０３４８】
コンフィギュレーションメモリ１３ｔの保持値に応じてＭＵＸ  ２２ｔは制御され、ｉｌとｉｄのどちらか一方が選択されてＤ−ＦＦ  ３８に入力される。ＭＵＸ  ２２ｓは、Ｄ−ＦＦ  ３８のデータ出力ｑとｉｌをデータ入力とし、ＭＵＸ  ２２ｓを制御するコンフィギュレーションメモリ１３ｓの保持値に応じてどちらか一方のデータ入力を選択しｏｕｔとして出力する。また、Ｄ−ＦＦ  ３８のデータ出力ｑはｏｆｂとして直接出力される。
【０３４９】
本レジスタブロック４２は、ｉｄをＤ−ＦＦを通してｏｆｂから出力し、同時にｉｌをＤ−ＦＦをバイパスしてｏｕｔから出力するということができる。この特性は、あとで述べるようにパイプライン化した乗算器を構成するのに有用である。
【０３５０】
図９１に示すように、レジスタブロック４２ｃ，  ４２ｂのデータ入力ｉｌにはそれぞれＭＵＸ２２ｃ，  ２２ｂの出力が接続され、両レジスタブロックのデータ入力ｉｄには機能ブロック４のｉ４０が接続される。図６のような論理機能生成器を使った機能ブロックの場合は、ｉ４０に相当するものがないので、別途入力選択ユニットを設けてその出力をｉｄに入れる。レジスタブロック４２ｃ，  ４２ｂの出力ｏｕｔはそれぞれ出力選択ユニット５＿０，  ５＿１に入力する。一方、レジスタブロック４２ｃ，  ４２ｂの出力ｏｆｂは、ｉ４０に接続されていない入力選択ユニット３＿１〜３＿８に入力される。
【０３５１】
次に、図９１のプログラマブル機能セルの効果について説明する。本発明の機能ブロックは１つのブロックで４−２加算器を実現でき、それを使ってコンパクトな乗算器を構成できることが大きな特長である。一般に、乗算器は演算ブロックを多段接続して作られるため、最初の入力から最終出力までの信号伝搬遅延がかなり大きい。このため、何箇所かの演算ブロック間にパイプラインレジスタを挿入して、高いクロック周波数でも動作するようにすることがよく行なわれる。
【０３５２】
ところで、図３４からわかるように、演算ブロック間（すなわち図３４の列間）にパイプラインレジスタを挿入するためには、一つの４−２加算器当り出力ｏｓとｏｃに加えて被乗算データｘｋに対してもレジスタを挿入しなければならない。しかし、図９１（あるいは図１２）のように一つのプログラマブル機能セル当り２つのレジスタブロックしかない場合、レジスタ数が不足する。この問題は、一つおきの演算ブロック間にパイプラインレジスタを挿入することで解決される。図９３にその例を示す。
【０３５３】
パイプライン化乗算器
図９３は、パイプライン化された乗算器の構成例を示す回路図である。図中のｘｉ，  ｘｉ＋１，  …，  ｘｉ＋５におけるｉは整数である。
【０３５４】
奇数番目の列（たとえば第１列）と偶数番目の列（例えば第２列）の間にはパイプラインレジスタが挿入されており、偶数番目の列（たとえば第２列）と奇数番目の列（たとえば第３列）の間にはパイプラインレジスタは挿入されていない。各プログラマブル機能セル（例えば１ａ，  １ｂ）には２ＡＮＤ４−２加算器２７がインプリメントされている。奇数番目の列の２ＡＮＤ４−２加算器２７（例えばプログラマブル機能セル１ａにインプリメントされている）の出力ｏｃ，  ｏｓはおのおのレジスタ３８を通る。被乗算データの各ビットｘｋ（ｋは整数）は偶数番目の列のプログラマブル機能セル（例えば１ｂ）のレジスタ３８を通ってから、該当列のプログラマブル機能セルに供給される。偶数番目の列のプログラマブル機能セル（例えば１ｂ）にインプリメントされた２ＡＮＤ４−２加算器２７の出力ｏｃ，  ｏｓはレジスタを通らず次段に伝達される。以上のようにして、一つおきの演算ブロック間にパイプラインレジスタが挿入される。
【０３５５】
ここで、偶数番目の列のプログラマブル機能セル（例えば１ｂ）では、レジスタを通らない２つの出力ｏｃ，  ｏｓと、入力を何の論理処理もせず単にレジスタを通して出力するｘｋとがあるが、前者はレジスタブロック４２（図９２）のｉｌからＤ−ＦＦ  ３８をバイパスしてｏｕｔに出る経路を使い、後者はｉｄからＤ−ＦＦ  ３８通ってｏｆｂに出る経路を使う。レジスタブロック４２をこのように使うことで、図９３の偶数番目の列を実現できる。このときのｘｋの流れをより詳しく説明すると、図９１のプログラマブル機能セル１において、ｘは入力選択ユニット３＿０からｉ４０を通り、レジスタブロック（４２ｃまたは４２ｂ）のｉｄからｏｆｂへ抜け、入力選択ユニット（３＿１〜３＿８）に供給される。
【０３５６】
以上のように、図９１のプログラマブル機能セルを用いればパイプライン化された乗算器を作ることができる。なお、プロセス技術の進歩などにより現在では再構成可能デバイスは非常に高速なものを作ることができるため、（全段に入れずに）一段おきにパイプラインレジスタを入れた場合でも、十分高速動作させることができる。
【０３５７】
コンピューティングや信号処理などでは、ほとんどの場合に多ビットデータが扱われる。一般に、このような多ビットデータを処理する演算器は、ある１ビット分の演算単位をビット並び方向に一列に配列した演算ブロックで構成される。これまで本明細書の中でも、多ビット多引数加算（図１８）を構成する多ビット４−２加算器４５＿ｋ（ｋは整数）、ある種の乗算器を構成する多ビット４ＡＮＤ４−２加算器２６（図３０）、別の種類の乗算器を構成する多ビット２ＡＮＤ４−２加算器（図３０の第５列を除く各列）、バレルシフタを構成する各列（図４４）、パイプライン化された乗算器を構成する各列（図９３）など、そのような演算ブロックの例を示してきた。また、これら以外でも、次にあげる例のように、１ビット全加算器の入力にある種の論理ゲートを付加した演算単位を一列に並べた演算ブロックは、非常に使用頻度が高い。
【０３５８】
多ビット加減算器
図９４は、多ビット加減算器の構成例を示す回路図である。これは、１ビット全加算器４３の一方の引数入力ｂにＸＯＲ  ３０の出力を接続したものを演算単位とし、これを図に示すように一列に並べて接続したものである。図９４の回路は、すべての演算単位のＸＯＲ  ３０の一方の入力に繋がっている共通入力７０が論理値０のとき多ビット加算器に、共通入力７０が論理値１のとき多ビット減算器にそれぞれなる。この多ビット加減算器は、最も多く使用される演算ブロックのひとつである。
【０３５９】
ＭＵＸ付き多ビット加算器
図９５に、ＭＵＸ付き多ビット加算器の構成例を示す回路図である。これは、１ビット全加算器４３の一方の引数入力ｂにＭＵＸ  ２２の出力を接続したものを演算単位とし、これを図に示すように一列に並べて接続したものである。図９５の回路は、すべての演算単位のＭＵＸ  ２２の制御入力に繋がっている共通入力７０の論理値に応じて、全加算器に与えられる引数入力が変わる演算ブロックである。これは条件付き演算のために使われる。
【０３６０】
オーバフロー処理器
図９６に、ＯＲを一列に並べて構成したオーバフロー処理器の構成例を示す回路図である。図９６の回路は、すべてのＯＲ  ３３の一方の入力に繋がっている共通入力７０が論理値０のときＯＲ  ３３の他方の入力をそのまま出力し、共通入力７０が論理値１のとき論理値１を出力する演算ブロックである。これはオーバーフロー処理のために使われる。
【０３６１】
以上のように、多ビットデータ処理では、ある演算単位を一列に並べ、さらには全演算単位に共通の入力を持っているような演算ブロックが多用される。このような演算ブロックを従来のＦＰＧＡにインプリメントすると大きな無駄を生じる。なぜなら、従来のＦＰＧＡはすべてのプログラマブル機能セルが各自のコンフィギュレーションメモリを持ち個別にコンフィギュレーションできるようになっているが、上述の演算ブロックの場合、その中の演算単位はみな同じ機能なので個別にコンフィギュレーションできる必要はないからである。さらに、従来のプログラマブル機能セルは個別に入力選択ユニットを持っているが、上述のような共通入力は、一つの入力選択ユニットから演算ブロック内のすべての演算単位に供給されればよい。
【０３６２】
２４．プログラマブル機能セル列
次に、上述した多ビットデータ処理のための演算ブロックを効率的に実現するプログラマブル機能セル列について説明する。
【０３６３】
図９７は、本発明によるプログラマブル機能セル列の一部を示すブロック図である。プログラマブル機能セル列は、一列に配列された複数個のプログラマブル機能セルから成る。図９７には、８個のプログラマブル機能セル１＿１〜１＿８から成るプログラマブル機能セル列の最上位部分（上位２ビット分に対応するプログラマブル機能セル１＿８と１＿７を含む）を例として示している。
【０３６４】
一般に再構成可能デバイスは、図９７に示すように、縦横に走る相互接続配線群２と２次元アレイ状に配置されたプログラマブル機能セルから成る。垂直方向に走る相互接続配線群と水平方向に走る相互接続配線群の交差部５６は、一般に図９８に示すようにプログラマブルスイッチ１０で結合される。
【０３６５】
図９８は、図９７における垂直方向に走る相互接続配線群と水平方向に走る相互接続配線群との交差部の一例を示す回路図である。交差部５６には、垂直方向に走る配線間を結合するプログラマブルスイッチ１０ｃ、水平方向に走る配線間を結合するプログラマブルスイッチ１０ｂ、水平方向に走る配線と垂直方向に走る配線とを結合するプログラマブルスイッチ１０ａなどがある。ただし、図９８はプログラマブルスイッチによる結合の仕方の一例を示したに過ぎず、これに限定されるものではない。
【０３６６】
図９７において、一列に配置されたプログラマブル機能セル１＿１〜１＿８のすべての機能ブロック４の入力ｉ１２，  ｉ０２はそれぞれ共通線６４ｂ，  ６５ｂに接続され、共通線６４ｂ，  ６５ｂはそれぞれ入力選択ユニット３＿７，  ３＿３の出力に接続される。
【０３６７】
入力選択ユニット３＿７は、相互接続配線群２と、共通線６４ａと、もしあれば入力選択ユニット内の固定論理値（これは必ずしも必須ではない）と、からコンフィギュレーションに応じて出力信号を選択する。入力選択ユニット３＿３は、相互接続配線群２と、共通線６５ａと、もしあれば入力選択ユニット内の固定論理値（これは必ずしも必須ではない）と、からコンフィギュレーションに応じて出力信号を選択する。このように、機能ブロック４の一部の入力を共通の入力選択ユニット３＿７，  ３＿３から供給することで、大きい面積を占める入力選択ユニットの数を減らすことができる。
【０３６８】
図９７の場合、各プログラマブル機能セルの入力選択ユニットは、共通入力を使わない場合（図９１）に比べて２つ少ない。機能ブロック４のどの入力を共通化してもよいが、図８６や図５０の例のように前置ロジックとしてＭＵＸが入っている場合は、その制御入力を共通化するのが最も好ましい。それは、図９５や図４４に示したように、共通の制御入力を用いる例が多いからである。
【０３６９】
また、図２８からわかるように、ＭＵＸをＡＮＤやＯＲなど２入力論理回路として使う場合、制御入力がすべての２入力論理回路に共通な入力になる。従ってＭＵＸの制御入力を共通化すれば、図９６のようにＯＲの一方の入力を共通化した回路も、図３４や図３０のようにＡＮＤの一方の入力を共通化した回路も作ることができる。このように機能ブロック４の入力のうち前置ロジックのＭＵＸの制御入力を共通化するのがもっとも有用な例である。
【０３７０】
なお、図９７では、図８６の機能ブロック４を用い、そのｉ０２とｉ１２を共通化した例を示したが、機能ブロック４はこれに限定されるものではなく他のものでもよい（使う機能ブロックに応じて入力選択ユニットの数は変わる）。
【０３７１】
また、図９７には示していないが、図７７や図７９のｉ５０，  ｉ５１ように前置ロジック以外のＭＵＸの制御入力（コンフィギュレーションメモリによる固定論理値ではなく動的信号が与えられるもの）も、上述と同様に共通入力で供給すべきものである。
【０３７２】
図９７において、６４ａ，  ６５ａは一つ上位に配置されているプログラマブル機能セル列の共通線である。例えば、入力選択ユニット３＿７で共通線６４ａを選択すると、共通線６４ｂに６４ａと同じ信号が伝達される。これは、上下に並んだプログラマブル機能セル列を同じ共通入力で制御し、より長い（２倍のビット幅を持つ）一つのプログラマブル機能セル列として使うことを可能ならしめるものである。
【０３７３】
図９７において、一列に配置されたプログラマブル機能セル１＿１〜１＿８のすべての出力ブロック５の入力ｃｔｌ１，  ｃｔｌ２はそれぞれ共通線６７ｂ，  ６６ｂに接続され、共通線６７ｂ，  ６６ｂはそれぞれ入力選択ユニット３＿９，  ３＿１０の出力に接続される。
【０３７４】
入力選択ユニット３＿９は、相互接続配線群２と、共通線６７ａと、もしあれば入力選択ユニット内の固定論理値（これは必ずしも必須ではない）と、からコンフィギュレーションに応じて出力信号を選択する。入力選択ユニット３＿１０は、相互接続配線群２と、共通線６６ａと、もしあれば
入力選択ユニット内の固定論理値（これは必ずしも必須ではない）と、からコンフィギュレーションに応じて出力信号を選択する。ここで出力ブロック５の入力ｃｔｌ１，  ｃｔｌ２は、出力ブロック５の中のレジスタブロックの制御入力ｃｔｌ１，  ｃｔｌ２である（図９１）。
【０３７５】
図９７では、出力ブロック５の中に入力ブロックを設けず、レジスタブロックのｃｔｌ１，  ｃｔｌ２に出力ブロック外から入力を与えることを示している。図９１では、出力ブロック５の中に２つのレジスタブロック４２ｃ，  ４２ｂがあるが、このうち一方の制御入力のみを外部から与えたり（残りは内部の入力ブロックで制御される）、両方に同じ制御入力を与えたり、あるいは、合計４つの制御入力すべてを外部から独立に与えたりなど、種々の方式があり得る。このうち図９７では、２つの制御入力を外部から与える例を示した。なお、レジスタブロックの制御入力（すなわちＤ−ＦＦの制御入力）は必ずしも２つに限定されるものではない。
【０３７６】
図９７のように、レジスタブロックの制御信号を共通の入力選択ユニット３＿９，  ３＿１０から供給することで、大きい面積を占めるレジスタブロック内の入力ブロックを減らすことができる。図９７で、６７ａ，  ６６ａは一つ上位に配置されているプログラマブル機能セル列の共通線である。例えば、入力選択ユニット３＿９で共通線６７ａを選択すると、共通線６７ｂに６７ａと同じ信号が伝達される。これは、上下に並んだプログラマブル機能セル列のレジスタブロックを同じ共通入力で制御し、より長い（２倍のビット幅を持つ）一つのプログラマブル機能セル列として使うことを可能ならしめるものである。
【０３７７】
図９７において、一列に配置されたプログラマブル機能セル１＿１〜１＿８の入力選択ユニット３＿４，  ３＿８はそれぞれ共通線６９ｂ，  ６８ｂを入力の一つとして持ち、共通線６９ｂ，  ６８ｂはそれぞれ入力選択ユニット３＿１２，  ３＿１１の出力に接続される。入力選択ユニット  ３＿１２は、相互接続配線群２と、共通線６９ａと、もしあれば入力選択ユニット内の固定論理値（これは必ずしも必須ではない）と、からコンフィギュレーションに応じて出力信号を選択する。入力選択ユニット３＿１１は、相互接続配線群２と、共通線６８ａと、もしあれば入力選択ユニット内の固定論理値（これは必ずしも必須ではない）と、からコンフィギュレーションに応じて出力信号を選択する。
【０３７８】
図９７において、共通入力を持つ入力選択ユニット３＿８は機能ブロック４の入力ｉ１３に接続されている。機能ブロック４（図８６）を全加算器モードで使った場合、その等価回路（図７４（１））からわかるように、入力ｉ１３は全加算器の入力に付けられたＸＯＲの片方の入力に対応する。従って、プログラマブル機能セル列を図９４のように加減算器として使う場合、図９７の共通線６８ｂは図９４の共通入力７０として役立つ。
【０３７９】
他方、図９３のように各プログラマブル機能セル（例えば１ａ，  １ｂ）に２ＡＮＤ４−２加算器２７をインプリメントした場合、機能ブロック４（図８６）の入力ｉ１３は２ＡＮＤ４−２加算器２７の入力ｉ２に対応し共通入力には繋がらない。このような場合は入力選択ユニット３＿８で相互接続配線群２から入力を選択するようにする。
【０３８０】
また、図７７の機能ブロック４を使用する場合、ｉ５０に与える論理値に応じて、入力ｉ１３とｉ０３の役割を置換することができる。このような場合、図９７に示すように入力ｉ３０にもｉ３１と同じような入力選択の仕組みを設けると、両入力の対称性がよくなってアプリケーション回路をインプリメントしやすくなる。前述のｉ１２，  ｉ０２は共通入力のみに繋がる入力の例であったが、ｉ１３，  ｉ０３は共通入力と相互接続配線群との両方を使う入力の例である。
【０３８１】
図９７において、６９ａ，  ６８ａは一つ上位に配置されているプログラマブル機能セル列の共通線である。例えば、入力選択ユニット３＿１１で共通線６８ａを選択すると、共通線６８ｂに６８ａと同じ信号が伝達される。これは、上下に並んだプログラマブル機能セル列の入力選択ユニット３＿８に同じ共通入力を与え、より長い（２倍のビット幅を持つ）一つのプログラマブル機能セル列として使うことを可能ならしめるものである。
【０３８２】
図９７において、一列に配置されたプログラマブル機能セル１＿１〜１＿８の入力選択ユニット３＿１，  ３＿２，  ３＿５，  ３＿６はそれぞれ共通コンフィギュレーションメモリ群５９に接続される。
【０３８３】
図９９は、共通コンフィギュレーションメモリ群の説明のための回路図である。図９９では、共通コンフィギュレーションメモリ群５９の説明に必要な最低限のものしか示されていない。たとえばプログラマブル機能セル１＿７，  １＿８のなかには、一つの共通コンフィギュレーションメモリ群５９に関連する入力選択ユニット３＿ｋのみを記す。ここでは入力選択ユニット３＿ｋとして図２６の例を用いるが、これに限定されるものではない。
【０３８４】
図９９では、ある固定値付き入力選択ユニット３＿ｋの制御入力（図２６の２１）と固定論理値（図２６のメモリ１３ａで供給）の各々が、プログラマブル機能セル列内のすべてのプログラマブル機能セルに渡って共通化され、共通コンフィギュレーションメモリ群５９の各メモリ１３から供給される。
【０３８５】
すでに述べたように、多ビットデータ処理では、ほとんどの演算ブロックが同じ機能の演算単位で作られる。このため、図９９に示すように、機能ブロックの機能を決める固定論理値をプログラマブル機能セル列内で共通化しても不都合はなく、そうすることによって無駄なメモリを省くことができる。また、演算ブロック内で同じ演算単位が並ぶのみならず、他の演算ブロックとの接続も規則的で同じつながり方の配線が並ぶ（例えば図９３）。このため図９９に示すように、入力選択ユニット３＿ｋの制御入力をプログラマブル機能セル列内で共通化しても不都合はなく、そうすることによって無駄なコンフィギュレーションメモリを省くことができる。
【０３８６】
また、例えば図６の論理機能生成器４０内のコンフィギュレーションメモリや図７７の１３ｄ，  １３ｈなどように、一般に機能ブロック４内にもコンフィギュレーションメモリが存在する。これも、プログラマブル機能セル列内の機能ブロックをすべて同じ機能にして使う多ビットデータ処理では、図９７の機能ブロック４のコンフィギュレーション入力ｃｍのように共通化したほうが効率がよい。
【０３８７】
同様なことは出力ブロック５にも言える。図９２の１３ｔ，  １３ｓのように、一般に出力ブロック５内にもいくつかのコンフィギュレーションメモリが存在するが、多ビットデータ処理のためには図９７の出力ブロック５のコンフィギュレーション入力ｃｍのように共通化したほうが効率がよい。
【０３８８】
なお、プログラマブル機能セル列内のすべてのコンフィギュレーションメモリを共通化する必要はない。たとえば、図９７のように、入力選択ユニットの（ほとんどの）コンフィギュレーションメモリは共通化するが、出力ブロック５の中の出力選択ユニットには個別にコンフィギュレーションメモリを設けるというようにして、プログラマブル機能セルごとの多少の多様性を許容することは、多様な回路をインプリメントする上で有用である。
【０３８９】
図９７のリップルキャリ端子ブロック５７は、プログラマブル機能セル列の最下位ビットのリップルキャリ入力を与えるものである。リップルキャリ端子ブロック５７の入力ｉｒｃには下位のプログラマブル機能セル列からのリップルキャリ出力が接続され、入力ｉｎ０とｉｎ１には上位プログラマブル機能セル列の共通線６９ａと６８ａがそれぞれ接続され、出力ｏｒｃは上位プログラマブル機能セル列のリップルキャリ入力に接続される。
【０３９０】
図１００は、リップルキャリ端子ブロック５７の構成例を示す回路図である。メモリ付き３入力ＭＵＸ  ２３のコンフィギュレーションに応じて、固定論理値メモリ１３ａと下位から上がってきたリップルキャリ信号とＭＵＸ  ２２の出力のいずれかが選択されてｏｒｃに出力される。
【０３９１】
上位のプログラマブル機能セル列を全加算器として使う場合、固定論理値メモリ１３ａから論理値１をｏｒｃに供給する。上位のプログラマブル機能セル列を減算器として使う場合、固定論理値メモリ１３ａから論理値０をｏｒｃに供給する。下位と上位のプログラマブル機能セル列を繋いで一つの演算ブロックとして使う場合、リップルキャリ端子ブロック５７のｉｒｃをｏｒｃに出力する。上位のプログラマブル機能セル列を図９４のように加減算器として使う場合は、リップルキャリ端子ブロック５７のｉｎ０かｉｎ１をＭＵＸ  ２２で選択してｏｒｃに出力する。前述のように図９７の共通線６８または６９は図９４の共通線７０に相当するからである。
【０３９２】
図９７の４−２キャリ端子ブロック５８は、プログラマブル機能セル列の最下位ビットの４−２キャリ入力を与えるものである。４−２キャリブロック５８の入力ｉ４２には下位のプログラマブル機能セル列からの４−２キャリ出力が接続され、出力ｏ４２は上位プログラマブル機能セル列の４−２キャリ入力に接続される。
【０３９３】
図１０１は、４−２キャリブロック５８の構成例を示す回路図である。ＭＵＸ  ２２を制御するコンフィギュレーションメモリ１３ｃの内容に応じて、固定論理値メモリ１３ａと下位から上がってきた４−２キャリ信号のいずれかが選択されてｏ４２に出力される。
【０３９４】
上位のプログラマブル機能セル列を４つの引数入力すべてを加算する４−２加算器として使う場合、固定論理値メモリ１３ａから論理値０をｏ４２に供給する。上位のプログラマブル機能セル列を１つの引数入力を引き算にする４−２加算器として使う場合、固定論理値メモリ１３ａから論理値１をｏ４２に供給する。下位と上位のプログラマブル機能セル列を繋いで一つの多ビット４−２加算器として使う場合、４−２キャリブロック５８のｉ４２をｏ４２に出力する。
【０３９５】
以上のように、本発明のプログラマブル機能セル列の実施の形態を用いれば、多ビットデータ処理に使用する演算ブロックを効率的にインプリメントすることができる。さらに、複数のプログラマブル機能セル列を繋いで、より多ビットのプログラマブル機能セル列を作ることもできる。
【０３９６】
図１０２は、プログラマブル機能セルを配列した再構成可能デバイスの例を示すレイアウト図である。これは、ｎビットのプログラマブル機能セル列７２とｍビットのプログラマブル機能セル列７３とからなるＡＬＵ  ７５を２次元アレイ状に配列した部分と、その周辺に配置された周辺部７４とから成る。ここで一般にｍ＜＜ｎであり、とくにｍ＝１の場合が有用性が高い。ｎとしては４、８、１６、３２などが有用な例である。
【０３９７】
ＡＬＵ  ７５の中では、ｍビットプログラマブル機能セル列７３が最上位に１個あるいは少数個配置される（図１０２では２個）。一般に、規則的な多ビットデータ処理用演算ブロックでも、端の部分は規則性を破ることがしばしばある。ｍビットプログラマブル機能セル列７３はそのような部分をインプリメントするのに役立つ。また、これは各種フラグの生成や処理を行なう場合にも使われる。ＡＬＵの２次元アレイは多ビットデータパスをインプリメントするのに適した部分で、再構成可能デバイスの大部分を占める。
【０３９８】
一方、周辺部７４には、１ビットずつ独立にコンフィギュレーションできるプログラマブル機能セルが配列される。これは主にランダムロジックをインプリメントする部分で、データパスの制御系を作るのに適している。このような再構成可能デバイスは、独立にコンフィギュレーションできるプログラマブル機能セルを全面に配置した従来のＦＰＧＡに比べて、多ビットデータ処理を含む大規模回路を効率的にインプリメントすることができる。
【０３９９】
【発明の効果】
本発明の第１の効果は、コンパクトで高速な乗算器を構成できる機能ブロックを提供できることである。その理由は、乗算器の構成単位であるＡＮＤ付き４−２加算器を一つの機能ブロックで実現できるからである。そしてこれによって、従来の半分のプログラマブル機能セル数で乗算器を構成できるからである。
【０４００】
本発明の第２の効果は、コンパクトな多入力ＭＵＸを構成できる機能ブロックを提供できることである。その理由は、前置ロジックとして使ったＭＵＸを利用して、４入力以上のＭＵＸを一つの機能ブロックで作れるようにしたからである。そしてこれによって、従来の半分のプログラマブル機能セル数で４入力ＭＵＸを構成できるからである。
【図面の簡単な説明】
【図１】本発明による機能ブロックを用いたプログラマブル機能セルの概略的構成を示すブロック図である。
【図２】図１におけるプログラマブル機能セルに用いられる入力選択ユニットの第１の例を示すブロック図である。
【図３】図２におけるプログラマブルスイッチ１０の一例を示すブロック図である。
【図４】図３におけるトランスミッションゲート１２の一例を示す回路図である。
【図５】図１におけるプログラマブル機能セルに用いられる入力選択ユニットの第２の例を示すブロック図である。
【図６】本発明による機能ブロックの第１実施形態の構成を示すブロック図である。
【図７】２入力ＭＵＸを説明するための回路図である。
【図８】（１）は４−２キャリブロック４１の第１の例を示す回路図、（２）は４−２キャリブロック４１の第２の例を示す回路図、（３）は４−２キャリブロック４１の第３の例を示す回路図、（４）は４−２キャリブロック４１の第４の例を示す回路図、（５）は４−２キャリブロック４１の第５の例を示す回路図、（６）は４−２キャリブロック４１の第６の例を示す回路図、および（７）は４−２キャリブロック４１の第７の例を示す回路図である。
【図９】図１における出力ブロックの第１の例を示すブロック図である。
【図１０】図９におけるレジスタブロックの例を示すブロック図である。
【図１１】図９における出力選択ユニットの第１例を示すブロック図である。
【図１２】図９における出力選択ユニットの第２例を示すブロック図である。
【図１３】４−２加算器モードにおいて、機能ブロック４の論理機能生成器４０にインプリメントされる４入力ＸＯＲ  ２４を示す図である。
【図１４】４−２加算器の等価回路を示す図である。
【図１５】複数の４−２加算器を配列した多ビット４−２加算器の回路図である。
【図１６】（１）は４−２加算器を用いた完全ツリー型多ビット多引数加算器の一例を示すブロック図、（２）は全加算器を用いた完全ツリー型多ビット多引数加算器の一例を示すブロック図である。
【図１７】（１）は４−２加算器を用いた完全縦続型多ビット多引数加算器の一例を示すブロック図、（２）は全加算器を用いた完全縦続型多ビット多引数加算器の一例を示すブロック図である。
【図１８】図１７（１）の第１段〜第３段の詳細な構成を示すブロック図である。
【図１９】半縦続型多ビット多引数加算器の例を示すブロック図である。
【図２０】２次縦続型多ビット多引数加算器の一例を示すブロック図である。
【図２１】高次縦続型多ビット多引数加算器の一例を示すブロック図である。
【図２２】修正ブースアルゴリズムを用いた部分積生成器（以下、修正ブース部分積生成器と呼ぶ）のブロック図である。
【図２３】本発明による機能ブロックの第２実施形態を示す回路図である。
【図２４】固定値付き入力選択ユニットの第１例を示す回路図である。
【図２５】固定論理値供給スイッチの例を示す回路図である。
【図２６】固定値付き入力選択ユニットの第２例を示す回路図である。
【図２７】固定値付き入力選択ユニットの第３例を示す回路図である。
【図２８】ＭＵＸの種々の論理機能を示すテーブルである。
【図２９】図２３の前置ロジック２９のすべての回路をＡＮＤとして使用した４ＡＮＤ４−２加算器を示す回路図である。
【図３０】図２９の４ＡＮＤ４−２加算器を用いた乗算器に必要な演算ブロックを示す回路図である。
【図３１】（１）は多ビット４ＡＮＤ４−２加算器２６を使った完全ツリー型乗算器の例を示すブロック図、（２）は完全縦続型多ビット多引数４−２加算器を用いた例を示すブロック図である。
【図３２】本発明の第２実施形態による機能ブロックの変形例を示す回路図である。
【図３３】図３２の前置ロジック２９における２つの回路をＡＮＤとして使用した場合の回路を示す回路図である。
【図３４】図３３に示す２ＡＮＤ４−２加算器を用いて構成した乗算器の例を示す回路図である。
【図３５】異なった構成を持つ図３４と等価な乗算器の回路図である。
【図３６】異なった構成を持つ図３５と等価な乗算器の回路図である。
【図３７】（１）は多ビット２ＡＮＤ４−２加算器を使った完全縦続型乗算器のシフト配置を示す図、（２）は多ビット２ＡＮＤ４−２加算器を使った完全縦続型乗算器の水平配置を示す図である。
【図３８】図２３のような前置ロジック付き機能ブロックに基づいて構成された４入力ＭＵＸの一例を示す回路図である。
【図３９】２つの機能ブロックにまたがる４入力ＭＵＸの構成法を説明するための回路図である。
【図４０】本発明の第２実施形態による機能ブロックの別の変形例を示す回路図である。
【図４１】本発明による機能ブロックの第３実施形態を示す回路図である。
【図４２】本発明による機能ブロックの第３実施形態の変形例を示す回路図である。
【図４３】２入力ＭＵＸで構成した通常のバレルシフタの例を示す回路図である。
【図４４】本発明による４入力ＭＵＸで構成したバレルシフタの例を示す回路図である。
【図４５】本発明による機能ブロックの第４実施形態を示す回路図である。
【図４６】本発明による機能ブロックの第４実施形態の変形例を示す回路図である。
【図４７】本発明による機能ブロックの第５実施形態を示す回路図である。
【図４８】本発明による機能ブロックの第５実施形態の第１変形例を示す回路図である。
【図４９】本発明による機能ブロックの第５実施形態の第２変形例を示す回路図である。
【図５０】本発明による機能ブロックの第６実施形態を示す回路図である。
【図５１】本発明による機能ブロックの第７実施形態を示す回路図である。
【図５２】メモリ付き３入力ＭＵＸ  ２３の第１例を示す回路図である。
【図５３】メモリ付き３入力ＭＵＸ  ２３の第２例を示す回路図である。
【図５４】本発明による機能ブロックの第７実施形態の変形例を示す回路図である。
【図５５】本発明による機能ブロックの第８実施形態を示す回路図である。
【図５６】ＮＡＮＤによるＡＯの構成例を示す回路図である。
【図５７】本発明の機能ブロックの第８実施形態の変形例を示す回路図である。
【図５８】上述したリップルキャリ回路を有する機能ブロックの接続方法を示すブロック図である。
【図５９】本発明による機能ブロックの第９実施形態を示す回路図である。
【図６０】（１）はＸＯＲの記号を示す図、（２）はＸＯＲの構成例を示す回路図である。
【図６１】本発明による機能ブロックの第１０実施形態を示す回路図である。
【図６２】（１）は  ４−２キャリブロックの第１例を示す回路図、（２）はキャリブロックの第１例を示す回路図である。
【図６３】（１）は４−２キャリブロックの第２例を示す回路図、（２）はキャリブロックの第２例を示す回路図である。
【図６４】（１）は二つの３入力ＬＵＴで構成した４入力ＬＵＴを示す回路図、（２）は二つの２入力ＬＵＴで構成した３入力ＬＵＴを示す回路図である。
【図６５】本発明による機能ブロックの第１１実施形態を示す回路図である。
【図６６】本発明による機能ブロックの第１１実施形態の変形例を示す回路図である。
【図６７】本発明による機能ブロックの第１２実施形態を示す回路図である。
【図６８】本発明による機能ブロックの第１２実施形態の変形例を示す回路図である。
【図６９】本発明による機能ブロックの第１３実施形態を示す回路図である。
【図７０】条件キャリ加算器を構成するための複合機能セルを示すブロック図である。
【図７１】複合機能セル７１をカスケード接続したブロック図である。
【図７２】本発明による機能ブロックの第１３実施形態の変形例を示す回路図である。
【図７３】本発明による機能ブロックの第１４実施形態を示す回路図である。
【図７４】（１）は全加算器モードにおける図７３の機能ブロックの等価回路を示す図、（２）は４−２加算器モードにおける図７３の機能ブロックの等価回路を示す図である。
【図７５】ＭＵＸ−ＸＯＲ  ５４の論理機能を示すテーブルである。
【図７６】１ビット全加算器の論理機能を示すテーブルである。
【図７７】本発明による機能ブロックの第１５実施形態を示す回路図である。
【図７８】本発明による機能ブロックの第１５実施形態の変形例を示す回路図である。
【図７９】本発明による機能ブロックの第１６実施形態を示す回路図である。
【図８０】本発明による機能ブロックの第１６実施形態の変形例を示す回路図である。
【図８１】本発明による機能ブロックの第１７実施形態を示す回路図である。
【図８２】図８１の機能ブロック４の等価回路の１つを示す図である。
【図８３】図８２の回路で実現できる使用頻度の高い論理回路を示す図である。
【図８４】本発明による機能ブロックの第１８実施形態を示す回路図である。
【図８５】本発明による機能ブロックの第１９実施形態を示す回路図である。
【図８６】本発明による機能ブロックの第１９実施形態の変形例を示す回路図である。
【図８７】本発明による機能ブロックの第２０実施形態を示す回路図である。
【図８８】本発明による機能ブロックの第２１実施形態を示す回路図である。
【図８９】本発明による機能ブロックの第２２実施形態を示す回路図である。
【図９０】論理モードにおける図８９の機能ブロックの等価回路を示す図である。
【図９１】本発明による機能ブロックを用いたプログラマブル機能セルの他の例を示すブロック図である。
【図９２】変更を加えたレジスタブロック４２を示す回路図である。
【図９３】パイプライン化された乗算器の構成例を示す回路図である。
【図９４】多ビット加減算器の構成例を示す回路図である。
【図９５】ＭＵＸ付き多ビット加算器の構成例を示す回路図である。
【図９６】ＯＲを一列に並べて構成したオーバフロー処理器の構成例を示す回路図である。
【図９７】本発明によるプログラマブル機能セル列の一部を示すブロック図である。
【図９８】図９７における垂直方向に走る相互接続配線群と水平方向に走る相互接続配線群との交差部の一例を示す回路図である。
【図９９】共通コンフィギュレーションメモリ群の説明のための回路図である。
【図１００】リップルキャリ端子ブロック５７の構成例を示す回路図である。
【図１０１】４−２キャリブロック５８の構成例を示す回路図である。
【図１０２】プログラマブル機能セルを配列した再構成可能デバイスの例を示すレイアウト図である。
【図１０３】通常の乗算器の典型例を示す回路図である。
【図１０４】従来のＦＰＧＡの機能ブロックの一例を示す回路図である。
【図１０５】論理機能生成器の一例を示す回路図である。
【図１０６】乗算器を構成するために論理機能生成器にインプリメントすべき回路を示す図である。
【図１０７】従来の機能ブロックによる４入力ＭＵＸの構成例を示す回路図である。
【符号の説明】
１，  １ａ，  １ｂ，  １＿ｋ（ｋは整数）：プログラマブル機能セル
２：相互接続配線群
２＿ｋ（ｋは整数）：相互接続配線群の配線
３，  ３ｘ  （ｘはアルファベット）：入力ブロック
３＿ｋ（ｋは整数）：入力選択ユニット
４，  ４ｘ  （ｘはアルファベット）：機能ブロック
４＿０，  ４＿１：半機能ブロック
５：出力ブロック
５＿ｋ（ｋは整数）：出力選択ユニット
１０，  １０ｘ  （ｘはアルファベット）：プログラマブルスイッチ
１１：入力選択ユニットの出力線
１２，  １２ｘ  （ｘはアルファベット）：トランスミッションゲート
１３，  １３ｘ  （ｘはアルファベット）：コンフィギュレーションメモリ
１４：プログラマブルスイッチの第一の端子
１５：プログラマブルスイッチの第二の端子
１６：ＮＭＯＳトランジスタ
１７：ＰＭＯＳトランジスタ
１８：バッファの出力
１９：固定論理値供給スイッチ
２０：多入力ＭＵＸ
２１：多入力ＭＵＸの制御入力
２２，  ２２ｘ（ｘはアルファベット）：２入力ＭＵＸ
２３：メモリ付き３入力ＭＵＸ
２４：４入力ＸＯＲ
２５，  ２５ｘ  （ｘはアルファベット）：４ＡＮＤ４−２加算器
２６，  ２６＿ｋ（ｋは整数）：多ビット４ＡＮＤ４−２加算器
２７，  ２７ｘ（ｘはアルファベット）：２ＡＮＤ４−２加算器
２８＿ｋ（ｋは整数）：２ＡＮＤ乗算ブロック
２９：前置ロジック
３０，  ３０ｘ（ｘはアルファベット）：２入力ＸＯＲ
３１，  ３１ｘ（ｘはアルファベット）：２入力ＡＮＤ
３２：３入力ＯＲ
３３，  ３３ｘ（ｘはアルファベット）：２入力ＯＲ
３４，  ３４ｘ（ｘはアルファベット）：２入力ＮＡＮＤ
３５：２入力ＮＯＲ
３６：ＯＡＩ
３７：インバータ
３８：Ｄ−ＦＦ
３９：バッファ
４０：４入力論理機能生成器
４１：４−２キャリブロック
４２，  ４２ｘ（ｘはアルファベット）：レジスタブロック
４３，  ４３ｘ（ｘはアルファベット）：１ビット全加算器
４４：４−２加算器
４５，  ４５＿ｋ（ｋは整数）：多ビット４−２加算器
４６，  ４６＿ｋ（ｋは整数）：多ビット全加算器
４７：部分積生成ユニット
４８：３入力論理機能生成器
４９：２入力論理機能生成器
５０：リップルキャリブロック
５１：ＡＯ
５２：プログラマブル機能セル、または２つ分のプログラマブル機能セル
５３：キャリブロック
５４，  ５４ｘ（ｘはアルファベット）：ＭＵＸ−ＸＯＲ
５５ｘ（ｘはアルファベット）：任意の２入力１出力論理回路
５６：垂直方向に走る相互接続配線群と水平方向に走る相互接続配線群の交差部
５７：リップルキャリ端子ブロック
５８：４−２キャリ端子ブロック
５９：共通コンフィギュレーションメモリ群
６０：４入力ＭＵＸ
６１，  ６２，  ６３：  ＡＮＤ  ３１ｋの可能な挿入箇所
６４ａ，  ６５ａ，  ６６ａ，  ６７ａ，  ６８ａ，  ６９ａ：上位のプログラマブル機能セル列の共通線
６４ｂ，  ６５ｂ，  ６６ｂ，  ６７ｂ，  ６８ｂ，  ６９ｂ：下位のプログラマブル機能セル列の共通線
７０：共通入力
７１：複合機能セル
７２：  ｎビットのプログラマブル機能セル列
７３：ｍビットのプログラマブル機能セル列
７４：周辺部
７５：ＡＬＵ
７６：乗算器単位
７７：２つのＡＮＤを付加した全加算器
ｉｃ：キャリ入力
ｉｋ（ｋは整数）：入力
ｉ５０，  ｉ５１：ＭＵＸの制御入力
ｉ６０，  ｉ６１，  ｉ６２，  ｉ６３：バレルシフタの制御入力
Ｉｋ（ｋは整数）：多ビット４−２加算器の入力
ｉ４２：４−２キャリ入力
ｏ４２：４−２キャリ出力
ｏｌ：論理出力
ｏｓ：加算出力
ｏｃ：キャリ出力
ｃｌｋ：クロック信号
ｑ：コンフィギュレーションメモリまたはＤ−ＦＦのデータ出力
ｑｂ：コンフィギュレーションメモリの反転データ出力
ｇ：トランスミッションゲートのゲート入力
ｇｂ：トランスミッションゲートの反転ゲート入力
ｔ０：トランスミッションゲートの第一の入出力端子
ｔ１：トランスミッションゲートの第二の入出力端子
Ｖｃｃ：電源電圧
ｏｕｔ：論理回路の出力
ＯＵＴ：多ビット論理回路の出力
ＩＮ：多ビット論理回路の入力
Ａ，  Ｂ：多ビット全加算器の引数入力
ａ，  ｂ，  ｃ，  ｄ，  ｉｎ，  ｉｎ０，  ｉｎ１，  ｉｎ２，  ｉｎ３，  ｉｎ４，  ｉｎ５：論理回路の入力
Ｓ：多ビット全加算器の加算出力
ｓ：１ビット全加算器の加算出力
ｏｒｃ：リップルキャリ出力
ｉｒｃ：リップルキャリ入力
ｃｔｌ１，  ｃｔｌ２：レジスタブロックの制御入力
ｅ：Ｄ−ＦＦのクロックイネーブル入力
ｓｒ：Ｄ−ＦＦのセット／リセット入力
Ｃ，  Ｄ，  Ｅ，  Ｆ，  Ｇ，  Ｈ，  Ｉ，  Ｊ，  Ｋ，  Ｌ，  Ｍ，  Ｎ，  Ｏ，  Ｐ，  Ｑ，  Ｒ，  Ｔ，  Ｕ，  Ｖ，  Ｗ，  ＡＡ，  ＢＢ，  ＣＣ，  ＤＤ，  ＥＥ，  ＦＦ，  ＧＧ，  ＨＨ，  ＩＩ，  ＪＪ
：多ビット入力
ｃｋ−１：Ｃの第ｋ番目のビット
ｄｋ−１：Ｄの第ｋ番目のビット
ｅｋ−１：Ｅの第ｋ番目のビット
ｆｋ−１：Ｆの第ｋ番目のビット
ｇｋ−１：Ｇの第ｋ番目のビット
ｈｋ−１：Ｈの第ｋ番目のビット
ｉｋ−１：Ｉの第ｋ番目のビット
ｊｋ−１：Ｊの第ｋ番目のビット
ＯＣ：多ビットキャリ出力
ｏｃｋ−２：ＯＣの第ｋ番目のビット
ＯＳ：多ビット加算出力
ｏｓｋ−１：ＯＳの第ｋ番目のビット
ｉｃ−１：多ビット４−２加算器のキャリ入力
Ｘｉ，  Ｙｉ：多ビット多引数加算器の第ｉ＋１番目の入力
Ｘ：被乗数
ｘｋ−１：Ｘの第ｋ番目のビット
Ｙ：乗数
ｙｋ−１：Ｙの第ｋ番目のビット
Ｐ２（ｋ−１）：第ｋ番目の部分積
ｚｋ−１：積の第ｋ番目のビット
Ｎｋ（ｋは整数）：乗数の第４ｋ＋１ビット〜第４（ｋ＋１）のビット
ｉｄ，  ｉｌ：レジスタブロックの第２の例の入力
ｏｆｂ：レジスタブロックの第２の例の一方の出力
ｃｍ：共通のコンフィギュレーション入力
ｏｍ：従来の機能ブロックで構成した４入力ＭＵＸの出力
【図１】
0003613396.tif 000002
【図２】
0003613396.tif 000003
【図３】
0003613396.tif 000004
【図４】
0003613396.tif 000005
【図５】
0003613396.tif 000006
【図６】
0003613396.tif 000007
【図７】
0003613396.tif 000008
【図８】
0003613396.tif 000009
【図９】
0003613396.tif 000010
【図１０】
0003613396.tif 000011
【図１１】
0003613396.tif 000012
【図１２】
0003613396.tif 000013
【図１３】
0003613396.tif 000014
【図１４】
0003613396.tif 000015
【図１５】
0003613396.tif 000016
【図１６】
0003613396.tif 000017
【図１７】
0003613396.tif 000018
【図１８】
0003613396.tif 000019
【図１９】
0003613396.tif 000020
【図２０】
0003613396.tif 000021
【図２１】
0003613396.tif 000022
【図２２】
0003613396.tif 000023
【図２３】
0003613396.tif 000024
【図２４】
0003613396.tif 000025
【図２５】
0003613396.tif 000026
【図２６】
0003613396.tif 000027
【図２７】
0003613396.tif 000028
【図２８】
0003613396.tif 000029
【図２９】
0003613396.tif 000030
【図３０】
0003613396.tif 000031
【図３１】
0003613396.tif 000032
【図３２】
0003613396.tif 000033
【図３３】
0003613396.tif 000034
【図３４】
0003613396.tif 000035
【図３５】
0003613396.tif 000036
【図３６】
0003613396.tif 000037
【図３７】
0003613396.tif 000038
【図３８】
0003613396.tif 000039
【図３９】
0003613396.tif 000040
【図４０】
0003613396.tif 000041
【図４１】
0003613396.tif 000042
【図４２】
0003613396.tif 000043
【図４３】
0003613396.tif 000044
【図４４】
0003613396.tif 000045
【図４５】
0003613396.tif 000046
【図４６】
0003613396.tif 000047
【図４７】
0003613396.tif 000048
【図４８】
0003613396.tif 000049
【図４９】
0003613396.tif 000050
【図５０】
0003613396.tif 000051
【図５１】
0003613396.tif 000052
【図５２】
0003613396.tif 000053
【図５３】
0003613396.tif 000054
【図５４】
0003613396.tif 000055
【図５５】
0003613396.tif 000056
【図５６】
0003613396.tif 000057
【図５７】
0003613396.tif 000058
【図５８】
0003613396.tif 000059
【図５９】
0003613396.tif 000060
【図６０】
0003613396.tif 000061
【図６１】
0003613396.tif 000062
【図６２】
0003613396.tif 000063
【図６３】
0003613396.tif 000064
【図６４】
0003613396.tif 000065
【図６５】
0003613396.tif 000066
【図６６】
0003613396.tif 000067
【図６７】
0003613396.tif 000068
【図６８】
0003613396.tif 000069
【図６９】
0003613396.tif 000070
【図７０】
0003613396.tif 000071
【図７１】
0003613396.tif 000072
【図７２】
0003613396.tif 000073
【図７３】
0003613396.tif 000074
【図７４】
0003613396.tif 000075
【図７５】
0003613396.tif 000076
【図７６】
0003613396.tif 000077
【図７７】
0003613396.tif 000078
【図７８】
0003613396.tif 000079
【図７９】
0003613396.tif 000080
【図８０】
0003613396.tif 000081
【図８１】
0003613396.tif 000082
【図８２】
0003613396.tif 000083
【図８３】
0003613396.tif 000084
【図８４】
0003613396.tif 000085
【図８５】
0003613396.tif 000086
【図８６】
0003613396.tif 000087
【図８７】
0003613396.tif 000088
【図８８】
0003613396.tif 000089
【図８９】
0003613396.tif 000090
【図９０】
0003613396.tif 000091
【図９１】
0003613396.tif 000092
【図９２】
0003613396.tif 000093
【図９３】
0003613396.tif 000094
【図９４】
0003613396.tif 000095
【図９５】
0003613396.tif 000096
【図９６】
0003613396.tif 000097
【図９７】
0003613396.tif 000098
【図９８】
0003613396.tif 000099
【図９９】
0003613396.tif 000100
【図１００】
0003613396.tif 000101
【図１０１】
0003613396.tif 000102
【図１０２】
0003613396.tif 000103
【図１０３】
0003613396.tif 000104
【図１０４】
0003613396.tif 000105
【図１０５】
0003613396.tif 000106
【図１０６】
0003613396.tif 000107
【図１０７】
0003613396.tif 000108