〔第1実施形態〕
図1は、本実施形態に係る半導体集積回路装置における組み合わせ論理回路の回路構成の一例を示す図であり、図2は、図1の半導体集積回路装置の動作タイミングチャートを示す図である。
図1に示すように、本実施形態に係る半導体集積回路装置におけるクロック動作回路は、フリップフロップ回路FF10と、組み合わせ論理回路COM10と、フリップフロップ回路FF11とを備えて構成されている。
フリップフロップ回路FF10のデータ入力端子Dには、データ信号である入力信号INが入力され、クロック入力端子から入力されたクロック信号CLK1に同期して、データ出力端子Qから出力信号として出力される。このフリップフロップ回路FF10から出力された出力信号は、組み合わせ論理回路COM10に入力される。
この組み合わせ論理回路COM10では、予め定めされた所定の論理演算を行い、その論理演算結果が、組み合わせ論理回路COM10から出力信号として出力される。組み合わせ論理回路COM10からの出力信号は、フリップフロップ回路FF11のデータ入力端子Dに入力され、クロック入力端子から入力されたクロック信号CLK2に同期して、データ出力端子Qから出力信号OUTとして出力される。
具体的なフリップフロップ回路FF10、FF11の動作としては、クロック信号CLK1およびCLK2がローレベルからハイレベルに切り替わった際には、データ入力端子Dに入力されているデータ信号を取り込んで、データ出力端子Qから出力信号として出力するが、クロック信号CLK1、CLK2がそれ以外の状態である場合には、その出力信号を維持する。
さらに、組み合わせ論理回路COM10は、所定の論理演算を行うために1または複数の論理セルで構成されており、例えば、図1では4個の論理セルLC10〜LC13で構成されている。各論理セルは、P型のMOSトランジスタと、論理回路と、N型のMOSトランジスタで構成されている。
各論理セルは、回路制御信号ENがハイレベルの場合には、N型のMOSトランジスタがオンになり、P型のMOSトランジスタがオフになり、論理回路の論理レベルを、その出力端子に出力し、後段の論理セルに入力する。一方、回路制御信号ENがローレベルの場合には、N型のMOSトランジスタオフになり、P型のMOSトランジスタがオンになり、論理回路の論理レベルに拘わらず、その出力信号はハイレベルにプルアップされて、後段の論理セルに入力される。
図1に示すように、本実施形態においては、P型のMOSトランジスタPM10と、NAND回路NA10と、N型のMOSトランジスタNM10とにより、1つの論理セルLC10を構成しており、P型のMOSトランジスタPM11と、NOR回路NR10と、N型のMOSトランジスタNM11とにより、1つの論理セルLC11を構成しており、P型のMOSトランジスタPM12と、NAND回路NA11と、N型のMOSトランジスタNM12とにより、1つの論理セルLC12を構成しており、P型のMOSトランジスタPM13と、NAND回路NA12と、N型のMOSトランジスタNM13とにより、1つの論理セルLC13を構成している。このことから分かるように、本実施形態においては、論理セルLC10〜LC13は、いずれも、フットスイッチ付きの論理セルを構成している。
P型のMOSトランジスタPM10〜PM13のソース端子には、それぞれ、第1基準信号VDDが入力されており、また、これらの制御端子には回路制御信号ENがそれぞれ入力されている。NAND回路NA10の2つの入力端子には、フリップフロップ回路FF10の出力信号と、入力信号IN1が入力されている。このNAND回路NA10の出力端子と、P型のMOSトランジスタPM10のドレイン端子は、NOR回路NR10の一方の入力端子に接続されている。NOR回路NR10の他方の入力端子には、入力信号IN2が入力されている。
このNOR回路NR10の出力端子と、P型のMOSトランジスタPM11のドレイン端子は、NAND回路NA11の一方の入力端子に接続されている。NAND回路NA11の他方の入力端子には、入力信号IN3が入力されている。このNAND回路NA11の出力端子と、P型のMOSトランジスタPM12のドレイン端子は、NAND回路NA12の一方の入力端子に接続されている。NAND回路NA12の他方の入力端子は、NAND回路NA10の出力端子と、P型のMOSトランジスタPM10のドレイン端子とに接続されている。
NAND回路NA12の出力端子と、P型のMOSトランジスタPM13のドレイン端子は、フリップフロップ回路FF11のデータ入力端子Dに接続されている。N型のMOSトランジスタNM10〜NM13のソース端子には、それぞれ、グランド電圧の第2基準信号GNDが入力されており、制御端子には、それぞれ、回路制御信号ENが入力されている。また、P型のMOSトランジスタPM10〜PM13の制御端子にも、それぞれ、回路制御信号ENが入力されている。なお、図示されたCOM10は組み合わせ論理回路の1例であって、一般的なCMOSスタンダードセルによる組み合わせ論理回路に適用可能である。
この回路制御信号ENは、図2から分かるように、クロック信号CLK1、CLK2を供給する場合には、その立ち上がりエッジに同期してハイレベルになり、クロック信号CLK1、CLK2を停止する場合には、本来の立ち上がりエッジに同期してローレベルになる信号である。本実施形態においては、回路制御信号ENがハイレベルにある状態を、アクティブモードと定義し、この回路制御信号ENがローレベルにある状態を、スリープモードと定義することとする。
なお、P型のMOSトランジスタPM10〜PM13は、本実施形態における第1導電型のMOSトランジスタに相当しており、N型のMOSトランジスタNM10〜NM13は、本実施形態における第2導電型のMOSトランジスタに相当している。また、P型のMOSトランジスタPM10〜PM13のソース端子に入力されている第1基準信号VDDの電圧は、本実施形態における第1電源電圧に相当し、N型のMOSトランジスタNM10〜NM13のソース端子に入力されている第2基準信号GNDの電圧は、本実施形態における第2電源電圧に相当している。
また、本実施形態においては、NAND回路NA10〜NA12と、NOR回路NR10は、いずれも、予め定められた論理演算を行うスタンダードセルの一例であり、MOSトランジスタにより構成されている。NAND回路は、例えば、図3に示すようなMOSトランジスタで構成することができる。この図3の例では、互いに並列に接続されたP型のMOSトランジスタPM20、PM21と、これに直列して、互いに直列に接続されたN型のMOSトランジスタNM20、21とにより、NAND回路が構成されている。
この図3においては、NAND回路NA10を含む論理セルLC10の構成を例示しており、このため、P型のMOSトランジスタPM21と並列に、プルアップ用のMOSトランジスタPM10が設けられており、N型のMOSトランジスタNM21と第2基準信号GNDの信号線との間にフットスイッチであるMOSトランジスタNM10が設けられている。この構成から明らかなように、プルアップ用のMOSトランジスタPM10がオンになれば、NAND回路NA10の論理出力に拘わらず、出力信号はハイレベルになる。また、フットスイッチであるMOSトランジスタNM10がオフになれば、NAND回路NA10を構成する内部のMOSトランジスタの状態に拘わらず、リーク電流は遮断される。
NOR回路は、例えば、図4に示すようなMOSトランジスタで構成することができる。この図4の例では、互いに直列に接続されたP型のMOSトランジスタPM30、PM31と、これに直列して、互いに並列に接続されたN型のMOSトランジスタNM30、NM31とにより、NOR回路が構成されている。
この図4においては、NOR回路NR10を含む論理セルLC11の構成を例示しており、このため、P型のMOSトランジスタPM30、PM31と並列に、プルアップ用のMOSトランジスタPM11が設けられており、N型のMOSトランジスタNM30、NM31と第2基準信号GNDの信号線との間にフットスイッチであるMOSトランジスタNM11が設けられている。この構成から明らかなように、プルアップ用のMOSトランジスタPM11がオンになれば、NOR回路NR10の論理出力に拘わらず、出力信号はハイレベルになる。また、フットスイッチであるMOSトランジスタNM11がオフになれば、NOR回路NR10を構成する内部のMOSトランジスタの状態に拘わらず、リーク電流は遮断される。
なお、MOSトランジスタNM10〜NM13の閾値電圧を、NAND回路NA10〜NA12を構成するMOSトランジスタPM20、PM21、NM20、NM21と、NOR回路NR10を構成するMOSトランジスタPM30、PM31、NM30、NM31を構成するMOSトランジスタの閾値電圧より、高くなるように構成しても良い。このように構成することにより、スタンダードセルであるNAND回路、NOR回路の動作速度を速くすることができるとともに、N型のMOSトランジスタNM10〜NM13で、より確実にリーク電流を遮断することができる。この場合、P型のMOSトランジスタPM10〜PM13の閾値電圧は、N型のMOSトランジスタNM10と同じ閾値電圧であってもよいし、これより低い閾値電圧であってもよい。
次に、図2を参照して、図1に示した組み合わせ論理回路COM10の動作を詳細に説明する。このとき第1基準信号(VDD)はハイレベル、第2基準信号(GND)はローレベルであると仮定する。また、ここではCLK1とCLK2には同じクロック信号CLKが入力されたものとする。またIN1及びIN3には第1基準信号(VDD)、IN2には第2基準信号(GND)が入力されたものとする。
まず、時刻T1から時刻T2の間の第1クロックサイクルでは、回路制御信号ENがハイレベルであるので、組み合わせ論理回路COM10は通常の論理回路と同様の動作をする。
次の時刻T2から時刻T3の間の第2クロックサイクルでは、クロック信号CLKが立ち上がった後、回路制御信号ENがハイレベルからローレベルに変化して、スリープモードに入る。この結果、ノードB、ノードC、ノードD、ノードEの4つのノードが、それぞれ、P型のMOSトランジスタPM10〜PM13によりプルアップされて、ハイレベルになる。つまり、スリープモードの場合、論理セルLC10〜LC13のスタンダードセルであるNAND回路NA10〜NA12、NOR回路NR10の出力に拘わらず、論理セルLC10〜LC13の出力信号はハイレベルになる。このため、フリップフロップ回路FF11のデータ入力端子Dへの入力信号も、ハイレベルに固定される。
次の時刻T3から時刻T4の第3クロックサイクルでは、回路制御信号ENのローレベルが維持されて、クロック信号CLKの供給を停止したクロックゲーテリング状態が維持される。
次の時刻T4から時刻T5の第4クロックサイクルでは、このクロックサイクルの開始直後に、回路制御信号ENがローレベルからハイレベルになり、アクティブモードに変化する。回路制御信号ENがハイレベルになると、P型のMOSトランジスタPM10〜PM13がオフになり、N型のMOSトランジスタNM10〜NM13がオンになるので、スタンダードセルであるNAND回路NA10〜NA12、NOR回路NR10が動作して定められた論理演算を行い、出力端子に、その論理演算結果を出力する。すなわち、ノードA〜ノードEが順次、スリープモードに入る直前の値に復帰する。本実施形態においては、ノードEの値がスリープモードに入る直前の値に復帰するのは、この第4クロックサイクルの間、つまり、時刻T5の前である。
次の時刻T5から時刻T6の第5クロックサイクルでは、時刻T5において、クロック信号CLKがローレベルからハイレベルに変化すると、フリップフロップ回路FF11は、データ入力端子Dに入力されているノードEの値を取り込んで、データ出力端子Qから出力信号OUTとして出力する。これにより、フリップフロップ回路FF11は、スリープモードに入る直前の値を取り込んで正常に出力信号OUTとして出力できた状態となる。また、組み合わせ論理回路COM10は、クロック信号CLKに同期した通常の動作が可能な状態となる。
なお、プルアップ用のMOSトランジスタのゲート幅は、他のMOSトランジスタのゲート幅に比べて小さくてよい。なぜなら、アクティブモード時、プルアップ用のMOSトランジスタはオフのままであるので、寄生容量の観点からサイズは小さい方がよい。また、そのサイズは、アクティブモードからスリープモードに切り替わる際の切り替え時間に影響を与えるが、その時間はクロック周期程度でよいので、ゲート幅は他のMOSトランジスタに比べて小さくすることができる。
次に、スリープモード時すなわち回路制御信号ENがローレベルの時の論理セルの動作について説明する。例えば、NAND回路で構成された論理セルLC13は、図3に示す回路構成であり、スリープモード時すなわち回路制御信号ENがローレベルの時、入力信号1(ノードB)および入力信号2(ノードD)はハイレベルとなる。また、出力信号(ノードE)もハイレベルとなる。このとき、MOSトランジスタNM20,NM21のソース電位は、電源電圧VDDからMOSトランジスタNM20(NM21)の閾値電圧だけ下がった電位となる。
そして、論理セルLC13におけるゲートリーク電流の多くは、MOSトランジスタNM10のドレインからゲートに流れるものとなる。これは、NAND回路を構成するトランジスタの各端子すべての電位はハイレベルとなり電位差がなく、MOSトランジスタNM20,NM21のゲートソース間の電位差は閾値電圧程度の小さな値となるからである。また、MOSトランジスタPM10は、他のトランジスタに比べ、比較的小さいゲート幅での設計が可能であるため、ゲートリーク電流は小さい。
したがって、回路制御信号ENがローレベルの時のゲートリーク電流の多くは、MOSトランジスタNM10におけるものであり、MOSトランジスタNM10におけるゲート−ドレイン間の電位差は、電源電圧VDD分ではなく、電源電圧VDDから閾値電圧分だけ小さくなったものとなるため、ゲートリーク電流を削減することができる。
以上のように、本実施形態に係る半導体集積回路装置によれば、スリープモードからアクティブモードに切り替えるために、回路制御信号ENをローレベルからハイレベルに切り替えた場合、その次のクロックサイクルから、組み合わせ論理回路COM10がクロック信号CLKに同期した通常の動作をすることができるようになる。すなわち、図2の例では、時刻T4から時刻T5の第4クロックサイクルにおいて回路制御信号ENをハイレベルにして、次の時刻T5からは、組み合わせ論理回路COM10は正常な論理演算結果を論理レベルとして出力することができるようになる。このため、スリープモードにおいて、回路制御信号ENをローレベルにすることができる時間を長くすることができ、組み合わせ論理回路COM10のリーク電流による電力消費を低減することができるようになる。
また、本実施形態に係る半導体集積回路装置によれば、スリープモード時のゲートリーク電流を小さくすることができる。尚、後述の実施例においても、プルアップ用トランジスタを含む論理セルでは、回路制御信号ENがローレベル、他の入力信号がハイレベルの時、同様の効果を得ることができる。
また、本実施形態に係る半導体集積回路装置によれば、スリープモードにおける論理セルLC10〜LC13の出力信号がハイレベルであると確定することができるので、スリープモードからアクティブモードに移行する際(回路制御信号ENをローレベルからハイレベルに切り替えた後)における、これら論理セルLC10〜LC13の動作タイミングを、既存の解析ツールを用いて、解析することができる。既存の解析ツールを用いれば、回路制御信号ENがハイレベルになった後、ノードEの値が確定するまでに必要な時間を求めることができ、クロック信号CLKが次にハイレベルになるまでに、ノードEの値が確定しているかどうかを検証することができる。つまり、この半導体集積回路装置の設計段階において、回路制御信号ENがハイレベルになった次のクロックサイクルまでに、この組み合わせ論理回路COM10の出力論理レベルが確定しているかどうかを検証することができ、これまでのように製品製造後に遅延サイクル数を調整する必要がなくなる。
〔第2実施形態〕
第2実施形態では、ゲーティングされたクロック信号CLKを、OR回路とフリップフロップ回路とにより生成するようにしたものである。以下、上述した第1実施形態と異なる部分を説明する。
図5は、本実施形態に係る半導体集積回路装置の回路構成の一例を示す図であり、図6は、図5の半導体集積回路装置の動作タイミングチャートを示す図である。
図5に示すように、本実施形態に係る半導体集積回路装置は、上述した第1実施形態の半導体集積回路装置に、フリップフロップ回路FF20とOR回路OR20とインバータ回路IN20を追加することにより構成されている。
フリップフロップ回路FF20のクロック入力端子には、システムクロック信号SysCLKが入力されており、データ入力端子Dには、クロック制御データ信号EnCLKDが入力されている。図6から分かるように、このフリップフロップ回路FF20は、システムクロック信号SysCLKがローレベルからハイレベルに切り替わった際のクロック制御データ信号EnCLKDの値を、クロック制御信号EnCLKとして出力する。このフリップフロップ回路FF20により、システムクロック信号SysCLKのクロックサイクルの途中で、クロック制御データ信号EnCLKDが変化した場合でも、システムクロック信号SysCLKがローレベルからハイレベルに変化した際にのみ、クロック制御信号EnCLKを変化させることができる。このクロック制御信号EnCLKは、クロック信号を供給するか、停止するかを制御するための制御信号である。
OR回路OR20には、このクロック制御信号EnCLKと、システムクロック信号SysCLKとが入力されており、ゲーティングされたクロック信号CLKをフリップフロップ回路FF11に出力する。したがって、このゲーティングされたクロック信号CLKは、クロック制御信号EnCLKがローレベルの場合には、システムクロック信号SysCLKと同期した信号となるが、クロック制御信号EnCLKがハイレベルの場合には、ハイレベルに固定される。
フリップフロップ回路FF20から出力されたクロック制御信号EnCLKは、インバータIN20で反転されて、回路制御信号ENとなり、N型のMOSトランジスタNM10〜NM13の制御端子とP型のMOSトランジスタPM10〜PM13に入力される。
フリップフロップ回路FF10のクロック入力端子には、クロック信号CLK1が入力されているが、このクロック信号CLK1は、システムクロックSysCLKから生成された別系統のクロック信号であっても良いし、或いは、OR回路OR20から出力されたクロック信号CLK2であっても良い。ここでは、クロック信号CLK1にもCLK2が入力されたとして説明をする。
図6に示す動作タイミングチャートの一例では、時刻T1から時刻T2の第1クロックサイクルの中間で、クロック制御データ信号EnCLKDがローレベルからハイレベルに変化している。このため、次のシステムクロック信号SysCLKの立ち上がりである時刻T2で、クロック制御信号EnCLKがローレベルからハイレベルに変化している。このため、回路制御信号ENは、この時刻T2で、ハイレベルからローレベルに変化している。またクロック信号CLK2はハイレベルに保たれる。
一方、時刻T3から時刻T4の間の第3クロックサイクルの中間で、クロック制御データ信号EnCLKDがハイレベルからローレベルに変化した場合には、これと反対の動作となる。クロック信号CLK2はT4からT5の間に立ち下がる。
以上のように構成することにより、クロック制御データ信号EnCLKDとシステムクロック信号SysCLKとから、ゲーティングされたクロック信号CLKを生成することができる。
なお、回路制御信号ENとクロック信号CLK2との間にタイミングのずれが存在すると、フリップフロップ回路FF11が誤ったデータを取り込んでしまうおそれがある。特に、アクティブモードからスリープモードに移行する際に、回路制御信号ENがクロック信号CLK2の立ち上がりよりも先に立ち下がると、フリップフロップ回路FF11が誤ったデータを取り込んでしまう。このため、設計上、回路制御信号ENとクロック信号CLK2との間のタイミングにずれが生じないように配慮する必要がある。
また、本実施形態に係る半導体集積回路装置は、図7に示すように、OR回路OR20の出力をクロック信号CLK1として、フリップフロップ回路FF10に入力し、別系統のクロック信号CLK2をフリップフロップ回路F11に入力することも可能である。
〔第3実施形態〕
第3実施形態では、上述した第2実施形態を変形して、ゲーティングされたクロック信号CLK2を、フリップフロップ回路とロースルーラッチ回路とAND回路とにより生成するようにしたものである。以下、上述した第2実施形態と異なる部分を説明する。
図8は、本実施形態に係る半導体集積回路装置の回路構成の一例を示す図であり、図9は、図8の半導体集積回路装置の動作タイミングチャートを示す図である。
図8に示すように、本実施形態に係る半導体集積回路装置は、フリップフロップ回路FF20の後段に、ロースルーラッチ回路LTL30が設けられており、このロースルーラッチ回路LTL30の後段に、AND回路AN30が設けられている。ロースルーラッチ回路LTL30は、クロック入力端子に入力されている信号がローレベルの間は、データ入力端子Dの入力をデータ出力端子Qから出力するが、クロック入力端子に入力されている信号がハイレベルの間は、直前の状態を保持して出力する回路である。
フリップフロップ回路FF20とロースルーラッチ回路LTL30のクロック入力端子には、システムクロック信号SysCLKが入力されている。フリップフロップ回路FF20のデータ入力端子Dには、クロック制御データ信号EnCLKDが入力されており、フリップフロップ回路FF20のデータ出力端子Qから出力されたクロック制御信号EnCLKは、ロースルーラッチ回路LTL30のデータ入力端子Dに入力されている。ロースルーラッチ回路LTL30のデータ出力端子Qから出力された信号は、AND回路AN30の一方の入力端子に入力されている。AND回路AN30の他方の入力端子には、システムクロック信号SysCLKが入力されている。そして、このAND回路AN30の出力端子から、ゲーティングされたクロック信号CLK2が出力され、フリップフロップ回路FF11のクロック入力端子に入力されている。
但し、本実施形態においては、図9に示すように、クロック制御データ信号EnCLKDは、アクティブモードからスリープモードに切り替わる際に、ハイレベルからローレベルに切り替わり、逆に、スリープモードからアクティブモードに切り替わる際に、ローレベルからハイレベルに切り替わる信号である。このため、クロック制御信号EnCLKを、そのまま、回路制御信号ENとして用いることができる。
以上のように構成することにより、クロック制御データ信号EnCLKDとシステムクロック信号SysCLKとから、ゲーティングされたクロック信号CLK2を生成することができる。
なお、回路制御信号ENとクロック信号CLK2との間にタイミングのずれが存在すると、フリップフロップ回路FF11が誤ったデータを取り込んでしまうおそれがある。特に、アクティブモードからスリープモードに移行する際に、回路制御信号ENがクロック信号CLK2の立ち上がりよりも先に立ち下がると、フリップフロップ回路FF11が誤ったデータを取り込んでしまう。このため、設計上、回路制御信号ENとクロック信号CLK2との間のタイミングにずれが生じないように配慮する必要がある。
また、本実施形態に係る半導体集積回路装置は、図10に示すように、AND回路AN30の出力をクロック信号CLK1として、フリップフロップ回路FF10に入力し、別系統のクロック信号CLK2をフリップフロップ回路F11に入力することも可能である。
〔第4実施形態〕
第4実施形態では、上述した第1実施形態を変形して、論理セルLC10〜LC13のうち、一部の論理セルである論理セルLC13をフットスイッチ付きの論理セルではなく、通常の論理セルにより構成するようにしたものである。具体的には、回路制御信号ENがローレベルにある場合でも、入力信号である前段から出力された出力信号の論理レベルが不定にならない論理セルの一部については、スタンダードセルは設けるが、フットスイッチ用のMOSトランジスタやプルアップ用のMOSトランジスタは設けないようにしたものである。以下、上述した第1実施形態と異なる部分を説明する。
図11は、本実施形態に係る半導体集積回路装置の回路構成の一例を示す図であり、図12は、図11の半導体集積回路装置の動作タイミングチャートを示す図である。
図11に示すように、本実施形態に係る半導体集積回路装置の組み合わせ論理回路COM40においては、論理セルLC13には、NAND回路NA12は設けられているが、P型のMOSトランジスタPM13とN型のMOSトランジスタNM13とは設けられていない。このため、本実施形態においては、論理セルLC13は、スタンダードセルであるNAND回路NA12により構成されている。
NAND回路NA12の入力は、NAND回路NA10の出力信号と、NAND回路NA11の出力信号である。但し、スリープモードの際には、図12にも示すように、P型のMOSトランジスタPM10を介して、NAND回路NA12の一方の入力端子には、第1基準信号VDDが供給され(ノードB)、P型のMOSトランジスタPM12を介して、他方の入力端子にも、第1基準信号VDDが供給される(ノードD)。このため、NAND回路NA12の入力信号はハイレベルに固定されることとなり、大きなリーク電流が流れてしまう状態にはならない。このように考えると、NAND回路NA12のフットスイッチは省略することが可能であることが分かる。フットスイッチであるN型のMOSトランジスタNM13を省略することにより、P型のMOSトランジスタPM13も省略することができ、これによりトランジスタ数の削減を図ることができる。タイミング制約を満たすのであれば、NAND回路NA12を高い閾値のトランジスタで形成することにより、NAND回路NA12のリーク電流も削減できる。
なお、図11の例では、フットスイッチを省略する論理セルが、最後の段の論理セルであるが、このようにフットスイッチの省略することのできる論理セルは最後の段に限るものではなく、スリープモードの際に入力が固定されるスタンダードセルから構成される論理セルであれば、どのような位置にあってもよい。
なお、クロック信号CLK1、CLK2や回路制御信号ENの生成方法については、上述した第2実施形態及び第3実施形態のいずれの方法でもよい。
〔第5実施形態〕
第5実施形態では、上述した第1実施形態を変形して、論理セルLC10〜LC13のうち、一部の論理セルについては、スリープモードにおいてプルアップをしないようにしたものである。具体的には、出力信号が、フットスイッチを有する論理セルにのみ入力されている、論理セルについては、スタンダードセルとフットスイッチは設けるが、プルアップ用のMOSトランジスタは設けないようにしたものである。以下、上述した第1実施形態と異なる部分を説明する。
図13は、本実施形態に係る半導体集積回路装置の回路構成の一例を示す図であり、図14は、図13の半導体集積回路装置の動作タイミングチャートを示す図である。
図13に示すように、本実施形態に係る半導体集積回路装置の組み合わせ論理回路COM50においては、すべての論理セルLC10〜LC13に、それぞれ、フットスイッチであるN型のMOSトランジスタNM10〜13が設けられている。すなわち、すべてのスタンダードセルにフットスイッチが設けられている。このため、スリープモードにおいて、これらスタンダードセルであるNAND回路NA10〜NA12とNOR回路NR10との入力が不定になったとしても、これらのスタンダードセルからは大きなリーク電流が流れることはない。
一方、プルアップのためのトランジスタは、P型のMOSトランジスタPM13だけが設けられており、これ以外のMOSトランジスタPM10〜PM12は設けられていない。このため、時刻T2から時刻T4の間のスリープモードにおいては、図14に示すように、NAND回路NA12の出力信号はハイレベルにプルアップされるが(ノードE)、これ以外のスタンダードセルであるNAND回路NA10、NA11とNOR回路NR10の出力信号は不定になる(ノードB、ノードC、ノードD)。
しかし、後段のフリップフロップ回路FF11のデータ入力端子Dに入力されるのは、NAND回路NA12の出力だけであるので、このNAND回路NA12の出力をハイレベルにプルアップできれば、組み合わせ論理回路COM50内の不定の状態が、フリップフロップ回路FF11に影響を及ぼすことはない。
このように構成することによっても、組み合わせ論理回路COM50内のMOSトランジスタの数を削減することができる。
なお、クロック信号CLK1、CLK2や回路制御信号ENの生成方法については、上述した第2実施形態及び第3実施形態のいずれの方法でもよい。
〔第6実施形態〕
第6実施形態では、上述した第4実施形態を変形して、出力信号がフットスイッチ付きセルの論理セルにのみ入力される論理セルについては、スリープモードにおいてプルアップしないようにしたものである。以下、上述した第4実施形態と異なる部分を説明する。
図15は、本実施形態に係る半導体集積回路装置の回路構成の一例を示す図であり、図16は、図15の半導体集積回路装置の動作タイミングチャートを示す図である。
図15に示すように、本実施形態に係る半導体集積回路装置の組み合わせ論理回路COM60は、上述した第4実施形態に係る組み合わせ論理回路COM40と比べて、論理セルLC11におけるプルアップ用のMOSトランジスタPM11が省略されている。この論理セルLC11の出力信号は、スリープモードにおいて不定になるが(図16のノードC)、NAND回路NA11に入力されるのみである。ここで、NAND回路NA11は、フットスイッチであるMOSトランジスタNM12が設けられているので、NAND回路NA11からのリーク電流は遮断される。また、NOR回路NR10の出力信号は、外部に出力されることもない。したがって、NOR回路NR10の出力信号が不定であっても、問題は生じない。
このように構成することによっても、組み合わせ論理回路COM60内のMOSトランジスタの数を削減することができる。
なお、クロック信号CLK1、CLK2や回路制御信号ENの生成方法については、上述した第2実施形態及び第3実施形態のいずれの方法でもよい。
〔第7実施形態〕
第7実施形態では、上述した第1実施形態を変形して、半導体集積回路装置がスキャンテストモードを備えるようにしたものである。以下、上述した第1実施形態と異なる部分を説明する。
図17は、本実施形態に係る半導体集積回路装置の回路構成の一例を示す図である。この図17に示すように、本実施形態に係る半導体集積回路装置の回路には、OR回路OR70が設けられており、このOR回路OR70には、回路制御信号ENとテストイネーブル信号TEとが入力されている。OR回路OR70から出力された反転ホールド信号HOLDXは、MOSトランジスタNM10〜NM13とMOSトランジスタPM10〜PM13の制御端子に入力されている。
このため、スキャンテストモードにおいては、テストイネーブル信号TEをハイレベルにすることにより、フットスイッチであるMOSトランジスタNM10〜NM13をオンにすることができ、MOSトランジスタPM10〜PM13をオフにすることができる。すなわち、テストイネーブル信号TEをハイレベルにすることにより、回路制御信号ENの値に拘わらず、MOSトランジスタNM10〜NM13をオンにすることができ、MOSトランジスタPM10〜PM13をオフにすることができる。
このように構成することにより、スキャンテストモードにおいては、論理セルLC10〜LC13を通常のスタンダードセルから構成された論理セルとして、テストできるようになる。
〔第8実施形態〕
第8実施形態では、上述した第1実施形態を変形して、組み合わせ論理回路COM10とフリップフロップ回路FF11との間に、ハイスルーラッチ回路を追加挿入したものである。以下、上述した第1実施形態と異なる部分を説明する。
図18は、本実施形態に係る半導体集積回路装置の回路構成の一例を示す図であり、図19は、図18の半導体集積回路装置の動作タイミングチャートを示す図である。
図18に示すように、本実施形態に係る半導体集積回路装置の回路には、制御信号生成回路GENが設けられている。この制御信号生成回路GENには、システムクロック信号SysCLKとクロック制御信号EnCLKとが入力されている。制御信号生成回路GENは、入力されたこれらシステムクロック信号SysCLKとクロック制御信号EnCLKとに基づいて、クロック信号CLK1、CLK2と回路制御信号ENとを生成して出力する。このことから分かるように、クロック制御信号EnCLKの遷移が生じた後に、回路制御信号ENの遷移が発生する。
また、図18に示すように、本実施形態に係る半導体集積回路装置の回路では、組み合わせ論理回路COM10とフリップフロップ回路FF11との間に、ハイスルーラッチ回路HTL80が追加で挿入されている。このハイスルーラッチ回路HTL80は、クロック入力端子への入力信号がハイレベルの間は、データ入力端子Dから入力されたデータ信号をデータ出力端子Qからそのまま出力するが、クロック入力端子への入力信号がローレベルの間は、直前の状態を保持してデータ出力端子Qから出力する。
したがって、図19に示すように、ハイスルーラッチ回路HTL80のデータ入力端子に入力されたデータ信号は、回路制御信号ENがハイレベルの間はデータ出力端子から出力されるが、回路制御信号ENがローレベルの間は出力されずに直前の状態が保持される(ノードEとノードF)。このようなハイスルーラッチ回路HTL80を挿入することにより、アクティブモードからスリープモードに移行するために、クロック制御信号EnCLKがハイレベルからローレベルに切り替わった次のクロックサイクルで、回路制御信号ENをハイレベルからローレベルに切り替えることができるようになる。また、スリープモードからアクティブモードに移行するために、クロック制御信号EnCLKがローレベルからハイレベルに切り替わった次のクロックサイクルで、回路制御信号ENをローベルからハイレベルに切り替えることができるようになる。
これは、回路制御信号ENがローレベルの間は、ハイスルーラッチ回路HTL80が直前の状態を保持してデータ出力端子Qから出力するので、回路制御信号ENがどのようなタイミングで切り替わったとしても、フリップフロップ回路FF11に影響を及ぼさないからである。このため、アクティブモードとスリープモードとの切替を迅速に行うことができるようになる。
また、本実施形態においては、1つのクロックサイクルの中で、クロック制御信号EnCLKが切り替わることのできるタイミングに制約を受けないので、1つのクロックサイクルの終了直前に、クロック制御信号EnCLKが切り替わった場合でも、次のクロックサイクル中にアクティブ/スタンバイの切替が可能になる。つまり、クロック制御信号EnCLKの遷移が起きた後に、回路制御信号ENが遷移するが、クロック制御信号EnCLKがどのようなタイミングで遷移しても、次のクロックサイクルで回路制御信号ENを遷移させることができるのである。
また本例では、EN信号をハイスルーラッチに入力しているが、EN信号の反転信号をロースルーラッチに入力する構成としてもよい。
〔第9実施形態〕
第9実施形態では、上述した第8実施形態に上述した第2実施形態を適用して、ゲーティングされたクロック信号CLK2を、OR回路により生成するようにしたものである。以下、上述した第2実施形態及び第8実施形態と異なる部分を説明する。
図20は、本実施形態に係る半導体集積回路装置の回路構成の一例を示す図であり、図21は、図20の半導体集積回路装置の動作タイミングチャートを示す図である。
図20に示すように、本実施形態に係る半導体集積回路装置の回路では、上述した第8実施形態の半導体集積回路装置に、OR回路OR90とフリップフロップ回路FF90とインバータIN90とを追加することにより構成されている。OR回路90には、クロック制御信号EnCLKと、システムクロック信号SysCLKとが入力されている。このOR回路OR90の出力信号は、ゲーティングされたクロック信号CLK2として、フリップフロップ回路FF11に入力されている。
クロック制御信号EnCLKはインバータIN90を介して、フリップフロップ回路FF90のデータ入力端子Dに入力されている。また、フリップフロップ回路FF90のクロック入力端子には、システムクロック信号SysCLKが入力されている。したがって、図21に示すように、このフリップフロップ回路FF90のデータ出力端子Qからは、システムクロック信号SysCLKに同期した、クロック制御信号EnCLKを反転した回路制御信号ENが出力される。この回路制御信号ENは、P型のMOSトランジスタPM10〜PM13の制御端子と、N型のMOSトランジスタNM10〜NM13の制御端子とハイスルーラッチ回路HTL80に入力される。
フリップフロップ回路FF10には、クロック信号CLK1が入力されているが、このクロック信号CLK1は、システムクロックSysCLKから生成された別系統のクロック信号であっても良いし、或いは、OR回路OR90から出力されたクロック信号CLK2であっても良い。
以上のように構成することにより、クロック制御信号EnCLKとシステムクロック信号SysCLKとから、ゲーティングされたクロック信号CLK2を生成することができる。
なお、本実施形態においては、クロック制御信号EnCLKは、システムクロック信号SysCLKがハイレベルの間に変化するように保証する必要がある。なぜなら、システムクロック信号SysCLKがローレベルの間に、クロック制御信号EnCLKがローレベルからハイレベルに変化すると、その時点で、クロック信号CLK2がローレベルからハイレベルに変化してしまうからである。
また、論理セルLC10〜LC13に入力される回路制御信号ENと、ハイスルーラッチ回路HTL80に入力される回路制御信号ENとの間にタイミングのずれが存在すると、ハイスルーラッチ回路HTL80が誤ったデータを取り込んでしまうおそれがある。特に、アクティブモードからスリープモードに移行する際に、論理セルLC10〜LC13に入力される回路制御信号ENが、ハイスルーラッチ回路HTL80に入力される回路制御信号ENよりも先に立ち下がると、ハイスルーラッチ回路HTL80が誤ったデータを取り込んでしまう。このため、設計上、論理セルLC10〜LC13に入力される回路制御信号ENと、ハイスルーラッチ回路HTL80に入力される回路制御信号ENとの間のタイミングにずれが生じないように配慮する必要がある。
また、本実施形態に係る半導体集積回路装置は、図22に示すように、OR回路OR90の出力をクロック信号CLK1として、フリップフロップ回路FF10に入力し、別系統のクロック信号CLK2をフリップフロップ回路F11に入力することも可能である。
〔第10実施形態〕
第10実施形態では、上述した第8実施形態に上述した第3実施形態を適用して、ゲーティングされたクロック信号CLK2を、ロースルーラッチ回路とAND回路により生成するようにしたものである。以下、上述した第3実施形態及び第8実施形態と異なる部分を説明する。
図23は、本実施形態に係る半導体集積回路装置の回路構成の一例を示す図であり、図24は、図23の半導体集積回路装置の動作タイミングチャートを示す図である。
図23に示すように、本実施形態に係る半導体集積回路装置の回路では、上述した第8実施形態の半導体集積回路装置に、ロースルーラッチ回路LTL100とAND回路AN100とフリップフロップ回路FF100とを追加することにより構成されている。
ロースルーラッチ回路LTL100のデータ入力端子Dには、クロック制御データ信号EnCLKDが入力されており、クロック入力端子には、システムクロック信号SysCLKが入力されている。このため、図24に示すように、システムクロック信号SysCLKがローレベルの間は、ロースルーラッチ回路LTL100は、クロック制御データ信号EnCLKDをそのままデータ出力端子Qから出力するが、システムクロック信号SysCLKがハイレベルの間は、直前の状態を保持した値をデータ出力端子Qから出力する。
このロースルーラッチ回路LTL100から出力されたクロック制御信号EnCLKは、AND回路AN100の一方の入力端子に入力される。AND回路AN100の他方の入力端子には、システムクロック信号SysCLKが入力されている。このため、図24に示すように、クロック制御信号EnCLKがローレベルの間は、AND回路AN100から出力されるクロック信号CLK2は停止する。
また、フリップフロップ回路FF100のデータ入力端子には、クロック制御信号EnCLKが入力され、クロック入力端子には、システムクロック信号SysCLKが入力されている。このため、フリップフロップ回路FF100は、図24に示すように、システムクロック信号SysCLKに同期した、回路制御信号ENを出力する。なお、図25に示すように、フリップフロップ回路FF100のデータ入力端子には、クロック制御データ信号EnCLKDが入力されるようにしてもよい。
本実施形態においては、クロック制御データ信号EnCLKDは、システムクロック信号SysCLKがハイレベルのときでも、ローレベルのときでも、変化しても良く、このため、クロック制御データ信号EnCLKDを複雑な組み合わせ論理回路で生成することも可能となる。
なお、論理セルLC10〜LC13に入力される回路制御信号ENと、ハイスルーラッチ回路HTL80に入力される回路制御信号ENとの間にタイミングのずれが存在すると、ハイスルーラッチ回路HTL80が誤ったデータを取り込んでしまうおそれがある。特に、アクティブモードからスリープモードに移行する際に、論理セルLC10〜LC13に入力される回路制御信号ENが、ハイスルーラッチ回路HTL80に入力される回路制御信号ENよりも先に立ち下がると、ハイスルーラッチ回路HTL80が誤ったデータを取り込んでしまう。このため、設計上、論理セルLC10〜LC13に入力される回路制御信号ENと、ハイスルーラッチ回路HTL80に入力される回路制御信号ENとの間のタイミングにずれが生じないように配慮する必要がある。
また、本実施形態に係る半導体集積回路装置は、図26に示すように、AND回路AN100の出力をクロック信号CLK1として、フリップフロップ回路FF110に入力し、別系統のクロック信号CLK2をフリップフロップ回路F11に入力することも可能である。
〔第11実施形態〕
第11実施形態では、上述した第8実施形態に上述した第4実施形態を適用して、論理セルLC10〜LC13のうち、一部の論理セルである論理セルLC13をフットスイッチ付きの論理セルではなく、通常の論理セルにより構成するようにしたものである。具体的には、回路制御信号ENがローレベルにある場合でも、入力信号である前段から出力された出力信号の論理レベルが不定にならない論理セルの一部については、スタンダードセルは設けるが、フットスイッチ用のMOSトランジスタやプルアップ用のMOSトランジスタは設けないようにしたものである。以下、上述した第4実施形態及び第8実施形態と異なる部分を説明する。
図27は、本実施形態に係る半導体集積回路装置の回路構成の一例を示す図であり、図28は、図27の半導体集積回路装置の動作タイミングチャートを示す図である。
図27に示すように、本実施形態に係る半導体集積回路装置の回路には、制御信号生成回路GENが設けられている。この制御信号生成回路GENには、システムクロック信号SysCLKとクロック制御信号EnCLKとが入力されている。制御信号生成回路GENは、入力されたこれらシステムクロック信号SysCLKとクロック制御信号EnCLKとに基づいて、クロック信号CLK1、CLK2と回路制御信号ENとを生成して出力する。このことから分かるように、クロック制御信号EnCLKの遷移が生じた後に、回路制御信号ENの遷移が発生する。
また、図27に示すように、本実施形態に係る半導体集積回路装置の回路では、上述した第4実施形態の半導体集積回路装置において、論理セルLC13とフリップフロップ回路FF11との間に、ハイスルーラッチ回路HTL80が設けられている。すなわち、NAND回路NA12の出力信号は、ハイスルーラッチ回路HTL80のデータ入力端子Dに入力されている。また、このハイスルーラッチ回路HTL80のクロック入力端子には、回路制御信号ENが入力されている。
このため、図28に示すように、回路制御信号ENがハイレベルの間は、NAND回路NA12の出力信号がハイスルーラッチ回路HTL80から出力されるが、回路制御信号ENがローレベルの間は、ハイスルーラッチ回路HTL80は直前の状態を保持してデータ出力端子Qから出力している(ノードEとノードF)。
上述した第4実施形態と同様に、スリープモードにおいては、NAND回路NA12の入力信号はハイレベルに固定されることとなり、大きなリーク電流が流れてしまう状態にはならない。このため、NAND回路NA12のフットスイッチは省略することが可能である。フットスイッチであるN型のMOSトランジスタNM13を省略することにより、P型のMOSトランジスタPM13も省略することができ、これによりトランジスタ数の削減を図ることができる。
また、上述した第8実施形態と同様に、クロック制御信号EnCLKを切り替えた次のクロックサイクルで、回路制御信号ENも切り替えることができるので、アクティブモードとスリープモードとの切替を迅速に行うことができる。
なお、図27の例では、フットスイッチを省略する論理セルが、最後の段の論理セルであるが、このようにフットスイッチの省略することのできる論理セルは最後の段に限るものではなく、スリープモードの際に入力が固定されるスタンダードセルから構成される論理セルであれば、どのような位置にあってもよい。
なお、クロック信号CLK1、CLK2や回路制御信号ENの生成方法については、上述した第9実施形態及び第10実施形態のいずれの方法でもよい。
〔第12実施形態〕
第12実施形態では、上述した第8実施形態に上述した第5実施形態を適用して、論理セルLC10〜LC13のうち、一部の論理セルについては、スリープモードにおいてプルアップをしないようにしたものである。具体的には、出力信号が、フットスイッチを有する論理セルにのみ入力されている、論理セルについては、スタンダードセルとフットスイッチは設けるが、プルアップ用のMOSトランジスタは設けないようにしたものである。以下、上述した第5実施形態及び第8実施形態と異なる部分を説明する。
図29は、本実施形態に係る半導体集積回路装置の回路構成の一例を示す図であり、図30は、図29の半導体集積回路装置の動作タイミングチャートを示す図である。
図29に示すように、本実施形態に係る半導体集積回路装置の回路には、制御信号生成回路GENが設けられている。この制御信号生成回路GENには、システムクロック信号SysCLKとクロック制御信号EnCLKとが入力されている。制御信号生成回路GENは、入力されたこれらシステムクロック信号SysCLKとクロック制御信号EnCLKとに基づいて、クロック信号CLK1、CLK2と回路制御信号ENとを生成して出力する。このことから分かるように、クロック制御信号EnCLKの遷移が生じた後に、回路制御信号ENの遷移が発生する。
また、図29に示すように、本実施形態に係る半導体集積回路装置の回路では、上述した第5実施形態の半導体集積回路装置において、論理セルLC13とフリップフロップ回路FF11との間に、ハイスルーラッチ回路HTL80が設けられている。すなわち、NAND回路NA12の出力信号は、ハイスルーラッチ回路HTL80のデータ入力端子Dに入力されている。また、このハイスルーラッチ回路HTL80のクロック入力端子には、回路制御信号ENが入力されている。
このため、図29に示すように、回路制御信号ENがハイレベルの間は、NAND回路NA12の出力信号がハイスルーラッチ回路HTL80から出力されるが、回路制御信号ENがローレベルの間は、ハイスルーラッチ回路HTL80は直前の状態を保持してデータ出力端子Qから出力している(ノードEとノードF)。
上述した第5実施形態と同様に、スリープモードにおいては、回路制御信号ENがローレベルになり、MOSトランジスタNM10〜NM13がオフになるので、論理セルLC10〜LC13を構成するスタンダードセルであるNAND回路NA10〜NA12やNOR回路NR10から、大きなリーク電流が流れてしまう状態にはならない。
また、図30に示すように、プルアップ用のMOSトランジスタPM10〜PM12を省いたので、論理セルLC10〜LC12の出力であるノードB〜ノードDは不定になるが、この組み合わせ論理回路COM10の出力である論理セルLC13の出力は、MOSトランジスタPM13がオンになることによりハイレベルにプルアップされる。このため、組み合わせ論理回路COM10の出力に影響を与えないNAND回路NA10、NA11、NOR回路NR10のプルアップ用のMOSトランジスタPM10〜PM12を省いても、ハイスルーラッチ回路HTL80のデータ入力端子Dへの入力が不定になるのを避けることができる。
なお、ハイスルーラッチ回路HTL80の代わりに、データ入力端子Dの状態がフローティング(不定)になってもリーク電流の流れないラッチ回路を用いた場合には、P型のMOSトランジスタPM13も省略することが可能である。
なお、クロック信号CLK1、CLK2や回路制御信号ENの生成方法については、上述した第9実施形態及び第10実施形態のいずれの方法でもよい。
〔第13実施形態〕
第13実施形態では、上述した第8実施形態に上述した第6実施形態を適用して、出力信号がフットスイッチ付きの論理セルにのみ入力されている論理セルについては、スリープモードにおいてプルアップをしないようにしたものである。換言すれば、上述した第11実施形態をさらに変形したものである。以下、上述した第6実施形態、第8実施形態及び第11実施形態と異なる部分を説明する。
図31は、本実施形態に係る半導体集積回路装置の回路構成の一例を示す図であり、図32は、図31の半導体集積回路装置の動作タイミングチャートを示す図である。
図31に示すように、本実施形態に係る半導体集積回路装置の回路には、制御信号生成回路GENが設けられている。この制御信号生成回路GENには、システムクロック信号SysCLKとクロック制御信号EnCLKとが入力されている。制御信号生成回路GENは、入力されたこれらシステムクロック信号SysCLKとクロック制御信号EnCLKとに基づいて、クロック信号CLK1、CLK2と回路制御信号ENとを生成して出力する。このことから分かるように、クロック制御信号EnCLKの遷移が生じた後に、回路制御信号ENの遷移が発生する。
また、図31に示すように、本実施形態に係る半導体集積回路装置の回路では、上述した第6実施形態の半導体集積回路装置において、論理セルLC13とフリップフロップ回路FF11との間に、ハイスルーラッチ回路HTL80が設けられている。すなわち、NAND回路NA12の出力信号は、ハイスルーラッチ回路HTL80のデータ入力端子Dに入力されている。また、このハイスルーラッチ回路HTL80のクロック入力端子には、回路制御信号ENが入力されている。
このため、図32に示すように、回路制御信号ENがハイレベルの間は、NAND回路NA12の出力信号がハイスルーラッチ回路HTL80から出力されるが、回路制御信号ENがローレベルの間は、ハイスルーラッチ回路HTL80は直前の状態を保持してデータ出力端子Qから出力している(ノードEとノードF)。
また、図32に示すように、論理セルLC11の出力であるノードCは、スリープモードの間は不定になるが、この論理セルLC11の出力は、フットスイッチ付きの論理セルLC12に入力されるだけである。したがって、論セルLC11の出力が不定になっても、大きなリーク電流が流れることはない。
このように構成することによっても、組み合わせ論理回路COM60内のMOSトランジスタの数を削減することができる。
なお、クロック信号CLK1、CLK2や回路制御信号ENの生成方法については、上述した第9実施形態及び第10実施形態のいずれの方法でもよい。
〔第14実施形態〕
第14実施形態では、上述した第8実施形態に上述した第7実施形態を適用して、半導体集積回路装置がスキャンテストモードを備えるようにしたものである。以下、上述した第7実施形態、及び、第8実施形態と異なる部分を説明する。
図33は、本実施形態に係る半導体集積回路装置の回路構成の一例を示す図である。この図33に示すように、本実施形態に係る半導体集積回路装置の回路では、上述した第7実施形態の半導体集積回路装置において、論理セルLC13とフリップフロップ回路FF11との間に、ハイスルーラッチ回路HTL80が設けられている。すなわち、NAND回路NA12の出力信号は、ハイスルーラッチ回路HTL80のデータ入力端子Dに入力されている。またフリップフロップはいわゆるスキャンフリップフロップとなっている。TEはハイレベルになるとフリップフロップはテストモードになる。
また、第7実施形態と同様に、本実施形態に係る半導体集積回路装置の回路には、OR回路OR70が設けられており、このOR回路OR70には、回路制御信号ENとテストイネーブル信号TEとが入力されており、反転ホールド信号HOLDXを出力する。この反転ホールド信号HOLDXは、MOSトランジスタNM10〜NM13とMOSトランジスタPM10〜PM13の制御端子に入力されているとともに、ハイスルーラッチ回路HTL80のクロック入力端子に入力されている。
このため、スキャンテストモードにおいては、テストイネーブル信号TEをハイレベルにすることにより、フットスイッチであるMOSトランジスタNM10〜NM13をオンにすることができ、MOSトランジスタPM10〜PM13をオフにすることができる。すなわち、テストイネーブル信号TEをハイレベルにすることにより、回路制御信号ENの値に拘わらず、MOSトランジスタNM10〜NM13をオンにすることができ、MOSトランジスタPM10〜PM13をオフにすることができる。また、スキャンテストモードにおいて、テストイネーブル信号TEをハイレベルにすることにより、ハイスルーラッチ回路HTL80は、データ入力端子Dに入力されたデータを、そのままデータ出力端子Qから出力するようになる。
このように構成することにより、スキャンテストモードにおいては、論理セルLC10〜LC13を通常のスタンダードセルから構成された論理セルとして、テストできるようになる。
〔第15実施形態〕
上述した第14実施形態のハイスルーラッチ回路HTL80とフリップフロップ回路FF11の構成について、より詳しく説明する。
図34は、本実施形態に係るテスト機能付きラッチ回路およびその出力が入力されるフリップフロップ回路の回路構成を説明する図である。この図34に示すように、本実施形態に係るラッチ回路は、インバータ回路IN150、IN152、IN154、IN156、IN158、IN159と、スレーブラッチ回路SLとを備えて構成されている。これらのインバータ回路のうち、インバータ回路IN150、IN152、IN154、IN160、IN156は、ゲート機能を有するクロックドインバータにより構成されている。また、インバータIN154とインバータIN158とインバータIN159とにより、本実施形態におけるマスターラッチ回路MLを構成している。そして、インバータ回路IN150、IN152、IN156と、マスターラッチ回路MLと、スレーブラッチ回路SLとにより、第14実施形態におけるハイスルーラッチ回路HTL80とフリップフロップ回路FF11とが構成されている。
インバータ回路IN150には、テスト信号TIが入力されており、テストイネーブル信号TEと反転ホールド信号HOLDXとの論理積によりゲーティングされる。インバータ回路IN152には、データ信号INが入力されており、反転テストイネーブル信号TEXと反転ホールド信号HOLDXとの論理積によりゲーティングされる。
このため、テストイネーブル信号TEがローレベルであれば、インバータ回路IN152によりデータ信号INが選択され、テストイネーブル信号TEがハイレベルであれば、インバータ回路IN150によりテスト信号TIが選択される。また、いずれの場合でも、反転ホールド信号HOLDXがハイレベルの場合(つまり、ホールドHOLDがローレベルの場合)には、インバータ回路IN150、IN152に入力された信号は反転して通過するが、反転ホールド信号HOLDXがローレベルの場合(つまり、ホールドHOLDがハイレベルの場合)には、遮断される。
反転ホールド信号HOLDXがローレベルの場合(つまり、ホールドHOLDがハイレベルの場合)には、インバータ回路IN156が動作し、入力された信号を反転して出力する。このため、本実施形態においては、インバータ回路IN150、IN152、IN156により、マルチプレクサを構成していることとなる。
さらに、本実施形態に係るラッチ回路においては、インバータ回路IN154とインバータIN156とで1つのラッチ回路を構成しており、インバータ回路IN158とインバータIN159とで1つのラッチ回路を構成している。
このように構成することにより、通常のマスターラッチMLの構成に、3つのインバータ回路IN150、IN152、IN156を追加するだけで、データをホールドするハイスルーラッチ回路HTL80を実現することができる。また、通常動作時におけるINからOUTまでのインバータ回路の段数は、通常のスキャン入出力フリップフロップ回路と同じになり、ホールド機能を追加することによる動作速度の低下はほとんど生じないと考えることができる。
〔第16実施形態〕
上述した第15実施形態のラッチ回路においては、ホールド状態に入る時点では、クロック信号CLKがローレベルになることが保証されている前提で構成されていたが、本実施形態においてはこの保証がない場合でも正常に動作するようにしている。以下、上述した第15実施形態と異なる部分を説明する。
図35は、本実施形態に係るラッチ回路の回路構成を説明する図である。この図35に示すように、本実施形態に係るラッチ回路においては、インバータ回路IN154が通常のインバータにより構成されているとともに、インバータ回路IN154とインバータIN158との間に、インバータ回路IN160が追加で挿入されている。
このインバータ回路IN160は、反転クロック信号CLKXが入力されるクロックドインバータである。
このように構成することにより、ホールド状態に入る時点でクロック信号CLKがハイレベルである場合には、インバータ回路IN160が遮断状態になり、インバータ回路IN158、IN159によるラッチ機能が働く。このため、ホールド状態に入る時点のクロック信号CLKがハイレベルであっても、ローレベルであっても、正常に機能するようになる。
〔第17実施形態〕
上述した第15実施形態に係るラッチ回路においては、スキャンテスト時にもデータ信号をホールドできるように構成したが、本実施形態においては、スキャンテスト時にはデータ信号のホールドが必要ない場合を想定したものである。以下、上述した第15実施形態と異なる部分を説明する。
図36は、本実施形態に係るラッチ回路の回路構成を説明する図である。この図36に示すように、本実施形態に係るラッチ回路においては、インバータ回路IN150がテストイネーブル信号TEによりゲーティングされている。このようにすることにより、入力のマルチプレクサの制御信号を簡略化することができる。
なお、本実施形態は、図37に示すように、フリップフロップ回路FF170で構成する場合には、3つのインバータ回路IN170、IN172、IN174により構成することができる。これらのインバータ回路IN170、IN172、IN174は、いずれもクロックドインバータにより構成されている。
インバータ回路IN170には、テスト信号TIが入力されており、テストイネーブル信号TEによりゲーティングされる。インバータ回路IN172には、データ信号INが入力されており、テストイネーブル信号TEと反転ホールド信号HOLDXの論理積によりゲーティングされる。インバータ回路IN172、IN174によりラッチ回路が構成され、その出力がフリップフロップ回路FF170のデータ入力端子Dに入力されている。このような構成により、入力のマルチプレクサの制御信号を簡略化することもできる。
なお、本発明は上記実施形態に限定されず種々に変形可能である。例えば、上述した各実施形態においては、N型のMOSトランジスタを用いたプルアップ構成により本発明を実現することとしたが、P型のMOSトランジスタを用いたプルダウン構成により本発明を実現するようにしてもよい。プルダウン構成により本発明を実現する場合、例えば、上述した第1実施形態の半導体集積回路装置は、図38のような回路構成となる。この場合の動作タイミングチャートは図39に示すようになる。すなわち、時刻T2から時刻T4の間のスリープモードにおいては、各論理セルLC10〜LC13の出力であるノードB〜ノードEが、ローレベルにプルダウンされ、リーク電流が流れないように、P型のMOSトランジスタPM10〜PM13がオフになる。
また、上述した実施形態における組み合わせ論理回路を構成するMOSトランジスタは、MISトランジスタ(Metal Insulator Semiconductor Transistor)の一例であり、他の種類のMISトランジスタにより構成することもできる。