Exemplo n.º 1
0
def test_pymtl_struct_closure(do_test):
    a = CaseStructClosureGlobal.DUT()
    a.elaborate()
    a._rtlir_freevar_ref = {
        'foo_at_upblk':
        (a._foo,
         rt.Port("input", rdt.Struct("Bits32Foo", {"foo": rdt.Vector(32)})))
    }
    do_test(a)
Exemplo n.º 2
0
def test_pymtl_packed_array():
    class B(BitStruct):
        def __init__(s, foo=42):
            s.foo = [Bits32(foo) for _ in range(5)]

    class A(Component):
        def construct(s):
            s.in_ = InPort(B)

    a = A()
    a.elaborate()
    assert rdt.Struct( 'B', {'foo':rdt.PackedArray([5], rdt.Vector(32))}, ['foo'] ) == \
           rdt.get_rtlir_dtype( a.in_ )
Exemplo n.º 3
0
def test_py_struct():
    class B(BitStruct):
        def __init__(s, foo=42):
            s.foo = Bits32(foo)

    class A(Component):
        def construct(s):
            s.in_ = InPort(B)

    a = A()
    a.elaborate()
    assert rdt.Struct('B', {'foo': rdt.Vector(32)},
                      ['foo']) == rdt.get_rtlir_dtype(a.in_)
Exemplo n.º 4
0
def test_pymtl_packed_array():
    @bitstruct
    class B:
        foo: [Bits32] * 5

    class A(Component):
        def construct(s):
            s.in_ = InPort(B)

    a = A()
    a.elaborate()
    assert rdt.Struct( 'B', {'foo':rdt.PackedArray([5], rdt.Vector(32))} ) == \
           rdt.get_rtlir_dtype( a.in_ )
Exemplo n.º 5
0
def test_py_struct():
    @bitstruct
    class B:
        foo: Bits32

    class A(Component):
        def construct(s):
            s.in_ = InPort(B)

    a = A()
    a.elaborate()
    assert rdt.Struct('B',
                      {'foo': rdt.Vector(32)}) == rdt.get_rtlir_dtype(a.in_)
def test_tmp_wire_struct( do_test ):
  @bitstruct
  class B:
    foo: Bits32
  class A( dsl.Component ):
    def construct( s ):
      s.in_ = dsl.InPort( B )
      s.out = dsl.OutPort( Bits32 )
      @s.update
      def upblk():
        u = s.in_
        s.out = u.foo
  a = A()
  a.elaborate()
  a._rtlir_tmpvar_ref = \
    {('u', 'upblk') : rt.Wire(rdt.Struct('B', {'foo':rdt.Vector(32)}))}
  do_test( a )
Exemplo n.º 7
0
def test_tmp_wire_struct(do_test):
    a = CaseStructTmpWireComp.DUT()
    a.elaborate()
    a._rtlir_tmpvar_ref = \
      {('u', 'upblk') : rt.Wire(rdt.Struct('Bits32Foo', {'foo':rdt.Vector(32)}))}
    do_test(a)
Exemplo n.º 8
0
def test_pymtl_packed_array():
    a = CasePackedArrayStructPortOnly.DUT()
    a.elaborate()
    assert rdt.get_rtlir_dtype( a.in_ ) == \
        rdt.Struct( Bits32x5Foo, {'foo':rdt.PackedArray([5], rdt.Vector(32))} )
Exemplo n.º 9
0
def test_py_struct():
    a = CaseStructPortOnly.DUT()
    a.elaborate()
    assert rdt.get_rtlir_dtype(a.in_) == rdt.Struct(Bits32Foo,
                                                    {'foo': rdt.Vector(32)})