mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-04 05:19:11 +00:00 
			
		
		
		
	hashlib: redo interface for flexibility
This commit is contained in:
		
							parent
							
								
									7a362f1f74
								
							
						
					
					
						commit
						d071489ab1
					
				
					 35 changed files with 542 additions and 386 deletions
				
			
		| 
						 | 
				
			
			@ -177,7 +177,7 @@ namespace AST
 | 
			
		|||
	{
 | 
			
		||||
		// for dict<> and pool<>
 | 
			
		||||
		unsigned int hashidx_;
 | 
			
		||||
		unsigned int hash() const { return hashidx_; }
 | 
			
		||||
		Hasher hash_acc(Hasher h) const { h.acc(hashidx_); return h; }
 | 
			
		||||
 | 
			
		||||
		// this nodes type
 | 
			
		||||
		AstNodeType type;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -619,7 +619,7 @@ RTLIL::SigSpec VerificImporter::operatorInportCase(Instance *inst, const char *p
 | 
			
		|||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
RTLIL::SigSpec VerificImporter::operatorOutput(Instance *inst, const pool<Net*, hash_ptr_ops> *any_all_nets)
 | 
			
		||||
RTLIL::SigSpec VerificImporter::operatorOutput(Instance *inst, const pool<Net*> *any_all_nets)
 | 
			
		||||
{
 | 
			
		||||
	RTLIL::SigSpec sig;
 | 
			
		||||
	RTLIL::Wire *dummy_wire = NULL;
 | 
			
		||||
| 
						 | 
				
			
			@ -1576,9 +1576,9 @@ void VerificImporter::import_netlist(RTLIL::Design *design, Netlist *nl, std::ma
 | 
			
		|||
 | 
			
		||||
	module->fixup_ports();
 | 
			
		||||
 | 
			
		||||
	dict<Net*, char, hash_ptr_ops> init_nets;
 | 
			
		||||
	pool<Net*, hash_ptr_ops> anyconst_nets, anyseq_nets;
 | 
			
		||||
	pool<Net*, hash_ptr_ops> allconst_nets, allseq_nets;
 | 
			
		||||
	dict<Net*, char> init_nets;
 | 
			
		||||
	pool<Net*> anyconst_nets, anyseq_nets;
 | 
			
		||||
	pool<Net*> allconst_nets, allseq_nets;
 | 
			
		||||
	any_all_nets.clear();
 | 
			
		||||
 | 
			
		||||
	FOREACH_NET_OF_NETLIST(nl, mi, net)
 | 
			
		||||
| 
						 | 
				
			
			@ -1841,10 +1841,10 @@ void VerificImporter::import_netlist(RTLIL::Design *design, Netlist *nl, std::ma
 | 
			
		|||
		module->connect(net_map_at(net), module->Anyseq(new_verific_id(net)));
 | 
			
		||||
 | 
			
		||||
#ifdef VERIFIC_SYSTEMVERILOG_SUPPORT
 | 
			
		||||
	pool<Instance*, hash_ptr_ops> sva_asserts;
 | 
			
		||||
	pool<Instance*, hash_ptr_ops> sva_assumes;
 | 
			
		||||
	pool<Instance*, hash_ptr_ops> sva_covers;
 | 
			
		||||
	pool<Instance*, hash_ptr_ops> sva_triggers;
 | 
			
		||||
	pool<Instance*> sva_asserts;
 | 
			
		||||
	pool<Instance*> sva_assumes;
 | 
			
		||||
	pool<Instance*> sva_covers;
 | 
			
		||||
	pool<Instance*> sva_triggers;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	pool<RTLIL::Cell*> past_ffs;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -71,7 +71,7 @@ struct VerificImporter
 | 
			
		|||
 | 
			
		||||
	std::map<Verific::Net*, RTLIL::SigBit> net_map;
 | 
			
		||||
	std::map<Verific::Net*, Verific::Net*> sva_posedge_map;
 | 
			
		||||
	pool<Verific::Net*, hash_ptr_ops> any_all_nets;
 | 
			
		||||
	pool<Verific::Net*> any_all_nets;
 | 
			
		||||
 | 
			
		||||
	bool mode_gates, mode_keep, mode_nosva, mode_names, mode_verific;
 | 
			
		||||
	bool mode_autocover, mode_fullinit;
 | 
			
		||||
| 
						 | 
				
			
			@ -89,7 +89,7 @@ struct VerificImporter
 | 
			
		|||
	RTLIL::SigSpec operatorInput2(Verific::Instance *inst);
 | 
			
		||||
	RTLIL::SigSpec operatorInport(Verific::Instance *inst, const char *portname);
 | 
			
		||||
	RTLIL::SigSpec operatorInportCase(Verific::Instance *inst, const char *portname);
 | 
			
		||||
	RTLIL::SigSpec operatorOutput(Verific::Instance *inst, const pool<Verific::Net*, hash_ptr_ops> *any_all_nets = nullptr);
 | 
			
		||||
	RTLIL::SigSpec operatorOutput(Verific::Instance *inst, const pool<Verific::Net*> *any_all_nets = nullptr);
 | 
			
		||||
 | 
			
		||||
	bool import_netlist_instance_gates(Verific::Instance *inst, RTLIL::IdString inst_name);
 | 
			
		||||
	bool import_netlist_instance_cells(Verific::Instance *inst, RTLIL::IdString inst_name);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1051,7 +1051,7 @@ struct VerificSvaImporter
 | 
			
		|||
				msg.c_str(), inst->View()->Owner()->Name(), inst->Name()), inst->Linefile());
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	dict<Net*, bool, hash_ptr_ops> check_expression_cache;
 | 
			
		||||
	dict<Net*, bool> check_expression_cache;
 | 
			
		||||
 | 
			
		||||
	bool check_expression(Net *net, bool raise_error = false)
 | 
			
		||||
	{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue