(57)【要約】【課題】マクロとユーザロジック回路との間の遅延故障を検出するマクロ境界テストにおいて必要なテストパタンの数を減少させる。【解決手段】本発明の半導体集積回路１０は、マクロ１と、マクロ１の入力に接続されたデータ出力５２を有し、且つ、マクロ１と同じクロックで動作する制御用フリップフロップ３とを備えている。制御用フリップフロップ３は、データ入力５２とは別に設けられた外部制御入力５１及びマクロテストモード切換入力５３に供給される外部制御信号及びマクロモード切換信号により、そのデータ出力を前記クロックに同期してトグルする動作を行うように設定可能であるように構成されている。【選択図】図２
2009205414.tif 000002
【特許請求の範囲】
【請求項１】
フリップフロップ分類手段と、フリップフロップ置換手段とを備えた半導体設計装置によって半導体集積回路を設計する半導体集積回路設計方法であって、
（ａ）前記フリップフロップ分類手段が、前記半導体集積回路のネットリストに記述されたマクロとフリップフロップとの間の接続関係に基づいて、前記マクロの周辺に位置するフリップフロップを分類するステップと、
（ｂ）前記フリップフロップ置換手段が、前記ネットリストからＦＦ置換後ネットリストを生成するステップ
とを具備し、
前記（ａ）ステップでは、前記マクロの入力端子に、直接に又は入力側ロジックコーンを介して接続され、且つ、前記マクロと同じクロックで動作するフリップフロップが制御用タイプと分類されると共に、前記マクロの入力端子に、直接に又は前記入力側ロジックコーンを介して接続されたデータ出力を有し、且つ、前記マクロと異なるクロックで動作するフリップフロップが保持用タイプと分類され、
前記ＦＦ置換後ネットリストでは、前記制御用タイプに分類された前記フリップフロップが、データ入力とは別に設けられた制御入力の設定により、そのデータ出力を前記クロックに同期してトグルする動作を行うように設定可能である制御用フリップフロップに置換されると共に、前記保持用タイプに分類された前記フリップフロップが、制御入力の設定により、それが保持するデータを不変に保持するように設定可能である第１保持用フリップフロップに置換されている
半導体集積回路設計方法。
【請求項２】
請求項１に記載の半導体集積回路設計方法であって、
前記（ａ）ステップでは、前記マクロの出力端子に、直接に又は出力側ロジックコーンを介して接続されたデータ入力を有し、且つ、前記マクロと同じクロックで動作するフリップフロップが、観測用タイプと分類され、
前記ＦＦ置換後ネットリストでは、前記観測用タイプに分類されたフリップフロップが、前記出力側ロジックコーンからデータを受け取る機能を有する観測用フリップフロップに置換されている
半導体集積回路設計方法。
【請求項３】
請求項２に記載の半導体集積回路設計方法であって、
前記（ａ）ステップでは、前記出力側ロジックコーンの入力に接続されたデータ出力を有するフリップフロップが、保持用タイプと分類され、
前記ＦＦ置換後ネットリストでは、前記出力側ロジックコーンの入力に接続されたデータ出力を有する前記保持用タイプに分類されたフリップフロップが、制御入力の設定により、それが保持するデータを不変に保持するように設定可能である第２保持用フリップフロップに置換されている
半導体集積回路設計方法。
【請求項４】
前記半導体集積回路のネットリストに記述されたマクロとフリップフロップとの間の接続関係に基づいて、前記マクロの周辺に位置するフリップフロップを分類するフリップフロップ分類手段と、
前記ネットリストからＦＦ置換後ネットリストを生成するフリップフロップ置換手段
とを具備し、
前記フリップフロップ分類手段は、前記マクロの入力端子に、直接に又は入力側ロジックコーンを介して接続され、且つ、前記マクロと同じクロックで動作するフリップフロップを制御用タイプと分類し、
前記フリップフロップ置換手段は、前記制御用タイプに分類された前記フリップフロップが、データ入力とは別に設けられた制御入力の設定により、そのデータ出力を前記クロックに同期してトグルする動作を行うように設定可能である制御用フリップフロップに置換され、前記保持用タイプに分類された前記フリップフロップが、制御入力の設定により、それが保持するデータを不変に保持するように設定可能である保持用フリップフロップに置換されているように前記ＦＦ置換後ネットリストを生成する
半導体集積回路設計装置。
【請求項５】
マクロと、
前記マクロの入力端子に、直接に又は入力側ロジックコーンを介して接続されたデータ出力を有し、且つ、前記マクロと同じクロックで動作する制御用フリップフロップと、
前記マクロの入力端子に、直接に又は前記入力側ロジックコーンを介して接続されたデータ出力を有し、且つ、前記マクロと異なるクロックで動作する第１保持用フリップフロップ
とを具備し、
前記制御用フリップフロップは、データ入力とは別に設けられた制御入力の設定により、そのデータ出力を前記クロックに同期してトグルする動作を行うように設定可能であり、
前記第１保持用フリップフロップは、制御入力の設定により、それが保持するデータを不変に保持するように設定可能である
半導体集積回路。
【請求項６】
請求項５に記載の半導体集積回路であって、
更に、
前記マクロの出力端子に、直接に又は出力側ロジックコーンを介して接続されたデータ入力を有し、且つ、前記マクロと同じクロックで動作する観測用フリップフロップを具備する
半導体集積回路。
【請求項７】
請求項６に記載の半導体集積回路であって、
更に、
前記出力側ロジックコーンの入力に接続されたデータ出力を有する第２保持用フリップフロップを具備し、
前記第２保持用フリップフロップは、制御入力の設定により、それが保持するデータを不変に保持するように設定可能である
半導体集積回路。
【請求項８】
請求項５乃至７のいずれかに記載の半導体集積回路であって、
前記制御用フリップフロップの前記制御入力は、第１制御入力と第２制御入力とを備え、
前記制御用フリップフロップは、
第１スキャンＦＦと、
ＸＯＲゲートと、
第１セレクタ
とを備え、
前記ＸＯＲゲートは、その第１入力が前記第１スキャンＦＦのデータ出力に接続され、その第２入力が前記第１制御入力に接続され、その出力が前記第１セレクタの第１入力に接続された出力とを有し、
前記第１セレクタの第２入力が前記制御用フリップフロップの前記データ入力に接続され、且つ、前記第１セレクタの出力が前記スキャンＦＦのデータ入力に接続され、
前記第１セレクタを制御する信号が、前記第２制御入力に供給される
半導体集積回路。
【請求項９】
請求項５乃至７のいずれかに記載の半導体集積回路であって、
前記第１保持用フリップフロップは、
第２スキャンＦＦと、
第２セレクタ
とを備え、
前記第２セレクタは、前記第２スキャンＦＦのデータ出力に接続された第１入力と、前記第１保持用フリップフロップのデータ入力に接続された第２入力と、前記第２スキャンＦＦの前記データ入力に接続された出力を有し、
前記第２セレクタを制御する信号が、前記第１保持用フリップフロップの前記制御入力に供給される
半導体集積回路。
【請求項１０】
請求項５乃至９のいずれかに記載の半導体集積回路であって、
前記制御用フリップフロップは複数であり、
前記複数の制御用フリップフロップのうちの第１制御用フリップフロップの前記制御入力には第１制御信号が供給され、
前記複数の制御用フリップフロップのうちの第２制御用フリップフロップの前記制御入力には、前記第１制御信号とは異なる第２制御信号が供給される
半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路及びその設計方法並びに半導体集積回路設計装置に関し、特に、マクロ境界テストを容易化するためのテスト容易化設計（design for testability）に関する。
【背景技術】
【０００２】
マクロとユーザロジック回路との間の遅延故障を検出するマクロ境界テストは、ＬＳＩ（large scale integrated circuit）の開発における重要な要素技術の一つである。近年のＬＳＩは、ますます大規模化しており、多くのマクロが搭載される。ＬＳＩの品質を確保するためには、そのマクロ間での信号の授受のタイミングが適正であることを確認しなくてはならない。
【０００３】
特開２００６−３３７２８９号公報は、マクロ境界テストを行うための技術、より具体的には、ロジックとメモリの間の遅延故障の検出のための技術を開示している。この技術は、メモリＢＩＳＴ（built in self test）回路によってメモリテストを行う信号経路とロジックとメモリの間を接続する信号経路とを切換可能にすることにより、遅延故障の検出を可能にする、というものである。
【０００４】
図１は、特開２００６−３３７２８９号公報に開示されている半導体集積回路の構成を示す回路図である。当該半導体集積回路は、ロジック回路１１８と組み込み型のメモリ１１７とを備えている。メモリ１１７は、ロジック回路１１８によってメモリアクセスが行われる。ロジック回路１１８とメモリ１１７とは、ともに、テストを行うためのスキャンパスに組み込まれている。即ち、ロジック回路１１８には、メモリ１１７と信号を授受するためのＦＦ（フリップフロップ）１０１、１０４が設けられており、そのＦＦ１０１、１０４は、テストモードに設定されると、直列に接続されてスキャンパスの一部に組み込まれる。ＦＦ１０１、１０４は、内部クロックに同期して動作するように構成されていることに留意されたい。メモリ１１７とロジック回路１１８の間にはセレクタ１０５が設けられており、メモリ１１７は、セレクタ１０５を介してメモリＢＩＳＴ回路１１０にも接続可能である。メモリＢＩＳＴ回路１１０には、スキャンパスに組み込まれたＦＦ１１３、１１４が設けられており、ＦＦ１１３、１１４からメモリ１１７にアクセスすることができる。
【０００５】
メモリ１１７の入力にはＦＦ１２２が用意されており、そのＦＦ１２２もスキャンパスに組み込まれている。ＦＦ１２２は、メモリ入力１０２に対応して設けられており、メモリアクセスのためにメモリ入力１０２に入力された入力信号を取り込み保持する。
【０００６】
メモリ１１７は、ライトスルーモードを持つように構成されている。メモリ１１７がライトスルーモードに設定されると（即ち、ライトスルーモード信号１２０がイネーブルにされると）、書き込み動作のために書き込み回路が動作状態に設定されると共に読み出し回路も動作状態にされる。例えば、ライトアンプとセンスアンプとが共に活性化されて、メモリセルにデータが書き込まれると共に、メモリセルにデータがセンスアンプにより検出されて出力される。このような動作により、メモリ１１７に設けられたＦＦ１２２の出力値がメモリセルアレイ１１９に書き込まれると共に、当該出力値と同じデータがメモリセルアレイ１１９から読み出されてメモリ出力１０３から出力される。
【０００７】
図１において、メモリ１１７とロジック回路１１８の間の遅延故障の検出の信号経路は、実線で示されている。遅延故障の検出は、以下のようにして行われる。外部から供給される比較的低い周波数のスキャン用クロックに同期して、テスト用データが、スキャン入力１０８、１１５を介してＦＦ１０１、１０４、１２２にシリアル入力される。続いて、実動作の周波数を有する内部クロックに同期してテスト用データがＦＦ１０１、１０４、１２２からパラレル出力され、ロジック回路１１８とメモリ１１７のテストが行われる。具体的には、ロジック回路１１８のＦＦ１０１から出力されたデータは、メモリ１１７のＦＦ１２２にラッチされる。ＦＦ１２２にラッチされたデータは、スキャン出力１１６から取り出され、取り出されたデータに基づいて、ロジック回路１１８の出力段であるＦＦ１０１とメモリ１１７の入力段であるＦＦ１２２の間の遅延故障が検出される。更に、ＦＦ１２２からロジック回路１１８のＦＦ１０４の間の遅延故障が下記のようにして検出される：ライトスルーモード信号１２０がイネーブルにされ、メモリ１１７はライトスルーモードに設定される。更に、メモリ１１７のＦＦ１２２にスキャン入力されたテストデータがメモリアクセスのための入力データとして使用される。ＦＦ１２２の出力（書き込みデータ）は、メモリセルアレイ１１９を通過し、メモリ出力１０３を通してロジック回路１１８のＦＦ１０４にラッチされる。ＦＦ１０４にラッチされたデータは、スキャン出力１０９から取り出される。ＦＦ１０４にラッチされたデータに基づいて、ＦＦ１２２からロジック回路１１８のＦＦ１０４の間の遅延故障が検出される。
【０００８】
【特許文献１】特開２００６−３３７２８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、従来のマクロ境界テストの手法では、高品質なマクロ境界テストを実現するためには、膨大な数のテストパタンが必要であるという問題がある。例えば、図１の半導体集積回路について考えてみよう。図１の半導体集積回路では、メモリ１１７のＦＦ１２２とロジック回路１１８のＦＦ１０４の間の遅延故障は少ないテストパタンで検出可能である。しかし、ロジック回路１１８のＦＦ１０１とメモリ１１７のＦＦ１２２との間の遅延故障を検出するためには膨大なテストパタンを用意する必要がある。なぜなら、ロジック回路１１８のＦＦ１０１とメモリ１１７のＦＦ１２２との間の遅延故障を検出するためには、ＦＦ１０１の出力データを実動作の周波数でトグルさせる必要があり、このためには、データ入力Ｄに接続されたロジックコーンへのデータ入力を全て制御するテストパタンを生成する必要があるからである。
【課題を解決するための手段】
【００１０】
本発明の一の観点では、フリップフロップ分類手段と、フリップフロップ置換手段とを備えた半導体設計装置によって半導体集積回路を設計する半導体集積回路設計方法が下記ステップを備えている：
（ａ）前記フリップフロップ分類手段が、前記半導体集積回路のネットリストに記述されたマクロとフリップフロップとの間の接続関係に基づいて、前記マクロの周辺に位置するフリップフロップを分類するステップ、及び
（ｂ）前記フリップフロップ置換手段が、前記ネットリストからＦＦ置換後ネットリストを生成するステップ。
前記（ａ）ステップでは、前記マクロの入力端子に、直接に又は入力側ロジックコーンを介して接続され、且つ、前記マクロと同じクロックで動作するフリップフロップが制御用タイプと分類されると共に、前記マクロの入力端子に、直接に又は前記入力側ロジックコーンを介して接続されたデータ出力を有し、且つ、前記マクロと異なるクロックで動作するフリップフロップが保持用タイプと分類される。前記ＦＦ置換後ネットリストでは、前記制御用タイプに分類された前記フリップフロップが、データ入力とは別に設けられた制御入力の設定により、そのデータ出力を前記クロックに同期してトグルする動作を行うように設定可能である制御用フリップフロップに置換されると共に、前記保持用タイプに分類された前記フリップフロップが、制御入力の設定により、それが保持するデータを不変に保持するように設定可能である保持用フリップフロップに置換されている。
【００１１】
このような半導体集積回路設計方法によれば、設計された半導体集積回路に対してマクロ境界テストを実行するときに、前記制御用フリップフロップを制御信号によって前記制御用フリップフロップのデータ出力をクロックに同期してトグルするように設定すると共に、前記保持用フリップフロップを制御入力の設定により、それが保持するデータを不変に保持するように設定することにより、制御用フリップフロップのデータ入力に接続されるロジックコーンの制御のためのテストパタンが不要になる。したがって、より少ないテストパタンしか用いずにマクロ境界テストを行うことができる。
【発明の効果】
【００１２】
本発明によれば、マクロとユーザロジック回路との間の遅延故障を検出するマクロ境界テストにおいて必要なテストパタンの数を減少させることができる。
【発明を実施するための最良の形態】
【００１３】
図２は、本発明の一実施形態の半導体集積回路１０の構成の例を示す概念図である。半導体集積回路１０は、マクロ１と、マクロ１の入力端子ＩＮ１、ＩＮ２にロジックコーン２を介して接続されたフリップフロップとを備えている。図２の例では、マクロ１の入力端子ＩＮ１に接続されたロジックコーン２はＡＮＤゲート２ａで構成され、入力端子ＩＮ２に接続されたロジックコーン２はＯＲゲート２ｂで構成されている。
【００１４】
入力端子ＩＮ１、ＩＮ２に直接に、又は、ロジックコーン２を介して接続されたフリップフロップのうち、マクロ１と同一のクロックで動作するフリップフロップとしては制御用ＦＦ３が使用され、異なるクロックで動作するフリップフロップとしては、保持用ＦＦ４が使用される。ここで、制御用ＦＦ３とは、外部から制御することにより、そのデータ出力をトグルするように設定可能なフリップフロップであり、保持用ＦＦ４とは、外部から制御することにより、それが保持する値を不変に保つように設定可能なフリップフロップである。マクロ境界テストを行う際には、制御用ＦＦ３及び保持用ＦＦ４が、マクロテスト用スキャンパス５に組み込まれ、制御用ＦＦ３及び保持用ＦＦ４への初期値の設定は、マクロテスト用スキャンパス５を介して行われる。制御用ＦＦ３、保持用ＦＦ４の構成については、後に詳細に説明する。
【００１５】
半導体集積回路１０には、更に、マクロ１の出力端子ＯＵＴ１、ＯＵＴ２に接続されたロジックコーン６からデータを受け取るフリップフロップが設けられている。図２の例では、マクロ１の出力端子ＯＵＴ１に接続されたロジックコーン６は、ＯＲゲート６ａで構成されており、出力端子ＯＵＴ２に接続されたロジックコーン６は、ＡＮＤゲート６ｂで構成されている。
【００１６】
ロジックコーン６からデータを受け取るフリップフロップのうちマクロ１と同一のクロックで動作するフリップフロップとしては、観測用ＦＦ７が使用される。観測用ＦＦ７は、マクロ境界テストの際にマクロ１から出力されるデータを受け取るフリップフロップである。加えて、観測用ＦＦ７のデータ入力に接続されたロジックコーン６の入力には、保持用ＦＦ８が接続される。保持用ＦＦ８は、保持用ＦＦ４と同様に、外部から制御することにより、それが保持する値を不変に保つように設定可能なフリップフロップである。マクロ境界テストを行う際には、観測用ＦＦ７及び保持用ＦＦ８が、マクロテスト用スキャンパス９に組み込まれ、観測用ＦＦ７からのデータの読み出し、及び、保持用ＦＦ８の初期値の設定は、マクロテスト用スキャンパス９を介して行われる。観測用ＦＦ７、保持用ＦＦ８の構成については、後に詳細に説明する。
【００１７】
なお、図２は、あくまで半導体集積回路１０の構成の概念を示す図であり、現実の半導体集積回路は、一般には、より複雑な構成を有していることは当業者には理解されよう。また、図２には、ロジックコーン２を介してマクロ１の入力端子ＩＮ１、ＩＮ２にロジックコーン２を介して制御用ＦＦ３、保持用ＦＦ４が接続される構成が図示されているが、制御用ＦＦ３、保持用ＦＦ４が、マクロ１の入力端子に直接に接続されることもあることに留意されたい。同様に、図２には、マクロ１の出力端子ＯＵＴ１、ＯＵＴ２にロジックコーン６を介して観測用ＦＦ７が接続される構成が図示されているが、観測用ＦＦ７が、マクロ１の出力端子に直接に接続されることもあることに留意されたい。
【００１８】
続いて、制御用ＦＦ３、保持用ＦＦ４、観測用ＦＦ７及び保持用ＦＦ８の構成を説明する。図３は、制御用ＦＦ３の構成を示す回路図である。制御用ＦＦ３は、スキャンＦＦ１１と、ＸＯＲゲート１２と、セレクタ１３、１４とを備えて構成されており、１つの出力：データ出力５８と、７つの入力：外部制御入力５１、データ入力５２、マクロテストモード切換入力５３、マクロテスト用スキャン入力５４、１チップテスト用スキャン入力５５、ＳＭＣ入力５６、及びクロック入力５７とを有している。ここで、外部制御入力５１とは、半導体集積回路１０の外部から供給される外部制御信号を受け取る制御入力端子であり、データ入力５２とは、半導体集積回路１０に集積化された他のロジック回路からデータを受け取る入力端子である。マクロテストモード切換入力５３とは、マクロ境界テストを行うか、半導体集積回路１０全体での動作テストを行うかを指定するマクロテストモード切換信号が供給される制御入力端子である。マクロテスト用スキャン入力５４とは、マクロテスト用スキャンパス５（マクロ境界テストを行うときに使用されるスキャンパス）を構成する他のスキャンＦＦ（他の制御用ＦＦ３、保持用ＦＦ４を含む）のデータ出力に接続されるスキャン入力であり、一方、１チップテスト用スキャン入力５５とは、半導体集積回路１０の全体の動作テストの際に使用されるスキャンパスを構成する他のスキャンＦＦのデータ出力に接続されるスキャン入力である。ＳＭＣ入力５６とは、スキャンモードコントロール信号が供給される入力端子であり、クロック入力５７とはクロックが供給される入力端子である。
【００１９】
スキャンＦＦ１１は、一般的に使用されるスキャンＦＦと同様の機能を有している。即ち、スキャンモードコントロール入力ＳＭＣが活性化されている場合（即ち、”１”に設定されている場合）、スキャンＦＦ１１は、スキャン入力ＳＩＮに入力されたデータを、クロック入力Ｃに入力されたクロックに同期してラッチして保持する。一方、スキャンモードコントロール入力ＳＭＣが非活性化されている場合（即ち、”０”に設定されている場合）、スキャンＦＦ１１は、通常のＦＦと同様の動作、即ち、データ入力Ｄに入力されたデータを、クロック入力Ｃに入力されたクロックに同期してラッチして保持する動作を行う。スキャンＦＦ１１は、ラッチしたデータをデータ出力Ｑから出力する。スキャンＦＦ１１のデータ出力Ｑは、データ出力５８に接続され、スキャンモードコントロール入力ＳＭＣは、ＳＭＣ入力５６に接続され、スキャンＦＦ１１のクロック入力Ｃは、クロック入力５７に接続されている。
【００２０】
ＸＯＲゲート１２は、その一方の入力がスキャンＦＦ１１のデータ出力Ｑに接続され、他方の入力が外部制御入力５１に接続され、その出力がセレクタ１３の一方の入力に接続されている。
【００２１】
セレクタ１３は、その一方の入力がＸＯＲゲート１２の出力に接続され、他方の入力がデータ入力５２に接続され、出力がスキャンＦＦ１１のデータ入力Ｄに接続されている。セレクタ１３の制御入力は、マクロテストモード切換入力５３に接続されており、セレクタ１３は、マクロテストモード切換入力５３に供給されたマクロテストモード切換信号に応じて、ＸＯＲゲート１２の出力とデータ入力５２の一方を選択する。詳細には、セレクタ１３は、マクロテストモード切換信号が”１”に設定されるとＸＯＲゲート１２から出力されるデータをスキャンＦＦ１１のデータ入力Ｄに供給する一方、マクロテストモード切換信号が”０”に設定されるとデータ入力５２に供給されたデータをスキャンＦＦ１１のデータ入力Ｄに供給する。
【００２２】
セレクタ１４は、その一方の入力がマクロテスト用スキャン入力５４に接続され、他方の入力が１チップテスト用スキャン入力５５に接続され、その出力が、スキャンＦＦ１１のスキャン入力ＳＩＮに接続されている。セレクタ１４は、マクロテストモード切換信号が”１”に設定されるとマクロテスト用スキャン入力５４に入力されたデータをスキャンＦＦ１１のスキャン入力ＳＩＮに供給する一方、マクロテストモード切換信号が”０”に設定されると１チップテスト用スキャン入力５５に入力されたデータをスキャンＦＦ１１のスキャン入力ＳＩＮに供給する。
【００２３】
このような構成の制御用ＦＦ３は、マクロテストモード切換信号が”０”に設定されると、通常のスキャンＦＦと同様の動作を行う。一方、制御用ＦＦ３は、外部制御信号及びマクロテストモード切換信号をいずれも”１”に設定することにより、クロック入力５７に入力されるクロックに同期してデータ出力５８をトグルするように設定可能である。後述されるように、制御用ＦＦ３のこのような機能は、マクロ境界テストを行う上で重要である。
【００２４】
図４は、観測用ＦＦ７の構成を示す回路図である。観測用ＦＦ７は、制御用ＦＦ３からＸＯＲゲート１２、セレクタ１３、及び外部制御入力５１を取り除いた構成を有している。ただし、スキャンＦＦ１１のデータ入力Ｄは、データ入力５２に接続されている。観測用ＦＦ７のマクロテスト用スキャン入力５４は、マクロテスト用スキャンパス９（マクロ境界テストを行うときに使用されるスキャンパス）を構成する他のスキャンＦＦ（これは、他の観測用ＦＦ７、保持用ＦＦ８であり得る）のデータ出力に接続され、１チップテスト用スキャン入力５５は、半導体集積回路１０の全体の動作テストの際に使用されるスキャンパスを構成する他のスキャンＦＦのデータ出力に接続される。
【００２５】
図５は、保持用ＦＦ４、８の構成を示す回路図である。保持用ＦＦ４、８は、制御用ＦＦ３からＸＯＲゲート１２及び外部制御入力５１を取り除いた構成を有している。ただし、保持用ＦＦ４、８では、セレクタ１３の一方の入力がスキャンＦＦ１１のデータ出力Ｑに接続され、他方の入力がデータ入力５２に接続されている。保持用ＦＦ４のマクロテスト用スキャン入力５４は、マクロテスト用スキャンパス５を構成する他のスキャンＦＦ（これは、制御用ＦＦ３、及び他の保持用ＦＦ４であり得る）のデータ出力に接続される。同様に、保持用ＦＦ８のマクロテスト用スキャン入力５４は、マクロテスト用スキャンパス９を構成する他のスキャンＦＦ（これは、観測用ＦＦ７、及び他の保持用ＦＦ８であり得る）のデータ出力に接続される。
【００２６】
このような構成の保持用ＦＦ４、８は、マクロテストモード切換入力５３が”１”に設定されると、データ出力５８の値を不変に保持する機能を有している。後述されるように、保持用ＦＦ４、８のこのような機能は、マクロ境界テストを行う上で重要である。
【００２７】
上述の制御用ＦＦ３、保持用ＦＦ４、観測用ＦＦ７及び保持用ＦＦ８は、いずれも、セレクタ１４により、マクロテスト用スキャン入力５４と１チップテスト用スキャン入力５５の一方を、スキャンＦＦ１１のスキャン入力ＳＩＮに選択的に接続するように構成されていることに留意されたい。このような構成は、マクロ境界テストと半導体集積回路１０の全体の動作テストとで、別のスキャンパスを構成可能にし、マクロ境界テストを容易化するためのものである。マクロテストモード切換入力が”１”に設定されると、制御用ＦＦ３、保持用ＦＦ４、観測用ＦＦ７及び保持用ＦＦ８は、マクロテスト用スキャンパス５又は９に組み込まれる一方、マクロテストモード切換入力が”０”に設定されると、制御用ＦＦ３、保持用ＦＦ４、観測用ＦＦ７及び保持用ＦＦ８は、半導体集積回路１０の全体の動作テストで使用されるスキャンパスに組み込まれる。マクロ境界テストに使用されるマクロテスト用スキャンパス５、９を半導体集積回路１０の全体の動作テストとは別に用意することにより、マクロテスト用スキャンパス５、９を最小限のフリップフロップで構築できる。これは、マクロ境界テストのためのテストパタンの作成を一層に容易化する。なお、半導体集積回路１０の全体の動作テストで使用されるスキャンパスが、マクロ境界テストでも使用されることも原理的には可能である。この場合には、制御用ＦＦ３、保持用ＦＦ４、観測用ＦＦ７及び保持用ＦＦ８からセレクタ１４及びマクロテスト用スキャン入力５４が取り除かれ、スキャンＦＦ１１のスキャン入力ＳＩＮが、１チップテスト用スキャン入力５５に直接に接続される。
【００２８】
制御用ＦＦ３、保持用ＦＦ４、観測用ＦＦ７及び保持用ＦＦ８は、いずれも、通常のスキャンＦＦの構成を修正することによって形成されていることに留意されたい。典型的には、制御用ＦＦ３、保持用ＦＦ４、観測用ＦＦ７及び保持用ＦＦ８は、通常のスキャンＦＦに対して別途に回路階層を追加して（即ち、ラッパ（wrapper）を追加し）、当該回路階層に入力端子を用意することによって構成される。制御用ＦＦ３、保持用ＦＦ４、観測用ＦＦ７及び保持用ＦＦ８は、プリミティブブロックの一種であるスキャンＦＦ、セレクタ、及びＸＯＲゲートを組み合わせることによって構成可能である。
【００２９】
続いて、このような構成の制御用ＦＦ３、保持用ＦＦ４、観測用ＦＦ７、及び保持用ＦＦ８を用いてマクロ境界テストを行う手順を説明する。まず、マクロテスト用スキャンパス５、９を用いて、スキャンシフト動作により、制御用ＦＦ３、保持用ＦＦ４、観測用ＦＦ７、及び保持用ＦＦ８に初期値を設定する。具体的には、マクロテストモード制御信号が活性化され、制御用ＦＦ３、保持用ＦＦ４、観測用ＦＦ７、及び保持用ＦＦ８のマクロテストモード切換入力が”１”に設定される。これにより、制御用ＦＦ３及び保持用ＦＦ４がマクロテスト用スキャンパス５に組み込まれ、観測用ＦＦ７及び保持用ＦＦ８が、マクロテスト用スキャンパス９に組み込まれる。更に、スキャンモードコントロール信号が活性化され、これにより、制御用ＦＦ３、保持用ＦＦ４、観測用ＦＦ７、及び保持用ＦＦ８のＳＭＣ入力５６が”１”に設定される。この状態で、クロック入力５７にスキャン用のクロックが供給されると共に、マクロテスト用スキャンパス５、９を介して初期値が順次に供給されると、制御用ＦＦ３、保持用ＦＦ４、観測用ＦＦ７、及び保持用ＦＦ８に所望の初期値が設定される。
【００３０】
続いて、故障検出対象パス（即ち、制御用ＦＦ３からマクロ１を通って観測用ＦＦ７に到達するパス）が実動作と同じ周波数で動作される。具体的には制御用ＦＦ３、保持用ＦＦ４、観測用ＦＦ７、及び保持用ＦＦ８のＳＭＣ入力５６が”０”に設定されると共に、制御用ＦＦ３、保持用ＦＦ４、観測用ＦＦ７、及び保持用ＦＦ８のクロック入力５７に半導体集積回路１０の内部クロック回路により、実動作と同じ周波数のクロックが供給される。これにより、制御用ＦＦ３からロジックコーン２を介してマクロ１に信号が伝送されると共に、マクロ１から観測用ＦＦ７にロジックコーン６を介して信号が伝送される。更に、クロックの供給が停止されて、故障検出対象パスの動作が停止される。
【００３１】
このとき、保持用ＦＦ４、８のデータ出力５８は、ＳＭＣ入力５６が”０”に設定されたことに応答して所望の初期値に固定される。これは、マクロ境界テストにおいて故障検出対象パスを有効に動作させるためである。保持用ＦＦ４、８の出力値が不適切であると、制御用ＦＦ３の出力値がトグルされても、保持用ＦＦ４、８の出力によって故障検出対象パス上で伝送される信号がマスクされ、当該信号がトグルしないことがあり得る。これは、マクロ境界テストを適切に行う上で好適でない。保持用ＦＦ４、８のデータ出力５８が所望の初期値に固定されることにより、マクロ境界テストを適切に行うことができる。マクロ境界テストにおける故障検出対象パスは、マクロ１と当該マクロ１と同一のクロックで動作するフリップフリップの間のパスであり、保持用ＦＦ４、８は、マクロ１とは異なるクロックで動作するフリップフロップであるから、保持用ＦＦ４、８のデータ出力５８は固定値で問題ない。
【００３２】
続いて、マクロテスト用スキャンパス９を介して観測用ＦＦ７に保持されているデータが読み出され、読み出されたデータに基づいて当該故障検出対象パスの遅延故障が検出される。
【００３３】
このようなテスト手法の利点は、マクロ境界テストに必要なテストパタンの数が少なくてよいことである。本実施形態の半導体集積回路１０では、制御用ＦＦ３が、外部制御信号及びマクロテストモード切換信号の値を適切に設定することにより、そのデータ入力５２の値と無関係にデータ出力５８をトグルするように設定可能である。制御用ＦＦ３のデータ出力５８をトグルさせるために必要なテストパタンは、外部制御信号及びマクロテストモード切換信号を設定するテストパタンのみであり、その数は少ない。トグルするデータ出力５８の初期値は、上述のようにマクロテスト用スキャンパス５、９により外部から設定することが可能である。初期値設定後にトグルするようにテストパタンを構成することができる。初期値設定のテストパタンは、場合に応じて付加することとしてもよい。本実施形態では、制御用ＦＦ３のデータ入力５２に接続されたロジックコーンへのデータ入力を全て制御するテストパタンを生成する必要はない。このように、本実施形態の半導体集積回路１０では、少ない数のテストパタンによってマクロ境界テストを行うことができる。
【００３４】
なお、図６に示されているように、半導体集積回路１０に複数の制御用ＦＦ３が設けられている場合、異なる制御用ＦＦ３には異なる外部制御信号が供給されることも可能である。図６の例では、制御用ＦＦ３Ａの外部制御入力５１には、外部制御端子６１から外部制御信号が供給される一方、制御用ＦＦ３Ｂ、３Ｃの外部制御入力５１には、外部制御端子６２から外部制御信号が供給される。また、制御用ＦＦ３Ｄの外部制御入力５１には、外部制御端子６３から外部制御信号が供給される。このような構成によれば、各制御用ＦＦの動作が独立に設定可能になり、マクロ境界テストのテストパタンの作成が容易になる。
【００３５】
続いて、本実施形態の半導体集積回路１０の設計手法について説明する。図７は、本実施形態の半導体集積回路１０の設計手法を示すフローチャートである。図７に示されているように、半導体集積回路１０の設計では、まず、ＲＴＬ（register transfer level）設計が行われ、半導体集積回路１０のＲＴＬ記述２１が生成される（ステップＳ０１）。続いて、ＲＴＬ記述２１に対して論理合成が行われ、ＲＴＬ記述２１に対応するネットリスト２２が生成される（ステップＳ０２）。ネットリスト２２には、半導体集積回路に含まれる構成要素、及びその間の接続関係が記述される。即ち、ネットリスト２２には、マクロとその周辺に位置するフリップフロップとの間の接続関係が記述される。
【００３６】
続いて、マクロ境界テストの対象であるマクロ（テスト対象マクロ）のそれぞれについて、その周辺に位置するフリップフロップが抽出され、更に、抽出されたフリップフロップのうち、特定の条件を満たすものが、制御用タイプ、観測用タイプ、及び保持用タイプの３種類に分類される（ステップＳ０３）。この分類においては、上述のネットリスト２２、及び、各フリップフロップ及び各マクロに供給されるクロックを示すクロック情報２３が参照される。また、どのマクロがテスト対象であるかは、テスト対象マクロ指定情報２４によって指定される。
【００３７】
より具体的には、（１）マクロの入力端子に直接に、又はロジックコーンを介して接続され、且つ、当該マクロと同一のクロックで動作するフリップフロップは、制御用タイプと分類される。また、（２）マクロの出力端子に直接に、又はロジックコーンを介して接続され、且つ、当該マクロと同一のクロックで動作するフリップフロップは、観測用タイプと分類される。加えて、（３ａ）マクロの入力端子に直接に、又はロジックコーンを介して接続され、且つ、当該マクロと異なるクロックで動作するフリップフロップ、及び（３ｂ）観測用タイプと分類されたフリップフロップのデータ入力に接続されたロジックコーンの入力に接続されたフリップフロップが、保持用タイプと分類される。フリップフロップの分類の手順は、後に詳細に説明する。ステップＳ０３では、制御用タイプに分類されたフリップフロップを列挙する制御用ＦＦリスト２５、観測用タイプに分類されたフリップフロップを列挙する観測用ＦＦリスト２６、及び保持用タイプに分類されたフリップフロップを列挙する保持用ＦＦリスト２７が生成される。
【００３８】
図８Ａ、図８Ｂは、ステップＳ０３における分類手順の詳細を示すフローチャートである。図８Ａに示されているように、まず、全てのテスト対象マクロの全ての端子が、ネットリスト２２から抽出される（ステップＳ１０２）。各テスト対象マクロの端子のそれぞれについて、下記の処理が行われる：
【００３９】
処理対象の端子が出力端子である場合、当該出力端子に接続されたロジックコーンの出力に接続された全てのフリップフロップが抽出される（ステップＳ１０４）。ステップＳ１０４で抽出されたフリップフロップに当該テスト対象マクロと同一のクロックで動作するフリップフロップが存在しない場合には、ステップＳ１０６に処理が移る。一方、ステップＳ１０４で抽出されたフリップフロップのうち、当該テスト対象マクロと同一のクロックで動作するフリップフロップが存在する場合、当該フリップフロップが観測用タイプとして分類され、観測用ＦＦリスト２６にリストアップされる（ステップＳ１０７）。更に、観測用タイプとして分類されたフリップフロップのデータ入力に接続されているロジックコーンの入力に接続されたフリップフロップが抽出される（ステップＳ１０８）。ステップＳ１０８で抽出されたフリップフロップは、保持用ＦＦ候補としてリストアップされる（ステップＳ１０９）。ここで、保持用ＦＦ候補とは、保持用タイプのフリップフロップと分類される「候補」であり、この段階では、最終的に保持用タイプに分類されていないことに留意されたい。
【００４０】
一方、処理対象の端子が入力端子である場合、当該入力端子に接続されたロジックコーンの入力に接続された全てのフリップフロップが抽出される（ステップＳ１１０）。ステップＳ１１０で抽出されたフリップフロップのうち、当該テスト対象マクロと同一のクロックで動作するフリップフロップは制御用ＦＦ候補としてリストアップされる。ここで、制御用ＦＦ候補とは、制御用タイプのフリップフロップと分類される「候補」であり、この段階では、最終的に制御用タイプに分類されていない。一方、ステップＳ１０４で抽出されたフリップフロップのうち、当該テスト対象マクロと異なるクロックで動作するフリップフロップは、保持用ＦＦ候補としてリストアップされる（ステップＳ１０９）。
【００４１】
図８Ｂを参照して、ステップＳ１０８、Ｓ１１３において制御用ＦＦ候補、保持用ＦＦ候補としてリストアップされたフリップフロップの最終的な帰属は、下記のように決定される。制御用ＦＦ候補としてリストアップされたフリップフロップが、観測用タイプとして分類されたフリップフロップと重複している場合、当該フリップフロップは、観測用タイプとして分類され、観測用ＦＦリスト２６にリストアップされる（ステップＳ１０７）。更に、制御用ＦＦ候補としてリストアップされたフリップフロップが、観測用タイプとして分類されたフリップフロップと重複していない場合、当該フリップフロップは、制御用タイプに分類され、制御用ＦＦリスト２５にリストアップされる（ステップＳ１１７）。一方、保持用ＦＦ候補としてリストアップされたフリップフロップが、観測用タイプとして分類されたフリップフロップと重複している場合（ステップＳ１１３）、当該フリップフロップは、観測用タイプとして分類され、観測用ＦＦリスト２６にリストアップされる（ステップＳ１０７）。また、保持用ＦＦ候補としてリストアップされたフリップフロップが、観測用タイプとして分類されたフリップフロップと重複していなくとも、制御用タイプとして分類されたフリップフロップと重複している場合、当該フリップフロップは、制御用タイプのフリップフロップとして分類される（ステップＳ１１７）。保持用ＦＦ候補としてリストアップされたフリップフロップが、観測用タイプとして分類されたフリップフロップ及び制御用タイプとして分類されたフリップフロップのいずれにも重複していない場合、当該フリップフロップは、保持用タイプとして分類され、保持用ＦＦリスト２７にリストアップされる（ステップＳ１１６）。
【００４２】
制御用ＦＦ候補、保持用ＦＦ候補としてリストアップされたフリップフロップの全ての最終的な帰属が決定されると、処理対象の端子についての処理が完了され、プロセスがステップＳ１０６に移る。
【００４３】
ステップＳ１０６では、上述の処理が全ての端子について行われたか判断される。上述の処理が行われていない端子がある場合には、当該端子について上述の処理が行われる。
上述の処理が全ての端子について行われた場合、フリップフロップの分類の処理は完了する。
【００４４】
フリップフロップの分類の後、制御用タイプ、観測用タイプ、及び保持用タイプと分類されたフリップフロップを図３、図４、図５にそれぞれ図示されている制御用ＦＦ、観測用ＦＦ、及び保持用ＦＦに置換する処理がネットリスト２２について行われる。この処理によってネットリスト２２からＦＦ置換後ネットリスト２８が生成される（ステップＳ０４）。ＦＦ置換後ネットリスト２８では、制御用タイプ、観測用タイプ、及び保持用タイプと分類されたフリップフロップを図３、図４、図５にそれぞれ図示されている制御用ＦＦ、観測用ＦＦ、及び保持用ＦＦに置換されている。
【００４５】
その後、ＦＦ置換後ネットリスト２８に対してスキャンチェーンを構築するスキャンチェーン合成（ステップＳ０５）が行われる。スキャンチェーン合成では、スキャンＦＦの挿入や、挿入されたスキャンＦＦ及び上述の制御用ＦＦ、観測用ＦＦ、及び保持用ＦＦを接続する処理が行われる。
【００４６】
更に、スキャンテストパタン２９の作成（ステップＳ０６）が行われ、以上で、本実施形態の半導体集積回路１０の設計が完了する。
【００４７】
図９は、上述の半導体集積回路の設計手法を実行するための半導体集積回路設計装置３１の構成の一例を示す概念図である。半導体集積回路設計装置３１は、演算装置として機能するＣＰＵ３２と、ＲＡＭ３３と、入力装置３４と、出力装置３５と、外部記憶装置３６とを備えている。外部記憶装置３６には、半導体集積回路の設計手法を実行するために使用される各種ソフトウェア：ＲＴＬエディタ３７、ＲＴＬ検証ツール３８、論理合成ツール３９、スキャン合成ツール４０、及びＡＴＰＧ（automatic test pattern generation）ツール４１がインストールされている。
【００４８】
詳細には、図７のＲＴＬ設計（ステップＳ０１）には、ＲＴＬエディタ３７及びＲＴＬ検証ツール３８が使用される。論理合成（ステップＳ０２）は、論理合成ツール３９によって行われ、フリップフロップの分類、置換、及びスキャンチェーンの構築（ステップＳ０３〜Ｓ０５）は、スキャン合成ツール４０によって行われる。更に、スキャンテストパタンの作成は、スキャン合成ツール４０によって行われる。図７の半導体集積回路の設計手法の各ステップにおいて作成された様々なデータ（例えば、ＲＴＬ記述２１、ネットリスト２２、制御用ＦＦリスト２５、観測用ＦＦリスト２６、保持用ＦＦリスト２７、ＦＦ置換後ネットリスト２８）は、適宜に外部記憶装置３６に保存され、保存されたデータが引き続くステップで使用される。
【００４９】
以上に説明された半導体集積回路の設計手法及び半導体集積回路設計装置３１によれば、制御用ＦＦ３、保持用ＦＦ４、観測用ＦＦ７、及び保持用ＦＦ８が適切な位置に設けられた半導体集積回路を設計することができ、マクロ境界テストに必要なテストパタンの数を減少させることができる。
【図面の簡単な説明】
【００５０】
【図１】図１は、従来の半導体集積回路の構成を示す回路図である。
【図２】図２は、本発明の一実施形態の半導体集積回路の構成を示す概念図である。
【図３】図３は、図２の半導体集積回路に集積化された制御用ＦＦの構成を示す回路図である。
【図４】図４は、図２の半導体集積回路に集積化された観測用ＦＦの構成を示す回路図である。
【図５】図５は、図２の半導体集積回路に集積化された保持用ＦＦの構成を示す回路図である。
【図６】図６は、本発明の他の実施形態の半導体集積回路の構成を示す概念図である。
【図７】図７は、一実施形態の半導体集積回路の設計手法を示すフローチャートである。
【図８Ａ】図８Ａは、フリップフロップの分類の手順の一例を示すフローチャートである。
【図８Ｂ】図８Ｂは、フリップフロップの分類の手順の一例を示すフローチャートである。
【図９】図９は、図７の半導体集積回路の設計手法を実行するための半導体集積回路設計装置の構成を示す概念図である。
【符号の説明】
【００５１】
１０：半導体集積回路
１：マクロ
２：ロジックコーン
２ａ：ＡＮＤゲート
２ｂ：ＯＲゲート
３、３Ａ、３Ｂ、３Ｃ、３Ｄ：制御用ＦＦ
４：保持用ＦＦ
５：マクロテスト用スキャンパス
６：ロジックコーン
６ａ：ＯＲゲート
６ｂ：ＡＮＤゲート
７：観測用ＦＦ
８：保持用ＦＦ
９：マクロテスト用スキャンパス
１１：スキャンＦＦ
１２：ＸＯＲゲート
１３、１４：セレクタ
Ｄ：データ入力
Ｑ：データ出力
Ｃ：クロック入力
ＳＩＮ：スキャン入力
５１：外部制御入力
５２：データ入力
５３：マクロテストモード切換入力
５４：マクロテスト用スキャン入力
５５：１チップテスト用スキャン入力
５６：ＳＭＣ入力
５７：クロック入力
５８：データ出力
６１、６２、６３：外部制御端子
２１：ＲＴＬ記述
２２：ネットリスト
２３：クロック情報
２４：テスト対象マクロ指定情報
２５：制御用ＦＦリスト
２６：観測用ＦＦリスト
２７：保持用ＦＦリスト
２８：ＦＦ置換後ネットリスト
２９：スキャンテストパタン
３１：半導体集積回路設計装置
３２：ＣＰＵ
３３：ＲＡＭ
３４：入力装置
３５：出力装置
３６：外部記憶装置
３７：ＲＴＬエディタ
３８：ＲＴＬ検証ツール
３９：論理合成ツール
４０：スキャン合成ツール
４１：ＡＴＰＧツール
１０１、１０４、１１３、１１４、１２２：ＦＦ
１０２：メモリ入力
１０３：メモリ出力
１０５：セレクタ
１０８、１１５：スキャン入力
１０９、１１６：スキャン出力
１１０：メモリＢＩＳＴ回路
１１７：メモリ
１１８：ロジック回路
１１９：メモリセルアレイ
１２０：ライトスルーモード信号
【図１】
2009205414.tif 000003
【図２】
2009205414.tif 000004
【図３】
2009205414.tif 000005
【図４】
2009205414.tif 000006
【図５】
2009205414.tif 000007
【図６】
2009205414.tif 000008
【図７】
2009205414.tif 000009
【図８Ａ】
2009205414.tif 000010
【図８Ｂ】
2009205414.tif 000011
【図９】
2009205414.tif 000012