datawidth.h revision 12855
19651SAndreas.Sandberg@ARM.com/***************************************************************************** 29651SAndreas.Sandberg@ARM.com 39651SAndreas.Sandberg@ARM.com Licensed to Accellera Systems Initiative Inc. (Accellera) under one or 49651SAndreas.Sandberg@ARM.com more contributor license agreements. See the NOTICE file distributed 59651SAndreas.Sandberg@ARM.com with this work for additional information regarding copyright ownership. 69651SAndreas.Sandberg@ARM.com Accellera licenses this file to you under the Apache License, Version 2.0 79651SAndreas.Sandberg@ARM.com (the "License"); you may not use this file except in compliance with the 89651SAndreas.Sandberg@ARM.com License. You may obtain a copy of the License at 99651SAndreas.Sandberg@ARM.com 109651SAndreas.Sandberg@ARM.com http://www.apache.org/licenses/LICENSE-2.0 119651SAndreas.Sandberg@ARM.com 129651SAndreas.Sandberg@ARM.com Unless required by applicable law or agreed to in writing, software 139651SAndreas.Sandberg@ARM.com distributed under the License is distributed on an "AS IS" BASIS, 149651SAndreas.Sandberg@ARM.com WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 159651SAndreas.Sandberg@ARM.com implied. See the License for the specific language governing 169651SAndreas.Sandberg@ARM.com permissions and limitations under the License. 179651SAndreas.Sandberg@ARM.com 189651SAndreas.Sandberg@ARM.com *****************************************************************************/ 199651SAndreas.Sandberg@ARM.com 209651SAndreas.Sandberg@ARM.com/***************************************************************************** 219651SAndreas.Sandberg@ARM.com 229651SAndreas.Sandberg@ARM.com datawidth.h -- 239651SAndreas.Sandberg@ARM.com 249651SAndreas.Sandberg@ARM.com Original Author: Martin Janssen, Synopsys, Inc., 2002-02-15 259651SAndreas.Sandberg@ARM.com 269651SAndreas.Sandberg@ARM.com *****************************************************************************/ 279651SAndreas.Sandberg@ARM.com 289651SAndreas.Sandberg@ARM.com/***************************************************************************** 299651SAndreas.Sandberg@ARM.com 309651SAndreas.Sandberg@ARM.com MODIFICATION LOG - modifiers, enter your name, affiliation, date and 319651SAndreas.Sandberg@ARM.com changes you are making here. 329651SAndreas.Sandberg@ARM.com 339651SAndreas.Sandberg@ARM.com Name, Affiliation, Date: 349651SAndreas.Sandberg@ARM.com Description of Modification: 359651SAndreas.Sandberg@ARM.com 369651SAndreas.Sandberg@ARM.com *****************************************************************************/ 379651SAndreas.Sandberg@ARM.com 389651SAndreas.Sandberg@ARM.com /**************************************/ 399651SAndreas.Sandberg@ARM.com /* Interface Filename: datawidth.h */ 409651SAndreas.Sandberg@ARM.com /**************************************/ 419651SAndreas.Sandberg@ARM.com 429651SAndreas.Sandberg@ARM.com#include "common.h" 439651SAndreas.Sandberg@ARM.com 449651SAndreas.Sandberg@ARM.comSC_MODULE( datawidth ) 459651SAndreas.Sandberg@ARM.com{ 469651SAndreas.Sandberg@ARM.com SC_HAS_PROCESS( datawidth ); 479651SAndreas.Sandberg@ARM.com 489651SAndreas.Sandberg@ARM.com sc_in_clk clk; 499651SAndreas.Sandberg@ARM.com 509651SAndreas.Sandberg@ARM.com // Inputs 519651SAndreas.Sandberg@ARM.com const signal_bool_vector& in1; 529651SAndreas.Sandberg@ARM.com const signal_bool_vector& in2; 539651SAndreas.Sandberg@ARM.com const sc_signal<bool>& ready; 549651SAndreas.Sandberg@ARM.com // Outputs 559651SAndreas.Sandberg@ARM.com signal_bool_vector& result; 569651SAndreas.Sandberg@ARM.com // Parameters 579651SAndreas.Sandberg@ARM.com const int in1_width; 589651SAndreas.Sandberg@ARM.com const int in2_width; 599651SAndreas.Sandberg@ARM.com const int result_width; 609651SAndreas.Sandberg@ARM.com 619651SAndreas.Sandberg@ARM.com // Constructor 629651SAndreas.Sandberg@ARM.com datawidth (sc_module_name NAME, 639651SAndreas.Sandberg@ARM.com sc_clock& TICK, 649651SAndreas.Sandberg@ARM.com const signal_bool_vector& IN1, 659651SAndreas.Sandberg@ARM.com const signal_bool_vector& IN2, 669651SAndreas.Sandberg@ARM.com const sc_signal<bool>& READY, 679651SAndreas.Sandberg@ARM.com signal_bool_vector& RESULT, 689651SAndreas.Sandberg@ARM.com const int IN1_WIDTH, 699651SAndreas.Sandberg@ARM.com const int IN2_WIDTH, 709651SAndreas.Sandberg@ARM.com const int RESULT_WIDTH ) 719651SAndreas.Sandberg@ARM.com 729690Sandreas@sandberg.pp.se : 739655SAndreas.Sandberg@ARM.com in1 (IN1), 749754Sandreas@sandberg.pp.se in2 (IN2), 759754Sandreas@sandberg.pp.se ready (READY), 769651SAndreas.Sandberg@ARM.com result (RESULT), 77 in1_width (IN1_WIDTH), 78 in2_width (IN2_WIDTH), 79 result_width (RESULT_WIDTH) 80 81 { 82 clk (TICK); 83 SC_CTHREAD( entry, clk.pos() ); 84 } 85 86 void entry(); 87}; 88