JP5056573B2 - 設計支援プログラム、設計支援装置、および設計支援方法 - Google Patents

設計支援プログラム、設計支援装置、および設計支援方法 Download PDF

Info

Publication number
JP5056573B2
JP5056573B2 JP2008123170A JP2008123170A JP5056573B2 JP 5056573 B2 JP5056573 B2 JP 5056573B2 JP 2008123170 A JP2008123170 A JP 2008123170A JP 2008123170 A JP2008123170 A JP 2008123170A JP 5056573 B2 JP5056573 B2 JP 5056573B2
Authority
JP
Japan
Prior art keywords
module
power consumption
circuit
data
power
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.)
Expired - Fee Related
Application number
JP2008123170A
Other languages
English (en)
Other versions
JP2009271818A (ja
Inventor
豊 田宮
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 JP2008123170A priority Critical patent/JP5056573B2/ja
Priority to US12/356,689 priority patent/US8065643B2/en
Publication of JP2009271818A publication Critical patent/JP2009271818A/ja
Application granted granted Critical
Publication of JP5056573B2 publication Critical patent/JP5056573B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

この発明は、LSI(Large Scale Integrated circuit)の低電力化を支援する設計支援プログラム、設計支援装置、および設計支援方法に関する。
近年、LSIの高集積化、大規模化、および駆動の高速化により消費電力が増大している。この結果、LSIが発生する熱が原因となる性能劣化や短寿命化が問題になっている。これらの問題を解決するためには、LSIの設計段階において消費電力を正確に見積もり、回路変更などの対策をおこなうことで消費電力を削減する必要がある。
LSIの低電力化を図る技術として、クロック・ゲーティングにより消費電力を削減する技術が実用化されている。クロック・ゲーティングとは、回路全体の動作に影響を与えないモジュールへのクロックの供給を停止することにより、回路全体の消費電力を削減する技術である。
従来において、LSIの動作を解析することで、クロック・ゲーティングを自動適用する設計ツールが提供されている。また、ハードウェア記述からステートマシンを構成するレジスタおよびステートマシンがアイドル状態以外のときのみ動作するレジスタを検出し、そのレジスタにゲーテッドクロックを供給するゲーテッドクロック供給回路を自動生成する従来技術がある。
特開2003−330988号公報
しかしながら、上述した設計ツールを用いてクロック・ゲーティングを適用する従来技術によれば、LSIの動作を詳細に解析してクロック・ゲーティングの適用の可否を検証するため、回路規模が大きくなると、それに応じて処理時間および処理負荷が膨大なものとなってしまい、設計期間の長期化を招くという問題があった。
また、ステートマシンがアイドル状態以外のときのみ動作するレジスタにゲーテッドクロックを供給する回路を自動生成する従来技術によれば、設計者がLSIの仕様書などを確認して、アイドル状態を定義する面倒な作業が必要となるという問題があった。さらに、電力改善をおこなう作業者が設計者と異なる場合には、仕様書からアイドル状態を定義するのは非常に困難な作業となるため、電力改善にかかる作業負担および作業時間が増大するという問題があった。
この発明は、上述した従来技術による問題点を解消するため、モジュールの消費電力の改善可能性をあらわす電力指標を用いて、クロック・ゲーティングの適用期間を絞り込むことにより、効率的かつ効果的な電力改善を可能とし、設計期間の短縮化を図ることを目的とする。
開示する技術は、設計対象回路の中から任意のモジュールを選択し、前記設計対象回路内のモジュールごとに、当該モジュールから送信され送信先のモジュールによって受信されたデータ信号の時系列のデータ量と、前記モジュールの消費電力の改善可能性をあらわす前記データ量に応じた電力指標と、を記憶するテーブルにアクセスして、選択されたモジュールに関するデータ量と電力指標とを抽出し、抽出されたデータ量と電力指標とに基づいて、前記送信先のモジュールが前記データ信号を受信していない期間のうち前記電力指標が消費電力の改善基準を満たす期間を検出し、検出された期間を出力する。
この開示技術によれば、モジュールの消費電力の改善可能性をあらわす電力指標を用いて、クロック・ゲーティングの適用期間を絞り込むことにより、効率的かつ効果的な電力改善を可能とし、設計期間の短縮化を図ることができるという効果を奏する。
以下に添付図面を参照して、この設計支援プログラム、設計支援装置、および設計支援方法の好適な実施の形態を詳細に説明する。この設計支援プログラム、設計支援装置、および設計支援方法では、消費電力の改善可能性をあらわす電力指標を用いて、設計対象回路内のモジュールにクロック・ゲーティングを適用する期間を自動検出することにより、電力改善作業にかかる作業負担および作業時間を軽減させる。
(本実施の形態の概要)
まず、本実施の形態の概要について説明する。図1は、本実施の形態の概要を示す説明図である。図1において、まず、設計対象回路の回路情報を用いて、設計対象回路の動作を検証するシミュレーションを実行する。そして、設計対象回路のシミュレーション結果(以下、「第1のシミュレーション結果」という)から、設計対象回路内の各モジュールの消費電力をクロックサイクルごとに見積もる。
さらに、第1のシミュレーション結果と、モジュール間の通信に関するインターフェース情報とから、モジュールごとに、モジュールから送信され送信先のモジュールによって取り込まれたデータ信号のデータ量(以下、「有効データ量」という)をクロックサイクルごとに算出する。このあと、モジュールの消費電力の見積もり結果と有効データ量とから、各モジュールのクロックサイクルごとの電力指標を算出する。
ここで、電力指標とは、消費電力の改善可能性をあらわす指標である。ここでは、電力指標が大きいほど電力的な無駄が多く、消費電力の改善可能性が高いことを意味する。一方、電力指標が小さいほど電力的な無駄が少なく、消費電力の改善可能性が低いことを意味する。各モジュールのクロックサイクルごとの有効データ量および電力指標は、時系列テーブルDB(データベース)に記憶される。
つぎに、設計対象回路の中から任意のモジュールを選択する。そして、時系列テーブルDBにアクセスして、選択されたモジュール(以下、「対象モジュール」という)のクロックサイクルごとの有効データ量と電力指標とを抽出し、有効データ量が「0」の期間でかつ消費電力の改善可能性が高い期間を特定する。任意のモジュールの選択は、たとえば、未選択のモジュールがなくなるまで繰り返しおこなわれる。
このあと、特定された期間継続して対象モジュールへのクロックの供給を停止する制御回路が挿入された設計対象回路の回路情報を生成する。そして、生成された回路情報を用いて、制御回路が挿入された挿入後の設計対象回路の動作を検証するシミュレーションを実行する。
つぎに、制御回路が挿入された挿入後の設計対象回路のシミュレーション結果(以下、「第2のシミュレーション結果」という)と、第1のシミュレーション結果との一致判定をおこなう。ここで、第1および第2のシミュレーション結果が一致する場合、対象モジュールをクロック・ゲーティングの適用対象に決定する。
このとき、対象モジュールにクロック・ゲーティングを適用する期間は、有効データ量が「0」の期間でかつ消費電力の改善可能性が高い期間となる。一方、第1および第2のシミュレーション結果が一致しない場合には、対象モジュールをクロック・ゲーティングの適用対象から除外する。
これにより、クロック・ゲーティングを適用可能なモジュールおよび該モジュールへのクロックの供給を停止する期間を特定することができる。また、クロック・ゲーティングの適用期間が消費電力の改善可能性が高い期間となるため、回路全体の消費電力を効果的に削減することができる。
(有効データ量および電力指標)
ここで、有効データ量および電力指標について説明する。一般に、設計対象回路内のモジュールで消費される電力には、他のモジュールとの通信に費やされる消費電力と、クロック・ゲーティング漏れや不必要な内部通信(ローカルメモリ、下位モジュール間通信など)に費やされる消費電力と、がある。
これら各モジュールの消費電力のうち、クロック・ゲーティング漏れや不必要な内部通信に費やされる消費電力を削減することで、回路全体の低電力化を図ることができる。また、モジュールの全消費電力に対する、クロック・ゲーティング漏れや不必要な内部通信に費やされる無駄な消費電力が占める割合が大きいほど、電力的に効率の悪いモジュールとなる。
換言すれば、全消費電力に対する、他のモジュールとの通信に費やされる消費電力が占める割合が大きいほど、電力的に効率のよいモジュールとなる。ここで、他のモジュールとの通信に費やされる消費電力は、受け渡されるデータ信号の有効データ量に比例して大きくなる。
したがって、送信元のモジュールの消費電力に見合った有効データ量のデータ信号がモジュール間で受け渡されているかどうかで、送信元のモジュールが、電力的に効率のよいモジュールなのか、あるいは、悪いモジュールなのかを判断することができる。また、電力改善をおこなう場合、電力的に効率の悪いモジュールを改善対象とすることで、高い改善効果が期待できる。
有効データ量は、上述したように設計対象回路のシミュレーション結果(上記第1のシミュレーション結果)と、設計対象回路内のモジュールインターフェースごとに、モジュール間のデータ信号の受け渡しを定義するインターフェース情報と、から求めることができる。なお、有効データ量の算出手法の具体的な説明は後述する。
また、電力指標は、各モジュールのクロックサイクルごとの消費電力と、クロックサイクルごとの有効データ量と、から求めることができる。具体的には、たとえば、各モジュールのクロックサイクルごとの消費電力をクロックサイクルごとの有効データ量で除算することで、各モジュールのクロックサイクルごとの電力指標を求めることができる。
この場合、電力指標が大きいほど消費電力の改善可能性が高く、電力指標が小さいほど消費電力の改善可能性が低いこととなる。すなわち、電力指標が大きいモジュールを低電力化の改善対象とすることで、高い改善効果が期待できる。
そこで、本実施の形態では、まず、消費電力の改善可能性をあらわす電力指標を用いて高い改善効果が期待されるクロック・ゲーティングの適用期間を絞り込む。そして、絞り込まれた期間継続して対象モジュールへのクロックの供給を停止した場合の設計対象回路の動作を確認することで、クロック・ゲーティングの適用の可否を判断する。
なお、電力指標の算出手法は上述したものに限らない。たとえば、クロックサイクルごとに有効データ量を消費電力で除算することで、クロックサイクルごとの電力指標を算出することとしてもよい。この場合、電力指標が大きいほど電力的な無駄が少ないことを意味し、電力指標が小さいほど電力的な無駄が多いことを意味する。
(時系列テーブルの記憶内容)
つぎに、図1に示した時系列テーブルDBの記憶内容について説明する。図2は、時系列テーブルDBの記憶内容を示す説明図である。図2において、時系列テーブルDB200には、設計対象回路内のモジュールM1〜Mnごとに、モジュールM1〜Mnの有効データ量と電力指標との時間変化をあらわす時系列テーブルT1〜Tnが記憶されている。
具体的には、時系列テーブルT1〜Tnには、設計対象回路内のモジュールM1〜Mnごとに、シミュレーションの各時刻における有効データ量と、消費電力と、電力指標と、が記憶されている。なお、時刻は、シミュレーションにおける時刻(たとえば、クロックサイクル)をあらわす変数であり、現実の時刻とは異なる。
ここで、モジュールMiを例に挙げて、時系列テーブルTiの具体的な記憶内容について説明する。図3は、時系列テーブルの一例を示す説明図である。図3において、時系列テーブルTiには、各時刻t1〜t12におけるモジュールMiの有効データ量と、消費電力と、電力指標と、が記憶されている。
なお、時刻tj(j=1,2,…12)は、「tj以上でかつtj+1未満」の時刻をあらわしている。ここで、t2を例に挙げると、モジュールMiの有効データ量は100[bit]、消費電力は1010[μW]、電力指標は10[μW/bit]である。
(設計支援装置のハードウェア構成)
つぎに、本実施の形態にかかる設計支援装置のハードウェア構成について説明する。図4は、設計支援装置のハードウェア構成を示すブロック図である。図4において、設計支援装置400は、CPU(Central Processing Unit)401と、ROM(Read‐Only Memory)402と、RAM(Random Access Memory)403と、磁気ディスクドライブ404と、磁気ディスク405と、光ディスクドライブ406と、光ディスク407と、ディスプレイ408と、I/F(Interface)409と、キーボード410と、マウス411と、スキャナ412と、プリンタ413と、を備えている。また、各構成部はバス420によってそれぞれ接続されている。
ここで、CPU401は、設計支援装置400の全体の制御を司る。ROM402は、ブートプログラムなどのプログラムを記憶している。RAM403は、CPU401のワークエリアとして使用される。磁気ディスクドライブ404は、CPU401の制御にしたがって磁気ディスク405に対するデータのリード/ライトを制御する。磁気ディスク405は、磁気ディスクドライブ404の制御で書き込まれたデータを記憶する。
光ディスクドライブ406は、CPU401の制御にしたがって光ディスク407に対するデータのリード/ライトを制御する。光ディスク407は、光ディスクドライブ406の制御で書き込まれたデータを記憶したり、光ディスク407に記憶されたデータをコンピュータに読み取らせたりする。
ディスプレイ408は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ408は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
インターフェース(以下、「I/F」と略する。)409は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク414に接続され、このネットワーク414を介して他の装置に接続される。そして、I/F409は、ネットワーク414と内部のインターフェースを司り、外部の装置からのデータの入出力を制御する。I/F409には、たとえばモデムやLANアダプタなどを採用することができる。
キーボード410は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス411は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
スキャナ412は、画像を光学的に読み取り、設計支援装置400内に画像データを取り込む。なお、スキャナ412は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ413は、画像データや文書データを印刷する。プリンタ413には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
(設計支援装置の機能的構成)
つぎに、設計支援装置400の機能的構成について説明する。図5は、設計支援装置の機能的構成を示すブロック図である。図5において、設計支援装置400は、取得部501と、選択部502と、抽出部503と、検出部504と、出力部505と、比較部506と、判定部507と、挿入部508と、算出部509と、判断部510と、を含む構成である。
この制御部となる機能(取得部501〜判断部510)は、具体的には、たとえば、図4に示したROM402、RAM403、磁気ディスク405、光ディスク407などの記憶領域に記憶されたプログラムをCPU401に実行させることにより、または、I/F409により、その機能を実現する。また、各機能(取得部501〜判断部510)からの出力データは上記記憶領域に保持される。また、図5中矢印で示した接続先の機能は、接続元の機能からの出力データを記憶領域から読み込んで、当該機能に関するプログラムをCPU401に実行させるものとする。
まず、取得部501は、設計対象回路の回路情報を取得する機能を有する。ここで、回路情報とは、たとえば、論理合成後における設計対象回路のネットリストである。ネットリストには、設計対象回路内のモジュールやその内部のセル(FFやRAMなど)の接続関係が、VerilogやVHDL(Very High speed integrated circuit Hardware Description Language)などのハードウェア記述言語を用いて記述されている。回路情報は、たとえば、設計支援装置400に直接入力することとしてもよく、また、外部のコンピュータ装置から取得することとしてもよい。
また、取得部501は、設計対象回路内のモジュールM1〜Mnごとに、モジュールM1〜Mnから送信され送信先のモジュールM1〜Mnによって受信されたデータ信号の時系列の有効データ量と、モジュールM1〜Mnの消費電力の改善可能性をあらわす有効データ量に応じた電力指標と、を取得する機能を有する。
具体的には、たとえば、図2に示した時系列テーブルDB200にアクセスして、モジュールM1〜Mnごとの時系列テーブルT1〜Tnを取得する。なお、時系列テーブルDB200は、設計支援装置400に備えられていてもよく、また、外部のコンピュータ装置に備えられていてもよい。設計支援装置400に備える場合、時系列テーブルDB200は、たとえば、RAM403、磁気ディスク405、光ディスク407などの記憶領域によりその機能を実現する。
選択部502は、設計対象回路の中から任意のモジュールを選択する機能を有する。具体的には、たとえば、取得部501によって取得されたネットリストに記述されているモジュールの名称を手掛かりとして、設計対象回路の中から任意のモジュールを選択する。名称とは、モジュールを一意に特定する名称である。
抽出部503は、時系列テーブルDB200にアクセスして、選択部502によって選択されたモジュール(以下、「対象モジュール」という)に関する有効データ量と電力指標とを抽出する機能を有する。たとえば、設計対象回路の中からモジュールMiが選択された場合、図3に示した時系列テーブルTiを時系列テーブルDB200から抽出する。
検出部504は、抽出部503によって抽出されたデータ量と電力指標とに基づいて、送信先のモジュールがデータ信号を受信していない期間のうち電力指標が消費電力の改善基準を満たす期間を検出する機能を有する。ここで、消費電力の改善基準とは、要求される消費電力の改善可能性の基準である。
具体的には、たとえば、電力指標によって消費電力の改善基準を指定することとしてもよい。ここでは、電力指標が大きいほど消費電力の改善可能性が高いことをあらわしている。このため、検出部504は、送信先のモジュールがデータ信号を受信していない期間のうち、電力指標が所定の閾値以上となる期間を検出することとしてもよい。
上記閾値は、図4に示したキーボード410やマウス411などをユーザが操作することで任意に設定可能である。具体的には、閾値を低く設定するほど、消費電力の大幅な改善が期待される一方で処理時間が増加するトレードオフの関係にある。このため、要求される製品品質や市場投入までの猶予期間などを考慮して、適切な閾値をユーザが設定することとなる。
なお、電力指標が小さいほど消費電力の改善可能性が高いことをあらわしている場合には、検出部504は、送信先のモジュールがデータ信号を受信していない期間のうち、電力指標が所定の閾値以下となる期間を検出することとなる。
また、電力指標を相対評価することで消費電力の改善基準を指定することとしてもよい。具体的には、検出部504は、送信先のモジュールがデータ信号を受信していない期間のうち、電力指標が相対的に高い上位X個(あるいは、上位Y割)の期間を検出することとしてもよい。なお、上記X,Yは任意に設定可能である。
ここで、検出部504による検出処理の概要について説明する。ここでは、送信先のモジュールがデータ信号を受信していない期間のうち、電力指標が所定の閾値以上となる期間を検出する場合を例に挙げて説明する。図6は、検出処理の概要を示す説明図である。
図6において、グラフ610は、モジュールMiの有効データ量の時間変化をあらわすグラフである。また、グラフ620は、モジュールMiの電力指標の時間変化をあらわすグラフである。ここでは、消費電力の改善基準として、電力指標の閾値『200[μW/bit]』が設定されている(グラフ620中点線で示す)。
この場合、検出部504は、送信先のモジュールがデータ信号を受信していない期間「t1〜t2,t3〜t6,t7〜t10,t11〜t12」のうち、電力指標が200以上となる期間「t3〜t4,t7〜t8,t11〜t12」を検出することとなる(図6中グラフ630)。
この期間「t3〜t4,t7〜t8,t11〜t12」は、送信先のモジュールがデータ信号を取り込んでいない期間でかつ消費電力の改善可能性が高い期間である。送信先のモジュールがデータ信号を取り込んでいない期間とは、換言すれば、この期間継続して対象モジュールへのクロックの供給を停止したとしても、検証対象回路の動作が変化しない可能性が高い期間である。つまり、消費電力の改善可能性をあらわす電力指標を用いて、消費電力の高い削減効果が期待されるクロック・ゲーティングの期間候補を検出する。
出力部505は、検出部504によって検出された期間を出力する機能を有する。具体的には、たとえば、対象モジュールの名称と検出部504によって検出された期間とを関連付けて、クロック・ゲーティングの適用期間として出力することとしてもよい。これにより、ユーザは、対象モジュールのクロック・ゲーティング漏れが発生している可能性が高い期間を認識することができる。
なお、出力部505による出力形式としては、たとえば、ディスプレイ408への表示、プリンタ413への印刷出力、I/F409による外部装置への送信がある。また、RAM403、磁気ディスク405、光ディスク407などの記憶領域に記憶することとしてもよい。
比較部506は、設計対象回路(以下、「第1の設計対象回路」という)と、検出部504によって検出された期間継続して対象モジュールへのクロックの供給を停止する制御回路が挿入された設計対象回路(以下、「第2の設計対象回路」という)と、に同一のデータ信号を与えた場合のシミュレーション結果を比較する機能を有する。
シミュレーション結果は、たとえば、各クロックサイクルにおいて値が変化した信号(制御信号、データ信号)をクロックサイクルごとにあらわすVCD(Value Change Dump)ファイルである。なお、対象モジュールへのクロックの供給を停止する制御回路については図9〜図11を用いて後述する。
第1および第2の設計対象回路の動作を検証するシミュレーションは、設計支援装置400において実行することとしてもよく、また、外部のコンピュータ装置(シミュレータ)において実行することとしてもよい。後者の場合、取得部501により、外部のコンピュータ装置からシミュレーション結果を取得することとなる。
ここで、第1および第2の設計対象回路のシミュレーション結果の具体例について説明する。図7は、第1の設計対象回路のシミュレーション結果の具体例を示す説明図である。また、図8は、第2の設計対象回路のシミュレーション結果の具体例を示す説明図である。
図7において、シミュレーション結果700には、第1の設計対象回路のシミュレーション中に値が変化した信号が時系列に示されている。ここで、時刻tb[μsec]を例に挙げると、データ信号「PO」の値が「234」に、データ信号「PS」の値が「345」に変化している。
また、図8において、シミュレーション結果800には、第2の設計対象回路のシミュレーション中に値が変化した信号が時系列に示されている。ここで、時刻ta[μsec]を例に挙げると、制御信号「ck_enab」の値が「0」に、データ信号「Out」の値が「123」に変化している。
なお、シミュレーション結果700,800では、各時刻において値が変化した信号のみを保持することとしたが、それ以外の信号については、前の時刻の値をそのまま保持することとしてもよい。この場合、シミュレーション結果700,800は、各時刻におけるすべての信号の値を保持することとなる。
また、出力部505は、比較部506によって比較された比較結果を出力する機能を有する。具体的には、たとえば、シミュレーション結果700,800の各時刻において値が変化した信号の信号名と値とをそれぞれ対応付けて出力することとしてもよい。これにより、ユーザは、クロック・ゲーティングの適用前後の各時刻におけるシミュレーション結果を確認することができる。
挿入部508は、比較部506によって比較された比較結果に基づいて、検出部504によって検出された期間継続して対象モジュールへのクロックの供給を停止する制御回路を設計対象回路に挿入する機能を有する。ここで、対象モジュールへのクロックの供給を停止する制御回路の具体例について説明する。
図9は、制御回路の具体例を示す説明図である。ここでは、設計対象回路内のモジュールMへのクロックの供給を停止する制御回路について説明する。図9において、モジュールMにクロックを供給するパス上にANDゲートが挿入されている。さらに、検出部504によって検出された期間継続して『ck_enab=0』を出力する制御回路を挿入する。なお、上記期間以外は『ck_enab=1』となる。
これにより、モジュールMへ供給されるクロックが検出部504によって検出された期間継続して変化しないこととなり、対象モジュールへのクロックの供給が停止された状態を作り出すことができる。以下、モジュールMへのクロックの供給を停止する制御回路の具体的な実現手法について説明する。
まず、制御回路を設計対象回路の一部として実現する手法について説明する。図10は、制御回路の回路情報を示す説明図である。図10において、回路情報1000には、検出部504によって検出された期間「t3〜t4,t7〜t8,t11〜t12」継続してモジュールMiへのクロックの供給を停止する制御回路の機能がVerilogを用いて記述されている。なお、シミュレーション時刻をTとする。
この回路情報1000に示す記述内容を設計対象回路の回路情報(Verilogを用いて記述された回路情報)に追加することにより、上記期間継続してモジュールMiへのクロックの供給を停止する制御回路を実現することができる。
つぎに、第2の設計対象回路のシミュレーションを実行する実行ツールのスクリプトによって制御回路を実現する手法について説明する。図11は、スクリプトの具体例を示す説明図である。図11において、スクリプト1100には、検出部504によって検出された期間「t3〜t4,t7〜t8,t11〜t12」継続してモジュールMiへのクロックの供給を停止する命令が記述されている。
具体的には、初期値として「ck_enab」に「1」を与える。そして、時刻「t3,t7,t11」でシミュレーションを一時中断して、「ck_enab」を「0」にし、そのあと、シミュレーションを再開する。また、時刻「t4,t8,t12」でシミュレーションを一時中断して、「ck_enab」を「1」にし、そのあと、シミュレーションを再開する。
これにより、上記期間継続してモジュールMiへのクロックの供給を停止する制御回路を、シミュレーションの動作を制御するスクリプトとして実現することができる。
図5の説明に戻り、判定部507は、比較部506によって比較された比較結果に基づいて、対象モジュールへのクロックの供給を停止する制御回路の挿入前後において検査対象に指定されたデータ信号の値が一致するか否かを判定する機能を有する。検査対象となるデータ信号は、たとえば、キーボード410やマウス411などをユーザが操作することで任意に指定可能である。
具体的には、たとえば、対象モジュールから送信されるデータ信号を検査対象として指定することとしてもよい。なぜなら、制御回路の挿入前後において、対象モジュールの出力信号の値が一致すれば、設計対象回路全体の動作も一致することが保証されるからである。ここで、対象モジュールの出力信号を『Out』とする。
この場合、判定部507は、図7および図8に示したシミュレーション結果700,800の比較結果を参照して、検査対象に指定された『Out』の値が一致するか否かを判定する。ここでは、時刻tcにおける『Out』の値が異なるため、検査対象に指定されたデータ信号の値が不一致と判定することとなる。
また、対象モジュールの出力信号は先のゲートで使用されていない場合も考えられるため、設計対象回路から出力されるデータ信号を検査対象として指定することとしてもよい。これは、回路全体の動作の一致判定は、外部出力信号の値が一致しているか否かを判定することで十分判定可能であるという考えに基づく手法である。ここで、設計対象回路の出力信号を『PO』とする。
この場合、判定部507は、シミュレーション結果700,800の比較結果を参照して、検査対象に指定された『PO』の値が一致するか否かを判定する。ここでは、時刻tbおよびtdにおける『PO』の値が同じため、検査対象に指定されたデータ信号の値が一致すると判定することとなる。
また、設計対象回路の外部出力信号を検査対象に指定すると、複数時刻(上記例では、時刻tbおよびtd)における一致判定が必要となるため、設計対象回路の外部出力信号および回路全体の状態をあらわす内部信号(設計対象回路内の回路素子から出力されるデータ信号)の組み合わせを検査対象として指定することとしてもよい。ここで、内部信号を『PS』とする。
この場合、判定部507は、シミュレーション結果700,800の比較結果を参照して、検査対象に指定された『PO』および『PS』の値が一致するか否かを判定する。ここでは、時刻tbにおける『PO』および『PS』の値が同じため、検査対象に指定されたデータ信号の値が一致すると判定することとなる。
これにより、設計対象回路の外部出力信号を検査対象に指定する場合に比べて、一致判定をおこなう時刻が少なくなり、判定処理にかかる処理時間を短縮することができる。なお、一致判定をおこなう時刻は、内部信号の選び方に依存する。
また、出力部505は、判定部507によって判定された判定結果を出力することとしてもよい。これにより、ユーザは、対象モジュールに対するクロック・ゲーティングの適用の可否を判断することができる。
また、挿入部508は、判定部507によって検査対象に指定されたデータ信号の値が一致すると判定された場合、設計対象回路に制御回路を挿入することとしてもよい。つまり、対象モジュールへのクロックの供給を停止しても設計対象回路の動作が変化しない場合には、制御回路を設計対象回路に自動挿入する。
また、出力部505は、挿入部508によって対象モジュールへのクロックの供給を停止する制御回路が挿入された挿入後の設計対象回路を出力することとしてもよい。具体的には、たとえば、設計対象回路の回路情報に、モジュールMiへのクロックの供給を停止する制御回路の機能が記述された回路情報1000が追加された回路情報を出力する。これにより、対象モジュールにクロック・ゲーティングが適用された設計対象回路を提供することができる。
また、抽出部503は、時系列テーブルDB200にアクセスして、対象モジュールに関する消費電力値を抽出することとしてもよい。具体的には、たとえば、設計対象回路の中からモジュールMiが選択された場合、時系列テーブルDB200から時系列テーブルTiを抽出することとなる。
算出部509は、抽出部503によって抽出された消費電力値に基づいて、検出部504によって検出された期間中に消費された対象モジュールの消費電力値を累積することにより、制御回路を挿入することで改善される消費電力値を算出する機能を有する。具体的には、まず、抽出部503によって抽出された消費電力値から、検出部504によって検出された期間における対象モジュールの消費電力値を特定する。
上述したモジュールMiの例では、時系列テーブルTiから、期間「t3〜t4,t7〜t8,t11〜t12」における消費電力値「300,300,300」をそれぞれ特定する。そして、特定された消費電力値「300,300,300」を累積することにより、制御回路を挿入することで改善される消費電力値「900」を算出する。
また、出力部505は、算出部509によって算出された消費電力値を出力することとしてもよい。具体的には、たとえば、対象モジュールの名称と関連付けて、制御回路を挿入することで改善される消費電力値(たとえば、900[μW])を出力する。これにより、ユーザは、クロック・ゲーティングを適用することで改善される消費電力値を把握することができる。
判断部510は、算出部509によって算出された消費電力値が予め設定された閾値以上か否かを判断する機能を有する。このとき、複数の対象モジュールについて、制御回路を挿入することで改善される消費電力値が算出済みの場合には、複数の消費電力値を累積した消費電力値が、予め設定された閾値以上か否かを判断することとなる。
また、選択部502は、判断部510によって閾値以上と判断されなかった場合、設計対象回路の中から選択されていない未選択のモジュールを選択することとしてもよい。これにより、算出部509によって算出された消費電力値が閾値以上となる、あるいは、未選択のモジュールがなくなるまで、クロック・ゲーティング漏れを探索することができる。
上記閾値は、キーボード410やマウス411などをユーザが操作することで任意に設定可能である。具体的には、閾値を高く設定するほど、消費電力が大幅に改善される一方で処理時間が増加するトレードオフの関係にある。このため、要求される製品品質や市場投入までの猶予期間などを考慮して、適切な値をユーザが設定することとなる。
また、出力部505は、判断部510によって閾値以上と判断された場合、制御回路が挿入された挿入後の設計対象回路を出力することとしてもよい。これにより、予め設定された消費電力の改善目標を満たす設計対象回路を提供することができる。
また、選択部502は、設計対象回路の中から特定の消費電力値以上のモジュールを選択することとしてもよい。具体的には、たとえば、時系列テーブルDB200にアクセスして、モジュールごとに、各時刻における消費電力値を累積することで、各モジュール全体で消費される消費電力値を算出し、特定の消費電力値以上のモジュールを選択する。
より具体的には、任意に設定された特定の消費電力値以上のモジュールを選択することとしてもよく、また、消費電力が最大のモジュールを選択することとしてもよい。これにより、クロック・ゲーティングを適用した場合に大幅な電力改善が期待されるモジュールを選択することができる。
なお、上記抽出部503による消費電力値の抽出処理は、判定部507によって検査対象に指定されたデータ信号の値が一致すると判定された場合にのみ実行することとしてもよい。これにより、クロック・ゲーティングが適用不能にもかかわらず、消費電力値を算出する無駄な処理を削減することができる。
(有効データ量の算出手法)
つぎに、有効データ量の算出手法を具体的に説明する。有効データ量は、設計対象回路のシミュレーション結果(上述した第1のシミュレーション結果に相当)とインターフェース情報(後述するインターフェーステーブル)とから算出する。ここで、設計対象回路のシミュレーション結果およびインターフェーステーブルの具体例について説明する。
図12は、シミュレーション結果の具体例を示す説明図である。図12において、シミュレーション結果1200には、クロックサイクルごとに、値が変化した信号をあらわす信号情報1200−1〜1200−qが示されている。ここで、信号情報1200−pを例に挙げると、クロックサイクルpにおいてデータ信号「WDATA」の値が「3」に、制御信号「RECV」の値が「0」に変化している。
図13は、インターフェーステーブルの具体例を示す説明図である。図13において、インターフェーステーブル1300には、モジュールインターフェースC1〜Csごとに、モジュール間のデータ信号の受け渡しを定義するインターフェース情報1300−1〜1300−sが示されている。
具体的には、インターフェース情報1300−1〜1300−sは、モジュールインターフェースC1〜Csごとに、インターフェース名、送信モジュール名、受信モジュール名、制御条件、データ信号、ビット数、重要度に関する情報を有している。インターフェース名は、モジュール間を接続するモジュールインターフェースC1〜Csの名称である。
送信モジュール名は、送信モジュールの名称である。受信モジュール名は、受信モジュールの名称である。制御条件は、モジュール間のデータ通信が成立する条件である。データ信号は、受け渡し対象となるデータ信号である。ビット数は、データ信号のデータ量である。重要度は、データ信号の重要度をあらわす指標である。
ここで、インターフェース情報1300−1を例に挙げて、モジュール間のデータ通信について説明する。図14は、モジュール間の通信の概要を示す説明図である。図14において、モジュールインターフェースC1を介してモジュールM1とモジュールM2とが通信可能に接続されている。
インターフェース情報1300−1は、モジュールインターフェースC1を介して接続されているモジュールM1とモジュールM2との通信が成立する制御条件「SEND&RECV」を有している。この制御条件は、制御信号「SEND」および「RECV」がともに変化したときに、モジュールM1とモジュールM2との通信が成立することをあらわしている。
具体的には、モジュールM1は、制御信号「SEND」の値が0から1に変化するとデータ信号「DATA[63:0]」を送信する。さらに、モジュールM2は、制御信号「RECV」が0から1に変化するとデータ信号「DATA[63:0]」を受信する。なお、[63:0]は、ビット数を定義したものである。
また、モジュールM1は、制御信号「SEND」の値が1から0に変化するとデータ信号「DATA[63:0]」の送信を止める。さらに、モジュールM2は、制御信号「RECV」が1から0に変化するとデータ信号「DATA[63:0]」の受信を止めることとなる。
また、データ信号「DATA[63:0]」の重要度は1である。これは、重要度をあらわす数値の最低値である。たとえば、インターフェース情報1300−rに示す重要度が1000のデータ信号「ERROR」は、データ信号「DATA[63:0]」に比べて1000倍重要であることを意味している。
以下、シミュレーション結果1200とインターフェーステーブル1300とを用いて有効データ量の算出手法について説明する。有効データ量を算出する場合、まず、信号情報1200−1〜1200−qおよびインターフェース情報1300−1〜1300−sを用いて、モジュールインターフェースC1〜Csごとに制御信号が一致するか否かを判定する。
ここで、モジュールインターフェースC1を例に挙げると、信号情報1200−1〜1200−qから特定される制御信号と、制御条件「SEND&RECV」に定義されている制御信号「SEND」および「RECV」とが一致するか否かを判定する。より詳細に説明すると、クロックサイクル1〜qごとに、制御信号が一致するか否かを順次判定する。
まず、信号情報1200−1によれば、クロックサイクル1において、制御信号「SEND」が0から1に変化している。このため、制御条件「SEND&RECV」に定義されている制御信号「SEND」および「RECV」のうち、制御信号「SEND」のみが一致したと判定する。
つぎに、信号情報1200−2によれば、クロックサイクル2において、制御信号「RECV」が0から1に変化している。このため、クロックサイクル1,2において値が変化した制御信号「SEND」および「RECV」と、制御条件「SEND&RECV」に定義されている制御信号「SEND」および「RECV」とが一致したと判定する。
そして、制御信号が一致すると判定された場合、制御条件の成立回数を計数する。上述した例では、制御信号「SEND」および「RECV」が一致したと判定された場合に、モジュールインターフェースC1の制御条件「SEND&RECV」の成立回数をインクリメントすることとなる。
このようにして、インターフェース情報1300−1〜1300−sに示すモジュールインターフェースC1〜Csごとに、信号情報1200−1〜1200−qに示す全クロックサイクル1〜qにおける制御信号の一致判定をおこなう。そして、制御信号が一致すると判定されると、その都度、その制御条件の成立回数を計数する。
このあと、計数された計数結果と、制御条件の成立時にモジュール間で送受信される有効データ信号のビット数とを用いて、送信モジュールから送信されるデータ信号の有効データ量を算出する。具体的には、たとえば、下記式(1)を用いて、送信モジュールごとの有効データ量を算出することができる。ただし、制御条件の成立回数をF、制御条件の成立時にモジュール間で送受信されるデータ信号のビット数をBとする。
Di=F×B …(1)
たとえば、モジュールインターフェースC1の制御条件「SEND&RECV」の成立回数が10回(計数結果が10)であった場合、上記式(1)に制御条件の成立回数「10」およびデータ信号のビット数「64」を代入することにより、モジュールM1の有効データ量(640[bit])を求めることができる。
また、有効データ量を、データ信号のビット数だけでなく、そのデータ信号の重要度を考慮して算出することとしてもよい。具体的には、たとえば、下記式(2)を用いて、モジュールごとの有効データ量を算出することができる。ただし、制御条件の成立時にモジュール間で送受信される有効データ信号の重要度をIとする。
Di=F×B×I …(2)
たとえば、モジュールインターフェースCrの制御条件「ERROR.rise」の成立回数が1回であった場合、上記式(2)に制御条件の成立回数「1」とデータ信号のビット数「1」と重要度「1000」を代入することにより、モジュールM1の有効データ量(1000[bit])を求めることができる。
(設計支援装置の設計支援処理手順)
つぎに、本実施の形態にかかる設計支援装置400の設計支援処理手順について説明する。図15は、設計支援装置の設計支援処理手順の一例を示すフローチャートである。図15のフローチャートにおいて、まず、取得部501により、設計対象回路の回路情報を取得したか否かを判断する(ステップS1501)。
ここで、設計対象回路の回路情報を取得するのを待って(ステップS1501:No)、取得した場合(ステップS1501:Yes)、選択部502により、取得された回路情報に基づいて、設計対象回路の中から任意のモジュールを選択する(ステップS1502)。
このあと、抽出部503により、時系列テーブルDB200にアクセスして、選択されたモジュール(以下、「対象モジュール」という)に関する有効データ量と電力指標とを抽出する(ステップS1503)。そして、検出部504により、抽出された有効データ量と電力指標とに基づいて、送信先のモジュールがデータ信号を受信していない期間のうち電力指標が予め設定された閾値以上となる期間を検出する(ステップS1504)。
つぎに、取得部501により、設計対象回路(以下、「第1の設計対象回路」という)と、検出された期間継続して対象モジュールへのクロックの供給を停止する制御回路が挿入された設計対象回路(以下、「第2の設計対象回路」という)と、に同一のデータ信号を与えた場合のシミュレーション結果をそれぞれ取得する(ステップS1505)。
そして、比較部506により、第1および第2の設計対象回路のシミュレーション結果を比較して(ステップS1506)、判定部507により、制御回路の挿入前後において検査対象に指定されたデータ信号の値が一致するか否かを判定する(ステップS1507)。
ここで、検査対象に指定されたデータ信号の値が一致しない場合には(ステップS1507:No)、ステップS1502に戻って、選択部502により、設計対象回路の中から未選択のモジュールを選択する。
一方、検査対象に指定されたデータ信号の値が一致する場合には(ステップS1507:Yes)、挿入部508により、設計対象回路に検出された期間継続して対象モジュールへのクロックの供給を停止する制御回路を挿入する(ステップS1508)。
このあと、抽出部503により、時系列テーブルDBにアクセスして、対象モジュールに関する消費電力値を抽出し(ステップS1509)、算出部509により、抽出された消費電力値に基づいて、検出された期間中に消費された対象モジュールの消費電力値を累積することにより、制御回路を挿入することで改善される消費電力値を算出する(ステップS1510)。
そして、判断部510により、算出された消費電力値が目標値に達したか否かを判断し(ステップS1511)、目標値に達していない場合には(ステップS1511:No)、ステップS1502に戻って、選択部502により、設計対象回路の中から未選択のモジュールを選択する。
一方、目標値に達した場合には(ステップS1511:Yes)、最後に、出力部505により、制御回路が挿入された挿入後の設計対象回路を出力して(ステップS1512)、本フローチャートによる一連の処理を終了する。
以上説明したように、本実施の形態によれば、消費電力の改善可能性をあらわす電力指標を用いて、クロック・ゲーティングを適用可能な期間をモジュールごとに自動検出することができる。さらに、検出される期間は消費電力の改善可能性が高い期間となるため、効率的かつ効果的な電力改善をおこなうことができる。
また、従来の設計ツールのように、設計対象回路の動作を詳細に解析してクロック・ゲーティングの適用の可否をモジュールごとに検証する必要がないため、回路規模の大きな回路にも適用することができる。さらに、電力改善の作業者が設計対象回路の動作を詳細に理解しておく必要がないため、作業者と設計者とが異なる場合であっても、作業効率を低下させることなく、電力改善をおこなうことができる。
このようなことから、本実施の形態によれば、設計対象回路の電力改善にかかる作業負担および作業時間を軽減させ、設計期間の短縮化を図ることができる。
なお、本実施の形態で説明した設計支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、このプログラムは、インターネットなどのネットワークを介して配布することが可能な媒体であってもよい。
また、本実施の形態で説明した設計支援装置400は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、たとえば、上述した設計支援装置400の機能(取得部501〜判断部510)をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、設計支援装置400を製造することができる。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)設計対象回路内のモジュールごとに、当該モジュールから送信され送信先のモジュールによって受信されたデータ信号の時系列のデータ量と、前記モジュールの消費電力の改善可能性をあらわす前記データ量に応じた電力指標と、を記憶するテーブルにアクセス可能なコンピュータを、
前記設計対象回路の中から任意のモジュールを選択する選択手段、
前記テーブルにアクセスして、前記選択手段によって選択されたモジュールに関するデータ量と電力指標とを抽出する抽出手段、
前記抽出手段によって抽出されたデータ量と電力指標とに基づいて、前記送信先のモジュールが前記データ信号を受信していない期間のうち前記電力指標が消費電力の改善基準を満たす期間を検出する検出手段、
前記検出手段によって検出された期間を出力する出力手段、
として機能させることを特徴とする設計支援プログラム。
(付記2)前記コンピュータを、
前記設計対象回路と、前記検出手段によって検出された期間継続して前記選択手段によって選択されたモジュールへのクロックの供給を停止する制御回路が挿入された前記設計対象回路と、に同一のデータ信号を与えた場合のシミュレーション結果を比較する比較手段として機能させ、
前記出力手段は、
前記比較手段によって比較された比較結果を出力することを特徴とする付記1に記載の設計支援プログラム。
(付記3)前記コンピュータを、
前記比較手段によって比較された比較結果に基づいて、前記設計対象回路に前記制御回路を挿入する挿入手段として機能させ、
前記出力手段は、
前記挿入手段によって前記制御回路が挿入された挿入後の設計対象回路を出力することを特徴とする付記2に記載の設計支援プログラム。
(付記4)前記コンピュータを、
前記比較手段によって比較された比較結果に基づいて、前記制御回路の挿入前後において検査対象に指定されたデータ信号の値が一致するか否かを判定する判定手段として機能させ、
前記出力手段は、
前記判定手段によって判定された判定結果を出力することを特徴とする付記3に記載の設計支援プログラム。
(付記5)前記挿入手段は、
前記判定手段によって前記検査対象に指定されたデータ信号の値が一致すると判定された場合、前記設計対象回路に前記制御回路を挿入することを特徴とする付記4に記載の設計支援プログラム。
(付記6)前記判定手段は、
前記制御回路の挿入前後において、前記選択手段によって選択されたモジュールから送信されるデータ信号の値が一致するか否かを判定することを特徴とする付記4または5に記載の設計支援プログラム。
(付記7)前記判定手段は、
前記制御回路の挿入前後において、前記設計対象回路から出力されるデータ信号の値が一致するか否かを判定することを特徴とする付記4または5に記載の設計支援プログラム。
(付記8)前記判定手段は、
前記制御回路の挿入前後において、前記設計対象回路から出力されるデータ信号の値および前記設計対象回路内の任意の回路素子から出力されるデータ信号の値がそれぞれ一致するか否かを判定することを特徴とする付記4または5に記載の設計支援プログラム。
(付記9)前記テーブルは、
さらに、前記モジュールごとに見積もられた当該モジュールの時系列の消費電力値を記憶しており、
前記コンピュータを、
前記設計対象回路に前記制御回路を挿入することで改善される消費電力値を算出する算出手段として機能させ、
前記抽出手段は、
前記テーブルにアクセスして、前記選択手段によって選択されたモジュールに関する消費電力値を抽出し、
前記算出手段は、
前記抽出手段によって抽出された消費電力値に基づいて、前記検出手段によって検出された期間中に消費された前記モジュールの消費電力値を累積することにより、前記制御回路を挿入することで改善される消費電力値を算出し、
前記出力手段は、
前記算出手段によって算出された消費電力値を出力することを特徴とする付記1〜8のいずれか一つに記載の設計支援プログラム。
(付記10)前記コンピュータを、
前記算出手段によって算出された消費電力値が予め設定された閾値以上か否かを判断する判断手段として機能させ、
前記選択手段は、
前記判断手段によって閾値以上と判断されなかった場合、前記設計対象回路の中から選択されていない未選択のモジュールを選択することを特徴とする付記9に記載の設計支援プログラム。
(付記11)前記選択手段は、
前記テーブルにアクセスして、前記設計対象回路の中から特定の消費電力値以上のモジュールを選択することを特徴とする付記10に記載の設計支援プログラム。
(付記12)前記選択手段は、
前記設計対象回路の中から消費電力が最大のモジュールを選択することを特徴とする付記11に記載の設計支援プログラム。
(付記13)前記検出手段は、
前記送信先のモジュールが前記データ信号を受信していない期間のうち、前記電力指標が所定の閾値以上となる期間を検出することを特徴とする付記1〜12のいずれか一つに記載の設計支援プログラム。
(付記14)付記1〜13のいずれか一つに記載の設計支援プログラムを記録したコンピュータに読み取り可能な記録媒体。
(付記15)設計対象回路内のモジュールごとに、当該モジュールから送信され送信先のモジュールによって受信されたデータ信号の時系列のデータ量と、前記モジュールの消費電力の改善可能性をあらわす前記データ量に応じた電力指標と、を記憶するテーブルにアクセス可能な設計支援装置であって、
前記設計対象回路の中から任意のモジュールを選択する選択手段と、
前記テーブルにアクセスして、前記選択手段によって選択されたモジュールに関するデータ量と電力指標とを抽出する抽出手段と、
前記抽出手段によって抽出されたデータ量と電力指標とに基づいて、前記送信先のモジュールが前記データ信号を受信していない期間のうち前記電力指標が消費電力の改善基準を満たす期間を検出する検出手段と、
前記検出手段によって検出された期間を出力する出力手段と、
を備えることを特徴とする設計支援装置。
(付記16)制御手段および記憶手段を備え、設計対象回路内のモジュールごとに、当該モジュールから送信され送信先のモジュールによって受信されたデータ信号の時系列のデータ量と、前記モジュールの消費電力の改善可能性をあらわす前記データ量に応じた電力指標と、を記憶するテーブルにアクセス可能なコンピュータが、
前記制御手段により、前記設計対象回路の中から任意のモジュールを選択する選択工程と、
前記制御手段により、前記テーブルにアクセスして、前記選択工程によって選択されたモジュールに関するデータ量と電力指標とを抽出する抽出工程と、
前記制御手段により、前記抽出工程によって抽出されたデータ量と電力指標とに基づいて、前記送信先のモジュールが前記データ信号を受信していない期間のうち前記電力指標が消費電力の改善基準を満たす期間を検出する検出工程と、
前記制御手段により、前記検出工程によって検出された期間を出力する出力工程と、
を実行することを特徴とする設計支援方法。
本実施の形態の概要を示す説明図である。 時系列テーブルDBの記憶内容を示す説明図である。 時系列テーブルの一例を示す説明図である。 設計支援装置のハードウェア構成を示すブロック図である。 設計支援装置の機能的構成を示すブロック図である。 検出処理の概要を示す説明図である。 第1の設計対象回路のシミュレーション結果の具体例を示す説明図である。 第2の設計対象回路のシミュレーション結果の具体例を示す説明図である。 制御回路の具体例を示す説明図である。 制御回路の回路情報を示す説明図である。 スクリプトの具体例を示す説明図である。 シミュレーション結果の具体例を示す説明図である。 インターフェーステーブルの具体例を示す説明図である。 モジュール間の通信の概要を示す説明図である。 設計支援装置の設計支援処理手順の一例を示すフローチャートである。
符号の説明
200 時系列テーブルDB
501 取得部
502 選択部
503 抽出部
504 検出部
505 出力部
506 比較部
507 判定部
508 挿入部
509 算出部
510 判断部

Claims (8)

  1. 設計対象回路内のモジュールごとに、当該モジュールから送信され送信先のモジュールによって受信されたデータ信号の時系列のクロックサイクルごとのデータ量と、前記モジュールのクロックサイクルごとの消費電力および前記データ量に基づく前記モジュールの消費電力の改善可能性をあらわ電力指標と、を記憶するテーブルにアクセス可能なコンピュータを、
    前記設計対象回路の中から任意のモジュールを選択する選択手段、
    前記テーブルにアクセスして、前記選択手段によって選択されたモジュールに関するデータ量と電力指標とを抽出する抽出手段、
    前記抽出手段によって抽出されたデータ量と電力指標とに基づいて、前記送信先のモジュールが前記データ信号を受信していない期間のうち前記電力指標が消費電力の改善基準を満たす期間を検出する検出手段、
    前記検出手段によって検出された期間を出力する出力手段、
    として機能させることを特徴とする設計支援プログラム。
  2. 前記コンピュータを、
    前記設計対象回路と、前記検出手段によって検出された期間継続して前記選択手段によって選択されたモジュールへのクロックの供給を停止する制御回路が挿入された前記設計対象回路と、に同一のデータ信号を与えた場合のシミュレーション結果を比較する比較手段として機能させ、
    前記出力手段は、
    前記比較手段によって比較された比較結果を出力することを特徴とする請求項1に記載の設計支援プログラム。
  3. 前記コンピュータを、
    前記比較手段によって比較された比較結果に基づいて、前記設計対象回路に前記制御回路を挿入する挿入手段として機能させ、
    前記出力手段は、
    前記挿入手段によって前記制御回路が挿入された挿入後の設計対象回路を出力することを特徴とする請求項2に記載の設計支援プログラム。
  4. 前記コンピュータを、
    前記比較手段によって比較された比較結果に基づいて、前記制御回路の挿入前後において検査対象に指定されたデータ信号の値が一致するか否かを判定する判定手段として機能させ、
    前記出力手段は、
    前記判定手段によって判定された判定結果を出力することを特徴とする請求項3に記載の設計支援プログラム。
  5. 前記挿入手段は、
    前記判定手段によって前記検査対象に指定されたデータ信号の値が一致すると判定された場合、前記設計対象回路に前記制御回路を挿入することを特徴とする請求項4に記載の設計支援プログラム。
  6. 前記テーブルは、
    さらに、前記モジュールごとに見積もられた当該モジュールの時系列の消費電力値を記憶しており、
    前記コンピュータを、
    前記設計対象回路に前記制御回路を挿入することで改善される消費電力値を算出する算出手段として機能させ、
    前記抽出手段は、
    前記テーブルにアクセスして、前記選択手段によって選択されたモジュールに関する消費電力値を抽出し、
    前記算出手段は、
    前記抽出手段によって抽出された消費電力値に基づいて、前記検出手段によって検出された期間中に消費された前記モジュールの消費電力値を累積することにより、前記制御回路を挿入することで改善される消費電力値を算出し、
    前記出力手段は、
    前記算出手段によって算出された消費電力値を出力することを特徴とする請求項1〜5のいずれか一つに記載の設計支援プログラム。
  7. 設計対象回路内のモジュールごとに、当該モジュールから送信され送信先のモジュールによって受信されたデータ信号の時系列のクロックサイクルごとのデータ量と、前記モジュールのクロックサイクルごとの消費電力および前記データ量に基づく前記モジュールの消費電力の改善可能性をあらわ電力指標と、を記憶するテーブルにアクセス可能な設計支援装置であって、
    前記設計対象回路の中から任意のモジュールを選択する選択手段と、
    前記テーブルにアクセスして、前記選択手段によって選択されたモジュールに関するデータ量と電力指標とを抽出する抽出手段と、
    前記抽出手段によって抽出されたデータ量と電力指標とに基づいて、前記送信先のモジュールが前記データ信号を受信していない期間のうち前記電力指標が消費電力の改善基準を満たす期間を検出する検出手段と、
    前記検出手段によって検出された期間を出力する出力手段と、
    を備えることを特徴とする設計支援装置。
  8. 制御手段および記憶手段を備え、設計対象回路内のモジュールごとに、当該モジュールから送信され送信先のモジュールによって受信されたデータ信号の時系列のクロックサイクルごとのデータ量と、前記モジュールのクロックサイクルごとの消費電力および前記データ量に基づく前記モジュールの消費電力の改善可能性をあらわ電力指標と、を記憶するテーブルにアクセス可能なコンピュータが、
    前記制御手段により、前記設計対象回路の中から任意のモジュールを選択する選択工程と、
    前記制御手段により、前記テーブルにアクセスして、前記選択工程によって選択されたモジュールに関するデータ量と電力指標とを抽出する抽出工程と、
    前記制御手段により、前記抽出工程によって抽出されたデータ量と電力指標とに基づいて、前記送信先のモジュールが前記データ信号を受信していない期間のうち前記電力指標が消費電力の改善基準を満たす期間を検出する検出工程と、
    前記制御手段により、前記検出工程によって検出された期間を出力する出力工程と、
    を実行することを特徴とする設計支援方法。
JP2008123170A 2008-05-09 2008-05-09 設計支援プログラム、設計支援装置、および設計支援方法 Expired - Fee Related JP5056573B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008123170A JP5056573B2 (ja) 2008-05-09 2008-05-09 設計支援プログラム、設計支援装置、および設計支援方法
US12/356,689 US8065643B2 (en) 2008-05-09 2009-01-21 Verification support apparatus, verification support method, and computer product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008123170A JP5056573B2 (ja) 2008-05-09 2008-05-09 設計支援プログラム、設計支援装置、および設計支援方法

Publications (2)

Publication Number Publication Date
JP2009271818A JP2009271818A (ja) 2009-11-19
JP5056573B2 true JP5056573B2 (ja) 2012-10-24

Family

ID=41267920

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008123170A Expired - Fee Related JP5056573B2 (ja) 2008-05-09 2008-05-09 設計支援プログラム、設計支援装置、および設計支援方法

Country Status (2)

Country Link
US (1) US8065643B2 (ja)
JP (1) JP5056573B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100269074A1 (en) * 2009-04-17 2010-10-21 Lsi Corporation Predictive Power Management Semiconductor Design Tool and Methods for Using Such
US8302043B2 (en) * 2009-09-17 2012-10-30 International Business Machines Corporation Verification of logic circuit designs using dynamic clock gating
US8356194B2 (en) 2010-01-28 2013-01-15 Cavium, Inc. Method and apparatus for estimating overshoot power after estimating power of executing events
US8656326B1 (en) 2013-02-13 2014-02-18 Atrenta, Inc. Sequential clock gating using net activity and XOR technique on semiconductor designs including already gated pipeline design
US9671844B2 (en) 2013-09-26 2017-06-06 Cavium, Inc. Method and apparatus for managing global chip power on a multicore system on chip
US20160307048A1 (en) * 2015-04-17 2016-10-20 General Electric Company Simulating camera node output for parking policy management system
US10380430B2 (en) 2015-04-17 2019-08-13 Current Lighting Solutions, Llc User interfaces for parking zone creation
US10043307B2 (en) 2015-04-17 2018-08-07 General Electric Company Monitoring parking rule violations
US10585995B2 (en) * 2017-06-26 2020-03-10 International Business Machines Corporation Reducing clock power consumption of a computer processor
US11112819B2 (en) * 2018-08-28 2021-09-07 Microchip Technology Incorporated Method of clock gate analysis for improved efficiency of electronic circuitry system designs and related systems, methods and devices

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3510335B2 (ja) * 1994-07-18 2004-03-29 株式会社ルネサステクノロジ 半導体記憶装置、内部電源電圧発生回路、内部高電圧発生回路、中間電圧発生回路、定電流源、および基準電圧発生回路
JP2002366596A (ja) * 2001-06-11 2002-12-20 Sharp Corp 高位合成装置および高位合成方法、高位合成方法による論理回路の製造方法、記録媒体
JP2003330988A (ja) * 2002-05-15 2003-11-21 Fujitsu Ltd 論理回路設計方法及び装置
ATE504446T1 (de) * 2002-12-02 2011-04-15 Silverbrook Res Pty Ltd Totdüsenausgleich
US20050159907A1 (en) * 2004-01-16 2005-07-21 International Business Machines Corporation Method and apparatus for VLSI clock gated power estimation using LCB counts
TWI324298B (en) * 2006-10-04 2010-05-01 Via Tech Inc Power management methods and systems

Also Published As

Publication number Publication date
US20090282377A1 (en) 2009-11-12
US8065643B2 (en) 2011-11-22
JP2009271818A (ja) 2009-11-19

Similar Documents

Publication Publication Date Title
JP5056573B2 (ja) 設計支援プログラム、設計支援装置、および設計支援方法
JP4704299B2 (ja) Lsiの消費電力ピーク見積プログラム及びその装置
JP4696051B2 (ja) 消費電力解析方法及びプログラム
JP4275659B2 (ja) 遅延解析プログラム、遅延解析装置、および遅延解析方法
JP4651620B2 (ja) 電力算出装置、電力算出方法、耐タンパ性評価装置及び耐タンパ性評価方法
US20080244478A1 (en) Model generation method and model generation apparatus of semiconductor device
US7888971B2 (en) Verification support system and method
US7360187B2 (en) Mixed mode verifier
US9021289B2 (en) Method and system for power estimation based on a number of signal changes
US20060190861A1 (en) Method and apparatus for evaluating coverage of circuit, and computer product
JP5262442B2 (ja) 設計支援プログラム、設計支援装置、および設計支援方法
US8024684B2 (en) Apparatus, method, and computer product for estimating power consumption of LSI
JP5277781B2 (ja) 消費電力見積プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、消費電力見積装置、および消費電力見積方法
US7299437B2 (en) Method and apparatus for detecting timing exception path and computer product
Evmorfopoulos et al. Precise identification of the worst-case voltage drop conditions in power grid verification
US7552411B2 (en) LSI analysis method, LSI analysis apparatus, and computer product
JP2007272288A (ja) 消費電力算出プログラム、記録媒体、消費電力算出方法、および消費電力算出装置
US7681161B2 (en) Circuit delay analyzer, circuit delay analyzing method, and computer product
JP2008004024A (ja) レイアウト設計プログラム、該プログラムを記録した記録媒体、レイアウト設計装置、およびレイアウト設計方法
US7694248B2 (en) Method and apparatus for supporting verification, and computer product
Chang et al. InVerS: an incremental verification system with circuit similarity metrics and error visualization
US11763051B2 (en) State dependent and path dependent power estimation
JP5233786B2 (ja) 見積もり支援プログラム、見積もり支援装置および見積もり支援方法
JP5098517B2 (ja) 消費電力解析方法及び消費電力解析装置
JP2010271853A (ja) 検証支援プログラム、検証支援装置、および検証支援方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120306

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120507

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120703

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120716

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150810

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees