paramadd.h revision 12855
14159Sgblack@eecs.umich.edu/*****************************************************************************
210299Salexandru.dutu@amd.com
34159Sgblack@eecs.umich.edu  Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
44159Sgblack@eecs.umich.edu  more contributor license agreements.  See the NOTICE file distributed
54159Sgblack@eecs.umich.edu  with this work for additional information regarding copyright ownership.
67087Snate@binkert.org  Accellera licenses this file to you under the Apache License, Version 2.0
77087Snate@binkert.org  (the "License"); you may not use this file except in compliance with the
87087Snate@binkert.org  License.  You may obtain a copy of the License at
97087Snate@binkert.org
107087Snate@binkert.org    http://www.apache.org/licenses/LICENSE-2.0
117087Snate@binkert.org
127087Snate@binkert.org  Unless required by applicable law or agreed to in writing, software
137087Snate@binkert.org  distributed under the License is distributed on an "AS IS" BASIS,
144159Sgblack@eecs.umich.edu  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
157087Snate@binkert.org  implied.  See the License for the specific language governing
167087Snate@binkert.org  permissions and limitations under the License.
177087Snate@binkert.org
187087Snate@binkert.org *****************************************************************************/
197087Snate@binkert.org
207087Snate@binkert.org/*****************************************************************************
217087Snate@binkert.org
227087Snate@binkert.org  paramadd.h --
234159Sgblack@eecs.umich.edu
247087Snate@binkert.org  Original Author: Martin Janssen, Synopsys, Inc., 2002-02-15
254159Sgblack@eecs.umich.edu
264159Sgblack@eecs.umich.edu *****************************************************************************/
274159Sgblack@eecs.umich.edu
284159Sgblack@eecs.umich.edu/*****************************************************************************
294159Sgblack@eecs.umich.edu
304159Sgblack@eecs.umich.edu  MODIFICATION LOG - modifiers, enter your name, affiliation, date and
314159Sgblack@eecs.umich.edu  changes you are making here.
324159Sgblack@eecs.umich.edu
334159Sgblack@eecs.umich.edu      Name, Affiliation, Date:
344159Sgblack@eecs.umich.edu  Description of Modification:
354159Sgblack@eecs.umich.edu
364159Sgblack@eecs.umich.edu *****************************************************************************/
374159Sgblack@eecs.umich.edu
384159Sgblack@eecs.umich.edu/*  Filename paramadd.h */
394159Sgblack@eecs.umich.edu/*  Interface file for synchronous process `paramadd' */
404159Sgblack@eecs.umich.edu
414159Sgblack@eecs.umich.edu#include "common.h"
424159Sgblack@eecs.umich.edu
434159Sgblack@eecs.umich.eduSC_MODULE( paramadd )
445124Sgblack@eecs.umich.edu{
455124Sgblack@eecs.umich.edu  SC_HAS_PROCESS( paramadd );
4610299Salexandru.dutu@amd.com
475124Sgblack@eecs.umich.edu  sc_in_clk clk;
485237Sgblack@eecs.umich.edu
494159Sgblack@eecs.umich.edu  // Inputs
506216Snate@binkert.org  const sc_signal<bool>& reset;
518953Sgblack@eecs.umich.edu  const signal_bool_vector& a;
5210299Salexandru.dutu@amd.com  const signal_bool_vector& b;
5310299Salexandru.dutu@amd.com  const sc_signal<bool>& cin;
5410299Salexandru.dutu@amd.com  const sc_signal<bool>& ready;
554159Sgblack@eecs.umich.edu  // Outputs
565124Sgblack@eecs.umich.edu  signal_bool_vector& sum;
575124Sgblack@eecs.umich.edu  sc_signal<bool>& co;
584159Sgblack@eecs.umich.edu  sc_signal<bool>& done;
594159Sgblack@eecs.umich.edu  // Parameters
608953Sgblack@eecs.umich.edu  const int data_width;
618953Sgblack@eecs.umich.edu
628953Sgblack@eecs.umich.edu  // Constructor
638953Sgblack@eecs.umich.edu  paramadd(sc_module_name NAME,
648953Sgblack@eecs.umich.edu	 sc_clock& TICK,
658953Sgblack@eecs.umich.edu	 const sc_signal<bool>& RESET,
668953Sgblack@eecs.umich.edu	 const signal_bool_vector& A,
675237Sgblack@eecs.umich.edu	 const signal_bool_vector& B,
685237Sgblack@eecs.umich.edu	 const sc_signal<bool>& CIN,
695237Sgblack@eecs.umich.edu	 const sc_signal<bool>& READY,
705237Sgblack@eecs.umich.edu	 signal_bool_vector& SUM,
715237Sgblack@eecs.umich.edu	 sc_signal<bool>& CO,
725237Sgblack@eecs.umich.edu	 sc_signal<bool>& DONE,
735237Sgblack@eecs.umich.edu	 const int DATA_WIDTH = 8)
745237Sgblack@eecs.umich.edu    : reset(RESET), a(A),
755237Sgblack@eecs.umich.edu      b(B), cin(CIN), ready(READY),
765237Sgblack@eecs.umich.edu      sum(SUM), co(CO), done(DONE),
775237Sgblack@eecs.umich.edu      data_width(DATA_WIDTH)
785237Sgblack@eecs.umich.edu  {
795237Sgblack@eecs.umich.edu    clk(TICK);
804159Sgblack@eecs.umich.edu	SC_CTHREAD( entry, clk.pos() );
8110299Salexandru.dutu@amd.com    reset_signal_is(reset,false);
8210299Salexandru.dutu@amd.com  }
8310299Salexandru.dutu@amd.com
8410299Salexandru.dutu@amd.com  // Process functionality in member function below
8510299Salexandru.dutu@amd.com  void entry();
8610299Salexandru.dutu@amd.com};
8710299Salexandru.dutu@amd.com