mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-04 05:19:11 +00:00 
			
		
		
		
	aiger2: Support $extern: hierarchy
				
					
				
			`$extern:...` modules inserted by `techmap -extern` are special in the regard that they have a private ID (starting with a dollar sign) but are not an internal cell. Support those modules in xaiger export.
This commit is contained in:
		
							parent
							
								
									87736a2bf9
								
							
						
					
					
						commit
						495a7805ec
					
				
					 1 changed files with 3 additions and 7 deletions
				
			
		| 
						 | 
				
			
			@ -832,12 +832,8 @@ struct XAigerAnalysis : Index<XAigerAnalysis, int, 0, 0> {
 | 
			
		|||
			return false;
 | 
			
		||||
 | 
			
		||||
		Cell *driver = bit.wire->driverCell();
 | 
			
		||||
		if (!driver->type.isPublic())
 | 
			
		||||
			return false;
 | 
			
		||||
 | 
			
		||||
		Module *mod = design->module(driver->type);
 | 
			
		||||
		log_assert(mod);
 | 
			
		||||
		if (!mod->has_attribute(ID::abc9_box_id))
 | 
			
		||||
		if (!mod || !mod->has_attribute(ID::abc9_box_id))
 | 
			
		||||
			return false;
 | 
			
		||||
 | 
			
		||||
		int max = 1;
 | 
			
		||||
| 
						 | 
				
			
			@ -870,7 +866,7 @@ struct XAigerAnalysis : Index<XAigerAnalysis, int, 0, 0> {
 | 
			
		|||
		HierCursor cursor;
 | 
			
		||||
		for (auto box : top_minfo->found_blackboxes) {
 | 
			
		||||
			Module *def = design->module(box->type);
 | 
			
		||||
			if (!box->type.isPublic() || (def && !def->has_attribute(ID::abc9_box_id)))
 | 
			
		||||
			if (!(def && def->has_attribute(ID::abc9_box_id)))
 | 
			
		||||
			for (auto &conn : box->connections_)
 | 
			
		||||
			if (box->output(conn.first))
 | 
			
		||||
			for (auto bit : conn.second)
 | 
			
		||||
| 
						 | 
				
			
			@ -885,7 +881,7 @@ struct XAigerAnalysis : Index<XAigerAnalysis, int, 0, 0> {
 | 
			
		|||
 | 
			
		||||
		for (auto box : top_minfo->found_blackboxes) {
 | 
			
		||||
			Module *def = design->module(box->type);
 | 
			
		||||
			if (!box->type.isPublic() || (def && !def->has_attribute(ID::abc9_box_id)))
 | 
			
		||||
			if (!(def && def->has_attribute(ID::abc9_box_id)))
 | 
			
		||||
			for (auto &conn : box->connections_)
 | 
			
		||||
			if (box->input(conn.first))
 | 
			
		||||
			for (auto bit : conn.second)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue