esiaccel 0.1.5.dev205__cp310-cp310-win_amd64.whl → 0.1.5.dev219__cp310-cp310-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 esiaccel might be problematic. Click here for more details.
- esiaccel/CosimBackend.dll +0 -0
- esiaccel/ESICppRuntime.dll +0 -0
- esiaccel/EsiCosimDpiServer.dll +0 -0
- esiaccel/MtiPli.dll +0 -0
- esiaccel/cosim/driver.cpp +6 -6
- esiaccel/cosim/simulator.py +159 -35
- esiaccel/cosim/verilator.py +21 -5
- esiaccel/esiCppAccel.cp310-win_amd64.pyd +0 -0
- esiaccel/esiquery.exe +0 -0
- {esiaccel-0.1.5.dev205.dist-info → esiaccel-0.1.5.dev219.dist-info}/METADATA +1 -1
- {esiaccel-0.1.5.dev205.dist-info → esiaccel-0.1.5.dev219.dist-info}/RECORD +15 -15
- {esiaccel-0.1.5.dev205.dist-info → esiaccel-0.1.5.dev219.dist-info}/WHEEL +0 -0
- {esiaccel-0.1.5.dev205.dist-info → esiaccel-0.1.5.dev219.dist-info}/entry_points.txt +0 -0
- {esiaccel-0.1.5.dev205.dist-info → esiaccel-0.1.5.dev219.dist-info}/licenses/LICENSE +0 -0
- {esiaccel-0.1.5.dev205.dist-info → esiaccel-0.1.5.dev219.dist-info}/top_level.txt +0 -0
esiaccel/CosimBackend.dll
CHANGED
|
Binary file
|
esiaccel/ESICppRuntime.dll
CHANGED
|
Binary file
|
esiaccel/EsiCosimDpiServer.dll
CHANGED
|
Binary file
|
esiaccel/MtiPli.dll
CHANGED
|
Binary file
|
esiaccel/cosim/driver.cpp
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
#include CONCAT3(V,TOP_MODULE,.h)
|
|
31
31
|
// clang-format on
|
|
32
32
|
|
|
33
|
-
#include "
|
|
33
|
+
#include "verilated_fst_c.h"
|
|
34
34
|
|
|
35
35
|
#include "signal.h"
|
|
36
36
|
#include <iostream>
|
|
@@ -64,12 +64,12 @@ int main(int argc, char **argv) {
|
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
#ifdef TRACE
|
|
67
|
-
|
|
67
|
+
VerilatedFstC *tfp = nullptr;
|
|
68
68
|
#endif
|
|
69
69
|
|
|
70
70
|
if (waveformFile) {
|
|
71
71
|
#ifdef TRACE
|
|
72
|
-
tfp = new
|
|
72
|
+
tfp = new VerilatedFstC();
|
|
73
73
|
Verilated::traceEverOn(true);
|
|
74
74
|
dut.trace(tfp, 99); // Trace 99 levels of hierarchy
|
|
75
75
|
tfp->open(waveformFile);
|
|
@@ -95,11 +95,11 @@ int main(int argc, char **argv) {
|
|
|
95
95
|
// Run for a few cycles with reset held.
|
|
96
96
|
for (timeStamp = 0; timeStamp < 8 && !Verilated::gotFinish(); timeStamp++) {
|
|
97
97
|
dut.eval();
|
|
98
|
-
dut.clk = !dut.clk;
|
|
99
98
|
#ifdef TRACE
|
|
100
99
|
if (tfp)
|
|
101
100
|
tfp->dump(timeStamp);
|
|
102
101
|
#endif
|
|
102
|
+
dut.clk = !dut.clk;
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
// Take simulation out of reset.
|
|
@@ -108,12 +108,12 @@ int main(int argc, char **argv) {
|
|
|
108
108
|
// Run for the specified number of cycles out of reset.
|
|
109
109
|
for (; !Verilated::gotFinish() && !stopSimulation; timeStamp++) {
|
|
110
110
|
dut.eval();
|
|
111
|
-
dut.clk = !dut.clk;
|
|
112
|
-
|
|
113
111
|
#ifdef TRACE
|
|
114
112
|
if (tfp)
|
|
115
113
|
tfp->dump(timeStamp);
|
|
116
114
|
#endif
|
|
115
|
+
dut.clk = !dut.clk;
|
|
116
|
+
|
|
117
117
|
if (debugPeriod)
|
|
118
118
|
std::this_thread::sleep_for(std::chrono::milliseconds(debugPeriod));
|
|
119
119
|
}
|
esiaccel/cosim/simulator.py
CHANGED
|
@@ -9,7 +9,8 @@ import socket
|
|
|
9
9
|
import subprocess
|
|
10
10
|
import time
|
|
11
11
|
from pathlib import Path
|
|
12
|
-
from typing import Dict, List
|
|
12
|
+
from typing import Dict, List, Optional, Callable, IO
|
|
13
|
+
import threading
|
|
13
14
|
|
|
14
15
|
_thisdir = Path(__file__).parent
|
|
15
16
|
CosimCollateralDir = _thisdir
|
|
@@ -77,9 +78,13 @@ class SourceFiles:
|
|
|
77
78
|
|
|
78
79
|
class SimProcess:
|
|
79
80
|
|
|
80
|
-
def __init__(self,
|
|
81
|
+
def __init__(self,
|
|
82
|
+
proc: subprocess.Popen,
|
|
83
|
+
port: int,
|
|
84
|
+
threads: Optional[List[threading.Thread]] = None):
|
|
81
85
|
self.proc = proc
|
|
82
86
|
self.port = port
|
|
87
|
+
self.threads: List[threading.Thread] = threads or []
|
|
83
88
|
|
|
84
89
|
def force_stop(self):
|
|
85
90
|
"""Make sure to stop the simulation no matter what."""
|
|
@@ -92,6 +97,10 @@ class SimProcess:
|
|
|
92
97
|
# If the simulation doesn't exit of its own free will, kill it.
|
|
93
98
|
self.proc.kill()
|
|
94
99
|
|
|
100
|
+
# Join reader threads (they should exit once pipes are closed).
|
|
101
|
+
for t in self.threads:
|
|
102
|
+
t.join()
|
|
103
|
+
|
|
95
104
|
|
|
96
105
|
class Simulator:
|
|
97
106
|
|
|
@@ -100,11 +109,72 @@ class Simulator:
|
|
|
100
109
|
# broken behavior by overriding this.
|
|
101
110
|
UsesStderr = True
|
|
102
111
|
|
|
103
|
-
def __init__(self,
|
|
112
|
+
def __init__(self,
|
|
113
|
+
sources: SourceFiles,
|
|
114
|
+
run_dir: Path,
|
|
115
|
+
debug: bool,
|
|
116
|
+
run_stdout_callback: Optional[Callable[[str], None]] = None,
|
|
117
|
+
run_stderr_callback: Optional[Callable[[str], None]] = None,
|
|
118
|
+
compile_stdout_callback: Optional[Callable[[str], None]] = None,
|
|
119
|
+
compile_stderr_callback: Optional[Callable[[str], None]] = None,
|
|
120
|
+
make_default_logs: bool = True):
|
|
121
|
+
"""Simulator base class.
|
|
122
|
+
|
|
123
|
+
Optional sinks can be provided for capturing output. If not provided,
|
|
124
|
+
the simulator will write to log files in `run_dir`.
|
|
125
|
+
|
|
126
|
+
Args:
|
|
127
|
+
sources: SourceFiles describing RTL/DPI inputs.
|
|
128
|
+
run_dir: Directory where build/run artifacts are placed.
|
|
129
|
+
debug: Enable cosim debug mode.
|
|
130
|
+
run_stdout_callback: Line-based callback for runtime stdout.
|
|
131
|
+
run_stderr_callback: Line-based callback for runtime stderr.
|
|
132
|
+
compile_stdout_callback: Line-based callback for compile stdout.
|
|
133
|
+
compile_stderr_callback: Line-based callback for compile stderr.
|
|
134
|
+
make_default_logs: If True and corresponding callback is not supplied,
|
|
135
|
+
create log file and emit via internally-created callback.
|
|
136
|
+
"""
|
|
104
137
|
self.sources = sources
|
|
105
138
|
self.run_dir = run_dir
|
|
106
139
|
self.debug = debug
|
|
107
140
|
|
|
141
|
+
# Unified list of any log file handles we opened.
|
|
142
|
+
self._default_files: List[IO[str]] = []
|
|
143
|
+
|
|
144
|
+
def _ensure_default(cb: Optional[Callable[[str], None]], filename: str):
|
|
145
|
+
"""Return (callback, file_handle_or_None) with optional file creation.
|
|
146
|
+
|
|
147
|
+
Behavior:
|
|
148
|
+
* If a callback is provided, return it unchanged with no file.
|
|
149
|
+
* If no callback and make_default_logs is False, return (None, None).
|
|
150
|
+
* If no callback and make_default_logs is True, create a log file and
|
|
151
|
+
return a writer callback plus the opened file handle.
|
|
152
|
+
"""
|
|
153
|
+
if cb is not None:
|
|
154
|
+
return cb, None
|
|
155
|
+
if not make_default_logs:
|
|
156
|
+
return None, None
|
|
157
|
+
p = self.run_dir / filename
|
|
158
|
+
p.parent.mkdir(parents=True, exist_ok=True)
|
|
159
|
+
logf = p.open("w+")
|
|
160
|
+
self._default_files.append(logf)
|
|
161
|
+
|
|
162
|
+
def _writer(line: str, _lf=logf):
|
|
163
|
+
_lf.write(line + "\n")
|
|
164
|
+
_lf.flush()
|
|
165
|
+
|
|
166
|
+
return _writer, logf
|
|
167
|
+
|
|
168
|
+
# Initialize all four (compile/run stdout/stderr) uniformly.
|
|
169
|
+
self._compile_stdout_cb, self._compile_stdout_log = _ensure_default(
|
|
170
|
+
compile_stdout_callback, 'compile_stdout.log')
|
|
171
|
+
self._compile_stderr_cb, self._compile_stderr_log = _ensure_default(
|
|
172
|
+
compile_stderr_callback, 'compile_stderr.log')
|
|
173
|
+
self._run_stdout_cb, self._run_stdout_log = _ensure_default(
|
|
174
|
+
run_stdout_callback, 'sim_stdout.log')
|
|
175
|
+
self._run_stderr_cb, self._run_stderr_log = _ensure_default(
|
|
176
|
+
run_stderr_callback, 'sim_stderr.log')
|
|
177
|
+
|
|
108
178
|
@staticmethod
|
|
109
179
|
def get_env() -> Dict[str, str]:
|
|
110
180
|
"""Get the environment variables to locate shared objects."""
|
|
@@ -123,23 +193,29 @@ class Simulator:
|
|
|
123
193
|
def compile(self) -> int:
|
|
124
194
|
cmds = self.compile_commands()
|
|
125
195
|
self.run_dir.mkdir(parents=True, exist_ok=True)
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
196
|
+
for cmd in cmds:
|
|
197
|
+
ret = self._start_process_with_callbacks(
|
|
198
|
+
cmd,
|
|
199
|
+
env=Simulator.get_env(),
|
|
200
|
+
cwd=None,
|
|
201
|
+
stdout_cb=self._compile_stdout_cb,
|
|
202
|
+
stderr_cb=self._compile_stderr_cb,
|
|
203
|
+
wait=True)
|
|
204
|
+
if isinstance(ret, int) and ret != 0:
|
|
205
|
+
print("====== Compilation failure")
|
|
206
|
+
|
|
207
|
+
# If we have the default file loggers, print the compilation logs to
|
|
208
|
+
# console. Else, assume that the user has already captured them.
|
|
209
|
+
if self.UsesStderr:
|
|
210
|
+
if self._compile_stderr_log is not None:
|
|
211
|
+
self._compile_stderr_log.seek(0)
|
|
212
|
+
print(self._compile_stderr_log.read())
|
|
213
|
+
else:
|
|
214
|
+
if self._compile_stdout_log is not None:
|
|
215
|
+
self._compile_stdout_log.seek(0)
|
|
216
|
+
print(self._compile_stdout_log.read())
|
|
217
|
+
|
|
218
|
+
return ret
|
|
143
219
|
return 0
|
|
144
220
|
|
|
145
221
|
def run_command(self, gui: bool) -> List[str]:
|
|
@@ -148,11 +224,12 @@ class Simulator:
|
|
|
148
224
|
|
|
149
225
|
def run_proc(self, gui: bool = False) -> SimProcess:
|
|
150
226
|
"""Run the simulation process. Returns the Popen object and the port which
|
|
151
|
-
the simulation is listening on.
|
|
152
|
-
|
|
227
|
+
the simulation is listening on.
|
|
228
|
+
|
|
229
|
+
If user-provided stdout/stderr sinks were supplied in the constructor,
|
|
230
|
+
they are used. Otherwise, log files are created in `run_dir`.
|
|
231
|
+
"""
|
|
153
232
|
self.run_dir.mkdir(parents=True, exist_ok=True)
|
|
154
|
-
simStdout = open(self.run_dir / "sim_stdout.log", "w")
|
|
155
|
-
simStderr = open(self.run_dir / "sim_stderr.log", "w")
|
|
156
233
|
|
|
157
234
|
# Erase the config file if it exists. We don't want to read
|
|
158
235
|
# an old config.
|
|
@@ -168,19 +245,19 @@ class Simulator:
|
|
|
168
245
|
# Slow the simulation down to one tick per millisecond.
|
|
169
246
|
simEnv["DEBUG_PERIOD"] = "1"
|
|
170
247
|
rcmd = self.run_command(gui)
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
248
|
+
# Start process with asynchronous output capture.
|
|
249
|
+
proc, threads = self._start_process_with_callbacks(
|
|
250
|
+
rcmd,
|
|
251
|
+
env=simEnv,
|
|
252
|
+
cwd=self.run_dir,
|
|
253
|
+
stdout_cb=self._run_stdout_cb,
|
|
254
|
+
stderr_cb=self._run_stderr_cb,
|
|
255
|
+
wait=False)
|
|
179
256
|
|
|
180
257
|
# Get the port which the simulation RPC selected.
|
|
181
258
|
checkCount = 0
|
|
182
259
|
while (not os.path.exists(portFileName)) and \
|
|
183
|
-
|
|
260
|
+
proc.poll() is None:
|
|
184
261
|
time.sleep(0.1)
|
|
185
262
|
checkCount += 1
|
|
186
263
|
if checkCount > 500 and not gui:
|
|
@@ -200,10 +277,57 @@ class Simulator:
|
|
|
200
277
|
checkCount += 1
|
|
201
278
|
if checkCount > 200:
|
|
202
279
|
raise Exception(f"Cosim RPC port ({port}) never opened")
|
|
203
|
-
if
|
|
280
|
+
if proc.poll() is not None:
|
|
204
281
|
raise Exception("Simulation exited early")
|
|
205
282
|
time.sleep(0.05)
|
|
206
|
-
return SimProcess(proc=
|
|
283
|
+
return SimProcess(proc=proc, port=port, threads=threads)
|
|
284
|
+
|
|
285
|
+
def _start_process_with_callbacks(
|
|
286
|
+
self, cmd: List[str], env: Optional[Dict[str, str]], cwd: Optional[Path],
|
|
287
|
+
stdout_cb: Optional[Callable[[str],
|
|
288
|
+
None]], stderr_cb: Optional[Callable[[str],
|
|
289
|
+
None]],
|
|
290
|
+
wait: bool) -> int | tuple[subprocess.Popen, List[threading.Thread]]:
|
|
291
|
+
"""Start a subprocess and stream its stdout/stderr to callbacks.
|
|
292
|
+
|
|
293
|
+
If wait is True, blocks until process completes and returns its exit code.
|
|
294
|
+
If wait is False, returns the Popen object (threads keep streaming).
|
|
295
|
+
"""
|
|
296
|
+
proc = subprocess.Popen(cmd,
|
|
297
|
+
stdout=subprocess.PIPE,
|
|
298
|
+
stderr=subprocess.PIPE,
|
|
299
|
+
env=env,
|
|
300
|
+
cwd=cwd,
|
|
301
|
+
text=True,
|
|
302
|
+
preexec_fn=os.setsid)
|
|
303
|
+
|
|
304
|
+
def _reader(pipe, cb):
|
|
305
|
+
if pipe is None:
|
|
306
|
+
return
|
|
307
|
+
for raw in pipe:
|
|
308
|
+
if raw.endswith('\n'):
|
|
309
|
+
raw = raw[:-1]
|
|
310
|
+
if cb:
|
|
311
|
+
try:
|
|
312
|
+
cb(raw)
|
|
313
|
+
except Exception as e:
|
|
314
|
+
print(f"Exception in simulator output callback: {e}")
|
|
315
|
+
|
|
316
|
+
threads: List[threading.Thread] = [
|
|
317
|
+
threading.Thread(target=_reader,
|
|
318
|
+
args=(proc.stdout, stdout_cb),
|
|
319
|
+
daemon=True),
|
|
320
|
+
threading.Thread(target=_reader,
|
|
321
|
+
args=(proc.stderr, stderr_cb),
|
|
322
|
+
daemon=True),
|
|
323
|
+
]
|
|
324
|
+
for t in threads:
|
|
325
|
+
t.start()
|
|
326
|
+
if wait:
|
|
327
|
+
for t in threads:
|
|
328
|
+
t.join()
|
|
329
|
+
return proc.wait()
|
|
330
|
+
return proc, threads
|
|
207
331
|
|
|
208
332
|
def run(self,
|
|
209
333
|
inner_command: str,
|
esiaccel/cosim/verilator.py
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import os
|
|
6
6
|
from pathlib import Path
|
|
7
|
-
from typing import List
|
|
7
|
+
from typing import List, Optional, Callable
|
|
8
8
|
|
|
9
9
|
from .simulator import CosimCollateralDir, Simulator, SourceFiles
|
|
10
10
|
|
|
@@ -14,9 +14,23 @@ class Verilator(Simulator):
|
|
|
14
14
|
|
|
15
15
|
DefaultDriver = CosimCollateralDir / "driver.cpp"
|
|
16
16
|
|
|
17
|
-
def __init__(self,
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
def __init__(self,
|
|
18
|
+
sources: SourceFiles,
|
|
19
|
+
run_dir: Path,
|
|
20
|
+
debug: bool,
|
|
21
|
+
run_stdout_callback: Optional[Callable[[str], None]] = None,
|
|
22
|
+
run_stderr_callback: Optional[Callable[[str], None]] = None,
|
|
23
|
+
compile_stdout_callback: Optional[Callable[[str], None]] = None,
|
|
24
|
+
compile_stderr_callback: Optional[Callable[[str], None]] = None,
|
|
25
|
+
make_default_logs: bool = True):
|
|
26
|
+
super().__init__(sources=sources,
|
|
27
|
+
run_dir=run_dir,
|
|
28
|
+
debug=debug,
|
|
29
|
+
run_stdout_callback=run_stdout_callback,
|
|
30
|
+
run_stderr_callback=run_stderr_callback,
|
|
31
|
+
compile_stdout_callback=compile_stdout_callback,
|
|
32
|
+
compile_stderr_callback=compile_stderr_callback,
|
|
33
|
+
make_default_logs=make_default_logs)
|
|
20
34
|
self.verilator = "verilator"
|
|
21
35
|
if "VERILATOR_PATH" in os.environ:
|
|
22
36
|
self.verilator = os.environ["VERILATOR_PATH"]
|
|
@@ -36,6 +50,7 @@ class Verilator(Simulator):
|
|
|
36
50
|
"-j",
|
|
37
51
|
"0",
|
|
38
52
|
"--output-split",
|
|
53
|
+
"--autoflush",
|
|
39
54
|
"--assert",
|
|
40
55
|
str(Verilator.DefaultDriver),
|
|
41
56
|
]
|
|
@@ -44,7 +59,8 @@ class Verilator(Simulator):
|
|
|
44
59
|
]
|
|
45
60
|
if self.debug:
|
|
46
61
|
cmd += [
|
|
47
|
-
"--trace", "--trace-params", "--trace-structs",
|
|
62
|
+
"--trace-fst", "--trace-params", "--trace-structs",
|
|
63
|
+
"--trace-underscore"
|
|
48
64
|
]
|
|
49
65
|
cflags.append("-DTRACE")
|
|
50
66
|
if len(cflags) > 0:
|
|
Binary file
|
esiaccel/esiquery.exe
CHANGED
|
Binary file
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
esiaccel/CosimBackend.dll,sha256=
|
|
1
|
+
esiaccel/CosimBackend.dll,sha256=gv4zdYNkWWfl8SqDoJD0a0npN8bxNhbg6kmXm9Cilns,7152128
|
|
2
2
|
esiaccel/CosimBackend.lib,sha256=5tnhX-BFxzlslXNsblCWXjY583sDW4lFLGNch7hzWZw,4992924
|
|
3
|
-
esiaccel/ESICppRuntime.dll,sha256=
|
|
3
|
+
esiaccel/ESICppRuntime.dll,sha256=RCUzlkQe4jEYFi60YJ0p9JKM4OwJqL1jnfcKPQnGPyo,4078592
|
|
4
4
|
esiaccel/ESICppRuntime.lib,sha256=tltAogZ3c0ryYHirOXz_qltr5aNdoquZ-Q4yVqim3FY,15154004
|
|
5
|
-
esiaccel/EsiCosimDpiServer.dll,sha256=
|
|
5
|
+
esiaccel/EsiCosimDpiServer.dll,sha256=S0PLWyaczCXiGBhv_SE4OItMd-sifwTuGP98CKoDtL4,159744
|
|
6
6
|
esiaccel/EsiCosimDpiServer.lib,sha256=zn3bIX10e2HQtwZOi1xpqeNfy4AdZm8Jx634HVTVQ8w,604164
|
|
7
|
-
esiaccel/MtiPli.dll,sha256=
|
|
7
|
+
esiaccel/MtiPli.dll,sha256=cf9849glljrzIqy3PU9YOKgy2Gu2rmhKvZjqzh9caB8,14848
|
|
8
8
|
esiaccel/MtiPli.lib,sha256=juJ2Asmv6cnozNPpXvGeKkieYFcXK8MOYmDQZz-dAy4,14570
|
|
9
9
|
esiaccel/__init__.py,sha256=65xXWHwJwRePsyhWk837NpzuN0qsNhoAX29TOiSYKGc,905
|
|
10
10
|
esiaccel/accelerator.py,sha256=BcXPsUqcQV3YsVVyYbz9P6JnZLlcnuageFbJwID9_3s,3318
|
|
11
11
|
esiaccel/codegen.py,sha256=uoYELtnIabVvgLeCABj-mWras0BvmSKABPH-cd9nDFk,6560
|
|
12
12
|
esiaccel/esi-cosim.py,sha256=P7n3SBgKPnXynwghY5zK1FmpqZkbC_YxfVIvNNQNl6Q,3817
|
|
13
|
-
esiaccel/esiCppAccel.cp310-win_amd64.pyd,sha256=
|
|
14
|
-
esiaccel/esiquery.exe,sha256=
|
|
13
|
+
esiaccel/esiCppAccel.cp310-win_amd64.pyd,sha256=_O77kB5_9DLR4bJhYOkej9us0HmzCDRAHUKfc-HwbpU,500224
|
|
14
|
+
esiaccel/esiquery.exe,sha256=5npeIusbkzy8DrvMT_bHdMrNU9rrqVt5Bc7b7VgaDIo,441856
|
|
15
15
|
esiaccel/types.py,sha256=LFLzUCvtYF6FLsmKet6eJTMq2ija2Z5kxd5Ks6tkS4U,19044
|
|
16
16
|
esiaccel/utils.py,sha256=q-8fmgJ9tUvmBsIvqZiZ7u845IJhOjvjYTQLhhrNYl0,1515
|
|
17
17
|
esiaccel/cmake/esiaccelConfig.cmake,sha256=u2aW99k1lEcmYTG1P3BTJqtmDrj53wUUaBz_jzw8kYY,565
|
|
18
18
|
esiaccel/cosim/Cosim_DpiPkg.sv,sha256=9qGn1VyAVrzBP5At1thV6xrovg0WghICD01Zz9J221E,3458
|
|
19
19
|
esiaccel/cosim/Cosim_Endpoint.sv,sha256=2F7UQYWavUlWx7Iqi_6iawn5geZRPG96H8rDBBDRAQ0,8391
|
|
20
20
|
esiaccel/cosim/Cosim_Manifest.sv,sha256=vl9b6XieEkP880IBw1ferekBnDJwFanZZggJJGertXM,1123
|
|
21
|
-
esiaccel/cosim/driver.cpp,sha256=
|
|
21
|
+
esiaccel/cosim/driver.cpp,sha256=Lvmo03pzzhoswdxAtdXAm-oU6UkfTyl1LgoCpyDzLhY,3842
|
|
22
22
|
esiaccel/cosim/driver.sv,sha256=ro-j9GM164A1W0MDPkqYfEn3TUKHSqVvgjO31fnloQI,1428
|
|
23
23
|
esiaccel/cosim/questa.py,sha256=d6PnjzRxQpu47Zpez6hmzTc_aMQdrmQRSmnpOXSPFVU,2386
|
|
24
|
-
esiaccel/cosim/simulator.py,sha256=
|
|
25
|
-
esiaccel/cosim/verilator.py,sha256=
|
|
24
|
+
esiaccel/cosim/simulator.py,sha256=aWhEjuAwdzgAIRUsW9yC2ACBIbdxbmMhJSGnH-OP_n0,12975
|
|
25
|
+
esiaccel/cosim/verilator.py,sha256=WPZT14EkjtF1214P2noZyQC58GR7021xWaQ5oQwVcIg,2696
|
|
26
26
|
esiaccel/include/esi/Accelerator.h,sha256=RhkZ2HeMZ0iHc5BkHdDWXoeg9J9lyPQciH5bWq5Qc_w,9772
|
|
27
27
|
esiaccel/include/esi/CLI.h,sha256=Nn8tHn_xtEfkrD7USE2tao6ktYOJ6xcbnhZkS9-ox0A,2540
|
|
28
28
|
esiaccel/include/esi/Common.h,sha256=IGJvAU72dlearXFbSmlXFFriy8aomirp7opEBjgewek,5775
|
|
@@ -38,9 +38,9 @@ esiaccel/include/esi/Utils.h,sha256=KPd75GajIFeTBVJocXBjwsJqhbZg-ShWZCIe3oQdBss,
|
|
|
38
38
|
esiaccel/include/esi/backends/Cosim.h,sha256=s7vYd0ra6m1nvk-n37MjvBoGVI-CCUKBt0DU4PKlaHM,2838
|
|
39
39
|
esiaccel/include/esi/backends/RpcServer.h,sha256=WMwnhwU2qnrcglGNeiKg9QQHpkDx1QE1JydKYDK4jqE,1856
|
|
40
40
|
esiaccel/include/esi/backends/Trace.h,sha256=kx4wwLH3a0ndmRUdaDyYGZ1SP83zlpFrk30Nw8ZrJJA,3286
|
|
41
|
-
esiaccel-0.1.5.
|
|
42
|
-
esiaccel-0.1.5.
|
|
43
|
-
esiaccel-0.1.5.
|
|
44
|
-
esiaccel-0.1.5.
|
|
45
|
-
esiaccel-0.1.5.
|
|
46
|
-
esiaccel-0.1.5.
|
|
41
|
+
esiaccel-0.1.5.dev219.dist-info/licenses/LICENSE,sha256=vtnVnB8_lN1yPYcA5MeT56R8UsQtBhyzZLBvu_KMf7I,13468
|
|
42
|
+
esiaccel-0.1.5.dev219.dist-info/METADATA,sha256=f-XqGqrEMBo0ogpjlkVr9oUcYU2Yafo8diGbgjK4ePM,16148
|
|
43
|
+
esiaccel-0.1.5.dev219.dist-info/WHEEL,sha256=KUuBC6lxAbHCKilKua8R9W_TM71_-9Sg5uEP3uDWcoU,101
|
|
44
|
+
esiaccel-0.1.5.dev219.dist-info/entry_points.txt,sha256=_CuNLV0fyTURxRREFwpzGycifZW_-7-MyuJNEwKK9J8,137
|
|
45
|
+
esiaccel-0.1.5.dev219.dist-info/top_level.txt,sha256=fYWTWMDK4PDu4ePQ9NtcFHas2k8-d1kWhTs2avPpgB4,9
|
|
46
|
+
esiaccel-0.1.5.dev219.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|