mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 03:32:29 +00:00 
			
		
		
		
	Fixed driver conflict handling (various cmds)
This commit is contained in:
		
							parent
							
								
									6fe48cf41e
								
							
						
					
					
						commit
						a1c3df7fe4
					
				
					 1 changed files with 12 additions and 3 deletions
				
			
		|  | @ -1448,9 +1448,18 @@ void RTLIL::Module::connect(const RTLIL::SigSig &conn) | ||||||
| 		for (auto mon : design->monitors) | 		for (auto mon : design->monitors) | ||||||
| 			mon->notify_connect(this, conn); | 			mon->notify_connect(this, conn); | ||||||
| 
 | 
 | ||||||
| #ifndef NDEBUG | 	// ignore all attempts to assign constants to other constants
 | ||||||
| 	log_assert(!conn.first.has_const()); | 	if (conn.first.has_const()) { | ||||||
| #endif | 		RTLIL::SigSig new_conn; | ||||||
|  | 		for (int i = 0; i < GetSize(conn.first); i++) | ||||||
|  | 			if (conn.first[i].wire) { | ||||||
|  | 				new_conn.first.append(conn.first[i]); | ||||||
|  | 				new_conn.second.append(conn.second[i]); | ||||||
|  | 			} | ||||||
|  | 		if (GetSize(new_conn.first)) | ||||||
|  | 			connect(new_conn); | ||||||
|  | 		return; | ||||||
|  | 	} | ||||||
| 
 | 
 | ||||||
| 	if (yosys_xtrace) { | 	if (yosys_xtrace) { | ||||||
| 		log("#X# Connect (SigSig) in %s: %s = %s (%d bits)\n", log_id(this), log_signal(conn.first), log_signal(conn.second), GetSize(conn.first)); | 		log("#X# Connect (SigSig) in %s: %s = %s (%d bits)\n", log_id(this), log_signal(conn.first), log_signal(conn.second), GetSize(conn.first)); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue