update signoff scripts to run LVS on `mgmt_core_wrapper`, `RAM!28, and `RAM256`

This commit is contained in:
Passant 2022-10-18 04:33:19 -07:00
parent c0db032dbf
commit ef1eb5dce1
1 changed files with 34 additions and 23 deletions

View File

@ -77,15 +77,24 @@ def run_lvs(
stdout=subprocess.PIPE, stdout=subprocess.PIPE,
stderr=subprocess.PIPE, stderr=subprocess.PIPE,
) )
if (design == "mgmt_core_wrapper" or design == "RAM128" or design == "RAM256"):
lvs_cmd = [ lvs_cmd = [
"bash", "bash",
"./run_full_lvs", "./run_full_lvs",
f"{design}", f"{design}",
f"{caravel_root}/verilog/gl/{design}.v", f"{mcw_root}/verilog/gl/{design}.v",
f"{design}", f"{design}",
f"{caravel_root}/gds/{design}.gds", f"{mcw_root}/gds/{design}.gds",
] ]
else:
lvs_cmd = [
"bash",
"./run_full_lvs",
f"{design}",
f"{caravel_root}/verilog/gl/{design}.v",
f"{design}",
f"{caravel_root}/gds/{design}.gds",
]
p1 = subprocess.Popen( p1 = subprocess.Popen(
lvs_cmd, lvs_cmd,
env=myenv, env=myenv,
@ -209,7 +218,7 @@ def check_errors(
lvs_summary_report.write("LVS reports:\n") lvs_summary_report.write("LVS reports:\n")
lvs_summary_report.write(" net count difference = " + str(failures[5]) + "\n") lvs_summary_report.write(" net count difference = " + str(failures[5]) + "\n")
lvs_summary_report.write( lvs_summary_report.write(
" device count difference = " + str(failures[6] + "\n") " device count difference = " + str(failures[6]) + "\n"
) )
lvs_summary_report.write(" unmatched nets = " + str(failures[1]) + "\n") lvs_summary_report.write(" unmatched nets = " + str(failures[1]) + "\n")
lvs_summary_report.write(" unmatched devices = " + str(failures[2]) + "\n") lvs_summary_report.write(" unmatched devices = " + str(failures[2]) + "\n")
@ -498,26 +507,27 @@ if __name__ == "__main__":
if out: if out:
ver_log.write(out) ver_log.write(out)
if lvs and drc and sta: # if lvs and drc and sta:
out, err = sta_p.communicate() # out, err = sta_p.communicate()
sta_log = open(f"{log_dir}/PT_STA_{design}.log", "w") # sta_log = open(f"{log_dir}/PT_STA_{design}.log", "w")
if err: # if err:
logging.error(err) # logging.error(err)
sta_log.write(err) # sta_log.write(err)
drc_p1.wait() # drc_p1.wait()
lvs_p1.wait() # lvs_p1.wait()
if lvs:
lvs_p1.wait()
if drc:
drc_p1.wait()
if sta: if sta:
out, err = sta_p.communicate() out, err = sta_p.communicate()
sta_log = open(f"{log_dir}/PT_STA_{design}.log", "w") sta_log = open(f"{log_dir}/PT_STA_{design}.log", "w")
if err: if err:
logging.error(err) logging.error(err)
sta_log.write(err) sta_log.write(err)
sta_log.close()
if lvs:
lvs_p1.wait()
if drc:
drc_p1.wait()
if antenna: if antenna:
out, err = ant.communicate() out, err = ant.communicate()
ant_rep = open(f"{signoff_dir}/{design}/standalone_pvr/antenna-vios.report", "w") ant_rep = open(f"{signoff_dir}/{design}/standalone_pvr/antenna-vios.report", "w")
@ -526,6 +536,7 @@ if __name__ == "__main__":
ant_rep.write(err.decode()) ant_rep.write(err.decode())
if out: if out:
ant_rep.write(out.decode()) ant_rep.write(out.decode())
ant_rep.close()
check_errors( check_errors(
caravel_root, log_dir, signoff_dir, drc, lvs, verification, sta, design, antenna caravel_root, log_dir, signoff_dir, drc, lvs, verification, sta, design, antenna