1#========================================================================= 2# StructuralRTLIRGenL2Pass_test.py 3#========================================================================= 4# Author : Peitian Pan 5# Date : May 19, 2019 6"""Test the generation of level 2 structural RTLIR.""" 7 8from pymtl3.passes.rtlir.structural.StructuralRTLIRGenL2Pass import ( 9 StructuralRTLIRGenL2Pass, 10) 11from pymtl3.passes.rtlir.structural.StructuralRTLIRSignalExpr import * 12from pymtl3.passes.testcases import ( 13 CaseConnectArrayStructAttrToOutComp, 14 CaseConnectStructAttrToOutComp, 15) 16 17from .StructuralRTLIRGenL1Pass_test import gen_connections 18 19 20def test_L2_struct_attr(): 21 a = CaseConnectStructAttrToOutComp.DUT() 22 a.elaborate() 23 a.apply( StructuralRTLIRGenL2Pass( gen_connections( a ) ) ) 24 connections = a.get_metadata( StructuralRTLIRGenL2Pass.connections ) 25 comp = CurComp(a, 's') 26 assert connections == \ 27 [(StructAttr(CurCompAttr(comp, 'in_'), 'foo'), CurCompAttr(comp, 'out'))] 28 29def test_L2_packed_index(): 30 a = CaseConnectArrayStructAttrToOutComp.DUT() 31 a.elaborate() 32 a.apply( StructuralRTLIRGenL2Pass( gen_connections( a ) ) ) 33 connections = a.get_metadata( StructuralRTLIRGenL2Pass.connections ) 34 comp = CurComp(a, 's') 35 assert connections == \ 36 [(PackedIndex(StructAttr(CurCompAttr(comp, 'in_'), 'foo'), 1), 37 CurCompAttr(comp, 'out'))] 38