(57)【要約】【課題】ＬＳＩ回路の機能ブロック毎に電源電圧および動作周波数を制御する回路を設計する際に、設計した動作周波数に対して、その動作の正しさを効率良く検証し、また、消費電力を効果的に削減できる制御方法を効率良く探索・決定する方法がなかった。【解決手段】被検証対象のＬＳＩを構成する各機能ブロック毎の動作周波数を指定する周波数制御手段１と、周波数制御手段１によって指定された動作周波数に応じて各機能ブロックの動作クロックを変更するクロック周波数変更手段２と、動作クロック変更後のＬＳＩに対して機能シミュレーションを実行する機能シミュレーション手段４を用いて、動作周波数を変更した各機能ブロックのシミュレーションを簡易に実行し、設計変更を短ターンアラウンドタイムで試行できるように構成したＬＳＩ設計検証装置。【選択図】　図１
2004133525.tif 000002
【特許請求の範囲】
【請求項１】
ＬＳＩの設計データを入力として機能論理検証を行うＬＳＩ設計検証装置であって、被検証対象のＬＳＩを構成する各機能ブロック毎に動作周波数を指定する周波数制御手段と、前記周波数制御手段によって指定された動作周波数に応じて前記各機能ブロックの動作クロックを変更するクロック周波数変更手段と、前記動作クロック変更後のＬＳＩに対して機能シミュレーションを実行する機能シミュレーション手段とを備えることを特徴とするＬＳＩ設計検証装置。
【請求項２】
前記周波数制御手段は、ＬＳＩの動作状態に応じて動的に各機能ブロックの動作周波数を指定することを特徴とする請求項１に記載のＬＳＩ設計検証装置。
【請求項３】
前記周波数制御手段は、動作周波数制御を状態遷移図によりエントリすることを特徴とする請求項２に記載のＬＳＩ設計検証装置。
【請求項４】
前記クロック周波数変更手段は、該当する機能ブロックのクロックツリー解析を行ってクロック信号を抽出することを特徴とする請求項１から請求項３までのいずれかに記載のＬＳＩ設計検証装置。
【請求項５】
さらに、被検証対象のＬＳＩを構成する各機能ブロック間のデータ転送路にデータバッファを挿入するバッファ挿入手段を備えることを特徴とする請求項１から請求項４までのいずれかに記載のＬＳＩ設計検証装置。
【請求項６】
前記バッファ挿入手段は、ＦＩＦＯを挿入することを特徴とする請求項５に記載のＬＳＩ設計検証装置。
【請求項７】
前記バッファ挿入手段は、該当する機能ブロック間の動作周波数比に応じた容量を持つバッファを挿入することを特徴とする請求項５または請求項６に記載のＬＳＩ設計検証装置。
【請求項８】
前記バッファ挿入手段は、機能シミュレーション時にバッファの状態情報を出力する機能を備えることを特徴とする請求項５から請求項７までのいずれかに記載のＬＳＩ設計検証装置。
【請求項９】
前記バッファの状態情報出力機能は、バッファ溢れを検出し、警告情報を出力することを特徴とする請求項８記載のＬＳＩ設計検証装置。
【請求項１０】
前記バッファの状態情報出力機能は、バッファ使用率を算出し、バッファ使用率情報を出力することを特徴とする請求項８または請求項９に記載のＬＳＩ設計検証装置。
【請求項１１】
さらに、前記周波数制御手段によって指定された周波数制御仕様に基づき周波数制御回路を生成し、ＬＳＩ設計データを変更するＬＳＩ機能変更手段を備えることを特徴とする請求項１から請求項１０までのいずれかに記載のＬＳＩ設計検証装置。
【請求項１２】
ＬＳＩの設計データを入力として機能論理検証を行うＬＳＩ設計検証方法であって、被検証対象のＬＳＩを構成する各機能ブロック毎に動作周波数を指定する周波数制御ステップと、前記周波数制御ステップによって指定された動作周波数に応じて前記各機能ブロックの動作クロックを変更するクロック周波数変更ステップと、前記動作クロック変更後のＬＳＩに対して機能シミュレーションを実行する機能シミュレーションステップとを含むことを特徴とするＬＳＩ設計検証方法。
【請求項１３】
前記周波数制御ステップが、動作周波数制御を状態遷移図によりエントリすることを特徴とする請求項１２に記載のＬＳＩ設計検証方法。
【請求項１４】
前記クロック周波数変更ステップが、該当する機能ブロックのクロックツリー解析を行ってクロック信号を抽出することを特徴とする請求項１２または請求項１３に記載のＬＳＩ設計検証方法。
【請求項１５】
さらに、被検証対象のＬＳＩを構成する各機能ブロック間のデータ転送路にデータバッファを挿入するバッファ挿入ステップを備えることを特徴とする請求項１２から請求項１４までのいずれかに記載のＬＳＩ設計検証方法。
【請求項１６】
前記バッファ挿入ステップが、機能シミュレーション時にバッファの状態情報を出力する機能をもつことを特徴とする請求項１５に記載のＬＳＩ設計検証方法。
【請求項１７】
さらに、周波数制御ステップによって指定された周波数制御仕様に基づき周波数制御回路を生成し、ＬＳＩ設計データを変更するＬＳＩ機能変更ステップを備えることを特徴とする請求項１２から請求項１６までのいずれかに記載のＬＳＩ設計検証方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＬＳＩ設計データの機能論理検証を行うためのＬＳＩ設計検証装置およびＬＳＩ設計検証方法にかかわり、特には、動的に動作周波数を変更制御するための技術に関する。
【０００２】
【従来の技術】
ＬＳＩの微細化、集積技術の進展により、１チップＬＳＩを用いて大規模なデジタルシステムを実現することが可能になっている。こうしたシステムの開発では、短期にシステム仕様・動作設計から、機能、論理、レイアウトまでを、段階的に検証しながらトップダウンに設計し、早期に製品化を図ることが必要となっている。特にＬＳＩ化を前提としたシステムレベルの仕様・動作、実現アーキテクチャの基本設計においては、チップ製造後のアーキテクチャ変更が多大のコストを伴うことから、詳細設計に進む前段階より、システムＬＳＩの処理性能、そのボトルネック部分等を解析することが求められる。
【０００３】
移動体電話向けＬＳＩ等、低消費電力化を必要とするＬＳＩでは、ＬＳＩを構成する機能ブロック単位で電源電圧を可変化して、低消費電力化とともに必要な性能・動作速度を実現する電源電圧可変ＬＳＩが主流になると考えられている。このようなＬＳＩにおいては、高速動作が必要な機能ブロックでは、駆動電圧を上げ、動作周波数すなわちクロック周波数を上げる一方、低速でもよい機能ブロックでは駆動電圧および動作周波数を下げ、低消費電力化を行う。さらに、複合した動作を行うＬＳＩにおいても、その動作モードに応じて、動的に電源電圧および動作周波数（クロック周波数）を制御して、低消費電力化を図る。
【０００４】
上記のような電源電圧可変ＬＳＩの設計において機能設計を行う際、従来の設計手法では、ＨＤＬ（ハードウエア記述言語）もしくは汎用のＣ言語を用いてサイクル精度の回路記述を行い、電源制御回路、クロック周波数制御回路を具体化し、機能シミュレーションを通じて機能確認を行っている。基本的には、要求性能を実現可能な最速動作設計を起点にして、各機能ブロックの周波数を下げ、その場合にも正しく動作するか否かを検証するという作業を、可能なバリエーションに関して繰り返し実施し、最適設計解を探索している。
【０００５】
【特許文献１】
特開平５−２７０５５号公報
【０００６】
【発明が解決しようとする課題】
機能ブロックの電源電圧制御を伴う電源電圧可変ＬＳＩにおいては、クロック周波数を制御する論理を設計、検証するために詳細機能論理設計を行う必要がある。特定の動作モードにおいて、電源電圧を下げ、動作周波数を下げることが可能な機能ブロックを見極める必要がある。あるいは、その機能ブロックにおいて、要求動作、要求性能を実現可能な最低動作周波数を見極める必要がある。
【０００７】
しかしながら、従来の設計手法では、数十以上ある機能ブロックの組み合わせに対して、異なる電源電圧およびクロック周波数制御論理を設計し、都度、シミュレーションでの機能検証、性能解析を繰り返す必要があった。すなわち、複数のバリエーションを探索するため、設計変更を繰り返し、かつ、検証を実施する必要があり、最適な設計結果を得るためには多大な工数を要するという課題があった。
【０００８】
また、動作周波数を変更した機能ブロック間のデータ転送については、機能ブロック間の速度差を吸収する必要がある。そこで、バッファを挿入することにより、動作周波数を下げた場合も正しく動作させるようにする。しかし、これを考慮した最適設計を行うには、バッファサイズ調整のための複数バリエーションの探索、あるいはそのバッファ溢れの有無の検証等、さらに多大の設計検証工数を要するという課題があった。
【０００９】
本発明は上記問題点に鑑み、サイクル精度の動作シミュレーションあるいは機能論理シミュレーションにおいて、ＬＳＩ設計上の各機能ブロックのクロック周波数制御あるいはバッファ挿入に関して、構成変更を容易に行いながら、複数の設計バリエーションを探索することができるＬＳＩ設計検証装置およびＬＳＩ設計検証方法を提供することを目的とする。
【００１０】
【課題を解決するための手段】
上記の課題を解決するために、本発明は次のような手段を講じる。すなわち、本発明によるＬＳＩ設計検証装置は、ＬＳＩの設計データを入力として機能論理検証を行うものであって、被検証対象のＬＳＩを構成する各機能ブロック毎に動作周波数を指定する周波数制御手段と、前記周波数制御手段によって指定された動作周波数に応じて前記各機能ブロックの動作クロックを変更するクロック周波数変更手段と、前記動作クロック変更後のＬＳＩに対して機能シミュレーションを実行する機能シミュレーション手段とを備えた構成とされている。
【００１１】
この構成による作用は次のとおりである。周波数制御手段は、すべての機能ブロックに対してそれぞれの状態に応じた動作周波数を指定し、クロック周波数変更手段は、その指定の動作周波数に基づいて、各機能ブロックの動作クロックを変更する。機能シミュレーション手段は、動作クロック変更後の機能ブロック群からなるＬＳＩに対して機能シミュレーションを実行する。そして、最適解が得られるように上記処理を繰り返す。これによれば、機能ブロックごとに適した動作クロックを指定するが、その指定は簡易に行うことができ、その上でＬＳＩ全体の機能シミュレーションを行って検証するので、全体として、ＬＳＩの設計検証をターンアラウンドタイムの短い状態で効率良く行うことができる。
【００１２】
上記において好ましい態様は、前記の周波数制御手段について、ＬＳＩの動作状態に応じて動的に各機能ブロックの動作周波数を指定するように周波数制御手段が構成されていることである。これによれば、複合動作を行うＬＳＩにおいて、動作モードに応じて動的に動作クロックを制御し、有効な低消費電力化を図ることができる。
【００１３】
また、上記において好ましい態様は、前記の周波数制御手段について、動作周波数制御を状態遷移図によりエントリするように周波数制御手段が構成されていることである。これによれば、状態遷移図に基づいて動作周波数制御をエントリするので、周波数制御の変更をより簡易に行うことができる。
【００１４】
また、上記において好ましい態様は、前記のクロック周波数変更手段について、該当する機能ブロックのクロックツリー解析を行ってクロック信号を抽出するように構成されていることである。これによれば、クロック周波数変更の際、機能ブロックのクロックツリー解析を行ってクロック信号を抽出することにより、クロック信号の指定の手間を省き、かつ指定漏れによる不具合を回避することができる。
【００１５】
さらに、上記において好ましい態様は、バッファ挿入手段をさらに備える状態にＬＳＩ設計検証装置を構成することである。そのバッファ挿入手段は、被検証対象のＬＳＩを構成する各機能ブロック間のデータ転送路にデータバッファを挿入するものである。これによれば、各機能ブロック間の動作周波数を変更する際に、バッファ挿入手段は、機能ブロック間のデータ転送路にＦＩＦＯ等のデータバッファを挿入する。これにより、機能ブロックの動作周波数変更により、機能ブロック相互間にデータ入出力速度も変更されるが、この入出力速度の変更に対して、データバッファ挿入による速度差吸収が可能であるか否かを簡易に検証することができる。
【００１６】
上記において好ましい態様は、前記のバッファ挿入手段が、該当する機能ブロック間の動作周波数比に応じた容量を持つバッファを挿入することである。これによれば、機能ブロック相互間のデータ入出力速度の差を良好に吸収することができる。
【００１７】
上記において好ましい態様は、前記のバッファ挿入手段が、機能シミュレーション時にバッファの状態情報を出力する機能を備えていることである。これによれば、データバッファの検証モデルとして、バッファの状態情報（特にバッファ溢れなどの情報）を出力することによって、機能検証のさらなる効率化を図ることができる。
【００１８】
上記において好ましい態様は、前記のバッファの状態情報出力機能が、バッファ溢れを検出したときに警告情報を出力するように構成されていることである。さらに、前記バッファの状態情報出力機能が、バッファ使用率を算出し、バッファ使用率情報を出力するように構成されていることである。この際、データバッファの検証モデルにバッファの使用状況の情報、特にバッファ溢れなどの情報を出力するので、機能検証および回路動作解析をより効率良く行うことができる。
【００１９】
さらに、上記において好ましい態様は、さらに、ＬＳＩ機能変更手段を備えることである。そのＬＳＩ機能変更手段は、前記周波数制御手段によって指定された周波数制御仕様に基づき周波数制御回路を生成し、ＬＳＩ設計データを変更するものである。これによれば、短ターンアラウンドタイムでのＬＳＩの設計検証をさらに効率良く行うことができる。
【００２０】
本発明はまたＬＳＩ設計検証方法に関するものであり、次のような解決手段をとる。すなわち、ＬＳＩの設計データを入力として機能論理検証を行うＬＳＩ設計検証方法であって、被検証対象のＬＳＩを構成する各機能ブロック毎に動作周波数を指定する周波数制御ステップと、前記周波数制御ステップによって指定された動作周波数に応じて前記各機能ブロックの動作クロックを変更するクロック周波数変更ステップと、前記動作クロック変更後のＬＳＩに対して機能シミュレーションを実行する機能シミュレーションステップとを含むものである。
【００２１】
この構成による作用は次のとおりである。周波数制御ステップにおいて、すべての機能ブロックに対してそれぞれの状態に応じた動作周波数を指定し、クロック周波数変更ステップにおいて、その指定の動作クロックに基づいて、各機能ブロックの動作クロックを変更する。機能シミュレーションステップにおいて、動作クロック変更後の機能ブロック群からなるＬＳＩに対して機能シミュレーションを行う。そして、最適解が得られるように上記処理を繰り返す。これによれば、機能ブロックごとに適した動作クロックを指定するが、その指定は簡易に行うことができ、その上でＬＳＩ全体の機能シミュレーションを行って検証するので、全体として、ＬＳＩの設計検証をターンアラウンドタイムの短い状態で効率良く行うことができる。
【００２２】
上記のＬＳＩ設計検証方法において好ましくは、前記周波数制御ステップが、動作周波数制御を状態遷移図によりエントリすることである。これによれば、動作周波数制御を状態遷移図に基づいて動作周波数制御をエントリするので、周波数制御の変更をより簡易に行うことができる。
【００２３】
また、上記のＬＳＩ設計検証方法において好ましくは、前記のクロック周波数変更ステップが、該当する機能ブロックのクロックツリー解析を行ってクロック信号を抽出することである。これによれば、クロック周波数変更の際、機能ブロックのクロックツリー解析を行ってクロック信号を抽出することにより、クロック信号の指定の手間を省き、かつ指定漏れによる不具合を回避することができる。
【００２４】
また、上記のＬＳＩ設計検証方法において好ましい態様は、被検証対象のＬＳＩを構成する各機能ブロック間のデータ転送路にデータバッファを挿入するバッファ挿入ステップを備えることである。これによれば、各機能ブロック間の動作周波数を変更する際に、バッファ挿入ステップは、機能ブロック間のデータ転送路にＦＩＦＯ等のデータバッファを挿入する。これにより、機能ブロックの動作周波数変更により、機能ブロック相互間にデータ入出力速度も変更されるが、この入出力速度の変更に対して、データバッファ挿入による速度差吸収が可能であるか否かを簡易に検証することができる。
【００２５】
また、上記において好ましい態様は、前記バッファ挿入ステップが、機能シミュレーション時にバッファの状態情報を出力する機能をもつことである。これによれば、データバッファの検証モデルとして、バッファの状態情報（特にバッファ溢れなどの情報）を出力することによって、機能検証のさらなる効率化を図ることができる。
【００２６】
さらに、好ましくは、周波数制御ステップによって指定された周波数制御仕様に基づき周波数制御回路を生成し、ＬＳＩ設計データを変更するＬＳＩ機能変更ステップを備えることである。これによれば、短ターンアラウンドタイムでのＬＳＩの設計検証をさらに効率良く行うことができる。
【００２７】
【発明の実施の形態】
以下、本発明にかかわるＬＳＩ設計検証方法・装置の実施の形態について図面を用いて説明する。なお、本発明はこの実施の形態に何等限定されるものではなく、要旨を逸脱しない範囲においては種々なる態様で実施し得る。
【００２８】
（実施の形態１）
図１は本発明の実施の形態におけるＬＳＩ設計検証装置の構成を示すブロック図、図２はこのＬＳＩ設計検証装置を用いた検証手順を示すフローチャートである。このＬＳＩ設計検証装置は、周波数制御手段１、クロック周波数変更手段２、バッファ挿入手段３および機能シミュレーション手段４から構成されている。
【００２９】
まず、ステップＳ１において、周波数制御手段１は、ＬＳＩを構成する各機能ブロックのそれぞれに対して、周波数制御仕様１１に基づいて回路の状態に適した動作周波数を指定し、これに対応する周波数制御回路を生成する。周波数制御手段１は、図６に示すように、状態遷移入力手段１０１と、周波数制御論理生成手段１０２から構成され、状態遷移図により動作周波数制御をエントリするように構成されている。状態遷移入力手段１０１は周波数制御仕様１１における状態遷移図を入力し、周波数制御論理生成手段１０２は入力した状態遷移図に基づいて制御情報を生成し、さらに周波数制御回路データ１０３を生成する。
【００３０】
図７は周波数制御手段１によって生成された周波数制御回路１０３ａの構成をその入出力信号とともに示す。図７の周波数制御回路１０３ａは、源クロック信号ＣＫ０の入力ライン、複数の制御信号Ｃｉ（ｉ＝１，２…）の入力ライン、これらの入力に応じて生成される周波数を異にする複数種類のクロック信号ＣＫｉ（ｉ＝１，２…）の出力ライン、および各々のクロック信号ＣＫｉと対をなすセレクト信号ＳＥｉ（ｉ＝１，２…）の出力ラインをもつ。各セレクト信号ＳＥｉは、対をなすクロック信号ＣＫｉの選択を制御する制御信号である。
【００３１】
次に、ステップＳ２において、クロック周波数変更手段２は、ＬＳＩ設計データ１２およびステップＳ１で生成した周波数制御回路データ１０３を入力して統合し、周波数制御回路１０３ａの入出力信号を接続する。
【００３２】
図３はステップＳ２の詳細手順を示す。図４は図３におけるステップＳ２０１の詳細手順を示す。
【００３３】
まず、図３のステップＳ２０１において、クロック周波数変更手段２は、ＬＳＩの各機能ブロックのクロック信号ＣＫｉ（ｉ＝１，２…）を抽出する。ステップＳ２０１の詳細手順を図４に基づいて説明する。
【００３４】
まず、ステップＳ２０１ａにおいて、論理合成によって、対応する機能ブロックのネットリストを生成する。次に、ステップＳ２０１ｂにおいて、前記のネットリストからフリップフロップ（ＦＦ）を検索し、リストアップする。次いで、ステップＳ２０１ｃにおいて、このリスト上のフリップフロップの各々に関してクロック信号を上位階層へ追跡する。次に、ステップＳ２０１ｄにおいて、機能ブロックの源クロック信号を確定する。そして、ステップＳ２０１ｅにおいて、源クロック信号が複数あるか否かを判断し、複数ある場合にはエラー処理を行う。なお、複数のクロック信号ＣＫｉ（ｉ＝１，２）の入力に対しても、ステップＳ１の周波数制御手段１において対応した制御方法を指定することで対応できる。
【００３５】
続いて、図３のステップＳ２０２に進み、前段階のステップＳ２０１で抽出した結果に基づいて、各機能ブロックＩＰｉ（ｉ＝１，２…）に対してセレクタ２０１ｉ（ｉ＝１，２…）を挿入する。すなわち、図８に示すように、源クロック信号ＣＫ０と機能ブロックＩＰｉとの間にセレクタ２０１ｉを挿入する。
【００３６】
次に、ステップＳ２０３において、前段のステップＳ２０２で挿入した各セレクタ２０１ｉに対して、周波数制御回路１０３ａからのクロック信号ＣＫｉとセレクト信号ＳＥｉを接続する。この場合、周波数制御手段１で指定された機能ブロックＩＰｉと変更周波数との対応に従って、指定の変更周波数と制御条件を満たすクロック信号ＣＫｉとセレクト信号ＳＥｉを選択する。
【００３７】
図９を参照して説明すると、各機能ブロックＩＰｉ（ｉ＝１，２…）に対してそれぞれにセレクタ２０１ｉ（ｉ＝１，２…）を挿入し、各セレクタ２０１ｉに対して源クロック信号ＣＫ０と周波数制御回路１０３ａからのクロック信号ＣＫｉおよびセレクト信号ＳＥｉを接続する。
【００３８】
さらに、ステップＳ２０４において、周波数制御回路１０３ａに必要な制御信号Ｃｉ（ｉ＝１，２…）をＬＳＩデータから引き出し、接続する。
【００３９】
次に、図３のステップＳ２０４から図２のステップＳ３に進み、バッファ挿入手段３は、上記のクロック周波数変更手段２によって得られた周波数制御ＬＳＩ１３（図１参照）において、その動作周波数を変更された機能ブロックの入力信号に対してバッファを挿入し、バッファ付きＬＳＩ１４を作成する。図５はステップＳ３の詳細手順を示す。
【００４０】
まず、ステップＳ３０１において、クロック信号を変更する機能ブロックをリストアップする。次に、ステップＳ３０２において、そのリストアップした機能ブロックのデータ入力信号をリストアップする（バスは１信号とする）。次に、ステップＳ３０３において、リストアップした入力信号からクロック信号を除外する。さらに、ステップＳ３０４において、残りの入力信号に対してビット幅に応じたビット幅をもつバッファ（ＦＩＦＯ）を挿入する。これにより、バッファ付きＬＳＩ１４が作成される。
【００４１】
図９は周波数制御回路１０３ａと、機能ブロックＩＰｉ（ｉ＝１，２…）に対して挿入したセレクタ２０１ｉ（ｉ＝１，２…）の回路構成を示す。クロックが制御される機能ブロックＩＰｊに対する入力信号に対してバッファ３０１が挿入される。
【００４２】
図１０は挿入されるバッファの構成を示す。挿入されるバッファ３０１は、ＦＩＦＯ４０１とセレクタ４０２から構成されている。周波数制御回路１０３ａが出力するセレクト信号ＳＥｊに従って、対応する機能ブロックＩＰｊの動作周波数が変更され、クロック信号ＣＫｊとする場合にのみ、ＦＩＦＯ４０１を用いたバッファ機能が作用する。
【００４３】
図５のステップＳ３０４から図２のステップＳ４に進み、機能シミュレーション手段４は、ステップＳ３で作成したバッファ付きＬＳＩ１４の動作を指定のシミュレーションパターン（テストパターン）１５に基づいてシミュレーションする。次に、ステップＳ５において、シミュレーションの結果を期待値照合し、動作周波数変更前の動作結果と動作周波数制御を加えた動作結果が一致するか否かを確認する。動作が一致しなければ、ステップＳ１に戻り、動作周波数制御を変更する。一致する場合には、ステップＳ６に進んで、さらに消費電力を削減するために動作周波数制御をチューニングするか否かの指示の有無を判定し、チューニングする場合はステップＳ１に戻り、動作周波数制御を変更する。これによって、シミュレーション結果１６を得ることができる。
【００４４】
以上でＬＳＩ設計検証装置の動作手順の説明を終わる。次に、図１１〜図１３を用いて具体例について説明する。
【００４５】
図１１の回路は、５０ＭＨｚの源クロック信号ＣＫ０を入力する３つの機能ブロックＩＰｉ（ｉ＝１，２，３）で構成されている。この回路に対して周波数制御手段１が指定する状態遷移図を図１２に示す。図１２では、図１１の機能ブロックＩＰ１の内部信号Ａ，Ｂを用いて、３状態で機能ブロックＩＰ２，ＩＰ３の動作周波数の変更制御を行う。
【００４６】
図１３では、図１２の状態遷移図の制御を行う場合のシミュレーション回路構成を示す。まず、周波数制御回路１０３ｂが組み込まれ、周波数制御回路１０３ｂには機能ブロックＩＰ１の内部信号Ａ，Ｂが入力される。また、機能ブロックＩＰ２の動作周波数を変更するクロック信号ＣＫ１（２５ＭＨｚ）とそのセレクト信号ＳＥ１が出力されるとともに、機能ブロックＩＰ３の動作周波数を変更するクロック信号ＣＫ２（１０ＭＨｚ）とそのセレクト信号ＳＥ２が出力される。また、機能ブロックＩＰ２が２５ＭＨｚのクロックＣＫ１を使用する場合に対応して、機能ブロックＩＰ１からの入力にバッファ３０１ａが挿入される。同じく機能ブロックＩＰ３が１０ＭＨｚのクロックＣＫ２を使用する場合に対応して、機能ブロックＩＰ１および機能ブロックＩＰ２からの入力に各々にバッファ３０１ｂ，３０１ｃが挿入される。バッファ３０１ａに対しては、動作周波数比（５０：２５）に応じて２段のＦＩＦＯを使用し、バッファ３０１ｂ，３０１ｃに対しては動作周波数比（５０：１０）に対応して５段のバッファを使用する。また、各々のバッファには対応するセレクト信号ＳＥｉ（ｉ＝１，２，３）が入力される。
【００４７】
（実施の形態２）
本発明の実施の形態２は、実施の形態１に加えて、バッファ挿入手段３により挿入するバッファ使用状況を監視する構成を備えている。
【００４８】
図１４は挿入されるバッファ３０１′の構成を示すブロック図である。このバッファ３０１′は、実施の形態１の場合の図１０のバッファ３０１の構成に、さらにバッファ監視手段４０３を加えたものである。バッファ監視手段４０３は、セレクト信号ＳＥｉを同様に入力し、セレクト信号ＳＥｉがアクティブな場合にのみＦＩＦＯ４０１の使用状況を監視し、ＦＩＦＯ４０１の情報を出力する。すなわち、バッファ監視手段４０３は、セレクト信号ＳＥｉによってアクティブにされ、クロックサイクル単位等の一定サイクル毎にＦＩＦＯ４０１の空き状況を監視し、これをバッファ使用率情報４０４として出力する。そして、ＦＩＦＯ４０１に空きがない状態で書き込みが発生した場合には、バッファ溢れ情報４０５を出力する。なお、ＦＩＦＯ４０１の容量に対して空きの比率をバッファ使用率としても良い。また、一定期間の使用率の平均をバッファ使用率として出力しても良い。
【００４９】
【発明の効果】
以上のように、本発明のＬＳＩ設計検証装置／方法によれば、各機能ブロックにつき動作周波数を変更した上でのシミュレーションを簡易に実行でき、設計変更を短ターンアラウンドタイムで試行できる。これにより、最適な周波数制御を効率良く決定することができ、消費電力をより効果的に削減したＬＳＩの設計が可能となる。
【００５０】
また、機能ブロックの動作周波数変更に伴うデータ入出力速度の変更に対して、機能ブロック間のデータ転送路にデータバッファを挿入することで、速度差吸収の可能性の検証を極めて簡易に行うことができる。
【００５１】
さらに、データバッファの検証モデルにバッファの状態情報（特にバッファ溢れ情報）を出力するようにすれば、機能検証および回路動作解析をさらに効率化することができる。
【００５２】
本発明は、特に、低消費電力化が強く求められる移動体電話向けＬＳＩに適用すると、その効果を充分に発揮する。
【図面の簡単な説明】
【図１】本発明の実施の形態１におけるＬＳＩ設計検証装置の構成を示すブロック図
【図２】実施の形態１のＬＳＩ設計検証装置を用いた検証手順を示すフローチャート
【図３】実施の形態１におけるクロック周波数変更（ステップＳ２）の詳細手順を示すフローチャート
【図４】実施の形態１におけるクロック抽出（ステップＳ２０１）の詳細手順を示すフローチャート
【図５】実施の形態１におけるバッファ挿入（ステップＳ３）の詳細手順を示すフローチャート
【図６】実施の形態１における周波数制御手段の構成を示すブロック図
【図７】実施の形態１において生成された周波数制御回路の構成をその入出力信号とともに示すブロック図
【図８】実施の形態１におけるセレクタ挿入例（クロック信号切り替え回路）の構成を示すブロック図
【図９】実施の形態１におけるシミュレーション用回路の構成を示すブロック図
【図１０】実施の形態１における挿入されるバッファの構成を示すブロック図
【図１１】具体的説明の回路例を示すブロック図
【図１２】具体的説明の回路例の場合の周波数制御の状態遷移図
【図１３】具体的説明の回路例に対するシミュレーション用回路の構成を示すブロック図
【図１４】本発明の実施の形態２におけるバッファ監視手段を加えたバッファの構成を示すブロック図
【符号の説明】
１…周波数制御手段
２…クロック周波数変更手段
３…バッファ挿入手段
４…機能シミュレーション手段
１１…周波数制御仕様
１２…ＬＳＩ設計データ
１３…周波数制御回路
１４…バッファ付きＬＳＩ
１５…シミュレーションパターン
１６…シミュレーション結果
１０１…状態遷移入力手段
１０２…周波数制御論理生成手段
１０３…周波数制御回路データ
１０３ａ…周波数制御回路
２０１ｉ…セレクタ
３０１…バッファ
４０１…ＦＩＦＯ
４０２…セレクタ
４０３…バッファ監視手段
４０４…バッファ使用率情報
４０５…バッファ溢れ情報
ＩＰｉ…機能ブロック
ＣＫ０…源クロック信号
ＣＫｉ…クロック信号
ＳＥｉ…セレクト信号
Ｃｉ…制御信号
【図１】
2004133525.tif 000003
【図２】
2004133525.tif 000004
【図３】
2004133525.tif 000005
【図４】
2004133525.tif 000006
【図５】
2004133525.tif 000007
【図６】
2004133525.tif 000008
【図７】
2004133525.tif 000009
【図８】
2004133525.tif 000010
【図９】
2004133525.tif 000011
【図１０】
2004133525.tif 000012
【図１１】
2004133525.tif 000013
【図１２】
2004133525.tif 000014
【図１３】
2004133525.tif 000015
【図１４】
2004133525.tif 000016