IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 新唐科技股▲ふん▼有限公司の特許一覧

特許7066791ゲートクロックを用いたデータサンプリング整合性検査の電子デバイスおよび方法
<>
  • 特許-ゲートクロックを用いたデータサンプリング整合性検査の電子デバイスおよび方法 図1A
  • 特許-ゲートクロックを用いたデータサンプリング整合性検査の電子デバイスおよび方法 図1B
  • 特許-ゲートクロックを用いたデータサンプリング整合性検査の電子デバイスおよび方法 図2A
  • 特許-ゲートクロックを用いたデータサンプリング整合性検査の電子デバイスおよび方法 図2B
  • 特許-ゲートクロックを用いたデータサンプリング整合性検査の電子デバイスおよび方法 図3A
  • 特許-ゲートクロックを用いたデータサンプリング整合性検査の電子デバイスおよび方法 図3B
  • 特許-ゲートクロックを用いたデータサンプリング整合性検査の電子デバイスおよび方法 図3C
  • 特許-ゲートクロックを用いたデータサンプリング整合性検査の電子デバイスおよび方法 図4
  • 特許-ゲートクロックを用いたデータサンプリング整合性検査の電子デバイスおよび方法 図5
  • 特許-ゲートクロックを用いたデータサンプリング整合性検査の電子デバイスおよび方法 図6
  • 特許-ゲートクロックを用いたデータサンプリング整合性検査の電子デバイスおよび方法 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-05-02
(45)【発行日】2022-05-13
(54)【発明の名称】ゲートクロックを用いたデータサンプリング整合性検査の電子デバイスおよび方法
(51)【国際特許分類】
   G06F 21/71 20130101AFI20220506BHJP
   H03K 19/00 20060101ALI20220506BHJP
【FI】
G06F21/71
H03K19/00 220
【請求項の数】 10
(21)【出願番号】P 2020136909
(22)【出願日】2020-08-14
(65)【公開番号】P2021047850
(43)【公開日】2021-03-25
【審査請求日】2020-08-14
(31)【優先権主張番号】16/571,255
(32)【優先日】2019-09-16
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】508197206
【氏名又は名称】新唐科技股▲ふん▼有限公司
(74)【代理人】
【識別番号】100102923
【弁理士】
【氏名又は名称】加藤 雄二
(72)【発明者】
【氏名】ジヴ ハーシュマン
【審査官】吉田 歩
(56)【参考文献】
【文献】米国特許出願公開第2017/0344438(US,A1)
【文献】特開2014-038294(JP,A)
【文献】中国特許出願公開第105391542(CN,A)
【文献】国際公開第2013/005313(WO,A1)
【文献】米国特許出願公開第2011/0004813(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/71
H03K 19/00
(57)【特許請求の範囲】
【請求項1】
周期的なクロックサイクルを有するクロック信号を生成するようなクロック生成回路と、
複数の内部ネットと1つ以上の出力を含む組合せ論理回路と、
組み合わせ論理回路のそれぞれの出力をクロック信号に従って周期的にサンプリングするように構成された1つ以上の機能状態サンプリングコンポーネントと、
保護ロジックと、を備え
前記保護ロジックは、
組合せ論理回路の内部ネットまたは出力から1つ以上の信号を受信し、
1つ以上の受信信号において、組合せ論理回路の設計に従って信号が安定であると予想される、周期的クロックサイクルの所定の部分の間に発生する信号不安定性を検出し、検出された信号の不安定性に応じて応答動作を開始する
ことを特徴とする電子デバイス。
【請求項2】
前記保護ロジックは、パルスを表す制御信号を受信するように構成され、
前記制御信号は、
前記クロック信号から導出され、且つ前記クロック信号のサイクル性を有する基準時間又はサンプリング時間に基づいて前記クロックサイクルの所定の部分を定義し、前記信号が安定であると予想され、且つ前記制御信号を用いて周期なクロックサイクルの予め定義された部分で信号不安定性が発生することを検出する請求項1に記載の電子デバイス。
【請求項3】
前記保護ロジックは、
前記検出された信号不安定性に応じてパルス発生させ、保護状態サンプリングコンポーネントのデータ入力を前記パルスで駆動し、且つ保護状態サンプリングコンポーネントの出力に応じて応答動作を開始する請求項1に記載の電子デバイス。
【請求項4】
前記保護ロジックは、
検出された信号の不安定性に応じて修正されたクロック信号を生成し、前記修正されたクロック信号で保護状態サンプリングコンポーネントのクロック入力を駆動し、且つ保護状態サンプリングコンポーネントの出力に応じて応答動作を開始し、
前記修正されたクロック信号は、前記受信された信号と前記クロック信号によって生成される請求項1に記載の電子デバイス。
【請求項5】
前記保護ロジックは、前記組合せ論理回路のクリティカルタイミングパス以外の各内部ネットワークから信号を受信する請求項1に記載の電子デバイス。
【請求項6】
保護ロジックで実行される方法であって、
複数の内部ネットワークと1つ以上の出力を有する組合せ論理回路を保護する、周期的なクロックサイクルを有するクロック信号が前記出力に対してサンプリングする方法であって、
前記組合せ論理回路の内部ネットワークまたは出力から1つ以上の信号を受信することと、
前記1つ以上の信号から、周期的なクロックサイクルの予め定義された部分の間に発生する信号不安定性の検出を行うことと
検出された信号不安定性に応じて応答動作を開始することと、
を含むことを特徴とする方法。
【請求項7】
パルスを表す制御信号を受信し、前記クロック信号から導出され、且つ前記クロック信号のサイクル性を有する基準時間又はサンプリング時間に基づいて前記クロックサイクルの所定の部分を定義し、前記信号が安定であると予想され、且つ前記制御信号を用いて周期なクロックサイクルの予め定義された部分で信号不安定性が発生することを検出する請求項6に記載の方法。
【請求項8】
前記応答動作を開始することは、
検出された信号不安定性に応じてパルスを発生させ、保護状態サンプリングコンポーネントのデータ入力をパルスで駆動し、且つ保護状態サンプリングコンポーネントの出力に応じて応答動作を開始することを含む
請求項6に記載の方法。
【請求項9】
前記応答動作を開始することは、
検出された信号不安定性に応じて修正されたクロック信号を生成し、修正されたクロック信号で保護状態サンプリングコンポーネントのクロック入力を駆動し、且つ保護状態サンプリングコンポーネントの出力に応じて応答動作を開始することを含み、
前記修正されたクロック信号は、前記受信された信号と前記クロック信号によって生成される請求項6に記載の方法。
【請求項10】
前記信号の受信は、組合せ論理回路のクリティカルタイミングパス以外の各内部ネットワークから1つ以上の信号を受信する請求項6に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子回路におけるデータの安全性に関わり、特に故障注入攻撃を防止する方法およびシステムに関するものである。
【背景技術】
【0002】
故障注入攻撃は、安全な電子回路(例えば、暗号回路)から情報をアクセス、分析、または抽出するための一連の技術である。通常では、故障注入攻撃は例として、物理的に信号線と接触すること、高出力パワーレーザーあるいは電磁パルスを印加すること、または電源もしくは他の外部インターフェース上でグリッチを引き起こすことが挙げられる。前記の攻撃による故障は、機密な情報を回路に出力させるか、または他の方法で攻撃者が回路または保存されている情報への侵入をサポートすることが予想される。
【0003】
故障注入攻撃の検出および/または軽減させる為に用いる様々な技術は当技術分野で既に知られている。例えば、米国特許出願公開2009/031503は電子回路の一部の第1フリップフロップのグループから少なくとも1つの第1フリップフロップの状態を検出するための方法および回路について記載している。前記のグループの第1フリップフロップのそれぞれの出力を機能目的とは無関係に組み合わせて、信号とその反転信号を提供することによって、2つの第2フリップフロップをトリガする。データ入力を強制的に同じ状態にし、第2フリップフロップの各出力フリップフロップを組み合わせて、検出結果を提供する。少なくともこのグループの第1フリップフロップにある個々のトリガエッジのパルスからなるパルス信号が、第2フリップフロップを起動することができるが挙げられる。
【0004】
別の例として、米国特許7,977,965は、デジタルICにおけるソフトエラー検出用のシステムおよび方法を記載している。前記のシステムはラッチに結合された観察回路を含み、前記の観察回路はラッチの状態が変化すると応答できる。システムはさらにラッチおよび観察回路に供給される同期クロッキングを含む。ラッチに対してクロッキングがラッチがデータを受信させない時間枠を定め、且つクロッキングは同期する方法で、観察回路での応答を有効にする。クロッキングは、ラッチがデータを受信させない際に、時間枠内だけで回路の応答を有効にするような方法で同期される。
【0005】
米国特許出願公開2005/0235179は一種な論理回路を記載し、前記の論理回路は論理モジュールを含んでおり、前記の論理モジュールは機能同期フリップフロップをさらに含んでいる。前記の機能同期フリップフロップは複数の並行ビットの機能結果を受信し、且つ同期結果を提供する。それらは、機能フリップフロップの完全性をチェックするためのモジュールは、機能結果を受信して第1のコードを提供する第1コーディングブロックと、同期結果を受信して第2のコードを提供する第2コーディングブロックと、第1結果を受信する同期検査フリップフロップを含む、および第2コードと第3コードと比較し且つ第1エラー信号を提供する比較器を含む。
【先行技術文献】
【特許文献】
【0006】
【文献】米国特許公開2005/0235179
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明の実施例は、組合せ論理回路と、1つ以上の機能状態サンプリングコンポーネントと、1つ以上の保護状態サンプリングコンポーネントおよび保護ロジックを含む電子デバイスを提供する。組合せ論理回路は、1つ以上の出力を持っている。機能状態サンプリングコンポーネントは、組合せ論理回路の各出力に対してサンプリングするように構成されている。保護状態サンプリングコンポーネントは、それぞれの機能状態サンプリングコンポーネントに関連付けられており、各保護状態サンプリングコンポーネントは機能状態サンプリングコンポーネントと同じ出力をする組合せ論理回路に対してサンプリングを行うが、機能状態サンプリングコンポーネントと対照的に、保護状態サンプリングコンポーネントは一定の時間オフセットを有する(predefined time offset)。保護ロジックは、機能状態サンプリングコンポーネントによってサンプリングされた出力と保護状態サンプリングコンポーネントによってサンプリングされた各出力との相違を検出し、相違に応じて応答動作を開始するように構成されている。
【0008】
本発明の実施例において、電子デバイスは遅延出力を生成するために組合せ論理回路の出力を遅延させるように構成された遅延要素をさらに含んでいる。機能状態サンプリングコンポーネントは、前記の出力と遅延出力のうちの片方をサンプリングするように構成され、対応する保護状態サンプリングコンポーネントは、出力と遅延出力のもう片方をサンプリングするように構成されている。
【0009】
他の実施例において、電子デバイスは遅延クロック信号を発生させるように構成された遅延要素も備えていて、機能状態サンプリングコンポーネントはクロック信号と遅延クロック信号の片方をサンプリングクロックとするように構成されており、対応する保護状態サンプリングコンポーネントは、クロック信号と遅延クロック信号のもう片方を用いてサンプリングクロックとするように構成されている。
【0010】
本発明の1つの実施例において、機能状態サンプリングコンポーネントと対応する保護状態サンプリングコンポーネントはフリップフロップ(FFs)を含む。もう1つの実施例では、機能状態サンプリングコンポーネントは、第2ラッチを駆動する第1ラッチを含み、対応する保護状態サンプリングコンポーネントは、第1ラッチに関連する第3ラッチを含む。
【0011】
また他の本発明の実施例では、保護ロジックは2つ以上の機能状態サンプリングコンポーネントと2つ以上の保護状態サンプリングコンポーネントとの間で検出された複数の相違を統合し、前記の相違に応じて応答動作を開始するように構成されている。さらに他の実施例では、保護ロジックは検出された相違がクロックサイクルの所定された一部の期間だけで発生したときに応答動作を開始するように構成されている。本発明の実施例では、機能状態サンプリングコンポーネントは、第1しきい電圧を有する組合せ論理回路の出力をサンプリングするように構成され、対応する保護状態サンプリングコンポーネントは、第1しきい電圧よりも高い第2しきい電圧を有する組合せ論理回路の同じ出力をサンプリングするように構成されている。
【0012】
本発明の実施例によれば、電子デバイスを保護するための方法がさらに1つ提供する。前記の方法は、1つ以上の機能状態サンプリング・コンポーネントを使用して、組合せ論理回路の1つ以上の出力をサンプリングする。また、それぞれ機能状態サンプリング・コンポーネントと対応する1つ以上の保護状態サンプリングコンポーネントを使用して1つ以上の出力をサンプリングする。各保護状態サンプリングコンポーネントは、それぞれの機能状態サンプリングコンポーネントと同じである組合せ論理回路の出力をサンプリングするが、各保護状態サンプリングコンポーネントは、機能状態サンプリングコンポーネントと対照的に一定の時間オフセットを有する。機能状態サンプリングコンポーネントによりサンプリングされた出力と保護状態サンプリングコンポーネントによりサンプリングされた各出力との相違を検出し、その相違に応じて応答動作を開始する。
【0013】
本発明の実施例によれば、クロック発生回路、組合せ論理回路、1つ以上の機能状態サンプリングコンポーネント、および保護ロジックを含む電子デバイスも提供される。クロック発生回路は、周期的なクロックサイクルを有するクロック信号を生成するように構成される。組合せ論理回路は、多数の内部ネットおよび1つ以上の出力を含む。1つ以上の機能状態サンプリングコンポーネントは、クロック信号に従って周期的に組み合わせ論理回路のそれぞれの出力をサンプリングするように構成される。保護ロジックは、組合せ論理回路の内部ネットまたは出力から1つ以上の信号を受信するように構成され、1つ以上の受信信号において、組合せ論理回路の設計に従って、周期的なクロックサイクルの所定の一部の期間に発生する信号の不安定性を検出する。組合せ論理回路の設計によれば、信号は安定していると期待され、検出された信号不安定性に応じて応答動作を開始する。
【0014】
一部の実施例において、保護ロジックは制御信号を受信するように構成される。前記の制御信号は、クロック信号からクロックサイクルの部分を定義するとしてとして導出される。前記の予め定義された部分では、信号が安定していると期待され、且つ前記の制御信号を用いて周期なクロックサイクルの予め定義された部分で信号不安定性が発生することを検出する。1つの実施例では、保護ロジックは、検出された信号不安定性に応じてパルスを発生させ、保護状態サンプリングコンポーネントのデータ入力をパルスで駆動し、且つ保護状態サンプリングコンポーネントの出力に応じて応答動作を開始する。
【0015】
本発明の実施例において、保護ロジックは検出された信号不安定性に応じて修正されたクロック信号を生成し、修正されたクロック信号で保護状態サンプリングコンポーネントのクロック入力を駆動し、且つ保護状態サンプリングコンポーネントの出力に応じて応答動作を開始するように構成されている。実施例では、保護ロジックは、組合せ論理回路のクリティカルタイミングパス以外の各内部ネットワークから信号を受信するように構成される。
【0016】
本発明の実施例によれば、複数の内部ネットワークと1つ以上の出力を有する組合せ論理回路を保護するための方法が提供され、周期的なクロックサイクルを有するクロック信号が出力に対してサンプリングする。前記の方法は、組合せ論理回路の内部ネットワークまたは出力から1つ以上の信号を受信することを含む。周期的なクロックサイクルの予め定義された部分の間に発生する信号不安定性の検出は1つ以上の受信信号にて行われ、組合せ論理回路の設計に基づくと、信号が安定することが期待される。検出された信号不安定性に応じて応答動作を開始する。
【図面の簡単な説明】
【0017】
図1A図1Aは、本発明の実施例において、相対的遅延を有する一対のフリップフロップ(FFs)を使用して、データサンプリングの完全性を検証する電子回路のブロック図である。
図1B図1Bは、本発明の実施例において、相対的遅延を有する一対のフリップフロップ(FFs)を使用して、データサンプリングの完全性を検証する電子回路のブロック図である。
図2A図2Aは、本発明の実施例において、重複ラッチおよび相対遅延を有するフリップフロップ回路を使用して、データサンプリングの完全性を検証する回路のブロック図である。
図2B図2Bは、本発明の実施例において、重複ラッチおよび相対遅延を有するフリップフロップ回路を使用して、データサンプリングの完全性を検証する回路のブロック図である。
図3A図3Aは、本発明の実施例において、複数の組合せ論理ネットワークからの信号間の相違を検出することによってデータサンプリングの完全性を検証する回路のブロック図である。
図3B図3Bは、本発明の実施例において、複数の組合せ論理ネットワークからの信号間の相違を検出することによってデータサンプリングの完全性を検証する回路のブロック図である。
図3C図3Cは、本発明の実施例において、複数の組合せ論理ネットワークからの信号間の相違を検出することによってデータサンプリングの完全性を検証する回路のブロック図である。
図4図4は、本発明の実施例において、クリティカルタイミングパス以外の複数の組合せ論理ネットワークを使用して、データサンプリングの完全性を検証する回路のブロック図である。
図5図5は、本発明の実施例において、クロックゲーティングを使用してデータサンプリングの完全性を検証する回路のブロック図である。
図6図6は、本発明の実施例において、クロックゲーティングを使用してデータサンプリングの完全性を検証する回路のブロック図である。
図7図7は、本発明の実施例において、クロックゲーティングを使用してデータサンプリングの完全性を検証する回路のブロック図である。
【発明を実施するための最良の形態】
【0018】
本発明で説明される実施例は、電子デバイスをタイミング違反を引き起こす攻撃(例えば、故障注入攻撃)から保護するための改良された方法および回路を提供する。本発明の実施例は、主に故障注入する為の故障注入攻撃に関するが、開示される技術は、他の様々なタイプの攻撃を防ぐためにも有効である。開示された技術は、メモリデバイスおよび組み込みコントローラのような様々なタイプの電子デバイスで使用することができる。
【0019】
本発明の実施例において、電子デバイスは組合せ論理回路を含んでいる。組合せ論理回路は、通常だと機能データに対して特定の動作を実行する複数の相互接続された論理ステージを備えている。組合せ論理回路は、1つ以上の入力で処理する機能データを受信し、1つ以上の出力で処理結果を提供する。
【0020】
前記の電子デバイスは、組合せ論理回路の出力を連続的なクロックサイクルでサンプリングするように構成された1つ以上のフリップフロップ(FFs)をさらに含む。前記のフリップフロップは本発明では「機能フリップフロップ」と呼ばれ、組み合わせ論理回路の出力で機能信号の状態をサンプリングする。機能フリップフロップのサンプリング出力は、次のクロックサイクルで組合せ論理回路の入力として機能する。
【0021】
実際には、組合せ論理は入力を処理するのに時間がかかる(出力処理結果まで)。前記の時間は本発明では伝搬遅延と呼ぶ。正確に動作するためには、組み合わせ論理の伝搬遅延は電子デバイスのセットアップ時間とホールド時間の要求に適合する必要がある。そうでないと、機能フリップフロップがエラーした値をサンプリングすることがある(このようなイベントは「タイミング違反」と呼ばれることがある)。正常動作条件(デバイスがサポートするように設計された条件)において、セットアップ時間とホールド時間の要求を満たすと、設計を通して組合せ機能フリップフロップに提供される論理の出力が安定的に正確な処理結果を出すことを保証し、機能フリップフロップが正しくサンプリングすることを保証する。
【0022】
攻撃の例として、攻撃者は、例えば機能フリップフロップまたは組合せ論理回路にグリッチをを挿入または誘導することによるか、または正常な動作以外に電子デバイスを操作することによって、機能フリップフロップにエラーした値をサンプリングされようとする可能性がある。例えば、クロック周波数、温度または電圧範囲を改竄する。
【0023】
例えば、ある攻撃のイメージシーンでは、故障注入攻撃により、組合せ論理回路の入力に1つ以上のグリッチ(glitch)が発生すると考えると、前記のグリッチは、例えば、1ナノ秒未満の短い電圧スパイク、または任意の適切なグリッチを含むことができる。グリッチは、組合せ論理回路に入り、1つ以上の出力に伝搬することができる。
【0024】
組合せ論理回路の特定の出力において、伝搬したグリッチの効果が議論された出力をサンプリングする機能フリップフロップのサンプリング時間と偶然に一致した場合、機能フリップフロップがエラー状態をサンプリングする可能性がある。そして、前記のエラー状態は、次のクロックサイクルで組合せ論理回路への入力として使用され、このような場合は、組合せ論理回路に故障をもたらす可能性がある。例えば、故障注入攻撃のシナリオでは、組合せ論理回路を異常状態に強制的にさせることで望ましくない情報が漏れる恐れがある。
【0025】
攻撃から電子デバイスを保護するために、一部の実施例では、電子デバイスは、1つ以上の他のフリップフロップ(「保護フリップフロップ」とも呼ばれる)と保護ロジックを含む。各保護フリップフロップは、機能フリップフロップの1つと関連しており、対応する機能フリップフロップの出力と同じ組合せ論理回路の出力をサンプリングするように構成されているが、各保護フリップフロップには一定の時間オフセットがある。一般的に、時間オフセットは、組合せ論理またはその他の故障注入によって伝播されるグリッチによって、サンプリング時間の近くの出力(組合せ論理)が不安定性であるため、異なる値が取り込まれる可能性が高いほど、十分長く時間を設定している。
【0026】
前記の保護ロジックは、機能フリップフロップによってサンプリングされた出力と保護フリップフロップによってサンプリングされた各時間オフセット出力との差を検出するように構成されている。相違が検出されると、保護ロジックは、適切な応答動作を開始するように構成され、例えばアラートが発令される。
【0027】
本発明は、二重サンプリング方式の様々な実施例を説明する。例えば、時間オフセットは、2つのフリップフロップのうちの1つのデータ(組合せ論理出力)またはクロック信号のいずれかを遅延させることによって達成され得る。一部の実施例では、機能フリップフロップの一部(例えば、1つのラッチ)が保護フリップフロップにコピーされる。一部の実施例においては、保護ロジックは、機能/保護フリップフロップの複数のペアから起こりえる相違を統合する。
【0028】
一部の実施例において、開示された技術は、機能フリップフロップの選択された一部のみを保護する。いくつかの実施例において、機能フリップフロップと対応する保護フリップフロップは、異なるしきい電圧でサンプリングするように構成されているので、双方のサンプリング時間にグリッチが発生する場合でも、保護フリップフロップまたは機能フリップフロップのいずれかの片方が小さなグリッチを捕捉する。一部の実施例では、保護フリップフロップへの入力は、対応する機能のフリップフロップの入力に対して反転される。
【0029】
また、本発明にて開示した技術はフリップフロップに限定されず、他の様々な種類の適切な状態サンプリングコンポーネントを使用して実施することが可能。本発明の文脈および特許請求の範囲において、「状態サンプリングコンポーネント」という用語は、組合せ論理回路の出力の現在の状態をサンプリングする任意のコンポーネントを指す。状態サンプリングコンポーネントは、例えば、ラッチ、静的ランダムアクセスメモリ(SRAM)ユニット、または他の適切なタイプの記憶ユニットを含むことができる。明確化するために、以下の説明は、例として主にフリップフロップを参照する。
【0030】
本発明で説明される他の実施例において、保護ロジックは、組合せ論理回路から選択された信号を受信する。保護ロジックは、1つ以上の信号で、クロックサイクルの予め定義された部分の間に発生する信号不安定性を検出するように構成されており、組合せ論理回路の設計によれば、信号は安定していることが期待される。検出された信号の不安定性に応じて適切な応答動作を開始する。
【0031】
本発明は、上記技術のいくつかの変形例を説明する。いくつかの実施例では、保護ロジックは検出された信号の不安定性に応じてパルスを発生し、前記のパルスを利用してラッチのデータ入力を駆動する。前記のラッチの出力は応答動作を起動する為に使用される。他の実施例では、保護ロジックは、検出された信号不安定性に応じて修正されたクロック信号を生成し、修正されたクロック信号を用いてフリップフロップのクロック入力を駆動する。フリップフロップ出力は応答動作を起動する為に使用される。例の実施例では、選択された信号は、組合せ論理回路のクリティカルタイミングパス以外のネットワークから取得する。
【0032】
図1 Aは本発明の実施例によるデータサンプリングの完全性を検証するための回路の電子デバイス20のブロック図である。電子デバイス20は、例えば、開示された技術を使用する故障注入攻撃から保護される安全な不発性メモリデバイスまたは安全な組み込みコントローラを含むことができる。あるいは、電子デバイス20は、攻撃を防止する必要がある他の適切なタイプの電子デバイスを含むことができる。
【0033】
通常、必ずしも必要ではないが、電子デバイス20の各種コンポーネントは、集積回路(IC)に含まれる。電子デバイス20は、一般に、指定された機能を実行するための各種の入出力(図示せず)を含む。
【0034】
本例では、電子デバイス20は、組合せ論理回路24を含み、簡潔する為に「組合せ論理」とも呼ぶ。組合せ論理回路24は、一般に、機能データに対して何かの指定された動作を共に実行する複数の相互接続された論理ステージ(例えば、論理ゲート)を含む。例えば、安全なデバイスでは、組合せ論理回路24は、暗号化または解読、または安全な署名または検証などの暗号操作の一部または全部を実行することが可能。しかしながら、一般的に、開示された技術は、他の適切な機能を実行する任意の他の適切なタイプの組合せ論理と共に使用することができる。組合せ論理回路24は、処理の為の機能データを受信するための1つ以上の入力と、処理結果を出力するための1つ以上の出力とを含む。
【0035】
電子デバイス20は、1つまたは複数のデュアルサンプリングのフリップフロップ回路(dual-sampling FF、DFF)28をさらに含む。各フリップフロップ回路28は、すべてのクロックサイクルで組合せ論理回路24のそれぞれの出力をサンプリングする。各フリップフロップ回路28のサンプリングされた出力は、次のクロックサイクルにおいて、組合せ論理回路24と対応する入力として使用される。各フリップフロップ回路28はクロック信号(CK)をサンプリングクロックとする。前記のクロック信号は、適切なクロック生成回路によって生成され、クロックツリー論理40(clock tree logic)によって提供される。クロックツリー論理はクロックルート(clock root)に接続できる。
【0036】
図1Aの底部の差し込み図は、各フリップフロップ回路28の内部構成を示すものである。フリップフロップ回路28によりサンプリングされた組合せ論理回路24の出力は、Dinと表す。組合せ論理回路24への入力としてフィードバックされるフリップフロップ回路28のサンプリング出力はQoutと表現する。
【0037】
実施例において、フリップフロップ回路28は、機能フリップフロップ32Aと保護フリップフロップ32Bとを含む。本実施例では、2つの前記のフリップフロップは遅延フリップフロップであるが、前記の実施例以外に他の適切なタイプのフリップフロップで代替使用することができる。機能フリップフロップ(DFF)32Aは、各CK周期にQoutを生成するようにDinをサンプリングするように構成されている。保護フリップフロップ(DFF)32Bは、Dinの遅延レプリカをサンプリングするように構成されている。
【0038】
前記の例では、フリップフロップ回路28は、Dinを所定の時間オフセットだけ遅延させる遅延要素36を含む。保護フリップフロップ32Bは、遅延素子(DLY)36の出力において、遅延Dinをサンプリングする。機能フリップフロップ32Aおよび保護フリップフロップ32Bは、同じクロック信号(CK)をサンプリングクロックとして用いている。前記したように、遅延要素36の遅延は、通常では、機能フリップフロップ32Aおよび保護フリップフロップ32Bが攻撃が発生したときに異なる値を取り込むように十分に長く設定される。一方、長い遅延要素は面積を占有し、遅延によってフリップフロップ回路のセットアップ時間またはホールド時間のマージンを減少する為、過剰な遅延は回避されるべきである。実施例において、遅延要素36の遅延は0.5~3ナノ秒の範囲内であり、他の任意の適切な遅延値を使用してもよい。
【0039】
排他的論理和(XOR)ゲート44は、機能フリップフロップ32Aと保護フリップフロップ32Bのサンプリング出力(Q)との間で論理XOR演算を実行する。XORゲート44の出力はアラート信号として使用される。
【0040】
前記のDin上にグリッチがない場合、機能フリップフロップ32Aと保護フリップフロップ32Bのサンプリング出力は同じであるため、アラート信号は低レベルのままである。Dinがフリップフロップのサンプリング時間の直前に(遅延要素36よりも遅延が短い)変更されると、通常では、機能フリップフロップ32Aと保護フリップフロップ32Bの片方は、変更後の値をサンプリングし、もう他方のフリップフロップは変更前の値をサンプリングする。前記の二つのフリップフロップ器が同じ値をサンプリングすると、警報信号は低レベルに保たれる。機能フリップフロップ32Aと保護フリップフロップ32Bが異なる値をサンプリングすると、アラート信号は高くなり、データサンプリングの完全性が損なわれることを示す。したがって、前記の例では、XORゲート44は、機能フリップフロップ32Aと保護フリップフロップ32Bのサンプリング出力との違いを検出する保護ロジックとして使用される。
【0041】
図1Aの例では、保護フリップフロップ(32B)によってサンプリングされたデータ信号(Din)に遅延が印加され、機能フリップフロップ(32A)が遅延していないデータ信号(Din)をサンプリングする。しかしながら、代わりに、機能フリップフロップ(32A)によってサンプリングされたデータ信号に遅延を適用してもよく、この場合、保護フリップフロップ(32B)は遅延していないデータ信号をサンプリングする。
【0042】
図1Aの例では、すべての機能フリップフロップは、それぞれの保護フリップフロップによって保護されている。代替する実施例においては、このようにして、機能フリップフロップの選択されたサブセットのみが前記の方法に保護される。
【0043】
本発明の実施例では、 図1Bは相対的な遅延を有するフリップフロップ(FFs)のペアを使用して、データサンプリングの完全性を検証するための代替フリップフロップ回路のブロック図である。図1Bの回路は、前記の図1Aのフリップフロップ器回路28の代わりに使用することが可能。本実施例は、時間オフセットがデータ信号の代わりにクロック信号を遅延させることによって達成されるという点で図1Aの実施例とは異なる。
【0044】
図1Bの実施例では、機能フリップフロップ32Aおよび保護フリップフロップ32Bは、非遅延データ信号Dinをサンプリングする(組合せ論理回路24の出力の1つ)。遅延要素36は、クロック信号(CK)を遅延させるように構成される。機能フリップフロップ32Aは、遅延していないクロック信号で提供され、保護フリップフロップ32Bは、遅延したクロック信号(遅延要素36の出力)によってク提供される。代替の実施例では、機能性フリップフロップ32Aは、遅延したクロック信号をそのサンプリングクロックとして使用することができ、この場合、保護フリップフロップ32Bは、非遅延のクロック信号をそのサンプリングクロックとして使用する。
【0045】
一部の実施例では、保護されたフリップフロップ構造のセット、例えば図1Bおよび図2Bの構造に対して、遅延されたクロックが一度に生成される。つまり、単一の遅延要素36は、複数の保護されたフリップフロップに役立つすることができる。
【0046】
場合によっては、XORゲート44に出力されるタイミング伝搬の違い(正しい回路動作中でも)により、アラート信号は機能フリップフロップ32A信号Qと保護フリップフロップ32B信号Qの遷移時間の前後で瞬時に判定されることがある。したがって、いくつかの実施例では、付加的なフリップフロップでアラーム信号をサンプリングして、前記のグリッチをフィルタリングして誤ったアラートを防ぐ。
【0047】
図2Aは、本発明の他の実施例による、データサンプリングの完全性を検証するためのフリップフロップ回路48のブロック図である。フリップフロップ回路48は、例えば、図1Aのフリップフロップ回路28の代わりに、電子デバイス20において使用されてもよい。前記の実施例および以下の図2Bの実施例は、対応する保護状態サンプリングコンポーネントを実現するために、機能状態サンプリングコンポーネント全体をコピーすることは必須ではないことを示している。
【0048】
図2Aの例では、機能状態サンプリングコンポーネントは1つのフリップフロップを含み、前記のフリップフロップは、第1ラッチL1と第1ラッチL1に駆動される第2ラッチL2の2つのラッチを含む。第1ラッチL 1は、データ信号D(組合せ論理回路24の出力の1つ)をサンプリングする。第2ラッチL 2は、第1ラッチL 1の出力をサンプリングし、回路48のサンプリングされた出力Qを出力する。第1ラッチL 1のイネーブル(E)入力は、クロック信号の反転形式で駆動される。第2ラッチL 2のイネーブル入力は、クロック信号の2次反転バージョンで駆動される。
【0049】
本例では、保護状態サンプリングコンポーネントは、L 11と表されるラッチを含む。ラッチL 11は、第1ラッチL 1と同じ(反転)のクロック信号によってイネーブルされ、データ信号Dの遅延レプリカをサンプリングする。データ信号の遅延レプリカは、遅延要素36によって生成される。XORゲート44は、第1ラッチL 1およびラッチL 11のサンプリングされた出力をXOR計算する。XORゲート44の出力はアラート信号として使用される。
【0050】
図2Aの例では、XORゲート44は、機能および保護状態サンプリングコンポーネントのサンプリング出力の相違を検出する保護ロジックとして使用される。
【0051】
図2Bは、本発明の他の実施例によって、データサンプリングの完全性を検証するためのフリップフロップ回路56の概略的に示すブロック図である。フリップフロップ回路56は、例えば、上の図1Aのフリップフロップ回路28の代わりに、電子デバイス20において使用することが可能。本実施例では、図2Aの実施例とは異なり、データ信号ではなくクロック信号を遅延させることによって時間オフセットを実現する。
【0052】
図2Bの実施例では、第1のラッチL1およびラッチL11は、非遅延データ信号Dをサンプリングする(組合せ論理回路24の出力の1つ)。遅延要素36は、(反転された)クロック信号を遅延させるように構成される。第1ラッチL1は、非遅延(反転)クロック信号によってイネーブルが、ラッチL11は遅延(反転)クロック信号(遅延要素36の出力)によってイネーブルされる。代替の実施例では、第1ラッチL1は、遅延(反転)クロック信号によってイネーブルされるが、ラッチL11は、非遅延(反転)クロック信号によってイネーブルされる。
【0053】
図2A及び図2Bにおいて、ラッチL 11は、クロック信号(CLK)が高レベルである場合にのみ出力を安定に保ち、誤ったアラート検出をフィルタリングする為、例えば、クロック信号(CLK)の下降したエッジによってアラートをサンプリングすることができる。複数のアラーム信号は、例えば、ORゲートなどで統合し、1つのサンプリングコンポーネントを一グループアラート信号に使用することが可能。
【0054】
図1A図1B図2Aおよび図2Bが示す電子デバイスおよび回路の構成は、単に概念の明確化のために描いた例である。代替の実施例では、他の任意の適切な構成を使用することができる。
【0055】
例えば、前記の実施例において、機能状態サンプリングコンポーネントと対応する保護状態サンプリングコンポーネントは、同じしきい電圧でデータ信号をサンプリングする。代替の実施例では、機能状態サンプリングコンポーネントは、対応する保護状態サンプリング素子よりも低いしきい電圧を有するように構成されてもよい。
【0056】
一部の実施例では、図1A図1B図2Aおよび図2Bのいずれかの説明した実施例は、従来のフリップフロップユニットの代わりに、単一のライブラリセルとして実施することができる。他の実施例では、これらの回路は、別のデバイスとして実装されてもよい(図に示してる通り)。
【0057】
機能フリップフロップと保護フリップフロップがサンプリングするデータとの間に相対的な遅延を挿入することに関する開示された任意の技術において、遅延を保護フリップフロップのサンプリングされるデータ信号の保護(この場合、機能フリップフロップは非遅延データ信号に対応)または機能フリップフロップにサンプリングされるデータ信号(この場合、保護フリップフロップは遅延していないデータ信号をサンプリングする)。
【0058】
複数の組合せ論理ネットで信号の不安定性を検出する攻撃検出。図3A及び図3Bは、本発明の実施例にある保護論理回路の電子デバイスの保護デバイスであり、保護論理回路は組合せ論理ネットから取得した信号の中から信号の不安定性でデータの完全性を検証する。
【0059】
図3Aの例とされてる回路は、組合せ論理回路から来た複数の選択された信号を統合する。図3Bの保護論理回路は、組合せ論理回路の設計によれば、信号が安定であることが期待されクロックサイクルの所定の部分内での信号の不安定性が発生するか否かを検査する。本発明の文脈では、「信号が不安定」と「信号の変化」という用語は、ある論理状態から別の論理状態への遷移、すなわち「低い」から「高い」またはその逆への遷移を指す。
【0060】
図3Aに示すように、フリップフロップ62は、組合せ論理回路24の出力をサンプリングする。各フリップフロップ62は、クロックサイクルごとに合成論理回路24のそれぞれの出力をサンプリングし、各フリップフロップ62のサンプリング出力をフリップフロップの対応する入力として用いる。次のクロックサイクルにおける組合せ論理回路24。各フリップフロップ62は、CKと表されるクロック信号によって供給され、このクロック信号は適切なクロック発生回路によって生成され、クロックツリー論理40によって提供される。典型的な回路も入力および出力を有するが、簡略化のために図では省略する。
【0061】
また、保護ロジックは、XORゲート60を含み、XORゲート60は組合せ論理24からの複数の信号の間で論理XORを実行し、論理「XOR」の出力を生成するようにする。また、前記のデバイスは、クロックツリー論理40から「パルス」を表す制御信号を出力する。前記のパルス信号は、クロック信号から導出され、且つクロックサイクルの「XOR」出力信号(XORゲート60)の一部は所定のフリップフロップ62で安定的にサンプリングされることを定義。前記の信号は、禁止された時間ウィンドウ内でXOR信号に変化が生じたか否かを検出する為に、図3Bおよび図3Cの回路にて使用することが可能。例えば、機能状態サンプリングコンポーネントのサンプリング時間に関連して、または、クロック信号の周期性を有する他の任意の適切な基準時間に対して、クロック周期の一部を定義してもよい。
【0062】
図3Bの回路は、図3Aの回路から統合されたXOR信号と「パルス」信号を受信する。遅延要素64の遅延は、遅延XOR信号によってDLY1として表す。XORゲート68は、統合されたXOR信号の遅延レプリカおよび非遅延レプリカをXORする。ANDゲート(AND gate)76は、XORゲート68の出力と「パルス」信号との間に論理ANDを生成する。ANDゲート76の出力はラッチ72(または他の適切な保護状態サンプリングコンポーネント)の「SET」データ入力を設定する。NOTゲート(NOT gate)80は、「パルス」信号を反転させ、ラッチ72の「RESET」入力を否定の「パルス」信号で駆動する。ラッチ72の出力はアラート信号とする。
【0063】
前記の構成では、アラート信号は(i)1つ以上の組合せ論理24の出力に変化(または他の信号が検出された場合、図4が示すように)、および(ii)前記の変化がデータ信号(組合せ論理回路24の出力)が安定していることが必要である時間間隔において、前記の場合のみ高くなる。
【0064】
図3Cは、本発明の実施例による図3Bの保護論理回路の代替的な実施例を概略的に示すブロック図である。上記の図3Bでは、ラッチ72は、各クロックサイクルごとに定期的にリセットされ、すなわち、アラーム信号がクリアされ、グリッチ検出プロセスがサイクルごとに自動的に繰り返される。図3Cでは、グリッチが検出されると、アラート信号は外部の「RESET」信号が有効になるまで高いレベルに維持される。
【0065】
図3A~3Cは単に例としてのみ示されている。代替の実施例では、任意の他の適切な統合案を使用することが可能。
【0066】
図4は、本発明の実施例にある電子デバイス81のブロック図であり、前記の電子デバイス81は、クリティカルタイミングパスから外れている複数の組合せ論理ネットを用いてデータのサンプリングの完全性を検証する回路を備えている。組合せ論理回路24がいくつかの部分に分割されて示されている(楕円形として描かれている)。組合せ論理回路24を介したクリティカルタイミングパスは破線のクリティカルタイミングパス84で示している。
【0067】
本例では、N1、N2とN3で示されている3つのネットを選択して保護する。保護ロジックの一部と考えられるXORゲート82は、ネットN1、N2、N3から取得された信号をXORする。XORゲート82の出力は、前記の図3Bまたは図3Cの回路または図5~7のような保護回路に入力されるXOR信号として使用される。XORゲート82の役割は、前記の図3AのXORゲート60と同様である。
【0068】
様々な実施例において、電子デバイス81の任意の適切なネットを選択して保護することができる。特に、クリティカルタイミングパス84以外のネットを選択することが有利である。前記の選択により,保護スキームによるセットアップ時間および/またはホールド時間のマージンの減少が許容される。保護スキームは、電子デバイス81の全体的な性能(例えば、達成可能な最大クロックレート)を低下させない。
【0069】
図3A-3Cに示される電子デバイスおよび回路の構成は、単に概念を明確にするために描いた例である。代替の実施例では、他の任意の適切なものが使用されてもよい。
【0070】
例えば、前記の例示的な回路は、組合せ論理回路24の複数のネットから信号を収集しているが、開示されたされた技術は単一ネットにも適用可能。後者の場合は、XORゲート60を省略することができる。
【0071】
様々な実施例において、前記の様々な回路によって生成された「アラート」信号は、グリッチをサンプリングしたことが検出されたときに起動または実行するために使用され得る。例えば、電子デバイス20は、ホストまたは人間のユーザにアラートを発信し、一部または全部のデバイス回路または機能をオフにしたり、敏感なデータを消去することができる。
【0072】
図5および図6は、本発明の実施例において、クロックゲーティングを使用してデータサンプリングの完全性を検証するための保護論理回路を概略的に示すブロック図である。図5および図6の回路は、前記の図3Bおよび図3Cと同様である。それらは、組合せ論理回路24の選択されたネットにおける信号不安定性(例えば、グリッチ)を検出、前記の不安定性は信号が安定していると予想されるクロックサイクルの一部の間にて発生する。時系列周期の一部で発生し、それらの信号は安定であることが期待される。しかしながら、図3B及び図3Cとは異なり、図5及び図6は、フリップフロップのデータ入力ではなくフリップフロップのクロックゲーティング入力によりアラームをトリガする。
【0073】
図5を参照する。図5の回路はXORゲート90を含み、XORゲート90は選択された出力および/または組合せ論理回路24の内部ネットから取得された2つ以上の信号の間で論理的XORを実行して、統合された「XOR」出力を生成する。本例では、「1」、「2」と「3」を示される3つの信号を例示しているが、開示された技術は、他の適切な数の信号とともに使用することが可能。以下の図7は、多数のネットから取得された多数の信号を処理するための他のスキームをさらに提供する。
【0074】
遅延要素64の遅延は、遅延XOR信号でDLY1と示される。XORゲート68は、XOR信号の遅延レプリカと非遅延レプリカをXOR計算する。インバータ(NOTゲート)94は、XORゲート68の出力を反転する。これまでの回路は「信号変化検出器」と見なすことができ、選択されたネットワークの1つ(「1」、「2」、または「3」)に信号変化(例えば攻撃によるグリッチ)が発生するたびに、インバータ94は、長さがDLY1のパルスを出力する。
【0075】
本実施例では、クロック信号(CLK)が低い(「0」)時に検出された信号の変化が発生した場合にのみ、アラームをトリガするべきである。本実例では、「低」から「高」(クロック上昇)へのクロック遷移上でサンプリングを行うことを前提にする。正常の動作では、クロックが「低」の時は安定している信号を選択する必要がある。
【0076】
関心のある信号の変化だけを検出するために、ORゲート98は、インバータ(NOTゲート)94の出力とクロック信号(CLK)(適切なクロック発生回路によって発生成)との間の論理ORを出力する。ORゲート98の出力における信号は、本発明では修正されたクロック信号と称される。前記の修正されたクロック信号は、保護フリップフロップ102のにクロッキングとして使用される。保護フリップフロップ102のデータ入力(D)は常に「高い」に設定されている。通常、リセット時にはRST線を使用して保護フリップフロップ102を「0」に起動する。
【0077】
保護フリップフロップ102の出力(Q)(「TOGGLE(トグル)」と示される)は、以下のように攻撃を検出する為に用いられ、ORゲート98の出力(したがって、保護フリップフロップ102のクロックCK)は、クロック信号(CLK)を含む。さらに、クロック信号(CLK)が「低」である際に、選択されたネットワークの1つ(「1」、「2」または「3」)に信号の変化が発生すると(例えば、攻撃によるグリッチ)、スペアパルス長さDLY 1の「0」がORゲート98の出力に現れる(これにより、保護フリップフロップ102のクロックCKに生じる)。実際には、図5の例では、通常動作条件において、ORゲート98の出力は常に「高い」を維持し、クロックの変換は予想されない。そのため、クロックの上昇エッジは攻撃の指示として使用可能。
【0078】
正常条件(すなわち、ネットワーク「1」、「2」、および「3」が時系列信号(CLK)において、「低い」の時に信号が変化しない場合)では、保護フリップフロップ102のTOGGLE(トグル)出力は常に「低い」である。クロック信号(CLK)が「低」である場合、ネット「1」、「2」および「3」のうちの1つ以上で信号が変化した場合、保護フリップフロップ102のTOGGLE(トグル)出力は「高」に変換される。このため、TOGGLE(トグル)は、疑わしい攻撃を示すアラート信号として利用できる。
【0079】
一部の実施例では、上記の回路は複数回繰り返され、その中の各回路は組合せ論理回路24の異なるセットのいネットを処理する。ORゲート104は、複数の回路のTOGGLE(トグル)出力のORを取る。ORゲート104の出力はアラーム信号として使用される。
【0080】
図6を参照すると、図6の回路は、保護フリップフロップ102のクロックCKをゲーティングする方式は前記の図5の回路と似ている、すなわち、XORゲート90の間のXORゲート60を含む回路の部分において同様である。図5の回路と異なる部分は、図6において、保護フリップフロップ102の出力(Q)は、インバータ(NOTゲート)110を介して保護フリップフロップ102のデータ入力(D)にフィードバックされる。図5を参照すると、正常の条件(すなわち、ネット「1」、「2」、および「3」の信号がクロック信号(CLK)が「低い」の時に変化がない場合)では、保護フリップフロップ102のTOGGLE(トグル)出力は常に「低い」である。クロック信号(CLK)が「低」である時に、ネット「1」、「2」および「3」のうちの1つ以上で信号が変化した場合、保護フリップフロップ102のTOGGLE(トグル)出力は「高」に変遷する。したがって、TOGGLE(トグル)は疑わしい攻撃を示すアラート信号として利用できる。
【0081】
図6の代わりに、インバータ(NOTゲート)94を省略することができる。前記の代替として、保護フリップフロップ102のTOGGLE(トグル)出力は、保護フリップフロップ102のCKの各クロックパルス上でトグルする(極性は「高」と「低」の間で反転する)。
【0082】
正常の場合(すなわち、ネットワークが「1」、「2」と「3」の信号がクロック信号(CLK)が「低い」の時に変化がない場合)、保護フリップフロップ102のTOGGLE(トグル)出力は、クロック信号(CLK)の周期ごとにトグルする。さらに、クロック信号(CLK)が「低」である時に、ネット「1」、「2」および「3」のうちの1つ以上で信号が変化した場合、保護フリップフロップ102のTOGGLE(トグル)出力はトグルされる(余分のパルスが発生するため)。XORゲート68の出力は、CKに伝搬される。TOGGLE(トグル)信号の定期的なトグルバターンの前記の変更は、攻撃の検出に利用できる。
【0083】
同様に図6の代替(インバータ(NOTゲート)110を省略したものを含む)において、前記の回路は複数回繰り返され、各回路は組合せ論理回路24の異なる組のネットを処理する。XORゲート106は、複数の回路のTOGGLE(トグル)出力をXORすることができる。次に、XORゲート106の出力は、アラート信号として利用できる。
【0084】
図7は、本発明の実施例による、クロックゲーティングを使用してデータサンプリングの完全性を検証する回路を概略的に示すブロック図である。図7の回路は、複数のクロックゲート収集ブロック114を含む。各ブロック114の構成は、上の図5または図6の回路のクロックゲーティング部分と似ている(XORゲート90とまたはORゲート98の間の回路部分ではあるが、保護フリップフロップ102はない)。
【0085】
ANDゲート118は、複数のブロック114の出力の論理積を出力し、ANDゲート118の出力は、単一の保護フリップフロップ102のCK入力にクロックするために使用される。図7の統合スキーム方式は、フリップフロップの数を減らすため、ダイ面積において効率的である。
【0086】
例えば、図7の回路は、図6のフリップフロップスキームを使用する(フリップフロップ102の出力Qは、インバータ(NOTゲート)110を介して入力Dにフィードバックされる)。しかしながら、代替として、図5のスキーム(フリップフロップ102入力Dが一定に保持される)も使用することが可能。図6の代替構成インバータ(NOTゲート)110が省略される場合、ANDびゲート118は、ORゲートに置き換えられるべきである。
【0087】
図5~7に示す電子デバイスおよび回路の構成は、概念的に明確にする為に描いた構成例である。代替とする実施例では、他の任意の適切なものが使用することが可能。
【0088】
例えば、前記したように、図5~7は、「低」から「高」(クロック上昇)へのクロック変遷をサンプリングする回路に適用する。つまり、クロックが「低」の時に信号が安定していると期待される。但し、この選択は単なる例示である。開示された回路は、「高」から「低」(クロック低下)へのクロック変遷をサンプリングする回路での作動に直接的な方法で適用させることができ、クロックが「高」の時には信号が安定であることが期待される。
【0089】
別の例として、図5および図6は、組合せ論理回路24の複数のネットから信号を収集するが、開示された技術は、単一のネットにも適用される。後者の場合は、XORゲート90を省略することができる。
【0090】
様々な実施例において、任意の適切なハードウェアを使用して、開示された電子デバイスおよび回路を実現することができる。例えば、1つ以上の個別構成要素、1つ以上の特定アプリケーション集積回路(ASICs)および/または1つ以上のフィールドプログラマブルゲートアレイ(FPGAs)が使用される。
【0091】
したがって、実施例は、本発明の技術思想及び特徴を説明するために例とするもので、技術分野に通常の知識を有する者に本発明の内容を理解させ実施させることができるようにする目的であり、本発明の範囲を限定することは意図していない。実施例は、その他の様々な形態で実施されることが可能であり、考案の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。実施例やその変形は、考案の範囲や要旨に含まれると同様に、特許請求の範囲に記載された考案とその均等の範囲に含まれるものである。
【符号の説明】
【0092】
20、81:電子デバイス
24:組合せ論理回路
28、48、56:フリップフロップ回路
32 A:機能フリップフロップ
32 B、102:保護フリップフロップ
36、64:遅延要素
40:クロックツリー論理
44、60、68、82、90、106:XORゲート
62:フリップフロップ
72:ラッチ
76、118:ANDゲート
80:NOTゲート
84:クリティカルタイミングパス
94、110:インバータ(NOTゲート)
98、104:ORゲート
114:クロックゲート取集ブロック
D:データ信号
L 1:第1ラッチ
L 11:ラッチ
L 2:第2ラッチ
Q:出力
図1A
図1B
図2A
図2B
図3A
図3B
図3C
図4
図5
図6
図7