Esempio n. 1
0
def test_mul():
    basis_tester(mul_basis_cases)
    encounter_error_tester(mul_type_wrong_cases)
    encounter_error_tester(mul_width_wrong_cases)
    serialize_equal(Mul([u(20, w(5)), u(15, w(4))], uw(9)),
                    'mul(UInt<5>("h14"), UInt<4>("hf"))')
    serialize_equal(Mul([s(-20, w(6)), s(-15, w(5))], sw(11)),
                    'mul(SInt<6>("h-14"), SInt<5>("h-f"))')
Esempio n. 2
0
def test_sub():
    basis_tester(sub_basis_cases)
    encounter_error_tester(sub_type_wrong_cases)
    encounter_error_tester(sub_width_wrong_cases)
    serialize_equal(Sub([u(20, w(5)), u(15, w(4))], sw(6)),
                    'sub(UInt<5>("h14"), UInt<4>("hf"))')
    serialize_equal(Sub([s(-20, w(6)), s(-15, w(5))], sw(7)),
                    'sub(SInt<6>("h-14"), SInt<5>("h-f"))')
Esempio n. 3
0
def test_init_register_type_not_match():
    r1 = DefInitRegister("r1", uw(8), n("clock", ClockType()), n("r", uw(1)),
                         s(5, w(8)))
    assert not check(r1)

    r2 = DefInitRegister("r2", uw(8), n("clock", ClockType()), u(0, w(1)),
                         s(5, w(8)))
    assert not check(r2)
Esempio n. 4
0
def test_cat():
    basis_tester(cat_basis_cases)
    encounter_error_tester(cat_type_wrong_cases)
    encounter_error_tester(cat_width_wrong_cases)
    serialize_equal(Cat([u(20, w(5)), u(15, w(4))], uw(9)),
                    'cat(UInt<5>("h14"), UInt<4>("hf"))')
    serialize_equal(Cat([s(-20, w(6)), s(-15, w(5))], uw(11)),
                    'cat(SInt<6>("h-14"), SInt<5>("h-f"))')
Esempio n. 5
0
def test_or():
    basis_tester(or_basis_cases)
    encounter_error_tester(or_type_wrong_cases)
    encounter_error_tester(or_width_wrong_cases)
    serialize_equal(Or([u(20, w(5)), u(15, w(4))], uw(5)),
                    'or(UInt<5>("h14"), UInt<4>("hf"))')
    serialize_equal(Or([s(-20, w(6)), s(-15, w(5))], uw(6)),
                    'or(SInt<6>("h-14"), SInt<5>("h-f"))')
Esempio n. 6
0
def test_rem():
    basis_tester(rem_basis_cases)
    encounter_error_tester(rem_type_wrong_cases)
    encounter_error_tester(rem_width_wrong_cases)
    serialize_equal(Rem([u(20, w(5)), u(15, w(4))], uw(4)),
                    'rem(UInt<5>("h14"), UInt<4>("hf"))')
    serialize_equal(Rem([s(-20, w(6)), s(-15, w(5))], sw(5)),
                    'rem(SInt<6>("h-14"), SInt<5>("h-f"))')
Esempio n. 7
0
def test_init_register_reset_wrong():
    r1 = DefInitRegister("r1", uw(8), n("clock", ClockType()), n("r", sw(1)),
                         u(5, w(8)))
    assert not check(r1)

    r2 = DefInitRegister("r2", sw(8), n("clock", ClockType()), s(0, w(1)),
                         s(5, w(8)))
    assert not check(r2)
Esempio n. 8
0
def test_div():
    basis_tester(div_basis_cases)
    encounter_error_tester(div_type_wrong_cases)
    encounter_error_tester(div_width_wrong_cases)
    serialize_equal(Div([u(20, w(5)), u(15, w(4))], uw(5)),
                    'div(UInt<5>("h14"), UInt<4>("hf"))')
    serialize_equal(Div([s(-20, w(6)), s(-15, w(5))], uw(7)),
                    'div(SInt<6>("h-14"), SInt<5>("h-f"))')
Esempio n. 9
0
def test_leq():
    basis_tester(leq_basis_cases)
    encounter_error_tester(leq_type_wrong_cases)
    encounter_error_tester(leq_width_wrong_cases)
    serialize_equal(Leq([u(20, w(5)), u(15, w(4))], uw(1)),
                    'leq(UInt<5>("h14"), UInt<4>("hf"))')
    serialize_equal(Leq([s(-20, w(6)), s(-15, w(5))], uw(1)),
                    'leq(SInt<6>("h-14"), SInt<5>("h-f"))')
Esempio n. 10
0
def test_asuint():
    basis_tester(asuint_basis_cases)
    encounter_error_tester(asuint_type_wrong_cases)
    encounter_error_tester(asuint_width_wrong_cases)
    serialize_equal(AsUInt(u(20, w(5)), uw(5)), 'asUInt(UInt<5>("h14"))')
    serialize_equal(AsUInt(s(-20, w(6)), uw(5)), 'asUInt(SInt<6>("h-14"))')
    serialize_equal(AsUInt(n("clock", ClockType()), uw(1)), 'asUInt(clock)')
Esempio n. 11
0
def test_dshl():
    basis_tester(dshl_basis_cases)
    encounter_error_tester(dshl_type_wrong_cases)
    encounter_error_tester(dshl_width_wrong_cases)
    serialize_equal(Dshl([u(20, w(5)), u(15, w(4))], uw(20)),
                    'dshl(UInt<5>("h14"), UInt<4>("hf"))')
    serialize_equal(Dshl([s(-20, w(6)), u(15, w(4))], uw(21)),
                    'dshl(SInt<6>("h-14"), UInt<4>("hf"))')
Esempio n. 12
0
def test_shr():
    basis_tester(shr_basis_cases)
    encounter_error_tester(shr_type_wrong_cases)
    encounter_error_tester(shr_width_wrong_cases)
    serialize_equal(Shr(u(20, w(5)), 3, uw(2)),
                    'shr(UInt<5>("h14"), 3)')
    serialize_equal(Shr(s(-20, w(6)), 3, uw(3)),
                    'shr(SInt<6>("h-14"), 3)')
Esempio n. 13
0
def test_sub_access_idx_non_uint():
    vc = vec(uw(8), 10)
    sa = SubAccess(n("vc", vc), s(2, w(3)), uw(8))
    assert not check(sa)

    vc = vec(uw(8), 10)
    sa = SubAccess(n("vc", vc), n("a", sw(8)), uw(8))
    assert not check(sa)
Esempio n. 14
0
def test_neg():
    basis_tester(neg_basis_cases)
    encounter_error_tester(neg_type_wrong_cases)
    encounter_error_tester(neg_width_wrong_cases)
    serialize_equal(Neg(u(20, w(5)), sw(6)),
                    'neg(UInt<5>("h14"))')
    serialize_equal(Neg(s(-20, w(6)), sw(7)),
                    'neg(SInt<6>("h-14"))')
Esempio n. 15
0
def test_write_port_index_wrong():
    mem_ref = n("m", vec(uw(8), 10))
    mw = DefMemWritePort("mw", mem_ref, s(2, w(8)), n("clock", ClockType()))
    assert not check(mw)

    mem_ref = n("m", vec(bdl(a=(uw(8), False)), 10))
    mw = DefMemWritePort("mw", mem_ref, n("a", vec(uw(1), 10)),
                         n("clock", ClockType()))
    assert not check(mw)
Esempio n. 16
0
def test_bits():
    basis_tester(bits_basis_cases)
    encounter_error_tester(bits_type_wrong_cases)
    encounter_error_tester(bits_width_wrong_cases)
    encounter_error_tester(bits_invalid_cases)
    serialize_equal(Bits(u(20, w(5)), [4, 4], uw(1)),
                    'bits(UInt<5>("h14"), 4, 4)')
    serialize_equal(Bits(s(-20, w(6)), [4, 3], uw(2)),
                    'bits(SInt<6>("h-14"), 4, 3)')
Esempio n. 17
0
def test_read_port_index_wrong():
    mem_ref = n("m", vec(uw(8), 10))
    mr = DefMemReadPort("mr", mem_ref, s(2, w(8)), n("clock", ClockType()))
    assert not check(mr)

    mem_ref = n("m", vec(bdl(a=(uw(8), False)), 10))
    mr = DefMemReadPort("mr", mem_ref, n("a", vec(uw(1), 10)),
                        n("clock", ClockType()))
    assert not check(mr)
Esempio n. 18
0
def s_gen():
    if random.randint(0, 1):
        rand_s_value = random.randint(-1024, 1024)
        rand_s_value_width = signed_num_bin_len(rand_s_value)
        rand_s_width = random.randint(rand_s_value_width,
                                      2 * rand_s_value_width)
        return s(rand_s_value, w(rand_s_width))
    else:
        rand_ns_name = name_gen()
        rand_ns_width = random.randint(1, 20)
        return n(rand_ns_name, sw(rand_ns_width))
Esempio n. 19
0
def test_connect_type_wrong():
    cn = Connect(n("a", uw(8)), n("b", sw(8)))
    assert not check(cn)

    cn = Connect(n("a", sw(8)), n("b", uw(8)))
    assert not check(cn)

    cn = Connect(n("a", uw(8)), s(20, w(8)))
    assert not check(cn)

    cn = Connect(n("a", sw(8)), n(-20, w(8)))
    assert not check(cn)
Esempio n. 20
0
def test_init_register_basis():
    r1 = DefInitRegister("r1", uw(8), n("clock", ClockType()), n("r", uw(1)),
                         u(5, w(8)))
    assert check(r1)
    serialize_stmt_equal(
        r1, 'reg r1 : UInt<8>, clock with :\n'
        '  reset => (r, UInt<8>("h5"))')

    r2 = DefInitRegister("r2", sw(8), n("clock", ClockType()), u(0, w(1)),
                         s(5, w(8)))
    assert check(r2)
    serialize_stmt_equal(
        r2, 'reg r2 : SInt<8>, clock with :\n'
        '  reset => (UInt<1>("h0"), SInt<8>("h5"))')
Esempio n. 21
0
def test_connect_basis():
    cn = Connect(n("a", uw(8)), n("b", uw(8)))
    assert check(cn)
    serialize_stmt_equal(cn, "a <= b")

    cn = Connect(n("a", sw(8)), n("b", sw(8)))
    assert check(cn)
    serialize_stmt_equal(cn, "a <= b")

    cn = Connect(n("a", uw(8)), u(20, w(8)))
    assert check(cn)
    serialize_stmt_equal(cn, 'a <= UInt<8>("h14")')

    cn = Connect(n("a", sw(8)), s(-20, w(8)))
    assert check(cn)
    serialize_stmt_equal(cn, 'a <= SInt<8>("h-14")')
Esempio n. 22
0
def test_not():
    basis_tester(not_basis_cases)
    encounter_error_tester(not_type_wrong_cases)
    encounter_error_tester(not_width_wrong_cases)
    serialize_equal(Not(u(20, w(5)), uw(5)), 'not(UInt<5>("h14"))')
    serialize_equal(Not(s(-20, w(6)), uw(6)), 'not(SInt<6>("h-14"))')
Esempio n. 23
0
def test_module_body_wrong():
    mod = DefModule("m", [OutputPort("p", uw(8))],
                    Connect(n("p", uw(8)), s(2, w(8))))
    assert not check(mod)
Esempio n. 24
0
def test_shl():
    basis_tester(shl_basis_cases)
    encounter_error_tester(shl_type_wrong_cases)
    encounter_error_tester(shl_width_wrong_cases)
    serialize_equal(Shl(u(20, w(5)), 6, uw(11)), 'shl(UInt<5>("h14"), 6)')
    serialize_equal(Shl(s(-20, w(6)), 6, sw(12)), 'shl(SInt<6>("h-14"), 6)')