SCV:SystemCデータ型のランダマイズ
今まで試したソースは C/C++のデータ・タイプだったので、
SystemCのデータ・タイプで試してみました。
- サンプルコード
#include <scv.h> int sc_main( int argc, char* argv[] ) { printf( "-----------------------\n"); printf( "--- Type:sc_int<8> ---\n"); printf( "-----------------------\n"); scv_smart_ptr<sc_int<8> > sci_p( "sc_int" ); sci_p->keep_out( -30, 30 ); for (int i=0; i<10; i++) { sci_p->next(); printf( "[SCV] data = %d\n", sci_p->read().to_int() ); } printf( "-----------------------\n"); printf( "--- Type:sc_lv<8> ---\n"); printf( "-----------------------\n"); scv_smart_ptr<sc_lv<4> > sclv_p( "sc_lv" ); sclv_p->keep_out( 0, 7 ); sclv_p->set_mode(scv_extensions_if::RANDOM_AVOID_DUPLICATE); for (int i=0; i<10; i++) { sclv_p->next(); printf( "[SCV] data = %d\n", sclv_p->read().to_uint() ); } return 0; }
- 実行結果
$> ./main SystemC 2.2.0 --- Jan 15 2012 14:19:56 Copyright (c) 1996-2006 by all Contributors ALL RIGHTS RESERVED ----------------------- --- Type:sc_int<8> --- ----------------------- [SCV] data = 101 [SCV] data = -77 [SCV] data = 112 [SCV] data = -75 [SCV] data = -93 [SCV] data = 74 [SCV] data = -114 [SCV] data = -39 [SCV] data = -66 [SCV] data = -128 ----------------------- --- Type:sc_lv<8> ----- ----------------------- [SCV] data = 14 [SCV] data = 9 [SCV] data = 12 [SCV] data = 15 [SCV] data = 10 [SCV] data = 11 [SCV] data = 8 [SCV] data = 13 [SCV] data = 11 [SCV] data = 9
当たり前ですが、普通に出来ますね。