JP2012146865A - 半導体集積回路、スキャンテスト回路設計方法 - Google Patents

半導体集積回路、スキャンテスト回路設計方法 Download PDF

Info

Publication number
JP2012146865A
JP2012146865A JP2011005035A JP2011005035A JP2012146865A JP 2012146865 A JP2012146865 A JP 2012146865A JP 2011005035 A JP2011005035 A JP 2011005035A JP 2011005035 A JP2011005035 A JP 2011005035A JP 2012146865 A JP2012146865 A JP 2012146865A
Authority
JP
Japan
Prior art keywords
scan
flip
shift
flop
flops
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.)
Withdrawn
Application number
JP2011005035A
Other languages
English (en)
Inventor
Koichi Haruyama
晃一 春山
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2011005035A priority Critical patent/JP2012146865A/ja
Publication of JP2012146865A publication Critical patent/JP2012146865A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Semiconductor Integrated Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

【課題】スキャンテスト時間を短縮する半導体集積回路のスキャンテスト回路、スキャンテスト回路設計方法を提供する。
【解決手段】スキャンフリップフロップを示すセル間を接続するシフトパスを生成するステップと、信号伝達の制約条件を満たすようにリピータセルをシフトパスに挿入するステップと、スキャンフリップフロップを示すセル及びリピータセルの間のセル間遅延時間を求めるステップと、リピータセルをフリップフロップを示すセルに置換してシフトパスを分割したときのシフトパスの遅延時間を示すシフトパス遅延時間を算出するステップと、シフトパスを分割したときの、スキャンチェーンにテストデータをシフトさせて供給するスキャンシフト時間を算出するステップと、スキャンシフト時間が最短になるシフトパスの分割位置を求めるステップと、シフトパスの分割位置のリピータセルをフリップフロップを示すセルに置換した回路データを生成するステップとを具備する。
【選択図】図3

Description

本発明は、半導体集積回路に関し、特に半導体集積回路のスキャンテスト回路、スキャンテスト回路設計方法に関する。
近年、半導体集積回路の高速化、高集積化が進み、集積回路のテストを容易にするためにスキャン方式のテスト回路が搭載されることが多い。従来の回路設計では、セルの配置は、スキャンチェーンの配置・配線を考慮せずに、回路の機能ブロックでの配線が短くなるように決定される。
通常の回路設計では、スキャンチェーンは、レイアウト前に結線順序を決定されることが多く、レイアウト設計によって、スキャンフリップフロップは結線順に関わらずばらばらに配置されることになる。そのため、レイアウトによるセル配置決定後にスキャンチェーンを繋ぎ換えるリチェーン処理が行なわれ、スキャンシフトパスを短くすることが一般的である。
例えば、特開平10−50847号公報に開示されるスキャンパス回路の自動配置配線方法では、ネットリスト情報に基づき配置、配線を行なった後に、配線による遅延量の計算が行なわれ、スキャンパス接続間にホールド時間制約エラーが検出された場合、各スキャンパスフリップフロップのクロック入力端子とLSIのテストクロック端子間の配線による遅延量が大きい順に接続されるように、各スキャンパスフリップフロップが再配線される。
また、ロジックBISTモードにおけるタイミング解析でエラーを検出すると、タイミングエラーの発生箇所に、セレクタ付きスキャンフリップフロップを挿入配置することで、そのタイミングエラー発生パスをパイプライン化する技術が特開2003−6253号公報に開示されている。
このような再配線では、全てのスキャンフリップフロップ間の配線を短くできるわけではない。したがって、スキャンシフトパス上にデータを伝達するスキャンシフト動作を高速化することができず、スキャンシフト時間がその大半を占めるスキャンテストに要する時間を短縮することができない。
スキャンシフト時間は、シフト動作の周期と、シフト段数との積算によって求められる。スキャンシフト時間は、シフト動作の周期を短縮するか(シフトクロックの高速化)、シフト段数を削減することにより短縮できる。しかし、シフト段数の削減は、データ入出力に使用される外部ピンの増加を招き、また、シフトクロックの高速化は上述のように単純な再配線では困難である。
特開平10−50847号公報 特開2003−6253号公報
本発明は、スキャンテスト時間を短縮する半導体集積回路、スキャンテスト回路設計方法を提供する。
以下に、[発明を実施するための形態]で使用される番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、[特許請求の範囲]の記載と[発明を実施するための形態]との対応関係を明らかにするために付加されたものである。ただし、それらの番号・符号を、[特許請求の範囲]に記載されている発明の技術的範囲の解釈に用いてはならない。
本発明の観点では、スキャンテスト回路設計方法は、スキャンテストを行うためのスキャンチェーンを形成するフリップフロップを含む回路データに基づいて、スキャンシフト時にシフトレジスタを形成するようにスキャンフリップフロップを示すセル(F1〜F6)間を接続するシフトパスを生成するステップと、スキャンフリップフロップを示すセル間の信号伝達の制約条件を満たすようにリピータセル(B1〜B9)をシフトパスに挿入するステップと、スキャンチェーンに含まれるスキャンフリップフロップを示すセル(F1〜F6)及びリピータセル(B1〜B9)の間のセル間遅延時間を求めるステップと、リピータセル(B1〜B9)をフリップフロップを示すセルに置換してシフトパスを分割したときのシフトパスの遅延時間を示すシフトパス遅延時間を算出するステップと、シフトパスを分割したときの、スキャンチェーンにテストデータをシフトさせて供給するスキャンシフト時間を算出するステップと、スキャンシフト時間が最短になるシフトパスの分割位置を求めるステップと、シフトパスの分割位置のリピータセル(B2、B4、B7)をフリップフロップを示すセル(FB2、FB4、FB7)に置換した回路データを生成するステップとを具備する。
本発明の他の観点では、半導体集積回路は、上記のスキャンテスト回路設計方法により設計される半導体集積回路であり、スキャンテストを行うときにスキャンチェーンを形成する複数のスキャンフリップフロップ(F1〜F6)と、スキャンチェーンからテストデータを入力し、テスト結果を前記スキャンチェーンに出力する組み合わせ回路(C10)とを具備する。このスキャンチェーンは、組み合わせ回路(C10)からキャプチャ時にデータを取り込むスキャンフリップフロップ(F1〜F6)と、スキャンフリップフロップ間のシフトパスの信号伝達の制約条件を満たすように配置されたバッファ(B1、B3〜B4、B6、B8〜B9)と、キャプチャ時に組み合わせ回路(C10)からデータを取り込まずに所定データを取り込むダミーフリップフロップ(B2、B4、B7)とを備える。
本発明によれば、スキャンテスト時間の短縮ができる半導体集積回路、スキャンテスト回路設計方法を提供することができる。
本発明の実施の形態に係る半導体集積回路装置の設計システムの概略構成を示す図である。 本発明の実施の形態に係る半導体集積回路装置の設計システムを実現するコンピュータの構成を示す図である。 本発明の実施の形態に係る半導体集積回路装置の設計システムにおける処理手順を示す図である。 処理前の回路構成を示す図である。 フリップフロップF1−F2間のシフト動作レートとシフト段数の組み合わせ情報を示す図である。 フリップフロップF2−F3間のシフト動作レートとシフト段数の組み合わせ情報を示す図である。 フリップフロップF3−F4間のシフト動作レートとシフト段数の組み合わせ情報を示す図である。 フリップフロップF4−F5間のシフト動作レートとシフト段数の組み合わせ情報を示す図である。 フリップフロップF5−F6間のシフト動作レートとシフト段数の組み合わせ情報を示す図である。 処理後の回路構成を示す図である。 処理後の他の回路構成を示す図である。
図面を参照して本発明の実施の形態を説明する。
図1に、本発明の実施の形態に係る半導体集積回路装置の設計システムの概略構成を示す。半導体集積回路装置の設計システムは、設計プログラムを含む設計ツール12と、設計ツール12に入力される回路データなどの入力データ11と、設計ツール12により生成される出力データ13と、セルライブラリ14と、対応リスト15とを具備する。設計ツール12は、セルライブラリ14および対応リスト15を参照して入力データ11から出力データ13を生成する。
半導体集積回路装置の設計システムは、図2に例示されるコンピュータ上で動作するソフトウェアによって実現される。設計システムを搭載するコンピュータは、CPU22と、記憶部23と、入出力部21とを具備する。設計システムにおける入力データ11、出力データ13は、設計ツール12、セルライブラリ14、対応リスト15と共に記憶部23に記憶される。CPU22は、記憶部23に格納される設計ツール12を読み出して実行し、記憶部23に格納されるセルライブラリ14、対応リスト15を参照して入力データ11を処理し、処理された結果を示す出力データ13を記憶部23に格納する。入出力部21は、設計ツール12に対するパラメータを入力し、結果を表示し、外部の補助記憶装置に格納する。
図3に、本発明の実施の形態に係る設計システムにおける処理手順が示される。
入力データであるセル配置後のレイアウトデータが記憶部23に格納されている(ステップS17)。ここでは、レイアウトデータは、タイミングドリブンレイアウト(TDL)後のデータとする。このセル配置後のレイアウトデータは、図4に示されるように、ユーザー論理の回路機能ブロック群を示す組み合わせ回路C10と、フリップフロップF1からフリップフロップF6に至るスキャンチェーンとを含む回路を示す。このスキャンチェーンには、スキャンフリップフロップF1〜F6と、バッファB1〜B9とが含まれる。フリップフロップF1〜F6は、組み合わせ回路C10にテストデータを供給し(接続は図示せず)、テスト結果をデータ端子から取り込む。バッファB1〜B9は、リピータセルであり、タイミングやレイアウト等のスキャンフリップフロップ間の信号伝達の制約条件を満たすようにスキャンシフトパス内に挿入されている。すなわち、フリップフロップF1とフリップフロップF2との間に、バッファB1〜B3が順に接続され、フリップフロップF2とフリップフロップF3との間に、バッファB4〜B7が順に接続される。フリップフロップF3とフリップフロップF4とは、バッファB8を介して接続され、フリップフロップF4とフリップフロップF5とは、バッファB9を介して接続される。フリップフロップF5とフリップフロップF4とは、バッファを介さずに接続される。
この配置後のレイアウトデータに基づいて、スキャンシフトパスの遅延時間情報が抽出される(ステップS11)。すなわち、スキャンチェーンの回路構成を抽出し、スキャンシフトパス間に接続される各セルについて、フリップフロップ・フリップフロップ間、フリップフロップ・バッファ間、バッファ・バッファ間、バッファ・フリップフロップ間の遅延情報がそれぞれ抽出される。
ここでは、図4に示されるように、フリップフロップF1からバッファB1までの遅延時間は5ns、バッファB1からバッファB2までの遅延時間およびバッファB2からバッファB3までの遅延時間は4ns、バッファB3からフリップフロップF2までの遅延時間は2nsと抽出される。フリップフロップF2からバッファB4までの遅延時間は8ns、バッファB4からバッファB5までの遅延時間は2ns、バッファB5からバッファB6までの遅延時間は3ns、バッファB6からバッファB7までの遅延時間は4ns、バッファB7からフリップフロップF3までの遅延時間は8nsと抽出される。フリップフロップF3からバッファB8までの遅延時間は5ns、バッファB8からフリップフロップF4までの遅延時間は4nsと抽出される。フリップフロップF4からバッファB9までの遅延時間およびバッファB9からフリップフロップF5までの遅延時間は5nsと抽出される。フリップフロップF5からフリップフロップF6までの遅延時間は6nsと抽出される。
また、各スキャンシフトパス間の遅延時間のうちの最大値を示す最大パス遅延値が抽出される。最大パス遅延値は、回路のスキャンシフトパスのシフト動作レートの最適化の限界値を示すことになる。図4に示されるスキャンチェーンの場合、フリップフロップF2・バッファB4間と、バッファB7・フリップフロップF3間のパス遅延時間が共に8nsで最大パス遅延値となる。
各セル間の遅延情報が抽出されると、その遅延情報に基づいて、各スキャンシフトパス間において、フリップフロップに置換されるバッファの組み合わせ毎に、パス遅延が順次計算される(ステップS12)。ここでは、フリップフロップ間毎に区切って計算される。フリップフロップ間において、置換なし(0段)、1個のバッファが置換されるときのバッファの組み合わせ(1段)、2個のバッファが置換されるときのバッファの組み合わせ(2段)というように、全てのバッファがフリップフロップに置換されるまで順に、置換後の遅延時間が算出される。
フリップフロップF1−F2間の処理を例に具体的に説明する。フリップフロップF1の出力は、バッファB1、B2、B3を介してフリップフロップF2に接続される。バッファB1、B2、B3を置換せずに、そのまま動作させると、スキャンシフトの動作レートは、フリップフロップF1−F2間の遅延である15nsとなる(図5A−0段)。
バッファB1をフリップフロップFB1に置換すると、シフト段数は1段増加し、シフトパスはフリップフロップF1−FB1間と、フリップフロップFB1−F2間とに分割される。フリップフロップFB1の前段(F1−FB1間)の遅延時間は5nsとなり、フリップフロップFB1の後段(FB1-F2間)の遅延時間は10nsとなる(<B1>=(5、10))。スキャンシフト動作は、大きな遅延に合わせて動作する必要があるため、フリップフロップF1−F2間のバッファB1をフリップフロップに置換したときのスキャンシフトの動作レート(可能動作レート)は、10nsとなる。
バッファB2をフリップフロップFB2に置換すると、シフト段数は1段増加し、シフトパスはフリップフロップF1−FB2間と、フリップフロップFB2−F2間とに分割される。フリップフロップFB2の前段(F1−FB2間)の遅延時間は9nsとなり、フリップフロップFB2の後段(FB2-F2間)の遅延時間は6nsとなる(<B2>=(9、6))。したがって、フリップフロップF1−F2間のバッファB2をフリップフロップに置換したときのスキャンシフトの動作レート(可能動作レート)は、9nsとなる。
バッファB3をフリップフロップFB3に置換すると、シフト段数は1段増加し、シフトパスはフリップフロップF1−FB3間と、フリップフロップFB3−F2間とに分割される。フリップフロップFB3の前段(F1−FB3間)の遅延時間は13nsとなり、フリップフロップFB3の後段(FB3-F2間)の遅延時間は2nsとなる(<B3>=(13、2))。したがって、フリップフロップF1−F2間のバッファB3をフリップフロップに置換したときのスキャンシフトの動作レート(可能動作レート)は、13nsとなる。
それぞれのバッファをフリップフロップ化したときの最大の遅延値である可能動作レート(10ns、9ns、13ns)のうちの最小値である9nsが、シフト段数を1段増加するときのF1−F2間の最小シフト動作レートとして抽出される。この最小シフト動作レート9nsは、フリップフロップF1〜F2間で、シフトパスを途中で1段区切るときに、最もシフト動作レートを短縮可能な値である。
バッファB1、B2をフリップフロップFB1、FB2に置換すると、シフト段数は2段増加し、シフトパスはフリップフロップF1−FB1間、FB1−FB2間、FB2−F2間に分割される。フリップフロップFB1の前段(F1−FB1間)の遅延時間は5nsとなり、フリップフロップFB1の後段かつフリップフロップFB2の前段(FB1−FB2間)の遅延時間は4nsとなり、フリップフロップFB2の後段(FB2-F2間)の遅延時間は6nsとなる(<B1,B2>=(5、4、6))。したがって、フリップフロップF1−F2間のバッファB1、B2をフリップフロップに置換したときのスキャンシフトの動作レート(可能動作レート)は、6nsとなる。
バッファB1、B3をフリップフロップFB1、FB3に置換すると、シフト段数は2段増加し、シフトパスはフリップフロップF1−FB1間、FB1−FB3間、FB3−F2間に分割される。フリップフロップFB1の前段(F1−FB1間)の遅延時間は5nsとなり、フリップフロップFB1の後段かつフリップフロップFB3の前段(FB1−FB3間)の遅延時間は8nsとなり、フリップフロップFB3の後段(FB3-F2間)の遅延時間は2nsとなる(<B1,B3>=(5、8、2))。したがって、フリップフロップF1−F2間のバッファB1、B3をフリップフロップに置換したときのスキャンシフトの動作レート(可能動作レート)は、8nsとなる。
バッファB2、B3フリップフロップFB2、FB3に置換すると、シフト段数は2段増加し、シフトパスはフリップフロップF1−FB2間、FB2−FB3間、FB3−F2間に分割される。フリップフロップFB2の前段(F1−FB2間)の遅延時間は9nsとなり、フリップフロップFB2の後段かつフリップフロップFB3の前段(FB2−FB3間)の遅延時間は4nsとなり、フリップフロップFB3の後段(FB3-F2間)の遅延時間は2nsとなる(<B2、B3>=(9、4、2))。したがって、フリップフロップF1−F2間のバッファB2、B3をフリップフロップに置換したときのスキャンシフトの動作レート(可能動作レート)は、9nsとなる。
それぞれのバッファをフリップフロップ化したときの最大の遅延値である可能動作レート(6ns、8ns、9ns)のうちの最小値である6nsが、シフト段数を2段増加するときのF1−F2間の最小シフト動作レートとして抽出される。この最小シフト動作レート6nsは、フリップフロップF1〜F2間で、シフトパスを途中で2段に区切るときに、最もシフト動作レートを短縮可能な値である。
バッファB1、B2、B3をフリップフロップFB1、FB2、FB3に置換すると、シフト段数は3段増加し、シフトパスはフリップフロップF1−FB1間、FB1−FB2間、FB2−FB3間、FB3−F2間に分割される。フリップフロップFB1の前段(F1−FB1間)の遅延時間は5nsとなり、フリップフロップFB1の後段かつフリップフロップFB2の前段(FB1−FB2間)の遅延時間は4nsとなり、フリップフロップFB2の後段かつフリップフロップFB3の前段(FB2−FB3間)の遅延時間は4nsとなり、フリップフロップFB3の後段(FB3−F2間)の遅延時間は2nsとなる(<B1、B2、B3>=(5、4、4、2))。したがって、フリップフロップF1−F2間のバッファB1、B2、B3をフリップフロップに置換したときのスキャンシフトの動作レート(可能動作レート)は、5nsとなる。
シフト段数を3段増加する場合は、1通りの組み合わせしかないため、シフト段数を3段増加するときのF1−F2間の最小シフト動作レートは、5nsとなる。この最小シフト動作レート5nsは、フリップフロップF1〜F2間で、シフトパスを途中で3段に区切るときに、最もシフト動作レートを短縮可能な値である。
次に、スキャンテスト時のシフト動作は、遅延の大きいクリティカルなシフトパスの遅延値で動作する必要があるため、上記のようにバッファをフリップフロップ化して得られる遅延時間を示す組み合わせ情報から段数毎に最小のシフト動作レートを算出する。最小シフト動作レートは、増加シフト段数毎に、可能動作レートの最小値を求めるとよい。したがって、最小動作レートは、シフト段数が1段増加の場合には9ns、シフト段数が2段増加の場合には6ns、シフト段数が3段増加の場合には5nsとなる。
以上のように、全てのシフト段数の組み合わせについて行い、各シフト段数における最小シフト動作レートを算出する。図5B〜5Eに示されるように、各スキャンフリップフロップ間で同様の処理が行われ、各最小シフト動作レートが算出される。ここでは、処理量削減のためにフリップフロップ間毎に区切って処理するように説明したが、全区間を対象にバッファの置換位置の組み合わせを求めてもよい。
算出された結果は、図5A〜図5Eに示されるように、フリップフロップに置換するバッファを示すFF化位置に対応して、シフトパス遅延の組み合わせ、すなわち、新しいシフトパス遅延が求められる。新しいシフトパスにおける最大の遅延を有するシフトパスがそのシフトパスの動作速度を制限することになり、その動作速度を示すそれぞれの新しいシフトパスにおける可能動作レートが求められる。フリップフロップ間の挿入段数毎に可能動作レートの最小値が求められ、この最小値が、そのフリップフロップ間において挿入段数分のバッファがフリップフロップに置換されたときの最小シフト動作レートとなる。
したがって、図4に示されるスキャンチェーンの場合、フリップフロップF1−F2間では、図5Aに示されるように、元の回路の最小動作レートが15nsであるが、バッファB2をフリップフロップ化することによって(シフト段数1段増加)、最小シフト動作レートは9nsとなる。バッファB1、B2の2個のバッファをフリップフロップ化することによって(シフト段数2段増加)、最小シフト動作レートは6nsとなる。さらに、全てのバッファB1、B2、B3をフリップフロップ化すると(シフト段数3段増加)、最小シフト動作レートは5nsとなる。
フリップフロップF2−F3間では、図5Bに示されるように、元の回路の最小動作レートが25nsであるが、バッファB6をフリップフロップ化することによって(シフト段数1段増加)、最小シフト動作レートは13nsとなり、バッファB4、B7をフリップフロップ化することによって(シフト段数2段増加)、最小シフト動作レートは9nsとなり、バッファB4、B5、B7をフリップフロップ化することによって(シフト段数3段増加)、最小シフト動作レートは8nsとなる。全てのバッファB4、B5、B6、B7をフリップフロップ化しても(シフト段数4段増加)、最小シフト動作レートは8nsとなる。
フリップフロップF3−F4間では、図5Cに示されるように、バッファB8をフリップフロップ化することによって(シフト段数1段増加)、最小シフト動作レート9nsを5nsにすることができる。フリップフロップF4−F5間では、図5Dに示されるように、バッファB9をフリップフロップ化することによって(シフト段数1段増加)、最小シフト動作レート10nsを5nsにすることができる。フリップフロップF5−F6間では、バッファを介在しないため、図5Eに示されるように、最小シフト動作レートは3nsである。
次に、バッファをフリップフロップに置換して増加するシフト段数と、そのときの最小シフト動作レートとを求め、スキャンシフト時間を算出する(ステップS13)。ここでは、まず上述のように得られた最小シフト動作レートを長い順に並べ、重複を削除する。図5A〜図5Eに示される値では、25、15、13、10、9、8、…となる。しかし、最小シフト動作レートは、スキャンシフトパスの遅延時間情報の1つとして求められた最大パス遅延値8nsを下回る値にまで短縮することはできない。そのため、シフト動作レートの候補は、25、15、13、10、9、8の6種類となる。
バッファをフリップフロップに置換しない場合のシフト動作レートは25nsであり、シフト段数は6段である。このときのスキャンシフト時間は、25ns×6段=150nsと計算される。
シフト動作レート15nsで動作させるためには、遅延時間が25nsであるシフトパス(フリップフロップF2−F3間)を分割するとよいので、バッファB6(またはバッファB5)をフリップフロップに置換し、シフト段数を1段増加することにより実現可能となる。したがって、スキャンシフト時間は、15ns×(6+1)段=105nsと計算される。
シフト動作レート13nsで動作可能とするためには、遅延時間25nsのシフトパス(フリップフロップF2−F3間)および遅延時間15nsのシフトパス(フリップフロップF1−F2間)を分割して遅延時間を13ns以下にするとよい。したがって、バッファB2(またはバッファB1/B3)と、バッファB6とをフリップフロップに置換し、シフト段数を2段増加することにより実現できる。その場合、スキャンシフト時間は、13ns×(6+2)段=104nsとなる。
シフト動作レート10nsで動作可能とするためには、遅延時間15nsのシフトパス(フリップフロップF1−F2間)を2つのシフトパスに分割し、遅延時間25nsのシフトパス(フリップフロップF2−F3間)を3つのシフトパスに分割する必要がある。バッファB2(またはB1)と、バッファB4、B7(またはバッファB5、B7)とをフリップフロップに置換し、シフト段数を3段増加することにより実現できる。スキャンシフト時間は、10ns×(6+3)段=90nsとなる。
シフト動作レート9nsで動作可能とするためには、遅延時間15nsのシフトパス(フリップフロップF1−F2間)を2つのシフトパスに分割し、遅延時間25nsのシフトパス(フリップフロップF2−F3間)を3つのシフトパスに分割し、遅延時間10nsのシフトパス(フリップフロップF4−F5間)を2つのシフトパスに分割する必要がある。バッファB2と、バッファB4、B7と、バッファB9とをフリップフロップに置換し、シフト段数を4段増加することにより実現できる。スキャンシフト時間は、9ns×(6+4)段=90nsとなる。
さらに、シフト動作レート8nsで動作可能とするためには、遅延時間15nsのシフトパス(フリップフロップF1−F2間)を3つのシフトパスに分割し、遅延時間25nsのシフトパス(フリップフロップF2−F3間)を4つのシフトパスに分割し、遅延時間9nsのシフトパス(フリップフロップF3−F4間)を2つのシフトパスに分割し、遅延時間10nsのシフトパス(フリップフロップF4−F5間)を2つのシフトパスに分割する必要がある。バッファB1、B2と、バッファB4、B5、B7と、バッファB8と、バッファB9とをフリップフロップに置換し、シフト段数を7段増加することにより実現できる。スキャンシフト時間は、8ns×(6+7)段=104nsとなる。
さらに8ns未満に短縮してもフリップフロップF2−F3間にバッファを置換することによってパス分割できない遅延時間8nsのパスがあり、動作レートを短縮することはできない。
スキャンシフト段数が求められると、スキャンシフトパスの段数の増加分の情報からスキャンシフト時間が計算される。さらに、最もスキャンシフト時間が短くなるシフト動作レートが選択される(ステップS14)。スキャンシフト時間は、上記のスキャンシフト段数の増分と、シフト動作レートから下記のように計算される。
(スキャンシフト時間)=(シフト動作レート)×(スキャンシフト段数)
150ns = 25ns × 6段
105ns = 15ns × (6+1)段
104ns = 13ns × (6+2)段
90ns = 10ns × (6+3)段
90ns = 9ns × (6+4)段
104ns = 8ns × (6+7)段
この計算結果からスキャンシフト動作レートが10nsまたは9nsのとき、スキャンシフト時間は最短の90nsとなることがわかる。同じスキャンシフト時間であれば、(1)なるべくフリップフロップ化するバッファが少なくなるように、(2)シフト動作レートが長くなるように(動作周波数が低くなるように)、選択されることが好ましい。すなわち、スキャンシフト段数が少なくシフト動作レートが長い方を選択する。したがって、ここではスキャンシフト段数が3段増加してシフト動作レートが10nsになるスキャンシフトパスの分割が選択される。
最短スキャンシフト時間が求められると、そのシフト動作レートを実現するために置換されるべきバッファが選択され、フリップフロップに置換される(ステップS15)。すなわち、スキャンシフトパスのタイミングの最適化を行なう。ここでは、最短スキャンシフト時間90nsとなるように、3個のバッファをフリップフロップに置換する。すなわち、フリップフロップF1−F2間のバッファB2をフリップフロップFB2に置換してこの区間の可能動作レートを9nsとし、フリップフロップF2−F3間のバッファB4およびB7をフリップフロップFB4およびFB7に置換してこの区間の可能動作レートを9nsとする。フリップフロップF3−F4間では可能動作レートは9ns、フリップフロップF4−F5間では可能動作レートは10ns、フリップフロップF5−F6間では可能動作レートは6nsであるからシフト動作レートの条件を満足する。このように、バッファをフリップフロップに置換した結果を示す回路が図6に示される。このように置換することにより、シフト段数は9段となり、各フリップフロップ間の遅延時間は、図6に示されるように、9ns、6ns、8ns、9ns、8ns、9ns、10ns、6nsとなる。ここでは、フリップフロップF2−F3間の可能動作レートを最小シフト動作レートの9nsとして置換されるバッファが選択されたが、スキャンシフト動作レートが10nsであるから、バッファB5およびB7をフリップフロップFB5およびFB7に置換してフリップフロップF2−F3間の可能動作レートを10nsとしてもよい。
図6に示される回路では、バッファから置換されたフリップフロップは、シフトするデータをシフトクロックに同期して取り込んで出力するフリップフロップとしている。置換後のフリップフロップをキャプチャ動作も行なうスキャンフリップフロップとするときには、図7に示されるように、キャプチャ動作時に所定の値を取り込むようにユーザー機能接続用のデータ端子をレベル固定論理に接続する必要がある。図7では、データ“0”を取り込むように、フリップフロップの入力端子は、接地電圧に接続されている。
このように、所定のバッファがフリップフロップに置換されたレイアウトデータは、記憶部23に格納され(ステップS18)、最適化処理は終了する。
なお、最大パス遅延値8nsを求めておくと、この条件以上の短縮はできないため、ステップS12において分割組み合わせ処理の一部を省略することも可能である。例えば、フリップフロップF1−F2間では、バッファB1、B2をフリップフロップ化すると、最小シフト動作レート6nsが得られるため、他の組み合わせを省略してもよい。また、3段以上の分割をしても、段数の増加が見込まれるだけであり、これも省略することができる。このように処理を省略することにより、バッファをフリップフロップに置換する組み合わせ情報が減少し、計算量(計算時間)とメモリ使用量の増加を抑制しながら、本発明が適用可能となる。
上記実施の形態では、セル配置(TDL:タイミングドリブンレイアウト)後のレイアウトデータを入力データとしているが、CTS(Clock Tree Synthesis:クロックツリー合成)後や配線後のレイアウトデータでも適用可能である。また、スキャンシフトパスの最適化の観点からスキャンチェーンのリチェーン処理後に適用されることが好ましい。
さらに、近年の回路装置では、複数本(例えば、数百〜数千本)のスキャンチェーンを有する回路が頻繁に設計されている。本発明は、複数のスキャンチェーンを有する回路にも適用可能である。また、スキャンシフトパスを分割する場合に、置換されるリピータセルはバッファで示したが、インバータセルでも本発明は適用可能である。さらに、置換されるリピータセルの選択方法は、スキャンシフトパスに含まれるセル間の遅延時間に基づいて選択され、上記手順に限定されることはない。各スキャンシフトパス間の遅延のうち、最大のパス遅延値を抽出する処理は、パス遅延の組み合わせ情報を作成する際に抽出してもよい。また、スキャンフリップフロップF5−F6間のように、バッファが挿入されていないスキャンシフトパスを除外して、セル間の組み合わせ遅延を算出するようにしてもよい。
上述のように、本発明によれば、半導体集積回路のスキャンテスト回路設計手法において、スキャンシフトパス間に挿入されている1つ以上のバッファをフリップフロップに置換して、スキャンシフトパスを分割することによって短縮できる遅延時間と増加するシフト段数とに基づいて、最適な置換位置を求め、シフト動作の周期を短縮することができる。したがって、スキャンテストに費やされる時間を短縮することができる。
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
11 入力データ
12 設計ツール
13 出力データ
14 セルライブラリ
15 対応リスト
21 入出力部
22 CPU
23 記憶部
B1〜B9 バッファ
C10 組み合わせ回路
F1〜F6 フリップフロップ
FB2、FB4、FB7 フリップフロップ

Claims (10)

  1. スキャンテストを行うためのスキャンチェーンを形成するフリップフロップを含む回路データに基づいて、スキャンシフト時にシフトレジスタを形成するようにスキャンフリップフロップを示すセル間を接続するシフトパスを生成するステップと、
    前記スキャンフリップフロップを示すセル間の信号伝達の制約条件を満たすようにリピータセルを前記シフトパスに挿入するステップと、
    前記スキャンチェーンに含まれる前記スキャンフリップフロップを示すセル及び前記リピータセルの間のセル間遅延時間を求めるステップと、
    前記リピータセルをフリップフロップを示すセルに置換して前記シフトパスを分割したときのシフトパスの遅延時間を示すシフトパス遅延時間を算出するステップと、
    前記シフトパスを分割したときの、前記スキャンチェーンにテストデータをシフトさせて供給するスキャンシフト時間を算出するステップと、
    前記スキャンシフト時間が最短になる前記シフトパスの分割位置を求めるステップと、
    前記シフトパスの分割位置の前記リピータセルを前記フリップフロップを示すセルに置換した回路データを生成するステップと
    を具備する
    スキャンテスト回路設計方法。
  2. 前記リピータセルはバッファ回路である
    請求項1に記載のスキャンテスト回路設計方法。
  3. 前記セル間遅延時間の最大値を示す最大パス遅延値を求めるステップをさらに具備し、
    前記シフトパス遅延時間を算出するステップは、前記スキャンフリップフロップ間の前記シフトパスの遅延時間が前記最大パス遅延値を超えない前記シフトパスを対象から除外して前記分割セル間遅延時間を算出する
    請求項1または請求項2に記載のスキャンテスト回路設計方法。
  4. 回路データを生成するステップは、前記シフトパスの分割位置の前記リピータセルを前記スキャンテストのキャプチャ動作時に固定論理を取り込むスキャンフリップフロップを示すセルに置換する回路データを生成する
    請求項1から請求項3のいずれかに記載のスキャンテスト回路設計方法。
  5. 回路データを生成するステップは、前記シフトパスの分割位置の前記所定のセルを前記スキャンテストのキャプチャ動作時に前記組み合わせ回路からデータを取り込まずにデータを保持するフリップフロップを示すセルに置換する回路データを生成する
    請求項1から請求項3のいずれかに記載のスキャンテスト回路設計方法。
  6. 前記スキャンシフト時間は、前記シフトパスの遅延値の最大値とシフト段数とを乗じて積算される
    請求項1から請求項5のいずれかに記載のスキャンテスト回路設計方法。
  7. 前記シフトパス遅延時間を算出するステップは、
    前記スキャンフリップフロップを示すセル間毎に、置換する前記リピータセルの数に関連付けて前記シフトパスを分割したときの各シフトパスにおける遅延時間を求めるステップと、
    前記置換する前記リピータセルの数が同数である前記スキャンフリップフロップを示すセル間の遅延時間を、前記リピータセルの置換する組み合わせによって算出される前記各シフトパスにおける遅延時間のうちの最長となる遅延時間とし、前記スキャンフリップフロップを示すセル間における前記リピータセルの数を置換したときの最小シフト動作レートとして求めるステップと
    を備える
    請求項1から請求項6のいずれかに記載のスキャンテスト回路設計方法。
  8. 請求項1から請求項7のいずれかに記載のスキャンテスト回路設計方法によって生成される半導体集積回路。
  9. スキャンテストを行うときにスキャンチェーンを形成する複数のスキャンフリップフロップと、
    前記スキャンチェーンからテストデータを入力し、テスト結果を前記スキャンチェーンに出力する組み合わせ回路と
    を具備し、
    前記スキャンチェーンは、
    組み合わせ回路からキャプチャ時にデータを取り込むスキャンフリップフロップと、
    前記スキャンフリップフロップ間のシフトパスの信号伝達の制約条件を満たすように配置されたバッファと、
    キャプチャ時に組み合わせ回路からデータを取り込まずに所定データを取り込むダミースキャンフリップフロップと
    を備える
    請求項8に記載の半導体集積回路。
  10. 請求項1から請求項7のいずれかに記載のスキャンテスト回路設計方法をコンピュータに実行させるプログラム。
JP2011005035A 2011-01-13 2011-01-13 半導体集積回路、スキャンテスト回路設計方法 Withdrawn JP2012146865A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011005035A JP2012146865A (ja) 2011-01-13 2011-01-13 半導体集積回路、スキャンテスト回路設計方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011005035A JP2012146865A (ja) 2011-01-13 2011-01-13 半導体集積回路、スキャンテスト回路設計方法

Publications (1)

Publication Number Publication Date
JP2012146865A true JP2012146865A (ja) 2012-08-02

Family

ID=46790129

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011005035A Withdrawn JP2012146865A (ja) 2011-01-13 2011-01-13 半導体集積回路、スキャンテスト回路設計方法

Country Status (1)

Country Link
JP (1) JP2012146865A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106872875A (zh) * 2015-11-30 2017-06-20 精工爱普生株式会社 电子部件输送装置以及电子部件检查装置
JP2018010005A (ja) * 2014-10-29 2018-01-18 イノチオ インクInnotio Inc. Icチップテスト装置、icチップテスト方法、及びicチップテストシステム
US10482207B2 (en) 2017-05-24 2019-11-19 Fujitsu Limited Verification support apparatus and design verification support method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018010005A (ja) * 2014-10-29 2018-01-18 イノチオ インクInnotio Inc. Icチップテスト装置、icチップテスト方法、及びicチップテストシステム
CN106872875A (zh) * 2015-11-30 2017-06-20 精工爱普生株式会社 电子部件输送装置以及电子部件检查装置
US10482207B2 (en) 2017-05-24 2019-11-19 Fujitsu Limited Verification support apparatus and design verification support method

Similar Documents

Publication Publication Date Title
US20080104552A1 (en) Power consumption optimizing method for semiconductor integrated circuit and semiconductor designing apparatus
JP2012146865A (ja) 半導体集積回路、スキャンテスト回路設計方法
US8839061B2 (en) System and method for scan chain re-ordering
US7823035B2 (en) System and methods of balancing scan chains and inserting the balanced-length scan chains into hierarchically designed integrated circuits
US8943457B2 (en) Simulating scan tests with reduced resources
JP5160039B2 (ja) 半導体装置及びそのテスト回路の追加方法
US10203370B2 (en) Scheme for masking output of scan chains in test circuit
JP4473163B2 (ja) スキャンチェーンのホールドエラー解消方法
US20220390516A1 (en) Computer-readable recording medium storing analysis program, analysis method, and analysis device
US20070022338A1 (en) Sequential Scan Technique for Testing Integrated Circuits With Reduced Power, Time and/or Cost
JPWO2009084424A1 (ja) 半導体テスト装置、半導体装置および試験方法
US20030188239A1 (en) Compacted test plan generation for integrated circuit testing, test sequence generation, and test
JP2013019694A (ja) スキャンテスト回路およびスキャンテスト回路生成方法
US20150074630A1 (en) Layout method of semiconductor integrated circuit and recording medium
JP4684942B2 (ja) 半導体装置及び観測用フリップフロップの配置方法
JP2012159371A (ja) スキャンチェーン回路、スキャンチェーン構築方法及び試験装置
CN117933156B (zh) 基于门级网表的毛刺功耗优化方法、电子设备和介质
US12007440B1 (en) Systems and methods for scan chain stitching
JP5447209B2 (ja) スキャンチェーン形成方法、プログラム及び設計支援装置
Lu et al. Register on MEsh (ROME): A novel approach for clock mesh network synthesis
JP2008226069A (ja) 論理回路、半導体設計支援装置および半導体設計支援方法
JP2017106826A (ja) スキャンテスト回路生成装置およびスキャンテスト回路生成方法
JP2009002868A (ja) テスト装置、パタン生成装置、テスト方法、及びパタン生成方法
US20130191800A1 (en) Timing constraint generating support apparatus and method of supporting generation of timing constraint
US20090044064A1 (en) Scan path circuit and semiconductor integrated circuit

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20140401