JP2005293219A - ソフトウェア検証モデル生成方法 - Google Patents

ソフトウェア検証モデル生成方法 Download PDF

Info

Publication number
JP2005293219A
JP2005293219A JP2004107207A JP2004107207A JP2005293219A JP 2005293219 A JP2005293219 A JP 2005293219A JP 2004107207 A JP2004107207 A JP 2004107207A JP 2004107207 A JP2004107207 A JP 2004107207A JP 2005293219 A JP2005293219 A JP 2005293219A
Authority
JP
Japan
Prior art keywords
software
execution time
verification model
integrated value
basic block
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.)
Granted
Application number
JP2004107207A
Other languages
English (en)
Other versions
JP4271072B2 (ja
Inventor
Takao Niiya
隆夫 新舎
Michiaki Muraoka
道明 村岡
Noriyoshi Ito
徳義 伊藤
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.)
Oki Electric Industry Co Ltd
Semiconductor Technology Academic Research Center
Original Assignee
Oki Electric Industry Co Ltd
Semiconductor Technology Academic Research Center
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 Oki Electric Industry Co Ltd, Semiconductor Technology Academic Research Center filed Critical Oki Electric Industry Co Ltd
Priority to JP2004107207A priority Critical patent/JP4271072B2/ja
Publication of JP2005293219A publication Critical patent/JP2005293219A/ja
Application granted granted Critical
Publication of JP4271072B2 publication Critical patent/JP4271072B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

【課題】 半導体装置に搭載されるハードウェア/ソフトウェアの協調検証を実行する際に必要なソフトウェア検証モデルを生成する方法に関し、バジェット処理の追加方法を最適化してシミュレーション精度を維持しつつ、その性能を向上させることを目的とする。
【解決手段】 ホストCPUにより半導体装置の協調検証を実行するためにソフトウェアの検証モデルを生成する場合に、ソフトウェア部品のBasic Block を認識して制御点を挿入し、制御点が挿入されたソフトウェア部品をコンパイルしてターゲットCPU用バイナリ・コードを生成し、Basic Block の制御点間の実行時間を算出し、当該実行時間を積算した積算値が指定値以上であると判定された場合に、当該積算値をパラメータとする実行時間挿入文をBasic Block の後の制御点に追加し、当該積算値をクリアして0にし、上記の一連の処理で得られたCベース言語のソフトウェア部品を検証モデルとして出力する。
【選択図】 図9

Description

本発明は、ホストCPU(中央処理装置:Central Processing Unit)を使用して、半導体装置に搭載されるハードウェア及びソフトウェアの協調検証(Co-verification)を実行する際に必要となるソフトウェアの検証モデルを生成するためのソフトウェア検証モデル生成方法に関する。
近年、SoCを搭載した機器が広く普及してきている。SoCとは、System on a Chipの略で、コンピュータの主要機能を一つのチップ(半導体装置)に詰め込む技術、あるいは、当該技術によりコンピュータの主要機能を搭載したチップを指している。
図1は、かかるSoCの上流設計フローを示す図である。同図に示されるように、システム・レベルの設計が完了した後、アーキテクチャ・レベルの設計に移行する。アーキテクチャ・レベルの設計では、CPU、RTOS(Real-Time Operating System)に代表されるOS(Operating System)、バス(Bus)等の基本部品の選択、アプリケーションのハードウェア及びソフトウェアへの機能分割、並びにハードウェア設計及びソフトウェア設計が行われる。そして、アーキテクチャ・レベルの設計により得られた基本部品、ハードウェア部品及びソフトウェア部品に対し、それらの検証モデルに基づくハードウェア/ソフトウェア協調検証が実行される。
ここで、RTOSとは、各種の処理をリアルタイムにて実行することを重視し、そのための機能を実装したOSを指している。携帯電話、ディジタル・テレビ等のディジタル機器を制御するコンピュータ等では、応答時間が一定の範囲内にあることが要求されるため、上記のRTOSに対してもリアルタイム性を実現するための様々な機能が必要とされる。
図2は、従来のハードウェア/ソフトウェア協調検証方法を説明するためのデータ流れ図であり、図3は、従来のバジェット処理追加方法を説明するためのフローチャートである。
一般に、半導体装置に搭載されるハードウェア及びソフトウェアの高速協調シミュレーションを実現するためには、基本部品、ハードウェア部品及びソフトウェア部品をモデル化することによって検証モデルを作成することが必要である。
図2に示すように、ソフトウェア部品のRTOSは通常、ANSI−C及びアセンブリ言語で記述されている。このANSI−C及びアセンブリ言語で記述されたRTOSのソースコードに基づいて、タスク制御及びデータアクセス制御を実行するためのモデル化やタスク切替えを実行するためのモデル化が、人手により行われ、実行時間追加前のCベース言語で記述された検証モデル(すなわち、Cベース・モデル)が作成される。その後、この実行時間追加前の検証モデルにバジェット(Budget)が追加され、実行時間追加後のCベース言語で記述された検証モデル(すなわち、Cベース・モデル)が生成される。なお、本明細書において、「Cベース言語」とは、ANSI−C/C++の各種拡張言語、SpecC、SystemCのいずれかの言語を意味する。
また一方で、ソフトウェア部品のアプリケーション・ソフトウェアは通常、ANSI−Cで記述されている。ただし、アプリケーション・ソフトウェアの中の割込みハンドラ及びデバイス・ドライバ等においては、それらの設計論理にANSI−Cによる記述に加えてアセンブリ言語による記述が含まれることもある。このANSI−Cのみ、又は、ANSI−C及びアセンブリ言語で記述されたアプリケーション・ソフトウェアのソースコードに基づいて、タスク制御及びデータアクセス制御を実行するためのモデル化やタスク切替えを実行するためのモデル化が、人手により行われ、実行時間追加前のCベース言語で記述された検証モデル(すなわち、Cベース・モデル)が作成される。その後、この実行時間追加前の検証モデルにバジェット(Budget)が追加され、実行時間追加後のCベース言語で記述された検証モデル(すなわち、Cベース・モデル)が生成される。
また一方で、ハードウェア部品に関しては、Cベース言語で記述された検証モデル(すなわち、Cベース・モデル)が作成される。このCベース・モデルは、ビヘイビア(Behavior)記述又はRTL(Register Transfer Level)記述による検証モデルである。なお、ビヘイビア記述とは、回路のふるまいを記述したものであり、一方、RTL記述とは、レジスタの値が遷移していく様子を記述したものである。
さらに、ハードウェア部品の検証モデルの作成方法について説明する。基本部品に関しては、CPU及びCPU専用の検証モデルは作成されず、ISS(Instruction Set Simulator)における割込み処理部を独立させたIRS(Interrupt Routine Scheduler)が、RTOSの検証モデルの一部として新たに導入される。このIRSはCベース言語で記述される。又、バスの検証モデルは、Cベース言語で新規に作成される。
又、Cベース言語を用いて論理設計されたビヘイビア(Behavior)記述のハードウェア部品は、動作合成ツールの拡張機能を利用して、Cベース言語記述から Fixed I/O Behavior モデルへと自動的に変換されることにより、その検証モデル(Cベース・モデル)が生成される。このFixed I/O Behavior モデル は、Basic Block を利用したハードウェア・モデルと同等のものである。
又、Verilog/VHDL を用いて論理設計されたRTL((Register Transfer Level)記述のハードウェア部品は、HDL Import(CoWare 社製ツール)等を利用して、RTL記述からRTL−Cベース言語モデルへと自動的に変換されることにより、その検証モデル(Cベース・モデル)が生成される。このRTL−Cベース言語モデルは、FSM(有限状態機械:Finite State Machine)の1ステートが1クロックの動作を表現するものである。
以上のようなCベース・モデルからなる検証モデル(基本部品、ハードウェア部品及びソフトウェア部品)にシミュレーション全体の動作を制御するCベース・シミュレータを加えることで、図2に示すような従来のハードウェア/ソフトウェア協調検証方法を実行するための協調検証システム(ソフトウェア構成)が構成される。
図2のバジェット追加部では、ソフトウェア部品の検証モデルを生成する場合、実行時間追加前のCベース・モデルの中からANSI−C記述のみによるソースコードの部分(Cコードの部分と呼ばれる)を取り出し、図3に示すようなバジェット(Budget)処理を行っている。このバジェット(Budget)処理は、以下のような順序で行われる(例えば、先行技術文献(後述の特許文献1)の特願平2003−024706号(平成15年1月31日出願)参照)。
まず第1に、実行時間追加前のCベース・モデルの中から取り出したCコードの部分に対して、Basic Block を認識し、制御点を挿入することにより、制御点が挿入されたCコードを出力する。このBasic Blockは、RTOS及びアプリケーション・ソフトウェアのプログラムがストレートに走行する部分を指すものである。そして、その認識された Basic Block の前後に制御点が挿入される。
より詳しく説明すると、図3の(A)に示されるCコードの部分に対しては、ノードa及びノードbが一つの Basic Block と認識され、ノードc、ノードd及びノードeが一つの Basic Block と認識され、ノードc及びノードfが一つの Basic Block と認識され、ノードgが一つの Basic Block と認識される。そのため、図3の(B)に示されるように、ノードbとノードcとの間、ノードeとノードgとの間、ノードfとノードgとの間、及びノードgの後に、それぞれ制御点が挿入される。
第2に、上記の制御点が挿入されたCコードの部分をコンパイルすることにより、ターゲットCPU用バイナリ・コードを生成する。なお、本明細書において、「ターゲットCPU」とは、検証対象のSoC等の半導体装置に搭載されているCPU(例えば、ARMプロセッサ)を意味する。
第3に、前述のようなコンパイルを行った結果、生成されたターゲットCPU用バイナリ・コード(命令コード)に基づいて、各々の制御点間の実行時間を算出する。その算出は、
kΣ[各命令のサイクル数]
なる演算式に基づいて行われる。ここで、係数kは、キャッシュ・メモリのミスヒットに起因するオーバヘッド係数であり、統計的処理による実行時間の補正を可能とするために導入されたものである。
第4に、制御点が挿入されたCコードの部分の各々の制御点へ、算出された実行時間をパラメータとする実行時間挿入文(SpecCの場合は、waitfor 文である)を追加し、Cベース言語記述の検証モデル(実行時間追加後のCベース・モデル)として出力する。なお、前述の先行技術文献では、実行時間追加前のCベース・モデルを「Untimedソフトウェア部品」と称し、上記のバジェット処理追加による実行時間追加後のCベース・モデルを「Timedソフトウェア部品」と称している。
例えば、図3の(B)に示されるノードa及びノードbの実行時間がt1と算出され、ノードc、ノードd及びノードe の実行時間がt2と算出され、ノードc及びノードf の実行時間がt3と算出され、ノードg の実行時間がt4と算出されたとする。この場合には、図3の(C)に示されるように、ノードbとノードcとの間の制御点には、実行時間挿入文として waitfor(t1) が追加される。同様に、ノードeとノードgとの間の制御点には実行時間挿入文として waitfor(t2) が追加され、ノードfとノードgとの間の制御点には実行時間挿入文として waitfor(t3) が追加され、ノードgの後の制御点には実行時間挿入文として waitfor(t4) が追加されることとなる。
図4は、このようにして作成されたCベース言語記述の検証モデルに基づくCベース・シミュレーションについて説明するための模式図である。Cベース言語記述の検証モデルをコンパイルしてホストCPU用バイナリ・コードを生成することにより、ホストCPUにおいてCベース・シミュレータを使用したCベース・シミュレーションが可能となる。ここで、「ホストCPU」とは、協調検証を実行するパーソナル・コンピュータ(PC)又はワーク・ステーション(WS)に搭載されているCPU(例えば、Pentium(登録商標)プロセッサ)を意味する。
換言すれば、Cベース言語記述の検証モデルをコンパイルして生成されたホストCPU用バイナリ・コードをホストCPUで実行させることにより、命令コードの一命令ごとにその命令内容を解釈してシミュレーションを実行するISS(Instruction Set Simulator)の場合に比較して、100〜1000倍程度の高速化を図ることができる。
また一方で、シミュレーションの過程において、 waitfor 文が出現したところで、シミュレータがその内容を解釈することにより、命令実行時間の管理が可能となるため、タイミングについてのシミュレーション精度も維持することができる。すなわち、ノードbに相当する命令コードの実行後には、 waitfor(t1) の命令コードを解釈することで累積処理時間T1=t1が求められる。同様に、ノードeに相当する命令コードの実行後には累積処理時間T2=t1+t2が求められる一方、ノードfに相当する命令コードの実行後には累積処理時間T2=t1+t3が求められる。
そして、ノードgに相当する命令コードの実行後には、プログラムがノードc、ノードd及びノードeのルートを走行した場合には累積処理時間T3=t1+t2+t4が求められる一方、プログラムがノードc及びノードfのルートを走行した場合には累積処理時間T3=t1+t3+t4が求められることとなる。
ここで、参考のため、図2〜図4に関連した先行技術文献(特許文献1)以外に、従来のハードウェア/ソフトウェア協調検証方法に関連した幾つかの先行技術文献を挙げておく。
ISSを使用した協調検証に関する先行技術文献としては、下記特許文献2〜4の他に、下記の非特許文献1及び2が存在する。なお、下記の非特許文献3は、前述の“Basic Block”に関するものであり、非特許文献4〜6は、前述の“Fixed I/O Behaviorモデル”に関するものであり、非特許文献7〜9は、Cベース言語の設計及び検証の技術動向に関するものである。
特願2003−024706号(平成15年1月31日出願) 特開2000−259445号公報 特開2001−256072号公報 特開2002−175344号公報 若林一敏:C言語によるLSI設計−動作合成とHW/SW協調検証の実際、NE Embedded Symposium 2002. 黒川、池上、大坪、浅尾、桐ヶ谷、三栖、高橋、川津、新田、笠、若林、友部、高橋、向山、竹中:C言語ベースの動作合成を利用したシステムLSI設計手法の効果分析と考察、電子情報通信学会第15回軽井沢ワークショップ、pp. 131-142、Apr. 2002. Alfred Aho, Ravi Sethi and Jeffrey Ullman, "Compilers: Principals, Techniques and Tools", Addison-Wesley, 1986. D. W. Knapp, T. Ly, D. MacMillen and R. Miller, "Behavioral Synthesis Methodology for HDL-Based Specification and Validation", Proc. Design Automation Conf., June 1995. T. Ly, D. W. Knapp, R. Miller and D. MacMillen, "Scheduling using Behavioral Templates", Proc. Design Automation Conf., June 1995. D. W. Knapp, "Behavioral Synthesis: Digital System Design using the Synopsys Behavioral Compiler", Prentice Hall PTR. L. Gauthier, S. Yoo and A. A. Jerraya, "Automatic Generation and Targeting of Application Specific Operating Systems and Embedded Systems Software", Proc. Design Automation and Test in Europe, Mar. 2001. D. Lyonnard, S. Yoo, A. Baghdadi and A. A. Jerraya, "Automatic Generation of Application-Specific Architectures for Heterogeneous Multiprocessor System-on-Chip", Proc. Design Automation Conf., June 2001. S. Yoo, G. Nicolescu, L. Gauthier and A. A. Jerraya, "Automatic Generation of Fast Timed Simulation Models for Operating Systems in SoC", Proc. Design Automation and Test in Europe, Mar. 2002.
しかしながら、図2〜図4に示したような従来のハードウェア/ソフトウェア協調検証方法において、バジェット処理の追加により実行時間挿入文(waitfor 文)が追加された検証モデルを使用してCベース・シミュレーションを実行した場合、Cコードの10行程度に対し1回の頻度でwaitfor 文が追加されるようになり、バジェット処理を追加しない場合に比べてwaitfor 文の追加頻度がかなり高くなる。このため、バジェット処理を追加しない場合に比べて、Cベース・シミュレーションの実行速度が遅くなってシミュレーション性能が低下するという問題が生じてくる。例えば、「宣教師と人食い人」、「ハノイの塔」等の10種のサンプルプログラムを対象にして、バジェット処理の追加によりwaitfor 文を追加した場合、バジェット処理を追加しない場合に比べてシミュレーション性能を示すMIPS値(Million Instructions Per Second :シミュレーション時間/実行時間)の平均値が約1/50に低下するようになる。
本発明は、上記問題点に鑑みてなされたものであり、バジェット処理の追加方法を最適化することでシミュレーション精度を維持しつつ、従来方法よりもシミュレーションの実行速度を速くしてシミュレーション性能を向上させることを可能にするようなソフトウェア検証モデル生成方法を提供することを目的とするものである。
上記目的を達成するために、本発明の第1の面によれば、ホストCPUを使用して、一つのターゲットCPU及び一つのOSが少なくとも搭載される半導体装置のハードウェア及びソフトウェアの協調検証を実行するために、ソフトウェアの検証モデルを生成する場合に、Cベース言語記述のソフトウェア部品を入力してANSI−C記述部分を取り出し、Basic Block を認識し、制御点を挿入するステップと、当該制御点が挿入された上記ANSI−C記述部分をコンパイルしてターゲットCPU用バイナリ・コードを生成するステップと、上記Basic Block の各々について、当該Basic Block の制御点間の実行時間を算出するステップと、算出された当該実行時間を積算するステップと、当該実行時間を積算して得られる積算値が予め指定された指定値以上であるか否かを判定するステップと、上記積算値が上記指定値以上であると判定された場合に、上記積算値をパラメータとする実行時間挿入文を当該Basic Block の後の制御点に追加し、上記積算値をクリアして0にするステップと、上記の一連のステップで得られたCベース言語記述のソフトウェア部品を上記検証モデルとして出力するステップとを有するソフトウェア検証モデル生成方法が提供される。
さらに、本発明の第2の面によれば、ホストCPUを使用して、一つのターゲットCPU及び一つのOSが少なくとも搭載される半導体装置のハードウェア及びソフトウェアの協調検証を実行するために、ソフトウェアの検証モデルを生成する場合に、Cベース言語記述のソフトウェア部品を入力してANSI−C記述部分を取り出し、Basic Block を認識し、制御点を挿入するステップと、当該制御点が挿入された上記ANSI−C記述部分をコンパイルしてターゲットCPU用バイナリ・コードを生成するステップと、上記Basic Block の各々について、当該Basic Block の制御点間の実行時間を算出するステップと、算出された当該実行時間を積算するステップと、上記OSに関係するサービス・コールの発行時もしくは受信時のいずれか一方のイベント、又は、上記ハードウェアに関係するイベントが発生する箇所に、上記実行時間を積算して得られる積算値をパラメータとする実行時間挿入文を追加し、上記積算値をクリアして0にするステップと、上記の一連のステップで得られたCベース言語記述のソフトウェア部品を上記検証モデルとして出力するステップとを有するソフトウェア検証モデル生成方法が提供される。
さらに、本発明の第3の面によれば、ホストCPUを使用して、一つのターゲットCPU及び一つのOSが少なくとも搭載される半導体装置のハードウェア及びソフトウェアの協調検証を実行するために、ソフトウェアの検証モデルを生成する場合に、Cベース言語記述のソフトウェア部品を入力してANSI−C記述部分を取り出し、Basic Block を認識し、制御点を挿入するステップと、当該制御点が挿入された上記ANSI−C記述部分をコンパイルしてターゲットCPU用バイナリ・コードを生成するステップと、上記Basic Block の各々について、当該Basic Block の制御点間の実行時間を算出するステップと、算出された当該実行時間を積算するステップと、当該実行時間を積算して得られる積算値が予め指定された指定値以上であるか否かを判定するステップと、上記積算値が上記指定値以上であると判定された場合に、上記積算値をパラメータとする実行時間挿入文を当該Basic Block の後の制御点に追加し、上記積算値をクリアして0にするステップと、上記OSに関係するサービス・コールの発行時もしくは受信時のいずれか一方のイベント、又は、上記ハードウェアに関係するイベントが発生する箇所に、上記積算値をパラメータとする実行時間挿入文を追加し、上記積算値をクリアして0にするステップと、上記の一連のステップで得られたCベース言語記述のソフトウェア部品を上記検証モデルとして出力するステップとを有するソフトウェア検証モデル生成方法が提供される。
要約すれば、本発明では、Cベース言語記述のソフトウェア部品のBasic Block に挿入された各々の制御点間の実行時間を算出すると共に、当該実行時間を積算して得られる積算値が指定値以上であると判定された場合にのみ、当該積算値をパラメータとするwaitfor 文を上記ソフトウェア部品に追加するようにしている(後述のバジェット処理(Budget proc)1)。それゆえに、従来方法に比べてwaitfor 文の追加頻度が節減されるので、従来方法よりもシミュレーションの実行速度が速くなってシミュレーション性能が向上する。この場合、当該積算値が指定値以上であると判定された場合に当該積算値をパラメータとするwaitfor 文を追加し、Cベース・シミュレータが当該waitfor 文を解釈して命令実行時間の管理を行うことができるので、従来方法に比べてシミュレーション精度がそれほど低下することはない。
さらに、本発明では、Cベース言語記述のソフトウェア部品のBasic Block に挿入された各々の制御点間の実行時間を算出すると共に、当該実行時間を積算して積算値を算出するようにしている(後述のバジェット処理2)。それゆえに、前述のバジェット処理1の場合と同様に、waitfor 文の追加頻度が節減されるので、従来方法よりもシミュレーションの実行速度が速くなってシミュレーション性能が向上する。
また一方で、本発明では、Cベース言語記述のソフトウェア部品のBasic Block に挿入された各々の制御点間の実行時間を算出すると共に、当該実行時間を積算して積算値を算出するようにしている(後述のバジェット処理2)。さらに、RTOS等のOSに関係するサービス・コールの発行時又は受信時のいずれか一方のイベント、もしくはハードウェアとソフトウェアとの通信に関するイベント(例えば、バス・アクセス時、ディスパッチ時又はCPU例外・割込み受信時のイベント)が発生する箇所に、現在の積算値をパラメータとするwaitfor 文を追加している(後述のバジェット処理3)。これらのバジェット処理2及びバジェット処理3を組み合せて使用することにより、waitfor 文の追加頻度の最適化を図りつつ従来方法とほぼ同等のシミュレーション精度を維持することが可能になる。
また一方で、本発明では、上記のバジェット処理1及びバジェット処理3を組み合せて使用することにより、waitfor 文の追加頻度の最適化を図りつつ従来方法とほぼ同等のシミュレーション精度を維持することが可能になる。
以下、添付図面を参照して本発明の実施形態について説明する。
図5は、本発明に係るソフトウェア検証モデル生成方法を実施するためのハードウェア環境を例示するブロック図である。なお、これ以降、前述した構成要素と同様のものについては、同一の参照番号を付して表すこととする。
図5に例示されるように、本発明に係るソフトウェア検証モデル生成方法(又はハードウェア/ソフトウェア協調検証方法)は、中央処理装置(CPU)12及び主記憶装置(MS)14を有するコンピュータ本体10、ディスプレイ20、キーボード22、マウス24、ハードディスク装置等からなる外部記憶装置30を備える通常のパーソナル・コンピュータ(PC)又はワーク・ステーション(WS)上で実行可能である。
CPU12は、ソフトウェア検証モデル生成(又はハードウェア/ソフトウェア協調検証)を実行するホストCPUとして動作するものであり、例えば、Pentiumプロセッサである。以下に説明されるソフトウェア検証モデル生成(又はハードウェア/ソフトウェア協調検証)のためのプログラムは、CPU12によって実行される。又、各種のデータ、ファイル等は、外部記憶装置30から主記憶装置(MS)14にロードされて処理される。
図6は、本発明の実施形態に関連するハードウェア/ソフトウェア協調検証システム(ソフトウェア構成)を示すブロック図である。
図6においては、半導体装置に搭載されるハードウェア及びソフトウェアの協調検証を実行するために、ソフトウェア部品(ここでは、説明の便宜上、基本部品のRTOSをソフトウェア部品に含ませている)40と、ハードウェア部品60とがモデル化されている。
一般に、ソフトウェア部品のRTOSは、ANSI−C及びアセンブリ言語で記述されている。このANSI−C及びアセンブリ言語で記述されたRTOSのソースコードに基づいて、タスク制御及びデータアクセス制御を実行するためのモデル化やタスク切替えを実行するためのモデル化が、人手により行われ、実行時間追加前のCベース言語で記述された検証モデル(すなわち、Cベース・モデル)が作成される。その後、この実行時間追加前の検証モデルにバジェット(Budget)が追加され、実行時間追加後のCベース言語で記述されたRTOS43が、検証モデル(すなわち、Cベース・モデル)として生成される。
さらに、ソフトウェア部品のアプリケーション・ソフトウェアは、一般に、ANSI−Cで記述されている。ただし、アプリケーション・ソフトウェアの中の割込みハンドラ及びデバイス・ドライバ等においては、それらの設計論理にANSI−Cによる記述に加えてアセンブリ言語による記述が含まれることもある。このANSI−Cのみ、又は、ANSI−C及びアセンブリ言語で記述されたアプリケーション・ソフトウェアのソースコードに基づいて、タスク制御及びデータアクセス制御を実行するためのモデル化やタスク切替えを実行するためのモデル化が、人手により行われ、実行時間追加前のCベース言語で記述された検証モデル(すなわち、Cベース・モデル)が作成される。その後、この実行時間追加前の検証モデルにバジェット(Budget)が追加され、実行時間追加後のCベース言語で記述されたソフトウェア40が、検証モデル(すなわち、Cベース・モデル)として生成される。
このようにして生成されたソフトウェア部品40は、種々のタスク処理を実行する複数のタスク41(タスクa、タスクb、…、タスクx)と、CPU例外処理やCPU割込み処理等を実行する割込みハンドラ42と、上記タスクの切替え処理等を実行するディスパッチャ44と、バス50を経由してハードウェア部品60とのデータアクセス(すなわち、バス・アクセス)等を実行する複数のデバイス・ドライバ45(デバイス・ドライバ1、デバイス・ドライバ2、…、デバイス・ドライバn)とを含む。
さらに、本発明に係るソフトウェア部品40では、後述の図7〜図15にて詳しく説明するように、バジェット処理1(解決方法♯1)、バジェット処理2及びバジェット処理3の組み合せ(解決方法♯2)、又は、バジェット処理1及びバジェット処理3の組み合せ(解決方法♯3)のいずれか一つが含まれている。
また一方で、複数のハードウェア部品60(ハードウェア部品1、ハードウェア部品2、…、ハードウェア部品n)は、Cベース言語で記述された検証モデルとして作成される。図6では、バス50は、ハードウェア部品60から分離されているが、通常は、ハードウェア部品60に含まれるものである。さらに、ハードウェア部品60は、Cベース言語を用いたビヘイビア(Behavior)記述又はRTL記述による検証モデルが使用される。上記のハードウェア部品60の各々は、動作終了時に、割込み信号(割込み1、割込み2、…、割込みn)を生成してディスパッチャ44に送出する。
以上のような検証モデル(ソフトウェア部品40及びハードウェア部品60)にシミュレーション全体の動作を制御するCベース・シミュレータ70を加えることで、本発明の実施形態に関連するハードウェア/ソフトウェア協調検証システムが構成される。
図7は、Cベース言語記述のソフトウェア部品に基づいて本発明に係るバジェット処理1を実行するプログラムの処理手順を説明するためのフローチャートであり、図8は、Cベース言語記述のソフトウェア部品に基づいて本発明に係るバジェット処理2を実行するプログラムの処理手順を説明するためのフローチャートである。
さらに、図9は、図7に示されるような本発明に係るバジェット処理1の追加によるソフトウェア検証モデル生成方法を説明するための模式図であり、図10は、図8に示されるような本発明に係るバジェット処理2の追加によるソフトウェア検証モデル生成方法を説明するための模式図である。
以下、図7及び図9を参照しながら、Cベース言語記述のソフトウェア部品80に基づいて本発明に係るバジェット処理1を実行するプログラムの処理手順を説明する。
まず、図7のステップ105では、実行時間追加前のCベース言語で記述されたソフトウェア部品80を入力して、このソフトウェア部品の中からANSI−C記述のみによるソースコードの部分(Cコードの部分と呼ばれる)を取り出す。次いで、ステップ110では、このCコードの部分に対して、Basic Block を認識し、制御点を挿入することにより、制御点が挿入されたCコードの部分82を出力する。このBasic Blockは、プログラムがストレートに走行する部分を指すものである。そして、その認識された Basic Block の前後に制御点が挿入される。
より詳しく説明すると、図9の(A)に示されるCコードの部分に対しては、ノードa及びノードbが一つの Basic Block と認識され、ノードc、ノードd及びノードeが一つの Basic Block と認識され、ノードc及びノードfが一つの Basic Block と認識され、ノードgが一つの Basic Block と認識される。そのため、図9の(B)に示されるように、ノードbとノードcとの間、ノードeとノードgとの間、ノードfとノードgとの間、及びノードgの後に、それぞれ制御点が挿入される。
さらに、ステップ120では、かかる制御点が挿入されたCコードの部分82をコンパイルすることにより、ターゲットCPU用のバイナリ・コード84を生成する。
さらに、ステップ180では、Cコードの部分82からBasic Block を順次取り出す。さらに、ステップ185では、取り出すBasic Block があるか否かを判定する。取り出すBasic Block があると判定された場合は、さらに、ステップ190のバジェット処理1を行い、ステップ180に分岐する。一方、取り出すBasic Block がないと判定された場合は、バジェット処理1が追加されたCベース言語記述のソフトウェア部品を検証モデル86として出力し、本プログラムの処理を終了する。
図11は、ステップ190のバジェット処理1を実行するプログラムの処理手順を説明するためのフローチャートである。以下、図9および図11を参照しながら、ステップ190のバジェット処理1を実行するプログラムの処理手順を説明する。
まず、ステップ130では、前述のコンパイルの結果、生成されたターゲットCPU用バイナリ・コード(命令コード)84に基づいて、ステップ180で取り出したBasic Block の制御点間の実行時間を算出する。その算出は、
kΣ[各命令のサイクル数]
なる演算式に基づいて行われる。ここで、係数kは、キャッシュ・メモリのミスヒットに起因するオーバヘッド係数であり、本実施形態においてはキャッシュ・メモリ・モデルを設けないことから、統計的処理による実行時間の補正を可能とするために導入されたものである。
さらに、ステップ140では、ステップ130で算出された実行時間を積算する。
さらに、ステップ150では、ステップ140で実行時間を積算して得られる積算値が予め定められた指定値以上であるか否かを判定する。
さらに、ステップ160では、当該積算値が予め定められた指定値以上であると判定された場合に、当該積算値をパラメータとする実行時間挿入文を当該Basic Block の後の制御点に追加する。一方、当該積算値が予め定められた指定値未満であると判定された場合には、本プログラムの処理を終了する。
例えば、ステップ130において、図9の(B)に示されるノードa及びノードbの実行時間がt1と算出され、ノードc、ノードd及びノードe の実行時間がt2と算出され、ノードc及びノードf の実行時間がt3と算出され、ノードg の実行時間がt4と算出されたとする。
この場合、ステップ140において、ノードbに相当する命令コードの実行後には、積算時間T1=t1が算出される。同様に、ノードeに相当する命令コードの実行後には積算時間T2=t1+t2が算出される一方、ノードfに相当する命令コードの実行後には積算時間T2=t1+t3が算出される。
そして、ノードgに相当する命令コードの実行後には、プログラムがノードc、ノードd及びノードe のルートを走行した場合には積算時間T3=t1+t2+t4が算出される一方、プログラムがノードc及びノードfのルートを走行した場合には積算時間T3=t1+t3+t4が算出されることとなる。
ここでは、ステップ150にて当該実行時間の積算値が予め定められた指定値以上であると判定された制御点に対してのみ、図9の(C)に示されるように、バジェット処理1を検証モデルに追加することによってwaitfor 文が追加される。この結果、waitfor 文の追加頻度が節減され、シミュレーション性能(シミュレーションの実行速度)が向上する。
最後に、ステップ170において、実行時間挿入文を追加した後に当該実行時間の積算値をクリアして0に戻す。
以下、図8及び図10を参照しながら、Cベース言語記述のソフトウェア部品80に基づいて本発明に係るバジェット処理2を実行するプログラムの処理手順を説明する。
図8のステップ105〜ステップ180では、前述のステップ105〜ステップ180の処理の内容と同様の処理が行われる。したがって、ここでは、ステップ105〜ステップ180に関する再度の説明を省略し、図8で新たに設けたステップ186とステップ195について説明する。
ステップ186では、取り出すBasic Block があるか否かを判定する。取り出すBasic Block があると判定された場合は、さらに、ステップ195のバジェット処理2を行い、ステップ180に分岐する。一方、取り出すBasic Block がないと判定された場合は、バジェット処理2が追加されたCベース言語記述のソフトウェア部品を検証モデル88として出力し、本プログラムの処理を終了する。
図12は、ステップ195のバジェット処理2を実行するプログラムの処理手順を説明するためのフローチャートである。図12のステップ130とステップ140では、前述の図11のステップ130とステップ140の処理の内容と同様の処理が行われる。したがって、ここでは、ステップ130とステップ140に関する再度の説明を省略する。
バジェット処理2では、実行時間を積算するのみで、制御点に対してwaitfor 文を追加することはしない。
より詳しく説明すると、図10の(A)に示されるCコードの部分に対しては、前述の図9の(A)の場合と同様に、ノードa及びノードbが一つの Basic Block と認識され、ノードc、ノードd及びノードeが一つの Basic Block と認識され、ノードc及びノードfが一つの Basic Block と認識され、ノードgが一つの Basic Block と認識される。そのため、図10の(B)に示されるように、ノードbとノードcとの間、ノードeとノードgとの間、ノードfとノードgとの間、及びノードgの後に、それぞれ制御点が挿入される。
上記のバジェット処理2では、図10の(C)に示されるように、各々の制御点に関して、ステップ140にて算出された当該実行時間を積算する。上記実行時間の積算値は、後述の図13及び図14のバジェット処理3を追加する場合に利用される。
図13は、RTOSに関係するイベントやハードウェアに関係するイベントが発生する個所を示すブロック図であり、図14は、本発明に係るバジェット処理3の追加によるソフトウェア検証モデル生成方法を説明するためのブロック図である。
一般に、図6に示されるようなハードウェア/ソフトウェア協調検証システムにおいて、RTOS43を使用してタスク制御やデータアクセス制御等の各種の制御を行っている間に、タスクのアプリケーション・ソフトウェア(サービス・コール部48)から、現在サービス・コール発行時であることを示すイベントが発生する。また一方で、RTOS43のサービス・コール処理部46では、現在サービス・コール受信時であることを示すイベントが発生する。
さらに、ディスパッチャ44により複数のタスクと割込みハンドラ42との間で切替え処理を実行するときに、現在ディスパッチ時(切替え処理時)であることを示すイベントが発生する。
さらに、バス・アクセス部49が動作してデバイス・ドライバとハードウェア部品との間でデータアクセスが実行されるときに、現在バス・アクセス時であることを示すイベントが発生する。
さらに、ハードウェアの動作が終了してCPU例外・割込みのフラグが設定されたときに、CPU例外・割込み処理部47から、現在CPU例外・割込み受信時であることを示すイベントが発生する。
換言すれば、上記のイベントは、タスクがサービス・コールを発行したとき、又はRTOSがサービス・コールを受信したときに対応する箇所(図13の●の部分)で発生する。また一方で、上記のイベントは、タスクや割込みハンドラのディスパッチを行ったときに対応する(図13の●の部分)箇所で発生する。また一方で、上記のイベントは、ハードウェア部品とソフトウェア部品との間でバス・アクセスやCPU例外・割込み等の通信を行ったときに対応する箇所(図13の●の部分)で発生する。
本発明の実施形態では、図14に示されるように、上記のようなイベントが発生する箇所に、現在の積算値をパラメータとしてwaitfor 文を追加することにより、本発明に係るバジェット処理3を追加する。このwaitfor 文を追加した後は、現在の積算値をクリアして0に戻す。
イベントが発生する箇所は、ハードウェア/ソフトウェア協調検証を実行する際の実行時間を管理する上で重要であり、当該箇所に現在の積算値をパラメータとするwaitfor 文を追加することによって実行時間を管理するようにしている。このバジェット処理3は、前述のバジェット処理1又はバジェット処理2と組み合せることによって、waitfor 文の追加頻度の最適化が図れるようになり、シミュレーション性能(シミュレーションの実行速度)が向上する。
図15は、本発明に係る3つの解決方法とその効果を示す図である。
本発明に係る解決方法♯1は、例えば図7、図9及び図11に示したように、バジェット処理1を追加することによって、Cベース言語記述のソフトウェア部品のBasic Block に挿入された各々の制御点間の実行時間を算出すると共に、当該実行時間を積算して得られる積算値が指定値以上であると判定された場合にのみ当該積算値をパラメータとするwaitfor 文を上記ソフトウェア部品に追加する方法である。
本発明に係る解決方法♯2は、例えば図8、図10、図12、図13及び図14に示したように、バジェット処理2及びバジェット処理3を追加することによって、Cベース言語記述のソフトウェア部品のBasic Block に挿入された各々の制御点間の実行時間を算出すると共に、当該実行時間を積算して積算値を算出し、かつ、RTOSに関係するサービス・コールの発行時又は受信時のいずれか一方のイベント、もしくはハードウェアに関係するイベントが発生する箇所に、現在の積算値をパラメータとするwaitfor 文を追加する方法である。
本発明に係る解決方法♯3は、例えば図7、図9、図11、図13及び図14に示したように、バジェット処理1及びバジェット処理3を追加することによって、Cベース言語記述のソフトウェア部品のBasic Block に挿入された各々の制御点間の実行時間を算出すると共に、当該実行時間を積算して得られる積算値が指定値以上であると判定された場合に、当該Basic Block の後の制御点に当該積算値をパラメータとするwaitfor 文を追加し、又は、RTOSに関係するサービス・コールの発行時又は受信時のいずれか一方のイベント、もしくはハードウェアに関係するイベントが発生する箇所に、現在の積算値をパラメータとするwaitfor 文を追加する方法である。
図15から明らかなように、シミュレーション精度に関しては、例えば図3及び図4に示したような従来方法が最も高精度になっており、従来方法→解決方法♯3→解決方法♯1→解決方法♯2の順に低精度になっていく。
また一方で、シミュレーション性能(シミュレーションの実行速度)に関しては、解決方法♯2が最も高性能になっており、解決方法♯2→解決方法♯1→解決方法♯3→従来方法の順に低性能になっていく。
本発明は、携帯電話、ディジタル・テレビ等のディジタル機器を制御するコンピュータの主要機能を搭載した半導体装置(チップ)の設計が完了した後に、検証モデルに基づいて高性能のハードウェア/ソフトウェア協調検証を実行するためのハードウェア/ソフトウェア協調検証システムに適用することが可能である。
SoCの上流設計フローを示すフローチャートである。 従来のハードウェア/ソフトウェア協調検証方法を説明するためのデータ流れ図である。 従来のバジェット処理追加方法を説明するための模式図である。 図3にて生成されたCベース言語記述の検証モデルに基づくCベース・シミュレーションについて説明するための模式図である。 本発明に係るソフトウェア検証モデル生成方法を実施するためのハードウェア環境を例示するブロック図である。 本発明の実施形態に関連するハードウェア/ソフトウェア協調検証システムの構成(ソフトウェア構成)を示すブロック図である。 Cベース言語記述のソフトウェア部品に基づいて本発明に係るバジェット処理1を実行するプログラムの処理手順を説明するためのフローチャートである。 Cベース言語記述のソフトウェア部品に基づいて本発明に係るバジェット処理2を実行するプログラムの処理手順を説明するためのフローチャートである。 本発明に係るバジェット処理1の追加によるソフトウェア検証モデル生成方法を説明するための模式図である。 本発明に係るバジェット処理2の追加によるソフトウェア検証モデル生成方法を説明するための模式図である。 図7のステップ190のバジェット処理1を実行するプログラムの処理手順を説明するためのフローチャートである。 図8のステップ195のバジェット処理2を実行するプログラムの処理手順を説明するためのフローチャートである。 RTOSに関係するイベントやハードウェアに関係するイベントが発生する箇所を示すブロック図である。 本発明に係るバジェット処理3の追加によるソフトウェア検証モデル生成方法を説明するためのブロック図である。 本発明に係る3つの解決方法とその効果を示す図である。
符号の説明
10…コンピュータ(PC又はWS)本体
12…中央処理装置(CPU)
14…主記憶装置(MS)
20…ディスプレイ
22…キーボード
24…マウス
30…外部記憶装置(ハードディスク装置)
40…ソフトウェア部品
41…タスク
42…割込みハンドラ
43…リアルタイム・オペレーティングシステム(RTOS)
44…ディスパッチャ
45…デバイス・ドライバ
50…キーボード
60…ハードウェア部品
70…Cベース・シミュレータ

Claims (5)

  1. ホストCPUを使用して、一つのターゲットCPU及び一つのOSが少なくとも搭載される半導体装置のハードウェア及びソフトウェアの協調検証を実行するために、ソフトウェアの検証モデルを生成するソフトウェア検証モデル生成方法であって、
    Cベース言語記述のソフトウェア部品を入力してANSI−C記述部分を取り出し、Basic Block を認識し、制御点を挿入するステップと、
    該制御点が挿入された前記ANSI−C記述部分をコンパイルしてターゲットCPU用バイナリ・コードを生成するステップと、
    前記Basic Block の各々について、該Basic Block の制御点間の実行時間を算出するステップと、
    算出された該実行時間を積算するステップと、
    該実行時間を積算して得られる積算値が予め指定された指定値以上であるか否かを判定するステップと、
    前記積算値が前記指定値以上であると判定された場合に、前記積算値をパラメータとする実行時間挿入文を該Basic Block の後の制御点に追加し、前記積算値をクリアして0にするステップと、
    前記の一連のステップで得られたCベース言語記述のソフトウェア部品を前記検証モデルとして出力するステップとを有することを特徴とするソフトウェア検証モデル生成方法。
  2. ホストCPUを使用して、一つのターゲットCPU及び一つのOSが少なくとも搭載される半導体装置のハードウェア及びソフトウェアの協調検証を実行するために、ソフトウェアの検証モデルを生成するソフトウェア検証モデル生成方法であって、
    Cベース言語記述のソフトウェア部品を入力してANSI−C記述部分を取り出し、Basic Block を認識し、制御点を挿入するステップと、
    該制御点が挿入された前記ANSI−C記述部分をコンパイルしてターゲットCPU用バイナリ・コードを生成するステップと、
    前記Basic Block の各々について、該Basic Block の制御点間の実行時間を算出するステップと、
    算出された該実行時間を積算するステップと、
    前記OSに関係するサービス・コールの発行時のイベント、又は、前記ハードウェアに関係するイベントが発生する箇所に、前記実行時間を積算して得られる積算値をパラメータとする実行時間挿入文を追加し、前記積算値をクリアして0にするステップと、
    前記の一連のステップで得られたCベース言語記述のソフトウェア部品を前記検証モデルとして出力するステップとを有することを特徴とするソフトウェア検証モデル生成方法。
  3. ホストCPUを使用して、一つのターゲットCPU及び一つのOSが少なくとも搭載される半導体装置のハードウェア及びソフトウェアの協調検証を実行するために、ソフトウェアの検証モデルを生成するソフトウェア検証モデル生成方法であって、
    Cベース言語記述のソフトウェア部品を入力してANSI−C記述部分を取り出し、Basic Block を認識し、制御点を挿入するステップと、
    該制御点が挿入された前記ANSI−C記述部分をコンパイルしてターゲットCPU用バイナリ・コードを生成するステップと、
    前記Basic Block の各々について、該Basic Block の制御点間の実行時間を算出するステップと、
    算出された該実行時間を積算するステップと、
    前記OSに関係するサービス・コールの受信時のイベント、又は、前記ハードウェアに関係するイベントが発生する箇所に、前記実行時間を積算して得られる積算値をパラメータとする実行時間挿入文を追加し、前記積算値をクリアして0にするステップと、
    前記の一連のステップで得られたCベース言語記述のソフトウェア部品を前記検証モデルとして出力するステップとを有することを特徴とするソフトウェア検証モデル生成方法。
  4. ホストCPUを使用して、一つのターゲットCPU及び一つのOSが少なくとも搭載される半導体装置のハードウェア及びソフトウェアの協調検証を実行するために、ソフトウェアの検証モデルを生成するソフトウェア検証モデル生成方法であって、
    Cベース言語記述のソフトウェア部品を入力してANSI−C記述部分を取り出し、Basic Block を認識し、制御点を挿入するステップと、
    該制御点が挿入された前記ANSI−C記述部分をコンパイルしてターゲットCPU用バイナリ・コードを生成するステップと、
    前記Basic Block の各々について、該Basic Block の制御点間の実行時間を算出するステップと、
    算出された該実行時間を積算するステップと、
    該実行時間を積算して得られる積算値が予め指定された指定値以上であるか否かを判定するステップと、
    前記積算値が前記指定値以上であると判定された場合に、前記積算値をパラメータとする実行時間挿入文を該Basic Block の後の制御点に追加し、前記積算値をクリアして0にするステップと、
    前記OSに関係するサービス・コールの発行時のイベント、又は、前記ハードウェアに関係するイベントが発生する箇所に、前記積算値をパラメータとする実行時間挿入文を追加し、前記積算値をクリアして0にするステップと、
    前記の一連のステップで得られたCベース言語記述のソフトウェア部品を前記検証モデルとして出力するステップとを有することを特徴とするソフトウェア検証モデル生成方法。
  5. ホストCPUを使用して、一つのターゲットCPU及び一つのOSが少なくとも搭載される半導体装置のハードウェア及びソフトウェアの協調検証を実行するために、ソフトウェアの検証モデルを生成するソフトウェア検証モデル生成方法であって、
    Cベース言語記述のソフトウェア部品を入力してANSI−C記述部分を取り出し、Basic Block を認識し、制御点を挿入するステップと、
    該制御点が挿入された前記ANSI−C記述部分をコンパイルしてターゲットCPU用バイナリ・コードを生成するステップと、
    前記Basic Block の各々について、該Basic Block の制御点間の実行時間を算出するステップと、
    算出された該実行時間を積算するステップと、
    該実行時間を積算して得られる積算値が予め指定された指定値以上であるか否かを判定するステップと、
    前記積算値が前記指定値以上であると判定された場合に、前記積算値をパラメータとする実行時間挿入文を該Basic Block の後の制御点に追加し、前記積算値をクリアして0にするステップと、
    前記OSに関係するサービス・コールの受信時のイベント、又は、前記ハードウェアに関係するイベントが発生する箇所に、前記積算値をパラメータとする実行時間挿入文を追加し、前記積算値をクリアして0にするステップと、
    前記の一連のステップで得られたCベース言語記述のソフトウェア部品を前記検証モデルとして出力するステップとを有することを特徴とするソフトウェア検証モデル生成方法。
JP2004107207A 2004-03-31 2004-03-31 ソフトウェア検証モデル生成方法 Expired - Fee Related JP4271072B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004107207A JP4271072B2 (ja) 2004-03-31 2004-03-31 ソフトウェア検証モデル生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004107207A JP4271072B2 (ja) 2004-03-31 2004-03-31 ソフトウェア検証モデル生成方法

Publications (2)

Publication Number Publication Date
JP2005293219A true JP2005293219A (ja) 2005-10-20
JP4271072B2 JP4271072B2 (ja) 2009-06-03

Family

ID=35326080

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004107207A Expired - Fee Related JP4271072B2 (ja) 2004-03-31 2004-03-31 ソフトウェア検証モデル生成方法

Country Status (1)

Country Link
JP (1) JP4271072B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7957950B2 (en) 2008-02-28 2011-06-07 Oki Semiconductor Co., Ltd. Hard/soft cooperative verifying simulator
CN102279768A (zh) * 2010-06-10 2011-12-14 株式会社东芝 仿真装置、仿真程序以及仿真方法
JP2012073759A (ja) * 2010-09-28 2012-04-12 Toshiba Corp 設計記述書換装置およびその方法
US8290764B2 (en) 2007-12-27 2012-10-16 Toshiba Solutions Corporation Virtualization program, simulation apparatus and virtualization method
US8370797B2 (en) 2008-06-20 2013-02-05 Sony Corporation Data processing apparatus, method therefor, and computer program
JP2015170081A (ja) * 2014-03-06 2015-09-28 三菱電機株式会社 シミュレーション装置及びシミュレーションプログラム

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8290764B2 (en) 2007-12-27 2012-10-16 Toshiba Solutions Corporation Virtualization program, simulation apparatus and virtualization method
US7957950B2 (en) 2008-02-28 2011-06-07 Oki Semiconductor Co., Ltd. Hard/soft cooperative verifying simulator
US8370797B2 (en) 2008-06-20 2013-02-05 Sony Corporation Data processing apparatus, method therefor, and computer program
CN102279768A (zh) * 2010-06-10 2011-12-14 株式会社东芝 仿真装置、仿真程序以及仿真方法
US8744831B2 (en) 2010-06-10 2014-06-03 Kabushiki Kaisha Toshiba Simulation apparatus, simulation method and recording medium for recording simulation program
CN102279768B (zh) * 2010-06-10 2014-06-25 株式会社东芝 仿真装置以及仿真方法
JP2012073759A (ja) * 2010-09-28 2012-04-12 Toshiba Corp 設計記述書換装置およびその方法
JP2015170081A (ja) * 2014-03-06 2015-09-28 三菱電機株式会社 シミュレーション装置及びシミュレーションプログラム

Also Published As

Publication number Publication date
JP4271072B2 (ja) 2009-06-03

Similar Documents

Publication Publication Date Title
JP3951925B2 (ja) ハードウェア/ソフトウェア協調検証方法
Richter et al. A formal approach to MpSoC performance verification
Ernst Codesign of embedded systems: Status and trends
CN113901745A (zh) 芯片测试方法、装置、电子设备及计算机可读存储介质
US6895524B2 (en) Circuit reduction technique for improving clock net analysis performance
US20200371843A1 (en) Framework for application driven exploration and optimization of hardware engines
Villarreal et al. Improving software performance with configurable logic
Posadas et al. System-level performance analysis in SystemC
Liang et al. FlexCL: A model of performance and power for OpenCL workloads on FPGAs
Beltrame et al. Multi-accuracy power and performance transaction-level modeling
JP4271072B2 (ja) ソフトウェア検証モデル生成方法
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
JP4342392B2 (ja) ソフトウェア検証モデル生成方法
Bouchhima et al. Generic discrete–continuous simulation model for accurate validation in heterogeneous systems design
JP5447547B2 (ja) マクロ遅延解析装置、マクロ境界パスの遅延解析方法、マクロ境界パスの遅延解析プログラム
CN118468771A (zh) 芯片问题定位方法、装置及相关设备
JP2000259445A (ja) ソフトウェア/ハードウェア協調シミュレーション方法
JP2005321848A (ja) システムシミュレーション実行プログラムおよびハードウェア記述変換プログラム
Holzer et al. Efficient design methods for embedded communication systems
Centomo et al. Automatic generation of cycle-accurate simulink blocks from hdl ips
JP4264110B2 (ja) 模擬実行装置、方法およびプログラム
Dömer Transaction level modeling of computation
Ziegenbein et al. Breaking down complexity for reliable system-level timing validation
JP5390464B2 (ja) シミュレーション装置、シミュレーション装置の制御方法およびプログラム
JP2006011840A (ja) 組み込みシステム

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20061106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20061106

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20061106

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070305

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081119

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20081126

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: 20090203

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: 20090224

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

Free format text: PAYMENT UNTIL: 20120306

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4271072

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130306

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20140306

Year of fee payment: 5

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees