More verbose warnings
authorMiodrag Milanovic <mmicko@gmail.com>
Fri, 18 Mar 2022 13:47:35 +0000 (14:47 +0100)
committerMiodrag Milanovic <mmicko@gmail.com>
Fri, 18 Mar 2022 13:47:35 +0000 (14:47 +0100)
kernel/fstdata.cc
passes/sat/sim.cc

index 82f8ff1df4e40d08981d19ef46d6ab8063716416..6cf28625c0b50ab1586f319f20a82d09122ce143 100644 (file)
@@ -101,7 +101,8 @@ void FstData::extractVarNames()
                        case FST_HT_SCOPE: {
                                snum++;
                                std::string fst_scope_name = fstReaderPushScope(ctx, h->u.scope.name, (void *)(snum));
-                               scopes.push_back(fst_scope_name);
+                               if (h->u.scope.typ == FST_ST_VCD_MODULE)
+                                       scopes.push_back(fst_scope_name);
                                break;
                        }
                        case FST_HT_UPSCOPE: {
index 46fe1e23a32bae07bd82d5baad94a4a4db10c8ad..f225ebd158218e904dd820a8bec5fb86a36f01e6 100644 (file)
@@ -809,14 +809,16 @@ struct SimInstance
                        if (item.second==0) continue; // Ignore signals not found
                        Const fst_val = Const::from_string(shared->fst->valueOf(item.second));
                        Const sim_val = get_state(item.first);
-                       if (sim_val.size()!=fst_val.size())
-                               log_error("Signal '%s' size is different in gold and gate.\n", log_id(item.first));
+                       if (sim_val.size()!=fst_val.size()) {
+                               log_warning("Signal '%s.%s' size is different in gold and gate.\n", scope.c_str(), log_id(item.first));
+                               continue;
+                       }
                        if (shared->sim_mode == SimulationMode::sim) {
                                // No checks performed when using stimulus
                        } else if (shared->sim_mode == SimulationMode::gate && !fst_val.is_fully_def()) { // FST data contains X
                                for(int i=0;i<fst_val.size();i++) {
                                        if (fst_val[i]!=State::Sx && fst_val[i]!=sim_val[i]) {
-                                               log_warning("Signal '%s' in file %s in simulation %s\n", log_id(item.first), log_signal(fst_val), log_signal(sim_val));
+                                               log_warning("Signal '%s.%s' in file %s in simulation %s\n", scope.c_str(), log_id(item.first), log_signal(fst_val), log_signal(sim_val));
                                                retVal = true;
                                                break;
                                        }
@@ -824,14 +826,14 @@ struct SimInstance
                        } else if (shared->sim_mode == SimulationMode::gold && !sim_val.is_fully_def()) { // sim data contains X
                                for(int i=0;i<sim_val.size();i++) {
                                        if (sim_val[i]!=State::Sx && fst_val[i]!=sim_val[i]) {
-                                               log_warning("Signal '%s' in file %s in simulation %s\n", log_id(item.first), log_signal(fst_val), log_signal(sim_val));
+                                               log_warning("Signal '%s.%s' in file %s in simulation %s\n", scope.c_str(), log_id(item.first), log_signal(fst_val), log_signal(sim_val));
                                                retVal = true;
                                                break;
                                        }
                                }
                        } else {
                                if (fst_val!=sim_val) {
-                                       log_warning("Signal '%s' in file %s in simulation '%s'\n", log_id(item.first), log_signal(fst_val), log_signal(sim_val));
+                                       log_warning("Signal '%s.%s' in file %s in simulation '%s'\n", scope.c_str(), log_id(item.first), log_signal(fst_val), log_signal(sim_val));
                                        retVal = true;
                                }
                        }