JPH11259552A - システム仕様記述のシミュレーション方法 - Google Patents

システム仕様記述のシミュレーション方法

Info

Publication number
JPH11259552A
JPH11259552A JP10062554A JP6255498A JPH11259552A JP H11259552 A JPH11259552 A JP H11259552A JP 10062554 A JP10062554 A JP 10062554A JP 6255498 A JP6255498 A JP 6255498A JP H11259552 A JPH11259552 A JP H11259552A
Authority
JP
Japan
Prior art keywords
software
execution
candidate
time
hardware
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP10062554A
Other languages
English (en)
Inventor
Shoichi Kataoka
庄一 片岡
Yutaka Tamagaki
裕 玉垣
Toshiaki Furuwatari
俊明 古渡
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.)
Inabata and Co Ltd
Omron Corp
Original Assignee
Inabata and Co Ltd
Omron Corp
Omron Tateisi Electronics Co
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 Inabata and Co Ltd, Omron Corp, Omron Tateisi Electronics Co filed Critical Inabata and Co Ltd
Priority to JP10062554A priority Critical patent/JPH11259552A/ja
Publication of JPH11259552A publication Critical patent/JPH11259552A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】シミュレータの管理コードが簡単になり、リア
ルタイムOSが自動作成され、また、ハードウエア候補
とソフトウエア候補の実行時間が正確に測定出来るシス
テム仕様記述のシミュレーション方法を提供する。 【解決手段】実行単位のプロセスの集まりとして書かれ
たシステム仕様記述に基づいて、全プロセスをハードウ
エア候補とソフトウエア候補に分割し、これをシミュレ
ータにかけるとき、並列動作する各プロセス個々にCP
Uモデルを与え、各プロセスの切替をシミュレータ内に
置いた管理コードで行う。また、ソフトウエア候補のプ
ロセスは、システム仕様記述から自動的に作成したリア
ルタイムOSにより並列実行する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ハードウエアとソ
フトウエアの混在するシステムの設計支援方法に関し、
特に、システム仕様記述からのシミュレーションを容易
にする、システム仕様記述のシミュレーション方法に関
する。
【0002】
【従来の技術】今日、ASICの高集積化は数千万トラ
ンジスタの1チップ化を可能にしており、CPU、ファ
ームウエア、ドライバなどに加えて、通信回路、入出力
バス・インターフェイス回路などの周辺回路なども全て
一つのASIC上に納まることを可能にしている。
【0003】このようなASICは、いわゆるシステム
ASICと称される。
【0004】ところでシステムASICには、プロセッ
サとペリフェラルとメモリが実装され、プロセッサとメ
モリを利用して従来のソフトウエアが実装される形にな
る。ここで一つの機能をハードウエアで実現するかソフ
トウエアで実現するかにおいて、速度とチップ面積のト
レードオフが内在している。つまり、ハードウエアはソ
フトウエアに対して相対的に速度を上げるがチップ面積
も押し上げる。また、ソフトウエアはその反対の特性を
持つ。
【0005】設計に際して、重要なことは、そのトレー
ドオフの関係を考慮し、与えられたチップ面積上で最大
の速度を上げ得る双方の混在化、すなわち、ハードウエ
アとソフトウエアの分割点の最適化を図ることである。
最適化を求めるには、分割点を確定する前に両者の候補
に対してシミュレーションを行って、その結果を評価す
ることが必要になる。
【0006】従来、熟練した人間の経験及び勘を頼り
に、ある機能を実現するために、まず、ハードウエア部
分とソフトウエア部分を決め、それぞれが独立して設計
された後に協調動作シミュレーションなどを行って、不
都合な部分を抽出し、さらに、再設計、シミュレーショ
ンを繰り返していく手法がとられている。ところが、こ
のような方法は、最初に、ハードウエア部分とソフトウ
エア部分を人間が決めているため最終結果は必ずしも、
速度とチップ面積の観点で最適なものとはならなかった
り、また、ハードウエア部分とソフトウエア部分そのも
のを分割すること自体、極めて困難であった。また、通
常、ハードウエア部分はHDL言語(ハードウエア回路
用言語)で書かれてこれをロジックで表現する一方、ソ
フトウエア部分はC言語などで書かれるため、両者は別
扱いする必要があり、これらを協調的に同時並行開発す
ることが基本的に無理であった。すなわち、双方の部分
の交換を同時並行的に行ったり、その交換直後に結果を
シミュレートする等、協調と同時並行開発を行うことは
出来なかった。
【0007】このような問題を解決するため、システム
仕様を実行単位のプロセスの集まりで記述したシステム
仕様記述を作成し、これに基づいてハードウエア候補と
ソフトウエア候補を選択する手法がある。実行単位のプ
ロセスは、CPUで実行される並列処理単位で、ハード
ウエアでもソフトウエアでも実行可能なものであり、プ
ロセスに付加された処理の優先度を表す情報などに従っ
て、各プロセスがハードウエア候補とソフトウエア候補
とに分割される。そして、このようにして分割されたプ
ロセスをシミュレータにかけてシミュレーションさせ、
分割が適切であったかどうかを評価する。
【0008】
【発明が解決しようとする課題】しかし、並列実行する
各プロセスを一つのCPUモデルでシミュレーションす
るとき、プロセスの切換の度に状態保存を行うコンテキ
スト切換のための管理コードを作成することが必要にな
るが、その管理コードは各プロセスを切り替えるだけで
なく、各プロセスの状態を管理する機能を持つものでな
くてはならず、非常に複雑なものになる問題があった。
図16にこのシミュレータの動作を示している。同図に
示すように、1つのCPUモデル上で複数のプロセスが
動作するとき、管理コードとして、各プロセスの切り替
えと各プロセスの状態の管理機能が必要となってくる。
【0009】さらに、1つのCPUモデルの上で各プロ
セスを並列実行する場合、通常、リアルタイムOSを別
途CPUモデル上に組み込むことが必要となり、そのた
め、そのリアルタイムOSの実行に必要なスタック使用
量等をソフトウエア設計者が与えたりする作業が必要に
なるなど、非常に煩雑な作業を避けれなかった。
【0010】また、シミュレーションを行うときに、ハ
ードウエア候補とソフトウエア候補の実行時間を測定す
ることが分割評価のために必要となるが、一つのプロセ
スに対する両候補の実行時間は異なるから、従来、これ
を正確に測定することが困難であった。
【0011】本発明の目的は、システム仕様記述から自
動的にソフトウエア部分とハードウエア部分を決めてそ
のシミュレーションを行うときに、管理コードが簡単に
なるシステム仕様記述のシミュレーション方法を提供す
ることにある。
【0012】本発明の他の目的は、リアルタイムOSを
自動的に組み込むことの出来る、システム仕様記述のシ
ミュレーション方法を提供することにある。
【0013】本発明のさらに他の目的は、ハードウエア
部分とソフトウエア部分の実行時間の測定を正確にでき
るシステム仕様記述のシミュレーション方法を提供する
ことにある。
【0014】
【課題を解決するための手段】本出願の請求項1に係る
発明は、システムの仕様を実行単位のプロセスの集まり
で記述したシステム仕様記述を作成し、このシステム仕
様記述に基づいて、全プロセスをハードウエア候補とソ
フトウエア候補に分割し、これをシミュレータにかける
とき、並列動作する各プロセス個々にCPUモデルを与
え、各プロセスの切り替えをシミュレータ内に置いた管
理コードで行うようにしたことを特徴とする。
【0015】本発明では、システム仕様を、実行単位の
プロセスの集合として記述することを出発点とする。こ
の実行単位のプロセスとは、システムで実行される並列
処理単位で、且つハードウエアでもソフトウエアでも実
現可能なものを言う。つまり、システム仕様記述上は、
各プロセスは見かけ上、ハードウエアでもソフトウエア
でも実現可能なようになっている。
【0016】次に、システム仕様記述から、ハードウエ
ア部分とソフトウエア部分の実現候補を自動的に決めて
分割する。プロセスには種々の理由からハードウエアで
実現する方が望ましいものとソフトウエアで実現する方
が望ましいものが存在するから、これを自動判断し、且
つそれに基づきハードウエア部分とソフトウエア部分と
を仮に決め、残りの部分については、ランダムに決める
ことが出来る。
【0017】次に、これらの候補に対してシミュレーシ
ョンを行う。
【0018】シミュレーションは、シミュレータ内のC
PUモデルを用いて行うが、このとき、図16のような
構造でシミュレーションを行うと管理コードが複雑とな
る。そこで、各プロセス毎にCPUモデルを用意する。
オブジェクト指向では、インタンス化により仮想のCP
Uモデルを実体化出来るから、簡単に各プロセスに対し
て個別のCPUモデルを一体化出来る。このように、各
プロセス毎にCPUモデルを与えることにより、シミュ
レーションを実行するための管理コードは、一定時間毎
に各CPUモデルを切り替える機能だけを持てばよく、
各プロセスの状態などを含むコンテキストの保存、管理
を行う必要がない。このため、管理コードが簡単とな
る。
【0019】本出願の請求項2に係る発明は、ソフトウ
エア候補のプロセスは、実行のための優先度を表す情
報、実行ブロックから他の実行ブロックを呼び出す呼出
関係の情報、起動タイミングに関係する情報などを含
み、これらの情報から優先度レベル、スタックサイズ、
起動タイミングの各情報を抽出してリアルタイムOSを
自動作成し、これをシミュレータのCPUモデル上で作
動させて各ソフトウエア候補のプロセスを並列動作させ
ることを特徴とする。
【0020】シミュレータは、CPUの機能そのものを
シミュレーションするため、複数のソフトウエアプロセ
スを並行実行するためには、別途リアルタイムOSを組
み込む必要があるが、このために、ソフトウエア設計者
は、スタックのサイズやソフトウエアモジュール起動タ
イミングなどを考えてリアルタイムOSを設計しなけれ
ばならず、作業が非常に煩雑である。
【0021】本発明では、システム仕様記述内に、
(1)各ソフトウエアプロセスの実行のための優先度を
表す情報、(2)実行ブロックから他の実行ブロックを
呼び出す呼出関係の情報、(3)起動タイミングに関係
する情報を少なくとも含ませる。(1)の情報から各ソ
フトウエアプロセスの処理の優先度がわかり、(2)の
情報からスタックサイズがわかり、(3)の情報からプ
ロセスの起動タイミングがわかる。これらの情報が得ら
れれば、各ソフトウエアプロセスを並列実行させるため
のリアルタイムOSを自動的に作成することが出来る。
なお。リアルタイムOSはソフトウエアプロセスを実行
するCPUモデル上に組み込むことになる。本出願の請
求項3に係る発明は、ハードウエア候補のプロセスとソ
フトウエア候補のプロセスをそれぞれシミュレーション
するとき、ハードウエア候補とソフトウエア候補それぞ
れの命令実行に対する実行時間をそれぞれ予め設定した
単位時間で計測し、それを累計することで各候補の実行
時間測定を行うことを特徴とする。
【0022】シミュレーションにおいては、各プロセス
の実行状況をプロファイリング情報として収集する。プ
ロファイリング情報は、主に、各候補の実行時間を含
み、その実行時間と占有面積とのトレードオフ(ハード
ウエアは実行時間は短いが面積が大きくなるのに対し、
ソフトウエアは実行時間は長いが面積が小さい、という
関係)を評価するのに使用される。シミュレーションに
際しては、ハードウエア部分及びソフトウエア部分の各
プロセスの実行時間を、各命令に対応する単位時間をハ
ードウエアとソフトウエア毎に決めておくことにより、
自動的に測定することが出来る。例えば、add の命令に
ついて、ハードウエアで行うなら0.001 単位時間、ソフ
トウエアで行うなら4 単位時間が必要であるとすると、
この情報を参照することで、各プロセスの実行時間を正
確に測定することが出来る。
【0023】本出願の請求項4に係る発明は、実行時間
測定するハードウエア候補とソフトウエア候補は、各候
補のプロセス内に含まれる実行ブロックに対する実行時
間であることを特徴とする。
【0024】ハードウエアプロセスやソフトウエアプロ
セス内に複数の実行ブロックが存在するとき、各実行ブ
ロック単位でソフトウエアやハードウエアに変更した方
が良い場合がある。そこで、各実行ブロック毎にその実
行時間を測定することにより、実行ブロック単位での評
価が容易になる。
【0025】
【発明の実施の形態】図1は、本発明の実施形態であ
る、ハードウエアとソフトウエアの混在するシステムの
設計支援装置の構成図である。
【0026】この支援装置は、システム仕様記述1で書
かれたプロセスに基づいて協調合成システム2におい
て、ハードウエア部分とソフトウエア部分とに分割し、
ハードウエア部分については動作合成システム3、論理
合成システム4でHDL言語に変換しつつハードウエア
ロジック回路を自動作成する。また、ソフトウエア合成
システム5は、ソフトウエア部分からオブジェクトプロ
グラムコードを自動作成する。スタティックタイミング
検証システム6は、このプログラムコードやハードウエ
アロジック回路の静的動作(スタティック動作)の検証
を行い。合成結果表示システムは、上記一連の手順に伴
う結果を適宜表示する。
【0027】システム仕様記述のプロセスの1例を図2
に示す。
【0028】ここでは、プロセス名を「sample」として
いる。
【0029】第2行は、整数(int )入力データ端子と
して、iData を定義する。第3行は、整数出力端子とし
て、oDATA を定義し且つ初期値が0であることを示す。
第4行、第5行は、制御入力端子Strtと制御出力端子ac
kStrt を定義し、制御出力端子ackStrt の初期値がFALS
E であることを示す。第6行以下はプロセス実行部分で
ある。要約すれば、制御入力端子StrtがTRUEのときに、
制御出力端子ackStrtをTRUEにセットし、変数counter
のインクリメント値が入力データ端子iData の値よりも
大きければ変数counter をリセットし、大きくなければ
出力データ端子0Data の値を、iData 値にcounter 値を
加えた値とする。
【0030】このようなプロセスは、基本的にソフトウ
エアでもハードウエアでも実現が可能である。
【0031】図1の協調合成システム2は、上記プロセ
スを読み込んで、全プロセスをハードウエア部分(ハー
ドウエア実現候補)とソフトウエア部分(ソフトウエア
実現候補)とに初期分割し、これをシミュレーションし
て相互の各プロセス部分のソフトウエア化またはハード
ウエア化が適正か否かを評価し、評価結果にしたがっ
て、一部の入れ替えを行い、さらに、必要に応じてその
入れ替えた結果で再度シミュレーションを行う動作を繰
り返す。
【0032】システム仕様記述1に書かれる各プロセス
は、本実施形態では初期分割しやすいように、ソフトウ
エア部分の候補となるプロセスに処理の優先度を表す情
報がつけ加えられる。図3にその状態を示す。なお、ソ
フトウエアのプロセス群は1つのCPUで処理が実行さ
れる限り、各プロセス間で通信をするときに処理の優先
度が必要となることがある。優先度を表す情報はこのた
めのものである。ハードウエアのプロセス群はCPUに
より処理されるものではないから、通常は処理に優先度
を必要としない。もちろん、この情報が付加されていて
もこれをハードウエア部分で構成することは可能であ
る。
【0033】図3において、PROCA 0 、PROCB 1 は、前
者のプロセス優先度が「0」、後者のそれが「1」であ
ることを示している。優先順位は前者の方が一つ高い。
【0034】協調合成システム2は、上記の優先度を表
す情報が付加されているプロセスを仮のソフトウエア実
現候補とする。また、その他のプロセスを仮のハードウ
エア実現候補とする。初期分割はこのようにして行われ
る。図4に初期分割した状態を示している。P1〜P3
は優先度を表す情報を持つプロセスであるため、ソフト
ウエア実現候補とされる。P4〜P7は優先度を表す情
報を持たないプロセスであるため、ハードウエア実現候
補とされる。
【0035】なお、この段階で、図4のように分類され
た仮のソフトウエア実現候補と仮のハードウエア実現候
補に対して、面積(ソフトウエア部分についてはプログ
ラムステップ数)と、実行時間が初期見積もりデータと
して保存される。これらの値は、図1のソフトウエア合
成システム5と動作合成システム3により求められる。
すなわち、プログラムステップ数及び面積は、ソフトウ
エア部分のプログラムステップ数及びハードウエア部分
のHDL言語から分析した回路により、また、実行時間
は、予め設定されているクロック時間と上記プログラム
ステップ数及び回路の遅延時間とにより求められる。
【0036】シミュレーションを行うシミュレータは、
図5に示す構成になっている、すなわち、各プロセス1
〜NにCPUモデルが独立に用意されている。各プロセ
スにCPUモデルを独立に用意するには、ソフトウエア
的にインスタンス化(オブジェクト指向設計手法)によ
り仮想CPUモデルを実体化することで実現する。した
がって、ソフトウエア上の作業は極めて簡単である。
【0037】各プロセスがCPUモデルを抱くことによ
り、シミュレータの管理コードは各プロセスの並行動作
を行うためのリアルタイムOSの機能を持つ必要がな
い。つまり、管理コードは、一定時間毎にCPUモデル
を切り替える機能を持つだけでよい。これにより、管理
コードの作成が非常に簡単となる。
【0038】ソフトウエアプロセスを並列動作させるに
は、ソフトウエアプロセスの処理を行うCPUモデル上
でリアルタイムOSが必要になるが、本実施形態ではこ
のリアルタイムOSは自動的に作成される。すなわち、
リアルタイムOSは、(A)プロセスの優先度を表す情
報、(B)スタックサイズ、(C)起動タイミングが与
えられれば基本的に作成可能である。本実施形態のシス
テムでは、システム使用記述に上記(A)(B)(C)
に対応するものとして、(1)各ソフトウエアプロセス
の実行のための優先度を表す情報、(2)実行ブロック
から他の実行ブロックを呼び出す呼出関係の情報、
(3)起動タイミングに関係する情報が含まれているた
め、これらからリアルタイムOSを自動的に作成するこ
とが出来る。これを図を参照して説明する。図6〜図8
は、システム使用記述例の一部分を示している。図6
は、手続(プロシージャと呼ぶ)を示し、プロセスから
呼び出される、通常のプログラム言語の関数に相当す
る。図7(A)、(B)は、2つのプロセスA,Bをそ
れぞれ示している。また、図8は、プロセスの結合を示
すモジュールである。
【0039】まず、各プロセスの優先度は、図8のモジ
ュールの7行と8行に示されている。プロセスAはプロ
セスBに比べて優先度が高いことがわかる。スタックに
ついては、プロセスの実行ブロックから他の実行ブロッ
クを呼び出す関係で認識出来る。例えば、図7(A)の
18行では、statとv7sef の戻り値の領域としてスタッ
クが用意され、さらに、idata の値がスタックに積まれ
る。したがって、例えば、statが1byte、v7seg が1by
te、idata が2byteであるとすると、ここで合計4byte
のスタックが必要であることがわかる。なお、18行の
P(idata)は、図6のプロシージャが呼ばれてidata の値
をスタックに積む動作が行われることを示す。
【0040】このようにして、プロセス毎に必要なスタ
ック数をカウントすることで、各プロセスに必要なスタ
ックサイズを推測出来る。
【0041】次に、プロセスの起動タイミングについて
説明する。
【0042】プロセスAの10行において、ciがTRUEに
なるのを待っている。12行のNrmlstart(ci)は、ciがT
RUEになったときに実行される。このciは、プロセスB
の22行でcoをTRUEにすることにより、TRUEになる。つ
まり、図8の14行でプロセスBのcoをプロセスAのci
に結合することにより、プロセスBの22行でcoをTRUE
にすることにより、プロセスAのciがTRUEになる。その
結果、プロセスAの12行が起動する。一方、プロセス
Bは、図7(B)の11行で無条件起動する。このよう
に、プロセスA、Bとも、記述内容から起動タイミング
がわかる。
【0043】上記のように、システム仕様記述内容か
ら、(A)プロセスの優先度を表す情報、(B)スタッ
クサイズ、(C)起動タイミングとも自動的に読み出す
ことが出来るから、この情報に基づくことにより、リア
ルタイムOSを自動的に作成することが出来る。
【0044】図9は、リアルタイムOSを用いてソフト
ウエアプロセスの並行動作と簡易な管理コードにより各
CPUモデルをスレッド動作させる構成を示している。
【0045】なお、リアルタイムOSは、システム仕様
記述から得られた(A)プロセスの優先度を表す情報、
(B)スタックサイズ、(C)起動タイミングを、予め
用意したテンプレートを埋め込むことにより、作成が容
易となる。図10に示すように、テンプレートにはシス
テム仕様記述から独立し不変な部分を予め用意してお
き、システム仕様記述を解析することにより得られた上
記(A)(B)(C)の情報を基本機能部に埋め込むよ
うにすれば、リアルタイムOSの自動作成が容易とな
る。
【0046】次に、分割したハードウエア候補とソフト
ウエア候補をシミュレータにかけて、それぞれの実行時
間を測定する手法について説明する。
【0047】図11は、ハードウエアプロセス1からN
とソフトウエアプロセスN+1〜Mまでの動作をシミュ
レーションするときの構成図である。先に説明したよう
に、ソフトウエアプロセスについては、システム仕様記
述を解析してリアルタイムOSを自動作成し、ソフトウ
エアプロセス実行用のCPUモデルに上で動かす。ま
た、シミュレータの管理コードは、各CPUモデルを所
定時間間隔(例えば1クロック)で切り替える機能だけ
を持つ。同図において、ハードウエアプロセスの全ては
並列的に実行され、ソフトウエアプロセスの一つだけが
実行され、他は待ち状態にある。網掛けの部分がある時
点において実行されていることを示している(図では、
全ハードウエアプロセスと上から2番目のソフトウエア
プロセス)。シミュレータは、さらに、図12に示すプ
ロセス実行時間記憶領域を持ち、ここに、各プロセス毎
の実行時間を記憶していく。シミュレータは、今、どの
プロセスを実行しているかを知っており、そのプロセス
で実行されている命令の時間を単位時間で計測する。な
お、ソフトウエアプロセス群の場合、大局的に見ればど
れか一つのソフトウエアプロセスが実行されているか
ら、シミュレータはリアルタイムOSを介してどのソフ
トウエアプロセスが実行されているかを知ることが出来
る。
【0048】図13は、命令毎のハードウエアとソフト
ウエアの実行に要する計測用単位時間を示している。こ
の図13のテーブルに従えば、例えば、add 命令を実行
する計測用単位時間は、ハードウエアでは0.001 単位時
間、ソフトウエアでは4単位時間が必要である。単位時
間を1クロックとすれば、ハードウエアのadd 命令計測
用単位時間は0.001 クロック、ソフトウエアのadd 命令
計測用単位時間は4クロックとなる。
【0049】図14は、シミュレータの動作を示すフロ
ーチャートである。
【0050】ST1からST8までは、一つのCPUに
対して実行するループであり、ST1〜ST9までは、
シミュレーションが終わるまで単位時間(例えば1クロ
ック)づつCPUに対して実行するループである。
【0051】ST1では、現在指定されているCPUが
待ち状態かどうかを判断する。例えば、図11において
は、プロセス2のCPUが待ち状態である。待ち状態で
あるときには、ST8に進み、次のCPUに対する処理
に移る。ST2では、変数として用意された累計が単位
時間未満かどうかの判断を行う。ST3では、現在指定
されているプロセス内の命令を実行する。続いて、ST
4で図13のテーブルを参照し、実行した命令に対する
計測用単位時間を読み出す。命令がadd の場合、プロセ
スがハードウエアであれば0.001 単位時間(単位時間:
たとえば1クロック)、ソフトウエアであれば4 単位時
間が計測用単位時間となる。この計測用単位時間を累計
に加算する(ST5)。上記ST2〜ST5を、累計が
単位時間(例えば1クロック)になるまで繰り返し、単
位時間になればST6に進み、図2の対応実行時間領域
に単位時間(例えば1クロック)を加算する。また、S
T7において累計から単位時間を引くことにより、累計
を初期化する。今、指定しているCPUに対応するプロ
セスがハードウエアプロセスであるとすれば、計測用単
位時間は単位時間(例えば1クロック)よりかなり小さ
いから、単位時間が経過するまでST2〜ST5を複数
回繰り返してST6に移る。また、指定しているプロセ
スがソフトウエアプロセスであるとすれば、計測用単位
時間は単位時間の数倍であるから、ST1〜ST5を1
回実行した後、ST6に移る。つまり、次に再びこのソ
フトウエアプロセスが指定されたときには、累計がまだ
単位時間未満になっていないからST3に進まずST6
に進む。図12の実行時間領域は各プロセス毎に設けら
れているから、プロセスの実行ブロックの数にかかわら
ず、1つのプロセス内に含まれる全ての命令の実行時間
が対応する実行時間領域に記憶される。この場合、ハー
ドウエアとソフトウエアで計測用単位時間を異ならせて
いるため、プロセス毎の実行時間のシミュレーションが
正確なものとなる。
【0052】なお、シミュレータ側では、各プロセスの
実行状態を把握しているため、今、実行中のプロセス内
の実行ブロックも知ることが出来る。そこで、図12の
実行時間領域を実行ブロック毎に設けることにより、各
実行ブロックの実行時間を知ることが出来る。この場合
の実行シミュレータ側に設けられるテーブルを図15に
示す。
【0053】
【発明の効果】本発明によれば、各プロセス毎にCPU
モデルを与えることにより、シミュレーションを実行す
るための管理コードは、一定時間毎に各CPUモデルを
切り替える機能だけを持てばよく、各プロセスの状態な
どを含むコンテキストの保存、管理を行う必要がない。
このため、管理コードが簡単となる利点がある。
【0054】また、システム仕様記述内に、(1)各ソ
フトウエアプロセスの実行のための優先度を表す情報、
(2)実行ブロックから他の実行ブロックを呼び出す呼
出関係の情報、(3)起動タイミングに関係する情報を
少なくとも含ませることにより、各ソフトウエアプロセ
スを並列実行させるリアルタイムOSの作成のための、
各ソフトウエアプロセスの処理の優先度、スタックサイ
ズ、プロセスの起動タイミングがわかる。すなわち、リ
アルタイムOSを自動的に作成することが出来る。
【0055】また、ハードウエア部分及びソフトウエア
部分の各プロセスの実行時間やプロセスに含まれる実行
ブロックの実行時間を、各命令に対応する単位時間をハ
ードウエアとソフトウエア毎に決めておくことにより、
自動的に測定することが出来る。例えば、add の命令に
ついて、ハードウエアで行うなら0.001 マイクロセカン
ド、ソフトウエアで行うなら4 マイクロセカンドの単位
時間が必要であるとすると、この情報を参照すること
で、各プロセスや各実行ブロックの実行時間を正確に測
定することが出来る。
【図面の簡単な説明】
【図1】本発明の実施形態である、ハードウエアとソフ
トウエアの混在するシステムの設計支援装置の構成図。
【図2】プロセスの集まりで書かれるシステム仕様記述
の一例を示す図。
【図3】システム仕様記述におけるプロセスの優先度指
定を示す図。
【図4】プロセスの初期分割例を示す図。
【図5】シミュレータの構成を示す図。
【図6】〜
【図8】プロセスの記述例を示す図。
【図9】シミュレータの構成を示す図。
【図10】リアルタイムOSを自動作成する手法を説明
する図。
【図11】シミュレータの構成を示す図。
【図12】プロセス毎の実行時間を記憶するテーブルを
示す図。
【図13】命令毎の計測用単位時間のテーブルを示す
図。
【図14】シミュレータの動作を示す図。
【図15】実行ブロック毎の実行時間を記憶するテーブ
ルを示す図。
【図16】従来のシミュレータの構成を示す図。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 玉垣 裕 京都府京都市下京区木津屋橋通西洞院東入 る東塩小路町606番地 オムロンソフトウ ェア株式会社内 (72)発明者 古渡 俊明 東京都台東区上野3丁目3番8号 株式会 社アイ・ケイ・テクノロジー内

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】システムの仕様を実行単位のプロセスの集
    まりで記述したシステム仕様記述を作成し、このシステ
    ム仕様記述に基づいて、全プロセスをハードウエア候補
    とソフトウエア候補に分割し、これをシミュレータにか
    けるとき、 並列動作する各プロセス個々にCPUモデルを与え、各
    プロセスの切り替えをシミュレータ内に置いた管理コー
    ドで行うようにしたことを特徴とする、システム仕様記
    述のシミュレーション方法。
  2. 【請求項2】ソフトウエア候補のプロセスは、実行のた
    めの優先度を表す情報、プロセス内に含まれる実行ブロ
    ックから他の実行ブロックを呼び出す呼出関係の情報、
    起動タイミングに関係する情報を少なくとも含み、これ
    らの情報から優先度レベル、スタックサイズ、起動タイ
    ミングの各情報を抽出してリアルタイムOSを自動作成
    し、これをシミュレータのCPUモデル上で作動させて
    各ソフトウエア候補のプロセスを並列動作させることを
    特徴とする、請求項1記載のシステム仕様記述のシミュ
    レーション方法。
  3. 【請求項3】ハードウエア候補のプロセスとソフトウエ
    ア候補のプロセスをそれぞれシミュレーションすると
    き、ハードウエア候補とソフトウエア候補それぞれの命
    令実行に対する実行時間をそれぞれ予め設定した計測用
    単位時間で計測し、これを累計することで各候補の実行
    時間測定を行うことを特徴とする、請求項2記載のシス
    テム仕様記述のシミュレーション方法。
  4. 【請求項4】実行時間測定するハードウエア候補とソフ
    トウエア候補は、各候補のプロセス内に含まれる実行ブ
    ロックに対する実行時間であることを特徴とする、請求
    項3記載のシステム仕様記述のシミュレーション方法。
JP10062554A 1998-03-13 1998-03-13 システム仕様記述のシミュレーション方法 Pending JPH11259552A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10062554A JPH11259552A (ja) 1998-03-13 1998-03-13 システム仕様記述のシミュレーション方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10062554A JPH11259552A (ja) 1998-03-13 1998-03-13 システム仕様記述のシミュレーション方法

Publications (1)

Publication Number Publication Date
JPH11259552A true JPH11259552A (ja) 1999-09-24

Family

ID=13203608

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10062554A Pending JPH11259552A (ja) 1998-03-13 1998-03-13 システム仕様記述のシミュレーション方法

Country Status (1)

Country Link
JP (1) JPH11259552A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009515243A (ja) * 2005-11-04 2009-04-09 インヒロン ゲーエムベーハー ホストコンピュータ上で実行可能なシミュレーションプログラムを生成する方法
EP2081116A1 (en) 2008-01-08 2009-07-22 Fujitsu Limited Performance evaluation simulation
US7908592B2 (en) 2006-04-12 2011-03-15 Fujitsu Semiconductor Limited Software/hardware partitioning program and method

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009515243A (ja) * 2005-11-04 2009-04-09 インヒロン ゲーエムベーハー ホストコンピュータ上で実行可能なシミュレーションプログラムを生成する方法
US7908592B2 (en) 2006-04-12 2011-03-15 Fujitsu Semiconductor Limited Software/hardware partitioning program and method
EP2081116A1 (en) 2008-01-08 2009-07-22 Fujitsu Limited Performance evaluation simulation
KR100986784B1 (ko) * 2008-01-08 2010-10-12 후지쯔 가부시끼가이샤 성능 평가 시뮬레이션 장치, 성능 평가 시뮬레이션 방법 및성능 평가 시뮬레이션 프로그램을 저장한 컴퓨터 판독 가능 매체
US8214189B2 (en) 2008-01-08 2012-07-03 Fujitsu Limited Performance evaluation simulation

Similar Documents

Publication Publication Date Title
US8644305B2 (en) Method and system for modeling a bus for a system design incorporating one or more programmable processors
US8719742B2 (en) Conversion of circuit description to an abstract model of the circuit
US5768567A (en) Optimizing hardware and software co-simulator
US6993469B1 (en) Method and apparatus for unified simulation
US9015649B2 (en) Method and apparatus for electronic system model generation
US6571204B1 (en) Bus modeling language generator
JP4975544B2 (ja) シミュレーション装置及びプログラム
US20020143512A1 (en) System simulator, simulation method and simulation program
US6123735A (en) Method for simulating bus traffic
CN112100949A (zh) 集成电路芯片的自动开发方法及装置、电子设备
Wild et al. TAPES—Trace-based architecture performance evaluation with SystemC
JPS62251843A (ja) 論理シミユレ−シヨン方法および装置
US7606694B1 (en) Framework for cycle accurate simulation
JP2000259683A (ja) 論理シミュレーション方法及びそのシステム
US20050144436A1 (en) Multitasking system level platform for HW/SW co-verification
US7016826B2 (en) Apparatus and method of developing software for a multi-processor chip
US20190095547A9 (en) Modeling a bus for a system design incorporating one or more programmable processors
JPH11259552A (ja) システム仕様記述のシミュレーション方法
JP4493937B2 (ja) 半導体集積回路および半導体集積回路の機能検証方法
US20050144586A1 (en) Automated generation method of hardware/software interface for SIP development
JPH11259553A (ja) ハードウエアとソフトウエアの混在するシステムの設計支援方法
JP2004021907A (ja) 性能評価用シミュレーションシステム
JPH10221410A (ja) Lsiの自動論理検証方式
JP2533489B2 (ja) シミユレ−シヨン方式
US7634396B2 (en) Method and computer program product for generation of bus functional models