(57)【要約】【課題】論理回路の入出力データをクロックに同期してラッチする同期式回路の動作環境範囲を拡大する。【解決手段】論理回路５と出力ラッチ回路２の間に、論理回路５の出力データを遅延する可変遅延回路１０を設け、この可変遅延回路１０の遅延量を観測された動作環境に基づき制御する制御回路６を備える。動作環境として、温度、プロセス変動に伴う回路素子の遅延、電源電圧等を観測する。可変遅延回路１０に代えて、ラッチ回路２のクロックＣＫを遅延する可変遅延回路を設けてもよい。可変遅延回路１０の採る複数の遅延量の各遅延量ごとに一つの動作範囲が許容され、半導体装置はその全動作範囲で動作するので動作範囲が広くなる。【選択図】図１
2007074160.tif 000002
【特許請求の範囲】
【請求項１】
第１クロックに同期してデータをラッチし出力する第１ラッチ回路と、第２クロックに同期してデータをラッチする第２ラッチ回路と、前記第１ラッチ回路の出力データが入力され前記第２ラッチ回路へ演算結果を出力する論理回路とを備えた半導体装置において、
前記論理回路の出力データを遅延して前記第２ラッチ回路へ出力する可変遅延回路と、
前記論理回路又は前記第１若しくは第２ラッチ回路の動作速度に影響を及ぼす動作環境の観測データが入力され、入力された前記観測データが示す前記動作環境の下で前記論理回路の出力データが正しくラッチされるように前記可変遅延回路の遅延時間を制御する制御回路とを備えたことを特徴とする半導体装置。
【請求項２】
第１クロックに同期してデータをラッチし出力する第１ラッチ回路と、第２クロックに同期してデータをラッチする第２ラッチ回路と、前記第１ラッチ回路の出力データが入力され前記第２ラッチ回路へ演算結果を出力する論理回路とを備えた半導体装置において、
前記第２クロックを遅延する可変遅延回路と、
前記論理回路又は前記第１若しくは第２ラッチ回路の動作速度に影響を及ぼす動作環境の観測データが入力され、前記観測データが示す前記動作環境の下で前記論理回路の出力データが正しくラッチされるように前記可変遅延回路の遅延時間を制御する制御回路とを備えたことを特徴とする半導体装置。
【請求項３】
前記可変遅延回路は、互いに異なる遅延時間を有する複数の遅延回路と、前記複数の遅延回路の出力から一つを選択して前記第２ラッチ回路へ出力するセレクタとを有し、                                                                          前記制御回路は、前記遅延回路の遅延時間毎に前記論理回路の出力データが正しくラッチされる前記動作環境の範囲が予め設定されており、前記観測データが示す前記動作環境と設定されている前記動作環境の範囲とを比較して、前記論理回路の出力データが正しくラッチされる遅延時間を有する前記遅延回路を選択するように前記セレクタを制御することを特徴とする請求項１又は２記載の半導体装置。
【請求項４】
前記動作環境は、前記半導体装置のチップ温度、前記半導体装置のパッケージ温度、前記半導体装置のチップ又はパッケージの周囲の温度、及び、前記半導体装置のリードと回路基板との接続点の温度の中から選択された１又は複数の温度を含むことを特徴とする請求項１、２又は３記載の半導体装置。
【請求項５】
第１クロックに同期してデータをラッチし出力する第１ラッチ回路と、第２クロックに同期してデータをラッチする第２ラッチ回路と、前記第１ラッチ回路の出力データが入力され前記第２ラッチ回路へ演算結果を出力する論理回路とを備えた半導体装置において、
前記論理回路の出力データを遅延して前記第２ラッチ回路へ出力する第１可変遅延回路と、
前記第２クロックを遅延する第２可変遅延回路と、
前記論理回路又は前記第１若しくは第２ラッチ回路の動作速度に影響を及ぼす動作環境の観測データが入力され、前記観測データが示す前記動作環境の下で前記論理回路の出力データが正しくラッチされるように前記第１及び第２可変遅延回路の遅延時間を制御する制御回路とを備えたことを特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理回路の入出力データをクロックに同期してラッチするラッチ回路を備えた半導体装置に関し、とくに広範囲の動作環境にわたりラッチ回路のタイミングマージンが確保される半導体装置に関する。
【背景技術】
【０００２】
論理演算を行なう半導体装置では、論理回路の入力データ及び出力データをそれぞれクロックに同期してラッチ回路でラッチする同期式回路が広く使用されている。
【０００３】
従来、かかる同期式回路のタイミング調整は、静的タイミング解析（ＳＴＡ：Ｓｔａｔｉｃ  Ｔｉｍｉｎｇ  Ａｎａｌｙｓｉｓ）ツールを用いてラッチ回路のホールドマージン及びセットアップマージンを解析し、これらのマージンが確保されるように、各回路にバッファ回路を挿入して各回路のデータ遅延時間を調整することでなされていた。以下、静的タイミング解析ツールを用いた半導体回路のタイミング調整について説明する。
【０００４】
図７は従来の論理回路及びその周辺回路の回路図であり、論理回路とその入出力データをラッチするラッチ回路とを含む回路を表している。図７を参照して、ラッチ回路１の入力端Ｄに入力された入力データＤｉｎは、クロックＣＫ１に同期してラッチ回路１にラッチされ、ラッチ回路１の出力端Ｑから出力される。このラッチ回路１の出力データは、論理回路５に入力され、論理演算結果が論理回路５から出力される。論理回路５の出力データは遅延回路３を通りラッチ回路２の入力端Ｄに印加される。このラッチ回路２の入力端Ｄに印加されたデータＤ２は、クロックＣＫ２に同期してラッチ回路２にラッチされ、ラッチ回路２の出力端Ｑから論理演算結果として出力される。
【０００５】
かかる論理回路を有する従来の半導体装置は、回路素子を仮にレイアウトした後、この仮にレイアウトされた回路について静的タンミング解析ツールを用いてタイミング解析を行ない、全てのタイミングが満足されるまで修正を加えることで設計される。
【０００６】
図８は従来の論理回路のタイミングチャートであり、ラッチ回路２が論理回路５の出力データをラッチするタイミングを表している。図８中、Ｄ２はラッチ回路２の入力端Ｄに印加されたデータを表す。
【０００７】
図８を参照して、クロックＣＫ１の立ち上がり時刻ｔ０でラッチ回路１にラッチされたデータＤ１（入力データＤｉｎ）は、ラッチ回路１、論理回路５、遅延回路３及びラッチ回路１とラッチ回路２間の配線による遅延時間ｔｄを経過した後、演算結果がデータＤ２としてラッチ回路２の入力端Ｄに到達する。この遅延時間ｔｄは、これらの回路１、２、３、５の動作速度に影響を及ぼす因子、及び、論理回路５の論理演算の内容により異なる。なぜなら、回路の動作速度は回路の遅延時間に直接影響するし、また論理演算の違いは論理回路５内を伝播するデータのパスＰ１〜Ｐ４を変更するからである。
【０００８】
静的タイミング解析ツールは、回路の動作速度が最速となる動作環境であるＢｅｓｔ条件及び動作速度が最低となるＷｏｒｓｔ条件下でのデータＤ２の遅延時間ｔｄをそれぞれ算出し、クロックＣＫ２の立ち上がり時刻ｔ１（ラッチのタイミング）と比較する。そして、データＤ２がラッチのタイミング条件、即ちセットアップ時間ｔｓ及びホールド時間ｔｈを満たすか否かを解析する。
【０００９】
このタイミング解析では、Ｂｅｓｔ条件のとき、遅延時間ｔｄが最小となる論理回路の最短パスＰ１が選択され、このときホールドエラーが問題とされる。他方、Ｗｏｒｓｔ条件のとき、遅延時間ｔｄが最大となる論理回路の最長パスＰ４が選択され、このときセットアップエラーが問題とされる。
【００１０】
ホールドエラーが生ずるときは、図７を参照して、論理回路５の出力データを遅延する遅延回路３に遅延素子を付加して遅延時間を長くしてエラーを解消する。他方、セットアップエラーを生ずるときは、遅延回路３の遅延素子を削減して遅延時間を短くする、又はクロックＣＫ２を遅延するクロック遅延回路４−２に遅延素子を付加してクロックＣＫ１とクロックＣＫ２間の時間間隔を長くして解消する。このようなタイミング解析と修正を繰り返して、タイミング条件を満たすように遅延回路３及びクロック遅延回路４−２の遅延時間を決定する。（データを遅延するものは、例えば特許文献１参照。クロックを遅延するものは、例えば特許文献２参照。）
このようにして設計された半導体装置の動作範囲について説明する。
【００１１】
図９は、従来の論理回路の動作範囲説明図であり、ラッチ回路２のセットアップマージン及びホールドマージンが確保され、論理回路の出力データが正しくラッチ回路２にラッチされる動作環境の範囲を表している。縦軸は、動作環境、即ち半導体装置のラッチ回路１、２、及び論理回路５の動作速度に影響を与える動作条件であり、例えば、温度、電源電圧、半導体装置の製造プロセスである。なお、本明細書では、動作速度が速くなる条件（図の下方）をＢｅｓｔ方向とし、遅くなる条件（図の上方）をＷｏｒｓｔ方向として表している。
【００１２】
図９中の直線イ及びロは、論理回路５の最短パスＰ１を経由したデータＤ２ｍｉｎ（最短パスデータ）の立ち上がり及び立ち下がり時刻を表している。また、直線ハ及びニは、論理回路５の最長パスＰ１を経由したデータＤ２ｍａｘ（最長パスデータ）の立ち上がり及び立ち下がり時刻を表している。これらの立ち上がり及び立ち下がり時刻は、直線イ〜ニが示すように、動作環境がＢｅｓｔ方向からＷｏｒｓｔ方向へ変化するにつれて、遅延が大きくなる方向へ移動する。なお、最短パスデータＤ２ｍｉｎと最長パスデータＤ２ｍａｘでは、遅延に関与する回路素子の直列接続数が異なるので、一般に動作環境に起因する遅延の変化は異なり図９に示すように異なる傾斜を有する。
【００１３】
上記の従来の半導体装置では、図９の直線ハが示すように、最長パスデータＤ２ｍａｘがセットアップ時間ｔｓを満たすのは、動作環境が条件１よりＢｅｓｔ方向になる場合である。一方、直線ロが示すように、最短パスデータＤ２ｍｉｎがホールド時間ｔｈを満たすのは、動作環境が条件２よりＷｏｒｓｔ方向になる場合である。従って、この半導体装置は、条件１と条件２の間でセットアップエラー及びホールドエラーを生ずることなく正しく動作する。
【特許文献１】特開２００３−１６２５５６号公報
【特許文献２】特開２００４−１８５４６６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
上述した静的タイミング解析ツールを用いて設計される従来の半導体装置は、設計段階で修正されるのであり、すでに製造された半導体装置に適用してこれを修正することはできない。例えば、製造プロセス条件、使用環境温度又は電源電圧が設計規格外となった場合、これらの条件下でも正常に動作するように修正することはできない。このため、製造プロセス条件、使用環境温度及び電源電圧のばらつきを予め十分な設計マージンを持たせて設計しなければならず、これらの条件についての動作保証範囲が狭くなるという問題があった。
【００１５】
また、従来の半導体装置では、静的タイミング解析ツールを用いて設計する際にＷｏｒｓｔ条件における修正がＢｅｓｔ条件でのタイミングを満たさなくなる場合、又はその逆にＢｅｓｔ条件における修正がＷｏｒｓｔ条件でのタイミングを満たさなくなる場合も多く、静的タイミング解析の収束が遅いあるいは収束しないことがあるという問題があった。
【００１６】
本発明は、半導体装置の製造後又は静的タイミング解析ツールを用いて設計する際に、動作環境に合わせてタイミングを修正することができる半導体装置を提供することで、広範な動作保証範囲を有し、かつ設計の際の静的タイミング解析の収束が速い半導体装置を提供することを目的としている。
【課題を解決するための手段】
【００１７】
上記課題を解決するための本発明の第１構成に係る半導体装置は、第１ラッチ回路の出力データを入力し演算結果を第２ラッチ回路へ出力する論理回路を備えた半導体装置に関し、前記論理回路の出力データを遅延して前記第２ラッチ回路へ出力する可変遅延回路と、入力された動作環境の観測データが示す動作環境の下で前記論理回路の出力データが正しくラッチされるように前記可変遅延回路の遅延時間を制御する制御回路とを備える。
【００１８】
本第１構成では、論理回路の出力データの遅延時間は、可変遅延回路の遅延時間を制御回路により制御することで調整される。従って、論理回路の出力データの遅延時間を、半導体装置のプロセス工程の製造後に、例えばウエーハ工程の終了後に変更してタイミング調整を行なうことができる。
【００１９】
このように、製造後に論理回路の出力データの遅延時間を変更してタイミング調整を行なうことができるので、プロセス条件の変動に起因する回路素子の動作速度の変動、あるいは動作環境温度若しくは電源電圧等の動作環境の変動など製造後に判明する因子に基づく回路動作速度の変動があってもこれを変更してタイミング条件を満たすことが容易になる。このため、半導体装置の設計段階における設計規格のマージンを小さくすることができる。
【００２０】
また、タイミング調整に可変遅延回路を用いるため、静的タイミング解析を異なる遅延時間毎に互いに独立して行ない、全ての遅延時間での動作範囲を合わせて半導体装置の動作範囲として設定することができる。従って、遅延時間を一つに固定する従来の半導体装置に比べて動作範囲が格段に拡大する。また、半導体装置の動作範囲に比べて一つのパスの遅延時間についての動作範囲を狭く設定することができるので、静的タイミング解析の収束性が向上し、さらには静的タイミング解析でセットアップ時間とホールド時間とが両立しないという事態を回避することができる。
【００２１】
制御回路には半導体装置内部の回路の動作速度に影響を与える動作環境の観測データが入力され、制御装置は、この観測データが表示する動作環境下で論理回路の出力データが正しくラッチされるように可変遅延回路の遅延時間を制御する。かかる制御は、例えば可変遅延回路がとり得る各遅延時間と、その各遅延時間の下で論理回路の出力データが正しくラッチされる動作環境の範囲とを予め設定しておき、観測データが示す動作環境と設定されている動作環境の範囲とを比較して、論理回路の出力データが正しくラッチされる遅延時間をとるように可変遅延回路を制御することにより実現することができる。
【００２２】
この可変遅延回路は、制御回路により遅延時間を制御できるものであればよく、例えば複数の異なる遅延回路から構成し、その一つの遅延回路をセレクタを用いて選択するようにしてもよい。
【００２３】
このように、制御装置は、動作環境の観測データに基づき可変遅延回路の遅延時間を制御する。言い換えれば、動作環境がある一つの遅延時間で許容された動作範囲を逸脱したとき、逸脱後の動作環境を動作範囲に含む他の遅延時間を選択して、この他の遅延時間をとるように可変遅延回路を制御する。従って、一つの遅延時間で許容される動作範囲が狭くても、本第１構成の半導体装置の動作範囲は非常に広くなる。
【００２４】
上述した制御回路に入力される観測データは、半導体装置内部の回路の動作速度に影響を与える動作環境、とくに論理回路又は前記第１若しくは第２ラッチ回路の動作速度に影響を及ぼす動作環境の観測データである。かかる動作環境には、半導体装置のチップ温度、パッケージ温度並びに周囲温度、及び、半導体装置のリードと回路基板との接続点の温度がある。また、半導体装置への供給電源電圧又は論理回路５に実際に印加されている電源電圧を含めることもできる。さらに、半導体装置の回路を製造するプロセス条件も、回路素子の遅延を変動させる動作環境の一つとすることができる。
【００２５】
このうち温度は、温度計又は温度測定回路により電気信号に変換され、この電気信号を観測データとして制御回路に入力される。なお、温度計又は温度測定回路をチップ内に備えることもできる。プロセス条件の観測は、半導体装置内に内蔵するゲート遅延を測定するモニタ回路（たとえばリング発信器の発信周波数を観測する回路）を監視することでなされ、その観測データ（例えば発信周波数に対応する電圧）を制御回路に入力する。
【００２６】
上述した可変遅延回路は、第１ラッチ回路と第２ラッチ回路の間の任意の位置に挿入することができる。しかし、論理回路は他のラッチ回路から送出される信号と関連を有することがあるため、論理回路の出力の前に挿入すると他のラッチ回路のタイミングを変化させなければならない場合がある。また、論理回路内のパスによっては遅延時間の変更により別のタイミングエラーを発生する場合がある。これらの場合はさらなる解析・修正が必要になる。このため、可変遅延回路は論理回路の出力後に挿入することが好ましい。
【００２７】
本発明の第２構成は、第２ラッチ回路のクロックを遅延する可変遅延回路を設ける。
【００２８】
本第２構成では、論理回路の出力データを遅延する代わりに、第２ラッチ回路のラッチ時刻を定める第２クロックを遅延することで、セットアップエラー及びホールドエラーを修正する。この第２構成の動作は、第１構成で出力データを遅延してタイミング調整する代わりに、第２ラッチ回路のラッチ時刻を遅延してタイミング調整する点を除きほぼ同様であるから説明を省略する。
【００２９】
本構成は、とくに複数の論理回路のそれぞれに対応して１つの第２クロックで駆動される複数の第２ラッチ回路が設けられている場合、その第２クロックを遅延する１個の可変遅延回路を設けることで足りるという利点がある。なお、第１構成では、論理回路ごとに可変遅延回路を設けなければならない。
【００３０】
さらに、論理回路の出力データを遅延する可変論理回路と第２ラッチ回路のクロックを遅延する可変遅延回路とを設けることもできる。この構成では、論理回路の出力データと第２ラッチ回路のクロックとの２つを変数としてタイミング調整を行なうので、より広範囲の動作範囲を確保することができる。
【発明の効果】
【００３１】
本発明によれば、半導体装置の製造後にタイミング調整が可能となるから、広い動作環境下で動作し、かつ、静的タイミング解析ツールを用いた設計でタイミング調整が迅速に収束する半導体装置を提供することができる。
【発明を実施するための最良の形態】
【００３２】
図１は本発明の第１実施形態の回路図であり、論理回路とその周辺回路を表している。図１を参照して、本発明の第１実施形態は、論理回路５の出力データの遅延を可変遅延回路１０を用いて調整する半導体装置に関する。
【００３３】
第１実施形態では、論理回路５の入力データをラッチするラッチ回路１と、論理回路５の出力データをラッチするラッチ回路２とを構成する、Ｄプリップフロップからなる２個のラッチ回路１、２を備える。
【００３４】
ラッチ回路１は、その入力端Ｄに印加された入力データＤｉｎを、クロックＣＫ１の立ち上がりに同期してラッチし、出力端Ｑから論理回路５へ出力する。論理回路５は、多段の論理回路からなり、論理演算の結果を出力データとして可変遅延回路１０へ出力する。可変遅延回路１０は、複数の遅延回路３−１、３−２と、その一つの出力を選択してラッチ回路２へ出力するセレクタ８とを有する。ラッチ回路２は、セレクタ８の出力（即ち、遅延回路３−１、３−２の一つで遅延された論理回路５の出力データ）をクロックＣＫ２の立ち上がりに同期してラッチする。ラッチ回路２にラッチされたデータＤ２は、出力データＤｏｕｔとしてラッチ回路２の出力端Ｄから出力される。
【００３５】
ラッチ回路１、２のクロックＣＫ１、ＣＫ２は、共通のクロックＣＫからそれぞれクロック遅延回路４−１及びクロック遅延回路４−２を介して供給される。このクロック遅延回路４−１、４−２は、クロックＣＫ１とクロックＣＫ２のタイミング調整のために設けられている。
【００３６】
制御回路６は、可変遅延回路１０がとり得る遅延時間（即ち、セレクタ８が遅延回路３−１又は遅延回路３−２を選択したときの可変遅延回路１０の遅延時間）と、その遅延時間に可変遅延回路１０を設定したときに許容される動作環境の範囲（即ち、正しくラッチされる動作環境の範囲）とを予めテーブルに記憶している。
【００３７】
そして、入力された観測データＤｏｂで示される動作環境を用いてテーブルを検索し、この動作環境下で正しくラッチがなされる可変遅延回路の遅延時間を抽出する。
【００３８】
次いで、抽出した遅延時間を可変遅延回路８の現在の遅延時間と比較し、抽出した遅延時間の一つが現在選択している遅延時間と等しいときは、セレクタ８の選択をそのままに維持する。一方、抽出した遅延時間の全てが現在選択している遅延時間に一致しないときは、抽出した遅延時間の何れか一つを選択するようにセレクタ８の選択を切り換える。
【００３９】
制御回路６から出力されるセレクタの切換を指示する信号は、Ｄフリップフロップ７によりクロックＣＫと同期がとられてセレルタ８へ出力される。このフリップフロップ７のクロックは、クロック遅延回路４−３を通してクロックＣＫより遅れて入力される。このクロック遅延回路４−３により、ラッチ回路２のラッチタイミングとセレクタ８の切換のタイミングの調整がなされる。
【００４０】
上述した制御回路６は、遅延時間と許容される動作環境の範囲の関係を予めテーブルに記憶している。このテーブルに代えて、電圧の発生回路（例えばプログラマブル電圧発生回路）又は電圧比較回路の比較用の基準電圧として記憶することもできる。例えば、電圧として入力された観測データを内部で発生する複数の基準電圧と比較し、観測データの範囲を基準電圧で分類する。
【００４１】
本実施形態に係る半導体装置のチップには、温度観測用の回路が形成されており、チップ温度を電圧又はデジタル信号の観測データＤｏｂとして制御回路６へ入力する。必要ならば、他の部位の温度、例えば回路基板とリードとの接合点の温度、パッケージ温度又は大気温度の観測データをチップ外部から入力することもできる。
【００４２】
さらに、本実施形態に係る半導体装置のチップに、リング発信器とその発信周波数の測定回路とからなるモニタ回路を設けることができる。このモニタ回路は、リング発信器の発信周波数の観測データから、リング発信器を構成するゲートの遅延時間を観測する。このゲートの遅延時間に基づき、ウェーハプロセスを経て実際に製造された半導体装置のラッチ回路１、２、論理回路５、可変遅延回路１０、及びクロック遅延回路４−１〜４−３の遅延時間を算出する。制御回路６は、この回路素子の遅延時間を考慮して、例えば動作環境の範囲を記憶するテーブルに反映させて、タイミングを調整する。これにより、プロセス条件のばらつきから生ずる回路素子の遅延時間のばらつきに起因するタイミングのずれを吸収するように調整することができる。このため、製造歩留りが向上する。
【００４３】
以下、本第１実施形態に係る半導体装置の製造工程を参照して、本発明をさらに詳細に説明する。
【００４４】
図２は本発明の第１実施形態におけるタイミングチャートであり、ラッチ回路２が論理回路５の出力データをラッチするタイミングを表している。図中のデータＤ２（１）ｍｉｎ、Ｄ２（１）ｍａｘ、Ｄ２（２）ｍｉｎ及びＤ２（２）ｍａｘは、ラッチ回路２の入力端Ｄへ入力されたデータを表している。ここで、（１）及び（２）は、それぞれ可変遅延回路１０を構成する最小遅延時間を有する遅延回路３−１又は最大遅延時間を有する遅延回路３−２を通過するデータを表している。また、サフィックスｍｉｎ及びｍａｘは、それぞれ論理回路５の最短パスＰ１及び最長パスＰ４を経由するデータを表している。なお、データＤ２（１）、Ｄ２（２）のハッチング部分は、ラッチ回路２が時刻ｔ１でラッチすべきデータを表す。
【００４５】
先ず、半導体装置の仮レイアウト後、静的タイミング解析ツールを用いてラッチ回路２のセットアップマージン及びホールドマージンを解析し、回路設計を修正する。この静的タイミング解析は、半導体装置に要求される動作環境範囲のＢｅｓｔ条件及びＷｏｒｓｔ条件について以下の手順によりなされる。
【００４６】
まず、Ｗｏｒｓｔ条件下でセットアップエラーが発生しないように可変遅延回路１０を修正する。図２の遅延（２）を参照して、遅延時間が最大の遅延回路３−２を選択したとき、Ｗｏｒｓｔ条件下で論理回路５の最長パスＰ４を経由するデータＤ２（２）ｍａｘのラッチでセットアップ時間ｔｓが確保されるように遅延回路３−２の遅延時間を修正する。この修正は、たとえば遅延回路３−２を構成する遅延素子を削除する、又は、遅延回路３−２を構成する遅延素子を駆動能力の大きなバッファに置き換えることでなされる。このとき、遅延回路３−２の遅延時間をこれ以上に短くできない場合は、クロック遅延回路４−２の遅延時間を大きくする。
【００４７】
次ぎに、Ｂｅｓｔ条件下でホールドエラーが生じないように可変遅延回路１０を修正する。図２の遅延（１）を参照して、遅延時間が最小の遅延回路３−１を選択したとき、Ｂｅｓｔ条件下で論理回路５の最短パスＰ１を経由するデータＤ２（１）ｍｉｎのラッチでホールド時間ｔｈが確保されるように遅延回路３−１の遅延時間を修正する。この修正は、たとえば遅延回路３−１に遅延素子となるゲートを挿入することでなされる。
【００４８】
本実施形態では、後述するように遅延回路３−１、３−２を使用する環境条件（環境範囲）が一部重畳するように設定されている。このため、Ｗｏｒｓｔ条件でセットアップ条件を満たせば、Ｂｅｓｔ条件のタイミングは満たされる。また、Ｗｏｒｓｔ条件でセットアップ条件を満たせば、Ｂｅｓｔ条件のタイミングは満たされる。かりに、２個の遅延回路３−１、３−２で予定する環境条件を満たすことができない場合は、さらに多くの遅延回路を有する可変遅延回路１０を用いることで予定の環境条件の全範囲をカバーする。
【００４９】
上述したように、本実施形態の半導体装置は、複数の遅延回路３−１、３−２のそれぞれについて狭い動作範囲で設計を行い、これらの動作範囲を合わせた広い範囲を設計上の動作環境とすることができる。このため、静的タイミング解析の収束性がよく、かつ半導体装置の広い動作範囲が確保される。
以上のようにして設計された本実施形態の半導体装置は、ウエーハ工程を経て製造される。以下、このようにして製造された半導体装置について、ラッチタイミングと動作環境について説明する。
【００５０】
図３は本発明の第１実施形態の論理回路の動作範囲説明図であり、論理回路５の出力データが正しくラッチ回路２にラッチされる動作環境の範囲を表している。図３中、Ｄ２（１）ｍａｘ、Ｄ２（２）ｍａｘは、論理回路５の最長パスＰ４を経由し、それぞれ最小遅延時間を有する遅延回路３−１及び最大遅延時間を有する遅延回路３−２を経てラッチ回路２へ出力された論理回路５の出力データを表している。図３中、Ｄ２（１）ｍｉｎ、Ｄ２（２）ｍｉｎは、論理回路５の最短パスＰ１を経由し、それぞれ最小遅延時間を有する遅延回路３−１及び最大遅延時間を有する遅延回路３−２を経て出力された論理回路５の出力データを表している。なお、簡明にするため、図３にはラッチ回路２に時刻ｔ１でラッチされるべきデータのみを表示している。
【００５１】
図３を参照して、論理回路５の最長パスＰ４を経た出力データは、最小遅延時間を有する遅延回路３−１を通る場合はデータＤ２（１）ｍａｘとしてラッチ回路２の入力端Ｄに入力され、最大遅延時間を有する遅延回路３−２を通る場合はデータＤ２（２）ｍａｘとしてこれより遅れて入力される。図３中の直線ハ、トは、それぞれデータＤ２（１）ｍａｘ及びデータＤ２（２）ｍａｘの立ち上がりを、直線ニ、チは、それぞれデータＤ２（１）ｍａｘ及びデータＤ２（２）ｍａｘの立ち下がり時刻を表している。このデータＤ２（１）ｍａｘ及びデータＤ２（２）ｍａｘの立ち上がり及び立ち下がり時刻は、動作環境がＢｅｓｔ方向になるにつれて速くなり、Ｗｏｒｓｔ方向になると遅くなる。なお
既述のように、Ｗｏｒｓｔ条件、即ち条件１においては、最長パスＰ４を経由するデータのセットアップ時間ｔｓが問題とされる。最長パスＰ４を経由し最小遅延時間を有する遅延回路３−１を通ったデータＤ２（１）ｍａｘは、条件１及びこれよりＢｅｓｔ方向でセットアップ時間を満たしている。これに対して、最大遅延時間を有する遅延回路３−２を通るデータＤ２（２）ｍａｘはセットアップ時間ｔｓが不足する。データＤ２（２）ｍａｘがセットアップ時間ｔｓを満たすのは、動作環境が条件３又はこれよりＢｅｓｔ方向のときである。即ち、セットアップ条件は、遅延回路３−１を用いる場合は条件１よりＢｅｓｔの動作環境で満たされ、遅延回路３−２を用いる場合は条件３よりＢｅｓｔの動作環境で満たされる。
【００５２】
Ｂｅｓｔ条件では、既述のように最短パスＰ１を経由するデータのホールド時間ｔｈが問題とされる。最短パスを経由し最小遅延時間を有する遅延回路３−１を通るデータＤ２（１）ｍｉｎは、条件２又はそれよりＷｏｒｓｔ方向の動作環境でホールド時間ｔｓを満足する。これに対して、遅延回路３−２を通るデータＤ２（２）ｍｉｎは、条件４までホールド時間ｔｈを満足している。即ち、ホールド条件は、遅延回路３−１を用いる場合は条件２よりＷｏｒｓｔの動作環境で満たされ、遅延回路３−２を用いる場合は条件４よりＷｏｒｓｔの動作環境で満たされる。                                                    
【００５３】
これらをまとめると、最小遅延時間を有する遅延回路３−１を選択した場合、動作範囲は図３中に示す範囲Ａ（条件１〜条件２）であり、最大遅延時間を有する遅延回路３−２を選択した場合、動作範囲は図３中に示す範囲Ｂ（条件３〜条件４）となる。従って、本実施形態に係る半導体装置の動作範囲は、範囲Ａ及び範囲Ｂを含む範囲（条件１〜条件４）となり、一つの遅延回路のみを用いる場合の範囲Ａ又は範囲Ｂよりも拡張される。
【００５４】
本実施形態に係る半導体装置では、遅延回路３−１、３−２の何れか一つを、動作環境の観測データＤｏｂに従って選択する。制御回路６は、観測データＤｏｂを条件１〜４に相当する値と比較し、現在使用している遅延回路、例えば遅延回路３−１が使用可能な動作環境Ａ内に在る場合、そのまま遅延回路３−１の使用を維持する。一方、観測データが動作環境ＡよりＢｅｓｔ方向へ逸脱する場合、遅延回路３−１を遅延回路３−２に切り換えて可変遅延回路１０の遅延時間を小さくする。その結果、半導体装置の動作範囲は動作範囲Ｂへ変更される。
【００５５】
このように、製造プロセスを経た後の半導体装置に対して、動作環境に応じて自動的に可変遅延回路１０の遅延時間を変更して動作範囲を切り換えることができるので、広い動作範囲の半導体装置を容易に実現することができる。また、製造プロセスに起因する回路素子の動作速度のばらつきを観測し、その結果を動作環境の一つとして利用することができるので、静的タイミング解析における設計段階で見込まなければならない製造プロセスのばらつきの余裕を非常に小さくすることができる。
【００５６】
上述した本実施形態の半導体装置では、図３を参照して、動作範囲Ａと動作範囲Ｂとが一部重畳するように可変遅延回路１０の遅延回路３−１、３−２を設計する。そして、制御回路６に、動作環境がこの重畳する動作範囲（条件３〜条件２）へ出入りするときのヒステリシス特性をもたせる。即ち、遅延回路３−１を選択している条件１〜条件３から条件３〜条件２内へ移動するとき、または遅延回路３−１を選択しているときに条件３〜条件２内から条件１〜条件３へ移動するときは、遅延回路３−１をそのまま維持する。そして、条件３〜条件２で遅延回路３−１を選択しているときに条件２〜条件４内へ移動したときは、遅延回路３−１を遅延回路３−２へ切り換える。同様に、遅延回路３−２を選択している条件２〜条件４から条件３〜条件２内へ移動するとき、または遅延回路３−２を選択しているときに条件３〜条件２内から条件２〜条件４へ移動するときは、遅延回路３−２をそのまま維持する。そして、条件３〜条件２で遅延回路３−２を選択しているときに条件１〜条件３内へ移動したときは、遅延回路３−２を遅延回路３−１へ切り換える。このように、遅延回路３−１、３−２の切換にヒステリシス特性をもたせることで、条件２及び条件３近傍での切換のチャッタリングを防止する。
【００５７】
本発明の第２実施形態は第２ラッチ回路２のクロックＣＫの遅延時間を切り換える形態に関する。図４は本発明の第２実施形態の論理回路及びその周辺回路の回路図である。
【００５８】
図４を参照して、本第２実施形態の半導体装置では、第１実施形態の半導体装置の可変遅延回路１０に代えて固定された遅延時間を有する遅延回路３とし、さらに、第２ラッチ回路２のクロックＣＫ２を可変遅延回路１１を介して供給する。この可変遅延回路１１は第１実施形態と同様の制御回路６により制御される。
【００５９】
制御回路６は、第１実施形態と同様に、観測データＤｏｂに基づき可変遅延回路１１のセレクタ９に切換え信号を送出し、遅延回路１２−１、１２−２から一つを選択することで可変遅延回路１１の遅延時間を切り換える。なお、最小の遅延時間を有する遅延回路１２−１は、第１実施形態の可変遅延回路１０と同様に、ゲート等の遅延素子を設けず単に配線のみとすることもできる。フリップフロップ１３は、可変遅延回路１１の出力をクロックＣＫに同期させるために設けられている。
【００６０】
本実施形態に係る半導体装置の設計では、仮りのレイアウトについて静的タイミング解析を行なう。
【００６１】
まず、最大遅延時間を有する遅延回路１２−２を通るクロックＣＫ２を選択し、Ｗｏｒｓｔ条件下で論理回路５の最長パスＰ４を経由した最長パスデータＤ２ｍａｘがセットアップエラーを発生しないように遅延回路３を修正する。このとき、遅延回路３−２の遅延時間を短くできない場合は、クロック遅延回路４−２の遅延時間を大きくする。
【００６２】
次ぎに、最小遅延時間を有する遅延回路１２−１を通るクロックＣＫ２を選択し、Ｂｅｓｔ条件下で論理回路５の最短パスＰ１を経由した最短パスデータＤ２ｍｉｎがホールドエラーを生じないように遅延回路１２−１を修正する。
【００６３】
上記の修正結果、遅延回路１２−１、１２−２を用いた場合のそれぞれの動作範囲Ａ、Ｄを制御回路６に記憶させ、静的タイミング解析を終了する。このようにして設計された半導体装置は、さらにウェーハプロセスを経て製造される。以下、ウェーハプロセス後の半導体装置の動作範囲について説明する。
【００６４】
図５は本発明の第２実施形態の論理回路の動作範囲説明図であり、論理回路５の出力データが正しくラッチ回路２にラッチされる動作環境の範囲を表している。図３中、Ｄ２ｍａｘ、Ｄ２ｍｉｎは、それぞれ論理回路５の最長パスＰ４及び最短パスを経由して、ラッチ回路２へ出力された論理回路５の出力データを表している。なお、簡明にするため、図３にはラッチ回路２に時刻ｔ１でラッチされるべきデータのみを表示している。
【００６５】
動作環境がＷｏｒｓｔ、即ち条件１のとき、既述したように最長パスデータＤ２ｍａｘのセットアップ時間ｔｓのマージンが問題にされる。条件１でセットアップ時間ｔｓを満たすのは、最大遅延時間を有する遅延回路１２−２により遅延されたクロックＣＫ２の立ち上がり時刻ｔ２である。最小遅延時間を有する遅延回路１２−１により遅延されたクロックＣＫ２の立ち上がり時刻ｔ１はセットアップマージンが不足する。この時刻ｔ１で立ち上がるクロックＣＫ２がセットアップ条件を満たすのは、条件３よりＢｅｓｔ方向の動作環境である。
【００６６】
他方、動作環境がＢｅｓｔ、即ち条件４のとき、最短パスデータＤ２ｍａｘのホールド時間ｔｈのマージンが問題にされる。最小遅延時間を有する遅延回路１２−１により遅延されたクロックＣＫ２の立ち上がり時刻ｔ１はこのホールド条件を満足する。これに対して、最大遅延時間を有する遅延回路１２−２により遅延されたクロックＣＫ２の立ち上がり時刻ｔ２がホールド条件を満足するのは、条件２よりＷｏｒｓｔ方向の動作環境下である。
【００６７】
上記の結果を整理すると、最大遅延時間を有する遅延回路１２−２により遅延された立ち上がり時刻ｔ２を有するクロックＣＫ２を用いた場合、半導体装置は条件１〜条件２までの動作範囲Ｃで動作する。一方、最小遅延時間を有する遅延回路１２−１により遅延された立ち上がり時刻ｔ１のクロックＣＫ２を用いた場合、条件３〜条件４の動作範囲Ｄで動作する。
【００６８】
制御回路６は第１実施形態と同様に、観測データが示す動作環境が動作範囲Ｃ又は動作範囲Ｄのいずれに相当するかを判別して、遅延回路１２−１、１２−２を切り換える。動作範囲Ｃ、Ｄが一部重複する場合も第１実施形態と同様に処理する。従って、動作範囲が広い半導体装置が実現される。
【００６９】
本発明の第３実施形態は、論理回路５の出力を遅延する第１実施形態の可変遅延回路１０と、ラッチ回路２のクロックＣＫ２をクロックＣＫから遅延して生成する可変遅延回路１１とを備えた半導体装置に関する。
【００７０】
図６は本発明の第３実施形態の論理回路及びその周辺回路の回路図である。図１及び図４と同様の機能を有する回路には同一符号を付している。
【００７１】
第３実施形態に係る半導体装置は、第１実施形態と同様のラッチ回路１、２、論理回路５、クロック遅延回路４−１、遅延回路３−１、３−２及びセレクタ８からなる可変遅延回路１０、及び、フリップフロップ７を備える。さらに、第２実施形態と同様の遅延回路１２−１、１２−２及びセレクタ９からなる可変遅延回路１１、及び、フリップフロップ回路１３を有する。これらの回路は、第１及び第２実施形態で既述したと同様に動作する。
【００７２】
第３実施形態の制御回路６は、データを遅延する可変遅延回路１０の遅延時間を第１変数とし、クロックＣＫを遅延する可変遅延回路１１の遅延時間を第２変数とするテーブルを有する。このテーブルの各欄には、その欄に該当する第１及び第２変数を可変遅延回路１０、１１の遅延時間としたとき、対応可能な（タイミング条件を満たす）動作環境の範囲（具体的にはその観測データＤｏｂの値の範囲）が書き込まれている。
【００７３】
制御回路は、テーブルから入力された観測データＤｏｂが含まれる欄を検索し、検索された欄の第１及び第２変数と現在使用している遅延時間とを比較し、その比較結果に基づき可変遅延回路１０、１１のいずれを切り換えるかを判断する。
【００７４】
この実施形態では、観測された動作環境下で正しくラッチすることができる可変遅延回路１０、１１の遅延時間が、第１及び第２変数を基底とする２次元のテーブル上に表現されるから、第１及び第２変数のいずれをどれだけ変更すれば最も適切に動作環境に対応することができるかが容易に判断できる。たとえば、最も高速動作を得るには、抽出された欄が描く２次元パターンの周辺近傍で、最もクロックＣＫが短い条件を選択する。このように、本実施形態によれば観測された動作環境に適合させるのに、２つの変数を利用できるから、より適切な制御が可能となる。
【００７５】
本明細書に上述した記載には、以下の付記記載の発明が開示されている。
【００７６】
（付記１）第１クロックに同期してデータをラッチし出力する第１ラッチ回路と、第２クロックに同期してデータをラッチする第２ラッチ回路と、前記第１ラッチ回路の出力データが入力され前記第２ラッチ回路へ演算結果を出力する論理回路とを備えた半導体装置において、
前記論理回路の出力データを遅延して前記第２ラッチ回路へ出力する可変遅延回路と、
前記論理回路又は前記第１若しくは第２ラッチ回路の動作速度に影響を及ぼす動作環境の観測データが入力され、入力された前記観測データが示す前記動作環境の下で前記論理回路の出力データが正しくラッチされるように前記可変遅延回路の遅延時間を制御する制御回路とを備えたことを特徴とする半導体装置。
【００７７】
（付記２）  第１クロックに同期してデータをラッチし出力する第１ラッチ回路と、第２クロックに同期してデータをラッチする第２ラッチ回路と、前記第１ラッチ回路の出力データが入力され前記第２ラッチ回路へ演算結果を出力する論理回路とを備えた半導体装置において、
前記第２クロックを遅延する可変遅延回路と、
前記論理回路又は前記第１若しくは第２ラッチ回路の動作速度に影響を及ぼす動作環境の観測データが入力され、前記観測データが示す前記動作環境の下で前記論理回路の出力データが正しくラッチされるように前記可変遅延回路の遅延時間を制御する制御回路とを備えたことを特徴とする半導体装置。
【００７８】
（付記３）  前記可変遅延回路は、互いに異なる遅延時間を有する複数の遅延回路と、前記複数の遅延回路の出力から一つを選択して前記第２ラッチ回路へ出力するセレクタとを有し、                                                                          前記制御回路は、前記遅延回路の遅延時間毎に前記論理回路の出力データが正しくラッチされる前記動作環境の範囲が予め設定されており、前記観測データが示す前記動作環境と設定されている前記動作環境の範囲とを比較して、前記論理回路の出力データが正しくラッチされる遅延時間を有する前記遅延回路を選択するように前記セレクタを制御することを特徴とする付記１又は２記載の半導体装置。
【００７９】
（付記４）  前記可変遅延回路は、互いに異なる遅延時間を有する複数の遅延回路と、前記複数の遅延回路の出力データから一つを選択して前記第２ラッチ回路へ出力するセレクタとを有し、
前記制御回路は、前記論理回路の出力データが正しくラッチされる遅延時間を有する前記遅延回路を選択するように前記セレクタを制御することを特徴とする付記１又は２記載の半導体装置。
【００８０】
（付記５）  前記動作環境は、前記半導体装置のチップ温度、前記半導体装置のパッケージ温度、前記半導体装置のチップ又はパッケージの周囲の温度、及び、前記半導体装置のリードと回路基板との接続点の温度の中から選択された１又は複数の温度を含むことを特徴とする付記１、２、３又は４記載の半導体装置。
【００８１】
（付記６）  前記半導体装置内に設けられたゲート遅延を測定するモニタ回路を有し、
前記動作環境に、前記モニタ回路で測定されたゲート遅延時間を含むことを特徴とする付記１、２、３、４又は５記載の半導体装置。
【００８２】
（付記７）  第１クロックに同期してデータをラッチし出力する第１ラッチ回路と、第２クロックに同期してデータをラッチする第２ラッチ回路と、前記第１ラッチ回路の出力データが入力され前記第２ラッチ回路へ演算結果を出力する論理回路とを備えた半導体装置において、
前記論理回路の出力データを遅延して前記第２ラッチ回路へ出力する第１可変遅延回路と、
前記第２クロックを遅延する第２可変遅延回路と、
前記論理回路又は前記第１若しくは第２ラッチ回路の動作速度に影響を及ぼす動作環境の観測データが入力され、前記観測データが示す前記動作環境の下で前記論理回路の出力データが正しくラッチされるように前記第１及び第２可変遅延回路の遅延時間を制御する制御回路とを備えたことを特徴とする半導体装置。
【産業上の利用可能性】
【００８３】
本発明は、同期式の論理回路を有する半導体装置に適用して、広い使用環境を有しかつ静的タイミング解析では迅速に収束する半導体装置を実現することができる。
【図面の簡単な説明】
【００８４】
【図１】本発明の第１実施形態の回路図
【図２】本発明の第１実施形態におけるタイミングチャート
【図３】本発明の第１実施形態の論理回路の動作範囲説明図
【図４】本発明の第２実施形態の論理回路及びその周辺回路の回路図
【図５】本発明の第２実施形態の論理回路の動作範囲説明図
【図６】本発明の第３実施形態の論理回路及びその周辺回路の回路図
【図７】従来の論理回路及びその周辺回路の回路図
【図８】従来の論理回路のタイミングチャート
【図９】従来の論理回路の動作範囲説明図
【符号の説明】
【００８５】
１、２  ラッチ回路
３、３−１、３−２、１２−１、１２−２  遅延回路
４−１、４−２  クロック遅延回路
５  論理回路
６  制御回路
７、１３  フリップフロップ
８、９  セレクタ
１０、１１  可変遅延回路
Ｄ１、Ｄ２  データ
Ｄｉｎ  入力データ
Ｄｏｕｔ  出力データ
ＣＫ、ＣＫ１、ＣＫ２  クロック
Ｐ１〜Ｐ４  パス
ｔ０、ｔ１、ｔ２  時刻（ラッチタイミング）
ｔｓ  セットアップ時間
ｔｈ  ホールド時間
【図１】
2007074160.tif 000003
【図２】
2007074160.tif 000004
【図３】
2007074160.tif 000005
【図４】
2007074160.tif 000006
【図５】
2007074160.tif 000007
【図６】
2007074160.tif 000008
【図７】
2007074160.tif 000009
【図８】
2007074160.tif 000010
【図９】
2007074160.tif 000011