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