出典 しゅってん : フリー百科 ひゃっか 事典 じてん 『ウィキペディア(Wikipedia)』
印刷 いんさつ 用 よう ページはサポート対象 たいしょう 外 がい です。表示 ひょうじ エラーが発生 はっせい する可能 かのう 性 せい があります。ブラウザーのブックマークを更新 こうしん し、印刷 いんさつ にはブラウザーの印刷 いんさつ 機能 きのう を使用 しよう してください。
この項目 こうもく では、ハードウェア記述 きじゅつ 言語 げんご について説明 せつめい しています。ゲーム基板 きばん については「セガ・システムC 」をご覧 らん ください。
SystemC (システムシー)は、電子 でんし 回路 かいろ 機器 きき の機能 きのう 設計 せっけい への使用 しよう を目的 もくてき としたハードウェア記述 きじゅつ 言語 げんご (HDL) の一種 いっしゅ である。SystemC登場 とうじょう 以前 いぜん より存在 そんざい し、純然 じゅんぜん たるHDLであるVerilog やVHDL に比 くら べ、動作 どうさ レベルモデリングなど、よりシステム寄 よ りの記述 きじゅつ 言語 げんご である。
仕様 しよう
SystemCは、プログラム言語 げんご であるC++ のクラスライブラリを提供 ていきょう している。独立 どくりつ した文法 ぶんぽう ではない。ライブラリにはハードウェア記述 きじゅつ の為 ため の機能 きのう 、並列 へいれつ 実行 じっこう の概念 がいねん やデータ型 がた を扱 あつか う各種 かくしゅ 関数 かんすう を定義 ていぎ している。プログラムはC++コンパイラでコンパイル することができる。生成 せいせい したオブジェクトはハードウェアのシミュレータ として動作 どうさ する。
言語 げんご としては、VerilogやVHDLと類似 るいじ 点 てん も持 も つ。C++に由来 ゆらい する抽象 ちゅうしょう データ型 がた やテンプレート 、動的 どうてき なメモリ割 わ り当 あ てなどを使 つか った自由 じゆう 度 ど が大 おお きく、抽象 ちゅうしょう 度 ど の高 たか い記述 きじゅつ が可能 かのう である。自由 じゆう に、抽象 ちゅうしょう 的 てき に記述 きじゅつ したものを実際 じっさい のハードウェア化 か するのは困難 こんなん なことである。論理 ろんり 合成 ごうせい ツールの能力 のうりょく に依存 いぞん する。VerilogやVHDLで論理 ろんり 合成 ごうせい 可能 かのう な具体 ぐたい 化 か は人手 ひとで による介在 かいざい が必要 ひつよう な場合 ばあい がある。仕様 しよう あるいは、あるアルゴリズムを最初 さいしょ は純然 じゅんぜん たるソフトウェアとして記述 きじゅつ 、デバッグ、その後 ご 順次 じゅんじ ハードウェアに変換 へんかん していくということがC++という同 おな じ枠 わく 内 ない でできるということに意味 いみ があるということである。
SystemCは複数 ふくすう のEDA ベンダーや大学 だいがく などの研究 けんきゅう 機関 きかん により提案 ていあん され仕様 しよう が策定 さくてい されてきた。2005年 ねん 時点 じてん でのバージョンは2.1、さらに2007年 ねん 3月 がつ には、バージョン2.2を公開 こうかい した。トランザクションレベル・モデルライブラリを検討 けんとう した。
2011年 ねん 、IEEE 1666 IEEE Standard for Standard SystemC Language Reference Manualとして規格 きかく になっている。
言語 げんご 要素 ようそ
モジュール
モジュールはSystemCによる設計 せっけい の階層 かいそう 中 ちゅう で基本 きほん となるブロックである。SystemCのモデルでは、ポート(次項 じこう )を通 つう じて通信 つうしん する複数 ふくすう のモジュールから構成 こうせい される。
ポート
ポートは、モジュール内部 ないぶ と外部 がいぶ とを接続 せつぞく する端子 たんし である。通常 つうじょう は別 べつ のモジュールのポートに接続 せつぞく される。
プロセス
プロセスは、メインとなる処理 しょり 要素 ようそ である。個々 ここ のプロセスは同時 どうじ 、並列 へいれつ に実行 じっこう される。
チャネル
チャネルは通信 つうしん の要素 ようそ であり、単純 たんじゅん な配線 はいせん のこともあれば、FIFOのような複雑 ふくざつ なメカニズムのこともある。
基本 きほん チャネル:
インターフェイス
ポートはチャネルとの通信 つうしん にインターフェイスを使用 しよう する。
イベント
プロセス間 あいだ の同期 どうき を取 と るために用 もち いる。
データタイプ(型 かた )
SystemCはモデリングを支援 しえん するいくつかのデータタイプを用意 ようい している。
C++標準 ひょうじゅん の型 かた を拡張 かくちょう したもの:
sc_int<> 64-bitまでの符号 ふごう 付 づけ 整数 せいすう
sc_uint<> 64-bitまでの符号 ふごう 無 む 整数 せいすう
sc_bigint<> 可変 かへん 精度 せいど 符号 ふごう 付 づけ 整数 せいすう (※1)
sc_biguint<> 可変 かへん 精度 せいど 符号 ふごう 無 む 整数 せいすう (※1)
論理 ろんり 型 がた :
sc_bit 2-値 ね シングルビット (※2)
sc_logic 4-値 ね シングルビット
sc_bv<> sc_bitのベクター(可変 かへん 配列 はいれつ )
sc_lv<> sc_logicのベクター
固定 こてい 小数点 しょうすうてん 型 がた :
sc_fixed<> 符号 ふごう 付 づけ 固定 こてい 小数点 しょうすうてん テンプレート
sc_ufixed<> 符号 ふごう 無 む 固定 こてい 小数点 しょうすうてん テンプレート
sc_fix 符号 ふごう 付 づけ 固定 こてい 小数点 しょうすうてん
sc_ufix 符号 ふごう 無 む 固定 こてい 小数点 しょうすうてん
※1 sc_bigint<>, sc_biguintは、sc_int<>, sc_uint<>に比 くら べ著 いちじる しくシミュレーションスピードが遅 おそ い
※2 sc_bitは、IEEE1666ではdeprecated featuresであり、代 か わりにboolの使用 しよう が薦 すす められている
例 れい
加算 かさん 器 き の記述 きじゅつ 例 れい :
# include "systemc.h"
SC_MODULE ( adder ) // モジュール (クラス) 宣言 せんげん
{
sc_in < int > a , b ; // ポート
sc_out < int > sum ;
void do_add () // プロセス
{
sum = a + b ;
}
SC_CTOR ( adder ) // コンストラクタ
{
SC_METHOD ( do_add ); // カーネルへのdo_addの登録 とうろく
sensitive << a << b ; // do_addのセンシティビティリスト
}
};
参考 さんこう 文献 ぶんけん
Grötker, Thorsten 『SystemCによるシステム設計 せっけい 』柿本 かきもと 勝 まさる 、河原 かわはら 林 はやし 政道 まさみち 、長谷川 はせがわ 隆 たかし (監 かん 訳 やく )、丸善 まるぜん 、2003年 ねん ISBN 4-621-07144-0 C3055
1666-2011 - IEEE Standard for Standard SystemC Language Reference Manual
関連 かんれん 項目 こうもく
外部 がいぶ リンク