(57)【要約】      （修正有）【課題】回路をテスト動作モードに切り替えずに、回路を駆動するクロック速度を最高速度から落とすことなく、高い故障検出率を維持しながら、回路内の各ＦＦの故障検出が可能な集積回路におけるセルフテスト回路を提供する。【解決手段】１／Ｎ周期ずつ位相シフトされた第１位相から第Ｎ位相をそれぞれ有する同一周期のＮ個のクロック信号を含む多相クロック信号によって駆動される集積回路におけるセルフテスト回路１０は、パラレル形式の入力テストデータ１２０をＮ並列にシリアル変換し、Ｎ並列出力される各ビットを、第１位相から第Ｎ位相までの各位相に対応するタイミングでシリアル出力信号１５２として冗長遅延量だけ遅延出力するシリアル化回路６と、４つの位相の各々に対応するタイミングに同期して、シリアル出力信号１５２を、Ｎ並列ビット列として取り込んで論理テストを行う論理テスト回路２と、を具備する。【選択図】図２
2017015597.tif 000002
【特許請求の範囲】
【請求項１】
１／Ｎ周期ずつ位相シフトされた第１位相から第Ｎ位相をそれぞれ有する同一周期のＮ個のクロック信号を含む多相クロック信号によって駆動される集積回路におけるセルフテスト回路であって、
Ｍビット幅のパラレルデータとして前記セルフテスト回路に入力される入力データを、通常のデータと論理テスト用のテストデータとの間で切り替えるデータ選択回路と、
前記入力データをＮ並列にシリアル変換してＮ並列に出力される各ビットを、前記第１位相から第Ｎ位相までの各位相に対応するタイミングで１本のシリアル出力信号として出力するシリアル化回路と、
前記第１位相から第Ｎ位相までの各位相に対応するタイミングに同期して、前記シリアル出力信号を、それぞれＭ／Ｎビット長を有するＮ並列ビット列として取り込んでＭビット分のビット論理テストを行う論理テスト回路と、
を具備する、集積回路におけるセルフテスト回路。
【請求項２】
前記シリアル化回路は、前記Ｎ並列シリアル変換により出力されるＮ本のビット列を、複数段のＦＦ直列回路から成るＮ本の遅延回路に入力し、Ｎ本の前記遅延回路の最終段ＦＦからＮ並列に出力されるビットを、前記１本のシリアル出力信号として出力するための位相シフト回路を具備し、
前記論理テスト回路は、前記Ｎ本の遅延回路とは別個にＮ並列構成された論理テスト用ＦＦチェーンを具備し、
前記Ｎ並列構成された論理テスト用ＦＦチェーンは、前記シリアル出力信号をそれぞれＭ／Ｎビット長を有するＮ並列ビット列として一ビットずつ取り込む動作の開始と停止をＮ個のキャプチャ信号のオン／オフに応じて切り替え可能に構成されている、請求項１記載の集積回路におけるセルフテスト回路。
【請求項３】
前記Ｎ本の遅延回路の各々は、前記第１位相から第Ｎ位相までの各位相に応じた異なるＦＦ段数を経由して、一周期未満の冗長遅延量だけ各ビットを遅延出力するように構成され、
前記Ｎ並列構成された論理テスト用ＦＦチェーンは、前記冗長遅延量だけ互いに位相シフトされたＮ個のキャプチャ信号をトリガとして、Ｎ並列ビット列として前記シリアル出力信号を取り込む動作を開始し、
前記冗長遅延量は、１／Ｎ周期のクロック速度で前記セルフテスト回路を駆動した場合に、回路素子間におけるデータ受け渡しを正確に行うのに必要な同期設計タイミング調整幅に応じて決定される、
請求項２記載の集積回路におけるセルフテスト回路。
【請求項４】
前記Ｎ本の遅延回路は、前記多相クロックの前記第１位相から第Ｎ位相にそれぞれ対応し、前記遅延回路の各々における最終段ＦＦは、前記多相クロックの対応する位相に同期して前記最終段のＦＦに記憶されたビットを出力するように構成される、
請求項３記載の集積回路におけるセルフテスト回路。
【請求項５】
前記シリアル化回路は、前記Ｎ並列のシリアル変換により前記Ｎ本のビット列を出力するためにＮ並列構成されたシフトレジスタをさらに具備し、
前記Ｎ並列構成されたシフトレジスタの各々は、前記第１位相のタイミングに同期して前記入力データを１ビットずつ読み込むシフトＦＦチェーンを具備する、
請求項１乃至請求項４のいずれか一項に記載された集積回路におけるセルフテスト回路。
【請求項６】
請求項１乃至請求項５の中のいずれか一項に記載された集積回路におけるセルフテスト回路と、
外部から入力されるパルス幅変調データに基づいて、前記シリアル出力信号として出力されるパルス列のデューティ比を設定するためのパラレルデータを生成するパラレルデータ生成部と、
を具備し、前記セルフテスト回路内の前記シリアル化回路が前記パラレルデータをシリアル信号に変換して成るパルス列は、前記設定したデューティ比を有する、データ処理回路。
【請求項７】
前記論理テスト回路は、前記Ｎ本の遅延回路とは別個に構成された単一の論理テスト用ＦＦチェーンと、
前記第１位相から第Ｎ位相までの各位相に対応するＮ個のクロック信号からいずれか一つを選択して前記単一の論理テスト用ＦＦチェーンに出力する第１のセレクタ回路と、
前記第１位相から第Ｎ位相までの各位相に対応するＮ個のキャプチャ信号からいずれか一つを選択して前記単一の論理テスト用ＦＦチェーンに出力する第２のセレクタ回路と、を具備し、
前記単一の論理テスト用ＦＦチェーンは、前記シリアル出力信号を、前記第１のセレクタ回路が選択したクロック信号と同期して、Ｍビット長を有する単一のビット列として一ビットずつ取り込む動作の開始と停止を切り替え可能に構成され、前記開始と停止の切り替えは、前記第２のセレクタ回路が選択したキャプチャ信号のオン／オフに応じて行われる、請求項１記載の集積回路におけるセルフテスト回路。
【請求項８】
前記第１位相から第Ｎ位相までの各位相に対応するＮ個のクロック信号に同期して動作するＮ個の分周器をさらに備え、
前記セルフテスト回路内の前記シリアル化回路が出力するシリアル出力信号は、Ｎ個の分周器により前記Ｎ個のクロック信号に同期して分周されて、前記論理テスト回路内の前記Ｎ並列構成された論理テスト用ＦＦチェーンに出力される、請求項２記載の集積回路におけるセルフテスト回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路におけるセルフテスト回路およびデータ処理回路に関する。
【背景技術】
【０００２】
光ビームを偏向走査する光走査装置と、その光走査装置によって偏向走査される光ビームで感光体の表面に画像書き込みを行って画像を形成する電子写真方式の画像形成に関する光書込装置が知られている。当該電子写真方式の画像形成に関する光書込装置は、例えば、複写機、ファクシミリ装置、プリンタ、印刷機、デジタル複合機（ＭＦＰ）等に搭載されている。これら電子写真方式の画像形成に関する光書込装置において、主走査の画像領域の前後に光センサを配置し、その光センサで光を検出する時間幅によって温度上昇等による主走査倍率の変動を補正するためにＰＷＭ変調データを用いた技術が既に知られている。
【０００３】
ＰＷＭ変調技術を実装した回路のように多数のフリップ・フロップ（以下、ＦＦと略記する）を備えるデジタル回路内において、従来技術によりＦＦの故障を検出するためのテストを行おうとする場合、以下の問題がある。すなわち、テスト対象回路であるデジタル回路が最高クロック速度でタイミング調整できているか否かを検証しようとするならば、デジタル回路がスキャン動作モードで動作中に行われるスキャン・テストの際にはチップの最高クロック速度でテストを実施することが必要である。
【０００４】
しかしながら、最高クロック速度でテストを実施するために、高速動作するデジタル回路のクロックラインにノーマル動作モードからスキャン・テストへの切り替えに必要なクロックやセレクタを追加的に設けると、以下の問題が生じる。すなわち、スキャン・テストへの切り替えに必要なクロックやセレクタが追加された結果、デジタル回路の同期設計を適切に行おうとしても回路全体のタイミング調整が困難となってしまう。
【０００５】
そのため、特許文献１等に開示された従来技術においては、ＦＦの故障を検出するために以下の手法を用いてきた。すなわち、チップの外部端子を介してテスト対象回路の動作周波数をモニタリングするための周波数カウンタを半導体テスト装置に設け、動作周波数を落として故障検出をしていた。例えば、特許文献１には、クロック信号に応じて同期化設計された半導体回路に回路動作テスト用のビット列であるテストデータを読み込ませ、半導体回路内のＦＦの故障を検出するための技術が開示されている。
【０００６】
具体的には、特許文献１には、ＦＦの現在の論理状態をそのまま保持しつつ、当該半導体回路の動作モードをノーマル動作モードからスキャン・モードに切り替えた上で、テストデータを読み込ませたＦＦの論理状態を調べる発明が開示されている。特許文献１においては、テストデータを読み込んだ各ＦＦに記憶されている「１」または「０」の論理状態を、テストデータ内の既知のビットと比較し、記憶されている論理状態が既知のビットと異なるＦＦを故障と判定する。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、特許文献１記載の手法を採用した場合、テスト対象回路であるデジタル回路の同期設計において、最高クロック速度で動作させた際のタイミング調整が正しくできているかどうかを検証しようとしても、以下の不都合がある。すなわち、デジタル回路がＳＣＡＮ動作モードで動作中に行われるＳＣＡＮテストの際に、デジタル回路を実装したチップの最高クロック速度でテストを実施することができず、不明瞭であるという問題があった。
【０００８】
以上の問題点に鑑み、本発明は、セルフテスト機能を有する集積回路をテスト動作モードに切り替えずに、集積回路を駆動するクロック速度を最高速度から落とすことなく、高い故障検出率を維持しながら、集積回路内の各ＦＦの故障検出が可能なセルフテスト回路を得ることを目的とする。
【課題を解決するための手段】
【０００９】
そこで、本発明は、１／Ｎ周期ずつ位相シフトされた第１位相から第Ｎ位相をそれぞれ有する同一周期のＮ個のクロック信号を含む多相クロック信号によって駆動される集積回路におけるセルフテスト回路であって、Ｍビット幅のパラレルデータとして前記セルフテスト回路に入力される入力データを、通常のデータと論理テスト用のテストデータとの間で切り替えるデータ選択回路と、前記入力データをＮ並列にシリアル変換してＮ並列出力される各ビットを、前記第１位相から第Ｎ位相までの各位相に対応するタイミングで１本のシリアル出力信号として出力するシリアル化回路と、前記第１位相から第Ｎ位相までの各位相に対応するタイミングに同期して、前記シリアル出力信号を、それぞれＭ／Ｎビット長を有するＮ並列ビット列として取り込んでＭビット分のビット論理テストを行う論理テスト回路と、を具備する構成を採る。
【発明の効果】
【００１０】
本発明によれば、セルフテスト機能を有する集積回路をテスト動作モードに切り替えずに、集積回路を駆動するクロック速度を最高速度から落とすことなく、高い故障検出率を維持しながら、集積回路内の各ＦＦの故障検出が可能なセルフテスト回路を得ることができる。
【図面の簡単な説明】
【００１１】
【図１】従来技術に係るデータ処理回路１００の全体回路構成を示すブロック図。
【図２】本実施の形態に係るセルフテスト回路１０の全体回路構成を示すブロック図。
【図３】本実施の形態に係るシリアル化回路６の内部の回路構造を示すブロック図。
【図４】シフトレジスタ回路８に対する外部からのデータ入力とシフトレジスタ回路８の内部の回路構造を示すブロック図。
【図５】テストデータ１２０をシリアル化回路６が受け取り、シリアル出力信号１５２として出力する時の回路内の動作タイミングを説明するタイミング・チャート。
【図６】論理テスト回路２内に並列に構成された４本の論理テスト用ＦＦチェーンを示す回路図。
【図７】論理テスト回路２内に設けられたキャプチャ・イネーブル信号生成部の回路構造を示す図。
【図８】キャプチャ・イネーブル信号と他のクロック信号パルスとの間の関係を示すタイミング・チャート。
【図９】図１に示すシリアル化回路１０６を本実施の形態に係るセルフテスト回路１０で置き換えた場合のデータ処理回路１００の全体回路構成を示すブロック図。
【図１０】論理テスト回路２をよりコンパクトな回路規模とするための第１の変形実施例を示す図。
【図１１】論理テスト回路２へ入力されるべきＳＥＲＯＵＴ信号を分周器を介して出力する第２の変形実施例を示す図。
【発明を実施するための形態】
【００１２】
光ビームを偏向走査する光走査装置と、その光走査装置によって偏向走査される光ビームで感光体の表面に画像書き込みを行って画像を形成する電子写真方式の画像形成に関する光書込装置が知られている。当該電子写真方式の画像形成に関する光書込装置は、例えば、複写機、ファクシミリ装置、プリンタ、印刷機、デジタル複合機（ＭＦＰ）等に搭載されている。当該電子写真方式の画像形成に関する光書込装置において、主走査の画像領域の前後に光センサを配置し、その光センサで光を検出する時間幅によって温度上昇等による主走査倍率の変動を補正するためにＰＷＭ変調データを用いた技術が既に知られている。
【００１３】
当該電子写真方式の画像形成に関する光書込装置を実現するには、上述したＰＷＭ変調データを生成するためのＰＷＭ変調技術を実装した回路が必要となる。特許文献２には、そのようなＰＷＭ変調技術を実装した回路を、単一の回路モジュールで各種の応用用途に応じて実現するためのデータ処理回路の回路構成が開示されている。特許文献２には、上述したＰＷＭ変調技術を実装可能なデータ処理回路の例として、入力されるパラレルデータに対してシリアル信号への変換を行い、シリアル信号出力する回路構成が開示されている。特許文献２に開示された回路は、１つの回路モジュールで各種の応用用途に応じてデータを処理することが可能である。ＰＷＭ変調技術を実装可能なデータ処理回路として特許文献２に開示されている回路構成と同様の回路構成を図１に示す。
【００１４】
図１に示すデータ処理回路１００は、例えば１チップの集積回路（ＩＣ、ＬＳＩ等）で構成され、シリアル転送データ生成部１０２と、パラレル転送用クロック生成部１０３と、ＰＷＭ変調データ生成部１０４と、セレクタ１０５と、シリアル化回路１０６と、を備える。シリアル転送データ生成部１０２、パラレル転送用クロック生成部１０３およびＰＷＭ変調データ生成部１０４がそれぞれ出力するパラレルデータｄａｔａ１、ｄａｔａ２およびｄａｔａ３は、シリアル化回路１０６を共通の出力先として出力される。シリアル転送データ生成部１０２、パラレル転送用クロック生成部１０３およびＰＷＭ変調データ生成部１０４がそれぞれ出力するパラレルデータのうち、いずれのパラレルデータをシリアル化回路１０６に出力するかは、セレクタ１０５によって選択される。シリアル化回路１０６に入力される各パラレルデータの選択は、セレクタ５に印加される選択信号ｓｅｌ  １９５により決定される。
【００１５】
シリアル転送データ生成部１０２には、所定のシリアル化データ（シリアル転送データであるパラレルデータ）ｓｅｒ＿ｄａｔａ  １９１が入力される。シリアル転送データ生成部１０２はシリアル化データｓｅｒ＿ｄａｔａ  １９１を符号化処理し、シリアル転送のための所定のパラレルデータｄａｔａ１としてセレクタ１０５に出力する。また、パラレル転送用クロック生成部１０３には、パラレル転送用クロックの発振周期設定値データ（クロック周期設定値）ｐｅｒｉｏｄ＿ｄａｔａ  １９２及びスキュー調整値データｓｋｅｗ＿ｄａｔａ  １９３が入力される。パラレル転送用クロック生成部１０３は、これらの入力データに基づいてパラレル転送用クロックを生成してセレクタ１０５に出力する。さらに、ＰＷＭ変調データ生成部１０４には、ＰＷＭ変調データのデューティ設定用入力信号ｐｗｍ＿ｉｎ  １９４が入力される。ＰＷＭ変調データ生成部１０４は入力信号ｐｗｍ＿ｉｎ  １９４に従って所定の搬送波パルス信号をパルス幅変調して、パルス幅変調後のパラレルデータｄａｔａ３をセレクタ１０５に出力する。次いで、セレクタ１０５は、選択信号ｓｅｌに基づいて、データｄａｔａ１〜３のうちの１つのデータを選択し、シリアル化回路１０６に出力する。ここで、データデータｄａｔａ１〜３及びデータｄａｔａ＿ｉｎはそれぞれ所定の同一ビット幅を有する。
【００１６】
シリアル化回路１０６は、パラレルデータｄａｔａ＿ｉｎをシリアル変換することにより、シリアル出力信号ｓｅｒ＿ｏｕｔ  １５１に変換する。ここで、シリアル出力信号ｓｅｒ＿ｏｕｔ  １５１のみクロック信号ｃｌｋ＿ｂに同期し、データ処理回路１００の他のデータはクロック信号ｃｌｋ＿ａで同期して動作する。ここで、クロック信号ｃｌｋ＿ａはクロック信号ｃｌｋ＿ｂの分周信号であり、分周比はｄａｔａ＿ｉｎのビット幅となる。以上のように構成されたデータ処理回路１００によれば、１つのチップ又はモジュールで、シリアル通信方式、パラレル通信方式、ＰＷＭ変調方式等の様々な用途に適用可能となるため、回路規模、設計コスト、面積コストを抑えることができる。その反面、特許文献２記載の回路構成もまた、デジタル回路を実装したチップの最高クロック速度で回路の動作テストを実施することができないという点で特許文献１記載の回路構成と同様である。
【００１７】
特許文献２に開示された回路構成のように、ＰＷＭ変調技術を実装した回路は、多数のＦＦを備えるデジタル回路として実施される。当該デジタル回路内において、ＦＦの故障を検出するテストを行おうとする場合、当該デジタル回路が最高クロック速度でタイミング調整できているか否かを検証しようとするならば、デジタル回路を実装する半導体チップの最高クロック速度でテストを実施する必要がある。しかし、最高クロック速度で回路テストを実施するために、特許文献２記載のＰＷＭ変調技術搭載回路に特許文献１記載の回路テスト機能を組み込んだとしても、最高速度のクロック信号により駆動される回路内の同期設計において、タイミング調整幅に余裕がなくなってしまう。最高クロック速度での駆動中に回路の同期タイミング設計に余裕がなくなるのは、クロックの周期が早くなればなるほどＦＦ間のデータの受け渡しが出来るように回路を配置配線することが困難になるからである。そこで、本実施の形態は、特許文献２に開示されたデータ処理回路１００のようなＰＷＭ変調技術搭載回路において、回路動作中に回路を構成する各ＦＦの論理テストを実行することを可能とする機能を組み込んだセルフテスト回路を単に実現するだけでなく、以下を実現することを意図している。
【００１８】
第１に、本実施の形態は、セルフテスト回路装置において、特許文献１のようなノーマル動作モードからスキャン・モードへの動作モード切り替えの必要なしに、テスト対象回路装置内の各ＦＦの論理トレースによる故障検出テストを行うことを意図する。第２に、本実施の形態は、セルフテスト回路装置において、最高クロック速度からクロック動作速度を落とすことなく、しかも高い故障検出率を維持しながら、テスト対象回路装置内の各ＦＦの論理トレースによる故障検出テストを行うことを意図する。第３に、本実施の形態は、セルフテスト回路全体の同期設計におけるタイミング調整に充分な余裕を持たせることによって、セルフテスト回路全体の正確で確実なクロック制御動作を保証することを意図する。
【００１９】
本明細書中の以下の記述においては、論理テストとは、テスト対象回路内において以下の検査を行うための機能または仕組みを指して言う。すなわち、論理テストとは、クロック信号に同期してクロック・パルス毎に回路の内部状態を遷移させるテスト対象回路が多数のＦＦの直列または並列の接続によって構成されている場合に、クロック・パルス毎に各ＦＦが記憶する論理状態（「０」または「１」）が本来の正しい値と一致するか否かを検査する。また、セルフテスト回路とは、論理テストを実現するための仕組みである配線ロジックや回路モジュールを自身の中に内蔵しているテスト対象回路を指して言い、セルフテスト回路によって実行される論理テストを指してセルフテストと呼ぶ。また、本明細書中の以下の記述においては、回路を構成する多数のＦＦの直列接続によって構成され、クロック信号に同期してクロック・パルス毎に内部状態を遷移させる直列回路を指してＦＦチェーンと呼ぶ。
【００２０】
図１に示すデータ処理回路１００の回路構造を変更し、全てのＦＦの論理状態を漏れなく確実に検査可能な形でセルフテストの仕組みを実現するためには、以下のようにすればセルフテスト機能を最もコンパクトな回路規模で実現することが出来る。すなわち、本実施の形態に従って、セルフテスト（論理テスト）機能を実現する仕組みに加え、図１のシリアル化回路１０６と同等のシリアル化回路機能を内蔵する新規なセルフテスト回路を実現する。その上で、データ処理回路１００内において、シリアル化回路１０６を上述した新規なセルフテスト回路に置き換える。以上により、データ処理回路１００内の全てのＦＦの論理状態を漏れなく確実に検査することが可能なセルフテストの仕組みが最小規模の回路により実現可能となる。何故ならば、図１において、シリアル化回路１０６は、データ処理回路１００の最終段に位置し、前段の回路１０２、１０３および１０４からセレクタ１０５を介して出力されるパラレルデータのシリアル化処理を実行して唯一の最終的な出力信号ｓｅｒ＿ｏｕｔ  １５１として出力する回路だからである。
【００２１】
＜実施の形態１＞
図２は、本実施の形態に従い、セルフテスト機能を実現すると同時に図１のシリアル化回路１０６と同等のシリアル化回路機能を内蔵するように構成された新規なセルフテスト回路１０の全体的な回路構成を示す。以下において後述するが、図１のデータ処理回路１００の通常動作時においては、シリアル化処理の対象となるパラレルデータが、ノーマルデータ１１０としてセルフテスト回路１０に入力される。図１のデータ処理回路１００の論理テスト動作時においては、シリアル化処理の対象となるパラレルデータが、テストデータ（ＤＡＴＡ＿ＴＥＳＴ＊）１２０としてセルフテスト回路１０に入力される。ノーマルデータ１１０およびテストデータ（ＤＡＴＡ＿ＴＥＳＴ＊）１２０は、例えば、図１に示す回路１０２、１０３および１０４によって生成され、図１のセレクタ回路１０５を介してセルフテスト回路１０に出力されるパラレルデータである。
【００２２】
セルフテスト回路１０は、データ選択回路１、シリアル化回路６、論理テスト回路２およびセレクタ２ａから構成される。データ選択回路１は、データ処理回路１００が通常動作中であるか論理テスト動作中であるかに応じて、シリアル化回路６に入力される入力データとして、ノーマルデータ１１０またはテストデータ（ＤＡＴＡ＿ＴＥＳＴ＊）１２０のいずれか一方を選択する。データ選択回路１内において、データ処理回路１００の論理テスト動作時には、セレクタ１ａに入力されるｔｅｓｔｅｎ（テスト・イネーブル）信号１２１はオン状態であり、セレクタ１ａは、入力データとしてテストデータ（ＤＡＴＡ＿ＴＥＳＴ＊）１２０を選択する。データ処理回路１００のノーマル動作時には、セレクタ１ａに入力されるｔｅｓｔｅｎ（テスト・イネーブル）信号１２１はオフ状態であり、セレクタ１ａは、入力データとしてノーマルデータ１１０を選択する。ｔｅｓｔｅｎ信号１２１、ノーマルデータ１１０およびテストデータ（ＤＡＴＡ＿ＴＥＳＴ＊）１２０をデータ選択回路１に出力するには、外部のＣＰＵ１１がセルフテスト回路１０に対してデータライト（データ書き込み）信号１３１を出力する。
【００２３】
シリアル化回路６は、ノーマルデータ１１０またはテストデータ（ＤＡＴＡ＿ＴＥＳＴ＊）１２０のいずれか一方を、１６ビット幅のパラレルデータである入力データ（ｄａｔａ＿ｉｎ［１５：０］）１４０としてデータ選択回路１から受け取る。シリアル化回路６は、受け取った入力データ１４０をシリアル化処理によりシリアル信号に変換し、ノーマル出力１５１としてセルフテスト回路１０の外部に出力すると共に、シリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２として論理テスト回路２に出力する。図２に示すシリアル化回路６が実行する当該シリアル化処理は、図１記載のシリアル化回路１０６が実行するシリアル化処理と機能的には同等である。しかし、以下において後述するように、図２に示すシリアル化回路６の内部の回路構造は、図１記載のシリアル化回路１０６の回路構造とは大きく異なる。
【００２４】
論理テスト回路２の内部には、論理テスト用のＦＦチェーンが設けられている。論理テスト回路２は、シリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２としてシリアル化回路６から出力されるビット列を、論理テスト用のＦＦチェーンの中に読み込む。なお、論理テスト回路２が読み込むシリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２は、データ処理回路１００の論理テスト動作中にテストデータ１２０としてデータ選択回路１に入力されたパラレルデータをシリアル化回路６がシリアル信号に変換したものである。
【００２５】
シリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２を論理テスト用ＦＦチェーン内に読み込む動作は、外部のＣＰＵ１１が論理テスト用回路２に対して出力するキャプチャ・イネーブル（ＣＡＰ＿ＥＮ）信号をオン状態にすることによって開始する。キャプチャ・イネーブル（ＣＡＰ＿ＥＮ）信号がオン状態になると、論理テスト回路２は、クロック信号の各パルスに同期して、シリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２に含まれるビット列を１ビットずつ論理テスト用のＦＦチェーンの中に読み込んでゆく。また、論理テスト回路２がシリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２を論理テスト用ＦＦチェーン内に読み込む動作は、外部のＣＰＵ１１が論理テスト用回路２に対して出力するキャプチャ・イネーブル（ＣＡＰ＿ＥＮ）信号をオフ状態にすることによって停止される。外部のＣＰＵ１１から論理テスト回路２に対してキャプチャ・イネーブル（ＣＡＰ＿ＥＮ）信号を出力するには、ＣＰＵ１１がデータライト（データ書き込み）信号１３２を論理テスト回路２に出力する。
【００２６】
論理テスト回路２は、シリアル化処理された一つのパラレルデータにつき、１６ビット長のシリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２を、論理テスト用のＦＦチェーンに読み込む。続いて、論理テスト回路２は、論理テスト用のＦＦチェーンが１６ビット長のシリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２を読み込んだ状態で、ＦＦチェーン内の各ＦＦに記憶されている論理状態（「０」または「１」）を既知のビットパターンと比較する。当該比較の結果、論理テスト用のＦＦチェーン内において、いずれか一つ以上のＦＦに記憶されている論理状態がテストデータ１２０の対応するビット位置に含まれる既知のビット値と異なる場合には、論理テスト回路２は、データ処理回路１００内のいずれかのＦＦが故障していると判定する。論理テスト回路２による論理テストの結果を表すデータは、セレクタ２ａを介してデータリード（データ読み出し）信号１３３としてＣＰＵ１１に出力され、ＣＰＵ１１は、論理テストの結果を表すデータを画面表示したり、メモリ（図示なし）内に保存したりする。または、論理テスト回路２による論理テストの結果を表すデータは、セレクタ２ａを介して、外部出力１６１としてデータ処理回路１００の外部端子１６２に出力される。セレクタ２ａは、論理テストの結果を表すデータを、ＣＰＵ１１によるデータ読み出し信号として出力するか、外部端子１６２に外部出力として出力するかを選択するための選択回路である。
【００２７】
図３は、シリアル化回路６の詳細な回路構成を示すブロック図である。図３に示すように、シリアル化回路６は、２種類のクロック信号ｃｌｋ＿ａ  １４２およびｃｌｋ＿ｂ  １４４により駆動される。ｃｌｋ＿ｂ  １４４は、同一周期で９０°ずつ位相シフトされた４つのクロック信号から構成される多相クロック信号であり、ゼロ位相、９０°位相、１８０°位相および２７０°位相にそれぞれ対応する４つのクロック信号をｃｌｋ＿ｂ［０］、ｃｌｋ＿ｂ［１］、ｃｌｋ＿ｂ［２］およびｃｌｋ＿ｂ［３］と表記する。つまり、ｃｌｋ＿ｂ［０］〜ｃｌｋ＿ｂ［３］は、ｃｌｋ＿ｂの一周期の長さを４等分して４つの位相（９０°ずつずれた４つの位相）に分けた上で、同一周期の４つのｃｌｋ＿ｂを１／４周期ずつ位相シフトすることにより生成した４つの位相クロックである。また、４つのクロック信号ｃｌｋ＿ｂ［０］、ｃｌｋ＿ｂ［１］、ｃｌｋ＿ｂ［２］およびｃｌｋ＿ｂ［３］を総称してｃｌｋ＿ｂ［３：０］と表記する。さらに、クロック信号ｃｌｋ＿ｂ［０］の１／４周期に対応するクロック速度は、クロック信号ｃｌｋ＿ｂ［０］の４倍のクロック速度であり、データ処理回路１００の最高クロック速度に等しい。他方、クロック信号ｃｌｋ＿ａはクロック信号ｃｌｋ＿ｂの分周信号であり、分周比は入力データ（ｄａｔａ＿ｉｎ［１５：０］）１４０のビット幅に等しい１６ビット幅となる。
【００２８】
図３を参照すると、シリアル化回路６は、ラッチ回路７と、シフトレジスタ回路８と、位相シフト回路９とを備えて構成される。ラッチ回路７には、１６ビット幅のパラレルデータ形式の入力データ（ｄａｔａ＿ｉｎ［１５：０］）１４０が入力され、クロックｃｌｋ＿ａ  １４２に同期して、入力データ１４０を所定時間幅にわたってラッチ（保持）している。ラッチ回路７からシフトレジスタ回路８に出力される信号は、１６ビット幅のパラレルデータ形式の入力データ（ｄａｔａ＿ｓ［１５：０］）１４１であり、シフトレジスタ回路８の出力は、位相シフト回路９によって処理され、最終的にシリアル出力（ｓｅｒ＿ｏｕｔ）信号１５２として論理テスト回路２に出力される。
【００２９】
次に、図４を参照しながら、シフトレジスタ回路８の内部構成、シフトレジスタ回路８内における１６ビット幅パラレルデータのシリアル化処理およびデータ信号の流れについて具体的に説明する。ラッチ回路７は、セレクタ１ａを介して、ノーマルデータ１１０またはテストデータ１２０のいずれか一方を受け取ることが可能である。論理テストの実行時においては、セレクタ１ａに出力されるｔｅｓｔｅｎ信号１２１がオン状態であるので、ラッチ回路７は、外部からセレクタ１ａを介してテストデータ１２０を受け取る。ラッチ回路７は、外部からセレクタ１ａを介して受け取ったテストデータ１２０を一定時間ラッチ（保持）してからシフトレジスタ回路８への入力信号ｄａｔａ＿ｓ［１５：０］１４１として出力する。図４に示すように、シフトレジスタ回路８は、４つの並列に動作するシフトレジスタ８０Ａ、８０Ｂ、８０Ｃおよび８０Ｄから成る４並列構成のシフトレジスタ回路である。つまり、シフトレジスタ回路８は、ラッチ回路７から受け取った１６ビット幅のパラレルデータ形式である入力データ（ｄａｔａ＿ｓ［１５：０］）１４１を４ビットずつ４つのシフトレジスタ８０Ａ〜８０Ｄに振り分ける。続いて、シフトレジスタ回路８は、４つのシフトレジスタ８０Ａ〜８０Ｄに４ビットずつ振り分けられた入力データ１４１のシリアル信号への変換処理を４並列で実行する。
【００３０】
４つのシフトレジスタ８０Ａ〜８０Ｄの各々は、共通のクロック信号ｃｌｋ＿ｂ［０］により駆動される４つのＦＦを直列接続した４段構成のシフトレジスタとして構成されている。例えば、シフトレジスタ８０Ａは、図４に示すように４つのＦＦ  ８２１Ａ、８２２Ａ、８２３Ａおよび８２４Ａが直列に接続されて構成されている。ｃｌｋ＿ｂ［０］の各パルスに同期して、ＦＦ  ８２１Ａには、０値ビットが入力されるか、または入力データ（ｄａｔａ＿ｓ［１５：０］）１４１の第１２ビット（ｄａｔａ＿ｓ［１２］）がシフトレジスタ回路８の外部から入力される。Ｆ  ８２１Ａにどちらのビットデータが入力されるかはセレクタ８１１Ａによって選択される。
【００３１】
ｃｌｋ＿ｂ［０］の各パルスに同期して、ＦＦ  ８２２Ａには、前段のＦＦ  ８２１Ａが記憶していたビットデータが入力されるか、または入力データ（ｄａｔａ＿ｓ［１５：０］）１４１の第８ビット（ｄａｔａ＿ｓ［８］）がシフトレジスタ回路８の外部から入力される。ＦＦ  ８２２Ａにどちらのビットデータが入力されるかはセレクタ８１２Ａによって選択される。同様に、ｃｌｋ＿ｂ［０］の各パルスに同期して、ＦＦ  ８２３Ａには、前段のＦＦ  ８２２Ａが記憶していたビットデータが入力されるか、または入力データ（ｄａｔａ＿ｓ［１５：０］）１４１の第４ビット（ｄａｔａ＿ｓ［４］）がシフトレジスタ回路８の外部から入力される。ＦＦ  ８２３Ａにどちらのビットデータが入力されるかはセレクタ８１３Ａによって選択される。同様に、ｃｌｋ＿ｂ［０］の各パルスに同期して、ＦＦ  ８２４Ａには、前段のＦＦ  ８２３Ａが記憶していたビットデータが入力されるか、または入力データ（ｄａｔａ＿ｓ［１５：０］）１４１の第０ビット（ｄａｔａ＿ｓ［０］）がシフトレジスタ回路８の外部から入力される。ＦＦ  ８２４Ａにどちらのビットデータが入力されるかはセレクタ８１４Ａによって選択される。
【００３２】
つまり、セレクタ８１１Ａ、８１２Ａ、８１３Ａおよび８１４Ａは、ラッチ回路７によるデータのラッチタイミングにより、パラレル入力データ（ｄａｔａ＿ｓ［１５：０］）１４１をそれぞれＳＯＡ、ＳＯＢ、ＳＯＣおよびＳＯＤからＭＳＢ出力するか、パラレル入力データ（ｄａｔａ＿ｓ［１５：０］）１４１を新規に取り込むかを決定する。セレクタ８１１Ａ、８１２Ａ、８１３Ａおよび８１４Ａの上記選択動作については、図７を参照しながら具体的に後述する。
【００３３】
シフトレジスタ８０Ａにおいては、ｃｌｋ＿ｂ［０］の最初のパルスに同期して、１段目から４段目のＦＦが、入力データ（ｄａｔａ＿ｓ［１５：０］）１４１の第１２ビット、第８ビット、第４ビットおよび第０ビットをそれぞれ外部から受け取る。続いて、ｃｌｋ＿ｂ［０］の２回目以降のパルスに同期して、２段目から４段目までのＦＦの各々は、前段のＦＦ（１段目から３段目までのＦＦ）がセレクタ８１２Ａ〜８１４Ａを介してそれぞれ出力したビットデータを受け取る。これによって、１６ビット幅パラレルデータ形式の入力データ（ｄａｔａ＿ｓ［１５：０］）１４１を構成する第１２ビット、第８ビット、第４ビットおよび第０ビットは、シフトレジスタ８０Ａの中で１ビットずつ順番にシフトされてゆき、ＦＦ  ８２４Ａの出力端から第１２ビット、第８ビット、第４ビットおよび第０ビットの順に１ビットずつ出力されてゆく。
【００３４】
シフトレジスタ８０Ｂ、８０Ｃおよび８０Ｄの内部構成もまた、シフトレジスタ８０Ａに関して上述した内部構成と同様であり、１段目から４段目の４つのＦＦが共通のクロック信号ｃｌｋ＿ｂ［０］の各パルスに同期して駆動される点もシフトレジスタ８０Ａと同様である。ただし、シフトレジスタ８０Ｂにおいては、ｃｌｋ＿ｂ［０］の最初のパルスに同期して、１段目から４段目のＦＦが、入力データ（ｄａｔａ＿ｓ［１５：０］）１４１の第１３ビット、第９ビット、第５ビットおよび第１ビットをそれぞれ外部から受け取る点がシフトレジスタ８０Ａとは異なる。これによって、１６ビット幅パラレルデータ形式の入力データ（ｄａｔａ＿ｓ［１５：０］）１４１を構成する第１３ビット、第９ビット、第５ビットおよび第１ビットは、シフトレジスタ８０Ｂの中で１ビットずつ順番にシフトされてゆき、ＦＦ  ８２４Ｂの出力端から第１３ビット、第９ビット、第５ビットおよび第１ビットの順に１ビットずつ出力されてゆく。
【００３５】
また、シフトレジスタ８０Ｃにおいては、ｃｌｋ＿ｂ［０］の最初のパルスに同期して、１段目から４段目のＦＦが、入力データ（ｄａｔａ＿ｓ［１５：０］）１４１の第１４ビット、第１０ビット、第６ビットおよび第２ビットをそれぞれ外部から受け取る点がシフトレジスタ８０Ａとは異なる。これによって、１６ビット幅パラレルデータ形式の入力データ（ｄａｔａ＿ｓ［１５：０］）１４１を構成する第１４ビット、第１０ビット、第６ビットおよび第２ビットは、シフトレジスタ８０Ｃの中で１ビットずつ順番にシフトされてゆき、ＦＦ  ８２４Ｃの出力端から第１４ビット、第１０ビット、第６ビットおよび第２ビットの順に１ビットずつ出力されてゆく。シフトレジスタ８０Ｄにおいては、ｃｌｋ＿ｂ［０］の最初のパルスに同期して、１段目から４段目のＦＦが、入力データ（ｄａｔａ＿ｓ［１５：０］）１４１の第１５ビット、第１１ビット、第７ビットおよび第３ビットをそれぞれ外部から受け取る点がシフトレジスタ８０Ａとは異なる。これによって、１６ビット幅パラレルデータ形式の入力データ（ｄａｔａ＿ｓ［１５：０］）１４１を構成する第１５ビット、第１１ビット、第７ビットおよび第３ビットは、シフトレジスタ８０Ｄの中で１ビットずつ順番にシフトされてゆき、ＦＦ  ８２４Ｄの出力端から第１５ビット、第１１ビット、第７ビットおよび第３ビットの順に１ビットずつ出力されてゆく。
【００３６】
シフトレジスタ回路８を構成する４つのシフトレジスタ８０Ａ、８０Ｂ、８０Ｃおよび８０Ｄに４ビットずつ振り分けられた入力データ（ｄａｔａ＿ｓ［１５：０］）１４１は、シフトレジスタ８０Ａ、８０Ｂ、８０Ｃおよび８０Ｄによって４本のシリアル出力信号ＳＯＡ、ＳＯＢ、ＳＯＣおよびＳＯＤに４並列でシリアル変換され、図３に示す位相シフト回路９に対して４並列でシリアル出力される。再び図３を参照すると、位相シフト回路９は、４個の遅延回路９０Ａ、９０Ｂ、９０Ｃおよび９０Ｄと、２個のノア（ＮＯＲ）ゲート６１および６２と、ナンド（ＮＡＮＤ）ゲート６３とを備えて構成される。
【００３７】
位相シフト回路９は、ｃｌｋ＿ｂの一周期を４等分して４つの位相（９０°ずつずれた４つの位相）に分け、１／４周期ずつ位相シフトされた４つの位相クロックｃｌｋ＿ｂ［０］〜ｃｌｋ＿ｂ［３］によりクロック制御される。位相シフト回路９は、ＦＦチェーンとして構成されている４つの遅延回路９０Ａ〜９０Ｄを備える。位相シフト回路９は、シフトレジスタ回路８内の４本のシフトレジスタ８０Ａ〜８０Ｄから互いに並列に出力された４ビット分の４並列のシリアル・ビット列ＳＯＡ〜ＳＯＤを、４本の遅延回路９０Ａ〜９０Ｄにそれぞれ一ビットずつ順番に読み込む。つまり、それぞれＦＦチェーンとして構成された４つの遅延回路９０Ａ〜９０Ｄにおいて、１段目のＦＦはシフトレジスタ回路８から出力されたＳＯＡ〜ＳＯＤの先頭ビットを読み込み、２段目以降のＦＦは、前段のＦＦが記憶していたビットを読み込む。例えば、遅延回路９０Ａにおいては、ＦＦチェーンを構成する１段目のＦＦ  ９１Ａはクロック信号ｃｌｋ＿ｂ［０］に同期してＳＯＡの先頭ビットを読み込む。同時に、２段目のＦＦ  ９２Ａは、クロック信号ｃｌｋ＿ｂ［０］に同期して前段のＦＦ  ９１Ａが記憶していたビットをＦＦ  ９１Ａから読み込み、３段目のＦＦ  ９３Ａはクロック信号ｃｌｋ＿ｂ［０］に同期して前段のＦＦ  ９２Ａが記憶していたビットをＦＦ  ９２Ａから読み込む。
【００３８】
遅延回路９０Ａは、直列接続されかつ同一のクロック信号ｃｌｋ＿ｂ［０］でクロック同期される３個の遅延型ＦＦ  ９１Ａ〜９３Ａを備えて構成される。また、遅延回路９０Ｂは、直列接続されかつそれぞれ異なるクロック信号ｃｌｋ＿ｂ［０］、ｃｌｋ＿ｂ［３］、ｃｌｋ＿ｂ［２］およびｃｌｋ＿ｂ［１］でクロック同期される４個の遅延型ＦＦ  ９１Ｂ〜９３Ｂを備えて構成される。さらに、遅延回路９０Ｃは、直列接続された４個の遅延型ＦＦ  ９１Ｃ〜９４Ｃを備えて構成される。ここで、遅延型ＦＦ  ９１Ｃはクロック信号ｃｌｋ＿ｂ［０］でクロック同期され、遅延型ＦＦ  ９２Ｃはクロック信号ｃｌｋ＿ｂ［３］でクロック同期される。遅延型ＦＦ  ９３Ｃおよび９４Ｃはクロック信号ｃｌｋ＿ｂ［２］でクロック同期される。また、遅延回路９０Ｄは、直列接続された４個の遅延型ＦＦ  ９１Ｄ〜９４Ｄを備えて構成される。ここで、遅延型ＦＦ  ９１Ｄはクロック信号ｃｌｋ＿ｂ［０］でクロック同期され、遅延型ＦＦ  ９２Ｄ、９３Ｄおよび９４Ｄはクロック信号ｃｌｋ＿ｂ［３］でクロック同期される。
【００３９】
位相シフト回路９において４本のＦＦチェーンとして構成された遅延回路９０Ａ〜９０Ｄの最終段に位置する同期ＦＦ  ９３Ａ、９４Ｂ、９４Ｃおよび９４Ｄは、以下のシリアル・ビット出力動作を行う。つまり、ＳＯＡ〜ＳＯＤとして４並列で入力された４ビット分のシリアル・ビット列を、最終的に４つの位相クロックｃｌｋ＿ｂ［０］、ｃｌｋ＿ｂ［１］、ｃｌｋ＿ｂ［２］およびｃｌｋ＿ｂ［３］の各々に対応して位相毎に順次シリアル出力する。その結果、シリアル化回路６の最終的な出力信号であるシリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２が位相シフト回路９からシリアル化回路６の出力端に出力されることとなる。つまり、遅延回路９０Ａを経由してＳＯＡとして出力されるシリアル・ビット列をシリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２として出力するまでの流れは、シリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２の出力側から見るとｃｌｋ＿ｂ［０］の位相タイミングに対応したものである。また、ＳＯＢ〜ＳＯＤとして出力されるシリアル・ビット列を、遅延回路９０Ｂ〜９０Ｄを経由して、シリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２として出力するまでの流れは、シリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２の出力側から見るとｃｌｋ＿ｂ［１］〜ｃｌｋ＿ｂ［３］の位相タイミングにそれぞれ対応したものである。
【００４０】
シフトレジスタ８０Ａ〜８０Ｄからの４本のシリアル・ビット列を４つの位相クロックｃｌｋ＿ｂ［０］、ｃｌｋ＿ｂ［１］、ｃｌｋ＿ｂ［２］およびｃｌｋ＿ｂ［３］に各々に対応して位相毎に順次シリアル出力するために、位相シフト回路９は以下の冗長構成を採用している。すなわち、位相シフト回路９内において４並列で構成された遅延回路９０Ａ〜９０Ｄの各々は、４位相のうち互いに異なる位相の位相クロックをそれぞれ供給される単一のＦＦで構成するのではなく、遅延回路９０Ａ〜９０Ｄの最終段ＦＦよりも前段の部分に冗長なＦＦを一つ以上直列に設けた冗長構成としている。これにより、４並列で構成された遅延回路９０Ａ〜９０Ｄの相互間において、遅延回路９０Ａ〜９０Ｄの各々がＦＦを動作させるクロック・タイミングの間にｃｌｋ＿ｂの３／４周期（３位相分）に等しいタイミング余裕を持たせることができる。例えば、シフトレジスタ回路８内の４並列のシフトレジスタ８０Ａ〜８０Ｄから４個の遅延回路９０Ａ〜９０Ｄにそれぞれ入力された４個のシリアル・ビットのパルス幅がｃｌｋ＿ｂの２周期分（＝８位相分）であったとしても、遅延回路９０Ａ〜９０Ｄ内のＦＦ冗長構成を用いて実現されるクロック・タイミング余裕により、４つの位相（ｃｌｋ＿ｂ［０］〜ｃｌｋ＿ｂ［３］）の各位相毎に正常なシリアル化動作を確実に実行することができる。
【００４１】
図３に示すシフトレジスタ回路８および位相シフト回路９が上述した回路構成となっている理由は、セルフテスト回路１０を含む回路全体を最高クロック速度で駆動した際に、以下のようにして回路内のＦＦ間においてビットデータの受け渡しが正確かつ確実に行えるようにするためである。なお、以下の説明においては、図３に示す４つの遅延回路９０Ａ〜９０Ｄがそれぞれ出力するシリアル出力ビット列をＳＯ［０］、ＳＯ［１］、ＳＯ［２］およびＳＯ［３］と表記し、これら４つのシリアル出力ビット列を総称してＳＯ［３：０］と表記する。ノーマル動作時の回路全体が最高クロック速度に対応するｃｌｋ＿ｂの１／４周期のクロック信号で駆動されている場合には、シフトレジスタ８０Ａ〜８０Ｄからのシリアル・ビット列ＳＯＡ〜ＳＯＤの各々は、以下のような状態で位相シフト回路９に出力されている。すなわち、シリアル・ビット列ＳＯＡ〜ＳＯＤの各々は、それぞれｃｌｋ＿ｂ［３：０］の４つの位相の中の対応する一つではなく４つの位相全てに同期して出力されているのと同じ状態である。
【００４２】
他方、回路全体の論理テスト動作時においては、ＳＯＡ〜ＳＯＤは、ｃｌｋ＿ｂ［０］に同期して位相シフト回路９に出力される。その結果、回路全体の論理テスト動作時において、特にＳＯＢ及びＳＯＤをｃｌｋ＿ｂ［１］およびｃｌｋ＿ｂ［３］に同期して位相シフト回路９に出力する際にＦＦに入力されるＱ−ＣＬＫのパルス間隔はｃｌｋ＿ｂの１／４周期分の長さに等しい０．２５×ｃｌｋ＿ｂの１周期となってしまう。そこで、本実施の形態は、位相シフト回路９内の４本の遅延回路９０Ａ〜９０Ｄの各々において、最終段ＦＦの前段に冗長なＦＦを複数段設ける。このようにすることで、本実施の形態は、同期設計におけるタイミング調整幅に０．７５×ｃｌｋ＿ｂの１周期（ｃｌｋ＿ｂの３／４周期に等しく、ｃｌｋ＿ｂ［３：０］の３位相分に相当する）以上の余裕を持たせつつ、ＳＯＡ〜ＳＯＤを段階的にｃｌｋ＿ｂ［３：０］に同期させてゆくことでタイミング制約を緩和する。
【００４３】
また、位相シフト回路９の遅延回路９０Ａ〜９０Ｄよりも後段の部分の回路構成としては、図３に示すようなＮＯＲ回路６１、６２およびＮＡＮＤ回路６３により構成される回路構成に替えて、以下のような回路構成も考えられるだろう。すなわち、ｃｌｋ＿ｂ［３：０］の４つの位相にそれぞれ同期する４本のシリアル・ビット出力をＡＮＤ回路によりＡＮＤすることにより一位相分のパルス・データを生成し、続いて、４位相分の４つのパルス・データをＯＲ回路によりＯＲする回路構成である。しかしながら、本実施の形態に係る位相シフト回路９においては、上記のような回路構成は採用していない。何故なら、上記の回路構成により、シリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２を生成するとヒゲが発生する可能性があるからである。そのため、位相シフト回路９においては、ヒゲを回避するために、ＮＡＮＤ回路６３が出力するシリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２の最小パルス幅を４位相分のパルス幅とする回路構成にした。具体的にはＮＯＲ回路６１および６２の４つの入力端子にそれぞれ入力されるシリアル・ビットのパルス幅が、ＣＬＫ＿ｂの1周期分に等しい一位相分となる。従って、一位相分のパリス幅に等しい最小単位の４つ分がシリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２の最小パルス幅となる。よって、例えばｃｌｋ＿ｂのクロック周波数が１００ＭＨｚである場合のように、ｃｌｋ＿ｂのクロック速度が遅い場合には、シリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２の最小パルス幅は１０ｎｓ（ナノ秒）となる。また、例えば、ｃｌｋ＿ｂのクロック周波数が１．２ＧＨｚの時は、一位相分のパリス幅が２０８．３ｐｓ（ピコ秒）となるので、シリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２の最小パルス幅は、一位相分のパリス幅の４個分に等しい１ｎｓ（ナノ秒）となる。
【００４４】
本実施の形態に係る位相シフト回路９は、シリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２の各パルスのパルス幅を最小で４位相分発生させることにより、ヒゲの発生を回避し、ＳＯ［０］〜ＳＯ［３］をＯＲすることによりシリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２を生成している。すなわち、位相シフト回路９は、ＳＯ［３：０］のＯＲを採ることによりシリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２を生成する。シリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２のパルス幅を４位相分のパルス幅に相当する最小パルス幅とした場合には、ＳＯ［０］のみについてｃｌｋ＿ｂの一周期分の幅を有するパルスが発生する。シリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２のパルス幅を５位相分〜７位相分とする場合には、ＳＯ［０］だけでなくＳＯ［０］〜ＳＯ［３］の全てにおいてｃｌｋ＿ｂの一周期分の幅を有するパルスが発生する。シリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２のパルス幅を８位相分とする場合には、ＳＯ［０］のパルス幅がｃｌｋ＿ｂの２周期分に等しくなる。
【００４５】
このように、ＮＯＲ回路６１、６２およびＮＡＮＤ回路６３を含む図３の回路構成においては、ＳＯ［３：０］の各パルスは一位相分以上の幅で重なるのでパルスの立上り／立下りが同じタイミングで発生しない。なお、本実施の形態の上記説明においては、多相クロックが４相で構成され、各位相の位相差が９０度である例を記載しているが、シリアル化回路の多相クロックの位相数は４個に限定されず、多相クロックを構成する各位相間の位相差も９０度に限定されない。本実施の形態は、多相クロックが６位相のクロックであり、位相差が６０度となる６本の位相クロックにより多相クロックが構成される場合においても、シリアル化回路６のシリアル・パルス出力のタイミング精度を向上させることが可能となる。つまり、多相クロックは、一周期をＮ分割して成るＮ個の位相にそれぞれ対応し、３６０°／Ｎだけ互いに位相シフトされたＮ個の位相クロックから構成することが可能である。
【００４６】
図５は、図３に示すテストデータ１２０をデータ選択回路１からシリアル化回路６が受け取り、シリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２としてシリアル出力する時の回路内の動作タイミングを説明するためのタイミング・チャートである。ラッチ回路７には、受け取ったテストデータを１６ビット幅のパラレルデータとして格納する１６ビット幅のレジスタが内蔵されている。当該１６ビット幅のレジスタにテストデータ１２０を読み込むことにより、図５においてＴ０＿０〜Ｔ０＿１５として示す区間において１６ビット分のビット値が設定できる。
【００４７】
図５において１４５Ａとして示す４つの区間Ｔ０＿０、Ｔ０＿４、Ｔ０＿８およびＴ０＿１２に対応するビット値は、テストデータ１２０の第０ビット値、第４ビット値、第８ビット値および第１２ビット値である。これら４つのビット値は、ｃｌｋ＿ｂ［０］のパルスの立ち上がりに同期してラッチ回路７のレジスタ内に読み込まれ、シフトレジスタ８０Ａによってシリアル変換される。図５において１４５Ｂとして示す４つの区間Ｔ０＿１、Ｔ０＿５、Ｔ０＿９およびＴ０＿１３に対応するビット値は、テストデータ１２０の第１ビット値、第５ビット値、第９ビット値および第１３ビット値である。これら４つのビット値は、ｃｌｋ＿ｂ［１］のパルスの立ち上がりに同期してラッチ回路７のレジスタ内に読み込まれ、これら４つのビット値はシフトレジスタ８０Ｂによってシリアル変換される。
【００４８】
図５において１４５Ｃとして示す４つの区間Ｔ０＿０、Ｔ０＿４、Ｔ０＿８およびＴ０＿１２に対応するビット値は、テストデータ１２０の第２ビット値、第６ビット値、第１０ビット値および第１４ビット値である。これら４つのビット値は、ｃｌｋ＿ｂ［２］のパルスの立ち上がりに同期してラッチ回路７のレジスタ内に読み込まれ、これら４つのビット値はシフトレジスタ８０Ｃによってシリアル変換される。図５において１４５Ｄとして示す４つの区間Ｔ０＿３、Ｔ０＿７、Ｔ０＿１１およびＴ０＿１５に対応するビット値は、テストデータ１２０の第３ビット値、第７ビット値、第１１ビット値および第１５ビット値である。これら４つのビット値は、ｃｌｋ＿ｂ［３］のパルスの立ち上がりに同期してラッチ回路７のレジスタ内に読み込まれ、これら４つのビット値はシフトレジスタ８０Ｄによってシリアル変換される。
【００４９】
シリアル化回路６は、区間Ｔ０＿０〜Ｔ０＿１５に対応する１６ビット分を第１のテストデータ１２０（ＤＡＴＡ＿ＴＥＳＴ０）として読み込み、シリアル変換し終わると、区間Ｔ１＿０〜Ｔ１＿１５に対応する１６ビット分を、第２のテストデータ１２０として読み込み、シリアル変換する。同様に、シリアル化回路６は、区間Ｔ１＿０〜Ｔ１＿１５に対応する１６ビット分を第２のテストデータ１２０（ＤＡＴＡ＿ＴＥＳＴ１）として読み込み、シリアル変換し終わると、区間Ｔ２＿０〜Ｔ２＿１５に対応する１６ビット分を、第３のテストデータ１２０（ＤＡＴＡ＿ＴＥＳＴ２）として読み込み、シリアル変換する。このようにして、シリアル化回路６は、連続して入力される複数のテストデータ１２０（ＤＡＴＡ＿ＴＥＳＴ０、ＤＡＴＡ＿ＴＥＳＴ１、ＤＡＴＡ＿ＴＥＳＴ２、……）を繰り返しシリアル変換し、シリアル出力信号１５２として１６ビットずつ繰り返しシリアル出力することが出来る。その際、当該１６ビット幅のレジスタに読み込まれる一つのテストデータ１２０の値を構成する１６個のビットの各々が、図３に示す位相シフト回路９の最終段ＦＦに出力され、ＮＯＲ回路６１、６２およびＮＡＮＤ回路６３を通過してシリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２として出力される。
【００５０】
シリアル化回路６の出力端からシリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２として所望のパルス長が出力されるようにラッチ回路７内の１６ビット幅のレジスタに適切な設定値を代入しておき、図４に示すｔｅｎｓｔｅｎ信号１２１をオン状態にセットすることで、ノーマルデータ１１０とテストデータ１２０のどちらが入力データ（ｄａｔａ＿ｉｎ［１５：０］）１４０としてシリアル化回路６に入力されるかを切り替えることが出来る。１６ビット幅パラレルデータ形式の入力データは、ＬＳＢ（最下位ビット）から４位相クロックを構成する各位相クロックにそれぞれに同期してラッチ回路７のレジスタ内に繰り返し読み込まれる。
【００５１】
図６は、本実施の形態に従い、図３に示す論理テスト回路２の内部構成を示すブロック図である。論理テスト回路２は、シリアル化回路６がシリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２としてシリアル出力する１６ビット分のシリアル・ビット列を４ビットずつ４並列で読み込むための４本のＦＦチェーン２０Ａ、２０Ｂ、２０Ｃおよび２０Ｄを備えている。ＦＦチェーン２０Ａ、２０Ｂ、２０Ｃおよび２０Ｄは、シリアル化回路６から４並列で４ビットずつ読み込んだ４本のシリアル・ビット列を保持しながら、当該シリアル・ビット列が既知のビット値の配列と一致するかどうか比較することによって論理テストを行う。
【００５２】
論理テスト用ＦＦチェーン２０Ａにおいては、ｃｌｋ＿ｂ［０］  １４８Ａの各パルスに同期して、ＦＦ  ２２１Ａには、シリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２として外部から１ビットずつ入力されるビットデータが入力されるか、またはＦＦ  ２２１Ａが現在記憶しているビット値が再びフィードバック入力される。ＦＦ  ２２１Ａにどちらのビットデータが入力されるかはセレクタ２１１Ａによって選択される。また、ｃｌｋ＿ｂ［０］  １４８Ａの各パルスに同期して、ＦＦ  ２２２Ａには、前段のＦＦ  ２２１Ａが記憶していたビットデータが入力されるか、またはＦＦ  ２２２Ａが現在記憶しているビット値が再びフィードバック入力される。ＦＦ  ２２２Ａにどちらのビットデータが入力されるかはセレクタ２１２Ａによって選択される。同様に、ｃｌｋ＿ｂ［０］  １４８Ａの各パルスに同期して、ＦＦ  ２２３Ａには、前段のＦＦ  ２２２Ａが記憶していたビットデータが入力されるか、またはＦＦ  ２２２Ａが現在記憶しているビット値が再びフィードバック入力される。ＦＦ  ２２３Ａにどちらのビットデータが入力されるかはセレクタ２１３Ａによって選択される。同様に、ｃｌｋ＿ｂ［０］  １４８Ａの各パルスに同期して、ＦＦ  ２２４Ａには、前段のＦＦ  ２２３Ａが記憶していたビットデータが入力されるか、またはＦＦ  ２２４Ａが現在記憶しているビット値が再びフィードバック入力される。ＦＦ  ２２４Ａにどちらのビットデータが入力されるかはセレクタ２１４Ａによって選択される。
【００５３】
つまり、セレクタ２１１Ａ、２１２Ａ、２１３Ａおよび２１４Ａは、外部から入力されるキャプチャ・イネーブル信号（ＣＡＰ＿Ｖ０）１４９Ａがオン状態であれば、外部から入力されるシリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２の４ビット分を論理テスト用ＦＦチェーン２０Ａの中に１ビットずつシフトさせながら読み込む様に各ＦＦへの入力を切り替える。他方、セレクタ２１１Ａ、２１２Ａ、２１３Ａおよび２１４Ａは、外部から入力されるキャプチャ・イネーブル信号（ＣＡＰ＿Ｖ０）１４９Ａがオフ状態であれば、論理テスト用ＦＦチェーン２０Ａを構成する４つのＦＦ  ２２１Ａ〜２２４Ａが現在記憶しているビット値（論理状態）をそのまま保持する様に各ＦＦへの入力を切り替える。
【００５４】
論理テスト用ＦＦチェーン２０Ｂにおいては、ｃｌｋ＿ｂ［１］  １４８Ｂの各パルスに同期して、ＦＦ  ２２１Ｂには、シリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２として外部から１ビットずつ入力されるビットデータが入力されるか、またはＦＦ  ２２１Ｂが現在記憶しているビット値が再びフィードバック入力される。ＦＦ  ２２１Ｂにどちらのビットデータが入力されるかはセレクタ２１１Ｂによって選択される。また、ｃｌｋ＿ｂ［１］  １４８Ｂの各パルスに同期して、ＦＦ  ２２２Ｂには、前段のＦＦ  ２２１Ｂが記憶していたビットデータが入力されるか、またはＦＦ  ２２２Ｂが現在記憶しているビット値が再びフィードバック入力される。ＦＦ  ２２２Ｂにどちらのビットデータが入力されるかはセレクタ２１２Ｂによって選択される。同様に、ｃｌｋ＿ｂ［１］  １４８Ｂの各パルスに同期して、ＦＦ  ２２３Ｂには、前段のＦＦ  ２２２Ｂが記憶していたビットデータが入力されるか、またはＦＦ  ２２２Ｂが現在記憶しているビット値が再びフィードバック入力される。ＦＦ  ２２３Ｂにどちらのビットデータが入力されるかはセレクタ２１３Ｂによって選択される。同様に、ｃｌｋ＿ｂ［１］  １４８Ｂの各パルスに同期して、ＦＦ  ２２４Ｂには、前段のＦＦ  ２２３Ｂが記憶していたビットデータが入力されるか、またはＦＦ  ２２４Ｂが現在記憶しているビット値が再びフィードバック入力される。ＦＦ  ２２４Ｂにどちらのビットデータが入力されるかはセレクタ２１４Ｂによって選択される。
【００５５】
つまり、セレクタ２１１Ｂ、２１２Ｂ、２１３Ｂおよび２１４Ｂは、外部から入力されるキャプチャ・イネーブル信号（ＣＡＰ＿Ｖ１）１４９Ｂがオン状態であれば、外部から入力されるシリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２の４ビット分を論理テスト用ＦＦチェーン２０Ｂの中に１ビットずつシフトさせながら読み込む様に各ＦＦへの入力を切り替える。他方、セレクタ２１１Ｂ、２１２Ｂ、２１３Ｂおよび２１４Ｂは、外部から入力されるキャプチャ・イネーブル信号（ＣＡＰ＿Ｖ１）１４９Ｂがオフ状態であれば、論理テスト用ＦＦチェーン２０Ｂを構成する４つのＦＦ  ２２１Ｂ〜２２４Ｂが現在記憶しているビット値（論理状態）をそのまま保持する様に各ＦＦへの入力を切り替える。
【００５６】
論理テスト用ＦＦチェーン２０Ｃにおいては、ｃｌｋ＿ｂ［２］  １４８Ｃの各パルスに同期して、ＦＦ  ２２１Ｃには、シリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２として外部から１ビットずつ入力されるビットデータが入力されるか、またはＦＦ  ２２１Ｃが現在記憶しているビット値が再びフィードバック入力される。ＦＦ  ２２１Ｃにどちらのビットデータが入力されるかはセレクタ２１１Ｃによって選択される。また、ｃｌｋ＿ｂ［２］  １４８Ｃの各パルスに同期して、ＦＦ  ２２２Ｃには、前段のＦＦ  ２２１Ｃが記憶していたビットデータが入力されるか、またはＦＦ  ２２２Ｃが現在記憶しているビット値が再びフィードバック入力される。ＦＦ  ２２２Ｃにどちらのビットデータが入力されるかはセレクタ２１２Ｃによって選択される。同様に、ｃｌｋ＿ｂ［２］  １４８Ｃの各パルスに同期して、ＦＦ  ２２３Ｃには、前段のＦＦ  ２２２Ｃが記憶していたビットデータが入力されるか、またはＦＦ  ２２２Ｃが現在記憶しているビット値が再びフィードバック入力される。ＦＦ  ２２３Ｃにどちらのビットデータが入力されるかはセレクタ２１３Ｃによって選択される。同様に、ｃｌｋ＿ｂ［２］  １４８Ｃの各パルスに同期して、ＦＦ  ２２４Ｃには、前段のＦＦ  ２２３Ｃが記憶していたビットデータが入力されるか、またはＦＦ  ２２４Ｃが現在記憶しているビット値が再びフィードバック入力される。ＦＦ  ２２４Ｃにどちらのビットデータが入力されるかはセレクタ２１４Ｃによって選択される。
【００５７】
つまり、セレクタ２１１Ｃ、２１２Ｃ、２１３Ｃおよび２１４Ｃは、外部から入力されるキャプチャ・イネーブル信号（ＣＡＰ＿Ｖ２）１４９Ｃがオン状態であれば、外部から入力されるシリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２の４ビット分を論理テスト用ＦＦチェーン２０Ｃの中に１ビットずつシフトさせながら読み込む様に各ＦＦへの入力を切り替える。他方、セレクタ２１１Ｃ、２１２Ｃ、２１３Ｃおよび２１４Ｃは、外部から入力されるキャプチャ・イネーブル信号（ＣＡＰ＿Ｖ２）１４９Ｃがオフ状態であれば、論理テスト用ＦＦチェーン２０Ｃを構成する４つのＦＦ  ２２１Ｃ〜２２４Ｃが現在記憶しているビット値（論理状態）をそのまま保持する様に各ＦＦへの入力を切り替える。
【００５８】
論理テスト用ＦＦチェーン２０Ｄにおいて、ｃｌｋ＿ｂ［３］  １４８Ｄの各パルスに同期して、ＦＦ  ２２１Ｄには、シリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２として外部から１ビットずつ入力されるビットデータが入力されるか、またはＦＦ  ２２１Ｄが現在記憶しているビット値が再びフィードバック入力される。ＦＦ  ２２１Ｄにどちらのビットデータが入力されるかはセレクタ２１１Ｄによって選択される。また、ｃｌｋ＿ｂ［２］  １４８Ｄの各パルスに同期して、ＦＦ  ２２２Ｄには、前段のＦＦ  ２２１Ｄが記憶していたビットデータが入力されるか、またはＦＦ  ２２２Ｄが現在記憶しているビット値が再びフィードバック入力される。ＦＦ  ２２２Ｄにどちらのビットデータが入力されるかはセレクタ２１２Ｄによって選択される。同様に、ｃｌｋ＿ｂ［３］  １４８Ｄの各パルスに同期して、ＦＦ  ２２３Ｄには、前段のＦＦ  ２２２Ｄが記憶していたビットデータが入力されるか、またはＦＦ  ２２２Ｄが現在記憶しているビット値が再びフィードバック入力される。ＦＦ  ２２３Ｄにどちらのビットデータが入力されるかはセレクタ２１３Ｄによって選択される。同様に、ｃｌｋ＿ｂ［３］  １４８Ｄの各パルスに同期して、ＦＦ  ２２４Ｄには、前段のＦＦ  ２２３Ｄが記憶していたビットデータが入力されるか、またはＦＦ  ２２４Ｄが現在記憶しているビット値が再びフィードバック入力される。ＦＦ  ２２４Ｄにどちらのビットデータが入力されるかはセレクタ２１４Ｄによって選択される。
【００５９】
つまり、セレクタ２１１Ｄ、２１２Ｄ、２１３Ｄおよび２１４Ｄは、外部から入力されるキャプチャ・イネーブル信号（ＣＡＰ＿Ｖ３）１４９Ｄがオン状態であれば、外部から入力されるシリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２の４ビット分を論理テスト用ＦＦチェーン２０Ｄの中に１ビットずつシフトさせながら読み込む様に各ＦＦへの入力を切り替える。他方、セレクタ２１１Ｄ、２１２Ｄ、２１３Ｄおよび２１４Ｄは、外部から入力されるキャプチャ・イネーブル信号（ＣＡＰ＿Ｖ３）１４９Ｄがオフ状態であれば、論理テスト用ＦＦチェーン２０Ｄを構成する４つのＦＦ  ２２１Ｄ〜２２４Ｄが現在記憶しているビット値（論理状態）をそのまま保持する様に各ＦＦへの入力を切り替える。
【００６０】
図２に示すＣＰＵ１１がｔｅｓｔｅｎ信号１２１をオン状態にし、シリアル化回路６に入力される入力データ（ｄａｔａ＿ｉｎ［１５：０］）１４０をテストデータ１２０に切り替えると、論理テスト回路２は、以下の手順に従って論理テストを実行する。まず、論理テスト回路２は、図２に示すシリアル出力信号（ｓｅｒ＿ｏｕｔ）１５２を内部のバッファ（図示なし）にＳＥＲＯＵＴ信号として１ビットずつ読み込む動作を開始する。続いて、論理テスト用ＦＦチェーン２０Ａは、キャプチャ・イネーブル信号１４９Ａ（図６のＣＡＰ＿Ｖ０）のオフ状態からオン状態への変化をトリガとして、位相クロックｃｌｋ＿ｂ［０］（図６の１４８Ａ）に同期してＳＥＲＯＵＴ信号を１ビットずつサンプリングしながら読み込んでゆく。
【００６１】
これと同時並行して、論理テスト用ＦＦチェーン２０Ｂは、キャプチャ・イネーブル信号１４９Ｂ（図６のＣＡＰ＿Ｖ１）のオフ状態からオン状態への変化をトリガとして、位相クロックｃｌｋ＿ｂ［１］（図６の１４８Ｂ）に同期してＳＥＲＯＵＴ信号を１ビットずつサンプリングしながら読み込んでゆく。これと同時並行して、論理テスト用ＦＦチェーン２０Ｃは、キャプチャ・イネーブル信号１４９Ｃ（図６のＣＡＰ＿Ｖ２）のオフ状態からオン状態への変化をトリガとして、位相クロックｃｌｋ＿ｂ［２］（図６の１４８Ｃ）に同期してＳＥＲＯＵＴ信号を１ビットずつサンプリングしながら読み込んでゆく。これと同時並行して、論理テスト用ＦＦチェーン２０Ｄは、キャプチャ・イネーブル信号１４９Ｄ（図６のＣＡＰ＿Ｖ３）のオフ状態からオン状態への変化をトリガとして、位相クロックｃｌｋ＿ｂ［３］（図６の１４８Ｄ）に同期してＳＥＲＯＵＴ信号を１ビットずつサンプリングしながら読み込んでゆく。
【００６２】
図３に示す４つの遅延回路９０Ａ〜９０Ｄの各々から出力される４本のシリアル出力ビット列ＳＯ［０］〜ＳＯ［３］は、４つの位相クロックｃｌｋ＿ｂ［０］〜ｃｌｋ＿ｂ［３］にそれぞれ同期して出力されていた。従って、論理テスト用ＦＦチェーン２０Ａ内の４つのＦＦ  ２２１Ａ〜２２４Ａが、位相クロックｃｌｋ＿ｂ［０］に同期して、４ビット分のＳＥＲＯＵＴ信号を読み込むと、論理テスト用ＦＦチェーン２０Ａ内には、シリアル出力ビット列ＳＯ［０］に含まれる４ビット分が読み込まれることとなる。同様に、論理テスト用ＦＦチェーン２０Ｂ内の４つのＦＦ  ２２１Ｂ〜２２４Ｂが、位相クロックｃｌｋ＿ｂ［１］に同期して、４ビット分のＳＥＲＯＵＴ信号を読み込むと、論理テスト用ＦＦチェーン２０Ｂ内には、シリアル出力ビット列ＳＯ［１］に含まれる４ビット分が読み込まれることとなる。同様に、論理テスト用ＦＦチェーン２０Ｃ内の４つのＦＦ  ２２１Ｃ〜２２４Ｃが、位相クロックｃｌｋ＿ｂ［２］に同期して、４ビット分のＳＥＲＯＵＴ信号を読み込むと、論理テスト用ＦＦチェーン２０Ｃ内には、シリアル出力ビット列ＳＯ［２］に含まれる４ビット分が読み込まれることとなる。論理テスト用ＦＦチェーン２０Ｄ内の４つのＦＦ  ２２１Ｄ〜２２４Ｄが、位相クロックｃｌｋ＿ｂ［３］に同期して、４ビット分のＳＥＲＯＵＴ信号を読み込むと、論理テスト用ＦＦチェーン２０Ｄ内には、シリアル出力ビット列ＳＯ［３］に含まれる４ビット分が読み込まれることとなる。
【００６３】
次に、論理テスト用ＦＦチェーン２０Ａ内の４つのＦＦ  ２２１Ａ〜２２４Ａが、位相クロックｃｌｋ＿ｂ［０］に同期して、４ビット分のＳＥＲＯＵＴ信号を読み込み終えた後に、論理テスト用ＦＦチェーン２０Ａは、ＳＥＲＯＵＴ信号をサンプリングして読み込む動作を停止する。当該読み込み動作の停止は、論理テスト用ＦＦチェーン２０Ａ内の４つのＦＦ  ２２１Ａ〜２２４Ａに出力されるキャプチャ・イネーブル信号１４９Ａ（図６のＣＡＰ＿Ｖ０）のオン状態からオフ状態への変化をトリガとして行われる。同様に、論理テスト用ＦＦチェーン２０Ｂ内の４つのＦＦ  ２２１Ｂ〜２２４Ｂが、位相クロックｃｌｋ＿ｂ［１］に同期して、４ビット分のＳＥＲＯＵＴ信号を読み込み終えた後に、論理テスト用ＦＦチェーン２０Ｂは、ＳＥＲＯＵＴ信号をサンプリングして読み込む動作を停止する。当該読み込み動作の停止は、論理テスト用ＦＦチェーン２０Ｂ内の４つのＦＦ  ２２１Ｂ〜２２４Ｂに出力されるキャプチャ・イネーブル信号１４９Ｂ（図６のＣＡＰ＿Ｖ１）のオン状態からオフ状態への変化をトリガとして行われる。
【００６４】
同様に、論理テスト用ＦＦチェーン２０Ｃ内の４つのＦＦ  ２２１Ｃ〜２２４Ｃが、位相クロックｃｌｋ＿ｂ［２］に同期して、４ビット分のＳＥＲＯＵＴ信号を読み込み終えた後に、論理テスト用ＦＦチェーン２０Ｃは、ＳＥＲＯＵＴ信号をサンプリングして読み込む動作を停止する。当該読み込み動作の停止は、論理テスト用ＦＦチェーン２０Ｃ内の４つのＦＦ  ２２１Ｃ〜２２４Ｃに出力されるキャプチャ・イネーブル信号１４９Ｃ（図６のＣＡＰ＿Ｖ２）のオン状態からオフ状態への変化をトリガとして行われる。同様に、論理テスト用ＦＦチェーン２０Ｄ内の４つのＦＦ  ２２１Ｄ〜２２４Ｄが、位相クロックｃｌｋ＿ｂ［３］に同期して、４ビット分のＳＥＲＯＵＴ信号を読み込み終えた後に、論理テスト用ＦＦチェーン２０Ｄは、ＳＥＲＯＵＴ信号をサンプリングして読み込む動作を停止する。当該読み込み動作の停止は、論理テスト用ＦＦチェーン２０Ｄ内の４つのＦＦ  ２２１Ｄ〜２２４Ｄに出力されるキャプチャ・イネーブル信号１４９Ｄ（図６のＣＡＰ＿Ｖ３）のオン状態からオフ状態への変化をトリガとして行われる。
【００６５】
次に、４本の論理テスト用ＦＦチェーン２０Ａ〜２０Ｄがそれぞれ保持している４ビット分の４本のシリアル・ビット列データ（Ｔ０）をレジスタアクセスにより１６ビットデータとして読み出し、１６ビット幅のパラレルデータであるテストデータ１２０の正しい値として既知のビットパターンと比較する。当該読み出された１６ビットデータのうち、一つ以上のビット値が既知のビットパターン内の対応するビット値と異なる場合には、回路内のいずれかのＦＦが故障しているか異常動作している事がわかる。例えば、ＳＯ［０］〜ＳＯ［３］の各々に対応する４並列の４ビットデータの中で、ｃｌｋ＿ｂ［０］と同期して出力されるＳＯ［０］に対応する４ビットデータが既知のビットパターンと異なるビット値を含んでいるとする。その場合には、シリアル化回路６内においてＳＯ［０］に対応するｃｌｋ＿ｂ［０］と同期した一連の信号経路上にある一つ以上のＦＦが故障しているか異常動作していると判定できる。
【００６６】
論理テストは、図６のＣＡＰ＿Ｖ０〜ＣＡＰ＿Ｖ３（図６のキャプチャ・イネーブル信号１４９Ａ〜１４９Ｄ）にそれぞれ対応した４本の論理テスト用ＦＦチェーン２０Ａ〜２０Ｄの各々についてテストデータ１２０のビットパターンを様々に変化させながら繰り返し行うことが好適である。このようなビットパターンの候補としては、０１０１、１０１０、１０００、０１００、００１０および０００１などが考えられる。例えば、論理テスト用ＦＦチェーン２０Ａに読み込まれるビット列Ｔ００〜Ｔ０３は、シリアル化回路６内においてＳＯ［０］に対応するｃｌｋ＿ｂ［０］と同期した一連の信号経路を経由して読み込まれる。従って、テストデータ（ＤＡＴＡ＿ＴＥＳＴ＊）１２０の第０ビット値、第４ビット値、第８ビット値および第１２ビット値としてビットパターン「０１０１」を設定することでＴ００〜Ｔ０３には０１の繰り返しパターンが常に保持されることになる。そのため、論理テスト用ＦＦチェーン２０Ａから保持データを読み出したときに、読み出したビット列が「０１０１」のビットパターンになっていない場合、以下の２つの場合のいずれかに該当することが分かる。すなわち、シリアル化回路６内においてＳＯ［０］に対応するｃｌｋ＿ｂ［０］と同期した一連の信号経路に位置するいずれか一つ以上のＦＦが「０１０１」のビットパターンで出力できていない。もしくは、論理テスト用ＦＦチェーン２０Ａ内の一つ以上のＦＦが「０１０１」のビットパターンで出力できていない。
【００６７】
図３記載の論理テスト回路２内において、図６に示す４つの制御信号ＣＡＰ＿Ｖ０〜ＣＡＰ＿Ｖ３（図６のキャプチャ・イネーブル信号１４９Ａ〜１４９Ｄ）は、キャプチャ・イネーブル信号生成部によって生成される。キャプチャ・イネーブル信号生成部の回路構造を図７に示す。図７に示すように、キャプチャ・イネーブル信号生成部の回路構造は、直列に接続された４段のＦＦ  ２０１、２０２、２０３および２０４によって構成されている。図２に示すＣＰＵ１１が図示しない制御レジスタの該当する制御ビットに対してデータ書き込み（図２の１３２）を行うと、論理テスト回路２に出力されるＣＡＰ＿ＥＮ信号１４７がオン状態となり、ＦＦ  ２０１に出力されるＣＡＰ＿ＥＮ＿Ｇ信号１４７もオン状態となる。すると、ＦＦ  ２０１は、ｃｌｋ＿ｂ［０］  １４８Ａに同期してＣＡＰ＿Ｖ０信号（図６のキャプチャ・イネーブル信号１４９Ａ）を次段ＦＦ  ２０２に出力すると共に、論理テスト用ＦＦチェーン２０Ａに出力する。
【００６８】
続いて、ＣＡＰ＿Ｖ０信号（図６のキャプチャ・イネーブル信号１４９Ａ）を受け取ったＦＦ２０２は、ｃｌｋ＿ｂ［３］  １４８Ｄに同期して、ＣＡＰ＿Ｖ３信号（図６のキャプチャ・イネーブル信号１４９Ｄ）を次段ＦＦ  ２０３に出力すると共に、論理テスト用ＦＦチェーン２０Ｄに出力する。続いて、ＣＡＰ＿Ｖ３信号（図６のキャプチャ・イネーブル信号１４９Ｄ）を受け取ったＦＦ２０３は、ｃｌｋ＿ｂ［２］  １４８Ｃに同期して、ＣＡＰ＿Ｖ２信号（図６のキャプチャ・イネーブル信号１４９Ｃ）を次段ＦＦ  ２０４に出力すると共に、論理テスト用ＦＦチェーン２０Ｃに出力する。最後に、ＣＡＰ＿Ｖ２信号（図６のキャプチャ・イネーブル信号１４９Ｃ）を受け取ったＦＦ２０４は、ｃｌｋ＿ｂ［１］  １４８Ｂに同期して、ＣＡＰ＿Ｖ１信号（図６のキャプチャ・イネーブル信号１４９Ｂ）を出力すると共に、論理テスト用ＦＦチェーン２０Ｂに出力する。
【００６９】
以上より、図７に示すキャプチャ・イネーブル信号生成部は、ＣＡＰ＿ＥＮ＿Ｇ信号１４７を４段構成のＦＦ  ２０１〜２０４の各段毎にｃｌｋ＿ｂの３／４周期に等しい３位相ずつずれたクロック信号でタイミング・シフトする形で、図６に示す４つの制御信号ＣＡＰ＿Ｖ０〜ＣＡＰ＿Ｖ３（図６のキャプチャ・イネーブル信号１４９Ａ〜１４９Ｄ）を生成する。そして、図７に示すキャプチャ・イネーブル信号生成部は、４つの制御信号ＣＡＰ＿Ｖ０〜ＣＡＰ＿Ｖ３（図６のキャプチャ・イネーブル信号１４９Ａ〜１４９Ｄ）を４本の論理テスト用ＦＦチェーン２０A〜２０Dにそれぞれ出力する。また、図８は、図７に示す回路構造により生成されるＣＡＰ＿Ｖ０〜ＣＡＰ＿Ｖ３（図６のキャプチャ・イネーブル信号１４９Ａ〜１４９Ｄ）およびＣＡＰ＿ＥＮ＿Ｇ信号１４７と他のクロック信号との間の関係性を説明するタイミング・チャートである。
【００７０】
以上のように、本実施の形態は、従来技術のようにテスト対象回路の動作モードをノーマル動作モードからＳＣＡＮモードへと切り替えることにより、回路内の各ＦＦの論理状態（「０」または「１」）のトレース監視動作をＯＮ／ＯＦＦ切換えするのではない。むしろ、本実施の形態においては、テスト対象回路の内部に論理テスト用回路２を設け、論理テスト用回路２は、ビット列データを読み込んで保持した状態でテストするための論理テスト用ＦＦチェーン２０Ａ〜２０Ｄをテスト対象回路内にある既存のＦＦチェーンとは別個に含んでいる。論理テスト回路２は、テスト対象回路のシリアル化回路出力を論理テスト用ＦＦチェーン内２０Ａ〜２０Ｄに読み込む動作の実行開始と実行停止をＣＡＰ＿Ｖ０〜ＣＡＰ＿Ｖ３信号（キャプチャ・イネーブル信号１４９Ａ〜１４９Ｄ）のＯＮ／ＯＦＦにより切り替える構成を採る。そして、論理テスト回路２は、パラレルデータを構成する全てのビットを論理テスト用ＦＦチェーン２０Ａ〜２０Ｄに読み込み終わった後に、読み込んだ全てのビットを既知のビットパターンと比較する構成となっている。
【００７１】
本実施の形態に係る論理テスト回路２において、論理テスト用ＦＦチェーン２０Ａ〜２０Ｄはｃｌｋ＿ｂ［３：０］を構成する４つの位相クロックに対応して４並列で構成されている。また、４並列に構成された４本の論理テスト用ＦＦチェーン２０Ａ〜２０Ｄの各々は、シリアル化回路６の出力を該当する位相毎のクロック信号に同期して１ビットずつデータをシフトさせながら各ＦＦチェーン内に読み込んでゆく。その際、並列構成された４本の論理テスト用ＦＦチェーン２０Ａ〜２０Ｄの各々のビット読み込み動作をＯＮ／ＯＦＦ切換えするＣＡＰ＿Ｖ０〜ＣＡＰ＿Ｖ３信号（キャプチャ・イネーブル信号１４９Ａ〜１４９Ｄ）は、４つの位相に対応した４本の論理テスト用ＦＦチェーン２０Ａ〜２０Ｄの間においてｃｌｋ＿ｂの３／４周期ずつ位相シフトされている。
【００７２】
図８を参照すると、ＣＡＰ＿Ｖ０（キャプチャ・イネーブル信号１４９Ａ）は、位相クロックｃｌｋ＿ｂ［０］  １４８Ａのパルスの立ち上がりと同期してオフ状態からオン状態に変化している。ＣＡＰ＿Ｖ３（キャプチャ・イネーブル信号１４９Ｄ）は、位相クロックｃｌｋ＿ｂ［３］  １４８Ｄのパルスの立ち上がりと同期してオフ状態からオン状態に変化している。ＣＡＰ＿Ｖ２（キャプチャ・イネーブル信号１４９Ｃ）は、位相クロックｃｌｋ＿ｂ［２］  １４８Ｃのパルスの立ち上がりと同期してオフ状態からオン状態に変化している。ＣＡＰ＿Ｖ１（キャプチャ・イネーブル信号１４９Ｂ）は、位相クロックｃｌｋ＿ｂ［１］  １４８Ｂのパルスの立ち上がりと同期してオフ状態からオン状態に変化している。また、ＣＡＰ＿ＥＮ＿Ｇ信号１４７は、クロック信号１８１（図８のｃｌｋ＿ｇ）のパルスの立ち上がりに同期してオフ状態からオン状態へと変化している。図８において、ｌｏａｄ信号１８３は、ＣＡＰ＿Ｖ０〜ＣＡＰ＿Ｖ３信号１４９Ａ〜１４９Ｄがオン状態へと変化するのに合わせて、ＳＥＲＯＵＴ信号を論理テスト用ＦＦチェーン２０Ａ〜２０Ｄ内に読み込む動作の開始タイミングの同期をとるためのパルス信号である。ｃｎｔ［１：０］信号１８２は、論理テスト用ＦＦチェーン２０Ａ〜２０Ｄ内に読み込まれたビット数を数え上げる２ビット幅のカウンタに対応したパルス信号である。
【００７３】
本実施の形態においては、セルフテスト回路１０の回路構成およびクロック制御動作を上記構成のとおりとした。その結果、本実施の形態においては、位相シフト回路９が、シフトレジスタ回路８内の４並列のシフトレジスタ８０Ａ〜８０Ｄからそれぞれ入力された４個のビットを４つの位相クロック（ｃｌｋ＿ｂ［０］  １４８Ａ〜ｃｌｋ＿ｂ［３］  １４８Ｄ）の各々に対応して位相毎に順次シリアル出力することが可能となった。その際に、本実施の形態においては、ｃｌｋ＿ｂの１／４周期のクロック周波数に対応する最高クロック速度で回路全体を駆動しても、回路全体の同期設計においてタイミング調整に充分な余裕を持たせることが可能となった。
【００７４】
より具体的には、まず、シフトレジスタ回路８内のシフトレジスタ８０Ａ〜８０Ｄ、位相シフト回路９内の遅延回路９０Ａ〜９０Ｄおよび論理テスト回路２内の論理テスト用ＦＦチェーン２０Ａ〜２０Ｄを、４並列構成のＦＦチェーンで構成して４並列動作させている。さらに、４並列構成された遅延回路９０Ａ〜９０Ｄの各々のＦＦチェーンを冗長構成とすることにより、遅延回路９０Ａ〜９０Ｄの相互間において、ＦＦを動作させるクロック・タイミングの間に充分な余裕（ｃｌｋ＿ｂの３／４周期分）を持たせている。さらに、遅延回路９０Ａ〜９０Ｄの相互間において、ＦＦを動作させるクロック・タイミングの間にｃｌｋ＿ｂの３／４周期分の余裕を持たせたことに対応して、論理テスト回路２内において、４つのキャプチャ・イネーブル信号１４９Ａ〜１４９Ｄ（ＣＡＰ＿Ｖ０〜ＣＡＰ＿Ｖ３信号）は、以下のようにタイミング・シフトされている。すなわち、論理テスト回路２内において、４つの位相に対応した４本の論理テスト用ＦＦチェーン２０Ａ〜２０Ｄにそれぞれ出力される４つのキャプチャ・イネーブル信号１４９Ａ〜１４９Ｄは、互いにｃｌｋ＿ｂの３／４周期ずつ位相シフトされている。ここで、ＣＡＰ＿Ｖ０〜ＣＡＰ＿Ｖ３信号（キャプチャ・イネーブル信号１４９Ａ〜１４９Ｄ）は、４本の論理テスト用ＦＦチェーン２０Ａ〜２０Ｄの各々のビット読み込み動作をＯＮ／ＯＦＦ切換えするイネーブル信号である。本実施の形態に係るセルフテスト回路１０をこのような回路構成とすることにより、ｃｌｋ＿ｂの１／４周期のクロック周波数に対応する最高クロック速度で回路全体を駆動しても、回路全体の同期設計においてタイミング調整に充分な余裕を持たせることが可能となる。加えて、セルフテスト回路装置１０において、ノーマル動作モードからＳＣＡＮモードへの動作モード切り替えの必要なしに、テスト対象回路装置内の各フリップフロップの論理トレースによる故障検出テストを行うことが可能となった。
【００７５】
図９は、本実施の形態に係るセルフテスト回路１０を図１に示すシリアル化回路１０６と置き換えて構成したデータ処理回路１０１全体の回路構成を示している。図９において、シリアル転送データ生成部１０２、パラレル転送用クロック生成部１０３およびＰＷＭ変調データ生成部１０４がそれぞれ生成した３つの１６ビット幅パラレルデータｄａｔａ１、ｄａｔａ２およびｄａｔａ３の中のいずれか一つがセレクタ回路１０５により選択されて出力パラレルデータ（ｄａｔａ＿ｉｎ［１５：０］）１９６としてセルフテスト回路１０に出力される。セルフテスト回路１０は、出力パラレルデータ（ｄａｔａ＿ｉｎ［１５：０］）１９６をノーマルデータ１１０またはテストデータ（ＤＡＴＡ＿ＴＥＳＴ＊）１２０として受け取り、シリアル化回路６への入力データとする。セルフテスト回路１０内において、テストデータ１２０を受け取ったシリアル化回路６は、テストデータ１２０をシリアル信号に変換し、論理テスト回路２にシリアル出力信号ＳＥＲＯＵＴとして出力する。シリアル出力信号ＳＥＲＯＵＴを受け取った論理テスト回路２は、クロックｃｌｋ＿ｂに同期して、ＣＰＵ１１からの指示（図９のデータライト信号１３２）に従い、テストデータ１２０の１６ビット幅のビットパターンを基準とする論理テストを実行する。
【００７６】
セレクタ回路１０５が出力したパラレルデータ１９６をセルフテスト回路１０がノーマルデータ１１０として受け取るか、テストデータ１２０として受け取るかは、データ選択回路１に入力されるｔｅｓｔｅｎ信号１２１によって切り替えることが可能である。ＣＰＵ１１は、図示しない制御レジスタ内の該当する制御ビットに対してデータライト（データ書き込み）信号１３１を出力することにより、データ選択回路１に入力されるｔｅｓｔｅｎ信号１２１をオフ状態からオン状態にする。
【００７７】
ＰＷＭ変調データ生成部１０４はＰＷＭ変調データのデューティ設定用入力信号ｐｗｍ＿ｉｎ  １９４に従って所定の搬送波パルス信号をパルス幅変調して、パルス幅変調後のパラレルデータｄａｔａ３をセレクタ回路１０５に出力する。セルフテスト回路１０が、ＰＷＭ変調データ生成部１０４からセレクタ回路１０５を介してパラレルデータｄａｔａ３を入力され、ノーマルデータ１１０として受け取ると、セルフテスト回路１０は、パラレルデータｄａｔａ３をｃｌｋ＿ｂの１／４周期に対応する最高クロック速度でシリアル信号に変換する。その結果、当該電子写真方式の画像形成に関する光書込装置において、主走査の画像領域の前後に光センサを配置し、その光センサで光を検出する時間幅によって温度上昇等による主走査倍率の変動を補正するためにＰＷＭ変調データを最高クロック速度で生成可能となる。
【００７８】
つまり、セルフテスト回路１０内のシリアル化回路６がシリアル信号に変換するパラレルデータｄａｔａ３は、ＰＷＭ変調データ生成部１０４が所望のデューティ比を有するように生成したパラレルデータ形式のビット列である。従って、セルフテスト回路１０内のシリアル化回路６がパラレルデータｄａｔａ３をシリアル変換して成るパルス列は、ＰＷＭ変調データ生成部１０４が設定した所望のデューティ比を有するパルス列である。そして、セルフテスト回路１０は、当該パルス列を、上述したＰＷＭ変調のために、シリアル出力信号１５１として外部に出力する。さらに、セルフテスト回路１０が、既知のビットパターンのパラレルデータをテストデータ１２０として受け取り、論理テスト回路２によるセルフテストを実行するようにすれば、セルフテスト回路１０を含むデータ処理回路１０１全体において、最高クロック速度でのセルフテストが実行可能となる。
【００７９】
＜実施の形態１の効果＞
第１に、本実施の形態は、セルフテスト回路装置１０において、特許文献１のようなノーマル動作モードからスキャン・モードへの動作モード切り替えの必要なしに、テスト対象回路装置内の各ＦＦの論理トレースによる故障検出テストを行うことができる。第２に、本実施の形態は、セルフテスト回路装置１０において、最高クロック速度からクロック動作速度を落とすことなく、しかも高い故障検出率を維持しながら、テスト対象回路装置内の各ＦＦの論理トレースによる故障検出テストを行うことができる。第３に、本実施の形態は、セルフテスト回路１０全体の同期設計におけるタイミング調整に充分な余裕を持たせることによって、セルフテスト回路１０全体の正確で確実なクロック制御動作を保証することができる。
【００８０】
＜実施の形態２＞
図１０は、実施の形態２として、論理テスト回路２をよりコンパクトな回路規模とするための第１の変形実施例を示す。本実施の形態においては、ＣＡＰ＿Ｖ０〜ＣＡＰ＿Ｖ３信号（キャプチャ・イネーブル信号１４９Ａ〜１４９Ｄ）の中のいずれか一つを選択するセレクタ２３が設けられている。さらに、本実施の形態においては、論理テスト用ＦＦチェーンが同期すべきクロック信号を４位相のクロックｃｌｋ＿ｂ［０］〜ｃｌｋ＿ｂ［３］の中から一つ選択するためのセレクタ２４が設けられている。これにより、本実施の形態においては、４本あった論理テスト用ＦＦチェーンを１本に共用化することが出来る。図９に示すＣＰＵ１１は、セレクタ２３に選択信号であるＣＡＰ＿ＳＥＬ信号を出力することにより、ＣＡＰ＿Ｖ０〜ＣＡＰ＿Ｖ３信号（キャプチャ・イネーブル信号１４９Ａ〜１４９Ｄ）の中のいずれか一つをセレクタ２３に選択させ、論理テスト用ＦＦチェーンに出力させる。図９に示すＣＰＵ１１は、セレクタ２４に選択信号を出力することにより、論理テスト用ＦＦチェーンが同期すべきクロック信号を４位相のクロックｃｌｋ＿ｂ［０］〜ｃｌｋ＿ｂ［３］の中から選択させる。
【００８１】
当該論理テスト用ＦＦチェーンは、４つのＦＦ  ２２Ａ、２２Ｂ、２２Ｃおよび２２Ｄを直列接続した４段構成のＦＦチェーンである。本実施の形態において、セレクタ２１Ａ、２１Ｂ、２１Ｃおよび２１Ｄにより、ビット列の読み込みと記憶したビット値の保持とを切り替える点は、実施の形態１の論理テスト用ＦＦチェーン２０Ａ〜２０Ｄにおいて図６を用いて上述したセレクタ８１１〜８１４と同様である。以上により、本実施の形態によれば、論理テスト回路２の回路構成を最小構成で済ませることができる。
【００８２】
＜実施の形態３＞
図１１は、実施の形態３として、論理テスト回路２へ入力されるべきＳＥＲＯＵＴ信号を、分周器を介して出力する第２の変形実施例を示す。本実施の形態においては、シリアル化回路６が出力するシリアル出力信号（ｓｅｒ＿ｏｕｔ［１５：０］）を４並列で構成された４つの分周器５０１〜５０４へ入れてから論理テスト回路２内の論理テスト用ＦＦチェーン２０Ａ〜２０Ｄ（図６）に出力する（図１１の６０１〜６０４）。その際、分周器５０１は、ｃｌｋ＿ｂ［０］に同期して動作し、分周器５０２は、ｃｌｋ＿ｂ［１］に同期して動作し、分周器５０３は、ｃｌｋ＿ｂ［２］に同期して動作し、分周器５０４は、ｃｌｋ＿ｂ［３］に同期して動作する。その結果、セルフテスト回路１０内のシリアル化回路６が出力するシリアル出力信号１５２は、４個の分周器５０１〜５０４により４個の位相クロック信号ｃｌｋ＿ｂ［０］〜ｃｌｋ＿ｂ［３］に同期して分周されて、論理テスト回路２内のＮ並列構成された論理テスト用ＦＦチェーン２０Ａ〜２０Ｄに出力される。これにより、本実施の形態によれば、図３に示す位相シフト回路９の遅延回路９０Ａ〜９０Ｄに含まれるＦＦの出力だけでなく、ＮＯＲ回路６１、６２およびＮＡＮＤ回路６３の故障も分周された信号を見ることで検出することが出来る。
【００８３】
＜その他の一般化された実施例＞
以上のとおり、本実施の形態に係るセルフテスト回路１０の構成と動作について説明してきた。上記説明においては、ＰＷＭ変調データを１６ビット幅パラレルデータとして供給する回路部分とセルフテスト回路１０とを一体化した集積回路として図９に示すようなデータ処理回路を構成することを前提としていた。これは、ＭＦＰ等の光書き込み装置において、主走査画像領域の前後に配置された光センサで光を検出する時間幅によって温度上昇等による主走査倍率の変動を補正するためにＰＷＭ変調データを最高クロック速度で生成するためであった。しかしながら、本実施の形態に係るセルフテスト回路１０に用いられている動作原理と回路構造が適用可能な対象は、上記のようなＭＦＰ等の光書き込み装置において主走査倍率変動を補正するためにＰＷＭ変調データを生成する半導体集積回路に限定されない。むしろ、本実施の形態に係るセルフテスト回路１０の動作原理と回路構造は、セルフテスト機能を実装する必要のある任意の半導体集積回路に適用することができる。また、本実施の形態に係るセルフテスト回路１０の動作原理と回路構造は、その他の任意の応用用途に利用することも可能である。その他の任意の応用用途としては、例えば、セルフテスト機能を組み込んだ半導体回路をシミュレートする回路シミュレータまたはセルフテスト機能をプログラム可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）のような応用用途が考えられる。
【００８４】
上述した実施の形態１〜実施の形態３においては、多相クロックは、４位相のクロック信号として説明してきた。また、上述した実施の形態１〜実施の形態３においては、ノーマルデータ１１０またはテストデータ１２０としてセルフテスト回路１０に入力されるパラレルデータは１６ビット幅であるとして説明してきた。しかしながら、Ｎを４以外の任意の自然数とするならば、実施の形態１〜実施の形態３に係るセルフテスト回路１０を駆動するための多相クロックは、一周期をＮ分割して成るＮ個の位相にそれぞれ対応し、３６０°／Ｎだけ互いに位相シフトされたＮ個の位相クロックから構成することが可能である。また、Ｍを１６以外の任意の自然数とするならば、実施の形態１〜実施の形態３において、ノーマルデータ１１０またはテストデータ１２０としてセルフテスト回路１０に入力されるパラレルデータはＭビット幅のパラレルデータとすることが可能である。その場合、シフトレジスタ回路８内のシフトレジスタ、位相シフト回路９内の遅延回路９０、および論理テスト回路２内の論理テスト用ＦＦチェーン２０は、それぞれ４並列ではなくＮ並列で構成される。そして、Ｎ並列で構成され、Ｎ個の位相クロックにそれぞれ対応して動作するシフトレジスタ、遅延回路９０および論理テスト用ＦＦチェーン２０の各々は、Ｍビット幅のパラレルデータの論理テストを一回行う毎に、Ｍ／Ｎに等しいビット数のシリアル・ビット列を読み込むように構成されることとなる。
【符号の説明】
【００８５】
１  データ選択回路
２  論理テスト回路
６  シリアル化回路
７  ラッチ回路
８  シフトレジスタ回路
９  位相シフト回路
１０  セルフテスト回路
１１  ＣＰＵ
２０  遅延回路
３０  遅延回路
４０  遅延回路
５０  遅延回路
６１  ＮＯＲ回路
６２  ＮＯＲ回路
６３  ＮＡＮＤ回路
１００  データ処理回路
１０１  データ処理回路
１０２  シリアル転送データ生成部
１０３  パラレル転送用クロック生成部
１０４  ＰＷＭ変調データ生成部
１０５  セレクタ回路
１０６  シリアル化回路
【先行技術文献】
【特許文献】
【００８６】
【特許文献１】特開２００４−３２５１２４号公報
【特許文献２】特開２０１５−０４６７４９号公報
【図１】
2017015597.tif 000003
【図２】
2017015597.tif 000004
【図３】
2017015597.tif 000005
【図４】
2017015597.tif 000006
【図５】
2017015597.tif 000007
【図６】
2017015597.tif 000008
【図７】
2017015597.tif 000009
【図８】
2017015597.tif 000010
【図９】
2017015597.tif 000011
【図１０】
2017015597.tif 000012
【図１１】
2017015597.tif 000013