ieee754.part_mul_add.test package¶
Submodules¶
ieee754.part_mul_add.test.test_mul_pipe module¶
Unit tests for Buffered and Unbuffered pipelines
contains useful worked examples of how to use the Pipeline API, including:
- Combinatorial Stage “Chaining”
- class-based data stages
- nmigen module-based data stages
- special nmigen module-based data stage, where the stage is the module
- Record-based data stages
- static-class data stages
- multi-stage pipelines (and how to connect them)
- how to use the pipelines (see Test5) - how to get data in and out
-
class
ieee754.part_mul_add.test.test_mul_pipe.ExampleAddRecordPlaceHolderStage¶ Bases:
objectexample use of a Record, with a placeholder as the processing result
-
ispec()¶ returns a Record using the specification
-
ospec()¶
-
process(i)¶ process the input data, returning a PlaceHolder class instance with attributes that exactly match those of the Record.
-
record_spec= [('src1', 16), ('src2', 16)]¶
-
-
class
ieee754.part_mul_add.test.test_mul_pipe.Test5(dut, resultfn, data=None, stage_ctl=False)¶ Bases:
object-
rcv()¶
-
send()¶
-
-
class
ieee754.part_mul_add.test.test_mul_pipe.TestInputMul(a, b)¶ Bases:
objectthe eq function, called by set_input, needs an incoming object that conforms to the Example2OpClass.eq function requirements easiest way to do that is to create a class that has the exact same member layout (self.op1, self.op2) as Example2OpClass
-
ieee754.part_mul_add.test.test_mul_pipe.data_2op()¶
-
ieee754.part_mul_add.test.test_mul_pipe.data_dict()¶
-
ieee754.part_mul_add.test.test_mul_pipe.data_placeholder()¶
-
ieee754.part_mul_add.test.test_mul_pipe.resultfn_3(data_o, expected, i, o)¶
-
ieee754.part_mul_add.test.test_mul_pipe.resultfn_5(data_o, expected, i, o)¶
-
ieee754.part_mul_add.test.test_mul_pipe.resultfn_8(data_o, expected, i, o)¶
-
ieee754.part_mul_add.test.test_mul_pipe.simd_calc_result(a, b)¶
-
ieee754.part_mul_add.test.test_mul_pipe.test0()¶
-
ieee754.part_mul_add.test.test_mul_pipe.test8()¶
-
ieee754.part_mul_add.test.test_mul_pipe.test_simd_mul()¶
-
ieee754.part_mul_add.test.test_mul_pipe.test_simd_mul1()¶
ieee754.part_mul_add.test.test_multiply module¶
-
class
ieee754.part_mul_add.test.test_multiply.GenOrCheck¶ Bases:
enum.EnumAn enumeration.
-
Check= 2¶
-
Generate= 1¶
-
-
class
ieee754.part_mul_add.test.test_multiply.SIMDMulLane(a_signed, b_signed, bit_width, high_half)¶ Bases:
object
-
class
ieee754.part_mul_add.test.test_multiply.TestAddReduce(methodName='runTest')¶ Bases:
unittest.case.TestCase-
calculate_input_values(input_count: int, key: int, extra_keys: List[int] = []) -> (typing.List[int], typing.List[str])¶
-
subtest_file(input_count: int, register_levels: List[int]) → None¶
-
subtest_key(input_count: int, inputs: List[nmigen.hdl.ast.Signal], module: ieee754.part_mul_add.multiply.AddReduce, key: int, mask_list: List[int], gen_or_check: ieee754.part_mul_add.test.test_multiply.GenOrCheck) → Generator[Union[nmigen.sim.core.Delay, nmigen.sim.core.Tick, nmigen.sim.core.Passive, nmigen.hdl.ast.Assign, nmigen.hdl.ast.Value], Union[int, NoneType], NoneType]¶
-
subtest_register_levels(register_levels: List[int]) → None¶
-
subtest_run_sim(input_count: int, sim: nmigen.sim.core.Simulator, partition_4: nmigen.hdl.ast.Signal, partition_8: nmigen.hdl.ast.Signal, inputs: List[nmigen.hdl.ast.Signal], module: ieee754.part_mul_add.multiply.AddReduce, delay_cycles: int) → None¶
-
subtest_value(inputs: List[nmigen.hdl.ast.Signal], module: ieee754.part_mul_add.multiply.AddReduce, mask_list: List[int], gen_or_check: ieee754.part_mul_add.test.test_multiply.GenOrCheck, values: List[int]) → Generator[Union[nmigen.sim.core.Delay, nmigen.sim.core.Tick, nmigen.sim.core.Passive, nmigen.hdl.ast.Assign, nmigen.hdl.ast.Value], Union[int, NoneType], NoneType]¶
-
test_0() → None¶
-
test_0_1() → None¶
-
test_0_1_2() → None¶
-
test_0_1_2_3() → None¶
-
test_0_1_2_3_4() → None¶
-
test_0_1_2_3_4_5() → None¶
-
test_0_2() → None¶
-
test_0_3() → None¶
-
test_0_4() → None¶
-
test_0_5() → None¶
-
test_1() → None¶
-
test_2() → None¶
-
test_3() → None¶
-
test_4() → None¶
-
test_5() → None¶
-
test_empty() → None¶
-
-
class
ieee754.part_mul_add.test.test_multiply.TestMul8_16_32_64(methodName='runTest')¶ Bases:
unittest.case.TestCase-
static
get_tst_cases(lanes: List[ieee754.part_mul_add.test.test_multiply.SIMDMulLane], keys: Iterable[int]) → Iterable[Tuple[int, int]]¶
-
subtest_file(register_levels: List[int]) → None¶
-
subtest_lanes(lanes: List[ieee754.part_mul_add.test.test_multiply.SIMDMulLane], module: ieee754.part_mul_add.multiply.Mul8_16_32_64, gen_or_check: ieee754.part_mul_add.test.test_multiply.GenOrCheck) → Generator[Union[nmigen.sim.core.Delay, nmigen.sim.core.Tick, nmigen.sim.core.Passive, nmigen.hdl.ast.Assign, nmigen.hdl.ast.Value], Union[int, NoneType], NoneType]¶
-
subtest_lanes_2(lanes: List[ieee754.part_mul_add.test.test_multiply.SIMDMulLane], module: ieee754.part_mul_add.multiply.Mul8_16_32_64, gen_or_check: ieee754.part_mul_add.test.test_multiply.GenOrCheck) → Generator[Union[nmigen.sim.core.Delay, nmigen.sim.core.Tick, nmigen.sim.core.Passive, nmigen.hdl.ast.Assign, nmigen.hdl.ast.Value], Union[int, NoneType], NoneType]¶
-
subtest_register_levels(register_levels: List[int]) → None¶
-
subtest_value(a: int, b: int, module: ieee754.part_mul_add.multiply.Mul8_16_32_64, lanes: List[ieee754.part_mul_add.test.test_multiply.SIMDMulLane], gen_or_check: ieee754.part_mul_add.test.test_multiply.GenOrCheck) → Generator[Union[nmigen.sim.core.Delay, nmigen.sim.core.Tick, nmigen.sim.core.Passive, nmigen.hdl.ast.Assign, nmigen.hdl.ast.Value], Union[int, NoneType], NoneType]¶
-
test_0() → None¶
-
test_0_1() → None¶
-
test_0_10() → None¶
-
test_0_1_2() → None¶
-
test_0_1_2_3() → None¶
-
test_0_1_2_3_4() → None¶
-
test_0_1_2_3_4_5() → None¶
-
test_0_1_2_3_4_5_6() → None¶
-
test_0_1_2_3_4_5_6_7() → None¶
-
test_0_1_2_3_4_5_6_7_8() → None¶
-
test_0_1_2_3_4_5_6_7_8_9() → None¶
-
test_0_1_2_3_4_5_6_7_8_9_10() → None¶
-
test_0_2() → None¶
-
test_0_3() → None¶
-
test_0_4() → None¶
-
test_0_5() → None¶
-
test_0_6() → None¶
-
test_0_7() → None¶
-
test_0_8() → None¶
-
test_0_9() → None¶
-
test_1() → None¶
-
test_10() → None¶
-
test_2() → None¶
-
test_3() → None¶
-
test_4() → None¶
-
test_5() → None¶
-
test_6() → None¶
-
test_7() → None¶
-
test_8() → None¶
-
test_9() → None¶
-
test_empty() → None¶
-
test_signed_mul_from_unsigned()¶
-
test_simd_mul()¶
-
test_simd_mul_lane()¶
-
static
-
class
ieee754.part_mul_add.test.test_multiply.TestPartitionPoints(methodName='runTest')¶ Bases:
unittest.case.TestCase-
test() → None¶
-
-
class
ieee754.part_mul_add.test.test_multiply.TestPartitionedAdder(methodName='runTest')¶ Bases:
unittest.case.TestCase-
test() → None¶
-
-
ieee754.part_mul_add.test.test_multiply.create_ilang(dut, traces, test_name)¶
-
ieee754.part_mul_add.test.test_multiply.create_simulator(module: Any, traces: List[nmigen.hdl.ast.Signal], test_name: str) → nmigen.sim.core.Simulator¶
-
ieee754.part_mul_add.test.test_multiply.simd_mul(a, b, lanes)¶