mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 03:32:29 +00:00 
			
		
		
		
	
							parent
							
								
									3611e7c864
								
							
						
					
					
						commit
						d7da491002
					
				
					 1 changed files with 12 additions and 10 deletions
				
			
		|  | @ -149,7 +149,7 @@ struct SetundefPass : public Pass { | ||||||
| 	} | 	} | ||||||
| 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		bool got_value = false; | 		int got_value = 0; | ||||||
| 		bool undriven_mode = false; | 		bool undriven_mode = false; | ||||||
| 		bool expose_mode = false; | 		bool expose_mode = false; | ||||||
| 		bool init_mode = false; | 		bool init_mode = false; | ||||||
|  | @ -170,31 +170,31 @@ struct SetundefPass : public Pass { | ||||||
| 				continue; | 				continue; | ||||||
| 			} | 			} | ||||||
| 			if (args[argidx] == "-zero") { | 			if (args[argidx] == "-zero") { | ||||||
| 				got_value = true; | 				got_value++; | ||||||
| 				worker.next_bit_mode = MODE_ZERO; | 				worker.next_bit_mode = MODE_ZERO; | ||||||
| 				worker.next_bit_state = 0; | 				worker.next_bit_state = 0; | ||||||
| 				continue; | 				continue; | ||||||
| 			} | 			} | ||||||
| 			if (args[argidx] == "-one") { | 			if (args[argidx] == "-one") { | ||||||
| 				got_value = true; | 				got_value++; | ||||||
| 				worker.next_bit_mode = MODE_ONE; | 				worker.next_bit_mode = MODE_ONE; | ||||||
| 				worker.next_bit_state = 0; | 				worker.next_bit_state = 0; | ||||||
| 				continue; | 				continue; | ||||||
| 			} | 			} | ||||||
| 			if (args[argidx] == "-anyseq") { | 			if (args[argidx] == "-anyseq") { | ||||||
| 				got_value = true; | 				got_value++; | ||||||
| 				worker.next_bit_mode = MODE_ANYSEQ; | 				worker.next_bit_mode = MODE_ANYSEQ; | ||||||
| 				worker.next_bit_state = 0; | 				worker.next_bit_state = 0; | ||||||
| 				continue; | 				continue; | ||||||
| 			} | 			} | ||||||
| 			if (args[argidx] == "-anyconst") { | 			if (args[argidx] == "-anyconst") { | ||||||
| 				got_value = true; | 				got_value++; | ||||||
| 				worker.next_bit_mode = MODE_ANYCONST; | 				worker.next_bit_mode = MODE_ANYCONST; | ||||||
| 				worker.next_bit_state = 0; | 				worker.next_bit_state = 0; | ||||||
| 				continue; | 				continue; | ||||||
| 			} | 			} | ||||||
| 			if (args[argidx] == "-undef") { | 			if (args[argidx] == "-undef") { | ||||||
| 				got_value = true; | 				got_value++; | ||||||
| 				worker.next_bit_mode = MODE_UNDEF; | 				worker.next_bit_mode = MODE_UNDEF; | ||||||
| 				worker.next_bit_state = 0; | 				worker.next_bit_state = 0; | ||||||
| 				continue; | 				continue; | ||||||
|  | @ -207,8 +207,8 @@ struct SetundefPass : public Pass { | ||||||
| 				params_mode = true; | 				params_mode = true; | ||||||
| 				continue; | 				continue; | ||||||
| 			} | 			} | ||||||
| 			if (args[argidx] == "-random" && !got_value && argidx+1 < args.size()) { | 			if (args[argidx] == "-random" && argidx+1 < args.size()) { | ||||||
| 				got_value = true; | 				got_value++; | ||||||
| 				worker.next_bit_mode = MODE_RANDOM; | 				worker.next_bit_mode = MODE_RANDOM; | ||||||
| 				worker.next_bit_state = atoi(args[++argidx].c_str()) + 1; | 				worker.next_bit_state = atoi(args[++argidx].c_str()) + 1; | ||||||
| 				for (int i = 0; i < 10; i++) | 				for (int i = 0; i < 10; i++) | ||||||
|  | @ -221,7 +221,7 @@ struct SetundefPass : public Pass { | ||||||
| 
 | 
 | ||||||
| 		if (!got_value && expose_mode) { | 		if (!got_value && expose_mode) { | ||||||
| 			log("Using default as -undef with -expose.\n"); | 			log("Using default as -undef with -expose.\n"); | ||||||
| 			got_value = true; | 			got_value++; | ||||||
| 			worker.next_bit_mode = MODE_UNDEF; | 			worker.next_bit_mode = MODE_UNDEF; | ||||||
| 			worker.next_bit_state = 0; | 			worker.next_bit_state = 0; | ||||||
| 		} | 		} | ||||||
|  | @ -229,7 +229,9 @@ struct SetundefPass : public Pass { | ||||||
| 		if (expose_mode && !undriven_mode) | 		if (expose_mode && !undriven_mode) | ||||||
| 			log_cmd_error("Option -expose must be used with option -undriven.\n"); | 			log_cmd_error("Option -expose must be used with option -undriven.\n"); | ||||||
| 		if (!got_value) | 		if (!got_value) | ||||||
| 			log_cmd_error("One of the options -zero, -one, -anyseq, -anyconst, or -random <seed> must be specified.\n"); | 			log_cmd_error("One of the options -zero, -one, -anyseq, -anyconst, -random <seed>, or -expose must be specified.\n"); | ||||||
|  | 		else if (got_value > 1) | ||||||
|  | 			log_cmd_error("Only one of the options -zero, -one, -anyseq, -anyconst, or -random <seed> can be specified.\n"); | ||||||
| 
 | 
 | ||||||
| 		if (init_mode && (worker.next_bit_mode == MODE_ANYSEQ || worker.next_bit_mode == MODE_ANYCONST)) | 		if (init_mode && (worker.next_bit_mode == MODE_ANYSEQ || worker.next_bit_mode == MODE_ANYCONST)) | ||||||
| 			log_cmd_error("The options -init and -anyseq / -anyconst are exclusive.\n"); | 			log_cmd_error("The options -init and -anyseq / -anyconst are exclusive.\n"); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue