SC_CTHREADが苦手な理由

SystemC Advent Calendar2012 の 19日目の記事です。
前回がSystemCの thread(process) を理解しよう ということだったので、
今回はその中の SC_CTHREADの話をしたいと思います。


私は、SystemCにおいて SC_CTHREADが嫌い苦手です。
どうして、苦手かというと理由は一つです。

SC_Cycle THREAD

だからです。
せっかくなので、 IEEE1666-2011 を見てみましょう。

5.2.12 Clocked thread processes

A clocked thread process shall be a static process; clocked
threads cannot be spawned processes.
A clocked thread process shall be statically sensitive to a single clock,
as determined by the event finder passed as the second argument to macro SC_CTHREAD.
The clocked thread process shall be statically sensitive to the event returned from
the given event finder.
A clocked thread process may call either of the following functions:

というようなことが書かれています。
あれ?勘違いしていましたね(汗
正式には Clocked thread processesなんですね。
でも、やっぱり抽象度の低いものを想定なんですね。


抽象度が低いがゆえに


2つの顔を持つ SystemC(IEEE1666) という形に書いたように、
SystemC(SystemCモデル)と言った場合に 2つの顔があります。
では、SC_CTHREADを使うモデルというとサイクルモデル限定されます。
この限定されるモデルの書き方が以下のような、不安要素を持つ気がします。

  • SystemC記述時にクロックを意識させてしまう。
  • HDLのようなモデリングを書かないといけないと思わせる。
    SC_CTHREAD = always(Verlog-HDL)のような単位に。

この不安要素が初めてSystemCを記述する人にとって
変な嫌悪感を抱かせる原因になっているような気がします。

抽象度を落としてしまう SC_CTHREAD やっぱり嫌いです。


次回より、嫌いな SC_CTHREADをネタにして記事にしたいと思います。

関連記事

コメントの投稿

非公開コメント

プロフィール

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
アクセス人数