JP2015095786A - 論理回路及び論理回路設計支援装置及び論理回路設計支援方法及びプログラム - Google Patents
論理回路及び論理回路設計支援装置及び論理回路設計支援方法及びプログラム Download PDFInfo
- Publication number
- JP2015095786A JP2015095786A JP2013234534A JP2013234534A JP2015095786A JP 2015095786 A JP2015095786 A JP 2015095786A JP 2013234534 A JP2013234534 A JP 2013234534A JP 2013234534 A JP2013234534 A JP 2013234534A JP 2015095786 A JP2015095786 A JP 2015095786A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- glitch
- logic
- simulation
- glitch removal
- 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.)
- Pending
Links
Images
Landscapes
- Manipulation Of Pulses (AREA)
Abstract
【課題】グリッチ除去回路で除去しきれないグリッチを除去可能とし、無駄な消費電力の増大を防ぐ論理回路を実現する。
【解決手段】入力データとクロック信号をフリップフロップ1及びタイミング生成回路6に入力した論理回路100で、論理回路100の組合せ回路2との間に、グリッチを除去するグリッチ除去回路4と、タイミング生成回路6の出力が入力され、グリッチ除去回路4で除去されないグリッチを除去するラッチ回路8とで構成されている。
【選択図】図1
【解決手段】入力データとクロック信号をフリップフロップ1及びタイミング生成回路6に入力した論理回路100で、論理回路100の組合せ回路2との間に、グリッチを除去するグリッチ除去回路4と、タイミング生成回路6の出力が入力され、グリッチ除去回路4で除去されないグリッチを除去するラッチ回路8とで構成されている。
【選択図】図1
Description
本発明は、論理回路においてグリッチの発生を抑制する技術に関する。
情報通信技術の拡大とともに、情報セキュリティに対する要求もますます高まっている。
このような中、近年低レイテンシ暗号のような特定用途向けの暗号アルゴリズムの提案が続いている(非特許文献1)。
一般に、低レイテンシ暗号はシステムLSI(Large Scale Integration)内部の暗号回路としてハードウェア実装され、少ないクロックサイクル数(例えば、1クロックサイクル)で暗号化または復号を行う。
一方、低レイテンシ暗号の主要な適用先として、組み込み分野で用いられるシステムLSIが挙げられるが、ここでは低消費電力化が強く求められる。
このため、低レイテンシ暗号の暗号回路も消費電力を抑えた実装が必要である。
CMOS回路の消費電力は、一般に次式で評価できる(非特許文献2)。
Ptotal
=pt・CL・Vdd 2・fclk+pt・Isc・Vdd・fclk+Ileak・Vdd 式(1)
ここで、CLは負荷容量、fclkはクロック周波数、Vddは電源電圧、ptは信号の遷移確率、Iscは貫通電流、Ileakは漏れ電流である。
これらのパラメータの値を小さくすることが、CMOS回路の消費電力の低減につながるが、このうち、論理設計の段階で設計者が制御可能なパラメータは主に信号の遷移確率である。
ある信号の遷移確率は、当該信号の単位時間当たりの変化回数である。
このような中、近年低レイテンシ暗号のような特定用途向けの暗号アルゴリズムの提案が続いている(非特許文献1)。
一般に、低レイテンシ暗号はシステムLSI(Large Scale Integration)内部の暗号回路としてハードウェア実装され、少ないクロックサイクル数(例えば、1クロックサイクル)で暗号化または復号を行う。
一方、低レイテンシ暗号の主要な適用先として、組み込み分野で用いられるシステムLSIが挙げられるが、ここでは低消費電力化が強く求められる。
このため、低レイテンシ暗号の暗号回路も消費電力を抑えた実装が必要である。
CMOS回路の消費電力は、一般に次式で評価できる(非特許文献2)。
Ptotal
=pt・CL・Vdd 2・fclk+pt・Isc・Vdd・fclk+Ileak・Vdd 式(1)
ここで、CLは負荷容量、fclkはクロック周波数、Vddは電源電圧、ptは信号の遷移確率、Iscは貫通電流、Ileakは漏れ電流である。
これらのパラメータの値を小さくすることが、CMOS回路の消費電力の低減につながるが、このうち、論理設計の段階で設計者が制御可能なパラメータは主に信号の遷移確率である。
ある信号の遷移確率は、当該信号の単位時間当たりの変化回数である。
ところで、論理回路においては、図12(c)に示すようなグリッチが発生することがある。
図12(c)の信号Aは、図12(a)の出力信号Aを表し、図12(c)の信号Bは、図12(a)の出力信号Bを表し、図12(c)の信号Cは、図12(a)の出力信号Cを表す。
グリッチは、信号の時間差に起因して発生する、機能的には無駄な信号変化である。
従って、グリッチを低減することは論理回路の低消費電力化に有効である。
ある信号で発生したグリッチは、その信号を入力とする他の論理ゲートの出力にも伝搬することで、無駄な信号変化回数を増大する可能性がある。
低レイテンシ暗号は、少ないクロックサイクル数で暗号化または復号を行うため、1クロックサイクル内の論理段数が多くなる。
また、データ攪拌を繰り返すという暗号の性質上、暗号回路の1ビットの信号は下流の多くの信号に関与する。
これらのことから、低レイテンシ暗号の暗号回路では、タイミングパスの上流で発生したグリッチが論理段数の深い下流まで伝搬することで、他の論理回路と比較すると、グリッチによる無駄な信号変化回数が非常に多くなる可能性がある。
従って、消費電力化のためには、グリッチの抑制が特に重要である。
図12(c)の信号Aは、図12(a)の出力信号Aを表し、図12(c)の信号Bは、図12(a)の出力信号Bを表し、図12(c)の信号Cは、図12(a)の出力信号Cを表す。
グリッチは、信号の時間差に起因して発生する、機能的には無駄な信号変化である。
従って、グリッチを低減することは論理回路の低消費電力化に有効である。
ある信号で発生したグリッチは、その信号を入力とする他の論理ゲートの出力にも伝搬することで、無駄な信号変化回数を増大する可能性がある。
低レイテンシ暗号は、少ないクロックサイクル数で暗号化または復号を行うため、1クロックサイクル内の論理段数が多くなる。
また、データ攪拌を繰り返すという暗号の性質上、暗号回路の1ビットの信号は下流の多くの信号に関与する。
これらのことから、低レイテンシ暗号の暗号回路では、タイミングパスの上流で発生したグリッチが論理段数の深い下流まで伝搬することで、他の論理回路と比較すると、グリッチによる無駄な信号変化回数が非常に多くなる可能性がある。
従って、消費電力化のためには、グリッチの抑制が特に重要である。
Julia Borgho他,"PRINCE − A Low−latency Block Cipher for Pervasive Computing Applications (Full version)," IACR Cryptology ePrint Archive 2012/529 (2012).
A.P. Chandrakasan, S. Sheng and R.W. Brodersen, "Low Power Digital CMOS Design," IEEE Journal of Solid State Circuits, Vol.27, N0.4. pp. 473−484, 1992.
従来の通常の論理回路500の概要を図7に示す。
図7は、システムLSI全体の中から、1クロックサイクル分の処理を行う回路部分を抜き出して示したもので、組合せ回路2をフリップフロップ1、3が挟み込む構成となっている。
あるクロックサイクルの入力データは、クロックの立ち上がりエッジでフリップフロップ1に格納されるとともに、組合せ回路2に入力される。
組合せ回路2では全ての入力データに対して論理演算処理を行い、その演算結果は次のクロックの立ち上がりエッジでフリップフロップ3に格納され、論理回路500の出力データとなる。
システムLSIには、図7のような回路部分が多数含まれ、それらの幾つかは互いに接続されて、より大きな回路ブロックを形成する。
ある回路部分の出力データは、他の回路部分の入力データとなり、逆も同様である。
図7では省略しているが、フリップフロップ1、3は1ビット以上のフリップフロップ群である(以下同様)。
フリップフロップ3の出力が、組合せ回路2の入力となることもあり、フリップフロップ1、3で、物理的に同じフリップフロップを共有する場合もある(さらに、フリップフロップ1、3を介さずに組合せ回路2に入出力される非同期信号が存在することもあるが、本発明の本質には関係しないため、本明細書では取り上げない)。
図7は、システムLSI全体の中から、1クロックサイクル分の処理を行う回路部分を抜き出して示したもので、組合せ回路2をフリップフロップ1、3が挟み込む構成となっている。
あるクロックサイクルの入力データは、クロックの立ち上がりエッジでフリップフロップ1に格納されるとともに、組合せ回路2に入力される。
組合せ回路2では全ての入力データに対して論理演算処理を行い、その演算結果は次のクロックの立ち上がりエッジでフリップフロップ3に格納され、論理回路500の出力データとなる。
システムLSIには、図7のような回路部分が多数含まれ、それらの幾つかは互いに接続されて、より大きな回路ブロックを形成する。
ある回路部分の出力データは、他の回路部分の入力データとなり、逆も同様である。
図7では省略しているが、フリップフロップ1、3は1ビット以上のフリップフロップ群である(以下同様)。
フリップフロップ3の出力が、組合せ回路2の入力となることもあり、フリップフロップ1、3で、物理的に同じフリップフロップを共有する場合もある(さらに、フリップフロップ1、3を介さずに組合せ回路2に入出力される非同期信号が存在することもあるが、本発明の本質には関係しないため、本明細書では取り上げない)。
図7の論理回路500において、前述のように、組合せ回路2の中の論理段数が多いと、回路の上流で発生したグリッチが下流まで伝搬して、無駄な信号遷移(即ち、無駄な消費電力)が増大するという課題がある。
この課題を解決するためには、論理回路500内のある論理ゲートの出力で発生したグリッチを除去し、そのグリッチの伝搬を抑制することが有効である。
このような従来技術として、例えば、特許文献1−4のグリッチ除去回路がある。
この課題を解決するためには、論理回路500内のある論理ゲートの出力で発生したグリッチを除去し、そのグリッチの伝搬を抑制することが有効である。
このような従来技術として、例えば、特許文献1−4のグリッチ除去回路がある。
図8にグリッチ除去回路の例とその機能を示す。
図8(a)〜(c)の3つのグリッチ除去回路の詳細な動作の説明は省略するが、図8(d)に示すように、いずれも入力で現れた幅がΔ未満のグリッチが出力に伝搬しないようにする。
幅がΔ以上のグリッチは、幅がおおよそΔだけ短いグリッチとして、出力に伝搬する。
これらを図9のように、グリッチ低減論理回路600内の信号線上に挿入することで、論理回路内のグリッチを低減したグリッチ低減論理回路600を得ることができる。
図8(a)〜(c)の3つのグリッチ除去回路の詳細な動作の説明は省略するが、図8(d)に示すように、いずれも入力で現れた幅がΔ未満のグリッチが出力に伝搬しないようにする。
幅がΔ以上のグリッチは、幅がおおよそΔだけ短いグリッチとして、出力に伝搬する。
これらを図9のように、グリッチ低減論理回路600内の信号線上に挿入することで、論理回路内のグリッチを低減したグリッチ低減論理回路600を得ることができる。
本発明は、図9のような従来のグリッチ低減論理回路600における以下の2つの課題を解決することを目的とする。
課題1:
まず、グリッチ除去回路の効果を図10を用いて説明する。
図10(a)のグリッチ低減論理回路600は、1クロックサイクル分の論理回路を、直列に接続される複数の組合せ回路2に分割し、各組合せ回路2間にグリッチ除去回路4を挿入したものである。
簡単のために、全ての組合せ回路2は同じ回路(組合せ回路A)とし、それらがN(N≧2)個直列につながっているものとする。
図10(b)は、グリッチ除去回路4を挿入する場合としない場合について、N個の組合せ回路Aのそれぞれの中での信号変化回数を示したもので、図の横軸が組合せ回路Aの段数、縦軸が組合せ回路Aの中での信号変化回数である。
グリッチ除去回路4を挿入した方が、どの段数の組合せ回路Aも信号変化回数が減少し、従って、グリッチ低減論理回路600全体の消費電力も減少する。
一方、どちらも、同じ組合せ回路Aでありながら、それが置かれる箇所がタイミングパスの下流になるほど、信号変化回数が増加する。
この主な理由は、上流の組合せ回路Aで除去しきれないグリッチが、下流の組合せ回路Aに伝搬して積算されていくためである。
1クロックサイクル分の論理回路の段数が増えるほど、上流で発生するグリッチの影響は大きくなり、グリッチ除去回路4だけでは十分な低消費電力化が実現できない可能性がある。
まず、グリッチ除去回路の効果を図10を用いて説明する。
図10(a)のグリッチ低減論理回路600は、1クロックサイクル分の論理回路を、直列に接続される複数の組合せ回路2に分割し、各組合せ回路2間にグリッチ除去回路4を挿入したものである。
簡単のために、全ての組合せ回路2は同じ回路(組合せ回路A)とし、それらがN(N≧2)個直列につながっているものとする。
図10(b)は、グリッチ除去回路4を挿入する場合としない場合について、N個の組合せ回路Aのそれぞれの中での信号変化回数を示したもので、図の横軸が組合せ回路Aの段数、縦軸が組合せ回路Aの中での信号変化回数である。
グリッチ除去回路4を挿入した方が、どの段数の組合せ回路Aも信号変化回数が減少し、従って、グリッチ低減論理回路600全体の消費電力も減少する。
一方、どちらも、同じ組合せ回路Aでありながら、それが置かれる箇所がタイミングパスの下流になるほど、信号変化回数が増加する。
この主な理由は、上流の組合せ回路Aで除去しきれないグリッチが、下流の組合せ回路Aに伝搬して積算されていくためである。
1クロックサイクル分の論理回路の段数が増えるほど、上流で発生するグリッチの影響は大きくなり、グリッチ除去回路4だけでは十分な低消費電力化が実現できない可能性がある。
課題2:
次の問題は、グリッチ除去回路の挿入箇所に関するものである。
図8のグリッチ除去回路では、グリッチ除去回路の出力が変化する際、入力の変化に対しておおよそΔの遅延時間が加わることに注意が必要である。
即ち、グリッチ除去回路を大量に論理回路に挿入すると、遅延時間が積算されて処理性能低下につながる。
従って、挿入可能なグリッチ除去回路の数は、クロック周波数によって制限される。
また、グリッチ除去回路を論理回路中の全ての信号線上に挿入することは、回路規模の観点からも現実的ではない。
限られた数のグリッチ除去回路を、論理回路中のどの信号線に挿入するか、によって論理回路全体での消費電力低減の度合いは変わる。
さらに、Δの値をいくらにするか、によっても消費電力低減の度合いは変わる。
実際の論理回路設計においては、設計のできるだけ上流段階で、消費電力低減の度合いの高い挿入箇所やΔの値を決める必要がある。
しかしながら、特許文献1−4は、グリッチ除去回路の実現方法を提供しているが、その挿入箇所やΔの値の決め方は提供されない。
次の問題は、グリッチ除去回路の挿入箇所に関するものである。
図8のグリッチ除去回路では、グリッチ除去回路の出力が変化する際、入力の変化に対しておおよそΔの遅延時間が加わることに注意が必要である。
即ち、グリッチ除去回路を大量に論理回路に挿入すると、遅延時間が積算されて処理性能低下につながる。
従って、挿入可能なグリッチ除去回路の数は、クロック周波数によって制限される。
また、グリッチ除去回路を論理回路中の全ての信号線上に挿入することは、回路規模の観点からも現実的ではない。
限られた数のグリッチ除去回路を、論理回路中のどの信号線に挿入するか、によって論理回路全体での消費電力低減の度合いは変わる。
さらに、Δの値をいくらにするか、によっても消費電力低減の度合いは変わる。
実際の論理回路設計においては、設計のできるだけ上流段階で、消費電力低減の度合いの高い挿入箇所やΔの値を決める必要がある。
しかしながら、特許文献1−4は、グリッチ除去回路の実現方法を提供しているが、その挿入箇所やΔの値の決め方は提供されない。
本発明は、上記2つの課題を解決することを主な目的とし、グリッチ除去回路で除去しきれないグリッチを除去可能な論理回路を実現することを主な目的とする。
本発明に係る論理回路は、
複数の組合せ回路が配置されている論理回路であって、
組合せ回路の間に、グリッチを除去するグリッチ除去回路と、前記グリッチ除去回路で除去されないグリッチを除去するラッチ回路とが配置されていることを特徴とする。
複数の組合せ回路が配置されている論理回路であって、
組合せ回路の間に、グリッチを除去するグリッチ除去回路と、前記グリッチ除去回路で除去されないグリッチを除去するラッチ回路とが配置されていることを特徴とする。
本発明によれば、ラッチ回路により、グリッチ除去回路で除去されないグリッチを除去することができる。
まず、以下の実施の形態の基本アイディアを説明する。
以下の実施の形態では、先に示した課題1及び課題2を解決することを目的とし、グリッチ低減の度合いが高くなるように、限られた数のグリッチ除去回路の挿入箇所とグリッチ除去幅Δの値を決定し、かつ、グリッチ除去回路で除去しきれないグリッチの累積を抑制した論理回路、及びその設計方法を説明する。
以下の実施の形態では、先に示した課題1及び課題2を解決することを目的とし、グリッチ低減の度合いが高くなるように、限られた数のグリッチ除去回路の挿入箇所とグリッチ除去幅Δの値を決定し、かつ、グリッチ除去回路で除去しきれないグリッチの累積を抑制した論理回路、及びその設計方法を説明する。
先に示した課題1のグリッチの累積は、論理回路中にラッチ回路を挿入することで解決する。
図11に示すように、ラッチ回路はイネーブル信号が有意な期間は入力データを出力データに伝えるが、イネーブル信号が非有意な期間は、入力データの値に関わらず、出力データの値を保持するため、入力信号のグリッチを遮断することができる。
即ち、グリッチ除去回路で除去しきれずに累積していくグリッチも、ラッチ回路を挿入して、そのイネーブル信号をグリッチよりも遅いタイミングで有意にすれば、ラッチ回路の下流に一切伝搬しないようにすることができる。
ここで、全てのグリッチ除去回路をラッチ回路に置き換えれば良いようにも思えるかも知れないが、多くのイネーブル信号のタイミングを制御するのは容易ではないため、ラッチ回路の挿入箇所をあまり多くすることはできない。
従って、グリッチ除去回路とラッチ回路が互いに補完し合って、論理回路中のグリッチを低減する。
図11に示すように、ラッチ回路はイネーブル信号が有意な期間は入力データを出力データに伝えるが、イネーブル信号が非有意な期間は、入力データの値に関わらず、出力データの値を保持するため、入力信号のグリッチを遮断することができる。
即ち、グリッチ除去回路で除去しきれずに累積していくグリッチも、ラッチ回路を挿入して、そのイネーブル信号をグリッチよりも遅いタイミングで有意にすれば、ラッチ回路の下流に一切伝搬しないようにすることができる。
ここで、全てのグリッチ除去回路をラッチ回路に置き換えれば良いようにも思えるかも知れないが、多くのイネーブル信号のタイミングを制御するのは容易ではないため、ラッチ回路の挿入箇所をあまり多くすることはできない。
従って、グリッチ除去回路とラッチ回路が互いに補完し合って、論理回路中のグリッチを低減する。
先に示した課題2、即ち、消費電力を低減するための、グリッチ除去回路の適切な挿入箇所やグリッチ除去幅Δの値を決める手段としては、設計の上流段階でそれらを変えながら消費電力を見積もることを繰り返し、最も消費電力が小さくなるような挿入箇所とグリッチ除去幅Δの値を選択するようにする。
さて、ここまでの記述では、論理回路内の信号変化回数と消費電力をほとんど同じものとして扱っていた。
実際には、信号変化回数は式(1)の右辺の第1項のみに関わるものであるし、第1項の不可容量CLは設計の下流段階(配置配線)以降に決まり、かつ信号線毎に異なるので、信号変化回数だけでは消費電力は決まらない。
しかし、信号変化回数と消費電力が高い相関を持つことは間違いなく、設計の上流段階で消費電力の大小を評価するために信号変化回数を指標とすることは有効である。
従って、これ以降の記述でも信号変化回数を消費電力に相当する量とみなすことにする。
同様の考え方に基づいて、設計の上流段階で論理回路の消費電力を見積もる従来技術として特許文献5がある。
本明細書では、この特許文献5の技術を利用して、課題2を解決し、グリッチ除去回路やラッチ回路の最適な挿入箇所及びグリッチ除去幅Δの値を決定する。
さて、ここまでの記述では、論理回路内の信号変化回数と消費電力をほとんど同じものとして扱っていた。
実際には、信号変化回数は式(1)の右辺の第1項のみに関わるものであるし、第1項の不可容量CLは設計の下流段階(配置配線)以降に決まり、かつ信号線毎に異なるので、信号変化回数だけでは消費電力は決まらない。
しかし、信号変化回数と消費電力が高い相関を持つことは間違いなく、設計の上流段階で消費電力の大小を評価するために信号変化回数を指標とすることは有効である。
従って、これ以降の記述でも信号変化回数を消費電力に相当する量とみなすことにする。
同様の考え方に基づいて、設計の上流段階で論理回路の消費電力を見積もる従来技術として特許文献5がある。
本明細書では、この特許文献5の技術を利用して、課題2を解決し、グリッチ除去回路やラッチ回路の最適な挿入箇所及びグリッチ除去幅Δの値を決定する。
実施の形態1.
図1は、本実施の形態に係る論理回路100の構成例を示す。
図9の従来のグリッチ低減論理回路600と比較すると、図1の論理回路100では、ラッチ回路8とそのイネーブル信号7を制御するタイミング生成回路6が追加されている。
ラッチ回路8の動作と役割は前述の通りである。
ラッチ回路8は、グリッチ除去回路4よりも後段に配置されており、前段のグリッチ除去回路4で除去しきれないグリッチを除去する。
タイミング生成回路6の例を図2に示す。
図2の例では、タイミング生成回路6は、それぞれの位相が相違する5種類のイネーブル信号を出力することができる。
各イネーブル信号は、異なるラッチ回路に入力される。
なお、フリップフロップ1、3と同様に、グリッチ除去回路4、ラッチ回路8も1ビット以上を含む。
図1は、本実施の形態に係る論理回路100の構成例を示す。
図9の従来のグリッチ低減論理回路600と比較すると、図1の論理回路100では、ラッチ回路8とそのイネーブル信号7を制御するタイミング生成回路6が追加されている。
ラッチ回路8の動作と役割は前述の通りである。
ラッチ回路8は、グリッチ除去回路4よりも後段に配置されており、前段のグリッチ除去回路4で除去しきれないグリッチを除去する。
タイミング生成回路6の例を図2に示す。
図2の例では、タイミング生成回路6は、それぞれの位相が相違する5種類のイネーブル信号を出力することができる。
各イネーブル信号は、異なるラッチ回路に入力される。
なお、フリップフロップ1、3と同様に、グリッチ除去回路4、ラッチ回路8も1ビット以上を含む。
図1の論理回路100による低消費電力化の効果を、図10と対応させて示したものが図3である。
図3(a)では、論理回路100のタイミングパス上の2か所にラッチ回路8を挿入した例を示している。
ラッチ回路8よりも上流のグリッチがラッチ回路8の下流に伝搬しないため、累積したグリッチがラッチ回路8の挿入箇所でクリアされることになり、段数毎の組合せ回路Aの信号遷移回数は、図3(b)の太線のようになる。
この結果、論理回路全体の信号変化回数は従来のグリッチ低減論理回路600よりも少なくなる。
図3(a)では、論理回路100のタイミングパス上の2か所にラッチ回路8を挿入した例を示している。
ラッチ回路8よりも上流のグリッチがラッチ回路8の下流に伝搬しないため、累積したグリッチがラッチ回路8の挿入箇所でクリアされることになり、段数毎の組合せ回路Aの信号遷移回数は、図3(b)の太線のようになる。
この結果、論理回路全体の信号変化回数は従来のグリッチ低減論理回路600よりも少なくなる。
図4は、本実施の形態に係る論理回路設計支援装置200の構成例を示す。
論理回路設計支援装置200は、グリッチ除去回路4とラッチ回路8とを配置する論理回路100内の位置を決定し、また、論理回路100でのグリッチ除去回路4のグリッチ除去幅Δの値を決定する。
論理回路設計支援装置200は、グリッチ除去回路4とラッチ回路8とを配置する論理回路100内の位置を決定し、また、論理回路100でのグリッチ除去回路4のグリッチ除去幅Δの値を決定する。
図4において、ネットリスト作成部201は、論理回路100のネットリストを作成する。
シミュレーション設定部202は、グリッチ除去回路4、ラッチ回路8及びタイミング生成回路6を、それぞれ、論理回路100のネットリストの任意の信号線に設定し、グリッチ除去幅Δの値を設定する。
シミュレーション実行部203は、シミュレーション設定部202によりグリッチ除去回路4、ラッチ回路8及びタイミング生成回路6が設定されたネットリストと、シミュレーション設定部202により設定されたグリッチ除去幅Δの値とを用いて論理シミュレーションを実行し、1クロックサイクル当たりの信号変化回数を算出する。
シミュレーション結果記憶部204は、論理シミュレーションに用いられたネットリストとグリッチ除去幅Δの値と、論理シミュレーションにより算出された信号変化回数とを記憶する。
シミュレーション結果記憶部204は、論理シミュレーションに用いられたネットリストを記憶する代わりに、グリッチ除去回路4、ラッチ回路8及びタイミング生成回路6の位置を記憶するようにしてもよい。
シミュレーション結果記憶部204は、論理シミュレーションに用いられたネットリストを記憶する代わりに、グリッチ除去回路4、ラッチ回路8及びタイミング生成回路6の位置を記憶するようにしてもよい。
配置除去幅決定部205は、シミュレーション実行部203により算出された信号変化回数に基づき、グリッチ除去回路4とラッチ回路8とを配置する論理回路100内の位置を決定し、論理回路100でのグリッチ除去幅Δの値のグリッチ除去幅の値を決定する。
制御部206は、ネットリスト作成部201、シミュレーション設定部202、シミュレーション実行部203、シミュレーション結果記憶部204、配置除去幅決定部205のそれぞれの動作を制御する。
図5は、論理回路設計支援装置200の動作例を示すフローチャートである。
以下、図5の各ステップについて説明する。
以下、図5の各ステップについて説明する。
論理回路設計支援装置200のユーザが、実現したい論理を実行する論理回路100を通常通り設計し、ネットリスト作成部201が、その論理回路100のネットリストを生成する(S501)。
次に、シミュレーション設定部202が、グリッチ除去回路4とラッチ回路8、及びタイミング生成回路6をネットリスト上の任意の信号線に挿入する(S502)。
シミュレーション設定部202は、ラッチ回路8にはタイミング生成回路6が生成するイネーブル信号7を接続する。
ここで、論理回路100に挿入するグリッチ除去回路4やラッチ回路8の数は、クロック周波数やイネーブル信号の数の制約によって、予め決められているものとする。
また、シミュレーション設定部202は、シミュレーションに用いるグリッチ除去幅Δの値を設定する。
シミュレーション設定部202は、ラッチ回路8にはタイミング生成回路6が生成するイネーブル信号7を接続する。
ここで、論理回路100に挿入するグリッチ除去回路4やラッチ回路8の数は、クロック周波数やイネーブル信号の数の制約によって、予め決められているものとする。
また、シミュレーション設定部202は、シミュレーションに用いるグリッチ除去幅Δの値を設定する。
次に、シミュレーション実行部203が、S502で得られたネットリストを使って論理シミュレーションを行い、特許文献5で示された技術を用いて、ネットリスト中のクロックサイクル毎の信号変化回数を評価する(S503)。
なお、論理シミュレーションに用いられたネットリストとグリッチ除去幅Δの値、論理シミュレーション結果である1クロックサイクル当たりの信号変化回数は、シミュレーション結果記憶部204に記憶される。
なお、論理シミュレーションに用いられたネットリストとグリッチ除去幅Δの値、論理シミュレーション結果である1クロックサイクル当たりの信号変化回数は、シミュレーション結果記憶部204に記憶される。
グリッチ除去回路4の挿入箇所とグリッチ除去幅Δの値及びラッチ回路8の挿入箇所(これらの候補は予め決定しておく)の全ての組合せで信号変化回数の評価が完了したら(S504でYES)、S506に進み、評価が完了していなければ(S504でNO)、S505に進む。
S504でNOの場合は、シミュレーション設定部202が、グリッチ除去回路4の挿入箇所とグリッチ除去幅Δの値及びラッチ回路8の挿入箇所を次の候補に変えて(S505)、シミュレーション実行部203が、変更後のグリッチ除去回路4の挿入箇所とグリッチ除去幅Δの値及びラッチ回路8の挿入箇所に対する論理シミュレーションを行う(S503)。
S504でYESの場合は、配置除去幅決定部205が、グリッチ除去回路4の挿入箇所とグリッチ除去幅Δの値及びラッチ回路8の挿入箇所の全ての候補の信号変化回数を比較する(S506)。
配置除去幅決定部205は、最も信号変化回数が小さい候補のグリッチ除去回路4の挿入箇所とグリッチ除去幅Δの値及びラッチ回路8の挿入箇所を採用する。
このように、本実施の形態に係る論理回路では、1クロックサイクルあたりの論理回路全体の信号遷移回数が最少となるように、論理回路のネットリスト内の異なる信号線上にグリッチ除去回路及びラッチ回路が挿入されている。
また、本実施の形態に係る論理回路設計支援装置は、論理回路のネットリストのタイミングパス上にグリッチ除去回路を挿入するステップと、同パス上にラッチ回路を挿入するステップと、それらグリッチ除去回路及びラッチ回路を挿入後の論理回路全体の1クロックサイクルあたりの信号遷移回数を評価するステップを備え、当該信号遷移回数が最少となるようにグリッチ除去回路及びラッチ回路の挿入箇所を移動・調整する。
そして、本実施の形態は、低レイテンシ暗号のように、1クロックサイクル内の論理段数が多い論理を実行する論理回路において、特に有効であるが、それ以外の任意の論理回路に適用可能であり、論理回路の消費電力を低減することができる。
実施の形態2.
実施の形態1では、グリッチ除去回路とラッチ回路を論理回路に挿入したが、論理段数があまり多くない場合や、利用可能なグリッチ除去回路が用意されていない場合は、ラッチ回路のみを挿入してもよい。
対応する論理回路の図は、図1からグリッチ除去回路4を全て除いたものになる。
この場合も、ラッチ回路用のタイミング生成回路や概略設計フローは、図2や図5と同様である。
実施の形態1では、グリッチ除去回路とラッチ回路を論理回路に挿入したが、論理段数があまり多くない場合や、利用可能なグリッチ除去回路が用意されていない場合は、ラッチ回路のみを挿入してもよい。
対応する論理回路の図は、図1からグリッチ除去回路4を全て除いたものになる。
この場合も、ラッチ回路用のタイミング生成回路や概略設計フローは、図2や図5と同様である。
実施の形態3.
実施の形態1のように、設計の上流段階で特許文献5の技術を利用して、論理回路の信号変化回数を評価する際、論理シミュレーションで使用する遅延情報として、通常は、論理合成ツールが生成する信号毎の仮想遅延情報を用いる。
図12(a)のような論理回路では、2つの同じ論理ゲート(2AND)の出力信号AとBが、ともにファンアウト1で同じ論理ゲートに接続されている。
このような場合、AとBの仮想遅延情報は同じ値となり、AとBが図12(b)のような変化をした場合、信号Cの変化回数は0と評価される。
しかし、実際の回路では、AとBの遅延が完全に等しくなることはまれで、大抵は図12(c)のように信号Cにグリッチが発生する。
この時、信号Cの変化回数は2となる。
即ち、論理合成ツールが生成する信号毎の仮想遅延情報をそのまま使用すると、配置配線などによって生じる時間差に起因するグリッチが評価できないことがある。
本実施の形態では、この問題を解決する。
実施の形態1のように、設計の上流段階で特許文献5の技術を利用して、論理回路の信号変化回数を評価する際、論理シミュレーションで使用する遅延情報として、通常は、論理合成ツールが生成する信号毎の仮想遅延情報を用いる。
図12(a)のような論理回路では、2つの同じ論理ゲート(2AND)の出力信号AとBが、ともにファンアウト1で同じ論理ゲートに接続されている。
このような場合、AとBの仮想遅延情報は同じ値となり、AとBが図12(b)のような変化をした場合、信号Cの変化回数は0と評価される。
しかし、実際の回路では、AとBの遅延が完全に等しくなることはまれで、大抵は図12(c)のように信号Cにグリッチが発生する。
この時、信号Cの変化回数は2となる。
即ち、論理合成ツールが生成する信号毎の仮想遅延情報をそのまま使用すると、配置配線などによって生じる時間差に起因するグリッチが評価できないことがある。
本実施の形態では、この問題を解決する。
論理合成ツールが生成する仮想遅延情報は、論理回路中の信号とその遅延時間を組にした遅延情報ファイルとして与えられる。
実施の形態3では、この遅延情報ファイルの信号毎の遅延時間に一定範囲(例えば、0.95から1.05)の異なるランダムな係数を乗した結果を、もとの遅延時間に置き換えた新たな遅延情報ファイルを生成し、図5の信号変化回数評価で使用するものである。
つまり、本実施の形態では、シミュレーション実行部203は、論理合成ツールが提供する遅延時間の仮想値の代わりに、遅延時間の仮想値にランダムな係数を乗算した値を用いて、論理シミュレーションを実行する。
これにより、上記の図12の例では、信号A、Bの遅延時間は異なる値となり、信号Cのグリッチが評価可能となる。
実施の形態3では、この遅延情報ファイルの信号毎の遅延時間に一定範囲(例えば、0.95から1.05)の異なるランダムな係数を乗した結果を、もとの遅延時間に置き換えた新たな遅延情報ファイルを生成し、図5の信号変化回数評価で使用するものである。
つまり、本実施の形態では、シミュレーション実行部203は、論理合成ツールが提供する遅延時間の仮想値の代わりに、遅延時間の仮想値にランダムな係数を乗算した値を用いて、論理シミュレーションを実行する。
これにより、上記の図12の例では、信号A、Bの遅延時間は異なる値となり、信号Cのグリッチが評価可能となる。
このように、本実施の形態では、論理合成ツールが生成した信号毎の仮想遅延情報にランダムな係数を乗じたものを新たな仮想遅延情報としている。
最後に、実施の形態1〜3に示した論理回路設計支援装置200のハードウェア構成例を図6を参照して説明する。
論理回路設計支援装置200はコンピュータであり、論理回路設計支援装置200の各要素をプログラムで実現することができる。
論理回路設計支援装置200のハードウェア構成としては、バスに、演算装置901、外部記憶装置902、主記憶装置903、通信装置904、入出力装置905が接続されている。
論理回路設計支援装置200はコンピュータであり、論理回路設計支援装置200の各要素をプログラムで実現することができる。
論理回路設計支援装置200のハードウェア構成としては、バスに、演算装置901、外部記憶装置902、主記憶装置903、通信装置904、入出力装置905が接続されている。
演算装置901は、プログラムを実行するCPU(Central Processing Unit)である。
外部記憶装置902は、例えばROM(Read Only Memory)やフラッシュメモリ、ハードディスク装置である。
主記憶装置903は、RAM(Random Access Memory)である。
通信装置904は、例えば、NIC(Network Interface Card)である。
入出力装置905は、例えばマウス、キーボード、ディスプレイ装置等である。
外部記憶装置902は、例えばROM(Read Only Memory)やフラッシュメモリ、ハードディスク装置である。
主記憶装置903は、RAM(Random Access Memory)である。
通信装置904は、例えば、NIC(Network Interface Card)である。
入出力装置905は、例えばマウス、キーボード、ディスプレイ装置等である。
プログラムは、通常は外部記憶装置902に記憶されており、主記憶装置903にロードされた状態で、順次演算装置901に読み込まれ、実行される。
プログラムは、図4に示す「〜部」(シミュレーション結果記憶部204を除く、以下も同様)として説明している機能を実現するプログラムである。
更に、外部記憶装置902にはオペレーティングシステム(OS)も記憶されており、OSの少なくとも一部が主記憶装置903にロードされ、演算装置901はOSを実行しながら、図4に示す「〜部」の機能を実現するプログラムを実行する。
また、実施の形態1〜3の説明において、「〜の決定」、「〜の設定」、「〜の算出」、「〜の実行」、「〜の生成」、「〜の作成」「〜の選択」等として説明している処理の結果を示す情報やデータや信号値や変数値が主記憶装置903にファイルとして記憶されている。
プログラムは、図4に示す「〜部」(シミュレーション結果記憶部204を除く、以下も同様)として説明している機能を実現するプログラムである。
更に、外部記憶装置902にはオペレーティングシステム(OS)も記憶されており、OSの少なくとも一部が主記憶装置903にロードされ、演算装置901はOSを実行しながら、図4に示す「〜部」の機能を実現するプログラムを実行する。
また、実施の形態1〜3の説明において、「〜の決定」、「〜の設定」、「〜の算出」、「〜の実行」、「〜の生成」、「〜の作成」「〜の選択」等として説明している処理の結果を示す情報やデータや信号値や変数値が主記憶装置903にファイルとして記憶されている。
なお、図6の構成は、あくまでも論理回路設計支援装置200のハードウェア構成の一例を示すものであり、論理回路設計支援装置200のハードウェア構成は図6に記載の構成に限らず、他の構成であってもよい。
1 フリップフロップ、2 組合せ回路、3 フリップフロップ、4 グリッチ除去回路、6 タイミング生成回路、7 イネーブル信号、8 ラッチ回路、100 論理回路、200 論理回路設計支援装置、201 ネットリスト作成部、202 シミュレーション設定部、203 シミュレーション実行部、204 シミュレーション結果記憶部、205 配置除去幅決定部、206 制御部。
Claims (9)
- 複数の組合せ回路が配置されている論理回路であって、
組合せ回路の間に、グリッチを除去するグリッチ除去回路と、前記グリッチ除去回路で除去されないグリッチを除去するラッチ回路とが配置されていることを特徴とする論理回路。 - 前記ラッチ回路が前記グリッチ除去回路よりも後段に配置されていることを特徴とする請求項1に記載の論理回路。
- 前記グリッチ除去回路と前記ラッチ回路とが、それぞれ、異なる組合せ回路の間に配置されていることを特徴とする請求項1に記載の論理回路。
- 任意数のグリッチ除去回路と任意数のラッチ回路とが、それぞれ、1クロックサイクル当たりの前記複数の組合せ回路における信号遷移回数に基づいて決定された位置に配置されていることを特徴とする請求項1に記載の論理回路。
- グリッチを除去するグリッチ除去回路と、前記グリッチ除去回路で除去されないグリッチを除去するラッチ回路とを、それぞれ、論理回路のネットリストの任意の信号線に設定し、前記グリッチ除去回路のグリッチ除去幅の値を設定するシミュレーション設定部と、
前記シミュレーション設定部により前記グリッチ除去回路と前記ラッチ回路とが設定されたネットリストと、前記シミュレーション設定部により設定された前記グリッチ除去幅の値とを用いて論理シミュレーションを実行し、1クロックサイクル当たりの信号変化回数を算出するシミュレーション実行部と、
前記シミュレーション実行部により算出された信号変化回数に基づき、前記グリッチ除去回路と前記ラッチ回路とを配置する前記論理回路内の位置を決定し、前記論理回路での前記グリッチ除去回路のグリッチ除去幅の値を決定する配置除去幅決定部とを有することを特徴とする論理回路設計支援装置。 - 前記シミュレーション設定部は、
前記シミュレーション実行部により論理シミュレーションが実行される度に、前記グリッチ除去回路が設定される信号線、前記ラッチ回路が設定される信号線、前記グリッチ除去幅の値の組合せを変更し、
前記シミュレーション実行部は、
前記シミュレーション設定部により前記グリッチ除去回路が設定される信号線、前記ラッチ回路が設定される信号線、前記グリッチ除去幅の値の組合せが変更される度に、変更後の組合せが反映された論理シミュレーションを実行し、1クロックサイクル当たりの信号変化回数を算出し、
前記配置除去幅決定部は、
前記シミュレーション実行部により複数回の論理シミュレーションが実行された後に、信号変化回数が最小の論理シミュレーションに用いられたネットリストにおいて前記グリッチ除去回路が設定されている信号線及び前記ラッチ回路が設定されている信号線に相当する前記論理回路内の位置を、前記グリッチ除去回路と前記ラッチ回路とを配置する前記論理回路内の位置とし、信号変化回数が最小の論理シミュレーションで用いられたグリッチ除去幅の値を、前記論理回路での前記グリッチ除去回路のグリッチ除去幅の値とすることを特徴とする請求項5に記載の論理回路設計支援装置。 - 前記シミュレーション実行部は、
前記論理回路で発生する遅延時間の仮想値の代わりに、前記遅延時間の仮想値にランダムな係数を乗算した値を用いて、論理シミュレーションを実行することを特徴とする請求項5に記載の論理回路設計支援装置。 - コンピュータが、グリッチを除去するグリッチ除去回路と、前記グリッチ除去回路で除去されないグリッチを除去するラッチ回路とを、それぞれ、論理回路のネットリストの任意の信号線に設定し、前記グリッチ除去回路のグリッチ除去幅の値を設定するシミュレーション設定ステップと、
前記コンピュータが、前記シミュレーション設定ステップにより前記グリッチ除去回路と前記ラッチ回路とが設定されたネットリストと、前記シミュレーション設定ステップにより設定された前記グリッチ除去幅の値とを用いて論理シミュレーションを実行し、1クロックサイクル当たりの信号変化回数を算出するシミュレーション実行ステップと、
前記コンピュータが、前記シミュレーション実行ステップにより算出された信号変化回数に基づき、前記グリッチ除去回路と前記ラッチ回路とを配置する前記論理回路内の位置を決定し、前記論理回路での前記グリッチ除去回路のグリッチ除去幅の値を決定する配置除去幅決定ステップとを有することを特徴とする論理回路設計支援方法。 - グリッチを除去するグリッチ除去回路と、前記グリッチ除去回路で除去されないグリッチを除去するラッチ回路とを、それぞれ、論理回路のネットリストの任意の信号線に設定し、前記グリッチ除去回路のグリッチ除去幅の値を設定するシミュレーション設定ステップと、
前記シミュレーション設定ステップにより前記グリッチ除去回路と前記ラッチ回路とが設定されたネットリストと、前記シミュレーション設定ステップにより設定された前記グリッチ除去幅の値とを用いて論理シミュレーションを実行し、1クロックサイクル当たりの信号変化回数を算出するシミュレーション実行ステップと、
前記シミュレーション実行ステップにより算出された信号変化回数に基づき、前記グリッチ除去回路と前記ラッチ回路とを配置する前記論理回路内の位置を決定し、前記論理回路での前記グリッチ除去回路のグリッチ除去幅の値を決定する配置除去幅決定ステップとをコンピュータに実行させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013234534A JP2015095786A (ja) | 2013-11-13 | 2013-11-13 | 論理回路及び論理回路設計支援装置及び論理回路設計支援方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013234534A JP2015095786A (ja) | 2013-11-13 | 2013-11-13 | 論理回路及び論理回路設計支援装置及び論理回路設計支援方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015095786A true JP2015095786A (ja) | 2015-05-18 |
Family
ID=53197909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013234534A Pending JP2015095786A (ja) | 2013-11-13 | 2013-11-13 | 論理回路及び論理回路設計支援装置及び論理回路設計支援方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015095786A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109753675A (zh) * | 2017-11-03 | 2019-05-14 | 联发科技(新加坡)私人有限公司 | 逻辑门假信号建模的方法 |
JP2019176327A (ja) * | 2018-03-28 | 2019-10-10 | ファナック株式会社 | 電子装置 |
JP2020123820A (ja) * | 2019-01-30 | 2020-08-13 | ファナック株式会社 | 電子装置及びノイズ除去システム |
CN112580279A (zh) * | 2020-12-07 | 2021-03-30 | 海光信息技术股份有限公司 | 逻辑电路的优化方法、优化装置以及存储介质 |
-
2013
- 2013-11-13 JP JP2013234534A patent/JP2015095786A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109753675A (zh) * | 2017-11-03 | 2019-05-14 | 联发科技(新加坡)私人有限公司 | 逻辑门假信号建模的方法 |
CN109753675B (zh) * | 2017-11-03 | 2023-01-24 | 联发科技(新加坡)私人有限公司 | 逻辑门假信号建模的方法 |
JP2019176327A (ja) * | 2018-03-28 | 2019-10-10 | ファナック株式会社 | 電子装置 |
JP2020123820A (ja) * | 2019-01-30 | 2020-08-13 | ファナック株式会社 | 電子装置及びノイズ除去システム |
CN112580279A (zh) * | 2020-12-07 | 2021-03-30 | 海光信息技术股份有限公司 | 逻辑电路的优化方法、优化装置以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3836715B2 (ja) | リーク低減制御を論理回路に挿入するシステム及び方法 | |
JP2015095786A (ja) | 論理回路及び論理回路設計支援装置及び論理回路設計支援方法及びプログラム | |
JP2009053989A (ja) | 半導体回路設計方法 | |
JP2004054756A (ja) | 消費電力見積り装置及び方法 | |
Roy et al. | OSFA: A new paradigm of aging aware gate-sizing for power/performance optimizations under multiple operating conditions | |
Függer et al. | A faithful binary circuit model | |
Singh et al. | Multi-bit pulsed-latch based low power synchronous circuit design | |
US8522187B2 (en) | Method and data processing system to optimize performance of an electric circuit design, data processing program and computer program product | |
Senthilpari et al. | Proposed low power, high speed adder-based 65-nm Square root circuit | |
Sung et al. | Clock-logic domino circuits for high-speed and energy-efficient microprocessor pipelines | |
KR102440129B1 (ko) | 저전력 모드 지원 컴퓨터 시스템 및 그것의 방법 | |
Golanbari et al. | Hold-time violation analysis and fixing in near-threshold region | |
US10372851B2 (en) | Independently projecting a canonical clock | |
Dhanuskodi et al. | Energy optimization of unrolled block ciphers using combinational checkpointing | |
Ratkovic et al. | Physical vs. physically-aware estimation flow: case study of design space exploration of adders | |
US9305126B2 (en) | Switching activity reduction through retiming | |
JP4983609B2 (ja) | 半導体設計方法、装置、およびプログラム | |
US10289786B1 (en) | Circuit design transformation for automatic latency reduction | |
Kamal et al. | Design of NBTI-resilient extensible processors | |
Lin et al. | Optimal wire retiming without binary search | |
Tatapudi et al. | A mesochronous pipelining scheme for high-performance digital systems | |
Liu et al. | Fault-duration and-location aware ced technique with runtime adaptability | |
Eghbalkhah et al. | CSAM: A clock skew-aware aging mitigation technique | |
Paik et al. | Clock gating synthesis of pulsed-latch circuits | |
Held et al. | Gate sizing |