(57)【要約】  モニタ回路（１０）において、ＦＦ（１１）からＦＦ（１２）に、データ遅延回路（１６）を経由してデータ信号（Ｄ１）が伝播される。データ遅延回路（１６）はデータ信号（Ｄ１）を遅延させるデータパス（１６１〜１６４）の中から、選択信号（ＴＮ１）に従っていずれか１つを選択する。ＦＦ（１１）に入力されるクロック信号（ＭＣＫ）は、クロック遅延回路（１７）を経由してＦＦ（１２）に入力される。クロック遅延回路（１７）はクロック信号（ＭＣＫ）を遅延させるクロックパス（１７１〜１７４）の中から、選択信号（ＴＮ２）に従っていずれか１つを選択する。
2017199790.tif 000002
【特許請求の範囲】
【請求項１】
データ伝播エラーの有無を判定するモニタ回路を備え、
前記モニタ回路は、
クロック端子に第１クロック信号が入力される第１フリップフロップと、
前記第１フリップフロップの出力である第１データ信号を遅延させるデータ遅延回路と、
前記第１クロック信号を遅延させるクロック遅延回路と、
データ入力端子に前記データ遅延回路の出力信号が入力され、クロック端子に前記クロック遅延回路の出力信号が入力される第２フリップフロップとを備え、
前記データ遅延回路は、
前記第１データ信号をそれぞれ遅延させる複数のデータパスと、
与えられた第１選択信号に従って、前記複数のデータパスの中からいずれか１つを選択し、選択したデータパスを経た前記第１データ信号を、前記データ遅延回路の出力信号として出力するデータ選択回路とを備えたものであり、
前記クロック遅延回路は、
前記第１クロック信号をそれぞれ遅延させる複数のクロックパスと、
与えられた第２選択信号に従って、前記複数のクロックパスの中からいずれか１つを選択し、選択したクロックパスを経た前記第１クロック信号を、前記クロック遅延回路の出力信号として出力するクロック選択回路とを備えたものである
ことを特徴とする半導体集積回路。
【請求項２】
請求項１記載の半導体集積回路において、
前記モニタ回路は、
データ入力端子に前記第１データ信号が入力され、クロック端子に前記クロック遅延回路の出力信号が入力される第３フリップフロップと、
前記第２フリップフロップの出力信号と前記第３フリップフロップの出力信号とが一致するか否かを判定する判定回路とを備える
ことを特徴とする半導体集積回路。
【請求項３】
請求項１記載の半導体集積回路において、
前記データ遅延回路は、前記複数のデータパスを構成する要素として、
回路機能を構成するゲートを遅延要素として有するゲート遅延部と、
ゲートを有さず、配線を遅延要素として有する配線遅延部とを備える
ことを特徴とする半導体集積回路。
【請求項４】
請求項３記載の半導体集積回路において、
前記配線遅延部が設けられた第１領域と、前記ゲート遅延部が設けられた第２領域とは、平面視で重なりを有しないように、配置されている
ことを特徴とする半導体集積回路。
【請求項５】
請求項３記載の半導体集積回路において、
前記配線遅延部は、周囲にシールド配線が設けられた配線を含む
ことを特徴とする半導体集積回路。
【請求項６】
請求項３記載の半導体集積回路において、
前記データ遅延回路は、前記配線遅延部として、
第１配線層に形成された配線を遅延要素として有する複数のパスからなる第１遅延部と、
前記第１配線層と異なる第２配線層に形成された配線を遅延要素として有する複数のパスからなる第２遅延部とを備え、
前記データ選択回路は、
前記第１遅延部に属する複数のパスの中からいずれか１つを選択する第１選択部と、
前記第２遅延部に属する複数のパスの中からいずれか１つを選択する第２選択部とを備える
ことを特徴とする半導体集積回路。
【請求項７】
請求項１記載の半導体集積回路において、
前記モニタ回路は、判定結果を示す出力信号を出力するものであり、
前記半導体集積回路は、
前記モニタ回路の出力信号を、複数回の判定分保持し、保持した出力信号がそれぞれ、データ伝播エラー無しを示すとき、前記モニタ回路においてデータ伝播が正常に行われたと判断する出力保持回路を備える
ことを特徴とする半導体集積回路。
【請求項８】
第１および第２フリップフロップを有し、前記第１および第２フリップフロップ間に模擬的に実現したクリティカルパスにおけるデータ伝播エラーの有無を判定し、判定結果を示す出力信号を出力するモニタ回路と、
前記モニタ回路の出力信号を、複数回の判定分保持し、保持した出力信号がそれぞれ、データ伝播エラー無しを示すとき、前記モニタ回路においてデータ伝播が正常に行われたと判断する出力保持回路とを備えた
ことを特徴とする半導体集積回路。
【請求項９】
データ伝播エラーの有無を判定するモニタ回路を備え、
前記モニタ回路は、
第１フリップフロップと、
前記第１フリップフロップの出力であるデータ信号を遅延させるデータ遅延回路と、
データ入力端子に前記データ遅延回路の出力信号が入力される第２フリップフロップとを備え、
前記データ遅延回路は、
前記データ信号をそれぞれ遅延させる複数のデータパスと、
与えられた選択信号に従って、前記複数のデータパスの中からいずれか１つを選択し、選択したデータパスを経た前記データ信号を出力するデータ選択回路とを備えたものであり、
前記データ遅延回路は、前記複数のデータパスを構成する要素として、
第１配線層に形成された配線を遅延要素として有する複数のパスからなる第１遅延部と、
前記第１配線層と異なる第２配線層に形成された配線を遅延要素として有する複数のパスからなる第２遅延部とを備え、
前記データ選択回路は、
前記第１遅延部に属する複数のパスの中からいずれか１つを選択する第１選択部と、
前記第２遅延部に属する複数のパスの中からいずれか１つを選択する第２選択部とを備える
ことを特徴とする半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、クリティカルパスを模擬的に実現可能に構成されたレプリカ遅延モニタを備えた半導体集積回路に関する。
【背景技術】
【０００２】
近年、半導体チップの消費電力低減を目的として、データが正常に伝播されるか否かを模擬的に確認できるタイミングモニタが、半導体チップに搭載されている。例えば非特許文献１では、半導体チップにおけるクリティカルパスを模擬して、セットアップエラーの有無を検出するレプリカ遅延モニタが開示されている。このレプリカ遅延モニタでは、２つのフリップフロップ間のデータパスの遅延をクリティカルパスの遅延と同等に設定して、セットアップエラーの有無を確認することができる。半導体チップの電源電圧を低下させながら、レプリカ遅延モニタの判定結果を得ることによって、半導体チップの性能を保ちつつ、より低い電源電圧を設定することが可能になる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Minki Cho et al., "Post-Silicon Voltage-Guard-Band Reduction in a 22nm Graphics Execution Cores Using Adaptive Voltage Scaling and Dynamic Power Gating", IEEE, ISSCC(International Solid-State Circuits Conference) 2016, 2016
【発明の概要】
【発明が解決しようとする課題】
【０００４】
非特許文献１に開示されたレプリカ遅延モニタでは、２つのフリップフロップ間のデータパスの遅延を、クリティカルパスの遅延に合わせて調整できるに過ぎない。一方、プロセスのばらつきの増大により増加傾向にある、ホールドエラーに対してクリティカルなパスに関しては、データパスの遅延のみを調整可能であるレプリカ遅延モニタでは、確認することができない。【０００５】
また、非特許文献１に開示されたレプリカ遅延モニタでは、フリップフロップがいわゆるメタステーブル状態になったとき、正常なデータ伝播が行われていないにもかかわらず、正常動作していると誤って判断される可能性がある。【０００６】
本開示は、半導体集積回路に搭載されるレプリカ遅延モニタについて、従来よりも性能を向上させることを目的とする。
【課題を解決するための手段】
【０００７】
本開示の一態様では、半導体集積回路は、データ伝播エラーの有無を判定するモニタ回路を備え、前記モニタ回路は、クロック端子に第１クロック信号が入力される第１フリップフロップと、前記第１フリップフロップの出力である第１データ信号を遅延させるデータ遅延回路と、前記第１クロック信号を遅延させるクロック遅延回路と、データ入力端子に前記データ遅延回路の出力信号が入力され、クロック端子に前記クロック遅延回路の出力信号が入力される第２フリップフロップとを備え、前記データ遅延回路は、前記第１データ信号をそれぞれ遅延させる複数のデータパスと、与えられた第１選択信号に従って、前記複数のデータパスの中からいずれか１つを選択し、選択したデータパスを経た前記第１データ信号を、前記データ遅延回路の出力信号として出力するデータ選択回路とを備えたものであり、前記クロック遅延回路は、前記第１クロック信号をそれぞれ遅延させる複数のクロックパスと、与えられた第２選択信号に従って、前記複数のクロックパスの中からいずれか１つを選択し、選択したクロックパスを経た前記第１クロック信号を、前記クロック遅延回路の出力信号として出力するクロック選択回路とを備えたものである。【０００８】
この態様によると、モニタ回路において、第１フリップフロップから第２フリップフロップに、データ遅延回路を経由して、第１データ信号が伝播される。データ遅延回路は、第１データ信号をそれぞれ遅延させる複数のデータパスを備えており、与えられた第１選択信号に従って、複数のデータパスの中からいずれか１つが選択される。すなわち、データパスの遅延が調整可能になっている。また、第１フリップフロップに入力される第１クロック信号は、クロック遅延回路を経由して、第２フリップフロップに入力される。クロック遅延回路は、第１クロック信号をそれぞれ遅延させる複数のクロックパスを備えており、与えられた第２選択信号に従って、複数のクロックパスの中からいずれか１つが選択される。すなわち、クロックパスの遅延が調整可能になっている。これにより、フリップフロップ間のデータパスとクロックパスとの間でその遅延特性に差がある場合であっても、モニタ回路において、これを精度良く模擬的に実現することができる。したがって、このようなモニタ回路を有するレプリカ遅延モニタによって、実動作回路のホールドエラーに対してクリティカルなパスにおける、ホールドエラーの有無を、確認することが可能になる。【０００９】
本開示の他の態様では、半導体集積回路は、第１および第２フリップフロップを有し、前記第１および第２フリップフロップ間に模擬的に実現したクリティカルパスにおけるデータ伝播エラーの有無を判定し、判定結果を示す出力信号を出力するモニタ回路と、前記モニタ回路の出力信号を、複数回の判定分保持し、保持した出力信号がそれぞれ、データ伝播エラー無しを示すとき、前記モニタ回路においてデータ伝播が正常に行われたと判断する出力保持回路とを備える。【００１０】
この態様によると、モニタ回路において、第１および第２フリップフロップ間に模擬的に実現したクリティカルパスにおけるデータ伝播エラーの有無が判定され、その判定結果を示す出力信号が出力される。出力保持回路は、モニタ回路の出力信号を複数回の判定分保持し、保持した出力信号がそれぞれデータ伝播エラー無しを示すとき、モニタ回路においてデータ伝播が正常に行われたと判断する。すなわち、複数回の判定においてすべてデータ伝播エラー無しの場合に、データ伝播が正常に行われたと判断される。これにより、モニタ回路のフリップフロップがメタステーブル状態になり、データ伝播エラー無しを示す出力信号が誤って出力されたとしても、誤った判断を防止することができる。【００１１】
本開示の他の態様では、半導体集積回路は、データ伝播エラーの有無を判定するモニタ回路を備え、前記モニタ回路は、第１フリップフロップと、前記第１フリップフロップの出力であるデータ信号を遅延させるデータ遅延回路と、データ入力端子に前記データ遅延回路の出力信号が入力される第２フリップフロップとを備え、前記データ遅延回路は、前記データ信号をそれぞれ遅延させる複数のデータパスと、与えられた選択信号に従って、前記複数のデータパスの中からいずれか１つを選択し、選択したデータパスを経た前記データ信号を出力するデータ選択回路とを備えたものであり、前記データ遅延回路は、前記複数のデータパスを構成する要素として、第１配線層に形成された配線を遅延要素として有する複数のパスからなる第１遅延部と、前記第１配線層と異なる第２配線層に形成された配線を遅延要素として有する複数のパスからなる第２遅延部とを備え、前記データ選択回路は、前記第１遅延部に属する複数のパスの中からいずれか１つを選択する第１選択部と、前記第２選択部に属する複数のパスの中からいずれか１つを選択する第２選択部とを備える。【００１２】
この態様によると、第１および第２フリップフロップ間のデータ遅延回路において、第１配線層に形成された配線を遅延要素として有する複数のパスからなる第１遅延部と、第１配線層と異なる第２配線層に形成された配線を遅延要素として有する複数のパスからなる第２遅延部とが設けられている。そして、第１遅延部に属する複数のパスの中からいずれか１つが選択され、第２選択部に属する複数のパスの中からいずれか１つが選択される。これにより、第１配線層と第２配線層とで独立して配線遅延を設定することができるので、実動作回路において複数の配線層にわたって構成されたクリティカルパスを、精度良く、模擬的に実現することが可能になる。
【発明の効果】
【００１３】
本開示によると、半導体集積回路に搭載されたレプリカ遅延モニタによって、実動作回路のホールドエラーに対してクリティカルなパスにおける、ホールドエラーの有無が確認可能になる。また、フリップフロップのメタステーブル状態に起因した誤判断を防ぐことができる。さらに、実動作回路において複数の配線層にわたって構成されたクリティカルパスを、精度良く、模擬的に実現することができる。
【図面の簡単な説明】
【００１４】
【図１】本実施形態に係るレプリカ遅延モニタの全体構成例
【図２】図１のレプリカ遅延モニタにおけるモニタ回路の構成例
【図３】図２のモニタ回路の動作例を示すタイミングチャート
【図４】図１のレプリカ遅延モニタにおけるクロック生成回路の構成例
【図５】図４のクロック生成回路の動作例を示すタイミングチャート
【図６】図１のレプリカ遅延モニタにおける出力保持回路の構成例
【図７】図６の出力保持回路の動作例を示すタイミングチャート
【図８】図１の構成全体の動作を示すタイミングチャート
【図９】遅延回路の具体的な構成例を示す図
【図１０】配線遅延部に関する改良の例
【図１１】配線遅延部に関する改良の例
【図１２】配線遅延部のレイアウトの例
【図１３】図１２の配線遅延部の回路構成
【発明を実施するための形態】
【００１５】
以下、実施の形態について、図面を参照して説明する。
【００１６】
図１は半導体集積回路に搭載されるレプリカ遅延モニタの全体構成例である。このレプリカ遅延モニタ１は、半導体集積回路の実動作回路におけるクリティカルパスを模擬的に実現可能に構成されており、クリティカルパスにおけるタイミングマージンをモニタして、データ伝播エラーの有無を判定する回路である。図１のレプリカ遅延モニタ１は、モニタ回路１０と、クロック生成回路２０と、出力保持回路３０とを備えている。
【００１７】
モニタ回路１０は、クリティカルパスの遅延動作と同等の動作を設定可能に構成されており、クリティカルパスにおけるデータ伝播エラーの有無をモニタする。本実施形態では、モニタ回路１０は、ホールドエラーに対してクリティカルなパスについて、ホールドエラーの有無を判定する。クロック生成回路２０は、原クロックＣＬＫからモニタ動作用のクロックＭＣＫを生成し、モニタ回路１０に供給する。出力保持回路３０は、モニタ回路１０の出力ＭＯＵＴを複数回分保持して、ホールドエラーに関してＯＫ／ＮＧを示す出力ＳＯＵＴを出力する。出力ＳＯＵＴ、すなわち、レプリカ遅延モニタによる判定結果に基づいて、最適な電源電圧を設定することによって、半導体集積回路の消費電力の最適化を実現することができる。
【００１８】
以下、各回路の具体的な構成例について説明する。
【００１９】
図２はモニタ回路１０の回路構成の一例である。図２に示す回路構成では、モニタ回路１０は、フリップフロップ１１〜１５と、データ遅延回路１６と、クロック遅延回路１７と、ＥＸＯＲゲート１８とを備えている。第１フリップフロップとしてのフリップフロップ１１は、クロック端子に第１クロック信号としてのクロックＭＣＫが入力される。またフリップフロップ１１はデータ入力端子に、自己の出力である第１データ信号Ｄ１の反転信号が入力される。これにより、フリップフロップ１１はクロックＭＣＫの立ち上がりエッジ毎に、第１データ信号Ｄ１として、ハイとローを繰り返し出力する。
【００２０】
データ遅延回路１６は、フリップフロップ１１の出力である第１データ信号Ｄ１を遅延させる回路であり、第１選択信号ＴＮ１によって遅延量を変更可能に構成されている。データ遅延回路１６は、第１データ信号Ｄ１をそれぞれ遅延させる複数のデータパス１６１〜１６４と、第１選択信号ＴＮ１に従って、複数のデータパス１６１〜１６４の中からいずれか１つを選択し、選択したデータパスを経た第１データ信号Ｄ１を出力するマルチプレクサ１６５とを備えている。データ選択回路の一例であるマルチプレクサ１６５の選択出力が、データ遅延回路１６の出力信号となる。なお、複数のデータパス１６１〜１６４は、インバータなどの回路要素を用いて実現してもよいし、配線要素を用いて実現してもよい。また、回路要素と配線要素を組み合わせて実現してもかまわない。またここでは、４個のデータパス１６１〜１６４を設けた構成を示しているが、データ遅延回路１６に設けるデータパスの個数は４個に限られるものではない。
【００２１】
クロック遅延回路１７は、クロックＭＣＫを遅延させる回路であり、第２選択信号ＴＮ２によって遅延量を変更可能に構成されている。クロック遅延回路１７は、クロックＭＣＫをそれぞれ遅延させる複数のクロックパス１７１〜１７４と、第２選択信号ＴＮ２に従って、複数のクロックパス１７１〜１７４の中からいずれか１つを選択し、選択したクロックパスを経たクロックＭＣＫを出力するマルチプレクサ１７５とを備えている。クロック選択回路の一例であるマルチプレクサ１７５の選択出力がクロック遅延回路１７の出力信号となる。なお、クロックパス１７１〜１７４は、インバータなどの回路要素を用いて実現してもよいし、配線要素を用いて実現してもよい。また、回路要素と配線要素を組み合わせて実現してもかまわない。またここでは、４個のクロックパス１７１〜１７４を設けた構成を示しているが、クロック遅延回路１７に設けるクロックパスの個数は４個に限られるものではない。
【００２２】
第２フリップフロップとしてのフリップフロップ１２は、データ入力端子にデータ遅延回路１６の出力信号が入力され、クロック端子にクロック遅延回路１７の出力信号が入力される。すなわち、フリップフロップ１２は、フリップフロップ１１の出力である第１データ信号Ｄ１をデータ遅延回路１６でもって遅延させた信号を、クロックＭＣＫをクロック遅延回路１７でもって遅延させたクロック信号のタイミングで、保持する。ホールドエラーがなければ、フリップフロップ１２の出力は第１データ信号Ｄ１と一致する。
【００２３】
第３フリップフロップとしてのフリップフロップ１３は、データ入力端子に、フリップフロップ１１の出力信号である第１データ信号Ｄ１を受ける。フリップフロップ１１のデータ出力端子とフリップフロップ１３のデータ入力端子との間には、遅延バッファ１９が挿入されている。遅延バッファ１９は、クロック遅延回路１７と比して十分に大きな遅延を有している。このため、第１データ信号Ｄ１はフリップフロップ１３に正しく伝播される。すなわち、フリップフロップ１３の出力は、フリップフロップ１１からフリップフロップ１２へ伝播されるべき信号すなわち第１データ信号Ｄ１と同一である。フリップフロップ１２の出力とフリップフロップ１３の出力とが一致すれば、フリップフロップ１１からフリップフロップ１２へのデータ伝播においてホールドエラーが生じていないと判断できる。
【００２４】
フリップフロップ１４，１５は、フリップフロップ１２，１３の出力をそれぞれ受ける。フリップフロップ１４は、フリップフロップ１２がメタステーブル状態になった場合であっても、出力をハイまたはローに確定させるために設けられている。フリップフロップ１５は、フリップフロップ１４とデータ出力のタイミングを合わせるために設けられている。ＸＯＲ（排他的論理和）ゲート１８はフリップフロップ１４，１５の出力を入力として受ける。ＸＯＲゲート１８の出力ＭＯＵＴは、フリップフロップ１４，１５の出力が一致しているとき、言い換えると、フリップフロップ１１からフリップフロップ１２へのデータ伝播が正常に行われているときはローになり、フリップフロップ１４，１５の出力が一致していないとき、言い換えると、フリップフロップ１１からフリップフロップ１２へのデータ伝播が正常に行われていないときはハイになる。ＸＯＲゲート１８は、フリップフロップ１２の出力信号とフリップフロップ１３の出力信号とが一致するか否かを判定する判定回路の一例である。
【００２５】
図３は図２のモニタ回路１０の動作例を示すタイミングチャートである。ここでは、イネーブル信号ＥＮをハイにしてから、クロックＭＣＫを５クロック分与えるものとする。イネーブル信号ＥＮはフリップフロップ１１〜１５にリセット入力として与えられており、イネーブル信号ＥＮがハイになると、リセット状態が解除され、フリップフロップ１１〜１５は動作を行う。すると、フリップフロップ１１の出力がローからハイに遷移した場合（Ｒ１，Ｒ２）と、フリップフロップ１１の出力がハイからローに遷移した場合（Ｆ１，Ｆ２）とで、それぞれ２回ずつ、判定が行われ、その結果が出力信号ＭＯＵＴとしてシリアルに出力される。
【００２６】
このモニタ回路１０では、データ遅延回路１６における遅延を第１選択信号ＴＮ１によって設定し、クロック遅延回路１７における遅延を第２選択信号ＴＮ２によって設定することによって、半導体集積回路内の実動作回路におけるホールドエラーに対してクリティカルなパスを模擬的に実現することができる。そして、この模擬的に実現したホールドエラーに対してクリティカルなパスにおけるデータ伝播エラー、ここではホールドエラーの有無を判定することによって、半導体集積回路内の実動作回路におけるホールドエラーの有無を判断することができる。
【００２７】
なお、ここでは、データ遅延回路１６は、複数のデータパス１６１〜１６４とマルチプレクサ１６５とによって構成するものとしたが、これに限られるものではなく、遅延量を調整可能な構成であればどのようなものであってもよい。また、クロック遅延回路１７は、複数のデータパス１７１〜１７４とマルチプレクサ１７５とによって構成するものとしたが、これに限られるものではなく、遅延量を調整可能な構成であればどのようなものであってもよい。
【００２８】
また、ここでは、フリップフロップ１１には、その出力Ｄ１を反転させた信号を入力するものとしたが、フリップフロップ１１へのデータ信号の供給方法はこれに限られるものでない。例えば、モニタ回路１０の外部から、フリップフロップ１１にデータ信号を与えるようにしてもよい。
【００２９】
また、図２の構成において、フリップフロップ１４，１５は省いてもかまわない。この場合は、ＥＸＯＲゲート１８はフリップフロップ１２，１３の出力を入力として受ける。ただし、フリップフロップ１２，１３がメタステーブル状態になってしまい、誤判定が生じる可能性があるので、この問題を回避するためには、フリップフロップ１４，１５を設けることが好ましい。
【００３０】
図４はクロック生成回路２０の回路構成の一例である。図４に示す回路構成では、クロック生成回路２０は、クロックゲーティング回路２１と、シフトレジスタ２２と、ＡＮＤゲート２３と、インバータ２４，２２６とを備えている。
【００３１】
クロックゲーティング回路２１は、与えられた原クロックＣＬＫを、イネーブル信号ＥＮがハイの期間、クロックＧＣＫとしてスルーさせる。クロックゲーティング回路２１は、イネーブル信号ＥＮをデータ入力として受け、原クロックＣＬＫを反転クロック入力として受けるフリップフロップ２１１と、フリップフロップ２１１の出力と原クロックＣＬＫとを２入力として受けるＡＮＤゲート２１２とを備えている。
【００３２】
シフトレジスタ２２は、直列接続された５個のフリップフロップ２２１〜２２５を備えている。フリップフロップ２２１〜２２５は、クロックＧＣＫをインバータ２２６で反転した信号をクロック入力として受ける。また、イネーブル信号ＥＮをリセット入力として受ける。シフトレジスタ２２の出力は、信号ＯＣＫとしてクロック生成回路２０から出力される。また、ＡＮＤゲート２３は、信号ＯＣＫをインバータ２４で反転した信号とクロックＧＣＫとを２つの入力として受ける。ＡＮＤゲート２３の出力は、クロックＭＣＫとしてクロック生成回路２０から出力される。
【００３３】
図５は図４のクロック生成回路２０の動作例を示すタイミングチャートである。イネーブル信号ＥＮがハイになると、クロックゲーティング回路２１は原クロックＣＬＫをスルーして、クロックＧＣＫとしてクロックパルスの出力を開始する。このときシフトレジスタ２２の出力すなわち信号ＯＣＫはローなので、ＡＮＤゲート２３を介して、クロックＭＣＫとしてクロックパルスが出力される。またシフトレジスタ２２がクロックＧＣＫに従って動作し、クロックＧＣＫの５個目のクロックパルスが発生すると、その立ち下がりエッジのタイミングで、シフトレジスタ２２の出力すなわち信号ＯＣＫがハイになる。信号ＯＣＫがハイになることにより、ＡＮＤゲート２３によってクロックＭＣＫのクロックパルスが停止する。イネーブル信号ＥＮがローになると、信号ＯＣＫがローに戻る。このような動作によって、クロック生成回路２０は、クロックＭＣＫとして、５個のクロックパルスを発生させることができる。
【００３４】
なお、クロックＭＣＫとして５個のクロックパルスを発生させる理由は、上述したモニタ回路１０において、４回の判定を行うためである。クロックＭＣＫのクロックパルス数は、モニタ回路１０における判定回数に応じて変更すればよい。例えば図４の回路構成では、シフトレジスタ２２のフリップフロップの個数を変更することによって、クロックＭＣＫのクロックパルス数を変更することができる。また、図４はクロック生成回路２０の一例であり、クロックＭＣＫとして所定数のクロックパルスを発生させる回路であれば、どのような回路によって実現してもかまわない。
【００３５】
図６は出力保持回路３０の回路構成の一例である。図６に示す回路構成では、出力保持回路３０は、フリップフロップ３１〜３３と、４入力ＯＲゲート３４と、フリップフロップ３５とを備えている。出力保持回路３０は、クロック生成回路２０からクロックＭＣＫ，ＯＣＫを受け、モニタ回路１０から判定結果を示す出力信号ＭＯＵＴを受ける。
【００３６】
フリップフロップ３１〜３３は直列に接続されており、それぞれ、クロック入力としてクロックＭＣＫを受けるとともに、リセット入力としてイネーブル信号ＥＮを受ける。また、フリップフロップ３１はデータ入力として出力信号ＭＯＵＴを受ける。４入力ＯＲゲート３４は、出力信号ＭＯＵＴと、フリップフロップ３１〜３３の各出力とを、４個の入力として受ける。フリップフロップ３５は、４入力ＯＲゲート３４の出力をデータ入力として受ける。また、フリップフロップ３５は、クロック入力としてクロックＯＣＫを受けるとともに、リセット入力としてイネーブル信号ＥＮを受ける。フリップフロップ３５の出力が、出力保持回路３０の出力信号ＳＯＵＴになる。
【００３７】
図７は図６の出力保持回路３０の動作例を示すタイミングチャートである。イネーブル信号ＥＮがハイになり、クロックＭＣＫとして５個のクロックパルスが入力されるとともに、モニタ回路１０から出力信号ＭＯＵＴとして４回分の判定結果が入力される。クロックＯＣＫの入力により、モニタ回路１０における４回の判定結果の論理和が、出力信号ＳＯＵＴとして出力される。
【００３８】
この回路構成では、モニタ回路１０における４回の判定結果を示す出力信号ＭＯＵＴがすべてローのとき、出力信号ＳＯＵＴがローになり、それ以外は、出力信号ＳＯＵＴはハイになる。すなわち、出力保持回路３０は、モニタ回路１０における４回の判定結果がいずれもホールドエラー無しを示す場合にのみ、出力信号ＳＯＵＴとしてローを出力し、モニタ回路１０においてデータ伝播が正常に行われたと判断する。これにより、たとえモニタ回路１０のフリップフロップ１２においてメタステーブル状態が発生したような場合であっても、誤ってデータ伝播が正常に行われたと判断してしまう可能性を低減することができる。
【００３９】
なお、図６の回路構成は、モニタ回路１０による４回分の判定結果から、データ伝播が正常に行われたか否かを判断するものである。例えば図６の回路構成において、ＯＲゲート３４の入力数とその前段のフリップフロップの個数を変えることによって、４回とは異なる回数の判定結果から、データ伝播が正常に行われたか否かを判断する構成とすることができる。また、図６は出力保持回路３０の一例であり、モニタ回路１０による所定回数の判定結果から、データ伝播が正常に行われたか否かを判断する回路であれば、どのような回路によって実現してもかまわない。
【００４０】
図８は図１のレプリカ遅延モニタ全体の動作を示すタイミングチャートである。図８から分かるように、図１の構成に原クロックＣＬＫを与えることによって、モニタ回路１０における４回分の判定結果ＭＯＵＴに基づいた、データ伝播が正常に行われたか否かの判断結果を示す出力信号ＳＯＵＴが出力される。
【００４１】
以上のように本実施形態によると、モニタ回路１０において、第１フリップフロップ１１から第２フリップフロップ１２に、データ遅延回路１６を経由して第１データ信号Ｄ１が伝播される。また、第１フリップフロップ１１に入力されるクロックＭＣＫは、クロック遅延回路１７を経由して第２フリップフロップ１２に入力される。そして、フリップフロップ１１，１２間において、データパスの遅延とクロックパスの遅延がそれぞれ調整可能になっている。これにより、フリップフロップ１１，１２間のデータパスとクロックパスとの間でその遅延特性に差がある場合であっても、レプリカ遅延モニタ１において、これを精度良く模擬的に実現することができる。したがって、実動作回路のホールドエラーに対してクリティカルなパスにおける、ホールドエラーの有無を、レプリカ遅延モニタ１によって確認することが可能になる。この結果、半導体集積回路について、ホールドエラーを考慮した最適な電圧制御が可能となる。
【００４２】
また、出力保持回路３０は、モニタ回路１０の出力信号を複数回の判定分保持し、保持した出力信号がそれぞれデータ伝播エラー無しを示すとき、モニタ回路１０においてデータ伝播が正常に行われたと判断する。すなわち、複数回の判定においてすべてデータ伝播エラー無しの場合に、データ伝播が正常に行われたと判断される。これにより、モニタ回路１０のフリップフロップがメタステーブル状態になり、データ伝播エラー無しを示す出力信号が誤って出力されたとしても、誤った判断を防止することができる。
【００４３】
なお、出力保持回路３０は、モニタ回路１０のようなホールドエラーの有無を確認できるモニタ回路だけに適用されるものではない。例えば、従来のようなセットアップエラーの有無を確認できるモニタ回路に対しても、ここで開示した出力保持回路３０を適用することができる。
【００４４】
＜遅延回路の具体的な構成例＞
図９は図２のモニタ回路１０において、データ遅延回路およびクロック遅延回路をより具体的に示した図である。図９の構成では、データ遅延回路１６に代えて、データ遅延回路４０が設けられており、クロック遅延回路１７に代えて、クロック遅延回路５０が設けられている。他の構成要素は、図２と基本的には同様である。
【００４５】
データ遅延回路４０は、３個のデータパス部４１，４２，４３と、データパス部４１，４２，４３にそれぞれ対応するマルチプレクサ４４，４５，４６とを備えている。データパス部４１は、バッファを含み、遅延量が互いに異なる４個のデータパスを備えている。マルチプレクサ４４は、第１選択信号ＴＮ１に従って、データパス部４１の４個のデータパスのいずれかを選択する。データパス部４２は、配線要素を含み、遅延量が互いに異なる４個のデータパスを備えている。マルチプレクサ４５は、第１選択信号ＴＮ１に従って、データパス部４２の４個のデータパスのいずれかを選択する。データパス部４３は、バッファを含み、遅延量が互いに異なる４個のデータパスを備えている。マルチプレクサ４６は、第１選択信号ＴＮ１に従って、データパス部４３の４個のデータパスのいずれかを選択する。この構成により、データ遅延回路４０において、６４（＝４×４×４）種類のデータパスのうちいずれか１つを選択して、フリップフロップ１１の出力である第１データ信号Ｄ１を遅延させて、フリップフロップ１２に与えることができる。
【００４６】
クロック遅延回路５０は、３個のクロックパス部５１，５２，５３と、クロックパス部５１，５２，５３にそれぞれ対応するマルチプレクサ５４，５５，５６とを備えている。クロックパス部５１は、ＮＡＮＤゲートおよびＮＯＲゲートを含み、遅延量が互いに異なる４個のクロックパスを備えている。マルチプレクサ５４は、第２選択信号ＴＮ２に従って、クロックパス部５１の４個のデータパスのいずれかを選択する。クロックパス部５２は、バッファを含み、遅延量が互いに異なる４個のデータパスを備えている。マルチプレクサ５５は、第２選択信号ＴＮ２に従って、クロックパス部５２の４個のクロックパスのいずれかを選択する。クロックパス部５３は、バッファを含み、遅延量が互いに異なる４個のクロックパスを備えている。マルチプレクサ５６は、第２選択信号ＴＮ２に従って、クロックパス部５３の４個のクロックパスのいずれかを選択する。この構成により、クロック遅延回路５０において、６４（＝４×４×４）種類のクロックパスのうちいずれか１つを選択して、クロックＭＣＫを遅延させて、フリップフロップ１２に与えることができる。
【００４７】
図９の構成例では、データ遅延回路４０は、複数のデータパスを構成する要素として、回路機能を構成するゲートを遅延要素として有するゲート遅延部に相当するデータパス部４１，４３と、ゲートを有さず、配線を遅延要素として有する配線遅延部に相当するデータパス部４２とを備えている。なお、図９の構成例では、クロック遅延部５０には、ゲートを有さず、配線を遅延要素として有する配線遅延部を設けていないが、配線遅延部を設けてもかまわない。
【００４８】
以降では、配線遅延部に関する改良例について、説明する。
【００４９】
＜配線遅延部に関する改良例＞
（その１）
図９のような構成では、ゲート遅延部のノイズが配線遅延部に影響を与えることによって、理想的な配線遅延が再現できない、という問題が起こり得る。そこで、図１０に示すように、配線遅延部とゲート遅延部の領域を分けてレイアウトする。図１０では、半導体集積回路のレイアウトにおいて、配線遅延部が設けられた第１領域ＡＲ１と、ゲート遅延部が設けられた第２領域ＡＲ２とは、平面視で重なりを有しないように、配置されている。これにより、配線遅延部とゲート遅延部との間の互いへの影響が抑制されるので、所望の遅延特性を得ることができる。
【００５０】
（その２）
配線遅延部において、配線間のクロストークの影響によって、理想的な配線遅延が再現できない、という問題が起こり得る。そこで、図１１に示すように、配線遅延部を構成する配線６１に対して、その周囲に、シールド配線６２，６３を設ける。シールド配線６２，６３は例えば接地電位に固定する。これにより、シールド配線６２，６３によって、配線間のクロストークの影響が低減されるので、所望の遅延特性を得ることができる。
【００５１】
（その３）
図１２は配線遅延部のレイアウトの例、図１３はその回路構成である。図１２および図１３に示す配線遅延部７０は、配線層Ｍ３に形成された配線７１１を遅延要素として有する複数のパスからなる第１遅延部７１と、配線層Ｍ２に形成された配線７２１を遅延要素として有する複数のパスからなる第２遅延部７２とを備えている。第１選択部としてのマルチプレクサ７３は、第１遅延部７１に属する複数のパスの中からいずれか１つを選択する。第２選択部としてのマルチプレクサ７４は、第２遅延部７２に属する複数のパスの中からいずれか１つを選択する。
【００５２】
ここで、モニタ回路は、半導体集積回路の実動作回路におけるクリティカルパスの配線遅延を、精度良く模擬的に実現できることが好ましい。ところが、クリティカルパスの配線は、必ずしも単一層の配線からなるものではなく、複数層の配線からなる場合がある。配線はその層によって抵抗や容量の特性が異なる場合があるため、複数層の配線からなるクリティカルパスの配線遅延を精度良く模擬的に実現するためには、モニタ回路においても、配線層毎に、配線遅延を設定できることが好ましい。図１２および図１３に示す配線遅延部７０では、配線層Ｍ２と配線層Ｍ３とでそれぞれ独立して、配線遅延を設定することができる。これにより、実動作回路において複数の配線層にわたって構成されたクリティカルパスを、より精度良く、模擬的に実現することができる。
【産業上の利用可能性】
【００５３】
本開示によると、半導体集積回路に搭載されるレプリカ遅延モニタについて、性能を向上させることができるので、例えば、ＬＳＩの消費電力低減に有用である。
【符号の説明】
【００５４】
１  レプリカ遅延モニタ
１０  モニタ回路
１１  第１フリップフロップ
１２  第２フリップフロップ
１３  第３フリップフロップ
１６  データ遅延回路
１７  クロック遅延回路
１８  ＸＯＲゲート（判定回路）
３０  出力保持回路
４０  データ遅延回路
４１，４３  データパス部（ゲート遅延部）
４２  データパス部（配線遅延部）
５０  クロック遅延回路
６１  配線遅延部の配線
６２，６３  シールド配線
７０  配線遅延部
７１  第１遅延部
７２  第２遅延部
７３  マルチプレクサ（第１選択部）
７４  マルチプレクサ（第２選択部）
１６１〜１６４  複数のデータパス
１６５  マルチプレクサ（データ選択回路）
１７１〜１７４  複数のクロックパス
１７５  マルチプレクサ（クロック選択回路）
７１１，７２１  配線
ＡＲ１  第１領域
ＡＲ２  第２領域
Ｄ１  第１データ信号
ＭＣＫ  第１クロック信号
ＭＯＵＴ  出力信号
ＴＮ１  第１選択信号
ＴＮ２  第２選択信号
【図１】
2017199790.tif 000003
【図２】
2017199790.tif 000004
【図３】
2017199790.tif 000005
【図４】
2017199790.tif 000006
【図５】
2017199790.tif 000007
【図６】
2017199790.tif 000008
【図７】
2017199790.tif 000009
【図８】
2017199790.tif 000010
【図９】
2017199790.tif 000011
【図１０】
2017199790.tif 000012
【図１１】
2017199790.tif 000013
【図１２】
2017199790.tif 000014
【図１３】
2017199790.tif 000015
【国際調査報告】
2017199790.tif 000016
2017199790.tif 000017
2017199790.tif 000018
2017199790.tif 000019