mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-04 13:29:12 +00:00 
			
		
		
		
	Be mindful that sigmap(wire) could have dupes when checking \init
This commit is contained in:
		
							parent
							
								
									c28d4b8047
								
							
						
					
					
						commit
						f46ac1df9f
					
				
					 1 changed files with 4 additions and 1 deletions
				
			
		| 
						 | 
					@ -265,15 +265,18 @@ struct SatHelper
 | 
				
			||||||
				RTLIL::SigSpec rhs = it.second->attributes.at("\\init");
 | 
									RTLIL::SigSpec rhs = it.second->attributes.at("\\init");
 | 
				
			||||||
				log_assert(lhs.size() == rhs.size());
 | 
									log_assert(lhs.size() == rhs.size());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									dict<RTLIL::SigBit,SigBit> seen_init;
 | 
				
			||||||
				RTLIL::SigSpec removed_bits;
 | 
									RTLIL::SigSpec removed_bits;
 | 
				
			||||||
				for (int i = 0; i < lhs.size(); i++) {
 | 
									for (int i = 0; i < lhs.size(); i++) {
 | 
				
			||||||
					RTLIL::SigSpec bit = lhs.extract(i, 1);
 | 
										RTLIL::SigSpec bit = lhs.extract(i, 1);
 | 
				
			||||||
					if (rhs[i] == State::Sx || !satgen.initial_state.check_all(bit)) {
 | 
										if (rhs[i] == State::Sx || !satgen.initial_state.check_all(bit) || seen_init.at(bit, rhs[i]) != rhs[i]) {
 | 
				
			||||||
						removed_bits.append(bit);
 | 
											removed_bits.append(bit);
 | 
				
			||||||
						lhs.remove(i, 1);
 | 
											lhs.remove(i, 1);
 | 
				
			||||||
						rhs.remove(i, 1);
 | 
											rhs.remove(i, 1);
 | 
				
			||||||
						i--;
 | 
											i--;
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
 | 
										else
 | 
				
			||||||
 | 
											seen_init[bit] = rhs[i];
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				if (removed_bits.size())
 | 
									if (removed_bits.size())
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue