P3.3: surface model anomalies in analyze + dashboard
The analyze screen's Issues pane now lists the model-driven checks (check_pin_specs / check_jtag_chain / check_source_conflicts) alongside the pin-role, net-mix and structural ones, with an "N model" count in the header; the dashboard gains a "model:" health row. check_pin_specs/check_jtag_chain take an optional precomputed net list, so verify, analyze and the dashboard each compute the nets once and reuse them across checks instead of redoing the transitive closure per check. Unit tests (75) green; verify output unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
#include "tui/tui_helpers.hpp"
|
||||
|
||||
#include "system/analysis.hpp"
|
||||
#include "system/bsdl_check.hpp"
|
||||
#include "system/connect.hpp"
|
||||
#include "system/modules.hpp"
|
||||
#include "system/nets.hpp"
|
||||
@@ -149,6 +150,14 @@ Component Tui::BuildDashboardScreen() {
|
||||
+ std::to_string(orph_imported) + " imported, "
|
||||
+ std::to_string(orph_dropped) + " dropped)"));
|
||||
|
||||
// Model-driven checks (BSDL pin specs, JTAG chain, source conflicts),
|
||||
// reusing the nets computed above.
|
||||
int n_model = (int)(check_pin_specs(sys.get(), &nets).size()
|
||||
+ check_jtag_chain(sys.get(), &nets).size()
|
||||
+ check_source_conflicts(sys.get()).size());
|
||||
health_rows.push_back(health_line(n_model == 0,
|
||||
"model: " + std::to_string(n_model) + " BSDL/JTAG anomaly(ies)"));
|
||||
|
||||
// ---- analysis summary ----
|
||||
AnalysisReport rep = analyze_system(sys.get());
|
||||
int n_diff = 0, n_diff_bus = 0, n_bus = 0;
|
||||
|
||||
Reference in New Issue
Block a user