JP5287132B2 - 設計支援プログラム、設計支援装置、およびシミュレーションモデル - Google Patents

設計支援プログラム、設計支援装置、およびシミュレーションモデル Download PDF

Info

Publication number
JP5287132B2
JP5287132B2 JP2008268962A JP2008268962A JP5287132B2 JP 5287132 B2 JP5287132 B2 JP 5287132B2 JP 2008268962 A JP2008268962 A JP 2008268962A JP 2008268962 A JP2008268962 A JP 2008268962A JP 5287132 B2 JP5287132 B2 JP 5287132B2
Authority
JP
Japan
Prior art keywords
request
traffic
simulation
abstraction
pseudo
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
JP2008268962A
Other languages
English (en)
Other versions
JP2010097493A (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 JP2008268962A priority Critical patent/JP5287132B2/ja
Publication of JP2010097493A publication Critical patent/JP2010097493A/ja
Application granted granted Critical
Publication of JP5287132B2 publication Critical patent/JP5287132B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

この発明は、測定ポイントからのリクエストを測定対象に与えて当該リクエストに応じたシミュレーションを実行する設計支援プログラム、設計支援装置、およびシミュレーションモデルに関する。
一般に、被測定モデルのシミュレーションでは、外部からのリクエストから外部へのレスポンスを出力するまでの間、被測定モデルは時間経過に沿って途中処理の入出力を発生する。システム性能とは、これらの処理時間(要求から応答までのレイテンシ)や途中発生するトラフィックが、他のハードウェア部品と相互に影響を及ぼしあいながら決定されるものである。
したがって、被測定モデルが途中処理のために入出力をおこなった場合、システム上において、バスなどの共有するデバイス上でこの入出力が他のハードウェア部品の入出力と衝突した場合、順番待ちが発生することにより、応答性能は間延びしていく。このため、システム性能としては、着目した被測定モデルは、他のハードウェア部品との相互作用がない理想的な状態に比べて、待ち時間によるオーバーヘッドを発生する。さらにこのオーバーヘッドが、他の部品の動作の挙動をみだし、他の部品の乱された挙動が、再び被測定モデルの挙動に影響を与える。
また、このような相互作用の結果、極端にオーバーヘッドが大きくなるような部分は、システム性能のボトルネックとして捉えられ、チューニングの対象となる。オーバーヘッドを測定するため、もっとも正確な値を得るには実際のデバイスを利用し、現物のシステムを構築、測定することになる。
しかし、この測定を実施するためには、コストと時間をかけデバイスの配線を行い、工場を稼動させシリコンを引き上げ、評価ボード環境を開発しなければならない。ここで得られた結果に問題があった場合、再度設計からやりなおし、再びシリコンの段階へもどらなければならない。そこで、近年、システムLSI(Large Scale Integration)の開発時におけるシミュレーションによる設計技術が進められている。主にこれはESL(Electronic System Level)技術と呼ばれ、システムLSIの設計を、段階ごとに詳細性(抽象性)を変えながら設計を行う技術である。
図16は、ESL技術の開発工程を示す説明図である。ESLでは、(A)システム全体設計、(B)ハードウェア(HW)設計、(C)HW実装、(D)ソフトウェア(SW)設計およびSW実装の順に開発がおこなわれる。また、図16において、抽象度が低いほど詳細化される。Function/Instruction Levelが最も抽象度が高く、Accuracy Levelが中程度、そして、Cycle Levelが最も低い抽象度である。
(A)システム全体設計は高い抽象度から低い抽象度まで網羅する。具体的には、機能、結線レベルのシミュレーションを実行し、概略的な性能や傾向をつかむ。(B)HW設計では、抽象度が必ずしもCycle Levelである必要はなく、論理設計の補助として実施される。(A)よりも高い精度で設計を詰めることとなる。
(C)HW実装では、RTL(Register Transfer Level)論理シミュレーション検証フェーズに対して、100%に近い精度で検証することができる。すなわち、(C)では実装の正しさが検証されるため、曖昧性はなく、最も低い抽象度が求められる。(D)SW設計およびSW実装は、機能検証のためにおこなわれるフェーズであり、高速シミュレーションが求められる。(D)ではソフトウェアのフェーズであるため、ハードウェアの詳細な動作は関係ないため、曖昧さがあってもよい。
このように、従来では、異なる抽象度のシミュレーションが必要になった場合、大別して以下の3つの手法を用いていた。
(1)最も抽象度の低い(精度の高い)シミュレーションモデルを準備し、すべての設計フェーズに適用をおこなう。
(2)RTL設計データなどの実設計データから、翻訳ツールを用いてESLシミュレーションモデルをコンパイルにより生成する。
(3)(A)〜(C)個々のフェーズで必要とされる抽象度をもつシミュレーションモデルを別々に作成する。
また、各種抽象度を用いた設計技術については、下記特許文献1〜4が開示されている。
特開2007−11477号公報 特開2000−259683号公報 特開平10−240582号公報 特開2006−221474号公報
しかしながら、上述した従来手法(1)では、ソフトウェアの大局的な動作をトレースしたい場合、必要以上の精度でシミュレーションが動作してしまうこととなり、シミュレーション自体の時間がかかってしまう。たとえば、(A)や(B)のフェーズにおいて(C)の抽象度のシミュレーションモデルを使用すると、詳細なシミュレーション結果は得られるが、シミュレーション速度が低下する。(A)や(B)のフェーズでは、システム全体の動作がわかれば十分であり、詳細な情報は不要であるため、シミュレーション時間がかかり、本来のESLシミュレーションの目的とする高抽象度動作における高速性を生かすことができないという問題があった。
また、上述した従来手法(2)では、RTL設計データを準備することが必須であり、RTL設計データが存在しない場合には適用することができない。本来、ESLシミュレーションではRTL設計を完成させるために実施するためのシミュレーションであるが、従来手法(2)では、RTL設計を完了してあることが前提となるため、設計工数が増大するという問題があった。
また、上述した従来手法(3)では、最も単純で所望の抽象度のシミュレーションモデルを得ることができるが、シミュレーションモデルの開発者は個々のフェーズに対して、個々のシミュレーションモデルを開発する必要性がある。したがって、フェーズごとに当該フェーズに応じた抽象度のシミュレーションモデルを作成すると、その抽象度モデルの作成に負担や工数がかかるという問題があった。
また、上述した特許文献1〜4の技術では、すべての抽象度には対応していないため、上述した従来手法(1)〜(3)と同様の問題が生じることとなる。このように、(A)〜(C)のフェーズにおいて、不足している抽象度のシミュレーションモデルをあらたに作成しても、また、既存の抽象度のシミュレーションモデルを他のフェーズに流用しても、設計期間が長期化するという問題があった。
本開示技術は、上述した従来技術による問題点を解消するため、シミュレーション段階での抽象度変更に柔軟に対応して設計期間の短縮化を図ることができる設計支援プログラム、設計支援装置、およびシミュレーションモデルを提供することを目的とする。
上述した課題を解決し、目的を達成するため、この設計支援プログラム、設計支援装置、およびシミュレーションモデルは、測定対象に測定ポイントからのリクエストを与えて当該リクエストに応じたシミュレーションを実行するにあたって、前記リクエストを解析し、前記リクエストの解析内容および開発工程に関する抽象度から選ばれた任意の抽象度に応じて、前記シミュレーションにおける各処理の演算結果に関する擬似トラフィックを生成し、前記選ばれた任意の抽象度が特定の抽象度である場合、リクエスト種別に応じたトラフィックに関する出力波形を記憶するデータベースの中から、前記リクエストに該当する前記測定対象からの平均化された出力波形を抽出することにより、当該平均化された出力波形に応じた擬似トラフィックを生成し、前記各処理の所要時間を当該所要時間よりも短い所要時間に設定し、前記リクエストにより前記シミュレーションが開始された場合、前記各処理の演算結果を前記測定対象に読み書きさせ、生成された擬似トラフィックおよび前記リクエストに対する前記測定対象からのレスポンスを入力して、前記短い所要時間の積算時間経過後でかつ前記擬似トラフィックの出力終了後に前記レスポンスを出力することを要件とする。
この設計支援プログラム、設計支援装置、およびシミュレーションモデルによれば、指定された抽象度に応じたシミュレーションを1種のシミュレーションモデルで実行することができる。
この設計支援プログラム、設計支援装置、およびシミュレーションモデルによれば、シミュレーション段階での抽象度変更に柔軟に対応して設計期間の短縮化を図ることができるという効果を奏する。
以下に添付図面を参照して、この設計支援プログラム、設計支援装置、およびシミュレーションモデルの好適な実施の形態を詳細に説明する。
(本実施の形態の概要)
図1は、本実施の形態の概要を示す説明図である。図1において、設計対象であるシステムLSIモデル100では、被測定モデル101と測定ポイント(バスや周辺ハードウェアモデル)102とがバス103を介して接続されている。被測定モデル101とは、本実施の形態での測定対象となるハードウェアモデルである。測定ポイント102とは、被測定モデル101以外のハードウェアモデルであり、被測定モデル101におけるシミュレーションの挙動を観測する。すなわち、被測定モデル101に対してリクエストを送信したり、被測定モデル101からのレスポンスを受信する。
本実施の形態では、被測定モデル101とバス103との間に可変抽象ラッパ104を挿入する。可変抽象ラッパ104とは、被測定モデル101をラッピングするシミュレーションモデルである。可変抽象ラッパ104は、高抽象度(Function/Instruction Level)、中抽象度(Accuracy Level)、低抽象度(Cycle Level)のどの抽象度にも可変可能なシミュレーションモデルである。抽象度は、ユーザ操作により設定される。
この可変抽象ラッパ104にあらかじめ抽象度を指定しておき、測定ポイント102から被測定モデル101にリクエストを送信すると、可変抽象ラッパ104が被測定モデル101にリクエストを出力する。被測定モデル101では、リクエストに応じたシミュレーションが実行される。一方、可変抽象ラッパ104はリクエストを解析して、リクエストに応じたシミュレーションの擬似トラフィックを測定ポイント102に返す。その後、可変抽象ラッパ104は、被測定モデル101からの最終演算結果をレスポンスとして測定ポイント102に返す。
この可変抽象ラッパ104は、ライブラリに保存されており、ユーザ操作によりユーザが操作するシミュレータ内の記憶装置に書き込む。また、被測定モデル101と測定ポイント102とバス103を含むシステムLSIモデル100も記憶装置に読み込んでおき、抽象度を指定することで、シミュレータによりシミュレーションを実行することとなる。
(可変抽象ラッパ104)
図2は、可変抽象ラッパ104の機能的構成を示すブロック図である。各ブロックは、ハードウェアをモデル化したIP(Internet Protocol)などのソフトウェア部品である。可変抽象ラッパ104は、トラフィック制御器201とトラフィック生成器202と内部メモリ203とを含む構成である。
トラフィック制御器201は、被測定モデル101と測定ポイント102との間の通信(入出力)を制御する機能を有する。トラフィック制御器201は、具体的には、測定ポイント102からの信号を分解出力するデマルチプレクサの機能を有する。たとえば、測定ポイント102から被測定モデル101へのリクエストが受信されると、被測定モデル101に出力するとともに、トラフィック生成器202にも出力する。
また、トラフィック制御器201は、具体的には、トラフィック生成器202と被測定モデル101とからの信号を合成出力するマルチプレクサの機能を有する。たとえば、トラフィック生成器202からの擬似トラフィックを優先して測定ポイント102に送信し、擬似トラフィックの送信が終了すると、被測定モデル101の最終演算結果であるレスポンスを測定ポイント102に送信する。
トラフィック生成器202は、パーサ221とトラフィックデータベース(DB)222とシーケンサ223とI/Oジェネレータ224とを備える。パーサ221はトラフィック制御器201からのリクエストを解析する。トラフィックDB222は、リクエスト種別後との波形データを記憶する。シーケンサ223は基本クロックを出力する。I/Oジェネレータ224はトラフィックDB222から抽出された波形データと基本クロックを合成して擬似トラフィックを生成する。
また、内部メモリ203は、被測定モデル101が発生する実トラフィックを吸収する役割を持つハードウェアモデルである。内部メモリ203は、被測定モデル101の実トラフィックをリード/ライトする機能を有する。また、シミュレーションが終了すると内部メモリに書き込まれた最終演算結果をレスポンスとしてトラフィック制御器201に出力する。
<トラフィックDB222>
図3は、トラフィックデータベース(DB)の記憶内容を示す説明図である。トラフィックDB222は、リクエストIDと波形データとをフィールド項目として有する。また、波形データのフィールド項目は、中抽象度と低抽象度とをサブフィールド項目として有する。そして、レコードごとに、リクエストについてのリクエストID:i、中抽象度の波形データWi、低抽象度の波形データwiとを記憶する。これにより、リクエストIDと抽象度が特定されれば、それに応じた波形データを抽出することができる。なお、以降、リクエストID:iのリクエストを「リクエストi」と表記する。
また、すでに開発済みの被測定モデル101に対しては、改版などを実施する場合は、RTLまたは実機で計測した波形データwiを記憶しておくことができ、また、これから開発する被測定モデル101については、仕様書で計画されている入出力のトラフィックの期待値を波形データwiとして記憶しておくことになる。
たとえば、実際に与えられる波形データwiのデータ構成は、以下のような形式となる。
大分類:被測定モデル101が外部のバス103などから要求されるデータコマンド
例)0x0000 0x01:オフセット0000に対して、0x01(処理X)を示す命令
・小分類:コマンドに対して生成する内部データ授受のための外部アクセス
例)0x0010 0x00:レイテンシ+0x10サイクルで0x00(リードリクエスト)
・小分類:コマンドに対して生成する内部データ授受のための外部アクセス
例)0x0005 0x01:さらに+0x05サイクルで0x01(ライトリクエスト)
・小分類:コマンドに対して生成する内部データ授受のための外部アクセス
例)0x00ff 0xff:レイテンシ+0x00ffサイクルで0xff(終了コード)発行
入力に対しては、内部レジスタなどの相対アドレス、外部アクセスに対しては、特定のアクセス先アドレスを保有せず、単にリードやライトリクエストがどのタイミングで出て行くかを記述したものである。実際には、リクエストが発行される間隔には、被測定モデル101が内部処理する時間が積まれていることになり、たとえば上述の例であれば、処理Xを要するのに、被測定モデル101が内部処理のために最初のリードリクエストを発行するまでに0x10サイクルを要することをシミュレートしていることになる。
このリクエストの間隔はあくまで理想的な時間で応答を示した場合を意味し、たとえば他のデバイスとの相互影響でリクエスト発行が遅れた場合、最初のリードリクエストは0x10サイクルから相互作用によって遅らせられるだけの時間の間隔があくことになる。
このような遅延は、ESLシミュレーションそのものの機構により実現されるもので、本実施の形態の可変抽象ラッパ104では、上記例に従うと、0x10サイクル目にリクエストを発行し、最低0x05のクロックを消費しつつ、外部の影響を受けながら、次のリクエストを発行することになる。
図4は、波形データの一例を示す説明図である。(A)は、リクエストiにおいて実際に測定された波形データwiの一例である。波形データwiは、実際のシミュレーションを完全再現しており、低抽象度が指定された場合に抽出される波形データである。
(B)は、波形データwiを平均化した波形データWiである。(A)では時刻10までの間にアクセス発生を示すパルスが5回発生しているため、時刻2間隔でパルスが発生した波形データWiに変換される。中抽象度が指定された場合に抽出される波形データである。
(C)は(B)の波形データWiを圧縮化した波形データViである。波形データViは波形データWiの基本周期分の波形であり、反復回数(この場合は5回)も記憶する。(C)のように記憶させておく場合、中抽象度が指定されると、(B)の波形データWiに展開される。
図4に示した波形データwiは、時刻0から処理を開始し、時刻3前後でアクセスが集中的に発生し、時刻9で終了するパターンを表現している。この場合、各時刻単位で完全再現をおこなう場合、擬似トラフィックとしては波形データwiをそのまま生成することになるが、より長い時間の観点、すなわち、上記の時刻単位が[ns]であり、測定を行いたい範囲が[ms]の場合、106の単位差があるため、このような詳細なパターンである波形データwiから擬似トラフィックを生成することが不必要なケースが生じる。また、詳細なパターンが不要なだけでなく、完全再現することによるシミュレーション時間の増大という問題も出てくる。
このような場合、上述したように、単純な平均値を求めて波形データWiの擬似トラフィックを簡略化することで、より高速に動作させ、かつ、所望の精度で結果を得ることができる。上記のパターンでは、アクセスは時刻10までの間に5回でているため、単純に10÷5=2を実施することで、時刻2単位で1つのアクセスを発生するようなシナリオに変換する。
これにより、波形データWiの擬似トラフィックを生成するときには、リクエスト送出のタイミングを計測する必要がなくなるので、シミュレーション速度が向上する。精度は完全再現の波形データwiよりも低いが、トラフィック総量が同じであることと、大域的に捉えた場合のおおまかな挙動を把握するには十分な精度をもたせることができる。
また、指定された抽象度が高抽象度である場合、すなわち、リクエストに対して、時間概念を加味せずレスポンスのみを返すようなシミュレーションに用いられる場合、トラフィックDB222から波形データWi,wiのいずれも抽出されない。この場合は、擬似トラフィックが生成されないこととなる。
<トラフィック生成器202>
図5は、トラフィック生成器202の内部構成を示すブロック図である。トラフィック生成器202は、パーサ221とI/O(INPUT/OUTPUT)ジェネレータ224とを含む構成である。パーサ221は、トラフィック制御器201からのリクエストの内容を解析する。具体的には、たとえば、リクエストに埋め込まれているリクエストIDを抽出して、該当する波形データをトラフィックDB222から検索する。
シーケンサ223は、基本クロックclkをI/Oジェネレータ224に供給する機能を有する。I/Oジェネレータ224は合成器225を備え、パーサ221によりトラフィックDB222から抽出された対象波形データを基本クロックに同期させる。そして、この同期後の波形データ上のアクセス発生を示すパルスを擬似トラフィックとして時系列に出力する。
図6は、擬似トラフィックに着目したシーケンス図である。縦軸は時間軸であり、下に行くほど時間が経過する。また時間軸上の矩形は、各ハードウェアモデルの処理に要した所要時間を示しており、長いほど時間がかかっていることを示す。所要時間taは、測定ポイント102におけるリクエストの処理に要した時間である。所要時間tbは、トラフィック制御器201のデマルチプレクサの処理に要した時間である。所要時間tcは、被測定モデル101におけるシミュレーションの各処理に要した所要時間の総所要時間(積算時間)である。図6では便宜上、若干の時間を要しているが、後述する内部メモリ203の処理により、総所要時間を0[nsec]とすることができる。
所要時間tdは、トラフィック制御器201からの擬似トラフィックTの送信に要した時間である。所要時間teは、トラフィック制御器201のマルチプレクサの処理、すなわち、被測定モデル101からのレスポンスの処理に要した時間である。所要時間tfは、測定ポイント102におけるレスポンスの処理に要した時間である。図6に示したように、所要時間tbの経過後、擬似トラフィックTを生成すると、被測定モデル101の挙動にかかわらず、所要時間tdの間、トラフィック制御器201が独立して擬似トラフィックTを出力する。
トラフィック制御器201は、被測定モデル101からレスポンスを受けると、マルチプレクサとして動作し、擬似トラフィックTとレスポンスとを調停する。擬似トラフィックTは、トータルの出力時間、すなわち、所要時間tdがトラフィックDB222において既知であるため、その所要時間tdが経過するまでは、擬似トラフィックTの出力を継続し、その所要時間tdが経過した時点で、レスポンスが受け付けられている場合、そのレスポンスを測定ポイント102に出力する。所要時間tdの経過時点でレスポンスが受け付けられていない場合、レスポンスが受け付けられるまで待機することとなる。
このように、擬似トラフィックTは与えられた抽象度により、動作中の擬似トラフィックTの挙動を変える。測定ポイント102から見た場合、擬似トラフィックTが被測定モデル101から直接出力されていることとなる。このとき、擬似トラフィックTに相当する部分は途中演算結果や処理の中間データであるため、測定ポイント102からすると単なる負荷でしかなく、擬似トラフィックTの内部がランダムなデータであっても問題はない。
<内部メモリ203>
内部メモリ203は、被測定モデル101が発生する入出力信号を吸収させる役割を持つハードウェアモデルである。具体的には、たとえば、メモリ内のアドレス空間として定義される。内部メモリ203は、被測定モデル101のシミュレーション中の演算結果が書き込まれたり、読み出されたりする。
図7は、内部メモリ203の動作に着目したシーケンス図である。図6と同一所要時間には同一符号を付し、その説明を省略する。内部メモリ203は、レイテンシ0となる理想的なデバイスとして機能させることができる。このため、実トラフィックDは内部メモリ203に吸収されるが、所要時間tcは0とみなされ、高速に動作する。
具体的には、たとえば、被測定モデル101がシミュレーション動作した場合、可変抽象ラッパ104の外部へのアクセスに対しても、動作時間を計上していくシミュレーションを実行するが、内部では動作時間ごとに下記式(1)のような計算を実行する。
Δ=∫tD(t)×δdt・・・(1)
ただし、Δは、外部に対する1アクセスに要するレイテンシであり、上述した動作時間となる。また、δは、外部接続されたバス103の単位転送量に対するレイテンシである。また、D(t)は、時刻tにおける外部のバス103へのアクセス量である。
シミュレーションでは、このレイテンシΔをすべて積算した上で、最終的な演算結果を返すこととなるが、可変抽象ラッパ104では、被測定モデル101のデータアクセスを隠蔽するために、内部メモリ203を理想的なメモリとして、常にレイテンシΔがΔ=0となるように設定する。これはSystemCの記述特有の性質であり、この内部メモリ203ではこの性質を利用することで、シミュレーション速度の高速化を図る。
具体的には、理想的な内部メモリ203への経路では、δ=0が成り立ち、Δ=0が成り立つ。SystemCは一種のC言語であり、コンパイラによる翻訳が行われる。このときコンパイラは一般的な最適化を行うため、係数であるδ=0の演算を省略し、固定値としてΔ=0を直接定数として返すことになる。したがって、積算演算を行わない(所要時間tc=0)こととなる。これにより、被測定モデル101は高速動作することになる。
特に、指定された抽象度が低抽象度の場合では、被測定モデル101では、正確な波形出力をおこなうこととなるため、シミュレーション時間が長大になり、全体の挙動を把握したいような場合には不向きとなる。しかしながら、上述したレイテンシΔの設定処理により、被測定モデル101からの中間トラフィックを吸収するだけでなく、この内部メモリ203がシミュレーションとしてレイテンシΔ=0の理想的なメモリとして動作することになる。したがって、被測定モデル101のシミュレーション時間そのものを短くさせる働きをもたせることができる。
(設計支援装置)
つぎに、本実施の形態の設計支援装置について説明する。設計支援装置とは、被測定モデル101と測定ポイント102との間に可変抽象ラッパ104を挿入して被測定モデル101をシミュレーションするシミュレータである。
<設計支援装置のハードウェア構成>
図8は、実施の形態にかかる設計支援装置のハードウェア構成を示すブロック図である。図8において、設計支援装置は、CPU(Central Processing Unit)801と、ROM(Read‐Only Memory)802と、RAM(Random Access Memory)803と、磁気ディスクドライブ804と、磁気ディスク805と、光ディスクドライブ806と、光ディスク807と、ディスプレイ808と、I/F(Interface)809と、キーボード810と、マウス811と、スキャナ812と、プリンタ813と、を備えている。また、各構成部はバス800によってそれぞれ接続されている。
ここで、CPU801は、設計支援装置の全体の制御を司る。ROM802は、ブートプログラムなどのプログラムを記憶している。RAM803は、CPU801のワークエリアとして使用される。磁気ディスクドライブ804は、CPU801の制御にしたがって磁気ディスク805に対するデータのリード/ライトを制御する。磁気ディスク805は、磁気ディスクドライブ804の制御で書き込まれたデータを記憶する。
光ディスクドライブ806は、CPU801の制御にしたがって光ディスク807に対するデータのリード/ライトを制御する。光ディスク807は、光ディスクドライブ806の制御で書き込まれたデータを記憶したり、光ディスク807に記憶されたデータをコンピュータに読み取らせたりする。
ディスプレイ808は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ808は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
インターフェース(以下、「I/F」と略する。)809は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク814に接続され、このネットワーク814を介して他の装置に接続される。そして、I/F809は、ネットワーク814と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F809には、たとえばモデムやLANアダプタなどを採用することができる。
キーボード810は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス811は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
スキャナ812は、画像を光学的に読み取り、設計支援装置内に画像データを取り込む。なお、スキャナ812は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ813は、画像データや文書データを印刷する。プリンタ813には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
<設計支援装置の機能的構成>
図9は、本実施の形態にかかる設計支援装置の機能的構成を示すブロック図である。図9において、設計支援装置900は、指定部901と、解析部902と、生成部903と、設定部904と、記憶部905と、制御部906と、を含む構成である。これら各機能は、具体的には、たとえば、図8に示したROM802、RAM803、磁気ディスク805、光ディスク807などの記憶装置に記憶されたプログラムを、CPU801に実行させることにより、またはI/F809により、その機能を実現する。
被測定モデル101および測定ポイント102は、図8に示したROM802、RAM803、磁気ディスク805、光ディスク807などの記憶装置内の所定の記憶領域上に展開されたシミュレーションモデルである。
指定部901は、開発工程に関する抽象度の指定を受け付ける機能を有する。具体的には、たとえば、キーボード810やマウス811を捜査することで抽象度の指定を受け付ける。この抽象度とは、上述した高抽象度(Function/Instruction Level)、中抽象度(Accuracy Level)、低抽象度(Cycle Level)の3種の抽象度である。指定された抽象度は、図8に示したROM802、RAM803、磁気ディスク805、光ディスク807などの記憶装置に保持される。
解析部902は、測定ポイント102からのリクエストを解析する機能を有する。この解析部902は、上述した可変抽象ラッパ104のパーサ221に相当する機能であり、図8に示したROM802、RAM803、磁気ディスク805、光ディスク807などの記憶装置内の所定の記憶領域上に可変抽象ラッパ104が展開されることにより実行可能である。解析結果は、図8に示したROM802、RAM803、磁気ディスク805、光ディスク807などの記憶装置に保持される。
生成部903は、解析部902によるリクエストの解析内容および指定部901によって指定された抽象度に応じて、シミュレーションにおける各処理の演算結果に関する擬似トラフィックTを生成する機能を有する。この生成部903は、上述したトラフィックDB222、シーケンサ223、I/Oジェネレータ224に相当する機能であり、図8に示したROM802、RAM803、磁気ディスク805、光ディスク807などの記憶装置内の所定の記憶領域上に可変抽象ラッパ104が展開されることにより実行可能である。
生成部903は、上述したように、解析内容であるリクエストIDと指定抽象度によりトラフィックDB222から波形データを抽出する。この抽出した波形データを、シミュレーションにおける各処理の演算結果を指定抽象度に応じた擬似トラフィックTとして測定ポイント102に出力することとなる。この擬似トラフィックTは、図8に示したROM802、RAM803、磁気ディスク805、光ディスク807などの記憶装置に保持され、時系列にしたがって順次出力される。なお、指定抽象度が高抽象度の場合は、擬似トラフィックTは生成されない。
設定部904は、各処理の所要時間を当該所要時間よりも短い所要時間に設定する機能を有する。ここで、処理とは、シミュレーションにおける内部メモリ203に対するアクセスであり、所要時間とは一アクセスのレイテンシΔに相当する。各レイテンシΔの値が既知である場合には、その値よりも短く設定することにより、シミュレーション速度の向上を図ることができる。特に、設定部904では、このレイテンシΔをΔ=0とするのが計算上および設定上最も好ましい。レイテンシΔ=0とすることで、上述したようにシミュレーションの所要時間を0にすることができる。
この設定部904は、上述した内部メモリ203に相当する機能であり、図8に示したROM802、RAM803、磁気ディスク805、光ディスク807などの記憶装置内の所定の記憶領域上に可変抽象ラッパ104が展開されることにより実行可能である。すなわち、内部メモリ203に上述したレイテンシΔやレイテンシδの値(=0)が埋め込まれているため、たとえば、シミュレーションの開始を契機として、被測定モデル101にレイテンシδおよびレイテンシΔを渡して、上述した式(1)により動作時間であるレイテンシΔをアクセスごとに被測定モデル101が計算することとなる。
記憶部905は、リクエストによりシミュレーションが開始された場合、各処理の演算結果を被測定モデル101に読み書きさせる機能を有する。この記憶部905は、上述した内部メモリ203に相当する機能であり、図8に示したROM802、RAM803、磁気ディスク805、光ディスク807などの記憶装置内の所定の記憶領域上に可変抽象ラッパ104が展開されることにより実行可能である。
制御部906は、入出力を制御する機能を有する。具体的には、たとえば、リクエストを入力して被測定モデル101および解析部902に出力するデマルチプレクサの機能を有する。より具体的には、リクエストを受け付けると、デマルチプレクサに制御信号を与える。デマルチプレクサでは、制御信号が与えられると、リクエストを分岐して被測定モデル101および解析部902に出力する。
また、制御部906は、マルチプレクサの機能を有する。具体的には、生成部903によって生成された擬似トラフィックTおよびリクエストに対する被測定モデル101からのレスポンスを入力して、いずれか一方を測定ポイント102に出力する。この調停は、設定部904によって設定された短い所要時間の積算時間経過後でかつ擬似トラフィックTの出力終了後にレスポンスを測定ポイント102に出力する。なお測定ポイント102に出力された擬似トラフィックTやレスポンスは、ディスプレイ808に送られ表示画面に表示される。また、I/F809から他のコンピュータに送信してもよい。
設定部904によりシミュレーション時間が見かけ上0と計数されるため、レスポンスは早期に返ってくる。このとき、擬似トラフィックTの出力が終了していない場合は、擬似トラフィックTを選択出力しつづける。擬似トラフィックTが出力し終わると、レスポンスを選択出力する。この制御部906は、上述したトラフィック制御器201に相当する機能であり、図8に示したROM802、RAM803、磁気ディスク805、光ディスク807などの記憶装置内の所定の記憶領域上に可変抽象ラッパ104が展開されることにより実行可能である。
<設計支援処理手順>
図10は、本実施の形態にかかる設計支援装置900による設計支援処理手順を示すフローチャートである。まず、指定部901により抽象度が指定されるのを待ち受け(ステップS1001:No)、抽象度が指定された場合(ステップS1001:Yes)、リクエストを待ち受ける(ステップS1002:No)。リクエストが被測定モデル101に与えられた場合(ステップS1002:Yes)、被測定モデル101のシミュレーションを実行する(ステップS1003)。そして、シミュレーションが終了するのを待ち受け(ステップS1004:No)、シミュレーションが終了した場合(ステップS1004:Yes)、一連の処理を終了する。
図11は、図10のステップS1003のシミュレーション時の可変抽象ラッパ104の動作を示すシーケンス図である。測定ポイント102からトラフィック制御器201にリクエストが与えられると、トラフィック制御器201はリクエストをパーサ221と被測定モデル101に分岐出力する。パーサ221は、リクエストを解析して、リクエストIDと指定抽象度とにより該当する波形データをトラフィックDB222から抽出する。
そして、波形データをI/Oジェネレータ224に渡す。I/Oジェネレータ224は波形データを元にして擬似トラフィックTを生成し、トラフィック制御器201に出力する。トラフィック制御器201では、擬似トラフィックTが与えられると測定ポイント102に擬似トラフィックTを返す。一方、被測定モデル101では、トラフィック制御器201からリクエストが与えられると、内部メモリ203に対して演算結果をリード/ライトする。
このとき、設定部904により、レイテンシΔの積算時間は0となる。これにより、待ち時間によるオーバーヘッドがなくなるため、シミュレーション速度が高速化する。そして最終演算結果であるレスポンスをトラフィック制御器201に出力する。トラフィック制御器201では、擬似トラフィックTの出力中は、レスポンスを測定ポイント102に出力しない。擬似トラフィックTが出力し終わると、レスポンスを測定ポイント102に出力する。
図12は、トラフィック制御器201の制御動作を示すフローチャートである。図12では、トラフィック制御器201のマルチプレクサの機能に着目して説明する。このマルチプレクサは、擬似トラフィックTおよびレスポンスの2つの信号を入力していずれか一方を出力する2入力1出力の選択回路モデルであり、2つの制御端子を有する。1本は、選択信号S1を取り込む第1の制御端子であり、擬似トラフィックTを選択してONとなる。もう1本は、選択信号S2を取り込む第2の制御端子であり、レスポンスを選択してONとなる。
初期状態では、選択信号S1,S2は取り込まれていないため、いずれも選択されずOFFとなる。なお、この選択回路モデルのON/OFF状態は、テーブル化されて保持されている。したがって、ON/OFFの切替はこのテーブルにアクセスすることでおこなわれる。
まず、トラフィック生成器202から擬似トラフィックTが受信されたか否かを判断し(ステップS1201)、受信された場合(ステップS1201:Yes)、第1の制御端子がONであるか否かを判断する(ステップS1202)。ONでない場合(ステップS1202:No)、選択信号S1を与えて第1の制御端子をONにして(ステップS1203)、ステップS1204に移行する。一方、第1の制御端子がONである場合(ステップS1202:Yes)も、ステップS1204に移行する。これにより、擬似トラフィックTが順次測定ポイント102に出力されることとなる。
ステップS1204では、擬似トラフィックTが終了したか否かを判断する(ステップS1204)。擬似トラフィックTの時間長はトラフィックDB222から既知であるため、最初の擬似トラフィックTを受信した時刻から計時して、その時間長分経過したか否かにより判断する。終了していない場合(ステップS1204:No)、ステップS1201に戻る。一方、終了した場合(ステップS1204:Yes)、第1の制御端子をONからOFFにして(ステップS1205)、ステップS1201に戻る。
一方、ステップS1201において、トラフィック生成器202から擬似トラフィックTが受信されていない場合(ステップS1201:No)、具体的には、たとえば、受信されていないタイミングにおいて、被測定モデル101からレスポンスの受信があったか否かを判断する(ステップS1206)。
受信されていない場合(ステップS1206:No)、ステップS1201に戻る。一方、受信された場合(ステップS1206:Yes)、第1の制御端子がONか否かを判断する(ステップS1207)。ONである場合(ステップS1207:Yes)、擬似トラフィックTの出力が終了していないため、レスポンスを保持しておき(ステップS1208)、ステップS1201に戻る。
一方、第1の制御端子がONでない場合(ステップS1207:No)、第2の制御端子をONにして(ステップS1209)、ステップS1201に戻る。これにより、受信されたレスポンスやすでに受信されて保持されているレスポンスを測定ポイント102に出力することができる。
また、高抽象度が指定された場合、擬似トラフィックTが受信されないため、第1の制御端子はOFFのままである。この場合においても、ステップS1207により、第2の制御端子をONにすることで、レスポンスを測定ポイント102に出力することができる。
また、上述した実施の形態では、トラフィックDB222には、波形データwiとして、被測定モデル101の実測波形データを記憶しておくこととしたが、被測定モデル101の仕様書から導き出された期待値となる波形データを記憶させておくこととしてもよい。
この場合、たとえば、動画処理ハードマクロを設計する際に、描画リクエストに対して描画結果を返す動きに対して、描画中の中間処理を外部メモリに一時領域を取りながら出力して動作させるほうがよいのか、内部に一時領域を実装して中間処理を外部に出さないほうがよいのかを検討するようなケースで用いられる。
具体的には、外部メモリに出す場合は可変抽象ラッパ104を用いずに被測定モデル101のシミュレーションを実行すればよく、外部メモリに出さない場合には、可変抽象ラッパ104を挿入して被測定モデル101のシミュレーションを実行すればよい。そして、この2つのシミュレーション結果を比較することでいずれを採用すべきかを検討することができる。
また、上述した実施の形態では、被測定モデル101として既知のシミュレーションモデルを用いたが、被測定モデル101が代替品のシミュレーションモデルであってもよい。この場合、被測定モデル101から発生する中間トラフィックが、これから設計をおこなうときの余計な外乱になるケースがある。このとき、代替品のシミュレーションモデルの仕様書から導き出された期待値となる波形データを記憶させておくこととしてもよい。これにより、代替品についても抽象度を可変させてシミュレーションを実行することができる。
また、上述した実施の形態では、測定対象として被測定モデル101(シミュレーションモデル)を用いて説明したが、代替のシミュレーションモデルがない、あるいは、RTLの設計情報もないような場合、実際には外部から購入した評価ボード、あるいは高速動作するFPGA(Field Programmable Gate Array)環境のような実ハードウェアを用いることとしてもよい。
図13は、実ハードウェアを適用した場合のシミュレーション例を示す説明図である。図13の場合、可変抽象ラッパ104のリクエストとレスポンスを送受する経路を、ICE(in circuit emulator)などの外部通信機構1302を用いて実ハードウェア1301と接続する。
この場合、可変抽象ラッパ104の動作により、実ハードウェア1301から出力される実トラフィックDを内部メモリ203で隠蔽することができる。したがって、実ハードウェア1301の実装を外部のバス103への影響度の変化をみながら変更しようとした場合に、擬似トラフィックTをいろいろ操作することにより、多面的な評価をすることが可能となる。
また、試作段階のデバイスのシステム性能評価に適用することもできる。複数のハードウェア部品から構成されるSoC(System on Chip)では、採択したハードウェア部品を変更することで、次世代モデルへと改版していく。たとえば、グラフィック処理機能をもつSoCがあり、グラフィックアクセラレータをより高性能なものに変更しようとした場合、かつ、高性能なグラフィックアクセラレータは対象のSoCに対して最適化を求められるようなケースが往々にしてある。
このとき、グラフィックアクセラレータは内部バッファの容量を変更することで性能が変化するが、必ずしもバッファを大容量化することでシステム性能が改善することはない。このような場合、図13に示した実ハードウェア1301としてグラフィックアクセラレータを接続する。この接続方法は一般的であるため言及しない。
実際に動作を行うのは既存のグラフィックアクセラレータであり、本事例で検証を行おうとするバッファ段数の変更はできないものとする。バッファ段数が変化するということは、アクセラレータからグラフィック演算のトラフィックが外部のバス103へ出ることを意味する。ユーザはトラフィック生成器202に対して、拡張設計をした場合のトラフィックの見積もり量をトラフィックDB222に記憶させておく。たとえば、既存のアクセラレータが256回のトラフィックを1回のアクセスで発生させる場合、単純なケースでは、バッファを16段にすれば、16回(256÷16)、8段にすれば32回と段階的にトラフィックが変化していく。
すなわち、1回の動作に対する実トラフィックDを上述したような回数に変化させるようなシナリオをトラフィックDB222に格納することになる。つぎに、実際のシミュレーションでは、グラフィックアクセラレータの実トラフィックDを、既存部品を搭載した評価ボードである内部メモリ203(Eva board Memory model)に発生させる。一方で、バッファ段数を変化させた擬似トラフィックTをトラフィック生成器202が生成することになる。これらの操作により、既存のハードウェア部品を変更することなく、改版時の設計変更から想定される改版時の動作をシミュレーションすることが可能になる。
図14は、内部バッファを増加させた場合のハードウェア部品の性能変化を示すグラフである。図14では、実際にこのシステムを仮想モデルとしてESLシミュレーションした結果である。確かにバッファ効果による外部のバス103への実トラフィックDが減少することで、性能が上昇することがグラフから読み取れる。しかし、これらのシミュレーション予測は、従来のRTLシミュレーションなどにより再現することができる。本実施の形態では、より上位の設計工程を想定しており、また、RTLシミュレーションでは実現不可能なソフト動作と連携した動きをシミュレーションする。
図15は、内部バッファを増加させることによるシステムの性能変化を示すグラフである。図15は、図13に示したシステムを組み上げ、実際にCPUからソフトウェアを動作させることにより、システムとして動作させた総実行時間を測定したものである。バッファ段数を増やすことにより発生する最終のデータフラッシュ(内部データの書き出し処理)がレスポンス時に集中して発生することによるバス103の瞬間的なトラフィック増大が、ソフトウェア動作を阻む。これにより、ソフトウェアの処理時間が延び、16段のときに性能が悪化していく。
一方で、バッファ段数が少ない場合は、1回の処理の間、実トラフィックDが分散するため、その間にCPUがバス103を利用できる。また、グラフィックアクセラレータの処理効率は悪いが、システム全体としては効率的に動作することがわかる。本例は、あまりバッファを増やしても、全体としては効率がよくないことをシステムレベルで検証できた事例である。
このように、図16に示したESL技術の(A)および(B)のフェーズにおいて、低抽象度であるRTLモデルが用意されている場合、新規に中抽象度のシミュレーションモデルを開発すると、RTLとは全く異なる開発スキームで実装することとなる。この場合、モデル開発が二重となり開発工数および設計負担が増大するが、本実施の形態の可変抽象ラッパ104を適用することで、開発工数および設計負担の低減化を図ることができる。
また、ESL技術の(A)および(B)のフェーズにおいて、低抽象度であるRTLモデルが用意されている場合、このRTLモデルをA)および(B)のフェーズで流用すると、正しい結果は得られるが、シミュレーション時間に多大な時間を要する。特に、SoCの回路規模が大きくなるとシミュレーションが終了せず全体を見通すことが困難になるが、本実施の形態の可変抽象ラッパ104を適用することで、抽象度に応じたシミュレーションが可能となる。したがって、シミュレーション時間の短縮化を図ることができる。
また、ESL技術の開発工程の(A)および(B)のフェーズにおいて、高抽象度のシミュレーションモデルが存在する場合、高抽象度のシミュレーションモデルではファンクション動作しかしない。このため、データフローとタイミングがもたらすシステム状態を再現できないこととなる。また上述したように、新規に中抽象度モデルを開発すると、開発工数および設計負担が増大し、RTLモデルを流用すると、シミュレーション時間に多大な時間を要する。
したがって、本実施の形態の可変抽象ラッパ104を適用することで、高抽象度におけるシステム状態の再現、中抽象度における開発工数および設計負担の低減化、低抽象度におけるシミュレーション時間の短縮化を、単一のシミュレーションモデルで実現することができる。
また、ESL技術の(C)のフェーズでは、低抽象度であるRTLモデルの実装を待つこととなり、新規にモデル開発をおこなう必要がある。このため、モデル開発が二重となり開発工数および設計負担が増大するが、本実施の形態の可変抽象ラッパ104を適用することで、開発工数および設計負担の低減化を図ることができる。
以上のことから、本実施の形態にかかる可変抽象ラッパ104は、トラフィック生成器202による擬似トラフィックTの生成、内部メモリ203による被測定モデル101の挙動の隠蔽をはかることができる。したがって、シミュレーション段階での抽象度変更に柔軟に対応して設計期間の短縮化を図ることができる。
なお、本実施の形態で説明した設計支援方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムや可変抽象ラッパ104は、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムや可変抽象ラッパ104は、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)測定対象に測定ポイントからのリクエストを与えて当該リクエストに応じたシミュレーションを実行するコンピュータを、
前記リクエストを解析する解析手段、
前記解析手段による前記リクエストの解析内容および開発工程に関する抽象度から選ばれた任意の抽象度に応じて、前記シミュレーションにおける各処理の演算結果に関する擬似トラフィックを生成する生成手段、
前記各処理の所要時間を当該所要時間よりも短い所要時間に設定する設定手段、
前記リクエストにより前記シミュレーションが開始された場合、前記各処理の演算結果を前記測定対象に読み書きさせる記憶手段、
前記生成手段によって生成された擬似トラフィックおよび前記リクエストに対する前記測定対象からのレスポンスを入力して、前記設定手段によって設定された前記短い所要時間の積算時間経過後でかつ前記擬似トラフィックの出力終了後に前記レスポンスを出力する制御手段、
として機能させることを特徴とする設計支援プログラム。
(付記2)前記生成手段は、
前記選ばれた任意の抽象度が特定の抽象度よりも低い抽象度である場合、リクエスト種別に応じたトラフィックに関する出力波形を記憶するデータベースの中から、前記リクエストに該当する前記測定対象からのトラフィックに関する出力波形を抽出することにより、当該出力波形に応じた擬似トラフィックを生成することを特徴とする付記1に記載の設計支援プログラム。
(付記3)前記生成手段は、
前記選ばれた任意の抽象度が特定の抽象度よりも高い抽象度である場合、前記擬似トラフィックを生成せず、
前記制御手段は、
前記設定手段によって設定された前記短い所要時間の積算時間経過後に前記レスポンスを出力することを特徴とする付記1に記載の設計支援プログラム。
(付記4)前記生成手段は、
前記選ばれた任意の抽象度が特定の抽象度である場合、リクエスト種別に応じたトラフィックに関する出力波形を記憶するデータベースの中から、前記リクエストに該当する前記測定対象からの平均化された出力波形を抽出することにより、当該平均化された出力波形に応じた擬似トラフィックを生成することを特徴とする付記1に記載の設計支援プログラム。
(付記5)前記制御手段は、
前記リクエストを入力して前記測定対象および前記解析手段に出力することを特徴とする付記1〜4のいずれか一つに記載の設計支援プログラム。
(付記6)前記データベースは、
前記トラフィックに関する測定済みの出力波形を記憶することを特徴とする付記1〜5のいずれか一つに記載の設計支援プログラム。
(付記7)前記測定対象に替えて、当該測定対象に類似する測定対象に前記リクエストを与えて当該リクエストに応じたシミュレーションを実行することを特徴とする付記1〜6のいずれか一つに記載の設計支援プログラム。
(付記8)前記データベースは、
前記設計対象の仕様書から得られる期待値となるトラフィックに関する出力波形を記憶することを特徴とする付記1〜5のいずれか一つに記載の設計支援プログラム。
(付記9)測定対象に測定ポイントからのリクエストを与えて当該リクエストに応じたシミュレーションを実行する設計支援装置であって、
前記リクエストを解析する解析手段と、
前記解析手段による前記リクエストの解析内容および開発工程に関する抽象度から選ばれた任意の抽象度に応じて、前記シミュレーションにおける各処理の演算結果に関する擬似トラフィックを生成する生成手段と、
前記各処理の所要時間を当該所要時間よりも短い所要時間に設定する設定手段と、
前記リクエストにより前記シミュレーションが開始された場合、前記各処理の演算結果を前記測定対象に読み書きさせる記憶手段と、
前記生成手段によって生成された擬似トラフィックおよび前記リクエストに対する前記測定対象からのレスポンスを入力して、前記設定手段によって設定された前記短い所要時間の積算時間経過後でかつ前記擬似トラフィックの出力終了後に前記レスポンスを出力する制御手段と、
を備えることを特徴とする設計支援装置。
(付記10)測定対象に測定ポイントからのリクエストを与えて当該リクエストに応じたシミュレーションをコンピュータに実行させるシミュレーションモデルであって、
前記リクエストを解析する解析手段と、
前記解析手段による前記リクエストの解析内容および開発工程に関する抽象度から選ばれた任意の抽象度に応じて、前記シミュレーションにおける各処理の演算結果に関する擬似トラフィックを生成する生成手段と、
前記各処理の所要時間を当該所要時間よりも短い所要時間に設定する設定手段と、
前記リクエストにより前記シミュレーションが開始された場合、前記各処理の演算結果を前記測定対象に読み書きさせる記憶手段と、
前記生成手段によって生成された擬似トラフィックおよび前記リクエストに対する前記測定対象からのレスポンスを入力して、前記設定手段によって設定された前記短い所要時間の積算時間経過後でかつ前記擬似トラフィックの出力終了後に前記レスポンスを出力する制御手段と、
を備えることを特徴とするシミュレーションモデル。
本実施の形態の概要を示す説明図である。 可変抽象ラッパの機能的構成を示すブロック図である。 トラフィックデータベースの記憶内容を示す説明図である。 波形データの一例を示す説明図である。 トラフィック生成器の内部構成を示すブロック図である。 擬似トラフィックに着目したシーケンス図である。 内部メモリの動作に着目したシーケンス図である。 実施の形態にかかる設計支援装置のハードウェア構成を示すブロック図である。 本実施の形態にかかる設計支援装置の機能的構成を示すブロック図である。 本実施の形態にかかる設計支援装置による設計支援処理手順を示すフローチャートである。 図10のステップS1003のシミュレーション時の可変抽象ラッパの動作を示すシーケンス図である。 トラフィック制御器の制御動作を示すフローチャートである。 実ハードウェアを適用した場合のシミュレーション例を示す説明図である。 内部バッファを増加させた場合のハードウェア部品の性能変化を示すグラフである。 内部バッファを増加させることによるシステムの性能変化を示すグラフである。 ESL技術の開発工程を示す説明図である。
符号の説明
101 被測定モデル
102 測定ポイント
104 可変抽象ラッパ
201 トラフィック制御器
202 トラフィック生成器
203 内部メモリ
221 パーサ
223 シーケンサ
224 I/Oジェネレータ
225 合成器
900 設計支援装置
901 指定部
902 解析部
903 生成部
904 設定部
905 記憶部
906 制御部

Claims (5)

  1. 測定対象に測定ポイントからのリクエストを与えて当該リクエストに応じたシミュレーションを実行するコンピュータを、
    前記リクエストを解析する解析手段、
    前記解析手段による前記リクエストの解析内容および開発工程に関する抽象度から選ばれた任意の抽象度に応じて、前記シミュレーションにおける各処理の演算結果に関する擬似トラフィックを生成し、前記選ばれた任意の抽象度が特定の抽象度である場合、リクエスト種別に応じたトラフィックに関する出力波形を記憶するデータベースの中から、前記リクエストに該当する前記測定対象からの平均化された出力波形を抽出することにより、当該平均化された出力波形に応じた擬似トラフィックを生成する生成手段、
    前記各処理の所要時間を当該所要時間よりも短い所要時間に設定する設定手段、
    前記リクエストにより前記シミュレーションが開始された場合、前記各処理の演算結果を前記測定対象に読み書きさせる記憶手段、
    前記生成手段によって生成された擬似トラフィックおよび前記リクエストに対する前記測定対象からのレスポンスを入力して、前記設定手段によって設定された前記短い所要時間の積算時間経過後でかつ前記擬似トラフィックの出力終了後に前記レスポンスを出力する制御手段、
    として機能させることを特徴とする設計支援プログラム。
  2. 前記生成手段は、
    前記選ばれた任意の抽象度が特定の抽象度よりも低い抽象度である場合、リクエスト種別に応じたトラフィックに関する出力波形を記憶するデータベースの中から、前記リクエストに該当する前記測定対象からのトラフィックに関する出力波形を抽出することにより、当該出力波形に応じた擬似トラフィックを生成することを特徴とする請求項1に記載の設計支援プログラム。
  3. 前記生成手段は、
    前記選ばれた任意の抽象度が特定の抽象度よりも高い抽象度である場合、前記擬似トラフィックを生成せず、
    前記制御手段は、
    前記設定手段によって設定された前記短い所要時間の積算時間経過後に前記レスポンスを出力することを特徴とする請求項1に記載の設計支援プログラム。
  4. 測定対象に測定ポイントからのリクエストを与えて当該リクエストに応じたシミュレーションを実行する設計支援装置であって、
    前記リクエストを解析する解析手段と、
    前記解析手段による前記リクエストの解析内容および開発工程に関する抽象度から選ばれた任意の抽象度に応じて、前記シミュレーションにおける各処理の演算結果に関する擬似トラフィックを生成し、前記選ばれた任意の抽象度が特定の抽象度である場合、リクエスト種別に応じたトラフィックに関する出力波形を記憶するデータベースの中から、前記リクエストに該当する前記測定対象からの平均化された出力波形を抽出することにより、当該平均化された出力波形に応じた擬似トラフィックを生成する生成手段と、
    前記各処理の所要時間を当該所要時間よりも短い所要時間に設定する設定手段と、
    前記リクエストにより前記シミュレーションが開始された場合、前記各処理の演算結果を前記測定対象に読み書きさせる記憶手段と、
    前記生成手段によって生成された擬似トラフィックおよび前記リクエストに対する前記測定対象からのレスポンスを入力して、前記設定手段によって設定された前記短い所要時間の積算時間経過後でかつ前記擬似トラフィックの出力終了後に前記レスポンスを出力する制御手段と、
    を備えることを特徴とする設計支援装置。
  5. 測定対象に測定ポイントからのリクエストを与えて当該リクエストに応じたシミュレーションをコンピュータに実行させるシミュレーションモデルであって、
    前記リクエストを解析する解析手段と、
    前記解析手段による前記リクエストの解析内容および開発工程に関する抽象度から選ばれた任意の抽象度に応じて、前記シミュレーションにおける各処理の演算結果に関する擬似トラフィックを生成し、前記選ばれた任意の抽象度が特定の抽象度である場合、リクエスト種別に応じたトラフィックに関する出力波形を記憶するデータベースの中から、前記リクエストに該当する前記測定対象からの平均化された出力波形を抽出することにより、当該平均化された出力波形に応じた擬似トラフィックを生成する生成手段と、
    前記各処理の所要時間を当該所要時間よりも短い所要時間に設定する設定手段と、
    前記リクエストにより前記シミュレーションが開始された場合、前記各処理の演算結果を前記測定対象に読み書きさせる記憶手段と、
    前記生成手段によって生成された擬似トラフィックおよび前記リクエストに対する前記測定対象からのレスポンスを入力して、前記設定手段によって設定された前記短い所要時間の積算時間経過後でかつ前記擬似トラフィックの出力終了後に前記レスポンスを出力する制御手段と、
    を備えることを特徴とするシミュレーションモデル。
JP2008268962A 2008-10-17 2008-10-17 設計支援プログラム、設計支援装置、およびシミュレーションモデル Expired - Fee Related JP5287132B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008268962A JP5287132B2 (ja) 2008-10-17 2008-10-17 設計支援プログラム、設計支援装置、およびシミュレーションモデル

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008268962A JP5287132B2 (ja) 2008-10-17 2008-10-17 設計支援プログラム、設計支援装置、およびシミュレーションモデル

Publications (2)

Publication Number Publication Date
JP2010097493A JP2010097493A (ja) 2010-04-30
JP5287132B2 true JP5287132B2 (ja) 2013-09-11

Family

ID=42259118

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008268962A Expired - Fee Related JP5287132B2 (ja) 2008-10-17 2008-10-17 設計支援プログラム、設計支援装置、およびシミュレーションモデル

Country Status (1)

Country Link
JP (1) JP5287132B2 (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004157646A (ja) * 2002-11-05 2004-06-03 Matsushita Electric Ind Co Ltd 集積回路の検証装置、検証方法および集積回路検証用のインターフェースモデルの生成方法
JP4556629B2 (ja) * 2004-11-16 2010-10-06 ソニー株式会社 データ処理システム検証装置と方法およびプログラム
JP2006163559A (ja) * 2004-12-03 2006-06-22 Matsushita Electric Ind Co Ltd シミュレーション装置
JP3868454B2 (ja) * 2005-05-12 2007-01-17 松下電器産業株式会社 シミュレーションモデル
JP2007207176A (ja) * 2006-02-06 2007-08-16 Matsushita Electric Ind Co Ltd 半導体集積回路のシミュレーション方法
JP2007323206A (ja) * 2006-05-30 2007-12-13 Toshiba Corp 動作合成装置、同方法、シミュレーション装置、同方法及び設計装置

Also Published As

Publication number Publication date
JP2010097493A (ja) 2010-04-30

Similar Documents

Publication Publication Date Title
US8417504B2 (en) Conversion of circuit description to a transaction model
US5650938A (en) Method and apparatus for verifying asynchronous circuits using static timing analysis and dynamic functional simulation
US8108648B2 (en) Various methods and apparatus for address tiling
Pimentel et al. Calibration of abstract performance models for system-level design space exploration
US8428927B2 (en) Simulation method and simulation apparatus
US8706453B2 (en) Techniques for processor/memory co-exploration at multiple abstraction levels
JP2000132416A (ja) 半導体集積回路設計検証装置
JP3423603B2 (ja) 高位合成装置及び高位合成方法、並びに高位合成プログラムを記録した記録媒体
JP2009140388A (ja) 性能評価モデル生成方法、システム性能評価方法、及び性能評価モデル生成装置
US7228513B2 (en) Circuit operation verification device and method
JP7036814B2 (ja) デバッギングシステム及び方法
US9021289B2 (en) Method and system for power estimation based on a number of signal changes
US7992112B2 (en) Hardware verification programming description generation apparatus, high-level synthesis apparatus, hardware verification programming description generation method, hardware verification program generation method, control program and computer-readable recording medium
JP5287132B2 (ja) 設計支援プログラム、設計支援装置、およびシミュレーションモデル
US11430496B2 (en) Phase-aware DDR command dynamic scheduling
JP5454349B2 (ja) 性能推定装置
US20070038431A1 (en) Data processing apparatus simulation
JP5001126B2 (ja) ハードウェア検証用プログラミング記述生成装置、ハードウェア検証用プログラミング記述生成方法、制御プログラムおよび可読記録媒体
JP5328447B2 (ja) 高位合成装置および高位合成方法、半導体集積回路の製造方法、制御プログラム、可読記憶媒体
JP5071297B2 (ja) 設計支援プログラム、設計支援装置、および設計支援方法
JP2003067438A (ja) シミュレーションモデルの生成方法及びシミュレーション方法及びその記録媒体
JP5110206B2 (ja) 動作合成装置、動作合成方法、ならびに、プログラム
JP2007207119A (ja) 表示装置及び表示方法
JPH07129540A (ja) 対象の動作を時系列的に検証するシミュレータのためのバックトラッキング方式
JP2006331269A (ja) ハードウェア/ソフトウェア協調シミュレーション装置及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110708

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120904

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120918

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121119

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130507

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130520

LAPS Cancellation because of no payment of annual fees