JP3592242B2 - 2進10進変換回路及びその方法 - Google Patents
2進10進変換回路及びその方法 Download PDFInfo
- Publication number
- JP3592242B2 JP3592242B2 JP2001020210A JP2001020210A JP3592242B2 JP 3592242 B2 JP3592242 B2 JP 3592242B2 JP 2001020210 A JP2001020210 A JP 2001020210A JP 2001020210 A JP2001020210 A JP 2001020210A JP 3592242 B2 JP3592242 B2 JP 3592242B2
- Authority
- JP
- Japan
- Prior art keywords
- decimal
- data
- binary
- output
- value
- 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
Links
Images
Description
【0001】
【発明の属する技術分野】
本発明は、情報処理装置における2進数を10進数に変換する回路に関し、特に2進数を4ビットずつ10進数に変換する事で変換速度の高速化を図った2進10進変換回路に関する。
【0002】
【従来の技術】
従来の2進10進変換回路においては、たとえば、「特開昭59−168543号公報」記載の技術のように、2進データの各ビットを1ビット毎に検査することにより変換を行っている。
【0003】
図9は、この従来の技術を示すブロック図である。図9を参照すると、この2進10進変換回路は、2進データセレクタ11と、2進データレジスタ12と、10進加算器13と、10進データレジスタ14とから構成される。
【0004】
変換対象2進データ000と2進データレジスタ12を1ビット左にシフトしたデータ300とを2進データセレクタ11に入力し、2進データセレクタ11の出力100を2進データレジスタ12に入力し、10進データレジスタ14の出力500を10進加算器13の両方の入力に入力し、2進データレジスタ12の最上位1ビット200を10進加算器13のキャリー入力に入力し、10進加算器13の出力400を10進データレジスタ14に入力する。
【0005】
まず、変換対象の2進データ000を2進データセレクタ11を経由して2進データレジスタ12にロードし、同時に10進データレジスタ14をリセットする。
【0006】
次に、2進データレジスタ12の最上位ビット200と10進データレジスタ14のデータ500とを10進加算器13で加算することにより、10進データレジスタ14の値500の2倍数と2進データレジスタ12の最上位ビット200との加算を行う。また、10進加算器13の出力400を10進データレジスタ14に格納すると同時に、2進データレジスタ12のデータを1ビット左シフトしたデータ300を、2進データセレクタ11を経由して2進データレジスタ12に格納する。
【0007】
この動作を2進データのビット数分だけ繰り返すことにより2進10進変換を行っている。
【0008】
【発明が解決しようとする課題】
上述した従来の2進10進変換回路では、2進データがn(正整数)ビットとすると、n回の加算動作が演算回路に要求される。このため2進10進変換に必要な実行時間が大きくなり、演算速度の低下および処理時間の増大を招くという欠点がある。このため本発明者による特開2000−200174号公報によって一演算サイクルにおいて3ビットずつの2進10進変換を行う改善を行ったが本発明ではさらにそれを4ビットずつ処理することで、一層の高速化を図るものである。
【0009】
【課題を解決するための手段】
本発明の第1の2進10進変換回路は、10進データを20倍する10進20倍数生成回路と、
10進データを4倍する10進4倍数生成回路と、
変換の対象となる2進数値を格納し演算サイクルに従って上位4ビットの2進数値を出力すると次の演算サイクルに備え2進数値を左へ4ビットシフトさせる2進データレジスタと、
前記2進データレジスタの左端上位の4ビットを入力して5ビットの10進数値に変換する4ビット2進10進変換器と、
前記10進20倍数生成回路の出力データと前記4ビット2進10進変換器の出力データとを第1のデータ入力とし前記10進4倍数生成回路の出力データを反転したデータを第2のデータ入力とし且つ1のキャリを入力して第1のデータ入力と第2のデータ入力との加算を行う10進加算器と、
前記10進加算器の演算結果を保持し次の演算サイクルに前記10進20倍数生成回路と前記10進4倍数生成回路とに保持したデータを出力する10進データレジスタと、を備え、
前記2進データレジスタからの4ビットの2進数値の出力と前記10進データレジスタからの10進数値の出力とを1演算サイクルにおいて同期して行うことを特徴とする。
【0010】
本発明の第2の2進10進変換回路は、第1の発明において、前記10進20倍数生成回路の出力する10進20倍数データと前記10進20倍数データの下位5ビットは0であることを利用し前記4ビット2進10進変換器の出力データを前記下位5ビットの位置に取り込んで第1のデータ入力とし、前記10進4倍数生成回路による10進4倍数を反転したデータを第2のデータ入力とし、前記10進20倍数データと前記4ビット2進10進変換器の出力データと前記10進4倍数データとを1回の演算で加算する10進加算器を備える。
【0011】
本発明の第3の2進10進変換回路は、第1または第2の発明において、前記第1のデータ入力と前記第2のデータ入力とを元に前演算サイクルでの演算結果の10進16倍数に前記4ビット2進10進変換器の出力結果を合計する数値を出力する10進加算器を備える。
【0012】
本発明の第4の2進10進変換回路は、第1の発明において、10進データを2倍する10進2倍数生成回路を2段に直列に接続した構成からなる前記10進4倍数生成回路を備える。
【0013】
本発明の第5の2進10進変換回路は、第1の発明において、10進2倍数を前記10進2倍数生成回路で生成しその結果を4ビット左へシフトする事で10進20倍数を生成する前記10進20倍数生成回路を備える。
【0014】
本発明の第6の2進10進変換回路は、第1の発明において、前記2進データレジスタに格納された2進数値の変換後の10進数値を格納する前記10進データレジスタを備える。
【0015】
本発明の第1の2進10進変換方法は、変換の対象となる2進数値の上位から4ビットを出力すると当該2進数値を左へ4ビットシフトして次の演算サイクルの準備をする第1のステップと、
第1のステップで出力された4ビットの2進数値を5ビットの10進数値に変換する第2のステップと、
前演算サイクルで生成された10進数の20倍数と4倍数とを生成する第3のステップと、
第3のステップで生成された4倍数に対して反転を行う第4のステップと、
第2のステップによる10進数値と前記第3のステップの20倍数とを第1の入力とし前記第4のステップで反転された4倍数を第2の入力としキャリに1を入力して加算を行い10進数を生成する第5のステップと、
第5のステップで生成された結果を保持し次の演算サイクルにおいて第3のステップへの出力を行う第6のステップと、
を備える。
【0016】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【0017】
図1は本発明の構成を示すブロック図である。
【0018】
図1を参照すると、2進数データであって10進数への変換が行われる変換対象2進データ000と2進データレジスタ12の出力データを4ビット左にシフトしたデータ300とを選択して取り込む2進データセレクタ11を備え、2進データセレクタ11の出力100を2進データレジスタ12に入力する。
【0019】
2進データレジスタ12の上位4ビットは、演算サイクルに対応して4ビット2進10進変換器18に逐次取り込まれ、4ビットの2進数が5ビットからなる10進数に変換されて10進加算器13に供給される。
【0020】
また、10進データレジスタ14の出力900は、20倍する10進数値を生成する10進20倍数生成回路15と、同じく出力900を4倍する10進数値を生成する10進4倍数生成回路16と、に入力される。
【0021】
そして、10進20倍数生成回路15の出力400(20倍数は最下位5ビットが00000となっている。)を10進加算器13の2つある入力の1つの入力位置に入力し、4ビット2進10進変換器18から出力された5ビットからなる10進数値を10進20倍数400を入力した入力の最下位5ビットにそのまま取り込み、10進4倍数生成回路16の出力500を反転回路17で反転したデータ600を10進加算器13のもう一つの入力に入力し、10進加算器13のキャリ入力700には常に1を入力して10進加算器13による10進数値の加算演算を実行する。10進加算器13の出力800は、10進データレジスタ14に格納される。
【0022】
図2を参照すると、入力された数値の2倍の10進数値を生成する10進2倍数生成回路は、
j桁(jは正整数)の10進データ
d0(0),d0(1),d0(2),d0(3),・・・,
di−1(0),di−1(1),di−1(2),di−1(3),
di(0),di(1),di(2),di(3),
di+1(0),di+1(1),di+1(2),di+1(3),・・・,
dj−1(0),dj−1(1),dj−1(2),dj−1(3)
から、10進2倍数データ
D−1(3),D0(0),D0(1),D0(2),・・・、
Di−2(3),Di−1(0),Di−1(1),Di−1(2),
Di−1(3)、Di(0),Di(1),Di(2),
Di(3)、Di+1(0),Di+1(1),Di+1(2),・・・,
Dj−2(3)、Dj−1(0),Dj−1(1),Dj−1(2)
を生成するように、1桁の10進2倍数生成回路20〜24から構成される(これらはすべて同一の構成を持つ)。
【0023】
図3は、図2の1桁の10進2倍数生成回路20〜24の詳細回路図である。
【0024】
図4は、1桁の10進2倍数生成回路20〜24の変換表である。
【0025】
図4に示すとおり、10進データの4ビットからなる1桁は、10進数の“0”から“9”までであることから、その2倍数は“0”から“18”までであり、10進2倍数生成結果の変換桁の最下位ビットD(3)は必ず“0”となる。図5は、複数桁の10進数の10進2倍数生成回路の1桁単位の変換表である。複数桁の10進数の10進2倍数の生成においては、下位桁からの桁上がりが1ビット生じるが、図4で説明した通り、各桁の最下位ビットは2倍されることにより“0”となるため、下位桁からの桁上がり1ビットをそのまま入れることができる。
【0026】
したがって、j桁(jは正整数)の10進数の任意の1桁のdi(0),di(1),di(2),di(3)を10進2倍数Di−1(3),Di(0),Di(1),Di(2),Di(3)に変換する場合(iは0からj−1の正整数)、
の論理により生成できる。
(ここで、「*」は論理積、「+」は論理和、「’」は反転(コンプリメント)を示している。)
よって、図3の10進1桁の10進2倍数生成回路を、図2のように並列に接続して10進2倍数生成回路を構成することにより、複数桁の10進数の10進2倍数を生成することができる。この2倍数生成回路を直列に2段組み合わせることで10進4倍数生成回路16を実現する。
【0027】
図7を参照すると、10進20倍数生成回路15は、
j桁(jは正整数)の10進データ
d0(0),d0(1),d0(2),d0(3)・・・
di−1(0),di−1(1),di−1(2),di−1(3),
di(0),di(1),di(2),di(3),
di+1(0),di+1(1),di+1(2),di+1(3),・・・,
dj−1(0),dj−1(1),dj−1(2),dj−1(3)
から、10進20倍数データ
E0(0),E0(1),E0(2),E0(3)・・・
Ei−1(0),Ei−1(1),Ei−1(2),Ei−1(3),
Ei(0),Ei(1),Ei(2),Ei(3),
Ei+1(0),Ei+1(1),Ei+1(2),Ei+1(3),・・・,
Ej−1(0),Ej−1(1),Ej−1(2),Ej−1(3),
Ej(0),Ej(1),Ej(2),Ej(3)
を生成する。
【0028】
10進20倍数データは上記10進2倍数生成回路を使用し、その出力を10倍することで得られる。10進データレジスタ14の出力10進データ900を10進2倍数生成回路に入力し10進2倍数を生成し、その出力を1桁分(4bit)左へシフト(10進数の特徴として10進数の10倍は最下位桁に4bitの0を付加するだけで得られる。)することで10進数の10進20倍数を生成することができる。
【0029】
次に、本発明の実施の形態の動作について図面を参照して説明する。
【0030】
本発明の実施例の動作について、図1と図6を参照して説明する。
【0031】
図6は、2進データの例として例えば“00001110010000110110”を10進データに変換する場合の演算動作を、演算サイクル毎に各構成回路の出力値を示した状態推移表である。(尚、この2進数値を10進数にすると5桁の58422となる。)
まず、変換対象2進データ000を2進データセレクタ11を経由して2進データレジスタ12にロードし、2進データレジスタの先頭の4ビットを取りだし4ビット2進10進変換器18に入力して5ビットからなる10進数に変換をする。図8にその変換の内容を示す。
【0032】
同時に10進データレジスタ14を0でリセットする。
【0033】
次に、10進データレジスタ14の10進データ900から10進20倍数生成回路15により10進20倍数データ400(最下位5ビットは除いたデータ)を生成する。また、10進4倍数生成回路16により10進4倍数500を生成し、反転回路17により反転したデータ600を生成する。
【0034】
4ビット2進10進変換器18によって図8に示すように変換された5ビットのデータを10進20倍数生成回路15の出力400の下位5ビットの位置に挿入し、10進4倍数生成回路15の出力500の出力したデータを反転させた反転データ600とを10進加算器13で加算する。このとき10進加算器13のキャリ入力700には”1”を常に入力する。よって3つの10進数値の加算を1回の演算処理で実行したことになるわけである。
【0035】
これにより、10進20倍数生成回路の出力した数値に4ビット2進10進変換器によって変換された10進数値が足し込まれこの数値から10進4倍数生成回路16の出力した数値が減算されることになる。結果として10進データレジスタ14の値の16倍数(20倍数−4倍数)に、2進データレジスタ12の最上位4ビットの加算が行われたことになる。
【0036】
また、10進加算器13の出力800を10進データレジスタ14に格納すると同時に、2進データレジスタ12のデータを4ビット左シフトしたデータ300を、2進データレジスタ12に格納する。
【0037】
図6によれば、最初の演算サイクルにおいて、10進データレジスタ14の初期化された状態の”00000”(10進)が取り出され10進20倍数生成回路5と10進4倍数生成回路16とに入力されることによってそれぞれ10進の20倍数と4倍数とが生成される。10進20倍数(00000)と2進データレジスタ12の先頭の4ビット(0000)が10進数に変換された(00)と10進4倍数には反転が施されて2の補数(0000)とされ1のキャリ入力のもと10進加算器13で10進20倍数から10進4倍数の減算が行われる。この加算処理の結果、最初の演算サイクルでは10進数(00000)が求められる。
【0038】
2回目の演算サイクルでは、10進20倍数生成回路15と10進4倍数生成回路16からの出力は、最初の演算サイクルと同じ10進数(00000)であるが、2進データレジスタ12の内容は左に4ビットシフトされているため、2進数(1110)が出力されるため4ビット2進10進変換器18の変換結果として10進数(14)が出力される。それによって、10進加算器13の演算結果として10進数(14)が10進データレジスタ14に出力される。
【0039】
3回目の演算サイクルでは、10進データレジスタ14の内容である10進(14)が取り出され、それぞれ10進20倍数生成回路15によって10進(280=14X20)が、10進4倍数生成回路16によって10進(56=14X4)が生成される。2進データレジスタ12からはさらに左に4ビットシフトした2進数(0100)が取り出され4ビット2進10進変換器18によって10進数(04)に変換される。以上の数値が10進加算器13によって演算され(280+4−56)結果として228が10進データレジスタ14に出力される。
【0040】
以上の処理を繰り返し、結果として図6に示すような58422を10進データレジスタ14に得ることができる。
【0041】
この動作を2進データのビット数の4分の1の回数だけ繰り返すことにより、変換対象の2進データ000が10進10進データ900に2進10進変換される。このようにして、本発明により、2進データ“00001110010000110110”を10進データ“58422”に変換する動作が、変換対象2進データのビット数の1/4回のサイクル数で実現できる。
【0042】
【発明の効果】
本発明には、nビットの2進データを4ビット単位に10進データに変換することにより、従来必要とした1ビット毎n回の演算数がn/4回となり、演算速度の向上を達成できるという効果がある。
【図面の簡単な説明】
【図1】本発明の実施の形態の構成を示すブロック図である。
【図2】本発明の10進2倍数を生成する回路の構成を示すブロック図である。
【図3】本発明の1桁の10進2倍数を生成する回路図である。
【図4】本発明の1桁の10進2倍数生成時の変換表である。
【図5】本発明の複数桁変換時の10進2倍数生成時の変換表である。
【図6】本発明の2進数を10進数に変換する時の実施例を用いた状態推移表である。
【図7】本発明の10進20倍数を生成する回路の構成を示すブロック図である。
【図8】本発明の4ビット2進10進変換器の変換結果を表す変換表である。
【図9】従来の2進10進変換回路を示すブロック図である。
【符号の説明】
000 変換対象2進データ
11 2進データセレクタ
12 2進データレジスタ
13 10進加算器
14 10進データレジスタ
15 10進20倍数生成回路
16 10進4倍数生成回路
17 反転回路
18 4ビット2進10進変換器
400 10進20倍数
500 10進4倍数
700 キャリ入力
900 10進データ
【発明の属する技術分野】
本発明は、情報処理装置における2進数を10進数に変換する回路に関し、特に2進数を4ビットずつ10進数に変換する事で変換速度の高速化を図った2進10進変換回路に関する。
【0002】
【従来の技術】
従来の2進10進変換回路においては、たとえば、「特開昭59−168543号公報」記載の技術のように、2進データの各ビットを1ビット毎に検査することにより変換を行っている。
【0003】
図9は、この従来の技術を示すブロック図である。図9を参照すると、この2進10進変換回路は、2進データセレクタ11と、2進データレジスタ12と、10進加算器13と、10進データレジスタ14とから構成される。
【0004】
変換対象2進データ000と2進データレジスタ12を1ビット左にシフトしたデータ300とを2進データセレクタ11に入力し、2進データセレクタ11の出力100を2進データレジスタ12に入力し、10進データレジスタ14の出力500を10進加算器13の両方の入力に入力し、2進データレジスタ12の最上位1ビット200を10進加算器13のキャリー入力に入力し、10進加算器13の出力400を10進データレジスタ14に入力する。
【0005】
まず、変換対象の2進データ000を2進データセレクタ11を経由して2進データレジスタ12にロードし、同時に10進データレジスタ14をリセットする。
【0006】
次に、2進データレジスタ12の最上位ビット200と10進データレジスタ14のデータ500とを10進加算器13で加算することにより、10進データレジスタ14の値500の2倍数と2進データレジスタ12の最上位ビット200との加算を行う。また、10進加算器13の出力400を10進データレジスタ14に格納すると同時に、2進データレジスタ12のデータを1ビット左シフトしたデータ300を、2進データセレクタ11を経由して2進データレジスタ12に格納する。
【0007】
この動作を2進データのビット数分だけ繰り返すことにより2進10進変換を行っている。
【0008】
【発明が解決しようとする課題】
上述した従来の2進10進変換回路では、2進データがn(正整数)ビットとすると、n回の加算動作が演算回路に要求される。このため2進10進変換に必要な実行時間が大きくなり、演算速度の低下および処理時間の増大を招くという欠点がある。このため本発明者による特開2000−200174号公報によって一演算サイクルにおいて3ビットずつの2進10進変換を行う改善を行ったが本発明ではさらにそれを4ビットずつ処理することで、一層の高速化を図るものである。
【0009】
【課題を解決するための手段】
本発明の第1の2進10進変換回路は、10進データを20倍する10進20倍数生成回路と、
10進データを4倍する10進4倍数生成回路と、
変換の対象となる2進数値を格納し演算サイクルに従って上位4ビットの2進数値を出力すると次の演算サイクルに備え2進数値を左へ4ビットシフトさせる2進データレジスタと、
前記2進データレジスタの左端上位の4ビットを入力して5ビットの10進数値に変換する4ビット2進10進変換器と、
前記10進20倍数生成回路の出力データと前記4ビット2進10進変換器の出力データとを第1のデータ入力とし前記10進4倍数生成回路の出力データを反転したデータを第2のデータ入力とし且つ1のキャリを入力して第1のデータ入力と第2のデータ入力との加算を行う10進加算器と、
前記10進加算器の演算結果を保持し次の演算サイクルに前記10進20倍数生成回路と前記10進4倍数生成回路とに保持したデータを出力する10進データレジスタと、を備え、
前記2進データレジスタからの4ビットの2進数値の出力と前記10進データレジスタからの10進数値の出力とを1演算サイクルにおいて同期して行うことを特徴とする。
【0010】
本発明の第2の2進10進変換回路は、第1の発明において、前記10進20倍数生成回路の出力する10進20倍数データと前記10進20倍数データの下位5ビットは0であることを利用し前記4ビット2進10進変換器の出力データを前記下位5ビットの位置に取り込んで第1のデータ入力とし、前記10進4倍数生成回路による10進4倍数を反転したデータを第2のデータ入力とし、前記10進20倍数データと前記4ビット2進10進変換器の出力データと前記10進4倍数データとを1回の演算で加算する10進加算器を備える。
【0011】
本発明の第3の2進10進変換回路は、第1または第2の発明において、前記第1のデータ入力と前記第2のデータ入力とを元に前演算サイクルでの演算結果の10進16倍数に前記4ビット2進10進変換器の出力結果を合計する数値を出力する10進加算器を備える。
【0012】
本発明の第4の2進10進変換回路は、第1の発明において、10進データを2倍する10進2倍数生成回路を2段に直列に接続した構成からなる前記10進4倍数生成回路を備える。
【0013】
本発明の第5の2進10進変換回路は、第1の発明において、10進2倍数を前記10進2倍数生成回路で生成しその結果を4ビット左へシフトする事で10進20倍数を生成する前記10進20倍数生成回路を備える。
【0014】
本発明の第6の2進10進変換回路は、第1の発明において、前記2進データレジスタに格納された2進数値の変換後の10進数値を格納する前記10進データレジスタを備える。
【0015】
本発明の第1の2進10進変換方法は、変換の対象となる2進数値の上位から4ビットを出力すると当該2進数値を左へ4ビットシフトして次の演算サイクルの準備をする第1のステップと、
第1のステップで出力された4ビットの2進数値を5ビットの10進数値に変換する第2のステップと、
前演算サイクルで生成された10進数の20倍数と4倍数とを生成する第3のステップと、
第3のステップで生成された4倍数に対して反転を行う第4のステップと、
第2のステップによる10進数値と前記第3のステップの20倍数とを第1の入力とし前記第4のステップで反転された4倍数を第2の入力としキャリに1を入力して加算を行い10進数を生成する第5のステップと、
第5のステップで生成された結果を保持し次の演算サイクルにおいて第3のステップへの出力を行う第6のステップと、
を備える。
【0016】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【0017】
図1は本発明の構成を示すブロック図である。
【0018】
図1を参照すると、2進数データであって10進数への変換が行われる変換対象2進データ000と2進データレジスタ12の出力データを4ビット左にシフトしたデータ300とを選択して取り込む2進データセレクタ11を備え、2進データセレクタ11の出力100を2進データレジスタ12に入力する。
【0019】
2進データレジスタ12の上位4ビットは、演算サイクルに対応して4ビット2進10進変換器18に逐次取り込まれ、4ビットの2進数が5ビットからなる10進数に変換されて10進加算器13に供給される。
【0020】
また、10進データレジスタ14の出力900は、20倍する10進数値を生成する10進20倍数生成回路15と、同じく出力900を4倍する10進数値を生成する10進4倍数生成回路16と、に入力される。
【0021】
そして、10進20倍数生成回路15の出力400(20倍数は最下位5ビットが00000となっている。)を10進加算器13の2つある入力の1つの入力位置に入力し、4ビット2進10進変換器18から出力された5ビットからなる10進数値を10進20倍数400を入力した入力の最下位5ビットにそのまま取り込み、10進4倍数生成回路16の出力500を反転回路17で反転したデータ600を10進加算器13のもう一つの入力に入力し、10進加算器13のキャリ入力700には常に1を入力して10進加算器13による10進数値の加算演算を実行する。10進加算器13の出力800は、10進データレジスタ14に格納される。
【0022】
図2を参照すると、入力された数値の2倍の10進数値を生成する10進2倍数生成回路は、
j桁(jは正整数)の10進データ
d0(0),d0(1),d0(2),d0(3),・・・,
di−1(0),di−1(1),di−1(2),di−1(3),
di(0),di(1),di(2),di(3),
di+1(0),di+1(1),di+1(2),di+1(3),・・・,
dj−1(0),dj−1(1),dj−1(2),dj−1(3)
から、10進2倍数データ
D−1(3),D0(0),D0(1),D0(2),・・・、
Di−2(3),Di−1(0),Di−1(1),Di−1(2),
Di−1(3)、Di(0),Di(1),Di(2),
Di(3)、Di+1(0),Di+1(1),Di+1(2),・・・,
Dj−2(3)、Dj−1(0),Dj−1(1),Dj−1(2)
を生成するように、1桁の10進2倍数生成回路20〜24から構成される(これらはすべて同一の構成を持つ)。
【0023】
図3は、図2の1桁の10進2倍数生成回路20〜24の詳細回路図である。
【0024】
図4は、1桁の10進2倍数生成回路20〜24の変換表である。
【0025】
図4に示すとおり、10進データの4ビットからなる1桁は、10進数の“0”から“9”までであることから、その2倍数は“0”から“18”までであり、10進2倍数生成結果の変換桁の最下位ビットD(3)は必ず“0”となる。図5は、複数桁の10進数の10進2倍数生成回路の1桁単位の変換表である。複数桁の10進数の10進2倍数の生成においては、下位桁からの桁上がりが1ビット生じるが、図4で説明した通り、各桁の最下位ビットは2倍されることにより“0”となるため、下位桁からの桁上がり1ビットをそのまま入れることができる。
【0026】
したがって、j桁(jは正整数)の10進数の任意の1桁のdi(0),di(1),di(2),di(3)を10進2倍数Di−1(3),Di(0),Di(1),Di(2),Di(3)に変換する場合(iは0からj−1の正整数)、
の論理により生成できる。
(ここで、「*」は論理積、「+」は論理和、「’」は反転(コンプリメント)を示している。)
よって、図3の10進1桁の10進2倍数生成回路を、図2のように並列に接続して10進2倍数生成回路を構成することにより、複数桁の10進数の10進2倍数を生成することができる。この2倍数生成回路を直列に2段組み合わせることで10進4倍数生成回路16を実現する。
【0027】
図7を参照すると、10進20倍数生成回路15は、
j桁(jは正整数)の10進データ
d0(0),d0(1),d0(2),d0(3)・・・
di−1(0),di−1(1),di−1(2),di−1(3),
di(0),di(1),di(2),di(3),
di+1(0),di+1(1),di+1(2),di+1(3),・・・,
dj−1(0),dj−1(1),dj−1(2),dj−1(3)
から、10進20倍数データ
E0(0),E0(1),E0(2),E0(3)・・・
Ei−1(0),Ei−1(1),Ei−1(2),Ei−1(3),
Ei(0),Ei(1),Ei(2),Ei(3),
Ei+1(0),Ei+1(1),Ei+1(2),Ei+1(3),・・・,
Ej−1(0),Ej−1(1),Ej−1(2),Ej−1(3),
Ej(0),Ej(1),Ej(2),Ej(3)
を生成する。
【0028】
10進20倍数データは上記10進2倍数生成回路を使用し、その出力を10倍することで得られる。10進データレジスタ14の出力10進データ900を10進2倍数生成回路に入力し10進2倍数を生成し、その出力を1桁分(4bit)左へシフト(10進数の特徴として10進数の10倍は最下位桁に4bitの0を付加するだけで得られる。)することで10進数の10進20倍数を生成することができる。
【0029】
次に、本発明の実施の形態の動作について図面を参照して説明する。
【0030】
本発明の実施例の動作について、図1と図6を参照して説明する。
【0031】
図6は、2進データの例として例えば“00001110010000110110”を10進データに変換する場合の演算動作を、演算サイクル毎に各構成回路の出力値を示した状態推移表である。(尚、この2進数値を10進数にすると5桁の58422となる。)
まず、変換対象2進データ000を2進データセレクタ11を経由して2進データレジスタ12にロードし、2進データレジスタの先頭の4ビットを取りだし4ビット2進10進変換器18に入力して5ビットからなる10進数に変換をする。図8にその変換の内容を示す。
【0032】
同時に10進データレジスタ14を0でリセットする。
【0033】
次に、10進データレジスタ14の10進データ900から10進20倍数生成回路15により10進20倍数データ400(最下位5ビットは除いたデータ)を生成する。また、10進4倍数生成回路16により10進4倍数500を生成し、反転回路17により反転したデータ600を生成する。
【0034】
4ビット2進10進変換器18によって図8に示すように変換された5ビットのデータを10進20倍数生成回路15の出力400の下位5ビットの位置に挿入し、10進4倍数生成回路15の出力500の出力したデータを反転させた反転データ600とを10進加算器13で加算する。このとき10進加算器13のキャリ入力700には”1”を常に入力する。よって3つの10進数値の加算を1回の演算処理で実行したことになるわけである。
【0035】
これにより、10進20倍数生成回路の出力した数値に4ビット2進10進変換器によって変換された10進数値が足し込まれこの数値から10進4倍数生成回路16の出力した数値が減算されることになる。結果として10進データレジスタ14の値の16倍数(20倍数−4倍数)に、2進データレジスタ12の最上位4ビットの加算が行われたことになる。
【0036】
また、10進加算器13の出力800を10進データレジスタ14に格納すると同時に、2進データレジスタ12のデータを4ビット左シフトしたデータ300を、2進データレジスタ12に格納する。
【0037】
図6によれば、最初の演算サイクルにおいて、10進データレジスタ14の初期化された状態の”00000”(10進)が取り出され10進20倍数生成回路5と10進4倍数生成回路16とに入力されることによってそれぞれ10進の20倍数と4倍数とが生成される。10進20倍数(00000)と2進データレジスタ12の先頭の4ビット(0000)が10進数に変換された(00)と10進4倍数には反転が施されて2の補数(0000)とされ1のキャリ入力のもと10進加算器13で10進20倍数から10進4倍数の減算が行われる。この加算処理の結果、最初の演算サイクルでは10進数(00000)が求められる。
【0038】
2回目の演算サイクルでは、10進20倍数生成回路15と10進4倍数生成回路16からの出力は、最初の演算サイクルと同じ10進数(00000)であるが、2進データレジスタ12の内容は左に4ビットシフトされているため、2進数(1110)が出力されるため4ビット2進10進変換器18の変換結果として10進数(14)が出力される。それによって、10進加算器13の演算結果として10進数(14)が10進データレジスタ14に出力される。
【0039】
3回目の演算サイクルでは、10進データレジスタ14の内容である10進(14)が取り出され、それぞれ10進20倍数生成回路15によって10進(280=14X20)が、10進4倍数生成回路16によって10進(56=14X4)が生成される。2進データレジスタ12からはさらに左に4ビットシフトした2進数(0100)が取り出され4ビット2進10進変換器18によって10進数(04)に変換される。以上の数値が10進加算器13によって演算され(280+4−56)結果として228が10進データレジスタ14に出力される。
【0040】
以上の処理を繰り返し、結果として図6に示すような58422を10進データレジスタ14に得ることができる。
【0041】
この動作を2進データのビット数の4分の1の回数だけ繰り返すことにより、変換対象の2進データ000が10進10進データ900に2進10進変換される。このようにして、本発明により、2進データ“00001110010000110110”を10進データ“58422”に変換する動作が、変換対象2進データのビット数の1/4回のサイクル数で実現できる。
【0042】
【発明の効果】
本発明には、nビットの2進データを4ビット単位に10進データに変換することにより、従来必要とした1ビット毎n回の演算数がn/4回となり、演算速度の向上を達成できるという効果がある。
【図面の簡単な説明】
【図1】本発明の実施の形態の構成を示すブロック図である。
【図2】本発明の10進2倍数を生成する回路の構成を示すブロック図である。
【図3】本発明の1桁の10進2倍数を生成する回路図である。
【図4】本発明の1桁の10進2倍数生成時の変換表である。
【図5】本発明の複数桁変換時の10進2倍数生成時の変換表である。
【図6】本発明の2進数を10進数に変換する時の実施例を用いた状態推移表である。
【図7】本発明の10進20倍数を生成する回路の構成を示すブロック図である。
【図8】本発明の4ビット2進10進変換器の変換結果を表す変換表である。
【図9】従来の2進10進変換回路を示すブロック図である。
【符号の説明】
000 変換対象2進データ
11 2進データセレクタ
12 2進データレジスタ
13 10進加算器
14 10進データレジスタ
15 10進20倍数生成回路
16 10進4倍数生成回路
17 反転回路
18 4ビット2進10進変換器
400 10進20倍数
500 10進4倍数
700 キャリ入力
900 10進データ
Claims (7)
- 10進データを20倍する10進20倍数生成回路と、
10進データを4倍する10進4倍数生成回路と、
変換の対象となる2進数値を格納し演算サイクルに従って上位4ビットの2進数値を出力すると次の演算サイクルに備え2進数値を左へ4ビットシフトさせる2進データレジスタと、
前記2進データレジスタの左端上位の4ビットを入力して5ビットの10進数値に変換する4ビット2進10進変換器と、
前記10進20倍数生成回路の出力データと前記4ビット2進10進変換器の出力データとを第1のデータ入力とし前記10進4倍数生成回路の出力データを反転したデータを第2のデータ入力とし且つ1のキャリを入力して第1のデータ入力と第2のデータ入力との加算を行う10進加算器と、
前記10進加算器の演算結果を保持し次の演算サイクルに前記10進20倍数生成回路と前記10進4倍数生成回路とに保持したデータを出力する10進データレジスタと、を備え、
前記2進データレジスタからの4ビットの2進数値の出力と前記10進データレジスタからの10進数値の出力とを1演算サイクルにおいて同期して行うことを特徴とする2進10進変換回路。 - 前記10進20倍数生成回路の出力する10進20倍数データと前記10進20倍数データの下位5ビットは0であることを利用し前記4ビット2進10進変換器の出力データを前記下位5ビットの位置に取り込んで第1のデータ入力とし、前記10進4倍数生成回路による10進4倍数を反転したデータを第2のデータ入力とし、前記10進20倍数データと前記4ビット2進10進変換器の出力データと前記10進4倍数データとを1回の演算で加算する10進加算器を備えることを特徴とする請求項1記載の2進10進変換回路。
- 前記第1のデータ入力と前記第2のデータ入力とを元に前演算サイクルでの演算結果の10進16倍数に前記4ビット2進10進変換器の出力結果を合計する数値を出力する10進加算器を備えることを特徴とする請求項1または2記載の2進10進変換回路。
- 10進データを2倍する10進2倍数生成回路を2段に直列に接続した構成からなる前記10進4倍数生成回路を備えることを特徴とする請求項1記載の2進10進変換回路。
- 10進2倍数を前記10進2倍数生成回路で生成しその結果を4ビット左へシフトする事で10進20倍数を生成する前記10進20倍数生成回路を備えることを特徴とする請求項1記載の2進10進変換回路。
- 前記2進データレジスタに格納された2進数値の変換後の10進数値を格納する前記10進データレジスタを備えることを特徴とする請求項1記載の2進10進変換回路。
- 変換の対象となる2進数値の上位から4ビットを出力すると当該2進数値を左へ4ビットシフトして次の演算サイクルの準備をする第1のステップと、
第1のステップで出力された4ビットの2進数値を5ビットの10進数値に変換する第2のステップと、
前演算サイクルで生成された10進数の20倍数と4倍数とを生成する第3のステップと、
第3のステップで生成された4倍数に対して反転を行う第4のステップと、
第2のステップによる10進数値と前記第3のステップの20倍数とを第1の入力とし前記第4のステップで反転された4倍数を第2の入力としキャリに1を入力して加算を行い10進数を生成する第5のステップと、
第5のステップで生成された結果を保持し次の演算サイクルにおいて第3のステップへの出力を行う第6のステップと、
を備えることを特徴とする2進10進変換方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001020210A JP3592242B2 (ja) | 2001-01-29 | 2001-01-29 | 2進10進変換回路及びその方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001020210A JP3592242B2 (ja) | 2001-01-29 | 2001-01-29 | 2進10進変換回路及びその方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002222078A JP2002222078A (ja) | 2002-08-09 |
JP3592242B2 true JP3592242B2 (ja) | 2004-11-24 |
Family
ID=18885955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001020210A Expired - Fee Related JP3592242B2 (ja) | 2001-01-29 | 2001-01-29 | 2進10進変換回路及びその方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3592242B2 (ja) |
-
2001
- 2001-01-29 JP JP2001020210A patent/JP3592242B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002222078A (ja) | 2002-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPS6059470A (ja) | 乗算‐累算処理装置に適する基本セル及び乗算‐累算処理装置 | |
JP3276852B2 (ja) | 符号変換回路 | |
JPH01144122A (ja) | 除算回路 | |
JP2004258141A (ja) | モンゴメリ乗算剰余の多倍長演算のための演算装置 | |
US20040054703A1 (en) | Method and device for generating a pseudo-random sequence using a discrete logarithm | |
JP3592242B2 (ja) | 2進10進変換回路及びその方法 | |
TWI240199B (en) | Interstitial product generator, multiplication circuit and multiplication method for bit segments | |
JP3660075B2 (ja) | 除算装置 | |
JP2000503146A (ja) | 整数除算回路を有するモジュラ算術演算コプロセッサ | |
JPS58129653A (ja) | 乗算方式 | |
KR0147942B1 (ko) | 승산기에서의 부스 레코딩회로 | |
US5309385A (en) | Vector division processing method and system | |
JP3017203B1 (ja) | 2進10進変換回路及びその方法 | |
CN114327370B (zh) | 计算蒙哥马利模乘算法中mr值的方法及电路 | |
JPS5841532B2 (ja) | セキワケイサンカイロ | |
JP3157741B2 (ja) | 2進10進変換回路 | |
JP2991788B2 (ja) | 復号器 | |
JP3241642B2 (ja) | 2進10進変換回路 | |
JPH11237973A (ja) | 乗算器 | |
JPH1049347A (ja) | 乗算器 | |
JP4042215B2 (ja) | 演算処理装置およびその方法 | |
JP2803442B2 (ja) | 開平装置 | |
JPH01116826A (ja) | 10進乗算装置 | |
JP3695561B2 (ja) | 積和器 | |
JP3106767B2 (ja) | 乗算方法及び乗算回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040728 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040803 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040824 |
|
R150 | Certificate of patent (=grant) or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |