|
|
|
|
@ -41,6 +41,9 @@ class Scope:
@@ -41,6 +41,9 @@ class Scope:
|
|
|
|
|
s = s.parent_scope |
|
|
|
|
return '/'.join(reversed(parts)) |
|
|
|
|
|
|
|
|
|
def __repr__(self) -> str: |
|
|
|
|
return self.path |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class VcdHeader: |
|
|
|
|
def __init__(self) -> None: |
|
|
|
|
@ -99,10 +102,12 @@ class VcdVarMap:
@@ -99,10 +102,12 @@ class VcdVarMap:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class VcdData: |
|
|
|
|
def __init__(self, var_map, steps, data): |
|
|
|
|
def __init__(self, var_map: VcdVarMap, steps, data): |
|
|
|
|
self.var_map = var_map |
|
|
|
|
self.steps = steps |
|
|
|
|
self.data = data |
|
|
|
|
def __repr__(self) -> str: |
|
|
|
|
return f'{{variables: {len(self.var_map.var_list)}, bits: {self.data.shape[0]}, steps: {self.data.shape[1]}}}' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class VcdHeaderTransformer(Transformer): |
|
|
|
|
@ -124,9 +129,9 @@ class VcdHeaderTransformer(Transformer):
@@ -124,9 +129,9 @@ class VcdHeaderTransformer(Transformer):
|
|
|
|
|
|
|
|
|
|
def var(self, args): |
|
|
|
|
type, width, idcode, reference = args |
|
|
|
|
reference = reference.strip() |
|
|
|
|
reference = reference.value.strip() |
|
|
|
|
width = int(width) |
|
|
|
|
self.header.add_var(type, width, idcode, reference) |
|
|
|
|
self.header.add_var(type.value, width, idcode.value, reference) |
|
|
|
|
|
|
|
|
|
def start(self, args): |
|
|
|
|
return self.header |
|
|
|
|
|