test05.cpp revision 12855:588919e0e4aa
111656Sandreas.hansson@arm.com/***************************************************************************** 211368Sandreas.hansson@arm.com 311368Sandreas.hansson@arm.com Licensed to Accellera Systems Initiative Inc. (Accellera) under one or 411368Sandreas.hansson@arm.com more contributor license agreements. See the NOTICE file distributed 511368Sandreas.hansson@arm.com with this work for additional information regarding copyright ownership. 611368Sandreas.hansson@arm.com Accellera licenses this file to you under the Apache License, Version 2.0 711368Sandreas.hansson@arm.com (the "License"); you may not use this file except in compliance with the 811368Sandreas.hansson@arm.com License. You may obtain a copy of the License at 911368Sandreas.hansson@arm.com 1011368Sandreas.hansson@arm.com http://www.apache.org/licenses/LICENSE-2.0 1111368Sandreas.hansson@arm.com 1211368Sandreas.hansson@arm.com Unless required by applicable law or agreed to in writing, software 1311368Sandreas.hansson@arm.com distributed under the License is distributed on an "AS IS" BASIS, 1411368Sandreas.hansson@arm.com WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 1511368Sandreas.hansson@arm.com implied. See the License for the specific language governing 1611368Sandreas.hansson@arm.com permissions and limitations under the License. 1711368Sandreas.hansson@arm.com 1811368Sandreas.hansson@arm.com *****************************************************************************/ 1911368Sandreas.hansson@arm.com 2011368Sandreas.hansson@arm.com/***************************************************************************** 2111368Sandreas.hansson@arm.com 2211368Sandreas.hansson@arm.com test05.cpp -- 2311368Sandreas.hansson@arm.com 2411368Sandreas.hansson@arm.com Original Author: Martin Janssen, Synopsys, Inc., 2002-02-15 2511368Sandreas.hansson@arm.com 2611368Sandreas.hansson@arm.com *****************************************************************************/ 2711368Sandreas.hansson@arm.com 2811368Sandreas.hansson@arm.com/***************************************************************************** 2911368Sandreas.hansson@arm.com 3011368Sandreas.hansson@arm.com MODIFICATION LOG - modifiers, enter your name, affiliation, date and 3111368Sandreas.hansson@arm.com changes you are making here. 3211368Sandreas.hansson@arm.com 3311368Sandreas.hansson@arm.com Name, Affiliation, Date: 3411368Sandreas.hansson@arm.com Description of Modification: 3511368Sandreas.hansson@arm.com 3611368Sandreas.hansson@arm.com *****************************************************************************/ 3711368Sandreas.hansson@arm.com 3811368Sandreas.hansson@arm.com#include "systemc.h" 3911368Sandreas.hansson@arm.com 4011368Sandreas.hansson@arm.comSC_MODULE( proc1 ) 4111368Sandreas.hansson@arm.com{ 4211368Sandreas.hansson@arm.com SC_HAS_PROCESS( proc1 ); 4311368Sandreas.hansson@arm.com 4411368Sandreas.hansson@arm.com sc_in<bool> clk; 4511368Sandreas.hansson@arm.com 4611368Sandreas.hansson@arm.com char obj1; 4711368Sandreas.hansson@arm.com short obj2; 4811368Sandreas.hansson@arm.com int obj3; 4911368Sandreas.hansson@arm.com long obj4; 5011368Sandreas.hansson@arm.com int64 obj5; 5111368Sandreas.hansson@arm.com 5211368Sandreas.hansson@arm.com proc1( sc_module_name NAME, 5311368Sandreas.hansson@arm.com sc_signal<bool>& CLK ) 5411368Sandreas.hansson@arm.com { 5511368Sandreas.hansson@arm.com clk(CLK); 5611368Sandreas.hansson@arm.com SC_THREAD( entry ); 5711368Sandreas.hansson@arm.com sensitive << clk; 5811368Sandreas.hansson@arm.com obj1 = 0; 5911368Sandreas.hansson@arm.com obj2 = 0; 6011368Sandreas.hansson@arm.com obj3 = 0; 6111368Sandreas.hansson@arm.com obj4 = 0; 6211368Sandreas.hansson@arm.com obj5 = 0; 6311368Sandreas.hansson@arm.com } 6411368Sandreas.hansson@arm.com 6511368Sandreas.hansson@arm.com void entry(); 6611368Sandreas.hansson@arm.com}; 6711368Sandreas.hansson@arm.com 6811368Sandreas.hansson@arm.comvoid proc1::entry() 6911368Sandreas.hansson@arm.com{ 7011368Sandreas.hansson@arm.com wait(); 7111368Sandreas.hansson@arm.com while(true) { 7211368Sandreas.hansson@arm.com obj1 = 7; 7311368Sandreas.hansson@arm.com obj2 = 31; 7411368Sandreas.hansson@arm.com obj3 = -1023; 7511368Sandreas.hansson@arm.com obj4 = 2047; 7611368Sandreas.hansson@arm.com obj5 = -1; 7711368Sandreas.hansson@arm.com obj5 = obj5 << 40; 7811368Sandreas.hansson@arm.com wait(); 7911368Sandreas.hansson@arm.com obj1 = 1; 8011368Sandreas.hansson@arm.com obj2 = -2; 8111368Sandreas.hansson@arm.com obj3 = 1024; 8211368Sandreas.hansson@arm.com obj4 = -2048; 8311368Sandreas.hansson@arm.com obj5 = 7; 8411368Sandreas.hansson@arm.com obj5 = obj5 << 40; 8511368Sandreas.hansson@arm.com wait(); 8611368Sandreas.hansson@arm.com } 8711368Sandreas.hansson@arm.com} 8811368Sandreas.hansson@arm.com 8911368Sandreas.hansson@arm.com 9011368Sandreas.hansson@arm.comint sc_main(int ac, char *av[]) 9111368Sandreas.hansson@arm.com{ 9211368Sandreas.hansson@arm.com sc_trace_file *tf; 9311368Sandreas.hansson@arm.com sc_signal<bool> clock; 9411368Sandreas.hansson@arm.com 9511368Sandreas.hansson@arm.com proc1 P1("P1", clock); 9611368Sandreas.hansson@arm.com 9711368Sandreas.hansson@arm.com tf = sc_create_vcd_trace_file("test05"); 9811368Sandreas.hansson@arm.com sc_trace(tf, P1.obj1, "Char", 4); 9911368Sandreas.hansson@arm.com sc_trace(tf, P1.obj2, "Short", 12); 10011368Sandreas.hansson@arm.com sc_trace(tf, P1.obj3, "Int", 14); 10111368Sandreas.hansson@arm.com sc_trace(tf, P1.obj4, "Long", 14); 10211368Sandreas.hansson@arm.com sc_trace(tf, P1.obj5, "Int64", 44); 10311368Sandreas.hansson@arm.com sc_trace(tf, clock, "Clock"); 10411368Sandreas.hansson@arm.com 10511368Sandreas.hansson@arm.com clock.write(0); 10611368Sandreas.hansson@arm.com sc_start(0, SC_NS); 10711368Sandreas.hansson@arm.com for (int i = 0; i< 10; i++) { 10811368Sandreas.hansson@arm.com clock.write(1); 10911368Sandreas.hansson@arm.com sc_start(10, SC_NS); 11011368Sandreas.hansson@arm.com clock.write(0); 11111368Sandreas.hansson@arm.com sc_start(10, SC_NS); 11211368Sandreas.hansson@arm.com } 11311368Sandreas.hansson@arm.com sc_close_vcd_trace_file( tf ); 11411368Sandreas.hansson@arm.com return 0; 11511368Sandreas.hansson@arm.com} 11611368Sandreas.hansson@arm.com