Skip to content

Commit

Permalink
Pep8 fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
leonardt committed Nov 25, 2018
1 parent 76d7525 commit 16d6604
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 10 deletions.
23 changes: 16 additions & 7 deletions fault/verilator_target.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,11 +107,17 @@ def __init__(self, circuit, directory="build/",

@staticmethod
def generate_array_action_code(i, action):
return flatten([
VerilatorTarget.generate_action_code(
i, type(action)(action.port[j], action.format_str if isinstance(action, actions.Print) else action.value[j])
) for j in range(action.port.N)
])
result = []
for j in range(action.port.N):
if isinstance(action, actions.Print):
value = action.format_str
else:
value = action.value[j]
result += [
VerilatorTarget.generate_action_code(
i, type(action)(action.port[j], value)
)]
return flatten(result)

@staticmethod
def generate_action_code(i, action):
Expand All @@ -120,10 +126,13 @@ def generate_action_code(i, action):
not isinstance(action.port.T, m.BitKind):
return VerilatorTarget.generate_array_action_code(i, action)
name = verilator_utils.verilator_name(action.port.name)
if isinstance(action.value, BitVector) and action.value.num_bits > 32:
if isinstance(action.value, BitVector) and \
action.value.num_bits > 32:
asserts = []
for i in range(math.ceil(action.value.num_bits / 32)):
asserts += [f"top->{name}[{i}] = {action.value[i * 32:min((i+1) * 32, action.value.num_bits)]};"]
value = action.value[i * 32:min(
(i+1) * 32, action.value.num_bits)]
asserts += [f"top->{name}[{i}] = {value};"]
return asserts
else:
return [f"top->{name} = {action.value};"]
Expand Down
9 changes: 6 additions & 3 deletions tests/test_verilator_target.py
Original file line number Diff line number Diff line change
Expand Up @@ -124,12 +124,15 @@ def test_verilator_print_nested_arrays(capfd):
def test_verilator_print_double_nested_arrays(capfd):
circ = common.TestDoubleNestedArraysCircuit
actions = [
Poke(circ.I, [[BitVector(i + j * 3, 4) for i in range(3)] for j in range(2)]),
Poke(circ.I, [[BitVector(i + j * 3, 4) for i in range(3)]
for j in range(2)]),
Print(circ.I),
Eval(),
Expect(circ.O, [[BitVector(i + j * 3, 4) for i in range(3)] for j in range(2)]),
Expect(circ.O, [[BitVector(i + j * 3, 4) for i in range(3)]
for j in range(2)]),
Print(circ.O),
Poke(circ.I, [[BitVector(i + (j + 1) * 3, 4) for i in range(3)] for j in range(2)]),
Poke(circ.I, [[BitVector(i + (j + 1) * 3, 4) for i in range(3)]
for j in range(2)]),
Eval(),
Print(circ.O),
]
Expand Down

0 comments on commit 16d6604

Please sign in to comment.