esiaccel 0.0.17.dev447__cp310-cp310-win_amd64.whl → 0.1.5.dev406__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/CosimBackend.lib +0 -0
- esiaccel/ESICppRuntime.dll +0 -0
- esiaccel/ESICppRuntime.lib +0 -0
- esiaccel/EsiCosimDpiServer.dll +0 -0
- esiaccel/EsiCosimDpiServer.lib +0 -0
- esiaccel/MtiPli.dll +0 -0
- esiaccel/MtiPli.lib +0 -0
- esiaccel/__init__.py +10 -1
- esiaccel/abseil_dll.dll +0 -0
- esiaccel/accelerator.py +7 -0
- esiaccel/cares.dll +0 -0
- esiaccel/cmake/esiaccelConfig.cmake +1 -1
- esiaccel/cosim/Cosim_DpiPkg.sv +85 -0
- esiaccel/cosim/Cosim_Endpoint.sv +218 -0
- esiaccel/cosim/Cosim_Manifest.sv +32 -0
- esiaccel/cosim/driver.cpp +131 -0
- esiaccel/cosim/driver.sv +74 -0
- esiaccel/cosim/questa.py +141 -0
- esiaccel/cosim/simulator.py +382 -0
- esiaccel/cosim/verilator.py +92 -0
- esiaccel/esi-cosim.py +104 -0
- esiaccel/esiCppAccel.cp310-win_amd64.pyd +0 -0
- esiaccel/esiquery.exe +0 -0
- esiaccel/include/esi/Accelerator.h +31 -15
- esiaccel/include/esi/CLI.h +77 -0
- esiaccel/include/esi/Common.h +32 -3
- esiaccel/include/esi/Context.h +1 -1
- esiaccel/include/esi/Design.h +11 -4
- esiaccel/include/esi/Engines.h +124 -0
- esiaccel/include/esi/Logging.h +57 -7
- esiaccel/include/esi/Manifest.h +0 -2
- esiaccel/include/esi/Ports.h +47 -6
- esiaccel/include/esi/Services.h +144 -41
- esiaccel/include/esi/Types.h +103 -5
- esiaccel/include/esi/Values.h +313 -0
- esiaccel/include/esi/backends/Cosim.h +85 -0
- esiaccel/include/esi/backends/RpcServer.h +55 -0
- esiaccel/include/esi/backends/Trace.h +5 -6
- esiaccel/libcrypto-3-x64.dll +0 -0
- esiaccel/libprotobuf.dll +0 -0
- esiaccel/libssl-3-x64.dll +0 -0
- esiaccel/re2.dll +0 -0
- esiaccel/types.py +132 -26
- esiaccel/utils.py +21 -3
- esiaccel/zlib1.dll +0 -0
- {esiaccel-0.0.17.dev447.dist-info → esiaccel-0.1.5.dev406.dist-info}/METADATA +3 -3
- esiaccel-0.1.5.dev406.dist-info/RECORD +54 -0
- {esiaccel-0.0.17.dev447.dist-info → esiaccel-0.1.5.dev406.dist-info}/WHEEL +1 -1
- esiaccel/bin/esiquery.exe +0 -0
- esiaccel-0.0.17.dev447.dist-info/RECORD +0 -28
- {esiaccel-0.0.17.dev447.dist-info → esiaccel-0.1.5.dev406.dist-info}/entry_points.txt +0 -0
- {esiaccel-0.0.17.dev447.dist-info → esiaccel-0.1.5.dev406.dist-info/licenses}/LICENSE +0 -0
- {esiaccel-0.0.17.dev447.dist-info → esiaccel-0.1.5.dev406.dist-info}/top_level.txt +0 -0
esiaccel/types.py
CHANGED
|
@@ -15,31 +15,45 @@ from __future__ import annotations
|
|
|
15
15
|
from . import esiCppAccel as cpp
|
|
16
16
|
|
|
17
17
|
from typing import TYPE_CHECKING
|
|
18
|
+
|
|
18
19
|
if TYPE_CHECKING:
|
|
19
20
|
from .accelerator import HWModule
|
|
20
21
|
|
|
21
22
|
from concurrent.futures import Future
|
|
22
23
|
from typing import Any, Callable, Dict, List, Optional, Tuple, Type, Union
|
|
24
|
+
import sys
|
|
25
|
+
import traceback
|
|
23
26
|
|
|
24
27
|
|
|
25
28
|
def _get_esi_type(cpp_type: cpp.Type):
|
|
26
29
|
"""Get the wrapper class for a C++ type."""
|
|
27
|
-
|
|
30
|
+
if isinstance(cpp_type, cpp.ChannelType):
|
|
31
|
+
return _get_esi_type(cpp_type.inner)
|
|
32
|
+
|
|
33
|
+
for cpp_type_cls, wrapper_cls in __esi_mapping.items():
|
|
28
34
|
if isinstance(cpp_type, cpp_type_cls):
|
|
29
|
-
return
|
|
30
|
-
return ESIType(cpp_type)
|
|
35
|
+
return wrapper_cls.wrap_cpp(cpp_type)
|
|
36
|
+
return ESIType.wrap_cpp(cpp_type)
|
|
31
37
|
|
|
32
38
|
|
|
33
|
-
# Mapping from C++ types to
|
|
34
|
-
|
|
35
|
-
__esi_mapping: Dict[Type, Callable] = {
|
|
36
|
-
cpp.ChannelType: lambda cpp_type: _get_esi_type(cpp_type.inner)
|
|
37
|
-
}
|
|
39
|
+
# Mapping from C++ types to wrapper classes
|
|
40
|
+
__esi_mapping: Dict[Type, Type] = {}
|
|
38
41
|
|
|
39
42
|
|
|
40
43
|
class ESIType:
|
|
41
44
|
|
|
42
|
-
def __init__(self,
|
|
45
|
+
def __init__(self, id: str):
|
|
46
|
+
self._init_from_cpp(cpp.Type(id))
|
|
47
|
+
|
|
48
|
+
@classmethod
|
|
49
|
+
def wrap_cpp(cls, cpp_type: cpp.Type):
|
|
50
|
+
"""Wrap a C++ ESI type with its corresponding Python ESI Type."""
|
|
51
|
+
instance = cls.__new__(cls)
|
|
52
|
+
instance._init_from_cpp(cpp_type)
|
|
53
|
+
return instance
|
|
54
|
+
|
|
55
|
+
def _init_from_cpp(self, cpp_type: cpp.Type):
|
|
56
|
+
"""Initialize instance attributes from a C++ type object."""
|
|
43
57
|
self.cpp_type = cpp_type
|
|
44
58
|
|
|
45
59
|
@property
|
|
@@ -84,6 +98,9 @@ class ESIType:
|
|
|
84
98
|
|
|
85
99
|
class VoidType(ESIType):
|
|
86
100
|
|
|
101
|
+
def __init__(self, id: str):
|
|
102
|
+
self._init_from_cpp(cpp.VoidType(id))
|
|
103
|
+
|
|
87
104
|
def is_valid(self, obj) -> Tuple[bool, Optional[str]]:
|
|
88
105
|
if obj is not None:
|
|
89
106
|
return (False, f"void type cannot must represented by None, not {obj}")
|
|
@@ -108,8 +125,8 @@ __esi_mapping[cpp.VoidType] = VoidType
|
|
|
108
125
|
|
|
109
126
|
class BitsType(ESIType):
|
|
110
127
|
|
|
111
|
-
def __init__(self,
|
|
112
|
-
self.
|
|
128
|
+
def __init__(self, id: str, width: int):
|
|
129
|
+
self._init_from_cpp(cpp.BitsType(id, width))
|
|
113
130
|
|
|
114
131
|
def is_valid(self, obj) -> Tuple[bool, Optional[str]]:
|
|
115
132
|
if not isinstance(obj, (bytearray, bytes, list)):
|
|
@@ -141,8 +158,8 @@ __esi_mapping[cpp.BitsType] = BitsType
|
|
|
141
158
|
|
|
142
159
|
class IntType(ESIType):
|
|
143
160
|
|
|
144
|
-
def __init__(self,
|
|
145
|
-
self.
|
|
161
|
+
def __init__(self, id: str, width: int):
|
|
162
|
+
self._init_from_cpp(cpp.IntegerType(id, width))
|
|
146
163
|
|
|
147
164
|
@property
|
|
148
165
|
def bit_width(self) -> int:
|
|
@@ -151,6 +168,9 @@ class IntType(ESIType):
|
|
|
151
168
|
|
|
152
169
|
class UIntType(IntType):
|
|
153
170
|
|
|
171
|
+
def __init__(self, id: str, width: int):
|
|
172
|
+
self._init_from_cpp(cpp.UIntType(id, width))
|
|
173
|
+
|
|
154
174
|
def is_valid(self, obj) -> Tuple[bool, Optional[str]]:
|
|
155
175
|
if not isinstance(obj, int):
|
|
156
176
|
return (False, f"must be an int, not {type(obj)}")
|
|
@@ -174,6 +194,9 @@ __esi_mapping[cpp.UIntType] = UIntType
|
|
|
174
194
|
|
|
175
195
|
class SIntType(IntType):
|
|
176
196
|
|
|
197
|
+
def __init__(self, id: str, width: int):
|
|
198
|
+
self._init_from_cpp(cpp.SIntType(id, width))
|
|
199
|
+
|
|
177
200
|
def is_valid(self, obj) -> Tuple[bool, Optional[str]]:
|
|
178
201
|
if not isinstance(obj, int):
|
|
179
202
|
return (False, f"must be an int, not {type(obj)}")
|
|
@@ -201,11 +224,16 @@ __esi_mapping[cpp.SIntType] = SIntType
|
|
|
201
224
|
|
|
202
225
|
class StructType(ESIType):
|
|
203
226
|
|
|
204
|
-
def __init__(self,
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
227
|
+
def __init__(self, id: str, fields: List[Tuple[str, "ESIType"]]):
|
|
228
|
+
# Convert Python ESIType fields to cpp Type fields
|
|
229
|
+
cpp_fields = [(name, field_type.cpp_type) for name, field_type in fields]
|
|
230
|
+
self._init_from_cpp(cpp.StructType(id, cpp_fields))
|
|
231
|
+
|
|
232
|
+
def _init_from_cpp(self, cpp_type: cpp.StructType):
|
|
233
|
+
"""Initialize instance attributes from a C++ type object."""
|
|
234
|
+
super()._init_from_cpp(cpp_type)
|
|
235
|
+
# For wrap_cpp path, we need to convert C++ fields back to Python
|
|
236
|
+
self.fields = [(name, _get_esi_type(ty)) for (name, ty) in cpp_type.fields]
|
|
209
237
|
|
|
210
238
|
@property
|
|
211
239
|
def bit_width(self) -> int:
|
|
@@ -217,6 +245,8 @@ class StructType(ESIType):
|
|
|
217
245
|
def is_valid(self, obj) -> Tuple[bool, Optional[str]]:
|
|
218
246
|
fields_count = 0
|
|
219
247
|
if not isinstance(obj, dict):
|
|
248
|
+
if not hasattr(obj, "__dict__"):
|
|
249
|
+
return (False, "must be a dict or have __dict__ attribute")
|
|
220
250
|
obj = obj.__dict__
|
|
221
251
|
|
|
222
252
|
for (fname, ftype) in self.fields:
|
|
@@ -232,14 +262,20 @@ class StructType(ESIType):
|
|
|
232
262
|
|
|
233
263
|
def serialize(self, obj) -> bytearray:
|
|
234
264
|
ret = bytearray()
|
|
235
|
-
|
|
265
|
+
if not isinstance(obj, dict):
|
|
266
|
+
obj = obj.__dict__
|
|
267
|
+
ordered_fields = reversed(
|
|
268
|
+
self.fields) if self.cpp_type.reverse else self.fields
|
|
269
|
+
for (fname, ftype) in ordered_fields:
|
|
236
270
|
fval = obj[fname]
|
|
237
271
|
ret.extend(ftype.serialize(fval))
|
|
238
272
|
return ret
|
|
239
273
|
|
|
240
274
|
def deserialize(self, data: bytearray) -> Tuple[Dict[str, Any], bytearray]:
|
|
241
275
|
ret = {}
|
|
242
|
-
|
|
276
|
+
ordered_fields = reversed(
|
|
277
|
+
self.fields) if self.cpp_type.reverse else self.fields
|
|
278
|
+
for (fname, ftype) in ordered_fields:
|
|
243
279
|
(fval, data) = ftype.deserialize(data)
|
|
244
280
|
ret[fname] = fval
|
|
245
281
|
return (ret, data)
|
|
@@ -250,8 +286,12 @@ __esi_mapping[cpp.StructType] = StructType
|
|
|
250
286
|
|
|
251
287
|
class ArrayType(ESIType):
|
|
252
288
|
|
|
253
|
-
def __init__(self,
|
|
254
|
-
self.cpp_type
|
|
289
|
+
def __init__(self, id: str, element_type: "ESIType", size: int):
|
|
290
|
+
self._init_from_cpp(cpp.ArrayType(id, element_type.cpp_type, size))
|
|
291
|
+
|
|
292
|
+
def _init_from_cpp(self, cpp_type: cpp.ArrayType):
|
|
293
|
+
"""Initialize instance attributes from a C++ type object."""
|
|
294
|
+
super()._init_from_cpp(cpp_type)
|
|
255
295
|
self.element_type = _get_esi_type(cpp_type.element)
|
|
256
296
|
self.size = cpp_type.size
|
|
257
297
|
|
|
@@ -364,8 +404,12 @@ class BundlePort:
|
|
|
364
404
|
# TODO: add a proper registration mechanism for service ports.
|
|
365
405
|
if isinstance(cpp_port, cpp.Function):
|
|
366
406
|
return super().__new__(FunctionPort)
|
|
407
|
+
if isinstance(cpp_port, cpp.Callback):
|
|
408
|
+
return super().__new__(CallbackPort)
|
|
367
409
|
if isinstance(cpp_port, cpp.MMIORegion):
|
|
368
410
|
return super().__new__(MMIORegion)
|
|
411
|
+
if isinstance(cpp_port, cpp.Metric):
|
|
412
|
+
return super().__new__(MetricPort)
|
|
369
413
|
return super().__new__(cls)
|
|
370
414
|
|
|
371
415
|
def __init__(self, owner: HWModule, cpp_port: cpp.BundlePort):
|
|
@@ -442,16 +486,78 @@ class FunctionPort(BundlePort):
|
|
|
442
486
|
self.cpp_port.connect()
|
|
443
487
|
self.connected = True
|
|
444
488
|
|
|
445
|
-
def call(self, **kwargs: Any) -> Future:
|
|
489
|
+
def call(self, *args: Any, **kwargs: Any) -> Future:
|
|
446
490
|
"""Call the function with the given argument and returns a future of the
|
|
447
491
|
result."""
|
|
448
|
-
|
|
492
|
+
|
|
493
|
+
# Accept either positional or keyword arguments, but not both.
|
|
494
|
+
if len(args) > 0 and len(kwargs) > 0:
|
|
495
|
+
raise ValueError("cannot use both positional and keyword arguments")
|
|
496
|
+
|
|
497
|
+
# Handle arguments: for single positional arg, unwrap it from tuple
|
|
498
|
+
if len(args) == 1:
|
|
499
|
+
selected = args[0]
|
|
500
|
+
elif len(args) > 1:
|
|
501
|
+
selected = args
|
|
502
|
+
else:
|
|
503
|
+
selected = kwargs
|
|
504
|
+
|
|
505
|
+
valid, reason = self.arg_type.is_valid(selected)
|
|
449
506
|
if not valid:
|
|
450
507
|
raise ValueError(
|
|
451
|
-
f"'{
|
|
452
|
-
arg_bytes: bytearray = self.arg_type.serialize(
|
|
508
|
+
f"'{selected}' cannot be converted to '{self.arg_type}': {reason}")
|
|
509
|
+
arg_bytes: bytearray = self.arg_type.serialize(selected)
|
|
453
510
|
cpp_future = self.cpp_port.call(arg_bytes)
|
|
454
511
|
return MessageFuture(self.result_type, cpp_future)
|
|
455
512
|
|
|
456
513
|
def __call__(self, *args: Any, **kwds: Any) -> Future:
|
|
457
514
|
return self.call(*args, **kwds)
|
|
515
|
+
|
|
516
|
+
|
|
517
|
+
class CallbackPort(BundlePort):
|
|
518
|
+
"""Callback ports are the inverse of function ports -- instead of calls to the
|
|
519
|
+
accelerator, they get called from the accelerator. Specify the function which
|
|
520
|
+
you'd like the accelerator to call when you call `connect`."""
|
|
521
|
+
|
|
522
|
+
def __init__(self, owner: HWModule, cpp_port: cpp.BundlePort):
|
|
523
|
+
super().__init__(owner, cpp_port)
|
|
524
|
+
self.arg_type = self.read_port("arg").type
|
|
525
|
+
self.result_type = self.write_port("result").type
|
|
526
|
+
self.connected = False
|
|
527
|
+
|
|
528
|
+
def connect(self, cb: Callable[[Any], Any]):
|
|
529
|
+
|
|
530
|
+
def type_convert_wrapper(cb: Callable[[Any], Any],
|
|
531
|
+
msg: bytearray) -> Optional[bytearray]:
|
|
532
|
+
try:
|
|
533
|
+
(obj, leftover) = self.arg_type.deserialize(msg)
|
|
534
|
+
if len(leftover) != 0:
|
|
535
|
+
raise ValueError(f"leftover bytes: {leftover}")
|
|
536
|
+
result = cb(obj)
|
|
537
|
+
if result is None:
|
|
538
|
+
return None
|
|
539
|
+
return self.result_type.serialize(result)
|
|
540
|
+
except Exception as e:
|
|
541
|
+
traceback.print_exception(e)
|
|
542
|
+
return None
|
|
543
|
+
|
|
544
|
+
self.cpp_port.connect(lambda x: type_convert_wrapper(cb=cb, msg=x))
|
|
545
|
+
self.connected = True
|
|
546
|
+
|
|
547
|
+
|
|
548
|
+
class MetricPort(BundlePort):
|
|
549
|
+
"""Telemetry ports report an individual piece of information from the
|
|
550
|
+
acceelerator. The method of accessing telemetry will likely change in the
|
|
551
|
+
future."""
|
|
552
|
+
|
|
553
|
+
def __init__(self, owner: HWModule, cpp_port: cpp.BundlePort):
|
|
554
|
+
super().__init__(owner, cpp_port)
|
|
555
|
+
self.connected = False
|
|
556
|
+
|
|
557
|
+
def connect(self):
|
|
558
|
+
self.cpp_port.connect()
|
|
559
|
+
self.connected = True
|
|
560
|
+
|
|
561
|
+
def read(self) -> Future:
|
|
562
|
+
cpp_future = self.cpp_port.read()
|
|
563
|
+
return MessageFuture(self.cpp_port.type, cpp_future)
|
esiaccel/utils.py
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
from . import codegen
|
|
6
6
|
|
|
7
|
+
import platform
|
|
7
8
|
from pathlib import Path
|
|
8
9
|
import subprocess
|
|
9
10
|
import sys
|
|
@@ -13,16 +14,23 @@ _thisdir = Path(__file__).absolute().resolve().parent
|
|
|
13
14
|
|
|
14
15
|
def run_esiquery():
|
|
15
16
|
"""Run the esiquery executable with the same arguments as this script."""
|
|
16
|
-
|
|
17
|
+
if platform.system() == "Windows":
|
|
18
|
+
esiquery = _thisdir / "esiquery.exe"
|
|
19
|
+
else:
|
|
20
|
+
esiquery = _thisdir / "bin" / "esiquery"
|
|
17
21
|
return subprocess.call([esiquery] + sys.argv[1:])
|
|
18
22
|
|
|
19
23
|
|
|
20
24
|
def run_esi_cosim():
|
|
21
25
|
"""Run the esi-cosim.py script with the same arguments as this script."""
|
|
22
26
|
import importlib.util
|
|
23
|
-
|
|
27
|
+
if platform.system() == "Windows":
|
|
28
|
+
esi_cosim = _thisdir / "esi-cosim.py"
|
|
29
|
+
else:
|
|
30
|
+
esi_cosim = _thisdir / "bin" / "esi-cosim.py"
|
|
24
31
|
spec = importlib.util.spec_from_file_location("esi_cosim", esi_cosim)
|
|
25
32
|
assert spec is not None
|
|
33
|
+
assert spec.loader is not None
|
|
26
34
|
cosim_import = importlib.util.module_from_spec(spec)
|
|
27
35
|
spec.loader.exec_module(cosim_import)
|
|
28
36
|
return cosim_import.__main__(sys.argv)
|
|
@@ -32,5 +40,15 @@ def run_cppgen():
|
|
|
32
40
|
return codegen.run()
|
|
33
41
|
|
|
34
42
|
|
|
35
|
-
def get_cmake_dir():
|
|
43
|
+
def get_cmake_dir() -> Path:
|
|
36
44
|
return _thisdir / "cmake"
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def get_dll_dir() -> Path:
|
|
48
|
+
"""Return the directory where the ESI dll's are located"""
|
|
49
|
+
import sys
|
|
50
|
+
import os
|
|
51
|
+
if sys.platform == "win32":
|
|
52
|
+
return _thisdir
|
|
53
|
+
else:
|
|
54
|
+
return _thisdir / "lib"
|
esiaccel/zlib1.dll
CHANGED
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: esiaccel
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.1.5.dev406
|
|
4
4
|
Summary: ESI accelerators runtime
|
|
5
5
|
Author-email: John Demme <John.Demme@microsoft.com>
|
|
6
6
|
License: ==============================================================================
|
|
@@ -251,4 +251,4 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
251
251
|
Classifier: Programming Language :: Python :: 3.13
|
|
252
252
|
Requires-Python: >=3.8
|
|
253
253
|
License-File: LICENSE
|
|
254
|
-
|
|
254
|
+
Dynamic: license-file
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
esiaccel/CosimBackend.dll,sha256=Ysg9zxBTK7aubu_dwDr9wopIR0yj7_eeovFxE5zbdUg,7190016
|
|
2
|
+
esiaccel/CosimBackend.lib,sha256=irceROhM9oK4xu-X5-asnfJAPaYHTQYwYIwufUEbCcc,4903722
|
|
3
|
+
esiaccel/ESICppRuntime.dll,sha256=9XE_aQrvqrXauJrorXfGgAXjRAw8GbPlRAax-Z6DHy4,4286976
|
|
4
|
+
esiaccel/ESICppRuntime.lib,sha256=jtwU6Tvj3YHfYS0HW06TaHdFgylzPLRF5U3a4jgSMM4,15784652
|
|
5
|
+
esiaccel/EsiCosimDpiServer.dll,sha256=fPQo11BgE2BMfqf3RnyjwzHDT04xBB5TQjqKwTgygdA,160768
|
|
6
|
+
esiaccel/EsiCosimDpiServer.lib,sha256=xMj0Uiih7BfmPUCe5NrAK8gEAqoi0ITH7P4Fp0IvaHo,606000
|
|
7
|
+
esiaccel/MtiPli.dll,sha256=_P_axCf8QyIrT6VncQLFaLlLcuWgQ4YhK-NJzstCe3g,14848
|
|
8
|
+
esiaccel/MtiPli.lib,sha256=FFIpVSxcH4VGNnMeZXAHcYQxTCBAeElN3YXLk1yrSTM,14570
|
|
9
|
+
esiaccel/__init__.py,sha256=65xXWHwJwRePsyhWk837NpzuN0qsNhoAX29TOiSYKGc,905
|
|
10
|
+
esiaccel/abseil_dll.dll,sha256=9KYmMfeyBmuDReOUOV_v-M1WrCgu5gZPysGRfUWns0U,1584640
|
|
11
|
+
esiaccel/accelerator.py,sha256=BcXPsUqcQV3YsVVyYbz9P6JnZLlcnuageFbJwID9_3s,3318
|
|
12
|
+
esiaccel/cares.dll,sha256=h_wW2hDJCPKdhdaVZMFdYFJKLDuJ6sFzDfyScA1yY-U,199168
|
|
13
|
+
esiaccel/codegen.py,sha256=uoYELtnIabVvgLeCABj-mWras0BvmSKABPH-cd9nDFk,6560
|
|
14
|
+
esiaccel/esi-cosim.py,sha256=P7n3SBgKPnXynwghY5zK1FmpqZkbC_YxfVIvNNQNl6Q,3817
|
|
15
|
+
esiaccel/esiCppAccel.cp310-win_amd64.pyd,sha256=44f0H9sy1DmwtvRGU1DTOQ7sPxMw0Tl8fXHIsbmC-J4,500736
|
|
16
|
+
esiaccel/esiquery.exe,sha256=4XH212_rZIWNOWtvx8cP3pvzODUv40DUspstjtRs8Uk,442880
|
|
17
|
+
esiaccel/libcrypto-3-x64.dll,sha256=-FvjnB5nCICrePjUmMlsX_DlcG5BSkodKddc8GPKvhA,5327872
|
|
18
|
+
esiaccel/libprotobuf.dll,sha256=bA6Nj3yn2lYhfKNGnveqOj2m7D3aBS7Z5V13qDRUXdA,12566528
|
|
19
|
+
esiaccel/libssl-3-x64.dll,sha256=g55CVswh0aBuCKQFEJ37WspIvagqLLlVB2USe3Gb3TA,871424
|
|
20
|
+
esiaccel/re2.dll,sha256=aDM5VNjOp9FaD-Kcvlh-bewpzAbk8JC5AWqUZ8aZGYU,1213952
|
|
21
|
+
esiaccel/types.py,sha256=ps9c4IU2ITbyeCcI4a64BDEjMuNTzchQuH0Bdhx2LG0,19035
|
|
22
|
+
esiaccel/utils.py,sha256=q-8fmgJ9tUvmBsIvqZiZ7u845IJhOjvjYTQLhhrNYl0,1515
|
|
23
|
+
esiaccel/zlib1.dll,sha256=751D75Wfv1xgWg-ItD80EkIeJ3QrCwUhZntdwzxYPB0,90112
|
|
24
|
+
esiaccel/cmake/esiaccelConfig.cmake,sha256=u2aW99k1lEcmYTG1P3BTJqtmDrj53wUUaBz_jzw8kYY,565
|
|
25
|
+
esiaccel/cosim/Cosim_DpiPkg.sv,sha256=9qGn1VyAVrzBP5At1thV6xrovg0WghICD01Zz9J221E,3458
|
|
26
|
+
esiaccel/cosim/Cosim_Endpoint.sv,sha256=-XXrGvvk6hdiZ-Ex6_QtdKXXUwKJLKSvpTUK3o0gPZ8,7589
|
|
27
|
+
esiaccel/cosim/Cosim_Manifest.sv,sha256=vl9b6XieEkP880IBw1ferekBnDJwFanZZggJJGertXM,1123
|
|
28
|
+
esiaccel/cosim/driver.cpp,sha256=Lvmo03pzzhoswdxAtdXAm-oU6UkfTyl1LgoCpyDzLhY,3842
|
|
29
|
+
esiaccel/cosim/driver.sv,sha256=LAkFEXTwX3KKwZLSzYZFwMPWxZwVStuhUsfecHHpGzU,1890
|
|
30
|
+
esiaccel/cosim/questa.py,sha256=2xALwRzsOFZ1_xk3f2d849GMvGspNCK4XL8zVDBjXlA,4626
|
|
31
|
+
esiaccel/cosim/simulator.py,sha256=HpkvKPbpyqalRp8poRYU3E0taYxTRmxcmBEJ7YOecx4,13941
|
|
32
|
+
esiaccel/cosim/verilator.py,sha256=dwiEkKOem5OKPV9AK6O1ohr22MTsyDxBVnriDRFoVa8,2877
|
|
33
|
+
esiaccel/include/esi/Accelerator.h,sha256=B4RQTka8n7a3fJQc35HWYEN7prnje5aWau5NexBKf-w,9362
|
|
34
|
+
esiaccel/include/esi/CLI.h,sha256=Nn8tHn_xtEfkrD7USE2tao6ktYOJ6xcbnhZkS9-ox0A,2540
|
|
35
|
+
esiaccel/include/esi/Common.h,sha256=7bXy9bRt4C7oeO6SBm8BneujbL17fbPM6K7YMqazvLE,6155
|
|
36
|
+
esiaccel/include/esi/Context.h,sha256=Tk_4nBDtTeVY62GfX4Cs_ZMIQstjSgrWHddN_PKANEA,2396
|
|
37
|
+
esiaccel/include/esi/Design.h,sha256=mU8OwpCYijiWSdDq17l45LMzZxBca93nosudWCXNHfQ,4922
|
|
38
|
+
esiaccel/include/esi/Engines.h,sha256=bbGbhXjYMpIpXh_DR0OS57zyGQUIDXh_S7xHX3su0Y0,4831
|
|
39
|
+
esiaccel/include/esi/Logging.h,sha256=sHqMcpp0lNIHkIEyvSm-BBWx4zXXh6NOATCgZpgzYI4,8944
|
|
40
|
+
esiaccel/include/esi/Manifest.h,sha256=ZdIu_vXXLS4bwOoISFo-sFjzvB9x5ddYmNmaknyF0ds,2110
|
|
41
|
+
esiaccel/include/esi/Ports.h,sha256=T2WbPBViUSvFbO5Jjxlcp_eGq9jMitguvNnz3O0564U,10543
|
|
42
|
+
esiaccel/include/esi/Services.h,sha256=au4agwnlyZD4vYZdawGlnAZxocnNN-PCv3WoeD0qtOs,16216
|
|
43
|
+
esiaccel/include/esi/Types.h,sha256=6krb9cRpVvuml35LqR7SHPTDMdz9u4773SON94_3_Ig,9298
|
|
44
|
+
esiaccel/include/esi/Utils.h,sha256=KPd75GajIFeTBVJocXBjwsJqhbZg-ShWZCIe3oQdBss,3061
|
|
45
|
+
esiaccel/include/esi/Values.h,sha256=1xXxNV2oUr84At3Y7aXBqbiPZxyJXeUbhycl0O0fUtk,11074
|
|
46
|
+
esiaccel/include/esi/backends/Cosim.h,sha256=s7vYd0ra6m1nvk-n37MjvBoGVI-CCUKBt0DU4PKlaHM,2838
|
|
47
|
+
esiaccel/include/esi/backends/RpcServer.h,sha256=WMwnhwU2qnrcglGNeiKg9QQHpkDx1QE1JydKYDK4jqE,1856
|
|
48
|
+
esiaccel/include/esi/backends/Trace.h,sha256=kx4wwLH3a0ndmRUdaDyYGZ1SP83zlpFrk30Nw8ZrJJA,3286
|
|
49
|
+
esiaccel-0.1.5.dev406.dist-info/licenses/LICENSE,sha256=vtnVnB8_lN1yPYcA5MeT56R8UsQtBhyzZLBvu_KMf7I,13468
|
|
50
|
+
esiaccel-0.1.5.dev406.dist-info/METADATA,sha256=Xq1uTQMUQk7t-TFGhNN4vTg3tU654H0Vl9PX3oLrLgE,16148
|
|
51
|
+
esiaccel-0.1.5.dev406.dist-info/WHEEL,sha256=KUuBC6lxAbHCKilKua8R9W_TM71_-9Sg5uEP3uDWcoU,101
|
|
52
|
+
esiaccel-0.1.5.dev406.dist-info/entry_points.txt,sha256=_CuNLV0fyTURxRREFwpzGycifZW_-7-MyuJNEwKK9J8,137
|
|
53
|
+
esiaccel-0.1.5.dev406.dist-info/top_level.txt,sha256=fYWTWMDK4PDu4ePQ9NtcFHas2k8-d1kWhTs2avPpgB4,9
|
|
54
|
+
esiaccel-0.1.5.dev406.dist-info/RECORD,,
|
esiaccel/bin/esiquery.exe
DELETED
|
Binary file
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
esiaccel/ESICppRuntime.dll,sha256=kdre7n1A7yy6RCadIyQKxpZAKt0m0HYNzgmt4a-7IAk,3004928
|
|
2
|
-
esiaccel/ESICppRuntime.lib,sha256=nk0SCW_YojZGwD1O-v5Gm42JXnBM8CU7ljtuU5mvWi0,12047472
|
|
3
|
-
esiaccel/__init__.py,sha256=C0GLqCQuF5g5qTzmAkf_YAHmBV2XAyiJad3Qz7h8u1g,562
|
|
4
|
-
esiaccel/accelerator.py,sha256=GM2FRZF_8nzAJ_7TSRSw_kaJCYWCHMK-cQD8ZZU8QVs,3071
|
|
5
|
-
esiaccel/codegen.py,sha256=uoYELtnIabVvgLeCABj-mWras0BvmSKABPH-cd9nDFk,6560
|
|
6
|
-
esiaccel/esiCppAccel.cp310-win_amd64.pyd,sha256=s5HBqQLYSf4As4espLHo0hKvu4jsieXONn2BGZAPy4k,426496
|
|
7
|
-
esiaccel/types.py,sha256=quV7bQFrweocGVCvwX_8KZd-Wz3Y0Yvi2YGCmihKvZM,15132
|
|
8
|
-
esiaccel/utils.py,sha256=nzar3WALJC_RfmM5v0GeUev5So1-EAYuAMxG9jLj3eQ,1062
|
|
9
|
-
esiaccel/zlib1.dll,sha256=9H4VQE53GJV7U4FK9M6Ee-r5qsYd4bDKk3Pm5nioets,90624
|
|
10
|
-
esiaccel/bin/esiquery.exe,sha256=bFL1RGqSkx9M8s4fyXqS-gRTxItJdPf64yalNzDps4c,45056
|
|
11
|
-
esiaccel/cmake/esiaccelConfig.cmake,sha256=HcLuZRVSMGdr1ln6gsLTfo9iWCsAPf9wVLejnYqnpVE,564
|
|
12
|
-
esiaccel/include/esi/Accelerator.h,sha256=uLjRYBDUrG0LxVL3X834BXvE1RtCZdCpvBQWVKH6nJc,8855
|
|
13
|
-
esiaccel/include/esi/Common.h,sha256=rEpR8KQPa_O10G95CpEOpnjQtvYs4bbmrwamGSMJ9Yg,5047
|
|
14
|
-
esiaccel/include/esi/Context.h,sha256=0o9desdPYzqTnZWqR74d6Mvg75PnoTAbr7tvJYclubc,2371
|
|
15
|
-
esiaccel/include/esi/Design.h,sha256=DFcmUA7j-xWQO2L0rWnq5Jfc_BDXX90GD92pYS20CpY,4446
|
|
16
|
-
esiaccel/include/esi/Logging.h,sha256=eAN4e_0l1-zKlbScsuwCm9wstjzw5-B8jAiS9EXB_xo,6984
|
|
17
|
-
esiaccel/include/esi/Manifest.h,sha256=j3v9UA0ogtJQBlv6k5s4j_3sCsq-gwF9btVg5dKTBlg,2244
|
|
18
|
-
esiaccel/include/esi/Ports.h,sha256=NLkrSeE8GcQLo7TdKynOJAWCP9VHeh2OA0owzwzYaSk,9204
|
|
19
|
-
esiaccel/include/esi/Services.h,sha256=uJJ70QlotY9YY6YAF7UEujQ95i4U30gfYYd93qAENzU,12864
|
|
20
|
-
esiaccel/include/esi/Types.h,sha256=l2QafIcLQC0a_kBvWYki24gOR4KgfNS88rMkfQZQOyw,5196
|
|
21
|
-
esiaccel/include/esi/Utils.h,sha256=KPd75GajIFeTBVJocXBjwsJqhbZg-ShWZCIe3oQdBss,3061
|
|
22
|
-
esiaccel/include/esi/backends/Trace.h,sha256=_kEADJRs-h3MMDqf7Dl_dgTfbNyttHyP8gTwsrYC4UY,3370
|
|
23
|
-
esiaccel-0.0.17.dev447.dist-info/LICENSE,sha256=vtnVnB8_lN1yPYcA5MeT56R8UsQtBhyzZLBvu_KMf7I,13468
|
|
24
|
-
esiaccel-0.0.17.dev447.dist-info/METADATA,sha256=9pEk-hPw4Hp0509M8le78-HwV_U4Uq3LRO3X2Hkao6M,16128
|
|
25
|
-
esiaccel-0.0.17.dev447.dist-info/WHEEL,sha256=yrvteVAZzxQvtDnzdCRh4dP01sPIxYhLXIXplC7o50E,102
|
|
26
|
-
esiaccel-0.0.17.dev447.dist-info/entry_points.txt,sha256=_CuNLV0fyTURxRREFwpzGycifZW_-7-MyuJNEwKK9J8,137
|
|
27
|
-
esiaccel-0.0.17.dev447.dist-info/top_level.txt,sha256=fYWTWMDK4PDu4ePQ9NtcFHas2k8-d1kWhTs2avPpgB4,9
|
|
28
|
-
esiaccel-0.0.17.dev447.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|