JP6880403B2 - 半導体装置の設計検証支援装置、半導体装置の設計検証支援プログラム及び半導体装置の設計検証支援方法 - Google Patents

半導体装置の設計検証支援装置、半導体装置の設計検証支援プログラム及び半導体装置の設計検証支援方法 Download PDF

Info

Publication number
JP6880403B2
JP6880403B2 JP2017102507A JP2017102507A JP6880403B2 JP 6880403 B2 JP6880403 B2 JP 6880403B2 JP 2017102507 A JP2017102507 A JP 2017102507A JP 2017102507 A JP2017102507 A JP 2017102507A JP 6880403 B2 JP6880403 B2 JP 6880403B2
Authority
JP
Japan
Prior art keywords
clock
clock signal
circuit
scan
storage
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.)
Active
Application number
JP2017102507A
Other languages
English (en)
Other versions
JP2018197969A (ja
Inventor
修 菅原
修 菅原
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017102507A priority Critical patent/JP6880403B2/ja
Priority to US15/984,545 priority patent/US10482207B2/en
Publication of JP2018197969A publication Critical patent/JP2018197969A/ja
Application granted granted Critical
Publication of JP6880403B2 publication Critical patent/JP6880403B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3323Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/396Clock trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/04Constraint-based CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/20Configuration CAD, e.g. designing by assembling or positioning modules selected from libraries of predesigned modules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は、半導体装置の設計検証支援装置、半導体装置の設計検証支援プログラム及び半導体装置の設計検証支援方法に関する。
製造試験や評価を容易にするために、スキャン機構を含む半導体装置として、LSI(Large Scale Integrated Circuit)などが知られている。LSIの内部状態の検出機構として、スキャン機構にはスキャンチェーンが含まれている。スキャンチェーンは、半導体装置の外部入力端子と外部出力端子との間に記憶素子(スキャンフリップフロップまたはラッチ回路)が直列に複数繋がれた構造をもつ。スキャンチェーンに対して、半導体装置の外部入力端子からLSIテスタが信号を入力して半導体装置の内部状態を制御し、外部出力端子から出力される信号をLSIテスタが検出して、その内部状態を観測することで試験を容易に行うことができる。
ところで、このスキャンチェーンが設計段階で正しく接続されているか検証するために半導体装置の設計検証工程において、コンピュータ上でのシミュレーションが実施される場合がある。シミュレーションの際には、クロック信号のサイクルごとに、たとえば、0と1が所定回繰り返され、その他は全て0または全て1である試験パターンが半導体装置の外部入力端子からスキャンチェーンに入力される。そして、スキャンチェーンの各記憶素子がクロック信号に同期してシフト動作を所定回数行った後に外部出力端子から出力される値が、外部入力端子に入力された期待値と等しいか否かがチェックされる。
なお、近年の半導体装置の回路規模の増大に伴い、スキャンチェーンに含まれる記憶素子の数も増大している。
特開2003−194886号公報 特開2006−4509号公報 特開2012−146865号公報
スキャンチェーンが正しく接続されているか確認するために用いられる試験パターンの有効なビット数(たとえば、0と1を繰り返している部分のビット数)はスキャンチェーンに含まれる全記憶素子の数に対してわずかなものである。そのため、試験パターンによる一度のシフト動作で出力値が変化する記憶素子も、スキャンチェーンの全記憶素子に対してわずかなものである。それにもかかわらず、従来の手法では、シフト動作の度に各記憶素子に到達するクロック信号の伝搬遅延と、到達したクロック信号に同期した全記憶素子の出力値の計算が行われるために計算量が増加し、計算時間が長くなってしまうという問題があった。
1つの態様では、スキャンチェーンを有する半導体装置に含まれる回路要素の接続先と前記回路要素により生じる伝搬遅延とに関する情報を含む回路情報と、クロック源が出力する第1のクロック信号のサイクルごとに前記スキャンチェーンのスキャンイン端子から入力する試験値を示す試験パターン情報とを記憶する記憶部と、前記回路情報と前記試験パターン情報とを前記記憶部から取得し、前記回路情報に基づいて、前記クロック源から、前記スキャンチェーンに含まれ直列に接続された複数の記憶素子のそれぞれに前記第1のクロック信号が到達するまでに生じる遅延時間を算出し、前記サイクルごとに、前記試験パターン情報に基づいて、前記複数の記憶素子のうちシフト動作により第1の出力値が変化する予定の第1の記憶素子を選択する第1の処理と、前記複数の記憶素子のそれぞれについて算出された前記遅延時間のうち、前記第1の記憶素子について算出された第1の遅延時間、前記第1のクロック信号を遅延させた第2のクロック信号を前記第1の記憶素子に供給したときの前記第1の記憶素子の前記第1の出力値を算出する第2の処理と、を行う処理部と、を有する半導体装置の設計検証支援装置が提供される。
また、1つの態様では、半導体装置の設計検証支援プログラムが提供される。また、1つの態様では、コンピュータが実行する半導体装置の設計検証支援方法が提供される。
1つの側面では、スキャンチェーンの接続試験の計算時間を短縮できる。
第1の実施の形態の設計検証支援装置の一例を示す図である。 設計検証支援装置のハードウェア例を示すブロック図である。 設計検証支援装置の機能例を示すブロック図である。 スキャンチェーンの接続試験を行う際の設計検証支援処理の手順の一例を示すフローチャートである。 前処理の手順の一例を示すフローチャートである。 回路情報で表現される設計対象の半導体装置の一例を示す図である。 試験パターン情報の一例を示す図である。 クロック制御回路の例を示す図である。 シフト動作と直接関係のない回路要素の例を示す図である。 遅延計算結果情報の一例を示す図である。 シミュレーション処理の手順の一例を示すフローチャートである。 高速シミュレーションと低速シミュレーションが行われるサイクルの例を示す図である。 LSSDラッチ回路が用いられる場合のタイミングエラーの一例を示す図である。 1サイクル分の低速シミュレーションの手順の一例を示すフローチャートである。 出力値が変化する予定の記憶素子を計算する処理の手順の一例を示すフローチャートである。 出力値が変化する予定の記憶素子群の一例を示す図である。 1サイクル分の高速シミュレーションの手順の一例を示すフローチャートである。 クロック信号の供給対象の記憶素子群の一例を示す図である。 レポート情報の表示例を示す図である。
以下、発明を実施するための形態を、図面を参照しつつ説明する。
(第1の実施の形態)
図1は、第1の実施の形態の設計検証支援装置の一例を示す図である。
第1の実施の形態の設計検証支援装置10は、ソフトウェアによりスキャンチェーンの接続試験のシミュレーションを行うことで、半導体装置の設計検証を支援する。
設計検証支援装置10は、記憶部11及び処理部12を有する。
記憶部11は、RAM(Random Access Memory)などの揮発性の記憶装置、または、フラッシュメモリ、EEPROM(Electrically Erasable Programmable Read Only Memory)やHDD(Hard Disk Drive)などの不揮発性の記憶装置である。
記憶部11は、回路情報11a、試験パターン情報11b、遅延計算結果情報11cを記憶する。
回路情報11aは、スキャンチェーンを有する設計対象の半導体装置に含まれる回路要素の接続先と、その回路要素により生じる伝搬遅延とに関する情報を含む。回路要素とは、クロックツリーに含まれるクロックバッファやスキャンチェーンに含まれる記憶素子(スキャンフリップフロップやラッチ回路)、配線などである。
試験パターン情報11bは、スキャンチェーンの接続試験を行うために、クロック源が出力するクロック信号のサイクルごとにスキャンチェーンのスキャンイン端子(半導体装置の外部入力端子)から入力する試験値を示す。以下、試験値をスキャンイン値といい、サイクルごとにスキャンイン端子に順次入力されるスキャンイン値のパターンを試験パターンという。
遅延計算結果情報11cは後述する処理によって、処理部12が生成する情報である。
なお、設計検証支援装置10が、ユーザによる入力を受け付けて、その入力に基づいて、回路情報11aや試験パターン情報11bを作成してもよいし、設計検証支援装置10は、他の装置から回路情報11aや試験パターン情報11bを取得してもよい。なお、ユーザは、たとえば、半導体装置の設計者または、半導体装置の設計検証担当者などである。
処理部12は、CPU(Central Processing Unit)やDSP(Digital Signal Processor)などの演算処理装置としてのプロセッサである。ただし、処理部12は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでもよい。プロセッサは、RAMなどのメモリに記憶されたプログラムを実行する。たとえば、半導体装置の設計検証支援プログラムが実行される。なお、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」ということがある。
処理部12は、回路情報11aと試験パターン情報11bとを記憶部11から取得する(読み出す)。そして、処理部12は、回路情報11aに基づいて、スキャンチェーンに含まれ直列に接続された複数の記憶素子のそれぞれにクロック信号が到達するまでに生じる遅延時間を算出する。そして、処理部12は、複数の記憶素子のそれぞれについての遅延時間の算出結果を含む遅延計算結果情報11cを、たとえば、記憶部11に記憶する。なお、遅延計算結果情報11cには、クロック信号が複数の記憶素子のそれぞれに到達したときのクロック信号の信号極性を示す情報が含まれていてもよい。信号極性は、クロック信号の論理レベル(H(High)レベルまたはL(Low)レベル)である。信号極性を考慮することで、クロックツリーにおいて、クロック信号の論理レベルが反転する場合に対応できる。
さらに、処理部12は、クロック源が出力するクロック信号のサイクルごとに、以下の処理を行う。処理部12は、試験パターン情報11bに基づいて複数の記憶素子のうち、そのサイクルにおいてシフト動作により出力値が変化する予定の記憶素子を選択する。そして、処理部12は、遅延計算結果情報11cに基づいて、複数の記憶素子のそれぞれについて算出された遅延時間のうち、選択した記憶素子について算出された遅延時間を取得する。そして、処理部12は、取得した遅延時間、クロック源が出力するクロック信号を遅延させたクロック信号を、選択した記憶素子に供給したときの、その記憶素子の出力値を算出する。
また、処理部12は、スキャンチェーンのスキャンアウト端子(半導体装置の外部入力端子)から出力されるスキャンアウト値と、スキャンアウト値の期待値とを比較結果に基づいてエラーの発生を検出し、そのエラーを検出した旨を示すレポート情報を出力する。
図1には、設計対象の半導体装置20の一例が示されている。
設計対象の半導体装置20は、クロック源21、クロックバッファ22a1〜22amを含むクロックツリー22、複数の記憶素子の一例であるスキャンフリップフロップ23a1〜23anを含むスキャンチェーン23を有する。
クロック源21は、スキャンチェーン23のスキャンフリップフロップ23a1〜23anをシフト動作させるためのクロック信号CKを出力する。なお、クロック源21は、クロック信号CKが半導体装置20の外部から供給される場合には、半導体装置20の外部入力端子の1つである。
クロックツリー22は、ツリー状に接続されたクロックバッファ22a1〜22amを有し、クロック源21が出力したクロック信号CKを、スキャンフリップフロップ23a1〜23anに伝搬(分配)する。
スキャンチェーン23は、スキャンフリップフロップ23a1〜23an、スキャンイン端子23b、スキャンアウト端子23cを有する。スキャンフリップフロップ23a1〜23anのそれぞれは、たとえば、マルチプレクサとフリップフロップとを有する。マルチプレクサは、2つの入力値の何れか一方を、スキャンイネーブル信号に基づいて選択する。2つの入力値の一方は、半導体装置20内の図示しない組み合わせ回路が出力する値であり、他方は、前段のスキャンフリップフロップが出力する値(初段のスキャンフリップフロップの場合は、スキャンイン端子23bから入力されるスキャンイン値)である。フリップフロップは、マルチプレクサにより選択された入力値をクロック信号に同期したタイミングで取り込む。このクロック信号は、クロック源21が出力するクロック信号CKがクロックツリー22により遅延されたものである。
なお、スキャンチェーンは、複数本設けられていてもよい。
上記のような半導体装置20の回路構成は、回路情報11aに示されている。
以下、第1の実施の形態の設計検証支援方法の一例として、半導体装置20のスキャンチェーン23の接続試験をシミュレーションする方法を説明する。
処理部12は、回路情報11aと試験パターン情報11bとを記憶部11から取得する。
そして、処理部12は、回路情報11aに基づいて、スキャンチェーン23に含まれるスキャンフリップフロップ23a1〜23anのそれぞれにクロック信号CKが到達するまでに生じる遅延時間を算出する。上記のように回路情報11aは、半導体装置に含まれる回路要素の接続先と、その回路要素により生じる伝搬遅延とに関する情報を含んでいる。そのため、処理部12は、回路情報11aに基づいて、クロック源21と、スキャンフリップフロップ23a1〜23anのそれぞれのクロック端子との間に存在する各回路要素において生じる伝搬遅延を加算することで、上記遅延時間を算出できる。
図1には、スキャンフリップフロップ23ai,23alのクロック端子に供給されるクロック信号CKa,CKbの例が示されている。クロック信号CKaは、クロック信号CKが遅延時間d1、遅延させたものである。また、クロック信号CKbは、クロック信号CKが遅延時間d2、遅延させたものである。
処理部12は、上記のように算出した遅延時間を遅延計算結果情報11cとして、たとえば、記憶部11に記憶しておく。
その後、処理部12は、クロック源21が出力するクロック信号CKのサイクルごとに、以下の処理を行う。
処理部12は、試験パターン情報11bに基づいて、スキャンフリップフロップ23a1〜23anのうち、現在のサイクルにおいてシフト動作により出力値が変化する予定のスキャンフリップフロップを選択する。
図1には、試験パターン情報11bの一例が示されている。
試験パターン情報11bは、クロック源21が出力するクロック信号CKの各サイクルにおけるスキャンイン値と、スキャンアウト値の期待値(スキャンアウト期待値)を含む。スキャンイン値として、図1の例では、0と1が所定サイクル繰り返し設定され、その後は、0が設定される。
スキャンアウト期待値は、スキャンフリップフロップ23a1〜23anのシフト動作により、最後段のスキャンフリップフロップ23anから1サイクル目のスキャンイン値が出力されるnサイクル目より前までは、“X”となっている。“X”は、期待値がないことを示している。nサイクル目からは、1サイクル目以降のスキャンイン値と同じ値が、スキャンアウト期待値となる。
図1には、スキャンフリップフロップ23ai〜23alが、Nサイクル目にシフト動作により出力値が変化する予定のスキャンフリップとして選択された例が示されている。
処理部12は、遅延計算結果情報11cに基づいて、スキャンフリップフロップ23a1〜23anのそれぞれについて算出された遅延時間のうち、選択したスキャンフリップフロップについて算出された遅延時間を取得する。たとえば、上記のように、Nサイクル目にスキャンフリップフロップ23ai〜23alが選択された場合、処理部12は、スキャンフリップフロップ23ai〜23alのそれぞれについて算出された遅延時間(遅延時間d1,d2など)を取得する。
処理部12は、取得した遅延時間、クロック源21が出力するクロック信号CKを遅延させたクロック信号(クロック信号CKa,CKbなど)を、選択したスキャンフリップフロップに供給したときの、そのスキャンフリップフロップの出力値を算出する。
たとえば、処理部12は、スキャンフリップフロップ23ai〜23alのそれぞれにおいて、前段のスキャンフリップフロップの出力値の変化タイミングと、取得した遅延時間に基づくクロック信号の変化タイミングとから出力値を変化させるか否かを決定する。
たとえば、両変化タイミングの関係が、セットアップ時間やホールド時間(これらの時間は、たとえば、回路情報11aに含まれている)の制約を満たす場合には、処理部12は、出力値を変化(0から1への変化または1から0への変化)させる。両変化タイミングの関係が、セットアップ時間やホールド時間の制約を満たさない場合には、処理部12は、出力値を変化させない。なお、スキャンフリップフロップの出力値を変化させる場合には、処理部12は、その出力値以外に、出力値の変化タイミングの情報を、後段のスキャンフリップフロップの出力値の変化の可否を決定するため、たとえば、記憶部11に記憶しておく。
Nサイクル目において、処理部12は、スキャンフリップフロップ23a1〜23anのうち、シフト動作により出力値が変化する予定のスキャンフリップフロップ23ai〜23al以外については、出力値の算出は行わない。このため、Nサイクル目において、出力値の変化の予定がないスキャンフリップフロップ23a1,23a2,23anなどは、計算対象から除外される。ただし、処理部12は、Nサイクル目において、スキャンフリップフロップ23alの出力端子に接続されるスキャンフリップフロップの出力値を算出するようにしてもよい。値の取り込みを行うべきスキャンフリップフロップの後段のスキャンフリップフロップに値が取り込まれてしまうレーシング現象などの影響を考慮できるようにするためである。
上記のような0と1が所定サイクル繰り返される試験パターンが用いられる場合、N+1サイクル目以降に、シフト動作により出力値が変化する予定のスキャンフリップ群は、スキャンフリップフロップ23ai〜23alを1段ずつ後段にずらしたものになる。
処理部12は、スキャンアウト値とスキャンアウト期待値とを比較した比較結果に基づいて、エラーの発生の有無を検出する。たとえば、処理部12は、スキャンアウト期待値が1サイクル目以降のスキャンイン値と同じ値となるnサイクル目から、スキャンアウト期待値と、スキャンアウト端子23cから出力されるスキャンアウト値とが異なっていれば、エラーが発生していると判定する。
そして、処理部12は、試験パターン情報11bに記述されている全サイクルの処理が終了した場合に、どのサイクルでエラーが生じたかを示すレポート情報を生成する。処理部12は、記憶部11にレポート情報を記憶してもよいし、図示しない表示装置にレポート情報を表示させてもよい。
以上のように、スキャンチェーンの接続試験をシミュレーションする第1の実施の形態の設計検証支援装置10は、クロック源とスキャンチェーンの各記憶素子間で生じるクロック信号の遅延時間を予め算出する。そして、設計検証支援装置10は、そのクロック信号が供給されたときの動作(出力値の変化)を計算する記憶素子の数を、試験パターンによって出力値が変化する予定の記憶素子数に基づいて制限する。
毎サイクル、クロックツリー内のクロックバッファの接続にしたがい、クロック源の信号変化を、各クロックバッファでの遅延を考慮して各クロックバッファに順次伝搬させる処理を行い、信号変化が到達する各記憶素子の動作を計算すると、計算時間が増大する。しかし、上記の手法により、計算時間を短縮できる。各サイクルにおいて動作を計算する記憶素子の数が少なくなるとともに、予め計算しておいた遅延時間を用いて、各サイクルにおいて選択された記憶素子の動作を計算するためである。
なお、スキャンチェーンの接続試験のシミュレーションでエラーが検出された場合、エラー解析のために繰り返しシミュレーションが行われる場合がある。上記の手法によれば計算時間(シミュレーション時間)を短縮できることから、エラー解析に関するTAT(Turn Around Time)も短縮できる。また、これにより、設計検証工程の期間を短縮でき、半導体装置の製造工程全体の期間の短縮も期待できる。
(第2の実施の形態)
次に、第2の実施の形態を説明する。
図2は、設計検証支援装置のハードウェア例を示すブロック図である。
設計検証支援装置30は、CPU31、RAM32、HDD33、画像信号処理部34、入力信号処理部35、媒体リーダ36及び通信インタフェース37を有する。上記ユニットは、バスに接続されている。
CPU31は、プログラムの命令を実行する演算回路を含むプロセッサである。CPU31は、HDD33に記憶されたプログラムやデータの少なくとも一部をRAM32にロードし、プログラムを実行する。なお、CPU31は複数のプロセッサコアを備えてもよく、設計検証支援装置30は複数のプロセッサを備えてもよく、以下で説明する処理を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。また、複数のプロセッサの集合(マルチプロセッサ)を「プロセッサ」と呼んでもよい。
RAM32は、CPU31が実行するプログラムやCPU31が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、設計検証支援装置30は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
HDD33は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、及び、データを記憶する不揮発性の記憶装置である。プログラムには、たとえば、作業スケジュールの算出を設計検証支援装置30に実行させる作業スケジュール算出プログラムが含まれる。なお、設計検証支援装置30は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
画像信号処理部34は、CPU31からの命令にしたがって、設計検証支援装置30に接続されたディスプレイ34aに画像を出力する。ディスプレイ34aとしては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ(PDP:Plasma Display Panel)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなどを用いることができる。
入力信号処理部35は設計検証支援装置30に接続された入力デバイス35aから入力信号を取得し、CPU31に出力する。入力デバイス35aとしては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、設計検証支援装置30に、複数の種類の入力デバイスが接続されていてもよい。
媒体リーダ36は、記録媒体36aに記録されたプログラムやデータを読み取る読み取り装置である。記録媒体36aとして、たとえば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
媒体リーダ36は、たとえば、記録媒体36aから読み取ったプログラムやデータを、RAM32やHDD33などの他の記録媒体にコピーする。読み取られたプログラムは、たとえば、CPU31によって実行される。なお、記録媒体36aは、可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体36aやHDD33を、コンピュータ読み取り可能な記録媒体ということがある。
通信インタフェース37は、ネットワーク37aに接続され、ネットワーク37aを介して他の情報処理装置と通信を行うインタフェースである。通信インタフェース37は、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースでもよいし、基地局と無線リンクで接続される無線通信インタフェースでもよい。
次に、設計検証支援装置30の機能及び処理手順を説明する。
図3は、設計検証支援装置の機能例を示すブロック図である。
設計検証支援装置30は、回路情報記憶部40、試験パターン情報記憶部41、前処理結果記憶部42、計算途中データ記憶部43、計算結果記憶部44、前処理部45、シミュレーション部46、結果出力部47を有する。
回路情報記憶部40、試験パターン情報記憶部41、前処理結果記憶部42、計算途中データ記憶部43、計算結果記憶部44は、たとえば、RAM32またはHDD33に確保した記憶領域を用いて実装できる。前処理部45、シミュレーション部46、結果出力部47は、たとえば、CPU31が実行するプログラムモジュールを用いて実装できる。
回路情報記憶部40は、スキャンチェーンを有する設計対象の半導体装置に含まれる回路要素の接続先とその回路要素により生じる伝搬遅延とに関する情報を含む回路情報を記憶する。
試験パターン情報記憶部41は、試験パターン情報を記憶する。
前処理結果記憶部42は、前処理部45で行われる前処理結果を記憶する。前処理結果には、スキャンチェーンに含まれ直列に接続された複数の記憶素子のそれぞれにクロック信号が到達するまでに生じる遅延時間の算出結果が含まれる。さらに前処理結果には、回路情報から抽出されるスキャン制御回路やスキャンチェーンに関する情報が含まれる。
計算途中データ記憶部43は、シミュレーション部46による計算の途中で生成されるデータを記憶する。
計算結果記憶部44は、結果出力部47が生成し出力するレポート情報などを記憶する。
前処理部45は、回路情報や試験パターン情報を取得するとともに、スキャンチェーンに含まれ直列に接続された複数の記憶素子のそれぞれにクロック信号が到達するまでに生じる遅延時間や到達したときのクロック信号の信号極性の算出を行う。さらに前処理部45は、回路情報からスキャン制御回路やスキャンチェーンの情報の抽出を行う。
シミュレーション部46は、試験パターン情報に基づいて、スキャンチェーンの接続試験をシミュレーションする。
結果出力部47は、スキャンチェーンの接続試験の結果を示すレポート情報を出力する。たとえば、結果出力部47は、レポート情報を計算結果記憶部44に記憶する。また、結果出力部47は、レポート情報をディスプレイ34aに表示させてもよい。
図4は、スキャンチェーンの接続試験を行う際の設計検証支援処理の手順の一例を示すフローチャートである。
設計検証支援処理は、前処理(S1)、シミュレーション処理(S2)、レポート出力処理(S3)の順で行われる。以下、各処理の例を説明する。
図5は、前処理の手順の一例を示すフローチャートである。
(S10)前処理部45は、回路情報記憶部40に記憶されている回路情報と試験パターン情報を読み出す。
図6は、回路情報で表現される設計対象の半導体装置の一例を示す図である。
半導体装置50は、複数本のスキャンチェーン51a,51b,…,51pを有する。
スキャンチェーン51a〜51pのそれぞれは、スキャンイン端子とスキャンアウト端子との間に直列に接続された複数の記憶素子(スキャンフリップフロップまたはラッチ回路)を有する。
たとえば、スキャンチェーン51aは、スキャンイン端子52aとスキャンアウト端子53aとの間に直列に接続された記憶素子51a1,51a2,…,51anを有する。スキャンチェーン51bは、スキャンイン端子52bとスキャンアウト端子53bとの間に直列に接続された記憶素子51b1,51b2,…,51bnを有する。スキャンチェーン51pは、スキャンイン端子52pとスキャンアウト端子53pとの間に直列に接続された記憶素子51p1,51p2,…,51pnを有する。
また、半導体装置50は、組み合わせ回路54a1,54a2を有する。図6では、図示を簡略化するため、2つの組み合わせ回路54a1,54a2を示したが、たとえば、スキャンチェーン51a〜51pの各記憶素子に、組み合わせ回路が接続される。
さらに、半導体装置50は、クロックツリー55とスキャン制御回路56を有する。
クロックツリー55は、ツリー状に接続されたクロックバッファ55a1〜55amを有し、クロック信号を、スキャンチェーン51a〜51pの各記憶素子に分配する。なお、クロックツリー55には、クロックバッファ55a1〜55am以外の回路要素(図8、図9参照)を含んでいてもよい。
スキャン制御回路56は、クロック源56a1,56a2、状態設定レジスタ56bを有する。
クロック源56a1,56a2は、スキャンチェーン51a〜51pの各記憶素子をシフト動作させるためのクロック信号を出力する。たとえば、クロック源56a1は、あるスキャンチェーンに含まれる各記憶素子をシフト動作させるためのクロック信号を出力したとき、クロック源56a1は、別のスキャンチェーンに含まれる各記憶素子をシフト動作させるためのクロック信号を出力する。
また、各記憶素子が、後述するスキャン方式の1つであるLSSD(Level Sensitive Scan Design)方式に対応した記憶素子である場合には、その記憶素子にシフト動作をさせるために異なる2つのクロック信号が用いられる。クロック源56a1,56a2は、その異なる2つのクロック信号を出力するクロック源であってもよい。
なお、クロック源56a1,56a2は、クロック信号が半導体装置50の外部から供給される場合には、半導体装置50の外部入力端子の1つである。また、クロック源は1つでもよいし、3つ以上でもよい。
状態設定レジスタ56bは、スキャンテストを行うモードであるか否かを示す状態値や、スキャンテストが行われるスキャンチェーンが選択されているか否かを示す状態値が設定される。この状態値にしたがって、たとえば、記憶素子51a1は、スキャンイン端子52aから供給されるスキャンイン値を取り込むか、組み合わせ回路54a1が出力する値を取り込むか決定する。また、状態設定レジスタ56bには、スキャンチェーン51a〜51pの各記憶素子のシフト動作の現在の回数(スキャンシフト回数)や、スキャンテストにおける全スキャンシフト回数が設定されてもよい。
ステップS10の処理で読み出される回路情報は、上記のような半導体装置50に含まれる各回路要素の接続先、各回路要素により生じる伝搬遅延、及び各回路要素の種類(セルタイプ)に関する情報を含む。また、回路情報は、回路要素の識別情報(以下素子IDという)、クロック端子やクロックツリーに接続される端子の識別情報(以下クロック端子ID、クロックツリー端子IDという)などを含む。
一方、ステップS10の処理で読み出される試験パターン情報は、たとえば、以下のような情報である。
図7は、試験パターン情報の一例を示す図である。
試験パターン情報41aには、クロック源(たとえば、図6のクロック源56a1,56a2)が出力するクロック信号の各サイクルにおけるスキャンイン値と、スキャンアウト値の期待値(スキャンアウト期待値)を含む。各クロック源が出力するクロック信号のパルスの種類が“P”と表記されている。なお、“P”の後の“1”や“0”は、他のLSI外部端子(診断用端子)に入力するパターン(1か0の値)を表す。なお、クロック源が2つあれば、2つのクロック源が出力するそれぞれのクロック信号のパルスの種類と上記他のLSI外部端子に対するパターンが組み合わされて“PP01”,“PP11”と表記される。なお、端子の記述順は、予めLSIごとに決められており、何文字目が何の端子のパターンかが判るようになっている。ちなみに、“P”は、positive pulseを示し、“P”の代わりに、negative pulseを示す“N”となる場合もある。
スキャンイン値として、図7の例では、図6のスキャンイン端子52a〜52pに、00…0と11…1が所定サイクル繰り返し入力され、その後は、00…0が入力される。
スキャンアウト期待値は、スキャンチェーン51a〜51pの各記憶素子のシフト動作により、スキャンアウト端子53a〜53pからN+0サイクル目のスキャンイン値が出力されるM+1サイクル目より前までは、“XX…X”となっている。“X”は、期待値がないことを示している。M+1サイクル目からは、1サイクル目以降のスキャンイン値と同じ値が、スキャンアウト期待値となる。なお、図7では、“0”が論理レベルの“L”で示されており、“1”が論理レベルの“H”で示されている。
(S11)回路情報と試験パターン情報の読み出し後、前処理部45は、回路情報からスキャン制御回路情報を抽出する。前処理部45は、前処理部45は、たとえば、図6に示したような、状態設定レジスタ56bに設定されている状態値をスキャン制御回路情報として取得し、前処理結果記憶部42に記憶する。
(S12)その後、前処理部45は、回路情報からスキャンチェーン情報を抽出する。前処理部45は、たとえば、スキャンチェーン51a〜51pのスキャン方式に応じて、スキャンチェーン51a〜51pのそれぞれと外部端子との対応関係や、記憶素子の接続順、セルタイプの情報を回路情報から取得し、前処理結果記憶部42に記憶する。
なお、スキャン方式には、MUXD(MUltipleXed Data)方式と、LSSDがある。MUXD方式は、前述したマルチプレクサとフリップフロップとを有するスキャンフリップフロップを記憶素子として用いる方式である。
一方、LSSD方式は、マスターラッチとスレーブラッチとを有する記憶素子を用い、半導体装置の通常動作で使用するクロック信号とは別に、マスターラッチとスレーブラッチとにそれぞれ異なるスキャンテスト専用のクロック信号を供給する方式である。
(S13)さらに、前処理部45は、回路情報からスキャンテストに用いられるクロック信号の全クロック源を抽出する。クロック源が、外部端子であるか半導体装置の内部素子であるかについては、半導体装置の種類やスキャン方式などにより異なる。クロック源が内部素子で複数ある場合には、前処理部45は、たとえば、ユーザによる入力を受け付け、スキャンテストに用いるクロック信号のクロック源を適宜選択できるようにしてもよい。
(S14)前処理部45は、抽出した全クロック源から、クロック源を1つ選択する。たとえば、図6に示した半導体装置50では、2つのクロック源56a1,56a2が含まれるので、その一方が選択される。
(S15)その後、前処理部45は、回路情報に基づいて、スキャンチェーンに含まれる各記憶素子に到達するクロック信号の遅延時間、信号極性を算出して前処理結果記憶部42に記憶する。
前処理部45は、たとえば、ステップS14の処理で図6のクロック源56a1を選択した場合、クロック源56a1から各記憶素子に至るクロックツリー55上の経路に含まれる各回路要素(配線やクロックバッファ)で生じる遅延時間を積算する。これらの遅延時間は、クロック信号の伝搬方向に対して固定の値である。これにより、スキャンチェーンに含まれる各記憶素子に到達するクロック信号の遅延時間が算出される。さらに、前処理部45は、クロックバッファとしてインバータ回路が用いられる場合を考慮して、各記憶素子に到達するクロック信号の信号極性(HレベルかLレベルか)を算出する。
(S16)その後、前処理部45は、回路情報に基づいて、クロックツリー内のクロック制御回路を検出し、前処理結果記憶部42に記憶する。クロックツリー内にはクロックバッファの他にもクロック信号の伝搬を制御するクロック制御回路が含まれる場合がある。
図8は、クロック制御回路の例を示す図である。
クロックツリー55には、クロック制御回路として、AND回路55bやセレクタ55cが含まれている。
AND回路55bの一方の入力端子には、記憶素子51a1にも与えられるクロック信号CK1が供給され、AND回路55bの他方の入力端子には、制御値cnt1が供給される。AND回路55bの出力端子は、記憶素子51a2のクロック端子及びセレクタ55cの第1の入力端子に接続されている。セレクタ55cの第2の入力端子には、クロック信号CK1とは別のクロック信号ckが供給され、セレクタ55cの第3の入力端子(選択端子)には、選択信号selが供給される。セレクタ55cの出力端子は、記憶素子51a3のクロック端子に接続される。
制御値cnt1、クロック信号ckや選択信号selは、たとえば、図6に示したスキャン制御回路56から供給される。なお、クロック信号ckは、外部端子から供給されてもよい。
AND回路55bの制御値cnt1が0のとき、AND回路55bの出力値は常に0になるため、クロック信号CK1は、記憶素子51a2,51a3に伝搬されない。また、制御値cnt1が1のとき、選択信号selがクロック信号ckを選択する信号である場合には、クロック信号CK1は、記憶素子51a3に伝搬されない。このように、AND回路55bやセレクタ55cは、クロック信号CK1の伝搬の制御や、使用するクロック信号の切り替えを行うクロック制御回路として機能する。
このようなクロック制御回路を検出し、記憶しておき、後述の高速シミュレーションの際にそのクロック制御回路の信号変化(制御値などの変化)も検出することで、クロック信号が記憶素子に伝搬されなくなるエラーを検出できる。
(S17)前処理部45は、回路情報に基づいて、クロックツリー内において、記憶素子のシフト動作と直接関係のない回路要素を検出する。クロックツリー内にはクロックバッファやクロック制御回路の他にもシフト動作と直接関係のない(シフト動作に影響を与えない)回路が含まれる場合がある。
図9は、シフト動作と直接関係のない回路要素の例を示す図である。
クロックツリー55には、クロックバッファ55ai,55aj,55akの他に、シフト動作と直接関係のない回路要素として、ROM(Read Only Memory)55dが含まれている。
スキャンテストで用いられるクロック信号CK2は、記憶素子51b1のクロック端子に供給される。また、クロック信号CK2は、クロックバッファ55aiを介して記憶素子51b2のクロック端子、クロックバッファ55ai,55ajを介して記憶素子51b3のクロック端子に供給される。さらに、クロック信号CK2は、クロックバッファ55akを介して、ROM55dのクロック端子に供給される。
シフト動作と直接関係のない回路要素として、ROM55dの他に、RAMなどがある。
(S18)その後、前処理部45は、検出したシフト動作と直接関係のない回路要素に到達するクロック信号の遅延時間、信号極性を、ステップS15の処理と同様に算出し、前処理結果記憶部42に記憶する。
このような情報を記憶しておくことで、高速シミュレーションの際に、その回路要素にも遅延時間や信号極性を考慮したクロック信号を与え、その回路要素に関する信号の変化などを算出することができる。
(S19)前処理部45は、未選択のクロック源があるか否かを判定し、未選択のクロック源がある場合には、ステップS14からの処理を繰り返す。未選択のクロック源がない場合には、前処理が終了する。
以上のような前処理によって、前処理結果記憶部42に記憶される遅延計算結果情報の例を以下に示す。
図10は、遅延計算結果情報の一例を示す図である。
遅延計算結果情報42aには、上記前処理で検出または算出された各情報が含まれている。たとえば、遅延計算結果情報42aは、図6に示したクロック源56a1(素子ID:source1)が出力するクロック信号によってシフト動作する記憶素子51a1〜51anのそれぞれの素子ID(ffa1〜ffan)を含む。また、遅延計算結果情報42aは、記憶素子51a1〜51anのそれぞれのクロック端子ID(cka1〜ckan)を含む。また、遅延計算結果情報42aは、記憶素子51a1〜51anのそれぞれに到達するクロック信号の立ち上がり遅延(tdra1〜tdran)、立ち下がり遅延(tdfa1〜tdfan)と、クロック信号の信号極性(図10の例では“H”)を含む。
さらに遅延計算結果情報42aは、クロック制御回路の情報として、たとえば、図8に示したAND回路55b、セレクタ55cのそれぞれの素子ID(cntr1,cntr2)、クロックツリー端子ID(ckt1,ckt2)を含む。また、遅延計算結果情報42aは、シフト動作と直接関係のない回路要素の情報として、たとえば、図9に示したROM55dの素子ID(ig1)、クロック端子ID(ckb1)を含む。さらに遅延計算結果情報42aは、シフト動作と直接関係のない回路要素の情報として、ROM55dのクロック端子に到達するクロック信号の立ち上がり遅延(tdrb1)、立ち下がり遅延(tdfb1)、信号極性(図10の例では“H”)を含む。
図6に示したクロック源56a2(素子ID:source2)に関しても同様の情報が遅延計算結果情報42aに含まれる。
なお、図5に示した前処理の手順は一例であり、各処理の順序は適宜入れ替えてもよい。たとえば、ステップS11,S12の処理などは順序を入れ替えてもよい。
図11は、シミュレーション処理の手順の一例を示すフローチャートである。
(S20)シミュレーション部46は、たとえば、設計対象の半導体装置に含まれる各回路要素の入出力信号や、スキャン制御回路の状態値などに初期値を設定することで、初期化を行う。
(S21)シミュレーション部46は、試験パターン情報を1サイクル分抽出する。
(S22)シミュレーション部46は、スキャン制御回路の状態値を計算する。試験パターン情報にはスキャン制御回路56を動作させる情報(たとえば、前述した0か1のパターン)が含まれている。シミュレーション部46は、この情報に基づいて状態値を計算し、計算途中データ記憶部43に記憶する。
(S23)シミュレーション部46は、計算途中データ記憶部43に記憶されている状態値を取得し、その状態値がスキャンテストを行うモードを示す場合、現在のサイクルが、高速シミュレーション対象サイクルであるか否かを判定する。シミュレーション部46は、現在のスキャンシフト回数(シフト動作を行った回数)に基づいて現在のサイクルが、高速シミュレーション対象サイクルであるか否かを判定する。シミュレーション部46は、試験パターン情報に基づいて得られるクロック信号の動作回数をカウントし計算途中データ記憶部43に記憶する。そして、シミュレーション部46は、その動作回数を読み出して、スキャンシフト回数として用いることができる。
高速シミュレーションとは、出力値が変化する予定の記憶素子を選択して、クロック信号を与えてその記憶素子の動作を計算するシミュレーションである。また、以下では、クロック源の信号変化を、各クロックバッファでの遅延を考慮して各クロックバッファに順次伝搬させる処理を行い、クロック端子に信号変化が到達する各記憶素子の動作を計算するシミュレーションを低速シミュレーションという。
第2の実施の形態のスキャンチェーンの接続試験では、シミュレーション部46は、始めの2サイクルと最後の1サイクルは低速シミュレーションを行う。
図12は、高速シミュレーションと低速シミュレーションが行われるサイクルの例を示す図である。
図12には、あるスキャンチェーンに含まれる各記憶素子をシフト動作させるために、あるクロック源が出力するクロック信号CKAの例が示されている。タイミングt1からt4までがスキャンシフト動作区間であり、図7に示したような試験パターン情報41aの全スキャンシフトサイクル数にクロック信号CKAの周期を乗じた期間に相当する。
タイミングt1からタイミングt2までのクロック信号CKAの2周期分(2サイクル分)と、タイミングt3からタイミングt4のスキャンシフト動作区間が終わる最後の1周期分(1サイクル分)が、低速シミュレーションが行われる区間である。それ以外の区間は高速シミュレーションが行われる区間である。
始めの2サイクルでは、低速シミュレーションが行われ、スキャンチェーンに含まれる全記憶素子においてタイミング検証やレーシング検証が行われる。
図13は、LSSDラッチ回路が用いられる場合のタイミングエラーの一例を示す図である。
LSSDラッチ回路51dは、図示を省略しているが、マスターラッチとスレーブラッチを有し、それぞれに異なるスキャンテスト専用のクロック信号ckm,cksが供給される。また、LSSDラッチ回路51dには、スキャンイン値siが供給される。なお、LSSDラッチ回路51dには、半導体装置の通常動作で使用するクロック信号や、組み合わせ回路の出力値が供給されるが、図示を省略している。LSSDラッチ回路51dは、スキャンアウト値soを出力する。
LSSDラッチ回路51dにおいて、クロック信号ckmの立ち上がりタイミングとクロック信号cksの立ち下がりタイミングの間の時間が所定の閾値よりも短いとタイミングエラーが生じる。たとえば、クロック信号ckmの立ち上がりタイミングとクロック信号cksの立ち下がりタイミングの間の時間が所定の閾値よりも長い時間daの場合、タイミングエラーは生じない。クロック信号ckmの立ち上がりタイミングとクロック信号cksの立ち下がりタイミングの間の時間が所定の閾値よりも短い時間dbの場合、タイミングエラーが生じる。
2サイクル分の試験パターン情報が用いられる理由は、レーシング検証を可能とするためである。
一方、最後の1サイクル分、低速シミュレーションを行う理由は、全記憶素子の状態などを、スキャンシフト動作区間の全区間を低速シミュレーションで行った場合と同等とするためである。これによりスキャンシフト動作区間の全区間を低速シミュレーションで行った場合と同等のシミュレーション品質が保証される。
高速シミュレーションが行われる図12のタイミングt2からタイミングt3の区間は、大規模回路の場合、たとえば、数100×10サイクル分から数1000×10サイクル分となる。そのため、スキャンシフト動作区間のほとんどが、高速シミュレーションが行われる区間となる。
ステップS23の処理で、現在のサイクルが高速シミュレーション対象サイクルではないと判定された場合には、ステップS24の処理が行われ、高速シミュレーション対象サイクルであると判定された場合には、ステップS25の処理が行われる。
(S24)シミュレーション部46は、1サイクル分、低速シミュレーションを行い、その後、ステップS27の処理を行う。
(S25)シミュレーション部46は、試験パターン情報に基づいて、スキャンチェーンに含まれる複数の記憶素子のうち、そのサイクルにおいて出力値が変化する予定の記憶素子を計算する。
(S26)その後、シミュレーション部46は、1サイクル分、高速シミュレーションを行う。その後、シミュレーション部46は、ステップS27の処理を行う。
(S27)シミュレーション部46は、ステップS24〜S26の処理でエラーが検出されたか否か、または全サイクルの試験パターン情報が抽出されたか否かを判定する。そして、エラーが検出された場合、または、全サイクルの試験パターン情報が抽出された場合、シミュレーション処理を終了する。シミュレーション部46は、エラーが検出されず、全サイクルの試験パターン情報が抽出されていない場合、ステップS21からの処理を繰り返す。
なお、エラーが検出された場合でも全サイクルの試験パターン情報の抽出が終わるまでは、ステップS21からの処理が繰り返されるようにしてもよい。
次に、1サイクル分の低速シミュレーションの手順の一例を説明する。
図14は、1サイクル分の低速シミュレーションの手順の一例を示すフローチャートである。
(S30)シミュレーション部46は、現在のサイクルにおいて生じる信号変化イベントを1つ選択する。信号変化イベントは、スキャンイン値の変化や、遅延計算結果情報に基づいて算出できるクロック信号の論理レベルの変化のほか、前述した、クロック制御回路の制御値や、組み合わせ回路の入出力値の変化なども含まれる。
(S31)その後、シミュレーション部46は、現在のスキャンシフト回数を示す状態値に基づいて、スキャンシフト回数が1回目または2回目であるか否かを判定する。シミュレーション部46は、スキャンシフト回数が1回目または2回目であると判定した場合には、ステップS32の処理を行う。シミュレーション部46は、スキャンシフト回数が1回目または2回目以外の場合(低速シミュレーションは始めの2サイクルと最後の1サイクル行われるため、スキャンシフト回数が最後の場合)であると判定した場合には、ステップS36の処理を行う。
(S32)シミュレーション部46は、選択した信号変化イベントが、スキャンチェーンに含まれるある記憶素子のクロック端子の信号変化であるか否かを判定する。シミュレーション部46は、選択した信号変化イベントが、スキャンチェーンに含まれるある記憶素子のクロック端子の信号変化であると判定した場合には、ステップS33の処理を行う。シミュレーション部46は、選択した信号変化イベントが、スキャンチェーンに含まれる記憶素子のクロック端子の信号変化ではないと判定した場合には、ステップS34の処理を行う。
(S33)シミュレーション部46は、その記憶素子のクロック端子に信号変化があった旨を示すクロック信号伝搬情報を計算途中データ記憶部43に記憶する。その後、シミュレーション部46は、ステップS36の処理を行う。
(S34)シミュレーション部46は、選択した信号変化イベントが、シフト動作と直接関係のないクロックツリー内の回路要素のクロック端子の信号変化であるか否かを判定する。シミュレーション部46は、選択した信号変化イベントが、そのような回路要素のクロック端子の信号変化であると判定した場合には、ステップS35の処理を行う。シミュレーション部46は、選択した信号変化イベントが、そのような回路要素のクロック端子の信号変化ではないと判定した場合には、ステップS36の処理を行う。
シフト動作と直接関係のないクロックツリー内の回路要素としては、前述のようにクロックツリーに含まれるROMやRAMなどがある。
(S35)シミュレーション部46は、シフト動作と直接関係のないクロックツリー内の回路要素のクロック端子に信号変化があった旨を示すクロック信号伝搬情報を計算途中データ記憶部43に記憶する。その後、シミュレーション部46は、ステップS36の処理を行う。
(S36)シミュレーション部46は、信号変化シミュレーションを行う。信号変化シミュレーションは、たとえば、記憶素子においてスキャンイン値とクロック信号の変化に応じたスキャンアウト値の変化や、組み合わせ回路の入力値の変化に応じた出力値の変化などが計算される処理である。また、記憶素子の、セットアップ時間やホールド時間に関してのタイミング検証が行われる。たとえば、前述したLSSDラッチ回路が用いられる場合のタイミングエラーの検出は、2回分のスキャンシフト時の、信号変化シミュレーションにて行われる。
さらに、信号変化シミュレーションでは、スキャンチェーンのスキャンアウト端子(外部端子)から出力されるスキャンアウト値と、その期待値との比較が行われ、期待値エラーが発生しているか否かの検出が行われる。
信号変化シミュレーション結果は、計算途中データ記憶部43に記憶される。その後、シミュレーション部46は、ステップS37の処理を行う。
(S37)シミュレーション部46は、サイクルが終了(1サイクル分の時間が経過)したか否かを判定する。シミュレーション部46は、サイクルが終了したと判定した場合には、1サイクル分の低速シミュレーションを終了し、サイクルが終了していないと判定した場合には、ステップS30からの処理を繰り返す。
次に、出力値が変化する予定の記憶素子を計算する処理の手順の一例を説明する。
図15は、出力値が変化する予定の記憶素子を計算する処理の手順の一例を示すフローチャートである。
(S40)シミュレーション部46は、現在のサイクルの試験パターン情報に基づいて、スキャンチェーン内の全記憶素子のうち、出力値が変化予定の記憶素子群の先頭を特定する。
たとえば、図6に示した半導体装置50のスキャンチェーン51a〜51pのうち、外部端子であるスキャンイン端子52a〜52pにスキャンイン値が入力されるスキャンチェーンと、その値が、試験パターン情報から検出される。スキャンイン値に変化があるスキャンチェーンの先頭の記憶素子の出力値が現在のサイクルで変化する可能性があるため、その記憶素子が特定される。
(S41)その後、シミュレーション部46は、現在のスキャンシフト回数を示す状態値に基づいて、スキャンシフト回数が3回目であるか否かを判定する。シミュレーション部46は、スキャンシフト回数が3回目であると判定した場合には、ステップS42の処理を行い、スキャンシフト回数が3回目でないと判定した場合には、ステップS46の処理を行う。
(S42)シミュレーション部46は、出力値が変化予定の記憶素子群を特定する。
たとえば、図6のスキャンチェーン51a〜51pの先頭の記憶素子51a1〜51p1が、ステップS40の処理で特定されたとする。このとき、その後段の記憶素子51a2〜51an,51b2〜51bn,…,51p2〜51pnのうち、現在の出力値(保持値)と入力値とが異なっている記憶素子群が、現在のサイクルで出力値が変化予定の記憶素子群として特定される。
(S43)その後、シミュレーション部46は、図14のステップS33の処理で記憶されたクロック信号伝搬情報に基づいて、シフト動作が行われる記憶素子を含む全スキャンチェーンの全記憶素子に、クロック信号が伝搬しているか否かを判定する。シミュレーション部46は、シフト動作が行われる記憶素子を含む全スキャンチェーンの全記憶素子に、クロック信号が伝搬していると判定した場合には、ステップS44の処理を行う。シミュレーション部46は、シフト動作が行われる記憶素子を含む全スキャンチェーンの全記憶素子に、クロック信号が伝搬していないと判定した場合には、ステップS45の処理を行う。
(S44)シミュレーション部46は、図14のステップS35の処理で記憶されたクロック信号伝搬情報に基づいて、スキャンシフトに直接関係ないクロックツリー内の回路素子にクロック信号が伝搬しているか否かを判定する。シミュレーション部46は、スキャンシフトに直接関係ないクロックツリー内の回路素子にクロック信号が伝搬していると判定した場合には、出力値が変化する予定の記憶素子を計算する処理を終了する。シミュレーション部46は、スキャンシフトに直接関係ないクロックツリー内の回路素子にクロック信号が伝搬していないと判定した場合には、ステップS45の処理を行う。
(S45)シミュレーション部46は、エラーが発生したことを判定し、エラーの内容を示すエラー情報を、計算途中データ記憶部43に記憶し、出力値が変化する予定の記憶素子を計算する処理を終了する。
(S46)シミュレーション部46は、前サイクルにおいて出力値が変化する予定の記憶素子群を1ビット分シフトさせて現在のサイクルにおいて出力値が変化する予定の記憶素子群を特定する。その後、シミュレーション部46は、出力値が変化する予定の記憶素子を計算する処理を終了する。
図16は、出力値が変化する予定の記憶素子群の一例を示す図である。
たとえば、あるサイクルAにおいて、スキャンチェーン51a内の記憶素子51ai〜51ajが、出力値が変化する予定の記憶素子群であるとする。次のサイクルA+1では、記憶素子51ai〜51ajを1ビット分(記憶素子1つ分)、スキャンアウト端子53aの方向にシフトさせた記憶素子群である記憶素子51ai+1〜51aj+1が、出力値が変化する予定の記憶素子群として特定される。
さらに次のサイクルA+2では、同様に、記憶素子51ai+1〜51aj+1を1ビット分、スキャンアウト端子53aの方向にシフトさせた記憶素子群である記憶素子51ai+2〜51aj+2が、出力値が変化する予定の記憶素子群として特定される。
なお、図15に示した処理の手順は一例であり、各処理の順序は適宜入れ替えてもよい。たとえば、ステップS43,S44の処理などは順序を入れ替えてもよい。
次に、1サイクル分の高速シミュレーションの手順の一例を説明する。
図17は、1サイクル分の高速シミュレーションの手順の一例を示すフローチャートである。
(S50)シミュレーション部46は、現在のサイクルにおいて生じる信号変化イベントを1つ選択する。
(S51)シミュレーション部46は、選択した信号変化イベントが、クロック制御回路の信号変化であるか否か(クロック信号の伝搬が停止される状態か否か)を判定する。シミュレーション部46は、選択した信号変化イベントが、クロック制御回路の信号変化である場合には、ステップS52の処理を行い、選択した信号変化イベントが、クロック制御回路の信号変化ではない場合には、ステップS53の処理を行う。
(S52)シミュレーション部46は、エラーが発生したことを判定し、エラーの内容を示すエラー情報を、計算途中データ記憶部43に記憶し、その後ステップS57の処理を行う。たとえば、図8に示したようなAND回路55bやセレクタ55cなどのクロック制御回路において、制御値cnt1が1から0に変化する場合や、選択信号selがクロック信号ckを選択するように変化する場合、クロック信号が伝搬されない記憶素子が生じる。このような場合には、エラーが発生したと判定される。
(S53)次にシミュレーション部46は、選択した信号変化イベントが、クロック源の信号変化であるか否かを判定する。シミュレーション部46は、選択した信号変化イベントが、クロック源の信号変化である場合には、ステップS54の処理を行い、選択した信号変化イベントが、クロック源の信号変化ではない場合には、ステップS56の処理を行う。
(S54)シミュレーション部46は、クロック信号の供給対象の記憶素子群にクロック信号を供給し、信号変化シミュレーションを行う。クロック信号の供給対象の記憶素子群は、出力値が変化予定の記憶素子群に対して、スキャンアウト端子方向に1つ記憶素子を追加したものである。これは、前述したレーシング現象などの影響を考慮できるようにするためである。
図18は、クロック信号の供給対象の記憶素子群の一例を示す図である。
あるサイクルAにおいて、記憶素子51ai〜51ajが、出力値が変化予定の記憶素子群であると特定されている場合、クロック信号の供給対象の記憶素子群は、記憶素子51ai〜51aj+1となる。
シミュレーション部46は、前処理結果記憶部42に記憶されている遅延計算結果情報から、たとえば、記憶素子51ai〜51aj+1のそれぞれについて予め算出されている遅延時間(立ち上がり遅延と立ち下がり遅延)と信号極性を取得する。
そして、クロック源が出力するクロック信号を各遅延時間、遅延させたクロック信号であり、取得した信号極性のクロック信号を、記憶素子51ai〜51aj+1のそれぞれのクロック端子に供給(設定)する。そして、シミュレーション部46は、クロック信号が供給される各記憶素子においてスキャンイン値とクロック信号の変化に応じたスキャンアウト値の変化を計算する。また、クロック信号が供給される各記憶素子の、セットアップ時間やホールド時間に関してのタイミング検証が行われる。
さらに、信号変化シミュレーションでは、スキャンチェーンのスキャンアウト端子(外部端子)から出力されるスキャンアウト値と、その期待値との比較が行われ、期待値エラーが発生していないか否かの検出が行われる。
信号変化シミュレーション結果は、計算途中データ記憶部43に記憶される。
(S55)シミュレーション部46は、スキャンシフトに直接関係ないクロックツリー内の回路素子にクロック信号を供給し、信号変化シミュレーションを行う。シミュレーション部46は、前処理結果記憶部42に記憶されている遅延計算結果情報から、たとえば、クロックツリー内のROMやRAMなどの回路素子について予め算出されている遅延時間(立ち上がり遅延と立ち下がり遅延)と信号極性を取得する。そして、クロック源が出力するクロック信号をその遅延時間、遅延させたクロック信号であり、取得した信号極性のクロック信号を、その回路素子のクロック端子に供給(設定)する。そして、シミュレーション部46は、クロック信号が供給されるその回路素子において入力値とクロック信号の変化に応じた出力値の変化を計算(シミュレーション)する。シミュレーション結果は、計算途中データ記憶部43に記憶される。
(S56)シミュレーション部46は、信号変化シミュレーションを行う。ここでの信号変化シミュレーションは、たとえば、クロック源が出力するクロック信号の変化とは無関係な、組み合わせ回路の入力値の変化に応じた出力値の変化などが計算される処理である。信号変化シミュレーション結果は、計算途中データ記憶部43に記憶される。その後ステップS57の処理が行われる。
(S57)シミュレーション部46は、サイクルが終了(1サイクル分の時間が経過)したか否かを判定する。シミュレーション部46は、サイクルが終了したと判定した場合には、1サイクル分の高速シミュレーションを終了し、サイクルが終了していないと判定した場合には、ステップS50からの処理を繰り返す。
なお、図17に示した高速シミュレーション処理の手順は一例であり、各処理の順序は適宜入れ替えてもよい。たとえば、ステップS54,S55の処理などは順序を入れ替えてもよい。
以上のようなシミュレーション処理後、図4に示したようにレポート出力処理が行われる。結果出力部47は、シミュレーション部46でのシミュレーション処理結果に基づいて、レポート情報を出力する。たとえば、結果出力部47は、レポート情報を計算結果記憶部44に記憶してもよいし、レポート情報をディスプレイ34aに表示させてもよい。
図19は、レポート情報の表示例を示す図である。
たとえば、レポート情報として、シミュレーション開始時刻のほか、タイミングエラーの情報、期待値エラーの情報が表示される。
タイミングエラーの情報としては、タイミングエラーが発生したシミュレーション時刻やサイクル、セットアップ時間についてのタイミングエラーかホールド時間についてのタイミングエラーかを示す情報が表示される。さらに、タイミングエラーが生じた回路要素の素子IDが、たとえば、“gate(/EO/JBA9B/I025H)”などと表示され、回路要素の種類が、たとえば、“type(KOBSC)”などと表示される。さらに、どの端子間の信号のタイミングエラーかを示す情報として、たとえば、クロック端子とスキャンイン端子の信号のタイミングエラーの場合には、“pin(CLK SI)”などと表示される。
期待値エラー(“strobe error”と表記されている)の情報としては、期待値エラーが発生したシミュレーション時刻やサイクルの情報が表示される。さらに、どのスキャンアウト端子で期待値エラーが生じたかを示す情報が、たとえば、“pin(CR74)”などと表示される。また、シミュレーションで得られたスキャンアウト値と、期待値とが、たとえば、“status(sim:X pat:L)”などと表示される。
さらに、回路情報名や、試験パターン情報名、シミュレーションの単位時間、シミュレーション実行時間、期待値エラー数、タイミングエラー数などが表示される。
以上のように、スキャンチェーンの接続試験を設計検証工程でシミュレーションする第2の実施の形態の設計検証支援装置30は、クロック源とスキャンチェーンの各記憶素子間で生じるクロック信号の遅延時間を予め算出する。そして、設計検証支援装置30は、そのクロック信号が供給されたときの動作(出力値の変化)を計算する記憶素子の数を、試験パターンによって出力値が変化する予定の記憶素子数に基づいて制限する。これにより、計算時間を短縮できる。
また、スキャンチェーンの接続試験のシミュレーションでエラーが検出された場合、エラー解析のために繰り返しシミュレーションが行われる場合があるが、上記の手法によれば計算時間を短縮できることから、エラー解析に関するTATも短縮できる。また、これにより、設計検証工程の期間を短縮でき、半導体装置の製造工程全体の期間の短縮も期待できる。
なお、前述のように、上記の処理内容は、設計検証支援装置30にプログラムを実行させることで実現できる。
プログラムは、コンピュータ読み取り可能な記録媒体(たとえば、記録媒体36a)に記録しておくことができる。記録媒体として、たとえば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、FDおよびHDDが含まれる。光ディスクには、CD、CD−R(Recordable)/RW(Rewritable)、DVDおよびDVD−R/RWが含まれる。プログラムは、可搬型の記録媒体に記録されて配布されることがある。その場合、可搬型の記録媒体から他の記録媒体(たとえば、HDD33)にプログラムをコピーして実行してもよい。
以上、実施の形態に基づき、本発明の半導体装置の設計検証支援装置、半導体装置の設計検証支援プログラム及び半導体装置の設計検証支援方法の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
10 設計検証支援装置
11 記憶部
11a 回路情報
11b 試験パターン情報
11c 遅延計算結果情報
12 処理部
20 半導体装置
21 クロック源
22 クロックツリー
22a1〜22am クロックバッファ
23 スキャンチェーン
23a1〜23an 記憶素子
23b スキャンイン端子
23c スキャンアウト端子
CK,CKa,CKb クロック信号
d1,d2 遅延時間

Claims (8)

  1. スキャンチェーンを有する半導体装置に含まれる回路要素の接続先と前記回路要素により生じる伝搬遅延とに関する情報を含む回路情報と、クロック源が出力する第1のクロック信号のサイクルごとに前記スキャンチェーンのスキャンイン端子から入力する試験値を示す試験パターン情報とを記憶する記憶部と、
    前記回路情報と前記試験パターン情報とを前記記憶部から取得し、前記回路情報に基づいて、前記クロック源から、前記スキャンチェーンに含まれ直列に接続された複数の記憶素子のそれぞれに前記第1のクロック信号が到達するまでに生じる遅延時間を算出し、前記サイクルごとに、前記試験パターン情報に基づいて、前記複数の記憶素子のうちシフト動作により第1の出力値が変化する予定の第1の記憶素子を選択する第1の処理と、前記複数の記憶素子のそれぞれについて算出された前記遅延時間のうち、前記第1の記憶素子について算出された第1の遅延時間、前記第1のクロック信号を遅延させた第2のクロック信号を前記第1の記憶素子に供給したときの前記第1の記憶素子の前記第1の出力値を算出する第2の処理と、を行う処理部と、
    を有する半導体装置の設計検証支援装置。
  2. 前記処理部は、前記第2の処理によって前記スキャンチェーンのスキャンアウト端子から出力されるスキャンアウト値と、前記スキャンアウト値の期待値とを比較した比較結果に基づいて、第1のエラーの発生の有無を検出する、
    請求項1に記載の半導体装置の設計検証支援装置。
  3. 前記処理部は、前記複数の記憶素子のそれぞれに前記第1のクロック信号が到達したときの、前記第1のクロック信号の信号極性を計算し、前記信号極性をもつ前記第2のクロック信号を前記第1の記憶素子に供給したときの前記第1の記憶素子の前記第1の出力値を算出する、
    請求項1または2に記載の半導体装置の設計検証支援装置。
  4. 前記処理部は、
    前記第1のクロック信号を前記複数の記憶素子のそれぞれのクロック端子に伝搬するクロックツリー内に含まれ、前記第1のクロック信号の前記クロック端子への伝搬を制御するクロック制御回路を前記回路情報から検出し、
    前記第2の処理の際に、前記クロック制御回路が前記第1のクロック信号の前記クロック端子への伝搬を止める状態に変化したか否かを判定した判定結果に基づいて、第2のエラーの発生の有無を検出する、
    請求項1乃至3の何れか一項に記載の半導体装置の設計検証支援装置。
  5. 前記処理部は、
    前記第1のクロック信号を前記複数の記憶素子のそれぞれのクロック端子に伝搬するクロックツリー内に含まれ、前記シフト動作には影響を与えない第1の回路要素を前記回路情報から検出し、
    前記回路情報に基づいて、前記クロック源から前記第1の回路要素に前記第1のクロック信号が到達するまでに生じる第2の遅延時間を算出し、
    前記第2の処理の際に、前記第2の遅延時間、前記第1のクロック信号を遅延させた第3のクロック信号を前記第1の回路要素に供給したときの前記第1の回路要素に関する信号の変化を算出する、
    請求項1乃至3の何れか一項に記載の半導体装置の設計検証支援装置。
  6. 前記シフト動作が行われるスキャンシフト動作区間において、前記第1のクロック信号の始めの2サイクルと最後の1サイクルでは、前記処理部は、前記複数の記憶素子のそれぞれについて算出された前記遅延時間、前記第1のクロック信号を遅延させた前記第2のクロック信号に基づいて、前記複数の記憶素子のそれぞれの出力値を算出する、
    請求項1乃至5の何れか一項に記載の半導体装置の設計検証支援装置。
  7. コンピュータに、
    スキャンチェーンを有する半導体装置に含まれる回路要素の接続先と前記回路要素により生じる伝搬遅延とに関する情報を含む回路情報と、クロック源が出力する第1のクロック信号のサイクルごとに前記スキャンチェーンのスキャンイン端子から入力する試験値を示す試験パターン情報とを記憶部から取得し、
    前記回路情報に基づいて、前記クロック源から、前記スキャンチェーンに含まれ直列に接続された複数の記憶素子のそれぞれに前記第1のクロック信号が到達するまでに生じる遅延時間を算出し、
    前記サイクルごとに、前記試験パターン情報に基づいて、前記複数の記憶素子のうちシフト動作により第1の出力値が変化する予定の第1の記憶素子を選択し、前記複数の記憶素子のそれぞれについて算出された前記遅延時間のうち、前記第1の記憶素子について算出された第1の遅延時間、前記第1のクロック信号を遅延させた第2のクロック信号を前記第1の記憶素子に供給したときの前記第1の記憶素子の前記第1の出力値を算出する、
    処理を実行させる半導体装置の設計検証支援プログラム。
  8. コンピュータが実行する半導体装置の設計検証支援方法であって、
    スキャンチェーンを有する半導体装置に含まれる回路要素の接続先と前記回路要素により生じる伝搬遅延とに関する情報を含む回路情報と、クロック源が出力する第1のクロック信号のサイクルごとに前記スキャンチェーンのスキャンイン端子から入力する試験値を示す試験パターン情報とを記憶部から取得し、
    前記回路情報に基づいて、前記クロック源から、前記スキャンチェーンに含まれ直列に接続された複数の記憶素子のそれぞれに前記第1のクロック信号が到達するまでに生じる遅延時間を算出し、
    前記サイクルごとに、前記試験パターン情報に基づいて、前記複数の記憶素子のうちシフト動作により第1の出力値が変化する予定の第1の記憶素子を選択し、前記複数の記憶素子のそれぞれについて算出された前記遅延時間のうち、前記第1の記憶素子について算出された第1の遅延時間、前記第1のクロック信号を遅延させた第2のクロック信号を前記第1の記憶素子に供給したときの前記第1の記憶素子の前記第1の出力値を算出する、
    半導体装置の設計検証支援方法。
JP2017102507A 2017-05-24 2017-05-24 半導体装置の設計検証支援装置、半導体装置の設計検証支援プログラム及び半導体装置の設計検証支援方法 Active JP6880403B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017102507A JP6880403B2 (ja) 2017-05-24 2017-05-24 半導体装置の設計検証支援装置、半導体装置の設計検証支援プログラム及び半導体装置の設計検証支援方法
US15/984,545 US10482207B2 (en) 2017-05-24 2018-05-21 Verification support apparatus and design verification support method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017102507A JP6880403B2 (ja) 2017-05-24 2017-05-24 半導体装置の設計検証支援装置、半導体装置の設計検証支援プログラム及び半導体装置の設計検証支援方法

Publications (2)

Publication Number Publication Date
JP2018197969A JP2018197969A (ja) 2018-12-13
JP6880403B2 true JP6880403B2 (ja) 2021-06-02

Family

ID=64401287

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017102507A Active JP6880403B2 (ja) 2017-05-24 2017-05-24 半導体装置の設計検証支援装置、半導体装置の設計検証支援プログラム及び半導体装置の設計検証支援方法

Country Status (2)

Country Link
US (1) US10482207B2 (ja)
JP (1) JP6880403B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102453710B1 (ko) * 2018-02-12 2022-10-11 삼성전자주식회사 반도체 장치
TWI712947B (zh) * 2019-06-06 2020-12-11 瑞昱半導體股份有限公司 積體電路設計方法與其非暫態電腦可讀取媒體
KR20230045861A (ko) * 2021-09-29 2023-04-05 삼성전자주식회사 메모리 모듈의 반도체 메모리 장치의 동작을 설계 레벨에서 검증하는 시뮬레이션 방법 및 시스템

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3594582B2 (ja) 2001-12-25 2004-12-02 Necマイクロシステム株式会社 半導体装置
JP2005216012A (ja) * 2004-01-29 2005-08-11 Fujitsu Ltd 設計支援装置、設計支援方法、設計支援プログラムおよび記録媒体
US7079973B2 (en) * 2004-04-06 2006-07-18 Avago Technologies General Ip Pte. Ltd. Apparatus and method for compensating clock period elongation during scan testing in an integrated circuit (IC)
US7516379B2 (en) * 2004-04-06 2009-04-07 Avago Technologies General Ip (Singapore) Pte. Ltd. Circuit and method for comparing circuit performance between functional and AC scan testing in an integrated circuit (IC)
JP2006004509A (ja) 2004-06-17 2006-01-05 Matsushita Electric Ind Co Ltd 半導体集積回路およびハードマクロ回路
JP4815326B2 (ja) * 2006-10-31 2011-11-16 富士通株式会社 集積回路のタイミング不良改善装置、並びに、集積回路のタイミング不良診断装置および方法、並びに、集積回路
JP2012146865A (ja) 2011-01-13 2012-08-02 Renesas Electronics Corp 半導体集積回路、スキャンテスト回路設計方法
US10067189B1 (en) * 2017-03-20 2018-09-04 Xilinx, Inc. Input/output path testing and characterization using scan chains

Also Published As

Publication number Publication date
US20180341724A1 (en) 2018-11-29
JP2018197969A (ja) 2018-12-13
US10482207B2 (en) 2019-11-19

Similar Documents

Publication Publication Date Title
US7461312B2 (en) Digital signature generation for hardware functional test
JP4815326B2 (ja) 集積回路のタイミング不良改善装置、並びに、集積回路のタイミング不良診断装置および方法、並びに、集積回路
JP3851782B2 (ja) 半導体集積回路及びそのテスト方法
JP6880403B2 (ja) 半導体装置の設計検証支援装置、半導体装置の設計検証支援プログラム及び半導体装置の設計検証支援方法
KR20110119749A (ko) 성능 모니터링을 위한 임계―경로 회로
JP5845187B2 (ja) 故障検出システム、取出装置、故障検出方法、プログラム及び記録媒体
Karimi et al. Detection, diagnosis, and recovery from clock-domain crossing failures in multiclock SoCs
US8413102B2 (en) Vectorless IVD analysis prior to tapeout to prevent scan test failure due to voltage drop
JP5024185B2 (ja) 回路動作検証方法及び装置
JP4839856B2 (ja) スキャンチェーン抽出プログラム、スキャンチェーン抽出方法及び試験装置
JP7169044B2 (ja) 半導体集積回路、その設計方法、プログラム及び記憶媒体
JP2021139742A (ja) 半導体集積回路、その回路設計装置、回路設計方法、及び回路設計プログラム
TWI727478B (zh) 測試圖樣產生方法以及失效模型產生方法
US8468409B2 (en) Speed-path debug using at-speed scan test patterns
JP2000250946A (ja) Lsi回路のテスト容易化設計方法および装置ならびにテスト容易化設計処理プログラムを記録したコンピュータ読取り可能な記録媒体
JP2017059185A (ja) スキャンテスト回路及びスキャンテスト装置
JP5625241B2 (ja) 半導体装置及びその試験方法
JP3667146B2 (ja) メモリ用内蔵自己テスト回路
JP3090929B2 (ja) ディレイ故障検査方式
JP2006242856A (ja) テスタシミュレーション装置及びテスタシミュレーション方法
JP2024010862A (ja) テストパターン生成プログラム、テストパターン生成装置及びテストパターン生成方法
US20180074126A1 (en) Apparatus and method for employing mutually exclusive write and read clock signals in scan capture mode for testing digital interfaces
JP7194616B2 (ja) 半導体装置および半導体装置の設計方法
CN112765928A (zh) 测试图样产生方法以及失效模型产生方法
JP2017106826A (ja) スキャンテスト回路生成装置およびスキャンテスト回路生成方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200213

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20200225

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20200225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210319

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210330

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210412

R150 Certificate of patent or registration of utility model

Ref document number: 6880403

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150