(57)【要約】  【課題】  目視によるレイアウトデータのチェックを不要とすること等が可能な半導体集積回路の設計方法等を提供する。  【解決手段】  ＲＯＭコードに基づいて第１のシミュレーションを行うステップ（ａ）と、ＲＯＭコードに基づいてレイアウトデータを作成するステップ（ｂ）と、レイアウトデータに基づいて第２のシミュレーションを行うステップ（ｃ）と、第１のシミュレーションの結果と第２のシミュレーションの結果との比較を行うステップ（ｄ）とを具備する。【選択図】  図２
2006221417.tif 000002
【特許請求の範囲】
【請求項１】
ＲＯＭコードに基づいて第１のシミュレーションを行うステップ（ａ）と、
前記ＲＯＭコードに基づいてレイアウトデータを作成するステップ（ｂ）と、
前記レイアウトデータに基づいて第２のシミュレーションを行うステップ（ｃ）と、
前記第１のシミュレーションの結果と前記第２のシミュレーションの結果との比較を行うステップ（ｄ）と、
を具備する半導体集積回路の設計方法。
【請求項２】
前記第１のシミュレーションの結果と前記第２のシミュレーションの結果とが一致しない場合に、ステップ（ｂ）〜ステップ（ｄ）を繰り返すステップ（ｅ）を更に具備する、請求項１記載の半導体集積回路の設計方法。
【請求項３】
前記第１のシミュレーションが論理シミュレーションであり、前記第２のシミュレーションがトランジスタスイッチングシミュレーションである、請求項１又は２記載の半導体集積回路の設計方法。
【請求項４】
ステップ（ａ）が、
前記ＲＯＭコードに基づいてビヘイビアモデルを作成するステップ（ａ１）と、
前記ビヘイビアモデルを用いて論理シミュレーションを行うステップ（ａ２）と、
を含む、請求項３記載の半導体集積回路の設計方法。
【請求項５】
ステップ（ｃ）が、
前記レイアウトデータに基づいてネットリストを作成するステップ（ｃ１）と、
前記ネットリストに基づいてトランジスタスイッチングシミュレーションを行うステップ（ｃ２）と、
を含む、請求項３又は４記載の半導体集積回路の設計方法。
【請求項６】
請求項１〜５のいずれか１項に記載の半導体集積回路の設計方法を用いて設計されたことを特徴とする半導体集積回路。
【請求項７】
ＲＯＭコードに基づいて第１のシミュレーションを行うための第１のシミュレーション処理部と、
前記ＲＯＭコードに基づいてレイアウトデータを作成するためのレイアウトデータ作成処理部と、
前記レイアウトデータに基づいて第２のシミュレーションを行うための第２のシミュレーション処理部と、
前記第１のシミュレーションの結果と前記第２のシミュレーションの結果との比較を行うためのシミュレーション結果比較処理部と、
を具備する半導体集積回路の設計装置。
【請求項８】
ＲＯＭコードに基づいて第１のシミュレーションを行う手順（ａ）と、
前記ＲＯＭコードに基づいてレイアウトデータを作成する手順（ｂ）と、
前記レイアウトデータに基づいて第２のシミュレーションを行う手順（ｃ）と、
前記第１のシミュレーションの結果と前記第２のシミュレーションの結果との比較を行う手順（ｄ）と、
をＣＰＵに実行させるための半導体集積回路の設計プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の設計方法及びそのような半導体集積回路の設計方法を用いて設計された半導体集積回路に関する。さらに、本発明は、そのような半導体集積回路の設計方法を用いた半導体集積回路の設計装置及び半導体集積回路の設計を行うためのプログラムに関する。
【背景技術】
【０００２】
従来、ＲＯＭ（Read Only Memory）のレイアウトデータのチェックは、設計者がレイアウト・ビューワ等を用いて目視により行っていた。しかしながら、設計者による目視では、膨大なレイアウトデータの全てをチェックすることは事実上不可能であり、レイアウトデータの一部のみをチェックするに留まることが現実である。
【０００３】
また、上記のような状況に鑑み、レイアウトデータのチェックを行わず、製品（チップ）を製造し、チップをテストすることにより、ＲＯＭの内容に誤りがないことを確認することも行われている。しかしながら、この場合、ＲＯＭの内容に誤りがあった場合、レイアウトデータの作成〜チップの製造を再度行う必要があり、ＴＡＴ（Turn Around Time）が長くなるとともにコストがかかってしまうという問題がある。
【０００４】
ところで、ＲＯＭデータに基づいてＲＯＭ工程ＥＢデータを作成するＲＯＭ工程ＥＢデータ作成手段と、ＲＯＭデータに基づいてＲＯＭ工程ストリームデータを作成するＲＯＭ工程ストリームデータ作成手段と、ＲＯＭ工程ＥＢデータ作成手段により作成したＲＯＭ工程ＥＢデータと、ＲＯＭ工程ストリームデータ作成手段により作成したＲＯＭ工程ストリームデータとを比較する比較手段とを備えたことを特徴とするＲＯＭ工程ＥＢデータ検証装置が知られている（例えば、特許文献１参照）。
しかしながら、特許文献１掲載のＲＯＭ工程ＥＢデータ検証装置は、ＲＯＭ工程ＥＢデータの検証を行うためのものであり、レイアウトデータの検証を行うためのものではない。
【０００５】
【特許文献１】特開平１０−３３５２２７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
そこで、上記の点に鑑み、本発明は、目視によるレイアウトデータのチェックを不要とすること等を可能とする半導体集積回路の設計方法を提供することを第１の目的とする。また、本発明はそのような半導体集積回路の設計方法を用いて設計された半導体集積回路を提供することを第２の目的とする。また、本発明は、そのような半導体集積回路の設計方法を用いた半導体集積回路の設計装置を提供することを第３の目的とする。また、本発明は、半導体集積回路の設計を行うためのプログラムを提供することを第４の目的とする。
【課題を解決するための手段】
【０００７】
以上の課題を解決するため、本発明に係る半導体集積回路の設計方法は、ＲＯＭコードに基づいて第１のシミュレーションを行うステップ（ａ）と、ＲＯＭコードに基づいてレイアウトデータを作成するステップ（ｂ）と、レイアウトデータに基づいて第２のシミュレーションを行うステップ（ｃ）と、第１のシミュレーションの結果と第２のシミュレーションの結果との比較を行うステップ（ｄ）とを具備する。
【０００８】
この半導体集積回路の設計方法において、第１のシミュレーションの結果と第２のシミュレーションの結果とが一致しない場合に、ステップ（ｂ）〜ステップ（ｄ）を繰り返すステップ（ｅ）を更に具備することとしても良い。
また、第１のシミュレーションが論理シミュレーションであり、第２のシミュレーションがトランジスタスイッチングシミュレーションであることとしても良い。
【０００９】
また、ステップ（ａ）が、ＲＯＭコードに基づいてビヘイビアモデルを作成するステップ（ａ１）と、ビヘイビアモデルを用いて論理シミュレーションを行うステップ（ａ２）とを含むこととしても良い。
また、ステップ（ｃ）が、レイアウトデータに基づいてネットリストを作成するステップ（ｃ１）と、ネットリストに基づいてトランジスタスイッチングシミュレーションを行うステップ（ｃ２）とを含むこととしても良い。
【００１０】
また、本発明に係る半導体集積回路は、本発明に係る半導体集積回路の設計方法を用いて設計されたことを特徴とする。
【００１１】
また、本発明に係る半導体集積回路の設計装置は、ＲＯＭコードに基づいて第１のシミュレーションを行うための第１のシミュレーション処理部と、ＲＯＭコードに基づいてレイアウトデータを作成するためのレイアウトデータ作成処理部と、レイアウトデータに基づいて第２のシミュレーションを行うための第２のシミュレーション処理部と、第１のシミュレーションの結果と第２のシミュレーションの結果との比較を行うためのシミュレーション結果比較処理部とを具備する。
【００１２】
また、本発明に係る半導体集積回路の設計プログラムは、ＲＯＭコードに基づいて第１のシミュレーションを行う手順（ａ）と、ＲＯＭコードに基づいてレイアウトデータを作成する手順（ｂ）と、レイアウトデータに基づいて第２のシミュレーションを行う手順（ｃ）と、第１のシミュレーションの結果と第２のシミュレーションの結果との比較を行う手順（ｄ）とをＣＰＵに実行させる。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照しながら、本発明の実施の形態について説明する。
図１は、本発明の一実施形態に係る半導体集積回路の設計装置の概要を示す図である。図１に示すように、この半導体集積回路の設計装置１は、入力部２と、表示部３と、ＲＯＭ（Read Only Memory）コード記録部４と、第１シミュレーション処理部５と、レイアウトデータ作成処理部６と、レイアウトデータ記録部７と、第２シミュレーション処理部８と、シミュレーション結果比較処理部９とを具備する。
【００１４】
入力部２は、ユーザ（半導体集積回路の設計技術者）からの入力を受け付けるためのキーボード、マウス等であり、表示部３は、半導体集積回路の設計結果等を表示するためのＣＲＴ、ＬＣＤ等である。
ＲＯＭコード記録部４は、設計対象であるＲＯＭのデータ内容を表すＲＯＭコードを記録している。なお、ＲＯＭコードのフォーマットとしては、一般に、インテル社のＨＥＸフォーマット、モトローラ社のＳフォーマット、又は、バイナリフォーマットが用いられている。
【００１５】
第１シミュレーション処理部５は、ＲＯＭライブラリ作成処理部１１と、論理シミュレーション処理部１２とを具備する。
ＲＯＭライブラリ作成処理部１１は、ＲＯＭコード記録部４に記録されているＲＯＭコードに基づいて、論理シミュレーションを行うことが可能なＲＯＭライブラリ（ビヘイビアモデル）を作成する。具体的には、ＲＯＭライブラリ作成処理部１１は、ＲＯＭコードをＶｅｒｉｌｏｇ（ＩＥＥＥ１３６４−１９９５等で規定）、ＶＨＤＬ（ＩＥＥＥ１０７６−１９８７等で規定）等のＨＤＬ（Hardware Description Language）で記述されたビヘイビアモデルに変換する。
【００１６】
論理シミュレーション処理部１２は、ＲＯＭライブラリ作成処理部１１によって作成されたビヘイビアモデルの論理シミュレーションを実行する。この論理シミュレーションの結果は、テキストデータ、波形データ等として、シミュレーション結果比較処理部９に送られる。なお、論理シミュレーション処理部１２として、例えば、Ｖｅｒｉｌｏｇ論理シミュレータ、ＶＨＤＬ論理シミュレータ等を利用することが可能である。
【００１７】
レイアウトデータ作成処理部６は、ＲＯＭコードフォーマット変換処理部２１と、ＲＯＭデータ配置処理部２２とを具備する。
ＲＯＭコードフォーマット変換処理部２１は、ＲＯＭコード記録部４に記録されているＲＯＭコードのフォーマットを、ＨＥＸフォーマット、Ｓフォーマット等から、ＲＯＭデータ配置処理部２２が読み込み可能な所定のフォーマットに変換する。
ＲＯＭデータ配置処理部２２は、ＲＯＭコードフォーマット変換処理部２１によって所定のフォーマットに変換された後のＲＯＭコードに配置・配線処理を行うことにより、レイアウトデータを作成する。このレイアウトデータは、レイアウトデータ記録部７に記録される。
【００１８】
第２シミュレーション処理部８は、素子抽出処理部３１と、トランジスタスイッチングシミュレーション処理部３２とを具備する。
素子抽出処理部３１は、レイアウトデータ記録部７に記録されているレイアウトデータから素子や配線を抽出して、素子や素子の接続情報であるネットリストを作成する。
【００１９】
トランジスタスイッチングシミュレーション処理部３２は、素子抽出処理部３１によって作成されたネットリストに基づいてトランジスタスイッチングシミュレーションを行う。このトランジスタスイッチングシミュレーションの結果は、テキストデータ、波形データ等として、シミュレーション結果比較処理部９に送られる。なお、トランジスタスイッチングシミュレーション処理部３２として、例えば、Ｖｅｒｉｌｏｇ論理シミュレータやＶＨＤＬ論理シミュレータ等が有するトランジスタスイッチングシミュレーション機能を利用することが可能である。
【００２０】
シミュレーション結果比較処理部９は、第１シミュレーション処理部５による第１シミュレーションの結果と、第２シミュレーション処理部８による第２シミュレーションの結果とを比較する。
【００２１】
図１に示すＲＯＭライブラリ作成処理部１１、論理シミュレーション処理部１２、ＲＯＭコードフォーマット変換処理部２１、ＲＯＭデータ配置処理部２２、素子抽出処理部３１、トランジスタスイッチングシミュレーション処理部３２、及び、シミュレーション結果比較処理部９は、ＣＰＵとソフトウェア（プログラム）で構成することができる。このプログラムとＲＯＭコード及びレイアウトデータは、ハードディスク、フレキシブルディスク、ＭＯ、ＭＴ、ＲＡＭ、ＣＤ−ＲＯＭ、又は、ＤＶＤ−ＲＯＭ等の記録媒体に記録することができる。
【００２２】
図２〜図５は、半導体集積回路の設計装置１の半導体集積回路設計処理を示すフローチャートである。以下、図２〜図５を参照しながら、半導体集積回路の設計装置１の半導体集積回路設計処理について説明する。
【００２３】
まず、第１シミュレーション処理部５が、ユーザ（半導体集積回路の設計技術者）の指示入力に従い、ＲＯＭコードに基づく第１シミュレーション処理を行う（ステップＳ１１）。
図３は、ＲＯＭコードに基づく第１シミュレーション処理の内容を示すフローチャートである。以下、図３を参照しながら、ＲＯＭコードに基づく第１シミュレーション処理について説明する。
【００２４】
図３の処理を開始すると、まず、ＲＯＭライブラリ作成処理部１１が、ＲＯＭコード記録部４に記録されているＲＯＭコードからＲＯＭライブラリ（ビヘイビアモデル）を作成する（ステップＳ２１）。
次に、論理シミュレーション処理部１２が、ＲＯＭライブラリ作成処理部１１によって作成されたビヘイビアモデルの論理シミュレーションを実行する（ステップＳ２２）。以上により、ＲＯＭコードに基づく第１シミュレーション処理が終了する。
【００２５】
再び図１を参照すると、レイアウトデータ作成処理部６が、ユーザの指示入力に従い、ＲＯＭコードに基づくレイアウトデータ作成処理を行う（ステップＳ１２）。なお、このとき、正論理のＲＯＭレイアウトデータを作成するか、負論理のＲＯＭレイアウトデータを作成するかを、ユーザがオプション指定できることとしても良い。また、ＲＯＭコードに基づくレイアウトデータ作成処理は、マルチタスク処理として、ＲＯＭコードに基づく第１シミュレーション処理と並行して行うこととしても良い。
図４は、ＲＯＭコードに基づくレイアウトデータ作成処理の内容を示すフローチャートである。以下、図４を参照しながら、ＲＯＭコードに基づくレイアウトデータ作成処理について説明する。
【００２６】
図４の処理を開始すると、まず、ＲＯＭコードフォーマット変換処理部２１が、ＲＯＭコード記録部４に記録されているＲＯＭコードのフォーマットをＲＯＭデータ配置処理部２２が読み込み可能な所定のフォーマットに変換する（ステップＳ３１）。
次に、ＲＯＭデータ配置処理部２２が、ＲＯＭコードフォーマット変換処理部２１によって変換された後のＲＯＭコードに配置・配線処理を行うことにより、レイアウトデータを作成する（ステップＳ３２）。以上により、ＲＯＭコードに基づくレイアウトデータ作成処理が終了する。
【００２７】
再び図１を参照すると、第２シミュレーション処理部８が、レイアウトデータに基づく第２シミュレーション処理を行う（ステップＳ１３）。なお、レイアウトデータに基づく第２シミュレーション処理は、マルチタスク処理として、ＲＯＭコードに基づく第１シミュレーション処理と並行して行うこととしても良い。
図５は、レイアウトデータに基づく第２シミュレーション処理の内容を示すフローチャートである。以下、図５を参照しながら、レイアウトデータに基づく第２シミュレーション処理について説明する。
【００２８】
図５の処理を開始すると、まず、素子抽出処理部３１が、レイアウトデータ記録部７に記録されているレイアウトデータから素子や配線を抽出し、ネットリストを作成する（ステップＳ４１）。
次に、トランジスタスイッチングシミュレーション処理部３２が、素子抽出処理部３１によって作成されたネットリストに基づいてトランジスタスイッチングシミュレーションを行う（ステップＳ４２）。以上により、レイアウトデータに基づく第２シミュレーション処理が終了する。
【００２９】
再び図１を参照すると、シミュレーション結果比較処理部９が、第１シミュレーション処理部５による第１シミュレーション（論理シミュレーション）の結果と第２シミュレーション処理部８による第２シミュレーション（トランジスタスイッチングシミュレーション）の結果とを比較する（ステップＳ１４）。
そして、第１シミュレーション（論理シミュレーション）の結果と第２シミュレーション（トランジスタスイッチングシミュレーション）の結果とが一致する場合には（ステップＳ１５）、シミュレーション結果比較処理部９は、レイアウトデータ記録部７に記録されているレイアウトデータが正しいデータであるものとして、処理を終了する。この場合、レイアウトデータ記録部７に記録されているレイアウトデータをマスク製造工程に移行することができる。また、レイアウトデータ記録部７に記録されているレイアウトデータをＲＯＭマクロセルとして、ＡＳＩＣ（Application Specific Integrated Circuit）やシングルチップマイクロコンピュータに利用することも可能である。
【００３０】
一方、第１シミュレーション（論理シミュレーション）の結果と第２シミュレーション（トランジスタスイッチングシミュレーション）の結果とが一致しない場合には（ステップＳ１５）、シミュレーション結果比較処理部９は、レイアウトデータ記録部７に記録されているレイアウトデータが正しいデータではないものとして、処理をステップＳ１２に戻す。
【００３１】
なお、第１シミュレーション（論理シミュレーション）の結果と第２シミュレーション（トランジスタスイッチングシミュレーション）の結果とが一致しない原因の一例として、次のことが考えられる。
先に説明したように、ＲＯＭコードからレイアウトデータを作成する場合に、正論理のＲＯＭレイアウトデータを作成するか、負論理のＲＯＭレイアウトデータを作成するかを、ユーザがオプション指定可能であることが一般的である。このオプション指定において、正論理のＲＯＭレイアウトデータを作成すべき場合に負論理のＲＯＭレイアウトデータを作成するように誤って指定したり、負論理のＲＯＭレイアウトデータを作成すべき場合に正論理のＲＯＭレイアウトデータを作成するように誤って指定してしまうことがあり得る。このような場合には、再度のレイアウトデータ作成処理（ステップＳ１２）において、ユーザが正しいオプション指定を行うようにすれば良い。
【００３２】
このように、半導体集積回路の設計装置１によれば、ＲＯＭコードに基づく第１シミュレーションの結果とレイアウトデータに基づく第２シミュレーションの結果とを比較することにより、レイアウトデータが正しいデータであるか否かのチェックをすることができる。これにより、目視によるレイアウトデータのチェックを不要とすることができ、レイアウトデータの全体のチェックを行うことができ、ＴＡＴを短くすることができ、コストを低減することができる。
【産業上の利用可能性】
【００３３】
本発明は、ＲＯＭ又はＲＯＭマクロセルを含む半導体集積回路、半導体集積回路の設計方法及び設計装置、並びに半導体集積回路の設計プログラムにおいて利用可能である。
【図面の簡単な説明】
【００３４】
【図１】本発明の一実施形態に係る半導体集積回路の設計装置の概要を示す図。
【図２】図１の半導体集積回路の設計装置１の動作を示すフローチャート。
【図３】図１の半導体集積回路の設計装置１の動作を示すフローチャート。
【図４】図１の半導体集積回路の設計装置１の動作を示すフローチャート。
【図５】図１の半導体集積回路の設計装置１の動作を示すフローチャート。
【符号の説明】
【００３５】
１  半導体集積回路の設計装置、  ２  入力部、  ３  表示部、  ４  ＲＯＭコード記録部、  ５  第１シミュレーション処理部、  ６  レイアウトデータ作成処理部、  ７  レイアウトデータ記録部、  ８  第２シミュレーション処理部、  ９  シミュレーション結果比較処理部、  １１  ＲＯＭライブラリ作成処理部、  １２  論理シミュレーション処理部、  ２１  ＲＯＭコードフォーマット変換処理部、  ２２  ＲＯＭデータ配置処理部、  ３１  素子抽出処理部、  ３２  トランジスタスイッチングシミュレーション処理部
【図１】
2006221417.tif 000003
【図２】
2006221417.tif 000004
【図３】
2006221417.tif 000005
【図４】
2006221417.tif 000006
【図５】
2006221417.tif 000007