(57)【要約】【課題】ランダム性が高いとともに、ユニーク性に優れ、かつ検証も容易な半導体装置のユニークＩＤを提供する。【解決手段】Ａ０〜Ａｎビットで構成され、そのうちのＡ０〜Ａｍビットにはチップ情報が割り付けられ、Ａｍ＋１〜Ａｎビットには巡回冗長検査（ＣＲＣ）演算の検査ビットが割り付けられる構成となっている。チップ情報は、半導体装置の製造工程で使用されるロット番号、半導体装置が形成されたウェハのウェハ番号、ウェハ上での半導体装置の位置を特定するチップ位置情報および製造年月日などであり、ＣＲＣ演算の検査ビットは、生成多項式を用いてチップ情報に対してＣＲＣ演算することで得た余りの値を指す。【選択図】図１
2008010549.tif 000002
【特許請求の範囲】
【請求項１】
半導体装置に固有に設定された半導体装置のユニークＩＤであって、
前記半導体装置のユニークＩＤは、
前記半導体装置の製造時の情報を含んだ固有のチップ情報と、
前記チップ情報に対して巡回冗長検査演算を施して得られた検査ビットとを含む、半導体装置のユニークＩＤ。
【請求項２】
前記半導体装置は複数のヒューズを備え、
前記半導体装置のユニークＩＤは、
前記複数のヒューズに対して、切断状態および非切断状態を作り込むことで前記半導体装置に実装される、請求項１記載の半導体装置のユニークＩＤ。
【請求項３】
前記チップ情報は、
前記半導体装置の製造時のロット番号、前記半導体装置が形成されたウェハのウェハ番号、前記ウェハ上での前記半導体装置の位置を特定するチップ位置および製造年月日の少なくとも１つを含む、請求項２記載の半導体装置のユニークＩＤ。
【請求項４】
前記チップ情報は、バイナリデータを規則的に繰り上げることで各情報を規定し、
前記繰り上げの単位は、１０進数表記で２n（ｎ＝０，１，２，・・）以外である、請求項３記載の半導体装置のユニークＩＤ。
【請求項５】
請求項１に記載された半導体装置のユニークＩＤを検証する方法であって、
(ａ)前記半導体装置に接続されたテスタに前記半導体装置のユニークＩＤを読み出すステップと、
(ｂ)前記テスタにおいて、前記半導体装置のユニークＩＤの前記チップ情報に対して前記巡回冗長検査演算を施すステップと、
(ｃ)前記巡回冗長検査演算で得られた余りの値と、前記半導体装置のユニークＩＤの検査ビットとを比較して、前記半導体装置のユニークＩＤの良否を判断するステップと、を備える半導体装置のユニークＩＤの検証方法。
【請求項６】
請求項１に記載された半導体装置のユニークＩＤを検証する方法であって、
前記半導体装置は内部に演算処理部を備え、
(ａ)前記半導体装置に接続されたテスタから前記演算処理部に指示を与えて、前記半導体装置のユニークＩＤの前記チップ情報に対して前記巡回冗長検査演算を施すステップと、
(ｂ)前記巡回冗長検査演算で得られた余りの値と、前記半導体装置のユニークＩＤの検査ビットとを比較するステップと、
(ｃ)前記比較結果の情報を前記テスタに読み出して、前記半導体装置のユニークＩＤの良否を判断するステップと、を備える半導体装置のユニークＩＤの検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置のユニークＩＤおよび該ユニークＩＤの検証方法に関し、特にＳｏＣ（System on Chip）にヒューズ実装されるユニークＩＤに関する。
【背景技術】
【０００２】
半導体装置に固有に割り付けられたユニークな識別番号、すなわちユニークＩＤは、当該半導体装置を使用するシステムのセキュア機能の実現のために使用される場合もある。この場合、ユニークＩＤは上記システムを構成するフラッシュＲＯＭ（Read Only Memory）やＨＤＤ（Hard Disk Drive）に記録しておくことが一般的であり、通常のＣＭＯＳ（Complementary Metal Oxide Semiconductor）プロセスで製造するＳｏＣが搭載するメモリでは記録することができない。従って、ＳｏＣではヒューズを実装し、製造過程においてユニークＩＤに合わせてレーザトリミングなどでヒューズを切断することでユニークＩＤを記録する方法が用いられる。
【０００３】
例えば、特許文献１にはレーザトリミング等によりヒューズ実装されたＩＤ情報を用いてデータの暗号化や復号化をする技術が開示されている。
【０００４】
【特許文献１】特開２００３−１０１５２７号公報（図１２）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ユニークＩＤは、セキュア機能実現のためにユニーク性が必要であることから、対象となるＳｏＣのチップ情報を使うことが一般的であり、対象となるＳｏＣが製造されたロットのロット番号、対象となるＳｏＣが切り出されたウェハのウェハ番号、対象となるＳｏＣのウェハ上での位置（チップ位置）および製造年月日などのチップ情報をユニークＩＤとして使用する。
【０００６】
しかし、これらのチップ情報は規則性を有しランダム性に欠けるため、ヒューズが偶発的に故障したり摩耗故障した場合には、偶然に同一のユニークＩＤが複数存在することとなる。
【０００７】
すなわち、ロット番号が同じ１つのウェハにおいては、チップ位置を示すチップ番号はシリアルに設定されているので、チップ番号に誤りが生じれば、同じユニークＩＤを持つチップが、最低でも２組発生することとなる。
【０００８】
また、ウェハ番号が異なるだけでロット番号は同じで、ウェハ上での位置も同じチップにおいては、ウェハ番号はシリアルに設定されているので、ウェハ番号に誤りが生じれば、同じユニークＩＤを持つチップが、最低でも２組発生することとなる。
【０００９】
また、ロット番号は異なるが同じウェハの同じ位置のチップにおいては、ロット番号はシリアルに設定されているので、ロット番号に誤りが生じれば、同じユニークＩＤを持つチップが、最低でも２組発生することになる。
【００１０】
また、チップ情報だけでユニークＩＤを構成すると、例えば１つのチップについてユニークＩＤが解読されると、その情報を基にその他のチップについてもユニークＩＤが容易に推測できてしまい、ユニークＩＤをセキュア機能実現のために使用しても、セキュア機能を果たせないことになる。
【００１１】
また、チップ情報から歩留まり情報なども推測することができるので、ＳｏＣ製造メーカーにとってエンドユーザーには知られたくない情報も知られてしまうという問題もある。
【００１２】
しかし、ユニークＩＤをチップ情報で構成する代わりに、ユニークＩＤをチップ情報以外のデータで構成する場合には以下の問題がある。
【００１３】
すなわち、例えば、ＳｏＣごとにユニークＩＤをランダムなデータで構成する場合、当該ユニークＩＤを検証するには、比較のための期待値データとして、ユニークＩＤと同じデータをテスタにおいて準備する必要があり、テスタには、期待値データをＳｏＣの個数分だけ準備する必要があり、その準備に手間がかかるという問題がある。
【００１４】
また、一般的にＬＳＩのテストでは期待値は同一のファンクションパターンでテストするので、期待値の種類が増えれば、その数だけのテストパターンを用意する必要が生じ、その準備にも手間がかかるという問題がある。
【００１５】
なお、１種類のテストパターンを基にして、ＬＳＩごとにインクリメントすることも可能ではあるが、初期値の設定が複雑になることや再テスト時に手間がかかるなど実用的ではない。
【００１６】
本発明は上記のような問題点を解消するためになされたもので、ランダム性が高いとともに、ユニーク性に優れ、かつ検証も容易な半導体装置のユニークＩＤを提供することを目的とする。
【課題を解決するための手段】
【００１７】
本発明に係る請求項１記載の半導体装置のユニークＩＤは、半導体装置に固有に設定された半導体装置のユニークＩＤであって、前記半導体装置のユニークＩＤは、前記半導体装置の製造時の情報を含んだ固有のチップ情報と、前記チップ情報に対して巡回冗長検査演算を施して得られた検査ビットとを含んでいる。
【００１８】
本発明に係る請求項５記載の半導体装置のユニークＩＤの検証方法は、前記半導体装置に接続されたテスタに前記半導体装置のユニークＩＤを読み出すステップ(ａ)と、前記テスタにおいて、前記半導体装置のユニークＩＤの前記チップ情報に対して前記巡回冗長検査演算を施すステップ(ｂ)と、前記巡回冗長検査演算で得られた余りの値と、前記半導体装置のユニークＩＤの検査ビットとを比較して、前記半導体装置のユニークＩＤの良否を判断するステップ(ｃ)とを備えている。
【００１９】
本発明に係る請求項６記載の半導体装置のユニークＩＤの検証方法は、前記半導体装置は内部に演算処理部を備え、前記半導体装置に接続されたテスタから前記演算処理部に指示を与えて、前記半導体装置のユニークＩＤの前記チップ情報に対して前記巡回冗長検査演算を施すステップ(ａ)と、前記巡回冗長検査演算で得られた余りの値と、前記半導体装置のユニークＩＤの検査ビットとを比較するステップ(ｂ)と、前記比較結果の情報を前記テスタに読み出して、前記半導体装置のユニークＩＤの良否を判断するステップ(ｃ)とを備えている。
【発明の効果】
【００２０】
本発明に係る請求項１記載の半導体装置のユニークＩＤによれば、半導体装置の製造時の情報を含んだ固有のチップ情報と、チップ情報に対して巡回冗長検査演算を施して得られた検査ビットとを含んで構成されるので、チップ情報だけでユニークＩＤを構成する場合に比べて、ユニーク性を高めることができるとともに、ランダム性を高めることができる。また、チップ情報だけでユニークＩＤを構成する場合に比べて情報を解読することが困難になり、半導体装置製造メーカーにとってエンドユーザーには知られたくない情報が知られてしまうことを防止できる。
【００２１】
本発明に係る請求項５記載の半導体装置のユニークＩＤの検証方法によれば、テスタにおいて巡回冗長検査演算の検査ビットを検証するだけで、ユニークＩＤ全体の検証を行うことができるので、各チップにおけるユニークＩＤの不具合発生の有無を容易に検証することができる。
【００２２】
本発明に係る請求項６記載の半導体装置のユニークＩＤの検証方法によれば、半導体装置内部の演算処理部において巡回冗長検査演算の検査ビットを検証するだけで、ユニークＩＤ全体の検証を行うことができるので、各チップにおけるユニークＩＤの不具合発生の有無を容易に検証することができる。また、テスタには比較結果の情報だけを与えるので、テスト用のピン数が少なくて済むという利点がある。
【発明を実施するための最良の形態】
【００２３】
＜実施の形態１＞
図１は、本発明に係る半導体装置のユニークＩＤの構成を説明する概念図である。図１に示すように、本発明に係る半導体装置のユニークＩＤはＡ０〜Ａｎビットで構成され、そのうちのＡ０〜Ａｍビットにはチップ情報が割り付けられ、Ａｍ＋１〜Ａｎビットには巡回冗長検査（ＣＲＣ：Cyclic Redundancy Checking）演算の検査ビットが割り付けられる構成となっている。
【００２４】
ここで、チップ情報とは、一般的に半導体装置の製造工程で使用されるロット番号、半導体装置が形成されたウェハのウェハ番号、ウェハ上での半導体装置の位置を特定するチップ位置情報および製造年月日などであり、バイナリデータとして個々のチップごとに設定されるものであり、個々のチップを特定するために有効な情報である。
【００２５】
また、ＣＲＣ演算の検査ビットとは、生成多項式を用いてチップ情報に対してＣＲＣ演算することで得た余りの値を指し、ＣＲＣ演算では情報ビットと検査ビットとで巡回符号が構成される。ＣＲＣ演算は、情報伝達に際して誤りが発生していないことを確認する演算であるが、本願では、ＣＲＣ演算によって得られる検査ビットとチップ情報とを組み合わせることでユニークＩＤのランダム性をより高めるものである。
【００２６】
セキュア機能の実現のために使用するユニークＩＤをＳｏＣ（System on Chip）ごとに割り付けるには、ＳｏＣにヒューズを実装し、製造過程においてユニークＩＤに合わせてレーザトリミングなどでヒューズを切断することでユニークＩＤを記録する。
【００２７】
このような構成を採ることで、通常のＣＭＯＳプロセスで製造するＳｏＣにおいても、ユニークＩＤを記録することができる。
【００２８】
しかし、例えば、チップＡのチップ情報が「１１１０１１」、チップＢのチップ情報が「１１１１１１」である場合、チップＡのチップ情報の０ビットがヒューズの故障等で１ビットに変わってしまった場合チップＡとチップＢのチップ情報が同一となってしまい、ユニークＩＤのセキュア機能が失われてしまう。
【００２９】
しかし、チップＡのチップ情報「１１１０１１」に対してＣＲＣ演算を施して得られた検査ビットが「１１００」であり、チップＢのチップ情報「１１１１１１」に対してＣＲＣ演算を施して得られた検査ビットが「１００１」であるならば、チップＡのユニークＩＤは「１１１０１１１１００」となり、チップＢのユニークＩＤは「１１１１１１１００１」となるので、両者のユニークＩＤは、３つのビットで相違することになる。
【００３０】
従って、ヒューズの故障等により、そのうちの１つのビットのデータが置き換わったとしても、チップＡおよびチップＢのユニークＩＤは同一とはならず、ユニークＩＤのセキュア機能を維持することができる。
【００３１】
なお、本発明においては、情報伝達に際しての誤りを検証するためにＣＲＣ演算を使用するものではないので、ＣＲＣ演算における生成多項式Ｇ（Ｘ）には一般に知られているものを使用すれば良く、チップ情報の情報量に合わせて、例えばＧ（Ｘ）＝Ｘ7＋Ｘ3＋１や、Ｇ（Ｘ）＝Ｘ16＋Ｘ12＋Ｘ5＋１を使用すれば良い。ここで、前者はＣＲＣ７と呼称される演算に使用される生成多項式であり、後者はＣＲＣ１６と呼称される演算に使用される生成多項式である。ＣＲＣ演算の一例としては、図１を用いて説明したように、ユニークＩＤがＡ０〜Ａｎ、チップ情報がＡ０〜Ａｍ、検査ビットがＡｍ＋１〜Ａｎである場合、チップ情報を表す多項式Ｍ（Ｘ）に対して、Ｍ（Ｘ）・Ｘn-mとした多項式をＧ（Ｘ）で割った余りを表す多項式Ｒ（Ｘ）によって検査ビットが得られる。
【００３２】
図２(ａ)はユニークＩＤをＳｏＣ上に実装するためのヒューズボックス１００を模式的に示す図であり、ヒューズボックス１００内には、図１を用いて説明したＡ０〜Ａｎビットにそれぞれ対応するようにｎ＋１個のヒューズ１０が配設されている。
【００３３】
設定したユニークＩＤに合わせてヒューズ１０をレーザトリミングなどで切断することで、ユニークＩＤが実装されることとなる。
【００３４】
図２(ｂ)はヒューズボックス１００におけるヒューズ１０の切断、非切断と実装されるデータとの関係を示す図である。
【００３５】
図２（ｂ）に示すように、ヒューズ１０を切断することでデータ「１」が実装され、ヒューズ１０を切断しない場合にはデータ「０」が実装されることになる。
【００３６】
また、図２(ａ)に示すように、ヒューズボックス１００はパワーオンリセット信号ＰＯＲによってＡ０〜Ａｎビットのデータを確定する構成となっており、パワーオンリセット信号ＰＯＲが「０」の状態でヒューズに電圧をかけてデータを確定し、電源投入時にパワーオンリセット信号ＰＯＲを「０」から「１」に変化させることでデータをラッチする構成となっている。
【００３７】
次に、図３を用いてヒューズボックス１００へのユニークＩＤの実装工程について説明する。
【００３８】
図３は半導体装置の製造工程を大まかに説明するフローチャートであり、ステップＳ１においてウェハ段階での各種製造工程（ウェハプロセス）を実施した後、ステップＳ２において、ウェハ段階での各種テスト（ウェハテスト１）を行う。
【００３９】
その後、ステップＳ３においてヒューズボックス１００にユニークＩＤを実装するためのトリミングデータの作成を行う。この工程では、先に説明したようにチップ情報に対してＣＲＣ演算を施して検査ビットを取得する工程を含んでおり、チップ情報と検査ビットとでトリミングデータが構成される。
【００４０】
そして、ステップＳ４では、ステップＳ３で得られたトリミングデータに基づいてレーザトリミングなどでヒューズボックス１００内のヒューズ１０を切断し、ユニークＩＤを実装する。
【００４１】
その後、さらにウェハ段階での各種テスト（ウェハテスト２）を実行し（ステップＳ５）、ウェハ上に作り込まれた半導体装置をダイシングしてチップに切り分け、各チップをリードフレーム上に搭載してボンディングを行い、その後モールディングにより封止するなどのアセンブリ工程（ステップＳ６）を経てパッケージングされた半導体装置が完成する。
【００４２】
次に、図４を用いて、本発明に係る半導体装置のユニークＩＤを実装したヒューズボックス１００を備えたＳｏＣ１０００の構成を説明する。
【００４３】
図４に示すようにＳｏＣ１０００においては、ヒューズボックス１００の他に、ＭＰＵ（Micro Processing Unit）２００（演算処理部）およびインターフェース部（Ｉ／Ｆ）３００を備え、ＭＰＵ２００においてはヒューズボックス１００からユニークＩＤの情報を受け、当該ユニークＩＤに基づいてセキュア機能の実現のための暗号化キーを生成する。そして、この暗号化キーを使用してデータの暗号化を行い、インターフェース部３００を通して、外部装置４００に転送する。
【００４４】
例えば、外部装置４００をＨＤＤ（Hard Disk Drive）のシステムとすれば、ハードディスクアセンブリにライトするデータの暗号化をユニークＩＤに基づいて実行することができる。
【００４５】
なお、暗号化キーの生成に際しては、ユニークＩＤをそのまま暗号化キーとして使用しても良く、また、他の情報と組み合わせて暗号化キーを生成しても良い。
【００４６】
また、図１を用いて説明したユニークＩＤは、Ａ０〜Ａｍビットにはチップ情報が割り付けられ、Ａｍ＋１〜ＡｎビットにはＣＲＣ演算の検査ビットが割り付けられるものとして説明したが、この順番に限定されるものではなく、例えば図５に示すように、Ａ０〜ＡｍビットにはＣＲＣ演算の検査ビットが割り付けられ、Ａｍ＋１〜Ａｎビットにはチップ情報が割り付けられる構成としても良い。また、図６に示すように、Ａ０〜Ａｆビットにはチップ情報１が割り付けられ、Ａｆ＋１〜ＡｋビットにはＣＲＣ演算の検査ビットが割り付けられ、Ａｋ＋１〜Ａｎビットにはチップ情報２が割り付けられる構成としても良い。ここで、チップ情報１および２は、全チップ情報を便宜的に２つに分けたもので、このような構成を採ることで、ユニークＩＤのランダム性がさらに高まり、セキュア機能をさらに高めることができる。
【００４７】
また、チップ情報およびＣＲＣ演算の検査ビットを並べてユニークＩＤを構成する代わりに、チップ情報およびＣＲＣ演算の検査ビットを加算して得られたチェックサムデータをユニークＩＤとして使用しても良い。
【００４８】
この場合、例えば８ビットのデータを１単位として、１６ビットや３２ビットの加算用領域(レジスタ等)において足し合わせを行い、加算用領域から溢れた上位桁は無視するなどの処理を行って、得られた１６ビットや３２ビットの数値をチェックサムデータとする方法が考えられる。
【００４９】
以上説明したように、本発明に係る実施の形態１のユニークＩＤにおいては、チップ情報およびＣＲＣ演算の検査ビットによりユニークＩＤを構成し、ヒューズに実装する構成を採用している。このため、チップ情報だけでユニークＩＤを構成する場合に比べて、ユニーク性を高めることができ、１つのビットに対応するヒューズに不具合が発生した場合に、同一のユニークＩＤが発生することを防止できる。
【００５０】
また、チップ情報だけでユニークＩＤを構成すると、例えば１つのチップについてユニークＩＤが解読されると、その情報を基にその他のチップについてもユニークＩＤが容易に推測できてしまい、ユニークＩＤをセキュア機能実現のために使用しても、セキュア機能を果たせない可能性もあるが、ＣＲＣ演算の検査ビットを合わせて使用することで、固定情報の割合が減り、ランダム性を高めることができる。
【００５１】
また、チップ情報だけでユニークＩＤを構成する場合に比べて情報を解読することが困難になり、ＳｏＣ製造メーカーにとってエンドユーザーには知られたくない情報が知られてしまうことを防止できる。
【００５２】
＜実施の形態２＞
以上説明した本発明に係る実施の形態１においては、ユニークＩＤを構成するチップ情報の設定方法については特に限定していなかったが、チップ情報の設定方法を工夫することでユニークＩＤのユニーク性をさらに高めることができる。
【００５３】
図７(ａ)、(ｂ)、(ｃ)は、チップ情報のうちウェハ上でのチップ位置の情報の設定例を表す図であり、チップ番号（Ｎｏ．）とチップ位置情報との関係を一覧表として示している。なお、図７(ａ)〜(ｃ)においては、チップ位置情報をビットＡｍ１〜Ａｍｎで与えるものとし、説明を簡潔にするためにビットＡｍ１〜Ａｍｎを１０ビットで構成するものとする。また、チップ番号は、ウェハ上でのチップ位置を特定するために、所定の規則に従って割り付けられた番号を指しており、チップ番号が判ればウェハ上のどの位置に作り込まれたチップであるかが判る。
【００５４】
図７（ａ）ではチップ番号１の場合を「０００００００００１」とし、チップ番号が１つ繰り上がるごとにビットＡｍ１〜Ａｍｎを１０進数表記で１つずつ、すなわち０１ｂずつ増加させるようにチップ位置情報を設定する例を示し、図７（ｂ）ではチップ番号１の場合を「０００００００００１」とし、チップ番号が１つ繰り上がるごとにビットＡｍ１〜Ａｍｎを１０進数表記で２つずつ、すなわち１０ｂずつ増加させるようにチップ位置情報を設定する例を示し、図７（ｃ）ではチップ番号１の場合を「０００００００００１」とし、チップ番号が１つ繰り上がるごとにビットＡｍ１〜Ａｍｎを１０進数表記で３つずつ、すなわち１１ｂずつ増加させるようにチップ位置情報を設定する例を示している。
【００５５】
図７（ａ）に示すように、１つずつの繰り上がりでは、チップ番号１のチップ位置情報は「０００００００００１」であり、チップ番号３のチップ位置情報は「００００００００１１」となるが、両者は下位２ビット目のみが異なるだけであり、その下位２ビット目に対応するヒューズに不具合が発生して異なる値を示した場合、両者は同一の値となってしまう。
【００５６】
同様に、図７（ｂ）に示すように、２つずつの繰り上がりでは、チップ番号１のチップ位置情報は「０００００００００１」であり、チップ番号２のチップ位置情報は「００００００００１１」となるが、両者は下位２ビット目のみが異なるだけであり、その下位２ビット目に対応するヒューズに不具合が発生して異なる値を示した場合、両者は同一の値となってしまう。
【００５７】
これは、１つずつあるいは、２つずつの繰り上げの場合に限定されるものではなく、４つずつ、８つずつのようにチップ位置情報の繰り上げ単位を２n（ｎ＝０，１，２，・・・：０以上の整数）とする場合には、何れか１つのビットに対応するヒューズに不具合が発生すると、同一のチップ位置情報が存在することになる。
【００５８】
一方、図７（ｃ）に示すように、１０進数表記で３つずつの繰り上がりでは、チップ番号１のチップ位置情報は「０００００００００１」であり、チップ番号２のチップ位置情報は「０００００００１００」となり、両者は最下位ビットおよび下位３ビット目が異なることとなり、１つのヒューズに不具合が発生するだけでは同一の値となる可能性が減少する。これは、他のチップ番号間においても同様である。
【００５９】
このように、チップ位置情報の繰り上げ単位を２n以外とすることで、ヒューズの１つに不具合が発生しただけでは同一のチップ位置情報が存在することになる可能性が低くなる。
【００６０】
なお、上記においては、チップ情報のうちウェハ上でのチップ位置情報を例に採って説明したが、ロット番号、ウェハ番号および製造年月日に対しても同様に適用することは可能であり、これらについても適用することで、ユニークＩＤのユニーク性をさらに高めることができる。
【００６１】
以上説明したように、本発明に係る実施の形態２のユニークＩＤにおいては、チップ情報の設定において、各情報の繰り上げ単位を１０進数表記で２n以外とすることで、１つのビットに対応するヒューズに不具合が発生した場合に、同一のチップ情報が存在することになる可能性を低くすることができ、ユニークＩＤのユニーク性をさらに高めることができる。
【００６２】
＜実施の形態３＞
以上説明した本発明に係る実施の形態１および２においては、ユニークＩＤの構成について説明したが、本発明に係る実施の形態３としては、実施の形態１および２において説明したユニークＩＤの検証方法について説明する。
【００６３】
図８は、図４を用いて説明したＳｏＣ１０００にテスタ４１０を接続した構成を示すブロック図である。
【００６４】
図８に示すように、ＳｏＣ１０００をインターフェース部３００介してテスタ４１０に接続し、ＭＰＵ２００を介してヒューズボックス１００からユニークＩＤを読み出して検証を行う。
【００６５】
このとき、本発明に係る半導体装置のユニークＩＤにおいては、チップ情報とともにＣＲＣ演算の検査ビットを有しているので、テスタ４１０においては、ＣＲＣ演算の検査ビットを検証することで、ユニークＩＤ全体の検証を行うことができる。
【００６６】
以下、本発明に係る半導体装置のユニークＩＤの検証方法について、図９に示すフローチャートを用いて説明する。
【００６７】
図９に示すように、まずステップＳ１１において、テスタ４１０からＳｏＣ１０００のインターフェース部３００を通してＭＰＵ２００に命令を与え、ヒューズボックス１００に実装されたユニークＩＤのデータを読み出してテスタ４１０に与える。
【００６８】
ここで、読み出されるユニークＩＤは、図１に示したようにＡ０〜Ａｎビットのデータで構成されている。
【００６９】
次に、テスタ４１０において、ユニークＩＤのうち、Ａ０〜Ａｍビットに割り付けられたチップ情報に対してＣＲＣ演算を実行する（ステップＳ１２）。
【００７０】
すなわち、テスタ４１０においては、ユニークＩＤを構成する検査ビットを算出するのに使用した生成多項式Ｇ（Ｘ）と同じものを有しており、Ａ０〜Ａｍビットのチップ情報に対してＣＲＣ演算を施す機能が備わっている。
【００７１】
そして、ステップＳ１３において、当該生成多項式Ｇ（Ｘ）を用いてチップ情報に対してＣＲＣ演算を施すことで得られた余りの値と、ユニークＩＤのうち、Ａｍ＋１〜Ａｎビットに割り付けられた検査ビットとを比較し、両者が一致していれば検証対象のＳｏＣ１０００は、ユニークＩＤに不具合が存在しない良品であると判断する。一方、両者が一致しない場合は、検証対象のＳｏＣ１０００のユニークＩＤには不具合が存在していると判断する。
【００７２】
なお、上記説明においては図１に示したユニークＩＤを例としたが、図５および図６に示したユニークＩＤに対しても同様に検証可能である。
【００７３】
また、当該生成多項式Ｇ（Ｘ）を用いてチップ情報に対してＣＲＣ演算することで得られた余りの値と、ユニークＩＤのうち、Ａｍ＋１〜Ａｎビットに割り付けられた検査ビットとを比較し、両者が一致していれば検証対象のＳｏＣ１０００は、ユニークＩＤに不具合が存在しない良品であると判断するとしたが、チップ情報およびＣＲＣ演算の検査ビットを含めた多項式を当該生成多項式Ｇ（Ｘ）で割り、その余りの値が０であれば良品であると判断することでもよい。
【００７４】
以上説明したように、本発明に係る実施の形態３のユニークＩＤの検証方法によれば、テスタ４１０においてＣＲＣ演算の検査ビットを検証するだけで、ユニークＩＤ全体の検証を行うことができるので、各チップにおけるユニークＩＤの不具合発生の有無を容易に検証することができる。
【００７５】
＜変形例＞
以上説明した本発明に係る実施の形態３において説明したユニークＩＤの検証方法では、ＳｏＣ１０００に接続した外部のテスタでユニークＩＤの検証を行う例を示したが、ユニークＩＤの検証をＳｏＣ１０００内のＭＰＵ２００で実行しても良い。
【００７６】
以下、本発明に係るユニークＩＤの検証方法の変形例について、図１０に示すフローチャートを用いて説明する。
【００７７】
図１０に示すように、まずステップＳ２１において、テスタ４１０からＳｏＣ１０００のインターフェース部３００を通してＭＰＵ２００に命令を与え、ヒューズボックス１００に実装されたユニークＩＤのデータを読み出す。そして、ＭＰＵ２００においてユニークＩＤのうち、Ａ０〜Ａｍビットに割り付けられたチップ情報に対してＣＲＣ演算を実行させる。
【００７８】
すなわち、ＭＰＵ２００においては、ユニークＩＤを構成する検査ビットを算出するのに使用した生成多項式Ｇ（Ｘ）と同じものを有しており、Ａ０〜Ａｍビットのチップ情報に対してＣＲＣ演算を施す機能が備わっている。
【００７９】
そして、ＭＰＵ２００において、当該生成多項式Ｇ（Ｘ）を用いてチップ情報に対してＣＲＣ演算することで得られた余りの値と、ユニークＩＤのうち、Ａｍ＋１〜Ａｎビットに割り付けられた検査ビットとを比較する（ステップＳ２２）。
【００８０】
その後、ステップＳ２３において、テスタ４１０からＳｏＣ１０００のインターフェース部３００を通してＭＰＵ２００に命令を与え、ステップＳ２２おいて得られた比較結果の情報を読み出してテスタ４１０に与える。
【００８１】
テスタ４１０においては、比較結果が一致した旨の情報を得た場合は、検証対象のＳｏＣ１０００は、ユニークＩＤに不具合が存在しない良品であると判断し、比較結果が一致しない旨の情報を得た場合は、検証対象のＳｏＣ１０００のユニークＩＤには不具合が存在していると判断する。
【００８２】
また、ＭＰＵ２００において当該生成多項式Ｇ（Ｘ）を用いてチップ情報に対してＣＲＣ演算することで得られた余りの値と、ユニークＩＤのうち、Ａｍ＋１〜Ａｎビットに割り付けられた検査ビットとの比較をし、テスタ４１０においてその比較結果が一致した旨の情報を得た場合、検証対象のＳｏＣ１０００は、ユニークＩＤに不具合が存在しない良品であると判断するとしたが、ＭＰＵ２００においてチップ情報およびＣＲＣ演算の検査ビットを含めた多項式を当該生成多項式Ｇ（Ｘ）で割り、その余りのちを０と比較し、テスタ４１０においてその比較結果が一致した旨の情報を得た場合、検証対象のＳｏＣ１０００は、ユニークＩＤに不具合が存在しない良品であると判断することでもよい。
【００８３】
以上説明したユニークＩＤの検証方法の変形例においては、ＭＰＵ２００においてＣＲＣ演算の検査ビットを検証するだけで、ユニークＩＤ全体の検証を行うことができるので、各チップにおけるユニークＩＤの不具合発生の有無を容易に検証することができる。また、ＭＰＵ２００においてＣＲＣ演算の検査ビットを検証し、比較結果の情報のみをテスタ４１０に与えるので、実施の形態３において説明したユニークＩＤの検証方法に比べて、インターフェース部３００におけるテスト用のピン数が少なくて済むという利点もある。
【図面の簡単な説明】
【００８４】
【図１】本発明に係る半導体装置のユニークＩＤの構成を説明する概念図である。
【図２】ユニークＩＤのＳｏＣ上への実装を説明する図である。
【図３】ヒューズボックスへのユニークＩＤの実装工程を説明する図である。
【図４】ユニークＩＤを実装したヒューズボックスを備えたＳｏＣの構成を説明するブロック図である。
【図５】本発明に係る半導体装置のユニークＩＤの変形例の構成を説明する概念図である。
【図６】本発明に係る半導体装置のユニークＩＤの変形例の構成を説明する概念図である。
【図７】ウェハ上でのチップ位置の情報の設定例を表す図である。
【図８】ユニークＩＤの検証を行うための構成を説明するブロック図である。
【図９】本発明に係るユニークＩＤの検証方法を説明するフローチャートである。
【図１０】本発明に係るユニークＩＤの検証方法の変形例を説明するフローチャートである。
【図１】
2008010549.tif 000003
【図２】
2008010549.tif 000004
【図３】
2008010549.tif 000005
【図４】
2008010549.tif 000006
【図５】
2008010549.tif 000007
【図６】
2008010549.tif 000008
【図７】
2008010549.tif 000009
【図８】
2008010549.tif 000010
【図９】
2008010549.tif 000011
【図１０】
2008010549.tif 000012