(57)【要約】      （修正有）【課題】グリッチ除去回路で除去しきれないグリッチを除去可能とし、無駄な消費電力の増大を防ぐ論理回路を実現する。【解決手段】入力データとクロック信号をフリップフロップ１及びタイミング生成回路６に入力した論理回路１００で、論理回路１００の組合せ回路２との間に、グリッチを除去するグリッチ除去回路４と、タイミング生成回路６の出力が入力され、グリッチ除去回路４で除去されないグリッチを除去するラッチ回路８とで構成されている。【選択図】図１
2015095786.tif 000002
【特許請求の範囲】
【請求項１】
複数の組合せ回路が配置されている論理回路であって、
組合せ回路の間に、グリッチを除去するグリッチ除去回路と、前記グリッチ除去回路で除去されないグリッチを除去するラッチ回路とが配置されていることを特徴とする論理回路。
【請求項２】
前記ラッチ回路が前記グリッチ除去回路よりも後段に配置されていることを特徴とする請求項１に記載の論理回路。
【請求項３】
前記グリッチ除去回路と前記ラッチ回路とが、それぞれ、異なる組合せ回路の間に配置されていることを特徴とする請求項１に記載の論理回路。
【請求項４】
任意数のグリッチ除去回路と任意数のラッチ回路とが、それぞれ、１クロックサイクル当たりの前記複数の組合せ回路における信号遷移回数に基づいて決定された位置に配置されていることを特徴とする請求項１に記載の論理回路。
【請求項５】
グリッチを除去するグリッチ除去回路と、前記グリッチ除去回路で除去されないグリッチを除去するラッチ回路とを、それぞれ、論理回路のネットリストの任意の信号線に設定し、前記グリッチ除去回路のグリッチ除去幅の値を設定するシミュレーション設定部と、
前記シミュレーション設定部により前記グリッチ除去回路と前記ラッチ回路とが設定されたネットリストと、前記シミュレーション設定部により設定された前記グリッチ除去幅の値とを用いて論理シミュレーションを実行し、１クロックサイクル当たりの信号変化回数を算出するシミュレーション実行部と、
前記シミュレーション実行部により算出された信号変化回数に基づき、前記グリッチ除去回路と前記ラッチ回路とを配置する前記論理回路内の位置を決定し、前記論理回路での前記グリッチ除去回路のグリッチ除去幅の値を決定する配置除去幅決定部とを有することを特徴とする論理回路設計支援装置。
【請求項６】
前記シミュレーション設定部は、
前記シミュレーション実行部により論理シミュレーションが実行される度に、前記グリッチ除去回路が設定される信号線、前記ラッチ回路が設定される信号線、前記グリッチ除去幅の値の組合せを変更し、
前記シミュレーション実行部は、
前記シミュレーション設定部により前記グリッチ除去回路が設定される信号線、前記ラッチ回路が設定される信号線、前記グリッチ除去幅の値の組合せが変更される度に、変更後の組合せが反映された論理シミュレーションを実行し、１クロックサイクル当たりの信号変化回数を算出し、
前記配置除去幅決定部は、
前記シミュレーション実行部により複数回の論理シミュレーションが実行された後に、信号変化回数が最小の論理シミュレーションに用いられたネットリストにおいて前記グリッチ除去回路が設定されている信号線及び前記ラッチ回路が設定されている信号線に相当する前記論理回路内の位置を、前記グリッチ除去回路と前記ラッチ回路とを配置する前記論理回路内の位置とし、信号変化回数が最小の論理シミュレーションで用いられたグリッチ除去幅の値を、前記論理回路での前記グリッチ除去回路のグリッチ除去幅の値とすることを特徴とする請求項５に記載の論理回路設計支援装置。
【請求項７】
前記シミュレーション実行部は、
前記論理回路で発生する遅延時間の仮想値の代わりに、前記遅延時間の仮想値にランダムな係数を乗算した値を用いて、論理シミュレーションを実行することを特徴とする請求項５に記載の論理回路設計支援装置。
【請求項８】
コンピュータが、グリッチを除去するグリッチ除去回路と、前記グリッチ除去回路で除去されないグリッチを除去するラッチ回路とを、それぞれ、論理回路のネットリストの任意の信号線に設定し、前記グリッチ除去回路のグリッチ除去幅の値を設定するシミュレーション設定ステップと、
前記コンピュータが、前記シミュレーション設定ステップにより前記グリッチ除去回路と前記ラッチ回路とが設定されたネットリストと、前記シミュレーション設定ステップにより設定された前記グリッチ除去幅の値とを用いて論理シミュレーションを実行し、１クロックサイクル当たりの信号変化回数を算出するシミュレーション実行ステップと、
前記コンピュータが、前記シミュレーション実行ステップにより算出された信号変化回数に基づき、前記グリッチ除去回路と前記ラッチ回路とを配置する前記論理回路内の位置を決定し、前記論理回路での前記グリッチ除去回路のグリッチ除去幅の値を決定する配置除去幅決定ステップとを有することを特徴とする論理回路設計支援方法。
【請求項９】
グリッチを除去するグリッチ除去回路と、前記グリッチ除去回路で除去されないグリッチを除去するラッチ回路とを、それぞれ、論理回路のネットリストの任意の信号線に設定し、前記グリッチ除去回路のグリッチ除去幅の値を設定するシミュレーション設定ステップと、
前記シミュレーション設定ステップにより前記グリッチ除去回路と前記ラッチ回路とが設定されたネットリストと、前記シミュレーション設定ステップにより設定された前記グリッチ除去幅の値とを用いて論理シミュレーションを実行し、１クロックサイクル当たりの信号変化回数を算出するシミュレーション実行ステップと、
前記シミュレーション実行ステップにより算出された信号変化回数に基づき、前記グリッチ除去回路と前記ラッチ回路とを配置する前記論理回路内の位置を決定し、前記論理回路での前記グリッチ除去回路のグリッチ除去幅の値を決定する配置除去幅決定ステップとをコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理回路においてグリッチの発生を抑制する技術に関する。
【背景技術】
【０００２】
情報通信技術の拡大とともに、情報セキュリティに対する要求もますます高まっている。
このような中、近年低レイテンシ暗号のような特定用途向けの暗号アルゴリズムの提案が続いている（非特許文献１）。
一般に、低レイテンシ暗号はシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）内部の暗号回路としてハードウェア実装され、少ないクロックサイクル数（例えば、１クロックサイクル）で暗号化または復号を行う。
一方、低レイテンシ暗号の主要な適用先として、組み込み分野で用いられるシステムＬＳＩが挙げられるが、ここでは低消費電力化が強く求められる。
このため、低レイテンシ暗号の暗号回路も消費電力を抑えた実装が必要である。
ＣＭＯＳ回路の消費電力は、一般に次式で評価できる（非特許文献２）。
Ｐｔｏｔａｌ
＝ｐｔ・ＣＬ・Ｖｄｄ２・ｆｃｌｋ＋ｐｔ・Ｉｓｃ・Ｖｄｄ・ｆｃｌｋ＋Ｉｌｅａｋ・Ｖｄｄ    式（１）
ここで、ＣＬは負荷容量、ｆｃｌｋはクロック周波数、Ｖｄｄは電源電圧、ｐｔは信号の遷移確率、Ｉｓｃは貫通電流、Ｉｌｅａｋは漏れ電流である。
これらのパラメータの値を小さくすることが、ＣＭＯＳ回路の消費電力の低減につながるが、このうち、論理設計の段階で設計者が制御可能なパラメータは主に信号の遷移確率である。
ある信号の遷移確率は、当該信号の単位時間当たりの変化回数である。
【０００３】
ところで、論理回路においては、図１２（ｃ）に示すようなグリッチが発生することがある。
図１２（ｃ）の信号Ａは、図１２（ａ）の出力信号Ａを表し、図１２（ｃ）の信号Ｂは、図１２（ａ）の出力信号Ｂを表し、図１２（ｃ）の信号Ｃは、図１２（ａ）の出力信号Ｃを表す。
グリッチは、信号の時間差に起因して発生する、機能的には無駄な信号変化である。
従って、グリッチを低減することは論理回路の低消費電力化に有効である。
ある信号で発生したグリッチは、その信号を入力とする他の論理ゲートの出力にも伝搬することで、無駄な信号変化回数を増大する可能性がある。
低レイテンシ暗号は、少ないクロックサイクル数で暗号化または復号を行うため、１クロックサイクル内の論理段数が多くなる。
また、データ攪拌を繰り返すという暗号の性質上、暗号回路の１ビットの信号は下流の多くの信号に関与する。
これらのことから、低レイテンシ暗号の暗号回路では、タイミングパスの上流で発生したグリッチが論理段数の深い下流まで伝搬することで、他の論理回路と比較すると、グリッチによる無駄な信号変化回数が非常に多くなる可能性がある。
従って、消費電力化のためには、グリッチの抑制が特に重要である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開昭６３−１６９１１８号公報
【特許文献２】特開平０９−０８３３１７号公報
【特許文献３】特開２００８−１３６１９２号公報
【特許文献４】特開平０３−０４４１０７号公報
【特許文献５】特許第４６５１６２０号
【非特許文献】
【０００５】
【非特許文献１】Ｊｕｌｉａ  Ｂｏｒｇｈｏ他，“ＰＲＩＮＣＥ  −  Ａ  Ｌｏｗ−ｌａｔｅｎｃｙ  Ｂｌｏｃｋ  Ｃｉｐｈｅｒ  ｆｏｒ  Ｐｅｒｖａｓｉｖｅ  Ｃｏｍｐｕｔｉｎｇ  Ａｐｐｌｉｃａｔｉｏｎｓ  （Ｆｕｌｌ  ｖｅｒｓｉｏｎ），”  ＩＡＣＲ  Ｃｒｙｐｔｏｌｏｇｙ  ｅＰｒｉｎｔ  Ａｒｃｈｉｖｅ  ２０１２／５２９  （２０１２）．
【非特許文献２】Ａ．Ｐ．  Ｃｈａｎｄｒａｋａｓａｎ，  Ｓ．  Ｓｈｅｎｇ  ａｎｄ  Ｒ．Ｗ．  Ｂｒｏｄｅｒｓｅｎ，  “Ｌｏｗ  Ｐｏｗｅｒ  Ｄｉｇｉｔａｌ  ＣＭＯＳ  Ｄｅｓｉｇｎ，”  ＩＥＥＥ  Ｊｏｕｒｎａｌ  ｏｆ  Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ，  Ｖｏｌ．２７，  Ｎ０．４．  ｐｐ．  ４７３−４８４，  １９９２．
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来の通常の論理回路５００の概要を図７に示す。
図７は、システムＬＳＩ全体の中から、１クロックサイクル分の処理を行う回路部分を抜き出して示したもので、組合せ回路２をフリップフロップ１、３が挟み込む構成となっている。
あるクロックサイクルの入力データは、クロックの立ち上がりエッジでフリップフロップ１に格納されるとともに、組合せ回路２に入力される。
組合せ回路２では全ての入力データに対して論理演算処理を行い、その演算結果は次のクロックの立ち上がりエッジでフリップフロップ３に格納され、論理回路５００の出力データとなる。
システムＬＳＩには、図７のような回路部分が多数含まれ、それらの幾つかは互いに接続されて、より大きな回路ブロックを形成する。
ある回路部分の出力データは、他の回路部分の入力データとなり、逆も同様である。
図７では省略しているが、フリップフロップ１、３は１ビット以上のフリップフロップ群である（以下同様）。
フリップフロップ３の出力が、組合せ回路２の入力となることもあり、フリップフロップ１、３で、物理的に同じフリップフロップを共有する場合もある（さらに、フリップフロップ１、３を介さずに組合せ回路２に入出力される非同期信号が存在することもあるが、本発明の本質には関係しないため、本明細書では取り上げない）。
【０００７】
図７の論理回路５００において、前述のように、組合せ回路２の中の論理段数が多いと、回路の上流で発生したグリッチが下流まで伝搬して、無駄な信号遷移（即ち、無駄な消費電力）が増大するという課題がある。
この課題を解決するためには、論理回路５００内のある論理ゲートの出力で発生したグリッチを除去し、そのグリッチの伝搬を抑制することが有効である。
このような従来技術として、例えば、特許文献１−４のグリッチ除去回路がある。
【０００８】
図８にグリッチ除去回路の例とその機能を示す。
図８（ａ）〜（ｃ）の３つのグリッチ除去回路の詳細な動作の説明は省略するが、図８（ｄ）に示すように、いずれも入力で現れた幅がΔ未満のグリッチが出力に伝搬しないようにする。
幅がΔ以上のグリッチは、幅がおおよそΔだけ短いグリッチとして、出力に伝搬する。
これらを図９のように、グリッチ低減論理回路６００内の信号線上に挿入することで、論理回路内のグリッチを低減したグリッチ低減論理回路６００を得ることができる。
【０００９】
本発明は、図９のような従来のグリッチ低減論理回路６００における以下の２つの課題を解決することを目的とする。
【００１０】
課題１：
まず、グリッチ除去回路の効果を図１０を用いて説明する。
図１０（ａ）のグリッチ低減論理回路６００は、１クロックサイクル分の論理回路を、直列に接続される複数の組合せ回路２に分割し、各組合せ回路２間にグリッチ除去回路４を挿入したものである。
簡単のために、全ての組合せ回路２は同じ回路（組合せ回路Ａ）とし、それらがＮ（Ｎ≧２）個直列につながっているものとする。
図１０（ｂ）は、グリッチ除去回路４を挿入する場合としない場合について、Ｎ個の組合せ回路Ａのそれぞれの中での信号変化回数を示したもので、図の横軸が組合せ回路Ａの段数、縦軸が組合せ回路Ａの中での信号変化回数である。
グリッチ除去回路４を挿入した方が、どの段数の組合せ回路Ａも信号変化回数が減少し、従って、グリッチ低減論理回路６００全体の消費電力も減少する。
一方、どちらも、同じ組合せ回路Ａでありながら、それが置かれる箇所がタイミングパスの下流になるほど、信号変化回数が増加する。
この主な理由は、上流の組合せ回路Ａで除去しきれないグリッチが、下流の組合せ回路Ａに伝搬して積算されていくためである。
１クロックサイクル分の論理回路の段数が増えるほど、上流で発生するグリッチの影響は大きくなり、グリッチ除去回路４だけでは十分な低消費電力化が実現できない可能性がある。
【００１１】
課題２：
次の問題は、グリッチ除去回路の挿入箇所に関するものである。
図８のグリッチ除去回路では、グリッチ除去回路の出力が変化する際、入力の変化に対しておおよそΔの遅延時間が加わることに注意が必要である。
即ち、グリッチ除去回路を大量に論理回路に挿入すると、遅延時間が積算されて処理性能低下につながる。
従って、挿入可能なグリッチ除去回路の数は、クロック周波数によって制限される。
また、グリッチ除去回路を論理回路中の全ての信号線上に挿入することは、回路規模の観点からも現実的ではない。
限られた数のグリッチ除去回路を、論理回路中のどの信号線に挿入するか、によって論理回路全体での消費電力低減の度合いは変わる。
さらに、Δの値をいくらにするか、によっても消費電力低減の度合いは変わる。
実際の論理回路設計においては、設計のできるだけ上流段階で、消費電力低減の度合いの高い挿入箇所やΔの値を決める必要がある。
しかしながら、特許文献１−４は、グリッチ除去回路の実現方法を提供しているが、その挿入箇所やΔの値の決め方は提供されない。
【００１２】
本発明は、上記２つの課題を解決することを主な目的とし、グリッチ除去回路で除去しきれないグリッチを除去可能な論理回路を実現することを主な目的とする。
【課題を解決するための手段】
【００１３】
本発明に係る論理回路は、
複数の組合せ回路が配置されている論理回路であって、
組合せ回路の間に、グリッチを除去するグリッチ除去回路と、前記グリッチ除去回路で除去されないグリッチを除去するラッチ回路とが配置されていることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、ラッチ回路により、グリッチ除去回路で除去されないグリッチを除去することができる。
【図面の簡単な説明】
【００１５】
【図１】実施の形態１に係る論理回路の例を示す図。
【図２】実施の形態１に係るタイミング生成回路とイネーブル信号の例を示す図。
【図３】実施の形態１に係る論理回路の効果を示す図。
【図４】実施の形態１に係る論理回路設計支援装置の構成例を示す図。
【図５】実施の形態１に係る概略設計フローを示す図。
【図６】実施の形態１に係る論理回路設計支援装置のハードウェア構成例を示す図。
【図７】従来の論理回路を示す図。
【図８】グリッチ除去回路とその機能を示す図。
【図９】従来のグリッチ低減論理回路を示す図。
【図１０】従来のグリッチ低減論理回路の効果を示す図。
【図１１】ラッチ回路の動作を示す図。
【図１２】遅延条件による回路の挙動の違いを示す図。
【発明を実施するための形態】
【００１６】
まず、以下の実施の形態の基本アイディアを説明する。
以下の実施の形態では、先に示した課題１及び課題２を解決することを目的とし、グリッチ低減の度合いが高くなるように、限られた数のグリッチ除去回路の挿入箇所とグリッチ除去幅Δの値を決定し、かつ、グリッチ除去回路で除去しきれないグリッチの累積を抑制した論理回路、及びその設計方法を説明する。
【００１７】
先に示した課題１のグリッチの累積は、論理回路中にラッチ回路を挿入することで解決する。
図１１に示すように、ラッチ回路はイネーブル信号が有意な期間は入力データを出力データに伝えるが、イネーブル信号が非有意な期間は、入力データの値に関わらず、出力データの値を保持するため、入力信号のグリッチを遮断することができる。
即ち、グリッチ除去回路で除去しきれずに累積していくグリッチも、ラッチ回路を挿入して、そのイネーブル信号をグリッチよりも遅いタイミングで有意にすれば、ラッチ回路の下流に一切伝搬しないようにすることができる。
ここで、全てのグリッチ除去回路をラッチ回路に置き換えれば良いようにも思えるかも知れないが、多くのイネーブル信号のタイミングを制御するのは容易ではないため、ラッチ回路の挿入箇所をあまり多くすることはできない。
従って、グリッチ除去回路とラッチ回路が互いに補完し合って、論理回路中のグリッチを低減する。
【００１８】
先に示した課題２、即ち、消費電力を低減するための、グリッチ除去回路の適切な挿入箇所やグリッチ除去幅Δの値を決める手段としては、設計の上流段階でそれらを変えながら消費電力を見積もることを繰り返し、最も消費電力が小さくなるような挿入箇所とグリッチ除去幅Δの値を選択するようにする。
さて、ここまでの記述では、論理回路内の信号変化回数と消費電力をほとんど同じものとして扱っていた。
実際には、信号変化回数は式（１）の右辺の第１項のみに関わるものであるし、第１項の不可容量ＣＬは設計の下流段階（配置配線）以降に決まり、かつ信号線毎に異なるので、信号変化回数だけでは消費電力は決まらない。
しかし、信号変化回数と消費電力が高い相関を持つことは間違いなく、設計の上流段階で消費電力の大小を評価するために信号変化回数を指標とすることは有効である。
従って、これ以降の記述でも信号変化回数を消費電力に相当する量とみなすことにする。
同様の考え方に基づいて、設計の上流段階で論理回路の消費電力を見積もる従来技術として特許文献５がある。
本明細書では、この特許文献５の技術を利用して、課題２を解決し、グリッチ除去回路やラッチ回路の最適な挿入箇所及びグリッチ除去幅Δの値を決定する。
【００１９】
実施の形態１．
図１は、本実施の形態に係る論理回路１００の構成例を示す。
図９の従来のグリッチ低減論理回路６００と比較すると、図１の論理回路１００では、ラッチ回路８とそのイネーブル信号７を制御するタイミング生成回路６が追加されている。
ラッチ回路８の動作と役割は前述の通りである。
ラッチ回路８は、グリッチ除去回路４よりも後段に配置されており、前段のグリッチ除去回路４で除去しきれないグリッチを除去する。
タイミング生成回路６の例を図２に示す。
図２の例では、タイミング生成回路６は、それぞれの位相が相違する５種類のイネーブル信号を出力することができる。
各イネーブル信号は、異なるラッチ回路に入力される。
なお、フリップフロップ１、３と同様に、グリッチ除去回路４、ラッチ回路８も１ビット以上を含む。
【００２０】
図１の論理回路１００による低消費電力化の効果を、図１０と対応させて示したものが図３である。
図３（ａ）では、論理回路１００のタイミングパス上の２か所にラッチ回路８を挿入した例を示している。
ラッチ回路８よりも上流のグリッチがラッチ回路８の下流に伝搬しないため、累積したグリッチがラッチ回路８の挿入箇所でクリアされることになり、段数毎の組合せ回路Ａの信号遷移回数は、図３（ｂ）の太線のようになる。
この結果、論理回路全体の信号変化回数は従来のグリッチ低減論理回路６００よりも少なくなる。
【００２１】
図４は、本実施の形態に係る論理回路設計支援装置２００の構成例を示す。
論理回路設計支援装置２００は、グリッチ除去回路４とラッチ回路８とを配置する論理回路１００内の位置を決定し、また、論理回路１００でのグリッチ除去回路４のグリッチ除去幅Δの値を決定する。
【００２２】
図４において、ネットリスト作成部２０１は、論理回路１００のネットリストを作成する。
【００２３】
シミュレーション設定部２０２は、グリッチ除去回路４、ラッチ回路８及びタイミング生成回路６を、それぞれ、論理回路１００のネットリストの任意の信号線に設定し、グリッチ除去幅Δの値を設定する。
【００２４】
シミュレーション実行部２０３は、シミュレーション設定部２０２によりグリッチ除去回路４、ラッチ回路８及びタイミング生成回路６が設定されたネットリストと、シミュレーション設定部２０２により設定されたグリッチ除去幅Δの値とを用いて論理シミュレーションを実行し、１クロックサイクル当たりの信号変化回数を算出する。
【００２５】
シミュレーション結果記憶部２０４は、論理シミュレーションに用いられたネットリストとグリッチ除去幅Δの値と、論理シミュレーションにより算出された信号変化回数とを記憶する。
シミュレーション結果記憶部２０４は、論理シミュレーションに用いられたネットリストを記憶する代わりに、グリッチ除去回路４、ラッチ回路８及びタイミング生成回路６の位置を記憶するようにしてもよい。
【００２６】
配置除去幅決定部２０５は、シミュレーション実行部２０３により算出された信号変化回数に基づき、グリッチ除去回路４とラッチ回路８とを配置する論理回路１００内の位置を決定し、論理回路１００でのグリッチ除去幅Δの値のグリッチ除去幅の値を決定する。
【００２７】
制御部２０６は、ネットリスト作成部２０１、シミュレーション設定部２０２、シミュレーション実行部２０３、シミュレーション結果記憶部２０４、配置除去幅決定部２０５のそれぞれの動作を制御する。
【００２８】
図５は、論理回路設計支援装置２００の動作例を示すフローチャートである。
以下、図５の各ステップについて説明する。
【００２９】
論理回路設計支援装置２００のユーザが、実現したい論理を実行する論理回路１００を通常通り設計し、ネットリスト作成部２０１が、その論理回路１００のネットリストを生成する（Ｓ５０１）。
【００３０】
次に、シミュレーション設定部２０２が、グリッチ除去回路４とラッチ回路８、及びタイミング生成回路６をネットリスト上の任意の信号線に挿入する（Ｓ５０２）。
シミュレーション設定部２０２は、ラッチ回路８にはタイミング生成回路６が生成するイネーブル信号７を接続する。
ここで、論理回路１００に挿入するグリッチ除去回路４やラッチ回路８の数は、クロック周波数やイネーブル信号の数の制約によって、予め決められているものとする。
また、シミュレーション設定部２０２は、シミュレーションに用いるグリッチ除去幅Δの値を設定する。
【００３１】
次に、シミュレーション実行部２０３が、Ｓ５０２で得られたネットリストを使って論理シミュレーションを行い、特許文献５で示された技術を用いて、ネットリスト中のクロックサイクル毎の信号変化回数を評価する（Ｓ５０３）。
なお、論理シミュレーションに用いられたネットリストとグリッチ除去幅Δの値、論理シミュレーション結果である１クロックサイクル当たりの信号変化回数は、シミュレーション結果記憶部２０４に記憶される。
【００３２】
グリッチ除去回路４の挿入箇所とグリッチ除去幅Δの値及びラッチ回路８の挿入箇所（これらの候補は予め決定しておく）の全ての組合せで信号変化回数の評価が完了したら（Ｓ５０４でＹＥＳ）、Ｓ５０６に進み、評価が完了していなければ（Ｓ５０４でＮＯ）、Ｓ５０５に進む。
【００３３】
Ｓ５０４でＮＯの場合は、シミュレーション設定部２０２が、グリッチ除去回路４の挿入箇所とグリッチ除去幅Δの値及びラッチ回路８の挿入箇所を次の候補に変えて（Ｓ５０５）、シミュレーション実行部２０３が、変更後のグリッチ除去回路４の挿入箇所とグリッチ除去幅Δの値及びラッチ回路８の挿入箇所に対する論理シミュレーションを行う（Ｓ５０３）。
【００３４】
Ｓ５０４でＹＥＳの場合は、配置除去幅決定部２０５が、グリッチ除去回路４の挿入箇所とグリッチ除去幅Δの値及びラッチ回路８の挿入箇所の全ての候補の信号変化回数を比較する（Ｓ５０６）。
【００３５】
配置除去幅決定部２０５は、最も信号変化回数が小さい候補のグリッチ除去回路４の挿入箇所とグリッチ除去幅Δの値及びラッチ回路８の挿入箇所を採用する。
【００３６】
このように、本実施の形態に係る論理回路では、１クロックサイクルあたりの論理回路全体の信号遷移回数が最少となるように、論理回路のネットリスト内の異なる信号線上にグリッチ除去回路及びラッチ回路が挿入されている。
【００３７】
また、本実施の形態に係る論理回路設計支援装置は、論理回路のネットリストのタイミングパス上にグリッチ除去回路を挿入するステップと、同パス上にラッチ回路を挿入するステップと、それらグリッチ除去回路及びラッチ回路を挿入後の論理回路全体の１クロックサイクルあたりの信号遷移回数を評価するステップを備え、当該信号遷移回数が最少となるようにグリッチ除去回路及びラッチ回路の挿入箇所を移動・調整する。
【００３８】
そして、本実施の形態は、低レイテンシ暗号のように、１クロックサイクル内の論理段数が多い論理を実行する論理回路において、特に有効であるが、それ以外の任意の論理回路に適用可能であり、論理回路の消費電力を低減することができる。
【００３９】
実施の形態２．
実施の形態１では、グリッチ除去回路とラッチ回路を論理回路に挿入したが、論理段数があまり多くない場合や、利用可能なグリッチ除去回路が用意されていない場合は、ラッチ回路のみを挿入してもよい。
対応する論理回路の図は、図１からグリッチ除去回路４を全て除いたものになる。
この場合も、ラッチ回路用のタイミング生成回路や概略設計フローは、図２や図５と同様である。
【００４０】
実施の形態３．
実施の形態１のように、設計の上流段階で特許文献５の技術を利用して、論理回路の信号変化回数を評価する際、論理シミュレーションで使用する遅延情報として、通常は、論理合成ツールが生成する信号毎の仮想遅延情報を用いる。
図１２（ａ）のような論理回路では、２つの同じ論理ゲート（２ＡＮＤ）の出力信号ＡとＢが、ともにファンアウト１で同じ論理ゲートに接続されている。
このような場合、ＡとＢの仮想遅延情報は同じ値となり、ＡとＢが図１２（ｂ）のような変化をした場合、信号Ｃの変化回数は０と評価される。
しかし、実際の回路では、ＡとＢの遅延が完全に等しくなることはまれで、大抵は図１２（ｃ）のように信号Ｃにグリッチが発生する。
この時、信号Ｃの変化回数は２となる。
即ち、論理合成ツールが生成する信号毎の仮想遅延情報をそのまま使用すると、配置配線などによって生じる時間差に起因するグリッチが評価できないことがある。
本実施の形態では、この問題を解決する。
【００４１】
論理合成ツールが生成する仮想遅延情報は、論理回路中の信号とその遅延時間を組にした遅延情報ファイルとして与えられる。
実施の形態３では、この遅延情報ファイルの信号毎の遅延時間に一定範囲（例えば、０．９５から１．０５）の異なるランダムな係数を乗した結果を、もとの遅延時間に置き換えた新たな遅延情報ファイルを生成し、図５の信号変化回数評価で使用するものである。
つまり、本実施の形態では、シミュレーション実行部２０３は、論理合成ツールが提供する遅延時間の仮想値の代わりに、遅延時間の仮想値にランダムな係数を乗算した値を用いて、論理シミュレーションを実行する。
これにより、上記の図１２の例では、信号Ａ、Ｂの遅延時間は異なる値となり、信号Ｃのグリッチが評価可能となる。
【００４２】
このように、本実施の形態では、論理合成ツールが生成した信号毎の仮想遅延情報にランダムな係数を乗じたものを新たな仮想遅延情報としている。
【００４３】
最後に、実施の形態１〜３に示した論理回路設計支援装置２００のハードウェア構成例を図６を参照して説明する。
論理回路設計支援装置２００はコンピュータであり、論理回路設計支援装置２００の各要素をプログラムで実現することができる。
論理回路設計支援装置２００のハードウェア構成としては、バスに、演算装置９０１、外部記憶装置９０２、主記憶装置９０３、通信装置９０４、入出力装置９０５が接続されている。
【００４４】
演算装置９０１は、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
外部記憶装置９０２は、例えばＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリ、ハードディスク装置である。
主記憶装置９０３は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
通信装置９０４は、例えば、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
入出力装置９０５は、例えばマウス、キーボード、ディスプレイ装置等である。
【００４５】
プログラムは、通常は外部記憶装置９０２に記憶されており、主記憶装置９０３にロードされた状態で、順次演算装置９０１に読み込まれ、実行される。
プログラムは、図４に示す「〜部」（シミュレーション結果記憶部２０４を除く、以下も同様）として説明している機能を実現するプログラムである。
更に、外部記憶装置９０２にはオペレーティングシステム（ＯＳ）も記憶されており、ＯＳの少なくとも一部が主記憶装置９０３にロードされ、演算装置９０１はＯＳを実行しながら、図４に示す「〜部」の機能を実現するプログラムを実行する。
また、実施の形態１〜３の説明において、「〜の決定」、「〜の設定」、「〜の算出」、「〜の実行」、「〜の生成」、「〜の作成」「〜の選択」等として説明している処理の結果を示す情報やデータや信号値や変数値が主記憶装置９０３にファイルとして記憶されている。
【００４６】
なお、図６の構成は、あくまでも論理回路設計支援装置２００のハードウェア構成の一例を示すものであり、論理回路設計支援装置２００のハードウェア構成は図６に記載の構成に限らず、他の構成であってもよい。
【符号の説明】
【００４７】
１  フリップフロップ、２  組合せ回路、３  フリップフロップ、４  グリッチ除去回路、６  タイミング生成回路、７  イネーブル信号、８  ラッチ回路、１００  論理回路、２００  論理回路設計支援装置、２０１  ネットリスト作成部、２０２  シミュレーション設定部、２０３  シミュレーション実行部、２０４  シミュレーション結果記憶部、２０５  配置除去幅決定部、２０６  制御部。
【図１】
2015095786.tif 000003
【図２】
2015095786.tif 000004
【図３】
2015095786.tif 000005
【図４】
2015095786.tif 000006
【図５】
2015095786.tif 000007
【図６】
2015095786.tif 000008
【図７】
2015095786.tif 000009
【図８】
2015095786.tif 000010
【図９】
2015095786.tif 000011
【図１０】
2015095786.tif 000012
【図１１】
2015095786.tif 000013
【図１２】
2015095786.tif 000014