Пример #1
0
def substep3(depth="", diedepth="", **args):
    sshaft.beginstep('substep3', args)
    depth = depth + ":substep3"
    if (depth == diedepth):
        sshaft.dief("ERROR: Error depth reached: " + diedepth)

    return sshaft.endstep()
Пример #2
0
def substep3(depth="", diedepth="", **args):
    sshaft.beginstep('substep3',args)
    depth=depth+":substep3"
    if (depth==diedepth):
        sshaft.dief("ERROR: Error depth reached: "+diedepth)

    return sshaft.endstep()
Пример #3
0
def substep1(depth="", diedepth="", **args):
    sshaft.beginstep('substep1', args)
    depth = depth + ":substep1"
    if (depth == diedepth):
        sshaft.dief("ERROR: Error depth reached: " + diedepth)

    sshaft.substep(cmd=[substep2, [], {'depth': depth, 'diedepth': diedepth}])

    return sshaft.endstep()
Пример #4
0
def substep1(depth="", diedepth="", **args):
    sshaft.beginstep('substep1',args)
    depth=depth+":substep1"
    if (depth==diedepth):
        sshaft.dief("ERROR: Error depth reached: "+diedepth)

    sshaft.substep(cmd=[substep2,[],{'depth':depth, 'diedepth':diedepth }])
    
    return sshaft.endstep()
Пример #5
0
def substep2(depth="", diedepth="", **args):
    sshaft.beginstep('substep2', args)
    depth = depth + ":substep2"
    if (depth == diedepth):
        sshaft.dief("ERROR: Error depth reached: " + diedepth)

    cmd = "testsshaft.tcl"
    cmd = cmd + " -depth " + depth
    cmd = cmd + " -return"
    if (diedepth):
        cmd = cmd + " -die " + diedepth
    sshaft.substep(mode='unix_step', cmd=cmd)

    for app in string.split(sshaft.gettechvar('Sshaft::Apps::AppList')):
        sshaft.dir_init('run/' + app, app)
        cmd = sshaft.gettechvar('Sshaft::Apps::' + app + '::TestCmd')
        sshaft.substep(mode=app + '_step', cmd=cmd, rundir='run/' + app)

    return sshaft.endstep()
Пример #6
0
def substep2(depth="", diedepth="", **args):
    sshaft.beginstep('substep2',args)
    depth=depth+":substep2"
    if (depth==diedepth):
        sshaft.dief("ERROR: Error depth reached: "+diedepth)

    cmd="testsshaft.tcl"
    cmd=cmd+" -depth "+depth
    cmd=cmd+" -return"
    if (diedepth):
        cmd=cmd+" -die "+diedepth
    sshaft.substep(mode='unix_step',cmd=cmd)
    
    for app in string.split(sshaft.gettechvar('Sshaft::Apps::AppList')):
        sshaft.dir_init('run/'+app,app)
        cmd=sshaft.gettechvar('Sshaft::Apps::'+app+'::TestCmd')
        sshaft.substep(mode=app+'_step',cmd=cmd,rundir='run/'+app)

    return sshaft.endstep()
                    + m.group(1)
                    + " in section "
                    + section
                    + " of file FreePDK45.tf is not in master layer list",
                )
            continue
        m = re.search(r"^\s*\(\s*\w+\s+(\w+)\s+(\w+)", line)
        if m:
            if m.group(1) not in layers:
                sshaft.logf(
                    "LOG_WARN",
                    "WARNING: Layer "
                    + m.group(1)
                    + " in section "
                    + section
                    + " of file FreePDK45.tf is not in master layer list",
                )
            if m.group(2) not in layers:
                sshaft.logf(
                    "LOG_WARN",
                    "WARNING: Layer "
                    + m.group(2)
                    + " in section "
                    + section
                    + " of file FreePDK45.tf is not in master layer list",
                )

f.close()

sshaft.endstep()
Пример #8
0
libname = 'NCSU_TechLib_FreePDK45'
pycellname = os.environ['PDK_DIR'] + '/ncsu_basekit/lib/' + libname
path = os.environ['PDK_DIR'] + '/ncsu_basekit/lib/' + libname
if os.access(path, os.F_OK):
    os.system('rm -rf ' + path)
    os.system('rm -rf ' + pycellname)
#cmd='cngenlib -c --techfile '+filename+' tech:only '+libname+' '+path+' >& cngenlib.log'
#cmd2='cngenlib --techlib '+libname+' pkg:pycells Xtors '+pycellname+' >& cngenlib2.log'
cmd = 'cngenlib -c --techfile ' + filename + ' pkg:pycells  ' + libname + ' ' + path + ' >& cngenlib.log'
sshaft.substep(mode='unix_prog', cmd=cmd, env='cadence')
#sshaft.substep(mode='unix_prog', cmd=cmd2, env='pycell')
#               log='cngenlib.log', logcheck=r"Error", checkmode='fail')

sshaft.dir_init('run/cds', 'cds')
sshaft.substep(mode='cds_step', cmd='pdkAppendTechfile()', rundir='run/cds')

#inpath=os.environ['PDK_DIR']+'/techfile'
#outpath=path #os.environ['PDK_DIR']+'/techfile/assura'
#sshaft.verify_dir(outpath)
#cmd='genDRC.py -in '+inpath+' -out '+outpath+' >& genDRC.log'
#sshaft.substep(mode='unix_prog',cmd=cmd)
#calibrefile = os.environ['PDK_DIR']+'/ncsu_basekit/techfile/calibre/calibreDRC.rul'
#cmd = 'cp '+calibrefile+' '+path
#sshaft.substep(mode='unix_prog',cmd=cmd)

viadir = os.environ['PDK_DIR'] + '/ncsu_basekit/techfile/customvia/*'
cmd = 'cp -r ' + viadir + ' ' + path
sshaft.substep(mode='unix_prog', cmd=cmd)

sshaft.endstep()