test1.cpp revision 12855
112647Santhony.gutierrez@amd.com/***************************************************************************** 212647Santhony.gutierrez@amd.com 311308Santhony.gutierrez@amd.com Licensed to Accellera Systems Initiative Inc. (Accellera) under one or 412647Santhony.gutierrez@amd.com more contributor license agreements. See the NOTICE file distributed 511308Santhony.gutierrez@amd.com with this work for additional information regarding copyright ownership. 612647Santhony.gutierrez@amd.com Accellera licenses this file to you under the Apache License, Version 2.0 712647Santhony.gutierrez@amd.com (the "License"); you may not use this file except in compliance with the 811308Santhony.gutierrez@amd.com License. You may obtain a copy of the License at 912647Santhony.gutierrez@amd.com 1012647Santhony.gutierrez@amd.com http://www.apache.org/licenses/LICENSE-2.0 1111308Santhony.gutierrez@amd.com 1212647Santhony.gutierrez@amd.com Unless required by applicable law or agreed to in writing, software 1312647Santhony.gutierrez@amd.com distributed under the License is distributed on an "AS IS" BASIS, 1412647Santhony.gutierrez@amd.com WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 1511308Santhony.gutierrez@amd.com implied. See the License for the specific language governing 1612647Santhony.gutierrez@amd.com permissions and limitations under the License. 1712647Santhony.gutierrez@amd.com 1812647Santhony.gutierrez@amd.com *****************************************************************************/ 1911308Santhony.gutierrez@amd.com 2012647Santhony.gutierrez@amd.com/***************************************************************************** 2112647Santhony.gutierrez@amd.com 2212647Santhony.gutierrez@amd.com test1.cpp -- 2312647Santhony.gutierrez@amd.com 2412647Santhony.gutierrez@amd.com Original Author: Martin Janssen, Synopsys, Inc., 2002-02-15 2512647Santhony.gutierrez@amd.com 2612647Santhony.gutierrez@amd.com *****************************************************************************/ 2712647Santhony.gutierrez@amd.com 2812647Santhony.gutierrez@amd.com/***************************************************************************** 2912647Santhony.gutierrez@amd.com 3012647Santhony.gutierrez@amd.com MODIFICATION LOG - modifiers, enter your name, affiliation, date and 3111308Santhony.gutierrez@amd.com changes you are making here. 3212647Santhony.gutierrez@amd.com 3311308Santhony.gutierrez@amd.com Name, Affiliation, Date: 3413774Sandreas.sandberg@arm.com Description of Modification: 3513774Sandreas.sandberg@arm.com 3613774Sandreas.sandberg@arm.com *****************************************************************************/ 3711308Santhony.gutierrez@amd.com 3811308Santhony.gutierrez@amd.com#include <systemc.h> 3911308Santhony.gutierrez@amd.com#include "types2.h" 4011308Santhony.gutierrez@amd.com 4111308Santhony.gutierrez@amd.comvoid types2::entry(){ 4211308Santhony.gutierrez@amd.com 4311308Santhony.gutierrez@amd.com int tmp1_uns_lv; 4411308Santhony.gutierrez@amd.com sc_lv<8> tmp2_uns_lv; 4511308Santhony.gutierrez@amd.com sc_uint<8> tmp1_uns; 4611308Santhony.gutierrez@amd.com sc_uint<8> tmp2_uns; 4711308Santhony.gutierrez@amd.com sc_int<9> temp_output1; 4811308Santhony.gutierrez@amd.com sc_int<8> temp_output2; 4911308Santhony.gutierrez@amd.com sc_lv<9> output1; 5011308Santhony.gutierrez@amd.com int output2; 5111308Santhony.gutierrez@amd.com 5211308Santhony.gutierrez@amd.com b_new_struct test; 5311308Santhony.gutierrez@amd.com a_new_struct test1; 5411308Santhony.gutierrez@amd.com // reset_loop 5511308Santhony.gutierrez@amd.com out_valid.write(0); 5611308Santhony.gutierrez@amd.com 5711308Santhony.gutierrez@amd.com wait(); 5811308Santhony.gutierrez@amd.com while (true) { 5911308Santhony.gutierrez@amd.com test1 = port_in.read(); 6011308Santhony.gutierrez@amd.com while(test1.in_valid == (sc_logic)'0') { 6111308Santhony.gutierrez@amd.com wait(); 6211308Santhony.gutierrez@amd.com test1 = port_in.read(); 6311308Santhony.gutierrez@amd.com } 6411308Santhony.gutierrez@amd.com wait(); 6511308Santhony.gutierrez@amd.com 6611308Santhony.gutierrez@amd.com //cout << "Starting execution" << endl; 6711308Santhony.gutierrez@amd.com 6811308Santhony.gutierrez@amd.com //reading the inputs 6911308Santhony.gutierrez@amd.com tmp1_uns_lv = test1.in_value1; 7011308Santhony.gutierrez@amd.com //cout << "read inputs" << endl; 7111308Santhony.gutierrez@amd.com tmp2_uns_lv = test1.in_value2; 7211308Santhony.gutierrez@amd.com //cout << "read inputs" << endl; 7311308Santhony.gutierrez@amd.com tmp1_uns = tmp1_uns_lv; 7411308Santhony.gutierrez@amd.com tmp2_uns = tmp2_uns_lv; 7511308Santhony.gutierrez@amd.com 7611308Santhony.gutierrez@amd.com //execute simple operations 7711308Santhony.gutierrez@amd.com tmp1_uns++; 7811308Santhony.gutierrez@amd.com tmp2_uns--; 7911308Santhony.gutierrez@amd.com tmp1_uns_lv = tmp1_uns; 8011308Santhony.gutierrez@amd.com 8111308Santhony.gutierrez@amd.com 8211308Santhony.gutierrez@amd.com output1 = temp_output1 = tmp1_uns + tmp2_uns; 8311308Santhony.gutierrez@amd.com output2 = temp_output2 = tmp1_uns - tmp2_uns; 8411308Santhony.gutierrez@amd.com 8511308Santhony.gutierrez@amd.com wait(); 8611308Santhony.gutierrez@amd.com 8711308Santhony.gutierrez@amd.com // write outputs 8811308Santhony.gutierrez@amd.com 8911308Santhony.gutierrez@amd.com test.out_value1 = "000000000"; 9011308Santhony.gutierrez@amd.com test.out_value2 = tmp1_uns_lv; 9111308Santhony.gutierrez@amd.com port_out.write(test); 9211308Santhony.gutierrez@amd.com 9311308Santhony.gutierrez@amd.com out_valid.write(1); 9411308Santhony.gutierrez@amd.com wait(); 9511308Santhony.gutierrez@amd.com 9611308Santhony.gutierrez@amd.com out_valid.write(0); 9711308Santhony.gutierrez@amd.com wait(); 9811308Santhony.gutierrez@amd.com test.out_value1 = output1; 9911308Santhony.gutierrez@amd.com test.out_value2 = output2; 10011308Santhony.gutierrez@amd.com 10111308Santhony.gutierrez@amd.com port_out.write(test); 10211308Santhony.gutierrez@amd.com out_valid.write(1); 10311308Santhony.gutierrez@amd.com wait(); 10411308Santhony.gutierrez@amd.com 10511308Santhony.gutierrez@amd.com 10611308Santhony.gutierrez@amd.com out_valid.write(0); 10711308Santhony.gutierrez@amd.com wait(); 10811308Santhony.gutierrez@amd.com 10911308Santhony.gutierrez@amd.com} 11011308Santhony.gutierrez@amd.com} 111// EOF 112 113