Skip to content

Commit

Permalink
Merge bcbad7d into f2c4205
Browse files Browse the repository at this point in the history
  • Loading branch information
leonardt committed Jun 25, 2019
2 parents f2c4205 + bcbad7d commit afa0b93
Showing 1 changed file with 16 additions and 8 deletions.
24 changes: 16 additions & 8 deletions magma/simulator/coreir_simulator.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
from ..ref import DefnRef, ArrayRef, TupleRef
from ..array import ArrayType
from ..tuple import TupleType
from ..bit import BitKind
from ..bitutils import int2seq
from ..clock import ClockType
from ..transforms import setup_clocks, flatten
Expand Down Expand Up @@ -51,14 +52,21 @@ def convert_to_coreir_path(bit, scope):
insts.append(last_inst)

# Handle renaming due to flatten types
arrOrTuple = bit
while isinstance(arrOrTuple.name, ArrayRef) or isinstance(arrOrTuple.name, TupleRef):
port, idx = port.split('.', 1)
port += '_' + idx
if isinstance(arrOrTuple.name, ArrayRef):
arrOrTuple = arrOrTuple.name.array
elif isinstance(arrOrTuple.name, TupleRef):
arrOrTuple = arrOrTuple.name.tuple
def flattened_name(name):
if isinstance(name, DefnRef):
return str(name)
if isinstance(name, ArrayRef):
array_name = flattened_name(name.array.name)
# CoreIR simulator doesn't flatten array of bits
if isinstance(name.array.T, BitKind):
return f"{array_name}.{name.index}"
else:
return f"{array_name}_{name.index}"
if isinstance(name, TupleRef):
tuple_name = flattened_name(name.tuple.name)
return f"{tuple_name}_{name.index}"
raise NotImplementedError(name, type(name))
port = flattened_name(bit.name)

ports = [port]

Expand Down

0 comments on commit afa0b93

Please sign in to comment.