1#define SC_INCLUDE_FX 2 3#include <systemc.h> 4 5// 28) sc_core and sc_dt - check names still visible in <systemc.h> 6 7SC_MODULE(Mod) 8{ 9 SC_CTOR(Mod) 10 { 11 SC_THREAD(T); 12 }; 13 void T() 14 { 15 sc_int<4> i; 16 sc_uint<4> ui; 17 sc_bigint<4> bi; 18 sc_biguint<4> bui; 19 sc_fixed<4,2> f; 20 sc_ufixed<4,2> uf; 21 sc_fixed_fast<4,2> ff; 22 sc_ufixed_fast<4,2> uff; 23 sc_bv<4> bv; 24 sc_lv<4> lv; 25 26 sc_int_base ib; 27 sc_int_base uib; 28 sc_signed s; 29 sc_unsigned u; 30 sc_fix fi; 31 sc_ufix ufi; 32 sc_fix_fast ffi; 33 sc_ufix_fast uffi; 34 sc_logic l; 35 sc_bv_base bvb; 36 sc_lv_base lvb; 37 38 //sc_value_base vb; 39 //sc_fxnum fx; 40 //sc_fxnum_fast fxf; 41 sc_fxval fxv; 42 sc_fxval_fast fxvf; 43 44 sc_assert(sc_abs(-1) == 1); 45 sc_assert(sc_max(1, 2) == 2); 46 sc_assert(sc_min(1, 2) == 1); 47 sc_copyright(); 48 sc_version(); 49 sc_release(); 50 } 51 void f(sc_report& rpt) 52 { 53 sc_severity sev; 54 sev = SC_INFO; 55 sev = SC_WARNING; 56 sev = SC_ERROR; 57 sev = SC_FATAL; 58 sc_assert (sev == SC_FATAL); 59 60 sc_actions act; 61 act = SC_DO_NOTHING; 62 } 63 void g(sc_exception x) {} 64}; 65 66struct Top: sc_module 67{ 68 Top(sc_module_name) 69 { 70 tf = sc_create_vcd_trace_file("vcd"); 71 tf->set_time_unit(1.0, SC_NS); 72 sc_trace(tf, sig, "sig"); 73 sc_write_comment(tf, "Hello"); 74 } 75 ~Top() 76 { 77 sc_close_vcd_trace_file(tf); 78 } 79 sc_trace_file* tf; 80 sc_signal<sc_logic> sig; 81}; 82 83int sc_main(int argc, char* argv[]) 84{ 85#if defined(_MSC_VER) && _MSC_VER < 1900 86 _set_output_format(_TWO_DIGIT_EXPONENT); 87#endif 88 89 cout << "Should be silent except for some renaming warnings..." << endl; 90 91 Top top("top"); 92 93 sc_attr_base ab("base"); 94 sc_attribute<int> at("attr"); 95 96 sc_buffer<int> bu; 97 sc_signal_resolved sr; 98 sc_fifo<int> fi; 99 sc_mutex mut; 100 sc_semaphore sem(2); 101 sc_event_queue eq; 102 103 sc_start(100, SC_NS); 104 105 cout << endl << "Success" << endl; 106 return 0; 107} 108