stim.h revision 12855
13101Sstever@eecs.umich.edu/*****************************************************************************
27534Ssteve.reinhardt@amd.com
33101Sstever@eecs.umich.edu  Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
43101Sstever@eecs.umich.edu  more contributor license agreements.  See the NOTICE file distributed
53101Sstever@eecs.umich.edu  with this work for additional information regarding copyright ownership.
63101Sstever@eecs.umich.edu  Accellera licenses this file to you under the Apache License, Version 2.0
73101Sstever@eecs.umich.edu  (the "License"); you may not use this file except in compliance with the
83101Sstever@eecs.umich.edu  License.  You may obtain a copy of the License at
93101Sstever@eecs.umich.edu
103101Sstever@eecs.umich.edu    http://www.apache.org/licenses/LICENSE-2.0
113101Sstever@eecs.umich.edu
123101Sstever@eecs.umich.edu  Unless required by applicable law or agreed to in writing, software
133101Sstever@eecs.umich.edu  distributed under the License is distributed on an "AS IS" BASIS,
143101Sstever@eecs.umich.edu  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
153101Sstever@eecs.umich.edu  implied.  See the License for the specific language governing
163101Sstever@eecs.umich.edu  permissions and limitations under the License.
173101Sstever@eecs.umich.edu
183101Sstever@eecs.umich.edu *****************************************************************************/
193101Sstever@eecs.umich.edu
203101Sstever@eecs.umich.edu/*****************************************************************************
213101Sstever@eecs.umich.edu
223101Sstever@eecs.umich.edu  stim.h --
233101Sstever@eecs.umich.edu
243101Sstever@eecs.umich.edu  Original Author: Martin Janssen, Synopsys, Inc., 2002-02-15
253101Sstever@eecs.umich.edu
263101Sstever@eecs.umich.edu *****************************************************************************/
273101Sstever@eecs.umich.edu
283101Sstever@eecs.umich.edu/*****************************************************************************
293101Sstever@eecs.umich.edu
307778Sgblack@eecs.umich.edu  MODIFICATION LOG - modifiers, enter your name, affiliation, date and
313101Sstever@eecs.umich.edu  changes you are making here.
323101Sstever@eecs.umich.edu
333101Sstever@eecs.umich.edu      Name, Affiliation, Date:
343101Sstever@eecs.umich.edu  Description of Modification:
353101Sstever@eecs.umich.edu
363101Sstever@eecs.umich.edu *****************************************************************************/
373101Sstever@eecs.umich.edu
383101Sstever@eecs.umich.edu/* Filename stim.h */
393101Sstever@eecs.umich.edu/* This is the interface file for synchronous process `stim' */
403101Sstever@eecs.umich.edu
413101Sstever@eecs.umich.edu#include "common.h"
423101Sstever@eecs.umich.edu
433101Sstever@eecs.umich.eduSC_MODULE( stim )
443101Sstever@eecs.umich.edu{
453101Sstever@eecs.umich.edu  SC_HAS_PROCESS( stim );
463101Sstever@eecs.umich.edu
473101Sstever@eecs.umich.edu  sc_in_clk clk;
483101Sstever@eecs.umich.edu
493885Sbinkertn@umich.edu  // Inputs
503885Sbinkertn@umich.edu  const sc_signal<bool>& done;
514762Snate@binkert.org  // Outputs
523885Sbinkertn@umich.edu  sc_signal<bool>& reset;
533885Sbinkertn@umich.edu  signal_bool_vector& a;
547528Ssteve.reinhardt@amd.com  signal_bool_vector& b;
553885Sbinkertn@umich.edu  sc_signal<bool>& cin;
564380Sbinkertn@umich.edu  sc_signal<bool>& ready;
574167Sbinkertn@umich.edu  // Parameters
583102Sstever@eecs.umich.edu  const int data_width;
593101Sstever@eecs.umich.edu
604762Snate@binkert.org  // Constructor
614762Snate@binkert.org  stim (sc_module_name NAME,
624762Snate@binkert.org	sc_clock& TICK,
634762Snate@binkert.org	const sc_signal<bool>& DONE,
644762Snate@binkert.org	sc_signal<bool>& RESET,
654762Snate@binkert.org	signal_bool_vector& A,
664762Snate@binkert.org	signal_bool_vector& B,
674762Snate@binkert.org	sc_signal<bool>& CIN,
684762Snate@binkert.org	sc_signal<bool>& READY,
695033Smilesck@eecs.umich.edu        const int DATA_WIDTH = 8)
705033Smilesck@eecs.umich.edu    : done(DONE), reset(RESET),
715033Smilesck@eecs.umich.edu      a(A),b(B), cin(CIN),
725033Smilesck@eecs.umich.edu      ready(READY),
735033Smilesck@eecs.umich.edu      data_width(DATA_WIDTH)
745033Smilesck@eecs.umich.edu  {
755033Smilesck@eecs.umich.edu    clk(TICK);
765033Smilesck@eecs.umich.edu	SC_CTHREAD( entry, clk.neg() );
775033Smilesck@eecs.umich.edu  }
785033Smilesck@eecs.umich.edu
793101Sstever@eecs.umich.edu  // Process functionality in member function below
803101Sstever@eecs.umich.edu  void entry();
813101Sstever@eecs.umich.edu};
825033Smilesck@eecs.umich.edu