ウィキペディア |
SystemC
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2009/09/17 01:57 UTC 版)
SystemC(システムシー)は、電子回路設計への使用を目的としたハードウェア記述言語 (HDL) の一種である。SystemC登場以前より存在し、純然たるHDLであるVerilogやVHDLに比べ、動作レベルモデリングなど、よりシステムよりの記述言語としての性格が強くなっている。
SystemCは、プログラム言語であるC++のクラスライブラリとして提供されており、それ自体言語として独立した文法を持つものではない。ライブラリにはハードウェア記述の為の機能、すなわち並列実行の概念やデータ型、それを扱う各種関数が定義されている。それを使って書かれたプログラムは通常のC++コンパイラでコンパイルすることができ、結果生成されたオブジェクトはハードウェアのシミュレータとして動作する。
言語としては、VerilogやVHDLと類似点も持つが、それは重要なことではない。重要なのは相違点のほうである。すなわちC++に由来するオブジェクト指向やテンプレート、動的なメモリー割り当てなどを使った自由度が大きく、抽象度の高い記述が可能なことである。ただしより自由に、抽象的に記述したものを実際のハードウェア化するのはより困難なことであり、論理合成ツールの能力に依存することになる。現状ではVerilogやVHDLで論理合成可能なレベルまでの具体化は人手による介在が必要である。それではメリットがないとも思えるが、仕様あるいは、あるアルゴリズムを最初は純然たるソフトウェアとして記述、デバッグ、その後順次ハードウェアに変換していくということがC++という同じ枠内でできるということに意味があるということである。
SystemCは複数のEDAベンダーや大学などの研究機関により提案され仕様が策定されている。2005年時点でのバージョンは2.1、さらに2007年3月には、バージョン2.2がリリースされた。 現在はトランザクションレベル・モデルライブラリの検討が進められている。
目次 |
言語要素
モジュール
モジュールはSystemCによる設計の階層中で基本となるブロックである。SystemCのモデルでは、ポート(次項)を通じて通信する複数のモジュールから構成される。
ポート
ポートは、モジュール内部と外部とを接続する端子である。通常は別のモジュールのポートに接続される。
プロセス
プロセスは、メインとなる処理要素である。個々のプロセスは同時、並列に実行される。
チャネル
チャネルは通信の要素であり、単純な配線のこともあれば、FIFOのような複雑なメカニズムのこともある。
基本チャネル:
- 信号
- バッファ
- 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
関連項目
- SpecC
- SystemVerilog
外部リンク
セガ・システムC
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2011/04/01 13:30 UTC 版)
(SystemC から転送)
System C/System C2とは、セガが開発したアーケードゲーム基板である。
目次 |
概要
同時代の業務用システム基板としてはローコストであることが特徴であり、実質的には家庭用ゲーム機メガドライブのアーキテクチャを拡張し、一部を簡略化したものである。 メガドライブと比較した場合、CPU動作クロックの高速化、VDPのカラーパレットの拡張などが行われている。 また、基板を2枚接続しての通信対戦機能、同社筐体「メガロ50」のムービングシートの制御などができた。
主にメガドライブへの移植を前提として、先行して業務用に開発されたゲームや、メガドライブに参入したサードパーティーの業務用作品などが供給された。 また、キッズマシンやプリント倶楽部などでも多く使用されている。後者はビデオキャプチャ機能に合わせた表示クロック微調整などのカスタマイズがされており、完全な互換性はない。
SYSTEM C 仕様
- CPU:68000(?.??MHz)
- ワークRAM:64KB
- VDP:
- 解像度:320(256)ドット×224ライン
- VRAM:64KB
- BG:2画面
- スプライト:最大80個
- 同時発色数:32768色中128色(BG、スプライトに16色カラーパレット各4)
- サウンド:YM2612 (OPN2) 4オペレータFM音源 6ch SN76496(PSG)矩形波3ch+ノイズ1ch
SYSTEM C2 仕様
- 基板形番 :171-5992A
- 基板シルク形番:837-7531
- CPU:MC68000P10(10MHz駆動)
- ワークRAM:64KB
- VDP:315-5313
- 解像度:320(256)ドット×224ライン
- VRAM:64KB
- BG:2画面
- スプライト:最大80個
- 同時発色数:32768色中128色(BG、スプライトに16色カラーパレット各4)
- サウンド:YM3438 (OPN2C) 4オペレータFM音源 6ch SN76496(PSG)矩形波3ch+ノイズ1ch μPD7759 ADPCM1ch
主なタイトル
特記事項無しのものはシステムC2。
- イチダントアール
- コラムス(システムC)
- コラムスII(システムC)
- スタックコラムス
- セガ製キディライド(わくわくマリンなど)(モニター部分のみ)
- タントアール
- セガ製ポップコーン自動販売機(モニター部分のみ)
- ポトポト
- ブロクシード(海外輸出版のみ、国内版はシステム18を使用)
- ボレンチ(未発売)
サードパーティー開発
- サンダーフォースAC(テクノソフト)
- ずんずん教の野望(港技研)
- ぷよぷよ(コンパイル)
- ぷよぷよ通(コンパイル)
- OOPARTS(サクセス、未発売)
その他
固有名詞の分類