JP2005182093A - 回路機能検証支援システム、回路機能検証支援方法、制御プログラムおよび可読記録媒体 - Google Patents
回路機能検証支援システム、回路機能検証支援方法、制御プログラムおよび可読記録媒体 Download PDFInfo
- Publication number
- JP2005182093A JP2005182093A JP2003417331A JP2003417331A JP2005182093A JP 2005182093 A JP2005182093 A JP 2005182093A JP 2003417331 A JP2003417331 A JP 2003417331A JP 2003417331 A JP2003417331 A JP 2003417331A JP 2005182093 A JP2005182093 A JP 2005182093A
- Authority
- JP
- Japan
- Prior art keywords
- expected value
- clock
- value comparison
- information
- circuit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Abstract
【課題】 複数のクロック系統を有する論理回路の機能検証時に、回路の内部信号の情報を必要とせず、適切に期待値比較ポイントを事前に設定する。
【解決手段】 論理回路機能検証支援システム1は、論理シミュレーション対象回路のクロック周期、立ち上がりエッジおよび立ち下がりエッジの情報を含むクロック情報12と、クロックドメイン間の最大遅延制約情報13とを元に、期待値11とシミュレーション結果との比較ポイントを事前に設定する期待値比較ポイント設定部14と、遅延情報を有するネットリスト10に基づいて論理シミュレーションを実行する論理シミュレーション実行部16と、シミュレーション結果と期待値11とを比較する期待値比較部17と、この比較結果に基いて論理シミュレーション実行部16の動作を制御する論理シミュレーション制御部18と、比較結果を出力する結果出力部19とを備えている。
【選択図】 図1
【解決手段】 論理回路機能検証支援システム1は、論理シミュレーション対象回路のクロック周期、立ち上がりエッジおよび立ち下がりエッジの情報を含むクロック情報12と、クロックドメイン間の最大遅延制約情報13とを元に、期待値11とシミュレーション結果との比較ポイントを事前に設定する期待値比較ポイント設定部14と、遅延情報を有するネットリスト10に基づいて論理シミュレーションを実行する論理シミュレーション実行部16と、シミュレーション結果と期待値11とを比較する期待値比較部17と、この比較結果に基いて論理シミュレーション実行部16の動作を制御する論理シミュレーション制御部18と、比較結果を出力する結果出力部19とを備えている。
【選択図】 図1
Description
本発明は、論理シミュレーション対象回路の回路機能を検証するために用いられる回路機能検証支援システム、これを用いた回路機能検証支援方法、この各処理をコンピュータに実行させるための制御プログラムおよび、これを記録したコンピュータ読み取り可能な可読記録媒体に関し、特に、複数のクロック系統のドメインに属する回路を含む論理回路の機能検証において、信号(データ)伝搬の遅延による影響を考慮して期待値比較を行って、機能検証を行う論理回路機能検証支援システムなどの回路機能検証支援システム、これを用いた回路機能検証支援方法、この各処理をコンピュータに実行させるための制御プログラムおよび、これを記録したコンピュータ読み取り可能な可読記録媒体に関する。
通常、論理回路の機能検証は、例えばユニットディレイシミュレーションやRTL(レジスタトランスファーレベル)シミュレーションなどによって予め求められた論理回路の正しい出力結果である期待値と、論理回路を論理シミュレーションして得られるシミュレーション結果とを、クロックサイクル毎に比較(期待値比較)することによって行われる。
本来は、期待値と論理シミュレーション結果とが全サイクルで完全に一致することが望ましい。しかしながら、複数のクロック系統を有する論理回路に対して、論理合成後の遅延情報を有するゲートレベルシミュレーションを行う際には、信号伝搬の遅延によってシミュレーション結果と期待値との間に時間軸上でサイクルずれが発生することがある。このような場合に、単純に全クロックサイクルで期待値比較を行うと、論理回路に機能的な問題がなくても、期待値比較結果に不一致が発生することがある。以下に、この問題について、図18および図19を参照しながら説明する。
図18は、複数のクロック系統を有する論理回路の一例を示す図である。
図18に示すように、この論理回路60Aは、フリップフロップ61および63と組み合せ回路62とを有している。入力信号S1は、クロック系統CLK1のフリップフロップ61から組み合わせ回路62を経由してクロック系統CLK2のフリップフロップ63に伝播され、フリップフロップ63から出力信号S4として出力される。
図19は、図18の論理回路60Aのクロックサイクル、クロックCLK1,CLK2の各波形、信号S1,S2の各波形、論理回路に対する期待値(信号S3,S4)の波形、および論理合成後の遅延情報を有するゲートレベルシミュレーション結果(信号S3,S4)の波形をそれぞれ示す波形図である。
通常、期待値比較は、論理回路の出力信号に対して、出力信号を駆動しているクロックサイクル毎に行われる。例えば図18の論理回路60Aの場合、期待値比較は出力信号S4に対して、クロックCLK2のクロックサイクル毎に行われる。
このとき、単純に全クロックサイクル毎(T1〜T8)に期待値比較を行うと、図19に示すように、サイクルT4で期待値が“1”、シミュレーション結果が“0”となり、比較結果は不一致となる。
この原因は、論理合成後の遅延情報を有するゲートレベルシミュレーションでは、フリップフロップ61からフリップフロップ63への信号伝播に遅延を有しており、信号S3のフリップフロップ63への到達がクロックCLK2の立ち上がりエッジを跨いで遅れるためである。この現象は、異なるクロック系統のドメインに属する回路(異なるクロックドメイン)間でデータの受け渡しがある場合に常に起こり得るものであり、回路設計時にはこの現象も考慮されて設計されているため、回路機能上では問題ない。しかしながら、期待値比較結果が不一致になると、その不一致が上記現象によるものか、または論理回路の不具合によるものかを人手によって検証し直す必要があり、これによって検証時間の増大を招いている。
このような複数のクロック系統を有する論理回路に対する期待値比較の問題を解決するための従来技術として、例えば特許文献1には、以下のようなタイミング検証装置が提案されている。
このタイミング検証装置の原理について図18および図19を参照しながら説明すると、設計者が、クロック系統が異なるクロックドメイン間のデータの受け渡し箇所を予め把握しておき、データの受け渡しの起点となる信号S2と、期待値比較を行わない期間ETとを指定する。信号S2の変化からET期間の間、信号S4の期待値比較を行わないように自動的にデータ処理することにより、期待値不一致の問題を回避している。図19の例では、サイクルT4で期待値比較を行わず、サイクルT1、T2、T3、T5、T6、T7およびT8でのみ期待値比較を行うことによって、上記人手による検証の手間を省略することができる。
特開2001−147947号公報
しかしながら、上記特許文献1に開示されている従来技術では、以下のような問題がある。
まず、期待値比較に使用される期待値およびシミュレーション結果のそれぞれに含まれる信号値は、通常、回路のトップ階層の信号(シミュレーション対象回路の最上位階層の信号)に限られる。その理由は、回路中の全信号値を出力する論理シミュレーションを実行しようとすると、その論理シミュレーションで取り扱うデータのファイルサイズが膨大となり、また、シミュレーション時間のオーバーヘッドも膨大となることから、現実には不可能であるためである。
図18を用いて具体的に説明すると、実際に期待値比較に使用できる信号はCLK1、CLK2、S1およびS4のみであり、内部信号であるS2およびS3は使用することができない。したがって、論理回路の内部信号S2を参照する特許文献1の方法は、実行することが困難である。
この特許文献1の方法では、クロック系統が異なるクロックドメイン間でのデータの受け渡しの起点となる信号、それに対応する期待値比較信号や期待値比較除外期間など、期待値比較のために必要な情報を人手により指定する必要があるが、そのためには回路内部を解析する必要がある。そのような解析に必要な労力は、発生した不一致が、クロック系統が異なるクロックドメイン間のデータの受け渡しによるものか、または回路の不具合によるものかを人手で検証し直す以上に大きく、回路規模が大きくなるにつれて解析が困難となり、人手により期待値比較に必要な情報を指定することが不可能となる。
さらに、回路によっては、特許文献1の方法は使えない場合がある。このことについて、図20および図21を参照しながら説明する。
図20は、複数のクロック系統を有する論理回路の他の一例を示す図である。
図20に示すように、この論理回路60Bは、フリップフロップ64および66〜69と、組み合せ回路65とを有している。入力信号S10は、クロック系統CLK3のフリップフロップ64から組み合わせ回路65を経由してクロック系統CLK4のフリップフロップ66に伝播し、フリップフロップ66から出力信号S13が出力される。これと同様に、入力信号S10はクロック系統CLK3のフリップフロップ64から組み合わせ回路65を経由してクロック系統CLK4のフリップフロップ67、68および69に順次伝播し、フリップフロップ69から出力信号S17が出力される。
図21は、図20の論理回路60Bのクロックサイクル、クロックCLK3,CLK4の波形、信号S10,S11の波形、論理回路に対する期待値(信号S12〜S17)の波形、および論理合成後の遅延情報を有するゲートレベルシミュレーション結果(信号S12〜S17)の波形をそれぞれ示す信号波形図である。
図21に示すように、この論理回路60Bに対して期待値比較を行う場合、特許文献1の方法では、事前に異なるクロックドメイン間でのデータの受け渡しの起点となる信号S11と、期待値比較除外期間ET2と、期待値比較の対象となる信号S13およびS17とを指定する。データの受け渡しの起点となる信号S11の変化からET2期間の間、信号S13および信号S17の期待値比較を行わないことによって、期待値不一致の問題を回避しようとしている。
例えば、サイクルT4では期待値比較を行わず、サイクルT1、T2、T3、T5、T6、T7およびT8でのみ、期待値比較を行う。その結果、信号S13に対しては、サイクルT1、T2、T3、T5、T6、T7およびT8で期待値とシミュレーション結果とが完全に一致する。ところが、信号S17に対しては、サイクルT6において、期待値が“0”でシミュレーション結果が“1”であり、不一致となる。
この原因は、以下の通りである。異なるクロックドメイン間でデータの受け渡しが行われた後に、多段のフリップフロップが存在する場合、そのフリップフロップの数だけ、期待値とシミュレーション結果との不一致箇所が、後段のフリップフロップの出力信号として検出される。図21の例では、期待値とシミュレーション結果との不一致箇所は、T4のタイミングから、CLK4の2サイクルタイムに相当する時間だけ、後ろのクロックサイクルT6にシフトされる。したがって、特許文献1の方法では期待値不一致の問題に対応することができない。
この期待値比較除外期間をET3と設定した場合には、サイクルT4、T5およびT6において期待値比較が行われないため、信号S17に対するサイクルT6での不一致を回避することはできるが、本来期待値比較が必要な箇所、すなわち信号S13に対するサイクルT5とT6、および信号S17に対するサイクルT4とT5での期待値比較が行われなくなるため、検証漏れが発生する。したがって、特許文献1の方法では期待値不一致の問題に対応することができない。
本発明は、上記従来の問題を解決するもので、複数のクロック系統を有する論理回路に対して、回路の内部信号の情報を必要とせず、回路内部を解析して人手により期待値比較に必要な情報を指定することなく、論理シミュレーション結果である信号の不確定タイミングを避けるように適切に期待値比較ポイントを事前に設定することができる回路機能検証支援システム、これを用いた回路機能検証支援方法、この各処理をコンピュータに実行させるための制御プログラムおよび、これを記録したコンピュータ読み取り可能な可読記録媒体を提供することを目的とする。
本発明の回路機能検証支援システムは、複数のクロック系統のクロックドメインに属する回路を含む論理シミュレーション対象回路の機能検証を行う回路機能検証支援システムにおいて、該論理シミュレーション対象回路のクロック波形を特定可能とするクロック情報と、クロック系統が異なるクロックドメイン間のデータ伝播に許容される遅延の最大値である最大遅延制約情報とのうち少なくともクロック情報に基づいて、クロック系統が異なるクロックドメインに属する回路間のデータの受け渡し時に発生する出力結果の不確定タイミングを除外して、期待値とシミュレーション結果との期待値比較ポイントを設定する期待値比較ポイント設定部を有しており、そのことにより上記目的が達成される。
また、好ましくは、本発明の回路機能検証支援システムにおける期待値比較ポイント設定部は、クロック系統が異なるクロックドメイン間でのデータの受け渡しがない場合に、期待値の比較対象である信号を駆動しているクロックの全クロックサイクルを期待値比較ポイントとして設定する第1期待値比較ポイント設定手段をさらに有する。
さらに、好ましくは、本発明の回路機能検証支援システムにおける期待値比較ポイント設定部は、回路の接続情報および遅延情報を有するネットリストから期待値の比較対象である信号のデータ伝播経路を出力側から入力側へバックトレースして、複数のクロック系統のうち、所定のクロック系統のドメインに属する回路から他のクロック系統のドメインに属する回路へのデータの受け渡しがあるか否かを判定するデータ受け渡し判定手段を有する。
さらに、好ましくは、本発明の回路機能検証支援システムにおける期待値比較ポイント設定部は、低速動作回路から高速動作回路へのデータの受け渡しがある場合に、前記論理シミュレーション対象回路のクロック情報から期待値比較ポイントを設定する第2期待値比較ポイント設定手段と、高速動作回路から低速動作回路へのデータの受け渡しがある場合に、該論理シミュレーション対象回路のクロック情報と前記最大遅延制約情報とから期待値比較ポイントを設定する第3期待値比較ポイント設定手段とを有する。
さらに、好ましくは、本発明の回路機能検証支援システムにおける第2期待値比較ポイント設定手段は、低速クロックの立ち上がりエッジ直後に高速クロックの立ち上がりエッジがある箇所を期待値比較ポイントから除外して、前記期待値の比較対象である信号を駆動しているクロックのクロックサイクルを期待値比較ポイントとして設定し、前記第3期待値比較ポイント設定手段は、低速クロックの立ち上がりエッジ直前の高速クロックの立ち上がりエッジまでの時間が前記最大遅延制約値よりも小さい箇所を期待値比較ポイントから除外して、前記期待値の比較対象である信号を駆動しているクロックのクロックサイクルを期待値比較ポイントとして設定する。
さらに、好ましくは、本発明の回路機能検証支援システムにおける期待値比較ポイント設定部は、前記クロック系統が異なるクロックドメイン間でのデータの受け渡し後、フリップフロップによってデータを受けている場合に、当該フリップフロップの段数分だけ、期待値比較ポイントを後ろ側にシフトさせて設定する第4期待値比較ポイント設定手段をさらに有する。
さらに、好ましくは、本発明の回路機能検証支援システムにおいて、回路の接続情報および遅延情報を有するネットリストに基いて論理シミュレーションを実行する論理シミュレーション実行部と、該論理シミュレーション実行部によるシミュレーション結果と前記期待値とを前記期待値比較ポイントに従って比較する期待値比較部とを有する。
さらに、好ましくは、本発明の回路機能検証支援システムにおける期待値比較部は、前記論理シミュレーション実行部による論理シミュレーション実行中に、前記期待値比較ポイント設定部によって設定された期待値比較ポイントに従って、前記論理シミュレーション結果と期待値との比較を逐次行い、その比較結果から一致/不一致を判定する。
さらに、好ましくは、本発明の回路機能検証支援システムにおける論理シミュレーション実行部は、前記論理シミュレーション対象回路の最上位階層の信号に対してシミュレーションを行う。
さらに、好ましくは、本発明の回路機能検証支援システムにおける期待値比較部による比較結果に基いて、前記論理シミュレーション実行部の動作を制御する論理シミュレーション制御部をさらに有する。
さらに、好ましくは、本発明の回路機能検証支援システムにおける論理シミュレーション制御部は、前記期待値比較部によって前記期待値とシミュレーション結果とが不一致であると判定された場合に、前記論理シミュレーション実行部に対して、直ちにシミュレーション動作を停止させるように制御する。
さらに、好ましくは、本発明の回路機能検証支援システムにおける期待値比較部による期待値比較結果情報を出力する結果出力部をさらに有する。
さらに、好ましくは、本発明の回路機能検証支援システムにおける結果出力部は、前記期待値比較部によって前記期待値とシミュレーション結果とが不一致であると判定された場合に、前記期待値比較結果情報を、表示画面上に表示することと、プリントアウトすることのうち少なくともいずれかを行う。
さらに、好ましくは、本発明の回路機能検証支援システムにおける期待値比較結果情報は、少なくとも前記不一致が発生した信号名およびクロック系統と、該不一致が発生した時刻である。
さらに、好ましくは、本発明の回路機能検証支援システムにおけるクロック情報は、クロック周期の情報と、クロックの立ち上がりエッジおよび立ち下がりエッジの少なくとも一方の情報とを含む。
本発明の回路機能検証支援方法は、複数のクロック系統のクロックドメインに属する回路を含む論理シミュレーション対象回路を機能検証する回路機能検証支援システムを用いる回路機能検証支援方法において、回路の接続情報および遅延情報を有するネットリストを用いて論理シミュレーション対象回路の出力信号側から入力信号方向へバックトレースして出力信号の伝播経路を解析する処理と、該出力信号の伝播経路の途中で、該クロック系統が異なるクロックドメイン間でデータの受け渡しがあったか否かの情報および、論理シミュレーション対象回路のクロック波形を特定可能とするクロック情報、該クロック系統が異なるクロックドメイン間のデータ伝播に許容される遅延の最大値である最大遅延制約情報を取得する情報取得処理と、該データの受け渡しがなかった場合に、期待値の比較対象である信号を駆動しているクロック系統の全サイクルで期待値比較が行われるように、期待値比較ポイントを設定する第1期待値比較ポイント設定処理、低速動作回路から高速動作回路にデータの受け渡しがあった場合に、該クロック情報に基づいて、低速クロックの立ち上がりエッジの直後に、高速クロックの立ち上がりエッジが含まれるサイクルを期待値比較ポイントから除外して、期待値の比較対象である信号を駆動しているクロックのクロックサイクルを期待値比較ポイントとして設定する第2期待値比較ポイント設定処理および、該高速動作回路から該低速動作回路にデータの受け渡しがあった場合に、該クロック情報および最大遅延制約情報に基づいて、該低速クロックの立ち上がりエッジからその直前の高速クロックの立ち上がりエッジまでの時間を計算し、その計算値が最大遅延制約値よりも小さい場合に、該低速クロックの立ち上がりクロックサイクルの箇所について期待値比較ポイントから除外して、該期待値の比較対象である信号を駆動しているクロックのクロックサイクルを期待値比較ポイントとして設定する第3期待値比較ポイント設定処理のいずれかを行う処理とを有しており、そのことにより上記目的が達成される。
また、好ましくは、本発明の回路機能検証支援方法において、クロック系統が異なるクロックドメイン間でデータの受け渡しがあった場合に、データの受け渡し後、回路の出力部から出力信号として出力されるまでの経路中に存在するフリップフロップの段数情報を取得する処理と、該段数情報の段数分だけ、前記期待値比較ポイントを後ろ側にシフトさせる第4期待値比較ポイント設定処理を有する。
さらに、好ましくは、本発明の回路機能検証支援方法において、回路の接続情報および遅延情報を有するネットリストに基いて論理シミュレーションを実行する論理シミュレーション実行処理と、該論理シミュレーション実行処理によるシミュレーション結果と前記期待値とを前記期待値比較ポイントに従って比較する期待値比較処理と、該期待値比較処理による比較結果に基いて、該論理シミュレーション実行処理動作を制御する論理シミュレーション制御処理とを有する。
本発明の制御プログラムは、上記本発明の回路機能検証支援方法の各処理をコンピュータに実行させるためのプログラムであり、そのことにより上記目的が達成される。
本発明の可読記録媒体は、上記制御プログラムが記録されたコンピュータ読み取り可能な記録媒体であり、そのことにより上記目的が達成される。
上記構成により、以下に、本発明の作用について説明する。
本発明においては、内部信号を参照したり、回路内部を解析して人手により期待値比較に必要な情報を指定したりすることなく、クロック情報とクロックドメイン間の最大遅延制約情報とのうち少なくともクロック情報を元に、クロック系統が異なるクロックドメインに属する回路間のデータの受け渡し時に発生する出力結果の不確定タイミングを除外して、期待値比較ポイントを自動設定することができる。
期待値比較ポイントを設定する際に用いられるデータは、クロックの周期、信号の立ち上がりエッジおよび立ち下がりエッジの少なくとも一方との情報を含むクロック情報と、クロック系統が異なるクロックドメイン間のデータ伝播に許容される遅延の最大値であるクロックドメイン間の最大遅延制御情報であり、論理シミュレーションには回路のトップ階層の信号のみが用いられるため、従来技術に比べて取り扱うデータ量が少なく、高速に論理シミュレーションを実行することができる。また、論理シミュレーション実行中に期待値比較を逐次行うことにより、検証効率を向上させることができる。
本発明によれば、複数のクロック系統のドメインに属する回路を有する論理回路において、信号伝播の遅延などの影響によってシミュレーション結果と期待値との間にサイクルずれが発生するような場合においても、回路の内部情報を必要とせず、クロック情報とクロックドメイン間の最大遅延制約情報のみから、適切に期待値比較ポイントを事前設定することができる。また、シミュレーション実行中に逐次期待値比較を行うことによって検証効率を向上させることができる。
以下に、本発明の論理回路機能検証支援システムなどの回路機能検証支援システム、これを用いた回路機能検証支援方法、この各処理をコンピュータに実行させるための制御プログラムおよび、これを記録したコンピュータ読み取り可能な可読記録媒体の実施形態について、図面を参照しながら説明する。
図1は、本発明の論理回路機能検証支援システムの実施形態における機能構成例を示すブロック図である。
図1に示すように、論理回路機能検証支援システム1は、遅延情報を有するネットリスト10と、期待値11と、回路のクロック情報12と、回路のクロックドメイン間の最大遅延制約情報13と、データ受け渡し判定手段と期待値比較ポイント設定手段を有する期待値比較ポイント設定部14と、期待値比較ポイント情報15と、論理シミュレーション実行部16と、期待値比較部17と、論理シミュレーション制御部18と、結果出力部19と、期待値比較結果20とを有している。
ネットリスト10は、回路の接続情報、セル遅延情報および接続遅延情報を有するリストである。
クロック情報12は、クロックの入力波形を特定できる情報であり、クロックの周期と、立ち上がりエッジおよび立ち下りエッジの少なくとも一方との各情報を含んでいる。
最大遅延制約情報13は、所定の機能を実現する上で、クロック系統が異なるクロックドメイン間でのデータ伝播に許容される遅延の最大値であり、回路の論理合成時などに使用される設計上の制約情報である。
期待値比較ポイント設定部14は、ネットリスト10、回路のクロック情報12および最大遅延制約情報13から、クロック系統が異なるクロックドメインに属する回路間のデータの受け渡し時に発生する出力結果の不確定タイミングを除外して、期待値比較ポイントをシミュレーション実行前に設定し、期待値比較ポイント情報15を出力する。
論理シミュレーション実行部16は、回路の接続情報および遅延情報を有するネットリスト10に基いて論理シミュレーションを実行する。
期待値比較部17は、論理シミュレーション実行部16によるシミュレーション結果と期待値11とを期待値比較ポイント情報15に記述された期待値比較ポイントでリアルタイムに比較する。
論理シミュレーション制御部18は、期待値比較部17による比較結果に基いて論理シミュレーション実行部16の動作(不一致時に停止処理など)を制御する。
結果出力部19は、期待値比較部17による比較結果から期待値比較結果20を出力、例えば表示したりプリントアウトしたりする。
上記構成により、以下、その動作を説明する。
まず、期待値比較ポイント設定部14によって、回路の接続情報および遅延情報を有するネットリスト10と、回路のクロック情報12と、回路のクロックドメイン間の最大遅延制約情報13とから、クロック系統が異なるクロックドメインに属する回路間のデータの受け渡し時に発生する出力結果の不確定タイミングを除外して、期待値比較ポイントがシミュレーション実行前に設定され、期待値比較ポイント情報15として出力される。
次に、回路の接続情報および遅延情報を有するネットリスト10に基いて、論理シミュレーション実行部16によってシミュレーションが実行されるのと並行して、期待値比較部17によってシミュレーション結果と期待値11とが、期待値比較ポイント情報15に記述された期待値比較ポイントでリアルタイムに比較され、その比較結果が論理シミュレーション制御部18と結果出力部19に通知される。
これを受けて、期待値11とシミュレーション結果との不一致が通知されると、論理シミュレーション制御部18では、直ちに論理シミュレーション実行部16に対してシミュレーション中止の命令が出力(停止処理が実行)され、論理シミュレーション実行部16によるシミュレーションが中止される。
結果出力部19では、期待値11とシミュレーション結果との不一致が発生した信号名とそのクロック系統とが、不一致が発生した時刻と共にディスプレイに表示または/およびファイルに出力する。
図2は、図1の論理回路機能検証支援システム1の実施形態におけるハード構成例を示すブロック図である。
図2に示すように、論理回路機能検証支援システム1は、期待値比較などの所定の演算処理を行う制御部としてのCPU2(Central Processing Unit;中央演算処理装置)と、期待値比較ポイント設定プログラムや論理シミュレーション実行プログラム、期待値比較プログラム、論理シミュレーション制御プログラム、結果出力制御プログラムなどの各種の制御プログラムおよびそのデータが格納された可読記録媒体としてのROM3(Read Only Memory)と、CPU2が演算時に使用する作業記憶領域(ワークメモリ)として用いられるRAM4(Random Access Memory)と、期待値比較ポイント情報15や期待値比較結果20などの必要な情報を格納するための外部記憶装置5と、ネットリスト10、期待値11やクロック情報12、クロックドメイン間の最大遅延制約情報13などの必要な情報を入力するための入力装置6と、期待値比較結果20などを表示画面上に表示可能とする結果出力部としての表示装置7とを備えている。
これらCPU2、ROM3、RAM4、外部記憶装置5、入力装置6および表示装置7はバスライン8で相互に接続されている。
CPU2は、ROM3内に格納された制御プログラムに従って、本発明の期待値比較ポイント設定処理、論理シミュレーション処理、期待値比較処理、論理シミュレーション制御処理および期待値比較結果出力処理などの各種の処理が行われる。
まず、期待値比較ポイント設定部14による期待値比較ポイント設定処理について、詳しく説明する。
期待値比較ポイント設定部14では、まず、ネットリスト10を用いて、期待値の比較対象である信号のデータ伝播経路を出力側から入力側へバックトレースし、複数のクロック系統のうち、所定のクロック系統のドメインに属する回路から他のクロック系統のドメインに属する回路へのデータの受け渡しがあるか否かが判定される。次に、クロック系統が異なるクロックドメイン間でのデータの受け渡しがない場合には、期待値11の比較対象である信号を駆動しているクロックの全クロックサイクルを期待値比較ポイントに設定し、また、低速動作回路から高速動作回路へのデータの受け渡しがある場合には、論理シミュレーション対象回路のクロック情報12から期待値比較ポイントを設定し、また、高速動作回路から低速動作回路へのデータの受け渡しがある場合には、論理シミュレーション対象回路のクロック情報12と、その所定のクロック系統と他のクロック系統とのクロックドメイン間の最大遅延制約情報13とから期待値比較ポイントを設定する。
図3は、図1および図2の論理回路機能検証支援システム1における期待値比較ポイント設定部14の処理手順を説明するためのフローチャートである。
図3に示すように、まず、ステップaでは、期待値比較の対象回路における出力信号の伝播経路を解析するため、ネットリスト10を出力信号から入力信号方向へバックトレースする。このバックトレース処理では、その経路の途中で異なるクロックドメイン間でデータの受け渡しがあったか否かの情報と、出力信号を駆動しているクロックの情報(出力信号を駆動しているクロック系統)とが取得される。また、クロック系統が異なるクロックドメイン間でデータの受け渡しがあった場合には、データの受け渡し後、異なるクロックドメイン間で受け渡されたデータが出力部から出力信号として出力されるまでの経路(受け渡しデータと出力信号との間)に存在するフリップフロップの段数の情報が取得される。
次に、ステップbでは、ステップaで取得された各情報から、異なるクロックドメイン間でのデータの受け渡しがあったか否かが判断される。クロック系統が異なるクロックドメイン間でのデータの受け渡しがなかった場合(No)には、ステップcの処理に進む。一方、異なるクロックドメイン間でのデータの受け渡しがあった場合(Yes)には、ステップdの処理に進む。
ステップcでは、ステップbで異なるクロックドメイン間でのデータの受け渡しがなかったと判断された場合(No)に、出力信号を駆動しているクロック系統の全サイクルで期待値比較が行われるように、期待値比較ポイントを設定する。
ステップdでは、そのデータの受け渡しが、低速動作回路(低速クロック)から高速動作回路(高速クロック)へのデータの受け渡しであったか否かを判断する。低速クロックから高速クロックへのデータの受け渡しであると判断された場合(Yes)には、ステップeの処理に進む。一方、高速クロックから低速クロックへのデータの受け渡しがあると判断された場合(No)には、ステップfの処理に進む。
ステップeでは、ステップdで低速クロックから高速クロックへのデータの受け渡しであると判断された場合(Yes)に、クロック情報12を元にして、特定のサイクルが期待値比較ポイントから除外されるように、期待値比較ポイントを設定する。
ステップeにおいて、クロック情報12を元にして特定のサイクルを期待値比較ポイントから除外する方法について、図4を参照しながら説明する。
図4に示すように、まず、低速クロックCLK5および高速クロックCLK6の周期の最小公倍数であるシミュレーション時間範囲0〜70について、高速CLK6の全サイクルT1、T2、T3、T4、T5、T6およびT7を期待値比較ポイントに設定する。
次に、低速クロックCLK5の立ち上がりエッジの直後に、高速クロックCLK6の立ち上がりエッジが含まれるサイクルT3およびT6を期待値比較ポイントから除外し、サイクルT1、T2、T4、T5およびT7を最終的な期待値比較ポイントとする。また、T8サイクル以降は、設定された期待値比較ポイントの繰り返し(T8、T9、T11、T12、T14、・・・)となる。
図3の説明に戻ると、ステップfでは、ステップdで高速クロックから低速クロックへのデータの受け渡しであると判断された場合(No)に、クロック情報12と、クロックドメイン間の最大遅延制約情報13を元にして、特定のサイクルが期待値比較ポイントから除外されるように、期待値比較ポイントを設定する。
ステップfにおいて、クロック情報12と、クロックドメイン間の最大遅延制約情報13とを元にして特定のサイクルを期待値比較ポイントから除外する方法について、図5を参照しながら説明する。
図5に示すように、まず、高速クロックCLK7および低速クロックCLK8の周期の最小公倍数であるシミュレーション時間範囲0〜70について、低速クロックCLK8の全サイクルT1およびT2を期待値比較ポイントに設定する。
次に、低速クロックCLK8の立ち上がりエッジからその直前の高速クロックCLK7の立ち上がりエッジまでの時間を計算し、その値がクロックドメイン間の最大遅延制約値(ここでは5とする)よりも小さい場合には、低速クロックCLK8の立ち上がりクロックサイクルの箇所について期待値比較ポイントから除外する。図5の例では、期待値比較除外期間ET6<クロックドメイン間の最大遅延制約値5であるので、低速クロックCLK8の立ち上がりエッジが含まれるサイクルであるT1を期待値比較ポイントから除外する。また、低速クロックCLK8の立ち上がりエッジからその直前の高速クロックCLK7の立ち上がりエッジまでの時間が、クロックドメイン間の最大遅延制約値よりも大きい箇所については、期待値比較ポイントから除外しない。図5の例では、期待値比較除外期間ET7>クロックドメイン間の最大遅延制約値5であるので、サイクルT2は期待値比較ポイントから除外されず、サイクルT2が最終的な期待値比較ポイントとなる。また、T3サイクル以降は、設定された期待値比較ポイントの繰り返し(T4、T6、T8、・・・)となって偶数サイクルとなる。
図3の説明に戻ると、ステップgでは、ステップeまたはステップfに続いて、ステップaの結果から、クロックドメイン間でのデータの受け渡し後、最終出力信号との間にフリップフロップが存在するか否かを判断する。ステップgでクロックドメイン間でのデータの受け渡し後にフリップフロップが存在すると判断された場合(Yes)には、ステップhの処理に進む。また、ステップgでフリップフロップが存在しないと判断された場合(No)には、ステップiへ進む。
ステップhでは、ステップeまたはステップfで設定された期待値比較ポイントにおける比較サイクルを、フリップフロップの段数だけ後ろのサイクルタイムにシフトさせる。
ステップiでは、以上の手順を回路の出力信号の数だけ繰り返す。
これによって、回路の内部情報を必要とせず、クロック情報およびクロックドメイン間の最大遅延制約情報から、回路の機能仕様上、期待値11と論理シミュレーション結果との不一致が発生しても問題ない箇所を期待値比較ポイントから除外して、最終的な期待値比較ポイント情報15を得ることができる。
以下に、本発明の論理回路機能検証支援システム1のさらに詳しい実施例1〜3について、図面を参照しながら説明する。
実施例1では低速クロックから高速クロックへのデータの受け渡しが存在する場合、実施例2では高速クロックから低速クロックへのデータの受け渡しが存在する場合、実施例3では実施例1と同じ論理回路について、期待値比較中に不一致が発生する場合についてそれぞれ説明する。
(実施例1)
本実施例1では、低速クロックから高速クロックへのデータの受け渡しが存在する場合であって、図6に示す論理回路30(=ネットリスト10)と、図7に示す回路のクロック情報12に対して、本実施形態の論理回路機能検証支援システム1を適用する場合について、図1〜図3を参照しながら説明する。
(実施例1)
本実施例1では、低速クロックから高速クロックへのデータの受け渡しが存在する場合であって、図6に示す論理回路30(=ネットリスト10)と、図7に示す回路のクロック情報12に対して、本実施形態の論理回路機能検証支援システム1を適用する場合について、図1〜図3を参照しながら説明する。
図6に示すように、ネットリスト10の論理回路30は、フリップフロップ31および33〜36と、組み合せ回路32とを有している。入力信号S20は、クロック系統CLK9のフリップフロップ31から組み合わせ回路32を経由してクロック系統CLK9のフリップフロップ33に伝播し、出力信号S23として出力される。これと同様に、入力信号S20はクロック系統CLK9のフリップフロップ31から組み合わせ回路32を経由してクロック系統CLK10のフリップフロップ34〜36に順次伝播し、出力信号S27として出力される。
図7に示すように、クロック情報12にはクロックの周期と立ち上がりエッジの情報とが含まれている。クロックCLK9では周期35の低速クロックであり、その立ち上がりエッジは17.5である。また、クロックCLK10では周期10の高速クロックであり、その立ち上がりエッジは5である。
図1および図2に示すように、論理回路機能検証支援システム1は、まず、図3のステップaにおいて、シミュレーション実行前の初期動作として、期待値比較ポイント設定部14においてネットリスト10のバックトレースを行って、異なるクロックドメイン間でのデータの受け渡しがあったか否かの情報と、データの受け渡し後に出力部との間に存在するフリップフロップの段数の情報と、出力信号を駆動しているクロックの情報とを取得する。
本実施例1では、CPU2によって、入力装置6から入力された図6のネットリスト10に対してバックトレース処理を行い、出力信号S23に対しては「異なるクロックドメイン間でのデータの受け渡し無しで駆動クロックはクロックCLK9」という情報をRAM4に格納する。また、出力信号S27に対しては「クロックCLK9からクロックCLK10へのデータの受け渡しがあり、データの受け渡し後、二つのフリップフロップが存在し、駆動クロックはクロックCLK10」という情報をRAM4に格納する。
ステップbにおいて、バックトレースの結果から、異なるクロックドメイン間でのデータの受け渡しがあったか否かを判断し、異なるクロックドメイン間でデータの受け渡しがなかった場合には、ステップcにおいて全クロックサイクルを期待値比較ポイントに設定しする。一方、異なるクロックドメイン間でデータの受け渡しがあった場合には、ステップdにおいて、低速クロックから高速クロックへのデータの受け渡しがあったか否かを判断する。
本実施例1では、CPU2によって、ROM3に書き込まれている期待値比較ポイント設定のための所定のプログラムに従って、RAM4に格納されたバックトレース結果と、入力装置6から入力された図7のクロック情報12とから、出力信号S23に対しては、異なるクロックドメイン間でのデータの受け渡しがないため、クロックCLK9の全サイクルを期待値比較ポイントに設定する。また、出力信号S27に対しては、低速クロックCLK9から高速クロックCLK10へのデータの受け渡しがあったと判断し、その結果をRAM4に格納する。
これに続いて、ステップeにおいて、低速クロックCLK9から高速クロックCLK10へのデータの受け渡しがあった場合に対する期待値比較ポイントの設定を行う。
本実施例1では、CPU2によって、ROM3に書き込まれている期待値比較ポイント設定のための所定の制御プログラムに従って、入力装置6から入力された図7のクロック情報12から、低速クロックCLK9の周期が35で、高速クロックCLK10の周期が10であるので、その最小公倍数である70を期待値比較ポイント設定の1サイクルとして以降の処理を行う。
出力信号S27に対しては、低速クロックCLK9から高速クロックCLK10へのデータの受け渡しであるため、低速クロックCLK9の立ち上がりエッジの直後に高速クロックCLK10の立ち上がりエッジが含まれるサイクルを期待値比較ポイントから除外し、その結果をRAM4に格納する。この様子を図示したものが図8であり、出力信号S27の期待値比較ポイントはサイクルT1、T2、T4、T5およびT7と設定され、サイクルT3および6Tが除外される。
これに続いて、異なるクロックドメイン間でのデータの受け渡し後、ステップgにおいて、フリップフロップによってデータを受けているか否かを判断し、ステップhにおいて期待値比較ポイントをフリップフロップの数だけ後ろにシフトさせる。
本実施例1では、CPU2によって、出力信号S27に対するバックトレース結果と期待値比較ポイントとをRAM4から読み出し、異なるクロックドメイン間でのデータの受け渡し後、さらにフリップフロップによってデータを受けているか否かを判断する。低速クロックCLK9から高速クロックCLK10へのデータの受け渡し後、二つのフリップフロップで受けているため、期待値比較ポイントを2サイクル後ろにシフトし、T3、T4、T6、T7およびT9と再設定後、その結果をRAM4に格納する。
これに続いて、ステップiにおいて、上記処理で設定された回路の各出力信号に対する期待値比較ポイント、期待値比較の周期、および駆動クロックの情報を最終の期待値比較ポイント情報15としてファイルに出力する。
本実施例1では、CPU2によって、RAM4に格納された期待値比較ポイント情報、期待値比較の周期、および駆動クロックの情報を外部記憶装置5に出力する。この際に出力される情報は図9に示すような情報であり、クロックCLK9のクロックサイクルをt1、t2、t3、・・・とした場合に、出力信号S23の期待値比較ポイントはt1およびt2で、期待値比較周期は2であるため、クロックCLK9の全サイクルで期待値比較が行われることを意味する。また、クロックCLK10のクロックサイクルをT1、T2、T3、・・・とした場合に、出力信号S27の期待値比較ポイントはT3、T4、T6、T7およびT9で、期待値比較周期は7であるため、クロックCLK10のT3、T4、T6、T7、T9、T10、T11、T13、T14、T16、・・・のサイクルで期待値比較が行われることを意味する。
以上によってシミュレーション実行前の初期動作としての期待値比較ポイント設定処理は終了となり、続いて、論理シミュレーション実行部16によって、図6の回路のネットリスト10に基づいて論理シミュレーションを開始する。
図10は、本実施例1における論理シミュレーション時の期待値、およびシミュレーション結果の波形を示す波形図である。
論理シミュレーション実行に平行して、期待値比較部17によって、シミュレーション結果と期待値11とを、期待値比較ポイント情報15で指定されたポイントで順次期待値比較する。期待値比較部17による期待値比較の結果が不一致になった場合には、論理シミュレーション制御部18によって論理シミュレーション実行部16に対してシミュレーション停止の命令を出して直ちにシミュレーションを停止させると共に、結果出力部19によって不一致が発生した信号名および発生時間などを期待値比較結果20として出力させる。
本実施例1では、CPU2によって、入力装置6から入力された図6のネットリスト10を用いて論理回路30の論理シミュレーションを開始する。CPU2によって、外部記憶装置5から読み込まれた図9の期待値比較ポイント情報15に従って、シミュレーション結果と入力装置6から入力された図10の期待値11とを期待値比較する。
以下に、出力信号S23および出力信号S27に対する期待値比較処理について、図10を参照しながら説明する。
図10に示すように、まず、出力信号S23に対しては、図9の期待値比較ポイント情報15で指定されたクロックCLK9の全サイクル(t1、t2、t3、t4・・・)で期待値比較が行われ、また、出力信号27に対しては、図9の期待値比較ポイント情報15で指定されたクロックCLK10のサイクル(T3、T4、T6、T7、T9・・・)で期待値比較が行われる。
ここで、期待値比較は時間軸に沿って順次行われるため、期待値比較実行順は(T3、t1、T4、T6、t2、T7、T9・・・)となる。例えば、出力信号S23については、t1サイクルでは期待値およびシミュレーション結果共に「0」、t2サイクルでは共に「1」となり、完全に一致する。同様に、出力信号S27については、期待値比較ポイントが設定されているサイクルT3、T4、T6、T7、T9・・・において、出力信号S23と同様に完全に一致する。
(実施例2)
本実施例2では、高速クロックから低速クロックへのデータの受け渡しが存在する場合であって、図11に示す論理回路40(=ネットリスト10)と、図12に示す回路のクロック情報12およびクロックドメイン間の最大遅延制約情報13に対して、本実施形態の論理回路機能検証支援システム1を適用する場合について、図1〜図3を参照しながら説明する。
(実施例2)
本実施例2では、高速クロックから低速クロックへのデータの受け渡しが存在する場合であって、図11に示す論理回路40(=ネットリスト10)と、図12に示す回路のクロック情報12およびクロックドメイン間の最大遅延制約情報13に対して、本実施形態の論理回路機能検証支援システム1を適用する場合について、図1〜図3を参照しながら説明する。
図11に示すように、論理回路40は、フリップフロップ41および43〜45と、組み合せ回路42とを有している。この場合、入力信号S30は、高速クロックCLK11のフリップフロップ41から組み合わせ回路42を経由して低速クロックCLK12のフリップフロップ43に伝播し、出力信号S33として出力される。これと同様に、入力信号S30は高速クロックCLK11のフリップフロップ41から組み合わせ回路42を経由して高速クロックCLK12のフリップフロップ44および45に順次伝播し、出力信号S36として出力される。
図12に示すように、クロック情報12にはクロックの周期と立ち上がりエッジの情報とが含まれている。クロックCLK11は周期10の高速クロックであり、その立ち上がりエッジは5である。また、クロックCLK12は周期35の低速クロックであり、その立ち上がりエッジは17.5である。また、図12に示すクロックドメイン間の最大遅延制約情報では、クロックCLK11からクロックCLK12へのデータ伝搬に許容される遅延の最大値が5と設定されている。
図1および図2に示すように、論理回路機能検証支援システム1は、まず、図3のステップaにおいて、シミュレーション実行前の初期動作として、期待値比較ポイント設定部14においてネットリスト10のバックトレースを行って、異なるクロックドメイン間でのデータの受け渡しがあったか否かの情報と、データの受け渡し後に出力部との間に存在するフリップフロップの段数の情報と、出力信号を駆動しているクロックの情報とを取得する。
本実施例2では、CPU2によって、入力装置6から入力された図11のネットリスト10(論理回路30)に対してバックトレース処理を行い、出力信号S33に対しては「クロックCLK11からクロックCLK12へのデータの受け渡しがあり、データの受け渡し後、フリップフロップは存在しておらず、駆動クロックはクロックCLK12」という情報をRAM4に格納する。また、出力信号S36に対しては「クロックCLK11からクロックCLK12へのデータの受け渡しがあり、データの受け渡し後、一つのフリップフロップが存在し、駆動クロックはクロックCLK12」という情報をRAM4に格納する。
次に、図3のステップbにおいて、バックトレースの結果から、異なるクロックドメイン間でのデータの受け渡しがあったか否かを判断し、異なるクロックドメイン間でデータの受け渡しがなかった場合には、ステップcにおいて全クロックサイクルを期待値比較ポイントに設定する。一方、異なるクロックドメイン間でデータの受け渡しがあった場合には、ステップdにおいて、低速クロックから高速クロックへのデータの受け渡しがあったか否かを判断する。
本実施例2では、CPU2によって、ROM3に書き込まれている期待値比較ポイント設定のための所定のプログラムに従って、RAM4に格納されたバックトレース結果と、入力装置6から入力された図12のクロック情報12とから、出力信号S33および36に対して、高速クロックCLK11から低速クロックCLK12へのデータの受け渡しがあったと判断し、その結果をRAM4に格納する。
これに続いて、ステップfにおいて、高速クロックCLK11から低速クロックCLK12へのデータの受け渡しがあった場合に対する期待値比較ポイントの設定を行う。
本実施例2では、CPU2によって、ROM32に書き込まれている期待値比較ポイント設定のための所定の制御プログラムに従って、入力装置6から入力された図12のクロック情報12およびクロックドメイン間の最大遅延制約情報13から、クロックCLK11の周期が10で、クロックCLK12の周期が35であるので、その最小公倍数である70を期待値比較ポイント設定の1サイクルとして以降の処理を行う。出力信号S33および36に対しては、高速クロックCLK11から低速クロックCLK12へのデータの受け渡しであるため、クロックCLK12の立ち上がりエッジから直前のクロックCLK11の立ち上がりエッジまでの時間を計算し、その時間が図12のクロックドメイン間の最大遅延制約情報13の5よりも小さい箇所について、該当するクロックCLK12の立ち上がりエッジが含まれるサイクルを期待値比較ポイントから除外し、その結果をRAM4に格納する。この様子を図示したものが図14であり、T1サイクルでのクロックエッジ間の時間をET8、T2サイクルでのクロックエッジ間の時間をET9とすると、ET8<クロックドメイン間の最大遅延制約情報13=5、ET9>クロックドメイン間の最大遅延制約情報13=5となるため、T1サイクルは期待値比較ポイントから除外される。したがって、出力信号S33および出力信号S36の期待値比較ポイントはサイクルT2と設定される。
これに続いて、異なるクロックドメイン間でのデータの受け渡し後、ステップgにおいて、フリップフロップによってデータを受けているか否かを判断し、ステップhにおいて期待値比較ポイントをフリップフロップの数だけ後ろにシフトさせる。
本実施例2では、CPU2によって、出力信号S33および36に対するバックトレース結果と期待値比較ポイントとをRAM4から読み出し、異なるクロックドメイン間でのデータの受け渡し後、さらにフリップフロップによってデータを受けているか否かを判断する。出力信号S36については高速クロックCLK11から低速クロックCLK12へのデータの受け渡し後、一つのフリップフロップで受けているため、期待値比較ポイントを1サイクル後ろにシフトし、サイクルT3と再設定後、その結果をRAM4に格納する。
これに続いて、ステップiにおいて、上記処理で設定された論理回路40の各出力信号S33,S36に対する期待値比較ポイント、期待値比較の周期、および駆動クロックの情報を最終の期待値比較ポイント情報15としてファイルに出力する。
本実施例2では、CPU2によって、RAM4に格納された期待値比較ポイント情報、期待値比較の周期、および駆動クロックの情報を外部記憶装置5に出力する。この際に出力される情報は図14に示すような情報であり、クロックCLK12のクロックサイクルをT1、T、T3、・・・とした場合に、出力信号S33の期待値比較ポイントはT2で、期待値比較周期は2であるため、クロックCLK12のT2、T4、T6、T8、T10、・・・のサイクルで期待値比較が行われることを意味する。また同様に、出力信号S36の期待値比較ポイントはT3で、期待値比較周期は3であるため、クロックCLK12のT3、T5、T7、T9、T11、・・・のサイクルで期待値比較が行われることを意味する。
以上によってシミュレーション実行前の初期動作としての期待値比較ポイント設定処理は終了となり、続いて、論理シミュレーション実行部16によって、図1の回路のネットリスト10に基づいて論理シミュレーションを開始する。図15は、本実施例2における論理シミュレーション時の期待値、およびシミュレーション結果の波形を示す波形図である。
この論理シミュレーション実行に平行して、期待値比較部17によって、シミュレーション結果と期待値11とを、期待値比較ポイント情報15で指定されたポイントで順次期待値比較する。期待値比較部17による期待値比較の結果が不一致になった場合には、論理シミュレーション制御部18によって論理シミュレーション実行部16に対してシミュレーション停止の命令を出して直ちにシミュレーションを停止させると共に、結果出力部19によって不一致が発生した信号名および発生時間等を期待値比較結果20として出力させる。
本実施例2では、CPU2によって、入力装置6から入力された図11のネットリスト10を用いて論理シミュレーションを開始する。CPU2によって、外部記憶装置5ら読み込まれた図14の期待値比較ポイント情報15に従って、シミュレーション結果と入力装置6から入力された図15の期待値11とを期待値比較する。
以下に、出力信号S33および出力信号S36に対する期待値比較処理について、図15を参照しながら説明する。
図15に示す容易に、まず、出力信号S33に対しては、図14の期待値比較ポイント情報15で指定されたクロックCLK12のサイクル(T2、T4、T6、T8・・・)で期待値比較が行われ、また、出力信号36に対しては、図14の期待値比較ポイント情報15で指定されたクロックCLK12のサイクル(T3、T5、T7、T9・・・)で期待値比較が行われる。ここで、期待値比較は時間軸に沿って順次行われるため、期待値比較実行順は(T2、T3、T4、T5、T6・・・)となる。例えば、出力信号S33について、T2サイクルでは期待値およびシミュレーション結果共に「1」となり、一致する。同様に、出力信号S36について、期待値比較ポイントが設定されているサイクルT3、T5、T7、T9・・・において、出力信号S33と同様に完全に一致する。
(実施例3)
本実施例3では、上記実施例1と同じ論理回路30について、期待値比較中に不一致が発生する場合であって、検査対象は上記実施例1と同様の論理回路30であるが、期待値比較時に不一致が発生する場合について、図1および図2を参照しながら説明する。
(実施例3)
本実施例3では、上記実施例1と同じ論理回路30について、期待値比較中に不一致が発生する場合であって、検査対象は上記実施例1と同様の論理回路30であるが、期待値比較時に不一致が発生する場合について、図1および図2を参照しながら説明する。
まず、シミュレーション実行前の初期動作としての期待値比較ポイント設定処理までは上記実施例1と同様であるため、その説明を省略し、論理シミュレーション以降の相違点について、以下に説明する。
論理シミュレーション実行部16によって、図1の回路のネットリスト10に基づいて論理シミュレーションを開始する。
図16は、本実施例3における論理シミュレーション時の期待値、およびシミュレーション結果の波形を示す波形図である。
この論理シミュレーション実行に平行して、期待値比較部17によって、シミュレーション結果と期待値11とを、期待値比較ポイント情報15で指定されたポイントで順次期待値比較する。期待値比較部17による期待値比較の結果が不一致になった場合には、論理シミュレーション制御部18によって論理シミュレーション実行部16に対してシミュレーション停止の命令を出して直ちにシミュレーションを停止させると共に、結果出力部19によって不一致が発生した信号名および発生時間などを期待値比較結果20として出力させる。
本実施例3では、CPU2によって、入力装置6から入力された図6のネットリスト10(論理回路30)を用いて論理シミュレーションを開始する。CPU2によって、外部記憶装置5から読み込まれた図9の期待値比較ポイント情報15に従って、シミュレーション結果と入力装置6から入力された図16の期待値11とを期待値比較する。
以下に、出力信号S23および出力信号S27に対する期待値比較処理について、図16を参照しながら説明する。
図16に示すように、まず、出力信号S23に対しては、図9の期待値比較ポイント情報15で指定されたクロックCLK9の全サイクル(t1、t2、t3、t4・・・)で期待値比較が行われ、また、出力信号27に対しては、図9の期待値比較ポイント情報15で指定されたクロックCLK10のサイクル(T3、T4、T6、T7、T9・・・)で期待値比較が行われる。ここで、期待値比較は時間軸に沿って順次行われるため、期待値比較実行順は(T3、t1、T4、T6、t2、T7、T9・・・)となる。したがって、T3サイクルにおいて出力信号27の期待値比較が最初に行われるが、このとき、期待値が「1」で、シミュレーション結果が「0」となり、不一致となる。不一致が発生したT3サイクルの時点で、CPU2によって直ちに論理シミュレーションが停止され、図17に示すように、表示装置7に対して、不一致が発生した信号名として出力信号S27、不一致発生時間としてサイクルT3という情報を出力する。
以上のように、本発明によれば、内部信号を参照したり、回路内部を解析して人手により期待値比較に必要な情報を指定したりすることなく、クロック情報12と、クロックドメイン間の最大遅延制約情報13とを元に、異なるクロックドメインに属する回路間のデータの受け渡し時に発生する出力結果の不確定タイミングを除外して、適切な期待値比較ポイントを自動設定することができる。期待値比較ポイントを設定する際に用いられるデータは、クロックの周期、クロックの立ち上がりエッジおよび立ち下がりエッジの少なくとも一方との情報を含むクロック情報と、異なるクロックドメイン間のデータ伝播に許容される遅延の最大値であるクロックドメイン間の最大遅延制御情報であり、論理シミュレーションには回路のトップ階層の信号のみが用いられるため、従来技術に比べて取り扱うデータ量が少なく、高速に論理シミュレーションを実行することができる。また、論理シミュレーション実行中に期待値比較を逐次行うことにより、検証効率を向上させることができる。さらに、期待値比較に不一致が発生した場合に、シミュレーションを中止して、不一致が発生した信号名と不一致発生時間とを出力して、不一致箇所に関する情報を利用者に通知することができる。
なお、上記実施形態では、可読記録媒体としては、特に説明しなかったが、ROM3の他に、各種ICメモリ、光ディスク(例えばCD)および磁気記録媒体(例えばFD)などの小型携帯用記録媒体であってもよく、論理回路機能検証支援システム1において、このROM3や小型携帯用記録媒体に記録された本発明の上記制御プログラムが読み取られた後に、ワークメモリとして働くRAM4内に格納されてCPU2によって論理回路機能検証支援方法の各処理(図3参照)を実行することができる。上記制御プログラムの読み取りは、無線または有線を介して通信機(受信機)で入手してRAM4内に格納することも可能である。
ここで、本発明の制御プログラムは、複数のクロック系統のドメインに属する回路を含む論理シミュレーション対象回路を機能検証する回路機能検証支援システムを用いる回路機能検証支援方法の各処理をコンピュータ実行させるための制御プログラムであって、回路の接続情報および遅延情報を有するネットリストを用いて論理シミュレーション対象回路の出力信号側から入力信号方向へバックトレースして出力信号の伝播経路を解析する処理と、該出力信号の伝播経路の途中で、該クロック系統が異なるクロックドメイン間でデータの受け渡しがあったか否かの情報および、論理シミュレーション対象回路のクロック波形を特定可能とするクロック情報、該クロック系統が異なるクロックドメイン間のデータ伝播に許容される遅延の最大値である最大遅延制約情報を取得する情報取得処理と、該データの受け渡しがなかった場合に、期待値の比較対象である信号を駆動しているクロック系統の全サイクルで期待値比較が行われるように、期待値比較ポイントを設定する第1期待値比較ポイント設定処理、低速動作回路から高速動作回路にデータの受け渡しがあった場合に、該クロック情報に基づいて、低速クロックの立ち上がりエッジの直後に、高速クロックの立ち上がりエッジが含まれるサイクルを期待値比較ポイントから除外して、該期待値の比較対象である信号を駆動しているクロックのクロックサイクルを期待値比較ポイントとして設定する第2期待値比較ポイント設定処理および、該高速動作回路から該低速動作回路にデータの受け渡しがあった場合に、該クロック情報および最大遅延制約情報に基づいて、該低速クロックの立ち上がりエッジからその直前の高速クロックの立ち上がりエッジまでの時間を計算し、その計算値が最大遅延制約値よりも小さい場合に、該低速クロックの立ち上がりクロックサイクルの箇所について期待値比較ポイントから除外して、該期待値の比較対象である信号を駆動しているクロックのクロックサイクルを期待値比較ポイントとして設定する第3期待値比較ポイント設定処理と、該クロック系統が異なるクロックドメイン間でデータの受け渡しがあった場合に、データの受け渡し後、回路の出力部から出力信号として出力されるまでの経路に存在するフリップフロップの段数情報を取得する処理と、該段数情報の段数分だけ、得ている期待値比較ポイントを後ろ側にシフトさせる第4期待値比較ポイント設定処理と、回路の接続情報および遅延情報を有するネットリストに基いて論理シミュレーションを実行する論理シミュレーション実行処理と、該論理シミュレーション実行処理によるシミュレーション結果と前記期待値とを前記期待値比較ポイントに従って比較する期待値比較処理と、該期待値比較処理による比較結果に基いて、該論理シミュレーション実行処理動作を制御する論理シミュレーション制御処理とをコンピュータに実行させる。
以上のように、本発明の好ましい実施形態を用いて本発明を例示してきたが、本発明は、この実施形態に限定して解釈されるべきものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。本明細書において引用した特許、特許出願および文献は、その内容自体が具体的に本明細書に記載されているのと同様にその内容が本明細書に対する参考として援用されるべきであることが理解される。
論理回路の機能を検証するために用いられる論理回路機能検証支援システムの分野において、複数のクロック系統のドメインに属する回路を有する論理回路において、信号伝播の遅延などの影響によってシミュレーション結果と期待値との間にサイクルずれが発生するような場合においても、回路の内部情報を必要とせず、クロック情報とクロックドメイン間の最大遅延制約情報のみから、適切に期待値比較ポイントを事前設定することができる。また、シミュレーション実行中に逐次期待値比較を行うことによって検証効率を向上させることが可能となる。期待値比較ポイントの設定時に利用されるデータは、クロック情報とクロックドメイン間の最大遅延情報であり、論理シミュレーションには回路のトップ階層の信号を用いるため、取り扱うデータ量が少なく、高速に論理シミュレーションを実行することが可能である。
1 論理回路機能検証支援システム
2 CPU
3 ROM
4 RAM
5 外部記憶装置
6 入力装置
7 表示装置
8 バスライン
10 ネットリスト
11 期待値
12 クロック情報
13 クロックドメイン間の最大遅延制約情報
14 期待値比較ポイント設定部
15 期待値比較ポイント情報
16 論理シミュレーション実行部
17 期待値比較部
18 論理シミュレーション制御部
19 結果出力部
20 期待値比較結果
30,40 論理回路
31,33〜36,41,43〜45 フリップフロップ
32,42 組み合わせ回路
2 CPU
3 ROM
4 RAM
5 外部記憶装置
6 入力装置
7 表示装置
8 バスライン
10 ネットリスト
11 期待値
12 クロック情報
13 クロックドメイン間の最大遅延制約情報
14 期待値比較ポイント設定部
15 期待値比較ポイント情報
16 論理シミュレーション実行部
17 期待値比較部
18 論理シミュレーション制御部
19 結果出力部
20 期待値比較結果
30,40 論理回路
31,33〜36,41,43〜45 フリップフロップ
32,42 組み合わせ回路
Claims (20)
- 複数のクロック系統のクロックドメインに属する回路を含む論理シミュレーション対象回路の機能検証を行う回路機能検証支援システムにおいて、
論理シミュレーション対象回路のクロック波形を特定可能とするクロック情報と、クロック系統が異なるクロックドメイン間のデータ伝播に許容される遅延の最大値である最大遅延制約情報とのうち少なくともクロック情報に基づいて、クロック系統が異なるクロックドメインに属する回路間のデータの受け渡し時に発生する出力結果の不確定タイミングを除外して、期待値とシミュレーション結果との期待値比較ポイントを設定する期待値比較ポイント設定部を有する回路機能検証支援システム。 - 前記期待値比較ポイント設定部は、クロック系統が異なるクロックドメイン間でのデータの受け渡しがない場合に、期待値の比較対象である信号を駆動しているクロックの全クロックサイクルを期待値比較ポイントとして設定する第1期待値比較ポイント設定手段をさらに有する請求項1に記載の回路機能検証支援システム。
- 前記期待値比較ポイント設定部は、回路の接続情報および遅延情報を有するネットリストから期待値の比較対象である信号のデータ伝播経路を出力側から入力側へバックトレースして、複数のクロック系統のうち、所定のクロック系統のドメインに属する回路から他のクロック系統のドメインに属する回路へのデータの受け渡しがあるか否かを判定するデータ受け渡し判定手段を有する請求項1に記載の回路機能検証支援システム。
- 前記期待値比較ポイント設定部は、
低速動作回路から高速動作回路へのデータの受け渡しがある場合に、前記論理シミュレーション対象回路のクロック情報から期待値比較ポイントを設定する第2期待値比較ポイント設定手段と、
高速動作回路から低速動作回路へのデータの受け渡しがある場合に、該論理シミュレーション対象回路のクロック情報と前記最大遅延制約情報とから期待値比較ポイントを設定する第3期待値比較ポイント設定手段とを有する請求項1または3に記載の回路機能検証支援システム。 - 前記第2期待値比較ポイント設定手段は、低速クロックの立ち上がりエッジ直後に高速クロックの立ち上がりエッジがある箇所を期待値比較ポイントから除外して、前記期待値の比較対象である信号を駆動しているクロックのクロックサイクルを期待値比較ポイントとして設定し、
前記第3期待値比較ポイント設定手段は、低速クロックの立ち上がりエッジ直前の高速クロックの立ち上がりエッジまでの時間が前記最大遅延制約値よりも小さい箇所を期待値比較ポイントから除外して、前記期待値の比較対象である信号を駆動しているクロックのクロックサイクルを期待値比較ポイントとして設定する請求項4に記載の回路機能検証支援システム。 - 前記期待値比較ポイント設定部は、前記クロック系統が異なるクロックドメイン間でのデータの受け渡し後、フリップフロップによってデータを受けている場合に、当該フリップフロップの段数分だけ、期待値比較ポイントを後ろ側にシフトさせて設定する第4期待値比較ポイント設定手段をさらに有する請求項1〜5のいずれかに記載の回路機能検証支援システム。
- 回路の接続情報および遅延情報を有するネットリストに基いて論理シミュレーションを実行する論理シミュレーション実行部と、
該論理シミュレーション実行部によるシミュレーション結果と前記期待値とを前記期待値比較ポイントに従って比較する期待値比較部とを有する請求項1に記載の回路機能検証支援システム。 - 前記期待値比較部は、前記論理シミュレーション実行部による論理シミュレーション実行中に、前記期待値比較ポイント設定部によって設定された期待値比較ポイントに従って、前記論理シミュレーション結果と期待値との比較を逐次行い、その比較結果から一致/不一致を判定する請求項7に記載の回路機能検証支援システム。
- 前記論理シミュレーション実行部は、前記論理シミュレーション対象回路の最上位階層の信号に対してシミュレーションを行う請求項7に記載の回路機能検証支援システム。
- 前記期待値比較部による比較結果に基いて、前記論理シミュレーション実行部の動作を制御する論理シミュレーション制御部をさらに有する請求項7または9に記載の回路機能検証支援システム。
- 該論理シミュレーション制御部は、前記期待値比較部によって前記期待値とシミュレーション結果とが不一致であると判定された場合に、前記論理シミュレーション実行部に対して、直ちにシミュレーション動作を停止させるように制御する請求項10に記載の回路機能検証支援システム。
- 前記期待値比較部による期待値比較結果情報を出力する結果出力部をさらに有する請求項7〜11のいずれかに記載の回路機能検証支援システム。
- 前記結果出力部は、前記期待値比較部によって前記期待値とシミュレーション結果とが不一致であると判定された場合に、前記期待値比較結果情報を、表示画面上に表示することと、プリントアウトすることのうち少なくともいずれかを行う請求項12に記載の回路機能検証支援システム。
- 前記期待値比較結果情報は、少なくとも前記不一致が発生した信号名およびクロック系統と、該不一致が発生した時刻である請求項12または13に記載の回路機能検証支援システム。
- 前記クロック情報は、クロック周期の情報と、クロックの立ち上がりエッジおよび立ち下がりエッジの少なくとも一方の情報とを含む請求項1に記載の回路機能検証支援システム。
- 複数のクロック系統のドメインに属する回路を含む論理シミュレーション対象回路を機能検証する回路機能検証支援システムを用いる回路機能検証支援方法において、
回路の接続情報および遅延情報を有するネットリストを用いて論理シミュレーション対象回路の出力信号側から入力信号方向へバックトレースして出力信号の伝播経路を解析する処理と、
該出力信号の伝播経路の途中で、該クロック系統が異なるクロックドメイン間でデータの受け渡しがあったか否かの情報および、論理シミュレーション対象回路のクロック波形を特定可能とするクロック情報、該クロック系統が異なるクロックドメイン間のデータ伝播に許容される遅延の最大値である最大遅延制約情報を取得する情報取得処理と、
該データの受け渡しがなかった場合に、期待値の比較対象である信号を駆動しているクロック系統の全サイクルで期待値比較が行われるように、期待値比較ポイントを設定する第1期待値比較ポイント設定処理、低速動作回路から高速動作回路にデータの受け渡しがあった場合に、該クロック情報に基づいて、低速クロックの立ち上がりエッジの直後に、高速クロックの立ち上がりエッジが含まれるサイクルを期待値比較ポイントから除外して、該期待値の比較対象である信号を駆動しているクロックのクロックサイクルを期待値比較ポイントとして設定する第2期待値比較ポイント設定処理および、該高速動作回路から該低速動作回路にデータの受け渡しがあった場合に、該クロック情報および最大遅延制約情報に基づいて、該低速クロックの立ち上がりエッジからその直前の高速クロックの立ち上がりエッジまでの時間を計算し、その計算値が最大遅延制約値よりも小さい場合に、該低速クロックの立ち上がりクロックサイクルの箇所について期待値比較ポイントから除外して、該期待値の比較対象である信号を駆動しているクロックのクロックサイクルを期待値比較ポイントとして設定する第3期待値比較ポイント設定処理のいずれかを行う処理とを有する回路機能検証支援方法。 - 前記クロック系統が異なるクロックドメイン間でデータの受け渡しがあった場合に、データの受け渡し後、回路の出力部から出力信号として出力されるまでの経路に存在するフリップフロップの段数情報を取得する処理と、
該段数情報の段数分だけ、前記期待値比較ポイントを後ろ側にシフトさせる第4期待値比較ポイント設定処理を有する請求項16に記載の回路機能検証支援方法。 - 回路の接続情報および遅延情報を有するネットリストに基いて論理シミュレーションを実行する論理シミュレーション実行処理と、
該論理シミュレーション実行処理によるシミュレーション結果と前記期待値とを前記期待値比較ポイントに従って比較する期待値比較処理と、
該期待値比較処理による比較結果に基いて、該論理シミュレーション実行処理動作を制御する論理シミュレーション制御処理とを有する請求項16または17に記載の回路機能検証支援方法。 - 請求項16〜18に記載の回路機能検証支援方法の各処理をコンピュータに実行させるための制御プログラム。
- 請求項19に記載の制御プログラムが記録されたコンピュータ読み取り可能な可読記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003417331A JP2005182093A (ja) | 2003-12-15 | 2003-12-15 | 回路機能検証支援システム、回路機能検証支援方法、制御プログラムおよび可読記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003417331A JP2005182093A (ja) | 2003-12-15 | 2003-12-15 | 回路機能検証支援システム、回路機能検証支援方法、制御プログラムおよび可読記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005182093A true JP2005182093A (ja) | 2005-07-07 |
Family
ID=34779870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003417331A Withdrawn JP2005182093A (ja) | 2003-12-15 | 2003-12-15 | 回路機能検証支援システム、回路機能検証支援方法、制御プログラムおよび可読記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005182093A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8135557B2 (en) | 2007-08-30 | 2012-03-13 | Kabushiki Kaisha Toshiba | Apparatus for testing semiconductor integrated circuit and method for testing semiconductor integrated circuit |
WO2012105013A1 (ja) * | 2011-02-02 | 2012-08-09 | 富士通株式会社 | 回路設計支援装置、回路設計支援プログラムおよび回路設計支援方法 |
-
2003
- 2003-12-15 JP JP2003417331A patent/JP2005182093A/ja not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8135557B2 (en) | 2007-08-30 | 2012-03-13 | Kabushiki Kaisha Toshiba | Apparatus for testing semiconductor integrated circuit and method for testing semiconductor integrated circuit |
WO2012105013A1 (ja) * | 2011-02-02 | 2012-08-09 | 富士通株式会社 | 回路設計支援装置、回路設計支援プログラムおよび回路設計支援方法 |
JPWO2012105013A1 (ja) * | 2011-02-02 | 2014-07-03 | 富士通株式会社 | 回路設計支援装置、回路設計支援プログラムおよび回路設計支援方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9739833B2 (en) | Scan chain for memory sequential test | |
US7243322B1 (en) | Metastability injector for a circuit description | |
JP2010531002A (ja) | 自動回路設計及びシミュレーションに使用するための技術 | |
US20160283628A1 (en) | Data propagation analysis for debugging a circuit design | |
JPH05128199A (ja) | シミユレーシヨン装置 | |
US6985840B1 (en) | Circuit property verification system | |
JP4142176B2 (ja) | インタフェース仕様定義を記録した記憶媒体、及び接続検証方法、及び信号パタン生成方法 | |
US7237208B1 (en) | Managing formal verification complexity of designs with datapaths | |
US8943457B2 (en) | Simulating scan tests with reduced resources | |
JP2005182093A (ja) | 回路機能検証支援システム、回路機能検証支援方法、制御プログラムおよび可読記録媒体 | |
US8056037B2 (en) | Method for validating logical function and timing behavior of a digital circuit decision | |
JP3953250B2 (ja) | 非同期回路の検証方法 | |
US6789242B1 (en) | Method and system for integrated circuit design and diagnosis | |
US8793548B2 (en) | Integrated circuit, simulation apparatus and simulation method | |
US6983437B2 (en) | Timing verification, automated multicycle generation and verification | |
US8423935B1 (en) | Method and apparatus for verifying output-based clock gating | |
JP5145167B2 (ja) | クロックドメインチェック方法及びクロックドメインチェック用プログラム並びに記録媒体 | |
US11755804B2 (en) | Hybrid synchronous and asynchronous control for scan-based testing | |
US20050177357A1 (en) | Static timing model for combinatorial gates having clock signal input | |
JP2007241836A (ja) | マルチサイクルパス検証方法 | |
JP4578024B2 (ja) | タイミング検証装置 | |
JP5942417B2 (ja) | シミュレーション装置、シミュレーション方法及びシミュレーションプログラム | |
JP2914257B2 (ja) | 競合動作の判定方法 | |
JPH06148293A (ja) | 論理回路テスト回路 | |
JP2002207782A (ja) | 論理シミュレーション方法、および、論理シミュレーション用プログラムを記録する記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20070306 |