mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 11:42:30 +00:00 
			
		
		
		
	abc9: Understand ASIC options similar to abc
				
					
				
			This commit is contained in:
		
							parent
							
								
									d4e009fc2f
								
							
						
					
					
						commit
						e58a9b6ab6
					
				
					 2 changed files with 38 additions and 8 deletions
				
			
		|  | @ -166,9 +166,9 @@ struct abc9_output_filter | |||
| 
 | ||||
| void abc9_module(RTLIL::Design *design, std::string script_file, std::string exe_file, | ||||
| 		vector<int> lut_costs, bool dff_mode, std::string delay_target, std::string /*lutin_shared*/, bool fast_mode, | ||||
| 		bool show_tempdir, std::string box_file, std::string lut_file, | ||||
| 		std::string wire_delay, std::string tempdir_name | ||||
| ) | ||||
| 		bool show_tempdir, std::string box_file, std::string lut_file, std::vector<std::string> genlib_files, | ||||
| 		std::vector<std::string> liberty_files, std::string wire_delay, std::string tempdir_name, | ||||
| 		std::string constr_file, std::vector<std::string> dont_use_cells) | ||||
| { | ||||
| 	std::string abc9_script; | ||||
| 
 | ||||
|  | @ -176,8 +176,19 @@ void abc9_module(RTLIL::Design *design, std::string script_file, std::string exe | |||
| 		abc9_script += stringf("read_lut %s/lutdefs.txt; ", tempdir_name.c_str()); | ||||
| 	else if (!lut_file.empty()) | ||||
| 		abc9_script += stringf("read_lut \"%s\"; ", lut_file.c_str()); | ||||
| 	else | ||||
| 		log_abort(); | ||||
| 	else if (!liberty_files.empty() || !genlib_files.empty()) { | ||||
| 		std::string dont_use_args; | ||||
| 		for (std::string dont_use_cell : dont_use_cells) { | ||||
| 			dont_use_args += stringf("-X \"%s\" ", dont_use_cell.c_str()); | ||||
| 		} | ||||
| 		for (std::string liberty_file : liberty_files) { | ||||
| 			abc9_script += stringf("read_lib %s -w \"%s\" ; ", dont_use_args.c_str(), liberty_file.c_str()); | ||||
| 		} | ||||
| 		for (std::string liberty_file : genlib_files) | ||||
| 			abc9_script += stringf("read_library \"%s\"; ", liberty_file.c_str()); | ||||
| 		if (!constr_file.empty()) | ||||
| 			abc9_script += stringf("read_constr -v \"%s\"; ", constr_file.c_str()); | ||||
| 	} | ||||
| 
 | ||||
| 	log_assert(!box_file.empty()); | ||||
| 	abc9_script += stringf("read_box \"%s\"; ", box_file.c_str()); | ||||
|  | @ -411,7 +422,8 @@ struct Abc9ExePass : public Pass { | |||
| 		log_header(design, "Executing ABC9_EXE pass (technology mapping using ABC9).\n"); | ||||
| 
 | ||||
| 		std::string exe_file = yosys_abc_executable; | ||||
| 		std::string script_file, clk_str, box_file, lut_file; | ||||
| 		std::string script_file, clk_str, box_file, lut_file, constr_file; | ||||
| 		std::vector<std::string> genlib_files, liberty_files, dont_use_cells; | ||||
| 		std::string delay_target, lutin_shared = "-S 1", wire_delay; | ||||
| 		std::string tempdir_name; | ||||
| 		bool fast_mode = false, dff_mode = false; | ||||
|  | @ -499,6 +511,22 @@ struct Abc9ExePass : public Pass { | |||
| 				tempdir_name = args[++argidx]; | ||||
| 				continue; | ||||
| 			} | ||||
| 			if (arg == "-genlib" && argidx+1 < args.size()) { | ||||
| 				genlib_files.push_back(args[++argidx]); | ||||
| 				continue; | ||||
| 			} | ||||
| 			if (arg == "-liberty" && argidx+1 < args.size()) { | ||||
| 				liberty_files.push_back(args[++argidx]); | ||||
| 				continue; | ||||
| 			} | ||||
| 			if (arg == "-dont_use" && argidx+1 < args.size()) { | ||||
| 				dont_use_cells.push_back(args[++argidx]); | ||||
| 				continue; | ||||
| 			} | ||||
| 			if (arg == "-constr" && argidx+1 < args.size()) { | ||||
| 				constr_file = args[++argidx]; | ||||
| 				continue; | ||||
| 			} | ||||
| 			break; | ||||
| 		} | ||||
| 		extra_args(args, argidx, design); | ||||
|  | @ -562,7 +590,8 @@ struct Abc9ExePass : public Pass { | |||
| 
 | ||||
| 		abc9_module(design, script_file, exe_file, lut_costs, dff_mode, | ||||
| 				delay_target, lutin_shared, fast_mode, show_tempdir, | ||||
| 				box_file, lut_file, wire_delay, tempdir_name); | ||||
| 				box_file, lut_file, genlib_files, liberty_files, wire_delay, tempdir_name, | ||||
| 				constr_file, dont_use_cells); | ||||
| 	} | ||||
| } Abc9ExePass; | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue