OR.h revision 10448
19793Sakash.bagdia@arm.com/* Copyright (c) 2012 Massachusetts Institute of Technology
29518SAndreas.Sandberg@ARM.com *
39518SAndreas.Sandberg@ARM.com * Permission is hereby granted, free of charge, to any person obtaining a copy
49518SAndreas.Sandberg@ARM.com * of this software and associated documentation files (the "Software"), to deal
59518SAndreas.Sandberg@ARM.com * in the Software without restriction, including without limitation the rights
69518SAndreas.Sandberg@ARM.com * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
79518SAndreas.Sandberg@ARM.com * copies of the Software, and to permit persons to whom the Software is
89518SAndreas.Sandberg@ARM.com * furnished to do so, subject to the following conditions:
99518SAndreas.Sandberg@ARM.com *
109518SAndreas.Sandberg@ARM.com * The above copyright notice and this permission notice shall be included in
119518SAndreas.Sandberg@ARM.com * all copies or substantial portions of the Software.
129518SAndreas.Sandberg@ARM.com *
135347Ssaidi@eecs.umich.edu * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
147534Ssteve.reinhardt@amd.com * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
153395Shsul@eecs.umich.edu * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
163395Shsul@eecs.umich.edu * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
173395Shsul@eecs.umich.edu * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
183395Shsul@eecs.umich.edu * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
193395Shsul@eecs.umich.edu * THE SOFTWARE.
203395Shsul@eecs.umich.edu */
213395Shsul@eecs.umich.edu
223395Shsul@eecs.umich.edu#ifndef __DSENT_MODEL_ELECTRICAL_OR_H__
233395Shsul@eecs.umich.edu#define __DSENT_MODEL_ELECTRICAL_OR_H__
243395Shsul@eecs.umich.edu
253395Shsul@eecs.umich.edu#include "util/CommonType.h"
263395Shsul@eecs.umich.edu#include "model/ElectricalModel.h"
273395Shsul@eecs.umich.edu
283395Shsul@eecs.umich.edunamespace DSENT
293395Shsul@eecs.umich.edu{
303395Shsul@eecs.umich.edu    /**
313395Shsul@eecs.umich.edu     * \brief A class that implements a n-input OR gate
323395Shsul@eecs.umich.edu     */
333395Shsul@eecs.umich.edu    class OR : public ElectricalModel
343395Shsul@eecs.umich.edu    {
353395Shsul@eecs.umich.edu        public:
363395Shsul@eecs.umich.edu            OR(const String& instance_name_, const TechModel* tech_model_);
373395Shsul@eecs.umich.edu            virtual ~OR();
383395Shsul@eecs.umich.edu
393395Shsul@eecs.umich.edu        public:
403395Shsul@eecs.umich.edu            // Set a list of properties' name needed to construct model
413395Shsul@eecs.umich.edu            void initParameters();
429457Svilanova@ac.upc.edu            // Set a list of properties' name needed to construct model
433395Shsul@eecs.umich.edu            void initProperties();
443509Shsul@eecs.umich.edu
456654Snate@binkert.org            // Clone and return a new instance
469520SAndreas.Sandberg@ARM.com            virtual OR* clone() const;
479665Sandreas.hansson@arm.com
489520SAndreas.Sandberg@ARM.com        protected:
493395Shsul@eecs.umich.edu            // Build the model
506654Snate@binkert.org            virtual void constructModel();
513395Shsul@eecs.umich.edu            virtual void propagateTransitionInfo();
526654Snate@binkert.org
536654Snate@binkert.org    }; // class OR
546654Snate@binkert.org} // namespace DSENT
553395Shsul@eecs.umich.edu
569139Snilay@cs.wisc.edu#endif // __DSENT_MODEL_ELECTRICAL_OR_H__
579520SAndreas.Sandberg@ARM.com
589520SAndreas.Sandberg@ARM.com