bambooflow Note

SystemCとは

最終更新:

Bot(ページ名リンク)

- view
メンバー限定 登録/ログイン

SystemCとは


SystemCとは?

SystemCは、1999年9月に発足した組織OSCI(Open SystemC Initiative)により規格化された、新しいハードウェアモデリング言語である。OSCIから無償でSystemCライブラリが提供されている。
SystemCは、標準のC++で実装されたクラスライブラリで、C++記述によるハードウェア設計の構築を提供する。SystemCを利用できるのは、ハードウェアとソフトウェアにおけるの企画・提案から実装までの設計と検証の期間である。つまり、実際にハードウェアを設計する前段階の作業で利用することができる。

SystemCは高速なシステムレベルC++モデルの開発と交換を可能とするプラットフォームを提供する。
これはシステムレベルツールの開発のためのプラットフォームも提供する。

簡単に言うと、C++のコンパイラを使ってハードウェア記述が可能で検証もできてしまう優れもの。
ただし、SystemCを記述したからといって、それを直接ハードウェアにできるというわけではない。あくまでもハードウェアの代替となる検証用どまり。
ただ、高位合成ツール(SystemC→RTL)が徐々に実用化されつつあるところ。
先はまだわからない。

SystemCが持つ機能

C++でハードウェアを記述するために、SystemCライブラリは次のような特徴的な機能を持つ。
  • 時間モデル
  • ビット・データ型(sc_bv<>, sc_uint<>, sc_fixed, etc.)
  • モジュールの記述(SC_MODULE)
  • チャネル/ポート(プリミティブ・チャネル、階層チャネル、インターフェース)
  • 並列動作環境(プロセス)
  • 波形シミュレーション環境(VCD etc.)

SystemCの利点

  • ライブラリが無償で提供されている
  • C++ベースであるため、検証環境が容易に構築できる(GCCもしくはVC++コンパイラ)
  • ソフトウェア/ハードウェア協調検証が比較的容易にできる
  • あらゆる抽象度(TLMからRTLまで)が記述可能

SystemCの欠点

  • C++の基本的な知識とSystemC固有の記述を覚えなくてはならず、スタートまで若干ハードルがある
  • プロセス間のタイミングでクセがあり悩まされる
  • 記述の自由度が高すぎて、モデルの統一化がなされていない

SystemCの使い道

  • SW/HW協調検証
  • 高位合成(動作合成)
  • 並列分散処理モデル etc.

SystemCを扱うにあたっての要求スキル

  • C,C++の知識があり、クラスの概念やテンプレートがわかる(協調検証モデル作成)
  • Verilog-HDL等のハードウェア記述等に興味があり精通している(高位合成)
記事メニュー
ウィキ募集バナー