112855Sgabeblack@google.com/***************************************************************************** 212855Sgabeblack@google.com 312855Sgabeblack@google.com Licensed to Accellera Systems Initiative Inc. (Accellera) under one or 412855Sgabeblack@google.com more contributor license agreements. See the NOTICE file distributed 512855Sgabeblack@google.com with this work for additional information regarding copyright ownership. 612855Sgabeblack@google.com Accellera licenses this file to you under the Apache License, Version 2.0 712855Sgabeblack@google.com (the "License"); you may not use this file except in compliance with the 812855Sgabeblack@google.com License. You may obtain a copy of the License at 912855Sgabeblack@google.com 1012855Sgabeblack@google.com http://www.apache.org/licenses/LICENSE-2.0 1112855Sgabeblack@google.com 1212855Sgabeblack@google.com Unless required by applicable law or agreed to in writing, software 1312855Sgabeblack@google.com distributed under the License is distributed on an "AS IS" BASIS, 1412855Sgabeblack@google.com WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 1512855Sgabeblack@google.com implied. See the License for the specific language governing 1612855Sgabeblack@google.com permissions and limitations under the License. 1712855Sgabeblack@google.com 1812855Sgabeblack@google.com *****************************************************************************/ 1912855Sgabeblack@google.com 2012855Sgabeblack@google.com/***************************************************************************** 2112855Sgabeblack@google.com 2212855Sgabeblack@google.com test1.cpp -- 2312855Sgabeblack@google.com 2412855Sgabeblack@google.com Original Author: Martin Janssen, Synopsys, Inc., 2002-02-15 2512855Sgabeblack@google.com 2612855Sgabeblack@google.com *****************************************************************************/ 2712855Sgabeblack@google.com 2812855Sgabeblack@google.com/***************************************************************************** 2912855Sgabeblack@google.com 3012855Sgabeblack@google.com MODIFICATION LOG - modifiers, enter your name, affiliation, date and 3112855Sgabeblack@google.com changes you are making here. 3212855Sgabeblack@google.com 3312855Sgabeblack@google.com Name, Affiliation, Date: 3412855Sgabeblack@google.com Description of Modification: 3512855Sgabeblack@google.com 3612855Sgabeblack@google.com *****************************************************************************/ 3712855Sgabeblack@google.com 3812855Sgabeblack@google.com#include "systemc.h" 3912855Sgabeblack@google.com 4012855Sgabeblack@google.comvoid 4112855Sgabeblack@google.comone_to_four( const sc_bv<4>& x ) 4212855Sgabeblack@google.com{ 4312855Sgabeblack@google.com cout << "x[3] = " << x[3] << endl; 4412855Sgabeblack@google.com cout << "x[2] = " << x[2] << endl; 4512855Sgabeblack@google.com cout << "x[1] = " << x[1] << endl; 4612855Sgabeblack@google.com cout << "x[0] = " << x[0] << endl; 4712855Sgabeblack@google.com} 4812855Sgabeblack@google.com 4912855Sgabeblack@google.comint 5012855Sgabeblack@google.comsc_main( int argc, char* argv[] ) 5112855Sgabeblack@google.com{ 5212855Sgabeblack@google.com sc_bv<10> b1; 5312855Sgabeblack@google.com sc_bv<8> b2; 5412855Sgabeblack@google.com sc_bv<7> b3; 5512855Sgabeblack@google.com 5612855Sgabeblack@google.com sc_biguint<10> u1; 5712855Sgabeblack@google.com sc_biguint<8> u2; 5812855Sgabeblack@google.com sc_biguint<7> u3; 5912855Sgabeblack@google.com 6012855Sgabeblack@google.com sc_bigint<10> s1; 6112855Sgabeblack@google.com sc_bigint<8> s2; 6212855Sgabeblack@google.com sc_bigint<7> s3; 6312855Sgabeblack@google.com 6412855Sgabeblack@google.com b1 = "0010110101"; 6512855Sgabeblack@google.com b2 = "10010011"; 6612855Sgabeblack@google.com b3 = "1011011"; 6712855Sgabeblack@google.com 6812855Sgabeblack@google.com cout << "b1.range(5,2) ... " << endl; 6912855Sgabeblack@google.com one_to_four(b1.range(5,2)); 7012855Sgabeblack@google.com cout << "b2.range(4,1) ... " << endl; 7112855Sgabeblack@google.com one_to_four(b2.range(4,1)); 7212855Sgabeblack@google.com cout << "b3.range(6,3) ... " << endl; 7312855Sgabeblack@google.com one_to_four(b3.range(6,3)); 7412855Sgabeblack@google.com 7512855Sgabeblack@google.com u1 = 235; 7612855Sgabeblack@google.com u2 = 67; 7712855Sgabeblack@google.com u3 = 44; 7812855Sgabeblack@google.com 7912855Sgabeblack@google.com s1 = -235; 8012855Sgabeblack@google.com s2 = -32; 8112855Sgabeblack@google.com s3 = -1; 8212855Sgabeblack@google.com 8312855Sgabeblack@google.com cout << "b1 = " << b1 << endl; 8412855Sgabeblack@google.com cout << "b2 = " << b2 << endl; 8512855Sgabeblack@google.com cout << "b3 = " << b3 << endl; 8612855Sgabeblack@google.com 8712855Sgabeblack@google.com cout << "u1 = " << u1 << endl; 8812855Sgabeblack@google.com cout << "u2 = " << u2 << endl; 8912855Sgabeblack@google.com cout << "u3 = " << u3 << endl; 9012855Sgabeblack@google.com 9112855Sgabeblack@google.com cout << "s1 = " << s1 << endl; 9212855Sgabeblack@google.com cout << "s2 = " << s2 << endl; 9312855Sgabeblack@google.com cout << "s3 = " << s3 << endl; 9412855Sgabeblack@google.com 9512855Sgabeblack@google.com cout << "b1.range(3,0) = " << b1.range(3,0) << endl; 9612855Sgabeblack@google.com cout << "b1.range(0,3) = " << b1.range(0,3) << endl; 9712855Sgabeblack@google.com cout << "b2.range(4,1) = " << b2.range(4,1) << endl; 9812855Sgabeblack@google.com cout << "b2.range(1,4) = " << b2.range(1,4) << endl; 9912855Sgabeblack@google.com cout << "b3.range(5,3) = " << b3.range(5,3) << endl; 10012855Sgabeblack@google.com cout << "b3.range(3,5) = " << b3.range(3,5) << endl; 10112855Sgabeblack@google.com 10212855Sgabeblack@google.com cout << "u1.range(3,0) = " << sc_unsigned(u1.range(3,0)) << endl; 10312855Sgabeblack@google.com cout << "u1.range(0,3) = " << sc_unsigned(u1.range(0,3)) << endl; 10412855Sgabeblack@google.com cout << "u2.range(4,1) = " << sc_unsigned(u2.range(4,1)) << endl; 10512855Sgabeblack@google.com cout << "u2.range(1,4) = " << sc_unsigned(u2.range(1,4)) << endl; 10612855Sgabeblack@google.com cout << "u3.range(5,3) = " << sc_unsigned(u3.range(5,3)) << endl; 10712855Sgabeblack@google.com cout << "u3.range(3,5) = " << sc_unsigned(u3.range(3,5)) << endl; 10812855Sgabeblack@google.com cout << "u3.range(6,3) = " << sc_unsigned(u3.range(6,3)) << endl; 10912855Sgabeblack@google.com cout << "u3 = " << u3 << endl; 11012855Sgabeblack@google.com 11112855Sgabeblack@google.com cout << "s1.range(3,0) = " << sc_signed(s1.range(3,0)) << endl; 11212855Sgabeblack@google.com cout << "s1.range(0,3) = " << sc_signed(s1.range(0,3)) << endl; 11312855Sgabeblack@google.com cout << "s2.range(4,1) = " << sc_signed(s2.range(4,1)) << endl; 11412855Sgabeblack@google.com cout << "s2.range(1,4) = " << sc_signed(s2.range(1,4)) << endl; 11512855Sgabeblack@google.com cout << "s3.range(5,3) = " << sc_signed(s3.range(5,3)) << endl; 11612855Sgabeblack@google.com cout << "s3.range(3,5) = " << sc_signed(s3.range(3,5)) << endl; 11712855Sgabeblack@google.com cout << "s3.range(6,3) = " << sc_signed(s3.range(6,3)) << endl; 11812855Sgabeblack@google.com cout << "s3 = " << s3 << endl; 11912855Sgabeblack@google.com 12012855Sgabeblack@google.com u1 = b1; 12112855Sgabeblack@google.com u2 = b2; 12212855Sgabeblack@google.com u3 = b3; 12312855Sgabeblack@google.com 12412855Sgabeblack@google.com s1 = b1; 12512855Sgabeblack@google.com s2 = b2; 12612855Sgabeblack@google.com s3 = b3; 12712855Sgabeblack@google.com 12812855Sgabeblack@google.com cout << "u1.range(3,0) = " << sc_unsigned(u1.range(3,0)) << endl; 12912855Sgabeblack@google.com cout << "u1.range(0,3) = " << sc_unsigned(u1.range(0,3)) << endl; 13012855Sgabeblack@google.com cout << "u2.range(4,1) = " << sc_unsigned(u2.range(4,1)) << endl; 13112855Sgabeblack@google.com cout << "u2.range(1,4) = " << sc_unsigned(u2.range(1,4)) << endl; 13212855Sgabeblack@google.com cout << "u3.range(5,3) = " << sc_unsigned(u3.range(5,3)) << endl; 13312855Sgabeblack@google.com cout << "u3.range(3,5) = " << sc_unsigned(u3.range(3,5)) << endl; 13412855Sgabeblack@google.com cout << "u3.range(6,3) = " << sc_unsigned(u3.range(6,3)) << endl; 13512855Sgabeblack@google.com cout << "u3 = " << u3 << endl; 13612855Sgabeblack@google.com 13712855Sgabeblack@google.com cout << "s1.range(3,0) = " << sc_signed(s1.range(3,0)) << endl; 13812855Sgabeblack@google.com cout << "s1.range(0,3) = " << sc_signed(s1.range(0,3)) << endl; 13912855Sgabeblack@google.com cout << "s2.range(4,1) = " << sc_signed(s2.range(4,1)) << endl; 14012855Sgabeblack@google.com cout << "s2.range(1,4) = " << sc_signed(s2.range(1,4)) << endl; 14112855Sgabeblack@google.com cout << "s3.range(5,3) = " << sc_signed(s3.range(5,3)) << endl; 14212855Sgabeblack@google.com cout << "s3.range(3,5) = " << sc_signed(s3.range(3,5)) << endl; 14312855Sgabeblack@google.com cout << "s3.range(6,3) = " << sc_signed(s3.range(6,3)) << endl; 14412855Sgabeblack@google.com cout << "s3 = " << s3 << endl; 14512855Sgabeblack@google.com 14612855Sgabeblack@google.com return 0; 14712855Sgabeblack@google.com} 148