(57)【特許請求の範囲】
【請求項１】
被除数データ、被除数データより大きい除数データ、始動信号、及びリセット信号を受信して、前記リセット信号が活性化される場合には初期化され、初期化された以後、前記始動信号が活性化される場合には割り算を実行する割り算回路に於いて、
前記始動信号及びクロックを受信して割り算の結果データを出力するための時間を制御する時間制御信号を出力する時間制御手段と、
前記除数データを受信して始動信号によりクロックに同期して前記除数データを反転させた除数格納データを出力するデータレジスタと、
前記被除数データ、始動信号及びクロックを受信して、前記始動信号により前記被除数データまたは以前に選択されたデータを１ビットずつ左側にシフトしたデータを選択し、または以前に選択したデータから前記除数格納データを１ビットずつ左側にシフトしたデータを選択して、選択データと制御データを出力するデータ選択手段と、
前記除数格納データ及び前記選択データを受信して、減算を実行した後、その減算結果データ及び減算結果オーバーフローの有無を示す出力キャリを出力する減算器と、
前記時間制御信号、制御データ及び出力キャリを受信して前記時間制御信号の論理的レベルがハイであり、前記制御データまたは出力キャリの論理的レベルがハイである場合、論理的レベルがハイである選択制御信号を出力する制御信号発生手段と、
前記時間制御信号、選択制御信号及びクロックを受信して、前記時間制御信号により、前記選択制御信号をクロックに同期させて３番目のビットに格納し、これを１ビットずつ左側に循環シフトして、その結果データを出力する結果データ発生手段から構成されることを特徴とする並列処理用割り算回路。
【請求項２】
前記時間制御手段は、
前記クロックにより内容を１ずつ減少させるダウンカウンタと、
前記ダウンカウンタの出力が所定の一定値になった場合、これを検出して第１リセット信号を出力する検出器と、
前記リセット信号が活性化された場合、または前記第１リセット信号が活性化された場合には論理的レベルがハイである信号を出力するラッチ手段と、
前記ラッチ手段の出力を受信して、前記クロックに同期されて時間制御信号を出力するフリップフロップとを有することを特徴とする請求項１記載の並列処理用割り算回路。
【請求項３】
前記時間制御信号は、前記除数データがＮビットである場合、Ｎ−２個のクロックの間の論理的レベルがハイであることを特徴とする請求項１または請求項２記載の並列処理用割り算回路。
【請求項４】
前記ダウンカウンタは、前記時間制御信号の論理的レベルがローである場合にリセットされることを特徴とする請求項２記載の並列処理用割り算回路。
【請求項５】
前記検出器は、否定論理積回路から構成されることを特徴とする請求項２記載の並列処理用割り算回路。
【請求項６】
前記検出器は、
除数データが９ビットであり、前記ダウンカウンタの出力が十進数“１０”である場合、論理的レベルがローである信号を出力することを特徴とする請求項２または請求項５記載の並列処理用割り算回路。
【請求項７】
前記ラッチ手段は、
第１入力端子と第２入力端子と第３入力端子とを有する第１否定論理和手段と、第１入力端子と第２入力端子を有する第２否定論理和手段とから構成され、
前記第１否定論理和手段において、前記第１入力端子は前記リセット信号を反転させた信号を入力し、前記第２入力端子は前記第１リセット信号を反転させた信号を入力し、前記第３入力端子は前記第２否定論理和手段の出力を入力し、
前記第２否定論理和手段において、前記第１入力端子は前記第１否定論理和手段の出力を入力し、第２入力は始動信号を入力することを特徴とする請求項２記載の並列処理用割り算回路。
【請求項８】
前記データレジスタは、
前記始動信号の論理的レベルがハイである場合、除数データを反転させた被除数データを出力することを特徴とする請求項１記載の並列処理用割り算回路。
【請求項９】
前記データレジスタは、
前記始動信号の論理的レベルがハイである場合には前記除数データの中で１ビットを受信してこれを反転させて出力し、前記始動信号の論理的レベルがローである場合には以前の状態のデータを出力する除数データ通路手段と、
前記クロックに同期して前記除数データ通路手段の出力を保持するフリップフロップとを備えた複数のデータレジスタを有することを特徴とする請求項１または請求項８記載の並列処理用割り算回路。
【請求項１０】
前記除数データ通路手段は、前記始動信号及び除数データの中の１ビットを入力してこれを論理積する第１論理積手段と、
前記始動信号の反転された信号及び前記フリップフロップの出力を反転させた信号を入力してこれの論理積をとる第２論理積手段と、
前記第１論理積手段の出力及び前記第２論理積手段の出力を入力してこれを否定論理和する第３論理和手段とを有することを特徴とする請求項９記載の並列処理用割り算回路。
【請求項１１】
前記データ選択手段は、
前記始動信号の論理的レベルがハイである場合には前記被除数データを選択し、前記始動信号及び前記選択制御信号の論理的レベルがローである場合には以前に選択したデータを１ビットずつシフトしたデータを選択し、前記始動信号の論理的レベルがローであり前記選択制御信号の論理的レベルがハイである場合には前記減算結果データを１ビットずつ左側にシフトしたデータを選択することを特徴とする請求項１記載の並列処理用割り算回路。
【請求項１２】
前記データ選択手段は、
前記選択制御信号を反転させた信号と前記始動信号を反転させた信号とを受信してこれを論理積した第１制御信号を出力し、前記選択制御信号と前記始動信号を反転させた信号を受信してこれを論理積した第２制御信号を出力する選択制御信号発生手段と、
前記被除数データのビット数よりも多い複数の被除数データ通路手段及び前記複数の被除数データ通路手段の各々の出力を受信して、前記クロックに同期されてこれを出力する複数のフリップフロップとを有し、
前記複数の被除数データ通路手段は前記第１制御信号、第２制御信号及び前記始動信号により前記被除数データを選択し、または減算結果データを選択し、または前段のフリップフロップの出力を選択することを特徴とする請求項１または請求項１１記載の並列処理用割り算回路。
【請求項１３】
前記複数の被除数データ通路手段に於いて、
最下位ビットの通路手段は、前記被除数データの最下位ビット及び前記始動信号を受信してこれを論理積する第３論理積手段を備え、
最上位ビットの通路手段は、前段のフリップフロップの出力及び前記第１制御信号を受信してこれを論理積する第１否定論理積手段と、前記減算結果データの最上位ビットと前記第２制御信号を受信してこれを否定論理積する第２否定論理積手段と、前記第１否定論理積手段の出力と前記第２否定論理積手段の出力を受信してこれを論理積する第３否定論理積手段とを備え、
最下位ビットの通路手段及び最上位ビットの通路手段以外の被除数通路手段は、各々前段のフリップフロップの出力及び前記第１制御信号を受信してこれを論理積する第４否定論理積手段と、前記減算結果データの中で最上位ビットの以外のビットらの中の１ビットし前記第２制御信号を受信してこれを論理積する第４論理積手段と、前記始動信号と前記被除数データの中で最上位ビットの以外のビットらの中の１ビットを受信してこれを論理積する第５論理積手段と、前記第４論理積手段の出力と前記第５論理積手段の出力を受信してこれを論理和する第４否定論理和手段と、前記第４否定論理積手段の出力と前記第４否定論理和手段の出力を受信してこれを否定論理積する第５否定論理積手段とを備えることを特徴とする請求項１２記載の並列処理用割り算回路。
【請求項１４】
前記制御信号発生手段は、前記制御データ及び出力キャリらを受信してこれを論理和する第５否定論理和手段と、前記時間制御信号を反転させた信号と前記第５否定論理和手段の出力を受信してこれを論理和する第６否定論理和手段とを有することを特徴とする請求項１記載の並列処理用割り算回路。
【請求項１５】
前記結果データ発生手段は、前記時間制御信号の論理的レベルがハイである場合には前記選択制御信号をクロックに同期して３番目のビットに格納してこれを１ビットずつ左側に循環シフトし、前記時間制御信号の論理的レベルがローである場合には以前に格納されたデータをラッチすることを特徴とする請求項１記載の並列処理用割り算回路。
【請求項１６】
前記結果データ発生手段は、前記除数データがＮビットである場合、Ｎ−２回シフトすることを特徴とする請求項１または請求項１５記載の並列処理用割り算回路。
【請求項１７】
前記結果データ発生手段は、複数の結果データ通路手段と、前記複数の結果データ通路手段の各々の出力を受信して前記クロックに同期してこれを出力する複数のフリップフロップとを有し、
前記複数の結果データ通路手段の中で、
第１結果データ通路手段は、前記時間制御信号及び前記選択制御信号を受信してこれを論理積する第６論理積手段と、前記時間制御信号を反転させた信号及び複数のフリップフロップの中で２番目ビットのデータを格納しているフリップフロップの出力を受信してこれを論理積する第７論理積手段と、前記第６論理積手段の出力及び前記第７論理積手段の出力を受信してこれを論理和する第１論理和手段とを備え、
第１結果データ通路手段以外の結果データ通路手段は、各々前記時間制御信号及び前段のフリップフロップの出力を受信してこれを論理積する第８論理積手段と、前記時間制御信号を反転させた信号及び前記該当結果データ通路手段の出力を格納しているフリップフロップの出力を受信してこれを論理積する第９論理積手段と、前記第８論理積手段の出力及び前記第９論理積手段の出力を受信してこれを論理和する第２論理和手段とを備えることを特徴とする請求項１または請求項１５記載の並列処理用割り算回路。
【請求項１８】
被除数データ、被除数データより大きい除数データ、始動信号及びリセット信号を受信して、前記リセット信号が活性化される場合に初期化され、初期化以後に前記始動信号が活性化される場合には割り算を実行する割り算回路において、
前記始動信号が活性化される場合にはクロックに同期されて論理的レベルがハイであり、前記始動信号の論理的レベルがローである場合には割り算の実行を終了する時間制御信号を発生する時間制御信号発生段階と、
前記始動信号が活性化される場合に前記被除数データを受信して前記被除数データから前記除数データを減算してその減算結果データ及び減算結果オーバーフローの発生有無を示す出力キャリを出力する第１減算段階と、
前記第１減算段階で前記出力キャリの論理的レベルがローであると、前記被除数データを左側に１ビットシフトし、最下位ビットにロー論理値を入力した第１被除数データを出力する第１シフト段階と、
前記始動信号が活性化される場合に前記被除数データを受信して前記被除数データから前記除数データを減算してその減算結果データ及び減算結果オーバーフローの発生有無を示す出力キャリを出力する第１減算段階と、
前記第１減算段階で前記出力キャリの論理的レベルがローであると、前記被除数データを左側に１ビットシフトし、最下位ビットにロー論理値を入力した第１被除数データを出力する第１シフト段階と、
前記第１減算段階で前記出力キャリの論理的レベルがハイであると、前記減算結果データを左側に１ビットシフトし、最下位ビットにロー論理値を入力した第１被除数データをのの出力する第１シフト段階と、
前記第１減算段階で前記出力キャリの論理的レベルがハイであると、前記減算結果データを左側に１ビットシフトし、最下位ビットにロー論理値を入力した第２被除数データを出力する第２シフト段階と、
前記被除数データまたは第２被除数データから前記除数データを減算第２減算段階と、
前記時間制御信号の論理的レベルがローになるまでに、前記第２減算段階で出力キャリの論理的レベルがハイである場合または前記第１被除数データの最上位ビットの論理的レベルがハイである場合には前記第２シフト段階及び第２減算段階を実行し、前記出力キャリと前記第１被除数データまたは第２被除数データの最上位ビットの論理的レベルが全部ローである場合には前記第１シフト段階及び前記第２減算段階を実行し、
前記時間制御信号の論理的レベルがローになるまでに、前記第１シフト段階を実行すると３番目ビットにロー論理値を入力し、前記第２シフト段階を実行すると３番目ビットにハイ論理値を入力して、３番目ビットから左側に１ビットずつ循環シフトを実行する循環シフト段階を実行することを特徴とする並列処理用割り算回路。
【請求項１９】
前記循環シフト段階は、前記除数データがＮビットである場合にはＮ−２回シフトを実行することを特徴とする請求項１８記載の並列処理用割り算回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は並列処理用割り算回路、より詳細には被除数が除数より小さくて余りが小数点以下になる並列処理用割り算回路に関する。
【０００２】
【従来の技術】
足し算、引き算、掛け算、割り算の四則演算機能を持つ計算機において、割り算機能を実行する場合、一般にソフトウェア的に処理を行っている。これはハードウェア的に構成すると動作速度は早くなるが、これを実現するにはその構成がかなり複雑になるからである。
【０００３】
【発明が解決しようとする課題】
しかしながら、高速処理が要求される場合には、例えば特開平６−１９５２０６号公報に示すように、ハードウェア的に計算機を構成する必要があるが、デジタル信号処理を実行するために使用される割り算回路をハードウェア的に構成すると、その構成が非常に複雑になるという問題があった。特に、余りが小数点以下の値の割り算処理を行う並列処理用割り算回路をハードウェア的に構成すると、さらにその回路が複雑になるという問題があった。
【０００４】
本発明はこのような従来技術の課題を解決し、簡単なハードウェア構成により、被除数が除数より小さくて余りが小数点以下の処理を実行可能な並列処理用割り算回路を提供することを目的とする。
【０００５】
【課題を解決するための手段】
上記課題を解決するために本発明によれば、被除数データ、被除数データより大きい除数データ、始動信号及びリセット信号を受信して、前記リセット信号が活性化される場合には初期化され、初期化以後に前記始動信号が活性化される場合には割り算を実行する割り算回路は、始動信号及びクロックを受信して割り算の結果データを出力するための時間を制御する時間制御信号を出力する時間制御手段と、除数データを受信して始動信号によりクロックに同期されて除数データを反転させた除数格納データを出力するデータレジスタとを備える。また、被除数データ、始動信号及びクロックを受信して始動信号により前記被除数データまたは以前に選択されたデータを１ビットずつ左側にシフトしたデータを選択し、または以前に選択したデータから前記除数格納データを１ビットずつ左側にシフトしたデータを選択して、該選択データと制御データを出力するデータ選択手段を備える。また、除数格納データ及び前記選択データを受信して、減算を遂行して、その減算結果データ及び減算結果オーバーフローの有無を示す出力キャリを出力する減算器を備える。また、時間制御信号、制御データ及び出力キャリを受信して前記時間制御信号の論理的レベルがハイであり、制御データまたは出力キャリの論理的レベルがハイである場合、論理的レベルがハイである選択制御信号を出力する制御信号発生手段を備える。さらに、時間制御信号、選択制御信号及びクロックを受信して、時間制御信号により、選択制御信号をクロックに同期させて３番目のビットに格納し、これを１ビットずつ左側に循環シフトして、結果データを出力する結果データ発生手段とを備える。
【０００６】
【発明の実施の形態】
次に添付図面を参照して本発明による並列処理用割り算回路の実施の形態を詳細に説明する。
図１は、本発明による並列処理用割り算回路の実施の形態を示す機能ブロック図である。
【０００７】
図１に示されているように、本実施の形態による並列処理用割り算回路は、時間制御回路１００、データレジスタ２００、データ選択回路３００、減算器４００、制御信号発生回路５００及び結果データ発生回路６００により構成されている。
【０００８】
時間制御発生回路１００は、リセット信号ＲＳＢ、始動信号Ｓ及びクロックＣＬＫを入力して割り算の結果データを出力するための時間制御を行う時間制御信号ＴＬを出力する回路である。
【０００９】
データレジスタ２００は、除数データＢＤＡＴ＜８：０＞を入力し、始動信号ＳによりクロックＣＫに同期して除数データＢＤＡＴ＜８：０＞を反転させたデータである除数格納データＲＥＧ＜８：０＞を出力する回路である。
【００１０】
データ選択回路３００は、被除数データＡＤＡＴ＜８：０＞、始動信号Ｓ及びクロックＣＫを入力する。そして、始動信号ＣＫにより被除数データＡＤＡＴ＜８：０＞または以前に選択されたデータを１ビットずつ左側にシフトしたデータを選択し、または以前に選択したデータから除数格納データＲＥＧ＜８：０＞を１ビットずつ左側にシフトしたデータを選択して、選択データＡＣＣ＜８：０＞と制御データＡＣＣ＜９：０＞を出力する回路である。
【００１１】
減算器４００は、データレジスタ２００の出力である除数格納データＲＥＧ＜８：０＞及びデータ選択回路３００の出力である選択データＡＣＣ＜８：０＞を入力して減算を実行し、その減算結果データＳ＜８：０＞及び減算結果オーバーフローの有無を示す出力キャリＳ＜９＞を出力する回路である。
【００１２】
制御信号発生回路５００は、時間制御信号ＴＬ、データ選択回路３００の出力である制御データＡＣＣ＜９＞及び減算器４００の出力である出力キャリＳ＜９＞を入力する。制御信号発生回路５００は、時間制御信号ＴＬの論理的レベルがハイであり、少なくとも制御データＡＣＣ＜９＞または出力キャリＳ＜９＞の一方の論理的レベルがハイである場合に、論理的レベルがハイである選択制御信号ＳＣを出力する回路である。
【００１３】
結果データ発生回路６００は、時間制御信号ＴＬ、選択制御信号ＳＣ及びクロックＣＫを受信して、時間制御信号ＴＬにより選択制御信号ＳＣをクロックに同期して１ビットずつ左側にシフトし、結果データＱＵＯ＜８：０＞を出力する回路である。
【００１４】
図２は図１に示した時間制御回路１００の機能ブロック図である。
図２に示されているように、時間制御回路１００は、ダウンカウンタ１１０、検出器１２０、ラッチ回路１３０及びフリップフロップ１４０により構成されている。
【００１５】
ダウンカウンタ１１０は、クロックＣＫによりカウンタ値を１ずつ減少させるカウンタである。
検出器１２０は、ダウンカウンタ１１０の出力ＤＣＯが定められた一定の値になった場合、これを検出して第１リセット信号ＦＲを出力する検出器である。
【００１６】
ラッチ回路１３０は、リセット信号ＲＳＢ、始動信号Ｓ及び第１リセット信号ＦＲを受信し、リセット信号ＲＳＢまたは第１リセット信号ＦＲが活性化される場合にはロー論理値を出力し、始動信号Ｓが活性化される場合にはハイ論理値を出力する。
フリップフロップ１４０は、ラッチ回路１３０の出力を入力し、クロックＣＫに同期して時間制御信号ＴＬを出力するフリップフロップである。
【００１７】
時間制御信号ＴＬはダウンカウンタ１１０のリセット端子ＲＢに接続され、ダウンカウンタ１１０は時間制御信号ＴＬの論理的レベルがローである場合にリセットされる。
【００１８】
検出器１２０は、否定論理積回路で構成される。図１の並列処理用割り算の場合、除数データが９ビットであるので、検出器１２０はダウンカウンタ１１０の出力が十進数“１０”である値を検出し、この場合に“ロー”論理値を出力する。
【００１９】
図３は図２に示したラッチ回路１３０の回路図である。
図３に示されているように、ラッチ回路１３０は、第１入力と第２入力と第３入力を備えた第１否定論理和回路１３１と、第１入力と第２入力を備えた第２否定論理和回路１３２と、リセット信号ＲＳＢ及びＦＲを反転させる２つのインバータ回路から構成されている。
【００２０】
第１否定論理和回路１３１において、第１入力はリセット信号ＲＳＢを反転させた信号を入力し、第２入力は第１リセット信号ＦＲを反転させた信号を入力し、第３入力は第２否定論理和回路１３２の出力を入力するように接続されている。
第２否定論理和回路１３２において、第１入力は第１否定論理和回路１３１の出力を入力し、第２入力は始動信号Ｓを入力するように接続されている。
【００２１】
図４は図１に示したデータレジスタの回路図である。
図４に図示されているように、データレジスタ２００は、除数データＢＤＡＴ＜８：０＞のビット数だけの複数のレジスタ２１０−１、２１０−２、．．．、２１０−９と、始動信号を受信してこれを反転させて出力するインバーター２４０により構成される。
【００２２】
レジスタ２１０−１〜２１０−９の各々は、除数データ通路回路２５０と、フリップフロップ２６０とから構成される。このフリップフロップ２６０は、入力端子であるクロック端子ＣＫ、入力端子Ｄ及びリセット端子Ｒと、出力端子である第１出力端子Ｑ及び第１出力端子Ｑを反転させた第２出力端子ＱＢを備えている。
【００２３】
除数データ通路回路２５０は、第１出力と第２出力を行う第１及び第２論理積回路２５１、２５２と、第１出力と第２出力を入力して第３出力を行う第３否定論理和回路２５３とで構成される。
【００２４】
第１論理積回路２５１において、これの第１入力端子は始動信号Ｓを入力するように接続され、第２入力端子は除数データＢＤＡＴ＜８：０＞の中で一つのビットを入力するように接続される。
第２論理積回路２５２において、これの第１入力端子は始動信号Ｓを反転したインバーター２４０の出力を入力するように接続され、第２入力端子はフリップフロップ２６０の第２出力端子ＱＢに接続される。
第３否定論理和回路２５３において、これの第１入力端子は第１論理積回路２５１の出力端子に接続され、第２入力は第２論理積回路２５２の出力端子に接続され、出力端子はフリップフロップ２６０の入力端子Ｄに接続される。
【００２５】
図５は、図１に示したデータ選択回路３００の回路図である。
図５に示されているように、データ選択回路３００は、始動信号Ｓと選択制御信号ＳＣを入力して第１制御信号ＳＨＦと第２制御信号ＳＰを出力する選択制御信号発生回路３４０と、被除数データＡＤＡＴ＜８：０＞のビット数より１ビット多い複数の選択レジスタ３１０、３２０、３３０とにより構成され、選択データＡＣＣ＜８：０＞と制御データＡＣＣ＜９＞を出力する。
【００２６】
選択制御発生回路３４０は、第１及び第２インバーター３４１、３４２と第３及び第４論理積回路３４３、３４４とで構成される。
第１インバーター３４１は始動信号Ｓを受信してこれを反転させて出力し、第２インバーター３４２は選択制御信号ＳＣを受信してこれを反転させてシフト制御信号ＳＨを出力する。また、第３論理積回路３４３は始動信号Ｓを反転させた信号とシフト制御信号ＳＨを論理積して第１制御信号ＳＨＦを出力し、第４論理積回路３４４は始動信号Ｓを反転させた信号と選択制御信号ＳＣとを論理積して第２制御信号ＳＰを出力する。
【００２７】
選択レジスタ３１０は被除数データ通路回路３１０ａ及びフリップフロップ３１０ｂにより、選択レジスタ３２０は被除数データ通路回路３２０ａ及びフリップフロップ３２０ｂにより、選択レジスタ３３０は被除数データ通路回路３３０ａ及びフリップフロップ３１０ｂとにより各々構成される。
【００２８】
フリップフロップ３１０ｂ、３２０ｂ、３３０ｂは、各々クロック端子Ｃと入力端子Ｄと、リセット端子Ｒと、出力端子Ｑとを有する。また、フリップフロップ３１０ｂ、３２０ｂ、３３０ｂにおいて、クロック端子Ｃ及びリセット端子Ｒは各々クロックＣＫ及びリセット信号ＲＳＢに接続され、入力端子Ｄはそれぞれ複数の被除数データ通路回路３１０ａ、３２０ａ、３３０ａの出力に接続され、出力端子Ｑは後段の被除数データ通路回路の入力に接続される。
【００２９】
複数の被除数データ通路回路３１０ａ、３２０ａ、３３０ａの中で、第１通路回路３１０ａは始動信号Ｓと被除数データＡＤＡＴ＜８：０＞の最下位ビットＡＤＡＴ＜０＞とを論理積して出力する第５論理積回路で構成される。
【００３０】
また、最後の第３通路回路３３０ａは、その前段のフリップフロップの出力及び第１制御信号ＳＨＦを入力してこれを否定論理積する第１否定論理積回路３３１と、減算器４００から出力される減算結果データＳ＜８：０＞中の最上位ビットＳ＜８＞と第２制御信号ＳＰを受信してこれを否定論理積する第２否定論理積回路３３２と、第１否定論理積回路３３１の出力と第２否定論理積回路３３２の出力を受信してこれを否定論理積する第３否定論理積回路３３３とで構成される。
【００３１】
また、第２通路回路３２０ａ及びその後段に接続される最後の第３通路回路３３０ａの間の他の通路回路（図示せず）は、第４否定論理積回路３２１、第６論理積回路３２２、第７論理積回路３２３、第３否定論理和回路３２４及び第５否定論理積回路３２５とにより構成される。
【００３２】
第４否定論理積回路３２１は、前段のフリップフロップ３１０ｂの出力及び第１制御信号ＳＨＦを受信してこれを否定論理積する論理演算回路である。第６論理積回路３２２は、減算器４００から出力される減算結果データＳ＜８：０＞中の最上位ビットＳ＜８＞より下のビット中の一つのビットと第２制御信号ＳＰとを入力してこれを論理積する論理演算回路である。
【００３３】
第７論理積回路３２３は、始動信号Ｓと被除数データＡＤＡＴ＜８：０＞の最上位ビットＡＤＡＴ＜０＞より下のビット中の一つのビットを入力してこれを論理積して出力する論理演算回路である。第３否定論理和回路３２４は、第６論理積回路３２２の出力と第７論理積回路３２３の出力を入力してこれを否定論理和して出力する論理演算回路である。第５否定論理積回路３２５は、第４否定論理積回路３２１の出力と第３否定論理和回路３２４の出力を入力してこれを否定論理積して出力する論理演算回路である。
【００３４】
図６及び図７は、図１に示した並列処理用割り算回路の結果データ発生回路６００の回路図である。なお、結果データ発生回路６００は、図６の６００Ａと図７の６００Ｂにそれぞれ図示されている丸で囲んだＡ，Ｂ，Ｃ，Ｄ，Ｅをそれぞれ接続することにより形成される。
【００３５】
図６及び図７に示されているように、結果データ発生回路６００は、複数の結果データレジスタ６１０−１〜６１０−９と、時間制御信号ＴＬを受信してこれを反転させて第１時間制御信号ＩＴＬを出力するインバーター６０１とで構成される。
【００３６】
結果データレジスタ６１０−１〜６１０−９の各々は、結果データ通路回路６１０ａとフリップフロップ６１０ｂとで構成される。
フリップフロップ６１０ｂは、入力端子Ｄとクロック端子Ｃとリセット端子Ｒと出力端子Ｑを備えている。フリップフロップ６１０ｂにおいて、入力端子Ｄは結果データ通路回路６１０ａの出力側に接続され、クロック端子ＣはクロックＣＫを入力するように接続されている。また、リセット端子Ｒはリセット信号ＲＳＢに接続され、結果データＱＵＯ＜８：０＞を出力する。
【００３７】
第１結果データレジスタ６１０−１の結果データ通路回路６１０ａは、選択制御信号ＳＣと時間制御信号ＴＬを受信してこれを論理積する第８論理積回路６１１と、第１時間制御信号ＩＴＬとフリップフロップ６１０ｂの出力を入力してこれを論理積する第９論理積回路６１２と、第８論理積回路６１１の出力と第９論理積回路６１２の出力を入力してこれの論理和をとる第１論理和回路６１３とで構成される。
【００３８】
なお、第１結果データレジスタ６１０−１以外の第２〜第９結果データレジスタ６１０−２〜６１０−９の各々の結果データ通路回路６１０ａの構成は、第１結果レジスタ６１０−１の結果レジスタ通路回路６１０ａの構成と同一である。ただし、第２〜第９結果データレジスタ６１０−２〜６１０−９の結果データレジスタ通路回路６１０ａの第８論理積回路６１１は各々前段のフリップフロップ６１０ｂの出力と時間制御信号ＴＬを受信してこれを論理積する。
【００３９】
以下、上記のような構成による本発明の並列処理用割り算回路の実施の形態の動作を詳細に説明する。
図２に示す並列処理用割り算回路の時間制御回路１００において、リセット信号ＲＳＢは最初は初期化のためその論理レベルがローであるので、ラッチ回路１３０の出力Ｏはロー論理値を出力し、フリップフロップ１４０の出力である時間制御信号ＴＬはロー論理値を出力し、ダウンカウンタ１１０はリセットされて十進数“０”を出力する。
【００４０】
リセット信号ＲＳＢの論理的レベルがハイであり、クロックＣＫの１周期間にのみ論理的レベルがハイである始動信号Ｓが入力されると、ラッチ回路１３０の出力はハイ論理値を持つようになり、時間制御信号ＴＬはクロックＣＫに同期されてハイ論理値を出力するので、ダウンカウンタ１１０はカウンティングを開始する。
【００４１】
ダウンカウンタ１１０が十進数“１０”を出力すると、検出器１２０はハイ論理値からロー論理値に変化する。これにより、ラッチ回路１３０はロー論理値を出力し、フリップフロップ１４０はクロックＣＫに同期してロー論理値を出力し、ダウンカウンタ１１０はリセットされる。
すなわち、時間制御信号は始動信号Ｓの入力によりハイ論理値になった後、７番目のクロックＣＫに同期されてロー論理値を出力する。
時間制御信号ＴＬの論理的レベルがハイである間には、並列処理用割り算回路は被除数データＡＤＡＴ＜８：０＞と除数データＢＤＡＴ＜８：０＞を受信して割り算の結果である結果データＱＵＯ＜８：０＞を出力する。
【００４２】
図４のデータレジスタ２００において、リセット信号ＲＳＢの論理的レベルがローである場合には、除数格納データＲＥＧ＜８：０＞は全部リセットされる。
また、リセット信号ＲＳＢの論理的レベルがハイであり、始動信号Ｓの論理的レベルがハイである場合には、各々のレジスタ２１０−１，２１０−２，．．．，２１０−９は除数データＢＤＡＴ＜８：０＞を受信してこれを反転させ、クロックＣＫに同期して除数格納データＲＥＧ＜８：０＞を出力する。
また、始動信号Ｓの論理的レベルがローである場合には、各々のレジスタ２１０−１，２１０−１，．．．，２１０−９に格納されたデータが出力される。
【００４３】
即ち、並列処理用割り算回路において、割り算の開始を示す始動信号Ｓにより始動信号Ｓが活性化される場合、各々のレジスタ２１０−１，２１０−２，．．．，２１０−９は除数データＢＤＡＴ＜８：０＞をクロックＣＫに同期して受信し、割り算の結果データが出力されるまでに除数データＢＤＡＴ＜８：０＞を反転させた除数格納データＲＥＧ＜８：０＞を出力する。
【００４４】
図５のデータ選択回路３００は、始動信号Ｓの論理的レベルがハイである場合には、選択制御信号発生回路３４０の出力である第１及び第２制御信号ＳＨＦ，ＳＰの論理的レベルが両方ともローとなる。これにより、複数の被除数データ通路回路の中で、第１及び第２被除数データ通路回路３１０ａ，３２０ａは被除数データＡＤＡＴ＜８：０＞を選択し、最上位ビットの被除数データ通路回路３３０ａはロー論理値を出力し、複数のフリップフロップの中で第１及び第２フリップフロップ３１０ｂ，３２０ｂの出力である選択データＡＣＣ＜８：０＞はクロックＣＫに同期されて被除数データＡＤＡＴ＜８：０＞を出力し、最後のフリップフロップ３３０ｂの出力である制御データＡＣＣ＜９＞はロー論理値を出力する。
【００４５】
始動信号Ｓの論理的レベルがローであり、選択信号ＳＣの論理的レベルがハイの場合、選択制御信号発生回路３４０の出力である第２制御信号ＳＰはハイ論理値を出力し、第１制御信号ＳＨＦはロー論理値を出力して最下位ビットの被除数データ通路回路３１０ａはロー論理値を持つ。それ以外のビットの被除数データ通路回路３２０ａ，３３０ａは減算器４００の出力である減算結果データＳ＜８：０＞を選択して、複数のフリップフロップ３２０ｂ，３３０ｂの出力データである選択データＡＣＣ＜８：１＞及び制御データＡＣＣ＜９＞はクロックＣＫに同期されて減算結果データＳ＜８：０＞を出力し、最下位ビットの選択レジスタ１３０の出力である選択データＡＣＣ＜８：１＞はロー論理値を出力する。
【００４６】
始動信号Ｓの論理的レベルがローであり、選択信号ＳＣの論理値レベルがローである場合、選択制御信号発生回路３４０の出力である第１制御信号ＳＨＦはハイ論理値を出力し、第２制御信号ＳＰはロー論理値を出力して最下位ビットの被除数データ通路回路３１０ａはロー論理値を持つ。それ以外のビットの被除数データ通路回路３２０ａ，３３０ａは各々前段のフリップフロップの出力を選択するので、最下位ビットの選択データＡＣＣ＜８：１＞はクロックＣＫに同期されロー論理値を出力し、それ以外のビットである選択データＡＣＣ＜８：１＞及び制御データＡＣＣ＜９＞はクロックＣＫに同期されて複数のフリップフロップ３１０ａ，３２０ａに格納されたデータを左側に１ビットシフトして出力する。
【００４７】
図１の減算器４００は、論理的レベルがハイである入力キャリと選択データＡＣＣ＜８：０＞と除数格納データＲＥＧ＜８：０＞を受信して各々のビットを加算して減算結果データＳ＜８：０＞と減算結果オーバーフロー発生の有無を示す出力キャリＳ＜９＞を出力する。
【００４８】
上述したように、除数格納データＲＥＧ＜８：０＞は除数データＢＡＤＴ＜８：０＞を反転させて出力されたデータであるので、減算器４００は選択データＡＣＣ＜８：０＞から除数データＢＡＤＴ＜８：０＞を減算した結果を出力する。
即ち、減算器４００は｛選択データＡＣＣ＜８：０＞｝−｛除数データＢＡＤＴ＜８：０＞｝
を実行する。
【００４９】
図１の制御信号発生回路５００は、時間制御信号ＴＬとデータ選択回路３００の出力である制御データＡＣＣ＜９＞と減算器４００の出力である出力キャリＳ＜９＞を受信する。そして、時間制御信号ＴＬの論理的レベルがハイであり、制御データＡＣＣ＜９＞または出力キャリＳ＜９＞の論理的レベルがハイである場合にはハイ論理値を持つ選択制御信号ＳＣを出力し、それ以外の場合にはロー論理値を持つ選択制御信号ＳＣを出力する。
【００５０】
図６及び図７において、時間制御信号の論理的レベルがハイである場合、結果データ発生回路６００−１の結果データ通路回路６１０ａは選択制御信号ＳＣを選択して出力する。それ以外の結果データ発生回路６００の結果データ通路回路６１０ａは、前段のフリップフロップ６１０ｂに格納されたデータを各々選択して出力する。また、複数のフリップフロップ６１０ｂはそれぞれ、結果データ通路回路６１０ａからの出力を入力し、クロック端子Ｃに入力するクロックＣＫに同期して結果データＱＵＯ＜８：０＞を出力する。
【００５１】
即ち、時間制御信号ＴＬの論理的レベルがハイである場合、選択制御信号ＳＣを受信してクロックＣＫに同期されて左側に１ビットずつ循環シフトされる。そのシフトされる順序は、選択制御信号ＳＣのデータを結果データＱＵＯ＜８：０＞の中で３番目のビットＱＵＯ＜２＞に格納し、これをクロックＣＫに同期されてその次の上位ビットに各々１ビットずつ左側にシフトされ、結果データＱＵＯ＜８：０＞の中で最上位のビットＱＵＯ＜８＞にシフトされた後には最下位のビットＱＵＯ＜０＞にシフトされ、その後２番目のビットＱＵＯ＜１＞にシフトされる。
【００５２】
従って、図１の本発明の並列処理用割り算回路において、被除数データＡＤＡＴ＜８：０＞と除数データＢＤＡＴ＜８：０＞を受信して、割り算を実行した結果の余りは結果データＱＵＯ＜８：０＞の中で最上位のビットＱＵＯ＜８＞を捨てた残りの結果データＱＵＯ＜７：０＞となり、誤差の範囲は約±１．５％程度になる。
【００５３】
図８は本実施の形態における並列処理用割り算回路の動作タイミング図であって、被除数データＡＤＡＴ＜８：０＞が十進数“７８”１６進数では０４Ｅであり、除数データＢＤＡＴ＜８：０＞が十進数“１１２”１６進数では０７０である場合の動作タイミングを示す。下記の動作説明では、全てのデータについて１６進数で表示した。
【００５４】
まず、本実施の形態における並列処理用割り算回路の複数のフリップフロップとラッチ回路を初期化するため、リセット信号ＲＳＢにロー論理値を入力して活性化させる。
これにより、時間制御回路１００の出力である時間制御信号ＴＬはロー論理値を持ち、データレジスタ２００の出力である除数格納データＲＥＧ＜８：０＞、データ選択回路３００の出力である選択データＡＣＣ＜８：０＞及び制御データＡＣＣ＜９＞、減算器４００の出力である減算結果データＳ＜８：０＞及び出力キャリＳ＜９＞の全てのデータはリセットされる。また、ロー論理値を持つ時間制御信号ＴＬにより制御発生回路５００の出力である選択制御信号ＳＣはロー論理値を出力し、結果データ発生回路６００の出力である結果データＱＵＯ＜８：０＞もリセットされる。
【００５５】
上記の初期化以後、リセット信号ＲＳＢはハイ論理値を入力して非活性化状態になるようにする。
被除数データＡＤＡＴ＜８：０＞と除数データＢＤＡＴ＜８：０＞を受信してこの割り算の開始を示す始動信号Ｓが活性化されると、時間制御回路１００のラッチ回路１３０はハイ論理値を持ち、時間制御信号１００はクロックＣＫに同期されてハイ論理値を持つ。そして、次のクロックＣＫに同期されてダウンカウンタ１１０はカウンティングを開始し、ダウンカウンタ１１０の出力ＤＣＯが十進数“１０”になると検出器１２０の論理的レベルはハイからローに変化し、ラッチ回路１３０はリセットされる。これにより、時間制御信号ＴＬはロー論理値を出力し、ダウンカウンタ１１０の出力ＤＣＯはリセットされる。
即ち、時間制御信号ＴＬは７個のクロック周期の間にハイ論理値を維持する。もし、被除数データと除数データがＮビットである場合には、Ｎ−２個のクロック周期の間に時間制御信号ＴＬはハイ論理値を維持するように設計すべきである。
【００５６】
データレジスタ２００の出力である除数格納データＲＥＧ＜８：０＞は、始動信号Ｓの論理的レベルがハイである場合にはクロックＣＫに同期されて除数データＢＤＡＴ＜８：０＞である“０７０”を反転させたデータ“１８Ｆ”を出力する。また、始動信号Ｓの論理的レベルがローである場合にはこれをラッチして割り算の結果である結果データＱＵＯ＜８：０＞を出力するまで除数格納データＲＥＧ＜８：０＞は“１８Ｆ”を出力する。
【００５７】
始動信号Ｓの論理的レベルがハイである場合には、一番目のクロックＣＫに同期されてデータ選択回路３００の出力である選択データＡＣＣ＜８：０＞は被除数データＡＤＡＴ＜８：０＞である“０４Ｅ”を選択し、制御データＡＣＣ＜９＞はロー論理値を持つ。
【００５８】
減算器４００は選択データ選択データＡＣＣ＜８：０＞である“０４Ｅ”、除数格納データＲＥＧ＜８：０＞である“１８Ｆ”、減算器４００の入力キャリであるハイ論理値の加算を実行する。
即ち、減算器４００は選択データＡＣＣ＜８：０＞である“０４Ｅ”から除数データＢＤＡＴ＜８：０＞である“０７０”の減算を実行する。
従って、減算器４００の減算結果データＳ＜８：０＞は“１ＤＦ”であり、出力キャリＳ＜９＞はロー論理値を持つ。
【００５９】
上述したように、制御データＡＣＣ＜９＞及び出力キャリＳ＜９＞は両方ともロー論理値を持ち、時間制御信号ＴＬはハイ論理値を持つので、制御信号発生回路５００の出力である選択制御信号ＳＣはロー論理値を出力する。このようにして、結果データ発生回路６００の出力である結果データＱＵＯ＜８：０＞はその前のデータと同一である“０００”の値を出力する。
【００６０】
上記でロー論理値を持つ選択制御信号ＳＣにより２番目のクロックＣＫに同期して、データ選択回路３００の出力である選択データＡＣＣ＜８：１＞及び制御データＡＣＣ＜９＞はその前のデータを左側に１ビットシフトしたデータを出力し、選択データＡＣＣ＜８：０＞の中で最下位ビットＡＣＣ＜０＞はロー論理値を出力する。
即ち、選択データＡＣＣ＜８：０＞は“０９Ｃ”を出力し、制御データＡＣＣ＜９＞はロー論理値を出力する。
【００６１】
減算器４００の減算結果データＳ＜８：０＞は“０２Ｃ”であり、出力キャリＳ＜９＞はハイ論理値になる。
制御データＡＣＣ＜９＞がロー論理値になり、出力キャリＳ＜９＞がハイ論理値になり、時間制御信号ＴＬがロー論理値になるので、制御信号発生回路５００の出力である選択制御信号ＳＣはハイ論理値を出力する。これにより、結果データ発生回路６００の出力である結果データＱＵＯ＜８：０＞は３番目のクロックＣＫに同期して“００４”のデータを出力する。
【００６２】
ハイ論理値を持つ選択制御信号ＳＣにより３番目のクロックＣＫに同期してデータ選択回路３００の出力である選択データＡＣＣ＜８：０＞及び制御データＡＣＣ＜９＞は減算器４００の減算結果Ｓ＜８：０＞である“０２Ｃ”を選択し、選択データＡＣＣ＜８：０＞中で最下位ビットＡＣＣ＜０＞はロー論理値を持つ。
即ち、選択データＡＣＣ＜８：０＞は“０５８”であり、制御データＡＣＣ＜９＞はロー論理値になる。
【００６３】
制御データＡＣＣ＜９＞及び出力キャリＳ＜９＞と時間制御信号ＴＬは全部ロー論理値を持つので、制御信号発生回路５００の出力である選択制御信号ＳＣはロー論理値を出力し、結果データ発生回路６００の出力である結果データＱＵＯ＜８：０＞は４番目のクロックＣＫに同期されて“００８”のデータを出力する。
【００６４】
このような方法により、４番目のクロックＣＫに同期して、データ選択回路３００の出力である選択データＡＣＣ＜８：０＞は“ＯＢＯ”のデータを出力し、制御データＡＣＣ＜９＞はロー論理値を出力する。これにより、減算器４００の減算結果データＳ＜８：０＞は“０４０”となり出力キャリＳ＜９＞はハイ論理値になる。また、制御データＡＣＣ＜９＞はロー論理値となり出力キャリＳ＜９＞はハイ論理値になる。したがって、制御信号発生回路５００の出力である選択制御信号ＳＣはハイ論理値を出力し、結果データ発生回路６００の出力である結果データＱＵＯ＜８：０＞は５番目のクロックＣＫに同期されて“０１４”のデータを出力する。
【００６５】
５番目のクロックＣＫに同期して、データ選択回路３００の出力である選択データＡＣＣ＜８：０＞は“０８０”のデータを出力し、制御データＡＣＣ＜９＞はロー論理値を出力する。減算器４００の減算結果データＳ＜８：０＞は“０１０”であり出力キャリＳ＜９＞はハイ論理値を持ち、制御データＡＣＣ＜９＞はロー論理値を持ち出力キャリＳ＜９＞はハイ論理値を持つ。したがって、制御信号発生回路５００の出力である選択制御信号ＳＣはハイ論理値を出力し、結果データ発生回路６００の出力である結果データＱＵＯ＜８：０＞は６番目のクロックＣＫに同期されて“０２Ｃ”のデータを出力する。
【００６６】
６番目のクロックＣＫに同期して、データ選択回路３００の出力である選択データＡＣＣ＜８：０＞は“０２０”のデータを出力し、制御データＡＣＣ＜９＞はロー論理値を出力する。減算器４００の減算結果データＳ＜８：０＞は“１ＢＯ”であり出力キャリＳ＜９＞はロー論理値を持ち、制御データＡＣＣ＜９＞及び出力キャリＳ＜９＞は両方ともロー論理値を持つので、制御信号発生回路５００の出力である選択制御信号ＳＣはロー論理値を出力し、結果データ発生回路６００の出力である結果データＱＵＯ＜８：０＞は７番目のクロックＣＫに同期されて“０５８”のデータを出力する。
【００６７】
７番目のクロックＣＫに同期して、データ選択回路３００の出力である選択データＡＣＣ＜８：０＞は“０４０”のデータを出力し、制御データＡＣＣ＜９＞はロー論理値を出力する。減算器４００の減算結果データＳ＜８：０＞は“１ＤＯ”であり出力キャリＳ＜９＞はロー論理値を持ち、制御データＡＣＣ＜９＞及び出力キャリＳ＜９＞は両方ともロー論理値を持つので、制御信号発生回路５００の出力である選択制御信号ＳＣはロー論理値を出力し、結果データ発生回路６００の出力である結果データＱＵＯ＜８：０＞は８番目のクロックＣＫに同期されて“０ＢＯ”のデータを出力する。
【００６８】
８番目のクロックＣＫに同期されて、データ選択回路３００の出力である選択データＡＣＣ＜８：０＞は“０８０”のデータを出力し、制御データＡＣＣ＜９＞はロー論理値を出力する。減算器４００の減算結果データＳ＜８：０＞は“０１０”であり出力キャリＳ＜９＞はハイ論理値を持ち、時間制御信号ＴＬはロー論理値を持つので、制御信号発生回路５００の出力である選択制御信号ＳＣはロー論理値を出力する。
【００６９】
８番目のクロックＣＫに同期されて出力される結果データＱＵＯ＜８：０＞である“ＯＢＯ”は２進数で“０１０１１００００”であり、この中で最上位ビットを捨てて残りのビットを選択すると２進数で“１０１１００００”となる。これを十進数に変えると“１＊１／２＋１＊１／８＋１＊１／１６＝０．６８７５”である。
【００７０】
また、上記の例で被除数データＡＤＡＴ＜８：０＞が十進数“７８”であり、除数データＢＤＡＴ＜８：０＞が十進数“１１２”であるので、この割り算の結果は“７８／１１２＝０．６９６４”である。
【００７１】
以上、詳細に説明したように、本実施の形態による並列処理用割り算回路は、比較的簡単なハードウェアにより構成可能であるとともに、実際の割り算結果と比較しても約±１．５％程度の誤差に収まるので正確な割り算の結果を得ることが可能となる。
【００７２】
【発明の効果】
以上、詳細に説明したように本発明によれば、被除数が除数より小さくて余りが小数点以下になる並列処理用割り算回路を、簡単なハードウェア構成により形成することが可能となる。また、本発明によれば、誤差の小さい正確な割り算結果を得ることが可能となる。
【図面の簡単な説明】
【図１】本発明による並列処理用割り算回路の実施の形態を示す機能ブロック図。
【図２】図１に示した並列処理用割り算回路における時間制御回路の機能ブロック図。
【図３】図２に示した時間制御回路におけるラッチ回路の回路図。
【図４】図１に示した並列処理用割り算回路におけるデータレジスタの回路図。
【図５】図１に示した並列処理用割り算回路におけるデータ選択回路の回路図。
【図６】図１に示した並列処理用割り算回路における結果データ発生回路の一部を示す回路図。
【図７】図１に示した並列処理用割り算回路における結果データ発生回路の他の部を示す回路図。
【図８】図１に示した並列処理用割り算回路の動作タイミング図。
【符号の説明】
１００    時間制御回路
２００    データレジスタ
３００    データ選択回路
４００    減算器
５００    制御信号発生回路
６００    結果データ発生回路
【図１】
0003714570.tif 000002
【図２】
0003714570.tif 000003
【図３】
0003714570.tif 000004
【図４】
0003714570.tif 000005
【図５】
0003714570.tif 000006
【図６】
0003714570.tif 000007
【図７】
0003714570.tif 000008
【図８】
0003714570.tif 000009