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