(57)【要約】【課題】  クロックゲーティング状態にあるときにも、初期化対象の論理回路の初期値を後段の論理回路に出力する。【解決手段】  クロックに同期して動作する論理回路をリセットするリセット回路は、論理回路の出力信号を受け、論理回路がリセットされたときの出力信号の初期値と論理回路から受けた出力信号とのいずれかを出力する出力選択部と、論理回路をリセットするためのリセット信号を受け、出力選択部から初期値がリセット信号に応答して出力されるように出力選択部を制御する制御部とを有している。【選択図】  図１
2012182702.tif 000002
【特許請求の範囲】
【請求項１】
クロックに同期して動作する論理回路をリセットするリセット回路であって、
前記論理回路の出力信号を受け、前記論理回路がリセットされたときの前記出力信号の初期値と前記論理回路から受けた前記出力信号とのいずれかを出力する出力選択部と、
前記論理回路をリセットするためのリセット信号を受け、前記出力選択部から前記初期値が前記リセット信号に応答して出力されるように前記出力選択部を制御する制御部と
を備えていることを特徴とするリセット回路。
【請求項２】
前記リセット回路はさらに、入力信号を受け、前記論理回路をリセットするための所定値と前記入力信号とのいずれかを前記論理回路に出力する入力選択部を備え、
前記制御部は、前記リセットタイミングで前記出力信号が前記初期値にリセットされていないとき、前記出力信号が前記初期値にリセットされるまで、前記所定値が前記入力選択部から前記論理回路に出力されるように前記入力選択部を制御すること
を特徴とする請求項１記載のリセット回路。
【請求項３】
前記制御部は、前記出力信号が前記初期値にリセットされた後、前記入力信号が前記入力選択部から前記論理回路に出力されるように前記入力選択部を制御すること
を特徴とする請求項２記載のリセット回路。
【請求項４】
前記制御部は、前記論理回路が前記クロックに同期して動作しているとき、前記論理回路の前記出力信号が前記出力選択部から出力されるように前記出力選択部を制御すること
を特徴とする請求項１記載のリセット回路。
【請求項５】
前記制御部は、前記リセットタイミングで前記出力信号が前記初期値にリセットされているとき、前記論理回路の前記出力信号が前記出力選択部から出力されるように前記出力選択部を制御し、前記リセットタイミングで前記出力信号が前記初期値にリセットされていないとき、前記初期値が前記出力選択部から出力されるように前記出力選択部を制御すること
を特徴とする請求項１記載のリセット回路。
【請求項６】
クロックに同期して動作する論理回路と、
前記論理回路をリセットするリセット回路とを備え、
前記リセット回路は、
前記論理回路の出力信号を受け、前記論理回路がリセットされたときの前記出力信号の初期値と前記論理回路から受けた前記出力信号とのいずれかを出力する出力選択部と、
前記論理回路をリセットするためのリセット信号を受け、前記出力選択部から前記初期値が前記リセット信号に応答して出力されるように前記出力選択部を制御する制御部とを備えていること
を特徴とする半導体装置。
【請求項７】
前記リセット回路はさらに、入力信号を受け、前記論理回路をリセットするための所定値と前記入力信号とのいずれかを前記論理回路に出力する入力選択部を備え、
前記制御部は、前記リセットタイミングで前記出力信号が前記初期値にリセットされていないとき、前記出力信号が前記初期値にリセットされるまで、前記所定値が前記入力選択部から前記論理回路に出力されるように前記入力選択部を制御すること
を特徴とする請求項６記載の半導体装置。
【請求項８】
前記制御部は、前記出力信号が前記初期値にリセットされた後、前記入力信号が前記入力選択部から前記論理回路に出力されるように前記入力選択部を制御すること
を特徴とする請求項７記載の半導体装置。
【請求項９】
前記制御部は、前記論理回路が前記クロックに同期して動作しているとき、前記論理回路の前記出力信号が前記出力選択部から出力されるように前記出力選択部を制御すること
を特徴とする請求項６記載の半導体装置。
【請求項１０】
前記制御部は、前記リセットタイミングで前記出力信号が前記初期値にリセットされているとき、前記論理回路の前記出力信号が前記出力選択部から出力されるように前記出力選択部を制御し、前記リセットタイミングで前記出力信号が前記初期値にリセットされていないとき、前記初期値が前記出力選択部から出力されるように前記出力選択部を制御すること
を特徴とする請求項６記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リセット回路および半導体装置に関する。
【背景技術】
【０００２】
ＬＳＩは、高集積化および多機能化に伴い、複数の機能ブロック（ＩＰ（Intellectual Property）マクロ）を含む。この種のＬＳＩは、ソフトリセットにより、機能ブロックの論理回路を初期化する（例えば、特許文献１）。例えば、ソフトリセットにより、ＬＳＩの一部の論理回路が初期化される。一般的に、ソフトリセットは、初期化対象の論理回路のクロックに同期して実施される。
【０００３】
また、近年のＬＳＩでは、低消費電力化が要求されている。このため、ＬＳＩは、例えば、使用しない機能ブロックの論理回路へのクロック供給を停止すること（クロックゲーティング）により、消費電力を低減する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１１８１７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
クロックに同期してリセットが実施される論理回路では、リセットが実施されるタイミングより前に、初期化対象の論理回路へのクロック供給が停止したとき、リセットは、実施されない。この場合、論理回路の出力が初期値にリセットされないおそれがある。初期化対象の論理回路の出力が初期値にリセットされない場合、初期化対象の論理回路は、後段の論理回路に初期値を出力することができない。このため、後段の論理回路の動作に不具合が発生することがある。
【０００６】
本発明の目的は、クロックゲーティング状態にあるときにも、初期化対象の論理回路の初期値を後段の論理回路に出力することである。
【課題を解決するための手段】
【０００７】
本発明の一形態では、クロックに同期して動作する論理回路をリセットするリセット回路は、論理回路の出力信号を受け、論理回路がリセットされたときの出力信号の初期値と論理回路から受けた出力信号とのいずれかを出力する出力選択部と、論理回路をリセットするためのリセット信号を受け、出力選択部から初期値がリセット信号に応答して出力されるように出力選択部を制御する制御部とを有している。
【発明の効果】
【０００８】
クロックゲーティング状態にあるときにも、初期化対象の論理回路の初期値を後段の論理回路に出力できる。
【図面の簡単な説明】
【０００９】
【図１】一実施形態におけるリセット回路の例を示している。
【図２】別の実施形態におけるリセット回路の一例を示している。
【図３】図２に示したリセット回路の動作の一例を示している。
【図４】図２に示したリセット回路が搭載される半導体装置の一例を示している。
【図５】別の実施形態におけるリセット回路の一例を示している。
【発明を実施するための形態】
【００１０】
以下、実施形態を図面を用いて説明する。
【００１１】
図１は、一実施形態におけるリセット回路１０の例を示している。リセット回路１０は、例えば、クロックＣＬＫ１に同期して動作する論理回路２０をリセットする。リセット回路１０および論理回路２０は、半導体装置の少なくとも一部を形成する。例えば、リセット回路１０は、論理回路２０を含むＬＳＩ等に搭載される。
【００１２】
リセット回路１０は、入力選択部ＩＳＥＬ、出力選択部ＯＳＥＬおよび制御部ＣＮＴを有している。例えば、リセット回路１０は、ソフトリセット信号ＲＳＴおよび入力信号ＤＩＮを受け、出力信号ＤＯＵＴを論理回路２０の後段の論理回路に出力する。ソフトリセット信号ＲＳＴは、例えば、論理回路２０をリセットするためのリセット信号であり、半導体装置の動作を制御するＣＰＵ等から出力される。また、入力信号ＤＩＮは、例えば、ソフトリセット信号ＲＳＴがアサートされていない通常動作時に論理回路２０に入力される入力信号であり、論理回路２０の前段の論理回路から出力される。なお、論理回路２０が受けるクロックＣＬＫ１は、例えば、半導体装置のクロックの供給や停止を制御するクロック制御回路から出力される。
【００１３】
入力選択部ＩＳＥＬは、入力信号ＤＩＮを受け、論理回路２０をリセットするための所定値と入力信号ＤＩＮとのいずれかを論理回路２０に出力する。例えば、入力選択部ＩＳＥＬは、制御部ＣＮＴの制御に応じて、所定値と入力信号ＤＩＮとのいずれかを論理回路２０に出力する。ここで、入力選択部ＩＳＥＬは、例えば、制御部ＣＮＴから受ける制御信号を使用して所定値を生成してもよいし、制御部ＣＮＴから所定値を受けてもよい。あるいは、入力選択部ＩＳＥＬは、所定値を予め保持していてもよい。
【００１４】
出力選択部ＯＳＥＬは、論理回路２０の出力信号を受け、論理回路２０がリセットされたときの出力信号の初期値と論理回路２０から受けた出力信号とのいずれかを出力する。例えば、出力選択部ＯＳＥＬは、制御部ＣＮＴの制御に応じて、論理回路２０の出力信号の初期値（以降、単に初期値とも称する）と論理回路２０から受けた出力信号とのいずれかを、後段の論理回路への出力信号ＤＯＵＴとして出力する。
【００１５】
すなわち、論理回路２０の後段の論理回路は、論理回路２０からの出力信号として、リセット回路１０の出力信号ＤＯＵＴを受ける。ここで、出力選択部ＯＳＥＬは、例えば、制御部ＣＮＴから受ける制御信号を使用して初期値を生成してもよいし、制御部ＣＮＴから初期値を受けてもよい。あるいは、出力選択部ＯＳＥＬは、初期値を予め保持していてもよい。
【００１６】
制御部ＣＮＴは、ソフトリセット信号ＲＳＴおよび論理回路２０の出力信号を受ける。そして、制御部ＣＮＴは、ソフトリセット信号ＲＳＴおよび論理回路２０の出力信号に基づいて、入力選択部ＩＳＥＬおよび出力選択部ＯＳＥＬを制御する。例えば、制御部ＣＮＴは、ソフトリセット信号ＲＳＴに基づくリセットタイミングより前にクロックＣＬＫ１が停止したときにも、出力選択部ＯＳＥＬから初期値がソフトリセット信号ＲＳＴに応答して出力されるように出力選択部ＯＳＥＬを制御する。
【００１７】
すなわち、出力選択部ＯＳＥＬは、ソフトリセット信号ＲＳＴに基づくリセットタイミングより前にクロックＣＬＫ１が停止したときにも、ソフトリセット信号ＲＳＴに応答して、初期値を示す出力信号ＤＯＵＴを論理回路２０の後段の論理回路に出力する。これにより、この実施形態では、クロックゲーティング状態で初期化対象の論理回路２０の出力信号の値に拘わらず、初期化対象の論理回路２０の初期値を後段の論理回路に出力できる。
【００１８】
なお、例えば、制御部ＣＮＴは、ソフトリセット信号ＲＳＴがアサートされたときの論理回路２０の出力信号を判定し、初期値と論理回路２０の出力信号とが一致するとき、論理回路２０の出力信号を出力選択部ＯＳＥＬから出力させてもよい。あるいは、制御部ＣＮＴは、ソフトリセット信号ＲＳＴがアサートされたとき、論理回路２０の出力信号の値に拘わらず、初期値を出力選択部ＯＳＥＬから出力させてもよい。
【００１９】
また、例えば、制御部ＣＮＴは、ソフトリセット信号ＲＳＴに基づくリセットタイミングで論理回路２０の出力信号が初期値にリセットされていないとき、論理回路２０の出力信号が初期値にリセットされるまで、所定値が論理回路２０に出力されるように入力選択部ＩＳＥＬを制御する。
【００２０】
すなわち、入力選択部ＩＳＥＬは、ソフトリセット信号ＲＳＴに基づくリセットタイミングで論理回路２０の出力信号が初期値にリセットされていないとき、論理回路２０の出力信号が初期値にリセットされるまで、所定値を論理回路２０に出力する。したがって、論理回路２０の入力は、論理回路２０の出力信号が初期値にリセットされるまで、所定値に維持される。これにより、論理回路２０は、例えば、クロックＣＬＫ１の供給が再開したときに、リセットされる。
【００２１】
なお、リセット回路１０の構成は、この例に限定されない。例えば、入力選択部ＩＳＥＬは、ソフトリセット信号ＲＳＴに基づいて、所定値と入力信号ＤＩＮとのいずれかを論理回路２０に出力してもよい。この場合、入力選択部ＩＳＥＬは、制御部ＣＮＴを介さずに、ソフトリセット信号ＲＳＴを受けてもよい。すなわち、制御部ＣＮＴは、入力選択部ＩＳＥＬを制御する機能を含まなくてもよい。
【００２２】
以上、この実施形態では、リセット回路１０は、制御部ＣＮＴの制御に応じて、論理回路２０の初期値を出力する出力選択部ＯＳＥＬを有している。例えば、出力選択部ＯＳＥＬは、クロックＣＬＫ１が停止したときにも、論理回路２０の初期値を示す出力信号ＤＯＵＴを、論理回路２０の後段の論理回路にソフトリセット信号ＲＳＴに応答して出力する。これにより、この実施形態では、クロックゲーティング状態で初期化対象の論理回路２０の出力信号の値に拘わらず、初期化対象の論理回路２０の初期値を後段の論理回路に出力できる。この結果、論理回路２０の後段の論理回路等の動作が不安定になることを防止できる。すなわち、この実施形態では、クロックゲーティングにより消費電力を低減しつつ、論理回路２０の後段の論理回路等の動作が不安定になることを防止できる。
【００２３】
図２は、別の実施形態におけるリセット回路１２の一例を示している。上述した実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。リセット回路１２は、例えば、クロックＣＬＫ１に同期して動作する論理回路２２をリセットする。リセット回路１２および論理回路２２は、半導体装置の少なくとも一部を形成する。例えば、リセット回路１２は、論理回路２２を含むＬＳＩ等に搭載される。
【００２４】
論理回路２２は、例えば、イネーブル端子ＥＮで受けるイネーブル信号ｅｎ１が“１”（高レベル）のときにアクティブになるフリップフロップ回路である。例えば、論理回路２２は、イネーブル信号ｅｎ１が“１”のとき、端子ＣＫで受けるクロックＣＬＫ１に同期して、端子Ｄで受けたデータ信号ｄ１を端子Ｑから出力する。また、論理回路２２は、リセットされたとき、例えば、“０”（低レベル）を出力する。すなわち、図２の例では、論理回路２２の出力信号ｑ１の初期値は、“０”である。
【００２５】
リセット回路１２は、制御部ＣＮＴ２、入力選択部ＩＳＥＬ２および出力選択部ＯＳＥＬ２を有している。例えば、制御部ＣＮＴ２、入力選択部ＩＳＥＬ２および出力選択部ＯＳＥＬ２は、図１に示した制御部ＣＮＴ、入力選択部ＩＳＥＬおよび出力選択部ＯＳＥＬにそれぞれ対応している。
【００２６】
例えば、リセット回路１２は、ソフトリセット信号ＲＳＴ、クロックＣＬＫ２、入力データＤＡＴＡ、イネーブル信号ＥＮＩＮおよび論理回路２２の出力信号ｑ１を受け、出力信号ＤＯＵＴを論理回路２２の後段の論理回路に出力する。入力データＤＡＴＡおよびイネーブル信号ＥＮＩＮは、例えば、ソフトリセット信号ＲＳＴがアサートされていない通常動作時に論理回路２２に入力される入力信号であり、図１に示した入力信号ＤＩＮに対応している。また、クロックＣＬＫ１、ＣＬＫ２は、例えば、半導体装置のクロックの供給や停止を制御するクロック制御回路から出力される。
【００２７】
制御部ＣＮＴ２は、クロックＣＬＫ２、ソフトリセット信号ＲＳＴおよび論理回路２２の出力信号ｑ１を受ける。そして、制御部ＣＮＴ２は、ソフトリセット信号ＲＳＴおよび論理回路２２の出力信号ｑ１に基づいて、入力選択部ＩＳＥＬ２および出力選択部ＯＳＥＬ２を制御する。
【００２８】
例えば、制御部ＣＮＴ２は、ソフトリセット信号ＲＳＴに基づくリセットタイミングで論理回路２２の出力信号ｑ１が初期値にリセットされているとき、論理回路２２の出力信号ｑ１が出力選択部ＯＳＥＬ２から出力されるように出力選択部ＯＳＥＬ２を制御する。そして、制御部ＣＮＴ２は、ソフトリセット信号ＲＳＴに基づくリセットタイミングで論理回路２２の出力信号ｑ１が初期値にリセットされていないとき、初期値が出力選択部ＯＳＥＬ２から出力されるように出力選択部ＯＳＥＬ２を制御する。なお、制御部ＣＮＴ２は、ソフトリセット信号ＲＳＴがアサートされたとき、論理回路２２の出力信号ｑ１の値に拘わらず、初期値を出力選択部ＯＳＥＬ２から出力させてもよい。
【００２９】
すなわち、制御部ＣＮＴ２は、例えば、ソフトリセット信号ＲＳＴに基づくリセットタイミングより前にクロックＣＬＫ１が停止したときにも、出力選択部ＯＳＥＬ２から初期値がソフトリセット信号ＲＳＴに応答して出力されるように出力選択部ＯＳＥＬ２を制御する。また、制御部ＣＮＴ２は、例えば、ソフトリセット信号ＲＳＴに基づくリセットタイミングで論理回路２２の出力信号ｑ１が初期値にリセットされていないとき、出力信号ｑ１が初期値にリセットされるまで、所定値が論理回路２２に出力されるように入力選択部ＩＳＥＬ２を制御する。
【００３０】
制御部ＣＮＴ２は、例えば、ＡＮＤ回路ＡＮＤ１、ＡＮＤ２、ＡＮＤ３、ＯＲ回路ＯＲ１、ＯＲ２、インバータＩＮＶ１、ＩＮＶ２およびフリップフロップ回路ＦＦ１を有している。ＡＮＤ回路ＡＮＤ１は、ソフトリセット信号ＲＳＴと論理回路２２の出力信号ｑ１との論理積結果（信号ｒｓｔａｒｔ）を、ＯＲ回路ＯＲ１、ＯＲ２に出力する。インバータＩＮＶ１は、出力信号ｑ１の反転信号をＡＮＤ回路ＡＮＤ２に出力する。
【００３１】
ＡＮＤ回路ＡＮＤ２は、出力信号ｑ１の反転信号とフリップフロップ回路ＦＦ１の出力信号ｓｅｌ＿ｏｕｔとの論理積結果（信号ｒｅｎｄ）を、ＯＲ回路ＯＲ１およびインバータＩＮＶ２に出力する。ＯＲ回路ＯＲ１は、ＡＮＤ回路ＡＮＤ１の出力信号ｒｓｔａｒｔとＡＮＤ回路ＡＮＤ２の出力信号ｒｅｎｄとの論理和結果（イネーブル信号ｅｎ２）を、フリップフロップ回路ＦＦ１のイネーブル端子ＥＮに出力する。
【００３２】
フリップフロップ回路ＦＦ１は、例えば、イネーブル信号ｅｎ２が“１”のとき、端子ＣＫで受けるクロックＣＬＫ２に同期して、端子Ｄで受けたソフトリセット信号ＲＳＴを端子Ｑから出力する。フリップフロップ回路ＦＦ１の出力信号ｓｅｌ＿ｏｕｔは、ＡＮＤ回路ＡＮＤ２、ＯＲ回路ＯＲ２および出力選択部ＯＳＥＬ２に出力される。すなわち、ソフトリセット信号ＲＳＴは、イネーブル信号ｅｎ２が“１”のとき、出力信号ｓｅｌ＿ｏｕｔとしてＡＮＤ回路ＡＮＤ２、ＯＲ回路ＯＲ２および出力選択部ＯＳＥＬ２に出力される。
【００３３】
ＯＲ回路ＯＲ２は、ＡＮＤ回路ＡＮＤ１の出力信号ｒｓｔａｒｔとフリップフロップ回路ＦＦ１の出力信号ｓｅｌ＿ｏｕｔとの論理和結果を、ＡＮＤ回路ＡＮＤ３に出力する。インバータＩＮＶ２は、ＡＮＤ回路ＡＮＤ２の出力信号ｒｅｎｄの反転信号をＡＮＤ回路ＡＮＤ３に出力する。ＡＮＤ回路ＡＮＤ３は、ＡＮＤ回路ＡＮＤ２の出力信号ｒｅｎｄの反転信号とＯＲ回路ＯＲ２の出力信号との論理積結果（信号ｓｅｌ＿ｉｎ）を、入力選択部ＩＳＥＬ２に出力する。
【００３４】
入力選択部ＩＳＥＬ２は、入力データＤＡＴＡ、イネーブル信号ＥＮＩＮおよび制御部ＣＮＴ２の出力信号ｓｅｌ＿ｉｎを受け、論理回路２２へ入力されるデータ信号ｄ１およびイネーブル信号ｅｎ１を論理回路２２に出力する。例えば、入力選択部ＩＳＥＬ２は、制御部ＣＮＴ２の出力信号ｓｅｌ＿ｉｎに応じて、論理回路２２をリセットするための所定値の入力データ（“０”）と入力データＤＡＴＡとのいずれかを論理回路２２の端子Ｄに出力する。さらに、入力選択部ＩＳＥＬ２は、制御部ＣＮＴ２の出力信号ｓｅｌ＿ｉｎに応じて、論理回路２２をリセットするための所定値のイネーブル信号（“１”）とイネーブル信号ＥＮＩＮとのいずれかを論理回路２２のイネーブル端子ＥＮに出力する。
【００３５】
例えば、入力選択部ＩＳＥＬ２は、インバータＩＮＶ３、ＡＮＤ回路ＡＮＤ４およびＯＲ回路ＯＲ３を有している。インバータＩＮＶ３は、制御部ＣＮＴ２の出力信号ｓｅｌ＿ｉｎの反転信号をＡＮＤ回路ＡＮＤ４に出力する。ＡＮＤ回路ＡＮＤ４は、出力信号ｓｅｌ＿ｉｎの反転信号と入力データＤＡＴＡとの論理積結果（データ信号ｄ１）を、論理回路２２の端子Ｄに出力する。ＯＲ回路ＯＲ３は、制御部ＣＮＴ２の出力信号ｓｅｌ＿ｉｎとイネーブル信号ＥＮＩＮとの論理和結果（イネーブル信号ｅｎ１）を、論理回路２２のイネーブル端子ＥＮに出力する。
【００３６】
出力選択部ＯＳＥＬ２は、論理回路２２の出力信号ｑ１および制御部ＣＮＴ２の出力信号ｓｅｌ＿ｏｕｔを受け、出力信号ＤＯＵＴを論理回路２２の後段の論理回路に出力する。例えば、出力選択部ＯＳＥＬ２は、制御部ＣＮＴ２の出力信号ｓｅｌ＿ｏｕｔに応じて、論理回路２２の出力信号ｑ１の初期値と論理回路２２から受けた出力信号ｑ１とのいずれかを、論理回路２２の後段の論理回路への出力信号ＤＯＵＴとして出力する。これにより、出力選択部ＯＳＥＬ２は、例えば、ソフトリセット信号ＲＳＴに基づくリセットタイミングより前にクロックＣＬＫ１が停止したときにも、論理回路２２の出力信号ｑ１の初期値をソフトリセット信号ＲＳＴに応答して出力できる。
【００３７】
例えば、出力選択部ＯＳＥＬ２は、インバータＩＮＶ４およびＡＮＤ回路ＡＮＤ５を有している。インバータＩＮＶ４は、制御部ＣＮＴ２の出力信号ｓｅｌ＿ｏｕｔの反転信号をＡＮＤ回路ＡＮＤ５に出力する。ＡＮＤ回路ＡＮＤ５は、出力信号ｓｅｌ＿ｏｕｔの反転信号と論理回路２２の出力信号ｑ１との論理積結果（出力信号ＤＯＵＴ）を、論理回路２２の後段の論理回路に出力する。すなわち、論理回路２２の後段の論理回路は、論理回路２２からの出力信号として、リセット回路１２の出力信号ＤＯＵＴを受ける。
【００３８】
なお、リセット回路１２の構成は、この例に限定されない。例えば、リセット回路１２は、初期化対象の論理回路２２の初期値等の属性に合わせた論理で形成されていればよい。また、例えば、複数ビットの入力データＤＡＴＡに対応した複数の論理回路２２をリセットするためのリセット回路１２では、制御部ＣＮＴ２は、複数の論理回路２２で共通に設けられてもよい。この場合、入力データＤＡＴＡのビット数が増加したときにも、制御部ＣＮＴ２の数が増加しないため、リセット回路１２の消費電力が増加することを抑制できる。なお、入力選択部ＩＳＥＬ２および出力選択部ＯＳＥＬ２は、例えば、複数の論理回路２２のそれぞれに対応して設けられる。
【００３９】
また、制御部ＣＮＴ２、入力選択部ＩＳＥＬ２および出力選択部ＯＳＥＬ２の区別は、この例に限定されない。例えば、入力選択部ＩＳＥＬ２は、制御部ＣＮＴ２のＡＮＤ回路ＡＮＤ３、ＯＲ回路ＯＲ２およびインバータＩＮＶ２を含んで定義されてもよい。
【００４０】
図３は、図２に示したリセット回路１２の動作の一例を示している。なお、図３は、ソフトリセット信号ＲＳＴに基づくリセットタイミング（時刻Ｔ１）より前にクロックＣＬＫ１が停止したときのリセット回路１２の動作を示している。図３の信号ｅｎ１、ｄ１、ｑ１の破線は、比較例を示している。比較例では、図２に示した制御部ＣＮＴ２および出力選択部ＯＳＥＬ２が省かれ、信号ｓｅｌ＿ｉｎの代わりにソフトリセット信号ＲＳＴが入力選択部ＩＳＥＬ２に入力される。
【００４１】
図３の例では、ソフトリセット信号ＲＳＴがアサートされる直前の論理回路２２の出力信号ｑ１は、“１”（高レベル）である。また、ソフトリセット信号ＲＳＴがアサートされる直前の制御部ＣＮＴ２の出力信号ｓｅｌ＿ｏｕｔは、“０”（低レベル）である。したがって、ソフトリセット信号ＲＳＴがアサートされる直前の出力信号ＤＯＵＴは、“１”である。なお、出力信号ｑ１の初期値は、“０”である。すなわち、論理回路２２がリセットされたときには、出力信号ｑ１は、“０”に初期化される。
【００４２】
先ず、論理回路２２をリセットするために、ソフトリセット信号ＲＳＴが“０”から“１”に変化する（図３（ａ））。なお、クロックＣＬＫ１は、ソフトリセット信号ＲＳＴに基づくリセットタイミング（時刻Ｔ１）より前に停止する。すなわち、クロックＣＬＫ１は、論理回路２２がリセットされる前に、停止する。ソフトリセット信号ＲＳＴが“０”から“１”に変化したことにより、信号ｒｓｔａｒｔ（ソフトリセット信号ＲＳＴと出力信号ｑ１との論理積結果）は、“０”から“１”に変化する（図３（ｂ））。
【００４３】
この結果、フリップフロップ回路ＦＦ１のイネーブル信号ｅｎ２（信号ｒｓｔａｒｔと信号ｒｅｎｄの論理和結果）は、“０”から“１”に変化する（図３（ｃ））。これにより、フリップフロップ回路ＦＦ１の出力信号ｓｅｌ＿ｏｕｔは、クロックＣＬＫ２の立ち上がりに同期して、“０”から“１”に変化する（図３（ｄ））。出力信号ｓｅｌ＿ｏｕｔが“０”から“１”に変化したことにより、出力信号ＤＯＵＴは、“１”から“０”に変化する（図３（ｅ））。なお、論理回路２２の出力信号ｑ１は、リセットされる前にクロックＣＬＫ１が停止したため、“１”に維持されている。
【００４４】
このように、この実施形態では、論理回路２２がリセットされる前にクロックＣＬＫ１が停止したときにも、ソフトリセット信号ＲＳＴに応答して、論理回路２２の初期値（“０”を示す出力信号ＤＯＵＴ）を論理回路２２の後段の論理回路に出力できる。すなわち、この実施形態では、ソフトリセット信号ＲＳＴに基づくリセットタイミング（時刻Ｔ１）より前にクロックＣＬＫ１が停止したときにも、ソフトリセット信号ＲＳＴに応答して、論理回路２２の初期値を論理回路２２の後段の論理回路に出力できる。したがって、この実施形態では、クロックゲーティング状態で初期化対象の論理回路２２の出力信号ｑ１の値に拘わらず、初期化対象の論理回路２２の初期値を後段の論理回路に出力できる。
【００４５】
また、ソフトリセット信号ＲＳＴが“０”から“１”に変化したときにも、信号ｒｅｎｄは、出力信号ｑ１が“１”であるため、“０”に維持されている。このため、信号ｓｅｌ＿ｉｎは、信号ｒｓｔａｒｔが“０”から“１”に変化したことに伴い、“０”から“１”に変化する（図３（ｆ））。これにより、論理回路２２のイネーブル信号ｅｎ１は、“０”から“１”に変化する（図３（ｇ））。また、論理回路２２へのデータ信号ｄ１は、“１”から“０”に変化する（図３（ｈ））。このように、論理回路２２が受ける信号ｅｎ１、ｄ１は、ソフトリセット信号ＲＳＴに応答して、論理回路２２をリセットするための所定値に設定される。
【００４６】
そして、ソフトリセット信号ＲＳＴが“１”から“０”に変化することにより（図３（ｉ））、信号ｒｓｔａｒｔは、“１”から“０”に変化する（図３（ｊ））。この結果、フリップフロップ回路ＦＦ１のイネーブル信号ｅｎ２は、“１”から“０”に変化する（図３（ｋ））。このため、“０”から“１”に変化したフリップフロップ回路ＦＦ１の出力信号ｓｅｌ＿ｏｕｔは、ソフトリセット信号ＲＳＴが“１”から“０”に変化したときにも、“１”に維持される（図３（ｄ、ｌ））。信号ｓｅｌ＿ｏｕｔが“１”に維持されるため、“１”から“０”に変化した出力信号ＤＯＵＴは、ソフトリセット信号ＲＳＴが“１”から“０”に変化したときにも、“０”に維持される（図３（ｅ、ｍ））。
【００４７】
また、信号ｓｅｌ＿ｏｕｔおよび信号ｒｅｎｄが“１”および“０”にそれぞれ維持されているため、信号ｓｅｌ＿ｉｎは、ソフトリセット信号ＲＳＴが“１”から“０”に変化したときにも、“１”に維持される（図３（ｎ））。これにより、イネーブル信号ｅｎ１およびデータ信号ｄ１は、ソフトリセット信号ＲＳＴが“１”から“０”に変化したときにも、“１”および“０”にそれぞれ維持される（図３（ｏ、ｐ））。
【００４８】
なお、比較例では、イネーブル信号ｅｎ１およびデータ信号ｄ１は、ソフトリセット信号ＲＳＴが“１”から“０”に変化したとき、“０”および“１”にそれぞれ変化する（図３の破線）。また、比較例では、論理回路２２の出力信号ｑ１（“１”）が後段の論理回路に出力されるため、論理回路２２の初期値（“０”）は、後段の論理回路に出力されない。このため、比較例では、論理回路２２の後段の論理回路等の動作が不安定になる。これに対し、この実施形態では、論理回路２２の初期値（“０”を示す出力信号ＤＯＵＴ）が論理回路２２の後段の論理回路に出力されるため、論理回路２２の後段の論理回路等の動作が不安定になることを防止できる。
【００４９】
次に、時刻Ｔ２に、クロックＣＬＫ１の供給が再開される。このとき、論理回路２２のイネーブル信号ｅｎ１および論理回路２２へのデータ信号ｄ１が“１”および“０”にそれぞれ維持されているため、論理回路２２の出力信号ｑ１は、“１”から“０”に変化する（図３（ｑ））。このように、論理回路２２をリセットするための所定値に信号ｅｎ１、ｄ１が維持されているため、論理回路２２は、クロックＣＬＫ１の供給が再開されたとき、リセットされる。
【００５０】
すなわち、ソフトリセット信号ＲＳＴに基づくリセットタイミング（時刻Ｔ１）で論理回路２２の出力信号ｑ１が初期値（“０”）にリセットされていないとき、出力信号ｑ１が初期値にリセットされるまで、信号ｅｎ１、ｄ１は、所定値に維持される。例えば、入力選択部ＩＳＥＬ２は、ソフトリセット信号ＲＳＴに基づくリセットタイミングで論理回路２２の出力信号ｑ１が初期値にリセットされていないとき、論理回路２２の出力信号ｑ１が初期値にリセットされるまで、所定値を論理回路２２に出力する。
【００５１】
なお、比較例では、イネーブル信号ｅｎ１およびデータ信号ｄ１が“０”および“１”にそれぞれ維持されているため、論理回路２２の出力信号ｑ１は、“１”に維持される（図３の破線）。すなわち、比較例では、論理回路２２は、クロックＣＬＫ１の供給が再開されても、リセットされない。これに対し、この実施形態では、論理回路２２をリセットするための所定値に信号ｅｎ１、ｄ１が維持されているため、クロックＣＬＫ１の供給が再開されたとき、論理回路２２をリセットできる。
【００５２】
また、信号ｒｅｎｄは、信号ｓｅｌ＿ｏｕｔが“１”であるため、出力信号ｑ１が“１”から“０”に変化したことにより、“０”から“１”に変化する（図３（ｒ））。これにより、フリップフロップ回路ＦＦ１のイネーブル信号ｅｎ２は、“０”から“１”に変化する（図３（ｓ））。
【００５３】
信号ｒｅｎｄが“０”から“１”に変化したことにより、信号ｓｅｌ＿ｉｎは、“１”から“０”に変化する（図３（ｔ））。これにより、イネーブル信号ＥＮＩＮおよび入力データＤＡＴＡは、イネーブル信号ｅｎ１およびデータ信号ｄ１として、論理回路２２にそれぞれ入力される。例えば、イネーブル信号ｅｎ１およびデータ信号ｄ１は、“０”および“１”にそれぞれ変化する（図３（ｕ））。
【００５４】
このように、制御部ＣＮＴ２は、出力信号ｑ１が初期値にリセットされた後、イネーブル信号ＥＮＩＮおよび入力データＤＡＴＡが入力選択部ＩＳＥＬ２から論理回路２２に出力されるように入力選択部ＩＳＥＬ２を制御する。これにより、論理回路２２は、クロックＣＬＫ１の供給が再開されたとき、正常に動作できる。
【００５５】
時刻Ｔ３では、ソフトリセット信号ＲＳＴおよびフリップフロップ回路ＦＦ１のイネーブル信号ｅｎ２は、それぞれ“０”および“１”である。このため、フリップフロップ回路ＦＦ１の出力信号ｓｅｌ＿ｏｕｔは、クロックＣＬＫ２の立ち上がりに同期して、“１”から“０”に変化する（図３（ｖ））。これにより、信号ｒｅｎｄは、“１”から“０”に変化する（図３（ｗ））。この結果、フリップフロップ回路ＦＦ１のイネーブル信号ｅｎ２は、“１”から“０”に変化する（図３（ｘ））。このため、“１”から“０”に変化したフリップフロップ回路ＦＦ１の出力信号ｓｅｌ＿ｏｕｔは、“０”に維持される（図３（ｖ、ｙ））。
【００５６】
時刻Ｔ３以降では、信号ｓｅｌ＿ｏｕｔが“０”に維持されているため、論理回路２２の出力信号ｑ１は、出力信号ＤＯＵＴとして、論理回路２２の後段の論理回路に出力される。すなわち、時刻Ｔ３以降では、論理回路２２は、ソフトリセット信号ＲＳＴがアサートされていない通常動作に復帰する。例えば、イネーブル信号ＥＮＩＮが“１”に変化したとき、論理回路２２の出力信号ｑ１は、クロックＣＬＫ１の立ち上がりに同期して、“０”から“１”に変化する（図３（ｚ））。これにより、出力信号ＤＯＵＴは、“０”から“１”に変化する。
【００５７】
このように、制御部ＣＮＴ２は、論理回路２２がクロックＣＬＫ１に同期して動作しているとき、論理回路２２の出力信号ｑ１が出力選択部ＯＳＥＬ２から出力されるように出力選択部ＯＳＥＬ２を制御する。これにより、論理回路２２の後段の論理回路は、クロックＣＬＫ１の供給が再開されたとき、正常に動作できる。
【００５８】
なお、ソフトリセット信号ＲＳＴに基づくリセットタイミング（時刻Ｔ１）より後にクロックＣＬＫ１が停止したときには、論理回路２２の出力信号ｑ１が“０”にリセットされるため、出力信号ＤＯＵＴは、クロックＣＬＫ１の停止前に、“０”に変化する。
【００５９】
図４は、図２に示したリセット回路１２が搭載される半導体装置１００の一例を示している。半導体装置１００は、例えば、リセット回路１２、論理回路２２、ＣＰＵ１１０、クロック制御回路１２０および論理回路１３０、１４０を有している。なお、半導体装置１００の最小構成は、リセット回路１２および論理回路２２である。
【００６０】
ＣＰＵ１１０は、例えば、半導体装置１００の動作を制御する。例えば、ＣＰＵ１１０は、クロック制御回路１２０を制御し、クロックＣＬＫ１の供給や停止を制御する。また、例えば、ＣＰＵ１１０は、ソフトリセット信号ＲＳＴをリセット回路１２に出力し、論理回路２２をリセットするとき、ソフトリセット信号ＲＳＴをアサートする。
【００６１】
クロック制御回路１２０は、例えば、ＣＰＵ１１０の制御に応じて、クロックＣＬＫ１、ＣＬＫ２、ＣＬＫ３、ＣＬＫ４の供給や停止を制御する。例えば、クロック制御回路１２０は、通常動作時に、クロックＣＬＫ１、ＣＬＫ２、ＣＬＫ３、ＣＬＫ４を、論理回路２２、リセット回路１２、論理回路１３０および論理回路１４０にそれぞれ出力する。また、例えば、クロック制御回路１２０は、クロックゲーティングにより消費電力を低減するとき、ＣＰＵ１１０の制御に応じて、論理回路２２に供給するクロックＣＬＫ１を停止する。
【００６２】
論理回路１３０は、論理回路２２の前段の論理回路であり、クロックＣＬＫ３に同期して動作する。例えば、論理回路１３０は、イネーブル信号ＥＮＩＮおよび入力データＤＡＴＡをリセット回路１２に出力する。論理回路１４０は、論理回路２２の後段の論理回路であり、クロックＣＬＫ４に同期して動作する。例えば、論理回路１４０は、出力信号ＤＯＵＴをリセット回路１２から受ける。
【００６３】
以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。例えば、リセット回路１２の出力選択部ＯＳＥＬ２は、クロックＣＬＫ１が停止したときにも、論理回路２２の初期値を、論理回路２２の後段の論理回路１４０にソフトリセット信号ＲＳＴに応答して出力する。これにより、この実施形態では、クロックゲーティング状態で初期化対象の論理回路２２の出力信号ｑ１の値に拘わらず、初期化対象の論理回路２２の初期値を後段の論理回路１４０に出力できる。この結果、この実施形態では、クロックゲーティングにより消費電力を低減しつつ、論理回路１４０等の動作が不安定になることを防止できる。
【００６４】
また、例えば、リセット回路１２の入力選択部ＩＳＥＬ２は、ソフトリセット信号ＲＳＴに基づくリセットタイミングで論理回路２２の出力信号ｑ１が初期値にリセットされていないとき、論理回路２２の出力信号ｑ１が初期値にリセットされるまで、所定値を論理回路２２に出力する。これにより、この実施形態では、クロックＣＬＫ１の供給が再開されたとき、論理回路２２をリセットできる。
【００６５】
図５は、別の実施形態におけるリセット回路１４の一例を示している。上述した実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態のリセット回路１４は、図２に示した制御部ＣＮＴ２の代わりに、制御部ＣＮＴ４を有している。また、入力選択部ＩＳＥＬ２は、出力信号ｓｅｌ＿ｉｎの代わりに、ソフトリセット信号ＲＳＴを受ける。リセット回路１４のその他の構成は、図２−図４で説明した実施形態と同じである。例えば、リセット回路１４は、論理回路２２を含むＬＳＩ等に搭載される。また、この実施形態の半導体装置は、リセット回路１２の代わりにリセット回路１４が設けられることを除いて、図２−図４で説明した実施形態と同じである。
【００６６】
リセット回路１４は、例えば、ソフトリセット信号ＲＳＴ、クロックＣＬＫ２、入力データＤＡＴＡ、イネーブル信号ＥＮＩＮおよび論理回路２２の出力信号ｑ１を受け、出力信号ＤＯＵＴを論理回路２２の後段の論理回路に出力する。例えば、リセット回路１４は、制御部ＣＮＴ４、入力選択部ＩＳＥＬ２および出力選択部ＯＳＥＬ２を有している。リセット回路１４の入力選択部ＩＳＥＬ２の構成および出力選択部ＯＳＥＬ２の構成は、図２に示したリセット回路１２の入力選択部ＩＳＥＬ２および出力選択部ＯＳＥＬ２と同じである。
【００６７】
入力選択部ＩＳＥＬ２は、入力データＤＡＴＡ、イネーブル信号ＥＮＩＮおよびソフトリセット信号ＲＳＴを受け、ソフトリセット信号ＲＳＴに応じて、データ信号ｄ１およびイネーブル信号ｅｎ１を出力する。例えば、入力選択部ＩＳＥＬ２は、ソフトリセット信号ＲＳＴが“１”のときに、論理回路２２をリセットするための所定値（“０”のデータ信号ｄ１および“１”のイネーブル信号ｅｎ１）を論理回路２２に出力する。さらに、入力選択部ＩＳＥＬ２は、例えば、ソフトリセット信号ＲＳＴが“１”のとき、“１”のイネーブル信号ｅｎ１をフリップフロップ回路ＦＦ１のイネーブル端子ＥＮに出力する。
【００６８】
制御部ＣＮＴ４は、例えば、クロックＣＬＫ２およびソフトリセット信号ＲＳＴを受け、出力選択部ＯＳＥＬ２をソフトリセット信号ＲＳＴに基づいて制御する。例えば、制御部ＣＮＴ４は、図２に示した制御部ＣＮＴ２からＡＮＤ回路ＡＮＤ１、ＡＮＤ２、ＡＮＤ３、ＯＲ回路ＯＲ１、ＯＲ２、インバータＩＮＶ１、ＩＮＶ２が省かれている。すなわち、制御部ＣＮＴ４は、フリップフロップ回路ＦＦ１を有している。
【００６９】
フリップフロップ回路ＦＦ１は、ソフトリセット信号ＲＳＴを端子Ｄで受け、ソフトリセット信号ＲＳＴとイネーブル信号ＥＮＩＮとの論理和結果（イネーブル信号ｅｎ１）をイネーブル端子ＥＮで受け、クロックＣＬＫ２を端子ＣＫで受ける。そして、フリップフロップ回路ＦＦ１は、例えば、イネーブル信号ｅｎ１が“１”のとき、クロックＣＬＫ２に同期して、ソフトリセット信号ＲＳＴを出力信号ｓｅｌ＿ｏｕｔとして端子Ｑから出力選択部ＯＳＥＬ２に出力する。
【００７０】
これにより、出力選択部ＯＳＥＬ２は、例えば、ソフトリセット信号ＲＳＴに基づくリセットタイミングより前にクロックＣＬＫ１が停止したときにも、論理回路２２の出力信号ｑ１の初期値をソフトリセット信号ＲＳＴに応答して出力できる。すなわち、論理回路２２の後段の論理回路は、ソフトリセット信号ＲＳＴに基づくリセットタイミングより前にクロックＣＬＫ１が停止したときにも、論理回路２２の初期値をリセット回路１４から受けることができる。
【００７１】
クロックＣＬＫ１の供給が再開したときには、フリップフロップ回路ＦＦ１の出力信号ｓｅｌ＿ｏｕｔは、例えば、論理回路２２を有効にするためのイネーブル信号ＥＮＩＮが“１”に変化することにより、“０”に変化する。これにより、論理回路２２の出力信号ｑ１は、出力信号ＤＯＵＴとして、論理回路２２の後段の論理回路に出力される。
【００７２】
以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。
【００７３】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずであり、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【００７４】
１０、１２、１４‥リセット回路；２０、２２、１３０、１４０‥論理回路；１１０‥ＣＰＵ；１２０‥クロック制御回路；ＣＮＴ、ＣＮＴ２、ＣＮＴ４‥制御部；ＩＳＥＬ、ＩＳＥＬ２‥入力選択部；ＯＳＥＬ、ＯＳＥＬ２‥出力選択部
【図１】
2012182702.tif 000003
【図２】
2012182702.tif 000004
【図３】
2012182702.tif 000005
【図４】
2012182702.tif 000006
【図５】
2012182702.tif 000007