JP2021148628A - 半導体装置 - Google Patents

半導体装置 Download PDF

Info

Publication number
JP2021148628A
JP2021148628A JP2020049250A JP2020049250A JP2021148628A JP 2021148628 A JP2021148628 A JP 2021148628A JP 2020049250 A JP2020049250 A JP 2020049250A JP 2020049250 A JP2020049250 A JP 2020049250A JP 2021148628 A JP2021148628 A JP 2021148628A
Authority
JP
Japan
Prior art keywords
signal
circuit
level
reference value
semiconductor device
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
JP2020049250A
Other languages
English (en)
Inventor
孝志 青野
Takashi Aono
孝志 青野
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.)
Toshiba Corp
Toshiba Electronic Devices and Storage Corp
Original Assignee
Toshiba Corp
Toshiba Electronic Devices and Storage Corp
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 Toshiba Corp, Toshiba Electronic Devices and Storage Corp filed Critical Toshiba Corp
Priority to JP2020049250A priority Critical patent/JP2021148628A/ja
Priority to US17/017,772 priority patent/US11275114B2/en
Publication of JP2021148628A publication Critical patent/JP2021148628A/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/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318552Clock circuits details
    • 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/31703Comparison aspects, e.g. signature analysis, comparators
    • 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/3177Testing of logic operation, e.g. by logic analysers
    • 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/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318558Addressing or selecting of subparts of the device under test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/30Accessing single arrays
    • G11C29/32Serial access; Scan testing

Landscapes

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

Abstract

【課題】故障検出率を向上できる半導体装置を提供する。【解決手段】一実施形態の半導体装置(100)は、第1信号及び第2信号を生成可能な制御回路(110)と、第1信号に基づいて、クロック信号の供給又は供給停止を実行可能なゲーティング回路(120)と、クロック信号と、第2信号と、テストパタンとを受け付け可能な回路ブロック(130)とを備える。ゲーティング回路(120)は、スキャンテストの期間に、第1信号に基づいて、クロック信号の供給停止後の再供給を実行可能である。【選択図】図1

Description

本発明の実施形態は、半導体装置に関する。
フリップフロップを用いて回路ブロックをスキャン化することにより、LSIのテストを効率的に行う技術が知られている。
特開2019−168297号公報
故障検出率を向上できる半導体装置を提供する。
本実施形態の半導体装置は、第1信号及び第2信号を生成可能な制御回路と、第1信号に基づいて、クロック信号の供給又は供給停止を実行可能なゲーティング回路と、クロック信号と、第2信号と、テストパタンとを受け付け可能な回路ブロックとを備える。回路ブロックは、クロック信号に基づいて、テストパタンを取り込み可能なスキャンチェーン回路と、第2信号に基づいて、スキャンチェーン回路から出力された第3信号と、スキャンチェーン回路に入力される第4信号とのいずれかを選択可能な選択回路とを備える。ゲーティング回路は、スキャンテストの期間に、第1信号に基づいて、クロック信号の供給停止後の再供給を実行可能である。
図1は、一実施形態に係る半導体装置のブロック図。 図2は、一実施形態に係る半導体装置に含まれるスキャンチェーン回路のブロック図。 図3は、一実施形態に係る半導体装置に含まれる制御回路のブロック図。 図4Aは、一実施形態に係る半導体装置のスキャンテストの期間における動作を示すフローチャート。 図4Bは、一実施形態に係る半導体装置のスキャンテストの期間における動作を示すフローチャート。 図5は、一実施形態に係る半導体装置のスキャンテストの期間における各種信号のタイミングチャート。 図6Aは、一実施形態に係る半導体装置のブロック図。 図6Bは、一実施形態に係る半導体装置のブロック図。 図6Cは、一実施形態に係る半導体装置のブロック図。 図7は、一実施形態に係る半導体装置に対してスキャンテストを実施した場合のテストパタン数と組み合わせ回路の故障検出率との関係を示す図。 図8は、一実施形態の第1変形例に係る半導体装置に含まれる制御回路のブロック図。 図9は、図8の制御回路に含まれるレジスタに書き込まれるテーブルの概念図。 図10は、一実施形態の第2変形例に係る半導体装置に含まれる制御回路のブロック図。 図11は、一実施形態の他の変形例に係る半導体装置のスキャンテストの期間における信号CLKの供給及び供給停止のタイミングチャート。
以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。
1.一実施形態
一実施形態に係る半導体装置について説明する。以下では、フリップフロップ(FF)及び組み合わせ回路を含むスキャンチェーン回路を含んでおり、組み合わせ回路の故障検出が完了したスキャンチェーン回路をバイパスする機能、並びにFFへのクロック信号の供給及び供給停止を制御する機能を含む半導体装置を例に挙げて説明する。
1.1 構成
1.1.1 半導体装置の全体構成
まず、本実施形態に係る半導体装置の大まかな全体構成について、図1を用いて説明する。
図1に示すように、半導体装置100は、制御回路110、複数のクロックゲーティング回路(ICG:integrated clock gating)120(図1の例では、2つのICG120−1及び120−2)、及び複数の回路ブロック130(図1の例では、2つの回路ブロック130−1及び130−2)を含む。なお、図1の例は、テストの際、図示せぬテスタから半導体装置100に入力される信号の一部が表記されている。また、ICG120の数及び回路ブロック130の数は2つに限定されない。
制御回路110は、ICG120−1及び120−2、並びに回路ブロック130−1及び130−2の動作を制御する。より具体的には、制御回路110は、ICG120−1及び120−2の動作をそれぞれ制御するための信号Sclk_ctl1及びSclk_ctl2を生成する。そして、制御回路110は、生成した信号Sclk_ctl1及びSclk_ctl2をICG120−1及び120−2にそれぞれ送信する。以下の説明において、信号Sclk_ctl1及びSclk_ctl2を区別しない場合、信号Sclk_ctl1及びSclk_ctl2を「信号Sclk_ctl」と表記する。また、制御回路110は、回路ブロック130−1及び130−2の動作をそれぞれ制御するための信号Sbp_enb1及びSbp_enb2を生成する。そして、制御回路110は、生成した信号Sbp_enb1及びSbp_enb2を回路ブロック130−1及び130−2にそれぞれ送信する。以下の説明において、信号Sbp_enb1及びSbp_enb2を区別しない場合、信号Sbp_enb1及びSbp_enb2を「信号Sbp_enb」と表記する。
換言すれば、例えば、ICG120の数がN個(Nは2以上の自然数)の場合、制御回路110は、N個のICG120にそれぞれ対応するN個の信号Sclk_ctlを生成する。そして、制御回路110は、生成したN個の信号Sclk_ctlをN個のICG120にそれぞれ送信する。また、例えば、回路ブロック130の数がN個の場合、制御回路110は、N個の回路ブロック130にそれぞれ対応するN個の信号Sbp_enbを生成する。そして、制御回路110は、生成したN個の信号Sbp_enbをN個の回路ブロック130にそれぞれ送信する。
ICG120−1は、例えばテスタからクロック信号CLKを受信する。また、ICG120−1は、制御回路110から送信された信号Sclk_ctl1に応じて、回路ブロック130−1に、信号CLKに基づく信号CLK1を送信する。すなわち、ICG120−1は、信号Sclk_ctl1に応じて、対応する回路ブロック130−1に信号CLKを供給し、又は信号CLKの供給を停止する。ICG120−2も同様に、例えばテスタから信号CLKを受信する。また、ICG120−2は、制御回路110から送信された信号Sclk_ctl2に応じて、回路ブロック130−2に、信号CLKに基づく信号CLK2を送信する。すなわち、ICG120−2は、信号Sclk_ctl2に応じて、対応する回路ブロック130−2に信号CLKを供給し、又は信号CLKの供給を停止する。
より具体的には、例えば、制御回路110からHigh(“H”)レベルの信号Sclk_ctl1が送信された場合には、ICG120−1は、信号CLK1として信号CLKを回路ブロック130−1に送信する。他方で、制御回路110からLow(“L”)レベルの信号Sclk_ctl1が送信された場合には、ICG120−1は、信号CLK1として“L”レベルの信号を回路ブロック130−1に送信する。すなわち、ICG120−1は、回路ブロック130−1への信号CLKの供給を停止する。同様に、例えば、制御回路110から“H”レベルの信号Sclk_ctl2が送信された場合には、ICG120−2は、信号CLK2として信号CLKを回路ブロック130−2に送信する。他方で、制御回路110から“L”レベルの信号Sclk_ctl2が送信された場合には、ICG120−2は、信号CLK2として“L”レベルの信号を回路ブロック130−2に送信する。すなわち、ICG120−2は、回路ブロック130−2への信号CLKの供給を停止する。
回路ブロック130−1は、例えばテスタから入力信号SI1を受信する。例えば、スキャンテスト時には、回路ブロック130−1は、信号SI1として、テストパタンを受信する。そして、回路ブロック130−1は、制御回路110から送信された信号Sbp_enb1、及びICG120−1から送信された信号CLK1に応じて、出力信号SO1を例えばテスタに出力する。
回路ブロック130−1は、例えば、スキャンチェーン回路140−1、選択回路150−1、組み合わせ回路160−1、及びスキャンセル190−1を含む。スキャンセル190−1は、MUX170−1及びDフリップフロップ(以下、「D−FF」と表記する)180−1を含む。
スキャンチェーン回路140−1には、入力信号SI1が入力される。スキャンチェーン回路140−1の出力信号は、選択回路150−1の一方の入力端子及び組み合わせ回路160−1に入力される。
スキャンチェーン回路140−1は、D−FFをスキャン化した図示せぬ複数のスキャンセルを含む。これらのスキャンセルは、スキャンセル190−1と同様に、例えばD−FFとMUXで構成される。本実施形態では、複数のスキャンセルのD−FFをシリアルに接続することをスキャン化という。各スキャンセルには、信号CLK1が入力される。スキャンチェーン回路140−1の詳細については、後述する。
選択回路150−1は、制御回路110から送信された信号Sbp_enb1に基づいて、スキャンチェーン回路140−1の出力信号及び入力信号SI1のいずれかをMUX170−1に送信する。
より具体的には、選択回路150−1の一方の入力端子には、スキャンチェーン回路140−1の出力信号が入力され、他方の入力端子には、スキャンチェーン回路140−1のバイパス経路(スキャンチェーン回路140−1への入力信号を選択回路150−1に入力させる経路)を介して、入力信号SI1が入力される。選択回路150−1の出力信号は、スキャンセル190−1内のMUX170−1の一方の入力端子に入力される。例えば、制御回路110から“L”レベルの信号Sbp_enb1が送信された場合には、選択回路150−1は、スキャンチェーン回路140−1の出力信号を選択する。他方で、制御回路110から“H”レベルの信号Sbp_enb1が送信された場合には、選択回路150−1は、入力信号SI1を選択する。
組み合わせ回路160−1は、スキャンチェーン回路140−1の出力信号に基づいて動作する。組み合わせ回路160−1の出力信号は、MUX170−1の他方の入力端子に入力される。
MUX170−1は、テスタから送信される図示せぬ信号Ssft_enbに基づいて、組み合わせ回路160−1の出力信号及び選択回路150−1の出力信号のいずれかをD−FF180−1に送信する。信号Ssft_enbの詳細については、後述する。
D−FF180−1は、MUX170−1の出力信号を、信号CLKが“L”レベルから“H”レベルに立ち上がる時に取り込む。また、D−FF180−1は、保持する値を出力信号SO1として出力する。
次に、回路ブロック130−2について説明する。
回路ブロック130−2は、例えばテスタから入力信号SI2を受信する。例えば、スキャンテスト時には、回路ブロック130−2は、信号SI2として、テストパタンを受信する。そして、回路ブロック130−2は、制御回路110から送信された信号Sbp_enb2、及びICG120−2から送信された信号CLK2に応じて、出力信号SO2を例えばテスタに出力する。
回路ブロック130−2は、例えば、スキャンチェーン回路140−2、選択回路150−2、組み合わせ回路160−2及び210−2、スキャンセル190−2及び240−2、並びにEXOR回路200−2を含む。スキャンセル190−2は、MUX170−2及びD−FF180−2を含む。スキャンセル240−2は、MUX220−2及びD−FF230−2を含む。
EXOR回路200−2は、入力信号SI2及びスキャンチェーン回路140−2の出力信号のEXOR演算を行う。そして、EXOR回路200−2は、演算結果をMUX220−2の一方の入力端子に送信する。
組み合わせ回路210−2は、入力信号SI2に基づいて動作する。組み合わせ回路210−2の出力信号は、MUX220−2の他方の入力端子に入力される。
MUX220−2は、テスタから送信される図示せぬ信号Ssft_enbに基づいて、組み合わせ回路210−2の出力信号及びEXOR回路200−2の出力信号のいずれかをD−FF230−2に送信する。
D−FF230−2は、MUX220−2の出力信号を、信号CLKが“L”レベルから“H”レベルに立ち上がる時に取り込む。また、D−FF230−2は、保持する値をスキャンチェーン回路140−2及び選択回路150−2の一方の入力端子に送信する。
スキャンチェーン回路140−2には、D−FF230−2の出力信号が入力される。スキャンチェーン回路140−2の出力信号は、選択回路150−2の他方の入力端子及び組み合わせ回路160−2に入力される。スキャンチェーン回路140−2は、スキャンチェーン回路140−1と同様に、D−FFをスキャン化した図示せぬ複数のスキャンセルを含む。各スキャンセルには、信号CLK2が入力される。
選択回路150−2は、制御回路110から送信された信号Sbp_enb2に基づいて、スキャンチェーン回路140−2の出力信号及びD−FF230−2の出力信号のいずれかをMUX170−2に送信する。
より具体的には、選択回路150−2の一方の入力端子には、スキャンチェーン回路140−2のバイパス経路(スキャンチェーン回路140−2への入力信号を選択回路150−2に入力させる経路)を介して、D−FF230−2の出力信号が入力され、他方の入力端子には、スキャンチェーン回路140−2の出力信号が入力される。選択回路150−2の出力信号は、スキャンセル190−2内のMUX170−2の一方の入力端子に入力される。例えば、制御回路110から“L”レベルの信号Sbp_enb2が送信された場合には、選択回路150−2は、スキャンチェーン回路140−2の出力信号を選択する。他方で、制御回路110から“H”レベルの信号Sbp_enb2が送信された場合には、選択回路150−2は、D−FF230−2の出力信号を選択する。
組み合わせ回路160−2は、スキャンチェーン回路140−2の出力信号に基づいて動作する。組み合わせ回路160−2の出力信号は、MUX170−2の他方の入力端子に入力される。
MUX170−2は、テスタから送信される図示せぬ信号Ssft_enbに基づいて、組み合わせ回路160−2の出力信号及び選択回路150−2の出力信号のいずれかをD−FF180−2に送信する。
D−FF180−2は、MUX170−2の出力信号を、信号CLKが“L”レベルから“H”レベルに立ち上がる時に取り込む。また、D−FF180−2は、保持する値を出力信号SO2として出力する。
1.1.2 スキャンチェーン回路140(140−1及び140−2)の構成
次に、本実施形態に係る半導体装置100に含まれるスキャンチェーン回路140の構成の詳細について、図2を用いて説明する。以下では、スキャンチェーン回路140−1を例に挙げて説明する。
図2に示すように、スキャンチェーン回路140−1は、複数の組み合わせ回路141(図2の例では、3つの組み合わせ回路141−1〜141−3)、及び複数のスキャンセル144(図2の例では、3つのスキャンセル144−1〜144−3)を含む。スキャンセル144は、MUX142及びD−FF143を含む。より具体的には、スキャンセル144−1は、MUX142−1及びD−FF143−1を含む。スキャンセル144−2は、MUX142−2及びD−FF143−2を含む。スキャンセル144−3は、MUX142−3及びD−FF143−3を含む。もちろん、組み合わせ回路141及びスキャンセル144の数は任意であり、スキャンチェーン回路140−1は、各スキャンセル144内のD−FFをスキャン化した構成であればよい。また、スキャンセル144−1〜144−3の出力は、図1及び図2に図示せぬ他の組み合わせ回路に接続されていてもよい。
組み合わせ回路141−1〜141−3は、スキャンテストの実施対象である。組み合わせ回路141−1は、図示せぬテスタから送信された信号SI1に基づいて動作する。組み合わせ回路141−1の出力信号は、スキャンセル144−1に入力される。組み合わせ回路141−2は、スキャンセル144−1の出力信号に基づいて動作する。組み合わせ回路141−2の出力信号は、スキャンセル144−2に入力される。組み合わせ回路141−3は、スキャンセル144−2の出力信号に基づいて動作する。組み合わせ回路141−3の出力信号は、スキャンセル144−3に入力される。なお、組み合わせ回路141−1〜141−3の構成は、同じであってもよいし、異なっていてもよい。
スキャンセル144−1のMUX142−1は、信号SI1、及び組み合わせ回路141−1の出力信号を受信する。そして、MUX142−1は、テスタから送信されたシフトイネーブル信号Ssft_enbに応じて信号SI、及び組み合わせ回路141−1の出力信号のいずれかを選択する。信号Ssft_enbは、スキャンテストにおけるシフト動作とキャプチャ動作とを制御するための信号である。シフト動作とキャプチャ動作の詳細については、後述する。更に、MUX142−1は、選択した信号をスキャンセル144−1のD−FF143−1に送信する。
スキャンセル144−1のD−FF143−1は、MUX142−1から送信された信号を、ICG120−1から送信された信号CLKが“L”レベルから“H”レベルに立ち上がる時に取り込む。また、D−FF143−1は、保持する値をスキャンセル144−2のMUX142−2及び組み合わせ回路141−2に出力する。更に、D−FF143−1は、テスタから送信されたリセット信号RSTに応じて保持する値をリセットする。信号RSTは、D−FF143−1が保持する値をリセットするか否かを制御するための信号である。
スキャンセル144−2のMUX142−2は、スキャンセル144−1のD−FF143−1の出力信号、及び組み合わせ回路141−2の出力信号を受信する。そして、MUX142−2は、信号Ssft_enbに応じてD−FF143−1の出力信号、及び組み合わせ回路141−2の出力信号のいずれかを選択する。更に、MUX142−2は、選択した信号をスキャンセル144−2のD−FF143−2に送信する。
スキャンセル144−2のD−FF143−2は、MUX142−2から送信された信号を、信号CLKが“L”レベルから“H”レベルに立ち上がる時に取り込む。また、D−FF143−2は、保持する値をスキャンセル144−3のMUX142−3及び組み合わせ回路141−3に出力する。更に、D−FF143−2は、信号RSTに応じて保持する値をリセットする。
スキャンセル144−3のMUX142−3は、スキャンセル144−2のD−FF143−2の出力信号、及び組み合わせ回路141−3の出力信号を受信する。そして、MUX142−3は、信号Ssft_enbに応じてD−FF143−2の出力信号、及び組み合わせ回路141−3の出力信号のいずれかを選択する。更に、MUX142−3は、選択した信号をスキャンセル144−3のD−FF143−3に送信する。
スキャンセル144−3のD−FF143−3は、MUX142−3から送信された信号を、信号CLKが“L”レベルから“H”レベルに立ち上がる時に取り込む。また、D−FF143−3は、保持する値を例えば図1の選択回路150−1、及び組み合わせ回路160−1に出力する。更に、D−FF143−3は、信号RSTに応じて保持する値をリセットする。
スキャンテストは、スキャンセル144に値を設定し、スキャンセル144から値を取り出すシフト動作と、組み合わせ回路141を動作させて組み合わせ回路141の出力信号をスキャンセル144に取り込むキャプチャ動作とからなる。そして、スキャンテストは、シフト動作とキャプチャ動作とからなる一連の動作をテストパタン数(テスト回数)だけ繰り返す。以下では、スキャンテスト時の動作を例に挙げて、スキャンチェーン回路140−1についてより具体的に説明する。
例えば、M回目(Mは1以上の自然数)のテストのシフト動作において、半導体装置100は、例えばテスタから“H”レベルの信号Ssft_enb、及び信号SI1としてテストパタンを受信する。“H”レベルの信号Ssft_enbに基づいて、MUX142−1は、信号SI1を選択する。MUX142−2は、スキャンセル144−1の出力信号を選択する。MUX142−3は、スキャンセル144−2の出力信号を選択する。MUX142−1〜MUX142−3は、選択した信号をD−FF143−1〜143−3にそれぞれ送信する。D−FF143−1〜143−3は、MUX142−1〜142−3の出力信号を、信号CLKが“L”レベルから“H”レベルに立ち上がる時にそれぞれ取り込む。スキャンセル144−1〜144−3にテストパタン(例えば“101”)を設定する場合、半導体装置100は、1回のテストの中でシフト動作を3回行う。これにより、スキャンセル144−3に“1”が設定され、スキャンセル144−2に“0”が設定され、スキャンセル144−1に“1”が設定される。
次に、M回目のテストのキャプチャ動作において、半導体装置100は、例えばテスタから“L”レベルの信号Ssft_enbを受信する。“L”レベルの信号Ssft_enbに基づいて、半導体装置100は、組み合わせ回路141−1〜141−3を動作させる。このとき、MUX142−1は、組み合わせ回路141−1の出力信号を選択する。MUX142−2は、組み合わせ回路141−2の出力信号を選択する。MUX142−3は、組み合わせ回路141−3の出力信号を選択する。そして、MUX142−1〜142−3は、選択した信号をD−FF143−1〜143−3にそれぞれ送信する。D−FF143−1〜143−3は、MUX142−1〜142−3の出力信号を、信号CLKが“L”レベルから“H”レベルに立ち上がる時にそれぞれ取り込む。これにより、スキャンセル144−1〜144−3に組み合わせ回路141−1〜141−3の出力信号がそれぞれ取り込まれる。
次に、(M+1)回目のテストのシフト動作において、スキャンセル144−1〜144−3に(M+1)回目のテストパタンの各ビットがそれぞれ設定されるとともに、スキャンセル144−1〜144−3が保持する値(M回目のテストでの組み合わせ回路141−1〜141−3の出力信号)がスキャンセル144−3から出力される。
1.1.3 制御回路110の構成
次に、本実施形態に係る半導体装置100に含まれる制御回路110の構成の詳細について、図3を用いて説明する。
図3に示すように、制御回路110は、立ち下がり検出回路111、立ち上がり検出回路112、Upカウンタ113、ROM(Read Only Memory)114、及び比較器115を含む。
立ち下がり検出回路111は、図示せぬテスタから送信された信号Ssft_enb及び信号CLKを受信する。立ち下がり検出回路111は、信号CLKが“L”レベルから“H”レベルに立ち上がる時に、信号Ssft_enbが“L”レベルにあるかどうかを検出する。そして、立ち下がり検出回路111は、検出結果に応じた信号Sctを比較器115に送信する。より具体的には、立ち下がり検出回路111は、例えば、信号Ssft_enbが“L”レベルにあることを検出した場合には、信号CLKが“L”レベルから“H”レベルに立ち上がる時に、比較タイミング信号Sctを“L”レベルから“H”レベルに立ち上げ、“H”レベルの信号Sctを比較器115に送信する。立ち下がり検出回路111は、信号CLKの立ち上がりから1周期後、すなわち信号CLKが“L”レベルから“H”レベルに立ち上がる時に、信号Sctを“H”レベルから“L”レベルに立ち下げる。他方で、立ち下がり検出回路111は、信号Ssft_enbが“L”レベルにあることを検出しなかった場合には、“L”レベルの信号Sctを比較器115に送信する。
立ち上がり検出回路112は、信号Ssft_enb及び信号CLKを受信する。立ち上がり検出回路112は、信号CLKが“L”レベルから“H”レベルに立ち上がる時に、信号Ssft_enbが“H”レベルにあるかどうかを検出する。そして、立ち上がり検出回路112は、検出結果に応じた信号ScuをUpカウンタ113に送信する。より具体的には、立ち上がり検出回路112は、例えば、信号Ssft_enbが“H”レベルにあることを検出した場合には、信号CLKが“L”レベルから“H”レベルに立ち上がる時に、カウントUpタイミング信号ScuをL”レベルから“H”レベルに立ち上げ、“H”レベルの信号ScuをUpカウンタ113に送信する。立ち上がり検出回路112は、信号CLKの立ち上がりから1周期後、すなわち信号CLKが“L”レベルから“H”レベルに立ち上がる時に、信号Scuを“H”レベルから“L”レベルに立ち下げる。他方で、立ち上がり検出回路112は、信号Ssft_enbが“H”レベルにあることを検出しなかった場合には、“L”レベルの信号ScuをUpカウンタ113に送信する。
Upカウンタ113は、立ち上がり検出回路112から送信された信号Scuを受信する。そして、Upカウンタ113は、例えば、信号Scuが“H”レベルの場合には、信号Scuが“H”レベルから“L”レベルに立ち下がる時に、テストパタン数を示すカウンタ値Vcntを1増加する。他方で、Upカウンタ113は、信号Scuが“L”レベルの場合には、カウンタ値Vcntを増加しない(値を維持する)。また、Upカウンタ113は、カウンタ値Vcntを保持し、保持するカウンタ値Vcntを比較器115に送信する。カウンタ値Vcntは、テスタから送信された信号RSTに応じてリセットされる。
ROM114は、比較器115においてカウンタ値Vcntと比較されるテストパタン数の比較値CV1及びCV2を記憶する。比較値CV1は、図1の回路ブロック130−1のテストのために使用される値である。比較値CV2は、図1の回路ブロック130−2のテストのために使用される値である。比較値CV1及びCV2毎に、第1基準値と第2基準値(第1基準値<第2基準値)が記憶される。
例えば、比較値CV1の第1基準値FRV1は、信号CLKの供給停止を判断するときのテストパタン数、すなわち、テスタがスキャンチェーン回路140−1の組み合わせ回路141−1〜141−3の故障検出が完了したと判断するときの基準となる値である。例えば、比較値CV1の第2基準値FRV2は、信号CLKの再供給を判断するときのテストパタン数である。同様に、比較値CV2の第1基準値SRV1は、信号CLKの供給停止を判断するときのテストパタン数である。比較値CV2の第2基準値SRV2は、信号CLKの再供給を判断するときのテストパタン数である。比較値CV1の第1基準値FRV1は、比較値CV2の第1基準値SRV1と同じであってもよいし、異なっていてもよい。比較値CV1の第2基準値FRV2も同様に、比較値CV2の第2基準値SRV2と同じであってもよいし、異なっていてもよい。ICG120の数及び回路ブロック130の数がN個の場合、N個の比較値CV1〜CVNがあり、比較値CV1〜CVN毎に第1基準値と第2基準値がある。
比較器115は、立ち下がり検出回路111から送信された信号Sct、及びUpカウンタ113から送信されたカウンタ値Vcntを受信する。そして、比較器115は、“H”レベルの信号Sctを受信した時に、カウンタ値VcntとROM114から取得した比較値CV1の第1基準値FRV1及び第2基準値FRV2とをそれぞれ比較する。また、比較器115は、カウンタ値VcntとROM114から取得した比較値CV2の第1基準値SRV1及び第2基準値SRV2とをそれぞれ比較する。更に、比較器115は、比較結果に応じた信号Snxt_clk1及びSnxt_clk2、並びに信号Snxt_bp1及びSnxt_bp2を生成する。信号Snxt_clk1は、信号Sclk_ctl1として設定するための信号である。信号Snxt_clk2は、信号Sclk_ctl2として設定するための信号である。信号Snxt_bp1は、信号Sbp_enb1として設定するための信号である。信号Snxt_bp2は、信号Sbp_enb2として設定するための信号である。そして、比較器115は、生成した信号Snxt_clk1及びSnxt_clk2、並びに信号Snxt_bp1及びSnxt_bp2を保持する。信号Snxt_clk1及びSnxt_clk2、並びに信号Snxt_bp1及びSnxt_bp2の詳細については、後述する。
また、比較器115は、テストパタン数を示すカウンタ値Vcntに基づいて信号Sclk_ctl1及びSclk_ctl2、並びに信号Sbp_enb1及びSbp_enb2を生成する。信号Sclk_ctl1及びSclk_ctl2の初期値は、例えば“H”レベルであり、信号Sbp_enb1及びSbp_enb2の初期値は、例えば“L”レベルである。そして、比較器115は、生成した信号Sclk_ctl1及びSclk_ctl2、並びに信号Sbp_enb1及びSbp_enb2を保持する。更に、比較器115は、保持する信号Sclk_ctl1及びSclk_ctl2を例えば図1のICG120−1及び120−2にそれぞれ送信し、保持する信号Sbp_enb1及びSbp_enb2を例えば図1の選択回路150−1及び150−2にそれぞれ送信する。
また、比較器115は、信号Sctが“H”レベルから“L”レベルに立ち下がる時に、信号Sclk_ctl1及びSclk_ctl2、並びに信号Sbp_enb1及びSbp_enb2として、信号Snxt_clk1及びSnxt_clk2、並びに信号Snxt_bp1及びSnxt_bp2をそれぞれ設定する。これにより、信号Sclk_ctl1及びSclk_ctl2、並びに信号Sbp_enb1及びSbp_enb2が生成される。そして、比較器115は、信号Snxt_clk1及びSnxt_clk2を、信号Sclk_ctl1及びSclk_ctl2としてそれぞれ出力し、信号Snxt_bp1及びSnxt_bp2を、信号Sbp_enb1及びSbp_enb2としてそれぞれ出力する。
1.2 半導体装置100の動作
次に、図4A、図4B、及び図5を用いて本実施形態に係る半導体装置100の動作について説明する。以下では、本実施形態に係る半導体装置100の回路ブロック130−1に対してスキャンテストを行う場合を例に挙げて説明する。図4A及び図4Bは、半導体装置100のスキャンテストの期間における動作を示すフローチャートである。なお、本実施形態において、「スキャンテストの期間」とは、例えば最初のテストパタンについてのテストの開始から最後のテストパタンについてのテストの実施が完了するまでの期間、最初のテストパタンについてのテストの開始から故障検出率が飽和するまでの期間などである。図4Aにおける印Aは、図4Bにおける印Aに時系列的に連続する。図4Bにおける印Bは、図4Aにおける印Bに時系列的に連続する。また、回路ブロック130−2に対するスキャンテストの期間における動作も、回路ブロック130−1に対するスキャンテストの期間における動作と同様である。
まず、図4Aに示すように、立ち下がり検出回路111は、図示せぬテスタから送信された信号Ssft_enbが“L”レベルにあることを検出すると、“H”レベルの信号Sctを比較器115に送信する(ステップS10)。比較器115は、“H”レベルの信号Sctを受信すると、ROM114から比較値CV1の第1基準値FRV1及び第2基準値FRV2を取得する。そして、比較器115は、Upカウンタ113から送信されたカウンタ値Vcntと第1基準値FRV1及び第2基準値FRV2とをそれぞれ比較する。
上記比較の結果、カウンタ値Vcntが第1基準値FRV1未満である場合(ステップS11、No)、比較器115は、“H”レベルの信号Snxt_clk1、及び“L”レベルの信号Snxt_bp1を生成する(ステップS13)。
上記比較の結果、カウンタ値Vcntが第1基準値FRV1以上である場合(ステップS11、Yes)、且つカウンタ値Vcntが第2基準値FRV2に等しくない場合(ステップS12、No)、比較器115は、“L”レベルの信号Snxt_clk1、及び“H”レベルの信号Snxt_bp1を生成する(ステップS14)。
上記比較の結果、カウンタ値Vcntが第1基準値FRV1以上である場合(ステップS11、Yes)、且つカウンタ値Vcntが第2基準値に等しい場合(ステップS12、Yes)、比較器115は、“H”レベルの信号Snxt_clk1、及び“H”レベルの信号Snxt_bp1を生成する(ステップS15)。
次に、立ち上がり検出回路112は、信号Ssft_enbが“H”レベルにあることを検出すると、“H”レベルの信号ScuをUpカウンタ113に送信する(ステップS16)。Upカウンタ113は、“H”レベルの信号Scuを受信する。
比較器115は、信号Sctが“H”レベルから“L”レベルに立ち下がる時に、ステップS13〜S15のいずれかで生成した信号Snxt_clk1を信号Sclk_ctl1としてICG120−1に送信し、ステップS13〜S15のいずれかで生成した信号Snxt_bp1を信号Sbp_enb1として選択回路150−1に送信する(ステップS17)。
続いて、図4Bに示すように、ICG120−1は、比較器115から信号Sclk_ctl1を受信する。信号Sclk_ctl1が“H”レベルの場合(ステップS18、Yes)、ICG120−1は、スキャンチェーン回路140−1に信号CLKを供給する(ステップS19)。
他方で、信号Sclk_ctl1が“L”レベルの場合(ステップS18、No)、ICG120−1は、スキャンチェーン回路140−1への信号CLKの供給を停止する(ステップS20)。
選択回路150−1は、比較器115から信号Sbp_enb1を受信する。信号Sbp_enb1が“L”レベルの場合(ステップS21、Yes)、選択回路150−1は、スキャンチェーン回路140−1の出力信号を選択する(ステップS22)。
他方で、信号Sbp_enb1が“H”レベルの場合(ステップS21、No)、選択回路150−1は、スキャンチェーン回路140−1への入力信号を選択する(ステップS23)。
次に、半導体装置100は、テストパタンに基づいてシフト動作を実施する(ステップS24)。より具体的には、テスタは、回路ブロック130−1に信号SI1としてテストパタンを送信する。半導体装置100は、シフト動作を実施してテストパタンの各ビットを、スキャンセル144−1〜144−3、及び190−1にそれぞれ設定する。
Upカウンタ113は、“H”レベルの信号Scuを受信した後、信号Scuが“H”レベルから“L”レベルに立ち下がる時に、カウンタ値Vcntを1増加する(ステップS25)。
続いて、テスタが信号Ssft_enbを“H”レベルから“L”レベルに立ち下げると、半導体装置100は、キャプチャ動作を実施する(ステップS26)。より具体的には、半導体装置100は、組み合わせ回路141−1〜141−3、及び160−1を動作させ、スキャンセル144−1〜144−3、及び190−1に組み合わせ回路141−1〜141−3、及び160−1の出力信号をそれぞれ取り込む。
次に、実行したテストが最後のテストではない場合(ステップS27、No)、半導体装置100は、前述のステップS10を実施する。他方で、実行したテストが最後のテストである場合(ステップS27、Yes)、半導体装置100は、スキャンテストを終了する。
次に、スキャンテスト動作の具体例につき、図5を用いて説明する。図5は、スキャンテストの期間における各種信号のタイミングチャートである。ROM114に記憶される比較値CV1の例として、第1基準値FRV1を100、第2基準値FRV2を500とする。
図5に示すように、時刻t1において、テスタは、信号CLKを“L”レベルから“H”レベルに立ち上げ、信号RSTを“H”レベルから“L”レベルに立ち下げる。これにより、半導体装置100は、スキャンテストを開始する。Upカウンタ113は、テスタから送信された“L”レベルの信号RSTを受信すると、カウンタ値Vcntを0にリセットする。
図5の時刻t2において、テスタは、信号Ssft_enbを“H”レベルから“L”レベルに立ち下げる。立ち下がり検出回路111は、テスタから送信された信号Ssft_enbが“L”レベルにあることを検出すると、時刻t3において、信号Sctを“L”レベルから“H”レベルに立ち上げ、“H”レベルの信号Sctを比較器115に送信する(図4AのステップS10)。
比較器115は、“H”レベルの信号Sctを受信すると、ROM114から比較値CV1の第1基準値FRV1及び第2基準値FRV2を取得する。そして、比較器115は、Upカウンタ113から送信されたカウンタ値Vcntと第1基準値FRV1及び第2基準値FRV2とをそれぞれ比較する。時刻t3において、カウンタ値Vcnt(Vcnt=99)は、第1基準値FRV1未満であるため(図4AのステップS11、No)、比較器115は、“H”レベルの信号Snxt_clk1、及び“L”レベルの信号Snxt_bp1を生成する(図4AのステップS13)。
図5の時刻t4において、テスタは、信号Ssft_enbを“L”レベルから“H”レベルに立ち上げる。立ち上がり検出回路112は、信号Ssft_enbが“H”レベルにあることを検出すると、時刻t5において、信号Scuを“L”レベルから“H”レベルに立ち上げ、“H”レベルの信号ScuをUpカウンタ113に送信する(図4AのステップS16)。
図5の時刻t5において、立ち下がり検出回路111は、信号Sctを“H”レベルから“L”レベルに立ち下げる。比較器115は、信号Sctが“H”レベルから“L”レベルに立ち下がる時に、図4AのステップS13で生成した“H”レベルの信号Snxt_clk1を信号Sclk_ctl1としてICG120−1に送信し、図4AのステップS13で生成した“L”レベルの信号Snxt_bp1を信号Sbp_enb1として選択回路150−1に送信する(図4AのステップS17)。そして、ICG120−1は、スキャンチェーン回路140に信号CLKを供給する(図4BのステップS19)。選択回路150−1は、スキャンチェーン回路140−1の出力信号を選択する(図4BのステップS22)。
図5の時刻t5から時刻t7までの期間に、半導体装置100は、第1テストパタンに基づいてシフト動作を実施する(図4BのステップS24)。時刻t5から時刻t7までの期間に、テスタは、回路ブロック130−1に信号SI1として第1テストパタンを送信する。半導体装置100は、シフト動作を実施して第1テストパタンの各ビットを、スキャンセル144−1〜144−3、及び190−1にそれぞれ設定する。
テスタが回路ブロック130−1に第1テストパタンを送信するときの半導体装置100の動作及び信号転送の様子を、図6Aに示す。図6Aは、回路ブロック130−1に第1テストパタン“0101”を送信したときの回路ブロック130−1の状態を説明する図である。図6Aに示すように、信号Ssft_enbが“H”レベルであり、信号Sclk_ctl1が“H”レベルであり、且つ信号Sbp_enb1が“L”レベルであるとき、シフト動作が4回行われる。そして、スキャンセル190−1に“0”が設定され、スキャンセル144−3に“1”が設定され、スキャンセル144−2に“0”が設定され、スキャンセル144−1に“1”が設定される。また、例えば、(M+1)回目(Mは1以上の自然数)のテストの場合、M回目のテスト結果(スキャンセル144−1〜144−3、及び190−1が保持する値)が信号SO1として出力される。なお、M回目及び(M+1)回目のテストで第1テストパタンが送信される場合、(M+1)回目の第1テストパタンは、M回目の第1テストパタンと同じであってもよいし、異なっていてもよい。
図5の時刻t6において、立ち上がり検出回路112は、信号Scuを“H”レベルから“L”レベルに立ち下げる。Upカウンタ113は、信号Scuが“H”レベルから“L”レベルに立ち下がる時に、カウンタ値Vcntを1増加する(図4BのステップS25)。
図5の時刻t7において、テスタは、信号Ssft_enbを“H”レベルから“L”レベルに立ち下げる。時刻t8から時刻t9までの期間に、半導体装置100は、キャプチャ動作を実施する(図4BのステップS26)。時刻t8から時刻t9までの期間に、半導体装置100は、組み合わせ回路141−1〜141−3、及び160−1を動作させ、スキャンセル144−1〜144−3、及び190−1に組み合わせ回路141−1〜141−3、及び160−1の出力信号をそれぞれ取り込む。なお、図5には図示を省略したが、時刻t1から時刻t2までの期間にも時刻t2から時刻t7までの期間と同様の動作が実施される。
図5の時刻t8において、比較器115は、カウンタ値Vcntと第1基準値FRV1及び第2基準値FRV2とをそれぞれ比較する。時刻t8において、カウンタ値Vcnt(Vcnt=100)は第1基準値以上であり(図4AのステップS11、Yes)、且つカウンタ値Vcntは第2基準値に等しくないため(図4AのステップS12、No)、比較器115は、“L”レベルの信号Snxt_clk1、及び“H”レベルの信号Snxt_bp1を生成する(図4AのステップS14)。
図5の時刻t10において、立ち下がり検出回路111は、信号Sctを“H”レベルから“L”レベルに立ち下げる。比較器115は、信号Sctが“H”レベルから“L”レベルに立ち下がる時に、図4AのステップS14で生成した“L”レベルの信号Snxt_clk1を信号Sclk_ctl1としてICG120−1に送信し、図4AのステップS14で生成した“H”レベルの信号Snxt_bp1を信号Sbp_enb1として選択回路150−1に送信する(図4AのステップS17)。そして、ICG120−1は、スキャンチェーン回路140への信号CLKの供給を停止する(図4BのステップS20)。選択回路150−1は、スキャンチェーン回路140−1への入力信号を選択する(図4BのステップS23)。
図5の時刻t9において、テスタは、信号Ssft_enbを“L”レベルから“H”レベルに立ち上げる。図5の時刻t10から時刻t11までの期間に、半導体装置100は、第2テストパタンに基づいてシフト動作を実施する(図4BのステップS24)。時刻t10から時刻t11までの期間に、テスタは、回路ブロック130−1に信号SI1として第2テストパタンを送信する。半導体装置100は、シフト動作を実施して第2テストパタンをスキャンセル190−1に設定する。
テスタが回路ブロック130−1に第2テストパタンを送信するときの半導体装置100の動作及び信号転送の様子を、図6Bに示す。図6Bは、回路ブロック130−1に第2テストパタンとして第1テストパタンよりもビット数が小さい“1”を送信したときの回路ブロック130−1の状態を説明する図である。図6Bに示すように、信号Ssft_enbが“H”レベルであり、信号Sclk_ctl1が“L”レベルであり、且つ信号Sbp_enb1が“H”レベルであるとき、シフト動作が1回行われる。そして、スキャンセル190−1に“1”が設定される。スキャンセル144−1〜144−3への信号CLKの供給が停止されるため(信号CLK1=“L”レベル)、スキャンセル144−1〜144−3の値は更新されない。
図5の時刻t12において、立ち上がり検出回路112は、信号Scuを“H”レベルから“L”レベルに立ち下げる。Upカウンタ113は、信号Scuが“H”レベルから“L”レベルに立ち下がる時に、カウンタ値Vcntを1増加する(図4BのステップS25)。
図5の時刻t11において、テスタは、信号Ssft_enbを“H”レベルから“L”レベルに立ち下げる。時刻t12から時刻t13までの期間に、半導体装置100は、キャプチャ動作を実施する(図4BのステップS26)。時刻t12から時刻t13までの期間に、半導体装置100は、組み合わせ回路141−1〜141−3、及び160−1を動作させ、スキャンセル190−1に組み合わせ回路160−1の出力信号を取り込む。スキャンセル144−1〜144−3への信号CLKの供給が停止されるため、スキャンセル144−1〜144−3には組み合わせ回路141−1〜141−3の出力信号は取り込まれない。その後、時刻t9から時刻t13までの期間と同様の動作が実施される。
図5の時刻t12において、比較器115は、カウンタ値Vcntと第1基準値FRV1及び第2基準値FRV2とをそれぞれ比較する。時刻t12において、カウンタ値Vcnt(Vcnt=101)は第1基準値以上であり、且つカウンタ値Vcntは第2基準値に等しくないため、比較器115は“L”レベルの信号Snxt_clk1、及び“H”レベルの信号Snxt_bp1を生成する。
図5の時刻t14において、立ち上がり検出回路112は、信号Scuを“H”レベルから“L”レベルに立ち下げる。Upカウンタ113は、信号Scuが“H”レベルから“L”レベルに立ち下がる時に、カウンタ値Vcntを1増加する(図4BのステップS25)。
図5の時刻t14において、比較器115は、カウンタ値Vcntと第1基準値FRV1及び第2基準値FRV2とをそれぞれ比較する。時刻t14において、カウンタ値Vcnt(Vcnt=500)は第1基準値以上であり(図4AのステップS11、Yes)、且つカウンタ値Vcntは第2基準値に等しいため(図4AのステップS12、Yes)、比較器115は、“H”レベルの信号Snxt_clk1、及び“H”レベルの信号Snxt_bp1を生成する(図4AのステップS15)。
図5の時刻t16において、立ち下がり検出回路111は、信号Sctを“H”レベルから“L”レベルに立ち下げる。比較器115は、信号Sctが“H”レベルから“L”レベルに立ち下がる時に、図4AのステップS15で生成した“H”レベルの信号Snxt_clk1を信号Sclk_ctl1としてICG120−1に送信し、図4AのステップS15で生成した“H”レベルの信号Snxt_bp1を信号Sbp_enb1として選択回路150−1に送信する(図4AのステップS17)。そして、ICG120−1は、スキャンチェーン回路140に信号CLKを供給(再供給)する(図4BのステップS19)。選択回路150−1は、スキャンチェーン回路140−1への入力信号を選択する(図4BのステップS23)。
図5の時刻t15において、テスタは、信号Ssft_enbを“L”レベルから“H”レベルに立ち上げる。時刻t16から時刻t17までの期間に、半導体装置100は、第2テストパタンに基づいてシフト動作を実施する(図4BのステップS24)。時刻t16から時刻t17までの期間に、テスタは、回路ブロック130−1に信号SI1として第2テストパタンを送信する。半導体装置100は、シフト動作を実施して第2テストパタンをスキャンセル190−1に設定する。
テスタが回路ブロック130−1に第2テストパタンを送信するときの半導体装置100の動作及び信号転送の様子を、図6Cに示す。図6Cは、回路ブロック130−1に第2テストパタン“0”を送信したときの回路ブロック130−1の状態を説明する図である。図6Cに示すように、信号Ssft_enbが“H”レベルであり、信号Sclk_ctl1が“H”レベルであり、且つ信号Sbp_enb1が“H”レベルであるとき、シフト動作が1回行われる。そして、スキャンセル190−1に“0”が設定される。スキャンセル144−1〜144−3に信号CLKが再供給されるため、スキャンセル144−3に“0”、スキャンセル144−2に“1”、スキャンセル144−1に“0”がそれぞれ設定される。また、例えば、(M+1)回目のテストの場合、M回目のテスト結果(スキャンセル190−1が保持する値)が信号SO1として出力される。なお、M回目及び(M+1)回目のテストで第2テストパタンが送信される場合、(M+1)回目の第2テストパタンは、M回目の第2テストパタンと同じであってもよいし、異なっていてもよい。
図5の時刻t18において、立ち上がり検出回路112は、信号Scuを“H”レベルから“L”レベルに立ち下げる。Upカウンタ113は、信号Scuが“H”レベルから“L”レベルに立ち下がる時に、カウンタ値Vcntを1増加する(図4BのステップS25)。
図5の時刻t17において、テスタは、信号Ssft_enbを“H”レベルから“L”レベルに立ち下げる。時刻t18から時刻t19までの期間に、半導体装置100は、キャプチャ動作を実施する(図4BのステップS26)。時刻t18から時刻t19までの期間に、半導体装置100は、組み合わせ回路141−1〜141−3、及び160−1を動作させ、スキャンセル144−1〜144−3、及び190−1に組み合わせ回路141−1〜141−3、及び160−1の出力信号をそれぞれ取り込む。
図5の時刻t18において、比較器115は、カウンタ値Vcntと第1基準値FRV1及び第2基準値FRV2とをそれぞれ比較する。時刻t18において、カウンタ値Vcnt(Vcnt=501)は第1基準値以上であり(図4AのステップS11、Yes)、且つカウンタ値Vcntは第2基準値に等しくないため(図4AのステップS12、No)、比較器115は、“L”レベルの信号Snxt_clk1、及び“H”レベルの信号Snxt_bp1を生成する。
図5の時刻t20において、立ち下がり検出回路111は、信号Sctを“H”レベルから“L”レベルに立ち下げる。比較器115は、信号Sctが“H”レベルから“L”レベルに立ち下がる時に、図4AのステップS14で生成した“L”レベルの信号Snxt_clk1を信号Sclk_ctl1としてICG120−1に送信し、図4AのステップS14で生成した“H”レベルの信号Snxt_bp1を信号Sbp_enb1として選択回路150−1に送信する(図4AのステップS17)。そして、ICG120−1は、スキャンチェーン回路140への信号CLKの供給(再供給)を停止する。選択回路150−1は、スキャンチェーン回路140−1への入力信号を選択する。
図5の時刻t19において、テスタは、信号Ssft_enbを“L”レベルから“H”レベルに立ち上げる。時刻t20から時刻t21までの期間に、半導体装置100は、第2テストパタンに基づいてシフト動作を実施する(図4BのステップS24)。時刻t20から時刻t21までの期間に、テスタは、回路ブロック130−1に信号SI1として第2テストパタンを送信する。半導体装置100は、シフト動作を実施して第2テストパタンをスキャンセル190−1に設定する。スキャンセル144−1〜144−3への信号CLKの供給が停止されるため、スキャンセル144−1〜144−3の値は更新されない。
図5の時刻t22において、立ち上がり検出回路112は、信号Scuを“H”レベルから“L”レベルに立ち下げる。Upカウンタ113は、信号Scuが“H”レベルから“L”レベルに立ち下がる時に、カウンタ値Vcntを1増加する(図4BのステップS25)。
図5の時刻t21において、テスタは、信号Ssft_enbを“H”レベルから“L”レベルに立ち下げる。時刻t22から時刻t23までの期間に、半導体装置100は、キャプチャ動作を実施して組み合わせ回路141−1〜141−3、及び160−1を動作させ、スキャンセル190−1に組み合わせ回路160−1の出力信号を取り込む。スキャンセル144−1〜144−3への信号CLKの供給が停止されるため、スキャンセル144−1〜144−3には組み合わせ回路141−1〜141−3の出力信号は取り込まれない。その後、時刻t19から時刻t23までの期間と同様の動作が実施される。
1.3 本実施形態に係る効果
本実施形態に係る構成によれば、半導体装置の故障検出率を向上できる。本効果につき、以下説明する。図7は、本実施形態に係る半導体装置に対してスキャンテストを実施した場合のテストパタン数と組み合わせ回路の故障検出率との関係を示す図である。
スキャンチェーン回路を含む半導体装置に対するスキャンテストにおいて、故障検出が完了したスキャンチェーン回路のスキャンセルへのクロック信号の供給を停止し、スキャンチェーン回路にクロック信号を再供給しない場合がある。この場合のスキャンテストにおけるテストパタン数と故障検出率の関係を、図7に比較例として破線で示す。この場合、半導体装置では、クロック信号の供給停止後のスキャンセルの出力が固定値となるため、スキャンセルの出力を使用する他の組み合わせ回路の故障検出率が上がらない場合があり得る。
そこで、本実施形態に係る半導体装置100は、複数のスキャンセル144を含む複数のスキャンチェーン回路140を含んでいる。そして、半導体装置100は、スキャンテストの期間に、故障検出が完了したスキャンチェーン回路140内のスキャンセル144への信号CLKの供給を停止し、故障検出が完了したスキャンチェーン回路140をバイパスした後、故障検出が完了したスキャンチェーン回路140のスキャンセル144に信号CLKを再供給できる。信号CLKの再供給により、スキャンセル144の値が更新されるため、スキャンセル144の出力を使用する他の組み合わせ回路の故障検出率を向上できる。この様子を示しているのが図7の実線である。
図7に示すように、半導体装置100は、例えばテストパタン数C1のときにスキャンチェーン回路140への信号CLKの供給を停止し、スキャンチェーン回路140をバイパスする。そして、半導体装置100は、例えばテストパタン数C2のときにスキャンチェーン回路140に信号CLKを再供給する。更に、半導体装置100は、例えばテストパタン数C3のときにスキャンチェーン回路140への信号CLKの供給を停止する。比較例と比べて同一テストパタン数C1以降での故障検出率が向上している。
2.変形例等
上記のように、実施形態に係る半導体装置は、第1信号(Sclk_ctl1)及び第2信号(Sbp_enb1)を生成可能な制御回路(110)と、第1信号に基づいて、クロック信号の供給又は供給停止を実行可能なゲーティング回路(120-1)と、クロック信号と、第2信号と、テストパタンとを受け付け可能な回路ブロック(130-1)とを備える。回路ブロックは、クロック信号に基づいて、テストパタンを取り込み可能なスキャンチェーン回路(140-1)と、第2信号に基づいて、スキャンチェーン回路から出力された第3信号と、スキャンチェーン回路に入力される第4信号とのいずれかを選択可能な選択回路(150-1)とを備える。ゲーティング回路は、スキャンテストの期間に、第1信号に基づいて、クロック信号の供給停止後の再供給を実行可能である。
上記実施形態を適用することにより、故障検出率を向上できる半導体装置を提供できる。
なお、実施形態は上記説明した形態に限定されるものではなく、種々の変形が可能である。
2.1 第1変形例
制御回路110は、信号Sclk_ctl1及びSclk_ctl2、並びに信号Sbp_enb1及びSbp_enb2を生成及び送信できる構成であれば上記実施形態の回路に限定されない。図3の制御回路110は、比較値CV1及びCV2を固定値として保持する構成であるが、制御回路110は、比較値CV1及びCV2を、半導体装置100のスキャンテスト時に、外部から設定可能な構成であってもよい。この場合、例えば、図8の回路とすることができる。以下、図8の回路について図3の制御回路110と異なる点についてのみ説明する。
図8の制御回路110は、ROM114がレジスタ116に置き換えられた点を除いて図3の制御回路110と同じである。
例えば、最初のスキャンテストの開始前に、テスタからレジスタ116に図9に示す値が設定される。図9は、レジスタ116に保持されるテーブルの一例を示す概念図である。テーブルは、比較値CV1の第1基準値FRV1及び第2基準値FRV2、並びに比較値CV2の第1基準値SRV1及び第2基準値SRV2として設定する値を、アドレスADD毎に保持する。例えば、テーブルは、比較値CV1の第1基準値FRV1をアドレスADD1に保持し、比較値CV1の第2基準値FRV2をアドレスADD2に保持し、比較値CV2の第1基準値SRV1をアドレスADD3に保持し、比較値CV2の第2基準値SRV2をアドレスADD4に保持する。
スキャンテストの期間において、テスタは、テストパタン数に応じたアドレスADD1〜ADD4をレジスタ116に送信する。レジスタ116は、アドレスADD1〜ADD4を受信すると、アドレスADD1に対応する比較値CV1の第1基準値FRV1、アドレスADD2に対応する比較値CV1の第2基準値FRV2、アドレスADD3に対応する比較値CV2の第1基準値SRV1、及びアドレスADD4に対応する比較値CV2の第2基準値SRV2を比較器115に送信する。その他の動作は、図3の場合と同様である。
2.2 第2変形例
図3及び図8の制御回路110は、ハードウェア制御により信号Sclk_ctl1及びSclk_ctl2、並びに信号Sbp_enb1及び信号Sbp_enb2を送信する構成であるが、ソフトウェア制御により信号Sclk_ctl1及びSclk_ctl2、並びに信号Sbp_enb1及び信号Sbp_enb2を送信する構成であってもよい。この場合、例えば、図10の回路とすることができる。以下、図10の回路について説明する。
図10の制御回路110は、D−FF117−1〜117−4を含む。D−FF117−1〜117−4は、テスタからスキャンテストの期間に入力されたテストパタン数に応じたコマンドCMDを受信する。そして、D−FF117−1〜117−4は、テスタから送信された信号CLKが“L”レベルから“H”レベルに立ち上がる時に値を取り込む。また、D−FF117−4及び117−3は、保持する値を、信号Sclk_ctl1及びSclk_ctl2として、例えば図1のICG120−1及び120−2にそれぞれ送信する。D−FF117−2及び117−1は、保持する値を、信号Sbp_enb1及びSbp_enb2として、例えば図1の選択回路150−1及び150−2にそれぞれ送信する。更に、D−FF117−1〜117−4は、テスタから送信された信号RSTに応じて保持する値をリセットする。コマンドCMDは、例えば、スキャンチェーン回路140−1及び140−2に信号CLKを供給するか否かを示す論理レベルと、スキャンチェーン回路140−1及び140−2をバイパスするか否かを示す論理レベルを含む。
例えば、テストパタン数が1から100までの場合、制御回路110は、ICG120−1を制御して、スキャンチェーン回路140−1に信号CLKを供給させる。そして、制御回路110は、選択回路150−1においてスキャンチェーン回路140−1をバイパスした経路を選択しない。この場合、制御回路110は、テスタから送信された“H”レベルのコマンドCMDに基づいて信号Sclk_ctlを“H”レベルとし、テスタから送信された“L”レベルのコマンドCMDに基づいて信号Sbp_enbを“L”レベルとする。
テストパタン数が101から500までの場合、制御回路110は、ICG120−1を制御して、スキャンチェーン回路140−1への信号CLKの供給を停止させる。そして、制御回路110は、選択回路150−1においてスキャンチェーン回路140−1をバイパスした経路を選択する。この場合、制御回路110は、テスタから送信された“L”レベルのコマンドCMDに基づいて信号Sclk_ctlを“L”レベルとし、テスタから送信された“H”レベルのコマンドCMDに基づいて信号Sbp_enbを“H”レベルとする。
テストパタン数が501の場合、制御回路110は、ICG120−1を制御して、スキャンチェーン回路140−1に信号CLKを再供給させる。そして、制御回路110は、選択回路150−1においてスキャンチェーン回路140−1をバイパスした経路を選択する。この場合、制御回路110は、テスタから送信された“H”レベルのコマンドCMDに基づいて信号Sclk_ctlを“H”レベルとし、テスタから送信された“H”レベルのコマンドCMDに基づいて信号Sbp_enbを“H”レベルとする。
テストパタン数が502から最後のテストパタン数までの場合、制御回路110は、ICG120−1を制御して、スキャンチェーン回路140−1への信号CLKの供給を停止させる。そして、制御回路110は、選択回路150−1においてスキャンチェーン回路140−1をバイパスした経路を選択する。この場合、制御回路110は、テスタから送信された“L”レベルのコマンドCMDに基づいて信号Sclk_ctlを“L”レベルとし、テスタから送信された“H”レベルのコマンドCMDに基づいて信号Sbp_enbを“H”レベルとする。
例えば、制御回路110がテスタからコマンドCMD=“0110”を受信した場合、コマンドCMDの各ビットは、シフトされ、D−FF117−4に“0”、D−FF117−3に“1”、D−FF117−2に“1”、D−FF117−1に“0”がそれぞれ設定される。そして、D−FF117−4の値は、信号Sclk_ctl1として出力され、D−FF117−3の値は、信号Sclk_ctl2として出力され、D−FF117−2の値は、信号Sbp_enb1として出力され、D−FF117−1の値は、信号Sbp_enb2として出力される。
2.3 その他の変形例
スキャンチェーン回路140は、スキャンセル144を含む構成であれば上記実施形態の回路に限定されない。回路ブロック130は、スキャンチェーン回路及び選択回路を含む構成であれば、上記実施形態の回路に限定されない。
また、上記実施形態では、半導体装置100が信号CLKの供給停止後、信号CLKの再供給を実施する場合を例に挙げて説明したが、半導体装置100が信号CLKの供給停止、信号CLKの再供給、信号CLKの供給再停止後、信号CLKの再々供給を実施してもよい。この場合には、比較値CV1及びCV2毎に、第1基準値、第2基準値、及び第3基準値(第1基準値<第2基準値<第3基準値)がある。例えば、第1基準値を信号CLKの供給停止を判断するときのテストパタン数、第2基準値を信号CLKの再供給を判断するときのテストパタン数、第3基準値を信号CLKの再々供給を判断するときのテストパタン数としてもよい。更に、(第2基準値+1)を信号CLKの再供給の停止を判断するときのテストパタン数、(第3基準値+1)を信号CLKの再々供給の停止を判断するときのテストパタン数としてもよい。この場合のスキャンテストの動作について、図11を用いて説明する。図11は、スキャンテストの期間における信号CLKの供給及び供給停止のタイミングチャートである。なお、第1基準値を100、第2基準値を500、第3基準値を1000とした。
図11に示すように、テストパタン数が1から100までの期間、半導体装置100は、スキャンチェーン回路140に信号CLKを供給する。テストパタン数が101から500までの期間、半導体装置100は、スキャンチェーン回路140への信号CLKの供給を停止する。テストパタン数が501の期間、半導体装置100は、スキャンチェーン回路140に信号CLKを再供給する。テストパタン数が502から1000までの期間、半導体装置100は、スキャンチェーン回路140への信号CLKの供給を再停止する。
テストパタン数が第3基準値に等しい(カウンタ値Vcnt=1000)場合、比較器115は、“H”レベルの信号Snxt_clkを生成する。そして、比較器115は、信号Sctが“H”レベルから“L”レベルに立ち下がる時に、、生成した“H”レベルの信号Snxt_clkを信号Sclk_ctlとしてICG120−1に送信する。ICG120−1は、信号Sclk_ctlに基づいて、スキャンチェーン回路140−1に信号CLKを再々供給する。すなわち、テストパタン数が1001の期間、半導体装置100は、スキャンチェーン回路140に信号CLKを再々供給する。
テストパタン数が第3基準値よりも大きい(カウンタ値Vcnt>1000)場合、比較器115は、“L”レベルの信号Snxt_clkを生成する。そして、比較器115は、カウンタ値Vcntの増加時に、生成した“L”レベルの信号Snxt_clkを信号Sclk_ctlとしてICG120−1に送信する。ICG120−1は、信号Sclk_ctlに基づいて、スキャンチェーン回路140−1への信号CLKの供給を再々停止する。すなわち、テストパタン数が1002から最後のテストパタン数までの期間、半導体装置100は、スキャンチェーン回路140への信号CLKの供給を再々停止する。
更に、上記実施形態において、信号Ssft_enb、信号Sct、信号Scu、信号Sclk_ctl、及び信号Sbp_enbの“L”/“H”レベルは逆であってもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
100…半導体装置、110…制御回路、111…立ち下がり検出回路、112…立ち上がり検出回路、113…Upカウンタ、114…ROM、115…比較器、116…レジスタ、117−1〜117−4、143、143−1〜143−3、180−1、180−2、230−2…D−FF、120、120−1、120−2…ICG、130、130−1、130−2…回路ブロック、140、140−1、140−2…スキャンチェーン回路、141、141−1〜141−3、160−1、160−2、210−2…組み合わせ回路、142、142−1〜142−3、170−1、170−2、220−2…MUX、144、144−1〜144−3、190−1、190−2、240−2…スキャンセル、150−1、150−2…選択回路、200−2…EXOR回路

Claims (9)

  1. 第1信号及び第2信号を生成可能な制御回路と、
    前記第1信号に基づいて、クロック信号の供給又は供給停止を実行可能なゲーティング回路と、
    前記クロック信号と、前記第2信号と、テストパタンとを受け付け可能な回路ブロックと
    を備え、
    前記回路ブロックは、
    前記クロック信号に基づいて、前記テストパタンを取り込み可能なスキャンチェーン回路と、
    前記第2信号に基づいて、前記スキャンチェーン回路から出力された第3信号と、前記スキャンチェーン回路に入力される第4信号とのいずれかを選択可能な選択回路と
    を備え、
    前記ゲーティング回路は、スキャンテストの期間に、前記第1信号に基づいて、前記クロック信号の前記供給停止後の再供給を実行可能である、半導体装置。
  2. 前記制御回路は、前記期間に入力されたテストパタン数に基づいて前記第1信号を生成する、請求項1記載の半導体装置。
  3. 前記期間に入力された前記テストパタン数が第1基準値未満の場合、前記第1信号に基づいて、前記ゲーティング回路は前記クロック信号を供給し、
    前記期間に入力された前記テストパタン数が前記第1基準値以上の場合、前記第1信号に基づいて、前記ゲーティング回路は前記クロック信号の供給を停止し、
    前記期間に入力された前記テストパタン数が前記第1基準値と異なる第2基準値に等しい場合、前記第1信号に基づいて、前記ゲーティング回路は前記クロック信号を再供給する、請求項2記載の半導体装置。
  4. 前記期間に入力された前記テストパタン数が前記第2基準値よりも大きい場合、前記第1信号に基づいて、前記ゲーティング回路は前記クロック信号の供給を停止する、請求項3記載の半導体装置。
  5. 前記第2基準値は前記第1基準値よりも大きい、請求項3又は4記載の半導体装置。
  6. 前記制御回路は、
    前記期間に入力された前記テストパタン数をカウント可能なカウンタと、
    前記カウンタのカウンタ値と前記第1基準値、及び前記カウンタ値と前記第2基準値をそれぞれ比較可能な比較器と
    を備え、
    前記第1信号は、前記比較器の比較結果に基づいて生成される、請求項3乃至5のいずれか1項記載の半導体装置。
  7. 前記第1基準値及び前記第2基準値は固定値である、請求項3乃至6のいずれか1項記載の半導体装置。
  8. 前記第1基準値及び前記第2基準値は外部から設定可能である、請求項3乃至6のいずれか1項記載の半導体装置。
  9. 前記制御回路は、前記期間に入力されたテストパタン数に基づいて前記第2信号を生成し、
    前記期間に入力された前記テストパタン数が第1基準値未満の場合、前記第2信号に基づいて、前記選択回路は前記第3信号を選択し、
    前記期間に入力された前記テストパタン数が前記第1基準値以上の場合、前記第2信号に基づいて、前記選択回路は前記第4信号を選択する、請求項1乃至8のいずれか1項記載の半導体装置。
JP2020049250A 2020-03-19 2020-03-19 半導体装置 Pending JP2021148628A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020049250A JP2021148628A (ja) 2020-03-19 2020-03-19 半導体装置
US17/017,772 US11275114B2 (en) 2020-03-19 2020-09-11 Semiconductor device for controlling supply of clock signal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020049250A JP2021148628A (ja) 2020-03-19 2020-03-19 半導体装置

Publications (1)

Publication Number Publication Date
JP2021148628A true JP2021148628A (ja) 2021-09-27

Family

ID=77747767

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020049250A Pending JP2021148628A (ja) 2020-03-19 2020-03-19 半導体装置

Country Status (2)

Country Link
US (1) US11275114B2 (ja)
JP (1) JP2021148628A (ja)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6327684B1 (en) * 1999-05-11 2001-12-04 Logicvision, Inc. Method of testing at-speed circuits having asynchronous clocks and controller for use therewith
JP2004077356A (ja) 2002-08-21 2004-03-11 Nec Micro Systems Ltd スキャンチェーン回路、スキャンチェーン構築方法およびそのプログラム
US7523371B2 (en) * 2004-06-30 2009-04-21 Intel Corporation System and shadow bistable circuits coupled to output joining circuit
US8074133B2 (en) * 2008-08-06 2011-12-06 Oracle America, Inc. Method and apparatus for testing delay faults
JP5408052B2 (ja) * 2010-06-23 2014-02-05 富士通セミコンダクター株式会社 集積回路、シミュレーション装置、及びシミュレーション方法
JP6054597B2 (ja) 2011-06-23 2016-12-27 ラピスセミコンダクタ株式会社 半導体集積回路
JP2014185981A (ja) 2013-03-25 2014-10-02 Toshiba Corp 半導体集積回路および半導体集積回路の自己テスト方法
US20180203067A1 (en) * 2017-01-13 2018-07-19 Mediatek Inc. Clock gating circuits and scan chain circuits using the same
JP2019168297A (ja) 2018-03-22 2019-10-03 株式会社東芝 半導体装置、半導体設計装置及び半導体テスト装置

Also Published As

Publication number Publication date
US11275114B2 (en) 2022-03-15
US20210293882A1 (en) 2021-09-23

Similar Documents

Publication Publication Date Title
KR100706240B1 (ko) 하나의 테스트 핀을 사용하여 테스트 할 수 있는 시스템온 칩 및 테스트 방법
US7574638B2 (en) Semiconductor device tested using minimum pins and methods of testing the same
US7607055B2 (en) Semiconductor memory device and method of testing the same
CN103839590B (zh) 存储器时序参数的测量装置、方法及存储器芯片
JP2005031018A (ja) 半導体集積回路装置
US20190020342A1 (en) Half-frequency command path
JP2019215724A (ja) 半導体装置
JP2000231800A (ja) 半導体記憶装置
US20110060952A1 (en) Semiconductor integrated circuit
US20090019329A1 (en) Serial scan chain control within an integrated circuit
JP6832787B2 (ja) 半導体装置および半導体装置のテスト方法
US7484154B2 (en) Semiconductor integrated circuit, method for testing semiconductor integrated circuit, and computer readable medium for the same
JP2021148628A (ja) 半導体装置
JP2017199445A (ja) メモリテストシステム及び半導体装置、並びにメモリテスト方法
US20040088621A1 (en) Built-in self-test circuit
US6327683B1 (en) Device scan testing
JP2006058242A (ja) 集積回路
US7948912B2 (en) Semiconductor integrated circuit with test mode
JP2006073917A (ja) 集積回路
KR101156029B1 (ko) 반도체 메모리 장치 및 그 동작방법
US20050246599A1 (en) System and method for testing input and output characterization on an integrated circuit device
JP2008058098A (ja) 半導体集積回路
US9239354B2 (en) Pin removal mode signal generation circuit and semiconductor apparatus including the same
US8819509B2 (en) Integrated circuit, test circuit, and method of testing
JPWO2008120389A1 (ja) メモリテスト回路、半導体集積回路およびメモリテスト方法

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20230106