JP2012164363A - 半導体回路設計支援プログラム - Google Patents

半導体回路設計支援プログラム Download PDF

Info

Publication number
JP2012164363A
JP2012164363A JP2012119636A JP2012119636A JP2012164363A JP 2012164363 A JP2012164363 A JP 2012164363A JP 2012119636 A JP2012119636 A JP 2012119636A JP 2012119636 A JP2012119636 A JP 2012119636A JP 2012164363 A JP2012164363 A JP 2012164363A
Authority
JP
Japan
Prior art keywords
data
circuit
observation
operation rate
cell
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.)
Pending
Application number
JP2012119636A
Other languages
English (en)
Inventor
Takahide Yoshikawa
隆英 吉川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012119636A priority Critical patent/JP2012164363A/ja
Publication of JP2012164363A publication Critical patent/JP2012164363A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】現実的な時間内に、観測対象回路の多数の観測ポイントについて観測データをシミュレーションアクセラレータから採取できるようにする。
【解決手段】シミュレーションにおいて動作の観測が行われる観測対象回路における観測ポイントの指定を受け付け、当該観測ポイントの指定に係るデータに従って観測回路が観測対象回路に接続されるように、観測対象回路データ格納部に格納されている観測対象回路の回路データに対して観測回路の回路データを付加する。この際、観測回路は、ダブルバッファ構成を採用しており、特定の観測ポイントにおける特定の状態の、第1の期間における発生回数と、特定の観測ポイントにおける特定の状態の、第2の期間における発生回数とを交互に、RAMに出力して格納する。
【選択図】図1

Description

本発明は、半導体回路の設計支援技術に関し、より詳しくはシミュレーションにおけるデータ採取技術及び採取データの可視化技術に関する。
近年、例えばプロセッサなどでは発熱・消費電力の増大が大きな問題となっている。それに伴い、平均的な発熱や消費電力の振る舞いを検出し、可視化又は自動修正を行うツールが数多く提案されてきた。しかし、発熱や電力は平均的な振る舞いだけではなく、その時間的・空間的な偏りも大きな問題となりうる。例えば、瞬間的な電力負荷の変動があれば、ノイズや電圧低下による誤動作が発生する。また、局所的な発熱があれば、局所的に冷却が間に合わないため熱暴走や破壊が発生する可能性がある。そこで、チップ設計段階でいくつかのベンチマーク・テストを実施し、いつ、どこに大きな負荷が発生するかを明らかにし、特定部位及び特定時間に負荷が偏ることがないように、設計・実装の最適化を行うことが望まれている。
一方、プロセッサ等の設計変更には膨大なコストと非常に長い時間が掛かるため、プロセッサ等の内部の振る舞いの調査(例えば論理検証及び電力・発熱解析)はチップを実際に作成する前に行われている。しかし、十億以上のトランジスタを含むような近年のプロセッサ等の内部をソフトウェア・シミュレーションによって調査するとなると、実際には数GHzなのに、シミュレーションにおける動作速度は数Hzにもならない。そこで、ハードウエアによるシミュレーションのアクセラレーションを行うツールが多くのベンダーから提供されている。
このようなアクセラレータを使用すると、ソフトウェア・シミュレータの1万倍程度の速度で、シミュレーション結果としてチップ内部の信号波形が得られる。図28に模式的に示すように、WireAとWireBとがAND回路という論理回路の入力配線として規定され、WireCがAND回路の出力配線と規定されている場合に、アクセラレータではこのような論理回路に所定の入力パターンを入力して、図28右側に示すようなWireA、WireB及びWireCの信号波形が観測結果として得られる。
ここでプロセッサ等の動作電力は、配線の観測波形(=信号変化回数)、配線の配線容量、配線に繋がっている論理セル(ANDやORなど)の静電容量から、「電力∝(配線容量+セル静電容量)×信号変化回数」によって計算することが出来る。しかし、十億以上の論理セルの動き全てを信号波形や個々のセルの電力値としてそのまま設計者に呈示しても、設計者は全ての情報に目を通すことが出来ない。
一方、チップの電力を最適化するには、(1)総電力・総発熱削減(具体的には、チップ全体の平均電力・発熱を下げるための論理最適化・実装最適化(すなわちセルサイジング、ファクタリング、ピンスワッピングなど))、(2)電力・発熱の偏り削減(具体的には、同時に動作する確率の高いセル同士、動作率の高いセル同士をあまり近くに多量に配置してしまうと、電力に偏りが生じてしまう。これは局所的な電圧変動や発熱に繋がり誤動作の原因となってしまう。この偏りを平滑化させるための論理最適化、実装最適化もあり得る。すなわち、セル再配置、論理変更などが実施される。)を考慮しなければならない。
これまでにも、総電力・総発熱を削減するための手法は数多く提案されてきている。自動的に電力最適化を行うツールとしては、既に販売されている製品が存在している。また、設計者に対し電力や発熱の様子を呈示することによって、設計改善が必要なポイントを絞り込んでもらうためのツールも幾つか提案されている。
また幾つかの文献では、例えば、(1)観測対象定義(クロックゲーティングやチップイネーブル信号など、特徴的な信号を抽出する。)、(2)観測回路付加(各観測信号に対し、カウンタ回路とその結果を格納するレジスタを付加する。)、(3)カウンタ観測(カウンタ回路付きの論理をシミュレータ上で動作させる。)、(4)ピーク検出(カウント結果から、動作に大きな変化が見られた特徴的な箇所を特定する。)、(5)動作率測定(検出されたポイントの詳細な信号波形を採取する。)、(6)結果表示(信号波形と実装情報(セルや配線の静電容量)から電力値を算出し、その数値結果を設計者に提示する。)といった処理を行う技術が開示されている。
特開2008−65382号公報 特開2008−65496号公報
しかし、上で述べた従来技術では平均的な動作電力を落とすために必要な情報を得ることは出来るが、偏りを平滑化するために必要な情報を得ることは出来ない。これは、(1)扱うべきデータ量が多すぎてデータを採取しきれていない、(2)多量のデータを採取しても、それを適切な形態で設計者に提示できていない、という問題のためである。
(1)について具体的に述べると、例えばモジュールA及びBがどの位動作していたか独立にデータを採取していたとする。図29にその結果を表す。すなわち、時刻1までにモジュールAもモジュールBも1回動作している。同様に時刻1から時刻2までに、モジュールAもモジュールBも1回作している。そうすると時刻0乃至1の平均電力と、時刻1乃至2の平均電力は同じ値となる。しかし、局所的な電力・発熱を考えた場合、モジュールA及びBがばらばらに動作する時刻1乃至2よりも、それらが同時に動作する時刻0乃至1の方が多くの負荷が掛かっているといえる。即ち、電力の偏りの平滑化を行うためには、複数のモジュール(例えば近隣のモジュール)が、いつ、どれだけ同時動作していたかを知らなくてはならない。しかし、チップ内には多数のモジュールが組み込まれているため、その組み合わせを全て選択することは従来手法では非現実的となっている。
これは、図30に示すように、ゲーティングクロック信号など特徴的な信号配線に対して、パルス数をカウントするカウンタ(図31に示すようにカウント値を保持するレジスタを含む)のみを単純に付加しているからである。具体的には、アクセラレータ上に配置され且つカウント値を保持する例えば32ビットレジスタからカウント値を読み出すのに、1つのレジスタにつき1回1乃至2秒のオーバーヘッドがかかってしまう。そして図30に示すようにアクセラレータ上に分散配置された例えば20万個のレジスタからカウント値を1回読み出すのには、20万×1秒=20万秒=56時間かかってしまう。このように、従来手法では多量のデータを採取すること自体が困難である。
また、(2)について具体的に述べると、数十万、数百万通りのモジュール組み合わせについて動作率を全て採取したとしても、それらを、単なる数値の羅列や、モジュール毎の電力グラフとして提示されても、設計者はその全てを把握することは出来ない。せいぜい数百モジュールを解析するのが限度となってしまう。
従って、本発明の目的は、現実的な時間内に、観測対象回路の多数の観測ポイントについて観測データをシミュレーションアクセラレータから採取できるようにするための半導体回路設計支援技術を提供することである。
また、本発明の他の目的は、観測対象回路の観測ポイントから採取された多量のデータを設計者が容易に把握可能な態様で提示することができるようにするための半導体回路設計支援技術を提供することである。
第1の態様に係る半導体回路設計支援方法は、シミュレーションにおいて動作の観測が行われる観測対象回路における観測ポイントの指定を受け付け、当該観測ポイントの指定に係るデータを記憶装置に格納するステップと、記憶装置に格納されている観測ポイントの指定に係るデータに従って観測回路が観測対象回路に接続されるように、観測対象回路データ格納部に格納されている観測対象回路の回路データに対して観測回路の回路データを付加し、観測回路の回路データを含む観測対象回路の回路データをシミュレーション用データ格納部に格納するステップと含む。
第2の態様に係る半導体回路設計支援方法は、シミュレーションにおいて動作の観測が行われた観測対象回路における特定の配線についての動作率のデータを格納する動作率データ格納部から、処理対象配線の動作率のデータを読み出すステップと、配線毎に観測対象回路が実装される半導体チップ上の位置データを格納する観測対象回路データ格納部から、処理対象配線の位置データを読み出すステップと、処理対象配線の位置データに従って、当該処理対象配線の動作率に応じた表示データを半導体チップに相当する表示エリア上に配置した画像データを生成し、出力する出力ステップとを含む。
第3の態様に係る半導体回路設計支援方法は、シミュレーションにおいて動作の観測が行われた観測対象回路が実装される半導体チップ上における各セルの位置データと、各前記セルに接続される配線のデータとを格納する観測対象回路データ格納部から、処理対象セルに接続される配線を特定するステップと、観測対象回路における配線についての動作率のデータを格納する動作率データ格納部から、特定された配線の動作率のデータを読み出すステップと、特定された配線の動作率から、処理対象セルについての動作率を決定する動作率決定ステップと、観測対象回路データ格納部から、処理対象セルの位置データを読み出すステップと、処理対象セルの位置データに従って、当該処理対象セルについての動作率に応じた表示データを半導体チップに相当する表示エリア上に配置した画像データを生成し、出力する出力ステップとを含む。
第4の態様に係る半導体回路設計支援方法は、シミュレーションにおいて動作の観測が行われた観測対象回路が実装される半導体チップ上における2つのセルの特定の組み合わせ状態の発生回数を格納するシミュレーション結果格納部から、注目セルについて対応セルと特定の組み合わせ状態の発生回数とを読み出すステップと、観測対象回路が実装される半導体チップ上における各セルの位置データを格納する観測対象回路データ格納部から、注目セルと対応セルの位置データを読み出すステップと、注目セルの第1の表示データを当該注目セルの位置データに従って半導体チップに相当する表示エリア上に配置すると共に、対応セルの位置データに従って、当該対応セルについての発生回数に応じた第2の表示データを表示エリア上に配置した画像データを生成し、出力するステップとを含む。
現実的な時間内に、観測対象回路の多数の観測ポイントについて観測データをシミュレーションアクセラレータから採取できるようになる。
また、他の側面によれば、観測対象回路の観測ポイントから採取された多量のデータを設計者が容易に把握可能な態様で提示することができるようになる。
本発明の実施の形態に係る半導体回路設計支援装置の機能ブロック図である。 本発明の実施の形態において採用される観測回路の回路例を示す図である。 本発明の実施の形態において用いられる観測回路の効果を説明するための図である。 本発明の実施の形態におけるメインの処理フローを示す図である。 RAMの状態を観測するために必要な信号の例を示す図である。 RAMの状態を特定するための信号の組み合わせを示す図である。 モジュールやFFの状態を観測するために必要な信号の例を示す図である。 モジュールやFFの状態を特定するための信号の組み合わせを示す図である。 モジュールの組み合わせについての状態を特定するための、各モジュールなどの状態の組み合わせを示す図である。 生成される観測回路を模式的に示す図である。 観測対象回路を模式的に示す図である。 シミュレーション用の回路データを模式的に示す図である。 シミュレーションアクセラレータによるカウント結果の一例を表す図である。 本発明の実施の形態におけるメインの処理フローを示す図である。 動作率データ格納部に格納されるデータの一例を示す図である。 表示処理の処理フローを示す図である。 観測対象回路データ格納部に格納されるデータの一例を示す図である。 観測対象回路データ格納部に格納されるデータの一例を示す図である。 観測対象回路データ格納部に格納されるデータの一例を示す図である。 配線毎の動作率の表示例を示す図である。 セル毎の動作率の表示例を示す図である。 表示処理の処理フローを示す図である。 セルの同時動作率の表示例を示す図である。 表示処理の処理フローを示す図である。 配線毎の動作率の他の表示例を示す図である。 セル毎の動作率の他の表示例を示す図である。 コンピュータの機能ブロック図である。 アクセラレータの一般的な機能を説明するための図である。 従来技術の問題点を説明するための図である。 従来技術の問題点を説明するための図である。 従来技術の問題点を説明するための図である。
図1に、本発明の一実施の形態に係る半導体回路設計支援装置の機能ブロック図を示す。本半導体回路設計支援装置は、設計を行っている半導体回路(以下、観測対象回路と呼ぶ)において観測を行うべき配線の個別指定又は指定ルール(観測回路に含まれるカウンタ回路のグループ化ルールも含む)を設定する観測ポイント設定部11と、観測ポイント設定部11によって設定された観測ポイント指定データを格納する観測ポイント指定データ格納部12と、以下で述べる本実施の形態特有の観測回路のデータを格納するセルライブラリ格納部14と、観測ポイント指定データ格納部12とセルライブラリ格納部14とに格納されているデータを用いて観測回路のデータを生成する観測回路生成部15と、観測回路生成部15によって生成された観測回路のデータを格納する観測回路データ格納部16と、観測対象回路のデータを格納する観測対象回路データ格納部13と、観測ポイント指定データ格納部12と観測回路データ格納部16と観測対象回路データ格納部13とに格納されているデータを用いて各観測回路を観測対象回路の観測ポイントの配線に付加する処理を実施する観測回路付加処理部17と、観測回路付加処理部17の処理結果が格納されているシミュレーション回路データ格納部18と、シミュレーション回路データ格納部18に格納されているデータをシミュレーションアクセラレータ200に出力するデータ出力部25と、シミュレーションアクセラレータ200からシミュレーション結果を取得するシミュレーション結果取得部26と、シミュレーションアクセラレータ200の処理結果であるカウント値及び波形データを格納するシミュレーション結果格納部19と、シミュレーション結果格納部19に格納されているデータ(ここではカウント値)を用いて波形観測ポイント(すなわち波形観測期間)を設定するための処理を実施する波形観測ポイント設定部20と、波形観測ポイント設定部20の処理結果を格納する波形観測ポイント設定データ格納部21と、シミュレーション結果格納部19に格納されているデータ(ここでは波形データ)を用いて波形観測ポイントにおける動作率を算出する動作率算出部22と、動作率算出部22によって算出された動作率のデータを格納する動作率データ格納部23と、動作率データ格納部23と観測対象回路データ格納部13とシミュレーション結果格納部19とに格納されているデータを用いて本実施の形態特有の各種表示形態にてシミュレーション結果をユーザに提示するための処理を実施する表示処理部24とを有する。
なお、シミュレーションアクセラレータ200は、従来と同様のものであり、観測回路によってカウントされたカウント値を出力する場合と、従来と同様に指定された配線について波形データを出力する場合とがある。シミュレーションアクセラレータ200の詳細については周知であるからこれ以上述べない。
次に、図2及び図3を用いて本実施の形態特有の観測回路について説明しておく。従来技術の欄で述べた従来のカウンタ回路の問題点を解決すべく、本実施の形態では、図2に示すような観測回路を採用する。すなわち、本実施の形態に係る観測回路は、それぞれ観測ポイントに接続される複数のカウンタ回路301a乃至301c(図2では3つだが3つに限定されるものはない)と、カウンタ回路301a乃至301cの出力のうちいずれかの出力を選択するマルチプレクサ(MUX)303と、マルチプレクサ303を介してカウンタ回路301a乃至301cのカウント値を格納するRAM(Random Access Memory)304とを有する。RAM304に格納された、カウンタ回路301a乃至301cのカウント値は、シミュレーションアクセラレータ200によって読み出される。また、各カウンタ回路は、カウンタ回路に含まれるカウンタ(図示せず)の第1の期間の出力を格納するレジスタAと、同じくカウンタ回路に含まれるカウンタ(図示せず)の第2の期間の出力を格納するレジスタBと、カウンタからの出力を第1の期間にはレジスタAに出力させ、カウンタからの出力を第2の期間にはレジスタBに出力させるマルチプレクサ(MUX)3011と、第2の期間に、レジスタAに格納されているカウント値を出力させ、第1の期間に、レジスタBに格納されているカウント値を出力させるマルチプレクサ(MUX)3014とを有する。このように本実施の形態に係るカウンタ回路は、ダブルバッファカウンタ構成を採用している。
図2に示したカウンタ回路は、(1)第1の期間においては、カウンタのカウント値をレジスタAに書き込み、レジスタBに格納されているカウント値を、マルチプレクサ303に出力する。(2)マルチプレクサ303は、グループを構成するカウンタ回路301a乃至301cのうち1つを順番に選択して、RAM304に対し、カウンタ回路301a乃至301cのレジスタに書き込まれたカウント値を書き込む。(3)第2の期間においては、カウンタのカウント値をレジスタBに書き込み、レジスタAに格納されているカウント値を、マルチプレクサ303に出力する。(4)マルチプレクサ303は、グループを構成するカウンタ回路301a乃至301cのうち1つを順番に選択して、RAM304に対し、カウンタ回路301a乃至301cのレジスタに書き込まれたカウント値を書き込む。このような処理を繰り返す。
図2に示したように本実施の形態ではRAM304を採用している。RAM304も実際にはアクセラレータ基板上に複数設けられることになるが、それでも従来技術の欄で述べたレジスタよりもまとまっている。このため、図3に示すように、一度の読み出し処理(すなわち通信処理)で、800Kバイト程度のデータをまとめて2乃至3秒程度で取り出すことができる。32ビットカウンタを用いた場合、レジスタ1個分で4バイトであるから、20万個分のデータを2乃至3秒程度で読み出すことができるようになる。従来技術の欄で述べたように、レジスタから直接読み出しを行うとレジスタ1個につき1乃至2秒程度かかるのと比べて非常に高速読み出しが可能となっている。
また、シミュレーションアクセラレータ200上のRAM304も一度に800Kバイト書き込めるほどの帯域を有していないので、上で述べたようにダブルバッファカウンタを採用して、カウンタ回路内においてレジスタを切り替え、さらにカウンタ回路のグループにおいて時分割で順次RAM304にカウント値を書き込むような手法を用いて、RAM304へのデータ書き込み帯域を有効活用している。
さらに、同一グループに属するカウンタ回路301a乃至301cは、同じ書き込み先のRAM304にマルチプレクサ303を介して接続されている。カウンタ回路301a乃至301cは、それぞれの観測対象信号(即ち観測対象配線)の近くに配置される。そのためアクセラレータ基板上に分散配置される。しかし、カウント値をRAM304に書き出すときもできるだけ近いカウンタ回路301a乃至301cから書き込む方が効率的である。従って、本実施の形態では、観測対象信号の近くに配置されているカウンタ回路301a乃至301cをグループ化している。観測対象信号が近いというのは、観測対象回路における特定の階層下におけるモジュール毎といったように決定される。
このように、図2のような観測回路を採用することによって高速に観測結果であるカウント値を採取することができるようになるので、観測ポイント(即ち観測対象配線)の数も増加させることも可能となる。
次に、図4乃至図26を用いて図1に示した半導体回路設計支援装置の処理内容について説明する。まず、観測ポイント設定部11は、ユーザから観測ポイント指定データの入力を受け付け、観測ポイント指定データ格納部12に格納する(図4:ステップS1)。従来技術では、クロックゲーティングやチップイネーブル信号などの特徴的な信号を1本だけ選択していたが、これは上で述べたように観測回路からのデータ採取時間の問題があるためである。これに対して、本実施の形態では、上で述べた観測回路を採用することによって多数の観測ポイントを指定することができる。例えば、図5乃至図9に示すような観測ポイントを指定することができる。
(a)RAMの各種状態
図5に模式的に示すように、RAMには、チップイネーブル信号(CE)とライトイネーブル信号(WE)とクロック信号(CK)とが入力されており、RAMの状態を特定するためには、チップイネーブル信号及びライトイネーブル信号に加えて、上位のクロック供給源(Clock BUF)へのクロック供給停止信号(CKIH)を観測することになる。この3つの信号の状態の組み合わせによって、図6に示すように、停止、待機、読み込み及び書き込みの状態が特定される。図6において「x」は「0」でも「1」でもよいことを表している。本実施の形態では、これらの各々の状態が何サイクル発生したのかを観測する。
(b)論理モジュール及びFF(Flip Flop)のクロックゲーティングとInh信号
各論理モジュール(Mod)及びFFには、図7で示すように、クロック信号(CK)と論理モジュール及びFF単体の動作を止めるModIH信号が入力されており、各論理モジュール及びFFの状態を特定するためには、ModIH信号に加えて、上位のクロック供給源(Clock BUF)へのクロック供給停止信号(CKIH)を観測することになる。なお、CKIH信号によって論理モジュールやFFの動作を停止させると、より多くの電力を削減できるが、再度動作させるまでに時間が掛かってしまう。一方、ModIH信号で動作を止めると電力をあまり削減できないが、直ぐに再動作させることができる。
この2つの信号の状態の組み合わせによって、図8に示すように、各論理モジュールやFFの停止、起動及び動作の状態が特定される。本実施の形態では、これらの各々の状態が何サイクル発生したかを観測する。
(c)論理モジュール又はFFの組み合わせ
本実施の形態ではさらに、例えば隣接モジュールなど(実装レイアウト上でチップを格子状に分割し、その中のモジュールやFFを隣接とする)の組み合わせについて、図9に示すような同時実行、片方動作、同時停止などの9状態も観測できる。具体的には、モジュールAのCKIH信号及びModIH信号と、モジュールBのCKIH信号及びModIH信号とを観察することによって図9で示す9状態のいずれかを特定し、何サイクル発生したかを観測する。例えばモジュールAのCKIH信号=0且つModIH信号=0で、モジュールBのCKIH信号=0且つModIH信号=0であれば、同時動作という状態であることを特定できる。
なお、観測ポイントの指定の仕方としては、観測対象回路の階層定義に従って特定の階層以下の全てのRAMやモジュール等を観測ポイントとして指定するようにしても良い。例えば、最上位階層から、チップ全体、プロセッサコア、二次キャッシュ・ユニット、キャッシュコントローラといったような階層定義がなされている場合には、このような階層において第4階層以下の全モジュール等を観測単位として指定する。その他、モジュールなどの名称が一定の規則に従って付されている場合には、モジュール名称を指定して該当する全てのモジュールを観測ポイントとして特定するようにしても良い。
さらに、観測対象回路の内容を詳細に知っているようなユーザであれば、個別にモジュールなどを指定するようにしても良い。また、典型的な観測ポイント・テンプレートを用意しておき、それを選択するようにしてもよい。
観測ポイント設定部11は、このような観測ポイントの指定を受け付け、観測ポイントを指定するデータを、観測ポイント指定データ格納部12に格納する。
次に、観測回路生成部15は、セルライブラリ格納部14に格納されており且つ図2に示したような観測回路のデータを用いて、観測ポイント指定データ格納部12に格納されている観測ポイントを指定するデータに従った観測回路を生成し、生成した観測回路のデータ(すなわちネットリスト)を観測回路データ格納部16に格納する(ステップS3)。このステップでは、観測ポイントを指定するデータに従って、必要なだけの観測回路のカウンタ回路を用意し、グループ化する等の処理を行う。グループ化は、例えば、観測ポイントとして指定された階層の1つ下の階層に属する論理単位毎に行われる。
例えば、観測対象回路のモジュールAとモジュールBとが同じ論理単位に属している場合にはグループABという1つのグループを構成し、観測対象回路のモジュールCとモジュールDとが同じ論理単位に属している場合にはグループCDという1つのグループを構成するものとする。そして、モジュールAにおける2つの配線1及び2が状態を特定すべき配線として特定される場合には、そのためのカウンタ回路A12が用意される。また、モジュールBにおける2つの配線1及び3が状態を特定すべき配線として特定される場合には、そのためのカウンタ回路B13が用意される。そして、モジュールA及びBは1つのグループABを構成するため、カウンタ回路A12及びB13と、グループABのためのRAM_ABと、それらを繋ぐマルチプレクサ(MUX)と有する観測回路が用意される。また、モジュールCにおける2つの配線2及び3が状態を特定すべき配線として特定される場合には、そのためのカウンタ回路C23が用意される。また、モジュールDにおける配線3が状態を特定すべき配線として特定される場合には、そのためのカウンタ回路D3が用意される。そして、モジュールC及びDは1つのグループCDを構成するため、カウンタ回路C23及びD3と、グループCDのためのRAM_CDと、それらを繋ぐマルチプレクサ(MUX)と有する観測回路が用意される。このように用意される観測回路を図10に模式的に示す。なお、観測回路を制御する回路やRAMからデータを読み出すための回路なども付加される。
そして、観測回路付加処理部17は、観測ポイント指定データ格納部12に格納されている観測ポイントを指定するためのデータに従って、観測回路データ格納部16に格納された観測回路のデータ(すなわちネットリスト)を、観測対象回路データ格納部13に格納されている観測対象回路のデータ(すなわちネットリスト)に付加する処理を実施する(ステップS5)。
例えば、図11に模式的に示すような観測対象回路を使用する場合には、モジュールAの配線1及び2、モジュールBの配線1及び3、モジュールCの配線2及び3、モジュールDの配線3が、観測ポイントを指定するためのデータによってプローブポイントとして特定される。そして、図10に示したような観測回路のカウンタ回路と、観測対象回路のプローブポイントとプローブ信号線で繋ぐことによって、観測対象回路のデータに対して観測回路が付加されることになる。この状態を図12に模式的に示す。カウンタ回路A12を観測対象回路へ繋ぐプローブ信号線401及び402と、カウンタ回路B13を観測対象回路へ繋ぐプローブ信号線411及び412と、カウンタ回路C23を観測対象回路へ繋ぐプローブ信号線421及び422と、カウンタ回路D3を観測対象回路へ繋ぐプローブ信号線431とが定義される。図12に示すような、観測対象回路と観測回路とがマージされた回路のデータがシミュレーション回路データ格納部18に格納される。
そして、データ出力部25は、シミュレーション回路データ格納部18に格納されている回路データを、シミュレーションアクセラレータ200に出力する(ステップS7)。
シミュレーションアクセラレータ200は、データ出力部25から受信した回路データを用いて周知のシミュレーション(第1回シミュレーション)を実施し(ステップS9)、上で述べた観測回路でカウントされたカウント値を観測回路のRAMから読み出して出力する(ステップS9)。シミュレーションアクセラレータ200では、ある入力パターンをチップの論理に与えたときに、チップ内部の論理がどのように動くかをクロックのサイクル単位で正確にシミュレーションする。図4では、ステップS9は、半導体回路設計支援装置以外の部分で実施される処理なので点線ブロックとしている。
シミュレーション結果取得部26は、シミュレーションアクセラレータ200から第1回シミュレーションの結果であるカウント回路のカウント値を取得し、シミュレーション結果格納部19に格納する(ステップS11)。
取得されたカウント値の一例を図13に示す。図13の例では、二次キャッシュコントローラにおけるMove−In−Dataレジスタに対するCKIH=0、CE=1及びWE=1という状態、すなわち書き込み状態であるサイクル数が、6万サイクル毎に列挙されている。すなわち、最初の6万サイクルのうち832サイクルが書き込み状態であり、次の6万サイクルのうち1216サイクルが書き込み状態であったということを示している。
次に、波形観測ポイント設定部20は、シミュレーション結果格納部19に格納されているカウント値等をユーザに提示する(ステップS13)。本ステップでは、カウント値をそのまま提示する場合もあれば、例えば、ユーザ指定のモジュールなどについて例えば動作状態を表すカウント値の時間推移をグラフ化するなどしてユーザに提示するようにしても良い。さらに、例えばユーザ指定の全モジュール等について例えば特定の動作状態を表すカウント値の総和の時間推移をグラフ化するなどしてユーザに提示するようにしても良い。ここで例えばカウント値の採取に不都合があったり、より特定のモジュールなどに絞り込んでカウント値を採取すべきか否かなどについてユーザは検討を行う。もし必要であれば、カウント値の取得態様を変更すべく指示を観測ポイント設定部11に入力する。
観測ポイント設定部11は、ユーザからカウント値の取得態様の変更指示を受け付けると(ステップS15:Yesルート)、ステップS1に戻る。
一方、特にカウント値の取得態様の変更指示を受け付けなかった場合には(ステップS15:Noルート)、波形観測ポイント設定部20は、波形観測ポイントの選択処理を実施し、選択された波形観測ポイントのデータを波形観測ポイント設定データ格納部21に格納すると共に、シミュレーションアクセラレータ200に出力する(ステップS17)。波形観測ポイントの選択処理では、例えばユーザが指定した1又は複数のモジュールなど又はカウント値を採取した全モジュールについて、指定された状態(例えば動作状態)のカウント値を加算して、時間変化を表すデータを生成する。そして、その中で所定の基準を超えてカウント値が高い値を有する1又は複数の期間を特定する。例えば自動的に所定の基準を超えてカウント値が高い値を有する期間を特定してユーザに提示した上で、ユーザがその上で波形観測ポイントとする期間を指定するようにしても良い。また、最終的な波形観測ポイントとする期間を自動的に特定するようにしても良いし、カウント値の時間変化を表すデータをユーザに提示して、ユーザからの指示に従うようにしても良い。また、カウント値の変化率に着目して、変化率の大きな部分を波形観測ポイントに指定しても良い。さらに、ピークを特定してピークの前後所定期間を波形観測ポイントに指定しても良い。処理は端子Aを介して図14の処理に移行する。
図14の処理の説明に移行して、シミュレーションアクセラレータ200は、第2回目のシミュレーションを実施する(ステップS19)。この第2回目のシミュレーションでは、指定された波形観測ポイントにおける波形データを取得する周知の処理を同時に行う。図14では、ステップS19は、半導体回路設計支援装置以外の部分で実施される処理なので点線ブロックとしている。
シミュレーション結果取得部26は、シミュレーションアクセラレータ200から第2回シミュレーションの結果である波形観測ポイントにおける各信号の波形データを取得し、シミュレーション結果格納部19に格納する(ステップS21)。波形データは、各サイクルにおける信号値のデータである。
そして、動作率算出部22は、シミュレーション結果格納部19に格納されている波形データから各信号の値が一定時間(一定サイクル数)内に反転した回数を特定することによって、動作率(単位時間あたりの信号値の反転回数)を算出し、動作率データ格納部23に格納する(ステップS23)。動作率の算出は周知であり、詳細については述べない。動作率データ格納部23には、例えば図15に示すようなデータが格納される。図15の例では、信号毎に、信号の値の反転回数を表す信号変化回数と、動作率とが格納されるようになっている。
そして、表示処理部24は、動作率データ格納部23に格納されているデータ及び場合によってはシミュレーション結果格納部19に格納されているカウント値のデータを用いて、ユーザの要求に従った表示処理を実施する(ステップS25)。この表示処理については図16乃至図26を用いて説明する。
表示処理部24は、ユーザからの指示が一単位時間についての表示を要求するものであるか判断する(ステップS31)。特定の単位時間についての動作率などのデータを単に表示するだけではなく、動作率などについて時間推移を例えばアニメーション風に表示することも選択可能である。従って、ここではいずれの表示態様を選択するか判断する。
一単位時間についての表示ではない場合には端子Dを介して図24の処理に移行する。一方、一単位時間についての表示が要求された場合には、表示処理部24は、ユーザから表示すべき時間(すなわち単位時間)の指定を受け付ける(ステップS33)。さらに、ユーザからの表示態様の指示が配線単位の動作率表示であるか判断する(ステップS35)。
ユーザからの表示態様の指示が配線単位の動作率表示である場合には、観測対象回路データ格納部13に格納されている観測対象回路のレイアウトデータから、動作率が算出されている配線の、チップ上の位置データを取得し、例えばメインメモリなどの記憶装置に格納する(ステップS37)。例えば図17乃至図19に示すようなデータがレイアウトデータとして、観測対象回路データ格納部13に格納されている。図17の例では、論理モジュール毎に、当該論理モジュールに接続されている入力配線及び出力配線の名称が登録されている。また、図18の例では、配線毎に、当該配線の座標値(例えば起点と終点の座標値など)が登録されている。また、図19の例では、論理モジュール毎に、当該論理モジュールの座標値(例えば左上の座標値と右下の座標値など)が登録されている。ステップS37では、各配線の座標値が位置データとして取得される。
そして、表示処理部24は、動作率区分毎に色分けなど(輝度、線の太さの場合もある)を行った配線レイアウト図を生成し、表示装置に表示する(ステップS39)。例えば図20に示すような配線レイアウト図が表示される。図20の例では、矩形は論理モジュール(すなわちセル)を表しており、論理モジュール間を繋ぐ配線の太さで動作率の大小を表している。なお、図20の例では動作率20%未満の配線については表示を省略している。図20のような表示を行うことによって、何れの配線の動作率が高いのかを位置関係を含めて把握することができるようになる。また、動作率の高い配線によって繋がれる論理モジュールにも注目することができるようになる。処理は、端子Gを介してステップS59に移行する。
一方、配線単位の動作率表示ではない場合には、表示処理部24は、ユーザからの表示態様の指示がセル単位(すなわち論理モジュール単位)の動作率表示であるか判断する(ステップS41)。ユーザからの表示態様の指示がセル単位の動作率表示である場合には、表示処理部24は、観測対象回路データ格納部13に格納されている観測対象回路のデータ(例えば図17に示すようなデータ)から、各セルに接続される出力配線を特定し(ステップS43)、各セルの出力配線の動作率のうち動作率最大値を動作率データ格納部23に格納されているデータから特定し、セルに対応付けてメインメモリなどの記憶装置に格納する(ステップS45)。例えば、あるセルに3本の出力配線が存在する場合には、その中で最も動作率が高い出力配線の動作率を当該セルの動作率とみなす。
さらに、表示処理部24は、観測対象回路データ格納部13に格納されている観測対象回路のレイアウトデータ(例えば図19)から、各セルの位置データを取得し、セルに対応付けて例えばメインメモリなどの記憶装置に格納する(ステップS47)。そして、動作率区分毎に色分け(ハッチングの濃さ、種類などの場合もある)を行ったセルレイアウト図を生成し、表示装置に表示する(ステップS49)。例えば、図21に示すようなセルレイアウト図が表示される。図21の例では、各矩形が各セルを表しており、ハッチングの濃さによって動作率の大小を表している。なお、図21の例では、動作率20%未満の場合には、ハッチングなしとなっている。このような表示を行うことによって、動作率の高いセルの位置的な偏りなどを判断しやすくなる。処理は端子Gを介してステップS59に移行する。
また、セル単位の動作率表示ではない場合には、端子Fを介して図22の処理に移行する。ここでは特定のセルと同時動作しているセルについての同時動作率表示が選択されたことになる。従って、まず、表示処理部24は、着目すべきセルの選択入力を受け付ける(ステップS51)、そして選択されたセルの例えば同時動作カウント結果(他の状態のカウント値を用いるようにしても良い)をシミュレーション結果格納部19から読み出す(ステップS53)。図9で示したように2つのセルの組み合わせで同時動作している状態(図9の状態9)が発生した回数がカウントされている。従って、このような同時動作状態のカウント値を取得する。なお、ステップS33で指定されている表示時間におけるカウント値が抽出される。さらに、着目すべきセルと関連して観測されている他の各セルについて、(カウント値/指定単位時間におけるサイクル数)によって同時動作率を算出し、メインメモリなどの記憶装置に格納する(ステップS54)。
その後、表示処理部24は、着目すべき選択セルと関連して観測されているセル及び着目すべき選択セルの位置データを、観測対象回路データ格納部13(図19)から読み出す(ステップS55)。そして、同時動作率の区分によって色分けなど(ハッチングの濃さ、種類などの場合もある)したセルレイアウト図を生成し、表示装置に表示する(ステップS57)。例えば図23に示すようなセルレイアウト図が表示される。図23の例では、矩形がセルを表しており、黒塗りのセルが着目すべき選択セルを表している。そして、着目すべき選択セルと関連して観測されている他のセルの同時動作率の大小は、ハッチングの濃さによって表されている。同時動作率20%未満の場合には、ハッチング無しとなっている。また、20%以上の同時動作率のセルと、着目すべき選択セルとの間には関連を表す線が示されている。但しこのような線はなくとも良い。楕円500は、着目すべき選択セルに関連して同時動作率が相対的に高いセル群が存在する部分を表しており、局所的に動作しているセルが集中していることが分かる。
処理フローでは示されていないが、図23に示すような画面の時間変化を、以下で説明するような処理を応用して表示するようにしても良い。
そして、表示処理部24は、ユーザの指示によって表示変更を行うか判断する(ステップS59)。表示変更を行うと指示された場合には端子Eを介してステップS31に戻る。一方、表示変更を行わない場合には元の処理に戻る。
また、ステップS31で、ユーザからの指示が一単位時間についての表示を要求するものではないと判断された場合には、表示処理部24は、ユーザから、動作率の時間推移をアニメーション風に表示する要求がなされたか判断する(ステップS61)。動作率の時間推移をアニメーション風に表示することが要求されているわけではない場合には端子Eを介してステップS31に戻る。一方、動作率の時間推移をアニメーション風に表示することが要求されていると判断された場合には、表示処理部24は、表示すべき時間の指定をユーザから受け付ける(ステップS63)。例えば開始単位時間と終了単位時間との指定を受け付ける。そして、ユーザからの表示態様の指示が配線単位の動作率表示であるか判断する(ステップS65)。
ユーザからの表示態様の指示が配線単位の動作率表示である場合には、表示処理部24は、時刻nに開始単位時間を設定する(ステップS67)。その後、観測対象回路データ格納部13に格納されている観測対象回路のレイアウトデータから、時刻nにおける動作率が算出されている配線の、チップ上の位置データを取得し、例えばメインメモリなどの記憶装置に格納する(ステップS69)。
そして、表示処理部24は、動作率区分毎に色分けなど(輝度、線の太さの場合もある)を行った配線レイアウト図を生成し、表示装置に表示する(ステップS71)。例えば図20に示すような配線レイアウト図が表示される。そして、時刻nを1インクリメントし(ステップS73)、時刻nが終了単位時間を経過したか判断する(ステップS75)。時刻nが終了単位時間を経過していない場合にはステップS69に戻って、処理を行う。そうすると、次のステップS71では、図25に示すような画面が表示される。図25に示すように、図20の次の単位時間では、配線601の動作率が上昇していることが分かる。また、新たに動作率が20%を超えるようになった配線603が存在していることも分かる。このように動作率が変動している配線の位置を把握したり、新たに動作率が20%を超えるようになった配線の位置を確認したりして、動作率の時間推移や高い動作率の配線の位置的な移動を把握しやすくなる。
ステップS75で、時刻nが終了単位時間を経過したと判断された場合には、端子Gを介してステップS59に移行する。
一方、配線単位の動作率表示ではない場合には、表示処理部24は、ユーザからの表示態様の指示がセル単位(すなわち論理モジュール単位)の動作率表示であるか判断する(ステップS77)。ユーザからの表示態様の指示がセル単位の動作率表示でない場合には、端子Eを介してステップS31に戻る。ユーザからの表示態様の指示がセル単位の動作率表示である場合には、表示処理部24は時刻nに開始単位時間を設定する(ステップS79)。さらに、観測対象回路データ格納部13に格納されている観測対象回路のデータ(例えば図17に示すようなデータ)から、各セルに接続される出力配線を特定し(ステップS81)、各セルの出力配線の動作率のうち動作率最大値を動作率データ格納部23に格納されているデータから特定し、セルに対応付けてメインメモリなどの記憶装置に格納する(ステップS83)。例えば、あるセルに3本の出力配線が存在する場合には、その中で最も動作率が高い出力配線の動作率を当該セルの動作率とみなす。
さらに、表示処理部24は、観測対象回路データ格納部13に格納されている観測対象回路のレイアウトデータ(例えば図19)から、各セルの位置データを取得し、セルに対応付けて例えばメインメモリなどの記憶装置に格納する(ステップS85)。そして、動作率区分毎に色分け(ハッチングの濃さ、種類などの場合もある)を行ったセルレイアウト図を生成し、表示装置に表示する(ステップS87)。例えば、図21に示すようなセルレイアウト図が表示される。
ここで時刻nを1インクリメントし(ステップS89)、時刻nが終了単位時間を経過したか判断する(ステップS91)。時刻nが終了単位時間を経過していない場合にはステップS81に戻って、処理を行う。そうすると、次のステップS87では、図26のような画面が表示される。図26に示すように、図21の次の単位時間では、急激に動作率が上昇したセル701や、動作率20%未満となってしまったセル703が存在することが分かる。このように、動作率が変動しているセルの位置を把握したり、動作率の高いセルの偏りの時間変化などを把握したりすることができるようになる。
そして、ステップS91で、時刻nが終了単位時間を経過したと判断された場合には、端子Gを介してステップS59に移行する。
図14の処理の説明に戻って、ユーザが表示処理の結果を参照して、観測ポイント設定部11に、カウント値の取得態様の変更を指示したか判断する(ステップS27)。カウント値の取得態様の変更を指示した場合には端子Bを介して図4のステップS1に戻る。一方、カウント値の取得態様の変更が指示されたわけではない場合には、波形観測ポイント設定部20は、ユーザから波形観測ポイントの変更が指示されたか判断する(ステップS29)。ユーザから波形観測ポイントの変更が指示されている場合には端子Cを介してステップS17に戻る。一方、ユーザから波形観測ポイントの変更が指示されていない場合には処理を終了する。
以上のような処理を実施することによって、(1)観測回路からのデータ採取が高速化されるため、観測対象回路において多数のセルの多数の動作状態の発生頻度を採取することができるようになる。また、(2)膨大なデータを詳細に可視化できるようになったため、膨大なデータに基づく様々なフィードバックを設計者に対して行うことができ、設計の効率化や問題の発見などに繋がる。(3)膨大なデータを様々な形態で設計者に提示することができるようになり、設計者は直感的に必要な情報を得ることができるようになる。
より具体的には、これまでの手法では設計者が把握できなかったチップ内の局所的な動作を容易に把握できるようになる。そして、局所的動作を把握することによって、設計者は容易に電力や発熱の時間的・空間的な偏りの原因となっているモジュールなどを特定することができるようになり、異常動作に繋がる局所的な発熱や電力変動を抑えるための実装最適化や論理最適化を容易に行うことができるようになる。
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。上で述べた表示画面例は、一例であって他のより見やすい態様で同趣旨の表示内容を表示することも可能である。特に色分けは有効である。また、動作率の刻みなども任意であり、上で述べた例に限定されない。
図1に示した機能ブロック図は一例であって、必ずしも実際にプログラムモジュールと一致するわけではない。
処理フローについても、処理内容が同一であれば処理順番を入れ替えたり、並列実施したりしても良い部分もある。
さらに、上で述べた本実施の形態はほぼ4つの態様にまとめることができる。
第1の態様に係る半導体回路設計支援方法は、シミュレーションにおいて動作の観測が行われる観測対象回路における観測ポイントの指定を受け付け、当該観測ポイントの指定に係るデータを記憶装置に格納するステップと、記憶装置に格納されている観測ポイントの指定に係るデータに従って観測回路が観測対象回路に接続されるように、観測対象回路データ格納部に格納されている観測対象回路の回路データに対して観測回路の回路データを付加し、観測回路の回路データを含む観測対象回路の回路データをシミュレーション用データ格納部に格納するステップとを含む。
この際、上で述べた観測回路が、特定の観測ポイントにおける特定の状態の、第1の期間における発生回数を格納する第1のレジスタと、特定の観測ポイントにおける特定の状態の、第2の期間における発生回数を格納する第2のレジスタと、第1の期間において第2のレジスタに格納されている発生回数を出力させ且つ第2の期間において第1のレジスタに格納されている発生回数を出力させる切替回路とを各々有する複数のカウンタ回路と、発生回数を格納するメモリと、複数のカウンタ回路の出力のいずれかを選択してメモリに書き込みを行わせる出力切替回路とを有する。
このような観測回路を採用することによって、シミュレータからのデータ採取が高速化され、多数の観測ポイントについて上で述べたような発生回数を採取することができるようになる。これを用いて様々なデータ解析を行い、設計者による半導体回路設計を支援することができるようになる。
なお、上で述べた複数のカウンタ回路が、観測ポイントの指定に係るデータに含まれ且つ観測ポイントの単位を規定するデータから特定されるようにしてもよい。例えば近接するモジュールについての観測回路をひとまとめにして時分割で上記発生回数をメモリに書き込むことによって、データ採取の高速化が図られる。
また、上で述べた観測ポイントの指定に係るデータが、観測対象回路の階層構成における特定の階層の指定データを含むようにしてもよい。このようにすれば、設計者は簡単に観測ポイントを指定することができる。例えば特定階層以下の全てのモジュール等について上記発生回数を採取するなどの網羅的な指定ができる。但し、設計者が個別のモジュールを特別に指定しても良い。
さらに、上で述べた特定の状態が、RAMの停止状態、待機状態、読み込み状態又は書き込み状態、モジュールの停止状態、待機状態又は動作状態、若しくは複数のモジュールの状態組み合わせのいずれかを含むようにしてもよい。特に複数のモジュールの状態組み合わせについては、多数の信号配線を観測する必要があり、従来では不可能であったが、これにより多様な観測ができるようになっている。
第2の態様に係る半導体回路設計支援方法は、シミュレーションにおいて動作の観測が行われた観測対象回路における特定の配線についての動作率のデータを格納する動作率データ格納部から、処理対象配線の動作率のデータを読み出すステップと、配線毎に観測対象回路が実装される半導体チップ上の位置データを格納する観測対象回路データ格納部から、処理対象配線の位置データを読み出すステップと、処理対象配線の位置データに従って、当該処理対象配線の動作率に応じた表示データを半導体チップに相当する表示エリア上に配置した画像データを生成し、出力する出力ステップとを含む。
このような画像データを設計者に提示することによって、設計者は特定の時刻における配線の動作率の平面的な偏りなどを容易に把握することができるようになる。すなわち、電力消費の偏りなどを把握して、配置を見直したりすることができるようになる。
さらに、上で述べた表示データが、動作率について予め定められた複数の区分のうち該当する区分について予め規定されている色、輝度又は太さを有するようにしてもよい。このようにすれば、より分かりやすくなる。
さらに、上で述べた動作率データ格納部が、複数時点についての動作率のデータを格納するようにしてもよい。この場合、上で述べた出力ステップが、処理開始時刻から処理終了時刻までの各時点における動作率について実施されるようにしてもよい。これによって、動作率の平面的な偏りだけではなく、動作率の時間的な偏りについても把握が容易になる。
第3の態様に係る半導体回路設計支援方法は、シミュレーションにおいて動作の観測が行われた観測対象回路が実装される半導体チップ上における各セルの位置データと、各前記セルに接続される配線のデータとを格納する観測対象回路データ格納部から、処理対象セルに接続される配線を特定するステップと、観測対象回路における配線についての動作率のデータを格納する動作率データ格納部から、特定された配線の動作率のデータを読み出すステップと、特定された配線の動作率から、処理対象セルについての動作率を決定する動作率決定ステップと、観測対象回路データ格納部から、処理対象セルの位置データを読み出すステップと、処理対象セルの位置データに従って、当該処理対象セルについての動作率に応じた表示データを半導体チップに相当する表示エリア上に配置した画像データを生成し、出力する出力ステップとを含む。
このような画像データを設計者に提示することによって、設計者は特定の時刻におけるセルの動作率の平面的な偏りなどを容易に把握することができるようになる。すなわち、電力消費の偏りなどを把握して、セルの配置を見直したりすることができるようになる。
なお、上で述べた表示データが、動作率について予め定められた複数の区分のうち該当する区分について予め規定されている色又は輝度を有するようにしてもよい。より分かりやすくするためである。
また、上で述べた動作率データ格納部が、複数時点についての動作率のデータを格納するようにしてもよい。この場合、動作率決定ステップ及び出力ステップが、処理開始時刻から処理終了時刻までの各時点における動作率について実施されるようにしてもよい。このようにすれば、平面的な偏りだけではなく、動作率の時間的な偏りを特定することができるようになる。
さらに、上で述べた動作率決定ステップにおいて、上記特定された配線うち出力配線の動作率の最大値を処理対象セルの動作率と決定するようにしてもよい。
第4の態様に係る半導体回路設計支援方法は、シミュレーションにおいて動作の観測が行われた観測対象回路が実装される半導体チップ上における2つのセル(又は複数のセル)の特定の組み合わせ状態の発生回数を格納するシミュレーション結果格納部から、注目セルについて対応セルと特定の組み合わせ状態の発生回数とを読み出すステップと、観測対象回路が実装される半導体チップ上における各セルの位置データを格納する観測対象回路データ格納部から、注目セルと対応セルの位置データを読み出すステップと、注目セルの第1の表示データを当該注目セルの位置データに従って半導体チップに相当する表示エリア上に配置すると共に、対応セルの位置データに従って、当該対応セルについての発生回数に応じた第2の表示データを表示エリア上に配置した画像データを生成し、出力するステップとを含む。
このようにすれば、任意のセルの組み合わせについて特定の組み合わせ状態の発生頻度を、平面的なセル配置と併せて把握することが容易になる。
さらに、上で述べた特定の組み合わせ状態が、同時動作状態である場合もある。特に同時動作状態である場合には、同時動作中のセルの平面的な偏り、すなわち消費電力の平面的な偏りを容易に把握できるようになる。
さらに、上で述べた第2の表示データが、発生回数又は当該発生回数から算出される動作率について予め定められた複数の区分のうち該当する区分について予め規定されている色又は輝度を有するようにしてもよい。より分かりやすくするためである。
なお、上記方法をコンピュータハードウエアに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等の記憶媒体又は記憶装置に格納される。また、ネットワークなどを介してデジタル信号として配信される場合もある。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
なお、半導体回路設計支援装置はコンピュータ装置であって、図27に示すように、メモリ2501(記憶部)とCPU2503(処理部)とハードディスク・ドライブ(HDD)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。OS及びWebブラウザを含むアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。必要に応じてCPU2503は、表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ2501に格納され、必要があればHDD2505に格納される。このようなコンピュータは、上で述べたCPU2503、メモリ2501などのハードウエアとOS及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
(付記1)
シミュレーションにおいて動作の観測が行われる観測対象回路における観測ポイントの指定を受け付け、当該観測ポイントの指定に係るデータを記憶装置に格納するステップと、
前記記憶装置に格納されている前記観測ポイントの指定に係るデータに従って観測回路が前記観測対象回路に接続されるように、観測対象回路データ格納部に格納されている前記観測対象回路の回路データに対して前記観測回路の回路データを付加し、前記観測回路の回路データを含む前記観測対象回路の回路データをシミュレーション用データ格納部に格納するステップと、
コンピュータに実行させ、
前記観測回路が、
特定の観測ポイントにおける特定の状態の、第1の期間における発生回数を格納する第1のレジスタと、前記特定の観測ポイントにおける前記特定の状態の、第2の期間における発生回数を格納する第2のレジスタと、前記第1の期間において前記第2のレジスタに格納されている前記発生回数を出力させ且つ前記第2の期間において前記第1のレジスタに格納されている前記発生回数を出力させる切替回路とを各々有する複数のカウンタ回路と、
前記発生回数を格納するメモリと、
前記複数のカウンタ回路の出力のいずれかを選択して前記メモリに書き込みを行わせる出力切替回路と、
を有する
半導体回路設計支援プログラム。
(付記2)
前記複数のカウンタ回路が、前記観測ポイントの指定に係るデータに含まれ且つ観測ポイントの単位を規定するデータから特定される
付記1記載の半導体回路設計支援プログラム。
(付記3)
前記観測ポイントの指定に係るデータが、前記観測対象回路の階層構成における特定の階層の指定データを含む
付記1記載の半導体回路設計支援プログラム。
(付記4)
前記特定の状態が、RAMの停止状態、待機状態、読み込み状態又は書き込み状態、モジュールの停止状態、待機状態又は動作状態、若しくは複数のモジュールの状態組み合わせのいずれかを含む
付記1記載の半導体回路設計支援プログラム。
(付記5)
コンピュータにより実行される半導体回路設計支援方法であって、
シミュレーションにおいて動作の観測が行われる観測対象回路における観測ポイントの指定を受け付け、当該観測ポイントの指定に係るデータを記憶装置に格納するステップと、
前記記憶装置に格納されている前記観測ポイントの指定に係るデータに従って観測回路が前記観測対象回路に接続されるように、観測対象回路データ格納部に格納されている前記観測対象回路の回路データに対して前記観測回路の回路データを付加し、前記観測回路の回路データを含む前記観測対象回路の回路データをシミュレーション用データ格納部に格納するステップと、
を含み、
前記観測回路が、
特定の観測ポイントにおける特定の状態の、第1の期間における発生回数を格納する第1のレジスタと、前記特定の観測ポイントにおける前記特定の状態の、第2の期間における発生回数を格納する第2のレジスタと、前記第1の期間において前記第2のレジスタに格納されている前記発生回数を出力させ且つ前記第2の期間において前記第1のレジスタに格納されている前記発生回数を出力させる切替回路とを各々有する複数のカウンタ回路と、
前記発生回数を格納するメモリと、
前記複数のカウンタ回路の出力のいずれかを選択して前記メモリに書き込みを行わせる出力切替回路と、
を有する
半導体回路設計支援方法。
(付記6)
シミュレーションにおいて動作の観測が行われる観測対象回路における観測ポイントの指定を受け付け、当該観測ポイントの指定に係るデータを記憶装置に格納する手段と、
前記記憶装置に格納されている前記観測ポイントの指定に係るデータに従って観測回路が前記観測対象回路に接続されるように、観測対象回路データ格納部に格納されている前記観測対象回路の回路データに対して前記観測回路の回路データを付加し、前記観測回路の回路データを含む前記観測対象回路の回路データをシミュレーション用データ格納部に格納する手段と、
を有し、
前記観測回路が、
特定の観測ポイントにおける特定の状態の、第1の期間における発生回数を格納する第1のレジスタと、前記特定の観測ポイントにおける前記特定の状態の、第2の期間における発生回数を格納する第2のレジスタと、前記第1の期間において前記第2のレジスタに格納されている前記発生回数を出力させ且つ前記第2の期間において前記第1のレジスタに格納されている前記発生回数を出力させる切替回路とを各々有する複数のカウンタ回路と、
前記発生回数を格納するメモリと、
前記複数のカウンタ回路の出力のいずれかを選択して前記メモリに書き込みを行わせる出力切替回路と、
を有する
半導体回路設計支援装置。
(付記7)
シミュレーションにおいて動作の観測が行われた観測対象回路における特定の配線についての動作率のデータを格納する動作率データ格納部から、処理対象配線の動作率のデータを読み出すステップと、
配線毎に前記観測対象回路が実装される半導体チップ上の位置データを格納する観測対象回路データ格納部から、前記処理対象配線の位置データを読み出すステップと、
前記処理対象配線の位置データに従って、当該処理対象配線の動作率に応じた表示データを前記半導体チップに相当する表示エリア上に配置した画像データを生成し、出力する出力ステップと、
をコンピュータに実行させるための半導体回路設計支援プログラム。
(付記8)
前記表示データが、前記動作率について予め定められた複数の区分のうち該当する区分について予め規定されている色、輝度又は太さを有する
付記7記載の半導体回路設計支援プログラム。
(付記9)
前記動作率データ格納部が、複数時点についての動作率のデータを格納しており、
前記出力ステップが、
処理開始時刻から処理終了時刻までの各時点における動作率について実施される
付記7記載の半導体回路設計支援プログラム。
(付記10)
シミュレーションにおいて動作の観測が行われた観測対象回路における特定の配線についての動作率のデータを格納する動作率データ格納部から、処理対象配線の動作率のデータを読み出すステップと、
配線毎に前記観測対象回路が実装される半導体チップ上の位置データを格納する観測対象回路データ格納部から、前記処理対象配線の位置データを読み出すステップと、
前記処理対象配線の位置データに従って、当該処理対象配線の動作率に応じた表示データを前記半導体チップに相当する表示エリア上に配置した画像データを生成し、出力する出力ステップと、
を含み、コンピュータに実行される半導体回路設計支援方法。
(付記11)
シミュレーションにおいて動作の観測が行われた観測対象回路における特定の配線についての動作率のデータを格納する動作率データ格納部から、処理対象配線の動作率のデータを読み出す手段と、
配線毎に前記観測対象回路が実装される半導体チップ上の位置データを格納する観測対象回路データ格納部から、前記処理対象配線の位置データを読み出す手段と、
前記処理対象配線の位置データに従って、当該処理対象配線の動作率に応じた表示データを前記半導体チップに相当する表示エリア上に配置した画像データを生成し、出力する出力手段と、
を有する半導体回路設計支援装置。
(付記12)
シミュレーションにおいて動作の観測が行われた観測対象回路が実装される半導体チップ上における各セルの位置データと、各前記セルに接続される配線のデータとを格納する観測対象回路データ格納部から、処理対象セルに接続される配線を特定するステップと、
前記観測対象回路における配線についての動作率のデータを格納する動作率データ格納部から、前記特定された配線の動作率のデータを読み出すステップと、
前記特定された配線の動作率から、前記処理対象セルについての動作率を決定する動作率決定ステップと、
前記観測対象回路データ格納部から、前記処理対象セルの位置データを読み出すステップと、
前記処理対象セルの位置データに従って、当該処理対象セルについての動作率に応じた表示データを前記半導体チップに相当する表示エリア上に配置した画像データを生成し、出力する出力ステップと、
をコンピュータに実行させるための半導体回路設計支援プログラム。
(付記13)
前記表示データが、前記動作率について予め定められた複数の区分のうち該当する区分について予め規定されている色又は輝度を有する
付記12記載の半導体回路設計支援プログラム。
(付記14)
前記動作率データ格納部が、複数時点についての動作率のデータを格納しており、
前記動作率決定ステップ及び出力ステップが、
処理開始時刻から処理終了時刻までの各時点における動作率について実施される
付記12記載の半導体回路設計支援プログラム。
(付記15)
前記動作率決定ステップにおいて、前記特定された配線うち出力配線の動作率の最大値を前記処理対象セルの動作率と決定する
付記12記載の半導体回路設計支援プログラム。
(付記16)
シミュレーションにおいて動作の観測が行われた観測対象回路が実装される半導体チップ上における各セルの位置データと、各前記セルに接続される配線のデータとを格納する観測対象回路データ格納部から、処理対象セルに接続される配線を特定するステップと、
前記観測対象回路における配線についての動作率のデータを格納する動作率データ格納部から、前記特定された配線の動作率のデータを読み出すステップと、
前記特定された配線の動作率から、前記処理対象セルについての動作率を決定する動作率決定ステップと、
前記観測対象回路データ格納部から、前記処理対象セルの位置データを読み出すステップと、
前記処理対象セルの位置データに従って、当該処理対象セルについての動作率に応じた表示データを前記半導体チップに相当する表示エリア上に配置した画像データを生成し、出力する出力ステップと、
を含み、コンピュータにより実行される半導体回路設計支援方法。
(付記17)
シミュレーションにおいて動作の観測が行われた観測対象回路が実装される半導体チップ上における各セルの位置データと、各前記セルに接続される配線のデータとを格納する観測対象回路データ格納部から、処理対象セルに接続される配線を特定する手段と、
前記観測対象回路における配線についての動作率のデータを格納する動作率データ格納部から、前記特定された配線の動作率のデータを読み出す手段と、
前記特定された配線の動作率から、前記処理対象セルについての動作率を決定する動作率決定手段と、
前記観測対象回路データ格納部から、前記処理対象セルの位置データを読み出す手段と、
前記処理対象セルの位置データに従って、当該処理対象セルについての動作率に応じた表示データを前記半導体チップに相当する表示エリア上に配置した画像データを生成し、出力する出力手段と、
を有する半導体回路設計支援装置。
(付記18)
シミュレーションにおいて動作の観測が行われた観測対象回路が実装される半導体チップ上における2つのセルの特定の組み合わせ状態の発生回数を格納するシミュレーション結果格納部から、注目セルについて対応セルと前記特定の組み合わせ状態の発生回数とを読み出すステップと、
前記観測対象回路が実装される半導体チップ上における各セルの位置データを格納する観測対象回路データ格納部から、前記注目セルと前記対応セルの位置データを読み出すステップと、
前記注目セルの第1の表示データを当該注目セルの位置データに従って前記半導体チップに相当する表示エリア上に配置すると共に、前記対応セルの位置データに従って、当該対応セルについての発生回数に応じた第2の表示データを前記表示エリア上に配置した画像データを生成し、出力するステップと、
をコンピュータに実行させるための半導体回路設計支援プログラム。
(付記19)
前記特定の組み合わせ状態が、同時動作状態である
付記18記載の半導体回路設計支援プログラム。
(付記20)
前記第2の表示データが、前記発生回数又は当該発生回数から算出される動作率について予め定められた複数の区分のうち該当する区分について予め規定されている色又は輝度を有する
付記18記載の半導体回路設計支援プログラム。
(付記21)
シミュレーションにおいて動作の観測が行われた観測対象回路が実装される半導体チップ上における2つのセルの特定の組み合わせ状態の発生回数を格納するシミュレーション結果格納部から、注目セルについて対応セルと前記特定の組み合わせ状態の発生回数とを読み出すステップと、
前記観測対象回路が実装される半導体チップ上における各セルの位置データを格納する観測対象回路データ格納部から、前記注目セルと前記対応セルの位置データを読み出すステップと、
前記注目セルの第1の表示データを当該注目セルの位置データに従って前記半導体チップに相当する表示エリア上に配置すると共に、前記対応セルの位置データに従って、当該対応セルについての発生回数に応じた第2の表示データを前記表示エリア上に配置した画像データを生成し、出力するステップと、
を含み、コンピュータに実行される半導体回路設計支援方法。
(付記22)
シミュレーションにおいて動作の観測が行われた観測対象回路が実装される半導体チップ上における2つのセルの特定の組み合わせ状態の発生回数を格納するシミュレーション結果格納部から、注目セルについて対応セルと前記特定の組み合わせ状態の発生回数とを読み出す手段と、
前記観測対象回路が実装される半導体チップ上における各セルの位置データを格納する観測対象回路データ格納部から、前記注目セルと前記対応セルの位置データを読み出す手段と、
前記注目セルの第1の表示データを当該注目セルの位置データに従って前記半導体チップに相当する表示エリア上に配置すると共に、前記対応セルの位置データに従って、当該対応セルについての発生回数に応じた第2の表示データを前記表示エリア上に配置した画像データを生成し、出力する手段と、
を有する半導体回路設計支援装置。
11 観測ポイント設定部 12 観測ポイント指定データ格納部
13 観測対象回路データ格納部 14 セルライブラリ格納部
15 観測回路生成部 16 観測回路データ格納部
17 観測回路付加処理部 18 シミュレーション回路データ格納部
19 シミュレーション結果格納部 20 波形観測ポイント設定部
21 波形観測ポイント設定データ格納部 22 動作率算出部
23 動作率データ格納部 24 表示処理部
25 データ出力部 26 シミュレーション結果取得部
200 シミュレーションアクセラレータ

Claims (6)

  1. シミュレーションにおいて動作の観測が行われた観測対象回路における特定の配線についての動作率のデータを格納する動作率データ格納部から、処理対象配線の動作率のデータを読み出すステップと、
    配線毎に前記観測対象回路が実装される半導体チップ上の位置データを格納する観測対象回路データ格納部から、前記処理対象配線の位置データを読み出すステップと、
    前記処理対象配線の位置データに従って、当該処理対象配線の動作率に応じた表示データを前記半導体チップに相当する表示エリア上に配置した画像データを生成し、出力する出力ステップと、
    をコンピュータに実行させるための半導体回路設計支援プログラム。
  2. 前記表示データが、前記動作率について予め定められた複数の区分のうち該当する区分について予め規定されている色、輝度又は太さを有する
    請求項1記載の半導体回路設計支援プログラム。
  3. 前記動作率データ格納部が、複数時点についての動作率のデータを格納しており、
    前記出力ステップが、
    処理開始時刻から処理終了時刻までの各時点における動作率について実施される
    請求項1記載の半導体回路設計支援プログラム。
  4. シミュレーションにおいて動作の観測が行われた観測対象回路が実装される半導体チップ上における各セルの位置データと、各前記セルに接続される配線のデータとを格納する観測対象回路データ格納部から、処理対象セルに接続される配線を特定するステップと、
    前記観測対象回路における配線についての動作率のデータを格納する動作率データ格納部から、前記特定された配線の動作率のデータを読み出すステップと、
    前記特定された配線の動作率から、前記処理対象セルについての動作率を決定する動作率決定ステップと、
    前記観測対象回路データ格納部から、前記処理対象セルの位置データを読み出すステップと、
    前記処理対象セルの位置データに従って、当該処理対象セルについての動作率に応じた表示データを前記半導体チップに相当する表示エリア上に配置した画像データを生成し、出力する出力ステップと、
    をコンピュータに実行させるための半導体回路設計支援プログラム。
  5. 前記動作率データ格納部が、複数時点についての動作率のデータを格納しており、
    前記動作率決定ステップ及び出力ステップが、
    処理開始時刻から処理終了時刻までの各時点における動作率について実施される
    請求項4記載の半導体回路設計支援プログラム。
  6. シミュレーションにおいて動作の観測が行われた観測対象回路が実装される半導体チップ上における2つのセルの特定の組み合わせ状態の発生回数を格納するシミュレーション結果格納部から、注目セルについて対応セルと前記特定の組み合わせ状態の発生回数とを読み出すステップと、
    前記観測対象回路が実装される半導体チップ上における各セルの位置データを格納する観測対象回路データ格納部から、前記注目セルと前記対応セルの位置データを読み出すステップと、
    前記注目セルの第1の表示データを当該注目セルの位置データに従って前記半導体チップに相当する表示エリア上に配置すると共に、前記対応セルの位置データに従って、当該対応セルについての発生回数に応じた第2の表示データを前記表示エリア上に配置した画像データを生成し、出力するステップと、
    をコンピュータに実行させるための半導体回路設計支援プログラム。
JP2012119636A 2012-05-25 2012-05-25 半導体回路設計支援プログラム Pending JP2012164363A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012119636A JP2012164363A (ja) 2012-05-25 2012-05-25 半導体回路設計支援プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012119636A JP2012164363A (ja) 2012-05-25 2012-05-25 半導体回路設計支援プログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2008135003A Division JP5151685B2 (ja) 2008-05-23 2008-05-23 半導体回路設計支援プログラム

Publications (1)

Publication Number Publication Date
JP2012164363A true JP2012164363A (ja) 2012-08-30

Family

ID=46843618

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012119636A Pending JP2012164363A (ja) 2012-05-25 2012-05-25 半導体回路設計支援プログラム

Country Status (1)

Country Link
JP (1) JP2012164363A (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH086980A (ja) * 1994-04-19 1996-01-12 Matsushita Electric Ind Co Ltd 消費電力の推定方法,消費電力の推定装置,配置配線の決定方法及び配置配線設計装置
JPH0855146A (ja) * 1994-08-09 1996-02-27 Mitsubishi Electric Corp 半導体集積回路の発熱量見積もり方法
JPH09185637A (ja) * 1995-12-28 1997-07-15 Hitachi Ltd 半導体集積回路のレイアウト違反検証装置
JPH11213029A (ja) * 1998-01-30 1999-08-06 Hitachi Ltd レジスタ転送レベル論理記述ハードウェア性能評価装置
JP2009140495A (ja) * 2007-12-03 2009-06-25 Toshiba Corp 確率的相互接続構造設計のためのシステムおよび方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH086980A (ja) * 1994-04-19 1996-01-12 Matsushita Electric Ind Co Ltd 消費電力の推定方法,消費電力の推定装置,配置配線の決定方法及び配置配線設計装置
JPH0855146A (ja) * 1994-08-09 1996-02-27 Mitsubishi Electric Corp 半導体集積回路の発熱量見積もり方法
JPH09185637A (ja) * 1995-12-28 1997-07-15 Hitachi Ltd 半導体集積回路のレイアウト違反検証装置
JPH11213029A (ja) * 1998-01-30 1999-08-06 Hitachi Ltd レジスタ転送レベル論理記述ハードウェア性能評価装置
JP2009140495A (ja) * 2007-12-03 2009-06-25 Toshiba Corp 確率的相互接続構造設計のためのシステムおよび方法

Similar Documents

Publication Publication Date Title
US10360310B2 (en) Self-testing graphical component algorithm specification
US8479132B2 (en) Active trace assertion based verification system
US7844928B2 (en) Method and apparatus for evaluating integrated circuit design performance using enhanced basic block vectors that include data dependent information
US8296740B2 (en) Annotating system traces with control program information and presenting annotated system traces
TWI632478B (zh) 製造程序的視覺化程式、製造程序的視覺化方法及製造程序的視覺化系統
Giménez et al. Dissecting on-node memory access performance: a semantic approach
Li et al. nGFSIM: A GPU-based fault simulator for 1-to-n detection and its applications
Schneider et al. GPU-accelerated small delay fault simulation
JP4468410B2 (ja) ソフトウェア実行装置および協調動作方法
Valente et al. A composable monitoring system for heterogeneous embedded platforms
US9507616B1 (en) Methods, systems, and computer readable media for emulating computer processing usage patterns on a virtual machine
CN111367786A (zh) 一种符号执行方法、电子设备以及存储介质
Ghaleb Software energy measurement at different levels of granularity
JP2006139729A (ja) ハードウェア検証用プログラミング言語モデル生成装置、ハードウェア検証用プログラミング言語モデル生成方法、コンピュータシステム、ハードウェアシミュレーション方法、制御プログラムおよび可読記憶媒体
JP5785725B2 (ja) 電力見積装置、電力見積方法及びプログラム
JP5151685B2 (ja) 半導体回路設計支援プログラム
JP4882573B2 (ja) レイアウト評価装置
US9575868B2 (en) Processor stressmarks generation
JP2012164363A (ja) 半導体回路設計支援プログラム
Choudhury et al. Interactive visualization for memory reference traces
US20050182611A1 (en) Apparatus and method for simulating performance, and computer product
Schnorr et al. Interactive analysis of large distributed systems with scalable topology-based visualization
JP5515815B2 (ja) 検証装置及び検証プログラム
US7454680B2 (en) Method, system and computer program product for improving efficiency in generating high-level coverage data for a circuit-testing scheme
JP5899781B2 (ja) 設計支援装置、設計支援方法および設計支援プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120525

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130611

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130805

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140218

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140617