377 :
774ワット発電中さん:
SystemCはC++で、ハードウェアを主体としたシステムのモデリングのための
DesignPatternの研究の成果でして、それで留まってくれていれば良かったの
ですが、当時合成では非常の信頼の厚かったSynopsysがぶち上げたものです
から、皆さん勘違いをなさって大変なことになっているんですね。
SystemCの最初の論文では、
Simulation高速化のために、記述能力は犠牲にする
とはっきり謳っていますから、Simulation速度を最優先に考えてそれなりに苦労
して記述する事が当たり前の言語なんですね。
ただね、SystemC1.0では
−サイクル精度レベル
−レジスタ転送レベル(RTL)
しかサポートしてなくて、これだと合成可能な範囲だったんですよ。但し、RTLだと
HDLの記述の倍以上の記述量になるし、勿論HDLだとCompilerがメチャクチャ
最適化するから、所詮はg++でしかないSystemCだと、Simulation速度は圧倒的
に遅いんですね。
で、SystemC2.0登場! しかしです、
Simualtion高速化のためにモデリングで苦労するのは当たり前やんけえ
という思想だけはしっかり受け継いだ(元々の言語の定義からして受け継がざる
を得なかった)ので、お池にはまってさあ大変! となりました。
SystemCのSimulation環境、
クロックの乗り換えとか、Bus周りはRTLで無理矢理書く、
というのが常識となりました(だって、それしかほぼ無理なんだもん)。なので、
HDLで直接RTL書くほうが楽なんじゃ?
という疑問が普通に出てきます。どうしましょ。