@@ -68,7 +68,7 @@ def __init__(
6868 self .pass_requirements_file = pass_requirements_file
6969 self .sdc_dir = sdc_dir
7070 self .noc_traffics = noc_traffic_list_add
71- self .noc_traffics_dir = noc_traffics_dir
71+ self .noc_traffic_dir = noc_traffics_dir
7272 self .place_constr_dir = place_constr_dir
7373 self .qor_parse_file = qor_parse_file
7474 self .cmos_tech_behavior = cmos_tech_behavior
@@ -332,127 +332,154 @@ def create_jobs(args, configs, after_run=False):
332332 """
333333 jobs = []
334334 for config in configs :
335- for arch , circuit , noc_file in itertools .product (config .archs , config .circuits , config .noc_traffics ):
336- print (f"{ arch } , { circuit } , { noc_file } " )
337- golden_results = load_parse_results (
338- str (PurePath (config .config_dir ).joinpath ("golden_results.txt" ))
339- )
340- abs_arch_filepath = resolve_vtr_source_file (config , arch , config .arch_dir )
341- abs_circuit_filepath = resolve_vtr_source_file (config , circuit , config .circuit_dir )
342- work_dir = str (PurePath (arch ).joinpath (circuit ))
343-
344- run_dir = (
345- str (Path (get_latest_run_dir (find_task_dir (config , args .alt_tasks_dir ))) / work_dir )
346- if after_run
347- else str (
348- Path (get_next_run_dir (find_task_dir (config , args .alt_tasks_dir ))) / work_dir
335+ for arch , circuit in itertools .product (config .archs , config .circuits ):
336+ noc_traffic = []
337+ if config .noc_traffics :
338+ noc_traffics = config .noc_traffics
339+ else :
340+ noc_traffics = [None ]
341+ for noc_traffic in noc_traffics :
342+ golden_results = load_parse_results (
343+ str (PurePath (config .config_dir ).joinpath ("golden_results.txt" ))
349344 )
350- )
351-
352- # Collect any extra script params from the config file
353- cmd = [abs_circuit_filepath , abs_arch_filepath ]
354-
355- # Resolve and collect all include paths in the config file
356- # as -include ["include1", "include2", ..]
357- includes = []
358- if config .includes :
359- cmd += ["-include" ]
360- for include in config .includes :
361- abs_include_filepath = resolve_vtr_source_file (
362- config , include , config .include_dir
345+ abs_arch_filepath = resolve_vtr_source_file (config , arch , config .arch_dir )
346+ abs_circuit_filepath = resolve_vtr_source_file (config , circuit , config .circuit_dir )
347+ work_dir = str (PurePath (arch ).joinpath (circuit ))
348+
349+ run_dir = (
350+ str (Path (get_latest_run_dir (find_task_dir (config , args .alt_tasks_dir ))) / work_dir )
351+ if after_run
352+ else str (
353+ Path (get_next_run_dir (find_task_dir (config , args .alt_tasks_dir ))) / work_dir
363354 )
364- includes .append (abs_include_filepath )
365-
366- cmd += includes
367-
368- # Check if additional architectural data files are present
369- if config .additional_files_list_add :
370- for additional_file in config .additional_files_list_add :
371- flag , file_name = additional_file .split ("," )
372-
373- cmd += [flag ]
374- cmd += [resolve_vtr_source_file (config , file_name , config .arch_dir )]
375-
376- if hasattr (args , "show_failures" ) and args .show_failures :
377- cmd += ["-show_failures" ]
378- cmd += config .script_params if config .script_params else []
379- cmd += config .script_params_common if config .script_params_common else []
380- cmd += (
381- args .shared_script_params
382- if hasattr (args , "shared_script_params" ) and args .shared_script_params
383- else []
384- )
355+ )
385356
386- # Apply any special config based parameters
387- if config .cmos_tech_behavior :
388- cmd += [
389- "-cmos_tech" ,
390- resolve_vtr_source_file (config , config .cmos_tech_behavior , "tech" ),
391- ]
392-
393- cmd += (
394- ["--fix_pins" , resolve_vtr_source_file (config , config .pad_file )]
395- if config .pad_file
396- else []
397- )
357+ # Collect any extra script params from the config file
358+ cmd = [abs_circuit_filepath , abs_arch_filepath ]
359+
360+ # Resolve and collect all include paths in the config file
361+ # as -include ["include1", "include2", ..]
362+ includes = []
363+ if config .includes :
364+ cmd += ["-include" ]
365+ for include in config .includes :
366+ abs_include_filepath = resolve_vtr_source_file (
367+ config , include , config .include_dir
368+ )
369+ includes .append (abs_include_filepath )
370+
371+ cmd += includes
372+
373+ # Check if additional architectural data files are present
374+ if config .additional_files_list_add :
375+ for additional_file in config .additional_files_list_add :
376+ flag , file_name = additional_file .split ("," )
377+
378+ cmd += [flag ]
379+ cmd += [resolve_vtr_source_file (config , file_name , config .arch_dir )]
380+
381+ if hasattr (args , "show_failures" ) and args .show_failures :
382+ cmd += ["-show_failures" ]
383+ cmd += config .script_params if config .script_params else []
384+ cmd += config .script_params_common if config .script_params_common else []
385+ cmd += (
386+ args .shared_script_params
387+ if hasattr (args , "shared_script_params" ) and args .shared_script_params
388+ else []
389+ )
398390
399- if config .sdc_dir :
400- sdc_name = "{}.sdc" .format (Path (circuit ).stem )
401- sdc_file = resolve_vtr_source_file (config , sdc_name , config .sdc_dir )
391+ # Apply any special config based parameters
392+ if config .cmos_tech_behavior :
393+ cmd += [
394+ "-cmos_tech" ,
395+ resolve_vtr_source_file (config , config .cmos_tech_behavior , "tech" ),
396+ ]
397+
398+ cmd += (
399+ ["--fix_pins" , resolve_vtr_source_file (config , config .pad_file )]
400+ if config .pad_file
401+ else []
402+ )
402403
403- cmd += ["-sdc_file" , "{}" .format (sdc_file )]
404+ if config .sdc_dir :
405+ sdc_name = "{}.sdc" .format (Path (circuit ).stem )
406+ sdc_file = resolve_vtr_source_file (config , sdc_name , config .sdc_dir )
404407
405- if config .place_constr_dir :
406- place_constr_name = "{}.place" .format (Path (circuit ).stem )
407- place_constr_file = resolve_vtr_source_file (
408- config , place_constr_name , config .place_constr_dir
409- )
408+ cmd += ["-sdc_file" , "{}" .format (sdc_file )]
410409
411- cmd += ["--fix_clusters" , "{}" .format (place_constr_file )]
412-
413- parse_cmd = None
414- second_parse_cmd = None
415- qor_parse_command = None
416- if config .parse_file :
417- parse_cmd = [
418- resolve_vtr_source_file (
419- config ,
420- config .parse_file ,
421- str (PurePath ("parse" ).joinpath ("parse_config" )),
410+ if config .place_constr_dir :
411+ place_constr_name = "{}.place" .format (Path (circuit ).stem )
412+ place_constr_file = resolve_vtr_source_file (
413+ config , place_constr_name , config .place_constr_dir
422414 )
423- ]
424-
425- if config .second_parse_file :
426- second_parse_cmd = [
427- resolve_vtr_source_file (
428- config ,
429- config .second_parse_file ,
430- str (PurePath ("parse" ).joinpath ("parse_config" )),
431- )
432- ]
433-
434- if config .qor_parse_file :
435- qor_parse_command = [
436- resolve_vtr_source_file (
437- config ,
438- config .qor_parse_file ,
439- str (PurePath ("parse" ).joinpath ("qor_config" )),
440- )
441- ]
442- # We specify less verbosity to the sub-script
443- # This keeps the amount of output reasonable
444- if hasattr (args , "verbosity" ) and max (0 , args .verbosity - 1 ):
445- cmd += ["-verbose" ]
446- if config .script_params_list_add :
447- for value in config .script_params_list_add :
415+
416+ cmd += ["--fix_clusters" , "{}" .format (place_constr_file )]
417+
418+ parse_cmd = None
419+ second_parse_cmd = None
420+ qor_parse_command = None
421+ if config .parse_file :
422+ parse_cmd = [
423+ resolve_vtr_source_file (
424+ config ,
425+ config .parse_file ,
426+ str (PurePath ("parse" ).joinpath ("parse_config" )),
427+ )
428+ ]
429+
430+ if config .second_parse_file :
431+ second_parse_cmd = [
432+ resolve_vtr_source_file (
433+ config ,
434+ config .second_parse_file ,
435+ str (PurePath ("parse" ).joinpath ("parse_config" )),
436+ )
437+ ]
438+
439+ if config .qor_parse_file :
440+ qor_parse_command = [
441+ resolve_vtr_source_file (
442+ config ,
443+ config .qor_parse_file ,
444+ str (PurePath ("parse" ).joinpath ("qor_config" )),
445+ )
446+ ]
447+ # We specify less verbosity to the sub-script
448+ # This keeps the amount of output reasonable
449+ if hasattr (args , "verbosity" ) and max (0 , args .verbosity - 1 ):
450+ cmd += ["-verbose" ]
451+
452+ if noc_traffic :
453+ cmd += ["--noc_flows_file" , resolve_vtr_source_file (config , noc_traffic , config .noc_traffic_dir )]
454+
455+ if config .script_params_list_add :
456+ for value in config .script_params_list_add :
457+ jobs .append (
458+ create_job (
459+ args ,
460+ config ,
461+ circuit ,
462+ includes ,
463+ arch ,
464+ value ,
465+ cmd ,
466+ parse_cmd ,
467+ second_parse_cmd ,
468+ qor_parse_command ,
469+ work_dir ,
470+ run_dir ,
471+ golden_results ,
472+ )
473+ )
474+ else :
448475 jobs .append (
449476 create_job (
450477 args ,
451478 config ,
452479 circuit ,
453480 includes ,
454481 arch ,
455- value ,
482+ None ,
456483 cmd ,
457484 parse_cmd ,
458485 second_parse_cmd ,
@@ -462,24 +489,6 @@ def create_jobs(args, configs, after_run=False):
462489 golden_results ,
463490 )
464491 )
465- else :
466- jobs .append (
467- create_job (
468- args ,
469- config ,
470- circuit ,
471- includes ,
472- arch ,
473- None ,
474- cmd ,
475- parse_cmd ,
476- second_parse_cmd ,
477- qor_parse_command ,
478- work_dir ,
479- run_dir ,
480- golden_results ,
481- )
482- )
483492
484493 return jobs
485494
0 commit comments