cocotb 1.9.2__cp36-cp36m-win_amd64.whl → 2.0.0b1__cp36-cp36m-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.

Files changed (151) hide show
  1. cocotb/{ANSI.py → _ANSI.py} +5 -25
  2. cocotb/__init__.py +76 -332
  3. cocotb/_base_triggers.py +513 -0
  4. cocotb/_bridge.py +187 -0
  5. cocotb/_decorators.py +515 -0
  6. cocotb/_deprecation.py +3 -3
  7. cocotb/_exceptions.py +7 -0
  8. cocotb/_extended_awaitables.py +419 -0
  9. cocotb/_gpi_triggers.py +382 -0
  10. cocotb/_init.py +295 -0
  11. cocotb/_outcomes.py +54 -0
  12. cocotb/_profiling.py +46 -0
  13. cocotb/_py_compat.py +100 -29
  14. cocotb/_scheduler.py +454 -0
  15. cocotb/_test.py +245 -0
  16. cocotb/_test_factory.py +309 -0
  17. cocotb/_test_functions.py +42 -0
  18. cocotb/_typing.py +7 -0
  19. cocotb/_utils.py +296 -0
  20. cocotb/_version.py +3 -7
  21. cocotb/_xunit_reporter.py +66 -0
  22. cocotb/clock.py +271 -108
  23. cocotb/handle.py +1342 -795
  24. cocotb/libs/cocotb.dll +0 -0
  25. cocotb/libs/cocotb.exp +0 -0
  26. cocotb/libs/cocotb.lib +0 -0
  27. cocotb/libs/cocotbfli_modelsim.dll +0 -0
  28. cocotb/libs/cocotbfli_modelsim.exp +0 -0
  29. cocotb/libs/cocotbfli_modelsim.lib +0 -0
  30. cocotb/libs/cocotbutils.dll +0 -0
  31. cocotb/libs/cocotbutils.exp +0 -0
  32. cocotb/libs/cocotbutils.lib +0 -0
  33. cocotb/libs/cocotbvhpi_aldec.dll +0 -0
  34. cocotb/libs/cocotbvhpi_aldec.exp +0 -0
  35. cocotb/libs/cocotbvhpi_aldec.lib +0 -0
  36. cocotb/libs/cocotbvhpi_modelsim.dll +0 -0
  37. cocotb/libs/cocotbvhpi_modelsim.exp +0 -0
  38. cocotb/libs/cocotbvhpi_modelsim.lib +0 -0
  39. cocotb/libs/cocotbvpi_aldec.dll +0 -0
  40. cocotb/libs/cocotbvpi_aldec.exp +0 -0
  41. cocotb/libs/cocotbvpi_aldec.lib +0 -0
  42. cocotb/libs/cocotbvpi_ghdl.dll +0 -0
  43. cocotb/libs/cocotbvpi_ghdl.exp +0 -0
  44. cocotb/libs/cocotbvpi_ghdl.lib +0 -0
  45. cocotb/libs/cocotbvpi_icarus.exp +0 -0
  46. cocotb/libs/cocotbvpi_icarus.lib +0 -0
  47. cocotb/libs/cocotbvpi_icarus.vpl +0 -0
  48. cocotb/libs/cocotbvpi_modelsim.dll +0 -0
  49. cocotb/libs/cocotbvpi_modelsim.exp +0 -0
  50. cocotb/libs/cocotbvpi_modelsim.lib +0 -0
  51. cocotb/libs/embed.dll +0 -0
  52. cocotb/libs/embed.exp +0 -0
  53. cocotb/libs/embed.lib +0 -0
  54. cocotb/libs/gpi.dll +0 -0
  55. cocotb/libs/gpi.exp +0 -0
  56. cocotb/libs/gpi.lib +0 -0
  57. cocotb/libs/gpilog.dll +0 -0
  58. cocotb/libs/gpilog.exp +0 -0
  59. cocotb/libs/gpilog.lib +0 -0
  60. cocotb/libs/pygpilog.dll +0 -0
  61. cocotb/libs/pygpilog.exp +0 -0
  62. cocotb/libs/pygpilog.lib +0 -0
  63. cocotb/{log.py → logging.py} +105 -110
  64. cocotb/queue.py +103 -57
  65. cocotb/regression.py +667 -712
  66. cocotb/result.py +17 -188
  67. cocotb/share/def/aldec.exp +0 -0
  68. cocotb/share/def/aldec.lib +0 -0
  69. cocotb/share/def/ghdl.exp +0 -0
  70. cocotb/share/def/ghdl.lib +0 -0
  71. cocotb/share/def/icarus.exp +0 -0
  72. cocotb/share/def/icarus.lib +0 -0
  73. cocotb/share/def/modelsim.def +1 -0
  74. cocotb/share/def/modelsim.exp +0 -0
  75. cocotb/share/def/modelsim.lib +0 -0
  76. cocotb/share/include/cocotb_utils.h +6 -29
  77. cocotb/share/include/embed.h +5 -28
  78. cocotb/share/include/gpi.h +137 -92
  79. cocotb/share/include/gpi_logging.h +221 -142
  80. cocotb/share/include/py_gpi_logging.h +7 -4
  81. cocotb/share/include/vpi_user_ext.h +4 -26
  82. cocotb/share/lib/verilator/verilator.cpp +59 -54
  83. cocotb/simulator.cp36-win_amd64.exp +0 -0
  84. cocotb/simulator.cp36-win_amd64.lib +0 -0
  85. cocotb/simulator.cp36-win_amd64.pyd +0 -0
  86. cocotb/task.py +434 -212
  87. cocotb/triggers.py +55 -1092
  88. cocotb/types/__init__.py +25 -47
  89. cocotb/types/_abstract_array.py +151 -0
  90. cocotb/types/_array.py +264 -0
  91. cocotb/types/_logic.py +296 -0
  92. cocotb/types/_logic_array.py +834 -0
  93. cocotb/types/{range.py → _range.py} +36 -44
  94. cocotb/types/_resolve.py +76 -0
  95. cocotb/utils.py +119 -587
  96. cocotb-2.0.0b1.dist-info/METADATA +48 -0
  97. cocotb-2.0.0b1.dist-info/RECORD +139 -0
  98. cocotb-2.0.0b1.dist-info/entry_points.txt +3 -0
  99. {cocotb-1.9.2.dist-info → cocotb-2.0.0b1.dist-info}/top_level.txt +1 -0
  100. cocotb_tools/_coverage.py +33 -0
  101. cocotb_tools/_vendor/__init__.py +3 -0
  102. cocotb_tools/check_results.py +65 -0
  103. cocotb_tools/combine_results.py +152 -0
  104. cocotb_tools/config.py +241 -0
  105. {cocotb → cocotb_tools}/ipython_support.py +29 -22
  106. cocotb_tools/makefiles/Makefile.deprecations +27 -0
  107. {cocotb/share → cocotb_tools}/makefiles/Makefile.inc +82 -54
  108. {cocotb/share → cocotb_tools}/makefiles/Makefile.sim +8 -33
  109. {cocotb/share → cocotb_tools}/makefiles/simulators/Makefile.activehdl +9 -16
  110. cocotb_tools/makefiles/simulators/Makefile.cvc +61 -0
  111. cocotb_tools/makefiles/simulators/Makefile.dsim +39 -0
  112. {cocotb/share → cocotb_tools}/makefiles/simulators/Makefile.ghdl +13 -42
  113. cocotb_tools/makefiles/simulators/Makefile.icarus +80 -0
  114. cocotb_tools/makefiles/simulators/Makefile.ius +93 -0
  115. cocotb_tools/makefiles/simulators/Makefile.modelsim +9 -0
  116. cocotb_tools/makefiles/simulators/Makefile.nvc +60 -0
  117. cocotb_tools/makefiles/simulators/Makefile.questa +29 -0
  118. cocotb/share/makefiles/simulators/Makefile.questa → cocotb_tools/makefiles/simulators/Makefile.questa-compat +26 -54
  119. cocotb_tools/makefiles/simulators/Makefile.questa-qisqrun +149 -0
  120. {cocotb/share → cocotb_tools}/makefiles/simulators/Makefile.riviera +17 -56
  121. cocotb_tools/makefiles/simulators/Makefile.vcs +65 -0
  122. {cocotb/share → cocotb_tools}/makefiles/simulators/Makefile.verilator +15 -22
  123. {cocotb/share → cocotb_tools}/makefiles/simulators/Makefile.xcelium +20 -52
  124. {cocotb → cocotb_tools}/runner.py +794 -361
  125. cocotb/_sim_versions.py → cocotb_tools/sim_versions.py +16 -21
  126. pygpi/entry.py +34 -17
  127. cocotb/binary.py +0 -858
  128. cocotb/config.py +0 -289
  129. cocotb/decorators.py +0 -332
  130. cocotb/memdebug.py +0 -35
  131. cocotb/outcomes.py +0 -56
  132. cocotb/scheduler.py +0 -1099
  133. cocotb/share/makefiles/Makefile.deprecations +0 -12
  134. cocotb/share/makefiles/simulators/Makefile.cvc +0 -94
  135. cocotb/share/makefiles/simulators/Makefile.icarus +0 -111
  136. cocotb/share/makefiles/simulators/Makefile.ius +0 -125
  137. cocotb/share/makefiles/simulators/Makefile.modelsim +0 -32
  138. cocotb/share/makefiles/simulators/Makefile.nvc +0 -64
  139. cocotb/share/makefiles/simulators/Makefile.vcs +0 -98
  140. cocotb/types/array.py +0 -309
  141. cocotb/types/logic.py +0 -292
  142. cocotb/types/logic_array.py +0 -298
  143. cocotb/wavedrom.py +0 -199
  144. cocotb/xunit_reporter.py +0 -80
  145. cocotb-1.9.2.dist-info/METADATA +0 -170
  146. cocotb-1.9.2.dist-info/RECORD +0 -121
  147. cocotb-1.9.2.dist-info/entry_points.txt +0 -3
  148. {cocotb-1.9.2.dist-info → cocotb-2.0.0b1.dist-info}/LICENSE +0 -0
  149. {cocotb-1.9.2.dist-info → cocotb-2.0.0b1.dist-info}/WHEEL +0 -0
  150. {cocotb/_vendor → cocotb_tools}/__init__.py +0 -0
  151. {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
- #if VM_TRACE_FST
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
- Verilated::traceEverOn(true);
110
- top->trace(tfp.get(), 99);
129
+ tfp = new verilated_trace_t;
130
+ top->trace(tfp, 99);
111
131
  tfp->open(traceFile);
112
132
  }
113
133
  #endif
114
134
 
115
- while (!Verilated::gotFinish()) {
116
- // Call registered timed callbacks (e.g. clock timer)
117
- // These are called at the beginning of the time step
118
- // before the iterative regions (IEEE 1800-2012 4.4.1)
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
- // Call registered ReadWrite callbacks
136
- again |= VerilatedVpi::callCbs(cbReadWriteSynch);
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 (traceOn) {
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 Value Change callbacks triggered by NextTimeStep callbacks
174
- // These can modify signal values
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
- #if VM_TRACE
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