blob: 01e1e09dc94c5890581266f51609d2b013bf27a2 [file] [log] [blame]
#!/usr/bin/env python3
import sys
import os
from spice import header, change_names
FILE_MAP = {
"sram_cell_1rw_1r/cell_1rw_1r.lvs.calibre.sp": "openram_cell_1rw_1r/sky130_fd_bd_sram__openram_cell_1rw_1r.lvs.calibre.spice",
"sram_cell_1rw_1r/cell_1rw_1r.lvs.sp": "openram_cell_1rw_1r/sky130_fd_bd_sram__openram_cell_1rw_1r.lvs.spice",
"sram_cell_1rw_1r/cell_1rw_1r.sp": "openram_cell_1rw_1r/sky130_fd_bd_sram__openram_cell_1rw_1r.base.spice",
"sram_cell_6t/cell_6t.lvs.calibre.sp": "openram_cell_6t/sky130_fd_bd_sram__openram_cell_6t.lvs.calibre.spice",
"sram_cell_6t/cell_6t.lvs.sp": "openram_cell_6t/sky130_fd_bd_sram__openram_cell_6t.lvs.spice",
"sram_cell_6t/cell_6t.sp": "openram_cell_6t/sky130_fd_bd_sram__openram_cell_6t.base.spice",
"sram_col_cap_cell_1rw_1r/col_cap_cell_1rw_1r.lvs.calibre.sp": "openram_cell_1rw_1r_cap_col/sky130_fd_bd_sram__openram_cell_1rw_1r_cap_col.lvs.calibre.spice",
"sram_col_cap_cell_1rw_1r/col_cap_cell_1rw_1r.lvs.sp": "openram_cell_1rw_1r_cap_col/sky130_fd_bd_sram__openram_cell_1rw_1r_cap_col.lvs.spice",
"sram_col_cap_cell_1rw_1r/col_cap_cell_1rw_1r.sp": "openram_cell_1rw_1r_cap_col/sky130_fd_bd_sram__openram_cell_1rw_1r_cap_col.base.spice",
"sram_dff/sram_dff.lvs.calibre.sp": "openram_sram_dff/sky130_fd_bd_sram__openram_sram_dff.lvs.calibre.spice",
"sram_dff/sram_dff.lvs.sp": "openram_sram_dff/sky130_fd_bd_sram__openram_sram_dff.lvs.spice",
"sram_dff/sram_dff.sp": "openram_sram_dff/sky130_fd_bd_sram__openram_sram_dff.base.spice",
"sram_dummy_cell_1rw_1r/dummy_cell_1rw_1r.lvs.calibre.sp": "openram_cell_1rw_1r_dummy/sky130_fd_bd_sram__openram_cell_1rw_1r_dummy.lvs.calibre.spice",
"sram_dummy_cell_1rw_1r/dummy_cell_1rw_1r.lvs.sp": "openram_cell_1rw_1r_dummy/sky130_fd_bd_sram__openram_cell_1rw_1r_dummy.lvs.spice",
"sram_dummy_cell_1rw_1r/dummy_cell_1rw_1r.sp": "openram_cell_1rw_1r_dummy/sky130_fd_bd_sram__openram_cell_1rw_1r_dummy.base.spice",
"sram_dummy_cell_6t/dummy_cell_6t.lvs.calibre.sp": "openram_cell_6t_dummy/sky130_fd_bd_sram__openram_cell_6t_dummy.lvs.calibre.spice",
"sram_dummy_cell_6t/dummy_cell_6t.lvs.sp": "openram_cell_6t_dummy/sky130_fd_bd_sram__openram_cell_6t_dummy.lvs.spice",
"sram_dummy_cell_6t/dummy_cell_6t.sp": "openram_cell_6t_dummy/sky130_fd_bd_sram__openram_cell_6t_dummy.base.spice",
"sram_nand2_dec/nand2_dec.lvs.calibre.sp": "openram_nand2_dec/sky130_fd_bd_sram__openram_nand2_dec.lvs.calibre.spice",
"sram_nand2_dec/nand2_dec.lvs.sp": "openram_nand2_dec/sky130_fd_bd_sram__openram_nand2_dec.lvs.spice",
"sram_nand2_dec/nand2_dec.sp": "openram_nand2_dec/sky130_fd_bd_sram__openram_nand2_dec.base.spice",
"sram_nand3_dec/nand3_dec.lvs.calibre.sp": "openram_nand3_dec/sky130_fd_bd_sram__openram_nand3_dec.lvs.calibre.spice",
"sram_nand3_dec/nand3_dec.lvs.sp": "openram_nand3_dec/sky130_fd_bd_sram__openram_nand3_dec.lvs.spice",
"sram_nand3_dec/nand3_dec.sp": "openram_nand3_dec/sky130_fd_bd_sram__openram_nand3_dec.base.spice",
"sram_nand4_dec/nand4_dec.lvs.calibre.sp": "openram_nand4_dec/sky130_fd_bd_sram__openram_nand4_dec.lvs.calibre.spice",
"sram_nand4_dec/nand4_dec.lvs.sp": "openram_nand4_dec/sky130_fd_bd_sram__openram_nand4_dec.lvs.spice",
"sram_nand4_dec/nand4_dec.sp": "openram_nand4_dec/sky130_fd_bd_sram__openram_nand4_dec.base.spice",
"sram_replica_cell_1rw_1r/replica_cell_1rw_1r.lvs.calibre.sp": "openram_cell_1rw_1r_replica/sky130_fd_bd_sram__openram_cell_1rw_1r_replica.lvs.calibre.spice",
"sram_replica_cell_1rw_1r/replica_cell_1rw_1r.lvs.sp": "openram_cell_1rw_1r_replica/sky130_fd_bd_sram__openram_cell_1rw_1r_replica.lvs.spice",
"sram_replica_cell_1rw_1r/replica_cell_1rw_1r.sp": "openram_cell_1rw_1r_replica/sky130_fd_bd_sram__openram_cell_1rw_1r_replica.base.spice",
"sram_replica_cell_6t/replica_cell_6t.lvs.calibre.sp": "openram_cell_6t_replica/sky130_fd_bd_sram__openram_cell_6t_replica.lvs.calibre.spice",
"sram_replica_cell_6t/replica_cell_6t.lvs.sp": "openram_cell_6t_replica/sky130_fd_bd_sram__openram_cell_6t_replica.lvs.spice",
"sram_replica_cell_6t/replica_cell_6t.sp": "openram_cell_6t_replica/sky130_fd_bd_sram__openram_cell_6t_replica.base.spice",
"sram_row_cap_cell_1rw_1r/row_cap_cell_1rw_1r.lvs.calibre.sp": "openram_cell_1rw_1r_cap_row/sky130_fd_bd_sram__openram_cell_1rw_1r_cap_row.lvs.calibre.spice",
"sram_row_cap_cell_1rw_1r/row_cap_cell_1rw_1r.lvs.sp": "openram_cell_1rw_1r_cap_row/sky130_fd_bd_sram__openram_cell_1rw_1r_cap_row.lvs.spice",
"sram_row_cap_cell_1rw_1r/row_cap_cell_1rw_1r.sp": "openram_cell_1rw_1r_cap_row/sky130_fd_bd_sram__openram_cell_1rw_1r_cap_row.base.spice",
"sram_sense_amp/sense_amp.lvs.calibre.sp": "openram_sense_amp/sky130_fd_bd_sram__openram_sense_amp.lvs.calibre.spice",
"sram_sense_amp/sense_amp.lvs.sp": "openram_sense_amp/sky130_fd_bd_sram__openram_sense_amp.lvs.spice",
"sram_sense_amp/sense_amp.sp": "openram_sense_amp/sky130_fd_bd_sram__openram_sense_amp.base.spice",
"sram_write_driver/write_driver.lvs.calibre.sp": "openram_write_driver/sky130_fd_bd_sram__openram_write_driver.lvs.calibre.spice",
"sram_write_driver/write_driver.lvs.sp": "openram_write_driver/sky130_fd_bd_sram__openram_write_driver.lvs.spice",
"sram_write_driver/write_driver.sp": "openram_write_driver/sky130_fd_bd_sram__openram_write_driver.base.spice",
}
_, src_dir, dst_dir = sys.argv
for src, dst in FILE_MAP.items():
s = os.path.join(src_dir, src)
d = os.path.join(dst_dir, dst)
with open(s, "r") as f:
data = f.read()
sdir, sfile = src.split('/', 1)
sbase, sext = sfile.split('.', 1)
ddir, dfile = dst.split('/', 1)
dbase, dext = dfile.split('.', 1)
data = data.replace(sbase, dbase)
data = change_names("sky130_fd_bd_sram", data)
with open(d, "w") as f:
f.write(header)
f.write(data)
print("Created", s, "from", d)
# "libraries/sky130_fd_bd_sram/v0.0.0/cells"