JP2518973B2 - 丸め機能付加算器およびこれを用いた乗算器 - Google Patents

丸め機能付加算器およびこれを用いた乗算器

Info

Publication number
JP2518973B2
JP2518973B2 JP3056890A JP5689091A JP2518973B2 JP 2518973 B2 JP2518973 B2 JP 2518973B2 JP 3056890 A JP3056890 A JP 3056890A JP 5689091 A JP5689091 A JP 5689091A JP 2518973 B2 JP2518973 B2 JP 2518973B2
Authority
JP
Japan
Prior art keywords
piecewise
carry
adder
output
input
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 - Fee Related
Application number
JP3056890A
Other languages
English (en)
Other versions
JPH04211824A (ja
Inventor
康浩 中倉
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP3056890A priority Critical patent/JP2518973B2/ja
Publication of JPH04211824A publication Critical patent/JPH04211824A/ja
Application granted granted Critical
Publication of JP2518973B2 publication Critical patent/JP2518973B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、デジタル演算器にお
ける丸め機能付加算器およびこれを用いた乗算器に関
し、特にビット長の大きい入力データを高速に演算する
ことができるものに係る。
【0002】
【従来の技術】図11は加算器を用いた従来の丸め機能
付加算器の回路図を示している。図11において、A
105 〜A0 およびB105 〜B0 はそれぞれ入力データで
あり、S 52〜S0 は解出力である。1001は加算演算
用の2入力加算器、1003は丸め演算用の2入力加算
器、1002は丸め位置検出回路、1004はシフト回
路である。
【0003】以下、図面にしたがって従来の丸め機能付
加算器の動作を説明する。例えば64ビットの浮動小数
点データの乗算を行う場合、*印を1または0としたと
きに、仮数部52ビットの乗算の結果は、1*.***
****となる場合と、01.*******の場合ま
たは00.*******となる場合とで、丸めビット
位置が異なってくる。そこで、2入力加算器1001で
加算されたデータのうち最上位ビット(MSB)を丸め
位置検出回路1002に入力して丸めビット位置を検出
する。検出された丸めビットを1にしたデータと2入力
加算器1001からの出力とを2入力加算器1003で
加算し、その出力をシフト回路1004に入力し、解出
力S52〜S0 を得ていた。
【0004】また、図12は、図11の丸め機能付加算
器の構成要素となる従来の2入力加算器の構成を示す回
路図である。図12において、10,20,30,4
0,50は0をキャリー入力とした加算器を示し、2
1,31,41,51は1をキャリー入力とした加算器
を示し、23,33,43,53はセレクタを示し、6
0,61,62,63はキャリー生成回路を示してい
る。この場合、加算器10単独で区分加算器X1 を構成
し、加算器21,20およびそれらの出力データをセレ
クトするセレクタ23およびキャリー生成回路60によ
って区分加算器X2 を構成し、加算器31,30および
それらの出力データをセレクトするセレクタ33および
キャリー生成回路61によって区分加算器X3 を構成
し、加算器41,40およびそれらの出力データをセレ
クトするセレクタ43およびキャリー生成回路62によ
って区分加算器X4 を構成し、加算器51,50および
それらの出力データをセレクトするセレクタ53および
キャリー生成回路63によって区分加算器X5 を構成し
ている。
【0005】また、A25〜A0 ,B25〜B0 はそれぞれ
入力データ、S1 25 〜S1 4,S0 25 〜S0 4は和出力、S
25〜S0 は解出力、C1 25 ,C1 19 ,C1 13 ,C1 8,C
0 25 ,C0 19 ,C0 13 ,C0 8,C25,C19,C13
8 ,C4 はそれぞれキャリーである。図12の加算器
では、入力データA25〜A0 ,B25〜B0 は、複数の区
分に分割され、分割された区分データ毎に区分加算器X
5 〜X1 の加算器10,20,21,30,31,4
0,41,50,51において、キャリーを0とした場
合、およびキャリーを1とした場合についてそれぞれ加
算される。加算されたデータは、セレクタ23,33,
43,53によって選択され解出力S25〜S0 となる。
キャリーの伝搬は各区分加算器X5 〜X1 毎に行われ、
これら区分キャリーC4 ,C8 ,C13,C19によるセレ
クタ23,33,43,53の制御を行っている。
【0006】
【発明が解決しようとする課題】しかしながら、上記の
ような構成の丸め機能付加算器では、図11でわかるよ
うに入力されたデータは、2個の2入力加算器を通る必
要があり、加算演算および丸め演算に要する演算時間が
増大するという問題があった。また、レイアウト面積に
ついても、2入力加算器が2個必要であるため、増大す
るという問題があった。
【0007】したがって、この発明の目的は、加算演算
および丸め演算を高速に実行することができ、しかもレ
イアウト面積およびトランジスタ数を少なくすることが
できる丸め機能付加算器およびそれを用いた乗算器を提
供することである。
【0008】
【課題を解決するための手段】請求項1記載の丸め機能
付加算器は、加数および被加数をそれぞれ複数の区分に
分割した区分加数および区分被加数を各々加算する複数
の区分加算器を備え、前記複数の区分加算器の最下位お
よび最上位を除く整数n位の区分加算器を、前記区分加
数および区分被加数をキャリー入力を0として加算する
第1の加算器と、前記区分加数および区分被加数をキャ
リー入力を1として加算する第2の加算器と、前記第1
および第2の加算器のいずれか一方の出力を区分和とし
て選択出力するデータセレクタと、2以上の整数m個の
区分キャリー生成回路と、m入力1出力のセレクタとで
構成し、n−1位の区分加算器のm個の区分キャリー出
力を前記m個の区分キャリー生成回路の各々と前記m入
力1出力のセレクタとに入力し、前記m入力1出力のセ
レクタの出力を前記データセレクタの選択信号とし、前
記第1および第2の加算器のキャリー出力を前記m個の
区分キャリー生成回路のすべてに入力し、前記m個の区
分キャリー生成回路の各々の出力を前記n位の区分加算
器の区分キャリー出力とし、最下位の区分加算器を、前
記区分加数および区分被加数を加算するとともにk種類
の丸め(k≧m)に対応するビットに1をそれぞれさら
に加算するm個の加算器と、前記m個の加算器の和出力
のいずれか一つを区分和出力として選択出力するデータ
セレクタとで構成し、前記m個の加算器のキャリー出力
を直上位の区分加算器へのm個の区分キャリー入力と
し、最上位の区分加算器を、前記区分加数および区分被
加数をキャリー入力を0として加算する第1の加算器
と、前記区分加数および区分被加数とをキャリー入力を
1として加算する第2の加算器と、前記第1および第2
の加算器のいずれか一方の出力を区分和として選択出力
するデータセレクタと、m入力1出力のセレクタと、直
下位の区分加算器のm個の区分キャリー出力と前記第1
および第2の加算器の上位出力とを入力として丸め位置
を判定する丸め判定回路とで構成し、直下位の区分加算
器のm個の区分キャリー出力を前記セレクタに入力し、
前記セレクタの出力を前記データセレクタの選択信号と
し、前記丸め判定回路の出力を最下位以外のすべての区
分加算器のすべてのセレクタに対して選択信号として与
えるとともに前記最下位の区分加算器のデータセレクタ
に対して選択信号として与え、前記複数の区分加算器の
区分和の合成値を解出力としている。
【0009】請求項2記載の乗算器は、第1の入力デー
タおよび第2の入力データより複数個の部分積を発生
し、前記複数個の部分積を加算し、その加算結果である
第1の部分積およびキャリー群である第2の部分積をも
とにして前記第1および第2の入力データの積を生成す
る乗算器であって、前記第1および第2の部分積をそれ
ぞれ加数および被加数とし、前記加数および被加数をそ
れぞれ複数の区分に分割した区分加数および区分被加数
を各々加算する複数の区分加算器を備え、前記複数の区
分加算器の最下位および最上位を除く整数n位の区分加
算器を、前記区分加数および区分被加数をキャリー入力
を0として加算する第1の加算器と、前記区分加数およ
び区分被加数をキャリー入力を1として加算する第2の
加算器と、前記第1および第2の加算器のいずれか一方
の出力を区分和として選択出力するデータセレクタと、
2以上の整数m個の区分キャリー生成回路と、m入力1
出力のセレクタとで構成し、n−1位の区分加算器のm
個の区分キャリー出力を前記m個の区分キャリー生成回
路の各々と前記m入力1出力のセレクタとに入力し、前
記m入力1出力のセレクタの出力を前記データセレクタ
の選択信号とし、前記第1および第2の加算器のキャリ
ー出力を前記m個の区分キャリー生成回路のすべてに入
力し、前記m個の区分キャリー生成回路の各々の出力を
前記n位の区分加算器の区分キャリー出力とし、最下位
の区分加算器を、前記区分加数および区分被加数を加算
するとともにk種類の丸め(k≧m)に対応するビット
に1をそれぞれさらに加算するm個の加算器と、前記m
個の加算器の和出力のいずれか一つを区分和出力として
選択出力するデータセレクタとで構成し、前記m個の加
算器のキャリー出力を直上位の区分加算器へのm個の区
分キャリー入力とし、最上位の区分加算器を、前記区分
加数および区分被加数をキャリー入力を0として加算す
る第1の加算器と、前記区分加数および区分被加数とを
キャリー入力を1として加算する第2の加算器と、前記
第1および第2の加算器のいずれか一方の出力を区分和
として選択出力するデータセレクタと、m入力1出力の
セレクタと、直下位の区分加算器のm個の区分キャリー
出力と前記第1および第2の加算器の上位出力とを
て丸め位置を判定する丸め判定回路とで構成し、直下
位の区分加算器のm個の区分キャリー出力を前記セレク
タに入力し、前記セレクタの出力を前記データセレクタ
の選択信号とし、前記丸め判定回路の出力を最下位以外
のすべての区分加算器のすべてのセレクタに対して選択
信号として与えるとともに前記最下位の区分加算器のデ
ータセレクタに対して選択信号として与え、前記複数の
区分加算器の区分和の合成値を積出力とする。
【0010】請求項3記載の乗算器は、請求項2記載の
乗算器において、丸め判定回路に直下位の区分加算器の
m個の区分キャリー出力、第1および第2の加算器の上
位出力に加えて第1および第2の入力データの最上位ビ
ットの論理積を入力して丸め位置を判定するようにして
いる。 請求項4記載の乗算器は、請求項2または請求項
3記載の乗算器において、第1の入力データおよび第2
の入力データの最上位ビットを入力とする丸め制御回路
を設け、この丸め制御回路の出力により丸めモードを切
り替えるようにしている。
【0011】
【作用】請求項1記載の構成によれば、最下位の区分加
算器内にk種類の丸めモードそれぞれに対応したm個の
加算器をもち、このm個の加算器からのキャリー出力
を、各区分加算器内のm個の区分キャリー生成回路に入
力し、各丸めモードにおけるキャリー伝搬を同時に行
い、最上位の区分加算器内の丸め判定回路により丸めモ
ードを選択し、丸め判定回路からの出力により各区分加
算器に入力されるm個の区分キャリー出力のなかの何れ
か一つをセレクタで選択し、セレクタの出力で最下位以
外の各区分加算器の第1および第2の加算器の和出力の
何れか一方を区分和出力として選択し、さらに最下位の
区分加算器のm個の加算器の和出力の何れか一つを区分
和出力として選択し、その選択された各区分和出力を合
成して第1および第2の入力データを加算した解出力を
得る。
【0012】請求項2記載の構成によれば、第1および
第2の入力データを乗算する場合に、アレイ加算器から
出力されるキャリー出力と和出力とを加算した後桁合わ
せをするためにシフトを行うが、この桁合わせの前処理
として請求項1記載と同様の丸め機能付加算器で丸め演
算を行うことが可能となる。請求項3記載の構成によれ
ば、丸め判定回路に直下位の区分加算器のm個の区分キ
ャリー出力、第1および第2の加算器の上位出力に加え
て第1および第2の入力データの最上位ビットの論理積
を入力することにより、丸め位置を判定のための構成が
簡単化される。 請求項4記載の構成によれば、丸め制御
回路を設けて、丸めモードを切り替えるので、丸め位置
選択のための構成が簡単化される。
【0013】
【実施例】第1の実施例 図1はこの発明の第1の実施例における丸め機能付加算
器の回路図を示している。特に図1では、25ビットの
加算に対し丸め位置が2つの場合についての丸め機能付
加算器の構成を示す。
【0014】図1において、A24〜A0 およびB24〜B
0 はそれぞれ入力データ(一方が加数で、他方が被加数
であり、A24,B24がMSB、A0 ,B0 がLSB)で
ある。103,105,107,109はそれぞれ入力
データA24〜A0 ,B24〜B 0 を分割した区分データの
加算においてキャリー入力を1とした加算器、104,
106,108,110はそれぞれ入力データA24〜A
0 ,B24〜B0 を分割した区分データの加算においてキ
ャリー入力を0とした加算器である。120〜123は
2入力1出力(m入力1出力の一例でm=2を示す)の
セレクタ、130〜135は区分キャリー生成回路、1
11〜115はそれぞれデータセレクタ、140は丸め
判定回路である。
【0015】101は入力されたデータA0 〜A3 およ
びデータB0 〜B3 を加算しさらにデータA1 の桁のビ
ットに丸め演算用データとして1を加算する加算器、1
02は入力されたデータA0 〜A3 およびデータB0
3を加算しさらにデータA 0 の桁のビットに丸め演算
用データとして1を加算する加算器である。加算器10
1,102とデータセレクタ111とで区分加算器P1
が構成され、加算器103,104とデータセレクタ1
12とセレクタ120と区分キャリー生成回路130,
131とで区分加算器P2 が構成され、加算器105,
106とデータセレクタ113とセレクタ121と区分
キャリー生成回路132,133とで区分加算器P3
構成され、加算器107,108とデータセレクタ11
4とセレクタ122と区分キャリー生成回路134,1
35とで区分加算器P 4 が構成され、加算器109,1
10とデータセレクタ115とセレクタ123と丸め判
定回路140とで区分加算器P5 が構成される。
【0016】以下、図面にしたがって、この実施例の丸
め機能付加算器の動作について説明する。ここでは、丸
めモードkとして、つぎの2種類を考えることにする。
入力データA24,A23,…,A1 ,A0 とB24,B23
…,B1 ,B0の25ビットデータを、一方を加数とし
他方を被加数として加算するときに、解出力S 25
24,…,S1 ,S0 のうちS25(キャリー)が1なら
桁上がりがあるとしてS1 のビットに1を加算し(加算
器101を選択する)、S25(キャリー)が0なら桁上
がりがないとしてS0 のビットに1を加算する(加算器
102を選択する)とする。
【0017】そこでまず、区分加算器P1 においては、
各モードの丸めビット位置に対応するように、加算器1
01では、桁上がり演算のため入力されたデータA0
3 およびデータB0 〜B3 を加算し、さらにデータA
1 の桁のビットに丸め演算用データとして1を加算し、
キャリー出力C100 と和出力S1 3〜S1 0とを得る。ま
た、加算器102では、桁上がりのない演算として入力
されたデータA0 〜A3 およびデータB0 〜B3 を加算
し、さらにデータA0 の桁のビットに丸め演算用データ
として0を加算し、キャリー出力C101 と和出力S0 3
0 0とを得る。
【0018】これらの2つの加算器101,102から
の和出力S1 3〜S1 0,S0 3〜S0 0をセレクタ111で選
択し、区分和出力S3 〜S0 とし、加算器101,10
2からのキャリー出力C100 ,C101 をそのまま区分キ
ャリー出力として出力する。また、区分加算器P2 にお
いては、データA7 〜A4 およびデータB7〜B4 を加
算器103,104に入力し、それらの加算器103,
104からの和出力S1 7〜S1 4, S0 7〜S0 4をデータセ
レクタ112に入力し区分和出力S7 〜S4 を求める。
また、加算器103,104のキャリー出力C102 ,C
103 を区分キャリー生成回路130,131の両方に入
力し、区分キャリー出力C108 ,C10 9 を得る。直下位
の区分キャリー出力C100 ,C101 は、それぞれ区分キ
ャリー生成回路130,131に個別に入力するととも
に、両方ともセレクタ120に入力し、セレクタ120
の出力によりデータセレクタ112の制御を行う。
【0019】以下同様に、区分加算器P3 ,P4 は構成
され、接続されている。S1 12 〜S 1 8,S0 12 〜S0 8
加算器105,106からの和出力、S12〜S8 は区分
和出力、C104 ,C105 は加算器105,106のキャ
リー出力、C110 ,C111 は区分キャリー出力である。
1 18 〜S1 13 ,S0 18 〜S0 13 は加算器107,10
8からの和出力、S18〜S13は区分和出力、C106 ,C
107 は加算器107,108のキャリー出力、C112
113 は区分キャリー出力である。
【0020】区分加算器P5 においては、データA24
19およびデータB24〜B19を加算器109,110に
入力し、それらの加算器109,110からの和出力S
1 24〜S1 19 ,S0 24 〜S0 19 をデータセレクタ115
に入力し、区分和S24〜S19を求める。直下位の区分キ
ャリー出力C112 ,C113は、両方とも丸め判定回路1
40とセレクタ123とに入力し、セレクタ123の出
力によりデータセレクタ115の制御を行う。
【0021】また、加算器109,110からの上位出
力ビットS1 25 ,S0 25 (区分加算器P5 の区分キャリ
ー出力に相当する)を丸め判定回路140に入力するこ
とで丸めモードを検出し、丸め判定回路140の出力S
100 により、丸めモードに応じたセレクタ120〜12
3およびデータセレクタ111の制御を行う。丸め判定
回路140の制御論理は、下記の表1に従うことにより
実現できる。
【0022】
【表1】
【0023】また、図2はこの発明の第1の実施例にお
ける区分加算器P1およびその周辺回路の回路図を示し
ている。図2において、21,22,24,25,2
7,28,29,30,31,32は半加算器、23,
26は全加算器、I,II,III ,IV,Vは2入力加算器
を示す。また、図1中の加算器101は半加算器24,
27,28と全加算器26と2入力加算器III から構成
され、また加算器102は半加算器25,27,28と
全加算器23と2入力加算器IIから構成される。さら
に、区分加算器P2 の加算器103および104はそれ
ぞれ半加算器29,30,31,32と2入力加算器IV
で、半加算器29,30,31,32と2入力加算器V
で構成される。
【0024】P-2,Q-2は半加算器21の和出力および
キャリー出力、P-1,Q-1は半加算器22の和出力およ
びキャリー出力、P0 0,Q0 0は全加算器23の和出力お
よびキャリー出力、P1 0,Q1 0は半加算器24の和出力
およびキャリー出力、P0 1,Q0 1は半加算器25の和出
力およびキャリー出力、P1 1,Q1 1は全加算器26の和
出力およびキャリー出力、P2 ,Q2 は半加算器27の
和出力およびキャリー出力、P3 ,Q3 は半加算器28
の和出力およびキャリー出力、P4 ,Q4 は半加算器2
9の和出力およびキャリー出力、P5 ,Q5 は半加算器
30の和出力およびキャリー出力である。C21は2入力
加算器Iのキャリー出力、C101 ,C10 0 は2入力加算
II,III のキャリー出力である。
【0025】以上のような構成により、入力データA-2
〜A5 ,B-2〜B5 に対し、全加算器23,26および
半加算器21,22,24,25,27,28,29,
30によって、2入力加算器IIに対してはA0 ビット目
に信号sを加算することができ、2入力加算器III に対
してはA1 ビット目に信号tを加算することができる。
このため、丸めビットが異なる加算を2入力加算器I,
II,III ,IV,Vで行うことができる。
【0026】また、信号s,tを制御することにより、
丸めモードとして切り捨てをサポートすることもでき
る。この場合、丸めモードkとしては合計3つとなる。
図2のように、信号s,tが入力されるビットより下位
の加算器は2入力加算器のように同一の加算器で演算
し、そのキャリーC21を入力加算器に入力してもよい。
また、図3はこの発明の第1の実施例における加算器1
03を構成する図2に示す2入力加算器IVの第1の例の
回路図を示している。
【0027】図3において、2入力加算器IV内では、1
ビット加算器P300 によりデータQ 3 ,P4 と1とを加
算した和をS1 4として出力し、キャリーをC301 として
出力する。つぎに、1ビット加算器P301 により入力さ
れたデータQ4 ,P5 とキャリーC301 とを加算した和
をS1 5として出力し、キャリーをC302 に出力する。以
下同様にして、1ビット加算器P302 では、データ
5 ,P6 とキャリーC30 2 とを加算した和S1 6を出力
し、キャリーをC303 として出力する。また、1ビット
加算器P303 では、データQ6 ,P7 とキャリーC303
とを加算した和S1 7を出力し、キャリーをC102 として
出力する。
【0028】なお、加算器を構成する図2に示す2入力
加算器Vの構成は、図3における1ビット加算器P300
のエクスクルーシブノア回路を、エクスクルーシブオア
回路に変更することで実現できる。また、図4はこの発
明の第1の実施例における加算器103,104を構成
する図2に示す2入力加算器IV,Vの第2の例の回路図
を示している。
【0029】1ビット加算器P401 内では、データ
3 ,P4 の和に対し1を加算した和としてS1 4を、キ
ャリーとしてC401 を、データQ3 ,P4 の和に対し0
を加算した和としてS0 4を、キャリーとしてC411 を求
めている。また、1ビット加算器P402 内では、データ
4 ,P5 の和に対しキャリーC401 を加算した和とし
てS1 5を、キャリーとしてC402 を求め、同時にデータ
4 ,P5 の和に対しキャリーC411 を加算した和とし
てS0 5を、キャリーとしてC412 を求める。以下同様に
して、1ビット加算器P403 内では、データQ5 ,P6
の和に対しキャリーC402 を加算した和としてS1 6を、
キャリーとしてC403 を求め、同時にデータQ5 ,P6
の和に対しキャリーC412 を加算した和としてS0 6を、
キャリーとしてC413 を求める。1ビット加算器P404
内では、データQ6 ,P7 の和に対しキャリーC403
加算した和としてS1 7を、キャリーとしてC102 を求
め、同時にデータQ6 ,P7 の和に対しキャリーC413
を加算した和としてS0 7を、キャリーとしてC103 を求
める。
【0030】加算器103,104を図4に示したよう
に一体的に構成することにより、トランジスタ数の削減
を図ることができる。また、図5はこの発明の第1の実
施例におけるキャリー生成回路130〜135の論理回
路図を示している。図5において、キャリー生成回路1
30を例にすると、制御論理としては、下記の表2で示
すことができる。
【0031】
【表2】
【0032】表2において、C102 =0,C103 =0の
場合はありえない。そこで、図5において、信号601
としてキャリーC103 を入力し、信号602,603と
してキャリーC102 ,C100 を入力することにより、キ
ャリーC108 が信号604として得られる。この実施例
における演算時間を考えると、従来の丸め機能付加算器
では加算を2回行わないと結果が得られないのに対し、
1回の加算演算により解を得ることができ、約2倍も高
速な演算が可能となる。トランジスタ数を考えると、従
来例よりキャリー生成回路130〜135の数を2倍に
し、区分加算器P2 における加算器102とデータセレ
クタ111および丸め判定回路140を追加するだけで
よく、素子数の増加も少ない。また、論理回路は繰り返
しの多い回路のためレイアウト設計も容易である。
【0033】なお、IEEEの丸め方式についても以下
のように本加算器でサポートできる。従来例えば24ビ
ットデータの加算を行い、その後丸め処理を行う場合を
考えると、加算後のデータとして、図6(a)に示す2
7ビットデータを得る。ここで、26ビット目はMS
B、0ビット目はそれ以下のビットのORをとったもの
(ステッキビットSという)である。1ビット目は丸め
ビットR、2ビット目はガードビットG、3ビット目は
LSBとよぶ。
【0034】もし、MSBが0の場合、25ビット目か
ら2ビット目(ガードビットG)までを出力し、その丸
め方式は最近接丸めの場合、ステッキビットSが1の時
丸めビットRに1を加算し出力し、ステッキビットSが
0および丸めビットRが1の時はガードビットGが1の
場合にのみ丸めビットRに1を加算する。MSBが1の
場合は、LSBをガードビットG、ガードビットGを丸
めビットR、丸めビットRとステッキビットSのORを
ステッキビットSとして取り扱うことにより、MSBが
0の場合と同様に、丸め方式を取り扱え、26ビット目
から3ビット目までを出力とする。
【0035】ここで、この発明によりIEEEの丸め方
式をサポートする場合を説明する。図6(b)に区分加
算器P1 の詳細図を示す。ここでは、加算器1100に
より、入力B3 〜B1 ,A3 〜A1 を加算し、図6
(a)のLSB,ガードビットG,丸めビットRに対応
する3ビットを求める。また、A1 ,B1 より下位ビッ
トの論理和を求めステッキビットSとし、前記加算器1
100からの3ビット出力とともに丸め位置制御器11
04,1105に入力する。丸め位置制御器1104
は、MSBが1の場合の丸め位置を検出し、丸め位置制
御器1105はMSBが0の場合の丸め位置を検出し、
この丸め位置に対応するデータをそれぞれ3ビットを含
む出力とともに加算器1101,1102に入力し、そ
れぞれからキャリーC1 ,C2 を得る。上位ビットの構
成は図1と同様でよく、キャリーC1 を図1のC100
キャリーC2 を図1のC101 に入力することにより、最
近接丸め処理を行うことが可能となる。
【0036】なお、図6(b)のC0 は、入力AとBの
加算によるキャリーのため、次段の区分加算器の入力
(図2のQ3 )として用いることにより、この発明は構
成できる。また、丸め位置として2種類の加算のものを
説明したが、つぎに3種類ある場合について説明する。
【0037】例えば、加算後のデータの上位出力ビット
25,S24と下位丸め位置A3 ,A 2 ,A0 をつぎの表
3のように仮定する。(これは、通常の丸め加算の他
に、除算等での繰り返し演算における丸め位置の移動に
対応する。)
【0038】
【表3】
【0039】図7に3種類の丸め位置(k=3)に対応
した丸め機能付加算器の実施例を示す。ここで、加算器
101,102,180はそれぞれA2 ,A1 ,A0
位置に1を余分に加算する加算器を示し、181は3入
力のデータセレクタを示し、130,131,132,
133,134,135,182,183,184は区
分キャリー生成回路を示す。
【0040】丸め判定回路140の制御論理は下記の表
4に従うことにより実現できる。
【0041】
【表4】
【0042】上表でA2 ,A1 ,A0 はそれぞれの位置
に丸めのため1を加算することを示し、例えばA2 が1
の場合、セレクタではC100 ,C108 ,C110 ,C112
をセレクトし、データセレクタ181では加算器101
の出力を選択する。第2の実施例 図8はこの発明の第2の実施例の乗算器の回路図を示し
ている。図8において、730,720は入力データを
示し、704はブースデコーダ、705はアレイ加算
器、740は丸め機能付加算器、709はシフタを示
す。707A,707Bはアレイ加算器705の和出力
およびキャリー出力、708は丸め機能付加算器の出
力、710は丸め判定回路741の出力、711はシフ
タ709から得られる解出力、712はブースデコーダ
704の出力である。703はアンド回路、701,7
02はアンド回路703の入力となる入力データ72
0,730の最上位のビットである。
【0043】ここで、入力データ730はブースデコー
ダ704によりデコードされる。そして、ブースデコー
ダ704の出力は、アレイ加算器705内でデータ72
0とともに部分積が求められ、さらに加算される。ま
た、アレイ加算器705からのキャリー出力707Bお
よび和出力707Aは丸め機能付加算器740で加算さ
れ、さらに正規化のための前処理として丸め演算が行わ
れ、シフタ709で正規化(桁合わせ)され、シフタ7
09から入力データ720,730の積である解出力7
11が得られる。
【0044】ここで、丸め機能付加算器740への入力
において、0.****×*.*****の演算を考え
ると、通常最上位ビットへのキャリー伝搬は起こらない
が、乗算器の場合符号補正のため、つまり通常0×0の
乗算のキャリーまたは和出力はそれぞれオール1と最下
位ビットに1のみ立つものとの出力となり、それらを加
算することにより0出力を得ているため、最上位ビット
へのキャリーの伝搬が起こる。そこで、入力データの最
上位ビット701,702の論理回路703による論理
積706を図1の丸め判定回路140に相当する丸め判
定回路741に入力して丸め位置を制御する。制御論理
としては、表5に従う。
【0045】
【表5】
【0046】図9に表5を実現するための丸め判定回路
741の論理回路図を示す。図9において、信号50
4,505には、キャリーC112 ,C113 を、信号50
1には和S1 25 を、信号502は和S0 25 を、信号50
3には信号706を入力することにより実現できる。こ
の実施例においては、第1の実施例における丸め機能付
加算器を乗算器に使用することが可能となり、演算を高
速に行うことが可能となる。
【0047】第3の実施例 図10はこの発明の第3の実施例となる乗算器における
丸め機能付加算器の入力部(第1の実施例における区分
加算器P1 の回路図およびその周辺回路)の構成図を示
している。図10において、810,811,813,
814,817,818,819,820は半加算器、
812,815,816は全加算器、P,Qはそれぞれ
半加算器および全加算器からの和出力とキャリー出力を
示し、I,II,III ,IV,Vは2入力加算器を示す。ま
た、801,802は乗算器への第1および第2の入力
データの最上位ビット,A,Bはそれぞれ乗算器からの
第1の部分積およびキャリー群である第2の部分積出力
を示す。
【0048】ここで、第3の実施例の乗算器の動作につ
いてのべる。第1および第2の入力として1.****
…**または0.****…*を考えると、乗算出力と
しては、1*.***…**,01.***…**,0
0.***…**の3種類となり前記第1および第2の
実施例における丸め機能付加算器を用いると、丸めモー
ドkを3種サポートするため、初段の加算器や、キャリ
ー生成回路等が3つ必要となる。
【0049】そこで、図10に示すように、第1および
第2の乗算器の入力データの最上位ビット801,80
2を丸め位置制御回路803に入力し、その出力80
4,805を全加算器812,816にそれぞれ入力す
る。このような構成により、入力データ(部分積入力)
-2〜A5 ,B-2〜B5 に対し、2入力加算器IIによっ
て、A0 ビット目もしくはA2 ビット目に丸めビットを
加算でき、2入力加算器III によってA1 ビット目に丸
めビットを加算できる。つまり、最上位ビットと丸め位
置との関係は表6に示されるようになる(表中*は0,
1どちらかを示し、1が立つ所に丸め用に“1”の追加
加算を行ったことを示す)。
【0050】
【表6】
【0051】このため、丸め位置制御回路803によ
り、入力801,802の論理積をとることにより、丸
めモードは(A2 ,A1 )および(A1 ,A0 )の2組
のうちどちらであるかがわかるため、丸め機能付加算器
も2種の丸めのみの選択出力構成で実現でき、回路の縮
少が図れる。また、演算時間については入力801,8
02は初期に決まっており、部分積出力等に時間がかか
るため、この発明による遅延時間の増加はない。
【0052】なお、第1,第2および第3の実施例にお
いて、各種ゲートは、CMOSトランジスタ構成でも、
TTL構成でも、どのような論理ゲート構成でもよい。
また、第1の実施例において、キャリー生成回路130
〜135は正論理入力正論理出力で記述したが、正論理
入力負論理出力または負論理入力正論理出力でもかまわ
ない。
【0053】また、部分積の加算には、アレイ加算器を
用いて説明したが、繰り返し加算によって第1および第
2の部分積を求めてもよい。
【0054】
【発明の効果】請求項1記載の丸め機能付加算器によれ
ば、丸め判定回路と区分キャリー生成回路を追加し、各
区分加算器の区分キャリー生成回路の出力を順次伝搬さ
せて丸め判定回路へ導き、丸め判定回路の出力によって
区分キャリー出力の選択および区分和出力の選択を行う
ので、一つの加算器で第1および第2の入力データの加
算を行うとともに丸め演算を行うことができ、第1およ
び第2の入力データの加算演算および丸め演算を高速に
実行する行うことができる。しかも、各区分加算器にも
う一つ別の区分キャリー生成回路を追加し、全体的には
数ビットの加算器とデータセレクタと丸め判定回路の追
加だけでよく、その構成も各区分加算器で同一構成であ
るので、トランジスタ数の増加が少なく、またレイアウ
トが容易である。
【0055】請求項2記載の乗算器によれば、請求項1
と同様の丸め演算機能付加算器を用いることにより、加
算演算および丸め演算を要する乗算を高速に実行するこ
とが可能である。請求項3記載の乗算器によれば、丸め
判定回路に直下位の区分加算器のm個の区分キャリー出
力、第1および第2の加算器の上位出力に加えて第1お
よび第2の入力データの最上位ビットの論理積を入力す
ることにより、丸め位置を判定のための構成が簡単化さ
れる。 請求項4記載の乗算器によれば、丸め制御回路を
設けて、丸めモードを切り替えるので、丸め位置選択の
ための構成を簡単化することが可能となる。
【図面の簡単な説明】
【図1】この発明の第1の実施例の丸め機能付加算器の
構成を示す回路図である。
【図2】図1における区分加算器およびその周辺回路の
詳細な構成を示す回路図である。
【図3】図2における2入力加算器の第1の例の回路図
である。
【図4】図2における2入力加算器の第2の例の回路図
である。
【図5】キャリー生成回路の論理回路図である。
【図6】(a)はIEEEの丸め方式に対応したデータ
の形式を示す概略図、(b)はIEEEの丸め方式をサ
ポートする場合の区分加算器の詳細な回路図である。
【図7】3種類の丸め位置(k=3)に対応した丸め機
能付加算器の実施例を示す回路である。
【図8】この発明の第2の実施例の乗算器の構成を示す
回路図である。
【図9】図8の回路における丸め判定回路の構成を示す
回路図である。
【図10】第3の実施例の乗算器の丸め加算器の構成を
示す回路図である。
【図11】丸め機能付加算器の従来例を示す回路図であ
る。
【図12】図11の加算器の具体構成を示す回路図であ
る。
【符号の説明】
101〜110 加算器 111〜115 データセレクタ 120〜123 セレクタ 130〜135 区分キャリー生成回路 140 丸め判定回路 704 ブースデコーダ 705 アレイ加算器 P1 〜P5 区分加算器 A24〜A0 入力データ B24〜B0 入力データ

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 加数および被加数をそれぞれ複数の区分
    に分割した区分加数および区分被加数を各々加算する複
    数の区分加算器を備え、 前記複数の区分加算器の最下位および最上位を除く整数
    n位の区分加算器を、前記区分加数および区分被加数を
    キャリー入力を0として加算する第1の加算器と、前記
    区分加数および区分被加数をキャリー入力を1として加
    算する第2の加算器と、前記第1および第2の加算器の
    いずれか一方の出力を区分和として選択出力するデータ
    セレクタと、2以上の整数m個の区分キャリー生成回路
    と、m入力1出力のセレクタとで構成し、n−1位の区
    分加算器のm個の区分キャリー出力を前記m個の区分キ
    ャリー生成回路の各々と前記m入力1出力のセレクタと
    に入力し、前記m入力1出力のセレクタの出力を前記デ
    ータセレクタの選択信号とし、前記第1および第2の加
    算器のキャリー出力を前記m個の区分キャリー生成回路
    のすべてに入力し、前記m個の区分キャリー生成回路の
    各々の出力を前記n位の区分加算器の区分キャリー出力
    とし、 最下位の区分加算器を、前記区分加数および区分被加数
    を加算するとともにk種類の丸め(k≧m)に対応する
    ビットに1をそれぞれさらに加算するm個の加算器と、
    前記m個の加算器の和出力のいずれか一つを区分和出力
    として選択出力するデータセレクタとで構成し、前記m
    個の加算器のキャリー出力を直上位の区分加算器へのm
    個の区分キャリー入力とし、 最上位の区分加算器を、前記区分加数および区分被加数
    をキャリー入力を0として加算する第1の加算器と、前
    記区分加数および区分被加数とをキャリー入力を1とし
    て加算する第2の加算器と、前記第1および第2の加算
    器のいずれか一方の出力を区分和として選択出力するデ
    ータセレクタと、m入力1出力のセレクタと、直下位の
    区分加算器のm個の区分キャリー出力と前記第1および
    第2の加算器の上位出力とを入力として丸め位置を判定
    する丸め判定回路とで構成し、直下位の区分加算器のm
    個の区分キャリー出力を前記セレクタに入力し、前記セ
    レクタの出力を前記データセレクタの選択信号とし、前
    記丸め判定回路の出力を最下位以外のすべての区分加算
    器のすべてのセレクタに対して選択信号として与えると
    ともに前記最下位の区分加算器のデータセレクタに対し
    て選択信号として与え、前記複数の区分加算器の区分和
    の合成値を解出力とした丸め機能付加算器。
  2. 【請求項2】 第1の入力データおよび第2の入力デー
    タより複数個の部分積を発生し、前記複数個の部分積を
    加算し、その加算結果である第1の部分積およびキャリ
    ー群である第2の部分積をもとにして前記第1および第
    2の入力データの積を生成する乗算器であって、 前記第1および第2の部分積をそれぞれ加数および被加
    数とし、前記加数および被加数をそれぞれ複数の区分に
    分割した区分加数および区分被加数を各々加算する複数
    の区分加算器を備え、 前記複数の区分加算器の最下位および最上位を除く整数
    n位の区分加算器を、前記区分加数および区分被加数を
    キャリー入力を0として加算する第1の加算器と、前記
    区分加数および区分被加数をキャリー入力を1として加
    算する第2の加算器と、前記第1および第2の加算器の
    いずれか一方の出力を区分和として選択出力するデータ
    セレクタと、2以上の整数m個の区分キャリー生成回路
    と、m入力1出力のセレクタとで構成し、n−1位の区
    分加算器のm個の区分キャリー出力を前記m個の区分キ
    ャリー生成回路の各々と前記m入力1出力のセレクタと
    に入力し、前記m入力1出力のセレクタの出力を前記デ
    ータセレクタの選択信号とし、前記第1および第2の加
    算器のキャリー出力を前記m個の区分キャリー生成回路
    のすべてに入力し、前記m個の区分キャリー生成回路の
    各々の出力を前記n位の区分加算器の区分キャリー出力
    とし、 最下位の区分加算器を、前記区分加数および区分被加数
    を加算するとともにk種類の丸め(k≧m)に対応する
    ビットに1をそれぞれさらに加算するm個の加算器と、
    前記m個の加算器の和出力のいずれか一つを区分和出力
    として選択出力するデータセレクタとで構成し、前記m
    個の加算器のキャリー出力を直上位の区分加算器へのm
    個の区分キャリー入力とし、 最上位の区分加算器を、前記区分加数および区分被加数
    をキャリー入力を0として加算する第1の加算器と、前
    記区分加数および区分被加数とをキャリー入力を1とし
    て加算する第2の加算器と、前記第1および第2の加算
    器のいずれか一方の出力を区分和として選択出力するデ
    ータセレクタと、m入力1出力のセレクタと、直下位の
    区分加算器のm個の区分キャリー出力と前記第1および
    第2の加算器の上位出力とを力して丸め位置を判定す
    る丸め判定回路とで構成し、直下位の区分加算器のm個
    の区分キャリー出力を前記セレクタに入力し、前記セレ
    クタの出力を前記データセレクタの選択信号とし、前記
    丸め判定回路の出力を最下位以外のすべての区分加算器
    のすべてのセレクタに対して選択信号として与えるとと
    もに前記最下位の区分加算器のデータセレクタに対して
    選択信号として与え、前記複数の区分加算器の区分和の
    合成値を積出力とした乗算器。
  3. 【請求項3】 前記丸め判定回路に前記直下位の区分加
    算器のm個の区分キャリー出力、前記第1および第2の
    加算器の上位出力に加えて前記第1および第2の入力デ
    ータの最上位ビットの論理積を入力して丸め位置を判定
    することを特徴とした請求項2記載の乗算器。
  4. 【請求項4】 第1の入力データおよび第2の入力デー
    タの最上位ビットを入力とする丸め制御回路を設け、こ
    の丸め制御回路の出力により丸めモードを切り替えるよ
    うにした請求項2または請求項3記載の乗算器。
JP3056890A 1990-03-22 1991-03-20 丸め機能付加算器およびこれを用いた乗算器 Expired - Fee Related JP2518973B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3056890A JP2518973B2 (ja) 1990-03-22 1991-03-20 丸め機能付加算器およびこれを用いた乗算器

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP7417790 1990-03-22
JP2-74177 1990-03-22
JP3056890A JP2518973B2 (ja) 1990-03-22 1991-03-20 丸め機能付加算器およびこれを用いた乗算器

Publications (2)

Publication Number Publication Date
JPH04211824A JPH04211824A (ja) 1992-08-03
JP2518973B2 true JP2518973B2 (ja) 1996-07-31

Family

ID=26397887

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3056890A Expired - Fee Related JP2518973B2 (ja) 1990-03-22 1991-03-20 丸め機能付加算器およびこれを用いた乗算器

Country Status (1)

Country Link
JP (1) JP2518973B2 (ja)

Also Published As

Publication number Publication date
JPH04211824A (ja) 1992-08-03

Similar Documents

Publication Publication Date Title
JP3492638B2 (ja) 浮動小数点乗算器
US5508950A (en) Circuit and method for detecting if a sum of two multibit numbers equals a third multibit constant number prior to availability of the sum
US7872497B2 (en) Flexible carry scheme for field programmable gate arrays
US5633819A (en) Inexact leading-one/leading-zero prediction integrated with a floating-point adder
US7617269B2 (en) Logic entity with two outputs for efficient adder and other macro implementations
US4441158A (en) Arithmetic operation circuit
US5303175A (en) Floating point arithmetic unit
JPH08212058A (ja) 加算オーバフロ検出回路
US7024445B2 (en) Method and apparatus for use in booth-encoded multiplication
JP3537378B2 (ja) 加算器および集積回路
JP3356613B2 (ja) 加算方法および加算器
JP2518973B2 (ja) 丸め機能付加算器およびこれを用いた乗算器
EP0361886B1 (en) Improved floating point computation unit
JPH076023A (ja) 浮動小数点加算器のための仮数加算システム
JP2001501341A (ja) デジタル加算器回路
JPH0464091B2 (ja)
US5812437A (en) Programmable logic unit for arithmetic, logic and equality functions
JP2608600B2 (ja) 2つの数の和のパリティビットの計算装置
JP2907276B2 (ja) 演算処理装置
JPH11282651A (ja) 並列乗算器
JP2606339B2 (ja) 乗算器
US6954773B2 (en) Providing an adder with a conversion circuit in a slack propagation path
JP3535670B2 (ja) 浮動小数点数の仮数正規化回路
US5051943A (en) Adder circuit with an encoded carry
JP3077880B2 (ja) スティッキービット検出回路

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees