(57)【要約】【課題】カスタムロジック部と埋め込みコアを有する半導体集積回路において、カスタムロジック部と埋め込みコア部とを分離して効率よく埋め込みコアをテストする半導体集積回路およびテスト生成プログラムを得ること。【解決手段】埋め込みコア１１とカスタムロジック部１２との間に、入力用レジスタおよび出力用レジスタで埋め込みコア１１テスト用のスキャンパス回路を構成するテスト用シフトレジスタ１３を備え、カスタムロジック部１２内のスキャンパス回路１２２の初段のフリップフロップとテスト用シフトレジスタ１３の最終段のフリップフロップとを接続する。【選択図】      図１
2004320433.tif 000002
【特許請求の範囲】
【請求項１】
１または複数の機能コアを有する埋め込みコアと、組合せ回路と複数のスキャンフリップフロップがチェーン接続されるスキャンパス回路とを有するカスタムロジック部と、を備える半導体集積回路において、
前記カスタムロジック部と前記埋め込みコアとの間に、前記埋め込みコアのそれぞれの入力端子に接続される入力用レジスタと、前記埋め込みコアのそれぞれの出力端子に接続される出力用レジスタとを有し、前記埋め込みコアのテスト動作時には、前記各入力用レジスタと前記各出力用レジスタとがチェーン接続されてスキャンパスを構成し、シリアルに入力される前記埋め込みコアのテストパターンをシフト動作により該各入力用レジスタに設定し、設定した前記埋め込みコアのテストパターンを埋め込みコアに出力するためのゲート信号がアサートの時に、前記各入力用レジスタに設定した埋め込みコアのテストパターンで前記埋め込みコアを動作させ、その出力を前記各出力用レジスタにラッチして、前記ゲート信号がネゲートの時に、ラッチした埋め込みコアの出力をシフト動作により外部端子と前記スキャンパス回路の初段のスキャンフリップフロップとに出力するテスト用シフトレジスタ、
を備えることを特徴とする半導体集積回路。
【請求項２】
前記入力用レジスタは、
前段および後段の入力用レジスタまたは出力用レジスタとチェーン接続されてシフトレジスタを構成するためのスキャンフリップフロップと、
前記埋め込みコアにテストパターンの出力を制御するゲート回路と、
を備え、
前記出力用レジスタは、
前段および後段の入力用レジスタまたは出力用レジスタとチェーン接続されてシフトレジスタを構成するためのスキャンフリップフロップと、
前記埋め込みコアの出力と前記スキャンフリップフロップの出力とのどちらかを選択して前記カスタムロジック部に出力するマルチプレクサと、
を備えることを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
外部端子より入力されるテストモードセレクト信号、クロック信号および前記シリアルに入力される埋め込みコアのテストパターンに基づいて、前記テスト用シフトレジスタおよび前記スキャンパス回路を制御するための制御信号を生成するテストコントロールモジュール、
を備えることを特徴とする請求項１または２に記載の半導体集積回路。
【請求項４】
埋め込みコアと機能セルとを定義するセル情報および埋め込みコアと機能セルとの間の接続を示す接続情報が定義されている回路接続情報と、当該回路接続情報に定義されている埋め込みコアおよび機能セルの端子情報と位置情報とが定義されているフロアプラン情報と、埋め込みコアおよび機能セルの論理情報と遅延情報と端子属性とが定義されているライブラリ情報とに基づいて、前記埋め込みコアの入力端子および出力端子にテストセルを挿入し、当該テストセル挿入後のセル情報および接続情報に変更した回路接続情報を生成する埋め込みコアテストセル挿入処理ステップと、
前記テストセル挿入後の接続に変更した回路接続情報に定義されているフリップフロップをスキャンフリップフロップに置換してチェーン接続し、スキャンパス回路を生成した後のセル情報および接続情報に変更した回路接続情報を生成するスキャンパス接続処理ステップと、
前記埋め込みコアをテストするためのテストパターンおよび期待値がパラレル形式で定義されている埋め込みコア機能テストパターンと、前記ライブラリ情報に基づいて、前記スキャンパス回路を生成した後のセル情報および接続情報に変更した回路接続情報の外部端子に対応して、前記埋め込みコアのテストに必要な制御信号を付加し、前記埋め込みコア機能テストパターンを変換する埋め込みコアテストパターン変換処理ステップと、
前記スキャンパス回路を生成した後のセル情報および接続情報に変更した回路接続情報の埋め込みコア以外のカスタムロジック部のテストパターンを生成するテストパターン自動生成処理ステップと、
を備えることを特徴とするテスト生成プログラム。
【請求項５】
前記埋め込みコアテストセル挿入ステップは、
前記埋め込みコアの入出力端子にフリップフロップが接続されている場合には、接続されているフリップフロップを前記テストセル内のフリップフロップと共有することを特徴とする請求項４に記載のテスト生成プログラム。
【請求項６】
前記埋め込みコアテストセル挿入ステップは、
前記埋め込みコアの端子位置に基づいて、前記各テストセルを接続する配線が最短となるように配置する制約条件であるレイアウト指定情報およびスキャンパス接続順番情報を生成し、
前記スキャンパス接続処理ステップは、
前記レイアウト指定情報および前記スキャンパス接続順番情報に基づいて前記スキャンフリップフロップを接続することを特徴とする請求項４または５に記載のテスト生成プログラム。
【請求項７】
前記レイアウト指定情報は、
前記カスタムロジック部内に構成されるスキャンパス回路の初段のフリップフロップと前記テストセルが構成するスキャンパス回路の最終段のフリップフロップとを接続する配線が最短となるように配置する制約条件をさらに含むことを特徴とする請求項６に記載のテスト生成プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、埋め込みコアを内蔵した半導体集積回路のテストを容易に行うための半導体集積回路およびテスト生成プログラムに関するものである。
【０００２】
【従来の技術】
近年、半導体製造の多層配線技術や微細化技術の向上により、半導体集積回路の１チップにマイクロプロセッサ、ＤＳＰ、アナログ回路、メモリなどの機能コアを搭載して、１つのシステムが実現可能となっている。一方、１チップの搭載ゲート規模が大きくなったことにより、製造後の半導体集積回路のテスト方法が問題となっている。
【０００３】
通常、半導体集積回路をテストする場合、アンド（ＡＮＤ）回路，オア（ＯＲ）回路，フリップフロップなどの論理回路を用いて設計するカスタムロジック部と、マイクロプロセッサ、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、アナログ回路、メモリなどの機能コアとは、別のテスト方法が用いられる。
【０００４】
カスタムロジック部のテストは、高い故障検出率を得るために、スキャンパステスト方式が用いられる。カスタムロジック部の論理回路は、一般的に、フリップフロップなどの順序回路と、ＡＮＤ回路、ＯＡ回路などの組合せ回路で構成される。スキャンパステスト方式では、カスタムロジック部の論理回路を順序回路と組合せ回路の２つに分けてテストする。
【０００５】
具体的には、カスタムロジック部の全て、もしくは一部のフリップフロップをセレクタ付のスキャンフリップフロップに置き換えるか、フリップフロップの前段にセレクタを挿入する。そして、これらのフリップフロップをチェーン接続してシフトレジスタ（スキャンチェーン）を構成する。テスト時には、このシフトレジスタに組合せ回路のテストパターンをシリアルに入力し、シフト動作により、フリップフロップにテストパターンを設定する。そして、１クロックだけ通常動作を行い、組合せ回路を動作させてフリップフロップに組合せ回路の動作結果をラッチする。ふたたび、シフト動作により設定したテストパターンにより動作した組合せ回路の出力結果を外部端子に出力する。この出力を予め準備した期待値と比較する。このような動作を繰り返すことにより、テスト動作か通常動作を指定する入力端子、シリアルにテストパターンを入力するテストパターンの入力端子およびテスト結果を出力する出力端子を追加するだけで、カスタムロジック部のテストを行うことができる。
【０００６】
また、スキャンパステスト方式の回路においては、スキャンパス回路の構築ならびにテストベクタの生成を、ＥＤＡ（Ｅｌｅｃｔｒｏｎｉｃ  Ｄｅｓｉｇｎ  Ａｕｔｏｍａｔｉｏｎ）ツールによって自動的に行うことが可能である。これによって、回路設計者は通常のシステム動作を実現する為の回路設計に注力でき、テスト回路およびテストパターンを設計する手間を大幅に削減できる。
【０００７】
スキャンパス回路を有さない一般的な同期設計の論理回路をスキャンパス方式の回路に変換する手順を説明する。まず、カスタムロジック部の各フリップフロップの前段にセレクタを挿入する。各セレクタのセレクト端子とテストモード切替信号を入力する外部端子と接続する。テストモード切替信号がテストモードを示す信号の場合に選択されるセレクタの入力には、テストパターンを入力する入力端子、他のフリップフロップの端子を接続する。テストモード切替信号が通常モードを示す信号の場合に選択されるセレクタの入力には、セレクタを挿入する前にフリップフロップに入力されていた信号を接続する。そして、最終段となるフリップフロップの出力を外部端子に接続する。これにより、スキャンチェーンを構成することができる。
【０００８】
なお、スキャンパス回路においては、セレクタとフリップフロップを統合した機能セルであるスキャンフリップフロップを用いるのが一般的である。この場合の変換手順を説明する。まず、カスタムロジック部の各フリップフロップをスキャンフリップフロップに置き換える。続いて、全スキャンフリップの選択端子にテストモード切替信号を接続する。そして、テストモード切替信号がテストモードを示す信号の場合に選択されるセレクタの入力には、テストパターンを入力する入力端子、他のスキャンフリップフロップの端子を、テストモード切替信号が通常モードを示す信号の場合に選択されるセレクタの入力には、スキャンフリップフロップに置き換える前にフリップフロップに入力されていた信号を接続する。そして、最終段となるスキャンフリップフロップの出力を外部端子に接続する。このように、スキャンフリップフロップの出力による経路が、チェーン構造になる様に接続することで、スキャンパス方式回路への変換が完了する。
【０００９】
つぎに、１または複数の機能コアを有する埋め込みコアを効率よくテストする従来技術を説明する。従来の半導体集積回路は、複数のマルチプレクサで構成されたテスト・モード・マトリクスと、埋め込みコアと、カスタムロジック部と、半導体集積回路の外部端子とカスタムロジック部のインターフェースを有するＩ／Ｏ回路とを備えている。テスト・モード・マトリクスは、複数のマルチプレクサで構成され、埋め込みコアと、カスタムロジック部と、Ｉ／Ｏ回路とを相互接続する。Ｉ／Ｏ回路を外部試験器に接続することにより、標準のテスト・ベクトルを使用して埋め込みコアのテストと通常の回路オペレーションを行う。テスト・モード・マトリックスは、外部端子からＩ／Ｏ回路を介して伝達される制御信号により選択された特定のモードに基づいて、埋め込みコアとカスタムロジック部との接続を行うようにしている（たとえば、特許文献１参照）。
【００１０】
また、別の半導体集積回路では、複数の機能コアをテストするために、２つのモードを備えている。第１モードは、各コアがこれらの各コアをテストモードに制御するためのそれぞれのコアテスト制御ブロック（ＴＣＢ）に関連づけられ、各機能コアがテスト制御データを保持するためのコアシフトレジスタを備え、前記機能コアがチェーン内に直列にリンクされ、前記各機能コアがテスト制御データをチェーンに沿ってシフトする。第２モードは、テスト制御データを関連するコアに供給する。チェーンにシステムＴＣＢを設け、そのシステムＴＣＢの出力端子を各機能コアに接続して、システムＴＣＢがある特定のテスト制御データセットを受取ったら、機能コアにシステムテストホールド信号を供給して、機能コアを第１モードか、第２モードのいずれかに切り換えるようにしている（たとえば、特許文献２参照）。
【００１１】
【特許文献１】
特開平０９−０５４７０５号公報
【特許文献２】
特開平１１−５２５７８３号公報
【００１２】
【発明が解決しようとする課題】
前者の従来技術では、Ｉ／Ｏ回路を介して入力される制御信号に基づいてテスト・モード・マトリクスが埋め込みコアとカスタムロジック部を接続してテストを行うことで、半導体集積回路の完全なテスタビリティを維持することができる。
【００１３】
また、後者の従来技術のアーキテクチャは、各機能コアにテスト制御データを供給するための、境界走査テスト標準規格にしたがう機能コアの複雑な状態マシーンを必要とせず、また、様々な機能コアとシステムとの間の相互接続部の数を抑えることができる。
【００１４】
しかしながら、両者の従来技術では、半導体集積回路内のカスタムロジック部と埋め込みコアとを別々にテストしなければならない。そのため、カスタムロジック部と埋め込みコアそれぞれに、テスト用専用端子やテスト回路を備えなければならないという問題があった。すなわち、半導体集積回路のテストを行うためにテスト専用端子が増えたり、テストベクタの長大化によるテスト時間の増大といった問題があった。
【００１５】
また、機能コアの入出力端子に半導体集積回路外部から直接アクセスする為のテスト回路を設け、この回路を使用してテストする場合には、半導体集積回路に、機能コアの入出力端子と同等以上の入出力端子が必要となる。これにより、半導体集積回路の入出力端子数が少なく、複数個のコアが内蔵されるような場合など、テスト回路やその制御方法が複雑化され回路規模の増大を招くという問題があった。
【００１６】
この発明は上記に鑑みてなされたもので、カスタムロジック部と埋め込みコアを有する半導体集積回路において、カスタムロジック部と埋め込みコア部とを分離して効率よく埋め込みコアをテストする半導体集積回路およびテスト生成プログラムを得ることを目的としている。
【００１７】
【課題を解決するための手段】
上記目的を達成するために、この発明にかかる半導体集積回路は、１または複数の機能コアを有する埋め込みコアと、組合せ回路と複数のスキャンフリップフロップがチェーン接続されるスキャンパス回路とを有するカスタムロジック部と、を備える半導体集積回路において、前記カスタムロジック部と前記埋め込みコアとの間に、前記埋め込みコアのそれぞれの入力端子に接続される入力用レジスタと、前記埋め込みコアのそれぞれの出力端子に接続される出力用レジスタとを有し、前記埋め込みコアのテスト動作時には、前記各入力用レジスタと前記各出力用レジスタとがチェーン接続されてスキャンパスを構成し、シリアルに入力される前記埋め込みコアのテストパターンをシフト動作により該各入力用レジスタに設定し、設定した前記埋め込みコアのテストパターンを埋め込みコアに出力するためのゲート信号がアサートの時に、前記各入力用レジスタに設定した埋め込みコアのテストパターンで前記埋め込みコアを動作させ、その出力を前記各出力用レジスタにラッチして、前記ゲート信号がネゲートの時に、ラッチした埋め込みコアの出力をシフト動作により外部端子と前記スキャンパス回路の初段のスキャンフリップフロップとに出力するテスト用シフトレジスタを備えることを特徴とする。
【００１８】
この発明によれば、半導体集積回路は、カスタムロジック部と埋め込みコアとの間に、埋め込みコアのテスト時には、埋め込みコアの入力端子に接続される各入力用レジスタと、埋め込みコアの出力端子に接続される各出力用レジスタとがチェーン接続されてシリアルに入力される埋め込みコアのテストパターンをシフト動作により各入力用レジスタに設定する。そして、設定した埋め込みコアのテストパターンを埋め込みコアに出力するためのゲート信号がアサートの時に、各入力用レジスタに設定した埋め込みコアのテストパターンで埋め込みコアを動作させ、その出力を前記各出力用レジスタにラッチして、ゲート信号がネゲートの時に、ラッチした埋め込みコアの出力をシフト動作により外部端子に出力するようにしている。
【００１９】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかる半導体集積回路およびテスト生成プログラムの好適な実施の形態を詳細に説明する。
【００２０】
実施の形態１．
図１〜図６を用いてこの発明の実施の形態１を説明する。図１は、この発明における実施の形態１の半導体集積回路１の構成を示すブロック図である。この発明における実施の形態１の半導体集積回路１は、埋め込みコア１１と、カスタムロジック部１２と、テスト用シフトレジスタ１３とを備えている。
【００２１】
埋め込みコア１１は、マイクロプロセッサ、ＤＳＰ、アナログ回路、メモリなどの機能コアを備えている。
【００２２】
カスタムロジック部１２は、図２に示すように、ＡＮＤ回路、ＯＲ回路などの組み合わせ回路１２１と、フリップフロップをチェーン接続したスキャンパス回路１２２とを備えている。
【００２３】
スキャンパス回路１２２は、複数（この場合は３つ）のフリップフロップ１２２１〜１２２３と、フリップフロップ１２２１〜１２２３の入力端子Ｄに接続されているマルチプレクサ１２２４〜１２２６とを備えている。
【００２４】
マルチプレクサ１２２４は、スキャンイネーブル信号ＳＥがアサート（この場合は“１”）の時にテスト用シフトレジスタ１３の出力であるスキャンアウトＣＳＯを、スキャンイネーブル信号ＳＥがネゲート（この場合は“０”）の時に組み合わせ回路１２１の出力を選択して、フリップフロップ１２２１に出力する。フリップフロップ１２２１は、クロックＣＬＫの立ち上がりでマルチプレクサ１２２４の出力をラッチして、組み合わせ回路１２１とマルチプレクサ１２２５とに出力する。マルチプレクサ１２２５は、スキャンイネーブル信号ＳＥが“１”の時にフリップフロップ１２２１の出力を、スキャンイネーブル信号ＳＥが“０”の時に組み合わせ回路１２１の出力を選択して、フリップフロップ１２２２に出力する。フリップフロップ１２２２は、クロックＣＬＫの立ち上がりでマルチプレクサ１２２５の出力をラッチして、組み合わせ回路１２１とマルチプレクサ１２２６とに出力する。マルチプレクサ１２２６は、スキャンイネーブル信号ＳＥが“１”の時にフリップフロップ１２２２の出力を、スキャンイネーブル信号ＳＥが“０”の時に組み合わせ回路１２１の出力を選択して、フリップフロップ１２２３に出力する。フリップフロップ１２２３は、クロックＣＬＫの立ち上がりでマルチプレクサ１２２６の出力をラッチする。そして、スキャンパス回路１２２の出力となるスキャンアウトＳＯを組み合わせ回路１２１と半導体集積回路１の外部端子とに出力する。
【００２５】
テスト用シフトレジスタ１３は、半導体集積回路１の外部端子から入力されるスキャンイネーブル信号ＳＥ、テストイネーブル信号ＴＥ、ゲート信号Ｇａｔｅに基づいて埋め込みコア１１の入出力信号を制御して、半導体集積回路１の外部端子から入力されるシリアル入力信号ＳＩを埋め込みコア１１に入力するとともに、シリアル入力信号ＳＩで動作した埋め込みコア１１の出力をラッチする。そして、ラッチした埋め込みコア１１の出力をシリアルに出力する。このシリアル出力であるスキャンアウトＣＳＯは、半導体集積回路１の外部端子とスキャンパス回路１２２とに出力される。
【００２６】
図３は、テスト用シフトレジスタ１３の構成を示すブロック図である。テスト用シフトレジスタ１３は、埋め込みコア１１の入力端子に接続される入力用レジスタ１３１〜１３４と、埋め込みコア１１の出力端子に接続される出力用レジスタ１３５，１３６とを備えている。入力用レジスタ１３１〜１３４は、同一の機能を備えている。また、出力用レジスタ１３５，１３６は同一の機能を備えている。
【００２７】
入力用レジスタ１３１〜１３４は、スキャンイネーブル信号ＳＥ、テストイネーブル信号ＴＥ、ゲート信号Ｇａｔｅに基づいて埋め込みコア１１に入力する信号を制御する。出力用レジスタ１３５，１３６は、スキャンイネーブル信号ＳＥ、テストイネーブル信号ＴＥに基づいて、埋め込みコア１１の出力を制御する。また、入力用レジスタ１３１〜１３４と出力用レジスタ１３５，１３６は、スキャンイネーブル信号ＳＥに基づいて、入力用レジスタ１３１、１３２、出力用レジスタ１３５，１３６、入力用レジスタ１３３，１３４の順にチェーン接続されてシフトレジスタ回路を構成する。入力用レジスタ１３１〜１３４および出力用レジスタ１３５，１３６は、ＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ）の標準規格１１４９．１に規定されているような周知の境界走査セルの構成を用いてもよい。
【００２８】
図４は、入力用レジスタ１３１の一例を示す回路図である。入力用レジスタ１３１は、フリップフロップ１３１１と、ゲート回路１３１２と、マルチプレクサ１３１３，１３１４とを備えている。
【００２９】
マルチプレクサ１３１３は、スキャンイネーブル信号ＳＥが  “１”の時にシリアル入力信号ＳＩを、スキャンイネーブル信号ＳＥが  “０”の時にカスタムロジック部１２から入力される信号を選択してフリップフロップ１３１１に出力する。フリップフロップ１３１１は、クロックＣＬＫの立ち上がりでマルチプレクサ１３１３の出力をラッチして、ゲート回路１３１２と後段の入力用レジスタまたは出力用レジスタとに出力する。ゲート回路１３１２は、ゲート信号Ｇａｔｅが“１”の時にフリップフロップ１３１１の出力をスルーにし、ゲート信号Ｇａｔｅが“０”の時にフリップフロップ１３１１の出力をラッチしてマルチプレクサ１３１４に出力する。マルチプレクサ１３１４は、テストイネーブル信号ＴＥがアサート（この場合は“１”）の時にゲート回路１３１２の出力を、テストイネーブル信号ＴＥがネゲート（この場合は“０”）の時にカスタムロジック部１２の出力を選択して埋め込みコア１１に出力する。
【００３０】
図５は、出力用レジスタ１３５の一例を示す回路図である。出力用レジスタ１３５は、フリップフロップ１３１５と、マルチプレクサ１３１６，１３１７とを備えている。
【００３１】
マルチプレクサ１３１６は、スキャンイネーブル信号ＳＥが“１”の時にシリアル入力信号ＳＩを、スキャンイネーブル信号ＳＥが“０”の時に埋め込みコア１１から入力される信号を選択してフリップフロップ１３１５に出力する。フリップフロップ１３１５は、クロックＣＬＫの立ち上がりでマルチプレクサ１３１６の出力をラッチして、マルチプレクサ１３１７と後段の入力用レジスタまたは出力用レジスタとに出力する。マルチプレクサ１３１７は、テストイネーブル信号ＴＥが“１”の時にフリップフロップ１３１５の出力を選択し、テストイネーブル信号ＴＥが“０”の時に埋め込みコア１１の出力を選択してカスタムロジック部１２に出力する。
【００３２】
つぎに、半導体集積回路１の動作を説明する。まず、半導体集積回路１の通常動作を説明する。半導体集積回路１の通常動作時には、テストイネーブル信号ＴＥを“０”にする。したがって、入力用レジスタ１３１〜１３４のマルチプレクサ１３１４は、カスタムロジック部１２の出力を選択して埋め込みコア１１に出力する。出力用レジスタ１３５，１３６のマルチプレクサ１３１７は、埋め込みコア１１の出力を選択してカスタムロジック部１２に出力する。これにより、カスタムロジック部１２と埋め込みコア１１とが接続され、半導体集積回路１は通常動作をする。
【００３３】
つぎに、図６のタイムチャートを参照して、埋め込みコア１１のテスト動作を説明する。時刻ｔ１において、テストイネーブル信号ＴＥを“０”から“１”にする。これにより、半導体集積回路１はテスト動作となり、テスト用シフトレジスタ１３内部の入力用レジスタ１３１〜１３４のマルチプレクサ１３１４はゲート回路１３１２の出力を、出力用レジスタ１３５，１３６のマルチプレクサ１３１７は、フリップフロップ１３１５の出力を選択する。
【００３４】
時刻ｔ２において、スキャンイネーブル信号ＳＥを“０”から“１”にするとともに、シリアル入力信号ＳＩにデータを入力する。入力用レジスタ１３１〜１３４のマルチプレクサ１３１３はシリアル入力信号ＳＩを選択してフリップフロップ１３１１に出力する。出力用レジスタ１３５，１３６のマルチプレクサ１３１６は、シリアル入力信号ＳＩを選択してフリップフロップ１３１５に出力する。これにより、入力用レジスタ１３１のフリップフロップ１３１１、入力用レジスタ１３２のフリップフロップ１３１１、出力用レジスタ１３５のフリップフロップ１３１５、出力用レジスタ１３６のフリップフロップ１３１５、入力用レジスタ１３３のフリップフロップ１３１１、入力用レジスタ１３４のフリップフロップ１３１１の順に接続され、シフトレジスタとして動作する。すなわち、外部端子より入力される埋め込みコア１１のテストパターンであるシリアル入力信号ＳＩが、クロックＣＬＫの立ち上がりに同期してＤ０，Ｄ１，Ｄ２，Ｄ３，Ｄ４、Ｄ５の順に取り込まれてシフトされ、入力用レジスタ１３１〜１３４のフリップフロップ１３１１に設定される。
【００３５】
時刻ｔ３において、シフトレジスタ構成の最終段の入力用レジスタ１３４のフリップフロップ１３１１にデータＤ０が入力される。このタイミングで、スキャンイネーブル信号ＳＥを“１”から“０”にする。これにより、入力用レジスタ１３１〜１３４と出力用レジスタ１３５，１３６はシフト動作を停止する。また、ゲート信号Ｇａｔｅを“０”から“１”にする。これにより、入力用レジスタ１３１〜１３４のゲート回路１３１２は、フリップフロップ１３１１の出力をスルーにし、マルチプレクサ１３１４はゲート回路１３１２の出力を選択して埋め込みコア１１に入力パターンを出力する。埋め込みコア１１は、入力パターンで動作を開始する。一方、出力用レジスタ１３５，１３６のマルチプレクサ１３１６は、埋め込みコア１１の出力を選択し、フリップフロップ１３１５は、クロックＣＬＫの立ち上がりでマルチプレクサ１３１６の出力をラッチする。すなわち、埋め込みコア１１の出力パターンをクロックＣＬＫの立ち上がりでサンプリングする。
【００３６】
時刻ｔ４において、ゲート信号Ｇａｔｅを“１”から“０”にする。入力用レジスタ１３１〜１３４のゲート回路１３１２は、フリップフロップ１３１１の出力をラッチして、埋め込みコア１１の入力を固定する。
【００３７】
時刻ｔ５において、時刻ｔ３で入力された入力―パターンでの埋め込みコア１１の出力パターンが確定する。時刻ｔ３から時刻ｔ５は、埋め込みコア１１の動作遅延であり、埋め込みコア１１により異なる。
【００３８】
埋め込みコア１１の動作が確定した後の時刻ｔ６において、出力用レジスタ１３５，１３６のフリップフロップ１３１５は、埋め込みコア１１の出力パターンをラッチする。同時に、スキャンイネーブル信号ＳＥを“０”から“１”にする。これにより、入力用レジスタ１３１〜１３４と出力用レジスタ１３５，１３６はシフト動作となり、シフトレジスタの最終段となる出力用レジスタ１３６のフリップフロップ１３１５は、半導体集積回路１の外部端子に埋め込みコア１１の出力パターンであるスキャンアウトＣＳＯを、ＤＯ０，ＤＯ１，ＤＯ２，ＤＯ３，ＤＯ４，ＤＯ５の順に出力する。スキャンアウトＣＳＯをあらかじめ用意しておいた動作期待値と比較する。
【００３９】
一方、シリアル入力信号ＳＩに埋め込みコア１１のつぎの入力パターンとなるＤ６，Ｄ７，Ｄ８，Ｄ９，Ｄ１０，Ｄ１１をクロックＣＬＫの立ち上がりに同期して順に入力し、入力用レジスタ１３１〜１３４のフリップフロップ１３１１に設定する。このような動作を繰り返し、シリアル入力信号ＳＩをクロックＣＬＫの立ちあがりエッジに同期して入力することにより、連動して埋め込みコア１１の動作テストを行うことができる。
【００４０】
つぎに、半導体集積回路１内部のカスタムロジック部１２のテスト動作を説明する。カスタムロジック部１２のテスト時には、半導体集積回路１の外部から入力されるスキャンイネーブル信号ＳＥを“１”にする。これにより、マルチプレクサ１２２４は、テスト用シフトレジスタ１３の出力であるスキャンアウトＣＳＯを選択する。また、マルチプレクサ１２２５，１２２６は、フリップフロップ１２２１，１２２２の出力を選択する。すなわち、スキャンパス回路１２２のフリップフロップ１２２１〜１２２３は、チェーン接続となりシフトレジスタを構成する。
【００４１】
クロックＣＬＫに同期して、シリアル入力信号ＳＩを入力し、テスト用シフトレジスタ１３を介してフリップフロップ１２２１〜１２２３にテストパターンを入力する。スキャンパス回路１２２の最終段のフリップフロップ１２２３にテストパターンが設定されたら、スキャンイネーブル信号ＳＥを“０”にする。これにより、マルチプレクサ１２２４〜１２２６は、組合せ回路１２１の出力を選択する。したがって、フリップフロップ１２２１〜１２２３は、テストパターンで動作した組合せ回路１２１の出力をラッチする。
【００４２】
つぎに、スキャンイネーブル信号ＳＥを“１”にする。これにより、スキャンパス回路１２２のフリップフロップ１２２１〜１２２３は、チェーン接続されシフトレジスタを構成する。クロックＣＬＫに同期して、フリップフロップ１２２１〜１２２３は、ラッチした組合せ回路１２１の出力を順次シフトしてスキャンアウトＳＯとして半導体集積回路１の外部端子に出力する。スキャンアウトＳＯを期待値と比較する。このような動作を繰り返し、カスタムロジック部１２をテストする。
【００４３】
カスタムロジック部１２をテストするためには、埋め込みコア１１とのインターフェース信号の制御および観測が必要となる。そこで、この実施の形態１の半導体集積回路１においては、埋め込みコア１１のテスト用シフトレジスタ１３の入力用レジスタ１３１〜１３４と出力用レジスタ１３５，１３６で構成されるシフトレジスタをテストイネーブル信号ＴＥおよびスキャンイネーブル信号ＳＥで制御可能とし、かつ、テスト用シフトレジスタ１３の入力用レジスタ１３４内のフリップフロップ１３１１（テスト用シフトレジスタ１３の最終段のフリップフロップ）の出力をスキャンパス回路１２２のフリップフロップ１２２１〜１２２３で構成されるシフトレジスタの初段のフリップフロップ１２２１に接続してテスト用シフトレジスタ１３とスキャンパス回路１２２とをチェーン接続しているため、スキャンイネーブル信号ＳＥに基づいて半導体集積回路１全体のシフト動作を制御することができ、カスタムロジック部１２のフルスキャンパステストを可能としている。また、テスト用シフトレジスタ１３の最終段のフリップフロップ１３１１の出力を外部端子に出力することで、テスト用シフトレジスタ１３の終端点を観測できるようにしている。
【００４４】
このようにこの実施の形態１では、埋め込みコア１１とカスタムロジック部１２との間に、入力用レジスタおよび出力用レジスタで埋め込みコア１１テスト用のスキャンパス回路を構成するテスト用シフトレジスタ１３を備え、テスト用シフトレジスタ１３の最終段の入力用レジスタ内のフリップフロップまたは出力用レジスタ内のフリップフロップの出力を、半導体集積回路１の外部端子に出力するようにしている。これにより、埋め込みコア１１のテストパターンを短縮することができる。
【００４５】
また、カスタムロジック部１２内のスキャンパス回路１２２の初段のフリップフロップとテスト用シフトレジスタ１３の最終段のフリップフロップとを接続して、スキャンイネーブル信号ＳＥによりテスト用シフトレジスタ１３とスキャンパス回路１２２を複合動作させることにより、カスタムロジック部１２のテスト効率を上げることができる。
【００４６】
さらに、入力用レジスタをチェーン接続してシフトレジスタを構成するためのスキャンフリップフロップと埋め込みコア１１にテストパターンを出力するゲート回路とで構成するようにしたため、シフト動作に影響されることなく、埋め込みコア１１への入力信号を制御することができる。
【００４７】
実施の形態２．
図７を用いてこの発明の実施の形態２を説明する。この実施の形態２における半導体集積回路２では、実施の形態１において半導体集積回路の外部端子から入力していた制御信号を削減するために、テストコントロールモジュール（以下、ＴＣＭとする）２１と、セレクタ２２とが追加されている。実施の形態１と同じ機能を持つ構成部分には同一符号を付し、重複する説明は省略する。
【００４８】
ＴＣＭ２１は、テストモードセレクトＴＭＳとクロックＣＬＫとシリアル入力信号ＳＩからなるシーケンス回路で、テスト用シフトレジスタ１３、スキャンパス回路１２２およびセレクタ２２の制御信号を生成する。テストモードセレクトＴＭＳをクロックＣＬＫの立ち上がりで取り込み、そのときのテストモードセレクトＴＭＳのレベル（“０”または“１”）によりシーケンスを遷移させ、制御信号を出力する。具体的には、ＴＣＭ２１は、半導体集積回路２の外部端子から入力されるテストモードセレクトＴＭＳ、シリアル入力信号ＳＩおよびクロックＣＬＫに基づいて、テスト用シフトレジスタ１３を制御するテストイネーブル信号ＴＥ、ゲート信号Ｇａｔｅおよびコアスキャンイネーブル信号ＣＳＥと、スキャンパス回路１２２を制御するスキャンイネーブル信号ＳＥと、セレクタ２２を制御する選択信号ＳＥＬとを生成する。なお、ＴＭＣ２１は、ＩＥＥＥの標準規格１１４９．１に規定されているテストアクセスポートコントローラ（ＴＡＰコントローラ）と同等の構成で実現することができる。
【００４９】
セレクタ２２は、選択信号ＳＥＬに基づいてテスト用シフトレジスタ１３の出力とスキャンパス回路の出力との何れかを選択して、スキャンアウトＳＯを半導体集積回路２の外部端子に出力する。この場合は、選択信号ＳＥＬが“０”の時にテスト用シフトレジスタ１３の出力を、選択信号ＳＥＬが“１”の時にスキャンパス回路１２２の出力を選択する。
【００５０】
つぎに、半導体集積回路２のテスト動作を説明する。まず、埋め込みコア１１のテスト動作時は、テストモードセレクトＴＭＳとクロックＣＬＫに基づいて、ＴＣＭ２１は、テストイネーブル信号ＴＥを“１”にする。これにより、半導体集積回路２は、テスト動作となる。
【００５１】
つぎに、テストモードセレクトＴＭＳとクロックＣＬＫに基づいて、ＴＣＭ２１は、コアスキャンイネーブル信号ＣＳＥを“１”に、ゲート信号Ｇａｔｅを“０”に、スキャンイネーブル信号ＳＥを“０”に、選択信号ＳＥＬを“０”にする。テスト用シフトレジスタ１３の入力用レジスタ１３１〜１３４，出力用レジスタ１３５，１３６は、クロックＣＬＫに同期して半導体集積回路２の外部端子から入力されるシリアル入力信号ＳＩ（埋め込みコア１１のテストパターン）をシフトする。スキャンイネーブル信号ＳＥが“０”であるので、スキャンパス回路１２２のマルチプレクサ１２２４〜１２２６は、組合せ回路１２１の出力を選択している。したがって、スキャンパス回路１２２は動作しない。
【００５２】
テスト用シフトレジスタ１３のシフト動作により埋め込みコア１１の全入力端子へのテストパターンが入力用レジスタ１３１〜１３４のフリップフロップ１３１１に設定されると、テストモードセレクトＴＭＳに基づきＴＭＣ２１は、ゲート信号Ｇａｔｅを“１”にする。これにより、埋め込みコア１１にテストパターンが入力される。そして、テストモードセレクトＴＭＳに基づいてＴＣＭ２１は、ゲート信号Ｇａｔｅを“０”にして、埋め込みコア１１に入力するテストパターンを固定するとともに、コアスキャンイネーブル信号ＣＳＥを“０”にして出力用レジスタ１３５，１３６のフリップフロップ１３１５に埋め込みコア１１の出力をラッチさせる。埋め込みコア１１の動作遅延を考慮して入力されるテストモードセレクトＴＭＳに基づきＴＭＣ２１は、コアスキャンイネーブル信号ＣＳＥを“１”にして、テスト用シフトレジスタ１３の入力用レジスタ１３１〜１３４，出力用レジスタ１３５，１３６はシフト動作をおこない、シリアル入力信号ＳＩを入力用レジスタ１３１〜１３４のフリップフロップ１３１１に設定するとともに、出力用レジスタ１３５，１３６のフリップフロップ１３１５の埋め込みコア１１の出力をセレクタ２２とカスタムロジック部１２のスキャンパス回路１２２とに出力する。このような動作を繰り返して、半導体集積回路２の外部端子から入力されるシリアル入力信号ＳＩを埋め込みコア１１に入力して、埋め込みコア１１をテストする。
【００５３】
一方、選択信号ＳＥＬが“０”であるので、半導体集積回路２の外部端子にスキャンアウトＳＯを出力するセレクタ２２は、テスト用シフトレジスタ１３の出力を選択する。したがって、テスト用シフトレジスタ１３のシフト動作により、出力用レジスタ１３５，１３６のフリップフロップ１３１５にラッチされた埋め込みコア１１の出力は、半導体集積回路２の外部端子に出力される。スキャンアウトＳＯを予め準備されている期待値と比較することで、埋め込みコア１１をテストすることができる。
【００５４】
つぎに、カスタムロジック部１２のテスト動作について説明する。テストモードセレクトＴＭＳとクロックＣＬＫに基づいて、ＴＣＭ２１は、テストイネーブル信号ＴＥ、コアスキャンイネーブル信号ＣＳＥ、スキャンイネーブル信号ＳＥおよび選択信号ＳＥＬとを“１”にする。これにより、テスト用シフトレジスタ１３とスキャンパス回路１２２のフリップフロップ１２２１〜１２２３とは、チェーン接続されシフトレジスタを構成する。シフト動作によりシリアル入力信号ＳＩはテスト用シフトレジスタ１３を介してスキャンパス回路１２２のフリップフロップ１２２１〜１２２３に設定される。
【００５５】
ＴＣＭ２１は、テストモードセレクトＴＭＳに基づいてスキャンイネーブル信号ＳＥを“０”にする。これにより、マルチプレクサ１２２４〜１２２５は、組合せ回路１２１に出力を選択する。したがって、フリップフロップ１２２１〜１２２３は、テストパターンで動作した組合せ回路１２１の出力をラッチする。
【００５６】
つぎに、ＴＣＭ２１は、テストモードセレクトＴＭＳに基づいてスキャンイネーブル信号ＳＥを“１”にする。これにより、スキャンパス回路１２２のフリップフロップ１２２１〜１２２３は、チェーン接続されシフトレジスタを構成する。クロックＣＬＫに同期して、フリップフロップ１２２１〜１２２３は、ラッチした組合せ回路１２１の出力を順次シフトして、セレクタ２２を介してスキャンアウトＳＯを半導体集積回路１の外部端子に出力する。スキャンアウトＳＯを期待値と比較する。このような動作を繰り返し、カスタムロジック部１２をテストする。
【００５７】
このようにこの実施の形態２では、ＴＣＭを用いてテストに必要な外部端子を削減するようにしているため、半導体集積回路の外部端子数に制限がある場合でも、容易に埋め込みコアとカスタムロジック部のテストができる。
【００５８】
実施の形態３．
図８〜図１１を用いてこの発明の実施の形態３を説明する。この実施の形態３では、所望の機能を実現する半導体集積回路からテスト用シフトレジスタを挿入する方法を説明する。
【００５９】
まず、入力用レジスタの挿入について説明する。図８（ａ）に示す半導体集積回路３は、埋め込みコア３１と、カスタムロジック部３２とを備えている。カスタムロジック部３２から出力された信号３３は、埋め込みコア３１の入力端子に接続されている。カスタムロジック部３２は、内部ロジック３２１と組合せ回路３２２とを備えており、信号３３は、組合せ回路３２２から駆動されている。すなわち、信号３３は、ＡＮＤ回路やＯＲ回路などで駆動されている。したがって、図８（ｂ）に示すように、埋め込みコア３１とカスタムロジック部３２との間に、テスト用シフトレジスタを構成するために図４に示した入力用レジスタ１３１と同様の機能を備える入力用レジスタ３４を挿入する。これにより、半導体集積回路３ａの通常動作時は、テストイネーブル信号ＴＥが“０”となり、組合せ回路３２２からの出力はマルチプレクサ１３１４を介してそのまま埋め込みコア３１に入力される。半導体集積回路３ａのテスト動作時には、テストイネーブル信号ＴＥが“１”となり、ゲート回路１３１２の出力がマルチプレクサ１３１４を介して埋め込みコア３１に入力される。また、スキャンイネーブル信号ＳＥが“１”になると、フリップフロップ１３１１は前段および後段のフリップフロップとチェーン接続されてシフトレジスタを構成する。そして、シリアル入力信号ＳＩ経由でクロックＣＬＫの立ち上がりエッジに同期してフリップフロップ１３１１にデータが設定され、ゲート信号Ｇａｔｅを“１”にすることで、フリップフロップ１３１１に設定されたデータをゲート回路１３１２へ伝播させる。
【００６０】
また、図９（ａ）に示す半導体集積回路３のように、カスタムロジック部３２内のフリップフロップ３２３から出力された信号３５が埋め込みコア３１の入力端子に接続されている場合、図９（ｂ）に示すように、入力用レジスタ３４ａにフリップフロップ３２３を用いる。すなわち、図４に示した入力用レジスタのフリップフロップ１３１１の代わりに、カスタムロジック部３２内のフリップフロップ３２３を利用する。この場合、図９（ａ）に示したように、通常動作時に埋め込みコア３１に入力される信号３５は、フリップフロップ３２３から出力されたものである。したがって、フリップフロップ３２３を利用した入力用レジスタ３４ａのマルチプレクサ１３１４のテストイネーブル信号ＴＥが“０”時に選択される入力端子には、フリップフロップ３２３の出力を接続する。これにより、半導体集積回路３ａの通常動作時は、テストイネーブル信号ＴＥが“０”となり、組合せ回路３２２の出力はマルチプレクサ１３１３を介してフリップフロップ３２３にラッチされる。そして、マルチプレクサ１３１４を介してフリップフロップ３２３の出力が埋め込みコア３１に入力される。半導体集積回路３ａのテスト動作時には、テストイネーブル信号ＴＥが“１”となり、ゲート回路１３１２にセットされた信号がマルチプレクサ１３１４を介して埋め込みコア３１に入力される。また、スキャンイネーブル信号ＳＥが“１”になると、フリップフロップ３２３は前段および後段のフリップフロップとチェーン接続されてシフトレジスタを構成する。そして、シリアル入力信号ＳＩ経由でクロックＣＬＫの立ち上がりエッジに同期してフリップフロップ３２３にデータが設定され、ゲート信号Ｇａｔｅを“１”にすることで、フリップフロップ３２３に設定されたデータをゲート回路１３１２へ伝播させる。
【００６１】
つぎに、出力用レジスタの挿入について説明する。図１０（ａ）に示すように、半導体集積回路３の埋め込みコア３１の出力である信号３８が、カスタムロジック部３２の組合せ回路３２２を介して内部ロジック３２１に伝達されている。この場合、図１０（ｂ）に示すように、埋め込みコア３１と組合せ回路３２２との間に、テスト用シフトレジスタを構成するために図５に示した出力用レジスタ１３５と同様の機能を備える出力用レジスタ３６を挿入する。これにより、半導体集積回路３ａの通常動作時には、テストイネーブル信号ＴＥが“０”となり、埋め込みコア３１の出力がマルチプレクサ１３１７を介して組合せ回路３２２に入力される。また、半導体集積回路３ａのテスト動作時には、テストイネーブル信号ＴＥが“１”となる。スキャンイネーブル信号ＳＥが“０”の期間に、フリップフロップ１３１５はマルチプレクサ１３１６を介して埋め込みコア３１の出力をラッチする。スキャンイネーブル信号ＳＥが“１”になると、前段および後段のフリップフロップとチェーン接続されてシフトレジスタを構成する。そして、クロックＣＬＫの立ち上がりエッジに同期してスキャンアウトＳＯ経由でラッチした埋め込みコア３１の出力を半導体集積回路３ａの外部端子に出力する。
【００６２】
また、図１１（ａ）に示す半導体集積回路３のように、埋め込みコア３１から出力された信号３７がカスタムロジック部３２内のフリップフロップ３２４の入力端子に接続されている場合、図１１（ｂ）に示すように、出力用レジスタ３６ａにフリップフロップ３２４を用いる。すなわち、図５に示した出力用レジスタのフリップフロップ１３１５の代わりに、カスタムロジック部３２内のフリップフロップ３２４を利用する。この場合、図１１（ａ）に示したように、通常動作時に埋め込みコア３１から出力される信号３７は、フリップフロップ３２４に入力され、フリップフロップ２３４の出力が内部ロジック３２１に出力されている。したがって、半導体集積回路３ａが通常動作時でもテスト動作時でも、フリップフロップ３２４の出力は、内部ロジックに出力されている。このため、図５に示したマルチプレクサ１３１７とテストイネーブル信号ＴＥの接続が不要となる。これにより、半導体集積回路３ａが通常動作時には、スキャンイネーブル信号ＳＥを“０”とすることで、マルチプレクサ１３１６を介して埋め込みコア３１の出力がフリップフロップ３２４にラッチされ、内部ロジック３２１に伝達される。半導体集積回路３ａのテスト動作時には、スキャンイネーブル信号ＳＥが“０”の期間に、フリップフロップ３２４はマルチプレクサ１３１６を介して埋め込みコア３１の出力をラッチする。スキャンイネーブル信号ＳＥが“１”になると、前段および後段のフリップフロップとチェーン接続されてシフトレジスタを構成する。そして、クロックＣＬＫの立ち上がりエッジに同期してスキャンアウトＳＯ経由でラッチした埋め込みコア３１の出力を半導体集積回路３ａの外部端子に出力する。
【００６３】
このようにこの実施の形態３では、テスト用シフトレジスタを構成する入力用レジスタを挿入する際には、埋め込みコアへの入力信号がフリップフロップの出力である場合、そのフリップフロップを入力用レジスタのフリップフロップとして利用する。一方、テスト用シフトレジスタを構成する出力用レジスタを挿入する際には、埋め込みコアの出力信号がフリップフロップに入力されている場合、そのフリップフロップを出力用レジスタのフリップフロップとして利用する。これにより、テスト用シフトレジスタのフリップフロップおよびマルチプレクサを削減することができる。すなわち、半導体集積回路のテストのための回路規模を削減することができる。
【００６４】
実施の形態４．
図１２〜図２２を用いてこの発明の実施の形態４を説明する。図１２は、この発明におけるテスト生成プログラムおよびその入出力を示す概念図である。
【００６５】
回路接続情報４０には、対象となる半導体集積回路が所望の機能を実現するための埋め込みコアと機能セルとを定義するセル情報および埋め込みコアと機能セルとの間の接続を示す接続情報が定義される。
【００６６】
フロアプラン情報４１には、対象となる半導体集積回路のレイアウトにおいて埋め込みコアがどの位置に配置されているかの位置情報、埋め込みコアの入出力端子の位置情報、カスタムロジック部の機能セルの位置情報および半導体集積回路の外部端子の位置情報が定義される。
【００６７】
ライブラリ情報４２には、埋め込みコアおよび機能セルの論理情報、遅延情報、端子属性などのテクノロジ情報が定義される。
【００６８】
埋め込みコア機能テストパターン４３には、人手設計または回路シミュレーション結果から作成された埋め込みコアのテストパターンが定義される。埋め込みコア機能テストパターン４３は、定められた周期内に全信号に対する入力信号の印加おび出力信号の期待値比較を行うためのパラレル形式のパターンである。
【００６９】
つぎに、テスト回路挿入プログラムの動作を説明する。埋め込みコアテストセル挿入処理（ステップＳ１）では、回路接続情報４０、フロアプラン情報４１およびライブラリ情報４２に基づいて埋め込みコアのテスト回路を挿入して、埋め込みコアテストセルのレイアウト指定情報４４と、埋め込みコアテストセルのスキャンパス接続順番情報４５と、埋め込みコアテストセル挿入後の回路接続情報４６とを生成する。
【００７０】
図１３のフローチャートを参照して、埋め込みコアテストセル挿入処理の動作を詳細に説明する。回路接続情報４０およびライブラリ情報４２を読み込み（ステップＳ１００）、埋め込みコアテストセルを未挿入の埋め込みコア端子を選択する（ステップＳ１０１）。
【００７１】
ライブラリ情報４２に基づいて選択した埋め込みコアの端子の端子方向を確認する（ステップＳ１０２）。選択した埋め込みコアの端子が入力端子の場合、入力用の埋め込みコアテストセルを選択する（ステップＳ１０３）。入力用の埋め込みコアテストセル６ａは、図１４に示すように、フリップフロップ６１と、ゲート回路６２と、マルチプレクサ６３とで構成される下位階層の展開が可能な、いわゆる、ソフトマクロである。
【００７２】
図１６の半導体集積回路７の場合は、埋め込みコア７１の端子Ｃ，Ｅ，Ｆが入力端子である。したがって、埋め込みコア７１の端子Ｃ，Ｅ，Ｆが埋め込みコアテストセルを未挿入の端子に選択された場合には、入力用の埋め込みコアテストセルを選択する。
【００７３】
選択した埋め込みコアの端子が出力端子の場合、出力用の埋め込みコアテストセルを選択する（ステップＳ１０４）。出力用の埋め込みコアテストセル６ｂは、図１５に示すように、フリップフロップ６５とマルチプレクサ６６とで構成される下位階層の展開が可能な、いわゆる、ソフトマクロである。
【００７４】
図１６の半導体集積回路７の場合は、埋め込みコア７１の端子Ａ，Ｂ，Ｄが出力端子である。したがって、埋め込みコア７１の端子Ａ，Ｂ，Ｄが埋め込みコアテストセルを未挿入の端子に選択された場合には、出力用の埋め込みコアテストセルを選択する。
【００７５】
回路接続情報４０およびライブラリ情報４２に基づいて埋め込みコアの端子が組合せ回路と接続されているか否かを判定する（ステップＳ１０５）。判定の結果、選択した埋め込みコアの端子が組合せ回路と接続されている場合には、選択した埋め込みコアテストセルを挿入することを決定し（ステップＳ１０６）、回路接続情報４０を選択した埋め込みコアテストセルを挿入した回路接続情報に変更する。
【００７６】
図１６の半導体集積回路７の場合は、埋め込みコア７１の入力端子Ｃ，Ｅは、組合せ回路７５と配線７２０，７２１でそれぞれ接続されている。したがって、配線７２０，７２１に入力用の埋め込みコアテストセルを挿入する。また、埋め込みコア７１の出力端子Ｂは、組合せ回路７５と配線７１１で接続されている。したがって、出力用の埋め込みコアテストセルを挿入する。すなわち、図１７に示すように、埋め込みコア７１の出力端子Ｂと組合せ回路７５の配線７１１には出力用の埋め込みコアテストセル７４３を、埋め込みコア７１の入力端子Ｃと組合せ回路７５の配線７２０には入力用の埋め込みコアテストセル７３１を、埋め込みコア７１の入力端子Ｅと組合せ回路７５の配線７２１には入力用の埋め込みコアテストセル７３２を、それぞれ挿入する。
【００７７】
判定の結果、埋め込みコアの端子が組合せ回路と接続されていない場合、すなわち、フリップフロップと接続されている場合には、そのフリップフロップを埋め込みコアテストセルのフリップフロップに置き換えて埋め込みコアテストセルを挿入する（ステップＳ１０７）。具体的には、実施の形態３で説明したように、埋め込みコアの入力端子の場合には、埋め込みコアの入力端子に接続されているフリップフロップを入力用の埋め込みコアテストセル６ａのフリップフロップ６１に流用し、埋め込みコアの出力端子の場合には、埋め込みコアの出力に接続されているフリップフロップを出力用の埋め込みコアテストセル６ｂのフリップフロップ６５に流用する。そして、それらの接続に対応して回路接続情報４０を変更する。
【００７８】
図１６の半導体集積回路７の埋め込みコア７１の入力端子Ｆは、フリップフロップ７４と配線７２２で接続されている。したがって、フリップフロップ７４を図１４に示した入力用の埋め込みコアテストセル６ａのフリップフロップ６１と置き換える。また、埋め込みコア７１の出力端子Ａ，Ｄは、フリップフロップ７２，７３と配線７１０，７１２でそれぞれ接続されている。したがって、フリップフロップ７２およびフリップフロップ７３を、それぞれの図１５に示した出力用の埋め込みコアテストセル６ｂのフリップフロップ６５と置き換える。すなわち、図１７に示すように、埋め込みコア７１の出力端子Ａとフリップフロップ７２の配線７１０には、フリップフロップ７２を置き換えた出力用の埋め込みコアテストセル７４１を、埋め込みコア７１の出力端子Ｄとフリップフロップ７３の配線７１２には、フリップフロップ７３を置き換えた出力用の埋め込みコアテストセル７４２を、埋め込みコア７１の入力端子Ｆとフリップフロップ７４の配線７２２には、フリップフロップ７４を置き換えた入力用の埋め込みコアテストセル７３３を、それぞれ挿入する。
【００７９】
変更した回路接続情報４０に基づいて、埋め込みコアの全ての端子に埋め込みコアテストセルが挿入されるまで、埋め込みコアテストセルを挿入する動作を繰り返す（ステップＳ１０１〜Ｓ１０８）。
【００８０】
全ての埋め込みコア端子に対する埋め込みコアテストセルが挿入されると、埋め込みコアテストセル内のフリップフロップのスキャンパス接続順番を抽出する（ステップＳ１０９）。具体的には、埋め込みコアのフロアプラン情報４１に基づいて、埋め込みコアテストセル内のスキャンフリップフロップ相互間を最短経路でチェーン接続し、その始端を半導体集積回路のスキャンパターンを入力する外部端子に、終端を内部ロジック回路内のスキャンパス回路に接続するための制約条件を生成して、埋め込みコアテストセルのスキャンパス接続順番情報４５に出力する。
【００８１】
図１８は、図１６に示した半導体集積回路７のフロアプラン情報４１の埋め込みコア７１およびシリアル入力信号ＳＩの端子位置を示すフロアプランのイメージ図である。フロアプラン情報４１は、半導体集積回路７のシリアル入力信号ＳＩの外部端子は埋め込みコア７１の入力端子Ｃと最も近い位置にあることを示している。したがって、埋め込みコア７１周辺の配線の難易度が均一な場合、埋め込みコア７１の入力端子Ｃに接続される埋め込みコアテストセル内にあるフリップフロップをシリアル入力信号ＳＩを入力する端子と接続してスキャンパス回路の始端とすることが最適な接続となる。その他の埋め込みコア７１の端子Ａ，Ｂ，Ｄ，Ｅ，Ｆについては、端子Ｃを基点に時計回りまたは反時計回りに接続することで、最短配線が実現する。たとえば、反時計回りに接続する場合、図１７に示した半導体集積回路７では、埋め込みコアテストセル７３１，７４３，７４１，７３３，７３２，７４２の順となる。この順番をスキャンパス接続処理で使用可能な形式にした埋め込みコアテストセルのスキャンパス接続順番情報４５を出力する。なお、配線不能領域など他の優先すべき制約条件が存在する場合は、これを考慮して順番を決定する。
【００８２】
スキャンパス接続順番情報４５を出力すると、埋め込みコアテストセル内のフリップフロップのレイアウト指定情報を抽出する（ステップＳ１１０）。具体的には、埋め込みコアテスト用セルのスキャンパス接続順番情報４５の最短配線長を実現するためには、スキャンフリップフロップの配置も最適化する必要がある。すなわち、埋め込みコア周辺のセル配置の難易度が均一な場合、埋め込みコアテストセル内フリップフロップを対応する埋め込みコア端子の近傍に配置するのが望ましい。そのため、フロアプラン情報４１のカスタムロジック部のレイアウト情報に基づき、埋め込みコアテストセル内フリップフロップを、関連する埋め込みコア端子に対して最適な位置に配置される制約条件を抽出して、埋め込みコアテストセルのレイアウト指定情報４４に出力する。
【００８３】
図１７の半導体集積回路７の場合、埋め込みコアテストセル７４１，７４３，７３１，７４２，７３２，７３３内のそれぞれのフリップフロップが、埋め込みコアの端子Ａ〜Ｆの近傍に配置されるように制約条件を埋め込みコアテストセルのレイアウト指定情報４４に出力する。なお、配置禁止領域など他の優先すべき制約条件が存在する場合は、これを考慮して配置条件を決定する。
【００８４】
レイアウト指定情報４４を出力すると、埋め込みコアテストセルの空き端子を接続する（ステップＳ１１１）。具体的には、半導体集積回路と挿入した各埋め込みコアテストセルのテストイネーブル信号ＴＥ、ゲート信号Ｇａｔｅ、クロックＣＬＫ、ならびに、最終段の埋め込みコアテストセルの出力と半導体集積回路のスキャンアウトＣＳＯとを接続する。
【００８５】
図１７の半導体集積回路７の場合には、半導体集積回路７のクロックＣＬＫを入力する外部端子と埋め込みコアテストセル７３１〜７３３，７４１〜７４３のクロック端子ＣＬＫとを配線７５１で、半導体集積回路７のテストイネーブル信号ＴＥを入力する外部端子と埋め込みコアテストセル７３１〜７３３，７４１〜７４３のテストイネーブル信号ＴＥが入力される外部端子とを配線７５２で接続する。半導体集積回路７のゲート信号Ｇａｔｅを入力する外部端子と、埋め込みコアテストセル７３１〜７３２のゲート信号Ｇａｔｅを入力する端子とを配線７５３で接続する。また、スキャンパス接続順番情報４５を決定した際に最終段となった埋め込みコアテストセル７４２の端子ＤＯと、半導体集積回路７のスキャンアウトＣＳＯを出力する外部端子とを配線７５４で接続する。
【００８６】
接続が完了したら、埋め込みコアテスト用回路挿入後の半導体集積回路の接続情報である埋め込みコアテストセル挿入後の回路接続情報４６を出力する（ステップＳ１１２）。
【００８７】
埋め込みコアテストセル挿入処理が完了すると、スキャンパス接続処理（ステップＳ２）を行う。スキャンパス接続処理では、まず、埋め込みコアテストセル挿入後の回路接続情報４６を読み込み、回路内のすべてのフリップフロップを図１９に示すような、マルチプレクサ付きのスキャンフリップフロップもしくは論理的に等価な回路に変換する。具体的には、埋め込みコアテストセル挿入処理で挿入された埋め込みコアテストセル６ａのフリップフロップ６１がスキャンフリップフロップ８に変換され、図４に示した入力用レジスタ１３１と論理的に等価な回路となる。また、埋め込みコアテスト用セル挿入処理で挿入された埋め込みコアテストセル６ｂのフリップフロップ６５がスキャンフリップフロップ８に変換され、図５に示した出力用レジスタ１３５と論理的に等価な回路となる。さらに、カスタムロジック部内のフリップフロップも全てスキャンフリップフロップ８に変換される。
【００８８】
全てのフリップフロップをスキャンフリップフロップ８に変換した後、スキャンパス接続順番情報４５に定義されている接続の順番に基づいてこれらのスキャンフリップフロップ８をチェーン接続する。すなわち、スキャンフリップフロップ８の端子ＳＦＳＥにスキャンイネーブル信号ＳＥを、初段となるスキャンフリップフロップ８の端子ＳＦＳＩにシリアル入力信号ＳＩを、そして、他のスキャンフリップフロップ８の端子ＳＦＳＩに、前段のスキャンフリップフロップ８の出力を、スキャンフリップフロップ８の端子ＳＦＤに、通常動作時の信号（埋め込みコア７１の入出力信号、組合せ回路７５の入出力信号）を接続する。スキャンパスの接続が完了すると、スキャンパス接続後の回路接続情報４７を出力する。
【００８９】
図２０は、図１７に示した半導体集積回路７の回路接続情報４６に対してスキャンパス接続処理を実行した半導体集積回路７を示す概念図である。埋め込みコアテストセル７３１ａ〜７３３ａ，７４１ａ〜７４３ａは、図１７の埋め込みコアテストセル７３１〜７３３，７４１〜７４３の内部のフリップフロップをスキャンフリップフロップ８に変換した後の埋め込みコアテストセルである。配線７６０〜７６６は、スキャンパス接続用の配線であり、スキャンパス接続順番情報４５に基づいて半導体集積回路７の外部端子から入力されるシリアル入力信号ＳＩから配線７６０〜７６６を用いて埋め込みコアテストセル７３１ａ〜７３３ａ，７４１〜７４３ａをチェーン接続する。また、最終段の埋め込みコアテストセル７４２ａから配線７６６によりロジック回路７６のスキャンパス回路に接続される。ロジック回路７６のスキャンパスの最終段のスキャンフリップフロップ８からは、配線７６７によって半導体集積回路７の外部端子にスキャンアウトＳＯが出力される。これらの配線を反映してスキャンパス接続後の回路接続情報４７を出力する。
【００９０】
スキャンパス接続処理が終了すると、スキャンパス接続後の回路接続情報４７と埋め込みコア機能テストパターン４３とに基づいて、埋め込みコアテストパターン変換処理（ステップＳ３）を実行する。図２１のフローチャートを参照して、埋め込みコアテストパターン変換処理の詳細な動作を説明する。
【００９１】
まず、スキャンパス接続後の回路接続情報４７、ライブラリ情報４２および埋め込みコア機能テストパターン４３を読み込み（ステップＳ３００）、埋め込みコアテストの対象となる回路を特定する（ステップＳ３０１）。具体的には、図２０に示した半導体集積回路７の場合、対象となるのは埋め込みコア７１であり、対象外となるのは、ロジック回路７６および組合せ回路７５である。したがって、埋め込みコア７１をテスト対象として特定する。
【００９２】
埋め込みコアテストの対象となる回路を特定すると、ライブラリ情報４２に定義されている埋め込みコアの端子情報と埋め込みコア機能テストパターン４３とに基づいて、テストルールチェックを行う（ステップＳ３０２）。具体的には、たとえば、埋め込みコア機能テストパターン４３に定義されているテストパターンの入出力信号とライブラリ情報４２に定義されている埋め込みコア７１の端子との対応がとれているか、埋め込みコア機能テストパターン４３に定義されている埋め込みコア７１に入力する信号の禁止条件のチェック、例えば不定値の入力などを行う。
【００９３】
テストルールチェックが終了すると、テストパターンを変換する（ステップＳ３０３）。図２０に示した半導体集積回路７と図２２のタイムチャートを参照して、テストパターンの変換について説明する。埋め込みコア機能テストパターン４３には、周期Ｔ１１ごとに埋め込みコア７１の入力端子ＣにＣ０，Ｃ１，Ｃ２，Ｃ３を、入力端子ＥにＥ０，Ｅ１，Ｅ２，Ｅ３を、入力端子ＦにＦ０，Ｆ１，Ｆ２，Ｆ３を入力するように定義されている。そして、出力端子Ａの期待値はＡ０，Ａ１，Ａ２，Ａ３、出力端子Ｂの期待値はＢ０，Ｂ１，Ｂ２，Ｂ３、出力端子Ｄの期待値はＤ０，Ｄ１，Ｄ２，Ｄ３である。このようなパラレル形式の埋め込みコア機能テストパターンを、半導体集積回路７の外部端子からシリアル入力信号ＳＩとして入力可能なパターンに変換する。すなわち、図２０に示した半導体集積回路７の埋め込みコアテストセル７３１ａ〜７３３ａ，７４１ａ〜７４３ａを配線７５０〜７５６によりチェーン接続して埋め込みコア７１をテストするパターンに変換する。
【００９４】
埋め込みコア機能テスト入力パターンの周期Ｔ１１のパラレル形式の埋め込みコアテストパターン入力Ｃ１，Ｅ１，Ｆ１を、変換後のパターンのシフト期間Ｔ１２に、埋め込みコアテストパターン期待値Ａ１，Ｂ１，Ｄ１は、シフト期間Ｔ１３にそれぞれアサインする。すなわち、パラレル形式の埋め込みテストパターン入力に対してパラレル形式の埋め込みコアテストパターン期待値を、１シフト期間後にアサインする。
【００９５】
アサインの順番は、チェーン接続された埋め込みコアテストセルの最も先頭にある埋め込みコアテストセルのフリップフロップ、すなわち、スキャンアウトＣＳＯを出力する半導体集積回路７の外部端子に接続されているフリップフロップからとなる。図２０に示した半導体集積回路７の場合は、埋め込みコア７１の端子Ｄ，Ｅ，Ｆ，Ａ，Ｂ，Ｃの順にシリアル化する。したがって、シリアル入力信号ＳＩには、端子Ｄに接続されている埋め込みコアテストセル７４２ａ，端子Ｅに接続されている埋め込みコアテストセル７３２ａ，端子Ｆに接続されている埋め込みコアテストセル７３３ａ，端子Ａに接続されている埋め込みコアテストセル７４１ａ，端子Ｂに接続されている埋め込みコアテストセル７４３ａ，端子Ｃに接続されている埋め込みコアテストセル７３１ａのそれぞれのスキャンフリップフロップ８の順に設定するデータを入力する。このとき、埋め込みコア７１の出力端子Ｄ，Ａ，Ｂに接続された埋め込みコアテストセル７４２ａ，７４１ａ，７４３ａ内のスキャンフリップフロップ８への入力パターンは、“０”、“１”のどちらでもよい。また、埋め込みコア７１の入力端子Ｅ，Ｆ，Ｃに接続された埋め込みコアテストセル７３２ａ，７３３ａ，７３１ａのスキャンフリップフロップ８のデータがシフトされスキャンアウトＣＳＯとして出力されるタイミングの期待値は“０”または“１”のいずれでもよいので、このときの期待値はドント・ケア（“ｘ”）とする。
【００９６】
制御信号については、テストイネーブル信号ＴＥを“１”固定に、スキャンイネーブル信号ＳＥを“１”に、ゲート信号Ｇａｔｅを“０”にする。そして、シリアル入力信号ＳＩが入力される半導体集積回路７の外部端子に接続されている埋め込みコアテストセル７３１ａに埋め込みコア７１の端子Ｃに入力するテストパターンが設定された後、スキャンイネーブル信号ＳＥを“０”に、ゲート信号Ｇａｔｅを“１”にする。すなわち、埋め込みコアテストセルのフリップフロップにデータを設定するシフト期間Ｔ１４毎にスキャンイネーブル信号ＳＥを“０”に、ゲート信号Ｇａｔｅを“１”にする。そして、クロックＣＬＫの立下りに同期してゲート信号Ｇａｔｅを“０”にする。また、スキャンイネーブル信号ＳＥについては、埋め込みコア７１の動作遅延時間をとった後、クロックＣＬＫの立ち上がりに同期して“１”にする。図２２のタイムチャートの場合は、埋め込みコア７１の動作遅延時間がクロックＣＬＫの周期内であるので、スキャンイネーブル信号ＳＥは、クロックＣＬＫ１周期で“１”となる。埋め込みコア７１の動作遅延がクロックＣＬＫの周期のｎ（０＜ｎ，ｎは自然数）倍未満の場合、スキャンイネーブル信号ＳＥが“０”となるキャプチャ期間Ｔ１５は、クロックＣＬＫのｎ個分の周期を要する。埋め込みコア７１の動作遅延時間は、ライブラリ情報４２に定義されているので、この動作遅延時間に基づいて、キャプチャ期間Ｔ１５を決定する。
【００９７】
このようにして、埋め込みコア機能テストパターン４３をスキャンパス接続後の回路接続情報４７に対応したテストパターンに変換したスキャンパスを利用した埋め込みコア機能テストパターン４８を出力して（ステップＳ３０４）、埋め込みコアテストパターン変換処理を終了する。
【００９８】
最後に、テストパターン自動生成処理を行う（ステップＳ４）。テストパターン自動生成処理では、ライブラリ情報４２とスキャンパス接続後の回路接続情報４７を読み込む。そして、たとえば、ランダムに発生した信号や既存のスキャンテストのテストパターン自動生成手法により生成された信号をスキャンパス回路に入力して、組合せ回路７５を動作させて静的シミュレーションを実行する。そして、スキャンパス接続後の回路接続情報４７の組合せ回路の故障検出率を算出して、カバレージの高いテストパターンを生成する。そして、生成したテストパターンをスキャンパステストパターン４９として出力する。
【００９９】
このようにこの実施の形態４では、埋め込みコアテストセル挿入処理において、回路接続情報４０と、フロアプラン情報４１と、ライブラリ情報とに基づいて、埋め込みコアの入力端子および出力端子にテストセルを挿入し、テストセル挿入後のセル情報および接続情報に変更した回路接続情報４６を生成し、スキャンパス接続処理において、テストセル挿入後の接続に変更した回路接続情報４６に定義されているフリップフロップをスキャンフリップフロップに置換してチェーン接続し、スキャンパス回路を生成した後のセル情報および接続情報に変更した回路接続情報４７を生成するようにしている。これにより、設計時に、テストに必要な回路を意識することなく設計することができ、設計時間を短縮することができる。
【０１００】
また、埋め込みコアテストパターン変換処理において、埋め込みコア機能テストパターン４３をスキャンパス接続後の回路接続情報４７に対応して、埋め込みコアのテストに必要な制御信号を付加し、埋め込みコア機能テストパターン４３を変換し、テストパターン自動生成処理において、カスタムロジック部のテストパターンを生成するようにしている。これにより、テストパターンを生成する時間が短縮され、設計効率を上げることができる。
【０１０１】
なお、実施の形態４では、埋め込みコアテストセル挿入処理、スキャンパス接続処理、埋め込みコアテストパターン変換処理およびテストパターン自動生成処理が個別の処理として動作し、各処理間はファイルなどの外部記憶媒体を介してデータの受け渡しを行う構成として説明した。すなわち、各処理は、個別のプログラムとして動作可能な構成として説明した。しかし、処理を単一のプログラムとして実現し、外部記憶媒体の代わりにメモリ中に構築されたデータとして共有する構成にしても良い。
【０１０２】
実施の形態５．
実施の形態１〜４においては、単一クロックＣＬＫを用いてスキャンイネーブル信号ＳＥでテスト動作と通常動作の切り替えるスキャンフリップフロップを用いたスキャンパステスト、いわゆるモードセレクト方式をベースに説明した。しかし、本発明における半導体集積回路およびテスト生成プログラムは、テストと通常動作を個別のクロックで制御するクロックセレクト方式にも適用可能である。実施の形態１〜４におけるスキャンイネーブル信号ＳＥをスキャン用クロックに置き換え、同様にスキャンパス設計を行うことで、同様の機能が実現可能であり、実施の形態１〜４と同様の効果を得ることができる。
【０１０３】
【発明の効果】
以上説明したように、この発明にかかる半導体集積回路によれば、カスタムロジック部と埋め込みコアとの間に、埋め込みコアのテスト時には、埋め込みコアの入力端子に接続される各入力用レジスタと、埋め込みコアの出力端子に接続される各出力用レジスタとがチェーン接続されてシリアルに入力される埋め込みコアのテストパターンをシフト動作により各入力用レジスタに設定する。そして、設定した埋め込みコアのテストパターンを埋め込みコアに出力するためのゲート信号がアサートの時に、各入力用レジスタに設定した埋め込みコアのテストパターンで埋め込みコアを動作させ、その出力を前記各出力用レジスタにラッチして、ゲート信号がネゲートの時に、ラッチした埋め込みコアの出力をシフト動作により外部端子に出力するようにしている。これにより、埋め込みコアのテストパターンを短縮するとともに、効率よく半導体集積回路のテストを行うことができる。
【図面の簡単な説明】
【図１】この発明における実施の形態１の半導体集積回路の構成を示すブロック図である。
【図２】図１に示したカスタムロジック部の構成を示すブロック図である。
【図３】図１に示したテスト用シフトレジスタの構成を示すブロック図である。
【図４】図３に示した入力用レジスタの一例を示す回路図である。
【図５】図３に示した出力用レジスタの一例を示す回路図である。
【図６】この発明における実施の形態１の半導体集積回路の埋め込みコアのテスト動作を説明するためのタイムチャートである。
【図７】この発明における実施の形態２の半導体集積回路の構成を示すブロック図である。
【図８】この発明における実施の形態３の半導体集積回路の入力用レジスタの挿入方法を説明するための図である。
【図９】この発明における実施の形態３の半導体集積回路の入力用レジスタの挿入方法を説明するための図である。
【図１０】この発明における実施の形態３の半導体集積回路の出力用レジスタの挿入方法を説明するための図である。
【図１１】この発明における実施の形態３の半導体集積回路の出力用レジスタの挿入方法を説明するための図である。
【図１２】この発明におけるテスト生成プログラムおよびその入出力を示す概念図である。
【図１３】埋め込みコアテストセル挿入処理の動作を説明するためのフローチャートである。
【図１４】埋め込みコアテストセル挿入処理で挿入される入力用の埋め込みコアテストセルの構成を示す回路図である。
【図１５】埋め込みコアテストセル挿入処理で挿入される出力用の埋め込みコアテストセルの構成を示す回路図である。
【図１６】埋め込みコアテストセルが挿入前の半導体集積回路の構成を示すブロック図である。
【図１７】埋め込みコアテストセルが挿入後の半導体集積回路の構成を示すブロック図である。
【図１８】図１６に示した半導体集積回路のフロアプラン情報の埋め込みコアおよびシリアル入力信号の端子位置を示すフロアプランのイメージ図である。
【図１９】スキャンパス接続処理で用いるスキャンフリップフロップの一例を示す回路図である。
【図２０】スキャンパス接続処理後の半導体集積回路の構成を示すブロック図である。
【図２１】埋め込みコア機能テストパターン変換処理の動作を説明するためのフローチャートである。
【図２２】埋め込みコア機能テストパターン変換処理の動作を説明するためのタイムチャートである。
【符号の説明】
１，２，３，３ａ，７  半導体集積回路、６ａ，７３１，７３２，７３３  入力用の埋め込みコアテストセル、６ｂ，７４１，７４２，７４３  出力用の埋め込みコアテストセル、８  スキャンフリップフロップ、１１，３１，７１  埋め込みコア、１２  カスタムロジック部、１３  テスト用シフトレジスタ、２１  ＴＣＭ、２２  セレクタ、３３，３５，３７，７１０，７１１，７１２，７２０，７２１，７２２，７５１，７５２，７５３，７６０，７６１，７６２，７６３，７６４，７６５，７６６  配線、４０  回路接続情報、４１  フロアプラン情報、４２  ライブラリ情報、４３  埋め込みコア機能テストパターン、４４  レイアウト指定情報、４５  スキャンパス接続順番情報、４６  埋め込みコアテストセル挿入後の回路接続情報、４７  スキャンパス接続後の回路接続情報、４８スキャンパスを利用した埋め込みコア機能テストパターン、４９  スキャンパステストパターン、７５，１２１，３２２  組み合わせ回路、１２２  スキャンパス回路、３２，１３１，１３２，１３３，１３４  入力用レジスタ、３６，１３５，１３６  出力用レジスタ、３２１  内部ロジック、６１，６２，６５，７２，７３，７４，１２２１，１２２２，１２２３，１３１１，１３１５  フリップフロップ、６３，６６，１２２４，１２２５，１２２６，１３１３，１３１４，１３１６  マルチプレクサ、１３１２  ゲート回路。
【図１】
2004320433.tif 000003
【図２】
2004320433.tif 000004
【図３】
2004320433.tif 000005
【図４】
2004320433.tif 000006
【図５】
2004320433.tif 000007
【図６】
2004320433.tif 000008
【図７】
2004320433.tif 000009
【図８】
2004320433.tif 000010
【図９】
2004320433.tif 000011
【図１０】
2004320433.tif 000012
【図１１】
2004320433.tif 000013
【図１２】
2004320433.tif 000014
【図１３】
2004320433.tif 000015
【図１４】
2004320433.tif 000016
【図１５】
2004320433.tif 000017
【図１６】
2004320433.tif 000018
【図１７】
2004320433.tif 000019
【図１８】
2004320433.tif 000020
【図１９】
2004320433.tif 000021
【図２０】
2004320433.tif 000022
【図２１】
2004320433.tif 000023
【図２２】
2004320433.tif 000024