summaryrefslogtreecommitdiffstats
path: root/scripts/main.py
diff options
context:
space:
mode:
authorBaruch Sterin <baruchs@gmail.com>2015-11-05 01:24:26 -0800
committerBaruch Sterin <baruchs@gmail.com>2015-11-05 01:24:26 -0800
commitc610c036616d0b06e9036c4d17be6168619a6332 (patch)
treed7229e7967e086585e7575ae9e3476d80d2e34ff /scripts/main.py
parentaa62165a1cbd40740eb4ef5237d3a2259c40fb1d (diff)
downloadabc-c610c036616d0b06e9036c4d17be6168619a6332.tar.gz
abc-c610c036616d0b06e9036c4d17be6168619a6332.tar.bz2
abc-c610c036616d0b06e9036c4d17be6168619a6332.zip
pyabc: remove python integration from abc, it is moved to a separate extension
Diffstat (limited to 'scripts/main.py')
-rw-r--r--scripts/main.py431
1 files changed, 0 insertions, 431 deletions
diff --git a/scripts/main.py b/scripts/main.py
deleted file mode 100644
index 8f8a8721..00000000
--- a/scripts/main.py
+++ /dev/null
@@ -1,431 +0,0 @@
-import os
-import time
-from datetime import *
-##import par
-##from abc_common import *
-import abc_common
-
-#this makes par the dominant module insteat of abc_common
-from par import *
-
-import sys
-import math
-import time
-from pyabc_split import *
-##import pdb
-##from IPython.Debugger import Tracer; debug_here = Tracer()
-
-
-#x('source ../../abc.rc')
-#abc_common.x('source ../../abc.rc')
-
-def scorriter():
- """ apply scorr with increasing conflicts up to 100"""
- x('time')
- run_command('r p_0.aig')
- n = 20
- while n < 1000:
- print_circuit_stats()
- run_command('scorr -C %d'%n)
- x('ind -C %d'%1000)
- if is_unsat():
- print 'n = %d'%n
- break
- n = 2*n
- x('time')
-
-def simplifyq():
- # set_globals()
- n=n_ands()
- if n > 30000:
- if n<45000:
- abc("&get;&scl;&dc2;&put;dr;&get;&lcorr;&dc2;&put;dr;&get;&scorr;&fraig;&dc2;&put;dr;&get;&scorr -F 2;&dc2;&put;w temp.aig")
- else:
- abc("&get;&scl;&dc2;&put;dr;&get;&lcorr;&dc2;&put;dr;&get;&scorr;&fraig;&dc2;&put;dr;&get;&dc2;&put;w temp.aig")
- n = n_ands()
- if n < 30000:
- if n > 15000:
- abc("scl;rw;dr;lcorr;rw;dr;scorr;fraig;dc2;dr;dc2rs;w temp.aig")
- else:
- abc("scl;rw;dr;lcorr;rw;dr;scorr;fraig;dc2;dr;scorr -F 2;dc2rs;w temp.aig")
- if n < 10000:
- m = min( 30000/n, 8 )
- if m > 2:
- abc( "scorr -F %d"%m)
- run_command("ps")
-
-def constraints():
- """Determine if a set of files in a set of
- directories has constraints and print out the results."""
- for s in directories:
- print("\ndirectory is "+s)
- jj=eval(s)
- print(jj)
- for j in range(len(jj)):
- x("\nr ../DIR/%s/p_%smp.aig"%(s,jj[j]))
- print("structural:")
- x('constr -s')
- print("inductive constraints:")
- x('constr ')
-
-def help(s):
- run_command('%s -h'%s)
-
-def strip():
- """Strip out each output of a multi-output example and write it
- into a separate file"""
- os.chdir('../DIR')
- abc('r p_all_smp.aig')
- po = n_pos()
- print_circuit_stats()
- for j in range(po):
- abc('r p_all_smp.aig')
- abc('cone -s -O %d'%j)
- abc('scl;rw;trm')
- abc('w p_%d.aig'%j)
- print_circuit_stats()
-
-def fn_def(f,n):
- filename = f.__code__.co_filename
- firstline = f.__code__.co_firstlineno
- lines = open(filename, "r").readlines()
- print "".join(lines[firstline : n+firstline])
-
-def lst(list,match):
- result = []
- for j in range(len(list)):
- if list[j][-len(match):] == match:
- result.append(list[j])
- return result
-
-def lste(list,match,excp):
- result = []
- for j in range(len(list)):
- if list[j][-len(match):] == match:
- if excp in list[j]:
- continue
- result.append(list[j])
- return result
-
-def blif2aig():
- """ converts blif files into aig files"""
- #os.chdir('../ibm-web')
- list_all = os.listdir('.')
- l_blif = lst(list_all,'.blif')
- for j in range(len(l_blif)):
- name = l_blif[j][:-5]
- print '%s '%name,
- abc('r %s.blif'%name)
- abc('st')
- abc('fold')
- abc('w %s.aig'%name)
- ps()
-
-def la():
- return list_aig('')
-
-def list_aig(s=''):
- """ prnts out the sizes of aig files"""
- #os.chdir('../ibm-web')
- list_all = os.listdir('.')
- dir = lst(list_all,'.aig')
- dir.sort()
- result = []
- for j in range(len(dir)):
- name = dir[j][:-4]
- if not s_in_s(s,name):
- continue
- print '%s '%name,
- abc('r %s.aig'%name)
- ps()
- result = result + [name]
- return result
-
-def list_original():
- list_dir = os.listdir('.')
- list_dir.sort()
- out = []
- for i in range(len(list_dir)):
- name = '%s/original.aig'%list_dir[i]
- if os.access('%s'%name,os.R_OK):
- abc('r %s;&ps'%name)
- if n_latches() > 0 and n_pos() > 1:
- size = str(sizeof())
- print list_dir[i],
- ps()
- out = out + ['%s: %s'%(list_dir[i],size)]
- return out
-
-def list_size(s=''):
- """ prnts out the sizes of aig files. Leaves .aig as part of name"""
- #os.chdir('../ibm-web')
- list_all = os.listdir('.')
- dir = lst(list_all,'.aig')
- dir.sort()
- result = []
- for j in range(len(dir)):
-## name = dir[j][:-4]
- name = dir[j] #leaves .aig as part of name
- if not s_in_s(s,name):
- continue
- print '%s '%name,
-## abc('r %s.aig'%name)
- abc('r %s'%name)
- ps()
- result = result + [name[:-4]] #takes .aig off of name
- return result
-
-def rename(l=[]):
- for j in range(len(l)):
- name = l[j]
- name1 = name +'.aig'
- name2 = name[:-4]+'simp.aig' #take off _smp and put on simp
- os.rename(name1,name2)
-
-
-def list_blif(s=''):
- """ prnts out the sizes of aig files"""
- #os.chdir('../ibm-web')
- list_all = os.listdir('.')
- dir = lst(list_all,'.blif')
- dir.sort()
- result = []
- for j in range(len(dir)):
- name = dir[j][:-5]
- if not s_in_s(s,name):
- continue
- print '%s: '%name,
- abc('read_blif %s.blif'%name)
- run_command('ps')
- abc('st;zero;w %s.aig'%name)
- result = result + [name]
- return result
-
-def s_in_s(s1,s2):
- ls1 = len(s1)
- l = 1+len(s2)- ls1
- if l< 0:
- return False
- else:
- for j in range(l):
- if s1 == s2[j:j+ls1]:
- return True
- else:
- continue
- return False
-
-
-def convert_ibm():
- """ converts blif files (with constraints?) into aig files"""
- os.chdir('../ibm-web')
- list_ibm = os.listdir('.')
- l_blif = lst(list_ibm,'.blif')
- for j in range(len(l_blif)):
- name = l_blif[j][:-5]
- run_command('read_blif %s.blif'%name)
- abc('undc')
- abc('st -i')
- abc('zero')
- run_command('w %s.aig'%name)
- """if a<100000000:
- f = min(8,max(1,40000/a))
- #run_command('scorr -c -F %d'%f)
- #print 'Result of scorr -F %d: '%f,
- print_circuit_stats()
- run_command('w p_%d.aig'%j)"""
-
-def cl():
- cleanup()
-
-def cleanup():
- list = os.listdir('.')
- for j in range(len(list)):
- name = list[j]
- if ((s_in_s('_smp',name)) or (s_in_s('_save', name)) or (s_in_s('_backup', name)) or (s_in_s('_osave', name))
- or (s_in_s('_best', name)) or (s_in_s('_gsrm', name)) or (s_in_s('gore', name)) or
- (s_in_s('_bip', name)) or (s_in_s('sm0', name)) or (s_in_s('gabs', name))
- or (s_in_s('temp', name)) or (s_in_s('__', name)) or (s_in_s('greg', name)) or (s_in_s('tf2', name))
- or (s_in_s('gsrm', name)) or (s_in_s('_rpm', name )) or (s_in_s('gsyn', name)) or (s_in_s('beforerpm', name))
- or (s_in_s('afterrpm', name)) or (s_in_s('initabs', name)) or (s_in_s('_init', name))
- or (s_in_s('_osave', name)) or (s_in_s('tt_', name)) or (s_in_s('_before', name)) or (s_in_s('_after', name))
- or (s_in_s('_and', name)) or (s_in_s('_spec', name)) or (s_in_s('temp.a', name))
- or (s_in_s('_sync', name)) or (s_in_s('_old', name)) or (s_in_s('_cone_', name)) or (s_in_s('_abs', name))
- or (s_in_s('_vabs', name)) or (s_in_s('_gla', name)) or (s_in_s('vabs', name)) or (s_in_s('_mp2', name))
- or (s_in_s('_sc1', name)) or (s_in_s('_sc2', name)) or (s_in_s('_after', name))
- or (s_in_s('_before', name)) or (s_in_s('_aigs_', name)) or (s_in_s('_cex.', name))
- or (s_in_s('_bmc1', name)) or (s_in_s('_p0_', name)) or (s_in_s('_p1_', name))
- or (s_in_s('_unsolv', name)) or (s_in_s('_iso1', name))
- ):
- os.remove(name)
-
-def simp_mbi():
- os.chdir('../mbi')
- list_ibm = os.listdir('.')
- l_aig = lst(list_ibm,'.aig')
- for j in range(len(l_aig)):
- name = l_aig[j][:-4]
- run_command('r %s.aig'%name)
- run_command('st')
- print '\n%s: '%name
- print_circuit_stats()
- quick_simp()
- scorr_comp()
- simplify()
- run_command('w %s_smp.aig'%name)
-
-def strip_names():
- os.chdir('../mbi')
- list_ibm = os.listdir('.')
- l_aig = lst(list_ibm,'.aig')
- for j in range(len(l_aig)):
- name = l_aig[j][:-4]
- run_command('r %s.aig'%name)
- run_command('st')
- print '\n%s: '%name
- print_circuit_stats()
- quick_simp()
- scorr_comp()
- simplify()
- run_command('w %s_smp.aig'%name)
-
-
-def map_ibm():
- os.chdir('../ibmmike2')
- list_ibm = os.listdir('.')
- l_blif = lst(list_ibm,'.blif')
- result = []
- print len(l_blif)
- for j in range(len(l_blif)):
- name = l_blif[j][:-5]
- result.append('%s = %d'%(name,j))
- return result
-
-
-def absn(a,c,s):
- """ testing Niklas abstraction with various conflict limits
- a= method (0 - regular cba,
- 1 - pure pba,
- 2 - cba with pba at the end,
- 3 cba and pba interleaved at each step
- c = conflict limit
- s = No. of stable steps without cex"""
- global G_C, G_T, latches_before_abs, x_factor, f_name
- set_globals()
- latches_before_abs = n_latches()
- print 'Start: ',
- print_circuit_stats()
- print 'Een abstraction params: Method #%d, %d conflicts, %d stable'%(a,c,s)
- run_command('&get; &abs_newstart -v -A %d -C %d -S %d'%(a,c,s))
- bmcdepth = n_bmc_frames()
- print 'BMC depth = %d'%n_bmc_frames()
- abc('&w absn_greg.aig; &abs_derive; &put; w absn_gabs.aig')
- print 'Final abstraction: ',
- print_circuit_stats()
- write_file('absn')
- return "Done"
-
-def time_stamp():
- d=datetime.today()
- s = d.strftime('%m.%d.%y-%X')
- return s
-
-def apply_sp(list):
- global m_trace
- s = time_stamp()
- out_name = "%s-traces.txt"%s
- print out_name
- if os.access(out_name,os.R_OK):
- os.remove(out_name)
- f = open(out_name,'w')
- print f
- for j in range(len(list)):
- name = list[j]
- print '\n\n**** %s ****\n'%name
- f.write('\n\n****%s ****'%name)
- read_file_quiet(name)
- result = super_prove()
- trace = result[1]
- s = str(trace)
- f.write('\n\n')
- f.write(s)
- f.flush()
- f.close()
-
-def xfiles():
- global f_name
- #output = sys.stdout
- #iterate over all ESS files
- #saveout = sys.stdout
- #output = open("ibm_log.txt",'w')
- # sys.stdout = output
- os.chdir('../ess/f58m')
- print 'Directories are %s'%directories
- for s in directories:
- sss= '../%s'%s
- os.chdir(sss)
- print "\nDirectory is %s\n"%s
- jj=eval(s)
- print (jj)
- run_command('time')
- for j in range(len(jj)):
- print ' '
- set_fname('p_%dsmp23'%jj[j])#file f_name.aig is read in
- print 'p_%dsmp23'%jj[j]
- run_command('time')
- result = dprove3(1)
- print result
- run_command('time')
- run_command('time')
- os.chdir('../../python')
- #sys.stdout = saveout
- #output.close()
-
-def sublist(L,I):
- z = []
- for i in range(len(I)):
- s = L[I[i]],
- s = list(s)
- z = z + s
- return z
-
-def s2l(s):
- """ takes the string s divided by '\n' and makess a list of items"""
- result = []
- while len(s)>2:
- j = s.find('\n')
- result.append(s[:j])
- s = s[j+1:]
- return result
-
-def select(lst, s):
- result = []
- print lst
- for j in range(len(lst)):
- if s in lst[j]:
- s1 = lst[j]
- k = s1.find(':')
- s1 = s1[:k]
- result.append(s1)
- return result
-
-def process_result(name):
- f = open(name,'r')
- s = f.read()
- f.close()
- lst = s2l(s)
- result = select(lst,'Timeout')
- return result
-
-
-def main():
- stackno = 0
- if len(sys.argv) != 2:
- print "usage: %s <aig filename>"%sys.argv[0]
- sys.exit(1)
- aig_filename = sys.argv[1]
- x("source ../../abc.rc")
- read(aig_filename)
- dprove3(1)
-# a test to whether the script is being called from the command line
-if __name__=="__main__":
- main()