mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-04 05:19:11 +00:00 
			
		
		
		
	Do actual compare
This commit is contained in:
		
							parent
							
								
									7101df62f8
								
							
						
					
					
						commit
						4f75a2ca1b
					
				
					 3 changed files with 63 additions and 77 deletions
				
			
		| 
						 | 
				
			
			@ -966,21 +966,32 @@ struct SimWorker : SimShared
 | 
			
		|||
				log_warning("Stop time is after simulation file end time\n");
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		fst->reconstruct(fst_clock);
 | 
			
		||||
		auto edges = fst->edges(fst_clock.back(), true, true);
 | 
			
		||||
		auto edges = fst->getAllEdges(fst_clock, startCount, stopCount);
 | 
			
		||||
		fst->reconstructAllAtTimes(edges);
 | 
			
		||||
/*		for(auto &time : edges) {
 | 
			
		||||
		for(auto &time : edges) {
 | 
			
		||||
			for(auto &item : inputs) {
 | 
			
		||||
				std::string v = fst->valueAt(item.second, time);
 | 
			
		||||
				top->set_state(item.first, Const::from_string(v));
 | 
			
		||||
			}
 | 
			
		||||
			update();
 | 
			
		||||
			bool status = true;
 | 
			
		||||
			for(auto &item : outputs) {
 | 
			
		||||
				Const fst_val = Const::from_string(fst->valueAt(item.second, time));
 | 
			
		||||
				Const sim_val = top->get_state(item.first);
 | 
			
		||||
				log("%s %s\n", log_signal(fst_val), log_signal(sim_val));
 | 
			
		||||
				if (sim_mode == SimulationMode::gate && !fst_val.is_fully_def()) { // FST data contains X
 | 
			
		||||
					// TODO: check bit by bit
 | 
			
		||||
				} else if (sim_mode == SimulationMode::gold && !sim_val.is_fully_def()) { // sim data contains X
 | 
			
		||||
					// TODO: check bit by bit
 | 
			
		||||
				} else {
 | 
			
		||||
					if (fst_val!=sim_val) {
 | 
			
		||||
						status = false;
 | 
			
		||||
						log("signal: %s fst: %s  sim: %s\n", log_id(item.first), log_signal(fst_val), log_signal(sim_val));
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}*/
 | 
			
		||||
			if (!status)
 | 
			
		||||
				log_error("Signal difference at %zu\n", time);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue