JP2017015597A - 集積回路におけるセルフテスト回路およびデータ処理回路 - Google Patents

集積回路におけるセルフテスト回路およびデータ処理回路 Download PDF

Info

Publication number
JP2017015597A
JP2017015597A JP2015133726A JP2015133726A JP2017015597A JP 2017015597 A JP2017015597 A JP 2017015597A JP 2015133726 A JP2015133726 A JP 2015133726A JP 2015133726 A JP2015133726 A JP 2015133726A JP 2017015597 A JP2017015597 A JP 2017015597A
Authority
JP
Japan
Prior art keywords
circuit
bit
test
data
phase
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.)
Pending
Application number
JP2015133726A
Other languages
English (en)
Inventor
茂 植草
Shigeru Uekusa
茂 植草
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2015133726A priority Critical patent/JP2017015597A/ja
Priority to US15/188,288 priority patent/US9989590B2/en
Publication of JP2017015597A publication Critical patent/JP2017015597A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31727Clock circuits aspects, e.g. test clock circuit details, timing aspects for signal generation, circuits for testing clocks
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31723Hardware for routing the test signal within the device under test to the circuits to be tested, e.g. multiplexer for multiple core testing, accessing internal nodes
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3187Built-in tests

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

【課題】回路をテスト動作モードに切り替えずに、回路を駆動するクロック速度を最高速度から落とすことなく、高い故障検出率を維持しながら、回路内の各FFの故障検出が可能な集積回路におけるセルフテスト回路を提供する。
【解決手段】1/N周期ずつ位相シフトされた第1位相から第N位相をそれぞれ有する同一周期のN個のクロック信号を含む多相クロック信号によって駆動される集積回路におけるセルフテスト回路10は、パラレル形式の入力テストデータ120をN並列にシリアル変換し、N並列出力される各ビットを、第1位相から第N位相までの各位相に対応するタイミングでシリアル出力信号152として冗長遅延量だけ遅延出力するシリアル化回路6と、4つの位相の各々に対応するタイミングに同期して、シリアル出力信号152を、N並列ビット列として取り込んで論理テストを行う論理テスト回路2と、を具備する。
【選択図】図2

Description

本発明は、集積回路におけるセルフテスト回路およびデータ処理回路に関する。
光ビームを偏向走査する光走査装置と、その光走査装置によって偏向走査される光ビームで感光体の表面に画像書き込みを行って画像を形成する電子写真方式の画像形成に関する光書込装置が知られている。当該電子写真方式の画像形成に関する光書込装置は、例えば、複写機、ファクシミリ装置、プリンタ、印刷機、デジタル複合機(MFP)等に搭載されている。これら電子写真方式の画像形成に関する光書込装置において、主走査の画像領域の前後に光センサを配置し、その光センサで光を検出する時間幅によって温度上昇等による主走査倍率の変動を補正するためにPWM変調データを用いた技術が既に知られている。
PWM変調技術を実装した回路のように多数のフリップ・フロップ(以下、FFと略記する)を備えるデジタル回路内において、従来技術によりFFの故障を検出するためのテストを行おうとする場合、以下の問題がある。すなわち、テスト対象回路であるデジタル回路が最高クロック速度でタイミング調整できているか否かを検証しようとするならば、デジタル回路がスキャン動作モードで動作中に行われるスキャン・テストの際にはチップの最高クロック速度でテストを実施することが必要である。
しかしながら、最高クロック速度でテストを実施するために、高速動作するデジタル回路のクロックラインにノーマル動作モードからスキャン・テストへの切り替えに必要なクロックやセレクタを追加的に設けると、以下の問題が生じる。すなわち、スキャン・テストへの切り替えに必要なクロックやセレクタが追加された結果、デジタル回路の同期設計を適切に行おうとしても回路全体のタイミング調整が困難となってしまう。
そのため、特許文献1等に開示された従来技術においては、FFの故障を検出するために以下の手法を用いてきた。すなわち、チップの外部端子を介してテスト対象回路の動作周波数をモニタリングするための周波数カウンタを半導体テスト装置に設け、動作周波数を落として故障検出をしていた。例えば、特許文献1には、クロック信号に応じて同期化設計された半導体回路に回路動作テスト用のビット列であるテストデータを読み込ませ、半導体回路内のFFの故障を検出するための技術が開示されている。
具体的には、特許文献1には、FFの現在の論理状態をそのまま保持しつつ、当該半導体回路の動作モードをノーマル動作モードからスキャン・モードに切り替えた上で、テストデータを読み込ませたFFの論理状態を調べる発明が開示されている。特許文献1においては、テストデータを読み込んだ各FFに記憶されている「1」または「0」の論理状態を、テストデータ内の既知のビットと比較し、記憶されている論理状態が既知のビットと異なるFFを故障と判定する。
しかし、特許文献1記載の手法を採用した場合、テスト対象回路であるデジタル回路の同期設計において、最高クロック速度で動作させた際のタイミング調整が正しくできているかどうかを検証しようとしても、以下の不都合がある。すなわち、デジタル回路がSCAN動作モードで動作中に行われるSCANテストの際に、デジタル回路を実装したチップの最高クロック速度でテストを実施することができず、不明瞭であるという問題があった。
以上の問題点に鑑み、本発明は、セルフテスト機能を有する集積回路をテスト動作モードに切り替えずに、集積回路を駆動するクロック速度を最高速度から落とすことなく、高い故障検出率を維持しながら、集積回路内の各FFの故障検出が可能なセルフテスト回路を得ることを目的とする。
そこで、本発明は、1/N周期ずつ位相シフトされた第1位相から第N位相をそれぞれ有する同一周期のN個のクロック信号を含む多相クロック信号によって駆動される集積回路におけるセルフテスト回路であって、Mビット幅のパラレルデータとして前記セルフテスト回路に入力される入力データを、通常のデータと論理テスト用のテストデータとの間で切り替えるデータ選択回路と、前記入力データをN並列にシリアル変換してN並列出力される各ビットを、前記第1位相から第N位相までの各位相に対応するタイミングで1本のシリアル出力信号として出力するシリアル化回路と、前記第1位相から第N位相までの各位相に対応するタイミングに同期して、前記シリアル出力信号を、それぞれM/Nビット長を有するN並列ビット列として取り込んでMビット分のビット論理テストを行う論理テスト回路と、を具備する構成を採る。
本発明によれば、セルフテスト機能を有する集積回路をテスト動作モードに切り替えずに、集積回路を駆動するクロック速度を最高速度から落とすことなく、高い故障検出率を維持しながら、集積回路内の各FFの故障検出が可能なセルフテスト回路を得ることができる。
従来技術に係るデータ処理回路100の全体回路構成を示すブロック図。 本実施の形態に係るセルフテスト回路10の全体回路構成を示すブロック図。 本実施の形態に係るシリアル化回路6の内部の回路構造を示すブロック図。 シフトレジスタ回路8に対する外部からのデータ入力とシフトレジスタ回路8の内部の回路構造を示すブロック図。 テストデータ120をシリアル化回路6が受け取り、シリアル出力信号152として出力する時の回路内の動作タイミングを説明するタイミング・チャート。 論理テスト回路2内に並列に構成された4本の論理テスト用FFチェーンを示す回路図。 論理テスト回路2内に設けられたキャプチャ・イネーブル信号生成部の回路構造を示す図。 キャプチャ・イネーブル信号と他のクロック信号パルスとの間の関係を示すタイミング・チャート。 図1に示すシリアル化回路106を本実施の形態に係るセルフテスト回路10で置き換えた場合のデータ処理回路100の全体回路構成を示すブロック図。 論理テスト回路2をよりコンパクトな回路規模とするための第1の変形実施例を示す図。 論理テスト回路2へ入力されるべきSEROUT信号を分周器を介して出力する第2の変形実施例を示す図。
光ビームを偏向走査する光走査装置と、その光走査装置によって偏向走査される光ビームで感光体の表面に画像書き込みを行って画像を形成する電子写真方式の画像形成に関する光書込装置が知られている。当該電子写真方式の画像形成に関する光書込装置は、例えば、複写機、ファクシミリ装置、プリンタ、印刷機、デジタル複合機(MFP)等に搭載されている。当該電子写真方式の画像形成に関する光書込装置において、主走査の画像領域の前後に光センサを配置し、その光センサで光を検出する時間幅によって温度上昇等による主走査倍率の変動を補正するためにPWM変調データを用いた技術が既に知られている。
当該電子写真方式の画像形成に関する光書込装置を実現するには、上述したPWM変調データを生成するためのPWM変調技術を実装した回路が必要となる。特許文献2には、そのようなPWM変調技術を実装した回路を、単一の回路モジュールで各種の応用用途に応じて実現するためのデータ処理回路の回路構成が開示されている。特許文献2には、上述したPWM変調技術を実装可能なデータ処理回路の例として、入力されるパラレルデータに対してシリアル信号への変換を行い、シリアル信号出力する回路構成が開示されている。特許文献2に開示された回路は、1つの回路モジュールで各種の応用用途に応じてデータを処理することが可能である。PWM変調技術を実装可能なデータ処理回路として特許文献2に開示されている回路構成と同様の回路構成を図1に示す。
図1に示すデータ処理回路100は、例えば1チップの集積回路(IC、LSI等)で構成され、シリアル転送データ生成部102と、パラレル転送用クロック生成部103と、PWM変調データ生成部104と、セレクタ105と、シリアル化回路106と、を備える。シリアル転送データ生成部102、パラレル転送用クロック生成部103およびPWM変調データ生成部104がそれぞれ出力するパラレルデータdata1、data2およびdata3は、シリアル化回路106を共通の出力先として出力される。シリアル転送データ生成部102、パラレル転送用クロック生成部103およびPWM変調データ生成部104がそれぞれ出力するパラレルデータのうち、いずれのパラレルデータをシリアル化回路106に出力するかは、セレクタ105によって選択される。シリアル化回路106に入力される各パラレルデータの選択は、セレクタ5に印加される選択信号sel 195により決定される。
シリアル転送データ生成部102には、所定のシリアル化データ(シリアル転送データであるパラレルデータ)ser_data 191が入力される。シリアル転送データ生成部102はシリアル化データser_data 191を符号化処理し、シリアル転送のための所定のパラレルデータdata1としてセレクタ105に出力する。また、パラレル転送用クロック生成部103には、パラレル転送用クロックの発振周期設定値データ(クロック周期設定値)period_data 192及びスキュー調整値データskew_data 193が入力される。パラレル転送用クロック生成部103は、これらの入力データに基づいてパラレル転送用クロックを生成してセレクタ105に出力する。さらに、PWM変調データ生成部104には、PWM変調データのデューティ設定用入力信号pwm_in 194が入力される。PWM変調データ生成部104は入力信号pwm_in 194に従って所定の搬送波パルス信号をパルス幅変調して、パルス幅変調後のパラレルデータdata3をセレクタ105に出力する。次いで、セレクタ105は、選択信号selに基づいて、データdata1〜3のうちの1つのデータを選択し、シリアル化回路106に出力する。ここで、データデータdata1〜3及びデータdata_inはそれぞれ所定の同一ビット幅を有する。
シリアル化回路106は、パラレルデータdata_inをシリアル変換することにより、シリアル出力信号ser_out 151に変換する。ここで、シリアル出力信号ser_out 151のみクロック信号clk_bに同期し、データ処理回路100の他のデータはクロック信号clk_aで同期して動作する。ここで、クロック信号clk_aはクロック信号clk_bの分周信号であり、分周比はdata_inのビット幅となる。以上のように構成されたデータ処理回路100によれば、1つのチップ又はモジュールで、シリアル通信方式、パラレル通信方式、PWM変調方式等の様々な用途に適用可能となるため、回路規模、設計コスト、面積コストを抑えることができる。その反面、特許文献2記載の回路構成もまた、デジタル回路を実装したチップの最高クロック速度で回路の動作テストを実施することができないという点で特許文献1記載の回路構成と同様である。
特許文献2に開示された回路構成のように、PWM変調技術を実装した回路は、多数のFFを備えるデジタル回路として実施される。当該デジタル回路内において、FFの故障を検出するテストを行おうとする場合、当該デジタル回路が最高クロック速度でタイミング調整できているか否かを検証しようとするならば、デジタル回路を実装する半導体チップの最高クロック速度でテストを実施する必要がある。しかし、最高クロック速度で回路テストを実施するために、特許文献2記載のPWM変調技術搭載回路に特許文献1記載の回路テスト機能を組み込んだとしても、最高速度のクロック信号により駆動される回路内の同期設計において、タイミング調整幅に余裕がなくなってしまう。最高クロック速度での駆動中に回路の同期タイミング設計に余裕がなくなるのは、クロックの周期が早くなればなるほどFF間のデータの受け渡しが出来るように回路を配置配線することが困難になるからである。そこで、本実施の形態は、特許文献2に開示されたデータ処理回路100のようなPWM変調技術搭載回路において、回路動作中に回路を構成する各FFの論理テストを実行することを可能とする機能を組み込んだセルフテスト回路を単に実現するだけでなく、以下を実現することを意図している。
第1に、本実施の形態は、セルフテスト回路装置において、特許文献1のようなノーマル動作モードからスキャン・モードへの動作モード切り替えの必要なしに、テスト対象回路装置内の各FFの論理トレースによる故障検出テストを行うことを意図する。第2に、本実施の形態は、セルフテスト回路装置において、最高クロック速度からクロック動作速度を落とすことなく、しかも高い故障検出率を維持しながら、テスト対象回路装置内の各FFの論理トレースによる故障検出テストを行うことを意図する。第3に、本実施の形態は、セルフテスト回路全体の同期設計におけるタイミング調整に充分な余裕を持たせることによって、セルフテスト回路全体の正確で確実なクロック制御動作を保証することを意図する。
本明細書中の以下の記述においては、論理テストとは、テスト対象回路内において以下の検査を行うための機能または仕組みを指して言う。すなわち、論理テストとは、クロック信号に同期してクロック・パルス毎に回路の内部状態を遷移させるテスト対象回路が多数のFFの直列または並列の接続によって構成されている場合に、クロック・パルス毎に各FFが記憶する論理状態(「0」または「1」)が本来の正しい値と一致するか否かを検査する。また、セルフテスト回路とは、論理テストを実現するための仕組みである配線ロジックや回路モジュールを自身の中に内蔵しているテスト対象回路を指して言い、セルフテスト回路によって実行される論理テストを指してセルフテストと呼ぶ。また、本明細書中の以下の記述においては、回路を構成する多数のFFの直列接続によって構成され、クロック信号に同期してクロック・パルス毎に内部状態を遷移させる直列回路を指してFFチェーンと呼ぶ。
図1に示すデータ処理回路100の回路構造を変更し、全てのFFの論理状態を漏れなく確実に検査可能な形でセルフテストの仕組みを実現するためには、以下のようにすればセルフテスト機能を最もコンパクトな回路規模で実現することが出来る。すなわち、本実施の形態に従って、セルフテスト(論理テスト)機能を実現する仕組みに加え、図1のシリアル化回路106と同等のシリアル化回路機能を内蔵する新規なセルフテスト回路を実現する。その上で、データ処理回路100内において、シリアル化回路106を上述した新規なセルフテスト回路に置き換える。以上により、データ処理回路100内の全てのFFの論理状態を漏れなく確実に検査することが可能なセルフテストの仕組みが最小規模の回路により実現可能となる。何故ならば、図1において、シリアル化回路106は、データ処理回路100の最終段に位置し、前段の回路102、103および104からセレクタ105を介して出力されるパラレルデータのシリアル化処理を実行して唯一の最終的な出力信号ser_out 151として出力する回路だからである。
<実施の形態1>
図2は、本実施の形態に従い、セルフテスト機能を実現すると同時に図1のシリアル化回路106と同等のシリアル化回路機能を内蔵するように構成された新規なセルフテスト回路10の全体的な回路構成を示す。以下において後述するが、図1のデータ処理回路100の通常動作時においては、シリアル化処理の対象となるパラレルデータが、ノーマルデータ110としてセルフテスト回路10に入力される。図1のデータ処理回路100の論理テスト動作時においては、シリアル化処理の対象となるパラレルデータが、テストデータ(DATA_TEST*)120としてセルフテスト回路10に入力される。ノーマルデータ110およびテストデータ(DATA_TEST*)120は、例えば、図1に示す回路102、103および104によって生成され、図1のセレクタ回路105を介してセルフテスト回路10に出力されるパラレルデータである。
セルフテスト回路10は、データ選択回路1、シリアル化回路6、論理テスト回路2およびセレクタ2aから構成される。データ選択回路1は、データ処理回路100が通常動作中であるか論理テスト動作中であるかに応じて、シリアル化回路6に入力される入力データとして、ノーマルデータ110またはテストデータ(DATA_TEST*)120のいずれか一方を選択する。データ選択回路1内において、データ処理回路100の論理テスト動作時には、セレクタ1aに入力されるtesten(テスト・イネーブル)信号121はオン状態であり、セレクタ1aは、入力データとしてテストデータ(DATA_TEST*)120を選択する。データ処理回路100のノーマル動作時には、セレクタ1aに入力されるtesten(テスト・イネーブル)信号121はオフ状態であり、セレクタ1aは、入力データとしてノーマルデータ110を選択する。testen信号121、ノーマルデータ110およびテストデータ(DATA_TEST*)120をデータ選択回路1に出力するには、外部のCPU11がセルフテスト回路10に対してデータライト(データ書き込み)信号131を出力する。
シリアル化回路6は、ノーマルデータ110またはテストデータ(DATA_TEST*)120のいずれか一方を、16ビット幅のパラレルデータである入力データ(data_in[15:0])140としてデータ選択回路1から受け取る。シリアル化回路6は、受け取った入力データ140をシリアル化処理によりシリアル信号に変換し、ノーマル出力151としてセルフテスト回路10の外部に出力すると共に、シリアル出力信号(ser_out)152として論理テスト回路2に出力する。図2に示すシリアル化回路6が実行する当該シリアル化処理は、図1記載のシリアル化回路106が実行するシリアル化処理と機能的には同等である。しかし、以下において後述するように、図2に示すシリアル化回路6の内部の回路構造は、図1記載のシリアル化回路106の回路構造とは大きく異なる。
論理テスト回路2の内部には、論理テスト用のFFチェーンが設けられている。論理テスト回路2は、シリアル出力信号(ser_out)152としてシリアル化回路6から出力されるビット列を、論理テスト用のFFチェーンの中に読み込む。なお、論理テスト回路2が読み込むシリアル出力信号(ser_out)152は、データ処理回路100の論理テスト動作中にテストデータ120としてデータ選択回路1に入力されたパラレルデータをシリアル化回路6がシリアル信号に変換したものである。
シリアル出力信号(ser_out)152を論理テスト用FFチェーン内に読み込む動作は、外部のCPU11が論理テスト用回路2に対して出力するキャプチャ・イネーブル(CAP_EN)信号をオン状態にすることによって開始する。キャプチャ・イネーブル(CAP_EN)信号がオン状態になると、論理テスト回路2は、クロック信号の各パルスに同期して、シリアル出力信号(ser_out)152に含まれるビット列を1ビットずつ論理テスト用のFFチェーンの中に読み込んでゆく。また、論理テスト回路2がシリアル出力信号(ser_out)152を論理テスト用FFチェーン内に読み込む動作は、外部のCPU11が論理テスト用回路2に対して出力するキャプチャ・イネーブル(CAP_EN)信号をオフ状態にすることによって停止される。外部のCPU11から論理テスト回路2に対してキャプチャ・イネーブル(CAP_EN)信号を出力するには、CPU11がデータライト(データ書き込み)信号132を論理テスト回路2に出力する。
論理テスト回路2は、シリアル化処理された一つのパラレルデータにつき、16ビット長のシリアル出力信号(ser_out)152を、論理テスト用のFFチェーンに読み込む。続いて、論理テスト回路2は、論理テスト用のFFチェーンが16ビット長のシリアル出力信号(ser_out)152を読み込んだ状態で、FFチェーン内の各FFに記憶されている論理状態(「0」または「1」)を既知のビットパターンと比較する。当該比較の結果、論理テスト用のFFチェーン内において、いずれか一つ以上のFFに記憶されている論理状態がテストデータ120の対応するビット位置に含まれる既知のビット値と異なる場合には、論理テスト回路2は、データ処理回路100内のいずれかのFFが故障していると判定する。論理テスト回路2による論理テストの結果を表すデータは、セレクタ2aを介してデータリード(データ読み出し)信号133としてCPU11に出力され、CPU11は、論理テストの結果を表すデータを画面表示したり、メモリ(図示なし)内に保存したりする。または、論理テスト回路2による論理テストの結果を表すデータは、セレクタ2aを介して、外部出力161としてデータ処理回路100の外部端子162に出力される。セレクタ2aは、論理テストの結果を表すデータを、CPU11によるデータ読み出し信号として出力するか、外部端子162に外部出力として出力するかを選択するための選択回路である。
図3は、シリアル化回路6の詳細な回路構成を示すブロック図である。図3に示すように、シリアル化回路6は、2種類のクロック信号clk_a 142およびclk_b 144により駆動される。clk_b 144は、同一周期で90°ずつ位相シフトされた4つのクロック信号から構成される多相クロック信号であり、ゼロ位相、90°位相、180°位相および270°位相にそれぞれ対応する4つのクロック信号をclk_b[0]、clk_b[1]、clk_b[2]およびclk_b[3]と表記する。つまり、clk_b[0]〜clk_b[3]は、clk_bの一周期の長さを4等分して4つの位相(90°ずつずれた4つの位相)に分けた上で、同一周期の4つのclk_bを1/4周期ずつ位相シフトすることにより生成した4つの位相クロックである。また、4つのクロック信号clk_b[0]、clk_b[1]、clk_b[2]およびclk_b[3]を総称してclk_b[3:0]と表記する。さらに、クロック信号clk_b[0]の1/4周期に対応するクロック速度は、クロック信号clk_b[0]の4倍のクロック速度であり、データ処理回路100の最高クロック速度に等しい。他方、クロック信号clk_aはクロック信号clk_bの分周信号であり、分周比は入力データ(data_in[15:0])140のビット幅に等しい16ビット幅となる。
図3を参照すると、シリアル化回路6は、ラッチ回路7と、シフトレジスタ回路8と、位相シフト回路9とを備えて構成される。ラッチ回路7には、16ビット幅のパラレルデータ形式の入力データ(data_in[15:0])140が入力され、クロックclk_a 142に同期して、入力データ140を所定時間幅にわたってラッチ(保持)している。ラッチ回路7からシフトレジスタ回路8に出力される信号は、16ビット幅のパラレルデータ形式の入力データ(data_s[15:0])141であり、シフトレジスタ回路8の出力は、位相シフト回路9によって処理され、最終的にシリアル出力(ser_out)信号152として論理テスト回路2に出力される。
次に、図4を参照しながら、シフトレジスタ回路8の内部構成、シフトレジスタ回路8内における16ビット幅パラレルデータのシリアル化処理およびデータ信号の流れについて具体的に説明する。ラッチ回路7は、セレクタ1aを介して、ノーマルデータ110またはテストデータ120のいずれか一方を受け取ることが可能である。論理テストの実行時においては、セレクタ1aに出力されるtesten信号121がオン状態であるので、ラッチ回路7は、外部からセレクタ1aを介してテストデータ120を受け取る。ラッチ回路7は、外部からセレクタ1aを介して受け取ったテストデータ120を一定時間ラッチ(保持)してからシフトレジスタ回路8への入力信号data_s[15:0]141として出力する。図4に示すように、シフトレジスタ回路8は、4つの並列に動作するシフトレジスタ80A、80B、80Cおよび80Dから成る4並列構成のシフトレジスタ回路である。つまり、シフトレジスタ回路8は、ラッチ回路7から受け取った16ビット幅のパラレルデータ形式である入力データ(data_s[15:0])141を4ビットずつ4つのシフトレジスタ80A〜80Dに振り分ける。続いて、シフトレジスタ回路8は、4つのシフトレジスタ80A〜80Dに4ビットずつ振り分けられた入力データ141のシリアル信号への変換処理を4並列で実行する。
4つのシフトレジスタ80A〜80Dの各々は、共通のクロック信号clk_b[0]により駆動される4つのFFを直列接続した4段構成のシフトレジスタとして構成されている。例えば、シフトレジスタ80Aは、図4に示すように4つのFF 821A、822A、823Aおよび824Aが直列に接続されて構成されている。clk_b[0]の各パルスに同期して、FF 821Aには、0値ビットが入力されるか、または入力データ(data_s[15:0])141の第12ビット(data_s[12])がシフトレジスタ回路8の外部から入力される。F 821Aにどちらのビットデータが入力されるかはセレクタ811Aによって選択される。
clk_b[0]の各パルスに同期して、FF 822Aには、前段のFF 821Aが記憶していたビットデータが入力されるか、または入力データ(data_s[15:0])141の第8ビット(data_s[8])がシフトレジスタ回路8の外部から入力される。FF 822Aにどちらのビットデータが入力されるかはセレクタ812Aによって選択される。同様に、clk_b[0]の各パルスに同期して、FF 823Aには、前段のFF 822Aが記憶していたビットデータが入力されるか、または入力データ(data_s[15:0])141の第4ビット(data_s[4])がシフトレジスタ回路8の外部から入力される。FF 823Aにどちらのビットデータが入力されるかはセレクタ813Aによって選択される。同様に、clk_b[0]の各パルスに同期して、FF 824Aには、前段のFF 823Aが記憶していたビットデータが入力されるか、または入力データ(data_s[15:0])141の第0ビット(data_s[0])がシフトレジスタ回路8の外部から入力される。FF 824Aにどちらのビットデータが入力されるかはセレクタ814Aによって選択される。
つまり、セレクタ811A、812A、813Aおよび814Aは、ラッチ回路7によるデータのラッチタイミングにより、パラレル入力データ(data_s[15:0])141をそれぞれSOA、SOB、SOCおよびSODからMSB出力するか、パラレル入力データ(data_s[15:0])141を新規に取り込むかを決定する。セレクタ811A、812A、813Aおよび814Aの上記選択動作については、図7を参照しながら具体的に後述する。
シフトレジスタ80Aにおいては、clk_b[0]の最初のパルスに同期して、1段目から4段目のFFが、入力データ(data_s[15:0])141の第12ビット、第8ビット、第4ビットおよび第0ビットをそれぞれ外部から受け取る。続いて、clk_b[0]の2回目以降のパルスに同期して、2段目から4段目までのFFの各々は、前段のFF(1段目から3段目までのFF)がセレクタ812A〜814Aを介してそれぞれ出力したビットデータを受け取る。これによって、16ビット幅パラレルデータ形式の入力データ(data_s[15:0])141を構成する第12ビット、第8ビット、第4ビットおよび第0ビットは、シフトレジスタ80Aの中で1ビットずつ順番にシフトされてゆき、FF 824Aの出力端から第12ビット、第8ビット、第4ビットおよび第0ビットの順に1ビットずつ出力されてゆく。
シフトレジスタ80B、80Cおよび80Dの内部構成もまた、シフトレジスタ80Aに関して上述した内部構成と同様であり、1段目から4段目の4つのFFが共通のクロック信号clk_b[0]の各パルスに同期して駆動される点もシフトレジスタ80Aと同様である。ただし、シフトレジスタ80Bにおいては、clk_b[0]の最初のパルスに同期して、1段目から4段目のFFが、入力データ(data_s[15:0])141の第13ビット、第9ビット、第5ビットおよび第1ビットをそれぞれ外部から受け取る点がシフトレジスタ80Aとは異なる。これによって、16ビット幅パラレルデータ形式の入力データ(data_s[15:0])141を構成する第13ビット、第9ビット、第5ビットおよび第1ビットは、シフトレジスタ80Bの中で1ビットずつ順番にシフトされてゆき、FF 824Bの出力端から第13ビット、第9ビット、第5ビットおよび第1ビットの順に1ビットずつ出力されてゆく。
また、シフトレジスタ80Cにおいては、clk_b[0]の最初のパルスに同期して、1段目から4段目のFFが、入力データ(data_s[15:0])141の第14ビット、第10ビット、第6ビットおよび第2ビットをそれぞれ外部から受け取る点がシフトレジスタ80Aとは異なる。これによって、16ビット幅パラレルデータ形式の入力データ(data_s[15:0])141を構成する第14ビット、第10ビット、第6ビットおよび第2ビットは、シフトレジスタ80Cの中で1ビットずつ順番にシフトされてゆき、FF 824Cの出力端から第14ビット、第10ビット、第6ビットおよび第2ビットの順に1ビットずつ出力されてゆく。シフトレジスタ80Dにおいては、clk_b[0]の最初のパルスに同期して、1段目から4段目のFFが、入力データ(data_s[15:0])141の第15ビット、第11ビット、第7ビットおよび第3ビットをそれぞれ外部から受け取る点がシフトレジスタ80Aとは異なる。これによって、16ビット幅パラレルデータ形式の入力データ(data_s[15:0])141を構成する第15ビット、第11ビット、第7ビットおよび第3ビットは、シフトレジスタ80Dの中で1ビットずつ順番にシフトされてゆき、FF 824Dの出力端から第15ビット、第11ビット、第7ビットおよび第3ビットの順に1ビットずつ出力されてゆく。
シフトレジスタ回路8を構成する4つのシフトレジスタ80A、80B、80Cおよび80Dに4ビットずつ振り分けられた入力データ(data_s[15:0])141は、シフトレジスタ80A、80B、80Cおよび80Dによって4本のシリアル出力信号SOA、SOB、SOCおよびSODに4並列でシリアル変換され、図3に示す位相シフト回路9に対して4並列でシリアル出力される。再び図3を参照すると、位相シフト回路9は、4個の遅延回路90A、90B、90Cおよび90Dと、2個のノア(NOR)ゲート61および62と、ナンド(NAND)ゲート63とを備えて構成される。
位相シフト回路9は、clk_bの一周期を4等分して4つの位相(90°ずつずれた4つの位相)に分け、1/4周期ずつ位相シフトされた4つの位相クロックclk_b[0]〜clk_b[3]によりクロック制御される。位相シフト回路9は、FFチェーンとして構成されている4つの遅延回路90A〜90Dを備える。位相シフト回路9は、シフトレジスタ回路8内の4本のシフトレジスタ80A〜80Dから互いに並列に出力された4ビット分の4並列のシリアル・ビット列SOA〜SODを、4本の遅延回路90A〜90Dにそれぞれ一ビットずつ順番に読み込む。つまり、それぞれFFチェーンとして構成された4つの遅延回路90A〜90Dにおいて、1段目のFFはシフトレジスタ回路8から出力されたSOA〜SODの先頭ビットを読み込み、2段目以降のFFは、前段のFFが記憶していたビットを読み込む。例えば、遅延回路90Aにおいては、FFチェーンを構成する1段目のFF 91Aはクロック信号clk_b[0]に同期してSOAの先頭ビットを読み込む。同時に、2段目のFF 92Aは、クロック信号clk_b[0]に同期して前段のFF 91Aが記憶していたビットをFF 91Aから読み込み、3段目のFF 93Aはクロック信号clk_b[0]に同期して前段のFF 92Aが記憶していたビットをFF 92Aから読み込む。
遅延回路90Aは、直列接続されかつ同一のクロック信号clk_b[0]でクロック同期される3個の遅延型FF 91A〜93Aを備えて構成される。また、遅延回路90Bは、直列接続されかつそれぞれ異なるクロック信号clk_b[0]、clk_b[3]、clk_b[2]およびclk_b[1]でクロック同期される4個の遅延型FF 91B〜93Bを備えて構成される。さらに、遅延回路90Cは、直列接続された4個の遅延型FF 91C〜94Cを備えて構成される。ここで、遅延型FF 91Cはクロック信号clk_b[0]でクロック同期され、遅延型FF 92Cはクロック信号clk_b[3]でクロック同期される。遅延型FF 93Cおよび94Cはクロック信号clk_b[2]でクロック同期される。また、遅延回路90Dは、直列接続された4個の遅延型FF 91D〜94Dを備えて構成される。ここで、遅延型FF 91Dはクロック信号clk_b[0]でクロック同期され、遅延型FF 92D、93Dおよび94Dはクロック信号clk_b[3]でクロック同期される。
位相シフト回路9において4本のFFチェーンとして構成された遅延回路90A〜90Dの最終段に位置する同期FF 93A、94B、94Cおよび94Dは、以下のシリアル・ビット出力動作を行う。つまり、SOA〜SODとして4並列で入力された4ビット分のシリアル・ビット列を、最終的に4つの位相クロックclk_b[0]、clk_b[1]、clk_b[2]およびclk_b[3]の各々に対応して位相毎に順次シリアル出力する。その結果、シリアル化回路6の最終的な出力信号であるシリアル出力信号(ser_out)152が位相シフト回路9からシリアル化回路6の出力端に出力されることとなる。つまり、遅延回路90Aを経由してSOAとして出力されるシリアル・ビット列をシリアル出力信号(ser_out)152として出力するまでの流れは、シリアル出力信号(ser_out)152の出力側から見るとclk_b[0]の位相タイミングに対応したものである。また、SOB〜SODとして出力されるシリアル・ビット列を、遅延回路90B〜90Dを経由して、シリアル出力信号(ser_out)152として出力するまでの流れは、シリアル出力信号(ser_out)152の出力側から見るとclk_b[1]〜clk_b[3]の位相タイミングにそれぞれ対応したものである。
シフトレジスタ80A〜80Dからの4本のシリアル・ビット列を4つの位相クロックclk_b[0]、clk_b[1]、clk_b[2]およびclk_b[3]に各々に対応して位相毎に順次シリアル出力するために、位相シフト回路9は以下の冗長構成を採用している。すなわち、位相シフト回路9内において4並列で構成された遅延回路90A〜90Dの各々は、4位相のうち互いに異なる位相の位相クロックをそれぞれ供給される単一のFFで構成するのではなく、遅延回路90A〜90Dの最終段FFよりも前段の部分に冗長なFFを一つ以上直列に設けた冗長構成としている。これにより、4並列で構成された遅延回路90A〜90Dの相互間において、遅延回路90A〜90Dの各々がFFを動作させるクロック・タイミングの間にclk_bの3/4周期(3位相分)に等しいタイミング余裕を持たせることができる。例えば、シフトレジスタ回路8内の4並列のシフトレジスタ80A〜80Dから4個の遅延回路90A〜90Dにそれぞれ入力された4個のシリアル・ビットのパルス幅がclk_bの2周期分(=8位相分)であったとしても、遅延回路90A〜90D内のFF冗長構成を用いて実現されるクロック・タイミング余裕により、4つの位相(clk_b[0]〜clk_b[3])の各位相毎に正常なシリアル化動作を確実に実行することができる。
図3に示すシフトレジスタ回路8および位相シフト回路9が上述した回路構成となっている理由は、セルフテスト回路10を含む回路全体を最高クロック速度で駆動した際に、以下のようにして回路内のFF間においてビットデータの受け渡しが正確かつ確実に行えるようにするためである。なお、以下の説明においては、図3に示す4つの遅延回路90A〜90Dがそれぞれ出力するシリアル出力ビット列をSO[0]、SO[1]、SO[2]およびSO[3]と表記し、これら4つのシリアル出力ビット列を総称してSO[3:0]と表記する。ノーマル動作時の回路全体が最高クロック速度に対応するclk_bの1/4周期のクロック信号で駆動されている場合には、シフトレジスタ80A〜80Dからのシリアル・ビット列SOA〜SODの各々は、以下のような状態で位相シフト回路9に出力されている。すなわち、シリアル・ビット列SOA〜SODの各々は、それぞれclk_b[3:0]の4つの位相の中の対応する一つではなく4つの位相全てに同期して出力されているのと同じ状態である。
他方、回路全体の論理テスト動作時においては、SOA〜SODは、clk_b[0]に同期して位相シフト回路9に出力される。その結果、回路全体の論理テスト動作時において、特にSOB及びSODをclk_b[1]およびclk_b[3]に同期して位相シフト回路9に出力する際にFFに入力されるQ−CLKのパルス間隔はclk_bの1/4周期分の長さに等しい0.25×clk_bの1周期となってしまう。そこで、本実施の形態は、位相シフト回路9内の4本の遅延回路90A〜90Dの各々において、最終段FFの前段に冗長なFFを複数段設ける。このようにすることで、本実施の形態は、同期設計におけるタイミング調整幅に0.75×clk_bの1周期(clk_bの3/4周期に等しく、clk_b[3:0]の3位相分に相当する)以上の余裕を持たせつつ、SOA〜SODを段階的にclk_b[3:0]に同期させてゆくことでタイミング制約を緩和する。
また、位相シフト回路9の遅延回路90A〜90Dよりも後段の部分の回路構成としては、図3に示すようなNOR回路61、62およびNAND回路63により構成される回路構成に替えて、以下のような回路構成も考えられるだろう。すなわち、clk_b[3:0]の4つの位相にそれぞれ同期する4本のシリアル・ビット出力をAND回路によりANDすることにより一位相分のパルス・データを生成し、続いて、4位相分の4つのパルス・データをOR回路によりORする回路構成である。しかしながら、本実施の形態に係る位相シフト回路9においては、上記のような回路構成は採用していない。何故なら、上記の回路構成により、シリアル出力信号(ser_out)152を生成するとヒゲが発生する可能性があるからである。そのため、位相シフト回路9においては、ヒゲを回避するために、NAND回路63が出力するシリアル出力信号(ser_out)152の最小パルス幅を4位相分のパルス幅とする回路構成にした。具体的にはNOR回路61および62の4つの入力端子にそれぞれ入力されるシリアル・ビットのパルス幅が、CLK_bの1周期分に等しい一位相分となる。従って、一位相分のパリス幅に等しい最小単位の4つ分がシリアル出力信号(ser_out)152の最小パルス幅となる。よって、例えばclk_bのクロック周波数が100MHzである場合のように、clk_bのクロック速度が遅い場合には、シリアル出力信号(ser_out)152の最小パルス幅は10ns(ナノ秒)となる。また、例えば、clk_bのクロック周波数が1.2GHzの時は、一位相分のパリス幅が208.3ps(ピコ秒)となるので、シリアル出力信号(ser_out)152の最小パルス幅は、一位相分のパリス幅の4個分に等しい1ns(ナノ秒)となる。
本実施の形態に係る位相シフト回路9は、シリアル出力信号(ser_out)152の各パルスのパルス幅を最小で4位相分発生させることにより、ヒゲの発生を回避し、SO[0]〜SO[3]をORすることによりシリアル出力信号(ser_out)152を生成している。すなわち、位相シフト回路9は、SO[3:0]のORを採ることによりシリアル出力信号(ser_out)152を生成する。シリアル出力信号(ser_out)152のパルス幅を4位相分のパルス幅に相当する最小パルス幅とした場合には、SO[0]のみについてclk_bの一周期分の幅を有するパルスが発生する。シリアル出力信号(ser_out)152のパルス幅を5位相分〜7位相分とする場合には、SO[0]だけでなくSO[0]〜SO[3]の全てにおいてclk_bの一周期分の幅を有するパルスが発生する。シリアル出力信号(ser_out)152のパルス幅を8位相分とする場合には、SO[0]のパルス幅がclk_bの2周期分に等しくなる。
このように、NOR回路61、62およびNAND回路63を含む図3の回路構成においては、SO[3:0]の各パルスは一位相分以上の幅で重なるのでパルスの立上り/立下りが同じタイミングで発生しない。なお、本実施の形態の上記説明においては、多相クロックが4相で構成され、各位相の位相差が90度である例を記載しているが、シリアル化回路の多相クロックの位相数は4個に限定されず、多相クロックを構成する各位相間の位相差も90度に限定されない。本実施の形態は、多相クロックが6位相のクロックであり、位相差が60度となる6本の位相クロックにより多相クロックが構成される場合においても、シリアル化回路6のシリアル・パルス出力のタイミング精度を向上させることが可能となる。つまり、多相クロックは、一周期をN分割して成るN個の位相にそれぞれ対応し、360°/Nだけ互いに位相シフトされたN個の位相クロックから構成することが可能である。
図5は、図3に示すテストデータ120をデータ選択回路1からシリアル化回路6が受け取り、シリアル出力信号(ser_out)152としてシリアル出力する時の回路内の動作タイミングを説明するためのタイミング・チャートである。ラッチ回路7には、受け取ったテストデータを16ビット幅のパラレルデータとして格納する16ビット幅のレジスタが内蔵されている。当該16ビット幅のレジスタにテストデータ120を読み込むことにより、図5においてT0_0〜T0_15として示す区間において16ビット分のビット値が設定できる。
図5において145Aとして示す4つの区間T0_0、T0_4、T0_8およびT0_12に対応するビット値は、テストデータ120の第0ビット値、第4ビット値、第8ビット値および第12ビット値である。これら4つのビット値は、clk_b[0]のパルスの立ち上がりに同期してラッチ回路7のレジスタ内に読み込まれ、シフトレジスタ80Aによってシリアル変換される。図5において145Bとして示す4つの区間T0_1、T0_5、T0_9およびT0_13に対応するビット値は、テストデータ120の第1ビット値、第5ビット値、第9ビット値および第13ビット値である。これら4つのビット値は、clk_b[1]のパルスの立ち上がりに同期してラッチ回路7のレジスタ内に読み込まれ、これら4つのビット値はシフトレジスタ80Bによってシリアル変換される。
図5において145Cとして示す4つの区間T0_0、T0_4、T0_8およびT0_12に対応するビット値は、テストデータ120の第2ビット値、第6ビット値、第10ビット値および第14ビット値である。これら4つのビット値は、clk_b[2]のパルスの立ち上がりに同期してラッチ回路7のレジスタ内に読み込まれ、これら4つのビット値はシフトレジスタ80Cによってシリアル変換される。図5において145Dとして示す4つの区間T0_3、T0_7、T0_11およびT0_15に対応するビット値は、テストデータ120の第3ビット値、第7ビット値、第11ビット値および第15ビット値である。これら4つのビット値は、clk_b[3]のパルスの立ち上がりに同期してラッチ回路7のレジスタ内に読み込まれ、これら4つのビット値はシフトレジスタ80Dによってシリアル変換される。
シリアル化回路6は、区間T0_0〜T0_15に対応する16ビット分を第1のテストデータ120(DATA_TEST0)として読み込み、シリアル変換し終わると、区間T1_0〜T1_15に対応する16ビット分を、第2のテストデータ120として読み込み、シリアル変換する。同様に、シリアル化回路6は、区間T1_0〜T1_15に対応する16ビット分を第2のテストデータ120(DATA_TEST1)として読み込み、シリアル変換し終わると、区間T2_0〜T2_15に対応する16ビット分を、第3のテストデータ120(DATA_TEST2)として読み込み、シリアル変換する。このようにして、シリアル化回路6は、連続して入力される複数のテストデータ120(DATA_TEST0、DATA_TEST1、DATA_TEST2、……)を繰り返しシリアル変換し、シリアル出力信号152として16ビットずつ繰り返しシリアル出力することが出来る。その際、当該16ビット幅のレジスタに読み込まれる一つのテストデータ120の値を構成する16個のビットの各々が、図3に示す位相シフト回路9の最終段FFに出力され、NOR回路61、62およびNAND回路63を通過してシリアル出力信号(ser_out)152として出力される。
シリアル化回路6の出力端からシリアル出力信号(ser_out)152として所望のパルス長が出力されるようにラッチ回路7内の16ビット幅のレジスタに適切な設定値を代入しておき、図4に示すtensten信号121をオン状態にセットすることで、ノーマルデータ110とテストデータ120のどちらが入力データ(data_in[15:0])140としてシリアル化回路6に入力されるかを切り替えることが出来る。16ビット幅パラレルデータ形式の入力データは、LSB(最下位ビット)から4位相クロックを構成する各位相クロックにそれぞれに同期してラッチ回路7のレジスタ内に繰り返し読み込まれる。
図6は、本実施の形態に従い、図3に示す論理テスト回路2の内部構成を示すブロック図である。論理テスト回路2は、シリアル化回路6がシリアル出力信号(ser_out)152としてシリアル出力する16ビット分のシリアル・ビット列を4ビットずつ4並列で読み込むための4本のFFチェーン20A、20B、20Cおよび20Dを備えている。FFチェーン20A、20B、20Cおよび20Dは、シリアル化回路6から4並列で4ビットずつ読み込んだ4本のシリアル・ビット列を保持しながら、当該シリアル・ビット列が既知のビット値の配列と一致するかどうか比較することによって論理テストを行う。
論理テスト用FFチェーン20Aにおいては、clk_b[0] 148Aの各パルスに同期して、FF 221Aには、シリアル出力信号(ser_out)152として外部から1ビットずつ入力されるビットデータが入力されるか、またはFF 221Aが現在記憶しているビット値が再びフィードバック入力される。FF 221Aにどちらのビットデータが入力されるかはセレクタ211Aによって選択される。また、clk_b[0] 148Aの各パルスに同期して、FF 222Aには、前段のFF 221Aが記憶していたビットデータが入力されるか、またはFF 222Aが現在記憶しているビット値が再びフィードバック入力される。FF 222Aにどちらのビットデータが入力されるかはセレクタ212Aによって選択される。同様に、clk_b[0] 148Aの各パルスに同期して、FF 223Aには、前段のFF 222Aが記憶していたビットデータが入力されるか、またはFF 222Aが現在記憶しているビット値が再びフィードバック入力される。FF 223Aにどちらのビットデータが入力されるかはセレクタ213Aによって選択される。同様に、clk_b[0] 148Aの各パルスに同期して、FF 224Aには、前段のFF 223Aが記憶していたビットデータが入力されるか、またはFF 224Aが現在記憶しているビット値が再びフィードバック入力される。FF 224Aにどちらのビットデータが入力されるかはセレクタ214Aによって選択される。
つまり、セレクタ211A、212A、213Aおよび214Aは、外部から入力されるキャプチャ・イネーブル信号(CAP_V0)149Aがオン状態であれば、外部から入力されるシリアル出力信号(ser_out)152の4ビット分を論理テスト用FFチェーン20Aの中に1ビットずつシフトさせながら読み込む様に各FFへの入力を切り替える。他方、セレクタ211A、212A、213Aおよび214Aは、外部から入力されるキャプチャ・イネーブル信号(CAP_V0)149Aがオフ状態であれば、論理テスト用FFチェーン20Aを構成する4つのFF 221A〜224Aが現在記憶しているビット値(論理状態)をそのまま保持する様に各FFへの入力を切り替える。
論理テスト用FFチェーン20Bにおいては、clk_b[1] 148Bの各パルスに同期して、FF 221Bには、シリアル出力信号(ser_out)152として外部から1ビットずつ入力されるビットデータが入力されるか、またはFF 221Bが現在記憶しているビット値が再びフィードバック入力される。FF 221Bにどちらのビットデータが入力されるかはセレクタ211Bによって選択される。また、clk_b[1] 148Bの各パルスに同期して、FF 222Bには、前段のFF 221Bが記憶していたビットデータが入力されるか、またはFF 222Bが現在記憶しているビット値が再びフィードバック入力される。FF 222Bにどちらのビットデータが入力されるかはセレクタ212Bによって選択される。同様に、clk_b[1] 148Bの各パルスに同期して、FF 223Bには、前段のFF 222Bが記憶していたビットデータが入力されるか、またはFF 222Bが現在記憶しているビット値が再びフィードバック入力される。FF 223Bにどちらのビットデータが入力されるかはセレクタ213Bによって選択される。同様に、clk_b[1] 148Bの各パルスに同期して、FF 224Bには、前段のFF 223Bが記憶していたビットデータが入力されるか、またはFF 224Bが現在記憶しているビット値が再びフィードバック入力される。FF 224Bにどちらのビットデータが入力されるかはセレクタ214Bによって選択される。
つまり、セレクタ211B、212B、213Bおよび214Bは、外部から入力されるキャプチャ・イネーブル信号(CAP_V1)149Bがオン状態であれば、外部から入力されるシリアル出力信号(ser_out)152の4ビット分を論理テスト用FFチェーン20Bの中に1ビットずつシフトさせながら読み込む様に各FFへの入力を切り替える。他方、セレクタ211B、212B、213Bおよび214Bは、外部から入力されるキャプチャ・イネーブル信号(CAP_V1)149Bがオフ状態であれば、論理テスト用FFチェーン20Bを構成する4つのFF 221B〜224Bが現在記憶しているビット値(論理状態)をそのまま保持する様に各FFへの入力を切り替える。
論理テスト用FFチェーン20Cにおいては、clk_b[2] 148Cの各パルスに同期して、FF 221Cには、シリアル出力信号(ser_out)152として外部から1ビットずつ入力されるビットデータが入力されるか、またはFF 221Cが現在記憶しているビット値が再びフィードバック入力される。FF 221Cにどちらのビットデータが入力されるかはセレクタ211Cによって選択される。また、clk_b[2] 148Cの各パルスに同期して、FF 222Cには、前段のFF 221Cが記憶していたビットデータが入力されるか、またはFF 222Cが現在記憶しているビット値が再びフィードバック入力される。FF 222Cにどちらのビットデータが入力されるかはセレクタ212Cによって選択される。同様に、clk_b[2] 148Cの各パルスに同期して、FF 223Cには、前段のFF 222Cが記憶していたビットデータが入力されるか、またはFF 222Cが現在記憶しているビット値が再びフィードバック入力される。FF 223Cにどちらのビットデータが入力されるかはセレクタ213Cによって選択される。同様に、clk_b[2] 148Cの各パルスに同期して、FF 224Cには、前段のFF 223Cが記憶していたビットデータが入力されるか、またはFF 224Cが現在記憶しているビット値が再びフィードバック入力される。FF 224Cにどちらのビットデータが入力されるかはセレクタ214Cによって選択される。
つまり、セレクタ211C、212C、213Cおよび214Cは、外部から入力されるキャプチャ・イネーブル信号(CAP_V2)149Cがオン状態であれば、外部から入力されるシリアル出力信号(ser_out)152の4ビット分を論理テスト用FFチェーン20Cの中に1ビットずつシフトさせながら読み込む様に各FFへの入力を切り替える。他方、セレクタ211C、212C、213Cおよび214Cは、外部から入力されるキャプチャ・イネーブル信号(CAP_V2)149Cがオフ状態であれば、論理テスト用FFチェーン20Cを構成する4つのFF 221C〜224Cが現在記憶しているビット値(論理状態)をそのまま保持する様に各FFへの入力を切り替える。
論理テスト用FFチェーン20Dにおいて、clk_b[3] 148Dの各パルスに同期して、FF 221Dには、シリアル出力信号(ser_out)152として外部から1ビットずつ入力されるビットデータが入力されるか、またはFF 221Dが現在記憶しているビット値が再びフィードバック入力される。FF 221Dにどちらのビットデータが入力されるかはセレクタ211Dによって選択される。また、clk_b[2] 148Dの各パルスに同期して、FF 222Dには、前段のFF 221Dが記憶していたビットデータが入力されるか、またはFF 222Dが現在記憶しているビット値が再びフィードバック入力される。FF 222Dにどちらのビットデータが入力されるかはセレクタ212Dによって選択される。同様に、clk_b[3] 148Dの各パルスに同期して、FF 223Dには、前段のFF 222Dが記憶していたビットデータが入力されるか、またはFF 222Dが現在記憶しているビット値が再びフィードバック入力される。FF 223Dにどちらのビットデータが入力されるかはセレクタ213Dによって選択される。同様に、clk_b[3] 148Dの各パルスに同期して、FF 224Dには、前段のFF 223Dが記憶していたビットデータが入力されるか、またはFF 224Dが現在記憶しているビット値が再びフィードバック入力される。FF 224Dにどちらのビットデータが入力されるかはセレクタ214Dによって選択される。
つまり、セレクタ211D、212D、213Dおよび214Dは、外部から入力されるキャプチャ・イネーブル信号(CAP_V3)149Dがオン状態であれば、外部から入力されるシリアル出力信号(ser_out)152の4ビット分を論理テスト用FFチェーン20Dの中に1ビットずつシフトさせながら読み込む様に各FFへの入力を切り替える。他方、セレクタ211D、212D、213Dおよび214Dは、外部から入力されるキャプチャ・イネーブル信号(CAP_V3)149Dがオフ状態であれば、論理テスト用FFチェーン20Dを構成する4つのFF 221D〜224Dが現在記憶しているビット値(論理状態)をそのまま保持する様に各FFへの入力を切り替える。
図2に示すCPU11がtesten信号121をオン状態にし、シリアル化回路6に入力される入力データ(data_in[15:0])140をテストデータ120に切り替えると、論理テスト回路2は、以下の手順に従って論理テストを実行する。まず、論理テスト回路2は、図2に示すシリアル出力信号(ser_out)152を内部のバッファ(図示なし)にSEROUT信号として1ビットずつ読み込む動作を開始する。続いて、論理テスト用FFチェーン20Aは、キャプチャ・イネーブル信号149A(図6のCAP_V0)のオフ状態からオン状態への変化をトリガとして、位相クロックclk_b[0](図6の148A)に同期してSEROUT信号を1ビットずつサンプリングしながら読み込んでゆく。
これと同時並行して、論理テスト用FFチェーン20Bは、キャプチャ・イネーブル信号149B(図6のCAP_V1)のオフ状態からオン状態への変化をトリガとして、位相クロックclk_b[1](図6の148B)に同期してSEROUT信号を1ビットずつサンプリングしながら読み込んでゆく。これと同時並行して、論理テスト用FFチェーン20Cは、キャプチャ・イネーブル信号149C(図6のCAP_V2)のオフ状態からオン状態への変化をトリガとして、位相クロックclk_b[2](図6の148C)に同期してSEROUT信号を1ビットずつサンプリングしながら読み込んでゆく。これと同時並行して、論理テスト用FFチェーン20Dは、キャプチャ・イネーブル信号149D(図6のCAP_V3)のオフ状態からオン状態への変化をトリガとして、位相クロックclk_b[3](図6の148D)に同期してSEROUT信号を1ビットずつサンプリングしながら読み込んでゆく。
図3に示す4つの遅延回路90A〜90Dの各々から出力される4本のシリアル出力ビット列SO[0]〜SO[3]は、4つの位相クロックclk_b[0]〜clk_b[3]にそれぞれ同期して出力されていた。従って、論理テスト用FFチェーン20A内の4つのFF 221A〜224Aが、位相クロックclk_b[0]に同期して、4ビット分のSEROUT信号を読み込むと、論理テスト用FFチェーン20A内には、シリアル出力ビット列SO[0]に含まれる4ビット分が読み込まれることとなる。同様に、論理テスト用FFチェーン20B内の4つのFF 221B〜224Bが、位相クロックclk_b[1]に同期して、4ビット分のSEROUT信号を読み込むと、論理テスト用FFチェーン20B内には、シリアル出力ビット列SO[1]に含まれる4ビット分が読み込まれることとなる。同様に、論理テスト用FFチェーン20C内の4つのFF 221C〜224Cが、位相クロックclk_b[2]に同期して、4ビット分のSEROUT信号を読み込むと、論理テスト用FFチェーン20C内には、シリアル出力ビット列SO[2]に含まれる4ビット分が読み込まれることとなる。論理テスト用FFチェーン20D内の4つのFF 221D〜224Dが、位相クロックclk_b[3]に同期して、4ビット分のSEROUT信号を読み込むと、論理テスト用FFチェーン20D内には、シリアル出力ビット列SO[3]に含まれる4ビット分が読み込まれることとなる。
次に、論理テスト用FFチェーン20A内の4つのFF 221A〜224Aが、位相クロックclk_b[0]に同期して、4ビット分のSEROUT信号を読み込み終えた後に、論理テスト用FFチェーン20Aは、SEROUT信号をサンプリングして読み込む動作を停止する。当該読み込み動作の停止は、論理テスト用FFチェーン20A内の4つのFF 221A〜224Aに出力されるキャプチャ・イネーブル信号149A(図6のCAP_V0)のオン状態からオフ状態への変化をトリガとして行われる。同様に、論理テスト用FFチェーン20B内の4つのFF 221B〜224Bが、位相クロックclk_b[1]に同期して、4ビット分のSEROUT信号を読み込み終えた後に、論理テスト用FFチェーン20Bは、SEROUT信号をサンプリングして読み込む動作を停止する。当該読み込み動作の停止は、論理テスト用FFチェーン20B内の4つのFF 221B〜224Bに出力されるキャプチャ・イネーブル信号149B(図6のCAP_V1)のオン状態からオフ状態への変化をトリガとして行われる。
同様に、論理テスト用FFチェーン20C内の4つのFF 221C〜224Cが、位相クロックclk_b[2]に同期して、4ビット分のSEROUT信号を読み込み終えた後に、論理テスト用FFチェーン20Cは、SEROUT信号をサンプリングして読み込む動作を停止する。当該読み込み動作の停止は、論理テスト用FFチェーン20C内の4つのFF 221C〜224Cに出力されるキャプチャ・イネーブル信号149C(図6のCAP_V2)のオン状態からオフ状態への変化をトリガとして行われる。同様に、論理テスト用FFチェーン20D内の4つのFF 221D〜224Dが、位相クロックclk_b[3]に同期して、4ビット分のSEROUT信号を読み込み終えた後に、論理テスト用FFチェーン20Dは、SEROUT信号をサンプリングして読み込む動作を停止する。当該読み込み動作の停止は、論理テスト用FFチェーン20D内の4つのFF 221D〜224Dに出力されるキャプチャ・イネーブル信号149D(図6のCAP_V3)のオン状態からオフ状態への変化をトリガとして行われる。
次に、4本の論理テスト用FFチェーン20A〜20Dがそれぞれ保持している4ビット分の4本のシリアル・ビット列データ(T0)をレジスタアクセスにより16ビットデータとして読み出し、16ビット幅のパラレルデータであるテストデータ120の正しい値として既知のビットパターンと比較する。当該読み出された16ビットデータのうち、一つ以上のビット値が既知のビットパターン内の対応するビット値と異なる場合には、回路内のいずれかのFFが故障しているか異常動作している事がわかる。例えば、SO[0]〜SO[3]の各々に対応する4並列の4ビットデータの中で、clk_b[0]と同期して出力されるSO[0]に対応する4ビットデータが既知のビットパターンと異なるビット値を含んでいるとする。その場合には、シリアル化回路6内においてSO[0]に対応するclk_b[0]と同期した一連の信号経路上にある一つ以上のFFが故障しているか異常動作していると判定できる。
論理テストは、図6のCAP_V0〜CAP_V3(図6のキャプチャ・イネーブル信号149A〜149D)にそれぞれ対応した4本の論理テスト用FFチェーン20A〜20Dの各々についてテストデータ120のビットパターンを様々に変化させながら繰り返し行うことが好適である。このようなビットパターンの候補としては、0101、1010、1000、0100、0010および0001などが考えられる。例えば、論理テスト用FFチェーン20Aに読み込まれるビット列T00〜T03は、シリアル化回路6内においてSO[0]に対応するclk_b[0]と同期した一連の信号経路を経由して読み込まれる。従って、テストデータ(DATA_TEST*)120の第0ビット値、第4ビット値、第8ビット値および第12ビット値としてビットパターン「0101」を設定することでT00〜T03には01の繰り返しパターンが常に保持されることになる。そのため、論理テスト用FFチェーン20Aから保持データを読み出したときに、読み出したビット列が「0101」のビットパターンになっていない場合、以下の2つの場合のいずれかに該当することが分かる。すなわち、シリアル化回路6内においてSO[0]に対応するclk_b[0]と同期した一連の信号経路に位置するいずれか一つ以上のFFが「0101」のビットパターンで出力できていない。もしくは、論理テスト用FFチェーン20A内の一つ以上のFFが「0101」のビットパターンで出力できていない。
図3記載の論理テスト回路2内において、図6に示す4つの制御信号CAP_V0〜CAP_V3(図6のキャプチャ・イネーブル信号149A〜149D)は、キャプチャ・イネーブル信号生成部によって生成される。キャプチャ・イネーブル信号生成部の回路構造を図7に示す。図7に示すように、キャプチャ・イネーブル信号生成部の回路構造は、直列に接続された4段のFF 201、202、203および204によって構成されている。図2に示すCPU11が図示しない制御レジスタの該当する制御ビットに対してデータ書き込み(図2の132)を行うと、論理テスト回路2に出力されるCAP_EN信号147がオン状態となり、FF 201に出力されるCAP_EN_G信号147もオン状態となる。すると、FF 201は、clk_b[0] 148Aに同期してCAP_V0信号(図6のキャプチャ・イネーブル信号149A)を次段FF 202に出力すると共に、論理テスト用FFチェーン20Aに出力する。
続いて、CAP_V0信号(図6のキャプチャ・イネーブル信号149A)を受け取ったFF202は、clk_b[3] 148Dに同期して、CAP_V3信号(図6のキャプチャ・イネーブル信号149D)を次段FF 203に出力すると共に、論理テスト用FFチェーン20Dに出力する。続いて、CAP_V3信号(図6のキャプチャ・イネーブル信号149D)を受け取ったFF203は、clk_b[2] 148Cに同期して、CAP_V2信号(図6のキャプチャ・イネーブル信号149C)を次段FF 204に出力すると共に、論理テスト用FFチェーン20Cに出力する。最後に、CAP_V2信号(図6のキャプチャ・イネーブル信号149C)を受け取ったFF204は、clk_b[1] 148Bに同期して、CAP_V1信号(図6のキャプチャ・イネーブル信号149B)を出力すると共に、論理テスト用FFチェーン20Bに出力する。
以上より、図7に示すキャプチャ・イネーブル信号生成部は、CAP_EN_G信号147を4段構成のFF 201〜204の各段毎にclk_bの3/4周期に等しい3位相ずつずれたクロック信号でタイミング・シフトする形で、図6に示す4つの制御信号CAP_V0〜CAP_V3(図6のキャプチャ・イネーブル信号149A〜149D)を生成する。そして、図7に示すキャプチャ・イネーブル信号生成部は、4つの制御信号CAP_V0〜CAP_V3(図6のキャプチャ・イネーブル信号149A〜149D)を4本の論理テスト用FFチェーン20A〜20Dにそれぞれ出力する。また、図8は、図7に示す回路構造により生成されるCAP_V0〜CAP_V3(図6のキャプチャ・イネーブル信号149A〜149D)およびCAP_EN_G信号147と他のクロック信号との間の関係性を説明するタイミング・チャートである。
以上のように、本実施の形態は、従来技術のようにテスト対象回路の動作モードをノーマル動作モードからSCANモードへと切り替えることにより、回路内の各FFの論理状態(「0」または「1」)のトレース監視動作をON/OFF切換えするのではない。むしろ、本実施の形態においては、テスト対象回路の内部に論理テスト用回路2を設け、論理テスト用回路2は、ビット列データを読み込んで保持した状態でテストするための論理テスト用FFチェーン20A〜20Dをテスト対象回路内にある既存のFFチェーンとは別個に含んでいる。論理テスト回路2は、テスト対象回路のシリアル化回路出力を論理テスト用FFチェーン内20A〜20Dに読み込む動作の実行開始と実行停止をCAP_V0〜CAP_V3信号(キャプチャ・イネーブル信号149A〜149D)のON/OFFにより切り替える構成を採る。そして、論理テスト回路2は、パラレルデータを構成する全てのビットを論理テスト用FFチェーン20A〜20Dに読み込み終わった後に、読み込んだ全てのビットを既知のビットパターンと比較する構成となっている。
本実施の形態に係る論理テスト回路2において、論理テスト用FFチェーン20A〜20Dはclk_b[3:0]を構成する4つの位相クロックに対応して4並列で構成されている。また、4並列に構成された4本の論理テスト用FFチェーン20A〜20Dの各々は、シリアル化回路6の出力を該当する位相毎のクロック信号に同期して1ビットずつデータをシフトさせながら各FFチェーン内に読み込んでゆく。その際、並列構成された4本の論理テスト用FFチェーン20A〜20Dの各々のビット読み込み動作をON/OFF切換えするCAP_V0〜CAP_V3信号(キャプチャ・イネーブル信号149A〜149D)は、4つの位相に対応した4本の論理テスト用FFチェーン20A〜20Dの間においてclk_bの3/4周期ずつ位相シフトされている。
図8を参照すると、CAP_V0(キャプチャ・イネーブル信号149A)は、位相クロックclk_b[0] 148Aのパルスの立ち上がりと同期してオフ状態からオン状態に変化している。CAP_V3(キャプチャ・イネーブル信号149D)は、位相クロックclk_b[3] 148Dのパルスの立ち上がりと同期してオフ状態からオン状態に変化している。CAP_V2(キャプチャ・イネーブル信号149C)は、位相クロックclk_b[2] 148Cのパルスの立ち上がりと同期してオフ状態からオン状態に変化している。CAP_V1(キャプチャ・イネーブル信号149B)は、位相クロックclk_b[1] 148Bのパルスの立ち上がりと同期してオフ状態からオン状態に変化している。また、CAP_EN_G信号147は、クロック信号181(図8のclk_g)のパルスの立ち上がりに同期してオフ状態からオン状態へと変化している。図8において、load信号183は、CAP_V0〜CAP_V3信号149A〜149Dがオン状態へと変化するのに合わせて、SEROUT信号を論理テスト用FFチェーン20A〜20D内に読み込む動作の開始タイミングの同期をとるためのパルス信号である。cnt[1:0]信号182は、論理テスト用FFチェーン20A〜20D内に読み込まれたビット数を数え上げる2ビット幅のカウンタに対応したパルス信号である。
本実施の形態においては、セルフテスト回路10の回路構成およびクロック制御動作を上記構成のとおりとした。その結果、本実施の形態においては、位相シフト回路9が、シフトレジスタ回路8内の4並列のシフトレジスタ80A〜80Dからそれぞれ入力された4個のビットを4つの位相クロック(clk_b[0] 148A〜clk_b[3] 148D)の各々に対応して位相毎に順次シリアル出力することが可能となった。その際に、本実施の形態においては、clk_bの1/4周期のクロック周波数に対応する最高クロック速度で回路全体を駆動しても、回路全体の同期設計においてタイミング調整に充分な余裕を持たせることが可能となった。
より具体的には、まず、シフトレジスタ回路8内のシフトレジスタ80A〜80D、位相シフト回路9内の遅延回路90A〜90Dおよび論理テスト回路2内の論理テスト用FFチェーン20A〜20Dを、4並列構成のFFチェーンで構成して4並列動作させている。さらに、4並列構成された遅延回路90A〜90Dの各々のFFチェーンを冗長構成とすることにより、遅延回路90A〜90Dの相互間において、FFを動作させるクロック・タイミングの間に充分な余裕(clk_bの3/4周期分)を持たせている。さらに、遅延回路90A〜90Dの相互間において、FFを動作させるクロック・タイミングの間にclk_bの3/4周期分の余裕を持たせたことに対応して、論理テスト回路2内において、4つのキャプチャ・イネーブル信号149A〜149D(CAP_V0〜CAP_V3信号)は、以下のようにタイミング・シフトされている。すなわち、論理テスト回路2内において、4つの位相に対応した4本の論理テスト用FFチェーン20A〜20Dにそれぞれ出力される4つのキャプチャ・イネーブル信号149A〜149Dは、互いにclk_bの3/4周期ずつ位相シフトされている。ここで、CAP_V0〜CAP_V3信号(キャプチャ・イネーブル信号149A〜149D)は、4本の論理テスト用FFチェーン20A〜20Dの各々のビット読み込み動作をON/OFF切換えするイネーブル信号である。本実施の形態に係るセルフテスト回路10をこのような回路構成とすることにより、clk_bの1/4周期のクロック周波数に対応する最高クロック速度で回路全体を駆動しても、回路全体の同期設計においてタイミング調整に充分な余裕を持たせることが可能となる。加えて、セルフテスト回路装置10において、ノーマル動作モードからSCANモードへの動作モード切り替えの必要なしに、テスト対象回路装置内の各フリップフロップの論理トレースによる故障検出テストを行うことが可能となった。
図9は、本実施の形態に係るセルフテスト回路10を図1に示すシリアル化回路106と置き換えて構成したデータ処理回路101全体の回路構成を示している。図9において、シリアル転送データ生成部102、パラレル転送用クロック生成部103およびPWM変調データ生成部104がそれぞれ生成した3つの16ビット幅パラレルデータdata1、data2およびdata3の中のいずれか一つがセレクタ回路105により選択されて出力パラレルデータ(data_in[15:0])196としてセルフテスト回路10に出力される。セルフテスト回路10は、出力パラレルデータ(data_in[15:0])196をノーマルデータ110またはテストデータ(DATA_TEST*)120として受け取り、シリアル化回路6への入力データとする。セルフテスト回路10内において、テストデータ120を受け取ったシリアル化回路6は、テストデータ120をシリアル信号に変換し、論理テスト回路2にシリアル出力信号SEROUTとして出力する。シリアル出力信号SEROUTを受け取った論理テスト回路2は、クロックclk_bに同期して、CPU11からの指示(図9のデータライト信号132)に従い、テストデータ120の16ビット幅のビットパターンを基準とする論理テストを実行する。
セレクタ回路105が出力したパラレルデータ196をセルフテスト回路10がノーマルデータ110として受け取るか、テストデータ120として受け取るかは、データ選択回路1に入力されるtesten信号121によって切り替えることが可能である。CPU11は、図示しない制御レジスタ内の該当する制御ビットに対してデータライト(データ書き込み)信号131を出力することにより、データ選択回路1に入力されるtesten信号121をオフ状態からオン状態にする。
PWM変調データ生成部104はPWM変調データのデューティ設定用入力信号pwm_in 194に従って所定の搬送波パルス信号をパルス幅変調して、パルス幅変調後のパラレルデータdata3をセレクタ回路105に出力する。セルフテスト回路10が、PWM変調データ生成部104からセレクタ回路105を介してパラレルデータdata3を入力され、ノーマルデータ110として受け取ると、セルフテスト回路10は、パラレルデータdata3をclk_bの1/4周期に対応する最高クロック速度でシリアル信号に変換する。その結果、当該電子写真方式の画像形成に関する光書込装置において、主走査の画像領域の前後に光センサを配置し、その光センサで光を検出する時間幅によって温度上昇等による主走査倍率の変動を補正するためにPWM変調データを最高クロック速度で生成可能となる。
つまり、セルフテスト回路10内のシリアル化回路6がシリアル信号に変換するパラレルデータdata3は、PWM変調データ生成部104が所望のデューティ比を有するように生成したパラレルデータ形式のビット列である。従って、セルフテスト回路10内のシリアル化回路6がパラレルデータdata3をシリアル変換して成るパルス列は、PWM変調データ生成部104が設定した所望のデューティ比を有するパルス列である。そして、セルフテスト回路10は、当該パルス列を、上述したPWM変調のために、シリアル出力信号151として外部に出力する。さらに、セルフテスト回路10が、既知のビットパターンのパラレルデータをテストデータ120として受け取り、論理テスト回路2によるセルフテストを実行するようにすれば、セルフテスト回路10を含むデータ処理回路101全体において、最高クロック速度でのセルフテストが実行可能となる。
<実施の形態1の効果>
第1に、本実施の形態は、セルフテスト回路装置10において、特許文献1のようなノーマル動作モードからスキャン・モードへの動作モード切り替えの必要なしに、テスト対象回路装置内の各FFの論理トレースによる故障検出テストを行うことができる。第2に、本実施の形態は、セルフテスト回路装置10において、最高クロック速度からクロック動作速度を落とすことなく、しかも高い故障検出率を維持しながら、テスト対象回路装置内の各FFの論理トレースによる故障検出テストを行うことができる。第3に、本実施の形態は、セルフテスト回路10全体の同期設計におけるタイミング調整に充分な余裕を持たせることによって、セルフテスト回路10全体の正確で確実なクロック制御動作を保証することができる。
<実施の形態2>
図10は、実施の形態2として、論理テスト回路2をよりコンパクトな回路規模とするための第1の変形実施例を示す。本実施の形態においては、CAP_V0〜CAP_V3信号(キャプチャ・イネーブル信号149A〜149D)の中のいずれか一つを選択するセレクタ23が設けられている。さらに、本実施の形態においては、論理テスト用FFチェーンが同期すべきクロック信号を4位相のクロックclk_b[0]〜clk_b[3]の中から一つ選択するためのセレクタ24が設けられている。これにより、本実施の形態においては、4本あった論理テスト用FFチェーンを1本に共用化することが出来る。図9に示すCPU11は、セレクタ23に選択信号であるCAP_SEL信号を出力することにより、CAP_V0〜CAP_V3信号(キャプチャ・イネーブル信号149A〜149D)の中のいずれか一つをセレクタ23に選択させ、論理テスト用FFチェーンに出力させる。図9に示すCPU11は、セレクタ24に選択信号を出力することにより、論理テスト用FFチェーンが同期すべきクロック信号を4位相のクロックclk_b[0]〜clk_b[3]の中から選択させる。
当該論理テスト用FFチェーンは、4つのFF 22A、22B、22Cおよび22Dを直列接続した4段構成のFFチェーンである。本実施の形態において、セレクタ21A、21B、21Cおよび21Dにより、ビット列の読み込みと記憶したビット値の保持とを切り替える点は、実施の形態1の論理テスト用FFチェーン20A〜20Dにおいて図6を用いて上述したセレクタ811〜814と同様である。以上により、本実施の形態によれば、論理テスト回路2の回路構成を最小構成で済ませることができる。
<実施の形態3>
図11は、実施の形態3として、論理テスト回路2へ入力されるべきSEROUT信号を、分周器を介して出力する第2の変形実施例を示す。本実施の形態においては、シリアル化回路6が出力するシリアル出力信号(ser_out[15:0])を4並列で構成された4つの分周器501〜504へ入れてから論理テスト回路2内の論理テスト用FFチェーン20A〜20D(図6)に出力する(図11の601〜604)。その際、分周器501は、clk_b[0]に同期して動作し、分周器502は、clk_b[1]に同期して動作し、分周器503は、clk_b[2]に同期して動作し、分周器504は、clk_b[3]に同期して動作する。その結果、セルフテスト回路10内のシリアル化回路6が出力するシリアル出力信号152は、4個の分周器501〜504により4個の位相クロック信号clk_b[0]〜clk_b[3]に同期して分周されて、論理テスト回路2内のN並列構成された論理テスト用FFチェーン20A〜20Dに出力される。これにより、本実施の形態によれば、図3に示す位相シフト回路9の遅延回路90A〜90Dに含まれるFFの出力だけでなく、NOR回路61、62およびNAND回路63の故障も分周された信号を見ることで検出することが出来る。
<その他の一般化された実施例>
以上のとおり、本実施の形態に係るセルフテスト回路10の構成と動作について説明してきた。上記説明においては、PWM変調データを16ビット幅パラレルデータとして供給する回路部分とセルフテスト回路10とを一体化した集積回路として図9に示すようなデータ処理回路を構成することを前提としていた。これは、MFP等の光書き込み装置において、主走査画像領域の前後に配置された光センサで光を検出する時間幅によって温度上昇等による主走査倍率の変動を補正するためにPWM変調データを最高クロック速度で生成するためであった。しかしながら、本実施の形態に係るセルフテスト回路10に用いられている動作原理と回路構造が適用可能な対象は、上記のようなMFP等の光書き込み装置において主走査倍率変動を補正するためにPWM変調データを生成する半導体集積回路に限定されない。むしろ、本実施の形態に係るセルフテスト回路10の動作原理と回路構造は、セルフテスト機能を実装する必要のある任意の半導体集積回路に適用することができる。また、本実施の形態に係るセルフテスト回路10の動作原理と回路構造は、その他の任意の応用用途に利用することも可能である。その他の任意の応用用途としては、例えば、セルフテスト機能を組み込んだ半導体回路をシミュレートする回路シミュレータまたはセルフテスト機能をプログラム可能なFPGA(Field Programmable Gate Array)のような応用用途が考えられる。
上述した実施の形態1〜実施の形態3においては、多相クロックは、4位相のクロック信号として説明してきた。また、上述した実施の形態1〜実施の形態3においては、ノーマルデータ110またはテストデータ120としてセルフテスト回路10に入力されるパラレルデータは16ビット幅であるとして説明してきた。しかしながら、Nを4以外の任意の自然数とするならば、実施の形態1〜実施の形態3に係るセルフテスト回路10を駆動するための多相クロックは、一周期をN分割して成るN個の位相にそれぞれ対応し、360°/Nだけ互いに位相シフトされたN個の位相クロックから構成することが可能である。また、Mを16以外の任意の自然数とするならば、実施の形態1〜実施の形態3において、ノーマルデータ110またはテストデータ120としてセルフテスト回路10に入力されるパラレルデータはMビット幅のパラレルデータとすることが可能である。その場合、シフトレジスタ回路8内のシフトレジスタ、位相シフト回路9内の遅延回路90、および論理テスト回路2内の論理テスト用FFチェーン20は、それぞれ4並列ではなくN並列で構成される。そして、N並列で構成され、N個の位相クロックにそれぞれ対応して動作するシフトレジスタ、遅延回路90および論理テスト用FFチェーン20の各々は、Mビット幅のパラレルデータの論理テストを一回行う毎に、M/Nに等しいビット数のシリアル・ビット列を読み込むように構成されることとなる。
1 データ選択回路
2 論理テスト回路
6 シリアル化回路
7 ラッチ回路
8 シフトレジスタ回路
9 位相シフト回路
10 セルフテスト回路
11 CPU
20 遅延回路
30 遅延回路
40 遅延回路
50 遅延回路
61 NOR回路
62 NOR回路
63 NAND回路
100 データ処理回路
101 データ処理回路
102 シリアル転送データ生成部
103 パラレル転送用クロック生成部
104 PWM変調データ生成部
105 セレクタ回路
106 シリアル化回路
特開2004−325124号公報 特開2015−046749号公報

Claims (8)

  1. 1/N周期ずつ位相シフトされた第1位相から第N位相をそれぞれ有する同一周期のN個のクロック信号を含む多相クロック信号によって駆動される集積回路におけるセルフテスト回路であって、
    Mビット幅のパラレルデータとして前記セルフテスト回路に入力される入力データを、通常のデータと論理テスト用のテストデータとの間で切り替えるデータ選択回路と、
    前記入力データをN並列にシリアル変換してN並列に出力される各ビットを、前記第1位相から第N位相までの各位相に対応するタイミングで1本のシリアル出力信号として出力するシリアル化回路と、
    前記第1位相から第N位相までの各位相に対応するタイミングに同期して、前記シリアル出力信号を、それぞれM/Nビット長を有するN並列ビット列として取り込んでMビット分のビット論理テストを行う論理テスト回路と、
    を具備する、集積回路におけるセルフテスト回路。
  2. 前記シリアル化回路は、前記N並列シリアル変換により出力されるN本のビット列を、複数段のFF直列回路から成るN本の遅延回路に入力し、N本の前記遅延回路の最終段FFからN並列に出力されるビットを、前記1本のシリアル出力信号として出力するための位相シフト回路を具備し、
    前記論理テスト回路は、前記N本の遅延回路とは別個にN並列構成された論理テスト用FFチェーンを具備し、
    前記N並列構成された論理テスト用FFチェーンは、前記シリアル出力信号をそれぞれM/Nビット長を有するN並列ビット列として一ビットずつ取り込む動作の開始と停止をN個のキャプチャ信号のオン/オフに応じて切り替え可能に構成されている、請求項1記載の集積回路におけるセルフテスト回路。
  3. 前記N本の遅延回路の各々は、前記第1位相から第N位相までの各位相に応じた異なるFF段数を経由して、一周期未満の冗長遅延量だけ各ビットを遅延出力するように構成され、
    前記N並列構成された論理テスト用FFチェーンは、前記冗長遅延量だけ互いに位相シフトされたN個のキャプチャ信号をトリガとして、N並列ビット列として前記シリアル出力信号を取り込む動作を開始し、
    前記冗長遅延量は、1/N周期のクロック速度で前記セルフテスト回路を駆動した場合に、回路素子間におけるデータ受け渡しを正確に行うのに必要な同期設計タイミング調整幅に応じて決定される、
    請求項2記載の集積回路におけるセルフテスト回路。
  4. 前記N本の遅延回路は、前記多相クロックの前記第1位相から第N位相にそれぞれ対応し、前記遅延回路の各々における最終段FFは、前記多相クロックの対応する位相に同期して前記最終段のFFに記憶されたビットを出力するように構成される、
    請求項3記載の集積回路におけるセルフテスト回路。
  5. 前記シリアル化回路は、前記N並列のシリアル変換により前記N本のビット列を出力するためにN並列構成されたシフトレジスタをさらに具備し、
    前記N並列構成されたシフトレジスタの各々は、前記第1位相のタイミングに同期して前記入力データを1ビットずつ読み込むシフトFFチェーンを具備する、
    請求項1乃至請求項4のいずれか一項に記載された集積回路におけるセルフテスト回路。
  6. 請求項1乃至請求項5の中のいずれか一項に記載された集積回路におけるセルフテスト回路と、
    外部から入力されるパルス幅変調データに基づいて、前記シリアル出力信号として出力されるパルス列のデューティ比を設定するためのパラレルデータを生成するパラレルデータ生成部と、
    を具備し、前記セルフテスト回路内の前記シリアル化回路が前記パラレルデータをシリアル信号に変換して成るパルス列は、前記設定したデューティ比を有する、データ処理回路。
  7. 前記論理テスト回路は、前記N本の遅延回路とは別個に構成された単一の論理テスト用FFチェーンと、
    前記第1位相から第N位相までの各位相に対応するN個のクロック信号からいずれか一つを選択して前記単一の論理テスト用FFチェーンに出力する第1のセレクタ回路と、
    前記第1位相から第N位相までの各位相に対応するN個のキャプチャ信号からいずれか一つを選択して前記単一の論理テスト用FFチェーンに出力する第2のセレクタ回路と、を具備し、
    前記単一の論理テスト用FFチェーンは、前記シリアル出力信号を、前記第1のセレクタ回路が選択したクロック信号と同期して、Mビット長を有する単一のビット列として一ビットずつ取り込む動作の開始と停止を切り替え可能に構成され、前記開始と停止の切り替えは、前記第2のセレクタ回路が選択したキャプチャ信号のオン/オフに応じて行われる、請求項1記載の集積回路におけるセルフテスト回路。
  8. 前記第1位相から第N位相までの各位相に対応するN個のクロック信号に同期して動作するN個の分周器をさらに備え、
    前記セルフテスト回路内の前記シリアル化回路が出力するシリアル出力信号は、N個の分周器により前記N個のクロック信号に同期して分周されて、前記論理テスト回路内の前記N並列構成された論理テスト用FFチェーンに出力される、請求項2記載の集積回路におけるセルフテスト回路。


JP2015133726A 2015-07-02 2015-07-02 集積回路におけるセルフテスト回路およびデータ処理回路 Pending JP2017015597A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015133726A JP2017015597A (ja) 2015-07-02 2015-07-02 集積回路におけるセルフテスト回路およびデータ処理回路
US15/188,288 US9989590B2 (en) 2015-07-02 2016-06-21 Self-test circuit in integrated circuit, and data processing circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015133726A JP2017015597A (ja) 2015-07-02 2015-07-02 集積回路におけるセルフテスト回路およびデータ処理回路

Publications (1)

Publication Number Publication Date
JP2017015597A true JP2017015597A (ja) 2017-01-19

Family

ID=57683627

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015133726A Pending JP2017015597A (ja) 2015-07-02 2015-07-02 集積回路におけるセルフテスト回路およびデータ処理回路

Country Status (2)

Country Link
US (1) US9989590B2 (ja)
JP (1) JP2017015597A (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020150438A (ja) * 2019-03-14 2020-09-17 キオクシア株式会社 データ生成回路及び送信装置
CN110618957B (zh) * 2019-08-30 2023-07-28 晶晨半导体(上海)股份有限公司 接口时序校准方法及装置
US20230176120A1 (en) * 2021-12-08 2023-06-08 Qorvo Us, Inc. Scan test in a single-wire bus circuit
CN114024643B (zh) * 2022-01-10 2022-05-13 杭州加速科技有限公司 一种ate设备中各功能执行时间的精准控制方法及系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6865222B1 (en) * 1999-09-23 2005-03-08 Texas Instruments Incorporated Method and apparatus for testing a serial transmitter circuit
US7644333B2 (en) * 2001-12-18 2010-01-05 Christopher John Hill Restartable logic BIST controller
JP2004325124A (ja) 2003-04-22 2004-11-18 Matsushita Electric Ind Co Ltd 半導体装置
JP6295547B2 (ja) 2013-08-28 2018-03-20 株式会社リコー データ処理回路及びそれを用いた制御装置

Also Published As

Publication number Publication date
US20170003344A1 (en) 2017-01-05
US9989590B2 (en) 2018-06-05

Similar Documents

Publication Publication Date Title
US7941720B2 (en) Scan test circuit and scan test control method
KR100214239B1 (ko) 부분 스캔 패스 회로를 갖는 집적 논리 회로와 부분 스캔 패스 설계 방법
JPS63182585A (ja) テスト容易化機能を備えた論理回路
JP2017015597A (ja) 集積回路におけるセルフテスト回路およびデータ処理回路
TW201825921A (zh) 掃描鏈路
KR100776937B1 (ko) 입출력 공용 단자 제어 회로
US8536918B2 (en) Flip-flop circuit, scan test circuit, and method of controlling scan test circuit
JP2002289776A (ja) 半導体装置
US6073260A (en) Integrated circuit
JP4133814B2 (ja) タイミング発生器及び半導体試験装置
JP6211971B2 (ja) 半導体テスト回路及びicチップ
US8159209B2 (en) Digital signal delay measuring circuit and digital signal delay measuring method
KR20030030850A (ko) 논리 회로 테스트용 스캔 패스 회로 및 이것을 구비한집적 회로 장치
JP4662520B2 (ja) スキャンテスト回路およびスキャンテスト方法、並びに半導体集積回路
JP2011055224A (ja) フリップフロップ回路
KR900008788B1 (ko) 테이터 회로를 구비한 반도체 집적회로장치
KR100313202B1 (ko) 매크로용테스트회로
US20190080039A1 (en) Integrated circuit, scan shift control method, and circuit design method
JP2653945B2 (ja) 半導体集積回路
KR20050051856A (ko) 디버깅용 주사 체인을 가지는 반도체 장치 및 주사 체인을이용한 디버깅 방법
JPH05341016A (ja) 半導体集積回路装置およびテスト方法
JP2000227456A (ja) スキャンフリップフロップ
JP2001228213A (ja) 半導体集積回路装置及びクロックスキューの検証方法
JP2004294424A (ja) スキャンテスト制御方法、及びスキャンテスト回路
JP2005069931A (ja) 半導体集積回路およびその設計方法ほか