sc_module.cc (12951:9db2476bea4e) sc_module.cc (12952:94fca7e8120b)
1/*
2 * Copyright 2018 Google, Inc.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are
6 * met: redistributions of source code must retain the above copyright
7 * notice, this list of conditions and the following disclaimer;
8 * redistributions in binary form must reproduce the above copyright
9 * notice, this list of conditions and the following disclaimer in the
10 * documentation and/or other materials provided with the distribution;
11 * neither the name of the copyright holders nor the names of its
12 * contributors may be used to endorse or promote products derived from
13 * this software without specific prior written permission.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
16 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
17 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
18 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
19 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
20 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
21 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 *
27 * Authors: Gabe Black
28 */
29
30#include <memory>
31#include <vector>
32
33#include "base/logging.hh"
34#include "systemc/core/module.hh"
1/*
2 * Copyright 2018 Google, Inc.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are
6 * met: redistributions of source code must retain the above copyright
7 * notice, this list of conditions and the following disclaimer;
8 * redistributions in binary form must reproduce the above copyright
9 * notice, this list of conditions and the following disclaimer in the
10 * documentation and/or other materials provided with the distribution;
11 * neither the name of the copyright holders nor the names of its
12 * contributors may be used to endorse or promote products derived from
13 * this software without specific prior written permission.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
16 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
17 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
18 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
19 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
20 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
21 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 *
27 * Authors: Gabe Black
28 */
29
30#include <memory>
31#include <vector>
32
33#include "base/logging.hh"
34#include "systemc/core/module.hh"
35#include "systemc/core/process.hh"
35#include "systemc/ext/core/sc_module.hh"
36#include "systemc/ext/core/sc_module_name.hh"
37
36#include "systemc/ext/core/sc_module.hh"
37#include "systemc/ext/core/sc_module_name.hh"
38
39namespace sc_gem5
40{
41
42Process *
43newMethodProcess(const char *name, ProcessFuncWrapper *func)
44{
45 return new Method(name, func);
46}
47
48Process *
49newThreadProcess(const char *name, ProcessFuncWrapper *func)
50{
51 return new Thread(name, func);
52}
53
54Process *
55newCThreadProcess(const char *name, ProcessFuncWrapper *func)
56{
57 return new CThread(name, func);
58}
59
60} // namespace sc_gem5
61
38namespace sc_core
39{
40
41sc_bind_proxy::sc_bind_proxy(const sc_interface &_interface) :
42 _interface(&_interface), _port(nullptr)
43{}
44
45sc_bind_proxy::sc_bind_proxy(const sc_port_base &_port) :
46 _interface(nullptr), _port(&_port)
47{}
48
49const sc_bind_proxy SC_BIND_PROXY_NUL(*(const sc_port_base *)nullptr);
50
51sc_module::~sc_module() {}
52
53const sc_bind_proxy SC_BIND_PROXY_NIL(*(const sc_port_base *)nullptr);
54
55void
56sc_module::operator () (const sc_bind_proxy &p001,
57 const sc_bind_proxy &p002,
58 const sc_bind_proxy &p003,
59 const sc_bind_proxy &p004,
60 const sc_bind_proxy &p005,
61 const sc_bind_proxy &p006,
62 const sc_bind_proxy &p007,
63 const sc_bind_proxy &p008,
64 const sc_bind_proxy &p009,
65 const sc_bind_proxy &p010,
66 const sc_bind_proxy &p011,
67 const sc_bind_proxy &p012,
68 const sc_bind_proxy &p013,
69 const sc_bind_proxy &p014,
70 const sc_bind_proxy &p015,
71 const sc_bind_proxy &p016,
72 const sc_bind_proxy &p017,
73 const sc_bind_proxy &p018,
74 const sc_bind_proxy &p019,
75 const sc_bind_proxy &p020,
76 const sc_bind_proxy &p021,
77 const sc_bind_proxy &p022,
78 const sc_bind_proxy &p023,
79 const sc_bind_proxy &p024,
80 const sc_bind_proxy &p025,
81 const sc_bind_proxy &p026,
82 const sc_bind_proxy &p027,
83 const sc_bind_proxy &p028,
84 const sc_bind_proxy &p029,
85 const sc_bind_proxy &p030,
86 const sc_bind_proxy &p031,
87 const sc_bind_proxy &p032,
88 const sc_bind_proxy &p033,
89 const sc_bind_proxy &p034,
90 const sc_bind_proxy &p035,
91 const sc_bind_proxy &p036,
92 const sc_bind_proxy &p037,
93 const sc_bind_proxy &p038,
94 const sc_bind_proxy &p039,
95 const sc_bind_proxy &p040,
96 const sc_bind_proxy &p041,
97 const sc_bind_proxy &p042,
98 const sc_bind_proxy &p043,
99 const sc_bind_proxy &p044,
100 const sc_bind_proxy &p045,
101 const sc_bind_proxy &p046,
102 const sc_bind_proxy &p047,
103 const sc_bind_proxy &p048,
104 const sc_bind_proxy &p049,
105 const sc_bind_proxy &p050,
106 const sc_bind_proxy &p051,
107 const sc_bind_proxy &p052,
108 const sc_bind_proxy &p053,
109 const sc_bind_proxy &p054,
110 const sc_bind_proxy &p055,
111 const sc_bind_proxy &p056,
112 const sc_bind_proxy &p057,
113 const sc_bind_proxy &p058,
114 const sc_bind_proxy &p059,
115 const sc_bind_proxy &p060,
116 const sc_bind_proxy &p061,
117 const sc_bind_proxy &p062,
118 const sc_bind_proxy &p063,
119 const sc_bind_proxy &p064)
120{
121 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
122}
123
124const std::vector<sc_object *> &
125sc_module::get_child_objects() const
126{
127 return _gem5_module->obj()->get_child_objects();
128}
129
130const std::vector<sc_event *> &
131sc_module::get_child_events() const
132{
133 return _gem5_module->obj()->get_child_events();
134}
135
136sc_module::sc_module() :
62namespace sc_core
63{
64
65sc_bind_proxy::sc_bind_proxy(const sc_interface &_interface) :
66 _interface(&_interface), _port(nullptr)
67{}
68
69sc_bind_proxy::sc_bind_proxy(const sc_port_base &_port) :
70 _interface(nullptr), _port(&_port)
71{}
72
73const sc_bind_proxy SC_BIND_PROXY_NUL(*(const sc_port_base *)nullptr);
74
75sc_module::~sc_module() {}
76
77const sc_bind_proxy SC_BIND_PROXY_NIL(*(const sc_port_base *)nullptr);
78
79void
80sc_module::operator () (const sc_bind_proxy &p001,
81 const sc_bind_proxy &p002,
82 const sc_bind_proxy &p003,
83 const sc_bind_proxy &p004,
84 const sc_bind_proxy &p005,
85 const sc_bind_proxy &p006,
86 const sc_bind_proxy &p007,
87 const sc_bind_proxy &p008,
88 const sc_bind_proxy &p009,
89 const sc_bind_proxy &p010,
90 const sc_bind_proxy &p011,
91 const sc_bind_proxy &p012,
92 const sc_bind_proxy &p013,
93 const sc_bind_proxy &p014,
94 const sc_bind_proxy &p015,
95 const sc_bind_proxy &p016,
96 const sc_bind_proxy &p017,
97 const sc_bind_proxy &p018,
98 const sc_bind_proxy &p019,
99 const sc_bind_proxy &p020,
100 const sc_bind_proxy &p021,
101 const sc_bind_proxy &p022,
102 const sc_bind_proxy &p023,
103 const sc_bind_proxy &p024,
104 const sc_bind_proxy &p025,
105 const sc_bind_proxy &p026,
106 const sc_bind_proxy &p027,
107 const sc_bind_proxy &p028,
108 const sc_bind_proxy &p029,
109 const sc_bind_proxy &p030,
110 const sc_bind_proxy &p031,
111 const sc_bind_proxy &p032,
112 const sc_bind_proxy &p033,
113 const sc_bind_proxy &p034,
114 const sc_bind_proxy &p035,
115 const sc_bind_proxy &p036,
116 const sc_bind_proxy &p037,
117 const sc_bind_proxy &p038,
118 const sc_bind_proxy &p039,
119 const sc_bind_proxy &p040,
120 const sc_bind_proxy &p041,
121 const sc_bind_proxy &p042,
122 const sc_bind_proxy &p043,
123 const sc_bind_proxy &p044,
124 const sc_bind_proxy &p045,
125 const sc_bind_proxy &p046,
126 const sc_bind_proxy &p047,
127 const sc_bind_proxy &p048,
128 const sc_bind_proxy &p049,
129 const sc_bind_proxy &p050,
130 const sc_bind_proxy &p051,
131 const sc_bind_proxy &p052,
132 const sc_bind_proxy &p053,
133 const sc_bind_proxy &p054,
134 const sc_bind_proxy &p055,
135 const sc_bind_proxy &p056,
136 const sc_bind_proxy &p057,
137 const sc_bind_proxy &p058,
138 const sc_bind_proxy &p059,
139 const sc_bind_proxy &p060,
140 const sc_bind_proxy &p061,
141 const sc_bind_proxy &p062,
142 const sc_bind_proxy &p063,
143 const sc_bind_proxy &p064)
144{
145 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
146}
147
148const std::vector<sc_object *> &
149sc_module::get_child_objects() const
150{
151 return _gem5_module->obj()->get_child_objects();
152}
153
154const std::vector<sc_event *> &
155sc_module::get_child_events() const
156{
157 return _gem5_module->obj()->get_child_events();
158}
159
160sc_module::sc_module() :
137 sc_object(sc_gem5::currentModule()->name()),
161 sc_object(sc_gem5::newModule()->name()),
138 _gem5_module(sc_gem5::currentModule())
139{}
140
141sc_module::sc_module(const sc_module_name &) : sc_module() {}
142sc_module::sc_module(const char *_name) : sc_module(sc_module_name(_name)) {}
143sc_module::sc_module(const std::string &_name) :
144 sc_module(sc_module_name(_name.c_str()))
145{}
146
147void
148sc_module::reset_signal_is(const sc_in<bool> &, bool)
149{
150 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
151}
152
153void
154sc_module::reset_signal_is(const sc_inout<bool> &, bool)
155{
156 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
157}
158
159void
160sc_module::reset_signal_is(const sc_out<bool> &, bool)
161{
162 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
163}
164
165void
166sc_module::reset_signal_is(const sc_signal_in_if<bool> &, bool)
167{
168 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
169}
170
171
172void
173sc_module::async_reset_signal_is(const sc_in<bool> &, bool)
174{
175 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
176}
177
178void
179sc_module::async_reset_signal_is(const sc_inout<bool> &, bool)
180{
181 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
182}
183
184void
185sc_module::async_reset_signal_is(const sc_out<bool> &, bool)
186{
187 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
188}
189
190void
191sc_module::async_reset_signal_is(const sc_signal_in_if<bool> &, bool)
192{
193 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
194}
195
196
197void
198sc_module::dont_initialize()
199{
200 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
201}
202
203void
204sc_module::set_stack_size(size_t)
205{
206 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
207}
208
209
210void sc_module::next_trigger() { ::sc_core::next_trigger(); }
211
212void
213sc_module::next_trigger(const sc_event &e)
214{
215 ::sc_core::next_trigger(e);
216}
217
218void
219sc_module::next_trigger(const sc_event_or_list &eol)
220{
221 ::sc_core::next_trigger(eol);
222}
223
224void
225sc_module::next_trigger(const sc_event_and_list &eal)
226{
227 ::sc_core::next_trigger(eal);
228}
229
230void
231sc_module::next_trigger(const sc_time &t)
232{
233 ::sc_core::next_trigger(t);
234}
235
236void
237sc_module::next_trigger(double d, sc_time_unit u)
238{
239 ::sc_core::next_trigger(d, u);
240}
241
242void
243sc_module::next_trigger(const sc_time &t, const sc_event &e)
244{
245 ::sc_core::next_trigger(t, e);
246}
247
248void
249sc_module::next_trigger(double d, sc_time_unit u, const sc_event &e)
250{
251 ::sc_core::next_trigger(d, u, e);
252}
253
254void
255sc_module::next_trigger(const sc_time &t, const sc_event_or_list &eol)
256{
257 ::sc_core::next_trigger(t, eol);
258}
259
260void
261sc_module::next_trigger(double d, sc_time_unit u, const sc_event_or_list &eol)
262{
263 ::sc_core::next_trigger(d, u, eol);
264}
265
266void
267sc_module::next_trigger(const sc_time &t, const sc_event_and_list &eal)
268{
269 ::sc_core::next_trigger(t, eal);
270}
271
272void
273sc_module::next_trigger(double d, sc_time_unit u, const sc_event_and_list &eal)
274{
275 ::sc_core::next_trigger(d, u, eal);
276}
277
278
279bool
280sc_module::timed_out()
281{
282 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
283 return false;
284}
285
286
287void
288sc_module::wait()
289{
290 ::sc_core::wait();
291}
292
293void
294sc_module::wait(int i)
295{
296 ::sc_core::wait(i);
297}
298
299void
300sc_module::wait(const sc_event &e)
301{
302 ::sc_core::wait(e);
303}
304
305void
306sc_module::wait(const sc_event_or_list &eol)
307{
308 ::sc_core::wait(eol);
309}
310
311void
312sc_module::wait(const sc_event_and_list &eal)
313{
314 ::sc_core::wait(eal);
315}
316
317void
318sc_module::wait(const sc_time &t)
319{
320 ::sc_core::wait(t);
321}
322
323void
324sc_module::wait(double d, sc_time_unit u)
325{
326 ::sc_core::wait(d, u);
327}
328
329void
330sc_module::wait(const sc_time &t, const sc_event &e)
331{
332 ::sc_core::wait(t, e);
333}
334
335void
336sc_module::wait(double d, sc_time_unit u, const sc_event &e)
337{
338 ::sc_core::wait(d, u, e);
339}
340
341void
342sc_module::wait(const sc_time &t, const sc_event_or_list &eol)
343{
344 ::sc_core::wait(t, eol);
345}
346
347void
348sc_module::wait(double d, sc_time_unit u, const sc_event_or_list &eol)
349{
350 ::sc_core::wait(d, u, eol);
351}
352
353void
354sc_module::wait(const sc_time &t, const sc_event_and_list &eal)
355{
356 ::sc_core::wait(t, eal);
357}
358
359void
360sc_module::wait(double d, sc_time_unit u, const sc_event_and_list &eal)
361{
362 ::sc_core::wait(d, u, eal);
363}
364
365
366void
367sc_module::halt()
368{
369 ::sc_core::halt();
370}
371
372void
373sc_module::at_posedge(const sc_signal_in_if<bool> &s)
374{
375 ::sc_core::at_posedge(s);
376}
377
378void
379sc_module::at_posedge(const sc_signal_in_if<sc_dt::sc_logic> &s)
380{
381 ::sc_core::at_posedge(s);
382}
383
384void
385sc_module::at_negedge(const sc_signal_in_if<bool> &s)
386{
387 ::sc_core::at_negedge(s);
388}
389
390void
391sc_module::at_negedge(const sc_signal_in_if<sc_dt::sc_logic> &s)
392{
393 ::sc_core::at_negedge(s);
394}
395
396
397void
398next_trigger()
399{
400 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
401}
402
403void
404next_trigger(const sc_event &)
405{
406 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
407}
408
409void
410next_trigger(const sc_event_or_list &)
411{
412 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
413}
414
415void
416next_trigger(const sc_event_and_list &)
417{
418 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
419}
420
421void
422next_trigger(const sc_time &)
423{
424 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
425}
426
427void
428next_trigger(double d, sc_time_unit u)
429{
430 next_trigger(sc_time(d, u));
431}
432
433void
434next_trigger(const sc_time &, const sc_event &)
435{
436 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
437}
438
439void
440next_trigger(double d, sc_time_unit u, const sc_event &e)
441{
442 next_trigger(sc_time(d, u), e);
443}
444
445void
446next_trigger(const sc_time &, const sc_event_or_list &)
447{
448 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
449}
450
451void
452next_trigger(double d, sc_time_unit u, const sc_event_or_list &eol)
453{
454 next_trigger(sc_time(d, u), eol);
455}
456
457void
458next_trigger(const sc_time &, const sc_event_and_list &)
459{
460 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
461}
462
463void
464next_trigger(double d, sc_time_unit u, const sc_event_and_list &eal)
465{
466 next_trigger(sc_time(d, u), eal);
467}
468
469bool
470timed_out()
471{
472 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
473 return false;
474}
475
476
477void
478wait()
479{
480 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
481}
482
483void
484wait(int)
485{
486 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
487}
488
489void
490wait(const sc_event &)
491{
492 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
493}
494
495void
496wait(const sc_event_or_list &)
497{
498 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
499}
500
501void
502wait(const sc_event_and_list &)
503{
504 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
505}
506
507void
508wait(const sc_time &)
509{
510 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
511}
512
513void
514wait(double d, sc_time_unit u)
515{
516 wait(sc_time(d, u));
517}
518
519void
520wait(const sc_time &, const sc_event &)
521{
522 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
523}
524
525void
526wait(double d, sc_time_unit u, const sc_event &e)
527{
528 wait(sc_time(d, u), e);
529}
530
531void
532wait(const sc_time &, const sc_event_or_list &)
533{
534 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
535}
536
537void
538wait(double d, sc_time_unit u, const sc_event_or_list &eol)
539{
540 wait(sc_time(d, u), eol);
541}
542
543void
544wait(const sc_time &, const sc_event_and_list &)
545{
546 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
547}
548
549void
550wait(double d, sc_time_unit u, const sc_event_and_list &eal)
551{
552 wait(sc_time(d, u), eal);
553}
554
555void
556halt()
557{
558 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
559}
560
561void
562at_posedge(const sc_signal_in_if<bool> &)
563{
564 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
565}
566
567void
568at_posedge(const sc_signal_in_if<sc_dt::sc_logic> &)
569{
570 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
571}
572
573void
574at_negedge(const sc_signal_in_if<bool> &)
575{
576 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
577}
578
579void
580at_negedge(const sc_signal_in_if<sc_dt::sc_logic> &)
581{
582 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
583}
584
585const char *
586sc_gen_unique_name(const char *)
587{
588 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
589 return "";
590}
591
592bool
593sc_hierarchical_name_exists(const char *name)
594{
595 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
596 return false;
597}
598
599bool
600sc_start_of_simulation_invoked()
601{
602 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
603 return false;
604}
605
606bool
607sc_end_of_simulation_invoked()
608{
609 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
610 return false;
611}
612
613sc_module *
614sc_module_sc_new(sc_module *mod)
615{
616 static std::vector<std::unique_ptr<sc_module> > modules;
617 modules.emplace_back(mod);
618 return mod;
619}
620
621} // namespace sc_core
162 _gem5_module(sc_gem5::currentModule())
163{}
164
165sc_module::sc_module(const sc_module_name &) : sc_module() {}
166sc_module::sc_module(const char *_name) : sc_module(sc_module_name(_name)) {}
167sc_module::sc_module(const std::string &_name) :
168 sc_module(sc_module_name(_name.c_str()))
169{}
170
171void
172sc_module::reset_signal_is(const sc_in<bool> &, bool)
173{
174 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
175}
176
177void
178sc_module::reset_signal_is(const sc_inout<bool> &, bool)
179{
180 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
181}
182
183void
184sc_module::reset_signal_is(const sc_out<bool> &, bool)
185{
186 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
187}
188
189void
190sc_module::reset_signal_is(const sc_signal_in_if<bool> &, bool)
191{
192 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
193}
194
195
196void
197sc_module::async_reset_signal_is(const sc_in<bool> &, bool)
198{
199 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
200}
201
202void
203sc_module::async_reset_signal_is(const sc_inout<bool> &, bool)
204{
205 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
206}
207
208void
209sc_module::async_reset_signal_is(const sc_out<bool> &, bool)
210{
211 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
212}
213
214void
215sc_module::async_reset_signal_is(const sc_signal_in_if<bool> &, bool)
216{
217 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
218}
219
220
221void
222sc_module::dont_initialize()
223{
224 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
225}
226
227void
228sc_module::set_stack_size(size_t)
229{
230 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
231}
232
233
234void sc_module::next_trigger() { ::sc_core::next_trigger(); }
235
236void
237sc_module::next_trigger(const sc_event &e)
238{
239 ::sc_core::next_trigger(e);
240}
241
242void
243sc_module::next_trigger(const sc_event_or_list &eol)
244{
245 ::sc_core::next_trigger(eol);
246}
247
248void
249sc_module::next_trigger(const sc_event_and_list &eal)
250{
251 ::sc_core::next_trigger(eal);
252}
253
254void
255sc_module::next_trigger(const sc_time &t)
256{
257 ::sc_core::next_trigger(t);
258}
259
260void
261sc_module::next_trigger(double d, sc_time_unit u)
262{
263 ::sc_core::next_trigger(d, u);
264}
265
266void
267sc_module::next_trigger(const sc_time &t, const sc_event &e)
268{
269 ::sc_core::next_trigger(t, e);
270}
271
272void
273sc_module::next_trigger(double d, sc_time_unit u, const sc_event &e)
274{
275 ::sc_core::next_trigger(d, u, e);
276}
277
278void
279sc_module::next_trigger(const sc_time &t, const sc_event_or_list &eol)
280{
281 ::sc_core::next_trigger(t, eol);
282}
283
284void
285sc_module::next_trigger(double d, sc_time_unit u, const sc_event_or_list &eol)
286{
287 ::sc_core::next_trigger(d, u, eol);
288}
289
290void
291sc_module::next_trigger(const sc_time &t, const sc_event_and_list &eal)
292{
293 ::sc_core::next_trigger(t, eal);
294}
295
296void
297sc_module::next_trigger(double d, sc_time_unit u, const sc_event_and_list &eal)
298{
299 ::sc_core::next_trigger(d, u, eal);
300}
301
302
303bool
304sc_module::timed_out()
305{
306 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
307 return false;
308}
309
310
311void
312sc_module::wait()
313{
314 ::sc_core::wait();
315}
316
317void
318sc_module::wait(int i)
319{
320 ::sc_core::wait(i);
321}
322
323void
324sc_module::wait(const sc_event &e)
325{
326 ::sc_core::wait(e);
327}
328
329void
330sc_module::wait(const sc_event_or_list &eol)
331{
332 ::sc_core::wait(eol);
333}
334
335void
336sc_module::wait(const sc_event_and_list &eal)
337{
338 ::sc_core::wait(eal);
339}
340
341void
342sc_module::wait(const sc_time &t)
343{
344 ::sc_core::wait(t);
345}
346
347void
348sc_module::wait(double d, sc_time_unit u)
349{
350 ::sc_core::wait(d, u);
351}
352
353void
354sc_module::wait(const sc_time &t, const sc_event &e)
355{
356 ::sc_core::wait(t, e);
357}
358
359void
360sc_module::wait(double d, sc_time_unit u, const sc_event &e)
361{
362 ::sc_core::wait(d, u, e);
363}
364
365void
366sc_module::wait(const sc_time &t, const sc_event_or_list &eol)
367{
368 ::sc_core::wait(t, eol);
369}
370
371void
372sc_module::wait(double d, sc_time_unit u, const sc_event_or_list &eol)
373{
374 ::sc_core::wait(d, u, eol);
375}
376
377void
378sc_module::wait(const sc_time &t, const sc_event_and_list &eal)
379{
380 ::sc_core::wait(t, eal);
381}
382
383void
384sc_module::wait(double d, sc_time_unit u, const sc_event_and_list &eal)
385{
386 ::sc_core::wait(d, u, eal);
387}
388
389
390void
391sc_module::halt()
392{
393 ::sc_core::halt();
394}
395
396void
397sc_module::at_posedge(const sc_signal_in_if<bool> &s)
398{
399 ::sc_core::at_posedge(s);
400}
401
402void
403sc_module::at_posedge(const sc_signal_in_if<sc_dt::sc_logic> &s)
404{
405 ::sc_core::at_posedge(s);
406}
407
408void
409sc_module::at_negedge(const sc_signal_in_if<bool> &s)
410{
411 ::sc_core::at_negedge(s);
412}
413
414void
415sc_module::at_negedge(const sc_signal_in_if<sc_dt::sc_logic> &s)
416{
417 ::sc_core::at_negedge(s);
418}
419
420
421void
422next_trigger()
423{
424 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
425}
426
427void
428next_trigger(const sc_event &)
429{
430 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
431}
432
433void
434next_trigger(const sc_event_or_list &)
435{
436 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
437}
438
439void
440next_trigger(const sc_event_and_list &)
441{
442 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
443}
444
445void
446next_trigger(const sc_time &)
447{
448 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
449}
450
451void
452next_trigger(double d, sc_time_unit u)
453{
454 next_trigger(sc_time(d, u));
455}
456
457void
458next_trigger(const sc_time &, const sc_event &)
459{
460 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
461}
462
463void
464next_trigger(double d, sc_time_unit u, const sc_event &e)
465{
466 next_trigger(sc_time(d, u), e);
467}
468
469void
470next_trigger(const sc_time &, const sc_event_or_list &)
471{
472 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
473}
474
475void
476next_trigger(double d, sc_time_unit u, const sc_event_or_list &eol)
477{
478 next_trigger(sc_time(d, u), eol);
479}
480
481void
482next_trigger(const sc_time &, const sc_event_and_list &)
483{
484 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
485}
486
487void
488next_trigger(double d, sc_time_unit u, const sc_event_and_list &eal)
489{
490 next_trigger(sc_time(d, u), eal);
491}
492
493bool
494timed_out()
495{
496 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
497 return false;
498}
499
500
501void
502wait()
503{
504 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
505}
506
507void
508wait(int)
509{
510 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
511}
512
513void
514wait(const sc_event &)
515{
516 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
517}
518
519void
520wait(const sc_event_or_list &)
521{
522 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
523}
524
525void
526wait(const sc_event_and_list &)
527{
528 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
529}
530
531void
532wait(const sc_time &)
533{
534 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
535}
536
537void
538wait(double d, sc_time_unit u)
539{
540 wait(sc_time(d, u));
541}
542
543void
544wait(const sc_time &, const sc_event &)
545{
546 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
547}
548
549void
550wait(double d, sc_time_unit u, const sc_event &e)
551{
552 wait(sc_time(d, u), e);
553}
554
555void
556wait(const sc_time &, const sc_event_or_list &)
557{
558 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
559}
560
561void
562wait(double d, sc_time_unit u, const sc_event_or_list &eol)
563{
564 wait(sc_time(d, u), eol);
565}
566
567void
568wait(const sc_time &, const sc_event_and_list &)
569{
570 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
571}
572
573void
574wait(double d, sc_time_unit u, const sc_event_and_list &eal)
575{
576 wait(sc_time(d, u), eal);
577}
578
579void
580halt()
581{
582 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
583}
584
585void
586at_posedge(const sc_signal_in_if<bool> &)
587{
588 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
589}
590
591void
592at_posedge(const sc_signal_in_if<sc_dt::sc_logic> &)
593{
594 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
595}
596
597void
598at_negedge(const sc_signal_in_if<bool> &)
599{
600 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
601}
602
603void
604at_negedge(const sc_signal_in_if<sc_dt::sc_logic> &)
605{
606 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
607}
608
609const char *
610sc_gen_unique_name(const char *)
611{
612 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
613 return "";
614}
615
616bool
617sc_hierarchical_name_exists(const char *name)
618{
619 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
620 return false;
621}
622
623bool
624sc_start_of_simulation_invoked()
625{
626 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
627 return false;
628}
629
630bool
631sc_end_of_simulation_invoked()
632{
633 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
634 return false;
635}
636
637sc_module *
638sc_module_sc_new(sc_module *mod)
639{
640 static std::vector<std::unique_ptr<sc_module> > modules;
641 modules.emplace_back(mod);
642 return mod;
643}
644
645} // namespace sc_core