(57)【特許請求の範囲】
【請求項１】
論理ゲート回路を２段以上接続して所定の演算処理を行う論理回路をさらに２段以上接続して構成される組合せ論理回路において、
前記論理回路のうち最終段の論理回路を含む１以上の論理回路の初段の論理ゲート回路は、入力信号の値が確定するまでは前回の演算結果を保持してその保持した値を出力する動作モードと、入力信号の値が確定した後に入力信号に対する演算結果を出力する動作モードを制御信号により切り替える構成であり、
前記最終段の論理回路へのすべての入力信号の確定が半クロック以内に入るクロック信号を前記制御信号として用いる構成である
ことを特徴とする組合せ論理回路。
【請求項２】
論理ゲート回路を２段以上接続して所定の演算処理を行う論理回路をさらに２段以上接続して構成される組合せ論理回路において、
前記論理回路のうち最終段の論理回路を含む１以上の論理回路の初段の論理ゲート回路は、入力信号の値が確定するまでは前回の演算結果を保持してその保持した値を出力する動作モードと、入力信号の値が確定した後に入力信号に対する演算結果を出力する動作モードを制御信号により切り替える構成であり、
各段の論理回路がそれぞれ前段からの入力信号が確定後に入力信号に対する演算結果を出力するように、各段の論理回路の初段の論理ゲート回路を制御する前記制御信号を設定する構成である
ことを特徴とする組合せ論理回路。
【請求項３】
請求項１または請求項２に記載の組合せ論理回路において、
前記最終段の論理回路を含む１以上の論理回路の初段の論理ゲート回路は、
ＣＭＯＳ構成の論理ゲートが電源およびＧＮＤとスイッチトランジスタを介して接続され、当該スイッチトランジスタを前記制御信号を用いて電源およびＧＮＤと導通状態または非導通状態に切り替えるマスター部と、
ＣＭＯＳ構成の第１のインバータが電源およびＧＮＤとスイッチトランジスタを介して接続され、当該スイッチトランジスタを前記制御信号を反転させた信号を用いて電源およびＧＮＤと導通状態または非導通状態に切り替えるスレーブ部と、
前記マスター部と前記スレーブ部とを接続する第２のインバータと、
前記スレーブ部の出力を前記マスター部の出力に接続する手段とを備え、
前記マスター部の論理ゲートの入力信号が最終値に確定するまでの間は、前記マスター部のスイッチトランジスタが非導通状態、前記スレーブ部のスイッチトランジスタが導通状態になり、前記マスター部の論理ゲートの入力信号が最終値に確定した後は、前記マスター部のスイッチトランジスタが導通状態、前記スレーブ部のスイッチトランジスタが非導通状態となるように前記制御信号を設定し、前記マスター部のスイッチトランジスタが非導通状態のときに１クロック前の前記スレーブ部の出力を取り出す構成である
ことを特徴とする組合せ論理回路。
【請求項４】
論理ゲート回路を２段以上接続して所定の演算処理を行う論理回路をさらに２段以上接続して構成される組合せ論理回路において、
前記論理回路のうち最終段の論理回路を含む１以上の論理回路の初段の論理ゲート回路は、入力信号の値が確定するまでは前回の演算結果を保持してその保持した値を出力する動作モードと、入力信号の値が確定した後に入力信号に対する演算結果を出力する動作モードを制御信号により切り替える構成であり、
さらに、ＣＭＯＳ構成の論理ゲートの各入力信号線に、前段の論理回路から入力する入力信号または前回の入力信号を保持したラッチ信号を、前記制御信号により選択して出力するセレクタ回路をそれぞれ挿入し、
前記論理ゲートへの入力信号が最終値に確定するまでの間は前記ラッチ信号を前記論理ゲートに入力し、前記論理ゲートの入力信号が最終値に確定した後は前段の論理回路から入力する入力信号を前記論理ゲートに入力するように前記制御信号を設定する構成である
ことを特徴とする組合せ論理回路。
【請求項５】
請求項４に記載の組合せ論理回路において、
前記セレクタ回路は、
前段の論理回路から入力する入力信号と、前記制御信号を反転した信号との論理積をとって出力する第１のＡＮＤ回路と、
前段の論理回路から入力する入力信号と前記制御信号との論理和信号と、当該セレクタ回路の出力信号との論理積をとって出力する第２のＡＮＤ回路とを備え、
前記第１のＡＮＤ回路と前記第２のＡＮＤ回路の論理和出力を当該セレクタ回路の出力とする構成である
ことを特徴とする組合せ論理回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、CamelliaやＡＥＳ(Advanced Encryption Standard)などの共通鍵暗号アルゴリズムの実装回路において、ＳＢＯＸと呼ばれる非線形変換を行う組合せ論理回路に関する。
【背景技術】
【０００２】
CamelliaやＡＥＳなどの共通鍵暗号アルゴリズムでは、主要構成要素であるＳＢＯＸ（SubBytes）部にガロア体ＧＦ(28)の逆元演算が用いられている。ＧＦ(28)の逆元演算は、部分体へ分解した形ＧＦ((24)2) を用いて計算する方法が特許文献１に記載されている。
【０００３】
図７は、ＧＦ(28)の逆元計算を部分体ＧＦ(24)を用いて行う一般的な方法を示す。ここで、ｂH はＧＦ((24)2) 上逆元算への上位４ビット入力、ｂL はＧＦ((24)2) 上逆元算への下位４ビット入力、ｃH はＧＦ((24)2) 上逆元算の上位４ビット出力、ｃL はＧＦ((24)2) 上逆元算の下位４ビット出力、βはＧＦ((24)2) 上規約多項式（β2 ＋β＋γ＝０）の解、γはＧＦ(24)上規約多項式（γ4 ＋γ＋１＝０）の解である。
【０００４】
ところで、電池駆動の携帯端末などに暗号アルゴリズムを実装する場合、処理速度よりも低消費電力への要求が強い。このため、CamelliaやＡＥＳの主要構成要素であるＳＢＯＸ（SubBytes）部の低消費電力化が重要となる。
【０００５】
一般に、ガロア体の元の積算や逆算は、各ブロックがそれぞれ２段論理ゲートで表すことができる。非特許文献１では、図９に示すように、合成体ＧＦ((24)2) を用いてＳＢＯＸ（SubBytes）部全体を３段構成の論理回路に分け、各論理回路をＡＮＤ−ＥＸＯＲ論理ゲートで構成する例を示している。この時、各段のＡＮＤ−ＥＸＯＲの入力信号の到達時刻のばらつきが原因となりハザードが発生する。特に、１段目ＡＮＤ−ＥＸＯＲからの出力信号と、２段目のＧＦ(24)の逆元演算結果であるｘ-1の出力信号との間の伝播遅延時間の差が大きいため、３段目ＡＮＤ−ＥＸＯＲの初段のＡＮＤ回路において入力信号の到達時刻に差が生じ、ハザードの発生を避けられない。
【０００６】
これを回避する方法として、非特許文献１では、１段目ＡＮＤ−ＥＸＯＲと３段目ＡＮＤ−ＥＸＯＲとの間に多段インバータからなる遅延素子を挿入し、信号到達時刻の最適化を行うことにより、両信号の到達時刻を揃えて３段目ＡＮＤ−ＥＸＯＲの初段のＡＮＤ回路におけるハザードの発生を抑制している。
【特許文献１】特表２００１−５６５１６１号
【非特許文献１】森岡澄夫、佐藤証、「共通鍵暗号ＡＥＳの低消費電力論理回路構成法」、情報処理学会セキュリティシンポジウム、vol.44、No.5、2006
【発明の開示】
【発明が解決しようとする課題】
【０００７】
非特許文献１に示す従来技術によるハザードの回避方法は、信号の遅延時間を多段ゲートによる遅延素子により発生させ入力信号の到達時刻を揃える方法を用いている。このような多段ゲートの遅延素子挿入による遅延時間の微調整は一般に難しい。さらに、設計段階において遅延時間の最適化を行ったとしても、製造ばらつきが原因で発生する遅延時間の個体差が要因となり、実際にはハザードの発生を抑えることは難しかった。すなわち、多段の遅延素子の挿入により信号の時間差を調整しハザードの発生を抑える対策は、万全な対策とはいえなかった。
【０００８】
また、入力信号が最終値に確定する時間を調整して合わせたとしても、前段の論理ゲートの出力が最終値に確定するまでの間に過渡的な信号遷移が発生する場合は、やはりハザードの発生を避けることができない。図８は、２入力ＮＡＮＤゲートの場合におけるハザードの発生例を示す。２つの入力信号（入力１、入力２）が最終値に確定する時間は合っているが、それ以前の過渡的な信号遷移が原因でハザードが発生しており、この部分で無駄な電力消費が発生することになる。
【０００９】
さらに、図９に示すように、１段目ＡＮＤ−ＥＸＯＲと３段目ＡＮＤ−ＥＸＯＲとの間に遅延時間調整用の遅延素子を多段に挿入する構成では、これが原因で消費電力がかえって大きくなる問題もあった。
【００１０】
本発明は、ガロア体逆元計算回路などの多段論理ゲートで構成される組合せ論理回路への入力信号に過渡的な遷移が発生する場合でも、ハザードの発生を能動的に除去し、無駄な電力消費を回避することができる組合せ論理回路を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、論理ゲート回路を２段以上接続して所定の演算処理を行う論理回路をさらに２段以上接続して構成される組合せ論理回路において、論理回路のうち最終段の論理回路を含む１以上の論理回路の初段の論理ゲート回路は、入力信号の値が確定するまでは前回の演算結果を保持してその保持した値を出力する動作モードと、入力信号の値が確定した後に入力信号に対する演算結果を出力する動作モードを制御信号により切り替える構成であり、最終段の論理回路へのすべての入力信号の確定が半クロック以内に入るクロック信号を制御信号として用いる構成である。あるいは、各段の論理回路がそれぞれ前段からの入力信号が確定後に入力信号に対する演算結果を出力するように、各段の論理回路の初段の論理ゲート回路を制御する制御信号を設定する構成である。
【００１２】
最終段の論理回路を含む１以上の論理回路の初段の論理ゲート回路は、ＣＭＯＳ構成の論理ゲートが電源およびＧＮＤとスイッチトランジスタを介して接続され、当該スイッチトランジスタを制御信号を用いて電源およびＧＮＤと導通状態または非導通状態に切り替えるマスター部と、ＣＭＯＳ構成の第１のインバータが電源およびＧＮＤとスイッチトランジスタを介して接続され、当該スイッチトランジスタを制御信号を反転させた信号を用いて電源およびＧＮＤと導通状態または非導通状態に切り替えるスレーブ部と、マスター部とスレーブ部とを接続する第２のインバータと、スレーブ部の出力をマスター部の出力に接続する手段とを備え、マスター部の論理ゲートの入力信号が最終値に確定するまでの間は、マスター部のスイッチトランジスタが非導通状態、スレーブ部のスイッチトランジスタが導通状態になり、マスター部の論理ゲートの入力信号が最終値に確定した後は、マスター部のスイッチトランジスタが導通状態、スレーブ部のスイッチトランジスタが非導通状態となるように制御信号を設定し、マスター部のスイッチトランジスタが非導通状態のときに１クロック前のスレーブ部の出力を取り出す構成である。
【００１３】
また、最終段の論理回路を含む１以上の論理回路の初段の論理ゲート回路は、ＣＭＯＳ構成の論理ゲートの各入力信号線に、前段の論理回路から入力する入力信号または前回の入力信号を保持したラッチ信号を、制御信号により選択して出力するセレクタ回路をそれぞれ挿入し、論理ゲートへの入力信号が最終値に確定するまでの間はラッチ信号を論理ゲートに入力し、論理ゲートの入力信号が最終値に確定した後は前段の論理回路から入力する入力信号を論理ゲートに入力するように制御信号を設定する構成である。
【００１４】
セレクタ回路は、前段の論理回路から入力する入力信号と、制御信号を反転した信号との論理積をとって出力する第１のＡＮＤ回路と、前段の論理回路から入力する入力信号と制御信号との論理和信号と、当該セレクタ回路の出力信号との論理積をとって出力する第２のＡＮＤ回路とを備え、第１のＡＮＤ回路と第２のＡＮＤ回路の論理和出力を当該セレクタ回路の出力とする構成である。
【発明の効果】
【００１５】
本発明は、論理ゲート回路を２段以上接続して所定の演算処理を行う論理回路をさらに２段以上接続し、Camellia、ＡＥＳ等の暗号アルゴリズムの主要構成要素であるＳＢＯＸ（SubBytes）部を構成する組合せ論理回路において、論理回路のうち最終段の論理回路を含む１以上の論理回路の初段の論理ゲート回路への入力信号の過渡的な遷移が原因で発生するハザードを能動的に回避することができる。さらに、クロックの前後に信号遷移が発生しない場合は、前クロック時に保持した値を出力できるため電荷の無駄な充放電を避けることができ低消費電力化が可能となる。
【００１６】
従来技術では、遅延素子の微調整といった設計上の難しさがあったが、本発明ではそのような設計上の制約がない。また、遅延素子の製造ばらつきの影響を受けることなく過渡的な信号遷移がある場合でもハザードの発生を回避できる。さらに多段ゲートによる遅延素子を用いないため無駄な電力消費を避けることができる。
【発明を実施するための最良の形態】
【００１７】
（第１の実施形態）
図１は、本発明の組合せ論理回路の第１の実施形態を示す。ここでは、３段のＡＮＤ−ＥＸＯＲ構成のＳＢＯＸ回路において、ハザードの発生頻度が特に高いと予想される３段目ＡＮＤ−ＥＸＯＲ（最終段の論理回路）のＡＮＤ回路（初段の論理ゲート回路）にハザード防止機能を備えた例を示す。なお、ここでは、組合せ論理回路として３段の論理回路を接続し、さらに各段の論理回路は論理ゲート回路としてＡＮＤ回路とＥＸＯＲ回路を接続したＡＮＤ−ＥＸＯＲを例に説明するが、各段の論理回路の構成はこれに限定されるものではなく、ＡＮＤ−ＥＸＯＲ以外の構成であってもよい。
【００１８】
入力信号が１段目ＡＮＤ−ＥＸＯＲに入力され、その演算結果出力が２段目ＡＮＤ−ＥＸＯＲおよび３段目ＡＮＤ−ＥＸＯＲに入力される。３段目ＡＮＤ−ＥＸＯＲのＡＮＤには、１段目ＡＮＤ−ＥＸＯＲおよび２段目ＡＮＤ−ＥＸＯＲの各演算結果出力とともに制御信号が入力する。３段目ＡＮＤ−ＥＸＯＲのＡＮＤ回路は、制御信号により動作モードを切り替え、入力信号の値が確定するまでは前回の演算結果を保持し、その保持した値を出力するとともに、入力信号の値が確定した後に、各入力信号に対する演算結果を出力する。このようなデータ保持機能を有するＡＮＤ回路を用いることにより、ＳＢＯＸ部におけるハザードの発生を回避することができる。
【００１９】
なお、２段目ＡＮＤ−ＥＸＯＲのＧＦ(24)の逆元演算部は、ＡＮＤ−ＥＸＯＲの演算回路の代わりにマスクＲＯＭ等を用いたテーブル参照型であってもよい。
【００２０】
本実施形態におけるデータ保持機能を有するＡＮＤ回路は、制御信号により動作モードが相補的に切り替わるＡＮＤ回路（マスター部）とラッチ回路（スレーブ部）を接続して構成される。
【００２１】
図２は、第１の実施形態における１クロック単位の信号遷移と制御信号のタイミングチャートを示す。制御信号は、２段目ＡＮＤ−ＥＸＯＲの出力すなわち３段目ＡＮＤ−ＥＸＯＲへの入力信号が確定後にＡＮＤ回路（マスター部）が動作するように制御される。なお、暗号（復号）演算における１ラウンドごとのＳＢＯＸ回路の演算は１クロック単位で実行するものとする。
【００２２】
制御信号がＨ時は、ＡＮＤ回路（マスター部）は非アクティブ状態に制御され、１段目出力信号および２段目出力信号が過渡的に遷移したとしてもハザードは発生しない。このときラッチ回路（スレーブ部）は前回確定した１段目出力信号および２段目出力信号の値に対するＡＮＤ演算結果を保持するとともに出力する。また、制御信号は１段目出力信号および２段目出力信号が最終値に確定後にＬに遷移する。このとき、ラッチ回路は非アクティブ状態に制御され、１段目出力信号および２段目出力信号の値に対するＡＮＤ演算結果がＡＮＤ回路の確定値として出力する。３段目ＡＮＤ−ＥＸＯＲへのすべての入力信号の確定が半クロック以内に入るようにクロック周波数を低く設定すれば、クロック信号を制御信号として利用することができる。これにより、従来必要であった遅延素子の微調整といった設計上の制約が不要となる。
【００２３】
このようなタイミングで制御信号を生成することにより、３段目ＡＮＤ−ＥＸＯＲのＡＮＤ回路（マスター部）入力に遅延差がある場合でもハザードの発生を抑制できる。また、いったん確定した出力値は次クロックまで保持されるため、次クロックで前クロックと同じ出力値となる場合は前クロックの値を再利用でき、新たに電荷を充電する必要がないことから低消費電力化を実現できる。なお、３段目ＡＮＤ−ＥＸＯＲのＥＸＯＲ回路への入力信号は、位相の揃った状態でＡＮＤ回路の出力信号が到着するため、ハザードが発生することはない。
【００２４】
（第２の実施形態）
図３は、本発明の組合せ論理回路の第１の実施形態を示す。ここでは、３段のＡＮＤ−ＥＸＯＲ構成のＳＢＯＸ回路において、３段目ＡＮＤ−ＥＸＯＲのＡＮＤ回路のみならず、１段目ＡＮＤ−ＥＸＯＲおよび２段目ＡＮＤ−ＥＸＯＲの各ＡＮＤ回路にもハザード防止機能を備えた例を示す。これにより、３段目だけでなく１段目および２段目のＡＮＤ−ＥＸＯＲのＡＮＤ回路への信号到達にハザードの発生要因となるような過渡的な遷移が存在する場合でもハザードの発生を抑制できる。なお、本実施形態においても、組合せ論理回路として３段の論理回路を接続し、さらに各段の論理回路は論理ゲート回路としてＡＮＤ回路とＥＸＯＲ回路を接続したＡＮＤ−ＥＸＯＲを例を示したが、各段の論理回路の構成はこれに限定されるものではなく、ＡＮＤ−ＥＸＯＲ以外の構成であってもよい。
【００２５】
図４は、第２の実施形態における１クロック単位の信号遷移と制御信号のタイミングチャートを示す。本実施形態では、１段目ＡＮＤ−ＥＸＯＲのＡＮＤ回路への入力信号が確定しない間は１段目ＡＮＤ−ＥＸＯＲのＡＮＤ回路への制御信号をＨに保持し、確定した後にＬに遷移させる。２段目ＡＮＤ−ＥＸＯＲのＡＮＤ回路の制御信号も同様に、２段目ＡＮＤ−ＥＸＯＲのＡＮＤ回路への入力信号が確定しない間は、２段目ＡＮＤ−ＥＸＯＲのＡＮＤ回路への制御信号をＨに保持し、確定した後にＬに遷移させる。３段目ＡＮＤ−ＥＸＯＲにおいても同様である。
【００２６】
（ハザード防止機能を有する論理ゲート回路の構成例１）
図５は、ハザード防止機能を有する論理ゲート回路の構成例１（クロックドＣＭＯＳタイプ）を示す。ここでは図１または図３に示した実施形態の論理回路における初段の論理ゲート回路であるＡＮＤ回路を例に説明するが、論理回路の構成を含めてＡＮＤ回路に限定されるものではない。本ＡＮＤ回路は、アクティブ時に論理ゲートとして動作するマスター部と、スタンバイ時にデータ保持を行うスレーブ部とから構成され、これら２つの動作モードを制御信号により切替える構成である。
【００２７】
マスター部のＮＡＮＤ回路は、電源ＶＤＤとＧＮＤとの間に電源側から順に、並列接続のＰＭＯＳトランジスタＰ１，Ｐ２と、直列接続のＮＭＯＳトランジスタＮ１，Ｎ２を接続して構成される。Ｐ１，Ｎ１に入力信号Ａを入力し、Ｐ２，Ｎ２に入力信号Ｂを入力し、Ｐ１，Ｐ２とＮ１との間から共通の出力Ｚを取り出す。以上のＮＡＮＤ回路と電源ＶＤＤとの間にＰＭＯＳトランジスタＰ３を接続し、ＧＮＤとの間にＮＭＯＳトランジスタＮ３を接続し、制御信号をＰ３のゲートに入力し、インバータ１で反転した制御信号をＮ３のゲートに入力し、制御信号のＨ，Ｌに応じてＰ３，Ｎ３を同時にオフまたはオンに設定する構成である。
【００２８】
マスター部は、入力信号Ａ，Ｂが確定する前の過渡的状態では、制御信号をＨとしてＰ３，Ｎ３をオフとし、入力信号Ａ，Ｂが過渡的に変化しても無駄なスイッチング電流が流れたりグリッチやハザードが発生することがないように制御する。また、入力信号Ａ，Ｂが確定した後に制御信号をＬとし、Ｐ３，Ｎ３をオンにしてマスター部をアクティブにすることによりＮＡＮＤ回路として動作させる。
【００２９】
スレーブ部は、ＰＭＯＳトランジスタＰ４とＮＭＯＳトランジスタＮ４を接続した一般的なＣＭＯＳ構成のインバータと、電源ＶＤＤとの間にＰＭＯＳトランジスタＰ５を接続し、ＧＮＤとの間にＮＭＯＳトランジスタＮ５を接続し、制御信号をＮ５のゲートに入力し、インバータ１で反転した制御信号をＰ５のゲートに入力し、制御信号のＨ，Ｌに応じてＰ５，Ｎ５を同時にオンまたはオフに設定する構成である。
【００３０】
マスター部の出力Ｚは、インバータ２を介してスレーブ部に接続され、スレーブ部の出力はマスター部の出力（インバータ２の入力）に接続されるとともに、ＮＡＮＤ出力として次段に出力される。また、インバータ２の出力は、マスター部の出力Ｚを反転したものであり、本構成例のＡＮＤ回路の出力（Ａ・Ｂ）として次段に出力される。
【００３１】
ここで、スレーブ部は、制御信号によってマスター部と逆相で制御される。すなわち、制御信号がＬで、Ｐ３，Ｎ３がオンでマスター部がアクティブ時は、Ｐ５，Ｎ５がオフでスレーブ部が非アクティブとなり、制御信号がＨで、Ｐ５，Ｎ５がオンでスレーブ部がアクティブ時は、Ｐ３，Ｎ３がオフでマスター部が非アクティブとなる。このような制御により、入力信号に過渡的な遷移が発生するフェーズでは１クロック前の値をインバータ２とスレーブ部で形成されるラッチ部に保持される。これにより、次クロックで同一値が出力される場合には、新規に電荷を充電することなく前クロック時の保持値をそのまま再度出力することができる。このような状況は、例えば２入力ＮＡＮＤの例では、入力（Ａ，Ｂ）が（Ｈ，Ｌ）から（Ｌ，Ｈ）に遷移する場合に発生する。この場合、入力信号が変化しても出力信号は次クロックでもＨのままである。マスター部がアクティブ時は、スレーブ部は非アクティブ状態となりラッチは開放され、マスター部の論理値がそのまま出力される。
【００３２】
このように、ＡＮＤ回路は、入力信号の値が確定するまでは前回の演算結果を保持し、その保持した値を出力するとともに、入力信号の値が確定した後に、各入力信号に対する演算結果を出力することにより、前段論理回路出力に過渡的な遷移がある場合でもハザードを回避できる。
【００３３】
（ハザード防止機能を有する論理ゲート回路の構成例２）
図６は、ハザード防止機能を有する論理ゲート回路の構成例２（ラッチ付セレクタタイプ）を示す。ここでは図１または図３に示した実施形態の論理回路における初段の論理ゲート回路であるＡＮＤ回路を例に説明するが、論理回路の構成を含めてＡＮＤ回路に限定されるものではない。本ＡＮＤ回路は、通常のＡＮＤ回路２０と、その入力信号線に、前段の論理回路から入力する入力信号または前回の入力信号を保持したラッチ信号を制御信号により選択して出力するセレクタ回路１０−１，１０−２から構成される。セレクタ回路１０−１，１０−２は、ＡＮＤ回路２０への入力信号の各々（図６の例ではＡ, Ｂ）に対して用意される。
【００３４】
セレクタ回路１０は、制御信号を反転するインバータ１１と、反転制御信号と前段論理回路出力信号Ａ（またはＢ）の論理積をとるＡＮＤ回路１２と、制御信号と前段論理回路出力信号Ａ（またはＢ）の論理和をとるＯＲ回路１３と、ＯＲ回路出力と当該セレクタ回路の出力信号との論理積をとるＡＮＤ回路１４と、これら２つのＡＮＤ回路１２，１４の出力の論理和をとり、当該セレクタ回路の出力信号とするＯＲ回路１５により構成される。これにより、制御信号がＨ時は前段論理回路出力を遮断し、ラッチが形成されて前クロックの値が保持される。この状態では前段論理回路出力が遷移してもその影響は遮断されハザードの発生を回避できる。制御信号がＬ時はラッチが開放され、値が最終値に確定した前段論理回路出力が後段に伝播する。
【００３５】
ここで、ＯＲ回路１３がなく、制御信号がＡＮＤ回路１４に直接入力される構成において、制御信号がＨ時に前段論理回路出力がＨでセレクタ回路のラッチがＨを保持している状態で、制御信号がＬに遷移する場合を考える。まずＡＮＤ回路１４の出力がＬとなる。この時ＡＮＤ回路１２の出力はまだＬである。このためＯＲ回路１５の出力がＬとなる。この後、インバータ１１の遅延分遅れてＡＮＤ回路１２の出力がＨとなり、ＯＲ回路１５の出力がＨに遷移する。このように、セレクタ単体では、Ｈ→Ｌ→Ｈと過渡的な遷移が発生してしまう。
【００３６】
これを回避するためにＡＮＤ回路１４に入力する制御信号を、ＯＲ回路１３で前段論理回路出力との論理和をとって生成する。このようにすると、上に述べたような過渡的な遷移を回避することができる。これを確認するために、上と同じ状態遷移を考える。すなわち、制御信号がＨ時に前段論理回路出力がＨでセレクタ回路のラッチがＨを保持している状態で、制御信号がＬに遷移する場合を考える。前段論理回路出力と制御信号との論理和を制御信号としているので、ＡＮＤ回路１４の出力はＨのまま変化しないため、ＯＲ回路１５の出力もＨのまま変化しない。次に、再び制御信号がＨとなる場合を考える。この状態では、前段論理回路出力に過渡的な遷移が発生しても、制御信号（Ｈ）との論理和をとるため、ＡＮＤ回路１４の出力はＨのままであり、ＯＲ回路１５の出力もＨのまま変化しない。これ以外のＨ保持→Ｌ保持、Ｌ保持→Ｌ保持、Ｌ保持→Ｈ保持の遷移パターンについても、Ｈ保持→Ｈ保持の場合同様、Ｈ→Ｌ→Ｈ、Ｌ→Ｈ→Ｌなどの過渡的な状態遷移が発生することはない。
【００３７】
このように、セレクタ回路１０は、前段論理回路の出力Ａ，Ｂとセレクタ出力のフィードバック信号を制御信号で選択する構成である。前段論理回路出力に過渡的な遷移がある間はフィードバック信号を、そして前段論理回路出力が最終値に確定したならば、この信号を選択するよう制御信号を切り替えることにより、前段論理回路出力に過渡的な遷移がある場合でもハザードを回避できる。
【図面の簡単な説明】
【００３８】
【図１】本発明の組合せ論理回路の第１の実施形態を示す図。
【図２】第１の実施形態における１クロック単位の信号遷移と制御信号のタイミングチャート。
【図３】本発明の組合せ論理回路の第２の実施形態を示す図。
【図４】第２の実施形態における１クロック単位の信号遷移と制御信号のタイミングチャート。
【図５】ハザード防止機能を有する論理ゲート回路の構成例１（クロックドＣＭＯＳタイプ）を示す図。
【図６】ハザード防止機能を有する論理ゲート回路の構成例２（ラッチ付セレクタタイプ）を示す図。
【図７】ＧＦ(28)の逆元計算を部分体ＧＦ(24)を用いて行う一般的な方法を示す図。
【図８】２入力ＮＡＮＤ回路のハザードの発生例を示す図。
【図９】ＡＥＳのＡＢＯＸ回路においてハザード発生を抑える従来回路を示す図。
【符号の説明】
【００３９】
Ｐ１〜Ｐ５  ＰＭＯＳトランジスタ
Ｎ１〜Ｎ５  ＮＭＯＳトランジスタ
１，２，１１  インバータ
１０  セレクタ回路
１２，１４，２０  ＡＮＤ回路
１３，１５  ＯＲ回路
【図１】
0005133125.tif 000002
【図２】
0005133125.tif 000003
【図３】
0005133125.tif 000004
【図４】
0005133125.tif 000005
【図５】
0005133125.tif 000006
【図６】
0005133125.tif 000007
【図７】
0005133125.tif 000008
【図８】
0005133125.tif 000009
【図９】
0005133125.tif 000010