Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

muxes/use_mux.sim.v test #67

Open
mithro opened this issue Jun 17, 2020 · 0 comments
Open

muxes/use_mux.sim.v test #67

mithro opened this issue Jun 17, 2020 · 0 comments

Comments

@mithro
Copy link
Collaborator

mithro commented Jun 17, 2020

=================================== FAILURES ===================================
_ test_pbtype_generation_with_vlog_to_pbtype[/home/travis/build/mithro/python-symbiflow-v2x/build/muxes/use_mux.sim.v] _
pbtypecase = {'goldenfile': '/home/travis/build/mithro/python-symbiflow-v2x/build/muxes/golden.pb_type.xml', 'simfile': '/home/travis/build/mithro/python-symbiflow-v2x/build/muxes/use_mux.sim.v'}
    def test_pbtype_generation_with_vlog_to_pbtype(pbtypecase):
        """Checks  pb_type.xml files produced by the vlog_to_pbtype.
    
        Parameters
        ----------
        pbtypecase : dict
            A dict of the filename of the model.xml file that should be produced
            by the corresponding sim.v file ('goldenfile') and the corresponding
            sim.v file ('simfile')
        """
        testdatafile = pbtypecase['goldenfile']
        testdatadir = os.path.dirname(testdatafile) + '/'
        vlog_filename = pbtypecase['simfile']
        testname = vlog_filename.split('/')[-1].split('.')[0]
        generatedmodelfile = os.path.join(testdatadir, testname) + '.pb_type.xml'
        pbtypeout = vlog_to_pbtype.vlog_to_pbtype([vlog_filename],
                                                  generatedmodelfile,
                                                  None)
        with open(generatedmodelfile, 'w') as model:
            model.write(pbtypeout)
    
        convertedgolden = convert.vtr_stylize_xml(testdatafile)
        convertedmodel = convert.vtr_stylize_xml(generatedmodelfile)
    
        with open(generatedmodelfile + '.actual', 'w') as model:
            model.write(convertedmodel)
    
>       assert convertedmodel == convertedgolden
E       assert ('<?xml version="1.0"?>\n'\n '<pb_type xmlns:xi="http://www.w3.org/2001/XInclude" name="USE_MUX" '\n 'num_pb="1">\n'\n '  <input name="a" num_pins="1"/>\n'\n '  <input name="b" num_pins="1"/>\n'\n '  <input name="c" num_pins="1"/>\n'\n '  <output name="o1" num_pins="1"/>\n'\n '  <output name="o2" num_pins="1"/>\n'\n '  <pb_type blif_model=".subckt LOGICBOX" name="lboxa" num_pb="1">\n'\n '    <input name="I" num_pins="1"/>\n'\n '    <output name="O" num_pins="1"/>\n'\n '    <delay_constant in_port="lboxa.I" max="30e-12" out_port="lboxa.O"/>\n'\n '  </pb_type>\n'\n '  <pb_type blif_model=".subckt LOGICBOX" name="lboxb" num_pb="1">\n'\n '    <input name="I" num_pins="1"/>\n'\n '    <output name="O" num_pins="1"/>\n'\n '    <delay_constant in_port="lboxb.I" max="30e-12" out_port="lboxb.O"/>\n'\n '  </pb_type>\n'\n '  <pb_type blif_model=".subckt LOGICBOX" name="lboxc" num_pb="1">\n'\n '    <input name="I" num_pins="1"/>\n'\n '    <output name="O" num_pins="1"/>\n'\n '    <delay_constant in_port="lboxc.I" max="30e-12" out_port="lboxc.O"/>\n'\n '  </pb_type>\n'\n '  <interconnect>\n'\n '    <mux input="lboxb.O lboxa.O" name="mux1" output="USE_MUX.o1">\n'\n '      <metadata>\n'\n '        <meta name="fasm_mux">\n'\n 'lboxb.O : I1\n'\n 'lboxa.O : I0\n'\n '</meta>\n'\n '        <meta name="type">bel</meta>\n'\n '        <meta name="subtype">routing</meta>\n'\n '      </metadata>\n'\n '    </mux>\n'\n '    <mux input="lboxc.O lboxa.O" name="mux2" output="USE_MUX.o2">\n'\n '      <metadata>\n'\n '        <meta name="fasm_mux">\n'\n 'lboxc.O : I1\n'\n 'lboxa.O : I0\n'\n '</meta>\n'\n '        <meta name="type">bel</meta>\n'\n '        <meta name="subtype">routing</meta>\n'\n '      </metadata>\n'\n '    </mux>\n'\n '    <direct input="USE_MUX.a" name="lboxa-I" output="lboxa.I"/>\n'\n '    <direct input="USE_MUX.b" name="lboxb-I" output="lboxb.I"/>\n'\n '    <direct input="USE_MUX.c" name="lboxc-I" output="lboxc.I"/>\n'\n '  </interconnect>\n'\n '</pb_type>\n') == ('<?xml version="1.0"?>\n'\n '<pb_type xmlns:xi="http://www.w3.org/2001/XInclude" name="USE_MUX" '\n 'num_pb="1">\n'\n '  <input name="a" num_pins="1"/>\n'\n '  <input name="b" num_pins="1"/>\n'\n '  <input name="c" num_pins="1"/>\n'\n '  <output name="o1" num_pins="1"/>\n'\n '  <output name="o2" num_pins="1"/>\n'\n '  <pb_type blif_model=".subckt LOGICBOX" name="lboxa" num_pb="1">\n'\n '    <input name="I" num_pins="1"/>\n'\n '    <output name="O" num_pins="1"/>\n'\n '    <delay_constant in_port="lboxa.I" max="30e-12" out_port="lboxa.O"/>\n'\n '  </pb_type>\n'\n '  <pb_type blif_model=".subckt LOGICBOX" name="lboxb" num_pb="1">\n'\n '    <input name="I" num_pins="1"/>\n'\n '    <output name="O" num_pins="1"/>\n'\n '    <delay_constant in_port="lboxb.I" max="30e-12" out_port="lboxb.O"/>\n'\n '  </pb_type>\n'\n '  <pb_type blif_model=".subckt LOGICBOX" name="lboxc" num_pb="1">\n'\n '    <input name="I" num_pins="1"/>\n'\n '    <output name="O" num_pins="1"/>\n'\n '    <delay_constant in_port="lboxc.I" max="30e-12" out_port="lboxc.O"/>\n'\n '  </pb_type>\n'\n '  <interconnect>\n'\n '    <mux input="lboxa.O lboxb.O" name="mux1" output="USE_MUX.o1">\n'\n '      <metadata>\n'\n '        <meta name="fasm_mux">\n'\n 'lboxa.O : I0\n'\n 'lboxb.O : I1\n'\n '</meta>\n'\n '        <meta name="type">bel</meta>\n'\n '        <meta name="subtype">routing</meta>\n'\n '      </metadata>\n'\n '    </mux>\n'\n '    <mux input="lboxa.O lboxc.O" name="mux2" output="USE_MUX.o2">\n'\n '      <metadata>\n'\n '        <meta name="fasm_mux">\n'\n 'lboxa.O : I0\n'\n 'lboxc.O : I1\n'\n '</meta>\n'\n '        <meta name="type">bel</meta>\n'\n '        <meta name="subtype">routing</meta>\n'\n '      </metadata>\n'\n '    </mux>\n'\n '    <direct input="USE_MUX.a" name="lboxa-I" output="lboxa.I"/>\n'\n '    <direct input="USE_MUX.b" name="lboxb-I" output="lboxb.I"/>\n'\n '    <direct input="USE_MUX.c" name="lboxc-I" output="lboxc.I"/>\n'\n '  </interconnect>\n'\n '</pb_type>\n')
E           <?xml version="1.0"?>
E           <pb_type xmlns:xi="http://www.w3.org/2001/XInclude" name="USE_MUX" num_pb="1">
E             <input name="a" num_pins="1"/>
E             <input name="b" num_pins="1"/>
E             <input name="c" num_pins="1"/>
E             <output name="o1" num_pins="1"/>
E             <output name="o2" num_pins="1"/>
E             <pb_type blif_model=".subckt LOGICBOX" name="lboxa" num_pb="1">
E               <input name="I" num_pins="1"/>
E               <output name="O" num_pins="1"/>
E               <delay_constant in_port="lboxa.I" max="30e-12" out_port="lboxa.O"/>
E             </pb_type>
E             <pb_type blif_model=".subckt LOGICBOX" name="lboxb" num_pb="1">
E               <input name="I" num_pins="1"/>
E               <output name="O" num_pins="1"/>
E               <delay_constant in_port="lboxb.I" max="30e-12" out_port="lboxb.O"/>
E             </pb_type>
E             <pb_type blif_model=".subckt LOGICBOX" name="lboxc" num_pb="1">
E               <input name="I" num_pins="1"/>
E               <output name="O" num_pins="1"/>
E               <delay_constant in_port="lboxc.I" max="30e-12" out_port="lboxc.O"/>
E             </pb_type>
E             <interconnect>
E         -     <mux input="lboxa.O lboxb.O" name="mux1" output="USE_MUX.o1">
E         ?                     ^       ^
E         +     <mux input="lboxb.O lboxa.O" name="mux1" output="USE_MUX.o1">
E         ?                     ^       ^
E                 <metadata>
E                   <meta name="fasm_mux">
E         + lboxb.O : I1
E           lboxa.O : I0
E         - lboxb.O : I1
E           </meta>
E                   <meta name="type">bel</meta>
E                   <meta name="subtype">routing</meta>
E                 </metadata>
E               </mux>
E         -     <mux input="lboxa.O lboxc.O" name="mux2" output="USE_MUX.o2">
E         ?                     ^       ^
E         +     <mux input="lboxc.O lboxa.O" name="mux2" output="USE_MUX.o2">
E         ?                     ^       ^
E                 <metadata>
E                   <meta name="fasm_mux">
E         + lboxc.O : I1
E           lboxa.O : I0
E         - lboxc.O : I1
E           </meta>
E                   <meta name="type">bel</meta>
E                   <meta name="subtype">routing</meta>
E                 </metadata>
E               </mux>
E               <direct input="USE_MUX.a" name="lboxa-I" output="lboxa.I"/>
E               <direct input="USE_MUX.b" name="lboxb-I" output="lboxb.I"/>
E               <direct input="USE_MUX.c" name="lboxc-I" output="lboxc.I"/>
E             </interconnect>
E           </pb_type>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant