【0001】
【発明の属する技術分野】
本発明は、LSI設計データの機能論理検証を行うためのLSI設計検証装置およびLSI設計検証方法にかかわり、特には、動的に動作周波数を変更制御するための技術に関する。
【0002】
【従来の技術】
LSIの微細化、集積技術の進展により、1チップLSIを用いて大規模なデジタルシステムを実現することが可能になっている。こうしたシステムの開発では、短期にシステム仕様・動作設計から、機能、論理、レイアウトまでを、段階的に検証しながらトップダウンに設計し、早期に製品化を図ることが必要となっている。特にLSI化を前提としたシステムレベルの仕様・動作、実現アーキテクチャの基本設計においては、チップ製造後のアーキテクチャ変更が多大のコストを伴うことから、詳細設計に進む前段階より、システムLSIの処理性能、そのボトルネック部分等を解析することが求められる。
【0003】
移動体電話向けLSI等、低消費電力化を必要とするLSIでは、LSIを構成する機能ブロック単位で電源電圧を可変化して、低消費電力化とともに必要な性能・動作速度を実現する電源電圧可変LSIが主流になると考えられている。このようなLSIにおいては、高速動作が必要な機能ブロックでは、駆動電圧を上げ、動作周波数すなわちクロック周波数を上げる一方、低速でもよい機能ブロックでは駆動電圧および動作周波数を下げ、低消費電力化を行う。さらに、複合した動作を行うLSIにおいても、その動作モードに応じて、動的に電源電圧および動作周波数(クロック周波数)を制御して、低消費電力化を図る。
【0004】
上記のような電源電圧可変LSIの設計において機能設計を行う際、従来の設計手法では、HDL(ハードウエア記述言語)もしくは汎用のC言語を用いてサイクル精度の回路記述を行い、電源制御回路、クロック周波数制御回路を具体化し、機能シミュレーションを通じて機能確認を行っている。基本的には、要求性能を実現可能な最速動作設計を起点にして、各機能ブロックの周波数を下げ、その場合にも正しく動作するか否かを検証するという作業を、可能なバリエーションに関して繰り返し実施し、最適設計解を探索している。
【0005】
【特許文献1】
特開平5−27055号公報
【0006】
【発明が解決しようとする課題】
機能ブロックの電源電圧制御を伴う電源電圧可変LSIにおいては、クロック周波数を制御する論理を設計、検証するために詳細機能論理設計を行う必要がある。特定の動作モードにおいて、電源電圧を下げ、動作周波数を下げることが可能な機能ブロックを見極める必要がある。あるいは、その機能ブロックにおいて、要求動作、要求性能を実現可能な最低動作周波数を見極める必要がある。
【0007】
しかしながら、従来の設計手法では、数十以上ある機能ブロックの組み合わせに対して、異なる電源電圧およびクロック周波数制御論理を設計し、都度、シミュレーションでの機能検証、性能解析を繰り返す必要があった。すなわち、複数のバリエーションを探索するため、設計変更を繰り返し、かつ、検証を実施する必要があり、最適な設計結果を得るためには多大な工数を要するという課題があった。
【0008】
また、動作周波数を変更した機能ブロック間のデータ転送については、機能ブロック間の速度差を吸収する必要がある。そこで、バッファを挿入することにより、動作周波数を下げた場合も正しく動作させるようにする。しかし、これを考慮した最適設計を行うには、バッファサイズ調整のための複数バリエーションの探索、あるいはそのバッファ溢れの有無の検証等、さらに多大の設計検証工数を要するという課題があった。
【0009】
本発明は上記問題点に鑑み、サイクル精度の動作シミュレーションあるいは機能論理シミュレーションにおいて、LSI設計上の各機能ブロックのクロック周波数制御あるいはバッファ挿入に関して、構成変更を容易に行いながら、複数の設計バリエーションを探索することができるLSI設計検証装置およびLSI設計検証方法を提供することを目的とする。
【0010】
【課題を解決するための手段】
上記の課題を解決するために、本発明は次のような手段を講じる。すなわち、本発明によるLSI設計検証装置は、LSIの設計データを入力として機能論理検証を行うものであって、被検証対象のLSIを構成する各機能ブロック毎に動作周波数を指定する周波数制御手段と、前記周波数制御手段によって指定された動作周波数に応じて前記各機能ブロックの動作クロックを変更するクロック周波数変更手段と、前記動作クロック変更後のLSIに対して機能シミュレーションを実行する機能シミュレーション手段とを備えた構成とされている。
【0011】
この構成による作用は次のとおりである。周波数制御手段は、すべての機能ブロックに対してそれぞれの状態に応じた動作周波数を指定し、クロック周波数変更手段は、その指定の動作周波数に基づいて、各機能ブロックの動作クロックを変更する。機能シミュレーション手段は、動作クロック変更後の機能ブロック群からなるLSIに対して機能シミュレーションを実行する。そして、最適解が得られるように上記処理を繰り返す。これによれば、機能ブロックごとに適した動作クロックを指定するが、その指定は簡易に行うことができ、その上でLSI全体の機能シミュレーションを行って検証するので、全体として、LSIの設計検証をターンアラウンドタイムの短い状態で効率良く行うことができる。
【0012】
上記において好ましい態様は、前記の周波数制御手段について、LSIの動作状態に応じて動的に各機能ブロックの動作周波数を指定するように周波数制御手段が構成されていることである。これによれば、複合動作を行うLSIにおいて、動作モードに応じて動的に動作クロックを制御し、有効な低消費電力化を図ることができる。
【0013】
また、上記において好ましい態様は、前記の周波数制御手段について、動作周波数制御を状態遷移図によりエントリするように周波数制御手段が構成されていることである。これによれば、状態遷移図に基づいて動作周波数制御をエントリするので、周波数制御の変更をより簡易に行うことができる。
【0014】
また、上記において好ましい態様は、前記のクロック周波数変更手段について、該当する機能ブロックのクロックツリー解析を行ってクロック信号を抽出するように構成されていることである。これによれば、クロック周波数変更の際、機能ブロックのクロックツリー解析を行ってクロック信号を抽出することにより、クロック信号の指定の手間を省き、かつ指定漏れによる不具合を回避することができる。
【0015】
さらに、上記において好ましい態様は、バッファ挿入手段をさらに備える状態にLSI設計検証装置を構成することである。そのバッファ挿入手段は、被検証対象のLSIを構成する各機能ブロック間のデータ転送路にデータバッファを挿入するものである。これによれば、各機能ブロック間の動作周波数を変更する際に、バッファ挿入手段は、機能ブロック間のデータ転送路にFIFO等のデータバッファを挿入する。これにより、機能ブロックの動作周波数変更により、機能ブロック相互間にデータ入出力速度も変更されるが、この入出力速度の変更に対して、データバッファ挿入による速度差吸収が可能であるか否かを簡易に検証することができる。
【0016】
上記において好ましい態様は、前記のバッファ挿入手段が、該当する機能ブロック間の動作周波数比に応じた容量を持つバッファを挿入することである。これによれば、機能ブロック相互間のデータ入出力速度の差を良好に吸収することができる。
【0017】
上記において好ましい態様は、前記のバッファ挿入手段が、機能シミュレーション時にバッファの状態情報を出力する機能を備えていることである。これによれば、データバッファの検証モデルとして、バッファの状態情報(特にバッファ溢れなどの情報)を出力することによって、機能検証のさらなる効率化を図ることができる。
【0018】
上記において好ましい態様は、前記のバッファの状態情報出力機能が、バッファ溢れを検出したときに警告情報を出力するように構成されていることである。さらに、前記バッファの状態情報出力機能が、バッファ使用率を算出し、バッファ使用率情報を出力するように構成されていることである。この際、データバッファの検証モデルにバッファの使用状況の情報、特にバッファ溢れなどの情報を出力するので、機能検証および回路動作解析をより効率良く行うことができる。
【0019】
さらに、上記において好ましい態様は、さらに、LSI機能変更手段を備えることである。そのLSI機能変更手段は、前記周波数制御手段によって指定された周波数制御仕様に基づき周波数制御回路を生成し、LSI設計データを変更するものである。これによれば、短ターンアラウンドタイムでのLSIの設計検証をさらに効率良く行うことができる。
【0020】
本発明はまたLSI設計検証方法に関するものであり、次のような解決手段をとる。すなわち、LSIの設計データを入力として機能論理検証を行うLSI設計検証方法であって、被検証対象のLSIを構成する各機能ブロック毎に動作周波数を指定する周波数制御ステップと、前記周波数制御ステップによって指定された動作周波数に応じて前記各機能ブロックの動作クロックを変更するクロック周波数変更ステップと、前記動作クロック変更後のLSIに対して機能シミュレーションを実行する機能シミュレーションステップとを含むものである。
【0021】
この構成による作用は次のとおりである。周波数制御ステップにおいて、すべての機能ブロックに対してそれぞれの状態に応じた動作周波数を指定し、クロック周波数変更ステップにおいて、その指定の動作クロックに基づいて、各機能ブロックの動作クロックを変更する。機能シミュレーションステップにおいて、動作クロック変更後の機能ブロック群からなるLSIに対して機能シミュレーションを行う。そして、最適解が得られるように上記処理を繰り返す。これによれば、機能ブロックごとに適した動作クロックを指定するが、その指定は簡易に行うことができ、その上でLSI全体の機能シミュレーションを行って検証するので、全体として、LSIの設計検証をターンアラウンドタイムの短い状態で効率良く行うことができる。
【0022】
上記のLSI設計検証方法において好ましくは、前記周波数制御ステップが、動作周波数制御を状態遷移図によりエントリすることである。これによれば、動作周波数制御を状態遷移図に基づいて動作周波数制御をエントリするので、周波数制御の変更をより簡易に行うことができる。
【0023】
また、上記のLSI設計検証方法において好ましくは、前記のクロック周波数変更ステップが、該当する機能ブロックのクロックツリー解析を行ってクロック信号を抽出することである。これによれば、クロック周波数変更の際、機能ブロックのクロックツリー解析を行ってクロック信号を抽出することにより、クロック信号の指定の手間を省き、かつ指定漏れによる不具合を回避することができる。
【0024】
また、上記のLSI設計検証方法において好ましい態様は、被検証対象のLSIを構成する各機能ブロック間のデータ転送路にデータバッファを挿入するバッファ挿入ステップを備えることである。これによれば、各機能ブロック間の動作周波数を変更する際に、バッファ挿入ステップは、機能ブロック間のデータ転送路にFIFO等のデータバッファを挿入する。これにより、機能ブロックの動作周波数変更により、機能ブロック相互間にデータ入出力速度も変更されるが、この入出力速度の変更に対して、データバッファ挿入による速度差吸収が可能であるか否かを簡易に検証することができる。
【0025】
また、上記において好ましい態様は、前記バッファ挿入ステップが、機能シミュレーション時にバッファの状態情報を出力する機能をもつことである。これによれば、データバッファの検証モデルとして、バッファの状態情報(特にバッファ溢れなどの情報)を出力することによって、機能検証のさらなる効率化を図ることができる。
【0026】
さらに、好ましくは、周波数制御ステップによって指定された周波数制御仕様に基づき周波数制御回路を生成し、LSI設計データを変更するLSI機能変更ステップを備えることである。これによれば、短ターンアラウンドタイムでのLSIの設計検証をさらに効率良く行うことができる。
【0027】
【発明の実施の形態】
以下、本発明にかかわるLSI設計検証方法・装置の実施の形態について図面を用いて説明する。なお、本発明はこの実施の形態に何等限定されるものではなく、要旨を逸脱しない範囲においては種々なる態様で実施し得る。
【0028】
(実施の形態1)
図1は本発明の実施の形態におけるLSI設計検証装置の構成を示すブロック図、図2はこのLSI設計検証装置を用いた検証手順を示すフローチャートである。このLSI設計検証装置は、周波数制御手段1、クロック周波数変更手段2、バッファ挿入手段3および機能シミュレーション手段4から構成されている。
【0029】
まず、ステップS1において、周波数制御手段1は、LSIを構成する各機能ブロックのそれぞれに対して、周波数制御仕様11に基づいて回路の状態に適した動作周波数を指定し、これに対応する周波数制御回路を生成する。周波数制御手段1は、図6に示すように、状態遷移入力手段101と、周波数制御論理生成手段102から構成され、状態遷移図により動作周波数制御をエントリするように構成されている。状態遷移入力手段101は周波数制御仕様11における状態遷移図を入力し、周波数制御論理生成手段102は入力した状態遷移図に基づいて制御情報を生成し、さらに周波数制御回路データ103を生成する。
【0030】
図7は周波数制御手段1によって生成された周波数制御回路103aの構成をその入出力信号とともに示す。図7の周波数制御回路103aは、源クロック信号CK0の入力ライン、複数の制御信号Ci(i=1,2…)の入力ライン、これらの入力に応じて生成される周波数を異にする複数種類のクロック信号CKi(i=1,2…)の出力ライン、および各々のクロック信号CKiと対をなすセレクト信号SEi(i=1,2…)の出力ラインをもつ。各セレクト信号SEiは、対をなすクロック信号CKiの選択を制御する制御信号である。
【0031】
次に、ステップS2において、クロック周波数変更手段2は、LSI設計データ12およびステップS1で生成した周波数制御回路データ103を入力して統合し、周波数制御回路103aの入出力信号を接続する。
【0032】
図3はステップS2の詳細手順を示す。図4は図3におけるステップS201の詳細手順を示す。
【0033】
まず、図3のステップS201において、クロック周波数変更手段2は、LSIの各機能ブロックのクロック信号CKi(i=1,2…)を抽出する。ステップS201の詳細手順を図4に基づいて説明する。
【0034】
まず、ステップS201aにおいて、論理合成によって、対応する機能ブロックのネットリストを生成する。次に、ステップS201bにおいて、前記のネットリストからフリップフロップ(FF)を検索し、リストアップする。次いで、ステップS201cにおいて、このリスト上のフリップフロップの各々に関してクロック信号を上位階層へ追跡する。次に、ステップS201dにおいて、機能ブロックの源クロック信号を確定する。そして、ステップS201eにおいて、源クロック信号が複数あるか否かを判断し、複数ある場合にはエラー処理を行う。なお、複数のクロック信号CKi(i=1,2)の入力に対しても、ステップS1の周波数制御手段1において対応した制御方法を指定することで対応できる。
【0035】
続いて、図3のステップS202に進み、前段階のステップS201で抽出した結果に基づいて、各機能ブロックIPi(i=1,2…)に対してセレクタ201i(i=1,2…)を挿入する。すなわち、図8に示すように、源クロック信号CK0と機能ブロックIPiとの間にセレクタ201iを挿入する。
【0036】
次に、ステップS203において、前段のステップS202で挿入した各セレクタ201iに対して、周波数制御回路103aからのクロック信号CKiとセレクト信号SEiを接続する。この場合、周波数制御手段1で指定された機能ブロックIPiと変更周波数との対応に従って、指定の変更周波数と制御条件を満たすクロック信号CKiとセレクト信号SEiを選択する。
【0037】
図9を参照して説明すると、各機能ブロックIPi(i=1,2…)に対してそれぞれにセレクタ201i(i=1,2…)を挿入し、各セレクタ201iに対して源クロック信号CK0と周波数制御回路103aからのクロック信号CKiおよびセレクト信号SEiを接続する。
【0038】
さらに、ステップS204において、周波数制御回路103aに必要な制御信号Ci(i=1,2…)をLSIデータから引き出し、接続する。
【0039】
次に、図3のステップS204から図2のステップS3に進み、バッファ挿入手段3は、上記のクロック周波数変更手段2によって得られた周波数制御LSI13(図1参照)において、その動作周波数を変更された機能ブロックの入力信号に対してバッファを挿入し、バッファ付きLSI14を作成する。図5はステップS3の詳細手順を示す。
【0040】
まず、ステップS301において、クロック信号を変更する機能ブロックをリストアップする。次に、ステップS302において、そのリストアップした機能ブロックのデータ入力信号をリストアップする(バスは1信号とする)。次に、ステップS303において、リストアップした入力信号からクロック信号を除外する。さらに、ステップS304において、残りの入力信号に対してビット幅に応じたビット幅をもつバッファ(FIFO)を挿入する。これにより、バッファ付きLSI14が作成される。
【0041】
図9は周波数制御回路103aと、機能ブロックIPi(i=1,2…)に対して挿入したセレクタ201i(i=1,2…)の回路構成を示す。クロックが制御される機能ブロックIPjに対する入力信号に対してバッファ301が挿入される。
【0042】
図10は挿入されるバッファの構成を示す。挿入されるバッファ301は、FIFO401とセレクタ402から構成されている。周波数制御回路103aが出力するセレクト信号SEjに従って、対応する機能ブロックIPjの動作周波数が変更され、クロック信号CKjとする場合にのみ、FIFO401を用いたバッファ機能が作用する。
【0043】
図5のステップS304から図2のステップS4に進み、機能シミュレーション手段4は、ステップS3で作成したバッファ付きLSI14の動作を指定のシミュレーションパターン(テストパターン)15に基づいてシミュレーションする。次に、ステップS5において、シミュレーションの結果を期待値照合し、動作周波数変更前の動作結果と動作周波数制御を加えた動作結果が一致するか否かを確認する。動作が一致しなければ、ステップS1に戻り、動作周波数制御を変更する。一致する場合には、ステップS6に進んで、さらに消費電力を削減するために動作周波数制御をチューニングするか否かの指示の有無を判定し、チューニングする場合はステップS1に戻り、動作周波数制御を変更する。これによって、シミュレーション結果16を得ることができる。
【0044】
以上でLSI設計検証装置の動作手順の説明を終わる。次に、図11〜図13を用いて具体例について説明する。
【0045】
図11の回路は、50MHzの源クロック信号CK0を入力する3つの機能ブロックIPi(i=1,2,3)で構成されている。この回路に対して周波数制御手段1が指定する状態遷移図を図12に示す。図12では、図11の機能ブロックIP1の内部信号A,Bを用いて、3状態で機能ブロックIP2,IP3の動作周波数の変更制御を行う。
【0046】
図13では、図12の状態遷移図の制御を行う場合のシミュレーション回路構成を示す。まず、周波数制御回路103bが組み込まれ、周波数制御回路103bには機能ブロックIP1の内部信号A,Bが入力される。また、機能ブロックIP2の動作周波数を変更するクロック信号CK1(25MHz)とそのセレクト信号SE1が出力されるとともに、機能ブロックIP3の動作周波数を変更するクロック信号CK2(10MHz)とそのセレクト信号SE2が出力される。また、機能ブロックIP2が25MHzのクロックCK1を使用する場合に対応して、機能ブロックIP1からの入力にバッファ301aが挿入される。同じく機能ブロックIP3が10MHzのクロックCK2を使用する場合に対応して、機能ブロックIP1および機能ブロックIP2からの入力に各々にバッファ301b,301cが挿入される。バッファ301aに対しては、動作周波数比(50:25)に応じて2段のFIFOを使用し、バッファ301b,301cに対しては動作周波数比(50:10)に対応して5段のバッファを使用する。また、各々のバッファには対応するセレクト信号SEi(i=1,2,3)が入力される。
【0047】
(実施の形態2)
本発明の実施の形態2は、実施の形態1に加えて、バッファ挿入手段3により挿入するバッファ使用状況を監視する構成を備えている。
【0048】
図14は挿入されるバッファ301′の構成を示すブロック図である。このバッファ301′は、実施の形態1の場合の図10のバッファ301の構成に、さらにバッファ監視手段403を加えたものである。バッファ監視手段403は、セレクト信号SEiを同様に入力し、セレクト信号SEiがアクティブな場合にのみFIFO401の使用状況を監視し、FIFO401の情報を出力する。すなわち、バッファ監視手段403は、セレクト信号SEiによってアクティブにされ、クロックサイクル単位等の一定サイクル毎にFIFO401の空き状況を監視し、これをバッファ使用率情報404として出力する。そして、FIFO401に空きがない状態で書き込みが発生した場合には、バッファ溢れ情報405を出力する。なお、FIFO401の容量に対して空きの比率をバッファ使用率としても良い。また、一定期間の使用率の平均をバッファ使用率として出力しても良い。
【0049】
【発明の効果】
以上のように、本発明のLSI設計検証装置/方法によれば、各機能ブロックにつき動作周波数を変更した上でのシミュレーションを簡易に実行でき、設計変更を短ターンアラウンドタイムで試行できる。これにより、最適な周波数制御を効率良く決定することができ、消費電力をより効果的に削減したLSIの設計が可能となる。
【0050】
また、機能ブロックの動作周波数変更に伴うデータ入出力速度の変更に対して、機能ブロック間のデータ転送路にデータバッファを挿入することで、速度差吸収の可能性の検証を極めて簡易に行うことができる。
【0051】
さらに、データバッファの検証モデルにバッファの状態情報(特にバッファ溢れ情報)を出力するようにすれば、機能検証および回路動作解析をさらに効率化することができる。
【0052】
本発明は、特に、低消費電力化が強く求められる移動体電話向けLSIに適用すると、その効果を充分に発揮する。
【図面の簡単な説明】
【図1】本発明の実施の形態1におけるLSI設計検証装置の構成を示すブロック図
【図2】実施の形態1のLSI設計検証装置を用いた検証手順を示すフローチャート
【図3】実施の形態1におけるクロック周波数変更(ステップS2)の詳細手順を示すフローチャート
【図4】実施の形態1におけるクロック抽出(ステップS201)の詳細手順を示すフローチャート
【図5】実施の形態1におけるバッファ挿入(ステップS3)の詳細手順を示すフローチャート
【図6】実施の形態1における周波数制御手段の構成を示すブロック図
【図7】実施の形態1において生成された周波数制御回路の構成をその入出力信号とともに示すブロック図
【図8】実施の形態1におけるセレクタ挿入例(クロック信号切り替え回路)の構成を示すブロック図
【図9】実施の形態1におけるシミュレーション用回路の構成を示すブロック図
【図10】実施の形態1における挿入されるバッファの構成を示すブロック図
【図11】具体的説明の回路例を示すブロック図
【図12】具体的説明の回路例の場合の周波数制御の状態遷移図
【図13】具体的説明の回路例に対するシミュレーション用回路の構成を示すブロック図
【図14】本発明の実施の形態2におけるバッファ監視手段を加えたバッファの構成を示すブロック図
【符号の説明】
1…周波数制御手段
2…クロック周波数変更手段
3…バッファ挿入手段
4…機能シミュレーション手段
11…周波数制御仕様
12…LSI設計データ
13…周波数制御回路
14…バッファ付きLSI
15…シミュレーションパターン
16…シミュレーション結果
101…状態遷移入力手段
102…周波数制御論理生成手段
103…周波数制御回路データ
103a…周波数制御回路
201i…セレクタ
301…バッファ
401…FIFO
402…セレクタ
403…バッファ監視手段
404…バッファ使用率情報
405…バッファ溢れ情報
IPi…機能ブロック
CK0…源クロック信号
CKi…クロック信号
SEi…セレクト信号
Ci…制御信号[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an LSI design verification apparatus and an LSI design verification method for performing functional logic verification of LSI design data, and more particularly to a technique for dynamically changing and controlling an operating frequency.
[0002]
[Prior art]
With the miniaturization of LSIs and the development of integration technologies, large-scale digital systems can be realized using one-chip LSIs. In the development of such a system, it is necessary to design from the system specification and operation design to the functions, logic, and layout in a short period of time, step-by-step, and design it from the top down, and to commercialize the product as soon as possible. In particular, in the basic design of the system-level specifications / operations and the realization architecture based on LSI implementation, since the architecture change after chip manufacturing involves a great deal of cost, the processing performance of the system LSI is improved from the stage before proceeding to the detailed design. It is required to analyze the bottleneck part and the like.
[0003]
In LSIs requiring low power consumption, such as LSIs for mobile phones, the power supply voltage is varied in units of functional blocks constituting the LSI, thereby realizing the required performance and operating speed together with low power consumption. It is believed that variable LSIs will become mainstream. In such an LSI, the driving voltage is increased and the operating frequency, that is, the clock frequency is increased in a functional block requiring high-speed operation, while the driving voltage and the operating frequency are reduced in a functional block which may be operated at a low speed to reduce power consumption. . Furthermore, even in an LSI that performs complex operations, the power supply voltage and the operating frequency (clock frequency) are dynamically controlled in accordance with the operation mode to reduce power consumption.
[0004]
In designing a power supply voltage variable LSI as described above, a conventional design method uses HDL (hardware description language) or a general-purpose C language to describe a circuit with cycle accuracy, and executes a power supply control circuit, The clock frequency control circuit is embodied and its function is confirmed through function simulation. Basically, starting from the fastest operation design that can achieve the required performance, the frequency of each functional block is lowered and the operation of verifying whether or not it operates correctly even in that case is repeatedly performed for possible variations And search for the optimal design solution.
[0005]
[Patent Document 1]
JP-A-5-27055
[Problems to be solved by the invention]
In a power supply voltage variable LSI with power supply voltage control of a functional block, it is necessary to perform detailed functional logic design in order to design and verify logic for controlling a clock frequency. In a specific operation mode, it is necessary to identify a functional block capable of lowering the power supply voltage and lowering the operation frequency. Alternatively, it is necessary to determine the minimum operating frequency at which the required operation and the required performance can be realized in the functional block.
[0007]
However, in the conventional design method, it is necessary to design different power supply voltage and clock frequency control logics for combinations of dozens or more functional blocks, and repeat function verification and performance analysis by simulation each time. That is, in order to search for a plurality of variations, it is necessary to repeat design changes and to perform verification, and there has been a problem that a large number of steps are required to obtain an optimal design result.
[0008]
For data transfer between functional blocks whose operating frequency has been changed, it is necessary to absorb the speed difference between the functional blocks. Therefore, a buffer is inserted so as to operate correctly even when the operating frequency is lowered. However, in order to perform the optimal design in consideration of this, there has been a problem that much more design verification steps are required, such as searching for a plurality of variations for adjusting the buffer size, and verifying whether or not the buffer overflows.
[0009]
The present invention has been made in view of the above problems, and in a cycle-accurate operation simulation or functional logic simulation, a plurality of design variations are searched for while easily changing the configuration with respect to clock frequency control or buffer insertion of each functional block in LSI design. It is an object of the present invention to provide an LSI design verification device and an LSI design verification method which can perform the above.
[0010]
[Means for Solving the Problems]
In order to solve the above problems, the present invention takes the following measures. That is, an LSI design verification apparatus according to the present invention performs function logic verification by using LSI design data as input, and includes frequency control means for designating an operating frequency for each functional block constituting an LSI to be verified. A clock frequency changing unit that changes an operation clock of each of the functional blocks according to an operation frequency specified by the frequency control unit; and a function simulation unit that performs a function simulation on the LSI after the operation clock is changed. It is provided with a configuration.
[0011]
The operation of this configuration is as follows. The frequency control means designates an operating frequency corresponding to each state for all the functional blocks, and the clock frequency changing means changes the operating clock of each functional block based on the designated operating frequency. The function simulation means performs a function simulation on an LSI composed of a group of function blocks after the operation clock is changed. Then, the above processing is repeated so as to obtain the optimal solution. According to this, an operation clock suitable for each functional block is specified. However, the specification can be easily performed, and a functional simulation of the entire LSI is performed and the verification is performed. Can be performed efficiently with a short turnaround time.
[0012]
In a preferred embodiment described above, the frequency control means is configured to dynamically designate the operation frequency of each functional block according to the operation state of the LSI. According to this, in an LSI that performs a composite operation, it is possible to dynamically control an operation clock in accordance with an operation mode, and to effectively reduce power consumption.
[0013]
Further, in a preferred embodiment, the frequency control means is configured such that the operating frequency control is entered by a state transition diagram. According to this, since the operating frequency control is entered based on the state transition diagram, the frequency control can be changed more easily.
[0014]
In a preferred aspect of the present invention, the clock frequency changing means is configured to perform a clock tree analysis of a corresponding functional block to extract a clock signal. According to this, at the time of changing the clock frequency, the clock tree is extracted by performing the clock tree analysis of the functional block, so that the trouble of specifying the clock signal can be omitted and the trouble due to the omission of the specification can be avoided.
[0015]
Further, in a preferred embodiment described above, the LSI design verification apparatus is configured to further include a buffer insertion unit. The buffer inserting means inserts a data buffer into a data transfer path between functional blocks constituting an LSI to be verified. According to this, when changing the operating frequency between each functional block, the buffer inserting means inserts a data buffer such as a FIFO into a data transfer path between the functional blocks. As a result, the data input / output speed is changed between the functional blocks by changing the operating frequency of the functional block. Whether or not the speed difference can be absorbed by inserting a data buffer for the change in the input / output speed is determined. Can be easily verified.
[0016]
In a preferred embodiment of the present invention, the buffer inserting means inserts a buffer having a capacity corresponding to an operating frequency ratio between the corresponding functional blocks. According to this, it is possible to favorably absorb the difference in the data input / output speed between the functional blocks.
[0017]
In a preferred embodiment described above, the buffer insertion means has a function of outputting buffer state information at the time of functional simulation. According to this, by outputting buffer status information (particularly information such as buffer overflow) as a data buffer verification model, it is possible to further improve the efficiency of function verification.
[0018]
In a preferred embodiment, the buffer status information output function is configured to output warning information when a buffer overflow is detected. Further, the buffer status information output function is configured to calculate a buffer usage rate and output buffer usage rate information. At this time, since information on the use status of the buffer, particularly information on buffer overflow, etc., is output to the data buffer verification model, function verification and circuit operation analysis can be performed more efficiently.
[0019]
Further, a preferable mode in the above is to further include an LSI function changing means. The LSI function changing means generates a frequency control circuit based on the frequency control specification designated by the frequency control means, and changes LSI design data. According to this, the design verification of the LSI in a short turnaround time can be performed more efficiently.
[0020]
The present invention also relates to an LSI design verification method, and adopts the following solution. That is, an LSI design verification method for performing functional logic verification using LSI design data as input, comprising: a frequency control step of designating an operating frequency for each functional block configuring an LSI to be verified; The method includes a clock frequency change step of changing an operation clock of each of the functional blocks according to a designated operation frequency, and a function simulation step of executing a function simulation on the LSI after the change of the operation clock.
[0021]
The operation of this configuration is as follows. In the frequency control step, an operating frequency according to each state is specified for all the functional blocks, and in the clock frequency changing step, the operating clock of each functional block is changed based on the specified operating clock. In the function simulation step, a function simulation is performed on an LSI composed of a group of function blocks after the operation clock is changed. Then, the above processing is repeated so as to obtain the optimal solution. According to this, an operation clock suitable for each functional block is specified. However, the specification can be easily performed, and a functional simulation of the entire LSI is performed and the verification is performed. Can be performed efficiently with a short turnaround time.
[0022]
In the above-mentioned LSI design verification method, preferably, the frequency control step is to enter the operating frequency control by a state transition diagram. According to this, since the operating frequency control is entered based on the state transition diagram, the frequency control can be changed more easily.
[0023]
In the above-described LSI design verification method, preferably, the clock frequency changing step is to extract a clock signal by performing a clock tree analysis of a corresponding functional block. According to this, at the time of changing the clock frequency, the clock tree is extracted by performing the clock tree analysis of the functional block, so that the trouble of specifying the clock signal can be omitted and the trouble due to the omission of the specification can be avoided.
[0024]
In a preferred embodiment of the above-described LSI design verification method, the method further comprises a buffer insertion step of inserting a data buffer into a data transfer path between functional blocks constituting the LSI to be verified. According to this, when changing the operating frequency between the functional blocks, the buffer inserting step inserts a data buffer such as a FIFO into a data transfer path between the functional blocks. As a result, the data input / output speed is changed between the functional blocks by changing the operating frequency of the functional block. Whether or not the speed difference can be absorbed by inserting a data buffer for the change in the input / output speed is determined. Can be easily verified.
[0025]
In a preferred aspect of the present invention, the buffer insertion step has a function of outputting buffer state information at the time of functional simulation. According to this, by outputting buffer status information (particularly information such as buffer overflow) as a data buffer verification model, it is possible to further improve the efficiency of function verification.
[0026]
More preferably, the method further includes an LSI function changing step of generating a frequency control circuit based on the frequency control specification designated by the frequency control step and changing LSI design data. According to this, the design verification of the LSI in a short turnaround time can be performed more efficiently.
[0027]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of an LSI design verification method and apparatus according to the present invention will be described with reference to the drawings. It should be noted that the present invention is not limited to this embodiment at all, and can be implemented in various modes without departing from the gist.
[0028]
(Embodiment 1)
FIG. 1 is a block diagram illustrating a configuration of an LSI design verification device according to an embodiment of the present invention, and FIG. 2 is a flowchart illustrating a verification procedure using the LSI design verification device. This LSI design verification device comprises a frequency control means 1, a clock frequency change means 2, a buffer insertion means 3, and a function simulation means 4.
[0029]
First, in step S1, the frequency control means 1 designates an operating frequency suitable for a circuit state based on the frequency control specification 11 for each of the functional blocks constituting the LSI, and the corresponding frequency control Generate a circuit. As shown in FIG. 6, the frequency control means 1 includes a state transition input means 101 and a frequency control logic generation means 102, and is configured to enter an operation frequency control according to a state transition diagram. The state transition input unit 101 inputs a state transition diagram in the frequency control specification 11, and the frequency control logic generation unit 102 generates control information based on the input state transition diagram, and further generates frequency control circuit data 103.
[0030]
FIG. 7 shows the configuration of the frequency control circuit 103a generated by the frequency control means 1 together with its input / output signals. Frequency control circuit 103a of FIG. 7, differ in the input line, a frequency that is generated in response to these input sources clock input line of the signal CK 0, the plurality of control signals C i (i = 1,2 ...) It has an output line for a plurality of types of clock signals CK i (i = 1, 2,...) And an output line for a select signal SE i (i = 1, 2,...) Paired with each clock signal CK i . Each select signal SE i is a control signal for controlling selection of a pair of clock signals CK i .
[0031]
Next, in step S2, the clock frequency changing means 2 inputs and integrates the LSI design data 12 and the frequency control circuit data 103 generated in step S1, and connects input / output signals of the frequency control circuit 103a.
[0032]
FIG. 3 shows a detailed procedure of step S2. FIG. 4 shows a detailed procedure of step S201 in FIG.
[0033]
First, in step S201 in FIG. 3, the clock frequency changing unit 2 extracts the clock signal CK i (i = 1, 2,...) Of each functional block of the LSI. The detailed procedure of step S201 will be described with reference to FIG.
[0034]
First, in step S201a, a netlist of a corresponding functional block is generated by logic synthesis. Next, in step S201b, a flip-flop (FF) is searched from the netlist and listed up. Next, in step S201c, the clock signal is traced to the upper hierarchy for each of the flip-flops on this list. Next, in step S201d, the source clock signal of the functional block is determined. Then, in step S201e, it is determined whether there are a plurality of source clock signals, and if there are a plurality of source clock signals, error processing is performed. The input of a plurality of clock signals CK i (i = 1, 2) can be handled by designating a corresponding control method in the frequency control means 1 in step S1.
[0035]
Subsequently, the process proceeds to step S202 in FIG. 3, and the selector 201 i (i = 1, 2,...) Is selected for each functional block IP i (i = 1, 2,...) Based on the result extracted in the previous step S201. ). That is, as shown in FIG. 8, insert a selector 201 i between the source clock signal CK 0 and the functional block IP i.
[0036]
Next, in step S203, for each selector 201 i inserted in front of the step S202, to connect the clock signal CK i and the select signal SE i from the frequency control circuit 103a. In this case, the clock signal CK i and the select signal SE i satisfying the specified change frequency and the control condition are selected according to the correspondence between the function block IP i and the change frequency specified by the frequency control means 1.
[0037]
Referring to FIG. 9, a selector 201 i (i = 1, 2,...) Is inserted into each functional block IP i (i = 1, 2,...), And a source is assigned to each selector 201 i . connecting the clock signal CK i and the select signal SE i from the clock signal CK 0 and the frequency control circuit 103a.
[0038]
Further, in step S204, a control signal C i (i = 1, 2,...) Necessary for the frequency control circuit 103a is extracted from the LSI data and connected.
[0039]
Next, proceeding from step S204 in FIG. 3 to step S3 in FIG. 2, the buffer inserting unit 3 changes its operating frequency in the frequency control LSI 13 (see FIG. 1) obtained by the clock frequency changing unit 2 described above. A buffer is inserted for the input signal of the function block thus created, and an LSI 14 with a buffer is created. FIG. 5 shows the detailed procedure of step S3.
[0040]
First, in step S301, functional blocks for changing a clock signal are listed. Next, in step S302, the data input signals of the listed functional blocks are listed (the bus is one signal). Next, in step S303, the clock signal is excluded from the listed input signals. Further, in step S304, a buffer (FIFO) having a bit width corresponding to the bit width is inserted into the remaining input signals. Thus, the LSI 14 with a buffer is created.
[0041]
FIG. 9 shows a circuit configuration of the frequency control circuit 103a and the selector 201 i (i = 1, 2,...) Inserted into the functional block IP i (i = 1, 2,...). Buffer 301 is inserted into the input signal to the functional block IP j a clock is controlled.
[0042]
FIG. 10 shows the configuration of the buffer to be inserted. The inserted buffer 301 includes a FIFO 401 and a selector 402. According select signal SE j to the frequency control circuit 103a outputs, changes the operating frequency of the corresponding functional block IP j, only when the clock signal CK j, buffer function acts with FIFO401.
[0043]
Proceeding from step S304 in FIG. 5 to step S4 in FIG. 2, the function simulation means 4 simulates the operation of the LSI 14 with buffer created in step S3 based on a designated simulation pattern (test pattern) 15. Next, in step S5, the result of the simulation is compared with an expected value, and it is confirmed whether or not the operation result before the change of the operation frequency and the operation result obtained by performing the operation frequency control match. If the operations do not match, the process returns to step S1 to change the operating frequency control. If they match, the process proceeds to step S6, where it is determined whether or not there is an instruction as to whether or not to tune the operating frequency control in order to further reduce the power consumption. change. As a result, a simulation result 16 can be obtained.
[0044]
This concludes the description of the operation procedure of the LSI design verification device. Next, a specific example will be described with reference to FIGS.
[0045]
The circuit of FIG. 11 includes three functional blocks IP i (i = 1, 2, 3) for inputting a 50 MHz source clock signal CK 0 . FIG. 12 shows a state transition diagram designated by the frequency control means 1 for this circuit. In Figure 12, using the internal signal A functional block IP 1 of FIG. 11, the B, performs control of changing the operating frequency of the functional block IP 2, IP 3 in 3 states.
[0046]
FIG. 13 shows a simulation circuit configuration for controlling the state transition diagram of FIG. First, the frequency control circuit 103b is incorporated, the frequency control circuit 103b is internal signal A functional block IP 1, B is inputted. A clock signal CK 1 (25 MHz) for changing the operating frequency of the functional block IP 2 and its select signal SE 1 are output, and a clock signal CK 2 (10 MHz) for changing the operating frequency of the functional block IP 3 and its clock signal CK 1 (25 MHz) are output. select signal SE 2 is output. The functional block IP 2 is corresponding to the case of using a 25MHz clock CK 1, the buffer 301a is inserted into the input from the functional block IP 1. Also in response to when the functional block IP 3 using a 10MHz clock CK 2, each buffer 301b, 301c is inserted to the input from the functional block IP 1 and the functional block IP 2. A two-stage FIFO is used for the buffer 301a according to the operating frequency ratio (50:25), and a five-stage buffer is used for the buffers 301b and 301c in accordance with the operating frequency ratio (50:10). Use Each buffer receives a corresponding select signal SE i (i = 1, 2, 3).
[0047]
(Embodiment 2)
The second embodiment of the present invention has a configuration for monitoring the use status of the buffer inserted by the buffer inserting means 3 in addition to the configuration of the first embodiment.
[0048]
FIG. 14 is a block diagram showing the configuration of the buffer 301 'to be inserted. This buffer 301 ′ is obtained by adding a buffer monitoring unit 403 to the configuration of the buffer 301 of FIG. 10 in the first embodiment. Buffer monitoring unit 403 receives similarly select signal SE i, select signal SE i monitors the usage of only FIFO401 if active, and outputs the information of FIFO401. That is, the buffer monitoring unit 403 is activated by the select signal SE i, for each fixed cycle, such as clock cycles to monitor the availability of FIFO401, and outputs it as a buffer utilization information 404. Then, when writing occurs while the FIFO 401 has no free space, the buffer overflow information 405 is output. Note that the ratio of empty space to the capacity of the FIFO 401 may be used as the buffer usage ratio. Further, the average of the usage rates in a certain period may be output as the buffer usage rate.
[0049]
【The invention's effect】
As described above, according to the LSI design verification device / method of the present invention, it is possible to easily execute the simulation after changing the operating frequency for each functional block, and to try the design change in a short turnaround time. As a result, optimal frequency control can be efficiently determined, and an LSI with reduced power consumption can be designed more effectively.
[0050]
In addition, when a data input / output speed changes due to a change in the operating frequency of a functional block, a data buffer is inserted in the data transfer path between the functional blocks, making it possible to verify the possibility of absorbing the speed difference very easily. Can be.
[0051]
Further, if the buffer state information (particularly buffer overflow information) is output to the data buffer verification model, the function verification and the circuit operation analysis can be made more efficient.
[0052]
The present invention, when applied to an LSI for a mobile phone, for which low power consumption is strongly required, exerts its effects sufficiently.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a configuration of an LSI design verification device according to a first embodiment of the present invention; FIG. 2 is a flowchart illustrating a verification procedure using the LSI design verification device according to the first embodiment; 4 is a flowchart showing a detailed procedure of clock frequency change (step S2) in FIG. 4 FIG. 4 is a flowchart showing a detailed procedure of clock extraction (step S201) in the first embodiment [FIG. 5] Inserting a buffer in the first embodiment (step S3) FIG. 6 is a block diagram showing the configuration of the frequency control means in the first embodiment. FIG. 7 is a block diagram showing the configuration of the frequency control circuit generated in the first embodiment together with its input / output signals. FIG. 8 is a block diagram showing a configuration of a selector insertion example (clock signal switching circuit) according to the first embodiment. FIG. 9 is a block diagram showing a configuration of a simulation circuit according to the first embodiment. FIG. 10 is a block diagram showing a configuration of a buffer inserted in the first embodiment. FIG. 11 is a circuit example specifically described. FIG. 12 is a state transition diagram of frequency control in the case of a specific example circuit. FIG. 13 is a block diagram showing a configuration of a simulation circuit for the specific example circuit. FIG. 14 is an embodiment of the present invention. FIG. 13 is a block diagram showing a configuration of a buffer to which a buffer monitoring unit is added according to the second embodiment.
DESCRIPTION OF SYMBOLS 1 ... Frequency control means 2 ... Clock frequency change means 3 ... Buffer insertion means 4 ... Function simulation means 11 ... Frequency control specification 12 ... LSI design data 13 ... Frequency control circuit 14 ... LSI with buffer
15 simulation pattern 16 simulation result 101 state transition input means 102 frequency control logic generation means 103 frequency control circuit data 103a frequency control circuit 201 i selector 301 buffer 401 FIFO
402 selector 403 buffer monitoring means 404 buffer usage information 405 buffer overflow information IP i functional block CK 0 source clock signal CK i clock signal SE i select signal C i control signal