電子設計自動化における情報の安全な交換
電子設計自動化に関する情報を、安全に交換することができる。機密であるとみなされる情報、又は保護する価値があるとみなされる情報を、暗号化、難読化、その他のセキュリティ処置などの方法によって、保護することができる。保護された情報は、保護された情報の少なくとも一部を明らかにすることなく処理することができる。例えば、集積回路製造性に関する規則ファイルに選択的に注釈を付け、保護に値する規則ファイルの部分を示すことができる。暗号化ツールを使用して、電子設計自動化に関する情報を保護することができる。次いで、電子設計自動化ツールは、保護された情報を明らかにすることなく、それをロック解除し、使用することができる。一形態では、そのようなアクセス又は情報の安全な使用は、1つ又は複数の条件が満たされること(例えば、時間枠、幾つかの使用又はアクセス)に依存することができる。例えば、ツールは、1つ又は複数の集積回路レイアウトのうちの何れかが保護された規則のうちの1つ又は複数に違反する可能性があるかどうかを検証することのできる物理的検証ツールでよい。
【発明の詳細な説明】
【技術分野】
【0001】
技術分野は、電子設計自動化に関連する。より詳細には、技術分野は、電子設計自動化に関する情報の安全な交換の方法に関連する。
(関連出願の相互参照)
本願は、参照によりそのすべてが本明細書に組み込まれる、発明者John G.Ferguson、Fedor G.Pikus、Kyohei Sakajiri、及びLaurence W.Groddによる「Secure Transfer of Rule Files」という名称の2003年9月26日提出の米国仮出願60/506,190号の特典を主張する、共にやはり発明者John G.Ferguson、Fedor G.Pikus、Kyohei Sakajiri、及びLaurence W.Groddによる「Secure Exchange of Information in Electronic Design Automation」という名称の出願である、2004年7月20日提出の米国特許出願10/895,485号の一部継続出願である2004年8月17日提出の米国特許出願第10/920,988号に対する優先権を主張するものである。
【背景技術】
【0002】
回路を含む現代の電子システムは、ますます複雑になりつつある。従って、こうした複雑なシステムを設計及び製造することが、ますます特殊な技術及び能力を必要とする可能性があることは、驚くべきことではない。こうした技術及び能力がより特殊化されるにつれて、そのような電子システムを首尾よく設計及び製造するのに必要なエンジニアリングを完成するために、幾つかの異なる団体からの技術者の共同作業が、必要となることがある。場合によっては、ある団体が、特定の必要を満たすために外部組織(例えばベンダ)の特殊な技術及び能力に依拠することになる可能性もある。
【0003】
例えば、近頃は、電子システム設計者が自分の電子システムの製造又は組立てを、製造を専門に扱う他の企業に外注することは、一般的なことである。こうしたシナリオでは、団体は、そのパートナ団体との間で電子設計自動化(EDA)に関する情報を交換し、それでもなお、その業務上の秘密、能力、技術などがそのようなパートナ団体にどの程度明らかにされる可能性があるかに関しての制御を維持するための、信頼性が高く安全な方法を必要とすることがある。
【0004】
1つの特定の例では、ある団体によって設計されたシステム・オンチップ(SOC)をカスタム集積回路(IC)製造業者によって製造させる必要があることがある。こうした製造業者に関連するファウンドリ企業は、通常、設計技術者によって選択された特定のICレイアウトを実際にファウンドリ企業で製造できるかどうかに関する影響を有する可能性のある(例えば製造上の)制約を有する。こうした制約は、一般に、そのような通信のために選択されたフォーマットの規則として表現される(例えばStandard Verification Rules Format(SVRF))。そのような規則を含むファイルは、規則ファイルと呼ばれることがある。規則ファイル中に表現される制約は、特定のファウンドリ企業の能力と、業務上の秘密と、ファウンドリ企業が一定の相手に対して明らかにすることを望まない他の機密情報とに関する情報を含むことができる。しかし、例えば、そのような情報は、選択したファウンドリ企業で規則に準拠するICレイアウトを製造できるようにそのようなレイアウトを設計するのに有用であることがある。
【0005】
従って、EDAツールで使用するために団体間での情報に関するEDAの安全な交換を可能にし、それによって各団体が知的所有権があるとみなす情報(例えば、業務上の秘密や他の機密情報)へのアクセスを制御することのできるシステム及び方法が、求められている。
【発明の開示】
【課題を解決するための手段】
【0006】
(概要)
電子設計自動化に関する情報の安全な交換のための方法及びシステムが、本明細書で説明される。一形態では、電子設計自動化に関する情報は、暗号化と、パスワード保護と、難読化(obfuscation)と、他のセキュリティ処置とによって保護することができる。別の形態では、電子設計自動化に関する情報に注釈を付け、電子設計自動化に関する保護された情報を含む電子設計自動化に関する情報の部分を示すことができる。
【0007】
更に別の形態では、電子設計自動化ツールは、電子設計自動化に関する情報の保護された部分を示すように注釈が付けられた電子設計自動化に関する情報を受信することができる。そのような情報電子設計自動化ツールを受信した際に、電子設計自動化に関する保護された情報を含む情報の部分を識別し、保護された情報を処理のためにロック解除することができる。一形態では、電子設計自動化ツールは、保護された情報の少なくとも一部を無許可の人、ツール、システムに明らかにすることなく、保護された電子設計自動化情報を処理することができ、そうでない場合、保護された情報の保護を損なう可能性がある。
【0008】
別の形態では、指定の持続時間又は期間にアクセスを要求することなどの1つ又は複数の条件が満たされることに基づいて、保護された電子設計自動化情報を処理し、アクセスし、又は使用することができる。持続時間又は期間は満了日によって定義することができる。満了日は、年と、月と、日と、時刻によるものでよい。保護された情報にアクセスし、又は使用するための1つ又は複数の条件は、幾つかのアクセス、又は保護された電子設計自動化情報の使用によって指定することもできる。
【0009】
継続するアクセス又は保護された電子設計自動化情報の使用に関する条件が幾つかの以前のアクセス又はそのようなデータの使用に依存する場合、その条件を幾つかの異なる方式で実施することができる。例えば、クライアント・サーバ・ネットワークでは、保護されたデータにアクセスし、又はそれを使用することを試みるクライアント・コンピュータが、保護された電子設計自動化情報の以前のアクセス又は使用に関するデータと共に、ネットワーク内のサーバ位置からデータにアクセスするのに必要な鍵を得ることができる。例えば、以前のアクセス数、そのようなアクセスの日付及び時刻、アクセスの要求側の識別などのデータを提供することができる。次いで、クライアント・コンピュータは、保護された電子設計自動化情報にアクセスし、それを処理し、又は使用することを可能にするために、そのようなデータを使用して、選択した条件が満たされているかどうかを判定することができる。
【0010】
更に別の形態では、保護された電子設計自動化情報を含むファイル内で、保護された電子設計自動化情報にアクセスし、それを処理し、又は使用するための条件を指定することができる。更に、保護された電子設計自動化情報の異なる部分に対して異なる条件を使用することができる。更に、条件は、ユーザの識別に基づいて異なっていてよい。
【0011】
別の形態では、1つ又は複数の鍵を使用する暗号化方法によって電子設計自動化に関する情報を保護することができる。情報を保護するのに使用される鍵に関する情報を、プライベート又はパブリックにパーティ間で交換することができる。一形態では、電子設計自動化に関する保護される情報を保護した個人又はパーティ、或いは電子設計自動化に関する保護された情報を提供している個人又はパーティは、保護される情報と共に鍵に関する情報を共有することができる。次いで、電子設計自動化ツールは、鍵に関する情報を使用して、保護された情報を処理のためにロック解除することができる。別の形態では、鍵と共にパスワードを使用して、電子設計自動化に関する情報を保護することができる。鍵、パスワード、又は他のセキュリティ機構をユーザ指定することもできる。そのようなセキュリティ処置を暗号化ツール、電子設計自動化ツール、又は何らかの他のツールで選択することもできる。
【0012】
一形態では、電子設計自動化ツールは、電子設計自動化に関する情報を安全に処理することができ、そのような処理の結果の少なくとも一部を保護することもできる。そのような保護された結果を、保護された結果の少なくとも一部を明らかにすることなく、さらなる処理のために他の電子設計自動化ツールに提供することができる。更に、あるツールが、保護された電子設計自動化に関する情報の少なくとも一部をロック解除し、情報を処理し、さらなる処理のために情報の少なくとも一部を別の電子設計自動化ツールに渡すことができる。別の実施形態では、第1電子設計自動化ツールは、電子設計自動化に関する情報の少なくとも一部をさらなる処理のために別の電子設計自動化ツールに転送する前に、それを再び保護することができる。
【0013】
更に別の形態では、電子設計自動化に関する保護された情報は、集積回路の製造性に関する規則を含むことができる。一形態では、そのような規則の選択された部分を保護し、物理的検証ツールなどの電子設計自動化ツールに提供することができる。電子設計自動化ツールは、その規則を使用して、システム設計に関する1つ又は複数の集積回路レイアウトが違反する可能性があるかどうかを検証することができる。次いで、物理的検証ツールは、保護のために選択されている規則の少なくとも一部を開示することなく、評価に関する情報をそのツール又は他のツールのユーザに提供することができる。
【0014】
なお、追加の特徴及び利点は、添付の図面を参照しながら行われる、例示される実施形態の以下の詳細な説明から明らかとなるであろう。
【発明を実施するための最良の形態】
【0015】
開示の発明は、本明細書に記載のシステム及び方法の実施形態のすべての新規であり明白でない特徴及び形態を、単独で、様々な組合せとして、およびそのサブコンビネーションとして含む。実施形態の開示の特徴及び形態を単独で使用することができ、又は様々な新規であり明白でない組合せ及び互いのサブコンビネーションとして使用することができる。
【0016】
提示の都合上、開示の方法の動作を特定の順序で説明するが、この説明の方式は、特定の順序が以下で述べられる特定の術語で必要とされるのでない限り、再配置を包含することを理解されたい。例えば、順番に説明される動作が、ある場合には再配置されることがあり、又は同時に実施されることがある。更に、話を簡単にするために、開示のフローチャート及びブロック図は、通常、特定の方法を他の方法と共に使用できる様々な方式を示していない。更に、詳細な説明は、開示の方法を説明するのに「判定する(determine)」のような用語を使用することがある。そのような用語は、実施される実際の動作の高レベルの抽象化である。こうした用語に対応する実際の動作は、特定の実装に応じて変化し、当業者は、それを容易に理解することができる。
【0017】
本明細書に記載の方法の一部は、コンピュータ可読媒体上に格納されたソフトウェアとして実装することができ、コンピュータ上で実行することができる。開示の方法の一部を、例えば電子設計自動化(EDA)ツールの一部として実装することができる。そのような方法は、単一のコンピュータ又はネットワーク化されたコンピュータ上で実行することができる。理解しやすいように、こうした開示の方法に関連するソフトウェアの形態のみが、開示される。当技術分野で周知の製品の詳細は、省略される。同じ理由で、コンピュータ・ハードウェアは、詳細には説明されない。
【0018】
EDAに関する情報を安全に交換する例示的システムの全体
図1は、EDAに関する情報を安全に交換する例示的システムを示す。EDAに関する情報を含む文書110は、セキュリティ・ツール120(例えば暗号化ツール)で保護することができ、EDAに関する情報の保護されたバージョンを含む文書130が、EDAツール140で処理される前に、作成される。次いで、EDAツール140は、EDAに関する文書130から、保護された情報をロック解除して、処理のためにそれを使用することができ、EDAツール140のユーザが注目する結果150を、生成することができる。一実施形態では、EDAツール140は、それ自体でEDAに関する情報110を暗号化することができ、又は保護することができる。言い換えれば、保護操作の場所は、特定のシステム実装に適したどんな場所でもよい。更に、あるEDAツール140によって保護された情報を、保護された情報の内容を明らかにすることなく、さらなる処理のために別のEDAツールに渡すことができる。
【0019】
一実施形態では、知的所有権があると指定され、又は保護に値すると指定されたEDAに関する情報を明らかにしないフォーマットで、EDA結果150をユーザに提供することもできる。例えば、保護された情報を普通なら明らかにする可能性のある結果150を、「暗号化済み」として、又はその保護された状況の何らかの他の標識として単に列挙することができる。従って、EDAツール140は、結果150の選択された部分を保護して、保護された情報を明らかにすることを回避することができる。更に、保護された情報を普通なら明らかにする可能性のある結果を、限定的な方式(例えば、ICレイアウトが違反した規則についての詳細を明らかにすることなく、特定のICレイアウト内の規則エラーを列挙するなど)で共有することができる。
【0020】
このようにして、知的所有権(IP)を含むEDAに関する文書(例えば110)を、ある団体の技術者が作成することができ、それを、EDA文書110内の機密情報を明らかにすることなくEDAツール140内で使用するために別の団体の技術者と共有することができる。
【0021】
EDAに関する文書を保護する例示的方法の全体
図2は、EDAに関する文書中の情報を保護する例示的プロセスを示す。210では、セキュリティ・ツール(例えば図1の120)が、保護すべきEDAに関する文書(例えば図1の110)中に含まれるEDAに関する情報を受信することができる。更に220では、セキュリティ・ツール(例えば120)は、EDA文書(例えば110)中のEDAに関する情報に適用すべき(例えば暗号化による)保護の範囲及び性質に関する別の命令も受信することができる。例えば、EDAに関する文書(例えば110)全体を、保護に値するものとして、又は保護を必要とするものとして指定する必要はない。従って、EDAに関する文書(例えば110)の選択した部分を保護することができる。従って、セキュリティ・ツール(例えば120)は、220で、保護すべきEDAに関する文書(例えば110)の1つ又は複数の部分を示す命令を受信することができる。こうした命令は、EDAに関する文書(例えば110)を保護することに関する他のデータも含むことができる。例えば、そのような情報は、暗号化のための鍵、パスワードに関するデータ、又はEDAに関する情報を保護するための他のデータを含むことができる。230では、EDAに関する情報が、命令に従って保護される。
【0022】
一実施形態では、こうした命令は、EDAに関する文書(例えば110)自体の一部でよい。例えば、保護すべき文書の部分を示す命令で、EDAに関する文書(例えば110)自体に注釈を付けることができる。従って、230では、セキュリティ・ツール(例えば120)は、命令に従って保護するように指定されたEDAに関する文書(例えば110)の部分だけを保護することができる。或いは、EDAに関する情報を保護することに関する命令を、EDAに関する文書自体(例えば110)から分離し、従ってセキュリティ・ツール120によって別々に受信することもできる。更に、命令は、セキュリティ・ツール120外部から受信されるのではないことがある。その代わりに、命令をセキュリティ・ツール120から発信することができる。
【0023】
保護されたEDAに関する情報をEDAツールで処理する例示的方法
図3は、保護されたEDAに関する情報をEDAツールで処理する例示的方法を示す。310では、EDAツール(例えば図1の140)は、EDAに関する文書(例えば図1の130)中の暗号化され、又は保護されたEDAに関する情報を受信する。320では、情報を保護するために選ばれた方法に応じて、EDAツール(例えば図1の140)は、鍵、パスワード、又は文書(例えば図1の130)中のEDAに関する情報を保護することに関連する他の情報に関するデータも受信することができる。例えば、暗号化を介して保護される情報の場合、鍵、パスワード、EDAに関する情報を保護することに関する他のデータを受信することができる。330では、情報を保護することに関連するこのようなデータを使用して、EDAに関する文書(例えば130)の保護された部分へのアクセスを得ることができる。
【0024】
一実施形態では、保護されたEDAに関する文書(例えば130)の部分へのアクセスは、1つ又は複数の選択された条件が満たされることに依存することができる。例えば、EDAツール(例えば140)は、暗号化され、又は保護されたEDAに関する情報(例えば130)をロック解除して、指定の持続時間(例えば、日付及び/又は時刻として指定される)まで使用することができる。アクセスのために満たされるべき条件は、特定の数のアクセスによって指定することもできる。特定の数のアクセスは、時間枠に関係することがあり、又は関係しないことがある。以前のアクセス数又は他の使用数に関するデータと、そのようなアクセス又は使用の日付及び時刻と、そのようなアクセス又は他の使用を実施したものの識別と、他のそのような関連データとは、EDAツール(例えば140)によって維持することができ、又は、コンピュータ・ネットワークを介してEDAツールに接続された別のコンピュータによって、維持及び提供することができる。ネットワーク化されたEDAツールの場合、暗号化された、又は保護されたEDAに関する情報(例えば130)をロック解除するための鍵は、ネットワークを介して提供することもできる。
【0025】
更に、保護されたEDAに関する情報(例えば130)の異なる部分にアクセスするのに異なる条件を、要求することができる。更に、保護されたEDAに関する情報(例えば130)の異なる部分にアクセスするのに必要な条件は、EDAツール(例えば140)の異なるユーザについて、異なっていてよい。
【0026】
340では、EDAツール(例えば140)は、そのときロック解除されたEDAに関する情報を処理することができ、350では、EDAに関する情報の機密部分(例えば、EDAツールのユーザから隠すべき保護された情報の部分)を明らかにしないような方式で、処理の結果をユーザに提供することができる。
【0027】
暗号化解除され、又はロック解除されたEDAに関する情報を、機密のEDAに関する情報を明らかにすることなく、更に処理して他の結果を生成するために他のEDAツールに渡すことができる。あるツールから別のツールに転送されるときに保護される情報は、当初保護された情報と同じでよく、又はそのような情報のサブセット又はスーパーセットでよい。更に、あるEDAツール(例えば図1の140)が、保護されるEDAに関する情報(例えば130)を処理した結果(例えば150)を保護し、保護されたEDA情報(例えば130)を明らかにすることなく、そのような保護した結果(例えば150)をさらなる処理のために別のEDAツールに渡すことができる。例えば、LVS(layout versus schematic)検証のために使用されるEDAツールは、レイアウト及び概略データなどのEDAに関する情報を処理することができ、ネットリストを含む結果を提供することができる。そのような結果を暗号化することができ、又は保護することができ、次いでそれを、保護された情報を明らかにすることなく、さらなる処理のために寄生抽出ツール(PET)などの他のEDAツールに提供することができる。
【0028】
保護すべきEDAに関する文書中のEDAに関する情報を示す例示的方法
図4は、保護の対象とすべきEDAに関する文書の部分を示す例示的方法を示す。例えば、EDAに関する文書(ファイル)410では、保護すべきEDAに関する情報415を、開始タグ(例えば416の「#ENCRYPT」)及び終了タグ(例えば417の「#ENDCRYPT」)に囲まれた情報として示すことができる。更に、440の、暗号化され、又は保護されたEDA情報を含むEDAに関する文書では、文書445の保護された部分も、開始タグ(例えば「DECRYPT」446)及び終了タグ(例えば「ENDCRYPT」447)で示すことができる。これは、暗号化解除、又は保護された情報をロック解除する他の方法をどこで開始し、終了すべきかをEDAツール450に示すことができる。そのような術語は、例である。暗号化及び暗号化解除すべき、又は保護及びロック解除すべきコードの区間の開始及び終了を示すのに、他の語又は文字セットを使用することもできる。更に、EDAに関する文書410の複数の部分を保護するために指定することができ、その複数の部分を、異なる開始指定子及び終了指定子、又は同一の開始指定子及び終了指定子の間に配置することができる。他のタグ又は標識も適宜使用することができる。
【0029】
一実施形態では、そのような明示的な標識が使用されない。例えば、保護すべきEDAに関する文書又は電子ファイルの部分を、その部分がファイルのヘッダ、本文、又は何らかの他の選択された部分に関係するかどうかに基づいて決定することができる。例えば、本文を保護する一方で、ヘッダを保護しないことができる。更に、ユーザ又はツールは、ネットリスト、設計ルール・チェック(DRC)、オプティカル・プロセス補正(OPC)、その他の適切なEDA情報などの選択した主題に関するデータを保護すべきであることを指示することができる。保護される情報を暗号化解除し、又はロック解除する場合、システムは、例えば保護ファイル内のすべての判読不能データを暗号化解除し、又はロック解除すべきであることを想定することができる。
【0030】
保護のための例示的方法
EDAに関する文書内の情報を保護するのに、幾つかの方法を使用することができる。例えば、暗号化は、そのような1つの方法である。暗号化の場合、AES(advanced encryption standard)などのブロック暗号方法を暗号化ツールで使用することができる。代替暗号化方法は、RSA(Rivest,Shamir, and Adelman)暗号化、DES(Data Encryption Standard)、単純辞書鍵置換、又は他の適切な暗号化方法を含むことができる。しかし、EDAに関する文書の部分の保護は、暗号化に限定されない。例えば、難読化及び/又は一方向ハッシングを含む他の適切な保護により、保護すべき部分を更に、又は別法として保護することができる。
【0031】
EDAに関する情報を保護するプロセスにおける鍵の例示的使用
図4は、EDAに関する情報を鍵を使用して暗号化するシステム及び方法を示す。図4に示すように、暗号化ツール430は、鍵420を使用して、EDAに関する文書410に含まれるEDAに関する情報を暗号化することができる。鍵は、例えば暗号化ツール430の外部の情報源によって指定することができる。鍵420は、暗号化ツール430によってランダムに選択することもできる。次いで鍵420を、EDAに関する情報を暗号化解除するのに使用されるEDAツール450のユーザに提供することができる。EDAツール450はまた、EDAツール450によって使用される、暗号化解除されたEDAに関する情報の何れも明らかにすることなく、結果460を生成することができる。
【0032】
一実施形態では、鍵420の交換は、公開鍵交換でよい。例えば、鍵に関する情報の交換を仲介するのに第3者を使用することができる。鍵420の交換は、プライベート交換でもよい。
【0033】
図5は、鍵を使用してEDAに関する情報を暗号化する更に別の例示的方法を示す。例えば、暗号化ツール520は、鍵530を使用してEDAに関する情報510を暗号化することができる。更に、暗号化に使用される鍵530に関する情報531を、暗号化されたEDAに関する情報540を含むEDAに関する文書535内に含めることができる。従って、鍵530をパブリックに得る代わりに、団体間の鍵交換は、プライベートでよい。鍵に関する情報531自体を難読化し、暗号化し、パスワード保護し、又はそれに適切な保護を与えることができる。保護されたEDA情報を暗号化解除するために、EDAツール550はまず、保護された鍵に関する情報531へのアクセスを得る必要がある。次いで、EDAツール550は、鍵に関する情報531の保護されていないバージョンを使用して、鍵530を得、処理のために、暗号化されたEDAに関する情報540を暗号化解除することができる。更に、鍵に関する情報531は、鍵自体を含むことができる。
【0034】
鍵530は、暗号化ツール520のユーザが指定することができる。或いは、鍵は、暗号化ツール520によって、ランダムに選択することもできる。暗号化ツール520は、暗号化ツール520がそれに対するアクセスを有するマスタ鍵の配列から鍵530を選択することができる。或いは、EDAツール550は、保護されたEDA文書535をロック解除するために、鍵に関する情報531をマスタ鍵の配列内の1つ又は複数の鍵と突き合わせることもできる。
【0035】
EDAに関する情報を保護するための、鍵及びパスワードの例示的使用
或いは、図6に示すように、鍵620に加えて、パスワード640を、EDAに関する情報615の暗号化で使用することができる。一実施形態では、EDAツール660によって受信される、暗号化されたEDAに関する情報650と共に、パスワードを埋め込むことができる。次いでそれをEDAツール660で暗号化解除し、ユーザに結果670を提供する前に、ユーザが入力したパスワード665と突き合わせることができる。更に、EDAツール660は、ユーザから得られるパスワード665と、640で暗号化されたEDAに関する情報650と共に得られたパスワードとが合致しない限り、暗号化解除されたEDAに関する情報を処理することさえしないことがある。
【0036】
或いは、パスワード640を使用して、暗号化されたEDAに関する情報650と共に埋め込まれた鍵に関する情報651を暗号化、難読化、保護、又は変更することができる。次いで、EDAツール660は、EDA情報と共に埋め込まれた鍵に関する情報651を暗号化解除することを試みる前に、EDAツール660のユーザがEDAツール660にパスワード665を与えることを要求することができる。更に、鍵自体をパスワード640で暗号化、難読化、又は保護することができる。
【0037】
保護されたEDAに関する情報の使用を可能にする1つ又は複数の条件を指定する例示的方法
前述のように、鍵又はパスワード或いはそれらの組合せの使用を介して、保護されたEDAに関する情報(例えば図1の130)に、アクセスすることができる。一実施形態では、保護されたEDAに関する情報のアクセス可能性は、1つ又は複数の条件を満たすことに依存することができる。例えば、図5Aに示すように、EDAに関する情報510を保護する鍵データ530に加えて、保護されたEDAに関する情報540にアクセスするために満たすべき1つ又は複数の条件532も指定することができる。
【0038】
一例として、そのような条件データ532を、保護されたEDAに関する情報540と共にEDAツール(例えば550)に提供することができる。例えば、クライアント・サーバ・ネットワークでは、EDAツール(例えば550)は、そのような条件データ532(例えば、幾つかの許可されたアクセスと、幾つかの以前のアクセスと、アクセスを許可すべきものの識別データと、以前のアクセスの日付及び時刻)を、ネットワークに接続された1つ又は複数のコンピュータに要求し、その1つ又は複数のコンピュータから受信することができる。クライアント・サーバ・ネットワークの一実施形態では、EDAツール(例えば550)は、クライアントでよく、そのコール・バック要求に応答するネットワーク・コンピュータは、そのような1つ又は複数のクライアントからの要求に応答してデータを提供することのできるサーバ・コンピュータでよい。
【0039】
或いは、条件データ532の少なくとも一部(例えば、以前のアクセス・カウント、並びにそのようなアクセスの日付及び時刻)を、EDAツール550によって計算し、ローカルに維持することができる。そのような条件データ532のデータ源の如何に関わらず、EDAツールは、条件532が満たされていることを検証したときに、保護されたEDA情報540に(例えば、鍵530を用いた暗号化解除を介して)アクセスすることができる。上述のように、別法として、アクセス又は他の使用に関する1つ又は複数の条件が満たされているかどうかの確認を、クライアント・サーバ・ネットワークの別のコンピュータからEDAツール550に提供することができる。更に、EDAツール(例えば550)は、アクセスに関する1つ又は複数の条件が満たされていることの確認と共に、保護されたデータをロック解除するための鍵を受信することができる。
【0040】
例えば、1つ又は複数の条件532が、指定の満了日より前の、保護されたEDA情報540へのアクセスに関係する場合、EDAツール(例えば550)は、現在日付(例えば、現アクセスが要求されている日付)を検証し、現在日付と(例えば、条件データ532として提供される)満了日と比較し、現在日付が(例えば、532で指定された)満了日以前である場合、保護されたEDA情報540にアクセスすることができる。或いは、満了日と全く合致する日付にアクセスを限定することもできる。満了日は、年と、月と、日と、時刻のうちの1つ又は複数によって指定することができる。
【0041】
別の例では、アクセス532のための条件が、日付に関係せず、その代わりに、鍵530を介して達成すべき保護されたデータ540への最大アクセス数と関係することがある。例えば、条件532は、鍵530を使用して保護されたデータに最大回数(例えば10)を超えてアクセスされていない場合、EDAツール550がそのようなデータにアクセスできることを指定することができる。更に、アクセスのための条件532は、許可された最大アクセス数と満了日の組合せでよい。更に、保護されたEDAに関する情報540の異なる部分へのアクセスは、異なる条件が満たされることに基づくことができる。例えば、データの異なる部分は、異なる時間枠中にアクセス可能である。更に、EDAツール550の異なるユーザについて異なる条件532を指定することができる。
【0042】
別法として、アクセスのための条件が満たされているかどうかの検証は、クライアント・サーバ・ネットワーク内のサーバ・コンピュータによって実施することができる。検証の結果は、さらなる処理のためにEDAツール(例えば550)に提供することができる。
【0043】
更に、一実施形態では、選択された条件532に基づいて制限されるのは、保護されたEDAに関する情報540へのアクセスではないことがあり、その代わりに、EDAツール550が保護されたEDAデータ540を処理又は使用して、そのようなデータを処理した結果560を生成又は解放するのを制限するように条件532を使用することができる。
【0044】
EDAに関する文書内で参照されるファイル内のEDAに関する情報を暗号化する例示的方法
ある場合には、EDAに関する文書は、別のファイルに含まれる情報を参照することができ、又はそれに依拠することができる。例えば、図7に示すように、ファイル「A」710、即ちファイル「A」715内に格納される任意の情報を、EDAに関する文書710内で参照することができる。例えば、そのようなファイルが、暗号化720のために選択されたEDAに関する情報内で参照される場合、「#INCLUDE」命令721などの命令によって暗号化ツール725を起動して、720でファイル715にアクセスし、それを暗号化のために指定された他のEDAに関する情報と共に暗号化することができる。「INCLUDE」命令は、例示的構文である。同じ結果を達成するために他の構文も使用することができる。他のファイル及びその中に含まれる任意の情報を同様に暗号化することができ、このようにして、複数のファイル源からの複数のファイルを保護及び処理することができる。
【0045】
IC製造に関するEDA情報を暗号化するシステム及び方法の例示的実施形態
団体間のEDAに関する情報の安全な交換に関する上述の方法の1つの特定の応用例は、あるICレイアウトの製造性を特定の製造業者(例えばファウンドリ)の制約に基づいて求めるための情報の交換に関する。図8は、所与の集積回路(IC)レイアウトの製造性を求める1つのそのような方法の一実施形態を示すブロック図である。IC製造業者(例えばファウンドリ)は、異なるICレイアウトに適用される幾つかの製造上の制約を有する可能性がある。工程技術者などの技術者は、その製造業者に特有の制約に関する情報を含む制約の文書810を作成することがある。制約の文書810は、その特定の制約制約を更に記述する規則デック又は規則ファイル820(例えばASCIIファイル)に組み込むことができる。規則ファイルはまた、画像、1組の設計データ・ベース・オブジェクト、規則の概略表現などの情報も含むことができる。次いで、規則ファイル820を、物理的検証ツール830(例えば、Mentor Graphics Corp.のCalibre(商標)ツール)などのEDAツールと共に使用して、(例えば、GDSII、OpenAccess、Milkywayなどのファイル・タイプで記述された)初期ICレイアウト840が製造業者の制約に違反するかどうかを判定することができる。従って、物理的検証ツール830を使用して、初期ICレイアウト840が製造可能であるか否かを判定することができる。
【0046】
図示する実施形態では、物理的検証ツール830は、初期ICレイアウト840を読み取り、規則ファイル820を使用して、初期ICレイアウト840が規則ファイル820内の制約の何れかに違反するかどうかを判定する。物理的検証ツール830は、レイアウト中で生じたエラーの記録、並びにツール自体の動作に関する情報(例えば、ツールがその検証を実行するのに必要な時間又はメモリの量)を含む結果ファイル850を提供することができる。物理的検証ツール830はまた、設計技術者が使用するために選ぶことができ、又はICの製造に関して評価することのできる製造可能なICレイアウト860(例えば、制約に違反しないレイアウト)を提供することができる。初期ICレイアウト840が制約の何れにも違反しない場合、製造可能ICレイアウト860は、初期ICレイアウト840だけを含むことができる。しかし初期ICレイアウト840が少なくとも1つの制約に違反する場合、製造可能ICレイアウト860は、レイアウトが製造可能となる変更の提案を含むことができる。
【0047】
しかし、製造業者は、知的所有権(例えば1つ又は複数の業務上の秘密)と考えられる独自の情報を含む所与の規則ファイル(例えば規則ファイル820)を明らかにすることを望まないことがある。これは、例えば、規則ファイル820を書く人が、規則ファイル820を使用する物理的検証ツール830を実行する人と同じではないことがあるからである(例えば設計技術者)。それでも、製造業者がその製造業者に特有の制約の少なくとも一部を詳述する何らかのものを技術者に提供して、規則ファイル全体が明らかにされない場合であっても、所与のICレイアウトがその製造業者で製造可能かどうかを設計技術者が判定できるようにすることが、しばしば望ましい。
【0048】
図9は、規則ファイルを安全に交換するシステムの例示的実施形態を示すブロック図である。規則ファイル910は、ある製造業者に特有の制約に関する情報を含むことができる。1つの特定の実施形態では、規則ファイル910が、SVRF(Standard Verification Rules Format)などの周知のフォーマットで書き込まれる。規則ファイル910は、規則ファイル910を受信する人が誰であってもその人に発見されることを製造業者が望まない知的所有権情報を含むことができる。規則ファイル910は、製造業者がそれほど問題としない、知的所有権のある、又は知的所有権のない他の情報も含むことができる。保護すべき規則(例えば、製造業者がトランスクリプト中で見られることを望まない規則)は、例えば、層生成コマンド、DRC(design−rule−checking)チェック、LVS(layout−vs.−schematic)デバイス・ステートメント、in−file LITHOオペレーション、optical−and−process−correction operation(例えば、TDOPCオペレーション及びOPCSbarオペレーション)、PEX(parasitic−extraction)ステートメント、又はFRACTUREコマンドを含むことができる。これは網羅的なリストではない。製造業者は、本開示に従って、このより高度な保護のために任意の情報を選択する(又はソフトウェアが選択することを可能にする)ことができるからである。
【0049】
上述のように、このような非常に知的所有権規則のある情報を含む規則ファイル910の部分、又は保護するように試みられるファイルの任意の1つ又は複数の区間を、規則ファイル910中の第1の組の指定のキーワード間に配置することができる。例えば、1つの特定の実施形態では、そのようなキーワードは、保護すべき区間の先頭を示す「#ENCRYPT」と、保護すべき区間の終りを示す「#ENDCRYPT」でよい。次いで、修正後規則ファイル910を暗号化ツール920で処理することができる。暗号化ツール920は、暗号化プロセスによって「#ENCRYPT」と「#ENDCRYPT」の間のファイルの部分を保護することができ、その結果、暗号化規則ファイル930が得られる。一実施形態では、暗号化規則ファイル930は、「#DECRYPT」と「#ENDCRYPT」などの第2の組の指定のキーワード間の暗号化部分を含むことができる。他の非暗号化情報も規則ファイル910内に含まれることが望ましく、その場合、暗号化規則ファイル930は部分的にのみ暗号化される。
【0050】
この実施形態では、任意選択の鍵915が、暗号化プロセスで使用される。任意選択の鍵915は、例えば秘密鍵でよい。1つの特定の実施形態では、ユーザが、暗号化プロセスで使用される鍵915を選択する。代替実施形態では、鍵915が、暗号化ツール920によってランダムに選択される。暗号化ツール920は、暗号化ツール920が使用するために鍵915をそこから選択するマスタ鍵の配列を含むことができ、又はそれに対するアクセスを有することができる。或いは、ユーザは、鍵915の代わりに、又は鍵915と共に使用されるパスワードを選ぶこともできる。そのようなパスワードは、935のファイルの暗号化部分に埋め込むことができ、例えば難読化によって保護することができる。或いは、マスタ鍵を変更するのにパスワードを使用することもできる。
【0051】
暗号化された、又は部分的に暗号化された規則ファイル935を初期ICレイアウト940と共に入力として、処理のために物理的検証ツール950に提供することができる。一実施形態では、物理的検証ツール950は、物理的検証ツール950のユーザに暗号化解除区間を完全に明らかにすることなく、第2の組の指定のキーワード(例えば「#DECRYPT」及び「#ENDCRYPT」)間の暗号化規則ファイル930の区間935を暗号化解除し、処理する。暗号化解除は、例えば物理的検証ツール950の実行時メモリ空間内で行うことができる。
【0052】
EDAツールによる処理の結果に含まれるEDA情報を保護する例示的方法
図1を参照すると、EDAに関する文書110内に含まれ、EDAに関するツール140で使用される前に暗号化によって保護されるEDAに関する情報は、結果150を介してEDAツール140のユーザに開示される場合、その保護を失う可能性がある。従って、一実施形態では、機密と指定されたEDAに関する情報を含む結果150ファイルの部分を不明瞭にすることができ、暗号化することができ、又は何らかの機密のEDAに関する情報についてユーザが知ることを防止するように変更することができる。例えば、図9で説明したICレイアウト940に関する実装について、物理的検証ツール950は、保護された規則930に関する完全なトランスクリプトを生成しないことがある。その代わりに、物理的検証ツール950は、規則ファイル935の保護された部分が開示されないように、保護された規則ファイル930の部分的なトランスクリプトだけを結果960として生成することができる。
【0053】
物理的検証ツール950は、他のEDAに関する情報を結果960として提供することができ、可能なら、任意選択で、製造可能なICレイアウト970を提供することができる。更に、或いは別法として、そのような情報をデータベースに記録することができる。規則ファイル910中の制約の違反に関するエラー情報を様々な方式で通信することができる。1つの特定の実施形態では、規則ファイル935の保護された部分に関するエラー情報は、ファイルの残りの部分に関するエラー情報とは異なる方式で処理される。例えば、ファイル935の保護された部分に関するエラー情報を限定することができ、一方、ファイルの残りの部分に関するエラー情報をより詳細に説明することができる。一実施形態では、規則ファイル935の保護された部分に関するエラー情報は、単に、初期ICレイアウト940中にいくつのエラーが存在するかを記述する。
【0054】
例えば、その他の方法で列挙された規則を結果ファイル960中で単に「Encrypted」と示すことができる。別の実施形態では、保護された部分に関するエラー情報は、少なくとも1つのタイプのエラーを、例えば2つの構成要素が近づき過ぎていることを示すような、一般的用語で記述する。代替実施形態では、保護された部分に関するエラー情報は、少なくとも1つのタイプのエラーを、例えばどの2つの構成要素が近づき過ぎており、どの位置であるかを詳述するような、特定の用語で記述する。
【0055】
例示的EDAツール及びEDAに関する情報
上記の例の一部(例えば図9)は、物理的検証ツールで使用されるIC規則ファイルの交換を例示することによってEDAに関する情報の安全な交換の方法及びシステムを論じている。しかし、規則ファイルを使用した物理的検証は、開示の方法を使用することのできるEDA応用例の1タイプに過ぎない。他のEDA応用例は(限定はしないが)、LVS(layout versus schematic verification)、寄生抽出フロー(例えばレイアウト寄生抽出(LPE))を生成すること、及び解像度向上技術(RET)に関するツールを適用することなどの用途を含む。合成ツール、エミュレーション・ツール、シミュレーション・ツールなどの他のツールも、本明細書に記載の方法及びシステムを使用して、安全にEDAに関する情報を使用することができる。
【0056】
安全な方式で保護及び処理すべきEDAに関する情報は、DFM(design for manufacture)プロセス、方法、システム、及びツールに関する任意の情報を含むことができる。更に、規則ファイルに加えて、開示の原理を使用して保護することができる他のEDAに関する情報は(限定はしないが)、Oasisと、Spice net listと、VHDLと、及びVerilogを含む。本明細書に記載のプロセス、方法、システム、ツールは、保護及び処理すべき情報及びツールの性質によってどんな形にも限定されない。
【0057】
分散ネットワーク環境内の例示的実装
上述の技術の諸形態の何れも、分散コンピュータ・ネットワークを使用して実施又は設計することができる。図10にそのような例示的ネットワークを示す。サーバ・コンピュータ1000は、関連する記憶装置1002(サーバ・コンピュータの内部また外部)を有することができる。例えば、サーバ・コンピュータ1000は、上述の実施形態の何れかを(例えばEDAソフトウェア・ツールの一部として)使用して、回路設計に関するEDA情報を処理するように構成することができる。サーバ・コンピュータ1000は、1004で全般的に示されるネットワークに結合することができ、ネットワークは、例えば、広域ネットワーク、ローカル・エリア・ネットワーク、クライアント・サーバ・ネットワーク、インターネット、及びその他のそのようなネットワークを含むことができる。1006、1008に示すような1つ又は複数のクライアント・コンピュータは、ネットワーク・プロトコルを使用してネットワーク1004に結合することができる。
【0058】
図11は、クライアント・コンピュータ(例えば1006及び1008)が、図10に示すサーバ・コンピュータ1000などのリモート・サーバ・コンピュータを使用して、本明細書で開示される実施形態の何れかによるEDAに関する情報(例えばIC規則ファイル)の安全な処理に関する結果(例えば、規則ファイルに関するエラーと、選択された規則に違反する代替IC設計レイアウト)を受信することを示す。プロセス・ブロック1150では、例えば、クライアント・コンピュータは、EDAに関するデータを送信する。例えば、クライアント・コンピュータは、設計データベースから規則ファイルと、提案される1つ又は複数のIC設計レイアウトと、その他のEDA情報とを送信することができる。プロセス・ブロック1152では、開示の実施形態の何れかに従って、データが、サーバ・コンピュータによって受信され、保護される。或いは、クライアント・コンピュータは、処理すべきEDA情報を保護して、そのような保護されたEDA情報を処理のためにサーバに送信することもできる。
【0059】
プロセス・ブロック1154では、EDAに関する情報が、開示の実施形態の何れかに従って処理される。プロセス・ブロック1156では、サーバ・コンピュータが、結果(例えば、規則ファイルに関するエラーと、選択された規則に違反しない代替IC設計レイアウト)をクライアント・コンピュータに送信し、プロセス・ブロック1158では、クライアント・コンピュータが、データベースを受信する。図11に示す例は、EDAに関する情報を保護し、保護されたEDAに関する情報を処理し、保護されたEDAに関する情報を明らかにすることなくそのような処理結果を共有する唯一の方法ではないことは当業者には明らかであろう。例えば、EDAに関する情報(例えば規則ファイル)を送信するクライアント・コンピュータは、結果を受信するクライアントと同一ではないことがある。更に、EDAに関する情報を、ネットワーク上にはなく、サーバに別々に送られるコンピュータ可読媒体に格納することができる。或いは、サーバ・コンピュータは、設計手順の一部だけを実行することができる。
【0060】
例示された実施形態を参照しながら本発明の原理を説明し、例示したが、そのような原理から逸脱することなく、例示された実施形態の構成及び細部を変更できることを理解されよう。例えば、ファイルは、EDAに関する情報を含む、複数の個々に保護されたファイルが含まれるマスタ・ファイルを含むことができる。従って、設計フロー中の複数のIC製造業者又は他の第3者が、一定の知的所有権情報を明らかにすることなく、規則ファイルに寄与し、規則ファイルを使用し、かつ/又は規則ファイルを共有することができる。
【0061】
ソフトウェアとして示した図示される実施形態の要素は、ハードウェアと実装することができ、逆も同様である。更に、任意の実施例からの技術を、他の実施例のうちの任意の1つ又は複数に記載の技術と組み合わせることができる。従って、例えば、物理的検証のための規則ファイルの処理を保護することに関する本明細書に記載の任意の方法、プロセス、システム、又はツールを、他のEDAに関するツールでの他のEDAの用途に関する他のEDAに関する情報と共に使用することができる。本発明の原理を適用することができる多くの可能な実施形態に鑑みて、例示された実施形態は本発明の例であり、本発明の範囲に関する制限とみなすべきでないことを理解されたい。例えば、本明細書に記載のシステム及びツールの様々な構成要素を、機能及び用途の点で組み合わせることができる。従って、特許請求の範囲の範囲及び精神に含まれるすべての主題を本発明として主張する。
【図面の簡単な説明】
【0062】
【図1】電子設計自動化に関する情報の安全な交換のためのシステムの一実施形態を示すブロック図である。
【図2】電子設計自動化に関する情報を保護する方法の一実施形態を記述するフローチャートである。
【図3】電子設計自動化に関する情報を安全に処理する方法の一実施形態を記述するフローチャートである。
【図4】電子設計自動化に関する保護されない情報を保護する鍵を使用する、電子設計自動化に関する情報の安全な交換のためのシステムの一実施形態を示すブロック図である。
【図5】保護された電子設計自動化情報を含むファイルに埋め込まれた鍵に関する情報を使用する、電子設計自動化に関する情報の安全な交換のためのシステムの一実施形態を示すブロック図である。
【図5A】1つ又は複数の条件が満たされることに基づいて、保護された情報がアクセス可能にされ、処理のために利用可能にされ、又は使用のために利用可能にされる、電子設計自動化に関する情報の安全な交換のためのシステムの一実施形態を示すブロック図である。
【図6】電子設計自動化に関する保護されない情報を保護する鍵及びパスワードを使用する、電子設計自動化に関する情報の安全な交換のためのシステムの一実施形態を示すブロック図である。
【図7】保護のために選択された情報の一部が別のファイルへの参照によって組み込まれる、電子設計自動化に関する情報の安全な交換のためのシステムの一実施形態を示すブロック図である。
【図8】集積回路の製造性を管理する規則に関する情報の安全な交換のためのシステムの一実施形態を示すブロック図である。
【図9】集積回路の製造性を管理する規則に関する情報を安全に交換するために鍵を使用するシステムの一実施形態を示すブロック図である。
【図10】例示的クライアント・サーバ・ネットワーク環境を示す図である。
【図11】図10に示すようなクライアント・サーバ・ネットワークを使用して電子設計自動化情報を安全に交換する例示的方法を示す図である。
【技術分野】
【0001】
技術分野は、電子設計自動化に関連する。より詳細には、技術分野は、電子設計自動化に関する情報の安全な交換の方法に関連する。
(関連出願の相互参照)
本願は、参照によりそのすべてが本明細書に組み込まれる、発明者John G.Ferguson、Fedor G.Pikus、Kyohei Sakajiri、及びLaurence W.Groddによる「Secure Transfer of Rule Files」という名称の2003年9月26日提出の米国仮出願60/506,190号の特典を主張する、共にやはり発明者John G.Ferguson、Fedor G.Pikus、Kyohei Sakajiri、及びLaurence W.Groddによる「Secure Exchange of Information in Electronic Design Automation」という名称の出願である、2004年7月20日提出の米国特許出願10/895,485号の一部継続出願である2004年8月17日提出の米国特許出願第10/920,988号に対する優先権を主張するものである。
【背景技術】
【0002】
回路を含む現代の電子システムは、ますます複雑になりつつある。従って、こうした複雑なシステムを設計及び製造することが、ますます特殊な技術及び能力を必要とする可能性があることは、驚くべきことではない。こうした技術及び能力がより特殊化されるにつれて、そのような電子システムを首尾よく設計及び製造するのに必要なエンジニアリングを完成するために、幾つかの異なる団体からの技術者の共同作業が、必要となることがある。場合によっては、ある団体が、特定の必要を満たすために外部組織(例えばベンダ)の特殊な技術及び能力に依拠することになる可能性もある。
【0003】
例えば、近頃は、電子システム設計者が自分の電子システムの製造又は組立てを、製造を専門に扱う他の企業に外注することは、一般的なことである。こうしたシナリオでは、団体は、そのパートナ団体との間で電子設計自動化(EDA)に関する情報を交換し、それでもなお、その業務上の秘密、能力、技術などがそのようなパートナ団体にどの程度明らかにされる可能性があるかに関しての制御を維持するための、信頼性が高く安全な方法を必要とすることがある。
【0004】
1つの特定の例では、ある団体によって設計されたシステム・オンチップ(SOC)をカスタム集積回路(IC)製造業者によって製造させる必要があることがある。こうした製造業者に関連するファウンドリ企業は、通常、設計技術者によって選択された特定のICレイアウトを実際にファウンドリ企業で製造できるかどうかに関する影響を有する可能性のある(例えば製造上の)制約を有する。こうした制約は、一般に、そのような通信のために選択されたフォーマットの規則として表現される(例えばStandard Verification Rules Format(SVRF))。そのような規則を含むファイルは、規則ファイルと呼ばれることがある。規則ファイル中に表現される制約は、特定のファウンドリ企業の能力と、業務上の秘密と、ファウンドリ企業が一定の相手に対して明らかにすることを望まない他の機密情報とに関する情報を含むことができる。しかし、例えば、そのような情報は、選択したファウンドリ企業で規則に準拠するICレイアウトを製造できるようにそのようなレイアウトを設計するのに有用であることがある。
【0005】
従って、EDAツールで使用するために団体間での情報に関するEDAの安全な交換を可能にし、それによって各団体が知的所有権があるとみなす情報(例えば、業務上の秘密や他の機密情報)へのアクセスを制御することのできるシステム及び方法が、求められている。
【発明の開示】
【課題を解決するための手段】
【0006】
(概要)
電子設計自動化に関する情報の安全な交換のための方法及びシステムが、本明細書で説明される。一形態では、電子設計自動化に関する情報は、暗号化と、パスワード保護と、難読化(obfuscation)と、他のセキュリティ処置とによって保護することができる。別の形態では、電子設計自動化に関する情報に注釈を付け、電子設計自動化に関する保護された情報を含む電子設計自動化に関する情報の部分を示すことができる。
【0007】
更に別の形態では、電子設計自動化ツールは、電子設計自動化に関する情報の保護された部分を示すように注釈が付けられた電子設計自動化に関する情報を受信することができる。そのような情報電子設計自動化ツールを受信した際に、電子設計自動化に関する保護された情報を含む情報の部分を識別し、保護された情報を処理のためにロック解除することができる。一形態では、電子設計自動化ツールは、保護された情報の少なくとも一部を無許可の人、ツール、システムに明らかにすることなく、保護された電子設計自動化情報を処理することができ、そうでない場合、保護された情報の保護を損なう可能性がある。
【0008】
別の形態では、指定の持続時間又は期間にアクセスを要求することなどの1つ又は複数の条件が満たされることに基づいて、保護された電子設計自動化情報を処理し、アクセスし、又は使用することができる。持続時間又は期間は満了日によって定義することができる。満了日は、年と、月と、日と、時刻によるものでよい。保護された情報にアクセスし、又は使用するための1つ又は複数の条件は、幾つかのアクセス、又は保護された電子設計自動化情報の使用によって指定することもできる。
【0009】
継続するアクセス又は保護された電子設計自動化情報の使用に関する条件が幾つかの以前のアクセス又はそのようなデータの使用に依存する場合、その条件を幾つかの異なる方式で実施することができる。例えば、クライアント・サーバ・ネットワークでは、保護されたデータにアクセスし、又はそれを使用することを試みるクライアント・コンピュータが、保護された電子設計自動化情報の以前のアクセス又は使用に関するデータと共に、ネットワーク内のサーバ位置からデータにアクセスするのに必要な鍵を得ることができる。例えば、以前のアクセス数、そのようなアクセスの日付及び時刻、アクセスの要求側の識別などのデータを提供することができる。次いで、クライアント・コンピュータは、保護された電子設計自動化情報にアクセスし、それを処理し、又は使用することを可能にするために、そのようなデータを使用して、選択した条件が満たされているかどうかを判定することができる。
【0010】
更に別の形態では、保護された電子設計自動化情報を含むファイル内で、保護された電子設計自動化情報にアクセスし、それを処理し、又は使用するための条件を指定することができる。更に、保護された電子設計自動化情報の異なる部分に対して異なる条件を使用することができる。更に、条件は、ユーザの識別に基づいて異なっていてよい。
【0011】
別の形態では、1つ又は複数の鍵を使用する暗号化方法によって電子設計自動化に関する情報を保護することができる。情報を保護するのに使用される鍵に関する情報を、プライベート又はパブリックにパーティ間で交換することができる。一形態では、電子設計自動化に関する保護される情報を保護した個人又はパーティ、或いは電子設計自動化に関する保護された情報を提供している個人又はパーティは、保護される情報と共に鍵に関する情報を共有することができる。次いで、電子設計自動化ツールは、鍵に関する情報を使用して、保護された情報を処理のためにロック解除することができる。別の形態では、鍵と共にパスワードを使用して、電子設計自動化に関する情報を保護することができる。鍵、パスワード、又は他のセキュリティ機構をユーザ指定することもできる。そのようなセキュリティ処置を暗号化ツール、電子設計自動化ツール、又は何らかの他のツールで選択することもできる。
【0012】
一形態では、電子設計自動化ツールは、電子設計自動化に関する情報を安全に処理することができ、そのような処理の結果の少なくとも一部を保護することもできる。そのような保護された結果を、保護された結果の少なくとも一部を明らかにすることなく、さらなる処理のために他の電子設計自動化ツールに提供することができる。更に、あるツールが、保護された電子設計自動化に関する情報の少なくとも一部をロック解除し、情報を処理し、さらなる処理のために情報の少なくとも一部を別の電子設計自動化ツールに渡すことができる。別の実施形態では、第1電子設計自動化ツールは、電子設計自動化に関する情報の少なくとも一部をさらなる処理のために別の電子設計自動化ツールに転送する前に、それを再び保護することができる。
【0013】
更に別の形態では、電子設計自動化に関する保護された情報は、集積回路の製造性に関する規則を含むことができる。一形態では、そのような規則の選択された部分を保護し、物理的検証ツールなどの電子設計自動化ツールに提供することができる。電子設計自動化ツールは、その規則を使用して、システム設計に関する1つ又は複数の集積回路レイアウトが違反する可能性があるかどうかを検証することができる。次いで、物理的検証ツールは、保護のために選択されている規則の少なくとも一部を開示することなく、評価に関する情報をそのツール又は他のツールのユーザに提供することができる。
【0014】
なお、追加の特徴及び利点は、添付の図面を参照しながら行われる、例示される実施形態の以下の詳細な説明から明らかとなるであろう。
【発明を実施するための最良の形態】
【0015】
開示の発明は、本明細書に記載のシステム及び方法の実施形態のすべての新規であり明白でない特徴及び形態を、単独で、様々な組合せとして、およびそのサブコンビネーションとして含む。実施形態の開示の特徴及び形態を単独で使用することができ、又は様々な新規であり明白でない組合せ及び互いのサブコンビネーションとして使用することができる。
【0016】
提示の都合上、開示の方法の動作を特定の順序で説明するが、この説明の方式は、特定の順序が以下で述べられる特定の術語で必要とされるのでない限り、再配置を包含することを理解されたい。例えば、順番に説明される動作が、ある場合には再配置されることがあり、又は同時に実施されることがある。更に、話を簡単にするために、開示のフローチャート及びブロック図は、通常、特定の方法を他の方法と共に使用できる様々な方式を示していない。更に、詳細な説明は、開示の方法を説明するのに「判定する(determine)」のような用語を使用することがある。そのような用語は、実施される実際の動作の高レベルの抽象化である。こうした用語に対応する実際の動作は、特定の実装に応じて変化し、当業者は、それを容易に理解することができる。
【0017】
本明細書に記載の方法の一部は、コンピュータ可読媒体上に格納されたソフトウェアとして実装することができ、コンピュータ上で実行することができる。開示の方法の一部を、例えば電子設計自動化(EDA)ツールの一部として実装することができる。そのような方法は、単一のコンピュータ又はネットワーク化されたコンピュータ上で実行することができる。理解しやすいように、こうした開示の方法に関連するソフトウェアの形態のみが、開示される。当技術分野で周知の製品の詳細は、省略される。同じ理由で、コンピュータ・ハードウェアは、詳細には説明されない。
【0018】
EDAに関する情報を安全に交換する例示的システムの全体
図1は、EDAに関する情報を安全に交換する例示的システムを示す。EDAに関する情報を含む文書110は、セキュリティ・ツール120(例えば暗号化ツール)で保護することができ、EDAに関する情報の保護されたバージョンを含む文書130が、EDAツール140で処理される前に、作成される。次いで、EDAツール140は、EDAに関する文書130から、保護された情報をロック解除して、処理のためにそれを使用することができ、EDAツール140のユーザが注目する結果150を、生成することができる。一実施形態では、EDAツール140は、それ自体でEDAに関する情報110を暗号化することができ、又は保護することができる。言い換えれば、保護操作の場所は、特定のシステム実装に適したどんな場所でもよい。更に、あるEDAツール140によって保護された情報を、保護された情報の内容を明らかにすることなく、さらなる処理のために別のEDAツールに渡すことができる。
【0019】
一実施形態では、知的所有権があると指定され、又は保護に値すると指定されたEDAに関する情報を明らかにしないフォーマットで、EDA結果150をユーザに提供することもできる。例えば、保護された情報を普通なら明らかにする可能性のある結果150を、「暗号化済み」として、又はその保護された状況の何らかの他の標識として単に列挙することができる。従って、EDAツール140は、結果150の選択された部分を保護して、保護された情報を明らかにすることを回避することができる。更に、保護された情報を普通なら明らかにする可能性のある結果を、限定的な方式(例えば、ICレイアウトが違反した規則についての詳細を明らかにすることなく、特定のICレイアウト内の規則エラーを列挙するなど)で共有することができる。
【0020】
このようにして、知的所有権(IP)を含むEDAに関する文書(例えば110)を、ある団体の技術者が作成することができ、それを、EDA文書110内の機密情報を明らかにすることなくEDAツール140内で使用するために別の団体の技術者と共有することができる。
【0021】
EDAに関する文書を保護する例示的方法の全体
図2は、EDAに関する文書中の情報を保護する例示的プロセスを示す。210では、セキュリティ・ツール(例えば図1の120)が、保護すべきEDAに関する文書(例えば図1の110)中に含まれるEDAに関する情報を受信することができる。更に220では、セキュリティ・ツール(例えば120)は、EDA文書(例えば110)中のEDAに関する情報に適用すべき(例えば暗号化による)保護の範囲及び性質に関する別の命令も受信することができる。例えば、EDAに関する文書(例えば110)全体を、保護に値するものとして、又は保護を必要とするものとして指定する必要はない。従って、EDAに関する文書(例えば110)の選択した部分を保護することができる。従って、セキュリティ・ツール(例えば120)は、220で、保護すべきEDAに関する文書(例えば110)の1つ又は複数の部分を示す命令を受信することができる。こうした命令は、EDAに関する文書(例えば110)を保護することに関する他のデータも含むことができる。例えば、そのような情報は、暗号化のための鍵、パスワードに関するデータ、又はEDAに関する情報を保護するための他のデータを含むことができる。230では、EDAに関する情報が、命令に従って保護される。
【0022】
一実施形態では、こうした命令は、EDAに関する文書(例えば110)自体の一部でよい。例えば、保護すべき文書の部分を示す命令で、EDAに関する文書(例えば110)自体に注釈を付けることができる。従って、230では、セキュリティ・ツール(例えば120)は、命令に従って保護するように指定されたEDAに関する文書(例えば110)の部分だけを保護することができる。或いは、EDAに関する情報を保護することに関する命令を、EDAに関する文書自体(例えば110)から分離し、従ってセキュリティ・ツール120によって別々に受信することもできる。更に、命令は、セキュリティ・ツール120外部から受信されるのではないことがある。その代わりに、命令をセキュリティ・ツール120から発信することができる。
【0023】
保護されたEDAに関する情報をEDAツールで処理する例示的方法
図3は、保護されたEDAに関する情報をEDAツールで処理する例示的方法を示す。310では、EDAツール(例えば図1の140)は、EDAに関する文書(例えば図1の130)中の暗号化され、又は保護されたEDAに関する情報を受信する。320では、情報を保護するために選ばれた方法に応じて、EDAツール(例えば図1の140)は、鍵、パスワード、又は文書(例えば図1の130)中のEDAに関する情報を保護することに関連する他の情報に関するデータも受信することができる。例えば、暗号化を介して保護される情報の場合、鍵、パスワード、EDAに関する情報を保護することに関する他のデータを受信することができる。330では、情報を保護することに関連するこのようなデータを使用して、EDAに関する文書(例えば130)の保護された部分へのアクセスを得ることができる。
【0024】
一実施形態では、保護されたEDAに関する文書(例えば130)の部分へのアクセスは、1つ又は複数の選択された条件が満たされることに依存することができる。例えば、EDAツール(例えば140)は、暗号化され、又は保護されたEDAに関する情報(例えば130)をロック解除して、指定の持続時間(例えば、日付及び/又は時刻として指定される)まで使用することができる。アクセスのために満たされるべき条件は、特定の数のアクセスによって指定することもできる。特定の数のアクセスは、時間枠に関係することがあり、又は関係しないことがある。以前のアクセス数又は他の使用数に関するデータと、そのようなアクセス又は使用の日付及び時刻と、そのようなアクセス又は他の使用を実施したものの識別と、他のそのような関連データとは、EDAツール(例えば140)によって維持することができ、又は、コンピュータ・ネットワークを介してEDAツールに接続された別のコンピュータによって、維持及び提供することができる。ネットワーク化されたEDAツールの場合、暗号化された、又は保護されたEDAに関する情報(例えば130)をロック解除するための鍵は、ネットワークを介して提供することもできる。
【0025】
更に、保護されたEDAに関する情報(例えば130)の異なる部分にアクセスするのに異なる条件を、要求することができる。更に、保護されたEDAに関する情報(例えば130)の異なる部分にアクセスするのに必要な条件は、EDAツール(例えば140)の異なるユーザについて、異なっていてよい。
【0026】
340では、EDAツール(例えば140)は、そのときロック解除されたEDAに関する情報を処理することができ、350では、EDAに関する情報の機密部分(例えば、EDAツールのユーザから隠すべき保護された情報の部分)を明らかにしないような方式で、処理の結果をユーザに提供することができる。
【0027】
暗号化解除され、又はロック解除されたEDAに関する情報を、機密のEDAに関する情報を明らかにすることなく、更に処理して他の結果を生成するために他のEDAツールに渡すことができる。あるツールから別のツールに転送されるときに保護される情報は、当初保護された情報と同じでよく、又はそのような情報のサブセット又はスーパーセットでよい。更に、あるEDAツール(例えば図1の140)が、保護されるEDAに関する情報(例えば130)を処理した結果(例えば150)を保護し、保護されたEDA情報(例えば130)を明らかにすることなく、そのような保護した結果(例えば150)をさらなる処理のために別のEDAツールに渡すことができる。例えば、LVS(layout versus schematic)検証のために使用されるEDAツールは、レイアウト及び概略データなどのEDAに関する情報を処理することができ、ネットリストを含む結果を提供することができる。そのような結果を暗号化することができ、又は保護することができ、次いでそれを、保護された情報を明らかにすることなく、さらなる処理のために寄生抽出ツール(PET)などの他のEDAツールに提供することができる。
【0028】
保護すべきEDAに関する文書中のEDAに関する情報を示す例示的方法
図4は、保護の対象とすべきEDAに関する文書の部分を示す例示的方法を示す。例えば、EDAに関する文書(ファイル)410では、保護すべきEDAに関する情報415を、開始タグ(例えば416の「#ENCRYPT」)及び終了タグ(例えば417の「#ENDCRYPT」)に囲まれた情報として示すことができる。更に、440の、暗号化され、又は保護されたEDA情報を含むEDAに関する文書では、文書445の保護された部分も、開始タグ(例えば「DECRYPT」446)及び終了タグ(例えば「ENDCRYPT」447)で示すことができる。これは、暗号化解除、又は保護された情報をロック解除する他の方法をどこで開始し、終了すべきかをEDAツール450に示すことができる。そのような術語は、例である。暗号化及び暗号化解除すべき、又は保護及びロック解除すべきコードの区間の開始及び終了を示すのに、他の語又は文字セットを使用することもできる。更に、EDAに関する文書410の複数の部分を保護するために指定することができ、その複数の部分を、異なる開始指定子及び終了指定子、又は同一の開始指定子及び終了指定子の間に配置することができる。他のタグ又は標識も適宜使用することができる。
【0029】
一実施形態では、そのような明示的な標識が使用されない。例えば、保護すべきEDAに関する文書又は電子ファイルの部分を、その部分がファイルのヘッダ、本文、又は何らかの他の選択された部分に関係するかどうかに基づいて決定することができる。例えば、本文を保護する一方で、ヘッダを保護しないことができる。更に、ユーザ又はツールは、ネットリスト、設計ルール・チェック(DRC)、オプティカル・プロセス補正(OPC)、その他の適切なEDA情報などの選択した主題に関するデータを保護すべきであることを指示することができる。保護される情報を暗号化解除し、又はロック解除する場合、システムは、例えば保護ファイル内のすべての判読不能データを暗号化解除し、又はロック解除すべきであることを想定することができる。
【0030】
保護のための例示的方法
EDAに関する文書内の情報を保護するのに、幾つかの方法を使用することができる。例えば、暗号化は、そのような1つの方法である。暗号化の場合、AES(advanced encryption standard)などのブロック暗号方法を暗号化ツールで使用することができる。代替暗号化方法は、RSA(Rivest,Shamir, and Adelman)暗号化、DES(Data Encryption Standard)、単純辞書鍵置換、又は他の適切な暗号化方法を含むことができる。しかし、EDAに関する文書の部分の保護は、暗号化に限定されない。例えば、難読化及び/又は一方向ハッシングを含む他の適切な保護により、保護すべき部分を更に、又は別法として保護することができる。
【0031】
EDAに関する情報を保護するプロセスにおける鍵の例示的使用
図4は、EDAに関する情報を鍵を使用して暗号化するシステム及び方法を示す。図4に示すように、暗号化ツール430は、鍵420を使用して、EDAに関する文書410に含まれるEDAに関する情報を暗号化することができる。鍵は、例えば暗号化ツール430の外部の情報源によって指定することができる。鍵420は、暗号化ツール430によってランダムに選択することもできる。次いで鍵420を、EDAに関する情報を暗号化解除するのに使用されるEDAツール450のユーザに提供することができる。EDAツール450はまた、EDAツール450によって使用される、暗号化解除されたEDAに関する情報の何れも明らかにすることなく、結果460を生成することができる。
【0032】
一実施形態では、鍵420の交換は、公開鍵交換でよい。例えば、鍵に関する情報の交換を仲介するのに第3者を使用することができる。鍵420の交換は、プライベート交換でもよい。
【0033】
図5は、鍵を使用してEDAに関する情報を暗号化する更に別の例示的方法を示す。例えば、暗号化ツール520は、鍵530を使用してEDAに関する情報510を暗号化することができる。更に、暗号化に使用される鍵530に関する情報531を、暗号化されたEDAに関する情報540を含むEDAに関する文書535内に含めることができる。従って、鍵530をパブリックに得る代わりに、団体間の鍵交換は、プライベートでよい。鍵に関する情報531自体を難読化し、暗号化し、パスワード保護し、又はそれに適切な保護を与えることができる。保護されたEDA情報を暗号化解除するために、EDAツール550はまず、保護された鍵に関する情報531へのアクセスを得る必要がある。次いで、EDAツール550は、鍵に関する情報531の保護されていないバージョンを使用して、鍵530を得、処理のために、暗号化されたEDAに関する情報540を暗号化解除することができる。更に、鍵に関する情報531は、鍵自体を含むことができる。
【0034】
鍵530は、暗号化ツール520のユーザが指定することができる。或いは、鍵は、暗号化ツール520によって、ランダムに選択することもできる。暗号化ツール520は、暗号化ツール520がそれに対するアクセスを有するマスタ鍵の配列から鍵530を選択することができる。或いは、EDAツール550は、保護されたEDA文書535をロック解除するために、鍵に関する情報531をマスタ鍵の配列内の1つ又は複数の鍵と突き合わせることもできる。
【0035】
EDAに関する情報を保護するための、鍵及びパスワードの例示的使用
或いは、図6に示すように、鍵620に加えて、パスワード640を、EDAに関する情報615の暗号化で使用することができる。一実施形態では、EDAツール660によって受信される、暗号化されたEDAに関する情報650と共に、パスワードを埋め込むことができる。次いでそれをEDAツール660で暗号化解除し、ユーザに結果670を提供する前に、ユーザが入力したパスワード665と突き合わせることができる。更に、EDAツール660は、ユーザから得られるパスワード665と、640で暗号化されたEDAに関する情報650と共に得られたパスワードとが合致しない限り、暗号化解除されたEDAに関する情報を処理することさえしないことがある。
【0036】
或いは、パスワード640を使用して、暗号化されたEDAに関する情報650と共に埋め込まれた鍵に関する情報651を暗号化、難読化、保護、又は変更することができる。次いで、EDAツール660は、EDA情報と共に埋め込まれた鍵に関する情報651を暗号化解除することを試みる前に、EDAツール660のユーザがEDAツール660にパスワード665を与えることを要求することができる。更に、鍵自体をパスワード640で暗号化、難読化、又は保護することができる。
【0037】
保護されたEDAに関する情報の使用を可能にする1つ又は複数の条件を指定する例示的方法
前述のように、鍵又はパスワード或いはそれらの組合せの使用を介して、保護されたEDAに関する情報(例えば図1の130)に、アクセスすることができる。一実施形態では、保護されたEDAに関する情報のアクセス可能性は、1つ又は複数の条件を満たすことに依存することができる。例えば、図5Aに示すように、EDAに関する情報510を保護する鍵データ530に加えて、保護されたEDAに関する情報540にアクセスするために満たすべき1つ又は複数の条件532も指定することができる。
【0038】
一例として、そのような条件データ532を、保護されたEDAに関する情報540と共にEDAツール(例えば550)に提供することができる。例えば、クライアント・サーバ・ネットワークでは、EDAツール(例えば550)は、そのような条件データ532(例えば、幾つかの許可されたアクセスと、幾つかの以前のアクセスと、アクセスを許可すべきものの識別データと、以前のアクセスの日付及び時刻)を、ネットワークに接続された1つ又は複数のコンピュータに要求し、その1つ又は複数のコンピュータから受信することができる。クライアント・サーバ・ネットワークの一実施形態では、EDAツール(例えば550)は、クライアントでよく、そのコール・バック要求に応答するネットワーク・コンピュータは、そのような1つ又は複数のクライアントからの要求に応答してデータを提供することのできるサーバ・コンピュータでよい。
【0039】
或いは、条件データ532の少なくとも一部(例えば、以前のアクセス・カウント、並びにそのようなアクセスの日付及び時刻)を、EDAツール550によって計算し、ローカルに維持することができる。そのような条件データ532のデータ源の如何に関わらず、EDAツールは、条件532が満たされていることを検証したときに、保護されたEDA情報540に(例えば、鍵530を用いた暗号化解除を介して)アクセスすることができる。上述のように、別法として、アクセス又は他の使用に関する1つ又は複数の条件が満たされているかどうかの確認を、クライアント・サーバ・ネットワークの別のコンピュータからEDAツール550に提供することができる。更に、EDAツール(例えば550)は、アクセスに関する1つ又は複数の条件が満たされていることの確認と共に、保護されたデータをロック解除するための鍵を受信することができる。
【0040】
例えば、1つ又は複数の条件532が、指定の満了日より前の、保護されたEDA情報540へのアクセスに関係する場合、EDAツール(例えば550)は、現在日付(例えば、現アクセスが要求されている日付)を検証し、現在日付と(例えば、条件データ532として提供される)満了日と比較し、現在日付が(例えば、532で指定された)満了日以前である場合、保護されたEDA情報540にアクセスすることができる。或いは、満了日と全く合致する日付にアクセスを限定することもできる。満了日は、年と、月と、日と、時刻のうちの1つ又は複数によって指定することができる。
【0041】
別の例では、アクセス532のための条件が、日付に関係せず、その代わりに、鍵530を介して達成すべき保護されたデータ540への最大アクセス数と関係することがある。例えば、条件532は、鍵530を使用して保護されたデータに最大回数(例えば10)を超えてアクセスされていない場合、EDAツール550がそのようなデータにアクセスできることを指定することができる。更に、アクセスのための条件532は、許可された最大アクセス数と満了日の組合せでよい。更に、保護されたEDAに関する情報540の異なる部分へのアクセスは、異なる条件が満たされることに基づくことができる。例えば、データの異なる部分は、異なる時間枠中にアクセス可能である。更に、EDAツール550の異なるユーザについて異なる条件532を指定することができる。
【0042】
別法として、アクセスのための条件が満たされているかどうかの検証は、クライアント・サーバ・ネットワーク内のサーバ・コンピュータによって実施することができる。検証の結果は、さらなる処理のためにEDAツール(例えば550)に提供することができる。
【0043】
更に、一実施形態では、選択された条件532に基づいて制限されるのは、保護されたEDAに関する情報540へのアクセスではないことがあり、その代わりに、EDAツール550が保護されたEDAデータ540を処理又は使用して、そのようなデータを処理した結果560を生成又は解放するのを制限するように条件532を使用することができる。
【0044】
EDAに関する文書内で参照されるファイル内のEDAに関する情報を暗号化する例示的方法
ある場合には、EDAに関する文書は、別のファイルに含まれる情報を参照することができ、又はそれに依拠することができる。例えば、図7に示すように、ファイル「A」710、即ちファイル「A」715内に格納される任意の情報を、EDAに関する文書710内で参照することができる。例えば、そのようなファイルが、暗号化720のために選択されたEDAに関する情報内で参照される場合、「#INCLUDE」命令721などの命令によって暗号化ツール725を起動して、720でファイル715にアクセスし、それを暗号化のために指定された他のEDAに関する情報と共に暗号化することができる。「INCLUDE」命令は、例示的構文である。同じ結果を達成するために他の構文も使用することができる。他のファイル及びその中に含まれる任意の情報を同様に暗号化することができ、このようにして、複数のファイル源からの複数のファイルを保護及び処理することができる。
【0045】
IC製造に関するEDA情報を暗号化するシステム及び方法の例示的実施形態
団体間のEDAに関する情報の安全な交換に関する上述の方法の1つの特定の応用例は、あるICレイアウトの製造性を特定の製造業者(例えばファウンドリ)の制約に基づいて求めるための情報の交換に関する。図8は、所与の集積回路(IC)レイアウトの製造性を求める1つのそのような方法の一実施形態を示すブロック図である。IC製造業者(例えばファウンドリ)は、異なるICレイアウトに適用される幾つかの製造上の制約を有する可能性がある。工程技術者などの技術者は、その製造業者に特有の制約に関する情報を含む制約の文書810を作成することがある。制約の文書810は、その特定の制約制約を更に記述する規則デック又は規則ファイル820(例えばASCIIファイル)に組み込むことができる。規則ファイルはまた、画像、1組の設計データ・ベース・オブジェクト、規則の概略表現などの情報も含むことができる。次いで、規則ファイル820を、物理的検証ツール830(例えば、Mentor Graphics Corp.のCalibre(商標)ツール)などのEDAツールと共に使用して、(例えば、GDSII、OpenAccess、Milkywayなどのファイル・タイプで記述された)初期ICレイアウト840が製造業者の制約に違反するかどうかを判定することができる。従って、物理的検証ツール830を使用して、初期ICレイアウト840が製造可能であるか否かを判定することができる。
【0046】
図示する実施形態では、物理的検証ツール830は、初期ICレイアウト840を読み取り、規則ファイル820を使用して、初期ICレイアウト840が規則ファイル820内の制約の何れかに違反するかどうかを判定する。物理的検証ツール830は、レイアウト中で生じたエラーの記録、並びにツール自体の動作に関する情報(例えば、ツールがその検証を実行するのに必要な時間又はメモリの量)を含む結果ファイル850を提供することができる。物理的検証ツール830はまた、設計技術者が使用するために選ぶことができ、又はICの製造に関して評価することのできる製造可能なICレイアウト860(例えば、制約に違反しないレイアウト)を提供することができる。初期ICレイアウト840が制約の何れにも違反しない場合、製造可能ICレイアウト860は、初期ICレイアウト840だけを含むことができる。しかし初期ICレイアウト840が少なくとも1つの制約に違反する場合、製造可能ICレイアウト860は、レイアウトが製造可能となる変更の提案を含むことができる。
【0047】
しかし、製造業者は、知的所有権(例えば1つ又は複数の業務上の秘密)と考えられる独自の情報を含む所与の規則ファイル(例えば規則ファイル820)を明らかにすることを望まないことがある。これは、例えば、規則ファイル820を書く人が、規則ファイル820を使用する物理的検証ツール830を実行する人と同じではないことがあるからである(例えば設計技術者)。それでも、製造業者がその製造業者に特有の制約の少なくとも一部を詳述する何らかのものを技術者に提供して、規則ファイル全体が明らかにされない場合であっても、所与のICレイアウトがその製造業者で製造可能かどうかを設計技術者が判定できるようにすることが、しばしば望ましい。
【0048】
図9は、規則ファイルを安全に交換するシステムの例示的実施形態を示すブロック図である。規則ファイル910は、ある製造業者に特有の制約に関する情報を含むことができる。1つの特定の実施形態では、規則ファイル910が、SVRF(Standard Verification Rules Format)などの周知のフォーマットで書き込まれる。規則ファイル910は、規則ファイル910を受信する人が誰であってもその人に発見されることを製造業者が望まない知的所有権情報を含むことができる。規則ファイル910は、製造業者がそれほど問題としない、知的所有権のある、又は知的所有権のない他の情報も含むことができる。保護すべき規則(例えば、製造業者がトランスクリプト中で見られることを望まない規則)は、例えば、層生成コマンド、DRC(design−rule−checking)チェック、LVS(layout−vs.−schematic)デバイス・ステートメント、in−file LITHOオペレーション、optical−and−process−correction operation(例えば、TDOPCオペレーション及びOPCSbarオペレーション)、PEX(parasitic−extraction)ステートメント、又はFRACTUREコマンドを含むことができる。これは網羅的なリストではない。製造業者は、本開示に従って、このより高度な保護のために任意の情報を選択する(又はソフトウェアが選択することを可能にする)ことができるからである。
【0049】
上述のように、このような非常に知的所有権規則のある情報を含む規則ファイル910の部分、又は保護するように試みられるファイルの任意の1つ又は複数の区間を、規則ファイル910中の第1の組の指定のキーワード間に配置することができる。例えば、1つの特定の実施形態では、そのようなキーワードは、保護すべき区間の先頭を示す「#ENCRYPT」と、保護すべき区間の終りを示す「#ENDCRYPT」でよい。次いで、修正後規則ファイル910を暗号化ツール920で処理することができる。暗号化ツール920は、暗号化プロセスによって「#ENCRYPT」と「#ENDCRYPT」の間のファイルの部分を保護することができ、その結果、暗号化規則ファイル930が得られる。一実施形態では、暗号化規則ファイル930は、「#DECRYPT」と「#ENDCRYPT」などの第2の組の指定のキーワード間の暗号化部分を含むことができる。他の非暗号化情報も規則ファイル910内に含まれることが望ましく、その場合、暗号化規則ファイル930は部分的にのみ暗号化される。
【0050】
この実施形態では、任意選択の鍵915が、暗号化プロセスで使用される。任意選択の鍵915は、例えば秘密鍵でよい。1つの特定の実施形態では、ユーザが、暗号化プロセスで使用される鍵915を選択する。代替実施形態では、鍵915が、暗号化ツール920によってランダムに選択される。暗号化ツール920は、暗号化ツール920が使用するために鍵915をそこから選択するマスタ鍵の配列を含むことができ、又はそれに対するアクセスを有することができる。或いは、ユーザは、鍵915の代わりに、又は鍵915と共に使用されるパスワードを選ぶこともできる。そのようなパスワードは、935のファイルの暗号化部分に埋め込むことができ、例えば難読化によって保護することができる。或いは、マスタ鍵を変更するのにパスワードを使用することもできる。
【0051】
暗号化された、又は部分的に暗号化された規則ファイル935を初期ICレイアウト940と共に入力として、処理のために物理的検証ツール950に提供することができる。一実施形態では、物理的検証ツール950は、物理的検証ツール950のユーザに暗号化解除区間を完全に明らかにすることなく、第2の組の指定のキーワード(例えば「#DECRYPT」及び「#ENDCRYPT」)間の暗号化規則ファイル930の区間935を暗号化解除し、処理する。暗号化解除は、例えば物理的検証ツール950の実行時メモリ空間内で行うことができる。
【0052】
EDAツールによる処理の結果に含まれるEDA情報を保護する例示的方法
図1を参照すると、EDAに関する文書110内に含まれ、EDAに関するツール140で使用される前に暗号化によって保護されるEDAに関する情報は、結果150を介してEDAツール140のユーザに開示される場合、その保護を失う可能性がある。従って、一実施形態では、機密と指定されたEDAに関する情報を含む結果150ファイルの部分を不明瞭にすることができ、暗号化することができ、又は何らかの機密のEDAに関する情報についてユーザが知ることを防止するように変更することができる。例えば、図9で説明したICレイアウト940に関する実装について、物理的検証ツール950は、保護された規則930に関する完全なトランスクリプトを生成しないことがある。その代わりに、物理的検証ツール950は、規則ファイル935の保護された部分が開示されないように、保護された規則ファイル930の部分的なトランスクリプトだけを結果960として生成することができる。
【0053】
物理的検証ツール950は、他のEDAに関する情報を結果960として提供することができ、可能なら、任意選択で、製造可能なICレイアウト970を提供することができる。更に、或いは別法として、そのような情報をデータベースに記録することができる。規則ファイル910中の制約の違反に関するエラー情報を様々な方式で通信することができる。1つの特定の実施形態では、規則ファイル935の保護された部分に関するエラー情報は、ファイルの残りの部分に関するエラー情報とは異なる方式で処理される。例えば、ファイル935の保護された部分に関するエラー情報を限定することができ、一方、ファイルの残りの部分に関するエラー情報をより詳細に説明することができる。一実施形態では、規則ファイル935の保護された部分に関するエラー情報は、単に、初期ICレイアウト940中にいくつのエラーが存在するかを記述する。
【0054】
例えば、その他の方法で列挙された規則を結果ファイル960中で単に「Encrypted」と示すことができる。別の実施形態では、保護された部分に関するエラー情報は、少なくとも1つのタイプのエラーを、例えば2つの構成要素が近づき過ぎていることを示すような、一般的用語で記述する。代替実施形態では、保護された部分に関するエラー情報は、少なくとも1つのタイプのエラーを、例えばどの2つの構成要素が近づき過ぎており、どの位置であるかを詳述するような、特定の用語で記述する。
【0055】
例示的EDAツール及びEDAに関する情報
上記の例の一部(例えば図9)は、物理的検証ツールで使用されるIC規則ファイルの交換を例示することによってEDAに関する情報の安全な交換の方法及びシステムを論じている。しかし、規則ファイルを使用した物理的検証は、開示の方法を使用することのできるEDA応用例の1タイプに過ぎない。他のEDA応用例は(限定はしないが)、LVS(layout versus schematic verification)、寄生抽出フロー(例えばレイアウト寄生抽出(LPE))を生成すること、及び解像度向上技術(RET)に関するツールを適用することなどの用途を含む。合成ツール、エミュレーション・ツール、シミュレーション・ツールなどの他のツールも、本明細書に記載の方法及びシステムを使用して、安全にEDAに関する情報を使用することができる。
【0056】
安全な方式で保護及び処理すべきEDAに関する情報は、DFM(design for manufacture)プロセス、方法、システム、及びツールに関する任意の情報を含むことができる。更に、規則ファイルに加えて、開示の原理を使用して保護することができる他のEDAに関する情報は(限定はしないが)、Oasisと、Spice net listと、VHDLと、及びVerilogを含む。本明細書に記載のプロセス、方法、システム、ツールは、保護及び処理すべき情報及びツールの性質によってどんな形にも限定されない。
【0057】
分散ネットワーク環境内の例示的実装
上述の技術の諸形態の何れも、分散コンピュータ・ネットワークを使用して実施又は設計することができる。図10にそのような例示的ネットワークを示す。サーバ・コンピュータ1000は、関連する記憶装置1002(サーバ・コンピュータの内部また外部)を有することができる。例えば、サーバ・コンピュータ1000は、上述の実施形態の何れかを(例えばEDAソフトウェア・ツールの一部として)使用して、回路設計に関するEDA情報を処理するように構成することができる。サーバ・コンピュータ1000は、1004で全般的に示されるネットワークに結合することができ、ネットワークは、例えば、広域ネットワーク、ローカル・エリア・ネットワーク、クライアント・サーバ・ネットワーク、インターネット、及びその他のそのようなネットワークを含むことができる。1006、1008に示すような1つ又は複数のクライアント・コンピュータは、ネットワーク・プロトコルを使用してネットワーク1004に結合することができる。
【0058】
図11は、クライアント・コンピュータ(例えば1006及び1008)が、図10に示すサーバ・コンピュータ1000などのリモート・サーバ・コンピュータを使用して、本明細書で開示される実施形態の何れかによるEDAに関する情報(例えばIC規則ファイル)の安全な処理に関する結果(例えば、規則ファイルに関するエラーと、選択された規則に違反する代替IC設計レイアウト)を受信することを示す。プロセス・ブロック1150では、例えば、クライアント・コンピュータは、EDAに関するデータを送信する。例えば、クライアント・コンピュータは、設計データベースから規則ファイルと、提案される1つ又は複数のIC設計レイアウトと、その他のEDA情報とを送信することができる。プロセス・ブロック1152では、開示の実施形態の何れかに従って、データが、サーバ・コンピュータによって受信され、保護される。或いは、クライアント・コンピュータは、処理すべきEDA情報を保護して、そのような保護されたEDA情報を処理のためにサーバに送信することもできる。
【0059】
プロセス・ブロック1154では、EDAに関する情報が、開示の実施形態の何れかに従って処理される。プロセス・ブロック1156では、サーバ・コンピュータが、結果(例えば、規則ファイルに関するエラーと、選択された規則に違反しない代替IC設計レイアウト)をクライアント・コンピュータに送信し、プロセス・ブロック1158では、クライアント・コンピュータが、データベースを受信する。図11に示す例は、EDAに関する情報を保護し、保護されたEDAに関する情報を処理し、保護されたEDAに関する情報を明らかにすることなくそのような処理結果を共有する唯一の方法ではないことは当業者には明らかであろう。例えば、EDAに関する情報(例えば規則ファイル)を送信するクライアント・コンピュータは、結果を受信するクライアントと同一ではないことがある。更に、EDAに関する情報を、ネットワーク上にはなく、サーバに別々に送られるコンピュータ可読媒体に格納することができる。或いは、サーバ・コンピュータは、設計手順の一部だけを実行することができる。
【0060】
例示された実施形態を参照しながら本発明の原理を説明し、例示したが、そのような原理から逸脱することなく、例示された実施形態の構成及び細部を変更できることを理解されよう。例えば、ファイルは、EDAに関する情報を含む、複数の個々に保護されたファイルが含まれるマスタ・ファイルを含むことができる。従って、設計フロー中の複数のIC製造業者又は他の第3者が、一定の知的所有権情報を明らかにすることなく、規則ファイルに寄与し、規則ファイルを使用し、かつ/又は規則ファイルを共有することができる。
【0061】
ソフトウェアとして示した図示される実施形態の要素は、ハードウェアと実装することができ、逆も同様である。更に、任意の実施例からの技術を、他の実施例のうちの任意の1つ又は複数に記載の技術と組み合わせることができる。従って、例えば、物理的検証のための規則ファイルの処理を保護することに関する本明細書に記載の任意の方法、プロセス、システム、又はツールを、他のEDAに関するツールでの他のEDAの用途に関する他のEDAに関する情報と共に使用することができる。本発明の原理を適用することができる多くの可能な実施形態に鑑みて、例示された実施形態は本発明の例であり、本発明の範囲に関する制限とみなすべきでないことを理解されたい。例えば、本明細書に記載のシステム及びツールの様々な構成要素を、機能及び用途の点で組み合わせることができる。従って、特許請求の範囲の範囲及び精神に含まれるすべての主題を本発明として主張する。
【図面の簡単な説明】
【0062】
【図1】電子設計自動化に関する情報の安全な交換のためのシステムの一実施形態を示すブロック図である。
【図2】電子設計自動化に関する情報を保護する方法の一実施形態を記述するフローチャートである。
【図3】電子設計自動化に関する情報を安全に処理する方法の一実施形態を記述するフローチャートである。
【図4】電子設計自動化に関する保護されない情報を保護する鍵を使用する、電子設計自動化に関する情報の安全な交換のためのシステムの一実施形態を示すブロック図である。
【図5】保護された電子設計自動化情報を含むファイルに埋め込まれた鍵に関する情報を使用する、電子設計自動化に関する情報の安全な交換のためのシステムの一実施形態を示すブロック図である。
【図5A】1つ又は複数の条件が満たされることに基づいて、保護された情報がアクセス可能にされ、処理のために利用可能にされ、又は使用のために利用可能にされる、電子設計自動化に関する情報の安全な交換のためのシステムの一実施形態を示すブロック図である。
【図6】電子設計自動化に関する保護されない情報を保護する鍵及びパスワードを使用する、電子設計自動化に関する情報の安全な交換のためのシステムの一実施形態を示すブロック図である。
【図7】保護のために選択された情報の一部が別のファイルへの参照によって組み込まれる、電子設計自動化に関する情報の安全な交換のためのシステムの一実施形態を示すブロック図である。
【図8】集積回路の製造性を管理する規則に関する情報の安全な交換のためのシステムの一実施形態を示すブロック図である。
【図9】集積回路の製造性を管理する規則に関する情報を安全に交換するために鍵を使用するシステムの一実施形態を示すブロック図である。
【図10】例示的クライアント・サーバ・ネットワーク環境を示す図である。
【図11】図10に示すようなクライアント・サーバ・ネットワークを使用して電子設計自動化情報を安全に交換する例示的方法を示す図である。
【特許請求の範囲】
【請求項1】
保護された電子設計自動化情報を電子設計自動化ツールで処理する方法であって、
前記保護された電子設計自動化情報を受信するステップと、
前記保護された電子設計自動化情報にアクセスするステップと、
前記保護された電子設計自動化情報の少なくとも一部を明らかにすることなく、前記保護された電子設計自動化情報の少なくとも一部を処理するステップと、
を含む方法。
【請求項2】
請求項1に記載の方法であって、
前記保護された電子設計自動化情報にアクセスするための鍵に関する情報を受信するステップを、
更に含む方法。
【請求項3】
請求項2に記載の方法であって、前記鍵に関する前記情報は、前記保護された電子設計自動化情報と共に受信される、方法。
【請求項4】
請求項2に記載の方法であって、前記鍵に関する前記情報は、複数の鍵の配列からの1つ又は複数の鍵を示すデータを含む、方法。
【請求項5】
請求項2に記載の方法であって、前記鍵に関する前記情報は、実際の鍵を示すタグである、方法。
【請求項6】
請求項2に記載の方法であって、前記鍵に関する前記情報は、隠される、方法。
【請求項7】
請求項2に記載の方法であって、前記鍵に関する前記情報は、パスワードを使用して保護される、方法。
【請求項8】
請求項1に記載の方法であって、
前記保護された電子設計自動化情報の処理の結果の少なくとも一部を保護するステップを、
更に含む方法。
【請求項9】
請求項8に記載の方法であって、
前記保護された電子設計自動化情報の処理の結果の少なくとも一部を明らかにするステップを、
更に含む方法。
【請求項10】
請求項1に記載の方法であって、
前記保護された電子設計自動化情報を示す注釈に基づいて、前記保護された電子設計自動化情報を識別するステップを、
更に含む方法。
【請求項11】
請求項1に記載の方法であって、前記保護された電子設計自動化情報は、暗号化を介して保護され、前記保護された電子設計自動化情報にアクセスすることは、暗号化解除を含む、方法。
【請求項12】
請求項1に記載の方法であって、第1パスワードは、前記電子設計自動化情報を保護するのに使用され、前記保護された電子設計自動化情報を処理することは、ユーザによって与えられた第2パスワードが前記第1パスワードと合致することを検証することを含む、方法。
【請求項13】
請求項1に記載の方法であって、前記保護された電子設計自動化情報は、複数の情報源から受信される、方法。
【請求項14】
請求項1に記載の方法であって、
前記保護された電子設計自動化情報の少なくとも一部にアクセスするための少なくとも1つの条件が満たされるかどうかを判定するステップを、
更に含む方法。
【請求項15】
請求項14に記載の方法であって、
前記保護された電子設計自動化情報と共に、前記保護された電子設計自動化情報の前記少なくとも一部にアクセスするための前記少なくとも1つの条件に関するデータを受信するステップを、
更に含む方法。
【請求項16】
請求項14に記載の方法であって、前記保護された電子設計自動化情報にアクセスするための前記少なくとも1つの条件は、前記保護された電子設計自動化情報にアクセスすることのできる最大の回数に対応する値を含み、前記少なくとも1つの条件が満たされるかどうかを判定することは、現アクセスの数値を、前記保護された電子設計自動化情報にアクセスすることのできる前記最大の回数と比較することを含む、方法。
【請求項17】
請求項14に記載の方法であって、前記保護された電子設計自動化情報にアクセスするための前記少なくとも1つの条件は、前記保護された電子設計自動化情報にアクセスすることのできる最大の回数に対応する値を含み、前記少なくとも1つの条件が満たされるかどうかを判定することは、前記少なくとも1つの条件が満たされていることの確認を要求するサーバ・コンピュータに対するコール・バック要求を生成することを含む、方法。
【請求項18】
請求項14に記載の方法であって、前記少なくとも1つの条件が満たされるかどうかを判定することは、前記保護された電子設計自動化情報の異なる部分にアクセスするための異なる条件を適用することを含む、方法。
【請求項19】
請求項14に記載の方法であって、前記少なくとも1つの条件が満たされるかどうかを判定することは、前記保護された電子設計自動化情報の前記少なくとも一部にアクセスするために異なるユーザに対して異なる条件を適用することを含む、方法。
【請求項20】
請求項14に記載の方法であって、
前記保護された電子設計自動化情報にアクセスするための鍵に関する情報を、前記保護された電子設計自動化情報の前記少なくとも一部にアクセスするための前記少なくとも1つの条件に関するデータと共に受信するステップを、
更に含む方法。
【請求項21】
請求項14に記載の方法であって、前記保護された電子設計自動化情報にアクセスするための前記少なくとも1つの条件は、満了日を含み、前記少なくとも1つの条件が満たされるかどうかを判定することは、現在日付を前記満了日と比較することを含む、方法。
【請求項22】
請求項21に記載の方法であって、満了日は、月データ、年データ及び時刻データのうちの1つ又は複数を含む、方法。
【請求項23】
請求項1に記載の方法であって、
前記電子設計情報の少なくとも一部をさらなる処理のために別のツールに転送するステップを、
更に含む方法。
【請求項24】
電子設計自動化情報の安全な交換のためのシステムであって、
保護された電子設計自動化情報を含むファイルを受信し、
前記ファイル内の前記保護された電子設計自動化情報を求め、
前記保護された電子設計自動化情報にアクセスし、
前記保護された電子設計自動化情報の少なくとも一部を明らかにすることなく、前記保護された電子設計自動化情報の少なくとも一部を処理する
ように動作可能な電子設計自動化ツールを、備えるシステム。
【請求項25】
請求項24に記載のシステムであって、前記ファイル内の前記保護された電子設計自動化情報を求めることは、前記ファイル内に埋め込まれた標識に基づく、システム。
【請求項26】
請求項24に記載のシステムであって、
保護されていない電子設計自動化情報を受信し、
保護されていない電子設計自動化情報を暗号化して、保護された電子設計自動化情報を含む前記ファイルを生成する
ように動作可能な暗号化ツールを、更に備えるシステム。
【請求項27】
請求項26に記載のシステムであって、前記暗号化ツールは更に、前記保護された電子設計自動化情報を含む前記ファイルに標識で注釈を付け、前記ファイル内の前記保護された電子設計自動化情報を示すように動作可能である、システム。
【請求項28】
請求項24に記載のシステムであって、前記電子設計自動化ツールは、物理的検証ツールであり、前記電子設計自動化情報は、集積回路の製造に関する規則を含む、システム。
【請求項29】
請求項28に記載のシステムであって、前記物理的検証ツールは、集積回路レイアウトを受信するように動作可能であり、前記保護された電子設計自動化情報を処理することは、前記集積回路レイアウトの何れかが前記集積回路の製造に関する前記規則の何れかに違反するかどうかを検証することを含む、システム。
【請求項30】
請求項29に記載のシステムであって、前記物理的検証ツールは更に、集積回路の前記製造に関する前記規則の少なくとも一部に違反しない代替集積回路レイアウトを生成するように動作可能である、システム。
【請求項31】
請求項24に記載のシステムであって、前記電子設計ツールは更に、前記保護された電子設計自動化情報の少なくとも一部を明らかにすることなく、前記保護された電子設計自動化情報の処理に関する少なくとも一部の結果を提供するように動作可能である、システム。
【請求項32】
請求項24に記載のシステムであって、前記電子設計自動化ツールは、解像度向上ツールである、システム。
【請求項33】
集積回路の製造に関する規則の安全な交換のための方法であって、
集積回路の製造に関する前記規則に注釈を付け、保護すべき前記規則の部分を選択するステップと、
保護するように選択された前記規則の前記部分を保護し、集積回路の製造に関する保護された規則を生成するステップと、
集積回路の製造に関する前記規則に注釈を付け、集積回路の製造に関する前記保護された規則を含む部分を示すステップと、
集積回路の製造に関する前記保護された規則をロック解除するステップと、
1つ又は複数の集積回路レイアウトに関するデータを受信するステップと、
前記1つ又は複数の集積回路レイアウトが集積回路の製造に関する前記規則の何れかに違反するかどうかを検証するステップと、
前記保護された規則の少なくとも一部を明らかにすることなく、前記検証の結果を示すエラー・レポートを提供するステップと、
を含む方法。
【請求項34】
請求項33に記載の方法であって、集積回路の製造に関する前記規則に注釈を付け、保護すべき集積回路の製造の部分を示すことは、少なくとも1つの標識を追加して、保護すべき前記部分に関する先頭を示すことを含む、方法。
【請求項35】
請求項33に記載の方法であって、集積回路の製造に関する前記規則に注釈を付け、保護すべき集積回路の製造の部分を示すことは、少なくとも1つの標識を追加して、保護すべき前記部分の終りを示すことを含む、方法。
【請求項36】
請求項33に記載の方法であって、保護するように選択された前記規則の前記部分を保護することは、鍵を使用して、前記選択された部分を暗号化することを含み、前記集積回路の製造に関する前記保護された規則は、前記鍵を使用して、前記保護された規則を暗号化解除することを含む、方法。
【請求項37】
請求項33に記載の方法であって、前記エラー・レポートは、違反した規則の実体を明らかにすることなく、違反した規則を一般的用語で指す、方法。
【請求項38】
請求項33に記載の方法であって、
現在の期間が集積回路の製造に関する前記保護された規則を処理することができる持続時間内であるかどうかを判定するステップを、
更に含む方法。
【請求項39】
請求項38に記載の方法であって、現在の期間が集積回路の製造に関する前記保護された規則を処理することができる持続時間内であると判定するまで、集積回路の製造に関する前記保護された規則は、ブロック解除されるが処理されない、方法。
【請求項40】
請求項38に記載の方法であって、現在の期間が集積回路の製造に関する前記保護された規則を処理することができる持続時間内であると判定するまで、集積回路の製造に関する前記保護された規則は、ブロック解除されない、方法。
【請求項41】
請求項38に記載の方法であって、集積回路の製造に関する前記保護された規則を処理することができる前記持続時間は、集積回路の製造に関する前記保護された規則の異なる部分について異なる、方法。
【請求項42】
請求項38に記載の方法であって、集積回路の製造に関する前記保護された規則を処理することができる前記持続時間は、異なるユーザについて異なる、方法。
【請求項43】
請求項38に記載の方法であって、集積回路の製造に関する前記保護された規則を処理することができる前記持続時間は、月データ、年データ及び時刻データのうちの1つ又は複数を含む満了日を含む、方法。
【請求項44】
電子設計自動化情報の安全な交換のためのシステムであって、
保護された電子設計自動化情報を含むファイルを受信し、
前記ファイル内の前記保護された電子設計自動化情報を識別し、
前記ファイル内の前記保護された電子設計自動化情報の少なくとも一部にアクセスするための1つ又は複数の条件が満たされているかどうかを判定し、
前記保護された電子設計自動化情報の少なくとも一部を明らかにすることなく、前記保護された電子設計自動化情報の前記少なくとも一部にアクセスし、前記保護された電子設計自動化情報の前記少なくとも一部を処理する
ように動作可能な電子設計自動化ツールを、含むシステム。
【請求項45】
請求項44に記載のシステムであって、
前記保護された電子設計自動化情報の前記少なくとも一部にアクセスするための1つ又は複数の鍵を前記電子設計自動化ツールに提供し、
前記電子設計自動化ツールからのコール・バックに応答して、前記保護された電子設計自動化情報の前記少なくとも一部にアクセスするための前記1つ又は複数の条件が満たされているかどうかを確認するデータを前記電子設計自動化ツールに提供する
ように動作可能なサーバ・コンピュータを、更に備えるシステム。
【請求項1】
保護された電子設計自動化情報を電子設計自動化ツールで処理する方法であって、
前記保護された電子設計自動化情報を受信するステップと、
前記保護された電子設計自動化情報にアクセスするステップと、
前記保護された電子設計自動化情報の少なくとも一部を明らかにすることなく、前記保護された電子設計自動化情報の少なくとも一部を処理するステップと、
を含む方法。
【請求項2】
請求項1に記載の方法であって、
前記保護された電子設計自動化情報にアクセスするための鍵に関する情報を受信するステップを、
更に含む方法。
【請求項3】
請求項2に記載の方法であって、前記鍵に関する前記情報は、前記保護された電子設計自動化情報と共に受信される、方法。
【請求項4】
請求項2に記載の方法であって、前記鍵に関する前記情報は、複数の鍵の配列からの1つ又は複数の鍵を示すデータを含む、方法。
【請求項5】
請求項2に記載の方法であって、前記鍵に関する前記情報は、実際の鍵を示すタグである、方法。
【請求項6】
請求項2に記載の方法であって、前記鍵に関する前記情報は、隠される、方法。
【請求項7】
請求項2に記載の方法であって、前記鍵に関する前記情報は、パスワードを使用して保護される、方法。
【請求項8】
請求項1に記載の方法であって、
前記保護された電子設計自動化情報の処理の結果の少なくとも一部を保護するステップを、
更に含む方法。
【請求項9】
請求項8に記載の方法であって、
前記保護された電子設計自動化情報の処理の結果の少なくとも一部を明らかにするステップを、
更に含む方法。
【請求項10】
請求項1に記載の方法であって、
前記保護された電子設計自動化情報を示す注釈に基づいて、前記保護された電子設計自動化情報を識別するステップを、
更に含む方法。
【請求項11】
請求項1に記載の方法であって、前記保護された電子設計自動化情報は、暗号化を介して保護され、前記保護された電子設計自動化情報にアクセスすることは、暗号化解除を含む、方法。
【請求項12】
請求項1に記載の方法であって、第1パスワードは、前記電子設計自動化情報を保護するのに使用され、前記保護された電子設計自動化情報を処理することは、ユーザによって与えられた第2パスワードが前記第1パスワードと合致することを検証することを含む、方法。
【請求項13】
請求項1に記載の方法であって、前記保護された電子設計自動化情報は、複数の情報源から受信される、方法。
【請求項14】
請求項1に記載の方法であって、
前記保護された電子設計自動化情報の少なくとも一部にアクセスするための少なくとも1つの条件が満たされるかどうかを判定するステップを、
更に含む方法。
【請求項15】
請求項14に記載の方法であって、
前記保護された電子設計自動化情報と共に、前記保護された電子設計自動化情報の前記少なくとも一部にアクセスするための前記少なくとも1つの条件に関するデータを受信するステップを、
更に含む方法。
【請求項16】
請求項14に記載の方法であって、前記保護された電子設計自動化情報にアクセスするための前記少なくとも1つの条件は、前記保護された電子設計自動化情報にアクセスすることのできる最大の回数に対応する値を含み、前記少なくとも1つの条件が満たされるかどうかを判定することは、現アクセスの数値を、前記保護された電子設計自動化情報にアクセスすることのできる前記最大の回数と比較することを含む、方法。
【請求項17】
請求項14に記載の方法であって、前記保護された電子設計自動化情報にアクセスするための前記少なくとも1つの条件は、前記保護された電子設計自動化情報にアクセスすることのできる最大の回数に対応する値を含み、前記少なくとも1つの条件が満たされるかどうかを判定することは、前記少なくとも1つの条件が満たされていることの確認を要求するサーバ・コンピュータに対するコール・バック要求を生成することを含む、方法。
【請求項18】
請求項14に記載の方法であって、前記少なくとも1つの条件が満たされるかどうかを判定することは、前記保護された電子設計自動化情報の異なる部分にアクセスするための異なる条件を適用することを含む、方法。
【請求項19】
請求項14に記載の方法であって、前記少なくとも1つの条件が満たされるかどうかを判定することは、前記保護された電子設計自動化情報の前記少なくとも一部にアクセスするために異なるユーザに対して異なる条件を適用することを含む、方法。
【請求項20】
請求項14に記載の方法であって、
前記保護された電子設計自動化情報にアクセスするための鍵に関する情報を、前記保護された電子設計自動化情報の前記少なくとも一部にアクセスするための前記少なくとも1つの条件に関するデータと共に受信するステップを、
更に含む方法。
【請求項21】
請求項14に記載の方法であって、前記保護された電子設計自動化情報にアクセスするための前記少なくとも1つの条件は、満了日を含み、前記少なくとも1つの条件が満たされるかどうかを判定することは、現在日付を前記満了日と比較することを含む、方法。
【請求項22】
請求項21に記載の方法であって、満了日は、月データ、年データ及び時刻データのうちの1つ又は複数を含む、方法。
【請求項23】
請求項1に記載の方法であって、
前記電子設計情報の少なくとも一部をさらなる処理のために別のツールに転送するステップを、
更に含む方法。
【請求項24】
電子設計自動化情報の安全な交換のためのシステムであって、
保護された電子設計自動化情報を含むファイルを受信し、
前記ファイル内の前記保護された電子設計自動化情報を求め、
前記保護された電子設計自動化情報にアクセスし、
前記保護された電子設計自動化情報の少なくとも一部を明らかにすることなく、前記保護された電子設計自動化情報の少なくとも一部を処理する
ように動作可能な電子設計自動化ツールを、備えるシステム。
【請求項25】
請求項24に記載のシステムであって、前記ファイル内の前記保護された電子設計自動化情報を求めることは、前記ファイル内に埋め込まれた標識に基づく、システム。
【請求項26】
請求項24に記載のシステムであって、
保護されていない電子設計自動化情報を受信し、
保護されていない電子設計自動化情報を暗号化して、保護された電子設計自動化情報を含む前記ファイルを生成する
ように動作可能な暗号化ツールを、更に備えるシステム。
【請求項27】
請求項26に記載のシステムであって、前記暗号化ツールは更に、前記保護された電子設計自動化情報を含む前記ファイルに標識で注釈を付け、前記ファイル内の前記保護された電子設計自動化情報を示すように動作可能である、システム。
【請求項28】
請求項24に記載のシステムであって、前記電子設計自動化ツールは、物理的検証ツールであり、前記電子設計自動化情報は、集積回路の製造に関する規則を含む、システム。
【請求項29】
請求項28に記載のシステムであって、前記物理的検証ツールは、集積回路レイアウトを受信するように動作可能であり、前記保護された電子設計自動化情報を処理することは、前記集積回路レイアウトの何れかが前記集積回路の製造に関する前記規則の何れかに違反するかどうかを検証することを含む、システム。
【請求項30】
請求項29に記載のシステムであって、前記物理的検証ツールは更に、集積回路の前記製造に関する前記規則の少なくとも一部に違反しない代替集積回路レイアウトを生成するように動作可能である、システム。
【請求項31】
請求項24に記載のシステムであって、前記電子設計ツールは更に、前記保護された電子設計自動化情報の少なくとも一部を明らかにすることなく、前記保護された電子設計自動化情報の処理に関する少なくとも一部の結果を提供するように動作可能である、システム。
【請求項32】
請求項24に記載のシステムであって、前記電子設計自動化ツールは、解像度向上ツールである、システム。
【請求項33】
集積回路の製造に関する規則の安全な交換のための方法であって、
集積回路の製造に関する前記規則に注釈を付け、保護すべき前記規則の部分を選択するステップと、
保護するように選択された前記規則の前記部分を保護し、集積回路の製造に関する保護された規則を生成するステップと、
集積回路の製造に関する前記規則に注釈を付け、集積回路の製造に関する前記保護された規則を含む部分を示すステップと、
集積回路の製造に関する前記保護された規則をロック解除するステップと、
1つ又は複数の集積回路レイアウトに関するデータを受信するステップと、
前記1つ又は複数の集積回路レイアウトが集積回路の製造に関する前記規則の何れかに違反するかどうかを検証するステップと、
前記保護された規則の少なくとも一部を明らかにすることなく、前記検証の結果を示すエラー・レポートを提供するステップと、
を含む方法。
【請求項34】
請求項33に記載の方法であって、集積回路の製造に関する前記規則に注釈を付け、保護すべき集積回路の製造の部分を示すことは、少なくとも1つの標識を追加して、保護すべき前記部分に関する先頭を示すことを含む、方法。
【請求項35】
請求項33に記載の方法であって、集積回路の製造に関する前記規則に注釈を付け、保護すべき集積回路の製造の部分を示すことは、少なくとも1つの標識を追加して、保護すべき前記部分の終りを示すことを含む、方法。
【請求項36】
請求項33に記載の方法であって、保護するように選択された前記規則の前記部分を保護することは、鍵を使用して、前記選択された部分を暗号化することを含み、前記集積回路の製造に関する前記保護された規則は、前記鍵を使用して、前記保護された規則を暗号化解除することを含む、方法。
【請求項37】
請求項33に記載の方法であって、前記エラー・レポートは、違反した規則の実体を明らかにすることなく、違反した規則を一般的用語で指す、方法。
【請求項38】
請求項33に記載の方法であって、
現在の期間が集積回路の製造に関する前記保護された規則を処理することができる持続時間内であるかどうかを判定するステップを、
更に含む方法。
【請求項39】
請求項38に記載の方法であって、現在の期間が集積回路の製造に関する前記保護された規則を処理することができる持続時間内であると判定するまで、集積回路の製造に関する前記保護された規則は、ブロック解除されるが処理されない、方法。
【請求項40】
請求項38に記載の方法であって、現在の期間が集積回路の製造に関する前記保護された規則を処理することができる持続時間内であると判定するまで、集積回路の製造に関する前記保護された規則は、ブロック解除されない、方法。
【請求項41】
請求項38に記載の方法であって、集積回路の製造に関する前記保護された規則を処理することができる前記持続時間は、集積回路の製造に関する前記保護された規則の異なる部分について異なる、方法。
【請求項42】
請求項38に記載の方法であって、集積回路の製造に関する前記保護された規則を処理することができる前記持続時間は、異なるユーザについて異なる、方法。
【請求項43】
請求項38に記載の方法であって、集積回路の製造に関する前記保護された規則を処理することができる前記持続時間は、月データ、年データ及び時刻データのうちの1つ又は複数を含む満了日を含む、方法。
【請求項44】
電子設計自動化情報の安全な交換のためのシステムであって、
保護された電子設計自動化情報を含むファイルを受信し、
前記ファイル内の前記保護された電子設計自動化情報を識別し、
前記ファイル内の前記保護された電子設計自動化情報の少なくとも一部にアクセスするための1つ又は複数の条件が満たされているかどうかを判定し、
前記保護された電子設計自動化情報の少なくとも一部を明らかにすることなく、前記保護された電子設計自動化情報の前記少なくとも一部にアクセスし、前記保護された電子設計自動化情報の前記少なくとも一部を処理する
ように動作可能な電子設計自動化ツールを、含むシステム。
【請求項45】
請求項44に記載のシステムであって、
前記保護された電子設計自動化情報の前記少なくとも一部にアクセスするための1つ又は複数の鍵を前記電子設計自動化ツールに提供し、
前記電子設計自動化ツールからのコール・バックに応答して、前記保護された電子設計自動化情報の前記少なくとも一部にアクセスするための前記1つ又は複数の条件が満たされているかどうかを確認するデータを前記電子設計自動化ツールに提供する
ように動作可能なサーバ・コンピュータを、更に備えるシステム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図5A】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図5A】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公表番号】特表2007−507041(P2007−507041A)
【公表日】平成19年3月22日(2007.3.22)
【国際特許分類】
【出願番号】特願2006−528044(P2006−528044)
【出願日】平成16年9月10日(2004.9.10)
【国際出願番号】PCT/US2004/029679
【国際公開番号】WO2005/043283
【国際公開日】平成17年5月12日(2005.5.12)
【出願人】(500241860)メンター・グラフィクス・コーポレーション (42)
【Fターム(参考)】
【公表日】平成19年3月22日(2007.3.22)
【国際特許分類】
【出願日】平成16年9月10日(2004.9.10)
【国際出願番号】PCT/US2004/029679
【国際公開番号】WO2005/043283
【国際公開日】平成17年5月12日(2005.5.12)
【出願人】(500241860)メンター・グラフィクス・コーポレーション (42)
【Fターム(参考)】
[ Back to top ]