(57)【特許請求の範囲】
【請求項１】
初期キャリを考慮してＸｉ及びＹｉのキャリを発生するためのキャリ発生器において、
入力データＸｉ及びＹｉに基づいた所定のデータの入力を受けるための第１入力部と、
前記初期キャリを入力受けるための第２入力部と、
前記入力データＸｉ及びＹｉの排他的論理和の入力を受ける選択部を備え、前記選択部に入力される排他的論理和値によって前記第１入力部に入力された入力データＸｉ及びＹｉに基づいた所定のデータまたは前記第２入力部に入力された初期キャリ中いずれか一つを選択してキャリとして出力することを特徴とするキャリ生成器。
【請求項２】
前記キャリ生成器は、前記選択部に入力された排他的論理和が‘０’の場合は前記第１入力部に入力されるデータを出力し、前記選択部に入力された排他的論理和が‘１’の場合には前記第２入力部に入力される前記初期キャリデータを出力することを特徴とする請求項１に記載のキャリ生成器。
【請求項３】
前記初期キャリは、入力データＸｉ−１及びＹｉ−１の論理和であることを特徴とする請求項１に記載のキャリ生成器。
【請求項４】
前記Ｘｉ及びＹｉに基づいたデータは、Ｘｉ、Ｙｉ、ＸｉとＹｉの論理積、及びＸｉとＹｉの論理和中いずれか一つであることを特徴とする請求項１ないし３のうちいずれか一項に記載のキャリ生成器。
【請求項５】
ｎビットよりなる二つの入力データＸ０〜Ｘｎ−１、Ｙ０〜Ｙｎ−１のキャリを生成するためのキャリ生成器において、
入力データＸ２ｉ−１及びＹ２ｉ−１に基づいたデータの入力を受けるための第１入力部と、
初期キャリデータの入力を受けるための第２入力部と、
前記入力データＸ２ｉ−１及びＹ２ｉ−１の排他的論理和の入力を受ける選択部を備えた少なくとも一つ以上の第１サブキャリ生成部を含み、
前記第１サブキャリ生成部は、前記選択部に入力される排他的論理和値によって前記第１入力部に入力された入力データＸ２ｉ−１及びＹ２ｉ−１に基づいたデータまたは前記第２入力部に入力された初期キャリデータ中いずれか一つを選択して出力することを特徴とするキャリ生成器。
【請求項６】
前記第１サブキャリ生成部は、前記選択部に入力された排他的論理和が‘０’の場合には前記第１入力部に入力されるデータを出力し、前記選択部に入力された排他的論理和が‘１’の場合には前記第２入力部に入力される前記初期キャリデータを出力することを特徴とする請求項５に記載のキャリ生成器。
【請求項７】
前記初期キャリデータは、入力データＸ２ｉ−２及びＹ２ｉ−２の論理和であることを特徴とする請求項５に記載のキャリ生成器。
【請求項８】
前記Ｘ２ｉ−１及びＹ２ｉ−１に基づいたデータは、Ｘ２ｉ−１、Ｙ２ｉ−１、Ｘ２ｉ−１とＹ２ｉ−１の論理積、及びＸ２ｉ−１とＹ２ｉ−１の論理和中いずれか一つであることを特徴とする請求項５ないし７のうちいずれか一項に記載のキャリ生成器。
【請求項９】
前記キャリ生成器は、
初期キャリデータの入力を受けるための第１入力部と、
Ｘ２ｉ−１及びＹ２ｉ−１に基づいたデータの入力を受けるための第２入力部と、
前記入力データＸ２ｉ−１及びＹ２ｉ−１の排他的否定論理和の入力を受ける選択部を備えた少なくとも一つ以上の第２サブキャリ生成部をさらに含み、
前記第２サブキャリ生成部は、前記選択部に入力される排他的否定論理和値によって前記第１入力部に入力された初期キャリデータまたは前記第２入力部に入力されたＸ２ｉ−１及びＹ２ｉ−１に基づいたデータ中いずれか一つを出力することを特徴とする請求項５に記載のキャリ生成器。
【請求項１０】
前記第２サブキャリ生成部は、前記選択部に入力された排他的否定論理和が‘０’の場合には前記第１入力部に入力される前記初期キャリデータを出力し、前記選択部に入力された排他的論理和が‘１’の場合には前記第２入力部に入力されるデータを出力することを特徴とする請求項９に記載のキャリ生成器。
【請求項１１】
前記第２サブキャリ生成部の初期キャリデータは、入力データＸ２ｉ−２及びＹ２ｉ−２の論理積であることを特徴とする請求項９に記載のキャリ生成器。
【請求項１２】
前記Ｘ２ｉ−１及びＹ２ｉ−１に基づいたデータは、Ｘ２ｉ−１、Ｙ２ｉ−１、Ｘ２ｉ−１とＹ２ｉ−１の論理積、及びＸ２ｉ−１とＹ２ｉ−１の論理和中いずれか一つであることを特徴とする請求項９ないし１１のうちいずれか一項に記載のキャリ生成器。
【請求項１３】
ｎビットよりなる二つの入力データＸ０−Ｘｎ−１、Ｙ０−Ｙｎ−１のキャリを生成するキャリ生成部と前記入力値の合計を発生する合計発生部を備える複数個の足し算モジュールと、前記足し算モジュールから発生したキャリに応答して前記足し算モジュールのキャリ有無を決定して次の段の足し算モジュールにフィードバックさせるためのブロックキャリ発生部を含むことを特徴とする条件選択加算器において、
前記キャリ発生部は、
入力データＸ２ｉ−１及びＹ２ｉ−１に基づいたデータの入力を受けるための第１入力部と；初期キャリデータの入力を受けるための第２入力部と、前記入力データＸ２ｉ−１及びＹ２ｉ−１の排他的論理和の入力を受ける選択部を備えて、前記選択部に入力される排他的論理和値によって前記第１入力部に入力された入力データＸ２ｉ−１及びＹ２ｉ−１に基づいたデータまたは前記第２入力部に入力された初期キャリデータ中いずれか一つを出力する少なくとも一つ以上の第１サブキャリ生成部と、
初期キャリデータの入力を受けるための第１入力部と、Ｘ２ｉ−１及びＹ２ｉ−１に基づいたデータの入力を受けるための第２入力部と、前記入力データＸ２ｉ−１及びＹ２ｉ−１の排他的否定論理和の入力を受ける選択部を備えて、前記選択部に入力される排他的否定論理和値によって前記第１入力部に入力された初期キャリデータまたは前記第２入力部に入力されたＸ２ｉ−１及びＹ２ｉ−１に基づいたデータ中いずれか一つを出力する少なくとも一つ以上の第２サブキャリ生成部と、
前記第１及び第２サブキャリ生成部からの出力が入力される二個の入力部と、所定の選択信号が入力される選択部を備えて、前記選択部に入力される選択信号値によって前記入力部に入力された値中いずれか一つを出力する少なくとも一つ以上のキャリ選択部を含むことを特徴とする条件選択加算器。
【請求項１４】
前記第１サブキャリ生成部は、前記選択部に入力された排他的論理和が‘０’の場合には前記第１入力部に入力されるデータを出力して、前記選択部に入力された排他的論理和が‘１’の場合には前記第２入力部に入力される前記初期キャリデータを出力し、前記第２サブキャリ生成部は前記選択部に入力された排他的否定論理和が‘０’の場合には前記第１入力部に入力される前記初期キャリデータを出力し、前記選択部に入力された排他的論理和が‘１’の場合には前記第２入力部に入力されるデータを出力することを特徴とする請求項１３に記載の条件選択加算器。
【請求項１５】
前記第１サブキャリ生成部の初期キャリデータは、入力データＸ２ｉ−２及びＹ２ｉ−２の論理和であり、前記第２サブキャリ生成部の初期キャリデータは入力データＸ２ｉ−２及びＹ２ｉ−２の論理積であることを特徴とする請求項１３に記載の条件選択加算器。
【請求項１６】
前記Ｘ２ｉ−１及びＹ２ｉ−１に基づいたデータは、Ｘ２ｉ−１、Ｙ２ｉ−１、Ｘ２ｉ−１とＹ２ｉ−１の論理積、及びＸ２ｉ−１とＹ２ｉ−１の論理和中いずれか一つであることを特徴とする請求項１３ないし１５のうちいずれか一項に記載の条件選択加算器。
【請求項１７】
前記所定の選択信号は、前段のサブキャリ生成部またはキャリ選択部からの出力値であることを特徴とする請求項１３に記載の条件選択加算器。
【請求項１８】
前記合計生成部は、前記キャリ生成部からの出力を利用して合計を計算することを特徴とする請求項１３に記載の条件選択加算器。
【請求項１９】
前記加算器は、前記加算される入力値Ｘｉ及びＹｉを分析して、排他的論理和、排他的否定論理和、論理和、及び論理積値中少なくとも一つ以上を発生して前記キャリ生成部と前記合計生成部に出力する前置発生部をさらに含むことを特徴とする請求項１３に記載の条件選択加算器。
【請求項２０】
前記合計発生部は、前記キャリ生成部の出力が入力される選択部と、前記入力データのうち二つの被演算子に基づいて計算されたデータが入力される二個の入力部を備えた少なくとも一つ以上の第１サブ合計生成部を含むことを特徴とする請求項１８に記載の条件選択加算器。
【請求項２１】
前記第１サブ合計生成部は、前記選択部への入力値に基づいて第１サブ合計生成部の二個の入力部に入力されるデータ中の一つを選択的に出力することを特徴とする請求項２０に記載の条件選択加算器。
【請求項２２】
前記合計発生部は、キャリデータが入力される選択部と、前記二個の被演算子の排他的論理和及び排他的否定論理和が各々入力される二個の入力部を備えた少なくとも一つ以上の第２サブ合計生成部をさらに含むことを特徴とする請求項２０に記載の条件選択加算器。
【請求項２３】
前記第２サブ合計生成部は、前記選択部に入力されるキャリ値に基づいて第２サブ合計生成部の二個の入力部に入力されるデータ中の一つを選択して、前記少なくとも一つ以上の第１サブ合計生成部中の一つの入力部に出力することを特徴とする請求項２２に記載の条件選択加算器。
【請求項２４】
加算装置に用いられる、初期キャリを考慮してＸｉとＹｉのキャリを生成するためのキャリ生成方法において、
（ａ）入力データＸｉ及びＹｉに基づいた所定のデータを計算する段階と、
（ｂ）入力データＸｉ及びＹｉが同一であるか否かを判断する段階と、
（ｃ）前記Ｘｉ及びＹｉが同一であるか否かによって前記初期キャリまたは前記Ｘｉ及びＹｉに基づいた所定のデータをＸｉ及びＹｉのキャリとして選択して出力することを特徴とするキャリ生成方法。
【請求項２５】
前記（ｃ）段階でＸｉ及びＹｉが同一な場合、前記Ｘｉ及びＹｉに基づいた所定のデータを選択して、Ｘｉ及びＹｉが同一でない場合には前記初期キャリを選択することを特徴とする請求項２４に記載のキャリ生成方法。
【請求項２６】
前記Ｘｉ及びＹｉに基づいたデータは、Ｘｉ、Ｙｉ、ＸｉとＹｉの論理積、及びＸｉとＹｉの論理和中いずれか一つであることを特徴とする請求項２４または２５に記載のキャリ生成方法。
【請求項２７】
加算装置に用いられるｎビットよりなる二つの入力データＸ０〜Ｘｎ−１、Ｙ０〜Ｙｎ−１のキャリを発生するためのキャリ生成方法において、
（ａ）入力データＸ２ｉ−１及びＹ２ｉ−１に基づいて所定のデータを計算する段階と、
（ｂ）入力データＸ２ｉ−２及びＹ２ｉ−２の第１初期キャリデータを計算する段階と、
（ｃ）入力データＸ２ｉ−１及びＹ２ｉ−１の排他的論理和を計算する段階と、
（ｄ）前記計算された入力データＸ２ｉ−１及びＹ２ｉ−１の排他的論理和値によって前記入力データＸ２ｉ−１及びＹ２ｉ−１に基づいたデータまたは前記第１初期キャリデータ中いずれか一つを選択して第１キャリを発生する段階を含むことを特徴とするキャリ生成方法。
【請求項２８】
前記（ｄ）段階での排他的論理和が‘０’の場合には、前記計算された入力データＸ２ｉ−１及びＹ２ｉ−１に基づいて計算された所定のデータを出力して、前記排他的論理和が‘１’の場合には前記計算された第１初期キャリデータを出力することを特徴とする請求項２７に記載のキャリ生成方法。
【請求項２９】
前記第１初期キャリデータは、入力データＸ２ｉ−２及びＹ２ｉ−２の論理和であることを特徴とする請求項２７に記載のキャリ生成方法。
【請求項３０】
前記Ｘ２ｉ−１及びＹ２ｉ−１に基づいたデータは、Ｘ２ｉ−１、Ｙ２ｉ−１、Ｘ２ｉ−１とＹ２ｉ−１の論理積、及びＸ２ｉ−１とＹ２ｉ−１の論理和中いずれか一つであることを特徴とする請求項２７ないし２９のうちいずれか一項に記載のキャリ生成方法。
【請求項３１】
前記キャリ生成方法は、
（ａ１）入力データＸ２ｉ−１及びＹ２ｉ−１に基づいて所定のデータを計算する段階と、
（ｂ１）入力データＸ２ｉ−２及びＹ２ｉ−２の第２初期キャリデータを計算する段階と、
（ｃ１）入力データＸ２ｉ−１及びＹ２ｉ−１の排他的否定論理和を計算する段階と、
（ｄ１）前記計算された入力データＸ２ｉ−１及びＹ２ｉ−１の排他的否定論理和値によって前記入力データＸ２ｉ−１及びＹ２ｉ−１に基づいたデータまたは前記第２初期キャリデータ中いずれか一つを出力して第２キャリを発生する段階を含むことを特徴とする請求項２７に記載のキャリ生成方法。
【請求項３２】
前記（ｄ）段階での排他的否定論理和値が‘０’の場合は前記計算された第２初期キャリデータを出力し、前記排他的論理和値が‘１’の場合には前記計算された入力データＸ２ｉ−１及びＹ２ｉ−１に基づいたデータを出力することを特徴とする請求項３１に記載のキャリ生成方法。
【請求項３３】
前記第２初期キャリデータは、入力データＸ２ｉ−２及びＹ２ｉ−２の論理積であることを特徴とする請求項３１に記載のキャリ生成方法。
【請求項３４】
前記Ｘ２ｉ−１及びＹ２ｉ−１に基づいたデータは、Ｘ２ｉ−１、Ｙ２ｉ−１、Ｘ２ｉ−１とＹ２ｉ−１の論理積、及びＸ２ｉ−１とＹ２ｉ−１の論理和中いずれか一つであることを特徴とする請求項３１ないし３３のうちいずれか一項に記載のキャリ生成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデジタル信号処理に係り、さらに具体的には演算速度を改善して電流消耗と遅延時間を縮められるデジタル信号プロセッサーの条件選択加算器及びその方法に関する。
【０００２】
【従来の技術】
最近、高速ＤＳＰ内で演算機能を遂行する場合、高速マルチ−ビット足し算や掛け算等のための回路設計技術の重要性が高まりつつある。その中、足し算演算はコンピューターシステムやマイクロプロセッサーなどのデータ経路ブロックの必須的機能中の一つであり、システムの速度性能に多大な影響を与える重要な部分である。従来の技術は演算時電流消耗及び遅延時間で満足する程の結果を得られなかった。また、最近の超微細工程の場合、セル遅延時間より配線による遅延時間がさらに大きな比重を占めるので、加算器の内部配線を減らせる回路の設計が必要である。
【０００３】
図１は、従来６４ビット条件選択加算器（ｃｏｎｄｉｔｉｏｎａｌ  ｓｅｌｅｃｔ  ａｄｄｅｒ）１００の全体構造を概略的に示すブロック図である。図１は加算される入力値を分析してキャリを発生して前記キャリの有無による合計を計算するための多数個の条件選択足し算モジュール１１０、１２０、１３０、１４０、１５０、１６０、１７０、１８０と前記条件選択足し算モジュールから発生した前記キャリに応答して前記キャリの有無を判別して条件選択足し算モジュールにフィードバックさせるためのブロックキャリ発生ブロック１９０を示す。
【０００４】
条件選択足し算モジュール１１０、１２０、１３０、１４０、１５０、１６０、１７０、１８０は、加算された入力値を分析して適切な値で予め発生させるためのキャリ合計前置発生ブロック１１２、キャリ合計前置発生ブロック１１２から発生した値の限界を求めるが、キャリの有無による各々の場合に対する合計を求めるための合計発生ブロック１１４、キャリ合計前置発生ブロック１１２から発生した値に応答してキャリを求めるためのキャリ発生ブロック１１６を含む。
【０００５】
第１条件選択足し算モジュール１１０のキャリ合計前置発生ブロック１１２は第１条件選択足し算モジュール１１０で加算される入力値を分析して適切な値で予め加算する。このとき、合計発生ブロック１１４はキャリがある場合の合計とキャリがない場合の合計を各々発生して、キャリ発生ブロック１１６は第１条件選択足し算モジュール１１０のキャリをブロックキャリ発生ブロック１９０に出力する。
【０００６】
また、残り条件選択足し算モジュール１２０、１３０、１４０、１５０、１６０、１７０、１８０のキャリ合計前置発生ブロックは条件選択足し算モジュール１２０、１３０、１４０、１５０、１６０、１７０、１８０で加算される入力値を分析して適切な値で予め加算する。このとき、合計発生ブロック１１４はキャリがある場合の合計とキャリがない場合の合計を各々発生して、キャリ発生ブロックは条件選択足し算モジュールのキャリをブロックキャリ発生ブロック１９０に出力する。
【０００７】
ブロックキャリ発生ブロック１９０は、各々の８ビット条件選択足し算モジュール１１０、１２０、１３０、１４０、１５０、１６０、１７０、１８０からキャリを受け入れて次の段の条件選択足し算モジュールにキャリの有無をフィードバックする。その結果、各々の８ビット条件選択足し算モジュール１１０、１２０、１３０、１４０、１５０、１６０、１７０、１８０の合計発生ブロックから予め計算された合計中キャリの有無による適切な合計が選択される。
【０００８】
図２は、図１に示した８ビット条件選択足し算モジュールにおける合計発生ブロック１１４の構成を示すためのブロック図である。図２に示した合計発生ブロック１１４はＮＭＯＳトランジスタ基盤のパストランジスタロジック（ＰａｓｓＴｒａｎｓｉｓｔｏｒ  Ｌｏｇｉｃ：ＰＴＬ）を利用したマルチプレクサに基づき構成され、低電力と高速動作のためにマルチプレクサの駆動能力に適するようにレベル復元ブロック（ｌｅｖｅｌ  ｒｅｓｔｏｒｅ  ｂｌｏｃｋ：ＬＲＢ）を適切に用いる。ここで、各ブロックに表示されたＭはマルチプレクサ、Ｓはシングルを、Ｄはダブルを、それからＬはレベル復元ブロックを各々示す。例えば、ＭＳと表示されたブロックはシングルマルチプレクサを意味して、Ｍがレベル復元ブロックを備えたダブルマルチプレクサを意味する。
【０００９】
図３及び図４はこのような構造に基づき設計されたキャリ発生ブロック１１６及びブロックキャリ発生ブロック１９０を示す。
【００１０】
図１ないし図３に示したように、従来の技術による加算器はキャリを合計生成ブロック１１４とキャリ生成ブロック１１６で各々計算する。したがって、合計生成ブロック１１４で別途のキャリ発生ロジックをさらに設計すべきなので、配線が複雑でロジックも多く用いるようになる。また、図５に示したように従来の加算器ではキャリ生成ブロック１１６でキャリを計算するためには“ＸＮＯＲ”、“ＸＯＲ”、“ＡＮＤ”、“ＮＡＮＤ”、“ＯＲ”、“ＮＯＲ”の論理値が必要なので、キャリ合計前置ブロック１２は“ＸＮＯＲ”、“ＸＯＲ”、“ＡＮＤ”、“ＮＡＮＤ”、“ＯＲ”、“ＮＯＲ”のような論理ゲートを含んでおり、したがって入力信号‘Ｘ、Ｙ’のファンアウト（ｆａｎ−ｏｕｔ）が多くなって配線が複雑になる問題点があった。
【００１１】
また、従来の加算器は、ＰＴＬを基盤にしたので、キャリ及び合計を計算するための配線が複雑になって物理的な配線遅延（ｐhｙｓｉｃａｌ  ｗｉｒｅ  ｄｅｌａｙ）のために、全体遅延時間が増加して所要面積が大きくなる問題点がある。また、ＰＴＬを用いていることから常に反転信号を必要とするので、これによる配線及び電力消耗が増加する問題点があった。また、図４に示したブロックキャリ発生ブロック１９０で生成したブロックキャリＢＣ０、ＢＣ１、ＢＣ２、ＢＣ３、ＢＣ４、ＢＣ５、ＢＣ６、ＢＣ７は相互同期化されない状態で出力されるため、結局各モジュールにおける合計の発生も全く同期されない問題点があった。
【００１２】
【発明が解決しようとする課題】
したがって、本発明は前述したような従来の技術の問題点を解決するために案出されたもので、その目的は電力消耗、チップ面積、ロジック使用、及び遅延時間を縮められるキャリ生成器及びその方法を提供することにある。
【００１３】
本発明の他の目的は、電力消耗、チップ面積、ロジック使用、及び遅延時間を縮められるキャリ生成器及び合計生成器とこれを利用した条件選択加算器を提供することにある。
【００１４】
【課題を解決するための手段】
前記技術的課題を解決するために、本発明に係る初期キャリを考慮してＸｉ及びＹｉのキャリを発生するためのキャリ発生器は入力データＸｉ及びＹｉに基づいた所定のデータの入力を受けるための第１入力部と、前記初期キャリの入力を受けるための第２入力部と、前記入力データＸｉ及びＹｉの排他的論理和の入力を受ける選択部を備え、前記選択部に入力される排他的論理和値によって前記第１入力部に入力された入力データＸｉ及びＹｉに基づいた所定のデータまたは前記第２入力部に入力された初期キャリ中いずれか一つを選択してキャリとして出力することを特徴とする。
【００１５】
前記技術的課題を解決するために、本発明に係るｎビットよりなる二つの入力データＸ０−Ｘｎ−１、Ｙ０−Ｙｎ−１のキャリを生成するためのキャリ生成器は、入力データＸｉ及びＹｉに基づいたデータの入力を受けるための第１入力部と、初期キャリデータの入力を受けるための第２入力部と、前記入力データＸｉ及びＹｉの排他的論理和の入力を受ける選択部を備えた少なくとも一つ以上の第１サブキャリ生成部を含み、前記第１サブキャリ生成部は前記選択部に入力される排他的論理和値によって前記第１入力部に入力された入力データＸｉ及びＹｉに基づいたデータまたは前記第２入力部に入力された初期キャリデータ中いずれか一つを出力することを特徴とする。
【００１６】
前記技術的課題を解決するために、本発明によるキャリ生成器は、ｎビットよりなＲ二つの入力データＸ０−Ｘｎ−１、Ｙ０−Ｙｎ−１のキャリを生成するキャリ生成部と前記入力値の合計を発生する合計発生部を備える複数個の足し算モジュールと、該足し算モジュールから発生したキャリに応答して前記足し算モジュールのキャリ有無を決定して次の段の足し算モジュールにフィードバックさせるためのブロックキャリ発生部を含むことを特徴とする条件選択加算器は入力データＸｉ及びＹｉに基づいたデータの入力を受けるための第１入力部と；初期キャリデータの入力を受けるための第２入力部と、前記入力データＸｉ及びＹｉの排他的論理和を入力受ける選択部を備えて、前記選択部に入力される排他的論理和値によって前記第１入力部に入力された入力データＸｉ及びＹｉに基づいたデータまたは前記第２入力部に入力された初期キャリデータ中いずれか一つを出力する少なくとも一つ以上の第１サブキャリ生成部と、初期キャリデータの入力を受けるための第１入力部と、Ｘｉ及びＹｉに基づいたデータの入力を受けるための第２入力部と、前記入力データＸｉ及びＹｉの排他的否定論理和を入力受ける選択部を備えて、前記選択部に入力される排他的否定論理和値によって前記第１入力部に入力された初期キャリデータまたは前記第２入力部に入力されたＸｉ及びＹｉに基づいたデータ中いずれか一つを出力する少なくとも一つ以上の第２サブキャリ生成部と、前記第１及び第２サブキャリ生成部からの出力が入力される二個の入力部と、所定の選択信号が入力される選択部を備えて、前記選択部に入力される選択信号値によって前記入力部に入力された値中いずれか一つを出力する少なくとも一つ以上のキャリ選択部を含むキャリ生成部を含むことを特徴とする。
【００１７】
前記技術的課題を解決するために、本発明に係る加算装置に用いられる初期キャリを考慮してＸｉとＹｉのキャリを生成するためのキャリ生成方法は（ａ）入力データＸｉ及びＹｉに基づいた所定のデータを計算する段階と、（ｂ）入力データＸｉ及びＹｉが同一であるか否かを判断する段階と、（ｃ）前記Ｘｉ及びＹｉが同一であるか否かによって前記初期キャリまたは前記Ｘｉ及びＹｉに基づいた所定のデータをＸｉ及びＹｉのキャリとして選択して出力することを特徴とする。
【００１８】
前記技術的課題を解決するために、本発明に係る加算装置に用いられるｎビットよりなる二つの入力データＸ０〜Ｘｎ−１、Ｙ０〜Ｙｎ−１のキャリを発生するためのキャリ生成方法は（ａ）入力データＸ２ｉ−１及びＹ２ｉ−１に基づいて所定のデータを計算する段階と、（ｂ）入力データＸ２ｉ−２及びＹ２ｉ−２の第１初期キャリデータを計算する段階と、（ｃ）入力データＸ２ｉ−１及びＹ２ｉ−１の排他的論理和を計算する段階と、（ｄ）前記計算された入力データＸ２ｉ−１及びＹ２ｉ−１の排他的論理和値によって前記入力データＸ２ｉ−１及びＹ２ｉ−１に基づいたデータまたは前記第１初期キャリデータ中いずれか一つを選択して第１キャリを発生する段階を含むことを特徴とする。
【００１９】
【発明の実施の形態】
以下、図６ないし図１０に基づき本発明に係る一実施例を説明する。
【００２０】
図６は、本発明に係る６４ビット条件選択加算器６００の全体構造を概略的に示すブロック図である。図６に示した条件選択加算器６００は加算される入力値を分析してキャリを発生し、前記キャリの有無による合計を計算するための多数個の条件選択足し算モジュール６１０、６２０、６３０、６４０、６５０、６６０、６７０、６８０と前記条件選択足し算モジュールから発生した前記キャリに応答して前記キャリの有無を判別して次の段の条件選択足し算モジュールにフィードバックさせるためのブロックキャリ発生ブロック６９０を示す。
【００２１】
条件選択足し算モジュール６１０、６２０、６３０、６４０、６５０、６６０、６７０、６８０は、加算された入力値を分析して適切な値に予め発生させるためのキャリ合計前置発生ブロック６１２、キャリ合計前置発生ブロック６１２から発生した値の合計を求め、キャリの有無による各々の場合に対する合計を求めるための合計発生ブロック６１４、キャリ合計前置発生ブロック６１２から発生した値に応答してキャリを求めるためのキャリ発生ブロック６１６を含む。
【００２２】
第１条件選択足し算モジュール６１０のキャリ合計前置発生ブロック６１２は、第１条件選択足し算モジュール６１０で加算される入力値を分析して適切な値に予め加算する。このとき、合計発生ブロック６１４はキャリがある場合の合計とキャリがない場合の合計を各々発生して、キャリ発生ブロック６１６は第１条件選択足し算モジュール６１０のキャリをブロックキャリ発生ブロック６９０に出力する。
【００２３】
このとき、キャリ発生ブロック６１６の基本動作を説明すると下記の真理表のとおりである。
【００２４】
【表１】
0003682965.tif 000002
前記真理表1によるとＣｏｕｔｎとＣｉｎｎ間に次のような関係があることが分かる。
【００２５】
Ｃｏｕｔｎ＝（Ｘｎ  ＡＮＤ  Ｙｎ）・〜Ｃｉｎｎ＋（Ｘｎ  ＯＲ  Ｙｎ）・Ｃｉｎｎ
また、キャリ発生ブロック６１６の基本動作を説明すると下記真理表のとおりである。
【００２６】
【表２】
0003682965.tif 000003
前記真理表２によるキャリ計算をＸＯＲを基準にして考えれば次のような関係があることが分かる。
【００２７】
すなわち、ＸＯＲが‘１’の場合、生成するキャリＣｏｕｔｎはＣｉｎｎ値を有するようになり、ＸＯＲが‘０’の場合には入力データＸｎ値を有するようになる。また、ＸＯＲが‘０’の場合にはＣｏｕｔｎが入力データＹｎ値または入力データＸｎ及びＹｎの論理和値を有させても結果は同一である。
【００２８】
また、表２の真理表によるキャリ計算をＸＮＯＲを基準にして考えれば次のような関係があることが分かる。
【００２９】
すなわち、ＸＮＯＲが‘０’の場合、ＣｏｕｔｎはＣｉｎｎ値を有するようになり、ＸＮＯＲが‘１’の場合には入力データＸｎ値を有するようになる。また、ＸＮＯＲが‘１’の場合にはＣｏｕｔｎが入力データＹｎ値または入力データＸｎ及びＹｎの論理和値を有させても結果は同一である。
【００３０】
図８は前記のような関係を利用して設計されたキャリ発生ブロック６１６を図示する。すなわち、キャリ発生ブロック６１６は所定ビットの二データＸｎ、Ｙｎからの排他的否定論理和値ＳＨ、排他的論理和値ＳＬ、論理和値ＣＰ、及び論理積値ＣＧの入力を受けてこれよりキャリ伝播（ｃａｒｒｙ  ｐｒｏｐａｇａｔｉｏｎ）値ＣＰ０及びキャリ生成（ｃａｒｒｙ  ｇｅｎｅｒａｔｉｏｎ）値ＣＧ０を計算して、ブロックキャリ生成ブロック６９０に出力する。
【００３１】
また、キャリ発生ブロック６１６は、図８に示したように入力データＸ０、Ｙ０からのキャリ伝播値Ｃ０Ｐ及びキャリ生成値Ｃ０Ｇを生成して、次の入力データＸ１、Ｙ１のキャリ伝播値Ｃ１Ｐ及びキャリ生成値Ｃ１Ｇを計算するためのＣＭＯＳによるＭＵＸ（ｍｕｌｔｉｐｌｅｘｅｒ）及び合計生成ブロック６１４に出力する。
【００３２】
本実施例によるＭＵＸは、一つの選択部と第１入力部及び第２入力部を有し、選択部に入力された選択信号の値が‘０’の場合には第１入力部に入力された信号を選択して出力し、選択信号の値が‘１’の場合には第２入力部に入力された信号を選択して出力する。
【００３３】
前記段階で生成したキャリ生成値Ｃ０Ｇは、キャリ生成値Ｃ１Ｇを計算するために、図８に示したようにキャリ生成値を出力するためのサブキャリ生成部として機能するＭＵＸ８１１ａの第１入力部に入力され、ＭＵＸ８１１ａの第２入力部には入力データＸ１、Ｙ１の論理和値が入力される。ＭＵＸ８１１ａの選択部には入力データＸ１、Ｙ１の排他的否定論理和値が入力され、入力された排他的否定論理和値によって第１入力部に入力されたキャリ生成値Ｃ０Ｇと第２入力部に入力された入力データＸ１、Ｙ１の論理和値を選択的に出力する。
【００３４】
本実施例によると、入力データＸ１、Ｙ１の排他的否定論理和が‘０’の場合には第１入力部に入力されたキャリ生成値Ｃ０Ｇを出力し、入力データＸ１、Ｙ１の排他的否定論理和が‘１’の場合には第２入力部に入力された入力データＸ１、Ｙ１の論理積値を出力する。前記ＭＵＸ８１１ａの出力値は入力データＸ１、Ｙ１のキャリ伝播値Ｃ１Ｇ値として合計発生ブロック６１４に出力され、入力データＸ１、Ｙ１の合計を計算するために用いられる。
【００３５】
本発明の他の実施例において入力データＸ１、Ｙ１の排他的否定論理和が‘１’の場合の出力は入力データＸ１、Ｙ１、または入力データＸ１、Ｙ１の論理和中いずれか一つである。
【００３６】
また、生成したキャリ伝播値Ｃ０Ｐは、キャリ伝播値Ｃ１Ｐを計算するために、図８に示したようにキャリ伝播値を出力するためのサブキャリ生成部として機能するＭＵＸ８１１ｂの第２入力部に入力され、前記ＭＵＸ８１１ｂには入力データＸ１、Ｙ１の論理積値が入力される。ＭＵＸ８１１ｂの選択部には入力データＸ１、Ｙ１の排他的論理和が入力され、入力された排他的論理和によって入力された入力データＸ１、Ｙ１の論理和値とキャリ伝播値Ｃ０Ｐ中の一つが選択的に出力される。
【００３７】
本実施例では入力データＸ１、Ｙ１の排他的論理和が‘０’の場合には第１入力部に入力された入力データＸ１、Ｙ１の論理積値を選択して出力し、入力データＸ１、Ｙ１の排他的論理和が‘１’の場合には第２入力部に入力されたキャリ伝播値Ｃ０Ｐを選択して出力する。前記ＭＵＸ８１１ｂの出力値は入力データＸ１、Ｙ１のキャリ伝播値Ｃ１Ｐ値として合計発生ブロック６１４に出力され、入力データＸ１、Ｙ１の合計を計算するために用いられる。
【００３８】
本発明のさらに他の実施例において入力データＸ１、Ｙ１の排他的論理和が‘０’の場合の出力は入力データＸ１、Ｙ１、または入力データＸ１、Ｙ１の論理和中いずれか一つである。
【００３９】
同様に、前記で生成したキャリ伝播値Ｃ１Ｐ及びキャリ生成値Ｃ１Ｇは入力データＸ２、Ｙ２、Ｘ３、及びＹ３のキャリ伝播Ｃ３Ｐ及びキャリ生成Ｃ３Ｇを計算するためのＭＵＸ８１３ａ、８１３ｂ及び合計生成ブロック６１４に出力される。
【００４０】
また、前置キャリ合計生成ブロック６１２で生成した入力データＸ２、Ｙ２からのキャリ伝播値ＣＰ及びキャリ生成値ＣＧは次の入力データＸ３、Ｙ３のキャリ伝播Ｃ３Ｐ及びキャリ生成Ｃ３Ｇを計算するためのＭＵＸ８１２ａ、８１２ｂに出力される。
【００４１】
前記段階で生成したキャリ生成値ＣＧは、ＭＵＸ８１２ａの第１入力部に入力され、ＭＵＸ８１２ａの第２入力部には入力データＸ３、Ｙ３の論理和値が一緒に入力される。ＭＵＸ８１２ｂの選択部には入力データＸ３、Ｙ３の排他的否定論理和値が入力され、入力された排他的否定論理和値によって第１入力部に入力されたキャリ生成値と第２入力部に入力された入力データＸ３、Ｙ３の論理積値を選択的に出力する。
【００４２】
本実施例では入力データＸ３、Ｙ３の排他的否定論理和が‘０’の場合には第１入力部に入力されたキャリ生成値を出力し、入力データＸ３、Ｙ３の排他的否定論理和が１の場合には第２入力部に入力された入力データＸ３、Ｙ３の論理積値を出力する。
【００４３】
また、生成したＸ２、Ｙ２のキャリ伝播値ＣＰは、ＭＵＸ８１２ｂの第２入力部に入力され、前記ＭＵＸ８１２ｂの第１入力部には入力データＸ１、Ｙ１の論理積値が一緒に入力される。ＭＵＸ８１２ｂの選択部には入力データＸ３、Ｙ３の排他的論理和が入力され、入力された排他的否定論理和値によって第１入力部に入力された入力データＸ３、Ｙ３の論理積値と第２入力部に入力されたＸ２、Ｙ２のキャリ伝播値中の一つを選択的に出力する。
【００４４】
本実施例では入力データＸ３、Ｙ３の排他的論理和が‘０’の場合には第１入力部に入力された入力データＸ３、Ｙ３の論理積値を選択して出力して、入力データＸ３、Ｙ３の排他的否定論理和が‘１’の場合には第２入力部に入力されたキャリ伝播値を選択して出力する。
【００４５】
本発明のさらに他の実施例において、入力データＸ１、Ｙ１の排他的論理和が‘０’の場合の出力は入力データＸ３、Ｙ３、または入力データＸ３、Ｙ３の論理和中いずれか一つである。
【００４６】
また、ＭＵＸ８１１ａから出力されたキャリ生成値Ｃ１Ｇはキャリ生成値Ｃ３Ｇを生成するためのＭＵＸ８１３ｂの選択部に選択信号として入力される。ＭＵＸ８１３ｂの二つの入力部には前記ＭＵＸ８１２ａからの出力及び前記ＭＵＸ８１２ｂからの出力が各々入力される。本実施例ではＭＵＸ８１３ｂに入力される選択信号Ｃ１Ｇの値が‘０’の場合、ＭＵＸ８１３ｂは第１入力部に入力されたＭＵＸ８１２ａから出力される信号を選択して入力信号Ｘ２、Ｙ２、Ｘ３、Ｙ３に対するキャリ生成値Ｃ３Ｇとして出力する。また、ＭＵＸ８１３ｂに入力される選択信号Ｃ１Ｇの値が‘１’の場合、ＭＵＸ８１３ｂは第２入力部に入力されたＭＵＸ８１２ｂから出力される信号を選択して入力信号Ｘ２、Ｙ２、Ｘ３、Ｙ３に対するキャリ生成値Ｃ３Ｇとして出力する。出力されたキャリ生成値Ｃ３Ｇは合計生成ブロック６１４及びＭＵＸ８１５ｂに出力される。
【００４７】
また、ＭＵＸ８１１ｂから出力されたキャリ生成値Ｃ１Ｐは、キャリ伝播値Ｃ３Ｐを生成するためのＭＵＸ８１３ａの選択部に選択信号として入力される。ＭＵＸ８１３ａの二つの入力部には前記ＭＵＸ８１２ａからの出力及び前記ＭＵＸ８１２ｂからの出力が各々入力される。
【００４８】
本実施例ではＭＵＸ８１３ａに入力される選択信号Ｃ１Ｐの値が‘０’の場合、ＭＵＸ８１３ａは第１入力部に入力されたＭＵＸ８１２ａから出力される信号を選択して入力信号Ｘ２、Ｙ２、Ｘ３、Ｙ３に対するキャリ伝播値Ｃ３Ｇとして出力する。また、ＭＵＸ８１３ａに入力される選択信号Ｃ１Ｇの値が‘１’の場合、ＭＵＸ８１３ｂはＭＵＸ８１２ｂから出力される信号を選択して入力信号Ｘ２、Ｙ２、Ｘ３、Ｙ３に対するキャリ生成値Ｃ３Ｇとして出力する。出力されたキャリ生成値Ｃ３Ｇは合計生成ブロック６１４及びＭＵＸ８１５ｂに送られる。
【００４９】
前記で生成したキャリ伝播値Ｃ３Ｐ及びキャリ生成値Ｃ３Ｇは、次の入力データＸ４、Ｙ４、Ｘ５、及びＹ５のキャリ伝播Ｃ５Ｐ及びキャリ生成Ｃ５Ｇを計算するためのＭＵＸ８１５ａ、８１５ｂ及び合計生成ブロック６１４に出力される。また、計算されたキャリ伝播Ｃ３Ｐ及びキャリ生成Ｃ３Ｇはキャリ発生ブロックのキャリ伝播値ＣＰ及びキャリ生成値ＣＧを計算するためのＭＵＸ８１８ａ、８１８ｂに出力されて、計算されたＣＰ及びＣＧはブロックキャリ発生ブロック６９０に出力される。
【００５０】
ここで、ＭＵＸ８１４ａないし８１８ｂは図８に示した対応するＭＵＸと同一な機能を遂行する。
【００５１】
このように、図８によるキャリ発生ブロック６１６は、ＮＡＮＤ及びＮＯＲを用いないで、ＸＯＲ及びＸＮＯＲによるキャリを計算することにより、従来の技術に比べてゲートカウント及び内部配線を減らすことができ、これにより遅延時間、チップ面積、及び電力消耗などを減少させる効果がある。
【００５２】
また、合計発生ブロック６１４の基本動作は、前記真理表２のようになされる。合計発生ブロック６１４はキャリ合計前置ブロック６１２からの所定ビットの二つのデータＸｎ、Ｙｎからの排他的否定論理和値ＳＨ、排他的論理和値ＳＬ、論理和値ＣＰ、及び論理積値ＣＧと、キャリ発生ブロック６１６からのキャリ伝播値Ｃ０Ｐ、Ｃ１Ｐ、Ｃ２Ｐ、Ｃ３Ｐ及びキャリ生成値Ｃ０Ｇ、Ｃ１Ｇ、Ｃ２Ｇ、Ｃ３Ｇの入力を受けて、前記真理表２によって合計を出力する。
【００５３】
前記真理表２によると、入力キャリ値と合計は次のような関係がある。
【００５４】
Ｓｎ＝（Ｘｎ  ＸＯＲ  Ｙｎ）・〜Ｃｉｎｎ＋（Ｘｎ  ＸＮＯＲ  Ｙｎ）・Ｃｉｎｎ
すなわち、入力キャリ値が‘０’の場合、合計Ｓｎは入力データＸｎ及びＹｎの排他的論理和であり、入力キャリ値が‘１’の場合には合計ＳｎはＸｎ及びＹｎの排他的否定論理和という関係が成立する。
【００５５】
図９は、前記関係を利用して設計された合計発生ブロック６１４を示する。合計発生ブロック６１４はキャリ合計前置発生ブロック６１２から入力される所定ビットの二つのデータＸｎ、Ｙｎ各々に対する排他的否定論理和値ＳＨ、排他的論理和値ＳＬ、論理和値ＣＰ、及び論理積値ＣＧと、キャリ発生ブロック６１６から入力されるキャリ伝播値Ｃ０Ｐ、Ｃ１Ｐ、Ｃ３Ｐ、Ｃ５Ｐ及びキャリ生成値Ｃ０Ｇ、Ｃ１Ｇ、Ｃ３Ｇ、Ｃ５Ｇに基づいて二つのデータＸｎ（Ｘ０、Ｘ１、Ｘ２、Ｘ３、Ｘ４、Ｘ５、Ｘ６、Ｘ７）及びＹｎ（Ｙ０、Ｙ１、Ｙ２、Ｙ３、Ｙ４、Ｙ５、Ｙ６、Ｙ７）のキャリ有無による２種の場合の合計を求めて、キャリ有無によって図９に示した合計生成ブロック６１４の合計選択部１０１０内のＭＵＸによって各場合の合計Ｓｎ（Ｓ０、Ｓ１、Ｓ２、Ｓ３、Ｓ４、Ｓ５、Ｓ６、Ｓ７）を出力する。
【００５６】
図９を参照して合計生成ブロック６１４の動作をさらに具体的に説明すると、入力データＸ０及びＹ０の排他的論理和ＳＬ及び排他的否定論理和ＳＨは合計選択ブロック１０１０のＭＵＸに各々入力されて合計選択ブロック９２０に入力されるキャリ入力信号Ｃｉｎ値によって選択的に出力される。本実施例ではキャリ入力信号Ｃｉｎが‘０’の場合には入力データＸ０及びＹ０の排他的論理和ＳＬを選択して、キャリ入力信号Ｃｉｎが‘１’の場合には入力データＸ０及びＹ０の排他的否定論理和ＳＨを選択して入力データＸ０及びＹ０に対する合計Ｓ０として出力する。
【００５７】
また、入力データＸ１及びＹ１に対する合計Ｓ１は下記のような方式で計算される。
【００５８】
ＭＵＸ９１０ａの二個の入力部には入力データＸ１及びＹ１の排他的論理和ＳＬ及び排他的否定論理和ＳＨが各々入力され、ＭＵＸ９１０ａの選択部には選択信号として機能するキャリ生成ブロック６１６で生成したキャリ伝播値Ｃ０Ｐが入力され、入力されたキャリ伝播値Ｃ０Ｐ値によって入力された入力データＸ１及びＹ１の排他的論理和ＳＬ及び排他的否定論理和ＳＨ中の一つを選択的に出力する。本実施例では入力されたキャリ伝播値Ｃ０Ｐが‘０’の場合には入力データＸ１及びＹ１の排他的論理和ＳＬを選択し、キャリ伝播値Ｃ０Ｐが‘１’の場合には入力データＸ１及びＹ１の排他的否定論理和ＳＨを選択して合計選択部１０１０に出力する。
【００５９】
また、ＭＵＸ９１０ｂの二個の入力部には入力データＸ１及びＹ１の排他的論理和ＳＬ及び排他的否定論理和ＳＨが各々入力されて、ＭＵＸ９１０ｂの選択部には選択信号として機能するキャリ生成ブロック６１６で生成したキャリ生成値Ｃ０Ｇが入力され、ＭＵＸ９１０ｂに入力されるキャリ生成値Ｃ０Ｇ値によって入力された入力データＸ１及びＹ１の排他的論理和ＳＬ及び排他的否定論理和ＳＨ中の一つを選択的に出力する。
【００６０】
本実施例では入力されたキャリ伝播値Ｃ０Ｇが‘０’の場合には入力データＸ１及びＹ１の排他的論理和ＳＬを選択して、キャリ伝播値Ｃ０Ｇが‘１’の場合には入力データＸ１及びＹ１の排他的否定論理和ＳＨを選択して合計選択部１０１０に出力する。
【００６１】
合計選択部１０１０では前記ＭＵＸ９１０ａ及びＭＵＸ９１０ｂから入力された出力値が各々入力され、前記入力データＸ０及びＹ０の合計を計算することと同一方式で、キャリ入力信号Ｃｉｎ値によってＭＵＸ９１０ａからの入力値及びＭＵＸ９１０ｂからの入力値中の一つを選択して、入力データＸ１及びＹ１の合計Ｓ１として出力する。本実施例ではキャリ入力信号Ｃｉｎが‘０’の場合にはＭＵＸ９１０ａからの入力値を選択して、キャリ入力信号Ｃｉｎが‘１’の場合にはＭＵＸ９１０ｂからの入力値を選択して入力データＸ１及びＹ１に対する合計Ｓ１として出力する。
【００６２】
また、入力データＸ２及びＹ２に対する合計Ｓ２は下記のような方式で計算される。
【００６３】
ＭＵＸ９１１ａの二個の入力部には入力データＸ２及びＹ２の排他的論理和ＳＬ及び排他的否定論理和ＳＨが各々入力され、ＭＵＸ９１１ａの選択部には選択信号として働くキャリ生成ブロック６１６で生成したキャリ伝播値Ｃ１Ｐが入力され、入力されたキャリ伝播値Ｃ１Ｐ値によって入力された入力データＸ２及びＹ２の排他的論理和ＳＬ及び排他的否定論理和ＳＨ中の一つを選択的に出力する。本実施例では入力されたキャリ伝播値Ｃ１Ｐが‘０’の場合には入力データＸ２及びＹ２の排他的論理和ＳＬを選択し、キャリ伝播値Ｃ１Ｐが‘１’の場合には入力データＸ２及びＹ２の排他的否定論理和ＳＨを選択して合計選択部１０１０に出力する。
【００６４】
また、ＭＵＸ９１０ｂの二個の入力部には入力データＸ２及びＹ２の排他的論理和ＳＬ及び排他的否定論理和ＳＨが各々入力され、ＭＵＸ９１０ｂの選択部には選択信号として働くキャリ生成ブロック６１６で生成したキャリ生成値Ｃ１Ｇが入力され、ＭＵＸ９１０ｂに入力されるキャリ生成値Ｃ１Ｇ値によって入力された入力データＸ２及びＹ２の排他的論理和ＳＬ及び排他的否定論理和ＳＨ中の一つを選択的に出力する。
【００６５】
本実施例では入力されたキャリ伝播値Ｃ１Ｇが‘０’の場合には入力データＸ１及びＹ１の排他的論理和ＳＬを選択して、キャリ伝播値Ｃ１Ｇが‘１’の場合には入力データＸ１及びＹ１の排他的否定論理和ＳＨを選択して合計選択部１０１０に出力する。
【００６６】
合計選択部１０１０では前記ＭＵＸ９１１ａ及びＭＵＸ９１１ｂから入力された出力値が各々入力されて、前記入力データＸ１及びＹ１の合計を計算することと同一方式で、キャリ入力信号Ｃｉｎ値によってＭＵＸ９１０ａからの入力値及びＭＵＸ９１０ｂからの入力値中の一つを選択して、入力データＸ２及びＹ２の合計Ｓ２として出力する。本実施例ではキャリ入力信号Ｃｉｎが‘０’の場合にはＭＵＸ９１１ａからの入力値を選択して、キャリ入力信号Ｃｉｎが‘１’の場合にはＭＵＸ９１１ｂからの入力値を選択して入力データＸ２及びＹ２に対する合計Ｓ２として出力する。
【００６７】
また、入力データＸ３及びＹ３に対する合計Ｓ３は下記のような方式で計算される。
【００６８】
ＭＵＸ９１２ａの二個の入力部には入力データＸ３及びＹ３の排他的論理和ＳＬ及び排他的否定論理和ＳＨが各々入力され、ＭＵＸ９１２ａの選択部には選択信号として働く入力データＸ２及びＹ２のキャリ伝播値ＣＰが入力され、ＭＵＸ９１２ａに入力されるキャリ伝播値ＣＰ値によって第１入力部に入力された入力データＸ３及びＹ３の排他的論理和ＳＬ及び第２入力部に入力された排他的否定論理和ＳＨ中の一つが選択的に出力される。
【００６９】
本実施例では入力されたキャリ伝播値ＣＰが‘０’の場合には第１入力部に入力された入力データＸ３及びＹ３の排他的論理和ＳＬを選択し、キャリ伝播値ＣＰが‘１’の場合には第２入力部に入力された入力データＸ３及びＹ３の排他的否定論理和ＳＨを選択してＭＵＸ９１３ａ及びＭＵＸ９１３ｂの入力部に出力する。
【００７０】
また、ＭＵＸ９１２ｂの二個の入力部には入力データＸ３及びＹ３の排他的論理和ＳＬ及び排他的否定論理和ＳＨが各々入力され、ＭＵＸ９１２ｂの選択部には選択信号として働く入力データＸ２及びＹ２のキャリ生成値ＣＧが入力され、ＭＵＸ９１２ｂに入力されるキャリ生成値ＣＧ値によって第１入力部に入力された入力データＸ１及びＹ１の排他的論理和ＳＬ及び第２入力部に入力された排他的否定論理和ＳＨ中の一つが選択的に出力される。本実施例では入力されたキャリ生成値ＣＧが‘０’の場合には入力データＸ１及びＹ１の排他的論理和ＳＬを選択し、キャリ生成値Ｃ０Ｇが‘１’の場合には入力データＸ１及びＹ１の排他的否定論理和ＳＨを選択してＭＵＸ９１３ａ及びＭＵＸ９１３ｂに出力する。
【００７１】
ＭＵＸ９１３ａの二個の入力部にはＭＵＸ９１２ａ及びＭＵＸ９１２ｂから出力値が各々入力され、ＭＵＸ９１３ａの選択部にはキャリ生成ブロック６１６で生成したＣ１Ｐが入力され、入力されたキャリ伝播値Ｃ１Ｐによって、ＭＵＸ９１２ａからの入力値及びＭＵＸ９１２ｂから入力値中の一つを選択的に出力する。本実施例では入力されたキャリ伝播値Ｃ１Ｐが‘０’の場合にはＭＵＸ９１２ｂからの入力値を選択し、入力値が‘１’の場合にはＭＵＸ９１２ａからの入力値を選択して合計選択部１０１０に出力する。
【００７２】
また、ＭＵＸ９１３ｂの二個の入力部にはＭＵＸ９１２ａ及びＭＵＸ９１２ｂから出力値が各々入力され、ＭＵＸ９１３ｂの選択部にはキャリ生成ブロック６１６で生成したＣ１Ｇが入力され、入力されたキャリ伝播値Ｃ１Ｇによって、ＭＵＸ９１２ａからの入力値及びＭＵＸ９１２ｂから入力値中の一つを選択的に出力する。本実施例では入力されたキャリ伝播値Ｃ１Ｐが‘０’の場合にはＭＵＸ９１２ｂからの入力値を選択し、入力されたキャリ伝播値Ｃ１Ｐが‘１’の場合にはＭＵＸ９１２ａからの入力値を選択して合計選択部１０１０に出力する。
【００７３】
合計選択部１０１０では前記入力データＸ２及びＹ２の合計を計算することと同一方式で、キャリ入力Ｃｉｎ値によってＭＵＸ９１３ａからの入力値及びＭＵＸ９１３ｂからの入力値中の一つを選択して、入力データＸ３及びＹ３の合計Ｓ３として出力する。本実施例ではキャリ入力Ｃｉｎが‘０’の場合にはＭＵＸ９１３ａからの入力値を選択して、キャリ入力Ｃｉｎが‘１’の場合にはＭＵＸ９１３ｂからの入力値を選択して入力データＸ３及びＹ３に対する合計Ｓ３として出力する。
【００７４】
入力データＸ４、Ｙ４、Ｘ５、Ｙ５、Ｘ６、Ｙ６、Ｘ７、Ｙ７の合計は前述したＸ２、Ｙ２、Ｘ３、Ｙ３の合計を求めることと同一方式で計算される。
【００７５】
このように、合計発生ブロック６１４は、ＮＡＮＤ及びＮＯＲを用いないので内部配線が減少し、これにより遅延時間、チップ面積、及び電力消耗などを減少させる効果がある。また、合計計算ブロック６１４はキャリ発生ブロック６１６からの入力されたキャリ伝播値Ｃ０Ｐ、Ｃ１Ｐ、Ｃ３Ｐ、Ｃ５Ｐ及びキャリ生成値Ｃ０Ｇ、Ｃ１Ｇ、Ｃ３Ｇ、Ｃ５Ｇを用いることによって、別途のキャリ発生ロジックを備える必要を無くすことによって配線及びロジックを簡単にする効果がある。
【００７６】
このように、本発明に係るキャリ発生ブロック６１６及び合計発生ブロック６１４はキャリ合計前置発生ブロック６１２から所定ビットの二つのデータＸｎ、Ｙｎの排他的否定論理和値ＳＨ、排他的論理和値ＳＬ、論理和値ＣＰ、及び論理積値ＣＧのみを必要とするため、本発明に係るキャリ合計前置発生ブロック６１２は、図７に示したように、図５に示した従来のキャリ合計前置発生ブロック１１２とは違って、“ＸＮＯＲ”、“ＸＯＲ”、“ＯＲ”、及び“ＡＮＤ”論理値を計算するためのロジックのみを備えている。したがって、本発明に係る条件選択加算器は従来の加算器に比べてファンアウトを減少させることが可能であり、“ＮＡＮＤ”及び“ＮＯＲ”のようなロジックが要らないため、内部配線減少、チップ面積減少、電力消耗の減少のような効果を得ることができる。
【００７７】
以下、本発明の一実施例によってＸ０＝１  Ｘ１＝０  Ｘ２＝１  Ｘ３＝１の場合とＹ０＝１  Ｙ１＝０  Ｙ２＝０  Ｙ３＝１の場合のこれら４ビット二陣数の合計、すなわち‘１１０１’＋‘１００１’＝‘１０１１０’を求める過程を図８に示したキャリ生成ブロックと図９に示した合計生成ブロックを参照しながら説明する。
【００７８】
まず、図８のキャリ生成ブロックを参照すると、キャリ合計前置発生ブロック６１２では入力データＸ０、Ｙ０の論理和‘１’及び論理積‘１’がＣＰ及びＣＧ信号として出力されて、図９に示した合計発生ブロック６１４のＭＵＸ９１０ａ及びＭＵＸ９１０ｂにＣ０Ｐ及びＣ０Ｇ信号として各々入力される。
【００７９】
また、ＭＵＸ８１１ａの第１入力部にはＸ０、Ｙ０の論理積‘１’が初期キャリ値として入力され、第２入力部にはＸ１、Ｙ１の論理積‘０’が入力される。ＭＵＸ８１１ａの選択部にはＸ１、Ｙ１の排他的否定論理和‘１’が入力されて、これにより第２入力部に入力されたＸ１、Ｙ１の論理積‘０’が選択されてＣ１Ｇ信号として合計発生ブロック６１４に出力される。
【００８０】
また、ＭＵＸ８１１ｂの第１入力部にはＸ１、Ｙ１の論理積‘０’が入力され、第２入力部にはＸ０、Ｙ０の論理和‘１’が初期キャリ値として入力される。ＭＵＸ８１１ｂの選択部にはＸ１、Ｙ１の排他的論理和‘０’が入力され、これにより第１入力部に入力されたＸ１、Ｙ１の論理積‘０’が選択されてＣ１Ｐ信号として合計発生ブロック６１４に出力される。
【００８１】
ＭＵＸ８１２ａの第１入力部にはＸ２、Ｙ２の論理積‘０’が初期キャリ値として入力され、第２入力部にはＸ３、Ｙ３の論理積‘１’が入力される。ＭＵＸ８１２ａの選択部にはＸ３、Ｙ３の排他的否定論理和‘１’が入力され、これにより第２入力部に入力されたＸ３、Ｙ３の論理積‘１’が選択されてＭＵＸ８１３ａ及びＭＵＸ８１３ｂの第１入力部に出力される。
【００８２】
ＭＵＸ８１２ｂの第１入力部にはＸ３、Ｙ３の論理積‘１’が入力され、第２入力部にはＸ２、Ｙ２の論理和‘１’が初期キャリ値として入力される。ＭＵＸ８１２ｂの選択部にはＸ３、Ｙ３の排他的論理和‘０’が入力され、これにより第１入力部に入力されたＸ３、Ｙ３の論理積‘１’が選択され、ＭＵＸ８１３ａ及びＭＵＸ８１３ｂの第２入力部に出力される。
【００８３】
ＭＵＸ８１３ａの選択部にはＭＵＸ８１１ｂの出力値‘０’が入力されて、これにより第１入力部に入力された値‘１’が選択され、Ｃ３Ｐ信号として合計発生ブロック６１４に出力される。
【００８４】
ＭＵＸ８１３ｂの選択部にはＭＵＸ８１１ａの出力値‘０’が入力され、これにより第１入力部に入力された値‘１’が選択されて、Ｃ３Ｇ信号として合計発生ブロック６１４に出力される。
【００８５】
図９に示した合計発生ブロック６１４を参照すると、まず入力データＸ０、Ｙ０の排他的論理和‘０’及び排他的否定論理和‘１’が初期キャリ値Ｃｉｎによる合計Ｓ０を決定するための二個の入力信号、すなわち第１選択信号及び第２選択信号として合計発生部１０１０のＭＵＸの第１及び第２入力部に各々入力される。
【００８６】
また、ＭＵＸ９１０ａの第１入力部にはＸ１、Ｙ１の排他的論理和‘０’が入力され、第２入力部にはＸ１、Ｙ１の排他的否定論理和‘１’が入力される。ＭＵＸ９１０ａの選択部にはキャリ生成ブロック６１６から入力されたＣＯＰ値‘１’が入力されて、これにより第２入力部に入力されたＸ１、Ｙ１の排他的否定論理和‘１’が選択されて合計Ｓ１を計算するための２種の選択信号中第１選択信号として合計選択部１０１０の該ＭＵＸの第１入力部に出力される。
【００８７】
ＭＵＸ９１０ｂの第１入力部にはＸ１、Ｙ１の排他的論理和‘０’が入力され、第２入力部にはＸ１、Ｙ１の排他的否定論理和‘１’が入力される。ＭＵＸ９１０ｂの選択部にはキャリ生成ブロック６１６から入力されたＣＯＧ値‘１’が入力され、これにより第２入力部に入力されたＸ１、Ｙ１の排他的否定論理和‘１’が選択されて合計Ｓ１を計算するための２種の選択信号中第２選択信号として合計選択部１０１０に出力される。
【００８８】
また、ＭＵＸ９１１ａの第１入力部にはＸ２、Ｙ２の排他的論理和‘１’が入力され、第２入力部にはＸ２、Ｙ２の排他的否定論理和‘０’が入力される。ＭＵＸ９１１ａの選択部にはキャリ生成ブロック６１６から入力されたＣ１Ｐ値‘０’が入力され、これにより第１入力部に入力されたＸ２、Ｙ２の排他的論理和‘１’が選択されて合計Ｓ２を計算するための２種選択信号中第１選択信号として合計選択部１０１０に出力される。
【００８９】
ＭＵＸ９１１ｂの第１入力部にはＸ２、Ｙ２の排他的論理和‘１’が入力され、第２入力部にはＸ２、Ｙ２の排他的否定論理和‘０’が入力される。ＭＵＸ９１１ｂの選択部にはキャリ生成ブロック６１６から入力されたＣ１Ｇ値‘０’が入力されて、これにより第１入力部に入力されたＸ２、Ｙ２の排他的論理和‘１’が選択されて合計Ｓ２を計算するための２種の選択信号中第２選択信号として合計選択部１０１０に出力される。
【００９０】
また、ＭＵＸ９１２ａの第１入力部にはＸ３、Ｙ３の排他的論理和‘０’が入力され、第２入力部にはＸ３、Ｙ３の排他的否定論理和‘１’が入力される。ＭＵＸ９１２ａの選択部にはＸ２、Ｙ２の論理和‘１’が選択信号として入力され、これにより第２入力部に入力されたＸ３、Ｙ３の排他的否定論理和‘１’が選択されてＭＵＸ９１３ａ及びＭＵＸ９１３ｂの第２入力部に出力される。
【００９１】
ＭＵＸ９１２ｂの第１入力部にはＸ３、Ｙ３の排他的論理和‘０’が入力されて、第２入力部にはＸ３、Ｙ３の排他的否定論理和‘１’が入力される。ＭＵＸ９１２ｂの選択部にはＸ２、Ｙ２の論理積‘０’が選択信号として入力されて、これにより第１入力部に入力されたＸ３、Ｙ３の排他的論理和‘０’が選択されてＭＵＸ９１３ａ及びＭＵＸ９１３ｂの第１入力部に出力される。
【００９２】
また、ＭＵＸ９１３ａの選択部にはキャリ生成ブロック６１６からの出力信号Ｃ１Ｐ‘０’が入力され、これにより第１入力部に入力された値‘０’が選択され、合計Ｓ３を計算するための２種の選択信号中第１選択信号として合計選択部１０１０に出力される。
【００９３】
ＭＵＸ９１３ｂの選択部にはキャリ生成ブロック６１６からの出力信号Ｃ１Ｇ‘０’が入力され、これにより第１入力部に入力された値‘０’が選択されて合計Ｓ３を計算するための２種選択信号中第２選択信号として合計発生部１０１０に出力される。
【００９４】
合計発生部１０１０のＭＵＸは、初期キャリ入力信号Ｃｉｎの値が‘０’であるので、第１選択信号を合計‘Ｓ０、Ｓ１、Ｓ２、Ｓ３’の結果値として選択して‘０１１０’を出力する。
【００９５】
図１０は、ブロックキャリ生成ブロックを示す図面である。示されたように、ブロックキャリ生成ブロック６９０は各条件選択足し算モジュール６１０、６２０、６３０、６４０、６５０、６６０、６７０、６８０のキャリ生成ブロックから入力されるキャリ伝播値ＣＰ０、ＣＰ１、ＣＰ２、ＣＰ３、ＣＰ４、ＣＰ５、ＣＰ６、ＣＰ７及びキャリ生成値ＣＧ０、ＣＧ１、ＣＧ２、ＣＧ３、ＣＧ４、ＣＧ５、ＣＧ６、ＣＧ７と、ブロックキャリ生成ブロック６９０へのキャリ入力Ｃｉｎに基づいてブロックキャリＣ００、Ｃ０１、Ｃ０２、Ｃ０３、Ｃ０４、Ｃ０５、Ｃ０６、Ｃ０７を計算する。前記計算されたブロックキャリは各条件選択足し算モジュール６１０、６２０、６３０、６４０、６５０、６６０、６７０、６８０の合計計算ブロックにフィードバックされて、各合計計算ブロックは前記で予め計算された合計中ブロックキャリの値、すなわちキャリの有無によって適切な合計が選択される。
【００９６】
したがって、図４に示した従来のブロックキャリ計算ブロック１９０は相互同期化されない状態でブロックキャリＢＣ０〜ＢＣ７を出力するに反し、本発明に係るブロックキャリ計算ブロック６９０は計算されたブロックキャリＣ００、Ｃ０１、Ｃ０２、Ｃ０３、Ｃ０４、Ｃ０５、Ｃ０６、Ｃ０７を同期化して出力することによって、各条件選択モジュールの合計が同期化されて発生することができるようにする長所がある。
【００９７】
また、従来の技術による６４ビット条件選択加算器と本発明に係る６４ビット条件選択加算器によるゲートカウント、クリティカルパス、及び内部配線構成を比較すると、本発明に係る加算器が従来の技術による加算器に比べてゲートカウント及びクリティカルパスが多く減少されており、内部配線もさらに簡単になったことが分かる。
【００９８】
【表３】
0003682965.tif 000004
本発明に係る条件選択加算装置及び方法は、デジタル信号処理に関連した広範囲な分野に応用できる。
【００９９】
以上、図と明細書で最適の実施例が開示された。ここで特定の用語が用いられたが、これは単に本発明を説明するための目的で用いられたものであって、意味限定や特許請求範囲に記載された本発明の範囲を制限するために用いられたものではない。ひいては本技術分野の通常の知識を有する者であればこれから多様な変形及び均等な他の実施例が可能であるという点を理解することである。したがって、本発明の真の技術的保護範囲は特許請求範囲の技術的思想によって定まるべきである。
【０１００】
【発明の効果】
上述したように、本発明に係る加算器は、ゲートカウント、クリティカルパス、及び内部配線を減らすことができてチップ面積、遅延時間、電力消耗を減少させられる効果を奏でる。
【図面の簡単な説明】
【図１】従来の技術による６４ビット条件選択加算器を概略的に示すブロック図である。
【図２】図１に示した８ビット条件選択足し算モジュールにおける合計発生ブロックを示すブロック図である。
【図３】図１に示した８ビット条件選択足し算モジュールにおけるキャリ発生ブロックを示すブロック図である。
【図４】図１に示したブロックキャリ発生ブロックを示すブロック図である。
【図５】図１に示した前置キャリ合計発生ブロックを示すブロック図である。
【図６】本発明による６４ビット条件選択足し算モジュールを示すブロック図である。
【図７】図６に示した前置キャリ合計発生ブロックを示すブロック図である。
【図８】図６に示した８ビット条件選択足し算モジュールにおけるキャリ発生ブロックを示すブロック図である。
【図９】図６に示した８ビット条件選択足し算モジュールにおける合計発生ブロックを示すブロック図である。
【図１０】図６に示したブロックキャリ発生ブロックを示すブロック図である。
【符号の説明】
６１０、６２０、６３０、６４０、６５０、６６０、６７０，６８０  条件選択足し算モジュール
６１２    キャリ合計前置発生ブロック
６１４    合計発生ブロック
６１６    キャリ発生ブロック
６９０    ブロックキャリ発生ブロック
８１１ａ，８１１ｂ，８１２ａ，８１２ｂ，８１３ａ，８１３ｂ，８１４ａ，８１４ｂ，８１５ａ，８１５ｂ，８１６ａ，８１６ｂ，８１７ａ，８１７ｂ，８１８ａ，８１８ｂ，９１０ａ，９１０ｂ，９１１ａ，９１１ｂ，９１２ａ，９１２ｂ，９１３ａ，９１３ｂ，９１４ａ，９１４ｂ，９１５ａ，９１５ｂ，９１６ａ、９１６ｂ、９１７ａ、９１７ｂ、９１８ａ、９１８ｂ、９１９ａ、９１９ｂ  ＭＵＸ
９２０    合計選択ブロック
１０１０  合計選択部
【図１】
0003682965.tif 000005
【図２】
0003682965.tif 000006
【図３】
0003682965.tif 000007
【図４】
0003682965.tif 000008
【図５】
0003682965.tif 000009
【図６】
0003682965.tif 000010
【図７】
0003682965.tif 000011
【図８】
0003682965.tif 000012
【図９】
0003682965.tif 000013
【図１０】
0003682965.tif 000014