mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 11:42:30 +00:00 
			
		
		
		
	Merge 6b5fbe37f0 into 012ddc2f1e
				
					
				
			This commit is contained in:
		
						commit
						b5110fc69c
					
				
					 1 changed files with 13 additions and 9 deletions
				
			
		|  | @ -301,16 +301,18 @@ struct SimInstance | ||||||
| 
 | 
 | ||||||
| 			if (mod != nullptr) { | 			if (mod != nullptr) { | ||||||
| 				dirty_children.insert(new SimInstance(shared, scope + "." + RTLIL::unescape_id(cell->name), mod, cell, this)); | 				dirty_children.insert(new SimInstance(shared, scope + "." + RTLIL::unescape_id(cell->name), mod, cell, this)); | ||||||
| 			} | 			} else { | ||||||
| 
 | 				for (auto &port : cell->connections()) | ||||||
| 			for (auto &port : cell->connections()) { |  | ||||||
| 				if (cell->input(port.first)) | 				if (cell->input(port.first)) | ||||||
| 					for (auto bit : sigmap(port.second)) { | 				for (auto bit : sigmap(port.second)) | ||||||
| 						upd_cells[bit].insert(cell); | 					upd_cells[bit].insert(cell); | ||||||
| 						// Make sure cell inputs connected to constants are updated in the first cycle
 | 
 | ||||||
| 						if (bit.wire == nullptr) | 				// Update all cells in the first cycle (to propagate constants but also to
 | ||||||
| 							dirty_bits.insert(bit); | 				// handle edge cases in which cells have defined output values in presence of
 | ||||||
| 					} | 				// undefined inputs). This is with the exception of few cells which don't have
 | ||||||
|  | 				// any inputs and should never be queued up for updating.
 | ||||||
|  | 				if (!cell->type.in(ID($initstate), ID($anyconst), ID($anyseq), ID($allconst), ID($allseq))) | ||||||
|  | 					dirty_cells.insert(cell); | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			if (RTLIL::builtin_ff_cell_types().count(cell->type) || cell->type == ID($anyinit)) { | 			if (RTLIL::builtin_ff_cell_types().count(cell->type) || cell->type == ID($anyinit)) { | ||||||
|  | @ -507,6 +509,8 @@ struct SimInstance | ||||||
| 
 | 
 | ||||||
| 	void update_cell(Cell *cell) | 	void update_cell(Cell *cell) | ||||||
| 	{ | 	{ | ||||||
|  | 		log_assert(!cell->type.in(ID($initstate), ID($anyconst), ID($anyseq), ID($allconst), ID($allseq))); | ||||||
|  | 
 | ||||||
| 		if (ff_database.count(cell)) | 		if (ff_database.count(cell)) | ||||||
| 			return; | 			return; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue