mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 03:32:29 +00:00 
			
		
		
		
	Added read_blif command
This commit is contained in:
		
							parent
							
								
									e5116eeb77
								
							
						
					
					
						commit
						2cc4e75914
					
				
					 2 changed files with 33 additions and 1 deletions
				
			
		|  | @ -133,7 +133,7 @@ void parse_blif(RTLIL::Design *design, std::istream &f, std::string dff_name) | ||||||
| 				continue; | 				continue; | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			if (!strcmp(cmd, ".gate")) | 			if (!strcmp(cmd, ".gate") || !strcmp(cmd, ".subckt")) | ||||||
| 			{ | 			{ | ||||||
| 				char *p = strtok(NULL, " \t\r\n"); | 				char *p = strtok(NULL, " \t\r\n"); | ||||||
| 				if (p == NULL) | 				if (p == NULL) | ||||||
|  | @ -268,5 +268,35 @@ error: | ||||||
| 	log_error("Syntax error in line %d!\n", line_count); | 	log_error("Syntax error in line %d!\n", line_count); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | struct BlifFrontend : public Frontend { | ||||||
|  | 	BlifFrontend() : Frontend("blif", "read BLIF file") { } | ||||||
|  | 	virtual void help() | ||||||
|  | 	{ | ||||||
|  | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
|  | 		log("\n"); | ||||||
|  | 		log("    read_blif [filename]\n"); | ||||||
|  | 		log("\n"); | ||||||
|  | 		log("Load modules from a BLIF file into the current design.\n"); | ||||||
|  | 		log("\n"); | ||||||
|  | 	} | ||||||
|  | 	virtual void execute(std::istream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) | ||||||
|  | 	{ | ||||||
|  | 		log_header("Executing BLIF frontend.\n"); | ||||||
|  | 
 | ||||||
|  | 		size_t argidx; | ||||||
|  | 		for (argidx = 1; argidx < args.size(); argidx++) { | ||||||
|  | 			std::string arg = args[argidx]; | ||||||
|  | 			// if (arg == "-lib") {
 | ||||||
|  | 			// 	flag_lib = true;
 | ||||||
|  | 			// 	continue;
 | ||||||
|  | 			// }
 | ||||||
|  | 			break; | ||||||
|  | 		} | ||||||
|  | 		extra_args(f, filename, args, argidx); | ||||||
|  | 
 | ||||||
|  | 		parse_blif(design, *f, "\\DFF"); | ||||||
|  | 	} | ||||||
|  | } BlifFrontend; | ||||||
|  | 
 | ||||||
| YOSYS_NAMESPACE_END | YOSYS_NAMESPACE_END | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -746,6 +746,8 @@ void run_frontend(std::string filename, std::string command, std::string *backen | ||||||
| 			command = "verilog"; | 			command = "verilog"; | ||||||
| 		else if (filename.size() > 2 && filename.substr(filename.size()-3) == ".sv") | 		else if (filename.size() > 2 && filename.substr(filename.size()-3) == ".sv") | ||||||
| 			command = "verilog -sv"; | 			command = "verilog -sv"; | ||||||
|  | 		else if (filename.size() > 4 && filename.substr(filename.size()-5) == ".blif") | ||||||
|  | 			command = "blif"; | ||||||
| 		else if (filename.size() > 3 && filename.substr(filename.size()-3) == ".il") | 		else if (filename.size() > 3 && filename.substr(filename.size()-3) == ".il") | ||||||
| 			command = "ilang"; | 			command = "ilang"; | ||||||
| 		else if (filename.size() > 3 && filename.substr(filename.size()-3) == ".ys") | 		else if (filename.size() > 3 && filename.substr(filename.size()-3) == ".ys") | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue