display.cpp revision 12855
19793Sakash.bagdia@arm.com/*****************************************************************************
210249Sstephan.diestelhorst@arm.com
310000Sclt67@cornell.edu  Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
49793Sakash.bagdia@arm.com  more contributor license agreements.  See the NOTICE file distributed
59793Sakash.bagdia@arm.com  with this work for additional information regarding copyright ownership.
69793Sakash.bagdia@arm.com  Accellera licenses this file to you under the Apache License, Version 2.0
79793Sakash.bagdia@arm.com  (the "License"); you may not use this file except in compliance with the
89793Sakash.bagdia@arm.com  License.  You may obtain a copy of the License at
99793Sakash.bagdia@arm.com
109793Sakash.bagdia@arm.com    http://www.apache.org/licenses/LICENSE-2.0
119793Sakash.bagdia@arm.com
129793Sakash.bagdia@arm.com  Unless required by applicable law or agreed to in writing, software
139793Sakash.bagdia@arm.com  distributed under the License is distributed on an "AS IS" BASIS,
149793Sakash.bagdia@arm.com  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
159793Sakash.bagdia@arm.com  implied.  See the License for the specific language governing
169793Sakash.bagdia@arm.com  permissions and limitations under the License.
179793Sakash.bagdia@arm.com
189793Sakash.bagdia@arm.com *****************************************************************************/
199793Sakash.bagdia@arm.com
209793Sakash.bagdia@arm.com/*****************************************************************************
219793Sakash.bagdia@arm.com
229793Sakash.bagdia@arm.com  display.cpp --
239793Sakash.bagdia@arm.com
249793Sakash.bagdia@arm.com  Original Author: Martin Janssen, Synopsys, Inc., 2002-02-15
259793Sakash.bagdia@arm.com
269793Sakash.bagdia@arm.com *****************************************************************************/
279793Sakash.bagdia@arm.com
289793Sakash.bagdia@arm.com/*****************************************************************************
299793Sakash.bagdia@arm.com
309793Sakash.bagdia@arm.com  MODIFICATION LOG - modifiers, enter your name, affiliation, date and
319793Sakash.bagdia@arm.com  changes you are making here.
329793Sakash.bagdia@arm.com
339793Sakash.bagdia@arm.com      Name, Affiliation, Date:
349793Sakash.bagdia@arm.com  Description of Modification:
359793Sakash.bagdia@arm.com
369793Sakash.bagdia@arm.com *****************************************************************************/
379793Sakash.bagdia@arm.com
389793Sakash.bagdia@arm.com#include "common.h"
399793Sakash.bagdia@arm.com#include "add_chain.h"
4010000Sclt67@cornell.edu
4110249Sstephan.diestelhorst@arm.com/******************************************************************************/
429793Sakash.bagdia@arm.com/***************************    Output Display Function  **********************/
439793Sakash.bagdia@arm.com/******************************************************************************/
449793Sakash.bagdia@arm.com
459793Sakash.bagdia@arm.comSC_MODULE( DISPLAY )
469793Sakash.bagdia@arm.com{
479793Sakash.bagdia@arm.com    SC_HAS_PROCESS( DISPLAY );
489793Sakash.bagdia@arm.com
499793Sakash.bagdia@arm.com  /*** Input and Output Ports ***/
509793Sakash.bagdia@arm.com  const sc_signal<bool>&       	ready;	// Input
519793Sakash.bagdia@arm.com  const signal_bool_vector8&   	data;	// Input
5210000Sclt67@cornell.edu  const signal_bool_vector4&   	sum;	// Input
5310000Sclt67@cornell.edu
549793Sakash.bagdia@arm.com  /*** Constructor ***/
559793Sakash.bagdia@arm.com  DISPLAY ( 	sc_module_name               	NAME,
569793Sakash.bagdia@arm.com          	const sc_signal<bool>&    	READY,
579793Sakash.bagdia@arm.com               	const signal_bool_vector8& 	DATA,
589793Sakash.bagdia@arm.com               	const signal_bool_vector4& 	SUM   )
599793Sakash.bagdia@arm.com
609793Sakash.bagdia@arm.com    : ready (READY),
619793Sakash.bagdia@arm.com      data  (DATA),	// 8 bits
629793Sakash.bagdia@arm.com      sum   (SUM)
639793Sakash.bagdia@arm.com
649827Sakash.bagdia@arm.com    {
6511009Sandreas.sandberg@arm.com        SC_METHOD( entry );
669793Sakash.bagdia@arm.com	sensitive << ready;
679793Sakash.bagdia@arm.com	sensitive << data;
689793Sakash.bagdia@arm.com	sensitive << sum;
699827Sakash.bagdia@arm.com    }
709827Sakash.bagdia@arm.com
719793Sakash.bagdia@arm.com  /*** Call to Process Functionality ***/
729793Sakash.bagdia@arm.com  void entry();
739793Sakash.bagdia@arm.com
749793Sakash.bagdia@arm.com};
759793Sakash.bagdia@arm.com
7610021Sandreas.hansson@arm.comvoid
7710021Sandreas.hansson@arm.comDISPLAY::entry()
7810021Sandreas.hansson@arm.com{
7910021Sandreas.hansson@arm.com//  DISPLAY NUMBER OF 1'S IN DATA AT NEGEDGE ready
8010021Sandreas.hansson@arm.com
8110021Sandreas.hansson@arm.com  if( ready.posedge() ) {
8210021Sandreas.hansson@arm.com	cout << "Sum of "
839793Sakash.bagdia@arm.com	     << data.read()
849793Sakash.bagdia@arm.com             << " is  " << sum.read().to_uint()
859793Sakash.bagdia@arm.com             << endl;
869793Sakash.bagdia@arm.com     }
879793Sakash.bagdia@arm.com}
889793Sakash.bagdia@arm.com
899793Sakash.bagdia@arm.comvoid
909793Sakash.bagdia@arm.comf_DISPLAY (     const char*                NAME,
919793Sakash.bagdia@arm.com                const sc_signal<bool>&          READY,
929827Sakash.bagdia@arm.com                const signal_bool_vector8&       DATA,
939827Sakash.bagdia@arm.com                const signal_bool_vector4&       SUM   )
949827Sakash.bagdia@arm.com
959827Sakash.bagdia@arm.com{
969827Sakash.bagdia@arm.com        new DISPLAY(NAME, READY, DATA, SUM);
979793Sakash.bagdia@arm.com}
989793Sakash.bagdia@arm.com
999793Sakash.bagdia@arm.com