test02.cpp revision 12855:588919e0e4aa
14484Sbinkertn@umich.edu/*****************************************************************************
24484Sbinkertn@umich.edu
34484Sbinkertn@umich.edu  Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
44484Sbinkertn@umich.edu  more contributor license agreements.  See the NOTICE file distributed
54484Sbinkertn@umich.edu  with this work for additional information regarding copyright ownership.
64484Sbinkertn@umich.edu  Accellera licenses this file to you under the Apache License, Version 2.0
74484Sbinkertn@umich.edu  (the "License"); you may not use this file except in compliance with the
84484Sbinkertn@umich.edu  License.  You may obtain a copy of the License at
94484Sbinkertn@umich.edu
104484Sbinkertn@umich.edu    http://www.apache.org/licenses/LICENSE-2.0
114484Sbinkertn@umich.edu
124484Sbinkertn@umich.edu  Unless required by applicable law or agreed to in writing, software
134484Sbinkertn@umich.edu  distributed under the License is distributed on an "AS IS" BASIS,
144484Sbinkertn@umich.edu  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
154484Sbinkertn@umich.edu  implied.  See the License for the specific language governing
164484Sbinkertn@umich.edu  permissions and limitations under the License.
174484Sbinkertn@umich.edu
184484Sbinkertn@umich.edu *****************************************************************************/
194484Sbinkertn@umich.edu
204484Sbinkertn@umich.edu/*****************************************************************************
214484Sbinkertn@umich.edu
224484Sbinkertn@umich.edu  test02.cpp --
234484Sbinkertn@umich.edu
244484Sbinkertn@umich.edu  Original Author: Martin Janssen, Synopsys, Inc., 2002-02-15
254484Sbinkertn@umich.edu
264484Sbinkertn@umich.edu *****************************************************************************/
274484Sbinkertn@umich.edu
284484Sbinkertn@umich.edu/*****************************************************************************
294484Sbinkertn@umich.edu
304484Sbinkertn@umich.edu  MODIFICATION LOG - modifiers, enter your name, affiliation, date and
314484Sbinkertn@umich.edu  changes you are making here.
324484Sbinkertn@umich.edu
334484Sbinkertn@umich.edu      Name, Affiliation, Date:
344484Sbinkertn@umich.edu  Description of Modification:
354484Sbinkertn@umich.edu
364484Sbinkertn@umich.edu *****************************************************************************/
374484Sbinkertn@umich.edu
384484Sbinkertn@umich.edu#include "systemc.h"
394484Sbinkertn@umich.edu
404484Sbinkertn@umich.eduSC_MODULE( proc1 )
414484Sbinkertn@umich.edu{
424484Sbinkertn@umich.edu  SC_HAS_PROCESS( proc1 );
434484Sbinkertn@umich.edu
444484Sbinkertn@umich.edu  sc_in<bool> clk;
454484Sbinkertn@umich.edu
464484Sbinkertn@umich.edu  unsigned char obj1;
474484Sbinkertn@umich.edu  unsigned short obj2;
484484Sbinkertn@umich.edu  unsigned int obj3;
494484Sbinkertn@umich.edu  unsigned long obj4;
504484Sbinkertn@umich.edu
514484Sbinkertn@umich.edu  proc1( sc_module_name NAME,
524484Sbinkertn@umich.edu	 sc_signal<bool>& CLK )
534484Sbinkertn@umich.edu  {
544484Sbinkertn@umich.edu    clk(CLK);
554484Sbinkertn@umich.edu    SC_THREAD( entry );
564484Sbinkertn@umich.edu    sensitive << clk;
574484Sbinkertn@umich.edu    obj1 = 0;
584484Sbinkertn@umich.edu    obj2 = 0;
594484Sbinkertn@umich.edu    obj3 = 0;
60    obj4 = 0;
61  }
62
63  void entry();
64};
65
66void proc1::entry()
67{
68  wait();
69  while(true) {
70    obj1 = 7;
71    obj2 = 31;
72    obj3 = 1023;
73    obj4 = 2047;
74    wait();
75    obj1 = 1;
76    obj2 = 32;
77    obj3 = 1024;
78    obj4 = 2048;
79    wait();
80  }
81}
82
83
84int sc_main(int ac, char *av[])
85{
86  sc_trace_file *tf;
87  sc_signal<bool> clock;
88
89  proc1 P1("P1", clock);
90
91  tf = sc_create_wif_trace_file("test02");
92  sc_trace(tf, P1.obj1, "Char");
93  sc_trace(tf, P1.obj2, "Short");
94  sc_trace(tf, P1.obj3, "Int");
95  sc_trace(tf, P1.obj4, "Long");
96  sc_trace(tf, clock, "Clock");
97
98  clock.write(0);
99  sc_start(0, SC_NS);
100  for (int i = 0; i< 10; i++) {
101    clock.write(1);
102    sc_start(10, SC_NS);
103    clock.write(0);
104    sc_start(10, SC_NS);
105  }
106  sc_close_wif_trace_file( tf );
107  return 0;
108}
109