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