JP2009044709A - 半導体装置 - Google Patents

半導体装置 Download PDF

Info

Publication number
JP2009044709A
JP2009044709A JP2008025436A JP2008025436A JP2009044709A JP 2009044709 A JP2009044709 A JP 2009044709A JP 2008025436 A JP2008025436 A JP 2008025436A JP 2008025436 A JP2008025436 A JP 2008025436A JP 2009044709 A JP2009044709 A JP 2009044709A
Authority
JP
Japan
Prior art keywords
register
circuit
signal
clock signal
output
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.)
Granted
Application number
JP2008025436A
Other languages
English (en)
Other versions
JP5107080B2 (ja
Inventor
Yoshinori Kurimoto
昌憲 栗本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2008025436A priority Critical patent/JP5107080B2/ja
Priority to US12/171,606 priority patent/US7827454B2/en
Publication of JP2009044709A publication Critical patent/JP2009044709A/ja
Priority to US12/899,978 priority patent/US7913139B2/en
Priority to US13/026,660 priority patent/US8028210B2/en
Priority to US13/206,272 priority patent/US20110296260A1/en
Application granted granted Critical
Publication of JP5107080B2 publication Critical patent/JP5107080B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Semiconductor Integrated Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Logic Circuits (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

【課題】本発明は、実動作中の回路誤動作を認識することができ、また回路誤動作の箇所を特定できる半導体装置や、誤動作を修復する際に次段の回路において誤動作を誘因させることのない半導体装置を提供することを目的とする。
【解決手段】本発明は、複数の論理回路と、論理回路からのデータに基づき誤動作判定を行う複数の判定回路とを備える半導体装置である。そして、判定回路は、第1レジスタ(R1)と、遅延手段(バッファ1)と、第2レジスタ(R2)と、比較器3と、スキャン化手段とを備えている。スキャン化手段は、比較器3の比較結果を保持させつつ、第2レジスタ(R2)をシフトレジスタ化して第2レジスタ(R2)で保持したエラー信号を次段へ伝搬させる。
【選択図】図5

Description

本発明は、半導体装置に係る発明であって、特に、誤動作が検知可能な半導体装置に関するものである。
半導体装置において、種々のバラつき等の理由により、ある記憶素子を終端とするパス遅延にもバラつきが生じる。当該パス遅延についてシミュレーションでは問題なく動作するが、実機ではパス遅延におけるバラつきによりタイミング制約(セットアップ違反)を満足できず動作しない場合があった。
そのため、半導体装置においては、タイミング制約を動的に検知する機構を設ける場合があった。当該機構について、例えば、非特許文献1に示すRazorという回路(以下、Razor回路という)が知られている。非特許文献1に示すRazor回路は、クロック信号clkの立ち上がりエッジに同期してデータを取り込むフリップ−フロップ回路と、クロック信号clkのHigh期間にデータを取り込むラッチ回路とを組み合わせた回路である。そして、Razor回路は、フリップ−フロップ回路の出力とラッチ回路の出力とを比較器で比較し、当該比較結果に基づいて通常論理であるフリップ−フロップ回路の出力かラッチ回路の出力かをセレクタ回路で切り替えていた。
非特許文献1に示すRazor回路は、フリップ−フロップ回路がデータを取り込むタイミングに同期してラッチ回路が開き、クロック信号clkがHigh期間のデータをラッチ回路が取り込む。つまり、非特許文献1に示すRazor回路は、フリップ−フロップ回路とラッチ回路との時間差を利用して、クロック信号clkの立ち上がりからクロック信号clkのHigh期間までに到達するデータを誤動作(セットアップ違反)として検知している。
次に、特許文献1では、主同期回路と同じ構成の副同期回路を2つ設け、当該副同期回路が主同期回路の倍周期で動作する回路構成を有している。そのため、特許文献1に示す回路では、主同期回路で生じたセットアップ違反の誤動作を、副同期回路により回復させることができる。
次に、特許文献2では、同一クロック信号clkにより動作している送り側フリップ−フロップ回路と受け側フリップ−フロップ回路との間に、組み合わせ論理回路をクリティカルパスとして介在させている。そして、特許文献2では、当該クリティカルパスでの遅延状態を計測して半導体装置の外部に表示させている。
Dan Ernest他,「Razor: Low-Power Pipeline Based on Circuit-Level Timing Speculation」,IEEE MICRO,2004,P.10-20 米国特許第6985547号明細書 特開2005−214732号公報
非特許文献1に示す回路を半導体装置に複数設けて、どの箇所でセットアップ違反が生じているのかを特定するためには、それぞれの回路から出力されるエラー信号を取り出す必要があった。しかし、エラー信号を取り出すには複数のピンが必要となるが、半導体装置のピン数には制限があるため、従来の半導体装置では、非特許文献1に示す回路から出力されたエラー信号をORツリーで束ねることが一般的であった。そのため、従来の半導体装置では、どの箇所でセットアップ違反が生じているのかを特定することができない問題があった。
また、非特許文献1、特許文献1や特許文献2に示す回路では、セットアップ違反を検出し、当該セットアップ違反の状態を回復したとしても、次段の回路において誤動作を誘因する場合があった。
さらに、半導体装置内においてセットアップ違反を検出するための条件は一定ではなく、バラつきを有している。そのため、ある1つの条件に固定するとセットアップ違反を検出できない回路が存在してしまう問題があった。
そこで、本発明は、実動作中の回路誤動作(セットアップ違反)を認識することができ、また回路誤動作の箇所を特定できる半導体装置を提供することを目的とする。また、本発明は、誤動作を修復する際に次段の回路において誤動作を誘因させることのない半導体装置を提供することを目的とする。
本発明の1実施形態は、複数の論理回路と、論理回路からのデータに基づき誤動作判定を行う複数の判定回路とを備える半導体装置である。そして、判定回路は、第1レジスタと、遅延手段と、第2レジスタと、比較器と、スキャン化手段とを備えている。第1レジスタは、論理回路からのデータをクロック信号の所定のタイミングで取り込む。遅延手段は、クロック信号を遅延させる。第2レジスタは、第1レジスタと論理等価であり、遅延手段を経たクロック信号の所定のタイミングで論理回路からのデータを取り込む。比較器は、第1レジスタの出力と第2レジスタの出力との比較を行い、エラー信号を出力する。スキャン化手段は、比較器の比較結果を保持させつつ、第2レジスタをシフトレジスタ化して第2レジスタで保持したエラー信号を次段へ伝搬させる。
本発明の半導体装置によれば、比較器の比較結果を保持させつつ、第2レジスタをシフトレジスタ化して第2レジスタで保持したエラー信号を次段へ伝搬させるスキャン化手段を備えるので、回路誤動作が生じている1つ以上の箇所を特定することができる。
(実施の形態1)
まず、本発明の半導体装置を説明する前に、非特許文献1に開示されているRazor回路の構成と駆動について説明する。図1に、Razor回路の回路図を示し、図2に、Razor回路のタイミングチャートを示す。
図1に示すRazor回路は、クロック信号clkの立ち上がりエッジに同期してデータ信号を取り込むフリップ−フロップ回路101と、クロック信号clkのHigh期間にデータ信号を取り込むラッチ回路102とを備えている。さらに、図1に示すRazor回路は、フリップ−フロップ回路101の出力Q1とラッチ回路102の出力Q2とを比較する比較器103と、比較器103の結果によって論理回路であるロジックステージL1が出力するデータ信号D1とラッチ回路102が出力するデータ信号Q2とを切り替えるセレクタ回路104とを備えている。そして、図1に示すラッチ回路102は、クロック信号clkのHigh期間にセレクタ回路104が出力したデータ信号S1を取り込む。そして、図1に示すRazor回路は、フリップ−フロップ回路101とラッチ回路102との時間差を利用して、クロック信号clkの立ち上がりからクロック信号clkのHigh期間までに到達するデータ信号のイベントを誤動作(セットアップ違反)として検知する。
但し、Razor回路で行う誤動作検知には、以下のような問題があった。まず、図2に示す3周期分のタイミングチャートでは、2周期目のみタイミングが間に合わずセットアップ違反が発生し、他の周期(1及び3周期目)は正常にデータが到達している。この場合の2周期目では、フリップ−フロップ回路101が、クロック信号clkの立ち上がりタイミング時に、”1”から”0”に変化するデータ信号のイベント到着が間に合わず、”1”を捕獲してしまう。一方、ラッチ回路102は、クロック信号clkがHigh期間のデータ信号である”0”を捕獲することになる。そのため、Razor回路は、意図通りエラー信号をアサートすることになる。
次に、図2に示す3周期目では、クロック信号clkの立ち上がりタイミング時に、”0”から”1”に変化するデータ信号のイベントが到着しているので、本来セットアップ違反は発生しない。しかし、2周期目でアサートされたエラー信号は、3周期目においてもネゲートされない。これは3周期目のクロック信号clkの立ち上がりタイミング時に、ロジックステージL1が出力するデータ信号D1を取り込む必要があるにもかかわらず、2周期目のエラー信号がネゲートされていないために、ラッチ回路102が出力するデータ信号Q2を取り込んでいるためである。
その結果、エラー信号がネゲートされてロジックステージL1からのパスがアクティブになる時(図2の上向き矢印)、フリップ−フロップ回路101はラッチ回路102にラッチされている”0”を取り込んでしまっており、ラッチ回路102のみが”0”から”1”へ変化するデータ信号のイベントを取り込むことになる(図2の下向き矢印)。従って、比較器103では、フリップ−フロップ回路101が出力するデータ信号Q1とラッチ回路102が出力するデータ信号Q2とが一致せず、セットアップ違反が発生していないにもかかわらずエラー信号がアサートされてしまう。
そこで、図3に、上述の問題点を解決する誤動作判定回路(エラー検出フリップ−フロップ回路(FF))の回路図を示す。図3に示す回路では、ターゲットレジスタ(TargetRegister)であるレジスタR1に対し、クロック信号(Clk)のラインにバッファ1を挿入して、タイミング的に余裕(Positive Slack)を持たせた期待値レジスタ(ExpectRegister)のレジスタR2を備えている。そして、レジスタR1には、前段のロジックステージL1から出力されるデータ信号D1が入力される。一方、レジスタR1から出力するデータ信号Q1は、選択回路2を介して次段のロジックステージL2に出力(Output信号)されると共に、比較器3にも入力される。
この比較器3は、レジスタR1が出力するデータ信号Q1とレジスタR2が出力するデータ信号Q2とを比較し、両者が不一致の場合にエラー信号(Error)を出力する。つまり、図3に示す回路では、クロックラインにバッファ1を挿入することにより、セットアップ違反条件を緩和させたレジスタR2を設け、レジスタR1とレジスタR2との出力を比較器3で比較することで誤動作を検出している。このため、図3に示す回路では、バッファ1を設けることにより、Razor回路のようにセットアップ違反が発生していないにもかかわらずエラー信号がアサートされてしまう問題を回避することができる。
また、図3に示す回路は、上述したように、セットアップ違反の有無をエラー信号として出力する誤動作判定回路である。そのため、図3に示す回路を備える半導体装置(LSI等)では、通常論理に使用されているフリップ−フロップ回路のうちタイミング的に厳しいものに対し、図3に示す回路と置換することになる。そして、半導体装置に図3に示す回路を複数組み込んだ場合、どの回路からエラー信号が出力されているのか特定する必要がある。
しかし、半導体装置のピン数には制限があるので、各回路からのエラー信号に対してそれぞれピンを割り当てることができず、ORツリーで束ねてエラー信号を半導体装置の外部に出力させる(図示せず)。そのため、図3に示す回路では、半導体装置でセットアップ違反が生じていることは判定できるが、どの回路でセットアップ違反が生じているのかを特定することができない。
そこで、本実施の形態に係る半導体装置では、図3に示す期待値レジスタのレジスタR2をシフトレジスタ化してスキャンする手段(以下、スキャン化手段ともいう)をさらに備え、当該手段を用いてエラー信号を伝播させて外部へ押し出し、違反した回路を特定する。なお、当該回路構成は、電圧制御だけでなく、実動作(性能)パターンを用いたフェール箇所解析にも有効となる技術である。
次に、スキャン化手段を備えた回路構成を図4に具体的に示す。但し、図4に示すスキャン化手段は一例であり、本発明はこれに限定されず、同様の機能を有するスキャン化手段であれば他の回路構成でもよい。
図4に示す回路では、レジスタR1のクロック信号ClkのラインにAND回路4が設けられている。AND回路4は、スキャンモード信号(SM)の反転信号とスキャンリセット信号(Srst)とが入力されるAND回路4aと、クロック信号ClkとAND回路4aの出力とが入力されるAND回路4bとを備えている。また、図4に示す回路では、レジスタR2の前段にマルチプレクサ(MUX)5が設けられ、当該MUX5には前段の比較器3からの出力であるエラー信号(Error)と、MUX6の出力と、Srst信号とが入力される。MUX6は、通常のスキャンセルにおけるスキャンイン信号(SI)と等価なエラーイン信号(ErrIn)と、Srst信号と、前段の論理回路からのデータ信号(DATA)とが入力される。
図4に示す回路では、図3に示す回路の選択回路2に代えて、MUX7を用いているが、機能については等価である。また、図4に示すその他の回路は、図3に示す回路と同じであるため、詳細な説明は省略する。
図4に示す回路では、レジスタR2の出力であるエラーアウト信号(ErrOut)が通常のスキャンセルにおけるスキャンアウト信号(SO)と等価であり、あるエラー検出FFのErrOut信号が他のエラー検出FFのErrIn信号に接続することでスキャンパスを形成している。
SM信号は、スキャンのモードを制御する信号であり、”0”のとき通常動作モードとなり、レジスタR2がクロック信号の立ち上がり時にデータ信号を取り込めるようにMUX6を制御する。また、SM信号が”1”のときスキャンモードになり、レジスタR2がクロック信号の立ち上がり時にErrIn信号の値を取り込めるようにMUX6を制御する。
さらに、Srst信号は、モード切替時のリセット信号であり、各モード(通常又はスキャン)時の初期状態を決定する。つまり、Srst信号が”0”のとき、レジスタR2がMUX5を介してエラー信号の値を取り込み、Srst信号が”1”のとき、レジスタR2がMUX5を介して、SM信号により選択された信号(DATA or ErrIn)の値を取り込む。上述のまとめとして、レジスタR2をスキャン化した場合の真理値表を表1に示す。なお、表1に示す”*”は任意の値を示す。また、表1に示す”(R2&!R1)|(!R2&R1)”は、レジスタR2が期待値の比較結果を保持しており、当該比較結果が”0”(エラーでない)の場合はレジスタR1をそのまま出力し、当該比較結果が”1”(エラー)の場合はレジスタR1の反転を出力することを表している。
Figure 2009044709
従って、レジスタR2をスキャン化し、表1に示すようにSM信号とSrst信号とを制御することで、セットアップ違反時のエラー信号を伝播させ、セットアップ違反の箇所を特定することが可能となる。なお、当該回路構成は、セットアップ違反の箇所を特定するだけでなく、通常のスキャン回路のように、スキャンパスを介してレジスタR2への初期値設定も可能である。
さらに、図4に示す回路では、SM信号が”1”のスキャンモードの場合、レジスタR1に入力されるクロック信号ClkをAND回路4でディスイネーブルにして、レジスタR1の回路動作を停めてしまう。そのため、SM信号が”1”のスキャンモード時に、クロック信号がディスイネーブルになる前の状態でレジスタR1の内容が保持され、再びSM信号が”0”の通常動作モードになった場合に、レジスタR1の動作再開が可能になる。また、スキャンモード時に、レジスタR1の回路動作を停めてしまうので、当該期間の消費電力を削減することもできる。
図5に、図4で示した回路を4段並べて各回路(S1〜S4)のErrOut信号からErrIn信号へのスキャンパスを形成した回路図を示す。図5では、回路S1の前段にロジックステージL1、回路S2の前段にロジックステージL2、回路S3の前段にロジックステージL3、回路S4の前段にロジックステージL4のそれぞれが接続している。さらに、図5では、回路S1のErrIn信号としてに回路S4が出力したErrOut信号を直結することでシフトが一巡して初期状態へ戻る構成である。しかし、本発明はこれに限られず、回路S1のErrIn信号に外部端子からの任意の値にセットすることも可能である。
次に、図5に示す回路の動作を図6に示すタイミングチャートに基づいて説明する。まず、図6に示すタイミングチャートの1周期目では、回路S2がセットアップ違反の誤動作を検知したと仮定する。そして、ErrOut信号の値は、通常動作モードであるため、各回路S1〜S4のエラー信号ではなくレジスタR2の値となり、当該周期での期待値は4ビットとも”1”であると仮定する。なお、回路S2のレジスタR1の値は、セットアップ違反と仮定しているので、期待値と不一致であり”0”である。
次に、2周期目では、SM信号が”1”となりスキャンモードに切り替わる。同時にSrst信号も”0”にアサートされるため、各回路のエラー信号の値がレジスタR2に取り込まれることになる。1周期目で誤動作を発生しているのは回路S2のみと仮定したので、2周期目では回路S2のErrOut信号の値のみが”1”となり、他の回路S1,S3,S4のErrOut信号の値は全て”0”となる。なお、SM信号が”1”となったため、回路S1〜S4内の各レジスタR1に供給されるクロック信号が全てディスイネーブルになる。
次に、3周期目では、Srst信号が”1”となるため、各回路S1〜S4のErrOut信号は前段のErrOut信号を取り込むことになる。従って、回路S3のErrOut信号は、2周期目の回路S2でのErrOut信号の値を取り込み、”1”となり、他の回路S1,S2,S4のErrOut信号は全て”0”となる。ここで、回路S1のErrOut信号には、回路S4のErrOut信号の値が供給される。
次に、4周期目では、3周期目と同様の処理が行われ、回路S4のErrOut信号が、3周期目の回路S3でのErrOut信号の値を取り込み、”1”となり、他の回路S1,S2,S3のErrOut信号は全て”0”となる。さらに、5周期目でも、4周期目と同様の処理が行われ、回路S1のErrOut信号が、4周期目の回路S4でのErrOut信号の値を取り込み、”1”となり、他の回路S2,S3,S4のErrOut信号は全て”0”となる。6周期目でも、4周期目と同様の処理が行われ、回路S2のErrOut信号が、5周期目の回路S1でのErrOut信号の値を取り込み、”1”となり、他の回路S1,S3,S4のErrOut信号は全て”0”となる。
上記の処理を繰り返すことにより、図5に示す回路は、ErrOut信号の値を順次シフトし、Srst信号が”1”になってからErrOut信号の値が”1”が検出されるまでのサイクル数を計上することにより、誤動作が発生した回路を特定することができる。本実施の形態では、4周期目でErrOut信号が”1”となるため、回路S2にセットアップ違反が発生していることが分かる。なお、仮に複数箇所フェールしていたとしても同様の方法で検出可能である。
次に、7周期目では、SM信号を通常モード”1”に切り替え、同時にSrst信号を”1”にアサートすることで、特定回路S1〜S4のレジスタR2にスキャンモード動作開始前の値(図4に示す回路構成から自動的に判断)に復元させる。ただし、回路S1から回路S4の各レジスタR1の値は、SM信号=”1”あるいはSrst信号”0”の間はクロック信号Clkがネゲートされているため、回路S2のレジスタR1は誤動作のままの値であるため、必要であれば以下の実施の形態で述べるリカバリー方法を行い動作を再開する。
以上のように、本実施の形態に係る半導体回路では、レジスタR2をスキャン化する手段を備えることにより、セットアップ違反の誤動作が発生した回路を特定することができる。
なお、図4に示す回路は、同期設計部におけるタイミングクリティカルなレジスタ(クリティカルパスのエンドポイント)を対象としているため、SOC(System On a Chip)やマイコン等の全てのデジタル設計分野で適用が可能である。また、以下に説明する実施の形態に係る回路についても同様である。
具体的に、本実施の形態に係る半導体装置の適用事例のブロック図を図7に示す。図7に示す半導体装置では、図4に示す誤動作判定回路及び論理回路(ロジックステージ)が適用されたデジタル回路10と、デジタル回路10にクロック信号Clkを供給するクロック発生装置11と、デジタル回路10に電圧を供給するレギュレータ12とを備えている。さらに、図7に示す半導体装置では、デジタル回路10からのエラー信号に基づき、クロック発生装置11とレギュレータ12とを制御する制御回路13と、デジタル回路10が適宜参照するメモリ14とを備えている。なお、制御回路13は、エラーレート計算の処理も含んでいる。
さらに、図7に示す半導体装置では、制御回路13へのエラー信号がアサートすることで、制御回路13がクロック発生装置11やレギュレータ12を制御し、低消費電力化を実現できる。また、図7に示す半導体装置では、セットアップ違反等の誤動作発生時、スキャンモードを切り替えてエラー信号を伝搬して外部に出力することで誤動作箇所(回路)を特定することができる。また、図4に示す回路を採用した半導体装置では、誤動作箇所(回路)をリカバリーした後に、スキャンモードで停止した状態から再開することも可能である。
(実施の形態2)
図8に示す回路は、レジスタR0からロジックステージL1を経由してレジスタR1へ至るパスをクリティカルパスとし、レジスタR1が出力するデータ信号Q1を次段論理(ロジックステージL2)へ伝播する。ここで、図8に示す回路では、レジスタR1に供給されるクロック信号C1を、外部から直接供給されるクロック信号Clkとするのではなく、クロック制御手段として機能するAND回路20においてEnable信号(イネーブル信号)と論理和を取ったゲーティッドクロック信号としている。なお、クロック制御手段は、AND回路に限られず、同等の機能を備える回路であればよい。
また、図8に示す回路では、クロックラインにバッファB2を挿入することによりセットアップ違反条件を緩和させたレジスタR2を設け、レジスタR1との出力結果比較を比較器3で行う。さらに、図8に示す回路では、Enable信号が”0”の場合、レジスタR0からのデータを取り込まないように選択回路21を使ってレジスタR2から出力されたデータ信号Q2をフィードバックさせ、Enable信号が”1”の場合、データ信号D1を取り込む。
しかし、図8に示す回路では、期待値側のレジスタR2に入力されたクロック信号C2がゲーティッドクロック信号ではなくフリーランになっている。そのため、レジスタR2では、常時クロックイベントが発生し、レジスタR1をゲーティッドクロック信号により駆動することによる消費電力削減効果を低減している。
また、通常の回路動作において、クロック信号の波形がクリップされないように、優位期間(ポジティブエッジであれば”H”期間)にEnable信号を変化させない。しかし、電源電圧の低下や周囲温度の変化により、Enable信号の到達に遅れ(いわゆるEnable信号のセットアップ違反)が生じるとクロック信号がクリップされ、次段への信号伝播に影響を与え誤動作誘発の原因となる。図9に、クロック信号がクリップされる様子を模式的に示す。
そこで、本実施の形態に係る半導体装置では、図10に示す回路を用いることで消費電力削減効果を改善し、Enable信号のセットアップ違反を検出可能としている。図10に示す回路では、レジスタR2に入力されるクロック信号がゲーティッドクロック信号とするために、クロック制御手段としてAND回路22が設けられている。なお、クロック制御手段は、AND回路に限られず、同等の機能を備える回路であればよい。
このAND回路22には、ロックアップラッチとして機能するレジスタR3の出力、レジスタR4の出力及びバッファB3により遅延させたクロック信号とが入力される。また、レジスタR3には、Enable信号とバッファB3により遅延させたクロック信号とが入力される。レジスタR4には、Enable信号とクロック信号とが入力される。図10に示す回路の他の構成については、図8に示す回路構成と同じであるため、同一要素に同一符号を付して詳細な説明を省略する。
ここで、図9に示すクリップAのようなEnable信号のriseイベントの遅延に関しては、オリジナルのクロック信号の立ち上がり時のEnable信号が”L”であればレジスタR2へのクロック信号をネゲートすることで検出可能となる。つまり、クリップの判定時以降にEnable信号が”H”となりレジスタR1にクリップされたクロック信号が発生した場合、レジスタR1の内容が変化することになりレジスタR2との間で差異が生じてエラー信号が立つことになる。なお、レジスタR1の内容が変化しない場合は、後段へのデータ伝播が発生しないため、エラー信号を立たせる必要はない。
次に、図9に示すクリップBのようなEnable信号のfallイベントの遅延に関しては、図10に示すように、バッファB3により遅延させたクロック信号(ディレイドクロック信号)のディスイネーブル期間のみイベントを通過させるロックアップラッチのレジスタR3を挿入することで検出可能となる。つまり、クロック信号の立ち上がりとディレイドクロック信号の立ち上がりとの間にEnable信号がネゲートされた場合、レジスタR2に入力されるクロック信号がネゲートされることになる。そのため、レジスタR1の内容が変化したとすると、レジスタR2との間で差異が生じてエラー信号が立つことになる。なお、レジスタR1の内容が変化しない場合は、後段へのデータ伝播が発生しないため、エラー信号を立たせる必要はない。
図10に示す回路では、実動作のレジスタR1に対してクロックラインにバッファB3を挿入することにより、タイミング的に余裕(Positive Slack)を持たせたレジスタR2を作成する。そして、レジスタR1及びレジスタR2のそれぞれにAND回路20,22を介したゲーティッドクロック信号を入力する。ここで、図10に示す回路では、グリッジ防止のため、ディレイクロック信号の”H”期間のイベントを遮断するためにフェールセーフ回路としてロックアップラッチのレジスタR3をAND回路22の前に挿入する。
さらに、図10に示す回路では、Enable信号のイベント内容がriseイベントなのかfallイベントなのかを判定するために、レジスタR4を挿入し、その出力をAND回路22の入力に接続している。また、図10に示す回路では、データ信号のセットアップ違反を検出(クロック信号C1からクロック信号C2までの間のイベント検出)するとともに、イネーブル信号のセットアップ違反も検出できる。
次に、図10に示す回路の動作を、図11に示すタイミングチャートを用いて説明する。まず、レジスタR1のクロックピンに入力される信号をクロック信号C1、データ入力ピンに入力される信号をデータ信号D1、データ出力ピンから出力される信号をデータ信号Q1とする。また、レジスタR2のクロックピンに入力される信号をクロック信号C2、データ入力ピンに入力される信号をデータ信号D2、データ出力ピンから出力される信号をデータ信号Q2とする。さらに、データ信号Q1とデータ信号Q2とを比較する比較器3からエラー信号が出力される。なお、上述したように、クロック信号C2は、バッファB3によりクロック信号C1に対して挿入したバッファ分だけ遅延してイベントが伝播する。
まず、図11に示す1周期目では、Enable信号のriseイベントの到着が遅れたため、クロック信号C1がクリップ(ハッチングされている部分)される。そして、クロック信号C1がriseイベントのとき、Enable信号は”L”なので、図示していないがレジスタR4の出力R4Enblも”L”となる。従って、1周期目では、レジスタR2へのクロック信号C2はネゲートされるため、レジスタR1においてデータの内容に変化があった場合、レジスタR1とレジスタR2との結果が異なるため、エラー信号が”1”となる。つまり、図10に示す回路は、Enable信号のセットアップ違反を検出できる。仮に、レジスタR1においてデータの内容に変化がない場合、エラー信号が”1”とならず、クロック信号C1のクリップを検出できないが、イベントそのものが発生しておらず後段の回路にも影響を与えないので、本現象をアサートする必要はない。
次に、図11に示す2周期目では、クロック信号C1,C2のriseイベント前にEnable信号が”H”に確定しているが、レジスタR1へのデータイベントの到達(データ信号D1の変化)がクロック信号C1のriseイベントに間に合っていない。そのため、データ信号Q1とデータ信号Q2との結果が異なり、エラー信号が”H”となる。つまり、図10に示す回路は、データ信号のセットアップ違反を検出できる。
次に、図11に示す3周期目では、Enable信号のfallイベントの到着が遅れたため、クロック信号C1がクリップ(ハッチングされている部分)される。そして、クロック信号C1のriseイベントのとき、Enable信号は”H”なので、図示していないがレジスタR4の出力R4Enblも”H”となる。従って、3周期目では、クロック信号C2のriseイベント前にEnable信号が”L”に落ち、当該イベントがロックアップラッチであるレジスタR3を介してAND回路22に伝達されるので、結果としてレジスタR2へのクロック信号C2はネゲートされる。さらに、レジスタR1においてデータの内容に変化があった場合、レジスタR1とレジスタR2との結果が異なることになり、エラー信号が”1”となる。つまり、図10に示す回路は、Enable信号のセットアップ違反を検出できる。仮に、レジスタR1においてデータの内容に変化がない場合、エラー信号が”1”にならず、クロック信号C1のクリップが検出できないが、イベントそのものが発生しておらず後段の回路にも影響を与えないので、本現象をアサートする必要はない。
次に、図11に示す4周期目では、Enable信号が”L”のため、クロック信号C1及びクロック信号C2が共にネゲートされるため、図10に示す回路の出力結果に影響を与えない。そして、図11に示す5周期目では、2周期目と同じ動作を行うので、詳細な説明は省略する。
以上のように、本実施の形態に係る半導体装置は、図10に示す回路を用いているので、消費電力削減効果を改善し、Enable信号のセットアップ違反を検出することが可能となる。
(実施の形態3)
実施の形態2では、データ信号のセットアップ違反とEnable信号のセットアップ違反をそれぞれ検出することができるが、データ信号及びEnable信号のセットアップ違反が同周期に生じた場合、セットアップ違反を検出できなかった。そこで、本実施の形態では、図12に示す回路を用いることで同周期に生じるデータ信号及びEnable信号のセットアップ違反を検出可能にしている。
通常、Enable信号はバス(複数ビット)制御に使用されることが多いため、図12に示す回路では、Enable信号のセットアップ違反は同一のEnable信号で制御される回路グループに対して、Enable信号のみを検知する回路を新規に追加している。つまり、図12に示す回路では、レジスタR1,R2や比較器3等を備え、データ信号のセットアップ違反を検出する回路A1〜A3と、当該回路A1〜A3に対して共通に供給されるEnable信号のセットアップ違反を検出する回路Bとで構成されている。
図12に示す回路A1〜A3は、図10に示す回路のレジスタR3,R4を取り除いた構成である。一方、図12に示す回路Bは、クロック信号とEnable信号とが入力するレジスタR3と、バッファ30により遅延させたクロック信号とEnable信号とが入力するレジスタR4と、レジスタR3の出力とレジスタR4の出力を比較する比較器31とを備えている。なお、回路Bの構成は、図12に示す回路構成に限定されず、同等の機能を有する回路構成であればよい。
ここで、回路A1〜A3のバッファB3及び回路Bのバッファ30の遅延量は、対象レジスタの前段ロジックにおけるスラック量に依存し、それぞれ最適な遅延量が設定される。具体的には、Enable信号からレジスタR1,R2,R3,R4のそれぞれへ至る経路のスラック量が、ロジックステージL1のスラック量に比べて大きい場合、レジスタR2の前段に挿入されたバッファB3の遅延量の方が、レジスタR4の前段に挿入されたバッファ30の遅延量よりも大きくなる。
また、図12に示す回路では、同一のEnable信号で制御される回路グループが3ビットであったため、回路A1〜A3の3つに対して回路Bを1つ設ける構成であるが、本発明はこれに限定されない。例えば、同一のEnable信号で制御される回路グループが5ビットであれば、回路A1〜A5の5つに対して回路Bを1つ設ける構成となる。
次に、図12に示す回路の動作を、図13に示すタイミングチャートを用いて説明する。まず、レジスタR1のクロックピンに入力される信号をクロック信号C1、データ入力ピンに入力される信号をデータ信号D1、データ出力ピンから出力される信号をデータ信号Q1とする。また、レジスタR2のクロックピンに入力される信号をクロック信号C2、データ入力ピンに入力される信号をデータ信号D2、データ出力ピンから出力される信号をデータ信号Q2とする。
また、レジスタR3のクロックピンに入力される信号をクロック信号C3、データ入力ピンに入力される信号をデータ信号D3、データ出力ピンから出力される信号をデータ信号Q3とする。また、レジスタR4のクロックピンに入力される信号をクロック信号C4、データ入力ピンに入力される信号をデータ信号D4、データ出力ピンから出力される信号をデータ信号Q4とする。さらに、データ信号Q1とデータ信号Q2とを比較する比較器3から出力されるエラー信号をError1とし、データ信号Q3とデータ信号Q4とを比較する比較器31から出力されるエラー信号をError2とする。なお、上述したように、クロック信号C2は、バッファB3によりクロック信号C1に対して挿入したバッファ分だけ遅延してイベントを伝播し、クロック信号C4は、バッファ30によりクロック信号C3に対して挿入したバッファ分だけ遅延してイベントを伝播する。
まず、図13に示す1周期目では、Enable信号のriseイベントの到着が遅れたため、クロック信号C1がクリップ(ハッチングされている部分)される。図12に示す回路では、データ信号とEnable信号のセットアップ違反を検出する回路を分離したため、クロック信号C1のクリップを、データ信号のエラー検出信号であるError1信号としては検出することができなくなった。しかし、図13に示す1周期目では、Enable信号のエラー検出信号であるError2信号が”H”となり、クロック信号C1のクリップを検出している。
次に、図13に示す2周期目では、データ信号のセットアップ違反が発生しているため、Error1信号として検出している。なお、2周期目では、Enable信号のエラー検出信号であるError2信号は”L”のままでアサートされない。
次に、図13に示す3周期目では、Enable信号のfallイベントの到着が遅れたため、クロック信号C1がクリップ(ハッチングされている部分)される。このクロック信号C1のクリップによるEnable信号のセットアップ違反も、1周期目と同様にError2信号が”H”となることで検出可能である。
次に、図13に示す4周期目では、Enable信号が”L”のため、クロック信号C1及びクロック信号C2ともネゲートされるため、図12に示す回路の出力結果にも影響を与えない。
次に、図13に示す5周期目では、データ信号とEnable信号どちらもセットアップ違反を起こしている場合である。5周期目の場合、データ信号とEnable信号とは競合関係にある。つまり、クロック信号Clkの立ち上がりに対してデータ信号のイベント到達が遅延しているため、本来セットアップ違反となるべきであるが、クロック信号C1のクリップにより、クロック信号C1が立ち上がる時点ではデータ信号のイベント到達している。従って、データ信号Q1とデータ信号Q2の結果は同一となり、データ信号に対するエラー検出信号のError1信号は”H”とならず、データ信号のセットアップ違反を検出できない。しかし、図13に示す5周期目では、Enable信号に対するエラー検出信号のError2信号は”H”となり、クロック信号C1のクリップは検出できる。なお、クロック信号C1が立ち上がる時点よりもデータ信号のイベント到達が遅延している場合は、データ信号のセットアップ違反も検出できる。
以上のように、本実施の形態に係る半導体装置では、図12に示す回路を用いることで同周期にデータ信号のセットアップ違反とEnable信号のセットアップ違反とが生じても、少なくとも一方を検出することができる。
(実施の形態4)
図14に示す回路では、実動作レジスタであるレジスタR1に対し、クロックラインに遅延手段であるバッファB2を挿入した分だけタイミング的に余裕(Positive Slack)を持たせたレジスタR2を備えている。そして、レジスタR1には、ロジックステージL1の出力であるデータ信号D1が入力される。このロジックステージL1の前段には、レジスタR0が接続されている。一方、レジスタR1の出力であるデータ信号Q1は、比較器3に入力される。
この比較器3は、レジスタR1のデータ信号Q1とレジスタR2の出力であるデータ信号Q2とを比較し、両者が不一致の場合にエラー信号を出力する。そのため、図14に示す回路は、クロックラインに挿入したバッファB2の遅延分だけレジスタR1のセットアップ違反を動的に検出することができる。また、図14に示す回路では、次段のロジックステージL2の前段に、選択回路2が設けられている。この選択回路2は、比較器3の出力であるエラー信号が”0”の時、レジスタR1からのデータ信号Q1をロジックステージL2に出力し、エラー信号が”1”の時、レジスタR2からのデータ信号Q2をロジックステージL2に出力するように切り替え制御する。
そして、図14に示す回路の通常パスは、レジスタR1に到達したデータ信号D1がクロック信号C1の立ち上がりエッジに同期して取り込まれ、選択回路2を経て次段のロジックステージL2へ伝播される。つまり、通常動作時のパス経路は、レジスタR1及び選択回路2を経由する経路である。
しかし、図14に示す回路が誤動作を検知し修復動作を行った場合、データ信号D1と同時にレジスタR2に到達するデータ信号D2は、遅延手段であるバッファB2によりクロック信号C1に対して遅れたクロック信号C2に基づき、レジスタR2により取り込まれる。そして、レジスタR2に取り込まれたデータ信号D2は、データ信号Q2として出力され、比較器3及び選択回路2を経由して次段のロジックステージL2に伝播する。従って、誤動作を検知し修復動作を行った場合、図14に示す破線の経路が修復動作時のパス経路となり、バッファB2の遅延量G1と比較器3での遅延量G2との和が通常動作時のパス経路に対するタイミングオーバーヘッドとなる。そのため、次段がタイミングクリティカルであった場合、修復動作時のパス経路の遅延量G1+G2により、次段パスの誤動作を誘発する可能性があった。
そこで、本実施の形態に係る半導体装置では、図15に示す回路を用いることで次段パスの誤動作を誘発させる可能性を低減している。図15に示す回路では、レジスタR0からロジックステージL1を経由してレジスタR1へ至るパスがクリティカルパスを形成しており、レジスタR1の出力ピンからデータ信号Q1が出力され次段論理(ロジックステージL2、レジスタR3)へ伝播する。また、図15に示す回路では、クロックラインにバッファB2を挿入することによりセットアップ違反条件を緩和させたレジスタR2を設け、レジスタR1の出力とレジスタR2の出力とを比較する比較器3を設けている。
さらに、図15に示す回路では、レジスタR1,R2の後段に選択回路2を挿入する。そして、選択回路2は、比較器3の出力であるエラー信号が”0”の時、データ信号Q1を出力し、エラー信号が”1”の時、データ信号Q2を出力するように制御し、ロジックステージL2へのイベント伝播を切り替える。
また、図15に示す回路では、レジスタR1,R2等を含む回路C1〜C3が複数設けられ(図15では3つの回路)、各回路からのエラー信号がOR回路40で束ねられる。そのため、各回路C1〜C3のいずれか1つでもエラー信号がアサート(”H”)すれば、OR回路40の出力は”H”となる。さらに、図15に示す回路では、OR回路40の立ち上がりイベントを微分回路41でDetect信号(ディテクト信号)として検知し、当該Detect信号に基づいてAND回路42が各回路C1〜C3に供給するクロック信号Clkをネゲートする。なお、クロック信号Clkをネゲートするサイクルは、ダウンカウンタにより任意のサイクルに設定(通常1サイクル)しても、システム側からの制御信号によって設定してもよい。
ここで、微分回路41は、レジスタR4、レジスタR5及びAND回路43を備えている。レジスタR4は、OR回路40からの出力と、クロック信号Clkと、システムからのPower On Reset信号とが入力される。レジスタR5は、レジスタR4の出力と、クロック信号Clkとが入力される。AND回路43は、レジスタR4の出力と、レジスタR5の反転出力とが入力され、Detect信号を出力する。
図15に示す回路は、エラー信号のアサートを検知し、対象となる回路のクロック信号Clkをディスイネーブルにして、当該クロック信号がディスイネーブルされている期間内に誤動作修復処理を行う。さらに、図15に示す回路では、エラー信号の信号レベルを検知すると、ディスイネーブル以降のクロック信号が復帰しなくなるため、信号レベルではなくエッジを検出するために微分回路41を設けている。また、図15に示す回路では、エラー信号のグリッジ(クロック位相差による微小信号)を拾わないように、微分回路41でフィルタリングを行っている。なお、図15に示す回路では図示していないが、誤動作修復サイクルを予め設定されたサイクル数となるようにカウンタで制限するか、システムからの制御信号(Req)をAND回路42供給してクロック信号のディスイネーブル期間を制御する。
次に、図15に示す回路の動作を、図16に示すタイミングチャートを用いて説明する。まず、レジスタR1のクロックピンに入力される信号をクロック信号C1、データ入力ピンに入力される信号をデータ信号D1、データ出力ピンから出力される信号をデータ信号Q1とする。また、レジスタR2のクロックピンに入力される信号をクロック信号C2、データ入力ピンに入力される信号をデータ信号D2、データ出力ピンから出力される信号をデータ信号Q2とする。なお、上述したように、クロック信号C2は、バッファB2によりクロック信号C1に対して挿入バッファ分だけ遅延してイベントが伝播する。また、データ信号D1は、SignalIn信号の値をクロック信号C1の立ち上がりエッジで取り込み、ロジックステージL1の遅延を経てイベントが到達するものとする。同様に、データ信号D2は、SignalIn信号の値をクロック信号C2の立ち上がりエッジで取り込み、ロジックステージL1の遅延を経てイベントが到達するものとする。
まず、図16に示す1周期目では、データ信号D1及びデータ信号D2のriseイベントのそれぞれが、クロック信号C1及びクロック信号C2のriseイベントの前に行われているため、レジスタR1及びレジスタR2は正常に論理”1”を取り込んでいる。但し、クロック信号C1とクロック信号C2との位相差によりエラー信号が”1”となり、それに伴い当該期間のOutput信号もデータ信号Q2の値となる。その後、エラー信号が”0”に戻り、それに伴いOutput信号もデータ信号Q1の値に切り替わり、正常に動作になる。しかし、図15に示す微分回路41は、半周期に満たないグリッジパルスをフィルタリングしてDetect信号をアサートしない。従って、次サイクルである2周期目でのクロック信号C1及びクロック信号C2はディスイネーブルされない。
次に、図16に示す2周期目では、レジスタR1におけるデータ信号D1のfallイベントの到達がクロック信号C1のriseイベントに間に合わないため、データ信号Q1が”0”を取り込むことができない。しかし、レジスタR2におけるデータ信号D2のfallイベントの到達はクロック信号C2のriseイベントに間に合うため、データ信号Q2は”0”を取り込むことができる。よって、レジスタR1とレジスタR2との結果に相違が生じ、比較器3の結果(エラー信号)が”1”となる(セットアップ違反を検出)。
このとき、エラー信号によって選択回路2の経路がデータ信号Q2をOutput信号とする経路に切り替わり、Output信号は”0”となる。ここで、クロック信号C1からクロック信号C2及びデータ信号Q2からOutput信号への切り替え分のオーバーヘッドが次段のセットアップ違反を誘発することを防ぐ必要がある。そのため、図15に示す微分回路41は、エラー信号の立ち上がりエッジを検出し、且つ半周期以内のグリッジでないことを確認し、Detect信号にカウンタサイクル分だけ正のパルスを発生する。本実施の形態では、予め設定したカウント値が1であるとして、クロック信号C1の立ち下がりエッジから次サイクルである3周期目のクロック信号C1の立ち下がりエッジまでパルスを発生させる。
なお、本実施の形態では、説明を簡略化するため、Detect信号がクロック信号C1の立ち下りエッジに同期しているが、クロック信号C1よりも少し速いクロックに同期させてDetect信号を合成し、誤動作検出期間に余裕を持たせる構成でもよい。具体的に、クロック信号C1よりも少し速いクロックはクロックツリーでクロック合成するため、理論的に任意の遅延差を設けることが可能である。また、図15に示す回路では、クロック信号C1の立ち下りエッジではなく、少し速いクロックを用いた回路構成になっている。
次に、図16に示す3周期目では、前サイクル(2周期目)のSignalIn信号からのイベントをトリガしたレジスタR0のイベントがデータ信号D1及びデータ信号D2に到達する。しかし、クロック信号C1及びクロック信号C2のイベントがディスイネーブルされ、データ信号D1及びデータ信号D2の値をデータ信号Q1及びデータ信号Q2として取り込まない。つまり、Output信号でのイベントは発生しない。よって、次段のレジスタR3は、2周期目及び3周期目の2サイクルかけてOutput信号の値を取り込めばよく、セットアップマージンを十分確保することができる。
なお、当該サイクル中(3周期目)に、SignalIn信号にイベントが発生してしまうと、クロック信号C1,C2がディスイネーブルされているために、当該イベントが後段に伝播されない。しかし、ロジックステージL1等の論理回路へデータの伝搬を要求するシステムからの制御信号(Req信号)とDetect信号とをハンドシェークするフェールセーフ手段を採用することで上記の問題を解決できる。つまり、当該手段により、Detect信号がアサートされている間、SignalIn信号にイベントを発生させないようにし、逆にSignalIn信号へのデータ準備ができていない間、Req信号をネゲートすればよい。
次に、図16に示す4周期目では、Detect信号がネゲートされ、クロック信号Clkがディスイネーブルされていた間に保持されていたデータ信号D1及びデータ信号D2のriseイベントがクロック信号C1及びクロック信号C2のriseイベントの前に到達している。そのため、レジスタR1及びレジスタR2は、正常に論理”1”を取り込むことができる。
以上のように、本実施の形態に係る半導体装置は、図15に示す回路を用いることで、修復動作時のパス経路の遅延量による次段パスの誤動作を誘発する可能性を低減している。
(実施の形態5)
図15に示す回路に対して定格電圧で駆動した場合はセットアップ時間が遵守されるが、駆動電圧の降圧に伴い遅延が増大する場合はセットアップ時間が守られずに出力が不安定な状態となるメタステーブル状態が発生する。具体的に、図17に示すタイミングチャートを用いて説明する。まず、定格電圧で駆動した場合、1周期目のクロック信号C1の立ち上がりにおいて、データ信号D1のイベントをレジスタR1が取り込むことになる。しかし、図17に示すタイミングチャートでは、駆動電圧の降圧に伴いレジスタR1の出力であるデータ信号Q1が”0”から”1”に不安定な状態(メタステーブル)に遷移している。同様に、図17に示す2周期目のクロック信号C1の立ち上がりにおいて、駆動電圧の降圧に伴いレジスタR1の出力であるデータ信号Q1が”1”から”0”に不安定な状態(メタステーブル)に遷移している。
そこで、本実施の形態に係る半導体装置では、図18に示すようにレジスタR1の出力に対してメタスタビリティ検出回路50を設ける回路を採用している。図18に示す回路は、メタスタビリティ検出回路50によりメタステーブル発生の有無を検出して、回路の出力が不安定な状態に遷移しないように制御している。つまり、図18に示すメタスタビリティ検出回路50は、出力するMSD信号と比較器3の出力とをOR回路51で処理して、メタステーブルの検出時にレジスタR1の出力にかかわらず、エラー信号を”H”する。そして、メタスタビリティ検出回路50は、レジスタR2の出力が選択回路2で選択されるように制御している。
また、メタスタビリティ検出回路50の回路図を図19に示す。図19に示すメタスタビリティ検出回路50は、低閾値(Lvt)のPMOS(P-channel Metal-Oxide Semiconductor)52と、高閾値(Hvt)のNMOS(N-channel Metal-Oxide Semiconductor)53とのペアトランジスタを用いたインバータを備えている。さらに、図19に示すメタスタビリティ検出回路50は、高閾値のPMOS54と低閾値のNMOS55とのペアトランジスタを用いたインバータを備え、両インバータのXORを演算するXOR回路56によりメタステーブルを検出している。
次に、図18及び図19に示す回路の動作を、図20に示すタイミングチャートを用いて説明する。ここで、出力I1は、低閾値のPMOS52と高閾値のNMOS53とのインバータ出力、出力I2は、高閾値のPMOS54と低閾値のNMOS55とのインバータ出力、MSDは、出力I1と出力I2とのXOR論理の結果である。また、図18では図示していないが、エラー信号の出力先に図15で示したOR回路40や微分回路41が設けられており、当該微分回路41の出力であるDetect信号に基づきクロック信号C1,C2を制御している。
まず、図20に示す1周期目では、クロック信号C1の立ち上がりと同時にデータ信号D1,D2が”0”から”1”へと遷移しているが、駆動電圧の降圧のためデータ信号Q1がメタステーブル状態となっている。そして、出力I1は、出力I2と比較して、”1”から”0”への遷移出力の感度が悪いため、出力I2が出力I1に比べて速く”0”に遷移し、少し遅れて出力I1が”0”に遷移する。この出力I1と出力I2との遅延差の間におけるMSDは”1”になり、メタステーブルを検出できることになる。このメタステーブルの検出結果(MSD=”1”)を受けてエラー信号が”1”となり、さらにDetect信号が”1”となる。
次に、図20に示す2周期目では、Detect信号が”1”となっていることを受けて、クロック信号C1,C2がネゲートされ、この間に出力Qの結果が修復される。
次に、図20に示す3周期目では、クロック信号C1の立ち上がりと同時にデータ信号D1,D2が”1”から”0”へと遷移しているが、駆動電圧の降圧のためデータ信号Q1がメタステーブル状態となっている。当該周期は1周期目のケースと逆で、出力I2は出力I1と比較して、”0”から”1”への遷移出力の感度が悪いため、出力1が出力I2に比べて速く”1”に遷移し、少し遅れて出力I2が”1”に遷移する。この出力I1と出力I2との遅延差の間におけるMSDは”1”になり、メタステーブルを検出できることになる。このメタステーブルの検出結果(MSD=”1”)を受けてエラー信号が”1”となり、さらにDetect信号が”1”となる。
次に、図20に示す4周期目では、Detect信号が”1”となっていることを受けて、クロック信号C1,C2がネゲートされ、この間に出力Qの結果が修復される。
次に、図20に示す5周期目では、クロック信号C1の立ち上がりの前にデータ信号D1,D2が”0”から”1”へと遷移しているため、データ信号Q1,Q2共に正常に”1”を取り込むことができる。
以上のように、本実施の形態に係る半導体装置では、図18及び図19に示す回路を採用しているので、メタステーブル発生の有無が検出でき、回路の出力Qが不安定な状態に遷移しないように制御できる。なお、本実施の形態に係る誤動作判定回路では、微分回路や選択回路2を備える回路構成について説明したが、本発明はこれに限られず、微分回路や選択回路2を備えない構成や、図12等に示したEnable信号のセットアップ違反を検出する回路をさらに備える構成であってもよい。
(実施の形態6)
図21に示す回路では、実動作レジスタであるレジスタR1に対し、クロックラインに遅延手段であるバッファチェーンB2を挿入した分だけタイミング的に余裕(Positive Slack)を持たせたレジスタR2を備えている。そして、レジスタR1には、ロジックステージL1から出力されたデータ信号D1が入力される。このロジックステージL1の前段には、レジスタR0が接続されている。一方、レジスタR1から出力されたデータ信号Q1は、次段のロジックステージL2に入力されると共に、比較器3に入力される。
この比較器3は、レジスタR1から出力されたデータ信号Q1とレジスタR2から出力されたデータ信号Q2とを比較し、両者が不一致の場合にエラー信号を出力する。そのため、図21に示す回路は、クロックラインに挿入したバッファチェーンB2の遅延分だけレジスタR1のセットアップ違反を動的に検出することができる。また、図21に示す回路では、バッファチェーンB2の遅延量を調整するために選択回路50が設けられている。この選択回路50は、外部から入力される選択信号Selに基づいて駆動される。そして、同様の回路(エラー検出FF)に含まれるバッファチェーンB2の遅延量(Delay)は、複数の回路全てにおいて最適な値で均一化されている。しかし、実際には挿入される遅延量と速度マージンとの間に密接な関係があり、速度マージンの少ないパスほど挿入する遅延量を増やす必要がある。但し、過多に挿入した遅延量は回路規模や消費電力のオーバーヘッドを引き起こすとともにホールド耐性も弱くなる問題がある。逆に、過少に挿入した遅延量は動作対象レジスタ(R1)と同様に期待値レジスタ(R2)もフェールする領域が大きくなり、誤動作検知スポットが狭くなる問題がある。
そこで、本実施の形態では、速度マージンによって遅延パスをグルーピングし、各グループに対して最適な遅延量を挿入する。図22に、速度マージンに対応するスラック量とパス数との関係を示したグラフを示す。図22に示すグラフでは、横軸に示した0から1までのスラック量に対して、例えば0.5nsの遅延量を有するバッファを4段挿入し、1から2までのスラック量に対して、当該バッファを3段挿入し、2から3までのスラック量に対して、当該バッファを2段挿入し、3から4までのスラック量に対して、当該バッファを4段挿入する。これにより、本実施の形態では、動作マージンを保ちつつ面積や消費電力のオーバーヘッドを抑えることができる。
具体的に説明する前に、図23(a)に示す回路(エラー検出FF)を、図23(b)に示すようにシンボル化する。図23(b)の中央にあるBの数字は、図23(a)に示すレジスタR2のクロックラインに挿入されたバッファB2の段数を示している。例えば、図23(b)に示すB−1は、バッファが1段挿入されていることを表している。なお、図23(a)に示す回路では、バッファ量が多ければ多いほど、レジスタR1とレジスタR2との間の遅延差が大きくなり、誤動作を検知するマージン(検知マージン)が大きくなるが、回路規模の増大、消費電力の増加及びホールドマージン現象が生じる問題がある。また、図23(a)に示した回路は、図3に示した回路構成とほぼ同じであるため、詳細な説明は省略する。
次に、図23(a)に示した回路を4つ(U1,U2,U3,U4)使用した場合の回路構成を図24に示す。なお、図24では、図23(a)の回路をシンボル化した図23(b)を用いて表している。そして、図24に示す回路構成では、各回路(U1,U2,U3,U4)のそれぞれに、ロジック量の異なる前段(ロジックステージ)が挿入されている。そのため、各回路(U1,U2,U3,U4)の周波数に対する速度マージン(スラック)は、それぞれ0ns,0.5ns,1.0ns,1.5nsとする。また、挿入するバッファ1段あたりの遅延量は、0.5nsとする。なお、図24に示す回路構成では、各回路(U1,U2,U3,U4)に挿入されるバッファを1段としている。
次に、図24に示す回路構成の動作を、図25に示すタイミングチャートを用いて説明する。図25に示すタイミングチャートでは、周期が進むごとに電源電圧を低下させて、各回路(U1,U2,U3,U4)のデータ端子Dに0.5nsの遅延オーバーヘッドが生じるように仮定している。従って、4周期目では、1周期目に対して1.5nsのスラックが減じられる(1.5nsの遅延増加)ことになる。
図25に示す1周期目では、回路U1のセットアップ違反を検知できている(その他の回路U2,U3,U4ではセットアップ違反していない)。しかし、2周期目以降では、回路U1がセットアップ違反を起こしているにもかかわらず、クロック信号Clkに対するクロック信号C2の位相差であるレジスタR2のマージンが不足しているのでセットアップ違反が検知できていない。
次に、図24に示す回路構成において、バッファ量を4段に増やした場合のタイミングチャートを図26に示す。図26も前述と同様に、周期が進むごとに電源電圧を低下させて、各回路(U1,U2,U3,U4)のデータ端子Dに0.5nsの遅延オーバーヘッドが生じるように仮定している。従って、4周期目では、1周期目に対して1.5nsのスラックが減じられることになる。
図26に示す1周期目では、回路U1のセットアップ違反を検知できている(その他の回路U2,U3,U4ではセットアップ違反していない)。しかし、2周期目以降では、回路U1がセットアップ違反を起こしている4周期目までセットアップ違反を検知し続けられる。
一方、回路U2に関しては、2周期目で初めてセットアップ違反が検知され、その後4周期目までセットアップ違反を検知できている。回路U3に関しては、3周期目で初めてセットアップ違反が検知され、その後、4周期目までセットアップ違反を検知できている。回路U4に関しては、4周期目で初めてセットアップ違反が検知されている。
従って、回路U2に関しては2周期目以降、回路U3に関しては3周期目以降、回路U4に関しては4周期目以降で、それぞれセットアップ違反を検知できればよいということである。通常の回路設計において電圧動作の下限は決まっており、それを超えるマージン量を確保する必要はない。よって、スラック量の大きいパスほど回路(U1,U2,U3,U4)に挿入する遅延量を小さくすることで、誤動作を検知するマージンを落とすことなく、面積や消費電力のオーバーヘッドを極力抑えることができる。
次に、図25や図26に示したタイミングチャートに基づき、挿入する遅延量を最適にした回路構成を図27に示す。図27に示す回路構成では、スラック量が少ない回路ほど遅延量が多くなるようにバッファの段数を調整している。具体的には、図27に示す回路構成では、回路U1のスラック量が0nsと小さいので4段のバッファ(B4)を設け、スラック量が0.5nsの回路U2には3段のバッファ(B3)、スラック量が1.0nsの回路U3には2段のバッファ(B2)、スラック量が1.5nsの回路U4には1段のバッファ(B1)をそれぞれ設けている。
つまり、本実施の形態に係る半導体装置の回路構成では、回路のレイアウト後に各遅延パスのスラック量を分析し、バッファ1段分の遅延量に収まるスラック量を持つ回路(エラー検出FF)をグルーピングして束ねる。そして、本実施の形態に係る半導体装置の回路構成では、グルーピングした回路(エラー検出FF)に対して最適なバッファを挿入する。
図28に示すタイミングチャートは、図27に示す回路構成の動作を説明している。そして、図27に示す回路構成では、セットアップ違反のチェックが必要な箇所(破線で囲まれた箇所でデータ信号Dが変化しているポイント)において正しく検知されている。つまり、図28に示すタイミングチャートは、回路U1に関しては1周期目以降、回路U2に関しては2周期目以降、回路U3に関しては3周期目以降、回路U4に関しては4周期目以降で、それぞれセットアップ違反を検知できている。
(実施の形態7)
実施の形態5では、スラック量により半導体装置に含まれる誤動作判定回路(エラー検出FF)をグルーピングして、各グループの誤動作判定回路に最適な量のバッファを挿入していた。しかし、半導体装置において極端にスラック量が小さい回路は、多数のバッファを挿入する必要があり、面積や消費電力のオーバーヘッドが大きくなる点で問題があった。
以下に、具体的な例を用いて説明する。図29に示す回路では、レジスタR3を終点とするパスとして、レジスタR1からレジスタR3へ至るタイミングクリティカルなパスを有すると伴に、レジスタR2からレジスタR3へ至る等の他のパスも有している。そして、図29に示すレジスタR3を図3で説明した誤動作判定回路(エラー検出FF)に置き換えた場合の回路構成を、図30に示す。図30に示す回路構成では、レジスタR1からレジスタR3−1へ至るパスがタイミングクリティカルなパスであるが、このパス以外にレジスタR2からレジスタR3−2へ至るパスも有している。
しかし、レジスタR2からレジスタR3−2へ至るパスがホールド違反を引き起こすと仮定すると、このホールド違反の対策のためにレジスタR2からレジスタR3−2へ至るパスにバッファやディレイセルを挿入する必要がある。つまり、レジスタR3−2のクロックラインに挿入しているバッファ1の遅延量が大きい場合、図31に示す回路構成のようにレジスタR2からレジスタR3−2へ至るパスに、バッファ1の遅延量と等価なバッファやディレイセル等の遅延手段60を挿入する必要がある。そのため、図31に示す回路構成では、面積的にも消費電力的にもオーバヘッドが大きくなる問題があった。
そこで、本実施の形態に係る半導体装置では、ホールド違反を引き起こすパスを有する回路構成において、ホールド違反の対策として挿入するバッファやディレイセルの代わりに、ロックアップラッチや反転FFを挿入する。つまり、本実施の形態では、図32に示すように、レジスタR2からレジスタR3−2へ至るパスにロックアップラッチとして機能するレジスタR4を挿入する。又は、図33に示すように、レジスタR2からレジスタR3−2へ至るパスに反転FFとして機能するレジスタR4を挿入する。
図32に示す回路構成や図33に示す回路構成では、多数のバッファセルやディレイセルを挿入する代わりに、ロックアップラッチや反転FFとして機能するレジスタR4を挿入することで、クロック信号の半周期分の遅延を稼ぐことができ、且つホールド違反を解消することができる。さらに、図32に示す回路構成や図33に示す回路構成は、図31に示す回路構成のように多数のバッファセルやディレイセルを挿入する必要がないので、面積的にも消費電力的にもオーバヘッドを低減できる。
次に、ホールド違反を引き起こしている図30に示す回路構成の動作を、図34に示すタイミングチャートを用いて説明する。なお、図30に示す回路構成において、レジスタR1からレジスタR3−1に至るパスはセットアップ違反を引き起こし、レジスタR1からレジスタR3−2に至るパスから期待値を得る。また、図30に示す回路構成において、レジスタR2からレジスタR3−2に至るパスはホールド違反を引き起こすパスである。また、以下の動作説明では、当該動作を簡略化するために各タイミングパスの論理はいかなる状態でも正論理であると仮定する。
まず、図34に示す1周期目では、クロック信号C1の立ち上がりで、レジスタR1の内容が”0”から”1”に遷移している。
次に、図34に示す2周期目では、1周期目におけるレジスタR1のriseイベントに従ってって値が確定されることになるが、レジスタR3−1はセットアップ違反を引き起こしているので”1”を取り込むことができず”0”のままとなる。一方、レジスタR3−2は、遅延したクロック信号C2により正常に”1”を取り込むことができる。さらに、レジスタR1には、次の”1”から”0”へのfallイベントが発生している。
次に、図34に示す3周期目では、2周期目と同様、2周期目におけるレジスタR1のfallイベントに従ってって値が確定されることになるが、レジスタR3−1はセットアップ違反を引き起こしているので”0”を取り込むことができず、前周期での確定値”1”を取り込むことになる。一方、レジスタR3−2は、遅延したクロック信号C2により正常に”0”を取り込むことができる。
次に、図34に示す4周期目では、クロック信号C1の立ち上がりでレジスタR2の内容が”0”から”1”へと遷移している。そのため、レジスタR2の当該イベントは、本来、次サイクルである5周期目にレジスタR3−1,R3−2の遷移として反映される予定である。しかし、レジスタR3−2は、ホールド違反を引き起こしているため、図中の矢印が示すよう4周期目において”1”を取り込むことになる。つまり、4周期目において期待値レジスタであるレジスタR3−2は、誤った結果を保持することになる。
次に、図34に示す5周期目では、クロック信号C1の立ち上がりでレジスタR2の内容が”1”から”0”へと遷移している。そのため、レジスタR2の当該イベントは、本来、次サイクルである6周期目にレジスタR3−1,R3−2の遷移として反映される予定である。しかし、レジスタR3−2は、ホールド違反を引き起こしているため、4周期目と同様、図中の矢印が示すよう5周期目において”0”を取り込むことになる。
次に、ホールド違反の対策のために、レジスタR2からレジスタR3−2へ至るパスにロックアップラッチ又は反転FFとして機能するレジスタR4を挿入した図32又は図33に示す回路構成の動作について図35のタイミングチャートを用いて説明する。
なお、図35に示すタイミングチャートでは、クロック信号C2がクロック信号C1に対して挿入したバッファ分だけ遅延してイベント伝播する。また、図35に示すタイミングチャートでは、レジスタR1,R2,R3−1のそれぞれがクロック信号C1の立ち上がりエッジでデータ信号を取り込み、レジスタR3−2がクロック信号C2の立ち上がりエッジでデータ信号を取り込み、レジスタR4がクロック信号C1の立ち下りエッジでデータを取り込むものとする。
次に、図35に示すタイミングチャートは、1周期目から3周期目までの動作が図34に示したタイミングチャートの動作と等価であるため詳細な説明を割愛する。
次に、図35に示す4周期目では、クロック信号C1の立ち上がりでレジスタR2の内容が”0”から”1”へと遷移している。レジスタR3−2はホールド違反を引き起こすパスであったが、図32又は図33に示すようにレジスタR2とレジスタR3−2との間にロックアップラッチ又は反転FFが挿入されている。そのため、図35に示す4周期目では、レジスタR2で生じたイベント”1”がレジスタR3−2に直接取り込まずに、図中の矢印が示すようにクロック信号C1の立ち下りでレジスタR4に一旦取り込まれた後、5周期目でレジスタR3−2に取り込む。
次に、図35に示す5周期目では、レジスタR4に取り込んだ”1”をクロック信号C1の立ち上がりでレジスタR3−1が取り込み、クロック信号C2の立ち上がりでレジスタR3−2に取り込む。また、クロック信号C1の立ち上がりでレジスタR2の内容が”1”から”0”に遷移しているが、4周期目と同様にレジスタR2で生じたイベント”0”をレジスタR3−2が直接取り込まずに、図中の矢印が示すようにクロック信号C1の立ち下りでレジスタR4に一旦取り込む。
次に、図35に示す6周期目では、レジスタR4に取り込んだ”0”をクロック信号C1の立ち上がりでレジスタR3−1が取り込み、クロック信号C2の立ち上がりでレジスタR3−2に取り込む。
以上のように、本実施の形態に係る半導体装置では、図32又は図33に示す回路構成を採用することで、面積的にも消費電力的にもオーバヘッドを低減し、ホールド違反による誤動作を回避してデータを正しく転送可能にしている。
(実施の形態8)
実施の形態6では、速度マージンによって遅延パスをグルーピングし、各グループに対して最適な遅延量を挿入している。具体的に、図23の回路(エラー検出FF)に対して、個別にバッファB2を挿入し最適な挿入バッファ量を設定することで、回路規模や消費電力増大を抑える効果について説明した。しかし、挿入バッファ量を個々に変えるということは、エラー検出FFごとに1つのクロックドメインをアサインすると言うことになり、実際に配置配線する際には、クロックスキューやレイテンシの制御がうまく働かず、所望の回路規模や消費電力が得られない場合も考えられる。
そこで、本実施の形態では、上記のリスクも考慮した最適なグルーピング方法について説明する。まず、図36に、本実施の形態で行うグルーピングのアルゴリズムのフローチャートを示す。例えば、遅延パスが21パスあるとした場合について、図36に示すフローチャートを説明する。この21パスのネガティブスラック量(Negative-Slack)は、それぞれ0.048,0.048,0.045,0.045,0.036,0.035,0.033,0.027,0.024,0.022,0.021,0.019,0.017,0.015,0.015,0.008,0.007,0.006,0.005,0.001,0.001であると仮定する。なお、通常のネガティブスラック量(Negative-Slack)は負値となるが、説明を簡単にするために、全て正値として表す。
図36に示すフローチャートのステップS1では、最大及び最小のネガティブスラック量(Maximum-Negative-Slack(MaxNS),Minimum-Negative-Slack(MinNS:初期値は0))、トータルネガティブスラック量(Total-Negative-Slack(TNS))を算出する。さらに、ステップS1で算出したTNSを初期クライテリアとする。具体的には、MaxNS=0.048,MinNS=0.0,TNS=0.478となる。
次に、ステップS2では、MaxNSからMinNSまでの任意のネガティブスラック量をDivNS(選択値)として選択し、MaxNSからDivNSまでに属する全ての遅延パスをグループA、DivNSからMinNSまでに属する全ての遅延パスをグループBに分ける。0.7Vでのスラックタイミングを示す図37のように、MaxNSからMinNSまで遅延パスをDivNSを境にグループAとグループBとに分ける。さらに、ステップS2では、グループAに属する個々の遅延パスからDivNSまでの差分の合計、及びグループBに属する個々の遅延パスからMinNSまでの差分の合計をそれぞれ算出し、両差分の和を評価関数としてトータルネガティブスラック量(TNS)とする。
次に、ステップS3では、DivNSをMaxNSからMinNSまでの間で順次スイープさせて、評価関数であるトータルネガティブスラック量(TNS)が最小となるDivNSを求める。具体的に、上記の例では、DivNSをMaxNS(0.048)からMinNS(0.0)までスイープさせてTNSが最小となるDivNSを決定する。なお、本例では、DivNSのスイープ精度を0.01とするので、DivNSの取りうる値は0.00,0.01,0.02,0.03,0.04の5通りとなる。取りうる各DivNS時のTNSは、DivNS=0.00のときTNS=0.478,DivNS=0.01のときTNS=0.328,DivNS=0.02のときTNS=0.258,DivNS=0.03のときTNS=0.268,DivNS=0.04のときTNS=0.318である。
次に、ステップS4では、ステップS3で求めた最小となるDivNSに所定の重み付けを行った値と、今回の分割前のクライテリアとを比較し、大きければ処理を終了し、小さければ今回の分割処理をアクセプトして、得られた値を新たなクライテリアとして更新する。上記の例では、TNSの最小値はDivNS=0.02のときの0.258なので、この値と初期クライテリア(0.478)を比較する。この時の重み付け関数を1.5*TNS+0.05とすると、重み付けを行った値は0.437となり、クライテリアを下回るため、本分割はアクセプトされ、以下のように分割される。グループAは、0.048,0.048,0.045,0.045,0.036,0.035,0.033,0.027,0.024,0.022,0.021、グループBは0.019,0.017,0.015,0.015,0.008,0.007,0.006,0.005,0.001,0.001となる。このとき、クライテリアは0.478から0.258に更新される。
次に、ステップS5では、分割後の2グループに関して同様のことが再帰的に行われる。グループAにおけるTNSの最小値はDivNS=0.04の時の0.084で、重み付けを行った値は0.176となり、分割はアクセプトされる。このときのクライテリアは0.084に更新される。また、グループBにおけるTNSの最小値はDivNS=0.01の時の0.054で、重み付けを行った値は0.131となり、分割はアクセプトされる。この時のクライテリアは0.054に更新される。
従って、上記分割のアクセプト後のグループは以下の通りになる。グループA−A(GA−A)は0.048,0.048,0.045,0.045、グループA−B(GA−B)は0.036,0.035,0.033,0.027,0.024,0.022,0.021、グループB−A(GB−A)は0.019,0.017,0.015,0.015、グループB−B(GB−B)は0.008,0.007,0.006,0.005,0.001,0.001となる。このとき、グループA−A,グループB−A,グループB−Bに関しては、DivNSの精度0.01による分割はこれ以上できないため、分割処理をストップし、グループA−Bのみ分割処理を続ける。
グループA−BにおけるTNSの最小値はDivNS=0.03の時の0.028で、重み付けを行った値は0.092となり、クライテリア0.084を上回るため分割がリジェクトされる。したがって、上記の遅延パスである21パスに図36に示すアルゴリズムを適用して分割した場合、上記4通り(グループA−A,グループA−B,グループB−A,グループB−B)にグルーピングされる。
次に、図36に示すアルゴリズムを用いて遅延パスをグルーピングした場合の効果について説明する。図38は、上記のグループ分けを行った遅延パスを説明するための模式図である。従来手法では、21パス全てに最大スラック0.048nsのディレイを補うバッファが挿入されていた。ホールドオーバーヘッド関数を遅延量*パス数とすると、オーバヘッド指標は0.048*21=1.008となる。
一方、本実施の形態では、挿入遅延量は各グループのクリティカルスラックとなるため、図38に示すようにグループA−Aの挿入遅延量は0.048nsのまま変わらないが、グループA−Bは0.036ns,グループB−Aは0.019ns,グループB−Bは0.008nsに削減される。これによりオーバーヘッド指標は、0.048*4+0.036*7+0.019*4+0.008*6=0.568となる。
したがって、オーバヘッド指標は0.568/1.008*100=56.3%に削減されることが分かる。また、図38では、各グループに挿入される挿入バッファの数が図示されており、従来手法及びグループA−Aは5、グループA−Bは4、グループB−Aは2、グループB−Bは1である。
さらに、本実施の形態では、図39に示すようにロジックを分割し、一部の処理を先行的に処理することにより、レイテンシも削減することができる。
エラー検知は、適用回路中に分散されているエラー検出FFのいずれか1つでもフェールすれば、その旨のアラート信号を出さねばならないため、各エラー検知信号の論理和を取らねばならない。従来手法では、21パス全てのエラー検知を最大スラック0.048nsのクロック位相差後に行うため、21入力論理和を一気に処理しなければならなかった。この処理には、100ps要していた。
一方、本実施の形態では、挿入遅延量が各グループのクリティカルスラックとなるため、図38に示すようにグループA−Aの挿入遅延量は0.048nsのまま変わらないが、グループA−Bは0.036ns,グループB−Aは0.019ns,グループB−Bは0.008nsになり、各タイミングでエラー検知がなされ、グループB−B,グループB−A,グループA−Bの順で各論理和を先行的に処理することができる。仮にグループA−Bまでの論理和の処理がグループA−Aのクロック位相差までに完了しているとすると、本実施の形態では、これらの伝搬信号とグループA−Aに属する4パスの計5入力の論理和を処理するだけでよい。この処理に40ps要するとする。したがって、本実施の形態では、レイテンシも40/100*100=40.0%に削減されることが分かる。
本発明の前提となる回路の回路図である。 本発明の前提となる回路のタイミングチャートである。 本発明の実施の形態1に係る誤動作判定回路の回路図である。 本発明の実施の形態1に係る誤動作判定回路の回路図である。 本発明の実施の形態1に係る誤動作判定回路を複数設けた場合の構成を示す回路図である。 本発明の実施の形態1に係る誤動作判定回路のタイミングチャートである。 本発明の実施の形態1に係る半導体装置のブロック図である。 本発明の実施の形態2に係る誤動作判定回路の前提となる回路図である。 クロック信号のクリップを説明するための概略図である。 本発明の実施の形態2に係る誤動作判定回路の回路図である。 本発明の実施の形態2に係る誤動作判定回路のタイミングチャートである。 本発明の実施の形態3に係る誤動作判定回路の回路図である。 本発明の実施の形態3に係る誤動作判定回路のタイミングチャートである。 本発明の実施の形態4に係る誤動作判定回路の前提となる回路図である。 本発明の実施の形態4に係る誤動作判定回路の回路図である。 本発明の実施の形態4に係る誤動作判定回路のタイミングチャートである。 メタステーブルを説明するための概略図である。 本発明の実施の形態5に係る誤動作判定回路の回路図である。 本発明の実施の形態5に係るメタスタビリティ検出回路の回路図である。 本発明の実施の形態5に係る誤動作判定回路のタイミングチャートである。 本発明の実施の形態6に係る誤動作判定回路の前提となる回路図である。 スラック量とパス量との関係を示す図である。 本発明の実施の形態6に係る誤動作判定回路の回路図である。 本発明の実施の形態6に係る誤動作判定回路を複数設けた場合の構成を示す回路図である。 本発明の実施の形態6に係る誤動作判定回路のタイミングチャートである。 本発明の実施の形態6に係る誤動作判定回路のタイミングチャートである。 本発明の実施の形態6に係る誤動作判定回路を複数設けた場合の別の構成を示す回路図である。 本発明の実施の形態6に係る誤動作判定回路のタイミングチャートである。 ホールド違反を説明するための図である。 ホールド違反を説明するための図である。 ホールド違反の対策を説明するための図である。 本発明の実施の形態7に係る誤動作判定回路の回路図である。 本発明の実施の形態7に係る誤動作判定回路の回路図である。 ホールド違反が生じた誤動作判定回路のタイミングチャートである。 本発明の実施の形態7に係る誤動作判定回路のタイミングチャートである。 本発明の実施の形態8に係るアルゴリズムを説明するためのフローチャートである。 本発明の実施の形態8に係るアルゴリズムによりグルーピングされた遅延パスを説明するための図である。 本発明の実施の形態8に係るアルゴリズムの効果を説明するための模式図である。 本発明の実施の形態8に係るアルゴリズムの効果を説明するための模式図である。
符号の説明
1,30 バッファ、2,21,50 選択回路、3,31,56 比較器、4,20,22,42,43 AND回路、5,6,7 MUX、10 デジタル回路、11 クロック発生装置、12 レギュレータ、13 制御回路、14 メモリ、40,51 OR回路、41 微分回路、60 遅延手段、50 メタスタビリティ検出回路、52,54 PMOS、53,55 NMOS、56 XOR回路。

Claims (14)

  1. 複数の論理回路と、前記論理回路からのデータに基づき誤動作判定を行う複数の判定回路とを備える半導体装置であって、
    前記判定回路は、
    前記論理回路からのデータをクロック信号の所定のタイミングで取り込む第1レジスタと、
    前記クロック信号を遅延させる遅延手段と、
    前記遅延手段を経た前記クロック信号の所定のタイミングで前記論理回路からのデータを取り込む、前記第1レジスタと論理等価な第2レジスタと、
    前記第1レジスタの出力と前記第2レジスタの出力との比較を行い、エラー信号を出力する比較器と、
    前記比較器の比較結果を保持させつつ、前記第2レジスタをシフトレジスタ化して前記第2レジスタで保持した前記エラー信号を次段へ伝搬させるスキャン化手段とを備える半導体装置。
  2. 請求項1に記載の半導体装置であって、
    前記スキャン化手段は、
    前段の前記判定回路から伝搬される前記エラー信号と、前記比較器から出力された前記エラー信号と、リセット信号とが入力される第1マルチプレクサと、
    前記第1マルチプレクサの出力と、前記論理回路からのデータと、モード信号とが入力される第2マルチプレクサとを備え、
    誤動発生時に、前記モード信号に基づき前記第1マルチプレクサが前記第2レジスタへの前記データの取り込みを停止させ、前記第2マルチプレクサを介して前段の前記判定回路から伝搬される前記エラー信号、又は前記比較器から出力された前記エラー信号のいずれかを前記第2レジスタに取り込み次段の前記判定回路に伝搬させることを特徴とする半導体装置。
  3. 請求項2に記載の半導体装置であって、
    前記第1レジスタに前記クロック信号が入力されるラインに、前記クロック信号と前記モード信号の反転信号とが入力されるAND回路をさらに備え、
    前記モード信号が前記第2レジスタへの前記データの取り込みを停止させている間、前記第1レジスタへの前記クロック信号の入力を停止させ、前記第1レジスタの内容を保持させることを特徴とする半導体装置。
  4. 複数の論理回路と、前記論理回路からのデータに基づき誤動作判定を行う複数の判定回路とを備える半導体装置であって、
    前記判定回路は、
    イネーブル信号に基づきクロック信号の伝送を制御する第1クロック制御手段と、
    前記論理回路からのデータを前記第1クロック制御手段で制御された前記クロック信号の所定のタイミングで取り込む第1レジスタと、
    前記クロック信号を遅延させる遅延手段と、
    前記イネーブル信号に基づき前記遅延手段を経た前記クロック信号の伝送を制御する第2クロック制御手段と、
    前記第2クロック制御手段で制御された前記クロック信号の所定のタイミングで前記論理回路からのデータを取り込む、前記第1レジスタと論理等価な第2レジスタと、
    前記第1レジスタの出力と前記第2レジスタの出力との比較を行い、エラー信号を出力する比較器と、
    前記第2クロック制御手段に入力する前記イネーブル信号のラインに挿入し、前記遅延手段を経た前記クロック信号にグリッジが乗ることを防ぐフェールセーフ回路と、
    前記第2クロック制御手段の前段に挿入し、前記イネーブル信号のイベント内容を判定する第3レジスタとを備える半導体装置。
  5. 複数の論理回路と、前記論理回路からのデータに基づき誤動作判定を行う複数の判定回路とを備える半導体装置であって、
    前記判定回路は、
    イネーブル信号に基づきクロック信号の伝送を制御する第1クロック制御手段と、
    前記論理回路からのデータを前記第1クロック制御手段で制御された前記クロック信号の所定のタイミングで取り込む第1レジスタと、
    前記クロック信号を遅延させる第1遅延手段と、
    前記イネーブル信号に基づき前記第1遅延手段を経た前記クロック信号の伝送を制御する第2クロック制御手段と、
    前記第2クロック制御手段で制御された前記クロック信号の所定のタイミングで前記論理回路からのデータを取り込む、前記第1レジスタと論理等価な第2レジスタと、
    前記第1レジスタの出力と前記第2レジスタの出力との比較を行い、エラー信号を出力する比較器とを備え、
    同一の前記イネーブル信号で前記クロック信号が制御される複数の前記判定回路に対して、前記イネーブル信号のセットアップ違反を検出する検出回路をさらに備えることを特徴とする半導体装置。
  6. 請求項5に記載の半導体装置であって、
    前記検出回路は、
    前記イネーブル信号を前記クロック信号の所定のタイミングで取り込む第3レジスタと、
    前記クロック信号を遅延させる第2遅延手段と、
    前記第2遅延手段を経た前記クロック信号の所定のタイミングで前記イネーブル信号を取り込む、前記第3レジスタと論理等価な第4レジスタとを備えることを特徴とする半導体装置。
  7. 複数の論理回路と、前記論理回路からのデータに基づき誤動作判定を行う複数の判定回路とを備える半導体装置であって、
    前記判定回路は、
    前記論理回路からのデータをクロック信号の所定のタイミングで取り込む第1レジスタと、
    前記クロック信号を遅延させる遅延手段と、
    前記遅延手段を経た前記クロック信号の所定のタイミングで前記論理回路からのデータを取り込む、前記第1レジスタと論理等価な第2レジスタと、
    前記第1レジスタの出力と前記第2レジスタの出力との比較を行い、エラー信号を出力する比較器と、
    前記エラー信号に基づき第1レジスタの出力又は第2レジスタの出力のいずれかを選択し、次段の前記論理回路に伝搬する選択回路と、
    前記エラー信号のグリッジをフィルタリングし、且つ前記エラー信号の立ち上がりエッジを検出して、前記クロック信号を所定の期間停止するように制御する微分回路とを備える半導体装置。
  8. 請求項7に記載の半導体装置であって、
    前記微分回路が前記クロック信号を制御するディテクト信号と、前記論理回路へデータの伝搬を要求する制御信号とをハンドシェイクして、前記クロック信号の停止期間中に前記データ信号のイベントが生じないように制御するフェールセーフ手段をさらに備えることを特徴とする半導体装置。
  9. 請求項7又は請求項8に記載の半導体装置であって、
    前記第1レジスタの後段に、メタステーブルを検出するメタスタビリティ検出回路をさらに備え、
    前記メタスタビリティ検出回路の出力に基づき、前記メタステーブルの検出時に前記判定回路が常に誤動作と判定させることを特徴とする半導体装置。
  10. 複数の論理回路と、前記論理回路からのデータに基づき誤動作判定を行う複数の判定回路とを備える半導体装置であって、
    前記判定回路は、
    前記論理回路からのデータをクロック信号の所定のタイミングで取り込む第1レジスタと、
    前記クロック信号を遅延させる遅延手段と、
    前記遅延手段を経た前記クロック信号の所定のタイミングで前記論理回路からのデータを取り込む、前記第1レジスタと論理等価な第2レジスタと、
    前記第1レジスタの出力と前記第2レジスタの出力との比較を行い、エラー信号を出力する比較器と、
    前記第1レジスタの後段に、メタステーブルを検出するメタスタビリティ検出回路とを備え、
    前記メタスタビリティ検出回路の出力に基づき、前記メタステーブルの検出時に前記判定回路が常に誤動作と判定させることを特徴とする半導体装置。
  11. 請求項9又は請求項10に記載の半導体装置であって、
    前記メタスタビリティ検出回路は、
    第1PMOSと前記第1PMOSより閾値の高い第2NMOSとで構成された第1インバータと、
    第3PMOSと前記第3PMOSより閾値の低い第4NMOSとで構成された第2インバータと、
    前記第1インバータの出力と、前記第2インバータの出力とのXORを演算する論理回路とを備えることを特徴とする半導体装置。
  12. 複数の論理回路と、前記論理回路からのデータに基づき誤動作判定を行う複数の判定回路とを備える半導体装置であって、
    前記判定回路は、
    前記論理回路からのデータをクロック信号の所定のタイミングで取り込む第1レジスタと、
    前記クロック信号を遅延させる遅延手段と、
    前記遅延手段を経た前記クロック信号の所定のタイミングで前記論理回路からのデータを取り込む、前記第1レジスタと論理等価な第2レジスタと、
    前記第1レジスタの出力と前記第2レジスタの出力との比較を行い、エラー信号を出力する比較器とを備え、
    前記遅延手段の遅延量が制御可能な単位で複数の前記判定回路をグルーピングし、各グループに属する前記判定回路に応じた遅延量の前記遅延手段を設けることを特徴とする半導体装置。
  13. 複数の論理回路と、前記論理回路からのデータに基づき誤動作判定を行う複数の判定回路とを備える半導体装置であって、
    前記判定回路は、
    前記論理回路からのデータをクロック信号の所定のタイミングで取り込む第1レジスタと、
    前記クロック信号を遅延させる遅延手段と、
    前記遅延手段を経た前記クロック信号の所定のタイミングで前記論理回路からのデータを取り込む、前記第1レジスタと論理等価な第2レジスタと、
    前記第1レジスタの出力と前記第2レジスタの出力との比較を行い、エラー信号を出力する比較器とを備え、
    前記判定回路の前段において、ホールド違反が生じるパス上にロックアップラッチ又は反転フリップ−フロップ回路を挿入することを特徴とする半導体装置。
  14. 請求項12に記載の半導体装置であって、
    前記グルーピングは、
    パス毎のネガティブスラック量から最大値と最小値を算出し、
    前記最大値から選択値までのグループと、前記選択値から前記最小値までのグループとに分割して、各グループにおいて前記選択値又は前記最小値までの差分の合計を求め、前記合計の和を評価関数とし、
    前記評価関数が最小となる前記選択値を求め、
    最小となる前記選択値に所定の重み付けした処理値を分割前の設定値と比較し、大きければ当該分割を止め、小さければ当該分割を承認して前記設定値を前記処理値に更新し、
    分割した各グループに対して所定の条件まで再帰的に分割を繰り返すことで複数のグループを形成することを特徴とする半導体装置。
JP2008025436A 2007-07-17 2008-02-05 半導体装置 Expired - Fee Related JP5107080B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2008025436A JP5107080B2 (ja) 2007-07-17 2008-02-05 半導体装置
US12/171,606 US7827454B2 (en) 2007-07-17 2008-07-11 Semiconductor device
US12/899,978 US7913139B2 (en) 2007-07-17 2010-10-07 Semiconductor device
US13/026,660 US8028210B2 (en) 2007-07-17 2011-02-14 Semiconductor device
US13/206,272 US20110296260A1 (en) 2007-07-17 2011-08-09 Semiconductor device

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2007185270 2007-07-17
JP2007185270 2007-07-17
JP2008025436A JP5107080B2 (ja) 2007-07-17 2008-02-05 半導体装置

Publications (2)

Publication Number Publication Date
JP2009044709A true JP2009044709A (ja) 2009-02-26
JP5107080B2 JP5107080B2 (ja) 2012-12-26

Family

ID=40444896

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008025436A Expired - Fee Related JP5107080B2 (ja) 2007-07-17 2008-02-05 半導体装置

Country Status (1)

Country Link
JP (1) JP5107080B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102708816A (zh) * 2012-03-02 2012-10-03 京东方科技集团股份有限公司 移位寄存器、栅极驱动装置和显示装置
JP2012524283A (ja) * 2009-04-20 2012-10-11 コミッサリア ア レネルジ アトミック エ オ エネルジ アルテルナティヴ デジタル回路のオペレーションをモニターするためのデバイス
KR20140101688A (ko) * 2013-02-12 2014-08-20 가부시키가이샤 한도오따이 에네루기 켄큐쇼 반도체 장치
US8988268B2 (en) 2012-11-27 2015-03-24 Kabushiki Kaisha Toshiba Analog-digital converter and analog-digital conversion method
CN110350902A (zh) * 2019-07-18 2019-10-18 合肥惠科金扬科技有限公司 一种防误操作电路及防误操作装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000331499A (ja) * 1999-05-17 2000-11-30 Nec Eng Ltd メモリテスト回路および半導体集積回路
JP2002350509A (ja) * 2001-05-30 2002-12-04 Nec Corp 半導体装置
US20040174944A1 (en) * 1999-09-27 2004-09-09 The Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantatins System and method of digital system performance enhancement
JP2005214732A (ja) * 2004-01-28 2005-08-11 Sony Corp クリティカル・パス評価方法及び遅延状態計測回路、並びにlsi製造方法
JP2006203687A (ja) * 2005-01-21 2006-08-03 Matsushita Electric Ind Co Ltd 半導体集積回路
JP2008042367A (ja) * 2006-08-03 2008-02-21 Renesas Technology Corp 半導体装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000331499A (ja) * 1999-05-17 2000-11-30 Nec Eng Ltd メモリテスト回路および半導体集積回路
US20040174944A1 (en) * 1999-09-27 2004-09-09 The Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantatins System and method of digital system performance enhancement
JP2002350509A (ja) * 2001-05-30 2002-12-04 Nec Corp 半導体装置
JP2005214732A (ja) * 2004-01-28 2005-08-11 Sony Corp クリティカル・パス評価方法及び遅延状態計測回路、並びにlsi製造方法
JP2006203687A (ja) * 2005-01-21 2006-08-03 Matsushita Electric Ind Co Ltd 半導体集積回路
JP2008042367A (ja) * 2006-08-03 2008-02-21 Renesas Technology Corp 半導体装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012524283A (ja) * 2009-04-20 2012-10-11 コミッサリア ア レネルジ アトミック エ オ エネルジ アルテルナティヴ デジタル回路のオペレーションをモニターするためのデバイス
CN102708816A (zh) * 2012-03-02 2012-10-03 京东方科技集团股份有限公司 移位寄存器、栅极驱动装置和显示装置
US8988268B2 (en) 2012-11-27 2015-03-24 Kabushiki Kaisha Toshiba Analog-digital converter and analog-digital conversion method
KR20140101688A (ko) * 2013-02-12 2014-08-20 가부시키가이샤 한도오따이 에네루기 켄큐쇼 반도체 장치
KR102112367B1 (ko) 2013-02-12 2020-05-18 가부시키가이샤 한도오따이 에네루기 켄큐쇼 반도체 장치
CN110350902A (zh) * 2019-07-18 2019-10-18 合肥惠科金扬科技有限公司 一种防误操作电路及防误操作装置
CN110350902B (zh) * 2019-07-18 2023-01-17 重庆惠科金扬科技有限公司 一种防误操作电路及防误操作装置

Also Published As

Publication number Publication date
JP5107080B2 (ja) 2012-12-26

Similar Documents

Publication Publication Date Title
US8028210B2 (en) Semiconductor device
KR101312978B1 (ko) 성능 모니터링을 위한 임계―경로 회로
US8125246B2 (en) Method and apparatus for late timing transition detection
US8291364B2 (en) Automated digital circuit design tool that reduces or eliminates adverse timing constraints do to an inherent clock signal skew, and applications thereof
JP5107080B2 (ja) 半導体装置
US8493108B2 (en) Synchronizer with high reliability
CN113835012A (zh) 定时错误检测和校正电路
JP2008042367A (ja) 半導体装置
JP2012248194A (ja) 状態保持回路における状態保全性の検証
JP2003316736A (ja) Usb回路およびデータ構造
US6698005B2 (en) Min-time / race margins in digital circuits
JP3990250B2 (ja) 自動設計システム、及び自動設計方法
US20090271747A1 (en) Logic circuit designing device, logic circuit designing method and logic circuit designing program for asynchronous logic circuit
Verma et al. Understanding clock domain crossing issues
US20100316142A1 (en) Semiconductor integrated circuit and designing method thereof
Sharif et al. Quantitative analysis of state-of-the-art synchronizers: Clock domain crossing perspective
WO2022152032A1 (zh) 测试电路、测试方法和包括测试电路的计算系统
JP2007263756A (ja) スキャンテスト用フリップフロップ
JPWO2009084396A1 (ja) 遅延モニタ回路および遅延モニタ方法
Poornima et al. Functional verification of clock domain crossing in register transfer level
JP2011164740A (ja) 回路設計装置及び回路設計方法
JP2013036960A (ja) 遅延スキャンテスト方法、半導体装置及び半導体装置の設計方法
JP2012159371A (ja) スキャンチェーン回路、スキャンチェーン構築方法及び試験装置
JP2004326222A (ja) データ処理システム
JP5145167B2 (ja) クロックドメインチェック方法及びクロックドメインチェック用プログラム並びに記録媒体

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100524

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101105

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120720

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120731

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120907

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121002

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121003

R150 Certificate of patent or registration of utility model

Ref document number: 5107080

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151012

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees