blob: 64b31b0f40d547b2381c8f130b0b4616dccde20e [file] [log] [blame]
import timing_solver
import timing_dbs
import cell_fuzzers
import json
import fuzzloops
def main():
jobs = []
jobs += cell_fuzzers.timing_configs("picorv32", "../../resource/picorv32_x20.v", "85")
def per_job(job):
grade, cfg = job
cfg.setup(skip_specimen=True)
bitf = cfg.build_design(cfg.ncl, {}, backanno=True, substitute=False)
ncl = bitf.replace(".bit", "_out.ncl")
sdf = bitf.replace(".bit", ".sdf")
data = timing_solver.solve_pip_delays(ncl, sdf)
db = timing_dbs.interconnect_db_path("ECP5", grade)
with open(db, "w") as f:
json.dump(data, f, indent=4, sort_keys=True)
fuzzloops.parallel_foreach(jobs, per_job)
if __name__ == "__main__":
main()