1 # FIXME: This file is on the pytest ignore list in pyproject.toml because it has borked imports
2 from sfpy
import Float32
3 from nmigen
.compat
.sim
import run_simulation
4 from dual_add_experiment
import ALU
7 def get_case(dut
, a
, b
, c
):
12 a_ack
= (yield dut
.a
.ack
)
21 b_ack
= (yield dut
.b
.ack
)
30 c_ack
= (yield dut
.c
.ack
)
38 out_z_stb
= (yield dut
.z
.stb
)
50 def check_case(dut
, a
, b
, c
, z
):
51 out_z
= yield from get_case(dut
, a
, b
, c
)
52 assert out_z
== z
, "Output z 0x%x != 0x%x" % (out_z
, z
)
55 yield from check_case(dut
, 0, 0, 0, 0)
56 yield from check_case(dut
, 0x3F800000, 0x40000000, 0xc0000000, 0x3F800000)
58 if __name__
== '__main__':
60 run_simulation(dut
, testbench(dut
), vcd_name
="test_dual_add.vcd")