ハード／ソフト協調シミュレーションによるシステム検証
System Verification through Hardware/Software Co-Simulation

中野邦夫＊Nakano, Kunio
Generally, SOC（system on a chip）integrates CPU, memory, IPs（Intellectual Property）, and user
designed logic.

Therefore, We must verify a SOC on both the hardware and software.

In a traditionalway, this verification have been done at software debugging after hardware debugging. So, the verificationneeds a long time to complete.
Co-simulation approaches to verify software and hardware concurrently.
This report describes the outline of Co-simulation and the assignments by a case study.

１

しては制御ウィンド、波形表示ウィンドなどがある。

はじ め に③Co-Sim．マネージャ

一般的にSOC（System On a Chip）はCPU、メモISS上で実行されるソフトウェアによるCPU動作とL

リ、 IP （Intellectual Property） とユーザ設計の論理S上で実行されるハードウェアの動作をクロックレベル回路を半導体チップ上に搭載する。このため、SOCので同期をとる。

検証ではハードウェアとソフトウェアの両面から検証を行わねばならない。

従来この検証はハードウェア、ソフトウェアの順に行われていたため、非常に長い期間を必要としていた。

ハード／ソフト協調シミュレーション（Co-Simulation、以降Co-Sim．と略す）はこの２つの検証を同時に行おうとするものである。
本報告ではCo-Sim．の概要とケーススタディから得られた課題について述べる。

２

Co-Sim．の 概 要

Fig.２．１ Co-Sim．の構成

Co-Sim．はワークステーション上に仮想的にSOCを構

３

Co-Sim．ケ ー スス タ ディ

築し、このSOCに搭載している仮想CPU上でソフトウェアを動作させることで実機と同じ状態を具現化し、SOCo-Sim．のケーススタディとして200万画素デジカメCの実チップを作成する前にソフトウェアとハードウェのメイン回路部分を対象とした。

アの検証を行おうとするものである。この両面からの検回路の構成をFig．３．１、ソフトウェアの処理フローを証を行うための環境はISS（Instruction Set Simulator）、

Fig．３．
２に示す。

LS（Logic Simulator）、Co-Sim．マネージャの３つから構成される。（Fig．
２．１参照）①ISS（Instruction Set Simulator）
Co-Sim．におけるCPUの実体。ソフトウェアをワークステーション上で仮想的に実行する。 ＧＵＩ（Graphic User Interface）としてはソースコードウィンド、メモリウィンド、レジスタウィンドなどがある。
②LS（Logic Simulator）
ハードウェア（CPUのハード的な動作を含む）の動作をワークステーション上で仮想的に実行する。GUIと＊コーポレートラボラトリーG 中央研究所

KONICA TECHNICAL REPORT VOL. 13（2000）

Fig.３．
１ ケーススタディの回路

117

る値が衝突し、 X になるため）具体的にはVerilogHDLでは回路記述上で結線そのものをWAND(WOR)宣言する必要がある。
③CPUモデルの精度
CPUモデルの動作は当然ながら極力実チップと同じであることが望ましい。
CPU動作が実チップとかけ離れてしまうと本来目的とする検証が不可能となってしまう。
④クロスツールの一貫性
実機で使用するクロスツールとCo-Sim．
で使用するクロスツールが異なってしまう場合、セットアップファイルなどのアセンブラコードを書き直さなければならなくなる。また、実行オブジェクトも再作成しなければならない。Co-Sim．用にコードを書き直したり、再コンパイルしていては非効率的であるし、バグが混入する恐れがある。Co-Sim．の実使用では実機で使用されるクロスツールが使用可能でなければならない。
⑤Co-Sim．使用者に必要な知識

Fig.３．
２ ソフトウェアの処理フロー

Co-Sim．
はハードウェア、ソフトウェアの境界部分を扱う。従って、ハードウェア、ソフトウェアの両方の４知識が必要とされる。特に、CPUのセットアップファ評価 結 果イルやリンカスクリプトについては熟知する必要があ

ケーススタディから得られたCo-Sim.の評価結果を以下に示す。
①実機使用のソフトウェア実行オブジェクトを使用し、LS用テストベンチなしでソフトウェア／ハードウェる。

６

まと め

ケーススタディを通して、下記に示すCo-Sim．の効果、および注意点、課題を抽出できた。

アの両面から検証が可能である。
②ISSのメモリウィンド機能を使用して、CPUにメモり

また、今後のSOC開発には非常に有効なツールであるアクセスやASICのレジスタアクセスを実行させるこことを確認した。とができる。このためCPU用プログラムなしでもCP組込型CPUを搭載したシステムではハードウェアとソUアクセスについては単独でハードデバッグが可能でフトウェアの両分野、特に境界部分となるリンク、コンある。

パイルについては熟知する必要性がある。

③LSがISSと同期して動作するCo-Sim．では、LSのシミュレーション結果から処理時間の見積りを正確に行①従来はハードウェア開発を完了（SOCサンプル試作）し、サンプルを入手してからでないとソフトウェアをうことができる。

５

効果：含めたシステム全体の検証はできなかった。Co-Sim．

課題

によって、ハードウェア、ソフトウェア双方のデバッケーススタディからの課題を以下に示す。

グがワークステーション上の仮想的なSOCを用いて①高速なLSとそれに対応したCPUモデルが必要。
ISSに比べLSのシミュレーション速度が遅いため、可能となり、SOCサンプルを作成することなく、システム全体の検証が可能になった。

Co-Sim．のシミュレーション速度はLSのシミュレー②SOCサンプルを作成する前に実機に近いレベルでのション速度に依存してしまう。このためCo-Sim．
マネー検証ができるため、SOCの試作回数の削減とともに、ジャは高速なLSに対応している必要がある。またそ開発期間の短縮が可能になった。の高速なLSとそれに対応したCPUモデルが必要となる。
②pull-up、pull-downの処理（使用上の注意点）
CPUバスなどpull-up （pull-down） がされている場
合、結線する線自体をアクティブロー（アクティブハイ）とする必要がある。（通常の接続ではドライブす118

KONICA TECHNICAL REPORT VOL. 13（2000）