bitwidth.cpp revision 12855:588919e0e4aa
16657Snate@binkert.org/***************************************************************************** 26657Snate@binkert.org 36657Snate@binkert.org Licensed to Accellera Systems Initiative Inc. (Accellera) under one or 46657Snate@binkert.org more contributor license agreements. See the NOTICE file distributed 56657Snate@binkert.org with this work for additional information regarding copyright ownership. 66657Snate@binkert.org Accellera licenses this file to you under the Apache License, Version 2.0 76657Snate@binkert.org (the "License"); you may not use this file except in compliance with the 86657Snate@binkert.org License. You may obtain a copy of the License at 96657Snate@binkert.org 106657Snate@binkert.org http://www.apache.org/licenses/LICENSE-2.0 116657Snate@binkert.org 126657Snate@binkert.org Unless required by applicable law or agreed to in writing, software 136657Snate@binkert.org distributed under the License is distributed on an "AS IS" BASIS, 146657Snate@binkert.org WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 156657Snate@binkert.org implied. See the License for the specific language governing 166657Snate@binkert.org permissions and limitations under the License. 176657Snate@binkert.org 186657Snate@binkert.org *****************************************************************************/ 196657Snate@binkert.org 206657Snate@binkert.org/***************************************************************************** 216657Snate@binkert.org 226657Snate@binkert.org bitwidth.cpp -- 236657Snate@binkert.org 246657Snate@binkert.org Original Author: Rocco Jonack, Synopsys, Inc., 1999-08-02 256657Snate@binkert.org 266657Snate@binkert.org *****************************************************************************/ 276657Snate@binkert.org 286657Snate@binkert.org/***************************************************************************** 296657Snate@binkert.org 306657Snate@binkert.org MODIFICATION LOG - modifiers, enter your name, affiliation, date and 316657Snate@binkert.org changes you are making here. 326657Snate@binkert.org 336657Snate@binkert.org Name, Affiliation, Date: 346657Snate@binkert.org Description of Modification: 356657Snate@binkert.org 366657Snate@binkert.org *****************************************************************************/ 376657Snate@binkert.org 386657Snate@binkert.org#include "bitwidth.h" 396657Snate@binkert.org 406657Snate@binkert.orgvoid bitwidth::entry(){ 416714Ssteve.reinhardt@amd.com 426714Ssteve.reinhardt@amd.com sc_bigint<4> tmp1; 436657Snate@binkert.org sc_biguint<4> tmp2; 446714Ssteve.reinhardt@amd.com sc_bigint<6> tmp3; 456714Ssteve.reinhardt@amd.com sc_biguint<6> tmp4; 466657Snate@binkert.org sc_bigint<8> tmp5; 476657Snate@binkert.org sc_biguint<8> tmp6; 486657Snate@binkert.org 4911283Santhony.gutierrez@amd.com // reset_loop 506657Snate@binkert.org if (reset.read() == true) { 51 out_valid.write(false); 52 wait(); 53 } else wait(); 54 55 // 56 // main loop 57 // 58 // 59 while(1) { 60 while(in_valid.read()==false) wait(); 61 wait(); 62 63 //reading the inputs 64 tmp1 = in_value1.read(); 65 tmp2 = in_value2.read(); 66 tmp3 = in_value3.read(); 67 tmp4 = in_value4.read(); 68 tmp5 = in_value5.read(); 69 tmp6 = in_value6.read(); 70 71 //execute simple operations 72 // expected bitwidth 4 4 4 signed 73 tmp1 = tmp1 + tmp2; 74 // expected bitwidth 4 6 6 signed 75 tmp3 = tmp1 + tmp3; 76 // expected bitwidth 4 4 6 signed 77 tmp6 = tmp2 + tmp1; 78 // expected bitwidth 8 8 6 signed 79 tmp4 = tmp5 + tmp6; 80 // expected bitwidth 6 8 4 unsigned 81 tmp2 = tmp4 + tmp6; 82 wait(); 83 84 // write outputs 85 out_value1.write(tmp1); 86 out_value2.write(tmp2); 87 out_value3.write(tmp3); 88 out_value4.write(tmp4); 89 out_value5.write(tmp5); 90 out_value6.write(tmp6); 91 out_valid.write(true); 92 wait(); 93 out_valid.write(false); 94 wait(); 95 } 96} 97 98// EOF 99 100