display.h revision 12855:588919e0e4aa
110458Sandreas.hansson@arm.com/*****************************************************************************
210458Sandreas.hansson@arm.com
310458Sandreas.hansson@arm.com  Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
410458Sandreas.hansson@arm.com  more contributor license agreements.  See the NOTICE file distributed
510458Sandreas.hansson@arm.com  with this work for additional information regarding copyright ownership.
610458Sandreas.hansson@arm.com  Accellera licenses this file to you under the Apache License, Version 2.0
710458Sandreas.hansson@arm.com  (the "License"); you may not use this file except in compliance with the
810458Sandreas.hansson@arm.com  License.  You may obtain a copy of the License at
910458Sandreas.hansson@arm.com
1010458Sandreas.hansson@arm.com    http://www.apache.org/licenses/LICENSE-2.0
1110458Sandreas.hansson@arm.com
1210458Sandreas.hansson@arm.com  Unless required by applicable law or agreed to in writing, software
1310458Sandreas.hansson@arm.com  distributed under the License is distributed on an "AS IS" BASIS,
1410458Sandreas.hansson@arm.com  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
1510458Sandreas.hansson@arm.com  implied.  See the License for the specific language governing
1610458Sandreas.hansson@arm.com  permissions and limitations under the License.
1710458Sandreas.hansson@arm.com
1810458Sandreas.hansson@arm.com *****************************************************************************/
1910458Sandreas.hansson@arm.com
2010458Sandreas.hansson@arm.com/*****************************************************************************
2110458Sandreas.hansson@arm.com
2210458Sandreas.hansson@arm.com  display.h --
2310458Sandreas.hansson@arm.com
2410458Sandreas.hansson@arm.com  Original Author: Martin Janssen, Synopsys, Inc., 2002-02-15
2510458Sandreas.hansson@arm.com
2610458Sandreas.hansson@arm.com *****************************************************************************/
2710458Sandreas.hansson@arm.com
2810458Sandreas.hansson@arm.com/*****************************************************************************
2910458Sandreas.hansson@arm.com
3010458Sandreas.hansson@arm.com  MODIFICATION LOG - modifiers, enter your name, affiliation, date and
3110458Sandreas.hansson@arm.com  changes you are making here.
3210458Sandreas.hansson@arm.com
3310458Sandreas.hansson@arm.com      Name, Affiliation, Date:
3410458Sandreas.hansson@arm.com  Description of Modification:
3510458Sandreas.hansson@arm.com
3610458Sandreas.hansson@arm.com *****************************************************************************/
3710458Sandreas.hansson@arm.com
3810458Sandreas.hansson@arm.com#include "define.h"
3910458Sandreas.hansson@arm.com
4010458Sandreas.hansson@arm.com
4110458Sandreas.hansson@arm.com/******************************************************************************/
4210458Sandreas.hansson@arm.com/***************************    Output Display Function  **********************/
4310458Sandreas.hansson@arm.com/******************************************************************************/
4410458Sandreas.hansson@arm.com
4510458Sandreas.hansson@arm.comSC_MODULE( DISPLAY )
4610458Sandreas.hansson@arm.com{
4710458Sandreas.hansson@arm.com    SC_HAS_PROCESS( DISPLAY );
4810458Sandreas.hansson@arm.com
4910458Sandreas.hansson@arm.com  /*** Input and Output Ports ***/
5010458Sandreas.hansson@arm.com  const sc_signal<bool>&       	ready;	// Input
5110458Sandreas.hansson@arm.com  const signal_bool_vector8&   	data;	// Input
5210458Sandreas.hansson@arm.com  const signal_bool_vector4&   	sum;	// Input
5310458Sandreas.hansson@arm.com
5410458Sandreas.hansson@arm.com  /*** Constructor ***/
5510458Sandreas.hansson@arm.com  DISPLAY ( 	sc_module_name               	NAME,
5610458Sandreas.hansson@arm.com          	const sc_signal<bool>&    	READY,
5710458Sandreas.hansson@arm.com               	const signal_bool_vector8& 	DATA,
5810458Sandreas.hansson@arm.com               	const signal_bool_vector4& 	SUM   )
5910458Sandreas.hansson@arm.com
6010458Sandreas.hansson@arm.com    : ready (READY),
6110458Sandreas.hansson@arm.com      data  (DATA),	// 8 bits
6210458Sandreas.hansson@arm.com      sum   (SUM)
6310458Sandreas.hansson@arm.com
6410458Sandreas.hansson@arm.com    {
6510458Sandreas.hansson@arm.com        SC_METHOD( entry );
6610458Sandreas.hansson@arm.com	sensitive << ready;
6710458Sandreas.hansson@arm.com	sensitive << data;
6810458Sandreas.hansson@arm.com	sensitive << sum;
6910458Sandreas.hansson@arm.com    }
7010458Sandreas.hansson@arm.com
7110458Sandreas.hansson@arm.com  /*** Call to Process Functionality ***/
7210458Sandreas.hansson@arm.com  void entry();
7310458Sandreas.hansson@arm.com
7410458Sandreas.hansson@arm.com};
7510458Sandreas.hansson@arm.com
7610458Sandreas.hansson@arm.comvoid
7710458Sandreas.hansson@arm.comDISPLAY::entry()
7810458Sandreas.hansson@arm.com{
7910458Sandreas.hansson@arm.com//  DISPLAY NUMBER OF 1'S IN DATA AT NEGEDGE ready
8010458Sandreas.hansson@arm.com
8110458Sandreas.hansson@arm.com  if( ready.posedge() ) {
8210458Sandreas.hansson@arm.com	cout << "Sum of "
8310458Sandreas.hansson@arm.com	     << data.read()
8410458Sandreas.hansson@arm.com             << " is  " << sum.read().to_uint()
8510458Sandreas.hansson@arm.com             << endl;
8610458Sandreas.hansson@arm.com     }
8710458Sandreas.hansson@arm.com}
8810458Sandreas.hansson@arm.com