(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-05-10
(45)【発行日】2022-05-18
(54)【発明の名称】半導体設計支援装置、半導体設計支援方法及びプログラム
(51)【国際特許分類】
G06F 30/333 20200101AFI20220511BHJP
G01R 31/28 20060101ALI20220511BHJP
G06F 30/3312 20200101ALI20220511BHJP
G06F 30/3315 20200101ALI20220511BHJP
G06F 30/396 20200101ALI20220511BHJP
H01L 21/82 20060101ALI20220511BHJP
H01L 21/822 20060101ALI20220511BHJP
H01L 27/04 20060101ALI20220511BHJP
【FI】
G06F30/333
G01R31/28 G
G01R31/28 V
G06F30/3312
G06F30/3315
G06F30/396
H01L21/82 C
H01L27/04 T
(21)【出願番号】P 2017167587
(22)【出願日】2017-08-31
【審査請求日】2020-06-04
(73)【特許権者】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】宇佐見 淳
【審査官】合田 幸裕
(56)【参考文献】
【文献】米国特許出願公開第2009/0125771(US,A1)
【文献】特開2000-266818(JP,A)
【文献】特開2013-019694(JP,A)
【文献】特開2008-51804(JP,A)
【文献】特開2011-102764(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/333
G01R 31/28
G06F 30/3312
G06F 30/3315
G06F 30/396
H01L 21/82
H01L 21/822
IEEE Xplore
JSTPlus(JDreamIII)
(57)【特許請求の範囲】
【請求項1】
複数のクロックドメインを含む半導体集積回路の設計を支援する半導体設計支援装置であって、
前記複数のクロックドメインに共通するスキャンクロックを使用するスキャンテストによって前記半導体集積回路にタイミング解析を行い、前記タイミング解析の結果に基づいて、スキャンテストのキャプチャサイクルにおいてホールドタイミングエラーが発生しないように前記スキャンクロックを前記クロックドメインに供給又は停止する制御を可能とする、
異なるレイテンシを有する前記クロックドメイン間の組み合わせを導出するテスト部と、
前記組み合わせに基づいて、スキャンテスト時のホールドタイミングエラーを回避するスキャンテストパターンを生成する生成部と
、
前記複数のクロックドメインのそれぞれに供給されるクロックの信号線には遅延バッファを挿入し、前記スキャンクロックの信号線には遅延バッファを挿入しないで前記半導体集積回路のレイアウトを出力する配置部とを有し、
前記生成部は、前記複数のクロックドメインすべてに対応する1つのテストパターン圧縮機を出力する半導体設計支援装置。
【請求項2】
前記配置部は、第1の半導体集積回路に、スキャンクロックの制御回路をさらに含ませた第2の半導体集積回路のレイアウトを出力し、
前記テスト部は、前記第1の半導体集積回路に対するスキャンテストのタイミング解析の結果に基づいて、前記第2の半導体集積回路に対するスキャンテストに適用する制約を決定する
請求項1記載の半導体設計支援装置。
【請求項3】
複数のクロックドメインを含む半導体集積回路の設計を支援する半導体設計支援装置が実行する半導体設計支援方法であって、
前記複数のクロックドメインに共通するスキャンクロックを使用するスキャンテストによって前記半導体集積回路にタイミング解析を行い、前記タイミング解析の結果に基づいて、スキャンテストのキャプチャサイクルにおいてホールドタイミングエラーが発生しないように前記スキャンクロックを前記クロックドメインに供給又は停止する制御を可能とする、
異なるレイテンシを有する前記クロックドメイン間の組み合わせを導出するテスト手順と、
前記組み合わせに基づいて、スキャンテスト時のホールドタイミングエラーを回避するスキャンテストパターンを生成する生成手順と
、
前記複数のクロックドメインのそれぞれに供給されるクロックの信号線には遅延バッファを挿入し、前記スキャンクロックの信号線には遅延バッファを挿入しないで前記半導体集積回路のレイアウトを出力する配置手順と、
前記複数のクロックドメインすべてに対応する1つのテストパターン圧縮機を出力する手順とを実行する半導体設計支援方法。
【請求項4】
前記配置手順は、第1の半導体集積回路に、スキャンクロックの制御回路をさらに含ませた第2の半導体集積回路のレイアウトを出力する手順を含み、
前記テスト手順は、前記第1の半導体集積回路に対するスキャンテストのタイミング解析の結果に基づいて、前記第2の半導体集積回路に対するスキャンテストに適用する制約を決定する手順を含む
請求項3記載の半導体設計支援方法。
【請求項5】
複数のクロックドメインを含む半導体集積回路の設計を支援する半導体設計支援装置が実行可能なプログラムであって、
前記複数のクロックドメインに共通するスキャンクロックを使用するスキャンテストによって前記半導体集積回路にタイミング解析を行い、前記タイミング解析の結果に基づいて、スキャンテストのキャプチャサイクルにおいてホールドタイミングエラーが発生しないように前記スキャンクロックを前記クロックドメインに供給又は停止する制御を可能とする、
異なるレイテンシを有する前記クロックドメイン間の組み合わせを導出するテスト手順と、
前記組み合わせに基づいて、スキャンテスト時のホールドタイミングエラーを回避するスキャンテストパターンを生成する生成手順と
、
前記複数のクロックドメインのそれぞれに供給されるクロックの信号線には遅延バッファを挿入し、前記スキャンクロックの信号線には遅延バッファを挿入しないで前記半導体集積回路のレイアウトを出力する配置手順と、
前記複数のクロックドメインすべてに対応する1つのテストパターン圧縮機を出力する手順とを前記半導体設計支援装置に実行させるプログラム。
【請求項6】
前記配置手順は、第1の半導体集積回路に、スキャンクロックの制御回路をさらに含ませた第2の半導体集積回路のレイアウトを出力する手順を含み、
前記テスト手順は、前記第1の半導体集積回路に対するスキャンテストのタイミング解析の結果に基づいて、前記第2の半導体集積回路に対するスキャンテストに適用する制約を決定する手順を含む
請求項5記載のプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体設計支援装置、半導体設計支援方法及びプログラムに関する。
【背景技術】
【0002】
半導体設計プロセスにおいて、非同期のクロックドメイン間を、スキャンモードでは共通のスキャンクロックでスキャンテストを実行できるように、スキャンクロックスキューを最少に抑えたクロックツリーを挿入し、故障検出率を下げないスキャンテストを行う手法が既に知られている。
【0003】
また、異クロック間の縮退および遷移故障テストを容易に行う目的で、スキャンクロックに、キャプチャサイクル時に任意の遅延値を設定してスキャンテストを行う技術が開示されている(例えば特許文献1)。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来のスキャンクロックの共通化によるスキャンテストを行う方法では、スキャンクロックスキューを最少に抑えたクロックツリーの形成が可能であっても、半導体プロセスの微細化が進んだ場合、オンチップばらつきがますます増大する。そのため送信側と受信側とで悲観的に検証した場合、異クロック間のデータパスにおけるホールドタイミングエラーが増加してしまい、タイミングエラーをなくすためのレイアウト修正工数、バッファ追加の量、あるいはテストパターンが増大するという問題があった。
【0005】
本発明は、上記の点に鑑みてなされたものであって、スキャンテストモードにおいて、半導体プロセスの微細化が進んだ場合であっても、異クロック間のデータパスにおけるホールドタイミングエラー修正の作業及びバッファの追加を不要とし、テストパターンの追加を微量に留めて、故障検出率を下げないようなスキャンテストを実行することを目的とする。
【課題を解決するための手段】
【0006】
そこで上記課題を解決するため、半導体設計支援装置は、複数のクロックドメインを含む半導体集積回路の設計を支援し、前記複数のクロックドメインに共通するスキャンクロックを使用するスキャンテストによって前記半導体集積回路にタイミング解析を行い、前記タイミング解析の結果に基づいて、スキャンテストのキャプチャサイクルにおいてホールドタイミングエラーが発生しないように前記スキャンクロックを前記クロックドメインに供給又は停止する制御を可能とする、異なるレイテンシを有する前記クロックドメイン間の組み合わせを導出するテスト部と、前記組み合わせに基づいて、スキャンテスト時のホールドタイミングエラーを回避するスキャンテストパターンを生成する生成部と、前記複数のクロックドメインのそれぞれに供給されるクロックの信号線には遅延バッファを挿入し、前記スキャンクロックの信号線には遅延バッファを挿入しないで前記半導体集積回路のレイアウトを出力する配置部とを有し、前記生成部は、前記複数のクロックドメインすべてに対応する1つのテストパターン圧縮機を出力する。
【発明の効果】
【0007】
スキャンテストモードにおいて、半導体プロセスの微細化が進んだ場合であっても、異クロック間のデータパスにおけるホールドタイミングエラー修正の作業及びバッファの追加を不要とし、テストパターンの追加を微量に留めて、故障検出率を下げないようなスキャンテストを実行することができる。
【図面の簡単な説明】
【0008】
【
図1】複数のクロックドメインのスキャンクロック供給源を1本化した回路例を示す図である。
【
図2】複数のスキャンクロックを有する回路のスキャンテストのタイミングを説明するための図である。
【
図3】スキャンクロックを1本化した回路のスキャンテストのタイミングについて説明するための図である。
【
図4】オンチップばらつき(OCV)係数を考慮したホールドタイミング検証について説明するための図である。
【
図5】本発明の実施の形態における半導体集積回路の例を示す図である。
【
図6】本発明の実施の形態における半導体集積回路の設計フローについて説明するための図である。
【
図7】本発明の実施の形態におけるSCANクロックを1本化したSCANテスト回路挿入後の半導体集積回路例を示す図である。
【
図8】SCANクロックを1本化した半導体集積回路のCTS後の例を示す図である。
【
図9】本発明の実施の形態における1本化されたSCANクロックにCTSをしない半導体集積回路の例を示す図である。
【
図10】本発明の実施の形態におけるECOレイアウト後の半導体集積回路の例を示す図である。
【
図11】本発明の実施の形態におけるSCANクロック制御回路の例を示す図である。
【
図12】本発明の実施の形態におけるSCANクロックの制御組み合わせの例を示す図である。
【
図13】本発明の実施の形態におけるSCANクロックの制御組み合わせについて説明するための図である。
【
図14】本発明の実施の形態におけるSCANクロックの制御回路のタイミングを説明するための図である。
【
図15】本発明の実施の形態におけるSCANクロックの制御組み合わせ数について説明するための図である。
【
図16】本発明の実施の形態における複数のハードマクロを持つ半導体集積回路の例を示す図である。
【
図17】本発明の実施の形態におけるSCANテストパターン圧縮機を1つにまとめた半導体集積回路の例を示す図である。
【
図18】本発明の実施の形態における半導体設計支援装置の機能構成例を示す図である。
【発明を実施するための形態】
【0009】
以下、図面に基づいて本発明の実施の形態を説明する。
【0010】
図1は、複数のクロックドメインのスキャンクロック供給源を1本化した回路例を示す図である。本発明の実施の形態は、
図1に示されるようなスキャンテスト回路を有する半導体集積回路の設計方法に関する。半導体集積回路における一般的なテストとして、SCAN/ATPG(Automatic Test Pattern Generator)テストが挙げられる。SCAN/ATPGテストとは、テストパターンを自動的に生成して、半導体集積回路に配置されたフリップフロップにテストパターンを外部から書き込み、半導体集積回路動作後に、フリップフロップから値を読み出して検証することをいう。当該フリップフロップを、スキャンフリップフロップともいう。なお、クロックドメインとは、ある特定のクロック入力により駆動される回路領域(部分回路)を指す。例えば、半導体集積回路内に複数の異なるクロックに基づいて動作するとき、それぞれのクロックで動作する部分回路は、それぞれの入力クロックに対応するクロックドメインであるという。
【0011】
チップレベルで複数のクロックドメインを有する回路において、一般的なスキャンテストを実行する場合、クロックドメイン数と同数のスキャンクロックを外部から供給する専用端子又は兼用端子を設ける必要がある。
【0012】
しかしながら、端子数の制限により専用端子を設けることができない場合、あるいは、既存の端子をスキャンテスト端子と兼用すると外部ACタイミングが悪化するので兼用できない場合は、
図1に示されるように、複数のクロックドメインのスキャンクロック供給源を1本化、または共通化して数を少なくする方法がある。
【0013】
図1に示されるように、クロックドメインAに供給されるSCANクロックのレイテンシが8nsであり、クロックドメインBに供給されるSCANクロックのレイテンシが5nsである場合、SCANクロックに3nsのスキューが生じるため、スキュー調整を行う。詳細は後述する。
【0014】
図2は、複数のスキャンクロックを有する回路のスキャンテストのタイミングを説明するための図である。
図2は、スキャンテストの動作タイミングを「SCANイネーブル」、「SCANクロックA」、「クロックドメインAのSCANFlipFlop」、「SCANクロックB」及び「クロックドメインBのSCANFlipFlop」の信号で示している。「SCANイネーブル」は、スキャン時、すなわちスキャンフリップフロップをシフトさせるときイネーブルとなる。「SCANクロックA」及び「SCANクロックB」は、スキャンフリップフロップに供給される動作クロックを示す。当該クロックにより、スキャンフリップフロップは、シフト又はキャプチャをおこなう。「クロックドメインAのSCANFlipFlop」及び「クロックドメインBのSCANFlipFlop」は、各クロックドメインに配置されたスキャンフリップフロップの出力信号を示す。また、シフト時には、SCANテストパターン入力及びSCANテスト結果の出力が並行して行われる。また、キャプチャ時には、テスト対象である回路からの出力をスキャンフリップフロップは受信する。
【0015】
スキャンテストのキャプチャサイクルにおいて、クロックドメインごとにスキャンクロックを有する場合は、
図2に示される「クロック停止」のように、シフトサイクル後のキャプチャサイクルにおいて、送信(ローンチ)側のスキャンクロックを停止することができるため、クロックドメイン間のタイミングを気にすることなく安全にスキャンデータを送受信ができる。
図2に示されるように、クロックドメインAからBに送信する場合、「SCANクロックA」を停止し、クロックドメインBからAに送信する場合、「SCANクロックB」を停止する。
【0016】
図3は、スキャンクロックを1本化した回路のスキャンテストのタイミングについて説明するための図である。スキャンクロックを1本化、あるいは共通化して数を少なくする場合は、クロックドメイン間の送受信クロックを個々に入力できないので、
図1(B)の様なスキャンクロックのスキュー差をできるだけ小さくして、ホールドタイミングを満たすように遅延バッファ(ディレイセル)挿入等の回路修正を行う。
【0017】
図1(B)においては、クロックドメインAに供給されるSCANクロックのレイテンシが8nsであり、クロックドメインBに供給されるSCANクロックのレイテンシが5nsである場合、SCANクロックに3nsのスキューが生じる。そこで例えば、SCANクロックAに対して+1nsの遅延バッファを挿入し、SCANクロックBに対して+4nsの遅延バッファを挿入して、各クロックドメインのスキャンフリップフロップまでのレイテンシを9nsに合わせるようにしてスキュー調整がおこなわれる。
【0018】
またスキュー調整しきれなかった場合でも
図3に示される「注2」のように、キャプチャ時に、送信側からのデータ送信をマルチサイクルにして安全に受信する等、故障検出率を下げないようにすることが重要である。
【0019】
図1(B)のように遅延バッファを挿入する方法は、スキャンクロックのスキュー差を最適にして、スキャンテストのためだけのバッファ(ディレイセル)追加を最小限に抑える対策が必要である。
図3に示される「注2」のようにマルチサイクルとする方法は、スキャンテストのテストパターン数を最小限に抑える対策が必要である。
【0020】
また、
図3に示される「注2」の手法においては、公知のブロードサイド方式やスキュードロード方式と呼ばれる技術が既に知られて広く普及しているが、ブロードサイド方式はクロック制御が比較的容易であるが、2個目のパターンとして所望のベクトルを設定することが困難であることが多く、スキュードロード方式は、2個目のパターンとして所望のベクトルを設定することが容易であることが多いが完全ではなく、SCANイネーブル信号は多数のスキャンフリップフロップを駆動しなければならないため、実時間で1から0へ遷移させることは容易ではなく、サイクル時間の長い縮退故障検出においても注意が必要であり、双方ともテストパターンの増加が問題となる。
【0021】
これらの対策は現在、高機能・高速処理化が進んだ半導体集積回路の設計ツール(EDA(Electronic Design Automation)ツール)によって、許容範囲内の品質、すなわち回路規模と検出率を実現するように、設計工期・工数に抑えられてきた。
【0022】
例えば、CTS(Clock Tree Synthesis:クロックツリーを形成し挿入する)ツールを用いて、タイミング違反箇所が最も少なる様にスキュー調整したスキャンクロックを形成し挿入する。
【0023】
また例えば、ホールドタイミングFixツールを用いて、スキャンモード時のホールド違反がなくなるように、かつ、スキャンテストモード以外のタイミングに留意して、バッファ追加を行う。
【0024】
また例えば、SCAN ATPG(自動テストパターン生成)ツールを用いて、スキャンテストモードでのタイミングSTA(Static Timing Analysis:静的タイミング解析)結果から、ホールド違反を起こしているパスのテストパターンを、
図3に示される「注2」のようにマルチサイクルとして生成する。
【0025】
図4は、オンチップばらつき(OCV)係数を考慮したホールドタイミング検証について説明するための図である。従来のスキャンクロックを1本化又は共通化して、スキャンテストを行う方法では、スキャンクロックスキューを最少に抑えたクロックツリーが形成できても、半導体プロセスの微細化が進んだ場合、オンチップばらつき(On Chip Variation : OCV)係数がますます増大していく。OCV係数とは、チップ内におけるパスの遅延のばらつきを示す。
図4における悲観性は、送信側スキャンフリップフロップへのクロックパスは、クロックパス遅延からOCV係数分を減じて検証し、受信側スキャンフリップフロップへのクロックパスは、クロックパス遅延にOCV係数分を増やして検証することに対応する。
【0026】
例えば、
図4に示されるように、送信側と受信側で悲観的に検証すると、たとえレイテンシを等しくして、スキューを0に抑えることが出来ても、送信側と受信側が入れ替わった場合にレイテンシの逆転現象が発生してホールドタイミングエラーを増加させてしまい、CTSのイタレーション、ホールド対策バッファ追加及びテストパターン追加の量が増大するという問題があった。
【0027】
図5は、本発明の実施の形態における半導体集積回路の例を示す図である。
図5に示した半導体集積回路は、4つのハードマクロを持つ。
図5から
図15までの半導体集積回路に係る設計を、実施例1とする。
【0028】
ハードマクロAのクロックAの出力を、ランダムロジックエリア内の小規模なクロックドメインAに配置される複数のフリップフロップのクロック端子と接続する。
【0029】
ハードマクロBのクロックBの出力を、ランダムロジックエリア内の小規模なクロックドメインBに配置される複数のフリップフロップのクロック端子と接続する。なお、クロックドメインA及びクロックドメインB内の回路は、同じ論理回路で構成される。
【0030】
ハードマクロCのクロックCの出力を、ランダムロジックエリア内の2番目に大きなクロックドメインCに配置される複数のフリップフロップのクロック端子と接続する。
【0031】
ハードマクロDのクロックDの出力を、ランダムロジックエリア内の最も大きなクロックドメインDに配置される複数のフリップフロップのクロック端子と接続する。
【0032】
次に、
図5に示した半導体集積回路を設計フローに従ってLSI化する処理手順について、
図6に設計フローを示して説明する。
【0033】
図6は、本発明の実施の形態における半導体集積回路の設計フローについて説明するための図である。
図6に示される設計フロー(1)から(6)について、それぞれ説明する。
【0034】
(1)DFT回路挿入
「DFT回路挿入」は、通常の設計処理であるが、後述する「SCANクロック制御回路の挿入」の背景として述べる。DFT(Design For Testability)とは、テスト容易化設計である。「DFT回路挿入」(S100)とは、ユーザ設計回路に対して「JTAG(Joint Test Action Group)回路挿入」(S101)、「メモリBIST(Build In Self-Test:自己診断テスト)回路挿入」(S102)、「SCANテスト回路挿入」(S103)、「その他のテスト回路挿入(At Speed Test:実動作テストのための制御回路挿入又はテスト信号の接続修正等)」(S104)の処理等、各種LSIテストの回路をDFTツールによって挿入する半導体集積回路設計の処理手順である。
【0035】
ステップS103におけるSCAN回路挿入時には、非スキャンタイプのフリップフロップをスキャンタイプのフリップフロップに置き換えて、それらをチェーン状にシリアル接続する処理、スキャンテストを制御する回路の挿入及びスキャンテストパターン圧縮回路の挿入等の処理を行う。
【0036】
図7は、本発明の実施の形態におけるSCANクロックを1本化したSCANテスト回路挿入後の半導体集積回路例を示す図である。
図7に示されるように、非スキャンタイプのフリップフロップをスキャンタイプのフリップフロップに置き換えて、クロックドメインA、クロックドメインB、クロックドメインC及びクロックドメインDに配置される当該フリップフロップにそれぞれSCANイネーブル信号が接続される。また、各クロックドメインへのクロック信号は、クロック、SCANクロックが入力されるマルチプレクサの出力であり、SCANテストモード信号によって切り替えが可能である。
【0037】
図6に戻る。(2)レイアウト
「レイアウト」とは、半導体集積回路を構成するマクロセルを、プロセス(テクノロジ)制約、設計制約、タイミング制約、ユーザ指示の各ルールに従って、チップレイアウト上に配置し、それらを配線する処理である。本発明における「レイアウト」フローは、通常の設計処理であるが、後述する「SCANクロック制御回路の挿入」の背景として述べる。
【0038】
ステップS201の「フロアプラン:Floor Plan」において、チップレイアウト上で、主に電源形成(VDD、GND配線)又は
図5の左図に示したようなクリティカルなマクロセル(IOセル、メモリセル、ハードマクロ、その他事前に配置を固定したいセル)とランダムロジック領域との配置を指定する。
【0039】
ステップS202の「配置・最適化:Place & PreCTSOpt(Preliminary CTS Optimize)」において、ランダムロジック領域のマクロセルを自動で配置し、後述する「クロックツリー挿入」前の配置回路に対して、セットアップタイミング最適化、及びクロックパスを除く未配線信号のスルーエラー修正を行う。
【0040】
図8は、SCANクロックを1本化した半導体集積回路のCTS後の例を示す図である。
図8に示されるように、各クロックドメインにスキュー調整のためホールド対策バッファが配置されたクロックツリーが挿入され、SCANクロックについてもホールド対策バッファが配置されたSCANクロックツリーが挿入される。
【0041】
図6に戻る。ステップS203の「クロックツリー挿入:CTS(Clock Tree Synthesis)」において、従来は、
図8に示されるように各クロックドメインのクロックスキューを最小に抑え、かつ最適なレイテンシのクロックツリーを形成して挿入する。すなわち、各クロックドメインのCTSを行った後、1本化したSCANクロックのCTSも行っていたが、広範囲に渡るSCANクロックスキューのスキュー調整は
図4で説明したように悲観性が除去されるように共通パスを通りながら、遅延値(レイテンシ)が等しくなるようにバランスを取らなければならず、半導体プロセスの微細化に伴うOCVばらつき係数の増大、デザインの複雑化又は大規模化が増大すると、調整が困難になってきており、SCANテストモードでのホールドバッファ追加を余儀なくされてしまう問題があった。
【0042】
ステップS204の「CTS後最適化:PostCTSOpt(Post CTS Optimize)」において、「クロックツリー挿入」後の配置回路に対して、再度セットアップタイミング最適化及びクロックパスを除く未配線信号のスルーエラー修正を行う。
【0043】
ステップS205の「配線・最適化:Route & PostRouteOpt(Post Route Optimize)」において、未配線のすべての信号を実配線し、再度セットアップタイミング最適化クロックパスを除く実配線信号のスルーエラー修正を行う。
【0044】
ステップS206の「ホールドタイミングエラー修正:Fix Hold Timing」において、ホールドタイミングエラー箇所に対し、遅延バッファ(ディレイセル)を挿入する修正を行う。
【0045】
図9は、本発明の実施の形態における1本化されたSCANクロックにCTSをしない半導体集積回路の例を示す図である。
図9に示されるように、1本化されたSCANクロックに対して、CTSは行われず、遅延バッファは挿入されない。
【0046】
図6に戻る。従来は、例えばノーマルモードではクロックドメイン毎にホールドタイミングエラー修正を行った後に、スキューを合わせたSCANクロックでもホールドタイミング調整を行っていたが、本発明の実施の形態においては、
図9に示されるように、SCANクロックでのホールドタイミング調整は不要であるので、CTSに係る(イタレーション回数等の)工数削減と実行時間の短縮に効果があり、ホールドタイミングエラー修正時のSCANテストモードでの遅延バッファ挿入を不要にすることができる。
【0047】
(3)SCAN ATPG(レイアウト終了後)
ここでのSCANテストとは、縮退故障検出テスト(DC SCAN)を指す。他にSCAN手法を用いたテストには、遅延故障検出テスト(AC SCAN又はAt Speed SCANテストと呼ぶ)等がある。SCANテスト用のテストパターン自動生成をATPGという。
【0048】
ステップS301において、ATPGは、回路情報のうち、マクロセル接続情報(ネットリスト)とテスト制約をロードして実行される。ステップS302において、通常のATPG実行か、SCANクロック遅延調整制御のATPGかで、処理を分岐する。通常のATPG実行の場合(S302のYes)、ステップS303に進む。SCANクロック遅延調整制御のATPGの場合(S302のNo)、ステップ」S603に進む。ステップS603以降については後述する。
【0049】
DFT回路挿入後又はレイアウト終了後の半導体集積回路のネットリストについては、通常のSCAN ATPGを実行して(S303)、故障検出率及び未検出故障個所等のレポート、シミュレ―ション用テストベンチとSCANテストパターンを生成する(S304)。
【0050】
実施例1では、さらに本発明の実施の形態における第1の特徴であるSCANクロックの制御ファイルを読み込んで、SCANモード時のホールドタイミングを回避する最適なテストパターンを生成する機能を備える。当該機能については、(6)SCAN ATPG(SCANテストモードSTA後、またはECOレイアウト終了後)で後述する。
【0051】
(4)SCANテストモードのSTA(Static Timing Analysis:静的タイミング解析)
以下、本発明の実施の形態における実施例1の第2の特徴である、SCANクロック制御回路挿入と、第3の特徴であるSCANクロックの制御ファイル出力について説明する。初めに、レイアウト後に行うSTAについて、説明する。
【0052】
ステップS401において、遅延調整回路が挿入前である場合(S401のYes)、ステップS402に進む。遅延調整回路挿入後である場合(S401のNo)、ステップS410に進む。
【0053】
ステップS402において、レイアウト後の半導体集積回路の回路情報(マクロセル接続情報であるネットリストと遅延情報であるSDF(Standard Delay Format)又はSPEF(Standard Parasitic Exchange Format)等)をロードする。続いて、SCANテストモードのタイミング制約を与えて、STAを実行する(S403)。
【0054】
STAの結果から、ホールドタイミングエラーとなったパスに対して、送信(ラウンチャ)側のフリップフロップのSCANクロックを停止させて受信(キャプチャ)側のフリップフロップがホールドタイミングエラーを回避するための、以下の2種類のファイルを生成する(S404、S405)。
【0055】
生成される第1のファイルは、ATPGツールへロードさせるためのファイルである(S405)。第1のファイルは、SCANクロックを1本化した場合のホールドタイミングを満足しないパスにおける、送受信側双方のクロックドメインの組み合わせが定義されているファイルである。
【0056】
生成される第2のファイルは、レイアウトツールへ読み込ませるためのECO(Engineering Change Order)ファイルを生成する(S404)。第2のファイルは、SCANテストモードでホールドタイミングエラーがレポートされたクロックドメインに対して、SCANクロック制御回路を挿入するためのファイルである。
【0057】
最後に、通常のタイミングレポートに加え、第1のファイル及び第2のファイルに係るレポートも合わせて出力する(S406)。
【0058】
一方、ECOレイアウト(SCANクロック制御回路挿入に必要な回路修正)を行った後のSTA、すなわちステップS410以降について、以下説明する。
【0059】
ステップS410において、ECOレイアウト後の回路情報をロードする。続いて、SCANテストモードのタイミング制約に加え、キャプチャサイクル時にホールドタイミングエラーが発生するクロックドメイン、すなわちSCANクロック制御が必要なクロックドメインに対してはマルチサイクルパスあるいはホールド側だけFalseパス指定の制約を与えてSTA解析を行う(S411)。SCANシフト時のクロックドメイン間の境界に発生するホールドエラーは、既知の対策である、クロックドメイン間のSCANシフト接続箇所へのラッチ挿入で対策するので、SCANクロック制御回路を制御しない状態で、ホールドエラーがないことを確認するためである。最後に、タイミングレポートを出力する(S412)。タイミングレポートには、後述するSCANクロック制御の有無、すなわちラウンチャ側クロックの制御スイッチの状態も付加される。
【0060】
(5)ECOレイアウト
レイアウト後に実行したSCANモードのSTA時のステップS404において出力されたECOのファイルを、レイアウトにロードして(S501)、通常のECOレイアウトを行う(S502、S503)。ECOレイアウト後の半導体集積回路構成例を、
図10に示す。
【0061】
図10は、本発明の実施の形態におけるECOレイアウト後の半導体集積回路の例を示す図である。
図10において、ECOレイアウト後の半導体集積回路は、
図9に示される半導体集積回路に対して、1本化されたSCANクロックと各クロックドメインとのMUX(マルチプレクサ)回路のSCANクロック入力側に、SCANクロックをON・OFFさせるゲート回路を挿入し、また当該ゲート回路を制御する
図11に示す「SCANクロック制御回路」を、SCANクロックをON・OFFさせるゲート回路の近傍等に挿入する。
【0062】
SCANクロックゲート回路及びSCANクロック制御回路挿入は、SCANテストモード時にキャプチャサイクルでのキャプチャ側フリップフロップでホールドタイミングを起こしたパスのラウンチャ側フリップフロップのSCANクロックに対して行われる。ここで、どのキャプチャ側フリップフロップに対しても、ホールドエラーを起こさないラウンチャ側SCANクロックには、SCANクロックゲート回路及びSCANクロック制御回路挿入を行わない。
図10中の入力信号「制御スイッチ(A)(B)(C)(D)」を生成するSCANクロック制御回路例を
図11に示す。
【0063】
図11は、本発明の実施の形態におけるSCANクロック制御回路の例を示す図である。
図11に示されるように、SCANクロック制御回路は、スキャンフリップフロップに、SCANイネーブル信号とSCANデータ出力信号のOR信号を制御スイッチに出力する回路を追加している。SCANクロック制御回路は、例えば、SCANシフトチェーンの最初に1つ挿入され、制御スイッチ信号をSCANクロックゲート回路に出力する。
【0064】
図6に戻る。(6)SCAN ATPG(SCANテストモードSTA後、またはECOレイアウト終了後)
SCANテストモードのSTA後、あるいはECOレイアウト後に、マクロセル接続情報(ネットリスト)とテスト制約に加え、ステップS405で生成されるSCANクロックの制御ファイルを読み込んで(S603)、SCANモード時のホールドタイミングを回避する最適なテストパターンを生成するATPGを実行し(S604)、実行結果をファイルに出力する(S605)機能を備える。
【0065】
図12は、本発明の実施の形態におけるSCANクロックの制御組み合わせの例を示す図である。
図12は、
図6に示されるステップS405で生成されるSCANクロックの制御ファイルについて説明するための図である。4つのクロックドメインのSCANクロックを1本化した場合の、制御スイッチ組み合わせとホールドエラーを回避できる送受信クロックの組み合わせ表を示す。組み合わせ表において、クロック「A」、「B」、「C」、「D」は、各クロックドメインに対応し、「受信側」はキャプチャ側フリップフロップを含み、「送信側」はラウンチャ側フリップフロップを含む。また、「スイッチ」は、
図10に示されるSCANクロックゲート回路に入力される制御スイッチのON・OFFに対応する。
【0066】
組み合わせ表において、黒い丸は、送受信クロックが同じクロックドメインで、送受信のフリップフロップが別々に制御できないが、SCANテストモード以外のノーマルモードでホールドタイミングを満たしている(満たさなければならない)組み合わせの場合である(例えば、AとA、BとB、CとC、DとD)ことを示す。
【0067】
組み合わせ表において、白い丸は、送信側のクロックが停止、受信側のクロックが動作した場合の組み合わせであり、ホールドタイミングエラーが起こらない(回避できる)場合を示す。
【0068】
組み合わせ表において、三角は、送信側のクロックと受信側のクロック両方が動作した場合の組み合わせであり、ホールドタイミングエラーとなる場合と、スキューが合っていなくてもホールドタイミングを満たす場合、例えば、受信側のクロックが送信側より早い場合又はデータ送信時間が遅い場合等がある。
【0069】
組み合わせ表において、バツ(X)は、受信側のクロックが停止しているので、データ受信できない場合の組み合わせである。
【0070】
STAツールで生成し、ATPGに入力するSCANクロック制御ファイルには、ホールドタイミングエラーが発生するクロックドメインの組み合わせ、各組み合わせでの、総エラー数、及び各組み合わせでの各エラーパスのStart Point(送信側インスタンスピン)及びEnd Point(受信側インスタンスピン)が記載されている。
【0071】
したがって、本発明の実施の形態におけるATPGは、クロックドメイン間の故障テストパターンを生成するとき、SCANクロック制御方法を、
図12に示される組み合わせから得ることができる。また、SCANクロック制御方法の効率向上を、各々の組み合わせが持つ総エラー数に基づいて判定することができる。また、SCANクロックを制御しない(制御スイッチが全ONの)場合の1サイクルキャプチャーテストで検出できないパスを、Start Point/End Pointのリストから判定できる。
【0072】
そのため、本発明の実施の形態におけるATPGは、上記情報及び判定に基づいて、テストパターン数の増加を抑制しつつ、最適なテストパターンを生成する。
【0073】
図13は、本発明の実施の形態におけるSCANクロックの制御組み合わせについて説明するための図である。
図13は、
図12のSCANクロックの制御組み合わせの動作概念図を示す。
【0074】
図13(A)において、SCANクロックAのみがONになっている。このとき、送信側受信側共にAの場合、ホールドタイミングを満足する。送信側がB、C、Dであり、受信側がAの場合、ホールドタイミングエラーが回避できる。B、C、Dは、SCANクロックが停止されているため、受信側となることはできない。
【0075】
図13(B)において、SCANクロックB、C、DがONになっている。このとき、送信側受信側共にB、C、Dの場合、ホールドタイミングを満足する。送信側がAであり、受信側がB、C、Dの場合、ホールドタイミングエラーが回避できる。Aは、SCANクロックが停止されているため、受信側となることはできない。
【0076】
図14は、本発明の実施の形態におけるSCANクロックの制御回路のタイミングを説明するための図である。
図14は、
図11に示されるSCANクロック制御回路によって制御スイッチがON・OFFされる場合のタイミングチャートを示す。
【0077】
図14に示される「シフト(最終)」のシフトサイクル時に、SCANクロック制御回路のフリップフロップにセットされた値と、SCANイネーブルとの組み合わせとにより、キャプチャサイクル時にのみ、制御スイッチのON/OFFを切り替えることができる。制御スイッチの切り替えにより、
図10に示されるSCANクロックゲート回路が動作し、SCANクロックをON/OFFすることができる。
【0078】
図14に示される「制御スイッチ(A)」は、1度目のキャプチャ時は、「シフトでONをセット」されているため、SCANクロックAは停止されない。2度目のキャプチャ時は、「シフトでOFFをセット」されているため、SCANクロックAは停止される。3度目のキャプチャ時は、「シフトでONをセット」されているため、SCANクロックAは停止されない。
【0079】
図14に示される「制御スイッチ(B)」は、1度目のキャプチャ時は、「シフトでONをセット」されているため、SCANクロックBは停止されない。2度目のキャプチャ時は、「シフトでONをセット」されているため、SCANクロックBは停止されない。3度目のキャプチャ時は、「シフトでOFFをセット」されているため、SCANクロックBは停止される。
【0080】
図15は、本発明の実施の形態におけるSCANクロックの制御組み合わせ数について説明するための図である。本発明の実施の形態におけるATPGが、考慮するSCANクロックの制御組み合わせ数について、以下説明する。
【0081】
クロックドメインが4つである場合、クロックドメインA、B、C、Dのフリップフロップが、すべてのクロックドメインのフリップフロップと送受信するとした場合、SCANクロックの制御方法は全部で、16通りある。このうち、制御スイッチを全OFFする場合を除外すると、15通りとなる。
【0082】
クロックドメインが5つである場合、クロックドメインA、B、C、D、Eのフリップフロップが、すべてのクロックドメインのフリップフロップと送受信するとした場合、SCANクロックの制御方法は全部で、32通りある。このうち、制御スイッチを全部Fする場合を除外すると、31通りとなる。
【0083】
上記のように、SCANクロック制御の最大の組み合わせ数は、2のべき乗-1で求められる。すなわち、
有効な組み合わせ総数=2n-1
n:SCANクロックを1本化したクロックドメインの数
全くテストできないクロック全OFFの組み合わせのひとつを引いている。
【0084】
また、
図15に示されるクロックドメインの数がnのとき、SCANクロックをONにする数をkとした場合の、SCANクロックの制御方法の組み合わせ数について、以下の式で求められる。
組み合わせ数=
nC
k
n:SCANクロックを1本化したクロックドメインの数
k:n個の制御スイッチをONする数
上述のように、通常のスキャンテストにおいては、全てのSCANクロックのスキューをできるだけ合わせ、さらにクロックドメイン同士のキャプチャサイクルでの送受信の際にはホールドタイミングを満足するように、遅延バッファ挿入を行うと、全てのクロックドメイン間のテストをキャプチャ1サイクルでテストできる1パターンが生成可能であるが、現実的には先述のように問題がある。
【0085】
一方、本発明の実施の形態における実施例1では、ATPGによってテストパターン増加を抑制して最適化されたテストパターンを生成し、さらに異なるクロックドメイン間でのキャプチャサイクルの送受信の際にはホールドタイミングエラーを回避するようにSCANクロック制御を行うため、SCANクロックに対するスキュー調整と遅延バッファ挿入が不要になる。
【0086】
また、ブロードサイド方式又はスキュードロード方式等のマルチキャプチャーサイクルを用いずに、複数のSCANクロックを用いた場合のケースと同様の高い検出率のテストパターンを最適なサイクル数で短時間に導き出すことができる。
【0087】
上述のようなSCANクロックON/OFFと当該SCANクロックの制御において、ホールドタイミングエラーを回避するように、段階的に制御スイッチ切り替え形態を変更すれば、複数のクロックドメインのSCANクロックを1本化した場合のスキュー差やOCV係数増大による悲観性マージン不足を来すことがなく、SCANテストモードにおけるホールドタイミングを満足させるための遅延バッファ追加の作業が不要になる等、効率的な開発工数を実現することができる。また、このような追加の遅延バッファが不要なホールドタイミングエラーの回避方法によれば、開発コスト(期間短縮)とデバイスコスト(チップサイズ縮小)を抑制でき、回路規模の低減による半導体集積回路の品質向上(歩留り、消費電力又はテストコスト)に寄与することができる。
【0088】
すなわち、スキャンテストモードにおいて、半導体プロセスの微細化が進んだ場合であっても、異クロック間のデータホールドタイミングエラー修正の作業及びバッファの追加とを不要とし、テストパターンの追加を微量に留めて、故障検出率を下げないようなスキャンテストを実行することができる。
【0089】
図16は、本発明の実施の形態における複数のハードマクロを持つ半導体集積回路の例を示す図である。
図16又は
図17に示される半導体集積回路に係る設計を、実施例2とする。
図16中の太枠で示される「Top」、「A」、「B」、「D」等は、DFT回路挿入時に挿入されたSCANテストパターン圧縮器である。
【0090】
半導体プロセスの微細化が進むと、アナログ回路(PLL(phase locked loop)、AD/DAコンバータ(Analog Digital/Digital Analog Converter)、DDRSDRAM(Double-Data-Rate Synchronous Dynamic Random Access Memory)、PCIExpress(登録商標)等)を持つハードマクロ、又は、ハードマクロ化されたIP(intellectual property、設計資産)を半導体集積回路に搭載するケースが増えてきた。
【0091】
これは工期短縮又は開発費用を抑える(過去の設計資産を流用したり、他社からIPを購入したりする)理由の他に、半導体プロセスの微細化が進んで大規模な半導体集積回路の開発が可能になるにつれて、EDAツールを実行させた時に使用するCPUの数や占有率、メモリの消費量、ツールの実行時間が増大し、設計環境を圧迫しつつあるという問題が背景にある。
【0092】
よって、最近の大規模な半導体集積回路では、機能別に半導体集積回路を分割し、ハードマクロ化して、各々のハードマクロでDFT回路挿入、レイアウト、STA、ATPGを行う場合がある。
【0093】
しかしながら、デジタル回路を持ち、ATPGを個別に実施した殆どのハードマクロは、DFT回路挿入時にテストパターン圧縮器を設けている場合がある。
【0094】
これは、ハードマクロ内で、SCANクロックを1本化し、さらにチップトップのランダムロジックで1本化したSCANクロックと更に1本化した場合に、実施例1のような問題が生じるためで、しかもハードマクロは一旦レイアウトまで完了しているので、バッファ追加が出来ず、パターンを大量に追加しても検出率が中々上がらないという問題が背景にある。
【0095】
図17は、本発明の実施の形態におけるSCANテストパターン圧縮機を1つにまとめた半導体集積回路の例を示す図である。
【0096】
図17で示されるように、本発明の実施の形態における実施例2を用いると、内部のSCANクロックを個別に動作・停止させることができるため、チップ全体で1つのテストパターン圧縮器に集約することができる。したがって、各ハードマクロにおいてホールドバッファ追加とテストパターン圧縮器が不要になり、チップ全体で1つのテストパターン圧縮器によるテストが可能になるため、従来ハードマクロごとにパターン圧縮器を配置して、個別にATPGを実施していた不便さを解消し、更なる回路規模の削減とテストパターン又はテスト時間の削減が可能である。
【0097】
図18は、本発明の実施の形態における半導体設計支援装置の機能構成例を示す図である。
図18に示されるように、半導体設計支援装置10は、表示部11、操作部12、DFT回路挿入部13、レイアウト部14、スキャンテスト部15及びテストパターン生成部16を有する。表示部11は、半導体設計支援装置10を使用するユーザに、設計情報を表示する。操作部12は、当該ユーザからの入出力を受け付ける。DFT回路挿入部13は、
図6に示されるDFT回路挿入に係る設計フローを実行する機能部である。レイアウト部14は、
図6に示されるレイアウト及びECOレイアウトに係る設計フローを実行する機能部である。スキャンテスト部15は、
図6に示されるSCANテスト及びSTAに係る設計フローを実行する機能部である。テストパターン生成部16は、
図6に示されるSCAN ATPGに係る設計フローを実行する機能部である。
【0098】
半導体設計支援装置10のハードウェアは、汎用のコンピュータにより構成されてもよいし、半導体集積回路の設計専用端末により構成されてもよい。なお、本発明の実施の形態において、上述したような半導体集積回路の設計は、半導体設計支援装置10にインストールされたプログラムによって実行されてもよい。
【0099】
なお、本発明の実施の形態において、スキャンテスト部15は、テスト部の一例である。テストパターン生成部16は、生成部の一例である。レイアウト部14は、配置部の一例である。
【0100】
以上、本発明の実施形態又は実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0101】
10 半導体設計支援装置
11 表示部
12 操作部
13 DFT回路挿入部
14 レイアウト部
15 スキャンテスト部
16 テストパターン生成部
【先行技術文献】
【特許文献】
【0102】