(57)【特許請求の範囲】
【請求項１】
相互にスキャンチェーン接続された複数のフリップフロップと、
相互に直列接続され、かつ任意のフリップフロップの出力が初段に入力される構成とした複数段の論理回路と、
前記複数段の論理回路内に接続され、前段の論理回路の出力を次段の論理回路に出力するパルスラッチと、
を備えている半導体集積回路。
【請求項２】
前記複数段の論理回路における最終段の出力を、スキャンチェーンからの入力を選択するセレクタを通じて、前記任意のフリップフロップに入力するように構成されている請求項１記載の半導体集積回路。
【請求項３】
複数の論理回路と、前記各論理回路の入力に個別的に接続された複数の入力側パルスラッチとを備え、前記入力側パルスラッチ群におけるパルスラッチ２つずつをそれぞれマスターラッチ・スレイブラッチの関係で１つのフリップフロップとして構成した上でそれぞれをスキャンチェーンでつなぎ、通常モード時には前記マスターラッチと前記スレイブラッチとに共通のクロックを供給し、テストモード時には前記マスターラッチと前記スレイブラッチとに正転反転の関係のクロックを供給するように構成してある半導体集積回路。
【請求項４】
複数の論理回路と、前記各論理回路の出力に個別的に接続された複数の出力側パルスラッチとを備え、前記出力側パルスラッチ群におけるパルスラッチ２つずつをそれぞれマスターラッチ・スレイブラッチの関係で１つのフリップフロップとして構成した上でそれぞれをスキャンチェーンでつなぎ、通常モード時には前記マスターラッチと前記スレイブラッチとに共通のクロックを供給し、テストモード時には前記マスターラッチと前記スレイブラッチとに正転反転の関係のクロックを供給するように構成してある半導体集積回路。
【請求項５】
複数の論理回路と、前記各論理回路の入力に個別的に接続された複数の入力側パルスラッチと、前記各論理回路の出力に個別的に接続された複数の出力側パルスラッチとを備え、前記入力側パルスラッチ群におけるパルスラッチ２つずつおよび前記出力側パルスラッチ群におけるパルスラッチ２つずつをそれぞれマスターラッチ・スレイブラッチの関係で１つのフリップフロップとして構成した上でそれぞれをスキャンチェーンでつなぎ、通常モード時には前記マスターラッチと前記スレイブラッチとに共通のクロックを供給し、テストモード時には前記マスターラッチと前記スレイブラッチとに正転反転の関係のクロックを供給するように構成してある半導体集積回路。
【請求項６】
前記各スレイブラッチをなすパルスラッチに対して、その出力端子と反転出力端子のいずれかを選択するセレクタが設けられている請求項５から請求項７までのいずれかに記載の半導体集積回路。
【請求項７】
前記各マスターラッチをなすパルスラッチに対して、その出力端子と反転出力端子のいずれかを選択するセレクタが設けられている請求項３から請求項５までのいずれかに記載の半導体集積回路。
【請求項８】
前記入力側パルスラッチの初段にスキャンテストパターンの偶数ビット目を入力するように構成してあるとともに、
前記スキャンテストパターンの奇数ビット目と偶数ビット目の排他的論理和の結果を判定データとして保持し、かつ前記２つのパルスラッチからなるフリップフロップの列に対応して前記判定データをスキャンシフトする判定用フリップフロップの列を備え、
前記入力側パルスラッチの出力側のセレクタを前記判定用フリップフロップによる判定データに基づいて制御するように構成されている請求項６に記載の半導体集積回路。
【請求項９】
前記入力側パルスラッチの初段にスキャンテストパターンの偶数ビット目を入力するように構成してあるとともに、
前記２つの出力側パルスラッチからなるフリップフロップにおける前記２つの出力側パルスラッチの出力データの排他的論理和の結果を判定データとして保持し、かつ前記２つのパルスラッチからなるフリップフロップの列に対応して前記判定データをスキャンシフトする判定用フリップフロップの列を備え、
前記出力側パルスラッチの出力側のセレクタを前記判定用フリップフロップによる判定データに基づいて制御するように構成されている請求項６に記載の半導体集積回路。
【請求項１０】
請求項８の判定用フリップフロップと請求項９の判定用フリップフロップとが共用構成とされていることを特徴とする半導体集積回路。
【請求項１１】
マスターラッチとスレイブラッチの組み合わせでフリップフロップを構成し、通常動作時には前記マスターラッチを不動作にするとともに前記スレイブラッチに直接にデータ入力するように構成され、スキャンテスト時には前記マスターラッチも動作させて前記マスターラッチから前記スレイブラッチにデータをシフトさせるように構成されている半導体集積回路。
【請求項１２】
前記マスターラッチは、そのイネーブル端子にクロック信号の論理反転と固定値０を選択するセレクタが接続され、前記スレイブラッチは、そのデータ入力端子に直接のデータ入力と前記マスターラッチのデータ出力を選択するセレクタが接続されている請求項１１に記載の半導体集積回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体装置におけるデータ保持回路のフリップフロップとラッチにかかわり、特には、低消費電力、低電圧動作を図る技術に関するものである。
【０００２】
【従来の技術】
従来の半導体集積回路について、図７を用いて説明する。
【０００３】
図７において、００１，００２，００３，００４，０１１，０１２，０１３，０１４はそれぞれフリップフロップであり、スキャンチェーンによってつながれている。Ｃｋｔ００１，Ｃｋｔ００２，Ｃｋｔ００３，Ｃｋｔ００４はそれぞれ論理回路である。
【０００４】
スキャンテストパターン挿入時は、フリップフロップ００１，００２，００３，００４へ順番にスキャンパターンをシフトしていく。
【０００５】
次に、スキャンキャプチャー動作によって、フリップフロップ００１，００２，００３，００４に挿入されているスキャンパターンを論理回路Ｃｋｔ００１，Ｃｋｔ００２，Ｃｋｔ００３，Ｃｋｔ００４を介してフリップフロップ０１１，０１２，０１３，０１４へ転送する。
【０００６】
次に、フリップフロップ０１１，０１２，０１３，０１４の出力をスキャンチェーンを通じて信号Ｓｃａｎ＿ｏｕｔ０００として出力する。
【０００７】
【発明が解決しようとする課題】
上記の従来技術においては、フリップフロップをシフトレジスタとしてつなぐことにより、スキャンテスト時のスキャンテストパターンを各フリップフロップに転送している。
【０００８】
しかし、スキャンテストパターンの保持および転送にフリップフロップが使用されており、フリップフロップはトランジスタ数が多い構成であるため、消費電力が大きく、また占有面積も大きいという問題がある。一般的に、フリップフロップは、マスターラッチとスレイブラッチの組み合わせであり、パルスラッチ２個分に相当する。
【０００９】
そこで、消費電力を低減し、占有面積を小面積化するには、フリップフロップに代えてパルスラッチを用いればよいと考えられる。
【００１０】
しかし、パルスラッチを用いる場合には、スキャンテスト時のテストパターンのシフト動作において、ラッチ間の遅延時間が短いことに起因して、データの抜けの問題が生じる。
【００１１】
本発明は、このような事情に鑑みて創案されたものであり、消費電力の低減と小面積化を図りながらも、データの抜けの問題を解消することの可能な半導体集積回路を提供することを目的としている。
【００１２】
【課題を解決するための手段】
（１）  半導体集積回路についての本発明は、次のような手段を講じることにより、上記の課題を解決する。すなわち、相互にスキャンチェーン接続された複数のフリップフロップと、相互に直列接続され、かつ任意のフリップフロップの出力が初段に入力される構成とした複数段の論理回路と、前記複数段の論理回路内に接続され、前段の論理回路の出力を次段の論理回路に出力するパルスラッチとを備えた構成としている。  換言すれば、各論理回路の入力側のレジスタとして複数の入力側パルスラッチを配するとともに、各入力側パルスラッチのさらに入力側に複数のフリップフロップを配し、それらフリップフロップをスキャンチェーン接続して、スキャンテストパターンを供給するように構成してある。
【００１３】
上記構成においては、各論理回路の入力側において、論理回路に対して入力すべきデータの一時保持の機能のために、フリップフロップではなく、パルスラッチを採用している。パルスラッチはフリップフロップに比べて構成トランジスタ数が少ない。したがって、消費電力の低減と、占有面積の小面積化を図ることができる。
【００１４】
それでいて、スキャンテスト時のテストパターンのシフト動作を行わせるにおいては、フリップフロップを採用し、フリップフロップをシフトレジスタとしてつなぐことにより、テストパターンを各フリップフロップにシフトし、その上で各フリップフロップから入力側パルスラッチに転送する。スキャンチェーンにおけるフリップフロップ間の遅延量はパルスラッチに比べて大きいので、パルスラッチの場合に見られるようなラッチ間の遅延時間が短いことに起因するデータの抜けの問題については、これを回避することができる。
【００１５】
テストパターンのシフト動作のためのレジスタであるフリップフロップは、論理回路列の複数段に共用することが可能であり、パルスラッチより構成が複雑なフリップフロップを追加することによる消費電力増、面積増は、大きいものではない。
【００１６】
論理回路にデータを入力するためのレジスタの個数は論理回路の個数に匹敵する。そのレジスタの構成を簡略化できるので、半導体集積回路の全体では、消費電力削減と小面積化の効果は大きなものとなる。
【００１７】
以上の相乗により、消費電力の低減と小面積化を図りながらも、データの抜けの問題を解消することができる。
【００１８】
（２）別の態様の本発明は、次のような手段を講じることにより、上記の課題を解決する。すなわち、前記複数段の論理回路における最終段の出力を、スキャンチェーンからの入力を選択するセレクタを通じて、前記任意のフリップフロップに入力するように構成されている。
【００２３】
（２）別の解決手段として、本発明は、次のように構成する。複数の論理回路と、前記各論理回路の入力に個別的に接続された複数の入力側パルスラッチとを備え、前記入力側パルスラッチ群におけるパルスラッチ２つずつをそれぞれマスターラッチ・スレイブラッチの関係で１つのフリップフロップとして構成した上でそれぞれをスキャンチェーンでつないである。そして、通常モード時には前記マスターラッチと前記スレイブラッチとに共通のクロックを供給し、テストモード時には前記マスターラッチと前記スレイブラッチとに正転反転の関係のクロックを供給するように構成してある。
【００２４】
（３）別の態様の本発明は、次のような手段を講じることにより、上記の課題を解決する。すなわち、複数の論理回路と、前記各論理回路の出力に個別的に接続された複数の出力側パルスラッチとを備え、前記出力側パルスラッチ群におけるパルスラッチ２つずつをそれぞれマスターラッチ・スレイブラッチの関係で１つのフリップフロップとして構成した上でそれぞれをスキャンチェーンでつないである。そして、通常モード時には前記マスターラッチと前記スレイブラッチとに共通のクロックを供給し、テストモード時には前記マスターラッチと前記スレイブラッチとに正転反転の関係のクロックを供給するように構成してある。
【００２５】
上記（２）は入力側について記述し、上記（３）は出力側について記述している。この場合、クロックを２系統用意し、パルスラッチの２つをマスターラッチ・スレイブラッチの関係で１つのフリップフロップとして機能させている。したがって、テストパターンのシフト動作において、パルスラッチの場合に見られるようなラッチ間の遅延時間が短いことに起因するデータの抜けの問題については、これを回避することができる。加えて、実際にはフリップフロップを用いていないので、消費電力低減と小面積化とをさらに促進することができる。
【００２６】
（４）また、別の態様の本発明は、次のような手段を講じることにより、上記の課題を解決する。すなわち、複数の論理回路と、前記各論理回路の入力に個別的に接続された複数の入力側パルスラッチと、前記各論理回路の出力に個別的に接続された複数の出力側パルスラッチとを備え、前記入力側パルスラッチ群におけるパルスラッチ２つずつおよび前記出力側パルスラッチ群におけるパルスラッチ２つずつをそれぞれマスターラッチ・スレイブラッチの関係で１つのフリップフロップとして構成した上でそれぞれをスキャンチェーンでつないである。そして、通常モード時には前記マスターラッチと前記スレイブラッチとに共通のクロックを供給し、テストモード時には前記マスターラッチと前記スレイブラッチとに正転反転の関係のクロックを供給するように構成してある。これは、上記（２），（３）を組み合わせて記述するものであり、データ抜けを回避しつつ消費電力低減および小面積化をさらに進めることができる。
【００２７】
（５）上記において好ましい態様は、前記の各スレイブラッチをなすパルスラッチに対して、その出力端子と反転出力端子のいずれかを選択するセレクタが設けられていることである。
【００２８】
（６）別の好ましい態様は、前記の各マスターラッチをなすパルスラッチに対して、その出力端子と反転出力端子のいずれかを選択するセレクタが設けられていることである。
【００２９】
上記の（５）はスレイブラッチに関して記述し、上記の（６）はマスターラッチに関して記述している。２つのパルスラッチをフリップフロップとするためにマスターラッチとスレイブラッチとして機能させることから、各パルスラッチのいずれにおいてもその出力端子のみから出力させる場合には、マスターラッチの出力とスレイブラッチの出力とが同じになってしまい、テストパターンに制限が加わる。このような制限が不都合な場合に、出力端子と反転出力端子をセレクタで選択するように構成すると、テストパターンの制限を解消することができる。
【００３０】
（７）  さらに好ましい態様に、次のものがある。すなわち、上記の（５）のスレイブラッチの出力にセレクタを設けた半導体集積回路において、前記入力側パルスラッチの初段にスキャンテストパターンの偶数ビット目を入力するように構成する。そして、前記スキャンテストパターンの奇数ビット目と偶数ビット目の排他的論理和の結果を判定データとして保持し、かつ前記２つのパルスラッチからなるフリップフロップの列に対応して前記判定データをスキャンシフトする判定用フリップフロップの列を備え、前記入力側パルスラッチの出力側のセレクタを前記判定用フリップフロップによる判定データに基づいて制御する。
【００３１】
（８）あるいは、次のものがある。すなわち、上記の（５）のスレイブラッチの出力にセレクタを設けた半導体集積回路において、前記入力側パルスラッチの初段にスキャンテストパターンの偶数ビット目を入力するように構成する。そして、前記２つの出力側パルスラッチからなるフリップフロップにおける前記２つの出力側パルスラッチの出力データの排他的論理和の結果を判定データとして保持し、かつ前記２つのパルスラッチからなるフリップフロップの列に対応して前記判定データをスキャンシフトする判定用フリップフロップの列を備え、前記出力側パルスラッチの出力側のセレクタを前記判定用フリップフロップによる判定データに基づいて制御する。
【００３２】
これら（７），（８）によれば、特定のテストパターンによるテストをデータ抜けなく実現することができる。
【００３３】
（９）さらに好ましい態様は、上記の（７）の判定用フリップフロップと（８）の判定用フリップフロップとが共用構成とされていることである。さらなる小面積化を進めることができる。
【００３４】
（１０）論理回路に対するデータ入力またはデータ出力のためのレジスタについて、次のように構成するとよい。すなわち、マスターラッチとスレイブラッチの組み合わせでフリップフロップを構成する。そして、通常動作時には、前記マスターラッチを不動作にするとともに前記スレイブラッチに直接にデータ入力する。また、スキャンテスト時には、前記マスターラッチも動作させて前記マスターラッチから前記スレイブラッチにデータをシフトさせる。
【００３５】
これによれば、通常動作モードにおいてマスターラッチを不動作とし、稼動しているトランジスタ数を少なくすることによって低消費電力を実現できる。
【００３６】
（１１）上記において、好ましい態様として、前記マスターラッチが、そのイネーブル端子にクロック信号の論理反転と固定値０を選択するセレクタが接続され、前記スレイブラッチが、そのデータ入力端子に直接のデータ入力と前記マスターラッチのデータ出力を選択するセレクタが接続されている構成がある。これによれば、簡単な構成で低消費電力と小面積化を実現できる。
【００３７】
【発明の実施の形態】
以下、本発明にかかわる半導体集積回路の実施の形態について図面に基づいて詳細に説明する。
【００３８】
（実施の形態１）
本発明の実施の形態１のスキャン回路について図１を用いて説明する。図１は実施の形態１の半導体集積回路の構成を示す回路図である。
【００３９】
図１において、符号の１１１，１１２，１１３，１１４はイネーブル端子Ｇに第１のクロック信号Ｃｌｋ１０１を入力する入力側パルスラッチ、１２１，１２２，１２３，１２４はイネーブル端子Ｇに第２のクロック信号Ｃｌｋ１０２を入力する出力側パルスラッチであり、Ｃｋｔ１１１，Ｃｋｔ１１２，Ｃｋｔ１１３，Ｃｋｔ１１４はそれぞれ入力側パルスラッチ１１１，１１２，１１３，１１４と出力側パルスラッチ１２１，１２２，１２３，１２４との間に介挿された論理回路である。１０１，１０２，１０３，１０４は新たな構成要素としてのフリップフロップであり、そのイネーブル端子Ｇに第３のクロック信号Ｃｌｋ１００を入力する。Ｃｋｔ１０１，Ｃｋｔ１０２，Ｃｋｔ１０３，Ｃｋｔ１０４はそれぞれフリップフロップ１０１，１０２，１０３，１０４と入力側パルスラッチ１１１，１１２，１１３，１１４との間に介挿された初段の論理回路である。
【００４０】
フリップフロップ１０１の入力端子Ｄに接続のセレクタＳ１には、スキャンテストパターン入力端子Ｓｃａｎ＿ｉｎ１００とパルスラッチ１１１の出力端子Ｑとパルスラッチ１２１の出力端子Ｑが入力されている。フリップフロップ１０２の入力端子Ｄに接続のセレクタＳ２には、フリップフロップ１０１の出力端子Ｑとパルスラッチ１１２の出力端子Ｑとパルスラッチ１２２の出力端子Ｑが入力されている。フリップフロップ１０３の入力端子Ｄに接続のセレクタＳ３には、フリップフロップ１０２の出力端子Ｑとパルスラッチ１１３の出力端子Ｑとパルスラッチ１２３の出力端子Ｑが入力されている。フリップフロップ１０４の入力端子Ｄに接続のセレクタＳ４には、フリップフロップ１０３の出力端子Ｑとパルスラッチ１１４の出力端子Ｑとパルスラッチ１２４の出力端子Ｑが入力されている。
【００４１】
入力側パルスラッチ１１１，１１２，１１３，１１４の入力端子Ｄに接続のセレクタＳ１１，Ｓ１２，Ｓ１３，Ｓ１４にはそれぞれ、論理回路Ｃｋｔ１０１，Ｃｋｔ１０２，Ｃｋｔ１０３，Ｃｋｔ１０４の出力端子とフリップフロップ１０１，１０２，１０３，１０４の出力端子Ｑとが入力されている。
【００４２】
出力側パルスラッチ１２１，１２２，１２３，１２４の入力端子Ｄに接続のセレクタＳ２１，Ｓ２２，Ｓ２３，Ｓ２４にはそれぞれ、最終段の論理回路Ｃｋｔ１１１，Ｃｋｔ１１２，Ｃｋｔ１１３，Ｃｋｔ１１４の出力端子と入力側パルスラッチ１１１，１１２，１１３，１１４の出力端子Ｑとが入力されている。初段の論理回路Ｃｋｔ１０１，Ｃｋｔ１０２，Ｃｋｔ１０３，Ｃｋｔ１０４と最終段の論理回路Ｃｋｔ１１１，Ｃｋｔ１１２，Ｃｋｔ１１３，Ｃｋｔ１１４との間には、入力側パルスラッチ１１１，１１２，１１３，１１４が接続されている。
【００４３】
フリップフロップ１０４の出力端子Ｑはテスト結果の出力端子Ｓｃａｎ＿ｏｕｔ１００となっている。
【００４４】
セレクタＳ１〜Ｓ４，Ｓ１１〜Ｓ１４，Ｓ２１〜Ｓ２４は、それぞれ図示しない制御信号によって制御されるように構成されている。
【００４５】
次に、上記のように構成された半導体集積回路の動作を説明する。
【００４６】
（ａ）  まず、通常動作時の動作を説明する。
【００４７】
第３のクロック信号Ｃｌｋ１００を一定レベルの固定状態としてフリップフロップ１０１，１０２，１０３，１０４をインアクティブとしておく。
【００４８】
第１のクロック信号Ｃｌｋ１０１と第２のクロック信号Ｃｌｋ１０２には同じパルスクロック信号を供給する。入力側パルスラッチ１１１，１１２，１１３，１１４のそれぞれの入力端子Ｄには、セレクタＳ１１，Ｓ１２，Ｓ１３，Ｓ１４を介して論理回路Ｃｋｔ１０１，Ｃｋｔ１０２，Ｃｋｔ１０３，Ｃｋｔ１０４から出力されるデータＤ１０１，Ｄ１０２，Ｄ１０３，Ｄ１０４が入力される。
【００４９】
パルスラッチ１１１，１１２，１１３，１１４の出力はそれぞれ、論理回路Ｃｋｔ１１１，Ｃｋｔ１１２，Ｃｋｔ１１３，Ｃｋｔ１１４を通過し、所要の論理演算が施された後に、セレクタＳ２１，Ｓ２２，Ｓ２３，Ｓ２４を介して出力側パルスラッチ１２１，１２２，１２３，１２４の入力端子Ｄに入力される。
【００５０】
出力側パルスラッチ１２１，１２２，１２３，１２４のそれぞれの出力端子ＱからはデータＱ１０１，Ｑ１０２，Ｑ１０３，Ｑ１０４が出力される。
【００５１】
（ｂ）  次に、テストパターン挿入時の動作を説明する。
【００５２】
（１）  まず、論理回路Ｃｋｔ１１１，Ｃｋｔ１１２，Ｃｋｔ１１３，Ｃｋｔ１１４の動作テストを行う場合について説明する。
【００５３】
（１−１）  第３のクロック信号Ｃｌｋ１００を所定のクロックとする。
【００５４】
第３のクロック信号Ｃｌｋ１００の第１回目のクロックで、テストパターン入力端子Ｓｃａｎ＿ｉｎ１００からテストパターン１ビット目をセレクタＳ１を介してフリップフロップ１０１へ入力する。
【００５５】
第２回目のクロックで、フリップフロップ１０１の出力であるテストパターン１ビット目をセレクタＳ２を介してフリップフロップ１０２へシフト入力し、テストパターン入力端子Ｓｃａｎ＿ｉｎ１００からテストパターン２ビット目をフリップフロップ１０１へシフト入力する。
【００５６】
第３回目のクロックで、フリップフロップ１０２の出力であるテストパターン１ビット目をセレクタＳ３を介してフリップフロップ１０３へシフト入力し、フリップフロップ１０１の出力であるテストパターン２ビット目をフリップフロップ１０２へシフト入力し、テストパターン入力端子Ｓｃａｎ＿ｉｎ１００からテストパターン３ビット目をフリップフロップ１０１へ入力する。
【００５７】
第４回目のクロックで、フリップフロップ１０３の出力であるテストパターン１ビット目をセレクタＳ４を介してフリップフロップ１０４へシフト入力し、フリップフロップ１０２の出力であるテストパターン２ビット目をセレクタＳ３を介してフリップフロップ１０３へシフト入力し、フリップフロップ１０１の出力であるテストパターン３ビット目をセレクタＳ２を介してフリップフロップ１０２へシフト入力し、テストパターン入力端子Ｓｃａｎ＿ｉｎ１００よりテストパターン４ビット目をフリップフロップ１０１へ入力する。このようにして、テストパターンをシフトしていく。
【００５８】
テストパターンのシフト動作は、フリップフロップで行うので、データ抜けのおそれがない。
【００５９】
（１−２）  シフト動作が一通り終了した段階で、第１のクロック信号Ｃｌｋ１０１をイネーブルし、フリップフロップ１０１，１０２，１０３，１０４それぞれの出力をセレクタＳ１１，Ｓ１２，Ｓ１３，Ｓ１４を介して入力側パルスラッチ１１１，１１２，１１３，１１４へ、論理回路を介することなく、直接に転送する。これによって、入力側パルスラッチ１１１，１１２，１１３，１１４へのテストパターンの供給を終了する。
【００６０】
（１−３）  次に、キャプチャー動作時の動作を説明する。
【００６１】
シフト動作によって入力側パルスラッチ１１１，１１２，１１３，１１４へ供給されたテストパターンをそれぞれ論理回路Ｃｋｔ１１１，Ｃｋｔ１１２，Ｃｋｔ１１３，Ｃｋｔ１１４を通し、所要の論理演算が施された後に、出力側パルスラッチ１２１，１２２，１２３，１２４へ伝播することによってキャプチャー動作を終了する。
【００６２】
（１−４）  最後に、キャプチャー動作の結果を確かめるために、第２のクロック信号Ｃｌｋ１０２をイネーブルし、出力側パルスラッチ１２１，１２２，１２３，１２４の出力をそれぞれセレクタＳ１，Ｓ２，Ｓ３，Ｓ４を介してフリップフロップ１０１，１０２，１０３，１０４への入力とした後、フリップフロップ１０１，１０２，１０３，１０４の出力をシフト動作によって出力端子Ｓｃａｎ＿ｏｕｔ１００より出力する。これによって、一連のスキャンテストを終了する。
【００６３】
（２）  論理回路Ｃｋｔ１０１，Ｃｋｔ１０２，Ｃｋｔ１０３，Ｃｋｔ１０４の動作テストを行う場合について説明する。
【００６４】
（２−１）  上記（１−１）のシフト動作が一通り終了した段階で第１のクロック信号Ｃｌｋ１０１をイネーブルし、フリップフロップ１０１，１０２，１０３，１０４の出力がそれぞれ論理回路Ｃｋｔ１０１，Ｃｋｔ１０２，Ｃｋｔ１０３，Ｃｋｔ１０４を通過し、所要の論理演算が施された後に、セレクタＳ１１，Ｓ１２，Ｓ１３，Ｓ１４を介して入力側パルスラッチ１１１，１１２，１１３，１１４へ入力する（キャプチャー動作）。
【００６５】
（２−２）  次に、上記のキャプチャー動作の結果を確かめるために、入力側パルスラッチ１１１，１１２，１１３，１１４の出力をセレクタＳ１，Ｓ２，Ｓ３，Ｓ４を介してフリップフロップ１０１，１０２，１０３，１０４への入力とした後、フリップフロップ１０１，１０２，１０３，１０４の出力をシフト動作によって出力端子Ｓｃａｎ＿ｏｕｔ１００より出力する。これによって、一連のスキャンテストを終了する。
【００６６】
（３）  別の処理として、上記の（２）と（１）との組み合わせもある。
【００６７】
（３−１）  上記（１−１）のシフト動作が一通り終了した段階で第１のクロック信号Ｃｌｋ１０１をイネーブルし、フリップフロップ１０１，１０２，１０３，１０４の出力がそれぞれ論理回路Ｃｋｔ１０１，Ｃｋｔ１０２，Ｃｋｔ１０３，Ｃｋｔ１０４を通過し、所要の論理演算が施された後に、セレクタＳ１１，Ｓ１２，Ｓ１３，Ｓ１４を介して入力側パルスラッチ１１１，１１２，１１３，１１４へ入力する（キャプチャー動作）。
【００６８】
（３−２）  次に、上記のキャプチャー動作の結果を確かめるために、入力側パルスラッチ１１１，１１２，１１３，１１４の出力をセレクタＳ１，Ｓ２，Ｓ３，Ｓ４を介してフリップフロップ１０１，１０２，１０３，１０４への入力とした後、フリップフロップ１０１，１０２，１０３，１０４の出力をシフト動作によって出力端子Ｓｃａｎ＿ｏｕｔ１００より出力する。
【００６９】
（３−３）  次に、第２のクロック信号Ｃｌｋ１０２をイネーブルし、入力側パルスラッチ１１１，１１２，１１３，１１４へ供給されたテストパターンをそれぞれ論理回路Ｃｋｔ１１１，Ｃｋｔ１１２，Ｃｋｔ１１３，Ｃｋｔ１１４を通して出力側パルスラッチ１２１，１２２，１２３，１２４へ伝播する（キャプチャー動作）。
【００７０】
（３−４）  最後に、キャプチャー動作の結果を確かめるために、出力側パルスラッチ１２１，１２２，１２３，１２４の出力をセレクタＳ１，Ｓ２，Ｓ３，Ｓ４を介してフリップフロップ１０１，１０２，１０３，１０４への入力とした後、フリップフロップ１０１，１０２，１０３，１０４の出力をシフト動作によって出力端子Ｓｃａｎ＿ｏｕｔ１００より出力し、一連のスキャンテストを終了する。
【００７１】
上記では、データ抜けを回避する状態でのスキャンテストパターンの入力をフリップフロップで行うとともに、データ抜けを回避する状態でのテスト結果パターンの外部出力を同じフリップフロップで兼用しているが、この兼用をせずに、テストパターン入力のためのフリップフロップとテスト結果パターン出力のためのフリップフロップとを個別的に配置してもよい。
【００７２】
本実施の形態によれば、従来の図７でフリップフロップによって構成されていたレジスタを、フリップフロップに代えてパルスラッチによって構成することにより、トランジスタ数を削減し、小面積および低消費電力を実現している。さらに、スキャンテストパターンのシフト動作に関してはフリップフロップを用いることにより、ラッチ使用によるデータ抜けを回避することができる。スキャンテストについては、シフト動作終了後にフリップフロップからテストパターンをラッチへと転送すれば、スキャンテストを行うことができる。
【００７３】
（実施の形態２）
次に、本発明の実施の形態２における半導体集積回路を図２に基づいて説明する。図２は実施の形態２の半導体集積回路の回路構成図である。
【００７４】
入力側パルスラッチ２０１の入力端子Ｄに接続のセレクタＳ３１には、スキャンテストパターンの入力端子Ｓｃａｎ＿ｉｎ２００とデータＤ２０１が入力されている。入力側パルスラッチ２０２，２０３，２０４の入力端子Ｄにそれぞれ接続のセレクタＳ３２，Ｓ３３，Ｓ３４にはそれぞれ、隣接のパルスラッチ２０１，２０２，２０３の出力端子ＱとデータＤ２０２，Ｄ２０３，Ｄ２０４が入力されている。
【００７５】
入力側パルスラッチ２０１の出力端子Ｑは論理回路Ｃｋｔ２０１の入力端子に接続され、同様に、入力側パルスラッチ２０２，２０３，２０４の出力端子Ｑはそれぞれ論理回路Ｃｋｔ２０２，Ｃｋｔ２０３，Ｃｋｔ２０４の入力端子に接続されている。
【００７６】
出力側パルスラッチ２１１の入力端子Ｄに接続のセレクタＳ４１には、論理回路Ｃｋｔ２０１の出力端子と隣接のパルスラッチ２１２の出力端子Ｑとが入力されている。出力側パルスラッチ２１２，２１３，２１４の入力端子Ｄに接続のセレクタＳ４２，Ｓ４３，Ｓ４４にはそれぞれ、論理回路Ｃｋｔ２０２，Ｃｋｔ２０３，Ｃｋｔ２０４の出力端子と隣接のパルスラッチ２１３，２１４および入力側パルスラッチ２０４の出力端子Ｑが入力されている。
【００７７】
一点鎖線で囲んだ２つのパルスラッチ２０１，２０２を１つのフリップフロップＦＦ１１として使用するために、クロック信号として第１のクロック信号Ｃｌｋ２００と第２のクロック信号Ｃｌｋ２０１の２系列を用意し、パルスラッチ２０１のイネーブル端子Ｇには第１のクロック信号Ｃｌｋ２００を入力し、パルスラッチ２０２のイネーブル端子Ｇには第２のクロック信号Ｃｌｋ２０１を入力している。フリップフロップＦＦ１１におけるパルスラッチ２０１はマスターラッチになり、パルスラッチ２０２はスレイブラッチになる。
【００７８】
同様に、２つのパルスラッチ２０３，２０４、２つのパルスラッチ２１１，２１２および２つのパルスラッチ２１３，２１４のそれぞれを一点鎖線で囲んで示す１つのフリップフロップＦＦ１２，ＦＦ２１，ＦＦ２２として使用するように、第１のクロック信号Ｃｌｋ２００と第２のクロック信号Ｃｌｋ２０１を交互に入力している。
【００７９】
出力側パルスラッチ２１１の出力端子Ｑがテスト結果パターンの出力端子Ｓｃａｎ＿ｏｕｔ２００となっている。
【００８０】
セレクタＳ３１〜Ｓ３４，Ｓ４１〜Ｓ４４は、それぞれ図示しない制御信号によって制御されるように構成されている。
【００８１】
次に、上記のように構成された半導体集積回路の動作を説明する。
【００８２】
通常モード時は、第１のクロック信号Ｃｌｋ２００と第２のクロック信号Ｃｌｋ２０１へ同じパルスクロックを挿入することによって、レジスタとして動作させる。すなわち、入力側パルスラッチ２０１，２０２，２０３，２０４にそれぞれセレクタＳ３１，Ｓ３２，Ｓ３３，Ｓ３４を介してデータＤ２０１，Ｄ２０２，Ｄ２０３，Ｄ２０４が入力され、それぞれのデータが論理回路Ｃｋｔ２０１，Ｃｋｔ２０２，Ｃｋｔ２０３，Ｃｋｔ２０４を通過し、所要の論理演算が施された後に、それぞれセレクタＳ４１，Ｓ４２，Ｓ４３，Ｓ４４を介して出力側パルスラッチ２１１，２１２，２１３，２１４に取り込まれ、データＱ２０１，Ｑ２０２，Ｑ２０３，Ｑ２０４として出力される。
【００８３】
テストモード時には、第１のクロック信号Ｃｌｋ２００と第２のクロック信号Ｃｌｋ２０１との関係が正転、反転の関係となるようにクロック信号を供給する。すなわち、入力側パルスラッチ２０１，２０２，２０３，２０４に対するスキャンテストパターンのシフト動作時には、２つのパルスラッチ２０１，２０２、２つのパルスラッチ２０３，２０４をそれぞれ１つのフリップフロップとして動作させる。また、論理回路Ｃｋｔ２０１，Ｃｋｔ２０２，Ｃｋｔ２０３，Ｃｋｔ２０４を通過して得られたテスト結果を一時保持する出力側パルスラッチ２１１，２１２，２１３，２１４からテスト結果を出力するときには、２つのパルスラッチ２１１，２１２、２つのパルスラッチ２１３，２１４をそれぞれ１つのフリップフロップとして動作させる。このように隣接する２つのパルスラッチをフリップフロップとして動作させることにより、テストパターンシフト動作時のデータの抜けを防止する。
【００８４】
スキャンシフト用にフリップフロップを使用しないことによってさらなる小面積化を実現することができる。
【００８５】
（実施の形態３）
次に、本発明の実施の形態３における半導体集積回路を図３に基づいて説明する。図３は実施の形態３の半導体集積回路の回路構成図である。
【００８６】
実施の形態３の半導体集積回路は、構成的に実施の形態２との対比において、セレクタＳ５２，Ｓ５４，Ｓ６１，Ｓ６３が加わっている点に特徴がある。ＦＦ３１，ＦＦ３２，ＦＦ４１，ＦＦ４２は２つのパルスラッチからなるフリップフロップであり、この点は実施の形態２と同様である。
【００８７】
セレクタＳ５２は、スレイブラッチであるパルスラッチ３０２の出力端子Ｑと反転出力端子ＮＱとを選択して論理回路Ｃｋｔ３０２に出力するように構成されている。同様に、セレクタＳ５４は、スレイブラッチであるパルスラッチ３０４の出力端子Ｑと反転出力端子ＮＱとを選択して論理回路Ｃｋｔ３０４に出力するように構成されている。また、セレクタＳ６１は、スレイブラッチであるパルスラッチ３１１の出力端子Ｑと反転出力端子ＮＱとを選択して出力するように構成され、同様に、セレクタＳ６３は、スレイブラッチであるパルスラッチ３１３の出力端子Ｑと反転出力端子ＮＱとを選択して出力するように構成されている。
【００８８】
各セレクタＳ５２，Ｓ５４，Ｓ６１，Ｓ６３において、出力端子Ｑと反転出力端子ＮＱのいずれを選択するかは、図示しない制御回路からのセレクタ信号に基づいて設定される。
【００８９】
また、実施の形態２と同様に、クロック信号として第１のクロック信号Ｃｌｋ３００と第２のクロック信号Ｃｌｋ３０１の２系列を用意し、パルスラッチ３０１，３０２，３０３，３０４に対して交互になるように、また、パルスラッチ３１１，３１２，３１３，３１４に対して交互になるように、第１および第２のクロック信号Ｃｌｋ３００，Ｃｌｋ３０１を供給する。その他の詳細については、実施の形態２の場合と同様である。
【００９０】
通常モード時には、第１のクロック信号Ｃｌｋ３００と第２のクロック信号Ｃｌｋ３０１に同じパルスクロックを挿入することによってレジスタとして動作させる。
【００９１】
テストモード時には、第１のクロック信号Ｃｌｋ３００と第２のクロック信号Ｃｌｋ３０１の関係が正転、反転の関係となるようにクロック信号を供給し、パルスラッチ３０１，３０２，３０３，３０４を２つで１つのフリップフロップとして動作させ、またパルスラッチ３１１，３１２，３１３，３１４を２つで１つのフリップフロップとして動作させる。これによって、テストパターンシフト時のデータの抜けを防止する。
【００９２】
キャプチャー動作時に２つで１つのフリップフロップを構成することとなるパルスラッチ３０１，３０２、あるいはパルスラッチ３０３，３０４の出力が同じ値である場合と違う場合とがある。すなわち、（０，０）、（１，１）となる場合と（０，１）、（１，０）となる場合とである。このいずれの場合もテストするために、第２ビット目スレイブ側のパルスラッチ３０２，３０４の出力を正転、反転で選択するのがセレクタＳ５２，Ｓ５４である。後段側のセレクタＳ６１，Ｓ６３についても同様である。
【００９３】
（実施の形態４）
次に、本発明の実施の形態４における半導体集積回路を図４に基づいて説明する。図４は実施の形態４の半導体集積回路の回路構成図である。
【００９４】
スキャンテストパターンの入力端子が奇数ビット目の入力端子Ｓｃａｎ＿ｉｎ４００＿ｏｄｄと偶数ビット目の入力端子Ｓｃａｎ＿ｉｎ４００＿ｅｖｅｎとに分けられている。これらは排他的論理和ゲートＥｘＯＲ１に入力されている。
【００９５】
入力側パルスラッチ４０１の入力端子Ｄに接続のセレクタＳ７１には、スキャンテストパターンの偶数ビット目の入力端子Ｓｃａｎ＿ｉｎ４００＿ｅｖｅｎとデータＤ４０１が入力されている。入力側パルスラッチ４０２，４０３，４０４の入力端子Ｄにそれぞれ接続のセレクタＳ７２，Ｓ７３，Ｓ７４にはそれぞれ、隣接のパルスラッチ４０１，４０２，４０３の出力端子ＱとデータＤ４０２，Ｄ４０３，Ｄ４０４が入力されている。
【００９６】
入力側パルスラッチ４０１の出力端子Ｑは論理回路Ｃｋｔ４０１の入力端子に接続され、同様に、入力側パルスラッチ４０２，４０３，４０４の出力端子Ｑはそれぞれ論理回路Ｃｋｔ４０２，Ｃｋｔ４０３，Ｃｋｔ４０４の入力端子に接続されている。
【００９７】
出力側パルスラッチ４１１の入力端子Ｄに接続のセレクタＳ８１には、論理回路Ｃｋｔ４０１の出力端子と入力側パルスラッチ４０１，４０４の出力端子Ｑが入力されている。出力側パルスラッチ４１２，４１３，４１４の入力端子Ｄに接続のセレクタＳ８２，Ｓ８３，Ｓ８４にはそれぞれ、論理回路Ｃｋｔ４０２，Ｃｋｔ４０３，Ｃｋｔ４０４の出力端子と隣接のパルスラッチ４１１，４１２，４１３および入力側パルスラッチ４０２，４０３，４０４の出力端子Ｑが入力されている。
【００９８】
一点鎖線で囲んだ２つのパルスラッチ４０１，４０２を１つのフリップフロップＦＦ５１として使用するために、クロック信号として第１のクロック信号Ｃｌｋ４００と第２のクロック信号Ｃｌｋ４０１の２系列を用意し、パルスラッチ４０１のイネーブル端子Ｇには第１のクロック信号Ｃｌｋ４００を入力し、パルスラッチ４０２のイネーブル端子Ｇには第２のクロック信号Ｃｌｋ４０１を入力している。
【００９９】
同様に、２つのパルスラッチ４０３，４０４、２つのパルスラッチ４１１，４１２および２つのパルスラッチ４１３，４１４のそれぞれを一点鎖線で囲んで示す１つのフリップフロップＦＦ５２，ＦＦ６１，ＦＦ６２として使用するように、第１のクロック信号Ｃｌｋ４００と第２のクロック信号Ｃｌｋ４０１を交互に入力している。
【０１００】
出力側パルスラッチ４１１，４１２の各出力端子Ｑが排他的論理和ゲートＥｘＯＲ２の入力に接続され、２つの排他的論理和ゲートＥｘＯＲ１，ＥｘＯＲ２の出力がセレクタＳ９１の入力に接続され、セレクタＳ９１の出力が判定用フリップフロップ４２１の入力端子Ｄに接続されている。出力側パルスラッチ４１３，４１４の各出力端子Ｑが排他的論理和ゲートＥｘＯＲ３の入力に接続され、排他的論理和ゲートＥｘＯＲ３の出力と判定用フリップフロップ４２１の出力端子ＱがセレクタＳ９２の入力に接続され、セレクタＳ９２の出力が判定用フリップフロップ４２２の入力端子Ｄに接続されている。そして、第３のクロック信号Ｃｌｋ４０２が判定用フリップフロップ４２１，４２２のクロック入力に接続されている。
【０１０１】
セレクタＳ１０２は、スレイブラッチであるパルスラッチ４０２の出力端子Ｑと反転出力端子ＮＱとを選択して論理回路Ｃｋｔ４０２に出力するように構成されている。制御セレクタＣＳ１の入力は判定用フリップフロップ４２１の出力端子ＱとグランドＧＮＤに接続され、その出力でセレクタＳ１０２を制御する。同様に、セレクタＳ１０４は、スレイブラッチであるパルスラッチ４０４の出力端子Ｑと反転出力端子ＮＱとを選択して論理回路Ｃｋｔ４０４に出力するように構成されている。制御セレクタＣＳ２の入力は判定用フリップフロップ４２２の出力端子ＱとグランドＧＮＤに接続され、その出力でセレクタＳ１０４を制御する。
【０１０２】
セレクタＳ１１２は、スレイブラッチであるパルスラッチ４１２の出力端子Ｑと反転出力端子ＮＱとを選択してセレクタＳ８３の１入力となる。制御セレクタＣＳ３の入力は判定用フリップフロップ４２１の出力端子ＱとグランドＧＮＤに接続され、その出力でセレクタＳ１１２を制御する。同様に、セレクタＳ１１４は、スレイブラッチであるパルスラッチ４１４の出力端子Ｑと反転出力端子ＮＱとを選択して出力端子Ｓｃａｎ＿ｏｕｔ４００に出力するように構成されている。制御セレクタＣＳ４の入力は判定用フリップフロップ４２２の出力端子ＱとグランドＧＮＤに接続され、その出力でセレクタＳ１１４を制御する。
【０１０３】
上記各セレクタは、それぞれ図示しない制御信号によって制御されるように構成されている。
【０１０４】
次に、上記のように構成された半導体集積回路の動作を図５のタイミングチャートに従って説明する。
【０１０５】
通常モード時はクロック信号Ｃｌｋ４００，クロック信号Ｃｌｋ４０１へ同じパルスクロックを挿入することによってレジスタとして動作させる。
【０１０６】
（１）  期間ｔ０の動作
スキャンテストパターンの１ビット目を奇数ビット目の入力端子Ｓｃａｎ＿ｉｎ４００＿ｏｄｄに入力し、スキャンテストパターンの２ビット目を偶数ビット目の入力端子Ｓｃａｎ＿ｉｎ４００＿ｅｖｅｎに入力する。ここでは、（１，１）の組み合わせで入力する。これらは同じであるので、排他的論理和ゲートＥｘＯＲ１は“０”を出力する。セレクタＳ９１を介してフリップフロップは“０”を読み込む。
【０１０７】
第１のクロック信号Ｃｌｋ４００の“Ｈ”期間にテストパターンの偶数ビット目の入力端子Ｓｃａｎ＿ｉｎ４００＿ｅｖｅｎからのデータ“１”を入力側パルスラッチ４０１に取り込む。第２のクロック信号Ｃｌｋ４０１の“Ｈ”期間に入力側パルスラッチ４０２にパルスラッチ４０１の出力“１”を取り込む。この時点で、入力側パルスラッチ４０１，４０２にスキャンテストパターンの２ビット目のデータが保持される。
【０１０８】
（２）  期間ｔ１の動作
スキャンテストパターンの３ビット目を奇数ビット目の入力端子Ｓｃａｎ＿ｉｎ４００＿ｏｄｄに入力し、スキャンテストパターンの４ビット目を偶数ビット目の入力端子Ｓｃａｎ＿ｉｎ４００＿ｅｖｅｎに入力する。ここでは、（１，０）の組み合わせで入力する。これらは異なるので、排他的論理和ゲートＥｘＯＲ１は“１”を出力する。
【０１０９】
第３のクロック信号Ｃｌｋ４０２により判定用フリップフロップ４２１のデータ“０”を判定用フリップフロップ４２２にシフトする。同時に排他的論理和ゲートＥｘＯＲ１の出力“１”をセレクタＳ９１を介して判定用フリップフロップ４２１に読み込む。
【０１１０】
第１のクロック信号Ｃｌｋ４００の“Ｈ”期間に、パルスラッチ４０２のデータ“１”をパルスラッチ４０３にシフトし、テストパターンの偶数ビット目の入力端子Ｓｃａｎ＿ｉｎ４００＿ｅｖｅｎからのデータ“０”を入力側パルスラッチ４０１に取り込む。第２のクロック信号Ｃｌｋ４０１の“Ｈ”期間に、パルスラッチ４０４にパルスラッチ４０３の出力“１”を取り込むとともに、パルスラッチ４０２にパルスラッチ４０１の出力“０”を取り込む。この時点で、パルスラッチ４０３，４０４にスキャンテストパターンの２ビット目のデータが保持され、パルスラッチ４０１，４０２にスキャンテストパターンの４ビット目のデータが保持される。いずれも偶数ビット目である。
【０１１１】
“１１１０”のスキャンテストパターンに対して、パルスラッチ４０４，４０３，４０２，４０１（降順）には“１１１０”が保持されている。両者は不一致である。
【０１１２】
（３）  期間ｔ２の動作
パルスラッチ４０４の保持データは“１”である。判定用フリップフロップ４２２の保持データが“０”であるので、制御セレクタＣＳ２はパルスラッチの出力端子Ｑを選択する。したがって、パルスラッチ４０４の保持データ“１”が論理回路Ｃｋｔ４０４に入力される。これは、スキャンテストパターンの１ビット目に合致している。
【０１１３】
パルスラッチ４０３の保持データも“１”である。判定用フリップフロップ４２２の保持データの如何とは無関係に、パルスラッチ４０３の保持データ“１”が論理回路Ｃｋｔ４０３に入力される。これは、スキャンテストパターンの２ビット目に合致している。
【０１１４】
パルスラッチ４０２の保持データは“０”である。判定用フリップフロップ４２１の保持データが“１”であるので、制御セレクタＣＳ１はパルスラッチの反転出力端子ＮＱを選択する。したがって、パルスラッチ４０２の保持データ“０”の反転データ“１”が論理回路Ｃｋｔ４０２に入力される。これは、スキャンテストパターンの３ビット目に合致することになる。
【０１１５】
パルスラッチ４０１の保持データも“０”である。判定用フリップフロップ４２１の保持データの如何とは無関係に、パルスラッチ４０１の保持データ“０”が論理回路Ｃｋｔ４０１に入力される。これは、スキャンテストパターンの４ビット目に合致している。
【０１１６】
以上の動作を解説すると、次のようにいうことができる。
【０１１７】
スキャンテストパターンをパルスラッチ４０１に取り込むのに、テストパターンの偶数ビット目を取り込んでいる。パルスラッチ４０１はマスターラッチであり、マスターラッチは偶数ビット目に対応している。したがって、マスターラッチであるパルスラッチ４０３，４０１では、判定用フリップフロップ４２２，４２１の結果の如何とは無関係に、保持データを出力端子Ｑから論理回路Ｃｋｔ４０３，４０１に出力すればよい。
【０１１８】
スレイブラッチは奇数ビット目に対応している。したがって、スレイブラッチであるパルスラッチ４０４，４０２では、判定用フリップフロップ４２２，４２１の結果の如何に応じて、保持データを出力端子Ｑと反転出力端子ＮＱといずれから論理回路Ｃｋｔ４０４，４０２に出力するかを選択しなければならない。判定用フリップフロップ４２２の保持データは“０”であるが、これは奇数ビット目と偶数ビット目とが一致していることに対応している。したがって、パルスラッチ４０４は出力端子Ｑから出力すればよい。判定用フリップフロップ４２１の保持データは“１”であるが、これは奇数ビット目と偶数ビット目とが不一致であることに対応している。したがって、パルスラッチ４０２は反転出力端子ＮＱから出力しなければならない。
【０１１９】
本動作例では、入力のスキャンテストパターンは、１ビット目が“１”、２ビット目が“１”、３ビット目が“１”、４ビット目が“０”となっている。これを、
０    １    １    １
で表す。この場合に、パルスラッチ４０１，４０２，４０３，４０４に保持されているデータは次のようになる。
【０１２０】
４０１（０）    ４０２（０）    ４０３（１）    ４０４（１）
判定用フリップフロップ４２１，４２２に保持されているデータは、次のようになる。
【０１２１】
４２１（１）    ４２２（０）
判定用フリップフロップ４２１，４２２のデータによって、パルスラッチ４０１，４０２，４０３，４０４から論理回路Ｃｋｔ４０１，Ｃｋｔ４０２，Ｃｋｔ４０３，Ｃｋｔ４０４に与えられるでは、次のようになる。
【０１２２】
それぞれＣｋｔの
４０１（０）    ４０２（１）    ４０３（１）    ４０４（１）
ところで、論理回路Ｃｋｔ４０１〜Ｃｋｔ４０４がバッファ回路であるとすると、出力側のパルスラッチ４１１，４１２，４１３，４１４に保持されるデータは、次のようになる。
【０１２３】
４１１（０）    ４１２（１）    ４１３（１）    ４１４（１）
（４）  期間ｔ３の動作
出力側パルスラッチ４１１，４１２の出力端子Ｑの比較が排他的論理和ゲートＥｘＯＲ２で行われ、セレクタＳ９１を介して判定用フリップフロップ４２１に比較結果が保持される。また、出力側パルスラッチ４１３，４２４の出力端子Ｑの比較が排他的論理和ゲートＥｘＯＲ３で行われ、セレクタＳ９２を介して判定用フリップフロップ４２２に比較結果が保持される。
【０１２４】
いずれも、一致しているときは“０”が保持され、不一致のときは“１”が保持される。
【０１２５】
（５）  期間ｔ４の動作
スキャンテストパターンの５ビット目を奇数ビット目の入力端子Ｓｃａｎ＿ｉｎ４００＿ｏｄｄに入力し、６ビット目を偶数ビット目の入力端子Ｓｃａｎ＿ｉｎ４００＿ｅｖｅｎに入力する。ここでは、（０，１）の組み合わせで入力する。これらは異なるので、判定用フリップフロップ４２１には“１”を保持すべきであるが、（４）の動作によってすでに“１”が保持されている。したがって、上記（１）と同様の処理となる（矛盾は生じない）。なお、ここで（０，１）に代えて、（０，０）の組み合わせを入力してはならない。
【０１２６】
また、出力側において、判定用フリップフロップ４２２の結果を反映してパルスラッチ４１４の出力を選択し、テストパターンの入力の１ビット目および２ビット目に対する論理結果を出力端子Ｓｃａｎ＿ｏｕｔ４００より出力する。
【０１２７】
（６）  期間ｔ５の動作
スキャンテストパターンの７ビット目を奇数ビット目の入力端子Ｓｃａｎ＿ｉｎ４００＿ｏｄｄに入力し、８ビット目を偶数ビット目の入力端子Ｓｃａｎ＿ｉｎ４００＿ｅｖｅｎに入力する。ここでは、（０，０）の組み合わせで入力する。これらは一致するので、判定用フリップフロップ４２１には“０”を保持すべきであるが、（４）の動作によってすでに“０”が保持されている。したがって、上記（２）と同様の処理となる（矛盾は生じない）。なお、ここで（０，０）に代えて、（０，１）の組み合わせを入力してはならない。
【０１２８】
また、出力側において、パルスラッチ４１２のデータをパルスラッチ４１３にシフトし、パルスラッチ４１１のデータをパルスラッチ４１２にシフトする。判定用フリップフロップ４２２の結果を反映してパルスラッチ４１４の出力を選択し、テストパターンの入力の３ビット目および４ビット目に対する論理結果を出力端子Ｓｃａｎ＿ｏｕｔ４００より出力する。
【０１２９】
以上のようにして、特定のテストパターンでのスキャンテストを実行することができる。
【０１３０】
（実施の形態５）
図６はパルスラッチとフリップフロップとの切り換えを可能にする半導体集積回路の回路図である。フリップフロップをマスターラッチ５０１とスレイブラッチ５０２によって構成する。マスターラッチ５０１へのクロック供給を、セレクタ１２０によるクロック信号Ｃｌｋ５０１の反転信号と固定値０の選択式とし、スレイブラッチ５０２へのデータ入力を、セレクタ１２１によるデータＤ５０１とマスターラッチ５０１の出力との選択式とする。
【０１３１】
通常動作時においては、セレクタ１２０を固定値０にしてマスターラッチ５０１を不動作とするとともに、セレクタ１２１をデータＤの直接入力にする。スレイブラッチ５０２は、クロック信号Ｃｌｋ５０１の立ち上がりタイミングでデータＤ５０１をラッチする。すなわち、パルスラッチとして動作させる。
【０１３２】
テストモード時においては、セレクタ１２０をインバータ側にすることでマスターラッチ５０１にクロック信号Ｃｌｋ５０１の論理反転を入力するとともに、セレクタ１２１をマスターラッチ５０１側とする。すなわち、マスターラッチ５０１とスレイブラッチ５０２とでフリップフロップとして動作させ、テストパターンシフト時のデータ抜けを防ぐ。
【０１３３】
この図６の構成によれば、通常動作モードにおいてマスターラッチ５０１を不動作とし、稼動しているトランジスタ数を少なくすることによって低消費電力を実現する。
【０１３４】
【発明の効果】
以上のように本発明によれば、通常動作時に稼動するトランジスタ数を削減して低消費電力を実現するとともに、実装トランジスタ数を制限することによって小面積化を実現することができる。しかも、パルスラッチ使用時に課題となるテストパターンシフト時のデータの抜けを防ぐことができ、故障検出率の向上を実現できる。
【図面の簡単な説明】
【図１】本発明の実施の形態１の半導体集積回路の回路構成図
【図２】本発明の実施の形態２の半導体集積回路の回路構成図
【図３】本発明の実施の形態３の半導体集積回路の回路構成図
【図４】本発明の実施の形態４の半導体集積回路の回路構成図
【図５】本発明の実施の形態４の動作を示すタイミングチャート
【図６】本発明の実施の形態５のパルスラッチとフリップフロップとの切り換えを可能にする半導体集積回路の回路図
【図７】従来の半導体集積回路の回路構成図
【符号の説明】
１０１，１０２，１０３，１０４  フリップフロップ
１１１，１１２，１１３，１１４  入力側パルスラッチ
１２１，１２２，１２３，１２４  出力側パルスラッチ
２０１，２０２，２０３，２０４  入力側パルスラッチ
２１１，２１２，２１３，２１４  出力側パルスラッチ
３０１，３０２，３０３，３０４  入力側パルスラッチ
３１１，３１２，３１３，３１４  出力側パルスラッチ
４０１，４０２，４０３，４０４  入力側パルスラッチ
４１１，４１２，４１３，４１４  出力側パルスラッチ
５０１  マスターラッチ
５０２  スレイブラッチ
４２１，４２２  判定用フリップフロップ
Ｃｋｔ１０１，Ｃｋｔ１０２，Ｃｋｔ１０３，Ｃｋｔ１０４  論理回路
Ｃｋｔ１１１，Ｃｋｔ１１２，Ｃｋｔ１１３，Ｃｋｔ１１４  論理回路
Ｃｋｔ２０１，Ｃｋｔ２０２，Ｃｋｔ２０３，Ｃｋｔ２０４  論理回路
Ｃｋｔ３０１，Ｃｋｔ３０２，Ｃｋｔ３０３，Ｃｋｔ３０４  論理回路
Ｃｋｔ４０１，Ｃｋｔ４０２，Ｃｋｔ４０３，Ｃｋｔ４０４  論理回路
ＦＦ１１，ＦＦ１２  ２つのパルスラッチからなるフリップフロップ
ＦＦ２１，ＦＦ２２  ２つのパルスラッチからなるフリップフロップ
ＦＦ３１，ＦＦ３２  ２つのパルスラッチからなるフリップフロップ
ＦＦ４１，ＦＦ４２  ２つのパルスラッチからなるフリップフロップ
ＦＦ５１，ＦＦ５２  ２つのパルスラッチからなるフリップフロップ
ＦＦ６１，ＦＦ６２  ２つのパルスラッチからなるフリップフロップ
ＥｘＯＲ１，ＥｘＯＲ２，ＥｘＯＲ３  排他的論理和ゲート
Ｓ５２，Ｓ５４，Ｓ６１，Ｓ６３  セレクタ
Ｓ１０２，Ｓ１０４，Ｓ１１２，Ｓ１１４  セレクタ
Ｓ１２０，Ｓ１２１  セレクタ
【図１】
0003595310.tif 000002
【図２】
0003595310.tif 000003
【図３】
0003595310.tif 000004
【図４】
0003595310.tif 000005
【図５】
0003595310.tif 000006
【図６】
0003595310.tif 000007
【図７】
0003595310.tif 000008