Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion src/main/scala/iotesters/OrderedDecoupledHWIOTester.scala
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,16 @@ abstract class OrderedDecoupledHWIOTester extends HWIOTester {
)
}

private def createOutputIsMyTurnTable(events: ArrayBuffer[TestingEvent]): Vec[Bool] = {
val associated_event_numbers = events.map { event => event.event_number }.toSet
logScalaDebug(s" associated event numbers ${associated_event_numbers.toArray.sorted.mkString(",")}")

Vec(
output_event_list.indices.map { event_number => Bool(associated_event_numbers.contains(event_number)) } ++
List(Bool(false)) // We append a false at the end so no-one tries to go when counter done
)
}

/**
* build a set of all ports referenced by all events associated with a particular
* io interface
Expand Down Expand Up @@ -333,7 +343,7 @@ abstract class OrderedDecoupledHWIOTester extends HWIOTester {
private def buildDecoupledOutputEventHandlers(event_counter: GlobalEventCounter) {
decoupled_control_port_to_output_values.foreach { case (controlling_port, events) =>
val ports_referenced_for_this_controlling_port = portsReferencedByEvents(events)
val is_this_my_turn = createIsMyTurnTable(events)
val is_this_my_turn = createOutputIsMyTurnTable(events)

val counter_for_this_decoupled = Counter(output_event_list.length)
logScalaDebug(s"Output decoupled controller ${name(controlling_port)} : ports " +
Expand Down