(57)【要約】【課題】電子設計自動化に関する情報の安全な交換のための方法及びシステムを提供する。【解決手段】機密であるとみなされる情報、又は保護する価値があるとみなされる情報を、暗号化、難読化、その他のセキュリティ処置などの方法によって保護することができる。保護された情報は、保護された情報の少なくとも一部を明らかにすることなく処理することができる。例えば、集積回路製造性に関する規則ファイルに選択的に注釈を付け、保護に値する規則ファイルの部分を示すことができる。暗号化ツールを使用して電子設計自動化に関する情報を保護することができる。次に、電子設計自動化ツールは保護された情報を明らかにすることなく、それをロック解除し、使用することができる。一形態では、そのようなアクセス又は情報の安全な使用は、１つ又は複数の条件が満たされること（例えば、時間枠、幾つかの使用又はアクセス）に依存することができる。【選択図】図１
2010282643.tif 000002
【特許請求の範囲】
【請求項１】
本明細書に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
技術分野は、電子設計自動化に関連する。より詳細には、技術分野は、電子設計自動化に関する情報の安全な交換の方法に関連する。
（関連出願の相互参照）
本願は、参照によりそのすべてが本明細書に組み込まれる、発明者Ｊｏｈｎ  Ｇ．Ｆｅｒｇｕｓｏｎ、Ｆｅｄｏｒ  Ｇ．Ｐｉｋｕｓ、Ｋｙｏｈｅｉ  Ｓａｋａｊｉｒｉ、及びＬａｕｒｅｎｃｅ  Ｗ．Ｇｒｏｄｄによる「Ｓｅｃｕｒｅ  Ｔｒａｎｓｆｅｒ  ｏｆ  Ｒｕｌｅ  Ｆｉｌｅｓ」という名称の２００３年９月２６日提出の米国仮出願６０／５０６，１９０号の特典を主張する、共にやはり発明者Ｊｏｈｎ  Ｇ．Ｆｅｒｇｕｓｏｎ、Ｆｅｄｏｒ  Ｇ．Ｐｉｋｕｓ、Ｋｙｏｈｅｉ  Ｓａｋａｊｉｒｉ、及びＬａｕｒｅｎｃｅ  Ｗ．Ｇｒｏｄｄによる「Ｓｅｃｕｒｅ  Ｅｘｃｈａｎｇｅ  ｏｆ  Ｉｎｆｏｒｍａｔｉｏｎ  ｉｎ  Ｅｌｅｃｔｒｏｎｉｃ  Ｄｅｓｉｇｎ  Ａｕｔｏｍａｔｉｏｎ」という名称の出願である、２００４年７月２０日提出の米国特許出願１０／８９５，４８５号の一部継続出願である２００４年８月１７日提出の米国特許出願第１０／９２０，９８８号に対する優先権を主張するものである。
【背景技術】
【０００２】
回路を含む現代の電子システムは、ますます複雑になりつつある。従って、こうした複雑なシステムを設計及び製造することが、ますます特殊な技術及び能力を必要とする可能性があることは、驚くべきことではない。こうした技術及び能力がより特殊化されるにつれて、そのような電子システムを首尾よく設計及び製造するのに必要なエンジニアリングを完成するために、幾つかの異なる団体からの技術者の共同作業が、必要となることがある。場合によっては、ある団体が、特定の必要を満たすために外部組織（例えばベンダ）の特殊な技術及び能力に依拠することになる可能性もある。
【０００３】
例えば、近頃は、電子システム設計者が自分の電子システムの製造又は組立てを、製造を専門に扱う他の企業に外注することは、一般的なことである。こうしたシナリオでは、団体は、そのパートナ団体との間で電子設計自動化（ＥＤＡ）に関する情報を交換し、それでもなお、その業務上の秘密、能力、技術などがそのようなパートナ団体にどの程度明らかにされる可能性があるかに関しての制御を維持するための、信頼性が高く安全な方法を必要とすることがある。
【０００４】
１つの特定の例では、ある団体によって設計されたシステム・オンチップ（ＳＯＣ）をカスタム集積回路（ＩＣ）製造業者によって製造させる必要があることがある。こうした製造業者に関連するファウンドリ企業は、通常、設計技術者によって選択された特定のＩＣレイアウトを実際にファウンドリ企業で製造できるかどうかに関する影響を有する可能性のある（例えば製造上の）制約を有する。こうした制約は、一般に、そのような通信のために選択されたフォーマットの規則として表現される（例えばＳｔａｎｄａｒｄ  Ｖｅｒｉｆｉｃａｔｉｏｎ  Ｒｕｌｅｓ  Ｆｏｒｍａｔ（ＳＶＲＦ））。そのような規則を含むファイルは、規則ファイルと呼ばれることがある。規則ファイル中に表現される制約は、特定のファウンドリ企業の能力と、業務上の秘密と、ファウンドリ企業が一定の相手に対して明らかにすることを望まない他の機密情報とに関する情報を含むことができる。しかし、例えば、そのような情報は、選択したファウンドリ企業で規則に準拠するＩＣレイアウトを製造できるようにそのようなレイアウトを設計するのに有用であることがある。
【０００５】
従って、ＥＤＡツールで使用するために団体間での情報に関するＥＤＡの安全な交換を可能にし、それによって各団体が知的所有権があるとみなす情報（例えば、業務上の秘密や他の機密情報）へのアクセスを制御することのできるシステム及び方法が、求められている。
【発明の概要】
【課題を解決するための手段】
【０００６】
（概要）
電子設計自動化に関する情報の安全な交換のための方法及びシステムが、本明細書で説明される。一形態では、電子設計自動化に関する情報は、暗号化と、パスワード保護と、難読化（ｏｂｆｕｓｃａｔｉｏｎ）と、他のセキュリティ処置とによって保護することができる。別の形態では、電子設計自動化に関する情報に注釈を付け、電子設計自動化に関する保護された情報を含む電子設計自動化に関する情報の部分を示すことができる。
【０００７】
更に別の形態では、電子設計自動化ツールは、電子設計自動化に関する情報の保護された部分を示すように注釈が付けられた電子設計自動化に関する情報を受信することができる。そのような情報電子設計自動化ツールを受信した際に、電子設計自動化に関する保護された情報を含む情報の部分を識別し、保護された情報を処理のためにロック解除することができる。一形態では、電子設計自動化ツールは、保護された情報の少なくとも一部を無許可の人、ツール、システムに明らかにすることなく、保護された電子設計自動化情報を処理することができ、そうでない場合、保護された情報の保護を損なう可能性がある。
【０００８】
別の形態では、指定の持続時間又は期間にアクセスを要求することなどの１つ又は複数の条件が満たされることに基づいて、保護された電子設計自動化情報を処理し、アクセスし、又は使用することができる。持続時間又は期間は満了日によって定義することができる。満了日は、年と、月と、日と、時刻によるものでよい。保護された情報にアクセスし、又は使用するための１つ又は複数の条件は、幾つかのアクセス、又は保護された電子設計自動化情報の使用によって指定することもできる。
【０００９】
継続するアクセス又は保護された電子設計自動化情報の使用に関する条件が幾つかの以前のアクセス又はそのようなデータの使用に依存する場合、その条件を幾つかの異なる方式で実施することができる。例えば、クライアント・サーバ・ネットワークでは、保護されたデータにアクセスし、又はそれを使用することを試みるクライアント・コンピュータが、保護された電子設計自動化情報の以前のアクセス又は使用に関するデータと共に、ネットワーク内のサーバ位置からデータにアクセスするのに必要な鍵を得ることができる。例えば、以前のアクセス数、そのようなアクセスの日付及び時刻、アクセスの要求側の識別などのデータを提供することができる。次いで、クライアント・コンピュータは、保護された電子設計自動化情報にアクセスし、それを処理し、又は使用することを可能にするために、そのようなデータを使用して、選択した条件が満たされているかどうかを判定することができる。
【００１０】
更に別の形態では、保護された電子設計自動化情報を含むファイル内で、保護された電子設計自動化情報にアクセスし、それを処理し、又は使用するための条件を指定することができる。更に、保護された電子設計自動化情報の異なる部分に対して異なる条件を使用することができる。更に、条件は、ユーザの識別に基づいて異なっていてよい。
【００１１】
別の形態では、１つ又は複数の鍵を使用する暗号化方法によって電子設計自動化に関する情報を保護することができる。情報を保護するのに使用される鍵に関する情報を、プライベート又はパブリックにパーティ間で交換することができる。一形態では、電子設計自動化に関する保護される情報を保護した個人又はパーティ、或いは電子設計自動化に関する保護された情報を提供している個人又はパーティは、保護される情報と共に鍵に関する情報を共有することができる。次いで、電子設計自動化ツールは、鍵に関する情報を使用して、保護された情報を処理のためにロック解除することができる。別の形態では、鍵と共にパスワードを使用して、電子設計自動化に関する情報を保護することができる。鍵、パスワード、又は他のセキュリティ機構をユーザ指定することもできる。そのようなセキュリティ処置を暗号化ツール、電子設計自動化ツール、又は何らかの他のツールで選択することもできる。
【００１２】
一形態では、電子設計自動化ツールは、電子設計自動化に関する情報を安全に処理することができ、そのような処理の結果の少なくとも一部を保護することもできる。そのような保護された結果を、保護された結果の少なくとも一部を明らかにすることなく、さらなる処理のために他の電子設計自動化ツールに提供することができる。更に、あるツールが、保護された電子設計自動化に関する情報の少なくとも一部をロック解除し、情報を処理し、さらなる処理のために情報の少なくとも一部を別の電子設計自動化ツールに渡すことができる。別の実施形態では、第１電子設計自動化ツールは、電子設計自動化に関する情報の少なくとも一部をさらなる処理のために別の電子設計自動化ツールに転送する前に、それを再び保護することができる。
【００１３】
更に別の形態では、電子設計自動化に関する保護された情報は、集積回路の製造性に関する規則を含むことができる。一形態では、そのような規則の選択された部分を保護し、物理的検証ツールなどの電子設計自動化ツールに提供することができる。電子設計自動化ツールは、その規則を使用して、システム設計に関する１つ又は複数の集積回路レイアウトが違反する可能性があるかどうかを検証することができる。次いで、物理的検証ツールは、保護のために選択されている規則の少なくとも一部を開示することなく、評価に関する情報をそのツール又は他のツールのユーザに提供することができる。
【００１４】
なお、追加の特徴及び利点は、添付の図面を参照しながら行われる、例示される実施形態の以下の詳細な説明から明らかとなるであろう。
例えば、本発明は以下を提供する。
（項目１）
保護された電子設計自動化情報を電子設計自動化ツールで処理する方法であって、
前記保護された電子設計自動化情報を受信するステップと、
前記保護された電子設計自動化情報にアクセスするステップと、
前記保護された電子設計自動化情報の少なくとも一部を明らかにすることなく、前記保護された電子設計自動化情報の少なくとも一部を処理するステップと、
を含む方法。
（項目２）
項目１に記載の方法であって、
前記保護された電子設計自動化情報にアクセスするための鍵に関する情報を受信するステップを、
更に含む方法。
（項目３）
項目２に記載の方法であって、前記鍵に関する前記情報は、前記保護された電子設計自動化情報と共に受信される、方法。
（項目４）
項目２に記載の方法であって、前記鍵に関する前記情報は、複数の鍵の配列からの１つ又は複数の鍵を示すデータを含む、方法。
（項目５）
項目２に記載の方法であって、前記鍵に関する前記情報は、実際の鍵を示すタグである、方法。
（項目６）
項目２に記載の方法であって、前記鍵に関する前記情報は、隠される、方法。
（項目７）
項目２に記載の方法であって、前記鍵に関する前記情報は、パスワードを使用して保護される、方法。
（項目８）
項目１に記載の方法であって、
前記保護された電子設計自動化情報の処理の結果の少なくとも一部を保護するステップを、
更に含む方法。
（項目９）
項目８に記載の方法であって、
前記保護された電子設計自動化情報の処理の結果の少なくとも一部を明らかにするステップを、
更に含む方法。
（項目１０）
項目１に記載の方法であって、
前記保護された電子設計自動化情報を示す注釈に基づいて、前記保護された電子設計自動化情報を識別するステップを、
更に含む方法。
（項目１１）
項目１に記載の方法であって、前記保護された電子設計自動化情報は、暗号化を介して保護され、前記保護された電子設計自動化情報にアクセスすることは、暗号化解除を含む、方法。
（項目１２）
項目１に記載の方法であって、第１パスワードは、前記電子設計自動化情報を保護するのに使用され、前記保護された電子設計自動化情報を処理することは、ユーザによって与えられた第２パスワードが前記第１パスワードと合致することを検証することを含む、方法。
（項目１３）
項目１に記載の方法であって、前記保護された電子設計自動化情報は、複数の情報源から受信される、方法。
（項目１４）
項目１に記載の方法であって、
前記保護された電子設計自動化情報の少なくとも一部にアクセスするための少なくとも１つの条件が満たされるかどうかを判定するステップを、
更に含む方法。
（項目１５）
項目１４に記載の方法であって、
前記保護された電子設計自動化情報と共に、前記保護された電子設計自動化情報の前記少なくとも一部にアクセスするための前記少なくとも１つの条件に関するデータを受信するステップを、
更に含む方法。
（項目１６）
項目１４に記載の方法であって、前記保護された電子設計自動化情報にアクセスするための前記少なくとも１つの条件は、前記保護された電子設計自動化情報にアクセスすることのできる最大の回数に対応する値を含み、前記少なくとも１つの条件が満たされるかどうかを判定することは、現アクセスの数値を、前記保護された電子設計自動化情報にアクセスすることのできる前記最大の回数と比較することを含む、方法。
（項目１７）
項目１４に記載の方法であって、前記保護された電子設計自動化情報にアクセスするための前記少なくとも１つの条件は、前記保護された電子設計自動化情報にアクセスすることのできる最大の回数に対応する値を含み、前記少なくとも１つの条件が満たされるかどうかを判定することは、前記少なくとも１つの条件が満たされていることの確認を要求するサーバ・コンピュータに対するコール・バック要求を生成することを含む、方法。
（項目１８）
項目１４に記載の方法であって、前記少なくとも１つの条件が満たされるかどうかを判定することは、前記保護された電子設計自動化情報の異なる部分にアクセスするための異なる条件を適用することを含む、方法。
（項目１９）
項目１４に記載の方法であって、前記少なくとも１つの条件が満たされるかどうかを判定することは、前記保護された電子設計自動化情報の前記少なくとも一部にアクセスするために異なるユーザに対して異なる条件を適用することを含む、方法。
（項目２０）
項目１４に記載の方法であって、
前記保護された電子設計自動化情報にアクセスするための鍵に関する情報を、前記保護された電子設計自動化情報の前記少なくとも一部にアクセスするための前記少なくとも１つの条件に関するデータと共に受信するステップを、
更に含む方法。
（項目２１）
項目１４に記載の方法であって、前記保護された電子設計自動化情報にアクセスするための前記少なくとも１つの条件は、満了日を含み、前記少なくとも１つの条件が満たされるかどうかを判定することは、現在日付を前記満了日と比較することを含む、方法。
（項目２２）
項目２１に記載の方法であって、満了日は、月データ、年データ及び時刻データのうちの１つ又は複数を含む、方法。
（項目２３）
項目１に記載の方法であって、
前記電子設計情報の少なくとも一部をさらなる処理のために別のツールに転送するステップを、
更に含む方法。
（項目２４）
電子設計自動化情報の安全な交換のためのシステムであって、
保護された電子設計自動化情報を含むファイルを受信し、
前記ファイル内の前記保護された電子設計自動化情報を求め、
前記保護された電子設計自動化情報にアクセスし、
前記保護された電子設計自動化情報の少なくとも一部を明らかにすることなく、前記保護された電子設計自動化情報の少なくとも一部を処理する
ように動作可能な電子設計自動化ツールを、備えるシステム。
（項目２５）
項目２４に記載のシステムであって、前記ファイル内の前記保護された電子設計自動化情報を求めることは、前記ファイル内に埋め込まれた標識に基づく、システム。
（項目２６）
項目２４に記載のシステムであって、
保護されていない電子設計自動化情報を受信し、
保護されていない電子設計自動化情報を暗号化して、保護された電子設計自動化情報を含む前記ファイルを生成する
ように動作可能な暗号化ツールを、更に備えるシステム。
（項目２７）
項目２６に記載のシステムであって、前記暗号化ツールは更に、前記保護された電子設計自動化情報を含む前記ファイルに標識で注釈を付け、前記ファイル内の前記保護された電子設計自動化情報を示すように動作可能である、システム。
（項目２８）
項目２４に記載のシステムであって、前記電子設計自動化ツールは、物理的検証ツールであり、前記電子設計自動化情報は、集積回路の製造に関する規則を含む、システム。
（項目２９）
項目２８に記載のシステムであって、前記物理的検証ツールは、集積回路レイアウトを受信するように動作可能であり、前記保護された電子設計自動化情報を処理することは、前記集積回路レイアウトの何れかが前記集積回路の製造に関する前記規則の何れかに違反するかどうかを検証することを含む、システム。
（項目３０）
項目２９に記載のシステムであって、前記物理的検証ツールは更に、集積回路の前記製造に関する前記規則の少なくとも一部に違反しない代替集積回路レイアウトを生成するように動作可能である、システム。
（項目３１）
項目２４に記載のシステムであって、前記電子設計ツールは更に、前記保護された電子設計自動化情報の少なくとも一部を明らかにすることなく、前記保護された電子設計自動化情報の処理に関する少なくとも一部の結果を提供するように動作可能である、システム。
（項目３２）
項目２４に記載のシステムであって、前記電子設計自動化ツールは、解像度向上ツールである、システム。
（項目３３）
集積回路の製造に関する規則の安全な交換のための方法であって、
集積回路の製造に関する前記規則に注釈を付け、保護すべき前記規則の部分を選択するステップと、
保護するように選択された前記規則の前記部分を保護し、集積回路の製造に関する保護された規則を生成するステップと、
集積回路の製造に関する前記規則に注釈を付け、集積回路の製造に関する前記保護された規則を含む部分を示すステップと、
集積回路の製造に関する前記保護された規則をロック解除するステップと、
１つ又は複数の集積回路レイアウトに関するデータを受信するステップと、
前記１つ又は複数の集積回路レイアウトが集積回路の製造に関する前記規則の何れかに違反するかどうかを検証するステップと、
前記保護された規則の少なくとも一部を明らかにすることなく、前記検証の結果を示すエラー・レポートを提供するステップと、
を含む方法。
（項目３４）
項目３３に記載の方法であって、集積回路の製造に関する前記規則に注釈を付け、保護すべき集積回路の製造の部分を示すことは、少なくとも１つの標識を追加して、保護すべき前記部分に関する先頭を示すことを含む、方法。
（項目３５）
項目３３に記載の方法であって、集積回路の製造に関する前記規則に注釈を付け、保護すべき集積回路の製造の部分を示すことは、少なくとも１つの標識を追加して、保護すべき前記部分の終りを示すことを含む、方法。
（項目３６）
項目３３に記載の方法であって、保護するように選択された前記規則の前記部分を保護することは、鍵を使用して、前記選択された部分を暗号化することを含み、前記集積回路の製造に関する前記保護された規則は、前記鍵を使用して、前記保護された規則を暗号化解除することを含む、方法。
（項目３７）
項目３３に記載の方法であって、前記エラー・レポートは、違反した規則の実体を明らかにすることなく、違反した規則を一般的用語で指す、方法。
（項目３８）
項目３３に記載の方法であって、
現在の期間が集積回路の製造に関する前記保護された規則を処理することができる持続時間内であるかどうかを判定するステップを、
更に含む方法。
（項目３９）
項目３８に記載の方法であって、現在の期間が集積回路の製造に関する前記保護された規則を処理することができる持続時間内であると判定するまで、集積回路の製造に関する前記保護された規則は、ブロック解除されるが処理されない、方法。
（項目４０）
項目３８に記載の方法であって、現在の期間が集積回路の製造に関する前記保護された規則を処理することができる持続時間内であると判定するまで、集積回路の製造に関する前記保護された規則は、ブロック解除されない、方法。
（項目４１）
項目３８に記載の方法であって、集積回路の製造に関する前記保護された規則を処理することができる前記持続時間は、集積回路の製造に関する前記保護された規則の異なる部分について異なる、方法。
（項目４２）
項目３８に記載の方法であって、集積回路の製造に関する前記保護された規則を処理することができる前記持続時間は、異なるユーザについて異なる、方法。
（項目４３）
項目３８に記載の方法であって、集積回路の製造に関する前記保護された規則を処理することができる前記持続時間は、月データ、年データ及び時刻データのうちの１つ又は複数を含む満了日を含む、方法。
（項目４４）
電子設計自動化情報の安全な交換のためのシステムであって、
保護された電子設計自動化情報を含むファイルを受信し、
前記ファイル内の前記保護された電子設計自動化情報を識別し、
前記ファイル内の前記保護された電子設計自動化情報の少なくとも一部にアクセスするための１つ又は複数の条件が満たされているかどうかを判定し、
前記保護された電子設計自動化情報の少なくとも一部を明らかにすることなく、前記保護された電子設計自動化情報の前記少なくとも一部にアクセスし、前記保護された電子設計自動化情報の前記少なくとも一部を処理する
ように動作可能な電子設計自動化ツールを、含むシステム。
（項目４５）
項目４４に記載のシステムであって、
前記保護された電子設計自動化情報の前記少なくとも一部にアクセスするための１つ又は複数の鍵を前記電子設計自動化ツールに提供し、
前記電子設計自動化ツールからのコール・バックに応答して、前記保護された電子設計自動化情報の前記少なくとも一部にアクセスするための前記１つ又は複数の条件が満たされているかどうかを確認するデータを前記電子設計自動化ツールに提供する
ように動作可能なサーバ・コンピュータを、更に備えるシステム。
【図面の簡単な説明】
【００１５】
【図１】電子設計自動化に関する情報の安全な交換のためのシステムの一実施形態を示すブロック図である。
【図２】電子設計自動化に関する情報を保護する方法の一実施形態を記述するフローチャートである。
【図３】電子設計自動化に関する情報を安全に処理する方法の一実施形態を記述するフローチャートである。
【図４】電子設計自動化に関する保護されない情報を保護する鍵を使用する、電子設計自動化に関する情報の安全な交換のためのシステムの一実施形態を示すブロック図である。
【図５】保護された電子設計自動化情報を含むファイルに埋め込まれた鍵に関する情報を使用する、電子設計自動化に関する情報の安全な交換のためのシステムの一実施形態を示すブロック図である。
【図５Ａ】１つ又は複数の条件が満たされることに基づいて、保護された情報がアクセス可能にされ、処理のために利用可能にされ、又は使用のために利用可能にされる、電子設計自動化に関する情報の安全な交換のためのシステムの一実施形態を示すブロック図である。
【図６】電子設計自動化に関する保護されない情報を保護する鍵及びパスワードを使用する、電子設計自動化に関する情報の安全な交換のためのシステムの一実施形態を示すブロック図である。
【図７】保護のために選択された情報の一部が別のファイルへの参照によって組み込まれる、電子設計自動化に関する情報の安全な交換のためのシステムの一実施形態を示すブロック図である。
【図８】集積回路の製造性を管理する規則に関する情報の安全な交換のためのシステムの一実施形態を示すブロック図である。
【図９】集積回路の製造性を管理する規則に関する情報を安全に交換するために鍵を使用するシステムの一実施形態を示すブロック図である。
【図１０】例示的クライアント・サーバ・ネットワーク環境を示す図である。
【図１１】図１０に示すようなクライアント・サーバ・ネットワークを使用して電子設計自動化情報を安全に交換する例示的方法を示す図である。
【発明を実施するための形態】
【００１６】
開示の発明は、本明細書に記載のシステム及び方法の実施形態のすべての新規であり明白でない特徴及び形態を、単独で、様々な組合せとして、およびそのサブコンビネーションとして含む。実施形態の開示の特徴及び形態を単独で使用することができ、又は様々な新規であり明白でない組合せ及び互いのサブコンビネーションとして使用することができる。
【００１７】
提示の都合上、開示の方法の動作を特定の順序で説明するが、この説明の方式は、特定の順序が以下で述べられる特定の術語で必要とされるのでない限り、再配置を包含することを理解されたい。例えば、順番に説明される動作が、ある場合には再配置されることがあり、又は同時に実施されることがある。更に、話を簡単にするために、開示のフローチャート及びブロック図は、通常、特定の方法を他の方法と共に使用できる様々な方式を示していない。更に、詳細な説明は、開示の方法を説明するのに「判定する（ｄｅｔｅｒｍｉｎｅ）」のような用語を使用することがある。そのような用語は、実施される実際の動作の高レベルの抽象化である。こうした用語に対応する実際の動作は、特定の実装に応じて変化し、当業者は、それを容易に理解することができる。
【００１８】
本明細書に記載の方法の一部は、コンピュータ可読媒体上に格納されたソフトウェアとして実装することができ、コンピュータ上で実行することができる。開示の方法の一部を、例えば電子設計自動化（ＥＤＡ）ツールの一部として実装することができる。そのような方法は、単一のコンピュータ又はネットワーク化されたコンピュータ上で実行することができる。理解しやすいように、こうした開示の方法に関連するソフトウェアの形態のみが、開示される。当技術分野で周知の製品の詳細は、省略される。同じ理由で、コンピュータ・ハードウェアは、詳細には説明されない。
【００１９】
ＥＤＡに関する情報を安全に交換する例示的システムの全体
図１は、ＥＤＡに関する情報を安全に交換する例示的システムを示す。ＥＤＡに関する情報を含む文書１１０は、セキュリティ・ツール１２０（例えば暗号化ツール）で保護することができ、ＥＤＡに関する情報の保護されたバージョンを含む文書１３０が、ＥＤＡツール１４０で処理される前に、作成される。次いで、ＥＤＡツール１４０は、ＥＤＡに関する文書１３０から、保護された情報をロック解除して、処理のためにそれを使用することができ、ＥＤＡツール１４０のユーザが注目する結果１５０を、生成することができる。一実施形態では、ＥＤＡツール１４０は、それ自体でＥＤＡに関する情報１１０を暗号化することができ、又は保護することができる。言い換えれば、保護操作の場所は、特定のシステム実装に適したどんな場所でもよい。更に、あるＥＤＡツール１４０によって保護された情報を、保護された情報の内容を明らかにすることなく、さらなる処理のために別のＥＤＡツールに渡すことができる。
【００２０】
一実施形態では、知的所有権があると指定され、又は保護に値すると指定されたＥＤＡに関する情報を明らかにしないフォーマットで、ＥＤＡ結果１５０をユーザに提供することもできる。例えば、保護された情報を普通なら明らかにする可能性のある結果１５０を、「暗号化済み」として、又はその保護された状況の何らかの他の標識として単に列挙することができる。従って、ＥＤＡツール１４０は、結果１５０の選択された部分を保護して、保護された情報を明らかにすることを回避することができる。更に、保護された情報を普通なら明らかにする可能性のある結果を、限定的な方式（例えば、ＩＣレイアウトが違反した規則についての詳細を明らかにすることなく、特定のＩＣレイアウト内の規則エラーを列挙するなど）で共有することができる。
【００２１】
このようにして、知的所有権（ＩＰ）を含むＥＤＡに関する文書（例えば１１０）を、ある団体の技術者が作成することができ、それを、ＥＤＡ文書１１０内の機密情報を明らかにすることなくＥＤＡツール１４０内で使用するために別の団体の技術者と共有することができる。
【００２２】
ＥＤＡに関する文書を保護する例示的方法の全体
図２は、ＥＤＡに関する文書中の情報を保護する例示的プロセスを示す。２１０では、セキュリティ・ツール（例えば図１の１２０）が、保護すべきＥＤＡに関する文書（例えば図１の１１０）中に含まれるＥＤＡに関する情報を受信することができる。更に２２０では、セキュリティ・ツール（例えば１２０）は、ＥＤＡ文書（例えば１１０）中のＥＤＡに関する情報に適用すべき（例えば暗号化による）保護の範囲及び性質に関する別の命令も受信することができる。例えば、ＥＤＡに関する文書（例えば１１０）全体を、保護に値するものとして、又は保護を必要とするものとして指定する必要はない。従って、ＥＤＡに関する文書（例えば１１０）の選択した部分を保護することができる。従って、セキュリティ・ツール（例えば１２０）は、２２０で、保護すべきＥＤＡに関する文書（例えば１１０）の１つ又は複数の部分を示す命令を受信することができる。こうした命令は、ＥＤＡに関する文書（例えば１１０）を保護することに関する他のデータも含むことができる。例えば、そのような情報は、暗号化のための鍵、パスワードに関するデータ、又はＥＤＡに関する情報を保護するための他のデータを含むことができる。２３０では、ＥＤＡに関する情報が、命令に従って保護される。
【００２３】
一実施形態では、こうした命令は、ＥＤＡに関する文書（例えば１１０）自体の一部でよい。例えば、保護すべき文書の部分を示す命令で、ＥＤＡに関する文書（例えば１１０）自体に注釈を付けることができる。従って、２３０では、セキュリティ・ツール（例えば１２０）は、命令に従って保護するように指定されたＥＤＡに関する文書（例えば１１０）の部分だけを保護することができる。或いは、ＥＤＡに関する情報を保護することに関する命令を、ＥＤＡに関する文書自体（例えば１１０）から分離し、従ってセキュリティ・ツール１２０によって別々に受信することもできる。更に、命令は、セキュリティ・ツール１２０外部から受信されるのではないことがある。その代わりに、命令をセキュリティ・ツール１２０から発信することができる。
【００２４】
保護されたＥＤＡに関する情報をＥＤＡツールで処理する例示的方法
図３は、保護されたＥＤＡに関する情報をＥＤＡツールで処理する例示的方法を示す。３１０では、ＥＤＡツール（例えば図１の１４０）は、ＥＤＡに関する文書（例えば図１の１３０）中の暗号化され、又は保護されたＥＤＡに関する情報を受信する。３２０では、情報を保護するために選ばれた方法に応じて、ＥＤＡツール（例えば図１の１４０）は、鍵、パスワード、又は文書（例えば図１の１３０）中のＥＤＡに関する情報を保護することに関連する他の情報に関するデータも受信することができる。例えば、暗号化を介して保護される情報の場合、鍵、パスワード、ＥＤＡに関する情報を保護することに関する他のデータを受信することができる。３３０では、情報を保護することに関連するこのようなデータを使用して、ＥＤＡに関する文書（例えば１３０）の保護された部分へのアクセスを得ることができる。
【００２５】
一実施形態では、保護されたＥＤＡに関する文書（例えば１３０）の部分へのアクセスは、１つ又は複数の選択された条件が満たされることに依存することができる。例えば、ＥＤＡツール（例えば１４０）は、暗号化され、又は保護されたＥＤＡに関する情報（例えば１３０）をロック解除して、指定の持続時間（例えば、日付及び／又は時刻として指定される）まで使用することができる。アクセスのために満たされるべき条件は、特定の数のアクセスによって指定することもできる。特定の数のアクセスは、時間枠に関係することがあり、又は関係しないことがある。以前のアクセス数又は他の使用数に関するデータと、そのようなアクセス又は使用の日付及び時刻と、そのようなアクセス又は他の使用を実施したものの識別と、他のそのような関連データとは、ＥＤＡツール（例えば１４０）によって維持することができ、又は、コンピュータ・ネットワークを介してＥＤＡツールに接続された別のコンピュータによって、維持及び提供することができる。ネットワーク化されたＥＤＡツールの場合、暗号化された、又は保護されたＥＤＡに関する情報（例えば１３０）をロック解除するための鍵は、ネットワークを介して提供することもできる。
【００２６】
更に、保護されたＥＤＡに関する情報（例えば１３０）の異なる部分にアクセスするのに異なる条件を、要求することができる。更に、保護されたＥＤＡに関する情報（例えば１３０）の異なる部分にアクセスするのに必要な条件は、ＥＤＡツール（例えば１４０）の異なるユーザについて、異なっていてよい。
【００２７】
３４０では、ＥＤＡツール（例えば１４０）は、そのときロック解除されたＥＤＡに関する情報を処理することができ、３５０では、ＥＤＡに関する情報の機密部分（例えば、ＥＤＡツールのユーザから隠すべき保護された情報の部分）を明らかにしないような方式で、処理の結果をユーザに提供することができる。
【００２８】
暗号化解除され、又はロック解除されたＥＤＡに関する情報を、機密のＥＤＡに関する情報を明らかにすることなく、更に処理して他の結果を生成するために他のＥＤＡツールに渡すことができる。あるツールから別のツールに転送されるときに保護される情報は、当初保護された情報と同じでよく、又はそのような情報のサブセット又はスーパーセットでよい。更に、あるＥＤＡツール（例えば図１の１４０）が、保護されるＥＤＡに関する情報（例えば１３０）を処理した結果（例えば１５０）を保護し、保護されたＥＤＡ情報（例えば１３０）を明らかにすることなく、そのような保護した結果（例えば１５０）をさらなる処理のために別のＥＤＡツールに渡すことができる。例えば、ＬＶＳ（ｌａｙｏｕｔ  ｖｅｒｓｕｓ  ｓｃｈｅｍａｔｉｃ）検証のために使用されるＥＤＡツールは、レイアウト及び概略データなどのＥＤＡに関する情報を処理することができ、ネットリストを含む結果を提供することができる。そのような結果を暗号化することができ、又は保護することができ、次いでそれを、保護された情報を明らかにすることなく、さらなる処理のために寄生抽出ツール（ＰＥＴ）などの他のＥＤＡツールに提供することができる。
【００２９】
保護すべきＥＤＡに関する文書中のＥＤＡに関する情報を示す例示的方法
図４は、保護の対象とすべきＥＤＡに関する文書の部分を示す例示的方法を示す。例えば、ＥＤＡに関する文書（ファイル）４１０では、保護すべきＥＤＡに関する情報４１５を、開始タグ（例えば４１６の「＃ＥＮＣＲＹＰＴ」）及び終了タグ（例えば４１７の「＃ＥＮＤＣＲＹＰＴ」）に囲まれた情報として示すことができる。更に、４４０の、暗号化され、又は保護されたＥＤＡ情報を含むＥＤＡに関する文書では、文書４４５の保護された部分も、開始タグ（例えば「ＤＥＣＲＹＰＴ」４４６）及び終了タグ（例えば「ＥＮＤＣＲＹＰＴ」４４７）で示すことができる。これは、暗号化解除、又は保護された情報をロック解除する他の方法をどこで開始し、終了すべきかをＥＤＡツール４５０に示すことができる。そのような術語は、例である。暗号化及び暗号化解除すべき、又は保護及びロック解除すべきコードの区間の開始及び終了を示すのに、他の語又は文字セットを使用することもできる。更に、ＥＤＡに関する文書４１０の複数の部分を保護するために指定することができ、その複数の部分を、異なる開始指定子及び終了指定子、又は同一の開始指定子及び終了指定子の間に配置することができる。他のタグ又は標識も適宜使用することができる。
【００３０】
一実施形態では、そのような明示的な標識が使用されない。例えば、保護すべきＥＤＡに関する文書又は電子ファイルの部分を、その部分がファイルのヘッダ、本文、又は何らかの他の選択された部分に関係するかどうかに基づいて決定することができる。例えば、本文を保護する一方で、ヘッダを保護しないことができる。更に、ユーザ又はツールは、ネットリスト、設計ルール・チェック（ＤＲＣ）、オプティカル・プロセス補正（ＯＰＣ）、その他の適切なＥＤＡ情報などの選択した主題に関するデータを保護すべきであることを指示することができる。保護される情報を暗号化解除し、又はロック解除する場合、システムは、例えば保護ファイル内のすべての判読不能データを暗号化解除し、又はロック解除すべきであることを想定することができる。
【００３１】
保護のための例示的方法
ＥＤＡに関する文書内の情報を保護するのに、幾つかの方法を使用することができる。例えば、暗号化は、そのような１つの方法である。暗号化の場合、ＡＥＳ（ａｄｖａｎｃｅｄ  ｅｎｃｒｙｐｔｉｏｎ  ｓｔａｎｄａｒｄ）などのブロック暗号方法を暗号化ツールで使用することができる。代替暗号化方法は、ＲＳＡ（Ｒｉｖｅｓｔ，Ｓｈａｍｉｒ，  ａｎｄ  Ａｄｅｌｍａｎ）暗号化、ＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）、単純辞書鍵置換、又は他の適切な暗号化方法を含むことができる。しかし、ＥＤＡに関する文書の部分の保護は、暗号化に限定されない。例えば、難読化及び／又は一方向ハッシングを含む他の適切な保護により、保護すべき部分を更に、又は別法として保護することができる。
【００３２】
ＥＤＡに関する情報を保護するプロセスにおける鍵の例示的使用
図４は、ＥＤＡに関する情報を鍵を使用して暗号化するシステム及び方法を示す。図４に示すように、暗号化ツール４３０は、鍵４２０を使用して、ＥＤＡに関する文書４１０に含まれるＥＤＡに関する情報を暗号化することができる。鍵は、例えば暗号化ツール４３０の外部の情報源によって指定することができる。鍵４２０は、暗号化ツール４３０によってランダムに選択することもできる。次いで鍵４２０を、ＥＤＡに関する情報を暗号化解除するのに使用されるＥＤＡツール４５０のユーザに提供することができる。ＥＤＡツール４５０はまた、ＥＤＡツール４５０によって使用される、暗号化解除されたＥＤＡに関する情報の何れも明らかにすることなく、結果４６０を生成することができる。
【００３３】
一実施形態では、鍵４２０の交換は、公開鍵交換でよい。例えば、鍵に関する情報の交換を仲介するのに第３者を使用することができる。鍵４２０の交換は、プライベート交換でもよい。
【００３４】
図５は、鍵を使用してＥＤＡに関する情報を暗号化する更に別の例示的方法を示す。例えば、暗号化ツール５２０は、鍵５３０を使用してＥＤＡに関する情報５１０を暗号化することができる。更に、暗号化に使用される鍵５３０に関する情報５３１を、暗号化されたＥＤＡに関する情報５４０を含むＥＤＡに関する文書５３５内に含めることができる。従って、鍵５３０をパブリックに得る代わりに、団体間の鍵交換は、プライベートでよい。鍵に関する情報５３１自体を難読化し、暗号化し、パスワード保護し、又はそれに適切な保護を与えることができる。保護されたＥＤＡ情報を暗号化解除するために、ＥＤＡツール５５０はまず、保護された鍵に関する情報５３１へのアクセスを得る必要がある。次いで、ＥＤＡツール５５０は、鍵に関する情報５３１の保護されていないバージョンを使用して、鍵５３０を得、処理のために、暗号化されたＥＤＡに関する情報５４０を暗号化解除することができる。更に、鍵に関する情報５３１は、鍵自体を含むことができる。
【００３５】
鍵５３０は、暗号化ツール５２０のユーザが指定することができる。或いは、鍵は、暗号化ツール５２０によって、ランダムに選択することもできる。暗号化ツール５２０は、暗号化ツール５２０がそれに対するアクセスを有するマスタ鍵の配列から鍵５３０を選択することができる。或いは、ＥＤＡツール５５０は、保護されたＥＤＡ文書５３５をロック解除するために、鍵に関する情報５３１をマスタ鍵の配列内の１つ又は複数の鍵と突き合わせることもできる。
【００３６】
ＥＤＡに関する情報を保護するための、鍵及びパスワードの例示的使用  或いは、図６に示すように、鍵６２０に加えて、パスワード６４０を、ＥＤＡに関する情報６１５の暗号化で使用することができる。一実施形態では、ＥＤＡツール６６０によって受信される、暗号化されたＥＤＡに関する情報６５０と共に、パスワードを埋め込むことができる。次いでそれをＥＤＡツール６６０で暗号化解除し、ユーザに結果６７０を提供する前に、ユーザが入力したパスワード６６５と突き合わせることができる。更に、ＥＤＡツール６６０は、ユーザから得られるパスワード６６５と、６４０で暗号化されたＥＤＡに関する情報６５０と共に得られたパスワードとが合致しない限り、暗号化解除されたＥＤＡに関する情報を処理することさえしないことがある。
【００３７】
或いは、パスワード６４０を使用して、暗号化されたＥＤＡに関する情報６５０と共に埋め込まれた鍵に関する情報６５１を暗号化、難読化、保護、又は変更することができる。次いで、ＥＤＡツール６６０は、ＥＤＡ情報と共に埋め込まれた鍵に関する情報６５１を暗号化解除することを試みる前に、ＥＤＡツール６６０のユーザがＥＤＡツール６６０にパスワード６６５を与えることを要求することができる。更に、鍵自体をパスワード６４０で暗号化、難読化、又は保護することができる。
【００３８】
保護されたＥＤＡに関する情報の使用を可能にする１つ又は複数の条件を指定する例示的方法
前述のように、鍵又はパスワード或いはそれらの組合せの使用を介して、保護されたＥＤＡに関する情報（例えば図１の１３０）に、アクセスすることができる。一実施形態では、保護されたＥＤＡに関する情報のアクセス可能性は、１つ又は複数の条件を満たすことに依存することができる。例えば、図５Ａに示すように、ＥＤＡに関する情報５１０を保護する鍵データ５３０に加えて、保護されたＥＤＡに関する情報５４０にアクセスするために満たすべき１つ又は複数の条件５３２も指定することができる。
【００３９】
一例として、そのような条件データ５３２を、保護されたＥＤＡに関する情報５４０と共にＥＤＡツール（例えば５５０）に提供することができる。例えば、クライアント・サーバ・ネットワークでは、ＥＤＡツール（例えば５５０）は、そのような条件データ５３２（例えば、幾つかの許可されたアクセスと、幾つかの以前のアクセスと、アクセスを許可すべきものの識別データと、以前のアクセスの日付及び時刻）を、ネットワークに接続された１つ又は複数のコンピュータに要求し、その１つ又は複数のコンピュータから受信することができる。クライアント・サーバ・ネットワークの一実施形態では、ＥＤＡツール（例えば５５０）は、クライアントでよく、そのコール・バック要求に応答するネットワーク・コンピュータは、そのような１つ又は複数のクライアントからの要求に応答してデータを提供することのできるサーバ・コンピュータでよい。
【００４０】
或いは、条件データ５３２の少なくとも一部（例えば、以前のアクセス・カウント、並びにそのようなアクセスの日付及び時刻）を、ＥＤＡツール５５０によって計算し、ローカルに維持することができる。そのような条件データ５３２のデータ源の如何に関わらず、ＥＤＡツールは、条件５３２が満たされていることを検証したときに、保護されたＥＤＡ情報５４０に（例えば、鍵５３０を用いた暗号化解除を介して）アクセスすることができる。上述のように、別法として、アクセス又は他の使用に関する１つ又は複数の条件が満たされているかどうかの確認を、クライアント・サーバ・ネットワークの別のコンピュータからＥＤＡツール５５０に提供することができる。更に、ＥＤＡツール（例えば５５０）は、アクセスに関する１つ又は複数の条件が満たされていることの確認と共に、保護されたデータをロック解除するための鍵を受信することができる。
【００４１】
例えば、１つ又は複数の条件５３２が、指定の満了日より前の、保護されたＥＤＡ情報５４０へのアクセスに関係する場合、ＥＤＡツール（例えば５５０）は、現在日付（例えば、現アクセスが要求されている日付）を検証し、現在日付と（例えば、条件データ５３２として提供される）満了日と比較し、現在日付が（例えば、５３２で指定された）満了日以前である場合、保護されたＥＤＡ情報５４０にアクセスすることができる。或いは、満了日と全く合致する日付にアクセスを限定することもできる。満了日は、年と、月と、日と、時刻のうちの１つ又は複数によって指定することができる。
【００４２】
別の例では、アクセス５３２のための条件が、日付に関係せず、その代わりに、鍵５３０を介して達成すべき保護されたデータ５４０への最大アクセス数と関係することがある。例えば、条件５３２は、鍵５３０を使用して保護されたデータに最大回数（例えば１０）を超えてアクセスされていない場合、ＥＤＡツール５５０がそのようなデータにアクセスできることを指定することができる。更に、アクセスのための条件５３２は、許可された最大アクセス数と満了日の組合せでよい。更に、保護されたＥＤＡに関する情報５４０の異なる部分へのアクセスは、異なる条件が満たされることに基づくことができる。例えば、データの異なる部分は、異なる時間枠中にアクセス可能である。更に、ＥＤＡツール５５０の異なるユーザについて異なる条件５３２を指定することができる。
【００４３】
別法として、アクセスのための条件が満たされているかどうかの検証は、クライアント・サーバ・ネットワーク内のサーバ・コンピュータによって実施することができる。検証の結果は、さらなる処理のためにＥＤＡツール（例えば５５０）に提供することができる。
【００４４】
更に、一実施形態では、選択された条件５３２に基づいて制限されるのは、保護されたＥＤＡに関する情報５４０へのアクセスではないことがあり、その代わりに、ＥＤＡツール５５０が保護されたＥＤＡデータ５４０を処理又は使用して、そのようなデータを処理した結果５６０を生成又は解放するのを制限するように条件５３２を使用することができる。
【００４５】
ＥＤＡに関する文書内で参照されるファイル内のＥＤＡに関する情報を暗号化する例示的方法
ある場合には、ＥＤＡに関する文書は、別のファイルに含まれる情報を参照することができ、又はそれに依拠することができる。例えば、図７に示すように、ファイル「Ａ」７１０、即ちファイル「Ａ」７１５内に格納される任意の情報を、ＥＤＡに関する文書７１０内で参照することができる。例えば、そのようなファイルが、暗号化７２０のために選択されたＥＤＡに関する情報内で参照される場合、「＃ＩＮＣＬＵＤＥ」命令７２１などの命令によって暗号化ツール７２５を起動して、７２０でファイル７１５にアクセスし、それを暗号化のために指定された他のＥＤＡに関する情報と共に暗号化することができる。「ＩＮＣＬＵＤＥ」命令は、例示的構文である。同じ結果を達成するために他の構文も使用することができる。他のファイル及びその中に含まれる任意の情報を同様に暗号化することができ、このようにして、複数のファイル源からの複数のファイルを保護及び処理することができる。
【００４６】
ＩＣ製造に関するＥＤＡ情報を暗号化するシステム及び方法の例示的実施形態
団体間のＥＤＡに関する情報の安全な交換に関する上述の方法の１つの特定の応用例は、あるＩＣレイアウトの製造性を特定の製造業者（例えばファウンドリ）の制約に基づいて求めるための情報の交換に関する。図８は、所与の集積回路（ＩＣ）レイアウトの製造性を求める１つのそのような方法の一実施形態を示すブロック図である。ＩＣ製造業者（例えばファウンドリ）は、異なるＩＣレイアウトに適用される幾つかの製造上の制約を有する可能性がある。工程技術者などの技術者は、その製造業者に特有の制約に関する情報を含む制約の文書８１０を作成することがある。制約の文書８１０は、その特定の制約制約を更に記述する規則デック又は規則ファイル８２０（例えばＡＳＣＩＩファイル）に組み込むことができる。規則ファイルはまた、画像、１組の設計データ・ベース・オブジェクト、規則の概略表現などの情報も含むことができる。次いで、規則ファイル８２０を、物理的検証ツール８３０（例えば、Ｍｅｎｔｏｒ  Ｇｒａｐｈｉｃｓ  Ｃｏｒｐ．のＣａｌｉｂｒｅ（商標）ツール）などのＥＤＡツールと共に使用して、（例えば、ＧＤＳＩＩ、ＯｐｅｎＡｃｃｅｓｓ、Ｍｉｌｋｙｗａｙなどのファイル・タイプで記述された）初期ＩＣレイアウト８４０が製造業者の制約に違反するかどうかを判定することができる。従って、物理的検証ツール８３０を使用して、初期ＩＣレイアウト８４０が製造可能であるか否かを判定することができる。
【００４７】
図示する実施形態では、物理的検証ツール８３０は、初期ＩＣレイアウト８４０を読み取り、規則ファイル８２０を使用して、初期ＩＣレイアウト８４０が規則ファイル８２０内の制約の何れかに違反するかどうかを判定する。物理的検証ツール８３０は、レイアウト中で生じたエラーの記録、並びにツール自体の動作に関する情報（例えば、ツールがその検証を実行するのに必要な時間又はメモリの量）を含む結果ファイル８５０を提供することができる。物理的検証ツール８３０はまた、設計技術者が使用するために選ぶことができ、又はＩＣの製造に関して評価することのできる製造可能なＩＣレイアウト８６０（例えば、制約に違反しないレイアウト）を提供することができる。初期ＩＣレイアウト８４０が制約の何れにも違反しない場合、製造可能ＩＣレイアウト８６０は、初期ＩＣレイアウト８４０だけを含むことができる。しかし初期ＩＣレイアウト８４０が少なくとも１つの制約に違反する場合、製造可能ＩＣレイアウト８６０は、レイアウトが製造可能となる変更の提案を含むことができる。
【００４８】
しかし、製造業者は、知的所有権（例えば１つ又は複数の業務上の秘密）と考えられる独自の情報を含む所与の規則ファイル（例えば規則ファイル８２０）を明らかにすることを望まないことがある。これは、例えば、規則ファイル８２０を書く人が、規則ファイル８２０を使用する物理的検証ツール８３０を実行する人と同じではないことがあるからである（例えば設計技術者）。それでも、製造業者がその製造業者に特有の制約の少なくとも一部を詳述する何らかのものを技術者に提供して、規則ファイル全体が明らかにされない場合であっても、所与のＩＣレイアウトがその製造業者で製造可能かどうかを設計技術者が判定できるようにすることが、しばしば望ましい。
【００４９】
図９は、規則ファイルを安全に交換するシステムの例示的実施形態を示すブロック図である。規則ファイル９１０は、ある製造業者に特有の制約に関する情報を含むことができる。１つの特定の実施形態では、規則ファイル９１０が、ＳＶＲＦ（Ｓｔａｎｄａｒｄ  Ｖｅｒｉｆｉｃａｔｉｏｎ  Ｒｕｌｅｓ  Ｆｏｒｍａｔ）などの周知のフォーマットで書き込まれる。規則ファイル９１０は、規則ファイル９１０を受信する人が誰であってもその人に発見されることを製造業者が望まない知的所有権情報を含むことができる。規則ファイル９１０は、製造業者がそれほど問題としない、知的所有権のある、又は知的所有権のない他の情報も含むことができる。保護すべき規則（例えば、製造業者がトランスクリプト中で見られることを望まない規則）は、例えば、層生成コマンド、ＤＲＣ（ｄｅｓｉｇｎ−ｒｕｌｅ−ｃｈｅｃｋｉｎｇ）チェック、ＬＶＳ（ｌａｙｏｕｔ−ｖｓ．−ｓｃｈｅｍａｔｉｃ）デバイス・ステートメント、ｉｎ−ｆｉｌｅ  ＬＩＴＨＯオペレーション、ｏｐｔｉｃａｌ−ａｎｄ−ｐｒｏｃｅｓｓ−ｃｏｒｒｅｃｔｉｏｎ  ｏｐｅｒａｔｉｏｎ（例えば、ＴＤＯＰＣオペレーション及びＯＰＣＳｂａｒオペレーション）、ＰＥＸ（ｐａｒａｓｉｔｉｃ−ｅｘｔｒａｃｔｉｏｎ）ステートメント、又はＦＲＡＣＴＵＲＥコマンドを含むことができる。これは網羅的なリストではない。製造業者は、本開示に従って、このより高度な保護のために任意の情報を選択する（又はソフトウェアが選択することを可能にする）ことができるからである。
【００５０】
上述のように、このような非常に知的所有権規則のある情報を含む規則ファイル９１０の部分、又は保護するように試みられるファイルの任意の１つ又は複数の区間を、規則ファイル９１０中の第１の組の指定のキーワード間に配置することができる。例えば、１つの特定の実施形態では、そのようなキーワードは、保護すべき区間の先頭を示す「＃ＥＮＣＲＹＰＴ」と、保護すべき区間の終りを示す「＃ＥＮＤＣＲＹＰＴ」でよい。次いで、修正後規則ファイル９１０を暗号化ツール９２０で処理することができる。暗号化ツール９２０は、暗号化プロセスによって「＃ＥＮＣＲＹＰＴ」と「＃ＥＮＤＣＲＹＰＴ」の間のファイルの部分を保護することができ、その結果、暗号化規則ファイル９３０が得られる。一実施形態では、暗号化規則ファイル９３０は、「＃ＤＥＣＲＹＰＴ」と「＃ＥＮＤＣＲＹＰＴ」などの第２の組の指定のキーワード間の暗号化部分を含むことができる。他の非暗号化情報も規則ファイル９１０内に含まれることが望ましく、その場合、暗号化規則ファイル９３０は部分的にのみ暗号化される。
【００５１】
この実施形態では、任意選択の鍵９１５が、暗号化プロセスで使用される。任意選択の鍵９１５は、例えば秘密鍵でよい。１つの特定の実施形態では、ユーザが、暗号化プロセスで使用される鍵９１５を選択する。代替実施形態では、鍵９１５が、暗号化ツール９２０によってランダムに選択される。暗号化ツール９２０は、暗号化ツール９２０が使用するために鍵９１５をそこから選択するマスタ鍵の配列を含むことができ、又はそれに対するアクセスを有することができる。或いは、ユーザは、鍵９１５の代わりに、又は鍵９１５と共に使用されるパスワードを選ぶこともできる。そのようなパスワードは、９３５のファイルの暗号化部分に埋め込むことができ、例えば難読化によって保護することができる。或いは、マスタ鍵を変更するのにパスワードを使用することもできる。
【００５２】
暗号化された、又は部分的に暗号化された規則ファイル９３５を初期ＩＣレイアウト９４０と共に入力として、処理のために物理的検証ツール９５０に提供することができる。一実施形態では、物理的検証ツール９５０は、物理的検証ツール９５０のユーザに暗号化解除区間を完全に明らかにすることなく、第２の組の指定のキーワード（例えば「＃ＤＥＣＲＹＰＴ」及び「＃ＥＮＤＣＲＹＰＴ」）間の暗号化規則ファイル９３０の区間９３５を暗号化解除し、処理する。暗号化解除は、例えば物理的検証ツール９５０の実行時メモリ空間内で行うことができる。
【００５３】
ＥＤＡツールによる処理の結果に含まれるＥＤＡ情報を保護する例示的方法
図１を参照すると、ＥＤＡに関する文書１１０内に含まれ、ＥＤＡに関するツール１４０で使用される前に暗号化によって保護されるＥＤＡに関する情報は、結果１５０を介してＥＤＡツール１４０のユーザに開示される場合、その保護を失う可能性がある。従って、一実施形態では、機密と指定されたＥＤＡに関する情報を含む結果１５０ファイルの部分を不明瞭にすることができ、暗号化することができ、又は何らかの機密のＥＤＡに関する情報についてユーザが知ることを防止するように変更することができる。例えば、図９で説明したＩＣレイアウト９４０に関する実装について、物理的検証ツール９５０は、保護された規則９３０に関する完全なトランスクリプトを生成しないことがある。その代わりに、物理的検証ツール９５０は、規則ファイル９３５の保護された部分が開示されないように、保護された規則ファイル９３０の部分的なトランスクリプトだけを結果９６０として生成することができる。
【００５４】
物理的検証ツール９５０は、他のＥＤＡに関する情報を結果９６０として提供することができ、可能なら、任意選択で、製造可能なＩＣレイアウト９７０を提供することができる。更に、或いは別法として、そのような情報をデータベースに記録することができる。規則ファイル９１０中の制約の違反に関するエラー情報を様々な方式で通信することができる。１つの特定の実施形態では、規則ファイル９３５の保護された部分に関するエラー情報は、ファイルの残りの部分に関するエラー情報とは異なる方式で処理される。例えば、ファイル９３５の保護された部分に関するエラー情報を限定することができ、一方、ファイルの残りの部分に関するエラー情報をより詳細に説明することができる。一実施形態では、規則ファイル９３５の保護された部分に関するエラー情報は、単に、初期ＩＣレイアウト９４０中にいくつのエラーが存在するかを記述する。
【００５５】
例えば、その他の方法で列挙された規則を結果ファイル９６０中で単に「Ｅｎｃｒｙｐｔｅｄ」と示すことができる。別の実施形態では、保護された部分に関するエラー情報は、少なくとも１つのタイプのエラーを、例えば２つの構成要素が近づき過ぎていることを示すような、一般的用語で記述する。代替実施形態では、保護された部分に関するエラー情報は、少なくとも１つのタイプのエラーを、例えばどの２つの構成要素が近づき過ぎており、どの位置であるかを詳述するような、特定の用語で記述する。
【００５６】
例示的ＥＤＡツール及びＥＤＡに関する情報
上記の例の一部（例えば図９）は、物理的検証ツールで使用されるＩＣ規則ファイルの交換を例示することによってＥＤＡに関する情報の安全な交換の方法及びシステムを論じている。しかし、規則ファイルを使用した物理的検証は、開示の方法を使用することのできるＥＤＡ応用例の１タイプに過ぎない。他のＥＤＡ応用例は（限定はしないが）、ＬＶＳ（ｌａｙｏｕｔ  ｖｅｒｓｕｓ  ｓｃｈｅｍａｔｉｃ  ｖｅｒｉｆｉｃａｔｉｏｎ）、寄生抽出フロー（例えばレイアウト寄生抽出（ＬＰＥ））を生成すること、及び解像度向上技術（ＲＥＴ）に関するツールを適用することなどの用途を含む。合成ツール、エミュレーション・ツール、シミュレーション・ツールなどの他のツールも、本明細書に記載の方法及びシステムを使用して、安全にＥＤＡに関する情報を使用することができる。
【００５７】
安全な方式で保護及び処理すべきＥＤＡに関する情報は、ＤＦＭ（ｄｅｓｉｇｎ  ｆｏｒ  ｍａｎｕｆａｃｔｕｒｅ）プロセス、方法、システム、及びツールに関する任意の情報を含むことができる。更に、規則ファイルに加えて、開示の原理を使用して保護することができる他のＥＤＡに関する情報は（限定はしないが）、Ｏａｓｉｓと、Ｓｐｉｃｅ  ｎｅｔ  ｌｉｓｔと、ＶＨＤＬと、及びＶｅｒｉｌｏｇを含む。本明細書に記載のプロセス、方法、システム、ツールは、保護及び処理すべき情報及びツールの性質によってどんな形にも限定されない。
【００５８】
分散ネットワーク環境内の例示的実装
上述の技術の諸形態の何れも、分散コンピュータ・ネットワークを使用して実施又は設計することができる。図１０にそのような例示的ネットワークを示す。サーバ・コンピュータ１０００は、関連する記憶装置１００２（サーバ・コンピュータの内部また外部）を有することができる。例えば、サーバ・コンピュータ１０００は、上述の実施形態の何れかを（例えばＥＤＡソフトウェア・ツールの一部として）使用して、回路設計に関するＥＤＡ情報を処理するように構成することができる。サーバ・コンピュータ１０００は、１００４で全般的に示されるネットワークに結合することができ、ネットワークは、例えば、広域ネットワーク、ローカル・エリア・ネットワーク、クライアント・サーバ・ネットワーク、インターネット、及びその他のそのようなネットワークを含むことができる。１００６、１００８に示すような１つ又は複数のクライアント・コンピュータは、ネットワーク・プロトコルを使用してネットワーク１００４に結合することができる。
【００５９】
図１１は、クライアント・コンピュータ（例えば１００６及び１００８）が、図１０に示すサーバ・コンピュータ１０００などのリモート・サーバ・コンピュータを使用して、本明細書で開示される実施形態の何れかによるＥＤＡに関する情報（例えばＩＣ規則ファイル）の安全な処理に関する結果（例えば、規則ファイルに関するエラーと、選択された規則に違反する代替ＩＣ設計レイアウト）を受信することを示す。プロセス・ブロック１１５０では、例えば、クライアント・コンピュータは、ＥＤＡに関するデータを送信する。例えば、クライアント・コンピュータは、設計データベースから規則ファイルと、提案される１つ又は複数のＩＣ設計レイアウトと、その他のＥＤＡ情報とを送信することができる。プロセス・ブロック１１５２では、開示の実施形態の何れかに従って、データが、サーバ・コンピュータによって受信され、保護される。或いは、クライアント・コンピュータは、処理すべきＥＤＡ情報を保護して、そのような保護されたＥＤＡ情報を処理のためにサーバに送信することもできる。
【００６０】
プロセス・ブロック１１５４では、ＥＤＡに関する情報が、開示の実施形態の何れかに従って処理される。プロセス・ブロック１１５６では、サーバ・コンピュータが、結果（例えば、規則ファイルに関するエラーと、選択された規則に違反しない代替ＩＣ設計レイアウト）をクライアント・コンピュータに送信し、プロセス・ブロック１１５８では、クライアント・コンピュータが、データベースを受信する。図１１に示す例は、ＥＤＡに関する情報を保護し、保護されたＥＤＡに関する情報を処理し、保護されたＥＤＡに関する情報を明らかにすることなくそのような処理結果を共有する唯一の方法ではないことは当業者には明らかであろう。例えば、ＥＤＡに関する情報（例えば規則ファイル）を送信するクライアント・コンピュータは、結果を受信するクライアントと同一ではないことがある。更に、ＥＤＡに関する情報を、ネットワーク上にはなく、サーバに別々に送られるコンピュータ可読媒体に格納することができる。或いは、サーバ・コンピュータは、設計手順の一部だけを実行することができる。
【００６１】
例示された実施形態を参照しながら本発明の原理を説明し、例示したが、そのような原理から逸脱することなく、例示された実施形態の構成及び細部を変更できることを理解されよう。例えば、ファイルは、ＥＤＡに関する情報を含む、複数の個々に保護されたファイルが含まれるマスタ・ファイルを含むことができる。従って、設計フロー中の複数のＩＣ製造業者又は他の第３者が、一定の知的所有権情報を明らかにすることなく、規則ファイルに寄与し、規則ファイルを使用し、かつ／又は規則ファイルを共有することができる。
【００６２】
ソフトウェアとして示した図示される実施形態の要素は、ハードウェアと実装することができ、逆も同様である。更に、任意の実施例からの技術を、他の実施例のうちの任意の１つ又は複数に記載の技術と組み合わせることができる。従って、例えば、物理的検証のための規則ファイルの処理を保護することに関する本明細書に記載の任意の方法、プロセス、システム、又はツールを、他のＥＤＡに関するツールでの他のＥＤＡの用途に関する他のＥＤＡに関する情報と共に使用することができる。本発明の原理を適用することができる多くの可能な実施形態に鑑みて、例示された実施形態は本発明の例であり、本発明の範囲に関する制限とみなすべきでないことを理解されたい。例えば、本明細書に記載のシステム及びツールの様々な構成要素を、機能及び用途の点で組み合わせることができる。従って、特許請求の範囲の範囲及び精神に含まれるすべての主題を本発明として主張する。
【図１】
2010282643.tif 000003
【図２】
2010282643.tif 000004
【図３】
2010282643.tif 000005
【図４】
2010282643.tif 000006
【図５】
2010282643.tif 000007
【図５Ａ】
2010282643.tif 000008
【図６】
2010282643.tif 000009
【図７】
2010282643.tif 000010
【図８】
2010282643.tif 000011
【図９】
2010282643.tif 000012
【図１０】
2010282643.tif 000013
【図１１】
2010282643.tif 000014