1 / 19

システムレベル言語 (SpecC と SystemC) の評価に関する研究

システムレベル言語 (SpecC と SystemC) の評価に関する研究. 情報科学部情報科学科 A02 - 068  篠部 賢介 . 異ったツールを使用している. 1.背景. 仕様に関する不具合が、手戻りの7割を占める. 従来の組込み機器の設計手法. ソフトウェア開発 組み込み. 電子回路設計. 問題点 ①コストや時間が大幅にかかってしまう ②ハードウェア技術者が不足している ③ハードウェア技術者とソフトウェア技術者の組織間の壁がある. 同じツールを使用している. 仕様に関係する トラブルはほぼ解消される. 新しい組込み機器の設計手法.

akamu
Download Presentation

システムレベル言語 (SpecC と SystemC) の評価に関する研究

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. システムレベル言語(SpecCとSystemC)の評価に関する研究システムレベル言語(SpecCとSystemC)の評価に関する研究 情報科学部情報科学科 A02-068 篠部 賢介 

  2. 異ったツールを使用している 1.背景 仕様に関する不具合が、手戻りの7割を占める • 従来の組込み機器の設計手法 ソフトウェア開発 組み込み 電子回路設計

  3. 問題点 ①コストや時間が大幅にかかってしまう ②ハードウェア技術者が不足している ③ハードウェア技術者とソフトウェア技術者の組織間の壁がある

  4. 同じツールを使用している 仕様に関係する トラブルはほぼ解消される • 新しい組込み機器の設計手法

  5. 2.システムレベル言語 • SpecC  カリフォルニア大学のGajski教授が提唱  C言語を拡張 STOCが普及活動を行っている • SystemC • Synopsys社、CoWare社などが共同開発 • C++言語を拡張 • OSCIが普及活動を行っている

  6. 2.1 特徴 • 実行可能 •  記述したソースをそのままコンパイルして、実行すること ができ、シミュレーションできること • モジュラリティ • システムの動作を記述するときは、機能と接続を完全に 分けて記述する必要があること  • 完全性 • behavior(動作)、階層構造、並列性、同期、通信、状態 の遷移、例外処理、タイミングの記述をすべて扱える こと

  7. 3.概要 3.1 SpecC

  8. 3.2 SystemC 基本チャネル 信号、セマフォ、FIFOなど

  9. 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 の例

  10. 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; } };

  11. 4.評価対象プログラム • DCT(Discreate Cosine Transform) DCTはJPEGなどの画像圧縮アルゴリズムとして広く使用されているものである • JPEGエンコーダ JPEGは静止画像符号化方式の国際標準であり、これは静止画像を低劣化で圧縮するものである

  12. 4.1 実験方法(SpecC)

  13. 4.2 実験方法(SystemC)

  14. 5.検証実験 評価項目 • 記述量 • 使いやすさ • 習得のしやすさ

  15. 5.評価 ~記述量~ 前記の2個のプログラムを作成した 差       51行     163行 全体ではSpecCのほうが少なくなる

  16. 5.評価 ~使いやすさ~ • SystemCは外部のツールで検証できたり、各企業でライブラリの開発も進んでいる • SpecCは参考資料などが少なく、Linux環境のみの開発しかできない ツールはSystemC、言語としてはSpecC

  17. 5.評価 ~習得のしやすさ~ • SystemCはC++の拡張であり、C++を熟知している必要がある • SpecCはANCI‐Cを拡張したものでありシンプルである SpecCのほうが習得しやすい

  18. 7.課題 • オブジェクト指向を有効に使用することにより、記述量に差が出るか調べる • FPGAボードで動作確認をする

More Related