(57)【要約】【課題】  自己同期キャリルックアヘッド加算器及びその合算方法を提供する。【解決手段】  本発明のキャリルックアヘッド加算器は、加算数と被加算数とをＭブロックに分別して、キャリ伝搬ビット値及びキャリ消耗ビット値を計算するキャリ生成／伝搬部と、ブロックそれぞれでブロックキャリを生成するブロックキャリ部と、ブロックそれぞれで、ブロックキャリがある場合とない場合それぞれに対し、第１ビット別キャリ及び第２ビット別キャリをマンチェスタキャリチェーンによって計算するビットキャリ部と、ブロックキャリを利用していかなるクロック信号によっても出力を制御されないブロックキャリ発生情報を生成するコントロール回路と、ブロックキャリ発生情報に対応するビット別キャリのうちいずれか１つを選択し、選択されたビット別キャリにビット別キャリ伝搬ビット値をビット別に合算して最終合算結果を出力する合算値選択部と、を具備する。【選択図】      図１
2004252989.tif 000002
【特許請求の範囲】
【請求項１】
Ｎビットのバイナリ値で入力される加算数と被加算数とをＭブロックに分別して、前記ブロックそれぞれでビット別に第１論理組み合わせしてキャリ伝搬ビット値及びキャリ消耗ビット値を計算するキャリ生成／伝搬部と、
前記ブロックそれぞれで、ビット別前記キャリ消耗ビット値に対する第２論理組み合わせによって１つ以上の第２論理状態が存在すれば第２論理状態になるＫ０、ビット別前記キャリ伝搬ビット値及びビット別前記キャリ消耗ビット値に対する第３論理組み合わせによって下位Ｎ／（２Ｍ）ビットに第２論理状態の前記キャリ消耗ビット値が１つ以上存在すれば第２論理状態になるＫ４、及びビット別前記キャリ伝搬ビット値及びビット別前記キャリ消耗ビット値に対する第４論理組み合わせによって上位Ｎ／（２Ｍ）ビットに第２論理状態の前記キャリ消耗ビット値が１つ以上存在すれば第２論理状態になるＫ８でなるブロックキャリを生成するブロックキャリ部と、
前記ブロックそれぞれで、ブロックキャリがある場合と、ない場合それぞれに対し、前記キャリ伝搬ビット値及び前記キャリ消耗ビット値に対する第５論理組み合わせで第１ビット別キャリ及び第２ビット別キャリをマンチェスタキャリチェーンによって計算するビットキャリ部と、
前記ブロックそれぞれで、前記ブロックキャリを利用していかなるクロック信号によっても出力を制御されないブロックキャリ発生情報を生成するコントロール回路と、
前記ブロックキャリ発生情報に対応する前記ビット別キャリのうちいずれか１つを選択し、前記選択されたビット別キャリに前記ビット別キャリ伝搬ビット値をビット別に合算して最終合算結果を出力する合算値選択部と、を具備することを特徴とするキャリルックアヘッド加算器。
【請求項２】
前記合算値選択部は、
前記ブロックキャリいずれも第１論理状態である場合に、前記第１ビット別キャリを選択することを特徴とする請求項１に記載のキャリルックアヘッド加算器。
【請求項３】
前記合算値選択部は、
前記下位ビットブロックから伝搬されるキャリがある場合に、前記第１ビット別キャリを選択することを特徴とする請求項２に記載のキャリルックアヘッド加算器。
【請求項４】
前記下位ビットブロックは、
前記合算がなされるブロックの直前の下位ビットブロックである第１下位ブロック、及び第１下位ブロックの直前の下位ビットブロックである第２下位ブロックを含むことを特徴とする請求項３に記載のキャリルックアヘッド加算器。
【請求項５】
前記キャリ生成／伝搬部は、
前記キャリ伝搬ビット値を計算するＸＯＲロジック、及び前記キャリ消耗ビット値を計算するＮＯＲロジックを含むことを特徴とする請求項１に記載のキャリルックアヘッド加算器。
【請求項６】
前記ブロックキャリ部は、
ビット別前記キャリ消耗ビット値に対して論理演算を行うＯＲロジックを含むことを特徴とする請求項１に記載のキャリルックアヘッド加算器。
【請求項７】
前記第３論理組み合わせは、
論理式、
K4=
PH<{(N/M)-1}>PH<{(N/M)-2>...PH<{N/(2M)+1}>PH<N/(2M)>
{KH<{N/(2M)-1}>+
PH<{N/(2M)-1}>KH<{N/(2M)-2}>+
PH<{N/(2M)-1}>PH<{N/(2M)-2}>KH<{N/(2M)-3}>+
...+PH<{N/(2M)-1}>PH<{N/(2M)-2}>...PH<1>KH<0>+
PH<{N/(2M)-1}>PH<{N/(2M)-2}>...PH<1>PH<0>}
（ここで、Ｋ４は前記ブロックキャリのうち１つ、ＫＨ＜ｉ＞はキャリ消耗ビット値、ＰＨ＜ｉ＞はキャリ伝搬ビット値）を満たすことを特徴とする請求項１に記載のキャリルックアヘッド加算器。
【請求項８】
前記第４論理組み合わせは、
論理式、
K8=
KH<{(N/M)-1}>+
PH<{(N/M)-1}>KH<{(N/M)-2}>+
...+PH<{(N/M)-1}>PH<{(N/M)-2}>...PH<{(N/(2M)+2)}>KH<{N/(2M)+1}>+
PH<{(N/M)-1}>PH<{(N/M)-2}>...PH<{(N/(2M)+1)}>KH<N/(2M)>
（ここで、Ｋ８は前記ブロックキャリのうち１つ、ＫＨ＜ｉ＞はキャリ消耗ビット値、ＰＨ＜ｉ＞はキャリ伝搬ビット値）を満たすことを特徴とする請求項１に記載のキャリルックアヘッド加算器。
【請求項９】
前記第５論理組み合わせは、
論理式、
C0<i>=KH<i-1>+PH<i-1>C0<i-1>
C1<i>=KH<i-1>+PH<i-1>C1<i-1>
（ここで、ｉは０から（Ｎ／Ｍ−１）まで、Ｃ１＜ｉ＞は前記第１ビット別キャリのうちｉ番目ビット、Ｃ０＜ｉ＞は前記第２ビット別キャリのうちｉ番目ビット、ＰＨ＜ｉ＞はキャリ伝搬ビット値、ＫＨ＜ｉ＞はキャリ消耗ビット値）を満たすことを特徴とする請求項１に記載のキャリルックアヘッド加算器。
【請求項１０】
前記合算値選択部は、
前記選択されたビット別キャリ及び前記ビット別キャリ伝搬ビット値をビット別に論理演算するＸＯＲロジックを含むことを特徴とする請求項１に記載のキャリルックアヘッド加算器。
【請求項１１】
Ｎビットのバイナリ値で入力される加算数と被加算数とをＭブロックに分別してブロックキャリを計算し、前記ブロックそれぞれのマンチェスタキャリチェーンで発生するビットキャリを選択して合算するキャリルックアヘッド加算器の合算方法において、
前記加算数と前記被加算数のビット別に第１論理組み合わせしてキャリ伝搬ビット値及びキャリ消耗ビット値を計算する段階と、
ビット別前記キャリ消耗ビット値に対する第２論理組み合わせによって１つ以上の第２論理状態が存在すれば第２論理状態になるＫ０を計算する段階と、
ビット別前記キャリ伝搬ビット値及びビット別前記キャリ消耗ビット値に対する第３論理組み合わせによって下位Ｎ／（２Ｍ）ビットに第２論理状態の前記キャリ消耗ビット値が１つ以上存在すれば第２論理状態になるＫ４を計算する段階と、
ビット別前記キャリ伝搬ビット値及びビット別前記キャリ消耗ビット値に対する第４論理組み合わせによって上位Ｎ／（２Ｍ）ビットに第２論理状態の前記キャリ消耗ビット値が１つ以上存在すれば第２論理状態になるＫ８を計算する段階と、
前記ブロックそれぞれにブロックキャリがある場合と、ない場合それぞれに対し、前記キャリ伝搬ビット値及び前記キャリ消耗ビット値に対する第５論理組み合わせで第１ビット別キャリ及び第２ビット別キャリをマンチェスタキャリチェーンによって計算する段階と、
前記ブロックキャリを利用していかなるクロック信号によっても出力を制御されないブロックキャリ発生情報を生成する段階と、
前記ブロックキャリ発生情報に対応する前記ビット別キャリのうちいずれか１つを選択する段階と、
前記選択されたビット別キャリに前記ビット別キャリ伝搬ビット値をビット別に合算して最終合算結果を生成する段階と、
前記最終合算結果を出力する段階と、を具備することを特徴とするキャリルックアヘッド加算器の合算方法。
【請求項１２】
前記選択されたビット別キャリは、
前記ブロックキャリいずれも第１論理状態である場合に前記第１ビット別キャリであることを特徴とする請求項１１に記載のキャリルックアヘッド加算器の合算方法。
【請求項１３】
前記選択されたビット別キャリは、
前記下位ビットブロックから伝搬されるキャリがある場合に、前記第１ビット別キャリであることを特徴とする請求項１２に記載のキャリルックアヘッド加算器の合算方法。
【請求項１４】
前記下位ビットブロックは、
前記合算がなされるブロックの直前の下位ビットブロックである第１下位ブロック、及び第１下位ブロックの直前の下位ビットブロックである第２下位ブロックを含むことを特徴とする請求項１３に記載のキャリルックアヘッド加算器の合算方法。
【請求項１５】
前記第１論理組み合わせは、
前記加算数と前記被加算数とに対するビット別ＸＯＲロジックによって前記キャリ伝搬ビット値を計算するロジック、及び、前記加算数と前記被加算数とに対するビット別ＮＯＲロジックによって前記キャリ消耗ビット値を計算するロジックを含むことを特徴とする請求項１１に記載のキャリルックアヘッド加算器の合算方法。
【請求項１６】
前記第２論理組み合わせは、
ビット別前記キャリ消耗ビット値に対するＯＲロジックを含むことを特徴とする請求項１１に記載のキャリルックアヘッド加算器の合算方法。
【請求項１７】
前記第３論理組み合わせは、
論理式、
K4=
PH<{(N/M)-1}>PH<{(N/M)-2>...PH<{N/(2M)+1}>PH<N/(2M)>
{KH<{N/(2M)-1}>+
PH<{N/(2M)-1}>KH<{N/(2M)-2}>+
PH<{N/(2M)-1}>PH<{N/(2M)-2}>KH<{N/(2M)-3}>+
...+PH<{N/(2M)-1}>PH<{N/(2M)-2}>...PH<1>KH<0>+
PH<{N/(2M)-1}>PH<{N/(2M)-2}>...PH<1>PH<0>}
（ここで、Ｋ４は前記ブロックキャリのうち１つ、ＫＨ＜ｉ＞はキャリ消耗ビット値、ＰＨ＜ｉ＞はキャリ伝搬ビット値）を満たすことを特徴とする請求項１１に記載のキャリルックアヘッド加算器の合算方法。
【請求項１８】
前記第４論理組み合わせは、
論理式、
K8=
KH<{(N/M)-1}>+
PH<{(N/M)-1}>KH<{(N/M)-2}>+
...+PH<{(N/M)-1}>PH<{(N/M)-2}>...PH<{(N/(2M)+2)}>KH<{N/(2M)+1}>+
PH<{(N/M)-1}>PH<{(N/M)-2}>...PH<{(N/(2M)+1)}>KH<N/(2M)>
（ここで、Ｋ８は前記ブロックキャリのうち１つ、ＫＨ＜ｉ＞はキャリ消耗ビット値、ＰＨ＜ｉ＞はキャリ伝搬ビット値）を満たすことを特徴とする請求項１１に記載のキャリルックアヘッド加算器の合算方法。
【請求項１９】
前記第５論理組み合わせは、
論理式、
C0<i>=KH<i-1>+PH<i-1>C0<i-1>
C1<i>=KH<i-1>+PH<i-1>C1<i-1>
（ここで、ｉは０から（Ｎ／Ｍ−１）まで、Ｃ１＜ｉ＞は前記第１ビット別キャリのうちｉ番目ビット、Ｃ０＜ｉ＞は前記第２ビット別キャリのうちｉ番目ビット、ＰＨ＜ｉ＞はキャリ伝搬ビット値、ＫＨ＜ｉ＞はキャリ消耗ビット値）を満たすことを特徴とする請求項１１に記載のキャリルックアヘッド加算器の合算方法。
【請求項２０】
前記合算は、
前記選択されたビット別キャリ及び前記ビット別キャリ伝搬ビット値をビット別にＸＯＲロジック処理して計算することを特徴とする請求項１１に記載のキャリルックアヘッド加算器の合算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はキャリルックアヘッド加算器（Ｃａｒｒｙ Ｌｏｏｋ ａｈｅａｄ Ａｄｄｅｒ：桁上げ先見加算器、以下、ＣＬＡと略称）に係り、特にマンチェスタキャリチェーンに基づいたＣＬＡに関する。
【背景技術】
【０００２】
一般的な加算器回路の遅延はキャリ伝搬経路により決定される。キャリ伝搬経路を短縮して動作速度を高めるために、マンチェスタキャリチェーンを使用する従来のＣＬＡは、バイナリ値を有する合算される両演算子、すなわち、加算数及び被加算数に対する、キャリ伝搬ビット及びキャリ生成ビットを生成し、ブロックキャリによって選択されるビットキャリから最終合算値を計算する。このような従来のＣＬＡについては、特許文献１、２に記載されるものが知られている。
【０００３】
すなわち、従来のＣＬＡは、合算動作の開始を知らせる所定クロック信号の上昇トランジション、すなわち、活性化時に発生するキャリ伝搬ビット及びキャリ生成ビットを利用してブロックキャリ及びビットキャリを計算する。ところで、従来のＣＬＡでは、クロック信号の活性化期間内の同一フェーズ内で最終合算値を計算せず、クロック信号の下降エッジに同期した所定イネーブル信号が活性化される時、すなわち、クロック信号の活性化状態の次のフェーズで、感知増幅フリップフロップ（ＳＥＮＳＥ ＡＭＰ．Ｆ／Ｆ）が駆動され、ブロックキャリによって選択されるビットキャリから最終合算値が計算される。
【０００４】
したがって、このような従来のＣＬＡでは、ブロックキャリの生成時点が加算数及び被加算数の値によって変わるため、全体ビットに対する正常的な合算動作を保障するためにクロック信号のタイミングマージンが十分に考慮されねばならない。すなわち、クロック信号が上昇トランジションして活性化状態になった期間中に生成されるキャリの伝搬が進んでも、感知増幅フリップフロップが動作するためにはクロック信号の次のフェーズまで待たねばならない時間的損失が発生してしまうという問題点がある。
【特許文献１】米国特許５，５０８，９５２Ａ
【特許文献２】特開平５−６１６４３
【発明の開示】
【発明が解決しようとする課題】
【０００５】
したがって、本発明が解決しようとする技術的課題は、マンチェスタキャリチェーンを使用したＣＬＡで、感知増幅フリップフロップを活性化させるイネーブル信号を待つ時間的損失をなくし、ブロックキャリが生成されて伝搬されるやいなや、ブロックキャリによって選択されるビットキャリから最終合算値を計算する所定同期化器を設け、１位相内の自己同期ＣＬＡ及びその合算方法を提供することにある。
【課題を解決するための手段】
【０００６】
前記技術的課題を達成するための本発明によるキャリルックアヘッド加算器は、Ｎビットのバイナリ値で入力される加算数と被加算数とをＭブロックに分別して、前記ブロックそれぞれでビット別に第１論理組み合わせしてキャリ伝搬ビット値及びキャリ消耗ビット値を計算するキャリ生成／伝搬部と、前記ブロックそれぞれで、ビット別前記キャリ消耗ビット値に対する第２論理組み合わせによって１つ以上の第２論理状態が存在すれば第２論理状態になるＫ０、ビット別前記キャリ伝搬ビット値及びビット別前記キャリ消耗ビット値に対する第３論理組み合わせによって下位Ｎ／（２Ｍ）ビットに第２論理状態の前記キャリ消耗ビット値が１つ以上存在すれば第２論理状態になるＫ４、及びビット別前記キャリ伝搬ビット値及びビット別前記キャリ消耗ビット値に対する第４論理組み合わせによって上位Ｎ／（２Ｍ）ビットに第２論理状態の前記キャリ消耗ビット値が１つ以上存在すれば第２論理状態になるＫ８でなるブロックキャリを生成するブロックキャリ部と、前記ブロックそれぞれで、ブロックキャリがある場合と、ない場合それぞれに対し、前記キャリ伝搬ビット値及び前記キャリ消耗ビット値に対する第５論理組み合わせで第１ビット別キャリ及び第２ビット別キャリをマンチェスタキャリチェーンによって計算するビットキャリ部と、前記ブロックそれぞれで、前記ブロックキャリを利用していかなるクロック信号によっても出力を制御されないブロックキャリ発生情報を生成するコントロール回路と、前記ブロックキャリ発生情報に対応する前記ビット別キャリのうちいずれか１つを選択し、前記選択されたビット別キャリに前記ビット別キャリ伝搬ビット値をビット別に合算して最終合算結果を出力する合算値選択部と、を具備することを特徴とする。
【０００７】
前記の技術的課題を達成するための本発明によるキャリルックアヘッド加算器の合算方法は、Ｎビットのバイナリ値で入力される加算数と被加算数とをＭブロックに分別してブロックキャリを計算し、前記ブロックそれぞれのマンチェスタキャリチェーンで発生するビットキャリを選択して合算するキャリルックアヘッド加算器の合算方法において、前記加算数と前記被加算数のビット別に第１論理組み合わせしてキャリ伝搬ビット値及びキャリ消耗ビット値を計算する段階と、ビット別前記キャリ消耗ビット値に対する第２論理組み合わせによって１つ以上の第２論理状態が存在すれば第２論理状態になるＫ０を計算する段階と、ビット別前記キャリ伝搬ビット値及びビット別前記キャリ消耗ビット値に対する第３論理組み合わせによって下位Ｎ／（２Ｍ）ビットに第２論理状態の前記キャリ消耗ビット値が１つ以上存在すれば第２論理状態になるＫ４を計算する段階と、ビット別前記キャリ伝搬ビット値及びビット別前記キャリ消耗ビット値に対する第４論理組み合わせによって上位Ｎ／（２Ｍ）ビットに第２論理状態の前記キャリ消耗ビット値が１つ以上存在すれば第２論理状態になるＫ８を計算する段階と、前記ブロックそれぞれにブロックキャリがある場合と、ない場合それぞれに対し、前記キャリ伝搬ビット値及び前記キャリ消耗ビット値に対する第５論理組み合わせで第１ビット別キャリ及び第２ビット別キャリをマンチェスタキャリチェーンによって計算する段階と、前記ブロックキャリを利用していかなるクロック信号によっても出力を制御されないブロックキャリ発生情報を生成する段階と、前記ブロックキャリ発生情報に対応する前記ビット別キャリのうちいずれか１つを選択する段階と、前記選択されたビット別キャリに前記ビット別キャリ伝搬ビット値をビット別に合算して最終合算結果を生成する段階と、前記最終合算結果を出力する段階と、を具備することを特徴とする。
【発明の効果】
【０００８】
本発明によるＣＬＡは、マンチェスタキャリチェーンを使用したＣＬＡであって、ブロックキャリが生成されて伝搬されるやいなや、ブロックキャリによって選択されるビットキャリから最終合算値を計算する所定同期化器を有する。したがって、感知増幅フリップフロップを活性化させるイネーブル信号を待つ時間的損失をなくすことができるため、バイナリ値を有する加算数及び被加算数に対し、クロック信号の１フェーズ内に高速合算を行うことが出来る。
【発明を実施するための最良の形態】
【０００９】
本発明と本発明の動作上の利点及び本発明の実施によって達成される目的とを十分に理解するためには、本発明の望ましい実施例を例示する添付図面及び添付図面に記載された内容を参照する必要がある。
以下、添付した図面を参照して本発明の望ましい実施例を説明することによって、本発明を詳細に説明する。各図面に添付された同一参照符号は同一部材を表わす。
【００１０】
図１は本発明の一実施例によるＣＬＡのブロック図であり、図２は図１を具体的に示す他のブロック図である。
図１及び図２を参照すれば、本発明の一実施例によるＣＬＡは、キャリ生成／伝搬部１１０、ブロックキャリ部１２０、ビットキャリ部１３０、コントロール回路１４０、及び合算値選択部１５０を具備する。
【００１１】
キャリ生成／伝搬部１１０は、Ｎビットのバイナリ値で入力される加算数Ａと被加算数ＢとをＭブロックに分別し、ブロックそれぞれでビット別に第１論理組み合わせしてキャリ伝搬ビット値ＰＨ及びキャリ消耗ビット値ＫＨを計算する。図２では、加算数Ａ及び被加算数Ｂを３２ビット（Ｎ＝３２）と仮定し、これらが４ブロック（Ｍ＝４）に分別されるものと仮定した。
【００１２】
ここで、第１論理組み合わせは、表１のように、加算数及び被加算数に対するビット別ＸＯＲロジックによってキャリ伝搬ビット値ＰＨを計算するロジック、及び加算数及び被加算数に対するビット別ＮＯＲロジックによってキャリ消耗ビット値ＫＨを計算するロジックである。表１で、“０”は第１論理状態、すなわち、論理ロー状態であり、“１”は第２論理状態、すなわち、論理ハイ状態である。また、ｉはブロック内に存在するあらゆるビットを表示するものであって、０から｛（Ｎ／Ｍ）−１｝までのビットを表示し、特に図２では０から７までに該当する。すなわち、図２でＮは３２であり、Ｍは４であり、Ｎ／（２Ｍ）は４に該当する。
【００１３】
【表１】
2004252989.tif 000003
【００１４】
ブロックキャリ部１２０はブロックそれぞれで、ビット別キャリ消耗ビット値ＫＨに対する第２論理組み合わせによって１つ以上の第２論理状態が存在すれば第２論理状態になるＫ０、ビット別キャリ伝搬ビット値ＰＨ及びビット別キャリ消耗ビット値ＫＨに対する第３論理組み合わせによって下位Ｎ／（２Ｍ）ビット（図２の各ブロックで下位４ビット）に第２論理状態のキャリ消耗ビット値ＫＨが１つ以上存在すれば第２論理状態になるＫ４、及びビット別キャリ伝搬ビット値ＰＨ及びビット別キャリ消耗ビット値ＫＨに対する第４論理組み合わせによって上位Ｎ／（２Ｍ）ビット（図２の各ブロックで上位４ビット）に第２論理状態のキャリ消耗ビット値ＫＨが１つ以上存在すれば第２論理状態になるＫ８からなるブロックキャリＫ０、Ｋ４、Ｋ８を生成する。
【００１５】
ここで、第２論理組み合わせは、ビット別キャリ消耗ビット値ＫＨに対するＯＲロジックであって、論理式１の通りである。論理式１で、Ｋ０は１ブロック内のビットにキャリ消耗ビットが発生するかどうかをチェックするブロックキャリである。また、キャリ消耗ビット値ＫＨのうち１つ以上の第２論理状態が存在すれば、後述するビットキャリ部１３０で発生するキャリをマンチェスタキャリチェーン動作原理によって消耗させる（すなわち、キルする）。
【００１６】
［式１］
K0=KH<0>+KH<1>+...+KH<6>+KH<N/(2M)>
（ここで、Ｋ０はビットにキャリ消耗ビットが発生するかどうかをチェックするブロックキャリ、ＫＨ＜ｉ＞はキャリ消耗ビット値）
【００１７】
第３論理組み合わせは、ビット別キャリ伝搬ビット値ＰＨ及びビット別キャリ消耗ビット値ＫＨに対する第３論理組み合わせによって下位Ｎ／（２Ｍ）ビット（図２の各ブロックで下位４ビット）に第２論理状態のキャリ消耗ビット値ＫＨが１つ以上存在すれば第２論理状態になるロジックであって、論理式２を満たす。論理式２で、Ｋ４は下位Ｎ／（２Ｍ）ビットにキルターム（Ｋｉｌｌ Ｔｅｒｍ）、すなわち、第２論理状態のキャリ消耗ビット値ＫＨが１つ以上存在するかどうかをチェックするブロックキャリである。図２に対し、論理式２は論理式３のようになる。
【００１８】
［式２］
K4=
PH<{(N/M)-1}>PH<{(N/M)-2>...PH<{N/(2M)+1}>PH<N/(2M)>
{KH<{N/(2M)-1}>+
PH<{N/(2M)-1}>KH<{N/(2M)-2}>+
PH<{N/(2M)-1}>PH<{N/(2M)-2}>KH<{N/(2M)-3}>+
...+PH<{N/(2M)-1}>PH<{N/(2M)-2}>...PH<1>KH<0>+
PH<{N/(2M)-1}>PH<{N/(2M)-2}>...PH<1>PH<0>}
（ここで、Ｋ４は下位Ｎ／（２Ｍ）ビットにキャリ消耗ビットが発生するかどうかをチェックするブロックキャリ、ＰＨ＜ｉ＞はキャリ伝搬ビット値、ＫＨ＜ｉ＞はキャリ消耗ビット値）
【００１９】
［式３］
K4=PH<7>PH<6>PH<5>PH<4>{KH<3>+PH<3>KH<2>+PH<3>PH<2>KH<1>+
PH<3>PH<2>PH<1>KH<0>+PH<3>PH<2>PH<1>PH<0>}
【００２０】
第４論理組み合わせは、ビット別キャリ伝搬ビット値ＰＨ及びビット別キャリ消耗ビット値ＫＨに対する第４論理組み合わせによって上位Ｎ／（２Ｍ）ビット（図２の各ブロックで上位４ビット）に第２論理状態のキャリ消耗ビット値ＫＨが１つ以上存在すれば第２論理状態になるロジックであって、論理式４を満たす。論理式４で、Ｋ８は上位Ｎ／（２Ｍ）ビットにキルターム、すなわち、第２論理状態のキャリ消耗ビット値ＫＨが１つ以上存在するかどうかチェックするブロックキャリである。図２に対し、論理式４は論理式５のようになる。
【００２１】
［式４］
K8=
KH<{(N/M)-1}>+
PH<{(N/M)-1}>KH<{(N/M)-2}>+
...+PH<{(N/M)-1}>PH<{(N/M)-2}>...PH<{(N/(2M)+2)}>KH<{N/(2M)+1}>+
PH<{(N/M)-1}>PH<{(N/M)-2}>...PH<{(N/(2M)+1)}>KH<N/(2M)>
（ここで、Ｋ８は上位Ｎ／（２Ｍ）ビットにキャリ消耗ビットが発生するかどうかチェックするブロックキャリ、ＰＨ＜ｉ＞はキャリ伝搬ビット値、ＫＨ＜ｉ＞はキャリ消耗ビット値）
【００２２】
［式５］
K8=KH<7>+PH<7>KH<6>+PH<7>PH<6>KH<5>+PH<7>PH<6>PH<5>KH<4>
【００２３】
ビットキャリ部１３０はブロックそれぞれで、加算数及び被加算数の最初のビットからキャリが発生する場合と発生しない場合それぞれに対し、キャリ伝搬ビット値ＰＨ及びキャリ消耗ビット値ＫＨに対する第５論理組み合わせでビット別キャリＣ０、またはＣ１をマンチェスタキャリチェーンによって計算する。最初のビットは加算数及び被加算数の最上位ビット（ＭＳＢ：ｍｏｓｔ ｓｉｇｎｉｆｉｃａｎｔ ｂｉｔ）である。すなわち、ブロックそれぞれで加算数及び被加算数の最初のビットからキャリが発生する場合はブロックキャリが存在するケースに該当する。例えば、図２で、４ブロックそれぞれで加算数と被加算数との和が“１１１１”より大きい時、ブロックキャリが存在する。マンチェスタキャリチェーンは、チェーンに印加されるキャリ消耗ビット値ＫＨのうち１つ以上の第２論理状態が存在すれば、発生するキャリを消耗させる（すなわち、キルする）回路であって、これについては特許文献１、２に記載されている。
【００２４】
第５論理組み合わせは、論理式６を満たすロジックである。論理式６で、Ｃ１＜ｉ＞はブロックキャリがある場合に該当し、Ｃ０＜ｉ＞はブロックキャリがない場合に該当する。
【００２５】
［式６］
C0<i>=KH<i-1>+PH<i-1>C0<i-1>
C1<i>=KH<i-1>+PH<i-1>C1<i-1>
（ここで、ｉは０から（Ｎ／Ｍ−１）まで、Ｃ１＜ｉ＞はブロックキャリがある場合のビット別キャリ、Ｃ０＜ｉ＞はブロックキャリがない場合のビット別キャリ、ＰＨ＜ｉ＞はキャリ伝搬ビット値、ＫＨ＜ｉ＞はキャリ消耗ビット値）
【００２６】
コントロール回路１４０はブロックそれぞれで、ブロックキャリＫ０、Ｋ４、Ｋ８、及び下位ビットブロックから伝搬されるキャリ値に対する所定論理組み合わせによって、第１論理状態または第２論理状態を有し、いかなるクロック信号によっても出力を制御されないブロックキャリ発生情報ＣＩＮＨ、及びＣＩＮＬを生成する同期化器である。
【００２７】
ここで、ブロックキャリ発生情報ＣＩＮＨ、及びＣＩＮＬは、互いに反転された論理状態を有する１対のデジタル情報であり、ブロックキャリＫ０、Ｋ４、Ｋ８いずれも第１論理状態としてブロックキャリがある場合に、合算値選択部１５０でブロックキャリがある場合のビット別キャリＣ１が選択されるように作られる。また、ブロックキャリ発生情報ＣＩＮＨ、及びＣＩＮＬは、下位ビットブロックから伝搬されるキャリがある場合に、合算値選択部１５０でブロックキャリがある場合のビット別キャリＣ１が選択されるように作られる。
【００２８】
下位ビットブロックは、図２に示すように、合算がなされるブロックの直前の下位ビットブロックである第１下位ビットブロック、及び合算がなされるブロックの２番目以前の下位ビットブロックとして第１下位ビットブロックの直前の下位ビットブロックである第２下位ビットブロックを含む。すなわち、下位ブロックでのキャリ伝搬は直前の下位ビットブロックまたは２番目以前の下位ビットブロックで発生でき、２番目以前の下位ビットブロックでキャリが伝搬されることは、直前の下位ビットブロックと２番目以前の下位ビットブロックいずれでもキャリが発生した場合に発生する。
【００２９】
同様に、ブロックキャリ発生情報ＣＩＮＨ、及びＣＩＮＬは、ブロックキャリＫ０、Ｋ４、Ｋ８のうちいずれか１つが第２論理状態としてブロックキャリがない場合に、合算値選択部１５０でブロックキャリがない場合のビット別キャリＣ０が選択されるように作られる。また、ブロックキャリ発生情報ＣＩＮＨ、及びＣＩＮＬは、下位ビットブロックから伝搬されるキャリがない場合に、合算値選択部１５０でブロックキャリがない場合のビット別キャリＣ０が選択されるように作られる。
【００３０】
ここで、コントロール回路１４０はブロックキャリ発生情報ＣＩＮＨ、及びＣＩＮＬを生成し、これにより同期化される合算値選択部１５０は、ブロックキャリＫ０、Ｋ４、Ｋ８が生成されるやいなや、同じフェーズのクロック信号内で最終合算結果ＳＵＭを出力する。
【００３１】
すなわち、合算値選択部１５０はブロックキャリ発生情報ＣＩＮＨ、及びＣＩＮＬに対応するビット別キャリＣ０、またはＣ１を選択し、選択されたビット別キャリＣ０、またはＣ１にビット別キャリ伝搬ビット値ＰＨをビット別に合算し、最終キャリＣＭを含む最終合算結果ＳＵＭを出力する。ここで、合算は、表２のように、ビット別キャリＣ０、またはＣ１とビット別キャリ伝搬ビット値ＰＨとをビット別にＸＯＲロジック処理することによって計算される。表２で、“０”は第１論理状態、すなわち、論理ロー状態であり、“１”は第２論理状態、すなわち、論理ハイ状態である。また、ｉはブロック内に存在するあらゆるビットを表示するものであって、０から｛（Ｎ／Ｍ）−１｝までのビットを表示し、特に図２では０から７までに該当する。
【００３２】
【表２】
2004252989.tif 000004
【００３３】
このような本発明の一実施例によるＣＬＡの動作を、図３乃至図７に示す具体的な回路図によってさらに詳細に説明する。
図３は、図１のキャリ生成／伝搬部１１０の具体的な回路図である。
図３を参照すれば、キャリ生成／伝搬部１１０はＮビットのバイナリ値で入力される加算数Ａ及び被加算数Ｂを入力し、合算の開始を知らせるクロック信号ＡＣＬＫが活性化される時、表１のような第１論理組み合わせ、すなわち、加算数及び被加算数に対するビット別ＸＯＲロジックによってキャリ伝搬ビット値ＰＨを計算し、加算数及び被加算数に対するビット別ＮＯＲロジックそれぞれによって、ビット別にキャリ消耗ビット値ＫＨを計算する。図３で、ＡＬ＜ｉ＞及びＢＬ＜ｉ＞それぞれは入力される加算数Ａ及び被加算数Ｂのビット値ＡＨ＜ｉ＞及びＢＨ＜ｉ＞の反転信号である。
【００３４】
図４は、図１のブロックキャリ部１２０の具体的な回路図である。図４を参照すれば、図１のブロックキャリ部１２０は共通ロジックブロック４００、第２ロジックブロック４０２、第３ロジックブロック４０３、第４ロジックブロック４０４を具備する。前述した第２論理組み合わせは第２ロジックブロック４０２と共通ロジックブロック４００とに該当する。前述した第３論理組み合わせは第３ロジックブロック４０３と共通ロジックブロック４００とに該当する。前述した第４論理組み合わせは第４ロジックブロック４０４と共通ロジックブロック４００とに該当する。
【００３５】
図４で、ブロックキャリ部１２０は、合算の開始を知らせるクロック信号ＡＣＬＫが活性化される時、ビット別キャリ伝搬ビット値ＰＨ及びビット別キャリ消耗ビット値ＫＨをキャリ生成／伝搬部１１０から受けてブロックキャリＫ０、Ｋ４、Ｋ８を生成する。
図４で、Ｋ０は論理式１、すなわち、ビット別キャリ消耗ビット値ＫＨに対する第２論理組み合わせによって１つ以上の第２論理状態が存在すれば第２論理状態になる。そして、Ｋ４は論理式３、すなわち、ビット別キャリ伝搬ビット値ＰＨ及びビット別キャリ消耗ビット値ＫＨに対する第３論理組み合わせによって下位Ｎ／（２Ｍ）ビット（図２の各ブロックで下位４ビット）に第２論理状態のキャリ消耗ビット値ＫＨが１つ以上存在すれば第２論理状態になる。また、Ｋ８は論理式５、すなわち、ビット別キャリ伝搬ビット値ＰＨ及びビット別キャリ消耗ビット値ＫＨに対する第４論理組み合わせによって上位Ｎ／（２Ｍ）ビット（図２の各ブロックで上位４ビット）に第２論理状態のキャリ消耗ビット値ＫＨが１つ以上存在すれば第２論理状態になる。
【００３６】
図５Ａ及び図５Ｂは、図１のビットキャリ部１３０の具体的な回路図である。図５Ａ及び図５Ｂは、図５Ａの右側の(A)、(B)、(C)、(D)、(E)それぞれが、図５Ｂの左側の(A)、(B)、(C)、(D)、(E)に連結される、一つの回路である。
図５Ａ及び図５Ｂを参照すれば、ビットキャリ部１３０は、合算の開始を知らせるクロック信号ＡＣＬＫが活性化される時、ビット別キャリ伝搬ビット値ＰＨ及びビット別キャリ消耗ビット値ＫＨを受けてビット別キャリＣ０、またはＣ１を計算する。
【００３７】
図５Ａ及び図５Ｂのマンチェスタキャリチェーンで、Ｃ１＜ｉ＞は論理式６、すなわち、キャリ伝搬ビット値ＰＨ及びキャリ消耗ビット値ＫＨに対する第５論理組み合わせによって計算されるビット別キャリＣ１であって、ブロックキャリがある場合に該当する。また、Ｃ０＜ｉ＞は論理式６、すなわち、キャリ伝搬ビット値ＰＨ及びキャリ消耗ビット値ＫＨに対する第５論理組み合わせによって計算されるビット別キャリＣ０であって、ブロックキャリがない場合に該当する。
【００３８】
図６は、図１のコントロール回路１４０の具体的な回路図である。
図６を参照すれば、コントロール回路１４０は、合算の開始を知らせるクロック信号ＡＣＬＫが活性化される時、ブロックキャリＫ０、Ｋ４、Ｋ８及び下位ビットブロックから伝搬されるキャリ値に対する所定論理組み合わせで作られるＩＮＬ信号によって第１論理状態または第２論理状態を有し、いかなるクロック信号によっても出力を制御されないブロックキャリ発生情報ＣＩＮＨ、及びＣＩＮＬを生成する同期化器である。ここで、下位ビットブロックは、合算がなされるブロックの直前の下位ビットブロック、及び合算がなされるブロックの２番目以前の下位ビットブロックを含む。すなわち、下位ブロックでのキャリ伝搬は直前の下位ビットブロックまたは２番目以前の下位ビットブロックで発生し、２番目以前の下位ビットブロックでのキャリ伝搬は、直前の下位ビットブロックと２番目以前の下位ビットブロックいずれでもキャリが発生した場合に発生する。図６で、ＡＤＤＥＮ信号は合算動作を可能にするイネーブル信号であって、合算動作時に第１論理状態になり、ＩＮＬ信号はクロック信号ＡＣＬＫが非活性化状態、すなわち、第１論理状態である時、第２論理状態にプりチャージされる。
【００３９】
ここで、ブロックキャリ発生情報ＣＩＮＨ、及びＣＩＮＬは、互いに反転された論理状態を有する１対のデジタル情報ＣＩＮＨ、及びＣＩＮＬである。ブロックキャリＫ０、Ｋ４、Ｋ８いずれも第１論理状態としてブロックキャリがある場合には、ＩＮＬ信号が第１論理状態になり、これにより発生する第２論理状態のＣＩＮＨ、及び第１論理状態のＣＩＮＬによって、合算値選択部１５０でブロックキャリがある場合のビット別キャリＣ１が選択される。また、下位ビットブロックから伝搬されるキャリがある場合にも、ＩＮＬ信号が第１論理状態になり、これにより発生する第２論理状態のＣＩＮＨ、及び第１論理状態のＣＩＮＬによって、合算値選択部１５０でブロックキャリがある場合のビット別キャリＣ１が選択される。
【００４０】
同様に、ブロックキャリＫ０、Ｋ４、Ｋ８のうちいずれか１つが第２論理状態としてブロックキャリがない場合に、ＩＮＬ信号はプりチャージされた第２論理状態を維持し、これにより発生する第１論理状態のＣＩＮＨ、及び第２論理状態のＣＩＮＬによって、合算値選択部１５０でブロックキャリがない場合のビット別キャリＣ０が選択される。また、下位ビットブロックから伝搬されるキャリがない場合にも、ＩＮＬ信号はプりチャージされた第２論理状態を維持し、これにより発生する第１論理状態のＣＩＮＨ、及び第２論理状態のＣＩＮＬによって、合算値選択部１５０でブロックキャリがない場合のビット別キャリＣ０が選択される。
【００４１】
ここで、コントロール回路１４０はブロックキャリ発生情報ＣＩＮＨ、及びＣＩＮＬを生成し、これにより同期化される合算値選択部１５０は、ブロックキャリＫ０、Ｋ４、Ｋ８が生成されるやいなや、同じフェーズのＡＣＬＫ内で最終合算結果ＳＵＭを出力する。これとは対照的に、従来のＣＬＡでは、クロック信号ＡＣＬＫが活性化された後でブロックキャリＫ０、Ｋ４、Ｋ８の生成のための時間的マージンを考慮して、活性化されたクロック信号ＡＣＬＫの１フェーズ後に感知増幅フリップフロップを駆動させる。これにより、従来のＣＬＡでは、感知増幅フリップフロップにクロック信号ＡＣＬＫの反転信号が印加されるので、１フェーズ遅れた最終合算結果ＳＵＭが出力される。したがって、前記のような本発明の一実施例によるＣＬＡのコントロール回路１４０は高速合算動作を可能にする。
【００４２】
図７は、図１の合算値選択部１５０の具体的な回路図である。
図７を参照すれば、合算値選択部１５０は、合算の開始を知らせるクロック信号ＡＣＬＫが活性化され、イネーブル信号ＥＮＨ及びＥＮＬそれぞれが第２論理状態及び第１論理状態になる時、ブロックキャリ発生情報ＣＩＮＨ、及びＣＩＮＬに対応するビット別キャリＣ０、またはＣ１を選択し、選択されたビット別キャリＣ０、またはＣ１にビット別キャリ伝搬ビット値ＰＨをビット別に合算して最終キャリＣＭを含む最終合算結果ＳＵＭＨ＜ｉ＞、及びＳＵＭＭＬ＜ｉ＞を出力する。ここで、合算は、表２のように、ビット別キャリＣ０、またはＣ１とビット別キャリ伝搬ビット値ＰＨとをビット別にＸＯＲロジック処理することによって計算される。
【００４３】
図８は、図３乃至図７を結合した全体回路に対するシミュレーション波形図である。
図８を参照すれば、波形１乃至波形５は本発明の一実施例によって図３乃至図７を結合したＣＬＡ全体回路のシミュレーション波形であり、波形６乃至波形８は従来のＣＬＡのシミュレーション波形である。
【００４４】
図８で、波形１は加算数及び被加算数が入力される時間（Ａｕｇｅｎｄ Ｉｎｐｕｔ）及び合算の開始を知らせるクロック信号ＡＣＬＫが活性化状態になる時間（Ａｄｄｅｒ Ｃｌｏｃｋ）を示す。図６のＡＤＤＥＮ信号はクロック信号ＡＣＬＫが反転された信号である。波形２は加算数のビット値が“０”であり、被加算数のビット値が“１”である時のように、キャリ伝搬ビット値ＰＨが第２論理状態になること（Ｐｒｏｐａｇａｔｉｏｎ Ｔｅｒｍ）を示す。波形３はビットキャリ部１３０で生成されるビットキャリ（Ｂｉｔ Ｃａｒｒｙ）を示し、マンチェスタキャリチェーンで実現されたビットキャリ部１３０では上位ビットであるほど計算される遅延が大きくなることが分かる。波形４は、本発明の一実施例によるブロックキャリ（Ｂｌｏｃｋ Ｃａｒｒｙ）Ｋ０、Ｋ４、Ｋ８が選択されて出ることを示す。波形５は、ブロックキャリＫ０、Ｋ４、Ｋ８が生成されるやいなや最終合算結果（Ｓｕｍ Ｒｅｓｕｌｔｓ）が計算される本発明の特徴を示す。
【００４５】
波形６は、従来のＣＬＡで、クロック信号ＡＣＬＫが活性化された後、１フェーズ後に感知増幅フリップフロップを駆動させるための、感知増幅フリップフロップに印加されるクロック信号ＡＣＬＫの反転信号（Ａｄｄｅｒ Ｂａｒ Ｃｌｏｃｋ）を示す。波形７は、従来のＣＬＡで発生するブロックキャリ（Ｂｌｏｃｋ Ｃａｒｒｙ）Ｋ０、Ｋ４、Ｋ８を示す。波形８は、従来のＣＬＡの最終合算結果（Ｓｕｍ Ｒｅｓｕｌｔｓ）が計算される時間を示す。
【００４６】
図８に示すように、本発明の一実施例による最終合算結果（Ｓｕｍ Ｒｅｓｕｌｔｓ）が計算される時間を示す波形５は、従来のＣＬＡの最終合算結果（Ｓｕｍ Ｒｅｓｕｌｔｓ）が計算される時間を示す波形８に比べて１フェーズ程度早く出力される。すなわち、本発明の一実施例によるＣＬＡは、ブロックキャリ部１２０がブロックキャリＫ０、Ｋ４、Ｋ８を生成するやいなや最終合算結果（Ｓｕｍ Ｒｅｓｕｌｔｓ）を出力する。
【００４７】
前述したように、本発明の一実施例によるＣＬＡは、まず、キャリ生成／伝搬部１１０がＮビットのバイナリ値で入力される加算数と被加算数とをＭブロックに分別して、ブロックそれぞれでビット別に第１論理組み合わせしてキャリ伝搬ビット値ＰＨ及びキャリ消耗ビット値ＫＨを計算する。ブロックキャリ部１２０はブロックキャリＫ０、Ｋ４、Ｋ８を生成し、マンチェスタキャリチェーンで構成されるビットキャリ部１３０はブロックキャリがある場合と、ない場合それぞれに対し、ビット別キャリＣ０、またはＣ１を計算する。
【００４８】
これにより、コントロール回路１４０がブロックキャリ発生情報ＣＩＮＨ、及びＣＩＮＬを生成すれば、ブロックキャリ発生情報ＣＩＮＨ、及びＣＩＮＬに同期化された合算値選択部１５０はブロックキャリ発生情報ＣＩＮＨ、及びＣＩＮＬに対応するビット別キャリＣ０、またはＣ１を選択し、選択されたビット別キャリＣ０、またはＣ１にビット別キャリ伝搬ビット値ＰＨをビット別に合算して最終キャリＣＭを含む最終合算結果ＳＵＭを出力する。
【００４９】
以上のように図面及び明細書で最適の実施例が開示された。ここで特定な用語が使われたが、これは単に本発明を説明するための目的で使われたものであって意味限定や特許請求の範囲に記載された本発明の範囲を制限するために使われたものではない。したがって、当業者ならばこれより多様な変形及び均等な他の実施例が可能であるという点を理解できる。したがって、本発明の真の技術的保護範囲は特許請求の範囲の技術的思想により定められねばならない。
【産業上の利用可能性】
【００５０】
本発明によるＣＬＡ及びその方法は、バイナリ値を有する加算数と被加算数との合算に関し、ＣＰＵ（ｃｏｎｔｒｏｌ ｐｒｏｃｅｓｓｉｎｇ ｕｎｉｔ）、ＭＣＵ（ｍｉｃｒｏ−ｃｏｎｔｒｏｌ ｕｎｉｔ）などバイナリロジックを行う多様な装置に使うことができる。
【図面の簡単な説明】
【００５１】
【図１】本発明の一実施例によるＣＬＡのブロック図である。
【図２】図１を具体的に示す他のブロック図である。
【図３】図１のキャリ生成／伝搬部１１０の具体的な回路図である。
【図４】図１のブロックキャリ部１２０の具体的な回路図である。
【図５】Ａ及びＢは、図１のビットキャリ部１３０の具体的な回路図である。
【図６】図１のコントロール回路１４０の具体的な回路図である。
【図７】図１の合算値選択部１５０の具体的な回路図である。
【図８】図３乃至図７を結合した全体回路に対するシミュレーション波形図である。
【符号の説明】
【００５２】
１００    キャリルックアヘッド加算器
１１０    キャリ生成／伝搬部
１２０    ブロックキャリ部
１３０    ビットキャリ部
１４０    コントロール回路
１５０    合算値選択部
【図１】
2004252989.tif 000005
【図２】
2004252989.tif 000006
【図３】
2004252989.tif 000007
【図４】
2004252989.tif 000008
【図５Ａ】
2004252989.tif 000009
【図５Ｂ】
2004252989.tif 000010
【図６】
2004252989.tif 000011
【図７】
2004252989.tif 000012
【図８】
2004252989.tif 000013
【手続補正書】
【提出日】平成16年3月4日(2004.3.4)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００５１
【補正方法】変更
【補正の内容】
【００５１】
【図１】本発明の一実施例によるＣＬＡのブロック図である。
【図２】図１を具体的に示す他のブロック図である。
【図３】図１のキャリ生成／伝搬部１１０の具体的な回路図である。
【図４】図１のブロックキャリ部１２０の具体的な回路図である。
【図５Ａ】図１のビットキャリ部１３０の具体的な回路図である。
【図５Ｂ】図１のビットキャリ部１３０の具体的な回路図である。
【図６】図１のコントロール回路１４０の具体的な回路図である。
【図７】図１の合算値選択部１５０の具体的な回路図である。
【図８】図３乃至図７を結合した全体回路に対するシミュレーション波形図である。