///|
pub fn signal_path(signal : Signal) -> String {
if signal.scope.length() == 0 {
signal.name
} else {
signal.scope.join(".") + "." + signal.name
}
}
///|
pub fn text_report(trace : Trace) -> String {
let out : Array[String] = []
out.push("MoonBit VCD report")
out.push("signals: \{trace.signals.length()}")
out.push("changes: \{trace.changes.length()}")
out.push("end time: \{trace.end_time}")
for signal in trace.signals {
let item = stats(trace, signal.id)
out.push(
"- \{signal_path(signal)} [\{signal.id}] changes=\{item.changes} rising=\{item.rising_edges} falling=\{item.falling_edges}",
)
}
out.join("\n")
}