test10.cpp revision 12855
14486SN/A/*****************************************************************************
24486SN/A
34486SN/A  Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
44486SN/A  more contributor license agreements.  See the NOTICE file distributed
54486SN/A  with this work for additional information regarding copyright ownership.
64486SN/A  Accellera licenses this file to you under the Apache License, Version 2.0
74486SN/A  (the "License"); you may not use this file except in compliance with the
84486SN/A  License.  You may obtain a copy of the License at
94486SN/A
104486SN/A    http://www.apache.org/licenses/LICENSE-2.0
114486SN/A
124486SN/A  Unless required by applicable law or agreed to in writing, software
134486SN/A  distributed under the License is distributed on an "AS IS" BASIS,
144486SN/A  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
154486SN/A  implied.  See the License for the specific language governing
164486SN/A  permissions and limitations under the License.
174486SN/A
184486SN/A *****************************************************************************/
194486SN/A
204486SN/A/*****************************************************************************
214486SN/A
224486SN/A  test10.cpp --
234486SN/A
244486SN/A  Original Author: Martin Janssen, Synopsys, Inc., 2002-02-15
254486SN/A
264486SN/A *****************************************************************************/
274486SN/A
284486SN/A/*****************************************************************************
298739Sgblack@eecs.umich.edu
303102SN/A  MODIFICATION LOG - modifiers, enter your name, affiliation, date and
313102SN/A  changes you are making here.
322542SN/A
331310SN/A      Name, Affiliation, Date:
345480Snate@binkert.org  Description of Modification:
355480Snate@binkert.org
369338SAndreas.Sandberg@arm.com *****************************************************************************/
373312SN/A
381310SN/A#include "systemc.h"
395478SN/A
408742Sgblack@eecs.umich.eduSC_MODULE( proc1 )
418789Sgblack@eecs.umich.edu{
42  SC_HAS_PROCESS( proc1 );
43
44  sc_in<bool> clk;
45
46  enum Ttype {
47    OK,
48    NOTOK,
49    SOSO
50  };
51
52  unsigned obj1;
53
54  proc1( sc_module_name NAME,
55	 sc_signal<bool>& CLK )
56  {
57    clk(CLK);
58    SC_THREAD( entry );
59    sensitive << clk;
60    obj1 = OK;
61  }
62
63  void entry();
64};
65
66void proc1::entry()
67{
68  wait();
69  while(true) {
70    obj1 = OK;
71    wait();
72    obj1 = NOTOK;
73    wait();
74    obj1 = SOSO;
75    wait();
76  }
77}
78
79
80int sc_main(int ac, char *av[])
81{
82  sc_trace_file *tf;
83  sc_signal<bool> clock;
84
85  char *enum_literals[4];
86  enum_literals[0] = "OK";
87  enum_literals[1] = "NOTOK";
88  enum_literals[2] = "SOSO";
89  enum_literals[3] = 0;
90
91  proc1 P1("P1", clock);
92
93  tf = sc_create_vcd_trace_file("test10");
94  sc_trace(tf, P1.obj1, "Enum", (const char **) enum_literals);
95  sc_trace(tf, clock, "Clock");
96
97  clock.write(0);
98  sc_start(0, SC_NS);
99  for (int i = 0; i< 10; i++) {
100    clock.write(1);
101    sc_start(10, SC_NS);
102    clock.write(0);
103    sc_start(10, SC_NS);
104  }
105  sc_close_vcd_trace_file( tf );
106  return 0;
107}
108