From dfd283339834658ac46739f3e0c32a7fd39108f7 Mon Sep 17 00:00:00 2001 From: Nikil Shyamsunder Date: Wed, 1 Jul 2026 11:28:28 -0400 Subject: [PATCH 1/6] Full Trace Lowering (#264) * multi-protocol lowering for concrete traces * nfa to dfa * fix bug in assignment merge semantics * remove done from everything other than last protocol instance * graphs are too hard to read -only serialize nodes reachable and dont include edges that are false * testing * fix the semantics of assignments * some cleanup * reorg * fix the assignment semantics more * debug wishbone internal assert issue * clean up the lowerin * improve one of the unorered assignment semantics tests --- graph-interp/src/main.rs | 111 +++- protocols/src/ir/determinize.rs | 134 +++++ protocols/src/ir/edge_contract.rs | 421 +++++++++++++-- protocols/src/ir/graph_interpreter.rs | 27 +- protocols/src/ir/graphviz.rs | 13 +- protocols/src/ir/lowering.rs | 495 ++++++++++-------- protocols/src/ir/mod.rs | 2 + protocols/src/ir/proto_graph.rs | 39 +- protocols/src/ir/trace_lowering.rs | 178 +++++++ ...s__frontend__serialize__tests__add_d1.snap | 15 + ...__graphviz__tests__ir_graphviz_add_d0.snap | 49 +- ...__graphviz__tests__ir_graphviz_add_d1.snap | 157 +++--- ...axis_truncated_include_idle_send_data.snap | 20 +- ...ests__ir_graphviz_bounded_ready_valid.snap | 20 +- ..._graphviz__tests__ir_graphviz_counter.snap | 18 +- runt/graph_interp/runt.toml | 284 +++++++++- scripts/generate_runt_configs.py | 19 +- tests/adders/adder_d0/add_combinational.tx | 1 + tests/adders/adder_d1/add_d1.prot | 20 + tests/adders/adder_d1/if_else.tx | 3 + tests/fifo/expects/fifo.graph_interp.expect | 4 +- .../expects/wishbone.graph_interp.expect | 4 +- 22 files changed, 1619 insertions(+), 415 deletions(-) create mode 100644 protocols/src/ir/determinize.rs create mode 100644 protocols/src/ir/trace_lowering.rs create mode 100644 tests/adders/adder_d1/if_else.tx diff --git a/graph-interp/src/main.rs b/graph-interp/src/main.rs index d2989d81..11890225 100644 --- a/graph-interp/src/main.rs +++ b/graph-interp/src/main.rs @@ -6,10 +6,13 @@ use protocols::frontend::ast::Protocol; use protocols::frontend::design::find_a_single_design; use protocols::frontend::diagnostic::DiagnosticHandler; use protocols::frontend::symbol::SymbolTable; +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::ir::trace_lowering::lower_trace_to_ir; use protocols::{Value, frontend, transaction_frontend}; use rustc_hash::FxHashMap; @@ -38,6 +41,18 @@ 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, } fn load_protocols(cli: &Cli) -> (SymbolTable, Vec) { @@ -77,39 +92,95 @@ 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(); - +/// lower each protocol once and interpret every +/// transaction against its own symbolic protocol graph. +fn run_classic( + cli: &Cli, + st: &SymbolTable, + protos: &[Protocol], + sim: &mut PatronusSim, + 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() { + 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, sim); } + println!("trace {} executed successfully", trace_index); } +} + +/// interpret the entire concrete trace as one big ProtoGraph +fn run_respect_forks( + st: &SymbolTable, + protos: &[Protocol], + sim: &mut PatronusSim, + traces: &[Vec<(String, Vec)>], + graphout: bool, + determinize_graph: bool, +) { + 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() { + let mut joint = lower_trace_to_ir(trace, &protos_by_name, st); + + if determinize_graph { + joint = determinized(joint, st); + } + // normalize_assignments(&mut joint, st); + + if 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 + graph_interpreter::interpret(&joint, st, FxHashMap::default(), sim); + println!("trace {} executed successfully", 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 mut sim = PatronusSim::new(&cli.verilog, cli.module.as_deref(), &design, None).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( + &st, + &protos, + &mut sim, + &traces, + cli.graphout, + cli.determinize, + ); + } else { + run_classic(&cli, &st, &protos, &mut sim, traces); } })); std::panic::set_hook(old_hook); 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..d48717a2 100644 --- a/protocols/src/ir/graph_interpreter.rs +++ b/protocols/src/ir/graph_interpreter.rs @@ -1,7 +1,7 @@ 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}; @@ -214,7 +214,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"); } } @@ -256,7 +256,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,14 +271,20 @@ 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() { 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/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..d9d5a328 100644 --- a/runt/graph_interp/runt.toml +++ b/runt/graph_interp/runt.toml @@ -18,6 +18,15 @@ 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" +[[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 ../.. && 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 --respect-forks --determinize 2>/dev/null" + [[tests]] name = "graph_interp.examples_serv_serv_regfile.serv_regfile_graph_interp" paths = [ @@ -36,6 +45,15 @@ 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" +[[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 ../.. && 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 --respect-forks --determinize 2>/dev/null" + [[tests]] name = "graph_interp.examples_tinyaes128_aes128.aes128_graph_interp" paths = [ @@ -54,6 +72,15 @@ 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" +[[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 ../.. && 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 --respect-forks --determinize 2>/dev/null" + [[tests]] name = "graph_interp.tests_adders_adder_d0_add_combinational.add_combinational_graph_interp" paths = [ @@ -72,6 +99,15 @@ 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" +[[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 ../.. && 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 --respect-forks --determinize 2>/dev/null" + [[tests]] name = "graph_interp.tests_adders_adder_d1_both_threads_pass.both_threads_pass_graph_interp" paths = [ @@ -90,6 +126,15 @@ 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" +[[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 ../.. && 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 --respect-forks --determinize 2>/dev/null" + [[tests]] name = "graph_interp.tests_adders_adder_d1_wait_and_add_correct.wait_and_add_correct_graph_interp" paths = [ @@ -108,6 +153,15 @@ 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" +[[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 ../.. && 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 --respect-forks --determinize 2>/dev/null" + [[tests]] name = "graph_interp.tests_adders_adder_d2_both_threads_pass.both_threads_pass_graph_interp" paths = [ @@ -126,6 +180,15 @@ 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" +[[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 ../.. && 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 --respect-forks --determinize 2>/dev/null" + [[tests]] name = "graph_interp.tests_alus_alu_d1.alu_d1_graph_interp" paths = [ @@ -144,6 +207,15 @@ 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" +[[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 ../.. && 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 --respect-forks --determinize 2>/dev/null" + [[tests]] name = "graph_interp.tests_alus_alu_d2.alu_d2_graph_interp" paths = [ @@ -162,6 +234,15 @@ 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" +[[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 ../.. && 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 --respect-forks --determinize 2>/dev/null" + [[tests]] name = "graph_interp.tests_bounded_ready_valid_toy_reciever_0.toy_reciever_0_graph_interp" paths = [ @@ -180,6 +261,15 @@ 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" +[[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 ../.. && 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 --respect-forks --determinize 2>/dev/null" + [[tests]] name = "graph_interp.tests_bounded_ready_valid_toy_reciever_1.toy_reciever_1_graph_interp" paths = [ @@ -198,6 +288,15 @@ 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" +[[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 ../.. && 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 --respect-forks --determinize 2>/dev/null" + [[tests]] name = "graph_interp.tests_bounded_ready_valid_toy_reciever_2.toy_reciever_2_graph_interp" paths = [ @@ -216,6 +315,15 @@ 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" +[[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 ../.. && 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 --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" paths = [ @@ -234,6 +342,15 @@ 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" +[[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 ../.. && 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 --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" paths = [ @@ -252,6 +369,15 @@ 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" +[[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 ../.. && 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 --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" paths = [ @@ -270,6 +396,15 @@ 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" +[[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 ../.. && 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 --respect-forks --determinize 2>/dev/null" + [[tests]] name = "graph_interp.tests_brave_new_world_signal_asynchrony_signal_async_fix.signal_async_fix_graph_interp" paths = [ @@ -288,6 +423,15 @@ 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" +[[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 ../.. && 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 --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" paths = [ @@ -306,6 +450,15 @@ 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" +[[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 ../.. && 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 --respect-forks --determinize 2>/dev/null" + [[tests]] name = "graph_interp.tests_counters_counter.counter_graph_interp" paths = [ @@ -324,6 +477,33 @@ 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" +[[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 ../.. && cargo run --offline --package 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 ../.. && cargo run --offline --package 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 ../.. && cargo run --offline --package 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" paths = [ @@ -342,6 +522,15 @@ 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" +[[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 ../.. && 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 --respect-forks --determinize 2>/dev/null" + [[tests]] name = "graph_interp.tests_identities_identity_d1_slicing_ok.slicing_ok_graph_interp" paths = [ @@ -360,6 +549,15 @@ 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" +[[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 ../.. && 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 --respect-forks --determinize 2>/dev/null" + [[tests]] name = "graph_interp.tests_identities_identity_d2_single_thread_passes.single_thread_passes_graph_interp" paths = [ @@ -378,6 +576,15 @@ 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" +[[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 ../.. && 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 --respect-forks --determinize 2>/dev/null" + [[tests]] name = "graph_interp.tests_identities_identity_d2_two_assignments_same_value.two_assignments_same_value_graph_interp" paths = [ @@ -396,6 +603,15 @@ 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" +[[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 ../.. && 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 --respect-forks --determinize 2>/dev/null" + [[tests]] name = "graph_interp.tests_multi_multi0_multi0.multi0_graph_interp" paths = [ @@ -414,6 +630,15 @@ 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" +[[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 ../.. && 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 --respect-forks --determinize 2>/dev/null" + [[tests]] name = "graph_interp.tests_multi_multi0keep_multi0keep.multi0keep_graph_interp" paths = [ @@ -432,6 +657,15 @@ 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" +[[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 ../.. && 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 --respect-forks --determinize 2>/dev/null" + [[tests]] name = "graph_interp.tests_multi_multi0keep2const_multi0keep2const.multi0keep2const_graph_interp" paths = [ @@ -450,6 +684,15 @@ 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" +[[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 ../.. && 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 --respect-forks --determinize 2>/dev/null" + [[tests]] name = "graph_interp.tests_multi_multi2const_multi2const.multi2const_graph_interp" paths = [ @@ -468,6 +711,15 @@ 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" +[[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 ../.. && 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 --respect-forks --determinize 2>/dev/null" + [[tests]] name = "graph_interp.tests_multi_multi2multi_multi2multi.multi2multi_graph_interp" paths = [ @@ -486,6 +738,15 @@ 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" +[[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 ../.. && 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 --respect-forks --determinize 2>/dev/null" + [[tests]] name = "graph_interp.tests_multi_multi_data_multi_data.multi_data_graph_interp" paths = [ @@ -504,6 +765,15 @@ 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" +[[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 ../.. && 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 --respect-forks --determinize 2>/dev/null" + [[tests]] name = "graph_interp.tests_multipliers_mult_d2_both_threads_pass.both_threads_pass_graph_interp" paths = [ @@ -523,19 +793,19 @@ 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" [[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 ../.. && 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 --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 ../.. && cargo run --offline --package 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/scripts/generate_runt_configs.py b/scripts/generate_runt_configs.py index 046ef985..39567553 100644 --- a/scripts/generate_runt_configs.py +++ b/scripts/generate_runt_configs.py @@ -163,8 +163,19 @@ def interp_runt_command(case: dict) -> list[tuple[str, str]]: def graph_interp_runt_command(case: dict) -> list[tuple[str, str]]: cmd = [*cargo_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] @@ -231,10 +242,6 @@ 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"]) 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_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/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/fifo/expects/fifo.graph_interp.expect b/tests/fifo/expects/fifo.graph_interp.expect index c21e1eb0..872de67d 100644 --- a/tests/fifo/expects/fifo.graph_interp.expect +++ b/tests/fifo/expects/fifo.graph_interp.expect @@ -22,6 +22,4 @@ warning: Inferred RHS type as u32 from LHS type u32. 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/wishbone/expects/wishbone.graph_interp.expect b/tests/wishbone/expects/wishbone.graph_interp.expect index 6338d467..9e1f3011 100644 --- a/tests/wishbone/expects/wishbone.graph_interp.expect +++ b/tests/wishbone/expects/wishbone.graph_interp.expect @@ -46,6 +46,4 @@ warning: Inferred RHS type as u1 from LHS type u1. 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 From 7c2868ed7ca3026211ce8fc289ff431a123ec38a Mon Sep 17 00:00:00 2001 From: Nikil Shyamsunder Date: Sun, 28 Jun 2026 12:16:05 -0400 Subject: [PATCH 2/6] waveform diffing between AST interpreter and trace interpreter switched interpreter to output diagnostics on stderr and base errors + ascii wveform on stdout janky thing to keep monitor on stdout only by specifying the err/out semantics in the test gen --- interp/src/main.rs | 92 ++++++- justfile | 1 + protocols/src/frontend/diagnostic.rs | 16 +- protocols/src/interpreter.rs | 87 ++++--- protocols/src/scheduler.rs | 22 +- runt/graph_interp/runt.toml | 180 +++++++------- runt/interp/runt.toml | 160 ++++++------- runt/monitor/runt.toml | 344 +++++++++++++-------------- scripts/generate_runt_configs.py | 32 +-- 9 files changed, 531 insertions(+), 403 deletions(-) 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..2d2c2599 100644 --- a/justfile +++ b/justfile @@ -1,5 +1,6 @@ # 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 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..147f7343 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_insert(vec![]) + .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_insert(vec![]) + .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/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/runt/graph_interp/runt.toml b/runt/graph_interp/runt.toml index d9d5a328..a92e61e4 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,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 --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" @@ -25,7 +25,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 --respect-forks --determinize 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 --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.examples_serv_serv_regfile.serv_regfile_graph_interp" @@ -34,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" @@ -43,7 +43,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 --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" @@ -52,7 +52,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 --respect-forks --determinize 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 --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.examples_tinyaes128_aes128.aes128_graph_interp" @@ -61,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" @@ -70,7 +70,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 --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" @@ -79,7 +79,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 --respect-forks --determinize 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 --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_adders_adder_d0_add_combinational.add_combinational_graph_interp" @@ -88,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" @@ -97,7 +97,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 --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" @@ -106,7 +106,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 --respect-forks --determinize 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 --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_adders_adder_d1_both_threads_pass.both_threads_pass_graph_interp" @@ -115,7 +115,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" @@ -124,7 +124,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 --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" @@ -133,7 +133,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 --respect-forks --determinize 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 --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_adders_adder_d1_wait_and_add_correct.wait_and_add_correct_graph_interp" @@ -142,7 +142,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" @@ -151,7 +151,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 --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" @@ -160,7 +160,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 --respect-forks --determinize 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 --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_adders_adder_d2_both_threads_pass.both_threads_pass_graph_interp" @@ -169,7 +169,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" @@ -178,7 +178,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 --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" @@ -187,7 +187,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 --respect-forks --determinize 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 --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_alus_alu_d1.alu_d1_graph_interp" @@ -196,7 +196,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" @@ -205,7 +205,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 --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" @@ -214,7 +214,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 --respect-forks --determinize 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 --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_alus_alu_d2.alu_d2_graph_interp" @@ -223,7 +223,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" @@ -232,7 +232,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 --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" @@ -241,7 +241,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 --respect-forks --determinize 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 --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_bounded_ready_valid_toy_reciever_0.toy_reciever_0_graph_interp" @@ -250,7 +250,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" @@ -259,7 +259,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 --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" @@ -268,7 +268,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 --respect-forks --determinize 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 --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_bounded_ready_valid_toy_reciever_1.toy_reciever_1_graph_interp" @@ -277,7 +277,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" @@ -286,7 +286,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 --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" @@ -295,7 +295,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 --respect-forks --determinize 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 --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_bounded_ready_valid_toy_reciever_2.toy_reciever_2_graph_interp" @@ -304,7 +304,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" @@ -313,7 +313,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 --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" @@ -322,7 +322,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 --respect-forks --determinize 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 --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" @@ -331,7 +331,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" @@ -340,7 +340,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 --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" @@ -349,7 +349,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 --respect-forks --determinize 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 --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" @@ -358,7 +358,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" @@ -367,7 +367,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 --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" @@ -376,7 +376,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 --respect-forks --determinize 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 --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" @@ -385,7 +385,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" @@ -394,7 +394,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 --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" @@ -403,7 +403,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 --respect-forks --determinize 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 --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_brave_new_world_signal_asynchrony_signal_async_fix.signal_async_fix_graph_interp" @@ -412,7 +412,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" @@ -421,7 +421,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 --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" @@ -430,7 +430,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 --respect-forks --determinize 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 --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" @@ -439,7 +439,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" @@ -448,7 +448,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 --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" @@ -457,7 +457,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 --respect-forks --determinize 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 --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_counters_counter.counter_graph_interp" @@ -466,7 +466,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" @@ -475,7 +475,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 --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" @@ -484,7 +484,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 --respect-forks --determinize 2>/dev/null" +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" @@ -493,7 +493,7 @@ paths = [ ] expect_dir = "../../tests/fifo/expects" expect_name = "fifo.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package 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" +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" @@ -502,7 +502,7 @@ paths = [ ] expect_dir = "../../tests/fifo/expects" expect_name = "push_pop_identity_ok.graph_interp.expect" -cmd = "cd ../.. && cargo run --offline --package 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" +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" @@ -511,7 +511,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" @@ -520,7 +520,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 --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" @@ -529,7 +529,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 --respect-forks --determinize 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 --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_identities_identity_d1_slicing_ok.slicing_ok_graph_interp" @@ -538,7 +538,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" @@ -547,7 +547,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 --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" @@ -556,7 +556,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 --respect-forks --determinize 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 --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_identities_identity_d2_single_thread_passes.single_thread_passes_graph_interp" @@ -565,7 +565,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" @@ -574,7 +574,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 --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" @@ -583,7 +583,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 --respect-forks --determinize 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 --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_identities_identity_d2_two_assignments_same_value.two_assignments_same_value_graph_interp" @@ -592,7 +592,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" @@ -601,7 +601,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 --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" @@ -610,7 +610,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 --respect-forks --determinize 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 --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_multi_multi0_multi0.multi0_graph_interp" @@ -619,7 +619,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" @@ -628,7 +628,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 --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" @@ -637,7 +637,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 --respect-forks --determinize 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 --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_multi_multi0keep_multi0keep.multi0keep_graph_interp" @@ -646,7 +646,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" @@ -655,7 +655,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 --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" @@ -664,7 +664,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 --respect-forks --determinize 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 --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_multi_multi0keep2const_multi0keep2const.multi0keep2const_graph_interp" @@ -673,7 +673,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" @@ -682,7 +682,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 --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" @@ -691,7 +691,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 --respect-forks --determinize 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 --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_multi_multi2const_multi2const.multi2const_graph_interp" @@ -700,7 +700,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" @@ -709,7 +709,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 --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" @@ -718,7 +718,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 --respect-forks --determinize 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 --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_multi_multi2multi_multi2multi.multi2multi_graph_interp" @@ -727,7 +727,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" @@ -736,7 +736,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 --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" @@ -745,7 +745,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 --respect-forks --determinize 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 --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_multi_multi_data_multi_data.multi_data_graph_interp" @@ -754,7 +754,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" @@ -763,7 +763,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 --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" @@ -772,7 +772,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 --respect-forks --determinize 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 --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_multipliers_mult_d2_both_threads_pass.both_threads_pass_graph_interp" @@ -781,7 +781,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" @@ -790,7 +790,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 --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_multipliers_mult_d2_both_threads_pass.both_threads_pass_graph_interp.respect_forks" @@ -799,7 +799,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 --respect-forks --determinize 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 --respect-forks --determinize 2>/dev/null" [[tests]] name = "graph_interp.tests_wishbone_wishbone.wishbone_graph_interp.respect_forks" @@ -808,4 +808,4 @@ paths = [ ] 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 --respect-forks --determinize 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..85d84872 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,7 @@ 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_assign_after_observation.assign_after_observation_interp" @@ -124,7 +124,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 +133,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 +142,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 +151,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 +160,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 +169,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 +178,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 +187,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 +196,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 +205,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 +214,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 +223,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 +232,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 +241,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 +250,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 +259,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 +268,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 +277,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 +286,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 +295,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 +304,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 +313,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 +322,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 +331,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 +340,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 +349,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 +358,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 +367,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 +376,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 +385,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 +394,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 +403,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 +412,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 +421,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 +430,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 +439,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 +448,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 +457,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 +466,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 +475,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 +484,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 +493,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 +502,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 +511,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 +520,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 +529,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 +538,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 +547,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 +556,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 +565,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 +574,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 +583,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 +592,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 +601,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 +610,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 +619,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 +628,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 +637,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 +646,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 +655,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 +664,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 +673,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 +682,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 +691,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 +700,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 +709,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 +718,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/scripts/generate_runt_configs.py b/scripts/generate_runt_configs.py index 39567553..b4fdb5b0 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,18 +152,18 @@ 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) # wishbone and fifo only work with --respect-forks @@ -180,7 +182,7 @@ def graph_interp_runt_command(case: dict) -> list[tuple[str, str]]: 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"]: From 8170508ad769e18bf4e138504f7aedd40930b675 Mon Sep 17 00:00:00 2001 From: Nikil Shyamsunder Date: Sun, 28 Jun 2026 13:45:06 -0400 Subject: [PATCH 3/6] get rid of annoying warnings in .expect files --- .../expects/unsigned_mul.graph_interp.expect | 18 ------- .../expects/aes128.graph_interp.expect | 12 ----- .../add_combinational.graph_interp.expect | 12 ----- .../both_threads_pass.graph_interp.expect | 30 ------------ .../wait_and_add_correct.graph_interp.expect | 30 ------------ .../both_threads_pass.graph_interp.expect | 24 ---------- tests/alus/expects/alu_d1.graph_interp.expect | 18 ------- tests/alus/expects/alu_d2.graph_interp.expect | 36 -------------- tests/fifo/expects/fifo.graph_interp.expect | 24 ---------- .../push_pop_identity_ok.graph_interp.expect | 24 ---------- .../expects/slicing_ok.graph_interp.expect | 6 --- .../multi0/expects/multi0.graph_interp.expect | 6 --- .../expects/multi0keep.graph_interp.expect | 6 --- .../multi0keep2const.graph_interp.expect | 6 --- .../expects/multi2const.graph_interp.expect | 6 --- .../expects/multi2multi.graph_interp.expect | 6 --- .../expects/multi_data.graph_interp.expect | 6 --- .../both_threads_pass.graph_interp.expect | 24 ---------- .../expects/wishbone.graph_interp.expect | 48 ------------------- 19 files changed, 342 deletions(-) diff --git a/examples/picorv32/expects/unsigned_mul.graph_interp.expect b/examples/picorv32/expects/unsigned_mul.graph_interp.expect index 448b69d0..f68c1e4d 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 diff --git a/examples/tinyaes128/expects/aes128.graph_interp.expect b/examples/tinyaes128/expects/aes128.graph_interp.expect index ad4a5afa..f68c1e4d 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 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..f68c1e4d 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 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..f68c1e4d 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 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..f68c1e4d 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 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..f68c1e4d 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 diff --git a/tests/alus/expects/alu_d1.graph_interp.expect b/tests/alus/expects/alu_d1.graph_interp.expect index 72b35b2e..f68c1e4d 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 diff --git a/tests/alus/expects/alu_d2.graph_interp.expect b/tests/alus/expects/alu_d2.graph_interp.expect index 8a9baaa1..f68c1e4d 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 diff --git a/tests/fifo/expects/fifo.graph_interp.expect b/tests/fifo/expects/fifo.graph_interp.expect index 872de67d..f68c1e4d 100644 --- a/tests/fifo/expects/fifo.graph_interp.expect +++ b/tests/fifo/expects/fifo.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 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..f68c1e4d 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 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..f68c1e4d 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 diff --git a/tests/multi/multi0/expects/multi0.graph_interp.expect b/tests/multi/multi0/expects/multi0.graph_interp.expect index 421b0f1c..f68c1e4d 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 diff --git a/tests/multi/multi0keep/expects/multi0keep.graph_interp.expect b/tests/multi/multi0keep/expects/multi0keep.graph_interp.expect index cc194a7b..f68c1e4d 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 diff --git a/tests/multi/multi0keep2const/expects/multi0keep2const.graph_interp.expect b/tests/multi/multi0keep2const/expects/multi0keep2const.graph_interp.expect index 21e5385c..f68c1e4d 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 diff --git a/tests/multi/multi2const/expects/multi2const.graph_interp.expect b/tests/multi/multi2const/expects/multi2const.graph_interp.expect index 4241c07d..f68c1e4d 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 diff --git a/tests/multi/multi2multi/expects/multi2multi.graph_interp.expect b/tests/multi/multi2multi/expects/multi2multi.graph_interp.expect index 3eba8364..f68c1e4d 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 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..f68c1e4d 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 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..f68c1e4d 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 diff --git a/tests/wishbone/expects/wishbone.graph_interp.expect b/tests/wishbone/expects/wishbone.graph_interp.expect index 9e1f3011..f68c1e4d 100644 --- a/tests/wishbone/expects/wishbone.graph_interp.expect +++ b/tests/wishbone/expects/wishbone.graph_interp.expect @@ -1,49 +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. - trace 0 executed successfully From 6f448547893856cb7a54be746d90455e62d80ba1 Mon Sep 17 00:00:00 2001 From: Nikil Shyamsunder Date: Sun, 28 Jun 2026 13:45:55 -0400 Subject: [PATCH 4/6] add ascii out for graph interpreter --- graph-interp/src/main.rs | 81 +++++++++++++++++-- protocols/src/ir/graph_interpreter.rs | 68 ++++++++++++++-- scripts/test_catalog.py | 5 ++ .../adder_d1/add_multitrace_successful.tx | 9 +++ 4 files changed, 152 insertions(+), 11 deletions(-) create mode 100644 tests/adders/adder_d1/add_multitrace_successful.tx diff --git a/graph-interp/src/main.rs b/graph-interp/src/main.rs index 11890225..bf631a85 100644 --- a/graph-interp/src/main.rs +++ b/graph-interp/src/main.rs @@ -1,11 +1,12 @@ 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::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; @@ -13,7 +14,7 @@ use protocols::ir::graphviz::to_dot_string; use protocols::ir::lowering::lower_ast_to_ir; use protocols::ir::proto_graph::ProtoGraph; use protocols::ir::trace_lowering::lower_trace_to_ir; -use protocols::{Value, frontend, transaction_frontend}; +use protocols::{PatronusSim, PortId, Value, frontend, transaction_frontend}; use rustc_hash::FxHashMap; #[derive(Parser, Debug)] @@ -53,6 +54,10 @@ struct Cli { /// 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) { @@ -92,6 +97,61 @@ fn print_panic_payload(payload: Box) { } } +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( @@ -116,6 +176,8 @@ fn run_classic( } for (trace_index, trace) in traces.into_iter().enumerate() { + print_trace_separator(trace_index); + for (name, values) in trace { let (_, pg) = graphs .iter_mut() @@ -125,7 +187,7 @@ fn run_classic( // println!("{}", to_dot_string(pg, st)); graph_interpreter::interpret(pg, st, args, sim); } - println!("trace {} executed successfully", trace_index); + print_trace_success(trace_index); } } @@ -137,11 +199,14 @@ fn run_respect_forks( traces: &[Vec<(String, Vec)>], graphout: bool, determinize_graph: bool, + ascii_waveform: bool, ) { 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 joint = lower_trace_to_ir(trace, &protos_by_name, st); if determinize_graph { @@ -155,8 +220,13 @@ fn run_respect_forks( } // args are baked into the graph as constants, so we just pass in an empty map here - graph_interpreter::interpret(&joint, st, FxHashMap::default(), sim); - println!("trace {} executed successfully", trace_index); + let waveform = graph_interpreter::interpret(&joint, st, FxHashMap::default(), sim); + if ascii_waveform { + print_trace_success(trace_index); + print_waveform(waveform, sim); + } else { + print_trace_success(trace_index); + } } } @@ -178,6 +248,7 @@ fn main() { &traces, cli.graphout, cli.determinize, + cli.ascii_waveform, ); } else { run_classic(&cli, &st, &protos, &mut sim, traces); diff --git a/protocols/src/ir/graph_interpreter.rs b/protocols/src/ir/graph_interpreter.rs index d48717a2..53528fce 100644 --- a/protocols/src/ir/graph_interpreter.rs +++ b/protocols/src/ir/graph_interpreter.rs @@ -5,15 +5,16 @@ use patronus::expr::{ExprRef, SerializableIrNode, SymbolValueStore, TypeCheck, e 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); @@ -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); } } } @@ -290,6 +342,8 @@ pub fn interpret( 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; @@ -297,4 +351,6 @@ pub fn interpret( None => break, } } + + waveform } 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_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); +} From 3d5aeb72321441424ba37d67511a6290a5ab719e Mon Sep 17 00:00:00 2001 From: Nikil Shyamsunder Date: Sun, 28 Jun 2026 13:58:35 -0400 Subject: [PATCH 5/6] update runt expects --- .../expects/unsigned_mul.graph_interp.expect | 2 +- .../expects/serv_regfile.graph_interp.expect | 2 +- .../expects/aes128.graph_interp.expect | 2 +- runt/graph_interp/runt.toml | 27 +++++++++++++++++++ runt/interp/runt.toml | 9 +++++++ .../add_combinational.graph_interp.expect | 2 +- ..._multitrace_successful.graph_interp.expect | 5 ++++ .../add_multitrace_successful.interp.expect | 5 ++++ .../both_threads_pass.graph_interp.expect | 2 +- .../wait_and_add_correct.graph_interp.expect | 2 +- .../both_threads_pass.graph_interp.expect | 2 +- tests/alus/expects/alu_d1.graph_interp.expect | 2 +- tests/alus/expects/alu_d2.graph_interp.expect | 2 +- .../toy_reciever_0.graph_interp.expect | 2 +- .../toy_reciever_1.graph_interp.expect | 2 +- .../toy_reciever_2.graph_interp.expect | 2 +- ...bit_truncation_fft_fix.graph_interp.expect | 2 +- ...bit_truncation_sha_fix.graph_interp.expect | 2 +- .../expects/ftu_sha_fix.graph_interp.expect | 2 +- .../signal_async_fix.graph_interp.expect | 2 +- .../use_without_valid_fix.graph_interp.expect | 2 +- .../expects/counter.graph_interp.expect | 2 +- tests/fifo/expects/fifo.graph_interp.expect | 2 +- .../push_pop_identity_ok.graph_interp.expect | 2 +- .../passthrough_combdep.graph_interp.expect | 2 +- .../expects/slicing_ok.graph_interp.expect | 2 +- .../single_thread_passes.graph_interp.expect | 2 +- ...assignments_same_value.graph_interp.expect | 2 +- .../multi0/expects/multi0.graph_interp.expect | 2 +- .../expects/multi0keep.graph_interp.expect | 2 +- .../multi0keep2const.graph_interp.expect | 2 +- .../expects/multi2const.graph_interp.expect | 2 +- .../expects/multi2multi.graph_interp.expect | 2 +- .../expects/multi_data.graph_interp.expect | 2 +- .../both_threads_pass.graph_interp.expect | 2 +- .../expects/wishbone.graph_interp.expect | 2 +- 36 files changed, 78 insertions(+), 32 deletions(-) create mode 100644 tests/adders/adder_d1/expects/add_multitrace_successful.graph_interp.expect create mode 100644 tests/adders/adder_d1/expects/add_multitrace_successful.interp.expect diff --git a/examples/picorv32/expects/unsigned_mul.graph_interp.expect b/examples/picorv32/expects/unsigned_mul.graph_interp.expect index f68c1e4d..f5f6cb49 100644 --- a/examples/picorv32/expects/unsigned_mul.graph_interp.expect +++ b/examples/picorv32/expects/unsigned_mul.graph_interp.expect @@ -1 +1 @@ -trace 0 executed successfully +Trace 0 executed successfully! 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/tinyaes128/expects/aes128.graph_interp.expect b/examples/tinyaes128/expects/aes128.graph_interp.expect index f68c1e4d..f5f6cb49 100644 --- a/examples/tinyaes128/expects/aes128.graph_interp.expect +++ b/examples/tinyaes128/expects/aes128.graph_interp.expect @@ -1 +1 @@ -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/runt/graph_interp/runt.toml b/runt/graph_interp/runt.toml index a92e61e4..45563474 100644 --- a/runt/graph_interp/runt.toml +++ b/runt/graph_interp/runt.toml @@ -108,6 +108,33 @@ 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" paths = [ diff --git a/runt/interp/runt.toml b/runt/interp/runt.toml index 85d84872..23b631a7 100644 --- a/runt/interp/runt.toml +++ b/runt/interp/runt.toml @@ -117,6 +117,15 @@ expect_dir = "../../tests/adders/adder_d1/expects" expect_name = "add_multitrace.interp.expect" 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" paths = [ 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 f68c1e4d..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 +1 @@ -trace 0 executed successfully +Trace 0 executed successfully! 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/both_threads_pass.graph_interp.expect b/tests/adders/adder_d1/expects/both_threads_pass.graph_interp.expect index f68c1e4d..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 +1 @@ -trace 0 executed successfully +Trace 0 executed successfully! 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 f68c1e4d..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 +1 @@ -trace 0 executed successfully +Trace 0 executed successfully! 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 f68c1e4d..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 +1 @@ -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/alus/expects/alu_d1.graph_interp.expect b/tests/alus/expects/alu_d1.graph_interp.expect index f68c1e4d..f5f6cb49 100644 --- a/tests/alus/expects/alu_d1.graph_interp.expect +++ b/tests/alus/expects/alu_d1.graph_interp.expect @@ -1 +1 @@ -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/alus/expects/alu_d2.graph_interp.expect b/tests/alus/expects/alu_d2.graph_interp.expect index f68c1e4d..f5f6cb49 100644 --- a/tests/alus/expects/alu_d2.graph_interp.expect +++ b/tests/alus/expects/alu_d2.graph_interp.expect @@ -1 +1 @@ -trace 0 executed successfully +Trace 0 executed successfully! 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_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_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/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_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/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/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/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/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/fifo/expects/fifo.graph_interp.expect b/tests/fifo/expects/fifo.graph_interp.expect index f68c1e4d..f5f6cb49 100644 --- a/tests/fifo/expects/fifo.graph_interp.expect +++ b/tests/fifo/expects/fifo.graph_interp.expect @@ -1 +1 @@ -trace 0 executed successfully +Trace 0 executed successfully! 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 f68c1e4d..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 +1 @@ -trace 0 executed successfully +Trace 0 executed successfully! 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_d1/expects/slicing_ok.graph_interp.expect b/tests/identities/identity_d1/expects/slicing_ok.graph_interp.expect index f68c1e4d..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 +1 @@ -trace 0 executed successfully +Trace 0 executed successfully! 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/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/multi/multi0/expects/multi0.graph_interp.expect b/tests/multi/multi0/expects/multi0.graph_interp.expect index f68c1e4d..f5f6cb49 100644 --- a/tests/multi/multi0/expects/multi0.graph_interp.expect +++ b/tests/multi/multi0/expects/multi0.graph_interp.expect @@ -1 +1 @@ -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/multi/multi0keep/expects/multi0keep.graph_interp.expect b/tests/multi/multi0keep/expects/multi0keep.graph_interp.expect index f68c1e4d..f5f6cb49 100644 --- a/tests/multi/multi0keep/expects/multi0keep.graph_interp.expect +++ b/tests/multi/multi0keep/expects/multi0keep.graph_interp.expect @@ -1 +1 @@ -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/multi/multi0keep2const/expects/multi0keep2const.graph_interp.expect b/tests/multi/multi0keep2const/expects/multi0keep2const.graph_interp.expect index f68c1e4d..f5f6cb49 100644 --- a/tests/multi/multi0keep2const/expects/multi0keep2const.graph_interp.expect +++ b/tests/multi/multi0keep2const/expects/multi0keep2const.graph_interp.expect @@ -1 +1 @@ -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/multi/multi2const/expects/multi2const.graph_interp.expect b/tests/multi/multi2const/expects/multi2const.graph_interp.expect index f68c1e4d..f5f6cb49 100644 --- a/tests/multi/multi2const/expects/multi2const.graph_interp.expect +++ b/tests/multi/multi2const/expects/multi2const.graph_interp.expect @@ -1 +1 @@ -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/multi/multi2multi/expects/multi2multi.graph_interp.expect b/tests/multi/multi2multi/expects/multi2multi.graph_interp.expect index f68c1e4d..f5f6cb49 100644 --- a/tests/multi/multi2multi/expects/multi2multi.graph_interp.expect +++ b/tests/multi/multi2multi/expects/multi2multi.graph_interp.expect @@ -1 +1 @@ -trace 0 executed successfully +Trace 0 executed successfully! 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 f68c1e4d..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 +1 @@ -trace 0 executed successfully +Trace 0 executed successfully! 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 f68c1e4d..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 +1 @@ -trace 0 executed successfully +Trace 0 executed successfully! diff --git a/tests/wishbone/expects/wishbone.graph_interp.expect b/tests/wishbone/expects/wishbone.graph_interp.expect index f68c1e4d..f5f6cb49 100644 --- a/tests/wishbone/expects/wishbone.graph_interp.expect +++ b/tests/wishbone/expects/wishbone.graph_interp.expect @@ -1 +1 @@ -trace 0 executed successfully +Trace 0 executed successfully! From 21a5b9814f3311dcb0a390039058ac6e4bd4e702 Mon Sep 17 00:00:00 2001 From: Nikil Shyamsunder Date: Sun, 28 Jun 2026 14:00:27 -0400 Subject: [PATCH 6/6] add a new runt config for waveform diffing ast and geraph interp --- .../expects/unsigned_mul.waveform.expect | 9 + .../serv/expects/serv_regfile.waveform.expect | 10 + .../tinyaes128/expects/aes128.waveform.expect | 4 + graph-interp/src/main.rs | 37 +- justfile | 1 + protocols/src/interpreter.rs | 4 +- runt/waveform/runt.toml | 505 ++++++++++++++++++ scripts/generate_runt_configs.py | 44 ++ .../expects/add_combinational.waveform.expect | 4 + .../add_multitrace_successful.waveform.expect | 11 + .../expects/both_threads_pass.waveform.expect | 4 + .../wait_and_add_correct.waveform.expect | 4 + .../expects/both_threads_pass.waveform.expect | 4 + tests/alus/expects/alu_d1.waveform.expect | 5 + tests/alus/expects/alu_d2.waveform.expect | 5 + .../expects/toy_reciever_0.waveform.expect | 4 + .../expects/toy_reciever_1.waveform.expect | 4 + .../expects/toy_reciever_2.waveform.expect | 4 + .../bit_truncation_fft_fix.waveform.expect | 3 + .../bit_truncation_sha_fix.waveform.expect | 3 + .../expects/ftu_sha_fix.waveform.expect | 8 + .../expects/signal_async_fix.waveform.expect | 5 + .../use_without_valid_fix.waveform.expect | 4 + .../counters/expects/counter.waveform.expect | 3 + tests/fifo/expects/fifo.waveform.expect | 8 + .../push_pop_identity_ok.waveform.expect | 8 + .../passthrough_combdep.waveform.expect | 3 + .../expects/slicing_ok.waveform.expect | 3 + .../single_thread_passes.waveform.expect | 3 + ...two_assignments_same_value.waveform.expect | 3 + .../multi0/expects/multi0.waveform.expect | 5 + .../expects/multi0keep.waveform.expect | 5 + .../expects/multi0keep2const.waveform.expect | 4 + .../expects/multi2const.waveform.expect | 4 + .../expects/multi2multi.waveform.expect | 5 + .../expects/multi_data.waveform.expect | 5 + .../expects/both_threads_pass.waveform.expect | 4 + .../wishbone/expects/wishbone.waveform.expect | 9 + 38 files changed, 733 insertions(+), 25 deletions(-) create mode 100644 examples/picorv32/expects/unsigned_mul.waveform.expect create mode 100644 examples/serv/expects/serv_regfile.waveform.expect create mode 100644 examples/tinyaes128/expects/aes128.waveform.expect create mode 100644 runt/waveform/runt.toml create mode 100644 tests/adders/adder_d0/expects/add_combinational.waveform.expect create mode 100644 tests/adders/adder_d1/expects/add_multitrace_successful.waveform.expect create mode 100644 tests/adders/adder_d1/expects/both_threads_pass.waveform.expect create mode 100644 tests/adders/adder_d1/expects/wait_and_add_correct.waveform.expect create mode 100644 tests/adders/adder_d2/expects/both_threads_pass.waveform.expect create mode 100644 tests/alus/expects/alu_d1.waveform.expect create mode 100644 tests/alus/expects/alu_d2.waveform.expect create mode 100644 tests/bounded_ready_valid/expects/toy_reciever_0.waveform.expect create mode 100644 tests/bounded_ready_valid/expects/toy_reciever_1.waveform.expect create mode 100644 tests/bounded_ready_valid/expects/toy_reciever_2.waveform.expect create mode 100644 tests/brave_new_world/bit_truncation/expects/bit_truncation_fft_fix.waveform.expect create mode 100644 tests/brave_new_world/bit_truncation/expects/bit_truncation_sha_fix.waveform.expect create mode 100644 tests/brave_new_world/failure_to_update/expects/ftu_sha_fix.waveform.expect create mode 100644 tests/brave_new_world/signal_asynchrony/expects/signal_async_fix.waveform.expect create mode 100644 tests/brave_new_world/use_without_valid/expects/use_without_valid_fix.waveform.expect create mode 100644 tests/counters/expects/counter.waveform.expect create mode 100644 tests/fifo/expects/fifo.waveform.expect create mode 100644 tests/fifo/expects/push_pop_identity_ok.waveform.expect create mode 100644 tests/identities/identity_d0/expects/passthrough_combdep.waveform.expect create mode 100644 tests/identities/identity_d1/expects/slicing_ok.waveform.expect create mode 100644 tests/identities/identity_d2/expects/single_thread_passes.waveform.expect create mode 100644 tests/identities/identity_d2/expects/two_assignments_same_value.waveform.expect create mode 100644 tests/multi/multi0/expects/multi0.waveform.expect create mode 100644 tests/multi/multi0keep/expects/multi0keep.waveform.expect create mode 100644 tests/multi/multi0keep2const/expects/multi0keep2const.waveform.expect create mode 100644 tests/multi/multi2const/expects/multi2const.waveform.expect create mode 100644 tests/multi/multi2multi/expects/multi2multi.waveform.expect create mode 100644 tests/multi/multi_data/expects/multi_data.waveform.expect create mode 100644 tests/multipliers/mult_d2/expects/both_threads_pass.waveform.expect create mode 100644 tests/wishbone/expects/wishbone.waveform.expect 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.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.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 bf631a85..8b684bf0 100644 --- a/graph-interp/src/main.rs +++ b/graph-interp/src/main.rs @@ -2,7 +2,7 @@ use std::panic::{AssertUnwindSafe, catch_unwind}; use clap::Parser; 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; @@ -158,7 +158,7 @@ fn run_classic( cli: &Cli, st: &SymbolTable, protos: &[Protocol], - sim: &mut PatronusSim, + design: &Design, traces: Vec)>>, ) { let mut graphs: Vec<(String, ProtoGraph)> = protos @@ -177,6 +177,7 @@ fn run_classic( 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 @@ -185,7 +186,7 @@ fn run_classic( .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, sim); + graph_interpreter::interpret(pg, st, args, &mut sim); } print_trace_success(trace_index); } @@ -193,37 +194,36 @@ fn run_classic( /// interpret the entire concrete trace as one big ProtoGraph fn run_respect_forks( + cli: &Cli, st: &SymbolTable, protos: &[Protocol], - sim: &mut PatronusSim, + design: &Design, traces: &[Vec<(String, Vec)>], - graphout: bool, - determinize_graph: bool, - ascii_waveform: bool, ) { 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 determinize_graph { + if cli.determinize { joint = determinized(joint, st); } // normalize_assignments(&mut joint, st); - if graphout { + 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(), sim); - if ascii_waveform { + let waveform = graph_interpreter::interpret(&joint, st, FxHashMap::default(), &mut sim); + if cli.ascii_waveform { print_trace_success(trace_index); - print_waveform(waveform, sim); + print_waveform(waveform, &sim); } else { print_trace_success(trace_index); } @@ -235,23 +235,14 @@ fn main() { 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(); let old_hook = std::panic::take_hook(); std::panic::set_hook(Box::new(|_| {})); let result = catch_unwind(AssertUnwindSafe(|| { if cli.respect_forks { - run_respect_forks( - &st, - &protos, - &mut sim, - &traces, - cli.graphout, - cli.determinize, - cli.ascii_waveform, - ); + run_respect_forks(&cli, &st, &protos, &design, &traces); } else { - run_classic(&cli, &st, &protos, &mut sim, traces); + run_classic(&cli, &st, &protos, &design, traces); } })); std::panic::set_hook(old_hook); diff --git a/justfile b/justfile index 2d2c2599..264bdc23 100644 --- a/justfile +++ b/justfile @@ -4,6 +4,7 @@ runt: 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/interpreter.rs b/protocols/src/interpreter.rs index 147f7343..3c8658f1 100644 --- a/protocols/src/interpreter.rs +++ b/protocols/src/interpreter.rs @@ -380,7 +380,7 @@ impl<'a> Evaluator<'a> { self.waveform .entry(port_id) - .or_insert(vec![]) + .or_default() .push(Value::Concrete(bvv)); } None => { @@ -391,7 +391,7 @@ impl<'a> Evaluator<'a> { self.waveform .entry(port_id) - .or_insert(vec![]) + .or_default() .push(Value::DontCare); dont_care_ports.insert(port_id); 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 b4fdb5b0..011e7293 100644 --- a/scripts/generate_runt_configs.py +++ b/scripts/generate_runt_configs.py @@ -195,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, } @@ -249,6 +277,21 @@ def graph_interp_cases(cases: list[dict]) -> list[dict]: 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 = [] @@ -293,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/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/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.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.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_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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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