中央演算処理装置(Central Processing Unit、CPU)、記憶装置、I/O回路等を搭載し、SOC(System-On-a-Chip)とも称される半導体装置は、大規模化・微細化が進んでいる。この結果、SOCに搭載されるトランジスタ数が増大すると共に、トランジスタ単体のリーク電力(Leak Power)が増加することによりSOC全体のリーク電力が増加している。また、SOCにおいて、記憶装置の1つであるSRAM(Static Random Access Memory)は、チップ内に占める割合が大きい。SOCの低消費電力化を実現するためにSRAMセルを形成するトランジスタのリーク電力を抑制することにより、SRAMの動作時を停止する時の消費電力を減少させることが好ましい。SRAMセルを形成するトランジスタのリーク電力を抑制するためのSRAMセルの電源回路にスリープモード電圧決定回路を付加する技術が知られている。
図1(a)はスリープモード電圧決定回路付のSRAMの回路図であり、図1(b)は図1(a)に示すSRAMセルのスリープモードにおける問題を説明する図である。
SRAM101は、複数のSRAMセル10と、スリープモード電圧決定回路91とを有する。SRAMセル10は、第1駆動トランジスタ11と、第2駆動トランジスタ12と、第1負荷トランジスタ13と、第2負荷トランジスタ14と、第1転送トランジスタ15と、第2転送トランジスタ16とを有する。第1駆動トランジスタ11及び第2駆動トランジスタ12のソースはスリープモード電圧決定回路91に接続され、第1負荷トランジスタ13及び第2負荷トランジスタ14のソースは第1電源電圧VDDに接続される。第1駆動トランジスタ11、第2駆動トランジスタ12、第1負荷トランジスタ13及び第2負荷トランジスタ14は、データを記憶するラッチ回路17を形成する。第1転送トランジスタ15及び第2転送トランジスタ16のそれぞれは、ワード線WLに印加される電圧に応じてオンオフする。SRAMセル10は、ワード線WLに印加される電圧に応じて第1転送トランジスタ15及び第2転送トランジスタ16をオンオフして、ビット線BL及びBLXに印加されたデータをラッチ回路17に書き込む。また、SRAMセル10は、ワード線WLに印加される電圧に応じて第1転送トランジスタ15及び第2転送トランジスタ16をオンオフして、ラッチ回路17に記憶されたデータをビット線BL及びBLXに読み出す。
スリープモード電圧決定回路91は、第1抵抗トランジスタ911と、第2抵抗トランジスタ912とを有する。第1抵抗トランジスタ911は、ゲート及びドレインが第2電源電圧MVSSに接続されたnMOSトランジスタであり、SRAMセル10に第1電源電圧VDDが印加されているときにオン状態となる。第2抵抗トランジスタ912は、ゲートに入力されるスリープ信号SLPの信号レベルがLレベルのときオフし、スリープ信号SLPの信号レベルがHレベルのときオンする。
SRAMセル10に記憶されたデータへのアクセス可能なアクティブモードでは、SRAM101は、スリープ信号SLPの信号レベルをHレベルとして第2抵抗トランジスタ912をオンする。一方、SRAMセル10に記憶されたデータへのアクセスを禁止するスリープモードでは、SRAM101は、スリープ信号SLPの信号レベルをLレベルとして第2抵抗トランジスタ912をオフする。第2抵抗トランジスタ912をオフすることにより、SRAMセル10は、スリープモードにおける第2電源電圧MVSSの信号レベルをアクティブモードにおける第2電源電圧MVSSの信号レベルよりも高くする。第2電源電圧MVSSの信号レベルを高くすると、第1電源電圧VDDと第2電源電圧MVSSとの電圧差であるラッチ回路17の電源電圧は小さくなる。SRAMセル101は、スリープモードにおいて第2電源電圧MVSSの信号レベルを高くして、SRAMセル101に印加される電源電圧は小さくことで、SRAMセル101を形成するトランジスタそれぞれのリーク電力を抑制することができる。
スリープモードにおいて第2電源電圧MVSSの信号レベルを高くすることにより、スリープモードにおけるSRAMセル10のリーク電力を抑制することができる。しかしながら、第2電源電圧MVSSの信号レベルが高くなり過ぎると、SRAMセル10のラッチ回路17に記憶されているデータが反転して破壊されるおそれがある。SRAMセル10が記憶されたデータを保持する保持特性は、プロセス条件、温度条件及び電源電圧条件(PTV条件)に依存するので、PTV条件がワーストケースの場合でも記憶されたデータを保持するように第2電源電圧MVSSの値が設定される。しかしながら、PCT条件がワーストケースになる場合は少なく、多くの場合は第2電源電圧MVSSを上げてもSRAMセル10が記憶したデータは保持される。すなわち、PTV条件がワーストケースの場合を基準にスリープモード時の第2電源電圧MVSSを設定すると、リーク電力を抑制するために第2電源電圧MVSSをより高い値にすることができる余地を多く残す可能性が高い。
製造条件のバラツキに基づいてスリープモード時の第2電源電圧MVSSを設定するために、半導体装置の出荷試験時にモニタ回路を測定することによりスリープモード時の第2電源電圧MVSSを設定する技術が知られている。この技術によれば、半導体装置の出荷試験時にスリープモード時の第2電源電圧MVSSの最適値をチップ毎に設定し、eFuse等の不揮発素子により設定された最適値を保持する。しかしながら、この技術では、出荷試験時間が増加して試験コストが増加する、出荷試験時の電圧に対してのみ最適化するので実際の使用時に印加された電圧に対して最適値に一致するとは限らない、温度条件の変化が考慮されない、という問題がある。これらの問題を解決するために、半導体装置の電源がオンするときにパワーオンリセットにより、スリープモード時の第2電源電圧MVSSを設定するSRAMが知られている。
図2(a)は、パワーオンリセットによりスリープモード時の第2電源電圧MVSSを設定するSRAMの回路図である。図2(b)は図2(a)に示す第1レプリカメモリセルの回路図であり、図2(c)は図2(a)に示す第2レプリカメモリセルの回路図である。
SRAM102は、複数のSRAMセル10と、スリープモード電圧決定回路92と、第1モニタ回路93と、第2モニタ回路94とを有する。SRAMセル10の構成及び機能は、図1(a)を参照して説明したので、ここでは詳細な説明は省略する。
スリープモード電圧決定回路92は、第1抵抗回路921と、第2抵抗回路922と、第3抵抗回路とを有する。第1抵抗回路921〜第3抵抗回路923のそれぞれは、一対のnMOSトランジスタを有する。第1抵抗回路921の一方のnMOSトランジスタは、ゲートが第1電源電圧VDDに接続され且つドレインが第2電源電圧MVSSに接続される。また、第1抵抗回路921の他方のnMOSトランジスタは、ゲートが一方のnMOSトランジスタのソースにゲートが接続され、ソースが接地され、ドレインが第2電源電圧MVSSに接続される。第2抵抗回路922は、一方のnMOSトランジスタのゲートが第1モニタ回路93に接続されることが第1抵抗回路921と相違する。第2抵抗回路922は、第1モニタ回路93から入力される信号レベルがLレベルのときオフし、入力される信号の信号レベルがHレベルのときオンする。第3抵抗回路923は、一方のnMOSトランジスタのゲートが第2モニタ回路94に接続されることが第1抵抗回路921と相違する。第3抵抗回路923は、第2モニタ回路94から入力される信号レベルがLレベルのときオフし、入力される信号の信号レベルがHレベルのときオンする。
第1モニタ回路93は並列接続されたN個の第1レプリカメモリセル931を有し、第2モニタ回路94は並列接続されたN個の第2レプリカメモリセル941を有する。第1レプリカメモリセル931は、ラッチ回路932と、第1転送トランジスタ933と、第2転送トランジスタ934とを有する。第2レプリカメモリセル941は、ラッチ回路942と、第1転送トランジスタ943と、第2転送トランジスタ944とを有する。
N個の第1レプリカメモリセル931のそれぞれの第1転送トランジスタ933及び第2転送トランジスタ934のゲートにパワーオンリセット信号PORが入力される。また、N個の第2レプリカメモリセル941のそれぞれの第1転送トランジスタ943及び第2転送トランジスタ944のゲートにパワーオンリセット信号PORが入力される。第1レプリカメモリセル931のラッチ回路932の第2電源電圧VSS1は、第2レプリカメモリセル941のラッチ回路942の第2電源電圧VSS2よりも高くなっている。
パワーオンリセット信号PORの信号レベルをHレベルにすると、第1モニタ回路93及び第2モニタ回路94のそれぞれのラッチ回路932及び933のラッチ回路は、信号レベルがLレベルであるデータが書き込まれる。N個の第1レプリカメモリセル931の何れかのラッチ回路932に書き込まれたデータが反転すると、第1モニタ回路93の出力信号MO1の信号レベルはHレベルになり、第2抵抗回路922の一対のnMOSトランジスタは共にオンする。同様に、N個の第2レプリカメモリセル941の何れかのラッチ回路942に書き込まれたデータが反転すると、第2モニタ回路94の出力信号MO2の信号レベルはHレベルになり、第3抵抗回路923の一対のnMOSトランジスタは共にオンする。
SRAM102では、電源投入時にパワーオンリセット信号PORに基づいて、SRAMセル10のデータ保持特性を保証し且つより高い電圧となるようにスリープモード時のSRAMセルの第2電源電圧MVSSを設定する。このため、SRAM102では、スリープモード時のデータ保持特性を保証しながらもSRAMセル10におけるリーク電力を抑制することが可能になる。
以下図面を参照して、半導体装置について説明する。但し、本発明の技術的範囲はそれらの実施の形態に限定されず、特許請求の範囲に記載された発明との均等物に及ぶ点に留意されたい。
実施形態に係る半導体装置は、データへのアクセス可能なアクティブモードと、データへのアクセスを禁止するスリープモードの2つのモードに切り替え可能な複数のSRAMセルを有するSRAMを有する。スリープモードにおけるSRAMセルの電源電圧は、タイマ回路が検知した所定の周期で定期的にモニタ回路により設定される。実施形態に係る半導体装置では、スリープモードにおけるSRAMセルの電源電圧は、定期的にモニタ回路により設定されるので、PVT条件が変動した場合でも、データ保持特性を保証し且つリーク電力を抑制する電圧に維持できる。
図3は、第1実施形態に係る半導体装置の回路ブロック図である。
半導体装置1は、CPU2と、ロジック回路3と、ROM4と、SRAM5と、モニタ回路6と、I/O回路7と、バス8とを有する。CPU2は、ROM4に記憶されているプログラム等に応じて適切な手順で種々の処理を実行する演算回路である。ロジック回路3は、CPU2からの指令に基づいてROM4及びSRAM5に記憶されたデータに所定の処理を実行する論理回路であり、ROM4はCPU2が使用するプログラム等の所定の情報が記憶された記憶された記憶装置である。SRAM5は、複数のSRAMセル10が行列状に配列された記憶装置である。SRAM5は、CPU10からの指示に基づいて、記憶されたデータへのアクセス可能なアクティブモードと記憶されたデータへのアクセスを禁止するスリープモードの2つのモードに切り替え可能である。モニタ回路6は、所定の周期毎にスリープモードにおける前記SRAMセルの電源電圧を設定する。I/O回路7は、CPU2からの指示に基づいて、ROM4及びSRAM5に記憶された情報をバス8を介して取得して外部装置に出力すると共に、外部装置から入力された情報をバス8を介してSRAM5に提供する。バス8は、CPU2、ロジック回路3、ROM4、SRAM5、モニタ回路6及びI/O回路7を接続する。
図4は、SRAM5及びモニタ回路6の内部回路ブロック図である。
SRAM5は、複数のSRAMセル10と、モニタ回路6から入力されるモニタ信号MNT[3:0]に応じてSRAMセル10の第2電源VSSの電圧を設定するスリープモード電圧決定回路20とを有する。複数のSRAMセル10の構成及び機能は、図1(a)を参照して説明したので、ここでは詳細な説明は省略する。
スリープモード電圧決定回路20は、アクティブモードトランジスタ21と、4つのスリープモード抵抗回路22とを有する。アクティブモードトランジスタ21は、オン抵抗が小さいnMOSトランジスタであり、CPU2からアクティブモードの設定を指示する入力されたときにオンして、第2電源VSSを接地レベルに略等しくする。アクティブモードトランジスタ21は、CPU2からスリープモードの設定を指示する入力されたときにオフする。4つのスリープモード抵抗回路22のそれぞれは、双方がnMOSトランジスタである、抵抗トランジスタ23と、スイッチングトランジスタ24とを有する。抵抗トランジスタは、ゲート及びドレインが第2電源電圧MVSSに接続され且つソースがスイッチングトランジスタ24に接続される。スイッチングトランジスタ24は、ゲートがモニタ回路6に接続され且つソースが接地される。第2電源電圧MVSSは、アクティブモードトランジスタ21がオフするスリープモード時には、モニタ回路6から入力されるモニタ信号MNT[3:0]に応じて設定される。第2電源電圧MVSSは、モニタ信号MNT[3:0]において信号レベルがLレベルであるビット数が増加してオフするスイッチングトランジスタ24の数が増加するに従って、高くなる。
モニタ回路6は、タイマ回路30と、リングオシレータ40と、設定回路50とを有する。タイマ回路30は、パワーオンリセット信号PORを受信したときに設定指示信号TMOをリングオシレータ40及び設定回路50に出力する。また、タイマ回路30は、半導体装置1の動作中に所定の周期毎に定期的に設定指示信号TMOをリングオシレータ40及び設定回路50に出力する。リングオシレータ40は、設定指示信号TMOがタイマ回路30から入力され且つ発振イネーブル信号RENが設定回路50から入力されている間、クロック信号RCKを設定回路50に出力する。設定回路50は、設定指示信号TMOが入力されている間、クロック信号RCKに応じてSRAMセル10と同様の構造を有するモニタセルの第2電源電圧を調整して、スリープモードにおけるSRAMセル10の第2電圧電圧MVSSを決定する。設定回路50は、決定した第2電圧電圧を示すモニタ信号MNT[3:0]をSRAMセル10に出力して、スリープモード時のSRAMセル10の第2電圧電圧MVSSを設定する。
図5(a)はタイマ回路30の内部回路ブロック図であり、図5(b)はタイマ回路30の動作を示すタイミングチャートであり、図6はモニタ回路6のより詳細な内部回路ブロック図である。
タイマ回路30は、POR遅延回路31と、POR−AND素子32と、N個のフリップフロップ33と、N個の反転素子34と、発振イネーブル遅延回路35と、定期モニタAND素子36と、設定指示信号生成OR素子37とを有する。タイマ回路30は、パワーオンリセット信号PORの信号レベルがHレベルになると、POR遅延回路31により規定される遅延時間が経過した後に、設定回路50に第2電源電圧MVSSを設定する処理を開始させる。以降、タイマ回路30は、SRAM5がアクティブモード又はスリープモードの何れかであるかにかかわらず、所定の周期毎に定期的に設定回路50に第2電源電圧MVSSを設定する処理を開始させる。
POR遅延回路31は、直列接続された複数のバッファ素子により形成され、パワーオンリセット信号PORを所定の時間遅延させる。POR−AND素子32は、パワーオンリセット信号PORと、POR遅延回路31で遅延されたパワーオンリセット信号PORとが入力される。POR−AND素子32の出力信号の信号レベルは、パワーオンリセット信号PORの信号レベルがLレベルからHレベルに遷移すると、POR遅延回路31で規定される遅延時間が経過した後に、LレベルからHレベルに遷移する。
N個のフリップフロップ33及びN個の反転素子34は、所定の周期毎に信号レベルを遷移させる分周回路38を形成する。例えば、分周回路38に入力されるシステムクロック信号CLKの周波数が100MHzであり且つNが28であると、分周回路38は、約2.7秒間隔で約1.35秒間に亘って、信号レベルがHレベルの出力信号を定期的に出力することができる。
発振イネーブル遅延回路35は、直列接続された複数のバッファ素子により形成され、発振イネーブル信号RENを所定の時間遅延させる。定期モニタAND素子36は、分周回路38の出力信号と、発振イネーブル遅延回路35で遅延された発振イネーブル信号RENとが入力される。定期モニタAND素子36の出力信号は、発振イネーブル遅延回路35で遅延された発振イネーブル信号RENの信号レベルがHレベルのときに、分周回路38の出力信号の遷移に応じて遷移する。
設定指示信号生成OR素子37は、パワーオンリセット信号PORの出力信号と、定期モニタAND素子36の出力信号とが入力される。設定指示信号生成OR素子37の出力信号の信号レベルは、パワーオンリセット信号PORの出力信号の信号レベルがHレベルの間、Hレベルになる。すなわち、パワーオンリセット信号PORの出力信号の信号レベルは、パワーオンリセット信号PORの信号レベルがHレベルになってからPOR遅延回路31で規定される遅延時間の経過後にHレベルになる。また、設定指示信号生成OR素子37の出力信号の信号レベルは、定期モニタAND素子36の出力信号の信号レベルがHレベルの間、Hレベルになる。すなわち、設定指示信号生成OR素子37の出力信号の信号レベルは、遅延された発振イネーブル信号RENの信号レベルがHレベルのときに分周回路38の出力信号の信号レベルがHレベルのときにHレベルになる。また、設定指示信号生成OR素子37の出力信号の信号レベルは、発振イネーブル信号RENの信号レベルがLレベルに遷移すると、発振イネーブル遅延回路35で規定された遅延時間が経過した後に、Lレベルに遷移する。
図5(b)において、矢印Aで示される時点で、パワーオンリセット信号PORの信号レベルがHレベルに遷移したあと、矢印Bで示されるPOR遅延回路31の遅延期間の経過後、設定指示信号TMOの信号レベルはHレベルに遷移する。そして、矢印Dで示される時点で、発振イネーブル信号RENの信号レベルがHレベルに遷移した後、矢印Eで示される発振イネーブル遅延回路35の遅延期間の経過後、矢印Fで示される時点で、設定指示信号TMOの信号レベルはLレベルに遷移する。矢印Gで示される時点で、分周回路38のシステムクロック信号CLKが立上り遷移すると、設定指示信号TMOの信号レベルはHレベルに遷移する。分周回路38を形成するフリップフロップ33のそれぞれは、分周比に応じて所定の周期毎に定期的に信号レベルを遷移させる。
リングオシレータ40は、3入力NAND素子41と、直列接続された偶数個の遅延インバータ素子42と、出力インバータ素子43とを有する。3入力NAND素子41は、最終段の遅延インバータ素子42の出力信号と、タイマ回路30から出力される設定指示信号TMO及び設定回路50から出力される発振イネーブル信号RENとが入力される。リングオシレータ40は、設定指示信号TMO及び発振イネーブル信号RENの信号レベルがHレベルのときに発振する。リングオシレータ40が発振している間、出力インバータ素子43は、発振周期に応じた周期でクロック信号RCKを設定回路50に出力する。設定指示信号TMO又は発振イネーブル信号RENの信号レベルがLレベルになると、リングオシレータ40は発振を停止する。
設定回路50は、M個のモニタセル60と、モニタインタフェース回路61と、制御回路70と、電圧調整回路80とを有する。
M個のモニタセル60は、第1出力トランジスタ18及び第2出力トランジスタ19を有することが、SRAMセル10と相違する。M個のモニタセル60の第1駆動トランジスタ11〜第2転送トランジスタ16のそれぞれのトランジスタサイズは、SRAMセル10の第1駆動トランジスタ11〜第2転送トランジスタ16のそれぞれのトランジスタサイズと等しい。また、第1駆動トランジスタ11〜第2転送トランジスタ16のそれぞれの構成及び機能は、図1(a)を参照して説明したので、ここでは詳細な説明は省略する。第1出力トランジスタ18は、ゲートが第1転送トランジスタ15とラッチ回路17との接続部に接続され、ソースは接地され、ドレインが第2出力トランジスタ19のソースに接続される。第2出力トランジスタ19のゲートは設定指示信号TMOが入力され、ドレインはモニタインタフェース回路61を介して制御回路70に接続される。
モニタインタフェース回路61は、設定指示信号TMOの信号レベル及びM個のモニタセル60に記憶されたデータの何れか1つが反転するか否かに応じた信号を制御回路70に出力する。モニタインタフェース回路61は、設定指示信号TMOの信号レベルがLレベルのとき、M個のモニタセル60のそれぞれの第1転送トランジスタ15及び第2転送トランジスタ16をオンして、Lレベルのデータをラッチ回路17に書き込む。このとき、モニタインタフェース回路61は、信号レベルがHレベルであるチェック信号CHKを制御回路70に出力する。一方、設定指示信号TMOの信号レベルがHレベルのとき、モニタインタフェース回路61は、M個のモニタセル60のそれぞれの第1転送トランジスタ15及び第2転送トランジスタ16をオフする。このとき、モニタインタフェース回路61は、M個のモニタセル60に記憶されたデータの何れか1つが反転するまで、信号レベルがLレベルであるチェック信号CHKを制御回路70に出力する。M個のモニタセル60に記憶されたデータの何れか1つが反転すると、モニタインタフェース回路61は、チェック信号CHKの信号レベルをHレベルでに遷移する。
制御回路70は、第1フリップフロップ71〜第5フリップフロップ75と、第6フリップフロップ76〜第9フリップフロップ79とを有する。第1フリップフロップ71〜第5フリップフロップ75は、直列接続されてシフトレジスタを形成する。第6フリップフロップ76〜第9フリップフロップ79は、第1フリップフロップ71〜第4フリップフロップ74の出力信号を設定指示信号TMOの遷移に応じて、モニタ信号MNT[3:0]として出力する出力回路を形成する。
第1フリップフロップ71はリセット端子付きのフリップフロップであり、第2フリップフロップ72〜第5フリップフロップ75のそれぞれはセット端子付きのフリップフロップである。第1フリップフロップ71のリセット端子及び第2フリップフロップ72〜第5フリップフロップ75のセット端子は、設定指示信号TMOの反転信号がモニタインタフェース回路61を介して入力される。すなわち、設定指示信号TMOの信号レベルがLレベルのとき、第1フリップフロップ71は信号レベルがLレベルである信号を出力し、第2フリップフロップ72〜第5フリップフロップ75のそれぞれは信号レベルがHレベルである信号を出力する。第1フリップフロップ71のデータ端子は、チェック信号CHKが入力される。第1フリップフロップ71のデータ端子は、設定指示信号TMOの信号レベルがHレベルの間、M個のモニタセル60に記憶されたデータの何れか1つが反転するまで、クロック信号RCKの立上がり遷移に応じて信号レベルがLレベルの信号が入力される。第1フリップフロップ71のデータ端子は、M個のモニタセル60に記憶されたデータの何れか1つが反転すると、クロック信号RCKの立上がり遷移に応じて信号レベルがHレベルの信号が入力される。
第2フリップフロップ72〜第4フリップフロップ74の出力信号は、第2フリップフロップ72の出力信号をLSBとし且つ第4フリップフロップ74の出力信号をMSBとするコード信号Code[2:0]として電圧調整回路80に出力される。設定指示信号TMOの信号レベルがLレベルのとき、コード信号Code[2:0]は全てがHレベルの信号(111)として出力される。次いで、クロック信号RCKが立上がり遷移し且つM個のモニタセル60に記憶されたデータの何れも反転しない場合、コード信号Code[2:0]は(110)となる。以降、M個のモニタセル60に記憶されたデータの何れも反転しない場合、クロック信号RCKの立上がり遷移に応じて、コード信号Code[2:0]は、(100)、(000)と変化する。
発振イネーブル信号RENは、第1フリップフロップ71の出力信号の反転信号及び第5フリップフロップ75の出力信号の論理積から生成される。すなわち、発振イネーブル信号RENは、第1フリップフロップ71が信号レベルがLレベルである信号を出力し且つ第5フリップフロップ75が信号レベルがHレベルである信号を出力するとき、Hレベルとなる。
第6フリップフロップ76〜第9フリップフロップ79のそれぞれは、設定指示信号TMOの反転信号であるクロック信号の立上り遷移に応じて、信号をラッチする。第6フリップフロップ76は第2フリップフロップ72の出力信号をラッチし、第7フリップフロップ77は第3フリップフロップ73の出力信号をラッチする。第8フリップフロップ78は第4フリップフロップ74の出力信号をラッチし、第9フリップフロップ79は第1フリップフロップ71の出力信号をラッチする。第6フリップフロップ76の出力信号をLMBし且つ第9フリップフロップ79の出力信号をMSBとする4ビットのモニタ出力信号Q[3:0]は、コード信号Code[2:0]にMSBとしてHレベル「1」を付加した信号として出力される。すなわち、コード信号Code[2:0]が(000)のとき、モニタ出力信号Q[3:0]は(1000)となり、コード信号Code[2:0]が(100)のとき、モニタ出力信号Q[3:0]は(1100)となる。また、コード信号Code[2:0]が(110)のとき、モニタ出力信号Q[3:0]は(1110)となり、コード信号Code[2:0]が(111)のとき、モニタ出力信号Q[3:0]は(1111)となる。
電圧調整回路80は、第1抵抗トランジスタ81〜第4抵抗トランジスタ84と、第1スイッチングトランジスタ85〜第4スイッチングトランジスタ88とを有する。第1抵抗トランジスタ81〜第4抵抗トランジスタ84及び第1スイッチングトランジスタ85〜第4スイッチングトランジスタ88のそれぞれは、nMOSトランジスタである。第1抵抗トランジスタ81〜第4抵抗トランジスタ84のトランジスタサイズは互いに等しい。第1抵抗トランジスタ81〜第4抵抗トランジスタ84のそれぞれのゲート及びドレインは第2電源電圧MVSSに接続される。また、第1抵抗トランジスタ81のソースは第1スイッチングトランジスタ85のドレインに接続され、第2抵抗トランジスタ82のソースは第2スイッチングトランジスタ86のドレインに接続される。第3抵抗トランジスタ83のソースは第3スイッチングトランジスタ87のドレインに接続され、第4抵抗トランジスタ84のソースは第4スイッチングトランジスタ88のドレインに接続される。第1スイッチングトランジスタ85のゲートは第1電源電圧VDDに接続され、第2スイッチングトランジスタ86のゲートは第2フリップフロップ72の出力端子に接続される。第3スイッチングトランジスタ87のゲートは第3フリップフロップ73の出力端子に接続され、第4スイッチングトランジスタ88のゲートは第4フリップフロップ74の出力端子に接続される。すなわち、第2スイッチングトランジスタ86〜第4スイッチングトランジスタ88のゲートは、コード信号Code[2:0]が入力される。第1スイッチングトランジスタ85〜第4スイッチングトランジスタ88のソースは接地される。
電圧調整回路80は、入力されるコード信号Code[2:0]に応じて第2電源圧VSSを変化させる。コード信号Code[2:0]が(111)のとき、第2スイッチングトランジスタ86〜第4スイッチングトランジスタ88がオンして、第1抵抗トランジスタ81〜第4抵抗トランジスタ84の4つが第2電源電圧MVSSと接地との間に並列接続される。コード信号Code[2:0]が(110)のとき、第2スイッチングトランジスタ86がオフするので、第2抵抗トランジスタ82を除く3つの抵抗トランジスタが並列接続される。コード信号Code[2:0]が(100)のとき、第3スイッチングトランジスタ87が更にオフするので、第1抵抗トランジスタ81及び第4抵抗トランジスタ84の2つの抵抗トランジスタが並列接続される。そして、コード信号Code[2:0]が(000)のとき、第4スイッチングトランジスタ88が更にオフするので、第1抵抗トランジスタ81のみが第2電源電圧MVSSと接地との間を接続する。コード信号Code[2:0]が(111)〜(000)に変化するに従って、第2電源電圧MVSSと接地との間に並列接続される抵抗トランジスタの数が減少するので、第2電源電圧MVSSは順次上昇する。コード信号Code[2:0]が(111)〜(000)に変化するに従って、第2電源電圧MVSSが順次上昇することにより、モニタセル60のラッチ回路17に印加される電源電圧の大きさは順次小さくなる。
図7は、モニタ回路6の動作の一例を示すタイミングチャートである。
まず、半導体装置1が起動すると、双方向矢印Aで示される所定の期間の間、設定指示信号TMOの信号レベルはLレベルになる。この期間の間に、M個のモニタセル60にLレベルのデータが記憶される。次いで、矢印Bで示す時点において、パワーオンリセット信号PORの信号レベルがHレベルになる。次いで、POR遅延回路31で規定された遅延期間が経過した後の矢印Cで示す時点で、設定指示信号TMOの信号レベルがHレベルになり、設定回路50は、SRAMセル10の第2電源電圧MVSSを設定する処理を開始する。以降、制御回路70は、クロック信号RCKの立上りエッジに応じて、コード信号Code[2:0]を(111)、(110)、(100)、(000)と順次変化させる。電圧調整回路80は、コード信号Code[2:0]が(111)から(000)までえ変化することに応じて第1スイッチングトランジスタ85〜第4スイッチングトランジスタ88を順次オフして第2電源電圧MVSSを徐々に上昇させる。第2電源電圧MVSSが徐々に上昇に従って、モニタセル60のラッチ回路17に印加される電源電圧は徐々に小さくなる。
矢印Dで示す時点において、コード信号Code[2:0]が(000)のときにM個のモニタセル60に記憶されたデータの何れか1つが反転することに応じて、チェック信号CHKの信号レベルがLレベルからHレベルに遷移する。次いで、クロック信号RCKが立上り遷移すると、第1フリップフロップ71がHレベルの出力信号の信号レベルがHレベルに遷移することにより、発振イネーブル信号の信号レベルがLレベルに遷移する。次いで、発振イネーブル遅延回路35で規定される遅延期間が経過した後の矢印Eで示す時点で、設定指示信号TMOの信号レベルがLレベルになり、設定回路50によるSRAMセル10の第2電源電圧MVSSを設定する処理が終了する。
設定指示信号TMOの信号レベルがLレベルになることに応じて、モニタ信号MNT[3:0]は(1000)になる。また、設定指示信号TMOの信号レベルがLレベルになることに応じて、発振イネーブル信号RENの信号レベルはHレベルになると共に、コード信号Code[2:0]は(111)になる。また、設定指示信号TMOの信号レベルがLレベルになることに応じて、M個のモニタセル60にLレベルのデータが記憶される。
次いで、矢印Fで示す時点において、システムクロック信号CLKが立上り遷移すると、設定指示信号TMOの信号レベルがHレベルになり、設定回路50は、SRAMセル10の第2電源電圧MVSSを設定する処理を開始する。以降、制御回路70は、クロック信号RCKの立上りエッジに応じて、コード信号Code[2:0]を(111)、(110)、(100)と順次変化させる。矢印Gで示す時点において、コード信号Code[2:0]が(100)のときにM個のモニタセル60に記憶されたデータの何れか1つが反転することに応じて、チェック信号CHKの信号レベルがLレベルからHレベルに遷移する。そして、発振イネーブル遅延回路35で規定される遅延期間が経過した後の矢印Hで示す時点で、設定指示信号TMOの信号レベルがLレベルになり、設定回路50によるSRAMセル10の第2電源電圧MVSSを設定する処理が終了する。以降、所定の周期毎に定期的に設定指示信号TMOの信号レベルがHレベルに遷移することに応じて、設定回路50によるSRAMセル10の第2電源電圧MVSSを設定する処理を定期的に繰り返す。
図8(a)は、図1を参照して説明したSRAM101において、温度条件及び電源電圧条件が変動したときの第2電源電圧MVSSの変動を示す図である。図8(b)は、実施形態に係るSRAM5において、温度条件及び電源電圧条件が変動したときの第2電源電圧MVSSの変動を示す図である。図8(a)において、波形801は第1電源電圧を示し、波形802は温度条件及び電源電圧条件により設定可能な第2電源電圧MVSSを示し、波形803はSRAM101において設定される第2電源電圧MVSSを示し、波形804は接地電圧を示す。図8(b)において、波形811は第1電源電圧を示し、波形812は温度条件及び電源電圧条件の変動により設定可能な第2電源電圧MVSSを示し、波形813はSRAM5において設定される第2電源電圧MVSSを示し、波形814は接地電圧を示す。
SRAM101では、PTV条件がワーストケースにおいて動作可能なような電圧になるようにスリープモード電圧決定回路91が設計されるため、温度条件及び電源電圧条件が変動した場合でも第2電源電圧MVSSが理想的な電圧に設定されない。一方、SRAM5では、モニタ回路6が所定の周期毎にスリープモードにおける前記SRAMセルの電源電圧を設定するので、温度条件及び電源電圧条件が変動した場合に、第2電源電圧MVSSを理想的な電圧に近い電圧に設定できる。
図9は、第2実施形態に係る半導体装置の回路ブロック図である。
半導体装置100は、モニタ回路6の代わりにモニタ回路9が配置されることが第1実施形態に係る半導体装置1と相違する。また、半導体装置100は、電源供給回路110が配置されることが半導体装置1と相違する。CPU2、ロジック回路3、ROM4と、SRAM5、I/O回路7及びバス8の構成及び機能は、図3を参照して説明したので、ここでは詳細な説明は省略する。
半導体装置100は、電源供給回路110を有することにより、外部から指示される動作周波数(以下、指示周波数と称す)に応じて電源電圧を制御する動的電圧・周波数制御(Dynamic Voltage and Frequency Scaling、DVFS)を実行する。
図10は、電源供給回路110の内部回路ブロック図である。
電源供給回路110は、入力信号生成回路111と、レプリカ回路112と、遅延決定回路113と、電圧決定回路114と、電圧発生回路115とを有する。
入力信号生成回路111は、レプリカ回路112への入力信号を生成する。ここで、入力信号生成回路111によって生成される入力信号は、例えば、外部から指示される動作周波数で信号レベルを周期的に遷移させるクロック信号である。レプリカ回路112は、入力信号を所定の遅延時間で遅らせた遅延信号を出力する。遅延決定回路113は、入力信号生成回路111から入力される入力信号と、レプリカ回路112から入力される遅延信号とからレプリカ回路112の出力信号の遅延時間を決定する。
電圧決定回路114は、遅延決定回路113が決定した遅延時間が所望の遅延時間が長いか否かに応じて、電圧発生回路115が発生する電圧を決定する。電圧決定回路114は、遅延決定回路113が決定した遅延時間が所望の遅延時間が長いとき、電圧発生回路115が発生する電圧を上昇させる。電圧決定回路114は、遅延決定回路113が決定した遅延時間が所望の遅延時間が短いとき、電圧発生回路115が発生する電圧を下降させる。また、電圧決定回路114は、遅延決定回路113が決定した遅延時間が所望の遅延時間に一致したとき、信号レベルがHレベルの設定完了信号Vcompleteをモニタ回路9に出力して、電源電圧の設定が完了したことを示す。そして、電圧発生回路115は、電圧決定回路114が決定した電圧をロジック回路3、SRAM5及びレプリカ回路112に印加する。電圧決定回路114は、所定の期間が経過した後、設定完了信号Vcompleteの信号レベルをHレベルを遷移する。
電源供給回路110は、レプリカ回路112の遅延時間が所望の遅延時間に一致するまで、レプリカ回路112に印加する電源電圧を調整することによって、指示周波数に応じてロジック回路3及びSRAM5に印加する電源電圧を変更する。
図11(a)はSRAM5に接続されたモニタ回路9の内部回路ブロック図であり、図11(b)はモニタ回路9の動作を示すタイミングチャートである。
モニタ回路9は、第1マルチプレクサ121及び第2マルチプレクサ122を有することが第1実施形態に係るモニタ回路6と相違する。タイマ回路30、リングオシレータ40及び設定回路50の構成及び機能は、図6等を参照して説明したので、ここでは詳細な説明は省略する。
第1マルチプレクサ121は、CPU2から入力される電圧制御信号Vcntの信号レベルに応じて、タイマ回路30から入力される設定指示信号TMOと、電源供給回路110から入力される設定完了信号Vcompleteとの何れかを選択的に出力する。第1マルチプレクサ121は、電圧制御信号Vcntの信号レベルがLレベルのとき、設定指示信号TMOを出力し、電圧制御信号Vcntの信号レベルがHレベルのとき、電圧制御信号Vcntを出力する。第2マルチプレクサ122は、電圧制御信号Vcntの信号レベルに応じて、設定回路50から入力されるモニタ信号MNT[3:0]と、4ビットの信号(1111)との何れかを選択的に出力する。第2マルチプレクサ122は、電圧制御信号Vcntの信号レベルがLレベルのとき、モニタ信号MNT[3:0]を出力し、電圧制御信号Vcntの信号レベルがHレベルのとき、4ビットの信号(1111)を出力する。
図11(b)において、矢印Aで示される時点で、CPU2から入力される電圧制御信号Vcntの信号レベルがHレベルに遷移すると、モニタ回路9は、SRAM5の第2電源電圧MVSSを設定する処理を開始する。矢印Aで示される時点から、電源供給回路110は、DVFSを開始し、矢印Bで示される期間が経過した後に、設定完了信号Vcompleteの信号レベルをLレベルからHレベルに遷移して、電源電圧の設定が完了したことを示す。次いで、矢印Cで示される時点で、設定回路50は、SRAM5の第2電源電圧MVSSを設定する処理を開始する。以降、設定回路50は、図7に示すタイミングチャートと同様な処理を実行して、第2電源電圧MVSSを設定する処理を実行する。次いで、矢印Dで示す時点で、設定完了信号Vcompleteの信号レベルがLレベルになり、設定回路50によるSRAM5の第2電源電圧MVSSを設定する処理が終了する。そして、矢印Eで示す時点で、CPU2から入力される電圧制御信号Vcntの信号レベルがLレベルに遷移すると、設定回路50が設定したモニタ出力信号MNT[3:0]がSRAM5に出力される。以降、所定の周期毎に設定指示信号TMOの信号レベルがHレベルに遷移することに応じて、設定回路50によるSRAMセル10の第2電源電圧MVSSを設定する処理を定期的に繰り返す。
図12は、図1を参照して説明したSRAM101を搭載した半導体装置においてDVFSを実行した場合と、半導体装置100においてDVFSを実行した場合の第2電源電圧MVSSの変動を示す図である。図12において、波形1201は第1電源電圧を示し、波形1202は電源電圧条件の変動により設定可能な第2電源電圧MVSSを示す。波形1203は半導体装置100においてDVFSを実行した場合の第2電源電圧MVSSを示し、波形1204はSRAM101を搭載した半導体装置においてDVFSを実行した場合の第2電源電圧MVSSを示し、波形1205は接地電圧を示す。
SRAM101では、SRAM101を搭載した半導体装置では、電源電圧が高くなるに従って、第2電源電圧MVSSの理想的な電圧と、半導体装置が設定する電圧との差が大きくなる。一方、半導体装置100では、DVFSが実行される毎にモニタ回路9がスリープモードにおけるSRAMセルの電源電圧を設定するので、温度条件及び電源電圧条件が変動した場合に、第2電源電圧MVSSを理想的な電圧に近い電圧に設定できる。
実施形態に係る半導体装置は、タイマ回路が検知する所定の周期毎にモニタ回路がスリープモードにおいてSRAMのラッチ回路に印加される電源電圧を設定するので、PVT条件の変動に応じてラッチ回路の電源電圧を適切な値に設定できる。
また、実施形態に係る半導体装置では、モニタ回路は、単一の電圧調整回路に接続された複数のモニタセルのラッチ回路に記憶されたデータの何れかが反転するまでモニタセルのラッチ回路に印加される電源電圧が順次小さくなるように制御する。実施形態に係る半導体装置では、単一の電圧調整回路に接続された複数のモニタセルを使用して電源電圧を設定するので、2つのモニタ回路を使用するSRAM102のようにモニタセルのラッチ回路に印加される電源電圧を誤設定するおそれが低い。また、実施形態に係る半導体装置は、単一のモニタ回路を使用するので、2つのモニタ回路を使用するSRAM102と比較してモニタ回路の回路規模を小さくすることができる。
また、実施形態に係る半導体装置は、それぞれが抵抗素子に接続された複数のスイッチング素子を順次オフすることにより、モニタセルのラッチ回路の電源電圧を調整するので、抵抗素子及びスイッチング素子の数に応じた精度で電源電圧を調整できる。
また、実施形態に係る半導体装置は、シフトレジスタの出力信号に応じて複数のスイッチング素子をオンオフすることにより、複数のモニタセルのラッチ回路に印加される電源電圧を調整する。実施形態に係る半導体装置は、シフトレジスタの段数並びに抵抗素子及びスイッチング素子の個数を増加させることで調整精度を向上させることができるので、調整精度を向上に伴う回路規模の増加を最小限に抑えることができる。
また、実施形態に係る半導体装置は、DVFSを実行する電源供給回路がSRAMセルに印加する電源電圧を変更する毎に、SRAMセルのラッチ回路に印加される電源電圧を設定する。実施形態に係る半導体装置は、SRAMセルに印加される電源電圧に応じてSRAMセルのラッチ回路に印加される電源電圧を設定することができる。
半導体装置1では、設定回路50から出力されるモニタ信号MNTは、4ビットの信号であるが、実施形態に係る半導体装置では、モニタ信号MNTのビットは、調整精度に応じて3ビット以下又は5ビット以上とすることができる。このとき、スリープモード電圧決定回路20の抵抗素子及びスイッチング素子並びに設定回路50のシフトレジスタの段数等は、モニタ信号MNTのビットに応じて変更される。
また、半導体装置1では、スリープモード電圧決定回路20は第1電源電圧VDDよりも低い第2電源電圧MVSSを調整するが、実施形態に係る半導体装置では、第1電源電圧VDDを調整する構成としてもよい。