JP2004150933A - 半導体装置及びその設計方法 - Google Patents
半導体装置及びその設計方法 Download PDFInfo
- Publication number
- JP2004150933A JP2004150933A JP2002316065A JP2002316065A JP2004150933A JP 2004150933 A JP2004150933 A JP 2004150933A JP 2002316065 A JP2002316065 A JP 2002316065A JP 2002316065 A JP2002316065 A JP 2002316065A JP 2004150933 A JP2004150933 A JP 2004150933A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- operation mode
- flip
- clock
- input
- 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.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318533—Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
- G01R31/318583—Design for test
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Tests Of Electronic Circuits (AREA)
- Semiconductor Integrated Circuits (AREA)
- Logic Circuits (AREA)
Abstract
【課題】故障検出率を低下させることなく回路面積の増加を防止できる半導体装置及びその設計方法を提供すること。
【解決手段】第1、第2動作モードを有する半導体装置であって、前記第2動作モード時に命令信号ST1を伝送する信号線40と、前記第1動作モードにおいてはクロックに同期して動作し、前記第2動作モードにおいては前記命令信号ST1に応じて動作する第1フリップフロップ20−1と、前記第2動作モードにおいて、前記命令信号ST1に応答して前記第1フリップフロップ20−1の入力を出力に伝搬させる切り替え回路22−1と、前記第1動作モードにおいては前記クロックCLKに同期して動作し、前記第2動作モードにおいては、前記第1動作モードにおける入力信号Dの代わりにテストパターンを選択し、前記クロックCLKに同期して動作する第2フリップフロップ30−1,30−2とを具備することを特徴としている。
【選択図】 図1
【解決手段】第1、第2動作モードを有する半導体装置であって、前記第2動作モード時に命令信号ST1を伝送する信号線40と、前記第1動作モードにおいてはクロックに同期して動作し、前記第2動作モードにおいては前記命令信号ST1に応じて動作する第1フリップフロップ20−1と、前記第2動作モードにおいて、前記命令信号ST1に応答して前記第1フリップフロップ20−1の入力を出力に伝搬させる切り替え回路22−1と、前記第1動作モードにおいては前記クロックCLKに同期して動作し、前記第2動作モードにおいては、前記第1動作モードにおける入力信号Dの代わりにテストパターンを選択し、前記クロックCLKに同期して動作する第2フリップフロップ30−1,30−2とを具備することを特徴としている。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
この発明は、半導体集積回路及びその設計方法に関するもので、特に半導体集積回路のスキャン(Scan)設計手法に係るものである。
【0002】
【従来の技術】
近年、システムLSI(Large Scale Integrated circuit)の大規模化に伴って、その設計に用いられるF/F(フリップフロップ)の数は増加している。同時に、LSIの動作周波数の向上に伴って、その設計のパイプラインの段数も増加している。
【0003】
現状のテスト容易化設計(Design For Testability)においては、スキャン(Scan)設計が活用されている。スキャン設計は、F/Fをシリアルチェーンで接続することにより、F/Fに保持されている値の読み出し及び書き込みを直接行えるようにしたものである。そして、LSIを複数の組み合わせ回路に分割して、テストパターンを自動発生出来るようにしたものである。そのため、スキャン設計を用いる場合には、基本的には全てのF/Fをシリアルチェーン化(以降、スキャン化と呼ぶことにする)する必要がある。
【0004】
スキャン化の方法の一例について図29を用いて説明する。図29はフリップフロップのブロック図である。図示するように、スキャン化の為には、D−F/Fに、入力Dと入力SDとを選択出来る機能を与える。そして、通常動作モードにおける入力Dと、スキャン動作モードにおける入力SDとの2つの入力を、セレクト信号Sによって切り替える。このように、シリアルチェーンの入力と通常動作用の入力とを選択出来るようにしたF/F(スキャンF/F)があれば、スキャンテストが可能となる。
【0005】
スキャンF/Fの動作は、例えば2相の専用クロックにより制御される。従って、シリアルチェーンを用いてデータを入出力する際に、2つのクロックが互いにオーバーラップしないよう、外部からF/Fを制御出来る。よって、動作を2相のクロックで制御する方式は、クロックスキューによるデータのホールドエラー発生を防止するための有効な手段である。また本方式であると、入力Dと入力SDとの切り替えを、クロックの有無で制御する。従って、スキャンF/Fのセットアップへの影響を最小限に抑えることができ、特に1GHzを超えるような高周波数で動作するLSIの設計に有効である。しかし、スキャン化を行う為に必要となる追加回路の規模が大きいことが問題であった。
【0006】
そこで、LSIに含まれるF/Fのうち、その一部だけをスキャン化する方法が提案されている(例えば非特許文献1参照)。
【0007】
【非特許文献1】
“Toshinobu Ono et al., “An Application of Partial Scan Techniques to a High−End System LSI Design”, IEEE, Proceedings of the Tenth Asian Test Symposium, November, 2001, p.459
【0008】
【発明が解決しようとする課題】
上記のように、近年のLSIの大規模化と動作周波数の上昇に伴い、全体の回路に対してF/Fの占める割合が増加している。また、スキャン化に伴って必要となるF/Fへの追加回路により、回路規模の拡大してきている。この追加回路は、出荷テストの際にのみ用いられる回路であり、出荷後には全く動作しない付加回路である。従って、言い換えると、従来のLSIであると、テストのためにしか使われない回路のLSI中に占める割合が、F/Fの増加に伴って大きくなっているという問題があった。
【0009】
また、スキャンF/Fが増加すると、シリアルチェーンでのデータ入出力の量が増加する。そのため、テスト時間及びテストベクトル量が増加し、またベクトルを保存するテスタに大容量のメモリが必要になり、テスタのコストが増大するという問題があった。
【0010】
更に、動作周波数の上昇に伴って、F/Fを挿入することにより従来の1ステージ(F/FからF/Fまでの間)を複数のステージに分割することが行われている。これにより、F/FからF/Fまでの間の組み合わせ回路が複数の組み合わせ回路に分割され、動作速度が向上される。従って、1ステージ内に存在する制御回路は単純な動作を行うようになり、ステージによっては(特にデータを処理する部分)、F/FとF/Fとの間のロジック回路が単にバッファだけとなるケースが発生しつつある。このような場合、スキャンテストは単にF/F間の配線を確認するだけのテストとなる。すなわち、1つのスキャンF/Fが試験を行う組み合わせ回路の量が減少している。言い換えれば、スキャンF/Fの数が、無駄に増加してしまうという問題があった。
【0011】
そこで、LSIの含まれる一部のF/Fのみスキャン化する方法も提案されているが、効果は十分では無いという問題があった。
【0012】
この発明は、上記事情に鑑みてなされたもので、その目的は、故障検出率を低下させることなく回路面積の増加を防止できる半導体装置及びその設計方法を提供することにある。
【0013】
【課題を解決するための手段】
上記目的を達成するために、この発明に係る半導体装置は、第1、第2動作モードを有する半導体装置であって、前記第2動作モード時に命令信号を伝送する信号線と、前記第1動作モードにおいてはクロックに同期して動作し、前記第2動作モードにおいては前記命令信号に応じて動作する第1フリップフロップと、前記第2動作モードにおいて、前記命令信号に応答して前記第1フリップフロップの入力を出力に伝搬させる切り替え回路と、前記第1動作モードにおいては前記クロックに同期して動作し、前記第2動作モードにおいては、前記第1動作モードにおける入力信号の代わりにテストパターンを入力信号として選択し、前記クロックに同期して動作する第2フリップフロップとを具備することを特徴としている。
【0014】
上記構成の半導体装置によれば、半導体集積回路のスキャン化の過程において、一部のF/Fをバイパス化している。バイパスF/Fは、第2動作モード(出荷テスト時)において、入力端の入力信号を、出力端に命令信号に応じて伝搬させる。この際、バイパス化に要する付加回路は、スキャン化に比べて少なくて済む。従って、スキャン化に伴う回路面積の増加を抑制できる。更に、スキャンF/Fの数が少なく出来るため、テスト時に入力するデータ量が少なくて済む。その結果、テスト工程を簡略化出来ると共に、テスト用の回路に必要とされるメモリ量を削減で出来るので、テストコストを削減できる。また、従来においてF/Fの数を増加させて組み合わせ回路を単純化する主な目的は、半導体集積回路の動作速度の向上にある。従って、全てのF/Fをスキャン化させず、一部をバイパス化させたとしても、テスト動作に影響は無い。すなわち、故障検出率の低下を招くことは無い。
【0015】
またこの発明に係る半導体装置の設計方法は、全てのフリップフロップをバイパス化しつつ、半導体集積回路を設計するステップと、前記半導体集積回路の動作テストを行い、内部に前記フリップフロップを含むループ回路が存在するか否かを判定するステップと、前記ループ回路が存在すると判定された場合、前記ループ回路に含まれる少なくともいずれかの前記フリップフロップをスキャン化することで、前記ループ回路を順序回路にするステップとを具備することを特徴としている。
【0016】
上記のような設計方法によれば、一部のF/Fをバイパス化することで、上記効果が得られる。また同時に、Asynchronousループの有無を確認し、その結果に基づいてスキャン化するかバイパス化するかを決定している。従って、ループが存在する組み合わせ回路が生じることを防止でき、半導体装置の動作信頼性を向上できる。
【0017】
【発明の実施の形態】
以下、この発明の実施形態を図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【0018】
この発明の第1の実施形態に係る半導体装置について図1を用いて説明する。図1は半導体集積回路(LSI)の内部構成を示すブロック図である。
【0019】
図示するようにLSI10は、複数のバイパスF/F20−1、20−2、…(第1フリップフロップ)、複数のスキャンF/F30−1〜30−4、…、第1信号線40、第2信号線50、組み合わせ回路(Combinational logic circuit)60−1〜60−4、…を備えている。
【0020】
バイパスF/F20−1、20−2、…の各々は、F/F21−1、21−2、…及びマルチプレクサ22−1、22−2、…(切り替え回路)をそれぞれ備えている。F/F21−1、21−2の各々の入力端Dは、組み合わせ回路60−1、60−3の出力端にそれぞれ接続されている。マルチプレクサ22−1、22−2の各々は、第1信号線40を伝搬する制御信号ST1(命令信号)に基づいて、F/F21−1、21−2の入力端D及び出力端Qのいずれかの信号をそれぞれ選択する。そして、選択信号を組み合わせ回路60−2、60−4へそれぞれ出力する。すなわち、マルチプレクサ22−1、22−2がF/F21−1、21−2の入力端Dの信号をそれぞれ選択することで、組み合わせ回路60−1、60−3の出力信号は、信号線23−1、23−2をそれぞれ介して、組み合わせ回路60−2、60−4へ、クロックCLKにかかわらず直接伝搬される。バイパスF/F20−1、20−2は、通常動作モードと出荷テスト動作モードの2つの動作モードをそれぞれ有している。そして、マルチプレクサ22−1、22−2は、通常動作モード(第1動作モード)においては出力端Qからの信号を選択し、出荷テスト動作モード(第2動作モード)においては入力端Dからの信号を選択する。
【0021】
次にスキャンF/F30−1〜30−4について説明する。スキャンF/F30−1は、前段の組み合わせ回路または入力端子からデータが入力される入力端Dと、テストパターンが入力される入力端SDのいずれかを選択する。そして選択した入力端に入力される信号を内部に取り込む。この選択動作は、第2信号線50を伝搬してスキャンF/F30−1に入力される制御信号SC1、SC2に基づいて行われる。そして、スキャンF/F30−1は選択された信号をラッチし、出力端Qから組み合わせ回路60−1へ出力する。またスキャンF/F30−1の出力端Qは、スキャンF/F30−3へも信号線41−1(シリアルチェーン)を介して接続されている。
【0022】
スキャンF/F30−3は、前段の組み合わせ回路または入力端子からデータが入力される入力端Dと、スキャンF/F30−1からの出力信号が信号線41−1を介して入力される入力端SDのいずれかを選択する。そして、選択した入力端に入力される信号を内部に取り込む。この選択動作は、第2信号線50を伝搬してスキャンF/F30−3に入力される制御信号SC1、SC2に基づいて行われる。そして、スキャンF/F30−3は選択された信号をラッチし、出力端Qから次段の組み合わせ回路60−3へ出力する。またスキャンF/F30−3の出力端Qは、スキャンF/F30−2へも信号線41−2を介して接続されている。
【0023】
スキャンF/F30−2は、前段の組み合わせ回路60−2からの出力信号が入力される入力端Dと、スキャンF/F30−3からの出力信号が信号線41−2を介して入力される入力端SDのいずれかを選択する。そして、選択した入力端に入力される信号を内部に取り込む。この選択動作は、第2信号線50を伝搬してスキャンF/F30−2に入力される制御信号SC1、SC2に基づいて行われる。そして、スキャンF/F30−2は選択された信号をラッチし、出力端Qから次段の組み合わせ回路または出力端子へ出力する。またスキャンF/F30−2の出力端Qは、スキャンF/F30−4へも信号線41−3を介して接続されている。
【0024】
スキャンF/F30−4は、前段の組み合わせ回路60−4からの出力信号が入力される入力端Dと、スキャンF/F30−2からの出力信号が信号線41−3を介して入力される入力端SDのいずれかを選択する。そして、選択した入力端に入力される信号を内部に取り込む。この選択動作は、第2信号線50を伝搬してスキャンF/F30−4に入力される制御信号SC1、SC2に基づいて行われる。そして、スキャンF/F30−4は選択された信号をラッチし、出力端Qから次段の組み合わせ回路または出力端子へ出力する。
【0025】
スキャンF/F30−1〜30−4の各々は、通常動作モードとシフト動作モードの2つの動作モードを有している。そして、スキャンF/F30−1〜30−4の各々は、通常動作モードにおいては入力端Dからの信号を選択し、シフト動作モードにおいては入力端SDから入力されるテストパターンを選択する。またスキャンF/F30−1〜30−4は、それぞれクロックCLKに応じて動作する。
【0026】
組み合わせ回路60−1〜60−4は、それぞれスキャンF/F31−1、バイパスF/F20−1、スキャンF/F30−3、及びバイパスF/F20−2の出力信号を入力として論理演算を行う。そして、その演算結果をバイパスF/F20−1、スキャンF/F30−2、バイパスF/F20−2、及びスキャンF/F30−4へそれぞれ出力する。
【0027】
次に、図2乃至図6を用いてスキャンF/F及びバイパスF/Fの具体的な構成について説明する。図2はスキャン化またはバイパス化を行う前のD−F/Fの回路図、図3、図4はスキャンF/F30−1〜30−4の回路図、図5、図6はバイパスF/F20−1、20−2の回路図である。
【0028】
まず図2を用いて、スキャン化またはバイパス化を行う前のD−F/Fの構成について説明する。図示するように、D−F/Fはマスターラッチ回路及びスレーブラッチ回路を備えている。
【0029】
マスターラッチ回路は、クロックド・インバータ70、71、インバータ72を有している。クロックド・インバータ70は転送ゲートとして機能するものであり、クロックCLKが“low”レベル(反転クロック/CLK=“high”)の際にオープン(導通状態)となる。逆に、クロックCLKが“high”レベル(反転クロック/CLK=“low”レベル)の際には、動作を停止する。クロックド・インバータ71は、出力端がクロックド・インバータ70の出力端に接続され、入力端がインバータ72の出力端に接続されている。そしてクロックド・インバータ71は、クロックCLKが“high”レベルの際にオープンとなる。インバータ72は、入力端がクロックド・インバータ70の出力端に接続され、出力端が該マスターラッチ回路の出力端となる。
【0030】
スレーブラッチ回路は、マスターラッチ回路とほぼ同様の構成を有している。すなわち、スレーブラッチ回路は、クロックド・インバータ73、74、インバータ75を有している。クロックド・インバータ73は転送ゲートとして機能するものであり、クロックCLKが“high”レベル(反転クロック/CLK=“low”)の際にオープン(導通状態)となる。逆に、クロックCLKが“low”レベル(反転クロック/CLK=“high”レベル)の際には、動作を停止する。クロックド・インバータ74は、出力端がクロックド・インバータ73の出力端に接続され、入力端がインバータ75の出力端に接続されている。そしてクロックド・インバータ74は、クロックCLKが“low”レベルの際にオープンとなる。インバータ75は、入力端がクロックド・インバータ73の出力端に接続され、出力端が該スレーブラッチ回路の出力端、すなわちF/Fの出力端Qとなる。
【0031】
次に、スキャンF/F30−1〜30−4の構成について、図3を用いて説明する。図3は、スキャンF/F30−1〜30−4の回路図である。スキャンF/F31−1〜31−4は、図2に示すD−F/Fにおいて、入力Dと入力SDのいずれかを選択する機能を与えた構成を有する。
【0032】
図示するように、スキャンF/F30−1〜30−4は、図2に示す構成において、クロックド・インバータ76を追加し、クロックド・インバータ71をクロックド・インバータ77に置き換え、クロックド・インバータ73をクロックド・インバータ84に置き換え、クロックド・インバータ74をクロックド・インバータ78に置き換えた構成を有している。クロックド・インバータ76は、入力端が入力端SDに接続され、出力端がクロックド・インバータ70の出力端に接続されている。そしてクロックド・インバータ76は、制御信号SC1が“high”レベルの際にオープンとなる。クロックド・インバータ77は、クロックCLKと反転制御信号/SCのAND信号が“high”レベルの際にオープンとなる。クロックド・インバータ84は、クロックCLKと制御信号SC2のOR信号が“high”レベルの際にオープンとなる。またクロックド・インバータ78は、クロックCLKと反転制御信号/SC2のOR信号が“high”レベルの際にオープンとなる。
【0033】
図4は、スキャンF/F30−1〜30−4の別の構成について示す回路図である。図示するように、スキャンF/F30−1〜30−4は、図2に示す構成において、クロックド・インバータ76、79、80、インバータ81を追加し、クロックド・インバータ71をクロックド・インバータ77に置き換えた構成を有している。クロックド・インバータ76は、入力端が入力端SDに接続され、出力端がクロックド・インバータ70の出力端に接続されている。そしてクロックド・インバータ76は、制御信号SC1が“high”レベルの際にオープンとなる。クロックド・インバータ79は、入力端がスレーブラッチ回路の出力端Qに接続され、制御信号SC2が“high”レベルの際にオープンとなる。クロックド・インバータ80は、出力端がクロックド・インバータ79の出力端に接続され、反転制御信号/SC2が“high”レベル(制御信号SC2=“low”)の際にオープンとなる。インバータ81は、入力端がクロックド・インバータ79の出力端に接続され、出力端がクロックド・インバータ80の入力端に接続される。そして、入力端SDが選択された際、インバータ81の出力端が、スキャンF/Fの出力端SQとなる。
【0034】
次にバイパスF/F20−1、20−2の構成について図5を用いて説明する。図5はバイパスF/Fの回路図である。バイパスF/Fは、図2に示すD−F/Fにおいて、入力と出力とをバイパス出来るようにしたものである。
【0035】
図示するように、バイパスF/F20−1、20−2は、図2を用いて説明したD−F/Fにおいて、クロックド・インバータ73をクロックド・インバータ82に置き換えた構成を有している。クロックド・インバータ82は、クロックCLKと制御信号ST1とのAND信号が“high”レベルの際にオープンとなる。すなわち、クロックCLKと制御信号ST1のいずれか一方が“high”レベルであれば、オープンとなる。
【0036】
図6は、バイパスF/F20−1、20−2の別の構成について示す回路図である。図示するように、バイパスF/F20−1、20−2は、図2を用いて説明したD−F/Fにおいて、クロックド・インバータ83を追加した構成を有している。クロックド・インバータ83は、入力端がインバータ72の出力端に接続され、出力端がインバータ75の入力端に接続されている。クロックド・インバータ83は、制御信号ST1が“high”レベルの際にオープンとなる。
【0037】
次に、本実施形態に係る半導体装置のスキャンテスト方法について、図7乃至図10を用いて説明する。図7は、クロックCLK、反転クロック/CLK、及び制御信号ST1のタイミングチャートである。図8乃至図10は、半導体集積回路のブロック図であり、図1に示す構成を、説明の簡単化の為に簡略化して示すものである。なお、スキャンF/Fの動作は従来と同様であるので、ここでは特にバイパスF/Fの動作に着目して詳細に説明する。
【0038】
図示するように、LSI10は、バイパスF/F20、スキャンF/F30−1、30−2、組み合わせ回路60−1、60−2、第1信号線40、及び第2信号線50を備える構成であるとする。そして、例えば時刻t1でスキャンテストを開始したとする。
【0039】
スキャンテストの開始の際には、半導体集積回路10の入力ピン11から入力される制御信号ST1が“1”にされる。すると、バイパスF/F20は通常動作モードから出荷テスト動作モードへ移行し、スキャンF/F30−1、30−2は通常動作モードからシフト動作モードへと移行する。この際の様子を示すのが図8である。図8は半導体集積回路のブロック図である。
【0040】
スキャンF/F30−1は、入力端SDからの入力を選択し、入力ピン14から入力されるテストパターンを取り込む。例えばテストパターンが“10”であったとする。すると、クロックCLKの入力に応答して、スキャンF/F30−1には“1”が取り込まれる。また、スキャンF/F30−1にシリアルチェーンで接続されているスキャンF/F30−2には、信号線41を介して“0”が取り込まれる。すなわち、シフト動作モードにあっては、テストパターンの各ビットがスキャンF/Fを次々とシフトされることで、シリアルチェーンで接続されたスキャンF/F内部にテストパターンの各ビットが取り込まれる。スキャンF/F30−1、30−2にシリアルチェーンで接続されていないバイパスF/F20には、テストパターンは取り込まれない。但し、制御信号ST1=1であるので、バイパスF/F20は、内部に格納している信号を、クロックCLKにかかわらず出力端に出力させるように動作する状態にある。この状態を図5を参照しつつ説明する。図5において、クロックド・インバータ82は、クロックCLKとST1のAND信号に応答して動作する。出荷テスト動作モードにおいては、制御信号ST1が常時“1”とされているから、クロックド・インバータ83も常時オープンとなっている。また図6の構成で有れば、クロックド・インバータ83が常時オープンとなっている。従って、入力されているデータは、クロックの有無に関わらず、出力端Dより出力される。換言すれば、バイパスF/Fは、単に組み合わせ回路60−1と60−2とを接続する信号線、またはバッファ回路と見なすことが出来る。
【0041】
全てのスキャンF/F30−1、30−2にテストパターンが格納された時刻t2からは、スキャンF/F30−1、30−2は通常動作モードに移行する。そして、半導体集積回路10の入力ピン15よりデータが入力される。この際の様子を示すのが図9である。通常動作モードに移行してからクロックCLKが1つ入ることで、組み合わせ回路60−1の入力端にはスキャンF/F30−1に格納されている“1”が入力される。そして、組み合わせ回路60−1は、入力されたデータ“1”に基づいて論理演算を行う。更に、バイパスF/F20の入力信号は出力信号へバイパスされる状態にあるため、組み合わせ回路60−1の論理演算結果は組み合わせ回路60−2に入力される。そして組み合わせ回路60−2は、組み合わせ回路60−1における演算結果に基づいた論理演算を行う。通常動作モードにおけるスキャンF/F30−2は、入力端Dからの入力信号を取り込む状態にあるから、組み合わせ回路60−2における上記演算結果“Ans”は、スキャンF/F30−2に取り込まれる。
【0042】
次に、時刻t2からクロックCLKが1つ分の時間が経った時刻t3において、スキャンF/F30−1、30−2は再びシフト動作へ移行する。この際の様子を示すのが図10である。図10は半導体集積回路のブロック図である。すなわち、シリアルチェーンで接続されているスキャンF/F30−1、30−2に格納されているデータがシフトされる。従って、スキャンF/F30−2に格納されている演算結果“Ans”が、半導体集積回路の出力ピン16から取り出される。
【0043】
そして、上記のようにして得られた演算結果“Ans”が期待値と符合しているか否かによって、組み合わせ回路60−1、60−2が正常に動作しているか否か、すなわち故障の有無を判定できる。
【0044】
その後、時刻t4でバイパスF/F20及びスキャンF/F30−1、30−2は通常動作モードに移行する。通常動作モードにおけるバイパスF/F20は、通常のF/Fと同様の動作を行う。すなわち、通常動作モードにおいて制御信号STは“0”固定であるので、図6においてはクロックド・インバータ83が常時クローズとなり、また図5においてはクロックド・インバータ82がクロック/CLKに応答して動作するようになる。
【0045】
上記のように、本実施形態に係る半導体装置であると、故障検出率の低下を招くことなく、スキャンF/Fの数を大幅に削減でき、回路面積を削減できる。この点について、以下図11及び図12を用いて説明する。図11及び図12は半導体集積回路のブロック図である。
【0046】
図11に示すように、半導体集積回路が、3つのF/F30−5〜30−7及び、2つのF/F間に挟まれた2つの組み合わせ回路60−5、60−6を含んでいると仮定する。そして、スキャン化の為に、3つ全てのF/Fがスキャン化されていると仮定する。
【0047】
従来技術で説明したように、近年の半導体集積回路には、更なる高速動作の要求がある。この高速動作の要求を満たすために、各組み合わせ回路における処理にかかる時間を短くする必要がある。換言すれば、組み合わせ回路を単純化する必要がある。そのため、F/Fを追加することにより、組み合わせ回路を単純化した回路例が、図12である。
【0048】
図示するように、図11に示す構成において、F/F20−3、20−4を追加することで、組み合わせ回路60−5、60−6を、それぞれ2つの組み合わせ回路60−7、60−8及び組み合わせ回路60−9、60−10に分割している。従来方法であると、この追加したF/F20−3、20−4についてもスキャン化を行っていた。このことが、スキャンF/Fの増加と、それに伴う回路面積の増加の原因であった。
【0049】
しかし本実施形態に係る構成であると、新たに追加した2つのF/F20−3、20−4については、スキャン化を行わずにバイパス化を行っている。すなわち、スキャンテスト時にはF/F20−3、20−4をスルーとなるようにしている。更に言い換えれば、半導体回路60−5、60−6は、通常動作モードにおいては順序回路(Sequential logic circuit)として機能し、テスト動作モードにおいては組み合わせ回路として機能する。この機能の切り替えは、バイパスF/F20−3、20−4によって行われる。バイパスF/F20−3、20−4の各々は、通常動作モードにおいては通常のF/Fとして動作するから、クロックに応答して入力信号を次段に伝搬させる。従って、半導体回路60−5、60−6は、順序回路として動作する。しかし、テスト動作モードにおいては、クロックにかかわらず、制御信号ST1に応答して入力信号を次段に伝搬させる。従って、半導体回路60−5、60−6は、組み合わせ回路として機能する。この点を図1を用いて説明すれば、組み合わせ回路60−1、60−2、及びバイパスF/F20−1を含んでなる半導体回路が、バイパスF/F20−1の動作モードに応じて、組み合わせ回路または順序回路として機能する。より具体的には、バイパスF/F20−1が通常動作モードの場合は順序回路として機能し、出荷テスト動作モードの場合は組み合わせ回路として機能する。そして、F/Fをバイパス化するために必要となる追加回路は、図1に示すようにゲートレベルではスキャン化の場合と同じであるが、図3乃至図6で説明したように、実際の回路構成はスキャン化の場合に比べて少なく済む。従って、回路面積の増加が抑制される。
【0050】
そもそも、F/Fを増やして組み合わせ回路の構成を単純化するのは、半導体集積回路の動作を高速化させるのが目的である。また近年の半導体集積回路では、従来技術でも説明したように1つの組み合わせ回路、すなわち図11で言うところの組み合わせ回路60−5、60−6の構成は十分に単純化されている。テストパターンを生成するATPG(Auto Test Pattern Generation)ツールの高性能化も手伝って、動作速度向上のために追加したF/F20−3、20−4をスキャン化したところで、故障検出率に殆ど影響は無い。換言すれば、図11の構成と図12の構成とを比べると、故障検出率は変わらないのが現状である。この結果、追加F/Fをスキャン化せずにバイパス化することで、半導体集積回路の動作速度を向上させつつ、故障検出率の維持と回路面積の増加抑制を両立出来る。
【0051】
次にこの発明の第2の実施形態に係る半導体装置及びその設計方法について図13を用いて説明する。図13は半導体集積回路の内部構成を示すブロック図である。本実施形態は、上記第1の実施形態で説明したスキャン化手法を実現するための別のアプローチを示すためのものである。
【0052】
図示するように、LSI10は複数のバイパスF/F1及びスキャンF/F2並びに組み合わせ回路(図示せず)を備えている。本実施形態に係る構成では、ループを有する回路に含まれるF/Fのみがスキャン化される。この点について図14を用いて説明する。図14はループを有する回路の一例である。
【0053】
図示するように、加算回路85の出力端が、F/F86を介して入力端に接続されている。このような順序回路は、1づつ値をインクリメントしていくような回路に広く適用されており、加算器85の出力は、F/FにクロックCLKが入力される毎に増加していく。このように、ループ回路内のF/Fはバイパス化することが出来ない。順序回路内のF/Fをバイパス化することは、すなわち順序回路を組み合わせ回路に変更することと言い換えることが出来る。このように組み合わせ回路内にループが存在すると、出力信号の値が一定値にならないという問題がある。例えば図14の例では、クロックにかかわらず加算器85の出力が入力に戻ることになり、加算器85の出力がいつまで経っても一定に定まらない。従って、ループ回路内のF/Fはバイパス化することが出来ないのである。
【0054】
上記を勘案して、本実施形態に係る半導体装置のスキャン化設計手法について、図15を用いて説明する。図15は、半導体装置の設計方法のフローチャートである。
【0055】
まず半導体集積回路を設計し(ステップS10)、含まれる全てのF/Fをバイパス化する(ステップS11)。すなわち、図13における全てのF/Fを、上記第1の実施形態で説明した図5、図6に示す構成を有するバイパスF/Fとして、1つの組み合わせ回路を形成する。
【0056】
次に、Asynchronousループの有無を判定する(ステップS12)。これは、組み合わせ回路にループが存在するか否かを判定するという意味である。再度述べるが、この時点では、F/Fはバイパス化されているから、F/Fを含む回路もこの時点では組み合わせ回路として動作する。本ステップでは、より具体的には、バイパスF/Fを用いて設計した図13に示す半導体集積回路において、ATPGを実行する。まず、入力ピンと出力ピンのみをそれぞれ制御点、観測点と設定する。そして、制御信号ST1を“1”として、全てのバイパスF/Fを出荷テスト動作モード(バイパス状態)とする。このような状態で、テストパターンを入力してテストを行う。すると、有る組み合わせ回路の出力が入力に戻るようなループが存在した場合、ATPGにおいてAsynchronousループとして認識される。そしてATPGは警告を発して、そのループを分断するようにメッセージを出す(ステップS13)。
【0057】
次に、上記メッセージが出力されたF/Fをスキャン化する。すなわちバイパスF/Fを、上記第1の実施形態において図3、図4に示す構成を有するスキャンF/Fに置き換える(ステップS14)。上記メッセージが出力されなければ、スキャン化の必要はない。
【0058】
上記のようにして、半導体集積回路の設計において、スキャンF/FとバイパスF/Fとが最適に選択される。
【0059】
上記のように、本実施形態に係る半導体装置及びその設計方法であると、バイパスF/Fを用いることにより、上記第1の実施形態と同様の効果を得ることが出来る。また、F/Fをむやみにバイパス化すると、ループを有する組み合わせ回路が場合によっては発生する。しかし本実施形態に係る構成及び方法であれば、そのループを検索し、ループを有する回路内のF/Fのみをスキャン化している。そのため、半導体集積回路の動作信頼性を向上できると共に、スキャンF/Fの数を必要最小限にすることが出来る。従って、上記第1の実施形態に比べて、更に回路面積の増加を抑制することが出来る。
【0060】
次にこの発明の第3の実施形態に係る半導体装置について図16を用いて説明する。図16は半導体集積回路のブロック図である。なお、本実施形態に係る半導体集積回路も、上記第1の実施形態で図1を用いて説明したように、多くのF/F及び組み合わせ回路を有するものであるが、ここでは説明の簡単化の為に、簡略化した回路構成を示す。
【0061】
図示するように、LSI10は、バイパスF/F20、スキャンF/F30−1、30−2、第1信号線40、第2信号線50、組み合わせ回路60−1、60−2、及びクロック生成器100(切り替え回路)、110を備えている。
【0062】
クロック生成器110は、外部クロックを基にしてクロックCLK1を生成する。クロック生成器100は、外部クロック及び第1信号線40を伝搬する制御信号ST1に基づいて、クロックCLK2を生成する。クロック生成器100は、制御信号ST1が“0”である間は、クロックCLK1と同じクロックCLK2を生成する。クロックCLK1とCLK2については後述する。
【0063】
バイパスF/F20の入力端Dは、組み合わせ回路60−1の出力端に接続され、出力端Qは組み合わせ回路60−2の入力端に接続されている。そして、クロックCLK2に応答して動作する。バイパスF/F20は、上記第1の実施形態と同様に通常動作モードと出荷テスト動作モードの2つの動作モードを有している。そして、出荷テスト動作モードにおいては、入力端Dからの信号を出力端Qに直接伝搬させる。
【0064】
スキャンF/F30−1、30−2は、上記第1の実施形態と同様の構成を有しており、クロックCLK1に応答して動作する。
【0065】
次に、図17及び図18を用いて、本実施形態に係るバイパスF/Fの具体的な構成について説明する。図17は、バイパス化を行う前の、図2と異なる別の構成を有するD−F/Fの一例の回路図であり、図18はバイパスF/F20の回路図である。
【0066】
図示するように、D−F/Fはクロックド・インバータ90、91及びインバータ92を有している。クロックド・インバータ90は転送ゲートとして機能するものであり、クロックCLK1が“high”レベルの際にオープンとなる。クロックド・インバータ91は、出力端がクロックド・インバータ90の出力端に接続され、入力端がインバータ92の出力端に接続されている。そしてクロックド・インバータ91は、クロックCLK1が“low”レベルの際にオープンとなる。インバータ92は、入力端がクロックド・インバータ90の出力端に接続され、出力端が該F/Fの出力端となる。
【0067】
バイパスF/F20は、クロックド・インバータ93、94及びインバータ95を有している。クロックド・インバータ93は転送ゲートとして機能するものであり、クロックCLK2が“high”レベルの際にオープンとなる。クロックド・インバータ94は、出力端がクロックド・インバータ93の出力端に接続され、入力端がインバータ95の出力端に接続されている。そしてクロックド・インバータ94は、クロックCLK2が“low”レベルの際にオープンとなる。インバータ95は、入力端がクロックド・インバータ95の出力端に接続され、出力端が該バイパスF/Fの出力端となる。
【0068】
なお図示は省略するが、本実施形態に係るスキャンF/Fの構成は、図17に示す構成において、入力Dと入力SDとのいずれかを選択出来る構成とすれば良い。
【0069】
次に、本実施形態に係る半導体装置のスキャンテスト方法について、図16及び図19を用いて説明する。図19は、外部クロック、クロックCLK1、CLK2、及び制御信号ST1のタイミングチャートである。
【0070】
まず上記4つの信号の関係について説明する。外部クロックが入力されると、クロック生成器110は、外部クロックの立ち上がりからΔt1だけ“high”レベルとなるクロックCLK1を生成する。すなわち、クロックCLK1は、一瞬だけパルスが立ち上がる形状を有している。クロック生成器100は、制御信号ST1が“0”の際は、CLK1と同様の形状のクロックCLK2を生成する。他方、制御信号ST1が“1”の際には、クロックCLK2は“high”レベルに固定される。
【0071】
図示するように、例えば時刻t1でスキャンテストを開始したとする。スキャンテストの開始の際には、入力ピンから入力される制御信号ST1が“1”にされる。すると、バイパスF/F20は通常動作モードから出荷テスト動作モードへ移行し、スキャンF/F30−1、30−2は通常動作モードからシフト動作モードへと移行する。スキャンF/F30−1は、入力端SDからの入力を選択し、テストパターンを取り込む。そして、テストパターンの各ビットがスキャンF/Fを次々とシフトされることで、シリアルチェーンで接続されたスキャンF/F内部にテストパターンの各ビットが取り込まれる。また、制御信号ST1=1であるので、クロックCLK2は常時“high”レベルである。従って、図18におけるクロックド・インバータ93が常時オープンとなる。従って、バイパスF/F20は、入力端Dの信号を出力端Qに常にバイパスさせるように動作する状態にある。
【0072】
全てのスキャンF/F30−1、30−2にテストパターンが格納された時刻t2からは、スキャンF/F30−1、30−2は通常動作モードに移行する。そして、半導体集積回路10の入力ピンよりデータが入力される。そして、組み合わせ回路60−1は、入力されたデータに基づいて論理演算を行う。更に、バイパスF/F20の入力信号は出力信号へバイパスされる状態にある。すなわち、バイパスF/F20は単なる信号線またはバッファとして機能するだけなので、組み合わせ回路60−1の論理演算結果は組み合わせ回路60−2に入力される。そして組み合わせ回路60−2は、組み合わせ回路60−1における演算結果に基づいた論理演算を行う。通常動作モードにおけるスキャンF/F30−2は、入力端Dからの入力信号を取り込む状態にあるから、組み合わせ回路60−2における上記演算結果は、スキャンF/F30−2に取り込まれる。
【0073】
次に、時刻t3において、スキャンF/F30−1、30−2は再びシフト動作へ移行する。このシフト動作によって、組み合わせ回路60−1、60−2における演算結果が出力ピンより取り出される。
【0074】
その後、時刻t4でバイパスF/F20及びスキャンF/F30−1、30−2は通常動作モードに移行する。
【0075】
上記のように、本実施形態に係る半導体装置によれば、バイパスF/Fにおいて、入力Dを出力Qにバイパスさせるか否かをクロックCLK2によって決定している。換言すれば、クロックCLK2を生成するクロック生成器100が、バイパスF/Fにおいて、入力Dと出力Qとをバイパスさせるための手段として機能している。従って上記第1の実施形態で説明した効果が得られるだけでなく、配線の量を削減することが出来、回路面積の増加をより抑制出来る。なぜなら、制御信号ST1は、クロック生成器100にのみ与えることが出来れば良く、従って、第1制御線40も、クロック生成器100に接続されれば足りるからである。そのため、上記第1、第2の実施形態のように、全てのバイパスF/Fに第1制御線40を接続する必要がないからである。
【0076】
なお、本実施形態は第1の実施形態と組み合わせることも可能である。すなわち、スキャンF/Fを図3、図4に示した構成とし、バイパスF/Fを図18に示す構成としても良い。
【0077】
次に本実施形態の第4の実施形態に係る半導体装置について図20を用いて説明する。図20は半導体集積回路のブロック図である。上記第1の実施形態で図1を用いて説明したように、本実施形態に係る半導体集積回路も、多くのF/F及び組み合わせ回路を有するものであるが、ここでは説明の簡単化の為に、簡略化した回路構成を示す。また本実施形態は、上記第3の実施形態と同様に、バイパスF/Fにおいて入力Dと出力Qとをバイパスさせるか否かをクロックにより制御するものである。
【0078】
図示するように、LSI10は、バイパスF/F20、スキャンF/F30−1、30−2、第1信号線40、第2信号線50、組み合わせ回路60−1、60−2、及びクロック生成器120(切り替え回路)、130を備えている。
【0079】
クロック生成器130は、外部クロックを基にしてクロックCLK3を生成する。クロック生成器120は、外部クロック及び第1信号線40を伝搬する制御信号ST1に基づいて、クロックCLK5、CLK6を生成する。クロック生成器120は、制御信号ST1が“1”である期間内において、クロックCLK5とCLK6とを同相にする。
【0080】
次に、スキャンF/F30−1、30−2の構成について、図21、図22を用いて説明する。図21は、スキャンF/F30−1、30−2の構成を示す回路図である。また図22は、スキャンF/F30−1、30−2の別の構成を示す回路図である。
【0081】
図示するように、本実施形態に係るスキャンF/F30−1、F/F30−2は、図3に示す構成において、クロックCLKをクロックCLK3に置換した構成を有している。
【0082】
次に、バイパスF/Fの構成について、図23を用いて説明する。図23はバイパスF/Fの回路図である。図示するように、バイパスF/F20は、マスターラッチ回路及びスレーブラッチ回路を有している。
【0083】
マスターラッチ回路は、クロックド・インバータ150、151、インバータ152を有している。クロックド・インバータ150は転送ゲートとして機能するものであり、反転クロック/CLK5が“high”レベル(クロックCLK5=low)の際にオープンとなる。クロックド・インバータ151は、出力端がクロックド・インバータ150の出力端に接続され、入力端がインバータ152の出力端に接続されている。そしてクロックド・インバータ151は、クロックCLK5が“high”レベルの際にオープンとなる。インバータ152は、入力端がクロックド・インバータ150の出力端に接続され、出力端が該マスターラッチ回路の出力端となる。
【0084】
スレーブラッチ回路は、マスターラッチ回路とほぼ同様の構成を有している。すなわち、スレーブラッチ回路は、クロックド・インバータ153、154、インバータ155を有している。クロックド・インバータ153は転送ゲートとして機能するものであり、反転クロック/CLK6が“high”レベル(クロックCLK6=low)の際にオープンとなる。クロックド・インバータ154は、出力端がクロックド・インバータ153の出力端に接続され、入力端がインバータ155の出力端に接続されている。そしてクロックド・インバータ154は、クロックCLK6が“high”レベルの際にオープンとなる。インバータ155は、入力端がクロックド・インバータ153の出力端に接続され、出力端が該スレーブラッチ回路の出力端、すなわちバイパスF/Fの出力端Qとなる。
【0085】
次に、本実施形態に係る半導体装置のスキャンテスト方法について、図24を用いて説明する。図24は、クロックCLK3、CLK5、CLK6、及び制御信号、SC1、SC2、ST1のタイミングチャートである。なお、SC2については、スキャンF/Fが図21、図22それぞれの構成の場合について2通りを示している。
【0086】
まずクロックCLK3、CLK5、CLK6及び制御信号、SC1、SC2、ST1の関係について説明する。クロック生成器130は、外部クロックを基にして、図示するクロックCLK3を生成する。またクロック生成器120は、外部クロックを基にして、図示するクロックCLK5、CLK6を生成する。クロックCLK5は、ほぼクロックCLK3と同様の形状であり、クロックCLK6は、クロックCLK5を反転させた形状である。そして、クロック生成器120は、制御信号ST1が“1”にされている期間、特に出荷テスト動作中における通常動作時に、クロックCLK5、CLK6を同相にする。
【0087】
制御信号SC1、SC2は、シフト動作時において、次のような関係を有している。すなわち、制御信号SC2は、制御信号SC1の立ち上がりからΔt2だけ前の時間に立ち下がり、制御信号SC1の立ち下がりからΔt3だけ後の時間に立ち下がる。従って、制御信号SC1が立ち上がる前、及び立ち下がった直後には、制御信号SC1、SC2は僅かな時間ではあるが、共に“low”レベルとなる。
【0088】
図示するように、例えば時刻t1でスキャンテストを開始したとする。スキャンテストの開始の際には、入力ピンから入力される制御信号ST1が“1”にされる。すると、バイパスF/F20は通常動作モードから出荷テスト動作モードへ移行し、スキャンF/F30−1、30−2は通常動作モードからシフト動作モードへと移行する。スキャンF/F30−1、30−2は、制御信号SC1、SC2に応答して、テストパターンを取り込む。また、制御信号ST1=1であるので、クロックCLK5=クロックCLK6となる。従って、図23におけるクロックド・インバータ150、153が、同じタイミングでオープンとなる。従って、バイパスF/F20は、入力端Dの信号を出力端Qにバイパスさせるように動作する状態にある。
【0089】
テストパターンが入力された後は、スキャンF/F30−1、30−2が通常動作モード及びシフト動作モードへと順次移行することで、組み合わせ回路60−1、60−2で為された演算結果が出力ピンから取り出される。但し、出荷テスト動作中は、常時CLK5=CLK6である必要は無く、出荷テスト動作中の通常動作時にこの条件が満たされていれば十分である。
【0090】
上記のように、本実施形態に係る半導体装置によれば、上記第1、第3の実施形態で説明した効果が得られる。更に、半導体装置の動作信頼性を向上できる。この点について以下説明する。
【0091】
マスタースレーブ型のF/Fにおいては、マスターラッチ回路の転送ゲートとスレーブラッチ回路の転送ゲートとが、同時にオープンになることは避けるべきである。すなわち、F/Fの入力端D(またはSD)から、出力端Q(またはSQ)までのルートがオープンになることは好ましくない。しかし、例えば図2乃至図6で説明した構成であると、マスターラッチ回路の転送ゲート70は反転クロック/CLKが“high”レベルの際にオープンとなり、スレーブラッチ回路の転送ゲート73、82、84は、クロックCLKが“high”レベルの際にオープンとなる。反転クロック/CLKは、当然ながらクロックCLKを基にして生成した信号であり、両者の立ち上がり、立ち下がりのタイミングは同時である。従って、クロックエッジの極短い時間においては、マスターラッチ回路の転送ゲートとスレーブラッチ回路の転送ゲートとが、共にオープンとなった状態が発生しうる。また、クロックド・インバータ76は、制御信号SC1が“high”レベルでオープンとなり、クロックド・インバータ84、79は、制御信号SC2が“high”レベルでオープンとなる。すると、制御信号SC1とSC2とがクロックと同様にトグル動作を行っていた場合、同様の問題が生じる。
【0092】
これに対して本実施形態であると、制御信号SC2は、制御信号SC1が立ち上がるより前の時間で立ち下がり、且つ制御信号SC1が立ち下がった後の時刻で立ち上がる(図24参照)。すなわち、クロックド・インバータ146がクローズになる瞬間は、クロックド・インバータ143、147は完全にクローズである。そして、クロックド・インバータ146がクローズになった後で、クロックド・インバータ143、147はオープンになる。従って、スキャンF/Fの誤動作を効果的に抑制できる。
【0093】
このことは制御信号SC1、SC2だけでなく、クロックCLK3、CLK5、CLK6についても同様である。スキャンF/Fを、クロックCLK3だけでなく、2つのクロックで制御し、この2つのクロックの間に制御信号SC1、SC2と同様の関係を持たせる。またバイパスF/Fを制御するクロックCLK5、CLK6の間にも、制御信号SC1、SC2と同様の関係を持たせる。すると、マスターラッチ回路の転送ゲート150がクローズになる瞬間は、スレーブラッチ回路の転送ゲート153は完全にクローズとなる。そして、転送ゲート150がクローズになった後で、転送ゲート153がオープンとなる。また、スレーブラッチ回路の転送ゲート153がクローズになる瞬間は、マスターラッチ回路の転送ゲート153は完全にクローズである。そして、転送ゲート153がクローズになった後で、転送ゲート150がオープンとなる。すなわち、マスターラッチ回路及びスレーブラッチ回路の状態が変化する瞬間は、いずれの転送ゲートも一定期間だけ必ず共にクローズになる。従って、バイパスF/F及びスキャンF/Fの誤動作を更に効果的に抑制できる。
【0094】
上記のように、この発明の第1乃至第4の実施形態に係る半導体装置及びその設計方法によれば、半導体集積回路のスキャン化の過程において、一部のF/Fをバイパス化している。バイパスF/Fは、出荷テスト時において、入力端Dの入力信号を、制御信号ST1に応じて出力端Qに伝搬させる。この際、バイパス化に要する付加回路は、スキャン化に比べて少なくて済む。従って、スキャン化に伴う回路面積の増加を抑制できる。更に、スキャンF/Fの数が少なくて良いため、テスト時に入力するデータ量が少なくて済む。その結果、テスト工程を簡略化出来ると共に、テスト用の回路に必要とされるメモリ量を削減で出来るので、テストコストを削減できる。また、第1の実施形態で説明したように、F/Fの数を増加させて組み合わせ回路を単純化する主な目的は、半導体集積回路の動作速度の向上にある。従って、全てのF/Fをスキャン化させず、一部をバイパス化させたとしても、テスト動作に影響は無い。すなわち、故障検出率の低下を招くことは無い。
【0095】
更に上記第2の実施形態で説明したように、ATPGによってAsynchronousループの有無を確認し、その結果に基づいてスキャン化するかバイパス化するかを決定出来る。従って、ループが存在する組み合わせ回路が生じることを防止でき、半導体集積回路の動作信頼性を向上できる。
【0096】
また上記第3、第4の実施形態で説明したように、F/Fの動作を制御するクロック自体を、通常動作モードと出荷テストモードとで変化させることで、F/Fをバイパス化することが出来る。この場合には、上記説明の通り、バイパス化に必要な付加回路及び配線が非常に少なく済み、回路面積増加を更に抑制できる。
【0097】
図25乃至図28は、上記第1の実施形態の第1乃至第4変形例に係るバイパスF/Fの回路図である。図25に示す例では、図5に示す構成において、クロックド・インバータ70をクロックド・インバータ96に置換している。クロックド・インバータ96は、反転クロック/CLKと制御信号ST1のAND信号に応答して動作し、制御信号ST1=1の際には無条件でオープンとなる。
【0098】
図26に示す例では、図5に示す構成において、クロックド・インバータ97を追加している。クロックド・インバータ97は、入力端がクロックド・インバータ70の入力端に接続され、出力端がクロックド・インバータ70の出力端に接続されている。そしてクロックド・インバータ97は、制御信号ST1に応答して動作し、制御信号ST1=1の際にオープンとなる。
【0099】
図27に示す例では、図6に示す構成において、クロックド・インバータ70をクロックド・インバータ96に置換している。また図28に示す例では、図6に示す構成において、クロックド・インバータ97を追加している。
【0100】
上記のような図25乃至図28に示す構成であると、出荷テスト動作モードにおけるバイパスF/Fは、クロックCLK=“low”の場合であっても、入力端Dに入力された信号を出力端Qにバイパスさせる。
【0101】
なお、上記実施形態ではクロックCLKが“low”レベルでマスターラッチ回路がデータを取り込み、“high”レベルでスレーブラッチ回路がデータを取り込む場合を例に挙げて説明したが、逆の場合であっても勿論良い。また、上記実施形態は、スキャン化を行う半導体集積回路一般に応用でき、例えばメモリ混載のシステムLSIにも適用できることは言うまでもない。また本発明の実施形態は、特に段数の多い半導体集積回路であるほど効果が大きく、例えば画像処理系の半導体集積回路において効果がある。
【0102】
なお、本願発明は上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。
【0103】
【発明の効果】
以上説明したように、この発明によれば、故障検出率を低下させることなく回路面積の増加を防止できる半導体装置及びその設計方法を提供できる。
【図面の簡単な説明】
【図1】この発明の第1の実施形態に係る半導体集積回路のブロック図。
【図2】この発明の第1の実施形態に係るF/Fの構成を示すブロック図。
【図3】この発明の第1の実施形態に係るスキャンF/Fの構成の一例を示す回路図。
【図4】この発明の第1の実施形態に係るスキャンF/Fの構成の他の例を示す回路図。
【図5】この発明の第1の実施形態に係るバイパスF/Fの構成の一例を示す回路図。
【図6】この発明の第1の実施形態に係るバイパスF/Fの構成の他の例を示す回路図。
【図7】この発明の第1の実施形態に係る半導体集積回路におけるクロック、反転クロック、及び制御信号のタイミングチャート。
【図8】この発明の第1の実施形態に係る半導体集積回路のブロック図であり、シフト動作の様子を示す図。
【図9】この発明の第1の実施形態に係る半導体集積回路のブロック図であり、通常動作の様子を示す図。
【図10】この発明の第1の実施形態に係る半導体集積回路のブロック図であり、シフト動作の様子を示す図。
【図11】半導体集積回路のブロック図。
【図12】この発明の第1の実施形態に係る半導体集積回路のブロック図。
【図13】この発明の第2の実施形態に係る半導体集積回路のブロック図。
【図14】順序回路の一例を示す回路図。
【図15】この発明の第2の実施形態に係る半導体集積回路のスキャン化の流れを示すフローチャート。
【図16】この発明の第3の実施形態に係る半導体集積回路のブロック図。
【図17】F/Fの回路図。
【図18】この発明の第3の実施形態に係るスキャンF/F及びバイパスF/Fの回路図。
【図19】この発明の第3の実施形態に係る半導体集積回路における外部クロック、クロック、及び制御信号のタイミングチャート。
【図20】この発明の第4の実施形態に係る半導体集積回路のブロック図。
【図21】この発明の第4の実施形態に係るスキャンF/Fの構成の一例を示す回路図。
【図22】この発明の第4の実施形態に係るスキャンF/Fの構成の別の例を示す回路図。
【図23】この発明の第4の実施形態に係るバイパスF/Fの構成を示す回路図。
【図24】この発明の第4の実施形態に係る半導体集積回路におけるクロック及び制御信号のタイミングチャート。
【図25】この発明の第1の実施形態の第1変形例に係るバイパスF/Fの構成を示す回路図。
【図26】この発明の第1の実施形態の第2変形例に係るバイパスF/Fの構成を示す回路図。
【図27】この発明の第1の実施形態の第3変形例に係るバイパスF/Fの構成を示す回路図。
【図28】この発明の第1の実施形態の第4変形例に係るバイパスF/Fの構成を示す回路図。
【図29】従来のF/F及びスキャンF/Fのブロック図。
【符号の説明】
10…LSI
11〜15…入力ピン
16…出力ピン
20−1〜20−4…バイパスF/F
21、86…D−F/F
22−1、22−2…マルチプレクサ
23−1、23−2、40、41−1〜41−3、41、50…信号線
30−1〜30−7…スキャンF/F
60−1〜60−10…組み合わせ回路
70、71、73、74、76〜80、82、83、84、90、91、93、94、96、97、140、141、143、144、146〜148、150、151、153、154…クロックド・インバータ
72、75、81、92、95、142、145、149、152、155…インバータ
85…加算器
100〜130…クロック生成器
【発明の属する技術分野】
この発明は、半導体集積回路及びその設計方法に関するもので、特に半導体集積回路のスキャン(Scan)設計手法に係るものである。
【0002】
【従来の技術】
近年、システムLSI(Large Scale Integrated circuit)の大規模化に伴って、その設計に用いられるF/F(フリップフロップ)の数は増加している。同時に、LSIの動作周波数の向上に伴って、その設計のパイプラインの段数も増加している。
【0003】
現状のテスト容易化設計(Design For Testability)においては、スキャン(Scan)設計が活用されている。スキャン設計は、F/Fをシリアルチェーンで接続することにより、F/Fに保持されている値の読み出し及び書き込みを直接行えるようにしたものである。そして、LSIを複数の組み合わせ回路に分割して、テストパターンを自動発生出来るようにしたものである。そのため、スキャン設計を用いる場合には、基本的には全てのF/Fをシリアルチェーン化(以降、スキャン化と呼ぶことにする)する必要がある。
【0004】
スキャン化の方法の一例について図29を用いて説明する。図29はフリップフロップのブロック図である。図示するように、スキャン化の為には、D−F/Fに、入力Dと入力SDとを選択出来る機能を与える。そして、通常動作モードにおける入力Dと、スキャン動作モードにおける入力SDとの2つの入力を、セレクト信号Sによって切り替える。このように、シリアルチェーンの入力と通常動作用の入力とを選択出来るようにしたF/F(スキャンF/F)があれば、スキャンテストが可能となる。
【0005】
スキャンF/Fの動作は、例えば2相の専用クロックにより制御される。従って、シリアルチェーンを用いてデータを入出力する際に、2つのクロックが互いにオーバーラップしないよう、外部からF/Fを制御出来る。よって、動作を2相のクロックで制御する方式は、クロックスキューによるデータのホールドエラー発生を防止するための有効な手段である。また本方式であると、入力Dと入力SDとの切り替えを、クロックの有無で制御する。従って、スキャンF/Fのセットアップへの影響を最小限に抑えることができ、特に1GHzを超えるような高周波数で動作するLSIの設計に有効である。しかし、スキャン化を行う為に必要となる追加回路の規模が大きいことが問題であった。
【0006】
そこで、LSIに含まれるF/Fのうち、その一部だけをスキャン化する方法が提案されている(例えば非特許文献1参照)。
【0007】
【非特許文献1】
“Toshinobu Ono et al., “An Application of Partial Scan Techniques to a High−End System LSI Design”, IEEE, Proceedings of the Tenth Asian Test Symposium, November, 2001, p.459
【0008】
【発明が解決しようとする課題】
上記のように、近年のLSIの大規模化と動作周波数の上昇に伴い、全体の回路に対してF/Fの占める割合が増加している。また、スキャン化に伴って必要となるF/Fへの追加回路により、回路規模の拡大してきている。この追加回路は、出荷テストの際にのみ用いられる回路であり、出荷後には全く動作しない付加回路である。従って、言い換えると、従来のLSIであると、テストのためにしか使われない回路のLSI中に占める割合が、F/Fの増加に伴って大きくなっているという問題があった。
【0009】
また、スキャンF/Fが増加すると、シリアルチェーンでのデータ入出力の量が増加する。そのため、テスト時間及びテストベクトル量が増加し、またベクトルを保存するテスタに大容量のメモリが必要になり、テスタのコストが増大するという問題があった。
【0010】
更に、動作周波数の上昇に伴って、F/Fを挿入することにより従来の1ステージ(F/FからF/Fまでの間)を複数のステージに分割することが行われている。これにより、F/FからF/Fまでの間の組み合わせ回路が複数の組み合わせ回路に分割され、動作速度が向上される。従って、1ステージ内に存在する制御回路は単純な動作を行うようになり、ステージによっては(特にデータを処理する部分)、F/FとF/Fとの間のロジック回路が単にバッファだけとなるケースが発生しつつある。このような場合、スキャンテストは単にF/F間の配線を確認するだけのテストとなる。すなわち、1つのスキャンF/Fが試験を行う組み合わせ回路の量が減少している。言い換えれば、スキャンF/Fの数が、無駄に増加してしまうという問題があった。
【0011】
そこで、LSIの含まれる一部のF/Fのみスキャン化する方法も提案されているが、効果は十分では無いという問題があった。
【0012】
この発明は、上記事情に鑑みてなされたもので、その目的は、故障検出率を低下させることなく回路面積の増加を防止できる半導体装置及びその設計方法を提供することにある。
【0013】
【課題を解決するための手段】
上記目的を達成するために、この発明に係る半導体装置は、第1、第2動作モードを有する半導体装置であって、前記第2動作モード時に命令信号を伝送する信号線と、前記第1動作モードにおいてはクロックに同期して動作し、前記第2動作モードにおいては前記命令信号に応じて動作する第1フリップフロップと、前記第2動作モードにおいて、前記命令信号に応答して前記第1フリップフロップの入力を出力に伝搬させる切り替え回路と、前記第1動作モードにおいては前記クロックに同期して動作し、前記第2動作モードにおいては、前記第1動作モードにおける入力信号の代わりにテストパターンを入力信号として選択し、前記クロックに同期して動作する第2フリップフロップとを具備することを特徴としている。
【0014】
上記構成の半導体装置によれば、半導体集積回路のスキャン化の過程において、一部のF/Fをバイパス化している。バイパスF/Fは、第2動作モード(出荷テスト時)において、入力端の入力信号を、出力端に命令信号に応じて伝搬させる。この際、バイパス化に要する付加回路は、スキャン化に比べて少なくて済む。従って、スキャン化に伴う回路面積の増加を抑制できる。更に、スキャンF/Fの数が少なく出来るため、テスト時に入力するデータ量が少なくて済む。その結果、テスト工程を簡略化出来ると共に、テスト用の回路に必要とされるメモリ量を削減で出来るので、テストコストを削減できる。また、従来においてF/Fの数を増加させて組み合わせ回路を単純化する主な目的は、半導体集積回路の動作速度の向上にある。従って、全てのF/Fをスキャン化させず、一部をバイパス化させたとしても、テスト動作に影響は無い。すなわち、故障検出率の低下を招くことは無い。
【0015】
またこの発明に係る半導体装置の設計方法は、全てのフリップフロップをバイパス化しつつ、半導体集積回路を設計するステップと、前記半導体集積回路の動作テストを行い、内部に前記フリップフロップを含むループ回路が存在するか否かを判定するステップと、前記ループ回路が存在すると判定された場合、前記ループ回路に含まれる少なくともいずれかの前記フリップフロップをスキャン化することで、前記ループ回路を順序回路にするステップとを具備することを特徴としている。
【0016】
上記のような設計方法によれば、一部のF/Fをバイパス化することで、上記効果が得られる。また同時に、Asynchronousループの有無を確認し、その結果に基づいてスキャン化するかバイパス化するかを決定している。従って、ループが存在する組み合わせ回路が生じることを防止でき、半導体装置の動作信頼性を向上できる。
【0017】
【発明の実施の形態】
以下、この発明の実施形態を図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【0018】
この発明の第1の実施形態に係る半導体装置について図1を用いて説明する。図1は半導体集積回路(LSI)の内部構成を示すブロック図である。
【0019】
図示するようにLSI10は、複数のバイパスF/F20−1、20−2、…(第1フリップフロップ)、複数のスキャンF/F30−1〜30−4、…、第1信号線40、第2信号線50、組み合わせ回路(Combinational logic circuit)60−1〜60−4、…を備えている。
【0020】
バイパスF/F20−1、20−2、…の各々は、F/F21−1、21−2、…及びマルチプレクサ22−1、22−2、…(切り替え回路)をそれぞれ備えている。F/F21−1、21−2の各々の入力端Dは、組み合わせ回路60−1、60−3の出力端にそれぞれ接続されている。マルチプレクサ22−1、22−2の各々は、第1信号線40を伝搬する制御信号ST1(命令信号)に基づいて、F/F21−1、21−2の入力端D及び出力端Qのいずれかの信号をそれぞれ選択する。そして、選択信号を組み合わせ回路60−2、60−4へそれぞれ出力する。すなわち、マルチプレクサ22−1、22−2がF/F21−1、21−2の入力端Dの信号をそれぞれ選択することで、組み合わせ回路60−1、60−3の出力信号は、信号線23−1、23−2をそれぞれ介して、組み合わせ回路60−2、60−4へ、クロックCLKにかかわらず直接伝搬される。バイパスF/F20−1、20−2は、通常動作モードと出荷テスト動作モードの2つの動作モードをそれぞれ有している。そして、マルチプレクサ22−1、22−2は、通常動作モード(第1動作モード)においては出力端Qからの信号を選択し、出荷テスト動作モード(第2動作モード)においては入力端Dからの信号を選択する。
【0021】
次にスキャンF/F30−1〜30−4について説明する。スキャンF/F30−1は、前段の組み合わせ回路または入力端子からデータが入力される入力端Dと、テストパターンが入力される入力端SDのいずれかを選択する。そして選択した入力端に入力される信号を内部に取り込む。この選択動作は、第2信号線50を伝搬してスキャンF/F30−1に入力される制御信号SC1、SC2に基づいて行われる。そして、スキャンF/F30−1は選択された信号をラッチし、出力端Qから組み合わせ回路60−1へ出力する。またスキャンF/F30−1の出力端Qは、スキャンF/F30−3へも信号線41−1(シリアルチェーン)を介して接続されている。
【0022】
スキャンF/F30−3は、前段の組み合わせ回路または入力端子からデータが入力される入力端Dと、スキャンF/F30−1からの出力信号が信号線41−1を介して入力される入力端SDのいずれかを選択する。そして、選択した入力端に入力される信号を内部に取り込む。この選択動作は、第2信号線50を伝搬してスキャンF/F30−3に入力される制御信号SC1、SC2に基づいて行われる。そして、スキャンF/F30−3は選択された信号をラッチし、出力端Qから次段の組み合わせ回路60−3へ出力する。またスキャンF/F30−3の出力端Qは、スキャンF/F30−2へも信号線41−2を介して接続されている。
【0023】
スキャンF/F30−2は、前段の組み合わせ回路60−2からの出力信号が入力される入力端Dと、スキャンF/F30−3からの出力信号が信号線41−2を介して入力される入力端SDのいずれかを選択する。そして、選択した入力端に入力される信号を内部に取り込む。この選択動作は、第2信号線50を伝搬してスキャンF/F30−2に入力される制御信号SC1、SC2に基づいて行われる。そして、スキャンF/F30−2は選択された信号をラッチし、出力端Qから次段の組み合わせ回路または出力端子へ出力する。またスキャンF/F30−2の出力端Qは、スキャンF/F30−4へも信号線41−3を介して接続されている。
【0024】
スキャンF/F30−4は、前段の組み合わせ回路60−4からの出力信号が入力される入力端Dと、スキャンF/F30−2からの出力信号が信号線41−3を介して入力される入力端SDのいずれかを選択する。そして、選択した入力端に入力される信号を内部に取り込む。この選択動作は、第2信号線50を伝搬してスキャンF/F30−4に入力される制御信号SC1、SC2に基づいて行われる。そして、スキャンF/F30−4は選択された信号をラッチし、出力端Qから次段の組み合わせ回路または出力端子へ出力する。
【0025】
スキャンF/F30−1〜30−4の各々は、通常動作モードとシフト動作モードの2つの動作モードを有している。そして、スキャンF/F30−1〜30−4の各々は、通常動作モードにおいては入力端Dからの信号を選択し、シフト動作モードにおいては入力端SDから入力されるテストパターンを選択する。またスキャンF/F30−1〜30−4は、それぞれクロックCLKに応じて動作する。
【0026】
組み合わせ回路60−1〜60−4は、それぞれスキャンF/F31−1、バイパスF/F20−1、スキャンF/F30−3、及びバイパスF/F20−2の出力信号を入力として論理演算を行う。そして、その演算結果をバイパスF/F20−1、スキャンF/F30−2、バイパスF/F20−2、及びスキャンF/F30−4へそれぞれ出力する。
【0027】
次に、図2乃至図6を用いてスキャンF/F及びバイパスF/Fの具体的な構成について説明する。図2はスキャン化またはバイパス化を行う前のD−F/Fの回路図、図3、図4はスキャンF/F30−1〜30−4の回路図、図5、図6はバイパスF/F20−1、20−2の回路図である。
【0028】
まず図2を用いて、スキャン化またはバイパス化を行う前のD−F/Fの構成について説明する。図示するように、D−F/Fはマスターラッチ回路及びスレーブラッチ回路を備えている。
【0029】
マスターラッチ回路は、クロックド・インバータ70、71、インバータ72を有している。クロックド・インバータ70は転送ゲートとして機能するものであり、クロックCLKが“low”レベル(反転クロック/CLK=“high”)の際にオープン(導通状態)となる。逆に、クロックCLKが“high”レベル(反転クロック/CLK=“low”レベル)の際には、動作を停止する。クロックド・インバータ71は、出力端がクロックド・インバータ70の出力端に接続され、入力端がインバータ72の出力端に接続されている。そしてクロックド・インバータ71は、クロックCLKが“high”レベルの際にオープンとなる。インバータ72は、入力端がクロックド・インバータ70の出力端に接続され、出力端が該マスターラッチ回路の出力端となる。
【0030】
スレーブラッチ回路は、マスターラッチ回路とほぼ同様の構成を有している。すなわち、スレーブラッチ回路は、クロックド・インバータ73、74、インバータ75を有している。クロックド・インバータ73は転送ゲートとして機能するものであり、クロックCLKが“high”レベル(反転クロック/CLK=“low”)の際にオープン(導通状態)となる。逆に、クロックCLKが“low”レベル(反転クロック/CLK=“high”レベル)の際には、動作を停止する。クロックド・インバータ74は、出力端がクロックド・インバータ73の出力端に接続され、入力端がインバータ75の出力端に接続されている。そしてクロックド・インバータ74は、クロックCLKが“low”レベルの際にオープンとなる。インバータ75は、入力端がクロックド・インバータ73の出力端に接続され、出力端が該スレーブラッチ回路の出力端、すなわちF/Fの出力端Qとなる。
【0031】
次に、スキャンF/F30−1〜30−4の構成について、図3を用いて説明する。図3は、スキャンF/F30−1〜30−4の回路図である。スキャンF/F31−1〜31−4は、図2に示すD−F/Fにおいて、入力Dと入力SDのいずれかを選択する機能を与えた構成を有する。
【0032】
図示するように、スキャンF/F30−1〜30−4は、図2に示す構成において、クロックド・インバータ76を追加し、クロックド・インバータ71をクロックド・インバータ77に置き換え、クロックド・インバータ73をクロックド・インバータ84に置き換え、クロックド・インバータ74をクロックド・インバータ78に置き換えた構成を有している。クロックド・インバータ76は、入力端が入力端SDに接続され、出力端がクロックド・インバータ70の出力端に接続されている。そしてクロックド・インバータ76は、制御信号SC1が“high”レベルの際にオープンとなる。クロックド・インバータ77は、クロックCLKと反転制御信号/SCのAND信号が“high”レベルの際にオープンとなる。クロックド・インバータ84は、クロックCLKと制御信号SC2のOR信号が“high”レベルの際にオープンとなる。またクロックド・インバータ78は、クロックCLKと反転制御信号/SC2のOR信号が“high”レベルの際にオープンとなる。
【0033】
図4は、スキャンF/F30−1〜30−4の別の構成について示す回路図である。図示するように、スキャンF/F30−1〜30−4は、図2に示す構成において、クロックド・インバータ76、79、80、インバータ81を追加し、クロックド・インバータ71をクロックド・インバータ77に置き換えた構成を有している。クロックド・インバータ76は、入力端が入力端SDに接続され、出力端がクロックド・インバータ70の出力端に接続されている。そしてクロックド・インバータ76は、制御信号SC1が“high”レベルの際にオープンとなる。クロックド・インバータ79は、入力端がスレーブラッチ回路の出力端Qに接続され、制御信号SC2が“high”レベルの際にオープンとなる。クロックド・インバータ80は、出力端がクロックド・インバータ79の出力端に接続され、反転制御信号/SC2が“high”レベル(制御信号SC2=“low”)の際にオープンとなる。インバータ81は、入力端がクロックド・インバータ79の出力端に接続され、出力端がクロックド・インバータ80の入力端に接続される。そして、入力端SDが選択された際、インバータ81の出力端が、スキャンF/Fの出力端SQとなる。
【0034】
次にバイパスF/F20−1、20−2の構成について図5を用いて説明する。図5はバイパスF/Fの回路図である。バイパスF/Fは、図2に示すD−F/Fにおいて、入力と出力とをバイパス出来るようにしたものである。
【0035】
図示するように、バイパスF/F20−1、20−2は、図2を用いて説明したD−F/Fにおいて、クロックド・インバータ73をクロックド・インバータ82に置き換えた構成を有している。クロックド・インバータ82は、クロックCLKと制御信号ST1とのAND信号が“high”レベルの際にオープンとなる。すなわち、クロックCLKと制御信号ST1のいずれか一方が“high”レベルであれば、オープンとなる。
【0036】
図6は、バイパスF/F20−1、20−2の別の構成について示す回路図である。図示するように、バイパスF/F20−1、20−2は、図2を用いて説明したD−F/Fにおいて、クロックド・インバータ83を追加した構成を有している。クロックド・インバータ83は、入力端がインバータ72の出力端に接続され、出力端がインバータ75の入力端に接続されている。クロックド・インバータ83は、制御信号ST1が“high”レベルの際にオープンとなる。
【0037】
次に、本実施形態に係る半導体装置のスキャンテスト方法について、図7乃至図10を用いて説明する。図7は、クロックCLK、反転クロック/CLK、及び制御信号ST1のタイミングチャートである。図8乃至図10は、半導体集積回路のブロック図であり、図1に示す構成を、説明の簡単化の為に簡略化して示すものである。なお、スキャンF/Fの動作は従来と同様であるので、ここでは特にバイパスF/Fの動作に着目して詳細に説明する。
【0038】
図示するように、LSI10は、バイパスF/F20、スキャンF/F30−1、30−2、組み合わせ回路60−1、60−2、第1信号線40、及び第2信号線50を備える構成であるとする。そして、例えば時刻t1でスキャンテストを開始したとする。
【0039】
スキャンテストの開始の際には、半導体集積回路10の入力ピン11から入力される制御信号ST1が“1”にされる。すると、バイパスF/F20は通常動作モードから出荷テスト動作モードへ移行し、スキャンF/F30−1、30−2は通常動作モードからシフト動作モードへと移行する。この際の様子を示すのが図8である。図8は半導体集積回路のブロック図である。
【0040】
スキャンF/F30−1は、入力端SDからの入力を選択し、入力ピン14から入力されるテストパターンを取り込む。例えばテストパターンが“10”であったとする。すると、クロックCLKの入力に応答して、スキャンF/F30−1には“1”が取り込まれる。また、スキャンF/F30−1にシリアルチェーンで接続されているスキャンF/F30−2には、信号線41を介して“0”が取り込まれる。すなわち、シフト動作モードにあっては、テストパターンの各ビットがスキャンF/Fを次々とシフトされることで、シリアルチェーンで接続されたスキャンF/F内部にテストパターンの各ビットが取り込まれる。スキャンF/F30−1、30−2にシリアルチェーンで接続されていないバイパスF/F20には、テストパターンは取り込まれない。但し、制御信号ST1=1であるので、バイパスF/F20は、内部に格納している信号を、クロックCLKにかかわらず出力端に出力させるように動作する状態にある。この状態を図5を参照しつつ説明する。図5において、クロックド・インバータ82は、クロックCLKとST1のAND信号に応答して動作する。出荷テスト動作モードにおいては、制御信号ST1が常時“1”とされているから、クロックド・インバータ83も常時オープンとなっている。また図6の構成で有れば、クロックド・インバータ83が常時オープンとなっている。従って、入力されているデータは、クロックの有無に関わらず、出力端Dより出力される。換言すれば、バイパスF/Fは、単に組み合わせ回路60−1と60−2とを接続する信号線、またはバッファ回路と見なすことが出来る。
【0041】
全てのスキャンF/F30−1、30−2にテストパターンが格納された時刻t2からは、スキャンF/F30−1、30−2は通常動作モードに移行する。そして、半導体集積回路10の入力ピン15よりデータが入力される。この際の様子を示すのが図9である。通常動作モードに移行してからクロックCLKが1つ入ることで、組み合わせ回路60−1の入力端にはスキャンF/F30−1に格納されている“1”が入力される。そして、組み合わせ回路60−1は、入力されたデータ“1”に基づいて論理演算を行う。更に、バイパスF/F20の入力信号は出力信号へバイパスされる状態にあるため、組み合わせ回路60−1の論理演算結果は組み合わせ回路60−2に入力される。そして組み合わせ回路60−2は、組み合わせ回路60−1における演算結果に基づいた論理演算を行う。通常動作モードにおけるスキャンF/F30−2は、入力端Dからの入力信号を取り込む状態にあるから、組み合わせ回路60−2における上記演算結果“Ans”は、スキャンF/F30−2に取り込まれる。
【0042】
次に、時刻t2からクロックCLKが1つ分の時間が経った時刻t3において、スキャンF/F30−1、30−2は再びシフト動作へ移行する。この際の様子を示すのが図10である。図10は半導体集積回路のブロック図である。すなわち、シリアルチェーンで接続されているスキャンF/F30−1、30−2に格納されているデータがシフトされる。従って、スキャンF/F30−2に格納されている演算結果“Ans”が、半導体集積回路の出力ピン16から取り出される。
【0043】
そして、上記のようにして得られた演算結果“Ans”が期待値と符合しているか否かによって、組み合わせ回路60−1、60−2が正常に動作しているか否か、すなわち故障の有無を判定できる。
【0044】
その後、時刻t4でバイパスF/F20及びスキャンF/F30−1、30−2は通常動作モードに移行する。通常動作モードにおけるバイパスF/F20は、通常のF/Fと同様の動作を行う。すなわち、通常動作モードにおいて制御信号STは“0”固定であるので、図6においてはクロックド・インバータ83が常時クローズとなり、また図5においてはクロックド・インバータ82がクロック/CLKに応答して動作するようになる。
【0045】
上記のように、本実施形態に係る半導体装置であると、故障検出率の低下を招くことなく、スキャンF/Fの数を大幅に削減でき、回路面積を削減できる。この点について、以下図11及び図12を用いて説明する。図11及び図12は半導体集積回路のブロック図である。
【0046】
図11に示すように、半導体集積回路が、3つのF/F30−5〜30−7及び、2つのF/F間に挟まれた2つの組み合わせ回路60−5、60−6を含んでいると仮定する。そして、スキャン化の為に、3つ全てのF/Fがスキャン化されていると仮定する。
【0047】
従来技術で説明したように、近年の半導体集積回路には、更なる高速動作の要求がある。この高速動作の要求を満たすために、各組み合わせ回路における処理にかかる時間を短くする必要がある。換言すれば、組み合わせ回路を単純化する必要がある。そのため、F/Fを追加することにより、組み合わせ回路を単純化した回路例が、図12である。
【0048】
図示するように、図11に示す構成において、F/F20−3、20−4を追加することで、組み合わせ回路60−5、60−6を、それぞれ2つの組み合わせ回路60−7、60−8及び組み合わせ回路60−9、60−10に分割している。従来方法であると、この追加したF/F20−3、20−4についてもスキャン化を行っていた。このことが、スキャンF/Fの増加と、それに伴う回路面積の増加の原因であった。
【0049】
しかし本実施形態に係る構成であると、新たに追加した2つのF/F20−3、20−4については、スキャン化を行わずにバイパス化を行っている。すなわち、スキャンテスト時にはF/F20−3、20−4をスルーとなるようにしている。更に言い換えれば、半導体回路60−5、60−6は、通常動作モードにおいては順序回路(Sequential logic circuit)として機能し、テスト動作モードにおいては組み合わせ回路として機能する。この機能の切り替えは、バイパスF/F20−3、20−4によって行われる。バイパスF/F20−3、20−4の各々は、通常動作モードにおいては通常のF/Fとして動作するから、クロックに応答して入力信号を次段に伝搬させる。従って、半導体回路60−5、60−6は、順序回路として動作する。しかし、テスト動作モードにおいては、クロックにかかわらず、制御信号ST1に応答して入力信号を次段に伝搬させる。従って、半導体回路60−5、60−6は、組み合わせ回路として機能する。この点を図1を用いて説明すれば、組み合わせ回路60−1、60−2、及びバイパスF/F20−1を含んでなる半導体回路が、バイパスF/F20−1の動作モードに応じて、組み合わせ回路または順序回路として機能する。より具体的には、バイパスF/F20−1が通常動作モードの場合は順序回路として機能し、出荷テスト動作モードの場合は組み合わせ回路として機能する。そして、F/Fをバイパス化するために必要となる追加回路は、図1に示すようにゲートレベルではスキャン化の場合と同じであるが、図3乃至図6で説明したように、実際の回路構成はスキャン化の場合に比べて少なく済む。従って、回路面積の増加が抑制される。
【0050】
そもそも、F/Fを増やして組み合わせ回路の構成を単純化するのは、半導体集積回路の動作を高速化させるのが目的である。また近年の半導体集積回路では、従来技術でも説明したように1つの組み合わせ回路、すなわち図11で言うところの組み合わせ回路60−5、60−6の構成は十分に単純化されている。テストパターンを生成するATPG(Auto Test Pattern Generation)ツールの高性能化も手伝って、動作速度向上のために追加したF/F20−3、20−4をスキャン化したところで、故障検出率に殆ど影響は無い。換言すれば、図11の構成と図12の構成とを比べると、故障検出率は変わらないのが現状である。この結果、追加F/Fをスキャン化せずにバイパス化することで、半導体集積回路の動作速度を向上させつつ、故障検出率の維持と回路面積の増加抑制を両立出来る。
【0051】
次にこの発明の第2の実施形態に係る半導体装置及びその設計方法について図13を用いて説明する。図13は半導体集積回路の内部構成を示すブロック図である。本実施形態は、上記第1の実施形態で説明したスキャン化手法を実現するための別のアプローチを示すためのものである。
【0052】
図示するように、LSI10は複数のバイパスF/F1及びスキャンF/F2並びに組み合わせ回路(図示せず)を備えている。本実施形態に係る構成では、ループを有する回路に含まれるF/Fのみがスキャン化される。この点について図14を用いて説明する。図14はループを有する回路の一例である。
【0053】
図示するように、加算回路85の出力端が、F/F86を介して入力端に接続されている。このような順序回路は、1づつ値をインクリメントしていくような回路に広く適用されており、加算器85の出力は、F/FにクロックCLKが入力される毎に増加していく。このように、ループ回路内のF/Fはバイパス化することが出来ない。順序回路内のF/Fをバイパス化することは、すなわち順序回路を組み合わせ回路に変更することと言い換えることが出来る。このように組み合わせ回路内にループが存在すると、出力信号の値が一定値にならないという問題がある。例えば図14の例では、クロックにかかわらず加算器85の出力が入力に戻ることになり、加算器85の出力がいつまで経っても一定に定まらない。従って、ループ回路内のF/Fはバイパス化することが出来ないのである。
【0054】
上記を勘案して、本実施形態に係る半導体装置のスキャン化設計手法について、図15を用いて説明する。図15は、半導体装置の設計方法のフローチャートである。
【0055】
まず半導体集積回路を設計し(ステップS10)、含まれる全てのF/Fをバイパス化する(ステップS11)。すなわち、図13における全てのF/Fを、上記第1の実施形態で説明した図5、図6に示す構成を有するバイパスF/Fとして、1つの組み合わせ回路を形成する。
【0056】
次に、Asynchronousループの有無を判定する(ステップS12)。これは、組み合わせ回路にループが存在するか否かを判定するという意味である。再度述べるが、この時点では、F/Fはバイパス化されているから、F/Fを含む回路もこの時点では組み合わせ回路として動作する。本ステップでは、より具体的には、バイパスF/Fを用いて設計した図13に示す半導体集積回路において、ATPGを実行する。まず、入力ピンと出力ピンのみをそれぞれ制御点、観測点と設定する。そして、制御信号ST1を“1”として、全てのバイパスF/Fを出荷テスト動作モード(バイパス状態)とする。このような状態で、テストパターンを入力してテストを行う。すると、有る組み合わせ回路の出力が入力に戻るようなループが存在した場合、ATPGにおいてAsynchronousループとして認識される。そしてATPGは警告を発して、そのループを分断するようにメッセージを出す(ステップS13)。
【0057】
次に、上記メッセージが出力されたF/Fをスキャン化する。すなわちバイパスF/Fを、上記第1の実施形態において図3、図4に示す構成を有するスキャンF/Fに置き換える(ステップS14)。上記メッセージが出力されなければ、スキャン化の必要はない。
【0058】
上記のようにして、半導体集積回路の設計において、スキャンF/FとバイパスF/Fとが最適に選択される。
【0059】
上記のように、本実施形態に係る半導体装置及びその設計方法であると、バイパスF/Fを用いることにより、上記第1の実施形態と同様の効果を得ることが出来る。また、F/Fをむやみにバイパス化すると、ループを有する組み合わせ回路が場合によっては発生する。しかし本実施形態に係る構成及び方法であれば、そのループを検索し、ループを有する回路内のF/Fのみをスキャン化している。そのため、半導体集積回路の動作信頼性を向上できると共に、スキャンF/Fの数を必要最小限にすることが出来る。従って、上記第1の実施形態に比べて、更に回路面積の増加を抑制することが出来る。
【0060】
次にこの発明の第3の実施形態に係る半導体装置について図16を用いて説明する。図16は半導体集積回路のブロック図である。なお、本実施形態に係る半導体集積回路も、上記第1の実施形態で図1を用いて説明したように、多くのF/F及び組み合わせ回路を有するものであるが、ここでは説明の簡単化の為に、簡略化した回路構成を示す。
【0061】
図示するように、LSI10は、バイパスF/F20、スキャンF/F30−1、30−2、第1信号線40、第2信号線50、組み合わせ回路60−1、60−2、及びクロック生成器100(切り替え回路)、110を備えている。
【0062】
クロック生成器110は、外部クロックを基にしてクロックCLK1を生成する。クロック生成器100は、外部クロック及び第1信号線40を伝搬する制御信号ST1に基づいて、クロックCLK2を生成する。クロック生成器100は、制御信号ST1が“0”である間は、クロックCLK1と同じクロックCLK2を生成する。クロックCLK1とCLK2については後述する。
【0063】
バイパスF/F20の入力端Dは、組み合わせ回路60−1の出力端に接続され、出力端Qは組み合わせ回路60−2の入力端に接続されている。そして、クロックCLK2に応答して動作する。バイパスF/F20は、上記第1の実施形態と同様に通常動作モードと出荷テスト動作モードの2つの動作モードを有している。そして、出荷テスト動作モードにおいては、入力端Dからの信号を出力端Qに直接伝搬させる。
【0064】
スキャンF/F30−1、30−2は、上記第1の実施形態と同様の構成を有しており、クロックCLK1に応答して動作する。
【0065】
次に、図17及び図18を用いて、本実施形態に係るバイパスF/Fの具体的な構成について説明する。図17は、バイパス化を行う前の、図2と異なる別の構成を有するD−F/Fの一例の回路図であり、図18はバイパスF/F20の回路図である。
【0066】
図示するように、D−F/Fはクロックド・インバータ90、91及びインバータ92を有している。クロックド・インバータ90は転送ゲートとして機能するものであり、クロックCLK1が“high”レベルの際にオープンとなる。クロックド・インバータ91は、出力端がクロックド・インバータ90の出力端に接続され、入力端がインバータ92の出力端に接続されている。そしてクロックド・インバータ91は、クロックCLK1が“low”レベルの際にオープンとなる。インバータ92は、入力端がクロックド・インバータ90の出力端に接続され、出力端が該F/Fの出力端となる。
【0067】
バイパスF/F20は、クロックド・インバータ93、94及びインバータ95を有している。クロックド・インバータ93は転送ゲートとして機能するものであり、クロックCLK2が“high”レベルの際にオープンとなる。クロックド・インバータ94は、出力端がクロックド・インバータ93の出力端に接続され、入力端がインバータ95の出力端に接続されている。そしてクロックド・インバータ94は、クロックCLK2が“low”レベルの際にオープンとなる。インバータ95は、入力端がクロックド・インバータ95の出力端に接続され、出力端が該バイパスF/Fの出力端となる。
【0068】
なお図示は省略するが、本実施形態に係るスキャンF/Fの構成は、図17に示す構成において、入力Dと入力SDとのいずれかを選択出来る構成とすれば良い。
【0069】
次に、本実施形態に係る半導体装置のスキャンテスト方法について、図16及び図19を用いて説明する。図19は、外部クロック、クロックCLK1、CLK2、及び制御信号ST1のタイミングチャートである。
【0070】
まず上記4つの信号の関係について説明する。外部クロックが入力されると、クロック生成器110は、外部クロックの立ち上がりからΔt1だけ“high”レベルとなるクロックCLK1を生成する。すなわち、クロックCLK1は、一瞬だけパルスが立ち上がる形状を有している。クロック生成器100は、制御信号ST1が“0”の際は、CLK1と同様の形状のクロックCLK2を生成する。他方、制御信号ST1が“1”の際には、クロックCLK2は“high”レベルに固定される。
【0071】
図示するように、例えば時刻t1でスキャンテストを開始したとする。スキャンテストの開始の際には、入力ピンから入力される制御信号ST1が“1”にされる。すると、バイパスF/F20は通常動作モードから出荷テスト動作モードへ移行し、スキャンF/F30−1、30−2は通常動作モードからシフト動作モードへと移行する。スキャンF/F30−1は、入力端SDからの入力を選択し、テストパターンを取り込む。そして、テストパターンの各ビットがスキャンF/Fを次々とシフトされることで、シリアルチェーンで接続されたスキャンF/F内部にテストパターンの各ビットが取り込まれる。また、制御信号ST1=1であるので、クロックCLK2は常時“high”レベルである。従って、図18におけるクロックド・インバータ93が常時オープンとなる。従って、バイパスF/F20は、入力端Dの信号を出力端Qに常にバイパスさせるように動作する状態にある。
【0072】
全てのスキャンF/F30−1、30−2にテストパターンが格納された時刻t2からは、スキャンF/F30−1、30−2は通常動作モードに移行する。そして、半導体集積回路10の入力ピンよりデータが入力される。そして、組み合わせ回路60−1は、入力されたデータに基づいて論理演算を行う。更に、バイパスF/F20の入力信号は出力信号へバイパスされる状態にある。すなわち、バイパスF/F20は単なる信号線またはバッファとして機能するだけなので、組み合わせ回路60−1の論理演算結果は組み合わせ回路60−2に入力される。そして組み合わせ回路60−2は、組み合わせ回路60−1における演算結果に基づいた論理演算を行う。通常動作モードにおけるスキャンF/F30−2は、入力端Dからの入力信号を取り込む状態にあるから、組み合わせ回路60−2における上記演算結果は、スキャンF/F30−2に取り込まれる。
【0073】
次に、時刻t3において、スキャンF/F30−1、30−2は再びシフト動作へ移行する。このシフト動作によって、組み合わせ回路60−1、60−2における演算結果が出力ピンより取り出される。
【0074】
その後、時刻t4でバイパスF/F20及びスキャンF/F30−1、30−2は通常動作モードに移行する。
【0075】
上記のように、本実施形態に係る半導体装置によれば、バイパスF/Fにおいて、入力Dを出力Qにバイパスさせるか否かをクロックCLK2によって決定している。換言すれば、クロックCLK2を生成するクロック生成器100が、バイパスF/Fにおいて、入力Dと出力Qとをバイパスさせるための手段として機能している。従って上記第1の実施形態で説明した効果が得られるだけでなく、配線の量を削減することが出来、回路面積の増加をより抑制出来る。なぜなら、制御信号ST1は、クロック生成器100にのみ与えることが出来れば良く、従って、第1制御線40も、クロック生成器100に接続されれば足りるからである。そのため、上記第1、第2の実施形態のように、全てのバイパスF/Fに第1制御線40を接続する必要がないからである。
【0076】
なお、本実施形態は第1の実施形態と組み合わせることも可能である。すなわち、スキャンF/Fを図3、図4に示した構成とし、バイパスF/Fを図18に示す構成としても良い。
【0077】
次に本実施形態の第4の実施形態に係る半導体装置について図20を用いて説明する。図20は半導体集積回路のブロック図である。上記第1の実施形態で図1を用いて説明したように、本実施形態に係る半導体集積回路も、多くのF/F及び組み合わせ回路を有するものであるが、ここでは説明の簡単化の為に、簡略化した回路構成を示す。また本実施形態は、上記第3の実施形態と同様に、バイパスF/Fにおいて入力Dと出力Qとをバイパスさせるか否かをクロックにより制御するものである。
【0078】
図示するように、LSI10は、バイパスF/F20、スキャンF/F30−1、30−2、第1信号線40、第2信号線50、組み合わせ回路60−1、60−2、及びクロック生成器120(切り替え回路)、130を備えている。
【0079】
クロック生成器130は、外部クロックを基にしてクロックCLK3を生成する。クロック生成器120は、外部クロック及び第1信号線40を伝搬する制御信号ST1に基づいて、クロックCLK5、CLK6を生成する。クロック生成器120は、制御信号ST1が“1”である期間内において、クロックCLK5とCLK6とを同相にする。
【0080】
次に、スキャンF/F30−1、30−2の構成について、図21、図22を用いて説明する。図21は、スキャンF/F30−1、30−2の構成を示す回路図である。また図22は、スキャンF/F30−1、30−2の別の構成を示す回路図である。
【0081】
図示するように、本実施形態に係るスキャンF/F30−1、F/F30−2は、図3に示す構成において、クロックCLKをクロックCLK3に置換した構成を有している。
【0082】
次に、バイパスF/Fの構成について、図23を用いて説明する。図23はバイパスF/Fの回路図である。図示するように、バイパスF/F20は、マスターラッチ回路及びスレーブラッチ回路を有している。
【0083】
マスターラッチ回路は、クロックド・インバータ150、151、インバータ152を有している。クロックド・インバータ150は転送ゲートとして機能するものであり、反転クロック/CLK5が“high”レベル(クロックCLK5=low)の際にオープンとなる。クロックド・インバータ151は、出力端がクロックド・インバータ150の出力端に接続され、入力端がインバータ152の出力端に接続されている。そしてクロックド・インバータ151は、クロックCLK5が“high”レベルの際にオープンとなる。インバータ152は、入力端がクロックド・インバータ150の出力端に接続され、出力端が該マスターラッチ回路の出力端となる。
【0084】
スレーブラッチ回路は、マスターラッチ回路とほぼ同様の構成を有している。すなわち、スレーブラッチ回路は、クロックド・インバータ153、154、インバータ155を有している。クロックド・インバータ153は転送ゲートとして機能するものであり、反転クロック/CLK6が“high”レベル(クロックCLK6=low)の際にオープンとなる。クロックド・インバータ154は、出力端がクロックド・インバータ153の出力端に接続され、入力端がインバータ155の出力端に接続されている。そしてクロックド・インバータ154は、クロックCLK6が“high”レベルの際にオープンとなる。インバータ155は、入力端がクロックド・インバータ153の出力端に接続され、出力端が該スレーブラッチ回路の出力端、すなわちバイパスF/Fの出力端Qとなる。
【0085】
次に、本実施形態に係る半導体装置のスキャンテスト方法について、図24を用いて説明する。図24は、クロックCLK3、CLK5、CLK6、及び制御信号、SC1、SC2、ST1のタイミングチャートである。なお、SC2については、スキャンF/Fが図21、図22それぞれの構成の場合について2通りを示している。
【0086】
まずクロックCLK3、CLK5、CLK6及び制御信号、SC1、SC2、ST1の関係について説明する。クロック生成器130は、外部クロックを基にして、図示するクロックCLK3を生成する。またクロック生成器120は、外部クロックを基にして、図示するクロックCLK5、CLK6を生成する。クロックCLK5は、ほぼクロックCLK3と同様の形状であり、クロックCLK6は、クロックCLK5を反転させた形状である。そして、クロック生成器120は、制御信号ST1が“1”にされている期間、特に出荷テスト動作中における通常動作時に、クロックCLK5、CLK6を同相にする。
【0087】
制御信号SC1、SC2は、シフト動作時において、次のような関係を有している。すなわち、制御信号SC2は、制御信号SC1の立ち上がりからΔt2だけ前の時間に立ち下がり、制御信号SC1の立ち下がりからΔt3だけ後の時間に立ち下がる。従って、制御信号SC1が立ち上がる前、及び立ち下がった直後には、制御信号SC1、SC2は僅かな時間ではあるが、共に“low”レベルとなる。
【0088】
図示するように、例えば時刻t1でスキャンテストを開始したとする。スキャンテストの開始の際には、入力ピンから入力される制御信号ST1が“1”にされる。すると、バイパスF/F20は通常動作モードから出荷テスト動作モードへ移行し、スキャンF/F30−1、30−2は通常動作モードからシフト動作モードへと移行する。スキャンF/F30−1、30−2は、制御信号SC1、SC2に応答して、テストパターンを取り込む。また、制御信号ST1=1であるので、クロックCLK5=クロックCLK6となる。従って、図23におけるクロックド・インバータ150、153が、同じタイミングでオープンとなる。従って、バイパスF/F20は、入力端Dの信号を出力端Qにバイパスさせるように動作する状態にある。
【0089】
テストパターンが入力された後は、スキャンF/F30−1、30−2が通常動作モード及びシフト動作モードへと順次移行することで、組み合わせ回路60−1、60−2で為された演算結果が出力ピンから取り出される。但し、出荷テスト動作中は、常時CLK5=CLK6である必要は無く、出荷テスト動作中の通常動作時にこの条件が満たされていれば十分である。
【0090】
上記のように、本実施形態に係る半導体装置によれば、上記第1、第3の実施形態で説明した効果が得られる。更に、半導体装置の動作信頼性を向上できる。この点について以下説明する。
【0091】
マスタースレーブ型のF/Fにおいては、マスターラッチ回路の転送ゲートとスレーブラッチ回路の転送ゲートとが、同時にオープンになることは避けるべきである。すなわち、F/Fの入力端D(またはSD)から、出力端Q(またはSQ)までのルートがオープンになることは好ましくない。しかし、例えば図2乃至図6で説明した構成であると、マスターラッチ回路の転送ゲート70は反転クロック/CLKが“high”レベルの際にオープンとなり、スレーブラッチ回路の転送ゲート73、82、84は、クロックCLKが“high”レベルの際にオープンとなる。反転クロック/CLKは、当然ながらクロックCLKを基にして生成した信号であり、両者の立ち上がり、立ち下がりのタイミングは同時である。従って、クロックエッジの極短い時間においては、マスターラッチ回路の転送ゲートとスレーブラッチ回路の転送ゲートとが、共にオープンとなった状態が発生しうる。また、クロックド・インバータ76は、制御信号SC1が“high”レベルでオープンとなり、クロックド・インバータ84、79は、制御信号SC2が“high”レベルでオープンとなる。すると、制御信号SC1とSC2とがクロックと同様にトグル動作を行っていた場合、同様の問題が生じる。
【0092】
これに対して本実施形態であると、制御信号SC2は、制御信号SC1が立ち上がるより前の時間で立ち下がり、且つ制御信号SC1が立ち下がった後の時刻で立ち上がる(図24参照)。すなわち、クロックド・インバータ146がクローズになる瞬間は、クロックド・インバータ143、147は完全にクローズである。そして、クロックド・インバータ146がクローズになった後で、クロックド・インバータ143、147はオープンになる。従って、スキャンF/Fの誤動作を効果的に抑制できる。
【0093】
このことは制御信号SC1、SC2だけでなく、クロックCLK3、CLK5、CLK6についても同様である。スキャンF/Fを、クロックCLK3だけでなく、2つのクロックで制御し、この2つのクロックの間に制御信号SC1、SC2と同様の関係を持たせる。またバイパスF/Fを制御するクロックCLK5、CLK6の間にも、制御信号SC1、SC2と同様の関係を持たせる。すると、マスターラッチ回路の転送ゲート150がクローズになる瞬間は、スレーブラッチ回路の転送ゲート153は完全にクローズとなる。そして、転送ゲート150がクローズになった後で、転送ゲート153がオープンとなる。また、スレーブラッチ回路の転送ゲート153がクローズになる瞬間は、マスターラッチ回路の転送ゲート153は完全にクローズである。そして、転送ゲート153がクローズになった後で、転送ゲート150がオープンとなる。すなわち、マスターラッチ回路及びスレーブラッチ回路の状態が変化する瞬間は、いずれの転送ゲートも一定期間だけ必ず共にクローズになる。従って、バイパスF/F及びスキャンF/Fの誤動作を更に効果的に抑制できる。
【0094】
上記のように、この発明の第1乃至第4の実施形態に係る半導体装置及びその設計方法によれば、半導体集積回路のスキャン化の過程において、一部のF/Fをバイパス化している。バイパスF/Fは、出荷テスト時において、入力端Dの入力信号を、制御信号ST1に応じて出力端Qに伝搬させる。この際、バイパス化に要する付加回路は、スキャン化に比べて少なくて済む。従って、スキャン化に伴う回路面積の増加を抑制できる。更に、スキャンF/Fの数が少なくて良いため、テスト時に入力するデータ量が少なくて済む。その結果、テスト工程を簡略化出来ると共に、テスト用の回路に必要とされるメモリ量を削減で出来るので、テストコストを削減できる。また、第1の実施形態で説明したように、F/Fの数を増加させて組み合わせ回路を単純化する主な目的は、半導体集積回路の動作速度の向上にある。従って、全てのF/Fをスキャン化させず、一部をバイパス化させたとしても、テスト動作に影響は無い。すなわち、故障検出率の低下を招くことは無い。
【0095】
更に上記第2の実施形態で説明したように、ATPGによってAsynchronousループの有無を確認し、その結果に基づいてスキャン化するかバイパス化するかを決定出来る。従って、ループが存在する組み合わせ回路が生じることを防止でき、半導体集積回路の動作信頼性を向上できる。
【0096】
また上記第3、第4の実施形態で説明したように、F/Fの動作を制御するクロック自体を、通常動作モードと出荷テストモードとで変化させることで、F/Fをバイパス化することが出来る。この場合には、上記説明の通り、バイパス化に必要な付加回路及び配線が非常に少なく済み、回路面積増加を更に抑制できる。
【0097】
図25乃至図28は、上記第1の実施形態の第1乃至第4変形例に係るバイパスF/Fの回路図である。図25に示す例では、図5に示す構成において、クロックド・インバータ70をクロックド・インバータ96に置換している。クロックド・インバータ96は、反転クロック/CLKと制御信号ST1のAND信号に応答して動作し、制御信号ST1=1の際には無条件でオープンとなる。
【0098】
図26に示す例では、図5に示す構成において、クロックド・インバータ97を追加している。クロックド・インバータ97は、入力端がクロックド・インバータ70の入力端に接続され、出力端がクロックド・インバータ70の出力端に接続されている。そしてクロックド・インバータ97は、制御信号ST1に応答して動作し、制御信号ST1=1の際にオープンとなる。
【0099】
図27に示す例では、図6に示す構成において、クロックド・インバータ70をクロックド・インバータ96に置換している。また図28に示す例では、図6に示す構成において、クロックド・インバータ97を追加している。
【0100】
上記のような図25乃至図28に示す構成であると、出荷テスト動作モードにおけるバイパスF/Fは、クロックCLK=“low”の場合であっても、入力端Dに入力された信号を出力端Qにバイパスさせる。
【0101】
なお、上記実施形態ではクロックCLKが“low”レベルでマスターラッチ回路がデータを取り込み、“high”レベルでスレーブラッチ回路がデータを取り込む場合を例に挙げて説明したが、逆の場合であっても勿論良い。また、上記実施形態は、スキャン化を行う半導体集積回路一般に応用でき、例えばメモリ混載のシステムLSIにも適用できることは言うまでもない。また本発明の実施形態は、特に段数の多い半導体集積回路であるほど効果が大きく、例えば画像処理系の半導体集積回路において効果がある。
【0102】
なお、本願発明は上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。
【0103】
【発明の効果】
以上説明したように、この発明によれば、故障検出率を低下させることなく回路面積の増加を防止できる半導体装置及びその設計方法を提供できる。
【図面の簡単な説明】
【図1】この発明の第1の実施形態に係る半導体集積回路のブロック図。
【図2】この発明の第1の実施形態に係るF/Fの構成を示すブロック図。
【図3】この発明の第1の実施形態に係るスキャンF/Fの構成の一例を示す回路図。
【図4】この発明の第1の実施形態に係るスキャンF/Fの構成の他の例を示す回路図。
【図5】この発明の第1の実施形態に係るバイパスF/Fの構成の一例を示す回路図。
【図6】この発明の第1の実施形態に係るバイパスF/Fの構成の他の例を示す回路図。
【図7】この発明の第1の実施形態に係る半導体集積回路におけるクロック、反転クロック、及び制御信号のタイミングチャート。
【図8】この発明の第1の実施形態に係る半導体集積回路のブロック図であり、シフト動作の様子を示す図。
【図9】この発明の第1の実施形態に係る半導体集積回路のブロック図であり、通常動作の様子を示す図。
【図10】この発明の第1の実施形態に係る半導体集積回路のブロック図であり、シフト動作の様子を示す図。
【図11】半導体集積回路のブロック図。
【図12】この発明の第1の実施形態に係る半導体集積回路のブロック図。
【図13】この発明の第2の実施形態に係る半導体集積回路のブロック図。
【図14】順序回路の一例を示す回路図。
【図15】この発明の第2の実施形態に係る半導体集積回路のスキャン化の流れを示すフローチャート。
【図16】この発明の第3の実施形態に係る半導体集積回路のブロック図。
【図17】F/Fの回路図。
【図18】この発明の第3の実施形態に係るスキャンF/F及びバイパスF/Fの回路図。
【図19】この発明の第3の実施形態に係る半導体集積回路における外部クロック、クロック、及び制御信号のタイミングチャート。
【図20】この発明の第4の実施形態に係る半導体集積回路のブロック図。
【図21】この発明の第4の実施形態に係るスキャンF/Fの構成の一例を示す回路図。
【図22】この発明の第4の実施形態に係るスキャンF/Fの構成の別の例を示す回路図。
【図23】この発明の第4の実施形態に係るバイパスF/Fの構成を示す回路図。
【図24】この発明の第4の実施形態に係る半導体集積回路におけるクロック及び制御信号のタイミングチャート。
【図25】この発明の第1の実施形態の第1変形例に係るバイパスF/Fの構成を示す回路図。
【図26】この発明の第1の実施形態の第2変形例に係るバイパスF/Fの構成を示す回路図。
【図27】この発明の第1の実施形態の第3変形例に係るバイパスF/Fの構成を示す回路図。
【図28】この発明の第1の実施形態の第4変形例に係るバイパスF/Fの構成を示す回路図。
【図29】従来のF/F及びスキャンF/Fのブロック図。
【符号の説明】
10…LSI
11〜15…入力ピン
16…出力ピン
20−1〜20−4…バイパスF/F
21、86…D−F/F
22−1、22−2…マルチプレクサ
23−1、23−2、40、41−1〜41−3、41、50…信号線
30−1〜30−7…スキャンF/F
60−1〜60−10…組み合わせ回路
70、71、73、74、76〜80、82、83、84、90、91、93、94、96、97、140、141、143、144、146〜148、150、151、153、154…クロックド・インバータ
72、75、81、92、95、142、145、149、152、155…インバータ
85…加算器
100〜130…クロック生成器
Claims (15)
- 第1、第2動作モードを有する半導体装置であって、
前記第2動作モード時に命令信号を伝送する信号線と、
前記第1動作モードにおいてはクロックに同期して動作し、前記第2動作モードにおいては前記命令信号に応じて動作する第1フリップフロップと、
前記第2動作モードにおいて、前記命令信号に応答して前記第1フリップフロップの入力を出力に伝搬させる切り替え回路と、
前記第1動作モードにおいては前記クロックに同期して動作し、前記第2動作モードにおいては、前記第1動作モードにおける入力信号の代わりにテストパターンを入力信号として選択し、前記クロックに同期して動作する第2フリップフロップと
を具備することを特徴とする半導体装置。 - 前記第1、第2フリップフロップは同一の構成を備え、
前記切り替え回路は、前記第2動作モードにおいて、前記命令信号に応答して前記クロックを制御し、
前記第1フリップフロップは、前記第2動作モードにおいて、前記切り替え回路によって制御された前記クロックに同期して動作することにより、入力が出力にバイパスされる状態となるよう制御される
ことを特徴とする請求項1記載の半導体装置。 - 前記第1動作モードにおいて、クロックに同期して動作する第3フリップフロップを更に備え、
前記切り替え回路は、前記第2動作モードにおいて、前記命令信号に応じて前記第1、第3フリップフロップ各々の入力を出力に伝搬させる
ことを特徴とする請求項1記載の半導体装置。 - 前記第1乃至第3フリップフロップは同一の構成を備え、
前記切り替え回路は、前記第2動作モードにおいて、前記命令信号に応答して前記クロックを制御し、
前記第1、第3フリップフロップは、前記第2動作モードにおいて、前記切り替え回路によって制御された前記クロックに同期して動作することにより、入力が出力にバイパスされる状態となるよう制御される
ことを特徴とする請求項3記載の半導体装置。 - 前記第1、第2フリップフロップ間に設けられた組み合わせ回路を更に備え、
前記第2動作モードにおいて、前記第2フリップフロップは前記テストパターンを前記組み合わせ回路へ入力し、
前記組み合わせ回路は前記テストパターンを基に論理演算を行い、
前記第1フリップフロップは、前記組み合わせ回路において得られた論理演算結果を前記命令信号に応じて出力する
ことを特徴とする請求項1乃至4いずれか1項記載の半導体装置。 - 第1、第2動作モードを有する半導体装置であって、
前記第1動作モードにおいては順序回路として動作し、前記第2動作モードにおいては組み合わせ回路として動作する第1半導体回路と、
前記第1半導体回路内に設けられた第1フリップフロップと、
前記第2動作モードにおいては、前記第2動作モード時に入力される命令信号に応じて前記第1フリップフロップの入力を出力に伝搬させ、前記第1動作モードにおいては、クロックに同期して前記第1フリップフロップの入力を出力に伝搬させることにより、前記第1半導体回路の前記順序回路または組み合わせ回路としての動作を切り替える切り替え回路と、
前記第1動作モードにおいては前記クロックに同期して動作し、前記第2動作モードにおいては、前記第1動作モードにおける入力信号の代わりにテストパターンを入力信号として選択し、前記クロックに同期しつつ前記テストパターンを前記第1半導体回路に入力する第2フリップフロップと
を具備することを特徴とする半導体装置。 - 前記第1、第2フリップフロップは同一の構成を備え、
前記切り替え回路は、前記第2動作モードにおいて、前記命令信号に応答して前記クロックを制御し、
前記第1半導体回路は、前記第2動作モードにおいて、前記第1フリップフロップが前記切り替え回路によって制御された前記クロックに同期して動作することにより、順序回路から組み合わせ回路としての動作に切り替わる
ことを特徴とする請求項6記載の半導体装置。 - 前記第1動作モードにおいては順序回路として動作し、前記第2動作モードにおいては組み合わせ回路として動作する第2半導体回路と、
前記第2半導体回路内に設けられた第3フリップフロップとを更に備え、
前記切り替え回路は、前記第1、第3フリップフロップの動作を制御することにより、前記第1、第2半導体回路の前記動作を切り替える
ことを特徴とする請求項6記載の半導体装置。 - 前記第2動作モードにおいて、前記第2フリップフロップは前記第1半導体回路へ前記テストパターンを入力し、
前記第1半導体回路は前記第2フリップフロップに格納された前記テストパターンを基に論理演算を行う
ことを特徴とする請求項6乃至8いずれか1項記載の半導体装置。 - 前記切り替え回路は、前記第1フリップフロップの一部である
ことを特徴とする請求項1または6記載の半導体装置。 - 前記第1フリップフロップは、マスターラッチ回路及びスレーブラッチ回路を含むマスタースレーブ型であり、
前記切り替え回路は、前記スレーブラッチ回路の転送ゲートに並列に接続され、且つ前記第2動作モードにおいて、前記転送ゲートの動作を制御する前記クロックと逆相の前記命令信号に応答して動作するインバータを含む
ことを特徴とする請求項1、6、10いずれか1項記載の半導体装置。 - 前記第1フリップフロップは、マスターラッチ回路及びスレーブラッチ回路を含むマスタースレーブ型であり、
前記切り替え回路は、前記第2動作モードにおいて、前記マスターラッチ回路及びスレーブラッチ回路に入力される前記クロックを同相にする
ことを特徴とする請求項1乃至10いずれか1項記載の半導体装置。 - 前記第1フリップフロップは、入力端に接続された転送ゲートと、前記転送ゲートの後段に接続されたラッチ回路とを含み、
前記切り替え回路は、前記第2動作モードにおいて、前記転送ゲートの動作を制御する前記クロックを一定レベルに固定する
ことを特徴とする請求項1乃至10いずれか1項記載の半導体装置。 - 全てのフリップフロップをバイパス化しつつ、半導体集積回路を設計するステップと、
前記半導体集積回路の動作テストを行い、内部に前記フリップフロップを含むループ回路が存在するか否かを判定するステップと、
前記ループ回路が存在すると判定された場合、前記ループ回路に含まれる少なくともいずれかの前記フリップフロップをスキャン化することで、前記ループ回路を順序回路にするステップと
を具備することを特徴とする半導体装置の設計方法。 - 前記フリップフロップをバイパス化するステップは、前記フリップフロップが、クロックに同期して動作する第1動作モードと、テスト時に入力される命令信号に応じて入力を出力に伝搬させる第2動作モードとを有するようにする
ことを特徴とする請求項14記載の半導体装置の設計方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002316065A JP2004150933A (ja) | 2002-10-30 | 2002-10-30 | 半導体装置及びその設計方法 |
US10/325,740 US20040088659A1 (en) | 2002-10-30 | 2002-12-23 | Semiconductor device having scan flip-flop and design method therefor |
TW092106949A TWI223085B (en) | 2002-10-30 | 2003-03-27 | Semiconductor device and its design method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002316065A JP2004150933A (ja) | 2002-10-30 | 2002-10-30 | 半導体装置及びその設計方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004150933A true JP2004150933A (ja) | 2004-05-27 |
Family
ID=32171211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002316065A Abandoned JP2004150933A (ja) | 2002-10-30 | 2002-10-30 | 半導体装置及びその設計方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20040088659A1 (ja) |
JP (1) | JP2004150933A (ja) |
TW (1) | TWI223085B (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007187458A (ja) * | 2006-01-11 | 2007-07-26 | Nec Electronics Corp | スキャンフリップフロップ回路、及び、半導体集積回路装置 |
JP2009253023A (ja) * | 2008-04-07 | 2009-10-29 | Oki Semiconductor Co Ltd | 半導体集積回路の設計方法 |
JP2011007566A (ja) * | 2009-06-24 | 2011-01-13 | Fujitsu Semiconductor Ltd | 半導体集積回路及び電子機器 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7237164B1 (en) * | 2004-04-15 | 2007-06-26 | Marvell International Ltd. | Area optimized edge-triggered flip-flop for high-speed memory dominated design |
KR20050112972A (ko) * | 2004-05-28 | 2005-12-01 | 삼성전자주식회사 | 스캔 플립-플롭 회로 및 그를 포함한 반도체 집적 회로 장치 |
US7555687B2 (en) * | 2005-07-20 | 2009-06-30 | Texas Instruments Incorporated | Sequential scan technique for testing integrated circuits with reduced power, time and/or cost |
US7707449B2 (en) * | 2006-03-29 | 2010-04-27 | Agere Systems Inc. | Systems and methods for low power multi-rate data paths |
JP5211310B2 (ja) * | 2007-03-07 | 2013-06-12 | セミコンダクター・コンポーネンツ・インダストリーズ・リミテッド・ライアビリティ・カンパニー | 半導体集積回路 |
US8589749B1 (en) | 2011-05-31 | 2013-11-19 | Apple Inc. | Memory content protection during scan dumps and memory dumps |
US8495443B1 (en) | 2011-05-31 | 2013-07-23 | Apple Inc. | Secure register scan bypass |
US8639981B2 (en) | 2011-08-29 | 2014-01-28 | Apple Inc. | Flexible SoC design verification environment |
US8788886B2 (en) | 2011-08-31 | 2014-07-22 | Apple Inc. | Verification of SoC scan dump and memory dump operations |
US20160004617A1 (en) * | 2014-07-03 | 2016-01-07 | Qualcomm Incorporated | Automatic test pattern generation for a reconfigurable instruction cell array |
-
2002
- 2002-10-30 JP JP2002316065A patent/JP2004150933A/ja not_active Abandoned
- 2002-12-23 US US10/325,740 patent/US20040088659A1/en not_active Abandoned
-
2003
- 2003-03-27 TW TW092106949A patent/TWI223085B/zh not_active IP Right Cessation
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007187458A (ja) * | 2006-01-11 | 2007-07-26 | Nec Electronics Corp | スキャンフリップフロップ回路、及び、半導体集積回路装置 |
JP2009253023A (ja) * | 2008-04-07 | 2009-10-29 | Oki Semiconductor Co Ltd | 半導体集積回路の設計方法 |
JP2011007566A (ja) * | 2009-06-24 | 2011-01-13 | Fujitsu Semiconductor Ltd | 半導体集積回路及び電子機器 |
Also Published As
Publication number | Publication date |
---|---|
TWI223085B (en) | 2004-11-01 |
TW200406589A (en) | 2004-05-01 |
US20040088659A1 (en) | 2004-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6966021B2 (en) | Method and apparatus for at-speed testing of digital circuits | |
US7843218B1 (en) | Data latch with structural hold | |
US8065549B2 (en) | Scan-based integrated circuit having clock frequency divider | |
US7038494B2 (en) | Scan chain element and associated method | |
JP2522140B2 (ja) | 論理回路 | |
JP2004150933A (ja) | 半導体装置及びその設計方法 | |
JP2007187458A (ja) | スキャンフリップフロップ回路、及び、半導体集積回路装置 | |
US7436211B2 (en) | Transparent latch circuit | |
JP2002289776A (ja) | 半導体装置 | |
US20090240996A1 (en) | Semiconductor integrated circuit device | |
JP4702137B2 (ja) | スキャンテスト用フリップフロップ | |
US5848075A (en) | Test device employing scan path having circuitry at switches between a scan in signal transmitted and previously held at a predetermined clock timing | |
CN116388737A (zh) | 用于转换故障测试的时钟整形器电路 | |
JP3699019B2 (ja) | スキャン用フリップフロップおよびスキャンテスト回路 | |
US11519963B2 (en) | Semiconductor integrated circuit having scan chains sequentially supplied with a clock signal | |
JP4662520B2 (ja) | スキャンテスト回路およびスキャンテスト方法、並びに半導体集積回路 | |
JP2002139545A (ja) | スキャンパス回路 | |
JP4416469B2 (ja) | 半導体集積回路およびその設計方法 | |
US11508452B2 (en) | Circuit and associated chip | |
JP2009175154A (ja) | 半導体集積回路およびその設計方法 | |
JP2003057307A (ja) | スキャンフリップフロップ回路およびスキャン設計方法 | |
JP2004037264A (ja) | スキャン機能付きフリップフロップ回路およびスキャンテスト回路 | |
CN114441930A (zh) | 电路和相关芯片 | |
JPH10307167A (ja) | 論理集積回路のテスト装置 | |
JPH11101859A (ja) | 半導体装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20041019 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041026 |
|
A762 | Written abandonment of application |
Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20041227 |