(57)【特許請求の範囲】
【請求項１】
シミュレーションにおいて動作の観測が行われる観測対象回路における観測ポイントの指定を受け付け、当該観測ポイントの指定に係るデータを記憶装置に格納するステップと、
前記記憶装置に格納されている前記観測ポイントの指定に係るデータに従って観測回路が前記観測対象回路に接続されるように、観測対象回路データ格納部に格納されている前記観測対象回路の回路データに対して前記観測回路の回路データを付加し、前記観測回路の回路データを含む前記観測対象回路の回路データをシミュレーション用データ格納部に格納するステップと、
コンピュータに実行させ、
前記観測回路が、
特定の観測ポイントにおける特定の状態の、第１の期間における発生回数を格納する第１のレジスタと、前記特定の観測ポイントにおける前記特定の状態の、第２の期間における発生回数を格納する第２のレジスタと、前記第１の期間において前記第２のレジスタに格納されている前記発生回数を出力させ且つ前記第２の期間において前記第１のレジスタに格納されている前記発生回数を出力させる切替回路とを各々有する複数のカウンタ回路と、
前記発生回数を格納するメモリと、
前記複数のカウンタ回路の出力のいずれかを選択して前記メモリに書き込みを行わせる出力切替回路と、
を有する
半導体回路設計支援プログラム。
【請求項２】
前記複数のカウンタ回路が、前記観測ポイントの指定に係るデータに含まれ且つ観測ポイントの単位を規定するデータから特定される
請求項１記載の半導体回路設計支援プログラム。
【請求項３】
前記観測ポイントの指定に係るデータが、前記観測対象回路の階層構成における特定の階層の指定データを含む
請求項１記載の半導体回路設計支援プログラム。
【請求項４】
前記特定の状態が、ＲＡＭの停止状態、待機状態、読み込み状態又は書き込み状態、モジュールの停止状態、待機状態又は動作状態、若しくは複数のモジュールの状態組み合わせのいずれかを含む
請求項１記載の半導体回路設計支援プログラム。
【請求項５】
コンピュータにより実行される半導体回路設計支援方法であって、
シミュレーションにおいて動作の観測が行われる観測対象回路における観測ポイントの指定を受け付け、当該観測ポイントの指定に係るデータを記憶装置に格納するステップと、
前記記憶装置に格納されている前記観測ポイントの指定に係るデータに従って観測回路が前記観測対象回路に接続されるように、観測対象回路データ格納部に格納されている前記観測対象回路の回路データに対して前記観測回路の回路データを付加し、前記観測回路の回路データを含む前記観測対象回路の回路データをシミュレーション用データ格納部に格納するステップと、
を含み、
前記観測回路が、
特定の観測ポイントにおける特定の状態の、第１の期間における発生回数を格納する第１のレジスタと、前記特定の観測ポイントにおける前記特定の状態の、第２の期間における発生回数を格納する第２のレジスタと、前記第１の期間において前記第２のレジスタに格納されている前記発生回数を出力させ且つ前記第２の期間において前記第１のレジスタに格納されている前記発生回数を出力させる切替回路とを各々有する複数のカウンタ回路と、
前記発生回数を格納するメモリと、
前記複数のカウンタ回路の出力のいずれかを選択して前記メモリに書き込みを行わせる出力切替回路と、
を有する
半導体回路設計支援方法。
【請求項６】
シミュレーションにおいて動作の観測が行われる観測対象回路における観測ポイントの指定を受け付け、当該観測ポイントの指定に係るデータを記憶装置に格納する手段と、
前記記憶装置に格納されている前記観測ポイントの指定に係るデータに従って観測回路が前記観測対象回路に接続されるように、観測対象回路データ格納部に格納されている前記観測対象回路の回路データに対して前記観測回路の回路データを付加し、前記観測回路の回路データを含む前記観測対象回路の回路データをシミュレーション用データ格納部に格納する手段と、
を有し、
前記観測回路が、
特定の観測ポイントにおける特定の状態の、第１の期間における発生回数を格納する第１のレジスタと、前記特定の観測ポイントにおける前記特定の状態の、第２の期間における発生回数を格納する第２のレジスタと、前記第１の期間において前記第２のレジスタに格納されている前記発生回数を出力させ且つ前記第２の期間において前記第１のレジスタに格納されている前記発生回数を出力させる切替回路とを各々有する複数のカウンタ回路と、
前記発生回数を格納するメモリと、
前記複数のカウンタ回路の出力のいずれかを選択して前記メモリに書き込みを行わせる出力切替回路と、
を有する
半導体回路設計支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体回路の設計支援技術に関し、より詳しくはシミュレーションにおけるデータ採取技術及び採取データの可視化技術に関する。
【背景技術】
【０００２】
近年、例えばプロセッサなどでは発熱・消費電力の増大が大きな問題となっている。それに伴い、平均的な発熱や消費電力の振る舞いを検出し、可視化又は自動修正を行うツールが数多く提案されてきた。しかし、発熱や電力は平均的な振る舞いだけではなく、その時間的・空間的な偏りも大きな問題となりうる。例えば、瞬間的な電力負荷の変動があれば、ノイズや電圧低下による誤動作が発生する。また、局所的な発熱があれば、局所的に冷却が間に合わないため熱暴走や破壊が発生する可能性がある。そこで、チップ設計段階でいくつかのベンチマーク・テストを実施し、いつ、どこに大きな負荷が発生するかを明らかにし、特定部位及び特定時間に負荷が偏ることがないように、設計・実装の最適化を行うことが望まれている。
【０００３】
一方、プロセッサ等の設計変更には膨大なコストと非常に長い時間が掛かるため、プロセッサ等の内部の振る舞いの調査（例えば論理検証及び電力・発熱解析）はチップを実際に作成する前に行われている。しかし、十億以上のトランジスタを含むような近年のプロセッサ等の内部をソフトウェア・シミュレーションによって調査するとなると、実際には数ＧＨｚなのに、シミュレーションにおける動作速度は数Ｈｚにもならない。そこで、ハードウエアによるシミュレーションのアクセラレーションを行うツールが多くのベンダーから提供されている。
【０００４】
このようなアクセラレータを使用すると、ソフトウェア・シミュレータの１万倍程度の速度で、シミュレーション結果としてチップ内部の信号波形が得られる。図２８に模式的に示すように、ＷｉｒｅＡとＷｉｒｅＢとがＡＮＤ回路という論理回路の入力配線として規定され、ＷｉｒｅＣがＡＮＤ回路の出力配線と規定されている場合に、アクセラレータではこのような論理回路に所定の入力パターンを入力して、図２８右側に示すようなＷｉｒｅＡ、ＷｉｒｅＢ及びＷｉｒｅＣの信号波形が観測結果として得られる。
【０００５】
ここでプロセッサ等の動作電力は、配線の観測波形（＝信号変化回数）、配線の配線容量、配線に繋がっている論理セル（ＡＮＤやＯＲなど）の静電容量から、「電力∝（配線容量＋セル静電容量）×信号変化回数」によって計算することが出来る。しかし、十億以上の論理セルの動き全てを信号波形や個々のセルの電力値としてそのまま設計者に呈示しても、設計者は全ての情報に目を通すことが出来ない。
【０００６】
一方、チップの電力を最適化するには、（１）総電力・総発熱削減（具体的には、チップ全体の平均電力・発熱を下げるための論理最適化・実装最適化（すなわちセルサイジング、ファクタリング、ピンスワッピングなど））、（２）電力・発熱の偏り削減（具体的には、同時に動作する確率の高いセル同士、動作率の高いセル同士をあまり近くに多量に配置してしまうと、電力に偏りが生じてしまう。これは局所的な電圧変動や発熱に繋がり誤動作の原因となってしまう。この偏りを平滑化させるための論理最適化、実装最適化もあり得る。すなわち、セル再配置、論理変更などが実施される。）を考慮しなければならない。
【０００７】
これまでにも、総電力・総発熱を削減するための手法は数多く提案されてきている。自動的に電力最適化を行うツールとしては、既に販売されている製品が存在している。また、設計者に対し電力や発熱の様子を呈示することによって、設計改善が必要なポイントを絞り込んでもらうためのツールも幾つか提案されている。
【０００８】
また幾つかの文献では、例えば、（１）観測対象定義（クロックゲーティングやチップイネーブル信号など、特徴的な信号を抽出する。）、（２）観測回路付加（各観測信号に対し、カウンタ回路とその結果を格納するレジスタを付加する。）、（３）カウンタ観測（カウンタ回路付きの論理をシミュレータ上で動作させる。）、（４）ピーク検出（カウント結果から、動作に大きな変化が見られた特徴的な箇所を特定する。）、（５）動作率測定（検出されたポイントの詳細な信号波形を採取する。）、（６）結果表示（信号波形と実装情報（セルや配線の静電容量）から電力値を算出し、その数値結果を設計者に提示する。）といった処理を行う技術が開示されている。
【特許文献１】特開２００８−６５３８２号公報
【特許文献２】特開２００８−６５４９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、上で述べた従来技術では平均的な動作電力を落とすために必要な情報を得ることは出来るが、偏りを平滑化するために必要な情報を得ることは出来ない。これは、（１）扱うべきデータ量が多すぎてデータを採取しきれていない、（２）多量のデータを採取しても、それを適切な形態で設計者に提示できていない、という問題のためである。
【００１０】
（１）について具体的に述べると、例えばモジュールＡ及びＢがどの位動作していたか独立にデータを採取していたとする。図２９にその結果を表す。すなわち、時刻１までにモジュールＡもモジュールＢも１回動作している。同様に時刻１から時刻２までに、モジュールＡもモジュールＢも１回作している。そうすると時刻０乃至１の平均電力と、時刻１乃至２の平均電力は同じ値となる。しかし、局所的な電力・発熱を考えた場合、モジュールＡ及びＢがばらばらに動作する時刻１乃至２よりも、それらが同時に動作する時刻０乃至１の方が多くの負荷が掛かっているといえる。即ち、電力の偏りの平滑化を行うためには、複数のモジュール（例えば近隣のモジュール）が、いつ、どれだけ同時動作していたかを知らなくてはならない。しかし、チップ内には多数のモジュールが組み込まれているため、その組み合わせを全て選択することは従来手法では非現実的となっている。
【００１１】
これは、図３０に示すように、ゲーティングクロック信号など特徴的な信号配線に対して、パルス数をカウントするカウンタ（図３１に示すようにカウント値を保持するレジスタを含む）のみを単純に付加しているからである。具体的には、アクセラレータ上に配置され且つカウント値を保持する例えば３２ビットレジスタからカウント値を読み出すのに、１つのレジスタにつき１回１乃至２秒のオーバーヘッドがかかってしまう。そして図３０に示すようにアクセラレータ上に分散配置された例えば２０万個のレジスタからカウント値を１回読み出すのには、２０万×１秒＝２０万秒＝５６時間かかってしまう。このように、従来手法では多量のデータを採取すること自体が困難である。
【００１２】
また、（２）について具体的に述べると、数十万、数百万通りのモジュール組み合わせについて動作率を全て採取したとしても、それらを、単なる数値の羅列や、モジュール毎の電力グラフとして提示されても、設計者はその全てを把握することは出来ない。せいぜい数百モジュールを解析するのが限度となってしまう。
【００１３】
従って、本発明の目的は、現実的な時間内に、観測対象回路の多数の観測ポイントについて観測データをシミュレーションアクセラレータから採取できるようにするための半導体回路設計支援技術を提供することである。
【００１４】
また、本発明の他の目的は、観測対象回路の観測ポイントから採取された多量のデータを設計者が容易に把握可能な態様で提示することができるようにするための半導体回路設計支援技術を提供することである。
【課題を解決するための手段】
【００１５】
第１の態様に係る半導体回路設計支援方法は、シミュレーションにおいて動作の観測が行われる観測対象回路における観測ポイントの指定を受け付け、当該観測ポイントの指定に係るデータを記憶装置に格納するステップと、記憶装置に格納されている観測ポイントの指定に係るデータに従って観測回路が観測対象回路に接続されるように、観測対象回路データ格納部に格納されている観測対象回路の回路データに対して観測回路の回路データを付加し、観測回路の回路データを含む観測対象回路の回路データをシミュレーション用データ格納部に格納するステップと含む。
【００１６】
第２の態様に係る半導体回路設計支援方法は、シミュレーションにおいて動作の観測が行われた観測対象回路における特定の配線についての動作率のデータを格納する動作率データ格納部から、処理対象配線の動作率のデータを読み出すステップと、配線毎に観測対象回路が実装される半導体チップ上の位置データを格納する観測対象回路データ格納部から、処理対象配線の位置データを読み出すステップと、処理対象配線の位置データに従って、当該処理対象配線の動作率に応じた表示データを半導体チップに相当する表示エリア上に配置した画像データを生成し、出力する出力ステップとを含む。
【００１７】
第３の態様に係る半導体回路設計支援方法は、シミュレーションにおいて動作の観測が行われた観測対象回路が実装される半導体チップ上における各セルの位置データと、各前記セルに接続される配線のデータとを格納する観測対象回路データ格納部から、処理対象セルに接続される配線を特定するステップと、観測対象回路における配線についての動作率のデータを格納する動作率データ格納部から、特定された配線の動作率のデータを読み出すステップと、特定された配線の動作率から、処理対象セルについての動作率を決定する動作率決定ステップと、観測対象回路データ格納部から、処理対象セルの位置データを読み出すステップと、処理対象セルの位置データに従って、当該処理対象セルについての動作率に応じた表示データを半導体チップに相当する表示エリア上に配置した画像データを生成し、出力する出力ステップとを含む。
【００１８】
第４の態様に係る半導体回路設計支援方法は、シミュレーションにおいて動作の観測が行われた観測対象回路が実装される半導体チップ上における２つのセルの特定の組み合わせ状態の発生回数を格納するシミュレーション結果格納部から、注目セルについて対応セルと特定の組み合わせ状態の発生回数とを読み出すステップと、観測対象回路が実装される半導体チップ上における各セルの位置データを格納する観測対象回路データ格納部から、注目セルと対応セルの位置データを読み出すステップと、注目セルの第１の表示データを当該注目セルの位置データに従って半導体チップに相当する表示エリア上に配置すると共に、対応セルの位置データに従って、当該対応セルについての発生回数に応じた第２の表示データを表示エリア上に配置した画像データを生成し、出力するステップとを含む。
【発明の効果】
【００１９】
現実的な時間内に、観測対象回路の多数の観測ポイントについて観測データをシミュレーションアクセラレータから採取できるようになる。
【００２０】
また、他の側面によれば、観測対象回路の観測ポイントから採取された多量のデータを設計者が容易に把握可能な態様で提示することができるようになる。
【発明を実施するための最良の形態】
【００２１】
図１に、本発明の一実施の形態に係る半導体回路設計支援装置の機能ブロック図を示す。本半導体回路設計支援装置は、設計を行っている半導体回路（以下、観測対象回路と呼ぶ）において観測を行うべき配線の個別指定又は指定ルール（観測回路に含まれるカウンタ回路のグループ化ルールも含む）を設定する観測ポイント設定部１１と、観測ポイント設定部１１によって設定された観測ポイント指定データを格納する観測ポイント指定データ格納部１２と、以下で述べる本実施の形態特有の観測回路のデータを格納するセルライブラリ格納部１４と、観測ポイント指定データ格納部１２とセルライブラリ格納部１４とに格納されているデータを用いて観測回路のデータを生成する観測回路生成部１５と、観測回路生成部１５によって生成された観測回路のデータを格納する観測回路データ格納部１６と、観測対象回路のデータを格納する観測対象回路データ格納部１３と、観測ポイント指定データ格納部１２と観測回路データ格納部１６と観測対象回路データ格納部１３とに格納されているデータを用いて各観測回路を観測対象回路の観測ポイントの配線に付加する処理を実施する観測回路付加処理部１７と、観測回路付加処理部１７の処理結果が格納されているシミュレーション回路データ格納部１８と、シミュレーション回路データ格納部１８に格納されているデータをシミュレーションアクセラレータ２００に出力するデータ出力部２５と、シミュレーションアクセラレータ２００からシミュレーション結果を取得するシミュレーション結果取得部２６と、シミュレーションアクセラレータ２００の処理結果であるカウント値及び波形データを格納するシミュレーション結果格納部１９と、シミュレーション結果格納部１９に格納されているデータ（ここではカウント値）を用いて波形観測ポイント（すなわち波形観測期間）を設定するための処理を実施する波形観測ポイント設定部２０と、波形観測ポイント設定部２０の処理結果を格納する波形観測ポイント設定データ格納部２１と、シミュレーション結果格納部１９に格納されているデータ（ここでは波形データ）を用いて波形観測ポイントにおける動作率を算出する動作率算出部２２と、動作率算出部２２によって算出された動作率のデータを格納する動作率データ格納部２３と、動作率データ格納部２３と観測対象回路データ格納部１３とシミュレーション結果格納部１９とに格納されているデータを用いて本実施の形態特有の各種表示形態にてシミュレーション結果をユーザに提示するための処理を実施する表示処理部２４とを有する。
【００２２】
なお、シミュレーションアクセラレータ２００は、従来と同様のものであり、観測回路によってカウントされたカウント値を出力する場合と、従来と同様に指定された配線について波形データを出力する場合とがある。シミュレーションアクセラレータ２００の詳細については周知であるからこれ以上述べない。
【００２３】
次に、図２及び図３を用いて本実施の形態特有の観測回路について説明しておく。従来技術の欄で述べた従来のカウンタ回路の問題点を解決すべく、本実施の形態では、図２に示すような観測回路を採用する。すなわち、本実施の形態に係る観測回路は、それぞれ観測ポイントに接続される複数のカウンタ回路３０１ａ乃至３０１ｃ（図２では３つだが３つに限定されるものはない）と、カウンタ回路３０１ａ乃至３０１ｃの出力のうちいずれかの出力を選択するマルチプレクサ（ＭＵＸ）３０３と、マルチプレクサ３０３を介してカウンタ回路３０１ａ乃至３０１ｃのカウント値を格納するＲＡＭ（Random Access Memory）３０４とを有する。ＲＡＭ３０４に格納された、カウンタ回路３０１ａ乃至３０１ｃのカウント値は、シミュレーションアクセラレータ２００によって読み出される。また、各カウンタ回路は、カウンタ回路に含まれるカウンタ（図示せず）の第１の期間の出力を格納するレジスタＡと、同じくカウンタ回路に含まれるカウンタ（図示せず）の第２の期間の出力を格納するレジスタＢと、カウンタからの出力を第１の期間にはレジスタＡに出力させ、カウンタからの出力を第２の期間にはレジスタＢに出力させるマルチプレクサ（ＭＵＸ）３０１１と、第２の期間に、レジスタＡに格納されているカウント値を出力させ、第１の期間に、レジスタＢに格納されているカウント値を出力させるマルチプレクサ（ＭＵＸ）３０１４とを有する。このように本実施の形態に係るカウンタ回路は、ダブルバッファカウンタ構成を採用している。
【００２４】
図２に示したカウンタ回路は、（１）第１の期間においては、カウンタのカウント値をレジスタＡに書き込み、レジスタＢに格納されているカウント値を、マルチプレクサ３０３に出力する。（２）マルチプレクサ３０３は、グループを構成するカウンタ回路３０１ａ乃至３０１ｃのうち１つを順番に選択して、ＲＡＭ３０４に対し、カウンタ回路３０１ａ乃至３０１ｃのレジスタに書き込まれたカウント値を書き込む。（３）第２の期間においては、カウンタのカウント値をレジスタＢに書き込み、レジスタＡに格納されているカウント値を、マルチプレクサ３０３に出力する。（４）マルチプレクサ３０３は、グループを構成するカウンタ回路３０１ａ乃至３０１ｃのうち１つを順番に選択して、ＲＡＭ３０４に対し、カウンタ回路３０１ａ乃至３０１ｃのレジスタに書き込まれたカウント値を書き込む。このような処理を繰り返す。
【００２５】
図２に示したように本実施の形態ではＲＡＭ３０４を採用している。ＲＡＭ３０４も実際にはアクセラレータ基板上に複数設けられることになるが、それでも従来技術の欄で述べたレジスタよりもまとまっている。このため、図３に示すように、一度の読み出し処理（すなわち通信処理）で、８００Ｋバイト程度のデータをまとめて２乃至３秒程度で取り出すことができる。３２ビットカウンタを用いた場合、レジスタ１個分で４バイトであるから、２０万個分のデータを２乃至３秒程度で読み出すことができるようになる。従来技術の欄で述べたように、レジスタから直接読み出しを行うとレジスタ１個につき１乃至２秒程度かかるのと比べて非常に高速読み出しが可能となっている。
【００２６】
また、シミュレーションアクセラレータ２００上のＲＡＭ３０４も一度に８００Ｋバイト書き込めるほどの帯域を有していないので、上で述べたようにダブルバッファカウンタを採用して、カウンタ回路内においてレジスタを切り替え、さらにカウンタ回路のグループにおいて時分割で順次ＲＡＭ３０４にカウント値を書き込むような手法を用いて、ＲＡＭ３０４へのデータ書き込み帯域を有効活用している。
【００２７】
さらに、同一グループに属するカウンタ回路３０１ａ乃至３０１ｃは、同じ書き込み先のＲＡＭ３０４にマルチプレクサ３０３を介して接続されている。カウンタ回路３０１ａ乃至３０１ｃは、それぞれの観測対象信号（即ち観測対象配線）の近くに配置される。そのためアクセラレータ基板上に分散配置される。しかし、カウント値をＲＡＭ３０４に書き出すときもできるだけ近いカウンタ回路３０１ａ乃至３０１ｃから書き込む方が効率的である。従って、本実施の形態では、観測対象信号の近くに配置されているカウンタ回路３０１ａ乃至３０１ｃをグループ化している。観測対象信号が近いというのは、観測対象回路における特定の階層下におけるモジュール毎といったように決定される。
【００２８】
このように、図２のような観測回路を採用することによって高速に観測結果であるカウント値を採取することができるようになるので、観測ポイント（即ち観測対象配線）の数も増加させることも可能となる。
【００２９】
次に、図４乃至図２６を用いて図１に示した半導体回路設計支援装置の処理内容について説明する。まず、観測ポイント設定部１１は、ユーザから観測ポイント指定データの入力を受け付け、観測ポイント指定データ格納部１２に格納する（図４：ステップＳ１）。従来技術では、クロックゲーティングやチップイネーブル信号などの特徴的な信号を１本だけ選択していたが、これは上で述べたように観測回路からのデータ採取時間の問題があるためである。これに対して、本実施の形態では、上で述べた観測回路を採用することによって多数の観測ポイントを指定することができる。例えば、図５乃至図９に示すような観測ポイントを指定することができる。
【００３０】
（ａ）ＲＡＭの各種状態
図５に模式的に示すように、ＲＡＭには、チップイネーブル信号（ＣＥ）とライトイネーブル信号（ＷＥ）とクロック信号（ＣＫ）とが入力されており、ＲＡＭの状態を特定するためには、チップイネーブル信号及びライトイネーブル信号に加えて、上位のクロック供給源（Clock BUF）へのクロック供給停止信号（ＣＫＩＨ）を観測することになる。この３つの信号の状態の組み合わせによって、図６に示すように、停止、待機、読み込み及び書き込みの状態が特定される。図６において「ｘ」は「０」でも「１」でもよいことを表している。本実施の形態では、これらの各々の状態が何サイクル発生したのかを観測する。
【００３１】
（ｂ）論理モジュール及びＦＦ（Flip Flop）のクロックゲーティングとＩｎｈ信号
各論理モジュール（Ｍｏｄ）及びＦＦには、図７で示すように、クロック信号（ＣＫ）と論理モジュール及びＦＦ単体の動作を止めるＭｏｄＩＨ信号が入力されており、各論理モジュール及びＦＦの状態を特定するためには、ＭｏｄＩＨ信号に加えて、上位のクロック供給源（Clock BUF）へのクロック供給停止信号（ＣＫＩＨ）を観測することになる。なお、ＣＫＩＨ信号によって論理モジュールやＦＦの動作を停止させると、より多くの電力を削減できるが、再度動作させるまでに時間が掛かってしまう。一方、ＭｏｄＩＨ信号で動作を止めると電力をあまり削減できないが、直ぐに再動作させることができる。
【００３２】
この２つの信号の状態の組み合わせによって、図８に示すように、各論理モジュールやＦＦの停止、起動及び動作の状態が特定される。本実施の形態では、これらの各々の状態が何サイクル発生したかを観測する。
【００３３】
（ｃ）論理モジュール又はＦＦの組み合わせ
本実施の形態ではさらに、例えば隣接モジュールなど（実装レイアウト上でチップを格子状に分割し、その中のモジュールやＦＦを隣接とする）の組み合わせについて、図９に示すような同時実行、片方動作、同時停止などの９状態も観測できる。具体的には、モジュールＡのＣＫＩＨ信号及びＭｏｄＩＨ信号と、モジュールＢのＣＫＩＨ信号及びＭｏｄＩＨ信号とを観察することによって図９で示す９状態のいずれかを特定し、何サイクル発生したかを観測する。例えばモジュールＡのＣＫＩＨ信号＝０且つＭｏｄＩＨ信号＝０で、モジュールＢのＣＫＩＨ信号＝０且つＭｏｄＩＨ信号＝０であれば、同時動作という状態であることを特定できる。
【００３４】
なお、観測ポイントの指定の仕方としては、観測対象回路の階層定義に従って特定の階層以下の全てのＲＡＭやモジュール等を観測ポイントとして指定するようにしても良い。例えば、最上位階層から、チップ全体、プロセッサコア、二次キャッシュ・ユニット、キャッシュコントローラといったような階層定義がなされている場合には、このような階層において第４階層以下の全モジュール等を観測単位として指定する。その他、モジュールなどの名称が一定の規則に従って付されている場合には、モジュール名称を指定して該当する全てのモジュールを観測ポイントとして特定するようにしても良い。
【００３５】
さらに、観測対象回路の内容を詳細に知っているようなユーザであれば、個別にモジュールなどを指定するようにしても良い。また、典型的な観測ポイント・テンプレートを用意しておき、それを選択するようにしてもよい。
【００３６】
観測ポイント設定部１１は、このような観測ポイントの指定を受け付け、観測ポイントを指定するデータを、観測ポイント指定データ格納部１２に格納する。
【００３７】
次に、観測回路生成部１５は、セルライブラリ格納部１４に格納されており且つ図２に示したような観測回路のデータを用いて、観測ポイント指定データ格納部１２に格納されている観測ポイントを指定するデータに従った観測回路を生成し、生成した観測回路のデータ（すなわちネットリスト）を観測回路データ格納部１６に格納する（ステップＳ３）。このステップでは、観測ポイントを指定するデータに従って、必要なだけの観測回路のカウンタ回路を用意し、グループ化する等の処理を行う。グループ化は、例えば、観測ポイントとして指定された階層の１つ下の階層に属する論理単位毎に行われる。
【００３８】
例えば、観測対象回路のモジュールＡとモジュールＢとが同じ論理単位に属している場合にはグループＡＢという１つのグループを構成し、観測対象回路のモジュールＣとモジュールＤとが同じ論理単位に属している場合にはグループＣＤという１つのグループを構成するものとする。そして、モジュールＡにおける２つの配線１及び２が状態を特定すべき配線として特定される場合には、そのためのカウンタ回路Ａ１２が用意される。また、モジュールＢにおける２つの配線１及び３が状態を特定すべき配線として特定される場合には、そのためのカウンタ回路Ｂ１３が用意される。そして、モジュールＡ及びＢは１つのグループＡＢを構成するため、カウンタ回路Ａ１２及びＢ１３と、グループＡＢのためのＲＡＭ＿ＡＢと、それらを繋ぐマルチプレクサ（ＭＵＸ）と有する観測回路が用意される。また、モジュールＣにおける２つの配線２及び３が状態を特定すべき配線として特定される場合には、そのためのカウンタ回路Ｃ２３が用意される。また、モジュールＤにおける配線３が状態を特定すべき配線として特定される場合には、そのためのカウンタ回路Ｄ３が用意される。そして、モジュールＣ及びＤは１つのグループＣＤを構成するため、カウンタ回路Ｃ２３及びＤ３と、グループＣＤのためのＲＡＭ＿ＣＤと、それらを繋ぐマルチプレクサ（ＭＵＸ）と有する観測回路が用意される。このように用意される観測回路を図１０に模式的に示す。なお、観測回路を制御する回路やＲＡＭからデータを読み出すための回路なども付加される。
【００３９】
そして、観測回路付加処理部１７は、観測ポイント指定データ格納部１２に格納されている観測ポイントを指定するためのデータに従って、観測回路データ格納部１６に格納された観測回路のデータ（すなわちネットリスト）を、観測対象回路データ格納部１３に格納されている観測対象回路のデータ（すなわちネットリスト）に付加する処理を実施する（ステップＳ５）。
【００４０】
例えば、図１１に模式的に示すような観測対象回路を使用する場合には、モジュールＡの配線１及び２、モジュールＢの配線１及び３、モジュールＣの配線２及び３、モジュールＤの配線３が、観測ポイントを指定するためのデータによってプローブポイントとして特定される。そして、図１０に示したような観測回路のカウンタ回路と、観測対象回路のプローブポイントとプローブ信号線で繋ぐことによって、観測対象回路のデータに対して観測回路が付加されることになる。この状態を図１２に模式的に示す。カウンタ回路Ａ１２を観測対象回路へ繋ぐプローブ信号線４０１及び４０２と、カウンタ回路Ｂ１３を観測対象回路へ繋ぐプローブ信号線４１１及び４１２と、カウンタ回路Ｃ２３を観測対象回路へ繋ぐプローブ信号線４２１及び４２２と、カウンタ回路Ｄ３を観測対象回路へ繋ぐプローブ信号線４３１とが定義される。図１２に示すような、観測対象回路と観測回路とがマージされた回路のデータがシミュレーション回路データ格納部１８に格納される。
【００４１】
そして、データ出力部２５は、シミュレーション回路データ格納部１８に格納されている回路データを、シミュレーションアクセラレータ２００に出力する（ステップＳ７）。
【００４２】
シミュレーションアクセラレータ２００は、データ出力部２５から受信した回路データを用いて周知のシミュレーション（第１回シミュレーション）を実施し（ステップＳ９）、上で述べた観測回路でカウントされたカウント値を観測回路のＲＡＭから読み出して出力する（ステップＳ９）。シミュレーションアクセラレータ２００では、ある入力パターンをチップの論理に与えたときに、チップ内部の論理がどのように動くかをクロックのサイクル単位で正確にシミュレーションする。図４では、ステップＳ９は、半導体回路設計支援装置以外の部分で実施される処理なので点線ブロックとしている。
【００４３】
シミュレーション結果取得部２６は、シミュレーションアクセラレータ２００から第１回シミュレーションの結果であるカウント回路のカウント値を取得し、シミュレーション結果格納部１９に格納する（ステップＳ１１）。
【００４４】
取得されたカウント値の一例を図１３に示す。図１３の例では、二次キャッシュコントローラにおけるＭｏｖｅ−Ｉｎ−Ｄａｔａレジスタに対するＣＫＩＨ＝０、ＣＥ＝１及びＷＥ＝１という状態、すなわち書き込み状態であるサイクル数が、６万サイクル毎に列挙されている。すなわち、最初の６万サイクルのうち８３２サイクルが書き込み状態であり、次の６万サイクルのうち１２１６サイクルが書き込み状態であったということを示している。
【００４５】
次に、波形観測ポイント設定部２０は、シミュレーション結果格納部１９に格納されているカウント値等をユーザに提示する（ステップＳ１３）。本ステップでは、カウント値をそのまま提示する場合もあれば、例えば、ユーザ指定のモジュールなどについて例えば動作状態を表すカウント値の時間推移をグラフ化するなどしてユーザに提示するようにしても良い。さらに、例えばユーザ指定の全モジュール等について例えば特定の動作状態を表すカウント値の総和の時間推移をグラフ化するなどしてユーザに提示するようにしても良い。ここで例えばカウント値の採取に不都合があったり、より特定のモジュールなどに絞り込んでカウント値を採取すべきか否かなどについてユーザは検討を行う。もし必要であれば、カウント値の取得態様を変更すべく指示を観測ポイント設定部１１に入力する。
【００４６】
観測ポイント設定部１１は、ユーザからカウント値の取得態様の変更指示を受け付けると（ステップＳ１５：Ｙｅｓルート）、ステップＳ１に戻る。
【００４７】
一方、特にカウント値の取得態様の変更指示を受け付けなかった場合には（ステップＳ１５：Ｎｏルート）、波形観測ポイント設定部２０は、波形観測ポイントの選択処理を実施し、選択された波形観測ポイントのデータを波形観測ポイント設定データ格納部２１に格納すると共に、シミュレーションアクセラレータ２００に出力する（ステップＳ１７）。波形観測ポイントの選択処理では、例えばユーザが指定した１又は複数のモジュールなど又はカウント値を採取した全モジュールについて、指定された状態（例えば動作状態）のカウント値を加算して、時間変化を表すデータを生成する。そして、その中で所定の基準を超えてカウント値が高い値を有する１又は複数の期間を特定する。例えば自動的に所定の基準を超えてカウント値が高い値を有する期間を特定してユーザに提示した上で、ユーザがその上で波形観測ポイントとする期間を指定するようにしても良い。また、最終的な波形観測ポイントとする期間を自動的に特定するようにしても良いし、カウント値の時間変化を表すデータをユーザに提示して、ユーザからの指示に従うようにしても良い。また、カウント値の変化率に着目して、変化率の大きな部分を波形観測ポイントに指定しても良い。さらに、ピークを特定してピークの前後所定期間を波形観測ポイントに指定しても良い。処理は端子Ａを介して図１４の処理に移行する。
【００４８】
図１４の処理の説明に移行して、シミュレーションアクセラレータ２００は、第２回目のシミュレーションを実施する（ステップＳ１９）。この第２回目のシミュレーションでは、指定された波形観測ポイントにおける波形データを取得する周知の処理を同時に行う。図１４では、ステップＳ１９は、半導体回路設計支援装置以外の部分で実施される処理なので点線ブロックとしている。
【００４９】
シミュレーション結果取得部２６は、シミュレーションアクセラレータ２００から第２回シミュレーションの結果である波形観測ポイントにおける各信号の波形データを取得し、シミュレーション結果格納部１９に格納する（ステップＳ２１）。波形データは、各サイクルにおける信号値のデータである。
【００５０】
そして、動作率算出部２２は、シミュレーション結果格納部１９に格納されている波形データから各信号の値が一定時間（一定サイクル数）内に反転した回数を特定することによって、動作率（単位時間あたりの信号値の反転回数）を算出し、動作率データ格納部２３に格納する（ステップＳ２３）。動作率の算出は周知であり、詳細については述べない。動作率データ格納部２３には、例えば図１５に示すようなデータが格納される。図１５の例では、信号毎に、信号の値の反転回数を表す信号変化回数と、動作率とが格納されるようになっている。
【００５１】
そして、表示処理部２４は、動作率データ格納部２３に格納されているデータ及び場合によってはシミュレーション結果格納部１９に格納されているカウント値のデータを用いて、ユーザの要求に従った表示処理を実施する（ステップＳ２５）。この表示処理については図１６乃至図２６を用いて説明する。
【００５２】
表示処理部２４は、ユーザからの指示が一単位時間についての表示を要求するものであるか判断する（ステップＳ３１）。特定の単位時間についての動作率などのデータを単に表示するだけではなく、動作率などについて時間推移を例えばアニメーション風に表示することも選択可能である。従って、ここではいずれの表示態様を選択するか判断する。
【００５３】
一単位時間についての表示ではない場合には端子Ｄを介して図２４の処理に移行する。一方、一単位時間についての表示が要求された場合には、表示処理部２４は、ユーザから表示すべき時間（すなわち単位時間）の指定を受け付ける（ステップＳ３３）。さらに、ユーザからの表示態様の指示が配線単位の動作率表示であるか判断する（ステップＳ３５）。
【００５４】
ユーザからの表示態様の指示が配線単位の動作率表示である場合には、観測対象回路データ格納部１３に格納されている観測対象回路のレイアウトデータから、動作率が算出されている配線の、チップ上の位置データを取得し、例えばメインメモリなどの記憶装置に格納する（ステップＳ３７）。例えば図１７乃至図１９に示すようなデータがレイアウトデータとして、観測対象回路データ格納部１３に格納されている。図１７の例では、論理モジュール毎に、当該論理モジュールに接続されている入力配線及び出力配線の名称が登録されている。また、図１８の例では、配線毎に、当該配線の座標値（例えば起点と終点の座標値など）が登録されている。また、図１９の例では、論理モジュール毎に、当該論理モジュールの座標値（例えば左上の座標値と右下の座標値など）が登録されている。ステップＳ３７では、各配線の座標値が位置データとして取得される。
【００５５】
そして、表示処理部２４は、動作率区分毎に色分けなど（輝度、線の太さの場合もある）を行った配線レイアウト図を生成し、表示装置に表示する（ステップＳ３９）。例えば図２０に示すような配線レイアウト図が表示される。図２０の例では、矩形は論理モジュール（すなわちセル）を表しており、論理モジュール間を繋ぐ配線の太さで動作率の大小を表している。なお、図２０の例では動作率２０％未満の配線については表示を省略している。図２０のような表示を行うことによって、何れの配線の動作率が高いのかを位置関係を含めて把握することができるようになる。また、動作率の高い配線によって繋がれる論理モジュールにも注目することができるようになる。処理は、端子Ｇを介してステップＳ５９に移行する。
【００５６】
一方、配線単位の動作率表示ではない場合には、表示処理部２４は、ユーザからの表示態様の指示がセル単位（すなわち論理モジュール単位）の動作率表示であるか判断する（ステップＳ４１）。ユーザからの表示態様の指示がセル単位の動作率表示である場合には、表示処理部２４は、観測対象回路データ格納部１３に格納されている観測対象回路のデータ（例えば図１７に示すようなデータ）から、各セルに接続される出力配線を特定し（ステップＳ４３）、各セルの出力配線の動作率のうち動作率最大値を動作率データ格納部２３に格納されているデータから特定し、セルに対応付けてメインメモリなどの記憶装置に格納する（ステップＳ４５）。例えば、あるセルに３本の出力配線が存在する場合には、その中で最も動作率が高い出力配線の動作率を当該セルの動作率とみなす。
【００５７】
さらに、表示処理部２４は、観測対象回路データ格納部１３に格納されている観測対象回路のレイアウトデータ（例えば図１９）から、各セルの位置データを取得し、セルに対応付けて例えばメインメモリなどの記憶装置に格納する（ステップＳ４７）。そして、動作率区分毎に色分け（ハッチングの濃さ、種類などの場合もある）を行ったセルレイアウト図を生成し、表示装置に表示する（ステップＳ４９）。例えば、図２１に示すようなセルレイアウト図が表示される。図２１の例では、各矩形が各セルを表しており、ハッチングの濃さによって動作率の大小を表している。なお、図２１の例では、動作率２０％未満の場合には、ハッチングなしとなっている。このような表示を行うことによって、動作率の高いセルの位置的な偏りなどを判断しやすくなる。処理は端子Ｇを介してステップＳ５９に移行する。
【００５８】
また、セル単位の動作率表示ではない場合には、端子Ｆを介して図２２の処理に移行する。ここでは特定のセルと同時動作しているセルについての同時動作率表示が選択されたことになる。従って、まず、表示処理部２４は、着目すべきセルの選択入力を受け付ける（ステップＳ５１）、そして選択されたセルの例えば同時動作カウント結果（他の状態のカウント値を用いるようにしても良い）をシミュレーション結果格納部１９から読み出す（ステップＳ５３）。図９で示したように２つのセルの組み合わせで同時動作している状態（図９の状態９）が発生した回数がカウントされている。従って、このような同時動作状態のカウント値を取得する。なお、ステップＳ３３で指定されている表示時間におけるカウント値が抽出される。さらに、着目すべきセルと関連して観測されている他の各セルについて、（カウント値／指定単位時間におけるサイクル数）によって同時動作率を算出し、メインメモリなどの記憶装置に格納する（ステップＳ５４）。
【００５９】
その後、表示処理部２４は、着目すべき選択セルと関連して観測されているセル及び着目すべき選択セルの位置データを、観測対象回路データ格納部１３（図１９）から読み出す（ステップＳ５５）。そして、同時動作率の区分によって色分けなど（ハッチングの濃さ、種類などの場合もある）したセルレイアウト図を生成し、表示装置に表示する（ステップＳ５７）。例えば図２３に示すようなセルレイアウト図が表示される。図２３の例では、矩形がセルを表しており、黒塗りのセルが着目すべき選択セルを表している。そして、着目すべき選択セルと関連して観測されている他のセルの同時動作率の大小は、ハッチングの濃さによって表されている。同時動作率２０％未満の場合には、ハッチング無しとなっている。また、２０％以上の同時動作率のセルと、着目すべき選択セルとの間には関連を表す線が示されている。但しこのような線はなくとも良い。楕円５００は、着目すべき選択セルに関連して同時動作率が相対的に高いセル群が存在する部分を表しており、局所的に動作しているセルが集中していることが分かる。
【００６０】
処理フローでは示されていないが、図２３に示すような画面の時間変化を、以下で説明するような処理を応用して表示するようにしても良い。
【００６１】
そして、表示処理部２４は、ユーザの指示によって表示変更を行うか判断する（ステップＳ５９）。表示変更を行うと指示された場合には端子Ｅを介してステップＳ３１に戻る。一方、表示変更を行わない場合には元の処理に戻る。
【００６２】
また、ステップＳ３１で、ユーザからの指示が一単位時間についての表示を要求するものではないと判断された場合には、表示処理部２４は、ユーザから、動作率の時間推移をアニメーション風に表示する要求がなされたか判断する（ステップＳ６１）。動作率の時間推移をアニメーション風に表示することが要求されているわけではない場合には端子Ｅを介してステップＳ３１に戻る。一方、動作率の時間推移をアニメーション風に表示することが要求されていると判断された場合には、表示処理部２４は、表示すべき時間の指定をユーザから受け付ける（ステップＳ６３）。例えば開始単位時間と終了単位時間との指定を受け付ける。そして、ユーザからの表示態様の指示が配線単位の動作率表示であるか判断する（ステップＳ６５）。
【００６３】
ユーザからの表示態様の指示が配線単位の動作率表示である場合には、表示処理部２４は、時刻ｎに開始単位時間を設定する（ステップＳ６７）。その後、観測対象回路データ格納部１３に格納されている観測対象回路のレイアウトデータから、時刻ｎにおける動作率が算出されている配線の、チップ上の位置データを取得し、例えばメインメモリなどの記憶装置に格納する（ステップＳ６９）。
【００６４】
そして、表示処理部２４は、動作率区分毎に色分けなど（輝度、線の太さの場合もある）を行った配線レイアウト図を生成し、表示装置に表示する（ステップＳ７１）。例えば図２０に示すような配線レイアウト図が表示される。そして、時刻ｎを１インクリメントし（ステップＳ７３）、時刻ｎが終了単位時間を経過したか判断する（ステップＳ７５）。時刻ｎが終了単位時間を経過していない場合にはステップＳ６９に戻って、処理を行う。そうすると、次のステップＳ７１では、図２５に示すような画面が表示される。図２５に示すように、図２０の次の単位時間では、配線６０１の動作率が上昇していることが分かる。また、新たに動作率が２０％を超えるようになった配線６０３が存在していることも分かる。このように動作率が変動している配線の位置を把握したり、新たに動作率が２０％を超えるようになった配線の位置を確認したりして、動作率の時間推移や高い動作率の配線の位置的な移動を把握しやすくなる。
【００６５】
ステップＳ７５で、時刻ｎが終了単位時間を経過したと判断された場合には、端子Ｇを介してステップＳ５９に移行する。
【００６６】
一方、配線単位の動作率表示ではない場合には、表示処理部２４は、ユーザからの表示態様の指示がセル単位（すなわち論理モジュール単位）の動作率表示であるか判断する（ステップＳ７７）。ユーザからの表示態様の指示がセル単位の動作率表示でない場合には、端子Ｅを介してステップＳ３１に戻る。ユーザからの表示態様の指示がセル単位の動作率表示である場合には、表示処理部２４は時刻ｎに開始単位時間を設定する（ステップＳ７９）。さらに、観測対象回路データ格納部１３に格納されている観測対象回路のデータ（例えば図１７に示すようなデータ）から、各セルに接続される出力配線を特定し（ステップＳ８１）、各セルの出力配線の動作率のうち動作率最大値を動作率データ格納部２３に格納されているデータから特定し、セルに対応付けてメインメモリなどの記憶装置に格納する（ステップＳ８３）。例えば、あるセルに３本の出力配線が存在する場合には、その中で最も動作率が高い出力配線の動作率を当該セルの動作率とみなす。
【００６７】
さらに、表示処理部２４は、観測対象回路データ格納部１３に格納されている観測対象回路のレイアウトデータ（例えば図１９）から、各セルの位置データを取得し、セルに対応付けて例えばメインメモリなどの記憶装置に格納する（ステップＳ８５）。そして、動作率区分毎に色分け（ハッチングの濃さ、種類などの場合もある）を行ったセルレイアウト図を生成し、表示装置に表示する（ステップＳ８７）。例えば、図２１に示すようなセルレイアウト図が表示される。
【００６８】
ここで時刻ｎを１インクリメントし（ステップＳ８９）、時刻ｎが終了単位時間を経過したか判断する（ステップＳ９１）。時刻ｎが終了単位時間を経過していない場合にはステップＳ８１に戻って、処理を行う。そうすると、次のステップＳ８７では、図２６のような画面が表示される。図２６に示すように、図２１の次の単位時間では、急激に動作率が上昇したセル７０１や、動作率２０％未満となってしまったセル７０３が存在することが分かる。このように、動作率が変動しているセルの位置を把握したり、動作率の高いセルの偏りの時間変化などを把握したりすることができるようになる。
【００６９】
そして、ステップＳ９１で、時刻ｎが終了単位時間を経過したと判断された場合には、端子Ｇを介してステップＳ５９に移行する。
【００７０】
図１４の処理の説明に戻って、ユーザが表示処理の結果を参照して、観測ポイント設定部１１に、カウント値の取得態様の変更を指示したか判断する（ステップＳ２７）。カウント値の取得態様の変更を指示した場合には端子Ｂを介して図４のステップＳ１に戻る。一方、カウント値の取得態様の変更が指示されたわけではない場合には、波形観測ポイント設定部２０は、ユーザから波形観測ポイントの変更が指示されたか判断する（ステップＳ２９）。ユーザから波形観測ポイントの変更が指示されている場合には端子Ｃを介してステップＳ１７に戻る。一方、ユーザから波形観測ポイントの変更が指示されていない場合には処理を終了する。
【００７１】
以上のような処理を実施することによって、（１）観測回路からのデータ採取が高速化されるため、観測対象回路において多数のセルの多数の動作状態の発生頻度を採取することができるようになる。また、（２）膨大なデータを詳細に可視化できるようになったため、膨大なデータに基づく様々なフィードバックを設計者に対して行うことができ、設計の効率化や問題の発見などに繋がる。（３）膨大なデータを様々な形態で設計者に提示することができるようになり、設計者は直感的に必要な情報を得ることができるようになる。
【００７２】
より具体的には、これまでの手法では設計者が把握できなかったチップ内の局所的な動作を容易に把握できるようになる。そして、局所的動作を把握することによって、設計者は容易に電力や発熱の時間的・空間的な偏りの原因となっているモジュールなどを特定することができるようになり、異常動作に繋がる局所的な発熱や電力変動を抑えるための実装最適化や論理最適化を容易に行うことができるようになる。
【００７３】
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。上で述べた表示画面例は、一例であって他のより見やすい態様で同趣旨の表示内容を表示することも可能である。特に色分けは有効である。また、動作率の刻みなども任意であり、上で述べた例に限定されない。
【００７４】
図１に示した機能ブロック図は一例であって、必ずしも実際にプログラムモジュールと一致するわけではない。
【００７５】
処理フローについても、処理内容が同一であれば処理順番を入れ替えたり、並列実施したりしても良い部分もある。
【００７６】
さらに、上で述べた本実施の形態はほぼ４つの態様にまとめることができる。
【００７７】
第１の態様に係る半導体回路設計支援方法は、シミュレーションにおいて動作の観測が行われる観測対象回路における観測ポイントの指定を受け付け、当該観測ポイントの指定に係るデータを記憶装置に格納するステップと、記憶装置に格納されている観測ポイントの指定に係るデータに従って観測回路が観測対象回路に接続されるように、観測対象回路データ格納部に格納されている観測対象回路の回路データに対して観測回路の回路データを付加し、観測回路の回路データを含む観測対象回路の回路データをシミュレーション用データ格納部に格納するステップとを含む。
【００７８】
この際、上で述べた観測回路が、特定の観測ポイントにおける特定の状態の、第１の期間における発生回数を格納する第１のレジスタと、特定の観測ポイントにおける特定の状態の、第２の期間における発生回数を格納する第２のレジスタと、第１の期間において第２のレジスタに格納されている発生回数を出力させ且つ第２の期間において第１のレジスタに格納されている発生回数を出力させる切替回路とを各々有する複数のカウンタ回路と、発生回数を格納するメモリと、複数のカウンタ回路の出力のいずれかを選択してメモリに書き込みを行わせる出力切替回路とを有する。
【００７９】
このような観測回路を採用することによって、シミュレータからのデータ採取が高速化され、多数の観測ポイントについて上で述べたような発生回数を採取することができるようになる。これを用いて様々なデータ解析を行い、設計者による半導体回路設計を支援することができるようになる。
【００８０】
なお、上で述べた複数のカウンタ回路が、観測ポイントの指定に係るデータに含まれ且つ観測ポイントの単位を規定するデータから特定されるようにしてもよい。例えば近接するモジュールについての観測回路をひとまとめにして時分割で上記発生回数をメモリに書き込むことによって、データ採取の高速化が図られる。
【００８１】
また、上で述べた観測ポイントの指定に係るデータが、観測対象回路の階層構成における特定の階層の指定データを含むようにしてもよい。このようにすれば、設計者は簡単に観測ポイントを指定することができる。例えば特定階層以下の全てのモジュール等について上記発生回数を採取するなどの網羅的な指定ができる。但し、設計者が個別のモジュールを特別に指定しても良い。
【００８２】
さらに、上で述べた特定の状態が、ＲＡＭの停止状態、待機状態、読み込み状態又は書き込み状態、モジュールの停止状態、待機状態又は動作状態、若しくは複数のモジュールの状態組み合わせのいずれかを含むようにしてもよい。特に複数のモジュールの状態組み合わせについては、多数の信号配線を観測する必要があり、従来では不可能であったが、これにより多様な観測ができるようになっている。
【００８３】
第２の態様に係る半導体回路設計支援方法は、シミュレーションにおいて動作の観測が行われた観測対象回路における特定の配線についての動作率のデータを格納する動作率データ格納部から、処理対象配線の動作率のデータを読み出すステップと、配線毎に観測対象回路が実装される半導体チップ上の位置データを格納する観測対象回路データ格納部から、処理対象配線の位置データを読み出すステップと、処理対象配線の位置データに従って、当該処理対象配線の動作率に応じた表示データを半導体チップに相当する表示エリア上に配置した画像データを生成し、出力する出力ステップとを含む。
【００８４】
このような画像データを設計者に提示することによって、設計者は特定の時刻における配線の動作率の平面的な偏りなどを容易に把握することができるようになる。すなわち、電力消費の偏りなどを把握して、配置を見直したりすることができるようになる。
【００８５】
さらに、上で述べた表示データが、動作率について予め定められた複数の区分のうち該当する区分について予め規定されている色、輝度又は太さを有するようにしてもよい。このようにすれば、より分かりやすくなる。
【００８６】
さらに、上で述べた動作率データ格納部が、複数時点についての動作率のデータを格納するようにしてもよい。この場合、上で述べた出力ステップが、処理開始時刻から処理終了時刻までの各時点における動作率について実施されるようにしてもよい。これによって、動作率の平面的な偏りだけではなく、動作率の時間的な偏りについても把握が容易になる。
【００８７】
第３の態様に係る半導体回路設計支援方法は、シミュレーションにおいて動作の観測が行われた観測対象回路が実装される半導体チップ上における各セルの位置データと、各前記セルに接続される配線のデータとを格納する観測対象回路データ格納部から、処理対象セルに接続される配線を特定するステップと、観測対象回路における配線についての動作率のデータを格納する動作率データ格納部から、特定された配線の動作率のデータを読み出すステップと、特定された配線の動作率から、処理対象セルについての動作率を決定する動作率決定ステップと、観測対象回路データ格納部から、処理対象セルの位置データを読み出すステップと、処理対象セルの位置データに従って、当該処理対象セルについての動作率に応じた表示データを半導体チップに相当する表示エリア上に配置した画像データを生成し、出力する出力ステップとを含む。
【００８８】
このような画像データを設計者に提示することによって、設計者は特定の時刻におけるセルの動作率の平面的な偏りなどを容易に把握することができるようになる。すなわち、電力消費の偏りなどを把握して、セルの配置を見直したりすることができるようになる。
【００８９】
なお、上で述べた表示データが、動作率について予め定められた複数の区分のうち該当する区分について予め規定されている色又は輝度を有するようにしてもよい。より分かりやすくするためである。
【００９０】
また、上で述べた動作率データ格納部が、複数時点についての動作率のデータを格納するようにしてもよい。この場合、動作率決定ステップ及び出力ステップが、処理開始時刻から処理終了時刻までの各時点における動作率について実施されるようにしてもよい。このようにすれば、平面的な偏りだけではなく、動作率の時間的な偏りを特定することができるようになる。
【００９１】
さらに、上で述べた動作率決定ステップにおいて、上記特定された配線うち出力配線の動作率の最大値を処理対象セルの動作率と決定するようにしてもよい。
【００９２】
第４の態様に係る半導体回路設計支援方法は、シミュレーションにおいて動作の観測が行われた観測対象回路が実装される半導体チップ上における２つのセル（又は複数のセル）の特定の組み合わせ状態の発生回数を格納するシミュレーション結果格納部から、注目セルについて対応セルと特定の組み合わせ状態の発生回数とを読み出すステップと、観測対象回路が実装される半導体チップ上における各セルの位置データを格納する観測対象回路データ格納部から、注目セルと対応セルの位置データを読み出すステップと、注目セルの第１の表示データを当該注目セルの位置データに従って半導体チップに相当する表示エリア上に配置すると共に、対応セルの位置データに従って、当該対応セルについての発生回数に応じた第２の表示データを表示エリア上に配置した画像データを生成し、出力するステップとを含む。
【００９３】
このようにすれば、任意のセルの組み合わせについて特定の組み合わせ状態の発生頻度を、平面的なセル配置と併せて把握することが容易になる。
【００９４】
さらに、上で述べた特定の組み合わせ状態が、同時動作状態である場合もある。特に同時動作状態である場合には、同時動作中のセルの平面的な偏り、すなわち消費電力の平面的な偏りを容易に把握できるようになる。
【００９５】
さらに、上で述べた第２の表示データが、発生回数又は当該発生回数から算出される動作率について予め定められた複数の区分のうち該当する区分について予め規定されている色又は輝度を有するようにしてもよい。より分かりやすくするためである。
【００９６】
なお、上記方法をコンピュータハードウエアに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等の記憶媒体又は記憶装置に格納される。また、ネットワークなどを介してデジタル信号として配信される場合もある。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【００９７】
なお、半導体回路設計支援装置はコンピュータ装置であって、図２７に示すように、メモリ２５０１（記憶部）とＣＰＵ２５０３（処理部）とハードディスク・ドライブ（ＨＤＤ）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。ＯＳ及びＷｅｂブラウザを含むアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。必要に応じてＣＰＵ２５０３は、表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ２５０１に格納され、必要があればＨＤＤ２５０５に格納される。このようなコンピュータは、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００９８】
（付記１）
シミュレーションにおいて動作の観測が行われる観測対象回路における観測ポイントの指定を受け付け、当該観測ポイントの指定に係るデータを記憶装置に格納するステップと、
前記記憶装置に格納されている前記観測ポイントの指定に係るデータに従って観測回路が前記観測対象回路に接続されるように、観測対象回路データ格納部に格納されている前記観測対象回路の回路データに対して前記観測回路の回路データを付加し、前記観測回路の回路データを含む前記観測対象回路の回路データをシミュレーション用データ格納部に格納するステップと、
コンピュータに実行させ、
前記観測回路が、
特定の観測ポイントにおける特定の状態の、第１の期間における発生回数を格納する第１のレジスタと、前記特定の観測ポイントにおける前記特定の状態の、第２の期間における発生回数を格納する第２のレジスタと、前記第１の期間において前記第２のレジスタに格納されている前記発生回数を出力させ且つ前記第２の期間において前記第１のレジスタに格納されている前記発生回数を出力させる切替回路とを各々有する複数のカウンタ回路と、
前記発生回数を格納するメモリと、
前記複数のカウンタ回路の出力のいずれかを選択して前記メモリに書き込みを行わせる出力切替回路と、
を有する
半導体回路設計支援プログラム。
【００９９】
（付記２）
前記複数のカウンタ回路が、前記観測ポイントの指定に係るデータに含まれ且つ観測ポイントの単位を規定するデータから特定される
付記１記載の半導体回路設計支援プログラム。
【０１００】
（付記３）
前記観測ポイントの指定に係るデータが、前記観測対象回路の階層構成における特定の階層の指定データを含む
付記１記載の半導体回路設計支援プログラム。
【０１０１】
（付記４）
前記特定の状態が、ＲＡＭの停止状態、待機状態、読み込み状態又は書き込み状態、モジュールの停止状態、待機状態又は動作状態、若しくは複数のモジュールの状態組み合わせのいずれかを含む
付記１記載の半導体回路設計支援プログラム。
【０１０２】
（付記５）
コンピュータにより実行される半導体回路設計支援方法であって、
シミュレーションにおいて動作の観測が行われる観測対象回路における観測ポイントの指定を受け付け、当該観測ポイントの指定に係るデータを記憶装置に格納するステップと、
前記記憶装置に格納されている前記観測ポイントの指定に係るデータに従って観測回路が前記観測対象回路に接続されるように、観測対象回路データ格納部に格納されている前記観測対象回路の回路データに対して前記観測回路の回路データを付加し、前記観測回路の回路データを含む前記観測対象回路の回路データをシミュレーション用データ格納部に格納するステップと、
を含み、
前記観測回路が、
特定の観測ポイントにおける特定の状態の、第１の期間における発生回数を格納する第１のレジスタと、前記特定の観測ポイントにおける前記特定の状態の、第２の期間における発生回数を格納する第２のレジスタと、前記第１の期間において前記第２のレジスタに格納されている前記発生回数を出力させ且つ前記第２の期間において前記第１のレジスタに格納されている前記発生回数を出力させる切替回路とを各々有する複数のカウンタ回路と、
前記発生回数を格納するメモリと、
前記複数のカウンタ回路の出力のいずれかを選択して前記メモリに書き込みを行わせる出力切替回路と、
を有する
半導体回路設計支援方法。
【０１０３】
（付記６）
シミュレーションにおいて動作の観測が行われる観測対象回路における観測ポイントの指定を受け付け、当該観測ポイントの指定に係るデータを記憶装置に格納する手段と、
前記記憶装置に格納されている前記観測ポイントの指定に係るデータに従って観測回路が前記観測対象回路に接続されるように、観測対象回路データ格納部に格納されている前記観測対象回路の回路データに対して前記観測回路の回路データを付加し、前記観測回路の回路データを含む前記観測対象回路の回路データをシミュレーション用データ格納部に格納する手段と、
を有し、
前記観測回路が、
特定の観測ポイントにおける特定の状態の、第１の期間における発生回数を格納する第１のレジスタと、前記特定の観測ポイントにおける前記特定の状態の、第２の期間における発生回数を格納する第２のレジスタと、前記第１の期間において前記第２のレジスタに格納されている前記発生回数を出力させ且つ前記第２の期間において前記第１のレジスタに格納されている前記発生回数を出力させる切替回路とを各々有する複数のカウンタ回路と、
前記発生回数を格納するメモリと、
前記複数のカウンタ回路の出力のいずれかを選択して前記メモリに書き込みを行わせる出力切替回路と、
を有する
半導体回路設計支援装置。
【０１０４】
（付記７）
シミュレーションにおいて動作の観測が行われた観測対象回路における特定の配線についての動作率のデータを格納する動作率データ格納部から、処理対象配線の動作率のデータを読み出すステップと、
配線毎に前記観測対象回路が実装される半導体チップ上の位置データを格納する観測対象回路データ格納部から、前記処理対象配線の位置データを読み出すステップと、
前記処理対象配線の位置データに従って、当該処理対象配線の動作率に応じた表示データを前記半導体チップに相当する表示エリア上に配置した画像データを生成し、出力する出力ステップと、
をコンピュータに実行させるための半導体回路設計支援プログラム。
【０１０５】
（付記８）
前記表示データが、前記動作率について予め定められた複数の区分のうち該当する区分について予め規定されている色、輝度又は太さを有する
付記７記載の半導体回路設計支援プログラム。
【０１０６】
（付記９）
前記動作率データ格納部が、複数時点についての動作率のデータを格納しており、
前記出力ステップが、
処理開始時刻から処理終了時刻までの各時点における動作率について実施される
付記７記載の半導体回路設計支援プログラム。
【０１０７】
（付記１０）
シミュレーションにおいて動作の観測が行われた観測対象回路における特定の配線についての動作率のデータを格納する動作率データ格納部から、処理対象配線の動作率のデータを読み出すステップと、
配線毎に前記観測対象回路が実装される半導体チップ上の位置データを格納する観測対象回路データ格納部から、前記処理対象配線の位置データを読み出すステップと、
前記処理対象配線の位置データに従って、当該処理対象配線の動作率に応じた表示データを前記半導体チップに相当する表示エリア上に配置した画像データを生成し、出力する出力ステップと、
を含み、コンピュータに実行される半導体回路設計支援方法。
【０１０８】
（付記１１）
シミュレーションにおいて動作の観測が行われた観測対象回路における特定の配線についての動作率のデータを格納する動作率データ格納部から、処理対象配線の動作率のデータを読み出す手段と、
配線毎に前記観測対象回路が実装される半導体チップ上の位置データを格納する観測対象回路データ格納部から、前記処理対象配線の位置データを読み出す手段と、
前記処理対象配線の位置データに従って、当該処理対象配線の動作率に応じた表示データを前記半導体チップに相当する表示エリア上に配置した画像データを生成し、出力する出力手段と、
を有する半導体回路設計支援装置。
【０１０９】
（付記１２）
シミュレーションにおいて動作の観測が行われた観測対象回路が実装される半導体チップ上における各セルの位置データと、各前記セルに接続される配線のデータとを格納する観測対象回路データ格納部から、処理対象セルに接続される配線を特定するステップと、
前記観測対象回路における配線についての動作率のデータを格納する動作率データ格納部から、前記特定された配線の動作率のデータを読み出すステップと、
前記特定された配線の動作率から、前記処理対象セルについての動作率を決定する動作率決定ステップと、
前記観測対象回路データ格納部から、前記処理対象セルの位置データを読み出すステップと、
前記処理対象セルの位置データに従って、当該処理対象セルについての動作率に応じた表示データを前記半導体チップに相当する表示エリア上に配置した画像データを生成し、出力する出力ステップと、
をコンピュータに実行させるための半導体回路設計支援プログラム。
【０１１０】
（付記１３）
前記表示データが、前記動作率について予め定められた複数の区分のうち該当する区分について予め規定されている色又は輝度を有する
付記１２記載の半導体回路設計支援プログラム。
【０１１１】
（付記１４）
前記動作率データ格納部が、複数時点についての動作率のデータを格納しており、
前記動作率決定ステップ及び出力ステップが、
処理開始時刻から処理終了時刻までの各時点における動作率について実施される
付記１２記載の半導体回路設計支援プログラム。
【０１１２】
（付記１５）
前記動作率決定ステップにおいて、前記特定された配線うち出力配線の動作率の最大値を前記処理対象セルの動作率と決定する
付記１２記載の半導体回路設計支援プログラム。
【０１１３】
（付記１６）
シミュレーションにおいて動作の観測が行われた観測対象回路が実装される半導体チップ上における各セルの位置データと、各前記セルに接続される配線のデータとを格納する観測対象回路データ格納部から、処理対象セルに接続される配線を特定するステップと、
前記観測対象回路における配線についての動作率のデータを格納する動作率データ格納部から、前記特定された配線の動作率のデータを読み出すステップと、
前記特定された配線の動作率から、前記処理対象セルについての動作率を決定する動作率決定ステップと、
前記観測対象回路データ格納部から、前記処理対象セルの位置データを読み出すステップと、
前記処理対象セルの位置データに従って、当該処理対象セルについての動作率に応じた表示データを前記半導体チップに相当する表示エリア上に配置した画像データを生成し、出力する出力ステップと、
を含み、コンピュータにより実行される半導体回路設計支援方法。
【０１１４】
（付記１７）
シミュレーションにおいて動作の観測が行われた観測対象回路が実装される半導体チップ上における各セルの位置データと、各前記セルに接続される配線のデータとを格納する観測対象回路データ格納部から、処理対象セルに接続される配線を特定する手段と、
前記観測対象回路における配線についての動作率のデータを格納する動作率データ格納部から、前記特定された配線の動作率のデータを読み出す手段と、
前記特定された配線の動作率から、前記処理対象セルについての動作率を決定する動作率決定手段と、
前記観測対象回路データ格納部から、前記処理対象セルの位置データを読み出す手段と、
前記処理対象セルの位置データに従って、当該処理対象セルについての動作率に応じた表示データを前記半導体チップに相当する表示エリア上に配置した画像データを生成し、出力する出力手段と、
を有する半導体回路設計支援装置。
【０１１５】
（付記１８）
シミュレーションにおいて動作の観測が行われた観測対象回路が実装される半導体チップ上における２つのセルの特定の組み合わせ状態の発生回数を格納するシミュレーション結果格納部から、注目セルについて対応セルと前記特定の組み合わせ状態の発生回数とを読み出すステップと、
前記観測対象回路が実装される半導体チップ上における各セルの位置データを格納する観測対象回路データ格納部から、前記注目セルと前記対応セルの位置データを読み出すステップと、
前記注目セルの第１の表示データを当該注目セルの位置データに従って前記半導体チップに相当する表示エリア上に配置すると共に、前記対応セルの位置データに従って、当該対応セルについての発生回数に応じた第２の表示データを前記表示エリア上に配置した画像データを生成し、出力するステップと、
をコンピュータに実行させるための半導体回路設計支援プログラム。
【０１１６】
（付記１９）
前記特定の組み合わせ状態が、同時動作状態である
付記１８記載の半導体回路設計支援プログラム。
【０１１７】
（付記２０）
前記第２の表示データが、前記発生回数又は当該発生回数から算出される動作率について予め定められた複数の区分のうち該当する区分について予め規定されている色又は輝度を有する
付記１８記載の半導体回路設計支援プログラム。
【０１１８】
（付記２１）
シミュレーションにおいて動作の観測が行われた観測対象回路が実装される半導体チップ上における２つのセルの特定の組み合わせ状態の発生回数を格納するシミュレーション結果格納部から、注目セルについて対応セルと前記特定の組み合わせ状態の発生回数とを読み出すステップと、
前記観測対象回路が実装される半導体チップ上における各セルの位置データを格納する観測対象回路データ格納部から、前記注目セルと前記対応セルの位置データを読み出すステップと、
前記注目セルの第１の表示データを当該注目セルの位置データに従って前記半導体チップに相当する表示エリア上に配置すると共に、前記対応セルの位置データに従って、当該対応セルについての発生回数に応じた第２の表示データを前記表示エリア上に配置した画像データを生成し、出力するステップと、
を含み、コンピュータに実行される半導体回路設計支援方法。
【０１１９】
（付記２２）
シミュレーションにおいて動作の観測が行われた観測対象回路が実装される半導体チップ上における２つのセルの特定の組み合わせ状態の発生回数を格納するシミュレーション結果格納部から、注目セルについて対応セルと前記特定の組み合わせ状態の発生回数とを読み出す手段と、
前記観測対象回路が実装される半導体チップ上における各セルの位置データを格納する観測対象回路データ格納部から、前記注目セルと前記対応セルの位置データを読み出す手段と、
前記注目セルの第１の表示データを当該注目セルの位置データに従って前記半導体チップに相当する表示エリア上に配置すると共に、前記対応セルの位置データに従って、当該対応セルについての発生回数に応じた第２の表示データを前記表示エリア上に配置した画像データを生成し、出力する手段と、
を有する半導体回路設計支援装置。
【図面の簡単な説明】
【０１２０】
【図１】本発明の実施の形態に係る半導体回路設計支援装置の機能ブロック図である。
【図２】本発明の実施の形態において採用される観測回路の回路例を示す図である。
【図３】本発明の実施の形態において用いられる観測回路の効果を説明するための図である。
【図４】本発明の実施の形態におけるメインの処理フローを示す図である。
【図５】ＲＡＭの状態を観測するために必要な信号の例を示す図である。
【図６】ＲＡＭの状態を特定するための信号の組み合わせを示す図である。
【図７】モジュールやＦＦの状態を観測するために必要な信号の例を示す図である。
【図８】モジュールやＦＦの状態を特定するための信号の組み合わせを示す図である。
【図９】モジュールの組み合わせについての状態を特定するための、各モジュールなどの状態の組み合わせを示す図である。
【図１０】生成される観測回路を模式的に示す図である。
【図１１】観測対象回路を模式的に示す図である。
【図１２】シミュレーション用の回路データを模式的に示す図である。
【図１３】シミュレーションアクセラレータによるカウント結果の一例を表す図である。
【図１４】本発明の実施の形態におけるメインの処理フローを示す図である。
【図１５】動作率データ格納部に格納されるデータの一例を示す図である。
【図１６】表示処理の処理フローを示す図である。
【図１７】観測対象回路データ格納部に格納されるデータの一例を示す図である。
【図１８】観測対象回路データ格納部に格納されるデータの一例を示す図である。
【図１９】観測対象回路データ格納部に格納されるデータの一例を示す図である。
【図２０】配線毎の動作率の表示例を示す図である。
【図２１】セル毎の動作率の表示例を示す図である。
【図２２】表示処理の処理フローを示す図である。
【図２３】セルの同時動作率の表示例を示す図である。
【図２４】表示処理の処理フローを示す図である。
【図２５】配線毎の動作率の他の表示例を示す図である。
【図２６】セル毎の動作率の他の表示例を示す図である。
【図２７】コンピュータの機能ブロック図である。
【図２８】アクセラレータの一般的な機能を説明するための図である。
【図２９】従来技術の問題点を説明するための図である。
【図３０】従来技術の問題点を説明するための図である。
【図３１】従来技術の問題点を説明するための図である。
【符号の説明】
【０１２１】
１１  観測ポイント設定部    １２  観測ポイント指定データ格納部
１３  観測対象回路データ格納部    １４  セルライブラリ格納部
１５  観測回路生成部    １６  観測回路データ格納部
１７  観測回路付加処理部    １８  シミュレーション回路データ格納部
１９  シミュレーション結果格納部    ２０  波形観測ポイント設定部
２１  波形観測ポイント設定データ格納部    ２２  動作率算出部
２３  動作率データ格納部    ２４  表示処理部
２５  データ出力部    ２６  シミュレーション結果取得部
２００  シミュレーションアクセラレータ
【図１】
0005151685.tif 000002
【図２】
0005151685.tif 000003
【図３】
0005151685.tif 000004
【図４】
0005151685.tif 000005
【図５】
0005151685.tif 000006
【図６】
0005151685.tif 000007
【図７】
0005151685.tif 000008
【図８】
0005151685.tif 000009
【図９】
0005151685.tif 000010
【図１０】
0005151685.tif 000011
【図１１】
0005151685.tif 000012
【図１２】
0005151685.tif 000013
【図１３】
0005151685.tif 000014
【図１４】
0005151685.tif 000015
【図１５】
0005151685.tif 000016
【図１６】
0005151685.tif 000017
【図１７】
0005151685.tif 000018
【図１８】
0005151685.tif 000019
【図１９】
0005151685.tif 000020
【図２０】
0005151685.tif 000021
【図２１】
0005151685.tif 000022
【図２２】
0005151685.tif 000023
【図２３】
0005151685.tif 000024
【図２４】
0005151685.tif 000025
【図２５】
0005151685.tif 000026
【図２６】
0005151685.tif 000027
【図２７】
0005151685.tif 000028
【図２８】
0005151685.tif 000029
【図２９】
0005151685.tif 000030
【図３０】
0005151685.tif 000031
【図３１】
0005151685.tif 000032