mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-03 21:09:12 +00:00 
			
		
		
		
	dffinit -noreinit to silently continue when init value is 1'bx
This commit is contained in:
		
							parent
							
								
									98925f6c4b
								
							
						
					
					
						commit
						aa081f83c7
					
				
					 1 changed files with 12 additions and 4 deletions
				
			
		| 
						 | 
				
			
			@ -135,10 +135,18 @@ struct DffinitPass : public Pass {
 | 
			
		|||
							continue;
 | 
			
		||||
						while (GetSize(value.bits) <= i)
 | 
			
		||||
							value.bits.push_back(State::S0);
 | 
			
		||||
						if (noreinit && value.bits[i] != State::Sx && value.bits[i] != init_bits.at(sig[i]))
 | 
			
		||||
							log_error("Trying to assign a different init value for %s.%s.%s which technically "
 | 
			
		||||
									"have a conflicted init value.\n",
 | 
			
		||||
									log_id(module), log_id(cell), log_id(it.second));
 | 
			
		||||
						if (noreinit && value.bits[i] != State::Sx && value.bits[i] != init_bits.at(sig[i])) {
 | 
			
		||||
							if (init_bits.at(sig[i]) != State::Sx) {
 | 
			
		||||
								log_error("Trying to assign a different init value for %s.%s.%s which technically "
 | 
			
		||||
										"have a conflicted init value.\n",
 | 
			
		||||
										log_id(module), log_id(cell), log_id(it.second));
 | 
			
		||||
							}
 | 
			
		||||
							else {
 | 
			
		||||
								// Trying to overwrite an existing INIT value with 1'bx,
 | 
			
		||||
								//   silently ignore?
 | 
			
		||||
								continue;
 | 
			
		||||
							}
 | 
			
		||||
						}
 | 
			
		||||
						value.bits[i] = init_bits.at(sig[i]);
 | 
			
		||||
						cleanup_bits.insert(sig[i]);
 | 
			
		||||
					}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue