gem5 v24.0.0.0
Loading...
Searching...
No Matches
sc_fxtype_params.hh
Go to the documentation of this file.
1/*****************************************************************************
2
3 Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
4 more contributor license agreements. See the NOTICE file distributed
5 with this work for additional information regarding copyright ownership.
6 Accellera licenses this file to you under the Apache License, Version 2.0
7 (the "License"); you may not use this file except in compliance with the
8 License. You may obtain a copy of the License at
9
10 http://www.apache.org/licenses/LICENSE-2.0
11
12 Unless required by applicable law or agreed to in writing, software
13 distributed under the License is distributed on an "AS IS" BASIS,
14 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
15 implied. See the License for the specific language governing
16 permissions and limitations under the License.
17
18 *****************************************************************************/
19
20/*****************************************************************************
21
22 sc_fxtype_params.h -
23
24 Original Author: Martin Janssen, Synopsys, Inc.
25
26 *****************************************************************************/
27
28/*****************************************************************************
29
30 MODIFICATION LOG - modifiers, enter your name, affiliation, date and
31 changes you are making here.
32
33 Name, Affiliation, Date:
34 Description of Modification:
35
36 *****************************************************************************/
37
38// $Log: sc_fxtype_params.h,v $
39// Revision 1.2 2011/08/24 22:05:43 acg
40// Torsten Maehne: initialization changes to remove warnings.
41//
42// Revision 1.1.1.1 2006/12/15 20:20:04 acg
43// SystemC 2.3
44//
45// Revision 1.3 2006/01/13 18:53:58 acg
46// Andy Goodrich: added $Log command so that CVS comments are reproduced in
47// the source.
48//
49
50#ifndef __SYSTEMC_EXT_DT_FX_SC_FXTYPE_PARAMS_HH__
51#define __SYSTEMC_EXT_DT_FX_SC_FXTYPE_PARAMS_HH__
52
53#include <iostream>
54
55#include "sc_context.hh"
56#include "sc_fxdefs.hh"
57
58namespace sc_dt
59{
60
61// classes defined in this module
62class sc_fxtype_params;
63
64// ----------------------------------------------------------------------------
65// CLASS : sc_fxtype_params
66//
67// Fixed-point type parameters class.
68// ----------------------------------------------------------------------------
69
71{
72 public:
74 sc_fxtype_params(int, int);
76 sc_fxtype_params(int, int, sc_q_mode, sc_o_mode, int=0);
78 sc_fxtype_params(const sc_fxtype_params &, int, int);
81
83
84 friend bool operator == (const sc_fxtype_params &,
85 const sc_fxtype_params &);
86 friend bool operator != (const sc_fxtype_params &,
87 const sc_fxtype_params &);
88
89 int wl() const;
90 void wl(int);
91
92 int iwl() const;
93 void iwl(int);
94
95 sc_q_mode q_mode() const;
96 void q_mode(sc_q_mode);
97
98 sc_o_mode o_mode() const;
99 void o_mode(sc_o_mode);
100
101 int n_bits() const;
102 void n_bits(int);
103
104 const std::string to_string() const;
105
106 void print(::std::ostream & =::std::cout) const;
107 void dump(::std::ostream & =::std::cout) const;
108
109 private:
110 int m_wl;
111 int m_iwl;
115};
116
117} // namespace sc_dt
118
119// ----------------------------------------------------------------------------
120// TYPEDEF : sc_fxtype_context
121//
122// Context type for the fixed-point type parameters.
123// ----------------------------------------------------------------------------
124
125// extern template instantiations
126namespace sc_dt
127{
128
129extern template class sc_global<sc_fxtype_params>;
130extern template class sc_context<sc_fxtype_params>;
132
133
134// IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
135
137 m_wl(), m_iwl(), m_q_mode(), m_o_mode(), m_n_bits()
138{
140}
141
142inline sc_fxtype_params::sc_fxtype_params(int wl_, int iwl_) :
143 m_wl(), m_iwl(), m_q_mode(), m_o_mode(), m_n_bits()
144{
146
147 SC_CHECK_WL_(wl_);
148 m_wl = wl_;
149 m_iwl = iwl_;
150}
151
153 sc_q_mode q_mode_, sc_o_mode o_mode_, int n_bits_) :
154 m_wl(), m_iwl(), m_q_mode(), m_o_mode(), m_n_bits()
155{
157
158 SC_CHECK_N_BITS_(n_bits_);
159 m_q_mode = q_mode_;
160 m_o_mode = o_mode_;
161 m_n_bits = n_bits_;
162}
163
165 int wl_, int iwl_, sc_q_mode q_mode_, sc_o_mode o_mode_, int n_bits_) :
166 m_wl(), m_iwl(), m_q_mode(), m_o_mode(), m_n_bits()
167{
168 SC_CHECK_WL_(wl_);
169 SC_CHECK_N_BITS_(n_bits_);
170 m_wl = wl_;
171 m_iwl = iwl_;
172 m_q_mode = q_mode_;
173 m_o_mode = o_mode_;
174 m_n_bits = n_bits_;
175}
176
178 m_wl(a.m_wl), m_iwl(a.m_iwl), m_q_mode(a.m_q_mode),
179 m_o_mode(a.m_o_mode), m_n_bits(a.m_n_bits)
180{}
181
183 const sc_fxtype_params &a, int wl_, int iwl_) :
184 m_wl(wl_), m_iwl(iwl_), m_q_mode(a.m_q_mode), m_o_mode(a.m_o_mode),
185 m_n_bits(a.m_n_bits)
186{}
187
189 const sc_fxtype_params &a, sc_q_mode q_mode_, sc_o_mode o_mode_,
190 int n_bits_) :
191 m_wl(a.m_wl), m_iwl(a.m_iwl), m_q_mode(q_mode_), m_o_mode(o_mode_),
192 m_n_bits(n_bits_)
193{}
194
200
201inline sc_fxtype_params &
203{
204 if (&a != this) {
205 m_wl = a.m_wl;
206 m_iwl = a.m_iwl;
207 m_q_mode = a.m_q_mode;
208 m_o_mode = a.m_o_mode;
209 m_n_bits = a.m_n_bits;
210 }
211 return *this;
212}
213
214inline bool
216{
217 return (a.m_wl == b.m_wl && a.m_iwl == b.m_iwl &&
218 a.m_q_mode == b.m_q_mode && a.m_o_mode == b.m_o_mode &&
219 a.m_n_bits == b.m_n_bits);
220}
221
222inline bool
224{
225 return (a.m_wl != b.m_wl || a.m_iwl != b.m_iwl ||
226 a.m_q_mode != b.m_q_mode || a.m_o_mode != b.m_o_mode ||
227 a.m_n_bits != b.m_n_bits );
228}
229
230inline int sc_fxtype_params::wl() const { return m_wl; }
231inline void
233{
234 SC_CHECK_WL_(wl_);
235 m_wl = wl_;
236}
237
238inline int sc_fxtype_params::iwl() const { return m_iwl; }
239inline void sc_fxtype_params::iwl(int iwl_) { m_iwl = iwl_; }
240
241
243inline void sc_fxtype_params::q_mode(sc_q_mode q_mode_) { m_q_mode = q_mode_; }
244
246inline void sc_fxtype_params::o_mode(sc_o_mode o_mode_) { m_o_mode = o_mode_; }
247
248inline int sc_fxtype_params::n_bits() const { return m_n_bits; }
249inline void
251{
252 SC_CHECK_N_BITS_(n_bits_);
253 m_n_bits = n_bits_;
254}
255
256inline ::std::ostream &
257operator << (::std::ostream &os, const sc_fxtype_params &a)
258{
259 a.print(os);
260 return os;
261}
262
263} // namespace sc_dt
264
265#endif // __SYSTEMC_EXT_DT_FX_SC_FXTYPE_PARAM_HH__
static const T & default_value()
const std::string to_string() const
void dump(::std::ostream &=::std::cout) const
friend bool operator==(const sc_fxtype_params &, const sc_fxtype_params &)
sc_fxtype_params & operator=(const sc_fxtype_params &)
friend bool operator!=(const sc_fxtype_params &, const sc_fxtype_params &)
void print(::std::ostream &=::std::cout) const
SwitchingFiber b
SwitchingFiber a
const int SC_DEFAULT_WL_
Definition sc_fxdefs.hh:189
const sc_q_mode SC_DEFAULT_Q_MODE_
Definition sc_fxdefs.hh:191
const int SC_DEFAULT_IWL_
Definition sc_fxdefs.hh:190
bool operator==(const sc_signed &u, const sc_int_base &v)
Definition sc_signed.cc:879
sc_context< sc_fxtype_params > sc_fxtype_context
const sc_o_mode SC_DEFAULT_O_MODE_
Definition sc_fxdefs.hh:192
bool operator!=(const sc_signed &u, const sc_int_base &v)
Definition sc_signed.cc:892
sc_signed operator<<(const sc_signed &u, const sc_int_base &v)
Definition sc_signed.cc:853
const int SC_DEFAULT_N_BITS_
Definition sc_fxdefs.hh:193
#define SC_CHECK_WL_(wl)
Definition sc_fxdefs.hh:253
#define SC_CHECK_N_BITS_(n_bits)
Definition sc_fxdefs.hh:255

Generated on Tue Jun 18 2024 16:24:06 for gem5 by doxygen 1.11.0