JPH0545982B2 - - Google Patents

Info

Publication number
JPH0545982B2
JPH0545982B2 JP63170011A JP17001188A JPH0545982B2 JP H0545982 B2 JPH0545982 B2 JP H0545982B2 JP 63170011 A JP63170011 A JP 63170011A JP 17001188 A JP17001188 A JP 17001188A JP H0545982 B2 JPH0545982 B2 JP H0545982B2
Authority
JP
Japan
Prior art keywords
vector
bcd
carry
sum
bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP63170011A
Other languages
English (en)
Other versions
JPS6488737A (en
Inventor
Jei Adeiretsuta Mashuu
Shii Rameeru Uaajinia
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Digital Equipment Corp
Original Assignee
Digital Equipment Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of JPS6488737A publication Critical patent/JPS6488737A/ja
Publication of JPH0545982B2 publication Critical patent/JPH0545982B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/491Computations with decimal numbers radix 12 or 20.
    • G06F7/492Computations with decimal numbers radix 12 or 20. using a binary weighted representation within each denomination
    • G06F7/493Computations with decimal numbers radix 12 or 20. using a binary weighted representation within each denomination the representation being the natural binary coded representation, i.e. 8421-code
    • G06F7/494Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/492Indexing scheme relating to groups G06F7/492 - G06F7/496
    • G06F2207/4921Single digit adding or subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/492Indexing scheme relating to groups G06F7/492 - G06F7/496
    • G06F2207/4924Digit-parallel adding or subtracting

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、2進化10進(BCD)加算回路に係
る。 従来の技術 2進化10進数は、人間(10進)及びコンピユー
タ(2進)の両方が理解し易い形態で10進数を表
示するために使用される。4個の2進ビツトを用
いた場合には16個のビツトの組合せが考えられる
が、有効なBCDデジツトは10個だけである。そ
れ故、2つのBCDデジツトが加えられそしてそ
の和のデジツトが9を越える場合には、その和の
デジツトを有効BCDデジツトに調整しなければ
ならない。これは、一般に、定数01102(610)を
和に加えることによつて行なわれている。 通常、BCD加算回路は、加算を完了した後に
BCDの和を調整しなければならないかどうかを
検出するための論理を用いている。例えば、2つ
のBCDデジツトの未調整の和が桁上げを生じる
ときには(即ち、和が15を越えるときには)、
01102を加えることによつて和が補正されている。
又、BCDの和のビツト位置8及び4が両方とも
1(値1210−1510)であるか又はビツト位置8及
び2が商法とも1(値1010及び1110)であるとき
にも、調整が必要とされる。 例えば、第1図に示した回路10のような通常
のBCD加算回路は、2つのBCDデジツトを加算
して中間の和(Z8,Z4,Z2,Z1)を形成するため
に標準的な4ビツトの2進加算器を使用してい
る。又、この加算回路は、9より大きな各中間和
のデジツトに対する補正論理回路も含んでいる。
第1図に示した回路においては、第1の4ビツト
オペランド即ちビツトa(0)8−a(0)1及び第2
の4ビツトオペランド即ちビツトb(0)8−b
(0)1がCin即ち桁上げ入力ビツトと共に全加算器
15に並列に入力される。全加算器15からの出力
は、4ビツトの和ベクトルZ(Z8−Z1)及び桁上
げCoutを含んでいる。Coutが“1”であるか又
はZ8及びZ4の両方が“1”(アンドゲート20)
であるか或いはZ8及びZ2の両方が“1”(アンド
ゲート25)である場合に、BCD加算回路10
はオアゲート30からC(0)outBCD桁上げを
発生し、“01102”の値を和のベクトルZに加える
ことによつて和のベクトルZが補正される。C
(0)outが“1”であるときには、第2の全加算
器35のB入力が“01102”の値を受け、和のベ
クトルZが全加算器35のA入力に受け取られ
る。全加算器35の出力S(0)8−S(0)1は、元
の2つのオペランドの調整されたBCDの和であ
る。 明らかなように、回路10のような桁上げ伝播
全加算回路を用いた現在の進歩したVLSI技術に
よる通常のBCD加算回路は、加算回路15,3
5を通る桁上げの伝播に関連した遅延及び補正回
路(ゲート20,25及び30)に関連した遅延
により相当量の遅延を伴う。15及び35のよう
な通常の桁上げ伝播式全加算回路に関連した遅延
は、次のように表わされる。 遅延=log2(オペランド巾、即ちオペランド当
たりのビツト数) それ故、加算器10及び35に関連した遅延は、
log2(4)、即ち2単位の遅延に等しい。補正回路
に関連した遅延は、第1図の加算器の場合に全部
で4単位の遅延の回路に対して2つのゲートレベ
ルがあるので、2単位の遅延に等しくなる。オペ
ランドの巾が増加するにつれて、例えば、2つの
32ビツトオペランドを加算すべき場合には、それ
に関連した遅延も増加する。通常のBCD加算回
路は、2つの32ビツトオペランドの加算を行なう
ためには、8段の桁上げ伝播式全加算器と、それ
に関連した補正回路が必要であり、従つて、この
加算回路の場合には、それに関連した遅延が32単
位という大きさになる。 発明の構成 そこで、本発明の目的は、2つの数のBCD加
算を実行するのに必要な時間を短縮するBCD加
算回路を提供することである。 本発明の更に別の目的及び効果は、以下の説明
に部分的に述べられており且つ以下の説明から部
分的に明らかであり、或いは本発明の実施によつ
て明らかとなろう。又、本発明の目的及び効果
は、特許請求の範囲に特に指摘した手段及び組合
せによつて実現及び達成できるであろう。 本発明の目的を達成するため及び本発明の目的
によれば、以下に広範に実施されたように、第1
及び第2のBCDオペランドを加算してBCDの和
を形成するための本発明のBCD加算回路は、2
進加算手段と、桁上げルツクアヘツド手段と、補
正手段とを具備し、2進加算手段は、中間の和の
ベクトル及び中間の桁上げベクトルを発生するた
めに第1及び第2のオペランド及びBCD予備補
正フアクタを受け取るように接続された入力を有
し、桁上げルツクアヘツド手段は、伝播ベクトル
及び最終的な桁上げベクトルを発生するために上
記中間の和のベクトル及び中間の桁上げベクトル
を受け取るように接続された入力を有し、そして
補正手段は、上記中間及び最終的な桁上げベクト
ルに基づいてBCD補正フアクタに従つて上記伝
播ベクトルを条件に応じて変更することにより
BCDの和を発生するために上記中間桁上げベク
トル、最終桁上げベクトル、伝播ベクトル及び
BCD補正フアクタを受け取るよう接続された入
力を有している。 実施例 以下、添付図面を参照し、本発明の好ましい実
施例を詳細に説明する。 本発明によるBCD加算回路は、1組の全加算
器を用いて2つの数及びBCD予備補正フアクタ
を加算することにより2つの数のBCD加算を実
行するのに必要な時間を短縮する。全加算器の
各々は、対応するBCDデジツトと補正フアクタ
01102とを加算するのが好ましい。各全加算器か
らの桁上げ項は、上位のビツトヘリツプルを生じ
ることがなく、従つて、このリツプル桁上げ作用
によつて生じる伝播遅延が減少される。そうでは
なくて、これらの桁上げ項は回路の中間段階に生
じると考えられる。この中間段階は、加算動作に
おいて通常の全桁上げ伝播を実行して伝播項及び
最終的な桁上げ項を形成するのに用いられる。然
し乍ら、この段の加算動作は、最終的な結果を生
じない。というのは、第1の段において予備補正
フアクタを加算する特性を調べるために桁上げ項
を調査しなければならないからである。回路の最
終段においては、手前の両段からの桁上げ項が検
査されて、予備補正フアクタの作用を受けて正し
いBCDの和を発生するためにBCD補正フアクタ
10102によつて伝播及び最終桁上げ項を修正すべ
きかどうか判断される。従つて、1つの全加算動
作が必要とされるだけであり、これにより、遅延
の単位が減少されると共に、動作速度が著しく高
められる。 第2図は、第1及び第2のBCDオペランドを
加算してBCDの和を発生するための本発明によ
るBCD加算回路に好ましい実施例を示す一般的
なブロツク図である。本発明によれば、この
BCD加算回路は、2進加算手段を備えており、
その入力は、第1及び第2のオペランド及び
BCD予備補正フアクタを受け取るように接続さ
れていて、中間の和のベクトル及び中間の桁上げ
ベクトルが発生される。第2図に示すように、こ
のような加算手段は、段として複数の全加算回
路を備えており、そのうちの3つ、即ち加算器5
0,55及び60が示されている。 段において、加数A、加数B及びBCD予備
補正フアクタは、並列な全加算回路50,55及
び60に入力される。加数A及びBは、ニブル
(4ビツト)ベースでグループ分けされ、各々の
全加算回路は、2つの4ビツト2進オペランド
と、好ましくは01102(610)に等しい4ビツトの
予備補正フアクタとを加算することができる。第
2図に示すように、規定X[M:N]を用いて、
信号XのビツトMないしNが表わされ、ここでN
は最下位ビツトである。従つて、X[N+3:N]
は、信号Xの4つの連続するビツトを表わす。こ
こで、Nは最下位ビツトである。 予備補正フアクタは、手前の加算器からの桁上
げビツトを受け取るのに通常用いられる入力に受
け取られる。段の全加算回路は、オペランドA
及びBと予備補正フアクタとの和を表わす中間の
和のベクトルFIRST SUMと、各単一ビツト加
算からの桁上げビツトを表わす中間の桁上げベク
トルCARRY VECTORとを発生する。 第3図は、段からの全加算回路50の詳細な
ブロツク図である。BCDエンコードオペランド
A及びBは、第3図に各々示されたニブル即ち4
ビツト境界でa(n+3):a(n)及びb(n+
3):b(n)としてグループ分けされる。段の
各全加算回路は、好ましくは、第2図の全加算回
路50に対して素子51,52,53及び54と
して示された複数の並列な単一ビツト全加算器を
含むのが好ましい。各ニブル即ちBCDデジツト
に加えられるBCD予備補正フアクタ01102は、ニ
ブル内の2進ベースの数と10進ベースの数との間
の差を表わす。オペランドA及びBと桁上げ入力
Cとに対する全加算回路は、次の2つの式によつ
て定められる。 SUM(i)=a(i)XORb(i)XORc(i)(1) CARRY(i)=(a(i)ANDb(i))OR(b
(i)ANDc(i))OR(a(i)ANDc(i)) (2) 前記したように、全加算回路50及び第2図の
各全加算回路においては、桁上げ入力Cが真の桁
上げを受け取るように接続されておらず、BCD
予備補正フアクタ‘01102’を受け取るように接
続されている。それ故、ビツト位置n+3ないし
nを含むニブルに対応する全加算回路50につい
ては、 位置nの場合:SUM(n)=a(n)XORb(n)
XOR‘0'=a(n)XORb(n) CARRY(n)=[a(n)ANDb(n)]OR[b
(n)AND‘0']OR[a(n)AND‘0']=[a
(n)ANDb(n)] 位置n+1の場合:SUM(n+1)=a(n+1)
XOR‘1'XORb(n+1)=NOT[a(n+1)
XORb(n+1)] CARRY(n+1)=[a(n+1)ANDb(n+
1)]OR[b(n+1)AND‘1']OR[a(n+
1)AND‘1']=[a(n+1)ORb(n+1)] 位置n+2の場合:SUM(n+2)=a(n+2)
XORb(n+2)XOR‘1'=NOT[a(n+2)
XORb(n+2)] CARRY(n+2)=[a(n+2)ANDb(n+
2)]OR[b(n+2)AND‘1']OR[a(n+
2)AND‘1']=[a(n+2)ORb(n+2)] 位置n+3の場合:SUM(n+3)=a(n+3)
XORb(n+3)XOR‘0'=[a(n+3)
XORb(n+3)] CARRY(n+3)=[a(n+3)ANDb(n+
3)]OR[b(n+3)AND‘0']OR[a(n+
3)AND‘0']=[a(n+3)ANDb(n+
3)] 各々の全加算回路からの和のビツトは、ベクト
ルFIRST SUMを形成し、各全加算回路からの
桁上げビツトはCARRY VECTORを形成する。
然し乍ら、従来のBCD加算器とは異なり、桁上
げ入力は、桁上げビツトを受け取らず、従つて、
この第1の段にはリプル伝播遅延はない。更に、
従来のBCD加算器の最終段において補正フアク
タによつて生じることのあつた伝播遅延は、本発
明では第1の段に入るようにされる。 第3図に示すように、各全加算器からの桁上げ
ビツト出力は、次の上位ビツトに対する全加算器
の和のビツトに対応するようにシフトされる。こ
れは、次の段に対し、FIRST SUMベクトルと
CARRY VECTORとを整列させるためである。 又、本発明によるBCD加算回路は、桁上げル
ツクアヘツド手段も備えており、その入力は、上
記中間の和のベクトル及び中間の桁上げベクトル
を受け取るように接続されていて、伝播ベクトル
及び最終桁上げベクトルが形成される。第2図に
示す本発明の好ましい実施例では、段の桁上げ
ルツクアヘツド回路網65は、段の全加算器か
らFIRST SUMベクトル及びCARRY
VECTORを受け取り、PROPAGATEベクトル
及びFINAL CARRYベクトルを発生する。 第4図ないし第8図は、第2図のBCD加算回
路の段についての詳細な論理図である。
FIRST SUMベクトル及びCARRY
VECTORは、桁上げルツクアヘツド回路網65
において互いに加算される。この回路網65にお
いて行なわれる加算は、通常のBCD加算回路の
場合と同様である。然し乍ら、前記したように、
加算動作は完了しない。というのは、BCD補正
フアクタが必要であるかどうかを判断するため
に、ビツト伝播及びビツト桁上げ項が段の回路
の入力となるからである。 第4図ないし第8図は、32ビツト構成の回路6
5の説明のための16ビツトに対する特定の桁上げ
ルツクアヘツド構成を示している。回路65は、
ニブルをベースとして動作するのが好ましい。最
も左のダツシユ線の前の回路の第1レベルは、ビ
ツト伝播及び発生項の形成を示している。第n番
目の位置への桁上げが第n番目の位置からの桁上
げ出力を生じさせる場合に、1つのビツトが伝播
される(Pn=1)。第n番目の位置への桁上げが
あるかどうかに拘りなく第n番目の位置から桁上
げ出力が生じた場合には、1つのビツトが発生さ
れる。このビツト伝播及びビツト発生項は、以下
で詳細に述べるように、FINAL CARRYベク
トルを発生するのに用いられる。第4図ないし第
7図においては、FIRST SUMベクトルのビツ
ト位置0−15及びCARRY VECTORのビツト
位置0−14が回路網65への入力として処理され
る。発生関数は、次のように定められる。 Gn=FIRST SUM[n]AND CARRY
VECTOR[n−1] (3) それ故、FIRST SUM[n]及びCARRY
VECTOR[n]が1であるときにはGn=1であ
る。 伝播関数は、次のように定められる。 Pn=FIRST SUM[n]XOR CARRY
VECTOR[n−1] (4) ここで、nはビツト位置である。それ故、
FIRST SUM[n]=0及びCARRY
VECTOR[n]=1であるとき、又はFIRST
SUM[n]=1及びCARRY VECTOR[n]=0
であるときには、Pn=1となる。その実施には
負の論理を用いるのが好ましい。というのは、負
の論理は正の論理よりも高速だからである。然し
乍ら、当業者に明らかなように、正の論理をベー
スとする回路設計を用いることもできる。 第4図に示すように、例えば、FIRST SUM
[01]及びCARRY VECTOR[00]がアンドゲ
ート86に入力されて、G1(発生ビツト1)が形
成されると共に、排他的オアゲート87に入力さ
れて、P1(伝播ビツト1)が形成される。FIRST
SUM[02]及びCARRY VECTOR[01]は、
アンドゲート88に入力されてG2を発生すると
共に、排他的オアゲート89に入力されて、P2
を発生する。FIRST SUM[03]及びCARRY
VECTOR[02]は、アンドゲート90に入力
されてG3を発生すると共に、排他的オアゲート
91に入力されてP3を発生する。FIRST SUM
及びCARRY VECTORの全ての対応するビツ
ト対についてこのようなパターンが存在する。然
し乍ら、FIRST SUMの第1ビツトと、
CARRY VECTORの最終ビツトは、CARRY
VECTORの1ビツト整列シフトによりP及び
G項の対応対をもたない。各単一ビツト演算から
のP項は、PROPAGATEベクトルを形成する。 第1ゲートレベル(ビツト伝播及び発生項を形
成するアンド及び排他的オアゲート)と最終ゲー
トレベル(BCD BUMを形成する排他的オアゲ
ート)との間に示された論理は、FINAL
CARRYベクトルの項を形成するための実際の加
算演算に使用されるものを表わしている。この部
分において行なわれる加算演算は、従来の2進加
算回路(2つのオペランドを加算し、全て手前の
ビツト位置から伝播した和及び桁上げを発生す
る)において実行されるものと同様である。然し
乍ら、従来の2進加算器では加算は完了しない。
従来の2進加算器では、PROPAGATEベクトル
及びFINAL CARRYベクトルの排他的オアが
得られる。むしろ、PROPAGATEベクトル及び
FINAL CARRYベクトルのビツト項は、段
において考慮するようにとつておかれる。 3入力論理チツプ92,107,111及び1
46は、入力B1及びB2に基づいて論理アンド演
算を行なうと共に、このアンド演算の結果出力と
入力Aとに基づいて論理オア演算を行なう。負の
肯定論理を用いたこの形式のチツプの論理的な定
義は、次の通りである。 C=NOT((NOT B1 AND NOT B2)OR
NOT A) 6入力の論理チツプ93,108,126,1
29,131,132及び148は、入力B1及
びB2に基づいて論理アンド演算を行なうと共に、
入力C1,C2及びC3に基づいて論理アンド演算を
行なう。次いで、回路は、入力Aと、入力B及び
Cに基づくアンド演算からの出力とに基づいてオ
ア演算を実行する。負の肯定論理を用いたこの形
式のチツプに対する論理的な定義は次の通りであ
る。 C=NOT((NOT C1 AND NOT C2 AND
NOT C3)OR(NOT B1 AND NOT B2)OR
NOT A) 9入力の論理チツプ109,110,127,
130,149,150,151,152及び1
54は、入力B1及びB2に基づいて論理アンド演
算を行ない、入力C1,C2及びC3に基づいて論理
アンド演算を行ない、そして入力D1,D2,D3及
びD4に基づいて論理アンド演算を行なう。次い
で、回路は、入力Aと、各アンド演算からの結果
とに基づいて論理オア演算を実行する。負の肯定
論理を用いたこの形式のチツプの論理的な定義
は、次の通りである。 C=NOT((NOT D1 AND NOT D2 AND
NOT D3 AND NOT D4)OR(NOT C1
AND NOT C2 AND NOT C3)OR(NOT B1
AND NOT B2)OR NOT A) この論理レンベルは、FINAL CARRYベク
トルの項をできるだけ迅速に形成するのに用いら
れる。FINAL CARRYベクトルのビツト項は、
各ビツト位置を通して伝播しなければならない。
第4図ないし第7図に示されたように、ビツト位
置が最下位ビツト位置0から最上位ビツト位置1
6へと増加するにつれて、FINAL CARRYベ
クトルの項を形成するのに必要な論理項の数も増
加する。それ故、上位ビツト項を形成しそして論
理レベルの数及びそれに関連した遅延を最小に保
つために、より複雑な論理ゲートが使用される。 ビツト伝播及びビツト発生項は、ニブルの伝播
項及びニブルの発生項を形成するために4ビツト
項のグループとしてグループ分けされる。例え
ば、第5図に示すように、アンドゲート112
は、入力ビツト伝播項P4,P5,P6及びP7に基づ
いて論理アンド演算を実行してニブルの伝播項
PRO47を発生し、そして例えば、第6図に示す
ように、アンドゲート128は、入力ビツト伝播
項P8,P9,P10及びP11に基づいて論理アンド演
算を実行して、ニブルの伝播項PRO811を形成す
る。又、例えば、第5図に示すように、ゲート1
10は、ニブルの発生項GEN47を出力し、これ
は、説明上正に表示法を用いて次のように定める
ことができる(然し、速度を得るためには負の論
理を用いて実施される)。 GEN47=G7 OR(G6 AND P7)OR(G5
AND P6 AND P7)OR(G4 AND P5 AND
PG AND P7) 同様に、ゲート127はGEN811を発生しそし
てゲート149はGEN1251を発生し、これは次
のように定めることができる。 GEN811=G11 OR(G10 AND P11)OR(G9
AND P10 AND P11)OR(G8 AND P9 AND
P10 AND P11)、及び GEN1215=G15 OR(G14 AND P15)OR
(G13 AND P14 AND P15)OR(G12 AND
P13 AND P14 AND P15) ビツト伝播及びビツト発生項は、FINAL
CARRYベクトルを発生するのに用いられる。以
下に示すFINAL CARRYを参照すれば、この
ベクトルは、ビツト位置nないしn+3を含むニ
ブルに対し次のように定めることができる。 FINAL CARRY[n]=G[n]OR(FINAL
CARRY[n−1]AND P[n]) FINAL CARRY[n−1]=G[n+1]OR
(G[n]AND P[n+1])OR(FINAL
CARRY[n−1]AND P[n]AND P[n+
1]) FINAL CARRY[n+2]=G[n+2]OR
(G[n+1]AND P[n+2])OR(G[n]
AND P[n+1]AND P[n+2])OR
(FINAL CARRY[n−1]AND P[n]
AND P[n+1])AND P[n+2]) FINAL CARRY[n+3]=G[n+3]OR
(G[n+2]ANDP[n+3])OR(G[n+1]
AND P[n+2]AND P[n+3])OR(G
[n]AND P[n+1]AND P[n+2])
AND P[n+3])OR(FINAL CARRY[n−
1]AND P[n]AND P[n+1])AND P
[n+2])AND P[n+3]) PRO811,GEN47,GEN1215及びPRO47のよ
うなニブル伝播項及びニブル発生項を使用する場
合の効果の一例は、第7図の論理チツプ154に
よつて説明することができる。論理チツプ154
は、GEN1215,GEN811,GEN47,PRO811,
PRO47、及びFINAL CARRY[3]を入力とし
て受け取りそしてFINAL CARRY[15]を出力
する。これは次のように定められる。 FINAL CARRY[15]=GEN1215 OR
(GEN811 AND PRO1215)OR(GEN47 AND
PRO811 AND PRO1215)OR(FINAL
CARRY[3]AND PRO47 AND PRO811
AND PRO1215) 第4図ないし第8図に示すように、2つの32ビ
ツトオペランドを加算するための桁上げルツクア
ヘツド構成は、最悪の状態を仮定すれば、4つの
論理レベルの後に、FINAL CARRYベクトル
を発生する。これは、2つの32ビツトオペランド
の加算に対して32個の論理レベルといつた多くの
遅延をもつ従来のリプル加算器に対し、著しい遅
延の向上をもたらす。 本発明によれば、BCD加算回路は、中間桁上
げベクトル、最終桁上げベクトル、伝播ベクトル
及びBCD補正ベクトルを受け取るように接続さ
れた入力を有する補正手段も備えている。この補
正手段は、中間及び最終桁上げベクトルに基づい
てBCD補正フアクタに従つて伝播ベクトル及び
最終桁上げベクトルを条件に応じて変更すること
によりBCDの和を発生する。第2図に示す好ま
しい実施例においては、段の補正回路70は、
段からCARRY VECTORを受け取り、段2
からFINAL CARRYベクトル及び
PROPAGATEベクトルを受け取り、そしてBCD
補正フアクタ10102(1010)を受け取つて、BCDの
和を発生する。ニベルの場合に、FINAL
CARRYベクトルからの特定ニブルの最上位ビツ
トが‘1'ではなく且つCARRY VECTORから
の対応するニブルの最上位ビツトが‘1'でない場
合には、BCD補正フアクタが排他的オア機能に
おいてPROPAGATEベクトルと合体され、実際
上、段で加えられた予備補正フアクタを差し引
き、BCDの和に対する正しいニブル値を形成す
る。これら2つのビツトのいずれかが特定のニブ
ルに対して‘1'である場合には、BCD予備補正
フアクタが段において正しく加えられ、それ
故、BCDの和は、PROPAGATEベクトルと
FINAL CARRYベクトルを排他的オアしたも
のとして正しく表わされる。 第9図は、1つのニブルに対するBCD加算回
路の補正回路200を示す詳細なブロツク図であ
る。一般に、この補正回路200は、FINAL
CARRYベクトル及びCARRY VECTORの特
定のニブルの最上位ビツトを用いて、特定のニブ
ルがBCD予備補正フアクタの加算を必要として
いるかどうか判断する。或る加算演算について
は、BCD予備補正フアクタ01102の加算が必要と
されない。BCD予備補正フアクタの加算がニブ
ルの桁上げを生じない場合、即ちCARRY
VECTOR[n+3]がセツトされない場合には、
誤つたBCDの和を生じる。例えば、数1+5が
加算される場合には、その答えは基数10及び基数
16(即ち4ビツト2進)演算の場合と同じである。
然し乍ら、本発明によれば、BCD予備補正フエ
クタは段においてオペランドに加算された。そ
れ故、不要な01102を減算しなければならない。
これは、10102(1010)を加算することによつて行
なわれる。 例:1+5:段においてこれは 0001 0101 +0110 段において 0010:和 +0101:桁上げ この結果は正しくない: 1100 BCD補正フアクタを加算: +1010 補正された10進和: 0110 BCD補正フアクタは、CARRY VECTORの
特定のニブルの最上位ビツト及びFINAL
CARRYベクトルの特定のニブルの最上位ビツト
の両方がセツトされない場合にのみニブルに加え
られる。いずれかの桁上げビツトがセツトされた
場合には、BCD予備補正フアクタが正しく加え
られており、従つて、BCD補正フアクタは加算
されない。 第9図は、補正回路、例えば、補正回路70を
示していると共に、BCD補正フアクタがイネー
ブルされた場合にニブルの各ビツト位置をいかに
修正するかを示している。イネーブル信号
ENABLE MODIFICATION OF 1010 ON
NIBBLE=EN ON NIBx(但し、A=
10102)は、FINAL CARRY[n+3]及び
CARRY VECTOR[n+3]が入力されるアン
ドゲート201から発生される。いずれの桁上げ
もセツトされない場合には、EN A ON
NIBxがセツトされ、BCD補正フアクタがこのニ
ブルに加えられる。このニブルのBCD SUM
は、次のように修正される。 BCD SUM[n]は、補正フアクタによつて
影響されない。というのは、FINAL CARRY
[n−1]及びPROPAGATE[n]とゼロとの排
他的オアをとつても結果に影響しないからであ
る。 BCD SUM[n+1]=(EN ON NIBx
AND‘1')XOR FINAL CARRY[n]XOR
PROPAGATE[n+1] BCD SUM[n+2]は、入力FINAL
CARRY[n+1]及びPROPAGATE[n+2]
を有する排他的オアゲート205及びアンドゲー
ト204の出力から発生される。BCD補正フア
クタがイネーブルされた場合には、ビツト位置
[n+1]に‘1'を加えると、FINAL CARRY
[n]又はPROPAGATE[n+1]がセツトされ
ていれば、ビツト位置[n+2]へ桁上げが生じ
る。アオゲート203はこの判断を行なう。アン
ドゲート204は、アオゲート203の出力を受
け取り、EN ON NIBxがセツトされた場
合にオアゲート203の出力を使用できるように
する。 BCD SUM[n+3]は、入力FINAL
CARRY[n+2]、PROPAGATE[n+3]、
EN ON NIBxを有する排他的オアゲート
209及びアンドゲート208の出力から発生さ
れる。BCD補正フアクタがイネーブルされた場
合には、ビツト位置[n+3]に‘1'が加えられ
る。この‘1'の加算は、イネーブル信号と、
BCD SUM即ちFINAL CARRY[n+2]及
びPROPAGATE[n+3]を発生する他の項と
の排他的オアをとることによつて行なわれる。ア
ンドゲート208の出力は、イネーブル信号がセ
ツトされた場合に考慮する必要のある別の項であ
る。というのは、‘1'をビツト位置[n+1]に
加算して桁上げが生じ、これがビツト位置[n+
2]を通して伝播する場合に、ビツト位置[n+
3]への桁上げが生じるからである。オアゲート
206及び207は、イネーブルがセツトされた
場合にビツト位置[n+1]から桁上げが生じる
かどうか判断するためのチエツクを行なう。 第8図は、補正回路70に使用されるイネーブ
ル信号の発生を示している。例えば、EN
ON NIB0はアンドゲート159から発生され、
EN ON NIB1はアンドゲート160から
発生され、EN ON NIB2はアンドゲート
161から発生され、そしてEN ON
NIB3はアンドゲート162から発生される。ゲ
ート151−162からの出力は、第4図ないし
第7図に示された示されたように、最後の論理レ
ベルの排他的オアゲート94,96,114及び
116への入力として使用されて、BCD SUM
の対応ビツトを発生する。 好ましい実施例においては、第8図に示すよう
に、NIBy X1及びNIBy X2が4入力アンドゲ
ート、例えば、163及び164から発生され
る。これらの信号は、第9図のゲート203及び
204の正味の結果に対応し、次のように定める
ことができる。 NIBy X1=CARRY VECTOR[n+3]
AND FINAL CARRY[n+3]AND
PROPAGATE[n+1] NIBy X2=CARRY VECTOR[n+3]
AND FINAL CARRY[n+3]AND
(NOT FINAL CARRY[n] 第8図に示された信号CAR FROM NIBy
は、好ましい実施例において用いられる第9図の
ゲート208の出力に関連した信号である。然し
乍ら、別の構成を用いても同じ結果を得ることが
できる。信号CAR FROM NIByは、次のよ
うに定められる。 CAR FROM NIBy=NOT(A XOR B
XOR C XOR D) 但し、A=(CARRY VECTOR[n+3]
AND FINAL CARRY[n+3]AND
PROPAGATE[n+1]AND FINAL
CARRY[n+2] B=(CARRY VECTOR[n+3]AND
FINAL CARRY[n+3]AND FINAL
CARRY[n]AND PROPAGATE[n+
2] C=(CARRY VECTOR[n+3]AND
FINAL CARRY[n+3]AND FINAL
CARRY[n+1]AND PROPAGATE
[n+1] D=(CARRY VECTOR[n+3]AND
FINAL CARRY[n+3]AND FINAL
CARRY[n]AND FINAL CARRY
[n+1] 従来のBCD加算回路は、32ビツトオペランド
の場合BCD加算演算を10ないし26の論理レベル
で実行する。本発明のBCD加算回路は、1つの
全加算演算しか実行されないので、必要な論理レ
ベルを7まで減少する。この回路は、BCD予備
補正フアクタを最初の段で加算しそして中間加算
レベルからの桁上げ項を操作して、BCDの和の
デジツトにBCDの補正が必要であるかどうか判
断する。本発明のBCD加算回路は、各オペラン
ドのビツト数が増加するにつれて項かを奏する。
第1段及び最終段の桁上げ項はニブル間を伝播せ
ず、動作速度が更に増加される。 本発明の精神及び範囲から逸脱せずに本発明の
方法及び装置に種々の修正や変更がなされ得るこ
とが当業者に明らかであろう。従つて、これらの
修正や変更は全て特許請求の範囲内に包含される
ものとする。
【図面の簡単な説明】
第1図は、公知のBCD加算回路の論理図、第
2図は、本発明の好ましい実施例によるBCD加
算回路を示す一般的なブロツク図、第3図は、第
2図のBCD加算回路の第1段の全加算器を示す
詳細なブロツク図、第4図なしい第8図は、第2
図のBCD加算回路の第2段の桁上げルツクアヘ
ツド回路網を示す詳細な論理図、そして第9図
は、第2図のBCD加算回路の第3段の補正回路
を示す詳細な論理図である。 ,,……段、50,55,60……加算
器、65……桁上げルツクアヘツド回路網、7
0,75,80……補正回路。

Claims (1)

  1. 【特許請求の範囲】 1 第1及び第2のBCDオペランドを加算して
    BCDの和を発生するためのBCD加算回路におい
    て、 第1及び第2のオペラント及びBCD予備補正
    フアクタを受け取るように接続された入力を有
    し、中間の和のベクトル及び中間の桁上げベクト
    ルを発生するための2進加算手段と、 前記中間の和のベクトル及び中間の桁上げベク
    トルを受け取るように接続された入力を有し、伝
    播ベクトル及び最終桁上げベクトルを発生するた
    めの桁上げルツクアヘツド手段と、 前記中間の桁上げベクトル、最終桁上げベクト
    ル、伝播ベクトル及びBCD補正フアクタを受け
    取るように接続された入力を有し、前記中間及び
    最終桁上げベクトルに基づいて前記BCD補正フ
    アクタに従つて前記伝播ベクトル及び最終桁上げ
    ベクトルを条件に応じて修正することにより前記
    BCDの和を発生するための補正手段とを具備す
    ることを特徴とするBCD加算回路。 2 第1及び第2のBCDコードのオペランドを
    加算するためのBCD加算回路において、これら
    第1及び第2のオペランドは複数のニブルでグル
    ープ分けされており、各々のニブルは4つの次々
    のビツトの独特のグループであり、前記BCD加
    算回路は、BCD和を発生するものであつて、 複数の並列な全加算回路を具備し、各々の全加
    算回路は、前記第1オペランドの1つのニブル
    と、前記第2オペランドの1つのニブルと、2進
    数で0110に等しいBCD予備補正フアクタとを入
    力として受け取るように接続され、更に、複数の
    全加算回路の各々は、4ビツトに等しい中間和ベ
    クトルの独特の1組の次々のビツトと、4ビツト
    に等しい中間桁上げベクトルの独特の1組の次々
    のビツトとを出力として発生し、 更に、複数の一連の個別の論理素子を含む桁上
    げルツクアヘツド回路を具備し、各々の一連の個
    別の論理素子は、前記中間桁上げベクトル及び前
    記中間和ベクトルの独特の1組の次々のビツトを
    入力として受け取るように接続され、各々の一連
    の個別の論理素子は、伝播ベクトルの独特の1組
    の次々のビツト及び最終桁上げベクトルの独特の
    1組のビツトを出力として発生し、そして さらに、補正回路を具備し、該補正回路は、 前記中間桁上げベクトルの1つのビツト及び前
    記最終桁上げベクトルの1つのビツトを各々入力
    として受け取るように接続されそして出力を各々
    発生するような複数の並列なオアゲートと、 前記オアゲートの1つに各々対応し、前記対応
    するオアゲートの出力及び2進数で1010に等しい
    BCD補正フアクタの1つのビツトを入力として
    各々受け取るように接続されそして出力を各々発
    生するような複数のアンドゲートと、 前記対応するアンドゲートの前記出力、前記伝
    播ベクトルの独特のビツト及び前記最終桁上げベ
    クトルの独特のビツトを入力として各々受け取る
    ように接続されそして前記BCD和の独特のビツ
    トを各々出力するような複数の排他的なオアゲー
    トとを備えていることを特徴とするBCD加算回
    路。 3 コンピユータシステムにBCD加算回路を使
    用して第1及び第2のBCDコードのオペランド
    を加算しそしてBCD和を発生する方法において、 前記第1及び第2のオペランドをレジスタに記
    憶し、 中間和ベクトル及び中間桁上げベクトルを加算
    回路から発生し、 前記中間ベクトル及び中間桁上げベクトルを受
    け取るように接続された入力を有する桁上げルツ
    クアヘツド回路から伝播ベクトル及び最終桁上げ
    ベクトルを発生し、 前記BCD補正フアクタ及び最終桁上げベクト
    ルに応答して前記伝播ベクトルを修正して、前記
    中間及び最終桁上げベクトルが所定の関係を有す
    る場合に前記BCD和を形成し、そして 前記最終桁上げベクトルに基づいて前記伝播ベ
    クトルを修正して、前記中間及び最終桁上げベク
    トルが前記所定の関係を有していない場合に前記
    BCD和を形成することを特徴とする方法。
JP63170011A 1987-07-09 1988-07-07 Bcd addition circuit Granted JPS6488737A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/072,161 US4805131A (en) 1987-07-09 1987-07-09 BCD adder circuit

Publications (2)

Publication Number Publication Date
JPS6488737A JPS6488737A (en) 1989-04-03
JPH0545982B2 true JPH0545982B2 (ja) 1993-07-12

Family

ID=22105974

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63170011A Granted JPS6488737A (en) 1987-07-09 1988-07-07 Bcd addition circuit

Country Status (6)

Country Link
US (1) US4805131A (ja)
EP (1) EP0298717A3 (ja)
JP (1) JPS6488737A (ja)
CN (1) CN1014188B (ja)
BR (1) BR8803463A (ja)
CA (1) CA1291266C (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5699287A (en) * 1992-09-30 1997-12-16 Texas Instruments Incorporated Method and device for adding and subtracting thermometer coded data
GB9510834D0 (en) * 1995-05-27 1995-07-19 Int Computers Ltd Decimal arithmetic apparatus and method
US6055557A (en) * 1997-01-08 2000-04-25 International Business Machines Corp. Adder circuit and method therefor
US7299254B2 (en) * 2003-11-24 2007-11-20 International Business Machines Corporation Binary coded decimal addition
US7546328B2 (en) * 2004-08-31 2009-06-09 Wisconsin Alumni Research Foundation Decimal floating-point adder
US7743084B2 (en) * 2004-09-23 2010-06-22 Wisconsin Alumni Research Foundation Processing unit having multioperand decimal addition
US7519645B2 (en) * 2005-02-10 2009-04-14 International Business Machines Corporation System and method for performing decimal floating point addition
US7477171B2 (en) * 2007-03-27 2009-01-13 Intel Corporation Binary-to-BCD conversion
CN102591614B (zh) * 2011-01-14 2015-09-09 上海丽恒光微电子科技有限公司 加法器以及集成电路
US9143159B2 (en) * 2012-10-04 2015-09-22 Silminds, Inc. DPD/BCD to BID converters
US9134958B2 (en) * 2012-10-22 2015-09-15 Silminds, Inc. Bid to BCD/DPD converters
US9400635B1 (en) 2013-01-14 2016-07-26 Altera Corporation Methods and apparatus for performing dynamic data alignment for floating-point operations
US10671345B2 (en) 2017-02-02 2020-06-02 Intel Corporation Methods and apparatus for performing fixed-point normalization using floating-point functional blocks
CN108268242B (zh) * 2018-02-11 2021-09-28 山东理工大学 一种10:4进位存储加法器和10:2进位存储加法器

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61166627A (ja) * 1985-01-18 1986-07-28 Toshiba Corp 10進桁加減算回路

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3629565A (en) * 1970-02-13 1971-12-21 Ibm Improved decimal adder for directly implementing bcd addition utilizing logic circuitry
US3711693A (en) * 1971-06-30 1973-01-16 Honeywell Inf Systems Modular bcd and binary arithmetic and logical system
DE2352686B2 (de) * 1973-10-20 1978-05-11 Vereinigte Flugtechnische Werke- Fokker Gmbh, 2800 Bremen Dezimaler Parallel-Addierer/Substrahierer
US4001570A (en) * 1975-06-17 1977-01-04 International Business Machines Corporation Arithmetic unit for a digital data processor
US4172288A (en) * 1976-03-08 1979-10-23 Motorola, Inc. Binary or BCD adder with precorrected result
US4638300A (en) * 1982-05-10 1987-01-20 Advanced Micro Devices, Inc. Central processing unit having built-in BCD operation
US4707799A (en) * 1984-01-30 1987-11-17 Kabushiki Kaisha Toshiba Bit sliced decimal adding/subtracting unit for multi-digit decimal addition and subtraction
JPS62500474A (ja) * 1985-01-31 1987-02-26 バロ−ス・コ−ポレ−シヨン 高速bcd/バイナリ加算器
US4718033A (en) * 1985-06-28 1988-01-05 Hewlett-Packard Company Intermediate decimal correction for sequential addition

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61166627A (ja) * 1985-01-18 1986-07-28 Toshiba Corp 10進桁加減算回路

Also Published As

Publication number Publication date
EP0298717A2 (en) 1989-01-11
CA1291266C (en) 1991-10-22
US4805131A (en) 1989-02-14
BR8803463A (pt) 1989-01-31
CN1031613A (zh) 1989-03-08
EP0298717A3 (en) 1991-01-16
CN1014188B (zh) 1991-10-02
JPS6488737A (en) 1989-04-03

Similar Documents

Publication Publication Date Title
US4707800A (en) Adder/substractor for variable length numbers
US5327369A (en) Digital adder and method for adding 64-bit, 16-bit and 8-bit words
US4525797A (en) N-bit carry select adder circuit having only one full adder per bit
US4623982A (en) Conditional carry techniques for digital processors
US4761760A (en) Digital adder-subtracter with tentative result correction circuit
US6411980B2 (en) Data split parallel shifter and parallel adder/subtractor
US4866656A (en) High-speed binary and decimal arithmetic logic unit
JPH0545982B2 (ja)
US5943251A (en) Adder which handles multiple data with different data types
US4138731A (en) High speed binary and binary coded decimal adder
US5097436A (en) High performance adder using carry predictions
US3842250A (en) Circuit for implementing rounding in add/subtract logic networks
US4441159A (en) Digital adder circuit for binary-coded numbers of radix other than a power of two
US6546411B1 (en) High-speed radix 100 parallel adder
US4503512A (en) Cellular division circuit
JP3356613B2 (ja) 加算方法および加算器
EP0361886B1 (en) Improved floating point computation unit
US6134572A (en) Galois Field arithmetic apparatus and method
US6003059A (en) Carry select adder using two level selectors
US4827444A (en) Carry skip-ahead circuit for Manchester-type adder chain
US5719802A (en) Adder circuit incorporating byte boundaries
US5357457A (en) Adder with carry look ahead circuit
JPS61166628A (ja) 除算装置
EP0189912B1 (en) Fast bcd/binary adder
US5754458A (en) Trailing bit anticipator