JP5315276B2 - 半導体装置、フリップフロップの制御方法およびプログラム - Google Patents

半導体装置、フリップフロップの制御方法およびプログラム Download PDF

Info

Publication number
JP5315276B2
JP5315276B2 JP2010070006A JP2010070006A JP5315276B2 JP 5315276 B2 JP5315276 B2 JP 5315276B2 JP 2010070006 A JP2010070006 A JP 2010070006A JP 2010070006 A JP2010070006 A JP 2010070006A JP 5315276 B2 JP5315276 B2 JP 5315276B2
Authority
JP
Japan
Prior art keywords
flip
signal
flop
clock
clock signal
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.)
Expired - Fee Related
Application number
JP2010070006A
Other languages
English (en)
Other versions
JP2011205355A (ja
Inventor
泰大 小田
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 Electronics Corp
Original Assignee
Renesas Electronics 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 Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2010070006A priority Critical patent/JP5315276B2/ja
Priority to US13/064,351 priority patent/US8493106B2/en
Publication of JP2011205355A publication Critical patent/JP2011205355A/ja
Priority to US13/612,626 priority patent/US8593192B2/en
Application granted granted Critical
Publication of JP5315276B2 publication Critical patent/JP5315276B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/02Generators characterised by the type of circuit or by the means used for producing pulses
    • H03K3/027Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
    • H03K3/037Bistable circuits
    • H03K3/0375Bistable circuits provided with means for increasing reliability; for protection; for ensuring a predetermined initial state when the supply voltage has been applied; for storing the actual state when the supply voltage fails

Landscapes

  • Logic Circuits (AREA)

Description

本発明は半導体装置およびフリップフロップの制御方法に関し、特にリテンション機能を備えるフリップフロップを有する半導体装置およびフリップフロップの制御方法に関する。
半導体装置の消費電力を低減する技術の一つに、動作していない演算回路セルへの電源供給を遮断する技術がある。このような技術は、電源を再度供給した際に電源遮断前と同様に動作するように、電源遮断時にもデータを記憶するリテンション機能を備えるフリップフロップを用いることで実現することができる。
図15は背景技術にかかる半導体装置を説明するための回路図である。図15に示す半導体装置は、クロックゲーティング回路101、102と、リテンション機能を備えるマスタースレーブ型のフリップフロップRFF101、RFF102とを備える。クロックゲーティング回路101はフリップフロップFF101と論理積回路AND101とを備える。フリップフロップFF101は、クロック信号CLKINのネガティブエッジで駆動し、このネガティブエッジのタイミングでイネーブル信号EN1を出力する。AND101は、フリップフロップFF101の出力(FF101_OUT)とクロック信号CLKINとを入力し、これらの論理積演算結果を出力する。
フリップフロップRFF101は、AND101の出力(RFF101_CLK_IN)がローレベルの時にデータを保持可能なマスタースレーブ型のフリップフロップである。図16(a)は、フリップフロップRFF101を説明するための図である(特許文献1参照)。図16(a)に示すように、フリップフロップRFF101は論理積回路AND102を備える。このAND102の一方にはAND101の出力(RFF101_CLK_IN)が入力され、他方にはデータ保持信号(RET信号)が入力され、AND102はこれらの論理積演算結果を出力する。AND102の出力(RFF101_CLK)は、フリップフロップRFF101を駆動するためのクロック信号となる。
また、クロックゲーティング回路102はフリップフロップFF102と論理和回路OR101とを備える。フリップフロップFF102は、クロック信号CLKINのポジティブエッジで駆動し、このポジティブエッジのタイミングでイネーブル信号EN2を反転した信号(FF102_OUT)を出力する。OR101は、フリップフロップFF102の出力とクロック信号CLKINとを入力し、これらの論理和演算結果を出力する。
フリップフロップRFF102は、OR101の出力(RFF102_CLK_IN)がハイレベルの時にデータを保持可能なマスタースレーブ型のフリップフロップである。図16(b)は、フリップフロップRFF102を説明するための図である(特許文献1参照)。図16(b)に示すように、フリップフロップRFF102は論理和回路OR102を備える。このOR102の一方にはOR101の出力(RFF102_CLK_IN)が入力され、他方にはデータ保持信号(RET信号)が反転された信号が入力され、OR102これらの論理積演算結果を出力する。OR102の出力(RFF102_CLK)は、フリップフロップRFF102を駆動するためのクロック信号となる。
図17、図18は、図15に示す半導体装置の動作を説明するためのタイミングチャートである。なお、フリップフロップRFF101、RFF102には、図16(a)、(b)に示すフリップフロップを用いている。図17に示すタイミングチャートでは、クロックゲーティング回路101とフリップフロップRFF101の動作を示している。図17に示すように、図15に示す半導体装置では、タイミングT102からタイミングT105までの間においてクロック信号CLKINがローレベルに固定される。また、タイミングT103からタイミングT104までの間においてRET信号がローレベルとなり、AND102の出力(RFF101_CLK)がローレベルに固定される。
まず、イネーブル信号EN1が、タイミングT102からタイミングT105までの間においてローレベル"0"である場合の動作について説明する。タイミングT102までは、AND101の出力(RFF101_CLK_IN)とAND102の出力(RFF101_CLK)はクロック信号CLKINと同期している。一方、タイミングT101以降、イネーブル信号EN1がローレベルとなる。これにより、フリップフロップFF101はタイミングT102、つまりクロック信号CLKINのネガティブエッジにおいてローレベルの信号(FF101_OUT)をAND101に出力する。よって、AND101の出力(RFF101_CLK_IN)はローレベルに固定され、これに伴いAND102の出力(RFF101_CLK)もローレベルに固定される。タイミングT103からタイミングT104においてRET信号がローレベルとなるが、AND101の出力(RFF101_CLK_IN)はローレベルに固定されているため、AND102の出力(RFF101_CLK)は変化しない。
そして、タイミングT105において再びクロック信号CLKINが動作すると共に、イネーブル信号EN1がハイレベルとなる。これにより、フリップフロップFF101はタイミングT106、つまりクロック信号CLKINのネガティブエッジにおいてハイレベルの信号(FF101_OUT)をAND101に出力する。よって、AND101の出力(RFF101_CLK_IN)はクロック信号CLKINと同期するようになる。また、RET信号がハイレベルであるので、AND102の出力(RFF101_CLK)もクロック信号CLKINと同期するようになる。
次に、イネーブル信号EN1が ハイレベル"1"である場合の動作について説明する。この場合は、イネーブル信号EN1が常にハイレベルであるため、フリップフロップFF101は常にハイレベルの信号をAND101に出力する。よって、AND101の出力(RFF101_CLK_IN)はクロック信号CLKINと同期して出力される。また、タイミングT103からタイミングT104の間以外は、RET信号がハイレベルであるので、AND102の出力(RFF101_CLK)もクロック信号CLKINと同期する。なお、タイミングT103からタイミングT104の間は、RET信号がローレベルとなるが、タイミングT102からタイミングT105までの間、クロック信号CLKINがローレベルに固定されるため、AND102の出力(RFF101_CLK)は変化しない。
次に、図18を用いてクロックゲーティング回路102とフリップフロップRFF102の動作について説明する。図18に示すように、図15に示す半導体装置では、タイミングT112からタイミングT115までの間においてクロック信号CLKINがローレベルに固定される。また、タイミングT113からタイミングT114までの間においてRET信号がローレベルとなり、RFF102のOR102の出力(RFF102_CLK)がハイレベルに固定される。
まず、イネーブル信号EN2が、クロック信号CLKINが固定されるタイミング(タイミングT112からタイミングT115)においてローレベル"0"である場合の動作について説明する。タイミングT111までは、OR101の出力(RFF102_CLK_IN)とOR102の出力(RFF102_CLK)はクロック信号CLKINと同期している。
一方、タイミングT111以降、イネーブル信号EN2がローレベルとなる。これにより、フリップフロップFF102はタイミングT112、つまりクロック信号CLKINのポジティブエッジにおいてハイレベルの信号(FF102_OUT)をOR101に出力する。よって、OR101の出力(RFF102_CLK_IN)はハイレベルに固定され、これに伴いフリップフロップRFF102のOR102の出力(RFF102_CLK)もハイレベルに固定される。タイミングT113からタイミングT114においてRET信号がローレベルとなるが、OR101の出力(RFF102_CLK_IN)はハイレベルに固定されているため、フリップフロップRFF102のOR102の出力(RFF102_CLK)は変化しない。
そして、タイミングT115以降において再びクロック信号CLKINが動作し、またイネーブル信号EN2がハイレベルとなる。これにより、フリップフロップFF102はタイミングT116、つまりクロック信号CLKINのポジティブエッジにおいてローレベルの信号(FF102_OUT)をOR101に出力する。よって、タイミングT116以降では、OR101の出力(RFF102_CLK_IN)はクロック信号CLKINと同期するようになる。また、RET信号がハイレベルであるので、フリップフロップRFF102のOR102の出力(RFF102_CLK)もクロック信号CLKINと同期するようになる。
次に、イネーブル信号EN2がハイレベル"1"である場合の動作について説明する。この場合は、イネーブル信号EN2が常にハイレベルであるため、フリップフロップFF102は常にローレベルの信号をOR101に出力する。よって、OR101の出力(RFF102_CLK_IN)はクロック信号CLKINと同期して出力される。また、タイミングT113からタイミングT114の間以外は、RET信号がハイレベルであるので、RFF102のOR102の出力(RFF102_CLK)もクロック信号CLKINと同期する。
一方、タイミングT113からタイミングT114の間は、RET信号がローレベルとなる。このとき、クロック信号CLKINはローレベルに固定されているため、OR101の出力(RFF102_CLK_IN)もローレベルに固定されている。このためタイミングT113においてRFF102のOR102に入力されるRET信号がローレベルになると、OR102の出力(RFF102_CLK)がハイレベルとなる。そして、タイミングT114においてRET信号が再びハイレベルになると、OR102の出力(RFF102_CLK)はローレベルとなる。
また、特許文献2にはパワーセーブ前における制御信号(RET信号)の状態とパワーセーブ後における制御信号(RET信号)の状態とを制限することなく、必ず元の出力データを発生させることができるDフリップフロップ回路に関する技術が開示されている。特許文献2にかかるDフリップフロップ回路では、正極性端子と負極性端子とを具備しマスターとスレーブとは別系統の電源が供給される記憶回路を設けている。そして、Dフリップフロップ回路がパワーセーブ中であるときに、記憶回路の負極性端子とマスターの入力端子との経路を遮断するとともに、記憶回路の正極性端子とスレーブの入力端子との経路を遮断し、マスターとスレーブとが遮断されているときに、記憶回路の負極性端子とマスターの入力端子との経路を遮断している。すなわち、特許文献2にかかるDフリップフロップ回路を用いることで、RET信号がローレベル・ハイレベルのいずれの場合においても、データを保持することができる。
特開2008−219491号公報 特開平8−191234号公報
図15に示した半導体装置では、図18に示したタイミングチャートで説明したように、イネーブル信号EN2がハイレベルの場合、タイミングT113でデータ保持信号(RET信号)がローレベルになるとフリップフロップRFF102の動作クロック(RFF102_CLK)が立ち上がる。また、タイミングT114でデータ保持信号(RET信号)がハイレベルになるとフリップフロップRFF102のクロック(RFF102_CLK)が立ち下がる。このため、フリップフロップRFF102はタイミングT114において、新たにデータ(D)を取り込むことになり、クロック信号CLKINの固定後にフリップフロップRFF102のデータが変化する。
一方、イネーブル信号EN2が、クロック信号CLKINが固定されるタイミング(タイミングT112からタイミングT115)においてローレベルである場合、タイミングT113からタイミングT114においてRET信号がローレベルとなるが、フリップフロップRFF102のクロック(RFF102_CLK)は変化しない。
このように、図15に示した半導体装置では、クロック信号CLKINを固定した後にフリップフロップRFF102に保持されるデータがイネーブル信号EN2の値によって異なる。つまり、リテンション機能を備えるフリップフロップにデータを保持する際に意図しないデータのラッチが発生するという問題がある。
本発明にかかる半導体装置は、クロック信号と同期して駆動すると共に、データ保持信号に応じてデータを保持するフリップフロップと、前記フリップフロップに供給される前記クロック信号を制御するクロック制御回路と、前記クロック制御回路に入力クロック信号を供給し、前記フリップフロップに前記データ保持信号を供給すると共に、前記クロック制御回路を制御するコントローラと、を備え、前記フリップフロップが前記クロック信号のポジティブエッジで駆動し、かつ前記クロック信号がローレベルの時にデータを保持する場合、前記コントローラは前記入力クロック信号を固定した後、前記フリップフロップがデータを保持する前に、前記フリップフロップにローレベルのクロック信号が供給されるように前記クロック制御回路を制御し、前記フリップフロップが前記クロック信号のネガティブエッジで駆動し、かつ前記クロック信号がハイレベルの時にデータを保持する場合、前記コントローラは前記入力クロック信号を固定した後、前記フリップフロップがデータを保持する前に、前記フリップフロップにハイレベルのクロック信号が供給されるように前記クロック制御回路を制御する。
本発明にかかる半導体装置では、クロック信号がローレベルの時にデータを保持するフリップフロップに対して、データ保持信号が供給される前にクロック制御回路を用いて強制的にローレベルのクロック信号を供給している。また、クロック信号がハイレベルの時にデータを保持するフリップフロップに対して、データ保持信号が供給される前にクロック制御回路を用いて強制的にハイレベルのクロック信号を供給している。これにより、フリップフロップにデータを保持する際に意図しないデータのラッチが発生することを抑制することができる。
本発明にかかるフリップフロップの制御方法は、クロック信号と同期して駆動すると共に、データ保持信号に応じてデータを保持するフリップフロップの制御方法であって、前記フリップフロップが前記クロック信号のポジティブエッジで駆動し、かつ前記クロック信号がローレベルの時にデータを保持する場合、前記クロック信号が固定された後、前記フリップフロップがデータを保持する前に、前記フリップフロップにローレベルのクロック信号を供給し、前記フリップフロップがネガティブエッジで駆動し、かつ前記クロック信号がハイレベルの時にデータを保持する場合、前記クロック信号が固定された後、前記フリップフロップがデータを保持する前に、前記フリップフロップにハイレベルのクロック信号を供給する。
本発明にかかるフリップフロップの制御方法では、クロック信号がローレベルの時にデータを保持するフリップフロップに対して、データ保持信号が供給される前に強制的にローレベルのクロック信号を供給している。また、クロック信号がハイレベルの時にデータを保持するフリップフロップに対して、データ保持信号が供給される前に強制的にハイレベルのクロック信号を供給している。これにより、フリップフロップにデータを保持する際に意図しないデータのラッチが発生することを抑制することができる。
本発明にかかるプログラムは、回路にクロック制御回路を挿入する処理をコンピュータに実行させるためのプログラムであって、クロック信号と同期して駆動すると共に、データ保持信号に応じてデータを保持するフリップフロップのうち、前記クロック信号のポジティブエッジで駆動し、かつ前記クロック信号がローレベルの時にデータを保持するフリップフロップの前段に、前記クロック信号が固定された後、前記フリップフロップがデータを保持する前に、前記フリップフロップにローレベルのクロック信号を供給するクロック制御回路を挿入し、前記フリップフロップのうち、前記クロック信号のネガティブエッジで駆動し、かつ前記クロック信号がハイレベルの時にデータを保持するフリップフロップの前段に、前記クロック信号が固定された後、前記フリップフロップがデータを保持する前に、前記フリップフロップにハイレベルのクロック信号を供給するクロック制御回路を挿入する処理を、コンピュータに実行させるためのプログラムである。
本発明にかかるプログラムでは、クロック信号がローレベルの時にデータを保持するフリップフロップの前段に、データ保持信号が供給される前に強制的にローレベルのクロック信号を供給するクロック制御回路を挿入している。また、クロック信号がハイレベルの時にデータを保持するフリップフロップに対して、データ保持信号が供給される前に強制的にハイレベルのクロック信号を供給するクロック制御回路を挿入している。これにより、フリップフロップにデータを保持する際に意図しないデータのラッチが発生することを抑制することができる。
本発明により、リテンション機能を備えるフリップフロップにデータを保持する際に意図しないデータのラッチが発生することを抑制することができる半導体装置およびフリップフロップの制御方法を提供することができる。
実施の形態1にかかる半導体装置を説明するための回路図である。 実施の形態1にかかる半導体装置の動作を説明するためのタイミングチャートである。 実施の形態1にかかる半導体装置の動作を説明するためのタイミングチャートである。 実施の形態2にかかる半導体装置を説明するための回路図である。 実施の形態2にかかる半導体装置の動作を説明するためのタイミングチャートである。 実施の形態2にかかる半導体装置の動作を説明するためのタイミングチャートである。 実施の形態3にかかる半導体装置を説明するための回路図である。 実施の形態3にかかる半導体装置の動作を説明するためのタイミングチャートである。 実施の形態4にかかる半導体装置を説明するための回路図である。 実施の形態5にかかる半導体装置を説明するための回路図である。 実施の形態5にかかる半導体装置の動作を説明するための真理値表である。 実施の形態5にかかる半導体装置を説明するための回路図である。 実施の形態5にかかる半導体装置の動作を説明するための真理値表である。 実施の形態6にかかる半導体装置を説明するための回路図である。 背景技術にかかる半導体装置を説明するための回路図である。 背景技術にかかる半導体装置に用いられるリテンション機能を備えるフリップフロップを示す図である。(a)は入力クロックがローレベルの時にデータを保持するフリップフロップであり、(b)は入力クロックがハイレベルの時にデータを保持するフリップフロップである。 背景技術にかかる半導体装置の動作を説明するためのタイミングチャートである。 背景技術にかかる半導体装置の動作を説明するためのタイミングチャートである。
実施の形態1
以下、図面を参照して本発明の実施の形態1について説明する。図1は本実施の形態にかかる半導体装置を説明するための回路図である。本実施の形態にかかる半導体装置は、コントローラ2と、クロック制御回路3と、クロックゲーティング回路5、6と、リテンション機能を備えるフリップフロップRFF1、RFF2とを備える。クロックゲーティング回路5、6およびフリップフロップRFF1、RFF2は論理回路7を構成する。また、コントローラ2は、PLL等の発振回路1からクロック信号を入力し、このクロック信号に基づきクロック信号CLKINを生成しクロック制御回路3およびクロックゲーティング回路5、6に供給する。また、コントローラ2は、クロック制御回路3にクロックストップ信号CLK_STOPを、クロックゲーティング回路5にイネーブル信号EN1を、クロックゲーティング回路6にイネーブル信号EN2を、フリップフロップRFF1、RFF2にデータ保持信号(RET信号)を供給する。
クロックゲーティング回路5はフリップフロップFF1と論理積回路AND1とを備える。フリップフロップFF1は、コントローラ2から供給されるクロック信号CLKINのネガティブエッジで駆動し、このネガティブエッジのタイミングでイネーブル信号EN1の論理レベル(ハイレベル、またはローレベル)を出力する。AND1は、フリップフロップFF1の出力(FF1_OUT)とクロック信号CLKINとを入力し、これらの論理積演算結果を出力する。
フリップフロップRFF1は、クロックゲーティング回路5のAND1の出力(RFF1_CLK_IN)を入力し、この信号のポジティブエッジで駆動する。ここで、フリップフロップRFF1は、クロックゲーティング回路5のAND1の出力(RFF1_CLK_IN)がローレベルの時にデータを保持可能なフリップフロップである。フリップフロップRFF1には、例えば図16(a)に示したマスタースレーブ型のフリップフロップを用いることができる。図16(a)に示すフリップフロップは、一方にクロック信号が入力され、他方にデータ保持信号(RET信号)が入力され、これらの論理積演算結果を出力する論理積回路(AND回路)を備える。AND回路の論理積演算結果として出力される信号はフリップフロップを駆動するクロック信号となる。また、フリップフロップRFF1に供給されるRET信号はコントローラ2から出力される。
クロック制御回路3は、セット付フリップフロップFF3と論理和回路OR2とを備える。セット付フリップフロップFF3はクロック信号CLKINを入力し、クロック信号CLKINのポジティブエッジで論理レベル"0"(ローレベル)を出力する。また、セット付フリップフロップFF3は、コントローラ2からクロックストップ信号CLK_STOPが入力された場合は、OR2に対してハイレベルの信号を出力する。また、OR2はセット付フリップフロップFF3の出力とクロック信号CLKINを入力し、これらの論理和演算結果を出力する。すなわち、クロック制御回路3は、クロックストップ信号CLK_STOPが入力されていない場合はクロック信号CLKINと同期した信号を出力し、クロックストップ信号CLK_STOPが入力された場合はハイレベルの信号を出力する。
クロックゲーティング回路6はフリップフロップFF2と論理和回路OR1とを備える。フリップフロップFF2は、クロック制御回路3のOR2から出力される信号のポジティブエッジで駆動し、このポジティブエッジのタイミングでイネーブル信号EN2の論理レベル(ハイレベル、またはローレベル)が反転された信号を出力する。OR1は、フリップフロップFF2の出力(FF2_OUT)とクロック制御回路3のOR2から出力される信号とを入力し、これらの論理和演算結果を出力する。
フリップフロップRFF2は、クロックゲーティング回路6のOR1の出力(RFF2_CLK_IN)を入力し、この信号のネガティブエッジで駆動する。ここで、フリップフロップRFF2は、クロックゲーティング回路6のOR1の出力(RFF2_CLK_IN)がハイレベルの時にデータを保持可能なフリップフロップである。フリップフロップRFF2には、例えば図16(b)に示したマスタースレーブ型のフリップフロップを用いることができる。図16(b)に示すフリップフロップは、一方にクロック信号が入力され、他方にデータ保持信号(RET信号)が入力され、これらの論理和演算結果を出力する論理和回路(OR回路)を備える。このOR回路の論理和演算結果として出力される信号はフリップフロップを駆動するクロック信号となる。また、フリップフロップRFF2に供給されるRET信号はコントローラ2から出力される。
次に、本実施の形態にかかる半導体装置の動作について説明する。図2は、本実施の形態にかかる半導体装置の動作を説明するためのタイミングチャートである。図2に示すタイミングチャートは、クロックゲーティング回路5とフリップフロップRFF1の動作を示している。図2に示すように、本実施の形態にかかる半導体装置では、タイミングT2からタイミングT5までの間においてクロック信号CLKINがローレベルに固定される。また、タイミングT3からタイミングT4までの間においてRET信号がローレベルとなる。
まず、フリップフロップFF1に供給されるイネーブル信号EN1が、タイミングT2からタイミングT5までの間においてローレベルである場合の動作について説明する。タイミングT1まではイネーブル信号EN1がハイレベルであるため、フリップフロップFF1はハイレベルの信号(FF1_OUT)をAND1の一方の入力に出力する。また、AND1の他方の入力にはクロック信号CLKINが供給される。したがって、AND1の出力(RFF1_CLK_IN)はクロック信号CLKINと同期する。
タイミングT1の後においてイネーブル信号EN1がローレベルになると、フリップフロップFF1はタイミングT2、つまりクロック信号CLKINのネガティブエッジにおいてローレベルの信号(FF1_OUT)をAND1の一方の入力に出力する。よって、AND1の出力(RFF1_CLK_IN)は、クロック信号CLKINのレベルにかかわらず、ローレベルに固定される。このとき、タイミングT3からタイミングT4においてRET信号がローレベルとなり、フリップフロップRFF1がデータを保持する。ここで、フリップフロップRFF1は、クロックゲーティング回路5のAND1の出力(RFF1_CLK_IN)がローレベルの時にデータを保持可能なフリップフロップであるため、正確な値が保持される。
そして、タイミングT5において再びクロック信号CLKINが動作すると共に、イネーブル信号EN1がハイレベルとなる。これにより、フリップフロップFF1はタイミングT6、つまりクロック信号CLKINのネガティブエッジにおいてハイレベルの信号(FF1_OUT)をAND1に出力する。よって、AND1の出力(RFF1_CLK_IN)はクロック信号CLKINと同期するようになる。
次に、イネーブル信号EN1が ハイレベルである場合の動作について説明する。この場合は、イネーブル信号EN1が常にハイレベルであるため、フリップフロップFF1は常にハイレベルの信号をAND1の一方の入力に出力する。また、AND1の他方の入力にはクロック信号CLKINが供給される。したがって、AND1の出力(RFF1_CLK_IN)はクロック信号CLKINと同期する。また、タイミングT2からタイミングT5においてクロック信号CLKINがローレベルに固定されるため、AND1の出力(RFF1_CLK_IN)もローレベルに固定される。このとき、タイミングT3からタイミングT4においてRET信号がローレベルとなり、フリップフロップRFF1がデータを保持する。ここで、フリップフロップRFF1は、クロックゲーティング回路5のAND1の出力(RFF1_CLK_IN)がローレベルの時にデータを保持可能なフリップフロップであるため、正確な値が保持される。
次に、図3を用いてクロック制御回路3、クロックゲーティング回路6、およびフリップフロップRFF2の動作について説明する。図3に示すように、本実施の形態にかかる半導体装置では、タイミングT13からタイミングT17までの間においてクロック信号CLKINがローレベルに固定される。また、タイミングT15からタイミングT16までの間においてRET信号がローレベルとなる。また、タイミングT14においてクロックストップ信号CLK_STOPが、クロック制御回路3のセット付フリップフロップFF3にパルス状に供給される。
まず、フリップフロップFF2に供給されるイネーブル信号EN2が、タイミングT12からタイミングT18までの間においてローレベルである場合の動作について説明する。タイミングT11まではイネーブル信号EN2がハイレベルであるため、フリップフロップFF2はハイレベルの信号(FF2_OUT)をOR1の一方の入力に出力する。また、OR1の他方の入力にはクロック制御回路3の出力が供給される。ここで、クロック制御回路3は、クロックストップ信号CLK_STOPが入力されていない場合はクロック信号CLKINと同期した信号をクロックゲーティング回路6へ出力する。したがって、OR1の出力(RFF2_CLK_IN)はクロック信号CLKINと同期する。
タイミングT11の後においてイネーブル信号EN2がローレベルになると、フリップフロップFF2はタイミングT12、つまりクロック信号CLKINのポジティブエッジにおいてハイレベルの信号(FF2_OUT)をOR1の一方の入力に出力する。よって、OR1の出力(RFF2_CLK_IN)は、クロック信号CLKINのレベルにかかわらず、ハイレベルに固定される。このとき、タイミングT14においてクロックストップ信号CLK_STOPが、クロック制御回路3のセット付フリップフロップFF3にパルス状に供給される。しかし、OR1の出力(RFF2_CLK_IN)は、既にハイレベルに固定されているため変化しない。また、このとき、タイミングT15からタイミングT16においてRET信号がローレベルとなり、フリップフロップRFF2がデータを保持する。ここで、フリップフロップRFF2は、クロックゲーティング回路6のOR1の出力(RFF2_CLK_IN)がハイレベルの時にデータを保持可能なフリップフロップであるため、正確な値が保持される。
そして、タイミングT17において再びクロック信号CLKINが動作すると共に、イネーブル信号EN2がハイレベルとなる。これにより、フリップフロップFF2はタイミングT19、つまりクロック信号CLKINのポジティブエッジにおいてローレベルの信号(FF2_OUT)をOR1に出力する。よって、OR1の出力(RFF2_CLK_IN)はクロック信号CLKINと同期するようになる。
次に、イネーブル信号EN2がハイレベルである場合の動作について説明する。この場合は、イネーブル信号EN2が常にハイレベルであるため、フリップフロップFF2は常にローレベルの信号をOR1の一方の入力に出力する。また、OR1の他方の入力にはクロック信号CLKINが供給される。したがって、OR1の出力(RFF2_CLK_IN)はクロック信号CLKINと同期する。
一方、タイミングT13においてクロック信号CLKINがローレベルに固定されると、OR1の出力(RFF2_CLK_IN)もローレベルに固定される。そして、クロック信号CLKINがローレベルに固定された後(タイミングT13の後)、RET信号がローレベルとなる前(タイミングT14の前)であるタイミングT14に、コントローラ2はクロック制御回路3のセット付フリップフロップFF3にクロックストップ信号CLK_STOPを供給する。これにより、セット付フリップフロップFF3はOR2に対してハイレベルの信号を供給するため、OR2はOR1の入力にハイレベルの信号を出力する。このため、OR1の出力(RFF2_CLK_IN)はハイレベルに固定される。
このとき、タイミングT15からタイミングT16においてRET信号がローレベルとなり、フリップフロップRFF2がデータを保持する。ここで、フリップフロップRFF2は、クロックゲーティング回路6のOR1の出力(RFF2_CLK_IN)がハイレベルの時にデータを保持可能なフリップフロップであるため、正確な値が保持される。
ここで、セット付フリップフロップFF3に供給されるクロック信号CLKINの値がローレベルに固定されている間は、セット付フリップフロップFF3はOR2に対してハイレベルの信号を供給し続ける。そして、タイミングT17においてクロック信号CLKINがハイレベルになると、セット付フリップフロップFF3はOR2に対してローレベルの信号を供給するため、OR2はクロック信号CLKINと同期した信号をOR1の入力に出力する。以降、OR1の出力(RFF2_CLK_IN)はクロック信号CLKINと同期する。
なお、クロックストップ信号CLK_STOPは例えば図3に示すようにパルス状に供給してもよいし、一定期間ハイレベルとなるように供給してもよい。すなわち、クロックストップ信号CLK_STOPは、クロック信号CLKINが固定された後(タイミングT13の後)、RET信号がローレベルとなる前(タイミングT15の前)にハイレベルとなり、クロック信号CLKINが再度動作するタイミングの前(タイミングT17の前)にローレベルとなるように供給される信号であればどのようなものであってもよい。
本実施の形態にかかる半導体装置では、ハイレベルの時にデータを保持可能なフリップフロップRFF2に入力される信号(RFF2_CLK_IN)が、クロック信号CLKINを固定した際にローレベルに固定された場合であっても、クロック制御回路3を用いて強制的にハイレベルとすることができるので、フリップフロップRFF2に正確なデータを保持することができる。
すなわち、図15に示した背景技術にかかる半導体装置では、図18に示すようにイネーブル信号EN2の値によって、クロック信号CLKINを固定した後にフリップフロップRFF102に保持されるデータが異なるため、リテンション機能を用いてフリップフロップにデータを保持する際に意図しないデータのラッチが発生するという問題があった。
本実施の形態にかかる半導体装置では、クロック制御回路3を用いてフリップフロップRFF2に入力される信号(RFF2_CLK_IN)を強制的にハイレベルとすることで、イネーブル信号EN2の値によらずフリップフロップRFF2に入力される信号(RFF2_CLK_IN)をハイレベルとすることができる。したがって、本実施の形態にかかる半導体装置により、リテンション機能を備えるフリップフロップにデータを保持する際に意図しないデータのラッチが発生することを抑制することができる。
実施の形態2
図4は本実施の形態にかかる半導体装置を説明するための回路図である。本実施の形態にかかる半導体装置は、コントローラ2と、クロック制御回路4と、クロックゲーティング回路5、6と、リテンション機能を備えるフリップフロップRFF1、RFF2とを備える。クロックゲーティング回路5、6およびフリップフロップRFF1、RFF2は論理回路7を構成する。また、コントローラ2は、PLL等の発振回路1からクロック信号を入力し、このクロック信号に基づきクロック信号CLKINを生成しクロック制御回路4およびクロックゲーティング回路5、6に供給する。また、コントローラ2は、クロック制御回路4にクロックストップ信号CLK_STOPを、クロックゲーティング回路5にイネーブル信号EN1を、クロックゲーティング回路6にイネーブル信号EN2を、フリップフロップRFF1、RFF2にデータ保持信号(RET信号)を供給する。
クロック制御回路4は、リセット付フリップフロップFF4と論理積回路AND2とを備える。リセット付フリップフロップFF4はクロック信号CLKINを入力し、クロック信号CLKINのポジティブエッジで論理レベル"1"(ハイレベル)を出力する。また、リセット付フリップフロップFF4は、コントローラ2からクロックストップ信号CLK_STOPが入力された場合は、AND2に対してローレベルの信号を出力する。また、AND2はリセット付フリップフロップFF4の出力とクロック信号CLKINを入力し、これらの論理積演算結果を出力する。すなわち、クロック制御回路4は、クロックストップ信号CLK_STOPが入力されていない場合はクロック信号CLKINと同期した信号を出力し、クロックストップ信号CLK_STOPが入力された場合はローレベルの信号を出力する。
クロックゲーティング回路5はフリップフロップFF1と論理積回路AND1とを備える。フリップフロップFF1は、クロック制御回路4のAND2から出力される信号のネガティブエッジで駆動し、このネガティブエッジのタイミングでイネーブル信号EN1の論理レベル(ハイレベル、またはローレベル)を出力する。AND1は、フリップフロップFF1の出力(FF1_OUT)とクロック制御回路4のAND2の出力とを入力し、これらの論理積演算結果を出力する。
フリップフロップRFF1は、クロックゲーティング回路5のAND1の出力(RFF1_CLK_IN)を入力し、この信号のポジティブエッジで駆動する。ここで、フリップフロップRFF1は、クロックゲーティング回路5のAND1の出力(RFF1_CLK_IN)がローレベルの時にデータを保持可能なフリップフロップである。フリップフロップRFF1には、例えば図16(a)に示したマスタースレーブ型のフリップフロップを用いることができる。図16(a)に示すフリップフロップは、一方にクロック信号が入力され、他方にデータ保持信号(RET信号)が入力され、これらの論理積演算結果を出力する論理積回路(AND回路)を備える。AND回路の論理積演算結果として出力される信号はフリップフロップを駆動するクロック信号となる。また、フリップフロップRFF1に供給されるRET信号はコントローラ2から出力される。
クロックゲーティング回路6はフリップフロップFF2と論理和回路OR1とを備える。フリップフロップFF2は、コントローラ2から供給されるクロック信号CLKINのポジティブエッジで駆動し、このポジティブエッジのタイミングでイネーブル信号EN2の論理レベル(ハイレベル、またはローレベル)が反転された信号を出力する。OR1は、フリップフロップFF2の出力(FF2_OUT)とクロック信号CLKINとを入力し、これらの論理和演算結果を出力する。
フリップフロップRFF2は、クロックゲーティング回路6のOR1の出力(RFF2_CLK_IN)を入力し、この信号のネガティブエッジで駆動する。ここで、フリップフロップRFF2は、クロックゲーティング回路6のOR1の出力(RFF2_CLK_IN)がハイレベルの時にデータを保持可能なフリップフロップである。フリップフロップRFF2には、例えば図16(b)に示したマスタースレーブ型のフリップフロップを用いることができる。図16(b)に示すフリップフロップは、一方にクロック信号が入力され、他方にデータ保持信号(RET信号)が入力され、これらの論理和演算結果を出力する論理和回路(OR回路)を備える。OR回路の論理和演算結果として出力される信号はフリップフロップを駆動するクロック信号となる。また、フリップフロップRFF2に供給されるRET信号はコントローラ2から出力される。
次に、本実施の形態にかかる半導体装置の動作について説明する。図5は、本実施の形態にかかる半導体装置の動作を説明するためのタイミングチャートである。図5に示すタイミングチャートは、クロック制御回路4、クロックゲーティング回路5、およびフリップフロップRFF1の動作を示している。
図5に示すように、本実施の形態にかかる半導体装置では、タイミングT23からタイミングT27までの間においてクロック信号CLKINがハイレベルに固定される。また、タイミングT25からタイミングT26までの間においてRET信号がローレベルとなる。また、タイミングT24においてクロックストップ信号CLK_STOPが、クロック制御回路4のリセット付フリップフロップFF4に供給される。
まず、フリップフロップFF1に供給されるイネーブル信号EN1が、タイミングT22からタイミングT27までの間においてローレベルである場合の動作について説明する。タイミングT21まではイネーブル信号EN1がハイレベルであるため、フリップフロップFF1はハイレベルの信号(FF1_OUT)をAND1の一方の入力に出力する。また、AND1の他方の入力にはクロック制御回路4の出力が供給される。ここで、クロック制御回路4は、クロックストップ信号CLK_STOPが入力されていない場合はクロック信号CLKINと同期した信号をクロックゲーティング回路5へ出力する。したがって、AND1の出力(RFF1_CLK_IN)はクロック信号CLKINと同期する。
タイミングT21の後においてイネーブル信号EN1がローレベルになると、フリップフロップFF1はタイミングT22、つまりクロック信号CLKINのネガティブエッジにおいてローレベルの信号(FF1_OUT)をAND1の一方の入力に出力する。よって、AND1の出力(RFF1_CLK_IN)は、クロック信号CLKINのレベルにかかわらず、ローレベルに固定される。このとき、タイミングT24においてクロックストップ信号CLK_STOPが、クロック制御回路4のリセット付フリップフロップFF4にパルス状に供給される。しかし、AND1の出力(RFF1_CLK_IN)は、ローレベルに固定されているため変化しない。また、このとき、タイミングT25からタイミングT26においてRET信号がローレベルとなり、フリップフロップRFF1がデータを保持する。ここで、フリップフロップRFF1は、クロックゲーティング回路5のAND
1の出力(RFF1_CLK_IN)がローレベルの時にデータを保持可能なフリップフロップであるため、正確な値が保持される。
そして、タイミングT27において再びクロック信号CLKINが動作すると共に、イネーブル信号EN1がハイレベルとなる。これにより、フリップフロップFF1はタイミングT29、つまりクロック信号CLKINのネガティブエッジにおいてハイレベルの信号(FF1_OUT)をAND1に出力する。よって、AND1の出力(RFF1_CLK_IN)はクロック信号CLKINと同期するようになる。
次に、イネーブル信号EN1がハイレベルである場合の動作について説明する。この場合は、イネーブル信号EN1が常にハイレベルであるため、フリップフロップFF1は常にハイレベルの信号をAND1の一方の入力に出力する。また、AND1の他方の入力には、クロック信号CLKINと同期したクロック制御回路4の出力が供給される。したがって、AND1の出力(RFF1_CLK_IN)はクロック信号CLKINと同期する。
一方、タイミングT23においてクロック信号CLKINがハイレベルに固定されると、AND1の出力(RFF1_CLK_IN)もハイレベルに固定される。そして、クロック信号CLKINがハイレベルに固定された後(タイミングT23の後)、RET信号がローレベルとなる前(タイミングT24の前)であるタイミングT24に、コントローラ2はクロック制御回路4のリセット付フリップフロップFF4にパルス状のクロックストップ信号CLK_STOPを供給する。これにより、リセット付フリップフロップFF4はAND2に対してローレベルの信号を供給するため、AND2はAND1の入力にローレベルの信号を出力する。このため、AND1の出力(RFF1_CLK_IN)はローレベルに固定される。
このとき、タイミングT25からタイミングT26においてRET信号がローレベルとなり、フリップフロップRFF1がデータを保持する。ここで、フリップフロップRFF1は、クロックゲーティング回路5のAND1の出力(RFF1_CLK_IN)がローレベルの時にデータを保持可能なフリップフロップであるため、正確な値が保持される。
ここで、リセット付フリップフロップFF4に供給されるクロック信号CLKINの値がハイレベルに固定されている間は、リセット付フリップフロップFF4はAND2に対してローレベルの信号を供給し続ける。そして、タイミングT27においてクロック信号CLKINがローレベルになると、リセット付フリップフロップFF4はAND2に対してハイレベルの信号を供給するため、AND2はクロック信号CLKINと同期した信号をAND1の入力に出力する。以降、AND1の出力(RFF1_CLK_IN)はクロック信号CLKINと同期する。
なお、クロックストップ信号CLK_STOPは例えば図5に示すようにパルス状に供給してもよいし、一定期間ハイレベルとなるように供給してもよい。すなわち、クロックストップ信号CLK_STOPは、クロック信号CLKINが固定された後(タイミングT23の後)、RET信号がローレベルとなる前(タイミングT25の前)にハイレベルとなり、クロック信号CLKINが再度動作するタイミングの前(タイミングT27の前)にローレベルとなるように供給される信号であればどのようなものであってもよい。
次に、クロックゲーティング回路6とフリップフロップRFF2の動作について図6のタイミングチャートを用いて説明する。図6に示すように、タイミングT32からタイミングT35までの間においてクロック信号CLKINがハイレベルに固定される。また、タイミングT33からタイミングT34までの間においてRET信号がローレベルとなる。
まず、フリップフロップFF2に供給されるイネーブル信号EN2が、タイミングT32からタイミングT35までの間においてローレベルである場合の動作について説明する。タイミングT31まではイネーブル信号EN2がハイレベルであるため、フリップフロップFF2はローレベルの信号(FF2_OUT)をOR1の一方の入力に出力する。また、OR1の他方の入力にはクロック信号CLKINが供給される。したがって、OR1の出力(RFF2_CLK_IN)はクロック信号CLKINと同期する。
タイミングT31の後においてイネーブル信号EN2がローレベルになると、フリップフロップFF2はタイミングT32、つまりクロック信号CLKINのポジティブエッジにおいてハイレベルの信号(FF2_OUT)をOR1の一方の入力に出力する。よって、OR1の出力(RFF2_CLK_IN)は、クロック信号CLKINのレベルにかかわらず、ハイレベルに固定される。このとき、タイミングT33からタイミングT34においてRET信号がローレベルとなり、フリップフロップRFF2がデータを保持する。ここで、フリップフロップRFF2は、クロックゲーティング回路6のOR1の出力(RFF2_CLK_IN)がハイレベルの時にデータを保持可能なフリップフロップであるため、正確な値が保持される。
そして、タイミングT35において再びクロック信号CLKINが動作すると共に、イネーブル信号EN2がハイレベルとなる。これにより、フリップフロップFF2はタイミングT36、つまりクロック信号CLKINのポジティブエッジにおいてローレベルの信号(FF2_OUT)をOR1に出力する。よって、OR1の出力(RFF2_CLK_IN)はクロック信号CLKINと同期するようになる。
次に、イネーブル信号EN2が ハイレベルである場合の動作について説明する。この場合は、イネーブル信号EN2が常にハイレベルであるため、フリップフロップFF2は常にローレベルの信号をOR1の一方の入力に出力する。また、OR1の他方の入力にはクロック信号CLKINが供給される。したがって、OR1の出力(RFF2_CLK_IN)はクロック信号CLKINと同期する。また、タイミングT32からタイミングT35においてクロック信号CLKINがハイレベルに固定されるため、OR1の出力(RFF2_CLK_IN)もハイレベルに固定される。このとき、タイミングT33からタイミングT34においてRET信号がローレベルとなり、フリップフロップRFF2がデータを保持する。ここで、フリップフロップRFF2は、クロックゲーティング回路6のOR1の出力(RFF2_CLK_IN)がハイレベルの時にデータを保持可能なフリップフロップであるため、正確な値が保持される。
本実施の形態にかかる半導体装置では、ローレベルの時にデータを保持可能なフリップフロップRFF1に入力される信号(RFF1_CLK_IN)が、クロック信号CLKINを固定した際にハイレベルに固定された場合であっても、クロック制御回路4を用いて強制的にローレベルとすることができるので、フリップフロップRFF1に正確なデータを保持することができる。
すなわち、本実施の形態にかかる半導体装置では、クロック制御回路4を用いてフリップフロップRFF1に入力される信号(RFF1_CLK_IN)を強制的にローレベルにすることで、イネーブル信号EN1の値によらずフリップフロップRFF1に入力される信号(RFF1_CLK_IN)のレベルをローレベルとすることができる。したがって、本実施の形態にかかる半導体装置により、リテンション機能を備えるフリップフロップにデータを保持する際に意図しないデータのラッチが発生することを抑制することができる。
なお、実施の形態1ではクロック制御回路3を備える場合、実施の形態2ではクロック制御回路4を備える場合について説明した。しかし、本発明ではクロック制御回路3とクロック制御回路4を同時に備えていてもよい。このように、クロック制御回路3、4を備えることで、クロック信号CLKINがローレベルで固定された場合(実施の形態1)とハイレベルで固定された場合(実施の形態2)の両方に対応することができる。
実施の形態3
次に、本発明の実施の形態3について説明する。図7は本実施の形態にかかる半導体装置を説明するための回路図である。本実施の形態にかかる半導体装置は、コントローラ2と、排他的論理和回路XOR1と、クロック制御回路3、4と、リテンション機能を備えるフリップフロップRFF1、RFF2とを備える。コントローラ2は、PLL等の発振回路1からクロック信号を入力し、このクロック信号に基づきクロック信号CLKINを生成し排他的論理和回路XOR1に出力する。また、コントローラ2は、クロック制御回路3、4にクロックストップ信号CLK_STOPを、フリップフロップRFF1、RFF2にデータ保持信号(RET信号)を供給する。
XOR1はクロック信号CLKINとSEL信号を入力し、これらの排他的論理和を出力する。XOR1は、SEL信号がローレベルである場合、入力されたクロック信号CLKINをそのまま出力する。一方、SEL信号がハイレベルである場合、入力されたクロック信号CLKINを反転した信号を出力する。このように、本実施の形態にかかる半導体装置では、SEL信号を切り替えることでクロック信号CLKINの正転・反転を切り替えることができる。
クロック制御回路4は、リセット付フリップフロップFF4と論理積回路AND2とを備える。リセット付フリップフロップFF4はXOR1から出力されたクロック信号CLKを入力し、クロック信号CLKのポジティブエッジで論理レベル"1"(ハイレベル)を出力する。また、リセット付フリップフロップFF4は、コントローラ2からクロックストップ信号CLK_STOPが入力された場合は、AND2に対してローレベルの信号を出力する。また、AND2はリセット付フリップフロップFF4の出力とXOR1から出力されたクロック信号CLKを入力し、これらの論理積演算結果を出力する。すなわち、クロック制御回路4は、クロックストップ信号CLK_STOPが入力されていない場合はクロック信号CLKと同期した信号を出力し、クロックストップ信号CLK_STOPが入力された場合はローレベルの信号を出力する。
クロック制御回路3は、セット付フリップフロップFF3と論理和回路OR2とを備える。セット付フリップフロップFF3はXOR1から出力されたクロック信号CLKを入力し、クロック信号CLKのポジティブエッジで論理レベル"0"(ローレベル)を出力する。また、セット付フリップフロップFF3は、コントローラ2からクロックストップ信号CLK_STOPが入力された場合は、OR2に対してハイレベルの信号を出力する。また、OR2はセット付フリップフロップFF3の出力とXOR1から出力されたクロック信号CLKを入力し、これらの論理和演算結果を出力する。すなわち、クロック制御回路3は、クロックストップ信号CLK_STOPが入力されていない場合はクロック信号CLKと同期した信号を出力し、クロックストップ信号CLK_STOPが入力された場合はハイレベルの信号を出力する。
フリップフロップRFF1は、クロック制御回路4のAND2の出力(RFF1_CLK_IN)を入力し、この信号のポジティブエッジで駆動する。ここで、フリップフロップRFF1は、クロック制御回路4のAND2の出力(RFF1_CLK_IN)がローレベルの時にデータを保持可能なフリップフロップである。フリップフロップRFF1には、例えば図16(a)に示したマスタースレーブ型のフリップフロップを用いることができる。図16(a)に示すフリップフロップは、一方にクロック信号が入力され、他方にデータ保持信号(RET信号)が入力され、これらの論理積演算結果を出力する論理積回路(AND回路)を備える。AND回路の論理積演算結果として出力される信号はフリップフロップを駆動するクロック信号となる。また、フリップフロップRFF1に供給されるRET信号はコントローラ2から出力される。
フリップフロップRFF2は、クロック制御回路3のOR2の出力(RFF2_CLK_IN)を入力し、この信号のネガティブエッジで駆動する。ここで、フリップフロップRFF2は、クロック制御回路3のOR2の出力(RFF2_CLK_IN)がハイレベルの時にデータを保持可能なフリップフロップである。フリップフロップRFF2には、例えば図16(b)に示したマスタースレーブ型のフリップフロップを用いることができる。図16(b)に示すフリップフロップは、一方にクロック信号が入力され、他方にデータ保持信号(RET信号)が入力され、これらの論理和演算結果を出力する論理和回路(OR回路)を備える。OR回路の論理和演算結果として出力される信号はフリップフロップを駆動するクロック信号となる。また、フリップフロップRFF2に供給されるRET信号はコントローラ2から出力される。
次に、本実施の形態にかかる半導体装置の動作について説明する。図8は、本実施の形態にかかる半導体装置の動作を説明するためのタイミングチャートである。図8に示すように、本実施の形態にかかる半導体装置では、タイミングT42からタイミングT46までの間においてクロック信号CLKINがローレベルに固定される。また、タイミングT44からタイミングT45までの間においてRET信号がローレベルとなる。また、タイミングT43においてクロックストップ信号CLK_STOPが、クロック制御回路4のリセット付フリップフロップFF4およびクロック制御回路3のセット付フリップフロップFF3にパルス状に供給される。
まず、SEL信号がローレベルの場合について説明する。SEL信号がローレベルの場合は、XOR1の出力(CLK)はクロック信号CLKINと同期する(つまり、正転となる)。
クロック制御回路4のリセット付フリップフロップFF4は、クロックストップ信号CLK_STOPがローレベルの場合、XOR1の出力(CLK)のポジティブエッジで駆動し、ハイレベル信号("1")をAND2の一方の入力に出力する。また、AND2は一方の入力にリセット付フリップフロップFF4の出力を、他方の入力にXOR1の出力(CLK)を入力し、これらの論理積演算結果をフリップフロップRFF1に出力する(RFF1_CLK_IN)。よって、AND2の出力(RFF1_CLK_IN)はXOR1の出力(CLK)と同期する。
タイミングT42でクロック信号CLKINがローレベルに固定されると、XOR1の出力(CLK)もローレベルに固定され、AND2の出力(RFF1_CLK_IN)もローレベルに固定される。そして、タイミングT44からタイミングT45においてRET信号がローレベルとなり、フリップフロップRFF1がデータを保持する。ここで、フリップフロップRFF1は、クロック制御回路4のAND2の出力(RFF1_CLK_IN)がローレベルの時にデータを保持可能なフリップフロップであるため、正確な値が保持される。なお、タイミングT43においてクロックストップ信号CLK_STOPが、クロック制御回路4のリセット付フリップフロップFF4にパルス状に供給されると、リセット付フリップフロップFF4はローレベル信号をAND2の一方の入力に出力する。しかし、AND2の出力(RFF1_CLK_IN)は既にローレベルに固定されているため、AND2の出力(RFF1_CLK_IN)は変化しない。
そして、タイミングT46において再びクロック信号CLKINが動作すると、リセット付フリップフロップFF4はタイミングT46、つまりXOR1の出力(CLK)のポジティブエッジにおいてハイレベルの信号をAND2に出力する。よって、AND2の出力(RFF1_CLK_IN)はXOR1の出力(CLK)と同期するようになる。
次に、クロック制御回路3とフリップフロップRFF2の動作について説明する。クロック制御回路3のセット付フリップフロップFF3は、クロックストップ信号CLK_STOPがローレベルの場合、XOR1の出力(CLK)のポジティブエッジで駆動し、ローレベル信号("0")をOR2の一方の入力に出力する。また、OR2は一方の入力にセット付フリップフロップFF3の出力を、他方の入力にXOR1の出力(CLK)を入力し、これらの論理和演算結果をフリップフロップRFF2に出力する(RFF2_CLK_IN)。よって、OR2の出力(RFF2_CLK_IN)はXOR1の出力(CLK)と同期する。
タイミングT42でクロック信号CLKINがローレベルに固定されると、XOR1の出力(CLK)もローレベルに固定され、OR2の出力(RFF2_CLK_IN)もローレベルに固定される。そして、タイミングT43においてクロックストップ信号CLK_STOPが、クロック制御回路3のセット付フリップフロップFF3にパルス状に供給されると、セット付フリップフロップFF3はハイレベル信号をOR2の一方の入力に出力する。これにより、OR2の出力(RFF2_CLK_IN)はハイレベルとなる。そして、タイミングT44からタイミングT45においてRET信号がローレベルとなり、フリップフロップRFF2がデータを保持する。ここで、フリップフロップRFF2は、クロック制御回路3のOR2の出力(RFF2_CLK_IN)がハイレベルの時にデータを保持可能なフリップフロップであるため、正確な値が保持される。
そして、タイミングT46において再びクロック信号CLKINが動作すると、セット付フリップフロップFF3はタイミングT46、つまりXOR1の出力(CLK)のポジティブエッジにおいてローレベルの信号をOR2に出力する。よって、OR2の出力(RFF2_CLK_IN)はXOR1の出力(CLK)と同期するようになる。
次に、SEL信号がハイレベルの場合について説明する。SEL信号がハイレベルの場合は、XOR1の出力(CLK)はクロック信号CLKINが反転した信号となる。
クロック制御回路4のリセット付フリップフロップFF4は、クロックストップ信号CLK_STOPがローレベルの場合、XOR1の出力(CLK)のポジティブエッジで駆動し、ハイレベル信号("1")をAND2の一方の入力に出力する。また、AND2は一方の入力にリセット付フリップフロップFF4の出力を、他方の入力にXOR1の出力(CLK)を入力し、これらの論理積演算結果をフリップフロップRFF1に出力する(RFF1_CLK_IN)。よって、AND2の出力(RFF1_CLK_IN)はXOR1の出力(CLK)と同期する。
タイミングT42でクロック信号CLKINがローレベルで固定されると、XOR1の出力(CLK)はハイレベルに固定され、AND2の出力(RFF1_CLK_IN)もハイレベルに固定される。そして、タイミングT43においてクロックストップ信号CLK_STOPが、クロック制御回路4のリセット付フリップフロップFF4にパルス状に供給されると、リセット付フリップフロップFF4はローレベル信号をAND2の一方の入力に出力する。これにより、AND2の出力(RFF1_CLK_IN)は、ローレベルとなる。そして、タイミングT44からタイミングT45においてRET信号がローレベルとなり、フリップフロップRFF1がデータを保持する。ここで、フリップフロップRFF1は、クロック制御回路4のAND2の出力(RFF1_CLK_IN)がローレベルの時にデータを保持可能なフリップフロップであるため、正確な値が保持される。
そして、タイミングT46において再びクロック信号CLKINが動作すると、リセット付フリップフロップFF4はタイミングT47、つまりXOR1の出力(CLK)のポジティブエッジにおいてハイレベルの信号をAND2に出力する。よって、AND2の出力(RFF1_CLK_IN)はXOR1の出力(CLK)と同期するようになる。
次に、クロック制御回路3とフリップフロップRFF2の動作について説明する。クロック制御回路3のセット付フリップフロップFF3は、クロックストップ信号CLK_STOPがローレベルの場合、XOR1の出力(CLK)のポジティブエッジで駆動し、ローレベル信号("0")をOR2の一方の入力に出力する。また、OR2は一方の入力にセット付フリップフロップFF3の出力を、他方の入力にXOR1の出力(CLK)を入力し、これらの論理和演算結果をフリップフロップRFF2に出力する(RFF2_CLK_IN)。よって、OR2の出力(RFF2_CLK_IN)はXOR1の出力(CLK)と同期する。
タイミングT42でクロック信号CLKINがローレベルで固定されると、XOR1の出力(CLK)はハイレベルに固定され、OR2の出力(RFF2_CLK_IN)もハイレベルに固定される。そして、タイミングT44からタイミングT45においてRET信号がローレベルとなり、フリップフロップRFF2がデータを保持する。ここで、フリップフロップRFF2は、クロック制御回路3のOR2の出力(RFF2_CLK_IN)がハイレベルの時にデータを保持可能なフリップフロップであるため、正確な値が保持される。なお、タイミングT43においてクロックストップ信号CLK_STOPが、クロック制御回路3のセット付フリップフロップFF3にパルス状に供給されると、セット付フリップフロップFF3はハイレベル信号をOR2の一方の入力に出力する。しかし、OR2の出力(RFF1_CLK_IN)は、既にハイレベルに固定されているため、OR2の出力(RFF2_CLK_IN)は変化しない。
そして、タイミングT46において再びクロック信号CLKINが動作すると、セット付フリップフロップFF3はタイミングT46、つまりXOR1の出力(CLK)のポジティブエッジにおいてローレベルの信号をOR2に出力する。よって、OR2の出力(RFF2_CLK_IN)はXOR1の出力(CLK)と同期するようになる。
本実施の形態にかかる半導体装置では、ローレベルの時にデータを保持可能なフリップフロップRFF1に入力される信号(RFF1_CLK_IN)が、クロック信号CLKINを固定した際にハイレベルに固定された場合であっても、クロック制御回路4を用いて強制的にローレベルとすることができるので、フリップフロップRFF1に正確なデータを保持することができる。
また、本実施の形態にかかる半導体装置では、ハイレベルの時にデータを保持可能なフリップフロップRFF2に入力される信号(RFF2_CLK_IN)が、クロック信号CLKINを固定した際にローレベルに固定された場合であっても、クロック制御回路3を用いて強制的にハイレベルとすることができるので、フリップフロップRFF2に正確なデータを保持することができる。
したがって、本実施の形態にかかる半導体装置により、リテンション機能を備えるフリップフロップにデータを保持する際に意図しないデータのラッチが発生することを抑制することができる。
なお、実施の形態1乃至3で説明した半導体装置は次のように表現することもできる。すなわち、実施の形態1乃至3で説明した半導体装置はクロック信号(RFF1_CLK_IN、RFF2_CLK_IN)と同期して駆動すると共に、データ保持信号(RET信号)に応じてデータを保持するフリップフロップRFF1、RFF2と、フリップフロップRFF1、RFF2に供給されるクロック信号を制御するクロック制御回路3、4と、クロック制御回路3、4に入力クロック信号CLKIN(実施の形態3の場合は、CLK)を供給し、フリップフロップRFF1、RFF2にデータ保持信号(RET信号)を供給すると共に、クロック制御回路3、4を制御するコントローラ2と、を備える。
そして、フリップフロップRFF1がクロック信号(RFF1_CLK_IN)のポジティブエッジで駆動し、かつクロック信号(RFF1_CLK_IN)がローレベルの時にデータを保持する場合、コントローラ2は入力クロック信号(CLKIN、CLK)を固定した後、フリップフロップRFF1がデータを保持する前に、フリップフロップRFF1にローレベルのクロック信号(RFF1_CLK_IN)が供給されるようにクロック制御回路を制御する(実施の形態2、実施の形態3)。
また、フリップフロップRFF2がクロック信号(RFF2_CLK_IN)のネガティブエッジで駆動し、かつクロック信号(RFF2_CLK_IN)がハイレベルの時にデータを保持する場合、コントローラ2は入力クロック信号(CLKIN、CLK)を固定した後、フリップフロップRFF2がデータを保持する前に、フリップフロップRFF2にハイレベルのクロック信号(RFF2_CLK_IN)が供給されるようにクロック制御回路4を制御する(実施の形態1、実施の形態3)。
また、本発明は回路にクロック制御回路を挿入する処理をコンピュータに実行させるためのプログラムにも適用することができる。この場合、本発明にかかるプログラムは、回路にクロック制御回路を挿入する処理をコンピュータに実行させるためのプログラムであって、クロック信号(RFF1_CLK_IN、RFF2_CLK_IN)と同期して駆動すると共に、データ保持信号(RET信号)に応じてデータを保持するフリップフロップRFF1、RFF2のうち、クロック信号のポジティブエッジで駆動し、かつクロック信号がローレベルの時にデータを保持するフリップフロップRFF1の前段に、クロック信号が固定された後、フリップフロップがデータを保持する前に、フリップフロップRFF1にローレベルのクロック信号を供給するクロック制御回路4を挿入する。
また、フリップフロップRFF1、RFF2のうち、クロック信号のネガティブエッジで駆動し、かつクロック信号がハイレベルの時にデータを保持するフリップフロップRFF2の前段に、クロック信号が固定された後、フリップフロップがデータを保持する前に、フリップフロップRFF2にハイレベルのクロック信号を供給するクロック制御回路3を挿入する。
実施の形態4
次に、本発明の実施の形態4について説明する。実施の形態4では、実施の形態1乃至3で説明した半導体装置のクロック制御回路3、4を、セット付フリップフロップFF3、リセット付フリップフロップFF4を用いずに構成している。これ以外は、実施の形態1乃至3にかかる半導体装置と同様であるので重複した説明は省略する。
図9(a)に示すように、本実施の形態にかかる半導体装置のクロック制御回路4では、クロック制御回路4を、論理和回路OR3、ラッチLA1、論理積回路AND3を含む回路で構成している。図9(a)に示すように、クロック制御回路4を構成するOR3は、一方の入力にクロックストップ信号CLK_STOPを、他方の入力にクロック信号CLKINを反転した信号を入力し、これらの論理和演算結果をラッチLA1のイネーブル入力(EN)に出力する。ラッチLA1はクロックストップ信号CLK_STOPを入力し、この信号を反転した信号をOR3の出力に応じて出力する。ラッチLA1は例えばゲーテッドDラッチ回路である。AND3は、一方にラッチLA1の出力を、他方にクロック信号CLKINを入力し、これらの論理積演算結果を出力する。
図9(a)に示す回路では、クロックストップ信号CLK_STOPがローレベルの場合は、ラッチLA1は常にハイレベルの信号をAND3の一方の入力に出力するので、AND3はクロック信号CLKINと同期した信号を出力する。一方、クロックストップ信号CLK_STOPがハイレベルになると、ラッチLA1は常にローレベルの信号をAND3の一方の入力に出力するので、AND3は常にローレベルの信号を出力する。
また、図9(b)に示すように、本実施の形態にかかる半導体装置のクロック制御回路3では、クロック制御回路3を、論理和回路OR4、ラッチLA2、論理和回路OR5を含む回路で構成している。図9(b)に示すように、クロック制御回路3を構成するOR4は、一方の入力にクロックストップ信号CLK_STOPを、他方の入力にクロック信号CLKINを入力し、これらの論理和演算結果をラッチLA2のイネーブル入力(EN)に出力する。ラッチLA2はクロックストップ信号CLK_STOPを入力し、この信号をOR3の出力に応じて出力する。ラッチLA2は例えばゲーテッドDラッチ回路である。OR5は、一方にラッチLA2の出力を、他方にクロック信号CLKINを入力し、これらの論理和演算結果を出力する。
図9(b)に示す回路では、クロックストップ信号CLK_STOPがローレベルの場合は、ラッチLA2は常にローレベルの信号をOR5の一方の入力に出力するので、OR5はクロック信号CLKINと同期した信号を出力する。一方、クロックストップ信号CLK_STOPがハイレベルになると、ラッチLA2は常にハイレベルの信号をOR5の一方の入力に出力するので、OR5は常にハイレベルの信号を出力する。
本実施の形態にかかる半導体装置では、クロック制御回路3、4の回路構成を図9に示したようなラッチ回路を用いた回路構成としているので、実施の形態1乃至3の場合と比べて回路面積を小さくすることができる。なお、本実施の形態にかかる半導体装置を用いた場合であっても、実施の形態1乃至3と同様の効果を得ることができる。
実施の形態5
次に、本発明の実施の形態5について説明する。実施の形態5では、実施の形態1乃至3で説明した半導体装置のクロック制御回路4とクロックゲーティング回路5、およびクロック制御回路3とクロックゲーティング回路6をそれぞれ一つにまとめている。これ以外は、実施の形態1乃至3にかかる半導体装置と同様であるので重複した説明は省略する。
図10は、実施の形態1乃至3で説明した半導体装置のクロック制御回路4とクロックゲーティング回路5を一つの回路(以下、第1のクロック処理回路という)にまとめた場合を示す回路図である。図10に示す本実施の形態にかかる第1のクロック処理回路は、論理積回路AND4、AND5、論理和回路OR6、ラッチLA3を有する。AND4は、一方の入力にイネーブル信号EN1を、他方の入力にクロックストップ信号CLK_STOPが反転された信号を入力し、これらの論理積演算結果をラッチLA3の入力に出力する。OR6は、一方の入力にクロックストップ信号CLK_STOPを、他方の入力にクロック信号CLKINを反転した信号を入力し、これらの論理和演算結果をラッチLA3のイネーブル入力(EN)に出力する。ラッチLA3はAND4の出力を入力し、この信号をOR6の出力に応じて出力する。ラッチLA3は例えばゲーテッドDラッチ回路である。AND5は、一方にラッチLA3の出力を、他方にクロック信号CLKINを入力し、これらの論理積演算結果を出力する。
図11は、図10に示した第1のクロック処理回路の真理値表である。図11に示すように、クロックストップ信号CLK_STOPが"0"で、かつイネーブル信号EN1が"0"の場合は、AND5の出力(RFF1_CLK_IN)は常に"0"となる。また、クロックストップ信号CLK_STOPが"0"で、かつイネーブル信号EN1が"1"の場合は、AND5の出力(RFF1_CLK_IN)は、クロック信号CLKINに同期する。一方、クロックストップ信号CLK_STOPが"1"の場合は、クロック信号CLKINおよびイネーブル信号EN1の値にかかわらず、AND5の出力(RFF1_CLK_IN)は"0"となる。
また、図12は、実施の形態1乃至3で説明した半導体装置のクロック制御回路3とクロックゲーティング回路6を一つの回路(以下、第2のクロック処理回路という)にまとめた場合を示す回路図である。図12に示す本実施の形態にかかる第2のクロック処理回路は、論理和回路OR7、OR8、OR9、ラッチLA4を有する。OR7は、一方の入力にイネーブル信号EN2が反転された信号を、他方の入力にクロックストップ信号CLK_STOPを入力し、これらの論理和演算結果をラッチLA4の入力に出力する。OR8は、一方の入力にクロックストップ信号CLK_STOPを、他方の入力にクロック信号CLKINを入力し、これらの論理和演算結果をラッチLA4のイネーブル入力(EN)に出力する。ラッチLA4はOR7の出力を入力し、この信号をOR8の出力に応じて出力する。ラッチLA4は例えばゲーテッドDラッチ回路である。OR9は、一方にラッチLA4の出力を、他方にクロック信号CLKINを入力し、これらの論理和演算結果を出力する。
図13は、図12に示した第2のクロック処理回路の真理値表である。図13に示すように、クロックストップ信号CLK_STOPが"0"で、かつイネーブル信号EN2が"0"の場合は、OR9の出力(RFF2_CLK_IN)は常に"1"となる。また、クロックストップ信号CLK_STOPが"0"で、かつイネーブル信号EN2が"1"の場合は、OR9の出力(RFF2_CLK_IN)は、クロック信号CLKINに同期する。一方、クロックストップ信号CLK_STOPが"1"の場合は、クロック信号CLKINおよびイネーブル信号EN2の値にかかわらず、OR9の出力(RFF2_CLK_IN)は"0"となる。
本実施の形態にかかる半導体装置では、実施の形態1乃至3で説明した半導体装置のクロック制御回路4とクロックゲーティング回路5、およびクロック制御回路3とクロックゲーティング回路6をそれぞれ一つにまとめているので、実施の形態1乃至3の場合と比べて回路面積を小さくすることができる。なお、本実施の形態にかかる半導体装置を用いた場合であっても、実施の形態1乃至3と同様の効果を得ることができる。
実施の形態6
次に、本発明の実施の形態6について説明する。実施の形態6にかかる発明では半導体装置を構成するリテンション機能を備えるフリップフロップの一部を、動作クロックがローレベル・ハイレベルのいずれの場合でもデータを保持することができるフリップフロップを用いている。これ以外は、実施の形態1乃至5の場合と同様であるので、重複した説明は省略する。
図14は、本実施の形態にかかる半導体装置を説明するための回路図である。図14に示す本発明にかかる半導体装置は、コントローラ2と、排他的論理和回路XOR2と、クロックゲーティング回路5、6と、リテンション機能を備えるフリップフロップRFF1、RFF3〜RFF5を備える。コントローラ2は、PLL等の発振回路1からクロック信号を入力し、このクロック信号に基づきクロック信号CLKINを生成し、クロックゲーティング回路5、クロックゲーティング回路6、排他的論理和回路XOR2に出力する。また、コントローラ2は、クロックゲーティング回路5、6にイネーブル信号EN1、EN2をそれぞれ供給する。また、コントローラ2はフリップフロップRFF1、RFF3〜RFF5にデータ保持信号(RET信号)を供給する。クロックゲーティング回路5、6は実施の形態1で説明したクロックゲーティング回路と同様である。
本実施の形態にかかる半導体装置では、フリップフロップRFF1は正転クロック信号のポジティブエッジで駆動し、フリップフロップRFF3は正転クロック信号のネガティブエッジで駆動する。また、XOR2回路はフリップフロップRFF4、5に対して、クロック信号CLKINが反転した反転クロック信号を供給している(つまり、SEL信号をハイレベルとしている)。よって、フリップフロップRFF4は反転クロック信号のポジティブエッジで駆動し、フリップフロップRFF3は正転クロック信号のネガティブエッジで駆動する。
そして、本実施の形態にかかる半導体装置では、リテンション機能を備えるフリップフロップRFF1に、駆動クロックがローレベルの時にデータを保持することができるフリップフロップを用いている。また、リテンション機能を備えるフリップフロップRFF3〜RFF5に、駆動クロックがローレベル・ハイレベルのいずれの場合であってもデータを保持することができるフリップフロップ(バルーン方式のフリップフロップ)を用いている。ここで、駆動クロックがローレベル・ハイレベルのいずれの場合であってもデータを保持することができるフリップフロップとしては、例えば特許文献2に開示されているDフリップフロップ回路を用いることができる。
本実施の形態にかかる半導体装置では、ローレベルまたはハイレベルのいずれの場合のときにのみデータを保持することができるフリップフロップを用いた際に、意図しないデータのラッチが発生する可能性のある箇所(フリップフロップ回路群8)に、駆動クロックがローレベル・ハイレベルのいずれの場合であってもデータを保持することができるフリップフロップを用いている。これにより、リテンション機能を備えるフリップフロップにデータを保持する際に意図しないデータのラッチが発生することを抑制することができる。
一般的に、駆動クロックがローレベル・ハイレベルのいずれの場合であってもデータを保持することができるフリップフロップはセル面積が大きいが、本実施の形態にかかる半導体装置のように、意図しないデータのラッチが発生する可能性のある箇所(フリップフロップ回路群8)にのみこのようなフリップフロップ回路を設けることで、回路面積を小さくし、消費電力を低減することができる。
以上、本発明を上記実施形態に即して説明したが、上記実施形態の構成にのみ限定されるものではなく、本願特許請求の範囲の請求項の発明の範囲内で当業者であればなし得る各種変形、修正、組み合わせを含むことは勿論である。
1 発振回路
2 コントローラ
3 クロック制御回路
4 クロック制御回路
5 クロックゲーティング回路(ポジティブエッジ用)
6 クロックゲーティング回路(ネガティブエッジ用)
7 論理回路
8 フリップフロップ回路群

Claims (18)

  1. クロック信号と同期して駆動すると共に、データ保持信号に応じてデータを保持するフリップフロップと、
    前記フリップフロップに供給される前記クロック信号を制御するクロック制御回路と、
    前記クロック制御回路に入力クロック信号を供給し、前記フリップフロップに前記データ保持信号を供給すると共に、前記クロック制御回路を制御するコントローラと、を備え、
    前記フリップフロップが前記クロック信号のポジティブエッジで駆動し、かつ前記クロック信号がローレベルの時にデータを保持する場合であって前記データ保持信号の遷移によって前記フリップフロップに意図しないデータのラッチが発生する場合には、前記コントローラは前記入力クロック信号を固定した後、前記データ保持信号の遷移に基づいて前記フリップフロップがデータを保持する状態に入る前に、前記フリップフロップにローレベルのクロック信号が供給されるように前記クロック制御回路を制御し、
    前記フリップフロップが前記クロック信号のネガティブエッジで駆動し、かつ前記クロック信号がハイレベルの時にデータを保持する場合であって、前記データ保持信号の遷移によって前記フリップフロップに意図しないデータのラッチが発生する場合には、前記コントローラは前記入力クロック信号を固定した後、前記データ保持信号の遷移に基づいて前記フリップフロップがデータを保持する状態に入る前に、前記フリップフロップにハイレベルのクロック信号が供給されるように前記クロック制御回路を制御する、
    半導体装置。
  2. 前記フリップフロップは、前記クロック信号のポジティブエッジで駆動すると共に、前記クロック信号がローレベルの時にデータを保持可能な第1のフリップフロップを備え、
    前記クロック制御回路は、前記第1のフリップフロップに供給される前記クロック信号を制御する第1のクロック制御回路を備え、
    前記コントローラは、前記第1のクロック制御回路に前記入力クロック信号を供給し、前記第1のフリップフロップに前記データ保持信号を供給すると共に、前記入力クロック信号を固定した後、前記データ保持信号の遷移に基づいて前記第1のフリップフロップがデータを保持する状態に入る前に、前記第1のフリップフロップにローレベルのクロック信号が供給されるように前記第1のクロック制御回路を制御する、請求項1に記載の半導体装置。
  3. 前記フリップフロップは、前記クロック信号のネガティブエッジで駆動すると共に、前記クロック信号がハイレベルの時にデータを保持可能な第2のフリップフロップを備え、
    前記クロック制御回路は、前記第2のフリップフロップに供給される前記クロック信号を制御する第2のクロック制御回路を備え、
    前記コントローラは、前記第2のクロック制御回路に前記入力クロック信号を供給し、前記第2のフリップフロップに前記データ保持信号を供給すると共に、前記入力クロック信号を固定した後、前記データ保持信号の遷移に基づいて前記第2のフリップフロップがデータを保持する状態に入る前に、前記第2のフリップフロップにハイレベルのクロック信号が供給されるように前記第2のクロック制御回路を制御する、請求項1または2に記載の半導体装置。
  4. 前記第1のクロック制御回路は、前記コントローラからのクロックストップ信号に応じてローレベルの信号を出力する第3のフリップフロップと、
    一方の入力に前記第3のフリップフロップの出力を、他方の入力に前記入力クロック信号を入力し、これらの論理積を出力する第1の論理積回路と、を備える請求項2に記載の半導体装置。
  5. 前記第2のクロック制御回路は、前記コントローラからのクロックストップ信号に応じてハイレベルの信号を出力する第4のフリップフロップと、
    一方の入力に前記第4のフリップフロップの出力を、他方の入力に前記入力クロック信号を入力し、これらの論理和を出力する第1の論理和回路と、を備える請求項3に記載の半導体装置。
  6. 前記第1のフリップフロップに供給されるクロック信号の供給または停止を制御する第1のクロックゲーティング回路を更に備える、請求項4に記載の半導体装置。
  7. 前記第2のフリップフロップに供給されるクロック信号の供給または停止を制御する第2のクロックゲーティング回路を更に備える、請求項5に記載の半導体装置。
  8. 前記第1のクロックゲーティング回路は、前記クロック信号のネガティブエッジに応じて前記コントローラから供給される第1のイネーブル信号の値を出力する第5のフリップフロップと、
    一方の入力に前記第5のフリップフロップの出力を、他方の入力に前記クロック信号を入力し、これらの論理積を出力する第2の論理積回路と、を備える請求項6に記載の半導体装置。
  9. 前記第2のクロックゲーティング回路は、前記クロック信号のポジティブエッジに応じて前記コントローラから供給される第2のイネーブル信号の値を出力する第6のフリップフロップと、
    一方の入力に前記第6のフリップフロップの出力を、他方の入力に前記クロック信号を入力し、これらの論理和を出力する第2の論理和回路と、を備える請求項に記載の半導体装置。
  10. 一方の入力に前記コントローラから出力された前記入力クロック信号を入力し、他方の入力にセレクト信号を入力し、当該セレクト信号に応じて前記入力クロック信号の正転・反転を切り替える排他的論理和回路を更に備える、請求項2乃至5のいずれか一項に記載の半導体装置。
  11. 前記第1のクロック制御回路は、一方の入力にクロックストップ信号を、他方の入力に前記入力クロック信号が反転された信号を入力し、これらの論理和を出力する第3の論理和回路と、
    前記クロックストップ信号および前記第3の論理和回路の出力を入力し、当該第3の論理和回路の出力に応じて前記クロックストップ信号が反転された値を出力する第1のラッチ回路と、
    一方の入力に前記第1のラッチ回路の出力を、他方の入力に前記入力クロック信号を入力し、これらの論理積を出力する第3の論理積回路と、を備える請求項2に記載の半導体装置。
  12. 前記第2のクロック制御回路は、一方の入力にクロックストップ信号を、他方の入力に前記入力クロック信号を入力し、これらの論理和を出力する第4の論理和回路と、
    前記クロックストップ信号および前記第4の論理和回路の出力を入力し、当該第4の論理和回路の出力に応じて前記クロックストップ信号の値を出力する第2のラッチ回路と、
    一方の入力に前記第2のラッチ回路の出力を、他方の入力に前記入力クロック信号を入力し、これらの論理和を出力する第5の論理和回路と、を備える請求項3に記載の半導体装置。
  13. 前記第1のクロック制御回路および前記第1のクロックゲーティング回路は、
    一方の入力に第1のイネーブル信号を、他方の入力に前記クロックストップ信号が反転された信号を入力し、これらの論理積を出力する第4の論理積回路と、
    一方の入力に前記クロックストップ信号を、他方の入力に前記入力クロック信号が反転された信号を入力し、これらの論理和を出力する第6の論理和回路と、
    前記第4の論理積回路の出力と前記第6の論理和回路の出力を入力し、当該第6の論理和回路の出力に応じて前記第4の論理積回路の出力の値を出力する第3のラッチ回路と、
    一方に前記第3のラッチ回路の出力を、他方に前記入力クロック信号を入力し、これらの論理積を出力する第5の論理積回路と、を備える請求項6に記載の半導体装置。
  14. 前記第2のクロック制御回路および前記第2のクロックゲーティング回路は、
    一方の入力に第2のイネーブル信号が反転された信号を、他方の入力に前記クロックストップ信号を入力し、これらの論理和を出力する第7の論理和回路と、
    一方の入力に前記クロックストップ信号を、他方の入力に前記入力クロック信号を入力し、これらの論理和を出力する第8の論理和回路と、
    前記第7の論理和回路の出力と前記第8の論理和回路の出力を入力し、当該第8の論理和回路の出力に応じて前記第7の論理和回路の出力の値を出力する第4のラッチ回路と、
    一方に前記第4のラッチ回路の出力を、他方に前記入力クロック信号を入力し、これらの論理和を出力する第9の論理和回路と、を備える請求項に記載の半導体装置。
  15. 前記第1のフリップフロップは、一方の入力に前記クロック信号を、他方の入力に前記データ保持信号を入力し、これらの論理積を出力する第5の論理積回路を備え、前記第1のフリップフロップは当該第5の論理積回路の出力に応じて駆動する、請求項2、4、6、8、11又は13のいずれか一項に記載の半導体装置。
  16. 前記第2のフリップフロップは、一方の入力に前記クロック信号を、他方の入力に前記データ保持信号が反転された信号を入力し、これらの論理和を出力する第10の論理和回路を備え、前記第2のフリップフロップは当該第10の論理和回路の出力に応じて駆動する、請求項3、5、7、9、12又は14のいずれか一項に記載の半導体装置。
  17. クロック信号と同期して駆動すると共に、データ保持信号に応じてデータを保持するフリップフロップの制御方法であって、
    前記フリップフロップが前記クロック信号のポジティブエッジで駆動し、かつ前記クロック信号がローレベルの時にデータを保持する場合であって前記データ保持信号の遷移によって前記フリップフロップに意図しないデータのラッチが発生する場合には、前記クロック信号が固定された後、前記データ保持信号の遷移に基づいて前記フリップフロップがデータを保持する状態に入る前に、前記フリップフロップにローレベルのクロック信号を供給し、
    前記フリップフロップがネガティブエッジで駆動し、かつ前記クロック信号がハイレベルの時にデータを保持する場合であって前記データ保持信号の遷移によって前記フリップフロップに意図しないデータのラッチが発生する場合には、前記クロック信号が固定された後、前記データ保持信号の遷移に基づいて前記フリップフロップがデータを保持する状態に入る前に、前記フリップフロップにハイレベルのクロック信号を供給する、
    フリップフロップの制御方法。
  18. 回路にクロック制御回路を挿入する処理をコンピュータに実行させるためのプログラムであって、
    クロック信号と同期して駆動すると共に、データ保持信号に応じてデータを保持するフリップフロップのうち、前記クロック信号のポジティブエッジで駆動し、かつ前記クロック信号がローレベルの時にデータを保持するフリップフロップの前段に、前記クロック信号が固定された後、前記データ保持信号の遷移に基づいて前記フリップフロップがデータを保持する状態に入る前に、前記フリップフロップにローレベルのクロック信号を供給するクロック制御回路を挿入し、
    前記フリップフロップのうち、前記クロック信号のネガティブエッジで駆動し、かつ前記クロック信号がハイレベルの時にデータを保持するフリップフロップの前段に、前記クロック信号が固定された後、前記データ保持信号の遷移に基づいて前記フリップフロップがデータを保持する状態に入る前に、前記フリップフロップにハイレベルのクロック信号を供給するクロック制御回路を挿入する処理を、コンピュータに実行させるためのプログラム。
JP2010070006A 2010-03-25 2010-03-25 半導体装置、フリップフロップの制御方法およびプログラム Expired - Fee Related JP5315276B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010070006A JP5315276B2 (ja) 2010-03-25 2010-03-25 半導体装置、フリップフロップの制御方法およびプログラム
US13/064,351 US8493106B2 (en) 2010-03-25 2011-03-21 Semiconductor device and method for controlling flip-flop
US13/612,626 US8593192B2 (en) 2010-03-25 2012-09-12 Semiconductor device and method for controlling flip-flop

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010070006A JP5315276B2 (ja) 2010-03-25 2010-03-25 半導体装置、フリップフロップの制御方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2011205355A JP2011205355A (ja) 2011-10-13
JP5315276B2 true JP5315276B2 (ja) 2013-10-16

Family

ID=44655682

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010070006A Expired - Fee Related JP5315276B2 (ja) 2010-03-25 2010-03-25 半導体装置、フリップフロップの制御方法およびプログラム

Country Status (2)

Country Link
US (2) US8493106B2 (ja)
JP (1) JP5315276B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5315276B2 (ja) * 2010-03-25 2013-10-16 ルネサスエレクトロニクス株式会社 半導体装置、フリップフロップの制御方法およびプログラム
CN103078624B (zh) * 2011-10-26 2014-07-16 迈实电子(上海)有限公司 信号输入电路和方法以及具有信号输入电路的芯片
GB2493416B (en) * 2012-05-24 2014-04-23 Broadcom Corp Apparatus and method for synchronising signals
EP2869467B1 (en) 2013-11-01 2020-08-05 Nxp B.V. Latch circuit
EP3217548B1 (en) * 2016-03-11 2021-05-05 Socionext Inc. Multiplexers
US9665160B1 (en) 2016-05-17 2017-05-30 Qualcomm Incorporated Unified retention flip-flop architecture and control

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3409937B2 (ja) * 1995-01-11 2003-05-26 日本電信電話株式会社 Dフリップフロップ回路
KR100519787B1 (ko) * 2002-11-07 2005-10-10 삼성전자주식회사 슬립 모드에서 데이터 보존이 가능한 mtcmos플립플롭 회로
JP2008028930A (ja) * 2006-07-25 2008-02-07 Toshiba Corp 半導体集積回路及びその設計方法
JP2008219491A (ja) * 2007-03-05 2008-09-18 Nec Electronics Corp マスタスレーブ型フリップフロップ回路およびラッチ回路
US7652513B2 (en) * 2007-08-27 2010-01-26 Texas Instruments Incorporated Slave latch controlled retention flop with lower leakage and higher performance
US7583121B2 (en) * 2007-08-30 2009-09-01 Freescale Semiconductor, Inc. Flip-flop having logic state retention during a power down mode and method therefor
KR20090027042A (ko) * 2007-09-11 2009-03-16 주식회사 동부하이텍 리텐션 기능을 갖는 mtcmos 플립플롭
US7622955B2 (en) * 2008-04-17 2009-11-24 Texas Instruments Incorporated Power savings with a level-shifting boundary isolation flip-flop (LSIFF) and a clock controlled data retention scheme
JP5045595B2 (ja) * 2008-07-28 2012-10-10 富士通株式会社 回路設計支援装置、回路設計支援プログラム、回路設計支援方法
JP2010282411A (ja) * 2009-06-04 2010-12-16 Renesas Electronics Corp 半導体集積回路、半導体集積回路の内部状態退避回復方法
US8456214B2 (en) * 2009-11-17 2013-06-04 Arm Limited State retention circuit and method of operation of such a circuit
JP5315276B2 (ja) * 2010-03-25 2013-10-16 ルネサスエレクトロニクス株式会社 半導体装置、フリップフロップの制御方法およびプログラム

Also Published As

Publication number Publication date
US8493106B2 (en) 2013-07-23
US20110234267A1 (en) 2011-09-29
JP2011205355A (ja) 2011-10-13
US8593192B2 (en) 2013-11-26
US20130002328A1 (en) 2013-01-03

Similar Documents

Publication Publication Date Title
JP5315276B2 (ja) 半導体装置、フリップフロップの制御方法およびプログラム
JP4297159B2 (ja) フリップフロップおよび半導体集積回路
JP3357813B2 (ja) ゲーテッドクロック設計支援方法、ゲーテッドクロック設計支援装置及びゲーテッドクロック設計支援プログラムを格納したコンピュータ読み取り可能な記録媒体
JP6092649B2 (ja) 演算装置、アレイ型演算装置およびその制御方法、情報処理システム
CN109478157B (zh) 电压下垂的时钟调整
US11842199B2 (en) Controlling the operating speed of stages of an asynchronous pipeline
US9672305B1 (en) Method for gating clock signals using late arriving enable signals
EP3459176B1 (en) Unified retention flip-flop architecture and control
JP2014052801A (ja) 回路システムおよび半導体装置
JP2011029828A (ja) 半導体集積回路
WO2007034265A1 (en) System and method for storing state information
WO2018144126A1 (en) Clock glitch prevention for retention operational mode
US8051313B2 (en) Apparatus, system and method of power state control
CN110018712B (zh) 半导体装置和半导体系统
JP4121454B2 (ja) クロック回路のための方法及び装置
KR102057503B1 (ko) 반도체 회로
CN215068135U (zh) SOC芯片内Flash存储器的低功耗控制装置
CN111243634B (zh) 电力控制电路和包括该电力控制电路的半导体装置
KR101008987B1 (ko) 전원 제어 회로 및 이를 이용한 반도체 메모리 장치
US11907005B2 (en) Clock management circuit and multi-core system including the same
US20100327938A1 (en) System and method for clock control for power-state transitions
WO2023167767A1 (en) Method and apparatus to control power supply rails during platform low power events for enhanced usb-c user experience
JPH01251120A (ja) 情報処理装置
JP2006013816A (ja) フリップフロップ回路及び半導体装置
JP2006050411A (ja) 半導体装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120816

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130301

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130416

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130531

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: 20130625

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130708

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5315276

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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