(57)【特許請求の範囲】
【請求項１】
セット信号が入力すると正転出力を“１”に反転出力を“０”にし、リセット信号が入力すると正転出力を“０”に反転出力を“１”にするＳＲラッチ回路と、
該ＳＲラッチ回路の前記正転出力が“１”のとき入力する信号を保持する複数のフリップフロップからなる入力レジスタと、
該入力レジスタの前記各フリップフロップの正転出力を正規ビットとし反転出力を冗長ビットとしてこれら正規ビットと冗長ビットからなる信号をペア信号とし、該各ペア信号を前記ＳＲラッチ回路の前記反転出力が“１”のときそのまま通過させ、“０”のとき遮断して共に“０”として出力する冗長ビットエンコーダと、
該冗長ビットエンコーダから出力する前記各ペア信号を入力し、該入力ペア信号の各論理が互いに異なるときに所定の演算結果の複数のペア信号を出力し、前記入力ペア信号の各論理が共に“０”のときは共に“０”の複数のペア信号を出力する冗長組合せ論理回路と、
該冗長組合せ論理回路から出力する前記各ペア信号のそれぞれの論理和の演算結果を出力する演算終了検知回路と、
該演算終了検知回路のすべての出力信号が“０”のとき前記ＳＲラッチ回路に対して前記リセット信号を送るリセット回路と、
前記演算終了検知回路のすべての出力信号が“１”のとき前記ＳＲラッチ回路に対して前記セット信号を送るセット回路と、
前記ＳＲラッチ回路の前記正転出力が“１”のとき前記冗長組合せ論理回路から出力する前記各ペア信号のうちの正規ビットの信号を入力して保持する複数のフリップフロップからなる出力レジスタと、
を具備することを特徴とする論理回路。
【請求項２】
請求項１に記載の論理回路において、
前記冗長組合せ論理回路は、演算信号、被演算信号、キャリ入力信号、加算信号およびキャリ出力信号をそれぞれ前記ペア信号とするリップルキャリ加算器であることを特徴とする論理回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力された複数のデータを組合せ論理回路で演算処理して後段に転送する論理回路に関するものである。
【背景技術】
【０００２】
この種の論理回路として図５に示す回路が知られている（類似のものとして例えば、特許文献１の図１参照）。この論理回路は、ｎ個のフリップフロップ１０１〜１０ｎからなる入力レジスタ１０、この入力レジスタ１０で保持されたデータに基づき所定の論理演算を行う組合せ論理回路９０、この組合せ論理回路９０で処理されたデータを保持する複数のフリップフロップ５０１〜５０ｍからなる出力レジスタ５０、および両レジスタ１０，５０にクロックＣＬＫを供給するクロック発振回路１００からなる。
【０００３】
この論理回路では、クロック発振回路１００から出力するクロックＣＬＫが“１”になったときに入力レジスタ１０で入力データを取り込み、このデータが組合せ論理回路９０で演算処理され、その演算結果は次回にクロックＣＬＫが“１”になったときに出力レジスタ５０に取り込まれる。
【特許文献１】特開平１０−１４９２２８
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところが、このような論理回路では、クロックＣＬＫに設定できる最大周波数は、入力レジスタ１０から出力レジスタ５０に到達する最長パスによって制約されるので、ＰＶＴワースト（プロセス、電圧、温度の最悪条件）までを考慮する必要があった。
【０００５】
本発明の目的は、組合せ論理回路の演算開始と演算終了に同期してデータ転送が行われるようにして、そのデータ転送が組合せ論理回路の演算速度に合致した最速で行われるようにした論理回路を提供することである。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、請求項１にかかる発明の論理回路は、セット信号が入力すると正転出力を“１”に反転出力を“０”にし、リセット信号が入力すると正転出力を“０”に反転出力を“１”にするＳＲラッチ回路と、該ＳＲラッチ回路の前記正転出力が“１”のとき入力する信号を保持する複数のフリップフロップからなる入力レジスタと、該入力レジスタの前記各フリップフロップの正転出力を正規ビットとし反転出力を冗長ビットとしてこれら正規ビットと冗長ビットからなる信号をペア信号とし、該各ペア信号を前記ＳＲラッチ回路の前記反転出力が“１”のときそのまま通過させ、“０”のとき遮断して共に“０”として出力する冗長ビットエンコーダと、該冗長ビットエンコーダから出力する前記各ペア信号を入力し、該入力ペア信号の各論理が互いに異なるときに所定の演算結果の複数のペア信号を出力し、前記入力ペア信号の各論理が共に“０”のときは共に“０”の複数のペア信号を出力する冗長組合せ論理回路と、該冗長組合せ論理回路から出力する前記各ペア信号のそれぞれの論理和の演算結果を出力する演算終了検知回路と、該演算終了検知回路のすべての出力信号が“０”のとき前記ＳＲラッチ回路に対して前記リセット信号を送るリセット回路と、前記演算終了検知回路のすべての出力信号が“１”のとき前記ＳＲラッチ回路に対して前記セット信号を送るセット回路と、前記ＳＲラッチ回路の前記正転出力が“１”のとき前記冗長組合せ論理回路から出力する前記各ペア信号のうちの正規ビットの信号を入力して保持する複数のフリップフロップからなる出力レジスタと、を具備するように構成した。
【０００７】
請求項２にかかる発明は、請求項１に記載の論理回路において、前記冗長組合せ論理回路が、演算信号、被演算信号、キャリ入力信号、加算信号およびキャリ出力信号をそれぞれ前記ペア信号とするリップルキャリ加算器であるように構成した。
【発明の効果】
【０００８】
本発明によれば、冗長組合せ論理回路の出力ペア信号の各論理が共に“０”のときに冗長ビットエンコーダから複数の新たなペア信号が入力してその冗長組合せ論理回路で論理演算が行われ、その演算終了により、冗長組合せ論理回路の出力ペア信号の各論理が互いに異なることにより入力レジスタに新たなデータが保持され、また出力レジスタにそのときの冗長組合せ論理回路の正規ビットが保持されるので、冗長組合せ論理回路の論理演算の速度に応じてデータ転送が行われるようになる。つまり、データ転送が冗長組合せ論理回路の演算速度に合致した最速で行われるようになる。
【０００９】
また、組合せ論理回路をリップルキャリ加算器としたときは、通常ではキャリ信号の伝搬時間が加算信号のそれより遅くなり、これを考慮しさらにＰＶＴワーストも考慮しクロック周波数を設定する必要があるが、本発明では、冗長組合せ論理回路でリップルキャリ加算器を構成すると、ＰＶＴワーストとは無関係に冗長組合せ論理回路の演算速度に合致した最速でデータ転送が行われる利点がある。
【発明を実施するための最良の形態】
【００１０】
図１は本発明の１つの実施例の論理回路の構成を示すブロック図である。１０は入力レジスタであり、ｎ個のフリップフロップ１０１〜１０ｎからなり、クロック端子に入力する正転クロックＣＬＫが“１”に立ち上がる毎に、保持データを更新する。
【００１１】
２０は冗長ビットエンコーダであり、入力レジスタ１０のフリップフロップ１０１に対応して、その正転出力Ｑと反転クロックＣＬＫＸを入力するアンド回路２０１と、同フリップフロップ１０１の反転出力ＱＸと反転クロックＣＬＫＸを入力するアンド回路２１１を有する。反転クロックＣＬＫＸが“１”のとき、アンド回路２０１からは正規ビット（フリップフロップ１０１の正転出力Ｑ）が信号Ｅ１として、アンド回路２１１からは冗長ビット（フリップフロップ１０１の反転出力ＱＸ）が信号Ｅ１Ｘとして出力し、反転クロックＣＬＫＸが“０”のときは、それらペア信号Ｅ１，ＥＸ１は共に“０”となる。以上は入力レジスタ１０のフリップフロップ１０２〜１０ｎに対応するアンド回路２０２，２１２の組〜２０ｎ，２１ｎの組についても同様である。
【００１２】
３０は冗長組合せ論理回路であり、後記する各種の冗長ビット付加の論理素子からなり、冗長ビットエンコーダ２０からのペア信号Ｅ１，Ｅ１Ｘ〜Ｅｎ，ＥｎＸを受けて所定の論理演算を行う。
【００１３】
４０は演算終了検知回路であり、冗長組合せ論理回路３０から出力する正規ビットの信号Ｆ１と冗長ビットの信号Ｆ１Ｘを入力するオア回路４０１、同様に正規ビットと冗長ビットからなるペア信号Ｆ２，Ｆ２ｘ〜Ｆｎ，ＦｎＸを入力するオア回路４０２〜４０ｍを有する。
【００１４】
５０は出力レジスタであり、ｍ個のフリップフロップ５０１〜５０ｍからなり、冗長組合せ論理回路３０の正規ビットの信号Ｆ１〜Ｆｍを入力し、クロック端子に入力する正転クロックＣＬＫが“１”に立ち上がる毎に、保持データを更新する。
【００１５】
６０はノア回路からなるリセット回路であり、演算終了検知回路４０の各オア回路４０１〜４０ｍの出力がすべて“０”のときにリセット信号Ｃrstを“１”にする。
【００１６】
７０はアンド回路からなるセット回路であり、演算終了検知回路４０の各オア回路４０１〜４０ｍの出力がすべて“１”のときにセット信号Ｃsetを“１”にする。
【００１７】
８０は２個のノア回路８０１，８０２からなるＳＲラッチ回路であり、前記したリセット回路６０から出力するリセット信号Ｃrstが“１”のとき正転クロックＣＬＫを“０”にすると共に反転クロックＣＬＫＸを“１”にし、また前記したセット回路７０から出力するセット信号Ｃsetが“１”のとき正転クロックＣＬＫを“１”にすると共に反転クロックＣＬＫＸを“０”にする。
【００１８】
図２は冗長組合せ論理回路３０の構成要素となる冗長ビット付加の論理素子の説明図である。(a)はインバータの説明図であり、左側が通常のインバータ、右側が冗長ビット付加インバータ３０１である。冗長ビット付加インバータ３０１では、ペア信号Ａ０，Ａ１を反転させてペア信号Ｙ０，Ｙ１を生成している。
【００１９】
図２(b)は２入力オア回路の説明図であり、左側が通常のオア回路、右側が冗長ビット付加オア回路３０２である。冗長ビット付加オア回路３０２では、２入力アンド回路３０２１と２入力オア回路３０２２を使用し、ペア信号Ａ０，Ａ１とペア信号Ｂ０，Ｂ１を入力させて、ペア信号Ｙ０，Ｙ１を生成している。
【００２０】
図２(c)は２入力アンド回路の説明図であり、左側が通常のアンド回路、右側が冗長ビット付加アンド回路３０３である。冗長ビット付加アンド回路３０３では、２入力オア回路３０３１と２入力アンド回路３０３２を使用し、ペア号Ａ０，Ａ１とペア信号Ｂ０，Ｂ１を入力させて、ペア信号Ｙ０，Ｙ１を生成している。
【００２１】
図３はフルアダ（全加算器）３０４の説明図であり、ペアの演算信号Ａ０，Ａ１とペアの被演算信号Ｂ０，Ｂ１とペアのキャリ入力信号Ｃ０，Ｃ１を入力させて、ペアの加算信号Ｓ０，Ｓ１とペアのキャリ出力信号ＣＡ０，ＣＡ１を生成している。
【００２２】
以上の図２(a)〜(c)および図３に示した各冗長ビット付加論理素子は、ペア信号中の正規ビットＡ０，Ｂ０，Ｃ０，Ｙ０等が“１”、“０”の一方の論理ときは冗長ビットＡ１，Ｂ１，Ｃ１，Ｙ１は他方の論理となる。また、ペア信号Ａ０，Ａ１の組、Ｂ０，Ｂ１の組、Ｃ０，Ｃ１の組がともに“０”、“０”の組み合せのときは、ペア信号Ｙ０，Ｙ１も“０”、“０”の組み合せとなる。
【００２３】
さて、ＳＲラッチ回路８０の正転クロックＣＬＫが“１”、反転クロックＣＬＫＸが“０”のときは、入力レジスタ１０は前段から入力するデータを新たに保持し、出力レジスタ５０は冗長組合せ論理回路３０の出力データを新たに保持する。また、冗長ビットエンコーダ２０のアンド回路２０１〜２０ｎ，２１１〜２１ｎの全ての出力が“０”になるので、この冗長ビットエンコーダ２０の出力を受ける冗長組合せ論理回路３０の各冗長ビット付加論理素子はそのペアの出力信号が全て“０”になり、正規ビットの信号Ｆ１〜Ｆｍ、冗長ビットの信号Ｆ１Ｘ〜ＦｍＸも全て“０”となる。この結果、演算終了検知回路４０のオア回路４０１〜４０ｍの出力は“０”になり、リセット回路６０の出力であるリセット信号Ｃrstは“１”となり、セット回路７０の出力であるセット信号Ｃsetは“０”となる。よって、ＳＲラッチ回路６０の正転クロックＣＬＫが“０”、反転クロックＣＬＫＸが“１”になる。
【００２４】
このときは、入力レジスタ１０、出力レジスタ５０は新たなデータ保持は行わない。また、冗長ビットエンコーダ２０のアンド回路２０１〜２０ｎ，２１１〜２１ｎは全てゲートを開くので、入力レジスタ１０の各フリップフロップの正転出力Ｑ、反転出力ＱＸをそのまま通過させ、冗長組合せ論理回路３０に入力させる。よって、冗長組合せ論理回路３０では入力データに応じた論理処理を行い、その１つのペア出力である正規ビットの信号Ｆ１、冗長ビットの信号Ｆ１Ｘの一方は“１”、他方は“０”となる。他の信号Ｆ２，Ｆ２Ｘの組〜信号Ｆｍ，ＦｍＸの組も同様である。この結果、演算終了検知回路４０のオア回路４０１〜４０ｎの出力は“１”になり、リセット回路６０の出力であるリセット信号Ｃrstは“０”となり、セット回路７０の出力であるセット信号Ｃsetは“１”となる。よって、ＳＲラッチ回路６０の正転クロックＣＬＫが“１”、反転クロックＣＬＫＸが“０”になる。このため、冗長組合せ論理回路３０の出力データ（正規ビット）が出力レジスタ５０に新たに保持される。なお、入力レジスタ１０には新たなデータが保持される。
【００２５】
以上のような動作が繰り返されて、入力データの演算と転送が行われる。上記回路では、冗長組合せ論理回路３０でのそれぞれの演算結果が揃ったときに始めて演算終了検知回路４０のオア回路４０１〜４０ｍの出力が全て“１”となり、セット回路７０の出力が“１”になってＳＲラッチ回路８０がリセットからセットに反転されるので、冗長組合せ論理回路３０の動作速度に応じて自動的に論理演算が進行されることになり、高速動作が可能となる。従来例では最長パスとＰＶＴワーストを考慮してクロックの最大周波数を設定する必要があったが、その必要はなくなる。
【００２６】
図４は図３のフルアダ３０４をｍ個（３０４１〜３０４ｍ）使用して、冗長組合せ論理回路３０としてｍビット出力のリップルキャリ加算器を構成した場合の回路を示す図である。この回路ではキャリ信号の伝搬時間が遅くても、それに合った動作速度でデータ転送が行われ、リップルキャリ加算器の演算速度に合致した最速でデータ転送が行われることになる。
【図面の簡単な説明】
【００２７】
【図１】本発明の実施例の論理回路のブロック図である。
【図２】冗長組合せ論理回路の構成要素となる冗長ビット付加論理素子（インバータ、オア回路、アンド回路）の説明図である。
【図３】冗長組合せ論理回路の構成要素となる冗長ビット付加フルアダの説明図である。
【図４】冗長組合せ論理回路をリップルキャリ加算器とした場合の論理回路のブロック図である。
【図５】従来の論理回路のブロック図である。
【符号の説明】
【００２８】
１０：入力レジスタ
２０：冗長ビットエンコーダ
３０：冗長組合せ論理回路
４０：演算終了検知回路
５０：出力レジスタ
６０：リセット回路
７０：セット回路
８０：ＳＲラッチ回路
【図１】
0004664787.tif 000002
【図２】
0004664787.tif 000003
【図３】
0004664787.tif 000004
【図４】
0004664787.tif 000005
【図５】
0004664787.tif 000006