test228.cpp revision 12855
12SN/A#define SC_INCLUDE_FX
21762SN/A
32SN/A#include <systemc.h>
42SN/A
52SN/A// 28) sc_core and sc_dt - check names still visible in <systemc.h>
62SN/A
72SN/ASC_MODULE(Mod)
82SN/A{
92SN/A  SC_CTOR(Mod)
102SN/A  {
112SN/A    SC_THREAD(T);
122SN/A  };
132SN/A  void T()
142SN/A  {
152SN/A    sc_int<4> i;
162SN/A    sc_uint<4> ui;
172SN/A    sc_bigint<4> bi;
182SN/A    sc_biguint<4> bui;
192SN/A    sc_fixed<4,2> f;
202SN/A    sc_ufixed<4,2> uf;
212SN/A    sc_fixed_fast<4,2> ff;
222SN/A    sc_ufixed_fast<4,2> uff;
232SN/A    sc_bv<4> bv;
242SN/A    sc_lv<4> lv;
252SN/A
262SN/A    sc_int_base ib;
272665Ssaidi@eecs.umich.edu    sc_int_base uib;
282665Ssaidi@eecs.umich.edu    sc_signed s;
292665Ssaidi@eecs.umich.edu    sc_unsigned u;
302SN/A    sc_fix fi;
312SN/A    sc_ufix ufi;
321717SN/A    sc_fix_fast ffi;
331717SN/A    sc_ufix_fast uffi;
342SN/A    sc_logic l;
352SN/A    sc_bv_base bvb;
362SN/A    sc_lv_base lvb;
374182Sgblack@eecs.umich.edu
385664Sgblack@eecs.umich.edu    //sc_value_base vb;
39707SN/A    //sc_fxnum fx;
401858SN/A    //sc_fxnum_fast fxf;
416658Snate@binkert.org    sc_fxval fxv;
4256SN/A    sc_fxval_fast fxvf;
434776Sgblack@eecs.umich.edu
442856Srdreslin@umich.edu    sc_assert(sc_abs(-1) == 1);
452SN/A    sc_assert(sc_max(1, 2) == 2);
463520Sgblack@eecs.umich.edu    sc_assert(sc_min(1, 2) == 1);
473520Sgblack@eecs.umich.edu    sc_copyright();
483520Sgblack@eecs.umich.edu    sc_version();
493520Sgblack@eecs.umich.edu    sc_release();
505529Snate@binkert.org  }
512190SN/A  void f(sc_report& rpt)
522315SN/A  {
532680Sktlim@umich.edu    sc_severity sev;
542SN/A    sev = SC_INFO;
552856Srdreslin@umich.edu    sev = SC_WARNING;
562SN/A    sev = SC_ERROR;
574182Sgblack@eecs.umich.edu    sev = SC_FATAL;
584182Sgblack@eecs.umich.edu    sc_assert (sev == SC_FATAL);
594182Sgblack@eecs.umich.edu
604182Sgblack@eecs.umich.edu    sc_actions act;
614182Sgblack@eecs.umich.edu    act = SC_DO_NOTHING;
622356SN/A  }
632356SN/A  void g(sc_exception x) {}
642356SN/A};
656144Sksewell@umich.edu
662356SN/Astruct Top: sc_module
672356SN/A{
686144Sksewell@umich.edu  Top(sc_module_name)
692356SN/A  {
702356SN/A   tf = sc_create_vcd_trace_file("vcd");
716144Sksewell@umich.edu   tf->set_time_unit(1.0, SC_NS);
722356SN/A   sc_trace(tf, sig, "sig");
732356SN/A   sc_write_comment(tf, "Hello");
742356SN/A  }
756144Sksewell@umich.edu  ~Top()
766144Sksewell@umich.edu  {
776144Sksewell@umich.edu    sc_close_vcd_trace_file(tf);
786144Sksewell@umich.edu  }
796144Sksewell@umich.edu  sc_trace_file* tf;
805336Shines@cs.fsu.edu  sc_signal<sc_logic> sig;
812356SN/A};
822356SN/A
832856Srdreslin@umich.eduint sc_main(int argc, char* argv[])
842SN/A{
851634SN/A#if defined(_MSC_VER) && _MSC_VER < 1900
861634SN/A    _set_output_format(_TWO_DIGIT_EXPONENT);
871695SN/A#endif
883814Ssaidi@eecs.umich.edu
893814Ssaidi@eecs.umich.edu  cout << "Should be silent except for some renaming warnings..." << endl;
905712Shsul@eecs.umich.edu
915712Shsul@eecs.umich.edu  Top top("top");
925715Shsul@eecs.umich.edu
935712Shsul@eecs.umich.edu  sc_attr_base ab("base");
945712Shsul@eecs.umich.edu  sc_attribute<int> at("attr");
951634SN/A
961634SN/A  sc_buffer<int> bu;
975712Shsul@eecs.umich.edu  sc_signal_resolved sr;
985712Shsul@eecs.umich.edu  sc_fifo<int> fi;
995712Shsul@eecs.umich.edu  sc_mutex mut;
1002359SN/A  sc_semaphore sem(2);
1017064Snate@binkert.org  sc_event_queue eq;
1025100Ssaidi@eecs.umich.edu
1031695SN/A  sc_start(100, SC_NS);
1045099Ssaidi@eecs.umich.edu
1053814Ssaidi@eecs.umich.edu  cout << endl << "Success" << endl;
1063814Ssaidi@eecs.umich.edu  return 0;
1071634SN/A}
1083495Sktlim@umich.edu