3.7 KiB
3.7 KiB
In [26]:
import re
with open('/home/p305119/libraries/xp018/actlib_dataflow_neuro/test/unit_tests/texel_small.v') as f:
veri = f.read()
"remove all std/acell modules"
mod = re.findall(r'(?<=\n)module [^A-Z(]*[A-Z][A-Z0-9_]*\([\s\S]*?endmodule', veri)
for i in mod:
veri = veri.replace(i, "")
std = re.findall(r'((\S*)(TBUF\d*|INV|N?AND\d|N?OR\d|TIELO|TIEHI|MUX\d|OAI\d*|AOI\d*|(?<!T)BUF\d*|DLY\d*|KEEP\d*)(__X\d))', veri)
"""replace all stdcell names"""
for j in list(set(std)):
veri = veri.replace(j[0], j[2] + j[3][1:])
keep = re.findall(r'((\S*)(KEEP\d*)())', veri)
"""Replace all KEEPs"""
for j in list(set(keep)):
veri = veri.replace(j[0], j[2] + j[3][1:])
acell = re.findall(r'(\S*)(A_[1234CPNRSUB_]{2,12}(_X\d)?\b(?=[^<>]))', veri)
for j in list(set(acell)):
veri = veri.replace(j[0] + j[1], j[1].replace('__', '_'))
arb = re.findall(r'(\S*)(ARBITER)', veri)
for j in list(set(arb)):
veri = veri.replace(j[0] + j[1], 'ARBITER')
pullu = re.findall(r'(\S*)(PULLUP__X4)', veri)
for j in list(set(pullu)):
veri = veri.replace(j[0] + j[1], 'PULLUP_X4')
pulld = re.findall(r'(\S*)(PULLDOWN__X4)', veri)
for j in list(set(pulld)):
veri = veri.replace(j[0] + j[1], 'PULLDOWN_X4')
veri = veri.replace('));', '), .vdd(vdd), .vss(vss));')
vddvss = re.findall(r'(?<=\n)(module [\([\s\S]*?;)', veri)
for j in list(set(vddvss)):
veri = veri.replace(j, j[:-2] + ", vdd, vss); \n input vdd;\n input vss;")
# veri = veri.replace('[', '')
veri = veri.replace('_0_0t', 't')
hierac = re.findall(r'(\\\S* )', veri)
for j in list(set(hierac)):
temp = j.replace(']', '')
temp = temp.replace('[', '')
temp = temp.replace('.', '_')
temp = temp.replace('\\', 'I')
veri = veri.replace(j, temp)
with open('/home/p305119/libraries/xp018/actlib_dataflow_neuro/test/unit_tests/texel_small_clean.v', 'w') as w:
w.write(veri)
In [ ]:
In [ ]:
In [ ]:
In [ ]: