diff --git a/examples/picorv32/expects/unsigned_mul.graph_interp.expect b/examples/picorv32/expects/unsigned_mul.graph_interp.expect index 448b69d0..f5f6cb49 100644 --- a/examples/picorv32/expects/unsigned_mul.graph_interp.expect +++ b/examples/picorv32/expects/unsigned_mul.graph_interp.expect @@ -1,19 +1 @@ -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ examples/picorv32/pcpi_mul.prot:37:3 - │ -37 │ p.pcpi_insn := X; - │ ^^^^^^^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ examples/picorv32/pcpi_mul.prot:38:3 - │ -38 │ p.pcpi_rs1 := X; - │ ^^^^^^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ examples/picorv32/pcpi_mul.prot:39:3 - │ -39 │ p.pcpi_rs2 := X; - │ ^^^^^^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/examples/picorv32/expects/unsigned_mul.waveform.expect b/examples/picorv32/expects/unsigned_mul.waveform.expect new file mode 100644 index 00000000..c997d61f --- /dev/null +++ b/examples/picorv32/expects/unsigned_mul.waveform.expect @@ -0,0 +1,9 @@ +Trace 0 executed successfully! +pcpi_rs2[31:0] x 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 x 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 x x x 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 x 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 x +pcpi_rs1[31:0] x 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 x 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 x x x 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 x 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 x +pcpi_insn[31:0] x 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 x 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 x x x 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 x 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 33554483 x +pcpi_valid x 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 +resetn 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +pcpi_ready 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +pcpi_rd[31:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 2415929304 +pcpi_wr 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 diff --git a/examples/serv/expects/serv_regfile.graph_interp.expect b/examples/serv/expects/serv_regfile.graph_interp.expect index f68c1e4d..f5f6cb49 100644 --- a/examples/serv/expects/serv_regfile.graph_interp.expect +++ b/examples/serv/expects/serv_regfile.graph_interp.expect @@ -1 +1 @@ -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/examples/serv/expects/serv_regfile.waveform.expect b/examples/serv/expects/serv_regfile.waveform.expect new file mode 100644 index 00000000..deae9fc9 --- /dev/null +++ b/examples/serv/expects/serv_regfile.waveform.expect @@ -0,0 +1,10 @@ +Trace 0 executed successfully! +i_rs2_addr[4:0] x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +i_rs1_addr[4:0] x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 +i_rd x x x 1 1 1 1 0 1 1 1 0 1 1 1 1 1 0 1 1 0 1 1 0 1 0 1 0 1 1 1 1 0 1 1 x x x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +i_rd_addr[4:0] x x x 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 x x x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +i_rd_en 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +i_go 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +o_rs2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +o_rs1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 0 1 1 1 1 1 0 1 1 0 1 1 0 1 0 1 0 1 1 1 1 0 1 1 +o_ready 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 diff --git a/examples/tinyaes128/expects/aes128.graph_interp.expect b/examples/tinyaes128/expects/aes128.graph_interp.expect index ad4a5afa..f5f6cb49 100644 --- a/examples/tinyaes128/expects/aes128.graph_interp.expect +++ b/examples/tinyaes128/expects/aes128.graph_interp.expect @@ -1,13 +1 @@ -warning: Inferred RHS type as u128 from LHS type u128. - ┌─ examples/tinyaes128/aes128.prot:14:3 - │ -14 │ dut.state := X; - │ ^^^^^^^^^^^^^^^ Inferred RHS type as u128 from LHS type u128. - -warning: Inferred RHS type as u128 from LHS type u128. - ┌─ examples/tinyaes128/aes128.prot:15:3 - │ -15 │ dut.key := X; - │ ^^^^^^^^^^^^^ Inferred RHS type as u128 from LHS type u128. - -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/examples/tinyaes128/expects/aes128.waveform.expect b/examples/tinyaes128/expects/aes128.waveform.expect new file mode 100644 index 00000000..d144861b --- /dev/null +++ b/examples/tinyaes128/expects/aes128.waveform.expect @@ -0,0 +1,4 @@ +Trace 0 executed successfully! +key[127:0] 5233100606242806050955395731361295 0 x x x x x x x x x x x x x x x x x x x x x +state[127:0] 88962710306127702866241727433142015 0 x x x x x x x x x x x x x x x x x x x x x +out[127:0] 0 0 71778311789097647671049325045230862336 71778311789097647671049325045230862336 35868300212119133283579005935812122847 35868300212119133283579005935812122847 327752838015899366438890283309515114400 327752838015899366438890283309515114400 203032155725521696441342225352960680837 203032155725521696441342225352960680837 115201720288419924075453300654664241719 115201720288419924075453300654664241719 124730794683309237537769739846074451166 124730794683309237537769739846074451166 195198478507891684634855816904362763862 195198478507891684634855816904362763862 279945433700018944347381603335698100877 279945433700018944347381603335698100877 151310862742641855969807637301330667573 151310862742641855969807637301330667573 136792598789324718765670228683992083246 140591190147677442632770771134392354138 136792598789324718765670228683992083246 diff --git a/graph-interp/src/main.rs b/graph-interp/src/main.rs index d2989d81..8b684bf0 100644 --- a/graph-interp/src/main.rs +++ b/graph-interp/src/main.rs @@ -1,16 +1,20 @@ use std::panic::{AssertUnwindSafe, catch_unwind}; use clap::Parser; -use protocols::PatronusSim; use protocols::frontend::ast::Protocol; -use protocols::frontend::design::find_a_single_design; +use protocols::frontend::design::{Design, find_a_single_design}; use protocols::frontend::diagnostic::DiagnosticHandler; +use protocols::frontend::serialize::serialize_bitvec; use protocols::frontend::symbol::SymbolTable; +use protocols::interpreter::Value as WaveValue; +use protocols::ir::determinize::determinized; use protocols::ir::edge_contract::{contract_edges, normalize_assignments}; use protocols::ir::graph_interpreter; +use protocols::ir::graphviz::to_dot_string; use protocols::ir::lowering::lower_ast_to_ir; use protocols::ir::proto_graph::ProtoGraph; -use protocols::{Value, frontend, transaction_frontend}; +use protocols::ir::trace_lowering::lower_trace_to_ir; +use protocols::{PatronusSim, PortId, Value, frontend, transaction_frontend}; use rustc_hash::FxHashMap; #[derive(Parser, Debug)] @@ -38,6 +42,22 @@ struct Cli { // Contract edges in the graphs such that each edge is a step #[arg(long)] contract_edges: bool, + + /// Build a big joint ProtoGraph for the input trace + #[arg(long)] + respect_forks: bool, + + /// Graphviz DOT to stdout, before interpreting it. + #[arg(long)] + graphout: bool, + + /// If passed with --respect-forks, construct a DFA + #[arg(long)] + determinize: bool, + + /// Prints trace status lines and ASCII waveforms + #[arg(long)] + ascii_waveform: bool, } fn load_protocols(cli: &Cli) -> (SymbolTable, Vec) { @@ -77,39 +97,152 @@ fn print_panic_payload(payload: Box) { } } -fn main() { - let cli = Cli::parse(); - let (st, protos) = load_protocols(&cli); - let traces = load_traces(&cli, &st, &protos); - let design = find_a_single_design(&st, &protos, &cli.protocol).unwrap(); - let mut sim = PatronusSim::new(&cli.verilog, cli.module.as_deref(), &design, None).unwrap(); +fn format_wave_value(value: &WaveValue) -> String { + match value { + WaveValue::Concrete(bv) => serialize_bitvec(bv, false), + WaveValue::DontCare => "x".to_string(), + } +} + +fn print_waveform(waveform: FxHashMap>, sim: &PatronusSim) { + let mut rows: Vec<_> = waveform.into_iter().collect(); + rows.sort_by_key(|(port, _)| *port); + + let formatted_rows: Vec<_> = rows + .into_iter() + .map(|(port, values)| { + let width = sim.port_width(port); + let label = if width == 1 { + sim.port_name(port).to_string() + } else { + format!("{}[{}:0]", sim.port_name(port), width - 1) + }; + let values: Vec<_> = values.iter().map(format_wave_value).collect(); + (label, values) + }) + .collect(); + + let label_width = formatted_rows + .iter() + .map(|(label, _)| label.len()) + .max() + .unwrap_or(0); + let value_width = formatted_rows + .iter() + .flat_map(|(_, values)| values.iter().map(|value| value.len())) + .max() + .unwrap_or(1); + + for (label, values) in formatted_rows { + print!("{label:value_width$}"); + } + println!(); + } +} +fn print_trace_success(trace_index: usize) { + println!("Trace {} executed successfully!", trace_index); +} + +fn print_trace_separator(trace_index: usize) { + if trace_index > 0 { + println!("\n---\n"); + } +} + +/// lower each protocol once and interpret every +/// transaction against its own symbolic protocol graph. +fn run_classic( + cli: &Cli, + st: &SymbolTable, + protos: &[Protocol], + design: &Design, + traces: Vec)>>, +) { let mut graphs: Vec<(String, ProtoGraph)> = protos .iter() - .map(|proto| (proto.name.clone(), lower_ast_to_ir(proto.clone(), &st))) + .map(|proto| (proto.name.clone(), lower_ast_to_ir(proto.clone(), st))) .collect(); // edge contract the graphs and normalize assignments if cli.contract_edges { for (_, graph) in &mut graphs { - contract_edges(graph, &st); - normalize_assignments(graph, &st); + contract_edges(graph, st); + normalize_assignments(graph, st); + graph.simplify_all_exprs(); + } + } + + for (trace_index, trace) in traces.into_iter().enumerate() { + print_trace_separator(trace_index); + let mut sim = PatronusSim::new(&cli.verilog, cli.module.as_deref(), design, None).unwrap(); + + for (name, values) in trace { + let (_, pg) = graphs + .iter_mut() + .find(|(n, _)| n == &name) + .unwrap_or_else(|| panic!("unknown protocol {name}")); + let args = build_arg_map(&pg.args, st, values); + // println!("{}", to_dot_string(pg, st)); + graph_interpreter::interpret(pg, st, args, &mut sim); } + print_trace_success(trace_index); } +} + +/// interpret the entire concrete trace as one big ProtoGraph +fn run_respect_forks( + cli: &Cli, + st: &SymbolTable, + protos: &[Protocol], + design: &Design, + traces: &[Vec<(String, Vec)>], +) { + let protos_by_name: FxHashMap<&str, &Protocol> = + protos.iter().map(|p| (p.name.as_str(), p)).collect(); + + for (trace_index, trace) in traces.iter().enumerate() { + print_trace_separator(trace_index); + let mut sim = PatronusSim::new(&cli.verilog, cli.module.as_deref(), design, None).unwrap(); + + let mut joint = lower_trace_to_ir(trace, &protos_by_name, st); + + if cli.determinize { + joint = determinized(joint, st); + } + // normalize_assignments(&mut joint, st); + + if cli.graphout { + println!("// joint graph for trace {trace_index}"); + println!("{}", to_dot_string(&joint, st)); + } + + // args are baked into the graph as constants, so we just pass in an empty map here + let waveform = graph_interpreter::interpret(&joint, st, FxHashMap::default(), &mut sim); + if cli.ascii_waveform { + print_trace_success(trace_index); + print_waveform(waveform, &sim); + } else { + print_trace_success(trace_index); + } + } +} + +fn main() { + let cli = Cli::parse(); + let (st, protos) = load_protocols(&cli); + let traces = load_traces(&cli, &st, &protos); + let design = find_a_single_design(&st, &protos, &cli.protocol).unwrap(); let old_hook = std::panic::take_hook(); std::panic::set_hook(Box::new(|_| {})); let result = catch_unwind(AssertUnwindSafe(|| { - for (trace_index, trace) in traces.into_iter().enumerate() { - for (name, values) in trace { - let (_, pg) = graphs - .iter_mut() - .find(|(n, _)| n == &name) - .unwrap_or_else(|| panic!("unknown protocol {name}")); - let args = build_arg_map(&pg.args, &st, values); - graph_interpreter::interpret(pg, &st, args, &mut sim); - } - println!("trace {} executed successfully", trace_index); + if cli.respect_forks { + run_respect_forks(&cli, &st, &protos, &design, &traces); + } else { + run_classic(&cli, &st, &protos, &design, traces); } })); std::panic::set_hook(old_hook); diff --git a/interp/src/main.rs b/interp/src/main.rs index 56a326ec..0a307986 100644 --- a/interp/src/main.rs +++ b/interp/src/main.rs @@ -7,8 +7,11 @@ use clap_verbosity_flag::log::LevelFilter; use clap_verbosity_flag::{Verbosity, WarnLevel}; use protocols::frontend::design::find_a_single_design; use protocols::frontend::diagnostic::DiagnosticHandler; +use protocols::frontend::serialize::serialize_bitvec; +use protocols::interpreter::Value as WaveValue; use protocols::scheduler::Scheduler; -use protocols::{PatronusSim, frontend, transaction_frontend}; +use protocols::{PatronusSim, PortId, frontend, transaction_frontend}; +use rustc_hash::FxHashMap; /// Args for the interpreter CLI #[derive(Parser, Debug)] @@ -60,6 +63,10 @@ struct Cli { /// Skips the static checks for step/fork errors. #[arg(long)] skip_static_step_fork_checks: bool, + + /// Prints only trace status lines and ASCII waveforms + #[arg(long)] + ascii_waveform: bool, } /// Examples (enables all tracing logs): @@ -93,6 +100,13 @@ fn with_trace_suffix(path: &str, trace_index: usize) -> String { } } +fn exit_after_setup_error(error: anyhow::Error, diagnostic_was_emitted: bool) -> ! { + if !diagnostic_was_emitted { + eprintln!("Error: {error:#}"); + } + std::process::exit(1) +} + fn main() -> anyhow::Result<()> { // Parse CLI args let cli = Cli::parse(); @@ -116,21 +130,30 @@ fn main() -> anyhow::Result<()> { cli.display_hex, ); - let (st, protos) = frontend( + let (st, protos) = match frontend( &cli.protocol, &mut protocols_handler, cli.skip_static_step_fork_checks, - )?; + ) { + Ok(result) => result, + Err(error) => exit_after_setup_error(error, !protocols_handler.error_string().is_empty()), + }; let design = find_a_single_design(&st, &protos, &cli.protocol)?; // Create a separate `DiagnosticHandler` when parsing the transactions file - let transactions_handler = &mut DiagnosticHandler::new( + let mut transactions_handler = DiagnosticHandler::new( color_choice, cli.no_error_locations, emit_warnings, cli.display_hex, ); - let traces = transaction_frontend(cli.transactions, &st, &protos, transactions_handler)?; + let traces = + match transaction_frontend(cli.transactions, &st, &protos, &mut transactions_handler) { + Ok(result) => result, + Err(error) => { + exit_after_setup_error(error, !transactions_handler.error_string().is_empty()) + } + }; let mut any_failed = false; for (trace_index, todos) in traces.into_iter().enumerate() { @@ -164,10 +187,67 @@ fn main() -> anyhow::Result<()> { } else { println!("Trace {} executed successfully!", trace_index); } + + if cli.ascii_waveform { + let wave = scheduler.waveform(); + print_waveform(wave, &scheduler, cli.display_hex); + } } if any_failed { - panic!("One or more traces failed."); + std::process::exit(101); } Ok(()) } + +fn format_wave_value(value: &WaveValue, display_hex: bool) -> String { + match value { + WaveValue::Concrete(bv) => serialize_bitvec(bv, display_hex), + WaveValue::DontCare => "x".to_string(), + } +} + +fn print_waveform( + waveform: FxHashMap>, + scheduler: &Scheduler<'_>, + display_hex: bool, +) { + let mut rows: Vec<_> = waveform.into_iter().collect(); + rows.sort_by_key(|(port, _)| *port); + + let formatted_rows: Vec<_> = rows + .into_iter() + .map(|(port, values)| { + let width = scheduler.port_width(port); + let label = if width == 1 { + scheduler.port_name(port).to_string() + } else { + format!("{}[{}:0]", scheduler.port_name(port), width - 1) + }; + let values: Vec<_> = values + .iter() + .map(|value| format_wave_value(value, display_hex)) + .collect(); + (label, values) + }) + .collect(); + + let label_width = formatted_rows + .iter() + .map(|(label, _)| label.len()) + .max() + .unwrap_or(0); + let value_width = formatted_rows + .iter() + .flat_map(|(_, values)| values.iter().map(|value| value.len())) + .max() + .unwrap_or(1); + + for (label, values) in formatted_rows { + print!("{label:value_width$}"); + } + println!(); + } +} diff --git a/justfile b/justfile index daafad66..264bdc23 100644 --- a/justfile +++ b/justfile @@ -1,8 +1,10 @@ # Runs the Runt snapshot suites that together cover every test runt: + cargo build --offline --package protocols-interp --package protocols-monitor --package graph-interp runt --max-futures 1 runt/interp runt --max-futures 1 runt/monitor runt --max-futures 1 runt/graph_interp + runt --max-futures 1 runt/waveform # Runs all unit tests (via Cargo) & snapshot tests (via Runt) test: diff --git a/protocols/src/frontend/diagnostic.rs b/protocols/src/frontend/diagnostic.rs index 4c85db00..f6afa0f4 100644 --- a/protocols/src/frontend/diagnostic.rs +++ b/protocols/src/frontend/diagnostic.rs @@ -217,7 +217,7 @@ impl DiagnosticHandler { let error_msg = String::from_utf8_lossy(buffer.as_slice()); self.error_string.push_str(&error_msg); - print!("{}", error_msg); + eprint!("{}", error_msg); } } @@ -253,7 +253,7 @@ impl DiagnosticHandler { diagnostic.emit(buffer, &self.files); let error_msg = String::from_utf8_lossy(buffer.as_slice()); self.error_string.push_str(&error_msg); - print!("{}", String::from_utf8_lossy(buffer.as_slice())); + eprint!("{}", error_msg); } pub fn emit_diagnostic_lexing( @@ -284,7 +284,7 @@ impl DiagnosticHandler { diagnostic.emit(buffer, &self.files); let error_msg = String::from_utf8_lossy(buffer.as_slice()); self.error_string.push_str(&error_msg); - print!("{}", error_msg); + eprint!("{}", error_msg); } /// Emits a diagnostic message for one single statement @@ -338,7 +338,7 @@ impl DiagnosticHandler { let error_msg = String::from_utf8_lossy(buffer.as_slice()); self.error_string.push_str(&error_msg); - print!("{}", error_msg); + eprint!("{}", error_msg); } } @@ -399,7 +399,7 @@ impl DiagnosticHandler { let error_msg = String::from_utf8_lossy(buffer.as_slice()); self.error_string.push_str(&error_msg); - print!("{}", error_msg); + eprint!("{}", error_msg); } } @@ -460,7 +460,7 @@ impl DiagnosticHandler { let error_msg = String::from_utf8_lossy(buffer.as_slice()); self.error_string.push_str(&error_msg); - print!("{}", error_msg); + eprint!("{}", error_msg); } } @@ -522,7 +522,7 @@ impl DiagnosticHandler { let error_msg = String::from_utf8_lossy(buffer.as_slice()); self.error_string.push_str(&error_msg); - print!("{}", error_msg); + eprint!("{}", error_msg); } } @@ -543,7 +543,7 @@ impl DiagnosticHandler { let error_msg = String::from_utf8_lossy(buffer.as_slice()); self.error_string.push_str(&error_msg); - print!("{}", error_msg); + eprint!("{}", error_msg); } } diff --git a/protocols/src/interpreter.rs b/protocols/src/interpreter.rs index 77a00b20..3c8658f1 100644 --- a/protocols/src/interpreter.rs +++ b/protocols/src/interpreter.rs @@ -5,7 +5,7 @@ // author: Francis Pham // author: Ernest Ng -use crate::Value; +use crate::Value as ArgValue; use crate::dut::{PatronusSim, PortId}; use crate::errors::{ExecutionError, ExecutionResult}; use crate::frontend::ast::*; @@ -16,31 +16,31 @@ use baa::{BitVecOps, BitVecValue, WidthInt}; use log::info; use rand::SeedableRng; use rand::rngs::StdRng; -use rustc_hash::FxHashMap; +use rustc_hash::{FxHashMap, FxHashSet}; -/// Per-thread input value: either a concrete assignment or DontCare +/// Either a concrete value or DontCare #[derive(Debug, Clone)] -pub enum ThreadInputValue { +pub enum Value { Concrete(BitVecValue), DontCare, } -impl std::fmt::Display for ThreadInputValue { +impl std::fmt::Display for Value { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self { - ThreadInputValue::Concrete(bv) => write!(f, "{}", serialize_bitvec(bv, false)), - ThreadInputValue::DontCare => write!(f, "DontCare"), + Value::Concrete(bv) => write!(f, "{}", serialize_bitvec(bv, false)), + Value::DontCare => write!(f, "DontCare"), } } } -impl ThreadInputValue { +impl Value { pub fn is_concrete(&self) -> bool { - matches!(self, ThreadInputValue::Concrete(_)) + matches!(self, Value::Concrete(_)) } pub fn is_dont_care(&self) -> bool { - matches!(self, ThreadInputValue::DontCare) + matches!(self, Value::DontCare) } } @@ -54,7 +54,7 @@ impl ThreadInputValue { /// reporting to show the source location of conflicting assignments. /// /// TODO: should this data be stored in the scheduler instead? -pub type PerThreadValues = FxHashMap)>; +pub type PerThreadValues = FxHashMap)>; /// An `ExprValue` is either a `Concrete` bit-vector value, or `DontCare` #[derive(PartialEq, Debug, Clone)] @@ -76,7 +76,7 @@ pub struct Evaluator<'a> { next_stmt_map: FxHashMap>, st: &'a SymbolTable, - args_mapping: FxHashMap, + args_mapping: FxHashMap, /// _Dynamic:_ stack of loop variables, need to be searched right to left pub loop_vars: Vec<(SymbolId, BitVecValue)>, @@ -106,6 +106,9 @@ pub struct Evaluator<'a> { /// Random number generator used for generating random values for `DontCare` rng: StdRng, + + /// The values of each port in each cycle + pub waveform: FxHashMap>, } impl<'a> Evaluator<'a> { @@ -117,7 +120,7 @@ impl<'a> Evaluator<'a> { /// Creates a new `Evaluator` pub fn new( - args: FxHashMap<&str, Value>, + args: FxHashMap<&str, ArgValue>, tr: &'a Protocol, st: &'a SymbolTable, sim: &PatronusSim, @@ -149,6 +152,7 @@ impl<'a> Evaluator<'a> { rng, loop_vars: vec![], loop_info: vec![], + waveform: FxHashMap::default(), } } @@ -156,8 +160,8 @@ impl<'a> Evaluator<'a> { fn generate_args_mapping( st: &SymbolTable, proto: &Protocol, - args: FxHashMap<&str, Value>, - ) -> FxHashMap { + args: FxHashMap<&str, ArgValue>, + ) -> FxHashMap { let mut args_mapping = FxHashMap::default(); for (name, value) in &args { if let Some(symbol_id) = st.symbol_id_from_name(proto.scope, name) { @@ -201,7 +205,7 @@ impl<'a> Evaluator<'a> { sim: &mut PatronusSim, port_id: PortId, todo_idx: usize, - new_val: ThreadInputValue, + new_val: Value, stmt_id: Option, ) -> ExecutionResult<()> { // Get old value for this todo_idx (if any) @@ -212,8 +216,8 @@ impl<'a> Evaluator<'a> { .map(|(val, _)| val.clone()); // Handle forbidden_output reference counting - let was_dontcare = matches!(old_val, Some(ThreadInputValue::DontCare)); - let is_dontcare = matches!(new_val, ThreadInputValue::DontCare); + let was_dontcare = matches!(old_val, Some(Value::DontCare)); + let is_dontcare = matches!(new_val, Value::DontCare); // Update forbidden_read_counts when transitioning to/from DontCare if is_dontcare && !was_dontcare { @@ -251,7 +255,7 @@ impl<'a> Evaluator<'a> { let any_other_concrete = if let Some(per_thread_vals) = self.per_thread_input_vals.get(&port_id) { per_thread_vals.iter().any(|(&other_idx, (other_val, _))| { - other_idx != todo_idx && matches!(other_val, ThreadInputValue::Concrete(_)) + other_idx != todo_idx && matches!(other_val, Value::Concrete(_)) }) } else { false @@ -301,7 +305,7 @@ impl<'a> Evaluator<'a> { sim, port_id, todo_idx, - ThreadInputValue::DontCare, + Value::DontCare, None, // DontCare initialization has no associated statement )?; } @@ -345,6 +349,7 @@ impl<'a> Evaluator<'a> { } /// Called at end of cycle to finalize input values after conflict checking. + /// Also updates the waveform with the final simulator values. /// For each input pin: /// - If any thread has a concrete value, apply it to sim (all concrete values must agree if no conflict) /// - If all threads have DontCare, randomize the pin @@ -355,31 +360,59 @@ impl<'a> Evaluator<'a> { for (port_id, per_thread_vals) in &self.per_thread_input_vals { // Find any concrete value (if conflicts were checked, all concrete values must agree) let concrete_val = per_thread_vals.values().find_map(|(val, _)| { - if let ThreadInputValue::Concrete(bvv) = val { + if let Value::Concrete(bvv) = val { Some(bvv.clone()) } else { None } }); - values_to_apply.push((*port_id, concrete_val)); + values_to_apply.push((*port_id, concrete_val.clone())); } + let mut dont_care_ports = FxHashSet::default(); // Now apply the values for (port_id, concrete_val) in values_to_apply { match concrete_val { Some(bvv) => { // Apply the concrete value sim.set(port_id, &bvv); + + self.waveform + .entry(port_id) + .or_default() + .push(Value::Concrete(bvv)); } None => { // All threads have DontCare, randomize let width = sim.port_width(port_id); let random_val = BitVecValue::random(&mut self.rng, width); sim.set(port_id, &random_val); + + self.waveform + .entry(port_id) + .or_default() + .push(Value::DontCare); + + dont_care_ports.insert(port_id); } } } + + // Update the waveform with the latest output port values. + // If an output depends on any DontCare input, record it as DontCare. + for output in sim.outputs() { + let value = if sim + .coi_inputs(output) + .any(|input| dont_care_ports.contains(&input)) + { + Value::DontCare + } else { + Value::Concrete(sim.get(output)) + }; + + self.waveform.entry(output).or_default().push(value); + } } pub fn enable_assertions(&mut self) { @@ -394,14 +427,14 @@ impl<'a> Evaluator<'a> { &mut self, sim: &mut PatronusSim, port_id: PortId, - value: &ThreadInputValue, + value: &Value, randomize_dont_care: bool, ) { match value { - ThreadInputValue::Concrete(bvv) => { + Value::Concrete(bvv) => { sim.set(port_id, bvv); } - ThreadInputValue::DontCare => { + Value::DontCare => { if randomize_dont_care { let width = sim.port_width(port_id); let random_val = BitVecValue::random(&mut self.rng, width); @@ -675,8 +708,8 @@ impl<'a> Evaluator<'a> { // Determine new value let new_val = match expr_val { - ExprValue::Concrete(bvv) => ThreadInputValue::Concrete(bvv), - ExprValue::DontCare => ThreadInputValue::DontCare, + ExprValue::Concrete(bvv) => Value::Concrete(bvv), + ExprValue::DontCare => Value::DontCare, }; // Check if assigning to this input port is forbidden (after observing a dependent output) diff --git a/protocols/src/ir/determinize.rs b/protocols/src/ir/determinize.rs new file mode 100644 index 00000000..84741cc9 --- /dev/null +++ b/protocols/src/ir/determinize.rs @@ -0,0 +1,134 @@ +// Copyright 2026 Cornell University +// released under MIT License +// author: Nikil Shyamunder + +use std::collections::{BTreeSet, VecDeque}; + +use crate::frontend::symbol::SymbolTable; +use crate::ir::edge_contract::append_action; +use crate::ir::proto_graph::{Node as NFANode, NodeId, ProtoGraph, Transition}; +use cranelift_entity::PrimaryMap; +use patronus::expr::ExprRef; +use rustc_hash::FxHashMap; + +/// A DFA Node is a set of NFA nodes active at the same time. +type DFANode = BTreeSet; + +fn get_or_create_state( + dfa_node: DFANode, + subset_nodes: &mut FxHashMap, + worklist: &mut VecDeque, + new_nodes: &mut PrimaryMap, +) -> NodeId { + // if we've already seen this combination of NFA states, return the existing node + if let Some(id) = subset_nodes.get(&dfa_node) { + return *id; + } + + // otherwise allocate a new DFA node + let id = new_nodes.push(NFANode::empty()); + subset_nodes.insert(dfa_node.clone(), id); + worklist.push_back(dfa_node); + id +} + +/// Result of a (conservative) satisfiability check on a guard. +enum SatResult { + DefinitelyUnsat, + MaybeSat, +} + +// TODO: Strengthen this with a real SAT/SMT query to prune more aggressively. +fn check_sat(protocol: &mut ProtoGraph, guard: ExprRef) -> SatResult { + let simplified = { + let (expr_ctx, simplifier) = (&mut protocol.expr_ctx, &mut protocol.simplifier); + simplifier.simplify(expr_ctx, guard) + }; + if simplified == protocol.false_id() { + SatResult::DefinitelyUnsat + } else { + SatResult::MaybeSat + } +} + +/// Perform subset construction. +pub fn determinized(protocol: ProtoGraph, symbols: &SymbolTable) -> ProtoGraph { + let mut protocol = protocol.clone(); + let start: DFANode = BTreeSet::from([protocol.entry]); + let mut state_ids: FxHashMap = FxHashMap::default(); + let mut worklist: VecDeque = VecDeque::new(); + let mut new_nodes: PrimaryMap = PrimaryMap::new(); + let start_id = get_or_create_state(start, &mut state_ids, &mut worklist, &mut new_nodes); + + // Process each reachable set of simultaneously active NFA nodes once. + while let Some(set) = worklist.pop_front() { + let this_id = state_ids[&set]; + + // Merge actions and collect transitions from every NFA node in the set. + let mut actions = Vec::new(); + let mut internal_assert_guard = None; + let mut transitions = Vec::new(); + for &node_id in &set { + for action in protocol[node_id].actions.clone() { + append_action( + &mut protocol, + symbols, + &mut actions, + &mut internal_assert_guard, + action, + false, + ); + } + transitions.extend(protocol[node_id].transitions.iter().cloned()); + } + if let Some(internal_assert_guard) = internal_assert_guard { + let internal_assert_op = protocol.o(crate::ir::proto_graph::Op::InternalAssertFalse); + actions.push(crate::ir::proto_graph::Action::new( + internal_assert_guard, + internal_assert_op, + )); + } + + let mut new_trans: Vec = Vec::new(); + let n = transitions.len(); + + // Each nonzero mask selects the transitions enabled in one guard minterm. + // TODO: Handle states with 128 or more outgoing transitions. + assert!(n <= 128); + for mask in 1u128..(1u128 << n) { + let mut guard = protocol.true_id(); + let mut targets: DFANode = BTreeSet::new(); + for (i, t) in transitions.iter().enumerate() { + let (lit, target) = (t.guard, t.target); + let lit = if (mask >> i) & 1 == 1 { + targets.insert(target); + lit + } else { + protocol.not_guard(lit) + }; + guard = protocol.and_guard(guard, lit); + } + + match check_sat(&mut protocol, guard) { + SatResult::DefinitelyUnsat => continue, + SatResult::MaybeSat => { + let target_id = + get_or_create_state(targets, &mut state_ids, &mut worklist, &mut new_nodes); + new_trans.push(Transition::new(guard, target_id, true)); + } + } + } + + new_nodes[this_id] = NFANode { + actions, + transitions: new_trans, + }; + } + + // TODO: this function requires cloning twice. the benefit is that we don't add a weird + // method to ProtoGraph that swaps a set of nodes (seems very contrived)? Ask Kevin what the + // best idiom for this is. + let mut protocol = protocol.with_nodes(new_nodes, start_id); + protocol.simplify_all_exprs(); + protocol +} diff --git a/protocols/src/ir/edge_contract.rs b/protocols/src/ir/edge_contract.rs index 27537b95..acebe0c9 100644 --- a/protocols/src/ir/edge_contract.rs +++ b/protocols/src/ir/edge_contract.rs @@ -2,7 +2,7 @@ use std::collections::{BTreeSet, VecDeque}; use crate::frontend::symbol::{SymbolId, SymbolTable, Type as FrontType}; use crate::ir::proto_graph::{Action, NodeId, Op, ProtoGraph, Transition}; -use patronus::expr::ExprRef; +use patronus::expr::{Expr, ExprRef}; fn symbol_expr(protocol: &mut ProtoGraph, symbols: &SymbolTable, symbol_id: SymbolId) -> ExprRef { if let Some(expr) = protocol.symbol_expr(symbol_id) { @@ -25,41 +25,216 @@ fn symbol_expr(protocol: &mut ProtoGraph, symbols: &SymbolTable, symbol_id: Symb expr } -fn append_action( +/// Constrain `rhs` to `guard`, falling back to `fallback` outside it. An +/// unconditional (`true`) guard needs no `ite`. +fn lift(protocol: &mut ProtoGraph, guard: ExprRef, rhs: ExprRef, fallback: ExprRef) -> ExprRef { + if guard == protocol.true_id() { + rhs + } else { + protocol.expr_ctx.ite(guard, rhs, fallback) + } +} + +fn same_assignment_target(symbols: &SymbolTable, lhs: SymbolId, rhs: SymbolId) -> bool { + lhs == rhs || symbols[lhs].full_name(symbols) == symbols[rhs].full_name(symbols) +} + +fn record_internal_assert( + protocol: &mut ProtoGraph, + internal_assert_guard: &mut Option, + guard: ExprRef, +) { + *internal_assert_guard = Some(match internal_assert_guard.take() { + Some(existing_guard) => protocol.or_guard(existing_guard, guard), + None => guard, + }); +} + +#[derive(Clone, Copy)] +struct AssignmentBranch { + guard: ExprRef, + rhs: ExprRef, + is_dont_care: bool, +} + +fn simplify_expr(protocol: &mut ProtoGraph, expr: ExprRef) -> ExprRef { + let (expr_ctx, simplifier) = (&mut protocol.expr_ctx, &mut protocol.simplifier); + simplifier.simplify(expr_ctx, expr) +} + +fn push_assignment_branch( + protocol: &mut ProtoGraph, + branches: &mut Vec, + guard: ExprRef, + rhs: ExprRef, +) { + let guard = simplify_expr(protocol, guard); + if guard == protocol.false_id() { + return; + } + + branches.push(AssignmentBranch { + guard, + rhs, + is_dont_care: protocol.dont_cares.contains(&rhs), + }); +} + +// turns an ITE into a list of predicated assignments +fn flatten_assignment_rhs( + protocol: &mut ProtoGraph, + rhs: ExprRef, + default_value: ExprRef, + action_guard: ExprRef, +) -> Vec { + // Assignment RHSs are either bare values or ITE chains whose true branches are bare values. + let mut branches = Vec::new(); + let mut path_guard = simplify_expr(protocol, action_guard); + let mut cursor = rhs; + + while path_guard != protocol.false_id() && cursor != default_value { + match protocol.expr_ctx[cursor].clone() { + Expr::BVIte { cond, tru, fals } => { + let branch_guard = protocol.and_guard(path_guard, cond); + push_assignment_branch(protocol, &mut branches, branch_guard, tru); + + let not_cond = protocol.not_guard(cond); + path_guard = protocol.and_guard(path_guard, not_cond); + cursor = fals; + } + _ => { + push_assignment_branch(protocol, &mut branches, path_guard, cursor); + break; + } + } + } + + branches +} + +/// Turn branches back into an ITE +fn rebuild_assignment_rhs( + protocol: &mut ProtoGraph, + branches: &[AssignmentBranch], + default_value: ExprRef, +) -> ExprRef { + branches + .iter() + .rev() + .fold(default_value, |fallback, branch| { + lift(protocol, branch.guard, branch.rhs, fallback) + }) +} + +/// Append the new `branches` to `output` +/// Iff DontCare is true, add `DontCare` branches +fn append_assignment_branches( + output: &mut Vec, + branches: &[AssignmentBranch], + dont_care: bool, +) { + output.extend( + branches + .iter() + .copied() + .filter(|branch| branch.is_dont_care == dont_care), + ); +} + +fn merge_unordered_assignment_rhs( + protocol: &mut ProtoGraph, + internal_assert_guard: &mut Option, + default_value: ExprRef, + existing_guard: ExprRef, + existing_rhs: ExprRef, + new_guard: ExprRef, + new_rhs: ExprRef, +) -> ExprRef { + // flatten the existing assignment in the node we're merging into + let existing_branches = + flatten_assignment_rhs(protocol, existing_rhs, default_value, existing_guard); + // flatten the new assignment we're merging in + let new_branches = flatten_assignment_rhs(protocol, new_rhs, default_value, new_guard); + + for existing_branch in existing_branches + .iter() + .filter(|branch| !branch.is_dont_care) + { + // find all the different concrete values and add internal assertions for their conjunction + for new_branch in new_branches.iter().filter(|branch| !branch.is_dont_care) { + // assignments to the same value are totally legal + if existing_branch.rhs == new_branch.rhs { + continue; + } + + // assignments to different concrete values are illegal + let overlap = protocol.and_guard(existing_branch.guard, new_branch.guard); + if overlap != protocol.false_id() { + record_internal_assert(protocol, internal_assert_guard, overlap); + } + } + } + + // add the existing concrete branches, new concrete branches, existing DontCare branches, new dontcare branches. Guarantees our Concrete assignments will be preferred to DontCares across nodes. + let mut merged_branches = Vec::with_capacity(existing_branches.len() + new_branches.len()); + append_assignment_branches(&mut merged_branches, &existing_branches, false); + append_assignment_branches(&mut merged_branches, &new_branches, false); + append_assignment_branches(&mut merged_branches, &existing_branches, true); + append_assignment_branches(&mut merged_branches, &new_branches, true); + + // turn it back into an ITE from branches + rebuild_assignment_rhs(protocol, &merged_branches, default_value) +} + +pub fn append_action( protocol: &mut ProtoGraph, symbols: &SymbolTable, actions: &mut Vec, internal_assert_guard: &mut Option, action: Action, + ordered: bool, ) { match protocol[action.op].clone() { Op::Assign(symbol_id, rhs) => { let default_value = symbol_expr(protocol, symbols, symbol_id); // By invariant, there can be at most one existing assignment for this symbol. - if let Some(existing_action) = actions.iter_mut().find(|prior_action| { - matches!(protocol[prior_action.op], Op::Assign(prior_symbol_id, _) if prior_symbol_id == symbol_id) - }) { - let existing_rhs = match protocol[existing_action.op].clone() { - Op::Assign(_, existing_rhs) => existing_rhs, - _ => unreachable!(), - }; - let existing_rhs = if existing_action.guard == protocol.true_id() { - existing_rhs - } else { - protocol - .expr_ctx - .ite(existing_action.guard, existing_rhs, default_value) - }; - let merged_rhs = protocol.expr_ctx.ite(action.guard, rhs, existing_rhs); - let (expr_ctx, simplifier) = (&mut protocol.expr_ctx, &mut protocol.simplifier); - let merged_rhs = simplifier.simplify(expr_ctx, merged_rhs); - let new_op = protocol.o(Op::Assign(symbol_id, merged_rhs)); - existing_action.guard = protocol.true_id(); - existing_action.op = new_op; - } else { + let Some(idx) = actions.iter().position(|prior_action| { + matches!( + protocol[prior_action.op], + Op::Assign(prior_symbol_id, _) + if same_assignment_target(symbols, prior_symbol_id, symbol_id) + ) + }) else { actions.push(action); - } + return; + }; + + let existing_guard = actions[idx].guard; + let existing_rhs = match protocol[actions[idx].op].clone() { + Op::Assign(_, existing_rhs) => existing_rhs, + _ => unreachable!(), + }; + let (new_guard, new_rhs) = (action.guard, rhs); + + let merged_rhs = if ordered { + let existing_else = lift(protocol, existing_guard, existing_rhs, default_value); + lift(protocol, new_guard, new_rhs, existing_else) + } else { + merge_unordered_assignment_rhs( + protocol, + internal_assert_guard, + default_value, + existing_guard, + existing_rhs, + new_guard, + new_rhs, + ) + }; + + let new_op = protocol.o(Op::Assign(symbol_id, merged_rhs)); + actions[idx].guard = protocol.true_id(); + actions[idx].op = new_op; } Op::Fork => { if let Some(existing_action) = actions @@ -67,10 +242,7 @@ fn append_action( .find(|prior_action| matches!(protocol[prior_action.op], Op::Fork)) { let overlap = protocol.and_guard(existing_action.guard, action.guard); - *internal_assert_guard = Some(match internal_assert_guard.take() { - Some(existing_overlap) => protocol.or_guard(existing_overlap, overlap), - None => overlap, - }); + record_internal_assert(protocol, internal_assert_guard, overlap); existing_action.guard = protocol.or_guard(existing_action.guard, action.guard); } else { actions.push(action); @@ -112,6 +284,7 @@ pub fn contract_edges(protocol: &mut ProtoGraph, symbols: &SymbolTable) { &mut contracted_actions, &mut internal_assert_guard, action, + true, ); } @@ -161,6 +334,7 @@ pub fn contract_edges(protocol: &mut ProtoGraph, symbols: &SymbolTable) { &mut contracted_actions, &mut internal_assert_guard, merged_action, + true, ); } @@ -238,8 +412,195 @@ mod tests { use super::*; use crate::frontend::ast::ProtocolContext; use crate::frontend::symbol::ROOT_SCOPE; + use cranelift_entity::EntityRef; use patronus::expr::SerializableIrNode; + #[test] + fn allows_overlapping_dont_care_and_concrete_assignments() { + let mut protocol = ProtoGraph::new(ProtocolContext::new("test".into(), ROOT_SCOPE)); + let symbol_id = SymbolId::new(0); + let symbol = protocol.expr_ctx.bv_symbol("signal", 1); + let dont_care = protocol.expr_ctx.bv_symbol("dont_care", 1); + let concrete = protocol.expr_ctx.bv_symbol("concrete", 1); + protocol.cache_symbol_expr(symbol_id, symbol); + protocol.dont_cares.insert(dont_care); + + let concrete_op = protocol.o(Op::Assign(symbol_id, concrete)); + let dont_care_op = protocol.o(Op::Assign(symbol_id, dont_care)); + let mut actions = vec![Action::new(protocol.true_id(), concrete_op)]; + let mut internal_assert_guard = None; + let true_id = protocol.true_id(); + append_action( + &mut protocol, + &SymbolTable::default(), + &mut actions, + &mut internal_assert_guard, + Action::new(true_id, dont_care_op), + true, + ); + + // it is perfectly valid to have multiple assignments in an ordered merge + // i.e. within a single transaction (transactions can change their mind) + assert!(internal_assert_guard.is_none()); + + // the order in which the assigns are given is preserved (Concrete should not subsume DontCare) + assert_eq!(actions.len(), 1); + let Op::Assign(_, rhs) = protocol[actions[0].op] else { + panic!("expected assignment"); + }; + assert_eq!( + protocol.expr_ctx[rhs].serialize_to_str(&protocol.expr_ctx), + "dont_care" + ); + } + + #[test] + fn synthesizes_internal_assert_for_overlapping_unordered_assignments() { + let mut protocol = ProtoGraph::new(ProtocolContext::new("test".into(), ROOT_SCOPE)); + let symbol_id = SymbolId::new(0); + let symbol = protocol.expr_ctx.bv_symbol("signal", 1); + protocol.cache_symbol_expr(symbol_id, symbol); + + // Node A: [p] DUT.a := 1 + // Node B: [q] DUT.a := 2 + // Node C: [r] DUT.a := 3 + let p = protocol.expr_ctx.bv_symbol("p", 1); + let q = protocol.expr_ctx.bv_symbol("q", 1); + let r = protocol.expr_ctx.bv_symbol("r", 1); + let one = protocol.expr_ctx.bv_symbol("one", 1); + let two = protocol.expr_ctx.bv_symbol("two", 1); + let three = protocol.expr_ctx.bv_symbol("three", 1); + + let mut actions = Vec::new(); + let mut internal_assert_guard = None; + for (guard, rhs) in [(p, one), (q, two), (r, three)] { + let op = protocol.o(Op::Assign(symbol_id, rhs)); + append_action( + &mut protocol, + &SymbolTable::default(), + &mut actions, + &mut internal_assert_guard, + Action::new(guard, op), + false, + ); + } + + assert_eq!(actions.len(), 1); + // we should now have an ITE form with [1] always as the guard + assert_eq!( + protocol.expr_ctx[actions[0].guard].serialize_to_str(&protocol.expr_ctx), + "1'b1" + ); + + // assert any two guards being run together. (p and q) or (p and r) + assert_eq!( + protocol.expr_ctx[internal_assert_guard.unwrap()].serialize_to_str(&protocol.expr_ctx), + "or(or(and(p, q), and(p, r)), and(and(not(p), q), r))" + ); + } + + #[test] + fn unordered_assignment_merge_preserves_ordered_ite_precedence() { + let mut protocol = ProtoGraph::new(ProtocolContext::new("test".into(), ROOT_SCOPE)); + let symbol_id = SymbolId::new(0); + let symbol = protocol.expr_ctx.bv_symbol("DUT.a", 1); + let dont_care = protocol.expr_ctx.bv_symbol("dont_care", 1); + let three = protocol.expr_ctx.bv_symbol("three", 1); + let four = protocol.expr_ctx.bv_symbol("four", 1); + protocol.cache_symbol_expr(symbol_id, symbol); + protocol.dont_cares.insert(dont_care); + + let q = protocol.expr_ctx.bv_symbol("q", 1); + let r = protocol.expr_ctx.bv_symbol("r", 1); + let s = protocol.expr_ctx.bv_symbol("s", 1); + + // Node A: [1] DUT.a := ite(s, X, ite(q, 3, DUT.a)) + // Node B: [1] DUT.a := ite(r, 4, DUT.a) + + let q_three = protocol.expr_ctx.ite(q, three, symbol); + let node_a_rhs = protocol.expr_ctx.ite(s, dont_care, q_three); + let node_b_rhs = protocol.expr_ctx.ite(r, four, symbol); + let true_id = protocol.true_id(); + let node_a_op = protocol.o(Op::Assign(symbol_id, node_a_rhs)); + let node_b_op = protocol.o(Op::Assign(symbol_id, node_b_rhs)); + + let mut actions = vec![Action::new(true_id, node_a_op)]; + let mut internal_assert_guard = None; + + append_action( + &mut protocol, + &SymbolTable::default(), + &mut actions, + &mut internal_assert_guard, + Action::new(true_id, node_b_op), + false, + ); + + assert_eq!(actions.len(), 1); + assert_eq!( + protocol.expr_ctx[actions[0].guard].serialize_to_str(&protocol.expr_ctx), + "1'b1" + ); + + // q and r are our concrete assignments to 3 and 4. assignment to 3 only triggers if + // not s , so there is only a conflicting assignment under ((not s) and q and r) + assert_eq!( + protocol.expr_ctx[internal_assert_guard.unwrap()].serialize_to_str(&protocol.expr_ctx), + "and(and(not(s), q), r)" + ); + + protocol.simplify_all_exprs(); + + let Op::Assign(_, rhs) = protocol[actions[0].op] else { + panic!("expected assignment"); + }; + + // the ordering of the concrete assignments is arbitrary, but should come before the + // DontCare. however, the assignment to 3 should only happen if the DontCare + // assignment is not triggered, since those are ordered within a node + // Thus: if q and not s => 3, if r => 4, if s => X, otherwise DUT.a + assert_eq!( + protocol.expr_ctx[rhs].serialize_to_str(&protocol.expr_ctx), + "ite(and(not(s), q), three, ite(r, four, ite(s, dont_care, DUT.a)))" + ); + } + + #[test] + fn unordered_assignment_merge_allows_overlapping_equal_concretes() { + let mut protocol = ProtoGraph::new(ProtocolContext::new("test".into(), ROOT_SCOPE)); + let symbol_id = SymbolId::new(0); + let symbol = protocol.expr_ctx.bv_symbol("DUT.a", 1); + let dont_care = protocol.expr_ctx.bv_symbol("dont_care", 1); + let three = protocol.expr_ctx.bv_symbol("three", 1); + protocol.cache_symbol_expr(symbol_id, symbol); + protocol.dont_cares.insert(dont_care); + + let p = protocol.expr_ctx.bv_symbol("p", 1); + let q = protocol.expr_ctx.bv_symbol("q", 1); + let r = protocol.expr_ctx.bv_symbol("r", 1); + + let q_three = protocol.expr_ctx.ite(q, three, symbol); + let node_a_rhs = protocol.expr_ctx.ite(p, dont_care, q_three); + let node_b_rhs = protocol.expr_ctx.ite(r, three, symbol); + let true_id = protocol.true_id(); + let node_a_op = protocol.o(Op::Assign(symbol_id, node_a_rhs)); + let node_b_op = protocol.o(Op::Assign(symbol_id, node_b_rhs)); + + let mut actions = vec![Action::new(true_id, node_a_op)]; + let mut internal_assert_guard = None; + + append_action( + &mut protocol, + &SymbolTable::default(), + &mut actions, + &mut internal_assert_guard, + Action::new(true_id, node_b_op), + false, + ); + + assert!(internal_assert_guard.is_none()); + } + #[test] fn synthesizes_internal_assert_for_overlapping_forks() { let mut protocol = ProtoGraph::new(ProtocolContext::new("test".into(), ROOT_SCOPE)); @@ -267,11 +628,11 @@ mod tests { let internal_guard = protocol.expr_ctx[actions[1].guard].serialize_to_str(&protocol.expr_ctx); - // any of the forks can trigger: (p \/ q \/ r) + // any of the forks can trigger: (p or q or r) assert_eq!(fork_guard, "or(or(p, q), r)"); // any two of the forks should not trigger at once - // below expression is equivalent to (p \/ q) /\ (p \/ r) /\ (q \/ r) + // below expression is equivalent to (p or q) and (p or r) and (q or r) assert_eq!(internal_guard, "or(and(p, q), and(or(p, q), r))"); } } diff --git a/protocols/src/ir/graph_interpreter.rs b/protocols/src/ir/graph_interpreter.rs index bb9628f0..53528fce 100644 --- a/protocols/src/ir/graph_interpreter.rs +++ b/protocols/src/ir/graph_interpreter.rs @@ -1,19 +1,20 @@ use std::convert::TryInto; use baa::{BitVecOps, BitVecValue, Value as BaaValue}; -use patronus::expr::{ExprRef, SymbolValueStore, TypeCheck, eval_expr}; +use patronus::expr::{ExprRef, SerializableIrNode, SymbolValueStore, TypeCheck, eval_expr}; use rand::SeedableRng; use rustc_hash::{FxHashMap, FxHashSet}; -use crate::Value; +use crate::Value as ArgValue; use crate::dut::{PatronusSim, PortId}; use crate::frontend::serialize::serialize_bitvec; use crate::frontend::symbol::{SymbolId, SymbolTable, Type}; +use crate::interpreter::Value as WaveValue; use crate::ir::proto_graph::{Op, ProtoGraph}; enum GraphBinding { Sim(PortId), - Arg(Value), + Arg(ArgValue), DontCare, } @@ -26,7 +27,7 @@ enum InputValue { fn build_bindings( protocol: &ProtoGraph, symbols: &SymbolTable, - args: &FxHashMap<&str, Value>, + args: &FxHashMap<&str, ArgValue>, sim: &PatronusSim, ) -> FxHashMap { let mut bindings = FxHashMap::default(); @@ -189,13 +190,60 @@ fn evaluate_assert_equal( } } +fn record_waveform( + waveform: &mut FxHashMap>, + sim: &mut PatronusSim, + current_inputs: &FxHashMap, + rng: &mut impl rand::Rng, +) { + let mut dont_care_ports = FxHashSet::default(); + + for input in sim.inputs().collect::>() { + let value = current_inputs + .get(&input) + .unwrap_or(&WaveValue::DontCare) + .clone(); + match value { + WaveValue::Concrete(bvv) => { + sim.set(input, &bvv); + waveform + .entry(input) + .or_default() + .push(WaveValue::Concrete(bvv)); + } + WaveValue::DontCare => { + let random_val = BitVecValue::random(rng, sim.port_width(input)); + sim.set(input, &random_val); + waveform.entry(input).or_default().push(WaveValue::DontCare); + dont_care_ports.insert(input); + } + } + } + + for output in sim.outputs() { + let value = if sim + .coi_inputs(output) + .any(|input| dont_care_ports.contains(&input)) + { + WaveValue::DontCare + } else { + WaveValue::Concrete(sim.get(output)) + }; + waveform.entry(output).or_default().push(value); + } +} + /// interpret a `ProtoGraph` using Patronus expressions directly. pub fn interpret( pg: &ProtoGraph, st: &SymbolTable, - args: FxHashMap<&str, Value>, + args: FxHashMap<&str, ArgValue>, sim: &mut PatronusSim, -) { +) -> FxHashMap> { + let mut waveform = FxHashMap::default(); + let mut current_inputs = + FxHashMap::from_iter(sim.inputs().map(|port| (port, WaveValue::DontCare))); + let bindings = build_bindings(pg, st, &args, sim); let mut rng = rand::rngs::StdRng::seed_from_u64(0); let mut store = build_value_store(pg, &bindings, sim, &mut rng); @@ -214,7 +262,7 @@ pub fn interpret( if let Op::Assign(symbol_id, _) = &pg[action.op] && !assigned_inputs.insert(*symbol_id) { - panic!("multiple assigns to input {symbol_id} in one node"); + // panic!("multiple assigns to input {symbol_id} in one node"); } } @@ -233,7 +281,10 @@ pub fn interpret( for (symbol_id, value) in pending_inputs { let port = sim[symbol_id]; match value { - InputValue::Concrete(bvv) => sim.set(port, &bvv), + InputValue::Concrete(bvv) => { + sim.set(port, &bvv); + current_inputs.insert(port, WaveValue::Concrete(bvv)); + } InputValue::DontCare => { let width = match st[symbol_id].tpe() { Type::BitVec(w) => w, @@ -241,6 +292,7 @@ pub fn interpret( }; let random_val = BitVecValue::random(&mut rng, width); sim.set(port, &random_val); + current_inputs.insert(port, WaveValue::DontCare); } } } @@ -256,7 +308,10 @@ pub fn interpret( evaluate_assert_equal(pg, &store, *lhs, *rhs); } Op::Fork => {} - Op::InternalAssertFalse => panic!("internal assert failed"), + Op::InternalAssertFalse => panic!( + "internal assertion failed at graph node {curr}: guard {} evaluated true", + pg.expr_ctx[action.guard].serialize_to_str(&pg.expr_ctx) + ), Op::Done => done_triggered = true, } } @@ -268,19 +323,27 @@ pub fn interpret( .filter(|transition| evaluate_guard(pg, &store, transition.guard)) .collect(); - assert!( - done_triggered && satisfied_transitions.is_empty() - || !done_triggered && !satisfied_transitions.is_empty(), - "done triggered alongside a satisfied transition out of {curr}" - ); + if done_triggered { + // FIXME: we don't handle done properly for concrete trace lowering. + // this assertion is also guaranteed not to fire for the symbolic lowering + // so it's not useful for now. + // assert!( + // satisfied_transitions.is_empty() + // || !done_triggered && !satisfied_transitions.is_empty(), + // "done triggered alongside a satisfied transition out of {curr}" + // ); + } + assert!( satisfied_transitions.len() <= 1, - "multiple transitions simultaneously satisfied out of {curr}" + "non-determinism found: multiple transitions simultaneously satisfied out of {curr}" ); match satisfied_transitions.into_iter().next() { Some(t) => { if t.consumes_step { + record_waveform(&mut waveform, sim, ¤t_inputs, &mut rng); + update_value_store(&mut store, pg, &bindings, sim, &mut rng); sim.step(); } curr = t.target; @@ -288,4 +351,6 @@ pub fn interpret( None => break, } } + + waveform } diff --git a/protocols/src/ir/graphviz.rs b/protocols/src/ir/graphviz.rs index 65d67ef6..a3f63857 100644 --- a/protocols/src/ir/graphviz.rs +++ b/protocols/src/ir/graphviz.rs @@ -21,14 +21,11 @@ pub fn to_dot_string(protocol: &ProtoGraph, symbols: &SymbolTable) -> String { out.push_str(" entry_marker [shape=plain,label=\"ENTRY\"];\n"); out.push_str(&format!(" entry_marker -> {};\n", protocol.entry)); - // emit one graphviz node per ir node let mut seen: BTreeSet = BTreeSet::new(); + seen.insert(protocol.entry); let mut q = VecDeque::from([protocol.entry]); - // for (node_id, node) in protocol.nodes() { - while !q.is_empty() { - let node_id = q.pop_front().unwrap(); + while let Some(node_id) = q.pop_front() { let node = protocol[node_id].clone(); - seen.insert(node_id); let mut label_parts = vec![]; @@ -50,6 +47,10 @@ pub fn to_dot_string(protocol: &ProtoGraph, symbols: &SymbolTable) -> String { // emit graph edges for transition in &node.transitions { + // pruning heuristic: skip dead (false-guarded) transitions + if transition.guard == protocol.false_id() { + continue; + } let edge_label = if transition.consumes_step { format!("{} / step", format_expr(protocol, transition.guard)) } else { @@ -61,7 +62,7 @@ pub fn to_dot_string(protocol: &ProtoGraph, symbols: &SymbolTable) -> String { transition.target, escape_label(&edge_label) )); - if !seen.contains(&transition.target) { + if seen.insert(transition.target) { q.push_back(transition.target); } } diff --git a/protocols/src/ir/lowering.rs b/protocols/src/ir/lowering.rs index 304aa8e3..467b8714 100644 --- a/protocols/src/ir/lowering.rs +++ b/protocols/src/ir/lowering.rs @@ -3,235 +3,316 @@ // author: Nikil Shyamunder use patronus::expr::{ExprRef, Type as PatronusType}; +use rustc_hash::FxHashMap; -use crate::frontend::ast::{BinOp, Expr, ExprId, Protocol, Stmt, StmtId, UnaryOp}; +use crate::frontend::ast::{BinOp, Expr, ExprId, Protocol, ProtocolContext, Stmt, StmtId, UnaryOp}; use crate::frontend::symbol::{SymbolId, SymbolTable, Type as FrontType}; use crate::ir::proto_graph::*; -fn lower_ast_expr_to_patronus( - ast: &Protocol, - symbols: &SymbolTable, - ir: &mut ProtoGraph, - expr: ExprId, - expected: Option, -) -> ExprRef { - match &ast[expr] { - Expr::DontCare => { - let tpe = expected.unwrap_or(PatronusType::BV(1)); - let next_dont_care = ir.dont_cares.len(); - // the name here is not relevant for anything other than debugging - let name = format!("dont_care_{}", next_dont_care); - let dont_care_expr = match tpe { - PatronusType::BV(width) => ir.expr_ctx.bv_symbol(&name, width), - PatronusType::Array(array_tpe) => { - ir.expr_ctx - .array_symbol(&name, array_tpe.index_width, array_tpe.data_width) - } - }; - ir.dont_cares.insert(dont_care_expr); - dont_care_expr - } - Expr::Const(bvv) => ir.expr_ctx.bv_lit(bvv), - Expr::Sym(sym) => lower_symbol_expr(ir, symbols, *sym), - Expr::Binary(BinOp::Equal, lhs, rhs) => { - let lhs_ref = lower_ast_expr_to_patronus(ast, symbols, ir, *lhs, None); - let rhs_ref = lower_ast_expr_to_patronus(ast, symbols, ir, *rhs, None); - ir.expr_ctx.equal(lhs_ref, rhs_ref) - } - Expr::Binary(BinOp::Concat, lhs, rhs) => { - let lhs_ref = lower_ast_expr_to_patronus(ast, symbols, ir, *lhs, None); - let rhs_ref = lower_ast_expr_to_patronus(ast, symbols, ir, *rhs, None); - ir.expr_ctx.concat(lhs_ref, rhs_ref) - } - Expr::Binary(BinOp::Add, lhs, rhs) => { - let lhs_ref = lower_ast_expr_to_patronus(ast, symbols, ir, *lhs, None); - let rhs_ref = lower_ast_expr_to_patronus(ast, symbols, ir, *rhs, None); - ir.expr_ctx.add(lhs_ref, rhs_ref) - } - Expr::Binary(BinOp::And, lhs, rhs) => { - let lhs_ref = lower_ast_expr_to_patronus(ast, symbols, ir, *lhs, None); - let rhs_ref = lower_ast_expr_to_patronus(ast, symbols, ir, *rhs, None); - ir.expr_ctx.and(lhs_ref, rhs_ref) - } - Expr::Unary(UnaryOp::Not, inner) => { - let inner_ref = - lower_ast_expr_to_patronus(ast, symbols, ir, *inner, Some(PatronusType::BV(1))); - ir.expr_ctx.not(inner_ref) - } - Expr::Slice(inner, hi, lo) => { - let inner_ref = lower_ast_expr_to_patronus(ast, symbols, ir, *inner, None); - ir.expr_ctx.slice(inner_ref, *hi, *lo) - } - Expr::IsLastIteration => { - panic!("loop expressions are not lowered to Patronus yet") - } - Expr::IterCount(_) => { - panic!("loop expressions are not lowered to Patronus yet") +/// substitution of argument symbols to concrete expressions for trace lowering +pub type TraceArgSubst = FxHashMap; + +/// Information about the result of lowering an AST to a graph fragment. +pub struct LoweredFragmentInfo { + /// Nodes allocated for this fragment. + pub nodes: Vec, + /// Entry node of the fragment. + pub entry: NodeId, + /// Exit node of the fragment. + pub exit: NodeId, +} + +/// The stateful driver of lowering an AST to an IR +pub struct Lowerer<'a> { + pub ir: ProtoGraph, + pub symbols: &'a SymbolTable, + /// Optional substitution of args for concrete values + pub trace_arg_subst: TraceArgSubst, + /// The nodes from the most recent lowered fragment. + current_fragment_nodes: Vec, +} + +impl<'a> Lowerer<'a> { + pub fn new(ctx: ProtocolContext, symbols: &'a SymbolTable) -> Self { + Self { + ir: ProtoGraph::new(ctx), + symbols, + trace_arg_subst: TraceArgSubst::default(), + current_fragment_nodes: Vec::new(), } } -} -fn lower_symbol_expr(ir: &mut ProtoGraph, symbols: &SymbolTable, symbol_id: SymbolId) -> ExprRef { - if let Some(expr) = ir.symbol_expr(symbol_id) { - return expr; + /// Add a new node to the IR and track it in current fragment + fn n(&mut self, node: Node) -> NodeId { + let node_id = self.ir.n(node); + self.current_fragment_nodes.push(node_id); + node_id } - let entry = &symbols[symbol_id]; - let full_name = entry.full_name(symbols); - let expr = match entry.tpe() { - FrontType::BitVec(width) => ir.expr_ctx.bv_symbol(&full_name, width), - FrontType::Struct(_) | FrontType::Seq(_) | FrontType::UnsignedInt | FrontType::Unknown => { - panic!( - "unsupported symbol type {} for {}", - crate::frontend::serialize::serialize_type(symbols, entry.tpe()), - full_name - ) + fn lower_expr( + &mut self, + ast: &Protocol, + expr: ExprId, + expected: Option, + ) -> ExprRef { + match &ast[expr] { + Expr::DontCare => { + let tpe = expected.unwrap_or(PatronusType::BV(1)); + let next_dont_care = self.ir.dont_cares.len(); + // the name here is not relevant for anything other than debugging + let name = format!("dont_care_{}", next_dont_care); + let dont_care_expr = match tpe { + PatronusType::BV(width) => self.ir.expr_ctx.bv_symbol(&name, width), + PatronusType::Array(array_tpe) => self.ir.expr_ctx.array_symbol( + &name, + array_tpe.index_width, + array_tpe.data_width, + ), + }; + self.ir.dont_cares.insert(dont_care_expr); + dont_care_expr + } + Expr::Const(bvv) => self.ir.expr_ctx.bv_lit(bvv), + Expr::Sym(sym) => self.lower_symbol(*sym), + Expr::Binary(BinOp::Equal, lhs, rhs) => { + let lhs_ref = self.lower_expr(ast, *lhs, None); + let rhs_ref = self.lower_expr(ast, *rhs, None); + self.ir.expr_ctx.equal(lhs_ref, rhs_ref) + } + Expr::Binary(BinOp::Concat, lhs, rhs) => { + let lhs_ref = self.lower_expr(ast, *lhs, None); + let rhs_ref = self.lower_expr(ast, *rhs, None); + self.ir.expr_ctx.concat(lhs_ref, rhs_ref) + } + Expr::Binary(BinOp::Add, lhs, rhs) => { + let lhs_ref = self.lower_expr(ast, *lhs, None); + let rhs_ref = self.lower_expr(ast, *rhs, None); + self.ir.expr_ctx.add(lhs_ref, rhs_ref) + } + Expr::Binary(BinOp::And, lhs, rhs) => { + let lhs_ref = self.lower_expr(ast, *lhs, None); + let rhs_ref = self.lower_expr(ast, *rhs, None); + self.ir.expr_ctx.and(lhs_ref, rhs_ref) + } + Expr::Unary(UnaryOp::Not, inner) => { + let inner_ref = self.lower_expr(ast, *inner, Some(PatronusType::BV(1))); + self.ir.expr_ctx.not(inner_ref) + } + Expr::Slice(inner, hi, lo) => { + let (hi, lo) = (*hi, *lo); + let inner_ref = self.lower_expr(ast, *inner, None); + self.ir.expr_ctx.slice(inner_ref, hi, lo) + } + Expr::IsLastIteration => { + panic!("loop expressions are not lowered to Patronus yet") + } + Expr::IterCount(_) => { + panic!("loop expressions are not lowered to Patronus yet") + } } - }; - ir.cache_symbol_expr(symbol_id, expr); - expr -} + } -pub fn lower_ast_to_ir(ast: Protocol, symbols: &SymbolTable) -> ProtoGraph { - let mut ir = ProtoGraph::new(ast.ctx.clone()); + fn lower_symbol(&mut self, symbol_id: SymbolId) -> ExprRef { + // A trace-substituted argument takes precedence over the shared cache: + // the same argument symbol may resolve to different constants per copy. + if let Some(expr) = self.trace_arg_subst.get(&symbol_id) { + return *expr; + } - let done_node_id = ir.n(Node::empty()); - let done_op_id = ir.o(Op::Done); - ir.push_action(done_node_id, Action::new(ir.true_id(), done_op_id)); + if let Some(expr) = self.ir.symbol_expr(symbol_id) { + return expr; + } - let body_entry = lower_stmt_to_exit(&ast, symbols, &mut ir, ast.body, done_node_id); - ir.push_transition(ir.entry, Transition::new(ir.true_id(), body_entry, false)); + let symbols = self.symbols; + let entry = &symbols[symbol_id]; + let full_name = entry.full_name(symbols); + let expr = match entry.tpe() { + FrontType::BitVec(width) => self.ir.expr_ctx.bv_symbol(&full_name, width), + FrontType::Struct(_) + | FrontType::Seq(_) + | FrontType::UnsignedInt + | FrontType::Unknown => { + panic!( + "unsupported symbol type {} for {}", + crate::frontend::serialize::serialize_type(symbols, entry.tpe()), + full_name + ) + } + }; + self.ir.cache_symbol_expr(symbol_id, expr); + expr + } - ir -} + // lower some statement `stmt_id` (which points to a subtree in the AST) to + // an IR where the final node in the IR sub-graph points to an exit node `exit` + fn lower_stmt(&mut self, ast: &Protocol, stmt_id: StmtId, exit: NodeId) -> NodeId { + match &ast[stmt_id] { + Stmt::Block(stmt_ids) => { + if stmt_ids.is_empty() { + let node_id = self.n(Node::empty()); + let true_id = self.ir.true_id(); + self.ir + .push_transition(node_id, Transition::new(true_id, exit, false)); + return node_id; + } -// lower some statement `stmt_id` (which points to a subtree in the AST) to an IR -// where the final node in the IR sub-graph points to an exit node `exit` -fn lower_stmt_to_exit( - ast: &Protocol, - symbols: &SymbolTable, - ir: &mut ProtoGraph, - stmt_id: StmtId, - exit: NodeId, -) -> NodeId { - match &ast[stmt_id] { - Stmt::Block(stmt_ids) => { - if stmt_ids.is_empty() { - let node_id = ir.n(Node::empty()); - ir.push_transition(node_id, Transition::new(ir.true_id(), exit, false)); - return node_id; - } - - let mut curr_exit = exit; - for stmt_id in stmt_ids.iter().rev() { - curr_exit = lower_stmt_to_exit(ast, symbols, ir, *stmt_id, curr_exit); - } - curr_exit - } - Stmt::Assign(symbol_id, expr_id) => { - let node_id = ir.n(Node::empty()); - let default_value = lower_symbol_expr(ir, symbols, *symbol_id); - let rhs_ref = lower_ast_expr_to_patronus( - ast, - symbols, - ir, - *expr_id, - Some(match symbols[*symbol_id].tpe() { + let mut curr_exit = exit; + for stmt_id in stmt_ids.clone().iter().rev() { + curr_exit = self.lower_stmt(ast, *stmt_id, curr_exit); + } + curr_exit + } + Stmt::Assign(symbol_id, expr_id) => { + let (symbol_id, expr_id) = (*symbol_id, *expr_id); + let node_id = self.n(Node::empty()); + let expected = match self.symbols[symbol_id].tpe() { FrontType::BitVec(width) => PatronusType::BV(width), other => panic!( "unsupported assignment target type for Patronus lowering: {:?}", other ), - }), - ); - let guard = ir.true_id(); - let rhs_ref = ir.expr_ctx.ite(guard, rhs_ref, default_value); - let op_id = ir.o(Op::Assign(*symbol_id, rhs_ref)); - ir.push_action(node_id, Action::new(ir.true_id(), op_id)); - ir.push_transition(node_id, Transition::new(ir.true_id(), exit, false)); - node_id - } - Stmt::Step => { - let node_id = ir.n(Node::empty()); - ir.push_transition(node_id, Transition::new(ir.true_id(), exit, true)); - node_id - } - Stmt::Fork => { - let node_id = ir.n(Node::empty()); - let op_id = ir.o(Op::Fork); - ir.push_action(node_id, Action::new(ir.true_id(), op_id)); - ir.push_transition(node_id, Transition::new(ir.true_id(), exit, false)); - node_id - } - Stmt::AssertEq(lhs, rhs) => { - let node_id = ir.n(Node::empty()); - let lhs_ref = lower_ast_expr_to_patronus(ast, symbols, ir, *lhs, None); - let rhs_ref = lower_ast_expr_to_patronus(ast, symbols, ir, *rhs, None); - let op_id = ir.o(Op::AssertEq(lhs_ref, rhs_ref)); - ir.push_action(node_id, Action::new(ir.true_id(), op_id)); - ir.push_transition(node_id, Transition::new(ir.true_id(), exit, false)); - node_id + }; + let rhs_ref = self.lower_expr(ast, expr_id, Some(expected)); + let op_id = self.ir.o(Op::Assign(symbol_id, rhs_ref)); + let true_id = self.ir.true_id(); + self.ir.push_action(node_id, Action::new(true_id, op_id)); + self.ir + .push_transition(node_id, Transition::new(true_id, exit, false)); + node_id + } + Stmt::Step => { + let node_id = self.n(Node::empty()); + let true_id = self.ir.true_id(); + self.ir + .push_transition(node_id, Transition::new(true_id, exit, true)); + node_id + } + Stmt::Fork => { + let node_id = self.n(Node::empty()); + let op_id = self.ir.o(Op::Fork); + let true_id = self.ir.true_id(); + self.ir.push_action(node_id, Action::new(true_id, op_id)); + self.ir + .push_transition(node_id, Transition::new(true_id, exit, false)); + node_id + } + Stmt::AssertEq(lhs, rhs) => { + let (lhs, rhs) = (*lhs, *rhs); + let node_id = self.n(Node::empty()); + let lhs_ref = self.lower_expr(ast, lhs, None); + let rhs_ref = self.lower_expr(ast, rhs, None); + let op_id = self.ir.o(Op::AssertEq(lhs_ref, rhs_ref)); + let true_id = self.ir.true_id(); + self.ir.push_action(node_id, Action::new(true_id, op_id)); + self.ir + .push_transition(node_id, Transition::new(true_id, exit, false)); + node_id + } + Stmt::IfElse(cond, true_branch, false_branch) => { + let (cond, true_branch, false_branch) = (*cond, *true_branch, *false_branch); + // create a join node that will be the final node in the IfElse subgraph, pointing to exit + // this will also be the target exit node for the sub-branches + let join_node_id = self.n(Node::empty()); + let true_id = self.ir.true_id(); + self.ir + .push_transition(join_node_id, Transition::new(true_id, exit, false)); + + let true_entry = self.lower_stmt(ast, true_branch, join_node_id); + let false_entry = self.lower_stmt(ast, false_branch, join_node_id); + + // create the branch node from which we transition into the true or false entry nodes + let branch_node_id = self.n(Node::empty()); + let cond_ref = self.lower_expr(ast, cond, Some(PatronusType::BV(1))); + let negated_cond = self.ir.expr_ctx.not(cond_ref); + + // push transitions from the branch node to the true/false branch with positive/negative guarded transitions + self.ir + .push_transition(branch_node_id, Transition::new(cond_ref, true_entry, false)); + self.ir.push_transition( + branch_node_id, + Transition::new(negated_cond, false_entry, false), + ); + branch_node_id + } + // FIXME: not sure if there is a better word than "guard" here. worried about overloading that term. + // maybe just "cond"? + Stmt::While(loop_guard, loop_body) => { + let (loop_guard, loop_body) = (*loop_guard, *loop_body); + let loop_exit_node_id = self.n(Node::empty()); + let true_id = self.ir.true_id(); + self.ir + .push_transition(loop_exit_node_id, Transition::new(true_id, exit, false)); + + // create the loop guard.node from which we transition into the loop body or loop exit nodes + let loop_guard_node_id = self.n(Node::empty()); + + // lower the loop body, which exits into the loop guard (the cycle-forming edge) + let loop_body_node_id = self.lower_stmt(ast, loop_body, loop_guard_node_id); + + // create transitions from the loop guard to the loop body and the loop exit + let loop_guard_ref = self.lower_expr(ast, loop_guard, Some(PatronusType::BV(1))); + let negated_loop_guard = self.ir.expr_ctx.not(loop_guard_ref); + self.ir.push_transition( + loop_guard_node_id, + Transition::new(loop_guard_ref, loop_body_node_id, false), + ); + self.ir.push_transition( + loop_guard_node_id, + Transition::new(negated_loop_guard, loop_exit_node_id, false), + ); + + loop_guard_node_id + } + Stmt::RepeatLoop(_expr_id, _stmt_id) => todo!(), + Stmt::ForInLoop(_symbol_id, _expr_id, _stmt_id) => todo!(), } - Stmt::IfElse(cond, true_branch, false_branch) => { - // create a join node that will be the final node in the IfElse subgraph, pointing to exit - // this will also be the target exit node for the sub-branches - let join_node_id = ir.n(Node::empty()); - ir.push_transition(join_node_id, Transition::new(ir.true_id(), exit, false)); - - let true_entry = lower_stmt_to_exit(ast, symbols, ir, *true_branch, join_node_id); - let false_entry = lower_stmt_to_exit(ast, symbols, ir, *false_branch, join_node_id); - - // create the branch node from which we transition into the true or false entry nodes - let branch_node_id = ir.n(Node::empty()); - let cond_ref = - lower_ast_expr_to_patronus(ast, symbols, ir, *cond, Some(PatronusType::BV(1))); - let negated_cond = ir.expr_ctx.not(cond_ref); - - // push transitions from the branch node to the true/false branch with positive/negative guarded transitions - ir.push_transition(branch_node_id, Transition::new(cond_ref, true_entry, false)); - ir.push_transition( - branch_node_id, - Transition::new(negated_cond, false_entry, false), - ); - branch_node_id + } + + /// lowers an AST into fresh IR nodes which are unconnected to any existing IR nodes + /// If `keep_done`, then the exit node has the Done action. + /// Returns the nodes, entry, and exit of the lowered fragment + pub fn lower_protocol_fragment( + &mut self, + ast: &Protocol, + keep_done: bool, + ) -> LoweredFragmentInfo { + debug_assert!( + self.current_fragment_nodes.is_empty(), + "fragment node accumulator should be empty before + lowering a fragment" + ); + + let done = self.n(Node::empty()); + if keep_done { + let done_op = self.ir.o(Op::Done); + let true_id = self.ir.true_id(); + self.ir.push_action(done, Action::new(true_id, done_op)); } - // FIXME: not sure if there is a better word than "guard" here. worried about overloading that term. - // maybe just "cond"? - Stmt::While(loop_guard, loop_body) => { - let loop_exit_node_id = ir.n(Node::empty()); - ir.push_transition( - loop_exit_node_id, - Transition::new(ir.true_id(), exit, false), - ); - - // create the loop guard.node from which we transition into the loop body or loop exit nodes - let loop_guard_node_id = ir.n(Node::empty()); - - // lower the loop body, which exits into the loop guard (the cycle-forming edge) - let loop_body_node_id = - lower_stmt_to_exit(ast, symbols, ir, *loop_body, loop_guard_node_id); - - // create transitions from the loop guard to the loop body and the loop exit - let loop_guard_ref = lower_ast_expr_to_patronus( - ast, - symbols, - ir, - *loop_guard, - Some(PatronusType::BV(1)), - ); - let negated_loop_guard = ir.expr_ctx.not(loop_guard_ref); - ir.push_transition( - loop_guard_node_id, - Transition::new(loop_guard_ref, loop_body_node_id, false), - ); - ir.push_transition( - loop_guard_node_id, - Transition::new(negated_loop_guard, loop_exit_node_id, false), - ); - - loop_guard_node_id + + // lower the protocol, which will add the new nodes to self.current_fragment_nodes + let entry = self.lower_stmt(ast, ast.body, done); + let nodes = std::mem::take(&mut self.current_fragment_nodes); + LoweredFragmentInfo { + nodes, + entry, + exit: done, } - Stmt::RepeatLoop(_expr_id, _stmt_id) => todo!(), - Stmt::ForInLoop(_symbol_id, _expr_id, _stmt_id) => todo!(), } } + +/// Lower a single AST `Protocol` into a fresh symbolic `ProtoGraph` +pub fn lower_ast_to_ir(ast: Protocol, symbols: &SymbolTable) -> ProtoGraph { + // create a lowerer and lower the ast + let mut lowerer = Lowerer::new(ast.ctx.clone(), symbols); + let fragment = lowerer.lower_protocol_fragment(&ast, true); + + // link up the default entry node of the ir with the entry node of the lowered AST + let entry_node = lowerer.ir.entry; + let true_id = lowerer.ir.true_id(); + lowerer + .ir + .push_transition(entry_node, Transition::new(true_id, fragment.entry, false)); + + lowerer.ir.simplify_all_exprs(); + lowerer.ir +} diff --git a/protocols/src/ir/mod.rs b/protocols/src/ir/mod.rs index 54c798a9..58ba93ca 100644 --- a/protocols/src/ir/mod.rs +++ b/protocols/src/ir/mod.rs @@ -1,8 +1,10 @@ +pub mod determinize; pub mod edge_contract; pub mod graph_interpreter; pub mod graphviz; pub mod lowering; pub mod proto_graph; +pub mod trace_lowering; // TODO: add a function to transform AST to IR // pub fn frontend( diff --git a/protocols/src/ir/proto_graph.rs b/protocols/src/ir/proto_graph.rs index 5706e227..d6484cb1 100644 --- a/protocols/src/ir/proto_graph.rs +++ b/protocols/src/ir/proto_graph.rs @@ -90,6 +90,7 @@ pub enum Op { } pub struct ProtoGraph { + // TODO: the ProtocolContext of a ProtoGraph is not really meaningful for a full concrete trace or a symbolic multi-protocol graph, so we may need to change this at some point pub proto_ctx: ProtocolContext, /// The entrypoint of the `Protocol` @@ -183,7 +184,36 @@ impl ProtoGraph { self.simplifier.simplify(&mut self.expr_ctx, expr) } - // TODO: add a verify simplifications helper + pub fn not_guard(&mut self, guard: ExprRef) -> ExprRef { + let expr = self.expr_ctx.not(guard); + self.simplifier.simplify(&mut self.expr_ctx, expr) + } + + pub fn simplify_all_exprs(&mut self) { + let (expr_ctx, simplifier) = (&mut self.expr_ctx, &mut self.simplifier); + + for (_, node) in self.nodes.iter_mut() { + for action in &mut node.actions { + action.guard = simplifier.simplify(expr_ctx, action.guard); + } + for transition in &mut node.transitions { + transition.guard = simplifier.simplify(expr_ctx, transition.guard); + } + } + + for (_, op) in self.ops.iter_mut() { + match op { + Op::Assign(_, rhs) => { + *rhs = simplifier.simplify(expr_ctx, *rhs); + } + Op::AssertEq(lhs, rhs) => { + *lhs = simplifier.simplify(expr_ctx, *lhs); + *rhs = simplifier.simplify(expr_ctx, *rhs); + } + Op::Fork | Op::InternalAssertFalse | Op::Done => {} + } + } + } /// add a new node to the IR pub fn n(&mut self, node: Node) -> NodeId { @@ -195,6 +225,13 @@ impl ProtoGraph { self.nodes.next_key() } + /// Return this graph with a different node map and entry point. + pub fn with_nodes(mut self, nodes: PrimaryMap, entry: NodeId) -> Self { + self.nodes = nodes; + self.entry = entry; + self + } + /// add a new op to the IR pub fn o(&mut self, op: Op) -> OpId { self.ops.push(op) diff --git a/protocols/src/ir/trace_lowering.rs b/protocols/src/ir/trace_lowering.rs new file mode 100644 index 00000000..8cb27fec --- /dev/null +++ b/protocols/src/ir/trace_lowering.rs @@ -0,0 +1,178 @@ +// Copyright 2026 Cornell University +// released under MIT License +// author: Nikil Shyamunder + +use baa::BitVecValue; +use patronus::expr::ExprRef; +use rustc_hash::FxHashMap; + +use crate::Value; +use crate::frontend::ast::Protocol; +use crate::frontend::symbol::SymbolTable; +use crate::ir::edge_contract::{append_action, contract_edges}; +use crate::ir::lowering::{LoweredFragmentInfo, Lowerer, TraceArgSubst}; +use crate::ir::proto_graph::{Action, NodeId, Op, ProtoGraph, Transition}; + +impl<'a> Lowerer<'a> { + /// Build the per-copy argument substitution and lower one transaction body. + fn lower_transaction( + &mut self, + ast: &Protocol, + values: &[Value], + keep_done: bool, + ) -> LoweredFragmentInfo { + assert_eq!( + ast.args.len(), + values.len(), + "argument count mismatch for protocol {}", + ast.name + ); + let mut subst = TraceArgSubst::default(); + for (arg, value) in ast.args.iter().zip(values) { + let bvv: BitVecValue = value + .clone() + .try_into() + .unwrap_or_else(|_| panic!("unsupported argument type for {}", ast.name)); + let lit = self.ir.expr_ctx.bv_lit(&bvv); + subst.insert(arg.symbol(), lit); + } + + // set the arg substitution to the current transaction's args + self.trace_arg_subst = subst; + self.lower_protocol_fragment(ast, keep_done) + } + + fn next_trace_graft_points(&self, fragment: &LoweredFragmentInfo) -> Vec<(NodeId, ExprRef)> { + let ir = &self.ir; + + // find all the forks in the IR that are within this lowered fragment (the most recent transaction we lowered). + let forks: Vec<(NodeId, ExprRef)> = fragment + .nodes + .iter() + .flat_map(|id| { + let node = &ir[*id]; + node.actions + .iter() + .filter(|action| matches!(ir[action.op], Op::Fork)) + .map(move |action| (*id, action.guard)) + }) + .collect(); + + // TODO: we should also graft onto done, but guarded by if the fork is never raised + // (some sort of internal state)? + if forks.is_empty() { + vec![(fragment.exit, self.ir.true_id())] + } else { + forks + } + } + + /// Merge a contracted entry node directly into a graft_points node using an unordered node merge. + fn graft_contracted_entry( + &mut self, + graft_points_node_id: NodeId, + entry_node_id: NodeId, + graft_guard: ExprRef, + ) { + let mut actions = self.ir[graft_points_node_id].actions.clone(); + let entry_actions = self.ir[entry_node_id].actions.clone(); + let mut internal_assert_guard = None; + + for action in entry_actions { + let guard = self.ir.and_guard(graft_guard, action.guard); + let guarded_action = action.with_guard(guard); + append_action( + &mut self.ir, + self.symbols, + &mut actions, + &mut internal_assert_guard, + guarded_action, + false, + ); + } + + if let Some(internal_assert_guard) = internal_assert_guard { + let internal_assert_op = self.ir.o(Op::InternalAssertFalse); + actions.push(Action::new(internal_assert_guard, internal_assert_op)); + } + + let mut transitions = self.ir[graft_points_node_id].transitions.clone(); + for transition in self.ir[entry_node_id].transitions.clone() { + let guard = self.ir.and_guard(graft_guard, transition.guard); + transitions.push(transition.with_guard(guard)); + } + + let graft_points_node = self.ir.node_mut(graft_points_node_id); + graft_points_node.actions = actions; + graft_points_node.transitions = transitions; + } + + /// Take the first trace of the remaining transactions, lower it, contract it, and then merge it into the IR by merging the entry node with each graft point of the previous transaction. Recurse with the remaining traces. + fn append_trace_transactions( + &mut self, + graft_points: Vec<(NodeId, ExprRef)>, + remaining: &[(String, Vec)], + protos_by_name: &FxHashMap<&str, &Protocol>, + ) { + let Some(((name, values), rest)) = remaining.split_first() else { + return; + }; + + if graft_points.is_empty() { + panic!( + "{} transaction(s) remain in the trace but the previous transaction \ + exposed no fork points to graft onto", + remaining.len() + ); + } + + let ast = *protos_by_name + .get(name.as_str()) + .unwrap_or_else(|| panic!("unknown protocol {name}")); + let keep_done = rest.is_empty(); + + let fragment = self.lower_transaction(ast, values, keep_done); + + // TODO: we're applying contract_edges to the entire IR, but technically this is a bit wasteful since it's going to iterate over all the nodes even though we only want to contract this component of the graph + contract_edges(&mut self.ir, self.symbols); + let next = self.next_trace_graft_points(&fragment); + + for (node, guard) in graft_points { + self.graft_contracted_entry(node, fragment.entry, guard); + } + + self.append_trace_transactions(next, rest, protos_by_name); + } +} + +/// Lower a whole trace of known transactions into a single joint `ProtoGraph`. +/// The first transaction becomes the graph entry and each later transaction is +/// grafted onto the previous transaction's fork graft_points. +pub fn lower_trace_to_ir( + trace: &[(String, Vec)], + protos_by_name: &FxHashMap<&str, &Protocol>, + symbols: &SymbolTable, +) -> ProtoGraph { + assert!(!trace.is_empty(), "cannot lower an empty trace"); + + let (first_name, first_values) = &trace[0]; + let first_ast = *protos_by_name + .get(first_name.as_str()) + .unwrap_or_else(|| panic!("unknown protocol {first_name}")); + + // set up the lowerer and lower the initial transaction + let mut lowerer = Lowerer::new(first_ast.ctx.clone(), symbols); + let first = lowerer.lower_transaction(first_ast, first_values, trace.len() == 1); + let entry_node = lowerer.ir.entry; + let true_id = lowerer.ir.true_id(); + lowerer + .ir + .push_transition(entry_node, Transition::new(true_id, first.entry, false)); + contract_edges(&mut lowerer.ir, symbols); + + // pass in the initial IR with the first transaction and its graft points, and append_trace_transactions will lower the rest of the trace from here. + let graft_points = lowerer.next_trace_graft_points(&first); + lowerer.append_trace_transactions(graft_points, &trace[1..], protos_by_name); + lowerer.ir.simplify_all_exprs(); + lowerer.ir +} diff --git a/protocols/src/scheduler.rs b/protocols/src/scheduler.rs index acbc3544..b264387c 100644 --- a/protocols/src/scheduler.rs +++ b/protocols/src/scheduler.rs @@ -5,13 +5,13 @@ // author: Francis Pham // author: Ernest Ng -use crate::Value; use crate::dut::PatronusSim; use crate::errors::{DiagnosticEmitter, ExecutionError, ExecutionResult}; use crate::frontend::ast::*; use crate::frontend::diagnostic::DiagnosticHandler; use crate::frontend::symbol::{SymbolId, SymbolTable}; -use crate::interpreter::{Evaluator, ThreadInputValue}; +use crate::interpreter::{Evaluator, Value}; +use crate::{PortId, Value as ArgValue}; use baa::{BitVecOps, BitVecValue}; use log::info; use rustc_hash::FxHashMap; @@ -19,10 +19,10 @@ use rustc_hash::FxHashMap; /// `NextStmtMap` allows us to interpret without using recursion /// (the interpreter can just look up what the next statement is using this map) pub type NextStmtMap = FxHashMap>; -type ArgMap<'a> = FxHashMap<&'a str, Value>; +type ArgMap<'a> = FxHashMap<&'a str, ArgValue>; /// An `Invocation` is a pair consisting of the `String` of the `Protocol` to instantiate and a `Vec` of arguments to the protocol -pub type Invocation = (String, Vec); +pub type Invocation = (String, Vec); /// A `ProtocolInfo` is a triple of the form /// `(Protocol, SymbolTable, NextStmtMap)`. @@ -421,7 +421,7 @@ impl<'a> Scheduler<'a> { let concrete_vals: Vec<(usize, &BitVecValue, Option)> = per_thread_vals .iter() .filter_map(|(&tx_idx, (val, stmt_id))| { - if let ThreadInputValue::Concrete(bvv) = val { + if let Value::Concrete(bvv) = val { Some((tx_idx, bvv, *stmt_id)) } else { None @@ -501,6 +501,18 @@ impl<'a> Scheduler<'a> { } } + pub fn waveform(&self) -> FxHashMap> { + self.evaluator.waveform.clone() + } + + pub fn port_name(&self, port: PortId) -> &str { + self.sim.port_name(port) + } + + pub fn port_width(&self, port: PortId) -> u32 { + self.sim.port_width(port) + } + /// Runs a single thread (indicated by its `thread_idx`) until the next step to synchronize on pub fn run_thread_until_next_step(&mut self, thread_idx: usize, forks_enabled: bool) { let next_transaction_option = self.next_transaction(self.next_tx_idx); diff --git a/protocols/src/tests/snapshots/protocols__frontend__serialize__tests__add_d1.snap b/protocols/src/tests/snapshots/protocols__frontend__serialize__tests__add_d1.snap index 1aaa930f..b9f80224 100644 --- a/protocols/src/tests/snapshots/protocols__frontend__serialize__tests__add_d1.snap +++ b/protocols/src/tests/snapshots/protocols__frontend__serialize__tests__add_d1.snap @@ -75,3 +75,18 @@ fn assign_after_observation(a: u32, b: u32, s: u32) { fork(); step(); } + +fn if_else(a1: u32, a2: u32) { + if 1 { + DUT.a := a1; + } else { + DUT.a := a2; + } + DUT.b := 0; + step(); + DUT.a := X; + DUT.b := X; + assert_eq(a1, DUT.s); + fork(); + step(); +} diff --git a/protocols/src/tests/snapshots/protocols__ir__graphviz__tests__ir_graphviz_add_d0.snap b/protocols/src/tests/snapshots/protocols__ir__graphviz__tests__ir_graphviz_add_d0.snap index b7b9a44a..2d38ed69 100644 --- a/protocols/src/tests/snapshots/protocols__ir__graphviz__tests__ir_graphviz_add_d0.snap +++ b/protocols/src/tests/snapshots/protocols__ir__graphviz__tests__ir_graphviz_add_d0.snap @@ -1,6 +1,5 @@ --- source: protocols/src/ir/graphviz.rs -assertion_line: 210 expression: content --- == pre-contract == @@ -11,11 +10,11 @@ digraph "add_combinational_illegal_observation_in_conditional" { entry_marker -> node0; node0 [label=""]; node0 -> node9 [label="1"]; - node9 [label="[1] DUT.a := ite(1, X, DUT.a)"]; + node9 [label="[1] DUT.a := X"]; node9 -> node8 [label="1"]; - node8 [label="[1] DUT.b := ite(1, X, DUT.b)"]; + node8 [label="[1] DUT.b := X"]; node8 -> node7 [label="1"]; - node7 [label="[1] DUT.a := ite(1, a, DUT.a)"]; + node7 [label="[1] DUT.a := a"]; node7 -> node6 [label="1"]; node6 [label=""]; node6 -> node4 [label="eq(DUT.s, 0)"]; @@ -26,14 +25,9 @@ digraph "add_combinational_illegal_observation_in_conditional" { node5 -> node3 [label="1"]; node3 [label=""]; node3 -> node2 [label="1"]; - node3 [label=""]; - node3 -> node2 [label="1"]; - node2 [label=""]; - node2 -> node1 [label="1 / step"]; node2 [label=""]; node2 -> node1 [label="1 / step"]; node1 [label="[1] done"]; - node1 [label="[1] done"]; } == post-contract == @@ -42,11 +36,10 @@ digraph "add_combinational_illegal_observation_in_conditional" { node [shape=box]; entry_marker [shape=plain,label="ENTRY"]; entry_marker -> node0; - node0 [label="[1] DUT.a := a\n[1] DUT.b := ite(1, X, DUT.b)"]; + node0 [label="[1] DUT.a := a\n[1] DUT.b := X"]; node0 -> node1 [label="eq(DUT.s, 0) / step"]; node0 -> node1 [label="not(eq(DUT.s, 0)) / step"]; node1 [label="[1] done"]; - node1 [label="[1] done"]; } == post-normalize == @@ -55,11 +48,10 @@ digraph "add_combinational_illegal_observation_in_conditional" { node [shape=box]; entry_marker [shape=plain,label="ENTRY"]; entry_marker -> node0; - node0 [label="[1] DUT.a := a\n[1] DUT.b := ite(1, X, DUT.b)"]; + node0 [label="[1] DUT.a := a\n[1] DUT.b := X"]; node0 -> node1 [label="eq(DUT.s, 0) / step"]; node0 -> node1 [label="not(eq(DUT.s, 0)) / step"]; node1 [label="[1] done\n[1] DUT.a := DUT.a\n[1] DUT.b := DUT.b"]; - node1 [label="[1] done\n[1] DUT.a := DUT.a\n[1] DUT.b := DUT.b"]; } == pre-contract == @@ -70,11 +62,11 @@ digraph "add_combinational_illegal_observation_in_assertion" { entry_marker -> node0; node0 [label=""]; node0 -> node6 [label="1"]; - node6 [label="[1] DUT.a := ite(1, X, DUT.a)"]; + node6 [label="[1] DUT.a := X"]; node6 -> node5 [label="1"]; - node5 [label="[1] DUT.b := ite(1, X, DUT.b)"]; + node5 [label="[1] DUT.b := X"]; node5 -> node4 [label="1"]; - node4 [label="[1] DUT.a := ite(1, a, DUT.a)"]; + node4 [label="[1] DUT.a := a"]; node4 -> node3 [label="1"]; node3 [label="[1] assert_eq(DUT.s, s)"]; node3 -> node2 [label="1"]; @@ -89,7 +81,7 @@ digraph "add_combinational_illegal_observation_in_assertion" { node [shape=box]; entry_marker [shape=plain,label="ENTRY"]; entry_marker -> node0; - node0 [label="[1] DUT.a := a\n[1] DUT.b := ite(1, X, DUT.b)\n[1] assert_eq(DUT.s, s)"]; + node0 [label="[1] DUT.a := a\n[1] DUT.b := X\n[1] assert_eq(DUT.s, s)"]; node0 -> node1 [label="1 / step"]; node1 [label="[1] done"]; } @@ -100,7 +92,7 @@ digraph "add_combinational_illegal_observation_in_assertion" { node [shape=box]; entry_marker [shape=plain,label="ENTRY"]; entry_marker -> node0; - node0 [label="[1] DUT.a := a\n[1] DUT.b := ite(1, X, DUT.b)\n[1] assert_eq(DUT.s, s)"]; + node0 [label="[1] DUT.a := a\n[1] DUT.b := X\n[1] assert_eq(DUT.s, s)"]; node0 -> node1 [label="1 / step"]; node1 [label="[1] done\n[1] DUT.a := DUT.a\n[1] DUT.b := DUT.b"]; } @@ -116,20 +108,15 @@ digraph "add_combinational_legal_observation_illegal_assignment" { node6 [label=""]; node6 -> node4 [label="eq(DUT.s, 0)"]; node6 -> node5 [label="not(eq(DUT.s, 0))"]; - node4 [label="[1] DUT.a := ite(1, a, DUT.a)"]; + node4 [label="[1] DUT.a := a"]; node4 -> node3 [label="1"]; node5 [label=""]; node5 -> node3 [label="1"]; node3 [label=""]; node3 -> node2 [label="1"]; - node3 [label=""]; - node3 -> node2 [label="1"]; - node2 [label=""]; - node2 -> node1 [label="1 / step"]; node2 [label=""]; node2 -> node1 [label="1 / step"]; node1 [label="[1] done"]; - node1 [label="[1] done"]; } == post-contract == @@ -138,11 +125,10 @@ digraph "add_combinational_legal_observation_illegal_assignment" { node [shape=box]; entry_marker [shape=plain,label="ENTRY"]; entry_marker -> node0; - node0 [label="[eq(DUT.s, 0)] DUT.a := ite(1, a, DUT.a)"]; + node0 [label="[eq(DUT.s, 0)] DUT.a := a"]; node0 -> node1 [label="eq(DUT.s, 0) / step"]; node0 -> node1 [label="not(eq(DUT.s, 0)) / step"]; node1 [label="[1] done"]; - node1 [label="[1] done"]; } == post-normalize == @@ -151,11 +137,10 @@ digraph "add_combinational_legal_observation_illegal_assignment" { node [shape=box]; entry_marker [shape=plain,label="ENTRY"]; entry_marker -> node0; - node0 [label="[eq(DUT.s, 0)] DUT.a := ite(1, a, DUT.a)\n[1] DUT.b := DUT.b"]; + node0 [label="[eq(DUT.s, 0)] DUT.a := a\n[1] DUT.b := DUT.b"]; node0 -> node1 [label="eq(DUT.s, 0) / step"]; node0 -> node1 [label="not(eq(DUT.s, 0)) / step"]; node1 [label="[1] done\n[1] DUT.a := DUT.a\n[1] DUT.b := DUT.b"]; - node1 [label="[1] done\n[1] DUT.a := DUT.a\n[1] DUT.b := DUT.b"]; } == pre-contract == @@ -166,9 +151,9 @@ digraph "add_combinational" { entry_marker -> node0; node0 [label=""]; node0 -> node5 [label="1"]; - node5 [label="[1] DUT.a := ite(1, a, DUT.a)"]; + node5 [label="[1] DUT.a := a"]; node5 -> node4 [label="1"]; - node4 [label="[1] DUT.b := ite(1, b, DUT.b)"]; + node4 [label="[1] DUT.b := b"]; node4 -> node3 [label="1"]; node3 [label="[1] assert_eq(s, DUT.s)"]; node3 -> node2 [label="1"]; @@ -183,7 +168,7 @@ digraph "add_combinational" { node [shape=box]; entry_marker [shape=plain,label="ENTRY"]; entry_marker -> node0; - node0 [label="[1] DUT.a := ite(1, a, DUT.a)\n[1] DUT.b := ite(1, b, DUT.b)\n[1] assert_eq(s, DUT.s)"]; + node0 [label="[1] DUT.a := a\n[1] DUT.b := b\n[1] assert_eq(s, DUT.s)"]; node0 -> node1 [label="1 / step"]; node1 [label="[1] done"]; } @@ -194,7 +179,7 @@ digraph "add_combinational" { node [shape=box]; entry_marker [shape=plain,label="ENTRY"]; entry_marker -> node0; - node0 [label="[1] DUT.a := ite(1, a, DUT.a)\n[1] DUT.b := ite(1, b, DUT.b)\n[1] assert_eq(s, DUT.s)"]; + node0 [label="[1] DUT.a := a\n[1] DUT.b := b\n[1] assert_eq(s, DUT.s)"]; node0 -> node1 [label="1 / step"]; node1 [label="[1] done\n[1] DUT.a := DUT.a\n[1] DUT.b := DUT.b"]; } diff --git a/protocols/src/tests/snapshots/protocols__ir__graphviz__tests__ir_graphviz_add_d1.snap b/protocols/src/tests/snapshots/protocols__ir__graphviz__tests__ir_graphviz_add_d1.snap index d195643e..6420055b 100644 --- a/protocols/src/tests/snapshots/protocols__ir__graphviz__tests__ir_graphviz_add_d1.snap +++ b/protocols/src/tests/snapshots/protocols__ir__graphviz__tests__ir_graphviz_add_d1.snap @@ -1,5 +1,6 @@ --- source: protocols/src/ir/graphviz.rs +assertion_line: 212 expression: content --- == pre-contract == @@ -10,15 +11,15 @@ digraph "add" { entry_marker -> node0; node0 [label=""]; node0 -> node9 [label="1"]; - node9 [label="[1] DUT.a := ite(1, a, DUT.a)"]; + node9 [label="[1] DUT.a := a"]; node9 -> node8 [label="1"]; - node8 [label="[1] DUT.b := ite(1, b, DUT.b)"]; + node8 [label="[1] DUT.b := b"]; node8 -> node7 [label="1"]; node7 [label=""]; node7 -> node6 [label="1 / step"]; - node6 [label="[1] DUT.a := ite(1, X, DUT.a)"]; + node6 [label="[1] DUT.a := X"]; node6 -> node5 [label="1"]; - node5 [label="[1] DUT.b := ite(1, X, DUT.b)"]; + node5 [label="[1] DUT.b := X"]; node5 -> node4 [label="1"]; node4 [label="[1] assert_eq(s, DUT.s)"]; node4 -> node3 [label="1"]; @@ -35,9 +36,9 @@ digraph "add" { node [shape=box]; entry_marker [shape=plain,label="ENTRY"]; entry_marker -> node0; - node0 [label="[1] DUT.a := ite(1, a, DUT.a)\n[1] DUT.b := ite(1, b, DUT.b)"]; + node0 [label="[1] DUT.a := a\n[1] DUT.b := b"]; node0 -> node6 [label="1 / step"]; - node6 [label="[1] DUT.a := ite(1, X, DUT.a)\n[1] DUT.b := ite(1, X, DUT.b)\n[1] assert_eq(s, DUT.s)\n[1] fork"]; + node6 [label="[1] DUT.a := X\n[1] DUT.b := X\n[1] assert_eq(s, DUT.s)\n[1] fork"]; node6 -> node1 [label="1 / step"]; node1 [label="[1] done"]; } @@ -48,9 +49,9 @@ digraph "add" { node [shape=box]; entry_marker [shape=plain,label="ENTRY"]; entry_marker -> node0; - node0 [label="[1] DUT.a := ite(1, a, DUT.a)\n[1] DUT.b := ite(1, b, DUT.b)"]; + node0 [label="[1] DUT.a := a\n[1] DUT.b := b"]; node0 -> node6 [label="1 / step"]; - node6 [label="[1] DUT.a := ite(1, X, DUT.a)\n[1] DUT.b := ite(1, X, DUT.b)\n[1] assert_eq(s, DUT.s)\n[1] fork"]; + node6 [label="[1] DUT.a := X\n[1] DUT.b := X\n[1] assert_eq(s, DUT.s)\n[1] fork"]; node6 -> node1 [label="1 / step"]; node1 [label="[1] done\n[1] DUT.a := DUT.a\n[1] DUT.b := DUT.b"]; } @@ -63,17 +64,17 @@ digraph "add_fork_early" { entry_marker -> node0; node0 [label=""]; node0 -> node9 [label="1"]; - node9 [label="[1] DUT.a := ite(1, a, DUT.a)"]; + node9 [label="[1] DUT.a := a"]; node9 -> node8 [label="1"]; - node8 [label="[1] DUT.b := ite(1, b, DUT.b)"]; + node8 [label="[1] DUT.b := b"]; node8 -> node7 [label="1"]; node7 [label=""]; node7 -> node6 [label="1 / step"]; node6 [label="[1] fork"]; node6 -> node5 [label="1"]; - node5 [label="[1] DUT.a := ite(1, X, DUT.a)"]; + node5 [label="[1] DUT.a := X"]; node5 -> node4 [label="1"]; - node4 [label="[1] DUT.b := ite(1, X, DUT.b)"]; + node4 [label="[1] DUT.b := X"]; node4 -> node3 [label="1"]; node3 [label="[1] assert_eq(s, DUT.s)"]; node3 -> node2 [label="1"]; @@ -88,9 +89,9 @@ digraph "add_fork_early" { node [shape=box]; entry_marker [shape=plain,label="ENTRY"]; entry_marker -> node0; - node0 [label="[1] DUT.a := ite(1, a, DUT.a)\n[1] DUT.b := ite(1, b, DUT.b)"]; + node0 [label="[1] DUT.a := a\n[1] DUT.b := b"]; node0 -> node6 [label="1 / step"]; - node6 [label="[1] fork\n[1] DUT.a := ite(1, X, DUT.a)\n[1] DUT.b := ite(1, X, DUT.b)\n[1] assert_eq(s, DUT.s)"]; + node6 [label="[1] fork\n[1] DUT.a := X\n[1] DUT.b := X\n[1] assert_eq(s, DUT.s)"]; node6 -> node1 [label="1 / step"]; node1 [label="[1] done"]; } @@ -101,9 +102,9 @@ digraph "add_fork_early" { node [shape=box]; entry_marker [shape=plain,label="ENTRY"]; entry_marker -> node0; - node0 [label="[1] DUT.a := ite(1, a, DUT.a)\n[1] DUT.b := ite(1, b, DUT.b)"]; + node0 [label="[1] DUT.a := a\n[1] DUT.b := b"]; node0 -> node6 [label="1 / step"]; - node6 [label="[1] fork\n[1] DUT.a := ite(1, X, DUT.a)\n[1] DUT.b := ite(1, X, DUT.b)\n[1] assert_eq(s, DUT.s)"]; + node6 [label="[1] fork\n[1] DUT.a := X\n[1] DUT.b := X\n[1] assert_eq(s, DUT.s)"]; node6 -> node1 [label="1 / step"]; node1 [label="[1] done\n[1] DUT.a := DUT.a\n[1] DUT.b := DUT.b"]; } @@ -116,15 +117,15 @@ digraph "add_incorrect" { entry_marker -> node0; node0 [label=""]; node0 -> node9 [label="1"]; - node9 [label="[1] DUT.a := ite(1, a, DUT.a)"]; + node9 [label="[1] DUT.a := a"]; node9 -> node8 [label="1"]; - node8 [label="[1] DUT.b := ite(1, b, DUT.b)"]; + node8 [label="[1] DUT.b := b"]; node8 -> node7 [label="1"]; node7 [label=""]; node7 -> node6 [label="1 / step"]; - node6 [label="[1] DUT.a := ite(1, a, DUT.a)"]; + node6 [label="[1] DUT.a := a"]; node6 -> node5 [label="1"]; - node5 [label="[1] DUT.b := ite(1, b, DUT.b)"]; + node5 [label="[1] DUT.b := b"]; node5 -> node4 [label="1"]; node4 [label="[1] assert_eq(s, DUT.s)"]; node4 -> node3 [label="1"]; @@ -141,9 +142,9 @@ digraph "add_incorrect" { node [shape=box]; entry_marker [shape=plain,label="ENTRY"]; entry_marker -> node0; - node0 [label="[1] DUT.a := ite(1, a, DUT.a)\n[1] DUT.b := ite(1, b, DUT.b)"]; + node0 [label="[1] DUT.a := a\n[1] DUT.b := b"]; node0 -> node6 [label="1 / step"]; - node6 [label="[1] DUT.a := ite(1, a, DUT.a)\n[1] DUT.b := ite(1, b, DUT.b)\n[1] assert_eq(s, DUT.s)\n[1] fork"]; + node6 [label="[1] DUT.a := a\n[1] DUT.b := b\n[1] assert_eq(s, DUT.s)\n[1] fork"]; node6 -> node1 [label="1 / step"]; node1 [label="[1] done"]; } @@ -154,9 +155,9 @@ digraph "add_incorrect" { node [shape=box]; entry_marker [shape=plain,label="ENTRY"]; entry_marker -> node0; - node0 [label="[1] DUT.a := ite(1, a, DUT.a)\n[1] DUT.b := ite(1, b, DUT.b)"]; + node0 [label="[1] DUT.a := a\n[1] DUT.b := b"]; node0 -> node6 [label="1 / step"]; - node6 [label="[1] DUT.a := ite(1, a, DUT.a)\n[1] DUT.b := ite(1, b, DUT.b)\n[1] assert_eq(s, DUT.s)\n[1] fork"]; + node6 [label="[1] DUT.a := a\n[1] DUT.b := b\n[1] assert_eq(s, DUT.s)\n[1] fork"]; node6 -> node1 [label="1 / step"]; node1 [label="[1] done\n[1] DUT.a := DUT.a\n[1] DUT.b := DUT.b"]; } @@ -169,9 +170,9 @@ digraph "add_incorrect_implicit" { entry_marker -> node0; node0 [label=""]; node0 -> node7 [label="1"]; - node7 [label="[1] DUT.a := ite(1, a, DUT.a)"]; + node7 [label="[1] DUT.a := a"]; node7 -> node6 [label="1"]; - node6 [label="[1] DUT.b := ite(1, b, DUT.b)"]; + node6 [label="[1] DUT.b := b"]; node6 -> node5 [label="1"]; node5 [label=""]; node5 -> node4 [label="1 / step"]; @@ -190,7 +191,7 @@ digraph "add_incorrect_implicit" { node [shape=box]; entry_marker [shape=plain,label="ENTRY"]; entry_marker -> node0; - node0 [label="[1] DUT.a := ite(1, a, DUT.a)\n[1] DUT.b := ite(1, b, DUT.b)"]; + node0 [label="[1] DUT.a := a\n[1] DUT.b := b"]; node0 -> node4 [label="1 / step"]; node4 [label="[1] assert_eq(s, DUT.s)\n[1] fork"]; node4 -> node1 [label="1 / step"]; @@ -203,7 +204,7 @@ digraph "add_incorrect_implicit" { node [shape=box]; entry_marker [shape=plain,label="ENTRY"]; entry_marker -> node0; - node0 [label="[1] DUT.a := ite(1, a, DUT.a)\n[1] DUT.b := ite(1, b, DUT.b)"]; + node0 [label="[1] DUT.a := a\n[1] DUT.b := b"]; node0 -> node4 [label="1 / step"]; node4 [label="[1] assert_eq(s, DUT.s)\n[1] fork\n[1] DUT.a := DUT.a\n[1] DUT.b := DUT.b"]; node4 -> node1 [label="1 / step"]; @@ -224,9 +225,9 @@ digraph "wait_and_add" { node8 -> node7 [label="1"]; node7 [label=""]; node7 -> node6 [label="1 / step"]; - node6 [label="[1] DUT.a := ite(1, a, DUT.a)"]; + node6 [label="[1] DUT.a := a"]; node6 -> node5 [label="1"]; - node5 [label="[1] DUT.b := ite(1, b, DUT.b)"]; + node5 [label="[1] DUT.b := b"]; node5 -> node4 [label="1"]; node4 [label=""]; node4 -> node3 [label="1 / step"]; @@ -247,7 +248,7 @@ digraph "wait_and_add" { node0 -> node8 [label="1 / step"]; node8 [label="[1] fork"]; node8 -> node6 [label="1 / step"]; - node6 [label="[1] DUT.a := ite(1, a, DUT.a)\n[1] DUT.b := ite(1, b, DUT.b)"]; + node6 [label="[1] DUT.a := a\n[1] DUT.b := b"]; node6 -> node3 [label="1 / step"]; node3 [label="[1] assert_eq(s, DUT.s)"]; node3 -> node1 [label="1 / step"]; @@ -264,7 +265,7 @@ digraph "wait_and_add" { node0 -> node8 [label="1 / step"]; node8 [label="[1] fork\n[1] DUT.a := DUT.a\n[1] DUT.b := DUT.b"]; node8 -> node6 [label="1 / step"]; - node6 [label="[1] DUT.a := ite(1, a, DUT.a)\n[1] DUT.b := ite(1, b, DUT.b)"]; + node6 [label="[1] DUT.a := a\n[1] DUT.b := b"]; node6 -> node3 [label="1 / step"]; node3 [label="[1] assert_eq(s, DUT.s)\n[1] DUT.a := DUT.a\n[1] DUT.b := DUT.b"]; node3 -> node1 [label="1 / step"]; @@ -279,48 +280,31 @@ digraph "assign_after_observation" { entry_marker -> node0; node0 [label=""]; node0 -> node13 [label="1"]; - node13 [label="[1] DUT.a := ite(1, a, DUT.a)"]; + node13 [label="[1] DUT.a := a"]; node13 -> node12 [label="1"]; node12 [label=""]; node12 -> node10 [label="eq(DUT.a, 2)"]; node12 -> node11 [label="not(eq(DUT.a, 2))"]; - node10 [label="[1] DUT.a := ite(1, 0, DUT.a)"]; + node10 [label="[1] DUT.a := 0"]; node10 -> node9 [label="1"]; node11 [label=""]; node11 -> node9 [label="1"]; node9 [label=""]; node9 -> node8 [label="1"]; - node9 [label=""]; - node9 -> node8 [label="1"]; - node8 [label="[1] DUT.b := ite(1, b, DUT.b)"]; + node8 [label="[1] DUT.b := b"]; node8 -> node7 [label="1"]; - node8 [label="[1] DUT.b := ite(1, b, DUT.b)"]; - node8 -> node7 [label="1"]; - node7 [label=""]; - node7 -> node6 [label="1 / step"]; node7 [label=""]; node7 -> node6 [label="1 / step"]; - node6 [label="[1] DUT.a := ite(1, X, DUT.a)"]; - node6 -> node5 [label="1"]; - node6 [label="[1] DUT.a := ite(1, X, DUT.a)"]; + node6 [label="[1] DUT.a := X"]; node6 -> node5 [label="1"]; - node5 [label="[1] DUT.b := ite(1, X, DUT.b)"]; - node5 -> node4 [label="1"]; - node5 [label="[1] DUT.b := ite(1, X, DUT.b)"]; + node5 [label="[1] DUT.b := X"]; node5 -> node4 [label="1"]; node4 [label="[1] assert_eq(s, DUT.s)"]; node4 -> node3 [label="1"]; - node4 [label="[1] assert_eq(s, DUT.s)"]; - node4 -> node3 [label="1"]; - node3 [label="[1] fork"]; - node3 -> node2 [label="1"]; node3 [label="[1] fork"]; node3 -> node2 [label="1"]; node2 [label=""]; node2 -> node1 [label="1 / step"]; - node2 [label=""]; - node2 -> node1 [label="1 / step"]; - node1 [label="[1] done"]; node1 [label="[1] done"]; } @@ -333,12 +317,9 @@ digraph "assign_after_observation" { node0 [label="[1] DUT.a := ite(eq(DUT.a, 2), 0, a)\n[1] DUT.b := ite(eq(DUT.a, 2), b, ite(not(eq(DUT.a, 2)), b, DUT.b))"]; node0 -> node6 [label="eq(DUT.a, 2) / step"]; node0 -> node6 [label="not(eq(DUT.a, 2)) / step"]; - node6 [label="[1] DUT.a := ite(1, X, DUT.a)\n[1] DUT.b := ite(1, X, DUT.b)\n[1] assert_eq(s, DUT.s)\n[1] fork"]; - node6 -> node1 [label="1 / step"]; - node6 [label="[1] DUT.a := ite(1, X, DUT.a)\n[1] DUT.b := ite(1, X, DUT.b)\n[1] assert_eq(s, DUT.s)\n[1] fork"]; + node6 [label="[1] DUT.a := X\n[1] DUT.b := X\n[1] assert_eq(s, DUT.s)\n[1] fork"]; node6 -> node1 [label="1 / step"]; node1 [label="[1] done"]; - node1 [label="[1] done"]; } == post-normalize == @@ -350,10 +331,64 @@ digraph "assign_after_observation" { node0 [label="[1] DUT.a := ite(eq(DUT.a, 2), 0, a)\n[1] DUT.b := ite(eq(DUT.a, 2), b, ite(not(eq(DUT.a, 2)), b, DUT.b))"]; node0 -> node6 [label="eq(DUT.a, 2) / step"]; node0 -> node6 [label="not(eq(DUT.a, 2)) / step"]; - node6 [label="[1] DUT.a := ite(1, X, DUT.a)\n[1] DUT.b := ite(1, X, DUT.b)\n[1] assert_eq(s, DUT.s)\n[1] fork"]; - node6 -> node1 [label="1 / step"]; - node6 [label="[1] DUT.a := ite(1, X, DUT.a)\n[1] DUT.b := ite(1, X, DUT.b)\n[1] assert_eq(s, DUT.s)\n[1] fork"]; + node6 [label="[1] DUT.a := X\n[1] DUT.b := X\n[1] assert_eq(s, DUT.s)\n[1] fork"]; node6 -> node1 [label="1 / step"]; node1 [label="[1] done\n[1] DUT.a := DUT.a\n[1] DUT.b := DUT.b"]; +} + +== pre-contract == +digraph "if_else" { + rankdir=LR; + node [shape=box]; + entry_marker [shape=plain,label="ENTRY"]; + entry_marker -> node0; + node0 [label=""]; + node0 -> node12 [label="1"]; + node12 [label=""]; + node12 -> node10 [label="1"]; + node10 [label="[1] DUT.a := a1"]; + node10 -> node9 [label="1"]; + node9 [label=""]; + node9 -> node8 [label="1"]; + node8 [label="[1] DUT.b := 0"]; + node8 -> node7 [label="1"]; + node7 [label=""]; + node7 -> node6 [label="1 / step"]; + node6 [label="[1] DUT.a := X"]; + node6 -> node5 [label="1"]; + node5 [label="[1] DUT.b := X"]; + node5 -> node4 [label="1"]; + node4 [label="[1] assert_eq(a1, DUT.s)"]; + node4 -> node3 [label="1"]; + node3 [label="[1] fork"]; + node3 -> node2 [label="1"]; + node2 [label=""]; + node2 -> node1 [label="1 / step"]; + node1 [label="[1] done"]; +} + +== post-contract == +digraph "if_else" { + rankdir=LR; + node [shape=box]; + entry_marker [shape=plain,label="ENTRY"]; + entry_marker -> node0; + node0 [label="[1] DUT.a := a1\n[1] DUT.b := 0"]; + node0 -> node6 [label="1 / step"]; + node6 [label="[1] DUT.a := X\n[1] DUT.b := X\n[1] assert_eq(a1, DUT.s)\n[1] fork"]; + node6 -> node1 [label="1 / step"]; + node1 [label="[1] done"]; +} + +== post-normalize == +digraph "if_else" { + rankdir=LR; + node [shape=box]; + entry_marker [shape=plain,label="ENTRY"]; + entry_marker -> node0; + node0 [label="[1] DUT.a := a1\n[1] DUT.b := 0"]; + node0 -> node6 [label="1 / step"]; + node6 [label="[1] DUT.a := X\n[1] DUT.b := X\n[1] assert_eq(a1, DUT.s)\n[1] fork"]; + node6 -> node1 [label="1 / step"]; node1 [label="[1] done\n[1] DUT.a := DUT.a\n[1] DUT.b := DUT.b"]; } diff --git a/protocols/src/tests/snapshots/protocols__ir__graphviz__tests__ir_graphviz_axis_truncated_include_idle_send_data.snap b/protocols/src/tests/snapshots/protocols__ir__graphviz__tests__ir_graphviz_axis_truncated_include_idle_send_data.snap index 645e4f29..1b747a2e 100644 --- a/protocols/src/tests/snapshots/protocols__ir__graphviz__tests__ir_graphviz_axis_truncated_include_idle_send_data.snap +++ b/protocols/src/tests/snapshots/protocols__ir__graphviz__tests__ir_graphviz_axis_truncated_include_idle_send_data.snap @@ -1,6 +1,6 @@ --- source: protocols/src/ir/graphviz.rs -assertion_line: 210 +assertion_line: 212 expression: content --- == pre-contract == @@ -11,13 +11,13 @@ digraph "send_data" { entry_marker -> node0; node0 [label=""]; node0 -> node7 [label="1"]; - node7 [label="[1] D.m_axis_tdata := ite(1, data, D.m_axis_tdata)"]; + node7 [label="[1] D.m_axis_tdata := data"]; node7 -> node6 [label="1"]; - node6 [label="[1] D.m_axis_tvalid := ite(1, 1, D.m_axis_tvalid)"]; + node6 [label="[1] D.m_axis_tvalid := 1"]; node6 -> node4 [label="1"]; node4 [label=""]; - node4 -> node5 [label="not(eq(D.m_axis_tready, 1))"]; - node4 -> node3 [label="not(not(eq(D.m_axis_tready, 1)))"]; + node4 -> node5 [label="not(D.m_axis_tready)"]; + node4 -> node3 [label="D.m_axis_tready"]; node5 [label=""]; node5 -> node4 [label="1 / step"]; node3 [label=""]; @@ -33,7 +33,7 @@ digraph "send_data" { node [shape=box]; entry_marker [shape=plain,label="ENTRY"]; entry_marker -> node0; - node0 [label="[1] D.m_axis_tdata := ite(1, data, D.m_axis_tdata)\n[1] D.m_axis_tvalid := ite(1, 1, D.m_axis_tvalid)"]; + node0 [label="[1] D.m_axis_tdata := data\n[1] D.m_axis_tvalid := 1"]; node0 -> node1 [label="D.m_axis_tready / step"]; node0 -> node4 [label="not(D.m_axis_tready) / step"]; node1 [label="[1] done"]; @@ -48,7 +48,7 @@ digraph "send_data" { node [shape=box]; entry_marker [shape=plain,label="ENTRY"]; entry_marker -> node0; - node0 [label="[1] D.m_axis_tdata := ite(1, data, D.m_axis_tdata)\n[1] D.m_axis_tvalid := ite(1, 1, D.m_axis_tvalid)"]; + node0 [label="[1] D.m_axis_tdata := data\n[1] D.m_axis_tvalid := 1"]; node0 -> node1 [label="D.m_axis_tready / step"]; node0 -> node4 [label="not(D.m_axis_tready) / step"]; node1 [label="[1] done\n[1] D.m_axis_tvalid := D.m_axis_tvalid\n[1] D.m_axis_tdata := D.m_axis_tdata"]; @@ -65,7 +65,7 @@ digraph "idle" { entry_marker -> node0; node0 [label=""]; node0 -> node3 [label="1"]; - node3 [label="[1] D.m_axis_tvalid := ite(1, 0, D.m_axis_tvalid)"]; + node3 [label="[1] D.m_axis_tvalid := 0"]; node3 -> node2 [label="1"]; node2 [label=""]; node2 -> node1 [label="1 / step"]; @@ -78,7 +78,7 @@ digraph "idle" { node [shape=box]; entry_marker [shape=plain,label="ENTRY"]; entry_marker -> node0; - node0 [label="[1] D.m_axis_tvalid := ite(1, 0, D.m_axis_tvalid)"]; + node0 [label="[1] D.m_axis_tvalid := 0"]; node0 -> node1 [label="1 / step"]; node1 [label="[1] done"]; } @@ -89,7 +89,7 @@ digraph "idle" { node [shape=box]; entry_marker [shape=plain,label="ENTRY"]; entry_marker -> node0; - node0 [label="[1] D.m_axis_tvalid := ite(1, 0, D.m_axis_tvalid)\n[1] D.m_axis_tdata := D.m_axis_tdata"]; + node0 [label="[1] D.m_axis_tvalid := 0\n[1] D.m_axis_tdata := D.m_axis_tdata"]; node0 -> node1 [label="1 / step"]; node1 [label="[1] done\n[1] D.m_axis_tvalid := D.m_axis_tvalid\n[1] D.m_axis_tdata := D.m_axis_tdata"]; } diff --git a/protocols/src/tests/snapshots/protocols__ir__graphviz__tests__ir_graphviz_bounded_ready_valid.snap b/protocols/src/tests/snapshots/protocols__ir__graphviz__tests__ir_graphviz_bounded_ready_valid.snap index b77e4a7e..19e366d3 100644 --- a/protocols/src/tests/snapshots/protocols__ir__graphviz__tests__ir_graphviz_bounded_ready_valid.snap +++ b/protocols/src/tests/snapshots/protocols__ir__graphviz__tests__ir_graphviz_bounded_ready_valid.snap @@ -1,6 +1,6 @@ --- source: protocols/src/ir/graphviz.rs -assertion_line: 210 +assertion_line: 212 expression: content --- == pre-contract == @@ -11,20 +11,20 @@ digraph "send_data" { entry_marker -> node0; node0 [label=""]; node0 -> node13 [label="1"]; - node13 [label="[1] D.data := ite(1, data, D.data)"]; + node13 [label="[1] D.data := data"]; node13 -> node12 [label="1"]; - node12 [label="[1] D.valid := ite(1, 1, D.valid)"]; + node12 [label="[1] D.valid := 1"]; node12 -> node11 [label="1"]; node11 [label=""]; - node11 -> node9 [label="not(eq(D.ready, 1))"]; - node11 -> node10 [label="not(not(eq(D.ready, 1)))"]; + node11 -> node9 [label="not(D.ready)"]; + node11 -> node10 [label="D.ready"]; node9 [label=""]; node9 -> node8 [label="1 / step"]; node10 [label=""]; node10 -> node3 [label="1"]; node8 [label=""]; - node8 -> node6 [label="not(eq(D.ready, 1))"]; - node8 -> node7 [label="not(not(eq(D.ready, 1)))"]; + node8 -> node6 [label="not(D.ready)"]; + node8 -> node7 [label="D.ready"]; node3 [label=""]; node3 -> node2 [label="1"]; node6 [label=""]; @@ -38,8 +38,6 @@ digraph "send_data" { node4 [label=""]; node4 -> node3 [label="1"]; node1 [label="[1] done"]; - node4 [label=""]; - node4 -> node3 [label="1"]; } == post-contract == @@ -48,7 +46,7 @@ digraph "send_data" { node [shape=box]; entry_marker [shape=plain,label="ENTRY"]; entry_marker -> node0; - node0 [label="[1] D.data := ite(1, data, D.data)\n[1] D.valid := ite(1, 1, D.valid)"]; + node0 [label="[1] D.data := data\n[1] D.valid := 1"]; node0 -> node1 [label="D.ready / step"]; node0 -> node8 [label="not(D.ready) / step"]; node1 [label="[1] done"]; @@ -65,7 +63,7 @@ digraph "send_data" { node [shape=box]; entry_marker [shape=plain,label="ENTRY"]; entry_marker -> node0; - node0 [label="[1] D.data := ite(1, data, D.data)\n[1] D.valid := ite(1, 1, D.valid)"]; + node0 [label="[1] D.data := data\n[1] D.valid := 1"]; node0 -> node1 [label="D.ready / step"]; node0 -> node8 [label="not(D.ready) / step"]; node1 [label="[1] done\n[1] D.valid := D.valid\n[1] D.data := D.data"]; diff --git a/protocols/src/tests/snapshots/protocols__ir__graphviz__tests__ir_graphviz_counter.snap b/protocols/src/tests/snapshots/protocols__ir__graphviz__tests__ir_graphviz_counter.snap index a8cd6273..aa174eba 100644 --- a/protocols/src/tests/snapshots/protocols__ir__graphviz__tests__ir_graphviz_counter.snap +++ b/protocols/src/tests/snapshots/protocols__ir__graphviz__tests__ir_graphviz_counter.snap @@ -1,6 +1,6 @@ --- source: protocols/src/ir/graphviz.rs -assertion_line: 210 +assertion_line: 212 expression: content --- == pre-contract == @@ -11,11 +11,11 @@ digraph "count_up" { entry_marker -> node0; node0 [label=""]; node0 -> node9 [label="1"]; - node9 [label="[1] dut.a := ite(1, a, dut.a)"]; + node9 [label="[1] dut.a := a"]; node9 -> node7 [label="1"]; node7 [label=""]; node7 -> node8 [label="not(eq(dut.s, dut.a))"]; - node7 -> node6 [label="not(not(eq(dut.s, dut.a)))"]; + node7 -> node6 [label="eq(dut.s, dut.a)"]; node8 [label=""]; node8 -> node7 [label="1 / step"]; node6 [label=""]; @@ -37,7 +37,7 @@ digraph "count_up" { node [shape=box]; entry_marker [shape=plain,label="ENTRY"]; entry_marker -> node0; - node0 [label="[1] dut.a := ite(1, a, dut.a)"]; + node0 [label="[1] dut.a := a"]; node0 -> node4 [label="eq(dut.s, dut.a) / step"]; node0 -> node7 [label="not(eq(dut.s, dut.a)) / step"]; node4 [label="[1] assert_eq(dut.s, 0)\n[1] fork"]; @@ -54,7 +54,7 @@ digraph "count_up" { node [shape=box]; entry_marker [shape=plain,label="ENTRY"]; entry_marker -> node0; - node0 [label="[1] dut.a := ite(1, a, dut.a)"]; + node0 [label="[1] dut.a := a"]; node0 -> node4 [label="eq(dut.s, dut.a) / step"]; node0 -> node7 [label="not(eq(dut.s, dut.a)) / step"]; node4 [label="[1] assert_eq(dut.s, 0)\n[1] fork\n[1] dut.a := dut.a"]; @@ -73,11 +73,11 @@ digraph "count_up_extra_assertion" { entry_marker -> node0; node0 [label=""]; node0 -> node10 [label="1"]; - node10 [label="[1] dut.a := ite(1, a, dut.a)"]; + node10 [label="[1] dut.a := a"]; node10 -> node8 [label="1"]; node8 [label=""]; node8 -> node9 [label="not(eq(dut.s, dut.a))"]; - node8 -> node7 [label="not(not(eq(dut.s, dut.a)))"]; + node8 -> node7 [label="eq(dut.s, dut.a)"]; node9 [label=""]; node9 -> node8 [label="1 / step"]; node7 [label=""]; @@ -101,7 +101,7 @@ digraph "count_up_extra_assertion" { node [shape=box]; entry_marker [shape=plain,label="ENTRY"]; entry_marker -> node0; - node0 [label="[1] dut.a := ite(1, a, dut.a)\n[eq(dut.s, dut.a)] assert_eq(dut.s, a)"]; + node0 [label="[1] dut.a := a\n[eq(dut.s, dut.a)] assert_eq(dut.s, a)"]; node0 -> node4 [label="eq(dut.s, dut.a) / step"]; node0 -> node8 [label="not(eq(dut.s, dut.a)) / step"]; node4 [label="[1] assert_eq(dut.s, 0)\n[1] fork"]; @@ -118,7 +118,7 @@ digraph "count_up_extra_assertion" { node [shape=box]; entry_marker [shape=plain,label="ENTRY"]; entry_marker -> node0; - node0 [label="[1] dut.a := ite(1, a, dut.a)\n[eq(dut.s, dut.a)] assert_eq(dut.s, a)"]; + node0 [label="[1] dut.a := a\n[eq(dut.s, dut.a)] assert_eq(dut.s, a)"]; node0 -> node4 [label="eq(dut.s, dut.a) / step"]; node0 -> node8 [label="not(eq(dut.s, dut.a)) / step"]; node4 [label="[1] assert_eq(dut.s, 0)\n[1] fork\n[1] dut.a := dut.a"]; diff --git a/runt/graph_interp/runt.toml b/runt/graph_interp/runt.toml index 5287cb99..45563474 100644 --- a/runt/graph_interp/runt.toml +++ b/runt/graph_interp/runt.toml @@ -7,7 +7,7 @@ paths = [ ] expect_dir = "../../examples/picorv32/expects" expect_name = "unsigned_mul.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions examples/picorv32/unsigned_mul.tx --verilog examples/picorv32/picorv32.v --protocol examples/picorv32/pcpi_mul.prot --module picorv32_pcpi_mul 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions examples/picorv32/unsigned_mul.tx --verilog examples/picorv32/picorv32.v --protocol examples/picorv32/pcpi_mul.prot --module picorv32_pcpi_mul 2>/dev/null" [[tests]] name = "graph_interp.examples_picorv32_unsigned_mul.unsigned_mul_graph_interp.contract_edges" @@ -16,7 +16,16 @@ paths = [ ] expect_dir = "../../examples/picorv32/expects" expect_name = "unsigned_mul.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions examples/picorv32/unsigned_mul.tx --verilog examples/picorv32/picorv32.v --protocol examples/picorv32/pcpi_mul.prot --module picorv32_pcpi_mul --contract-edges 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions examples/picorv32/unsigned_mul.tx --verilog examples/picorv32/picorv32.v --protocol examples/picorv32/pcpi_mul.prot --module picorv32_pcpi_mul --contract-edges 2>/dev/null" + +[[tests]] +name = "graph_interp.examples_picorv32_unsigned_mul.unsigned_mul_graph_interp.respect_forks" +paths = [ + "../../examples/picorv32/unsigned_mul.tx", +] +expect_dir = "../../examples/picorv32/expects" +expect_name = "unsigned_mul.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions examples/picorv32/unsigned_mul.tx --verilog examples/picorv32/picorv32.v --protocol examples/picorv32/pcpi_mul.prot --module picorv32_pcpi_mul --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.examples_serv_serv_regfile.serv_regfile_graph_interp" @@ -25,7 +34,7 @@ paths = [ ] expect_dir = "../../examples/serv/expects" expect_name = "serv_regfile.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions examples/serv/serv_regfile.tx --verilog examples/serv/rtl/serv_regfile.v --protocol examples/serv/serv_regfile.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions examples/serv/serv_regfile.tx --verilog examples/serv/rtl/serv_regfile.v --protocol examples/serv/serv_regfile.prot 2>/dev/null" [[tests]] name = "graph_interp.examples_serv_serv_regfile.serv_regfile_graph_interp.contract_edges" @@ -34,7 +43,16 @@ paths = [ ] expect_dir = "../../examples/serv/expects" expect_name = "serv_regfile.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions examples/serv/serv_regfile.tx --verilog examples/serv/rtl/serv_regfile.v --protocol examples/serv/serv_regfile.prot --contract-edges 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions examples/serv/serv_regfile.tx --verilog examples/serv/rtl/serv_regfile.v --protocol examples/serv/serv_regfile.prot --contract-edges 2>/dev/null" + +[[tests]] +name = "graph_interp.examples_serv_serv_regfile.serv_regfile_graph_interp.respect_forks" +paths = [ + "../../examples/serv/serv_regfile.tx", +] +expect_dir = "../../examples/serv/expects" +expect_name = "serv_regfile.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions examples/serv/serv_regfile.tx --verilog examples/serv/rtl/serv_regfile.v --protocol examples/serv/serv_regfile.prot --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.examples_tinyaes128_aes128.aes128_graph_interp" @@ -43,7 +61,7 @@ paths = [ ] expect_dir = "../../examples/tinyaes128/expects" expect_name = "aes128.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions examples/tinyaes128/aes128.tx --verilog examples/tinyaes128/aes_128.v --protocol examples/tinyaes128/aes128.prot --module aes_128 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions examples/tinyaes128/aes128.tx --verilog examples/tinyaes128/aes_128.v --protocol examples/tinyaes128/aes128.prot --module aes_128 2>/dev/null" [[tests]] name = "graph_interp.examples_tinyaes128_aes128.aes128_graph_interp.contract_edges" @@ -52,7 +70,16 @@ paths = [ ] expect_dir = "../../examples/tinyaes128/expects" expect_name = "aes128.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions examples/tinyaes128/aes128.tx --verilog examples/tinyaes128/aes_128.v --protocol examples/tinyaes128/aes128.prot --module aes_128 --contract-edges 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions examples/tinyaes128/aes128.tx --verilog examples/tinyaes128/aes_128.v --protocol examples/tinyaes128/aes128.prot --module aes_128 --contract-edges 2>/dev/null" + +[[tests]] +name = "graph_interp.examples_tinyaes128_aes128.aes128_graph_interp.respect_forks" +paths = [ + "../../examples/tinyaes128/aes128.tx", +] +expect_dir = "../../examples/tinyaes128/expects" +expect_name = "aes128.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions examples/tinyaes128/aes128.tx --verilog examples/tinyaes128/aes_128.v --protocol examples/tinyaes128/aes128.prot --module aes_128 --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_adders_adder_d0_add_combinational.add_combinational_graph_interp" @@ -61,7 +88,7 @@ paths = [ ] expect_dir = "../../tests/adders/adder_d0/expects" expect_name = "add_combinational.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/adders/adder_d0/add_combinational.tx --verilog tests/adders/adder_d0/add_d0.v --protocol tests/adders/adder_d0/add_d0.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/adders/adder_d0/add_combinational.tx --verilog tests/adders/adder_d0/add_d0.v --protocol tests/adders/adder_d0/add_d0.prot 2>/dev/null" [[tests]] name = "graph_interp.tests_adders_adder_d0_add_combinational.add_combinational_graph_interp.contract_edges" @@ -70,7 +97,43 @@ paths = [ ] expect_dir = "../../tests/adders/adder_d0/expects" expect_name = "add_combinational.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/adders/adder_d0/add_combinational.tx --verilog tests/adders/adder_d0/add_d0.v --protocol tests/adders/adder_d0/add_d0.prot --contract-edges 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/adders/adder_d0/add_combinational.tx --verilog tests/adders/adder_d0/add_d0.v --protocol tests/adders/adder_d0/add_d0.prot --contract-edges 2>/dev/null" + +[[tests]] +name = "graph_interp.tests_adders_adder_d0_add_combinational.add_combinational_graph_interp.respect_forks" +paths = [ + "../../tests/adders/adder_d0/add_combinational.tx", +] +expect_dir = "../../tests/adders/adder_d0/expects" +expect_name = "add_combinational.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/adders/adder_d0/add_combinational.tx --verilog tests/adders/adder_d0/add_d0.v --protocol tests/adders/adder_d0/add_d0.prot --respect-forks --determinize 2>/dev/null" + +[[tests]] +name = "graph_interp.tests_adders_adder_d1_add_multitrace_successful.add_multitrace_successful_graph_interp" +paths = [ + "../../tests/adders/adder_d1/add_multitrace_successful.tx", +] +expect_dir = "../../tests/adders/adder_d1/expects" +expect_name = "add_multitrace_successful.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/adders/adder_d1/add_multitrace_successful.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot 2>/dev/null" + +[[tests]] +name = "graph_interp.tests_adders_adder_d1_add_multitrace_successful.add_multitrace_successful_graph_interp.contract_edges" +paths = [ + "../../tests/adders/adder_d1/add_multitrace_successful.tx", +] +expect_dir = "../../tests/adders/adder_d1/expects" +expect_name = "add_multitrace_successful.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/adders/adder_d1/add_multitrace_successful.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot --contract-edges 2>/dev/null" + +[[tests]] +name = "graph_interp.tests_adders_adder_d1_add_multitrace_successful.add_multitrace_successful_graph_interp.respect_forks" +paths = [ + "../../tests/adders/adder_d1/add_multitrace_successful.tx", +] +expect_dir = "../../tests/adders/adder_d1/expects" +expect_name = "add_multitrace_successful.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/adders/adder_d1/add_multitrace_successful.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_adders_adder_d1_both_threads_pass.both_threads_pass_graph_interp" @@ -79,7 +142,7 @@ paths = [ ] expect_dir = "../../tests/adders/adder_d1/expects" expect_name = "both_threads_pass.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/adders/adder_d1/both_threads_pass.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/adders/adder_d1/both_threads_pass.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot 2>/dev/null" [[tests]] name = "graph_interp.tests_adders_adder_d1_both_threads_pass.both_threads_pass_graph_interp.contract_edges" @@ -88,7 +151,16 @@ paths = [ ] expect_dir = "../../tests/adders/adder_d1/expects" expect_name = "both_threads_pass.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/adders/adder_d1/both_threads_pass.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot --contract-edges 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/adders/adder_d1/both_threads_pass.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot --contract-edges 2>/dev/null" + +[[tests]] +name = "graph_interp.tests_adders_adder_d1_both_threads_pass.both_threads_pass_graph_interp.respect_forks" +paths = [ + "../../tests/adders/adder_d1/both_threads_pass.tx", +] +expect_dir = "../../tests/adders/adder_d1/expects" +expect_name = "both_threads_pass.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/adders/adder_d1/both_threads_pass.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_adders_adder_d1_wait_and_add_correct.wait_and_add_correct_graph_interp" @@ -97,7 +169,7 @@ paths = [ ] expect_dir = "../../tests/adders/adder_d1/expects" expect_name = "wait_and_add_correct.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/adders/adder_d1/wait_and_add_correct.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/adders/adder_d1/wait_and_add_correct.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot 2>/dev/null" [[tests]] name = "graph_interp.tests_adders_adder_d1_wait_and_add_correct.wait_and_add_correct_graph_interp.contract_edges" @@ -106,7 +178,16 @@ paths = [ ] expect_dir = "../../tests/adders/adder_d1/expects" expect_name = "wait_and_add_correct.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/adders/adder_d1/wait_and_add_correct.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot --contract-edges 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/adders/adder_d1/wait_and_add_correct.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot --contract-edges 2>/dev/null" + +[[tests]] +name = "graph_interp.tests_adders_adder_d1_wait_and_add_correct.wait_and_add_correct_graph_interp.respect_forks" +paths = [ + "../../tests/adders/adder_d1/wait_and_add_correct.tx", +] +expect_dir = "../../tests/adders/adder_d1/expects" +expect_name = "wait_and_add_correct.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/adders/adder_d1/wait_and_add_correct.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_adders_adder_d2_both_threads_pass.both_threads_pass_graph_interp" @@ -115,7 +196,7 @@ paths = [ ] expect_dir = "../../tests/adders/adder_d2/expects" expect_name = "both_threads_pass.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/adders/adder_d2/both_threads_pass.tx --verilog tests/adders/adder_d2/add_d2.v --protocol tests/adders/adder_d2/add_d2.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/adders/adder_d2/both_threads_pass.tx --verilog tests/adders/adder_d2/add_d2.v --protocol tests/adders/adder_d2/add_d2.prot 2>/dev/null" [[tests]] name = "graph_interp.tests_adders_adder_d2_both_threads_pass.both_threads_pass_graph_interp.contract_edges" @@ -124,7 +205,16 @@ paths = [ ] expect_dir = "../../tests/adders/adder_d2/expects" expect_name = "both_threads_pass.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/adders/adder_d2/both_threads_pass.tx --verilog tests/adders/adder_d2/add_d2.v --protocol tests/adders/adder_d2/add_d2.prot --contract-edges 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/adders/adder_d2/both_threads_pass.tx --verilog tests/adders/adder_d2/add_d2.v --protocol tests/adders/adder_d2/add_d2.prot --contract-edges 2>/dev/null" + +[[tests]] +name = "graph_interp.tests_adders_adder_d2_both_threads_pass.both_threads_pass_graph_interp.respect_forks" +paths = [ + "../../tests/adders/adder_d2/both_threads_pass.tx", +] +expect_dir = "../../tests/adders/adder_d2/expects" +expect_name = "both_threads_pass.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/adders/adder_d2/both_threads_pass.tx --verilog tests/adders/adder_d2/add_d2.v --protocol tests/adders/adder_d2/add_d2.prot --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_alus_alu_d1.alu_d1_graph_interp" @@ -133,7 +223,7 @@ paths = [ ] expect_dir = "../../tests/alus/expects" expect_name = "alu_d1.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/alus/alu_d1.tx --verilog tests/alus/alu_d1.v --protocol tests/alus/alu_d1.prot --module alu_d1 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/alus/alu_d1.tx --verilog tests/alus/alu_d1.v --protocol tests/alus/alu_d1.prot --module alu_d1 2>/dev/null" [[tests]] name = "graph_interp.tests_alus_alu_d1.alu_d1_graph_interp.contract_edges" @@ -142,7 +232,16 @@ paths = [ ] expect_dir = "../../tests/alus/expects" expect_name = "alu_d1.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/alus/alu_d1.tx --verilog tests/alus/alu_d1.v --protocol tests/alus/alu_d1.prot --module alu_d1 --contract-edges 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/alus/alu_d1.tx --verilog tests/alus/alu_d1.v --protocol tests/alus/alu_d1.prot --module alu_d1 --contract-edges 2>/dev/null" + +[[tests]] +name = "graph_interp.tests_alus_alu_d1.alu_d1_graph_interp.respect_forks" +paths = [ + "../../tests/alus/alu_d1.tx", +] +expect_dir = "../../tests/alus/expects" +expect_name = "alu_d1.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/alus/alu_d1.tx --verilog tests/alus/alu_d1.v --protocol tests/alus/alu_d1.prot --module alu_d1 --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_alus_alu_d2.alu_d2_graph_interp" @@ -151,7 +250,7 @@ paths = [ ] expect_dir = "../../tests/alus/expects" expect_name = "alu_d2.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/alus/alu_d2.tx --verilog tests/alus/alu_d2.v --protocol tests/alus/alu_d2.prot --module alu_d2 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/alus/alu_d2.tx --verilog tests/alus/alu_d2.v --protocol tests/alus/alu_d2.prot --module alu_d2 2>/dev/null" [[tests]] name = "graph_interp.tests_alus_alu_d2.alu_d2_graph_interp.contract_edges" @@ -160,7 +259,16 @@ paths = [ ] expect_dir = "../../tests/alus/expects" expect_name = "alu_d2.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/alus/alu_d2.tx --verilog tests/alus/alu_d2.v --protocol tests/alus/alu_d2.prot --module alu_d2 --contract-edges 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/alus/alu_d2.tx --verilog tests/alus/alu_d2.v --protocol tests/alus/alu_d2.prot --module alu_d2 --contract-edges 2>/dev/null" + +[[tests]] +name = "graph_interp.tests_alus_alu_d2.alu_d2_graph_interp.respect_forks" +paths = [ + "../../tests/alus/alu_d2.tx", +] +expect_dir = "../../tests/alus/expects" +expect_name = "alu_d2.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/alus/alu_d2.tx --verilog tests/alus/alu_d2.v --protocol tests/alus/alu_d2.prot --module alu_d2 --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_bounded_ready_valid_toy_reciever_0.toy_reciever_0_graph_interp" @@ -169,7 +277,7 @@ paths = [ ] expect_dir = "../../tests/bounded_ready_valid/expects" expect_name = "toy_reciever_0.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/bounded_ready_valid/toy_reciever_0.tx --verilog tests/bounded_ready_valid/toy_receiver_0.v --protocol tests/bounded_ready_valid/bounded_rv.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/bounded_ready_valid/toy_reciever_0.tx --verilog tests/bounded_ready_valid/toy_receiver_0.v --protocol tests/bounded_ready_valid/bounded_rv.prot 2>/dev/null" [[tests]] name = "graph_interp.tests_bounded_ready_valid_toy_reciever_0.toy_reciever_0_graph_interp.contract_edges" @@ -178,7 +286,16 @@ paths = [ ] expect_dir = "../../tests/bounded_ready_valid/expects" expect_name = "toy_reciever_0.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/bounded_ready_valid/toy_reciever_0.tx --verilog tests/bounded_ready_valid/toy_receiver_0.v --protocol tests/bounded_ready_valid/bounded_rv.prot --contract-edges 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/bounded_ready_valid/toy_reciever_0.tx --verilog tests/bounded_ready_valid/toy_receiver_0.v --protocol tests/bounded_ready_valid/bounded_rv.prot --contract-edges 2>/dev/null" + +[[tests]] +name = "graph_interp.tests_bounded_ready_valid_toy_reciever_0.toy_reciever_0_graph_interp.respect_forks" +paths = [ + "../../tests/bounded_ready_valid/toy_reciever_0.tx", +] +expect_dir = "../../tests/bounded_ready_valid/expects" +expect_name = "toy_reciever_0.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/bounded_ready_valid/toy_reciever_0.tx --verilog tests/bounded_ready_valid/toy_receiver_0.v --protocol tests/bounded_ready_valid/bounded_rv.prot --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_bounded_ready_valid_toy_reciever_1.toy_reciever_1_graph_interp" @@ -187,7 +304,7 @@ paths = [ ] expect_dir = "../../tests/bounded_ready_valid/expects" expect_name = "toy_reciever_1.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/bounded_ready_valid/toy_reciever_1.tx --verilog tests/bounded_ready_valid/toy_receiver_1.v --protocol tests/bounded_ready_valid/bounded_rv.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/bounded_ready_valid/toy_reciever_1.tx --verilog tests/bounded_ready_valid/toy_receiver_1.v --protocol tests/bounded_ready_valid/bounded_rv.prot 2>/dev/null" [[tests]] name = "graph_interp.tests_bounded_ready_valid_toy_reciever_1.toy_reciever_1_graph_interp.contract_edges" @@ -196,7 +313,16 @@ paths = [ ] expect_dir = "../../tests/bounded_ready_valid/expects" expect_name = "toy_reciever_1.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/bounded_ready_valid/toy_reciever_1.tx --verilog tests/bounded_ready_valid/toy_receiver_1.v --protocol tests/bounded_ready_valid/bounded_rv.prot --contract-edges 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/bounded_ready_valid/toy_reciever_1.tx --verilog tests/bounded_ready_valid/toy_receiver_1.v --protocol tests/bounded_ready_valid/bounded_rv.prot --contract-edges 2>/dev/null" + +[[tests]] +name = "graph_interp.tests_bounded_ready_valid_toy_reciever_1.toy_reciever_1_graph_interp.respect_forks" +paths = [ + "../../tests/bounded_ready_valid/toy_reciever_1.tx", +] +expect_dir = "../../tests/bounded_ready_valid/expects" +expect_name = "toy_reciever_1.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/bounded_ready_valid/toy_reciever_1.tx --verilog tests/bounded_ready_valid/toy_receiver_1.v --protocol tests/bounded_ready_valid/bounded_rv.prot --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_bounded_ready_valid_toy_reciever_2.toy_reciever_2_graph_interp" @@ -205,7 +331,7 @@ paths = [ ] expect_dir = "../../tests/bounded_ready_valid/expects" expect_name = "toy_reciever_2.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/bounded_ready_valid/toy_reciever_2.tx --verilog tests/bounded_ready_valid/toy_receiver_2.v --protocol tests/bounded_ready_valid/bounded_rv.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/bounded_ready_valid/toy_reciever_2.tx --verilog tests/bounded_ready_valid/toy_receiver_2.v --protocol tests/bounded_ready_valid/bounded_rv.prot 2>/dev/null" [[tests]] name = "graph_interp.tests_bounded_ready_valid_toy_reciever_2.toy_reciever_2_graph_interp.contract_edges" @@ -214,7 +340,16 @@ paths = [ ] expect_dir = "../../tests/bounded_ready_valid/expects" expect_name = "toy_reciever_2.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/bounded_ready_valid/toy_reciever_2.tx --verilog tests/bounded_ready_valid/toy_receiver_2.v --protocol tests/bounded_ready_valid/bounded_rv.prot --contract-edges 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/bounded_ready_valid/toy_reciever_2.tx --verilog tests/bounded_ready_valid/toy_receiver_2.v --protocol tests/bounded_ready_valid/bounded_rv.prot --contract-edges 2>/dev/null" + +[[tests]] +name = "graph_interp.tests_bounded_ready_valid_toy_reciever_2.toy_reciever_2_graph_interp.respect_forks" +paths = [ + "../../tests/bounded_ready_valid/toy_reciever_2.tx", +] +expect_dir = "../../tests/bounded_ready_valid/expects" +expect_name = "toy_reciever_2.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/bounded_ready_valid/toy_reciever_2.tx --verilog tests/bounded_ready_valid/toy_receiver_2.v --protocol tests/bounded_ready_valid/bounded_rv.prot --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_brave_new_world_bit_truncation_bit_truncation_fft_fix.bit_truncation_fft_fix_graph_interp" @@ -223,7 +358,7 @@ paths = [ ] expect_dir = "../../tests/brave_new_world/bit_truncation/expects" expect_name = "bit_truncation_fft_fix.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/brave_new_world/bit_truncation/bit_truncation_fft_fix.tx --verilog tests/brave_new_world/bit_truncation/bit_truncation_fft_fix.v --protocol tests/brave_new_world/bit_truncation/bit_truncation_fft.prot --module round11_rne_unsigned_fixed 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/brave_new_world/bit_truncation/bit_truncation_fft_fix.tx --verilog tests/brave_new_world/bit_truncation/bit_truncation_fft_fix.v --protocol tests/brave_new_world/bit_truncation/bit_truncation_fft.prot --module round11_rne_unsigned_fixed 2>/dev/null" [[tests]] name = "graph_interp.tests_brave_new_world_bit_truncation_bit_truncation_fft_fix.bit_truncation_fft_fix_graph_interp.contract_edges" @@ -232,7 +367,16 @@ paths = [ ] expect_dir = "../../tests/brave_new_world/bit_truncation/expects" expect_name = "bit_truncation_fft_fix.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/brave_new_world/bit_truncation/bit_truncation_fft_fix.tx --verilog tests/brave_new_world/bit_truncation/bit_truncation_fft_fix.v --protocol tests/brave_new_world/bit_truncation/bit_truncation_fft.prot --module round11_rne_unsigned_fixed --contract-edges 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/brave_new_world/bit_truncation/bit_truncation_fft_fix.tx --verilog tests/brave_new_world/bit_truncation/bit_truncation_fft_fix.v --protocol tests/brave_new_world/bit_truncation/bit_truncation_fft.prot --module round11_rne_unsigned_fixed --contract-edges 2>/dev/null" + +[[tests]] +name = "graph_interp.tests_brave_new_world_bit_truncation_bit_truncation_fft_fix.bit_truncation_fft_fix_graph_interp.respect_forks" +paths = [ + "../../tests/brave_new_world/bit_truncation/bit_truncation_fft_fix.tx", +] +expect_dir = "../../tests/brave_new_world/bit_truncation/expects" +expect_name = "bit_truncation_fft_fix.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/brave_new_world/bit_truncation/bit_truncation_fft_fix.tx --verilog tests/brave_new_world/bit_truncation/bit_truncation_fft_fix.v --protocol tests/brave_new_world/bit_truncation/bit_truncation_fft.prot --module round11_rne_unsigned_fixed --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_brave_new_world_bit_truncation_bit_truncation_sha_fix.bit_truncation_sha_fix_graph_interp" @@ -241,7 +385,7 @@ paths = [ ] expect_dir = "../../tests/brave_new_world/bit_truncation/expects" expect_name = "bit_truncation_sha_fix.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/brave_new_world/bit_truncation/bit_truncation_sha_fix.tx --verilog tests/brave_new_world/bit_truncation/bit_truncation_sha_fix.v --protocol tests/brave_new_world/bit_truncation/bit_truncation_sha.prot --module bit_truncation_sha_fixed 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/brave_new_world/bit_truncation/bit_truncation_sha_fix.tx --verilog tests/brave_new_world/bit_truncation/bit_truncation_sha_fix.v --protocol tests/brave_new_world/bit_truncation/bit_truncation_sha.prot --module bit_truncation_sha_fixed 2>/dev/null" [[tests]] name = "graph_interp.tests_brave_new_world_bit_truncation_bit_truncation_sha_fix.bit_truncation_sha_fix_graph_interp.contract_edges" @@ -250,7 +394,16 @@ paths = [ ] expect_dir = "../../tests/brave_new_world/bit_truncation/expects" expect_name = "bit_truncation_sha_fix.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/brave_new_world/bit_truncation/bit_truncation_sha_fix.tx --verilog tests/brave_new_world/bit_truncation/bit_truncation_sha_fix.v --protocol tests/brave_new_world/bit_truncation/bit_truncation_sha.prot --module bit_truncation_sha_fixed --contract-edges 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/brave_new_world/bit_truncation/bit_truncation_sha_fix.tx --verilog tests/brave_new_world/bit_truncation/bit_truncation_sha_fix.v --protocol tests/brave_new_world/bit_truncation/bit_truncation_sha.prot --module bit_truncation_sha_fixed --contract-edges 2>/dev/null" + +[[tests]] +name = "graph_interp.tests_brave_new_world_bit_truncation_bit_truncation_sha_fix.bit_truncation_sha_fix_graph_interp.respect_forks" +paths = [ + "../../tests/brave_new_world/bit_truncation/bit_truncation_sha_fix.tx", +] +expect_dir = "../../tests/brave_new_world/bit_truncation/expects" +expect_name = "bit_truncation_sha_fix.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/brave_new_world/bit_truncation/bit_truncation_sha_fix.tx --verilog tests/brave_new_world/bit_truncation/bit_truncation_sha_fix.v --protocol tests/brave_new_world/bit_truncation/bit_truncation_sha.prot --module bit_truncation_sha_fixed --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_brave_new_world_failure_to_update_ftu_sha_fix.ftu_sha_fix_graph_interp" @@ -259,7 +412,7 @@ paths = [ ] expect_dir = "../../tests/brave_new_world/failure_to_update/expects" expect_name = "ftu_sha_fix.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/brave_new_world/failure_to_update/ftu_sha_fix.tx --verilog tests/brave_new_world/failure_to_update/ftu_sha_fix.v --protocol tests/brave_new_world/failure_to_update/ftu_sha.prot --module fsm_update_fixed_gated 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/brave_new_world/failure_to_update/ftu_sha_fix.tx --verilog tests/brave_new_world/failure_to_update/ftu_sha_fix.v --protocol tests/brave_new_world/failure_to_update/ftu_sha.prot --module fsm_update_fixed_gated 2>/dev/null" [[tests]] name = "graph_interp.tests_brave_new_world_failure_to_update_ftu_sha_fix.ftu_sha_fix_graph_interp.contract_edges" @@ -268,7 +421,16 @@ paths = [ ] expect_dir = "../../tests/brave_new_world/failure_to_update/expects" expect_name = "ftu_sha_fix.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/brave_new_world/failure_to_update/ftu_sha_fix.tx --verilog tests/brave_new_world/failure_to_update/ftu_sha_fix.v --protocol tests/brave_new_world/failure_to_update/ftu_sha.prot --module fsm_update_fixed_gated --contract-edges 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/brave_new_world/failure_to_update/ftu_sha_fix.tx --verilog tests/brave_new_world/failure_to_update/ftu_sha_fix.v --protocol tests/brave_new_world/failure_to_update/ftu_sha.prot --module fsm_update_fixed_gated --contract-edges 2>/dev/null" + +[[tests]] +name = "graph_interp.tests_brave_new_world_failure_to_update_ftu_sha_fix.ftu_sha_fix_graph_interp.respect_forks" +paths = [ + "../../tests/brave_new_world/failure_to_update/ftu_sha_fix.tx", +] +expect_dir = "../../tests/brave_new_world/failure_to_update/expects" +expect_name = "ftu_sha_fix.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/brave_new_world/failure_to_update/ftu_sha_fix.tx --verilog tests/brave_new_world/failure_to_update/ftu_sha_fix.v --protocol tests/brave_new_world/failure_to_update/ftu_sha.prot --module fsm_update_fixed_gated --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_brave_new_world_signal_asynchrony_signal_async_fix.signal_async_fix_graph_interp" @@ -277,7 +439,7 @@ paths = [ ] expect_dir = "../../tests/brave_new_world/signal_asynchrony/expects" expect_name = "signal_async_fix.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/brave_new_world/signal_asynchrony/signal_async_fix.tx --verilog tests/brave_new_world/signal_asynchrony/signal_async_fix.v --protocol tests/brave_new_world/signal_asynchrony/signal_async.prot --module signal_async_fix 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/brave_new_world/signal_asynchrony/signal_async_fix.tx --verilog tests/brave_new_world/signal_asynchrony/signal_async_fix.v --protocol tests/brave_new_world/signal_asynchrony/signal_async.prot --module signal_async_fix 2>/dev/null" [[tests]] name = "graph_interp.tests_brave_new_world_signal_asynchrony_signal_async_fix.signal_async_fix_graph_interp.contract_edges" @@ -286,7 +448,16 @@ paths = [ ] expect_dir = "../../tests/brave_new_world/signal_asynchrony/expects" expect_name = "signal_async_fix.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/brave_new_world/signal_asynchrony/signal_async_fix.tx --verilog tests/brave_new_world/signal_asynchrony/signal_async_fix.v --protocol tests/brave_new_world/signal_asynchrony/signal_async.prot --module signal_async_fix --contract-edges 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/brave_new_world/signal_asynchrony/signal_async_fix.tx --verilog tests/brave_new_world/signal_asynchrony/signal_async_fix.v --protocol tests/brave_new_world/signal_asynchrony/signal_async.prot --module signal_async_fix --contract-edges 2>/dev/null" + +[[tests]] +name = "graph_interp.tests_brave_new_world_signal_asynchrony_signal_async_fix.signal_async_fix_graph_interp.respect_forks" +paths = [ + "../../tests/brave_new_world/signal_asynchrony/signal_async_fix.tx", +] +expect_dir = "../../tests/brave_new_world/signal_asynchrony/expects" +expect_name = "signal_async_fix.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/brave_new_world/signal_asynchrony/signal_async_fix.tx --verilog tests/brave_new_world/signal_asynchrony/signal_async_fix.v --protocol tests/brave_new_world/signal_asynchrony/signal_async.prot --module signal_async_fix --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_brave_new_world_use_without_valid_use_without_valid_fix.use_without_valid_fix_graph_interp" @@ -295,7 +466,7 @@ paths = [ ] expect_dir = "../../tests/brave_new_world/use_without_valid/expects" expect_name = "use_without_valid_fix.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/brave_new_world/use_without_valid/use_without_valid_fix.tx --verilog tests/brave_new_world/use_without_valid/use_without_valid_fix.v --protocol tests/brave_new_world/use_without_valid/use_without_valid.prot --module use_without_valid_fix 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/brave_new_world/use_without_valid/use_without_valid_fix.tx --verilog tests/brave_new_world/use_without_valid/use_without_valid_fix.v --protocol tests/brave_new_world/use_without_valid/use_without_valid.prot --module use_without_valid_fix 2>/dev/null" [[tests]] name = "graph_interp.tests_brave_new_world_use_without_valid_use_without_valid_fix.use_without_valid_fix_graph_interp.contract_edges" @@ -304,7 +475,16 @@ paths = [ ] expect_dir = "../../tests/brave_new_world/use_without_valid/expects" expect_name = "use_without_valid_fix.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/brave_new_world/use_without_valid/use_without_valid_fix.tx --verilog tests/brave_new_world/use_without_valid/use_without_valid_fix.v --protocol tests/brave_new_world/use_without_valid/use_without_valid.prot --module use_without_valid_fix --contract-edges 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/brave_new_world/use_without_valid/use_without_valid_fix.tx --verilog tests/brave_new_world/use_without_valid/use_without_valid_fix.v --protocol tests/brave_new_world/use_without_valid/use_without_valid.prot --module use_without_valid_fix --contract-edges 2>/dev/null" + +[[tests]] +name = "graph_interp.tests_brave_new_world_use_without_valid_use_without_valid_fix.use_without_valid_fix_graph_interp.respect_forks" +paths = [ + "../../tests/brave_new_world/use_without_valid/use_without_valid_fix.tx", +] +expect_dir = "../../tests/brave_new_world/use_without_valid/expects" +expect_name = "use_without_valid_fix.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/brave_new_world/use_without_valid/use_without_valid_fix.tx --verilog tests/brave_new_world/use_without_valid/use_without_valid_fix.v --protocol tests/brave_new_world/use_without_valid/use_without_valid.prot --module use_without_valid_fix --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_counters_counter.counter_graph_interp" @@ -313,7 +493,7 @@ paths = [ ] expect_dir = "../../tests/counters/expects" expect_name = "counter.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/counters/counter.tx --verilog tests/counters/counter.v --protocol tests/counters/counter.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/counters/counter.tx --verilog tests/counters/counter.v --protocol tests/counters/counter.prot 2>/dev/null" [[tests]] name = "graph_interp.tests_counters_counter.counter_graph_interp.contract_edges" @@ -322,7 +502,34 @@ paths = [ ] expect_dir = "../../tests/counters/expects" expect_name = "counter.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/counters/counter.tx --verilog tests/counters/counter.v --protocol tests/counters/counter.prot --contract-edges 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/counters/counter.tx --verilog tests/counters/counter.v --protocol tests/counters/counter.prot --contract-edges 2>/dev/null" + +[[tests]] +name = "graph_interp.tests_counters_counter.counter_graph_interp.respect_forks" +paths = [ + "../../tests/counters/counter.tx", +] +expect_dir = "../../tests/counters/expects" +expect_name = "counter.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/counters/counter.tx --verilog tests/counters/counter.v --protocol tests/counters/counter.prot --respect-forks --determinize 2>/dev/null" + +[[tests]] +name = "graph_interp.tests_fifo_fifo.fifo_graph_interp.respect_forks" +paths = [ + "../../tests/fifo/fifo.tx", +] +expect_dir = "../../tests/fifo/expects" +expect_name = "fifo.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/fifo/fifo.tx --verilog tests/fifo/bsg_mem_1rw_sync.v tests/fifo/bsg_mem_1rw_sync_synth.v tests/fifo/bsg_circular_ptr.v tests/fifo/bsg_fifo_1rw_large.v tests/fifo/fifo_wrapper.v --protocol tests/fifo/fifo.prot --module fifo_wrapper --respect-forks --determinize 2>/dev/null" + +[[tests]] +name = "graph_interp.tests_fifo_push_pop_identity_ok.push_pop_identity_ok_graph_interp.respect_forks" +paths = [ + "../../tests/fifo/push_pop_identity_ok.tx", +] +expect_dir = "../../tests/fifo/expects" +expect_name = "push_pop_identity_ok.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/fifo/push_pop_identity_ok.tx --verilog tests/fifo/bsg_mem_1rw_sync.v tests/fifo/bsg_mem_1rw_sync_synth.v tests/fifo/bsg_circular_ptr.v tests/fifo/bsg_fifo_1rw_large.v tests/fifo/fifo_wrapper.v --protocol tests/fifo/fifo.prot --module fifo_wrapper --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_identities_identity_d0_passthrough_combdep.passthrough_combdep_graph_interp" @@ -331,7 +538,7 @@ paths = [ ] expect_dir = "../../tests/identities/identity_d0/expects" expect_name = "passthrough_combdep.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/identities/identity_d0/passthrough_combdep.tx --verilog tests/identities/identity_d0/identity_d0.v --protocol tests/identities/identity_d0/identity_d0.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/identities/identity_d0/passthrough_combdep.tx --verilog tests/identities/identity_d0/identity_d0.v --protocol tests/identities/identity_d0/identity_d0.prot 2>/dev/null" [[tests]] name = "graph_interp.tests_identities_identity_d0_passthrough_combdep.passthrough_combdep_graph_interp.contract_edges" @@ -340,7 +547,16 @@ paths = [ ] expect_dir = "../../tests/identities/identity_d0/expects" expect_name = "passthrough_combdep.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/identities/identity_d0/passthrough_combdep.tx --verilog tests/identities/identity_d0/identity_d0.v --protocol tests/identities/identity_d0/identity_d0.prot --contract-edges 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/identities/identity_d0/passthrough_combdep.tx --verilog tests/identities/identity_d0/identity_d0.v --protocol tests/identities/identity_d0/identity_d0.prot --contract-edges 2>/dev/null" + +[[tests]] +name = "graph_interp.tests_identities_identity_d0_passthrough_combdep.passthrough_combdep_graph_interp.respect_forks" +paths = [ + "../../tests/identities/identity_d0/passthrough_combdep.tx", +] +expect_dir = "../../tests/identities/identity_d0/expects" +expect_name = "passthrough_combdep.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/identities/identity_d0/passthrough_combdep.tx --verilog tests/identities/identity_d0/identity_d0.v --protocol tests/identities/identity_d0/identity_d0.prot --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_identities_identity_d1_slicing_ok.slicing_ok_graph_interp" @@ -349,7 +565,7 @@ paths = [ ] expect_dir = "../../tests/identities/identity_d1/expects" expect_name = "slicing_ok.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/identities/identity_d1/slicing_ok.tx --verilog tests/identities/identity_d1/identity_d1.v --protocol tests/identities/identity_d1/identity_d1.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/identities/identity_d1/slicing_ok.tx --verilog tests/identities/identity_d1/identity_d1.v --protocol tests/identities/identity_d1/identity_d1.prot 2>/dev/null" [[tests]] name = "graph_interp.tests_identities_identity_d1_slicing_ok.slicing_ok_graph_interp.contract_edges" @@ -358,7 +574,16 @@ paths = [ ] expect_dir = "../../tests/identities/identity_d1/expects" expect_name = "slicing_ok.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/identities/identity_d1/slicing_ok.tx --verilog tests/identities/identity_d1/identity_d1.v --protocol tests/identities/identity_d1/identity_d1.prot --contract-edges 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/identities/identity_d1/slicing_ok.tx --verilog tests/identities/identity_d1/identity_d1.v --protocol tests/identities/identity_d1/identity_d1.prot --contract-edges 2>/dev/null" + +[[tests]] +name = "graph_interp.tests_identities_identity_d1_slicing_ok.slicing_ok_graph_interp.respect_forks" +paths = [ + "../../tests/identities/identity_d1/slicing_ok.tx", +] +expect_dir = "../../tests/identities/identity_d1/expects" +expect_name = "slicing_ok.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/identities/identity_d1/slicing_ok.tx --verilog tests/identities/identity_d1/identity_d1.v --protocol tests/identities/identity_d1/identity_d1.prot --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_identities_identity_d2_single_thread_passes.single_thread_passes_graph_interp" @@ -367,7 +592,7 @@ paths = [ ] expect_dir = "../../tests/identities/identity_d2/expects" expect_name = "single_thread_passes.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/identities/identity_d2/single_thread_passes.tx --verilog tests/identities/identity_d2/identity_d2.v --protocol tests/identities/identity_d2/identity_d2.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/identities/identity_d2/single_thread_passes.tx --verilog tests/identities/identity_d2/identity_d2.v --protocol tests/identities/identity_d2/identity_d2.prot 2>/dev/null" [[tests]] name = "graph_interp.tests_identities_identity_d2_single_thread_passes.single_thread_passes_graph_interp.contract_edges" @@ -376,7 +601,16 @@ paths = [ ] expect_dir = "../../tests/identities/identity_d2/expects" expect_name = "single_thread_passes.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/identities/identity_d2/single_thread_passes.tx --verilog tests/identities/identity_d2/identity_d2.v --protocol tests/identities/identity_d2/identity_d2.prot --contract-edges 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/identities/identity_d2/single_thread_passes.tx --verilog tests/identities/identity_d2/identity_d2.v --protocol tests/identities/identity_d2/identity_d2.prot --contract-edges 2>/dev/null" + +[[tests]] +name = "graph_interp.tests_identities_identity_d2_single_thread_passes.single_thread_passes_graph_interp.respect_forks" +paths = [ + "../../tests/identities/identity_d2/single_thread_passes.tx", +] +expect_dir = "../../tests/identities/identity_d2/expects" +expect_name = "single_thread_passes.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/identities/identity_d2/single_thread_passes.tx --verilog tests/identities/identity_d2/identity_d2.v --protocol tests/identities/identity_d2/identity_d2.prot --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_identities_identity_d2_two_assignments_same_value.two_assignments_same_value_graph_interp" @@ -385,7 +619,7 @@ paths = [ ] expect_dir = "../../tests/identities/identity_d2/expects" expect_name = "two_assignments_same_value.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/identities/identity_d2/two_assignments_same_value.tx --verilog tests/identities/identity_d2/identity_d2.v --protocol tests/identities/identity_d2/identity_d2.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/identities/identity_d2/two_assignments_same_value.tx --verilog tests/identities/identity_d2/identity_d2.v --protocol tests/identities/identity_d2/identity_d2.prot 2>/dev/null" [[tests]] name = "graph_interp.tests_identities_identity_d2_two_assignments_same_value.two_assignments_same_value_graph_interp.contract_edges" @@ -394,7 +628,16 @@ paths = [ ] expect_dir = "../../tests/identities/identity_d2/expects" expect_name = "two_assignments_same_value.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/identities/identity_d2/two_assignments_same_value.tx --verilog tests/identities/identity_d2/identity_d2.v --protocol tests/identities/identity_d2/identity_d2.prot --contract-edges 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/identities/identity_d2/two_assignments_same_value.tx --verilog tests/identities/identity_d2/identity_d2.v --protocol tests/identities/identity_d2/identity_d2.prot --contract-edges 2>/dev/null" + +[[tests]] +name = "graph_interp.tests_identities_identity_d2_two_assignments_same_value.two_assignments_same_value_graph_interp.respect_forks" +paths = [ + "../../tests/identities/identity_d2/two_assignments_same_value.tx", +] +expect_dir = "../../tests/identities/identity_d2/expects" +expect_name = "two_assignments_same_value.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/identities/identity_d2/two_assignments_same_value.tx --verilog tests/identities/identity_d2/identity_d2.v --protocol tests/identities/identity_d2/identity_d2.prot --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_multi_multi0_multi0.multi0_graph_interp" @@ -403,7 +646,7 @@ paths = [ ] expect_dir = "../../tests/multi/multi0/expects" expect_name = "multi0.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/multi/multi0/multi0.tx --verilog tests/multi/multi0/multi0.v --protocol tests/multi/multi0/multi0.prot --module multi0 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/multi/multi0/multi0.tx --verilog tests/multi/multi0/multi0.v --protocol tests/multi/multi0/multi0.prot --module multi0 2>/dev/null" [[tests]] name = "graph_interp.tests_multi_multi0_multi0.multi0_graph_interp.contract_edges" @@ -412,7 +655,16 @@ paths = [ ] expect_dir = "../../tests/multi/multi0/expects" expect_name = "multi0.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/multi/multi0/multi0.tx --verilog tests/multi/multi0/multi0.v --protocol tests/multi/multi0/multi0.prot --module multi0 --contract-edges 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/multi/multi0/multi0.tx --verilog tests/multi/multi0/multi0.v --protocol tests/multi/multi0/multi0.prot --module multi0 --contract-edges 2>/dev/null" + +[[tests]] +name = "graph_interp.tests_multi_multi0_multi0.multi0_graph_interp.respect_forks" +paths = [ + "../../tests/multi/multi0/multi0.tx", +] +expect_dir = "../../tests/multi/multi0/expects" +expect_name = "multi0.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/multi/multi0/multi0.tx --verilog tests/multi/multi0/multi0.v --protocol tests/multi/multi0/multi0.prot --module multi0 --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_multi_multi0keep_multi0keep.multi0keep_graph_interp" @@ -421,7 +673,7 @@ paths = [ ] expect_dir = "../../tests/multi/multi0keep/expects" expect_name = "multi0keep.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/multi/multi0keep/multi0keep.tx --verilog tests/multi/multi0keep/multi0keep.v --protocol tests/multi/multi0keep/multi0keep.prot --module multi0keep 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/multi/multi0keep/multi0keep.tx --verilog tests/multi/multi0keep/multi0keep.v --protocol tests/multi/multi0keep/multi0keep.prot --module multi0keep 2>/dev/null" [[tests]] name = "graph_interp.tests_multi_multi0keep_multi0keep.multi0keep_graph_interp.contract_edges" @@ -430,7 +682,16 @@ paths = [ ] expect_dir = "../../tests/multi/multi0keep/expects" expect_name = "multi0keep.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/multi/multi0keep/multi0keep.tx --verilog tests/multi/multi0keep/multi0keep.v --protocol tests/multi/multi0keep/multi0keep.prot --module multi0keep --contract-edges 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/multi/multi0keep/multi0keep.tx --verilog tests/multi/multi0keep/multi0keep.v --protocol tests/multi/multi0keep/multi0keep.prot --module multi0keep --contract-edges 2>/dev/null" + +[[tests]] +name = "graph_interp.tests_multi_multi0keep_multi0keep.multi0keep_graph_interp.respect_forks" +paths = [ + "../../tests/multi/multi0keep/multi0keep.tx", +] +expect_dir = "../../tests/multi/multi0keep/expects" +expect_name = "multi0keep.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/multi/multi0keep/multi0keep.tx --verilog tests/multi/multi0keep/multi0keep.v --protocol tests/multi/multi0keep/multi0keep.prot --module multi0keep --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_multi_multi0keep2const_multi0keep2const.multi0keep2const_graph_interp" @@ -439,7 +700,7 @@ paths = [ ] expect_dir = "../../tests/multi/multi0keep2const/expects" expect_name = "multi0keep2const.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/multi/multi0keep2const/multi0keep2const.tx --verilog tests/multi/multi0keep2const/multi0keep2const.v tests/multi/multi0keep/multi0keep.v --protocol tests/multi/multi0keep2const/multi0keep2const.prot --module multi0keep2const 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/multi/multi0keep2const/multi0keep2const.tx --verilog tests/multi/multi0keep2const/multi0keep2const.v tests/multi/multi0keep/multi0keep.v --protocol tests/multi/multi0keep2const/multi0keep2const.prot --module multi0keep2const 2>/dev/null" [[tests]] name = "graph_interp.tests_multi_multi0keep2const_multi0keep2const.multi0keep2const_graph_interp.contract_edges" @@ -448,7 +709,16 @@ paths = [ ] expect_dir = "../../tests/multi/multi0keep2const/expects" expect_name = "multi0keep2const.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/multi/multi0keep2const/multi0keep2const.tx --verilog tests/multi/multi0keep2const/multi0keep2const.v tests/multi/multi0keep/multi0keep.v --protocol tests/multi/multi0keep2const/multi0keep2const.prot --module multi0keep2const --contract-edges 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/multi/multi0keep2const/multi0keep2const.tx --verilog tests/multi/multi0keep2const/multi0keep2const.v tests/multi/multi0keep/multi0keep.v --protocol tests/multi/multi0keep2const/multi0keep2const.prot --module multi0keep2const --contract-edges 2>/dev/null" + +[[tests]] +name = "graph_interp.tests_multi_multi0keep2const_multi0keep2const.multi0keep2const_graph_interp.respect_forks" +paths = [ + "../../tests/multi/multi0keep2const/multi0keep2const.tx", +] +expect_dir = "../../tests/multi/multi0keep2const/expects" +expect_name = "multi0keep2const.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/multi/multi0keep2const/multi0keep2const.tx --verilog tests/multi/multi0keep2const/multi0keep2const.v tests/multi/multi0keep/multi0keep.v --protocol tests/multi/multi0keep2const/multi0keep2const.prot --module multi0keep2const --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_multi_multi2const_multi2const.multi2const_graph_interp" @@ -457,7 +727,7 @@ paths = [ ] expect_dir = "../../tests/multi/multi2const/expects" expect_name = "multi2const.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/multi/multi2const/multi2const.tx --verilog tests/multi/multi2const/multi2const.v tests/multi/multi0/multi0.v --protocol tests/multi/multi2const/multi2const.prot --module multi2const 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/multi/multi2const/multi2const.tx --verilog tests/multi/multi2const/multi2const.v tests/multi/multi0/multi0.v --protocol tests/multi/multi2const/multi2const.prot --module multi2const 2>/dev/null" [[tests]] name = "graph_interp.tests_multi_multi2const_multi2const.multi2const_graph_interp.contract_edges" @@ -466,7 +736,16 @@ paths = [ ] expect_dir = "../../tests/multi/multi2const/expects" expect_name = "multi2const.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/multi/multi2const/multi2const.tx --verilog tests/multi/multi2const/multi2const.v tests/multi/multi0/multi0.v --protocol tests/multi/multi2const/multi2const.prot --module multi2const --contract-edges 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/multi/multi2const/multi2const.tx --verilog tests/multi/multi2const/multi2const.v tests/multi/multi0/multi0.v --protocol tests/multi/multi2const/multi2const.prot --module multi2const --contract-edges 2>/dev/null" + +[[tests]] +name = "graph_interp.tests_multi_multi2const_multi2const.multi2const_graph_interp.respect_forks" +paths = [ + "../../tests/multi/multi2const/multi2const.tx", +] +expect_dir = "../../tests/multi/multi2const/expects" +expect_name = "multi2const.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/multi/multi2const/multi2const.tx --verilog tests/multi/multi2const/multi2const.v tests/multi/multi0/multi0.v --protocol tests/multi/multi2const/multi2const.prot --module multi2const --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_multi_multi2multi_multi2multi.multi2multi_graph_interp" @@ -475,7 +754,7 @@ paths = [ ] expect_dir = "../../tests/multi/multi2multi/expects" expect_name = "multi2multi.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/multi/multi2multi/multi2multi.tx --verilog tests/multi/multi2multi/multi2multi.v tests/multi/multi0/multi0.v --protocol tests/multi/multi2multi/multi2multi.prot --module multi2multi 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/multi/multi2multi/multi2multi.tx --verilog tests/multi/multi2multi/multi2multi.v tests/multi/multi0/multi0.v --protocol tests/multi/multi2multi/multi2multi.prot --module multi2multi 2>/dev/null" [[tests]] name = "graph_interp.tests_multi_multi2multi_multi2multi.multi2multi_graph_interp.contract_edges" @@ -484,7 +763,16 @@ paths = [ ] expect_dir = "../../tests/multi/multi2multi/expects" expect_name = "multi2multi.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/multi/multi2multi/multi2multi.tx --verilog tests/multi/multi2multi/multi2multi.v tests/multi/multi0/multi0.v --protocol tests/multi/multi2multi/multi2multi.prot --module multi2multi --contract-edges 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/multi/multi2multi/multi2multi.tx --verilog tests/multi/multi2multi/multi2multi.v tests/multi/multi0/multi0.v --protocol tests/multi/multi2multi/multi2multi.prot --module multi2multi --contract-edges 2>/dev/null" + +[[tests]] +name = "graph_interp.tests_multi_multi2multi_multi2multi.multi2multi_graph_interp.respect_forks" +paths = [ + "../../tests/multi/multi2multi/multi2multi.tx", +] +expect_dir = "../../tests/multi/multi2multi/expects" +expect_name = "multi2multi.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/multi/multi2multi/multi2multi.tx --verilog tests/multi/multi2multi/multi2multi.v tests/multi/multi0/multi0.v --protocol tests/multi/multi2multi/multi2multi.prot --module multi2multi --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_multi_multi_data_multi_data.multi_data_graph_interp" @@ -493,7 +781,7 @@ paths = [ ] expect_dir = "../../tests/multi/multi_data/expects" expect_name = "multi_data.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/multi/multi_data/multi_data.tx --verilog tests/multi/multi_data/multi_data.v --protocol tests/multi/multi_data/multi_data.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/multi/multi_data/multi_data.tx --verilog tests/multi/multi_data/multi_data.v --protocol tests/multi/multi_data/multi_data.prot 2>/dev/null" [[tests]] name = "graph_interp.tests_multi_multi_data_multi_data.multi_data_graph_interp.contract_edges" @@ -502,7 +790,16 @@ paths = [ ] expect_dir = "../../tests/multi/multi_data/expects" expect_name = "multi_data.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/multi/multi_data/multi_data.tx --verilog tests/multi/multi_data/multi_data.v --protocol tests/multi/multi_data/multi_data.prot --contract-edges 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/multi/multi_data/multi_data.tx --verilog tests/multi/multi_data/multi_data.v --protocol tests/multi/multi_data/multi_data.prot --contract-edges 2>/dev/null" + +[[tests]] +name = "graph_interp.tests_multi_multi_data_multi_data.multi_data_graph_interp.respect_forks" +paths = [ + "../../tests/multi/multi_data/multi_data.tx", +] +expect_dir = "../../tests/multi/multi_data/expects" +expect_name = "multi_data.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/multi/multi_data/multi_data.tx --verilog tests/multi/multi_data/multi_data.v --protocol tests/multi/multi_data/multi_data.prot --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_multipliers_mult_d2_both_threads_pass.both_threads_pass_graph_interp" @@ -511,7 +808,7 @@ paths = [ ] expect_dir = "../../tests/multipliers/mult_d2/expects" expect_name = "both_threads_pass.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/multipliers/mult_d2/both_threads_pass.tx --verilog tests/multipliers/mult_d2/mult_d2.v --protocol tests/multipliers/mult_d2/mult_d2.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/multipliers/mult_d2/both_threads_pass.tx --verilog tests/multipliers/mult_d2/mult_d2.v --protocol tests/multipliers/mult_d2/mult_d2.prot 2>/dev/null" [[tests]] name = "graph_interp.tests_multipliers_mult_d2_both_threads_pass.both_threads_pass_graph_interp.contract_edges" @@ -520,22 +817,22 @@ paths = [ ] expect_dir = "../../tests/multipliers/mult_d2/expects" expect_name = "both_threads_pass.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/multipliers/mult_d2/both_threads_pass.tx --verilog tests/multipliers/mult_d2/mult_d2.v --protocol tests/multipliers/mult_d2/mult_d2.prot --contract-edges 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/multipliers/mult_d2/both_threads_pass.tx --verilog tests/multipliers/mult_d2/mult_d2.v --protocol tests/multipliers/mult_d2/mult_d2.prot --contract-edges 2>/dev/null" [[tests]] -name = "graph_interp.tests_wishbone_wishbone.wishbone_graph_interp" +name = "graph_interp.tests_multipliers_mult_d2_both_threads_pass.both_threads_pass_graph_interp.respect_forks" paths = [ - "../../tests/wishbone/wishbone.tx", + "../../tests/multipliers/mult_d2/both_threads_pass.tx", ] -expect_dir = "../../tests/wishbone/expects" -expect_name = "wishbone.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/wishbone/wishbone.tx --verilog tests/wishbone/reqwalker.v --protocol tests/wishbone/wishbone.prot --module reqwalker 2>/dev/null" +expect_dir = "../../tests/multipliers/mult_d2/expects" +expect_name = "both_threads_pass.graph_interp.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/multipliers/mult_d2/both_threads_pass.tx --verilog tests/multipliers/mult_d2/mult_d2.v --protocol tests/multipliers/mult_d2/mult_d2.prot --respect-forks --determinize 2>/dev/null" [[tests]] -name = "graph_interp.tests_wishbone_wishbone.wishbone_graph_interp.contract_edges" +name = "graph_interp.tests_wishbone_wishbone.wishbone_graph_interp.respect_forks" paths = [ "../../tests/wishbone/wishbone.tx", ] expect_dir = "../../tests/wishbone/expects" expect_name = "wishbone.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package graph-interp -- --transactions tests/wishbone/wishbone.tx --verilog tests/wishbone/reqwalker.v --protocol tests/wishbone/wishbone.prot --module reqwalker --contract-edges 2>/dev/null" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/wishbone/wishbone.tx --verilog tests/wishbone/reqwalker.v --protocol tests/wishbone/wishbone.prot --module reqwalker --respect-forks --determinize 2>/dev/null" diff --git a/runt/interp/runt.toml b/runt/interp/runt.toml index f65969ff..23b631a7 100644 --- a/runt/interp/runt.toml +++ b/runt/interp/runt.toml @@ -7,7 +7,7 @@ paths = [ ] expect_dir = "../../examples/picorv32/expects" expect_name = "unsigned_mul.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions examples/picorv32/unsigned_mul.tx --verilog examples/picorv32/picorv32.v --protocol examples/picorv32/pcpi_mul.prot --module picorv32_pcpi_mul 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions examples/picorv32/unsigned_mul.tx --verilog examples/picorv32/picorv32.v --protocol examples/picorv32/pcpi_mul.prot --module picorv32_pcpi_mul 2>&1" [[tests]] name = "interp.examples_serv_serv_regfile.serv_regfile_interp" @@ -16,7 +16,7 @@ paths = [ ] expect_dir = "../../examples/serv/expects" expect_name = "serv_regfile.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions examples/serv/serv_regfile.tx --verilog examples/serv/rtl/serv_regfile.v --protocol examples/serv/serv_regfile.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions examples/serv/serv_regfile.tx --verilog examples/serv/rtl/serv_regfile.v --protocol examples/serv/serv_regfile.prot 2>&1" [[tests]] name = "interp.examples_tinyaes128_aes128.aes128_interp" @@ -25,7 +25,7 @@ paths = [ ] expect_dir = "../../examples/tinyaes128/expects" expect_name = "aes128.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions examples/tinyaes128/aes128.tx --verilog examples/tinyaes128/aes_128.v --protocol examples/tinyaes128/aes128.prot --module aes_128 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions examples/tinyaes128/aes128.tx --verilog examples/tinyaes128/aes_128.v --protocol examples/tinyaes128/aes128.prot --module aes_128 2>&1" [[tests]] name = "interp.examples_wishbone_4_8_constant_address_burst.4_8_constant_address_burst_interp" @@ -34,7 +34,7 @@ paths = [ ] expect_dir = "../../examples/wishbone/expects" expect_name = "4_8_constant_address_burst.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions examples/wishbone/4.8_constant_address_burst.tx --verilog examples/wishbone/rtl/dut.v examples/wishbone/rtl/tb.v --protocol examples/wishbone/wishbone.prot --module tb 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions examples/wishbone/4.8_constant_address_burst.tx --verilog examples/wishbone/rtl/dut.v examples/wishbone/rtl/tb.v --protocol examples/wishbone/wishbone.prot --module tb 2>&1" [[tests]] name = "interp.examples_wishbone_4_incremental_address_burst.4_incremental_address_burst_interp" @@ -43,7 +43,7 @@ paths = [ ] expect_dir = "../../examples/wishbone/expects" expect_name = "4_incremental_address_burst.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions 'examples/wishbone/4.?_incremental_address_burst.tx' --verilog examples/wishbone/rtl/dut.v examples/wishbone/rtl/tb.v --protocol examples/wishbone/wishbone.prot --module tb 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions 'examples/wishbone/4.?_incremental_address_burst.tx' --verilog examples/wishbone/rtl/dut.v examples/wishbone/rtl/tb.v --protocol examples/wishbone/wishbone.prot --module tb 2>&1" [[tests]] name = "interp.examples_wishbone_4_incremental_address_burst_wrap.4_incremental_address_burst_wrap_interp" @@ -52,7 +52,7 @@ paths = [ ] expect_dir = "../../examples/wishbone/expects" expect_name = "4_incremental_address_burst_wrap.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions 'examples/wishbone/4.?_incremental_address_burst_wrap.tx' --verilog examples/wishbone/rtl/dut.v examples/wishbone/rtl/tb.v --protocol examples/wishbone/wishbone.prot --module tb 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions 'examples/wishbone/4.?_incremental_address_burst_wrap.tx' --verilog examples/wishbone/rtl/dut.v examples/wishbone/rtl/tb.v --protocol examples/wishbone/wishbone.prot --module tb 2>&1" [[tests]] name = "interp.tests_adders_adder_d0_add_combinational.add_combinational_interp" @@ -61,7 +61,7 @@ paths = [ ] expect_dir = "../../tests/adders/adder_d0/expects" expect_name = "add_combinational.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/adders/adder_d0/add_combinational.tx --verilog tests/adders/adder_d0/add_d0.v --protocol tests/adders/adder_d0/add_d0.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/adders/adder_d0/add_combinational.tx --verilog tests/adders/adder_d0/add_d0.v --protocol tests/adders/adder_d0/add_d0.prot 2>&1" [[tests]] name = "interp.tests_adders_adder_d0_illegal_assignment.illegal_assignment_interp" @@ -70,7 +70,7 @@ paths = [ ] expect_dir = "../../tests/adders/adder_d0/expects" expect_name = "illegal_assignment.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/adders/adder_d0/illegal_assignment.tx --verilog tests/adders/adder_d0/add_d0.v --protocol tests/adders/adder_d0/add_d0.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/adders/adder_d0/illegal_assignment.tx --verilog tests/adders/adder_d0/add_d0.v --protocol tests/adders/adder_d0/add_d0.prot 2>&1" [[tests]] name = "interp.tests_adders_adder_d0_illegal_observation_assertion.illegal_observation_assertion_interp" @@ -79,7 +79,7 @@ paths = [ ] expect_dir = "../../tests/adders/adder_d0/expects" expect_name = "illegal_observation_assertion.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/adders/adder_d0/illegal_observation_assertion.tx --verilog tests/adders/adder_d0/add_d0.v --protocol tests/adders/adder_d0/add_d0.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/adders/adder_d0/illegal_observation_assertion.tx --verilog tests/adders/adder_d0/add_d0.v --protocol tests/adders/adder_d0/add_d0.prot 2>&1" [[tests]] name = "interp.tests_adders_adder_d0_illegal_observation_conditional.illegal_observation_conditional_interp" @@ -88,7 +88,7 @@ paths = [ ] expect_dir = "../../tests/adders/adder_d0/expects" expect_name = "illegal_observation_conditional.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/adders/adder_d0/illegal_observation_conditional.tx --verilog tests/adders/adder_d0/add_d0.v --protocol tests/adders/adder_d0/add_d0.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/adders/adder_d0/illegal_observation_conditional.tx --verilog tests/adders/adder_d0/add_d0.v --protocol tests/adders/adder_d0/add_d0.prot 2>&1" [[tests]] name = "interp.tests_adders_adder_d1_add_incorrect.add_incorrect_interp" @@ -97,7 +97,7 @@ paths = [ ] expect_dir = "../../tests/adders/adder_d1/expects" expect_name = "add_incorrect.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/adders/adder_d1/add_incorrect.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/adders/adder_d1/add_incorrect.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot 2>&1" [[tests]] name = "interp.tests_adders_adder_d1_add_incorrect_implicit.add_incorrect_implicit_interp" @@ -106,7 +106,7 @@ paths = [ ] expect_dir = "../../tests/adders/adder_d1/expects" expect_name = "add_incorrect_implicit.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/adders/adder_d1/add_incorrect_implicit.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/adders/adder_d1/add_incorrect_implicit.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot 2>&1" [[tests]] name = "interp.tests_adders_adder_d1_add_multitrace.add_multitrace_interp" @@ -115,7 +115,16 @@ paths = [ ] expect_dir = "../../tests/adders/adder_d1/expects" expect_name = "add_multitrace.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/adders/adder_d1/add_multitrace.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/adders/adder_d1/add_multitrace.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot 2>&1" + +[[tests]] +name = "interp.tests_adders_adder_d1_add_multitrace_successful.add_multitrace_successful_interp" +paths = [ + "../../tests/adders/adder_d1/add_multitrace_successful.tx", +] +expect_dir = "../../tests/adders/adder_d1/expects" +expect_name = "add_multitrace_successful.interp.expect" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/adders/adder_d1/add_multitrace_successful.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot 2>&1" [[tests]] name = "interp.tests_adders_adder_d1_assign_after_observation.assign_after_observation_interp" @@ -124,7 +133,7 @@ paths = [ ] expect_dir = "../../tests/adders/adder_d1/expects" expect_name = "assign_after_observation.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/adders/adder_d1/assign_after_observation.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/adders/adder_d1/assign_after_observation.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot 2>&1" [[tests]] name = "interp.tests_adders_adder_d1_both_threads_fail.both_threads_fail_interp" @@ -133,7 +142,7 @@ paths = [ ] expect_dir = "../../tests/adders/adder_d1/expects" expect_name = "both_threads_fail.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/adders/adder_d1/both_threads_fail.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/adders/adder_d1/both_threads_fail.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot 2>&1" [[tests]] name = "interp.tests_adders_adder_d1_both_threads_pass.both_threads_pass_interp" @@ -142,7 +151,7 @@ paths = [ ] expect_dir = "../../tests/adders/adder_d1/expects" expect_name = "both_threads_pass.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/adders/adder_d1/both_threads_pass.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/adders/adder_d1/both_threads_pass.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot 2>&1" [[tests]] name = "interp.tests_adders_adder_d1_busy_wait_fail.busy_wait_fail_interp" @@ -151,7 +160,7 @@ paths = [ ] expect_dir = "../../tests/adders/adder_d1/expects" expect_name = "busy_wait_fail.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/adders/adder_d1/busy_wait_fail.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/busy_wait.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/adders/adder_d1/busy_wait_fail.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/busy_wait.prot 2>&1" [[tests]] name = "interp.tests_adders_adder_d1_busy_wait_pass.busy_wait_pass_interp" @@ -160,7 +169,7 @@ paths = [ ] expect_dir = "../../tests/adders/adder_d1/expects" expect_name = "busy_wait_pass.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/adders/adder_d1/busy_wait_pass.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/busy_wait.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/adders/adder_d1/busy_wait_pass.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/busy_wait.prot 2>&1" [[tests]] name = "interp.tests_adders_adder_d1_didnt_end_in_step.didnt_end_in_step_interp" @@ -169,7 +178,7 @@ paths = [ ] expect_dir = "../../tests/adders/adder_d1/expects" expect_name = "didnt_end_in_step.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/adders/adder_d1/didnt_end_in_step.tx --skip-static-step-fork-checks --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/didnt_end_in_step.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/adders/adder_d1/didnt_end_in_step.tx --skip-static-step-fork-checks --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/didnt_end_in_step.prot 2>&1" [[tests]] name = "interp.tests_adders_adder_d1_double_fork_error.double_fork_error_interp" @@ -178,7 +187,7 @@ paths = [ ] expect_dir = "../../tests/adders/adder_d1/expects" expect_name = "double_fork_error.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/adders/adder_d1/double_fork_error.tx --skip-static-step-fork-checks --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/double_fork_error.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/adders/adder_d1/double_fork_error.tx --skip-static-step-fork-checks --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/double_fork_error.prot 2>&1" [[tests]] name = "interp.tests_adders_adder_d1_first_fail_second_norun.first_fail_second_norun_interp" @@ -187,7 +196,7 @@ paths = [ ] expect_dir = "../../tests/adders/adder_d1/expects" expect_name = "first_fail_second_norun.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/adders/adder_d1/first_fail_second_norun.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/adders/adder_d1/first_fail_second_norun.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot 2>&1" [[tests]] name = "interp.tests_adders_adder_d1_first_thread_fails.first_thread_fails_interp" @@ -196,7 +205,7 @@ paths = [ ] expect_dir = "../../tests/adders/adder_d1/expects" expect_name = "first_thread_fails.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/adders/adder_d1/first_thread_fails.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/adders/adder_d1/first_thread_fails.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot 2>&1" [[tests]] name = "interp.tests_adders_adder_d1_fork_before_step_error.fork_before_step_error_interp" @@ -205,7 +214,7 @@ paths = [ ] expect_dir = "../../tests/adders/adder_d1/expects" expect_name = "fork_before_step_error.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/adders/adder_d1/fork_before_step_error.tx --skip-static-step-fork-checks --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/fork_before_step_error.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/adders/adder_d1/fork_before_step_error.tx --skip-static-step-fork-checks --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/fork_before_step_error.prot 2>&1" [[tests]] name = "interp.tests_adders_adder_d1_loop_with_assigns.loop_with_assigns_interp" @@ -214,7 +223,7 @@ paths = [ ] expect_dir = "../../tests/adders/adder_d1/expects" expect_name = "loop_with_assigns.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/adders/adder_d1/loop_with_assigns.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/loop_with_assigns.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/adders/adder_d1/loop_with_assigns.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/loop_with_assigns.prot 2>&1" [[tests]] name = "interp.tests_adders_adder_d1_nested_busy_wait.nested_busy_wait_interp" @@ -223,7 +232,7 @@ paths = [ ] expect_dir = "../../tests/adders/adder_d1/expects" expect_name = "nested_busy_wait.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/adders/adder_d1/nested_busy_wait.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/nested_busy_wait.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/adders/adder_d1/nested_busy_wait.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/nested_busy_wait.prot 2>&1" [[tests]] name = "interp.tests_adders_adder_d1_second_thread_fails.second_thread_fails_interp" @@ -232,7 +241,7 @@ paths = [ ] expect_dir = "../../tests/adders/adder_d1/expects" expect_name = "second_thread_fails.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/adders/adder_d1/second_thread_fails.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/adders/adder_d1/second_thread_fails.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot 2>&1" [[tests]] name = "interp.tests_adders_adder_d1_wait_and_add_correct.wait_and_add_correct_interp" @@ -241,7 +250,7 @@ paths = [ ] expect_dir = "../../tests/adders/adder_d1/expects" expect_name = "wait_and_add_correct.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/adders/adder_d1/wait_and_add_correct.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/adders/adder_d1/wait_and_add_correct.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot 2>&1" [[tests]] name = "interp.tests_adders_adder_d1_wait_and_add_incorrect_implicit.wait_and_add_incorrect_implicit_interp" @@ -250,7 +259,7 @@ paths = [ ] expect_dir = "../../tests/adders/adder_d1/expects" expect_name = "wait_and_add_incorrect_implicit.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/adders/adder_d1/wait_and_add_incorrect_implicit.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/adders/adder_d1/wait_and_add_incorrect_implicit.tx --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot 2>&1" [[tests]] name = "interp.tests_adders_adder_d2_both_threads_pass.both_threads_pass_interp" @@ -259,7 +268,7 @@ paths = [ ] expect_dir = "../../tests/adders/adder_d2/expects" expect_name = "both_threads_pass.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/adders/adder_d2/both_threads_pass.tx --verilog tests/adders/adder_d2/add_d2.v --protocol tests/adders/adder_d2/add_d2.prot --max-steps 4 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/adders/adder_d2/both_threads_pass.tx --verilog tests/adders/adder_d2/add_d2.v --protocol tests/adders/adder_d2/add_d2.prot --max-steps 4 2>&1" [[tests]] name = "interp.tests_adders_adder_d2_no_dontcare_conflict.no_dontcare_conflict_interp" @@ -268,7 +277,7 @@ paths = [ ] expect_dir = "../../tests/adders/adder_d2/expects" expect_name = "no_dontcare_conflict.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/adders/adder_d2/no_dontcare_conflict.tx --verilog tests/adders/adder_d2/add_d2.v --protocol tests/adders/adder_d2/no_dontcare_conflict.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/adders/adder_d2/no_dontcare_conflict.tx --verilog tests/adders/adder_d2/add_d2.v --protocol tests/adders/adder_d2/no_dontcare_conflict.prot 2>&1" [[tests]] name = "interp.tests_alus_alu_d1.alu_d1_interp" @@ -277,7 +286,7 @@ paths = [ ] expect_dir = "../../tests/alus/expects" expect_name = "alu_d1.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/alus/alu_d1.tx --verilog tests/alus/alu_d1.v --protocol tests/alus/alu_d1.prot --module alu_d1 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/alus/alu_d1.tx --verilog tests/alus/alu_d1.v --protocol tests/alus/alu_d1.prot --module alu_d1 2>&1" [[tests]] name = "interp.tests_alus_alu_d2.alu_d2_interp" @@ -286,7 +295,7 @@ paths = [ ] expect_dir = "../../tests/alus/expects" expect_name = "alu_d2.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/alus/alu_d2.tx --verilog tests/alus/alu_d2.v --protocol tests/alus/alu_d2.prot --module alu_d2 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/alus/alu_d2.tx --verilog tests/alus/alu_d2.v --protocol tests/alus/alu_d2.prot --module alu_d2 2>&1" [[tests]] name = "interp.tests_bounded_ready_valid_toy_reciever_0.toy_reciever_0_interp" @@ -295,7 +304,7 @@ paths = [ ] expect_dir = "../../tests/bounded_ready_valid/expects" expect_name = "toy_reciever_0.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/bounded_ready_valid/toy_reciever_0.tx --verilog tests/bounded_ready_valid/toy_receiver_0.v --protocol tests/bounded_ready_valid/bounded_rv.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/bounded_ready_valid/toy_reciever_0.tx --verilog tests/bounded_ready_valid/toy_receiver_0.v --protocol tests/bounded_ready_valid/bounded_rv.prot 2>&1" [[tests]] name = "interp.tests_bounded_ready_valid_toy_reciever_1.toy_reciever_1_interp" @@ -304,7 +313,7 @@ paths = [ ] expect_dir = "../../tests/bounded_ready_valid/expects" expect_name = "toy_reciever_1.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/bounded_ready_valid/toy_reciever_1.tx --verilog tests/bounded_ready_valid/toy_receiver_1.v --protocol tests/bounded_ready_valid/bounded_rv.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/bounded_ready_valid/toy_reciever_1.tx --verilog tests/bounded_ready_valid/toy_receiver_1.v --protocol tests/bounded_ready_valid/bounded_rv.prot 2>&1" [[tests]] name = "interp.tests_bounded_ready_valid_toy_reciever_2.toy_reciever_2_interp" @@ -313,7 +322,7 @@ paths = [ ] expect_dir = "../../tests/bounded_ready_valid/expects" expect_name = "toy_reciever_2.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/bounded_ready_valid/toy_reciever_2.tx --verilog tests/bounded_ready_valid/toy_receiver_2.v --protocol tests/bounded_ready_valid/bounded_rv.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/bounded_ready_valid/toy_reciever_2.tx --verilog tests/bounded_ready_valid/toy_receiver_2.v --protocol tests/bounded_ready_valid/bounded_rv.prot 2>&1" [[tests]] name = "interp.tests_bounded_ready_valid_toy_reciever_3.toy_reciever_3_interp" @@ -322,7 +331,7 @@ paths = [ ] expect_dir = "../../tests/bounded_ready_valid/expects" expect_name = "toy_reciever_3.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/bounded_ready_valid/toy_reciever_3.tx --verilog tests/bounded_ready_valid/toy_receiver_3.v --protocol tests/bounded_ready_valid/bounded_rv.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/bounded_ready_valid/toy_reciever_3.tx --verilog tests/bounded_ready_valid/toy_receiver_3.v --protocol tests/bounded_ready_valid/bounded_rv.prot 2>&1" [[tests]] name = "interp.tests_brave_new_world_bit_truncation_bit_truncation_fft_bug.bit_truncation_fft_bug_interp" @@ -331,7 +340,7 @@ paths = [ ] expect_dir = "../../tests/brave_new_world/bit_truncation/expects" expect_name = "bit_truncation_fft_bug.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/brave_new_world/bit_truncation/bit_truncation_fft_bug.tx --verilog tests/brave_new_world/bit_truncation/bit_truncation_fft_bug.v --protocol tests/brave_new_world/bit_truncation/bit_truncation_fft.prot --module bit_truncation_fft_bug 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/brave_new_world/bit_truncation/bit_truncation_fft_bug.tx --verilog tests/brave_new_world/bit_truncation/bit_truncation_fft_bug.v --protocol tests/brave_new_world/bit_truncation/bit_truncation_fft.prot --module bit_truncation_fft_bug 2>&1" [[tests]] name = "interp.tests_brave_new_world_bit_truncation_bit_truncation_fft_fix.bit_truncation_fft_fix_interp" @@ -340,7 +349,7 @@ paths = [ ] expect_dir = "../../tests/brave_new_world/bit_truncation/expects" expect_name = "bit_truncation_fft_fix.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/brave_new_world/bit_truncation/bit_truncation_fft_fix.tx --verilog tests/brave_new_world/bit_truncation/bit_truncation_fft_fix.v --protocol tests/brave_new_world/bit_truncation/bit_truncation_fft.prot --module round11_rne_unsigned_fixed 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/brave_new_world/bit_truncation/bit_truncation_fft_fix.tx --verilog tests/brave_new_world/bit_truncation/bit_truncation_fft_fix.v --protocol tests/brave_new_world/bit_truncation/bit_truncation_fft.prot --module round11_rne_unsigned_fixed 2>&1" [[tests]] name = "interp.tests_brave_new_world_bit_truncation_bit_truncation_sha_bug.bit_truncation_sha_bug_interp" @@ -349,7 +358,7 @@ paths = [ ] expect_dir = "../../tests/brave_new_world/bit_truncation/expects" expect_name = "bit_truncation_sha_bug.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/brave_new_world/bit_truncation/bit_truncation_sha_bug.tx --verilog tests/brave_new_world/bit_truncation/bit_truncation_sha_bug.v --protocol tests/brave_new_world/bit_truncation/bit_truncation_sha.prot --module bit_truncation_sha_bug 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/brave_new_world/bit_truncation/bit_truncation_sha_bug.tx --verilog tests/brave_new_world/bit_truncation/bit_truncation_sha_bug.v --protocol tests/brave_new_world/bit_truncation/bit_truncation_sha.prot --module bit_truncation_sha_bug 2>&1" [[tests]] name = "interp.tests_brave_new_world_bit_truncation_bit_truncation_sha_fix.bit_truncation_sha_fix_interp" @@ -358,7 +367,7 @@ paths = [ ] expect_dir = "../../tests/brave_new_world/bit_truncation/expects" expect_name = "bit_truncation_sha_fix.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/brave_new_world/bit_truncation/bit_truncation_sha_fix.tx --verilog tests/brave_new_world/bit_truncation/bit_truncation_sha_fix.v --protocol tests/brave_new_world/bit_truncation/bit_truncation_sha.prot --module bit_truncation_sha_fixed 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/brave_new_world/bit_truncation/bit_truncation_sha_fix.tx --verilog tests/brave_new_world/bit_truncation/bit_truncation_sha_fix.v --protocol tests/brave_new_world/bit_truncation/bit_truncation_sha.prot --module bit_truncation_sha_fixed 2>&1" [[tests]] name = "interp.tests_brave_new_world_failure_to_update_ftu_sha_bug.ftu_sha_bug_interp" @@ -367,7 +376,7 @@ paths = [ ] expect_dir = "../../tests/brave_new_world/failure_to_update/expects" expect_name = "ftu_sha_bug.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/brave_new_world/failure_to_update/ftu_sha_bug.tx --verilog tests/brave_new_world/failure_to_update/ftu_sha_bug.v --protocol tests/brave_new_world/failure_to_update/ftu_sha.prot --module fsm_update_buggy 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/brave_new_world/failure_to_update/ftu_sha_bug.tx --verilog tests/brave_new_world/failure_to_update/ftu_sha_bug.v --protocol tests/brave_new_world/failure_to_update/ftu_sha.prot --module fsm_update_buggy 2>&1" [[tests]] name = "interp.tests_brave_new_world_failure_to_update_ftu_sha_fix.ftu_sha_fix_interp" @@ -376,7 +385,7 @@ paths = [ ] expect_dir = "../../tests/brave_new_world/failure_to_update/expects" expect_name = "ftu_sha_fix.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/brave_new_world/failure_to_update/ftu_sha_fix.tx --verilog tests/brave_new_world/failure_to_update/ftu_sha_fix.v --protocol tests/brave_new_world/failure_to_update/ftu_sha.prot --module fsm_update_fixed_gated 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/brave_new_world/failure_to_update/ftu_sha_fix.tx --verilog tests/brave_new_world/failure_to_update/ftu_sha_fix.v --protocol tests/brave_new_world/failure_to_update/ftu_sha.prot --module fsm_update_fixed_gated 2>&1" [[tests]] name = "interp.tests_brave_new_world_signal_asynchrony_signal_async_bug.signal_async_bug_interp" @@ -385,7 +394,7 @@ paths = [ ] expect_dir = "../../tests/brave_new_world/signal_asynchrony/expects" expect_name = "signal_async_bug.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/brave_new_world/signal_asynchrony/signal_async_bug.tx --verilog tests/brave_new_world/signal_asynchrony/signal_async_bug.v --protocol tests/brave_new_world/signal_asynchrony/signal_async.prot --module signal_async_bug 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/brave_new_world/signal_asynchrony/signal_async_bug.tx --verilog tests/brave_new_world/signal_asynchrony/signal_async_bug.v --protocol tests/brave_new_world/signal_asynchrony/signal_async.prot --module signal_async_bug 2>&1" [[tests]] name = "interp.tests_brave_new_world_signal_asynchrony_signal_async_fix.signal_async_fix_interp" @@ -394,7 +403,7 @@ paths = [ ] expect_dir = "../../tests/brave_new_world/signal_asynchrony/expects" expect_name = "signal_async_fix.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/brave_new_world/signal_asynchrony/signal_async_fix.tx --verilog tests/brave_new_world/signal_asynchrony/signal_async_fix.v --protocol tests/brave_new_world/signal_asynchrony/signal_async.prot --module signal_async_fix 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/brave_new_world/signal_asynchrony/signal_async_fix.tx --verilog tests/brave_new_world/signal_asynchrony/signal_async_fix.v --protocol tests/brave_new_world/signal_asynchrony/signal_async.prot --module signal_async_fix 2>&1" [[tests]] name = "interp.tests_brave_new_world_use_without_valid_use_without_valid_bug.use_without_valid_bug_interp" @@ -403,7 +412,7 @@ paths = [ ] expect_dir = "../../tests/brave_new_world/use_without_valid/expects" expect_name = "use_without_valid_bug.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/brave_new_world/use_without_valid/use_without_valid_bug.tx --verilog tests/brave_new_world/use_without_valid/use_without_valid_bug.v --protocol tests/brave_new_world/use_without_valid/use_without_valid.prot --module use_without_valid_bug 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/brave_new_world/use_without_valid/use_without_valid_bug.tx --verilog tests/brave_new_world/use_without_valid/use_without_valid_bug.v --protocol tests/brave_new_world/use_without_valid/use_without_valid.prot --module use_without_valid_bug 2>&1" [[tests]] name = "interp.tests_brave_new_world_use_without_valid_use_without_valid_fix.use_without_valid_fix_interp" @@ -412,7 +421,7 @@ paths = [ ] expect_dir = "../../tests/brave_new_world/use_without_valid/expects" expect_name = "use_without_valid_fix.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/brave_new_world/use_without_valid/use_without_valid_fix.tx --verilog tests/brave_new_world/use_without_valid/use_without_valid_fix.v --protocol tests/brave_new_world/use_without_valid/use_without_valid.prot --module use_without_valid_fix 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/brave_new_world/use_without_valid/use_without_valid_fix.tx --verilog tests/brave_new_world/use_without_valid/use_without_valid_fix.v --protocol tests/brave_new_world/use_without_valid/use_without_valid.prot --module use_without_valid_fix 2>&1" [[tests]] name = "interp.tests_counters_counter.counter_interp" @@ -421,7 +430,7 @@ paths = [ ] expect_dir = "../../tests/counters/expects" expect_name = "counter.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/counters/counter.tx --verilog tests/counters/counter.v --protocol tests/counters/counter.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/counters/counter.tx --verilog tests/counters/counter.v --protocol tests/counters/counter.prot 2>&1" [[tests]] name = "interp.tests_fifo_fifo.fifo_interp" @@ -430,7 +439,7 @@ paths = [ ] expect_dir = "../../tests/fifo/expects" expect_name = "fifo.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/fifo/fifo.tx --verilog tests/fifo/bsg_mem_1rw_sync.v tests/fifo/bsg_mem_1rw_sync_synth.v tests/fifo/bsg_circular_ptr.v tests/fifo/bsg_fifo_1rw_large.v tests/fifo/fifo_wrapper.v --protocol tests/fifo/fifo.prot --module fifo_wrapper 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/fifo/fifo.tx --verilog tests/fifo/bsg_mem_1rw_sync.v tests/fifo/bsg_mem_1rw_sync_synth.v tests/fifo/bsg_circular_ptr.v tests/fifo/bsg_fifo_1rw_large.v tests/fifo/fifo_wrapper.v --protocol tests/fifo/fifo.prot --module fifo_wrapper 2>&1" [[tests]] name = "interp.tests_fifo_pop_before_push_fail.pop_before_push_fail_interp" @@ -439,7 +448,7 @@ paths = [ ] expect_dir = "../../tests/fifo/expects" expect_name = "pop_before_push_fail.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/fifo/pop_before_push_fail.tx --verilog tests/fifo/bsg_mem_1rw_sync.v tests/fifo/bsg_mem_1rw_sync_synth.v tests/fifo/bsg_circular_ptr.v tests/fifo/bsg_fifo_1rw_large.v tests/fifo/fifo_wrapper.v --protocol tests/fifo/fifo.prot --module fifo_wrapper 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/fifo/pop_before_push_fail.tx --verilog tests/fifo/bsg_mem_1rw_sync.v tests/fifo/bsg_mem_1rw_sync_synth.v tests/fifo/bsg_circular_ptr.v tests/fifo/bsg_fifo_1rw_large.v tests/fifo/fifo_wrapper.v --protocol tests/fifo/fifo.prot --module fifo_wrapper 2>&1" [[tests]] name = "interp.tests_fifo_pop_empty_fail.pop_empty_fail_interp" @@ -448,7 +457,7 @@ paths = [ ] expect_dir = "../../tests/fifo/expects" expect_name = "pop_empty_fail.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/fifo/pop_empty_fail.tx --verilog tests/fifo/bsg_mem_1rw_sync.v tests/fifo/bsg_mem_1rw_sync_synth.v tests/fifo/bsg_circular_ptr.v tests/fifo/bsg_fifo_1rw_large.v tests/fifo/fifo_wrapper.v --protocol tests/fifo/fifo.prot --module fifo_wrapper 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/fifo/pop_empty_fail.tx --verilog tests/fifo/bsg_mem_1rw_sync.v tests/fifo/bsg_mem_1rw_sync_synth.v tests/fifo/bsg_circular_ptr.v tests/fifo/bsg_fifo_1rw_large.v tests/fifo/fifo_wrapper.v --protocol tests/fifo/fifo.prot --module fifo_wrapper 2>&1" [[tests]] name = "interp.tests_fifo_push_pop_conflict.push_pop_conflict_interp" @@ -457,7 +466,7 @@ paths = [ ] expect_dir = "../../tests/fifo/expects" expect_name = "push_pop_conflict.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/fifo/push_pop_conflict.tx --verilog tests/fifo/bsg_mem_1rw_sync.v tests/fifo/bsg_mem_1rw_sync_synth.v tests/fifo/bsg_circular_ptr.v tests/fifo/bsg_fifo_1rw_large.v tests/fifo/fifo_wrapper.v --protocol tests/fifo/fifo.prot --module fifo_wrapper 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/fifo/push_pop_conflict.tx --verilog tests/fifo/bsg_mem_1rw_sync.v tests/fifo/bsg_mem_1rw_sync_synth.v tests/fifo/bsg_circular_ptr.v tests/fifo/bsg_fifo_1rw_large.v tests/fifo/fifo_wrapper.v --protocol tests/fifo/fifo.prot --module fifo_wrapper 2>&1" [[tests]] name = "interp.tests_fifo_push_pop_identity_ok.push_pop_identity_ok_interp" @@ -466,7 +475,7 @@ paths = [ ] expect_dir = "../../tests/fifo/expects" expect_name = "push_pop_identity_ok.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/fifo/push_pop_identity_ok.tx --verilog tests/fifo/bsg_mem_1rw_sync.v tests/fifo/bsg_mem_1rw_sync_synth.v tests/fifo/bsg_circular_ptr.v tests/fifo/bsg_fifo_1rw_large.v tests/fifo/fifo_wrapper.v --protocol tests/fifo/fifo.prot --module fifo_wrapper 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/fifo/push_pop_identity_ok.tx --verilog tests/fifo/bsg_mem_1rw_sync.v tests/fifo/bsg_mem_1rw_sync_synth.v tests/fifo/bsg_circular_ptr.v tests/fifo/bsg_fifo_1rw_large.v tests/fifo/fifo_wrapper.v --protocol tests/fifo/fifo.prot --module fifo_wrapper 2>&1" [[tests]] name = "interp.tests_fifo_push_pop_loop_empty.push_pop_loop_empty_interp" @@ -475,7 +484,7 @@ paths = [ ] expect_dir = "../../tests/fifo/expects" expect_name = "push_pop_loop_empty.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/fifo/push_pop_loop_empty.tx --verilog tests/fifo/bsg_mem_1rw_sync.v tests/fifo/bsg_mem_1rw_sync_synth.v tests/fifo/bsg_circular_ptr.v tests/fifo/bsg_fifo_1rw_large.v tests/fifo/fifo_wrapper.v --protocol tests/fifo/fifo_bounded_loop.prot --module fifo_wrapper 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/fifo/push_pop_loop_empty.tx --verilog tests/fifo/bsg_mem_1rw_sync.v tests/fifo/bsg_mem_1rw_sync_synth.v tests/fifo/bsg_circular_ptr.v tests/fifo/bsg_fifo_1rw_large.v tests/fifo/fifo_wrapper.v --protocol tests/fifo/fifo_bounded_loop.prot --module fifo_wrapper 2>&1" [[tests]] name = "interp.tests_fifo_push_pop_loop_not_empty.push_pop_loop_not_empty_interp" @@ -484,7 +493,7 @@ paths = [ ] expect_dir = "../../tests/fifo/expects" expect_name = "push_pop_loop_not_empty.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/fifo/push_pop_loop_not_empty.tx --verilog tests/fifo/bsg_mem_1rw_sync.v tests/fifo/bsg_mem_1rw_sync_synth.v tests/fifo/bsg_circular_ptr.v tests/fifo/bsg_fifo_1rw_large.v tests/fifo/fifo_wrapper.v --protocol tests/fifo/fifo_bounded_loop.prot --module fifo_wrapper 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/fifo/push_pop_loop_not_empty.tx --verilog tests/fifo/bsg_mem_1rw_sync.v tests/fifo/bsg_mem_1rw_sync_synth.v tests/fifo/bsg_circular_ptr.v tests/fifo/bsg_fifo_1rw_large.v tests/fifo/fifo_wrapper.v --protocol tests/fifo/fifo_bounded_loop.prot --module fifo_wrapper 2>&1" [[tests]] name = "interp.tests_identities_dual_identity_d0_dual_identity_d0_combdep.dual_identity_d0_combdep_interp" @@ -493,7 +502,7 @@ paths = [ ] expect_dir = "../../tests/identities/dual_identity_d0/expects" expect_name = "dual_identity_d0_combdep.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/identities/dual_identity_d0/dual_identity_d0_combdep.tx --verilog tests/identities/dual_identity_d0/dual_identity_d0.v --protocol tests/identities/dual_identity_d0/dual_identity_d0.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/identities/dual_identity_d0/dual_identity_d0_combdep.tx --verilog tests/identities/dual_identity_d0/dual_identity_d0.v --protocol tests/identities/dual_identity_d0/dual_identity_d0.prot 2>&1" [[tests]] name = "interp.tests_identities_dual_identity_d1_dual_identity_d1.dual_identity_d1_interp" @@ -502,7 +511,7 @@ paths = [ ] expect_dir = "../../tests/identities/dual_identity_d1/expects" expect_name = "dual_identity_d1.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/identities/dual_identity_d1/dual_identity_d1.tx --verilog tests/identities/dual_identity_d1/dual_identity_d1.v --protocol tests/identities/dual_identity_d1/dual_identity_d1.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/identities/dual_identity_d1/dual_identity_d1.tx --verilog tests/identities/dual_identity_d1/dual_identity_d1.v --protocol tests/identities/dual_identity_d1/dual_identity_d1.prot 2>&1" [[tests]] name = "interp.tests_identities_identity_d0_passthrough_combdep.passthrough_combdep_interp" @@ -511,7 +520,7 @@ paths = [ ] expect_dir = "../../tests/identities/identity_d0/expects" expect_name = "passthrough_combdep.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/identities/identity_d0/passthrough_combdep.tx --verilog tests/identities/identity_d0/identity_d0.v --protocol tests/identities/identity_d0/identity_d0.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/identities/identity_d0/passthrough_combdep.tx --verilog tests/identities/identity_d0/identity_d0.v --protocol tests/identities/identity_d0/identity_d0.prot 2>&1" [[tests]] name = "interp.tests_identities_identity_d1_explicit_fork.explicit_fork_interp" @@ -520,7 +529,7 @@ paths = [ ] expect_dir = "../../tests/identities/identity_d1/expects" expect_name = "explicit_fork.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/identities/identity_d1/explicit_fork.tx --verilog tests/identities/identity_d1/identity_d1.v --protocol tests/identities/identity_d1/identity_d1.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/identities/identity_d1/explicit_fork.tx --verilog tests/identities/identity_d1/identity_d1.v --protocol tests/identities/identity_d1/identity_d1.prot 2>&1" [[tests]] name = "interp.tests_identities_identity_d1_slicing_err.slicing_err_interp" @@ -529,7 +538,7 @@ paths = [ ] expect_dir = "../../tests/identities/identity_d1/expects" expect_name = "slicing_err.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/identities/identity_d1/slicing_err.tx --verilog tests/identities/identity_d1/identity_d1.v --protocol tests/identities/identity_d1/slicing_err.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/identities/identity_d1/slicing_err.tx --verilog tests/identities/identity_d1/identity_d1.v --protocol tests/identities/identity_d1/slicing_err.prot 2>&1" [[tests]] name = "interp.tests_identities_identity_d1_slicing_invalid.slicing_invalid_interp" @@ -538,7 +547,7 @@ paths = [ ] expect_dir = "../../tests/identities/identity_d1/expects" expect_name = "slicing_invalid.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/identities/identity_d1/slicing_invalid.tx --verilog tests/identities/identity_d1/identity_d1.v --protocol tests/identities/identity_d1/slicing_invalid.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/identities/identity_d1/slicing_invalid.tx --verilog tests/identities/identity_d1/identity_d1.v --protocol tests/identities/identity_d1/slicing_invalid.prot 2>&1" [[tests]] name = "interp.tests_identities_identity_d1_slicing_ok.slicing_ok_interp" @@ -547,7 +556,7 @@ paths = [ ] expect_dir = "../../tests/identities/identity_d1/expects" expect_name = "slicing_ok.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/identities/identity_d1/slicing_ok.tx --verilog tests/identities/identity_d1/identity_d1.v --protocol tests/identities/identity_d1/identity_d1.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/identities/identity_d1/slicing_ok.tx --verilog tests/identities/identity_d1/identity_d1.v --protocol tests/identities/identity_d1/identity_d1.prot 2>&1" [[tests]] name = "interp.tests_identities_identity_d2_single_thread_passes.single_thread_passes_interp" @@ -556,7 +565,7 @@ paths = [ ] expect_dir = "../../tests/identities/identity_d2/expects" expect_name = "single_thread_passes.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/identities/identity_d2/single_thread_passes.tx --verilog tests/identities/identity_d2/identity_d2.v --protocol tests/identities/identity_d2/identity_d2.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/identities/identity_d2/single_thread_passes.tx --verilog tests/identities/identity_d2/identity_d2.v --protocol tests/identities/identity_d2/identity_d2.prot 2>&1" [[tests]] name = "interp.tests_identities_identity_d2_two_assignments_same_value.two_assignments_same_value_interp" @@ -565,7 +574,7 @@ paths = [ ] expect_dir = "../../tests/identities/identity_d2/expects" expect_name = "two_assignments_same_value.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/identities/identity_d2/two_assignments_same_value.tx --verilog tests/identities/identity_d2/identity_d2.v --protocol tests/identities/identity_d2/identity_d2.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/identities/identity_d2/two_assignments_same_value.tx --verilog tests/identities/identity_d2/identity_d2.v --protocol tests/identities/identity_d2/identity_d2.prot 2>&1" [[tests]] name = "interp.tests_identities_identity_d2_two_different_assignments_error.two_different_assignments_error_interp" @@ -574,7 +583,7 @@ paths = [ ] expect_dir = "../../tests/identities/identity_d2/expects" expect_name = "two_different_assignments_error.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/identities/identity_d2/two_different_assignments_error.tx --verilog tests/identities/identity_d2/identity_d2.v --protocol tests/identities/identity_d2/identity_d2.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/identities/identity_d2/two_different_assignments_error.tx --verilog tests/identities/identity_d2/identity_d2.v --protocol tests/identities/identity_d2/identity_d2.prot 2>&1" [[tests]] name = "interp.tests_identities_identity_d2_two_fork_err.two_fork_err_interp" @@ -583,7 +592,7 @@ paths = [ ] expect_dir = "../../tests/identities/identity_d2/expects" expect_name = "two_fork_err.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/identities/identity_d2/two_fork_err.tx --skip-static-step-fork-checks --verilog tests/identities/identity_d2/identity_d2.v --protocol tests/identities/identity_d2/two_fork_err.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/identities/identity_d2/two_fork_err.tx --skip-static-step-fork-checks --verilog tests/identities/identity_d2/identity_d2.v --protocol tests/identities/identity_d2/two_fork_err.prot 2>&1" [[tests]] name = "interp.tests_identities_identity_d2_two_fork_ill_formed.two_fork_ill_formed_interp" @@ -592,7 +601,7 @@ paths = [ ] expect_dir = "../../tests/identities/identity_d2/expects" expect_name = "two_fork_ill_formed.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/identities/identity_d2/two_fork_ill_formed.tx --verilog tests/identities/identity_d2/identity_d2.v --protocol tests/identities/identity_d2/two_fork_ill_formed.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/identities/identity_d2/two_fork_ill_formed.tx --verilog tests/identities/identity_d2/identity_d2.v --protocol tests/identities/identity_d2/two_fork_ill_formed.prot 2>&1" [[tests]] name = "interp.tests_inverters_inverter_d0.inverter_d0_interp" @@ -601,7 +610,7 @@ paths = [ ] expect_dir = "../../tests/inverters/expects" expect_name = "inverter_d0.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/inverters/inverter_d0.tx --verilog tests/inverters/inverter_d0.v --protocol tests/inverters/inverter_d0.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/inverters/inverter_d0.tx --verilog tests/inverters/inverter_d0.v --protocol tests/inverters/inverter_d0.prot 2>&1" [[tests]] name = "interp.tests_multi_multi0_multi0.multi0_interp" @@ -610,7 +619,7 @@ paths = [ ] expect_dir = "../../tests/multi/multi0/expects" expect_name = "multi0.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/multi/multi0/multi0.tx --verilog tests/multi/multi0/multi0.v --protocol tests/multi/multi0/multi0.prot --module multi0 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/multi/multi0/multi0.tx --verilog tests/multi/multi0/multi0.v --protocol tests/multi/multi0/multi0.prot --module multi0 2>&1" [[tests]] name = "interp.tests_multi_multi0keep_multi0keep.multi0keep_interp" @@ -619,7 +628,7 @@ paths = [ ] expect_dir = "../../tests/multi/multi0keep/expects" expect_name = "multi0keep.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/multi/multi0keep/multi0keep.tx --verilog tests/multi/multi0keep/multi0keep.v --protocol tests/multi/multi0keep/multi0keep.prot --module multi0keep 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/multi/multi0keep/multi0keep.tx --verilog tests/multi/multi0keep/multi0keep.v --protocol tests/multi/multi0keep/multi0keep.prot --module multi0keep 2>&1" [[tests]] name = "interp.tests_multi_multi0keep2const_multi0keep2const.multi0keep2const_interp" @@ -628,7 +637,7 @@ paths = [ ] expect_dir = "../../tests/multi/multi0keep2const/expects" expect_name = "multi0keep2const.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/multi/multi0keep2const/multi0keep2const.tx --verilog tests/multi/multi0keep2const/multi0keep2const.v tests/multi/multi0keep/multi0keep.v --protocol tests/multi/multi0keep2const/multi0keep2const.prot --module multi0keep2const 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/multi/multi0keep2const/multi0keep2const.tx --verilog tests/multi/multi0keep2const/multi0keep2const.v tests/multi/multi0keep/multi0keep.v --protocol tests/multi/multi0keep2const/multi0keep2const.prot --module multi0keep2const 2>&1" [[tests]] name = "interp.tests_multi_multi2const_multi2const.multi2const_interp" @@ -637,7 +646,7 @@ paths = [ ] expect_dir = "../../tests/multi/multi2const/expects" expect_name = "multi2const.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/multi/multi2const/multi2const.tx --verilog tests/multi/multi2const/multi2const.v tests/multi/multi0/multi0.v --protocol tests/multi/multi2const/multi2const.prot --module multi2const 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/multi/multi2const/multi2const.tx --verilog tests/multi/multi2const/multi2const.v tests/multi/multi0/multi0.v --protocol tests/multi/multi2const/multi2const.prot --module multi2const 2>&1" [[tests]] name = "interp.tests_multi_multi2multi_multi2multi.multi2multi_interp" @@ -646,7 +655,7 @@ paths = [ ] expect_dir = "../../tests/multi/multi2multi/expects" expect_name = "multi2multi.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/multi/multi2multi/multi2multi.tx --verilog tests/multi/multi2multi/multi2multi.v tests/multi/multi0/multi0.v --protocol tests/multi/multi2multi/multi2multi.prot --module multi2multi 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/multi/multi2multi/multi2multi.tx --verilog tests/multi/multi2multi/multi2multi.v tests/multi/multi0/multi0.v --protocol tests/multi/multi2multi/multi2multi.prot --module multi2multi 2>&1" [[tests]] name = "interp.tests_multi_multi_data_multi_data.multi_data_interp" @@ -655,7 +664,7 @@ paths = [ ] expect_dir = "../../tests/multi/multi_data/expects" expect_name = "multi_data.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/multi/multi_data/multi_data.tx --verilog tests/multi/multi_data/multi_data.v --protocol tests/multi/multi_data/multi_data.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/multi/multi_data/multi_data.tx --verilog tests/multi/multi_data/multi_data.v --protocol tests/multi/multi_data/multi_data.prot 2>&1" [[tests]] name = "interp.tests_multipliers_mult_d2_both_threads_fail.both_threads_fail_interp" @@ -664,7 +673,7 @@ paths = [ ] expect_dir = "../../tests/multipliers/mult_d2/expects" expect_name = "both_threads_fail.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/multipliers/mult_d2/both_threads_fail.tx --verilog tests/multipliers/mult_d2/mult_d2.v --protocol tests/multipliers/mult_d2/mult_d2.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/multipliers/mult_d2/both_threads_fail.tx --verilog tests/multipliers/mult_d2/mult_d2.v --protocol tests/multipliers/mult_d2/mult_d2.prot 2>&1" [[tests]] name = "interp.tests_multipliers_mult_d2_both_threads_pass.both_threads_pass_interp" @@ -673,7 +682,7 @@ paths = [ ] expect_dir = "../../tests/multipliers/mult_d2/expects" expect_name = "both_threads_pass.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/multipliers/mult_d2/both_threads_pass.tx --verilog tests/multipliers/mult_d2/mult_d2.v --protocol tests/multipliers/mult_d2/mult_d2.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/multipliers/mult_d2/both_threads_pass.tx --verilog tests/multipliers/mult_d2/mult_d2.v --protocol tests/multipliers/mult_d2/mult_d2.prot 2>&1" [[tests]] name = "interp.tests_multipliers_mult_d2_first_thread_fails.first_thread_fails_interp" @@ -682,7 +691,7 @@ paths = [ ] expect_dir = "../../tests/multipliers/mult_d2/expects" expect_name = "first_thread_fails.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/multipliers/mult_d2/first_thread_fails.tx --verilog tests/multipliers/mult_d2/mult_d2.v --protocol tests/multipliers/mult_d2/mult_d2.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/multipliers/mult_d2/first_thread_fails.tx --verilog tests/multipliers/mult_d2/mult_d2.v --protocol tests/multipliers/mult_d2/mult_d2.prot 2>&1" [[tests]] name = "interp.tests_multipliers_mult_d2_second_thread_fails.second_thread_fails_interp" @@ -691,7 +700,7 @@ paths = [ ] expect_dir = "../../tests/multipliers/mult_d2/expects" expect_name = "second_thread_fails.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/multipliers/mult_d2/second_thread_fails.tx --verilog tests/multipliers/mult_d2/mult_d2.v --protocol tests/multipliers/mult_d2/mult_d2.prot 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/multipliers/mult_d2/second_thread_fails.tx --verilog tests/multipliers/mult_d2/mult_d2.v --protocol tests/multipliers/mult_d2/mult_d2.prot 2>&1" [[tests]] name = "interp.tests_picorv32_unsigned_mul_no_reset.unsigned_mul_no_reset_interp" @@ -700,7 +709,7 @@ paths = [ ] expect_dir = "../../tests/picorv32/expects" expect_name = "unsigned_mul_no_reset.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/picorv32/unsigned_mul_no_reset.tx --verilog examples/picorv32/picorv32.v --protocol tests/picorv32/pcpi_mul_no_reset.prot --module picorv32_pcpi_mul --max-steps 200 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/picorv32/unsigned_mul_no_reset.tx --verilog examples/picorv32/picorv32.v --protocol tests/picorv32/pcpi_mul_no_reset.prot --module picorv32_pcpi_mul --max-steps 200 2>&1" [[tests]] name = "interp.tests_picorv32_unsigned_mul_no_reset_thread_assignment_persistence.unsigned_mul_no_reset_thread_assignment_persistence_interp" @@ -709,7 +718,7 @@ paths = [ ] expect_dir = "../../tests/picorv32/expects" expect_name = "unsigned_mul_no_reset_thread_assignment_persistence.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/picorv32/unsigned_mul_no_reset_thread_assignment_persistence.tx --verilog examples/picorv32/picorv32.v --protocol tests/picorv32/pcpi_mul_no_reset.prot --module picorv32_pcpi_mul --max-steps 200 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/picorv32/unsigned_mul_no_reset_thread_assignment_persistence.tx --verilog examples/picorv32/picorv32.v --protocol tests/picorv32/pcpi_mul_no_reset.prot --module picorv32_pcpi_mul --max-steps 200 2>&1" [[tests]] name = "interp.tests_wishbone_wishbone.wishbone_interp" @@ -718,4 +727,4 @@ paths = [ ] expect_dir = "../../tests/wishbone/expects" expect_name = "wishbone.interp.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-interp -- --color never --transactions tests/wishbone/wishbone.tx --verilog tests/wishbone/reqwalker.v --protocol tests/wishbone/wishbone.prot --module reqwalker 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/wishbone/wishbone.tx --verilog tests/wishbone/reqwalker.v --protocol tests/wishbone/wishbone.prot --module reqwalker 2>&1" diff --git a/runt/monitor/runt.toml b/runt/monitor/runt.toml index 04998bdf..aee94652 100644 --- a/runt/monitor/runt.toml +++ b/runt/monitor/runt.toml @@ -7,7 +7,7 @@ paths = [ ] expect_dir = "../../tests/adders/expects" expect_name = "add_d1.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/adders/add_d1.prot --wave tests/adders/add_d1.fst --instances add_d1:Adder 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/adders/add_d1.prot --wave tests/adders/add_d1.fst --instances add_d1:Adder 2>/dev/null" [[tests]] name = "monitor.tests_adders_add_d2.add_d2_monitor" @@ -16,7 +16,7 @@ paths = [ ] expect_dir = "../../tests/adders/expects" expect_name = "add_d2.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/adders/add_d2.prot --wave tests/adders/add_d2.fst --instances add_d2:Adder 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/adders/add_d2.prot --wave tests/adders/add_d2.fst --instances add_d2:Adder 2>/dev/null" [[tests]] name = "monitor.tests_adders_add_var_cyc.add_var_cyc_monitor" @@ -25,7 +25,7 @@ paths = [ ] expect_dir = "../../tests/adders/expects" expect_name = "add_var_cyc.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/adders/add_var_cyc.prot --wave tests/adders/loop_with_assigns.fst --instances add_d1:Adder 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/adders/add_var_cyc.prot --wave tests/adders/loop_with_assigns.fst --instances add_d1:Adder 2>/dev/null" [[tests]] name = "monitor.tests_adders_busy_wait.busy_wait_monitor" @@ -34,7 +34,7 @@ paths = [ ] expect_dir = "../../tests/adders/expects" expect_name = "busy_wait.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/adders/busy_wait.prot --wave tests/adders/busy_wait.fst --instances add_d1:Adder 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/adders/busy_wait.prot --wave tests/adders/busy_wait.fst --instances add_d1:Adder 2>/dev/null" [[tests]] name = "monitor.tests_adders_loop_with_assigns.loop_with_assigns_monitor" @@ -43,7 +43,7 @@ paths = [ ] expect_dir = "../../tests/adders/expects" expect_name = "loop_with_assigns.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/adders/loop_with_assigns.prot --wave tests/adders/loop_with_assigns.fst --instances add_d1:Adder 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/adders/loop_with_assigns.prot --wave tests/adders/loop_with_assigns.fst --instances add_d1:Adder 2>/dev/null" [[tests]] name = "monitor.tests_adders_nested_busy_wait.nested_busy_wait_monitor" @@ -52,7 +52,7 @@ paths = [ ] expect_dir = "../../tests/adders/expects" expect_name = "nested_busy_wait.monitor.expect" -cmd = "cd ../.. && python3 -c 'import os, signal, subprocess, sys\np = subprocess.Popen(sys.argv[2:], start_new_session=True)\ntry:\n sys.exit(p.wait(timeout=float(sys.argv[1])))\nexcept subprocess.TimeoutExpired:\n os.killpg(p.pid, signal.SIGKILL)\n sys.exit(124)\n' 5 cargo run --offline --package protocols-monitor -- --protocol tests/adders/nested_busy_wait.prot --wave tests/adders/nested_busy_wait.fst --instances add_d1:Adder 2>/dev/null" +cmd = "cd ../.. && python3 -c 'import os, signal, subprocess, sys\np = subprocess.Popen(sys.argv[2:], start_new_session=True)\ntry:\n sys.exit(p.wait(timeout=float(sys.argv[1])))\nexcept subprocess.TimeoutExpired:\n os.killpg(p.pid, signal.SIGKILL)\n sys.exit(124)\n' 5 target/debug/protocols-monitor --protocol tests/adders/nested_busy_wait.prot --wave tests/adders/nested_busy_wait.fst --instances add_d1:Adder 2>/dev/null" [[tests]] name = "monitor.tests_alus_alu_d1_monitor.alu_d1_monitor" @@ -61,7 +61,7 @@ paths = [ ] expect_dir = "../../tests/alus/expects" expect_name = "alu_d1.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/alus/alu_d1.monitor.prot --wave tests/alus/alu_d1.fst --instances alu_d1:ALU 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/alus/alu_d1.monitor.prot --wave tests/alus/alu_d1.fst --instances alu_d1:ALU 2>/dev/null" [[tests]] name = "monitor.tests_alus_alu_d2_monitor.alu_d2_monitor" @@ -70,7 +70,7 @@ paths = [ ] expect_dir = "../../tests/alus/expects" expect_name = "alu_d2.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/alus/alu_d2.monitor.prot --wave tests/alus/alu_d2.fst --instances alu_d2:ALU 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/alus/alu_d2.monitor.prot --wave tests/alus/alu_d2.fst --instances alu_d2:ALU 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_fifo_classic_1_monitor" @@ -79,7 +79,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/fifo_classic/expects" expect_name = "test_fifo_classic_1.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/fifo_classic/test_fifo_classic_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/fifo_classic/test_fifo_classic_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_fifo_classic_2_monitor" @@ -88,7 +88,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/fifo_classic/expects" expect_name = "test_fifo_classic_2.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/fifo_classic/test_fifo_classic_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/fifo_classic/test_fifo_classic_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_fifo_classic_3_monitor" @@ -97,7 +97,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/fifo_classic/expects" expect_name = "test_fifo_classic_3.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/fifo_classic/test_fifo_classic_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/fifo_classic/test_fifo_classic_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_fifo_classic_4_monitor" @@ -106,7 +106,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/fifo_classic/expects" expect_name = "test_fifo_classic_4.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/fifo_classic/test_fifo_classic_4.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/fifo_classic/test_fifo_classic_4.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_fifo_classic_5_monitor" @@ -115,7 +115,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/fifo_classic/expects" expect_name = "test_fifo_classic_5.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/fifo_classic/test_fifo_classic_5.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/fifo_classic/test_fifo_classic_5.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_fifo_classic_6_monitor" @@ -124,7 +124,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/fifo_classic/expects" expect_name = "test_fifo_classic_6.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/fifo_classic/test_fifo_classic_6.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/fifo_classic/test_fifo_classic_6.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_fifo_classic_7_monitor" @@ -133,7 +133,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/fifo_classic/expects" expect_name = "test_fifo_classic_7.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/fifo_classic/test_fifo_classic_7.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/fifo_classic/test_fifo_classic_7.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_fifo_classic_8_monitor" @@ -142,7 +142,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/fifo_classic/expects" expect_name = "test_fifo_classic_8.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/fifo_classic/test_fifo_classic_8.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/fifo_classic/test_fifo_classic_8.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_fifo_constant_1_monitor" @@ -151,7 +151,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/fifo_constant/expects" expect_name = "test_fifo_constant_1.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/fifo_constant/test_fifo_constant_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/fifo_constant/test_fifo_constant_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_fifo_constant_2_monitor" @@ -160,7 +160,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/fifo_constant/expects" expect_name = "test_fifo_constant_2.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/fifo_constant/test_fifo_constant_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/fifo_constant/test_fifo_constant_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_fifo_constant_3_monitor" @@ -169,7 +169,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/fifo_constant/expects" expect_name = "test_fifo_constant_3.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/fifo_constant/test_fifo_constant_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/fifo_constant/test_fifo_constant_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_fifo_constant_4_monitor" @@ -178,7 +178,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/fifo_constant/expects" expect_name = "test_fifo_constant_4.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/fifo_constant/test_fifo_constant_4.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/fifo_constant/test_fifo_constant_4.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_fifo_constant_5_monitor" @@ -187,7 +187,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/fifo_constant/expects" expect_name = "test_fifo_constant_5.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/fifo_constant/test_fifo_constant_5.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/fifo_constant/test_fifo_constant_5.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_fifo_constant_6_monitor" @@ -196,7 +196,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/fifo_constant/expects" expect_name = "test_fifo_constant_6.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/fifo_constant/test_fifo_constant_6.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/fifo_constant/test_fifo_constant_6.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_fifo_constant_7_monitor" @@ -205,7 +205,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/fifo_constant/expects" expect_name = "test_fifo_constant_7.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/fifo_constant/test_fifo_constant_7.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/fifo_constant/test_fifo_constant_7.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_fifo_constant_8_monitor" @@ -214,7 +214,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/fifo_constant/expects" expect_name = "test_fifo_constant_8.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/fifo_constant/test_fifo_constant_8.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/fifo_constant/test_fifo_constant_8.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_classic_16_0_monitor" @@ -223,7 +223,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_classic/expects" expect_name = "test_sram_classic_16_0.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_16_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_16_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_classic_16_12_monitor" @@ -232,7 +232,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_classic/expects" expect_name = "test_sram_classic_16_12.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_16_12.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_16_12.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_classic_16_4_monitor" @@ -241,7 +241,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_classic/expects" expect_name = "test_sram_classic_16_4.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_16_4.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_16_4.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_classic_16_8_monitor" @@ -250,7 +250,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_classic/expects" expect_name = "test_sram_classic_16_8.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_16_8.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_16_8.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_classic_1_0_monitor" @@ -259,7 +259,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_classic/expects" expect_name = "test_sram_classic_1_0.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_1_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_1_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_classic_1_12_monitor" @@ -268,7 +268,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_classic/expects" expect_name = "test_sram_classic_1_12.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_1_12.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_1_12.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_classic_1_4_monitor" @@ -277,7 +277,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_classic/expects" expect_name = "test_sram_classic_1_4.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_1_4.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_1_4.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_classic_1_8_monitor" @@ -286,7 +286,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_classic/expects" expect_name = "test_sram_classic_1_8.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_1_8.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_1_8.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_classic_2_0_monitor" @@ -295,7 +295,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_classic/expects" expect_name = "test_sram_classic_2_0.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_2_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_2_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_classic_2_12_monitor" @@ -304,7 +304,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_classic/expects" expect_name = "test_sram_classic_2_12.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_2_12.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_2_12.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_classic_2_4_monitor" @@ -313,7 +313,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_classic/expects" expect_name = "test_sram_classic_2_4.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_2_4.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_2_4.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_classic_2_8_monitor" @@ -322,7 +322,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_classic/expects" expect_name = "test_sram_classic_2_8.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_2_8.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_2_8.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_classic_4_0_monitor" @@ -331,7 +331,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_classic/expects" expect_name = "test_sram_classic_4_0.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_4_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_4_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_classic_4_12_monitor" @@ -340,7 +340,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_classic/expects" expect_name = "test_sram_classic_4_12.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_4_12.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_4_12.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_classic_4_4_monitor" @@ -349,7 +349,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_classic/expects" expect_name = "test_sram_classic_4_4.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_4_4.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_4_4.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_classic_4_8_monitor" @@ -358,7 +358,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_classic/expects" expect_name = "test_sram_classic_4_8.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_4_8.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_4_8.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_classic_8_0_monitor" @@ -367,7 +367,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_classic/expects" expect_name = "test_sram_classic_8_0.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_8_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_8_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_classic_8_12_monitor" @@ -376,7 +376,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_classic/expects" expect_name = "test_sram_classic_8_12.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_8_12.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_8_12.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_classic_8_4_monitor" @@ -385,7 +385,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_classic/expects" expect_name = "test_sram_classic_8_4.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_8_4.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_8_4.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_classic_8_8_monitor" @@ -394,7 +394,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_classic/expects" expect_name = "test_sram_classic_8_8.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_8_8.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_classic/test_sram_classic_8_8.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_16_0_0_monitor" @@ -403,7 +403,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_16_0_0.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_16_0_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_16_0_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_16_0_1_monitor" @@ -412,7 +412,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_16_0_1.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_16_0_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_16_0_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_16_0_2_monitor" @@ -421,7 +421,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_16_0_2.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_16_0_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_16_0_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_16_0_3_monitor" @@ -430,7 +430,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_16_0_3.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_16_0_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_16_0_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_16_12_0_monitor" @@ -439,7 +439,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_16_12_0.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_16_12_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_16_12_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_16_12_1_monitor" @@ -448,7 +448,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_16_12_1.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_16_12_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_16_12_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_16_12_2_monitor" @@ -457,7 +457,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_16_12_2.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_16_12_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_16_12_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_16_12_3_monitor" @@ -466,7 +466,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_16_12_3.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_16_12_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_16_12_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_16_4_0_monitor" @@ -475,7 +475,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_16_4_0.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_16_4_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_16_4_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_16_4_1_monitor" @@ -484,7 +484,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_16_4_1.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_16_4_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_16_4_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_16_4_2_monitor" @@ -493,7 +493,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_16_4_2.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_16_4_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_16_4_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_16_4_3_monitor" @@ -502,7 +502,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_16_4_3.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_16_4_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_16_4_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_16_8_0_monitor" @@ -511,7 +511,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_16_8_0.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_16_8_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_16_8_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_16_8_1_monitor" @@ -520,7 +520,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_16_8_1.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_16_8_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_16_8_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_16_8_2_monitor" @@ -529,7 +529,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_16_8_2.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_16_8_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_16_8_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_16_8_3_monitor" @@ -538,7 +538,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_16_8_3.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_16_8_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_16_8_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_1_0_0_monitor" @@ -547,7 +547,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_1_0_0.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_1_0_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_1_0_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_1_0_1_monitor" @@ -556,7 +556,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_1_0_1.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_1_0_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_1_0_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_1_0_2_monitor" @@ -565,7 +565,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_1_0_2.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_1_0_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_1_0_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_1_0_3_monitor" @@ -574,7 +574,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_1_0_3.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_1_0_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_1_0_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_1_12_0_monitor" @@ -583,7 +583,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_1_12_0.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_1_12_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_1_12_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_1_12_1_monitor" @@ -592,7 +592,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_1_12_1.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_1_12_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_1_12_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_1_12_2_monitor" @@ -601,7 +601,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_1_12_2.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_1_12_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_1_12_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_1_12_3_monitor" @@ -610,7 +610,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_1_12_3.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_1_12_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_1_12_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_1_4_0_monitor" @@ -619,7 +619,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_1_4_0.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_1_4_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_1_4_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_1_4_1_monitor" @@ -628,7 +628,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_1_4_1.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_1_4_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_1_4_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_1_4_2_monitor" @@ -637,7 +637,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_1_4_2.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_1_4_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_1_4_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_1_4_3_monitor" @@ -646,7 +646,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_1_4_3.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_1_4_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_1_4_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_1_8_0_monitor" @@ -655,7 +655,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_1_8_0.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_1_8_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_1_8_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_1_8_1_monitor" @@ -664,7 +664,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_1_8_1.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_1_8_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_1_8_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_1_8_2_monitor" @@ -673,7 +673,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_1_8_2.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_1_8_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_1_8_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_1_8_3_monitor" @@ -682,7 +682,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_1_8_3.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_1_8_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_1_8_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_2_0_0_monitor" @@ -691,7 +691,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_2_0_0.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_2_0_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_2_0_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_2_0_1_monitor" @@ -700,7 +700,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_2_0_1.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_2_0_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_2_0_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_2_0_2_monitor" @@ -709,7 +709,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_2_0_2.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_2_0_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_2_0_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_2_0_3_monitor" @@ -718,7 +718,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_2_0_3.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_2_0_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_2_0_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_2_12_0_monitor" @@ -727,7 +727,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_2_12_0.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_2_12_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_2_12_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_2_12_1_monitor" @@ -736,7 +736,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_2_12_1.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_2_12_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_2_12_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_2_12_2_monitor" @@ -745,7 +745,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_2_12_2.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_2_12_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_2_12_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_2_12_3_monitor" @@ -754,7 +754,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_2_12_3.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_2_12_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_2_12_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_2_4_0_monitor" @@ -763,7 +763,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_2_4_0.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_2_4_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_2_4_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_2_4_1_monitor" @@ -772,7 +772,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_2_4_1.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_2_4_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_2_4_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_2_4_2_monitor" @@ -781,7 +781,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_2_4_2.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_2_4_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_2_4_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_2_4_3_monitor" @@ -790,7 +790,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_2_4_3.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_2_4_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_2_4_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_2_8_0_monitor" @@ -799,7 +799,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_2_8_0.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_2_8_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_2_8_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_2_8_1_monitor" @@ -808,7 +808,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_2_8_1.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_2_8_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_2_8_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_2_8_2_monitor" @@ -817,7 +817,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_2_8_2.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_2_8_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_2_8_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_2_8_3_monitor" @@ -826,7 +826,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_2_8_3.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_2_8_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_2_8_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_4_0_0_monitor" @@ -835,7 +835,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_4_0_0.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_4_0_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_4_0_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_4_0_1_monitor" @@ -844,7 +844,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_4_0_1.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_4_0_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_4_0_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_4_0_2_monitor" @@ -853,7 +853,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_4_0_2.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_4_0_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_4_0_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_4_0_3_monitor" @@ -862,7 +862,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_4_0_3.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_4_0_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_4_0_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_4_12_0_monitor" @@ -871,7 +871,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_4_12_0.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_4_12_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_4_12_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_4_12_1_monitor" @@ -880,7 +880,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_4_12_1.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_4_12_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_4_12_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_4_12_2_monitor" @@ -889,7 +889,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_4_12_2.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_4_12_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_4_12_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_4_12_3_monitor" @@ -898,7 +898,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_4_12_3.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_4_12_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_4_12_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_4_4_0_monitor" @@ -907,7 +907,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_4_4_0.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_4_4_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_4_4_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_4_4_1_monitor" @@ -916,7 +916,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_4_4_1.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_4_4_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_4_4_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_4_4_2_monitor" @@ -925,7 +925,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_4_4_2.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_4_4_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_4_4_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_4_4_3_monitor" @@ -934,7 +934,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_4_4_3.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_4_4_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_4_4_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_4_8_0_monitor" @@ -943,7 +943,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_4_8_0.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_4_8_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_4_8_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_4_8_1_monitor" @@ -952,7 +952,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_4_8_1.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_4_8_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_4_8_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_4_8_2_monitor" @@ -961,7 +961,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_4_8_2.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_4_8_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_4_8_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_4_8_3_monitor" @@ -970,7 +970,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_4_8_3.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_4_8_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_4_8_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_8_0_0_monitor" @@ -979,7 +979,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_8_0_0.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_8_0_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_8_0_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_8_0_1_monitor" @@ -988,7 +988,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_8_0_1.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_8_0_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_8_0_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_8_0_2_monitor" @@ -997,7 +997,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_8_0_2.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_8_0_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_8_0_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_8_0_3_monitor" @@ -1006,7 +1006,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_8_0_3.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_8_0_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_8_0_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_8_12_0_monitor" @@ -1015,7 +1015,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_8_12_0.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_8_12_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_8_12_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_8_12_1_monitor" @@ -1024,7 +1024,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_8_12_1.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_8_12_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_8_12_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_8_12_2_monitor" @@ -1033,7 +1033,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_8_12_2.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_8_12_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_8_12_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_8_12_3_monitor" @@ -1042,7 +1042,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_8_12_3.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_8_12_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_8_12_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_8_4_0_monitor" @@ -1051,7 +1051,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_8_4_0.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_8_4_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_8_4_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_8_4_1_monitor" @@ -1060,7 +1060,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_8_4_1.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_8_4_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_8_4_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_8_4_2_monitor" @@ -1069,7 +1069,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_8_4_2.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_8_4_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_8_4_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_8_4_3_monitor" @@ -1078,7 +1078,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_8_4_3.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_8_4_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_8_4_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_8_8_0_monitor" @@ -1087,7 +1087,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_8_8_0.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_8_8_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_8_8_0.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_8_8_1_monitor" @@ -1096,7 +1096,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_8_8_1.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_8_8_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_8_8_1.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_8_8_2_monitor" @@ -1105,7 +1105,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_8_8_2.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_8_8_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_8_8_2.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_antmicro_wishbone_subordinate.test_sram_incrementing_8_8_3_monitor" @@ -1114,7 +1114,7 @@ paths = [ ] expect_dir = "../../tests/antmicro/sram_incrementing/expects" expect_name = "test_sram_incrementing_8_8_3.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_8_8_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/antmicro/wishbone_subordinate.prot --wave tests/antmicro/sram_incrementing/test_sram_incrementing_8_8_3.fst --instances tb.dut:WBSubordinate --sample-posedge tb.dut.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_brave_new_world_francis_bit_truncation_fft.bit_truncation_fft_monitor" @@ -1123,7 +1123,7 @@ paths = [ ] expect_dir = "../../tests/brave_new_world_francis/expects" expect_name = "bit_truncation_fft.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/brave_new_world_francis/bit_truncation_fft.prot --wave tests/brave_new_world_francis/bit_truncation_fft.fst --instances round11_rne_unsigned_fixed:BitTruncationFFT 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/brave_new_world_francis/bit_truncation_fft.prot --wave tests/brave_new_world_francis/bit_truncation_fft.fst --instances round11_rne_unsigned_fixed:BitTruncationFFT 2>/dev/null" [[tests]] name = "monitor.tests_brave_new_world_francis_bit_truncation_sha.bit_truncation_sha_monitor" @@ -1132,7 +1132,7 @@ paths = [ ] expect_dir = "../../tests/brave_new_world_francis/expects" expect_name = "bit_truncation_sha.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/brave_new_world_francis/bit_truncation_sha.prot --wave tests/brave_new_world_francis/bit_truncation_sha.fst --instances bit_truncation_sha_fixed:bit_truncation_sha 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/brave_new_world_francis/bit_truncation_sha.prot --wave tests/brave_new_world_francis/bit_truncation_sha.fst --instances bit_truncation_sha_fixed:bit_truncation_sha 2>/dev/null" [[tests]] name = "monitor.tests_brave_new_world_francis_ftu_sha.ftu_sha_monitor" @@ -1141,7 +1141,7 @@ paths = [ ] expect_dir = "../../tests/brave_new_world_francis/expects" expect_name = "ftu_sha.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/brave_new_world_francis/ftu_sha.prot --wave tests/brave_new_world_francis/ftu_sha.fst --instances fsm_update_fixed_gated:FailureToUpdateSHA 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/brave_new_world_francis/ftu_sha.prot --wave tests/brave_new_world_francis/ftu_sha.fst --instances fsm_update_fixed_gated:FailureToUpdateSHA 2>/dev/null" [[tests]] name = "monitor.tests_brave_new_world_francis_signal_async.signal_async_monitor" @@ -1150,7 +1150,7 @@ paths = [ ] expect_dir = "../../tests/brave_new_world_francis/expects" expect_name = "signal_async.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/brave_new_world_francis/signal_async.prot --wave tests/brave_new_world_francis/signal_async.fst --instances signal_async_fix:SignalAsyncSpec 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/brave_new_world_francis/signal_async.prot --wave tests/brave_new_world_francis/signal_async.fst --instances signal_async_fix:SignalAsyncSpec 2>/dev/null" [[tests]] name = "monitor.tests_brave_new_world_francis_use_without_valid.use_without_valid_monitor" @@ -1159,7 +1159,7 @@ paths = [ ] expect_dir = "../../tests/brave_new_world_francis/expects" expect_name = "use_without_valid.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/brave_new_world_francis/use_without_valid.prot --wave tests/brave_new_world_francis/use_without_valid.fst --instances use_without_valid_fix:UseWithoutValid 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/brave_new_world_francis/use_without_valid.prot --wave tests/brave_new_world_francis/use_without_valid.fst --instances use_without_valid_fix:UseWithoutValid 2>/dev/null" [[tests]] name = "monitor.tests_ethmac_ethmac_wishbone_manager.ethmac_wishbone_manager_monitor" @@ -1168,7 +1168,7 @@ paths = [ ] expect_dir = "../../tests/ethmac/expects" expect_name = "ethmac_wishbone_manager.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/ethmac/ethmac_wishbone_manager.prot --instances tb_ethernet:WBManager --sample-posedge tb_ethernet.wb_clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/ethmac/ethmac_wishbone_manager.prot --instances tb_ethernet:WBManager --sample-posedge tb_ethernet.wb_clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_ethmac_ethmac_wishbone_subordinate.ethmac_wishbone_subordinate_monitor" @@ -1177,7 +1177,7 @@ paths = [ ] expect_dir = "../../tests/ethmac/expects" expect_name = "ethmac_wishbone_subordinate.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/ethmac/ethmac_wishbone_subordinate.prot --instances tb_ethernet:WBSubordinate --sample-posedge tb_ethernet.wb_clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/ethmac/ethmac_wishbone_subordinate.prot --instances tb_ethernet:WBSubordinate --sample-posedge tb_ethernet.wb_clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_fifo_fifo_monitor.fifo_monitor" @@ -1186,7 +1186,7 @@ paths = [ ] expect_dir = "../../tests/fifo/expects" expect_name = "fifo.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/fifo/fifo.monitor.prot --wave tests/fifo/fifo.fst --instances fifo_wrapper:Fifo 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/fifo/fifo.monitor.prot --wave tests/fifo/fifo.fst --instances fifo_wrapper:Fifo 2>/dev/null" [[tests]] name = "monitor.tests_fifo_push_pop_identity.push_pop_identity_monitor" @@ -1195,7 +1195,7 @@ paths = [ ] expect_dir = "../../tests/fifo/expects" expect_name = "push_pop_identity.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/fifo/push_pop_identity.prot --wave tests/fifo/push_pop_identity.fst --instances fifo_wrapper:Fifo 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/fifo/push_pop_identity.prot --wave tests/fifo/push_pop_identity.fst --instances fifo_wrapper:Fifo 2>/dev/null" [[tests]] name = "monitor.tests_fifo_push_pop_loop_empty.push_pop_loop_empty_monitor" @@ -1204,7 +1204,7 @@ paths = [ ] expect_dir = "../../tests/fifo/expects" expect_name = "push_pop_loop_empty.monitor.expect" -cmd = "cd ../.. && python3 -c 'import os, signal, subprocess, sys\np = subprocess.Popen(sys.argv[2:], start_new_session=True)\ntry:\n sys.exit(p.wait(timeout=float(sys.argv[1])))\nexcept subprocess.TimeoutExpired:\n os.killpg(p.pid, signal.SIGKILL)\n sys.exit(124)\n' 5 cargo run --offline --package protocols-monitor -- --protocol tests/fifo/push_pop_loop_empty.prot --wave tests/fifo/push_pop_loop_empty.fst --instances fifo_wrapper:Fifo 2>/dev/null" +cmd = "cd ../.. && python3 -c 'import os, signal, subprocess, sys\np = subprocess.Popen(sys.argv[2:], start_new_session=True)\ntry:\n sys.exit(p.wait(timeout=float(sys.argv[1])))\nexcept subprocess.TimeoutExpired:\n os.killpg(p.pid, signal.SIGKILL)\n sys.exit(124)\n' 5 target/debug/protocols-monitor --protocol tests/fifo/push_pop_loop_empty.prot --wave tests/fifo/push_pop_loop_empty.fst --instances fifo_wrapper:Fifo 2>/dev/null" [[tests]] name = "monitor.tests_fifo_push_pop_loop_not_empty.push_pop_loop_not_empty_monitor" @@ -1213,7 +1213,7 @@ paths = [ ] expect_dir = "../../tests/fifo/expects" expect_name = "push_pop_loop_not_empty.monitor.expect" -cmd = "cd ../.. && python3 -c 'import os, signal, subprocess, sys\np = subprocess.Popen(sys.argv[2:], start_new_session=True)\ntry:\n sys.exit(p.wait(timeout=float(sys.argv[1])))\nexcept subprocess.TimeoutExpired:\n os.killpg(p.pid, signal.SIGKILL)\n sys.exit(124)\n' 5 cargo run --offline --package protocols-monitor -- --protocol tests/fifo/push_pop_loop_not_empty.prot --wave tests/fifo/push_pop_loop_not_empty.fst --instances fifo_wrapper:Fifo 2>/dev/null" +cmd = "cd ../.. && python3 -c 'import os, signal, subprocess, sys\np = subprocess.Popen(sys.argv[2:], start_new_session=True)\ntry:\n sys.exit(p.wait(timeout=float(sys.argv[1])))\nexcept subprocess.TimeoutExpired:\n os.killpg(p.pid, signal.SIGKILL)\n sys.exit(124)\n' 5 target/debug/protocols-monitor --protocol tests/fifo/push_pop_loop_not_empty.prot --wave tests/fifo/push_pop_loop_not_empty.fst --instances fifo_wrapper:Fifo 2>/dev/null" [[tests]] name = "monitor.tests_fpga_debugging_axi_burst_s4_s4_buggy.s4_buggy_monitor" @@ -1222,7 +1222,7 @@ paths = [ ] expect_dir = "../../tests/fpga-debugging/axi-burst-s4/expects" expect_name = "s4_buggy.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/fpga-debugging/axi-burst-s4/s4_buggy.prot --wave tests/fpga-debugging/axi-burst-s4/s4_buggy.vcd --instances TOP.test_l2_cache_wait_state.axi_bus:WriteSubordinate --sample-posedge TOP.test_l2_cache_wait_state.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/fpga-debugging/axi-burst-s4/s4_buggy.prot --wave tests/fpga-debugging/axi-burst-s4/s4_buggy.vcd --instances TOP.test_l2_cache_wait_state.axi_bus:WriteSubordinate --sample-posedge TOP.test_l2_cache_wait_state.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_fpga_debugging_axi_burst_s4_s4_fixed.s4_fixed_monitor" @@ -1231,7 +1231,7 @@ paths = [ ] expect_dir = "../../tests/fpga-debugging/axi-burst-s4/expects" expect_name = "s4_fixed.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/fpga-debugging/axi-burst-s4/s4_fixed.prot --wave tests/fpga-debugging/axi-burst-s4/s4_fixed.vcd --instances TOP.test_l2_cache_wait_state.axi_bus:WriteSubordinate --sample-posedge TOP.test_l2_cache_wait_state.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/fpga-debugging/axi-burst-s4/s4_fixed.prot --wave tests/fpga-debugging/axi-burst-s4/s4_fixed.vcd --instances TOP.test_l2_cache_wait_state.axi_bus:WriteSubordinate --sample-posedge TOP.test_l2_cache_wait_state.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_fpga_debugging_axi_lite_s1_s1_buggy.s1_buggy_monitor" @@ -1240,7 +1240,7 @@ paths = [ ] expect_dir = "../../tests/fpga-debugging/axi-lite-s1/expects" expect_name = "s1_buggy.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/fpga-debugging/axi-lite-s1/s1_buggy.prot --wave tests/fpga-debugging/axi-lite-s1/s1_buggy_workload2.vcd --instances TOP.testbench.UUT:WriteSubordinate TOP.testbench.UUT:ReadSubordinate --sample-posedge TOP.testbench.UUT.S_AXI_ACLK --show-waveform-time --time-unit ns --include-idle 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/fpga-debugging/axi-lite-s1/s1_buggy.prot --wave tests/fpga-debugging/axi-lite-s1/s1_buggy_workload2.vcd --instances TOP.testbench.UUT:WriteSubordinate TOP.testbench.UUT:ReadSubordinate --sample-posedge TOP.testbench.UUT.S_AXI_ACLK --show-waveform-time --time-unit ns --include-idle 2>/dev/null" [[tests]] name = "monitor.tests_fpga_debugging_axi_lite_s1_s1_buggy_workload_1.s1_buggy_workload_1_monitor" @@ -1249,7 +1249,7 @@ paths = [ ] expect_dir = "../../tests/fpga-debugging/axi-lite-s1/expects" expect_name = "s1_buggy_workload_1.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/fpga-debugging/axi-lite-s1/s1_buggy_workload_1.prot --wave tests/fpga-debugging/axi-lite-s1/s1_buggy_workload1.vcd --instances TOP.testbench.UUT:WriteSubordinate TOP.testbench.UUT:ReadSubordinate --sample-posedge TOP.testbench.UUT.S_AXI_ACLK --show-waveform-time --time-unit ns --include-idle 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/fpga-debugging/axi-lite-s1/s1_buggy_workload_1.prot --wave tests/fpga-debugging/axi-lite-s1/s1_buggy_workload1.vcd --instances TOP.testbench.UUT:WriteSubordinate TOP.testbench.UUT:ReadSubordinate --sample-posedge TOP.testbench.UUT.S_AXI_ACLK --show-waveform-time --time-unit ns --include-idle 2>/dev/null" [[tests]] name = "monitor.tests_fpga_debugging_axi_lite_s1_s1_fixed.s1_fixed_monitor" @@ -1258,7 +1258,7 @@ paths = [ ] expect_dir = "../../tests/fpga-debugging/axi-lite-s1/expects" expect_name = "s1_fixed.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/fpga-debugging/axi-lite-s1/s1_fixed.prot --wave tests/fpga-debugging/axi-lite-s1/s1_fixed_workload2.vcd --instances TOP.testbench.UUT:WriteSubordinate TOP.testbench.UUT:ReadSubordinate --sample-posedge TOP.testbench.UUT.S_AXI_ACLK --show-waveform-time --time-unit ns --include-idle 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/fpga-debugging/axi-lite-s1/s1_fixed.prot --wave tests/fpga-debugging/axi-lite-s1/s1_fixed_workload2.vcd --instances TOP.testbench.UUT:WriteSubordinate TOP.testbench.UUT:ReadSubordinate --sample-posedge TOP.testbench.UUT.S_AXI_ACLK --show-waveform-time --time-unit ns --include-idle 2>/dev/null" [[tests]] name = "monitor.tests_fpga_debugging_axi_lite_s1_s1_fixed_workload_1.s1_fixed_workload_1_monitor" @@ -1267,7 +1267,7 @@ paths = [ ] expect_dir = "../../tests/fpga-debugging/axi-lite-s1/expects" expect_name = "s1_fixed_workload_1.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/fpga-debugging/axi-lite-s1/s1_fixed_workload_1.prot --wave tests/fpga-debugging/axi-lite-s1/s1_fixed_workload1.vcd --instances TOP.testbench.UUT:WriteSubordinate TOP.testbench.UUT:ReadSubordinate --sample-posedge TOP.testbench.UUT.S_AXI_ACLK --show-waveform-time --time-unit ns --include-idle 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/fpga-debugging/axi-lite-s1/s1_fixed_workload_1.prot --wave tests/fpga-debugging/axi-lite-s1/s1_fixed_workload1.vcd --instances TOP.testbench.UUT:WriteSubordinate TOP.testbench.UUT:ReadSubordinate --sample-posedge TOP.testbench.UUT.S_AXI_ACLK --show-waveform-time --time-unit ns --include-idle 2>/dev/null" [[tests]] name = "monitor.tests_fpga_debugging_axi_stream_s2_s2_buggy.s2_buggy_monitor" @@ -1276,7 +1276,7 @@ paths = [ ] expect_dir = "../../tests/fpga-debugging/axi-stream-s2/expects" expect_name = "s2_buggy.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/fpga-debugging/axi-stream-s2/s2_buggy.prot --wave tests/fpga-debugging/axi-stream-s2/s2_buggy.fst --instances TOP.testbench.UUT.axi_stream_check:AXISManager --sample-posedge TOP.testbench.UUT.axi_stream_check.i_aclk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/fpga-debugging/axi-stream-s2/s2_buggy.prot --wave tests/fpga-debugging/axi-stream-s2/s2_buggy.fst --instances TOP.testbench.UUT.axi_stream_check:AXISManager --sample-posedge TOP.testbench.UUT.axi_stream_check.i_aclk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_fpga_debugging_axi_stream_s2_s2_fixed.s2_fixed_monitor" @@ -1285,7 +1285,7 @@ paths = [ ] expect_dir = "../../tests/fpga-debugging/axi-stream-s2/expects" expect_name = "s2_fixed.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/fpga-debugging/axi-stream-s2/s2_fixed.prot --wave tests/fpga-debugging/axi-stream-s2/s2_fixed.fst --instances TOP.testbench.UUT.axi_stream_check:AXISManager --sample-posedge TOP.testbench.UUT.axi_stream_check.i_aclk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/fpga-debugging/axi-stream-s2/s2_fixed.prot --wave tests/fpga-debugging/axi-stream-s2/s2_fixed.fst --instances TOP.testbench.UUT.axi_stream_check:AXISManager --sample-posedge TOP.testbench.UUT.axi_stream_check.i_aclk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_fpga_debugging_axis_adapter_s3_s3_buggy.s3_buggy_monitor" @@ -1294,7 +1294,7 @@ paths = [ ] expect_dir = "../../tests/fpga-debugging/axis-adapter-s3/expects" expect_name = "s3_buggy.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/fpga-debugging/axis-adapter-s3/s3_buggy.prot --wave tests/fpga-debugging/axis-adapter-s3/s3_buggy.fst --instances TOP.test_axis_adapter_64_8.UUT:AXISManager --sample-posedge TOP.test_axis_adapter_64_8.UUT.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/fpga-debugging/axis-adapter-s3/s3_buggy.prot --wave tests/fpga-debugging/axis-adapter-s3/s3_buggy.fst --instances TOP.test_axis_adapter_64_8.UUT:AXISManager --sample-posedge TOP.test_axis_adapter_64_8.UUT.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_fpga_debugging_axis_adapter_s3_s3_fixed.s3_fixed_monitor" @@ -1303,7 +1303,7 @@ paths = [ ] expect_dir = "../../tests/fpga-debugging/axis-adapter-s3/expects" expect_name = "s3_fixed.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/fpga-debugging/axis-adapter-s3/s3_fixed.prot --wave tests/fpga-debugging/axis-adapter-s3/s3_fixed.fst --instances TOP.test_axis_adapter_64_8.UUT:AXISManager --sample-posedge TOP.test_axis_adapter_64_8.UUT.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/fpga-debugging/axis-adapter-s3/s3_fixed.prot --wave tests/fpga-debugging/axis-adapter-s3/s3_fixed.fst --instances TOP.test_axis_adapter_64_8.UUT:AXISManager --sample-posedge TOP.test_axis_adapter_64_8.UUT.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_fpga_debugging_axis_async_fifo_c4_c4_buggy.c4_buggy_monitor" @@ -1312,7 +1312,7 @@ paths = [ ] expect_dir = "../../tests/fpga-debugging/axis-async-fifo-c4/expects" expect_name = "c4_buggy.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/fpga-debugging/axis-async-fifo-c4/c4_buggy.prot --wave tests/fpga-debugging/axis-async-fifo-c4/c4_buggy.fst --instances TOP.test_axis_async_fifo.UUT.axis_reg_inst:Sender TOP.test_axis_async_fifo.UUT.axis_reg_inst:Receiver --sample-posedge TOP.test_axis_async_fifo.UUT.axis_reg_inst.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/fpga-debugging/axis-async-fifo-c4/c4_buggy.prot --wave tests/fpga-debugging/axis-async-fifo-c4/c4_buggy.fst --instances TOP.test_axis_async_fifo.UUT.axis_reg_inst:Sender TOP.test_axis_async_fifo.UUT.axis_reg_inst:Receiver --sample-posedge TOP.test_axis_async_fifo.UUT.axis_reg_inst.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_fpga_debugging_axis_async_fifo_c4_c4_fixed.c4_fixed_monitor" @@ -1321,7 +1321,7 @@ paths = [ ] expect_dir = "../../tests/fpga-debugging/axis-async-fifo-c4/expects" expect_name = "c4_fixed.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/fpga-debugging/axis-async-fifo-c4/c4_fixed.prot --wave tests/fpga-debugging/axis-async-fifo-c4/c4_fixed.fst --instances TOP.test_axis_async_fifo.UUT.axis_reg_inst:Sender TOP.test_axis_async_fifo.UUT.axis_reg_inst:Receiver --sample-posedge TOP.test_axis_async_fifo.UUT.axis_reg_inst.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/fpga-debugging/axis-async-fifo-c4/c4_fixed.prot --wave tests/fpga-debugging/axis-async-fifo-c4/c4_fixed.fst --instances TOP.test_axis_async_fifo.UUT.axis_reg_inst:Sender TOP.test_axis_async_fifo.UUT.axis_reg_inst:Receiver --sample-posedge TOP.test_axis_async_fifo.UUT.axis_reg_inst.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_fpga_debugging_axis_fifo_d11_d11_buggy.d11_buggy_monitor" @@ -1330,7 +1330,7 @@ paths = [ ] expect_dir = "../../tests/fpga-debugging/axis-fifo-d11/expects" expect_name = "d11_buggy.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/fpga-debugging/axis-fifo-d11/d11_buggy.prot --wave tests/fpga-debugging/axis-fifo-d11/d11_buggy.fst --instances TOP.test_axis_fifo:AxisFifo --sample-posedge TOP.test_axis_fifo.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/fpga-debugging/axis-fifo-d11/d11_buggy.prot --wave tests/fpga-debugging/axis-fifo-d11/d11_buggy.fst --instances TOP.test_axis_fifo:AxisFifo --sample-posedge TOP.test_axis_fifo.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_fpga_debugging_axis_fifo_d11_d11_fixed.d11_fixed_monitor" @@ -1339,7 +1339,7 @@ paths = [ ] expect_dir = "../../tests/fpga-debugging/axis-fifo-d11/expects" expect_name = "d11_fixed.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/fpga-debugging/axis-fifo-d11/d11_fixed.prot --wave tests/fpga-debugging/axis-fifo-d11/d11_fixed.fst --instances TOP.test_axis_fifo:AxisFifo --sample-posedge TOP.test_axis_fifo.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/fpga-debugging/axis-fifo-d11/d11_fixed.prot --wave tests/fpga-debugging/axis-fifo-d11/d11_fixed.fst --instances TOP.test_axis_fifo:AxisFifo --sample-posedge TOP.test_axis_fifo.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_fpga_debugging_axis_fifo_d12_d12_buggy.d12_buggy_monitor" @@ -1348,7 +1348,7 @@ paths = [ ] expect_dir = "../../tests/fpga-debugging/axis-fifo-d12/expects" expect_name = "d12_buggy.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/fpga-debugging/axis-fifo-d12/d12_buggy.prot --wave tests/fpga-debugging/axis-fifo-d12/d12_buggy.fst --instances TOP.test_axis_fifo:AxisFifo --sample-posedge TOP.test_axis_fifo.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/fpga-debugging/axis-fifo-d12/d12_buggy.prot --wave tests/fpga-debugging/axis-fifo-d12/d12_buggy.fst --instances TOP.test_axis_fifo:AxisFifo --sample-posedge TOP.test_axis_fifo.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_fpga_debugging_axis_fifo_d12_d12_fixed.d12_fixed_monitor" @@ -1357,7 +1357,7 @@ paths = [ ] expect_dir = "../../tests/fpga-debugging/axis-fifo-d12/expects" expect_name = "d12_fixed.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/fpga-debugging/axis-fifo-d12/d12_fixed.prot --wave tests/fpga-debugging/axis-fifo-d12/d12_fixed.fst --instances TOP.test_axis_fifo:AxisFifo --sample-posedge TOP.test_axis_fifo.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/fpga-debugging/axis-fifo-d12/d12_fixed.prot --wave tests/fpga-debugging/axis-fifo-d12/d12_fixed.fst --instances TOP.test_axis_fifo:AxisFifo --sample-posedge TOP.test_axis_fifo.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_fpga_debugging_axis_fifo_d4_d4_buggy.d4_buggy_monitor" @@ -1366,7 +1366,7 @@ paths = [ ] expect_dir = "../../tests/fpga-debugging/axis-fifo-d4/expects" expect_name = "d4_buggy.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/fpga-debugging/axis-fifo-d4/d4_buggy.prot --wave tests/fpga-debugging/axis-fifo-d4/d4_buggy.fst --instances TOP.axis_fifo_wrapper.axis_fifo_inst:AxisFifo --sample-posedge TOP.axis_fifo_wrapper.axis_fifo_inst.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/fpga-debugging/axis-fifo-d4/d4_buggy.prot --wave tests/fpga-debugging/axis-fifo-d4/d4_buggy.fst --instances TOP.axis_fifo_wrapper.axis_fifo_inst:AxisFifo --sample-posedge TOP.axis_fifo_wrapper.axis_fifo_inst.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_fpga_debugging_axis_fifo_d4_d4_fixed.d4_fixed_monitor" @@ -1375,7 +1375,7 @@ paths = [ ] expect_dir = "../../tests/fpga-debugging/axis-fifo-d4/expects" expect_name = "d4_fixed.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/fpga-debugging/axis-fifo-d4/d4_fixed.prot --wave tests/fpga-debugging/axis-fifo-d4/d4_fixed.fst --instances TOP.axis_fifo_wrapper.axis_fifo_inst:AxisFifo --sample-posedge TOP.axis_fifo_wrapper.axis_fifo_inst.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/fpga-debugging/axis-fifo-d4/d4_fixed.prot --wave tests/fpga-debugging/axis-fifo-d4/d4_fixed.fst --instances TOP.axis_fifo_wrapper.axis_fifo_inst:AxisFifo --sample-posedge TOP.axis_fifo_wrapper.axis_fifo_inst.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_identities_identity_d1.identity_d1_monitor" @@ -1384,7 +1384,7 @@ paths = [ ] expect_dir = "../../tests/identities/expects" expect_name = "identity_d1.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/identities/identity_d1.prot --wave tests/identities/identity_d1.fst --instances identity_d1:Identity 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/identities/identity_d1.prot --wave tests/identities/identity_d1.fst --instances identity_d1:Identity 2>/dev/null" [[tests]] name = "monitor.tests_multi_multi0.multi0_monitor" @@ -1393,7 +1393,7 @@ paths = [ ] expect_dir = "../../tests/multi/expects" expect_name = "multi0.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/multi/multi0.prot --wave tests/multi/multi0.fst --instances multi0:multi0 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/multi/multi0.prot --wave tests/multi/multi0.fst --instances multi0:multi0 2>/dev/null" [[tests]] name = "monitor.tests_multi_multi0keep.multi0keep_monitor" @@ -1402,7 +1402,7 @@ paths = [ ] expect_dir = "../../tests/multi/expects" expect_name = "multi0keep.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/multi/multi0keep.prot --wave tests/multi/multi0keep.fst --instances multi0keep:multi0keep 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/multi/multi0keep.prot --wave tests/multi/multi0keep.fst --instances multi0keep:multi0keep 2>/dev/null" [[tests]] name = "monitor.tests_multi_multi0keep2const.multi0keep2const_monitor" @@ -1411,7 +1411,7 @@ paths = [ ] expect_dir = "../../tests/multi/expects" expect_name = "multi0keep2const.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/multi/multi0keep2const.prot --wave tests/multi/multi0keep2const.fst --instances multi0keep2const:multi0keep2const 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/multi/multi0keep2const.prot --wave tests/multi/multi0keep2const.fst --instances multi0keep2const:multi0keep2const 2>/dev/null" [[tests]] name = "monitor.tests_multi_multi2const.multi2const_monitor" @@ -1420,7 +1420,7 @@ paths = [ ] expect_dir = "../../tests/multi/expects" expect_name = "multi2const.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/multi/multi2const.prot --wave tests/multi/multi2const.fst --instances multi2const:multi2const 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/multi/multi2const.prot --wave tests/multi/multi2const.fst --instances multi2const:multi2const 2>/dev/null" [[tests]] name = "monitor.tests_multi_multi2multi.multi2multi_monitor" @@ -1429,7 +1429,7 @@ paths = [ ] expect_dir = "../../tests/multi/expects" expect_name = "multi2multi.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/multi/multi2multi.prot --wave tests/multi/multi2multi.fst --instances multi2multi:multi2multi 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/multi/multi2multi.prot --wave tests/multi/multi2multi.fst --instances multi2multi:multi2multi 2>/dev/null" [[tests]] name = "monitor.tests_multi_multi_data.multi_data_monitor" @@ -1438,7 +1438,7 @@ paths = [ ] expect_dir = "../../tests/multi/expects" expect_name = "multi_data.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/multi/multi_data.prot --wave tests/multi/multi_data.fst --instances multi_data:multi_data 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/multi/multi_data.prot --wave tests/multi/multi_data.fst --instances multi_data:multi_data 2>/dev/null" [[tests]] name = "monitor.tests_multipliers_mult_d2.mult_d2_monitor" @@ -1447,7 +1447,7 @@ paths = [ ] expect_dir = "../../tests/multipliers/expects" expect_name = "mult_d2.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/multipliers/mult_d2.prot --wave tests/multipliers/mult_d2.fst --instances mult_d2:Multiplier 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/multipliers/mult_d2.prot --wave tests/multipliers/mult_d2.fst --instances mult_d2:Multiplier 2>/dev/null" [[tests]] name = "monitor.tests_picorv32_pcpi_mul_unsigned_mul.pcpi_mul_unsigned_mul_monitor" @@ -1456,7 +1456,7 @@ paths = [ ] expect_dir = "../../tests/picorv32/expects" expect_name = "pcpi_mul_unsigned_mul.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/picorv32/pcpi_mul_unsigned_mul.prot --wave tests/picorv32/unsigned_mul.fst --instances picorv32_pcpi_mul:picorv32_pcpi_mul 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/picorv32/pcpi_mul_unsigned_mul.prot --wave tests/picorv32/unsigned_mul.fst --instances picorv32_pcpi_mul:picorv32_pcpi_mul 2>/dev/null" [[tests]] name = "monitor.tests_serv_serv_regfile.serv_regfile_monitor" @@ -1465,7 +1465,7 @@ paths = [ ] expect_dir = "../../tests/serv/expects" expect_name = "serv_regfile.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/serv/serv_regfile.prot --wave tests/serv/serv_regfile.fst --instances serv_regfile:Regfile --display-hex 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/serv/serv_regfile.prot --wave tests/serv/serv_regfile.fst --instances serv_regfile:Regfile --display-hex 2>/dev/null" [[tests]] name = "monitor.tests_tinyaes128_aes128.aes128_monitor" @@ -1474,7 +1474,7 @@ paths = [ ] expect_dir = "../../tests/tinyaes128/expects" expect_name = "aes128.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/tinyaes128/aes128.prot --wave tests/tinyaes128/aes128.fst --instances aes_128:TinyAES128 --display-hex 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/tinyaes128/aes128.prot --wave tests/tinyaes128/aes128.fst --instances aes_128:TinyAES128 --display-hex 2>/dev/null" [[tests]] name = "monitor.tests_wal_advanced_axis.axis_monitor" @@ -1483,7 +1483,7 @@ paths = [ ] expect_dir = "../../tests/wal/advanced/expects" expect_name = "axis.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/wal/advanced/axis.prot --wave tests/wal/advanced/uart-axi.fst --instances uut_rx:AXIS --sample-posedge uut_rx.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/wal/advanced/axis.prot --wave tests/wal/advanced/uart-axi.fst --instances uut_rx:AXIS --sample-posedge uut_rx.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_wal_advanced_axis_failing.axis_failing_monitor" @@ -1492,7 +1492,7 @@ paths = [ ] expect_dir = "../../tests/wal/advanced/expects" expect_name = "axis_failing.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/wal/advanced/axis_failing.prot --wave tests/wal/advanced/uart-axi-minimal.fst --instances uut_rx:AXIS --sample-posedge uut_rx.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/wal/advanced/axis_failing.prot --wave tests/wal/advanced/uart-axi-minimal.fst --instances uut_rx:AXIS --sample-posedge uut_rx.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_wal_advanced_axis_minimal.axis_minimal_monitor" @@ -1501,7 +1501,7 @@ paths = [ ] expect_dir = "../../tests/wal/advanced/expects" expect_name = "axis_minimal.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/wal/advanced/axis_minimal.prot --wave tests/wal/advanced/uart-axi-minimal.fst --instances uut_rx:AXIS --sample-posedge uut_rx.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/wal/advanced/axis_minimal.prot --wave tests/wal/advanced/uart-axi-minimal.fst --instances uut_rx:AXIS --sample-posedge uut_rx.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_wal_advanced_axis_truncated.axis_truncated_monitor" @@ -1510,7 +1510,7 @@ paths = [ ] expect_dir = "../../tests/wal/advanced/expects" expect_name = "axis_truncated.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/wal/advanced/axis_truncated.prot --wave tests/wal/advanced/uart-axi-truncated.fst --instances uut_rx:AXIS --sample-posedge uut_rx.clk --show-waveform-time --time-unit ns 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/wal/advanced/axis_truncated.prot --wave tests/wal/advanced/uart-axi-truncated.fst --instances uut_rx:AXIS --sample-posedge uut_rx.clk --show-waveform-time --time-unit ns 2>/dev/null" [[tests]] name = "monitor.tests_wal_advanced_axis_truncated_include_idle.axis_truncated_include_idle_monitor" @@ -1519,7 +1519,7 @@ paths = [ ] expect_dir = "../../tests/wal/advanced/expects" expect_name = "axis_truncated_include_idle.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/wal/advanced/axis_truncated_include_idle.prot --wave tests/wal/advanced/uart-axi-truncated.fst --instances uut_rx:AXIS --sample-posedge uut_rx.clk --show-waveform-time --time-unit ns --include-idle 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/wal/advanced/axis_truncated_include_idle.prot --wave tests/wal/advanced/uart-axi-truncated.fst --instances uut_rx:AXIS --sample-posedge uut_rx.clk --show-waveform-time --time-unit ns --include-idle 2>/dev/null" [[tests]] name = "monitor.tests_wb_intercon_wb_arb.wb_arb_monitor" @@ -1528,7 +1528,7 @@ paths = [ ] expect_dir = "../../tests/wb_intercon/expects" expect_name = "wb_arb.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/wb_intercon/wb_arb.prot --instances wb_intercon_tb.wb_arb_tb:WBSubordinate --max-steps 1000 --sample-posedge wb_intercon_tb.wb_arb_tb.wb_clk --show-waveform-time --time-unit s 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/wb_intercon/wb_arb.prot --instances wb_intercon_tb.wb_arb_tb:WBSubordinate --max-steps 1000 --sample-posedge wb_intercon_tb.wb_arb_tb.wb_clk --show-waveform-time --time-unit s 2>/dev/null" [[tests]] name = "monitor.tests_wb_intercon_wb_cdc.wb_cdc_monitor" @@ -1537,7 +1537,7 @@ paths = [ ] expect_dir = "../../tests/wb_intercon/expects" expect_name = "wb_cdc.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/wb_intercon/wb_cdc.prot --wave tests/wb_intercon/wb_cdc.fst --instances wb_intercon_tb.wb_cdc_tb.dut:WBSubordinate --max-steps 1000 --sample-posedge wb_intercon_tb.wb_cdc_tb.dut.wbm_clk --show-waveform-time --time-unit s 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/wb_intercon/wb_cdc.prot --wave tests/wb_intercon/wb_cdc.fst --instances wb_intercon_tb.wb_cdc_tb.dut:WBSubordinate --max-steps 1000 --sample-posedge wb_intercon_tb.wb_cdc_tb.dut.wbm_clk --show-waveform-time --time-unit s 2>/dev/null" [[tests]] name = "monitor.tests_wishbone_wishbone_monitor.wishbone_monitor" @@ -1546,4 +1546,4 @@ paths = [ ] expect_dir = "../../tests/wishbone/expects" expect_name = "wishbone.monitor.expect" -cmd = "cd ../.. && cargo run --offline --package protocols-monitor -- --protocol tests/wishbone/wishbone.monitor.prot --wave tests/wishbone/reqwalker.vcd --instances TOP.reqwalker:WBSubordinate --sample-posedge TOP.reqwalker.i_clk 2>/dev/null" +cmd = "cd ../.. && target/debug/protocols-monitor --protocol tests/wishbone/wishbone.monitor.prot --wave tests/wishbone/reqwalker.vcd --instances TOP.reqwalker:WBSubordinate --sample-posedge TOP.reqwalker.i_clk 2>/dev/null" diff --git a/runt/waveform/runt.toml b/runt/waveform/runt.toml new file mode 100644 index 00000000..efb989d1 --- /dev/null +++ b/runt/waveform/runt.toml @@ -0,0 +1,505 @@ +ver = "0.4.1" + +[[tests]] +name = "waveform.examples_picorv32_unsigned_mul.unsigned_mul_waveform.ast" +paths = [ + "../../examples/picorv32/unsigned_mul.tx", +] +expect_dir = "../../examples/picorv32/expects" +expect_name = "unsigned_mul.waveform.expect" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions examples/picorv32/unsigned_mul.tx --ascii-waveform --verilog examples/picorv32/picorv32.v --protocol examples/picorv32/pcpi_mul.prot --module picorv32_pcpi_mul 2>/dev/null" + +[[tests]] +name = "waveform.examples_picorv32_unsigned_mul.unsigned_mul_waveform.graph" +paths = [ + "../../examples/picorv32/unsigned_mul.tx", +] +expect_dir = "../../examples/picorv32/expects" +expect_name = "unsigned_mul.waveform.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions examples/picorv32/unsigned_mul.tx --respect-forks --determinize --ascii-waveform --verilog examples/picorv32/picorv32.v --protocol examples/picorv32/pcpi_mul.prot --module picorv32_pcpi_mul 2>/dev/null" + +[[tests]] +name = "waveform.examples_tinyaes128_aes128.aes128_waveform.ast" +paths = [ + "../../examples/tinyaes128/aes128.tx", +] +expect_dir = "../../examples/tinyaes128/expects" +expect_name = "aes128.waveform.expect" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions examples/tinyaes128/aes128.tx --ascii-waveform --verilog examples/tinyaes128/aes_128.v --protocol examples/tinyaes128/aes128.prot --module aes_128 2>/dev/null" + +[[tests]] +name = "waveform.examples_tinyaes128_aes128.aes128_waveform.graph" +paths = [ + "../../examples/tinyaes128/aes128.tx", +] +expect_dir = "../../examples/tinyaes128/expects" +expect_name = "aes128.waveform.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions examples/tinyaes128/aes128.tx --respect-forks --determinize --ascii-waveform --verilog examples/tinyaes128/aes_128.v --protocol examples/tinyaes128/aes128.prot --module aes_128 2>/dev/null" + +[[tests]] +name = "waveform.tests_adders_adder_d0_add_combinational.add_combinational_waveform.ast" +paths = [ + "../../tests/adders/adder_d0/add_combinational.tx", +] +expect_dir = "../../tests/adders/adder_d0/expects" +expect_name = "add_combinational.waveform.expect" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/adders/adder_d0/add_combinational.tx --ascii-waveform --verilog tests/adders/adder_d0/add_d0.v --protocol tests/adders/adder_d0/add_d0.prot 2>/dev/null" + +[[tests]] +name = "waveform.tests_adders_adder_d0_add_combinational.add_combinational_waveform.graph" +paths = [ + "../../tests/adders/adder_d0/add_combinational.tx", +] +expect_dir = "../../tests/adders/adder_d0/expects" +expect_name = "add_combinational.waveform.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/adders/adder_d0/add_combinational.tx --respect-forks --determinize --ascii-waveform --verilog tests/adders/adder_d0/add_d0.v --protocol tests/adders/adder_d0/add_d0.prot 2>/dev/null" + +[[tests]] +name = "waveform.tests_adders_adder_d1_add_multitrace_successful.add_multitrace_successful_waveform.ast" +paths = [ + "../../tests/adders/adder_d1/add_multitrace_successful.tx", +] +expect_dir = "../../tests/adders/adder_d1/expects" +expect_name = "add_multitrace_successful.waveform.expect" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/adders/adder_d1/add_multitrace_successful.tx --ascii-waveform --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot 2>/dev/null" + +[[tests]] +name = "waveform.tests_adders_adder_d1_add_multitrace_successful.add_multitrace_successful_waveform.graph" +paths = [ + "../../tests/adders/adder_d1/add_multitrace_successful.tx", +] +expect_dir = "../../tests/adders/adder_d1/expects" +expect_name = "add_multitrace_successful.waveform.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/adders/adder_d1/add_multitrace_successful.tx --respect-forks --determinize --ascii-waveform --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot 2>/dev/null" + +[[tests]] +name = "waveform.tests_adders_adder_d1_both_threads_pass.both_threads_pass_waveform.ast" +paths = [ + "../../tests/adders/adder_d1/both_threads_pass.tx", +] +expect_dir = "../../tests/adders/adder_d1/expects" +expect_name = "both_threads_pass.waveform.expect" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/adders/adder_d1/both_threads_pass.tx --ascii-waveform --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot 2>/dev/null" + +[[tests]] +name = "waveform.tests_adders_adder_d1_both_threads_pass.both_threads_pass_waveform.graph" +paths = [ + "../../tests/adders/adder_d1/both_threads_pass.tx", +] +expect_dir = "../../tests/adders/adder_d1/expects" +expect_name = "both_threads_pass.waveform.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/adders/adder_d1/both_threads_pass.tx --respect-forks --determinize --ascii-waveform --verilog tests/adders/adder_d1/add_d1.v --protocol tests/adders/adder_d1/add_d1.prot 2>/dev/null" + +[[tests]] +name = "waveform.tests_adders_adder_d2_both_threads_pass.both_threads_pass_waveform.ast" +paths = [ + "../../tests/adders/adder_d2/both_threads_pass.tx", +] +expect_dir = "../../tests/adders/adder_d2/expects" +expect_name = "both_threads_pass.waveform.expect" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/adders/adder_d2/both_threads_pass.tx --ascii-waveform --verilog tests/adders/adder_d2/add_d2.v --protocol tests/adders/adder_d2/add_d2.prot --max-steps 4 2>/dev/null" + +[[tests]] +name = "waveform.tests_adders_adder_d2_both_threads_pass.both_threads_pass_waveform.graph" +paths = [ + "../../tests/adders/adder_d2/both_threads_pass.tx", +] +expect_dir = "../../tests/adders/adder_d2/expects" +expect_name = "both_threads_pass.waveform.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/adders/adder_d2/both_threads_pass.tx --respect-forks --determinize --ascii-waveform --verilog tests/adders/adder_d2/add_d2.v --protocol tests/adders/adder_d2/add_d2.prot 2>/dev/null" + +[[tests]] +name = "waveform.tests_alus_alu_d1.alu_d1_waveform.ast" +paths = [ + "../../tests/alus/alu_d1.tx", +] +expect_dir = "../../tests/alus/expects" +expect_name = "alu_d1.waveform.expect" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/alus/alu_d1.tx --ascii-waveform --verilog tests/alus/alu_d1.v --protocol tests/alus/alu_d1.prot --module alu_d1 2>/dev/null" + +[[tests]] +name = "waveform.tests_alus_alu_d1.alu_d1_waveform.graph" +paths = [ + "../../tests/alus/alu_d1.tx", +] +expect_dir = "../../tests/alus/expects" +expect_name = "alu_d1.waveform.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/alus/alu_d1.tx --respect-forks --determinize --ascii-waveform --verilog tests/alus/alu_d1.v --protocol tests/alus/alu_d1.prot --module alu_d1 2>/dev/null" + +[[tests]] +name = "waveform.tests_alus_alu_d2.alu_d2_waveform.ast" +paths = [ + "../../tests/alus/alu_d2.tx", +] +expect_dir = "../../tests/alus/expects" +expect_name = "alu_d2.waveform.expect" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/alus/alu_d2.tx --ascii-waveform --verilog tests/alus/alu_d2.v --protocol tests/alus/alu_d2.prot --module alu_d2 2>/dev/null" + +[[tests]] +name = "waveform.tests_alus_alu_d2.alu_d2_waveform.graph" +paths = [ + "../../tests/alus/alu_d2.tx", +] +expect_dir = "../../tests/alus/expects" +expect_name = "alu_d2.waveform.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/alus/alu_d2.tx --respect-forks --determinize --ascii-waveform --verilog tests/alus/alu_d2.v --protocol tests/alus/alu_d2.prot --module alu_d2 2>/dev/null" + +[[tests]] +name = "waveform.tests_bounded_ready_valid_toy_reciever_0.toy_reciever_0_waveform.ast" +paths = [ + "../../tests/bounded_ready_valid/toy_reciever_0.tx", +] +expect_dir = "../../tests/bounded_ready_valid/expects" +expect_name = "toy_reciever_0.waveform.expect" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/bounded_ready_valid/toy_reciever_0.tx --ascii-waveform --verilog tests/bounded_ready_valid/toy_receiver_0.v --protocol tests/bounded_ready_valid/bounded_rv.prot 2>/dev/null" + +[[tests]] +name = "waveform.tests_bounded_ready_valid_toy_reciever_0.toy_reciever_0_waveform.graph" +paths = [ + "../../tests/bounded_ready_valid/toy_reciever_0.tx", +] +expect_dir = "../../tests/bounded_ready_valid/expects" +expect_name = "toy_reciever_0.waveform.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/bounded_ready_valid/toy_reciever_0.tx --respect-forks --determinize --ascii-waveform --verilog tests/bounded_ready_valid/toy_receiver_0.v --protocol tests/bounded_ready_valid/bounded_rv.prot 2>/dev/null" + +[[tests]] +name = "waveform.tests_bounded_ready_valid_toy_reciever_1.toy_reciever_1_waveform.ast" +paths = [ + "../../tests/bounded_ready_valid/toy_reciever_1.tx", +] +expect_dir = "../../tests/bounded_ready_valid/expects" +expect_name = "toy_reciever_1.waveform.expect" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/bounded_ready_valid/toy_reciever_1.tx --ascii-waveform --verilog tests/bounded_ready_valid/toy_receiver_1.v --protocol tests/bounded_ready_valid/bounded_rv.prot 2>/dev/null" + +[[tests]] +name = "waveform.tests_bounded_ready_valid_toy_reciever_1.toy_reciever_1_waveform.graph" +paths = [ + "../../tests/bounded_ready_valid/toy_reciever_1.tx", +] +expect_dir = "../../tests/bounded_ready_valid/expects" +expect_name = "toy_reciever_1.waveform.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/bounded_ready_valid/toy_reciever_1.tx --respect-forks --determinize --ascii-waveform --verilog tests/bounded_ready_valid/toy_receiver_1.v --protocol tests/bounded_ready_valid/bounded_rv.prot 2>/dev/null" + +[[tests]] +name = "waveform.tests_bounded_ready_valid_toy_reciever_2.toy_reciever_2_waveform.ast" +paths = [ + "../../tests/bounded_ready_valid/toy_reciever_2.tx", +] +expect_dir = "../../tests/bounded_ready_valid/expects" +expect_name = "toy_reciever_2.waveform.expect" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/bounded_ready_valid/toy_reciever_2.tx --ascii-waveform --verilog tests/bounded_ready_valid/toy_receiver_2.v --protocol tests/bounded_ready_valid/bounded_rv.prot 2>/dev/null" + +[[tests]] +name = "waveform.tests_bounded_ready_valid_toy_reciever_2.toy_reciever_2_waveform.graph" +paths = [ + "../../tests/bounded_ready_valid/toy_reciever_2.tx", +] +expect_dir = "../../tests/bounded_ready_valid/expects" +expect_name = "toy_reciever_2.waveform.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/bounded_ready_valid/toy_reciever_2.tx --respect-forks --determinize --ascii-waveform --verilog tests/bounded_ready_valid/toy_receiver_2.v --protocol tests/bounded_ready_valid/bounded_rv.prot 2>/dev/null" + +[[tests]] +name = "waveform.tests_brave_new_world_bit_truncation_bit_truncation_fft_fix.bit_truncation_fft_fix_waveform.ast" +paths = [ + "../../tests/brave_new_world/bit_truncation/bit_truncation_fft_fix.tx", +] +expect_dir = "../../tests/brave_new_world/bit_truncation/expects" +expect_name = "bit_truncation_fft_fix.waveform.expect" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/brave_new_world/bit_truncation/bit_truncation_fft_fix.tx --ascii-waveform --verilog tests/brave_new_world/bit_truncation/bit_truncation_fft_fix.v --protocol tests/brave_new_world/bit_truncation/bit_truncation_fft.prot --module round11_rne_unsigned_fixed 2>/dev/null" + +[[tests]] +name = "waveform.tests_brave_new_world_bit_truncation_bit_truncation_fft_fix.bit_truncation_fft_fix_waveform.graph" +paths = [ + "../../tests/brave_new_world/bit_truncation/bit_truncation_fft_fix.tx", +] +expect_dir = "../../tests/brave_new_world/bit_truncation/expects" +expect_name = "bit_truncation_fft_fix.waveform.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/brave_new_world/bit_truncation/bit_truncation_fft_fix.tx --respect-forks --determinize --ascii-waveform --verilog tests/brave_new_world/bit_truncation/bit_truncation_fft_fix.v --protocol tests/brave_new_world/bit_truncation/bit_truncation_fft.prot --module round11_rne_unsigned_fixed 2>/dev/null" + +[[tests]] +name = "waveform.tests_brave_new_world_bit_truncation_bit_truncation_sha_fix.bit_truncation_sha_fix_waveform.ast" +paths = [ + "../../tests/brave_new_world/bit_truncation/bit_truncation_sha_fix.tx", +] +expect_dir = "../../tests/brave_new_world/bit_truncation/expects" +expect_name = "bit_truncation_sha_fix.waveform.expect" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/brave_new_world/bit_truncation/bit_truncation_sha_fix.tx --ascii-waveform --verilog tests/brave_new_world/bit_truncation/bit_truncation_sha_fix.v --protocol tests/brave_new_world/bit_truncation/bit_truncation_sha.prot --module bit_truncation_sha_fixed 2>/dev/null" + +[[tests]] +name = "waveform.tests_brave_new_world_bit_truncation_bit_truncation_sha_fix.bit_truncation_sha_fix_waveform.graph" +paths = [ + "../../tests/brave_new_world/bit_truncation/bit_truncation_sha_fix.tx", +] +expect_dir = "../../tests/brave_new_world/bit_truncation/expects" +expect_name = "bit_truncation_sha_fix.waveform.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/brave_new_world/bit_truncation/bit_truncation_sha_fix.tx --respect-forks --determinize --ascii-waveform --verilog tests/brave_new_world/bit_truncation/bit_truncation_sha_fix.v --protocol tests/brave_new_world/bit_truncation/bit_truncation_sha.prot --module bit_truncation_sha_fixed 2>/dev/null" + +[[tests]] +name = "waveform.tests_brave_new_world_failure_to_update_ftu_sha_fix.ftu_sha_fix_waveform.ast" +paths = [ + "../../tests/brave_new_world/failure_to_update/ftu_sha_fix.tx", +] +expect_dir = "../../tests/brave_new_world/failure_to_update/expects" +expect_name = "ftu_sha_fix.waveform.expect" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/brave_new_world/failure_to_update/ftu_sha_fix.tx --ascii-waveform --verilog tests/brave_new_world/failure_to_update/ftu_sha_fix.v --protocol tests/brave_new_world/failure_to_update/ftu_sha.prot --module fsm_update_fixed_gated 2>/dev/null" + +[[tests]] +name = "waveform.tests_brave_new_world_failure_to_update_ftu_sha_fix.ftu_sha_fix_waveform.graph" +paths = [ + "../../tests/brave_new_world/failure_to_update/ftu_sha_fix.tx", +] +expect_dir = "../../tests/brave_new_world/failure_to_update/expects" +expect_name = "ftu_sha_fix.waveform.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/brave_new_world/failure_to_update/ftu_sha_fix.tx --respect-forks --determinize --ascii-waveform --verilog tests/brave_new_world/failure_to_update/ftu_sha_fix.v --protocol tests/brave_new_world/failure_to_update/ftu_sha.prot --module fsm_update_fixed_gated 2>/dev/null" + +[[tests]] +name = "waveform.tests_brave_new_world_signal_asynchrony_signal_async_fix.signal_async_fix_waveform.ast" +paths = [ + "../../tests/brave_new_world/signal_asynchrony/signal_async_fix.tx", +] +expect_dir = "../../tests/brave_new_world/signal_asynchrony/expects" +expect_name = "signal_async_fix.waveform.expect" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/brave_new_world/signal_asynchrony/signal_async_fix.tx --ascii-waveform --verilog tests/brave_new_world/signal_asynchrony/signal_async_fix.v --protocol tests/brave_new_world/signal_asynchrony/signal_async.prot --module signal_async_fix 2>/dev/null" + +[[tests]] +name = "waveform.tests_brave_new_world_signal_asynchrony_signal_async_fix.signal_async_fix_waveform.graph" +paths = [ + "../../tests/brave_new_world/signal_asynchrony/signal_async_fix.tx", +] +expect_dir = "../../tests/brave_new_world/signal_asynchrony/expects" +expect_name = "signal_async_fix.waveform.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/brave_new_world/signal_asynchrony/signal_async_fix.tx --respect-forks --determinize --ascii-waveform --verilog tests/brave_new_world/signal_asynchrony/signal_async_fix.v --protocol tests/brave_new_world/signal_asynchrony/signal_async.prot --module signal_async_fix 2>/dev/null" + +[[tests]] +name = "waveform.tests_brave_new_world_use_without_valid_use_without_valid_fix.use_without_valid_fix_waveform.ast" +paths = [ + "../../tests/brave_new_world/use_without_valid/use_without_valid_fix.tx", +] +expect_dir = "../../tests/brave_new_world/use_without_valid/expects" +expect_name = "use_without_valid_fix.waveform.expect" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/brave_new_world/use_without_valid/use_without_valid_fix.tx --ascii-waveform --verilog tests/brave_new_world/use_without_valid/use_without_valid_fix.v --protocol tests/brave_new_world/use_without_valid/use_without_valid.prot --module use_without_valid_fix 2>/dev/null" + +[[tests]] +name = "waveform.tests_brave_new_world_use_without_valid_use_without_valid_fix.use_without_valid_fix_waveform.graph" +paths = [ + "../../tests/brave_new_world/use_without_valid/use_without_valid_fix.tx", +] +expect_dir = "../../tests/brave_new_world/use_without_valid/expects" +expect_name = "use_without_valid_fix.waveform.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/brave_new_world/use_without_valid/use_without_valid_fix.tx --respect-forks --determinize --ascii-waveform --verilog tests/brave_new_world/use_without_valid/use_without_valid_fix.v --protocol tests/brave_new_world/use_without_valid/use_without_valid.prot --module use_without_valid_fix 2>/dev/null" + +[[tests]] +name = "waveform.tests_counters_counter.counter_waveform.ast" +paths = [ + "../../tests/counters/counter.tx", +] +expect_dir = "../../tests/counters/expects" +expect_name = "counter.waveform.expect" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/counters/counter.tx --ascii-waveform --verilog tests/counters/counter.v --protocol tests/counters/counter.prot 2>/dev/null" + +[[tests]] +name = "waveform.tests_counters_counter.counter_waveform.graph" +paths = [ + "../../tests/counters/counter.tx", +] +expect_dir = "../../tests/counters/expects" +expect_name = "counter.waveform.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/counters/counter.tx --respect-forks --determinize --ascii-waveform --verilog tests/counters/counter.v --protocol tests/counters/counter.prot 2>/dev/null" + +[[tests]] +name = "waveform.tests_identities_identity_d0_passthrough_combdep.passthrough_combdep_waveform.ast" +paths = [ + "../../tests/identities/identity_d0/passthrough_combdep.tx", +] +expect_dir = "../../tests/identities/identity_d0/expects" +expect_name = "passthrough_combdep.waveform.expect" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/identities/identity_d0/passthrough_combdep.tx --ascii-waveform --verilog tests/identities/identity_d0/identity_d0.v --protocol tests/identities/identity_d0/identity_d0.prot 2>/dev/null" + +[[tests]] +name = "waveform.tests_identities_identity_d0_passthrough_combdep.passthrough_combdep_waveform.graph" +paths = [ + "../../tests/identities/identity_d0/passthrough_combdep.tx", +] +expect_dir = "../../tests/identities/identity_d0/expects" +expect_name = "passthrough_combdep.waveform.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/identities/identity_d0/passthrough_combdep.tx --respect-forks --determinize --ascii-waveform --verilog tests/identities/identity_d0/identity_d0.v --protocol tests/identities/identity_d0/identity_d0.prot 2>/dev/null" + +[[tests]] +name = "waveform.tests_identities_identity_d1_slicing_ok.slicing_ok_waveform.ast" +paths = [ + "../../tests/identities/identity_d1/slicing_ok.tx", +] +expect_dir = "../../tests/identities/identity_d1/expects" +expect_name = "slicing_ok.waveform.expect" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/identities/identity_d1/slicing_ok.tx --ascii-waveform --verilog tests/identities/identity_d1/identity_d1.v --protocol tests/identities/identity_d1/identity_d1.prot 2>/dev/null" + +[[tests]] +name = "waveform.tests_identities_identity_d1_slicing_ok.slicing_ok_waveform.graph" +paths = [ + "../../tests/identities/identity_d1/slicing_ok.tx", +] +expect_dir = "../../tests/identities/identity_d1/expects" +expect_name = "slicing_ok.waveform.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/identities/identity_d1/slicing_ok.tx --respect-forks --determinize --ascii-waveform --verilog tests/identities/identity_d1/identity_d1.v --protocol tests/identities/identity_d1/identity_d1.prot 2>/dev/null" + +[[tests]] +name = "waveform.tests_identities_identity_d2_single_thread_passes.single_thread_passes_waveform.ast" +paths = [ + "../../tests/identities/identity_d2/single_thread_passes.tx", +] +expect_dir = "../../tests/identities/identity_d2/expects" +expect_name = "single_thread_passes.waveform.expect" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/identities/identity_d2/single_thread_passes.tx --ascii-waveform --verilog tests/identities/identity_d2/identity_d2.v --protocol tests/identities/identity_d2/identity_d2.prot 2>/dev/null" + +[[tests]] +name = "waveform.tests_identities_identity_d2_single_thread_passes.single_thread_passes_waveform.graph" +paths = [ + "../../tests/identities/identity_d2/single_thread_passes.tx", +] +expect_dir = "../../tests/identities/identity_d2/expects" +expect_name = "single_thread_passes.waveform.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/identities/identity_d2/single_thread_passes.tx --respect-forks --determinize --ascii-waveform --verilog tests/identities/identity_d2/identity_d2.v --protocol tests/identities/identity_d2/identity_d2.prot 2>/dev/null" + +[[tests]] +name = "waveform.tests_identities_identity_d2_two_assignments_same_value.two_assignments_same_value_waveform.ast" +paths = [ + "../../tests/identities/identity_d2/two_assignments_same_value.tx", +] +expect_dir = "../../tests/identities/identity_d2/expects" +expect_name = "two_assignments_same_value.waveform.expect" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/identities/identity_d2/two_assignments_same_value.tx --ascii-waveform --verilog tests/identities/identity_d2/identity_d2.v --protocol tests/identities/identity_d2/identity_d2.prot 2>/dev/null" + +[[tests]] +name = "waveform.tests_identities_identity_d2_two_assignments_same_value.two_assignments_same_value_waveform.graph" +paths = [ + "../../tests/identities/identity_d2/two_assignments_same_value.tx", +] +expect_dir = "../../tests/identities/identity_d2/expects" +expect_name = "two_assignments_same_value.waveform.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/identities/identity_d2/two_assignments_same_value.tx --respect-forks --determinize --ascii-waveform --verilog tests/identities/identity_d2/identity_d2.v --protocol tests/identities/identity_d2/identity_d2.prot 2>/dev/null" + +[[tests]] +name = "waveform.tests_multi_multi0_multi0.multi0_waveform.ast" +paths = [ + "../../tests/multi/multi0/multi0.tx", +] +expect_dir = "../../tests/multi/multi0/expects" +expect_name = "multi0.waveform.expect" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/multi/multi0/multi0.tx --ascii-waveform --verilog tests/multi/multi0/multi0.v --protocol tests/multi/multi0/multi0.prot --module multi0 2>/dev/null" + +[[tests]] +name = "waveform.tests_multi_multi0_multi0.multi0_waveform.graph" +paths = [ + "../../tests/multi/multi0/multi0.tx", +] +expect_dir = "../../tests/multi/multi0/expects" +expect_name = "multi0.waveform.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/multi/multi0/multi0.tx --respect-forks --determinize --ascii-waveform --verilog tests/multi/multi0/multi0.v --protocol tests/multi/multi0/multi0.prot --module multi0 2>/dev/null" + +[[tests]] +name = "waveform.tests_multi_multi0keep_multi0keep.multi0keep_waveform.ast" +paths = [ + "../../tests/multi/multi0keep/multi0keep.tx", +] +expect_dir = "../../tests/multi/multi0keep/expects" +expect_name = "multi0keep.waveform.expect" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/multi/multi0keep/multi0keep.tx --ascii-waveform --verilog tests/multi/multi0keep/multi0keep.v --protocol tests/multi/multi0keep/multi0keep.prot --module multi0keep 2>/dev/null" + +[[tests]] +name = "waveform.tests_multi_multi0keep_multi0keep.multi0keep_waveform.graph" +paths = [ + "../../tests/multi/multi0keep/multi0keep.tx", +] +expect_dir = "../../tests/multi/multi0keep/expects" +expect_name = "multi0keep.waveform.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/multi/multi0keep/multi0keep.tx --respect-forks --determinize --ascii-waveform --verilog tests/multi/multi0keep/multi0keep.v --protocol tests/multi/multi0keep/multi0keep.prot --module multi0keep 2>/dev/null" + +[[tests]] +name = "waveform.tests_multi_multi0keep2const_multi0keep2const.multi0keep2const_waveform.ast" +paths = [ + "../../tests/multi/multi0keep2const/multi0keep2const.tx", +] +expect_dir = "../../tests/multi/multi0keep2const/expects" +expect_name = "multi0keep2const.waveform.expect" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/multi/multi0keep2const/multi0keep2const.tx --ascii-waveform --verilog tests/multi/multi0keep2const/multi0keep2const.v tests/multi/multi0keep/multi0keep.v --protocol tests/multi/multi0keep2const/multi0keep2const.prot --module multi0keep2const 2>/dev/null" + +[[tests]] +name = "waveform.tests_multi_multi0keep2const_multi0keep2const.multi0keep2const_waveform.graph" +paths = [ + "../../tests/multi/multi0keep2const/multi0keep2const.tx", +] +expect_dir = "../../tests/multi/multi0keep2const/expects" +expect_name = "multi0keep2const.waveform.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/multi/multi0keep2const/multi0keep2const.tx --respect-forks --determinize --ascii-waveform --verilog tests/multi/multi0keep2const/multi0keep2const.v tests/multi/multi0keep/multi0keep.v --protocol tests/multi/multi0keep2const/multi0keep2const.prot --module multi0keep2const 2>/dev/null" + +[[tests]] +name = "waveform.tests_multi_multi2const_multi2const.multi2const_waveform.ast" +paths = [ + "../../tests/multi/multi2const/multi2const.tx", +] +expect_dir = "../../tests/multi/multi2const/expects" +expect_name = "multi2const.waveform.expect" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/multi/multi2const/multi2const.tx --ascii-waveform --verilog tests/multi/multi2const/multi2const.v tests/multi/multi0/multi0.v --protocol tests/multi/multi2const/multi2const.prot --module multi2const 2>/dev/null" + +[[tests]] +name = "waveform.tests_multi_multi2const_multi2const.multi2const_waveform.graph" +paths = [ + "../../tests/multi/multi2const/multi2const.tx", +] +expect_dir = "../../tests/multi/multi2const/expects" +expect_name = "multi2const.waveform.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/multi/multi2const/multi2const.tx --respect-forks --determinize --ascii-waveform --verilog tests/multi/multi2const/multi2const.v tests/multi/multi0/multi0.v --protocol tests/multi/multi2const/multi2const.prot --module multi2const 2>/dev/null" + +[[tests]] +name = "waveform.tests_multi_multi2multi_multi2multi.multi2multi_waveform.ast" +paths = [ + "../../tests/multi/multi2multi/multi2multi.tx", +] +expect_dir = "../../tests/multi/multi2multi/expects" +expect_name = "multi2multi.waveform.expect" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/multi/multi2multi/multi2multi.tx --ascii-waveform --verilog tests/multi/multi2multi/multi2multi.v tests/multi/multi0/multi0.v --protocol tests/multi/multi2multi/multi2multi.prot --module multi2multi 2>/dev/null" + +[[tests]] +name = "waveform.tests_multi_multi2multi_multi2multi.multi2multi_waveform.graph" +paths = [ + "../../tests/multi/multi2multi/multi2multi.tx", +] +expect_dir = "../../tests/multi/multi2multi/expects" +expect_name = "multi2multi.waveform.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/multi/multi2multi/multi2multi.tx --respect-forks --determinize --ascii-waveform --verilog tests/multi/multi2multi/multi2multi.v tests/multi/multi0/multi0.v --protocol tests/multi/multi2multi/multi2multi.prot --module multi2multi 2>/dev/null" + +[[tests]] +name = "waveform.tests_multi_multi_data_multi_data.multi_data_waveform.ast" +paths = [ + "../../tests/multi/multi_data/multi_data.tx", +] +expect_dir = "../../tests/multi/multi_data/expects" +expect_name = "multi_data.waveform.expect" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/multi/multi_data/multi_data.tx --ascii-waveform --verilog tests/multi/multi_data/multi_data.v --protocol tests/multi/multi_data/multi_data.prot 2>/dev/null" + +[[tests]] +name = "waveform.tests_multi_multi_data_multi_data.multi_data_waveform.graph" +paths = [ + "../../tests/multi/multi_data/multi_data.tx", +] +expect_dir = "../../tests/multi/multi_data/expects" +expect_name = "multi_data.waveform.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/multi/multi_data/multi_data.tx --respect-forks --determinize --ascii-waveform --verilog tests/multi/multi_data/multi_data.v --protocol tests/multi/multi_data/multi_data.prot 2>/dev/null" + +[[tests]] +name = "waveform.tests_multipliers_mult_d2_both_threads_pass.both_threads_pass_waveform.ast" +paths = [ + "../../tests/multipliers/mult_d2/both_threads_pass.tx", +] +expect_dir = "../../tests/multipliers/mult_d2/expects" +expect_name = "both_threads_pass.waveform.expect" +cmd = "cd ../.. && target/debug/protocols-interp --color never --transactions tests/multipliers/mult_d2/both_threads_pass.tx --ascii-waveform --verilog tests/multipliers/mult_d2/mult_d2.v --protocol tests/multipliers/mult_d2/mult_d2.prot 2>/dev/null" + +[[tests]] +name = "waveform.tests_multipliers_mult_d2_both_threads_pass.both_threads_pass_waveform.graph" +paths = [ + "../../tests/multipliers/mult_d2/both_threads_pass.tx", +] +expect_dir = "../../tests/multipliers/mult_d2/expects" +expect_name = "both_threads_pass.waveform.expect" +cmd = "cd ../.. && target/debug/graph-interp --transactions tests/multipliers/mult_d2/both_threads_pass.tx --respect-forks --determinize --ascii-waveform --verilog tests/multipliers/mult_d2/mult_d2.v --protocol tests/multipliers/mult_d2/mult_d2.prot 2>/dev/null" diff --git a/scripts/generate_runt_configs.py b/scripts/generate_runt_configs.py index 046ef985..011e7293 100644 --- a/scripts/generate_runt_configs.py +++ b/scripts/generate_runt_configs.py @@ -98,20 +98,22 @@ def expect_dir(case: dict, runner: str) -> str: # command construction -def cargo_prefix(package: str) -> list[str]: - return [ - "cargo", - "run", - "--offline", - "--package", - package, - "--", - ] +def binary_prefix(binary: str) -> list[str]: + return [f"target/debug/{binary}"] -def repo_root_command(cmd: list[str], suppress_stderr: bool = True) -> str: +def repo_root_command(cmd: list[str], stderr: str = "discard") -> str: # Each runt test runs exactly one path, so we bake it straight into the - tail = " 2>/dev/null" if suppress_stderr else "" + # command. Runt captures stdout; interp snapshots intentionally include + # diagnostics, while monitor/graph snapshots historically discard stderr. + if stderr == "stdout": + tail = " 2>&1" + elif stderr == "discard": + tail = " 2>/dev/null" + elif stderr == "inherit": + tail = "" + else: + raise ValueError(f"unknown stderr mode: {stderr}") return "cd ../.. && " + shlex.join(cmd) + tail @@ -150,26 +152,37 @@ def _tx_tail(cmd: list[str], case: dict, with_max_steps: bool) -> None: def interp_runt_command(case: dict) -> list[tuple[str, str]]: cmd = [ - *cargo_prefix("protocols-interp"), + *binary_prefix("protocols-interp"), "--color", "never", "--transactions", case["path"], ] _tx_tail(cmd, case, with_max_steps=True) - return [("", repo_root_command(cmd))] + return [("", repo_root_command(cmd, stderr="stdout"))] def graph_interp_runt_command(case: dict) -> list[tuple[str, str]]: - cmd = [*cargo_prefix("graph-interp"), "--transactions", case["path"]] + cmd = [*binary_prefix("graph-interp"), "--transactions", case["path"]] _tx_tail(cmd, case, with_max_steps=False) - # baseline and --contract-edges runs share one golden - flag_sets = [("", []), ("contract_edges", ["--contract-edges"])] + + # wishbone and fifo only work with --respect-forks + if case["path"].startswith("tests/fifo/") or case["path"].startswith( + "tests/wishbone/" + ): + flag_sets = [("respect_forks", ["--respect-forks", "--determinize"])] + else: + # baseline and --contract-edges runs share one golden + flag_sets = [ + ("", []), + ("contract_edges", ["--contract-edges"]), + ("respect_forks", ["--respect-forks", "--determinize"]), + ] return [(suffix, repo_root_command(cmd + flags)) for suffix, flags in flag_sets] def monitor_runt_command(case: dict) -> list[tuple[str, str]]: - cmd = [*cargo_prefix("protocols-monitor"), "--protocol", case["path"]] + cmd = [*binary_prefix("protocols-monitor"), "--protocol", case["path"]] if case["wave"]: cmd += ["--wave", case["wave"]] if case["instances"]: @@ -182,10 +195,38 @@ def monitor_runt_command(case: dict) -> list[tuple[str, str]]: return [("", repo_root_command(cmd))] +def waveform_runt_command(case: dict) -> list[tuple[str, str]]: + ast_cmd = [ + *binary_prefix("protocols-interp"), + "--color", + "never", + "--transactions", + case["path"], + "--ascii-waveform", + ] + _tx_tail(ast_cmd, case, with_max_steps=True) + + graph_cmd = [ + *binary_prefix("graph-interp"), + "--transactions", + case["path"], + "--respect-forks", + "--determinize", + "--ascii-waveform", + ] + _tx_tail(graph_cmd, case, with_max_steps=False) + + return [ + ("ast", repo_root_command(ast_cmd, stderr="discard")), + ("graph", repo_root_command(graph_cmd, stderr="discard")), + ] + + RUNT_BUILDERS = { "interp": interp_runt_command, "graph_interp": graph_interp_runt_command, "monitor": monitor_runt_command, + "waveform": waveform_runt_command, } @@ -231,15 +272,26 @@ def graph_interp_cases(cases: list[dict]) -> list[dict]: c for c in cases if c["expected"] == "pass" - and "fifo" - not in c[ - "path" - ] # these don't work with graph interpreter due to (lack of) fork support and not graph_interp_unsupported & protocol_constructs(c["protocol_path"]) ] return sorted(selected, key=lambda c: c["path"]) +def waveform_cases(cases: list[dict]) -> list[dict]: + """All the graph_interp_cases, except with some extra exclusions""" + # these cases are correct, but our ASCII diffing isn't good enough + # for us to know they are the same + xfailed = [ + "examples/serv/serv_regfile.tx", + "tests/adders/adder_d1/wait_and_add_correct.tx", + "tests/fifo/fifo.tx", + "tests/fifo/push_pop_identity_ok.tx", + "tests/wishbone/wishbone.tx", + ] + + return list(filter(lambda c: c["path"] not in xfailed, graph_interp_cases(cases))) + + def runt_case_suites(suite_name: str, runner: str, cases: list[dict]): build = RUNT_BUILDERS[runner] suites = [] @@ -284,6 +336,7 @@ def generate_runt_configs() -> None: "interp": ("interp", tx), "monitor": ("monitor", mon), "graph_interp": ("graph_interp", graph_interp_cases(tx)), + "waveform": ("waveform", waveform_cases(tx)), } # A golden may be shared by several variants of the same test (e.g. the diff --git a/scripts/test_catalog.py b/scripts/test_catalog.py index b8e9fba2..ff56b960 100644 --- a/scripts/test_catalog.py +++ b/scripts/test_catalog.py @@ -74,6 +74,11 @@ "verilog": ("tests/adders/adder_d1/add_d1.v",), "expect": "assertion_mismatch", }, + "tests/adders/adder_d1/add_multitrace_successful.tx": { + "protocol": "tests/adders/adder_d1/add_d1.prot", + "verilog": ("tests/adders/adder_d1/add_d1.v",), + "expect": "pass", + }, "tests/adders/adder_d1/both_threads_fail.tx": { "protocol": "tests/adders/adder_d1/add_d1.prot", "verilog": ("tests/adders/adder_d1/add_d1.v",), diff --git a/tests/adders/adder_d0/add_combinational.tx b/tests/adders/adder_d0/add_combinational.tx index 0082f8e8..32948e92 100644 --- a/tests/adders/adder_d0/add_combinational.tx +++ b/tests/adders/adder_d0/add_combinational.tx @@ -1,3 +1,4 @@ trace { add_combinational(100, 200, 300); + add_combinational(200, 300, 500); } diff --git a/tests/adders/adder_d0/expects/add_combinational.graph_interp.expect b/tests/adders/adder_d0/expects/add_combinational.graph_interp.expect index e645ee24..f5f6cb49 100644 --- a/tests/adders/adder_d0/expects/add_combinational.graph_interp.expect +++ b/tests/adders/adder_d0/expects/add_combinational.graph_interp.expect @@ -1,13 +1 @@ -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/adders/adder_d0/add_d0.prot:8:3 - │ -8 │ DUT.a := X; - │ ^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/adders/adder_d0/add_d0.prot:9:3 - │ -9 │ DUT.b := X; - │ ^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/adders/adder_d0/expects/add_combinational.waveform.expect b/tests/adders/adder_d0/expects/add_combinational.waveform.expect new file mode 100644 index 00000000..024aa76a --- /dev/null +++ b/tests/adders/adder_d0/expects/add_combinational.waveform.expect @@ -0,0 +1,4 @@ +Trace 0 executed successfully! +b[31:0] 200 300 +a[31:0] 100 200 +s[31:0] 300 500 diff --git a/tests/adders/adder_d1/add_d1.prot b/tests/adders/adder_d1/add_d1.prot index 59f5447d..cacf3ce0 100644 --- a/tests/adders/adder_d1/add_d1.prot +++ b/tests/adders/adder_d1/add_d1.prot @@ -88,3 +88,23 @@ prot assign_after_observation(a: u32, b: u32, s: u32) { fork(); step(); } + +// conditional assignment +prot if_else(a1: u32, a2: u32) { + if (1'b1) { + DUT.a := a1; + } else { // always taken + DUT.a := a2; + } + + DUT.b := 32'b0; + + step(); + + DUT.a := X; + DUT.b := X; + assert_eq(a1, DUT.s); + + fork(); + step(); +} \ No newline at end of file diff --git a/tests/adders/adder_d1/add_multitrace_successful.tx b/tests/adders/adder_d1/add_multitrace_successful.tx new file mode 100644 index 00000000..d50851c1 --- /dev/null +++ b/tests/adders/adder_d1/add_multitrace_successful.tx @@ -0,0 +1,9 @@ +trace { + add(1, 2, 3); + add(4, 5, 9); +} + +trace { + add(1, 2, 3); + add(4, 5, 9); +} diff --git a/tests/adders/adder_d1/expects/add_multitrace_successful.graph_interp.expect b/tests/adders/adder_d1/expects/add_multitrace_successful.graph_interp.expect new file mode 100644 index 00000000..451d2597 --- /dev/null +++ b/tests/adders/adder_d1/expects/add_multitrace_successful.graph_interp.expect @@ -0,0 +1,5 @@ +Trace 0 executed successfully! + +--- + +Trace 1 executed successfully! diff --git a/tests/adders/adder_d1/expects/add_multitrace_successful.interp.expect b/tests/adders/adder_d1/expects/add_multitrace_successful.interp.expect new file mode 100644 index 00000000..451d2597 --- /dev/null +++ b/tests/adders/adder_d1/expects/add_multitrace_successful.interp.expect @@ -0,0 +1,5 @@ +Trace 0 executed successfully! + +--- + +Trace 1 executed successfully! diff --git a/tests/adders/adder_d1/expects/add_multitrace_successful.waveform.expect b/tests/adders/adder_d1/expects/add_multitrace_successful.waveform.expect new file mode 100644 index 00000000..a200d202 --- /dev/null +++ b/tests/adders/adder_d1/expects/add_multitrace_successful.waveform.expect @@ -0,0 +1,11 @@ +Trace 0 executed successfully! +b[31:0] 2 5 x +a[31:0] 1 4 x +s[31:0] 0 3 9 + +--- + +Trace 1 executed successfully! +b[31:0] 2 5 x +a[31:0] 1 4 x +s[31:0] 0 3 9 diff --git a/tests/adders/adder_d1/expects/both_threads_pass.graph_interp.expect b/tests/adders/adder_d1/expects/both_threads_pass.graph_interp.expect index 7ee8061d..f5f6cb49 100644 --- a/tests/adders/adder_d1/expects/both_threads_pass.graph_interp.expect +++ b/tests/adders/adder_d1/expects/both_threads_pass.graph_interp.expect @@ -1,31 +1 @@ -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/adders/adder_d1/add_d1.prot:12:3 - │ -12 │ DUT.a := X; - │ ^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/adders/adder_d1/add_d1.prot:13:3 - │ -13 │ DUT.b := X; - │ ^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/adders/adder_d1/add_d1.prot:25:3 - │ -25 │ DUT.b := X; - │ ^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/adders/adder_d1/add_d1.prot:84:3 - │ -84 │ DUT.a := X; - │ ^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/adders/adder_d1/add_d1.prot:85:3 - │ -85 │ DUT.b := X; - │ ^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/adders/adder_d1/expects/both_threads_pass.waveform.expect b/tests/adders/adder_d1/expects/both_threads_pass.waveform.expect new file mode 100644 index 00000000..9e6569e4 --- /dev/null +++ b/tests/adders/adder_d1/expects/both_threads_pass.waveform.expect @@ -0,0 +1,4 @@ +Trace 0 executed successfully! +b[31:0] 2 5 x +a[31:0] 1 4 x +s[31:0] 0 3 9 diff --git a/tests/adders/adder_d1/expects/wait_and_add_correct.graph_interp.expect b/tests/adders/adder_d1/expects/wait_and_add_correct.graph_interp.expect index 7ee8061d..f5f6cb49 100644 --- a/tests/adders/adder_d1/expects/wait_and_add_correct.graph_interp.expect +++ b/tests/adders/adder_d1/expects/wait_and_add_correct.graph_interp.expect @@ -1,31 +1 @@ -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/adders/adder_d1/add_d1.prot:12:3 - │ -12 │ DUT.a := X; - │ ^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/adders/adder_d1/add_d1.prot:13:3 - │ -13 │ DUT.b := X; - │ ^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/adders/adder_d1/add_d1.prot:25:3 - │ -25 │ DUT.b := X; - │ ^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/adders/adder_d1/add_d1.prot:84:3 - │ -84 │ DUT.a := X; - │ ^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/adders/adder_d1/add_d1.prot:85:3 - │ -85 │ DUT.b := X; - │ ^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/adders/adder_d1/expects/wait_and_add_correct.waveform.expect b/tests/adders/adder_d1/expects/wait_and_add_correct.waveform.expect new file mode 100644 index 00000000..19d2eedf --- /dev/null +++ b/tests/adders/adder_d1/expects/wait_and_add_correct.waveform.expect @@ -0,0 +1,4 @@ +Trace 0 executed successfully! +b[31:0] x 5 2 2 +a[31:0] x 4 1 1 +s[31:0] 0 2065105126 9 3 diff --git a/tests/adders/adder_d1/if_else.tx b/tests/adders/adder_d1/if_else.tx new file mode 100644 index 00000000..14cd0f5e --- /dev/null +++ b/tests/adders/adder_d1/if_else.tx @@ -0,0 +1,3 @@ +trace { + if_else(1, 2); +} \ No newline at end of file diff --git a/tests/adders/adder_d2/expects/both_threads_pass.graph_interp.expect b/tests/adders/adder_d2/expects/both_threads_pass.graph_interp.expect index 1f9b69bb..f5f6cb49 100644 --- a/tests/adders/adder_d2/expects/both_threads_pass.graph_interp.expect +++ b/tests/adders/adder_d2/expects/both_threads_pass.graph_interp.expect @@ -1,25 +1 @@ -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/adders/adder_d2/add_d2.prot:15:3 - │ -15 │ DUT.a := X; - │ ^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/adders/adder_d2/add_d2.prot:16:3 - │ -16 │ DUT.b := X; - │ ^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/adders/adder_d2/add_d2.prot:20:3 - │ -20 │ DUT.a := X; - │ ^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/adders/adder_d2/add_d2.prot:21:3 - │ -21 │ DUT.b := X; - │ ^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/adders/adder_d2/expects/both_threads_pass.waveform.expect b/tests/adders/adder_d2/expects/both_threads_pass.waveform.expect new file mode 100644 index 00000000..70249533 --- /dev/null +++ b/tests/adders/adder_d2/expects/both_threads_pass.waveform.expect @@ -0,0 +1,4 @@ +Trace 0 executed successfully! +b[31:0] 2 5 x x +a[31:0] 1 4 x x +s[31:0] 0 0 3 9 diff --git a/tests/alus/expects/alu_d1.graph_interp.expect b/tests/alus/expects/alu_d1.graph_interp.expect index 72b35b2e..f5f6cb49 100644 --- a/tests/alus/expects/alu_d1.graph_interp.expect +++ b/tests/alus/expects/alu_d1.graph_interp.expect @@ -1,19 +1 @@ -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/alus/alu_d1.prot:14:3 - │ -14 │ DUT.a := X; - │ ^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/alus/alu_d1.prot:15:3 - │ -15 │ DUT.b := X; - │ ^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -warning: Inferred RHS type as u2 from LHS type u2. - ┌─ tests/alus/alu_d1.prot:16:3 - │ -16 │ DUT.op := X; - │ ^^^^^^^^^^^^ Inferred RHS type as u2 from LHS type u2. - -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/alus/expects/alu_d1.waveform.expect b/tests/alus/expects/alu_d1.waveform.expect new file mode 100644 index 00000000..f6e53724 --- /dev/null +++ b/tests/alus/expects/alu_d1.waveform.expect @@ -0,0 +1,5 @@ +Trace 0 executed successfully! +op[1:0] 0 0 1 2 3 x +b[31:0] 2 245 200 100 230 x +a[31:0] 1 123 200 100 0 x +s[31:0] 0 3 368 0 100 230 diff --git a/tests/alus/expects/alu_d2.graph_interp.expect b/tests/alus/expects/alu_d2.graph_interp.expect index 8a9baaa1..f5f6cb49 100644 --- a/tests/alus/expects/alu_d2.graph_interp.expect +++ b/tests/alus/expects/alu_d2.graph_interp.expect @@ -1,37 +1 @@ -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/alus/alu_d2.prot:17:3 - │ -17 │ DUT.a := X; - │ ^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/alus/alu_d2.prot:18:3 - │ -18 │ DUT.b := X; - │ ^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -warning: Inferred RHS type as u2 from LHS type u2. - ┌─ tests/alus/alu_d2.prot:19:3 - │ -19 │ DUT.op := X; - │ ^^^^^^^^^^^^ Inferred RHS type as u2 from LHS type u2. - -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/alus/alu_d2.prot:23:3 - │ -23 │ DUT.a := X; - │ ^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/alus/alu_d2.prot:24:3 - │ -24 │ DUT.b := X; - │ ^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -warning: Inferred RHS type as u2 from LHS type u2. - ┌─ tests/alus/alu_d2.prot:25:3 - │ -25 │ DUT.op := X; - │ ^^^^^^^^^^^^ Inferred RHS type as u2 from LHS type u2. - -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/alus/expects/alu_d2.waveform.expect b/tests/alus/expects/alu_d2.waveform.expect new file mode 100644 index 00000000..b96a6446 --- /dev/null +++ b/tests/alus/expects/alu_d2.waveform.expect @@ -0,0 +1,5 @@ +Trace 0 executed successfully! +op[1:0] 0 0 1 2 3 x x +b[31:0] 2 245 200 100 230 x x +a[31:0] 1 123 200 100 0 x x +s[31:0] 0 0 3 368 0 100 230 diff --git a/tests/bounded_ready_valid/expects/toy_reciever_0.graph_interp.expect b/tests/bounded_ready_valid/expects/toy_reciever_0.graph_interp.expect index f68c1e4d..f5f6cb49 100644 --- a/tests/bounded_ready_valid/expects/toy_reciever_0.graph_interp.expect +++ b/tests/bounded_ready_valid/expects/toy_reciever_0.graph_interp.expect @@ -1 +1 @@ -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/bounded_ready_valid/expects/toy_reciever_0.waveform.expect b/tests/bounded_ready_valid/expects/toy_reciever_0.waveform.expect new file mode 100644 index 00000000..19684550 --- /dev/null +++ b/tests/bounded_ready_valid/expects/toy_reciever_0.waveform.expect @@ -0,0 +1,4 @@ +Trace 0 executed successfully! +valid 1 +data[7:0] 5 +ready 1 diff --git a/tests/bounded_ready_valid/expects/toy_reciever_1.graph_interp.expect b/tests/bounded_ready_valid/expects/toy_reciever_1.graph_interp.expect index f68c1e4d..f5f6cb49 100644 --- a/tests/bounded_ready_valid/expects/toy_reciever_1.graph_interp.expect +++ b/tests/bounded_ready_valid/expects/toy_reciever_1.graph_interp.expect @@ -1 +1 @@ -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/bounded_ready_valid/expects/toy_reciever_1.waveform.expect b/tests/bounded_ready_valid/expects/toy_reciever_1.waveform.expect new file mode 100644 index 00000000..ec516ec7 --- /dev/null +++ b/tests/bounded_ready_valid/expects/toy_reciever_1.waveform.expect @@ -0,0 +1,4 @@ +Trace 0 executed successfully! +valid 1 1 +data[7:0] 5 5 +ready 0 1 diff --git a/tests/bounded_ready_valid/expects/toy_reciever_2.graph_interp.expect b/tests/bounded_ready_valid/expects/toy_reciever_2.graph_interp.expect index f68c1e4d..f5f6cb49 100644 --- a/tests/bounded_ready_valid/expects/toy_reciever_2.graph_interp.expect +++ b/tests/bounded_ready_valid/expects/toy_reciever_2.graph_interp.expect @@ -1 +1 @@ -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/bounded_ready_valid/expects/toy_reciever_2.waveform.expect b/tests/bounded_ready_valid/expects/toy_reciever_2.waveform.expect new file mode 100644 index 00000000..678a6471 --- /dev/null +++ b/tests/bounded_ready_valid/expects/toy_reciever_2.waveform.expect @@ -0,0 +1,4 @@ +Trace 0 executed successfully! +valid 1 1 1 +data[7:0] 5 5 5 +ready 0 0 1 diff --git a/tests/brave_new_world/bit_truncation/expects/bit_truncation_fft_fix.graph_interp.expect b/tests/brave_new_world/bit_truncation/expects/bit_truncation_fft_fix.graph_interp.expect index f68c1e4d..f5f6cb49 100644 --- a/tests/brave_new_world/bit_truncation/expects/bit_truncation_fft_fix.graph_interp.expect +++ b/tests/brave_new_world/bit_truncation/expects/bit_truncation_fft_fix.graph_interp.expect @@ -1 +1 @@ -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/brave_new_world/bit_truncation/expects/bit_truncation_fft_fix.waveform.expect b/tests/brave_new_world/bit_truncation/expects/bit_truncation_fft_fix.waveform.expect new file mode 100644 index 00000000..173a40ca --- /dev/null +++ b/tests/brave_new_world/bit_truncation/expects/bit_truncation_fft_fix.waveform.expect @@ -0,0 +1,3 @@ +Trace 0 executed successfully! +input_data[26:0] 8386560 8386560 +output_data[10:0] 0 2047 diff --git a/tests/brave_new_world/bit_truncation/expects/bit_truncation_sha_fix.graph_interp.expect b/tests/brave_new_world/bit_truncation/expects/bit_truncation_sha_fix.graph_interp.expect index f68c1e4d..f5f6cb49 100644 --- a/tests/brave_new_world/bit_truncation/expects/bit_truncation_sha_fix.graph_interp.expect +++ b/tests/brave_new_world/bit_truncation/expects/bit_truncation_sha_fix.graph_interp.expect @@ -1 +1 @@ -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/brave_new_world/bit_truncation/expects/bit_truncation_sha_fix.waveform.expect b/tests/brave_new_world/bit_truncation/expects/bit_truncation_sha_fix.waveform.expect new file mode 100644 index 00000000..8e0c31cb --- /dev/null +++ b/tests/brave_new_world/bit_truncation/expects/bit_truncation_sha_fix.waveform.expect @@ -0,0 +1,3 @@ +Trace 0 executed successfully! +right[63:0] 4398046511104 4398046511104 +left[41:0] 0 68719476736 diff --git a/tests/brave_new_world/failure_to_update/expects/ftu_sha_fix.graph_interp.expect b/tests/brave_new_world/failure_to_update/expects/ftu_sha_fix.graph_interp.expect index f68c1e4d..f5f6cb49 100644 --- a/tests/brave_new_world/failure_to_update/expects/ftu_sha_fix.graph_interp.expect +++ b/tests/brave_new_world/failure_to_update/expects/ftu_sha_fix.graph_interp.expect @@ -1 +1 @@ -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/brave_new_world/failure_to_update/expects/ftu_sha_fix.waveform.expect b/tests/brave_new_world/failure_to_update/expects/ftu_sha_fix.waveform.expect new file mode 100644 index 00000000..432dc113 --- /dev/null +++ b/tests/brave_new_world/failure_to_update/expects/ftu_sha_fix.waveform.expect @@ -0,0 +1,8 @@ +Trace 0 executed successfully! +result_valid x x 1 0 0 +almfull x x x 1 1 +finish x x 1 0 0 +start x 1 1 1 1 +reset 1 0 0 0 0 +data[31:0] 0 0 0 0 0 +valid 0 0 0 0 0 diff --git a/tests/brave_new_world/signal_asynchrony/expects/signal_async_fix.graph_interp.expect b/tests/brave_new_world/signal_asynchrony/expects/signal_async_fix.graph_interp.expect index f68c1e4d..f5f6cb49 100644 --- a/tests/brave_new_world/signal_asynchrony/expects/signal_async_fix.graph_interp.expect +++ b/tests/brave_new_world/signal_asynchrony/expects/signal_async_fix.graph_interp.expect @@ -1 +1 @@ -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/brave_new_world/signal_asynchrony/expects/signal_async_fix.waveform.expect b/tests/brave_new_world/signal_asynchrony/expects/signal_async_fix.waveform.expect new file mode 100644 index 00000000..ff2f5650 --- /dev/null +++ b/tests/brave_new_world/signal_asynchrony/expects/signal_async_fix.waveform.expect @@ -0,0 +1,5 @@ +Trace 0 executed successfully! +input_data[31:0] x 6 6 6 +request 0 1 1 1 +final_resp_valid 0 0 0 1 +final_resp[31:0] 0 0 0 7 diff --git a/tests/brave_new_world/use_without_valid/expects/use_without_valid_fix.graph_interp.expect b/tests/brave_new_world/use_without_valid/expects/use_without_valid_fix.graph_interp.expect index f68c1e4d..f5f6cb49 100644 --- a/tests/brave_new_world/use_without_valid/expects/use_without_valid_fix.graph_interp.expect +++ b/tests/brave_new_world/use_without_valid/expects/use_without_valid_fix.graph_interp.expect @@ -1 +1 @@ -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/brave_new_world/use_without_valid/expects/use_without_valid_fix.waveform.expect b/tests/brave_new_world/use_without_valid/expects/use_without_valid_fix.waveform.expect new file mode 100644 index 00000000..bb36b8e6 --- /dev/null +++ b/tests/brave_new_world/use_without_valid/expects/use_without_valid_fix.waveform.expect @@ -0,0 +1,4 @@ +Trace 0 executed successfully! +data_val 0 0 1 1 +data[31:0] 5 5 5 5 +sum[31:0] 0 0 0 5 diff --git a/tests/counters/expects/counter.graph_interp.expect b/tests/counters/expects/counter.graph_interp.expect index f68c1e4d..f5f6cb49 100644 --- a/tests/counters/expects/counter.graph_interp.expect +++ b/tests/counters/expects/counter.graph_interp.expect @@ -1 +1 @@ -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/counters/expects/counter.waveform.expect b/tests/counters/expects/counter.waveform.expect new file mode 100644 index 00000000..2162821b --- /dev/null +++ b/tests/counters/expects/counter.waveform.expect @@ -0,0 +1,3 @@ +Trace 0 executed successfully! +a[63:0] 10 10 10 10 10 10 10 10 10 10 10 10 +s[63:0] 0 1 2 3 4 5 6 7 8 9 10 0 diff --git a/tests/fifo/expects/fifo.graph_interp.expect b/tests/fifo/expects/fifo.graph_interp.expect index c21e1eb0..f5f6cb49 100644 --- a/tests/fifo/expects/fifo.graph_interp.expect +++ b/tests/fifo/expects/fifo.graph_interp.expect @@ -1,27 +1 @@ -warning: Inferred RHS type as u1 from LHS type u1. - ┌─ tests/fifo/fifo.prot:33:5 - │ -33 │ DUT.enq_not_deq_i := X; - │ ^^^^^^^^^^^^^^^^^^^^^^^ Inferred RHS type as u1 from LHS type u1. - -warning: Inferred RHS type as u1 from LHS type u1. - ┌─ tests/fifo/fifo.prot:34:5 - │ -34 │ DUT.v_i := X; - │ ^^^^^^^^^^^^^ Inferred RHS type as u1 from LHS type u1. - -warning: Inferred RHS type as u1 from LHS type u1. - ┌─ tests/fifo/fifo.prot:35:5 - │ -35 │ DUT.reset_i := X; - │ ^^^^^^^^^^^^^^^^^ Inferred RHS type as u1 from LHS type u1. - -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/fifo/fifo.prot:36:5 - │ -36 │ DUT.data_i := X; - │ ^^^^^^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -assert_eq failed: lhs=3 rhs=4 ----CODE--- -101 +Trace 0 executed successfully! diff --git a/tests/fifo/expects/fifo.waveform.expect b/tests/fifo/expects/fifo.waveform.expect new file mode 100644 index 00000000..e4c6e4b7 --- /dev/null +++ b/tests/fifo/expects/fifo.waveform.expect @@ -0,0 +1,8 @@ +Trace 0 executed successfully! +enq_not_deq_i x 1 1 x 0 0 x +v_i 0 1 1 0 1 1 x +data_i[31:0] x 3 4 x x x x +reset_i 1 0 0 0 0 0 x +data_o[31:0] 0 0 3 3 3 3 4 +empty_o 0 1 0 0 0 0 1 +full_o 1 0 0 0 0 0 0 diff --git a/tests/fifo/expects/push_pop_identity_ok.graph_interp.expect b/tests/fifo/expects/push_pop_identity_ok.graph_interp.expect index 872de67d..f5f6cb49 100644 --- a/tests/fifo/expects/push_pop_identity_ok.graph_interp.expect +++ b/tests/fifo/expects/push_pop_identity_ok.graph_interp.expect @@ -1,25 +1 @@ -warning: Inferred RHS type as u1 from LHS type u1. - ┌─ tests/fifo/fifo.prot:33:5 - │ -33 │ DUT.enq_not_deq_i := X; - │ ^^^^^^^^^^^^^^^^^^^^^^^ Inferred RHS type as u1 from LHS type u1. - -warning: Inferred RHS type as u1 from LHS type u1. - ┌─ tests/fifo/fifo.prot:34:5 - │ -34 │ DUT.v_i := X; - │ ^^^^^^^^^^^^^ Inferred RHS type as u1 from LHS type u1. - -warning: Inferred RHS type as u1 from LHS type u1. - ┌─ tests/fifo/fifo.prot:35:5 - │ -35 │ DUT.reset_i := X; - │ ^^^^^^^^^^^^^^^^^ Inferred RHS type as u1 from LHS type u1. - -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/fifo/fifo.prot:36:5 - │ -36 │ DUT.data_i := X; - │ ^^^^^^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/fifo/expects/push_pop_identity_ok.waveform.expect b/tests/fifo/expects/push_pop_identity_ok.waveform.expect new file mode 100644 index 00000000..ae35740a --- /dev/null +++ b/tests/fifo/expects/push_pop_identity_ok.waveform.expect @@ -0,0 +1,8 @@ +Trace 0 executed successfully! +enq_not_deq_i x 1 0 x 1 0 x +v_i 0 1 1 0 1 1 x +data_i[31:0] x 2 x x 3 x x +reset_i 1 0 0 0 0 0 x +data_o[31:0] 0 0 2 2 2 2 3 +empty_o 0 1 0 1 1 0 1 +full_o 1 0 0 0 0 0 0 diff --git a/tests/identities/identity_d0/expects/passthrough_combdep.graph_interp.expect b/tests/identities/identity_d0/expects/passthrough_combdep.graph_interp.expect index f68c1e4d..f5f6cb49 100644 --- a/tests/identities/identity_d0/expects/passthrough_combdep.graph_interp.expect +++ b/tests/identities/identity_d0/expects/passthrough_combdep.graph_interp.expect @@ -1 +1 @@ -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/identities/identity_d0/expects/passthrough_combdep.waveform.expect b/tests/identities/identity_d0/expects/passthrough_combdep.waveform.expect new file mode 100644 index 00000000..afb1bd4f --- /dev/null +++ b/tests/identities/identity_d0/expects/passthrough_combdep.waveform.expect @@ -0,0 +1,3 @@ +Trace 0 executed successfully! +a[31:0] 0 0 +s[31:0] 0 0 diff --git a/tests/identities/identity_d1/expects/slicing_ok.graph_interp.expect b/tests/identities/identity_d1/expects/slicing_ok.graph_interp.expect index accdc3ef..f5f6cb49 100644 --- a/tests/identities/identity_d1/expects/slicing_ok.graph_interp.expect +++ b/tests/identities/identity_d1/expects/slicing_ok.graph_interp.expect @@ -1,7 +1 @@ -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/identities/identity_d1/identity_d1.prot:11:3 - │ -11 │ DUT.a := X; - │ ^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/identities/identity_d1/expects/slicing_ok.waveform.expect b/tests/identities/identity_d1/expects/slicing_ok.waveform.expect new file mode 100644 index 00000000..531c7455 --- /dev/null +++ b/tests/identities/identity_d1/expects/slicing_ok.waveform.expect @@ -0,0 +1,3 @@ +Trace 0 executed successfully! +a[31:0] 1 1 +s[31:0] 0 1 diff --git a/tests/identities/identity_d2/expects/single_thread_passes.graph_interp.expect b/tests/identities/identity_d2/expects/single_thread_passes.graph_interp.expect index f68c1e4d..f5f6cb49 100644 --- a/tests/identities/identity_d2/expects/single_thread_passes.graph_interp.expect +++ b/tests/identities/identity_d2/expects/single_thread_passes.graph_interp.expect @@ -1 +1 @@ -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/identities/identity_d2/expects/single_thread_passes.waveform.expect b/tests/identities/identity_d2/expects/single_thread_passes.waveform.expect new file mode 100644 index 00000000..9fb0cab1 --- /dev/null +++ b/tests/identities/identity_d2/expects/single_thread_passes.waveform.expect @@ -0,0 +1,3 @@ +Trace 0 executed successfully! +a[31:0] 1 1 1 +s[31:0] 0 0 1 diff --git a/tests/identities/identity_d2/expects/two_assignments_same_value.graph_interp.expect b/tests/identities/identity_d2/expects/two_assignments_same_value.graph_interp.expect index f68c1e4d..f5f6cb49 100644 --- a/tests/identities/identity_d2/expects/two_assignments_same_value.graph_interp.expect +++ b/tests/identities/identity_d2/expects/two_assignments_same_value.graph_interp.expect @@ -1 +1 @@ -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/identities/identity_d2/expects/two_assignments_same_value.waveform.expect b/tests/identities/identity_d2/expects/two_assignments_same_value.waveform.expect new file mode 100644 index 00000000..433517e6 --- /dev/null +++ b/tests/identities/identity_d2/expects/two_assignments_same_value.waveform.expect @@ -0,0 +1,3 @@ +Trace 0 executed successfully! +a[31:0] 1 1 1 1 +s[31:0] 0 0 1 1 diff --git a/tests/multi/multi0/expects/multi0.graph_interp.expect b/tests/multi/multi0/expects/multi0.graph_interp.expect index 421b0f1c..f5f6cb49 100644 --- a/tests/multi/multi0/expects/multi0.graph_interp.expect +++ b/tests/multi/multi0/expects/multi0.graph_interp.expect @@ -1,7 +1 @@ -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/multi/multi0/multi0.prot:16:5 - │ -16 │ dut.inp := X; - │ ^^^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/multi/multi0/expects/multi0.waveform.expect b/tests/multi/multi0/expects/multi0.waveform.expect new file mode 100644 index 00000000..971a7b4e --- /dev/null +++ b/tests/multi/multi0/expects/multi0.waveform.expect @@ -0,0 +1,5 @@ +Trace 0 executed successfully! +inp[31:0] 10 x +start 1 0 +out[31:0] 0 10 +done 0 1 diff --git a/tests/multi/multi0keep/expects/multi0keep.graph_interp.expect b/tests/multi/multi0keep/expects/multi0keep.graph_interp.expect index cc194a7b..f5f6cb49 100644 --- a/tests/multi/multi0keep/expects/multi0keep.graph_interp.expect +++ b/tests/multi/multi0keep/expects/multi0keep.graph_interp.expect @@ -1,7 +1 @@ -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/multi/multi0keep/multi0keep.prot:16:5 - │ -16 │ dut.inp := X; - │ ^^^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/multi/multi0keep/expects/multi0keep.waveform.expect b/tests/multi/multi0keep/expects/multi0keep.waveform.expect new file mode 100644 index 00000000..971a7b4e --- /dev/null +++ b/tests/multi/multi0keep/expects/multi0keep.waveform.expect @@ -0,0 +1,5 @@ +Trace 0 executed successfully! +inp[31:0] 10 x +start 1 0 +out[31:0] 0 10 +done 0 1 diff --git a/tests/multi/multi0keep2const/expects/multi0keep2const.graph_interp.expect b/tests/multi/multi0keep2const/expects/multi0keep2const.graph_interp.expect index 21e5385c..f5f6cb49 100644 --- a/tests/multi/multi0keep2const/expects/multi0keep2const.graph_interp.expect +++ b/tests/multi/multi0keep2const/expects/multi0keep2const.graph_interp.expect @@ -1,7 +1 @@ -warning: Inferred RHS type as u64 from LHS type u64. - ┌─ tests/multi/multi0keep2const/multi0keep2const.prot:14:5 - │ -14 │ dut.inp := X; - │ ^^^^^^^^^^^^^ Inferred RHS type as u64 from LHS type u64. - -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/multi/multi0keep2const/expects/multi0keep2const.waveform.expect b/tests/multi/multi0keep2const/expects/multi0keep2const.waveform.expect new file mode 100644 index 00000000..045da1f0 --- /dev/null +++ b/tests/multi/multi0keep2const/expects/multi0keep2const.waveform.expect @@ -0,0 +1,4 @@ +Trace 0 executed successfully! +inp[63:0] 10 x x x x +start 1 0 0 0 0 +out[63:0] 0 10 10 10 10 diff --git a/tests/multi/multi2const/expects/multi2const.graph_interp.expect b/tests/multi/multi2const/expects/multi2const.graph_interp.expect index 4241c07d..f5f6cb49 100644 --- a/tests/multi/multi2const/expects/multi2const.graph_interp.expect +++ b/tests/multi/multi2const/expects/multi2const.graph_interp.expect @@ -1,7 +1 @@ -warning: Inferred RHS type as u64 from LHS type u64. - ┌─ tests/multi/multi2const/multi2const.prot:14:5 - │ -14 │ dut.inp := X; - │ ^^^^^^^^^^^^^ Inferred RHS type as u64 from LHS type u64. - -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/multi/multi2const/expects/multi2const.waveform.expect b/tests/multi/multi2const/expects/multi2const.waveform.expect new file mode 100644 index 00000000..045da1f0 --- /dev/null +++ b/tests/multi/multi2const/expects/multi2const.waveform.expect @@ -0,0 +1,4 @@ +Trace 0 executed successfully! +inp[63:0] 10 x x x x +start 1 0 0 0 0 +out[63:0] 0 10 10 10 10 diff --git a/tests/multi/multi2multi/expects/multi2multi.graph_interp.expect b/tests/multi/multi2multi/expects/multi2multi.graph_interp.expect index 3eba8364..f5f6cb49 100644 --- a/tests/multi/multi2multi/expects/multi2multi.graph_interp.expect +++ b/tests/multi/multi2multi/expects/multi2multi.graph_interp.expect @@ -1,7 +1 @@ -warning: Inferred RHS type as u64 from LHS type u64. - ┌─ tests/multi/multi2multi/multi2multi.prot:16:5 - │ -16 │ dut.inp := X; - │ ^^^^^^^^^^^^^ Inferred RHS type as u64 from LHS type u64. - -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/multi/multi2multi/expects/multi2multi.waveform.expect b/tests/multi/multi2multi/expects/multi2multi.waveform.expect new file mode 100644 index 00000000..6c846ce6 --- /dev/null +++ b/tests/multi/multi2multi/expects/multi2multi.waveform.expect @@ -0,0 +1,5 @@ +Trace 0 executed successfully! +inp[63:0] 10 x +start 1 0 +out[63:0] 0 10 +done 0 1 diff --git a/tests/multi/multi_data/expects/multi_data.graph_interp.expect b/tests/multi/multi_data/expects/multi_data.graph_interp.expect index 71c05db8..f5f6cb49 100644 --- a/tests/multi/multi_data/expects/multi_data.graph_interp.expect +++ b/tests/multi/multi_data/expects/multi_data.graph_interp.expect @@ -1,7 +1 @@ -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/multi/multi_data/multi_data.prot:16:5 - │ -16 │ dut.inp := X; - │ ^^^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/multi/multi_data/expects/multi_data.waveform.expect b/tests/multi/multi_data/expects/multi_data.waveform.expect new file mode 100644 index 00000000..3588deb6 --- /dev/null +++ b/tests/multi/multi_data/expects/multi_data.waveform.expect @@ -0,0 +1,5 @@ +Trace 0 executed successfully! +inp[31:0] 10 x x x +start 1 0 0 0 +out[31:0] 0 0 0 10 +done 0 0 0 1 diff --git a/tests/multipliers/mult_d2/expects/both_threads_pass.graph_interp.expect b/tests/multipliers/mult_d2/expects/both_threads_pass.graph_interp.expect index e480436d..f5f6cb49 100644 --- a/tests/multipliers/mult_d2/expects/both_threads_pass.graph_interp.expect +++ b/tests/multipliers/mult_d2/expects/both_threads_pass.graph_interp.expect @@ -1,25 +1 @@ -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/multipliers/mult_d2/mult_d2.prot:14:3 - │ -14 │ DUT.a := X; - │ ^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/multipliers/mult_d2/mult_d2.prot:15:3 - │ -15 │ DUT.b := X; - │ ^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/multipliers/mult_d2/mult_d2.prot:19:3 - │ -19 │ DUT.a := X; - │ ^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/multipliers/mult_d2/mult_d2.prot:20:3 - │ -20 │ DUT.b := X; - │ ^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/multipliers/mult_d2/expects/both_threads_pass.waveform.expect b/tests/multipliers/mult_d2/expects/both_threads_pass.waveform.expect new file mode 100644 index 00000000..558be8b7 --- /dev/null +++ b/tests/multipliers/mult_d2/expects/both_threads_pass.waveform.expect @@ -0,0 +1,4 @@ +Trace 0 executed successfully! +b[31:0] 2 8 x x +a[31:0] 1 6 x x +s[31:0] 0 0 2 48 diff --git a/tests/wishbone/expects/wishbone.graph_interp.expect b/tests/wishbone/expects/wishbone.graph_interp.expect index 6338d467..f5f6cb49 100644 --- a/tests/wishbone/expects/wishbone.graph_interp.expect +++ b/tests/wishbone/expects/wishbone.graph_interp.expect @@ -1,51 +1 @@ -warning: Inferred RHS type as u1 from LHS type u1. - ┌─ tests/wishbone/wishbone.prot:40:5 - │ -40 │ DUT.i_we := X; - │ ^^^^^^^^^^^^^^^^ Inferred RHS type as u1 from LHS type u1. - -warning: Inferred RHS type as u1 from LHS type u1. - ┌─ tests/wishbone/wishbone.prot:41:5 - │ -41 │ DUT.i_addr := X; - │ ^^^^^^^^^^^^^^^^ Inferred RHS type as u1 from LHS type u1. - -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/wishbone/wishbone.prot:42:5 - │ -42 │ DUT.i_data := X; - │ ^^^^^^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -warning: Inferred RHS type as u1 from LHS type u1. - ┌─ tests/wishbone/wishbone.prot:60:5 - │ -60 │ DUT.i_we := X; - │ ^^^^^^^^^^^^^^^^ Inferred RHS type as u1 from LHS type u1. - -warning: Inferred RHS type as u1 from LHS type u1. - ┌─ tests/wishbone/wishbone.prot:61:5 - │ -61 │ DUT.i_addr := X; - │ ^^^^^^^^^^^^^^^^ Inferred RHS type as u1 from LHS type u1. - -warning: Inferred RHS type as u32 from LHS type u32. - ┌─ tests/wishbone/wishbone.prot:62:5 - │ -62 │ DUT.i_data := X; - │ ^^^^^^^^^^^^^^^^ Inferred RHS type as u32 from LHS type u32. - -warning: Inferred RHS type as u1 from LHS type u1. - ┌─ tests/wishbone/wishbone.prot:69:5 - │ -69 │ DUT.i_cyc := X; - │ ^^^^^^^^^^^^^^^^ Inferred RHS type as u1 from LHS type u1. - -warning: Inferred RHS type as u1 from LHS type u1. - ┌─ tests/wishbone/wishbone.prot:70:5 - │ -70 │ DUT.i_stb := X; - │ ^^^^^^^^^^^^^^^^ Inferred RHS type as u1 from LHS type u1. - -assert_eq failed: lhs=3 rhs=2 ----CODE--- -101 +Trace 0 executed successfully! diff --git a/tests/wishbone/expects/wishbone.waveform.expect b/tests/wishbone/expects/wishbone.waveform.expect new file mode 100644 index 00000000..21a357f7 --- /dev/null +++ b/tests/wishbone/expects/wishbone.waveform.expect @@ -0,0 +1,9 @@ +Trace 0 executed successfully! +i_data[31:0] x x x x x x 1 x x x x x x x x x x x x x x x x 1 x x x x x x x x x x x x +i_addr 0 x x x x x 0 0 0 0 0 0 0 0 0 0 0 0 x x x x x 0 0 0 0 0 0 0 0 0 0 0 0 x +i_we 0 x x x x x 1 0 0 0 0 0 0 0 0 0 0 0 x x x x x 1 0 0 0 0 0 0 0 0 0 0 0 x +i_stb 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 x +i_cyc 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 x +o_data[31:0] 0 0 0 0 0 0 0 1 2 3 4 5 6 7 8 9 10 11 0 0 0 0 0 0 1 2 3 4 5 6 7 8 9 10 11 0 +o_ack 0 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 +o_stall 0 x x x x x 0 0 0 0 0 0 0 0 0 0 0 0 x x x x x 0 0 0 0 0 0 0 0 0 0 0 0 x