Xplace_for_ICCAD/utils/setup_dataset.py
2024-04-29 11:09:24 +08:00

108 lines
4.3 KiB
Python

from .get_design_params import get_single_design_params, get_custom_design_params, get_custom_json_params
def find_design_params(args, logger, placement=None):
if args.custom_path != "":
params = get_custom_design_params(args)
elif args.custom_json != "":
logger.info("Detect json mode. Please make sure that tech_lef are included first.")
params = get_custom_json_params(args)
else:
params = get_single_design_params(
args.dataset_root, args.dataset, args.design_name, placement
)
log_design_params(logger, params)
setup_design_args(args)
return params
def log_design_params(logger, params: dict):
content = "Design Info:\n"
num_items = 0
if "benchmark" in params.keys():
content += f"benchmark: {params['benchmark']}\n"
num_items += 1
if "design_name" in params.keys():
content += f"design_name: {params['design_name']}\n"
num_items += 1
for key, value in params.items():
if key == "design_name" or key == "benchmark":
continue
content += f"{key}: {value}"
if num_items < len(params) - 1:
content += "\n"
num_items += 1
logger.info(content)
def setup_design_args(args):
if args.design_name in ["adaptec1", "bigblue1"]:
args.num_bin_x = args.num_bin_y = 512
args.target_density = 1.0
elif args.design_name in ["adaptec2", "adaptec3", "adaptec4", "bigblue2"]:
args.num_bin_x = args.num_bin_y = 1024
args.target_density = 1.0
elif args.design_name in ["bigblue3", "bigblue4"]:
args.num_bin_x = args.num_bin_y = 2048
args.target_density = 1.0
elif args.design_name in ["mgc_des_perf_1"]:
args.num_bin_x = args.num_bin_y = 512
args.target_density = 0.91
elif args.design_name in ["mgc_fft_1"]:
args.num_bin_x = args.num_bin_y = 512
args.target_density = 0.835
elif args.design_name in ["mgc_fft_2"]:
args.num_bin_x = args.num_bin_y = 512
args.target_density = 0.65
elif args.design_name in ["mgc_fft_a"]:
args.num_bin_x = args.num_bin_y = 512
args.target_density = 0.5
elif args.design_name in ["mgc_fft_b"]:
args.num_bin_x = args.num_bin_y = 512
args.target_density = 0.6
elif args.design_name in ["mgc_matrix_mult_1"]:
args.num_bin_x = args.num_bin_y = 512
args.target_density = 0.802
elif args.design_name in ["mgc_matrix_mult_2"]:
args.num_bin_x = args.num_bin_y = 512
args.target_density = 0.8
elif args.design_name in ["mgc_matrix_mult_a"]:
args.num_bin_x = args.num_bin_y = 512
args.target_density = 0.6
elif args.design_name in ["mgc_superblue12"]:
args.num_bin_x, args.num_bin_y = 1024, 1024
args.target_density = 0.65
elif args.design_name in ["mgc_superblue14"]:
args.num_bin_x, args.num_bin_y = 512, 512
args.target_density = 0.56
elif args.design_name in ["mgc_superblue19"]:
args.num_bin_x, args.num_bin_y = 512, 512
args.target_density = 0.53
elif args.design_name in ["mgc_des_perf_a"]:
args.num_bin_x, args.num_bin_y = 512, 512
args.target_density = 0.429
elif args.design_name in ["mgc_des_perf_b"]:
args.num_bin_x, args.num_bin_y = 512, 512
args.target_density = 0.497
elif args.design_name in ["mgc_edit_dist_a"]:
args.num_bin_x, args.num_bin_y = 512, 512
args.target_density = 0.455
elif args.design_name in ["mgc_matrix_mult_b"]:
args.num_bin_x, args.num_bin_y = 512, 512
args.target_density = 0.60
elif args.design_name in ["mgc_matrix_mult_c"]:
args.num_bin_x, args.num_bin_y = 512, 512
args.target_density = 0.60
elif args.design_name in ["mgc_pci_bridge32_a"]:
args.num_bin_x, args.num_bin_y = 512, 512
args.target_density = 0.384
elif args.design_name in ["mgc_pci_bridge32_b"]:
args.num_bin_x, args.num_bin_y = 512, 512
args.target_density = 0.143
elif args.design_name in ["mgc_superblue11_a"]:
args.num_bin_x, args.num_bin_y = 512, 512
args.target_density = 0.65
elif args.design_name in ["mgc_superblue16_a"]:
args.num_bin_x, args.num_bin_y = 512, 512
args.target_density = 0.55
return args