« ポートでエラーが発生 | Main | 最近知ったこと »

2006.10.14

SystemCとVerilogとC++と

ハッカーのたのしみから

先頭から連続する0を数えるプログラムをC++とVerlogとSystemCで書いてみた。
ファイルはここ

C++は本を丸写しだからゴールデンとして。

Verilogの方は、以前に書いたとおり2つのアルゴリズムで速い方を選ぶようにした。
思ったより簡単だ。リソースは倍食うけど、ワースト値が大きく改善される。
チャンスがあれば今度仕事で使おう。

もうちょっと詳しく書くと、先頭からの続く0を計算するのに、順に左にシフトしていって
MSBが1になるまでを数えるのと、順に右にシフトしていってシフトした結果が0になるのを
二つ同時に回している。もっと複雑な処理でも使えそう。(もちろん演算系以外でも)
(Veritakですぐに動くようにしてあります。)

SystemCは、初めてのSystemCレベル。なんと言っても、テンプレートから一歩でも
はみ出すとさっぱり動かないのがくやしい。全然勉強がたりない。
0から書くと、いかにportもchannelもeventも分かっていないのかが、身にしみて
わかる。

|

« ポートでエラーが発生 | Main | 最近知ったこと »

Comments

Post a comment



(Not displayed with comment.)




TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/18154/12275894

Listed below are links to weblogs that reference SystemCとVerilogとC++と:

« ポートでエラーが発生 | Main | 最近知ったこと »