SoC開発の膨大化/複雑化をXModelinkシリーズが解決
- 1つの半導体チップには、それが必要とする一連の機能やシステムが集積されています。半導体製造技術の向上で、ひと昔前では想像できない規模の集積回路が実現可能になりました。集積回路の設計に欠かせない手法のひとつがSoc(System-on-a-chip)開発手法です。SoC開発は、膨大化/複雑化の一途を辿っています。 またSoC設計においては、ハードウェアとソフトウェアを一体として、システム全体を検証する協調検証技術の重要性がますます高まってきています。

- 開発期間の長期化
開発過程の大規模化・複雑化に伴い、不具合による手戻りのリスクは高まり、品質の維持・向上も難しくなっています。 - UMLの移行
UMLで記述したSoC仕様書は、構造を把握しやすいのですが、そのまま実装発環境に移行できるとは限りません。 - SW開発とHW開発環境の乖離
SW設計は多くがC言語で記述されている一方、電子回路などHW設計には、ハードウェア記述言語 (HDL) の一種であるSystemCが用いられているため、両者を協調した検証がしにくくなっています。
昨今のSoc開発は以下の課題に面しています。
- 開発期間の長期化
上流工程におけるシステム検証を行い、手戻りリスクを削減します。 - UMLの移行
SoC向け拡張プロファイルを適用し、UMLで記述したclass図等を構造図としてインポートします。 - SW開発とHW開発環境の乖離
SystemC デバッガを実現することで、C/C++ 言語を用いて設計するソフトウェア設計者と、 SystemC 言語を用いて設計するハードウェア設計者が同一環境で検証させます。
概要
XModelink (クロスモデリンク)seriesは、 SystemC 言語によるシステム LSI 仕様合成ツール群で、 SoC Modeler と SystemC Debuggerから構成されます。
- SoC Modeler は、SystemC表記法※によるSystemCファイルの自動生成を行います。
- UMLで記述された仕様書から、class図等をインポートする機能を搭載しているのでUML(分析)→構造図エディタ(システム設計)を容易にすることが出来ます。
- OSCIライブラリで対応のSystemCコードを自動生成します。生成されたコードは、そのままコンパイルすることが可能です。
- SystemCで違反しているルールをチェックする機能を持ちます。
SoC Modeler
XModelink SoC Modeler は、SystemCの表記法を理解するだけで、GUIによるシステム LSIの開発を可能としたツールです。
- FastVeri ※との連携によりターゲットCPUとハード部の協調検証が可能になり、ISS の100倍から1000倍高速になりました。
- SystemC Debugger 上で、ソフト部はC言語、ハード部は SystemC 言語で検証可能です。
※ FastVeriは(株)インターデザイン・テクノロジー社の登録製品です。
SystemC Debugger
SystemC Debugger は「コード」「値」「波形」といった見たいものが見やすく、即座に見ることができる検証用ツールです。

- UML を使用して要求仕様からシステム開発を行い、ソフトウェアとハードウェアの分割を行います。そこで協調検証を行い、その後にそれぞれの分割されたソフトウェア、ハードウェアの設計が行えるといった開発フローが実現できます。 この開発フローはアルファベットの「A」という文字に似ていることから、A(エース)ソリューションと名付けました。

- SystemCコード自動生成ツール
- SW/HW協調検証用ツール
SoC Modeler
SystemC Debugger
SoC Modeler(STEP1〜3)とSystemC Debugger(STEP4)を利用した場合の開発の流れは以下に紹介します:
- STEP1
UML(Unified Modeling Language)でシステム仕様を分析・記述します。 - STEP2
UMLのclass図等をインポートし、構造図エディタによりシステム設計を行います。 - STEP3
構造図からSystemC のコードを自動生成します。 - STEP4
タイミング検証(波形観測)やアルゴリズム検証(ソースコードデバッグ)など、により協調検証します。
詳細
- SystemC表記法によるモデルベース設計
SystemCの表記法を用いて、モジュール、ポート、チャネル、インターフェース、階層化チャネルなどモデルベースでシステムLSIの開発が行えます。階層化モデルの記述により、判りやすいモデルのコーディングを可能とします。 - SystemCコードを自動生成
SystemC(C++)言語は複雑な言語であり、開発の初期段階ではコンパイルErrorが多発してしまう現状があります。本製品は、モデルから OSCI ライブラリ対応のコードを自動生成させるため、スムーズなコンパイルが可能になります。 - UML(クラス図)インポート機能
UML(世界標準)で記述された仕様書からclass図等をインポートする機能を搭載しました。インポートするためには、「SoC向け拡張プロファイル」を用いて行われます。 - ソースコードリバース(ラウンドトリップ)機能
ソースコードの自動生成後に、修正した場合のために、リバース(ラウンドトリップ)機能を搭載しています。 - SystemCコード完全対応
内部プロセスの情報や、wait、notifyやsensitive構文を使った同期の機構、モジュールクラスのメンバ変数と関数、実装コードも入力可能です。 - モデルチェッカー機能
SystemCの言語仕様としてポート未接続などの際に、実行時暴走する場合があります。本製品は、ポートの未接続などのチェック機能も搭載しています。
SoC Modeler

- 全ノード自動トレース
OSCIのリファレンスシミュレータでは、信号波形を出力する際に各ノードをソースコードの1つ1つに、 sc_traceコードを書き込む必要がありました。「本製品」は、ソースコードから自動解析を行い、全ノードをトレース表示を行います。よって参照したい波形のみ「チェック」することにより参照波形の選択が行えます。 - VCDビューア
「OSCI」シミュレータには時間精度のシミュレーションを行うための波形ビューアはパッケージされていません。「本製品」は標準で「VCD波形ビューア」をパッケージしました。
【主な機能】 カーソル/マーキング機能 ・波形縮小/拡大機能 ・値参照・ブレイク時リアルタイム更新 ・2/8/10/16進表示機能 ・ツリービュー表示 - 同期波形ビューア
トランザクションレベルにおけるプロセス状態、イベント遷移を並列観測するビューアを搭載!
【主な機能】 シーケンシャルモード/パラレルモード切り替え機能・波形拡大/縮小機能 ・ブレイク時リアルタイム更新 - 時間(クロック)実行
実行時に時間を指定して実行する事が可能です。時間を指定して実行後、「SystemCウォッチ」「プロセス表示」「VCD波形観測」「動機波形ビューア」などの機能と併用することが可能となります。
SoC Modeler 〜タイミング検証(波形観測)〜

- SystemCウォッチ
Sc_int<>、sc_lv<>などSystemCの固有で定義されている型は、テンプレート構造で出来ているため、値参照を行うためには、深い階層があり参照困難でした。本製品は、参照変数を設定しておくと、ブレイク時自動的に表示が行われます。
【主な機能】 SystemC型の変数の値、表示、参照可能・参照波形は、ソースコードからドラッグ&ドロップにより簡単設定
ブレイク時リアルタイム更新、書き込み即値/デルタ遅延後の参照時の値を表示 - プロセス表示
並列に動作しているプロセスを全て自動表示します(設定は不要)。 またプロセスの実行状態は色別表示されます。例えば1つのソースコードより複数のモジュールをインスタンスしている際はブレイク時、どちらのインスタンスでブレイクしたか?などの確認に有効。また画面クリックにより、ソースコードにジャンプ機能を搭載しました。
SoC Modeler 〜アルゴリズム検証(ソースコードデバッグ)〜

SoC Modelerは次の環境で動作します。
| OS | 日本語 Windows 2000/XP |
|---|---|
| CPU | Pentium III 800MHz 以上 |
| メモリ | 256 MB 以上 (推奨 512MB 以上) |
| ディスク容量 | 300 MB 以上の空き容量(Eclipse, JDK 含む) |
| その他 | 製品 CD に同梱の Eclispe, JDK をインストールして頂きます。 |
SystemC Debuggerは次の環境で動作します。
| OS | 日本語 Windows 2000/XP |
|---|---|
| CPU | Pentium III 800MHz 以上 |
| メモリ | 256 MB 以上 |
| ディスク容量 | 100 MB 以上の空き容量 |
| その他 | 別途、Microsoft Visual C++.net 2003または、Microsoft Visual Studio 2005 をご用意下さい。 |
※ Microsoft Visual C++.net 2003はMicrosoft Corp. の登録商標です。











