mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 11:42:30 +00:00 
			
		
		
		
	proc_dff: fix early return bug
* early return caused proc_dff to stop considering rules after seeing one async rule - this is because continue should have been used to continue to procecssing the next rule instead of returning from the function
This commit is contained in:
		
							parent
							
								
									2de9f00368
								
							
						
					
					
						commit
						626dbbe1e0
					
				
					 1 changed files with 2 additions and 2 deletions
				
			
		|  | @ -262,7 +262,7 @@ void proc_dff(RTLIL::Module *mod, RTLIL::Process *proc, ConstEval &ce) | ||||||
| 		{ | 		{ | ||||||
| 			log_warning("Complex async reset for dff `%s'.\n", log_signal(sig)); | 			log_warning("Complex async reset for dff `%s'.\n", log_signal(sig)); | ||||||
| 			gen_dffsr_complex(mod, insig, sig, sync_edge->signal, sync_edge->type == RTLIL::SyncType::STp, async_rules, proc); | 			gen_dffsr_complex(mod, insig, sig, sync_edge->signal, sync_edge->type == RTLIL::SyncType::STp, async_rules, proc); | ||||||
| 			return; | 			continue; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		// If there is a reset condition in the async rules, use it
 | 		// If there is a reset condition in the async rules, use it
 | ||||||
|  | @ -277,7 +277,7 @@ void proc_dff(RTLIL::Module *mod, RTLIL::Process *proc, ConstEval &ce) | ||||||
| 					sync_edge->type == RTLIL::SyncType::STp, | 					sync_edge->type == RTLIL::SyncType::STp, | ||||||
| 					sync_level && sync_level->type == RTLIL::SyncType::ST1, | 					sync_level && sync_level->type == RTLIL::SyncType::ST1, | ||||||
| 					sync_edge->signal, sync_level->signal, proc); | 					sync_edge->signal, sync_level->signal, proc); | ||||||
| 			return; | 			continue; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		gen_dff(mod, insig, rstval.as_const(), sig_q, | 		gen_dff(mod, insig, rstval.as_const(), sig_q, | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue