(57)【要約】【課題】チップ設計者によるデータ検証の結果と製造業者によるデータ検証の結果との間に相違が生じるのを防ぐことを目的とする。【解決手段】開示の装置によれば、チップ設計データに対してデータ検証を行う検証手段と、暗号化ＩＰを取得する取得手段と、データ検証の結果を出力する検証結果出力手段と、を備える。チップ設計データは、ハードウェアＩＰにおけるチップ設計者に開示可能なデータであるボックスＩＰを用いて設計される。暗号化ＩＰは、ハードウェアＩＰにおける一部又は全部の情報が暗号化されたＩＰである。検証手段は、記憶されたデータが外部に対して隠蔽される記憶領域内において、暗号化ＩＰをハードウェアＩＰに復号化し、チップ設計データにおけるボックスＩＰを、復号化されたハードウェアＩＰに置き換えてデータ検証を行う。【選択図】図８
2011107967.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェアＩＰにおけるチップ設計者に開示可能なデータであるボックスＩＰを用いて設計されたチップ設計データに対してデータ検証を行う検証手段と、
前記ハードウェアＩＰにおける一部又は全部のデータが暗号化された暗号化ＩＰを取得する取得手段と、
前記データ検証の結果を出力する検証結果出力手段と、を備え、
前記検証手段は、記憶されたデータが外部に対して隠蔽される記憶領域内において、前記暗号化ＩＰを前記ハードウェアＩＰに復号化するとともに、前記チップ設計データにおけるボックスＩＰを、復号化された前記ハードウェアＩＰで置き換えて前記データ検証を行うことを特徴とする設計検証装置。
【請求項２】
前記データ検証における処理が記述されたコントロールファイルを有し、
前記コントロールファイルは、前記暗号化ＩＰを復号化するための復号化鍵と、復号化された前記ハードウェアＩＰで置き換えられた前記チップ設計データに対して実施することができる実施可能処理と、が暗号化された暗号化情報を含み、
前記検証手段は、前記記憶領域内において、前記コントロールファイルにおける前記暗号化情報を復号化して、前記コントロールファイルに記述された処理に従って、前記データ検証を行うことを特徴とする請求項１に記載の設計検証装置。
【請求項３】
前記検証結果出力手段は、前記ハードウェアＩＰのデータを示す情報が前記データ検証の結果に含まれる場合には、当該情報を加工処理してから前記データ検証の検証結果を出力することを特徴とする請求項１又は２に記載の設計検証装置。
【請求項４】
前記検証手段は、前記ボックスＩＰが用いられたままの前記チップ設計データに対する前記データ検証の第１の検証結果と、復号化された前記ハードウェアＩＰで置き換えられた前記チップ設計データに対する前記データ検証の第２の検証結果と、を比較し、
前記検証結果出力手段は、前記ハードウェアＩＰのデータを示す情報が、前記第１の検証結果には含まれておらず、かつ、前記第２の検証結果に含まれる場合には、当該情報を加工処理してから前記第２の検証結果を出力することを特徴とする請求項１又は２に記載の設計検証装置。
【請求項５】
前記検証手段は、前記データ検証として、チップのレイアウトデータがデザインルールを満足しているか否かの検証を行い、
前記検証結果出力手段は、前記データ検証の結果として、前記チップのレイアウトデータにおけるデザインルールを満足していない部分をエラーフラグで示して表示し、前記加工処理として、前記ハードウェアＩＰのレイアウトデータを示す前記エラーフラグを加工することを特徴とする請求項３又は４に記載の設計検証装置。
【請求項６】
前記検証手段は、前記データ検証として、チップのレイアウトデータより抽出された回路データが論理回路設計段階で作成された回路データと一致するか否かの検証を行い、
前記検証結果出力手段は、前記データ検証の結果として、前記チップのレイアウトデータより抽出された回路データを出力し、前記加工処理として、前記チップのレイアウトデータより抽出された回路データ中における前記ハードウェアＩＰの回路データ部分を加工処理することを特徴とする請求項３又は４に記載の設計検証装置。
【請求項７】
ハードウェアＩＰにおけるチップ設計者に開示可能なデータであるボックスＩＰを用いて設計されたチップ設計データに対してデータ検証を行う検証工程と、
前記ハードウェアＩＰにおける一部又は全部のデータが暗号化された暗号化ＩＰを取得する取得工程と、
前記データ検証の結果を出力する検証結果出力工程と、を備え、
前記検証工程は、記憶されたデータが外部に対して隠蔽される記憶領域内において、前記暗号化ＩＰを前記ハードウェアＩＰに復号化するとともに、前記チップ設計データのボックスＩＰを、復号化された前記ハードウェアＩＰで置き換えて前記データ検証を行うことを特徴とする設計検証方法。
【請求項８】
コンピュータにより実行されるプログラムであって
ハードウェアＩＰにおけるチップ設計者に開示可能なデータであるボックスＩＰを用いて設計されたチップ設計データに対してデータ検証を行う検証手段、前記ハードウェアＩＰにおける一部又は全部のデータが暗号化された暗号化ＩＰを取得する取得手段、前記データ検証の結果を出力する検証結果出力手段、として前記コンピュータを機能させ、
前記検証手段は、記憶されたデータが外部に対して隠蔽される記憶領域内において、前記暗号化ＩＰを前記ハードウェアＩＰに復号化するとともに、前記チップ設計データのボックスＩＰを、復号化された前記ハードウェアＩＰで置き換えて前記データ検証を行うことを特徴とする設計検証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路（ＬＳＩ）のチップ設計を検証する設計検証装置、設計検証方法及び設計検証プログラムに関する。
【背景技術】
【０００２】
ＬＳＩのチップ設計では、その上流の工程で論理回路設計が行われた後、この論理回路設計で得られたデータをもとにレイアウト設計が行われる。ＬＳＩの高集積化が進むと、人手による設計では限界があり、人手に代わってコンピュータを用いた自動設計が利用されるようになった。近年では、コンピュータによるチップ設計に、ＥＤＡ（Electronic Design Automatic）と呼ばれる自動設計支援開発ツールが用いられている。
【０００３】
また、ＬＳＩの設計開発期間を短縮することを目的として、ＩＰ（Intellectual Properties）が流通している。ＩＰは、ＬＳＩにおける回路ブロックの機能単位でまとめられた再利用可能なデータであり、ＩＰプロバイダよりチップ設計者に提供されている。ＩＰは大きく分けて、ソフトウェアＩＰとハードウェアＩＰとに分けられる。ソフトウェアＩＰは機能記述データとして提供されるため、チップ設計者はソフトウェアＩＰのレイアウトを決定し、それに対する製造妥当性を確認する必要がある。これに対し、ハードウェアＩＰは、特定の製造業者しか、これを用いたチップを製造できないものの、レイアウトデータを含む形で提供され、製造可能かつ動作保障がされているため、ソフウェアＩＰと比較して、設計が容易になるといったメリットがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００７−５０７０４１号公報
【特許文献２】特開２００１−２２２５７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、ハードウェアＩＰはレイアウトデータやネットリストなどを含む形で提供されることから、ハードウェアＩＰに関するデザインノウハウや回路情報といった秘密情報がチップ設計者に漏洩する可能性がある。そのため、ハードウェアＩＰのうち、チップ設計者に開示可能なデータをボックスＩＰとしてチップ設計者に提供することが考えられている。しかしながら、チップ設計者は、ボックスＩＰを用いた場合、チップ設計を行うこと自体は可能であるものの、デザインパターンチェックなどのデータ検証を充分に行うことができなくなる可能性がある。そのため、チップ設計者によるデータ検証の結果と、チップの製造業者により後に行われるハードウェアＩＰを用いた場合のデータ検証の結果とで差異が生じる可能性がある。この場合には、チップ設計段階まで作業が戻ることとなり、チップ設計開発に遅れが生じる。また、これを防ぐため、チップ設計者が過剰なマージンを持たせてレイアウト設計を行った場合には、チップサイズの大型化を招く可能性がある。
【課題を解決するための手段】
【０００６】
開示の装置は、チップ設計データに対してデータ検証を行う検証手段と、暗号化ＩＰを取得する取得手段と、データ検証の結果を出力する検証結果出力手段と、を備える。
検証手段、取得手段、検証結果出力手段は、例えば、ＰＣ（Personal Computer）などのＣＰＵ（Central Processing Unit）がプログラムを実行することにより実現される。チップ設計データは、ハードウェアＩＰにおけるチップ設計者に開示可能なデータであるボックスＩＰを用いて設計される。暗号化ＩＰは、ハードウェアＩＰにおける一部又は全部のデータが暗号化されたＩＰである。検証手段は、記憶されたデータが外部に対して隠蔽される例えばＲＡＭなどの記憶領域内において、暗号化ＩＰをハードウェアＩＰに復号化するとともに、チップ設計データにおけるボックスＩＰを、復号化されたハードウェアＩＰで置き換えてデータ検証を行う。
【発明の効果】
【０００７】
開示の装置によれば、チップ設計者によるデータ検証の結果と製造業者によるデータ検証の結果との間に相違が生じるのを防ぐことができ、チップ設計段階へ作業が戻るのを防ぐことができる。
【図面の簡単な説明】
【０００８】
【図１】開示可能なハードウェアＩＰの流通システムの一例を示す図である。
【図２】開示不可能なハードウェアＩＰの流通システムの一例を示す図である。
【図３】ボックスＩＰの作成方法の一例を示す図である。
【図４】流通システムにおける設計・検証作業の流れの一例を示す図である。
【図５】設計検証装置の一例の構成を示す構成図である。
【図６】設計・検証作業の流れを示すフローチャートである。
【図７】チップレイアウトデータの一例を示す図である。
【図８】暗号化ＩＰの流通システムの一例について示す図である。
【図９】暗号化ＩＰの作成方法を示すフローチャートである。
【図１０】コントロールファイルの記載例を示す図である。
【図１１】コントロールファイルの記載例を示す図である。
【図１２】コントロールファイルの作成方法を示すフローチャートである。
【図１３】流通システムにおける設計・検証作業の流れの一例を示す図である。
【図１４】ハードウェアＩＰ、暗号化ＩＰ、ボックスＩＰの関係をまとめた図である。
【図１５】データ検証処理の一例を示すフローチャートである。
【図１６】チップレイアウトデータの保持例を示す図である。
【図１７】ＤＲＣ検証を行った場合の表示例を示す図である。
【図１８】エラーフラグの形状を加工して出力する表示例の一例を示す図である。
【図１９】エラーフラグの形状を加工して出力する表示例の一例を示す図である。
【図２０】エラーフラグの形状を加工して出力する表示例の一例を示す図である。
【図２１】ＬＶＳ検証処理の一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、実施形態の一例について図面を参照しつつ説明する。
【００１０】
［第１実施形態］
最初に、第１実施形態について説明する。第１実施形態では、ハードウェアＩＰを用いたチップの設計・検証作業の効率化を図る方法について説明する。
【００１１】
まず、ハードウェアＩＰの流通システムの一例について、ハードウェアＩＰのデータをチップ設計者に開示可能な場合と開示不可能な場合とに分けて説明する。
【００１２】
図１は、ハードウェアＩＰのデータをチップ設計者に開示することが可能な場合の流通システムの一例を示している。ハードウェアＩＰは、回路ブロックの機能単位でまとめられた、レイアウトデータ、ネットリスト、機能記述データなどのデータである。
【００１３】
ハードウェアＩＰのデータをチップ設計者に開示可能な場合には、ＩＰプロバイダは、当該ハードウェアＩＰをチップ設計者に提供する。図１に示す例では、ＩＰプロバイダＡ、ＢがハードウェアＩＰ１０Ａ、１０Ｂをチップ設計者に提供している。チップ設計者は、これらのハードウェアＩＰ１０Ａ、１０Ｂを用いてチップ設計を行う。例えば、チップ設計者は、ハードウェアＩＰ１０Ａ、１０Ｂのそれぞれのレイアウトデータを用いてチップのレイアウト設計を行い、チップのレイアウトデータ（以下、「チップレイアウトデータ」と称する）を作成する。この他にも、例えば、チップ設計者は、ハードウェアＩＰ１０Ａ、１０Ｂのそれぞれのネットリストを用いて、チップのネットリスト（以下、「チップネットリスト」と称する）を作成する。以下では、これらのチップレイアウトデータやチップネットリストなどのチップの設計データをまとめて「チップ設計データ」と称することとする。つまり、チップ設計者は、ハードウェアＩＰ１０Ａ、１０Ｂを用いてチップ設計を行うことで、チップ設計データＰＢＤを作成する。
【００１４】
チップ設計者は、チップ設計で生成されたチップ設計データＰＢＤに対し、ＥＤＡ（Electronic Design Automation）などの設計検証装置を用いてデータ検証を行う。具体的には、チップ設計者は、チップ設計データＰＢＤ、チップの製造業者により提供されたコントロールファイル２０を設計検証装置に入力する。コントロールファイル２０には、データ検証の処理や判定基準などが記述されている。設計検証装置は、コントロールファイル２０に従って、チップ設計データＰＢＤに対してデータ検証を実施して、検証結果を出力する。データ検証としては、例えば、ＤＲＣ（design rule checking）、ＬＶＳ（layout versus schematic）やＤＦＭ（design for manufacturability）などの検証が挙げられる。ＤＲＣ検証は、チップレイアウトデータがデザインルールを満足しているか否かを検証するものである。ＬＶＳ検証は、チップレイアウトデータより導き出される回路データが論理回路設計段階において設計された回路データと一致しているか否かを検証するものである。ＤＦＭ検証は、チップ設計データを基にチップが容易に製造可能か否かを検証するものである。設計検証装置は、これらの検証データにおける検証基準をチップ設計データＰＢＤが満足しているか否かを検証して、その検証結果を出力する。
【００１５】
チップ設計者は、検証結果を基に、チップ設計データＰＢＤが検証基準を満足していると判定した場合には、チップ設計データＰＢＤを製造業者に出荷する。製造業者は、チップ設計データＰＢＤをチップ設計者より受け入れる。
【００１６】
図１では、ハードウェアＩＰのデータをチップ設計者に開示することが可能な場合の流通システムについて示した。これに対し、ＩＰプロバイダは、ハードウェアＩＰのデータをチップ設計者に開示したくない場合がある。この場合の流通システムの一例について図２を用いて説明する。
【００１７】
図２は、ハードウェアＩＰのデータをチップ設計者に開示不可能な場合の流通システムの一例を示している。
【００１８】
ハードウェアＩＰのデータをチップ設計者に開示不可能な場合には、ＩＰプロバイダは、ハードウェアＩＰをボックス化したボックスＩＰをチップ設計者に供給する。ここで、ボックス化とは、ハードウェアＩＰのデータのうち、チップ設計者に開示可能なデータを抽出することである。つまり、ＩＰプロバイダは、ハードウェアＩＰのデータのうち、チップ設計者に開示可能なデータを抽出し、抽出した開示可能なデータをボックスＩＰとしてチップ設計者に供給する。ここで、ボックスＩＰの作成方法の一例について図３を用いて説明する。
【００１９】
図３に示すように、ハードウェアＩＰ１０のレイアウトデータ１０ａより、例えば、開示可能な端子レイアウトの情報が抽出され、抽出された端子レイアウトの情報がボックスＩＰ１１のレイアウトデータ１１ａとされる。以下では、ボックスＩＰ１１のレイアウトデータを「ボックスレイアウトデータ」と称することとする。また、ハードウェアＩＰ１０のネットリスト１０ｂより、例えば、端子の種別を示す識別子などの端子情報が抽出され、抽出された端子情報がボックスＩＰ１１のネットリストとされる。以下では、ボックスＩＰ１１のネットリストを「ボックスネットリスト」と称することとする。また、ハードウェアＩＰ１０の機能記述データ１０ｃは、例えば、そのままボックスＩＰ１１の機能記述データたるボックス機能記述データ１１ｃとされる。このように、ハードウェアＩＰの各データにおけるチップ設計者に開示可能なデータがボックスＩＰの各データとされる。
【００２０】
図２に戻り説明を続けると、ＩＰプロバイダＡ、Ｂは、ハードウェアＩＰ１０Ａ、１０Ｂをボックス化してボックスＩＰ１１Ａ、１１Ｂを作成し、ボックスＩＰ１１Ａ、１１Ｂをチップ設計者に供給する。
【００２１】
チップ設計者は、これらのボックスＩＰ１１Ａ、１１Ｂを用いてチップ設計を行うことで、チップ設計データＢＣＤを作成する。後に詳しく述べるが、例えば、チップ設計者は、ボックスＩＰ１１Ａ、１１Ｂのそれぞれのボックスレイアウトデータを用いてチップのレイアウト設計を行い、チップのレイアウトデータであるチップレイアウトデータを作成する。また、チップ設計者は、ボックスＩＰ１１Ａ、１１Ｂのそれぞれのボックスネットリストを用いて、チップのネットリストであるチップネットリストを作成する。
【００２２】
チップ設計者は、チップ設計で生成されたチップ設計データＢＣＤに対し、設計検証装置を用いてデータ検証を行う。具体的には、図１で述べたのと同様、設計検証装置は、チップの製造業者により提供されたコントロールファイル２０に従い、チップ設計データＢＣＤに対し、ＤＲＣ、ＬＶＳ、ＤＦＭといったデータ検証を行う。チップ設計者は、データ検証の結果を基に、チップ設計データＢＣＤが検証基準を満足していると判定した場合には、チップ設計データＢＣＤを製造業者に出荷する。
【００２３】
製造業者は、ＩＰプロバイダＡ、ＢよりハードウェアＩＰ１０Ａ、１０Ｂを受け入れている。製造業者は、チップ設計データＢＣＤをチップ設計者より受け入れると、チップ設計データＢＣＤ中のボックスＩＰ１１Ａ、１１ＢをハードウェアＩＰ１０Ａ、１０Ｂに置き換えたチップ設計データＨＣＤを作成する。そして、製造業者は、チップ設計データＨＣＤに対し、再度、設計検証装置を用いてデータ検証を行う。具体的には、設計検証装置は、コントロールファイル２０に従い、チップ設計データＨＣＤに対し、ＤＲＣ、ＬＶＳ、ＤＦＭといったデータ検証を行う。製造業者は、データ検証の結果、チップ設計データＨＣＤが検証基準を満足していると判定した場合には、チップ設計データＨＣＤを基にチップの製造を開始する。
【００２４】
次に、図２に示した流通システムにおける設計・検証作業の流れについて図４を用いて詳細に説明する。図４は、図２に示した流通システムにおける設計・検証作業の流れの一例を示す図である。
【００２５】
なお、以下では、ハードウェアＩＰ１０Ａのレイアウトデータ、ネットリストをそれぞれ、レイアウトデータ１０ａＡ、ネットリスト１０ｂＡと称する。また、ボックスＩＰ１１Ａのボックスレイアウトデータ、ボックスネットリストをそれぞれ、ボックスレイアウトデータ１１ａＡ、ボックスネットリスト１１ｂＡと称する。ボックスレイアウトデータ１１ａＡは、レイアウトデータ１０ａＡの開示可能なデータが抽出されたものであり、ボックスネットリスト１１ｂＡは、ネットリスト１０ｂＡの開示可能なデータが抽出されたものである。
【００２６】
また、ハードウェアＩＰ１０Ｂのレイアウトデータ、ネットリストをそれぞれ、レイアウトデータ１０ａＢ、ネットリスト１０ｂＢと称する。また、ボックスＩＰ１１Ｂのボックスレイアウトデータ、ボックスネットリストをそれぞれ、ボックスレイアウトデータ１１ａＢ、ボックスネットリスト１１ｂＢと称する。ボックスレイアウトデータ１１ａＢは、レイアウトデータ１０ａＢの開示可能なデータが抽出されたものであり、ボックスネットリスト１１ｂＢは、ネットリスト１０ｂＢの開示可能なデータが抽出されたものである。
【００２７】
図４に示すように、作業の流れとしては、チップ設計、チップ設計者によるデータ検証、ＩＰ置き換え、製造業者によるデータ検証の順に行われる。以下、順に説明する。
【００２８】
チップ設計段階では、チップ設計者は、ボックスＩＰ１１Ａ、ＩＰ１１Ｂを用いて、チップ設計データＢＣＤを作成する。例えば、チップ設計者は、ボックスＩＰ１１Ａのボックスレイアウトデータ１１ａＡと、ボックスＩＰ１１Ｂのボックスレイアウトデータ１１ａＢとを用いて、チップのレイアウト設計を行い、チップレイアウトデータＢＬＡを作成する。また、チップ設計者は、ボックスＩＰ１１Ａのボックスネットリスト１１ｂＡと、ボックスＩＰ１１Ｂのボックスネットリスト１１ｂＢとを用いて、チップの回路データであるチップネットリストＢＮＬを作成する。
【００２９】
チップ設計者によるデータ検証段階では、チップ設計者は、チップ設計段階で作成されたチップ設計データＢＣＤについて、設計検証装置を用いてデータ検証を行う。具体的には、設計検証装置は、コントロールファイル２０に記載された処理に従って、チップ設計データＢＣＤについて、ＤＲＣ、ＬＶＳ、ＤＦＭといったデータ検証の処理を行う。設計検証装置は、このデータ検証の結果をハードウェアＩＰに対する検証結果３０として出力する。チップ設計者は、出力された検証結果３０を検討して、チップ設計データＢＣＤを製造業者に出荷するか否かについて判定する。
【００３０】
ここで、設計検証装置の具体的なハードウェア構成について説明する。図５は、設計検証装置の一例である設計検証装置１００の構成を示す構成図である。
【００３１】
図５に示すように、設計検証装置１００は、例えばＰＣ（Personal Computer）などのコンピュータであり、ＣＰＵ（Central Processing Unit）８１、ＲＯＭ（Read Only Memory）８２、ＲＡＭ（Random Access Memory）８３、ハードディスク８４を有する。また、設計検証装置は、出力装置８５、入力装置８６、インターフェース８７及びディスクドライブ８８を有する。これらの構成要素は、バス８０に接続されている。出力装置８５は、例えばモニタやプリンタなどの出力装置であり、入力装置８６は、例えばマウスやキーボードなどの入力装置である。インターフェース８７は、例えばＵＳＢ（Universal Serial Bus）などの外部接続インターフェースである。ディスクドライブ８８は、例えばＤＶＤ（Digital Versatile Disc）などのディスクを駆動させるためのディスクドライブである。ＣＰＵ８１がＲＯＭ８１に記憶されたプログラムを実行することによりデータ検証が実施される。
【００３２】
チップ設計者によるデータ検証段階における設計検証装置１００の具体的な動作としては、まず、チップ設計データＢＣＤ及びコントロールファイル２０が、インターフェース１７などを介して設計検証装置１００に入力される。そして、ＲＯＭ８１に記憶されたプログラムが実行されると、ＣＰＵ８１は、コントロールファイル２０に記載された処理に従って、チップ設計データＢＣＤについて、ＤＲＣ、ＬＶＳ、ＤＦＭといったデータ検証処理を行う。ＣＰＵ１１は、このデータ検証の結果をボックスＩＰに対する検証結果３０として出力装置８５に出力する。
【００３３】
ＩＰ置き換え段階では、製造業者は、チップ設計データＢＣＤをチップ設計者より受け取り、受け取ったチップ設計データＢＣＤ中のボックスＩＰ１１Ａ、１１ＢをハードウェアＩＰ１０Ａ、１０Ｂに置き換えてチップ設計データＨＣＤを作成する。例えば、製造業者は、チップレイアウトデータＢＬＡにおけるボックスレイアウトデータをハードウェアＩＰのレイアウトデータに置き換えてチップレイアウトデータＬＡを作成する。具体的には、このとき、ボックスレイアウトデータ１１ａＡは、ハードウェアＩＰ１０Ａのレイアウトデータ１０ａＡに置き換えられ、ボックスレイアウトデータ１１ａＢは、ハードウェアＩＰ１０Ｂのレイアウトデータ１０ａＢに置き換えられる。また、製造業者は、チップネットリストＢＮＡにおけるボックスネットリストをハードウェアＩＰのネットリストに置き換えてチップネットリストＮＬを作成する。具体的には、このとき、ボックスネットリスト１１ｂＡが、ハードウェアＩＰ１０Ａのネットリスト１０ｂＡに置き換えられ、ボックスネットリスト１１ｂＢが、ハードウェアＩＰ１０Ｂのネットリスト１０ｂＢに置き換えられる。
【００３４】
製造業者によるデータ検証段階では、製造業者は、ＩＰ置き換えが行われたチップ設計データＨＣＤについて、設計検証装置を用いてデータ検証を行う。
【００３５】
具体的には、チップ設計者によるデータ検証の場合と同様、製造業者は、チップ設計データＨＣＤ及びコントロールファイル２０を設計検証装置に入力する。そして、チップ設計者によるデータ検証のときと同様、設計検証装置は、コントロールファイル２０に記載された処理に従って、チップ設計データＨＣＤについて、ＤＲＣ、ＬＶＳ、ＤＦＭといったデータ検証の処理を行う。設計検証装置は、このデータ検証の結果をハードウェアＩＰに対する検証結果３１として出力する。製造業者は、検証結果３１を基に、チップ設計データＨＣＤが検証基準を満足していると判定した場合には、チップ設計データＨＣＤを基にチップの製造を開始する。
【００３６】
上述したことから分かるように、データ検証は、ボックスＩＰ１１Ａ、１１Ｂが用いられたチップ設計データＢＣＤに対して行われる場合と、ハードウェアＩＰ１０Ａ、１０Ｂに置き換えられたチップ設計データＨＣＤに対して行われる場合とがある。
【００３７】
次に、上述の設計・検証作業の流れについて図６に示すフローチャートを用いて説明する。図６は、上述の設計・検証作業の流れを示すフローチャートである。
【００３８】
まず、ステップＳ１０１において、チップ設計段階として、チップ設計者は、ボックスＩＰを用いてチップ設計データＢＣＤを作成する。
【００３９】
ステップＳ１０２において、チップ設計者によるデータ検証段階として、チップ設計者は、チップ設計データＢＣＤについて、設計検証装置を用いてＤＲＣ，ＬＶＳ，ＤＦＭといったデータ検証を行い、ボックスＩＰに対する検証結果３０を求める。
【００４０】
ステップＳ１０３において、チップ設計者は、ボックスＩＰに対する検証結果３０を検討して、製造業者に出荷するか否かについて判定する。チップ設計者は、データ検証の結果、チップ設計データＢＣＤが検証基準を満足していると判定した場合には、チップ設計データＢＣＤを製造業者に出荷する（ステップＳ１０３：ＯＫ）。一方、チップ設計者は、チップ設計データＢＣＤが検証基準を満足していないと判定した場合には、チップ設計に問題があるとして、チップ設計データＢＣＤを出荷せずに（ステップＳ１０３：ＮＧ）、ステップＳ１０１のチップ設計に戻る。
【００４１】
ステップＳ１０４において、製造業者は、チップ設計データＢＣＤをチップ設計者より受け入れる。続くステップＳ１０５において、ＩＰ置き換え段階として、製造業者は、チップ設計データＢＣＤ中のボックスＩＰをハードウェアＩＰに置き換えることでチップ設計データＨＣＤを作成する。
【００４２】
ステップＳ１０６において、製造業者によるデータ検証段階として、製造業者は、チップ設計データＨＣＤについて、設計検証装置を用いてＤＲＣ，ＬＶＳ，ＤＦＭといったデータ検証を行い、ハードウェアＩＰに対する検証結果３１を求める。
【００４３】
ステップＳ１０７において、製造業者は、ハードウェアＩＰに対する検証結果３１を検討して、チップの製造を開始するか否かについて判定する。製造業者は、データ検証の結果、チップ設計データＨＣＤが検証基準を満足していると判定した場合には、チップの製造を開始する（ステップＳ１０７：ＯＫ）。一方、製造業者は、チップ設計データＨＣＤが検証基準を満足していないと判定した場合には、チップ設計に問題があるとして、チップの製造を開始せずに（ステップＳ１０３：ＮＧ）、ステップＳ１０１のチップ設計に戻る。
【００４４】
ここで、ステップＳ１０７において、ステップＳ１０１のチップ設計に戻る場合というのは、チップ設計者によるデータ検証の結果と、製造業者によるデータ検証の結果とが相違する場合である。別の言い方をすると、チップ設計者によるデータ検証の検証結果３０は検証基準を満足したとされたのにもかかわらず、製造業者によるデータ検証の検証結果３１は検証基準を満足していないとされた場合である。
【００４５】
このようなデータ検証の結果の相違が発生する一例として、パターンの隣接配置に対してＤＲＣ検証が行われた場合の例を用いて説明する。図７（ａ）は、ボックスレイアウトデータ１１ａを用いてチップ設計が行われたときのチップレイアウトデータの一例であり、図７（ｂ）は、ハードウェアＩＰ１０のレイアウトデータ１０ａでボックスレイアウトデータ１１ａを置き換えたときのチップレイアウトデータの一例である。
【００４６】
図７（ａ）に示すチップレイアウトデータＢＬＡ０では、ゲートなどのパターン４１がボックスレイアウトデータ１１ａの近傍に配置されている。ボックスレイアウトデータ１１ａは、その内部のゲートなどのパターンの配置に関する情報を開示していない。ここで、例えば「パターン間の距離はＶａｌ以上とること」というデザインルールが存在するとし、ＤＲＣ検証として、このデザインルールを満足しているか否かの検証が行われたとする。
【００４７】
チップ設計者は、設計検証装置を用いて、図７（ａ）に示すチップレイアウトデータＢＬＡ０に対するＤＲＣ検証を行う。図７（ａ）に示すチップレイアウトデータＢＬＡ０では、ボックスレイアウトデータ１１ａはゲート配置情報を開示していないため、パターン４１に隣接した他のパターンは存在していないことになる。そのため、ＤＲＣ検証が行われると、図７（ａ）に示すチップレイアウトデータＢＬＡ０は、上述のデザインルールを満足しているという結果になる。
【００４８】
ここで、図７（ｂ）に示すように、ボックスレイアウトデータ１１ａがハードウェアＩＰ１０のレイアウトデータ１０ａに置き換えられると、実際には、パターン４１に対し距離ＬＬだけ離れて隣接したパターン４２が存在することが分かる。製造業者は、設計検証装置を用いて、図７（ｂ）に示すチップレイアウトデータＬＡ０に対して、同様のＤＲＣ検証を行う。すると、パターン４１とパターン４２との間の距離ＬＬがＶａｌよりも小さくなっているため、図７（ｂ）に示すチップレイアウトデータＬＡ０は、上述のデザインルールを満たしていないという結果になる。つまり、チップ設計者によるデータ検証の結果と、製造業者によるデータ検証の結果とが相違することになる。
【００４９】
このように、ボックスレイアウトデータが用いられたチップレイアウトデータでは、パターンの隣接配置の状態を確認することが難しいため、ＤＲＣ検証を充分に行うことが難しい。このため、チップ設計者によるデータ検証の結果と、製造業者によるデータ検証の結果とが相違することがある。同様に、パターンの隣接配置の状態を確認することが難しいため、ＯＰＣ（Optical Proximity Correction）実施時の相互干渉やＣＭＰ（Chemical Mechanical Polishing）実施時の平坦性に関する検証についても充分に行うことが難しい。また、この他にも、ボックスＩＰが用いられたチップレイアウトデータでは、ボックスＩＰの対象となる回路ブロックと当該回路ブロックに接続された回路との間の整合性を充分に検証することが難しい。このような回路接続に関する検証例としては、タイミング解析、アンテナ効果、ストレスマイグレーションやエレクトロマイグレーションなどの信頼性に関する検証がある。これらの回路接続に関する検証が行われた際にも、チップ設計者によるデータ検証の結果と、製造業者によるデータ検証の結果とが相違することがある。
【００５０】
このようなデータ検証の結果の相違が発生すると、その度にチップ設計段階へ作業が戻ることになるため、なるべくデータ検証の結果の相違が発生しないようにすることが好ましい。
【００５１】
そこで、第１実施形態では、設計検証装置は、チップ設計者によるデータ検証段階において、ハードウェアＩＰにおける一部又は全部のデータが暗号化された暗号化ＩＰを用いてデータ検証を行うこととする。以下、図８を用いて具体的に説明する。
【００５２】
図８は、暗号化ＩＰの流通システムの一例について示す図である。
【００５３】
暗号化ＩＰの流通システムでは、ＩＰプロバイダは、ハードウェアＩＰをボックス化したボックスＩＰを作成するとともに、暗号化鍵ＥＫ１を用いて、ハードウェアＩＰにおける一部又は全部のデータを暗号化した暗号化ＩＰを作成する。ここで、暗号化鍵ＥＫ１及び暗号化ＩＰの復号化に用いられる復号化鍵ＤＫ１は、製造業者により作成される。
【００５４】
ＩＰプロバイダは、例えば、ＥＤＡなどの装置を用いて、ボックスＩＰ及び暗号化ＩＰを作成する。以下では、ＥＤＡなどの、ボックスＩＰ及び暗号化ＩＰを作成する機能を有する装置をＩＰ作成装置とする。ＩＰ作成装置は、例えばＰＣなどにおいて、ＣＰＵがプログラムを実行することにより実現される。
【００５５】
具体的には、図９の暗号化ＩＰの作成方法のフローチャートにも示すように、まず、ハードウェアＩＰのデータ、例えば、レイアウトデータやネットリストなどのデータをＩＰ作成装置が読み込む（ステップＰ１０１）。次に、ＩＰ作成装置は、暗号化鍵ＥＫ１を読み込み（ステップＰ１０２）、ハードウェアＩＰのデータの一部又は全部の暗号化処理を行うことで（ステップＰ１０３）、暗号化ＩＰを生成する。一方、ＩＰ作成装置は、読み込まれたハードウェアＩＰのデータより、先に述べたボックスレイアウトデータやボックスネットリストなどのチップ設計者に開示可能なデータを抽出して（ステップＰ１０４）、ボックスＩＰを生成する。ボックスＩＰ及び暗号化ＩＰは、ＩＰライブラリとして、チップ設計者に提供される。また、暗号化ＩＰは、製造業者にも供給される。
【００５６】
図８に示す例では、ハードウェアＩＰ１０Ａより、ハードウェアＩＰ１０Ａにおける一部又は全部のデータが暗号化された暗号化ＩＰ１２Ａと、ハードウェアＩＰ１０Ａにおける開示可能なデータが抽出されたボックスＩＰ１１Ａとが生成される。また、ハードウェアＩＰ１０Ｂより、ハードウェアＩＰ１０Ｂにおける一部又は全部のデータを暗号化された暗号化ＩＰ１２Ｂと、ハードウェアＩＰ１０Ｂにおける開示可能なデータが抽出されたボックスＩＰ１１Ｂとが生成される。
【００５７】
先にも述べたように、ＩＰプロバイダＡ、Ｂは、ボックスＩＰ１１Ａ、１１Ｂ、暗号化ＩＰ１２Ａ、１２Ｂをチップ設計者に提供する。また、ＩＰプロバイダＡ、Ｂは、暗号化ＩＰ１２Ａ、１２Ｂを製造業者に提供する。なお、ＩＰプロバイダＡ、Ｂは、暗号化ＩＰ１２Ａ、１２Ｂを製造業者に提供するとする代わりに、ハードウェアＩＰ１０Ａ、１０Ｂを製造業者に提供するとしても良い。
【００５８】
チップ設計者は、図２で述べたのと同様、ボックスＩＰ１１Ａ、１１Ｂを用いてチップ設計を行い、チップ設計データＢＣＤを作成する。そして、チップ設計者は、設計検証装置を用いて、チップ設計データＢＣＤに対し、ＤＲＣ、ＬＶＳ、ＤＦＭといったデータ検証を行う。
【００５９】
このとき、設計検証装置は、製造業者により提供されたコントロールファイル２１に含まれる復号化鍵ＤＫ１を用いて、暗号化ＩＰをハードウェアＩＰに復号化する。そして、設計検証装置は、コントロールファイル２１に記述された処理によっては、チップ設計データＢＣＤ中におけるボックスＩＰを、復号化されたハードウェアＩＰに置き換えてデータ検証を行う。なお、ここで、設計検証装置は、暗号化ＩＰの復号化からデータ検証までの処理を、設計検証装置の外部から隠蔽された記憶領域内、例えば、設計検証装置のＲＡＭなどのメモリ内で行う。
【００６０】
チップ設計者は、データ検証の結果、チップ設計データＢＣＤが検証基準を満足していると判定した場合には、チップ設計データＢＣＤを製造業者に出荷する。
【００６１】
製造業者は、ＩＰプロバイダより暗号化ＩＰを受け入れている。製造業者は、復号化鍵ＤＫ１を用いて、暗号化ＩＰをハードウェアＩＰに復号化する。なお、ここで、製造業者は、ＩＰプロバイダよりハードウェアＩＰを受け入れるとしても良い。製造業者は、図２で述べたのと同様、チップ設計データＢＣＤ中のボックスＩＰをハードウェアＩＰに置き換えたチップ設計データＨＣＤを作成する。そして、製造業者は、設計検証装置を用いて、再度、チップ設計データＨＣＤに対し、ＤＲＣ、ＬＶＳ、ＤＦＭといったデータ検証を行う。製造業者は、データ検証の結果、チップ設計データＨＣＤが検証基準を満足していると判定した場合には、チップ設計データＨＣＤを基にチップの製造を開始する。
【００６２】
ここで、コントロールファイル２１及びチップ設計者によるデータ検証について詳細に説明する。
【００６３】
図８に示すように、コントロールファイル２１には、暗号化ＩＰを復号化するための復号化鍵ＤＫ１が含まれている。また、コントロールファイル２１では、処理のうち、復号化されたハードウェアＩＰに置き換えられたチップ設計データに対する実施可能な処理（以下、「実施可能処理」と称することもある）が製造業者により指定されている。ここで、復号化されたハードウェアＩＰに置き換えられたチップ設計データに対し、指定された実施可能処理以外の処理を行うことはできない。なお、指定された実施可能処理以外の処理は、ボックスＩＰが用いられたチップ設計データに対する処理（以下、「通常処理」と称することもある）である。ここで、製造業者は、暗号化鍵ＥＫ１及び復号化鍵ＤＫ１とは異なる鍵のペアとして、暗号化鍵ＥＫ２及び復号化鍵ＤＫ２を作成する。製造業者は、コントロールファイル２１について、実施可能処理及び復号化鍵ＤＫ１の部分を暗号化鍵ＥＫ２で暗号化してチップ設計者に提供する。
【００６４】
コントロールファイル２１について図１０〜図１２を用いて具体的に説明する。
【００６５】
図１０、図１１は、コントロールファイル記載例を示す図である。図１０において、通常処理ＳＢ−１〜ＳＢ−ｎ（ｎは整数）は、ボックスＩＰが用いられたチップ設計データに対する通常処理ＳＢを示している。実施可能処理ＳＡ−１〜ＳＡ−ｍ（ｍは整数）は、復号化されたハードウェアＩＰに置き換えられたチップ設計データに対する実施可能処理ＳＡを示している。コントロールファイル２１中の復号化鍵ＤＫ１及び実施可能処理ＳＡ−１〜ＳＡ−ｍは暗号化鍵ＥＫ２で暗号化される。図１０では、暗号化鍵ＥＫ２で暗号化された部分が暗号化情報として示されている。この暗号化されたコントロールファイル２１がチップ設計者に提供される。ここで、復号化鍵ＤＫ１及び実施可能処理ＳＡが暗号化される理由は、チップ設計者などの第三者が、コントロールファイル２１を改変して、暗号化ＩＰのデータを引き出そうとするのを防ぐためである。つまり、暗号化ＩＰに対する処理が製造業者によって限定され、かつ、暗号化されるとすることにより、ハードウェアＩＰの情報保護が行われる。
【００６６】
なお、製造業者は、コントロールファイル２１に記載された処理のうち、一部の処理を実施可能処理ＳＡとして指定しているが、これに限られるものではなく、全部の処理を実施可能処理ＳＡとして指定しても良いのは言うまでもない。また、１ファイルとしてコントロールファイル２１が作成されるとする代わりに、図１１に示すように、複数のファイルに分離してコントロールファイル２１が作成されるとしても良い。図１１に示す例では、通常処理ＳＢが記述されたファイル−１と、実施可能処理ＳＡ及び復号化鍵ＤＫ１が記述されたファイル−２とが分離されたコントロールファイル２１が作成されている。この場合には、ファイル−２が丸ごと暗号化される。このようにすることで、ファイルの一部分を暗号化するよりも容易に暗号化することができる。
【００６７】
コントロールファイル２１の作成方法について具体的に説明する。製造業者は、例えば、ＥＤＡなどの装置を用いて、コントロールファイル２１を作成する。以下では、ＥＤＡなどの、コントロールファイルを作成する機能を有する装置をコントロールファイル作成装置とする。コントロールファイル作成装置は、例えばＰＣなどにおいて、ＣＰＵがプログラムを実行することにより実現される。
【００６８】
具体的には、図１２のコントロールファイルの作成方法のフローチャートにも示すように、まず、復号化鍵ＤＫ１がコントロールファイル作成装置に入力されるとともに（ステップＰ２０１）、暗号化前のコントロールファイル２１がコントロールファイル作成装置に入力される（ステップＰ２０２）。暗号化前のコントロールファイル２１がコントロールファイル作成装置に入力された後、製造業者により実施可能処理ＳＡが指定される（ステップＰ２０３）。そして、コントロールファイル作成装置は、暗号化鍵ＥＫ２を用いて、復号化鍵ＤＫ１及び実施可能処理ＳＡの暗号化処理を行うことで（ステップＰ２０４）、暗号化されたコントロールファイル２１を作成する。このように暗号化されたコントロールファイル２１が復号化鍵ＤＫ２とともにチップ設計者に提供される。
【００６９】
先に述べた図８に示すように、チップ設計者は、データ検証を行う際に、復号化鍵ＤＫ２を設計検証装置に入力する。設計検証装置は、入力された復号化鍵ＤＫ２を用いて、コントロールファイル２１における暗号化情報を復号化する。そして、設計検証装置は、暗号化情報に含まれる復号化鍵ＤＫ１を用いて、暗号化ＩＰをハードウェアＩＰに復号化し、実施可能処理ＳＡを行う際に、チップ設計データＢＣＤ中におけるボックスＩＰを、復号化されたハードウェアＩＰに置き換えて処理を行う。ここで、暗号化情報を復号化してから、ボックスＩＰをハードウェアＩＰに置き換えてデータ検証を行うまでの処理は、設計検証装置の外部から隠蔽された記憶領域内、例えば、設計検証装置のＲＡＭなどのメモリ内で行われる。これは、暗号化ＩＰからハードウェアＩＰに復号化したときに、復号化されたハードウェアＩＰのデータがチップ設計者などの第三者に取得されるのを防ぐためである。
【００７０】
次に、図８に示す流通システムにおける設計・検証作業の流れについて説明する。上述したことから分かるように、図８に示す流通システムにおける設計・検証作業の流れも、図２に示した流通システムにおける設計検証作業の流れと同様、チップ設計、チップ設計者によるデータ検証、ＩＰの置き換え、製造業者によるデータ検証の順に行われる。従って、図８に示す流通システムにおける設計・検証作業の流れを示すフローチャートも、図６に示したフローチャートと同様となる。特に、ＩＰの置き換え、製造業者によるデータ検証といった製造業者側の作業は、図６で述べたのと同様の作業が行われる。そこで、以下では、チップ設計、チップ設計者によるデータ検証といったチップ設計者側の作業に絞って説明する。
【００７１】
図１３は、図８に示した流通システムにおける設計・検証作業の流れの一例を示す図である。図１３では、チップ設計、チップ設計者によるデータ検証の各段階が示されている。
【００７２】
図１３に示すように、チップ設計段階では、チップ設計者は、ボックスＩＰ１１Ａのボックスレイアウトデータ１１ａＡと、ボックスＩＰ１１Ｂのボックスレイアウトデータ１１ａＢとを用いて、チップのレイアウト設計を行い、チップレイアウトデータＢＬＡを作成する。また、チップ設計者は、ボックスＩＰ１１Ａのボックスネットリスト１１ｂＡと、ボックスＩＰ１１Ｂのボックスネットリスト１１ｂＢとを用いて、チップの回路データであるチップネットリストＢＮＬを作成する。
【００７３】
チップ設計者によるデータ検証段階では、チップ設計者は、設計検証装置を用いて、チップ設計データＢＣＤについてデータ検証を行う。
【００７４】
図８に示す流通システムでは、チップ設計者は、ＩＰプロバイダＡより、ハードウェアＩＰ１０Ａの暗号化ＩＰ１２Ａが提供される。例えば、レイアウトデータ１０ａＡが暗号化された暗号化レイアウトデータ１２ａＡ、ネットリスト１０ｂＡが暗号化されたネットリスト１２ｂＡがチップ設計者に提供される。また、チップ設計者は、ＩＰプロバイダＢより、ハードウェアＩＰ１０Ｂの暗号化ＩＰ１２Ｂが提供される。例えば、レイアウトデータ１０ａＢが暗号化された暗号化レイアウトデータ１２ａＢ、ネットリスト１０ｂＢが暗号化されたネットリスト１２ｂＢがチップ設計者に提供される。ここで、ハードウェアＩＰ、暗号化ＩＰ、ボックスＩＰの関係をまとめた図を図１４に示す。
【００７５】
設計検証装置は、コントロールファイル２１に従い、チップ設計データＢＣＤに対するデータ検証を行う。設計検証装置が、実施可能処理ＳＡを行う場合には、チップ設計データＢＣＤ中におけるボックスＩＰを、暗号化ＩＰから復号化されたハードウェアＩＰに置き換えて処理を行う。なお、この処理は、先にも述べたように、情報保護の観点から、外部から隠蔽された記憶領域内、例えば、設計検証装置のＲＡＭなどのメモリ内で行われる。
【００７６】
具体的には、設計検証装置は、復号化鍵ＤＫ１を用いて、暗号化レイアウトデータ１２ａＡ、１２ａＢをレイアウトデータ１０ａＡ、１０ａＢに復号化する。そして、設計検証装置は、チップレイアウトデータＢＬＡにおけるボックスレイアウトデータ１１ａＡ、１１ａＢを、復号化されたレイアウトデータ１０ａＡ、１０ａＢに置き換える。また、設計検証装置は、復号化鍵ＤＫ１を用いて、暗号化ネットリスト１２ｂＡ、１２ｂＢをネットリスト１０ｂＡ、１０ｂＢに復号化する。そして、設計検証装置は、チップネットリストＢＮＬにおけるボックスネットリスト１１ｂＡ、１１ｂＢを、復号化されたネットリスト１０ｂＡ、１０ｂＢに置き換える。
【００７７】
設計検証装置は、このように復号化されたハードウェアＩＰでボックスＩＰが置き換えられたチップレイアウトデータＢＬＡ及びチップネットリストＢＮＬに対して実施可能処理ＳＡを行い、検証結果３２を出力する。この検証結果３２は、ＩＰ置き換え段階を経た後の製造者によるデータ検証の結果と同じものとなる。従って、このようにすることで、チップ設計者によるデータ検証の結果と製造業者によるデータ検証の結果との間に相違が生じるのを防ぐことができ、チップ設計段階へ作業が戻るのを防ぐことができる。
【００７８】
次に、上述のデータ検証処理の一例について、図１５のフローチャートを用いて説明する。図１５のフローチャートに示すデータ検証処理では、通常処理ＳＢが行われる場合と実施可能処理ＳＡが行われる場合とで処理を行う対象が変えられる。具体的には、通常処理ＳＢは、ボックスＩＰが用いられたチップ設計データに対して行われ、実施可能処理ＳＡは、復号化されたハードウェアＩＰに置き換えられたチップ設計データに対して行われる。また、このデータ検証処理は、設計検証装置におけるＣＰＵがプログラムを実行することにより実現されるとともに、外部から隠蔽された記憶領域内、例えば、設計検証装置のＲＡＭなどのメモリ内で行われる。
【００７９】
まず、ステップＳ２０１において、設計検証装置は、コントロールファイル２１を読み込む。このとき、設計検証装置は、暗号化されていない通常処理ＳＢを取得する。続くステップＳ２０２において、設計検証装置は、コントロールファイル２１内に暗号化情報が含まれているか否かについて判定する。設計検証装置は、コントロールファイル２１内に暗号化情報が含まれていると判定した場合には（ステップＳ２０２：Ｙｅｓ）、ステップＳ２０３の処理へ進む。一方、設計検証装置は、コントロールファイル２１内に暗号化情報が含まれていないと判定した場合には（ステップＳ２０２：Ｎｏ）、ステップＳ２０６の処理へ進む。
【００８０】
ステップＳ２０３において、設計検証装置は、復号化鍵ＤＫ２を読み込んで、コントロールファイル２１内の暗号化情報を復号化する。ステップＳ２０４において、設計検証装置は、暗号化情報に含まれる復号化鍵ＤＫ１を取得する。ステップＳ２０５において、設計検証装置は、暗号化情報に含まれる実施可能処理ＳＡの情報を取得する。この後、設計検証装置は、ステップＳ２０６の処理へ進む。
【００８１】
ステップＳ２０６において、設計検証装置は、チップ設計者により設計された、ボックスＩＰが用いられたチップ設計データを読み込む。続くステップＳ２０７において、設計検証装置は、先のステップＳ２０４にて復号化鍵ＤＫ１が取得されたか否かについて判定する。設計検証装置は、復号化鍵ＤＫ１が取得されたと判定した場合には（ステップＳ２０７：Ｙｅｓ）、ステップＳ２０８の処理へ進む。一方、設計検証装置は、復号化鍵ＤＫ１が取得されていないと判定した場合には（ステップＳ２０７：Ｎｏ）、ステップＳ２１１の処理へ進む。
【００８２】
ステップＳ２０８において、設計検証装置は、暗号化ＩＰのデータを読み込み、復号化鍵ＤＫ１を用いて、暗号化ＩＰをハードウェアＩＰに復号化する。続くステップＳ２０９において、設計検証装置は、ボックスＩＰが用いられたチップ設計データ内に、置き換え対象となるボックスＩＰが存在するか否かについて判定する。例えば、設計検証装置は、チップ設計データ内に、復号化されたハードウェアＩＰの名称と一致するものがあるか否かを確認することにより、置き換え対象となるボックスＩＰが存在するか否かについて判定する。もし、ボックスＩＰの名称がチップ設計データ内で別の名称で記述されている場合には、設計検証装置は、ボックスＩＰの名称の変換情報が記載されたファイルを読み込んだ上で、復号化されたハードウェアＩＰの名称と一致するものがあるか否かを確認する。なお、このようにする代わりに、設計検証装置は、復号化されたハードウェアＩＰ及びボックスＩＰに埋め込まれた何らかの共通情報を確認することにより、置き換え対象となるボックスＩＰが存在するか否かについて判定するとしても良い。設計検証装置は、置き換え対象となるボックスＩＰが存在すると判定した場合には（ステップＳ２０９：Ｙｅｓ）、ステップＳ２１０の処理へ進む。一方、設計検証装置は、置き換え対象となるボックスＩＰが存在しないと判定した場合には（ステップＳ２０９：Ｎｏ）、ステップＳ２１１の処理へ進む。
【００８３】
ステップＳ２１０において、設計検証装置は、復号化されたハードウェアＩＰでボックスＩＰが置き換えられたチップ設計データを作成する。このとき、設計検証装置は、ボックスＩＰが用いられたチップ設計データと復号化されたハードウェアＩＰに置き換えられたチップ設計データとの両方を有することとなる。例えば、チップ設計データのうち、チップレイアウトデータの例をとると、図１６（ａ）に示すように、設計検証装置は、２つのチップレイアウトデータを有することとなる。１つは、ボックスレイアウトデータ１１ａＡ、１１ａＢが用いられたチップレイアウトデータＢＬＡ１であり、もう１つは、復号化されたレイアウトデータ１０ａＡ、１０ａＢで置き換えられたチップレイアウトデータＢＬＡ２である。この後、設計検証装置は、ステップＳ２１１の処理へ進む。
【００８４】
ステップＳ２１１において、設計検証装置は、コントロールファイル２１より読み込んだ検証処理、具体的には、通常処理ＳＢ及び実施可能処理ＳＡを開始する。続くステップＳ２１２において、設計検証装置は、現在実行しようとしている処理が実施可能処理ＳＡか否かについて判定する。設計検証装置は、現在実行しようとしている処理が実施可能処理ＳＡであると判定した場合には、ステップＳ２１３の処理に進む。ステップＳ２１３において、設計検証装置は、復号化されたハードウェアＩＰに置き換えられたチップ設計データに対して処理を行い、ステップＳ２１５の処理へ進む。一方、ステップＳ２１２において、設計検証装置は、現在実行しようとしている処理が実施可能処理ＳＡでない、即ち、通常処理ＳＢであると判定した場合には、ステップＳ２１４の処理へ進む。ステップＳ２１４において、設計検証装置は、ボックスＩＰが用いられたチップ設計データに対して処理を行い、ステップＳ２１５の処理へ進む。例えば、図１６（ａ）に示したチップレイアウトデータの例では、現在実行しようとしている処理が通常処理ＳＢの場合には、ボックスレイアウトデータが用いられたチップレイアウトデータＢＬＡ１に対して処理が行われる。一方、現在実行しようとしている処理が実施可能処理ＳＡの場合には、復号化されたレイアウトデータで置き換えられたチップレイアウトデータＢＬＡ２に対して処理が行われる。
【００８５】
ステップＳ２１５において、設計検証装置は、全ての検証処理が終了したか否かについて判定する。設計検証装置は、全ての検証処理が終了していないと判定した場合には、次の検証処理を行うべく、ステップＳ２１２の処理へ戻る。一方、設計検証装置は、全ての検証処理が終了したと判定した場合には、本検証処理を終了する。
【００８６】
上述したデータ検証処理をまとめると、コントロールファイル２１に暗号化情報が含まれていない場合には、復号化処理が行われずに、ボックスＩＰが用いられたチップ設計データに対して通常処理ＳＢが行われる。一方、コントロールファイル２１に暗号化情報が含まれている場合には、復号化処理が行われ、ボックスＩＰが用いられたチップ設計データ、及び、復号化されたハードウェアＩＰが用いられたチップ設計データに対して選択的に処理が行われる。即ち、ボックスＩＰが用いられたチップ設計データに対して通常処理ＳＢが行われ、復号化されたハードウェアＩＰが用いられたチップ設計データに対して実施可能処理ＳＡが行われる。
【００８７】
なお、ステップＳ２１０で述べたチップレイアウトデータについて、設計検証装置は、図１６（ａ）に示したように、２つのチップレイアウトデータを保持することには限られない。このようにする代わりに、図１６（ｂ）に示すように、設計検証装置は、ボックスレイアウトデータと復号化されたレイアウトデータとをライブラリとして保持することとし、それらをチップレイアウトデータにリンクで関連付けることとしても良い。この場合、設計検証装置は、検証処理毎に、対応するライブラリをチップレイアウトデータに対応づけることになる。例えば、実施可能処理ＳＡの場合には、復号化されたレイアウトデータ１０ａＡがリンクＬｉＡと対応付けられ、復号化されたレイアウトデータ１０ａＢがリンクＬｉＢと対応付けられる。一方、通常処理ＳＢの場合には、ボックスレイアウトデータ１１ａＡがリンクＬｉＡと対応付けられ、ボックスレイアウトデータ１１ａＢがリンクＬｉＢと対応付けられる。図１６（ｂ）に示す例によれば、図１６（ａ）に示した例と比較して、冗長なデータが削減され、メモリ使用量の削減や処理時間の短縮化を図ることができる。
【００８８】
なお、上述の第１実施形態では、ハードウェアＩＰのレイアウトデータ、ネットリストを暗号化してデータ検証を行う場合の例について説明したが、これに限られない。このようにする代わりに、又は、加えて、ハードウェアＩＰにおけるレイアウトデータ、ネットリスト以外の他のデータを暗号化してデータ検証を行う場合にも第１実施形態を適用可能であるのは言うまでもない。
【００８９】
以上をまとめると、第１実施形態によれば、設計検証装置は、ボックスＩＰを用いて設計されたチップ設計データに対し、暗号化ＩＰをハードウェアＩＰに復号化し、復号化されたハードウェアＩＰでボックスＩＰを置き換えてデータ検証を行う。これにより、チップ設計者によるデータ検証で、製造者によるデータ検証と同等のデータ検証を行うことが可能となり、チップ設計段階へ作業が戻るのを防ぐことができる。また、このとき、設計検証装置は、記憶されたデータが外部に対して隠蔽されるＲＡＭなどの記憶領域内で暗号化ＩＰの復号化及びデータ検証を行う。これにより、ハードウェアＩＰのデータがチップ設計者などの第三者に取得されることがない。また、このときの設計・検証の作業フローは、図６に示したのと同じ作業フローとなる。つまり、第１実施形態によれば、設計・検証の作業工程を増加させることなく、ハードウェアＩＰの情報保護とチップ設計者によるデータ検証の精度向上との両方を図ることができる。なお、このようにする代わりに、設計検証装置は、ボックスＩＰを用いて設計されたチップ設計データに対し、暗号化ＩＰで置き換えてから、当該暗号化ＩＰをハードウェアＩＰに復号化してデータ検証を行うとしても良いのは言うまでもない。
【００９０】
また、第１実施形態によれば、コントロールファイル２１では、暗号化ＩＰを復号化するための復号化鍵と、復号化されたハードウェアＩＰに置き換えられたチップ設計データに対して実施することができる実施可能処理とが暗号化されている。このようにすることで、チップ設計者などの第三者が、コントロールファイル２１を改変して暗号化ＩＰのデータを引き出そうとするのを防ぐことができる。
【００９１】
なお、第１実施形態では、暗号化ＩＰとボックスＩＰとは別ファイルとして、チップ設計者に提供されるとしているがこれに限られない。このようにする代わりに、ハードウェアＩＰのデータが選択的に暗号化されたものがボックスＩＰとして作成されるとし、当該ボックスＩＰがチップ設計者に提供されるとしても良い。このようにすることで、ボックスＩＰが暗号化ＩＰを兼ねることとなり、１ファイルでチップ設計者に提供することが可能となる。また、第１実施形態では、暗号化ＩＰとコントロールファイル２１とは別ファイルでチップ設計者に提供されるとしているがこれに限られない。このようにする代わりに、暗号化ＩＰがコントロールファイル２１に含まれて、即ち、暗号化ＩＰがコントロールファイルの一部として提供されるとしても良い。
【００９２】
また、第１実施形態では、製造業者によるコントロールファイル２１の作成はコントロールファイル作成装置によって行われ、チップ設計者によるデータ検証は設計検証装置で行われるとしている。しかしながら、このようにする代わりに、製造業者によるコントロールファイル２１の作成とチップ設計者によるデータ検証とが同一の装置で行われるとしても良い。この場合には、コントロールファイル２１の暗号化情報を復号化するための復号化鍵ＤＫ２は、情報保護及び運用の利便性の観点から、当該装置内で生成、保管されることが好ましい。つまり、復号化鍵ＤＫ２がチップ設計者に提供されず、チップ設計者は復号化鍵ＤＫ２を入力しなくてもデータ検証処理を行えるとした方が、情報保護及び運用の利便性の観点から好ましい。
【００９３】
［第２実施形態］
次に、第２実施形態について説明する。第１実施形態では、暗号化ＩＰを用いることで、ハードウェアＩＰの情報保護を図りながら、チップ設計者によるデータ検証の精度を向上させるとしていた。しかしながら、チップ設計の仕方如何によっては、チップ設計者などの第三者が、データ検証実施時に、開示されていないハードウェアＩＰのデータを取得する可能性がある。以下では、これらを防止する方法として、ＤＲＣ検証、ＬＶＳ検証の例をとって説明する。
【００９４】
（ＤＲＣ検証の場合）
まず、ＤＲＣ検証の場合の例について説明する。チップ設計者は、チップレイアウトデータを作成する際に、外部パターンを適当に配置することにより、ＤＲＣ検証時に、開示されていないハードウェアＩＰのレイアウトデータを取得する可能性がある。以下、図１７を用いて具体的に説明する。
【００９５】
図１７（ａ）は、パターンが配置されたチップレイアウトデータに対してＤＲＣ検証を行った場合の表示例を示す図である。図１７（ａ）において、チップレイアウトデータでは、パターン５１とパターン５２とが距離ＬＬ１の間隔で配置されている。ここで、例えば「パターン間の距離はＶａｌ以上とること」というデザインルールが存在するとし、設計検証装置により行われるＤＲＣ検証として、このデザインルールを満足しているか否かの検証が行われるとする。設計検証装置は、距離ＬＬ１が距離Ｖａｌよりも小さいと判定した場合には、デザインルールを満足していないパターンの部分についてエラーフラグを表示する。例えば、設計検証装置は、検証結果として、パターン５１及びパターン５２の位置にエラーフラグＰ１を表示する。
【００９６】
図１７（ｂ）は、ボックスレイアウトデータ上に外部パターンを配置したチップレイアウトデータに対してＤＲＣ検証を行った場合の表示例を示す図である。図１７（ｂ）において、チップレイアウトデータでは、ボックスレイアウトデータ１１ａ上に外部パターン５３が配置されている。ここで、ボックスレイアウトデータ１１ａは、何らのパターンも開示していないものとする。設計検証装置は、ＤＲＣ検証として、先に述べたのと同様、「パターン間の距離はＶａｌ以上とること」というデザインルールを満足しているか否かの検証を行うものとする。なお、以下において、このＤＲＣ検証の処理は実施可能処理であるとする。
【００９７】
設計検証装置は、ＤＲＣ検証を開始すると、第１実施形態で述べたように、チップレイアウトデータについて、復号化されたレイアウトデータ１０ａでボックスレイアウトデータ１１ａを置き換える。このときに、設計検証装置は、ボックスレイアウトデータ１１ａでは開示されていなかったパターン５４が外部パターン５３に対して間隔ＬＬ２で配置されていることを認識する。従って、設計検証装置は、置き換えが行われたチップレイアウトデータに対しＤＲＣ検証を行うと、距離ＬＬ２が距離Ｖａｌよりも小さいため、デザインルールを満足していないとしてエラーフラグを求めて表示する。具体的には、設計検証装置は、検証結果として、パターン５３及びパターン５４の位置にエラーフラグＰ２を表示する。このとき、図１７（ｂ）に示すように、チップ設計者は、エラーフラグＰ２の位置や長さを観察することにより、パターン５４のレイアウトの一部を知ることができてしまう。
【００９８】
つまり、チップ設計者などの第三者が、ボックスレイアウトデータの近傍に外部パターンを適当に配置して、設計検証装置にエラーフラグを出力させる作業を繰り返すことにより、開示されていないはずのパターンのレイアウトが取得される恐れがある。
【００９９】
そこで、設計検証装置は、ＤＲＣ検証を行う場合において、復号化されたハードウェアＩＰのレイアウトデータについてエラーが発生した場合には、エラーフラグの形状を加工して出力することとする。以下、エラーフラグの形状を加工して出力する２つの方法についてそれぞれ説明する。
【０１００】
まず、エラーフラグの形状を加工して出力する第１の方法について説明する。第１の方法では、設計検証装置は、レイアウトデータ１０ａの領域内、または、予め決められた一部の領域内で発生したエラーフラグを加工して表示することとする。以下、図１８を用いて具体的に説明する。
【０１０１】
図１８は、エラーフラグの形状を加工して出力する表示例の一例を示す図である。図１７（ｂ）の例で述べたのと同様、チップレイアウトデータでは、ボックスレイアウトデータ１１ａ上に外部パターン５３が配置されている。また、設計検証装置は、ＤＲＣ検証として、「パターン間の距離はＶａｌ以上とること」というデザインルールを満足しているか否かの検証を行うものとする。設計検証装置は、図１７（ｂ）で述べたのと同様、チップレイアウトデータについて、復号化されたレイアウトデータ１０ａでボックスレイアウトデータ１１ａを置き換え、ＤＲＣ検証を行い、エラーフラグＰ２を求める。
【０１０２】
ここで、設計検証装置は、エラーフラグＰ２を表示せずに、エラーフラグＰ２が、レイアウトデータ１０ａについてのものか否かを判定する。そして、設計検証装置は、エラーフラグＰ２が、レイアウトデータ１０ａについてのものであると判定した場合には、エラーフラグＰ２を加工して表示する。例えば、設計検証装置は、検証結果１に示すように、レイアウトデータ１０ａを囲む形状（即ち、ボックスレイアウトデータ１１ａを囲む形状と同じ）のエラーフラグＰ３に加工して表示する。このようにすることで、開示されていないはずのパターンのレイアウトが、チップ設計者などの第三者に引き出されてしまうのを防ぐことができる。
【０１０３】
ここで、ボックスレイアウトデータ１１ａの配置境界に関するエラーフラグについては、加工せずにチップ設計者に表示した方が良い場合もある。そこで、設計検証装置は、上述のようにする代わりに、レイアウトデータ１０ａ内におけるエラーフラグが発生する領域に応じて、エラーフラグを加工して表示するとしても良い。例えば、図１８の検証結果２に示す例では、設計検証装置は、レイアウトデータ１０ａ内における領域Ａｒｅａ１内で発生したエラーフラグについて加工するとしている。具体的には、設計検証装置は、レイアウトデータ１０ａ内における領域Ａｒｅａ１内で発生したエラーフラグについては、領域Ａｒｅａ１を囲む形状のエラーフラグＰ３ａに加工して表示する。一方、設計検証装置は、領域Ａｒｅａ１外で発生したエラーフラグについては、レイアウトデータ１０ａ内で発生したエラーフラグであっても加工せずに表示する。なお、領域Ａｒｅａ１は、ハードウェアＩＰに含まれるデータなどにおいて、ＩＰプロバイダや製造者により予め指定される。
【０１０４】
次に、エラーフラグの形状を加工して出力する第２の方法について説明する。第２の方法では、設計検証装置は、レイアウトデータに置き換えられたチップレイアウトデータに対してＤＲＣ検証を実施するのに加えて、ボックスレイアウトデータが用いられたままのチップレイアウトデータにもＤＲＣ検証を実施することとする。そして、設計検証装置は、両者の検証結果を比較した比較結果に応じて、エラーフラグをそのまま表示するか、または、エラーフラグを加工して表示するか、を決めることとする。以下、図１９、図２０を用いて具体的に説明する。
【０１０５】
図１９、図２０は、エラーフラグの形状を加工して出力する表示例の一例を示す図である。図１９において、設計検証装置は、チップレイアウトデータについて、復号化されたレイアウトデータ１０ａでボックスレイアウトデータ１１ａを置き換えてＤＲＣ検証を行い、距離ＬＬ２が距離Ｖａｌよりも小さいとして、エラーフラグＰ２を求める。それに加えて、設計検証装置は、ボックスレイアウトデータ１１ａが用いられたままのチップレイアウトデータに対してもＤＲＣ検証を行う。このとき、ボックスレイアウトデータ１１ａでは、パターン５４が開示されていないので、設計検証装置は、デザインルールを満足しているとして、エラーフラグを求めない。
【０１０６】
ここで、設計検証装置は、レイアウトデータ１０ａに置き換えられたチップレイアウトデータに対するＤＲＣ検証の検証結果と、ボックスレイアウトデータ１１ａが用いられたままのチップレイアウトデータに対するＤＲＣ検証の検証結果とを比較する。
【０１０７】
設計検証装置は、両者の検証結果が一致しない場合には、レイアウトデータに置き換えられたチップレイアウトデータに対するＤＲＣ検証で求められたエラーフラグＰ２を加工して表示する。一方、設計検証装置は、両者の検証結果が一致する場合には、エラーフラグＰ２を加工せずにそのまま出力する。
【０１０８】
図１９に示す例では、両者の検証結果が一致しないので、設計検証装置は、エラーフラグＰ２を例えばエラーフラグＰ３に加工して表示する。なお、ここで、設計検証装置は、エラーフラグＰ２をエラーフラグＰ３に加工して表示する代わりに、図１８で述べたのと同様にして、レイアウトデータ１１ａ内の所定の領域を囲む形状のエラーフラグに加工して表示するとしても良いのは言うまでもない。
【０１０９】
図２０は、両者の検証結果が一致する場合の例である。図２０に示す例では、ボックスレイアウトデータ１１ａでパターン５４が開示されているとしている。この場合には、レイアウトデータに置き換えられたチップレイアウトデータに対するＤＲＣ検証の検証結果と、ボックスレイアウトデータが用いられたままのチップレイアウトデータに対するＤＲＣ検証の検証結果とは一致する。具体的には、どちらの検証結果においてもエラーフラグＰ２が求められる。従って、この場合には、設計検証装置は、エラーフラグＰ２を加工せずに出力する。
【０１１０】
第２の方法によれば、ボックスレイアウトデータ１１ａで既に開示されているパターンに関するエラーフラグは、チップ設計者に表示され、ボックスレイアウトデータ１１ａで開示されていないパターンに関するエラーフラグは、チップ設計者に表示されない。このようにすることで、ＩＰプロバイダや製造者がコントロールファイルなどで特に指定しなくても、ボックスレイアウトデータ１１ａで開示されていないデータについて、チップ設計者などの第三者から保護することが可能となる。
【０１１１】
以上述べたようにすることで、ＤＲＣ検証が行われた場合における、ハードウェアＩＰのレイアウトデータの情報保護を図ることが可能となる。
【０１１２】
なお、上述の第１及び第２の方法では、設計検証装置は、外部パターンなどの外部レイアウトからの干渉によってレイアウトデータ１０ａ内で発生するエラーを想定している。しかしながら、レイアウトデータ１０ａ内で発生するエラーとしては、この外部レイアウトからの干渉により発生するエラーの他、これ以外の他の理由により発生するエラー（以下、「擬似エラー」と称する）もある。そのため、設計検証装置が、例えば、レイアウトデータ１０ａ内で発生するエラーフラグを全て加工して表示すると、外部レイアウトからの干渉によるエラーと擬似エラーとを区別することができなくなる恐れがある。そこで、設計検証装置は、予め、このような擬似エラーを除去した上で、第１及び第２の方法を用いてＤＲＣ検証を行うのが好ましい。例えば、設計検証装置は、擬似エラー除去に必要な情報が含まれるファイルを予め読み込んでおき、当該ファイルを基に、擬似エラーを除去することが好ましい。
【０１１３】
（ＬＶＳ検証の場合）
次に、ＬＶＳ検証の場合について説明する。以下では、ＤＲＣ検証の場合で述べた第１及び第２の方法を応用して、ＬＶＳ検証を行う場合におけるハードウェアＩＰの回路データ、具体的にはネットリストの情報を保護する仕組みについて述べる。
【０１１４】
ＬＶＳ検証では、チップレイアウトデータを基に抽出された回路データ、具体的にはチップネットリストと、チップの論理回路設計で設計された回路データとが一致するか否かが検証される。ＬＶＳ検証が行われた場合には、エラー発生時のデバッグ容易性を鑑み、設計検証装置は、チップネットリストを出力することがある。ここで、設計検証装置が、ボックスレイアウトデータからハードウェアＩＰのレイアウトデータに置き換えられたチップレイアウトデータを基に、チップネットリストを出力した場合を考えてみる。このとき、設計検証装置は、当該チップレイアウトデータを基に、復号化されたハードウェアＩＰのネットリストを用いて、チップネットリストを生成する。従って、この場合には、チップ設計者などの第三者は、出力されたチップネットリストを基に、ハードウェアＩＰのネットリストを取得する可能性がある。
【０１１５】
そこで、設計検証装置は、ＬＶＳ検証を行う場合において、出力されるチップネットリストにおけるハードウェアＩＰのネットリスト部分について加工処理を行うこととする。
【０１１６】
具体的には、第１の方法として、ＤＲＣ検証の場合のところで述べた第１の方法と同様、設計検証装置は、出力されるチップネットリストにおけるハードウェアＩＰのネットリスト部分を削除する。もしくは、このようにする代わりに、設計検証装置は、出力されるチップネットリストにおけるハードウェアＩＰのネットリスト部分のうち、予め指定されたデータ以外を削除するとしても良い。または、第２の方法として、ＤＲＣ検証の場合のところで述べた第２の方法と同様の方法と用いるとしても良い。即ち、設計検証装置は、出力されるチップネットリストにおけるハードウェアＩＰのネットリスト部分について、ボックスネットリストと比較して、ボックスネットリストと一致しないデータを削除するとしても良い。このようにすることで、ハードウェアＩＰのネットリストの情報保護を図ることが可能となる。
【０１１７】
上述のＬＶＳ検証のフローについて図２３を用いて説明する。図２１は、ＬＶＳ検証の処理を示すフローチャートである。
【０１１８】
まず、設計検証装置は、コントロールファイル２１を読み込む（ステップＰ３０１）。そして、設計検証装置は、コントロールファイル２１に従い、チップレイアウトデータを読み込んで（ステップＰ３０２）、回路データ、具体的にはチップネットリストを抽出する（ステップＰ３０３）。また、設計検証装置は、コントロールファイル２１に従い、チップの論理回路設計で設計された回路データを読み込む（ステップＰ３０４）。そして、設計検証装置は、チップレイアウトデータより抽出された回路データと論理回路設計で設計された回路データとが一致するか否かの検証を行う（ステップＰ３０５）。
【０１１９】
次に、設計検証装置は、チップレイアウトデータより抽出された回路データの加工処理を行う（ステップＰ３０６）。例えば、第１の方法で述べたように、設計検証装置は、チップネットリストにおけるハードウェアＩＰのネットリスト部分について、全て削除するか、または、ハードウェアＩＰのネットリストのうち、予め指定されたデータ以外を削除する。この後、設計検証装置は、チップレイアウトデータより抽出された回路データ、具体的には、加工処理が施されたチップネットリストを出力して（ステップＰ３０７）、ＬＶＳ処理を終了する。
【０１２０】
以上述べたようにすることで、ＬＶＳ検証が行われた場合における、ハードウェアＩＰのネットリストの情報保護を図ることが可能となる。
【０１２１】
以上に述べたことをまとめると、第２実施形態では、第１の方法として、設計検証装置は、ハードウェアＩＰのデータを示すエラーフラグなどの情報がデータ検証の結果に含まれる場合には、当該情報を加工処理してから検証結果を出力する。これにより、ハードウェアＩＰの情報保護を図ることが可能となる。また、第２の方法として、設計検証装置は、ボックスＩＰが用いられたままのチップ設計データに対するデータ検証の第１の検証結果と、復号化されたハードウェアＩＰに置き換えられたチップ設計データに対するデータ検証の第２の検証結果とを比較する。そして、設計検証装置は、ハードウェアＩＰのデータを示すエラーフラグなどの情報が、第１の検証結果には含まれないのにもかかわらず、第２の検証結果に含まれる場合には、当該情報を加工処理してから検証結果を出力する。このようにすることで、ＩＰプロバイダや製造者が特にコントロールファイルなどで指定しなくても、ボックスＩＰで開示されていないデータをチップ設計者などの第三者から保護することが可能となる。
【０１２２】
なお、第２実施形態では、ＤＲＣ検証、ＬＶＳ検証の場合の例について述べたが、上述した第１又は第２の方法は、例えばＤＦＭなどの他の検証の例においても適用可能である。具体的には、ＤＦＭなどの他のデータ検証が行われた際の結果にハードウェアＩＰのデータを示す情報が含まれる場合には、設計検証装置は、上述した第１又は第２の方法を用いて当該情報を加工してから結果を出力すればよい。
【０１２３】
なお、実施形態は、上述した第１及び第２実施形態の例に限られるものではなく、特許請求の範囲及び明細書全体から読み取れる発明の要旨あるいは思想に反しない範囲で適宜変更可能である。
【符号の説明】
【０１２４】
１０Ａ、１０Ｂ  ハードウェアＩＰ
１１Ａ、１１Ｂ  ボックスＩＰ
１２Ａ、１２Ｂ  暗号化ＩＰ
２０、２１  コントロールファイル
【図１】
2011107967.tif 000003
【図２】
2011107967.tif 000004
【図３】
2011107967.tif 000005
【図４】
2011107967.tif 000006
【図５】
2011107967.tif 000007
【図６】
2011107967.tif 000008
【図７】
2011107967.tif 000009
【図８】
2011107967.tif 000010
【図９】
2011107967.tif 000011
【図１０】
2011107967.tif 000012
【図１１】
2011107967.tif 000013
【図１２】
2011107967.tif 000014
【図１３】
2011107967.tif 000015
【図１４】
2011107967.tif 000016
【図１５】
2011107967.tif 000017
【図１６】
2011107967.tif 000018
【図１７】
2011107967.tif 000019
【図１８】
2011107967.tif 000020
【図１９】
2011107967.tif 000021
【図２０】
2011107967.tif 000022
【図２１】
2011107967.tif 000023