図面 (/)
課題・解決手段
概要
背景
従来から、不揮発的に情報を記憶するデバイスとして、マスクROM(Read Only Memory)が知られている。このようなマスクROMは、半導体上に所定の回路パターンを形成することで、特定の情報(以下、「ROMコード」とも称す。)を記憶する。このようなマスクROMは、典型的には、半導体基板に対して、回路パターンを記述したフォトマスクを用いて露光処理を行なうことで製造される。したがって、このようなフォトマスクに描画すべき回路パターン(以下、「レイアウトパターン」とも称す。)を効率的に作成する必要がある。
このようなマスクROMのレイアウトパターンを作成する先行技術として、特開平06−215070号公報(特許文献1)、特開平06−139309号公報(特許文献2)、および特開平05−189521号公報(特許文献3)などが知られている。
近年、情報通信技術における急速な進歩に伴って、このようなマスクROMについても、開発の短期間化、すなわちTAT(Turn Around Time)の短縮が特に要求されている。一方で、マスクROMが搭載される製品の開発過程においては、マスクROMに記憶されるべきROMコードが頻繁に変更されることも多い。
概要
ホストサーバ(SRV)は、仮ROMコードファイル(24)および設計情報ファイル(26)の生成に伴って、専用ROMコンパイラ(22)および専用ROMコンパイラ(22)に関連付けられた中間ファイル(28)を生成する。ワークステーション(WS)では、専用ROMコンパイラ(22)が実行されることで、設計情報ファイル(46)の内容が正ROMコードに応じたものに変更される。専用ROMコンパイラ(22)は、特定の設計パラメータ(32)および仮ROMコードファイル(24)に関連付けられた設計情報ファイル(26)のみを変更可能なように専用化される。
目的
効果
実績
- 技術文献被引用数
- 1件
- 牽制数
- 0件
この技術が所属する分野
(分野番号表示ON)※整理標準化データをもとに当社作成
請求項1
マスクROMの製造に向けられたレイアウトパターンを作成するためのシステムであって、第1の情報処理装置(SRV)と、第2の情報処理装置(WS)とを備え、前記第1の情報処理装置は、製造すべきマスクROMの設計パラメータを受付けるためのモジュール(202)と、第1のコードを生成するためのモジュール(204)とを含み、前記第1のコードは、前記製造すべきマスクROMに記憶される第2のコードから独立して定められており、前記第1のコードに対応する第1の設計情報を生成するためのモジュール(212,214)と、命令が格納されたプログラムファイルを出力するためのモジュール(210)とを含み、前記プログラムファイルには、前記第1のコードおよび前記第1の設計情報との関連付けを示す識別情報が付与されており、前記プログラムファイルに格納された前記命令が前記第2の情報処理装置によって実行されると、前記第2の情報処理装置は以下のモジュールを含むように構成され、前記以下のモジュールは、前記第2のコードを受付けるためのモジュール(302)と、前記第1のコードおよび前記第1の設計情報に基づいて、前記第2のコードに対応する第2の設計情報を生成するためのモジュール(306,308)と、前記識別情報に基づいて、関連付けられた前記第1のコードおよび前記第1の設計情報が存在しない場合には前記第2の設計情報の生成を禁止するモジュール(310)とを含む、システム。
請求項2
前記第1のコードを生成するためのモジュールは、前記第1のコードをランダムに決定する、請求の範囲第1項に記載のシステム。
請求項3
前記第1の情報処理装置と前記第2の情報処理装置とはデータ通信可能にネットワーク接続されており、前記第1の情報処理装置は、前記第1のコードと、前記第1の設計情報と、前記プログラムファイルとを、ネットワークを介して前記第2の情報処理装置へ配信する、請求の範囲第1項に記載のシステム。
請求項4
請求の範囲第1項に記載のシステムを用いて製造されたマスクROM。
請求項5
第1の情報処理装置(SRV)および第2の情報処理装置(WS)を含むシステムを用いて、マスクROMの製造に向けられたレイアウトパターンを作成するための方法であって、前記第1の情報処理装置によって、製造すべきマスクROMの設計パラメータを受付けるステップ(S100)と、前記第1の情報処理装置によって、第1のコードを生成するステップ(S102)とを含み、前記第1のコードは、前記製造すべきマスクROMに記憶される第2のコードから独立して定められており、前記第1の情報処理装置によって、前記第1のコードに対応する第1の設計情報を生成するステップ(S106,S108)と、前記第1の情報処理装置によって、命令が格納されたプログラムファイルを出力するステップ(S110)とを含み、前記プログラムファイルには、前記第1のコードおよび前記第1の設計情報との関連付けを示す識別情報が付与されており、前記第2の情報処理装置によって、前記プログラムファイルに格納された前記命令が実行されるステップ(S114)と、前記第2の情報処理装置によって、前記第2のコードを受付けるステップ(S118)と、前記第2の情報処理装置によって、前記第1のコードおよび前記第1の設計情報に基づいて、前記第2のコードに対応する第2の設計情報を生成するステップ(S122)と、前記第2の情報処理装置によって、前記識別情報に基づいて、関連付けられた前記第1のコードおよび前記第1の設計情報が存在しない場合には前記第2の設計情報の生成を禁止するステップ(S116)とを含む、方法。
技術分野
背景技術
0002
従来から、不揮発的に情報を記憶するデバイスとして、マスクROM(Read Only Memory)が知られている。このようなマスクROMは、半導体上に所定の回路パターンを形成することで、特定の情報(以下、「ROMコード」とも称す。)を記憶する。このようなマスクROMは、典型的には、半導体基板に対して、回路パターンを記述したフォトマスクを用いて露光処理を行なうことで製造される。したがって、このようなフォトマスクに描画すべき回路パターン(以下、「レイアウトパターン」とも称す。)を効率的に作成する必要がある。
このようなマスクROMのレイアウトパターンを作成する先行技術として、特開平06−215070号公報(特許文献1)、特開平06−139309号公報(特許文献2)、および特開平05−189521号公報(特許文献3)などが知られている。
0003
近年、情報通信技術における急速な進歩に伴って、このようなマスクROMについても、開発の短期間化、すなわちTAT(Turn Around Time)の短縮が特に要求されている。一方で、マスクROMが搭載される製品の開発過程においては、マスクROMに記憶されるべきROMコードが頻繁に変更されることも多い。
先行技術
0004
特開平06−215070号公報
特開平06−139309号公報
特開平05−189521号公報
発明が解決しようとする課題
0005
従来のレイアウトパターンを作成するシステムにおいては、ROMコードが変更されるたびに、レイアウトパターンをすべて作成し直すといった作業が発生していた。なお、特定のマスクROMにおいては、上述の特開平05−189521号公報(特許文献3)に開示されるレイアウトパターン発生装置を用いることで、TATを短縮できる場合もある。しかしながら、同一の半導体基板上にプロセッサおよびメモリが搭載されるSOC(Silicon On a Chip)などにおいては、マスクROMの配置位置自体が頻繁に変更されるため、特開平05−189521号公報(特許文献3)に開示されるレイアウトパターン発生装置をそのまま適用することはできなかった。
0006
また、近年、情報セキュリティ上の観点から、ROMコードの機密性を保ちたいという要求も高まっている。そこで、本来のROMコードとは異なる暫定的なROMコードを用いて、装置の設計開発を行なった上で、最終工程で本来のROMコードに変更し、レイアウトパターンを決定するといった工程が採用される場合も多くなってきている。
0007
しかしながら、従来のレイアウトパターンを作成するシステムにおいては、上述のような工程に十分に対応できるものではなかった。
0008
この発明は、このような課題を解決するためになされたものであって、その目的は、マスクROMに記憶すべきコードの機密性を保持しつつマスクROMのレイアウトパターンを作成することが可能なシステムを提供することである。また、この発明の別の目的は、このようなシステムによって製造されるマスクROMを提供することである。さらに、この発明のさらに別の目的は、マスクROMに記憶すべきコードの機密性を保持しつつマスクROMのレイアウトパターンを作成することが可能なレイアウトパターンを作成するための方法を提供することである。
課題を解決するための手段
0009
この発明のある局面に従えば、マスクROMの製造に向けられたレイアウトパターンを作成するためのシステムを提供する。本システムは、第1の情報処理装置と、第2の情報処理装置とを含む。第1の情報処理装置は、製造すべきマスクROMの設計パラメータを受付けるためのモジュールと、第1のコードを生成するためのモジュールとを含む。第1のコードは、製造すべきマスクROMに記憶される第2のコードから独立して定められている。本システムは、さらに、第1のコードに対応する第1の設計情報を生成するためのモジュールと、命令が格納されたプログラムファイルを出力するためのモジュールとを含む。プログラムファイルには、第1のコードおよび第1の設計情報との関連付けを示す識別情報が付与されている。プログラムファイルに格納された命令が第2の情報処理装置によって実行されると、第2の情報処理装置は以下のモジュールを含むように構成される。以下のモジュールは、第2のコードを受付けるためのモジュールと、第1のコードおよび第1の設計情報に基づいて、第2のコードに対応する第2の設計情報を生成するためのモジュールと、識別情報に基づいて、関連付けられた第1のコードおよび第1の設計情報が存在しない場合には第2の設計情報の生成を禁止するモジュールとを含む。
0010
好ましくは、第1のコードを生成するためのモジュールは、第1のコードをランダムに決定する。
0011
好ましくは、第1の情報処理装置と第2の情報処理装置とはデータ通信可能にネットワーク接続されており、第1の情報処理装置は、第1のコードと、第1の設計情報と、プログラムファイルとを、ネットワークを介して第2の情報処理装置へ配信する。
0012
この発明の別の局面に従えば、上述のシステムを用いて製造されたマスクROMを提供する。
0013
この発明のさらに別の局面に従えば、第1の情報処理装置および第2の情報処理装置を含むシステムを用いて、マスクROMの製造に向けられたレイアウトパターンを作成するための方法を提供する。本方法は、第1の情報処理装置によって、製造すべきマスクROMの設計パラメータを受付けるステップと、第1の情報処理装置によって、第1のコードを生成するステップとを含む。第1のコードは、製造すべきマスクROMに記憶される第2のコードから独立して定められている。本方法は、さらに、第1の情報処理装置によって、第1のコードに対応する第1の設計情報を生成するステップと、第1の情報処理装置によって、命令が格納されたプログラムファイルを出力するステップとを含む。プログラムファイルには、第1のコードおよび第1の設計情報との関連付けを示す識別情報が付与されている。本方法は、さらに、第2の情報処理装置によって、プログラムファイルに格納された命令が実行されるステップと、第2の情報処理装置によって、第2のコードを受付けるステップと、第2の情報処理装置によって、第1のコードおよび第1の設計情報に基づいて、第2のコードに対応する第2の設計情報を生成するステップと、第2の情報処理装置によって、識別情報に基づいて、関連付けられた第1のコードおよび第1の設計情報が存在しない場合には第2の設計情報の生成を禁止するステップとを含む。
発明の効果
0014
この発明によれば、マスクROMに記憶すべきコードの機密性を保持しつつマスクROMのレイアウトパターンを作成することができる。
図面の簡単な説明
0015
この発明の実施の形態に従う一般的な製品設計フローを示す概略図である。
この発明の実施の形態に従うシステムの概略構成を示す図である。
図2に示すホストサーバおよびワークステーションのハードウェア構成を示す概略構成図である。
この発明の実施の形態に従うシステムにおける処理の概要を説明するための図である。
この発明の実施の形態に従うホストサーバの機能ブロック図である。
この発明の実施の形態に従うワークステーションの機能ブロック図である。
この発明の実施の形態に従うシステムにおける処理手順を示すフローチャートである。
実施例
0016
この発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
0017
<製品設計フロー>
まず、本実施の形態に従うマスクROMの製造に向けられたレイアウトパターンを作成するためのシステムについて説明する前に、その位置付けについての理解を容易にするために、半導体チップを含む一般的な製品設計フローについて説明する。なお、図1に示す製品設計フローは、顧客から特定の半導体チップについての要求を受けて、チップメーカがマスクROMを含めた一連の半導体チップを設計開発する場合の処理手順を示す。
0018
図1は、この発明の実施の形態に従う一般的な製品設計フローを示す概略図である。図1を参照して、まず、顧客が対象となる半導体チップを含めた製品全体についてのシステム設計を行なう(ステップS2)。より具体的には、入出力データの内容や論理の内容などが決定される。
0019
このシステム設計が完了すると、顧客もしくはチップメーカが、論理設計および検証を行なう(ステップS4)。この工程は、レジスタ転送レベル(RTL:Register Transfer Level)とも称され、ハードウェアレジスタとブール論理回路との間のデータの授受に着目して、対象とする半導体チップにおける回路動作が設計される。続いて、チップメーカが、複数の論理設計を1つの半導体チップにまとめる論理合成を行なう(ステップS6)。
0020
続いて、チップメーカが、ステップS6において合成された論理に応じたテスト設計を行なう(ステップS8)。より具体的には、スキャン手法やBIST(Built In Self−Test)手法などを用いて、故障検出率の高いテストパターンを設計する。続いて、チップメーカが、基板上のレイアウトを決定するレイアウト設計を行なう(ステップS10)。
0021
上述のような一連の設計が完了すると、チップメーカは、サインオフ検証を行なう(ステップS12)。このサインオフ検証では、最終的な論理機能およびタイミングが検証される。典型的には、このサインオフ検証には、スタティックタイミング解析(STA:Static Timing Analysis)、シグナルインテグリティ(Signal Integrity)解析、および実負荷シミュレーションなどが用いられる。
0022
サインオフ検証が完了すると、チップメーカは、レイアウト検証を行なう(ステップS14)。このレイアウト検証では、マスクのレイアウトパターンが検証される。典型的には、このレイアウト検証では、DRC(Design Rule Checking)検証と、LVS(Layout Versus Schematic)とが実行される。DRC検証では、製造装置の制約から決まる幾何学的な設計ルールを満足しているかどうかが検証される。また、LVS検証では、論理設計および回路設計段階で作成されたエレメントやエレメント間の電気的な接続が、レイアウト設計で正しく実装されているかが検証される。
0023
上述のような検証工程を経て、実際のフォトマスクが作成される(ステップS16)。
ところで、上述のステップS2〜S14までの工程は、コンピュータ上で実現されることになる。これらの工程のうちステップS6〜S14については、予め部品ライブラリLIBを用意しておき、この部品ライブラリLIBを逐次参照しながら、各種の処理が実行される。この部品ライブラリLIBは、メモリに関するものとして、RAM(Random Access Memory)ライブラリおよびROMライブラリを含む。
0024
このようなメモリに関する設計手順として、まず、顧客もしくはチップメーカが、メモリ種類の検討を行なう(ステップS30)。続いて、顧客もしくはチップメーカが、必要なメモリの種類毎にその容量などを定めるメモリアサインを行なう(ステップS32)。続いて、顧客もしくはチップメーカが、定められた設計パラメータに基づいて、RAMコンパイラおよびROMコンパイラを用いて、RAMライブラリおよびROMライブラリをそれぞれ生成する(ステップS34およびS36)。
0025
<概要>
本実施の形態に従うマスクROMの製造に向けられたレイアウトパターンを作成するためのシステムは、主として、図1に示すステップS36のROMライブラリに関する処理に向けられる。より具体的には、本実施の形態に従うシステムにおいては、顧客の保有するROMコードの機密性を高めたいという要求などに応じるために、チップメーカによるサインオフ検証(図1に示すステップS12)やレイアウト検証(図1に示すステップS14)を暫定的なROMコード(以下、「仮ROMコード」とも称す。)を用いて行なうとともに、一連の設計および検証が完了した時点で、仮ROMコードを顧客の保有する本来のROMコード(以下、「本ROMコード」とも称す。)に変更される。そして、この変更されたROMコードに基づいて設計された情報に基づいて、フォトマスクが作成される。
0026
このような構成を採用することで、本ROMコードについての顧客以外の者に対する情報セキュリティ機能を高めることができる。さらに、ROMコードが変更されても、既に行なわれた製品設計フローの工程をやり直す必要がないため、コード変更に伴うTATを短縮することができる。
0027
<システム構成>
図2は、この発明の実施の形態に従うシステムの概略構成を示す図である。図2を参照して、本実施の形態に従うシステムは、典型的には、チップメーカ側に設けられたホストサーバSRVおよびワークステーションWS1と、顧客側に設けられたワークステーションWS2−1,WS2−2,・・・とを含む。ホストサーバSRVと、ワークステーションWS1,WS2−1,WS2−2,・・・(以下、「ワークステーションWS」とも総称する。)とは、互いにデータ通信可能に接続された情報処理装置である。なお、ホストサーバSRVとワークステーションWS1との間は、典型的には、社内LANを介してデータ通信可能に接続されており、ホストサーバSRVとワークステーションWS2−1,WS2−2,・・・との間は、典型的には、インターネットなどのネットワークNWを介してデータ通信可能に接続されている。なお、ワークステーションWS2−1,WS2−2,・・・の各々は、互いに独立した顧客側に設けられることが想定されている。代替的に、チップメーカ自身が半導体チップを含む製品などを直接に製造販売する場合などには、顧客側にワークステーションWSが存在しなくともよい。
0028
<ハードウェア構成>
図3は、図2に示すホストサーバSRVおよびワークステーションWSのハードウェア構成を示す概略構成図である。図3には、ホストサーバSRVおよびワークステーションWSが汎用的なコンピュータによって実現される構成を示すが、専用のハードウェアを用いてもよい。
0029
図3を参照して、ホストサーバSRVは、本体部101と、表示部としてのモニタ102と、入力部としてのキーボード103およびマウス104とを含む。モニタ102、キーボード103およびマウス104は、本体部101に接続される。
0030
本体部101は、演算部としてのCPU(Central Processing Unit)105と、記憶部としてのメモリ106および固定ディスク107と、通信インターフェース109と、データ読出装置としてのFD(Flexible Disk)駆動装置111およびCD−ROM(Compact Disk−Read Only Memory)駆動装置113とを含む。これらの各部は、バスを介して相互接続されている。
0031
ホストサーバSRVでは、典型的には、CPU105がメモリ106などのコンピュータハードウェアを用いてプログラムを実行することで、後述する各種機能が提供される。一般的に、このようなプログラムは、FD112やCD−ROM114などの記憶媒体に格納されて、またはネットワークなどを介して流通する。そして、このようなプログラムは、FD駆動装置111やCD−ROM駆動装置113などにより記憶媒体から読取られて、または通信インターフェース109にて受信されて、固定ディスク107に格納される。さらに、このようなプログラムは、固定ディスク107からメモリ106に読出されて、CPU105により実行される。
0032
なお、CPU105が、コンピュータのオペレーティングシステム(OS)の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列および/またはタイミングで呼出して処理を実行することで、ホストサーバSRVにより提供される機能の全部もしくは一部を実現する場合もある。このような場合には、本発明に係るプログラム自身には上記のようなモジュールが含まれることなく、代替的に、OSによって提供される上記のようなモジュールを利用するための命令を含む。
0033
CPU105は、各種の数値論理演算を行なうプロセッサであり、プログラムされた命令を順次実行することで、後述するような処理を実行する。メモリ106は、CPU105のプログラム実行に応じて、各種の情報を格納する。
0034
モニタ102は、CPU105が出力する各種情報を表示する。モニタ102は、一例として、LCD(Liquid Crystal Display)やCRT(Cathode Ray Tube)などからなる。
0036
通信インターフェース109は、ワークステーションWSまたは他のホストサーバSRVなどとの間でデータ通信を行なう。
0037
ワークステーションWSのハードウェア構成についても、ホストサーバSRVと同様であるので、詳細な説明は繰返さない。
0038
<全体機能構成>
図4は、この発明の実施の形態に従うシステムにおける処理の概要を説明するための図である。なお、図4には、チップメーカの設計部門および顧客のいずれもが設計開発に携わる場合について例示する。
0039
図4を参照して、まず、ホストサーバSRVは、製造すべきマスクROMの設計パラメータ32を受付ける。すなわち、顧客は、自身の要求するマスクROMについての、(1)ROMタイプ(種類)、および(2)Word数/Bit数などを、ホストサーバSRV(チップメーカ)へ伝える。ホストサーバSRVでは、ROMコンパイラ10が実行可能にインストールされている。このROMコンパイラ10が実行されることで、入力された設計パラメータ32に基づいて、仮ROMコードファイル24が生成される。この仮ROMコードファイル24には、顧客がマスクROMに記憶させるべきROMコード(正ROMコード)とは独立して定められる仮ROMコードが格納される。この仮ROMコードは、ランダムに決定されることが好ましい。これは、サインオフ検証やレイアウト検証において、検証カバレッジを向上させるためである。すなわち、「0」もしくは「1」の連続するようなビット列が仮ROMコードとして生成されると、論理設計上のエラー、レイアウト上のエラー、および回路接続上のエラーなどを発見できない場合があるためである。
0040
より具体的には、仮ROMコードがすべて「0」もしくは「1」であれば、異なるアドレスから出力される結果が同じになってしまい、検証カバレッジを向上させることができない。これに対して、仮ROMコードをランダムに設定することで、アドレスが異なれば、出力の期待値が異なるため、検証カバレッジを向上させることができる。
0041
また、仮ROMコードがすべて「0」もしくは「1」であれば、ROMコードに対応するレイアウトが画一化(コンタクトが存在するもののみ、あるいはコンタクトが存在しないもののみ)する。そのため、コンタクトの有無の組み合わせを利用したレイアウト上のエラーを発見できない場合がある。これに対して、仮ROMコードをランダムに設定することで、レイアウトの組み合わせが多様化するため、レイアウト上のエラーの発見確率を高めることができる。
0042
同様に、仮ROMコードがすべて「0」もしくは「1」であれば、ネットリストが画一化するため、回路接続上のエラーを発見できない場合がある。これに対して、仮ROMコードをランダムに設定することで、ネットリストが多様化するため、回路接続上のエラーの発見確率を高めることができる。
0043
なお、この仮ROMコードは、典型的には、論理シミュレータで用いられるハードウェア記述言語(VerilogHDL)で記述される(図4に示す「Verilogモデル」)。この仮ROMコードファイル24の内容の一例は、以下のようになる。
0044
//BRMA24P2:8bits,1024words
@0 FE
@1AE
@2 BB
・・・
上述の記述の1行目には、仮ROMコードファイル24に与えられるモジュール名、Bit数、Word数が定義される。続く2行目以降からは、「@」に引き続く数字が記憶されるべきマスクROM上のアドレスを示し、さらにそれに続く「FE」といった記述が記憶されるべきマスクROMコードを示す。
0045
また、ホストサーバSRVは、生成された仮ROMコードに対応する設計情報ファイル26を生成する。この設計情報ファイル26は、エレメントについての電気的な接続状態を記述した回路設計データ(CDL:Circuit Design language)と、エレメントについての幾何学的位置を記述したレイアウト設計データ(GDSII:Graphical Data system II)とを含む。
0046
さらに、ホストサーバSRVは、上述の仮ROMコードファイル24および設計情報ファイル26の生成に伴って、専用ROMコンパイラ22および専用ROMコンパイラ22に関連付けられた中間ファイル28を生成する。この専用ROMコンパイラ22は、後述するように、ワークステーションWS上で、正ROMコードファイル44、および正ROMコードに対応する設計情報ファイル46を生成するための一種のプログラムである。また、中間ファイル28は、対応する専用ROMコンパイラ22と同時に生成された仮ROMコードファイル24および設計情報ファイル26との間の関連付けを示す。すなわち、中間ファイル28に含まれる識別情報は、専用ROMコンパイラ22がワークステーションWS上で実行された際に、その内容を変更可能な範囲を、当該専用ROMコンパイラ22と同時に生成された特定の仮ROMコードファイル24および設計情報ファイル26のみに限定するために用いられる。
0047
上述のように生成されるファイルセット20(専用ROMコンパイラ22、中間ファイル28、正ROMコードファイル44、および設計情報ファイル46)は、設計パラメータ32の入力元に対応するワークステーションWSへネットワークを介して配信される。このファイルセット20は、典型的には、チップメーカの設計部門に設けられるワークステーションWSおよび/または顧客側に設けられるワークステーションWSへ配信される。
0048
チップメーカの設計部門に設けられるワークステーションWSでは、ホストサーバSRVから配信された設計情報ファイル46に基づいて、サインオフ検証やレイアウト検証などが実行される。
0049
一方、顧客側に設けられたワークステーションWSでは、専用ROMコンパイラ22が実行され、設計情報ファイル46の内容を正ROMコードに応じたものに変更される。すなわち、専用ROMコンパイラ22がワークステーションWSによって実行されることで、ワークステーションWSは、正ROMコード42を受付けるとともに、ホストサーバSRVから受信した仮ROMコードに対応する設計情報ファイル26を、正ROMコード42に対応する設計情報ファイル46に変更して出力する。このとき、専用ROMコンパイラ22を実行するワークステーションWSは、正ROMコードファイル44を同時に出力してもよい。
0050
また、専用ROMコンパイラ22を実行するワークステーションWSは、当該専用ROMコンパイラ22に関連付けられた仮ROMコードファイル24および設計情報ファイル26が存在しない場合には、上述のような設計情報ファイル46の生成を禁止する。すなわち、専用ROMコンパイラ22は、特定の設計パラメータ32および仮ROMコード(仮ROMコードファイル24の内容)に関連付けられた設計情報ファイル26のみを変更可能なように専用化される。なお、専用ROMコンパイラ22を実行するワークステーションWSは、実行中の専用ROMコンパイラ22に付与された中間ファイル28に含まれる識別情報を参照して、対象の設計情報ファイル26を特定する。このような専用化処理によって、異なるパラメータ、異なるバージョン、および異なる正ROMコードに基づく設計情報ファイル46が生成されてしまうことを回避できる。
0051
このような専用化を行なう典型的な手法として、本実施の形態に従うシステムにおいては、上述の中間ファイル28に含まれる識別情報が用いられる。より具体的には、中間ファイル28には、対応する専用ROMコンパイラ22に関連付けられたモジュール名のリストが記述される。また、仮ROMコードファイル24および設計情報ファイル26についても、それぞれ生成時のモジュール名が付与されている。なお、このモジュール名は、本実施の形態に従うシステムにおいてユニークな値であることが好ましい。そして、ワークステーションWSが専用ROMコンパイラ22を実行すると、まず、対応する中間ファイル28が参照され、その中に記述されているモジュール名に対応する仮ROMコードファイル24および設計情報ファイル26が存在するか否かが判断される。そして、両方のファイルが存在している場合に限って、上述の正ROMコード42の受付処理や設計情報ファイル46の生成処理が実行可能になる。
0052
<情報セキュリティ>
上述したように、ホストサーバSRVにインストールされているROMコンパイラ10から分離して、専用ROMコンパイラ22を各ワークステーションWSへ配信することで、情報セキュリティ機能を高めることができる。より具体的な形態としては、ホストサーバSRVをチップメーカ側に設ける構成に代えて、ベンダー側に設けてもよい。そして、正ROMコードは、チップメーカ側のセキュアな領域もしくは顧客側に格納することが好ましい。
0055
図5を参照して、ホストサーバSRVは、その制御構造として、入力モジュール202と、仮コード生成モジュール204と、言語変換モジュール206と、中間ファイル生成モジュール208と、専用ROMコンパイラ出力モジュール210と、レイアウト設計データ生成モジュール212と、回路設計データ生成モジュール214と、配信モジュール216とを含む。
0056
入力モジュール202は、製造すべきマスクROMについてのROMタイプ(種類)やWord数/Bit数といった設計パラメータを受付ける。
0057
仮コード生成モジュール204は、入力モジュール202を介して設定された設計パラメータに応じたROMコードをランダムに決定し、仮ROMコードとして出力する。
0058
言語変換モジュール206は、仮コード生成モジュール204によって生成された仮ROMコードをハードウェア記述言語(VerilogHDL)で示されるデータに変換し、仮ROMコードファイルとして、配信モジュール216へ出力する。
0059
中間ファイル生成モジュール208は、仮ROMコードファイル24に与えられるモジュール名といった識別情報を含む中間ファイルを生成する。専用ROMコンパイラ出力モジュール210は、中間ファイル生成モジュール208によって生成された中間ファイルを付与した専用ROMコンパイラを配信モジュール216へ出力する。
0060
レイアウト設計データ生成モジュール212は、仮コード生成モジュール204によって生成された仮ROMコードに対応するレイアウト設計データを生成し、配信モジュール216へ出力する。また、回路設計データ生成モジュール214は、仮コード生成モジュール204によって生成された仮ROMコードに対応する回路設計データを生成し、配信モジュール216へ出力する。
0061
配信モジュール216は、いずれかのワークステーションWSからの要求に応答して、上述の各部で生成された、仮ROMコードファイル、専用ROMコンパイラ、中間ファイル、レイアウト設計データ、および回路設計データを配信する。
0062
ワークステーションWSは、ホストサーバSRVから配信された専用ROMコンパイラを実行することで、図6に示すような制御構造を実現する。図6を参照して、ワークステーションWSは、その制御構造として、入力モジュール302と、言語変換モジュール304と、レイアウト設計データ変更モジュール306と、回路設計データ変更モジュール308と、監視モジュール310とを含む。
0063
入力モジュール302は、製造すべきマスクROMに記憶すべき正ROMコードを受付ける。
0064
言語変換モジュール304は、入力モジュール302を介して入力される正ROMコードをハードウェア記述言語(VerilogHDL)で示されるデータに変換し、正ROMコードファイルとして出力する。
0065
レイアウト設計データ変更モジュール306は、ホストサーバSRVから受信したレイアウト設計データに対して、入力モジュール302を介して入力される正ROMコードに応じた変更を行なうことで、正ROMコードに対応するレイアウト設計データを生成する。同様に、回路設計データ変更モジュール308は、ホストサーバSRVから受信した回路設計データに対して、入力モジュール302を介して入力される正ROMコードに応じた変更を行なうことで、正ROMコードに対応する回路設計データを生成する。
0066
監視モジュール310は、対応するワークステーションWSにおいて実行中の専用ROMコンパイラに関連付けられた仮ROMコードファイルおよび当該仮ROMコードに対応する設計情報ファイル(レイアウト設計データおよび回路設計データ)の存在を監視する。そして、いずれかのファイルが存在しない場合には、言語変換モジュール304、レイアウト設計データ変更モジュール306、および回路設計データ変更モジュール308における生成処理を禁止する。
0067
<処理手順>
図7は、この発明の実施の形態に従うシステムにおける処理手順を示すフローチャートである。図7に示すステップは、ホストサーバSRVまたはワークステーションWSのCPUによって実行される。
0068
図7を参照して、ホストサーバSRVのCPU105は、製造すべきマスクROMについてのROMタイプ(種類)やWord数/Bit数といった設計パラメータを受付ける(ステップS100)。このとき、顧客側もしくはチップメーカ側のユーザが、ホストサーバSRVに対して、所望の設計パラメータを入力する。
0069
続いて、ホストサーバSRVのCPU105は、入力された設計パラメータに応じたROMコードをランダムに決定し、仮ROMコードファイルとして出力する(ステップS102)。このとき、ホストサーバSRVのCPU105は、仮ROMコードファイルに与えるモジュール名を予め決定する。さらに、ホストサーバSRVのCPU105は、仮ROMコードファイルに与えられるモジュール名などの識別情報を含む中間ファイルを生成する(ステップS104)。
0070
また、ホストサーバSRVのCPU105は、ステップS102において決定した仮ROMコードに対応するレイアウト設計データを生成する(ステップS106)とともに、仮ROMコードに対応する回路設計データを生成する(ステップS108)。
0071
最終的に、ホストサーバSRVのCPU105は、ステップS102において生成した仮ROMコードファイル、ステップS106において生成したレイアウト設計データ、ステップS108において生成した回路設計データ、ステップS104において生成した中間ファイル、および専用ROMコンパイラをワークステーションWSへ配信する(ステップS110)。
0072
ワークステーションWSのCPU105は、仮ROMコードファイルなどを含むデータセットをホストサーバSRVから受信すると、それらをメモリ106または固定ディスク107に格納する(ステップS112)。
0073
続いて、ワークステーションWSのCPU105は、専用ROMコンパイラの実行が指示されたか否かを判断する(ステップS114)。専用ROMコンパイラの実行が指示されていなければ(ステップS114においてNO)、ステップS114の処理が繰返される。
0074
一方、専用ROMコンパイラの実行が指示されると(ステップS114においてYES)、ワークステーションWSのCPU105は、実行中の専用ROMコンパイラに関連付けられた仮ROMコードファイルおよび当該仮ROMコードに対応する設計情報ファイル(レイアウト設計データおよび回路設計データ)が存在しているか否かを判断する(ステップS116)。実行中の専用ROMコンパイラに関連付けられた仮ROMコードファイルおよび当該仮ROMコードに対応する設計情報ファイルのいずれかが存在していなければ(ステップS116においてNO)、専用ROMコンパイラの実行は中止される。
0075
これに対して、実行中の専用ROMコンパイラに関連付けられた仮ROMコードファイルおよび当該仮ROMコードに対応する設計情報ファイルがいずれも存在していれば(ステップS116においてYES)、ワークステーションWSのCPU105は、正ROMコードが入力されたか否かを判断する(ステップS118)。正ROMコードが入力されていなければ(ステップS118においてNO)、ステップS118の処理が繰返される。
0076
これに対して、正ROMコードが入力されると(ステップS118においてYES)、ワークステーションWSのCPU105は、入力された正ROMコードをハードウェア記述言語で示されるデータに変換し、正ROMコードファイルとして出力する(ステップS120)。続いて、ワークステーションWSのCPU105は、ホストサーバSRVから受信したレイアウト設計データに対して、入力された正ROMコードに応じた変更を行なうことで、正ROMコードに対応するレイアウト設計データを生成する(ステップS122)。また、ワークステーションWSのCPU105は、ホストサーバSRVから受信した回路設計データに対して、入力された正ROMコードに応じた変更を行なうことで、正ROMコードに対応する回路設計データを生成する(ステップS124)。そして、処理は終了する。
0077
<作用効果>
この発明の実施の形態に従うシステムによれば、正ROMコードに対応する設計情報ファイルを生成するコンパイラが、製造すべきマスクROMの設計パラメータに応じた設計情報ファイルを生成するコンパイラから分離される。すなわち、本ROMコードを保有するユーザ以外の開発者は正ROMコードにアクセスすることなく、一連の設計開発を行なうことができる。そのため、本ROMコードに対する情報セキュリティ機能を高めることができる。
0078
また、この発明の実施の形態に従うシステムによれば、ROMコードが変更されたとしても、変更前に行なわれた工程をやり直す必要がない。そのため、ROMコード変更時のTATを短縮することができる。
0079
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
0080
10 ROMコンパイラ、20ファイルセット、22 専用ROMコンパイラ、24 正ROMコードファイル、26設計情報ファイル、28中間ファイル、32設計パラメータ、42 正ROMコード、44 正ROMコードファイル、46 設計情報ファイル、101 本体部、102モニタ、103キーボード、104マウス、106メモリ、107固定ディスク、109通信インターフェース、111FD駆動装置、113CD−ROM駆動装置、202入力モジュール、204仮コード生成モジュール、206言語変換モジュール、208中間ファイル生成モジュール、210 コンパイラ出力モジュール、212レイアウト設計データ生成モジュール、214回路設計データ生成モジュール、216配信モジュール、302 入力モジュール、304 言語変換モジュール、306 レイアウト設計データ変更モジュール、308 回路設計データ変更モジュール、310監視モジュール、LIB部品ライブラリ、NWネットワーク、SRVホストサーバ、WS,WS1,WS2ワークステーション。