(57)【要約】【課題】故障検出率を低下させることなく回路面積の増加を防止できる半導体装置及びその設計方法を提供すること。【解決手段】第１、第２動作モードを有する半導体装置であって、前記第２動作モード時に命令信号ＳＴ１を伝送する信号線４０と、前記第１動作モードにおいてはクロックに同期して動作し、前記第２動作モードにおいては前記命令信号ＳＴ１に応じて動作する第１フリップフロップ２０−１と、前記第２動作モードにおいて、前記命令信号ＳＴ１に応答して前記第１フリップフロップ２０−１の入力を出力に伝搬させる切り替え回路２２−１と、前記第１動作モードにおいては前記クロックＣＬＫに同期して動作し、前記第２動作モードにおいては、前記第１動作モードにおける入力信号Ｄの代わりにテストパターンを選択し、前記クロックＣＬＫに同期して動作する第２フリップフロップ３０−１，３０−２とを具備することを特徴としている。【選択図】    図１
2004150933.tif 000002
【特許請求の範囲】
【請求項１】
第１、第２動作モードを有する半導体装置であって、
前記第２動作モード時に命令信号を伝送する信号線と、
前記第１動作モードにおいてはクロックに同期して動作し、前記第２動作モードにおいては前記命令信号に応じて動作する第１フリップフロップと、
前記第２動作モードにおいて、前記命令信号に応答して前記第１フリップフロップの入力を出力に伝搬させる切り替え回路と、
前記第１動作モードにおいては前記クロックに同期して動作し、前記第２動作モードにおいては、前記第１動作モードにおける入力信号の代わりにテストパターンを入力信号として選択し、前記クロックに同期して動作する第２フリップフロップと
を具備することを特徴とする半導体装置。
【請求項２】
前記第１、第２フリップフロップは同一の構成を備え、
前記切り替え回路は、前記第２動作モードにおいて、前記命令信号に応答して前記クロックを制御し、
前記第１フリップフロップは、前記第２動作モードにおいて、前記切り替え回路によって制御された前記クロックに同期して動作することにより、入力が出力にバイパスされる状態となるよう制御される
ことを特徴とする請求項１記載の半導体装置。
【請求項３】
前記第１動作モードにおいて、クロックに同期して動作する第３フリップフロップを更に備え、
前記切り替え回路は、前記第２動作モードにおいて、前記命令信号に応じて前記第１、第３フリップフロップ各々の入力を出力に伝搬させる
ことを特徴とする請求項１記載の半導体装置。
【請求項４】
前記第１乃至第３フリップフロップは同一の構成を備え、
前記切り替え回路は、前記第２動作モードにおいて、前記命令信号に応答して前記クロックを制御し、
前記第１、第３フリップフロップは、前記第２動作モードにおいて、前記切り替え回路によって制御された前記クロックに同期して動作することにより、入力が出力にバイパスされる状態となるよう制御される
ことを特徴とする請求項３記載の半導体装置。
【請求項５】
前記第１、第２フリップフロップ間に設けられた組み合わせ回路を更に備え、
前記第２動作モードにおいて、前記第２フリップフロップは前記テストパターンを前記組み合わせ回路へ入力し、
前記組み合わせ回路は前記テストパターンを基に論理演算を行い、
前記第１フリップフロップは、前記組み合わせ回路において得られた論理演算結果を前記命令信号に応じて出力する
ことを特徴とする請求項１乃至４いずれか１項記載の半導体装置。
【請求項６】
第１、第２動作モードを有する半導体装置であって、
前記第１動作モードにおいては順序回路として動作し、前記第２動作モードにおいては組み合わせ回路として動作する第１半導体回路と、
前記第１半導体回路内に設けられた第１フリップフロップと、
前記第２動作モードにおいては、前記第２動作モード時に入力される命令信号に応じて前記第１フリップフロップの入力を出力に伝搬させ、前記第１動作モードにおいては、クロックに同期して前記第１フリップフロップの入力を出力に伝搬させることにより、前記第１半導体回路の前記順序回路または組み合わせ回路としての動作を切り替える切り替え回路と、
前記第１動作モードにおいては前記クロックに同期して動作し、前記第２動作モードにおいては、前記第１動作モードにおける入力信号の代わりにテストパターンを入力信号として選択し、前記クロックに同期しつつ前記テストパターンを前記第１半導体回路に入力する第２フリップフロップと
を具備することを特徴とする半導体装置。
【請求項７】
前記第１、第２フリップフロップは同一の構成を備え、
前記切り替え回路は、前記第２動作モードにおいて、前記命令信号に応答して前記クロックを制御し、
前記第１半導体回路は、前記第２動作モードにおいて、前記第１フリップフロップが前記切り替え回路によって制御された前記クロックに同期して動作することにより、順序回路から組み合わせ回路としての動作に切り替わる
ことを特徴とする請求項６記載の半導体装置。
【請求項８】
前記第１動作モードにおいては順序回路として動作し、前記第２動作モードにおいては組み合わせ回路として動作する第２半導体回路と、
前記第２半導体回路内に設けられた第３フリップフロップとを更に備え、
前記切り替え回路は、前記第１、第３フリップフロップの動作を制御することにより、前記第１、第２半導体回路の前記動作を切り替える
ことを特徴とする請求項６記載の半導体装置。
【請求項９】
前記第２動作モードにおいて、前記第２フリップフロップは前記第１半導体回路へ前記テストパターンを入力し、
前記第１半導体回路は前記第２フリップフロップに格納された前記テストパターンを基に論理演算を行う
ことを特徴とする請求項６乃至８いずれか１項記載の半導体装置。
【請求項１０】
前記切り替え回路は、前記第１フリップフロップの一部である
ことを特徴とする請求項１または６記載の半導体装置。
【請求項１１】
前記第１フリップフロップは、マスターラッチ回路及びスレーブラッチ回路を含むマスタースレーブ型であり、
前記切り替え回路は、前記スレーブラッチ回路の転送ゲートに並列に接続され、且つ前記第２動作モードにおいて、前記転送ゲートの動作を制御する前記クロックと逆相の前記命令信号に応答して動作するインバータを含む
ことを特徴とする請求項１、６、１０いずれか１項記載の半導体装置。
【請求項１２】
前記第１フリップフロップは、マスターラッチ回路及びスレーブラッチ回路を含むマスタースレーブ型であり、
前記切り替え回路は、前記第２動作モードにおいて、前記マスターラッチ回路及びスレーブラッチ回路に入力される前記クロックを同相にする
ことを特徴とする請求項１乃至１０いずれか１項記載の半導体装置。
【請求項１３】
前記第１フリップフロップは、入力端に接続された転送ゲートと、前記転送ゲートの後段に接続されたラッチ回路とを含み、
前記切り替え回路は、前記第２動作モードにおいて、前記転送ゲートの動作を制御する前記クロックを一定レベルに固定する
ことを特徴とする請求項１乃至１０いずれか１項記載の半導体装置。
【請求項１４】
全てのフリップフロップをバイパス化しつつ、半導体集積回路を設計するステップと、
前記半導体集積回路の動作テストを行い、内部に前記フリップフロップを含むループ回路が存在するか否かを判定するステップと、
前記ループ回路が存在すると判定された場合、前記ループ回路に含まれる少なくともいずれかの前記フリップフロップをスキャン化することで、前記ループ回路を順序回路にするステップと
を具備することを特徴とする半導体装置の設計方法。
【請求項１５】
前記フリップフロップをバイパス化するステップは、前記フリップフロップが、クロックに同期して動作する第１動作モードと、テスト時に入力される命令信号に応じて入力を出力に伝搬させる第２動作モードとを有するようにする
ことを特徴とする請求項１４記載の半導体装置の設計方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、半導体集積回路及びその設計方法に関するもので、特に半導体集積回路のスキャン（Ｓｃａｎ）設計手法に係るものである。
【０００２】
【従来の技術】
近年、システムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）の大規模化に伴って、その設計に用いられるＦ／Ｆ（フリップフロップ）の数は増加している。同時に、ＬＳＩの動作周波数の向上に伴って、その設計のパイプラインの段数も増加している。
【０００３】
現状のテスト容易化設計（Ｄｅｓｉｇｎ  Ｆｏｒ  Ｔｅｓｔａｂｉｌｉｔｙ）においては、スキャン（Ｓｃａｎ）設計が活用されている。スキャン設計は、Ｆ／Ｆをシリアルチェーンで接続することにより、Ｆ／Ｆに保持されている値の読み出し及び書き込みを直接行えるようにしたものである。そして、ＬＳＩを複数の組み合わせ回路に分割して、テストパターンを自動発生出来るようにしたものである。そのため、スキャン設計を用いる場合には、基本的には全てのＦ／Ｆをシリアルチェーン化（以降、スキャン化と呼ぶことにする）する必要がある。
【０００４】
スキャン化の方法の一例について図２９を用いて説明する。図２９はフリップフロップのブロック図である。図示するように、スキャン化の為には、Ｄ−Ｆ／Ｆに、入力Ｄと入力ＳＤとを選択出来る機能を与える。そして、通常動作モードにおける入力Ｄと、スキャン動作モードにおける入力ＳＤとの２つの入力を、セレクト信号Ｓによって切り替える。このように、シリアルチェーンの入力と通常動作用の入力とを選択出来るようにしたＦ／Ｆ（スキャンＦ／Ｆ）があれば、スキャンテストが可能となる。
【０００５】
スキャンＦ／Ｆの動作は、例えば２相の専用クロックにより制御される。従って、シリアルチェーンを用いてデータを入出力する際に、２つのクロックが互いにオーバーラップしないよう、外部からＦ／Ｆを制御出来る。よって、動作を２相のクロックで制御する方式は、クロックスキューによるデータのホールドエラー発生を防止するための有効な手段である。また本方式であると、入力Ｄと入力ＳＤとの切り替えを、クロックの有無で制御する。従って、スキャンＦ／Ｆのセットアップへの影響を最小限に抑えることができ、特に１ＧＨｚを超えるような高周波数で動作するＬＳＩの設計に有効である。しかし、スキャン化を行う為に必要となる追加回路の規模が大きいことが問題であった。
【０００６】
そこで、ＬＳＩに含まれるＦ／Ｆのうち、その一部だけをスキャン化する方法が提案されている（例えば非特許文献１参照）。
【０００７】
【非特許文献１】
“Ｔｏｓｈｉｎｏｂｕ  Ｏｎｏ  ｅｔ  ａｌ．，  “Ａｎ  Ａｐｐｌｉｃａｔｉｏｎ  ｏｆ  Ｐａｒｔｉａｌ  Ｓｃａｎ  Ｔｅｃｈｎｉｑｕｅｓ  ｔｏ  ａ  Ｈｉｇｈ−Ｅｎｄ  Ｓｙｓｔｅｍ  ＬＳＩ  Ｄｅｓｉｇｎ”，  ＩＥＥＥ，  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  Ｔｅｎｔｈ  Ａｓｉａｎ  Ｔｅｓｔ  Ｓｙｍｐｏｓｉｕｍ，  Ｎｏｖｅｍｂｅｒ，  ２００１，  ｐ．４５９
【０００８】
【発明が解決しようとする課題】
上記のように、近年のＬＳＩの大規模化と動作周波数の上昇に伴い、全体の回路に対してＦ／Ｆの占める割合が増加している。また、スキャン化に伴って必要となるＦ／Ｆへの追加回路により、回路規模の拡大してきている。この追加回路は、出荷テストの際にのみ用いられる回路であり、出荷後には全く動作しない付加回路である。従って、言い換えると、従来のＬＳＩであると、テストのためにしか使われない回路のＬＳＩ中に占める割合が、Ｆ／Ｆの増加に伴って大きくなっているという問題があった。
【０００９】
また、スキャンＦ／Ｆが増加すると、シリアルチェーンでのデータ入出力の量が増加する。そのため、テスト時間及びテストベクトル量が増加し、またベクトルを保存するテスタに大容量のメモリが必要になり、テスタのコストが増大するという問題があった。
【００１０】
更に、動作周波数の上昇に伴って、Ｆ／Ｆを挿入することにより従来の１ステージ（Ｆ／ＦからＦ／Ｆまでの間）を複数のステージに分割することが行われている。これにより、Ｆ／ＦからＦ／Ｆまでの間の組み合わせ回路が複数の組み合わせ回路に分割され、動作速度が向上される。従って、１ステージ内に存在する制御回路は単純な動作を行うようになり、ステージによっては（特にデータを処理する部分）、Ｆ／ＦとＦ／Ｆとの間のロジック回路が単にバッファだけとなるケースが発生しつつある。このような場合、スキャンテストは単にＦ／Ｆ間の配線を確認するだけのテストとなる。すなわち、１つのスキャンＦ／Ｆが試験を行う組み合わせ回路の量が減少している。言い換えれば、スキャンＦ／Ｆの数が、無駄に増加してしまうという問題があった。
【００１１】
そこで、ＬＳＩの含まれる一部のＦ／Ｆのみスキャン化する方法も提案されているが、効果は十分では無いという問題があった。
【００１２】
この発明は、上記事情に鑑みてなされたもので、その目的は、故障検出率を低下させることなく回路面積の増加を防止できる半導体装置及びその設計方法を提供することにある。
【００１３】
【課題を解決するための手段】
上記目的を達成するために、この発明に係る半導体装置は、第１、第２動作モードを有する半導体装置であって、前記第２動作モード時に命令信号を伝送する信号線と、前記第１動作モードにおいてはクロックに同期して動作し、前記第２動作モードにおいては前記命令信号に応じて動作する第１フリップフロップと、前記第２動作モードにおいて、前記命令信号に応答して前記第１フリップフロップの入力を出力に伝搬させる切り替え回路と、前記第１動作モードにおいては前記クロックに同期して動作し、前記第２動作モードにおいては、前記第１動作モードにおける入力信号の代わりにテストパターンを入力信号として選択し、前記クロックに同期して動作する第２フリップフロップとを具備することを特徴としている。
【００１４】
上記構成の半導体装置によれば、半導体集積回路のスキャン化の過程において、一部のＦ／Ｆをバイパス化している。バイパスＦ／Ｆは、第２動作モード（出荷テスト時）において、入力端の入力信号を、出力端に命令信号に応じて伝搬させる。この際、バイパス化に要する付加回路は、スキャン化に比べて少なくて済む。従って、スキャン化に伴う回路面積の増加を抑制できる。更に、スキャンＦ／Ｆの数が少なく出来るため、テスト時に入力するデータ量が少なくて済む。その結果、テスト工程を簡略化出来ると共に、テスト用の回路に必要とされるメモリ量を削減で出来るので、テストコストを削減できる。また、従来においてＦ／Ｆの数を増加させて組み合わせ回路を単純化する主な目的は、半導体集積回路の動作速度の向上にある。従って、全てのＦ／Ｆをスキャン化させず、一部をバイパス化させたとしても、テスト動作に影響は無い。すなわち、故障検出率の低下を招くことは無い。
【００１５】
またこの発明に係る半導体装置の設計方法は、全てのフリップフロップをバイパス化しつつ、半導体集積回路を設計するステップと、前記半導体集積回路の動作テストを行い、内部に前記フリップフロップを含むループ回路が存在するか否かを判定するステップと、前記ループ回路が存在すると判定された場合、前記ループ回路に含まれる少なくともいずれかの前記フリップフロップをスキャン化することで、前記ループ回路を順序回路にするステップとを具備することを特徴としている。
【００１６】
上記のような設計方法によれば、一部のＦ／Ｆをバイパス化することで、上記効果が得られる。また同時に、Ａｓｙｎｃｈｒｏｎｏｕｓループの有無を確認し、その結果に基づいてスキャン化するかバイパス化するかを決定している。従って、ループが存在する組み合わせ回路が生じることを防止でき、半導体装置の動作信頼性を向上できる。
【００１７】
【発明の実施の形態】
以下、この発明の実施形態を図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【００１８】
この発明の第１の実施形態に係る半導体装置について図１を用いて説明する。図１は半導体集積回路（ＬＳＩ）の内部構成を示すブロック図である。
【００１９】
図示するようにＬＳＩ１０は、複数のバイパスＦ／Ｆ２０−１、２０−２、…（第１フリップフロップ）、複数のスキャンＦ／Ｆ３０−１〜３０−４、…、第１信号線４０、第２信号線５０、組み合わせ回路（Ｃｏｍｂｉｎａｔｉｏｎａｌ  ｌｏｇｉｃ  ｃｉｒｃｕｉｔ）６０−１〜６０−４、…を備えている。
【００２０】
バイパスＦ／Ｆ２０−１、２０−２、…の各々は、Ｆ／Ｆ２１−１、２１−２、…及びマルチプレクサ２２−１、２２−２、…（切り替え回路）をそれぞれ備えている。Ｆ／Ｆ２１−１、２１−２の各々の入力端Ｄは、組み合わせ回路６０−１、６０−３の出力端にそれぞれ接続されている。マルチプレクサ２２−１、２２−２の各々は、第１信号線４０を伝搬する制御信号ＳＴ１（命令信号）に基づいて、Ｆ／Ｆ２１−１、２１−２の入力端Ｄ及び出力端Ｑのいずれかの信号をそれぞれ選択する。そして、選択信号を組み合わせ回路６０−２、６０−４へそれぞれ出力する。すなわち、マルチプレクサ２２−１、２２−２がＦ／Ｆ２１−１、２１−２の入力端Ｄの信号をそれぞれ選択することで、組み合わせ回路６０−１、６０−３の出力信号は、信号線２３−１、２３−２をそれぞれ介して、組み合わせ回路６０−２、６０−４へ、クロックＣＬＫにかかわらず直接伝搬される。バイパスＦ／Ｆ２０−１、２０−２は、通常動作モードと出荷テスト動作モードの２つの動作モードをそれぞれ有している。そして、マルチプレクサ２２−１、２２−２は、通常動作モード（第１動作モード）においては出力端Ｑからの信号を選択し、出荷テスト動作モード（第２動作モード）においては入力端Ｄからの信号を選択する。
【００２１】
次にスキャンＦ／Ｆ３０−１〜３０−４について説明する。スキャンＦ／Ｆ３０−１は、前段の組み合わせ回路または入力端子からデータが入力される入力端Ｄと、テストパターンが入力される入力端ＳＤのいずれかを選択する。そして選択した入力端に入力される信号を内部に取り込む。この選択動作は、第２信号線５０を伝搬してスキャンＦ／Ｆ３０−１に入力される制御信号ＳＣ１、ＳＣ２に基づいて行われる。そして、スキャンＦ／Ｆ３０−１は選択された信号をラッチし、出力端Ｑから組み合わせ回路６０−１へ出力する。またスキャンＦ／Ｆ３０−１の出力端Ｑは、スキャンＦ／Ｆ３０−３へも信号線４１−１（シリアルチェーン）を介して接続されている。
【００２２】
スキャンＦ／Ｆ３０−３は、前段の組み合わせ回路または入力端子からデータが入力される入力端Ｄと、スキャンＦ／Ｆ３０−１からの出力信号が信号線４１−１を介して入力される入力端ＳＤのいずれかを選択する。そして、選択した入力端に入力される信号を内部に取り込む。この選択動作は、第２信号線５０を伝搬してスキャンＦ／Ｆ３０−３に入力される制御信号ＳＣ１、ＳＣ２に基づいて行われる。そして、スキャンＦ／Ｆ３０−３は選択された信号をラッチし、出力端Ｑから次段の組み合わせ回路６０−３へ出力する。またスキャンＦ／Ｆ３０−３の出力端Ｑは、スキャンＦ／Ｆ３０−２へも信号線４１−２を介して接続されている。
【００２３】
スキャンＦ／Ｆ３０−２は、前段の組み合わせ回路６０−２からの出力信号が入力される入力端Ｄと、スキャンＦ／Ｆ３０−３からの出力信号が信号線４１−２を介して入力される入力端ＳＤのいずれかを選択する。そして、選択した入力端に入力される信号を内部に取り込む。この選択動作は、第２信号線５０を伝搬してスキャンＦ／Ｆ３０−２に入力される制御信号ＳＣ１、ＳＣ２に基づいて行われる。そして、スキャンＦ／Ｆ３０−２は選択された信号をラッチし、出力端Ｑから次段の組み合わせ回路または出力端子へ出力する。またスキャンＦ／Ｆ３０−２の出力端Ｑは、スキャンＦ／Ｆ３０−４へも信号線４１−３を介して接続されている。
【００２４】
スキャンＦ／Ｆ３０−４は、前段の組み合わせ回路６０−４からの出力信号が入力される入力端Ｄと、スキャンＦ／Ｆ３０−２からの出力信号が信号線４１−３を介して入力される入力端ＳＤのいずれかを選択する。そして、選択した入力端に入力される信号を内部に取り込む。この選択動作は、第２信号線５０を伝搬してスキャンＦ／Ｆ３０−４に入力される制御信号ＳＣ１、ＳＣ２に基づいて行われる。そして、スキャンＦ／Ｆ３０−４は選択された信号をラッチし、出力端Ｑから次段の組み合わせ回路または出力端子へ出力する。
【００２５】
スキャンＦ／Ｆ３０−１〜３０−４の各々は、通常動作モードとシフト動作モードの２つの動作モードを有している。そして、スキャンＦ／Ｆ３０−１〜３０−４の各々は、通常動作モードにおいては入力端Ｄからの信号を選択し、シフト動作モードにおいては入力端ＳＤから入力されるテストパターンを選択する。またスキャンＦ／Ｆ３０−１〜３０−４は、それぞれクロックＣＬＫに応じて動作する。
【００２６】
組み合わせ回路６０−１〜６０−４は、それぞれスキャンＦ／Ｆ３１−１、バイパスＦ／Ｆ２０−１、スキャンＦ／Ｆ３０−３、及びバイパスＦ／Ｆ２０−２の出力信号を入力として論理演算を行う。そして、その演算結果をバイパスＦ／Ｆ２０−１、スキャンＦ／Ｆ３０−２、バイパスＦ／Ｆ２０−２、及びスキャンＦ／Ｆ３０−４へそれぞれ出力する。
【００２７】
次に、図２乃至図６を用いてスキャンＦ／Ｆ及びバイパスＦ／Ｆの具体的な構成について説明する。図２はスキャン化またはバイパス化を行う前のＤ−Ｆ／Ｆの回路図、図３、図４はスキャンＦ／Ｆ３０−１〜３０−４の回路図、図５、図６はバイパスＦ／Ｆ２０−１、２０−２の回路図である。
【００２８】
まず図２を用いて、スキャン化またはバイパス化を行う前のＤ−Ｆ／Ｆの構成について説明する。図示するように、Ｄ−Ｆ／Ｆはマスターラッチ回路及びスレーブラッチ回路を備えている。
【００２９】
マスターラッチ回路は、クロックド・インバータ７０、７１、インバータ７２を有している。クロックド・インバータ７０は転送ゲートとして機能するものであり、クロックＣＬＫが“ｌｏｗ”レベル（反転クロック／ＣＬＫ＝“ｈｉｇｈ”）の際にオープン（導通状態）となる。逆に、クロックＣＬＫが“ｈｉｇｈ”レベル（反転クロック／ＣＬＫ＝“ｌｏｗ”レベル）の際には、動作を停止する。クロックド・インバータ７１は、出力端がクロックド・インバータ７０の出力端に接続され、入力端がインバータ７２の出力端に接続されている。そしてクロックド・インバータ７１は、クロックＣＬＫが“ｈｉｇｈ”レベルの際にオープンとなる。インバータ７２は、入力端がクロックド・インバータ７０の出力端に接続され、出力端が該マスターラッチ回路の出力端となる。
【００３０】
スレーブラッチ回路は、マスターラッチ回路とほぼ同様の構成を有している。すなわち、スレーブラッチ回路は、クロックド・インバータ７３、７４、インバータ７５を有している。クロックド・インバータ７３は転送ゲートとして機能するものであり、クロックＣＬＫが“ｈｉｇｈ”レベル（反転クロック／ＣＬＫ＝“ｌｏｗ”）の際にオープン（導通状態）となる。逆に、クロックＣＬＫが“ｌｏｗ”レベル（反転クロック／ＣＬＫ＝“ｈｉｇｈ”レベル）の際には、動作を停止する。クロックド・インバータ７４は、出力端がクロックド・インバータ７３の出力端に接続され、入力端がインバータ７５の出力端に接続されている。そしてクロックド・インバータ７４は、クロックＣＬＫが“ｌｏｗ”レベルの際にオープンとなる。インバータ７５は、入力端がクロックド・インバータ７３の出力端に接続され、出力端が該スレーブラッチ回路の出力端、すなわちＦ／Ｆの出力端Ｑとなる。
【００３１】
次に、スキャンＦ／Ｆ３０−１〜３０−４の構成について、図３を用いて説明する。図３は、スキャンＦ／Ｆ３０−１〜３０−４の回路図である。スキャンＦ／Ｆ３１−１〜３１−４は、図２に示すＤ−Ｆ／Ｆにおいて、入力Ｄと入力ＳＤのいずれかを選択する機能を与えた構成を有する。
【００３２】
図示するように、スキャンＦ／Ｆ３０−１〜３０−４は、図２に示す構成において、クロックド・インバータ７６を追加し、クロックド・インバータ７１をクロックド・インバータ７７に置き換え、クロックド・インバータ７３をクロックド・インバータ８４に置き換え、クロックド・インバータ７４をクロックド・インバータ７８に置き換えた構成を有している。クロックド・インバータ７６は、入力端が入力端ＳＤに接続され、出力端がクロックド・インバータ７０の出力端に接続されている。そしてクロックド・インバータ７６は、制御信号ＳＣ１が“ｈｉｇｈ”レベルの際にオープンとなる。クロックド・インバータ７７は、クロックＣＬＫと反転制御信号／ＳＣのＡＮＤ信号が“ｈｉｇｈ”レベルの際にオープンとなる。クロックド・インバータ８４は、クロックＣＬＫと制御信号ＳＣ２のＯＲ信号が“ｈｉｇｈ”レベルの際にオープンとなる。またクロックド・インバータ７８は、クロックＣＬＫと反転制御信号／ＳＣ２のＯＲ信号が“ｈｉｇｈ”レベルの際にオープンとなる。
【００３３】
図４は、スキャンＦ／Ｆ３０−１〜３０−４の別の構成について示す回路図である。図示するように、スキャンＦ／Ｆ３０−１〜３０−４は、図２に示す構成において、クロックド・インバータ７６、７９、８０、インバータ８１を追加し、クロックド・インバータ７１をクロックド・インバータ７７に置き換えた構成を有している。クロックド・インバータ７６は、入力端が入力端ＳＤに接続され、出力端がクロックド・インバータ７０の出力端に接続されている。そしてクロックド・インバータ７６は、制御信号ＳＣ１が“ｈｉｇｈ”レベルの際にオープンとなる。クロックド・インバータ７９は、入力端がスレーブラッチ回路の出力端Ｑに接続され、制御信号ＳＣ２が“ｈｉｇｈ”レベルの際にオープンとなる。クロックド・インバータ８０は、出力端がクロックド・インバータ７９の出力端に接続され、反転制御信号／ＳＣ２が“ｈｉｇｈ”レベル（制御信号ＳＣ２＝“ｌｏｗ”）の際にオープンとなる。インバータ８１は、入力端がクロックド・インバータ７９の出力端に接続され、出力端がクロックド・インバータ８０の入力端に接続される。そして、入力端ＳＤが選択された際、インバータ８１の出力端が、スキャンＦ／Ｆの出力端ＳＱとなる。
【００３４】
次にバイパスＦ／Ｆ２０−１、２０−２の構成について図５を用いて説明する。図５はバイパスＦ／Ｆの回路図である。バイパスＦ／Ｆは、図２に示すＤ−Ｆ／Ｆにおいて、入力と出力とをバイパス出来るようにしたものである。
【００３５】
図示するように、バイパスＦ／Ｆ２０−１、２０−２は、図２を用いて説明したＤ−Ｆ／Ｆにおいて、クロックド・インバータ７３をクロックド・インバータ８２に置き換えた構成を有している。クロックド・インバータ８２は、クロックＣＬＫと制御信号ＳＴ１とのＡＮＤ信号が“ｈｉｇｈ”レベルの際にオープンとなる。すなわち、クロックＣＬＫと制御信号ＳＴ１のいずれか一方が“ｈｉｇｈ”レベルであれば、オープンとなる。
【００３６】
図６は、バイパスＦ／Ｆ２０−１、２０−２の別の構成について示す回路図である。図示するように、バイパスＦ／Ｆ２０−１、２０−２は、図２を用いて説明したＤ−Ｆ／Ｆにおいて、クロックド・インバータ８３を追加した構成を有している。クロックド・インバータ８３は、入力端がインバータ７２の出力端に接続され、出力端がインバータ７５の入力端に接続されている。クロックド・インバータ８３は、制御信号ＳＴ１が“ｈｉｇｈ”レベルの際にオープンとなる。
【００３７】
次に、本実施形態に係る半導体装置のスキャンテスト方法について、図７乃至図１０を用いて説明する。図７は、クロックＣＬＫ、反転クロック／ＣＬＫ、及び制御信号ＳＴ１のタイミングチャートである。図８乃至図１０は、半導体集積回路のブロック図であり、図１に示す構成を、説明の簡単化の為に簡略化して示すものである。なお、スキャンＦ／Ｆの動作は従来と同様であるので、ここでは特にバイパスＦ／Ｆの動作に着目して詳細に説明する。
【００３８】
図示するように、ＬＳＩ１０は、バイパスＦ／Ｆ２０、スキャンＦ／Ｆ３０−１、３０−２、組み合わせ回路６０−１、６０−２、第１信号線４０、及び第２信号線５０を備える構成であるとする。そして、例えば時刻ｔ１でスキャンテストを開始したとする。
【００３９】
スキャンテストの開始の際には、半導体集積回路１０の入力ピン１１から入力される制御信号ＳＴ１が“１”にされる。すると、バイパスＦ／Ｆ２０は通常動作モードから出荷テスト動作モードへ移行し、スキャンＦ／Ｆ３０−１、３０−２は通常動作モードからシフト動作モードへと移行する。この際の様子を示すのが図８である。図８は半導体集積回路のブロック図である。
【００４０】
スキャンＦ／Ｆ３０−１は、入力端ＳＤからの入力を選択し、入力ピン１４から入力されるテストパターンを取り込む。例えばテストパターンが“１０”であったとする。すると、クロックＣＬＫの入力に応答して、スキャンＦ／Ｆ３０−１には“１”が取り込まれる。また、スキャンＦ／Ｆ３０−１にシリアルチェーンで接続されているスキャンＦ／Ｆ３０−２には、信号線４１を介して“０”が取り込まれる。すなわち、シフト動作モードにあっては、テストパターンの各ビットがスキャンＦ／Ｆを次々とシフトされることで、シリアルチェーンで接続されたスキャンＦ／Ｆ内部にテストパターンの各ビットが取り込まれる。スキャンＦ／Ｆ３０−１、３０−２にシリアルチェーンで接続されていないバイパスＦ／Ｆ２０には、テストパターンは取り込まれない。但し、制御信号ＳＴ１＝１であるので、バイパスＦ／Ｆ２０は、内部に格納している信号を、クロックＣＬＫにかかわらず出力端に出力させるように動作する状態にある。この状態を図５を参照しつつ説明する。図５において、クロックド・インバータ８２は、クロックＣＬＫとＳＴ１のＡＮＤ信号に応答して動作する。出荷テスト動作モードにおいては、制御信号ＳＴ１が常時“１”とされているから、クロックド・インバータ８３も常時オープンとなっている。また図６の構成で有れば、クロックド・インバータ８３が常時オープンとなっている。従って、入力されているデータは、クロックの有無に関わらず、出力端Ｄより出力される。換言すれば、バイパスＦ／Ｆは、単に組み合わせ回路６０−１と６０−２とを接続する信号線、またはバッファ回路と見なすことが出来る。
【００４１】
全てのスキャンＦ／Ｆ３０−１、３０−２にテストパターンが格納された時刻ｔ２からは、スキャンＦ／Ｆ３０−１、３０−２は通常動作モードに移行する。そして、半導体集積回路１０の入力ピン１５よりデータが入力される。この際の様子を示すのが図９である。通常動作モードに移行してからクロックＣＬＫが１つ入ることで、組み合わせ回路６０−１の入力端にはスキャンＦ／Ｆ３０−１に格納されている“１”が入力される。そして、組み合わせ回路６０−１は、入力されたデータ“１”に基づいて論理演算を行う。更に、バイパスＦ／Ｆ２０の入力信号は出力信号へバイパスされる状態にあるため、組み合わせ回路６０−１の論理演算結果は組み合わせ回路６０−２に入力される。そして組み合わせ回路６０−２は、組み合わせ回路６０−１における演算結果に基づいた論理演算を行う。通常動作モードにおけるスキャンＦ／Ｆ３０−２は、入力端Ｄからの入力信号を取り込む状態にあるから、組み合わせ回路６０−２における上記演算結果“Ａｎｓ”は、スキャンＦ／Ｆ３０−２に取り込まれる。
【００４２】
次に、時刻ｔ２からクロックＣＬＫが１つ分の時間が経った時刻ｔ３において、スキャンＦ／Ｆ３０−１、３０−２は再びシフト動作へ移行する。この際の様子を示すのが図１０である。図１０は半導体集積回路のブロック図である。すなわち、シリアルチェーンで接続されているスキャンＦ／Ｆ３０−１、３０−２に格納されているデータがシフトされる。従って、スキャンＦ／Ｆ３０−２に格納されている演算結果“Ａｎｓ”が、半導体集積回路の出力ピン１６から取り出される。
【００４３】
そして、上記のようにして得られた演算結果“Ａｎｓ”が期待値と符合しているか否かによって、組み合わせ回路６０−１、６０−２が正常に動作しているか否か、すなわち故障の有無を判定できる。
【００４４】
その後、時刻ｔ４でバイパスＦ／Ｆ２０及びスキャンＦ／Ｆ３０−１、３０−２は通常動作モードに移行する。通常動作モードにおけるバイパスＦ／Ｆ２０は、通常のＦ／Ｆと同様の動作を行う。すなわち、通常動作モードにおいて制御信号ＳＴは“０”固定であるので、図６においてはクロックド・インバータ８３が常時クローズとなり、また図５においてはクロックド・インバータ８２がクロック／ＣＬＫに応答して動作するようになる。
【００４５】
上記のように、本実施形態に係る半導体装置であると、故障検出率の低下を招くことなく、スキャンＦ／Ｆの数を大幅に削減でき、回路面積を削減できる。この点について、以下図１１及び図１２を用いて説明する。図１１及び図１２は半導体集積回路のブロック図である。
【００４６】
図１１に示すように、半導体集積回路が、３つのＦ／Ｆ３０−５〜３０−７及び、２つのＦ／Ｆ間に挟まれた２つの組み合わせ回路６０−５、６０−６を含んでいると仮定する。そして、スキャン化の為に、３つ全てのＦ／Ｆがスキャン化されていると仮定する。
【００４７】
従来技術で説明したように、近年の半導体集積回路には、更なる高速動作の要求がある。この高速動作の要求を満たすために、各組み合わせ回路における処理にかかる時間を短くする必要がある。換言すれば、組み合わせ回路を単純化する必要がある。そのため、Ｆ／Ｆを追加することにより、組み合わせ回路を単純化した回路例が、図１２である。
【００４８】
図示するように、図１１に示す構成において、Ｆ／Ｆ２０−３、２０−４を追加することで、組み合わせ回路６０−５、６０−６を、それぞれ２つの組み合わせ回路６０−７、６０−８及び組み合わせ回路６０−９、６０−１０に分割している。従来方法であると、この追加したＦ／Ｆ２０−３、２０−４についてもスキャン化を行っていた。このことが、スキャンＦ／Ｆの増加と、それに伴う回路面積の増加の原因であった。
【００４９】
しかし本実施形態に係る構成であると、新たに追加した２つのＦ／Ｆ２０−３、２０−４については、スキャン化を行わずにバイパス化を行っている。すなわち、スキャンテスト時にはＦ／Ｆ２０−３、２０−４をスルーとなるようにしている。更に言い換えれば、半導体回路６０−５、６０−６は、通常動作モードにおいては順序回路（Ｓｅｑｕｅｎｔｉａｌ  ｌｏｇｉｃ  ｃｉｒｃｕｉｔ）として機能し、テスト動作モードにおいては組み合わせ回路として機能する。この機能の切り替えは、バイパスＦ／Ｆ２０−３、２０−４によって行われる。バイパスＦ／Ｆ２０−３、２０−４の各々は、通常動作モードにおいては通常のＦ／Ｆとして動作するから、クロックに応答して入力信号を次段に伝搬させる。従って、半導体回路６０−５、６０−６は、順序回路として動作する。しかし、テスト動作モードにおいては、クロックにかかわらず、制御信号ＳＴ１に応答して入力信号を次段に伝搬させる。従って、半導体回路６０−５、６０−６は、組み合わせ回路として機能する。この点を図１を用いて説明すれば、組み合わせ回路６０−１、６０−２、及びバイパスＦ／Ｆ２０−１を含んでなる半導体回路が、バイパスＦ／Ｆ２０−１の動作モードに応じて、組み合わせ回路または順序回路として機能する。より具体的には、バイパスＦ／Ｆ２０−１が通常動作モードの場合は順序回路として機能し、出荷テスト動作モードの場合は組み合わせ回路として機能する。そして、Ｆ／Ｆをバイパス化するために必要となる追加回路は、図１に示すようにゲートレベルではスキャン化の場合と同じであるが、図３乃至図６で説明したように、実際の回路構成はスキャン化の場合に比べて少なく済む。従って、回路面積の増加が抑制される。
【００５０】
そもそも、Ｆ／Ｆを増やして組み合わせ回路の構成を単純化するのは、半導体集積回路の動作を高速化させるのが目的である。また近年の半導体集積回路では、従来技術でも説明したように１つの組み合わせ回路、すなわち図１１で言うところの組み合わせ回路６０−５、６０−６の構成は十分に単純化されている。テストパターンを生成するＡＴＰＧ（Ａｕｔｏ  Ｔｅｓｔ  Ｐａｔｔｅｒｎ  Ｇｅｎｅｒａｔｉｏｎ）ツールの高性能化も手伝って、動作速度向上のために追加したＦ／Ｆ２０−３、２０−４をスキャン化したところで、故障検出率に殆ど影響は無い。換言すれば、図１１の構成と図１２の構成とを比べると、故障検出率は変わらないのが現状である。この結果、追加Ｆ／Ｆをスキャン化せずにバイパス化することで、半導体集積回路の動作速度を向上させつつ、故障検出率の維持と回路面積の増加抑制を両立出来る。
【００５１】
次にこの発明の第２の実施形態に係る半導体装置及びその設計方法について図１３を用いて説明する。図１３は半導体集積回路の内部構成を示すブロック図である。本実施形態は、上記第１の実施形態で説明したスキャン化手法を実現するための別のアプローチを示すためのものである。
【００５２】
図示するように、ＬＳＩ１０は複数のバイパスＦ／Ｆ１及びスキャンＦ／Ｆ２並びに組み合わせ回路（図示せず）を備えている。本実施形態に係る構成では、ループを有する回路に含まれるＦ／Ｆのみがスキャン化される。この点について図１４を用いて説明する。図１４はループを有する回路の一例である。
【００５３】
図示するように、加算回路８５の出力端が、Ｆ／Ｆ８６を介して入力端に接続されている。このような順序回路は、１づつ値をインクリメントしていくような回路に広く適用されており、加算器８５の出力は、Ｆ／ＦにクロックＣＬＫが入力される毎に増加していく。このように、ループ回路内のＦ／Ｆはバイパス化することが出来ない。順序回路内のＦ／Ｆをバイパス化することは、すなわち順序回路を組み合わせ回路に変更することと言い換えることが出来る。このように組み合わせ回路内にループが存在すると、出力信号の値が一定値にならないという問題がある。例えば図１４の例では、クロックにかかわらず加算器８５の出力が入力に戻ることになり、加算器８５の出力がいつまで経っても一定に定まらない。従って、ループ回路内のＦ／Ｆはバイパス化することが出来ないのである。
【００５４】
上記を勘案して、本実施形態に係る半導体装置のスキャン化設計手法について、図１５を用いて説明する。図１５は、半導体装置の設計方法のフローチャートである。
【００５５】
まず半導体集積回路を設計し（ステップＳ１０）、含まれる全てのＦ／Ｆをバイパス化する（ステップＳ１１）。すなわち、図１３における全てのＦ／Ｆを、上記第１の実施形態で説明した図５、図６に示す構成を有するバイパスＦ／Ｆとして、１つの組み合わせ回路を形成する。
【００５６】
次に、Ａｓｙｎｃｈｒｏｎｏｕｓループの有無を判定する（ステップＳ１２）。これは、組み合わせ回路にループが存在するか否かを判定するという意味である。再度述べるが、この時点では、Ｆ／Ｆはバイパス化されているから、Ｆ／Ｆを含む回路もこの時点では組み合わせ回路として動作する。本ステップでは、より具体的には、バイパスＦ／Ｆを用いて設計した図１３に示す半導体集積回路において、ＡＴＰＧを実行する。まず、入力ピンと出力ピンのみをそれぞれ制御点、観測点と設定する。そして、制御信号ＳＴ１を“１”として、全てのバイパスＦ／Ｆを出荷テスト動作モード（バイパス状態）とする。このような状態で、テストパターンを入力してテストを行う。すると、有る組み合わせ回路の出力が入力に戻るようなループが存在した場合、ＡＴＰＧにおいてＡｓｙｎｃｈｒｏｎｏｕｓループとして認識される。そしてＡＴＰＧは警告を発して、そのループを分断するようにメッセージを出す（ステップＳ１３）。
【００５７】
次に、上記メッセージが出力されたＦ／Ｆをスキャン化する。すなわちバイパスＦ／Ｆを、上記第１の実施形態において図３、図４に示す構成を有するスキャンＦ／Ｆに置き換える（ステップＳ１４）。上記メッセージが出力されなければ、スキャン化の必要はない。
【００５８】
上記のようにして、半導体集積回路の設計において、スキャンＦ／ＦとバイパスＦ／Ｆとが最適に選択される。
【００５９】
上記のように、本実施形態に係る半導体装置及びその設計方法であると、バイパスＦ／Ｆを用いることにより、上記第１の実施形態と同様の効果を得ることが出来る。また、Ｆ／Ｆをむやみにバイパス化すると、ループを有する組み合わせ回路が場合によっては発生する。しかし本実施形態に係る構成及び方法であれば、そのループを検索し、ループを有する回路内のＦ／Ｆのみをスキャン化している。そのため、半導体集積回路の動作信頼性を向上できると共に、スキャンＦ／Ｆの数を必要最小限にすることが出来る。従って、上記第１の実施形態に比べて、更に回路面積の増加を抑制することが出来る。
【００６０】
次にこの発明の第３の実施形態に係る半導体装置について図１６を用いて説明する。図１６は半導体集積回路のブロック図である。なお、本実施形態に係る半導体集積回路も、上記第１の実施形態で図１を用いて説明したように、多くのＦ／Ｆ及び組み合わせ回路を有するものであるが、ここでは説明の簡単化の為に、簡略化した回路構成を示す。
【００６１】
図示するように、ＬＳＩ１０は、バイパスＦ／Ｆ２０、スキャンＦ／Ｆ３０−１、３０−２、第１信号線４０、第２信号線５０、組み合わせ回路６０−１、６０−２、及びクロック生成器１００（切り替え回路）、１１０を備えている。
【００６２】
クロック生成器１１０は、外部クロックを基にしてクロックＣＬＫ１を生成する。クロック生成器１００は、外部クロック及び第１信号線４０を伝搬する制御信号ＳＴ１に基づいて、クロックＣＬＫ２を生成する。クロック生成器１００は、制御信号ＳＴ１が“０”である間は、クロックＣＬＫ１と同じクロックＣＬＫ２を生成する。クロックＣＬＫ１とＣＬＫ２については後述する。
【００６３】
バイパスＦ／Ｆ２０の入力端Ｄは、組み合わせ回路６０−１の出力端に接続され、出力端Ｑは組み合わせ回路６０−２の入力端に接続されている。そして、クロックＣＬＫ２に応答して動作する。バイパスＦ／Ｆ２０は、上記第１の実施形態と同様に通常動作モードと出荷テスト動作モードの２つの動作モードを有している。そして、出荷テスト動作モードにおいては、入力端Ｄからの信号を出力端Ｑに直接伝搬させる。
【００６４】
スキャンＦ／Ｆ３０−１、３０−２は、上記第１の実施形態と同様の構成を有しており、クロックＣＬＫ１に応答して動作する。
【００６５】
次に、図１７及び図１８を用いて、本実施形態に係るバイパスＦ／Ｆの具体的な構成について説明する。図１７は、バイパス化を行う前の、図２と異なる別の構成を有するＤ−Ｆ／Ｆの一例の回路図であり、図１８はバイパスＦ／Ｆ２０の回路図である。
【００６６】
図示するように、Ｄ−Ｆ／Ｆはクロックド・インバータ９０、９１及びインバータ９２を有している。クロックド・インバータ９０は転送ゲートとして機能するものであり、クロックＣＬＫ１が“ｈｉｇｈ”レベルの際にオープンとなる。クロックド・インバータ９１は、出力端がクロックド・インバータ９０の出力端に接続され、入力端がインバータ９２の出力端に接続されている。そしてクロックド・インバータ９１は、クロックＣＬＫ１が“ｌｏｗ”レベルの際にオープンとなる。インバータ９２は、入力端がクロックド・インバータ９０の出力端に接続され、出力端が該Ｆ／Ｆの出力端となる。
【００６７】
バイパスＦ／Ｆ２０は、クロックド・インバータ９３、９４及びインバータ９５を有している。クロックド・インバータ９３は転送ゲートとして機能するものであり、クロックＣＬＫ２が“ｈｉｇｈ”レベルの際にオープンとなる。クロックド・インバータ９４は、出力端がクロックド・インバータ９３の出力端に接続され、入力端がインバータ９５の出力端に接続されている。そしてクロックド・インバータ９４は、クロックＣＬＫ２が“ｌｏｗ”レベルの際にオープンとなる。インバータ９５は、入力端がクロックド・インバータ９５の出力端に接続され、出力端が該バイパスＦ／Ｆの出力端となる。
【００６８】
なお図示は省略するが、本実施形態に係るスキャンＦ／Ｆの構成は、図１７に示す構成において、入力Ｄと入力ＳＤとのいずれかを選択出来る構成とすれば良い。
【００６９】
次に、本実施形態に係る半導体装置のスキャンテスト方法について、図１６及び図１９を用いて説明する。図１９は、外部クロック、クロックＣＬＫ１、ＣＬＫ２、及び制御信号ＳＴ１のタイミングチャートである。
【００７０】
まず上記４つの信号の関係について説明する。外部クロックが入力されると、クロック生成器１１０は、外部クロックの立ち上がりからΔｔ１だけ“ｈｉｇｈ”レベルとなるクロックＣＬＫ１を生成する。すなわち、クロックＣＬＫ１は、一瞬だけパルスが立ち上がる形状を有している。クロック生成器１００は、制御信号ＳＴ１が“０”の際は、ＣＬＫ１と同様の形状のクロックＣＬＫ２を生成する。他方、制御信号ＳＴ１が“１”の際には、クロックＣＬＫ２は“ｈｉｇｈ”レベルに固定される。
【００７１】
図示するように、例えば時刻ｔ１でスキャンテストを開始したとする。スキャンテストの開始の際には、入力ピンから入力される制御信号ＳＴ１が“１”にされる。すると、バイパスＦ／Ｆ２０は通常動作モードから出荷テスト動作モードへ移行し、スキャンＦ／Ｆ３０−１、３０−２は通常動作モードからシフト動作モードへと移行する。スキャンＦ／Ｆ３０−１は、入力端ＳＤからの入力を選択し、テストパターンを取り込む。そして、テストパターンの各ビットがスキャンＦ／Ｆを次々とシフトされることで、シリアルチェーンで接続されたスキャンＦ／Ｆ内部にテストパターンの各ビットが取り込まれる。また、制御信号ＳＴ１＝１であるので、クロックＣＬＫ２は常時“ｈｉｇｈ”レベルである。従って、図１８におけるクロックド・インバータ９３が常時オープンとなる。従って、バイパスＦ／Ｆ２０は、入力端Ｄの信号を出力端Ｑに常にバイパスさせるように動作する状態にある。
【００７２】
全てのスキャンＦ／Ｆ３０−１、３０−２にテストパターンが格納された時刻ｔ２からは、スキャンＦ／Ｆ３０−１、３０−２は通常動作モードに移行する。そして、半導体集積回路１０の入力ピンよりデータが入力される。そして、組み合わせ回路６０−１は、入力されたデータに基づいて論理演算を行う。更に、バイパスＦ／Ｆ２０の入力信号は出力信号へバイパスされる状態にある。すなわち、バイパスＦ／Ｆ２０は単なる信号線またはバッファとして機能するだけなので、組み合わせ回路６０−１の論理演算結果は組み合わせ回路６０−２に入力される。そして組み合わせ回路６０−２は、組み合わせ回路６０−１における演算結果に基づいた論理演算を行う。通常動作モードにおけるスキャンＦ／Ｆ３０−２は、入力端Ｄからの入力信号を取り込む状態にあるから、組み合わせ回路６０−２における上記演算結果は、スキャンＦ／Ｆ３０−２に取り込まれる。
【００７３】
次に、時刻ｔ３において、スキャンＦ／Ｆ３０−１、３０−２は再びシフト動作へ移行する。このシフト動作によって、組み合わせ回路６０−１、６０−２における演算結果が出力ピンより取り出される。
【００７４】
その後、時刻ｔ４でバイパスＦ／Ｆ２０及びスキャンＦ／Ｆ３０−１、３０−２は通常動作モードに移行する。
【００７５】
上記のように、本実施形態に係る半導体装置によれば、バイパスＦ／Ｆにおいて、入力Ｄを出力Ｑにバイパスさせるか否かをクロックＣＬＫ２によって決定している。換言すれば、クロックＣＬＫ２を生成するクロック生成器１００が、バイパスＦ／Ｆにおいて、入力Ｄと出力Ｑとをバイパスさせるための手段として機能している。従って上記第１の実施形態で説明した効果が得られるだけでなく、配線の量を削減することが出来、回路面積の増加をより抑制出来る。なぜなら、制御信号ＳＴ１は、クロック生成器１００にのみ与えることが出来れば良く、従って、第１制御線４０も、クロック生成器１００に接続されれば足りるからである。そのため、上記第１、第２の実施形態のように、全てのバイパスＦ／Ｆに第１制御線４０を接続する必要がないからである。
【００７６】
なお、本実施形態は第１の実施形態と組み合わせることも可能である。すなわち、スキャンＦ／Ｆを図３、図４に示した構成とし、バイパスＦ／Ｆを図１８に示す構成としても良い。
【００７７】
次に本実施形態の第４の実施形態に係る半導体装置について図２０を用いて説明する。図２０は半導体集積回路のブロック図である。上記第１の実施形態で図１を用いて説明したように、本実施形態に係る半導体集積回路も、多くのＦ／Ｆ及び組み合わせ回路を有するものであるが、ここでは説明の簡単化の為に、簡略化した回路構成を示す。また本実施形態は、上記第３の実施形態と同様に、バイパスＦ／Ｆにおいて入力Ｄと出力Ｑとをバイパスさせるか否かをクロックにより制御するものである。
【００７８】
図示するように、ＬＳＩ１０は、バイパスＦ／Ｆ２０、スキャンＦ／Ｆ３０−１、３０−２、第１信号線４０、第２信号線５０、組み合わせ回路６０−１、６０−２、及びクロック生成器１２０（切り替え回路）、１３０を備えている。
【００７９】
クロック生成器１３０は、外部クロックを基にしてクロックＣＬＫ３を生成する。クロック生成器１２０は、外部クロック及び第１信号線４０を伝搬する制御信号ＳＴ１に基づいて、クロックＣＬＫ５、ＣＬＫ６を生成する。クロック生成器１２０は、制御信号ＳＴ１が“１”である期間内において、クロックＣＬＫ５とＣＬＫ６とを同相にする。
【００８０】
次に、スキャンＦ／Ｆ３０−１、３０−２の構成について、図２１、図２２を用いて説明する。図２１は、スキャンＦ／Ｆ３０−１、３０−２の構成を示す回路図である。また図２２は、スキャンＦ／Ｆ３０−１、３０−２の別の構成を示す回路図である。
【００８１】
図示するように、本実施形態に係るスキャンＦ／Ｆ３０−１、Ｆ／Ｆ３０−２は、図３に示す構成において、クロックＣＬＫをクロックＣＬＫ３に置換した構成を有している。
【００８２】
次に、バイパスＦ／Ｆの構成について、図２３を用いて説明する。図２３はバイパスＦ／Ｆの回路図である。図示するように、バイパスＦ／Ｆ２０は、マスターラッチ回路及びスレーブラッチ回路を有している。
【００８３】
マスターラッチ回路は、クロックド・インバータ１５０、１５１、インバータ１５２を有している。クロックド・インバータ１５０は転送ゲートとして機能するものであり、反転クロック／ＣＬＫ５が“ｈｉｇｈ”レベル（クロックＣＬＫ５＝ｌｏｗ）の際にオープンとなる。クロックド・インバータ１５１は、出力端がクロックド・インバータ１５０の出力端に接続され、入力端がインバータ１５２の出力端に接続されている。そしてクロックド・インバータ１５１は、クロックＣＬＫ５が“ｈｉｇｈ”レベルの際にオープンとなる。インバータ１５２は、入力端がクロックド・インバータ１５０の出力端に接続され、出力端が該マスターラッチ回路の出力端となる。
【００８４】
スレーブラッチ回路は、マスターラッチ回路とほぼ同様の構成を有している。すなわち、スレーブラッチ回路は、クロックド・インバータ１５３、１５４、インバータ１５５を有している。クロックド・インバータ１５３は転送ゲートとして機能するものであり、反転クロック／ＣＬＫ６が“ｈｉｇｈ”レベル（クロックＣＬＫ６＝ｌｏｗ）の際にオープンとなる。クロックド・インバータ１５４は、出力端がクロックド・インバータ１５３の出力端に接続され、入力端がインバータ１５５の出力端に接続されている。そしてクロックド・インバータ１５４は、クロックＣＬＫ６が“ｈｉｇｈ”レベルの際にオープンとなる。インバータ１５５は、入力端がクロックド・インバータ１５３の出力端に接続され、出力端が該スレーブラッチ回路の出力端、すなわちバイパスＦ／Ｆの出力端Ｑとなる。
【００８５】
次に、本実施形態に係る半導体装置のスキャンテスト方法について、図２４を用いて説明する。図２４は、クロックＣＬＫ３、ＣＬＫ５、ＣＬＫ６、及び制御信号、ＳＣ１、ＳＣ２、ＳＴ１のタイミングチャートである。なお、ＳＣ２については、スキャンＦ／Ｆが図２１、図２２それぞれの構成の場合について２通りを示している。
【００８６】
まずクロックＣＬＫ３、ＣＬＫ５、ＣＬＫ６及び制御信号、ＳＣ１、ＳＣ２、ＳＴ１の関係について説明する。クロック生成器１３０は、外部クロックを基にして、図示するクロックＣＬＫ３を生成する。またクロック生成器１２０は、外部クロックを基にして、図示するクロックＣＬＫ５、ＣＬＫ６を生成する。クロックＣＬＫ５は、ほぼクロックＣＬＫ３と同様の形状であり、クロックＣＬＫ６は、クロックＣＬＫ５を反転させた形状である。そして、クロック生成器１２０は、制御信号ＳＴ１が“１”にされている期間、特に出荷テスト動作中における通常動作時に、クロックＣＬＫ５、ＣＬＫ６を同相にする。
【００８７】
制御信号ＳＣ１、ＳＣ２は、シフト動作時において、次のような関係を有している。すなわち、制御信号ＳＣ２は、制御信号ＳＣ１の立ち上がりからΔｔ２だけ前の時間に立ち下がり、制御信号ＳＣ１の立ち下がりからΔｔ３だけ後の時間に立ち下がる。従って、制御信号ＳＣ１が立ち上がる前、及び立ち下がった直後には、制御信号ＳＣ１、ＳＣ２は僅かな時間ではあるが、共に“ｌｏｗ”レベルとなる。
【００８８】
図示するように、例えば時刻ｔ１でスキャンテストを開始したとする。スキャンテストの開始の際には、入力ピンから入力される制御信号ＳＴ１が“１”にされる。すると、バイパスＦ／Ｆ２０は通常動作モードから出荷テスト動作モードへ移行し、スキャンＦ／Ｆ３０−１、３０−２は通常動作モードからシフト動作モードへと移行する。スキャンＦ／Ｆ３０−１、３０−２は、制御信号ＳＣ１、ＳＣ２に応答して、テストパターンを取り込む。また、制御信号ＳＴ１＝１であるので、クロックＣＬＫ５＝クロックＣＬＫ６となる。従って、図２３におけるクロックド・インバータ１５０、１５３が、同じタイミングでオープンとなる。従って、バイパスＦ／Ｆ２０は、入力端Ｄの信号を出力端Ｑにバイパスさせるように動作する状態にある。
【００８９】
テストパターンが入力された後は、スキャンＦ／Ｆ３０−１、３０−２が通常動作モード及びシフト動作モードへと順次移行することで、組み合わせ回路６０−１、６０−２で為された演算結果が出力ピンから取り出される。但し、出荷テスト動作中は、常時ＣＬＫ５＝ＣＬＫ６である必要は無く、出荷テスト動作中の通常動作時にこの条件が満たされていれば十分である。
【００９０】
上記のように、本実施形態に係る半導体装置によれば、上記第１、第３の実施形態で説明した効果が得られる。更に、半導体装置の動作信頼性を向上できる。この点について以下説明する。
【００９１】
マスタースレーブ型のＦ／Ｆにおいては、マスターラッチ回路の転送ゲートとスレーブラッチ回路の転送ゲートとが、同時にオープンになることは避けるべきである。すなわち、Ｆ／Ｆの入力端Ｄ（またはＳＤ）から、出力端Ｑ（またはＳＱ）までのルートがオープンになることは好ましくない。しかし、例えば図２乃至図６で説明した構成であると、マスターラッチ回路の転送ゲート７０は反転クロック／ＣＬＫが“ｈｉｇｈ”レベルの際にオープンとなり、スレーブラッチ回路の転送ゲート７３、８２、８４は、クロックＣＬＫが“ｈｉｇｈ”レベルの際にオープンとなる。反転クロック／ＣＬＫは、当然ながらクロックＣＬＫを基にして生成した信号であり、両者の立ち上がり、立ち下がりのタイミングは同時である。従って、クロックエッジの極短い時間においては、マスターラッチ回路の転送ゲートとスレーブラッチ回路の転送ゲートとが、共にオープンとなった状態が発生しうる。また、クロックド・インバータ７６は、制御信号ＳＣ１が“ｈｉｇｈ”レベルでオープンとなり、クロックド・インバータ８４、７９は、制御信号ＳＣ２が“ｈｉｇｈ”レベルでオープンとなる。すると、制御信号ＳＣ１とＳＣ２とがクロックと同様にトグル動作を行っていた場合、同様の問題が生じる。
【００９２】
これに対して本実施形態であると、制御信号ＳＣ２は、制御信号ＳＣ１が立ち上がるより前の時間で立ち下がり、且つ制御信号ＳＣ１が立ち下がった後の時刻で立ち上がる（図２４参照）。すなわち、クロックド・インバータ１４６がクローズになる瞬間は、クロックド・インバータ１４３、１４７は完全にクローズである。そして、クロックド・インバータ１４６がクローズになった後で、クロックド・インバータ１４３、１４７はオープンになる。従って、スキャンＦ／Ｆの誤動作を効果的に抑制できる。
【００９３】
このことは制御信号ＳＣ１、ＳＣ２だけでなく、クロックＣＬＫ３、ＣＬＫ５、ＣＬＫ６についても同様である。スキャンＦ／Ｆを、クロックＣＬＫ３だけでなく、２つのクロックで制御し、この２つのクロックの間に制御信号ＳＣ１、ＳＣ２と同様の関係を持たせる。またバイパスＦ／Ｆを制御するクロックＣＬＫ５、ＣＬＫ６の間にも、制御信号ＳＣ１、ＳＣ２と同様の関係を持たせる。すると、マスターラッチ回路の転送ゲート１５０がクローズになる瞬間は、スレーブラッチ回路の転送ゲート１５３は完全にクローズとなる。そして、転送ゲート１５０がクローズになった後で、転送ゲート１５３がオープンとなる。また、スレーブラッチ回路の転送ゲート１５３がクローズになる瞬間は、マスターラッチ回路の転送ゲート１５３は完全にクローズである。そして、転送ゲート１５３がクローズになった後で、転送ゲート１５０がオープンとなる。すなわち、マスターラッチ回路及びスレーブラッチ回路の状態が変化する瞬間は、いずれの転送ゲートも一定期間だけ必ず共にクローズになる。従って、バイパスＦ／Ｆ及びスキャンＦ／Ｆの誤動作を更に効果的に抑制できる。
【００９４】
上記のように、この発明の第１乃至第４の実施形態に係る半導体装置及びその設計方法によれば、半導体集積回路のスキャン化の過程において、一部のＦ／Ｆをバイパス化している。バイパスＦ／Ｆは、出荷テスト時において、入力端Ｄの入力信号を、制御信号ＳＴ１に応じて出力端Ｑに伝搬させる。この際、バイパス化に要する付加回路は、スキャン化に比べて少なくて済む。従って、スキャン化に伴う回路面積の増加を抑制できる。更に、スキャンＦ／Ｆの数が少なくて良いため、テスト時に入力するデータ量が少なくて済む。その結果、テスト工程を簡略化出来ると共に、テスト用の回路に必要とされるメモリ量を削減で出来るので、テストコストを削減できる。また、第１の実施形態で説明したように、Ｆ／Ｆの数を増加させて組み合わせ回路を単純化する主な目的は、半導体集積回路の動作速度の向上にある。従って、全てのＦ／Ｆをスキャン化させず、一部をバイパス化させたとしても、テスト動作に影響は無い。すなわち、故障検出率の低下を招くことは無い。
【００９５】
更に上記第２の実施形態で説明したように、ＡＴＰＧによってＡｓｙｎｃｈｒｏｎｏｕｓループの有無を確認し、その結果に基づいてスキャン化するかバイパス化するかを決定出来る。従って、ループが存在する組み合わせ回路が生じることを防止でき、半導体集積回路の動作信頼性を向上できる。
【００９６】
また上記第３、第４の実施形態で説明したように、Ｆ／Ｆの動作を制御するクロック自体を、通常動作モードと出荷テストモードとで変化させることで、Ｆ／Ｆをバイパス化することが出来る。この場合には、上記説明の通り、バイパス化に必要な付加回路及び配線が非常に少なく済み、回路面積増加を更に抑制できる。
【００９７】
図２５乃至図２８は、上記第１の実施形態の第１乃至第４変形例に係るバイパスＦ／Ｆの回路図である。図２５に示す例では、図５に示す構成において、クロックド・インバータ７０をクロックド・インバータ９６に置換している。クロックド・インバータ９６は、反転クロック／ＣＬＫと制御信号ＳＴ１のＡＮＤ信号に応答して動作し、制御信号ＳＴ１＝１の際には無条件でオープンとなる。
【００９８】
図２６に示す例では、図５に示す構成において、クロックド・インバータ９７を追加している。クロックド・インバータ９７は、入力端がクロックド・インバータ７０の入力端に接続され、出力端がクロックド・インバータ７０の出力端に接続されている。そしてクロックド・インバータ９７は、制御信号ＳＴ１に応答して動作し、制御信号ＳＴ１＝１の際にオープンとなる。
【００９９】
図２７に示す例では、図６に示す構成において、クロックド・インバータ７０をクロックド・インバータ９６に置換している。また図２８に示す例では、図６に示す構成において、クロックド・インバータ９７を追加している。
【０１００】
上記のような図２５乃至図２８に示す構成であると、出荷テスト動作モードにおけるバイパスＦ／Ｆは、クロックＣＬＫ＝“ｌｏｗ”の場合であっても、入力端Ｄに入力された信号を出力端Ｑにバイパスさせる。
【０１０１】
なお、上記実施形態ではクロックＣＬＫが“ｌｏｗ”レベルでマスターラッチ回路がデータを取り込み、“ｈｉｇｈ”レベルでスレーブラッチ回路がデータを取り込む場合を例に挙げて説明したが、逆の場合であっても勿論良い。また、上記実施形態は、スキャン化を行う半導体集積回路一般に応用でき、例えばメモリ混載のシステムＬＳＩにも適用できることは言うまでもない。また本発明の実施形態は、特に段数の多い半導体集積回路であるほど効果が大きく、例えば画像処理系の半導体集積回路において効果がある。
【０１０２】
なお、本願発明は上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。
【０１０３】
【発明の効果】
以上説明したように、この発明によれば、故障検出率を低下させることなく回路面積の増加を防止できる半導体装置及びその設計方法を提供できる。
【図面の簡単な説明】
【図１】この発明の第１の実施形態に係る半導体集積回路のブロック図。
【図２】この発明の第１の実施形態に係るＦ／Ｆの構成を示すブロック図。
【図３】この発明の第１の実施形態に係るスキャンＦ／Ｆの構成の一例を示す回路図。
【図４】この発明の第１の実施形態に係るスキャンＦ／Ｆの構成の他の例を示す回路図。
【図５】この発明の第１の実施形態に係るバイパスＦ／Ｆの構成の一例を示す回路図。
【図６】この発明の第１の実施形態に係るバイパスＦ／Ｆの構成の他の例を示す回路図。
【図７】この発明の第１の実施形態に係る半導体集積回路におけるクロック、反転クロック、及び制御信号のタイミングチャート。
【図８】この発明の第１の実施形態に係る半導体集積回路のブロック図であり、シフト動作の様子を示す図。
【図９】この発明の第１の実施形態に係る半導体集積回路のブロック図であり、通常動作の様子を示す図。
【図１０】この発明の第１の実施形態に係る半導体集積回路のブロック図であり、シフト動作の様子を示す図。
【図１１】半導体集積回路のブロック図。
【図１２】この発明の第１の実施形態に係る半導体集積回路のブロック図。
【図１３】この発明の第２の実施形態に係る半導体集積回路のブロック図。
【図１４】順序回路の一例を示す回路図。
【図１５】この発明の第２の実施形態に係る半導体集積回路のスキャン化の流れを示すフローチャート。
【図１６】この発明の第３の実施形態に係る半導体集積回路のブロック図。
【図１７】Ｆ／Ｆの回路図。
【図１８】この発明の第３の実施形態に係るスキャンＦ／Ｆ及びバイパスＦ／Ｆの回路図。
【図１９】この発明の第３の実施形態に係る半導体集積回路における外部クロック、クロック、及び制御信号のタイミングチャート。
【図２０】この発明の第４の実施形態に係る半導体集積回路のブロック図。
【図２１】この発明の第４の実施形態に係るスキャンＦ／Ｆの構成の一例を示す回路図。
【図２２】この発明の第４の実施形態に係るスキャンＦ／Ｆの構成の別の例を示す回路図。
【図２３】この発明の第４の実施形態に係るバイパスＦ／Ｆの構成を示す回路図。
【図２４】この発明の第４の実施形態に係る半導体集積回路におけるクロック及び制御信号のタイミングチャート。
【図２５】この発明の第１の実施形態の第１変形例に係るバイパスＦ／Ｆの構成を示す回路図。
【図２６】この発明の第１の実施形態の第２変形例に係るバイパスＦ／Ｆの構成を示す回路図。
【図２７】この発明の第１の実施形態の第３変形例に係るバイパスＦ／Ｆの構成を示す回路図。
【図２８】この発明の第１の実施形態の第４変形例に係るバイパスＦ／Ｆの構成を示す回路図。
【図２９】従来のＦ／Ｆ及びスキャンＦ／Ｆのブロック図。
【符号の説明】
１０…ＬＳＩ
１１〜１５…入力ピン
１６…出力ピン
２０−１〜２０−４…バイパスＦ／Ｆ
２１、８６…Ｄ−Ｆ／Ｆ
２２−１、２２−２…マルチプレクサ
２３−１、２３−２、４０、４１−１〜４１−３、４１、５０…信号線
３０−１〜３０−７…スキャンＦ／Ｆ
６０−１〜６０−１０…組み合わせ回路
７０、７１、７３、７４、７６〜８０、８２、８３、８４、９０、９１、９３、９４、９６、９７、１４０、１４１、１４３、１４４、１４６〜１４８、１５０、１５１、１５３、１５４…クロックド・インバータ
７２、７５、８１、９２、９５、１４２、１４５、１４９、１５２、１５５…インバータ
８５…加算器
１００〜１３０…クロック生成器
【図１】
2004150933.tif 000003
【図２】
2004150933.tif 000004
【図３】
2004150933.tif 000005
【図４】
2004150933.tif 000006
【図５】
2004150933.tif 000007
【図６】
2004150933.tif 000008
【図７】
2004150933.tif 000009
【図８】
2004150933.tif 000010
【図９】
2004150933.tif 000011
【図１０】
2004150933.tif 000012
【図１１】
2004150933.tif 000013
【図１２】
2004150933.tif 000014
【図１３】
2004150933.tif 000015
【図１４】
2004150933.tif 000016
【図１５】
2004150933.tif 000017
【図１６】
2004150933.tif 000018
【図１７】
2004150933.tif 000019
【図１８】
2004150933.tif 000020
【図１９】
2004150933.tif 000021
【図２０】
2004150933.tif 000022
【図２１】
2004150933.tif 000023
【図２２】
2004150933.tif 000024
【図２３】
2004150933.tif 000025
【図２４】
2004150933.tif 000026
【図２５】
2004150933.tif 000027
【図２６】
2004150933.tif 000028
【図２７】
2004150933.tif 000029
【図２８】
2004150933.tif 000030
【図２９】
2004150933.tif 000031