SystemC

読み:しすてむしー / 英語表記:SystemC

ハードウェアとソフトウェアの協調設計に使われる、C++を基にしたシステムレベル記述言語。IEEE 1666として標準化されている。

イマシルちゃんの解説

組込み機器を作るときは、どの機能を専用の回路に任せ、どの機能をプログラムで動かすかを考えるんだ。
SystemCは、回路やソフトウェアの働きをモデルとして書き表すシステムレベル記述言語だよ。
モデルは、実物の代わりに動きを確かめるための表現なんだ。
複数の処理が同時に進む様子や時間の経過も表せるから、部品同士のやり取りをシミュレーションできるよ。
回路が完成する前に全体の動作や性能を検討できて、設計のやり直しを早い段階で減らせるのがうれしいね。

より深い解説

定義

SystemCは、C++のクラスライブラリとして提供される、ハードウェアとシステムを記述するための言語である。2005年にIEEE 1666として標準化された。C++にハードウェアの記述に必要な概念(モジュール、ポート、信号、並行に動くプロセス、時間)を加えたもので、通常のC++のコンパイラでコンパイルして、シミュレーションを実行できる。

使われる場面

場面内容
ハードウェア/ソフトウェア協調設計機能をハードウェアとソフトウェアのどちらで実現するかを、早い段階で検討する
システムレベルの設計回路の詳細を決める前に、システム全体の構造や性能を高い抽象度でモデル化する
仮想プロトタイプハードウェアが完成する前に、そのモデルの上でソフトウェアの開発を始める
高位合成SystemCやC/C++で書いた動作の記述から、回路の記述(RTL)を自動生成する

抽象度の違い

抽象度記述する内容主な言語
システムレベル(高い)機能、データの流れ、トランザクションSystemC、C/C++
RTL(レジスタ転送レベル)クロックごとのレジスタ間のデータの移動VHDL、Verilog HDL(SystemCでも記述可能)
ゲートレベル(低い)論理ゲートのつながり論理合成の結果

設計は、抽象度の高いレベルから始め、検証しながら低いレベルへと詳細化していく。

似た言語との区別

言語用途
SystemCハードウェアとソフトウェアの協調設計に使う、C++を基にしたシステムレベル記述言語
VHDL、Verilog HDL論理合成してFPGAなどで動かす回路を記述する、ハードウェア記述言語
SysMLシステムの設計と検証のための、UMLを拡張したグラフィカルなモデリング言語
MathMLWebページに数式を表示するための、XMLのマークアップ言語

実際の試験ではここに出る!全1問

ネットワークスペシャリスト

午前Ⅱ

この用語が出てくる記事

↑