(57)【要約】【課題】  論理設計時に作成したモニタを修正することなく、論理検証時にそのまま使用する。【解決手段】  論理設計時の論理回路における内部信号を示す情報３０１を生成し、論理検証時の論理回路における内部信号を示す情報３０３を生成し、内部信号監視部３０４がそれらの情報３０１、３０２に基づいて論理回路における内部信号を監視する。ここで、情報３０３はレイアウト時に挿入されたインバータ位置情報３０２に基づいて生成される。【選択図】      図３
2006163600.tif 000002
【特許請求の範囲】
【請求項１】
論理回路における内部信号を監視する内部信号監視方法であって、
論理設計時の論理回路における内部信号を示す第１の情報を生成する工程と、
論理検証時の論理回路における内部信号を示す第２の情報を生成する工程と、
前記第１及び第２の情報に基づいて前記論理回路における内部信号を監視する工程とを有することを特徴とする内部信号監視方法。
【請求項２】
前記第１の情報は、少なくとも信号名、リセット状態時の初期値及び動作極性を含み、前記第２の情報は、少なくとも信号名、前記動作極性と一致又は反転していることを示す情報を含むことを特徴とする請求項１記載の内部信号監視方法。
【請求項３】
前記第２の情報は、レイアウト作業時に挿入されたインバータの位置を示す位置情報に基づいて生成されることを特徴とする請求項１記載の内部信号監視方法。
【請求項４】
前記第２の情報は、前記論理設計時の内部信号の初期値とリセット状態時の初期値とに基づいて生成されることを特徴とする請求項１記載の内部信号監視方法。
【請求項５】
論理回路における内部信号を監視する論理シミュレーション装置であって、
論理設計時の論理回路における内部信号を示す第１の情報を生成する手段と、
論理検証時の論理回路における内部信号を示す第２の情報を生成する手段と、
前記第１及び第２の情報に基づいて前記論理回路における内部信号を監視する手段とを有することを特徴とする論理シミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路のゲートレベルシミュレーション時における内部信号を監視して情報を出力する技術に関する。
【背景技術】
【０００２】
従来、半導体集積回路開発では、レジスタトランスファレベル（ＲＴＬ）記述によって論理回路の論理機能を設計（論理設計）し、ＲＴＬシミュレーションを行って論理機能の検証（論理検証）を行っている。その後、論理合成によってトランジスタのゲートレベル記述のネットリストを作成し、論理合成後のネットリストに基づいて配置及びタイミング調整等を行うレイアウト作業を行い、レイアウト作業後の最終ネットリストと遅延情報を使ってゲートレベルシミュレーションを行っている。
【０００３】
上述したＲＴＬシミュレーション及びゲートレベルシミュレーションでは、内部の動作状況を把握するために、Verilog或いはＶＨＤＬ（VHSIC Hardware Description Language）等のハードウェア記述言語（ＨＤＬ）を用いて所定の内部信号を監視するモニタを作成し、そのモニタがシミュレーションの出力結果等の情報を逐次出力する。
【０００４】
例えば、ＲＴＬシミュレーションにおいて、図１に示すようにモジュール１００の出力ポート１０２とモジュール１１０の入力ポート１１２とを結線信号１３０で接続し、その結線信号１３０をモニタ１２０で監視する。ここでモニタ１２０は、上述したような任意の数の内部信号を監視し、それぞれの内部信号が所定の極性で動作することを前提として作成されている。
【０００５】
特許文献１には、トランジスタレベルのネットリストに相当する情報から部分回路の情報を認識し、外部入力端子と内部状態を保持できるフィードバックループ等との論理状態より確定する外部出力端子の論理状態につき真理値表を作成し、真理値表より回路シミュレーション用実行形式ファイル及びゲートレベルの論理シミュレーション用テストベンチモジュールを生成する論理検証方法が開示されている。
【特許文献１】特開2000-322464号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述のレイアウト作業において、遅延付加やリピータとしてインバータが挿入され、内部モジュール間を接続する入出力ポートの極性が論理設計時及び論理合成時のものと反転してしまうことがある。
【０００７】
例えば、図２に示すように、レイアウト作業でモジュール１００の出力ポート１０２の前段にインバータ１０３が挿入され、またモジュール１１０の入力ポート１１２の後段にインバータ１１３が挿入されると、モニタ１２０が監視対象としている結線信号１３０の極性が反転してしまう。
【０００８】
つまり、モニタ１２０で監視する内部信号の極性が前提としている極性と異なり、反転したものになっているため、ＲＴＬシミュレーション時に作成したモニタ１２０をゲートレベルシミュレーションではそのまま使用できず、修正作業を行わなければならない、という問題があった。
【０００９】
本発明は、上記課題を解決するためになされたもので、論理設計時に作成したモニタを修正することなく、論理検証時にそのまま使用することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、論理回路における内部信号を監視する内部信号監視方法であって、論理設計時の論理回路における内部信号を示す第１の情報を生成する工程と、論理検証時の論理回路における内部信号を示す第２の情報を生成する工程と、前記第１及び第２の情報に基づいて前記論理回路における内部信号を監視する工程とを有することを特徴とする。
【００１１】
また、本発明は、論理回路における内部信号を監視する論理シミュレーション装置であって、論理設計時の論理回路における内部信号を示す第１の情報を生成する手段と、論理検証時の論理回路における内部信号を示す第２の情報を生成する手段と、前記第１及び第２の情報に基づいて前記論理回路における内部信号を監視する手段とを有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、論理設計時に作成したモニタを修正することなく、論理検証時にそのまま使用でき、作業の効率化が図れる。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
【実施例１】
【００１４】
図３は、半導体集積回路シミュレーションで内部信号を監視する実施例１における機能構成の一例を示す図である。図３において、３０１は論理設計時の内部信号情報であり、ＲＴＬ記述による設計段階において生成され、監視対象とする内部信号の属性を示し、リセット後の初期値や動作レベルがハイ（High）アクティブか、ロー（Low）アクティブかを示す情報である。
【００１５】
３０２はレイアウト時に挿入されたインバータの位置情報であり、レイアウト作業後に生成され、レイアウト作業時にインバータが挿入された位置を示す情報である。
【００１６】
３０３はハードウェアシミュレータで動作させるシミュレーションモデルの内部信号情報であり、ＲＴＬ記述のＨＤＬファイルやゲートレベル記述のネットリストをコンパイルし、このシミュレーションモデルにおいて、監視対象とする内部信号の属性を示し、論理設計時の内部信号情報３０１に対して、極性が一致するか、反転しているかを示す情報である。
【００１７】
３０４は内部信号監視部であり、ＨＤＬ等で記述されたシミュレーションモデルと共にハードウェアシミュレータ上で動作し、内部信号の監視動作を行い、ハードウェアシミュレータの出力部やログファイル等へ監視結果を出力する。また、監視対象となる内部信号の初期値及び極性は、論理設計時の内部信号情報３０１と、このシミュレーションモデルの内部信号情報３０３とに基づいて決められる。
【００１８】
尚、上述した論理設計時の内部信号情報３０１及びシミュレーションモデルの内部信号情報３０３は、ハードウェアシミュレータによって自動的に生成されても良いし、テストベンチとして手動で生成されても良い。
【００１９】
図４は、論理設計時の内部信号情報３０１の具体的な例を示す図である。図４において、４０１は論理設計時の内部信号情報であり、信号の名前が「signal_a」で、リセット後の初期値が「０」で、極性が「ハイアクティブ」である。また同様に、４０２は論理設計時の内部信号情報であり、信号の名前が「signal_b」で、リセット後の初期値が「１」で、極性が「ローアクティブ」である。
【００２０】
図５は、シミュレーションモデルの内部信号情報３０３の具体的な例を示す図である。図５において、５０１はシミュレーションモデルの内部信号情報であり、信号の名前が「signal_a」で、極性が「反転」である。即ち、論理設計時の内部信号情報３０１の極性に対して反転していることを示している。また同様に、５０２はシミュレーションモデルの内部信号情報であり、信号の名前が「signal_b」で、極性が「一致」である。即ち、論理設計時の内部信号情報３０１の極性に対して一致していることを示している。
【００２１】
図６は、レイアウト時に挿入されたインバータの位置情報３０２の具体的な例を示す図である。図６において、６０１は信号の名前が「signal_a」の内部信号の前段及び後段の位置にそれぞれ１個ずつインバータが挿入されたことを示している。また同様に、６０２は、信号の名前が「signal_b」の内部信号の前段及び後段の位置にそれぞれ２個ずつインバータが挿入されたことを示している。
【００２２】
次に、以上の構成を有するモニタの動作について説明する。先ず、シミュレーションを開始する前に、ハードウェアシミュレータ上で動作させるシミュレーションモデルの内部信号情報３０３を予め生成する。ＲＴＬシミュレーションを行う場合、このシミュレーションモデルはＲＴＬ記述のＨＤＬファイルをコンパイルして生成されるため、このシミュレーションモデルの内部信号情報３０３は、論理設計時の内部信号情報３０１に対して、極性が全て「一致」という情報となる。
【００２３】
次に、ゲートレベルシミュレーションを行う場合、ハードウェアシミュレータ上で動作させるシミュレーションモデルはレイアウト後のゲートレベル記述のネットリストをコンパイルして生成されるため、このシミュレーションモデルの内部信号情報３０３は、レイアウト時に挿入されたインバータの位置情報３０２から、監視対象とする内部信号に影響を与える位置にインバータが挿入されているならば、極性が「反転」、挿入されていないなら「一致」という情報として生成される。
【００２４】
例えば、図４に示す４０１の「signal_a」という名前の内部信号において、レイアウト時に挿入されたインバータ位置情報３０２が図６に示す６０１の場合、インバータが前後に１個挿入されているので極性が反転し、図５に示す５０１のシミュレーションモデルの内部信号情報３０３を生成する。
【００２５】
また、図４に示す４０２の「signal_b」という名前の内部信号において、レイアウト時に挿入されたインバータ位置情報３０２が図６に示す６０２の場合、インバータが前後に２個挿入されているので極性が一致（反転の反転）し、図５に示す５０２のシミュレーションモデルの内部信号情報３０３を生成する。
【００２６】
即ち、監視対象とする内部信号の前段及び後段に奇数個のインバータが挿入された場合は極性が反転し、偶数個の場合（０個の場合はインバータの位置情報がなくても良い）は極性が一致する。
【００２７】
このように生成されたシミュレーションモデルの内部信号情報３０３は、一度生成されると使用するネットリストに変更がない限り、同じものが使用可能で再度生成する必要はない。
【００２８】
ここで、シミュレーションが開始されると、内部信号監視部３０４は論理設計時の内部信号情報３０１とシミュレーションモデルの内部信号情報３０３とに基づいて、監視対象とする内部信号の初期値及び極性を決め、内部信号の監視動作を行う。
【００２９】
例えば、論理設計時の内部信号情報３０１が図４に示す内部信号４０１で、シミュレーションモデルの内部信号情報３０３が図５に示す内部信号５０１の場合、内部信号監視部３０４は「signal_a」という名前の内部信号の初期値及び極性を、内部信号５０１の極性が反転していることから、内部信号４０１で示される初期値及び極性を反転し、初期値が「１」で極性が「ローアクティブ」として扱い、監視動作を行う。
【００３０】
また、論理設計時の内部信号情報３０１が図４に示す内部信号４０２で、シミュレーションモデルの内部信号情報３０３が図５に示す内部信号５０２の場合、内部信号監視部３０４は「signal_b」という名前の内部信号の初期値及び極性を、内部信号５０２の極性が一致していることから、内部信号４０２で示される初期値及び極性をそのまま使用し、初期値が「１」で極性が「ローアクティブ」として扱い、監視動作を行う。
【００３１】
実施例１によれば、ゲートレベルシミュレーションにおいて、ＲＴＬシミュレーション時に作成したモニタを修正することなくそのまま使用できる。
【実施例２】
【００３２】
次に、図面を参照しながら本発明に係る実施例２について詳細に説明する。実施例１では、レイアウト時に挿入されたインバータの位置情報からシミュレーションモデルの内部信号情報の極性を決定しているが、実施例２では、内部信号極性判定部により極性を判定するものである。
【００３３】
図７は、半導体集積回路シミュレーションで内部信号を監視する実施例２における機能構成の一例を示す図である。図７に示す７０１、７０３、７０４は、それぞれ実施例１で用いた図３に示す論理設計時の内部信号情報３０１、シミュレーションモデルの内部信号情報３０３、内部信号監視部３０４に相当し、説明は省略する。
【００３４】
図７において、７０２は内部信号極性判定部であり、ＨＤＬ等で記述されハードウェアシミュレータ上で動作させるシミュレーションモデルと共に、シミュレーションモデルがリセット状態時に、監視対象となる内部信号の初期値を調べ、シミュレーションモデルの内部信号情報７０３をシミュレーション動作時に生成する。
【００３５】
次に、以上の構成を有するモニタの動作について説明する。先ず、シミュレーションが開始されると、シミュレーションモデルは外部からリセット信号が入力され、リセット状態となる。この状態で、内部信号極性判定部７０２が監視対象となる内部信号の初期値を抽出し、論理設計時の内部信号情報７０１の初期値と比較する。ここで、同じ値であれば極性が「一致」、異なる値であれば「反転」しているとして、シミュレーションモデルの内部信号情報７０３を生成する。
【００３６】
例えば、内部信号極性判定部７０２が抽出したリセット状態の初期値が「１」で、論理設計時の内部信号情報７０１として図４に示す「signal_a」という名前の内部信号４０１を入力した場合は、内部信号４０１の初期値と異なるため、「反転」していると判定し、図５に示す５０１のシミュレーションモデルの内部信号情報７０３を生成する。
【００３７】
また、内部信号極性判定部７０２が抽出したリセット状態の初期値が「１」で、論理設計時の内部信号情報７０１として図４に示す「signal_b」という名前の内部信号４０２を入力した場合は、内部信号４０２の初期値と「一致」していると判定し、図５に示す５０２のシミュレーションモデルの内部信号情報７０３を生成する。
【００３８】
このように生成されたシミュレーションモデルの内部信号情報７０３は、シミュレーション実行時に毎回生成される。よって、ＲＴＬ記述のＨＤＬファイルを使ったＲＴＬシミュレーションであるのか、ゲートレベル記述のネットリストを使ったゲートレベルシミュレーションであるのかを区別する必要はない。また、ＲＴＬ記述のＨＤＬファイルやネットリストにおける変更の有無も区別する必要はない。
【００３９】
リセット状態解除後、内部信号監視部７０４は、実施例１と同様に、論理設計時の内部信号情報７０１と内部信号極性判定部７０２によって生成されたシミュレーションモデルの内部信号情報７０３に基づいて監視対象とする内部信号の初期値及び極性を決め、内部信号の監視動作を行う。
【００４０】
実施例２によれば、レイアウト時に挿入されたインバータの位置情報がなくても、極性が反転している部分を特定でき、ゲートレベルシミュレーションにおいて、ＲＴＬシミュレーション時に作成したモニタを修正することなくそのまま使用できる。
【００４１】
尚、本発明は複数の機器（例えば、ホストコンピュータ，インターフェース機器，リーダ，プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用しても良い。
【００４２】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【００４３】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【００４４】
このプログラムコードを供給するための記録媒体としては、例えばフロッピー（登録商標）ディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００４５】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００４６】
更に、記録媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００４７】
【図１】ＲＴＬシミュレーション時にモニタでモジュール間の内部信号を監視する例を示す図である。
【図２】ＲＴＬシミュレーション時に作成したモニタをゲートレベルシミュレーションでそのまま使用できないという問題を説明するための図である。
【図３】半導体集積回路シミュレーションで内部信号を監視する実施例１における機能構成の一例を示す図である。
【図４】論理設計時の内部信号情報３０１の具体的な例を示す図である。
【図５】シミュレーションモデルの内部信号情報３０３の具体的な例を示す図である。
【図６】レイアウト時に挿入されたインバータの位置情報３０２の具体的な例を示す図である。
【図７】半導体集積回路シミュレーションで内部信号を監視する実施例２における機能構成の一例を示す図である。
【符号の説明】
【００４８】
１００  モジュール
１０１  ＦＦ
１０２  出力ポート
１０３  インバータ
１１０  モジュール
１１１  ＦＦ
１１２  入力ポート
１１３  インバータ
１２０  モニタ
１３０  結線信号
３０１  論理設計時の内部信号情報
３０２  レイアウト時に挿入されたインバータ位置情報
３０３  シミュレーションモデルの内部信号情報
３０４  内部信号監視部
７０１  論理設計時の内部信号情報
７０２  内部信号極性判定部
７０３  シミュレーションモデルの内部信号情報
７０４  内部信号監視部
【図１】
2006163600.tif 000003
【図２】
2006163600.tif 000004
【図３】
2006163600.tif 000005
【図４】
2006163600.tif 000006
【図５】
2006163600.tif 000007
【図６】
2006163600.tif 000008
【図７】
2006163600.tif 000009