pll_flowDir, extDir, pvtFormatDir, platform, pll_name, lvs, pex) if outMode == 'full': #-------------------------------------------------------- # run analog sim #-------------------------------------------------------- print( '#======================================================================' ) print('# running post-pex analog sim for DCO alone') print( '#======================================================================' ) run_pex_flow.gen_post_pex_netlist(platform, dcoName, pvtFormatDir, dco_flowDir, extDir, calibreRulesDir, wellpin, pex_spectre) run_pex_sim.gen_dco_pex_wrapper(extDir, pex_netlistDir, pvtFormatDir, Ncc, Ndrv, Nfc, Nstg, ninterp, dcoName, fc_en_type, FC_half) run_pex_sim.gen_tb_wrapped(hspiceModel, pex_tbDir, pvtFormatDir, Ncc, Ndrv, Nfc, Nstg, vdd, temp, fc_en_type, pex_sim_time, corner_lib, dcoName, pex_netlistDir, single_ended, pex_spectre, tapeout_mode) dcoNames = [dcoName] run_pex_sim.gen_mkfile_pex(pvtFormatDir, hspiceDir, pex_resDir, pex_tbDir, num_core, dcoNames, tech_node) #------------------------------------------- # read pex sim results
with open(flowDir + '/scripts/dc/dc.filelist.tcl', 'w') as file: file.write(filedata) #--------------------------------------------------------------------------- # Run Synthesis and APR #--------------------------------------------------------------------------- print('# Array Size %s - Running Synthesis and APR...' % arrSize) designArea = rdf.run_synth_n_apr(args.platform, designName, flowDir) p = sp.Popen(['cp',flowDir+'/reports/innovus/'+designName+'.main.htm.ascii',simDir+'/run/']) print('# Array Size %s - Synthesis and APR finished' % arrSize) #--------------------------------------------------------------------------- # Generate post PEX netlist #--------------------------------------------------------------------------- print('# Array Size %s - Generating post PEX netist...' % arrSize) pex.gen_post_pex_netlist(args.platform, designName, flowDir, extDir, \ calibreRulesDir) print('# Array Size %s - Post PEX netlist Generated' % arrSize) #--------------------------------------------------------------------------- # Run Hspice Sims #--------------------------------------------------------------------------- print('# Array Size %s - Running Hspice Sims...' % arrSize) sim.run_post_pex_model_imax_worst(args.platform, \ platformConfig['hspiceModels'], \ designName, extDir, simDir, \ simTool, arrSize) print('# Array Size %s - Hspice Sim Completed' % arrSize) #--------------------------------------------------------------------------- # Parse the Sim Results #---------------------------------------------------------------------------