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