parent
377f2d987d
commit
ec7aee62ea
|
@ -492,7 +492,9 @@ class _RHSValueCompiler(_ValueCompiler):
|
||||||
part_mask = (1 << len(part)) - 1
|
part_mask = (1 << len(part)) - 1
|
||||||
gen_parts.append(f"(({self(part)} & {part_mask}) << {offset})")
|
gen_parts.append(f"(({self(part)} & {part_mask}) << {offset})")
|
||||||
offset += len(part)
|
offset += len(part)
|
||||||
return f"({' | '.join(gen_parts)})"
|
if gen_parts:
|
||||||
|
return f"({' | '.join(gen_parts)})"
|
||||||
|
return f"0"
|
||||||
|
|
||||||
def on_Repl(self, value):
|
def on_Repl(self, value):
|
||||||
part_mask = (1 << len(value.value)) - 1
|
part_mask = (1 << len(value.value)) - 1
|
||||||
|
@ -502,7 +504,9 @@ class _RHSValueCompiler(_ValueCompiler):
|
||||||
for _ in range(value.count):
|
for _ in range(value.count):
|
||||||
gen_parts.append(f"({gen_part} << {offset})")
|
gen_parts.append(f"({gen_part} << {offset})")
|
||||||
offset += len(value.value)
|
offset += len(value.value)
|
||||||
return f"({' | '.join(gen_parts)})"
|
if gen_parts:
|
||||||
|
return f"({' | '.join(gen_parts)})"
|
||||||
|
return f"0"
|
||||||
|
|
||||||
def on_ArrayProxy(self, value):
|
def on_ArrayProxy(self, value):
|
||||||
index_mask = (1 << len(value.index)) - 1
|
index_mask = (1 << len(value.index)) - 1
|
||||||
|
|
|
@ -712,3 +712,15 @@ class SimulatorIntegrationTestCase(FHDLTestCase):
|
||||||
with sim.write_vcd(open(os.path.devnull, "wt")):
|
with sim.write_vcd(open(os.path.devnull, "wt")):
|
||||||
with sim.write_vcd(open(os.path.devnull, "wt")):
|
with sim.write_vcd(open(os.path.devnull, "wt")):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class SimulatorRegressionTestCase(FHDLTestCase):
|
||||||
|
def test_bug_325(self):
|
||||||
|
dut = Module()
|
||||||
|
dut.d.comb += Signal().eq(Cat())
|
||||||
|
Simulator(dut).run()
|
||||||
|
|
||||||
|
def test_bug_325_bis(self):
|
||||||
|
dut = Module()
|
||||||
|
dut.d.comb += Signal().eq(Repl(Const(1), 0))
|
||||||
|
Simulator(dut).run()
|
||||||
|
|
Loading…
Reference in a new issue