JP4223319B2 - Semiconductor integrated circuit and test generation program - Google Patents
Semiconductor integrated circuit and test generation program Download PDFInfo
- Publication number
- JP4223319B2 JP4223319B2 JP2003111407A JP2003111407A JP4223319B2 JP 4223319 B2 JP4223319 B2 JP 4223319B2 JP 2003111407 A JP2003111407 A JP 2003111407A JP 2003111407 A JP2003111407 A JP 2003111407A JP 4223319 B2 JP4223319 B2 JP 4223319B2
- Authority
- JP
- Japan
- Prior art keywords
- embedded core
- test
- output
- flip
- circuit
- 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.)
- Expired - Fee Related
Links
Images
Description
【0001】
【発明の属する技術分野】
本発明は、埋め込みコアを内蔵した半導体集積回路のテストを容易に行うための半導体集積回路およびテスト生成プログラムに関するものである。
【0002】
【従来の技術】
近年、半導体製造の多層配線技術や微細化技術の向上により、半導体集積回路の1チップにマイクロプロセッサ、DSP、アナログ回路、メモリなどの機能コアを搭載して、1つのシステムが実現可能となっている。一方、1チップの搭載ゲート規模が大きくなったことにより、製造後の半導体集積回路のテスト方法が問題となっている。
【0003】
通常、半導体集積回路をテストする場合、アンド(AND)回路,オア(OR)回路,フリップフロップなどの論理回路を用いて設計するカスタムロジック部と、マイクロプロセッサ、DSP(Digital Signal Processor)、アナログ回路、メモリなどの機能コアとは、別のテスト方法が用いられる。
【0004】
カスタムロジック部のテストは、高い故障検出率を得るために、スキャンパステスト方式が用いられる。カスタムロジック部の論理回路は、一般的に、フリップフロップなどの順序回路と、AND回路、OA回路などの組合せ回路で構成される。スキャンパステスト方式では、カスタムロジック部の論理回路を順序回路と組合せ回路の2つに分けてテストする。
【0005】
具体的には、カスタムロジック部の全て、もしくは一部のフリップフロップをセレクタ付のスキャンフリップフロップに置き換えるか、フリップフロップの前段にセレクタを挿入する。そして、これらのフリップフロップをチェーン接続してシフトレジスタ(スキャンチェーン)を構成する。テスト時には、このシフトレジスタに組合せ回路のテストパターンをシリアルに入力し、シフト動作により、フリップフロップにテストパターンを設定する。そして、1クロックだけ通常動作を行い、組合せ回路を動作させてフリップフロップに組合せ回路の動作結果をラッチする。ふたたび、シフト動作により設定したテストパターンにより動作した組合せ回路の出力結果を外部端子に出力する。この出力を予め準備した期待値と比較する。このような動作を繰り返すことにより、テスト動作か通常動作を指定する入力端子、シリアルにテストパターンを入力するテストパターンの入力端子およびテスト結果を出力する出力端子を追加するだけで、カスタムロジック部のテストを行うことができる。
【0006】
また、スキャンパステスト方式の回路においては、スキャンパス回路の構築ならびにテストベクタの生成を、EDA(Electronic Design Automation)ツールによって自動的に行うことが可能である。これによって、回路設計者は通常のシステム動作を実現する為の回路設計に注力でき、テスト回路およびテストパターンを設計する手間を大幅に削減できる。
【0007】
スキャンパス回路を有さない一般的な同期設計の論理回路をスキャンパス方式の回路に変換する手順を説明する。まず、カスタムロジック部の各フリップフロップの前段にセレクタを挿入する。各セレクタのセレクト端子とテストモード切替信号を入力する外部端子と接続する。テストモード切替信号がテストモードを示す信号の場合に選択されるセレクタの入力には、テストパターンを入力する入力端子、他のフリップフロップの端子を接続する。テストモード切替信号が通常モードを示す信号の場合に選択されるセレクタの入力には、セレクタを挿入する前にフリップフロップに入力されていた信号を接続する。そして、最終段となるフリップフロップの出力を外部端子に接続する。これにより、スキャンチェーンを構成することができる。
【0008】
なお、スキャンパス回路においては、セレクタとフリップフロップを統合した機能セルであるスキャンフリップフロップを用いるのが一般的である。この場合の変換手順を説明する。まず、カスタムロジック部の各フリップフロップをスキャンフリップフロップに置き換える。続いて、全スキャンフリップの選択端子にテストモード切替信号を接続する。そして、テストモード切替信号がテストモードを示す信号の場合に選択されるセレクタの入力には、テストパターンを入力する入力端子、他のスキャンフリップフロップの端子を、テストモード切替信号が通常モードを示す信号の場合に選択されるセレクタの入力には、スキャンフリップフロップに置き換える前にフリップフロップに入力されていた信号を接続する。そして、最終段となるスキャンフリップフロップの出力を外部端子に接続する。このように、スキャンフリップフロップの出力による経路が、チェーン構造になる様に接続することで、スキャンパス方式回路への変換が完了する。
【0009】
つぎに、1または複数の機能コアを有する埋め込みコアを効率よくテストする従来技術を説明する。従来の半導体集積回路は、複数のマルチプレクサで構成されたテスト・モード・マトリクスと、埋め込みコアと、カスタムロジック部と、半導体集積回路の外部端子とカスタムロジック部のインターフェースを有するI/O回路とを備えている。テスト・モード・マトリクスは、複数のマルチプレクサで構成され、埋め込みコアと、カスタムロジック部と、I/O回路とを相互接続する。I/O回路を外部試験器に接続することにより、標準のテスト・ベクトルを使用して埋め込みコアのテストと通常の回路オペレーションを行う。テスト・モード・マトリックスは、外部端子からI/O回路を介して伝達される制御信号により選択された特定のモードに基づいて、埋め込みコアとカスタムロジック部との接続を行うようにしている(たとえば、特許文献1参照)。
【0010】
また、別の半導体集積回路では、複数の機能コアをテストするために、2つのモードを備えている。第1モードは、各コアがこれらの各コアをテストモードに制御するためのそれぞれのコアテスト制御ブロック(TCB)に関連づけられ、各機能コアがテスト制御データを保持するためのコアシフトレジスタを備え、前記機能コアがチェーン内に直列にリンクされ、前記各機能コアがテスト制御データをチェーンに沿ってシフトする。第2モードは、テスト制御データを関連するコアに供給する。チェーンにシステムTCBを設け、そのシステムTCBの出力端子を各機能コアに接続して、システムTCBがある特定のテスト制御データセットを受取ったら、機能コアにシステムテストホールド信号を供給して、機能コアを第1モードか、第2モードのいずれかに切り換えるようにしている(たとえば、特許文献2参照)。
【0011】
【特許文献1】
特開平09−054705号公報
【特許文献2】
特開平11−525783号公報
【0012】
【発明が解決しようとする課題】
前者の従来技術では、I/O回路を介して入力される制御信号に基づいてテスト・モード・マトリクスが埋め込みコアとカスタムロジック部を接続してテストを行うことで、半導体集積回路の完全なテスタビリティを維持することができる。
【0013】
また、後者の従来技術のアーキテクチャは、各機能コアにテスト制御データを供給するための、境界走査テスト標準規格にしたがう機能コアの複雑な状態マシーンを必要とせず、また、様々な機能コアとシステムとの間の相互接続部の数を抑えることができる。
【0014】
しかしながら、両者の従来技術では、半導体集積回路内のカスタムロジック部と埋め込みコアとを別々にテストしなければならない。そのため、カスタムロジック部と埋め込みコアそれぞれに、テスト用専用端子やテスト回路を備えなければならないという問題があった。すなわち、半導体集積回路のテストを行うためにテスト専用端子が増えたり、テストベクタの長大化によるテスト時間の増大といった問題があった。
【0015】
また、機能コアの入出力端子に半導体集積回路外部から直接アクセスする為のテスト回路を設け、この回路を使用してテストする場合には、半導体集積回路に、機能コアの入出力端子と同等以上の入出力端子が必要となる。これにより、半導体集積回路の入出力端子数が少なく、複数個のコアが内蔵されるような場合など、テスト回路やその制御方法が複雑化され回路規模の増大を招くという問題があった。
【0016】
この発明は上記に鑑みてなされたもので、カスタムロジック部と埋め込みコアを有する半導体集積回路において、カスタムロジック部と埋め込みコア部とを分離して効率よく埋め込みコアをテストする半導体集積回路およびテスト生成プログラムを得ることを目的としている。
【0017】
【課題を解決するための手段】
上記目的を達成するために、この発明にかかる半導体集積回路は、1または複数の機能コアを有する埋め込みコアと、組合せ回路と複数のスキャンフリップフロップがチェーン接続されるスキャンパス回路とを有するカスタムロジック部と、を備える半導体集積回路において、前記カスタムロジック部と前記埋め込みコアとの間に、前記埋め込みコアのそれぞれの入力端子に接続される入力用レジスタと、前記埋め込みコアのそれぞれの出力端子に接続される出力用レジスタとを有し、前記埋め込みコアのテスト動作時には、前記各入力用レジスタと前記各出力用レジスタとがチェーン接続されてスキャンパスを構成し、シリアルに入力される前記埋め込みコアのテストパターンをシフト動作により該各入力用レジスタに設定し、設定した前記埋め込みコアのテストパターンを埋め込みコアに出力するためのゲート信号がアサートの時に、前記各入力用レジスタに設定した埋め込みコアのテストパターンで前記埋め込みコアを動作させ、その出力を前記各出力用レジスタにラッチして、前記ゲート信号がネゲートの時に、ラッチした埋め込みコアの出力をシフト動作により外部端子と前記スキャンパス回路の初段のスキャンフリップフロップとに出力するテスト用シフトレジスタを備えることを特徴とする。
【0018】
この発明によれば、半導体集積回路は、カスタムロジック部と埋め込みコアとの間に、埋め込みコアのテスト時には、埋め込みコアの入力端子に接続される各入力用レジスタと、埋め込みコアの出力端子に接続される各出力用レジスタとがチェーン接続されてシリアルに入力される埋め込みコアのテストパターンをシフト動作により各入力用レジスタに設定する。そして、設定した埋め込みコアのテストパターンを埋め込みコアに出力するためのゲート信号がアサートの時に、各入力用レジスタに設定した埋め込みコアのテストパターンで埋め込みコアを動作させ、その出力を前記各出力用レジスタにラッチして、ゲート信号がネゲートの時に、ラッチした埋め込みコアの出力をシフト動作により外部端子に出力するようにしている。
【0019】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかる半導体集積回路およびテスト生成プログラムの好適な実施の形態を詳細に説明する。
【0020】
実施の形態1.
図1〜図6を用いてこの発明の実施の形態1を説明する。図1は、この発明における実施の形態1の半導体集積回路1の構成を示すブロック図である。この発明における実施の形態1の半導体集積回路1は、埋め込みコア11と、カスタムロジック部12と、テスト用シフトレジスタ13とを備えている。
【0021】
埋め込みコア11は、マイクロプロセッサ、DSP、アナログ回路、メモリなどの機能コアを備えている。
【0022】
カスタムロジック部12は、図2に示すように、AND回路、OR回路などの組み合わせ回路121と、フリップフロップをチェーン接続したスキャンパス回路122とを備えている。
【0023】
スキャンパス回路122は、複数(この場合は3つ)のフリップフロップ1221〜1223と、フリップフロップ1221〜1223の入力端子Dに接続されているマルチプレクサ1224〜1226とを備えている。
【0024】
マルチプレクサ1224は、スキャンイネーブル信号SEがアサート(この場合は“1”)の時にテスト用シフトレジスタ13の出力であるスキャンアウトCSOを、スキャンイネーブル信号SEがネゲート(この場合は“0”)の時に組み合わせ回路121の出力を選択して、フリップフロップ1221に出力する。フリップフロップ1221は、クロックCLKの立ち上がりでマルチプレクサ1224の出力をラッチして、組み合わせ回路121とマルチプレクサ1225とに出力する。マルチプレクサ1225は、スキャンイネーブル信号SEが“1”の時にフリップフロップ1221の出力を、スキャンイネーブル信号SEが“0”の時に組み合わせ回路121の出力を選択して、フリップフロップ1222に出力する。フリップフロップ1222は、クロックCLKの立ち上がりでマルチプレクサ1225の出力をラッチして、組み合わせ回路121とマルチプレクサ1226とに出力する。マルチプレクサ1226は、スキャンイネーブル信号SEが“1”の時にフリップフロップ1222の出力を、スキャンイネーブル信号SEが“0”の時に組み合わせ回路121の出力を選択して、フリップフロップ1223に出力する。フリップフロップ1223は、クロックCLKの立ち上がりでマルチプレクサ1226の出力をラッチする。そして、スキャンパス回路122の出力となるスキャンアウトSOを組み合わせ回路121と半導体集積回路1の外部端子とに出力する。
【0025】
テスト用シフトレジスタ13は、半導体集積回路1の外部端子から入力されるスキャンイネーブル信号SE、テストイネーブル信号TE、ゲート信号Gateに基づいて埋め込みコア11の入出力信号を制御して、半導体集積回路1の外部端子から入力されるシリアル入力信号SIを埋め込みコア11に入力するとともに、シリアル入力信号SIで動作した埋め込みコア11の出力をラッチする。そして、ラッチした埋め込みコア11の出力をシリアルに出力する。このシリアル出力であるスキャンアウトCSOは、半導体集積回路1の外部端子とスキャンパス回路122とに出力される。
【0026】
図3は、テスト用シフトレジスタ13の構成を示すブロック図である。テスト用シフトレジスタ13は、埋め込みコア11の入力端子に接続される入力用レジスタ131〜134と、埋め込みコア11の出力端子に接続される出力用レジスタ135,136とを備えている。入力用レジスタ131〜134は、同一の機能を備えている。また、出力用レジスタ135,136は同一の機能を備えている。
【0027】
入力用レジスタ131〜134は、スキャンイネーブル信号SE、テストイネーブル信号TE、ゲート信号Gateに基づいて埋め込みコア11に入力する信号を制御する。出力用レジスタ135,136は、スキャンイネーブル信号SE、テストイネーブル信号TEに基づいて、埋め込みコア11の出力を制御する。また、入力用レジスタ131〜134と出力用レジスタ135,136は、スキャンイネーブル信号SEに基づいて、入力用レジスタ131、132、出力用レジスタ135,136、入力用レジスタ133,134の順にチェーン接続されてシフトレジスタ回路を構成する。入力用レジスタ131〜134および出力用レジスタ135,136は、IEEE(Institute of Electrical and Electronics Engineers)の標準規格1149.1に規定されているような周知の境界走査セルの構成を用いてもよい。
【0028】
図4は、入力用レジスタ131の一例を示す回路図である。入力用レジスタ131は、フリップフロップ1311と、ゲート回路1312と、マルチプレクサ1313,1314とを備えている。
【0029】
マルチプレクサ1313は、スキャンイネーブル信号SEが “1”の時にシリアル入力信号SIを、スキャンイネーブル信号SEが “0”の時にカスタムロジック部12から入力される信号を選択してフリップフロップ1311に出力する。フリップフロップ1311は、クロックCLKの立ち上がりでマルチプレクサ1313の出力をラッチして、ゲート回路1312と後段の入力用レジスタまたは出力用レジスタとに出力する。ゲート回路1312は、ゲート信号Gateが“1”の時にフリップフロップ1311の出力をスルーにし、ゲート信号Gateが“0”の時にフリップフロップ1311の出力をラッチしてマルチプレクサ1314に出力する。マルチプレクサ1314は、テストイネーブル信号TEがアサート(この場合は“1”)の時にゲート回路1312の出力を、テストイネーブル信号TEがネゲート(この場合は“0”)の時にカスタムロジック部12の出力を選択して埋め込みコア11に出力する。
【0030】
図5は、出力用レジスタ135の一例を示す回路図である。出力用レジスタ135は、フリップフロップ1315と、マルチプレクサ1316,1317とを備えている。
【0031】
マルチプレクサ1316は、スキャンイネーブル信号SEが“1”の時にシリアル入力信号SIを、スキャンイネーブル信号SEが“0”の時に埋め込みコア11から入力される信号を選択してフリップフロップ1315に出力する。フリップフロップ1315は、クロックCLKの立ち上がりでマルチプレクサ1316の出力をラッチして、マルチプレクサ1317と後段の入力用レジスタまたは出力用レジスタとに出力する。マルチプレクサ1317は、テストイネーブル信号TEが“1”の時にフリップフロップ1315の出力を選択し、テストイネーブル信号TEが“0”の時に埋め込みコア11の出力を選択してカスタムロジック部12に出力する。
【0032】
つぎに、半導体集積回路1の動作を説明する。まず、半導体集積回路1の通常動作を説明する。半導体集積回路1の通常動作時には、テストイネーブル信号TEを“0”にする。したがって、入力用レジスタ131〜134のマルチプレクサ1314は、カスタムロジック部12の出力を選択して埋め込みコア11に出力する。出力用レジスタ135,136のマルチプレクサ1317は、埋め込みコア11の出力を選択してカスタムロジック部12に出力する。これにより、カスタムロジック部12と埋め込みコア11とが接続され、半導体集積回路1は通常動作をする。
【0033】
つぎに、図6のタイムチャートを参照して、埋め込みコア11のテスト動作を説明する。時刻t1において、テストイネーブル信号TEを“0”から“1”にする。これにより、半導体集積回路1はテスト動作となり、テスト用シフトレジスタ13内部の入力用レジスタ131〜134のマルチプレクサ1314はゲート回路1312の出力を、出力用レジスタ135,136のマルチプレクサ1317は、フリップフロップ1315の出力を選択する。
【0034】
時刻t2において、スキャンイネーブル信号SEを“0”から“1”にするとともに、シリアル入力信号SIにデータを入力する。入力用レジスタ131〜134のマルチプレクサ1313はシリアル入力信号SIを選択してフリップフロップ1311に出力する。出力用レジスタ135,136のマルチプレクサ1316は、シリアル入力信号SIを選択してフリップフロップ1315に出力する。これにより、入力用レジスタ131のフリップフロップ1311、入力用レジスタ132のフリップフロップ1311、出力用レジスタ135のフリップフロップ1315、出力用レジスタ136のフリップフロップ1315、入力用レジスタ133のフリップフロップ1311、入力用レジスタ134のフリップフロップ1311の順に接続され、シフトレジスタとして動作する。すなわち、外部端子より入力される埋め込みコア11のテストパターンであるシリアル入力信号SIが、クロックCLKの立ち上がりに同期してD0,D1,D2,D3,D4、D5の順に取り込まれてシフトされ、入力用レジスタ131〜134のフリップフロップ1311に設定される。
【0035】
時刻t3において、シフトレジスタ構成の最終段の入力用レジスタ134のフリップフロップ1311にデータD0が入力される。このタイミングで、スキャンイネーブル信号SEを“1”から“0”にする。これにより、入力用レジスタ131〜134と出力用レジスタ135,136はシフト動作を停止する。また、ゲート信号Gateを“0”から“1”にする。これにより、入力用レジスタ131〜134のゲート回路1312は、フリップフロップ1311の出力をスルーにし、マルチプレクサ1314はゲート回路1312の出力を選択して埋め込みコア11に入力パターンを出力する。埋め込みコア11は、入力パターンで動作を開始する。一方、出力用レジスタ135,136のマルチプレクサ1316は、埋め込みコア11の出力を選択し、フリップフロップ1315は、クロックCLKの立ち上がりでマルチプレクサ1316の出力をラッチする。すなわち、埋め込みコア11の出力パターンをクロックCLKの立ち上がりでサンプリングする。
【0036】
時刻t4において、ゲート信号Gateを“1”から“0”にする。入力用レジスタ131〜134のゲート回路1312は、フリップフロップ1311の出力をラッチして、埋め込みコア11の入力を固定する。
【0037】
時刻t5において、時刻t3で入力された入力―パターンでの埋め込みコア11の出力パターンが確定する。時刻t3から時刻t5は、埋め込みコア11の動作遅延であり、埋め込みコア11により異なる。
【0038】
埋め込みコア11の動作が確定した後の時刻t6において、出力用レジスタ135,136のフリップフロップ1315は、埋め込みコア11の出力パターンをラッチする。同時に、スキャンイネーブル信号SEを“0”から“1”にする。これにより、入力用レジスタ131〜134と出力用レジスタ135,136はシフト動作となり、シフトレジスタの最終段となる出力用レジスタ136のフリップフロップ1315は、半導体集積回路1の外部端子に埋め込みコア11の出力パターンであるスキャンアウトCSOを、DO0,DO1,DO2,DO3,DO4,DO5の順に出力する。スキャンアウトCSOをあらかじめ用意しておいた動作期待値と比較する。
【0039】
一方、シリアル入力信号SIに埋め込みコア11のつぎの入力パターンとなるD6,D7,D8,D9,D10,D11をクロックCLKの立ち上がりに同期して順に入力し、入力用レジスタ131〜134のフリップフロップ1311に設定する。このような動作を繰り返し、シリアル入力信号SIをクロックCLKの立ちあがりエッジに同期して入力することにより、連動して埋め込みコア11の動作テストを行うことができる。
【0040】
つぎに、半導体集積回路1内部のカスタムロジック部12のテスト動作を説明する。カスタムロジック部12のテスト時には、半導体集積回路1の外部から入力されるスキャンイネーブル信号SEを“1”にする。これにより、マルチプレクサ1224は、テスト用シフトレジスタ13の出力であるスキャンアウトCSOを選択する。また、マルチプレクサ1225,1226は、フリップフロップ1221,1222の出力を選択する。すなわち、スキャンパス回路122のフリップフロップ1221〜1223は、チェーン接続となりシフトレジスタを構成する。
【0041】
クロックCLKに同期して、シリアル入力信号SIを入力し、テスト用シフトレジスタ13を介してフリップフロップ1221〜1223にテストパターンを入力する。スキャンパス回路122の最終段のフリップフロップ1223にテストパターンが設定されたら、スキャンイネーブル信号SEを“0”にする。これにより、マルチプレクサ1224〜1226は、組合せ回路121の出力を選択する。したがって、フリップフロップ1221〜1223は、テストパターンで動作した組合せ回路121の出力をラッチする。
【0042】
つぎに、スキャンイネーブル信号SEを“1”にする。これにより、スキャンパス回路122のフリップフロップ1221〜1223は、チェーン接続されシフトレジスタを構成する。クロックCLKに同期して、フリップフロップ1221〜1223は、ラッチした組合せ回路121の出力を順次シフトしてスキャンアウトSOとして半導体集積回路1の外部端子に出力する。スキャンアウトSOを期待値と比較する。このような動作を繰り返し、カスタムロジック部12をテストする。
【0043】
カスタムロジック部12をテストするためには、埋め込みコア11とのインターフェース信号の制御および観測が必要となる。そこで、この実施の形態1の半導体集積回路1においては、埋め込みコア11のテスト用シフトレジスタ13の入力用レジスタ131〜134と出力用レジスタ135,136で構成されるシフトレジスタをテストイネーブル信号TEおよびスキャンイネーブル信号SEで制御可能とし、かつ、テスト用シフトレジスタ13の入力用レジスタ134内のフリップフロップ1311(テスト用シフトレジスタ13の最終段のフリップフロップ)の出力をスキャンパス回路122のフリップフロップ1221〜1223で構成されるシフトレジスタの初段のフリップフロップ1221に接続してテスト用シフトレジスタ13とスキャンパス回路122とをチェーン接続しているため、スキャンイネーブル信号SEに基づいて半導体集積回路1全体のシフト動作を制御することができ、カスタムロジック部12のフルスキャンパステストを可能としている。また、テスト用シフトレジスタ13の最終段のフリップフロップ1311の出力を外部端子に出力することで、テスト用シフトレジスタ13の終端点を観測できるようにしている。
【0044】
このようにこの実施の形態1では、埋め込みコア11とカスタムロジック部12との間に、入力用レジスタおよび出力用レジスタで埋め込みコア11テスト用のスキャンパス回路を構成するテスト用シフトレジスタ13を備え、テスト用シフトレジスタ13の最終段の入力用レジスタ内のフリップフロップまたは出力用レジスタ内のフリップフロップの出力を、半導体集積回路1の外部端子に出力するようにしている。これにより、埋め込みコア11のテストパターンを短縮することができる。
【0045】
また、カスタムロジック部12内のスキャンパス回路122の初段のフリップフロップとテスト用シフトレジスタ13の最終段のフリップフロップとを接続して、スキャンイネーブル信号SEによりテスト用シフトレジスタ13とスキャンパス回路122を複合動作させることにより、カスタムロジック部12のテスト効率を上げることができる。
【0046】
さらに、入力用レジスタをチェーン接続してシフトレジスタを構成するためのスキャンフリップフロップと埋め込みコア11にテストパターンを出力するゲート回路とで構成するようにしたため、シフト動作に影響されることなく、埋め込みコア11への入力信号を制御することができる。
【0047】
実施の形態2.
図7を用いてこの発明の実施の形態2を説明する。この実施の形態2における半導体集積回路2では、実施の形態1において半導体集積回路の外部端子から入力していた制御信号を削減するために、テストコントロールモジュール(以下、TCMとする)21と、セレクタ22とが追加されている。実施の形態1と同じ機能を持つ構成部分には同一符号を付し、重複する説明は省略する。
【0048】
TCM21は、テストモードセレクトTMSとクロックCLKとシリアル入力信号SIからなるシーケンス回路で、テスト用シフトレジスタ13、スキャンパス回路122およびセレクタ22の制御信号を生成する。テストモードセレクトTMSをクロックCLKの立ち上がりで取り込み、そのときのテストモードセレクトTMSのレベル(“0”または“1”)によりシーケンスを遷移させ、制御信号を出力する。具体的には、TCM21は、半導体集積回路2の外部端子から入力されるテストモードセレクトTMS、シリアル入力信号SIおよびクロックCLKに基づいて、テスト用シフトレジスタ13を制御するテストイネーブル信号TE、ゲート信号Gateおよびコアスキャンイネーブル信号CSEと、スキャンパス回路122を制御するスキャンイネーブル信号SEと、セレクタ22を制御する選択信号SELとを生成する。なお、TMC21は、IEEEの標準規格1149.1に規定されているテストアクセスポートコントローラ(TAPコントローラ)と同等の構成で実現することができる。
【0049】
セレクタ22は、選択信号SELに基づいてテスト用シフトレジスタ13の出力とスキャンパス回路の出力との何れかを選択して、スキャンアウトSOを半導体集積回路2の外部端子に出力する。この場合は、選択信号SELが“0”の時にテスト用シフトレジスタ13の出力を、選択信号SELが“1”の時にスキャンパス回路122の出力を選択する。
【0050】
つぎに、半導体集積回路2のテスト動作を説明する。まず、埋め込みコア11のテスト動作時は、テストモードセレクトTMSとクロックCLKに基づいて、TCM21は、テストイネーブル信号TEを“1”にする。これにより、半導体集積回路2は、テスト動作となる。
【0051】
つぎに、テストモードセレクトTMSとクロックCLKに基づいて、TCM21は、コアスキャンイネーブル信号CSEを“1”に、ゲート信号Gateを“0”に、スキャンイネーブル信号SEを“0”に、選択信号SELを“0”にする。テスト用シフトレジスタ13の入力用レジスタ131〜134,出力用レジスタ135,136は、クロックCLKに同期して半導体集積回路2の外部端子から入力されるシリアル入力信号SI(埋め込みコア11のテストパターン)をシフトする。スキャンイネーブル信号SEが“0”であるので、スキャンパス回路122のマルチプレクサ1224〜1226は、組合せ回路121の出力を選択している。したがって、スキャンパス回路122は動作しない。
【0052】
テスト用シフトレジスタ13のシフト動作により埋め込みコア11の全入力端子へのテストパターンが入力用レジスタ131〜134のフリップフロップ1311に設定されると、テストモードセレクトTMSに基づきTMC21は、ゲート信号Gateを“1”にする。これにより、埋め込みコア11にテストパターンが入力される。そして、テストモードセレクトTMSに基づいてTCM21は、ゲート信号Gateを“0”にして、埋め込みコア11に入力するテストパターンを固定するとともに、コアスキャンイネーブル信号CSEを“0”にして出力用レジスタ135,136のフリップフロップ1315に埋め込みコア11の出力をラッチさせる。埋め込みコア11の動作遅延を考慮して入力されるテストモードセレクトTMSに基づきTMC21は、コアスキャンイネーブル信号CSEを“1”にして、テスト用シフトレジスタ13の入力用レジスタ131〜134,出力用レジスタ135,136はシフト動作をおこない、シリアル入力信号SIを入力用レジスタ131〜134のフリップフロップ1311に設定するとともに、出力用レジスタ135,136のフリップフロップ1315の埋め込みコア11の出力をセレクタ22とカスタムロジック部12のスキャンパス回路122とに出力する。このような動作を繰り返して、半導体集積回路2の外部端子から入力されるシリアル入力信号SIを埋め込みコア11に入力して、埋め込みコア11をテストする。
【0053】
一方、選択信号SELが“0”であるので、半導体集積回路2の外部端子にスキャンアウトSOを出力するセレクタ22は、テスト用シフトレジスタ13の出力を選択する。したがって、テスト用シフトレジスタ13のシフト動作により、出力用レジスタ135,136のフリップフロップ1315にラッチされた埋め込みコア11の出力は、半導体集積回路2の外部端子に出力される。スキャンアウトSOを予め準備されている期待値と比較することで、埋め込みコア11をテストすることができる。
【0054】
つぎに、カスタムロジック部12のテスト動作について説明する。テストモードセレクトTMSとクロックCLKに基づいて、TCM21は、テストイネーブル信号TE、コアスキャンイネーブル信号CSE、スキャンイネーブル信号SEおよび選択信号SELとを“1”にする。これにより、テスト用シフトレジスタ13とスキャンパス回路122のフリップフロップ1221〜1223とは、チェーン接続されシフトレジスタを構成する。シフト動作によりシリアル入力信号SIはテスト用シフトレジスタ13を介してスキャンパス回路122のフリップフロップ1221〜1223に設定される。
【0055】
TCM21は、テストモードセレクトTMSに基づいてスキャンイネーブル信号SEを“0”にする。これにより、マルチプレクサ1224〜1225は、組合せ回路121に出力を選択する。したがって、フリップフロップ1221〜1223は、テストパターンで動作した組合せ回路121の出力をラッチする。
【0056】
つぎに、TCM21は、テストモードセレクトTMSに基づいてスキャンイネーブル信号SEを“1”にする。これにより、スキャンパス回路122のフリップフロップ1221〜1223は、チェーン接続されシフトレジスタを構成する。クロックCLKに同期して、フリップフロップ1221〜1223は、ラッチした組合せ回路121の出力を順次シフトして、セレクタ22を介してスキャンアウトSOを半導体集積回路1の外部端子に出力する。スキャンアウトSOを期待値と比較する。このような動作を繰り返し、カスタムロジック部12をテストする。
【0057】
このようにこの実施の形態2では、TCMを用いてテストに必要な外部端子を削減するようにしているため、半導体集積回路の外部端子数に制限がある場合でも、容易に埋め込みコアとカスタムロジック部のテストができる。
【0058】
実施の形態3.
図8〜図11を用いてこの発明の実施の形態3を説明する。この実施の形態3では、所望の機能を実現する半導体集積回路からテスト用シフトレジスタを挿入する方法を説明する。
【0059】
まず、入力用レジスタの挿入について説明する。図8(a)に示す半導体集積回路3は、埋め込みコア31と、カスタムロジック部32とを備えている。カスタムロジック部32から出力された信号33は、埋め込みコア31の入力端子に接続されている。カスタムロジック部32は、内部ロジック321と組合せ回路322とを備えており、信号33は、組合せ回路322から駆動されている。すなわち、信号33は、AND回路やOR回路などで駆動されている。したがって、図8(b)に示すように、埋め込みコア31とカスタムロジック部32との間に、テスト用シフトレジスタを構成するために図4に示した入力用レジスタ131と同様の機能を備える入力用レジスタ34を挿入する。これにより、半導体集積回路3aの通常動作時は、テストイネーブル信号TEが“0”となり、組合せ回路322からの出力はマルチプレクサ1314を介してそのまま埋め込みコア31に入力される。半導体集積回路3aのテスト動作時には、テストイネーブル信号TEが“1”となり、ゲート回路1312の出力がマルチプレクサ1314を介して埋め込みコア31に入力される。また、スキャンイネーブル信号SEが“1”になると、フリップフロップ1311は前段および後段のフリップフロップとチェーン接続されてシフトレジスタを構成する。そして、シリアル入力信号SI経由でクロックCLKの立ち上がりエッジに同期してフリップフロップ1311にデータが設定され、ゲート信号Gateを“1”にすることで、フリップフロップ1311に設定されたデータをゲート回路1312へ伝播させる。
【0060】
また、図9(a)に示す半導体集積回路3のように、カスタムロジック部32内のフリップフロップ323から出力された信号35が埋め込みコア31の入力端子に接続されている場合、図9(b)に示すように、入力用レジスタ34aにフリップフロップ323を用いる。すなわち、図4に示した入力用レジスタのフリップフロップ1311の代わりに、カスタムロジック部32内のフリップフロップ323を利用する。この場合、図9(a)に示したように、通常動作時に埋め込みコア31に入力される信号35は、フリップフロップ323から出力されたものである。したがって、フリップフロップ323を利用した入力用レジスタ34aのマルチプレクサ1314のテストイネーブル信号TEが“0”時に選択される入力端子には、フリップフロップ323の出力を接続する。これにより、半導体集積回路3aの通常動作時は、テストイネーブル信号TEが“0”となり、組合せ回路322の出力はマルチプレクサ1313を介してフリップフロップ323にラッチされる。そして、マルチプレクサ1314を介してフリップフロップ323の出力が埋め込みコア31に入力される。半導体集積回路3aのテスト動作時には、テストイネーブル信号TEが“1”となり、ゲート回路1312にセットされた信号がマルチプレクサ1314を介して埋め込みコア31に入力される。また、スキャンイネーブル信号SEが“1”になると、フリップフロップ323は前段および後段のフリップフロップとチェーン接続されてシフトレジスタを構成する。そして、シリアル入力信号SI経由でクロックCLKの立ち上がりエッジに同期してフリップフロップ323にデータが設定され、ゲート信号Gateを“1”にすることで、フリップフロップ323に設定されたデータをゲート回路1312へ伝播させる。
【0061】
つぎに、出力用レジスタの挿入について説明する。図10(a)に示すように、半導体集積回路3の埋め込みコア31の出力である信号38が、カスタムロジック部32の組合せ回路322を介して内部ロジック321に伝達されている。この場合、図10(b)に示すように、埋め込みコア31と組合せ回路322との間に、テスト用シフトレジスタを構成するために図5に示した出力用レジスタ135と同様の機能を備える出力用レジスタ36を挿入する。これにより、半導体集積回路3aの通常動作時には、テストイネーブル信号TEが“0”となり、埋め込みコア31の出力がマルチプレクサ1317を介して組合せ回路322に入力される。また、半導体集積回路3aのテスト動作時には、テストイネーブル信号TEが“1”となる。スキャンイネーブル信号SEが“0”の期間に、フリップフロップ1315はマルチプレクサ1316を介して埋め込みコア31の出力をラッチする。スキャンイネーブル信号SEが“1”になると、前段および後段のフリップフロップとチェーン接続されてシフトレジスタを構成する。そして、クロックCLKの立ち上がりエッジに同期してスキャンアウトSO経由でラッチした埋め込みコア31の出力を半導体集積回路3aの外部端子に出力する。
【0062】
また、図11(a)に示す半導体集積回路3のように、埋め込みコア31から出力された信号37がカスタムロジック部32内のフリップフロップ324の入力端子に接続されている場合、図11(b)に示すように、出力用レジスタ36aにフリップフロップ324を用いる。すなわち、図5に示した出力用レジスタのフリップフロップ1315の代わりに、カスタムロジック部32内のフリップフロップ324を利用する。この場合、図11(a)に示したように、通常動作時に埋め込みコア31から出力される信号37は、フリップフロップ324に入力され、フリップフロップ234の出力が内部ロジック321に出力されている。したがって、半導体集積回路3aが通常動作時でもテスト動作時でも、フリップフロップ324の出力は、内部ロジックに出力されている。このため、図5に示したマルチプレクサ1317とテストイネーブル信号TEの接続が不要となる。これにより、半導体集積回路3aが通常動作時には、スキャンイネーブル信号SEを“0”とすることで、マルチプレクサ1316を介して埋め込みコア31の出力がフリップフロップ324にラッチされ、内部ロジック321に伝達される。半導体集積回路3aのテスト動作時には、スキャンイネーブル信号SEが“0”の期間に、フリップフロップ324はマルチプレクサ1316を介して埋め込みコア31の出力をラッチする。スキャンイネーブル信号SEが“1”になると、前段および後段のフリップフロップとチェーン接続されてシフトレジスタを構成する。そして、クロックCLKの立ち上がりエッジに同期してスキャンアウトSO経由でラッチした埋め込みコア31の出力を半導体集積回路3aの外部端子に出力する。
【0063】
このようにこの実施の形態3では、テスト用シフトレジスタを構成する入力用レジスタを挿入する際には、埋め込みコアへの入力信号がフリップフロップの出力である場合、そのフリップフロップを入力用レジスタのフリップフロップとして利用する。一方、テスト用シフトレジスタを構成する出力用レジスタを挿入する際には、埋め込みコアの出力信号がフリップフロップに入力されている場合、そのフリップフロップを出力用レジスタのフリップフロップとして利用する。これにより、テスト用シフトレジスタのフリップフロップおよびマルチプレクサを削減することができる。すなわち、半導体集積回路のテストのための回路規模を削減することができる。
【0064】
実施の形態4.
図12〜図22を用いてこの発明の実施の形態4を説明する。図12は、この発明におけるテスト生成プログラムおよびその入出力を示す概念図である。
【0065】
回路接続情報40には、対象となる半導体集積回路が所望の機能を実現するための埋め込みコアと機能セルとを定義するセル情報および埋め込みコアと機能セルとの間の接続を示す接続情報が定義される。
【0066】
フロアプラン情報41には、対象となる半導体集積回路のレイアウトにおいて埋め込みコアがどの位置に配置されているかの位置情報、埋め込みコアの入出力端子の位置情報、カスタムロジック部の機能セルの位置情報および半導体集積回路の外部端子の位置情報が定義される。
【0067】
ライブラリ情報42には、埋め込みコアおよび機能セルの論理情報、遅延情報、端子属性などのテクノロジ情報が定義される。
【0068】
埋め込みコア機能テストパターン43には、人手設計または回路シミュレーション結果から作成された埋め込みコアのテストパターンが定義される。埋め込みコア機能テストパターン43は、定められた周期内に全信号に対する入力信号の印加おび出力信号の期待値比較を行うためのパラレル形式のパターンである。
【0069】
つぎに、テスト回路挿入プログラムの動作を説明する。埋め込みコアテストセル挿入処理(ステップS1)では、回路接続情報40、フロアプラン情報41およびライブラリ情報42に基づいて埋め込みコアのテスト回路を挿入して、埋め込みコアテストセルのレイアウト指定情報44と、埋め込みコアテストセルのスキャンパス接続順番情報45と、埋め込みコアテストセル挿入後の回路接続情報46とを生成する。
【0070】
図13のフローチャートを参照して、埋め込みコアテストセル挿入処理の動作を詳細に説明する。回路接続情報40およびライブラリ情報42を読み込み(ステップS100)、埋め込みコアテストセルを未挿入の埋め込みコア端子を選択する(ステップS101)。
【0071】
ライブラリ情報42に基づいて選択した埋め込みコアの端子の端子方向を確認する(ステップS102)。選択した埋め込みコアの端子が入力端子の場合、入力用の埋め込みコアテストセルを選択する(ステップS103)。入力用の埋め込みコアテストセル6aは、図14に示すように、フリップフロップ61と、ゲート回路62と、マルチプレクサ63とで構成される下位階層の展開が可能な、いわゆる、ソフトマクロである。
【0072】
図16の半導体集積回路7の場合は、埋め込みコア71の端子C,E,Fが入力端子である。したがって、埋め込みコア71の端子C,E,Fが埋め込みコアテストセルを未挿入の端子に選択された場合には、入力用の埋め込みコアテストセルを選択する。
【0073】
選択した埋め込みコアの端子が出力端子の場合、出力用の埋め込みコアテストセルを選択する(ステップS104)。出力用の埋め込みコアテストセル6bは、図15に示すように、フリップフロップ65とマルチプレクサ66とで構成される下位階層の展開が可能な、いわゆる、ソフトマクロである。
【0074】
図16の半導体集積回路7の場合は、埋め込みコア71の端子A,B,Dが出力端子である。したがって、埋め込みコア71の端子A,B,Dが埋め込みコアテストセルを未挿入の端子に選択された場合には、出力用の埋め込みコアテストセルを選択する。
【0075】
回路接続情報40およびライブラリ情報42に基づいて埋め込みコアの端子が組合せ回路と接続されているか否かを判定する(ステップS105)。判定の結果、選択した埋め込みコアの端子が組合せ回路と接続されている場合には、選択した埋め込みコアテストセルを挿入することを決定し(ステップS106)、回路接続情報40を選択した埋め込みコアテストセルを挿入した回路接続情報に変更する。
【0076】
図16の半導体集積回路7の場合は、埋め込みコア71の入力端子C,Eは、組合せ回路75と配線720,721でそれぞれ接続されている。したがって、配線720,721に入力用の埋め込みコアテストセルを挿入する。また、埋め込みコア71の出力端子Bは、組合せ回路75と配線711で接続されている。したがって、出力用の埋め込みコアテストセルを挿入する。すなわち、図17に示すように、埋め込みコア71の出力端子Bと組合せ回路75の配線711には出力用の埋め込みコアテストセル743を、埋め込みコア71の入力端子Cと組合せ回路75の配線720には入力用の埋め込みコアテストセル731を、埋め込みコア71の入力端子Eと組合せ回路75の配線721には入力用の埋め込みコアテストセル732を、それぞれ挿入する。
【0077】
判定の結果、埋め込みコアの端子が組合せ回路と接続されていない場合、すなわち、フリップフロップと接続されている場合には、そのフリップフロップを埋め込みコアテストセルのフリップフロップに置き換えて埋め込みコアテストセルを挿入する(ステップS107)。具体的には、実施の形態3で説明したように、埋め込みコアの入力端子の場合には、埋め込みコアの入力端子に接続されているフリップフロップを入力用の埋め込みコアテストセル6aのフリップフロップ61に流用し、埋め込みコアの出力端子の場合には、埋め込みコアの出力に接続されているフリップフロップを出力用の埋め込みコアテストセル6bのフリップフロップ65に流用する。そして、それらの接続に対応して回路接続情報40を変更する。
【0078】
図16の半導体集積回路7の埋め込みコア71の入力端子Fは、フリップフロップ74と配線722で接続されている。したがって、フリップフロップ74を図14に示した入力用の埋め込みコアテストセル6aのフリップフロップ61と置き換える。また、埋め込みコア71の出力端子A,Dは、フリップフロップ72,73と配線710,712でそれぞれ接続されている。したがって、フリップフロップ72およびフリップフロップ73を、それぞれの図15に示した出力用の埋め込みコアテストセル6bのフリップフロップ65と置き換える。すなわち、図17に示すように、埋め込みコア71の出力端子Aとフリップフロップ72の配線710には、フリップフロップ72を置き換えた出力用の埋め込みコアテストセル741を、埋め込みコア71の出力端子Dとフリップフロップ73の配線712には、フリップフロップ73を置き換えた出力用の埋め込みコアテストセル742を、埋め込みコア71の入力端子Fとフリップフロップ74の配線722には、フリップフロップ74を置き換えた入力用の埋め込みコアテストセル733を、それぞれ挿入する。
【0079】
変更した回路接続情報40に基づいて、埋め込みコアの全ての端子に埋め込みコアテストセルが挿入されるまで、埋め込みコアテストセルを挿入する動作を繰り返す(ステップS101〜S108)。
【0080】
全ての埋め込みコア端子に対する埋め込みコアテストセルが挿入されると、埋め込みコアテストセル内のフリップフロップのスキャンパス接続順番を抽出する(ステップS109)。具体的には、埋め込みコアのフロアプラン情報41に基づいて、埋め込みコアテストセル内のスキャンフリップフロップ相互間を最短経路でチェーン接続し、その始端を半導体集積回路のスキャンパターンを入力する外部端子に、終端を内部ロジック回路内のスキャンパス回路に接続するための制約条件を生成して、埋め込みコアテストセルのスキャンパス接続順番情報45に出力する。
【0081】
図18は、図16に示した半導体集積回路7のフロアプラン情報41の埋め込みコア71およびシリアル入力信号SIの端子位置を示すフロアプランのイメージ図である。フロアプラン情報41は、半導体集積回路7のシリアル入力信号SIの外部端子は埋め込みコア71の入力端子Cと最も近い位置にあることを示している。したがって、埋め込みコア71周辺の配線の難易度が均一な場合、埋め込みコア71の入力端子Cに接続される埋め込みコアテストセル内にあるフリップフロップをシリアル入力信号SIを入力する端子と接続してスキャンパス回路の始端とすることが最適な接続となる。その他の埋め込みコア71の端子A,B,D,E,Fについては、端子Cを基点に時計回りまたは反時計回りに接続することで、最短配線が実現する。たとえば、反時計回りに接続する場合、図17に示した半導体集積回路7では、埋め込みコアテストセル731,743,741,733,732,742の順となる。この順番をスキャンパス接続処理で使用可能な形式にした埋め込みコアテストセルのスキャンパス接続順番情報45を出力する。なお、配線不能領域など他の優先すべき制約条件が存在する場合は、これを考慮して順番を決定する。
【0082】
スキャンパス接続順番情報45を出力すると、埋め込みコアテストセル内のフリップフロップのレイアウト指定情報を抽出する(ステップS110)。具体的には、埋め込みコアテスト用セルのスキャンパス接続順番情報45の最短配線長を実現するためには、スキャンフリップフロップの配置も最適化する必要がある。すなわち、埋め込みコア周辺のセル配置の難易度が均一な場合、埋め込みコアテストセル内フリップフロップを対応する埋め込みコア端子の近傍に配置するのが望ましい。そのため、フロアプラン情報41のカスタムロジック部のレイアウト情報に基づき、埋め込みコアテストセル内フリップフロップを、関連する埋め込みコア端子に対して最適な位置に配置される制約条件を抽出して、埋め込みコアテストセルのレイアウト指定情報44に出力する。
【0083】
図17の半導体集積回路7の場合、埋め込みコアテストセル741,743,731,742,732,733内のそれぞれのフリップフロップが、埋め込みコアの端子A〜Fの近傍に配置されるように制約条件を埋め込みコアテストセルのレイアウト指定情報44に出力する。なお、配置禁止領域など他の優先すべき制約条件が存在する場合は、これを考慮して配置条件を決定する。
【0084】
レイアウト指定情報44を出力すると、埋め込みコアテストセルの空き端子を接続する(ステップS111)。具体的には、半導体集積回路と挿入した各埋め込みコアテストセルのテストイネーブル信号TE、ゲート信号Gate、クロックCLK、ならびに、最終段の埋め込みコアテストセルの出力と半導体集積回路のスキャンアウトCSOとを接続する。
【0085】
図17の半導体集積回路7の場合には、半導体集積回路7のクロックCLKを入力する外部端子と埋め込みコアテストセル731〜733,741〜743のクロック端子CLKとを配線751で、半導体集積回路7のテストイネーブル信号TEを入力する外部端子と埋め込みコアテストセル731〜733,741〜743のテストイネーブル信号TEが入力される外部端子とを配線752で接続する。半導体集積回路7のゲート信号Gateを入力する外部端子と、埋め込みコアテストセル731〜732のゲート信号Gateを入力する端子とを配線753で接続する。また、スキャンパス接続順番情報45を決定した際に最終段となった埋め込みコアテストセル742の端子DOと、半導体集積回路7のスキャンアウトCSOを出力する外部端子とを配線754で接続する。
【0086】
接続が完了したら、埋め込みコアテスト用回路挿入後の半導体集積回路の接続情報である埋め込みコアテストセル挿入後の回路接続情報46を出力する(ステップS112)。
【0087】
埋め込みコアテストセル挿入処理が完了すると、スキャンパス接続処理(ステップS2)を行う。スキャンパス接続処理では、まず、埋め込みコアテストセル挿入後の回路接続情報46を読み込み、回路内のすべてのフリップフロップを図19に示すような、マルチプレクサ付きのスキャンフリップフロップもしくは論理的に等価な回路に変換する。具体的には、埋め込みコアテストセル挿入処理で挿入された埋め込みコアテストセル6aのフリップフロップ61がスキャンフリップフロップ8に変換され、図4に示した入力用レジスタ131と論理的に等価な回路となる。また、埋め込みコアテスト用セル挿入処理で挿入された埋め込みコアテストセル6bのフリップフロップ65がスキャンフリップフロップ8に変換され、図5に示した出力用レジスタ135と論理的に等価な回路となる。さらに、カスタムロジック部内のフリップフロップも全てスキャンフリップフロップ8に変換される。
【0088】
全てのフリップフロップをスキャンフリップフロップ8に変換した後、スキャンパス接続順番情報45に定義されている接続の順番に基づいてこれらのスキャンフリップフロップ8をチェーン接続する。すなわち、スキャンフリップフロップ8の端子SFSEにスキャンイネーブル信号SEを、初段となるスキャンフリップフロップ8の端子SFSIにシリアル入力信号SIを、そして、他のスキャンフリップフロップ8の端子SFSIに、前段のスキャンフリップフロップ8の出力を、スキャンフリップフロップ8の端子SFDに、通常動作時の信号(埋め込みコア71の入出力信号、組合せ回路75の入出力信号)を接続する。スキャンパスの接続が完了すると、スキャンパス接続後の回路接続情報47を出力する。
【0089】
図20は、図17に示した半導体集積回路7の回路接続情報46に対してスキャンパス接続処理を実行した半導体集積回路7を示す概念図である。埋め込みコアテストセル731a〜733a,741a〜743aは、図17の埋め込みコアテストセル731〜733,741〜743の内部のフリップフロップをスキャンフリップフロップ8に変換した後の埋め込みコアテストセルである。配線760〜766は、スキャンパス接続用の配線であり、スキャンパス接続順番情報45に基づいて半導体集積回路7の外部端子から入力されるシリアル入力信号SIから配線760〜766を用いて埋め込みコアテストセル731a〜733a,741〜743aをチェーン接続する。また、最終段の埋め込みコアテストセル742aから配線766によりロジック回路76のスキャンパス回路に接続される。ロジック回路76のスキャンパスの最終段のスキャンフリップフロップ8からは、配線767によって半導体集積回路7の外部端子にスキャンアウトSOが出力される。これらの配線を反映してスキャンパス接続後の回路接続情報47を出力する。
【0090】
スキャンパス接続処理が終了すると、スキャンパス接続後の回路接続情報47と埋め込みコア機能テストパターン43とに基づいて、埋め込みコアテストパターン変換処理(ステップS3)を実行する。図21のフローチャートを参照して、埋め込みコアテストパターン変換処理の詳細な動作を説明する。
【0091】
まず、スキャンパス接続後の回路接続情報47、ライブラリ情報42および埋め込みコア機能テストパターン43を読み込み(ステップS300)、埋め込みコアテストの対象となる回路を特定する(ステップS301)。具体的には、図20に示した半導体集積回路7の場合、対象となるのは埋め込みコア71であり、対象外となるのは、ロジック回路76および組合せ回路75である。したがって、埋め込みコア71をテスト対象として特定する。
【0092】
埋め込みコアテストの対象となる回路を特定すると、ライブラリ情報42に定義されている埋め込みコアの端子情報と埋め込みコア機能テストパターン43とに基づいて、テストルールチェックを行う(ステップS302)。具体的には、たとえば、埋め込みコア機能テストパターン43に定義されているテストパターンの入出力信号とライブラリ情報42に定義されている埋め込みコア71の端子との対応がとれているか、埋め込みコア機能テストパターン43に定義されている埋め込みコア71に入力する信号の禁止条件のチェック、例えば不定値の入力などを行う。
【0093】
テストルールチェックが終了すると、テストパターンを変換する(ステップS303)。図20に示した半導体集積回路7と図22のタイムチャートを参照して、テストパターンの変換について説明する。埋め込みコア機能テストパターン43には、周期T11ごとに埋め込みコア71の入力端子CにC0,C1,C2,C3を、入力端子EにE0,E1,E2,E3を、入力端子FにF0,F1,F2,F3を入力するように定義されている。そして、出力端子Aの期待値はA0,A1,A2,A3、出力端子Bの期待値はB0,B1,B2,B3、出力端子Dの期待値はD0,D1,D2,D3である。このようなパラレル形式の埋め込みコア機能テストパターンを、半導体集積回路7の外部端子からシリアル入力信号SIとして入力可能なパターンに変換する。すなわち、図20に示した半導体集積回路7の埋め込みコアテストセル731a〜733a,741a〜743aを配線750〜756によりチェーン接続して埋め込みコア71をテストするパターンに変換する。
【0094】
埋め込みコア機能テスト入力パターンの周期T11のパラレル形式の埋め込みコアテストパターン入力C1,E1,F1を、変換後のパターンのシフト期間T12に、埋め込みコアテストパターン期待値A1,B1,D1は、シフト期間T13にそれぞれアサインする。すなわち、パラレル形式の埋め込みテストパターン入力に対してパラレル形式の埋め込みコアテストパターン期待値を、1シフト期間後にアサインする。
【0095】
アサインの順番は、チェーン接続された埋め込みコアテストセルの最も先頭にある埋め込みコアテストセルのフリップフロップ、すなわち、スキャンアウトCSOを出力する半導体集積回路7の外部端子に接続されているフリップフロップからとなる。図20に示した半導体集積回路7の場合は、埋め込みコア71の端子D,E,F,A,B,Cの順にシリアル化する。したがって、シリアル入力信号SIには、端子Dに接続されている埋め込みコアテストセル742a,端子Eに接続されている埋め込みコアテストセル732a,端子Fに接続されている埋め込みコアテストセル733a,端子Aに接続されている埋め込みコアテストセル741a,端子Bに接続されている埋め込みコアテストセル743a,端子Cに接続されている埋め込みコアテストセル731aのそれぞれのスキャンフリップフロップ8の順に設定するデータを入力する。このとき、埋め込みコア71の出力端子D,A,Bに接続された埋め込みコアテストセル742a,741a,743a内のスキャンフリップフロップ8への入力パターンは、“0”、“1”のどちらでもよい。また、埋め込みコア71の入力端子E,F,Cに接続された埋め込みコアテストセル732a,733a,731aのスキャンフリップフロップ8のデータがシフトされスキャンアウトCSOとして出力されるタイミングの期待値は“0”または“1”のいずれでもよいので、このときの期待値はドント・ケア(“x”)とする。
【0096】
制御信号については、テストイネーブル信号TEを“1”固定に、スキャンイネーブル信号SEを“1”に、ゲート信号Gateを“0”にする。そして、シリアル入力信号SIが入力される半導体集積回路7の外部端子に接続されている埋め込みコアテストセル731aに埋め込みコア71の端子Cに入力するテストパターンが設定された後、スキャンイネーブル信号SEを“0”に、ゲート信号Gateを“1”にする。すなわち、埋め込みコアテストセルのフリップフロップにデータを設定するシフト期間T14毎にスキャンイネーブル信号SEを“0”に、ゲート信号Gateを“1”にする。そして、クロックCLKの立下りに同期してゲート信号Gateを“0”にする。また、スキャンイネーブル信号SEについては、埋め込みコア71の動作遅延時間をとった後、クロックCLKの立ち上がりに同期して“1”にする。図22のタイムチャートの場合は、埋め込みコア71の動作遅延時間がクロックCLKの周期内であるので、スキャンイネーブル信号SEは、クロックCLK1周期で“1”となる。埋め込みコア71の動作遅延がクロックCLKの周期のn(0<n,nは自然数)倍未満の場合、スキャンイネーブル信号SEが“0”となるキャプチャ期間T15は、クロックCLKのn個分の周期を要する。埋め込みコア71の動作遅延時間は、ライブラリ情報42に定義されているので、この動作遅延時間に基づいて、キャプチャ期間T15を決定する。
【0097】
このようにして、埋め込みコア機能テストパターン43をスキャンパス接続後の回路接続情報47に対応したテストパターンに変換したスキャンパスを利用した埋め込みコア機能テストパターン48を出力して(ステップS304)、埋め込みコアテストパターン変換処理を終了する。
【0098】
最後に、テストパターン自動生成処理を行う(ステップS4)。テストパターン自動生成処理では、ライブラリ情報42とスキャンパス接続後の回路接続情報47を読み込む。そして、たとえば、ランダムに発生した信号や既存のスキャンテストのテストパターン自動生成手法により生成された信号をスキャンパス回路に入力して、組合せ回路75を動作させて静的シミュレーションを実行する。そして、スキャンパス接続後の回路接続情報47の組合せ回路の故障検出率を算出して、カバレージの高いテストパターンを生成する。そして、生成したテストパターンをスキャンパステストパターン49として出力する。
【0099】
このようにこの実施の形態4では、埋め込みコアテストセル挿入処理において、回路接続情報40と、フロアプラン情報41と、ライブラリ情報とに基づいて、埋め込みコアの入力端子および出力端子にテストセルを挿入し、テストセル挿入後のセル情報および接続情報に変更した回路接続情報46を生成し、スキャンパス接続処理において、テストセル挿入後の接続に変更した回路接続情報46に定義されているフリップフロップをスキャンフリップフロップに置換してチェーン接続し、スキャンパス回路を生成した後のセル情報および接続情報に変更した回路接続情報47を生成するようにしている。これにより、設計時に、テストに必要な回路を意識することなく設計することができ、設計時間を短縮することができる。
【0100】
また、埋め込みコアテストパターン変換処理において、埋め込みコア機能テストパターン43をスキャンパス接続後の回路接続情報47に対応して、埋め込みコアのテストに必要な制御信号を付加し、埋め込みコア機能テストパターン43を変換し、テストパターン自動生成処理において、カスタムロジック部のテストパターンを生成するようにしている。これにより、テストパターンを生成する時間が短縮され、設計効率を上げることができる。
【0101】
なお、実施の形態4では、埋め込みコアテストセル挿入処理、スキャンパス接続処理、埋め込みコアテストパターン変換処理およびテストパターン自動生成処理が個別の処理として動作し、各処理間はファイルなどの外部記憶媒体を介してデータの受け渡しを行う構成として説明した。すなわち、各処理は、個別のプログラムとして動作可能な構成として説明した。しかし、処理を単一のプログラムとして実現し、外部記憶媒体の代わりにメモリ中に構築されたデータとして共有する構成にしても良い。
【0102】
実施の形態5.
実施の形態1〜4においては、単一クロックCLKを用いてスキャンイネーブル信号SEでテスト動作と通常動作の切り替えるスキャンフリップフロップを用いたスキャンパステスト、いわゆるモードセレクト方式をベースに説明した。しかし、本発明における半導体集積回路およびテスト生成プログラムは、テストと通常動作を個別のクロックで制御するクロックセレクト方式にも適用可能である。実施の形態1〜4におけるスキャンイネーブル信号SEをスキャン用クロックに置き換え、同様にスキャンパス設計を行うことで、同様の機能が実現可能であり、実施の形態1〜4と同様の効果を得ることができる。
【0103】
【発明の効果】
以上説明したように、この発明にかかる半導体集積回路によれば、カスタムロジック部と埋め込みコアとの間に、埋め込みコアのテスト時には、埋め込みコアの入力端子に接続される各入力用レジスタと、埋め込みコアの出力端子に接続される各出力用レジスタとがチェーン接続されてシリアルに入力される埋め込みコアのテストパターンをシフト動作により各入力用レジスタに設定する。そして、設定した埋め込みコアのテストパターンを埋め込みコアに出力するためのゲート信号がアサートの時に、各入力用レジスタに設定した埋め込みコアのテストパターンで埋め込みコアを動作させ、その出力を前記各出力用レジスタにラッチして、ゲート信号がネゲートの時に、ラッチした埋め込みコアの出力をシフト動作により外部端子に出力するようにしている。これにより、埋め込みコアのテストパターンを短縮するとともに、効率よく半導体集積回路のテストを行うことができる。
【図面の簡単な説明】
【図1】 この発明における実施の形態1の半導体集積回路の構成を示すブロック図である。
【図2】 図1に示したカスタムロジック部の構成を示すブロック図である。
【図3】 図1に示したテスト用シフトレジスタの構成を示すブロック図である。
【図4】 図3に示した入力用レジスタの一例を示す回路図である。
【図5】 図3に示した出力用レジスタの一例を示す回路図である。
【図6】 この発明における実施の形態1の半導体集積回路の埋め込みコアのテスト動作を説明するためのタイムチャートである。
【図7】 この発明における実施の形態2の半導体集積回路の構成を示すブロック図である。
【図8】 この発明における実施の形態3の半導体集積回路の入力用レジスタの挿入方法を説明するための図である。
【図9】 この発明における実施の形態3の半導体集積回路の入力用レジスタの挿入方法を説明するための図である。
【図10】 この発明における実施の形態3の半導体集積回路の出力用レジスタの挿入方法を説明するための図である。
【図11】 この発明における実施の形態3の半導体集積回路の出力用レジスタの挿入方法を説明するための図である。
【図12】 この発明におけるテスト生成プログラムおよびその入出力を示す概念図である。
【図13】 埋め込みコアテストセル挿入処理の動作を説明するためのフローチャートである。
【図14】 埋め込みコアテストセル挿入処理で挿入される入力用の埋め込みコアテストセルの構成を示す回路図である。
【図15】 埋め込みコアテストセル挿入処理で挿入される出力用の埋め込みコアテストセルの構成を示す回路図である。
【図16】 埋め込みコアテストセルが挿入前の半導体集積回路の構成を示すブロック図である。
【図17】 埋め込みコアテストセルが挿入後の半導体集積回路の構成を示すブロック図である。
【図18】 図16に示した半導体集積回路のフロアプラン情報の埋め込みコアおよびシリアル入力信号の端子位置を示すフロアプランのイメージ図である。
【図19】 スキャンパス接続処理で用いるスキャンフリップフロップの一例を示す回路図である。
【図20】 スキャンパス接続処理後の半導体集積回路の構成を示すブロック図である。
【図21】 埋め込みコア機能テストパターン変換処理の動作を説明するためのフローチャートである。
【図22】 埋め込みコア機能テストパターン変換処理の動作を説明するためのタイムチャートである。
【符号の説明】
1,2,3,3a,7 半導体集積回路、6a,731,732,733 入力用の埋め込みコアテストセル、6b,741,742,743 出力用の埋め込みコアテストセル、8 スキャンフリップフロップ、11,31,71 埋め込みコア、12 カスタムロジック部、13 テスト用シフトレジスタ、21 TCM、22 セレクタ、33,35,37,710,711,712,720,721,722,751,752,753,760,761,762,763,764,765,766 配線、40 回路接続情報、41 フロアプラン情報、42 ライブラリ情報、43 埋め込みコア機能テストパターン、44 レイアウト指定情報、45 スキャンパス接続順番情報、46 埋め込みコアテストセル挿入後の回路接続情報、47 スキャンパス接続後の回路接続情報、48スキャンパスを利用した埋め込みコア機能テストパターン、49 スキャンパステストパターン、75,121,322 組み合わせ回路、122 スキャンパス回路、32,131,132,133,134 入力用レジスタ、36,135,136 出力用レジスタ、321 内部ロジック、61,62,65,72,73,74,1221,1222,1223,1311,1315 フリップフロップ、63,66,1224,1225,1226,1313,1314,1316 マルチプレクサ、1312 ゲート回路。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a semiconductor integrated circuit and a test generation program for easily testing a semiconductor integrated circuit having a built-in embedded core.
[0002]
[Prior art]
In recent years, due to improvements in multilayer wiring technology and miniaturization technology in semiconductor manufacturing, a single system can be realized by mounting functional cores such as a microprocessor, DSP, analog circuit, and memory on one chip of a semiconductor integrated circuit. Yes. On the other hand, since the scale of a single-chip mounting gate has increased, a method for testing a semiconductor integrated circuit after manufacture has become a problem.
[0003]
Usually, when testing a semiconductor integrated circuit, a custom logic unit designed using a logic circuit such as an AND circuit, an OR circuit, a flip-flop, a microprocessor, a DSP (Digital Signal Processor), an analog circuit A test method different from that for a functional core such as a memory is used.
[0004]
The test of the custom logic part uses a scan path test method in order to obtain a high failure detection rate. The logic circuit of the custom logic unit is generally composed of a sequential circuit such as a flip-flop and a combinational circuit such as an AND circuit and an OA circuit. In the scan path test method, the logic circuit of the custom logic section is divided into two circuits, a sequential circuit and a combinational circuit.
[0005]
Specifically, all or part of the custom logic unit is replaced with a scan flip-flop with a selector, or a selector is inserted in front of the flip-flop. These flip-flops are connected in a chain to form a shift register (scan chain). During the test, the test pattern of the combinational circuit is serially input to this shift register, and the test pattern is set in the flip-flop by the shift operation. Then, the normal operation is performed for one clock, the combinational circuit is operated, and the operation result of the combinational circuit is latched in the flip-flop. Again, the output result of the combinational circuit operated by the test pattern set by the shift operation is output to the external terminal. This output is compared with an expected value prepared in advance. By repeating these operations, you can simply add an input terminal that specifies the test operation or normal operation, a test pattern input terminal that inputs the test pattern serially, and an output terminal that outputs the test result. Test can be done.
[0006]
In a scan path test circuit, the construction of a scan path circuit and generation of a test vector can be automatically performed by an EDA (Electronic Design Automation) tool. As a result, the circuit designer can concentrate on circuit design for realizing normal system operation, and can greatly reduce the effort for designing a test circuit and a test pattern.
[0007]
A procedure for converting a general synchronous design logic circuit having no scan path circuit into a scan path circuit will be described. First, a selector is inserted before each flip-flop of the custom logic unit. Connects to the select terminal of each selector and an external terminal for inputting a test mode switching signal. The input of the selector selected when the test mode switching signal is a signal indicating the test mode is connected to an input terminal for inputting a test pattern and a terminal of another flip-flop. The signal input to the flip-flop before the selector is inserted is connected to the input of the selector that is selected when the test mode switching signal is a signal indicating the normal mode. Then, the output of the flip-flop as the final stage is connected to the external terminal. As a result, a scan chain can be configured.
[0008]
In the scan path circuit, a scan flip-flop, which is a functional cell in which a selector and a flip-flop are integrated, is generally used. A conversion procedure in this case will be described. First, each flip-flop of the custom logic unit is replaced with a scan flip-flop. Subsequently, a test mode switching signal is connected to a selection terminal of all scan flips. The selector selected when the test mode switching signal is a signal indicating the test mode includes an input terminal for inputting a test pattern and a terminal of another scan flip-flop, and the test mode switching signal indicates the normal mode. The signal input to the flip-flop before the replacement with the scan flip-flop is connected to the input of the selector selected in the case of a signal. Then, the output of the scan flip-flop as the final stage is connected to the external terminal. In this way, the conversion to the scan path circuit is completed by connecting the paths by the output of the scan flip-flops so as to have a chain structure.
[0009]
Next, a conventional technique for efficiently testing an embedded core having one or a plurality of functional cores will be described. A conventional semiconductor integrated circuit includes a test mode matrix composed of a plurality of multiplexers, an embedded core, a custom logic unit, and an I / O circuit having an interface between the external terminal of the semiconductor integrated circuit and the custom logic unit. I have. The test mode matrix is composed of a plurality of multiplexers, and interconnects the embedded core, the custom logic unit, and the I / O circuit. By connecting the I / O circuit to an external tester, standard test vectors are used for embedded core testing and normal circuit operation. The test mode matrix performs connection between the embedded core and the custom logic unit based on a specific mode selected by a control signal transmitted from an external terminal via an I / O circuit (for example, , See Patent Document 1).
[0010]
Another semiconductor integrated circuit has two modes for testing a plurality of functional cores. The first mode is associated with a respective core test control block (TCB) for each core to control each of these cores to the test mode, and each core has a core shift register for holding test control data. The functional cores are linked in series in the chain, and each functional core shifts test control data along the chain. The second mode provides test control data to the associated core. A system TCB is provided in the chain, and the output terminal of the system TCB is connected to each functional core. When the system TCB receives a specific test control data set, a system test hold signal is supplied to the functional core, and the functional core Is switched to either the first mode or the second mode (see, for example, Patent Document 2).
[0011]
[Patent Document 1]
JP 09-0454705 A
[Patent Document 2]
Japanese Patent Application Laid-Open No. 11-525783
[0012]
[Problems to be solved by the invention]
In the former prior art, a test mode matrix connects a buried core and a custom logic unit based on a control signal input via an I / O circuit to perform a test, thereby completing a complete tester for a semiconductor integrated circuit. Maintainability.
[0013]
In addition, the latter prior art architecture does not require a complex state machine of functional cores according to the boundary scan test standard for supplying test control data to each functional core, and various functional cores and systems. The number of interconnections between the two can be reduced.
[0014]
However, in both conventional technologies, the custom logic unit and the embedded core in the semiconductor integrated circuit must be tested separately. Therefore, there has been a problem that the custom logic unit and the embedded core must each have a dedicated test terminal and a test circuit. That is, there are problems that the number of dedicated test terminals increases for testing the semiconductor integrated circuit, and that the test time increases due to the increase in the length of the test vector.
[0015]
In addition, a test circuit for directly accessing the input / output terminals of the functional core from the outside of the semiconductor integrated circuit is provided. I / O terminals are required. As a result, when the number of input / output terminals of the semiconductor integrated circuit is small and a plurality of cores are incorporated, there is a problem that the test circuit and its control method are complicated and the circuit scale is increased.
[0016]
The present invention has been made in view of the above, and in a semiconductor integrated circuit having a custom logic portion and an embedded core, a semiconductor integrated circuit and a test generation for efficiently testing the embedded core by separating the custom logic portion and the embedded core portion The purpose is to obtain a program.
[0017]
[Means for Solving the Problems]
To achieve the above object, a semiconductor integrated circuit according to the present invention includes a custom logic having an embedded core having one or a plurality of functional cores, and a scan path circuit in which a combinational circuit and a plurality of scan flip-flops are chain-connected. In a semiconductor integrated circuit comprising: an input register connected to each input terminal of the embedded core, and connected to each output terminal of the embedded core, between the custom logic unit and the embedded core Output registers, and during the embedded core test operation, each of the input registers and each of the output registers is connected in a chain to form a scan path, and the embedded cores that are serially input Before setting the test pattern to each input register by shift operation When the gate signal for outputting the embedded core test pattern to the embedded core is asserted, the embedded core is operated with the embedded core test pattern set in each input register, and the output is output to each output register. And a test shift register that latches and outputs the output of the latched embedded core to an external terminal and a first stage scan flip-flop of the scan path circuit by a shift operation when the gate signal is negated. .
[0018]
According to the present invention, the semiconductor integrated circuit is connected between the custom logic unit and the embedded core, each of the input registers connected to the input terminal of the embedded core and the output terminal of the embedded core when testing the embedded core. The test pattern of the embedded core that is serially input by being chain-connected to each output register to be set is set in each input register by a shift operation. When the gate signal for outputting the set test pattern of the embedded core to the embedded core is asserted, the embedded core is operated with the test pattern of the embedded core set in each input register, and the output is used for each output. When latched in a register and the gate signal is negated, the output of the latched embedded core is output to an external terminal by a shift operation.
[0019]
DETAILED DESCRIPTION OF THE INVENTION
Exemplary embodiments of a semiconductor integrated circuit and a test generation program according to the present invention will be explained below in detail with reference to the accompanying drawings.
[0020]
A first embodiment of the present invention will be described with reference to FIGS. FIG. 1 is a block diagram showing a configuration of a semiconductor integrated
[0021]
The embedded
[0022]
As shown in FIG. 2, the
[0023]
The
[0024]
The
[0025]
The
[0026]
FIG. 3 is a block diagram showing the configuration of the
[0027]
The input registers 131 to 134 control signals input to the embedded
[0028]
FIG. 4 is a circuit diagram showing an example of the
[0029]
The
[0030]
FIG. 5 is a circuit diagram showing an example of the
[0031]
The
[0032]
Next, the operation of the semiconductor integrated
[0033]
Next, the test operation of the embedded
[0034]
At time t2, the scan enable signal SE is changed from “0” to “1”, and data is input to the serial input signal SI. The
[0035]
At time t3, data D0 is input to the flip-
[0036]
At time t4, the gate signal Gate is changed from “1” to “0”. The
[0037]
At time t5, the output pattern of the embedded
[0038]
At time t6 after the operation of the embedded
[0039]
On the other hand, D6, D7, D8, D9, D10, and D11 which are the next input patterns of the embedded
[0040]
Next, a test operation of the
[0041]
A serial input signal SI is input in synchronization with the clock CLK, and a test pattern is input to the flip-
[0042]
Next, the scan enable signal SE is set to “1”. As a result, the flip-
[0043]
In order to test the
[0044]
As described above, in the first embodiment, the
[0045]
Further, the first stage flip-flop of the
[0046]
Furthermore, since it is configured by a scan flip-flop for chaining input registers to form a shift register and a gate circuit for outputting a test pattern to the embedded
[0047]
A second embodiment of the present invention will be described with reference to FIG. In the semiconductor integrated
[0048]
The
[0049]
The
[0050]
Next, the test operation of the semiconductor integrated
[0051]
Next, based on the test mode select TMS and the clock CLK, the
[0052]
When the test pattern for all the input terminals of the embedded
[0053]
On the other hand, since the selection signal SEL is “0”, the
[0054]
Next, the test operation of the
[0055]
The
[0056]
Next, the
[0057]
As described above, in the second embodiment, the number of external terminals necessary for the test is reduced using the TCM. Therefore, even when the number of external terminals of the semiconductor integrated circuit is limited, the embedded core and the custom logic can be easily obtained. You can test the department.
[0058]
A third embodiment of the present invention will be described with reference to FIGS. In the third embodiment, a method for inserting a test shift register from a semiconductor integrated circuit realizing a desired function will be described.
[0059]
First, the insertion of the input register will be described. The semiconductor integrated
[0060]
When the
[0061]
Next, insertion of an output register will be described. As shown in FIG. 10A, the
[0062]
Further, when the
[0063]
As described above, in the third embodiment, when the input register constituting the test shift register is inserted, if the input signal to the embedded core is the output of the flip-flop, the flip-flop is connected to the input register. Used as a flip-flop. On the other hand, when inserting the output register constituting the test shift register, if the output signal of the embedded core is input to the flip-flop, the flip-flop is used as the flip-flop of the output register. Thereby, the flip-flops and multiplexers of the test shift register can be reduced. That is, the circuit scale for testing the semiconductor integrated circuit can be reduced.
[0064]
Embodiment 4 FIG.
A fourth embodiment of the present invention will be described with reference to FIGS. FIG. 12 is a conceptual diagram showing the test generation program and its input / output in the present invention.
[0065]
The
[0066]
The
[0067]
The
[0068]
The embedded core
[0069]
Next, the operation of the test circuit insertion program will be described. In the embedded core test cell insertion process (step S1), an embedded core test circuit is inserted based on the
[0070]
The operation of the embedded core test cell insertion process will be described in detail with reference to the flowchart of FIG. The
[0071]
The terminal direction of the terminal of the embedded core selected based on the
[0072]
In the case of the semiconductor integrated
[0073]
If the selected embedded core terminal is an output terminal, an embedded core test cell for output is selected (step S104). As shown in FIG. 15, the embedded
[0074]
In the case of the semiconductor integrated
[0075]
Based on the
[0076]
In the case of the semiconductor integrated
[0077]
As a result of the determination, if the terminal of the embedded core is not connected to the combinational circuit, that is, if it is connected to a flip-flop, the embedded core test cell is replaced with the flip-flop of the embedded core test cell. Insert (step S107). Specifically, as described in the third embodiment, in the case of the input terminal of the embedded core, the flip-
[0078]
The input terminal F of the embedded
[0079]
Based on the changed
[0080]
When the embedded core test cells for all the embedded core terminals are inserted, the scan path connection order of the flip-flops in the embedded core test cell is extracted (step S109). Specifically, based on the
[0081]
FIG. 18 is an image diagram of the floor plan showing the embedded
[0082]
When the scan path
[0083]
In the case of the semiconductor integrated
[0084]
When the
[0085]
In the case of the semiconductor integrated
[0086]
When the connection is completed, circuit connection information 46 after insertion of the embedded core test cell, which is connection information of the semiconductor integrated circuit after insertion of the embedded core test circuit, is output (step S112).
[0087]
When the embedded core test cell insertion process is completed, a scan path connection process (step S2) is performed. In the scan path connection processing, first, circuit connection information 46 after insertion of the embedded core test cell is read, and all flip-flops in the circuit are scan flip-flops with multiplexers or logically equivalent circuits as shown in FIG. Convert to Specifically, the flip-
[0088]
After all the flip-flops are converted into scan flip-
[0089]
FIG. 20 is a conceptual diagram showing the semiconductor integrated
[0090]
When the scan path connection process ends, the embedded core test pattern conversion process (step S3) is executed based on the circuit connection information 47 after the scan path connection and the embedded core
[0091]
First, the circuit connection information 47, the
[0092]
When the circuit to be embedded core test is specified, a test rule check is performed based on the embedded core terminal information defined in the
[0093]
When the test rule check is completed, the test pattern is converted (step S303). Test pattern conversion will be described with reference to the semiconductor integrated
[0094]
The embedded core test pattern inputs C1, E1, and F1 in the parallel format having the period T11 of the embedded core function test input pattern are converted into the shift period T12 of the pattern after conversion, and the embedded core test pattern expected values A1, B1, and D1 are the shift period. Assign to each T13. That is, the expected value of the embedded core test pattern in parallel format is assigned to the input of the embedded test pattern in parallel format after one shift period.
[0095]
The order of assignment is from the flip-flop of the embedded core test cell at the head of the chain-connected embedded core test cells, that is, from the flip-flop connected to the external terminal of the semiconductor integrated
[0096]
For the control signals, the test enable signal TE is fixed to “1”, the scan enable signal SE is set to “1”, and the gate signal Gate is set to “0”. After the test pattern to be input to the terminal C of the embedded
[0097]
In this way, the embedded core
[0098]
Finally, test pattern automatic generation processing is performed (step S4). In the test pattern automatic generation process, the
[0099]
As described above, in the fourth embodiment, in the embedded core test cell insertion process, test cells are inserted into the input terminal and the output terminal of the embedded core based on the
[0100]
Also, in the embedded core test pattern conversion process, the embedded core
[0101]
In the fourth embodiment, the embedded core test cell insertion process, the scan path connection process, the embedded core test pattern conversion process, and the test pattern automatic generation process operate as individual processes, and an external storage medium such as a file is used between the processes. In the above description, the data is exchanged via the network. That is, each processing has been described as a configuration that can operate as an individual program. However, the processing may be realized as a single program and shared as data constructed in the memory instead of the external storage medium.
[0102]
Embodiment 5 FIG.
The first to fourth embodiments have been described based on a so-called mode select method using a scan flip-flop that uses a single clock CLK to switch between a test operation and a normal operation using a scan enable signal SE. However, the semiconductor integrated circuit and the test generation program according to the present invention can also be applied to a clock select system in which a test and a normal operation are controlled by individual clocks. By replacing the scan enable signal SE in the first to fourth embodiments with a scan clock and similarly performing a scan path design, the same function can be realized, and the same effect as in the first to fourth embodiments can be obtained. Can do.
[0103]
【The invention's effect】
As described above, according to the semiconductor integrated circuit of the present invention, between the custom logic unit and the embedded core, when testing the embedded core, each input register connected to the input terminal of the embedded core, and the embedded The test pattern of the embedded core that is serially input by being chain-connected to each output register connected to the output terminal of the core is set in each input register by a shift operation. When the gate signal for outputting the set test pattern of the embedded core to the embedded core is asserted, the embedded core is operated with the test pattern of the embedded core set in each input register, and the output is used for each output. When latched in a register and the gate signal is negated, the output of the latched embedded core is output to an external terminal by a shift operation. As a result, the test pattern of the embedded core can be shortened and the semiconductor integrated circuit can be efficiently tested.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a semiconductor integrated circuit according to a first embodiment of the present invention.
FIG. 2 is a block diagram showing a configuration of a custom logic unit shown in FIG.
FIG. 3 is a block diagram showing a configuration of a test shift register shown in FIG. 1;
4 is a circuit diagram showing an example of an input register shown in FIG. 3. FIG.
FIG. 5 is a circuit diagram showing an example of the output register shown in FIG. 3;
6 is a time chart for explaining a test operation of the embedded core of the semiconductor integrated circuit according to the first embodiment of the present invention. FIG.
FIG. 7 is a block diagram showing a configuration of a semiconductor integrated circuit according to a second embodiment of the present invention.
FIG. 8 is a diagram for explaining a method for inserting an input register of a semiconductor integrated circuit according to a third embodiment of the present invention.
FIG. 9 is a diagram for explaining a method for inserting an input register of a semiconductor integrated circuit according to a third embodiment of the present invention.
10 is a diagram for explaining a method for inserting an output register of a semiconductor integrated circuit according to a third embodiment of the present invention; FIG.
11 is a diagram for explaining a method for inserting an output register of a semiconductor integrated circuit according to a third embodiment of the present invention; FIG.
FIG. 12 is a conceptual diagram showing a test generation program and its input / output in the present invention.
FIG. 13 is a flowchart for explaining an operation of an embedded core test cell insertion process;
FIG. 14 is a circuit diagram showing a configuration of an embedded core test cell for input inserted in an embedded core test cell insertion process.
FIG. 15 is a circuit diagram showing a configuration of an embedded core test cell for output inserted in an embedded core test cell insertion process;
FIG. 16 is a block diagram showing a configuration of a semiconductor integrated circuit before an embedded core test cell is inserted.
FIG. 17 is a block diagram showing a configuration of a semiconductor integrated circuit after an embedded core test cell is inserted.
18 is an image of the floor plan showing the embedded core of the floor plan information of the semiconductor integrated circuit shown in FIG. 16 and the terminal position of the serial input signal.
FIG. 19 is a circuit diagram showing an example of a scan flip-flop used in a scan path connection process.
FIG. 20 is a block diagram showing a configuration of a semiconductor integrated circuit after a scan path connection process;
FIG. 21 is a flowchart for explaining an operation of embedded core function test pattern conversion processing;
FIG. 22 is a time chart for explaining the operation of embedded core function test pattern conversion processing;
[Explanation of symbols]
1, 2, 3, 3a, 7 semiconductor integrated circuit, 6a, 731, 732, 733 embedded core test cell for input, 6b, 741, 742, 743 embedded core test cell for output, 8 scan flip-flop, 11, 31, 71 Embedded core, 12 Custom logic section, 13 Test shift register, 21 TCM, 22 Selector, 33, 35, 37, 710, 711, 712, 720, 721, 722, 751, 752, 753, 760, 761 , 762,763,764,765,766 wiring, 40 circuit connection information, 41 floor plan information, 42 library information, 43 embedded core function test pattern, 44 layout designation information, 45 scan campus connection order information, 46 embedded core test cell Circuit connection information after insertion, 47 scan patterns Circuit connection information after connection, embedded core function test pattern using 48 scan paths, 49 scan path test pattern, 75, 121, 322 combination circuit, 122 scan path circuit, 32, 131, 132, 133, 134 input register 36, 135, 136 output register, 321 internal logic, 61, 62, 65, 72, 73, 74, 1221, 1222, 1223, 1311, 1315 flip-flop, 63, 66, 1224, 1225, 1226, 1313 1314, 1316 Multiplexer, 1312 Gate circuit.
Claims (7)
前記カスタムロジック部と前記埋め込みコアとの間に、前記埋め込みコアのそれぞれの入力端子に接続される入力用レジスタと、前記埋め込みコアのそれぞれの出力端子に接続される出力用レジスタとを有し、前記埋め込みコアのテスト動作時には、前記各入力用レジスタと前記各出力用レジスタとがチェーン接続されてスキャンパスを構成し、シリアルに入力される前記埋め込みコアのテストパターンをシフト動作により該各入力用レジスタに設定し、設定した前記埋め込みコアのテストパターンを埋め込みコアに出力するためのゲート信号がアサートの時に、前記各入力用レジスタに設定した埋め込みコアのテストパターンで前記埋め込みコアを動作させ、その出力を前記各出力用レジスタにラッチして、前記ゲート信号がネゲートの時に、ラッチした埋め込みコアの出力をシフト動作により外部端子と前記スキャンパス回路の初段のスキャンフリップフロップとに出力するテスト用シフトレジスタ、
を備えることを特徴とする半導体集積回路。In a semiconductor integrated circuit comprising: an embedded core having one or more functional cores; and a custom logic unit having a combination circuit and a scan path circuit in which a plurality of scan flip-flops are chain-connected,
Between the custom logic unit and the embedded core, an input register connected to each input terminal of the embedded core, and an output register connected to each output terminal of the embedded core, At the time of the embedded core test operation, the input registers and the output registers are connected in a chain to form a scan path, and the test pattern of the embedded core that is input serially is shifted by the shift operation. When the gate signal for outputting the set embedded core test pattern to the embedded core is asserted, the embedded core is operated with the embedded core test pattern set in each input register, When the output is latched in each output register and the gate signal is negated , The test shift register for outputting the output of the latched embedded cores by shift operation and the first-stage scan flip-flops of said external terminals scan path circuit,
A semiconductor integrated circuit comprising:
前段および後段の入力用レジスタまたは出力用レジスタとチェーン接続されてシフトレジスタを構成するためのスキャンフリップフロップと、
前記埋め込みコアにテストパターンの出力を制御するゲート回路と、
を備え、
前記出力用レジスタは、
前段および後段の入力用レジスタまたは出力用レジスタとチェーン接続されてシフトレジスタを構成するためのスキャンフリップフロップと、
前記埋め込みコアの出力と前記スキャンフリップフロップの出力とのどちらかを選択して前記カスタムロジック部に出力するマルチプレクサと、
を備えることを特徴とする請求項1に記載の半導体集積回路。The input register is
A scan flip-flop configured to form a shift register in a chain connection with an input register or output register in the preceding stage and the subsequent stage;
A gate circuit for controlling the output of a test pattern in the embedded core;
With
The output register is
A scan flip-flop configured to form a shift register in a chain connection with an input register or output register in the preceding stage and the subsequent stage;
A multiplexer that selects one of the output of the embedded core and the output of the scan flip-flop and outputs it to the custom logic unit;
The semiconductor integrated circuit according to claim 1, comprising:
を備えることを特徴とする請求項1または2に記載の半導体集積回路。A test for generating a control signal for controlling the test shift register and the scan path circuit based on a test mode select signal input from an external terminal, a clock signal, and a test pattern of the embedded core input serially Control module,
The semiconductor integrated circuit according to claim 1, further comprising:
前記テストセル挿入後の接続に変更した回路接続情報に定義されているフリップフロップをスキャンフリップフロップに置換してチェーン接続し、スキャンパス回路を生成した後のセル情報および接続情報に変更した回路接続情報を生成するスキャンパス接続処理ステップと、
前記埋め込みコアをテストするためのテストパターンおよび期待値がパラレル形式で定義されている埋め込みコア機能テストパターンと、前記ライブラリ情報に基づいて、前記スキャンパス回路を生成した後のセル情報および接続情報に変更した回路接続情報の外部端子に対応して、前記埋め込みコアのテストに必要な制御信号を付加し、前記埋め込みコア機能テストパターンを変換する埋め込みコアテストパターン変換処理ステップと、
前記スキャンパス回路を生成した後のセル情報および接続情報に変更した回路接続情報の埋め込みコア以外のカスタムロジック部のテストパターンを生成するテストパターン自動生成処理ステップと、
を備えることを特徴とするテスト生成プログラム。Cell connection information defining cell information defining the embedded core and the functional cell, connection information indicating connection between the embedded core and the functional cell, and the embedded core and functional cell defined in the circuit connection information Input terminal of the embedded core based on floor plan information in which terminal information and position information of the embedded core are defined, and library information in which logic information, delay information, and terminal attributes of the embedded core and functional cells are defined And an embedded core test cell insertion processing step for inserting a test cell into the output terminal and generating circuit connection information changed to cell information and connection information after the test cell insertion,
The circuit connection changed to the cell information and connection information after generating the scan path circuit by replacing the flip-flop defined in the circuit connection information changed to the connection after the test cell insertion with the scan flip-flop A scan path connection processing step for generating information;
Based on the embedded core function test pattern in which the test pattern for testing the embedded core and the expected value are defined in parallel format, and the library information, the cell information and the connection information after the scan path circuit is generated An embedded core test pattern conversion processing step for converting the embedded core function test pattern by adding a control signal necessary for the embedded core test corresponding to the external terminal of the changed circuit connection information;
Test pattern automatic generation processing step for generating a test pattern of a custom logic unit other than the embedded core of the circuit connection information changed to the cell information and connection information after generating the scan path circuit;
A test generation program comprising:
前記埋め込みコアの入出力端子にフリップフロップが接続されている場合には、接続されているフリップフロップを前記テストセル内のフリップフロップと共有することを特徴とする請求項4に記載のテスト生成プログラム。The embedded core test cell insertion step includes:
5. The test generation program according to claim 4, wherein when a flip-flop is connected to an input / output terminal of the embedded core, the connected flip-flop is shared with the flip-flop in the test cell. .
前記埋め込みコアの端子位置に基づいて、前記各テストセルを接続する配線が最短となるように配置する制約条件であるレイアウト指定情報およびスキャンパス接続順番情報を生成し、
前記スキャンパス接続処理ステップは、
前記レイアウト指定情報および前記スキャンパス接続順番情報に基づいて前記スキャンフリップフロップを接続することを特徴とする請求項4または5に記載のテスト生成プログラム。The embedded core test cell insertion step includes:
Based on the terminal position of the embedded core, generating layout designation information and scan path connection order information which are constraints that arrange the wirings connecting the test cells to be the shortest,
The scan path connection processing step includes:
6. The test generation program according to claim 4, wherein the scan flip-flop is connected based on the layout designation information and the scan path connection order information.
前記カスタムロジック部内に構成されるスキャンパス回路の初段のフリップフロップと前記テストセルが構成するスキャンパス回路の最終段のフリップフロップとを接続する配線が最短となるように配置する制約条件をさらに含むことを特徴とする請求項6に記載のテスト生成プログラム。The layout designation information is
It further includes a constraint condition that the wiring connecting the first stage flip-flop of the scan path circuit configured in the custom logic unit and the last stage flip-flop of the scan path circuit configured by the test cell is arranged to be the shortest. The test generation program according to claim 6.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003111407A JP4223319B2 (en) | 2003-04-16 | 2003-04-16 | Semiconductor integrated circuit and test generation program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003111407A JP4223319B2 (en) | 2003-04-16 | 2003-04-16 | Semiconductor integrated circuit and test generation program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004320433A JP2004320433A (en) | 2004-11-11 |
JP4223319B2 true JP4223319B2 (en) | 2009-02-12 |
Family
ID=33471970
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003111407A Expired - Fee Related JP4223319B2 (en) | 2003-04-16 | 2003-04-16 | Semiconductor integrated circuit and test generation program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4223319B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007187458A (en) * | 2006-01-11 | 2007-07-26 | Nec Electronics Corp | Scan flip-flop circuit and semiconductor integrated circuit device |
JP4839856B2 (en) * | 2006-01-23 | 2011-12-21 | 富士通株式会社 | Scan chain extraction program, scan chain extraction method, and test apparatus |
-
2003
- 2003-04-16 JP JP2003111407A patent/JP4223319B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004320433A (en) | 2004-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6686759B1 (en) | Techniques for testing embedded cores in multi-core integrated circuit designs | |
JP3851782B2 (en) | Semiconductor integrated circuit and test method thereof | |
WO2004057357A1 (en) | Connecting multiple test access port controllers through a single test access port | |
JP2007525684A (en) | Test circuit and method for hierarchical core | |
US5809039A (en) | Semiconductor integrated circuit device with diagnosis function | |
JP2006343151A (en) | Scanning test circuit and method for arranging the same | |
JP2004078759A (en) | Method for designing integrated circuit having scan function | |
JP4512934B2 (en) | Layout design and timing adjustment method and apparatus for logically designed integrated circuit, program for executing the method, and computer-readable recording medium on which the program is recorded | |
US8533548B2 (en) | Wrapper cell for hierarchical system on chip testing | |
JP4223319B2 (en) | Semiconductor integrated circuit and test generation program | |
US6654939B2 (en) | Method of designing logic circuit, and computer product | |
JP5806050B2 (en) | Output control scan flip-flop, semiconductor integrated circuit having the same, and method for designing semiconductor integrated circuit | |
JP2005257366A (en) | Semiconductor circuit device and scan test method concerning semiconductor circuit | |
US20060242507A1 (en) | Achieving Desired Synchronization at Sequential Elements While Testing Integrated Circuits Using Sequential Scan Techniques | |
JPWO2012042586A1 (en) | Integrated circuit | |
JP4610919B2 (en) | Semiconductor integrated circuit device | |
US20040030976A1 (en) | Partial BIST with recording of the connections between individual blocks | |
JPH1173440A (en) | Emulation device | |
JP3278833B2 (en) | Logic circuit test method, test input circuit and test output circuit | |
Habiby et al. | RC-IJTAG: A Methodology for Designing Remotely-Controlled IEEE 1687 Scan Networks | |
JP2009175154A (en) | Semiconductor integrated circuit and its design method | |
US6650139B1 (en) | Modular collection of spare gates for use in hierarchical integrated circuit design process | |
JP2002009238A (en) | Scan path design method | |
JPH0731225B2 (en) | Semiconductor integrated circuit device | |
US20050005212A1 (en) | Electronic component with output buffer control |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060405 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080428 |
|
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: 20081118 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20081119 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111128 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121128 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121128 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131128 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |