mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 03:32:29 +00:00 
			
		
		
		
	Add support for $pmux in btor back-end
This commit is contained in:
		
							parent
							
								
									83cf736309
								
							
						
					
					
						commit
						133a0f4978
					
				
					 1 changed files with 23 additions and 0 deletions
				
			
		|  | @ -417,6 +417,29 @@ struct BtorWorker | |||
| 			goto okay; | ||||
| 		} | ||||
| 
 | ||||
| 		if (cell->type == "$pmux") | ||||
| 		{ | ||||
| 			SigSpec sig_a = sigmap(cell->getPort("\\A")); | ||||
| 			SigSpec sig_b = sigmap(cell->getPort("\\B")); | ||||
| 			SigSpec sig_s = sigmap(cell->getPort("\\S")); | ||||
| 			SigSpec sig_y = sigmap(cell->getPort("\\Y")); | ||||
| 
 | ||||
| 			int width = GetSize(sig_a); | ||||
| 			int sid = get_bv_sid(width); | ||||
| 			int nid = get_sig_nid(sig_a); | ||||
| 
 | ||||
| 			for (int i = 0; i < GetSize(sig_s); i++) { | ||||
| 				int nid_b = get_sig_nid(sig_b.extract(i*width, width)); | ||||
| 				int nid_s = get_sig_nid(sig_s.extract(i)); | ||||
| 				int nid2 = next_nid++; | ||||
| 				btorf("%d ite %d %d %d %d\n", nid2, sid, nid_s, nid_b, nid); | ||||
| 				nid = nid2; | ||||
| 			} | ||||
| 
 | ||||
| 			add_nid_sig(nid, sig_y); | ||||
| 			goto okay; | ||||
| 		} | ||||
| 
 | ||||
| 		if (cell->type.in("$dff", "$ff", "$_DFF_P_", "$_DFF_N", "$_FF_")) | ||||
| 		{ | ||||
| 			SigSpec sig_d = sigmap(cell->getPort("\\D")); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue