(57)【特許請求の範囲】
【請求項１】
第１の電源ラインと、
第２の電源ラインと、
前記第１の電源ラインと前記第２の電源ラインの間に接続されており、所定の回路に接続されている第１のスイッチと、
前記第１の電源ラインと前記第２の電源ラインの間に接続されており、所定の回路に接続されている第２のスイッチと、
前記第１のスイッチに接続される第１の制御信号線と、
前記第２のスイッチに接続される第２の制御信号線と、
前記第１の制御信号線及び前記第２の制御信号線からの制御信号がそれぞれ入力される論理ゲートと、
前記論理ゲートと接続され、前記論理ゲートの出力を外部に出力する端子と、を有し、
前記第１の制御信号線は、前記第１の電源ラインと交差する方向に延在している
ことを特徴とする半導体集積回路。
【請求項２】
前記第１の制御信号線は、前記第２の電源ラインとも交差する方向に延在している
ことを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
前記第１の電源ラインと前記第２の電源ラインは、略平行に延在している
ことを特徴とする請求項１に記載の半導体集積回路。
【請求項４】
グランドラインをさらに有し、
前記第２の電源ラインは、平面視において、前記第１の電源ラインと前記グランドラインとの間で延在している
ことを特徴とする請求項１に記載の半導体集積回路。
【請求項５】
前記グランドラインは、前記第１及び第２の電源ラインと略平行に延在している
ことを特徴とする請求項４に記載の半導体集積回路。
【請求項６】
前記第２の制御信号線は、前記第１の電源ラインと交差する方向に延在している
ことを特徴とする請求項１に記載の半導体集積回路。
【請求項７】
前記第２の制御信号線は、前記第２の電源ラインとも交差する方向に延在している
ことを特徴とする請求項６に記載の半導体集積回路。
【請求項８】
前記第１の制御信号線及び前記第２の制御信号線は、略平行に延在している
ことを特徴とする請求項１に記載の半導体集積回路。
【請求項９】
第３の電源ラインと、別のグランドラインと、を有し、平面視において、前記第３の電源ラインと前記別のグランドラインとの間には電源ラインが延在していない
ことを特徴とする請求項１に記載の半導体集積回路。
【請求項１０】
前記第１のスイッチは複数設けられており、
前記第２のスイッチは複数設けられている
ことを特徴とする請求項１に記載の半導体集積回路。
【請求項１１】
前記論理ゲートは、ＡＮＤゲート、ＯＲゲートおよびＥＸ−ＯＲゲートのいずれかである
ことを特徴とする請求項１に記載の半導体集積回路。
【請求項１２】
第１の電源ラインと、
第２の電源ラインと、
前記第１の電源ラインと前記第２の電源ラインの間に接続されており、所定の回路に接続されているスイッチと、
前記スイッチと接続される制御信号線と、
前記制御信号線が接続されるスキャンチェーンと、
前記制御信号線に接続される論理和演算部と、
前記スキャンチェーンの出力を外部に出力する端子と、を有する
ことを特徴とする半導体集積回路。
【請求項１３】
前記制御信号線は、前記第１の電源ラインと交差する方向に延在している
ことを特徴とする請求項１２に記載の半導体集積回路。
【請求項１４】
前記制御信号線は、前記第２の電源ラインとも交差する方向に延在している
ことを特徴とする請求項１３に記載の半導体集積回路。
【請求項１５】
前記第１の電源ラインと前記第２の電源ラインは、略平行に延在している
ことを特徴とする請求項１２に記載の半導体集積回路。
【請求項１６】
グランドラインをさらに有し、
前記第２の電源ラインは、前記第１の電源ラインと前記グランドラインの間で延在している
ことを特徴とする請求項１２に記載の半導体集積回路。
【請求項１７】
前記グランドラインは、前記第１及び第２の電源ラインと略平行に延在している
ことを特徴とする請求項１６に記載の半導体集積回路。
【請求項１８】
前記第１の電源ラインと前記第２の電源ラインとの間に接続され、所定の回路に接続されており、前記スイッチとは別のスイッチと、
前記別のスイッチと接続され、前記制御信号線とは別の制御信号線と、をさらに有する
ことを特徴とする請求項１２に記載の半導体集積回路。
【請求項１９】
前記別の制御信号線は、前記スキャンチェーン及び前記論理和演算部に接続されている
ことを特徴とする請求項１８に記載の半導体集積回路。
【請求項２０】
前記制御信号線と前記別の制御信号線とは、略平行に延在している
ことを特徴とする請求項１８に記載の半導体集積回路。
【請求項２１】
前記制御信号線と交差する方向に、前記スキャンチェーンとは別のスキャンチェーンが設けられている
ことを特徴とする請求項１２に記載の半導体集積回路。
【請求項２２】
論理積演算部を有し、
前記論理和演算部の入力と、前記論理積演算部の入力が、接続されている
ことを特徴とする請求項２１に記載の半導体集積回路。
【請求項２３】
前記スイッチは複数設けられている
ことを特徴とする請求項１２に記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電源制御可能領域を有する半導体集積回路に関する。詳しくは、電源をＯＮ／ＯＦＦ制御できる領域を有する半導体集積回路において、テスト回路を組み込んだ半導体集積回路およびその設計法に関する。
【背景技術】
【０００２】
近年、電子機器の低消費電力化が強く要請されていることから、電源制御機能を有する半導体集積回路の利用が進んでいる。図１４は、電源制御可能領域を有する半導体集積回路のレイアウト図である。半導体集積回路１０には、ＰＡＤ供給電源としての電源ＶＤＤと、ＰＡＤ供給ＧＮＤとしての接地電源ＧＮＤと、が配線されている。そして、半導体集積回路１０は、常時電源ＯＮである常時ＯＮ領域１１と、電源制御によって電源ＯＮ／ＯＦＦ可能な電源制御可能領域１２と、を有している。電源制御可能領域１２には供給電源として電源ＶＳＤが配線されており、電源制御可能領域１２はこの電源ＶＳＤからの供給電源によって動作する。電源ＶＤＤと電源ＶＳＤとの間には電源制御スイッチ１３Ａ、１３Ｂが設けられ、電源制御可能領域１２の外部から入力される電源制御信号ＣＴＬによって電源制御スイッチ１３Ａ、１３ＢはＯＮ／ＯＦＦ制御される。
【０００３】
図１５は、電源制御の回路図である。電源ＶＤＤと電源ＶＳＤとの間に複数の半導体スイッチ１４（ここではｐＭＯＳトランジスタ）が設けられ、電源制御信号ＣＴＬが各半導体スイッチ１４のゲートに印加されるように制御信号線１６が配線されている。また、半導体スイッチ１４間にはタイミング調整用のバッファ１５が挿入されている。
【０００４】
このような構成において、電源制御信号ＣＴＬによって電源制御スイッチ１３Ａ、１３ＢをＯＮ／ＯＦＦ制御することにより、電源ＶＳＤの電圧が制御される。これにより、電源制御可能領域中の論理回路１８の動作レベルに応じて適切な電圧が電源ＶＳＤに供給され、また、電源制御可能領域１２が停止している場合には電源ＶＳＤへの電力供給が停止される。すると、電源ＶＤＤから接地電源ＧＮＤへのリーク電流を防ぎ、低消費電力を実現することができる。
【０００５】
なお、電源制御機能または電源遮断機能を有するＬＳＩが特許文献１に開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−１７０６６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来の電源制御可能な領域は小さな領域であったため、電源制御スイッチを構成する半導体スイッチの数も極少数（例えば、１つ、２つ）でよかった。これに対し、近年では、電源制御可能領域も大きくなり、また、動作も複雑化しているため、電源制御スイッチの構成も多くの半導体スイッチを要するものとなっている。しかし、電源制御スイッチを構成する半導体スイッチ数が増加したことに伴い、次のような問題が生じてきた。
【０００８】
例えば、図１６に示すように、制御信号線１６が途中で断線し、断線した箇所における信号線の電位が不定となる。この不定の電位によって、半導体スイッチ１４が常時ＯＦＦになる状態に固定されてしまう不良が生じる場合があり得る。この場合、正常に動作するのは図１６中の左側のスイッチだけになり、電源ＶＳＤに必要な電圧が供給されないことになる。すると、電源制御可能領域１２の動作時にＩＲドロップが生じて電源ＶＳＤの電位が下がってしまう。
この場合は、常時ＯＦＦとなるスイッチが存在することによって、各スイッチが正常に動作している場合と比較して電源ラインＶＤＤとＶＳＤ間の電圧降下（ＩＲドロップ）の量が多くなる。そのため、論理回路１８に供給する電圧の値が十分な値ではなくなることがあり、論理回路１８に誤作動が生じたり、論理回路１８が規定の動作周波数で動作しなくなるといった問題が生じる。
【０００９】
または、図１７に示すように、制御信号線１６が途中で断線し、断線箇所の電位が不定となることで、半導体スイッチ１４が常時ＯＮになる状態に固定されてしまう不良が生じる場合があり得る。この場合、電源制御可能領域１２の論理回路１８が動作を停止するときに電源制御スイッチ１３Ａ、１３Ｂを所定数または全部ＯＦＦにしてリーク電流を抑えようとした場合でも、故障した常時ＯＮスイッチから電流が流れてしまうことになり、電源制御１３Ａ、１３Ｂスイッチを導入した本来の目的が達成できないことになってしまう。
【００１０】
また、電源制御スイッチ１３Ａ、１３Ｂを構成する半導体スイッチ１４の数が多くなれば、断線によって常時ＯＮとなるスイッチの数、あるいは断線によって常時ＯＦＦとなるスイッチの数が多くなり、ＩＲドロップの量やリーク電流の量がより増大する。
【００１１】
ここで、従来は、仮に電源制御スイッチ１３Ａ、１３Ｂを制御する制御信号線に故障が生じていたとしても、原因を特定するのは非常に困難であった。たとえば、図１６の場合、ＩＲドロップによって電源制御可能領域１２の誤作動や動作周波数の低速化などが生じた場合、エラーは検出される。しかし、その原因として、制御信号線１６に断線が生じているのか、電源制御信号ＣＴＬの論理がそもそも誤っているのか、または、電源制御可能領域１２のトランジスタに不良があるのか、具体的に特定することは困難である。また、図１７の場合、リーク電流があることは検出されるが、常時ＯＮ領域１１でリーク電流が生じているのか、制御信号線１６の断線により、電源制御可能領域１２でリーク電流が生じているのか、具体的に特定することは困難である。したがって、従来の技術では、制御信号線１６の断線が原因となって回路の誤動作やリーク電流の増大等が発生しているということを特定できなかったという解決すべき課題があった。
【課題を解決するための手段】
【００１２】
一実施の形態によれば、半導体集積回路は、第１の電源ラインと第２の電源ラインの間に接続されており所定の回路に接続されている第１のスイッチと、第１の電源ラインと第２の電源ラインの間に接続されており所定の回路に接続されている第２のスイッチと、第１のスイッチに接続される第１の制御信号線と、第２のスイッチに接続される第２の制御信号線と、第１の制御信号線及び第２の制御信号線からの制御信号がそれぞれ入力される論理ゲートと、論理ゲートと接続されこの論理ゲートの出力を外部に出力する端子と、を有する。そして、第１の制御信号線は、第１の電源ラインと交差する方向に延在している。
【発明の効果】
【００１３】
このような構成によれば、電源制御信号の値を外部から観測可能となる。これにより、スイッチに対する制御信号線の断線により、論理回路の誤動作やリーク電流の増大が発生しているのか、それ以外の要因でこれらの問題が発生しているのか、を特定することができる。
【図面の簡単な説明】
【００１４】
【図１】第１実施形態に係る電源制御可能領域を有する半導体集積回路のレイアウト図。
【図２】第１実施形態の変形例１を示す図。
【図３】第１実施形態の変形例２を示す図。
【図４】第１実施形態の変形例３を示す図。
【図５】第２実施形態を示す図。
【図６】観測用ＦＦを示す図。
【図７】第３実施形態において、電源制御スイッチのテストを実行する様子を示す図。
【図８】第３実施形態において、電源制御スイッチ以外の回路のロジックテストを行う様子を示す図。
【図９】従来の設計手法の手順を示す図。
【図１０】電源階層を示す図。
【図１１】従来の設計手法の手順を示す図。
【図１２】第４実施形態において、電源制御スイッチのスキャンテストを挿入するための設計手順を示す図。
【図１３】第４実施形態において、出力ノードの追加と、スイッチ観測用ＦＦを挿入した様子を示す図。
【図１４】背景技術において、電源制御可能領域を有する半導体集積回路のレイアウト図。
【図１５】電源制御スイッチの構成を示す図。
【図１６】電源制御スイッチの不良の一例を示す図。
【図１７】電源制御スイッチの不良の一例を示す図。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態を図示するとともに図中の各要素に付した符号を参照して説明する。
（第１実施形態）
本発明の第１実施形態について説明する。
図１は、第１実施形態に係る電源制御可能領域を有する半導体集積回路のレイアウト図である。
図１において、半導体集積回路１００は、常時ＯＮ領域２００と、電源制御可能領域３００と、を有する。そして、電源ＶＤＤと電源ＶＳＤとの間には電源制御スイッチ３１０Ａ、３１０Ｂが設けられ、電源制御可能領域３００の外部から入力される電源制御信号ＣＴＬによって電源制御スイッチ３１０Ａ、３１０ＢはＯＮ／ＯＦＦ制御される。
【００１６】
電源制御スイッチ３１０Ａ、３１０Ｂは、複数本の系列により構成されている。電源制御スイッチの各系列は、図１５で説明したように、電源ＶＤＤと電源ＶＳＤとの間をスイッチングする半導体トランジスタ１４とタイミング調整のバッファ１５との組からなるスイッチセル１７を有する。電源制御信号線３２０は、電源制御スイッチの系列３１０Ａ、３１０Ｂごとに分岐され、各分岐線３２０Ａ、３２０Ｂが電源制御可能領域３００内に配線されている。そして、分岐された電源制御信号線３２０Ａ、３２０Ｂごとにスイッチセル１７が並べられ、電源制御スイッチの各系列３１０Ａ、３１０Ｂをそれぞれ構成している。
【００１７】
ここで、第１実施形態においては、制御信号線３２０の信号を外部に取り出すための出力ノード３３０Ａ、３３０Ｂおよび出力端子３４０Ａ、３４０Ｂを備えている。
出力ノード３３０Ａ、３３０Ｂおよび出力端子３４０Ａ、３４０Ｂは、分岐された制御信号線３２０Ａ、３２０Ｂごと、すなわち、電源制御スイッチ３１０Ａ、３１０Ｂの系列ごとに設けられている。
出力ノード３３０Ａ、３３０Ｂは、電源制御スイッチの系列ごとに電源制御スイッチの最終段の出力を電源制御可能領域３００の外部に出力可能とする。出力端子３４０Ａ、３４０Ｂは、出力ノード３３０Ａ、３３０Ｂから引き出された線とそれぞれ配線接続されている。出力端子３４０Ａ、３４０Ｂは、電源制御スイッチの系列ごとに電源制御スイッチの最終段の出力をチップの外部に出力する。
【００１８】
このような構成において、電源制御スイッチ３１０Ａ、３１０Ｂの動作確認を行うことができる。具体的には、下記のように、制御信号線の断線の有無を判定する。
【００１９】
ここで例えば、制御信号線３２０Ａ、３２０Ｂが途中で断線していた場合、図１５ないし図１７の記載からも分かる通り、断然が生じた箇所の配線の電位は不定となるため、その箇所の論理値は断線の状況に応じてハイレベルまたはローレベルのいずれかに固定される。そうすると、断然した箇所と出力端子３４０Ａあるいは３４０Ｂの間にあるスイッチの状態は常時ＯＮか常時ＯＦＦのいずれかとなり、各スイッチの接続状態を制御する制御信号ＣＴＬの論理値の変化には一切応答しなくなる。本実施形態では、この現象を利用する。すなわち、例えば出力端子３４０Ａにテスト装置を接続し、出力端子３４０Ａの論理値を観測する場合、制御信号線３２０Ａに対して入力した信号ＣＴＬの論理値の変化に応答して、出力端子３４０Ａから出力される論理値が変化している場合には、制御信号線３４０Ａに断線は生じていない。一方、制御信号線３２０Ａに対して入力した信号ＣＴＬの論理値を変化させた場合において、出力端子３４０Ａから出力される信号の論理値が変化せず固定されている場合、制御信号線３２０Ａは、その信号線のいずれかの箇所で断線が生じていることになる。以上は出力端子３４０Ａを用いて制御信号線３２０Ａの断線の有無を判定する場合の説明であるが、出力端子３４０Ｂを用いて制御信号線３２０Ｂの断線の有無を判定する場合も同様である。従来技術においては、上述したとおり、ＩＲドロップに起因した論理回路１８の誤動作やチップ上の所定の領域のリーク電流の増大が、複数の発生要因の内のどの要因によって生じているのかを分離することができなかった。しかし、本実施の形態によれば、各スイッチを制御するための制御信号線の断線の有無を判定することができる。したがって、本実施の形態では、ＩＲドロップに基づく論理回路１８の誤動作や所定の領域のリーク電流の増大が、電源制御可能領域３００への電圧の供給を制御するスイッチに対する制御信号の断線によるものなのか、それ以外の要因によるものなのか、を分離することができる。
【００２０】
また、動作テストを行うにあたっては半導体スイッチセル１７ごとに外部出力端子を設ける考え方もあるが、電源制御スイッチを構成する半導体スイッチが多いためテストポイントも非常に多くなってしまうという問題があり、現実的ではない。この点、本実施形態では、電源制御スイッチの系列３１０Ａ、３１０Ｂごとに出力ノード３３０Ａ、３３０Ｂおよび出力端子３４０Ａ、３４０Ｂを設ければよいので、観測ポイントが非常に少なくてすむ。
【００２１】
（変形例）
変形例１として、図２に示すように、電源制御スイッチの各系列３１０Ａ〜３１０Ｅを通過した信号をＡＮＤ、ＯＲ、ＸＯＲの論理ゲート２１１、２１２、２１３に入力するようにし、それらの各出力信号を各出力端子３４０Ｃ〜３４０Ｅに出力させるようにしてもよい。なお、図２におけるＸＯＲは、多入力のＸＯＲが示されているが、実際には、２入力のＸＯＲを多段で構成したものである。つまりＡＮＤゲートによって、制御信号線が示す値が全て“１”の場合を検査することができ、ＯＲゲートによって制御信号線が示す値が全て“０”の場合を検査することができる。たとえばＣＴＬがハイレベルの場合においてＡＮＤゲートの出力がハイレベルにならなければ信号線は断線している。またＣＴＬがローレベルの場合においてＯＲゲートの出力がローレベルにならなければ、信号線は断線していると判定できる。また２入力のＸＯＲを多段構成にしたものについては、ＣＴＬがローレベルのときもハイレベルのときもローレベルの信号がＸＯＲから出力されれば信号線は断線していないが、ＣＴＬがローまたはハイの状態でＸＯＲからハイレベルの信号が出力されれば信号線が断線していると判断できる。
【００２２】
また、変形例２として、図３に示すように、電源制御スイッチの各系列３１０Ａ〜３１０Ｅを通過した信号をそれぞれフリップフロップ（ＦＦ）２２１〜２２５に入力させ、それらの出力をマルチプレクサ２３０を介して選択的に出力端子３４０Ｆに出力させるようにしてもよい。この場合、ＣＴＬを伝搬する各制御信号線の出力を、一旦、各ＦＦ２２１ないし２２５に保持させておく。そして、ＭＵＸ２３０に対する信号ｓｅｌｅｃｔの値を切替えることで、各ＦＦが保持した値を端子３４０Ｆに出力する。なお、ＦＦ２２１ないしＦＦ２２５を設けず、ＭＵＸ２３０の出力をｓｅｌｅｃｔの値に基づき切替えて、ＣＴＬを伝搬する各制御信号線出力を外部に出力する構成であってもよい。このような構成によれば、電源制御スイッチの系列が多い場合であっても観測点を減らすことができる。また、変形例３として、図４に示すように、電源制御スイッチを一連の数珠つなぎに構成することにより、出力ノードおよび出力端子の数を少なくしてもよい。
【００２３】
（第２実施形態）
次に、本発明の第２実施形態について説明する。
第２実施形態は、スキャンテストによって電源スイッチを含む回路テストを実施するための構成である。図５に第２実施形態を示す。第２実施形態では、スキャンパステストを実行するため、所定のフリップフロップはスキャンフリップフロップ（以後、観測用ＦＦと呼ぶ）の構成になっている。
【００２４】
観測用ＦＦは、図６に示すように、通常のフリップフロップ４００の入力にマルチプレクサ４１０を付加した構成である。このマルチプレクサ４１０によりフリップフロップ４００のデータ入力ピンへの入力信号を通常のデータ入力（ＤＩＮ）とスキャンイン（ＳＩＮ）とで切り替える。マルチプレクサ４１０は、ＳｈｉｆｔＥｎａｂｌｅ信号により、通常動作とテストモードとを切り替え、テストモードのときにスキャンイン（ＳＩＮ）を取り込んでフリップフロップのデータ端子に与える。そして、前段のフリップフロップ４００のスキャンアウトが次段のフリップフロップ４００のスキャンイン（ＳＩＮ）になるようにフリップフロップ４００同士は接続されている。これにより、スキャンパステストのスキャンチェーンが構成される。
【００２５】
なお、図５中においては、見やすくするため、観測用ＦＦのマルチプレクサ４１０は省略し、データ端子としてＤとＳＩＮとを示している。また、ＳｈｉｆｔＥｎａｂｌｅ信号が各フリップフロップのマルチプレクサに入力されるが、図５ではＳｈｉｆｔＥｎａｂｌｅ信号の配線は省略している。また、各観測用ＦＦの通常動作時における通常のデータ入力ラインは省略し、主としてスキャンチェーンの配線を示している。また、図５中において通常動作に必要な論理回路としては一つ（符号１９）のみを例示し、その他は省略している。
【００２６】
図５において、まず、電源制御スイッチ３１０Ａ、３１０Ｂの接続状態を制御する信号線のそれぞれのテストを行うスキャンチェーンについて説明する。
電源制御スイッチ３１０Ａ、３１０Ｂの接続状態を制御する信号線のそれぞれのテストを行うスキャンチェーンはＳＩＮ１からＳＯ１のラインである。このスキャンチェーンＳＩＮ１はさらに、例えば、ＦＦ５０３よりＳＯ１側に設けられたＦＦ（フリップフロップ）のデータ端子と、別のスキャンチェーンであるＳＩＮ３に設けられたＦＦ５０７よりＳＯ３側に設けられたＦＦのデータ端子との間に接続された論理回路の動作のテストにも用いられる。このテストは公知の技術として知られているスキャンパステストである。つまり、ＳＩＮ１は、半導体集積回路１００に設けられた論理回路の動作をテストすることに加え、電源制御スイッチ３１０Ａ、３１０Ｂの接続状態を制御するための信号線をテストするために設けられている。
【００２７】
一方、ＳＩＮ１とは別のスキャンチェーンであるＳＩＮ２、ＳＩＮ３も、図５の半導体集積回路１００には設けられている。ＳＩＮ２とＳＩＮ３は、常時ＯＮ領域２００に設けられている論理回路や電源制御可能領域３００内に設けられている論理回路をテストするためのスキャンチェーンである。図５においては、ＳＩＮ３は、常時ＯＮ領域２００に設けられた論理回路１９のテストに用いられるが、実際には、電源遮断可能領域３００内に設けられた論理回路のテストにも用いられる。特にＦＦ５０８やＦＦ５０９、ＦＦ５１０やＦＦ５１１は、電源制御可能領域３００内の論理回路のテストのために使用されるＦＦである。ＳＩＮ２もＳＩＮ３と同様に常時ＯＮ領域２００および電源遮断可能領域３００に設けられた論理回路のテストに用いられるスキャンチェーンである。
【００２８】
図５では、通常動作時に電源制御信号ＣＴＬが入力される観測用ＦＦ５０１が配設され、この観測用ＦＦ５０１のスキャンイン端子にチップ外部のスキャンイン端子からスキャンパステストのテストデータＳＩＮ１が入力される。観測用ＦＦ５０１のデータ出力は、ＯＲ回路２４１を介して電源制御スイッチ３１０Ａ，３１０Ｂに入力されるようになっている。
【００２９】
ここで、本実施の形態では、電源制御スイッチ３１０Ａ、あるいは３１０Ｂがオンであるかオフであるかの接続状態を制御する制御信号ＣＴＬを伝搬する制御信号線のテストを下記のように行う。
【００３０】
まず、制御信号ＳｈｉｆｔＥｎａｂｌｅを活性化する。例えばＳｈｉｆｔＥｎａｂｌｅをハイレベルにする。
この場合、ＳＩＮ１，ＳＩＮ２、ＳＩＮ３に含まれる各ＦＦは上述したとおり、ハイレベルになったＳｈｉｆｔＥｎａｂｌｅに応答して、各ＦＦにおけるＳＩＮ側の入力信号を取り込む。そして、ＳｈｉｆｔＥｎａｂｌｅがハイレベルであるため、ＯＲ回路２４１が出力する信号の論理値もハイレベルで固定される。ここで、ＯＲ回路２４１は、ＣＴＬを伝搬させる制御信号線に接続されている（図５参照）。つまり、ＯＲ回路２４１がハイレベルで固定されているため、電源制御可能領域３００に対する電源の供給を制御する各スイッチのオン・オフ状態も固定されることになる。
ここで、本実施の形態では、ＳｈｉｆｔＥｎａｂｌｅがハイレベルになっている場合、各スイッチはＯＮ状態に固定されるものとする。例えば図１５における各ＭＯＳトランジスタがｎ型のＭＯＳトランジスタであるとすればよい。
この状態においては、電源制御可能領域３００に電圧が供給されているため、ＳＩＮ２，ＳＩＮ３のスキャンチェーンもＳＩＮ１のスキャンチェーンと合わせて動作させることができる。つまり、具体的に例示すれば、ＳＩＮ２およびＳＩＮ３のＦＦ５０８ないし５１１に電圧が供給されているため、ＳＩＮ２とＳＩＮ３の全体を、ＳＩＮ１と合わせてスキャンパステストに用いることができる。
【００３１】
この状況において、スキャンチェーンＳＩＮ１、ＳＩＮ２、ＳＩＮ３のそれぞれに対してテストパターンを供給する。すなわち、ＳＩＮ１、ＳＩＮ２、ＳＩＮ３のそれぞれはＳｈｉｆＥｎａｂｌｅの活性化に応答してシフトレジスタを形成しており、ＳＩＮ１、ＳＩＮ２、ＳＩＮ３のそれぞれに対してテストパターンを形成するビット列をシリアルに入力する。具体的には、ＳＩＮ１、ＳＩＮ２、ＳＩＮ３を形成する各ＦＦは、入力されるクロック信号のエッジに応答してシリアルに入力されるテストパターンを後段のＦＦにシフトする。この動作によって、ＳＩＮ１ないしＳＩＮ３の各ＦＦにテストパターンが設定される。なお、ＳＩＮ１におけるＦＦ５０１にセットされるテストパターンのビットは、ここでは、ハイレベルを示す“１”とする。そうすると、この時点で、ＦＦ５０１は、端子Ｑ側からハイレベルの信号を出力していることになる。また、ＳＩＮ１，ＳＩＮ２，ＳＩＮ３の他のそれぞれのＦＦも、設定されたテストパターンの論理値を示す信号を、それぞれの出力端子Ｑから出力している。そうすると、例えばＳＩＮ３のＦＦ５０６は端子Ｑから設定されたテストパターンが示すビットを出力しているので、論理回路１９はＦＦ５０６が出力した信号に応答して演算を行い、その演算結果をＳＩＮ１のＦＦ５０３のデータ端子Ｄに向かって出力している。具体的には、この時点において、図６におけるマルチプレクサ４１０のＤＩＮ側の入力に、論理回路１９の出力した信号が到達している。ＳＩＮ１ないしＳＩＮ３に設けられ、他の論路回路のテストに用いられる各ＦＦに関しても同様である。
【００３２】
次に、活性化していたＳｈｉｆｔＥｎａｂｌｅを非活性化する。例えば、ＳｈｉｆｔＥｎａｂｌｅの論理値をローレベルにする。そうすると、ＯＲ回路２４１の出力する信号の論理値はＳＩＮ１のＦＦ５０１が出力する信号の論理値そのものを示すことになる。上述したように、ＦＦ５０１に設定されたテストパターンのビットがハイレベルであったため、ＯＲ回路２４１の出力はＳｈｉｆｔＥｎａｂｌｅの非活性化に影響されずハイレベルを維持する。ＯＲ回路２４１の出力する信号は、観測用ＦＦであるＦＦ５０２ＡおよびＦＦ５０２Ｂの端子Ｄまで到達する。具体的には図６に示したマルチプレクサのＤＩＮ側の入力までＯＲ回路２４１の出力信号が到達する。このＯＲ回路２４１の出力信号がＦＦ５０２ＡおよびＦＦ５０２Ｂに到達した後に、ＳＩＮ１ないしＳＩＮ３のそれぞれのＦＦに対してクロック信号のエッジ（例えば立ち上がりエッジ）が供給される。そうすると、ＳＩＮ１ないしＳＩＮ３の各ＦＦは、端子Ｄ（具体的には図６のＤＩＮ）に到達していた信号の論理値を保持して端子Ｑから出力する。特に、ＦＦ５０２ＡおよびＦＦ５０２Ｂは、ＯＲ回路２４１から出力された信号を保持して端子Ｑから出力する。また、ＦＦ５０１は、制御信号ＣＴＬを保持して端子Ｑから出力する。ここで、この例ではＣＴＬはハイレベルであり、ＦＦ５０１がハイレベルの論理値を保持して端子Ｑから出力するものとする。そうすると、ＯＲ回路２４１の出力は引き続きハイレベルとなる。なおＣＴＬは、半導体集積回路１００の外部から入力される場合もあれば、内部の論理回路から出力される場合もある。
【００３３】
その後、再びＳｈｉｆｔＥｎａｂｌｅを活性化し、ＳＩＮ１ないしＳＩＮ３の各ＦＦを直列に接続し、シフトレジスタが形成されるようする。そして各ＦＦに対してクロックを供給し、ＳＯ１、ＳＯ２、ＳＯ３から、各ＦＦがキャプチャしたデータが出力される。ＳＯ１ないしＳＯＮ３から出力されるデータは、図示しないテスト装置に取り込まれ、検証される。
【００３４】
ここで、ＯＲ回路２４１とＦＦ５０２ＡおよびＦＦ５０２Ｂを接続する制御信号線、すなわち、電源制御可能領域３００に設けられた各スイッチ（図１５参照）のオン・オフを制御するＣＴＬを伝搬する信号線が断線していなければ、ＯＲ回路２４１の出力した信号の論理値が正しくＦＦ５０２ＡおよびＦＦ５０２Ｂに保持されている。しかし、例えばＦＦ５０２Ａ側の係る信号線が断線していれば、上述したとおり、ＦＦ５０２Ａの端子Ｄには、ＯＲ回路２４１の出力する信号の論理値に関わらず、固定の論理値が入力される。同様に、ＦＦ５０２Ｂ側の係る信号線が断線していれば、ＦＦ５０２Ｂの端子Ｄには固定の論理値が入力される。したがって、係る信号線の断線の有無を判別するためには、もう一度、スキャンパステストを行う必要がある。
【００３５】
なお、上記の説明では、ＦＦ５０１に設定されるテストパターンはハイレベルを示すビット“１”であり、ＦＦ５０１にキャプチャされるＣＴＬの論理値もハイレベルであった。この場合は、ＳｈｉｆｔＥｎａｂｌｅが非活性化された後においてもＯＲ回路２４１の出力がハイレベルであり続けるため、電源遮断可能領域３００における各スイッチの内、ＯＲ回路２４１に最も近い一のスイッチとＯＲ回路２４１の間の制御信号線が断線し、各スイッチがすべて常時ＯＦＦとなるような特殊な場合を除いて、原則的には電源遮断可能領域３００には電源が供給され続けることになる。そうすると、ＦＦ５０８ないしＦＦ５１１は駆動し続けるため、ＦＦ５０８ないしＦＦ５１１を用いたスキャンパステストを行うことが可能となる。具体的にはＦＦ５０８ないしＦＦ５１１がキャプチャした論理値を、そのままＳＯ２およびＳＯ３からテスト装置に取り込んで検証に用いることができる。したがって、ＡＮＤゲート２４２および２４３には、ＯＲ回路２４１の出力と同じであるハイレベルの信号が入力され、ＦＦ５０８およびＦＦ５０９がキャプチャした値と、ＦＦ５１０とＦＦ５１１がキャプチャした値とがそのままＡＮＤゲート２４２および２４３から出力される。
【００３６】
さて、上述したように、制御信号線の断線の有無を判別するためにはもう一度スキャンパステストを行う必要がある。通常、論理回路のテストを行うためにはスキャンチェーンの各ＦＦに複数回、テストパターンを設定してスキャンパステストを行うため、この論理回路のスキャンパステストと並行して、ＣＴＬを伝播する信号線のテストも行う。
【００３７】
上記の説明と同様に、まずＳｈｉｆｔＥｎａｂｌｅを活性化する。例えばＳｈｉｆｔＥｎａｂｌｅをハイレベルにする。図５において、各ＦＦは、シフトレジスタを形成し、スキャンチェーンＳＩＮ１ないしＳＩＮ３が形成される。この状態で、テストパターンを、各ＳＩＮ１ないしＳＩＮ３に供給する。ここで、今回のテストパターンの供給においては、ＦＦ５０１に設定されるテストパターンのビットがローレベルを示すビット“０”になるようにする。そうすると、ＦＦ５０１は、端子Ｑからローレベルを示す信号を出力していることになる。
【００３８】
そして上記の説明と同様にＳｈｉｆｔＥｎａｂｌｅを非活性化し、ＯＲ回路２４１の出力がＦＦ５０１からの出力信号を示すようにする。この時点でＯＲ回路２４１の出力する信号はローレベルの論理値を示す。そして、係るＯＲ回路２４１の出力した信号がＦＦ５０２ＡおよびＦＦ５０２Ｂに到達した後で、クロック信号のエッジがＳＩＮ１ないしＳＩＮ３の各ＦＦに供給される。このクロックのエッジに応答して、上記の説明と同様に、各ＦＦは、それぞれの端子Ｄに到達している信号の値を保持してそれぞれの端子Ｑから出力する。特に観測用ＦＦ５０２Ａと観測用ＦＦ５０２Ｂは、ＯＲ回路２４１が出力した信号の値を保持する（ＣＴＬを伝搬する制御信号線が断線していなければ）。また、ＦＦ５０１は、ＣＴＬ信号の論理値を保持する。なお、このときＦＦ５０１に保持されるＣＴＬ信号の論理値はローレベルとする。
【００３９】
そしてＳｈｉｆｔＥｎａｂｌｅを再び活性化することで、ＳＩＮ１ないしＳＩＮ３のそれぞれに設けられた各ＦＦがシフトレジスタとなり、保持していた値をクロック信号に応答してＳＯ１ないしＳＯ３へ出力する。出力されたこれらの値は、テスト装置に取り込まれ、検証される。
【００４０】
ここで、ＦＦ５０１に設定されたテストパターンはローレベルを示す“０”であった。ＣＴＬを伝播する制御信号線に断線が生じていなければ、ＦＦ５０２ＡおよびＦＦ５０２Ｂにキャプチャされる値も“０”である。しかし、ＦＦ５０２ＡとＯＲ回路２４１を接続する信号線に断線が生じていれば、ＦＦ５０２Ａがキャプチャした信号の値は、前回、ＦＦ５０１にハイレベルを示す“１”を設定した場合のスキャンパステストの時と同じ値を示すことになる。また、同様に、ＦＦ５０２ＢとＯＲ回路２４１を接続する信号線に断線が生じていれば、ＦＦ５０２Ｂがキャプチャした信号の値は、前記ＦＦ５０１にハイレベルを示す“１”を設定した場合のスキャンパステストの時と同じ値を示すことになる。
【００４１】
つまり、上述した２回のスキャンパステストを行うことで、ＣＴＬ信号を伝播する制御信号に断線が生じているか否かを判別することができる。なお、上記した２回目のスキャンパステストでは、途中でＦＦ５０８ないしＦＦ５１１に電源が供給されなくなっている。これはＦＦ５０１にローレベルを示すビット“０”をテストパターンとして設定したことによるものである。したがって、ＦＦ５０８ないしＦＦ５１１が２回目のスキャンパステストにおいてキャプチャした値は、検証に用いるべきものではない。ＦＦ５０８ないし５１１への電源の供給が、ＦＦ５０８ないしＦＦ５１１へテストパターンを設定した後のＳｈｉｆｔＥｎａｂｌｅの非活性化に応答して停止しているため、ＦＦ５０８ないしＦＦ５１１がその後のＳｈｉｆｔＥｎａｂｌｅの活性化に応答して端子Ｑから出力する信号の値は不定の値であるためである。そのため、ＦＦ５０１がキャプチャしたＣＴＬ信号の値がローレベルとなっており、ＡＮＤゲート２４２およびＡＮＤゲート２４３が出力する信号がローレベルに固定されるようになっている。つまり、ＡＮＤゲート２４２および２４３は、電源制御可能領域３００内のＦＦ５０８ないし５１１の出力するデータをＳＯ２ないしＳＯ３へ出力させないようにするマスク回路の役割を果たす。
【００４２】
本実施の形態では、半導体集積回路１００に設けられた論理回路を試験するためのスキャンチェーンの中にＣＴＬを伝播する制御信号線のテストを行うためのＦＦを設けている。このことで、上述したように、試験すべき論理回路のスキャンパステストと並行して、ＣＴＬを伝播する制御信号の断線についての試験も行うことができるため、試験の効率化が図れる。
また、第１の実施の形態では、ＣＴＬを伝搬する制御信号線の信号の値を、直接外部の端子に出力する必要があった。テストのために外部端子を使用することは、ピン数の増大にもつながり、必ずしも好ましくない。しかし、本第２実施形態においては、係る制御信号線のテスト結果を、外部端子ではなく、スキャンチェーンを使って外部に出力することができる。これによりピン数の増加を招くことなく、制御信号線の断線の有無を特定できる。ひいては、回路の誤動作やリーク電流の増大等の要因が、係る制御信号線の断線によるものなのか、それ以外の要因なのかをピン数の増大なく特定することができる。
【００４３】
なお、ＣＴＬを伝搬する信号線のテストを行うスキャンチェーンを構成する観測用ＦＦ５０１、５０２Ａ、５０２Ｂ、５０３は、電源制御スイッチ３１０Ａ、３１０Ｂの動作とは関係のない電源ＶＤＤで動作することが必要であるため、図５中では電源制御可能領域３００の外部に観測用ＦＦを配置する場合を例示したが、電源ＶＤＤで動作するように配線しておけば観測用ＦＦを電源制御可能領域３００に配置していてもよい。
【００４４】
またスキャンパステストを行うためのテストパターンの供給に際して、ＳｈｉｆｔＥｎａｂｌｅ信号を活性化させており、ＳｈｉｆｔＥｎａｂｌｅ信号はＯＲ回路２４１を介して電源制御スイッチ３１０Ａ、３１０Ｂに投入される。すると、テストパターンが示すビット列の状態によらず、ＯＲ回路２４１の出力はハイレベルで固定されるので、電源制御スイッチ３１０Ａ、３１０ＢをばたつくことなくＯＮにすることができる。
【００４５】
（第３実施形態）
次に、本発明の第３実施形態について説明する。
第３実施形態は、電源制御スイッチのオン・オフ状態を制御する信号ＣＴＬを伝搬する信号線の状態のテストとその他の論理回路のテストとを分離して行うための構成である。
第３実施形態では、第２実施形態と比較して、スキャンチェーンに入力するテストパターンの作成が容易になること、そしてテスト時間が短縮されるということ、さらにはテストパターンをツールによる自動生成により行えるということ、の三つの優位点がある。これらの優位点が得られる理由は後述する。
【００４６】
以下、第３実施形態において、どのようにテストが行われるのかを、図７および図８を用いて順を追って説明する。まず、制御信号ＣＴＬを伝搬する信号線が断線しているか否かのテストを行う。図７を参照して、最初にＳｈｉｆｔＥｎａｂｌｅ１を活性化する。例えばＳｈｉｆｔＥｎａｂｌｅ１をハイレベルにする。ＳｈｉｆｔＥｎａｂｌｅ１はこの実施の形態においては、ＦＦ５０１、ＦＦ５０２Ａ、ＦＦ５０２Ｂに入力されている。また、ＳｈｉｆｔＥｎａｂｌｅ２は非活性化されており、ＳＷ＿ＴＥＳＴは活性化され、ハイレベルとなっている。
【００４７】
ＳｈｉｆｔＥｎａｂｌｅ１がハイレベルになったことで、ＯＲ回路２４４の出力がハイレベルとなり、ＦＦ５０１、ＦＦ５０２Ａ、ＦＦ５０２Ｂは第２実施形態で説明したように、シフトレジスタを形成し、スキャンチェーンＳＩＮ１となる。なお、セレクタ２３１は、ＳＷ＿ＴＥＳＴがハイレベルであることにより、ＳＩＮ１に入力される信号をＦＦ５０１に出力する。また、ＯＲ回路２４５の出力もハイレベルとなるため、ＯＲ回路２４１の出力はハイレベルとなり、電源制御可能領域３００は電源が供給されている状態で固定される。
【００４８】
次に、ＳＩＮ１に対してテストパターンを入力する。
このときのテストパターンは、制御信号ＣＴＬを伝搬する信号線をテストするためにＦＦ５０１に入力するテストパターンのみを考慮して作成される。ＦＦ５０２Ａおよび５０２Ｂに対してテストパターンを設定する必要はない。テストパターンがＦＦ５０１に設定された後、第２実施形態と同様にＳｈｉｆｔＥｎａｂｌｅ１を非活性化、例えばローレベルにする。なお、ＦＦ５０１に設定されるテストパターンは、ここではハイレベルを示す“１”とする。なお、この実施の形態では、ＳＩＮ１を用いたスキャンパステストにおいては電源制御可能領域３００の内部に設けられた論理回路のテストは行わない。係る論理回路のテストは、後述する別のスキャンチェーンＳＩＮ２を用いたスキャンパステストの際に行う。したがって、ここでＦＦ５０１に設定されるテストパターンが“１”または“０”でも、第２実施形態のようにその後のテストに影響することはないが、ここではＦＦ５０１には“１”が設定されたものとする。
【００４９】
その後、ＳｈｉｆｔＥｎａｂｌｅ１が非活性化され、ＳＩＮ１に含まれる各ＦＦは、第２実施形態で詳細に説明したように、データ端子Ｄに到達しているデータを保持して端子Ｑから出力する。このとき、ＦＦ５０２Ａおよび５０２Ｂは、ＯＲ回路２４１が出力した信号の論理値を保持して端子Ｑから出力する（信号線が断線していなければ）ことも、第２実施形態と同様である。
なお、ＦＦ５０１に設定されたテストパターンが“１”であったため、ＳｈｉｆｔＥｎａｂｌｅ１の非活性化の際にはＯＲ回路２４１の出力はハイレベルのままである。しかし、ＳＩＮ１に含まれる各ＦＦがその後に端子Ｄに到達しているデータを保持した際のＯＲ回路２４１の出力は、ＣＴＬ信号の論理値がハイレベルかローレベルかに依存して変化する。しかし、上述したように、このＳＩＮ１を用いたスキャンパステストにおいては、電源制御可能領域３００内の論理回路をテストしないため、ここでは議論しないこととする。
【００５０】
続いて、ＳｈｉｆｔＥｎａｂｌｅ１を再び活性化して、ＳＩＮ１に含まれる各ＦＦがシフトレジスタを形成するようにする。ＳＩＮ１の各ＦＦにクロックが供給され、各ＦＦが保持している信号の値が端子ＳＯ１から出力される。ＳＯ１から出力された値は、テスト装置に取り込まれ、検証される。
【００５１】
ここで、ＦＦ５０２Ａ，ＦＦ５０２ＢがＳＯ１に出力した信号の値は、制御信号ＣＴＬを伝搬する信号線が断線していなければ、ＯＲ回路２４１が出力したデータであるが、当該信号線が断線していれば、断線によって生じる固定の論理値に過ぎない。したがって、第２実施形態と同様に、上記のスキャンパステストを再度行う必要がある。
【００５２】
次のスキャンパステストでは、ＦＦ５０１に設定するテストパターンをローレベルを示す“０”にすればよい。この結果、上記と同様に処理を進めて、ＳＯ１からそのテスト結果を取得する。その結果、１回目と２回目とで、ＦＦ５０２ＡがＳＯ１に出力した信号値が変化していれば、ＯＲ回路２４１とＦＦ５０２Ａを接続する制御信号線は断線していない。一方１回目と２回目で、ＦＦ５０２ＡがＳＯ１に出力した信号値が変化せず、固定の論理値であれば、ＯＲ回路２４１とＦＦ５０２Ａを接続する制御信号線は断線している。ＦＦ５０２ＢとＯＲ回路２４１を結ぶ信号線についても同様に判定できる。
【００５３】
以上で、制御信号線ＣＴＬを伝搬する信号線が断線しているか否かは判別できる。そこで、続いて、半導体集積回路上に設けられた論理回路のテストを行う。そのために、本実施の形態では、ＳＩＮ１とは別に設けられたスキャンチェーンＳＩＮ２を用いる。なお、ＳＩＮ２は、図７および図８においては、常時電源が供給される領域２００のみに張られているが、実際には電源制御可能領域３００にも張られており、電源制御可能領域３００内に設けられた論理回路のテストを行うためにも用いられる。
【００５４】
図８を参照して、まず、ＳｈｉｆｔＥｎａｂｌｅ２を活性化する。例えばハイレベルにする。そしてＳＷ＿ＴＥＳＴを、非活性化、例えばローレベルに固定する。ここで、ＳｈｉｆｔＥｎａｂｌｅ１は、非活性化されているままである。ＳｈｉｆｔＥｎａｂｌｅ２の活性化に応答して、ＦＦ５０１、ＦＦ５１２ないし５１５がシフトレジスタを形成し、スキャンチェーンＳＩＮ２が形成される。なお、セレクタ２３１は、ＳＷ＿ＴＥＳＴの非活性化に伴いＦＦ５１３の端子Ｑから出力されるデータをＦＦ５０１に出力する。ここで、このＳＩＮ２を用いる場合においては、ＳＷ＿ＴＥＳＴが非活性化されていることによってＯＲ回路２４５の出力はハイレベルとなるため、ＯＲ回路２４１の出力もハイレベルとなる。つまり、電源制御可能領域３００は、電圧が供給されているＯＮ状態に固定されることになる。
【００５５】
ここで、図８には図示されていないが、電源制御可能領域３００内にもＳＩＮ２が張られている。すなわち電源制御可能領域３００内に設けられた論理回路のテストもＳＩＮ２を用いて並行して合わせて行う。これは、電源制御可能領域３００が、ＳＷ＿ＴＥＳＴが非活性化されている場合にはオン状態で固定されるため、電源制御可能領域３００内に設けられたスキャンチェーンを構成する各ＦＦに対する電圧供給が遮断されることがないためである。つまり、この場合においては、係る電源制御可能領域３００内のＳＩＮ２に含まれるＦＦが出力するテスト結果が、第２実施形態の場合のような不定の値になるケースが存在しないので、常時ＯＮの領域と電源制御可能領域３００内の論理回路のテストをあわせて行っても信頼できる検証が行える。
【００５６】
以降は、これまでの説明と同様である。すなわち、ＳｈｉｆｔＥｎａｂｌｅ２が活性化されているため、ＳＩＮ２の各ＦＦに対してテストパターンを設定する。そして、ＳｈｉｆｔＥｎａｂｌｅ２を非活性化し、ＳＩＮ２の各ＦＦが端子Ｄに到達しているデータをキャプチャする。その後、ＳｈｉｆｔＥｎａｂｌｅ２を再び活性化し、ＳＯ２から論理回路のテスト結果を出力する。そして、出力された結果を検証する。
【００５７】
この第３実施形態では、制御信号ＣＴＬを伝搬する信号線の断線を判別するためのスキャンパステストと、論理回路のテストを行うためのスキャンパステストと、を分離して行った。これにより、テストパターンを、信号線のテストのためのパターンと、論理回路をテストするためのパターンと、に分けて作成することができる。第２実施形態では、信号線の断線と論理回路のテストを同時に行っていたため、複雑なテストパターンの生成が必要となるが、第３実施形態はこの点で優位である。
【００５８】
また、第３実施形態では、テストパターンの作成を自動生成ツールで行うことができる。テストパターンを作成するツールは、電源制御可能領域３００に対する電源の供給が停止することを考慮してテストパターンを作成することができない。言い換えれば、ツールは、すべて電源が常時ＯＮであることを前提として、テストパターンを生成する。第２実施形態では、図５におけるＦＦ５０１に設定されるテストパターンの値やＦＦ５０１にキャプチャされる値を決定するＣＴＬの値によって、電源制御可能領域３００に対する電源の供給が途中で停止される場合があった。特に、ＣＴＬが第２実施形態において外部入力の場合はハイレベルで固定すればよいので大きな問題とはならないが、図７や図８のように所定の論理回路が出力する信号ＣＴＬとなる場合には、当該論理回路の出力であるＣＴＬを様々なテストパターンで検証する必要があり、ＣＴＬがローレベルとなるケースが数多く発生する。そうすると、図５のような第２実施形態においては、ＣＴＬを伝搬する信号線のテストの後に行う論理回路のテストにおいて、各ＦＦがキャプチャを行う際に電源制御可能領域３００がオフ状態となるケースが多発する（ＳｈｉｆｔＥｎａｂｌｅは非活性であることに留意）。このような状況においてスキャンパステストのテストパターンを作成しようとする場合、自動生成ツールを用いることはできない。したがって、第２実施形態では、テストパターンの作成を手作業で行わざるを得なくなるということになる。その点、第３実施形態では、論理回路のテストを行う場合には電源制御可能領域３００には常時電源が供給されている。つまり、この場合においては、テストパターンを自動生成ツールによって作成することができる。したがって、第３実施形態は、第２実施形態と比較して、開発期間の大幅な短縮という優れた効果を発揮する。
【００５９】
さらに、第３実施形態は、第２実施形態と比較して、テスト時間が短縮されるという効果を発揮する。第２実施形態では、上述したように、ＣＴＬが論理回路の出力である場合、スキャンパステストの際に電源制御可能領域３００に対する電源の供給が停止され、その後に再開されることが多発する場合があった。スキャンパステスト中に電源の供給が停止され、その後に電源の供給が開始されると、電源が供給する電圧の値が安定するまでの間、スキャンチェーンの各ＦＦが端子Ｄに到達している値をキャプチャするのを待たなければならないという制約が課される。一方、第３実施形態では、信号線の断線のテストと論理回路のテストを分離して行っている。論理回路のテストでは、電源の供給が停止されることがないため、上記の制約は発生しない。その分、論理回路に対するスキャンパステストに必要となる時間が短縮される。
【００６０】
以上、第３の実施の形態を説明したが、例えば、論理回路のスキャンパステストを行った後に、信号線の断線の有無を検査するためのスキャンパステストを行ってもよい。
【００６１】
（第４実施形態）
次に、上記第２実施形態および第３実施形態で説明した電源制御スイッチのテスト回路を備える半導体集積回路の設計方法について説明する。
まず、従来の設計手法およびその課題について説明する。
図９、図１１は、従来の設計手法の手順を示す図である。
図９は、電源制御スイッチを備える半導体集積回路において、電源制御スイッチのスキャンテストを挿入しない場合の設計手法の手順を示すフローチャートである。
図９を参照して、電源制御スイッチを備える半導体集積回路において、電源制御スイッチのスキャンテストを挿入しない場合の設計手順を説明する。
【００６２】
まず、レイアウト処理（ＳＴ１００）として、回路接続情報の生成を行い（ＳＴ１０１）、さらに、電源階層を決める（ＳＴ１０２）。
ここで、電源階層の決定（ＳＴ１０２）では、例えば図１０に示すように、常時ＯＮ領域とする回路ブロックと電源制御可能領域の回路ブロックとを切り分ける。
【００６３】
続いて、ＤＦＴ処理（Ｄｅｓｉｇｎ  Ｆｏｒ  Ｔｅｓｔａｂｉｌｉｔｙ）として、スキャンパスの挿入を行う。ここでは、電源制御スイッチのテストを行わないため、従来通り、回路内のフリップフロップをスキャンＦＦに置き換えてスキャンチェーンを構成するようにする。
【００６４】
そして、レイアウト処理（ＳＴ３００）として、フロアプランを生成し（ＳＴ３０１）、さらに、電源制御スイッチを挿入する（ＳＴ３０２）。最後に、配置・配線を行う（ＳＴ５００）。
【００６５】
このように電源制御スイッチを備える半導体集積回路において、電源制御スイッチのスキャンテストを挿入しない場合には通常のＤＦＴ処理が一回だけであり、スムーズな設計が行われる。しかし、電源制御スイッチのスキャンテストが挿入されていないので、できた製品に不良があった場合には原因特定が困難になる。
【００６６】
次に、図１１は、電源制御スイッチを備える半導体集積回路において、電源制御スイッチのスキャンテストを挿入する場合の設計手順を示す図である。
この場合、レイアウト処理（ＳＴ１００）、スキャン挿入（ＳＴ２００）、レイアウト処理（ＳＴ３００）は図９で説明した工程と同じである。
ここで、電源制御スイッチのスキャンパスを挿入するため、電源制御スイッチの挿入（ＳＴ３０２）を行った後、再び、ＤＦＴ処理（ＳＴ４００）を行う。すなわち、スイッチ観測用ＦＦを挿入し（ＳＴ４０１）、スイッチ観測用ＦＦを含むスキャンパスを挿入する（ＳＴ４０２）。そして、最後に、レイアウト処理として、配置・配線を行う（ＳＴ５００）。
【００６７】
この手順によれば、電源制御スイッチのスキャン挿入を行える。
しかし、ＤＦＴ処理を二回に分けて行っているため、ＤＦＴ処理とレイアウト処理との間でデータのやり取り回数が多くなり、回路設計にかかる手間と時間が非常に多くなってしまう。
また、レイアウト処理は、最後の配置・配線が最適になるように何回かフロアプランを修正しながら行うことになる。すると、フロアプランを修正するたびに電源制御スイッチのためのＤＦＴ処理（ＳＴ４００）も繰り返さなければならなくなる。そのため、電源制御スイッチのためのスキャン挿入を行うには飛躍的な工程の増加が必要となる。
【００６８】
これに対し、本発明の回路設計方法としての第４実施形態について説明する。
図１２は、電源制御スイッチを備える半導体集積回路において、電源制御スイッチのスキャンテストを挿入する場合の設計手順を示す図である。
図１２においては、レイアウト処理（ＳＴ１００）として電源階層を決めた後、ＤＦＴ処理によるスキャン挿入（ＳＴ２００）を行う前に、電源制御可能領域に出力ノードを追加し（ＳＴ１１１）、さらに、スイッチ観測用ＦＦを挿入して前記出力ノードとの接続を行う。すなわち、図１３に示すように、電源制御可能領域３００に出力ノード３３０Ａ、３３０Ｂを追加し、スイッチ観測用ＦＦ５０２Ａ，５０２Ｂを挿入して前記出力ノード３３０Ａ、３３０Ｂとの接続を行う。そして、通常のＤＦＴ処理としてスキャン挿入（ＳＴ２００）を行う。
【００６９】
レイアウト処理（ＳＴ３００）として、フロアプラン（ＳＴ３０１）、電源制御スイッチ挿入（ＳＴ３０２）を行った後、電源制御スイッチの最終段を出力ノードに接続する（ＳＴ３１０）。すると、電源制御スイッチのテストが可能な回路になる。最後に配置・配線を行う（ＳＴ５００）。
【００７０】
このような手順にすることにより、ＤＦＴ処理（ＳＴ２００）は一回で済む。また、ＤＦＴ処理（ＳＴ２００）の前に、出力ノードおよびスイッチ観測用ＦＦを挿入しているので、ＤＦＴ処理（ＳＴ２００）は通常のスキャン挿入とほとんど変わりなく行え、回路設計を容易にすることができる。
【００７１】
なお、第４実施形態における設計方法は、ＣＰＵおよびメモリを備えたコンピュータに半導体集積回路のレイアウトプログラムを実行させて、上記各工程を自動処理によって実行させてもよいことはもちろんである。
【００７２】
本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【符号の説明】
【００７３】
１０…半導体集積回路、１１…常時ＯＮ領域、１２…電源制御可能領域、１３Ａ、１３Ｂ…電源制御スイッチ、１４…半導体スイッチ、１５…バッファ、１６…制御信号線、１７…スイッチセル、１８、１９…論理回路、１００…半導体集積回路、２００…常時ＯＮ領域、２１１、２１２、２１３…論理ゲート、２３０、２３１…マルチプレクサ、２４１…ＯＲ回路、２４２、２４３…論理ゲート、２４４、２４５…ＯＲ回路、３００…電源制御可能領域、３１０Ａ、３１０Ｂ…電源制御スイッチ、３２０…電源制御信号線、３３０Ａ、３３０Ｂ…出力ノード、３４０Ａ〜３４０Ｆ…出力端子、３５０…スキャンアウト端子、４００…フリップフロップ、４１０…マルチプレクサ、５０１〜５１５…観測用ＦＦ。
【図１】
0005503048.tif 000002
【図２】
0005503048.tif 000003
【図３】
0005503048.tif 000004
【図４】
0005503048.tif 000005
【図５】
0005503048.tif 000006
【図６】
0005503048.tif 000007
【図７】
0005503048.tif 000008
【図８】
0005503048.tif 000009
【図９】
0005503048.tif 000010
【図１０】
0005503048.tif 000011
【図１１】
0005503048.tif 000012
【図１２】
0005503048.tif 000013
【図１３】
0005503048.tif 000014
【図１４】
0005503048.tif 000015
【図１５】
0005503048.tif 000016
【図１６】
0005503048.tif 000017
【図１７】
0005503048.tif 000018