« 今日の勉強 | Main | 今日の読書 »

2007.02.17

AVM 最初のテストベンチ

Advanced Verification Methodology SystemC and SystemVerilog

某展示会でメンターの人から日本語版をもらう。
ちょっと電車の中で読んでみたら予想以上に面白そうだったので
勉強してみる。

一応Questaのロゴは入っているが、このレベルなら高価なシミュ
レータはいらない。gcc 万歳。

テストベンチ小ネタ
最初のstimulusを作るところのみ、dont_initialize()を宣言しないことで、
時刻0の時に、SC_METHODを呼び出す。
その、SC_METHOD内で、next_trigger()を遅延付きで呼び出すことで、
再びSC_METHODを呼び出す。
以下、ループ

ブラボー!こんな発想無かったよ。


ソースを抜粋

コンストラクタの中で、SC_METHODとして、run()を登録。
dont_initialize()が無いので時刻0にて1回run()が実行される。

stim_gen (sc_module_name mn): sc_module(mn), stimulus(0)
{
SC_METHOD(run);
}
SC_HAS_PROCESS(stim_gen);

run()の中身がこれ

void stim_gen::run(void)
{
A = stimulus[0];
B = stimulus[1];
stimulus++;
next_trigger(3, SC_NS);

}
next_trigger(3, SC_NS)の呼び出しにより、3ns後に再びrun()が呼び出される。

書籍のpdfおよびソースは上記サイトからダウンロード可能です。展示会に
いけば無料でもらえる時があり。ライセンスは、Apache License。

コンストラクタでの初期化も気持ちよいし、企業名が入っているドキュメントは
こうあるべきだみたいな見本だと思う。

ちなみに、私はメンター社の回し者では無いですが、全く無関係という
わけでも無いので、若干バイアスはかかっております。

|

« 今日の勉強 | Main | 今日の読書 »

Comments

Post a comment



(Not displayed with comment.)




TrackBack

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

Listed below are links to weblogs that reference AVM 最初のテストベンチ:

« 今日の勉強 | Main | 今日の読書 »