cocotb 1.9.2__cp313-cp313-win_amd64.whl → 2.0.0b1__cp313-cp313-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of cocotb might be problematic. Click here for more details.
- cocotb/{ANSI.py → _ANSI.py} +5 -25
- cocotb/__init__.py +76 -332
- cocotb/_base_triggers.py +513 -0
- cocotb/_bridge.py +187 -0
- cocotb/_decorators.py +515 -0
- cocotb/_deprecation.py +3 -3
- cocotb/_exceptions.py +7 -0
- cocotb/_extended_awaitables.py +419 -0
- cocotb/_gpi_triggers.py +382 -0
- cocotb/_init.py +295 -0
- cocotb/_outcomes.py +54 -0
- cocotb/_profiling.py +46 -0
- cocotb/_py_compat.py +100 -29
- cocotb/_scheduler.py +454 -0
- cocotb/_test.py +245 -0
- cocotb/_test_factory.py +309 -0
- cocotb/_test_functions.py +42 -0
- cocotb/_typing.py +7 -0
- cocotb/_utils.py +296 -0
- cocotb/_version.py +3 -7
- cocotb/_xunit_reporter.py +66 -0
- cocotb/clock.py +271 -108
- cocotb/handle.py +1342 -795
- cocotb/libs/cocotb.dll +0 -0
- cocotb/libs/cocotb.exp +0 -0
- cocotb/libs/cocotb.lib +0 -0
- cocotb/libs/cocotbfli_modelsim.dll +0 -0
- cocotb/libs/cocotbfli_modelsim.exp +0 -0
- cocotb/libs/cocotbfli_modelsim.lib +0 -0
- cocotb/libs/cocotbutils.dll +0 -0
- cocotb/libs/cocotbutils.exp +0 -0
- cocotb/libs/cocotbutils.lib +0 -0
- cocotb/libs/cocotbvhpi_aldec.dll +0 -0
- cocotb/libs/cocotbvhpi_aldec.exp +0 -0
- cocotb/libs/cocotbvhpi_aldec.lib +0 -0
- cocotb/libs/cocotbvhpi_modelsim.dll +0 -0
- cocotb/libs/cocotbvhpi_modelsim.exp +0 -0
- cocotb/libs/cocotbvhpi_modelsim.lib +0 -0
- cocotb/libs/cocotbvpi_aldec.dll +0 -0
- cocotb/libs/cocotbvpi_aldec.exp +0 -0
- cocotb/libs/cocotbvpi_aldec.lib +0 -0
- cocotb/libs/cocotbvpi_ghdl.dll +0 -0
- cocotb/libs/cocotbvpi_ghdl.exp +0 -0
- cocotb/libs/cocotbvpi_ghdl.lib +0 -0
- cocotb/libs/cocotbvpi_icarus.exp +0 -0
- cocotb/libs/cocotbvpi_icarus.lib +0 -0
- cocotb/libs/cocotbvpi_icarus.vpl +0 -0
- cocotb/libs/cocotbvpi_modelsim.dll +0 -0
- cocotb/libs/cocotbvpi_modelsim.exp +0 -0
- cocotb/libs/cocotbvpi_modelsim.lib +0 -0
- cocotb/libs/embed.dll +0 -0
- cocotb/libs/embed.exp +0 -0
- cocotb/libs/embed.lib +0 -0
- cocotb/libs/gpi.dll +0 -0
- cocotb/libs/gpi.exp +0 -0
- cocotb/libs/gpi.lib +0 -0
- cocotb/libs/gpilog.dll +0 -0
- cocotb/libs/gpilog.exp +0 -0
- cocotb/libs/gpilog.lib +0 -0
- cocotb/libs/pygpilog.dll +0 -0
- cocotb/libs/pygpilog.exp +0 -0
- cocotb/libs/pygpilog.lib +0 -0
- cocotb/{log.py → logging.py} +105 -110
- cocotb/queue.py +103 -57
- cocotb/regression.py +667 -712
- cocotb/result.py +17 -188
- cocotb/share/def/aldec.exp +0 -0
- cocotb/share/def/aldec.lib +0 -0
- cocotb/share/def/ghdl.exp +0 -0
- cocotb/share/def/ghdl.lib +0 -0
- cocotb/share/def/icarus.exp +0 -0
- cocotb/share/def/icarus.lib +0 -0
- cocotb/share/def/modelsim.def +1 -0
- cocotb/share/def/modelsim.exp +0 -0
- cocotb/share/def/modelsim.lib +0 -0
- cocotb/share/include/cocotb_utils.h +6 -29
- cocotb/share/include/embed.h +5 -28
- cocotb/share/include/gpi.h +137 -92
- cocotb/share/include/gpi_logging.h +221 -142
- cocotb/share/include/py_gpi_logging.h +7 -4
- cocotb/share/include/vpi_user_ext.h +4 -26
- cocotb/share/lib/verilator/verilator.cpp +59 -54
- cocotb/simulator.cp313-win_amd64.exp +0 -0
- cocotb/simulator.cp313-win_amd64.lib +0 -0
- cocotb/simulator.cp313-win_amd64.pyd +0 -0
- cocotb/simulator.pyi +107 -0
- cocotb/task.py +434 -212
- cocotb/triggers.py +55 -1092
- cocotb/types/__init__.py +25 -47
- cocotb/types/_abstract_array.py +151 -0
- cocotb/types/_array.py +264 -0
- cocotb/types/_logic.py +296 -0
- cocotb/types/_logic_array.py +834 -0
- cocotb/types/{range.py → _range.py} +36 -44
- cocotb/types/_resolve.py +76 -0
- cocotb/utils.py +119 -587
- cocotb-2.0.0b1.dist-info/METADATA +60 -0
- cocotb-2.0.0b1.dist-info/RECORD +143 -0
- {cocotb-1.9.2.dist-info → cocotb-2.0.0b1.dist-info}/WHEEL +1 -1
- cocotb-2.0.0b1.dist-info/entry_points.txt +2 -0
- {cocotb-1.9.2.dist-info → cocotb-2.0.0b1.dist-info}/top_level.txt +1 -0
- cocotb_tools/__init__.py +0 -0
- cocotb_tools/_coverage.py +33 -0
- cocotb_tools/_vendor/__init__.py +3 -0
- cocotb_tools/check_results.py +65 -0
- cocotb_tools/combine_results.py +152 -0
- cocotb_tools/config.py +241 -0
- {cocotb → cocotb_tools}/ipython_support.py +29 -22
- cocotb_tools/makefiles/Makefile.deprecations +27 -0
- {cocotb/share → cocotb_tools}/makefiles/Makefile.inc +82 -54
- {cocotb/share → cocotb_tools}/makefiles/Makefile.sim +8 -33
- {cocotb/share → cocotb_tools}/makefiles/simulators/Makefile.activehdl +9 -16
- cocotb_tools/makefiles/simulators/Makefile.cvc +61 -0
- cocotb_tools/makefiles/simulators/Makefile.dsim +39 -0
- {cocotb/share → cocotb_tools}/makefiles/simulators/Makefile.ghdl +13 -42
- cocotb_tools/makefiles/simulators/Makefile.icarus +80 -0
- cocotb_tools/makefiles/simulators/Makefile.ius +93 -0
- cocotb_tools/makefiles/simulators/Makefile.modelsim +9 -0
- cocotb_tools/makefiles/simulators/Makefile.nvc +60 -0
- cocotb_tools/makefiles/simulators/Makefile.questa +29 -0
- cocotb/share/makefiles/simulators/Makefile.questa → cocotb_tools/makefiles/simulators/Makefile.questa-compat +26 -54
- cocotb_tools/makefiles/simulators/Makefile.questa-qisqrun +149 -0
- {cocotb/share → cocotb_tools}/makefiles/simulators/Makefile.riviera +17 -56
- cocotb_tools/makefiles/simulators/Makefile.vcs +65 -0
- {cocotb/share → cocotb_tools}/makefiles/simulators/Makefile.verilator +15 -22
- {cocotb/share → cocotb_tools}/makefiles/simulators/Makefile.xcelium +20 -52
- cocotb_tools/py.typed +0 -0
- {cocotb → cocotb_tools}/runner.py +794 -361
- cocotb/_sim_versions.py → cocotb_tools/sim_versions.py +16 -21
- pygpi/entry.py +34 -17
- pygpi/py.typed +0 -0
- cocotb/binary.py +0 -858
- cocotb/config.py +0 -289
- cocotb/decorators.py +0 -332
- cocotb/memdebug.py +0 -35
- cocotb/outcomes.py +0 -56
- cocotb/scheduler.py +0 -1099
- cocotb/share/makefiles/Makefile.deprecations +0 -12
- cocotb/share/makefiles/simulators/Makefile.cvc +0 -94
- cocotb/share/makefiles/simulators/Makefile.icarus +0 -111
- cocotb/share/makefiles/simulators/Makefile.ius +0 -125
- cocotb/share/makefiles/simulators/Makefile.modelsim +0 -32
- cocotb/share/makefiles/simulators/Makefile.nvc +0 -64
- cocotb/share/makefiles/simulators/Makefile.vcs +0 -98
- cocotb/types/array.py +0 -309
- cocotb/types/logic.py +0 -292
- cocotb/types/logic_array.py +0 -298
- cocotb/wavedrom.py +0 -199
- cocotb/xunit_reporter.py +0 -80
- cocotb-1.9.2.dist-info/METADATA +0 -168
- cocotb-1.9.2.dist-info/RECORD +0 -121
- cocotb-1.9.2.dist-info/entry_points.txt +0 -2
- /cocotb/{_vendor/__init__.py → py.typed} +0 -0
- {cocotb-1.9.2.dist-info → cocotb-2.0.0b1.dist-info/licenses}/LICENSE +0 -0
- {cocotb → cocotb_tools}/_vendor/distutils_version.py +0 -0
|
@@ -20,9 +20,12 @@
|
|
|
20
20
|
#if VM_TRACE
|
|
21
21
|
#if VM_TRACE_FST
|
|
22
22
|
#include <verilated_fst_c.h>
|
|
23
|
+
using verilated_trace_t = VerilatedFstC;
|
|
23
24
|
#else
|
|
24
25
|
#include <verilated_vcd_c.h>
|
|
26
|
+
using verilated_trace_t = VerilatedVcdC;
|
|
25
27
|
#endif
|
|
28
|
+
static verilated_trace_t* tfp;
|
|
26
29
|
#endif
|
|
27
30
|
|
|
28
31
|
static vluint64_t main_time = 0; // Current simulation time
|
|
@@ -50,18 +53,43 @@ static inline bool settle_value_callbacks() {
|
|
|
50
53
|
return cbs_called;
|
|
51
54
|
}
|
|
52
55
|
|
|
56
|
+
void wrap_up() {
|
|
57
|
+
VerilatedVpi::callCbs(cbEndOfSimulation);
|
|
58
|
+
|
|
59
|
+
#if VM_TRACE
|
|
60
|
+
if (tfp) {
|
|
61
|
+
delete tfp;
|
|
62
|
+
tfp = nullptr;
|
|
63
|
+
}
|
|
64
|
+
#endif
|
|
65
|
+
|
|
66
|
+
// VM_COVERAGE is a define which is set if Verilator is
|
|
67
|
+
// instructed to collect coverage (when compiling the simulation)
|
|
68
|
+
#if VM_COVERAGE
|
|
69
|
+
VerilatedCov::write(); // Uses +verilator+coverage+file+<filename>,
|
|
70
|
+
// defaults to coverage.dat
|
|
71
|
+
#endif
|
|
72
|
+
}
|
|
73
|
+
|
|
53
74
|
int main(int argc, char** argv) {
|
|
54
|
-
bool traceOn = false;
|
|
55
75
|
#if VM_TRACE_FST
|
|
56
76
|
const char* traceFile = "dump.fst";
|
|
57
77
|
#else
|
|
58
78
|
const char* traceFile = "dump.vcd";
|
|
59
79
|
#endif
|
|
80
|
+
bool traceOn = false;
|
|
60
81
|
|
|
61
82
|
for (int i = 1; i < argc; i++) {
|
|
62
83
|
std::string arg = std::string(argv[i]);
|
|
63
84
|
if (arg == "--trace") {
|
|
85
|
+
#if VM_TRACE
|
|
64
86
|
traceOn = true;
|
|
87
|
+
#else
|
|
88
|
+
fprintf(stderr,
|
|
89
|
+
"Error: --trace requires the design to be built with trace "
|
|
90
|
+
"support\n");
|
|
91
|
+
return -1;
|
|
92
|
+
#endif
|
|
65
93
|
} else if (arg == "--trace-file") {
|
|
66
94
|
if (++i < argc) {
|
|
67
95
|
traceFile = argv[i];
|
|
@@ -95,57 +123,44 @@ int main(int argc, char** argv) {
|
|
|
95
123
|
Verilated::internalsDump();
|
|
96
124
|
#endif
|
|
97
125
|
|
|
98
|
-
vlog_startup_routines_bootstrap();
|
|
99
|
-
VerilatedVpi::callCbs(cbStartOfSimulation);
|
|
100
|
-
|
|
101
126
|
#if VM_TRACE
|
|
102
|
-
|
|
103
|
-
std::unique_ptr<VerilatedFstC> tfp(new VerilatedFstC);
|
|
104
|
-
#else
|
|
105
|
-
std::unique_ptr<VerilatedVcdC> tfp(new VerilatedVcdC);
|
|
106
|
-
#endif
|
|
107
|
-
|
|
127
|
+
Verilated::traceEverOn(true);
|
|
108
128
|
if (traceOn) {
|
|
109
|
-
|
|
110
|
-
top->trace(tfp
|
|
129
|
+
tfp = new verilated_trace_t;
|
|
130
|
+
top->trace(tfp, 99);
|
|
111
131
|
tfp->open(traceFile);
|
|
112
132
|
}
|
|
113
133
|
#endif
|
|
114
134
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
VerilatedVpi::callTimedCbs();
|
|
120
|
-
|
|
121
|
-
// Call Value Change callbacks triggered by Timer callbacks
|
|
122
|
-
// These can modify signal values
|
|
123
|
-
settle_value_callbacks();
|
|
124
|
-
|
|
125
|
-
// We must evaluate whole design until we process all 'events'
|
|
126
|
-
bool again = true;
|
|
127
|
-
while (again) {
|
|
128
|
-
// Evaluate design
|
|
129
|
-
top->eval_step();
|
|
130
|
-
|
|
131
|
-
// Call Value Change callbacks triggered by eval()
|
|
132
|
-
// These can modify signal values
|
|
133
|
-
again = settle_value_callbacks();
|
|
135
|
+
vlog_startup_routines_bootstrap();
|
|
136
|
+
Verilated::addExitCb([](void*) { wrap_up(); }, nullptr);
|
|
137
|
+
VerilatedVpi::callCbs(cbStartOfSimulation);
|
|
138
|
+
settle_value_callbacks();
|
|
134
139
|
|
|
135
|
-
|
|
136
|
-
|
|
140
|
+
while (!Verilated::gotFinish()) {
|
|
141
|
+
do {
|
|
142
|
+
// We must evaluate whole design until we process all 'events' for
|
|
143
|
+
// this time step
|
|
144
|
+
do {
|
|
145
|
+
top->eval_step();
|
|
146
|
+
VerilatedVpi::clearEvalNeeded();
|
|
147
|
+
VerilatedVpi::doInertialPuts();
|
|
148
|
+
settle_value_callbacks();
|
|
149
|
+
} while (VerilatedVpi::evalNeeded());
|
|
150
|
+
|
|
151
|
+
// Run ReadWrite callback as we are done processing this eval step
|
|
152
|
+
VerilatedVpi::callCbs(cbReadWriteSynch);
|
|
153
|
+
VerilatedVpi::doInertialPuts();
|
|
154
|
+
settle_value_callbacks();
|
|
155
|
+
} while (VerilatedVpi::evalNeeded());
|
|
137
156
|
|
|
138
|
-
// Call Value Change callbacks triggered by ReadWrite callbacks
|
|
139
|
-
// These can modify signal values
|
|
140
|
-
again |= settle_value_callbacks();
|
|
141
|
-
}
|
|
142
157
|
top->eval_end_step();
|
|
143
158
|
|
|
144
159
|
// Call ReadOnly callbacks
|
|
145
160
|
VerilatedVpi::callCbs(cbReadOnlySynch);
|
|
146
161
|
|
|
147
162
|
#if VM_TRACE
|
|
148
|
-
if (
|
|
163
|
+
if (tfp) {
|
|
149
164
|
tfp->dump(main_time);
|
|
150
165
|
}
|
|
151
166
|
#endif
|
|
@@ -169,28 +184,18 @@ int main(int argc, char** argv) {
|
|
|
169
184
|
// It should be called in simulation cycle before everything else
|
|
170
185
|
// but not on first cycle
|
|
171
186
|
VerilatedVpi::callCbs(cbNextSimTime);
|
|
187
|
+
settle_value_callbacks();
|
|
172
188
|
|
|
173
|
-
// Call
|
|
174
|
-
// These
|
|
189
|
+
// Call registered timed callbacks (e.g. clock timer)
|
|
190
|
+
// These are called at the beginning of the time step
|
|
191
|
+
// before the iterative regions (IEEE 1800-2012 4.4.1)
|
|
192
|
+
VerilatedVpi::callTimedCbs();
|
|
175
193
|
settle_value_callbacks();
|
|
176
194
|
}
|
|
177
195
|
|
|
178
|
-
VerilatedVpi::callCbs(cbEndOfSimulation);
|
|
179
|
-
|
|
180
196
|
top->final();
|
|
181
197
|
|
|
182
|
-
|
|
183
|
-
if (traceOn) {
|
|
184
|
-
tfp->close();
|
|
185
|
-
}
|
|
186
|
-
#endif
|
|
187
|
-
|
|
188
|
-
// VM_COVERAGE is a define which is set if Verilator is
|
|
189
|
-
// instructed to collect coverage (when compiling the simulation)
|
|
190
|
-
#if VM_COVERAGE
|
|
191
|
-
VerilatedCov::write(); // Uses +verilator+coverage+file+<filename>,
|
|
192
|
-
// defaults to coverage.dat
|
|
193
|
-
#endif
|
|
198
|
+
wrap_up();
|
|
194
199
|
|
|
195
200
|
return 0;
|
|
196
201
|
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
cocotb/simulator.pyi
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# Copyright cocotb contributors
|
|
2
|
+
# Licensed under the Revised BSD License, see LICENSE for details.
|
|
3
|
+
# SPDX-License-Identifier: BSD-3-Clause
|
|
4
|
+
|
|
5
|
+
# generated with mypy's stubgen script
|
|
6
|
+
|
|
7
|
+
from logging import Logger
|
|
8
|
+
from typing import Any, Callable
|
|
9
|
+
|
|
10
|
+
from cocotb.handle import GPIDiscovery
|
|
11
|
+
|
|
12
|
+
DRIVERS: int
|
|
13
|
+
ENUM: int
|
|
14
|
+
GENARRAY: int
|
|
15
|
+
INTEGER: int
|
|
16
|
+
LOADS: int
|
|
17
|
+
LOGIC: int
|
|
18
|
+
LOGIC_ARRAY: int
|
|
19
|
+
MEMORY: int
|
|
20
|
+
MODULE: int
|
|
21
|
+
NETARRAY: int
|
|
22
|
+
OBJECTS: int
|
|
23
|
+
PACKAGE: int
|
|
24
|
+
REAL: int
|
|
25
|
+
STRING: int
|
|
26
|
+
STRUCTURE: int
|
|
27
|
+
PACKED_STRUCTURE: int
|
|
28
|
+
UNKNOWN: int
|
|
29
|
+
RISING: int
|
|
30
|
+
FALLING: int
|
|
31
|
+
VALUE_CHANGE: int
|
|
32
|
+
RANGE_UP: int
|
|
33
|
+
RANGE_DOWN: int
|
|
34
|
+
RANGE_NO_DIR: int
|
|
35
|
+
|
|
36
|
+
class gpi_cb_hdl:
|
|
37
|
+
def deregister(self) -> None: ...
|
|
38
|
+
def __eq__(self, other: object) -> bool: ...
|
|
39
|
+
def __ne__(self, other: object) -> bool: ...
|
|
40
|
+
def __hash__(self) -> int: ...
|
|
41
|
+
|
|
42
|
+
class gpi_iterator_hdl:
|
|
43
|
+
def __eq__(self, other: object) -> bool: ...
|
|
44
|
+
def __ne__(self, other: object) -> bool: ...
|
|
45
|
+
def __hash__(self) -> int: ...
|
|
46
|
+
def __iter__(self) -> gpi_iterator_hdl: ...
|
|
47
|
+
def __next__(self) -> gpi_sim_hdl: ...
|
|
48
|
+
|
|
49
|
+
class gpi_sim_hdl:
|
|
50
|
+
def get_const(self) -> bool: ...
|
|
51
|
+
def get_definition_file(self) -> str: ...
|
|
52
|
+
def get_definition_name(self) -> str: ...
|
|
53
|
+
def get_handle_by_index(self, index: int) -> gpi_sim_hdl | None: ...
|
|
54
|
+
def get_handle_by_name(
|
|
55
|
+
self, name: str, discovery_method: GPIDiscovery | None = GPIDiscovery.AUTO
|
|
56
|
+
) -> gpi_sim_hdl | None: ...
|
|
57
|
+
def get_indexable(self) -> bool: ...
|
|
58
|
+
def get_name_string(self) -> str: ...
|
|
59
|
+
def get_num_elems(self) -> int: ...
|
|
60
|
+
def get_range(self) -> tuple[int, int, int]: ...
|
|
61
|
+
def get_signal_val_binstr(self) -> str: ...
|
|
62
|
+
def get_signal_val_long(self) -> int: ...
|
|
63
|
+
def get_signal_val_real(self) -> float: ...
|
|
64
|
+
def get_signal_val_str(self) -> bytes: ...
|
|
65
|
+
def get_type(self) -> int: ...
|
|
66
|
+
def get_type_string(self) -> str: ...
|
|
67
|
+
def iterate(self, mode: int) -> gpi_iterator_hdl: ...
|
|
68
|
+
def set_signal_val_binstr(self, action: int, value: str) -> None: ...
|
|
69
|
+
def set_signal_val_int(self, action: int, value: int) -> None: ...
|
|
70
|
+
def set_signal_val_real(self, action: int, value: float) -> None: ...
|
|
71
|
+
def set_signal_val_str(self, action: int, value: bytes) -> None: ...
|
|
72
|
+
def __eq__(self, other: object) -> bool: ...
|
|
73
|
+
def __ne__(self, other: object) -> bool: ...
|
|
74
|
+
def __hash__(self) -> int: ...
|
|
75
|
+
|
|
76
|
+
def get_precision() -> int: ...
|
|
77
|
+
def get_root_handle(name: str | None) -> gpi_sim_hdl | None: ...
|
|
78
|
+
def get_sim_time() -> tuple[int, int]: ...
|
|
79
|
+
def get_simulator_product() -> str: ...
|
|
80
|
+
def get_simulator_version() -> str: ...
|
|
81
|
+
def is_running() -> bool: ...
|
|
82
|
+
def set_gpi_log_level(level: int) -> None: ...
|
|
83
|
+
def package_iterate() -> gpi_iterator_hdl: ...
|
|
84
|
+
def register_nextstep_callback(func: Callable[..., Any], *args: Any) -> gpi_cb_hdl: ...
|
|
85
|
+
def register_readonly_callback(func: Callable[..., Any], *args: Any) -> gpi_cb_hdl: ...
|
|
86
|
+
def register_rwsynch_callback(func: Callable[..., Any], *args: Any) -> gpi_cb_hdl: ...
|
|
87
|
+
def register_timed_callback(
|
|
88
|
+
time: int, func: Callable[..., Any], *args: Any
|
|
89
|
+
) -> gpi_cb_hdl: ...
|
|
90
|
+
def register_value_change_callback(
|
|
91
|
+
signal: gpi_sim_hdl, func: Callable[..., Any], edge: int, *args: Any
|
|
92
|
+
) -> gpi_cb_hdl: ...
|
|
93
|
+
def stop_simulator() -> None: ...
|
|
94
|
+
|
|
95
|
+
class cpp_clock:
|
|
96
|
+
def __init__(self, signal: gpi_sim_hdl) -> None: ...
|
|
97
|
+
def start(
|
|
98
|
+
self, period_steps: int, high_steps: int, start_high: bool, set_action: int
|
|
99
|
+
) -> None: ...
|
|
100
|
+
def stop(self) -> None: ...
|
|
101
|
+
|
|
102
|
+
def clock_create(hdl: gpi_sim_hdl) -> cpp_clock: ...
|
|
103
|
+
def initialize_logger(
|
|
104
|
+
log_func: Callable[[Logger, int, str, int, str, str], None],
|
|
105
|
+
get_logger: Callable[[str], Logger],
|
|
106
|
+
) -> None: ...
|
|
107
|
+
def set_sim_event_callback(sim_event_callback: Callable[[str], None]) -> None: ...
|