200 likes | 538 Views
システムレベル言語 (SpecC と SystemC) の評価に関する研究. 情報科学部情報科学科 A02 - 068 篠部 賢介 . 異ったツールを使用している. 1.背景. 仕様に関する不具合が、手戻りの7割を占める. 従来の組込み機器の設計手法. ソフトウェア開発 組み込み. 電子回路設計. 問題点 ①コストや時間が大幅にかかってしまう ②ハードウェア技術者が不足している ③ハードウェア技術者とソフトウェア技術者の組織間の壁がある. 同じツールを使用している. 仕様に関係する トラブルはほぼ解消される. 新しい組込み機器の設計手法.
E N D
システムレベル言語(SpecCとSystemC)の評価に関する研究システムレベル言語(SpecCとSystemC)の評価に関する研究 情報科学部情報科学科 A02-068 篠部 賢介
異ったツールを使用している 1.背景 仕様に関する不具合が、手戻りの7割を占める • 従来の組込み機器の設計手法 ソフトウェア開発 組み込み 電子回路設計
問題点 ①コストや時間が大幅にかかってしまう ②ハードウェア技術者が不足している ③ハードウェア技術者とソフトウェア技術者の組織間の壁がある
同じツールを使用している 仕様に関係する トラブルはほぼ解消される • 新しい組込み機器の設計手法
2.システムレベル言語 • SpecC カリフォルニア大学のGajski教授が提唱 C言語を拡張 STOCが普及活動を行っている • SystemC • Synopsys社、CoWare社などが共同開発 • C++言語を拡張 • OSCIが普及活動を行っている
2.1 特徴 • 実行可能 • 記述したソースをそのままコンパイルして、実行すること ができ、シミュレーションできること • モジュラリティ • システムの動作を記述するときは、機能と接続を完全に 分けて記述する必要があること • 完全性 • behavior(動作)、階層構造、並列性、同期、通信、状態 の遷移、例外処理、タイミングの記述をすべて扱える こと
3.概要 3.1 SpecC
3.2 SystemC 基本チャネル 信号、セマフォ、FIFOなど
SpecC SystemC 3.3 ソフトウェア記述 #include<stdio.h> behavior Main { void main(void) { printf(“HelloWorld\n”); } }; #include<iostream.h> #include”systemc.h” #include”mpi.h” int sc_main(int argc, char *argv[]){ MPI::Init(argc, argv); sc_initialize(); int rank = MPI::COMM_WORLD.Get_rank(); int size = MPI::COMM_WORLD.Get_size(); cout << "Hello World" << rank << " of " << size << endl; MPI::Finalize(); sc_start(10); return 0; } Hello World の例
3.4 ハードウェア記述 SystemC SpecC SC_MODULE(And){ sc_in<bool> InA; sc_in<bool> InB; sc_out<bool> C; void And_Proc(void); SC_CTOR(And) { SC_METHOD(And_Proc); sensitive << InA << InB; } }; #include"systemc.h" #include"And.h" void And::And_Proc(void) { C = InA & InB; } #include<stdio.h> #include<stdlib.h> behavior AND_2( in bit[1] a,in bit[1] b, out bit[1] c){ void main(void) { c = a & b; } };
4.評価対象プログラム • DCT(Discreate Cosine Transform) DCTはJPEGなどの画像圧縮アルゴリズムとして広く使用されているものである • JPEGエンコーダ JPEGは静止画像符号化方式の国際標準であり、これは静止画像を低劣化で圧縮するものである
5.検証実験 評価項目 • 記述量 • 使いやすさ • 習得のしやすさ
5.評価 ~記述量~ 前記の2個のプログラムを作成した 差 51行 163行 全体ではSpecCのほうが少なくなる
5.評価 ~使いやすさ~ • SystemCは外部のツールで検証できたり、各企業でライブラリの開発も進んでいる • SpecCは参考資料などが少なく、Linux環境のみの開発しかできない ツールはSystemC、言語としてはSpecC
5.評価 ~習得のしやすさ~ • SystemCはC++の拡張であり、C++を熟知している必要がある • SpecCはANCI‐Cを拡張したものでありシンプルである SpecCのほうが習得しやすい
7.課題 • オブジェクト指向を有効に使用することにより、記述量に差が出るか調べる • FPGAボードで動作確認をする
糸 冬