スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Book:基礎から学ぶSystemC

基礎から学ぶSystemC」を読みました。


○目次
はじめに
1. SystemCを使ったシステム設計の概要
2. TLMベース設計手法
3. SystemCの概要
4. データタイプ
5. モジュール:SC_MODULE
6. 時間の概念
7. 並列性:プロセスとイベント
8. 基本チャネル
9. チャネルの評価と更新:SC_SIGNALS
10.構造:設計階層
11.通信:ポート
12.ポートに関する更なるトピックス:特殊化ポートとsc_export
13.カスタムチャネルとデータ:プリミティブチャネルと階層チャネル
14.上級者向けトピックス
15.その他のトピックス:性能、その他のヒント

はじめに


xii-引用:
興味深いことに、このレベルの知識は、10年以上の経験をもつほとんどのASIC設計者に欠けている。
そのような読者には、本書の内容を理解していくことはかなりチャレンジングであるかもしれないが、不可能なことではない。
どのような知識かは、本書で確認ください。

1. SystemCを使ったシステム設計の概要


SystemC以外の言語比較や設計手法、SystemCを使う上でのメリットが記載。

2. TLMベース設計手法


抽象度の話やTLMベース設計フローのメリットなどが記載。

3. SystemCの概要


SystemC言語のアーキテクチャやコンパイルフローの説明。
○p27 -「Hello_SystemC」プログラムは最初であれば、ぜひ作ってみましょう。
○p33 - SC_METHODに対してのnext_triggerは使ったことないかも。

4. データタイプ


○p42 - 32ビット以下であれば「-D_32BIT」を使うと、大幅なスピードの改善が。
○p45 - 固定小数点タイプを使う場合は「#define SC_INCLUDE_FX」を #include <systemc.h>より前で記述する

5. モジュール:SC_MODULE


SC_MODULE,SC_CTOR/SC_HAS_PROCESSなどの書き方は覚えておいて損はない。
○p64 - 推奨型の記述スタイル(SystemCのオススメ記述スタイルとは)

6. 時間の概念


sc_time, sc_start, sc_time_stamp, sc_simulation_timeとか。

7. 並列性:プロセスとイベント


シミュレーションに関わるので、ちゃんと見ておくべき項目かと思います。
(SystemC 2.3で追加になっている部分もありますが。。。)
sc_event(イベント)の扱いは SystemCにとって非常に大切です。
○p78 - wait(timeout, event)...などの、wait(timeout, ...)は知らなかった。

8. 基本チャネル


sc_mutex, sc_semaphone, sc_fifoとか。

9. チャネルの評価と更新:SC_SIGNALS


sc_signal, sc_bufferの説明。
シミュレーションにも関わった話しなので、見ておかないといけない。
○p109 - sc_prim_channel::request_update()とか。
○p112 - sc_signal_resolved, sc_signal_rvは使ったことない。

10.構造:設計階層


ヘッダ(.h)とソース(.cpp)に対して、どういう記述分割にするかは面白いと思います。
○p124 - 表10-1参照

11.通信:ポート


ポートの接続に関しては見ておかないといけない。

12.ポートに関する更なるトピックス:特殊化ポートとsc_export


sc_fifo/sc_mutex/sc_semaphone インターフェースやsc_port/sc_exportの話。
○p144 - sc_event_finderは知らなかった。

13.カスタムチャネルとデータ:プリミティブチャネルと階層チャネル


カスタムチャネルを作る際のノウハウが記載されています。
○p176 - simcontext()->delta_count()は知らなかった。

14.上級者向けトピックス


ここで初めてSC_CTHREADの話が少しだけ出てくる。
○p187 - グローバル/ローカルウォッチング
○p196 - 動的プロセス(#define SC_INCLUDE_DYNAMIC_PROCESS, sc_process_handle hname = sc_spawn)
○p201 - SC_FORK/SC_JOIN 使ったことないな。
○p204 - エラーとメッセージのレポート

15.その他のトピックス:性能、その他のヒント


○p218 - 15.3.1 SystemCを適用するためのガイドラインは非常に大事!
引用:
1. 組織的に導入して、マネジメントのサポートを得ること
2. 従来と同様の方法を踏襲するなら、言語によらず従来と同じ結果しか得られない。
3. 製品、あるいはシステムの見地から物事を捉え、細かな個々の作業にはこだわらない。
4. トレーニングを惜しまない。きちんと構成された、正規のトレーニングを受けるべき。
5. 指導を得ること。
6. 新しい言語の効果を得るには、新しい考え方の枠組み(パラダイム)を導入する必要がある。
7. 新しい考え方に沿って、仕様を適切な抽象度のレベルで定義すること。
8. コーディングガイドライン、lintツール、レビューなどにより、記述ルールを早く定着させること。
9. 新しい言語に熟達したエキスパートが承認した、テンプレートを使用する。
10.簡潔、明快に、自動化、環境構築を行う。
11.システムレベルへの適用を目的に、EDAツールの評価を行う。
12.ツールバージョン、コンフィグレーションを含め、すべての分野において、
ドキュメントっが提供され、サポートが受けられるツールを使用する。
13.システムレベルに焦点をあてた、パイロットプロジェクトに対して適用する。

コメント


前半は堅苦しい話だったが、後半はシミュレーションなり、
いろいろな機能に対しての説明なので、非常に面白かった。
どちらかというと、一度 SystemCを書いたことがある人向けだと思う。
でも、持ってても役立つ本だと思うので、これから始める人もぜひ。
ただ、今現在だと v2.2そして、v2.3となってくるので、
新しいバージョンに対応した本が出て欲しい。
あと、15.2章:SystemCの特徴はハマリやすい部分のトピックスなので、
初めてSystemC記述する際には見たほうがいいと思います。
関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

Author:Kocha
なんでもチャレンジ!(^o^)/
E-mail
github:Kocha
イベントカレンダー

カレンダー
05 | 2017/06 | 07
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -
カテゴリ
OVP (4)
最新記事
最新コメント
アーカイブ
リンク
Twitter
アクセス人数
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。